commit f9dff0891f02dfc93f1bcc7e10cc6bdee1be0568 Author: zhengsl Date: Mon Jul 27 17:51:49 2026 +0800 Initial commit diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..cd9cbdf --- /dev/null +++ b/.env.example @@ -0,0 +1,24 @@ +DJANGO_DEBUG=true +DJANGO_SECRET_KEY=change-me +DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost,192.168.1.174 +DJANGO_CORS_ALLOWED_ORIGINS=http://localhost:3000,ws://localhost:3000 + +DB_ENGINE=django.db.backends.sqlite3 +DB_NAME= +DB_USER= +DB_PASSWORD= +DB_HOST=127.0.0.1 +DB_PORT=5432 + +REDIS_URL=redis://127.0.0.1:6379/1 + +SM4_PRIVATE_KEY= +FILESPACE_ROOT_PATH=D:\AI-TrainPrediction\AI-TrainPrediction\project_space +TRAIN_LOG_DIR=D:\AI-TrainPrediction\AI-TrainPrediction\project_space +MEDIA_URL=/image/ +MEDIA_ROOT=D:\AI-TrainPrediction\AI-TrainPrediction\project_space +IMAGE_BASE_URL=http://localhost:8000/image/ +TASK_CALL_BACK_URL=http://localhost:8000/server/ + +JWT_ACCESS_MINUTES=60 +JWT_REFRESH_DAYS=1 diff --git a/MinIO文件存储接口文档.md b/MinIO文件存储接口文档.md new file mode 100644 index 0000000..1406c87 --- /dev/null +++ b/MinIO文件存储接口文档.md @@ -0,0 +1,709 @@ +# MinIO 文件存储接口文档 + +## 一、概述 + +本项目已集成 MinIO 对象存储,并在 Django 后端提供统一的文件存储 API。 + +### MinIO 服务信息 + +| 项目 | 值 | +|------|-----| +| API 地址 | `http://127.0.0.1:9000` | +| Web 控制台 | `http://127.0.0.1:9001` | +| 用户名 | `admin` | +| 密码 | `zhengsl2026` | +| 默认 Bucket | `ai-trainprediction` | + +### Django 配置 + +```python +MINIO_ENDPOINT = os.environ.get("MINIO_ENDPOINT", "127.0.0.1:9000") +MINIO_ACCESS_KEY = os.environ.get("MINIO_ACCESS_KEY", "admin") +MINIO_SECRET_KEY = os.environ.get("MINIO_SECRET_KEY", "zhengsl2026") +MINIO_SECURE = _env_bool("MINIO_SECURE", default=False) +MINIO_DEFAULT_BUCKET = os.environ.get("MINIO_DEFAULT_BUCKET", "ai-trainprediction") +MINIO_PRESIGN_EXPIRES = int(os.environ.get("MINIO_PRESIGN_EXPIRES", "3600")) +``` + +### 认证要求 + +所有 MinIO 接口均要求 JWT 认证: + +```http +Authorization: Bearer {access_token} +``` + +### 接口前缀 + +```text +/server/minio/ +``` + +--- + +## 二、接口总览 + +| 方法 | 路径 | 功能 | +|------|------|------| +| POST | `/server/minio/bucket/create/` | 创建 Bucket | +| GET | `/server/minio/bucket/list/` | 列出 Bucket | +| DELETE | `/server/minio/bucket/delete/` | 删除 Bucket | +| POST | `/server/minio/file/upload/` | 单文件上传 | +| POST | `/server/minio/files/upload/` | 批量文件上传 | +| POST | `/server/minio/file/upload-zip/` | ZIP 解压后批量入库 | +| POST | `/server/minio/file/upload-video-frames/` | 视频抽帧后图片入库 | +| POST | `/server/minio/file/upload-base64/` | Base64 文件上传 | +| GET | `/server/minio/file/download/` | 流式下载文件 | +| GET | `/server/minio/file/presign/` | 获取预签名下载 URL | +| GET | `/server/minio/file/presign-upload/` | 获取预签名上传 URL | +| GET | `/server/minio/file/preview/` | 流式预览文件 | +| GET | `/server/minio/file/info/` | 获取文件元信息 | +| GET | `/server/minio/files/` | 列出对象 | +| DELETE | `/server/minio/file/delete/` | 删除单个文件 | +| DELETE | `/server/minio/files/delete/` | 批量删除文件 | +| POST | `/server/minio/file/copy/` | 复制文件 | + +--- + +## 三、Bucket 管理 + +### 3.1 创建 Bucket + +```http +POST /server/minio/bucket/create/ +Content-Type: application/json +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `bucket_name` | string | 否 | Bucket 名称,默认 `ai-trainprediction` | + +成功响应: + +```json +{ + "code": 200, + "data": { + "bucket_name": "my-bucket", + "created": true + }, + "msg": "Bucket 创建成功" +} +``` + +说明: +- 若 Bucket 已存在,返回 `created: false` +- MinIO 返回 `BucketAlreadyExists` / `BucketAlreadyOwnedByYou` 时会转换为 `409` + +### 3.2 列出 Bucket + +```http +GET /server/minio/bucket/list/ +``` + +成功响应: + +```json +{ + "code": 200, + "data": ["ai-trainprediction", "my-bucket"], + "msg": "获取成功" +} +``` + +### 3.3 删除 Bucket + +```http +DELETE /server/minio/bucket/delete/ +Content-Type: application/json +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `bucket_name` | string | 是 | Bucket 名称 | + +成功响应: + +```json +{ + "code": 200, + "data": { + "bucket_name": "my-bucket" + }, + "msg": "Bucket 已删除" +} +``` + +错误说明: +- `404`:Bucket 不存在 +- `409`:Bucket 非空,无法删除 + +--- + +## 四、文件上传 + +### 4.1 单文件上传 + +```http +POST /server/minio/file/upload/ +Content-Type: multipart/form-data +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `file` | File | 是 | 上传文件 | +| `bucket_name` | string | 否 | 目标 Bucket,默认 `ai-trainprediction` | +| `prefix` | string | 否 | 对象前缀,如 `images/datasets` | +| `object_name` | string | 否 | 指定对象名;不传则自动生成 | + +自动命名规则: + +```text +{prefix}/YYYY-MM-DD/{uuid12}_{original_filename} +``` + +成功响应: + +```json +{ + "code": 200, + "data": { + "bucket_name": "ai-trainprediction", + "object_name": "images/2026-07-01/a1b2c3d4e5f6_photo.jpg", + "original_name": "photo.jpg", + "size": 102400, + "content_type": "image/jpeg", + "presigned_url": "http://127.0.0.1:9000/..." + }, + "msg": "上传成功" +} +``` + +说明: +- 该接口已改为流式上传,不会把整文件一次性读入内存 +- 若 `object_name` 明确指定且对象已存在,则会被覆盖 + +### 4.2 批量文件上传 + +```http +POST /server/minio/files/upload/ +Content-Type: multipart/form-data +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `files` | File[] | 是 | 多个文件 | +| `bucket_name` | string | 否 | 目标 Bucket | +| `prefix` | string | 否 | 对象前缀 | + +成功响应: + +```json +{ + "code": 200, + "data": [ + { + "object_name": "images/2026-07-01/a1b2_photo1.jpg", + "original_name": "photo1.jpg", + "size": 102400, + "content_type": "image/jpeg", + "presigned_url": "http://127.0.0.1:9000/..." + } + ], + "msg": "全部上传成功,共 1 个文件" +} +``` + +### 4.3 Base64 文件上传 + +```http +POST /server/minio/file/upload-base64/ +Content-Type: application/json +``` + +请求体: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `file_base64` | string | 是 | Base64 编码内容 | +| `filename` | string | 是 | 原始文件名 | +| `bucket_name` | string | 否 | 目标 Bucket | +| `prefix` | string | 否 | 对象前缀 | + +请求示例: + +```json +{ + "file_base64": "/9j/4AAQSkZJRgABAQ...", + "filename": "avatar.png", + "bucket_name": "ai-trainprediction", + "prefix": "avatars" +} +``` + +成功响应: + +```json +{ + "code": 200, + "data": { + "bucket_name": "ai-trainprediction", + "object_name": "avatars/2026-07-01/a1b2c3d4e5f6_avatar.png", + "original_name": "avatar.png", + "size": 51200, + "content_type": "image/png", + "presigned_url": "http://127.0.0.1:9000/..." + }, + "msg": "上传成功" +} +``` + +说明: +- 此接口当前只支持 `application/json` +- Base64 解码失败时返回 `400` + +### 4.4 ZIP 解压批量入库 + +```http +POST /server/minio/file/upload-zip/ +Content-Type: multipart/form-data +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `file` | File | 是 | ZIP 压缩包 | +| `bucket_name` | string | 否 | 目标 Bucket | +| `prefix` | string | 否 | MinIO 对象前缀 | +| `images_only` | bool | 否 | 是否仅入库图片文件,默认 `false` | + +说明: +- 接口会自动解压 ZIP 内文件并逐个上传到 MinIO +- 默认保留 ZIP 内相对目录结构 +- 会自动过滤目录项、隐藏文件和非法路径片段(如 `..`) +- `images_only=true` 时,仅上传图片扩展名文件:`jpg/jpeg/png/bmp/gif/webp/tif/tiff` + +成功响应: + +```json +{ + "code": 200, + "data": { + "bucket_name": "ai-trainprediction", + "zip_name": "dataset.zip", + "uploaded_count": 2, + "uploaded": [ + { + "source_name": "images/cat.jpg", + "object_name": "datasets/images/cat.jpg", + "size": 102400, + "content_type": "image/jpeg" + } + ], + "skipped": ["docs/readme.txt"] + }, + "msg": "ZIP 解压入库成功,共上传 2 个文件" +} +``` + +### 4.5 视频抽帧图片入库 + +```http +POST /server/minio/file/upload-video-frames/ +Content-Type: multipart/form-data +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `file` | File | 是 | 视频文件 | +| `bucket_name` | string | 否 | 目标 Bucket | +| `prefix` | string | 否 | MinIO 对象前缀 | +| `interval_seconds` | int | 否 | 抽帧时间间隔,单位秒,默认 `1` | +| `start_second` | int | 否 | 开始抽帧时间,默认 `0` | +| `end_second` | int | 否 | 结束抽帧时间,不传则到视频末尾 | +| `max_frames` | int | 否 | 最多生成图片数,默认 `100` | +| `image_format` | string | 否 | 输出图片格式,支持 `jpg/jpeg/png`,默认 `jpg` | + +说明: +- 当前支持的视频扩展名:`mp4/avi/mov/mkv/wmv/flv/mpeg/mpg/webm` +- 需要服务端安装 `opencv-python` +- 抽出的图片会存入 `{prefix}/{视频名}_frames/` 目录 +- 文件名规则:`frame_00001_1200ms.jpg` + +成功响应: + +```json +{ + "code": 200, + "data": { + "bucket_name": "ai-trainprediction", + "video_name": "demo.mp4", + "fps": 25.0, + "duration_seconds": 12.4, + "interval_seconds": 1, + "start_second": 0, + "end_second": 10, + "max_frames": 20, + "extracted_count": 10, + "extracted": [ + { + "object_name": "videos/demo_frames/frame_00001_0ms.jpg", + "frame_index": 0, + "time_second": 0.0 + } + ] + }, + "msg": "视频抽帧入库成功,共生成 10 张图片" +} +``` + +### 4.6 获取预签名上传 URL + +```http +GET /server/minio/file/presign-upload/?bucket_name={bucket}&object_name={object}&expires={seconds} +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `bucket_name` | string | 否 | 目标 Bucket | +| `object_name` | string | 是 | 目标对象名 | +| `expires` | int | 否 | 有效期秒数,默认 `3600`,最大 `604800` | + +成功响应: + +```json +{ + "code": 200, + "data": { + "presigned_url": "http://127.0.0.1:9000/ai-trainprediction/path/file.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&...", + "expires_in": 3600 + }, + "msg": "获取成功" +} +``` + +--- + +## 五、文件下载与预览 + +### 5.1 流式下载文件 + +```http +GET /server/minio/file/download/?bucket_name={bucket}&object_name={object} +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `bucket_name` | string | 否 | Bucket 名称 | +| `object_name` | string | 是 | 对象名 | + +说明: +- 返回流式响应,适合大文件下载 +- `Content-Disposition` 为 `attachment` + +### 5.2 获取预签名下载 URL + +```http +GET /server/minio/file/presign/?bucket_name={bucket}&object_name={object}&expires={seconds} +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `bucket_name` | string | 否 | Bucket 名称 | +| `object_name` | string | 是 | 对象名 | +| `expires` | int | 否 | 有效期秒数,默认 `3600`,最大 `604800` | + +成功响应: + +```json +{ + "code": 200, + "data": { + "presigned_url": "http://127.0.0.1:9000/ai-trainprediction/path/file.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&...", + "expires_in": 3600 + }, + "msg": "获取成功" +} +``` + +说明: +- `expires <= 0` 时返回 `400` +- 超过 7 天会被自动截断为 `604800` + +### 5.3 流式预览文件 + +```http +GET /server/minio/file/preview/?bucket_name={bucket}&object_name={object} +``` + +说明: +- 返回流式响应 +- `Content-Disposition` 为 `inline` +- 适合图片、PDF、文本等浏览器可直接预览的文件 + +--- + +## 六、文件管理 + +### 6.1 获取文件元信息 + +```http +GET /server/minio/file/info/?bucket_name={bucket}&object_name={object} +``` + +成功响应: + +```json +{ + "code": 200, + "data": { + "name": "images/2026-07-01/a1b2_photo.jpg", + "size": 102400, + "etag": "d41d8cd98f00b204e9800998ecf8427e", + "content_type": "image/jpeg", + "last_modified": "2026-07-01T12:00:00+00:00", + "presigned_url": "http://127.0.0.1:9000/..." + }, + "msg": "获取成功" +} +``` + +### 6.2 列出对象 + +```http +GET /server/minio/files/?bucket_name={bucket}&prefix={prefix} +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `bucket_name` | string | 否 | Bucket 名称 | +| `prefix` | string | 否 | 仅列出指定前缀下的对象 | + +成功响应: + +```json +{ + "code": 200, + "data": [ + { + "name": "images/2026-07-01/a1b2_photo.jpg", + "size": 102400, + "last_modified": "2026-07-01T12:00:00+00:00", + "etag": "d41d8cd98f00b204e9800998ecf8427e", + "content_type": "image/jpeg", + "is_dir": false + } + ], + "msg": "共 1 个对象" +} +``` + +### 6.3 删除单个文件 + +```http +DELETE /server/minio/file/delete/ +Content-Type: application/json +``` + +请求体: + +```json +{ + "bucket_name": "ai-trainprediction", + "object_name": "images/2026-07-01/a1b2_photo.jpg" +} +``` + +成功响应: + +```json +{ + "code": 200, + "data": { + "object_name": "images/2026-07-01/a1b2_photo.jpg" + }, + "msg": "删除成功" +} +``` + +### 6.4 批量删除文件 + +```http +DELETE /server/minio/files/delete/ +Content-Type: application/json +``` + +请求体: + +```json +{ + "bucket_name": "ai-trainprediction", + "object_names": [ + "images/photo1.jpg", + "images/photo2.png" + ] +} +``` + +成功响应: + +```json +{ + "code": 200, + "data": { + "deleted": 2 + }, + "msg": "全部删除成功" +} +``` + +部分成功响应: + +```json +{ + "code": 207, + "data": { + "deleted": 1, + "errors": ["images/photo2.png"] + }, + "msg": "部分删除,1 个失败" +} +``` + +### 6.5 复制文件 + +```http +POST /server/minio/file/copy/ +Content-Type: application/json +``` + +请求体: + +```json +{ + "src_bucket": "ai-trainprediction", + "src_object": "images/photo.jpg", + "dst_bucket": "ai-trainprediction", + "dst_object": "backup/photo.jpg" +} +``` + +请求参数: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| `src_bucket` | string | 否 | 源 Bucket,默认 `ai-trainprediction` | +| `src_object` | string | 是 | 源对象名 | +| `dst_bucket` | string | 否 | 目标 Bucket,默认 `ai-trainprediction` | +| `dst_object` | string | 是 | 目标对象名 | + +成功响应: + +```json +{ + "code": 200, + "data": { + "object_name": "backup/photo.jpg" + }, + "msg": "复制成功" +} +``` + +说明: +- 若目标 Bucket 不存在,接口会自动创建 + +--- + +## 七、错误码说明 + +| HTTP 状态码 | 含义 | +|-------------|------| +| `200` | 成功 | +| `207` | 批量删除部分成功 | +| `400` | 参数错误、`expires` 不合法、Base64 解码失败等 | +| `401` | 未携带或携带了无效 JWT Token | +| `403` | MinIO 拒绝访问 | +| `404` | Bucket 或对象不存在 | +| `409` | Bucket 已存在、Bucket 非空等冲突 | +| `500` | 其他 MinIO / 服务端错误 | + +错误响应格式: + +```json +{ + "code": 409, + "msg": "Bucket 非空,无法删除", + "detail": "S3 operation failed; code: BucketNotEmpty, ..." +} +``` + +--- + +## 八、代码结构 + +```text +backend/ +├── config/settings/base.py +├── config/api_urls.py +└── apps/common/ + ├── minio_client.py + └── views/minio_storage.py +``` + +### `minio_client.py` + +封装的核心方法包括: + +| 方法 | 功能 | +|------|------| +| `bucket_exists()` | 检查 Bucket 是否存在 | +| `create_bucket()` | 创建 Bucket | +| `list_buckets()` | 列出 Bucket | +| `remove_bucket()` | 删除空 Bucket | +| `upload_file()` | 上传本地文件 | +| `upload_bytes()` | 上传字节数据 | +| `upload_stream()` | 流式上传文件对象 | +| `download_file()` | 下载到本地 | +| `download_bytes()` | 下载为 bytes | +| `get_object()` | 获取对象流响应 | +| `get_object_info()` | 获取对象元信息 | +| `object_exists()` | 判断对象是否存在 | +| `list_objects()` | 列出对象 | +| `delete_object()` | 删除单个对象 | +| `delete_objects()` | 批量删除对象 | +| `presign_get()` | 获取预签名下载 URL | +| `presign_upload()` | 获取预签名上传 URL | +| `generate_object_name()` | 生成唯一对象名 | +| `copy_object()` | 复制对象 | + +--- + +## 九、注意事项 + +1. 所有接口均要求 JWT 认证 +2. 下载和预览接口已经改为流式响应,适合较大文件 +3. `upload-base64` 当前只支持 `application/json` +4. ZIP 入库默认保留压缩包中的相对目录结构,并会过滤非法路径 +5. 视频抽帧依赖 `opencv-python` +6. `expires` 必须大于 0,最大有效期为 7 天 +7. 指定 `object_name` 时可能覆盖已有对象,请谨慎使用 +8. 删除 Bucket 前必须先清空其中所有对象 diff --git a/SD_AIBOX_B_H.sql b/SD_AIBOX_B_H.sql new file mode 100644 index 0000000..2baa86e --- /dev/null +++ b/SD_AIBOX_B_H.sql @@ -0,0 +1,136 @@ +/* + Navicat Premium Data Transfer + + Source Server : 全过程新框架数据库190 + Source Server Type : Oracle + Source Server Version : 110200 + Source Host : 172.16.31.190:1521 + Source Schema : QGC_REFA + + Target Server Type : Oracle + Target Server Version : 110200 + File Encoding : 65001 + + Date: 08/07/2026 18:30:27 +*/ + + +-- ---------------------------- +-- Table structure for SD_AIBOX_B_H +-- ---------------------------- +DROP TABLE "QGC_REFA"."SD_AIBOX_B_H"; +CREATE TABLE "QGC_REFA"."SD_AIBOX_B_H" ( + "STCD" VARCHAR2(36 BYTE) NOT NULL , + "STNM" VARCHAR2(255 BYTE) NOT NULL , + "STTP" VARCHAR2(64 BYTE) NOT NULL , + "TM" DATE , + "LGTD" NUMBER(10,6) , + "LTTD" NUMBER(10,6) , + "ELEV" NUMBER(10,6) , + "STLC" VARCHAR2(200 BYTE) , + "JCDT" DATE , + "WDDT" DATE , + "BLDSTT_CODE" NUMBER(1) , + "USFL" NUMBER(1) , + "DTIN" NUMBER(1) , + "DTIN_TM" DATE , + "MWAY" NUMBER(1) , + "STINDX" VARCHAR2(1000 BYTE) , + "ORDER_INDEX" NUMBER(8) , + "RSTCD" VARCHAR2(64 BYTE) , + "BASE_ID" VARCHAR2(64 BYTE) , + "HBRVCD" VARCHAR2(64 BYTE) , + "RVCD" VARCHAR2(64 BYTE) , + "INTRODUCE" VARCHAR2(3000 BYTE) , + "LOGO" VARCHAR2(255 BYTE) , + "INFFILE" VARCHAR2(1000 BYTE) , + "FWDX" VARCHAR2(1000 BYTE) , + "GDFS" VARCHAR2(512 BYTE) , + "AIPZ" VARCHAR2(1000 BYTE) , + "MXBB" VARCHAR2(512 BYTE) , + "IPADDR" VARCHAR2(512 BYTE) , + "SIMINFO" VARCHAR2(512 BYTE) , + "LXR" VARCHAR2(512 BYTE) , + "PURPOSE" VARCHAR2(512 BYTE) , + "DTFRQCY" NUMBER(7) , + "REMARK" VARCHAR2(512 BYTE) , + "VLSR" VARCHAR2(512 BYTE) , + "VLSR_TM" DATE , + "RECORD_USER" VARCHAR2(36 BYTE) , + "RECORD_TIME" DATE DEFAULT SYSDATE NOT NULL , + "MODIFY_USER" VARCHAR2(36 BYTE) , + "MODIFY_TIME" DATE , + "IS_DELETED" NUMBER(1) DEFAULT 0 NOT NULL , + "DELETE_USER" VARCHAR2(36 BYTE) , + "DELETE_TIME" DATE +) +TABLESPACE "QGC_REFA_DATA" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."STCD" IS '站码'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."STNM" IS '站名'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."STTP" IS '站类'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."TM" IS '数据时间'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."LGTD" IS '经度(单位:°)'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."LTTD" IS '纬度(单位:°)'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."ELEV" IS '高程(单位:m)'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."STLC" IS '站址/位置'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."JCDT" IS '建成日期'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."WDDT" IS '退役/拆除日期'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."BLDSTT_CODE" IS '建设状态分类'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."USFL" IS '是否启用'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."DTIN" IS '数据是否接入'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."DTIN_TM" IS '数据接入时间'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."MWAY" IS '监测方式'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."STINDX" IS '监测指标'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."ORDER_INDEX" IS '排序'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."RSTCD" IS '所属电站编码'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."BASE_ID" IS '所属水电基地编码'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."HBRVCD" IS '所属水电基地流域编码'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."RVCD" IS '所属流域编码'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."INTRODUCE" IS '简介'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."LOGO" IS 'LOGO图片'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."INFFILE" IS '介绍弹窗图片'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."FWDX" IS '服务对象'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."GDFS" IS '供电方式'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."AIPZ" IS 'AI盒子配置'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."MXBB" IS '模型版本'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."IPADDR" IS 'IP地址'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."SIMINFO" IS 'SIM卡信息'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."LXR" IS '联系人及联系电话'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."PURPOSE" IS '用途'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."DTFRQCY" IS '数据监测频次(单位:min)'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."REMARK" IS '备注'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."VLSR" IS '数据来源'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."VLSR_TM" IS '数据来源时间'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."RECORD_USER" IS '创建人:关联SYS_USER.ID'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."RECORD_TIME" IS '创建时间'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."MODIFY_USER" IS '更新人:关联SYS_USER.ID'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."MODIFY_TIME" IS '更新时间'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."IS_DELETED" IS '是否已删除:0=未删除 1=已删除;存储字典值,字典项为comm.is_deleted'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."DELETE_USER" IS '删除人:关联SYS_USER.ID'; +COMMENT ON COLUMN "QGC_REFA"."SD_AIBOX_B_H"."DELETE_TIME" IS '删除时间'; +COMMENT ON TABLE "QGC_REFA"."SD_AIBOX_B_H" IS 'AI边缘计算盒子基本属性表'; + +-- ---------------------------- +-- Primary Key structure for table SD_AIBOX_B_H +-- ---------------------------- +ALTER TABLE "QGC_REFA"."SD_AIBOX_B_H" ADD CONSTRAINT "SD_AIBOX_B_H_PK" PRIMARY KEY ("STCD"); + +-- ---------------------------- +-- Checks structure for table SD_AIBOX_B_H +-- ---------------------------- +ALTER TABLE "QGC_REFA"."SD_AIBOX_B_H" ADD CONSTRAINT "SYS_C0057611" CHECK ("STCD" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "QGC_REFA"."SD_AIBOX_B_H" ADD CONSTRAINT "SYS_C0057612" CHECK ("STNM" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "QGC_REFA"."SD_AIBOX_B_H" ADD CONSTRAINT "SYS_C0057613" CHECK ("STTP" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "QGC_REFA"."SD_AIBOX_B_H" ADD CONSTRAINT "SYS_C0057615" CHECK ("RECORD_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "QGC_REFA"."SD_AIBOX_B_H" ADD CONSTRAINT "SYS_C0057616" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; diff --git a/backend/apps/__init__.py b/backend/apps/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/algorithms/__init__.py b/backend/apps/algorithms/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/algorithms/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/algorithms/algorithm/DFINE/.pre-commit-config.yaml b/backend/apps/algorithms/algorithm/DFINE/.pre-commit-config.yaml new file mode 100644 index 0000000..c7d884a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/.pre-commit-config.yaml @@ -0,0 +1,68 @@ +# Copyright The Lightning team. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +default_language_version: + python: python3 + +ci: + autofix_prs: true + autoupdate_commit_msg: "[pre-commit.ci] pre-commit suggestions" + autoupdate_schedule: quarterly + # submodules: true + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: end-of-file-fixer + - id: trailing-whitespace + # - id: check-json # skip for incompatibility with .devcontainer/devcontainer.json + - id: check-yaml + - id: check-toml + - id: check-docstring-first + - id: check-executables-have-shebangs + - id: check-case-conflict + # - id: check-added-large-files + # args: ["--maxkb=100", "--enforce-all"] + - id: detect-private-key + + # - repo: https://github.com/PyCQA/docformatter + # rev: v1.7.5 + # hooks: + # - id: docformatter + # additional_dependencies: [tomli] + # args: ["--in-place"] + + - repo: https://github.com/executablebooks/mdformat + rev: 0.7.17 + hooks: + - id: mdformat + exclude: '^.*\.md$' + args: ["--number"] + additional_dependencies: + - mdformat-gfm + - mdformat-black + - mdformat_frontmatter + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.6.9 + hooks: + # try to fix what is possible + - id: ruff + args: ["--fix", "--ignore", "E501,F401,F403,F841,E741"] + # # perform formatting updates + # - id: ruff-format + # validate if all is fine with preview mode + - id: ruff + args: ["--ignore", "E501,F401,F403,F841,E741"] diff --git a/backend/apps/algorithms/algorithm/DFINE/1.jpg b/backend/apps/algorithms/algorithm/DFINE/1.jpg new file mode 100644 index 0000000..e5fe69a Binary files /dev/null and b/backend/apps/algorithms/algorithm/DFINE/1.jpg differ diff --git a/backend/apps/algorithms/algorithm/DFINE/3.png b/backend/apps/algorithms/algorithm/DFINE/3.png new file mode 100644 index 0000000..27fab8a Binary files /dev/null and b/backend/apps/algorithms/algorithm/DFINE/3.png differ diff --git a/backend/apps/algorithms/algorithm/DFINE/DfineDetector.py b/backend/apps/algorithms/algorithm/DFINE/DfineDetector.py new file mode 100644 index 0000000..a28f832 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/DfineDetector.py @@ -0,0 +1,132 @@ +import base64 +import json +from datetime import datetime +import cv2 +import numpy as np +import torch +import torch.nn as nn +import torchvision.transforms as T +from PIL import Image, ImageDraw + +class DfineDetector: + def __init__(self, config_path: str, model_path: str, label_map: str, device="cpu", score_thresh=0.3): + # 初始化配置和模型 + from src.core import YAMLConfig + cfg = YAMLConfig(config_path, resume=model_path) + if "HGNetv2" in cfg.yaml_cfg: + cfg.yaml_cfg["HGNetv2"]["pretrained"] = False + + checkpoint = torch.load(model_path, map_location="cpu") + if "ema" in checkpoint: + state = checkpoint["ema"]["module"] + else: + state = checkpoint["model"] + + cfg.model.load_state_dict(state) + + class Model(nn.Module): + def __init__(self): + super().__init__() + self.model = cfg.model.deploy() + self.postprocessor = cfg.postprocessor.deploy() + + def forward(self, images, orig_target_sizes): + outputs = self.model(images) + outputs = self.postprocessor(outputs, orig_target_sizes) + return outputs + + self.device = device + self.model = Model().to(device) + self.model.eval() + self.label_map = json.loads(label_map) # list[dict{"label":"类别英文","name":"中文"}] + self.score_thresh = score_thresh + + def detect(self, image_path: str): + try: + im_pil = Image.open(image_path).convert("RGB") + w, h = im_pil.size + orig_size = torch.tensor([[w, h]]).to(self.device) + transforms = T.Compose([ + T.Resize((640, 640)), + T.ToTensor(), + ]) + im_data = transforms(im_pil).unsqueeze(0).to(self.device) + with torch.no_grad(): + output = self.model(im_data, orig_size) + labels, boxes, scores = output + idx = scores[0] > self.score_thresh + + result_labels = labels[0][idx].detach().cpu().numpy() + result_boxes = boxes[0][idx].detach().cpu().numpy() + result_scores = scores[0][idx].detach().cpu().numpy() + + obj_list = [] + for l, b, s in zip(result_labels, result_boxes, result_scores): + code = int(l) + # 默认 label_map 结构: [{"label":"person","name":"人"}] + label_str = str(code) + code_name = None + for item in self.label_map: + # 支持数字 or 英文名的映射 + if str(item.get("label")) == str(code): + label_str = item["label"] + code_name = item.get("name", "") + break + one_obj = { + "code": label_str, # YOLO 是英文类别,这里建议保持和 label_map 结构统一 + "name": code_name, + "score": round(float(s), 2), + "x1": int(b[0]), + "y1": int(b[1]), + "x2": int(b[2]), + "y2": int(b[3]) + } + obj_list.append(one_obj) + + detection_image = self.draw_and_encode(im_pil, obj_list) + + result_json = { + "image": detection_image, + "obj_list": obj_list, + "time": datetime.now().strftime("%Y-%m-%d %H:%M:%S") + } + return json.dumps(result_json, ensure_ascii=False) + + except Exception as e: + print(f"Error during detection: {e}") + return json.dumps({'error': str(e)}, ensure_ascii=False) + + def draw_and_encode(self, im_pil, obj_list): + # 转 opencv 画框 + img = np.array(im_pil) + if img.shape[-1] == 3: + pass + else: + img = img[:, :, :3] + img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) + + preset_colors = [ + (0, 0, 255), (20, 20, 255), (20, 40, 255), (0, 60, 255), (0, 80, 255), + (0, 100, 255), (0, 120, 255), (0, 140, 255), (0, 160, 255), (0, 180, 255), + (0, 200, 255), (0, 220, 255), (0, 255, 255), + ] + category_colors = {} + + for i, obj in enumerate(obj_list): + category = obj['code'] + if category not in category_colors: + category_colors[category] = preset_colors[i % len(preset_colors)] + + x1, y1, x2, y2 = obj['x1'], obj['y1'], obj['x2'], obj['y2'] + color = category_colors[category] + cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) + + font = cv2.FONT_HERSHEY_SIMPLEX + text = f"{category}-{obj['score']}" + (text_width, _), _ = cv2.getTextSize(text, font, 0.5, 1) + cv2.rectangle(img, (x1, y1 - 20), (x1 + text_width, y1), color, -1) + cv2.putText(img, text, (x1, y1 - 5), font, 0.5, (255, 255, 255), 1) + + _, img_encoded = cv2.imencode('.jpg', img) + img_base64 = base64.b64encode(img_encoded.tobytes()).decode('utf-8') + return img_base64 diff --git a/backend/apps/algorithms/algorithm/DFINE/Dockerfile b/backend/apps/algorithms/algorithm/DFINE/Dockerfile new file mode 100644 index 0000000..9d8af8b --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/Dockerfile @@ -0,0 +1,48 @@ +FROM registry.cn-hangzhou.aliyuncs.com/peterande/dfine:v1 + +# FULL BUILDING INFO: + +# docker login --username=xxx registry.cn-hangzhou.aliyuncs.com +# cd [PATH_2_Dockerfile] +# docker build -t xxx:v1 . +# docker tag xxx:v1 registry.cn-hangzhou.aliyuncs.com/xxx/xxx:v1 +# docker push registry.cn-hangzhou.aliyuncs.com/xxx/xxx:v1 + +# FROM dockerpull.com/nvidia/cuda:12.0.1-cudnn8-devel-ubuntu18.04 +# ARG DEBIAN_FRONTEND=noninteractive +# ENV PATH="/root/miniconda3/bin:${PATH}" +# ARG PATH="/root/miniconda3/bin:${PATH}" + +# RUN sed -i "s/archive.ubuntu./mirrors.aliyun./g" /etc/apt/sources.list +# RUN sed -i "s/deb.debian.org/mirrors.aliyun.com/g" /etc/apt/sources.list +# RUN sed -i "s/security.debian.org/mirrors.aliyun.com\/debian-security/g" /etc/apt/sources.list +# RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list + +# RUN apt-get update && apt-get install -y --no-install-recommends apt-utils && \ +# apt-get upgrade -y && \ +# apt-get install -y vim git libgl1-mesa-glx libglib2.0-0 libsm6 && \ +# apt-get install -y libxrender1 libxext6 tmux wget htop && \ +# apt-get install -y build-essential gcc g++ gdb binutils pciutils net-tools iputils-ping iproute2 git vim wget curl make openssh-server openssh-client tmux tree man unzip unrar + +# ENV PYTHONIOENCODING=UTF-8 + +# RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && \ +# mkdir /root/.conda && \ +# bash Miniconda3-latest-Linux-x86_64.sh -b && \ +# rm -f Miniconda3-latest-Linux-x86_64.sh && \ +# conda init bash + +# RUN conda config --set show_channel_urls yes \ +# && echo "channels:" > ~/.condarc \ +# && echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/" >> ~/.condarc \ +# && echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/" >> ~/.condarc \ +# && echo "show_channel_urls: true" \ +# && cat ~/.condarc \ +# && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \ +# && cat ~/.config/pip/pip.conf + +# RUN python3 -m pip install --upgrade pip && \ +# python3 -m pip install --upgrade setuptools + +# RUN python3 -m pip install jupyterlab pycocotools PyYAML tensorboard scipy +# RUN python3 -m pip --default-timeout=10000 install torch torchvision diff --git a/backend/apps/algorithms/algorithm/DFINE/LICENSE b/backend/apps/algorithms/algorithm/DFINE/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/backend/apps/algorithms/algorithm/DFINE/README.md b/backend/apps/algorithms/algorithm/DFINE/README.md new file mode 100644 index 0000000..4b0cc42 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/README.md @@ -0,0 +1,700 @@ + + +English | [简体中文](README_cn.md) | [日本語](README_ja.md) | [English Blog](src/zoo/dfine/blog.md) | [中文博客](src/zoo/dfine/blog_cn.md) + +

+ D-FINE: Redefine Regression Task of DETRs as Fine‑grained Distribution Refinement +

+ + + +

+ + hf + + + license + + + prs + + + issues + + + arXiv + + + + pre-commit.ci status + + + stars + +

+ + + +

+ 📄 This is the official implementation of the paper: +
+ D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +

+ + + +

+Yansong Peng, Hebei Li, Peixi Wu, Yueyi Zhang, Xiaoyan Sun, and Feng Wu +

+ +

+University of Science and Technology of China +

+ +

+ + sota + +

+ + + +

+If you like D-FINE, please give us a ⭐! Your support motivates us to keep improving! +

+ +

+ +

+ +D-FINE is a powerful real-time object detector that redefines the bounding box regression task in DETRs as Fine-grained Distribution Refinement (FDR) and introduces Global Optimal Localization Self-Distillation (GO-LSD), achieving outstanding performance without introducing additional inference and training costs. + +
+ Video + +We conduct object detection using D-FINE and YOLO11 on a complex street scene video from [YouTube](https://www.youtube.com/watch?v=CfhEWj9sd9A). Despite challenging conditions such as backlighting, motion blur, and dense crowds, D-FINE-X successfully detects nearly all targets, including subtle small objects like backpacks, bicycles, and traffic lights. Its confidence scores and the localization precision for blurred edges are significantly higher than those of YOLO11. + + + +https://github.com/user-attachments/assets/e5933d8e-3c8a-400e-870b-4e452f5321d9 + +
+ +## 🚀 Updates +- [x] **\[2024.10.18\]** Release D-FINE series. +- [x] **\[2024.10.25\]** Add custom dataset finetuning configs ([#7](https://github.com/Peterande/D-FINE/issues/7)). +- [x] **\[2024.10.30\]** Update D-FINE-L (E25) pretrained model, with performance improved by 2.0%. +- [x] **\[2024.11.07\]** Release **D-FINE-N**, achiving 42.8% APval on COCO @ 472 FPST4! + +## Model Zoo + +### COCO +| Model | Dataset | APval | #Params | Latency | GFLOPs | config | checkpoint | logs | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑N** | COCO | **42.8** | 4M | 2.12ms | 7 | [yml](./configs/dfine/dfine_hgnetv2_n_coco.yml) | [42.8](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_n_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_n_coco_log.txt) +**D‑FINE‑S** | COCO | **48.5** | 10M | 3.49ms | 25 | [yml](./configs/dfine/dfine_hgnetv2_s_coco.yml) | [48.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_s_coco_log.txt) +**D‑FINE‑M** | COCO | **52.3** | 19M | 5.62ms | 57 | [yml](./configs/dfine/dfine_hgnetv2_m_coco.yml) | [52.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_m_coco_log.txt) +**D‑FINE‑L** | COCO | **54.0** | 31M | 8.07ms | 91 | [yml](./configs/dfine/dfine_hgnetv2_l_coco.yml) | [54.0](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_l_coco_log.txt) +**D‑FINE‑X** | COCO | **55.8** | 62M | 12.89ms | 202 | [yml](./configs/dfine/dfine_hgnetv2_x_coco.yml) | [55.8](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_x_coco_log.txt) + + +### Objects365+COCO +| Model | Dataset | APval | #Params | Latency | GFLOPs | config | checkpoint | logs | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑S** | Objects365+COCO | **50.7** | 10M | 3.49ms | 25 | [yml](./configs/dfine/objects365/dfine_hgnetv2_s_obj2coco.yml) | [50.7](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_s_obj2coco_log.txt) +**D‑FINE‑M** | Objects365+COCO | **55.1** | 19M | 5.62ms | 57 | [yml](./configs/dfine/objects365/dfine_hgnetv2_m_obj2coco.yml) | [55.1](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_m_obj2coco_log.txt) +**D‑FINE‑L** | Objects365+COCO | **57.3** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj2coco.yml) | [57.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj2coco_e25.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_l_obj2coco_log_e25.txt) +**D‑FINE‑X** | Objects365+COCO | **59.3** | 62M | 12.89ms | 202 | [yml](./configs/dfine/objects365/dfine_hgnetv2_x_obj2coco.yml) | [59.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_x_obj2coco_log.txt) + +**We highly recommend that you use the Objects365 pre-trained model for fine-tuning:** + +⚠️ **Important**: Please note that this is generally beneficial for complex scene understanding. If your categories are very simple, it might lead to overfitting and suboptimal performance. +
+ 🔥 Pretrained Models on Objects365 (Best generalization) + +| Model | Dataset | APval | AP5000 | #Params | Latency | GFLOPs | config | checkpoint | logs | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑S** | Objects365 | **31.0** | **30.5** | 10M | 3.49ms | 25 | [yml](./configs/dfine/objects365/dfine_hgnetv2_s_obj365.yml) | [30.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_s_obj365_log.txt) +**D‑FINE‑M** | Objects365 | **38.6** | **37.4** | 19M | 5.62ms | 57 | [yml](./configs/dfine/objects365/dfine_hgnetv2_m_obj365.yml) | [37.4](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_m_obj365_log.txt) +**D‑FINE‑L** | Objects365 | - | **40.6** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml) | [40.6](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_l_obj365_log.txt) +**D‑FINE‑L (E25)** | Objects365 | **44.7** | **42.6** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml) | [42.6](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj365_e25.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_l_obj365_log_e25.txt) +**D‑FINE‑X** | Objects365 | **49.5** | **46.5** | 62M | 12.89ms | 202 | [yml](./configs/dfine/objects365/dfine_hgnetv2_x_obj365.yml) | [46.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_x_obj365_log.txt) +- **E25**: Re-trained and extended the pretraining to 25 epochs. +- **APval** is evaluated on *Objects365* full validation set. +- **AP5000** is evaluated on the first 5000 samples of the *Objects365* validation set. +
+ +**Notes:** +- **APval** is evaluated on *MSCOCO val2017* dataset. +- **Latency** is evaluated on a single T4 GPU with $batch\\_size = 1$, $fp16$, and $TensorRT==10.4.0$. +- **Objects365+COCO** means finetuned model on *COCO* using pretrained weights trained on *Objects365*. + + + +## Quick start + +### Setup + +```shell +conda create -n dfine python=3.11.9 +conda activate dfine +pip install -r requirements.txt +``` + + +### Data Preparation + +
+ COCO2017 Dataset + +1. Download COCO2017 from [OpenDataLab](https://opendatalab.com/OpenDataLab/COCO_2017) or [COCO](https://cocodataset.org/#download). +1. Modify paths in [coco_detection.yml](./configs/dataset/coco_detection.yml) + + ```yaml + train_dataloader: + img_folder: /data/COCO2017/train2017/ + ann_file: /data/COCO2017/annotations/instances_train2017.json + val_dataloader: + img_folder: /data/COCO2017/val2017/ + ann_file: /data/COCO2017/annotations/instances_val2017.json + ``` + +
+ +
+ Objects365 Dataset + +1. Download Objects365 from [OpenDataLab](https://opendatalab.com/OpenDataLab/Objects365). + +2. Set the Base Directory: +```shell +export BASE_DIR=/data/Objects365/data +``` + +3. Extract and organize the downloaded files, resulting directory structure: + +```shell +${BASE_DIR}/train +├── images +│ ├── v1 +│ │ ├── patch0 +│ │ │ ├── 000000000.jpg +│ │ │ ├── 000000001.jpg +│ │ │ └── ... (more images) +│ ├── v2 +│ │ ├── patchx +│ │ │ ├── 000000000.jpg +│ │ │ ├── 000000001.jpg +│ │ │ └── ... (more images) +├── zhiyuan_objv2_train.json +``` + +```shell +${BASE_DIR}/val +├── images +│ ├── v1 +│ │ ├── patch0 +│ │ │ ├── 000000000.jpg +│ │ │ └── ... (more images) +│ ├── v2 +│ │ ├── patchx +│ │ │ ├── 000000000.jpg +│ │ │ └── ... (more images) +├── zhiyuan_objv2_val.json +``` + +4. Create a New Directory to Store Images from the Validation Set: +```shell +mkdir -p ${BASE_DIR}/train/images_from_val +``` + +5. Copy the v1 and v2 folders from the val directory into the train/images_from_val directory +```shell +cp -r ${BASE_DIR}/val/images/v1 ${BASE_DIR}/train/images_from_val/ +cp -r ${BASE_DIR}/val/images/v2 ${BASE_DIR}/train/images_from_val/ +``` + +6. Run remap_obj365.py to merge a subset of the validation set into the training set. Specifically, this script moves samples with indices between 5000 and 800000 from the validation set to the training set. +```shell +python tools/remap_obj365.py --base_dir ${BASE_DIR} +``` + + +7. Run the resize_obj365.py script to resize any images in the dataset where the maximum edge length exceeds 640 pixels. Use the updated JSON file generated in Step 5 to process the sample data. Ensure that you resize images in both the train and val datasets to maintain consistency. +```shell +python tools/resize_obj365.py --base_dir ${BASE_DIR} +``` + +8. Modify paths in [obj365_detection.yml](./configs/dataset/obj365_detection.yml) + + ```yaml + train_dataloader: + img_folder: /data/Objects365/data/train + ann_file: /data/Objects365/data/train/new_zhiyuan_objv2_train_resized.json + val_dataloader: + img_folder: /data/Objects365/data/val/ + ann_file: /data/Objects365/data/val/new_zhiyuan_objv2_val_resized.json + ``` + + +
+ +
+CrowdHuman + +Download COCO format dataset here: [url](https://aistudio.baidu.com/datasetdetail/231455) + +
+ +
+Custom Dataset + +To train on your custom dataset, you need to organize it in the COCO format. Follow the steps below to prepare your dataset: + +1. **Set `remap_mscoco_category` to `False`:** + + This prevents the automatic remapping of category IDs to match the MSCOCO categories. + + ```yaml + remap_mscoco_category: False + ``` + +2. **Organize Images:** + + Structure your dataset directories as follows: + + ```shell + dataset/ + ├── images/ + │ ├── train/ + │ │ ├── image1.jpg + │ │ ├── image2.jpg + │ │ └── ... + │ ├── val/ + │ │ ├── image1.jpg + │ │ ├── image2.jpg + │ │ └── ... + └── annotations/ + ├── instances_train.json + ├── instances_val.json + └── ... + ``` + + - **`images/train/`**: Contains all training images. + - **`images/val/`**: Contains all validation images. + - **`annotations/`**: Contains COCO-formatted annotation files. + +3. **Convert Annotations to COCO Format:** + + If your annotations are not already in COCO format, you'll need to convert them. You can use the following Python script as a reference or utilize existing tools: + + ```python + import json + + def convert_to_coco(input_annotations, output_annotations): + # Implement conversion logic here + pass + + if __name__ == "__main__": + convert_to_coco('path/to/your_annotations.json', 'dataset/annotations/instances_train.json') + ``` + +4. **Update Configuration Files:** + + Modify your [custom_detection.yml](./configs/dataset/custom_detection.yml). + + ```yaml + task: detection + + evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + + num_classes: 777 # your dataset classes + remap_mscoco_category: False + + train_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/train + ann_file: /data/yourdataset/train/train.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 4 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + val_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/val + ann_file: /data/yourdataset/val/ann.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 4 + drop_last: False + collate_fn: + type: BatchImageCollateFunction + ``` + +
+ + +## Usage +
+ COCO2017 + + +1. Set Model +```shell +export model=l # n s m l x +``` + +2. Training +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --use-amp --seed=0 +``` + + +3. Testing +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --test-only -r model.pth +``` + + +4. Tuning +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --use-amp --seed=0 -t model.pth +``` +
+ + +
+ Objects365 to COCO2017 + +1. Set Model +```shell +export model=l # n s m l x +``` + +2. Training on Objects365 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/objects365/dfine_hgnetv2_${model}_obj365.yml --use-amp --seed=0 +``` + +3. Tuning on COCO2017 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/objects365/dfine_hgnetv2_${model}_obj2coco.yml --use-amp --seed=0 -t model.pth +``` + + +4. Testing +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --test-only -r model.pth +``` +
+ + +
+ Custom Dataset + +1. Set Model +```shell +export model=l # n s m l x +``` + +2. Training on Custom Dataset +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --use-amp --seed=0 +``` + +3. Testing +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --test-only -r model.pth +``` + +4. Tuning on Custom Dataset +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/objects365/dfine_hgnetv2_${model}_obj2custom.yml --use-amp --seed=0 -t model.pth +``` + +5. **[Optional]** Modify Class Mappings: + +When using the Objects365 pre-trained weights to train on your custom dataset, the example assumes that your dataset only contains the classes `'Person'` and `'Car'`. For faster convergence, you can modify `self.obj365_ids` in `src/solver/_solver.py` as follows: + + +```python +self.obj365_ids = [0, 5] # Person, Cars +``` +You can replace these with any corresponding classes from your dataset. The list of Objects365 classes with their corresponding IDs: +https://github.com/Peterande/D-FINE/blob/352a94ece291e26e1957df81277bef00fe88a8e3/src/solver/_solver.py#L330 + +New training command: + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --use-amp --seed=0 -t model.pth +``` + +However, if you don't wish to modify the class mappings, the pre-trained Objects365 weights will still work without any changes. Modifying the class mappings is optional and can potentially accelerate convergence for specific tasks. + + + +
+ +
+ Customizing Batch Size + +For example, if you want to double the total batch size when training D-FINE-L on COCO2017, here are the steps you should follow: + +1. **Modify your [dataloader.yml](./configs/dfine/include/dataloader.yml)** to increase the `total_batch_size`: + + ```yaml + train_dataloader: + total_batch_size: 64 # Previously it was 32, now doubled + ``` + +2. **Modify your [dfine_hgnetv2_l_coco.yml](./configs/dfine/dfine_hgnetv2_l_coco.yml)**. Here’s how the key parameters should be adjusted: + + ```yaml + optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 # doubled, linear scaling law + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.0005 # doubled, linear scaling law + betas: [0.9, 0.999] + weight_decay: 0.0001 # need a grid search + + ema: # added EMA settings + decay: 0.9998 # adjusted by 1 - (1 - decay) * 2 + warmups: 500 # halved + + lr_warmup_scheduler: + warmup_duration: 250 # halved + ``` + +
+ + +
+ Customizing Input Size + +If you'd like to train **D-FINE-L** on COCO2017 with an input size of 320x320, follow these steps: + +1. **Modify your [dataloader.yml](./configs/dfine/include/dataloader.yml)**: + + ```yaml + + train_dataloader: + dataset: + transforms: + ops: + - {type: Resize, size: [320, 320], } + collate_fn: + base_size: 320 + dataset: + transforms: + ops: + - {type: Resize, size: [320, 320], } + ``` + +2. **Modify your [dfine_hgnetv2.yml](./configs/dfine/include/dfine_hgnetv2.yml)**: + + ```yaml + eval_spatial_size: [320, 320] + ``` + +
+ +## Tools +
+ Deployment + + +1. Setup +```shell +pip install onnx onnxsim +export model=l # n s m l x +``` + +2. Export onnx +```shell +python tools/deployment/export_onnx.py --check -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth +``` + +3. Export [tensorrt](https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html) +```shell +trtexec --onnx="model.onnx" --saveEngine="model.engine" --fp16 +``` + +
+ +
+ Inference (Visualization) + + +1. Setup +```shell +pip install -r tools/inference/requirements.txt +export model=l # n s m l x +``` + + + +2. Inference (onnxruntime / tensorrt / torch) + +Inference on images and videos is now supported. +```shell +python tools/inference/onnx_inf.py --onnx model.onnx --input image.jpg # video.mp4 +python tools/inference/trt_inf.py --trt model.engine --input image.jpg +python tools/inference/torch_inf.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth --input image.jpg --device cuda:0 +``` +
+ +
+ Benchmark + +1. Setup +```shell +pip install -r tools/benchmark/requirements.txt +export model=l # n s m l x +``` + + +2. Model FLOPs, MACs, and Params +```shell +python tools/benchmark/get_info.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml +``` + +2. TensorRT Latency +```shell +python tools/benchmark/trt_benchmark.py --COCO_dir path/to/COCO2017 --engine_dir model.engine +``` +
+ +
+ Fiftyone Visualization + +1. Setup +```shell +pip install fiftyone +export model=l # n s m l x +``` +4. Voxel51 Fiftyone Visualization ([fiftyone](https://github.com/voxel51/fiftyone)) +```shell +python tools/visualization/fiftyone_vis.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth +``` +
+ +
+ Others + +1. Auto Resume Training +```shell +bash reference/safe_training.sh +``` + +2. Converting Model Weights +```shell +python reference/convert_weight.py model.pth +``` +
+ +## Figures and Visualizations + +
+ FDR and GO-LSD + +1. Overview of D-FINE with FDR. The probability distributions that act as a more fine- +grained intermediate representation are iteratively refined by the decoder layers in a residual manner. +Non-uniform weighting functions are applied to allow for finer localization. + +

+ Fine-grained Distribution Refinement Process +

+ +2. Overview of GO-LSD process. Localization knowledge from the final layer’s refined +distributions is distilled into earlier layers through DDF loss with decoupled weighting strategies. + +

+ GO-LSD Process +

+ +
+ +
+ Distributions + +Visualizations of FDR across detection scenarios with initial and refined bounding boxes, along with unweighted and weighted distributions. + +

+ +

+ +
+ +
+ Hard Cases + +The following visualization demonstrates D-FINE's predictions in various complex detection scenarios. These include cases with occlusion, low-light conditions, motion blur, depth of field effects, and densely populated scenes. Despite these challenges, D-FINE consistently produces accurate localization results. + +

+ D-FINE Predictions in Challenging Scenarios +

+ +
+ + + + + + + +## Citation +If you use `D-FINE` or its methods in your work, please cite the following BibTeX entries: +
+ bibtex + +```latex +@misc{peng2024dfine, + title={D-FINE: Redefine Regression Task in DETRs as Fine-grained Distribution Refinement}, + author={Yansong Peng and Hebei Li and Peixi Wu and Yueyi Zhang and Xiaoyan Sun and Feng Wu}, + year={2024}, + eprint={2410.13842}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` +
+ +## Acknowledgement +Our work is built upon [RT-DETR](https://github.com/lyuwenyu/RT-DETR). +Thanks to the inspirations from [RT-DETR](https://github.com/lyuwenyu/RT-DETR), [GFocal](https://github.com/implus/GFocal), [LD](https://github.com/HikariTJU/LD), and [YOLOv9](https://github.com/WongKinYiu/yolov9). + +✨ Feel free to contribute and reach out if you have any questions! ✨ diff --git a/backend/apps/algorithms/algorithm/DFINE/README_cn.md b/backend/apps/algorithms/algorithm/DFINE/README_cn.md new file mode 100644 index 0000000..c9beb8e --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/README_cn.md @@ -0,0 +1,673 @@ + + +[English](README.md) | 简体中文 | [日本語](README_ja.md) | [English Blog](src/zoo/dfine/blog.md) | [中文博客](src/zoo/dfine/blog_cn.md) + +

+ D-FINE: Redefine Regression Task of DETRs as Fine‑grained Distribution Refinement +

+ +

+ + + license + + + prs + + + issues + + + arXiv + + + + pre-commit.ci status + + + stars + +

+ +

+ 📄 这是该文章的官方实现: +
+ D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +

+ + +

+彭岩松,李和倍,吴沛熹,张越一,孙晓艳,吴枫 +

+ +

+中国科学技术大学 +

+ +

+ + sota + +

+ + +

如果你喜欢 D-FINE,请给我们一个 ⭐!你的支持激励我们不断前进!

+ +

+ +

+ +D-FINE 是一个强大的实时目标检测器,将 DETR 中的边界框回归任务重新定义为了细粒度的分布优化(FDR),并引入全局最优的定位自蒸馏(GO-LSD),在不增加额外推理和训练成本的情况下,实现了卓越的性能。 + +
+ 视频 + +我们分别使用 D-FINE 和 YOLO11 对 [YouTube](https://www.youtube.com/watch?v=CfhEWj9sd9A) 上的一段复杂街景视频进行了目标检测。尽管存在逆光、虚化模糊和密集遮挡等不利因素,D-FINE-X 依然成功检测出几乎所有目标,包括背包、自行车和信号灯等难以察觉的小目标,其置信度、以及模糊边缘的定位准确度明显高于 YOLO11x。 + +https://github.com/user-attachments/assets/e5933d8e-3c8a-400e-870b-4e452f5321d9 + +
+ +## 🚀 Updates +- [x] **\[2024.10.18\]** 发布 D-FINE 系列。 +- [x] **\[2024.10.25\]** 添加了自定义数据集微调配置文件 ([#7](https://github.com/Peterande/D-FINE/issues/7))。 +- [x] **\[2024.10.30\]** 更新 D-FINE-L (E25) 预训练模型,性能提升了 2.0%。 +- [x] **\[2024.11.07\]** 发布 **D-FINE-N**, 在 COCO 上达到 42.8% APval @ 472 FPST4! + +## 模型库 + +### COCO +| 模型 | 数据集 | APval | 参数量 | 时延 (ms) | GFLOPs | 配置 | 权重 | 日志 | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑N** | COCO | **42.8** | 4M | 2.12ms | 7 | [yml](./configs/dfine/dfine_hgnetv2_n_coco.yml) | [42.8](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_n_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_n_coco_log.txt) +**D‑FINE‑S** | COCO | **48.5** | 10M | 3.49ms | 25 | [yml](./configs/dfine/dfine_hgnetv2_s_coco.yml) | [48.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_s_coco_log.txt) +**D‑FINE‑M** | COCO | **52.3** | 19M | 5.62ms | 57 | [yml](./configs/dfine/dfine_hgnetv2_m_coco.yml) | [52.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_m_coco_log.txt) +**D‑FINE‑L** | COCO | **54.0** | 31M | 8.07ms | 91 | [yml](./configs/dfine/dfine_hgnetv2_l_coco.yml) | [54.0](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_l_coco_log.txt) +**D‑FINE‑X** | COCO | **55.8** | 62M | 12.89ms | 202 | [yml](./configs/dfine/dfine_hgnetv2_x_coco.yml) | [55.8](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_x_coco_log.txt) + +### Objects365+COCO +| 模型 | 数据集 | APval | 参数量 | 时延 (ms) | GFLOPs | 配置 | 权重 | 日志 | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑S** | Objects365+COCO | **50.7** | 10M | 3.49ms | 25 | [yml](./configs/dfine/objects365/dfine_hgnetv2_s_obj2coco.yml) | [50.7](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_s_obj2coco_log.txt) +**D‑FINE‑M** | Objects365+COCO | **55.1** | 19M | 5.62ms | 57 | [yml](./configs/dfine/objects365/dfine_hgnetv2_m_obj2coco.yml) | [55.1](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_m_obj2coco_log.txt) +**D‑FINE‑L** | Objects365+COCO | **57.3** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj2coco.yml) | [57.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj2coco_e25.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_l_obj2coco_log_e25.txt) +**D‑FINE‑X** | Objects365+COCO | **59.3** | 62M | 12.89ms | 202 | [yml](./configs/dfine/objects365/dfine_hgnetv2_x_obj2coco.yml) | [59.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_x_obj2coco_log.txt) + +**我们强烈推荐您使用 Objects365 预训练模型进行微调:** + +⚠️ 重要提醒:通常这种预训练模型对复杂场景的理解非常有用。如果您的类别非常简单,请注意,这可能会导致过拟合和次优性能。 + +
🔥 Objects365 预训练模型(泛化性最好) + +| 模型 | 数据集 | APval | AP5000 | 参数量 | 时延 (ms) | GFLOPs | 配置 | 权重 | 日志 | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑S** | Objects365 | **31.0** | **30.5** | 10M | 3.49ms | 25 | [yml](./configs/dfine/objects365/dfine_hgnetv2_s_obj365.yml) | [30.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_s_obj365_log.txt) +**D‑FINE‑M** | Objects365 | **38.6** | **37.4** | 19M | 5.62ms | 57 | [yml](./configs/dfine/objects365/dfine_hgnetv2_m_obj365.yml) | [37.4](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_m_obj365_log.txt) +**D‑FINE‑L** | Objects365 | - | **40.6** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml) | [40.6](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_l_obj365_log.txt) +**D‑FINE‑L (E25)** | Objects365 | **44.7** | **42.6** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml) | [42.6](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj365_e25.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_l_obj365_log_e25.txt) +**D‑FINE‑X** | Objects365 | **49.5** | **46.5** | 62M | 12.89ms | 202 | [yml](./configs/dfine/objects365/dfine_hgnetv2_x_obj365.yml) | [46.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_x_obj365_log.txt) +- **E25**: 重新训练,并将训练延长至 25 个 epoch。 +- **APval** 是在 *Objects365* 完整的验证集上进行评估的。 +- **AP5000** 是在 *Objects365* 验证集的前5000个样本上评估的。 +
+ +**注意:** +- **APval** 是在 *MSCOCO val2017* 数据集上评估的。 +- **时延** 是在单张 T4 GPU 上以 $batch\\_size = 1$, $fp16$, 和 $TensorRT==10.4.0$ 评估的。 +- **Objects365+COCO** 表示使用在 *Objects365* 上预训练的权重在 *COCO* 上微调的模型。 + + + +## 快速开始 + +### 设置 + +```shell +conda create -n dfine python=3.11.9 +conda activate dfine +pip install -r requirements.txt +``` + + + + + +### 数据集准备 + + +
+ + COCO2017 数据集 + +1. 从 [OpenDataLab](https://opendatalab.com/OpenDataLab/COCO_2017) 或者 [COCO](https://cocodataset.org/#download) 下载 COCO2017。 +1.修改 [coco_detection.yml](./configs/dataset/coco_detection.yml) 中的路径。 + + ```yaml + train_dataloader: + img_folder: /data/COCO2017/train2017/ + ann_file: /data/COCO2017/annotations/instances_train2017.json + val_dataloader: + img_folder: /data/COCO2017/val2017/ + ann_file: /data/COCO2017/annotations/instances_val2017.json + ``` + +
+ +
+ Objects365 数据集 + +1. 从 [OpenDataLab](https://opendatalab.com/OpenDataLab/Objects365) 下载 Objects365。 + +2. 设置数据集的基础目录: +```shell +export BASE_DIR=/data/Objects365/data +``` + +3. 解压并整理目录结构如下: + +```shell +${BASE_DIR}/train +├── images +│ ├── v1 +│ │ ├── patch0 +│ │ │ ├── 000000000.jpg +│ │ │ ├── 000000001.jpg +│ │ │ └── ... (more images) +│ ├── v2 +│ │ ├── patchx +│ │ │ ├── 000000000.jpg +│ │ │ ├── 000000001.jpg +│ │ │ └── ... (more images) +├── zhiyuan_objv2_train.json +``` + +```shell +${BASE_DIR}/val +├── images +│ ├── v1 +│ │ ├── patch0 +│ │ │ ├── 000000000.jpg +│ │ │ └── ... (more images) +│ ├── v2 +│ │ ├── patchx +│ │ │ ├── 000000000.jpg +│ │ │ └── ... (more images) +├── zhiyuan_objv2_val.json +``` + + +4. 创建一个新目录来存储验证集中的图像: +```shell +mkdir -p ${BASE_DIR}/train/images_from_val +``` + +5. 将 val 目录中的 v1 和 v2 文件夹复制到 train/images_from_val 目录中 +```shell +cp -r ${BASE_DIR}/val/images/v1 ${BASE_DIR}/train/images_from_val/ +cp -r ${BASE_DIR}/val/images/v2 ${BASE_DIR}/train/images_from_val/ +``` + + +6. 运行 remap_obj365.py 将验证集中的部分样本合并到训练集中。具体来说,该脚本将索引在 5000 到 800000 之间的样本从验证集移动到训练集。 +```shell +python tools/remap_obj365.py --base_dir ${BASE_DIR} +``` + + +7. 运行 resize_obj365.py 脚本,将数据集中任何最大边长超过 640 像素的图像进行大小调整。使用步骤 5 中生成的更新后的 JSON 文件处理样本数据。 +```shell +python tools/resize_obj365.py --base_dir ${BASE_DIR} +``` + +8. 修改 [obj365_detection.yml](./configs/dataset/obj365_detection.yml) 中的路径。 + + ```yaml + train_dataloader: + img_folder: /data/Objects365/data/train + ann_file: /data/Objects365/data/train/new_zhiyuan_objv2_train_resized.json + val_dataloader: + img_folder: /data/Objects365/data/val/ + ann_file: /data/Objects365/data/val/new_zhiyuan_objv2_val_resized.json + ``` + + +
+ +
+CrowdHuman + +在此下载 COCO 格式的数据集:[链接](https://aistudio.baidu.com/datasetdetail/231455) + +
+ +
+自定义数据集 + +要在你的自定义数据集上训练,你需要将其组织为 COCO 格式。请按照以下步骤准备你的数据集: + +1. **将 `remap_mscoco_category` 设置为 `False`:** + + 这可以防止类别 ID 自动映射以匹配 MSCOCO 类别。 + + ```yaml + remap_mscoco_category: False + ``` + +2. **组织图像:** + + 按以下结构组织你的数据集目录: + + ```shell + dataset/ + ├── images/ + │ ├── train/ + │ │ ├── image1.jpg + │ │ ├── image2.jpg + │ │ └── ... + │ ├── val/ + │ │ ├── image1.jpg + │ │ ├── image2.jpg + │ │ └── ... + └── annotations/ + ├── instances_train.json + ├── instances_val.json + └── ... + ``` + + - **`images/train/`**: 包含所有训练图像。 + - **`images/val/`**: 包含所有验证图像。 + - **`annotations/`**: 包含 COCO 格式的注释文件。 + +3. **将注释转换为 COCO 格式:** + + 如果你的注释尚未为 COCO 格式,你需要进行转换。你可以参考以下 Python 脚本或使用现有工具: + + ```python + import json + + def convert_to_coco(input_annotations, output_annotations): + # Implement conversion logic here + pass + + if __name__ == "__main__": + convert_to_coco('path/to/your_annotations.json', 'dataset/annotations/instances_train.json') + ``` + +4. **更新配置文件:** + + 修改你的 [custom_detection.yml](./configs/dataset/custom_detection.yml)。 + + ```yaml + task: detection + + evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + + num_classes: 777 # your dataset classes + remap_mscoco_category: False + + train_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/train + ann_file: /data/yourdataset/train/train.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 4 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + val_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/val + ann_file: /data/yourdataset/val/ann.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 4 + drop_last: False + collate_fn: + type: BatchImageCollateFunction + ``` +
+ + +## 使用方法 +
+ COCO2017 + + +1. 设置模型 +```shell +export model=l # n s m l x +``` + +2. 训练 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --use-amp --seed=0 +``` + + +3. 测试 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --test-only -r model.pth +``` + + +4. 微调 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --use-amp --seed=0 -t model.pth +``` +
+ + +
+ 在 Objects365 上训练,在COCO2017上微调 + +1. 设置模型 +```shell +export model=l # n s m l x +``` + +2. 在 Objects365 上训练 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/objects365/dfine_hgnetv2_${model}_obj365.yml --use-amp --seed=0 +``` + +3. 在 COCO2017 上微调 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/objects365/dfine_hgnetv2_${model}_obj2coco.yml --use-amp --seed=0 -t model.pth +``` + + +4. 测试 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --test-only -r model.pth +``` +
+ + +
+ 自定义数据集 + +1. 设置模型 +```shell +export model=l # n s m l x +``` + +2. 在自定义数据集上训练 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --use-amp --seed=0 +``` + +3. 测试 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --test-only -r model.pth +``` + +4. 在自定义数据集上微调 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/objects365/dfine_hgnetv2_${model}_obj2custom.yml --use-amp --seed=0 -t model.pth +``` + +5. **[可选项]** 修改类映射: + +在使用 Objects365 预训练权重训练自定义数据集时,示例中假设自定义数据集仅有 `'Person'` 和 `'Car'` 类,您可以将其替换为数据集中对应的任何类别。为了加快收敛,可以在 `src/solver/_solver.py` 中修改 `self.obj365_ids`,如下所示: + +```python +self.obj365_ids = [0, 5] # Person, Cars +``` +Objects365 类及其对应 ID 的完整列表: +https://github.com/Peterande/D-FINE/blob/352a94ece291e26e1957df81277bef00fe88a8e3/src/solver/_solver.py#L330 + +新的训练启动命令: + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --use-amp --seed=0 -t model.pth +``` + +如果您不想修改类映射,预训练的 Objects365 权重依然可以不做任何更改直接使用。修改类映射是可选的,但针对特定任务可能会加快收敛速度。 + +
+ +
+ 自定义批次大小 + +例如,如果你想在训练 D-FINE-L 时将 COCO2017 的总批次大小增加一倍,请按照以下步骤操作: + +1. **修改你的 [dataloader.yml](./configs/dfine/include/dataloader.yml)**,增加 `total_batch_size`: + + ```yaml + train_dataloader: + total_batch_size: 64 # 原来是 32,现在增加了一倍 + ``` + +2. **修改你的 [dfine_hgnetv2_l_coco.yml](./configs/dfine/dfine_hgnetv2_l_coco.yml)**。 + + ```yaml + optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 # 翻倍,线性缩放原则 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.0005 # 翻倍,线性缩放原则 + betas: [0.9, 0.999] + weight_decay: 0.0001 # 需要网格搜索找到最优值 + + ema: # 添加 EMA 设置 + decay: 0.9998 # 根据 1 - (1 - decay) * 2 调整 + warmups: 500 # 减半 + + lr_warmup_scheduler: + warmup_duration: 250 # 减半 + ``` + +
+ +
+ 自定义输入尺寸 + +如果你想在 COCO2017 上使用 **D-FINE-L** 进行 320x320 尺寸的图片训练,按照以下步骤操作: + +1. **修改你的 [dataloader.yml](./configs/dfine/include/dataloader.yml)**: + + ```yaml + + train_dataloader: + dataset: + transforms: + ops: + - {type: Resize, size: [320, 320], } + collate_fn: + base_size: 320 + dataset: + transforms: + ops: + - {type: Resize, size: [320, 320], } + ``` + +2. **修改你的 [dfine_hgnetv2.yml](./configs/dfine/include/dfine_hgnetv2.yml)**: + + ```yaml + eval_spatial_size: [320, 320] + ``` + +
+ + +## 工具 + +
+ 部署 + + +1. 设置 +```shell +pip install onnx onnxsim onnxruntime +export model=l # n s m l x +``` + +2. 导出 onnx +```shell +python tools/export_onnx.py --check -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth +``` + +3. 导出 [tensorrt](https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html) +```shell +trtexec --onnx="model.onnx" --saveEngine="model.engine" --fp16 +``` + +
+ +
+ 推理(可视化) + + +1. 设置 +```shell +pip install -r tools/inference/requirements.txt +export model=l # n s m l x +``` + + + +2. 推理 (onnxruntime / tensorrt / torch) + +目前支持对图像和视频的推理。 +```shell +python tools/inference/onnx_inf.py --onnx model.onnx --input image.jpg # video.mp4 +python tools/inference/trt_inf.py --trt model.engine --input image.jpg +python tools/inference/torch_inf.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth --input image.jpg --device cuda:0 +``` +
+ +
+ 基准测试 + +1. 设置 +```shell +pip install -r tools/benchmark/requirements.txt +export model=l # n s m l x +``` + + +2. 模型 FLOPs、MACs、参数量 +```shell +python tools/benchmark/get_info.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml +``` + +2. TensorRT 延迟 +```shell +python tools/benchmark/trt_benchmark.py --COCO_dir path/to/COCO2017 --engine_dir model.engine +``` +
+ +
+ Voxel51 Fiftyone 可视化 + +1. 设置 +```shell +pip install fiftyone +export model=l # n s m l x +``` +4. Voxel51 Fiftyone 可视化 ([fiftyone](https://github.com/voxel51/fiftyone)) +```shell +python tools/visualization/fiftyone_vis.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth +``` +
+ +
+ 其他 + +1. 自动恢复(Auto Resume)训练 +```shell +bash reference/safe_training.sh +``` + +2. 模型权重转换 +```shell +python reference/convert_weight.py model.pth +``` +
+ +## 图表与可视化 + +
+ FDR 和 GO-LSD + +D-FINE与FDR概览。概率分布作为更细粒度的中间表征,通过解码器层以残差方式进行迭代优化。应用非均匀加权函数以实现更精细的定位。 +

+细粒度分布优化过程

+GO-LSD流程概览。通过DDF损失函数和解耦加权策略将最终层分布中的定位知识蒸馏到前面的层中。 +

GO-LSD流程

+ +
+ +
+ 分布可视化 + +FDR在检测场景中的可视化,包括初始和优化后的边界框,以及未加权和加权的分布图。 + +

+ +

+ +
+ +
+ 困难场景 + +以下可视化展示了D-FINE在各种复杂检测场景中的预测结果。这些场景包括遮挡、低光条件、运动模糊、景深效果和密集场景。尽管面临这些挑战,D-FINE依然能够生成准确的定位结果。 + +

+D-FINE在挑战性场景中的预测 +

+ +
+ + + + +## 引用 +如果你在工作中使用了 `D-FINE` 或其方法,请引用以下 BibTeX 条目: +
+ bibtex + +```latex +@misc{peng2024dfine, + title={D-FINE: Redefine Regression Task in DETRs as Fine-grained Distribution Refinement}, + author={Yansong Peng and Hebei Li and Peixi Wu and Yueyi Zhang and Xiaoyan Sun and Feng Wu}, + year={2024}, + eprint={2410.13842}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` +
+ +## 致谢 +我们的工作基于 [RT-DETR](https://github.com/lyuwenyu/RT-DETR)。 +感谢 [RT-DETR](https://github.com/lyuwenyu/RT-DETR), [GFocal](https://github.com/implus/GFocal), [LD](https://github.com/HikariTJU/LD), 和 [YOLOv9](https://github.com/WongKinYiu/yolov9) 的启发。 + +✨ 欢迎贡献并在有任何问题时联系我! ✨ diff --git a/backend/apps/algorithms/algorithm/DFINE/README_ja.md b/backend/apps/algorithms/algorithm/DFINE/README_ja.md new file mode 100644 index 0000000..e67c239 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/README_ja.md @@ -0,0 +1,698 @@ + + +[English](README.md) | [简体中文](README_cn.md) | 日本語 | [English Blog](src/zoo/dfine/blog.md) | [中文博客](src/zoo/dfine/blog_cn.md) + +

+ D-FINE: Redefine Regression Task of DETRs as Fine‑grained Distribution Refinement +

+ + + +

+ + license + + + prs + + + issues + + + arXiv + + + + pre-commit.ci status + + + stars + +

+ + + +

+ 📄 これは論文の公式実装です: +
+ D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +

+

+ D-FINE: DETRの回帰タスクを細粒度分布最適化として再定義 +

+ + + +

+Yansong Peng, Hebei Li, Peixi Wu, Yueyi Zhang, Xiaoyan Sun, and Feng Wu +

+ +

+中国科学技術大学 +

+ +

+ + sota + +

+ + + +

+もしD-FINEが気に入ったら、ぜひ⭐をください!あなたのサポートが私たちのモチベーションになります! +

+ +

+ +

+ +D-FINEは、DETRの境界ボックス回帰タスクを細粒度分布最適化(FDR)として再定義し、グローバル最適な位置特定自己蒸留(GO-LSD)を導入することで、追加の推論およびトレーニングコストを増やすことなく、優れたパフォーマンスを実現する強力なリアルタイムオブジェクト検出器です。 + +
+ ビデオ + +D-FINEとYOLO11を使用して、[YouTube](https://www.youtube.com/watch?v=CfhEWj9sd9A)の複雑な街並みのビデオでオブジェクト検出を行いました。逆光、モーションブラー、密集した群衆などの厳しい条件にもかかわらず、D-FINE-Xはほぼすべてのターゲットを検出し、バックパック、自転車、信号機などの微妙な小さなオブジェクトも含まれます。その信頼スコアとぼやけたエッジの位置特定精度はYOLO11よりもはるかに高いです。 + + + +https://github.com/user-attachments/assets/e5933d8e-3c8a-400e-870b-4e452f5321d9 + +
+ +## 🚀 更新情報 +- [x] **\[2024.10.18\]** D-FINEシリーズをリリース。 +- [x] **\[2024.10.25\]** カスタムデータセットの微調整設定を追加 ([#7](https://github.com/Peterande/D-FINE/issues/7))。 +- [x] **\[2024.10.30\]** D-FINE-L (E25) 事前トレーニングモデルを更新し、パフォーマンスが2.0%向上。 +- [x] **\[2024.11.07\]** **D-FINE-N** をリリース, COCO で 42.8% の APval を達成 @ 472 FPST4! + +## モデルズー + +### COCO +| モデル | データセット | APval | パラメータ数 | レイテンシ | GFLOPs | config | checkpoint | logs | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑N** | COCO | **42.8** | 4M | 2.12ms | 7 | [yml](./configs/dfine/dfine_hgnetv2_n_coco.yml) | [42.8](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_n_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_n_coco_log.txt) +**D‑FINE‑S** | COCO | **48.5** | 10M | 3.49ms | 25 | [yml](./configs/dfine/dfine_hgnetv2_s_coco.yml) | [48.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_s_coco_log.txt) +**D‑FINE‑M** | COCO | **52.3** | 19M | 5.62ms | 57 | [yml](./configs/dfine/dfine_hgnetv2_m_coco.yml) | [52.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_m_coco_log.txt) +**D‑FINE‑L** | COCO | **54.0** | 31M | 8.07ms | 91 | [yml](./configs/dfine/dfine_hgnetv2_l_coco.yml) | [54.0](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_l_coco_log.txt) +**D‑FINE‑X** | COCO | **55.8** | 62M | 12.89ms | 202 | [yml](./configs/dfine/dfine_hgnetv2_x_coco.yml) | [55.8](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/coco/dfine_x_coco_log.txt) + + +### Objects365+COCO +| モデル | データセット | APval | パラメータ数 | レイテンシ | GFLOPs | config | checkpoint | logs | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑S** | Objects365+COCO | **50.7** | 10M | 3.49ms | 25 | [yml](./configs/dfine/objects365/dfine_hgnetv2_s_obj2coco.yml) | [50.7](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_s_obj2coco_log.txt) +**D‑FINE‑M** | Objects365+COCO | **55.1** | 19M | 5.62ms | 57 | [yml](./configs/dfine/objects365/dfine_hgnetv2_m_obj2coco.yml) | [55.1](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_m_obj2coco_log.txt) +**D‑FINE‑L** | Objects365+COCO | **57.3** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj2coco.yml) | [57.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj2coco_e25.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_l_obj2coco_log_e25.txt) +**D‑FINE‑X** | Objects365+COCO | **59.3** | 62M | 12.89ms | 202 | [yml](./configs/dfine/objects365/dfine_hgnetv2_x_obj2coco.yml) | [59.3](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_obj2coco.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj2coco/dfine_x_obj2coco_log.txt) + +**微調整のために Objects365 の事前学習モデルを使用することを強くお勧めします:** + +⚠️ 重要なお知らせ:このプリトレインモデルは複雑なシーンの理解に有益ですが、カテゴリが非常に単純な場合、過学習や最適ではない性能につながる可能性がありますので、ご注意ください。 + +
🔥 Objects365で事前トレーニングされたモデル(最良の汎化性能) + + +| モデル | データセット | APval | AP5000 | パラメータ数 | レイテンシ | GFLOPs | config | checkpoint | logs | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +**D‑FINE‑S** | Objects365 | **31.0** | **30.5** | 10M | 3.49ms | 25 | [yml](./configs/dfine/objects365/dfine_hgnetv2_s_obj365.yml) | [30.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_s_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_s_obj365_log.txt) +**D‑FINE‑M** | Objects365 | **38.6** | **37.4** | 19M | 5.62ms | 57 | [yml](./configs/dfine/objects365/dfine_hgnetv2_m_obj365.yml) | [37.4](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_m_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_m_obj365_log.txt) +**D‑FINE‑L** | Objects365 | - | **40.6** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml) | [40.6](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_l_obj365_log.txt) +**D‑FINE‑L (E25)** | Objects365 | **44.7** | **42.6** | 31M | 8.07ms | 91 | [yml](./configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml) | [42.6](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_l_obj365_e25.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_l_obj365_log_e25.txt) +**D‑FINE‑X** | Objects365 | **49.5** | **46.5** | 62M | 12.89ms | 202 | [yml](./configs/dfine/objects365/dfine_hgnetv2_x_obj365.yml) | [46.5](https://github.com/Peterande/storage/releases/download/dfinev1.0/dfine_x_obj365.pth) | [url](https://raw.githubusercontent.com/Peterande/storage/refs/heads/master/logs/obj365/dfine_x_obj365_log.txt) +- **E25**: 再トレーニングし、事前トレーニングを25エポックに延長。 +- **APval** は *Objects365* のフルバリデーションセットで評価されます。 +- **AP5000** は *Objects365* 検証セットの最初の5000サンプルで評価されます。 +
+ +**注意事項:** +- **APval** は *MSCOCO val2017* データセットで評価されます。 +- **レイテンシ** は単一のT4 GPUで $batch\\_size = 1$, $fp16$, および $TensorRT==10.4.0$ で評価されます。 +- **Objects365+COCO** は *Objects365* で事前トレーニングされた重みを使用して *COCO* で微調整されたモデルを意味します。 + + + +## クイックスタート + +### セットアップ + +```shell +conda create -n dfine python=3.11.9 +conda activate dfine +pip install -r requirements.txt +``` + + +### データ準備 + +
+ COCO2017 データセット + +1. [OpenDataLab](https://opendatalab.com/OpenDataLab/COCO_2017) または [COCO](https://cocodataset.org/#download) からCOCO2017をダウンロードします。 +1. [coco_detection.yml](./configs/dataset/coco_detection.yml) のパスを修正します。 + + ```yaml + train_dataloader: + img_folder: /data/COCO2017/train2017/ + ann_file: /data/COCO2017/annotations/instances_train2017.json + val_dataloader: + img_folder: /data/COCO2017/val2017/ + ann_file: /data/COCO2017/annotations/instances_val2017.json + ``` + +
+ +
+ Objects365 データセット + +1. [OpenDataLab](https://opendatalab.com/OpenDataLab/Objects365) からObjects365をダウンロードします。 + +2. ベースディレクトリを設定します: +```shell +export BASE_DIR=/data/Objects365/data +``` + +3. ダウンロードしたファイルを解凍し、以下のディレクトリ構造に整理します: + +```shell +${BASE_DIR}/train +├── images +│ ├── v1 +│ │ ├── patch0 +│ │ │ ├── 000000000.jpg +│ │ │ ├── 000000001.jpg +│ │ │ └── ... (more images) +│ ├── v2 +│ │ ├── patchx +│ │ │ ├── 000000000.jpg +│ │ │ ├── 000000001.jpg +│ │ │ └── ... (more images) +├── zhiyuan_objv2_train.json +``` + +```shell +${BASE_DIR}/val +├── images +│ ├── v1 +│ │ ├── patch0 +│ │ │ ├── 000000000.jpg +│ │ │ └── ... (more images) +│ ├── v2 +│ │ ├── patchx +│ │ │ ├── 000000000.jpg +│ │ │ └── ... (more images) +├── zhiyuan_objv2_val.json +``` + +4. 検証セットの画像を保存する新しいディレクトリを作成します: +```shell +mkdir -p ${BASE_DIR}/train/images_from_val +``` + +5. valディレクトリのv1およびv2フォルダをtrain/images_from_valディレクトリにコピーします +```shell +cp -r ${BASE_DIR}/val/images/v1 ${BASE_DIR}/train/images_from_val/ +cp -r ${BASE_DIR}/val/images/v2 ${BASE_DIR}/train/images_from_val/ +``` + +6. remap_obj365.pyを実行して、検証セットの一部をトレーニングセットにマージします。具体的には、このスクリプトはインデックスが5000から800000のサンプルを検証セットからトレーニングセットに移動します。 +```shell +python tools/remap_obj365.py --base_dir ${BASE_DIR} +``` + + +7. resize_obj365.pyスクリプトを実行して、データセット内の最大エッジ長が640ピクセルを超える画像をリサイズします。ステップ5で生成された更新されたJSONファイルを使用してサンプルデータを処理します。トレーニングセットと検証セットの両方の画像をリサイズして、一貫性を保ちます。 +```shell +python tools/resize_obj365.py --base_dir ${BASE_DIR} +``` + +8. [obj365_detection.yml](./configs/dataset/obj365_detection.yml) のパスを修正します。 + + ```yaml + train_dataloader: + img_folder: /data/Objects365/data/train + ann_file: /data/Objects365/data/train/new_zhiyuan_objv2_train_resized.json + val_dataloader: + img_folder: /data/Objects365/data/val/ + ann_file: /data/Objects365/data/val/new_zhiyuan_objv2_val_resized.json + ``` + + +
+ +
+CrowdHuman + +こちらからCOCOフォーマットのデータセットをダウンロードしてください:[リンク](https://aistudio.baidu.com/datasetdetail/231455) + +
+ +
+カスタムデータセット + +カスタムデータセットでトレーニングするには、COCO形式で整理する必要があります。以下の手順に従ってデータセットを準備してください: + +1. **`remap_mscoco_category` を `False` に設定します**: + + これにより、カテゴリIDがMSCOCOカテゴリに自動的にマッピングされるのを防ぎます。 + + ```yaml + remap_mscoco_category: False + ``` + +2. **画像を整理します**: + + データセットディレクトリを以下のように構造化します: + + ```shell + dataset/ + ├── images/ + │ ├── train/ + │ │ ├── image1.jpg + │ │ ├── image2.jpg + │ │ └── ... + │ ├── val/ + │ │ ├── image1.jpg + │ │ ├── image2.jpg + │ │ └── ... + └── annotations/ + ├── instances_train.json + ├── instances_val.json + └── ... + ``` + + - **`images/train/`**: すべてのトレーニング画像を含みます。 + - **`images/val/`**: すべての検証画像を含みます。 + - **`annotations/`**: COCO形式の注釈ファイルを含みます。 + +3. **注釈をCOCO形式に変換します**: + + 注釈がまだCOCO形式でない場合は、変換する必要があります。以下のPythonスクリプトを参考にするか、既存のツールを利用してください: + + ```python + import json + + def convert_to_coco(input_annotations, output_annotations): + # 変換ロジックをここに実装します + pass + + if __name__ == "__main__": + convert_to_coco('path/to/your_annotations.json', 'dataset/annotations/instances_train.json') + ``` + +4. **設定ファイルを更新します**: + + [custom_detection.yml](./configs/dataset/custom_detection.yml) を修正します。 + + ```yaml + task: detection + + evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + + num_classes: 777 # データセットのクラス数 + remap_mscoco_category: False + + train_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/train + ann_file: /data/yourdataset/train/train.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 4 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + val_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/val + ann_file: /data/yourdataset/val/ann.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 4 + drop_last: False + collate_fn: + type: BatchImageCollateFunction + ``` + +
+ + +## 使用方法 +
+ COCO2017 + + +1. モデルを設定します +```shell +export model=l # n s m l x +``` + +2. トレーニング +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --use-amp --seed=0 +``` + + +3. テスト +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --test-only -r model.pth +``` + + +4. 微調整 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --use-amp --seed=0 -t model.pth +``` +
+ + +
+ Objects365からCOCO2017へ + +1. モデルを設定します +```shell +export model=l # n s m l x +``` + +2. Objects365でトレーニング +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/objects365/dfine_hgnetv2_${model}_obj365.yml --use-amp --seed=0 +``` + +3. COCO2017で微調整 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/objects365/dfine_hgnetv2_${model}_obj2coco.yml --use-amp --seed=0 -t model.pth +``` + + +4. テスト +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml --test-only -r model.pth +``` +
+ + +
+ カスタムデータセット + +1. モデルを設定します +```shell +export model=l # n s m l x +``` + +2. カスタムデータセットでトレーニング +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --use-amp --seed=0 +``` + +3. テスト +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --test-only -r model.pth +``` + +4. カスタムデータセットで微調整 +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/objects365/dfine_hgnetv2_${model}_obj2custom.yml --use-amp --seed=0 -t model.pth +``` + +5. **[オプション]** クラスマッピングを変更します: + +Objects365の事前トレーニング済みの重みを使用してカスタムデータセットでトレーニングする場合、例ではデータセットに `'Person'` と `'Car'` クラスのみが含まれていると仮定しています。特定のタスクに対して収束を早めるために、`src/solver/_solver.py` の `self.obj365_ids` を以下のように変更できます: + +```python +self.obj365_ids = [0, 5] # Person, Cars +``` +これらをデータセットの対応するクラスに置き換えることができます。Objects365クラスとその対応IDのリスト: +https://github.com/Peterande/D-FINE/blob/352a94ece291e26e1957df81277bef00fe88a8e3/src/solver/_solver.py#L330 + +新しいトレーニングコマンド: + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs/dfine/custom/dfine_hgnetv2_${model}_custom.yml --use-amp --seed=0 -t model.pth +``` + +ただし、クラスマッピングを変更したくない場合、事前トレーニング済みのObjects365の重みは変更なしでそのまま使用できます。クラスマッピングの変更はオプションであり、特定のタスクに対して収束を早める可能性があります。 + + + +
+ +
+ バッチサイズのカスタマイズ + +例えば、COCO2017でD-FINE-Lをトレーニングする際にバッチサイズを2倍にしたい場合、以下の手順に従ってください: + +1. **[dataloader.yml](./configs/dfine/include/dataloader.yml) を修正して `total_batch_size` を増やします**: + + ```yaml + train_dataloader: + total_batch_size: 64 # 以前は32、今は2倍 + ``` + +2. **[dfine_hgnetv2_l_coco.yml](./configs/dfine/dfine_hgnetv2_l_coco.yml) を修正します**。以下のように主要なパラメータを調整します: + + ```yaml + optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 # 2倍、線形スケーリング法則 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.0005 # 2倍、線形スケーリング法則 + betas: [0.9, 0.999] + weight_decay: 0.0001 # グリッドサーチが必要です + + ema: # EMA設定を追加 + decay: 0.9998 # 1 - (1 - decay) * 2 によって調整 + warmups: 500 # 半分 + + lr_warmup_scheduler: + warmup_duration: 250 # 半分 + ``` + +
+ + +
+ 入力サイズのカスタマイズ + +COCO2017で **D-FINE-L** を320x320の入力サイズでトレーニングしたい場合、以下の手順に従ってください: + +1. **[dataloader.yml](./configs/dfine/include/dataloader.yml) を修正します**: + + ```yaml + + train_dataloader: + dataset: + transforms: + ops: + - {type: Resize, size: [320, 320], } + collate_fn: + base_size: 320 + dataset: + transforms: + ops: + - {type: Resize, size: [320, 320], } + ``` + +2. **[dfine_hgnetv2.yml](./configs/dfine/include/dfine_hgnetv2.yml) を修正します**: + + ```yaml + eval_spatial_size: [320, 320] + ``` + +
+ +## ツール +
+ デプロイ + + +1. セットアップ +```shell +pip install onnx onnxsim +export model=l # n s m l x +``` + +2. onnxのエクスポート +```shell +python tools/deployment/export_onnx.py --check -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth +``` + +3. [tensorrt](https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html) のエクスポート +```shell +trtexec --onnx="model.onnx" --saveEngine="model.engine" --fp16 +``` + +
+ +
+ 推論(可視化) + + +1. セットアップ +```shell +pip install -r tools/inference/requirements.txt +export model=l # n s m l x +``` + + + +2. 推論 (onnxruntime / tensorrt / torch) + +現在、画像とビデオの推論がサポートされています。 +```shell +python tools/inference/onnx_inf.py --onnx model.onnx --input image.jpg # video.mp4 +python tools/inference/trt_inf.py --trt model.engine --input image.jpg +python tools/inference/torch_inf.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth --input image.jpg --device cuda:0 +``` +
+ +
+ ベンチマーク + +1. セットアップ +```shell +pip install -r tools/benchmark/requirements.txt +export model=l # n s m l x +``` + + +2. モデルのFLOPs、MACs、およびパラメータ数 +```shell +python tools/benchmark/get_info.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml +``` + +2. TensorRTのレイテンシ +```shell +python tools/benchmark/trt_benchmark.py --COCO_dir path/to/COCO2017 --engine_dir model.engine +``` +
+ +
+ Fiftyoneの可視化 + +1. セットアップ +```shell +pip install fiftyone +export model=l # n s m l x +``` +4. Voxel51 Fiftyoneの可視化 ([fiftyone](https://github.com/voxel51/fiftyone)) +```shell +python tools/visualization/fiftyone_vis.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml -r model.pth +``` +
+ +
+ その他 + +1. 自動再開トレーニング +```shell +bash reference/safe_training.sh +``` + +2. モデルの重みの変換 +```shell +python reference/convert_weight.py model.pth +``` +
+ +## 図と可視化 + +
+ FDRとGO-LSD + +1. FDRを搭載したD-FINEの概要。より細粒度の中間表現として機能する確率分布は、残差的にデコーダ層によって逐次最適化されます。 +不均一な重み付け関数が適用され、より細かい位置特定が可能になります。 + +

+ 細粒度分布最適化プロセス +

+ +2. GO-LSDプロセスの概要。最終層の最適化された分布からの位置特定知識は、デカップリングされた重み付け戦略を使用してDDF損失を通じて前の層に蒸留されます。 + +

+ GO-LSDプロセス +

+ +
+ +
+ 分布 + +初期および最適化された境界ボックスと、未重み付けおよび重み付けされた分布とともに、さまざまな検出シナリオにおけるFDRの可視化。 + +

+ +

+ +
+ +
+ 難しいケース + +以下の可視化は、さまざまな複雑な検出シナリオにおけるD-FINEの予測を示しています。これらのシナリオには、遮蔽、低光条件、モーションブラー、被写界深度効果、および密集したシーンが含まれます。これらの課題にもかかわらず、D-FINEは一貫して正確な位置特定結果を生成します。 + +

+ 複雑なシナリオにおけるD-FINEの予測 +

+ +
+ + + + + + + +## 引用 +もし`D-FINE`やその方法をあなたの仕事で使用する場合、以下のBibTeXエントリを引用してください: +
+ bibtex + +```latex +@misc{peng2024dfine, + title={D-FINE: Redefine Regression Task in DETRs as Fine-grained Distribution Refinement}, + author={Yansong Peng and Hebei Li and Peixi Wu and Yueyi Zhang and Xiaoyan Sun and Feng Wu}, + year={2024}, + eprint={2410.13842}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` +
+ +## 謝辞 +私たちの仕事は [RT-DETR](https://github.com/lyuwenyu/RT-DETR) に基づいています。 +[RT-DETR](https://github.com/lyuwenyu/RT-DETR), [GFocal](https://github.com/implus/GFocal), [LD](https://github.com/HikariTJU/LD), および [YOLOv9](https://github.com/WongKinYiu/yolov9) からのインスピレーションに感謝します。 + +✨ 貢献を歓迎し、質問があればお気軽にお問い合わせください! ✨ diff --git a/backend/apps/algorithms/algorithm/DFINE/collect_train_dataset_voctococo.py b/backend/apps/algorithms/algorithm/DFINE/collect_train_dataset_voctococo.py new file mode 100644 index 0000000..c1576df --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/collect_train_dataset_voctococo.py @@ -0,0 +1,91 @@ +import os +import json +import xml.etree.ElementTree as ET +from tqdm import tqdm +def collect_train_dataset_voctococo(): + XML_DIR = r"D:\project_space\01\006\datasets\002\images" # VOC格式xml文件夹路径 + IMG_DIR = r"D:\project_space\01\006\datasets\002\images" # 图片文件夹路径 + SAVE_PATH = r"D:\project_space\01\006\datasets\002\images\coco.json" # COCO格式json保存路径 + CLASSES = ['0'] # 改成你自己的类别 + + def get_category_id(name): + return CLASSES.index(name) + 1 + + # 3. 开始转换 + image_id = 1 + annotation_id = 1 + images = [] + annotations = [] + categories = [] + + # 4. 构建categories + for idx, name in enumerate(CLASSES): + categories.append({ + "id": idx + 1, + "name": name, + "supercategory": "none" + }) + + xml_files = [f for f in os.listdir(XML_DIR) if f.endswith('.xml')] + for xml_file in tqdm(xml_files): + xml_path = os.path.join(XML_DIR, xml_file) + tree = ET.parse(xml_path) + root = tree.getroot() + filename = root.find('filename').text + img_path = os.path.join(IMG_DIR, filename) + + # 获取图片尺寸 + size = root.find('size') + width = int(size.find('width').text) + height = int(size.find('height').text) + + # images部分 + images.append({ + "file_name": filename, + "height": height, + "width": width, + "id": image_id + }) + + # annotations部分 + for obj in root.findall('object'): + name = obj.find('name').text + if name not in CLASSES: + continue + category_id = get_category_id(name) + bndbox = obj.find('bndbox') + xmin = int(float(bndbox.find('xmin').text)) + ymin = int(float(bndbox.find('ymin').text)) + xmax = int(float(bndbox.find('xmax').text)) + ymax = int(float(bndbox.find('ymax').text)) + w = xmax - xmin + h = ymax - ymin + + # coco标注 + annotations.append({ + "id": annotation_id, + "image_id": image_id, + "category_id": category_id, + "bbox": [xmin, ymin, w, h], + "area": w * h, + "iscrowd": 0, + "segmentation": [] + }) + annotation_id += 1 + + image_id += 1 + + # 5. 整合并保存 + coco_format = { + "images": images, + "type": "instances", + "annotations": annotations, + "categories": categories + } + with open(SAVE_PATH, 'w', encoding='utf-8') as f: + json.dump(coco_format, f, ensure_ascii=False, indent=4) + + print(f"转换完成,共有 {len(images)} 张图片,{len(annotations)} 个标注。输出: {SAVE_PATH}") + +if __name__ == '__main__': + collect_train_dataset_voctococo() \ No newline at end of file diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dataset/coco_detection.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/coco_detection.yml new file mode 100644 index 0000000..df6a7ce --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/coco_detection.yml @@ -0,0 +1,41 @@ +task: detection + +evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + +num_classes: 1 +remap_mscoco_category: True + +train_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: D:\project_space\01\006\datasets\002\images + ann_file: D:\project_space\01\006\datasets\002\images\coco.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 2 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + +val_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: D:\project_space\01\006\datasets\002\images + ann_file: D:\project_space\01\006\datasets\002\images\coco.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 2 + drop_last: False + collate_fn: + type: BatchImageCollateFunction diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dataset/crowdhuman_detection.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/crowdhuman_detection.yml new file mode 100644 index 0000000..0a4bbad --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/crowdhuman_detection.yml @@ -0,0 +1,41 @@ +task: detection + +evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + +num_classes: 1 # your dataset classes +remap_mscoco_category: False + +train_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/CrowdHuman/coco/CrowdHuman_train + ann_file: /data/CrowdHuman/coco/Chuman-train.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 4 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + +val_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/CrowdHuman/coco/CrowdHuman_val + ann_file: /data/CrowdHuman/coco/Chuman-val.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 4 + drop_last: False + collate_fn: + type: BatchImageCollateFunction diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dataset/custom_detection.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/custom_detection.yml new file mode 100644 index 0000000..35435ad --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/custom_detection.yml @@ -0,0 +1,41 @@ +task: detection + +evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + +num_classes: 777 # your dataset classes +remap_mscoco_category: False + +train_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/train + ann_file: /data/yourdataset/train/train.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 4 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + +val_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/yourdataset/val + ann_file: /data/yourdataset/val/val.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 4 + drop_last: False + collate_fn: + type: BatchImageCollateFunction diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dataset/obj365_detection.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/obj365_detection.yml new file mode 100644 index 0000000..e58fdbc --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/obj365_detection.yml @@ -0,0 +1,41 @@ +task: detection + +evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + +num_classes: 366 +remap_mscoco_category: False + +train_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/Objects365/data/train + ann_file: /data/Objects365/data/train/new_zhiyuan_objv2_train_resized.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 4 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + +val_dataloader: + type: DataLoader + dataset: + type: CocoDetection + img_folder: /data/Objects365/data/val/ + ann_file: /data/Objects365/data/val/new_zhiyuan_objv2_val_resized.json + return_masks: False + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 4 + drop_last: False + collate_fn: + type: BatchImageCollateFunction diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dataset/voc_detection.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/voc_detection.yml new file mode 100644 index 0000000..1f9ceeb --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dataset/voc_detection.yml @@ -0,0 +1,40 @@ +task: detection + +evaluator: + type: CocoEvaluator + iou_types: ['bbox', ] + +num_classes: 20 + +train_dataloader: + type: DataLoader + dataset: + type: VOCDetection + root: ./dataset/voc/ + ann_file: trainval.txt + label_file: label_list.txt + transforms: + type: Compose + ops: ~ + shuffle: True + num_workers: 4 + drop_last: True + collate_fn: + type: BatchImageCollateFunction + + +val_dataloader: + type: DataLoader + dataset: + type: VOCDetection + root: ./dataset/voc/ + ann_file: test.txt + label_file: label_list.txt + transforms: + type: Compose + ops: ~ + shuffle: False + num_workers: 4 + drop_last: False + collate_fn: + type: BatchImageCollateFunction diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_l_ch.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_l_ch.yml new file mode 100644 index 0000000..761bcf8 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_l_ch.yml @@ -0,0 +1,44 @@ +__include__: [ + '../../dataset/crowdhuman_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_l_crowdhuman + + +HGNetv2: + name: 'B4' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000125 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 140 +train_dataloader: + dataset: + transforms: + policy: + epoch: 120 + collate_fn: + stop_epoch: 120 + ema_restart_decay: 0.9999 + base_size_repeat: 4 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_m_ch.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_m_ch.yml new file mode 100644 index 0000000..48d37f1 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_m_ch.yml @@ -0,0 +1,60 @@ +__include__: [ + '../../dataset/crowdhuman_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_m_crowdhuman + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B2' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 4 # 5 6 + eval_idx: -1 # -2 -3 + +HybridEncoder: + in_channels: [384, 768, 1536] + hidden_dim: 256 + depth_mult: 0.67 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000025 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 220 +train_dataloader: + dataset: + transforms: + policy: + epoch: 200 + collate_fn: + stop_epoch: 200 + ema_restart_decay: 0.9999 + base_size_repeat: 6 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_n_ch.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_n_ch.yml new file mode 100644 index 0000000..51528bc --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_n_ch.yml @@ -0,0 +1,82 @@ +__include__: [ + '../../dataset/crowdhuman_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_n_crowdhuman + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + + +HybridEncoder: + in_channels: [512, 1024] + feat_strides: [16, 32] + + # intra + hidden_dim: 128 + use_encoder_idx: [1] + dim_feedforward: 512 + + # cross + expansion: 0.34 + depth_mult: 0.5 + + +DFINETransformer: + feat_channels: [128, 128] + feat_strides: [16, 32] + hidden_dim: 128 + dim_feedforward: 512 + num_levels: 2 + + num_layers: 3 + eval_idx: -1 + + num_points: [6, 6] + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0004 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0004 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0008 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + +# Increase to search for the optimal ema +epochs: 220 +train_dataloader: + total_batch_size: 128 + dataset: + transforms: + policy: + epoch: 200 + collate_fn: + stop_epoch: 200 + ema_restart_decay: 0.9999 + base_size_repeat: ~ + +val_dataloader: + total_batch_size: 256 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_s_ch.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_s_ch.yml new file mode 100644 index 0000000..55ab8b8 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_s_ch.yml @@ -0,0 +1,65 @@ +__include__: [ + '../../dataset/crowdhuman_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_s_crowdhuman + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 3 # 4 5 6 + eval_idx: -1 # -2 -3 -4 + +HybridEncoder: + in_channels: [256, 512, 1024] + hidden_dim: 256 + depth_mult: 0.34 + expansion: 0.5 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0002 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0002 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0004 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + +# Increase to search for the optimal ema +epochs: 220 +train_dataloader: + total_batch_size: 64 + dataset: + transforms: + policy: + epoch: 200 + collate_fn: + stop_epoch: 200 + ema_restart_decay: 0.9999 + base_size_repeat: 20 + +val_dataloader: + total_batch_size: 128 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_x_ch.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_x_ch.yml new file mode 100644 index 0000000..2ab49a0 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/crowdhuman/dfine_hgnetv2_x_ch.yml @@ -0,0 +1,55 @@ +__include__: [ + '../../dataset/crowdhuman_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_x_crowdhuman + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B5' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +HybridEncoder: + hidden_dim: 384 + dim_feedforward: 2048 + +DFINETransformer: + feat_channels: [384, 384, 384] + reg_scale: 8 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000025 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 140 +train_dataloader: + dataset: + transforms: + policy: + epoch: 120 + collate_fn: + stop_epoch: 120 + ema_restart_decay: 0.9998 + base_size_repeat: 3 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_l_custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_l_custom.yml new file mode 100644 index 0000000..7526401 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_l_custom.yml @@ -0,0 +1,44 @@ +__include__: [ + '../../dataset/custom_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_l_custom + + +HGNetv2: + name: 'B4' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000125 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 80 # 72 + 2n +train_dataloader: + dataset: + transforms: + policy: + epoch: 72 + collate_fn: + stop_epoch: 72 + ema_restart_decay: 0.9999 + base_size_repeat: 4 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_m_custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_m_custom.yml new file mode 100644 index 0000000..bf31c1c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_m_custom.yml @@ -0,0 +1,60 @@ +__include__: [ + '../../dataset/custom_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_m_custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B2' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 4 # 5 6 + eval_idx: -1 # -2 -3 + +HybridEncoder: + in_channels: [384, 768, 1536] + hidden_dim: 256 + depth_mult: 0.67 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000025 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 132 # 120 + 4n +train_dataloader: + dataset: + transforms: + policy: + epoch: 120 + collate_fn: + stop_epoch: 120 + ema_restart_decay: 0.9999 + base_size_repeat: 6 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_n_custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_n_custom.yml new file mode 100644 index 0000000..6da7702 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_n_custom.yml @@ -0,0 +1,82 @@ +__include__: [ + '../../dataset/custom_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_n_custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + + +HybridEncoder: + in_channels: [512, 1024] + feat_strides: [16, 32] + + # intra + hidden_dim: 128 + use_encoder_idx: [1] + dim_feedforward: 512 + + # cross + expansion: 0.34 + depth_mult: 0.5 + + +DFINETransformer: + feat_channels: [128, 128] + feat_strides: [16, 32] + hidden_dim: 128 + dim_feedforward: 512 + num_levels: 2 + + num_layers: 3 + eval_idx: -1 + + num_points: [6, 6] + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0004 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0004 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0008 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + +# Increase to search for the optimal ema +epochs: 220 +train_dataloader: + total_batch_size: 128 + dataset: + transforms: + policy: + epoch: 200 + collate_fn: + stop_epoch: 200 + ema_restart_decay: 0.9999 + base_size_repeat: ~ + +val_dataloader: + total_batch_size: 256 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_s_custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_s_custom.yml new file mode 100644 index 0000000..285cb77 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_s_custom.yml @@ -0,0 +1,65 @@ +__include__: [ + '../../dataset/custom_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_s_custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 3 # 4 5 6 + eval_idx: -1 # -2 -3 -4 + +HybridEncoder: + in_channels: [256, 512, 1024] + hidden_dim: 256 + depth_mult: 0.34 + expansion: 0.5 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0002 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0002 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0004 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + +# Increase to search for the optimal ema +epochs: 220 +train_dataloader: + total_batch_size: 64 + dataset: + transforms: + policy: + epoch: 200 + collate_fn: + stop_epoch: 200 + ema_restart_decay: 0.9999 + base_size_repeat: 20 + +val_dataloader: + total_batch_size: 128 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_x_custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_x_custom.yml new file mode 100644 index 0000000..2ba5646 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/dfine_hgnetv2_x_custom.yml @@ -0,0 +1,55 @@ +__include__: [ + '../../dataset/custom_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_x_custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B5' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +HybridEncoder: + hidden_dim: 384 + dim_feedforward: 2048 + +DFINETransformer: + feat_channels: [384, 384, 384] + reg_scale: 8 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000025 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 80 # 72 + 2n +train_dataloader: + dataset: + transforms: + policy: + epoch: 72 + collate_fn: + stop_epoch: 72 + ema_restart_decay: 0.9998 + base_size_repeat: 3 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_l_obj2custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_l_obj2custom.yml new file mode 100644 index 0000000..ef6a95d --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_l_obj2custom.yml @@ -0,0 +1,53 @@ +__include__: [ + '../../../dataset/custom_detection.yml', + '../../../runtime.yml', + '../../include/dataloader.yml', + '../../include/optimizer.yml', + '../../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_l_obj2custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B4' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + pretrained: False + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000125 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 36 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 30 + collate_fn: + stop_epoch: 30 + ema_restart_decay: 0.9999 + base_size_repeat: 4 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_m_obj2custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_m_obj2custom.yml new file mode 100644 index 0000000..f21fbbc --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_m_obj2custom.yml @@ -0,0 +1,66 @@ +__include__: [ + '../../../dataset/custom_detection.yml', + '../../../runtime.yml', + '../../include/dataloader.yml', + '../../include/optimizer.yml', + '../../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_m_obj2custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B2' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + pretrained: False + +DFINETransformer: + num_layers: 4 # 5 6 + eval_idx: -1 # -2 -3 + +HybridEncoder: + in_channels: [384, 768, 1536] + hidden_dim: 256 + depth_mult: 0.67 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000025 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 56 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 48 + collate_fn: + stop_epoch: 48 + ema_restart_decay: 0.9999 + base_size_repeat: 6 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_s_obj2custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_s_obj2custom.yml new file mode 100644 index 0000000..9a74e34 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_s_obj2custom.yml @@ -0,0 +1,67 @@ +__include__: [ + '../../../dataset/custom_detection.yml', + '../../../runtime.yml', + '../../include/dataloader.yml', + '../../include/optimizer.yml', + '../../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_s_obj2custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + pretrained: False + +DFINETransformer: + num_layers: 3 # 4 5 6 + eval_idx: -1 # -2 -3 -4 + +HybridEncoder: + in_channels: [256, 512, 1024] + hidden_dim: 256 + depth_mult: 0.34 + expansion: 0.5 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000125 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000125 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 64 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 56 + collate_fn: + stop_epoch: 56 + ema_restart_decay: 0.9999 + base_size_repeat: 10 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_x_obj2custom.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_x_obj2custom.yml new file mode 100644 index 0000000..717812f --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/custom/objects365/dfine_hgnetv2_x_obj2custom.yml @@ -0,0 +1,62 @@ +__include__: [ + '../../../dataset/custom_detection.yml', + '../../../runtime.yml', + '../../include/dataloader.yml', + '../../include/optimizer.yml', + '../../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_x_obj2custom + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B5' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + pretrained: False + +HybridEncoder: + # intra + hidden_dim: 384 + dim_feedforward: 2048 + +DFINETransformer: + feat_channels: [384, 384, 384] + reg_scale: 8 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000025 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 36 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 30 + collate_fn: + stop_epoch: 30 + ema_restart_decay: 0.9999 + base_size_repeat: 3 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_l_coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_l_coco.yml new file mode 100644 index 0000000..c276ad5 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_l_coco.yml @@ -0,0 +1,44 @@ +__include__: [ + '../dataset/coco_detection.yml', + '../runtime.yml', + './include/dataloader.yml', + './include/optimizer.yml', + './include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_l_coco + + +HGNetv2: + name: 'B4' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000125 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 8 # 72 + 2n +train_dataloader: + dataset: + transforms: + policy: + epoch: 7 + collate_fn: + stop_epoch: 7 + ema_restart_decay: 0.9999 + base_size_repeat: 4 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_m_coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_m_coco.yml new file mode 100644 index 0000000..9837eac --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_m_coco.yml @@ -0,0 +1,60 @@ +__include__: [ + '../dataset/coco_detection.yml', + '../runtime.yml', + './include/dataloader.yml', + './include/optimizer.yml', + './include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_m_coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B2' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 4 # 5 6 + eval_idx: -1 # -2 -3 + +HybridEncoder: + in_channels: [384, 768, 1536] + hidden_dim: 256 + depth_mult: 0.67 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.00002 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.00002 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0002 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + +# Increase to search for the optimal ema +epochs: 132 # 120 + 4n +train_dataloader: + dataset: + transforms: + policy: + epoch: 120 + collate_fn: + stop_epoch: 120 + ema_restart_decay: 0.9999 + base_size_repeat: 6 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_n_coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_n_coco.yml new file mode 100644 index 0000000..f0c3a1a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_n_coco.yml @@ -0,0 +1,82 @@ +__include__: [ + '../dataset/coco_detection.yml', + '../runtime.yml', + './include/dataloader.yml', + './include/optimizer.yml', + './include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_n_coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + + +HybridEncoder: + in_channels: [512, 1024] + feat_strides: [16, 32] + + # intra + hidden_dim: 128 + use_encoder_idx: [1] + dim_feedforward: 512 + + # cross + expansion: 0.34 + depth_mult: 0.5 + + +DFINETransformer: + feat_channels: [128, 128] + feat_strides: [16, 32] + hidden_dim: 128 + dim_feedforward: 512 + num_levels: 2 + + num_layers: 3 + eval_idx: -1 + + num_points: [6, 6] + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0004 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0004 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0008 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + +# Increase to search for the optimal ema +epochs: 160 # 148 + 4n +train_dataloader: + total_batch_size: 128 + dataset: + transforms: + policy: + epoch: 148 + collate_fn: + stop_epoch: 148 + ema_restart_decay: 0.9999 + base_size_repeat: ~ + +val_dataloader: + total_batch_size: 256 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_s_coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_s_coco.yml new file mode 100644 index 0000000..e7aaa22 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_s_coco.yml @@ -0,0 +1,61 @@ +__include__: [ + '../dataset/coco_detection.yml', + '../runtime.yml', + './include/dataloader.yml', + './include/optimizer.yml', + './include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_s_coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 3 # 4 5 6 + eval_idx: -1 # -2 -3 -4 + +HybridEncoder: + in_channels: [256, 512, 1024] + hidden_dim: 256 + depth_mult: 0.34 + expansion: 0.5 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0001 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0001 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0002 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + +# Increase to search for the optimal ema +epochs: 132 # 120 + 4n +train_dataloader: + dataset: + transforms: + policy: + epoch: 120 + collate_fn: + stop_epoch: 120 + ema_restart_decay: 0.9999 + base_size_repeat: 20 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_x_coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_x_coco.yml new file mode 100644 index 0000000..136d799 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/dfine_hgnetv2_x_coco.yml @@ -0,0 +1,56 @@ +__include__: [ + '../dataset/coco_detection.yml', + '../runtime.yml', + './include/dataloader.yml', + './include/optimizer.yml', + './include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_x_coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B5' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +HybridEncoder: + # intra + hidden_dim: 384 + dim_feedforward: 2048 + +DFINETransformer: + feat_channels: [384, 384, 384] + reg_scale: 8 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000025 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +# Increase to search for the optimal ema +epochs: 8 # 72 + 2n +train_dataloader: + dataset: + transforms: + policy: + epoch: 7 + collate_fn: + stop_epoch: 7 + ema_restart_decay: 0.9998 + base_size_repeat: 3 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/dataloader.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/dataloader.yml new file mode 100644 index 0000000..3f7c67c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/dataloader.yml @@ -0,0 +1,39 @@ + +train_dataloader: + dataset: + transforms: + ops: + - {type: RandomPhotometricDistort, p: 0.5} + - {type: RandomZoomOut, fill: 0} + - {type: RandomIoUCrop, p: 0.8} + - {type: SanitizeBoundingBoxes, min_size: 1} + - {type: RandomHorizontalFlip} + - {type: Resize, size: [640, 640], } + - {type: SanitizeBoundingBoxes, min_size: 1} + - {type: ConvertPILImage, dtype: 'float32', scale: True} + - {type: ConvertBoxes, fmt: 'cxcywh', normalize: True} + policy: + name: stop_epoch + epoch: 72 # epoch in [71, ~) stop `ops` + ops: ['RandomPhotometricDistort', 'RandomZoomOut', 'RandomIoUCrop'] + + collate_fn: + type: BatchImageCollateFunction + base_size: 640 + base_size_repeat: 3 + stop_epoch: 72 # epoch in [72, ~) stop `multiscales` + + shuffle: True + total_batch_size: 32 # total batch size equals to 32 (4 * 8) + num_workers: 4 + + +val_dataloader: + dataset: + transforms: + ops: + - {type: Resize, size: [640, 640], } + - {type: ConvertPILImage, dtype: 'float32', scale: True} + shuffle: False + total_batch_size: 64 + num_workers: 4 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/dfine_hgnetv2.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/dfine_hgnetv2.yml new file mode 100644 index 0000000..91ad4a0 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/dfine_hgnetv2.yml @@ -0,0 +1,82 @@ +task: detection + +model: DFINE +criterion: DFINECriterion +postprocessor: DFINEPostProcessor + +use_focal_loss: True +eval_spatial_size: [640, 640] # h w + +DFINE: + backbone: HGNetv2 + encoder: HybridEncoder + decoder: DFINETransformer + +HGNetv2: + pretrained: True + local_model_dir: weight/hgnetv2/ + +HybridEncoder: + in_channels: [512, 1024, 2048] + feat_strides: [8, 16, 32] + + # intra + hidden_dim: 256 + use_encoder_idx: [2] + num_encoder_layers: 1 + nhead: 8 + dim_feedforward: 1024 + dropout: 0. + enc_act: 'gelu' + + # cross + expansion: 1.0 + depth_mult: 1 + act: 'silu' + + +DFINETransformer: + feat_channels: [256, 256, 256] + feat_strides: [8, 16, 32] + hidden_dim: 256 + num_levels: 3 + + num_layers: 6 + eval_idx: -1 + num_queries: 300 + + num_denoising: 100 + label_noise_ratio: 0.5 + box_noise_scale: 1.0 + + # NEW + reg_max: 32 + reg_scale: 4 + + # Auxiliary decoder layers dimension scaling + # "eg. If num_layers: 6 eval_idx: -4, + # then layer 3, 4, 5 are auxiliary decoder layers." + layer_scale: 1 # 2 + + + num_points: [3, 6, 3] # [4, 4, 4] [3, 6, 3] + cross_attn_method: default # default, discrete + query_select_method: default # default, agnostic + + +DFINEPostProcessor: + num_top_queries: 300 + + +DFINECriterion: + weight_dict: {loss_vfl: 1, loss_bbox: 5, loss_giou: 2, loss_fgl: 0.15, loss_ddf: 1.5} + losses: ['vfl', 'boxes', 'local'] + alpha: 0.75 + gamma: 2.0 + reg_max: 32 + + matcher: + type: HungarianMatcher + weight_dict: {cost_class: 2, cost_bbox: 5, cost_giou: 2} + alpha: 0.25 + gamma: 2.0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/optimizer.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/optimizer.yml new file mode 100644 index 0000000..8ec87c7 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/include/optimizer.yml @@ -0,0 +1,36 @@ +use_amp: True +use_ema: True +ema: + type: ModelEMA + decay: 0.9999 + warmups: 1000 + start: 0 + + +epochs: 72 +clip_max_norm: 0.1 + + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm).*$' + lr: 0.0000125 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +lr_scheduler: + type: MultiStepLR + milestones: [500] + gamma: 0.1 + +lr_warmup_scheduler: + type: LinearWarmup + warmup_duration: 500 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_l_obj2coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_l_obj2coco.yml new file mode 100644 index 0000000..f4fda63 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_l_obj2coco.yml @@ -0,0 +1,52 @@ +__include__: [ + '../../dataset/coco_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_l_obj2coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B4' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000125 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 36 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 30 + collate_fn: + stop_epoch: 30 + ema_restart_decay: 0.9999 + base_size_repeat: 4 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml new file mode 100644 index 0000000..c7a2876 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_l_obj365.yml @@ -0,0 +1,49 @@ +__include__: [ + '../../dataset/obj365_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_l_obj365 + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B4' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000125 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 +# weight_decay: 0.00005 # Faster convergence (optional) + + +epochs: 24 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 500 + collate_fn: + stop_epoch: 500 + base_size_repeat: 4 + +checkpoint_freq: 1 +print_freq: 1000 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_m_obj2coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_m_obj2coco.yml new file mode 100644 index 0000000..fd77cca --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_m_obj2coco.yml @@ -0,0 +1,65 @@ +__include__: [ + '../../dataset/coco_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_m_obj2coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B2' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 4 # 5 6 + eval_idx: -1 # -2 -3 + +HybridEncoder: + in_channels: [384, 768, 1536] + hidden_dim: 256 + depth_mult: 0.67 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000025 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 56 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 48 + collate_fn: + stop_epoch: 48 + ema_restart_decay: 0.9999 + base_size_repeat: 6 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_m_obj365.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_m_obj365.yml new file mode 100644 index 0000000..108d4e6 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_m_obj365.yml @@ -0,0 +1,62 @@ +__include__: [ + '../../dataset/obj365_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: .output/dfine_hgnetv2_s_obj365 + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B2' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 4 # 5 6 + eval_idx: -1 # -2 -3 + +HybridEncoder: + in_channels: [384, 768, 1536] + hidden_dim: 256 + depth_mult: 0.67 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000025 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000025 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 +# weight_decay: 0.00005 # Faster convergence (optional) + + +epochs: 36 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 500 + collate_fn: + stop_epoch: 500 + base_size_repeat: 6 + +checkpoint_freq: 1 +print_freq: 1000 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_n_obj2coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_n_obj2coco.yml new file mode 100644 index 0000000..6febf65 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_n_obj2coco.yml @@ -0,0 +1,88 @@ +__include__: [ + '../../dataset/coco_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_n_obj2coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + + +HybridEncoder: + in_channels: [512, 1024] + feat_strides: [16, 32] + + # intra + hidden_dim: 128 + use_encoder_idx: [1] + dim_feedforward: 512 + + # cross + expansion: 0.34 + depth_mult: 0.5 + + +DFINETransformer: + feat_channels: [128, 128] + feat_strides: [16, 32] + hidden_dim: 128 + dim_feedforward: 512 + num_levels: 2 + + num_layers: 3 + eval_idx: -1 + + num_points: [6, 6] + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0004 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0004 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0008 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + + +epochs: 64 # Early stop +train_dataloader: + total_batch_size: 128 + dataset: + transforms: + policy: + epoch: 56 + collate_fn: + stop_epoch: 56 + ema_restart_decay: 0.9999 + base_size_repeat: ~ + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 + +val_dataloader: + total_batch_size: 256 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_n_obj365.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_n_obj365.yml new file mode 100644 index 0000000..b5f148a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_n_obj365.yml @@ -0,0 +1,84 @@ +__include__: [ + '../../dataset/obj365_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_n_obj365 + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + + +HybridEncoder: + in_channels: [512, 1024] + feat_strides: [16, 32] + + # intra + hidden_dim: 128 + use_encoder_idx: [1] + dim_feedforward: 512 + + # cross + expansion: 0.34 + depth_mult: 0.5 + + +DFINETransformer: + feat_channels: [128, 128] + feat_strides: [16, 32] + hidden_dim: 128 + dim_feedforward: 512 + num_levels: 2 + + num_layers: 3 + eval_idx: -1 + + num_points: [6, 6] + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0004 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.0004 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.0008 + betas: [0.9, 0.999] + weight_decay: 0.0001 + + + +epochs: 48 # Early stop +train_dataloader: + total_batch_size: 128 + dataset: + transforms: + policy: + epoch: 500 + collate_fn: + stop_epoch: 500 + base_size_repeat: ~ + +checkpoint_freq: 1 +print_freq: 500 + +val_dataloader: + total_batch_size: 256 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_s_obj2coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_s_obj2coco.yml new file mode 100644 index 0000000..9fa01e2 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_s_obj2coco.yml @@ -0,0 +1,66 @@ +__include__: [ + '../../dataset/coco_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_s_obj2coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 3 # 4 5 6 + eval_idx: -1 # -2 -3 -4 + +HybridEncoder: + in_channels: [256, 512, 1024] + hidden_dim: 256 + depth_mult: 0.34 + expansion: 0.5 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000125 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000125 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 64 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 56 + collate_fn: + stop_epoch: 56 + ema_restart_decay: 0.9999 + base_size_repeat: 10 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_s_obj365.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_s_obj365.yml new file mode 100644 index 0000000..1e98a0d --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_s_obj365.yml @@ -0,0 +1,63 @@ +__include__: [ + '../../dataset/obj365_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_s_obj365 + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B0' + return_idx: [1, 2, 3] + freeze_at: -1 + freeze_norm: False + use_lab: True + +DFINETransformer: + num_layers: 3 # 4 5 6 + eval_idx: -1 # -2 -3 -4 + +HybridEncoder: + in_channels: [256, 512, 1024] + hidden_dim: 256 + depth_mult: 0.34 + expansion: 0.5 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.000125 + - + params: '^(?=.*backbone)(?=.*norm|bn).*$' + lr: 0.000125 + weight_decay: 0. + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn|bias)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 +# weight_decay: 0.00005 # Faster convergence (optional) + + +epochs: 36 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 500 + collate_fn: + stop_epoch: 500 + base_size_repeat: 20 + +checkpoint_freq: 1 +print_freq: 1000 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_x_obj2coco.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_x_obj2coco.yml new file mode 100644 index 0000000..738c75d --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_x_obj2coco.yml @@ -0,0 +1,61 @@ +__include__: [ + '../../dataset/coco_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_x_obj2coco + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B5' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +HybridEncoder: + # intra + hidden_dim: 384 + dim_feedforward: 2048 + +DFINETransformer: + feat_channels: [384, 384, 384] + reg_scale: 8 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000025 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 + + +epochs: 36 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 30 + collate_fn: + stop_epoch: 30 + ema_restart_decay: 0.9999 + base_size_repeat: 3 + +ema: + warmups: 0 + +lr_warmup_scheduler: + warmup_duration: 0 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_x_obj365.yml b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_x_obj365.yml new file mode 100644 index 0000000..0449d72 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/dfine/objects365/dfine_hgnetv2_x_obj365.yml @@ -0,0 +1,58 @@ +__include__: [ + '../../dataset/obj365_detection.yml', + '../../runtime.yml', + '../include/dataloader.yml', + '../include/optimizer.yml', + '../include/dfine_hgnetv2.yml', +] + +output_dir: ./output/dfine_hgnetv2_x_obj365 + + +DFINE: + backbone: HGNetv2 + +HGNetv2: + name: 'B5' + return_idx: [1, 2, 3] + freeze_stem_only: True + freeze_at: 0 + freeze_norm: True + +HybridEncoder: + # intra + hidden_dim: 384 + dim_feedforward: 2048 + +DFINETransformer: + feat_channels: [384, 384, 384] + reg_scale: 8 + +optimizer: + type: AdamW + params: + - + params: '^(?=.*backbone)(?!.*norm|bn).*$' + lr: 0.0000025 + - + params: '^(?=.*(?:encoder|decoder))(?=.*(?:norm|bn)).*$' + weight_decay: 0. + + lr: 0.00025 + betas: [0.9, 0.999] + weight_decay: 0.000125 +# weight_decay: 0.00005 # Faster convergence (optional) + + +epochs: 24 # Early stop +train_dataloader: + dataset: + transforms: + policy: + epoch: 500 + collate_fn: + stop_epoch: 500 + base_size_repeat: 3 + +checkpoint_freq: 1 +print_freq: 1000 diff --git a/backend/apps/algorithms/algorithm/DFINE/configs/runtime.yml b/backend/apps/algorithms/algorithm/DFINE/configs/runtime.yml new file mode 100644 index 0000000..b99af4a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/configs/runtime.yml @@ -0,0 +1,24 @@ +print_freq: 100 +output_dir: './logs' +checkpoint_freq: 12 + + +sync_bn: True +find_unused_parameters: False + + +use_amp: False +scaler: + type: GradScaler + enabled: True + + +use_ema: False +ema: + type: ModelEMA + decay: 0.9999 + warmups: 1000 + +use_wandb: False +project_name: D-FINE # for wandb +exp_name: baseline # wandb experiment name diff --git a/backend/apps/algorithms/algorithm/DFINE/reference/convert_weight.py b/backend/apps/algorithms/algorithm/DFINE/reference/convert_weight.py new file mode 100644 index 0000000..6dd3207 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/reference/convert_weight.py @@ -0,0 +1,30 @@ +import argparse +import os + +import torch + + +def save_only_ema_weights(checkpoint_file): + """Extract and save only the EMA weights.""" + checkpoint = torch.load(checkpoint_file, map_location="cpu") + + weights = {} + if "ema" in checkpoint: + weights["model"] = checkpoint["ema"]["module"] + else: + raise ValueError("The checkpoint does not contain 'ema'.") + + dir_name, base_name = os.path.split(checkpoint_file) + name, ext = os.path.splitext(base_name) + output_file = os.path.join(dir_name, f"{name}_converted{ext}") + + torch.save(weights, output_file) + print(f"EMA weights saved to {output_file}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Extract and save only EMA weights.") + parser.add_argument("checkpoint_file", type=str, help="Path to the input checkpoint file.") + + args = parser.parse_args() + save_only_ema_weights(args.checkpoint_file) diff --git a/backend/apps/algorithms/algorithm/DFINE/reference/safe_training.sh b/backend/apps/algorithms/algorithm/DFINE/reference/safe_training.sh new file mode 100644 index 0000000..d3c752a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/reference/safe_training.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +# Function to display the menu for selecting model size +select_model_size() { + echo "Select model size:" + select size in s m l x; do + case $size in + s|m|l|x) + echo "You selected model size: $size" + MODEL_SIZE=$size + break + ;; + *) + echo "Invalid selection. Please try again." + ;; + esac + done +} + +# Function to display the menu for selecting task +select_task() { + echo "Select task:" + select task in obj365 obj2coco coco; do + case $task in + obj365|obj2coco|coco) + echo "You selected task: $task" + TASK=$task + break + ;; + *) + echo "Invalid selection. Please try again." + ;; + esac + done +} + +# Function to ask if the user wants to save logs to a txt file +ask_save_logs() { + while true; do + read -p "Do you want to save logs to a txt file? (y/n): " yn + case $yn in + [Yy]* ) + SAVE_LOGS=true + break + ;; + [Nn]* ) + SAVE_LOGS=false + break + ;; + * ) echo "Please answer yes or no.";; + esac + done +} + +# Call the functions to let the user select +select_model_size +select_task +ask_save_logs + +# Set config file and output directory based on selection +if [ "$TASK" = "coco" ]; then + CONFIG_FILE="configs/dfine/dfine_hgnetv2_${MODEL_SIZE}_${TASK}.yml" +else + CONFIG_FILE="configs/dfine/objects365/dfine_hgnetv2_${MODEL_SIZE}_${TASK}.yml" +fi + +OUTPUT_DIR="output/${MODEL_SIZE}_${TASK}" + +# Construct the training command +TRAIN_CMD="CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c $CONFIG_FILE --use-amp --seed=0 --output-dir $OUTPUT_DIR" + +# Append log redirection if SAVE_LOGS is true +if [ "$SAVE_LOGS" = true ]; then + LOG_FILE="${MODEL_SIZE}_${TASK}.txt" + TRAIN_CMD="$TRAIN_CMD &> \"$LOG_FILE\" 2>&1 &" +else + TRAIN_CMD="$TRAIN_CMD &" +fi + +# Run the training command +eval $TRAIN_CMD +if [ $? -ne 0 ]; then + echo "First training failed, restarting with resume option..." + while true; do + RESUME_CMD="CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c $CONFIG_FILE --use-amp --seed=0 --output-dir $OUTPUT_DIR -r ${OUTPUT_DIR}/last.pth" + if [ "$SAVE_LOGS" = true ]; then + LOG_FILE="${MODEL_SIZE}_${TASK}_2.txt" + RESUME_CMD="$RESUME_CMD &> \"$LOG_FILE\" 2>&1 &" + else + RESUME_CMD="$RESUME_CMD &" + fi + eval $RESUME_CMD + if [ $? -eq 0 ]; then + break + fi + done +fi diff --git a/backend/apps/algorithms/algorithm/DFINE/requirements.txt b/backend/apps/algorithms/algorithm/DFINE/requirements.txt new file mode 100644 index 0000000..aadfb81 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/requirements.txt @@ -0,0 +1,9 @@ +torch>=2.0.1 +torchvision>=0.15.2 +faster-coco-eval>=1.6.6 +PyYAML +tensorboard +scipy +calflops +transformers +loguru diff --git a/backend/apps/algorithms/algorithm/DFINE/src/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/__init__.py new file mode 100644 index 0000000..15e3d5a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/__init__.py @@ -0,0 +1,6 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +# for register purpose +from . import data, nn, optim, zoo diff --git a/backend/apps/algorithms/algorithm/DFINE/src/core/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/core/__init__.py new file mode 100644 index 0000000..a938d56 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/core/__init__.py @@ -0,0 +1,9 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from ._config import BaseConfig +from .workspace import GLOBAL_CONFIG, create, register +from .yaml_config import YAMLConfig +from .yaml_utils import * diff --git a/backend/apps/algorithms/algorithm/DFINE/src/core/_config.py b/backend/apps/algorithms/algorithm/DFINE/src/core/_config.py new file mode 100644 index 0000000..3bef075 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/core/_config.py @@ -0,0 +1,299 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from pathlib import Path +from typing import Callable, Dict, List + +import torch +import torch.nn as nn +from torch.cuda.amp.grad_scaler import GradScaler +from torch.optim import Optimizer +from torch.optim.lr_scheduler import LRScheduler +from torch.utils.data import DataLoader, Dataset +from torch.utils.tensorboard import SummaryWriter + +__all__ = [ + "BaseConfig", +] + + +class BaseConfig(object): + # TODO property + + def __init__(self) -> None: + super().__init__() + + self.task: str = None + + # instance / function + self._model: nn.Module = None + self._postprocessor: nn.Module = None + self._criterion: nn.Module = None + self._optimizer: Optimizer = None + self._lr_scheduler: LRScheduler = None + self._lr_warmup_scheduler: LRScheduler = None + self._train_dataloader: DataLoader = None + self._val_dataloader: DataLoader = None + self._ema: nn.Module = None + self._scaler: GradScaler = None + self._train_dataset: Dataset = None + self._val_dataset: Dataset = None + self._collate_fn: Callable = None + self._evaluator: Callable[[nn.Module, DataLoader, str],] = None + self._writer: SummaryWriter = None + + # dataset + self.num_workers: int = 0 + self.batch_size: int = None + self._train_batch_size: int = None + self._val_batch_size: int = None + self._train_shuffle: bool = None + self._val_shuffle: bool = None + + # runtime + self.resume: str = None + self.tuning: str = None + + self.epochs: int = None + self.last_epoch: int = -1 + + self.use_amp: bool = False + self.use_ema: bool = False + self.ema_decay: float = 0.9999 + self.ema_warmups: int = 2000 + self.sync_bn: bool = False + self.clip_max_norm: float = 0.0 + self.find_unused_parameters: bool = None + + self.seed: int = None + self.print_freq: int = None + self.checkpoint_freq: int = 1 + self.output_dir: str = None + self.summary_dir: str = None + self.device: str = "" + + @property + def model(self) -> nn.Module: + return self._model + + @model.setter + def model(self, m): + assert isinstance(m, nn.Module), f"{type(m)} != nn.Module, please check your model class" + self._model = m + + @property + def postprocessor(self) -> nn.Module: + return self._postprocessor + + @postprocessor.setter + def postprocessor(self, m): + assert isinstance(m, nn.Module), f"{type(m)} != nn.Module, please check your model class" + self._postprocessor = m + + @property + def criterion(self) -> nn.Module: + return self._criterion + + @criterion.setter + def criterion(self, m): + assert isinstance(m, nn.Module), f"{type(m)} != nn.Module, please check your model class" + self._criterion = m + + @property + def optimizer(self) -> Optimizer: + return self._optimizer + + @optimizer.setter + def optimizer(self, m): + assert isinstance( + m, Optimizer + ), f"{type(m)} != optim.Optimizer, please check your model class" + self._optimizer = m + + @property + def lr_scheduler(self) -> LRScheduler: + return self._lr_scheduler + + @lr_scheduler.setter + def lr_scheduler(self, m): + assert isinstance( + m, LRScheduler + ), f"{type(m)} != LRScheduler, please check your model class" + self._lr_scheduler = m + + @property + def lr_warmup_scheduler(self) -> LRScheduler: + return self._lr_warmup_scheduler + + @lr_warmup_scheduler.setter + def lr_warmup_scheduler(self, m): + self._lr_warmup_scheduler = m + + @property + def train_dataloader(self) -> DataLoader: + if self._train_dataloader is None and self.train_dataset is not None: + loader = DataLoader( + self.train_dataset, + batch_size=self.train_batch_size, + num_workers=self.num_workers, + collate_fn=self.collate_fn, + shuffle=self.train_shuffle, + ) + loader.shuffle = self.train_shuffle + self._train_dataloader = loader + + return self._train_dataloader + + @train_dataloader.setter + def train_dataloader(self, loader): + self._train_dataloader = loader + + @property + def val_dataloader(self) -> DataLoader: + if self._val_dataloader is None and self.val_dataset is not None: + loader = DataLoader( + self.val_dataset, + batch_size=self.val_batch_size, + num_workers=self.num_workers, + drop_last=False, + collate_fn=self.collate_fn, + shuffle=self.val_shuffle, + persistent_workers=True, + ) + loader.shuffle = self.val_shuffle + self._val_dataloader = loader + + return self._val_dataloader + + @val_dataloader.setter + def val_dataloader(self, loader): + self._val_dataloader = loader + + @property + def ema(self) -> nn.Module: + if self._ema is None and self.use_ema and self.model is not None: + from ..optim import ModelEMA + + self._ema = ModelEMA(self.model, self.ema_decay, self.ema_warmups) + return self._ema + + @ema.setter + def ema(self, obj): + self._ema = obj + + @property + def scaler(self) -> GradScaler: + if self._scaler is None and self.use_amp and torch.cuda.is_available(): + self._scaler = GradScaler() + return self._scaler + + @scaler.setter + def scaler(self, obj: GradScaler): + self._scaler = obj + + @property + def val_shuffle(self) -> bool: + if self._val_shuffle is None: + print("warning: set default val_shuffle=False") + return False + return self._val_shuffle + + @val_shuffle.setter + def val_shuffle(self, shuffle): + assert isinstance(shuffle, bool), "shuffle must be bool" + self._val_shuffle = shuffle + + @property + def train_shuffle(self) -> bool: + if self._train_shuffle is None: + print("warning: set default train_shuffle=True") + return True + return self._train_shuffle + + @train_shuffle.setter + def train_shuffle(self, shuffle): + assert isinstance(shuffle, bool), "shuffle must be bool" + self._train_shuffle = shuffle + + @property + def train_batch_size(self) -> int: + if self._train_batch_size is None and isinstance(self.batch_size, int): + print(f"warning: set train_batch_size=batch_size={self.batch_size}") + return self.batch_size + return self._train_batch_size + + @train_batch_size.setter + def train_batch_size(self, batch_size): + assert isinstance(batch_size, int), "batch_size must be int" + self._train_batch_size = batch_size + + @property + def val_batch_size(self) -> int: + if self._val_batch_size is None: + print(f"warning: set val_batch_size=batch_size={self.batch_size}") + return self.batch_size + return self._val_batch_size + + @val_batch_size.setter + def val_batch_size(self, batch_size): + assert isinstance(batch_size, int), "batch_size must be int" + self._val_batch_size = batch_size + + @property + def train_dataset(self) -> Dataset: + return self._train_dataset + + @train_dataset.setter + def train_dataset(self, dataset): + assert isinstance(dataset, Dataset), f"{type(dataset)} must be Dataset" + self._train_dataset = dataset + + @property + def val_dataset(self) -> Dataset: + return self._val_dataset + + @val_dataset.setter + def val_dataset(self, dataset): + assert isinstance(dataset, Dataset), f"{type(dataset)} must be Dataset" + self._val_dataset = dataset + + @property + def collate_fn(self) -> Callable: + return self._collate_fn + + @collate_fn.setter + def collate_fn(self, fn): + assert isinstance(fn, Callable), f"{type(fn)} must be Callable" + self._collate_fn = fn + + @property + def evaluator(self) -> Callable: + return self._evaluator + + @evaluator.setter + def evaluator(self, fn): + assert isinstance(fn, Callable), f"{type(fn)} must be Callable" + self._evaluator = fn + + @property + def writer(self) -> SummaryWriter: + if self._writer is None: + if self.summary_dir: + self._writer = SummaryWriter(self.summary_dir) + elif self.output_dir: + self._writer = SummaryWriter(Path(self.output_dir) / "summary") + return self._writer + + @writer.setter + def writer(self, m): + assert isinstance(m, SummaryWriter), f"{type(m)} must be SummaryWriter" + self._writer = m + + def __repr__(self): + s = "" + for k, v in self.__dict__.items(): + if not k.startswith("_"): + s += f"{k}: {v}\n" + return s diff --git a/backend/apps/algorithms/algorithm/DFINE/src/core/workspace.py b/backend/apps/algorithms/algorithm/DFINE/src/core/workspace.py new file mode 100644 index 0000000..b99e317 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/core/workspace.py @@ -0,0 +1,178 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import functools +import importlib +import inspect +from collections import defaultdict +from typing import Any, Dict, List, Optional + +GLOBAL_CONFIG = defaultdict(dict) + + +def register(dct: Any = GLOBAL_CONFIG, name=None, force=False): + """ + dct: + if dct is Dict, register foo into dct as key-value pair + if dct is Clas, register as modules attibute + force + whether force register. + """ + + def decorator(foo): + register_name = foo.__name__ if name is None else name + if not force: + if inspect.isclass(dct): + assert not hasattr(dct, foo.__name__), f"module {dct.__name__} has {foo.__name__}" + else: + assert foo.__name__ not in dct, f"{foo.__name__} has been already registered" + + if inspect.isfunction(foo): + + @functools.wraps(foo) + def wrap_func(*args, **kwargs): + return foo(*args, **kwargs) + + if isinstance(dct, dict): + dct[foo.__name__] = wrap_func + elif inspect.isclass(dct): + setattr(dct, foo.__name__, wrap_func) + else: + raise AttributeError("") + return wrap_func + + elif inspect.isclass(foo): + dct[register_name] = extract_schema(foo) + + else: + raise ValueError(f"Do not support {type(foo)} register") + + return foo + + return decorator + + +def extract_schema(module: type): + """ + Args: + module (type), + Return: + Dict, + """ + argspec = inspect.getfullargspec(module.__init__) + arg_names = [arg for arg in argspec.args if arg != "self"] + num_defualts = len(argspec.defaults) if argspec.defaults is not None else 0 + num_requires = len(arg_names) - num_defualts + + schame = dict() + schame["_name"] = module.__name__ + schame["_pymodule"] = importlib.import_module(module.__module__) + schame["_inject"] = getattr(module, "__inject__", []) + schame["_share"] = getattr(module, "__share__", []) + schame["_kwargs"] = {} + for i, name in enumerate(arg_names): + if name in schame["_share"]: + assert i >= num_requires, "share config must have default value." + value = argspec.defaults[i - num_requires] + + elif i >= num_requires: + value = argspec.defaults[i - num_requires] + + else: + value = None + + schame[name] = value + schame["_kwargs"][name] = value + + return schame + + +def create(type_or_name, global_cfg=GLOBAL_CONFIG, **kwargs): + """ """ + assert type(type_or_name) in (type, str), "create should be modules or name." + + name = type_or_name if isinstance(type_or_name, str) else type_or_name.__name__ + + if name in global_cfg: + if hasattr(global_cfg[name], "__dict__"): + return global_cfg[name] + else: + raise ValueError("The module {} is not registered".format(name)) + + cfg = global_cfg[name] + + if isinstance(cfg, dict) and "type" in cfg: + _cfg: dict = global_cfg[cfg["type"]] + # clean args + _keys = [k for k in _cfg.keys() if not k.startswith("_")] + for _arg in _keys: + del _cfg[_arg] + _cfg.update(_cfg["_kwargs"]) # restore default args + _cfg.update(cfg) # load config args + _cfg.update(kwargs) # TODO recive extra kwargs + name = _cfg.pop("type") # pop extra key `type` (from cfg) + + return create(name, global_cfg) + + module = getattr(cfg["_pymodule"], name) + module_kwargs = {} + module_kwargs.update(cfg) + + # shared var + for k in cfg["_share"]: + if k in global_cfg: + module_kwargs[k] = global_cfg[k] + else: + module_kwargs[k] = cfg[k] + + # inject + for k in cfg["_inject"]: + _k = cfg[k] + + if _k is None: + continue + + if isinstance(_k, str): + if _k not in global_cfg: + raise ValueError(f"Missing inject config of {_k}.") + + _cfg = global_cfg[_k] + + if isinstance(_cfg, dict): + module_kwargs[k] = create(_cfg["_name"], global_cfg) + else: + module_kwargs[k] = _cfg + + elif isinstance(_k, dict): + if "type" not in _k.keys(): + raise ValueError("Missing inject for `type` style.") + + _type = str(_k["type"]) + if _type not in global_cfg: + raise ValueError(f"Missing {_type} in inspect stage.") + + # TODO + _cfg: dict = global_cfg[_type] + # clean args + _keys = [k for k in _cfg.keys() if not k.startswith("_")] + for _arg in _keys: + del _cfg[_arg] + _cfg.update(_cfg["_kwargs"]) # restore default values + _cfg.update(_k) # load config args + name = _cfg.pop("type") # pop extra key (`type` from _k) + module_kwargs[k] = create(name, global_cfg) + + else: + raise ValueError(f"Inject does not support {_k}") + + # TODO hard code + module_kwargs = {k: v for k, v in module_kwargs.items() if not k.startswith("_")} + + # TODO for **kwargs + # extra_args = set(module_kwargs.keys()) - set(arg_names) + # if len(extra_args) > 0: + # raise RuntimeError(f'Error: unknown args {extra_args} for {module}') + + return module(**module_kwargs) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/core/yaml_config.py b/backend/apps/algorithms/algorithm/DFINE/src/core/yaml_config.py new file mode 100644 index 0000000..0f7faf4 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/core/yaml_config.py @@ -0,0 +1,187 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import copy +import re + +import torch +import torch.nn as nn +import torch.optim as optim +from torch.utils.data import DataLoader + +from ._config import BaseConfig +from .workspace import create +from .yaml_utils import load_config, merge_config, merge_dict + + +class YAMLConfig(BaseConfig): + def __init__(self, cfg_path: str, **kwargs) -> None: + super().__init__() + + cfg = load_config(cfg_path) + cfg = merge_dict(cfg, kwargs) + + self.yaml_cfg = copy.deepcopy(cfg) + + for k in super().__dict__: + if not k.startswith("_") and k in cfg: + self.__dict__[k] = cfg[k] + + @property + def global_cfg(self): + return merge_config(self.yaml_cfg, inplace=False, overwrite=False) + + @property + def model(self) -> torch.nn.Module: + if self._model is None and "model" in self.yaml_cfg: + self._model = create(self.yaml_cfg["model"], self.global_cfg) + return super().model + + @property + def postprocessor(self) -> torch.nn.Module: + if self._postprocessor is None and "postprocessor" in self.yaml_cfg: + self._postprocessor = create(self.yaml_cfg["postprocessor"], self.global_cfg) + return super().postprocessor + + @property + def criterion(self) -> torch.nn.Module: + if self._criterion is None and "criterion" in self.yaml_cfg: + self._criterion = create(self.yaml_cfg["criterion"], self.global_cfg) + return super().criterion + + @property + def optimizer(self) -> optim.Optimizer: + if self._optimizer is None and "optimizer" in self.yaml_cfg: + params = self.get_optim_params(self.yaml_cfg["optimizer"], self.model) + self._optimizer = create("optimizer", self.global_cfg, params=params) + return super().optimizer + + @property + def lr_scheduler(self) -> optim.lr_scheduler.LRScheduler: + if self._lr_scheduler is None and "lr_scheduler" in self.yaml_cfg: + self._lr_scheduler = create("lr_scheduler", self.global_cfg, optimizer=self.optimizer) + print(f"Initial lr: {self._lr_scheduler.get_last_lr()}") + return super().lr_scheduler + + @property + def lr_warmup_scheduler(self) -> optim.lr_scheduler.LRScheduler: + if self._lr_warmup_scheduler is None and "lr_warmup_scheduler" in self.yaml_cfg: + self._lr_warmup_scheduler = create( + "lr_warmup_scheduler", self.global_cfg, lr_scheduler=self.lr_scheduler + ) + return super().lr_warmup_scheduler + + @property + def train_dataloader(self) -> DataLoader: + if self._train_dataloader is None and "train_dataloader" in self.yaml_cfg: + self._train_dataloader = self.build_dataloader("train_dataloader") + return super().train_dataloader + + @property + def val_dataloader(self) -> DataLoader: + if self._val_dataloader is None and "val_dataloader" in self.yaml_cfg: + self._val_dataloader = self.build_dataloader("val_dataloader") + return super().val_dataloader + + @property + def ema(self) -> torch.nn.Module: + if self._ema is None and self.yaml_cfg.get("use_ema", False): + self._ema = create("ema", self.global_cfg, model=self.model) + return super().ema + + @property + def scaler(self): + if self._scaler is None and self.yaml_cfg.get("use_amp", False): + self._scaler = create("scaler", self.global_cfg) + return super().scaler + + @property + def evaluator(self): + if self._evaluator is None and "evaluator" in self.yaml_cfg: + if self.yaml_cfg["evaluator"]["type"] == "CocoEvaluator": + from ..data import get_coco_api_from_dataset + + base_ds = get_coco_api_from_dataset(self.val_dataloader.dataset) + self._evaluator = create("evaluator", self.global_cfg, coco_gt=base_ds) + else: + raise NotImplementedError(f"{self.yaml_cfg['evaluator']['type']}") + return super().evaluator + + @property + def use_wandb(self) -> bool: + return self.yaml_cfg.get("use_wandb", False) + + @staticmethod + def get_optim_params(cfg: dict, model: nn.Module): + """ + E.g.: + ^(?=.*a)(?=.*b).*$ means including a and b + ^(?=.*(?:a|b)).*$ means including a or b + ^(?=.*a)(?!.*b).*$ means including a, but not b + """ + assert "type" in cfg, "" + cfg = copy.deepcopy(cfg) + + if "params" not in cfg: + return model.parameters() + + assert isinstance(cfg["params"], list), "" + + param_groups = [] + visited = [] + for pg in cfg["params"]: + pattern = pg["params"] + params = { + k: v + for k, v in model.named_parameters() + if v.requires_grad and len(re.findall(pattern, k)) > 0 + } + pg["params"] = params.values() + param_groups.append(pg) + visited.extend(list(params.keys())) + # print(params.keys()) + + names = [k for k, v in model.named_parameters() if v.requires_grad] + + if len(visited) < len(names): + unseen = set(names) - set(visited) + params = {k: v for k, v in model.named_parameters() if v.requires_grad and k in unseen} + param_groups.append({"params": params.values()}) + visited.extend(list(params.keys())) + # print(params.keys()) + + assert len(visited) == len(names), "" + + return param_groups + + @staticmethod + def get_rank_batch_size(cfg): + """compute batch size for per rank if total_batch_size is provided.""" + assert ("total_batch_size" in cfg or "batch_size" in cfg) and not ( + "total_batch_size" in cfg and "batch_size" in cfg + ), "`batch_size` or `total_batch_size` should be choosed one" + + total_batch_size = cfg.get("total_batch_size", None) + if total_batch_size is None: + bs = cfg.get("batch_size") + else: + from ..misc import dist_utils + + assert ( + total_batch_size % dist_utils.get_world_size() == 0 + ), "total_batch_size should be divisible by world size" + bs = total_batch_size // dist_utils.get_world_size() + return bs + + def build_dataloader(self, name: str): + bs = self.get_rank_batch_size(self.yaml_cfg[name]) + global_cfg = self.global_cfg + if "total_batch_size" in global_cfg[name]: + # pop unexpected key for dataloader init + _ = global_cfg[name].pop("total_batch_size") + print(f"building {name} with batch_size={bs}...") + loader = create(name, global_cfg, batch_size=bs) + loader.shuffle = self.yaml_cfg[name].get("shuffle", False) + return loader diff --git a/backend/apps/algorithms/algorithm/DFINE/src/core/yaml_utils.py b/backend/apps/algorithms/algorithm/DFINE/src/core/yaml_utils.py new file mode 100644 index 0000000..b77e071 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/core/yaml_utils.py @@ -0,0 +1,126 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import copy +import os +from typing import Any, Dict, List, Optional + +import yaml + +from .workspace import GLOBAL_CONFIG + +__all__ = [ + "load_config", + "merge_config", + "merge_dict", + "parse_cli", +] + + +INCLUDE_KEY = "__include__" + + +def load_config(file_path, cfg=dict()): + """load config""" + _, ext = os.path.splitext(file_path) + assert ext in [".yml", ".yaml"], "only support yaml files" + + with open(file_path) as f: + file_cfg = yaml.load(f, Loader=yaml.Loader) + if file_cfg is None: + return {} + + if INCLUDE_KEY in file_cfg: + base_yamls = list(file_cfg[INCLUDE_KEY]) + for base_yaml in base_yamls: + if base_yaml.startswith("~"): + base_yaml = os.path.expanduser(base_yaml) + + if not base_yaml.startswith("/"): + base_yaml = os.path.join(os.path.dirname(file_path), base_yaml) + + with open(base_yaml) as f: + base_cfg = load_config(base_yaml, cfg) + merge_dict(cfg, base_cfg) + + return merge_dict(cfg, file_cfg) + + +def merge_dict(dct, another_dct, inplace=True) -> Dict: + """merge another_dct into dct""" + + def _merge(dct, another) -> Dict: + for k in another: + if k in dct and isinstance(dct[k], dict) and isinstance(another[k], dict): + _merge(dct[k], another[k]) + else: + dct[k] = another[k] + + return dct + + if not inplace: + dct = copy.deepcopy(dct) + + return _merge(dct, another_dct) + + +def dictify(s: str, v: Any) -> Dict: + if "." not in s: + return {s: v} + key, rest = s.split(".", 1) + return {key: dictify(rest, v)} + + +def parse_cli(nargs: List[str]) -> Dict: + """ + parse command-line arguments + convert `a.c=3 b=10` to `{'a': {'c': 3}, 'b': 10}` + """ + cfg = {} + if nargs is None or len(nargs) == 0: + return cfg + + for s in nargs: + s = s.strip() + k, v = s.split("=", 1) + d = dictify(k, yaml.load(v, Loader=yaml.Loader)) + cfg = merge_dict(cfg, d) + + return cfg + + +def merge_config(cfg, another_cfg=GLOBAL_CONFIG, inplace: bool = False, overwrite: bool = False): + """ + Merge another_cfg into cfg, return the merged config + + Example: + + cfg1 = load_config('./dfine_r18vd_6x_coco.yml') + cfg1 = merge_config(cfg, inplace=True) + + cfg2 = load_config('./dfine_r50vd_6x_coco.yml') + cfg2 = merge_config(cfg2, inplace=True) + + model1 = create(cfg1['model'], cfg1) + model2 = create(cfg2['model'], cfg2) + """ + + def _merge(dct, another): + for k in another: + if k not in dct: + dct[k] = another[k] + + elif isinstance(dct[k], dict) and isinstance(another[k], dict): + _merge(dct[k], another[k]) + + elif overwrite: + dct[k] = another[k] + + return cfg + + if not inplace: + cfg = copy.deepcopy(cfg) + + return _merge(cfg, another_cfg) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/data/__init__.py new file mode 100644 index 0000000..bb6b8d4 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/__init__.py @@ -0,0 +1,20 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from ._misc import convert_to_tv_tensor +from .dataloader import * +from .dataset import * +from .transforms import * + + +# def set_epoch(self, epoch) -> None: +# self.epoch = epoch +# def _set_epoch_func(datasets): +# """Add `set_epoch` for datasets +# """ +# from ..core import register +# for ds in datasets: +# register(ds)(set_epoch) +# _set_epoch_func([CIFAR10, VOCDetection, CocoDetection]) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/_misc.py b/backend/apps/algorithms/algorithm/DFINE/src/data/_misc.py new file mode 100644 index 0000000..74c1e3f --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/_misc.py @@ -0,0 +1,62 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import importlib.metadata + +from torch import Tensor + +if "0.15.2" in importlib.metadata.version("torchvision"): + import torchvision + + torchvision.disable_beta_transforms_warning() + + from torchvision.datapoints import BoundingBox as BoundingBoxes + from torchvision.datapoints import BoundingBoxFormat, Image, Mask, Video + from torchvision.transforms.v2 import SanitizeBoundingBox as SanitizeBoundingBoxes + + _boxes_keys = ["format", "spatial_size"] + +elif "0.17" > importlib.metadata.version("torchvision") >= "0.16": + import torchvision + + torchvision.disable_beta_transforms_warning() + + from torchvision.transforms.v2 import SanitizeBoundingBoxes + from torchvision.tv_tensors import BoundingBoxes, BoundingBoxFormat, Image, Mask, Video + + _boxes_keys = ["format", "canvas_size"] + +elif importlib.metadata.version("torchvision") >= "0.17": + import torchvision + from torchvision.transforms.v2 import SanitizeBoundingBoxes + from torchvision.tv_tensors import BoundingBoxes, BoundingBoxFormat, Image, Mask, Video + + _boxes_keys = ["format", "canvas_size"] + +else: + raise RuntimeError("Please make sure torchvision version >= 0.15.2") + + +def convert_to_tv_tensor(tensor: Tensor, key: str, box_format="xyxy", spatial_size=None) -> Tensor: + """ + Args: + tensor (Tensor): input tensor + key (str): transform to key + + Return: + Dict[str, TV_Tensor] + """ + assert key in ( + "boxes", + "masks", + ), "Only support 'boxes' and 'masks'" + + if key == "boxes": + box_format = getattr(BoundingBoxFormat, box_format.upper()) + _kwargs = dict(zip(_boxes_keys, [box_format, spatial_size])) + return BoundingBoxes(tensor, **_kwargs) + + if key == "masks": + return Mask(tensor) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataloader.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataloader.py new file mode 100644 index 0000000..ce2c0a1 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataloader.py @@ -0,0 +1,122 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import random +from functools import partial + +import torch +import torch.nn.functional as F +import torch.utils.data as data +import torchvision +import torchvision.transforms.v2 as VT +from torch.utils.data import default_collate +from torchvision.transforms.v2 import InterpolationMode +from torchvision.transforms.v2 import functional as VF + +from ..core import register + +torchvision.disable_beta_transforms_warning() + + +__all__ = [ + "DataLoader", + "BaseCollateFunction", + "BatchImageCollateFunction", + "batch_image_collate_fn", +] + + +@register() +class DataLoader(data.DataLoader): + __inject__ = ["dataset", "collate_fn"] + + def __repr__(self) -> str: + format_string = self.__class__.__name__ + "(" + for n in ["dataset", "batch_size", "num_workers", "drop_last", "collate_fn"]: + format_string += "\n" + format_string += " {0}: {1}".format(n, getattr(self, n)) + format_string += "\n)" + return format_string + + def set_epoch(self, epoch): + self._epoch = epoch + self.dataset.set_epoch(epoch) + self.collate_fn.set_epoch(epoch) + + @property + def epoch(self): + return self._epoch if hasattr(self, "_epoch") else -1 + + @property + def shuffle(self): + return self._shuffle + + @shuffle.setter + def shuffle(self, shuffle): + assert isinstance(shuffle, bool), "shuffle must be a boolean" + self._shuffle = shuffle + + +@register() +def batch_image_collate_fn(items): + """only batch image""" + return torch.cat([x[0][None] for x in items], dim=0), [x[1] for x in items] + + +class BaseCollateFunction(object): + def set_epoch(self, epoch): + self._epoch = epoch + + @property + def epoch(self): + return self._epoch if hasattr(self, "_epoch") else -1 + + def __call__(self, items): + raise NotImplementedError("") + + +def generate_scales(base_size, base_size_repeat): + scale_repeat = (base_size - int(base_size * 0.75 / 32) * 32) // 32 + scales = [int(base_size * 0.75 / 32) * 32 + i * 32 for i in range(scale_repeat)] + scales += [base_size] * base_size_repeat + scales += [int(base_size * 1.25 / 32) * 32 - i * 32 for i in range(scale_repeat)] + return scales + + +@register() +class BatchImageCollateFunction(BaseCollateFunction): + def __init__( + self, + stop_epoch=None, + ema_restart_decay=0.9999, + base_size=640, + base_size_repeat=None, + ) -> None: + super().__init__() + self.base_size = base_size + self.scales = ( + generate_scales(base_size, base_size_repeat) if base_size_repeat is not None else None + ) + self.stop_epoch = stop_epoch if stop_epoch is not None else 100000000 + self.ema_restart_decay = ema_restart_decay + # self.interpolation = interpolation + + def __call__(self, items): + images = torch.cat([x[0][None] for x in items], dim=0) + targets = [x[1] for x in items] + + if self.scales is not None and self.epoch < self.stop_epoch: + # sz = random.choice(self.scales) + # sz = [sz] if isinstance(sz, int) else list(sz) + # VF.resize(inpt, sz, interpolation=self.interpolation) + + sz = random.choice(self.scales) + images = F.interpolate(images, size=sz) + if "masks" in targets[0]: + for tg in targets: + tg["masks"] = F.interpolate(tg["masks"], size=sz, mode="nearest") + raise NotImplementedError("") + + return images, targets diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/__init__.py new file mode 100644 index 0000000..eb75888 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/__init__.py @@ -0,0 +1,17 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +# from ._dataset import DetDataset +from .cifar_dataset import CIFAR10 +from .coco_dataset import ( + CocoDetection, + mscoco_category2label, + mscoco_category2name, + mscoco_label2category, +) +from .coco_eval import CocoEvaluator +from .coco_utils import get_coco_api_from_dataset +from .voc_detection import VOCDetection +from .voc_eval import VOCEvaluator diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/_dataset.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/_dataset.py new file mode 100644 index 0000000..62b131e --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/_dataset.py @@ -0,0 +1,27 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torch.utils.data as data + + +class DetDataset(data.Dataset): + def __getitem__(self, index): + img, target = self.load_item(index) + if self.transforms is not None: + img, target, _ = self.transforms(img, target, self) + return img, target + + def load_item(self, index): + raise NotImplementedError( + "Please implement this function to return item before `transforms`." + ) + + def set_epoch(self, epoch) -> None: + self._epoch = epoch + + @property + def epoch(self): + return self._epoch if hasattr(self, "_epoch") else -1 diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/cifar_dataset.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/cifar_dataset.py new file mode 100644 index 0000000..e825da7 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/cifar_dataset.py @@ -0,0 +1,25 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from typing import Callable, Optional + +import torchvision + +from ...core import register + + +@register() +class CIFAR10(torchvision.datasets.CIFAR10): + __inject__ = ["transform", "target_transform"] + + def __init__( + self, + root: str, + train: bool = True, + transform: Optional[Callable] = None, + target_transform: Optional[Callable] = None, + download: bool = False, + ) -> None: + super().__init__(root, train, transform, target_transform, download) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_dataset.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_dataset.py new file mode 100644 index 0000000..22b3c37 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_dataset.py @@ -0,0 +1,280 @@ +""" +Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved +Mostly copy-paste from https://github.com/pytorch/vision/blob/13b35ff/references/detection/coco_utils.py + +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import faster_coco_eval.core.mask as coco_mask +from faster_coco_eval.utils.pytorch import FasterCocoDetection +import torch +import torchvision +import os +from PIL import Image + +from ...core import register +from .._misc import convert_to_tv_tensor +from ._dataset import DetDataset + +torchvision.disable_beta_transforms_warning() +Image.MAX_IMAGE_PIXELS = None + +__all__ = ["CocoDetection"] + + +@register() +class CocoDetection(FasterCocoDetection, DetDataset): + __inject__ = [ + "transforms", + ] + __share__ = ["remap_mscoco_category"] + + def __init__( + self, img_folder, ann_file, transforms, return_masks=False, remap_mscoco_category=False + ): + super(FasterCocoDetection, self).__init__(img_folder, ann_file) + self._transforms = transforms + self.prepare = ConvertCocoPolysToMask(return_masks) + self.img_folder = img_folder + self.ann_file = ann_file + self.return_masks = return_masks + self.remap_mscoco_category = remap_mscoco_category + + def __getitem__(self, idx): + img, target = self.load_item(idx) + if self._transforms is not None: + img, target, _ = self._transforms(img, target, self) + return img, target + + def load_item(self, idx): + image, target = super(FasterCocoDetection, self).__getitem__(idx) + image_id = self.ids[idx] + image_path = os.path.join(self.img_folder, self.coco.loadImgs(image_id)[0]["file_name"]) + target = {"image_id": image_id, "image_path": image_path, "annotations": target} + + if self.remap_mscoco_category: + image, target = self.prepare(image, target, category2label=mscoco_category2label) + else: + image, target = self.prepare(image, target) + + target["idx"] = torch.tensor([idx]) + + if "boxes" in target: + target["boxes"] = convert_to_tv_tensor( + target["boxes"], key="boxes", spatial_size=image.size[::-1] + ) + + if "masks" in target: + target["masks"] = convert_to_tv_tensor(target["masks"], key="masks") + + return image, target + + def extra_repr(self) -> str: + s = f" img_folder: {self.img_folder}\n ann_file: {self.ann_file}\n" + s += f" return_masks: {self.return_masks}\n" + if hasattr(self, "_transforms") and self._transforms is not None: + s += f" transforms:\n {repr(self._transforms)}" + if hasattr(self, "_preset") and self._preset is not None: + s += f" preset:\n {repr(self._preset)}" + return s + + @property + def categories( + self, + ): + return self.coco.dataset["categories"] + + @property + def category2name( + self, + ): + return {cat["id"]: cat["name"] for cat in self.categories} + + @property + def category2label( + self, + ): + return {cat["id"]: i for i, cat in enumerate(self.categories)} + + @property + def label2category( + self, + ): + return {i: cat["id"] for i, cat in enumerate(self.categories)} + + +def convert_coco_poly_to_mask(segmentations, height, width): + masks = [] + for polygons in segmentations: + rles = coco_mask.frPyObjects(polygons, height, width) + mask = coco_mask.decode(rles) + if len(mask.shape) < 3: + mask = mask[..., None] + mask = torch.as_tensor(mask, dtype=torch.uint8) + mask = mask.any(dim=2) + masks.append(mask) + if masks: + masks = torch.stack(masks, dim=0) + else: + masks = torch.zeros((0, height, width), dtype=torch.uint8) + return masks + + +class ConvertCocoPolysToMask(object): + def __init__(self, return_masks=False): + self.return_masks = return_masks + + def __call__(self, image: Image.Image, target, **kwargs): + w, h = image.size + + image_id = target["image_id"] + image_id = torch.tensor([image_id]) + + image_path = target["image_path"] + + anno = target["annotations"] + + anno = [obj for obj in anno if "iscrowd" not in obj or obj["iscrowd"] == 0] + + boxes = [obj["bbox"] for obj in anno] + # guard against no boxes via resizing + boxes = torch.as_tensor(boxes, dtype=torch.float32).reshape(-1, 4) + boxes[:, 2:] += boxes[:, :2] + boxes[:, 0::2].clamp_(min=0, max=w) + boxes[:, 1::2].clamp_(min=0, max=h) + + category2label = kwargs.get("category2label", None) + if category2label is not None: + labels = [category2label[obj["category_id"]] for obj in anno] + else: + labels = [obj["category_id"] for obj in anno] + + labels = torch.tensor(labels, dtype=torch.int64) + + if self.return_masks: + segmentations = [obj["segmentation"] for obj in anno] + masks = convert_coco_poly_to_mask(segmentations, h, w) + + keypoints = None + if anno and "keypoints" in anno[0]: + keypoints = [obj["keypoints"] for obj in anno] + keypoints = torch.as_tensor(keypoints, dtype=torch.float32) + num_keypoints = keypoints.shape[0] + if num_keypoints: + keypoints = keypoints.view(num_keypoints, -1, 3) + + keep = (boxes[:, 3] > boxes[:, 1]) & (boxes[:, 2] > boxes[:, 0]) + boxes = boxes[keep] + labels = labels[keep] + if self.return_masks: + masks = masks[keep] + if keypoints is not None: + keypoints = keypoints[keep] + + target = {} + target["boxes"] = boxes + target["labels"] = labels + if self.return_masks: + target["masks"] = masks + target["image_id"] = image_id + target["image_path"] = image_path + if keypoints is not None: + target["keypoints"] = keypoints + + # for conversion to coco api + area = torch.tensor([obj["area"] for obj in anno]) + iscrowd = torch.tensor([obj["iscrowd"] if "iscrowd" in obj else 0 for obj in anno]) + target["area"] = area[keep] + target["iscrowd"] = iscrowd[keep] + + target["orig_size"] = torch.as_tensor([int(w), int(h)]) + # target["size"] = torch.as_tensor([int(w), int(h)]) + + return image, target + + +mscoco_category2name = { + 1: "person", + 2: "bicycle", + 3: "car", + 4: "motorcycle", + 5: "airplane", + 6: "bus", + 7: "train", + 8: "truck", + 9: "boat", + 10: "traffic light", + 11: "fire hydrant", + 13: "stop sign", + 14: "parking meter", + 15: "bench", + 16: "bird", + 17: "cat", + 18: "dog", + 19: "horse", + 20: "sheep", + 21: "cow", + 22: "elephant", + 23: "bear", + 24: "zebra", + 25: "giraffe", + 27: "backpack", + 28: "umbrella", + 31: "handbag", + 32: "tie", + 33: "suitcase", + 34: "frisbee", + 35: "skis", + 36: "snowboard", + 37: "sports ball", + 38: "kite", + 39: "baseball bat", + 40: "baseball glove", + 41: "skateboard", + 42: "surfboard", + 43: "tennis racket", + 44: "bottle", + 46: "wine glass", + 47: "cup", + 48: "fork", + 49: "knife", + 50: "spoon", + 51: "bowl", + 52: "banana", + 53: "apple", + 54: "sandwich", + 55: "orange", + 56: "broccoli", + 57: "carrot", + 58: "hot dog", + 59: "pizza", + 60: "donut", + 61: "cake", + 62: "chair", + 63: "couch", + 64: "potted plant", + 65: "bed", + 67: "dining table", + 70: "toilet", + 72: "tv", + 73: "laptop", + 74: "mouse", + 75: "remote", + 76: "keyboard", + 77: "cell phone", + 78: "microwave", + 79: "oven", + 80: "toaster", + 81: "sink", + 82: "refrigerator", + 84: "book", + 85: "clock", + 86: "vase", + 87: "scissors", + 88: "teddy bear", + 89: "hair drier", + 90: "toothbrush", +} + +mscoco_category2label = {k: i for i, k in enumerate(mscoco_category2name.keys())} +mscoco_label2category = {v: k for k, v in mscoco_category2label.items()} diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_eval.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_eval.py new file mode 100644 index 0000000..ac0cb63 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_eval.py @@ -0,0 +1,22 @@ +""" +# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved +COCO evaluator that works in distributed mode. +Mostly copy-paste from https://github.com/pytorch/vision/blob/edfd5a7/references/detection/coco_eval.py +The difference is that there is less copy-pasting from pycocotools +in the end of the file, as python3 can suppress prints with contextlib + +# MiXaiLL76 replacing pycocotools with faster-coco-eval for better performance and support. +""" + +from faster_coco_eval.utils.pytorch import FasterCocoEvaluator + +from ...core import register + +__all__ = [ + "CocoEvaluator", +] + + +@register() +class CocoEvaluator(FasterCocoEvaluator): + pass diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_utils.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_utils.py new file mode 100644 index 0000000..216816c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/coco_utils.py @@ -0,0 +1,191 @@ +""" +copy and modified https://github.com/pytorch/vision/blob/main/references/detection/coco_utils.py + +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import faster_coco_eval.core.mask as coco_mask +import torch +import torch.utils.data +import torchvision +import torchvision.transforms.functional as TVF +from faster_coco_eval import COCO + + +def convert_coco_poly_to_mask(segmentations, height, width): + masks = [] + for polygons in segmentations: + rles = coco_mask.frPyObjects(polygons, height, width) + mask = coco_mask.decode(rles) + if len(mask.shape) < 3: + mask = mask[..., None] + mask = torch.as_tensor(mask, dtype=torch.uint8) + mask = mask.any(dim=2) + masks.append(mask) + if masks: + masks = torch.stack(masks, dim=0) + else: + masks = torch.zeros((0, height, width), dtype=torch.uint8) + return masks + + +class ConvertCocoPolysToMask: + def __call__(self, image, target): + w, h = image.size + + image_id = target["image_id"] + + anno = target["annotations"] + + anno = [obj for obj in anno if obj["iscrowd"] == 0] + + boxes = [obj["bbox"] for obj in anno] + # guard against no boxes via resizing + boxes = torch.as_tensor(boxes, dtype=torch.float32).reshape(-1, 4) + boxes[:, 2:] += boxes[:, :2] + boxes[:, 0::2].clamp_(min=0, max=w) + boxes[:, 1::2].clamp_(min=0, max=h) + + classes = [obj["category_id"] for obj in anno] + classes = torch.tensor(classes, dtype=torch.int64) + + segmentations = [obj["segmentation"] for obj in anno] + masks = convert_coco_poly_to_mask(segmentations, h, w) + + keypoints = None + if anno and "keypoints" in anno[0]: + keypoints = [obj["keypoints"] for obj in anno] + keypoints = torch.as_tensor(keypoints, dtype=torch.float32) + num_keypoints = keypoints.shape[0] + if num_keypoints: + keypoints = keypoints.view(num_keypoints, -1, 3) + + keep = (boxes[:, 3] > boxes[:, 1]) & (boxes[:, 2] > boxes[:, 0]) + boxes = boxes[keep] + classes = classes[keep] + masks = masks[keep] + if keypoints is not None: + keypoints = keypoints[keep] + + target = {} + target["boxes"] = boxes + target["labels"] = classes + target["masks"] = masks + target["image_id"] = image_id + if keypoints is not None: + target["keypoints"] = keypoints + + # for conversion to coco api + area = torch.tensor([obj["area"] for obj in anno]) + iscrowd = torch.tensor([obj["iscrowd"] for obj in anno]) + target["area"] = area + target["iscrowd"] = iscrowd + + return image, target + + +def _coco_remove_images_without_annotations(dataset, cat_list=None): + def _has_only_empty_bbox(anno): + return all(any(o <= 1 for o in obj["bbox"][2:]) for obj in anno) + + def _count_visible_keypoints(anno): + return sum(sum(1 for v in ann["keypoints"][2::3] if v > 0) for ann in anno) + + min_keypoints_per_image = 10 + + def _has_valid_annotation(anno): + # if it's empty, there is no annotation + if len(anno) == 0: + return False + # if all boxes have close to zero area, there is no annotation + if _has_only_empty_bbox(anno): + return False + # keypoints task have a slight different criteria for considering + # if an annotation is valid + if "keypoints" not in anno[0]: + return True + # for keypoint detection tasks, only consider valid images those + # containing at least min_keypoints_per_image + if _count_visible_keypoints(anno) >= min_keypoints_per_image: + return True + return False + + ids = [] + for ds_idx, img_id in enumerate(dataset.ids): + ann_ids = dataset.coco.getAnnIds(imgIds=img_id, iscrowd=None) + anno = dataset.coco.loadAnns(ann_ids) + if cat_list: + anno = [obj for obj in anno if obj["category_id"] in cat_list] + if _has_valid_annotation(anno): + ids.append(ds_idx) + + dataset = torch.utils.data.Subset(dataset, ids) + return dataset + + +def convert_to_coco_api(ds): + coco_ds = COCO() + # annotation IDs need to start at 1, not 0, see torchvision issue #1530 + ann_id = 1 + dataset = {"images": [], "categories": [], "annotations": []} + categories = set() + for img_idx in range(len(ds)): + # find better way to get target + # targets = ds.get_annotations(img_idx) + # img, targets = ds[img_idx] + + img, targets = ds.load_item(img_idx) + width, height = img.size + + image_id = targets["image_id"].item() + img_dict = {} + img_dict["id"] = image_id + img_dict["width"] = width + img_dict["height"] = height + dataset["images"].append(img_dict) + bboxes = targets["boxes"].clone() + bboxes[:, 2:] -= bboxes[:, :2] # xyxy -> xywh + bboxes = bboxes.tolist() + labels = targets["labels"].tolist() + areas = targets["area"].tolist() + iscrowd = targets["iscrowd"].tolist() + if "masks" in targets: + masks = targets["masks"] + # make masks Fortran contiguous for coco_mask + masks = masks.permute(0, 2, 1).contiguous().permute(0, 2, 1) + if "keypoints" in targets: + keypoints = targets["keypoints"] + keypoints = keypoints.reshape(keypoints.shape[0], -1).tolist() + num_objs = len(bboxes) + for i in range(num_objs): + ann = {} + ann["image_id"] = image_id + ann["bbox"] = bboxes[i] + ann["category_id"] = labels[i] + categories.add(labels[i]) + ann["area"] = areas[i] + ann["iscrowd"] = iscrowd[i] + ann["id"] = ann_id + if "masks" in targets: + ann["segmentation"] = coco_mask.encode(masks[i].numpy()) + if "keypoints" in targets: + ann["keypoints"] = keypoints[i] + ann["num_keypoints"] = sum(k != 0 for k in keypoints[i][2::3]) + dataset["annotations"].append(ann) + ann_id += 1 + dataset["categories"] = [{"id": i} for i in sorted(categories)] + coco_ds.dataset = dataset + coco_ds.createIndex() + return coco_ds + + +def get_coco_api_from_dataset(dataset): + # FIXME: This is... awful? + for _ in range(10): + if isinstance(dataset, torchvision.datasets.CocoDetection): + break + if isinstance(dataset, torch.utils.data.Subset): + dataset = dataset.dataset + if isinstance(dataset, torchvision.datasets.CocoDetection): + return dataset.coco + return convert_to_coco_api(dataset) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/voc_detection.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/voc_detection.py new file mode 100644 index 0000000..e673560 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/voc_detection.py @@ -0,0 +1,86 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import os +from typing import Callable, Optional + +import torch +import torchvision +import torchvision.transforms.functional as TVF +from PIL import Image +from sympy import im + +try: + from defusedxml.ElementTree import parse as ET_parse +except ImportError: + from xml.etree.ElementTree import parse as ET_parse + +from ...core import register +from .._misc import convert_to_tv_tensor +from ._dataset import DetDataset + + +@register() +class VOCDetection(torchvision.datasets.VOCDetection, DetDataset): + __inject__ = [ + "transforms", + ] + + def __init__( + self, + root: str, + ann_file: str = "trainval.txt", + label_file: str = "label_list.txt", + transforms: Optional[Callable] = None, + ): + with open(os.path.join(root, ann_file), "r") as f: + lines = [x.strip() for x in f.readlines()] + lines = [x.split(" ") for x in lines] + + self.images = [os.path.join(root, lin[0]) for lin in lines] + self.targets = [os.path.join(root, lin[1]) for lin in lines] + assert len(self.images) == len(self.targets) + + with open(os.path.join(root + label_file), "r") as f: + labels = f.readlines() + labels = [lab.strip() for lab in labels] + + self.transforms = transforms + self.labels_map = {lab: i for i, lab in enumerate(labels)} + + def __getitem__(self, index: int): + image, target = self.load_item(index) + if self.transforms is not None: + image, target, _ = self.transforms(image, target, self) + # target["orig_size"] = torch.tensor(TVF.get_image_size(image)) + return image, target + + def load_item(self, index: int): + image = Image.open(self.images[index]).convert("RGB") + target = self.parse_voc_xml(ET_parse(self.annotations[index]).getroot()) + + output = {} + output["image_id"] = torch.tensor([index]) + for k in ["area", "boxes", "labels", "iscrowd"]: + output[k] = [] + + for blob in target["annotation"]["object"]: + box = [float(v) for v in blob["bndbox"].values()] + output["boxes"].append(box) + output["labels"].append(blob["name"]) + output["area"].append((box[2] - box[0]) * (box[3] - box[1])) + output["iscrowd"].append(0) + + w, h = image.size + boxes = torch.tensor(output["boxes"]) if len(output["boxes"]) > 0 else torch.zeros(0, 4) + output["boxes"] = convert_to_tv_tensor( + boxes, "boxes", box_format="xyxy", spatial_size=[h, w] + ) + output["labels"] = torch.tensor([self.labels_map[lab] for lab in output["labels"]]) + output["area"] = torch.tensor(output["area"]) + output["iscrowd"] = torch.tensor(output["iscrowd"]) + output["orig_size"] = torch.tensor([w, h]) + + return image, output diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/voc_eval.py b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/voc_eval.py new file mode 100644 index 0000000..0bee50a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/dataset/voc_eval.py @@ -0,0 +1,12 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torchvision + + +class VOCEvaluator(object): + def __init__(self) -> None: + pass diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/__init__.py new file mode 100644 index 0000000..f555c9f --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/__init__.py @@ -0,0 +1,21 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from ._transforms import ( + ConvertBoxes, + ConvertPILImage, + EmptyTransform, + Normalize, + PadToSize, + RandomCrop, + RandomHorizontalFlip, + RandomIoUCrop, + RandomPhotometricDistort, + RandomZoomOut, + Resize, + SanitizeBoundingBoxes, +) +from .container import Compose +from .mosaic import Mosaic diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/_transforms.py b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/_transforms.py new file mode 100644 index 0000000..a3fe917 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/_transforms.py @@ -0,0 +1,161 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from typing import Any, Dict, List, Optional + +import PIL +import PIL.Image +import torch +import torch.nn as nn +import torchvision +import torchvision.transforms.v2 as T +import torchvision.transforms.v2.functional as F + +from ...core import register +from .._misc import ( + BoundingBoxes, + Image, + Mask, + SanitizeBoundingBoxes, + Video, + _boxes_keys, + convert_to_tv_tensor, +) + +torchvision.disable_beta_transforms_warning() + + +RandomPhotometricDistort = register()(T.RandomPhotometricDistort) +RandomZoomOut = register()(T.RandomZoomOut) +RandomHorizontalFlip = register()(T.RandomHorizontalFlip) +Resize = register()(T.Resize) +# ToImageTensor = register()(T.ToImageTensor) +# ConvertDtype = register()(T.ConvertDtype) +# PILToTensor = register()(T.PILToTensor) +SanitizeBoundingBoxes = register(name="SanitizeBoundingBoxes")(SanitizeBoundingBoxes) +RandomCrop = register()(T.RandomCrop) +Normalize = register()(T.Normalize) + + +@register() +class EmptyTransform(T.Transform): + def __init__( + self, + ) -> None: + super().__init__() + + def forward(self, *inputs): + inputs = inputs if len(inputs) > 1 else inputs[0] + return inputs + + +@register() +class PadToSize(T.Pad): + _transformed_types = ( + PIL.Image.Image, + Image, + Video, + Mask, + BoundingBoxes, + ) + + def _get_params(self, flat_inputs: List[Any]) -> Dict[str, Any]: + sp = F.get_spatial_size(flat_inputs[0]) + h, w = self.size[1] - sp[0], self.size[0] - sp[1] + self.padding = [0, 0, w, h] + return dict(padding=self.padding) + + def __init__(self, size, fill=0, padding_mode="constant") -> None: + if isinstance(size, int): + size = (size, size) + self.size = size + super().__init__(0, fill, padding_mode) + + def _transform(self, inpt: Any, params: Dict[str, Any]) -> Any: + fill = self._fill[type(inpt)] + padding = params["padding"] + return F.pad(inpt, padding=padding, fill=fill, padding_mode=self.padding_mode) # type: ignore[arg-type] + + def __call__(self, *inputs: Any) -> Any: + outputs = super().forward(*inputs) + if len(outputs) > 1 and isinstance(outputs[1], dict): + outputs[1]["padding"] = torch.tensor(self.padding) + return outputs + + +@register() +class RandomIoUCrop(T.RandomIoUCrop): + def __init__( + self, + min_scale: float = 0.3, + max_scale: float = 1, + min_aspect_ratio: float = 0.5, + max_aspect_ratio: float = 2, + sampler_options: Optional[List[float]] = None, + trials: int = 40, + p: float = 1.0, + ): + super().__init__( + min_scale, max_scale, min_aspect_ratio, max_aspect_ratio, sampler_options, trials + ) + self.p = p + + def __call__(self, *inputs: Any) -> Any: + if torch.rand(1) >= self.p: + return inputs if len(inputs) > 1 else inputs[0] + + return super().forward(*inputs) + + +@register() +class ConvertBoxes(T.Transform): + _transformed_types = (BoundingBoxes,) + + def __init__(self, fmt="", normalize=False) -> None: + super().__init__() + self.fmt = fmt + self.normalize = normalize + + def transform(self, inpt: Any, params: Dict[str, Any]) -> Any: + return self._transform(inpt, params) + + def _transform(self, inpt: Any, params: Dict[str, Any]) -> Any: + spatial_size = getattr(inpt, _boxes_keys[1]) + if self.fmt: + in_fmt = inpt.format.value.lower() + inpt = torchvision.ops.box_convert(inpt, in_fmt=in_fmt, out_fmt=self.fmt.lower()) + inpt = convert_to_tv_tensor( + inpt, key="boxes", box_format=self.fmt.upper(), spatial_size=spatial_size + ) + + if self.normalize: + inpt = inpt / torch.tensor(spatial_size[::-1]).tile(2)[None] + + return inpt + + +@register() +class ConvertPILImage(T.Transform): + _transformed_types = (PIL.Image.Image,) + + def __init__(self, dtype="float32", scale=True) -> None: + super().__init__() + self.dtype = dtype + self.scale = scale + + def transform(self, inpt: Any, params: Dict[str, Any]) -> Any: + return self._transform(inpt, params) + + def _transform(self, inpt: Any, params: Dict[str, Any]) -> Any: + inpt = F.pil_to_tensor(inpt) + if self.dtype == "float32": + inpt = inpt.float() + + if self.scale: + inpt = inpt / 255.0 + + inpt = Image(inpt) + + return inpt diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/container.py b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/container.py new file mode 100644 index 0000000..b40a0d6 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/container.py @@ -0,0 +1,99 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from typing import Any, Dict, List, Optional + +import torch +import torch.nn as nn +import torchvision +import torchvision.transforms.v2 as T + +from ...core import GLOBAL_CONFIG, register +from ._transforms import EmptyTransform + +torchvision.disable_beta_transforms_warning() + + +@register() +class Compose(T.Compose): + def __init__(self, ops, policy=None) -> None: + transforms = [] + if ops is not None: + for op in ops: + if isinstance(op, dict): + name = op.pop("type") + transform = getattr( + GLOBAL_CONFIG[name]["_pymodule"], GLOBAL_CONFIG[name]["_name"] + )(**op) + transforms.append(transform) + op["type"] = name + + elif isinstance(op, nn.Module): + transforms.append(op) + + else: + raise ValueError("") + else: + transforms = [ + EmptyTransform(), + ] + + super().__init__(transforms=transforms) + + if policy is None: + policy = {"name": "default"} + + self.policy = policy + self.global_samples = 0 + + def forward(self, *inputs: Any) -> Any: + return self.get_forward(self.policy["name"])(*inputs) + + def get_forward(self, name): + forwards = { + "default": self.default_forward, + "stop_epoch": self.stop_epoch_forward, + "stop_sample": self.stop_sample_forward, + } + return forwards[name] + + def default_forward(self, *inputs: Any) -> Any: + sample = inputs if len(inputs) > 1 else inputs[0] + for transform in self.transforms: + sample = transform(sample) + return sample + + def stop_epoch_forward(self, *inputs: Any): + sample = inputs if len(inputs) > 1 else inputs[0] + dataset = sample[-1] + cur_epoch = dataset.epoch + policy_ops = self.policy["ops"] + policy_epoch = self.policy["epoch"] + + for transform in self.transforms: + if type(transform).__name__ in policy_ops and cur_epoch >= policy_epoch: + pass + else: + sample = transform(sample) + + return sample + + def stop_sample_forward(self, *inputs: Any): + sample = inputs if len(inputs) > 1 else inputs[0] + dataset = sample[-1] + + cur_epoch = dataset.epoch + policy_ops = self.policy["ops"] + policy_sample = self.policy["sample"] + + for transform in self.transforms: + if type(transform).__name__ in policy_ops and self.global_samples >= policy_sample: + pass + else: + sample = transform(sample) + + self.global_samples += 1 + + return sample diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/functional.py b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/functional.py new file mode 100644 index 0000000..10ef8b5 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/functional.py @@ -0,0 +1,172 @@ +from typing import List, Optional + +import torch + +# needed due to empty tensor bug in pytorch and torchvision 0.5 +import torchvision +import torchvision.transforms.functional as F +from packaging import version +from torch import Tensor + +if version.parse(torchvision.__version__) < version.parse("0.7"): + from torchvision.ops import _new_empty_tensor + from torchvision.ops.misc import _output_size + + +def interpolate(input, size=None, scale_factor=None, mode="nearest", align_corners=None): + # type: (Tensor, Optional[List[int]], Optional[float], str, Optional[bool]) -> Tensor + """ + Equivalent to nn.functional.interpolate, but with support for empty batch sizes. + This will eventually be supported natively by PyTorch, and this + class can go away. + """ + if version.parse(torchvision.__version__) < version.parse("0.7"): + if input.numel() > 0: + return torch.nn.functional.interpolate(input, size, scale_factor, mode, align_corners) + + output_shape = _output_size(2, input, size, scale_factor) + output_shape = list(input.shape[:-2]) + list(output_shape) + return _new_empty_tensor(input, output_shape) + else: + return torchvision.ops.misc.interpolate(input, size, scale_factor, mode, align_corners) + + +def crop(image, target, region): + cropped_image = F.crop(image, *region) + + target = target.copy() + i, j, h, w = region + + # should we do something wrt the original size? + target["size"] = torch.tensor([h, w]) + + fields = ["labels", "area", "iscrowd"] + + if "boxes" in target: + boxes = target["boxes"] + max_size = torch.as_tensor([w, h], dtype=torch.float32) + cropped_boxes = boxes - torch.as_tensor([j, i, j, i]) + cropped_boxes = torch.min(cropped_boxes.reshape(-1, 2, 2), max_size) + cropped_boxes = cropped_boxes.clamp(min=0) + area = (cropped_boxes[:, 1, :] - cropped_boxes[:, 0, :]).prod(dim=1) + target["boxes"] = cropped_boxes.reshape(-1, 4) + target["area"] = area + fields.append("boxes") + + if "masks" in target: + # FIXME should we update the area here if there are no boxes? + target["masks"] = target["masks"][:, i : i + h, j : j + w] + fields.append("masks") + + # remove elements for which the boxes or masks that have zero area + if "boxes" in target or "masks" in target: + # favor boxes selection when defining which elements to keep + # this is compatible with previous implementation + if "boxes" in target: + cropped_boxes = target["boxes"].reshape(-1, 2, 2) + keep = torch.all(cropped_boxes[:, 1, :] > cropped_boxes[:, 0, :], dim=1) + else: + keep = target["masks"].flatten(1).any(1) + + for field in fields: + target[field] = target[field][keep] + + return cropped_image, target + + +def hflip(image, target): + flipped_image = F.hflip(image) + + w, h = image.size + + target = target.copy() + if "boxes" in target: + boxes = target["boxes"] + boxes = boxes[:, [2, 1, 0, 3]] * torch.as_tensor([-1, 1, -1, 1]) + torch.as_tensor( + [w, 0, w, 0] + ) + target["boxes"] = boxes + + if "masks" in target: + target["masks"] = target["masks"].flip(-1) + + return flipped_image, target + + +def resize(image, target, size, max_size=None): + # size can be min_size (scalar) or (w, h) tuple + + def get_size_with_aspect_ratio(image_size, size, max_size=None): + w, h = image_size + if max_size is not None: + min_original_size = float(min((w, h))) + max_original_size = float(max((w, h))) + if max_original_size / min_original_size * size > max_size: + size = int(round(max_size * min_original_size / max_original_size)) + + if (w <= h and w == size) or (h <= w and h == size): + return (h, w) + + if w < h: + ow = size + oh = int(size * h / w) + else: + oh = size + ow = int(size * w / h) + + # r = min(size / min(h, w), max_size / max(h, w)) + # ow = int(w * r) + # oh = int(h * r) + + return (oh, ow) + + def get_size(image_size, size, max_size=None): + if isinstance(size, (list, tuple)): + return size[::-1] + else: + return get_size_with_aspect_ratio(image_size, size, max_size) + + size = get_size(image.size, size, max_size) + rescaled_image = F.resize(image, size) + + if target is None: + return rescaled_image, None + + ratios = tuple(float(s) / float(s_orig) for s, s_orig in zip(rescaled_image.size, image.size)) + ratio_width, ratio_height = ratios + + target = target.copy() + if "boxes" in target: + boxes = target["boxes"] + scaled_boxes = boxes * torch.as_tensor( + [ratio_width, ratio_height, ratio_width, ratio_height] + ) + target["boxes"] = scaled_boxes + + if "area" in target: + area = target["area"] + scaled_area = area * (ratio_width * ratio_height) + target["area"] = scaled_area + + h, w = size + target["size"] = torch.tensor([h, w]) + + if "masks" in target: + target["masks"] = ( + interpolate(target["masks"][:, None].float(), size, mode="nearest")[:, 0] > 0.5 + ) + + return rescaled_image, target + + +def pad(image, target, padding): + # assumes that we only pad on the bottom right corners + padded_image = F.pad(image, (0, 0, padding[0], padding[1])) + if target is None: + return padded_image, None + target = target.copy() + # should we do something wrt the original size? + target["size"] = torch.tensor(padded_image.size[::-1]) + if "masks" in target: + target["masks"] = torch.nn.functional.pad(target["masks"], (0, padding[0], 0, padding[1])) + return padded_image, target diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/mosaic.py b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/mosaic.py new file mode 100644 index 0000000..413900c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/mosaic.py @@ -0,0 +1,83 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import random + +import torch +import torchvision +import torchvision.transforms.v2 as T +import torchvision.transforms.v2.functional as F +from PIL import Image + +from ...core import register +from .._misc import convert_to_tv_tensor + +torchvision.disable_beta_transforms_warning() + + +@register() +class Mosaic(T.Transform): + def __init__( + self, + size, + max_size=None, + ) -> None: + super().__init__() + self.resize = T.Resize(size=size, max_size=max_size) + self.crop = T.RandomCrop(size=max_size if max_size else size) + + # TODO add arg `output_size` for affine` + # self.random_perspective = T.RandomPerspective(distortion_scale=0.5, p=1., ) + self.random_affine = T.RandomAffine( + degrees=0, translate=(0.1, 0.1), scale=(0.5, 1.5), fill=114 + ) + + def forward(self, *inputs): + inputs = inputs if len(inputs) > 1 else inputs[0] + image, target, dataset = inputs + + images = [] + targets = [] + indices = random.choices(range(len(dataset)), k=3) + for i in indices: + image, target = dataset.load_item(i) + image, target = self.resize(image, target) + images.append(image) + targets.append(target) + + h, w = F.get_spatial_size(images[0]) + offset = [[0, 0], [w, 0], [0, h], [w, h]] + image = Image.new(mode=images[0].mode, size=(w * 2, h * 2), color=0) + for i, im in enumerate(images): + image.paste(im, offset[i]) + + offset = torch.tensor([[0, 0], [w, 0], [0, h], [w, h]]).repeat(1, 2) + target = {} + for k in targets[0]: + if k == "boxes": + v = [t[k] + offset[i] for i, t in enumerate(targets)] + else: + v = [t[k] for t in targets] + + if isinstance(v[0], torch.Tensor): + v = torch.cat(v, dim=0) + + target[k] = v + + if "boxes" in target: + # target['boxes'] = target['boxes'].clamp(0, 640 * 2 - 1) + w, h = image.size + target["boxes"] = convert_to_tv_tensor( + target["boxes"], "boxes", box_format="xyxy", spatial_size=[h, w] + ) + + if "masks" in target: + target["masks"] = convert_to_tv_tensor(target["masks"], "masks") + + image, target = self.random_affine(image, target) + # image, target = self.resize(image, target) + image, target = self.crop(image, target) + + return image, target, dataset diff --git a/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/presets.py b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/presets.py new file mode 100644 index 0000000..6f6d59c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/data/transforms/presets.py @@ -0,0 +1,4 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" diff --git a/backend/apps/algorithms/algorithm/DFINE/src/misc/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/misc/__init__.py new file mode 100644 index 0000000..3d1f955 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/misc/__init__.py @@ -0,0 +1,9 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from .dist_utils import setup_print, setup_seed +from .logger import * +from .profiler_utils import stats +from .visualizer import * diff --git a/backend/apps/algorithms/algorithm/DFINE/src/misc/box_ops.py b/backend/apps/algorithms/algorithm/DFINE/src/misc/box_ops.py new file mode 100644 index 0000000..64dff0d --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/misc/box_ops.py @@ -0,0 +1,106 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from typing import List, Tuple + +import torch +import torchvision +from torch import Tensor + + +def generalized_box_iou(boxes1: Tensor, boxes2: Tensor) -> Tensor: + assert (boxes1[:, 2:] >= boxes1[:, :2]).all() + assert (boxes2[:, 2:] >= boxes2[:, :2]).all() + return torchvision.ops.generalized_box_iou(boxes1, boxes2) + + +# elementwise +def elementwise_box_iou(boxes1: Tensor, boxes2: Tensor) -> Tensor: + """ + Args: + boxes1, [N, 4] + boxes2, [N, 4] + Returns: + iou, [N, ] + union, [N, ] + """ + area1 = torchvision.ops.box_area(boxes1) # [N, ] + area2 = torchvision.ops.box_area(boxes2) # [N, ] + lt = torch.max(boxes1[:, :2], boxes2[:, :2]) # [N, 2] + rb = torch.min(boxes1[:, 2:], boxes2[:, 2:]) # [N, 2] + wh = (rb - lt).clamp(min=0) # [N, 2] + inter = wh[:, 0] * wh[:, 1] # [N, ] + union = area1 + area2 - inter + iou = inter / union + return iou, union + + +def elementwise_generalized_box_iou(boxes1: Tensor, boxes2: Tensor) -> Tensor: + """ + Args: + boxes1, [N, 4] with [x1, y1, x2, y2] + boxes2, [N, 4] with [x1, y1, x2, y2] + Returns: + giou, [N, ] + """ + assert (boxes1[:, 2:] >= boxes1[:, :2]).all() + assert (boxes2[:, 2:] >= boxes2[:, :2]).all() + iou, union = elementwise_box_iou(boxes1, boxes2) + lt = torch.min(boxes1[:, :2], boxes2[:, :2]) # [N, 2] + rb = torch.max(boxes1[:, 2:], boxes2[:, 2:]) # [N, 2] + wh = (rb - lt).clamp(min=0) # [N, 2] + area = wh[:, 0] * wh[:, 1] + return iou - (area - union) / area + + +def check_point_inside_box(points: Tensor, boxes: Tensor, eps=1e-9) -> Tensor: + """ + Args: + points, [K, 2], (x, y) + boxes, [N, 4], (x1, y1, y2, y2) + Returns: + Tensor (bool), [K, N] + """ + x, y = [p.unsqueeze(-1) for p in points.unbind(-1)] + x1, y1, x2, y2 = [x.unsqueeze(0) for x in boxes.unbind(-1)] + + l = x - x1 + t = y - y1 + r = x2 - x + b = y2 - y + + ltrb = torch.stack([l, t, r, b], dim=-1) + mask = ltrb.min(dim=-1).values > eps + + return mask + + +def point_box_distance(points: Tensor, boxes: Tensor) -> Tensor: + """ + Args: + boxes, [N, 4], (x1, y1, x2, y2) + points, [N, 2], (x, y) + Returns: + Tensor (N, 4), (l, t, r, b) + """ + x1y1, x2y2 = torch.split(boxes, 2, dim=-1) + lt = points - x1y1 + rb = x2y2 - points + return torch.concat([lt, rb], dim=-1) + + +def point_distance_box(points: Tensor, distances: Tensor) -> Tensor: + """ + Args: + points (Tensor), [N, 2], (x, y) + distances (Tensor), [N, 4], (l, t, r, b) + Returns: + boxes (Tensor), (N, 4), (x1, y1, x2, y2) + """ + lt, rb = torch.split(distances, 2, dim=-1) + x1y1 = -lt + points + x2y2 = rb + points + boxes = torch.concat([x1y1, x2y2], dim=-1) + return boxes diff --git a/backend/apps/algorithms/algorithm/DFINE/src/misc/dist_utils.py b/backend/apps/algorithms/algorithm/DFINE/src/misc/dist_utils.py new file mode 100644 index 0000000..959ded6 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/misc/dist_utils.py @@ -0,0 +1,281 @@ +""" +reference +- https://github.com/pytorch/vision/blob/main/references/detection/utils.py +- https://github.com/facebookresearch/detr/blob/master/util/misc.py#L406 + +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import atexit +import os +import random +import time + +import numpy as np +import torch +import torch.backends.cudnn +import torch.distributed +import torch.nn as nn +from torch.distributed.fsdp import FullyShardedDataParallel as FSDP +from torch.nn.parallel import DataParallel as DP +from torch.nn.parallel import DistributedDataParallel as DDP +from torch.utils.data import DistributedSampler + +# from torch.utils.data.dataloader import DataLoader +from ..data import DataLoader + + +def setup_distributed( + print_rank: int = 0, + print_method: str = "builtin", + seed: int = None, +): + """ + env setup + args: + print_rank, + print_method, (builtin, rich) + seed, + """ + try: + # https://pytorch.org/docs/stable/elastic/run.html + RANK = int(os.getenv("RANK", -1)) + LOCAL_RANK = int(os.getenv("LOCAL_RANK", -1)) + WORLD_SIZE = int(os.getenv("WORLD_SIZE", 1)) + + # torch.distributed.init_process_group(backend=backend, init_method='env://') + torch.distributed.init_process_group(init_method="env://") + torch.distributed.barrier() + + rank = torch.distributed.get_rank() + torch.cuda.set_device(rank) + torch.cuda.empty_cache() + enabled_dist = True + if get_rank() == print_rank: + print("Initialized distributed mode...") + + except Exception: + enabled_dist = False + print("Not init distributed mode.") + + setup_print(get_rank() == print_rank, method=print_method) + if seed is not None: + setup_seed(seed) + + return enabled_dist + + +def setup_print(is_main, method="builtin"): + """This function disables printing when not in master process""" + import builtins as __builtin__ + + if method == "builtin": + builtin_print = __builtin__.print + + elif method == "rich": + import rich + + builtin_print = rich.print + + else: + raise AttributeError("") + + def print(*args, **kwargs): + force = kwargs.pop("force", False) + if is_main or force: + builtin_print(*args, **kwargs) + + __builtin__.print = print + + +def is_dist_available_and_initialized(): + if not torch.distributed.is_available(): + return False + if not torch.distributed.is_initialized(): + return False + return True + + +@atexit.register +def cleanup(): + """cleanup distributed environment""" + if is_dist_available_and_initialized(): + torch.distributed.barrier() + torch.distributed.destroy_process_group() + + +def get_rank(): + if not is_dist_available_and_initialized(): + return 0 + return torch.distributed.get_rank() + + +def get_world_size(): + if not is_dist_available_and_initialized(): + return 1 + return torch.distributed.get_world_size() + + +def is_main_process(): + return get_rank() == 0 + + +def save_on_master(*args, **kwargs): + if is_main_process(): + torch.save(*args, **kwargs) + + +def warp_model( + model: torch.nn.Module, + sync_bn: bool = False, + dist_mode: str = "ddp", + find_unused_parameters: bool = False, + compile: bool = False, + compile_mode: str = "reduce-overhead", + **kwargs, +): + if is_dist_available_and_initialized(): + rank = get_rank() + model = nn.SyncBatchNorm.convert_sync_batchnorm(model) if sync_bn else model + if dist_mode == "dp": + model = DP(model, device_ids=[rank], output_device=rank) + elif dist_mode == "ddp": + model = DDP( + model, + device_ids=[rank], + output_device=rank, + find_unused_parameters=find_unused_parameters, + ) + else: + raise AttributeError("") + + if compile: + model = torch.compile(model, mode=compile_mode) + + return model + + +def de_model(model): + return de_parallel(de_complie(model)) + + +def warp_loader(loader, shuffle=False): + if is_dist_available_and_initialized(): + sampler = DistributedSampler(loader.dataset, shuffle=shuffle) + loader = DataLoader( + loader.dataset, + loader.batch_size, + sampler=sampler, + drop_last=loader.drop_last, + collate_fn=loader.collate_fn, + pin_memory=loader.pin_memory, + num_workers=loader.num_workers, + ) + return loader + + +def is_parallel(model) -> bool: + # Returns True if model is of type DP or DDP + return type(model) in ( + torch.nn.parallel.DataParallel, + torch.nn.parallel.DistributedDataParallel, + ) + + +def de_parallel(model) -> nn.Module: + # De-parallelize a model: returns single-GPU model if model is of type DP or DDP + return model.module if is_parallel(model) else model + + +def reduce_dict(data, avg=True): + """ + Args + data dict: input, {k: v, ...} + avg bool: true + """ + world_size = get_world_size() + if world_size < 2: + return data + + with torch.no_grad(): + keys, values = [], [] + for k in sorted(data.keys()): + keys.append(k) + values.append(data[k]) + + values = torch.stack(values, dim=0) + torch.distributed.all_reduce(values) + + if avg is True: + values /= world_size + + return {k: v for k, v in zip(keys, values)} + + +def all_gather(data): + """ + Run all_gather on arbitrary picklable data (not necessarily tensors) + Args: + data: any picklable object + Returns: + list[data]: list of data gathered from each rank + """ + world_size = get_world_size() + if world_size == 1: + return [data] + data_list = [None] * world_size + torch.distributed.all_gather_object(data_list, data) + return data_list + + +def sync_time(): + """sync_time""" + if torch.cuda.is_available(): + torch.cuda.synchronize() + + return time.time() + + +def setup_seed(seed: int, deterministic=False): + """setup_seed for reproducibility + torch.manual_seed(3407) is all you need. https://arxiv.org/abs/2109.08203 + """ + seed = seed + get_rank() + random.seed(seed) + np.random.seed(seed) + torch.manual_seed(seed) + + if torch.cuda.is_available(): + torch.cuda.manual_seed_all(seed) + + # memory will be large when setting deterministic to True + if torch.backends.cudnn.is_available() and deterministic: + torch.backends.cudnn.deterministic = True + + +# for torch.compile +def check_compile(): + import warnings + + import torch + + gpu_ok = False + if torch.cuda.is_available(): + device_cap = torch.cuda.get_device_capability() + if device_cap in ((7, 0), (8, 0), (9, 0)): + gpu_ok = True + if not gpu_ok: + warnings.warn( + "GPU is not NVIDIA V100, A100, or H100. Speedup numbers may be lower " "than expected." + ) + return gpu_ok + + +def is_compile(model): + import torch._dynamo + + return type(model) in (torch._dynamo.OptimizedModule,) + + +def de_complie(model): + return model._orig_mod if is_compile(model) else model diff --git a/backend/apps/algorithms/algorithm/DFINE/src/misc/lazy_loader.py b/backend/apps/algorithms/algorithm/DFINE/src/misc/lazy_loader.py new file mode 100644 index 0000000..208fb12 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/misc/lazy_loader.py @@ -0,0 +1,70 @@ +""" +https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/util/lazy_loader.py +""" + +import importlib +import types + + +class LazyLoader(types.ModuleType): + """Lazily import a module, mainly to avoid pulling in large dependencies. + + `paddle`, and `ffmpeg` are examples of modules that are large and not always + needed, and this allows them to only be loaded when they are used. + """ + + # The lint error here is incorrect. + def __init__(self, local_name, parent_module_globals, name, warning=None): + self._local_name = local_name + self._parent_module_globals = parent_module_globals + self._warning = warning + + # These members allows doctest correctly process this module member without + # triggering self._load(). self._load() mutates parant_module_globals and + # triggers a dict mutated during iteration error from doctest.py. + # - for from_module() + self.__module__ = name.rsplit(".", 1)[0] + # - for is_routine() + self.__wrapped__ = None + + super(LazyLoader, self).__init__(name) + + def _load(self): + """Load the module and insert it into the parent's globals.""" + # Import the target module and insert it into the parent's namespace + module = importlib.import_module(self.__name__) + self._parent_module_globals[self._local_name] = module + + # Emit a warning if one was specified + if self._warning: + # logging.warning(self._warning) + # Make sure to only warn once. + self._warning = None + + # Update this object's dict so that if someone keeps a reference to the + # LazyLoader, lookups are efficient (__getattr__ is only called on lookups + # that fail). + self.__dict__.update(module.__dict__) + + return module + + def __getattr__(self, item): + module = self._load() + return getattr(module, item) + + def __repr__(self): + # Carefully to not trigger _load, since repr may be called in very + # sensitive places. + return f"" + + def __dir__(self): + module = self._load() + return dir(module) + + +# import paddle.nn as nn +# nn = LazyLoader("nn", globals(), "paddle.nn") + +# class M(nn.Layer): +# def __init__(self) -> None: +# super().__init__() diff --git a/backend/apps/algorithms/algorithm/DFINE/src/misc/logger.py b/backend/apps/algorithms/algorithm/DFINE/src/misc/logger.py new file mode 100644 index 0000000..0c1ca18 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/misc/logger.py @@ -0,0 +1,255 @@ +""" +# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved +https://github.com/facebookresearch/detr/blob/main/util/misc.py +Mostly copy-paste from torchvision references. +""" + +import datetime +import pickle +import time +from collections import defaultdict, deque +from typing import Dict + +import torch +import torch.distributed as tdist + +from .dist_utils import get_world_size, is_dist_available_and_initialized + + +class SmoothedValue(object): + """Track a series of values and provide access to smoothed values over a + window or the global series average. + """ + + def __init__(self, window_size=20, fmt=None): + if fmt is None: + fmt = "{median:.4f} ({global_avg:.4f})" + self.deque = deque(maxlen=window_size) + self.total = 0.0 + self.count = 0 + self.fmt = fmt + + def update(self, value, n=1): + self.deque.append(value) + self.count += n + self.total += value * n + + def synchronize_between_processes(self): + """ + Warning: does not synchronize the deque! + """ + if not is_dist_available_and_initialized(): + return + t = torch.tensor([self.count, self.total], dtype=torch.float64, device="cuda") + tdist.barrier() + tdist.all_reduce(t) + t = t.tolist() + self.count = int(t[0]) + self.total = t[1] + + @property + def median(self): + d = torch.tensor(list(self.deque)) + return d.median().item() + + @property + def avg(self): + d = torch.tensor(list(self.deque), dtype=torch.float32) + return d.mean().item() + + @property + def global_avg(self): + return self.total / self.count + + @property + def max(self): + return max(self.deque) + + @property + def value(self): + return self.deque[-1] + + def __str__(self): + return self.fmt.format( + median=self.median, + avg=self.avg, + global_avg=self.global_avg, + max=self.max, + value=self.value, + ) + + +def all_gather(data): + """ + Run all_gather on arbitrary picklable data (not necessarily tensors) + Args: + data: any picklable object + Returns: + list[data]: list of data gathered from each rank + """ + world_size = get_world_size() + if world_size == 1: + return [data] + + # serialized to a Tensor + buffer = pickle.dumps(data) + storage = torch.ByteStorage.from_buffer(buffer) + tensor = torch.ByteTensor(storage).to("cuda") + + # obtain Tensor size of each rank + local_size = torch.tensor([tensor.numel()], device="cuda") + size_list = [torch.tensor([0], device="cuda") for _ in range(world_size)] + tdist.all_gather(size_list, local_size) + size_list = [int(size.item()) for size in size_list] + max_size = max(size_list) + + # receiving Tensor from all ranks + # we pad the tensor because torch all_gather does not support + # gathering tensors of different shapes + tensor_list = [] + for _ in size_list: + tensor_list.append(torch.empty((max_size,), dtype=torch.uint8, device="cuda")) + if local_size != max_size: + padding = torch.empty(size=(max_size - local_size,), dtype=torch.uint8, device="cuda") + tensor = torch.cat((tensor, padding), dim=0) + tdist.all_gather(tensor_list, tensor) + + data_list = [] + for size, tensor in zip(size_list, tensor_list): + buffer = tensor.cpu().numpy().tobytes()[:size] + data_list.append(pickle.loads(buffer)) + + return data_list + + +def reduce_dict(input_dict, average=True) -> Dict[str, torch.Tensor]: + """ + Args: + input_dict (dict): all the values will be reduced + average (bool): whether to do average or sum + Reduce the values in the dictionary from all processes so that all processes + have the averaged results. Returns a dict with the same fields as + input_dict, after reduction. + """ + world_size = get_world_size() + if world_size < 2: + return input_dict + with torch.no_grad(): + names = [] + values = [] + # sort the keys so that they are consistent across processes + for k in sorted(input_dict.keys()): + names.append(k) + values.append(input_dict[k]) + values = torch.stack(values, dim=0) + tdist.all_reduce(values) + if average: + values /= world_size + reduced_dict = {k: v for k, v in zip(names, values)} + return reduced_dict + + +class MetricLogger(object): + def __init__(self, delimiter="\t"): + self.meters = defaultdict(SmoothedValue) + self.delimiter = delimiter + + def update(self, **kwargs): + for k, v in kwargs.items(): + if isinstance(v, torch.Tensor): + v = v.item() + assert isinstance(v, (float, int)) + self.meters[k].update(v) + + def __getattr__(self, attr): + if attr in self.meters: + return self.meters[attr] + if attr in self.__dict__: + return self.__dict__[attr] + raise AttributeError("'{}' object has no attribute '{}'".format(type(self).__name__, attr)) + + def __str__(self): + loss_str = [] + for name, meter in self.meters.items(): + loss_str.append("{}: {}".format(name, str(meter))) + return self.delimiter.join(loss_str) + + def synchronize_between_processes(self): + for meter in self.meters.values(): + meter.synchronize_between_processes() + + def add_meter(self, name, meter): + self.meters[name] = meter + + def log_every(self, iterable, print_freq, header=None): + i = 0 + if not header: + header = "" + start_time = time.time() + end = time.time() + iter_time = SmoothedValue(fmt="{avg:.4f}") + data_time = SmoothedValue(fmt="{avg:.4f}") + space_fmt = ":" + str(len(str(len(iterable)))) + "d" + if torch.cuda.is_available(): + log_msg = self.delimiter.join( + [ + header, + "[{0" + space_fmt + "}/{1}]", + "eta: {eta}", + "{meters}", + "time: {time}", + "data: {data}", + "max mem: {memory:.0f}", + ] + ) + else: + log_msg = self.delimiter.join( + [ + header, + "[{0" + space_fmt + "}/{1}]", + "eta: {eta}", + "{meters}", + "time: {time}", + "data: {data}", + ] + ) + MB = 1024.0 * 1024.0 + for obj in iterable: + data_time.update(time.time() - end) + yield obj + iter_time.update(time.time() - end) + if i % print_freq == 0 or i == len(iterable) - 1: + eta_seconds = iter_time.global_avg * (len(iterable) - i) + eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) + if torch.cuda.is_available(): + print( + log_msg.format( + i, + len(iterable), + eta=eta_string, + meters=str(self), + time=str(iter_time), + data=str(data_time), + memory=torch.cuda.max_memory_allocated() / MB, + ) + ) + else: + print( + log_msg.format( + i, + len(iterable), + eta=eta_string, + meters=str(self), + time=str(iter_time), + data=str(data_time), + ) + ) + i += 1 + end = time.time() + total_time = time.time() - start_time + total_time_str = str(datetime.timedelta(seconds=int(total_time))) + print( + "{} Total time: {} ({:.4f} s / it)".format( + header, total_time_str, total_time / len(iterable) + ) + ) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/misc/profiler_utils.py b/backend/apps/algorithms/algorithm/DFINE/src/misc/profiler_utils.py new file mode 100644 index 0000000..84db32a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/misc/profiler_utils.py @@ -0,0 +1,30 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import copy +from typing import Tuple + +from calflops import calculate_flops + + +def stats( + cfg, + input_shape: Tuple = (1, 3, 640, 640), +) -> Tuple[int, dict]: + base_size = cfg.train_dataloader.collate_fn.base_size + input_shape = (1, 3, base_size, base_size) + + model_for_info = copy.deepcopy(cfg.model).deploy() + + flops, macs, _ = calculate_flops( + model=model_for_info, + input_shape=input_shape, + output_as_string=True, + output_precision=4, + print_detailed=False, + ) + params = sum(p.numel() for p in model_for_info.parameters()) + del model_for_info + + return params, {"Model FLOPs:%s MACs:%s Params:%s" % (flops, macs, params)} diff --git a/backend/apps/algorithms/algorithm/DFINE/src/misc/visualizer.py b/backend/apps/algorithms/algorithm/DFINE/src/misc/visualizer.py new file mode 100644 index 0000000..fa82f7c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/misc/visualizer.py @@ -0,0 +1,121 @@ +""" " +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import PIL +import numpy as np +import torch +import torch.utils.data +import torchvision +from typing import List, Dict + +torchvision.disable_beta_transforms_warning() + +__all__ = ["show_sample", "save_samples"] + +def save_samples(samples: torch.Tensor, targets: List[Dict], output_dir: str, split: str, normalized: bool, box_fmt: str): + ''' + normalized: whether the boxes are normalized to [0, 1] + box_fmt: 'xyxy', 'xywh', 'cxcywh', D-FINE uses 'cxcywh' for training, 'xyxy' for validation + ''' + from torchvision.transforms.functional import to_pil_image + from torchvision.ops import box_convert + from pathlib import Path + from PIL import ImageDraw, ImageFont + import os + + os.makedirs(Path(output_dir) / Path(f"{split}_samples"), exist_ok=True) + # Predefined colors (standard color names recognized by PIL) + BOX_COLORS = [ + "red", "blue", "green", "orange", "purple", + "cyan", "magenta", "yellow", "lime", "pink", + "teal", "lavender", "brown", "beige", "maroon", + "navy", "olive", "coral", "turquoise", "gold" + ] + + LABEL_TEXT_COLOR = "white" + + font = ImageFont.load_default() + font.size = 32 + + for i, (sample, target) in enumerate(zip(samples, targets)): + sample_visualization = sample.clone().cpu() + target_boxes = target["boxes"].clone().cpu() + target_labels = target["labels"].clone().cpu() + target_image_id = target["image_id"].item() + target_image_path = target["image_path"] + target_image_path_stem = Path(target_image_path).stem + + sample_visualization = to_pil_image(sample_visualization) + sample_visualization_w, sample_visualization_h = sample_visualization.size + + # normalized to pixel space + if normalized: + target_boxes[:, 0] = target_boxes[:, 0] * sample_visualization_w + target_boxes[:, 2] = target_boxes[:, 2] * sample_visualization_w + target_boxes[:, 1] = target_boxes[:, 1] * sample_visualization_h + target_boxes[:, 3] = target_boxes[:, 3] * sample_visualization_h + + # any box format -> xyxy + target_boxes = box_convert(target_boxes, in_fmt=box_fmt, out_fmt="xyxy") + + # clip to image size + target_boxes[:, 0] = torch.clamp(target_boxes[:, 0], 0, sample_visualization_w) + target_boxes[:, 1] = torch.clamp(target_boxes[:, 1], 0, sample_visualization_h) + target_boxes[:, 2] = torch.clamp(target_boxes[:, 2], 0, sample_visualization_w) + target_boxes[:, 3] = torch.clamp(target_boxes[:, 3], 0, sample_visualization_h) + + target_boxes = target_boxes.numpy().astype(np.int32) + target_labels = target_labels.numpy().astype(np.int32) + + draw = ImageDraw.Draw(sample_visualization) + + # draw target boxes + for box, label in zip(target_boxes, target_labels): + x1, y1, x2, y2 = box + + # Select color based on class ID + box_color = BOX_COLORS[int(label) % len(BOX_COLORS)] + + # Draw box (thick) + draw.rectangle([x1, y1, x2, y2], outline=box_color, width=3) + + label_text = f"{label}" + + # Measure text size + text_width, text_height = draw.textbbox((0, 0), label_text, font=font)[2:4] + + # Draw text background + padding = 2 + draw.rectangle( + [x1, y1 - text_height - padding * 2, x1 + text_width + padding * 2, y1], + fill=box_color + ) + + # Draw text (LABEL_TEXT_COLOR) + draw.text((x1 + padding, y1 - text_height - padding), label_text, + fill=LABEL_TEXT_COLOR, font=font) + + save_path = Path(output_dir) / f"{split}_samples" / f"{target_image_id}_{target_image_path_stem}.webp" + sample_visualization.save(save_path) + +def show_sample(sample): + """for coco dataset/dataloader""" + import matplotlib.pyplot as plt + from torchvision.transforms.v2 import functional as F + from torchvision.utils import draw_bounding_boxes + + image, target = sample + if isinstance(image, PIL.Image.Image): + image = F.to_image_tensor(image) + + image = F.convert_dtype(image, torch.uint8) + annotated_image = draw_bounding_boxes(image, target["boxes"], colors="yellow", width=3) + + fig, ax = plt.subplots() + ax.imshow(annotated_image.permute(1, 2, 0).numpy()) + ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[]) + fig.tight_layout() + fig.show() + plt.show() diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/__init__.py new file mode 100644 index 0000000..4544b3c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/__init__.py @@ -0,0 +1,16 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from .arch import * + +# +from .backbone import * +from .backbone import ( + FrozenBatchNorm2d, + freeze_batch_norm2d, + get_activation, +) +from .criterion import * +from .postprocessor import * diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/__init__.py new file mode 100644 index 0000000..29f908c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/__init__.py @@ -0,0 +1,7 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from .classification import ClassHead, Classification +from .yolo import YOLO diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/classification.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/classification.py new file mode 100644 index 0000000..d287543 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/classification.py @@ -0,0 +1,45 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torch.nn as nn + +from ...core import register + +__all__ = ["Classification", "ClassHead"] + + +@register() +class Classification(torch.nn.Module): + __inject__ = ["backbone", "head"] + + def __init__(self, backbone: nn.Module, head: nn.Module = None): + super().__init__() + + self.backbone = backbone + self.head = head + + def forward(self, x): + x = self.backbone(x) + + if self.head is not None: + x = self.head(x) + + return x + + +@register() +class ClassHead(nn.Module): + def __init__(self, hidden_dim, num_classes): + super().__init__() + self.pool = nn.AdaptiveAvgPool2d(1) + self.proj = nn.Linear(hidden_dim, num_classes) + + def forward(self, x): + x = x[0] if isinstance(x, (list, tuple)) else x + x = self.pool(x) + x = x.reshape(x.shape[0], -1) + x = self.proj(x) + return x diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/yolo.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/yolo.py new file mode 100644 index 0000000..c40a306 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/arch/yolo.py @@ -0,0 +1,42 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch + +from ...core import register + +__all__ = [ + "YOLO", +] + + +@register() +class YOLO(torch.nn.Module): + __inject__ = [ + "backbone", + "neck", + "head", + ] + + def __init__(self, backbone: torch.nn.Module, neck, head): + super().__init__() + self.backbone = backbone + self.neck = neck + self.head = head + + def forward(self, x, **kwargs): + x = self.backbone(x) + x = self.neck(x) + x = self.head(x) + return x + + def deploy( + self, + ): + self.eval() + for m in self.modules(): + if m is not self and hasattr(m, "deploy"): + m.deploy() + return self diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/__init__.py new file mode 100644 index 0000000..497d8df --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/__init__.py @@ -0,0 +1,17 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from .common import ( + FrozenBatchNorm2d, + freeze_batch_norm2d, + get_activation, +) +from .csp_darknet import CSPPAN, CSPDarkNet +from .csp_resnet import CSPResNet +from .hgnetv2 import HGNetv2 +from .presnet import PResNet +from .test_resnet import MResNet +from .timm_model import TimmModel +from .torchvision_model import TorchVisionModel diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/common.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/common.py new file mode 100644 index 0000000..fcdb906 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/common.py @@ -0,0 +1,117 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torch.nn as nn + + +class ConvNormLayer(nn.Module): + def __init__(self, ch_in, ch_out, kernel_size, stride, padding=None, bias=False, act=None): + super().__init__() + self.conv = nn.Conv2d( + ch_in, + ch_out, + kernel_size, + stride, + padding=(kernel_size - 1) // 2 if padding is None else padding, + bias=bias, + ) + self.norm = nn.BatchNorm2d(ch_out) + self.act = nn.Identity() if act is None else get_activation(act) + + def forward(self, x): + return self.act(self.norm(self.conv(x))) + + +class FrozenBatchNorm2d(nn.Module): + """copy and modified from https://github.com/facebookresearch/detr/blob/master/models/backbone.py + BatchNorm2d where the batch statistics and the affine parameters are fixed. + Copy-paste from torchvision.misc.ops with added eps before rqsrt, + without which any other models than torchvision.models.resnet[18,34,50,101] + produce nans. + """ + + def __init__(self, num_features, eps=1e-5): + super(FrozenBatchNorm2d, self).__init__() + n = num_features + self.register_buffer("weight", torch.ones(n)) + self.register_buffer("bias", torch.zeros(n)) + self.register_buffer("running_mean", torch.zeros(n)) + self.register_buffer("running_var", torch.ones(n)) + self.eps = eps + self.num_features = n + + def _load_from_state_dict( + self, state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs + ): + num_batches_tracked_key = prefix + "num_batches_tracked" + if num_batches_tracked_key in state_dict: + del state_dict[num_batches_tracked_key] + + super(FrozenBatchNorm2d, self)._load_from_state_dict( + state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs + ) + + def forward(self, x): + # move reshapes to the beginning + # to make it fuser-friendly + w = self.weight.reshape(1, -1, 1, 1) + b = self.bias.reshape(1, -1, 1, 1) + rv = self.running_var.reshape(1, -1, 1, 1) + rm = self.running_mean.reshape(1, -1, 1, 1) + scale = w * (rv + self.eps).rsqrt() + bias = b - rm * scale + return x * scale + bias + + def extra_repr(self): + return "{num_features}, eps={eps}".format(**self.__dict__) + + +def freeze_batch_norm2d(module: nn.Module) -> nn.Module: + if isinstance(module, nn.BatchNorm2d): + module = FrozenBatchNorm2d(module.num_features) + else: + for name, child in module.named_children(): + _child = freeze_batch_norm2d(child) + if _child is not child: + setattr(module, name, _child) + return module + + +def get_activation(act: str, inplace: bool = True): + """get activation""" + if act is None: + return nn.Identity() + + elif isinstance(act, nn.Module): + return act + + act = act.lower() + + if act == "silu" or act == "swish": + m = nn.SiLU() + + elif act == "relu": + m = nn.ReLU() + + elif act == "leaky_relu": + m = nn.LeakyReLU() + + elif act == "silu": + m = nn.SiLU() + + elif act == "gelu": + m = nn.GELU() + + elif act == "hardsigmoid": + m = nn.Hardsigmoid() + + else: + raise RuntimeError("") + + if hasattr(m, "inplace"): + m.inplace = inplace + + return m diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/csp_darknet.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/csp_darknet.py new file mode 100644 index 0000000..f6efa01 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/csp_darknet.py @@ -0,0 +1,203 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import math +import warnings + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...core import register +from .common import get_activation + + +def autopad(k, p=None): + if p is None: + p = k // 2 if isinstance(k, int) else [x // 2 for x in k] + return p + + +def make_divisible(c, d): + return math.ceil(c / d) * d + + +class Conv(nn.Module): + def __init__(self, cin, cout, k=1, s=1, p=None, g=1, act="silu") -> None: + super().__init__() + self.conv = nn.Conv2d(cin, cout, k, s, autopad(k, p), groups=g, bias=False) + self.bn = nn.BatchNorm2d(cout) + self.act = get_activation(act, inplace=True) + + def forward(self, x): + return self.act(self.bn(self.conv(x))) + + +class Bottleneck(nn.Module): + # Standard bottleneck + def __init__(self, c1, c2, shortcut=True, g=1, e=0.5, act="silu"): + super().__init__() + c_ = int(c2 * e) # hidden channels + self.cv1 = Conv(c1, c_, 1, 1, act=act) + self.cv2 = Conv(c_, c2, 3, 1, g=g, act=act) + self.add = shortcut and c1 == c2 + + def forward(self, x): + return x + self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x)) + + +class C3(nn.Module): + # CSP Bottleneck with 3 convolutions + def __init__( + self, c1, c2, n=1, shortcut=True, g=1, e=0.5, act="silu" + ): # ch_in, ch_out, number, shortcut, groups, expansion + super().__init__() + c_ = int(c2 * e) # hidden channels + self.cv1 = Conv(c1, c_, 1, 1, act=act) + self.cv2 = Conv(c1, c_, 1, 1, act=act) + self.m = nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, e=1.0, act=act) for _ in range(n))) + self.cv3 = Conv(2 * c_, c2, 1, act=act) + + def forward(self, x): + return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), dim=1)) + + +class SPPF(nn.Module): + # Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher + def __init__(self, c1, c2, k=5, act="silu"): # equivalent to SPP(k=(5, 9, 13)) + super().__init__() + c_ = c1 // 2 # hidden channels + self.cv1 = Conv(c1, c_, 1, 1, act=act) + self.cv2 = Conv(c_ * 4, c2, 1, 1, act=act) + self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2) + + def forward(self, x): + x = self.cv1(x) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") # suppress torch 1.9.0 max_pool2d() warning + y1 = self.m(x) + y2 = self.m(y1) + return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1)) + + +@register() +class CSPDarkNet(nn.Module): + __share__ = ["depth_multi", "width_multi"] + + def __init__( + self, + in_channels=3, + width_multi=1.0, + depth_multi=1.0, + return_idx=[2, 3, -1], + act="silu", + ) -> None: + super().__init__() + + channels = [64, 128, 256, 512, 1024] + channels = [make_divisible(c * width_multi, 8) for c in channels] + + depths = [3, 6, 9, 3] + depths = [max(round(d * depth_multi), 1) for d in depths] + + self.layers = nn.ModuleList([Conv(in_channels, channels[0], 6, 2, 2, act=act)]) + for i, (c, d) in enumerate(zip(channels, depths), 1): + layer = nn.Sequential( + *[Conv(c, channels[i], 3, 2, act=act), C3(channels[i], channels[i], n=d, act=act)] + ) + self.layers.append(layer) + + self.layers.append(SPPF(channels[-1], channels[-1], k=5, act=act)) + + self.return_idx = return_idx + self.out_channels = [channels[i] for i in self.return_idx] + self.strides = [[2, 4, 8, 16, 32][i] for i in self.return_idx] + self.depths = depths + self.act = act + + def forward(self, x): + outputs = [] + for _, m in enumerate(self.layers): + x = m(x) + outputs.append(x) + + return [outputs[i] for i in self.return_idx] + + +@register() +class CSPPAN(nn.Module): + """ + P5 ---> 1x1 ---------------------------------> concat --> c3 --> det + | up | conv /2 + P4 ---> concat ---> c3 ---> 1x1 --> concat ---> c3 -----------> det + | up | conv /2 + P3 -----------------------> concat ---> c3 ---------------------> det + """ + + __share__ = [ + "depth_multi", + ] + + def __init__(self, in_channels=[256, 512, 1024], depth_multi=1.0, act="silu") -> None: + super().__init__() + depth = max(round(3 * depth_multi), 1) + + self.out_channels = in_channels + self.fpn_stems = nn.ModuleList( + [ + Conv(cin, cout, 1, 1, act=act) + for cin, cout in zip(in_channels[::-1], in_channels[::-1][1:]) + ] + ) + self.fpn_csps = nn.ModuleList( + [ + C3(cin, cout, depth, False, act=act) + for cin, cout in zip(in_channels[::-1], in_channels[::-1][1:]) + ] + ) + + self.pan_stems = nn.ModuleList([Conv(c, c, 3, 2, act=act) for c in in_channels[:-1]]) + self.pan_csps = nn.ModuleList([C3(c, c, depth, False, act=act) for c in in_channels[1:]]) + + def forward(self, feats): + fpn_feats = [] + for i, feat in enumerate(feats[::-1]): + if i == 0: + feat = self.fpn_stems[i](feat) + fpn_feats.append(feat) + else: + _feat = F.interpolate(fpn_feats[-1], scale_factor=2, mode="nearest") + feat = torch.concat([_feat, feat], dim=1) + feat = self.fpn_csps[i - 1](feat) + if i < len(self.fpn_stems): + feat = self.fpn_stems[i](feat) + fpn_feats.append(feat) + + pan_feats = [] + for i, feat in enumerate(fpn_feats[::-1]): + if i == 0: + pan_feats.append(feat) + else: + _feat = self.pan_stems[i - 1](pan_feats[-1]) + feat = torch.concat([_feat, feat], dim=1) + feat = self.pan_csps[i - 1](feat) + pan_feats.append(feat) + + return pan_feats + + +if __name__ == "__main__": + data = torch.rand(1, 3, 320, 640) + + width_multi = 0.75 + depth_multi = 0.33 + + m = CSPDarkNet(3, width_multi=width_multi, depth_multi=depth_multi, act="silu") + outputs = m(data) + print([o.shape for o in outputs]) + + m = CSPPAN(in_channels=m.out_channels, depth_multi=depth_multi, act="silu") + outputs = m(outputs) + print([o.shape for o in outputs]) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/csp_resnet.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/csp_resnet.py new file mode 100644 index 0000000..17887c7 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/csp_resnet.py @@ -0,0 +1,302 @@ +""" +https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/ppdet/modeling/backbones/cspresnet.py + +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from collections import OrderedDict + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...core import register +from .common import get_activation + +__all__ = ["CSPResNet"] + + +donwload_url = { + "s": "https://github.com/lyuwenyu/storage/releases/download/v0.1/CSPResNetb_s_pretrained_from_paddle.pth", + "m": "https://github.com/lyuwenyu/storage/releases/download/v0.1/CSPResNetb_m_pretrained_from_paddle.pth", + "l": "https://github.com/lyuwenyu/storage/releases/download/v0.1/CSPResNetb_l_pretrained_from_paddle.pth", + "x": "https://github.com/lyuwenyu/storage/releases/download/v0.1/CSPResNetb_x_pretrained_from_paddle.pth", +} + + +class ConvBNLayer(nn.Module): + def __init__(self, ch_in, ch_out, filter_size=3, stride=1, groups=1, padding=0, act=None): + super().__init__() + self.conv = nn.Conv2d( + ch_in, ch_out, filter_size, stride, padding, groups=groups, bias=False + ) + self.bn = nn.BatchNorm2d(ch_out) + self.act = get_activation(act) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = self.conv(x) + x = self.bn(x) + x = self.act(x) + return x + + +class RepVggBlock(nn.Module): + def __init__(self, ch_in, ch_out, act="relu", alpha: bool = False): + super().__init__() + self.ch_in = ch_in + self.ch_out = ch_out + self.conv1 = ConvBNLayer(ch_in, ch_out, 3, stride=1, padding=1, act=None) + self.conv2 = ConvBNLayer(ch_in, ch_out, 1, stride=1, padding=0, act=None) + self.act = get_activation(act) + + if alpha: + self.alpha = nn.Parameter( + torch.ones( + 1, + ) + ) + else: + self.alpha = None + + def forward(self, x): + if hasattr(self, "conv"): + y = self.conv(x) + else: + if self.alpha: + y = self.conv1(x) + self.alpha * self.conv2(x) + else: + y = self.conv1(x) + self.conv2(x) + y = self.act(y) + return y + + def convert_to_deploy(self): + if not hasattr(self, "conv"): + self.conv = nn.Conv2d(self.ch_in, self.ch_out, 3, 1, padding=1) + + kernel, bias = self.get_equivalent_kernel_bias() + self.conv.weight.data = kernel + self.conv.bias.data = bias + + def get_equivalent_kernel_bias(self): + kernel3x3, bias3x3 = self._fuse_bn_tensor(self.conv1) + kernel1x1, bias1x1 = self._fuse_bn_tensor(self.conv2) + + if self.alpha: + return kernel3x3 + self.alpha * self._pad_1x1_to_3x3_tensor( + kernel1x1 + ), bias3x3 + self.alpha * bias1x1 + else: + return kernel3x3 + self._pad_1x1_to_3x3_tensor(kernel1x1), bias3x3 + bias1x1 + + def _pad_1x1_to_3x3_tensor(self, kernel1x1): + if kernel1x1 is None: + return 0 + else: + return F.pad(kernel1x1, [1, 1, 1, 1]) + + def _fuse_bn_tensor(self, branch: ConvBNLayer): + if branch is None: + return 0, 0 + kernel = branch.conv.weight + running_mean = branch.norm.running_mean + running_var = branch.norm.running_var + gamma = branch.norm.weight + beta = branch.norm.bias + eps = branch.norm.eps + std = (running_var + eps).sqrt() + t = (gamma / std).reshape(-1, 1, 1, 1) + return kernel * t, beta - running_mean * gamma / std + + +class BasicBlock(nn.Module): + def __init__(self, ch_in, ch_out, act="relu", shortcut=True, use_alpha=False): + super().__init__() + assert ch_in == ch_out + self.conv1 = ConvBNLayer(ch_in, ch_out, 3, stride=1, padding=1, act=act) + self.conv2 = RepVggBlock(ch_out, ch_out, act=act, alpha=use_alpha) + self.shortcut = shortcut + + def forward(self, x): + y = self.conv1(x) + y = self.conv2(y) + if self.shortcut: + return x + y + else: + return y + + +class EffectiveSELayer(nn.Module): + """Effective Squeeze-Excitation + From `CenterMask : Real-Time Anchor-Free Instance Segmentation` - https://arxiv.org/abs/1911.06667 + """ + + def __init__(self, channels, act="hardsigmoid"): + super(EffectiveSELayer, self).__init__() + self.fc = nn.Conv2d(channels, channels, kernel_size=1, padding=0) + self.act = get_activation(act) + + def forward(self, x: torch.Tensor): + x_se = x.mean((2, 3), keepdim=True) + x_se = self.fc(x_se) + x_se = self.act(x_se) + return x * x_se + + +class CSPResStage(nn.Module): + def __init__(self, block_fn, ch_in, ch_out, n, stride, act="relu", attn="eca", use_alpha=False): + super().__init__() + ch_mid = (ch_in + ch_out) // 2 + if stride == 2: + self.conv_down = ConvBNLayer(ch_in, ch_mid, 3, stride=2, padding=1, act=act) + else: + self.conv_down = None + self.conv1 = ConvBNLayer(ch_mid, ch_mid // 2, 1, act=act) + self.conv2 = ConvBNLayer(ch_mid, ch_mid // 2, 1, act=act) + self.blocks = nn.Sequential( + *[ + block_fn(ch_mid // 2, ch_mid // 2, act=act, shortcut=True, use_alpha=use_alpha) + for i in range(n) + ] + ) + if attn: + self.attn = EffectiveSELayer(ch_mid, act="hardsigmoid") + else: + self.attn = None + + self.conv3 = ConvBNLayer(ch_mid, ch_out, 1, act=act) + + def forward(self, x): + if self.conv_down is not None: + x = self.conv_down(x) + y1 = self.conv1(x) + y2 = self.blocks(self.conv2(x)) + y = torch.concat([y1, y2], dim=1) + if self.attn is not None: + y = self.attn(y) + y = self.conv3(y) + return y + + +@register() +class CSPResNet(nn.Module): + layers = [3, 6, 6, 3] + channels = [64, 128, 256, 512, 1024] + model_cfg = { + "s": { + "depth_mult": 0.33, + "width_mult": 0.50, + }, + "m": { + "depth_mult": 0.67, + "width_mult": 0.75, + }, + "l": { + "depth_mult": 1.00, + "width_mult": 1.00, + }, + "x": { + "depth_mult": 1.33, + "width_mult": 1.25, + }, + } + + def __init__( + self, + name: str, + act="silu", + return_idx=[1, 2, 3], + use_large_stem=True, + use_alpha=False, + pretrained=False, + ): + super().__init__() + depth_mult = self.model_cfg[name]["depth_mult"] + width_mult = self.model_cfg[name]["width_mult"] + + channels = [max(round(c * width_mult), 1) for c in self.channels] + layers = [max(round(l * depth_mult), 1) for l in self.layers] + act = get_activation(act) + + if use_large_stem: + self.stem = nn.Sequential( + OrderedDict( + [ + ( + "conv1", + ConvBNLayer(3, channels[0] // 2, 3, stride=2, padding=1, act=act), + ), + ( + "conv2", + ConvBNLayer( + channels[0] // 2, channels[0] // 2, 3, stride=1, padding=1, act=act + ), + ), + ( + "conv3", + ConvBNLayer( + channels[0] // 2, channels[0], 3, stride=1, padding=1, act=act + ), + ), + ] + ) + ) + else: + self.stem = nn.Sequential( + OrderedDict( + [ + ( + "conv1", + ConvBNLayer(3, channels[0] // 2, 3, stride=2, padding=1, act=act), + ), + ( + "conv2", + ConvBNLayer( + channels[0] // 2, channels[0], 3, stride=1, padding=1, act=act + ), + ), + ] + ) + ) + + n = len(channels) - 1 + self.stages = nn.Sequential( + OrderedDict( + [ + ( + str(i), + CSPResStage( + BasicBlock, + channels[i], + channels[i + 1], + layers[i], + 2, + act=act, + use_alpha=use_alpha, + ), + ) + for i in range(n) + ] + ) + ) + + self._out_channels = channels[1:] + self._out_strides = [4 * 2**i for i in range(n)] + self.return_idx = return_idx + + if pretrained: + if isinstance(pretrained, bool) or "http" in pretrained: + state = torch.hub.load_state_dict_from_url(donwload_url[name], map_location="cpu") + else: + state = torch.load(pretrained, map_location="cpu") + self.load_state_dict(state) + print(f"Load CSPResNet_{name} state_dict") + + def forward(self, x): + x = self.stem(x) + outs = [] + for idx, stage in enumerate(self.stages): + x = stage(x) + if idx in self.return_idx: + outs.append(x) + + return outs diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/hgnetv2.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/hgnetv2.py new file mode 100644 index 0000000..85d99d6 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/hgnetv2.py @@ -0,0 +1,579 @@ +""" +reference +- https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/backbones/hgnet_v2.py + +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import logging +import os + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...core import register +from .common import FrozenBatchNorm2d + +# Constants for initialization +kaiming_normal_ = nn.init.kaiming_normal_ +zeros_ = nn.init.zeros_ +ones_ = nn.init.ones_ + +__all__ = ["HGNetv2"] + +def safe_barrier(): + if torch.distributed.is_available() and torch.distributed.is_initialized(): + torch.distributed.barrier() + else: + pass + +def safe_get_rank(): + if torch.distributed.is_available() and torch.distributed.is_initialized(): + return torch.distributed.get_rank() + else: + return 0 + +class LearnableAffineBlock(nn.Module): + def __init__(self, scale_value=1.0, bias_value=0.0): + super().__init__() + self.scale = nn.Parameter(torch.tensor([scale_value]), requires_grad=True) + self.bias = nn.Parameter(torch.tensor([bias_value]), requires_grad=True) + + def forward(self, x): + return self.scale * x + self.bias + + +class ConvBNAct(nn.Module): + def __init__( + self, + in_chs, + out_chs, + kernel_size, + stride=1, + groups=1, + padding="", + use_act=True, + use_lab=False, + ): + super().__init__() + self.use_act = use_act + self.use_lab = use_lab + if padding == "same": + self.conv = nn.Sequential( + nn.ZeroPad2d([0, 1, 0, 1]), + nn.Conv2d(in_chs, out_chs, kernel_size, stride, groups=groups, bias=False), + ) + else: + self.conv = nn.Conv2d( + in_chs, + out_chs, + kernel_size, + stride, + padding=(kernel_size - 1) // 2, + groups=groups, + bias=False, + ) + self.bn = nn.BatchNorm2d(out_chs) + if self.use_act: + self.act = nn.ReLU() + else: + self.act = nn.Identity() + if self.use_act and self.use_lab: + self.lab = LearnableAffineBlock() + else: + self.lab = nn.Identity() + + def forward(self, x): + x = self.conv(x) + x = self.bn(x) + x = self.act(x) + x = self.lab(x) + return x + + +class LightConvBNAct(nn.Module): + def __init__( + self, + in_chs, + out_chs, + kernel_size, + groups=1, + use_lab=False, + ): + super().__init__() + self.conv1 = ConvBNAct( + in_chs, + out_chs, + kernel_size=1, + use_act=False, + use_lab=use_lab, + ) + self.conv2 = ConvBNAct( + out_chs, + out_chs, + kernel_size=kernel_size, + groups=out_chs, + use_act=True, + use_lab=use_lab, + ) + + def forward(self, x): + x = self.conv1(x) + x = self.conv2(x) + return x + + +class StemBlock(nn.Module): + # for HGNetv2 + def __init__(self, in_chs, mid_chs, out_chs, use_lab=False): + super().__init__() + self.stem1 = ConvBNAct( + in_chs, + mid_chs, + kernel_size=3, + stride=2, + use_lab=use_lab, + ) + self.stem2a = ConvBNAct( + mid_chs, + mid_chs // 2, + kernel_size=2, + stride=1, + use_lab=use_lab, + ) + self.stem2b = ConvBNAct( + mid_chs // 2, + mid_chs, + kernel_size=2, + stride=1, + use_lab=use_lab, + ) + self.stem3 = ConvBNAct( + mid_chs * 2, + mid_chs, + kernel_size=3, + stride=2, + use_lab=use_lab, + ) + self.stem4 = ConvBNAct( + mid_chs, + out_chs, + kernel_size=1, + stride=1, + use_lab=use_lab, + ) + self.pool = nn.MaxPool2d(kernel_size=2, stride=1, ceil_mode=True) + + def forward(self, x): + x = self.stem1(x) + x = F.pad(x, (0, 1, 0, 1)) + x2 = self.stem2a(x) + x2 = F.pad(x2, (0, 1, 0, 1)) + x2 = self.stem2b(x2) + x1 = self.pool(x) + x = torch.cat([x1, x2], dim=1) + x = self.stem3(x) + x = self.stem4(x) + return x + + +class EseModule(nn.Module): + def __init__(self, chs): + super().__init__() + self.conv = nn.Conv2d( + chs, + chs, + kernel_size=1, + stride=1, + padding=0, + ) + self.sigmoid = nn.Sigmoid() + + def forward(self, x): + identity = x + x = x.mean((2, 3), keepdim=True) + x = self.conv(x) + x = self.sigmoid(x) + return torch.mul(identity, x) + + +class HG_Block(nn.Module): + def __init__( + self, + in_chs, + mid_chs, + out_chs, + layer_num, + kernel_size=3, + residual=False, + light_block=False, + use_lab=False, + agg="ese", + drop_path=0.0, + ): + super().__init__() + self.residual = residual + + self.layers = nn.ModuleList() + for i in range(layer_num): + if light_block: + self.layers.append( + LightConvBNAct( + in_chs if i == 0 else mid_chs, + mid_chs, + kernel_size=kernel_size, + use_lab=use_lab, + ) + ) + else: + self.layers.append( + ConvBNAct( + in_chs if i == 0 else mid_chs, + mid_chs, + kernel_size=kernel_size, + stride=1, + use_lab=use_lab, + ) + ) + + # feature aggregation + total_chs = in_chs + layer_num * mid_chs + if agg == "se": + aggregation_squeeze_conv = ConvBNAct( + total_chs, + out_chs // 2, + kernel_size=1, + stride=1, + use_lab=use_lab, + ) + aggregation_excitation_conv = ConvBNAct( + out_chs // 2, + out_chs, + kernel_size=1, + stride=1, + use_lab=use_lab, + ) + self.aggregation = nn.Sequential( + aggregation_squeeze_conv, + aggregation_excitation_conv, + ) + else: + aggregation_conv = ConvBNAct( + total_chs, + out_chs, + kernel_size=1, + stride=1, + use_lab=use_lab, + ) + att = EseModule(out_chs) + self.aggregation = nn.Sequential( + aggregation_conv, + att, + ) + + self.drop_path = nn.Dropout(drop_path) if drop_path else nn.Identity() + + def forward(self, x): + identity = x + output = [x] + for layer in self.layers: + x = layer(x) + output.append(x) + x = torch.cat(output, dim=1) + x = self.aggregation(x) + if self.residual: + x = self.drop_path(x) + identity + return x + + +class HG_Stage(nn.Module): + def __init__( + self, + in_chs, + mid_chs, + out_chs, + block_num, + layer_num, + downsample=True, + light_block=False, + kernel_size=3, + use_lab=False, + agg="se", + drop_path=0.0, + ): + super().__init__() + self.downsample = downsample + if downsample: + self.downsample = ConvBNAct( + in_chs, + in_chs, + kernel_size=3, + stride=2, + groups=in_chs, + use_act=False, + use_lab=use_lab, + ) + else: + self.downsample = nn.Identity() + + blocks_list = [] + for i in range(block_num): + blocks_list.append( + HG_Block( + in_chs if i == 0 else out_chs, + mid_chs, + out_chs, + layer_num, + residual=False if i == 0 else True, + kernel_size=kernel_size, + light_block=light_block, + use_lab=use_lab, + agg=agg, + drop_path=drop_path[i] if isinstance(drop_path, (list, tuple)) else drop_path, + ) + ) + self.blocks = nn.Sequential(*blocks_list) + + def forward(self, x): + x = self.downsample(x) + x = self.blocks(x) + return x + + +@register() +class HGNetv2(nn.Module): + """ + HGNetV2 + Args: + stem_channels: list. Number of channels for the stem block. + stage_type: str. The stage configuration of HGNet. such as the number of channels, stride, etc. + use_lab: boolean. Whether to use LearnableAffineBlock in network. + lr_mult_list: list. Control the learning rate of different stages. + Returns: + model: nn.Layer. Specific HGNetV2 model depends on args. + """ + + arch_configs = { + "B0": { + "stem_channels": [3, 16, 16], + "stage_config": { + # in_channels, mid_channels, out_channels, num_blocks, downsample, light_block, kernel_size, layer_num + "stage1": [16, 16, 64, 1, False, False, 3, 3], + "stage2": [64, 32, 256, 1, True, False, 3, 3], + "stage3": [256, 64, 512, 2, True, True, 5, 3], + "stage4": [512, 128, 1024, 1, True, True, 5, 3], + }, + "url": "https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B0_stage1.pth", + }, + "B1": { + "stem_channels": [3, 24, 32], + "stage_config": { + # in_channels, mid_channels, out_channels, num_blocks, downsample, light_block, kernel_size, layer_num + "stage1": [32, 32, 64, 1, False, False, 3, 3], + "stage2": [64, 48, 256, 1, True, False, 3, 3], + "stage3": [256, 96, 512, 2, True, True, 5, 3], + "stage4": [512, 192, 1024, 1, True, True, 5, 3], + }, + "url": "https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B1_stage1.pth", + }, + "B2": { + "stem_channels": [3, 24, 32], + "stage_config": { + # in_channels, mid_channels, out_channels, num_blocks, downsample, light_block, kernel_size, layer_num + "stage1": [32, 32, 96, 1, False, False, 3, 4], + "stage2": [96, 64, 384, 1, True, False, 3, 4], + "stage3": [384, 128, 768, 3, True, True, 5, 4], + "stage4": [768, 256, 1536, 1, True, True, 5, 4], + }, + "url": "https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B2_stage1.pth", + }, + "B3": { + "stem_channels": [3, 24, 32], + "stage_config": { + # in_channels, mid_channels, out_channels, num_blocks, downsample, light_block, kernel_size, layer_num + "stage1": [32, 32, 128, 1, False, False, 3, 5], + "stage2": [128, 64, 512, 1, True, False, 3, 5], + "stage3": [512, 128, 1024, 3, True, True, 5, 5], + "stage4": [1024, 256, 2048, 1, True, True, 5, 5], + }, + "url": "https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B3_stage1.pth", + }, + "B4": { + "stem_channels": [3, 32, 48], + "stage_config": { + # in_channels, mid_channels, out_channels, num_blocks, downsample, light_block, kernel_size, layer_num + "stage1": [48, 48, 128, 1, False, False, 3, 6], + "stage2": [128, 96, 512, 1, True, False, 3, 6], + "stage3": [512, 192, 1024, 3, True, True, 5, 6], + "stage4": [1024, 384, 2048, 1, True, True, 5, 6], + }, + "url": "https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B4_stage1.pth", + }, + "B5": { + "stem_channels": [3, 32, 64], + "stage_config": { + # in_channels, mid_channels, out_channels, num_blocks, downsample, light_block, kernel_size, layer_num + "stage1": [64, 64, 128, 1, False, False, 3, 6], + "stage2": [128, 128, 512, 2, True, False, 3, 6], + "stage3": [512, 256, 1024, 5, True, True, 5, 6], + "stage4": [1024, 512, 2048, 2, True, True, 5, 6], + }, + "url": "https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B5_stage1.pth", + }, + "B6": { + "stem_channels": [3, 48, 96], + "stage_config": { + # in_channels, mid_channels, out_channels, num_blocks, downsample, light_block, kernel_size, layer_num + "stage1": [96, 96, 192, 2, False, False, 3, 6], + "stage2": [192, 192, 512, 3, True, False, 3, 6], + "stage3": [512, 384, 1024, 6, True, True, 5, 6], + "stage4": [1024, 768, 2048, 3, True, True, 5, 6], + }, + "url": "https://github.com/Peterande/storage/releases/download/dfinev1.0/PPHGNetV2_B6_stage1.pth", + }, + } + + def __init__( + self, + name, + use_lab=False, + return_idx=[1, 2, 3], + freeze_stem_only=True, + freeze_at=0, + freeze_norm=True, + pretrained=True, + local_model_dir="weight/hgnetv2/", + ): + super().__init__() + self.use_lab = use_lab + self.return_idx = return_idx + + stem_channels = self.arch_configs[name]["stem_channels"] + stage_config = self.arch_configs[name]["stage_config"] + download_url = self.arch_configs[name]["url"] + + self._out_strides = [4, 8, 16, 32] + self._out_channels = [stage_config[k][2] for k in stage_config] + + # stem + self.stem = StemBlock( + in_chs=stem_channels[0], + mid_chs=stem_channels[1], + out_chs=stem_channels[2], + use_lab=use_lab, + ) + + # stages + self.stages = nn.ModuleList() + for i, k in enumerate(stage_config): + ( + in_channels, + mid_channels, + out_channels, + block_num, + downsample, + light_block, + kernel_size, + layer_num, + ) = stage_config[k] + self.stages.append( + HG_Stage( + in_channels, + mid_channels, + out_channels, + block_num, + layer_num, + downsample, + light_block, + kernel_size, + use_lab, + ) + ) + + if freeze_at >= 0: + self._freeze_parameters(self.stem) + if not freeze_stem_only: + for i in range(min(freeze_at + 1, len(self.stages))): + self._freeze_parameters(self.stages[i]) + + if freeze_norm: + self._freeze_norm(self) + + if pretrained: + RED, GREEN, RESET = "\033[91m", "\033[92m", "\033[0m" + try: + # If the file doesn't exist locally, download from the URL + if safe_get_rank() == 0: + print( + GREEN + + "If the pretrained HGNetV2 can't be downloaded automatically. Please check your network connection." + + RESET + ) + print( + GREEN + + "Please check your network connection. Or download the model manually from " + + RESET + + f"{download_url}" + + GREEN + + " to " + + RESET + + f"{local_model_dir}." + + RESET + ) + state = torch.hub.load_state_dict_from_url( + download_url, map_location="cpu", model_dir=local_model_dir + ) + print(f"Loaded stage1 {name} HGNetV2 from URL.") + + # Wait for rank 0 to download the model + safe_barrier() + + # All processes load the downloaded model + model_path = local_model_dir + "PPHGNetV2_" + name + "_stage1.pth" + state = torch.load(model_path, map_location="cpu") + + self.load_state_dict(state) + print(f"Loaded stage1 {name} HGNetV2 from URL.") + + except (Exception, KeyboardInterrupt) as e: + if safe_get_rank() == 0: + print(f"{str(e)}") + logging.error( + RED + "CRITICAL WARNING: Failed to load pretrained HGNetV2 model" + RESET + ) + logging.error( + GREEN + + "Please check your network connection. Or download the model manually from " + + RESET + + f"{download_url}" + + GREEN + + " to " + + RESET + + f"{local_model_dir}." + + RESET + ) + exit() + + def _freeze_norm(self, m: nn.Module): + if isinstance(m, nn.BatchNorm2d): + m = FrozenBatchNorm2d(m.num_features) + else: + for name, child in m.named_children(): + _child = self._freeze_norm(child) + if _child is not child: + setattr(m, name, _child) + return m + + def _freeze_parameters(self, m: nn.Module): + for p in m.parameters(): + p.requires_grad = False + + def forward(self, x): + x = self.stem(x) + outs = [] + for idx, stage in enumerate(self.stages): + x = stage(x) + if idx in self.return_idx: + outs.append(x) + return outs diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/presnet.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/presnet.py new file mode 100644 index 0000000..5543fe8 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/presnet.py @@ -0,0 +1,263 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from collections import OrderedDict + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...core import register +from .common import FrozenBatchNorm2d, get_activation + +__all__ = ["PResNet"] + + +ResNet_cfg = { + 18: [2, 2, 2, 2], + 34: [3, 4, 6, 3], + 50: [3, 4, 6, 3], + 101: [3, 4, 23, 3], + # 152: [3, 8, 36, 3], +} + + +donwload_url = { + 18: "https://github.com/lyuwenyu/storage/releases/download/v0.1/ResNet18_vd_pretrained_from_paddle.pth", + 34: "https://github.com/lyuwenyu/storage/releases/download/v0.1/ResNet34_vd_pretrained_from_paddle.pth", + 50: "https://github.com/lyuwenyu/storage/releases/download/v0.1/ResNet50_vd_ssld_v2_pretrained_from_paddle.pth", + 101: "https://github.com/lyuwenyu/storage/releases/download/v0.1/ResNet101_vd_ssld_pretrained_from_paddle.pth", +} + + +class ConvNormLayer(nn.Module): + def __init__(self, ch_in, ch_out, kernel_size, stride, padding=None, bias=False, act=None): + super().__init__() + self.conv = nn.Conv2d( + ch_in, + ch_out, + kernel_size, + stride, + padding=(kernel_size - 1) // 2 if padding is None else padding, + bias=bias, + ) + self.norm = nn.BatchNorm2d(ch_out) + self.act = get_activation(act) + + def forward(self, x): + return self.act(self.norm(self.conv(x))) + + +class BasicBlock(nn.Module): + expansion = 1 + + def __init__(self, ch_in, ch_out, stride, shortcut, act="relu", variant="b"): + super().__init__() + + self.shortcut = shortcut + + if not shortcut: + if variant == "d" and stride == 2: + self.short = nn.Sequential( + OrderedDict( + [ + ("pool", nn.AvgPool2d(2, 2, 0, ceil_mode=True)), + ("conv", ConvNormLayer(ch_in, ch_out, 1, 1)), + ] + ) + ) + else: + self.short = ConvNormLayer(ch_in, ch_out, 1, stride) + + self.branch2a = ConvNormLayer(ch_in, ch_out, 3, stride, act=act) + self.branch2b = ConvNormLayer(ch_out, ch_out, 3, 1, act=None) + self.act = nn.Identity() if act is None else get_activation(act) + + def forward(self, x): + out = self.branch2a(x) + out = self.branch2b(out) + if self.shortcut: + short = x + else: + short = self.short(x) + + out = out + short + out = self.act(out) + + return out + + +class BottleNeck(nn.Module): + expansion = 4 + + def __init__(self, ch_in, ch_out, stride, shortcut, act="relu", variant="b"): + super().__init__() + + if variant == "a": + stride1, stride2 = stride, 1 + else: + stride1, stride2 = 1, stride + + width = ch_out + + self.branch2a = ConvNormLayer(ch_in, width, 1, stride1, act=act) + self.branch2b = ConvNormLayer(width, width, 3, stride2, act=act) + self.branch2c = ConvNormLayer(width, ch_out * self.expansion, 1, 1) + + self.shortcut = shortcut + if not shortcut: + if variant == "d" and stride == 2: + self.short = nn.Sequential( + OrderedDict( + [ + ("pool", nn.AvgPool2d(2, 2, 0, ceil_mode=True)), + ("conv", ConvNormLayer(ch_in, ch_out * self.expansion, 1, 1)), + ] + ) + ) + else: + self.short = ConvNormLayer(ch_in, ch_out * self.expansion, 1, stride) + + self.act = nn.Identity() if act is None else get_activation(act) + + def forward(self, x): + out = self.branch2a(x) + out = self.branch2b(out) + out = self.branch2c(out) + + if self.shortcut: + short = x + else: + short = self.short(x) + + out = out + short + out = self.act(out) + + return out + + +class Blocks(nn.Module): + def __init__(self, block, ch_in, ch_out, count, stage_num, act="relu", variant="b"): + super().__init__() + + self.blocks = nn.ModuleList() + for i in range(count): + self.blocks.append( + block( + ch_in, + ch_out, + stride=2 if i == 0 and stage_num != 2 else 1, + shortcut=False if i == 0 else True, + variant=variant, + act=act, + ) + ) + + if i == 0: + ch_in = ch_out * block.expansion + + def forward(self, x): + out = x + for block in self.blocks: + out = block(out) + return out + + +@register() +class PResNet(nn.Module): + def __init__( + self, + depth, + variant="d", + num_stages=4, + return_idx=[0, 1, 2, 3], + act="relu", + freeze_at=-1, + freeze_norm=True, + pretrained=False, + ): + super().__init__() + + block_nums = ResNet_cfg[depth] + ch_in = 64 + if variant in ["c", "d"]: + conv_def = [ + [3, ch_in // 2, 3, 2, "conv1_1"], + [ch_in // 2, ch_in // 2, 3, 1, "conv1_2"], + [ch_in // 2, ch_in, 3, 1, "conv1_3"], + ] + else: + conv_def = [[3, ch_in, 7, 2, "conv1_1"]] + + self.conv1 = nn.Sequential( + OrderedDict( + [ + (name, ConvNormLayer(cin, cout, k, s, act=act)) + for cin, cout, k, s, name in conv_def + ] + ) + ) + + ch_out_list = [64, 128, 256, 512] + block = BottleNeck if depth >= 50 else BasicBlock + + _out_channels = [block.expansion * v for v in ch_out_list] + _out_strides = [4, 8, 16, 32] + + self.res_layers = nn.ModuleList() + for i in range(num_stages): + stage_num = i + 2 + self.res_layers.append( + Blocks( + block, ch_in, ch_out_list[i], block_nums[i], stage_num, act=act, variant=variant + ) + ) + ch_in = _out_channels[i] + + self.return_idx = return_idx + self.out_channels = [_out_channels[_i] for _i in return_idx] + self.out_strides = [_out_strides[_i] for _i in return_idx] + + if freeze_at >= 0: + self._freeze_parameters(self.conv1) + for i in range(min(freeze_at, num_stages)): + self._freeze_parameters(self.res_layers[i]) + + if freeze_norm: + self._freeze_norm(self) + + if pretrained: + if isinstance(pretrained, bool) or "http" in pretrained: + state = torch.hub.load_state_dict_from_url( + donwload_url[depth], map_location="cpu", model_dir="weight" + ) + else: + state = torch.load(pretrained, map_location="cpu") + self.load_state_dict(state) + print(f"Load PResNet{depth} state_dict") + + def _freeze_parameters(self, m: nn.Module): + for p in m.parameters(): + p.requires_grad = False + + def _freeze_norm(self, m: nn.Module): + if isinstance(m, nn.BatchNorm2d): + m = FrozenBatchNorm2d(m.num_features) + else: + for name, child in m.named_children(): + _child = self._freeze_norm(child) + if _child is not child: + setattr(m, name, _child) + return m + + def forward(self, x): + conv1 = self.conv1(x) + x = F.max_pool2d(conv1, kernel_size=3, stride=2, padding=1) + outs = [] + for idx, stage in enumerate(self.res_layers): + x = stage(x) + if idx in self.return_idx: + outs.append(x) + return outs diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/test_resnet.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/test_resnet.py new file mode 100644 index 0000000..ab877ff --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/test_resnet.py @@ -0,0 +1,83 @@ +from collections import OrderedDict + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...core import register + + +class BasicBlock(nn.Module): + expansion = 1 + + def __init__(self, in_planes, planes, stride=1): + super(BasicBlock, self).__init__() + + self.conv1 = nn.Conv2d( + in_planes, planes, kernel_size=3, stride=stride, padding=1, bias=False + ) + self.bn1 = nn.BatchNorm2d(planes) + + self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=1, padding=1, bias=False) + self.bn2 = nn.BatchNorm2d(planes) + + self.shortcut = nn.Sequential() + if stride != 1 or in_planes != self.expansion * planes: + self.shortcut = nn.Sequential( + nn.Conv2d( + in_planes, self.expansion * planes, kernel_size=1, stride=stride, bias=False + ), + nn.BatchNorm2d(self.expansion * planes), + ) + + def forward(self, x): + out = F.relu(self.bn1(self.conv1(x))) + out = self.bn2(self.conv2(out)) + out += self.shortcut(x) + out = F.relu(out) + return out + + +class _ResNet(nn.Module): + def __init__(self, block, num_blocks, num_classes=10): + super().__init__() + self.in_planes = 64 + + self.conv1 = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1, bias=False) + self.bn1 = nn.BatchNorm2d(64) + + self.layer1 = self._make_layer(block, 64, num_blocks[0], stride=1) + self.layer2 = self._make_layer(block, 128, num_blocks[1], stride=2) + self.layer3 = self._make_layer(block, 256, num_blocks[2], stride=2) + self.layer4 = self._make_layer(block, 512, num_blocks[3], stride=2) + + self.linear = nn.Linear(512 * block.expansion, num_classes) + + def _make_layer(self, block, planes, num_blocks, stride): + strides = [stride] + [1] * (num_blocks - 1) + layers = [] + for stride in strides: + layers.append(block(self.in_planes, planes, stride)) + self.in_planes = planes * block.expansion + return nn.Sequential(*layers) + + def forward(self, x): + out = F.relu(self.bn1(self.conv1(x))) + out = self.layer1(out) + out = self.layer2(out) + out = self.layer3(out) + out = self.layer4(out) + out = F.avg_pool2d(out, 4) + out = out.view(out.size(0), -1) + out = self.linear(out) + return out + + +@register() +class MResNet(nn.Module): + def __init__(self, num_classes=10, num_blocks=[2, 2, 2, 2]) -> None: + super().__init__() + self.model = _ResNet(BasicBlock, num_blocks, num_classes) + + def forward(self, x): + return self.model(x) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/timm_model.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/timm_model.py new file mode 100644 index 0000000..d2258a5 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/timm_model.py @@ -0,0 +1,66 @@ +"""Copyright(c) 2023 lyuwenyu. All Rights Reserved. + +https://towardsdatascience.com/getting-started-with-pytorch-image-models-timm-a-practitioners-guide-4e77b4bf9055#0583 +""" + +import torch +from torchvision.models.feature_extraction import create_feature_extractor, get_graph_node_names + +from ...core import register +from .utils import IntermediateLayerGetter + + +@register() +class TimmModel(torch.nn.Module): + def __init__( + self, name, return_layers, pretrained=False, exportable=True, features_only=True, **kwargs + ) -> None: + super().__init__() + + import timm + + model = timm.create_model( + name, + pretrained=pretrained, + exportable=exportable, + features_only=features_only, + **kwargs, + ) + # nodes, _ = get_graph_node_names(model) + # print(nodes) + # features = {'': ''} + # model = create_feature_extractor(model, return_nodes=features) + + assert set(return_layers).issubset( + model.feature_info.module_name() + ), f"return_layers should be a subset of {model.feature_info.module_name()}" + + # self.model = model + self.model = IntermediateLayerGetter(model, return_layers) + + return_idx = [model.feature_info.module_name().index(name) for name in return_layers] + self.strides = [model.feature_info.reduction()[i] for i in return_idx] + self.channels = [model.feature_info.channels()[i] for i in return_idx] + self.return_idx = return_idx + self.return_layers = return_layers + + def forward(self, x: torch.Tensor): + outputs = self.model(x) + # outputs = [outputs[i] for i in self.return_idx] + return outputs + + +if __name__ == "__main__": + model = TimmModel(name="resnet34", return_layers=["layer2", "layer3"]) + data = torch.rand(1, 3, 640, 640) + outputs = model(data) + + for output in outputs: + print(output.shape) + + """ + model: + type: TimmModel + name: resnet34 + return_layers: ['layer2', 'layer4'] + """ diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/torchvision_model.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/torchvision_model.py new file mode 100644 index 0000000..dd207d9 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/torchvision_model.py @@ -0,0 +1,50 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torchvision + +from ...core import register +from .utils import IntermediateLayerGetter + +__all__ = ["TorchVisionModel"] + + +@register() +class TorchVisionModel(torch.nn.Module): + def __init__(self, name, return_layers, weights=None, **kwargs) -> None: + super().__init__() + + if weights is not None: + weights = getattr(torchvision.models.get_model_weights(name), weights) + + model = torchvision.models.get_model(name, weights=weights, **kwargs) + + # TODO hard code. + if hasattr(model, "features"): + model = IntermediateLayerGetter(model.features, return_layers) + else: + model = IntermediateLayerGetter(model, return_layers) + + self.model = model + + def forward(self, x): + return self.model(x) + + +# TorchVisionModel('swin_t', return_layers=['5', '7']) +# TorchVisionModel('resnet34', return_layers=['layer2','layer3', 'layer4']) + +# TorchVisionModel: +# name: swin_t +# return_layers: ['5', '7'] +# weights: DEFAULT + + +# model: +# type: TorchVisionModel +# name: resnet34 +# return_layers: ['layer2','layer3', 'layer4'] +# weights: DEFAULT diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/utils.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/utils.py new file mode 100644 index 0000000..58efeb3 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/backbone/utils.py @@ -0,0 +1,56 @@ +""" +https://github.com/pytorch/vision/blob/main/torchvision/models/_utils.py + +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from collections import OrderedDict +from typing import Dict, List + +import torch.nn as nn + + +class IntermediateLayerGetter(nn.ModuleDict): + """ + Module wrapper that returns intermediate layers from a model + + It has a strong assumption that the modules have been registered + into the model in the same order as they are used. + This means that one should **not** reuse the same nn.Module + twice in the forward if you want this to work. + + Additionally, it is only able to query submodules that are directly + assigned to the model. So if `model` is passed, `model.feature1` can + be returned, but not `model.feature1.layer2`. + """ + + _version = 3 + + def __init__(self, model: nn.Module, return_layers: List[str]) -> None: + if not set(return_layers).issubset([name for name, _ in model.named_children()]): + raise ValueError( + "return_layers are not present in model. {}".format( + [name for name, _ in model.named_children()] + ) + ) + orig_return_layers = return_layers + return_layers = {str(k): str(k) for k in return_layers} + layers = OrderedDict() + for name, module in model.named_children(): + layers[name] = module + if name in return_layers: + del return_layers[name] + if not return_layers: + break + + super().__init__(layers) + self.return_layers = orig_return_layers + + def forward(self, x): + outputs = [] + for name, module in self.items(): + x = module(x) + if name in self.return_layers: + outputs.append(x) + + return outputs diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/criterion/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/criterion/__init__.py new file mode 100644 index 0000000..da74acf --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/criterion/__init__.py @@ -0,0 +1,11 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch.nn as nn + +from ...core import register +from .det_criterion import DetCriterion + +CrossEntropyLoss = register()(nn.CrossEntropyLoss) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/criterion/det_criterion.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/criterion/det_criterion.py new file mode 100644 index 0000000..d5dbde5 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/criterion/det_criterion.py @@ -0,0 +1,188 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torch.distributed +import torch.nn.functional as F +import torchvision + +from ...core import register +from ...misc import box_ops, dist_utils + + +@register() +class DetCriterion(torch.nn.Module): + """Default Detection Criterion""" + + __share__ = ["num_classes"] + __inject__ = ["matcher"] + + def __init__( + self, + losses, + weight_dict, + num_classes=80, + alpha=0.75, + gamma=2.0, + box_fmt="cxcywh", + matcher=None, + ): + """ + Args: + losses (list[str]): requested losses, support ['boxes', 'vfl', 'focal'] + weight_dict (dict[str, float)]: corresponding losses weight, including + ['loss_bbox', 'loss_giou', 'loss_vfl', 'loss_focal'] + box_fmt (str): in box format, 'cxcywh' or 'xyxy' + matcher (Matcher): matcher used to match source to target + """ + super().__init__() + self.losses = losses + self.weight_dict = weight_dict + self.alpha = alpha + self.gamma = gamma + self.num_classes = num_classes + self.box_fmt = box_fmt + assert matcher is not None, "" + self.matcher = matcher + + def forward(self, outputs, targets, **kwargs): + """ + Args: + outputs: Dict[Tensor], 'pred_boxes', 'pred_logits', 'meta'. + targets, List[Dict[str, Tensor]], len(targets) == batch_size. + kwargs, store other information such as current epoch id. + Return: + losses, Dict[str, Tensor] + """ + matched = self.matcher(outputs, targets) + values = matched["values"] + indices = matched["indices"] + num_boxes = self._get_positive_nums(indices) + + # Compute all the requested losses + losses = {} + for loss in self.losses: + l_dict = self.get_loss(loss, outputs, targets, indices, num_boxes) + l_dict = {k: l_dict[k] * self.weight_dict[k] for k in l_dict if k in self.weight_dict} + losses.update(l_dict) + return losses + + def _get_src_permutation_idx(self, indices): + # permute predictions following indices + batch_idx = torch.cat([torch.full_like(src, i) for i, (src, _) in enumerate(indices)]) + src_idx = torch.cat([src for (src, _) in indices]) + return batch_idx, src_idx + + def _get_tgt_permutation_idx(self, indices): + # permute targets following indices + batch_idx = torch.cat([torch.full_like(tgt, i) for i, (_, tgt) in enumerate(indices)]) + tgt_idx = torch.cat([tgt for (_, tgt) in indices]) + return batch_idx, tgt_idx + + def _get_positive_nums(self, indices): + # number of positive samples + num_pos = sum(len(i) for (i, _) in indices) + num_pos = torch.as_tensor([num_pos], dtype=torch.float32, device=indices[0][0].device) + if dist_utils.is_dist_available_and_initialized(): + torch.distributed.all_reduce(num_pos) + num_pos = torch.clamp(num_pos / dist_utils.get_world_size(), min=1).item() + return num_pos + + def loss_labels_focal(self, outputs, targets, indices, num_boxes): + assert "pred_logits" in outputs + src_logits = outputs["pred_logits"] + + idx = self._get_src_permutation_idx(indices) + target_classes_o = torch.cat([t["labels"][j] for t, (_, j) in zip(targets, indices)]) + target_classes = torch.full( + src_logits.shape[:2], self.num_classes, dtype=torch.int64, device=src_logits.device + ) + target_classes[idx] = target_classes_o + + target = F.one_hot(target_classes, num_classes=self.num_classes + 1)[..., :-1].to( + src_logits.dtype + ) + loss = torchvision.ops.sigmoid_focal_loss( + src_logits, target, self.alpha, self.gamma, reduction="none" + ) + loss = loss.sum() / num_boxes + return {"loss_focal": loss} + + def loss_labels_vfl(self, outputs, targets, indices, num_boxes): + assert "pred_boxes" in outputs + idx = self._get_src_permutation_idx(indices) + + src_boxes = outputs["pred_boxes"][idx] + target_boxes = torch.cat([t["boxes"][j] for t, (_, j) in zip(targets, indices)], dim=0) + + src_boxes = torchvision.ops.box_convert(src_boxes, in_fmt=self.box_fmt, out_fmt="xyxy") + target_boxes = torchvision.ops.box_convert( + target_boxes, in_fmt=self.box_fmt, out_fmt="xyxy" + ) + iou, _ = box_ops.elementwise_box_iou(src_boxes.detach(), target_boxes) + + src_logits: torch.Tensor = outputs["pred_logits"] + target_classes_o = torch.cat([t["labels"][j] for t, (_, j) in zip(targets, indices)]) + target_classes = torch.full( + src_logits.shape[:2], self.num_classes, dtype=torch.int64, device=src_logits.device + ) + target_classes[idx] = target_classes_o + target = F.one_hot(target_classes, num_classes=self.num_classes + 1)[..., :-1] + + target_score_o = torch.zeros_like(target_classes, dtype=src_logits.dtype) + target_score_o[idx] = iou.to(src_logits.dtype) + target_score = target_score_o.unsqueeze(-1) * target + + src_score = F.sigmoid(src_logits.detach()) + weight = self.alpha * src_score.pow(self.gamma) * (1 - target) + target_score + + loss = F.binary_cross_entropy_with_logits( + src_logits, target_score, weight=weight, reduction="none" + ) + loss = loss.sum() / num_boxes + return {"loss_vfl": loss} + + def loss_boxes(self, outputs, targets, indices, num_boxes): + assert "pred_boxes" in outputs + idx = self._get_src_permutation_idx(indices) + src_boxes = outputs["pred_boxes"][idx] + target_boxes = torch.cat([t["boxes"][i] for t, (_, i) in zip(targets, indices)], dim=0) + + losses = {} + loss_bbox = F.l1_loss(src_boxes, target_boxes, reduction="none") + losses["loss_bbox"] = loss_bbox.sum() / num_boxes + + src_boxes = torchvision.ops.box_convert(src_boxes, in_fmt=self.box_fmt, out_fmt="xyxy") + target_boxes = torchvision.ops.box_convert( + target_boxes, in_fmt=self.box_fmt, out_fmt="xyxy" + ) + loss_giou = 1 - box_ops.elementwise_generalized_box_iou(src_boxes, target_boxes) + losses["loss_giou"] = loss_giou.sum() / num_boxes + return losses + + def loss_boxes_giou(self, outputs, targets, indices, num_boxes): + assert "pred_boxes" in outputs + idx = self._get_src_permutation_idx(indices) + src_boxes = outputs["pred_boxes"][idx] + target_boxes = torch.cat([t["boxes"][i] for t, (_, i) in zip(targets, indices)], dim=0) + + losses = {} + src_boxes = torchvision.ops.box_convert(src_boxes, in_fmt=self.box_fmt, out_fmt="xyxy") + target_boxes = torchvision.ops.box_convert( + target_boxes, in_fmt=self.box_fmt, out_fmt="xyxy" + ) + loss_giou = 1 - box_ops.elementwise_generalized_box_iou(src_boxes, target_boxes) + losses["loss_giou"] = loss_giou.sum() / num_boxes + return losses + + def get_loss(self, loss, outputs, targets, indices, num_boxes, **kwargs): + loss_map = { + "boxes": self.loss_boxes, + "giou": self.loss_boxes_giou, + "vfl": self.loss_labels_vfl, + "focal": self.loss_labels_focal, + } + assert loss in loss_map, f"do you really want to compute {loss} loss?" + return loss_map[loss](outputs, targets, indices, num_boxes, **kwargs) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/__init__.py new file mode 100644 index 0000000..0949998 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/__init__.py @@ -0,0 +1,6 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from .nms_postprocessor import DetNMSPostProcessor diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/box_revert.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/box_revert.py new file mode 100644 index 0000000..c40f0c1 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/box_revert.py @@ -0,0 +1,66 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from enum import Enum + +import torch +import torchvision +from torch import Tensor + + +class BoxProcessFormat(Enum): + """Box process format + + Available formats are + * ``RESIZE`` + * ``RESIZE_KEEP_RATIO`` + * ``RESIZE_KEEP_RATIO_PADDING`` + """ + + RESIZE = 1 + RESIZE_KEEP_RATIO = 2 + RESIZE_KEEP_RATIO_PADDING = 3 + + +def box_revert( + boxes: Tensor, + orig_sizes: Tensor = None, + eval_sizes: Tensor = None, + inpt_sizes: Tensor = None, + inpt_padding: Tensor = None, + normalized: bool = True, + in_fmt: str = "cxcywh", + out_fmt: str = "xyxy", + process_fmt=BoxProcessFormat.RESIZE, +) -> Tensor: + """ + Args: + boxes(Tensor), [N, :, 4], (x1, y1, x2, y2), pred boxes. + inpt_sizes(Tensor), [N, 2], (w, h). input sizes. + orig_sizes(Tensor), [N, 2], (w, h). origin sizes. + inpt_padding (Tensor), [N, 2], (w_pad, h_pad, ...). + (inpt_sizes + inpt_padding) == eval_sizes + """ + assert in_fmt in ("cxcywh", "xyxy"), "" + + if normalized and eval_sizes is not None: + boxes = boxes * eval_sizes.repeat(1, 2).unsqueeze(1) + + if inpt_padding is not None: + if in_fmt == "xyxy": + boxes -= inpt_padding[:, :2].repeat(1, 2).unsqueeze(1) + elif in_fmt == "cxcywh": + boxes[..., :2] -= inpt_padding[:, :2].repeat(1, 2).unsqueeze(1) + + if orig_sizes is not None: + orig_sizes = orig_sizes.repeat(1, 2).unsqueeze(1) + if inpt_sizes is not None: + inpt_sizes = inpt_sizes.repeat(1, 2).unsqueeze(1) + boxes = boxes * (orig_sizes / inpt_sizes) + else: + boxes = boxes * orig_sizes + + boxes = torchvision.ops.box_convert(boxes, in_fmt=in_fmt, out_fmt=out_fmt) + return boxes diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/detr_postprocessor.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/detr_postprocessor.py new file mode 100644 index 0000000..6cccf72 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/detr_postprocessor.py @@ -0,0 +1,86 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torch.nn as nn +import torch.nn.functional as F +import torchvision + +__all__ = ["DetDETRPostProcessor"] + +from .box_revert import BoxProcessFormat, box_revert + + +def mod(a, b): + out = a - a // b * b + return out + + +class DetDETRPostProcessor(nn.Module): + def __init__( + self, + num_classes=80, + use_focal_loss=True, + num_top_queries=300, + box_process_format=BoxProcessFormat.RESIZE, + ) -> None: + super().__init__() + self.use_focal_loss = use_focal_loss + self.num_top_queries = num_top_queries + self.num_classes = int(num_classes) + self.box_process_format = box_process_format + self.deploy_mode = False + + def extra_repr(self) -> str: + return f"use_focal_loss={self.use_focal_loss}, num_classes={self.num_classes}, num_top_queries={self.num_top_queries}" + + def forward(self, outputs, **kwargs): + logits, boxes = outputs["pred_logits"], outputs["pred_boxes"] + + if self.use_focal_loss: + scores = F.sigmoid(logits) + scores, index = torch.topk(scores.flatten(1), self.num_top_queries, dim=-1) + labels = index % self.num_classes + # labels = mod(index, self.num_classes) # for tensorrt + index = index // self.num_classes + boxes = boxes.gather(dim=1, index=index.unsqueeze(-1).repeat(1, 1, boxes.shape[-1])) + + else: + scores = F.softmax(logits)[:, :, :-1] + scores, labels = scores.max(dim=-1) + if scores.shape[1] > self.num_top_queries: + scores, index = torch.topk(scores, self.num_top_queries, dim=-1) + labels = torch.gather(labels, dim=1, index=index) + boxes = torch.gather( + boxes, dim=1, index=index.unsqueeze(-1).tile(1, 1, boxes.shape[-1]) + ) + + if kwargs is not None: + boxes = box_revert( + boxes, + in_fmt="cxcywh", + out_fmt="xyxy", + process_fmt=self.box_process_format, + normalized=True, + **kwargs, + ) + + # TODO for onnx export + if self.deploy_mode: + return labels, boxes, scores + + results = [] + for lab, box, sco in zip(labels, boxes, scores): + result = dict(labels=lab, boxes=box, scores=sco) + results.append(result) + + return results + + def deploy( + self, + ): + self.eval() + self.deploy_mode = True + return self diff --git a/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/nms_postprocessor.py b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/nms_postprocessor.py new file mode 100644 index 0000000..260e08c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/nn/postprocessor/nms_postprocessor.py @@ -0,0 +1,86 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from typing import Dict + +import torch +import torch.distributed +import torch.nn.functional as F +import torchvision +from torch import Tensor + +from ...core import register + +__all__ = [ + "DetNMSPostProcessor", +] + + +@register() +class DetNMSPostProcessor(torch.nn.Module): + def __init__( + self, + iou_threshold=0.7, + score_threshold=0.01, + keep_topk=300, + box_fmt="cxcywh", + logit_fmt="sigmoid", + ) -> None: + super().__init__() + self.iou_threshold = iou_threshold + self.score_threshold = score_threshold + self.keep_topk = keep_topk + self.box_fmt = box_fmt.lower() + self.logit_fmt = logit_fmt.lower() + self.logit_func = getattr(F, self.logit_fmt, None) + self.deploy_mode = False + + def forward(self, outputs: Dict[str, Tensor], orig_target_sizes: Tensor): + logits, boxes = outputs["pred_logits"], outputs["pred_boxes"] + pred_boxes = torchvision.ops.box_convert(boxes, in_fmt=self.box_fmt, out_fmt="xyxy") + pred_boxes *= orig_target_sizes.repeat(1, 2).unsqueeze(1) + + values, pred_labels = torch.max(logits, dim=-1) + + if self.logit_func: + pred_scores = self.logit_func(values) + else: + pred_scores = values + + # TODO for onnx export + if self.deploy_mode: + blobs = { + "pred_labels": pred_labels, + "pred_boxes": pred_boxes, + "pred_scores": pred_scores, + } + return blobs + + results = [] + for i in range(logits.shape[0]): + score_keep = pred_scores[i] > self.score_threshold + pred_box = pred_boxes[i][score_keep] + pred_label = pred_labels[i][score_keep] + pred_score = pred_scores[i][score_keep] + + keep = torchvision.ops.batched_nms(pred_box, pred_score, pred_label, self.iou_threshold) + keep = keep[: self.keep_topk] + + blob = { + "labels": pred_label[keep], + "boxes": pred_box[keep], + "scores": pred_score[keep], + } + + results.append(blob) + + return results + + def deploy( + self, + ): + self.eval() + self.deploy_mode = True + return self diff --git a/backend/apps/algorithms/algorithm/DFINE/src/optim/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/optim/__init__.py new file mode 100644 index 0000000..fbc06c0 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/optim/__init__.py @@ -0,0 +1,9 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from .amp import * +from .ema import * +from .optim import * +from .warmup import * diff --git a/backend/apps/algorithms/algorithm/DFINE/src/optim/amp.py b/backend/apps/algorithms/algorithm/DFINE/src/optim/amp.py new file mode 100644 index 0000000..5392899 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/optim/amp.py @@ -0,0 +1,12 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch.cuda.amp as amp + +from ..core import register + +__all__ = ["GradScaler"] + +GradScaler = register()(amp.grad_scaler.GradScaler) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/optim/ema.py b/backend/apps/algorithms/algorithm/DFINE/src/optim/ema.py new file mode 100644 index 0000000..9e508b6 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/optim/ema.py @@ -0,0 +1,108 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import math +from copy import deepcopy + +import torch +import torch.nn as nn + +from ..core import register +from ..misc import dist_utils + +__all__ = ["ModelEMA"] + + +@register() +class ModelEMA(object): + """ + Model Exponential Moving Average from https://github.com/rwightman/pytorch-image-models + Keep a moving average of everything in the model state_dict (parameters and buffers). + This is intended to allow functionality like + https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage + A smoothed version of the weights is necessary for some training schemes to perform well. + This class is sensitive where it is initialized in the sequence of model init, + GPU assignment and distributed training wrappers. + """ + + def __init__( + self, model: nn.Module, decay: float = 0.9999, warmups: int = 1000, start: int = 0 + ): + super().__init__() + + self.module = deepcopy(dist_utils.de_parallel(model)).eval() + # if next(model.parameters()).device.type != 'cpu': + # self.module.half() # FP16 EMA + + self.decay = decay + self.warmups = warmups + self.before_start = 0 + self.start = start + self.updates = 0 # number of EMA updates + if warmups == 0: + self.decay_fn = lambda x: decay + else: + self.decay_fn = lambda x: decay * ( + 1 - math.exp(-x / warmups) + ) # decay exponential ramp (to help early epochs) + + for p in self.module.parameters(): + p.requires_grad_(False) + + def update(self, model: nn.Module): + if self.before_start < self.start: + self.before_start += 1 + return + # Update EMA parameters + with torch.no_grad(): + self.updates += 1 + d = self.decay_fn(self.updates) + msd = dist_utils.de_parallel(model).state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v *= d + v += (1 - d) * msd[k].detach() + + def to(self, *args, **kwargs): + self.module = self.module.to(*args, **kwargs) + return self + + def state_dict( + self, + ): + return dict(module=self.module.state_dict(), updates=self.updates) + + def load_state_dict(self, state, strict=True): + self.module.load_state_dict(state["module"], strict=strict) + if "updates" in state: + self.updates = state["updates"] + + def forwad( + self, + ): + raise RuntimeError("ema...") + + def extra_repr(self) -> str: + return f"decay={self.decay}, warmups={self.warmups}" + + +class ExponentialMovingAverage(torch.optim.swa_utils.AveragedModel): + """Maintains moving averages of model parameters using an exponential decay. + ``ema_avg = decay * avg_model_param + (1 - decay) * model_param`` + `torch.optim.swa_utils.AveragedModel `_ + is used to compute the EMA. + """ + + def __init__(self, model, decay, device="cpu", use_buffers=True): + self.decay_fn = lambda x: decay * (1 - math.exp(-x / 2000)) + + def ema_avg(avg_model_param, model_param, num_averaged): + decay = self.decay_fn(num_averaged) + return decay * avg_model_param + (1 - decay) * model_param + + super().__init__(model, device, ema_avg, use_buffers=use_buffers) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/optim/optim.py b/backend/apps/algorithms/algorithm/DFINE/src/optim/optim.py new file mode 100644 index 0000000..cec3030 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/optim/optim.py @@ -0,0 +1,22 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch.optim as optim +import torch.optim.lr_scheduler as lr_scheduler + +from ..core import register + +__all__ = ["AdamW", "SGD", "Adam", "MultiStepLR", "CosineAnnealingLR", "OneCycleLR", "LambdaLR"] + + +SGD = register()(optim.SGD) +Adam = register()(optim.Adam) +AdamW = register()(optim.AdamW) + + +MultiStepLR = register()(lr_scheduler.MultiStepLR) +CosineAnnealingLR = register()(lr_scheduler.CosineAnnealingLR) +OneCycleLR = register()(lr_scheduler.OneCycleLR) +LambdaLR = register()(lr_scheduler.LambdaLR) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/optim/warmup.py b/backend/apps/algorithms/algorithm/DFINE/src/optim/warmup.py new file mode 100644 index 0000000..cd475ef --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/optim/warmup.py @@ -0,0 +1,56 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from torch.optim.lr_scheduler import LRScheduler + +from ..core import register + + +class Warmup(object): + def __init__( + self, lr_scheduler: LRScheduler, warmup_duration: int, last_step: int = -1 + ) -> None: + self.lr_scheduler = lr_scheduler + self.warmup_end_values = [pg["lr"] for pg in lr_scheduler.optimizer.param_groups] + self.last_step = last_step + self.warmup_duration = warmup_duration + self.step() + + def state_dict(self): + return {k: v for k, v in self.__dict__.items() if k != "lr_scheduler"} + + def load_state_dict(self, state_dict): + self.__dict__.update(state_dict) + + def get_warmup_factor(self, step, **kwargs): + raise NotImplementedError + + def step( + self, + ): + self.last_step += 1 + if self.last_step >= self.warmup_duration: + return + factor = self.get_warmup_factor(self.last_step) + for i, pg in enumerate(self.lr_scheduler.optimizer.param_groups): + pg["lr"] = factor * self.warmup_end_values[i] + + def finished( + self, + ): + if self.last_step >= self.warmup_duration: + return True + return False + + +@register() +class LinearWarmup(Warmup): + def __init__( + self, lr_scheduler: LRScheduler, warmup_duration: int, last_step: int = -1 + ) -> None: + super().__init__(lr_scheduler, warmup_duration, last_step) + + def get_warmup_factor(self, step): + return min(1.0, (step + 1) / self.warmup_duration) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/solver/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/solver/__init__.py new file mode 100644 index 0000000..440182a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/solver/__init__.py @@ -0,0 +1,15 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from typing import Dict + +from ._solver import BaseSolver +from .clas_solver import ClasSolver +from .det_solver import DetSolver + +TASKS: Dict[str, BaseSolver] = { + "classification": ClasSolver, + "detection": DetSolver, +} diff --git a/backend/apps/algorithms/algorithm/DFINE/src/solver/_solver.py b/backend/apps/algorithms/algorithm/DFINE/src/solver/_solver.py new file mode 100644 index 0000000..3120437 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/solver/_solver.py @@ -0,0 +1,783 @@ +import atexit +from datetime import datetime +from pathlib import Path +from typing import Dict + +import torch +import torch.nn as nn + +from ..core import BaseConfig +from ..misc import dist_utils + + +def to(m: nn.Module, device: str): + if m is None: + return None + return m.to(device) + + +def remove_module_prefix(state_dict): + new_state_dict = {} + for k, v in state_dict.items(): + if k.startswith("module."): + new_state_dict[k[7:]] = v + else: + new_state_dict[k] = v + return new_state_dict + + +class BaseSolver(object): + def __init__(self, cfg: BaseConfig) -> None: + self.cfg = cfg + self.obj365_ids = [ + 0, + 46, + 5, + 58, + 114, + 55, + 116, + 65, + 21, + 40, + 176, + 127, + 249, + 24, + 56, + 139, + 92, + 78, + 99, + 96, + 144, + 295, + 178, + 180, + 38, + 39, + 13, + 43, + 120, + 219, + 148, + 173, + 165, + 154, + 137, + 113, + 145, + 146, + 204, + 8, + 35, + 10, + 88, + 84, + 93, + 26, + 112, + 82, + 265, + 104, + 141, + 152, + 234, + 143, + 150, + 97, + 2, + 50, + 25, + 75, + 98, + 153, + 37, + 73, + 115, + 132, + 106, + 61, + 163, + 134, + 277, + 81, + 133, + 18, + 94, + 30, + 169, + 70, + 328, + 226, + ] + + def _setup(self): + """Avoid instantiating unnecessary classes""" + cfg = self.cfg + if cfg.device: + device = torch.device(cfg.device) + else: + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + + self.model = cfg.model + + # NOTE: Must load_tuning_state before EMA instance building + if self.cfg.tuning: + print(f"Tuning checkpoint from {self.cfg.tuning}") + self.load_tuning_state(self.cfg.tuning) + + self.model = dist_utils.warp_model( + self.model.to(device), + sync_bn=cfg.sync_bn, + find_unused_parameters=cfg.find_unused_parameters, + ) + + self.criterion = self.to(cfg.criterion, device) + self.postprocessor = self.to(cfg.postprocessor, device) + + self.ema = self.to(cfg.ema, device) + self.scaler = cfg.scaler + + self.device = device + self.last_epoch = self.cfg.last_epoch + + self.output_dir = Path(cfg.output_dir) + self.output_dir.mkdir(parents=True, exist_ok=True) + self.writer = cfg.writer + + if self.writer: + atexit.register(self.writer.close) + if dist_utils.is_main_process(): + self.writer.add_text("config", "{:s}".format(cfg.__repr__()), 0) + self.use_wandb = self.cfg.use_wandb + if self.use_wandb: + try: + import wandb + self.use_wandb = True + except ImportError: + self.use_wandb = False + + def cleanup(self): + if self.writer: + atexit.register(self.writer.close) + + def train(self): + self._setup() + self.optimizer = self.cfg.optimizer + self.lr_scheduler = self.cfg.lr_scheduler + self.lr_warmup_scheduler = self.cfg.lr_warmup_scheduler + + self.train_dataloader = dist_utils.warp_loader( + self.cfg.train_dataloader, shuffle=self.cfg.train_dataloader.shuffle + ) + self.val_dataloader = dist_utils.warp_loader( + self.cfg.val_dataloader, shuffle=self.cfg.val_dataloader.shuffle + ) + + self.evaluator = self.cfg.evaluator + + # NOTE: Instantiating order + if self.cfg.resume: + print(f"Resume checkpoint from {self.cfg.resume}") + self.load_resume_state(self.cfg.resume) + + def eval(self): + self._setup() + + self.val_dataloader = dist_utils.warp_loader( + self.cfg.val_dataloader, shuffle=self.cfg.val_dataloader.shuffle + ) + + self.evaluator = self.cfg.evaluator + + if self.cfg.resume: + print(f"Resume checkpoint from {self.cfg.resume}") + self.load_resume_state(self.cfg.resume) + + def to(self, module, device): + return module.to(device) if hasattr(module, "to") else module + + def state_dict(self): + """State dict, train/eval""" + state = {} + state["date"] = datetime.now().isoformat() + + # For resume + state["last_epoch"] = self.last_epoch + + for k, v in self.__dict__.items(): + if hasattr(v, "state_dict"): + v = dist_utils.de_parallel(v) + state[k] = v.state_dict() + + return state + + def load_state_dict(self, state): + """Load state dict, train/eval""" + if "last_epoch" in state: + self.last_epoch = state["last_epoch"] + print("Load last_epoch") + + for k, v in self.__dict__.items(): + if hasattr(v, "load_state_dict") and k in state: + v = dist_utils.de_parallel(v) + v.load_state_dict(state[k]) + print(f"Load {k}.state_dict") + + if hasattr(v, "load_state_dict") and k not in state: + if k == "ema": + model = getattr(self, "model", None) + if model is not None: + ema = dist_utils.de_parallel(v) + model_state_dict = remove_module_prefix(model.state_dict()) + ema.load_state_dict({"module": model_state_dict}) + print(f"Load {k}.state_dict from model.state_dict") + else: + print(f"Not load {k}.state_dict") + + def load_resume_state(self, path: str): + """Load resume""" + if path.startswith("http"): + state = torch.hub.load_state_dict_from_url(path, map_location="cpu") + else: + state = torch.load(path, map_location="cpu") + + # state['model'] = remove_module_prefix(state['model']) + self.load_state_dict(state) + + def load_tuning_state(self, path: str): + """Load model for tuning and adjust mismatched head parameters""" + if path.startswith("http"): + state = torch.hub.load_state_dict_from_url(path, map_location="cpu") + else: + state = torch.load(path, map_location="cpu") + + module = dist_utils.de_parallel(self.model) + + # Load the appropriate state dict + if "ema" in state: + pretrain_state_dict = state["ema"]["module"] + else: + pretrain_state_dict = state["model"] + + # Adjust head parameters between datasets + try: + adjusted_state_dict = self._adjust_head_parameters( + module.state_dict(), pretrain_state_dict + ) + stat, infos = self._matched_state(module.state_dict(), adjusted_state_dict) + except Exception: + stat, infos = self._matched_state(module.state_dict(), pretrain_state_dict) + + module.load_state_dict(stat, strict=False) + print(f"Load model.state_dict, {infos}") + + @staticmethod + def _matched_state(state: Dict[str, torch.Tensor], params: Dict[str, torch.Tensor]): + missed_list = [] + unmatched_list = [] + matched_state = {} + for k, v in state.items(): + if k in params: + if v.shape == params[k].shape: + matched_state[k] = params[k] + else: + unmatched_list.append(k) + else: + missed_list.append(k) + + return matched_state, {"missed": missed_list, "unmatched": unmatched_list} + + def _adjust_head_parameters(self, cur_state_dict, pretrain_state_dict): + """Adjust head parameters between datasets.""" + # List of parameters to adjust + if ( + pretrain_state_dict["decoder.denoising_class_embed.weight"].size() + != cur_state_dict["decoder.denoising_class_embed.weight"].size() + ): + del pretrain_state_dict["decoder.denoising_class_embed.weight"] + + head_param_names = ["decoder.enc_score_head.weight", "decoder.enc_score_head.bias"] + for i in range(8): + head_param_names.append(f"decoder.dec_score_head.{i}.weight") + head_param_names.append(f"decoder.dec_score_head.{i}.bias") + + adjusted_params = [] + + for param_name in head_param_names: + if param_name in cur_state_dict and param_name in pretrain_state_dict: + cur_tensor = cur_state_dict[param_name] + pretrain_tensor = pretrain_state_dict[param_name] + adjusted_tensor = self.map_class_weights(cur_tensor, pretrain_tensor) + if adjusted_tensor is not None: + pretrain_state_dict[param_name] = adjusted_tensor + adjusted_params.append(param_name) + else: + print(f"Cannot adjust parameter '{param_name}' due to size mismatch.") + + return pretrain_state_dict + + def map_class_weights(self, cur_tensor, pretrain_tensor): + """Map class weights from pretrain model to current model based on class IDs.""" + if pretrain_tensor.size() == cur_tensor.size(): + return pretrain_tensor + + adjusted_tensor = cur_tensor.clone() + adjusted_tensor.requires_grad = False + + if pretrain_tensor.size() > cur_tensor.size(): + for coco_id, obj_id in enumerate(self.obj365_ids): + adjusted_tensor[coco_id] = pretrain_tensor[obj_id + 1] + else: + for coco_id, obj_id in enumerate(self.obj365_ids): + adjusted_tensor[obj_id + 1] = pretrain_tensor[coco_id] + + return adjusted_tensor + + def fit(self): + raise NotImplementedError("") + + def val(self): + raise NotImplementedError("") + + +# obj365_classes = [ +# 'Person', 'Sneakers', 'Chair', 'Other Shoes', 'Hat', 'Car', 'Lamp', 'Glasses', +# 'Bottle', 'Desk', 'Cup', 'Street Lights', 'Cabinet/shelf', 'Handbag/Satchel', +# 'Bracelet', 'Plate', 'Picture/Frame', 'Helmet', 'Book', 'Gloves', 'Storage box', +# 'Boat', 'Leather Shoes', 'Flower', 'Bench', 'Potted Plant', 'Bowl/Basin', 'Flag', +# 'Pillow', 'Boots', 'Vase', 'Microphone', 'Necklace', 'Ring', 'SUV', 'Wine Glass', +# 'Belt', 'Moniter/TV', 'Backpack', 'Umbrella', 'Traffic Light', 'Speaker', 'Watch', +# 'Tie', 'Trash bin Can', 'Slippers', 'Bicycle', 'Stool', 'Barrel/bucket', 'Van', +# 'Couch', 'Sandals', 'Bakset', 'Drum', 'Pen/Pencil', 'Bus', 'Wild Bird', 'High Heels', +# 'Motorcycle', 'Guitar', 'Carpet', 'Cell Phone', 'Bread', 'Camera', 'Canned', 'Truck', +# 'Traffic cone', 'Cymbal', 'Lifesaver', 'Towel', 'Stuffed Toy', 'Candle', 'Sailboat', +# 'Laptop', 'Awning', 'Bed', 'Faucet', 'Tent', 'Horse', 'Mirror', 'Power outlet', +# 'Sink', 'Apple', 'Air Conditioner', 'Knife', 'Hockey Stick', 'Paddle', 'Pickup Truck', +# 'Fork', 'Traffic Sign', 'Ballon', 'Tripod', 'Dog', 'Spoon', 'Clock', 'Pot', 'Cow', +# 'Cake', 'Dinning Table', 'Sheep', 'Hanger', 'Blackboard/Whiteboard', 'Napkin', +# 'Other Fish', 'Orange/Tangerine', 'Toiletry', 'Keyboard', 'Tomato', 'Lantern', +# 'Machinery Vehicle', 'Fan', 'Green Vegetables', 'Banana', 'Baseball Glove', +# 'Airplane', 'Mouse', 'Train', 'Pumpkin', 'Soccer', 'Skiboard', 'Luggage', 'Nightstand', +# 'Tea pot', 'Telephone', 'Trolley', 'Head Phone', 'Sports Car', 'Stop Sign', 'Dessert', +# 'Scooter', 'Stroller', 'Crane', 'Remote', 'Refrigerator', 'Oven', 'Lemon', 'Duck', +# 'Baseball Bat', 'Surveillance Camera', 'Cat', 'Jug', 'Broccoli', 'Piano', 'Pizza', +# 'Elephant', 'Skateboard', 'Surfboard', 'Gun', 'Skating and Skiing shoes', 'Gas stove', +# 'Donut', 'Bow Tie', 'Carrot', 'Toilet', 'Kite', 'Strawberry', 'Other Balls', 'Shovel', +# 'Pepper', 'Computer Box', 'Toilet Paper', 'Cleaning Products', 'Chopsticks', 'Microwave', +# 'Pigeon', 'Baseball', 'Cutting/chopping Board', 'Coffee Table', 'Side Table', 'Scissors', +# 'Marker', 'Pie', 'Ladder', 'Snowboard', 'Cookies', 'Radiator', 'Fire Hydrant', 'Basketball', +# 'Zebra', 'Grape', 'Giraffe', 'Potato', 'Sausage', 'Tricycle', 'Violin', 'Egg', +# 'Fire Extinguisher', 'Candy', 'Fire Truck', 'Billards', 'Converter', 'Bathtub', +# 'Wheelchair', 'Golf Club', 'Briefcase', 'Cucumber', 'Cigar/Cigarette ', 'Paint Brush', +# 'Pear', 'Heavy Truck', 'Hamburger', 'Extractor', 'Extention Cord', 'Tong', +# 'Tennis Racket', 'Folder', 'American Football', 'earphone', 'Mask', 'Kettle', +# 'Tennis', 'Ship', 'Swing', 'Coffee Machine', 'Slide', 'Carriage', 'Onion', +# 'Green beans', 'Projector', 'Frisbee', 'Washing Machine/Drying Machine', 'Chicken', +# 'Printer', 'Watermelon', 'Saxophone', 'Tissue', 'Toothbrush', 'Ice cream', +# 'Hotair ballon', 'Cello', 'French Fries', 'Scale', 'Trophy', 'Cabbage', 'Hot dog', +# 'Blender', 'Peach', 'Rice', 'Wallet/Purse', 'Volleyball', 'Deer', 'Goose', 'Tape', +# 'Tablet', 'Cosmetics', 'Trumpet', 'Pineapple', 'Golf Ball', 'Ambulance', 'Parking meter', +# 'Mango', 'Key', 'Hurdle', 'Fishing Rod', 'Medal', 'Flute', 'Brush', 'Penguin', +# 'Megaphone', 'Corn', 'Lettuce', 'Garlic', 'Swan', 'Helicopter', 'Green Onion', +# 'Sandwich', 'Nuts', 'Speed Limit Sign', 'Induction Cooker', 'Broom', 'Trombone', +# 'Plum', 'Rickshaw', 'Goldfish', 'Kiwi fruit', 'Router/modem', 'Poker Card', 'Toaster', +# 'Shrimp', 'Sushi', 'Cheese', 'Notepaper', 'Cherry', 'Pliers', 'CD', 'Pasta', 'Hammer', +# 'Cue', 'Avocado', 'Hamimelon', 'Flask', 'Mushroon', 'Screwdriver', 'Soap', 'Recorder', +# 'Bear', 'Eggplant', 'Board Eraser', 'Coconut', 'Tape Measur/ Ruler', 'Pig', +# 'Showerhead', 'Globe', 'Chips', 'Steak', 'Crosswalk Sign', 'Stapler', 'Campel', +# 'Formula 1 ', 'Pomegranate', 'Dishwasher', 'Crab', 'Hoverboard', 'Meat ball', +# 'Rice Cooker', 'Tuba', 'Calculator', 'Papaya', 'Antelope', 'Parrot', 'Seal', +# 'Buttefly', 'Dumbbell', 'Donkey', 'Lion', 'Urinal', 'Dolphin', 'Electric Drill', +# 'Hair Dryer', 'Egg tart', 'Jellyfish', 'Treadmill', 'Lighter', 'Grapefruit', +# 'Game board', 'Mop', 'Radish', 'Baozi', 'Target', 'French', 'Spring Rolls', 'Monkey', +# 'Rabbit', 'Pencil Case', 'Yak', 'Red Cabbage', 'Binoculars', 'Asparagus', 'Barbell', +# 'Scallop', 'Noddles', 'Comb', 'Dumpling', 'Oyster', 'Table Teniis paddle', +# 'Cosmetics Brush/Eyeliner Pencil', 'Chainsaw', 'Eraser', 'Lobster', 'Durian', 'Okra', +# 'Lipstick', 'Cosmetics Mirror', 'Curling', 'Table Tennis ' +# ] + +# coco_classes = ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', +# 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', +# 'stop sign', 'parking meter', 'bench', 'wild bird', 'cat', 'dog', +# 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', +# 'backpack', 'umbrella', 'handbag/satchel', 'tie', 'luggage', 'frisbee', +# 'skating and skiing shoes', 'snowboard', 'baseball', 'kite', 'baseball bat', +# 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', +# 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl/basin', +# 'banana', 'apple', 'sandwich', 'orange/tangerine', 'broccoli', 'carrot', +# 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', +# 'potted plant', 'bed', 'dinning table', 'toilet', 'moniter/tv', 'laptop', +# 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', +# 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', +# 'vase', 'scissors', 'stuffed toy', 'hair dryer', 'toothbrush'] + + +# obj365_classes = [ +# (0, 'Person'), +# (1, 'Sneakers'), +# (2, 'Chair'), +# (3, 'Other Shoes'), +# (4, 'Hat'), +# (5, 'Car'), +# (6, 'Lamp'), +# (7, 'Glasses'), +# (8, 'Bottle'), +# (9, 'Desk'), +# (10, 'Cup'), +# (11, 'Street Lights'), +# (12, 'Cabinet/shelf'), +# (13, 'Handbag/Satchel'), +# (14, 'Bracelet'), +# (15, 'Plate'), +# (16, 'Picture/Frame'), +# (17, 'Helmet'), +# (18, 'Book'), +# (19, 'Gloves'), +# (20, 'Storage box'), +# (21, 'Boat'), +# (22, 'Leather Shoes'), +# (23, 'Flower'), +# (24, 'Bench'), +# (25, 'Potted Plant'), +# (26, 'Bowl/Basin'), +# (27, 'Flag'), +# (28, 'Pillow'), +# (29, 'Boots'), +# (30, 'Vase'), +# (31, 'Microphone'), +# (32, 'Necklace'), +# (33, 'Ring'), +# (34, 'SUV'), +# (35, 'Wine Glass'), +# (36, 'Belt'), +# (37, 'Monitor/TV'), +# (38, 'Backpack'), +# (39, 'Umbrella'), +# (40, 'Traffic Light'), +# (41, 'Speaker'), +# (42, 'Watch'), +# (43, 'Tie'), +# (44, 'Trash bin Can'), +# (45, 'Slippers'), +# (46, 'Bicycle'), +# (47, 'Stool'), +# (48, 'Barrel/bucket'), +# (49, 'Van'), +# (50, 'Couch'), +# (51, 'Sandals'), +# (52, 'Basket'), +# (53, 'Drum'), +# (54, 'Pen/Pencil'), +# (55, 'Bus'), +# (56, 'Wild Bird'), +# (57, 'High Heels'), +# (58, 'Motorcycle'), +# (59, 'Guitar'), +# (60, 'Carpet'), +# (61, 'Cell Phone'), +# (62, 'Bread'), +# (63, 'Camera'), +# (64, 'Canned'), +# (65, 'Truck'), +# (66, 'Traffic cone'), +# (67, 'Cymbal'), +# (68, 'Lifesaver'), +# (69, 'Towel'), +# (70, 'Stuffed Toy'), +# (71, 'Candle'), +# (72, 'Sailboat'), +# (73, 'Laptop'), +# (74, 'Awning'), +# (75, 'Bed'), +# (76, 'Faucet'), +# (77, 'Tent'), +# (78, 'Horse'), +# (79, 'Mirror'), +# (80, 'Power outlet'), +# (81, 'Sink'), +# (82, 'Apple'), +# (83, 'Air Conditioner'), +# (84, 'Knife'), +# (85, 'Hockey Stick'), +# (86, 'Paddle'), +# (87, 'Pickup Truck'), +# (88, 'Fork'), +# (89, 'Traffic Sign'), +# (90, 'Balloon'), +# (91, 'Tripod'), +# (92, 'Dog'), +# (93, 'Spoon'), +# (94, 'Clock'), +# (95, 'Pot'), +# (96, 'Cow'), +# (97, 'Cake'), +# (98, 'Dining Table'), +# (99, 'Sheep'), +# (100, 'Hanger'), +# (101, 'Blackboard/Whiteboard'), +# (102, 'Napkin'), +# (103, 'Other Fish'), +# (104, 'Orange/Tangerine'), +# (105, 'Toiletry'), +# (106, 'Keyboard'), +# (107, 'Tomato'), +# (108, 'Lantern'), +# (109, 'Machinery Vehicle'), +# (110, 'Fan'), +# (111, 'Green Vegetables'), +# (112, 'Banana'), +# (113, 'Baseball Glove'), +# (114, 'Airplane'), +# (115, 'Mouse'), +# (116, 'Train'), +# (117, 'Pumpkin'), +# (118, 'Soccer'), +# (119, 'Skiboard'), +# (120, 'Luggage'), +# (121, 'Nightstand'), +# (122, 'Tea pot'), +# (123, 'Telephone'), +# (124, 'Trolley'), +# (125, 'Head Phone'), +# (126, 'Sports Car'), +# (127, 'Stop Sign'), +# (128, 'Dessert'), +# (129, 'Scooter'), +# (130, 'Stroller'), +# (131, 'Crane'), +# (132, 'Remote'), +# (133, 'Refrigerator'), +# (134, 'Oven'), +# (135, 'Lemon'), +# (136, 'Duck'), +# (137, 'Baseball Bat'), +# (138, 'Surveillance Camera'), +# (139, 'Cat'), +# (140, 'Jug'), +# (141, 'Broccoli'), +# (142, 'Piano'), +# (143, 'Pizza'), +# (144, 'Elephant'), +# (145, 'Skateboard'), +# (146, 'Surfboard'), +# (147, 'Gun'), +# (148, 'Skating and Skiing Shoes'), +# (149, 'Gas Stove'), +# (150, 'Donut'), +# (151, 'Bow Tie'), +# (152, 'Carrot'), +# (153, 'Toilet'), +# (154, 'Kite'), +# (155, 'Strawberry'), +# (156, 'Other Balls'), +# (157, 'Shovel'), +# (158, 'Pepper'), +# (159, 'Computer Box'), +# (160, 'Toilet Paper'), +# (161, 'Cleaning Products'), +# (162, 'Chopsticks'), +# (163, 'Microwave'), +# (164, 'Pigeon'), +# (165, 'Baseball'), +# (166, 'Cutting/chopping Board'), +# (167, 'Coffee Table'), +# (168, 'Side Table'), +# (169, 'Scissors'), +# (170, 'Marker'), +# (171, 'Pie'), +# (172, 'Ladder'), +# (173, 'Snowboard'), +# (174, 'Cookies'), +# (175, 'Radiator'), +# (176, 'Fire Hydrant'), +# (177, 'Basketball'), +# (178, 'Zebra'), +# (179, 'Grape'), +# (180, 'Giraffe'), +# (181, 'Potato'), +# (182, 'Sausage'), +# (183, 'Tricycle'), +# (184, 'Violin'), +# (185, 'Egg'), +# (186, 'Fire Extinguisher'), +# (187, 'Candy'), +# (188, 'Fire Truck'), +# (189, 'Billiards'), +# (190, 'Converter'), +# (191, 'Bathtub'), +# (192, 'Wheelchair'), +# (193, 'Golf Club'), +# (194, 'Briefcase'), +# (195, 'Cucumber'), +# (196, 'Cigar/Cigarette'), +# (197, 'Paint Brush'), +# (198, 'Pear'), +# (199, 'Heavy Truck'), +# (200, 'Hamburger'), +# (201, 'Extractor'), +# (202, 'Extension Cord'), +# (203, 'Tong'), +# (204, 'Tennis Racket'), +# (205, 'Folder'), +# (206, 'American Football'), +# (207, 'Earphone'), +# (208, 'Mask'), +# (209, 'Kettle'), +# (210, 'Tennis'), +# (211, 'Ship'), +# (212, 'Swing'), +# (213, 'Coffee Machine'), +# (214, 'Slide'), +# (215, 'Carriage'), +# (216, 'Onion'), +# (217, 'Green Beans'), +# (218, 'Projector'), +# (219, 'Frisbee'), +# (220, 'Washing Machine/Drying Machine'), +# (221, 'Chicken'), +# (222, 'Printer'), +# (223, 'Watermelon'), +# (224, 'Saxophone'), +# (225, 'Tissue'), +# (226, 'Toothbrush'), +# (227, 'Ice Cream'), +# (228, 'Hot Air Balloon'), +# (229, 'Cello'), +# (230, 'French Fries'), +# (231, 'Scale'), +# (232, 'Trophy'), +# (233, 'Cabbage'), +# (234, 'Hot Dog'), +# (235, 'Blender'), +# (236, 'Peach'), +# (237, 'Rice'), +# (238, 'Wallet/Purse'), +# (239, 'Volleyball'), +# (240, 'Deer'), +# (241, 'Goose'), +# (242, 'Tape'), +# (243, 'Tablet'), +# (244, 'Cosmetics'), +# (245, 'Trumpet'), +# (246, 'Pineapple'), +# (247, 'Golf Ball'), +# (248, 'Ambulance'), +# (249, 'Parking Meter'), +# (250, 'Mango'), +# (251, 'Key'), +# (252, 'Hurdle'), +# (253, 'Fishing Rod'), +# (254, 'Medal'), +# (255, 'Flute'), +# (256, 'Brush'), +# (257, 'Penguin'), +# (258, 'Megaphone'), +# (259, 'Corn'), +# (260, 'Lettuce'), +# (261, 'Garlic'), +# (262, 'Swan'), +# (263, 'Helicopter'), +# (264, 'Green Onion'), +# (265, 'Sandwich'), +# (266, 'Nuts'), +# (267, 'Speed Limit Sign'), +# (268, 'Induction Cooker'), +# (269, 'Broom'), +# (270, 'Trombone'), +# (271, 'Plum'), +# (272, 'Rickshaw'), +# (273, 'Goldfish'), +# (274, 'Kiwi Fruit'), +# (275, 'Router/Modem'), +# (276, 'Poker Card'), +# (277, 'Toaster'), +# (278, 'Shrimp'), +# (279, 'Sushi'), +# (280, 'Cheese'), +# (281, 'Notepaper'), +# (282, 'Cherry'), +# (283, 'Pliers'), +# (284, 'CD'), +# (285, 'Pasta'), +# (286, 'Hammer'), +# (287, 'Cue'), +# (288, 'Avocado'), +# (289, 'Hami Melon'), +# (290, 'Flask'), +# (291, 'Mushroom'), +# (292, 'Screwdriver'), +# (293, 'Soap'), +# (294, 'Recorder'), +# (295, 'Bear'), +# (296, 'Eggplant'), +# (297, 'Board Eraser'), +# (298, 'Coconut'), +# (299, 'Tape Measure/Ruler'), +# (300, 'Pig'), +# (301, 'Showerhead'), +# (302, 'Globe'), +# (303, 'Chips'), +# (304, 'Steak'), +# (305, 'Crosswalk Sign'), +# (306, 'Stapler'), +# (307, 'Camel'), +# (308, 'Formula 1'), +# (309, 'Pomegranate'), +# (310, 'Dishwasher'), +# (311, 'Crab'), +# (312, 'Hoverboard'), +# (313, 'Meatball'), +# (314, 'Rice Cooker'), +# (315, 'Tuba'), +# (316, 'Calculator'), +# (317, 'Papaya'), +# (318, 'Antelope'), +# (319, 'Parrot'), +# (320, 'Seal'), +# (321, 'Butterfly'), +# (322, 'Dumbbell'), +# (323, 'Donkey'), +# (324, 'Lion'), +# (325, 'Urinal'), +# (326, 'Dolphin'), +# (327, 'Electric Drill'), +# (328, 'Hair Dryer'), +# (329, 'Egg Tart'), +# (330, 'Jellyfish'), +# (331, 'Treadmill'), +# (332, 'Lighter'), +# (333, 'Grapefruit'), +# (334, 'Game Board'), +# (335, 'Mop'), +# (336, 'Radish'), +# (337, 'Baozi'), +# (338, 'Target'), +# (339, 'French'), +# (340, 'Spring Rolls'), +# (341, 'Monkey'), +# (342, 'Rabbit'), +# (343, 'Pencil Case'), +# (344, 'Yak'), +# (345, 'Red Cabbage'), +# (346, 'Binoculars'), +# (347, 'Asparagus'), +# (348, 'Barbell'), +# (349, 'Scallop'), +# (350, 'Noodles'), +# (351, 'Comb'), +# (352, 'Dumpling'), +# (353, 'Oyster'), +# (354, 'Table Tennis Paddle'), +# (355, 'Cosmetics Brush/Eyeliner Pencil'), +# (356, 'Chainsaw'), +# (357, 'Eraser'), +# (358, 'Lobster'), +# (359, 'Durian'), +# (360, 'Okra'), +# (361, 'Lipstick'), +# (362, 'Cosmetics Mirror'), +# (363, 'Curling'), +# (364, 'Table Tennis') +# ] diff --git a/backend/apps/algorithms/algorithm/DFINE/src/solver/clas_engine.py b/backend/apps/algorithms/algorithm/DFINE/src/solver/clas_engine.py new file mode 100644 index 0000000..fc5a680 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/solver/clas_engine.py @@ -0,0 +1,74 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torch.nn as nn + +from ..misc import MetricLogger, SmoothedValue, reduce_dict + + +def train_one_epoch( + model: nn.Module, criterion: nn.Module, dataloader, optimizer, ema, epoch, device +): + """ """ + model.train() + + metric_logger = MetricLogger(delimiter=" ") + metric_logger.add_meter("lr", SmoothedValue(window_size=1, fmt="{value:.6f}")) + print_freq = 100 + header = "Epoch: [{}]".format(epoch) + + for imgs, labels in metric_logger.log_every(dataloader, print_freq, header): + imgs = imgs.to(device) + labels = labels.to(device) + + preds = model(imgs) + loss: torch.Tensor = criterion(preds, labels, epoch) + + optimizer.zero_grad() + loss.backward() + optimizer.step() + + if ema is not None: + ema.update(model) + + loss_reduced_values = {k: v.item() for k, v in reduce_dict({"loss": loss}).items()} + metric_logger.update(**loss_reduced_values) + metric_logger.update(lr=optimizer.param_groups[0]["lr"]) + + metric_logger.synchronize_between_processes() + print("Averaged stats:", metric_logger) + + stats = {k: meter.global_avg for k, meter in metric_logger.meters.items()} + return stats + + +@torch.no_grad() +def evaluate(model, criterion, dataloader, device): + model.eval() + + metric_logger = MetricLogger(delimiter=" ") + # metric_logger.add_meter('acc', SmoothedValue(window_size=1, fmt='{global_avg:.4f}')) + # metric_logger.add_meter('loss', SmoothedValue(window_size=1, fmt='{value:.2f}')) + metric_logger.add_meter("acc", SmoothedValue(window_size=1)) + metric_logger.add_meter("loss", SmoothedValue(window_size=1)) + + header = "Test:" + for imgs, labels in metric_logger.log_every(dataloader, 10, header): + imgs, labels = imgs.to(device), labels.to(device) + preds = model(imgs) + + acc = (preds.argmax(dim=-1) == labels).sum() / preds.shape[0] + loss = criterion(preds, labels) + + dict_reduced = reduce_dict({"acc": acc, "loss": loss}) + reduced_values = {k: v.item() for k, v in dict_reduced.items()} + metric_logger.update(**reduced_values) + + metric_logger.synchronize_between_processes() + print("Averaged stats:", metric_logger) + + stats = {k: meter.global_avg for k, meter in metric_logger.meters.items()} + return stats diff --git a/backend/apps/algorithms/algorithm/DFINE/src/solver/clas_solver.py b/backend/apps/algorithms/algorithm/DFINE/src/solver/clas_solver.py new file mode 100644 index 0000000..aefb3d0 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/solver/clas_solver.py @@ -0,0 +1,75 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import datetime +import json +import time +from pathlib import Path + +import torch +import torch.nn as nn + +from ..misc import dist_utils +from ._solver import BaseSolver +from .clas_engine import evaluate, train_one_epoch + + +class ClasSolver(BaseSolver): + def fit( + self, + ): + print("Start training") + self.train() + args = self.cfg + + n_parameters = sum(p.numel() for p in self.model.parameters() if p.requires_grad) + print("Number of params:", n_parameters) + + output_dir = Path(args.output_dir) + output_dir.mkdir(exist_ok=True) + + start_time = time.time() + start_epoch = self.last_epoch + 1 + for epoch in range(start_epoch, args.epochs): + if dist_utils.is_dist_available_and_initialized(): + self.train_dataloader.sampler.set_epoch(epoch) + + train_stats = train_one_epoch( + self.model, + self.criterion, + self.train_dataloader, + self.optimizer, + self.ema, + epoch=epoch, + device=self.device, + ) + self.lr_scheduler.step() + self.last_epoch += 1 + + if output_dir: + checkpoint_paths = [output_dir / "checkpoint.pth"] + # extra checkpoint before LR drop and every 100 epochs + if (epoch + 1) % args.checkpoint_freq == 0: + checkpoint_paths.append(output_dir / f"checkpoint{epoch:04}.pth") + for checkpoint_path in checkpoint_paths: + dist_utils.save_on_master(self.state_dict(epoch), checkpoint_path) + + module = self.ema.module if self.ema else self.model + test_stats = evaluate(module, self.criterion, self.val_dataloader, self.device) + + log_stats = { + **{f"train_{k}": v for k, v in train_stats.items()}, + **{f"test_{k}": v for k, v in test_stats.items()}, + "epoch": epoch, + "n_parameters": n_parameters, + } + + if output_dir and dist_utils.is_main_process(): + with (output_dir / "log.txt").open("a") as f: + f.write(json.dumps(log_stats) + "\n") + + total_time = time.time() - start_time + total_time_str = str(datetime.timedelta(seconds=int(total_time))) + print("Training time {}".format(total_time_str)) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/solver/det_engine.py b/backend/apps/algorithms/algorithm/DFINE/src/solver/det_engine.py new file mode 100644 index 0000000..b877b09 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/solver/det_engine.py @@ -0,0 +1,259 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from DETR (https://github.com/facebookresearch/detr/blob/main/engine.py) +Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. +""" + +import math +import sys +from typing import Dict, Iterable, List + +import numpy as np +import torch +import torch.amp +from torch.cuda.amp.grad_scaler import GradScaler +from torch.utils.tensorboard import SummaryWriter + +from ..data import CocoEvaluator +from ..data.dataset import mscoco_category2label +from ..misc import MetricLogger, SmoothedValue, dist_utils, save_samples +from ..optim import ModelEMA, Warmup +from .validator import Validator, scale_boxes + + +def train_one_epoch( + model: torch.nn.Module, + criterion: torch.nn.Module, + data_loader: Iterable, + optimizer: torch.optim.Optimizer, + device: torch.device, + epoch: int, + use_wandb: bool, + max_norm: float = 0, + **kwargs, +): + if use_wandb: + import wandb + + model.train() + criterion.train() + metric_logger = MetricLogger(delimiter=" ") + metric_logger.add_meter("lr", SmoothedValue(window_size=1, fmt="{value:.6f}")) + + epochs = kwargs.get("epochs", None) + header = "Epoch: [{}]".format(epoch) if epochs is None else "Epoch: [{}/{}]".format(epoch, epochs) + + print_freq = kwargs.get("print_freq", 10) + writer: SummaryWriter = kwargs.get("writer", None) + + ema: ModelEMA = kwargs.get("ema", None) + scaler: GradScaler = kwargs.get("scaler", None) + lr_warmup_scheduler: Warmup = kwargs.get("lr_warmup_scheduler", None) + losses = [] + + output_dir = kwargs.get("output_dir", None) + num_visualization_sample_batch = kwargs.get("num_visualization_sample_batch", 1) + + for i, (samples, targets) in enumerate( + metric_logger.log_every(data_loader, print_freq, header) + ): + global_step = epoch * len(data_loader) + i + metas = dict(epoch=epoch, step=i, global_step=global_step, epoch_step=len(data_loader)) + + if global_step < num_visualization_sample_batch and output_dir is not None and dist_utils.is_main_process(): + save_samples(samples, targets, output_dir, "train", normalized=True, box_fmt="cxcywh") + + samples = samples.to(device) + targets = [{k: v.to(device) if isinstance(v, torch.Tensor) else v for k, v in t.items()} for t in targets] + + if scaler is not None: + with torch.autocast(device_type=str(device), cache_enabled=True): + outputs = model(samples, targets=targets) + + if torch.isnan(outputs["pred_boxes"]).any() or torch.isinf(outputs["pred_boxes"]).any(): + print(outputs["pred_boxes"]) + state = model.state_dict() + new_state = {} + for key, value in model.state_dict().items(): + # Replace 'module' with 'model' in each key + new_key = key.replace("module.", "") + # Add the updated key-value pair to the state dictionary + state[new_key] = value + new_state["model"] = state + dist_utils.save_on_master(new_state, "./NaN.pth") + + with torch.autocast(device_type=str(device), enabled=False): + loss_dict = criterion(outputs, targets, **metas) + + loss = sum(loss_dict.values()) + scaler.scale(loss).backward() + + if max_norm > 0: + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm) + + scaler.step(optimizer) + scaler.update() + optimizer.zero_grad() + + else: + outputs = model(samples, targets=targets) + loss_dict = criterion(outputs, targets, **metas) + + loss: torch.Tensor = sum(loss_dict.values()) + optimizer.zero_grad() + loss.backward() + + if max_norm > 0: + torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm) + + optimizer.step() + + # ema + if ema is not None: + ema.update(model) + + if lr_warmup_scheduler is not None: + lr_warmup_scheduler.step() + + loss_dict_reduced = dist_utils.reduce_dict(loss_dict) + loss_value = sum(loss_dict_reduced.values()) + losses.append(loss_value.detach().cpu().numpy()) + + if not math.isfinite(loss_value): + print("Loss is {}, stopping training".format(loss_value)) + print(loss_dict_reduced) + sys.exit(1) + + metric_logger.update(loss=loss_value, **loss_dict_reduced) + metric_logger.update(lr=optimizer.param_groups[0]["lr"]) + + if writer and dist_utils.is_main_process() and global_step % 10 == 0: + writer.add_scalar("Loss/total", loss_value.item(), global_step) + for j, pg in enumerate(optimizer.param_groups): + writer.add_scalar(f"Lr/pg_{j}", pg["lr"], global_step) + for k, v in loss_dict_reduced.items(): + writer.add_scalar(f"Loss/{k}", v.item(), global_step) + + if use_wandb: + wandb.log( + {"lr": optimizer.param_groups[0]["lr"], "epoch": epoch, "train/loss": np.mean(losses)} + ) + # gather the stats from all processes + metric_logger.synchronize_between_processes() + print("Averaged stats:", metric_logger) + return {k: meter.global_avg for k, meter in metric_logger.meters.items()} + + +@torch.no_grad() +def evaluate( + model: torch.nn.Module, + criterion: torch.nn.Module, + postprocessor, + data_loader, + coco_evaluator: CocoEvaluator, + device, + epoch: int, + use_wandb: bool, + **kwargs, +): + if use_wandb: + import wandb + + model.eval() + criterion.eval() + coco_evaluator.cleanup() + + metric_logger = MetricLogger(delimiter=" ") + # metric_logger.add_meter('class_error', SmoothedValue(window_size=1, fmt='{value:.2f}')) + header = "Test:" + + # iou_types = tuple(k for k in ('segm', 'bbox') if k in postprocessor.keys()) + iou_types = coco_evaluator.iou_types + # coco_evaluator = CocoEvaluator(base_ds, iou_types) + # coco_evaluator.coco_eval[iou_types[0]].params.iouThrs = [0, 0.1, 0.5, 0.75] + + gt: List[Dict[str, torch.Tensor]] = [] + preds: List[Dict[str, torch.Tensor]] = [] + + output_dir = kwargs.get("output_dir", None) + num_visualization_sample_batch = kwargs.get("num_visualization_sample_batch", 1) + + for i, (samples, targets) in enumerate(metric_logger.log_every(data_loader, 10, header)): + global_step = epoch * len(data_loader) + i + + if global_step < num_visualization_sample_batch and output_dir is not None and dist_utils.is_main_process(): + save_samples(samples, targets, output_dir, "val", normalized=False, box_fmt="xyxy") + + samples = samples.to(device) + targets = [{k: v.to(device) if isinstance(v, torch.Tensor) else v for k, v in t.items()} for t in targets] + + outputs = model(samples) + # with torch.autocast(device_type=str(device)): + # outputs = model(samples) + + # TODO (lyuwenyu), fix dataset converted using `convert_to_coco_api`? + orig_target_sizes = torch.stack([t["orig_size"] for t in targets], dim=0) + # orig_target_sizes = torch.tensor([[samples.shape[-1], samples.shape[-2]]], device=samples.device) + + results = postprocessor(outputs, orig_target_sizes) + + # if 'segm' in postprocessor.keys(): + # target_sizes = torch.stack([t["size"] for t in targets], dim=0) + # results = postprocessor['segm'](results, outputs, orig_target_sizes, target_sizes) + + res = {target["image_id"].item(): output for target, output in zip(targets, results)} + if coco_evaluator is not None: + coco_evaluator.update(res) + + # validator format for metrics + for idx, (target, result) in enumerate(zip(targets, results)): + gt.append( + { + "boxes": scale_boxes( # from model input size to original img size + target["boxes"], + (target["orig_size"][1], target["orig_size"][0]), + (samples[idx].shape[-1], samples[idx].shape[-2]), + ), + "labels": target["labels"], + } + ) + labels = ( + torch.tensor([mscoco_category2label[int(x.item())] for x in result["labels"].flatten()]) + .to(result["labels"].device) + .reshape(result["labels"].shape) + ) if postprocessor.remap_mscoco_category else result["labels"] + preds.append( + {"boxes": result["boxes"], "labels": labels, "scores": result["scores"]} + ) + + # Conf matrix, F1, Precision, Recall, box IoU + metrics = Validator(gt, preds).compute_metrics() + print("Metrics:", metrics) + if use_wandb: + metrics = {f"metrics/{k}": v for k, v in metrics.items()} + metrics["epoch"] = epoch + wandb.log(metrics) + + # gather the stats from all processes + metric_logger.synchronize_between_processes() + print("Averaged stats:", metric_logger) + if coco_evaluator is not None: + coco_evaluator.synchronize_between_processes() + + # accumulate predictions from all images + if coco_evaluator is not None: + coco_evaluator.accumulate() + coco_evaluator.summarize() + + stats = {} + # stats = {k: meter.global_avg for k, meter in metric_logger.meters.items()} + if coco_evaluator is not None: + if "bbox" in iou_types: + stats["coco_eval_bbox"] = coco_evaluator.coco_eval["bbox"].stats.tolist() + if "segm" in iou_types: + stats["coco_eval_masks"] = coco_evaluator.coco_eval["segm"].stats.tolist() + + return stats, coco_evaluator diff --git a/backend/apps/algorithms/algorithm/DFINE/src/solver/det_solver.py b/backend/apps/algorithms/algorithm/DFINE/src/solver/det_solver.py new file mode 100644 index 0000000..9e57702 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/solver/det_solver.py @@ -0,0 +1,235 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import datetime +import json +import sys +import time + +import torch + +from ..misc import dist_utils, stats +from ._solver import BaseSolver +from .det_engine import evaluate, train_one_epoch + + +class DetSolver(BaseSolver): + def fit(self): + self.train() + args = self.cfg + metric_names = ["AP50:95", "AP50", "AP75", "APsmall", "APmedium", "APlarge"] + + if self.use_wandb: + import wandb + + wandb.init( + project=args.yaml_cfg["project_name"], + name=args.yaml_cfg["exp_name"], + config=args.yaml_cfg, + ) + wandb.watch(self.model) + + n_parameters, model_stats = stats(self.cfg) + print(model_stats) + sys.stdout.flush() + print("-" * 42 + "Start training" + "-" * 43) + sys.stdout.flush() + top1 = 0 + best_stat = { + "epoch": -1, + } + if self.last_epoch > 0: + module = self.ema.module if self.ema else self.model + test_stats, coco_evaluator = evaluate( + module, + self.criterion, + self.postprocessor, + self.val_dataloader, + self.evaluator, + self.device, + self.last_epoch, + self.use_wandb + ) + for k in test_stats: + best_stat["epoch"] = self.last_epoch + best_stat[k] = test_stats[k][0] + top1 = test_stats[k][0] + print(f"best_stat: {best_stat}") + sys.stdout.flush() + + best_stat_print = best_stat.copy() + start_time = time.time() + start_epoch = self.last_epoch + 1 + for epoch in range(start_epoch, args.epochs): + self.train_dataloader.set_epoch(epoch) + # self.train_dataloader.dataset.set_epoch(epoch) + if dist_utils.is_dist_available_and_initialized(): + self.train_dataloader.sampler.set_epoch(epoch) + + if epoch == self.train_dataloader.collate_fn.stop_epoch: + self.load_resume_state(str(self.output_dir / "best_stg1.pth")) + if self.ema: + self.ema.decay = self.train_dataloader.collate_fn.ema_restart_decay + print(f"Refresh EMA at epoch {epoch} with decay {self.ema.decay}") + sys.stdout.flush() + + train_stats = train_one_epoch( + self.model, + self.criterion, + self.train_dataloader, + self.optimizer, + self.device, + epoch, + epochs=args.epochs, + max_norm=args.clip_max_norm, + print_freq=args.print_freq, + ema=self.ema, + scaler=self.scaler, + lr_warmup_scheduler=self.lr_warmup_scheduler, + writer=self.writer, + use_wandb=self.use_wandb, + output_dir=self.output_dir, + ) + + if self.lr_warmup_scheduler is None or self.lr_warmup_scheduler.finished(): + self.lr_scheduler.step() + + self.last_epoch += 1 + + if self.output_dir and epoch < self.train_dataloader.collate_fn.stop_epoch: + checkpoint_paths = [self.output_dir / "last.pth"] + # extra checkpoint before LR drop and every 100 epochs + if (epoch + 1) % args.checkpoint_freq == 0: + checkpoint_paths.append(self.output_dir / f"checkpoint{epoch:04}.pth") + for checkpoint_path in checkpoint_paths: + dist_utils.save_on_master(self.state_dict(), checkpoint_path) + + module = self.ema.module if self.ema else self.model + test_stats, coco_evaluator = evaluate( + module, + self.criterion, + self.postprocessor, + self.val_dataloader, + self.evaluator, + self.device, + epoch, + self.use_wandb, + output_dir=self.output_dir, + ) + + # TODO + for k in test_stats: + if self.writer and dist_utils.is_main_process(): + for i, v in enumerate(test_stats[k]): + self.writer.add_scalar(f"Test/{k}_{i}".format(k), v, epoch) + + if k in best_stat: + best_stat["epoch"] = ( + epoch if test_stats[k][0] > best_stat[k] else best_stat["epoch"] + ) + best_stat[k] = max(best_stat[k], test_stats[k][0]) + else: + best_stat["epoch"] = epoch + best_stat[k] = test_stats[k][0] + + if best_stat[k] > top1: + best_stat_print["epoch"] = epoch + top1 = best_stat[k] + if self.output_dir: + if epoch >= self.train_dataloader.collate_fn.stop_epoch: + dist_utils.save_on_master( + self.state_dict(), self.output_dir / "best_stg2.pth" + ) + else: + dist_utils.save_on_master( + self.state_dict(), self.output_dir / "best_stg1.pth" + ) + + best_stat_print[k] = max(best_stat[k], top1) + print(f"best_stat: {best_stat_print}") # global best + sys.stdout.flush() + + if best_stat["epoch"] == epoch and self.output_dir: + if epoch >= self.train_dataloader.collate_fn.stop_epoch: + if test_stats[k][0] > top1: + top1 = test_stats[k][0] + dist_utils.save_on_master( + self.state_dict(), self.output_dir / "best_stg2.pth" + ) + else: + top1 = max(test_stats[k][0], top1) + dist_utils.save_on_master( + self.state_dict(), self.output_dir / "best_stg1.pth" + ) + + elif epoch >= self.train_dataloader.collate_fn.stop_epoch: + best_stat = { + "epoch": -1, + } + if self.ema: + self.ema.decay -= 0.0001 + self.load_resume_state(str(self.output_dir / "best_stg1.pth")) + print(f"Refresh EMA at epoch {epoch} with decay {self.ema.decay}") + sys.stdout.flush() + + log_stats = { + **{f"train_{k}": v for k, v in train_stats.items()}, + **{f"test_{k}": v for k, v in test_stats.items()}, + "epoch": epoch, + "n_parameters": n_parameters, + } + if self.use_wandb: + wandb_logs = {} + for idx, metric_name in enumerate(metric_names): + wandb_logs[f"metrics/{metric_name}"] = test_stats["coco_eval_bbox"][idx] + wandb_logs["epoch"] = epoch + wandb.log(wandb_logs) + + if self.output_dir and dist_utils.is_main_process(): + with (self.output_dir / "log.txt").open("a") as f: + f.write(json.dumps(log_stats) + "\n") + + # for evaluation logs + if coco_evaluator is not None: + (self.output_dir / "eval").mkdir(exist_ok=True) + if "bbox" in coco_evaluator.coco_eval: + filenames = ["latest.pth"] + if epoch % 50 == 0: + filenames.append(f"{epoch:03}.pth") + for name in filenames: + torch.save( + coco_evaluator.coco_eval["bbox"].eval, + self.output_dir / "eval" / name, + ) + + total_time = time.time() - start_time + total_time_str = str(datetime.timedelta(seconds=int(total_time))) + print("Training time {}".format(total_time_str)) + sys.stdout.flush() + + def val(self): + self.eval() + + module = self.ema.module if self.ema else self.model + test_stats, coco_evaluator = evaluate( + module, + self.criterion, + self.postprocessor, + self.val_dataloader, + self.evaluator, + self.device, + epoch=-1, + use_wandb=False, + ) + + if self.output_dir: + dist_utils.save_on_master( + coco_evaluator.coco_eval["bbox"].eval, self.output_dir / "eval.pth" + ) + + return diff --git a/backend/apps/algorithms/algorithm/DFINE/src/solver/validator.py b/backend/apps/algorithms/algorithm/DFINE/src/solver/validator.py new file mode 100644 index 0000000..e38308c --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/solver/validator.py @@ -0,0 +1,347 @@ +import copy +from collections import defaultdict +from pathlib import Path +from typing import Dict, List + +import matplotlib.pyplot as plt +import numpy as np +import torch +from loguru import logger +from torchvision.ops import box_iou + + +class Validator: + def __init__( + self, + gt: List[Dict[str, torch.Tensor]], + preds: List[Dict[str, torch.Tensor]], + conf_thresh=0.5, + iou_thresh=0.5, + ) -> None: + """ + Format example: + gt = [{'labels': tensor([0]), 'boxes': tensor([[561.0, 297.0, 661.0, 359.0]])}, ...] + len(gt) is the number of images + bboxes are in format [x1, y1, x2, y2], absolute values + """ + self.gt = gt + self.preds = preds + self.conf_thresh = conf_thresh + self.iou_thresh = iou_thresh + self.thresholds = np.arange(0.2, 1.0, 0.05) + self.conf_matrix = None + + def compute_metrics(self, extended=False) -> Dict[str, float]: + filtered_preds = filter_preds(copy.deepcopy(self.preds), self.conf_thresh) + metrics = self._compute_main_metrics(filtered_preds) + if not extended: + metrics.pop("extended_metrics", None) + return metrics + + def _compute_main_metrics(self, preds): + ( + self.metrics_per_class, + self.conf_matrix, + self.class_to_idx, + ) = self._compute_metrics_and_confusion_matrix(preds) + tps, fps, fns = 0, 0, 0 + ious = [] + extended_metrics = {} + for key, value in self.metrics_per_class.items(): + tps += value["TPs"] + fps += value["FPs"] + fns += value["FNs"] + ious.extend(value["IoUs"]) + + extended_metrics[f"precision_{key}"] = ( + value["TPs"] / (value["TPs"] + value["FPs"]) + if value["TPs"] + value["FPs"] > 0 + else 0 + ) + extended_metrics[f"recall_{key}"] = ( + value["TPs"] / (value["TPs"] + value["FNs"]) + if value["TPs"] + value["FNs"] > 0 + else 0 + ) + + extended_metrics[f"iou_{key}"] = np.mean(value["IoUs"]) + + precision = tps / (tps + fps) if (tps + fps) > 0 else 0 + recall = tps / (tps + fns) if (tps + fns) > 0 else 0 + f1 = 2 * (precision * recall) / (precision + recall) if (precision + recall) > 0 else 0 + iou = np.mean(ious).item() if ious else 0 + return { + "f1": f1, + "precision": precision, + "recall": recall, + "iou": iou, + "TPs": tps, + "FPs": fps, + "FNs": fns, + "extended_metrics": extended_metrics, + } + + def _compute_matrix_multi_class(self, preds): + metrics_per_class = defaultdict(lambda: {"TPs": 0, "FPs": 0, "FNs": 0, "IoUs": []}) + for pred, gt in zip(preds, self.gt): + pred_boxes = pred["boxes"] + pred_labels = pred["labels"] + gt_boxes = gt["boxes"] + gt_labels = gt["labels"] + + # isolate each class + labels = torch.unique(torch.cat([pred_labels, gt_labels])) + for label in labels: + pred_cl_boxes = pred_boxes[pred_labels == label] # filter by bool mask + gt_cl_boxes = gt_boxes[gt_labels == label] + + n_preds = len(pred_cl_boxes) + n_gts = len(gt_cl_boxes) + if not (n_preds or n_gts): + continue + if not n_preds: + metrics_per_class[label.item()]["FNs"] += n_gts + metrics_per_class[label.item()]["IoUs"].extend([0] * n_gts) + continue + if not n_gts: + metrics_per_class[label.item()]["FPs"] += n_preds + metrics_per_class[label.item()]["IoUs"].extend([0] * n_preds) + continue + + ious = box_iou(pred_cl_boxes, gt_cl_boxes) # matrix of all IoUs + ious_mask = ious >= self.iou_thresh + + # indeces of boxes that have IoU >= threshold + pred_indices, gt_indices = torch.nonzero(ious_mask, as_tuple=True) + + if not pred_indices.numel(): # no predicts matched gts + metrics_per_class[label.item()]["FNs"] += n_gts + metrics_per_class[label.item()]["IoUs"].extend([0] * n_gts) + metrics_per_class[label.item()]["FPs"] += n_preds + metrics_per_class[label.item()]["IoUs"].extend([0] * n_preds) + continue + + iou_values = ious[pred_indices, gt_indices] + + # sorting by IoU to match hgihest scores first + sorted_indices = torch.argsort(-iou_values) + pred_indices = pred_indices[sorted_indices] + gt_indices = gt_indices[sorted_indices] + iou_values = iou_values[sorted_indices] + + matched_preds = set() + matched_gts = set() + for pred_idx, gt_idx, iou in zip(pred_indices, gt_indices, iou_values): + if gt_idx.item() not in matched_gts and pred_idx.item() not in matched_preds: + matched_preds.add(pred_idx.item()) + matched_gts.add(gt_idx.item()) + metrics_per_class[label.item()]["TPs"] += 1 + metrics_per_class[label.item()]["IoUs"].append(iou.item()) + + unmatched_preds = set(range(n_preds)) - matched_preds + unmatched_gts = set(range(n_gts)) - matched_gts + metrics_per_class[label.item()]["FPs"] += len(unmatched_preds) + metrics_per_class[label.item()]["IoUs"].extend([0] * len(unmatched_preds)) + metrics_per_class[label.item()]["FNs"] += len(unmatched_gts) + metrics_per_class[label.item()]["IoUs"].extend([0] * len(unmatched_gts)) + return metrics_per_class + + def _compute_metrics_and_confusion_matrix(self, preds): + # Initialize per-class metrics + metrics_per_class = defaultdict(lambda: {"TPs": 0, "FPs": 0, "FNs": 0, "IoUs": []}) + + # Collect all class IDs + all_classes = set() + for pred in preds: + all_classes.update(pred["labels"].tolist()) + for gt in self.gt: + all_classes.update(gt["labels"].tolist()) + all_classes = sorted(list(all_classes)) + class_to_idx = {cls_id: idx for idx, cls_id in enumerate(all_classes)} + n_classes = len(all_classes) + conf_matrix = np.zeros((n_classes + 1, n_classes + 1), dtype=int) # +1 for background class + + for pred, gt in zip(preds, self.gt): + pred_boxes = pred["boxes"] + pred_labels = pred["labels"] + gt_boxes = gt["boxes"] + gt_labels = gt["labels"] + + n_preds = len(pred_boxes) + n_gts = len(gt_boxes) + + if n_preds == 0 and n_gts == 0: + continue + + ious = box_iou(pred_boxes, gt_boxes) if n_preds > 0 and n_gts > 0 else torch.tensor([]) + # Assign matches between preds and gts + matched_pred_indices = set() + matched_gt_indices = set() + + if ious.numel() > 0: + # For each pred box, find the gt box with highest IoU + ious_mask = ious >= self.iou_thresh + pred_indices, gt_indices = torch.nonzero(ious_mask, as_tuple=True) + iou_values = ious[pred_indices, gt_indices] + + # Sorting by IoU to match highest scores first + sorted_indices = torch.argsort(-iou_values) + pred_indices = pred_indices[sorted_indices] + gt_indices = gt_indices[sorted_indices] + iou_values = iou_values[sorted_indices] + + for pred_idx, gt_idx, iou in zip(pred_indices, gt_indices, iou_values): + if ( + pred_idx.item() in matched_pred_indices + or gt_idx.item() in matched_gt_indices + ): + continue + matched_pred_indices.add(pred_idx.item()) + matched_gt_indices.add(gt_idx.item()) + + pred_label = pred_labels[pred_idx].item() + gt_label = gt_labels[gt_idx].item() + + pred_cls_idx = class_to_idx[pred_label] + gt_cls_idx = class_to_idx[gt_label] + + # Update confusion matrix + conf_matrix[gt_cls_idx, pred_cls_idx] += 1 + + # Update per-class metrics + if pred_label == gt_label: + metrics_per_class[gt_label]["TPs"] += 1 + metrics_per_class[gt_label]["IoUs"].append(iou.item()) + else: + # Misclassification + metrics_per_class[gt_label]["FNs"] += 1 + metrics_per_class[pred_label]["FPs"] += 1 + metrics_per_class[gt_label]["IoUs"].append(0) + metrics_per_class[pred_label]["IoUs"].append(0) + + # Unmatched predictions (False Positives) + unmatched_pred_indices = set(range(n_preds)) - matched_pred_indices + for pred_idx in unmatched_pred_indices: + pred_label = pred_labels[pred_idx].item() + pred_cls_idx = class_to_idx[pred_label] + # Update confusion matrix: background row + conf_matrix[n_classes, pred_cls_idx] += 1 + # Update per-class metrics + metrics_per_class[pred_label]["FPs"] += 1 + metrics_per_class[pred_label]["IoUs"].append(0) + + # Unmatched ground truths (False Negatives) + unmatched_gt_indices = set(range(n_gts)) - matched_gt_indices + for gt_idx in unmatched_gt_indices: + gt_label = gt_labels[gt_idx].item() + gt_cls_idx = class_to_idx[gt_label] + # Update confusion matrix: background column + conf_matrix[gt_cls_idx, n_classes] += 1 + # Update per-class metrics + metrics_per_class[gt_label]["FNs"] += 1 + metrics_per_class[gt_label]["IoUs"].append(0) + + return metrics_per_class, conf_matrix, class_to_idx + + def save_plots(self, path_to_save) -> None: + path_to_save = Path(path_to_save) + path_to_save.mkdir(parents=True, exist_ok=True) + + if self.conf_matrix is not None: + class_labels = [str(cls_id) for cls_id in self.class_to_idx.keys()] + ["background"] + + plt.figure(figsize=(10, 8)) + plt.imshow(self.conf_matrix, interpolation="nearest", cmap=plt.cm.Blues) + plt.title("Confusion Matrix") + plt.colorbar() + tick_marks = np.arange(len(class_labels)) + plt.xticks(tick_marks, class_labels, rotation=45) + plt.yticks(tick_marks, class_labels) + + # Add labels to each cell + thresh = self.conf_matrix.max() / 2.0 + for i in range(self.conf_matrix.shape[0]): + for j in range(self.conf_matrix.shape[1]): + plt.text( + j, + i, + format(self.conf_matrix[i, j], "d"), + horizontalalignment="center", + color="white" if self.conf_matrix[i, j] > thresh else "black", + ) + + plt.ylabel("True label") + plt.xlabel("Predicted label") + plt.tight_layout() + plt.savefig(path_to_save / "confusion_matrix.png") + plt.close() + + thresholds = self.thresholds + precisions, recalls, f1_scores = [], [], [] + + # Store the original predictions to reset after each threshold + original_preds = copy.deepcopy(self.preds) + + for threshold in thresholds: + # Filter predictions based on the current threshold + filtered_preds = filter_preds(copy.deepcopy(original_preds), threshold) + # Compute metrics with the filtered predictions + metrics = self._compute_main_metrics(filtered_preds) + precisions.append(metrics["precision"]) + recalls.append(metrics["recall"]) + f1_scores.append(metrics["f1"]) + + # Plot Precision and Recall vs Threshold + plt.figure() + plt.plot(thresholds, precisions, label="Precision", marker="o") + plt.plot(thresholds, recalls, label="Recall", marker="o") + plt.xlabel("Threshold") + plt.ylabel("Value") + plt.title("Precision and Recall vs Threshold") + plt.legend() + plt.grid(True) + plt.savefig(path_to_save / "precision_recall_vs_threshold.png") + plt.close() + + # Plot F1 Score vs Threshold + plt.figure() + plt.plot(thresholds, f1_scores, label="F1 Score", marker="o") + plt.xlabel("Threshold") + plt.ylabel("F1 Score") + plt.title("F1 Score vs Threshold") + plt.grid(True) + plt.savefig(path_to_save / "f1_score_vs_threshold.png") + plt.close() + + # Find the best threshold based on F1 Score (last occurence) + best_idx = len(f1_scores) - np.argmax(f1_scores[::-1]) - 1 + best_threshold = thresholds[best_idx] + best_f1 = f1_scores[best_idx] + + logger.info( + f"Best Threshold: {round(best_threshold, 2)} with F1 Score: {round(best_f1, 3)}" + ) + + +def filter_preds(preds, conf_thresh): + for pred in preds: + keep_idxs = pred["scores"] >= conf_thresh + pred["scores"] = pred["scores"][keep_idxs] + pred["boxes"] = pred["boxes"][keep_idxs] + pred["labels"] = pred["labels"][keep_idxs] + return preds + + +def scale_boxes(boxes, orig_shape, resized_shape): + """ + boxes in format: [x1, y1, x2, y2], absolute values + orig_shape: [height, width] + resized_shape: [height, width] + """ + scale_x = orig_shape[1] / resized_shape[1] + scale_y = orig_shape[0] / resized_shape[0] + boxes[:, 0] *= scale_x + boxes[:, 2] *= scale_x + boxes[:, 1] *= scale_y + boxes[:, 3] *= scale_y + return boxes diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/__init__.py new file mode 100644 index 0000000..de38c3a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/__init__.py @@ -0,0 +1,6 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from . import dfine diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/__init__.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/__init__.py new file mode 100644 index 0000000..f61af2a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/__init__.py @@ -0,0 +1,11 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +from .dfine import DFINE +from .dfine_criterion import DFINECriterion +from .dfine_decoder import DFINETransformer +from .hybrid_encoder import HybridEncoder +from .matcher import HungarianMatcher +from .postprocessor import DFINEPostProcessor diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/blog.md b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/blog.md new file mode 100644 index 0000000..24abf57 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/blog.md @@ -0,0 +1,90 @@ +English Blog | [中文博客](blog_cn.md) + +## 🔥 Revolutionizing Real-Time Object Detection: D-FINE vs. YOLO and Other DETR Models + +In the rapidly evolving field of real-time object detection, **D-FINE** emerges as a revolutionary approach that significantly surpasses existing models like **YOLOv10**, **YOLO11**, and **RT-DETR v1/v2/v3**, raising the performance ceiling for real-time object detection. After pretraining on the large-scale dataset Objects365, **D-FINE** far exceeds its competitor **LW-DETR**, achieving up to **59.3%** AP on the COCO dataset while maintaining excellent frame rates, parameter counts, and computational complexity. This positions **D-FINE** as a leader in the realm of real-time object detection, laying the groundwork for future research advancements. + +Currently, all code, weights, logs, compilation tools, and the FiftyOne visualization tool for **D-FINE** have been fully open-sourced, thanks to the codebase provided by **RT-DETR**. This includes pretraining tutorials, custom dataset tutorials, and more. We will continue to update with improvement insights and tuning strategies. We welcome everyone to raise issues and collectively promote the **D-FINE** series. We also hope you can leave a ⭐; it's the best encouragement for us. + +**GitHub Repo**: https://github.com/Peterande/D-FINE + +**ArXiv Paper**: https://arxiv.org/abs/2410.13842 + +--- + +### 🔍 Exploring the Key Innovations Behind D-FINE + +**D-FINE** redefines the regression task in DETR-based object detectors as **FDR**, and based on this, develops a performance-enhancing self-distillation mechanism **GO-LSD**. Below is a brief introduction to **FDR** and **GO-LSD**: + +#### **FDR (Fine-grained Distribution Refinement)** Decouples the Bounding Box Generation Process: + +1. **Initial Box Prediction**: Similar to traditional DETR methods, the decoder of **D-FINE** transforms object queries into several initial bounding boxes in the first layer. These boxes do not need to be highly accurate and serve only as an initialization. +2. **Fine-Grained Distribution Optimization**: Unlike traditional methods that directly decode new bounding boxes, **D-FINE** generates four sets of probability distributions based on these initial bounding boxes in the decoder layers and iteratively optimizes these distributions layer by layer. These distributions essentially act as a "fine-grained intermediate representation" of the detection boxes. Coupled with a carefully designed weighting function **W(n)**, **D-FINE** can adjust the initial bounding boxes by fine-tuning these representations, allowing for subtle modifications or significant shifts of the edges (top, bottom, left, right). The specific process is illustrated in the figure: + +

+ Fine-grained Distribution Refinement Process +

+ +For readability, we will not elaborate on the mathematical formulas and the Fine-Grained Localization (FGL) Loss that aids optimization here. Interested readers can refer to the original paper for derivations. + +The main advantages of redefining the bounding box regression task as **FDR** are: + +1. **Simplified Supervision**: While optimizing detection boxes using traditional L1 loss and IoU loss, the "residual" between labels and predictions can be additionally used to constrain these intermediate probability distributions. This allows each decoder layer to more effectively focus on and address the localization errors it currently faces. As the number of layers increases, their optimization objectives become progressively simpler, thereby simplifying the overall optimization process. + +2. **Robustness in Complex Scenarios**: The values of these probability distributions inherently represent the confidence level of fine-tuning for each edge. This enables **D-FINE** to independently model the uncertainty of each edge at different network depths, thereby exhibiting stronger robustness in complex real-world scenarios such as occlusion, motion blur, and low-light conditions, compared to directly regressing four fixed values. + +3. **Flexible Optimization Mechanism**: The probability distributions are transformed into final bounding box offsets through a weighted sum. The carefully designed weighting function ensures fine-grained adjustments when the initial box is accurate and provides significant corrections when necessary. + +4. **Research Potential and Scalability**: By transforming the regression task into a probability distribution prediction problem consistent with classification tasks, **FDR** not only enhances compatibility with other tasks but also enables object detection models to benefit from innovations in areas such as knowledge distillation, multi-task learning, and distribution optimization, opening new avenues for future research. + +--- + +#### **GO-LSD (Global Optimal Localization Self-Distillation)** Integrates Knowledge Distillation into FDR-Based Detectors Seamlessly + +Based on the above, object detectors equipped with the **FDR** framework satisfy the following two points: + +1. **Ability to Achieve Knowledge Transfer**: As Hinton mentioned in the paper *"Distilling the Knowledge in a Neural Network"*, probabilities are "knowledge." The network's output becomes probability distributions, and these distributions carry localization knowledge. By calculating the KLD loss, this "knowledge" can be transferred from deeper layers to shallower layers. This is something that traditional fixed box representations (Dirac δ functions) cannot achieve. + +2. **Consistent Optimization Objectives**: Since each decoder layer in the **FDR** framework shares a common goal: reducing the residual between the initial bounding box and the ground truth bounding box, the precise probability distributions generated by the final layer can serve as the ultimate target for each preceding layer and guide them through distillation. + +Thus, based on **FDR**, we propose **GO-LSD (Global Optimal Localization Self-Distillation)**. By implementing localization knowledge distillation between network layers, we further extend the capabilities of **D-FINE**. The specific process is illustrated in the figure: + +

+ GO-LSD Process +

+ +Similarly, for readability, we will not elaborate on the mathematical formulas and the Decoupled Distillation Focal (DDF) Loss that aids optimization here. Interested readers can refer to the original paper for derivations. + +This results in a synergistic win-win effect: as training progresses, the predictions of the final layer become increasingly accurate, and its generated soft labels can better help the preceding layers improve prediction accuracy. Conversely, the earlier layers learn to localize accurately more quickly, simplifying the optimization tasks of the deeper layers and further enhancing overall accuracy. + +--- + +### Visualization of D-FINE Predictions + +The following visualization showcases **D-FINE**'s predictions in various complex detection scenarios. These scenarios include occlusion, low-light conditions, motion blur, depth-of-field effects, and densely populated scenes. Despite these challenges, **D-FINE** still produces accurate localization results. + +

+ D-FINE Predictions in Complex Scenarios +

+ +Additionally, the visualization below shows the prediction results of the first layer and the last layer, the corresponding distributions of the four edges, and the weighted distributions. It can be seen that the localization of the predicted boxes becomes more precise as the distributions are optimized. + +

+ +

+ +--- + +### Frequently Asked Questions + +#### Question 1: Will FDR and GO-LSD increase the inference cost? + +**Answer**: No, FDR and the original prediction have almost no difference in speed, parameter count, and computational complexity, making it a seamless replacement. + +#### Question 2: Will FDR and GO-LSD increase the training cost? + +**Answer**: The increase in training cost mainly comes from how to generate the labels of the distributions. We have optimized this process, keeping the increase in training time and memory consumption to 6% and 2%, respectively, making it almost negligible. + +#### Question 3: Why is D-FINE faster and more lightweight than the RT-DETR series? + +**Answer**: Directly applying FDR and GO-LSD will significantly improve performance but will not make the network faster or lighter. Therefore, we performed a series of lightweight optimizations on RT-DETR. These adjustments led to a performance drop, but our methods compensated for these losses, achieving a perfect balance of speed, parameters, computational complexity, and performance. diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/blog_cn.md b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/blog_cn.md new file mode 100644 index 0000000..04fd5df --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/blog_cn.md @@ -0,0 +1,90 @@ +[English Blog](blog.md) | 中文博客 + +## 🔥 革新实时目标检测:D-FINE 与 YOLO 和其他 DETR 模型的对比 + +在快速发展的实时目标检测领域,**D-FINE** 作为一项革命性的方法,显著超越了现有模型(如 **YOLOv10**、**YOLO11** 及 **RT-DETR v1/v2/v3**),提升了实时目标检测的性能上限。经过大规模数据集 Objects365 的预训练,**D-FINE** 远超其竞争对手 **LW-DETR**,在 COCO 数据集上实现了高达 **59.3%** 的 AP,同时保持了卓越的帧率、参数量和计算复杂度。这使得 **D-FINE** 成为实时目标检测领域的佼佼者,为未来的研究奠定了基础。 + +目前,D-FINE 的所有代码、权重、日志、编译工具,以及 FiftyOne 可视化工具已经全部开源,感谢 RT-DETR 提供的 codebase。其中还包括了预训练教程、自定义数据集教程等。之后还会陆续更新一些改进心得和调参攻略,欢迎大家多提 issue,共同将 D-FINE 系列发扬光大。同时希望您能随手留下一颗 ⭐,这是对我们最好的鼓励。 + +**Github Repo**: https://github.com/Peterande/D-FINE + +**Arxiv Paper**: https://arxiv.org/abs/2410.13842 + +--- + +### 🔍 探索 D-FINE 背后的关键创新 + +**D-FINE** 将基于 DETR 的目标检测器中的回归任务重新定义为 FDR,并在此基础上开发出了无感提升性能的自蒸馏机制 GO-LSD。下面对 FDR 和 GO-LSD 进行简要介绍: + +#### FDR (Fine-grained Distribution Refinement) 将检测框的生成过程拆解为: + +1. **初始框预测**:与传统 DETR 方法类似,**D-FINE** 的解码器 (decoder) 会在第一层将 object queries 转变为若干个初始的边界框,这些框不需要特别精准,仅作为一种初始化。 +2. **细粒度的分布优化**:**D-FINE** 解码层不会像传统方法那样直接解码出新的边界框,而是基于这些初始化的边界框,生成四组概率分布;并迭代地对这四组概率分布进行逐层优化。这些分布本质上是作为检测框的一种“细粒度中间表征”;配合精心设计的加权函数 W(n),**D-FINE** 能够通过微调这些表征来实现对初始边界框的调整,包含对其上下左右边缘进行细微的小幅度修正亦或是大幅度的搬移,具体的流程如图: + +

+ 精细分布优化过程 +

+ +为了方便阅读,我们不在此赘述数学公式及帮助优化的损失函数 Fine-Grained Localization (FGL) Loss,有兴趣的可以根据原文推导。 + +将边界框回归任务重新定义为 FDR 的主要优势在于: + +1. **简化的监督**:在使用传统的 L1 损失、IoU 损失优化检测框的同时,可以额外用标签和预测结果之间的“残差”来约束这些中间态的概率分布。这使每个解码层 (decoder layer) 能够更有效地关注并解决其当前面临的定位误差,随着层数加深,其优化目标变得越来越简单,从而简化了整体优化过程。 + +2. **复杂场景下的鲁棒性**:这些概率分布的值本质上代表了对每个边界“微调”的自信程度。这使 **D-FINE** 能够在不同网络深度独立建模每个边界的不确定性,从而在遮挡、运动模糊和低光照等复杂的实际场景下表现出更强的鲁棒性,相比直接回归四个固定值要更为稳健。 + +3. **灵活的优化机制**:概率分布通过加权求和转化为最终的边界框偏移值。精心设计的加权函数确保在初始框准确时进行细微调整,而在必要时则提供较大的修正。 + +4. **研究潜力与可扩展性**:FDR 通过将回归任务转变为同分类任务一致的概率分布预测问题,不仅提高了与其他任务的兼容性,还使得目标检测模型可以受益于知识蒸馏、多任务学习和分布优化等更多领域的创新,为未来的研究打开了新的大门。 + +--- + +#### GO-LSD (Global Optimal Localization Self-Distillation) 将知识蒸馏无痛应用到 FDR 框架检测器 + +根据上文,搭载 FDR 框架的目标检测器满足了以下两点: + +1. **能够实现知识传递**:Hinton 早在 *"Distilling the Knowledge in a Neural Network"* 一文中就说过:概率即“知识”;网络输出变成了概率分布,而概率分布携带定位知识 (Localization Knowledge),而通过计算 KLD 损失,可以将这些“知识”从深层传递到浅层。这是传统固定框表示(狄拉克 δ 函数)无法实现的。 + +2. **一致的优化目标**:由于 FDR 架构中每一个解码层都共享一个共同目标:减少初始边界框与真实边界框之间的残差;因此最后一层生成的精确概率分布可以作为前面每一层的最终目标,并通过蒸馏引导前几层。 + +于是,基于 FDR,我们提出了 GO-LSD(全局最优定位自蒸馏)。通过在网络层间实现定位知识蒸馏,进一步扩展了 **D-FINE** 的能力,具体流程如图: + +

+ GO-LSD过程 +

+ +同样的,为了方便阅读,我们不在此赘述数学公式及帮助优化的损失函数 Decoupled Distillation Focal (DDF) Loss,有兴趣的可以根据原文推导。 + +这产生了一种双赢的协同效应:随着训练的进行,最后一层的预测变得越来越准确,其生成的软标签能够更好地帮助前几层提高预测准确性。反过来,前几层学会更快地定位到准确位置,简化了深层的优化任务,进一步提高了整体准确性。 + +--- + +### D-FINE 预测的可视化 + +以下可视化展示了 **D-FINE** 在各种复杂检测场景中的预测结果。这些场景包括遮挡、低光照、运动模糊、景深效果和密集场景。尽管面对这些挑战,**D-FINE** 依然能够产生准确的定位结果。 + +

+ D-FINE在复杂场景中的预测 +

+ +同时下面给出的可视化结果展示了第一层和最后一层的预测结果、对应四条边的分布、以及加权后的分布。可以看到,预测框的定位会随着分布的优化而变得更加精准。 + +

+ +

+ +--- + +### 常见问题解答 + +#### 问题1:FDR 和 GO-LSD 会带来更多的推理成本吗? + +**回答**:并不会,FDR 和原始的预测几乎没有在速度、参数量和计算复杂度上的任何区别,完全是无感替换。 + +#### 问题2:FDR 和 GO-LSD 会带来更多的训练成本吗? + +**回答**:训练成本的增加主要来源于如何生成分布的标签。我们已经对该过程进行了优化,将额外训练时长和显存占用控制在了 6% 和 2%,几乎无感。 + +#### 问题3:D-FINE 为什么会比 RT-DETR 系列更快、更轻量? + +**回答**:直接应用 FDR 和 GO-LSD 只会显著提高性能,并不会让网络更快、更轻。所以我们对 RT-DETR 进行了一系列的轻量化处理,这些处理带来了性能的下降,但我们的方法弥补了这些损失,实现了速度-参数-计算量-性能的完美平衡。 diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/box_ops.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/box_ops.py new file mode 100644 index 0000000..1e2acba --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/box_ops.py @@ -0,0 +1,93 @@ +""" +# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved +https://github.com/facebookresearch/detr/blob/main/util/box_ops.py +""" + +import torch +from torch import Tensor +from torchvision.ops.boxes import box_area + + +def box_cxcywh_to_xyxy(x): + x_c, y_c, w, h = x.unbind(-1) + b = [ + (x_c - 0.5 * w.clamp(min=0.0)), + (y_c - 0.5 * h.clamp(min=0.0)), + (x_c + 0.5 * w.clamp(min=0.0)), + (y_c + 0.5 * h.clamp(min=0.0)), + ] + return torch.stack(b, dim=-1) + + +def box_xyxy_to_cxcywh(x: Tensor) -> Tensor: + x0, y0, x1, y1 = x.unbind(-1) + b = [(x0 + x1) / 2, (y0 + y1) / 2, (x1 - x0), (y1 - y0)] + return torch.stack(b, dim=-1) + + +# modified from torchvision to also return the union +def box_iou(boxes1: Tensor, boxes2: Tensor): + area1 = box_area(boxes1) + area2 = box_area(boxes2) + + lt = torch.max(boxes1[:, None, :2], boxes2[:, :2]) # [N,M,2] + rb = torch.min(boxes1[:, None, 2:], boxes2[:, 2:]) # [N,M,2] + + wh = (rb - lt).clamp(min=0) # [N,M,2] + inter = wh[:, :, 0] * wh[:, :, 1] # [N,M] + + union = area1[:, None] + area2 - inter + + iou = inter / union + return iou, union + + +def generalized_box_iou(boxes1, boxes2): + """ + Generalized IoU from https://giou.stanford.edu/ + + The boxes should be in [x0, y0, x1, y1] format + + Returns a [N, M] pairwise matrix, where N = len(boxes1) + and M = len(boxes2) + """ + # degenerate boxes gives inf / nan results + # so do an early check + assert (boxes1[:, 2:] >= boxes1[:, :2]).all() + assert (boxes2[:, 2:] >= boxes2[:, :2]).all() + iou, union = box_iou(boxes1, boxes2) + + lt = torch.min(boxes1[:, None, :2], boxes2[:, :2]) + rb = torch.max(boxes1[:, None, 2:], boxes2[:, 2:]) + + wh = (rb - lt).clamp(min=0) # [N,M,2] + area = wh[:, :, 0] * wh[:, :, 1] + + return iou - (area - union) / area + + +def masks_to_boxes(masks): + """Compute the bounding boxes around the provided masks + + The masks should be in format [N, H, W] where N is the number of masks, (H, W) are the spatial dimensions. + + Returns a [N, 4] tensors, with the boxes in xyxy format + """ + if masks.numel() == 0: + return torch.zeros((0, 4), device=masks.device) + + h, w = masks.shape[-2:] + + y = torch.arange(0, h, dtype=torch.float) + x = torch.arange(0, w, dtype=torch.float) + y, x = torch.meshgrid(y, x) + + x_mask = masks * x.unsqueeze(0) + x_max = x_mask.flatten(1).max(-1)[0] + x_min = x_mask.masked_fill(~(masks.bool()), 1e8).flatten(1).min(-1)[0] + + y_mask = masks * y.unsqueeze(0) + y_max = y_mask.flatten(1).max(-1)[0] + y_min = y_mask.masked_fill(~(masks.bool()), 1e8).flatten(1).min(-1)[0] + + return torch.stack([x_min, y_min, x_max, y_max], 1) diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/denoising.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/denoising.py new file mode 100644 index 0000000..4d2409a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/denoising.py @@ -0,0 +1,121 @@ +"""Copyright(c) 2023 lyuwenyu. All Rights Reserved. +Modifications Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import torch + +from .box_ops import box_cxcywh_to_xyxy, box_xyxy_to_cxcywh +from .utils import inverse_sigmoid + + +def get_contrastive_denoising_training_group( + targets, + num_classes, + num_queries, + class_embed, + num_denoising=100, + label_noise_ratio=0.5, + box_noise_scale=1.0, +): + """cnd""" + if num_denoising <= 0: + return None, None, None, None + + num_gts = [len(t["labels"]) for t in targets] + device = targets[0]["labels"].device + + max_gt_num = max(num_gts) + if max_gt_num == 0: + dn_meta = {"dn_positive_idx": None, "dn_num_group": 0, "dn_num_split": [0, num_queries]} + return None, None, None, dn_meta + + num_group = num_denoising // max_gt_num + num_group = 1 if num_group == 0 else num_group + # pad gt to max_num of a batch + bs = len(num_gts) + + input_query_class = torch.full([bs, max_gt_num], num_classes, dtype=torch.int32, device=device) + input_query_bbox = torch.zeros([bs, max_gt_num, 4], device=device) + pad_gt_mask = torch.zeros([bs, max_gt_num], dtype=torch.bool, device=device) + + for i in range(bs): + num_gt = num_gts[i] + if num_gt > 0: + input_query_class[i, :num_gt] = targets[i]["labels"] + input_query_bbox[i, :num_gt] = targets[i]["boxes"] + pad_gt_mask[i, :num_gt] = 1 + # each group has positive and negative queries. + input_query_class = input_query_class.tile([1, 2 * num_group]) + input_query_bbox = input_query_bbox.tile([1, 2 * num_group, 1]) + pad_gt_mask = pad_gt_mask.tile([1, 2 * num_group]) + # positive and negative mask + negative_gt_mask = torch.zeros([bs, max_gt_num * 2, 1], device=device) + negative_gt_mask[:, max_gt_num:] = 1 + negative_gt_mask = negative_gt_mask.tile([1, num_group, 1]) + positive_gt_mask = 1 - negative_gt_mask + # contrastive denoising training positive index + positive_gt_mask = positive_gt_mask.squeeze(-1) * pad_gt_mask + dn_positive_idx = torch.nonzero(positive_gt_mask)[:, 1] + dn_positive_idx = torch.split(dn_positive_idx, [n * num_group for n in num_gts]) + # total denoising queries + num_denoising = int(max_gt_num * 2 * num_group) + + if label_noise_ratio > 0: + mask = torch.rand_like(input_query_class, dtype=torch.float) < (label_noise_ratio * 0.5) + # randomly put a new one here + new_label = torch.randint_like(mask, 0, num_classes, dtype=input_query_class.dtype) + input_query_class = torch.where(mask & pad_gt_mask, new_label, input_query_class) + + if box_noise_scale > 0: + known_bbox = box_cxcywh_to_xyxy(input_query_bbox) + diff = torch.tile(input_query_bbox[..., 2:] * 0.5, [1, 1, 2]) * box_noise_scale + rand_sign = torch.randint_like(input_query_bbox, 0, 2) * 2.0 - 1.0 + rand_part = torch.rand_like(input_query_bbox) + rand_part = (rand_part + 1.0) * negative_gt_mask + rand_part * (1 - negative_gt_mask) + # shrink_mask = torch.zeros_like(rand_sign) + # shrink_mask[:, :, :2] = (rand_sign[:, :, :2] == 1) # rand_sign == 1 → (x1, y1) ↘ → smaller bbox + # shrink_mask[:, :, 2:] = (rand_sign[:, :, 2:] == -1) # rand_sign == -1 → (x2, y2) ↖ → smaller bbox + # mask = rand_part > (upper_bound / (upper_bound+1)) + # # this is to make sure the dn bbox can be reversed to the original bbox by dfine head. + # rand_sign = torch.where((shrink_mask * (1 - negative_gt_mask) * mask).bool(), \ + # rand_sign * upper_bound / (upper_bound+1) / rand_part, rand_sign) + known_bbox += rand_sign * rand_part * diff + known_bbox = torch.clip(known_bbox, min=0.0, max=1.0) + input_query_bbox = box_xyxy_to_cxcywh(known_bbox) + input_query_bbox[input_query_bbox < 0] *= -1 + input_query_bbox_unact = inverse_sigmoid(input_query_bbox) + + input_query_logits = class_embed(input_query_class) + + tgt_size = num_denoising + num_queries + attn_mask = torch.full([tgt_size, tgt_size], False, dtype=torch.bool, device=device) + # match query cannot see the reconstruction + attn_mask[num_denoising:, :num_denoising] = True + + # reconstruct cannot see each other + for i in range(num_group): + if i == 0: + attn_mask[ + max_gt_num * 2 * i : max_gt_num * 2 * (i + 1), + max_gt_num * 2 * (i + 1) : num_denoising, + ] = True + if i == num_group - 1: + attn_mask[max_gt_num * 2 * i : max_gt_num * 2 * (i + 1), : max_gt_num * i * 2] = True + else: + attn_mask[ + max_gt_num * 2 * i : max_gt_num * 2 * (i + 1), + max_gt_num * 2 * (i + 1) : num_denoising, + ] = True + attn_mask[max_gt_num * 2 * i : max_gt_num * 2 * (i + 1), : max_gt_num * 2 * i] = True + + dn_meta = { + "dn_positive_idx": dn_positive_idx, + "dn_num_group": num_group, + "dn_num_split": [num_denoising, num_queries], + } + + # print(input_query_class.shape) # torch.Size([4, 196, 256]) + # print(input_query_bbox.shape) # torch.Size([4, 196, 4]) + # print(attn_mask.shape) # torch.Size([496, 496]) + + return input_query_logits, input_query_bbox_unact, attn_mask, dn_meta diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine.py new file mode 100644 index 0000000..b83bd99 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine.py @@ -0,0 +1,47 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import torch.nn as nn + +from ...core import register + +__all__ = [ + "DFINE", +] + + +@register() +class DFINE(nn.Module): + __inject__ = [ + "backbone", + "encoder", + "decoder", + ] + + def __init__( + self, + backbone: nn.Module, + encoder: nn.Module, + decoder: nn.Module, + ): + super().__init__() + self.backbone = backbone + self.decoder = decoder + self.encoder = encoder + + def forward(self, x, targets=None): + x = self.backbone(x) + x = self.encoder(x) + x = self.decoder(x, targets) + + return x + + def deploy( + self, + ): + self.eval() + for m in self.modules(): + if hasattr(m, "convert_to_deploy"): + m.convert_to_deploy() + return self diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_criterion.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_criterion.py new file mode 100644 index 0000000..954d42b --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_criterion.py @@ -0,0 +1,525 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import copy + +import torch +import torch.distributed +import torch.nn as nn +import torch.nn.functional as F +import torchvision + +from ...core import register +from ...misc.dist_utils import get_world_size, is_dist_available_and_initialized +from .box_ops import box_cxcywh_to_xyxy, box_iou, generalized_box_iou +from .dfine_utils import bbox2distance + + +@register() +class DFINECriterion(nn.Module): + """This class computes the loss for D-FINE.""" + + __share__ = [ + "num_classes", + ] + __inject__ = [ + "matcher", + ] + + def __init__( + self, + matcher, + weight_dict, + losses, + alpha=0.2, + gamma=2.0, + num_classes=80, + reg_max=32, + boxes_weight_format=None, + share_matched_indices=False, + ): + """Create the criterion. + Parameters: + matcher: module able to compute a matching between targets and proposals. + weight_dict: dict containing as key the names of the losses and as values their relative weight. + losses: list of all the losses to be applied. See get_loss for list of available losses. + num_classes: number of object categories, omitting the special no-object category. + reg_max (int): Max number of the discrete bins in D-FINE. + boxes_weight_format: format for boxes weight (iou, ). + """ + super().__init__() + self.num_classes = num_classes + self.matcher = matcher + self.weight_dict = weight_dict + self.losses = losses + self.boxes_weight_format = boxes_weight_format + self.share_matched_indices = share_matched_indices + self.alpha = alpha + self.gamma = gamma + self.fgl_targets, self.fgl_targets_dn = None, None + self.own_targets, self.own_targets_dn = None, None + self.reg_max = reg_max + self.num_pos, self.num_neg = None, None + + def loss_labels_focal(self, outputs, targets, indices, num_boxes): + assert "pred_logits" in outputs + src_logits = outputs["pred_logits"] + idx = self._get_src_permutation_idx(indices) + target_classes_o = torch.cat([t["labels"][J] for t, (_, J) in zip(targets, indices)]) + target_classes = torch.full( + src_logits.shape[:2], self.num_classes, dtype=torch.int64, device=src_logits.device + ) + target_classes[idx] = target_classes_o + target = F.one_hot(target_classes, num_classes=self.num_classes + 1)[..., :-1] + loss = torchvision.ops.sigmoid_focal_loss( + src_logits, target, self.alpha, self.gamma, reduction="none" + ) + loss = loss.mean(1).sum() * src_logits.shape[1] / num_boxes + + return {"loss_focal": loss} + + def loss_labels_vfl(self, outputs, targets, indices, num_boxes, values=None): + assert "pred_boxes" in outputs + idx = self._get_src_permutation_idx(indices) + if values is None: + src_boxes = outputs["pred_boxes"][idx] + target_boxes = torch.cat([t["boxes"][i] for t, (_, i) in zip(targets, indices)], dim=0) + ious, _ = box_iou(box_cxcywh_to_xyxy(src_boxes), box_cxcywh_to_xyxy(target_boxes)) + ious = torch.diag(ious).detach() + else: + ious = values + + src_logits = outputs["pred_logits"] + target_classes_o = torch.cat([t["labels"][J] for t, (_, J) in zip(targets, indices)]) + target_classes = torch.full( + src_logits.shape[:2], self.num_classes, dtype=torch.int64, device=src_logits.device + ) + target_classes[idx] = target_classes_o + target = F.one_hot(target_classes, num_classes=self.num_classes + 1)[..., :-1] + + target_score_o = torch.zeros_like(target_classes, dtype=src_logits.dtype) + target_score_o[idx] = ious.to(target_score_o.dtype) + target_score = target_score_o.unsqueeze(-1) * target + + pred_score = F.sigmoid(src_logits).detach() + weight = self.alpha * pred_score.pow(self.gamma) * (1 - target) + target_score + + loss = F.binary_cross_entropy_with_logits( + src_logits, target_score, weight=weight, reduction="none" + ) + loss = loss.mean(1).sum() * src_logits.shape[1] / num_boxes + return {"loss_vfl": loss} + + def loss_boxes(self, outputs, targets, indices, num_boxes, boxes_weight=None): + """Compute the losses related to the bounding boxes, the L1 regression loss and the GIoU loss + targets dicts must contain the key "boxes" containing a tensor of dim [nb_target_boxes, 4] + The target boxes are expected in format (center_x, center_y, w, h), normalized by the image size. + """ + assert "pred_boxes" in outputs + idx = self._get_src_permutation_idx(indices) + src_boxes = outputs["pred_boxes"][idx] + target_boxes = torch.cat([t["boxes"][i] for t, (_, i) in zip(targets, indices)], dim=0) + losses = {} + loss_bbox = F.l1_loss(src_boxes, target_boxes, reduction="none") + losses["loss_bbox"] = loss_bbox.sum() / num_boxes + + loss_giou = 1 - torch.diag( + generalized_box_iou(box_cxcywh_to_xyxy(src_boxes), box_cxcywh_to_xyxy(target_boxes)) + ) + loss_giou = loss_giou if boxes_weight is None else loss_giou * boxes_weight + losses["loss_giou"] = loss_giou.sum() / num_boxes + + return losses + + def loss_local(self, outputs, targets, indices, num_boxes, T=5): + """Compute Fine-Grained Localization (FGL) Loss + and Decoupled Distillation Focal (DDF) Loss.""" + + losses = {} + if "pred_corners" in outputs: + idx = self._get_src_permutation_idx(indices) + target_boxes = torch.cat([t["boxes"][i] for t, (_, i) in zip(targets, indices)], dim=0) + + pred_corners = outputs["pred_corners"][idx].reshape(-1, (self.reg_max + 1)) + ref_points = outputs["ref_points"][idx].detach() + with torch.no_grad(): + if self.fgl_targets_dn is None and "is_dn" in outputs: + self.fgl_targets_dn = bbox2distance( + ref_points, + box_cxcywh_to_xyxy(target_boxes), + self.reg_max, + outputs["reg_scale"], + outputs["up"], + ) + if self.fgl_targets is None and "is_dn" not in outputs: + self.fgl_targets = bbox2distance( + ref_points, + box_cxcywh_to_xyxy(target_boxes), + self.reg_max, + outputs["reg_scale"], + outputs["up"], + ) + + target_corners, weight_right, weight_left = ( + self.fgl_targets_dn if "is_dn" in outputs else self.fgl_targets + ) + + ious = torch.diag( + box_iou( + box_cxcywh_to_xyxy(outputs["pred_boxes"][idx]), box_cxcywh_to_xyxy(target_boxes) + )[0] + ) + weight_targets = ious.unsqueeze(-1).repeat(1, 1, 4).reshape(-1).detach() + + losses["loss_fgl"] = self.unimodal_distribution_focal_loss( + pred_corners, + target_corners, + weight_right, + weight_left, + weight_targets, + avg_factor=num_boxes, + ) + + if "teacher_corners" in outputs: + pred_corners = outputs["pred_corners"].reshape(-1, (self.reg_max + 1)) + target_corners = outputs["teacher_corners"].reshape(-1, (self.reg_max + 1)) + if torch.equal(pred_corners, target_corners): + losses["loss_ddf"] = pred_corners.sum() * 0 + else: + weight_targets_local = outputs["teacher_logits"].sigmoid().max(dim=-1)[0] + + mask = torch.zeros_like(weight_targets_local, dtype=torch.bool) + mask[idx] = True + mask = mask.unsqueeze(-1).repeat(1, 1, 4).reshape(-1) + + weight_targets_local[idx] = ious.reshape_as(weight_targets_local[idx]).to( + weight_targets_local.dtype + ) + weight_targets_local = ( + weight_targets_local.unsqueeze(-1).repeat(1, 1, 4).reshape(-1).detach() + ) + + loss_match_local = ( + weight_targets_local + * (T**2) + * ( + nn.KLDivLoss(reduction="none")( + F.log_softmax(pred_corners / T, dim=1), + F.softmax(target_corners.detach() / T, dim=1), + ) + ).sum(-1) + ) + if "is_dn" not in outputs: + batch_scale = ( + 8 / outputs["pred_boxes"].shape[0] + ) # Avoid the influence of batch size per GPU + self.num_pos, self.num_neg = ( + (mask.sum() * batch_scale) ** 0.5, + ((~mask).sum() * batch_scale) ** 0.5, + ) + loss_match_local1 = loss_match_local[mask].mean() if mask.any() else 0 + loss_match_local2 = loss_match_local[~mask].mean() if (~mask).any() else 0 + losses["loss_ddf"] = ( + loss_match_local1 * self.num_pos + loss_match_local2 * self.num_neg + ) / (self.num_pos + self.num_neg) + + return losses + + def _get_src_permutation_idx(self, indices): + # permute predictions following indices + batch_idx = torch.cat([torch.full_like(src, i) for i, (src, _) in enumerate(indices)]) + src_idx = torch.cat([src for (src, _) in indices]) + return batch_idx, src_idx + + def _get_tgt_permutation_idx(self, indices): + # permute targets following indices + batch_idx = torch.cat([torch.full_like(tgt, i) for i, (_, tgt) in enumerate(indices)]) + tgt_idx = torch.cat([tgt for (_, tgt) in indices]) + return batch_idx, tgt_idx + + def _get_go_indices(self, indices, indices_aux_list): + """Get a matching union set across all decoder layers.""" + results = [] + for indices_aux in indices_aux_list: + indices = [ + (torch.cat([idx1[0], idx2[0]]), torch.cat([idx1[1], idx2[1]])) + for idx1, idx2 in zip(indices.copy(), indices_aux.copy()) + ] + + for ind in [torch.cat([idx[0][:, None], idx[1][:, None]], 1) for idx in indices]: + unique, counts = torch.unique(ind, return_counts=True, dim=0) + count_sort_indices = torch.argsort(counts, descending=True) + unique_sorted = unique[count_sort_indices] + column_to_row = {} + for idx in unique_sorted: + row_idx, col_idx = idx[0].item(), idx[1].item() + if row_idx not in column_to_row: + column_to_row[row_idx] = col_idx + final_rows = torch.tensor(list(column_to_row.keys()), device=ind.device) + final_cols = torch.tensor(list(column_to_row.values()), device=ind.device) + results.append((final_rows.long(), final_cols.long())) + return results + + def _clear_cache(self): + self.fgl_targets, self.fgl_targets_dn = None, None + self.own_targets, self.own_targets_dn = None, None + self.num_pos, self.num_neg = None, None + + def get_loss(self, loss, outputs, targets, indices, num_boxes, **kwargs): + loss_map = { + "boxes": self.loss_boxes, + "focal": self.loss_labels_focal, + "vfl": self.loss_labels_vfl, + "local": self.loss_local, + } + assert loss in loss_map, f"do you really want to compute {loss} loss?" + return loss_map[loss](outputs, targets, indices, num_boxes, **kwargs) + + def forward(self, outputs, targets, **kwargs): + """This performs the loss computation. + Parameters: + outputs: dict of tensors, see the output specification of the model for the format + targets: list of dicts, such that len(targets) == batch_size. + The expected keys in each dict depends on the losses applied, see each loss' doc + """ + outputs_without_aux = {k: v for k, v in outputs.items() if "aux" not in k} + + # Retrieve the matching between the outputs of the last layer and the targets + indices = self.matcher(outputs_without_aux, targets)["indices"] + self._clear_cache() + + # Get the matching union set across all decoder layers. + if "aux_outputs" in outputs: + indices_aux_list, cached_indices, cached_indices_enc = [], [], [] + for i, aux_outputs in enumerate(outputs["aux_outputs"] + [outputs["pre_outputs"]]): + indices_aux = self.matcher(aux_outputs, targets)["indices"] + cached_indices.append(indices_aux) + indices_aux_list.append(indices_aux) + for i, aux_outputs in enumerate(outputs["enc_aux_outputs"]): + indices_enc = self.matcher(aux_outputs, targets)["indices"] + cached_indices_enc.append(indices_enc) + indices_aux_list.append(indices_enc) + indices_go = self._get_go_indices(indices, indices_aux_list) + + num_boxes_go = sum(len(x[0]) for x in indices_go) + num_boxes_go = torch.as_tensor( + [num_boxes_go], dtype=torch.float, device=next(iter(outputs.values())).device + ) + if is_dist_available_and_initialized(): + torch.distributed.all_reduce(num_boxes_go) + num_boxes_go = torch.clamp(num_boxes_go / get_world_size(), min=1).item() + else: + assert "aux_outputs" in outputs, "" + + # Compute the average number of target boxes accross all nodes, for normalization purposes + num_boxes = sum(len(t["labels"]) for t in targets) + num_boxes = torch.as_tensor( + [num_boxes], dtype=torch.float, device=next(iter(outputs.values())).device + ) + if is_dist_available_and_initialized(): + torch.distributed.all_reduce(num_boxes) + num_boxes = torch.clamp(num_boxes / get_world_size(), min=1).item() + + # Compute all the requested losses + losses = {} + for loss in self.losses: + indices_in = indices_go if loss in ["boxes", "local"] else indices + num_boxes_in = num_boxes_go if loss in ["boxes", "local"] else num_boxes + meta = self.get_loss_meta_info(loss, outputs, targets, indices_in) + l_dict = self.get_loss(loss, outputs, targets, indices_in, num_boxes_in, **meta) + l_dict = {k: l_dict[k] * self.weight_dict[k] for k in l_dict if k in self.weight_dict} + losses.update(l_dict) + + # In case of auxiliary losses, we repeat this process with the output of each intermediate layer. + if "aux_outputs" in outputs: + for i, aux_outputs in enumerate(outputs["aux_outputs"]): + aux_outputs["up"], aux_outputs["reg_scale"] = outputs["up"], outputs["reg_scale"] + for loss in self.losses: + indices_in = indices_go if loss in ["boxes", "local"] else cached_indices[i] + num_boxes_in = num_boxes_go if loss in ["boxes", "local"] else num_boxes + meta = self.get_loss_meta_info(loss, aux_outputs, targets, indices_in) + l_dict = self.get_loss( + loss, aux_outputs, targets, indices_in, num_boxes_in, **meta + ) + + l_dict = { + k: l_dict[k] * self.weight_dict[k] for k in l_dict if k in self.weight_dict + } + l_dict = {k + f"_aux_{i}": v for k, v in l_dict.items()} + losses.update(l_dict) + + # In case of auxiliary traditional head output at first decoder layer. + if "pre_outputs" in outputs: + aux_outputs = outputs["pre_outputs"] + for loss in self.losses: + indices_in = indices_go if loss in ["boxes", "local"] else cached_indices[-1] + num_boxes_in = num_boxes_go if loss in ["boxes", "local"] else num_boxes + meta = self.get_loss_meta_info(loss, aux_outputs, targets, indices_in) + l_dict = self.get_loss(loss, aux_outputs, targets, indices_in, num_boxes_in, **meta) + + l_dict = { + k: l_dict[k] * self.weight_dict[k] for k in l_dict if k in self.weight_dict + } + l_dict = {k + "_pre": v for k, v in l_dict.items()} + losses.update(l_dict) + + # In case of encoder auxiliary losses. + if "enc_aux_outputs" in outputs: + assert "enc_meta" in outputs, "" + class_agnostic = outputs["enc_meta"]["class_agnostic"] + if class_agnostic: + orig_num_classes = self.num_classes + self.num_classes = 1 + enc_targets = copy.deepcopy(targets) + for t in enc_targets: + t["labels"] = torch.zeros_like(t["labels"]) + else: + enc_targets = targets + + for i, aux_outputs in enumerate(outputs["enc_aux_outputs"]): + for loss in self.losses: + indices_in = indices_go if loss == "boxes" else cached_indices_enc[i] + num_boxes_in = num_boxes_go if loss == "boxes" else num_boxes + meta = self.get_loss_meta_info(loss, aux_outputs, enc_targets, indices_in) + l_dict = self.get_loss( + loss, aux_outputs, enc_targets, indices_in, num_boxes_in, **meta + ) + l_dict = { + k: l_dict[k] * self.weight_dict[k] for k in l_dict if k in self.weight_dict + } + l_dict = {k + f"_enc_{i}": v for k, v in l_dict.items()} + losses.update(l_dict) + + if class_agnostic: + self.num_classes = orig_num_classes + + # In case of cdn auxiliary losses. For dfine + if "dn_outputs" in outputs: + assert "dn_meta" in outputs, "" + indices_dn = self.get_cdn_matched_indices(outputs["dn_meta"], targets) + dn_num_boxes = num_boxes * outputs["dn_meta"]["dn_num_group"] + dn_num_boxes = dn_num_boxes if dn_num_boxes > 0 else 1 + + for i, aux_outputs in enumerate(outputs["dn_outputs"]): + aux_outputs["is_dn"] = True + aux_outputs["up"], aux_outputs["reg_scale"] = outputs["up"], outputs["reg_scale"] + for loss in self.losses: + meta = self.get_loss_meta_info(loss, aux_outputs, targets, indices_dn) + l_dict = self.get_loss( + loss, aux_outputs, targets, indices_dn, dn_num_boxes, **meta + ) + l_dict = { + k: l_dict[k] * self.weight_dict[k] for k in l_dict if k in self.weight_dict + } + l_dict = {k + f"_dn_{i}": v for k, v in l_dict.items()} + losses.update(l_dict) + + # In case of auxiliary traditional head output at first decoder layer. + if "dn_pre_outputs" in outputs: + aux_outputs = outputs["dn_pre_outputs"] + for loss in self.losses: + meta = self.get_loss_meta_info(loss, aux_outputs, targets, indices_dn) + l_dict = self.get_loss( + loss, aux_outputs, targets, indices_dn, dn_num_boxes, **meta + ) + l_dict = { + k: l_dict[k] * self.weight_dict[k] for k in l_dict if k in self.weight_dict + } + l_dict = {k + "_dn_pre": v for k, v in l_dict.items()} + losses.update(l_dict) + + # For debugging Objects365 pre-train. + losses = {k: torch.nan_to_num(v, nan=0.0) for k, v in losses.items()} + return losses + + def get_loss_meta_info(self, loss, outputs, targets, indices): + if self.boxes_weight_format is None: + return {} + + src_boxes = outputs["pred_boxes"][self._get_src_permutation_idx(indices)] + target_boxes = torch.cat([t["boxes"][j] for t, (_, j) in zip(targets, indices)], dim=0) + + if self.boxes_weight_format == "iou": + iou, _ = box_iou( + box_cxcywh_to_xyxy(src_boxes.detach()), box_cxcywh_to_xyxy(target_boxes) + ) + iou = torch.diag(iou) + elif self.boxes_weight_format == "giou": + iou = torch.diag( + generalized_box_iou( + box_cxcywh_to_xyxy(src_boxes.detach()), box_cxcywh_to_xyxy(target_boxes) + ) + ) + else: + raise AttributeError() + + if loss in ("boxes",): + meta = {"boxes_weight": iou} + elif loss in ("vfl",): + meta = {"values": iou} + else: + meta = {} + + return meta + + @staticmethod + def get_cdn_matched_indices(dn_meta, targets): + """get_cdn_matched_indices""" + dn_positive_idx, dn_num_group = dn_meta["dn_positive_idx"], dn_meta["dn_num_group"] + num_gts = [len(t["labels"]) for t in targets] + device = targets[0]["labels"].device + + dn_match_indices = [] + for i, num_gt in enumerate(num_gts): + if num_gt > 0: + gt_idx = torch.arange(num_gt, dtype=torch.int64, device=device) + gt_idx = gt_idx.tile(dn_num_group) + assert len(dn_positive_idx[i]) == len(gt_idx) + dn_match_indices.append((dn_positive_idx[i], gt_idx)) + else: + dn_match_indices.append( + ( + torch.zeros(0, dtype=torch.int64, device=device), + torch.zeros(0, dtype=torch.int64, device=device), + ) + ) + + return dn_match_indices + + def feature_loss_function(self, fea, target_fea): + loss = (fea - target_fea) ** 2 * ((fea > 0) | (target_fea > 0)).float() + return torch.abs(loss) + + def unimodal_distribution_focal_loss( + self, pred, label, weight_right, weight_left, weight=None, reduction="sum", avg_factor=None + ): + dis_left = label.long() + dis_right = dis_left + 1 + + loss = F.cross_entropy(pred, dis_left, reduction="none") * weight_left.reshape( + -1 + ) + F.cross_entropy(pred, dis_right, reduction="none") * weight_right.reshape(-1) + + if weight is not None: + weight = weight.float() + loss = loss * weight + + if avg_factor is not None: + loss = loss.sum() / avg_factor + elif reduction == "mean": + loss = loss.mean() + elif reduction == "sum": + loss = loss.sum() + + return loss + + def get_gradual_steps(self, outputs): + num_layers = len(outputs["aux_outputs"]) + 1 if "aux_outputs" in outputs else 1 + step = 0.5 / (num_layers - 1) + opt_list = [0.5 + step * i for i in range(num_layers)] if num_layers > 1 else [1] + return opt_list diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_decoder.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_decoder.py new file mode 100644 index 0000000..d7c77f7 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_decoder.py @@ -0,0 +1,959 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import copy +import functools +import math +from collections import OrderedDict +from typing import List + +import torch +import torch.nn as nn +import torch.nn.functional as F +import torch.nn.init as init + +from ...core import register +from .denoising import get_contrastive_denoising_training_group +from .dfine_utils import distance2bbox, weighting_function +from .utils import ( + bias_init_with_prob, + deformable_attention_core_func_v2, + get_activation, + inverse_sigmoid, +) + +__all__ = ["DFINETransformer"] + + +class MLP(nn.Module): + def __init__(self, input_dim, hidden_dim, output_dim, num_layers, act="relu"): + super().__init__() + self.num_layers = num_layers + h = [hidden_dim] * (num_layers - 1) + self.layers = nn.ModuleList( + nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim]) + ) + self.act = get_activation(act) + + def forward(self, x): + for i, layer in enumerate(self.layers): + x = self.act(layer(x)) if i < self.num_layers - 1 else layer(x) + return x + + +class MSDeformableAttention(nn.Module): + def __init__( + self, + embed_dim=256, + num_heads=8, + num_levels=4, + num_points=4, + method="default", + offset_scale=0.5, + ): + """Multi-Scale Deformable Attention""" + super(MSDeformableAttention, self).__init__() + self.embed_dim = embed_dim + self.num_heads = num_heads + self.num_levels = num_levels + self.offset_scale = offset_scale + + if isinstance(num_points, list): + assert len(num_points) == num_levels, "" + num_points_list = num_points + else: + num_points_list = [num_points for _ in range(num_levels)] + + self.num_points_list = num_points_list + + num_points_scale = [1 / n for n in num_points_list for _ in range(n)] + self.register_buffer( + "num_points_scale", torch.tensor(num_points_scale, dtype=torch.float32) + ) + + self.total_points = num_heads * sum(num_points_list) + self.method = method + + self.head_dim = embed_dim // num_heads + assert ( + self.head_dim * num_heads == self.embed_dim + ), "embed_dim must be divisible by num_heads" + + self.sampling_offsets = nn.Linear(embed_dim, self.total_points * 2) + self.attention_weights = nn.Linear(embed_dim, self.total_points) + + self.ms_deformable_attn_core = functools.partial( + deformable_attention_core_func_v2, method=self.method + ) + + self._reset_parameters() + + if method == "discrete": + for p in self.sampling_offsets.parameters(): + p.requires_grad = False + + def _reset_parameters(self): + # sampling_offsets + init.constant_(self.sampling_offsets.weight, 0) + thetas = torch.arange(self.num_heads, dtype=torch.float32) * ( + 2.0 * math.pi / self.num_heads + ) + grid_init = torch.stack([thetas.cos(), thetas.sin()], -1) + grid_init = grid_init / grid_init.abs().max(-1, keepdim=True).values + grid_init = grid_init.reshape(self.num_heads, 1, 2).tile([1, sum(self.num_points_list), 1]) + scaling = torch.concat([torch.arange(1, n + 1) for n in self.num_points_list]).reshape( + 1, -1, 1 + ) + grid_init *= scaling + self.sampling_offsets.bias.data[...] = grid_init.flatten() + + # attention_weights + init.constant_(self.attention_weights.weight, 0) + init.constant_(self.attention_weights.bias, 0) + + def forward( + self, + query: torch.Tensor, + reference_points: torch.Tensor, + value: torch.Tensor, + value_spatial_shapes: List[int], + ): + """ + Args: + query (Tensor): [bs, query_length, C] + reference_points (Tensor): [bs, query_length, n_levels, 2], range in [0, 1], top-left (0,0), + bottom-right (1, 1), including padding area + value (Tensor): [bs, value_length, C] + value_spatial_shapes (List): [n_levels, 2], [(H_0, W_0), (H_1, W_1), ..., (H_{L-1}, W_{L-1})] + + Returns: + output (Tensor): [bs, Length_{query}, C] + """ + bs, Len_q = query.shape[:2] + + sampling_offsets: torch.Tensor = self.sampling_offsets(query) + sampling_offsets = sampling_offsets.reshape( + bs, Len_q, self.num_heads, sum(self.num_points_list), 2 + ) + + attention_weights = self.attention_weights(query).reshape( + bs, Len_q, self.num_heads, sum(self.num_points_list) + ) + attention_weights = F.softmax(attention_weights, dim=-1) + + if reference_points.shape[-1] == 2: + offset_normalizer = torch.tensor(value_spatial_shapes) + offset_normalizer = offset_normalizer.flip([1]).reshape(1, 1, 1, self.num_levels, 1, 2) + sampling_locations = ( + reference_points.reshape(bs, Len_q, 1, self.num_levels, 1, 2) + + sampling_offsets / offset_normalizer + ) + elif reference_points.shape[-1] == 4: + # reference_points [8, 480, None, 1, 4] + # sampling_offsets [8, 480, 8, 12, 2] + num_points_scale = self.num_points_scale.to(dtype=query.dtype).unsqueeze(-1) + offset = ( + sampling_offsets + * num_points_scale + * reference_points[:, :, None, :, 2:] + * self.offset_scale + ) + sampling_locations = reference_points[:, :, None, :, :2] + offset + else: + raise ValueError( + "Last dim of reference_points must be 2 or 4, but get {} instead.".format( + reference_points.shape[-1] + ) + ) + + output = self.ms_deformable_attn_core( + value, value_spatial_shapes, sampling_locations, attention_weights, self.num_points_list + ) + + return output + + +class TransformerDecoderLayer(nn.Module): + def __init__( + self, + d_model=256, + n_head=8, + dim_feedforward=1024, + dropout=0.0, + activation="relu", + n_levels=4, + n_points=4, + cross_attn_method="default", + layer_scale=None, + ): + super(TransformerDecoderLayer, self).__init__() + if layer_scale is not None: + dim_feedforward = round(layer_scale * dim_feedforward) + d_model = round(layer_scale * d_model) + + # self attention + self.self_attn = nn.MultiheadAttention(d_model, n_head, dropout=dropout, batch_first=True) + self.dropout1 = nn.Dropout(dropout) + self.norm1 = nn.LayerNorm(d_model) + + # cross attention + self.cross_attn = MSDeformableAttention( + d_model, n_head, n_levels, n_points, method=cross_attn_method + ) + self.dropout2 = nn.Dropout(dropout) + + # gate + self.gateway = Gate(d_model) + + # ffn + self.linear1 = nn.Linear(d_model, dim_feedforward) + self.activation = get_activation(activation) + self.dropout3 = nn.Dropout(dropout) + self.linear2 = nn.Linear(dim_feedforward, d_model) + self.dropout4 = nn.Dropout(dropout) + self.norm3 = nn.LayerNorm(d_model) + + self._reset_parameters() + + def _reset_parameters(self): + init.xavier_uniform_(self.linear1.weight) + init.xavier_uniform_(self.linear2.weight) + + def with_pos_embed(self, tensor, pos): + return tensor if pos is None else tensor + pos + + def forward_ffn(self, tgt): + return self.linear2(self.dropout3(self.activation(self.linear1(tgt)))) + + def forward( + self, target, reference_points, value, spatial_shapes, attn_mask=None, query_pos_embed=None + ): + # self attention + q = k = self.with_pos_embed(target, query_pos_embed) + + target2, _ = self.self_attn(q, k, value=target, attn_mask=attn_mask) + target = target + self.dropout1(target2) + target = self.norm1(target) + + # cross attention + target2 = self.cross_attn( + self.with_pos_embed(target, query_pos_embed), reference_points, value, spatial_shapes + ) + + target = self.gateway(target, self.dropout2(target2)) + + # ffn + target2 = self.forward_ffn(target) + target = target + self.dropout4(target2) + target = self.norm3(target.clamp(min=-65504, max=65504)) + + return target + + +class Gate(nn.Module): + def __init__(self, d_model): + super(Gate, self).__init__() + self.gate = nn.Linear(2 * d_model, 2 * d_model) + bias = bias_init_with_prob(0.5) + init.constant_(self.gate.bias, bias) + init.constant_(self.gate.weight, 0) + self.norm = nn.LayerNorm(d_model) + + def forward(self, x1, x2): + gate_input = torch.cat([x1, x2], dim=-1) + gates = torch.sigmoid(self.gate(gate_input)) + gate1, gate2 = gates.chunk(2, dim=-1) + return self.norm(gate1 * x1 + gate2 * x2) + + +class Integral(nn.Module): + """ + A static layer that calculates integral results from a distribution. + + This layer computes the target location using the formula: `sum{Pr(n) * W(n)}`, + where Pr(n) is the softmax probability vector representing the discrete + distribution, and W(n) is the non-uniform Weighting Function. + + Args: + reg_max (int): Max number of the discrete bins. Default is 32. + It can be adjusted based on the dataset or task requirements. + """ + + def __init__(self, reg_max=32): + super(Integral, self).__init__() + self.reg_max = reg_max + + def forward(self, x, project): + shape = x.shape + x = F.softmax(x.reshape(-1, self.reg_max + 1), dim=1) + x = F.linear(x, project.to(x.device)).reshape(-1, 4) + return x.reshape(list(shape[:-1]) + [-1]) + + +class LQE(nn.Module): + def __init__(self, k, hidden_dim, num_layers, reg_max): + super(LQE, self).__init__() + self.k = k + self.reg_max = reg_max + self.reg_conf = MLP(4 * (k + 1), hidden_dim, 1, num_layers) + init.constant_(self.reg_conf.layers[-1].bias, 0) + init.constant_(self.reg_conf.layers[-1].weight, 0) + + def forward(self, scores, pred_corners): + B, L, _ = pred_corners.size() + prob = F.softmax(pred_corners.reshape(B, L, 4, self.reg_max + 1), dim=-1) + prob_topk, _ = prob.topk(self.k, dim=-1) + stat = torch.cat([prob_topk, prob_topk.mean(dim=-1, keepdim=True)], dim=-1) + quality_score = self.reg_conf(stat.reshape(B, L, -1)) + return scores + quality_score + + +class TransformerDecoder(nn.Module): + """ + Transformer Decoder implementing Fine-grained Distribution Refinement (FDR). + + This decoder refines object detection predictions through iterative updates across multiple layers, + utilizing attention mechanisms, location quality estimators, and distribution refinement techniques + to improve bounding box accuracy and robustness. + """ + + def __init__( + self, + hidden_dim, + decoder_layer, + decoder_layer_wide, + num_layers, + num_head, + reg_max, + reg_scale, + up, + eval_idx=-1, + layer_scale=2, + ): + super(TransformerDecoder, self).__init__() + self.hidden_dim = hidden_dim + self.num_layers = num_layers + self.layer_scale = layer_scale + self.num_head = num_head + self.eval_idx = eval_idx if eval_idx >= 0 else num_layers + eval_idx + self.up, self.reg_scale, self.reg_max = up, reg_scale, reg_max + self.layers = nn.ModuleList( + [copy.deepcopy(decoder_layer) for _ in range(self.eval_idx + 1)] + + [copy.deepcopy(decoder_layer_wide) for _ in range(num_layers - self.eval_idx - 1)] + ) + self.lqe_layers = nn.ModuleList( + [copy.deepcopy(LQE(4, 64, 2, reg_max)) for _ in range(num_layers)] + ) + + def value_op(self, memory, value_proj, value_scale, memory_mask, memory_spatial_shapes): + """ + Preprocess values for MSDeformableAttention. + """ + value = value_proj(memory) if value_proj is not None else memory + value = F.interpolate(memory, size=value_scale) if value_scale is not None else value + if memory_mask is not None: + value = value * memory_mask.to(value.dtype).unsqueeze(-1) + value = value.reshape(value.shape[0], value.shape[1], self.num_head, -1) + split_shape = [h * w for h, w in memory_spatial_shapes] + return value.permute(0, 2, 3, 1).split(split_shape, dim=-1) + + def convert_to_deploy(self): + self.project = weighting_function(self.reg_max, self.up, self.reg_scale, deploy=True) + self.layers = self.layers[: self.eval_idx + 1] + self.lqe_layers = nn.ModuleList( + [nn.Identity()] * (self.eval_idx) + [self.lqe_layers[self.eval_idx]] + ) + + def forward( + self, + target, + ref_points_unact, + memory, + spatial_shapes, + bbox_head, + score_head, + query_pos_head, + pre_bbox_head, + integral, + up, + reg_scale, + attn_mask=None, + memory_mask=None, + dn_meta=None, + ): + output = target + output_detach = pred_corners_undetach = 0 + value = self.value_op(memory, None, None, memory_mask, spatial_shapes) + + dec_out_bboxes = [] + dec_out_logits = [] + dec_out_pred_corners = [] + dec_out_refs = [] + if not hasattr(self, "project"): + project = weighting_function(self.reg_max, up, reg_scale) + else: + project = self.project + + ref_points_detach = F.sigmoid(ref_points_unact) + + for i, layer in enumerate(self.layers): + ref_points_input = ref_points_detach.unsqueeze(2) + query_pos_embed = query_pos_head(ref_points_detach).clamp(min=-10, max=10) + + # TODO Adjust scale if needed for detachable wider layers + if i >= self.eval_idx + 1 and self.layer_scale > 1: + query_pos_embed = F.interpolate(query_pos_embed, scale_factor=self.layer_scale) + value = self.value_op( + memory, None, query_pos_embed.shape[-1], memory_mask, spatial_shapes + ) + output = F.interpolate(output, size=query_pos_embed.shape[-1]) + output_detach = output.detach() + + output = layer( + output, ref_points_input, value, spatial_shapes, attn_mask, query_pos_embed + ) + + if i == 0: + # Initial bounding box predictions with inverse sigmoid refinement + pre_bboxes = F.sigmoid(pre_bbox_head(output) + inverse_sigmoid(ref_points_detach)) + pre_scores = score_head[0](output) + ref_points_initial = pre_bboxes.detach() + + # Refine bounding box corners using FDR, integrating previous layer's corrections + pred_corners = bbox_head[i](output + output_detach) + pred_corners_undetach + inter_ref_bbox = distance2bbox( + ref_points_initial, integral(pred_corners, project), reg_scale + ) + + if self.training or i == self.eval_idx: + scores = score_head[i](output) + # Lqe does not affect the performance here. + scores = self.lqe_layers[i](scores, pred_corners) + dec_out_logits.append(scores) + dec_out_bboxes.append(inter_ref_bbox) + dec_out_pred_corners.append(pred_corners) + dec_out_refs.append(ref_points_initial) + + if not self.training: + break + + pred_corners_undetach = pred_corners + ref_points_detach = inter_ref_bbox.detach() + output_detach = output.detach() + + return ( + torch.stack(dec_out_bboxes), + torch.stack(dec_out_logits), + torch.stack(dec_out_pred_corners), + torch.stack(dec_out_refs), + pre_bboxes, + pre_scores, + ) + + +@register() +class DFINETransformer(nn.Module): + __share__ = ["num_classes", "eval_spatial_size"] + + def __init__( + self, + num_classes=80, + hidden_dim=256, + num_queries=300, + feat_channels=[512, 1024, 2048], + feat_strides=[8, 16, 32], + num_levels=3, + num_points=4, + nhead=8, + num_layers=6, + dim_feedforward=1024, + dropout=0.0, + activation="relu", + num_denoising=100, + label_noise_ratio=0.5, + box_noise_scale=1.0, + learn_query_content=False, + eval_spatial_size=None, + eval_idx=-1, + eps=1e-2, + aux_loss=True, + cross_attn_method="default", + query_select_method="default", + reg_max=32, + reg_scale=4.0, + layer_scale=1, + ): + super().__init__() + assert len(feat_channels) <= num_levels + assert len(feat_strides) == len(feat_channels) + + for _ in range(num_levels - len(feat_strides)): + feat_strides.append(feat_strides[-1] * 2) + + self.hidden_dim = hidden_dim + scaled_dim = round(layer_scale * hidden_dim) + self.nhead = nhead + self.feat_strides = feat_strides + self.num_levels = num_levels + self.num_classes = num_classes + self.num_queries = num_queries + self.eps = eps + self.num_layers = num_layers + self.eval_spatial_size = eval_spatial_size + self.aux_loss = aux_loss + self.reg_max = reg_max + + assert query_select_method in ("default", "one2many", "agnostic"), "" + assert cross_attn_method in ("default", "discrete"), "" + self.cross_attn_method = cross_attn_method + self.query_select_method = query_select_method + + # backbone feature projection + self._build_input_proj_layer(feat_channels) + + # Transformer module + self.up = nn.Parameter(torch.tensor([0.5]), requires_grad=False) + self.reg_scale = nn.Parameter(torch.tensor([reg_scale]), requires_grad=False) + decoder_layer = TransformerDecoderLayer( + hidden_dim, + nhead, + dim_feedforward, + dropout, + activation, + num_levels, + num_points, + cross_attn_method=cross_attn_method, + ) + decoder_layer_wide = TransformerDecoderLayer( + hidden_dim, + nhead, + dim_feedforward, + dropout, + activation, + num_levels, + num_points, + cross_attn_method=cross_attn_method, + layer_scale=layer_scale, + ) + self.decoder = TransformerDecoder( + hidden_dim, + decoder_layer, + decoder_layer_wide, + num_layers, + nhead, + reg_max, + self.reg_scale, + self.up, + eval_idx, + layer_scale, + ) + # denoising + self.num_denoising = num_denoising + self.label_noise_ratio = label_noise_ratio + self.box_noise_scale = box_noise_scale + if num_denoising > 0: + self.denoising_class_embed = nn.Embedding( + num_classes + 1, hidden_dim, padding_idx=num_classes + ) + init.normal_(self.denoising_class_embed.weight[:-1]) + + # decoder embedding + self.learn_query_content = learn_query_content + if learn_query_content: + self.tgt_embed = nn.Embedding(num_queries, hidden_dim) + self.query_pos_head = MLP(4, 2 * hidden_dim, hidden_dim, 2) + + # if num_select_queries != self.num_queries: + # layer = TransformerEncoderLayer(hidden_dim, nhead, dim_feedforward, activation='gelu') + # self.encoder = TransformerEncoder(layer, 1) + + self.enc_output = nn.Sequential( + OrderedDict( + [ + ("proj", nn.Linear(hidden_dim, hidden_dim)), + ( + "norm", + nn.LayerNorm( + hidden_dim, + ), + ), + ] + ) + ) + + if query_select_method == "agnostic": + self.enc_score_head = nn.Linear(hidden_dim, 1) + else: + self.enc_score_head = nn.Linear(hidden_dim, num_classes) + + self.enc_bbox_head = MLP(hidden_dim, hidden_dim, 4, 3) + + # decoder head + self.eval_idx = eval_idx if eval_idx >= 0 else num_layers + eval_idx + self.dec_score_head = nn.ModuleList( + [nn.Linear(hidden_dim, num_classes) for _ in range(self.eval_idx + 1)] + + [nn.Linear(scaled_dim, num_classes) for _ in range(num_layers - self.eval_idx - 1)] + ) + self.pre_bbox_head = MLP(hidden_dim, hidden_dim, 4, 3) + self.dec_bbox_head = nn.ModuleList( + [ + MLP(hidden_dim, hidden_dim, 4 * (self.reg_max + 1), 3) + for _ in range(self.eval_idx + 1) + ] + + [ + MLP(scaled_dim, scaled_dim, 4 * (self.reg_max + 1), 3) + for _ in range(num_layers - self.eval_idx - 1) + ] + ) + self.integral = Integral(self.reg_max) + + # init encoder output anchors and valid_mask + if self.eval_spatial_size: + anchors, valid_mask = self._generate_anchors() + self.register_buffer("anchors", anchors) + self.register_buffer("valid_mask", valid_mask) + # init encoder output anchors and valid_mask + if self.eval_spatial_size: + self.anchors, self.valid_mask = self._generate_anchors() + + self._reset_parameters(feat_channels) + + def convert_to_deploy(self): + self.dec_score_head = nn.ModuleList( + [nn.Identity()] * (self.eval_idx) + [self.dec_score_head[self.eval_idx]] + ) + self.dec_bbox_head = nn.ModuleList( + [ + self.dec_bbox_head[i] if i <= self.eval_idx else nn.Identity() + for i in range(len(self.dec_bbox_head)) + ] + ) + + def _reset_parameters(self, feat_channels): + bias = bias_init_with_prob(0.01) + init.constant_(self.enc_score_head.bias, bias) + init.constant_(self.enc_bbox_head.layers[-1].weight, 0) + init.constant_(self.enc_bbox_head.layers[-1].bias, 0) + + init.constant_(self.pre_bbox_head.layers[-1].weight, 0) + init.constant_(self.pre_bbox_head.layers[-1].bias, 0) + + for cls_, reg_ in zip(self.dec_score_head, self.dec_bbox_head): + init.constant_(cls_.bias, bias) + if hasattr(reg_, "layers"): + init.constant_(reg_.layers[-1].weight, 0) + init.constant_(reg_.layers[-1].bias, 0) + + init.xavier_uniform_(self.enc_output[0].weight) + if self.learn_query_content: + init.xavier_uniform_(self.tgt_embed.weight) + init.xavier_uniform_(self.query_pos_head.layers[0].weight) + init.xavier_uniform_(self.query_pos_head.layers[1].weight) + for m, in_channels in zip(self.input_proj, feat_channels): + if in_channels != self.hidden_dim: + init.xavier_uniform_(m[0].weight) + + def _build_input_proj_layer(self, feat_channels): + self.input_proj = nn.ModuleList() + for in_channels in feat_channels: + if in_channels == self.hidden_dim: + self.input_proj.append(nn.Identity()) + else: + self.input_proj.append( + nn.Sequential( + OrderedDict( + [ + ("conv", nn.Conv2d(in_channels, self.hidden_dim, 1, bias=False)), + ( + "norm", + nn.BatchNorm2d( + self.hidden_dim, + ), + ), + ] + ) + ) + ) + + in_channels = feat_channels[-1] + + for _ in range(self.num_levels - len(feat_channels)): + if in_channels == self.hidden_dim: + self.input_proj.append(nn.Identity()) + else: + self.input_proj.append( + nn.Sequential( + OrderedDict( + [ + ( + "conv", + nn.Conv2d( + in_channels, self.hidden_dim, 3, 2, padding=1, bias=False + ), + ), + ("norm", nn.BatchNorm2d(self.hidden_dim)), + ] + ) + ) + ) + in_channels = self.hidden_dim + + def _get_encoder_input(self, feats: List[torch.Tensor]): + # get projection features + proj_feats = [self.input_proj[i](feat) for i, feat in enumerate(feats)] + if self.num_levels > len(proj_feats): + len_srcs = len(proj_feats) + for i in range(len_srcs, self.num_levels): + if i == len_srcs: + proj_feats.append(self.input_proj[i](feats[-1])) + else: + proj_feats.append(self.input_proj[i](proj_feats[-1])) + + # get encoder inputs + feat_flatten = [] + spatial_shapes = [] + for i, feat in enumerate(proj_feats): + _, _, h, w = feat.shape + # [b, c, h, w] -> [b, h*w, c] + feat_flatten.append(feat.flatten(2).permute(0, 2, 1)) + # [num_levels, 2] + spatial_shapes.append([h, w]) + + # [b, l, c] + feat_flatten = torch.concat(feat_flatten, 1) + return feat_flatten, spatial_shapes + + def _generate_anchors( + self, spatial_shapes=None, grid_size=0.05, dtype=torch.float32, device="cpu" + ): + if spatial_shapes is None: + spatial_shapes = [] + eval_h, eval_w = self.eval_spatial_size + for s in self.feat_strides: + spatial_shapes.append([int(eval_h / s), int(eval_w / s)]) + + anchors = [] + for lvl, (h, w) in enumerate(spatial_shapes): + grid_y, grid_x = torch.meshgrid(torch.arange(h), torch.arange(w), indexing="ij") + grid_xy = torch.stack([grid_x, grid_y], dim=-1) + grid_xy = (grid_xy.unsqueeze(0) + 0.5) / torch.tensor([w, h], dtype=dtype) + wh = torch.ones_like(grid_xy) * grid_size * (2.0**lvl) + lvl_anchors = torch.concat([grid_xy, wh], dim=-1).reshape(-1, h * w, 4) + anchors.append(lvl_anchors) + + anchors = torch.concat(anchors, dim=1).to(device) + valid_mask = ((anchors > self.eps) * (anchors < 1 - self.eps)).all(-1, keepdim=True) + anchors = torch.log(anchors / (1 - anchors)) + anchors = torch.where(valid_mask, anchors, torch.inf) + + return anchors, valid_mask + + def _get_decoder_input( + self, memory: torch.Tensor, spatial_shapes, denoising_logits=None, denoising_bbox_unact=None + ): + # prepare input for decoder + if self.training or self.eval_spatial_size is None: + anchors, valid_mask = self._generate_anchors(spatial_shapes, device=memory.device) + else: + anchors = self.anchors + valid_mask = self.valid_mask + if memory.shape[0] > 1: + anchors = anchors.repeat(memory.shape[0], 1, 1) + + # memory = torch.where(valid_mask, memory, 0) + # TODO fix type error for onnx export + memory = valid_mask.to(memory.dtype) * memory + + output_memory: torch.Tensor = self.enc_output(memory) + enc_outputs_logits: torch.Tensor = self.enc_score_head(output_memory) + + enc_topk_bboxes_list, enc_topk_logits_list = [], [] + enc_topk_memory, enc_topk_logits, enc_topk_anchors = self._select_topk( + output_memory, enc_outputs_logits, anchors, self.num_queries + ) + + enc_topk_bbox_unact: torch.Tensor = self.enc_bbox_head(enc_topk_memory) + enc_topk_anchors + + if self.training: + enc_topk_bboxes = F.sigmoid(enc_topk_bbox_unact) + enc_topk_bboxes_list.append(enc_topk_bboxes) + enc_topk_logits_list.append(enc_topk_logits) + + # if self.num_select_queries != self.num_queries: + # raise NotImplementedError('') + + if self.learn_query_content: + content = self.tgt_embed.weight.unsqueeze(0).tile([memory.shape[0], 1, 1]) + else: + content = enc_topk_memory.detach() + + enc_topk_bbox_unact = enc_topk_bbox_unact.detach() + + if denoising_bbox_unact is not None: + enc_topk_bbox_unact = torch.concat([denoising_bbox_unact, enc_topk_bbox_unact], dim=1) + content = torch.concat([denoising_logits, content], dim=1) + + return content, enc_topk_bbox_unact, enc_topk_bboxes_list, enc_topk_logits_list + + def _select_topk( + self, + memory: torch.Tensor, + outputs_logits: torch.Tensor, + outputs_anchors_unact: torch.Tensor, + topk: int, + ): + if self.query_select_method == "default": + _, topk_ind = torch.topk(outputs_logits.max(-1).values, topk, dim=-1) + + elif self.query_select_method == "one2many": + _, topk_ind = torch.topk(outputs_logits.flatten(1), topk, dim=-1) + topk_ind = topk_ind // self.num_classes + + elif self.query_select_method == "agnostic": + _, topk_ind = torch.topk(outputs_logits.squeeze(-1), topk, dim=-1) + + topk_ind: torch.Tensor + + topk_anchors = outputs_anchors_unact.gather( + dim=1, index=topk_ind.unsqueeze(-1).repeat(1, 1, outputs_anchors_unact.shape[-1]) + ) + + topk_logits = ( + outputs_logits.gather( + dim=1, index=topk_ind.unsqueeze(-1).repeat(1, 1, outputs_logits.shape[-1]) + ) + if self.training + else None + ) + + topk_memory = memory.gather( + dim=1, index=topk_ind.unsqueeze(-1).repeat(1, 1, memory.shape[-1]) + ) + + return topk_memory, topk_logits, topk_anchors + + def forward(self, feats, targets=None): + # input projection and embedding + memory, spatial_shapes = self._get_encoder_input(feats) + + # prepare denoising training + if self.training and self.num_denoising > 0: + denoising_logits, denoising_bbox_unact, attn_mask, dn_meta = ( + get_contrastive_denoising_training_group( + targets, + self.num_classes, + self.num_queries, + self.denoising_class_embed, + num_denoising=self.num_denoising, + label_noise_ratio=self.label_noise_ratio, + box_noise_scale=1.0, + ) + ) + else: + denoising_logits, denoising_bbox_unact, attn_mask, dn_meta = None, None, None, None + + init_ref_contents, init_ref_points_unact, enc_topk_bboxes_list, enc_topk_logits_list = ( + self._get_decoder_input(memory, spatial_shapes, denoising_logits, denoising_bbox_unact) + ) + + # decoder + out_bboxes, out_logits, out_corners, out_refs, pre_bboxes, pre_logits = self.decoder( + init_ref_contents, + init_ref_points_unact, + memory, + spatial_shapes, + self.dec_bbox_head, + self.dec_score_head, + self.query_pos_head, + self.pre_bbox_head, + self.integral, + self.up, + self.reg_scale, + attn_mask=attn_mask, + dn_meta=dn_meta, + ) + + if self.training and dn_meta is not None: + dn_pre_logits, pre_logits = torch.split(pre_logits, dn_meta["dn_num_split"], dim=1) + dn_pre_bboxes, pre_bboxes = torch.split(pre_bboxes, dn_meta["dn_num_split"], dim=1) + dn_out_bboxes, out_bboxes = torch.split(out_bboxes, dn_meta["dn_num_split"], dim=2) + dn_out_logits, out_logits = torch.split(out_logits, dn_meta["dn_num_split"], dim=2) + + dn_out_corners, out_corners = torch.split(out_corners, dn_meta["dn_num_split"], dim=2) + dn_out_refs, out_refs = torch.split(out_refs, dn_meta["dn_num_split"], dim=2) + + if self.training: + out = { + "pred_logits": out_logits[-1], + "pred_boxes": out_bboxes[-1], + "pred_corners": out_corners[-1], + "ref_points": out_refs[-1], + "up": self.up, + "reg_scale": self.reg_scale, + } + else: + out = {"pred_logits": out_logits[-1], "pred_boxes": out_bboxes[-1]} + + if self.training and self.aux_loss: + out["aux_outputs"] = self._set_aux_loss2( + out_logits[:-1], + out_bboxes[:-1], + out_corners[:-1], + out_refs[:-1], + out_corners[-1], + out_logits[-1], + ) + out["enc_aux_outputs"] = self._set_aux_loss(enc_topk_logits_list, enc_topk_bboxes_list) + out["pre_outputs"] = {"pred_logits": pre_logits, "pred_boxes": pre_bboxes} + out["enc_meta"] = {"class_agnostic": self.query_select_method == "agnostic"} + + if dn_meta is not None: + out["dn_outputs"] = self._set_aux_loss2( + dn_out_logits, + dn_out_bboxes, + dn_out_corners, + dn_out_refs, + dn_out_corners[-1], + dn_out_logits[-1], + ) + out["dn_pre_outputs"] = {"pred_logits": dn_pre_logits, "pred_boxes": dn_pre_bboxes} + out["dn_meta"] = dn_meta + + return out + + @torch.jit.unused + def _set_aux_loss(self, outputs_class, outputs_coord): + # this is a workaround to make torchscript happy, as torchscript + # doesn't support dictionary with non-homogeneous values, such + # as a dict having both a Tensor and a list. + return [{"pred_logits": a, "pred_boxes": b} for a, b in zip(outputs_class, outputs_coord)] + + @torch.jit.unused + def _set_aux_loss2( + self, + outputs_class, + outputs_coord, + outputs_corners, + outputs_ref, + teacher_corners=None, + teacher_logits=None, + ): + # this is a workaround to make torchscript happy, as torchscript + # doesn't support dictionary with non-homogeneous values, such + # as a dict having both a Tensor and a list. + return [ + { + "pred_logits": a, + "pred_boxes": b, + "pred_corners": c, + "ref_points": d, + "teacher_corners": teacher_corners, + "teacher_logits": teacher_logits, + } + for a, b, c, d in zip(outputs_class, outputs_coord, outputs_corners, outputs_ref) + ] diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_utils.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_utils.py new file mode 100644 index 0000000..512d161 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/dfine_utils.py @@ -0,0 +1,169 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import torch + +from .box_ops import box_xyxy_to_cxcywh + + +def weighting_function(reg_max, up, reg_scale, deploy=False): + """ + Generates the non-uniform Weighting Function W(n) for bounding box regression. + + Args: + reg_max (int): Max number of the discrete bins. + up (Tensor): Controls upper bounds of the sequence, + where maximum offset is ±up * H / W. + reg_scale (float): Controls the curvature of the Weighting Function. + Larger values result in flatter weights near the central axis W(reg_max/2)=0 + and steeper weights at both ends. + deploy (bool): If True, uses deployment mode settings. + + Returns: + Tensor: Sequence of Weighting Function. + """ + if deploy: + upper_bound1 = (abs(up[0]) * abs(reg_scale)).item() + upper_bound2 = (abs(up[0]) * abs(reg_scale) * 2).item() + step = (upper_bound1 + 1) ** (2 / (reg_max - 2)) + left_values = [-((step) ** i) + 1 for i in range(reg_max // 2 - 1, 0, -1)] + right_values = [(step) ** i - 1 for i in range(1, reg_max // 2)] + values = ( + [-upper_bound2] + + left_values + + [torch.zeros_like(up[0][None])] + + right_values + + [upper_bound2] + ) + return torch.tensor(values, dtype=up.dtype, device=up.device) + else: + upper_bound1 = abs(up[0]) * abs(reg_scale) + upper_bound2 = abs(up[0]) * abs(reg_scale) * 2 + step = (upper_bound1 + 1) ** (2 / (reg_max - 2)) + left_values = [-((step) ** i) + 1 for i in range(reg_max // 2 - 1, 0, -1)] + right_values = [(step) ** i - 1 for i in range(1, reg_max // 2)] + values = ( + [-upper_bound2] + + left_values + + [torch.zeros_like(up[0][None])] + + right_values + + [upper_bound2] + ) + return torch.cat(values, 0) + + +def translate_gt(gt, reg_max, reg_scale, up): + """ + Decodes bounding box ground truth (GT) values into distribution-based GT representations. + + This function maps continuous GT values into discrete distribution bins, which can be used + for regression tasks in object detection models. It calculates the indices of the closest + bins to each GT value and assigns interpolation weights to these bins based on their proximity + to the GT value. + + Args: + gt (Tensor): Ground truth bounding box values, shape (N, ). + reg_max (int): Maximum number of discrete bins for the distribution. + reg_scale (float): Controls the curvature of the Weighting Function. + up (Tensor): Controls the upper bounds of the Weighting Function. + + Returns: + Tuple[Tensor, Tensor, Tensor]: + - indices (Tensor): Index of the left bin closest to each GT value, shape (N, ). + - weight_right (Tensor): Weight assigned to the right bin, shape (N, ). + - weight_left (Tensor): Weight assigned to the left bin, shape (N, ). + """ + gt = gt.reshape(-1) + function_values = weighting_function(reg_max, up, reg_scale) + + # Find the closest left-side indices for each value + diffs = function_values.unsqueeze(0) - gt.unsqueeze(1) + mask = diffs <= 0 + closest_left_indices = torch.sum(mask, dim=1) - 1 + + # Calculate the weights for the interpolation + indices = closest_left_indices.float() + + weight_right = torch.zeros_like(indices) + weight_left = torch.zeros_like(indices) + + valid_idx_mask = (indices >= 0) & (indices < reg_max) + valid_indices = indices[valid_idx_mask].long() + + # Obtain distances + left_values = function_values[valid_indices] + right_values = function_values[valid_indices + 1] + + left_diffs = torch.abs(gt[valid_idx_mask] - left_values) + right_diffs = torch.abs(right_values - gt[valid_idx_mask]) + + # Valid weights + weight_right[valid_idx_mask] = left_diffs / (left_diffs + right_diffs) + weight_left[valid_idx_mask] = 1.0 - weight_right[valid_idx_mask] + + # Invalid weights (out of range) + invalid_idx_mask_neg = indices < 0 + weight_right[invalid_idx_mask_neg] = 0.0 + weight_left[invalid_idx_mask_neg] = 1.0 + indices[invalid_idx_mask_neg] = 0.0 + + invalid_idx_mask_pos = indices >= reg_max + weight_right[invalid_idx_mask_pos] = 1.0 + weight_left[invalid_idx_mask_pos] = 0.0 + indices[invalid_idx_mask_pos] = reg_max - 0.1 + + return indices, weight_right, weight_left + + +def distance2bbox(points, distance, reg_scale): + """ + Decodes edge-distances into bounding box coordinates. + + Args: + points (Tensor): (B, N, 4) or (N, 4) format, representing [x, y, w, h], + where (x, y) is the center and (w, h) are width and height. + distance (Tensor): (B, N, 4) or (N, 4), representing distances from the + point to the left, top, right, and bottom boundaries. + + reg_scale (float): Controls the curvature of the Weighting Function. + + Returns: + Tensor: Bounding boxes in (N, 4) or (B, N, 4) format [cx, cy, w, h]. + """ + reg_scale = abs(reg_scale) + x1 = points[..., 0] - (0.5 * reg_scale + distance[..., 0]) * (points[..., 2] / reg_scale) + y1 = points[..., 1] - (0.5 * reg_scale + distance[..., 1]) * (points[..., 3] / reg_scale) + x2 = points[..., 0] + (0.5 * reg_scale + distance[..., 2]) * (points[..., 2] / reg_scale) + y2 = points[..., 1] + (0.5 * reg_scale + distance[..., 3]) * (points[..., 3] / reg_scale) + + bboxes = torch.stack([x1, y1, x2, y2], -1) + + return box_xyxy_to_cxcywh(bboxes) + + +def bbox2distance(points, bbox, reg_max, reg_scale, up, eps=0.1): + """ + Converts bounding box coordinates to distances from a reference point. + + Args: + points (Tensor): (n, 4) [x, y, w, h], where (x, y) is the center. + bbox (Tensor): (n, 4) bounding boxes in "xyxy" format. + reg_max (float): Maximum bin value. + reg_scale (float): Controling curvarture of W(n). + up (Tensor): Controling upper bounds of W(n). + eps (float): Small value to ensure target < reg_max. + + Returns: + Tensor: Decoded distances. + """ + reg_scale = abs(reg_scale) + left = (points[:, 0] - bbox[:, 0]) / (points[..., 2] / reg_scale + 1e-16) - 0.5 * reg_scale + top = (points[:, 1] - bbox[:, 1]) / (points[..., 3] / reg_scale + 1e-16) - 0.5 * reg_scale + right = (bbox[:, 2] - points[:, 0]) / (points[..., 2] / reg_scale + 1e-16) - 0.5 * reg_scale + bottom = (bbox[:, 3] - points[:, 1]) / (points[..., 3] / reg_scale + 1e-16) - 0.5 * reg_scale + four_lens = torch.stack([left, top, right, bottom], -1) + four_lens, weight_right, weight_left = translate_gt(four_lens, reg_max, reg_scale, up) + if reg_max is not None: + four_lens = four_lens.clamp(min=0, max=reg_max - eps) + return four_lens.reshape(-1).detach(), weight_right.detach(), weight_left.detach() diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/hybrid_encoder.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/hybrid_encoder.py new file mode 100644 index 0000000..77af3fb --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/hybrid_encoder.py @@ -0,0 +1,488 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import copy +from collections import OrderedDict + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...core import register +from .utils import get_activation + +__all__ = ["HybridEncoder"] + + +class ConvNormLayer_fuse(nn.Module): + def __init__(self, ch_in, ch_out, kernel_size, stride, g=1, padding=None, bias=False, act=None): + super().__init__() + padding = (kernel_size - 1) // 2 if padding is None else padding + self.conv = nn.Conv2d( + ch_in, ch_out, kernel_size, stride, groups=g, padding=padding, bias=bias + ) + self.norm = nn.BatchNorm2d(ch_out) + self.act = nn.Identity() if act is None else get_activation(act) + self.ch_in, self.ch_out, self.kernel_size, self.stride, self.g, self.padding, self.bias = ( + ch_in, + ch_out, + kernel_size, + stride, + g, + padding, + bias, + ) + + def forward(self, x): + if hasattr(self, "conv_bn_fused"): + y = self.conv_bn_fused(x) + else: + y = self.norm(self.conv(x)) + return self.act(y) + + def convert_to_deploy(self): + if not hasattr(self, "conv_bn_fused"): + self.conv_bn_fused = nn.Conv2d( + self.ch_in, + self.ch_out, + self.kernel_size, + self.stride, + groups=self.g, + padding=self.padding, + bias=True, + ) + + kernel, bias = self.get_equivalent_kernel_bias() + self.conv_bn_fused.weight.data = kernel + self.conv_bn_fused.bias.data = bias + self.__delattr__("conv") + self.__delattr__("norm") + + def get_equivalent_kernel_bias(self): + kernel3x3, bias3x3 = self._fuse_bn_tensor() + + return kernel3x3, bias3x3 + + def _fuse_bn_tensor(self): + kernel = self.conv.weight + running_mean = self.norm.running_mean + running_var = self.norm.running_var + gamma = self.norm.weight + beta = self.norm.bias + eps = self.norm.eps + std = (running_var + eps).sqrt() + t = (gamma / std).reshape(-1, 1, 1, 1) + return kernel * t, beta - running_mean * gamma / std + + +class ConvNormLayer(nn.Module): + def __init__(self, ch_in, ch_out, kernel_size, stride, g=1, padding=None, bias=False, act=None): + super().__init__() + padding = (kernel_size - 1) // 2 if padding is None else padding + self.conv = nn.Conv2d( + ch_in, ch_out, kernel_size, stride, groups=g, padding=padding, bias=bias + ) + self.norm = nn.BatchNorm2d(ch_out) + self.act = nn.Identity() if act is None else get_activation(act) + + def forward(self, x): + return self.act(self.norm(self.conv(x))) + + +class SCDown(nn.Module): + def __init__(self, c1, c2, k, s): + super().__init__() + self.cv1 = ConvNormLayer_fuse(c1, c2, 1, 1) + self.cv2 = ConvNormLayer_fuse(c2, c2, k, s, c2) + + def forward(self, x): + return self.cv2(self.cv1(x)) + + +class VGGBlock(nn.Module): + def __init__(self, ch_in, ch_out, act="relu"): + super().__init__() + self.ch_in = ch_in + self.ch_out = ch_out + self.conv1 = ConvNormLayer(ch_in, ch_out, 3, 1, padding=1, act=None) + self.conv2 = ConvNormLayer(ch_in, ch_out, 1, 1, padding=0, act=None) + self.act = nn.Identity() if act is None else act + + def forward(self, x): + if hasattr(self, "conv"): + y = self.conv(x) + else: + y = self.conv1(x) + self.conv2(x) + + return self.act(y) + + def convert_to_deploy(self): + if not hasattr(self, "conv"): + self.conv = nn.Conv2d(self.ch_in, self.ch_out, 3, 1, padding=1) + + kernel, bias = self.get_equivalent_kernel_bias() + self.conv.weight.data = kernel + self.conv.bias.data = bias + self.__delattr__("conv1") + self.__delattr__("conv2") + + def get_equivalent_kernel_bias(self): + kernel3x3, bias3x3 = self._fuse_bn_tensor(self.conv1) + kernel1x1, bias1x1 = self._fuse_bn_tensor(self.conv2) + + return kernel3x3 + self._pad_1x1_to_3x3_tensor(kernel1x1), bias3x3 + bias1x1 + + def _pad_1x1_to_3x3_tensor(self, kernel1x1): + if kernel1x1 is None: + return 0 + else: + return F.pad(kernel1x1, [1, 1, 1, 1]) + + def _fuse_bn_tensor(self, branch: ConvNormLayer): + if branch is None: + return 0, 0 + kernel = branch.conv.weight + running_mean = branch.norm.running_mean + running_var = branch.norm.running_var + gamma = branch.norm.weight + beta = branch.norm.bias + eps = branch.norm.eps + std = (running_var + eps).sqrt() + t = (gamma / std).reshape(-1, 1, 1, 1) + return kernel * t, beta - running_mean * gamma / std + + +class ELAN(nn.Module): + # csp-elan + def __init__(self, c1, c2, c3, c4, n=2, bias=False, act="silu", bottletype=VGGBlock): + super().__init__() + self.c = c3 + self.cv1 = ConvNormLayer_fuse(c1, c3, 1, 1, bias=bias, act=act) + self.cv2 = nn.Sequential( + bottletype(c3 // 2, c4, act=get_activation(act)), + ConvNormLayer_fuse(c4, c4, 3, 1, bias=bias, act=act), + ) + self.cv3 = nn.Sequential( + bottletype(c4, c4, act=get_activation(act)), + ConvNormLayer_fuse(c4, c4, 3, 1, bias=bias, act=act), + ) + self.cv4 = ConvNormLayer_fuse(c3 + (2 * c4), c2, 1, 1, bias=bias, act=act) + + def forward(self, x): + # y = [self.cv1(x)] + y = list(self.cv1(x).chunk(2, 1)) + y.extend((m(y[-1])) for m in [self.cv2, self.cv3]) + return self.cv4(torch.cat(y, 1)) + + +class RepNCSPELAN4(nn.Module): + # csp-elan + def __init__(self, c1, c2, c3, c4, n=3, bias=False, act="silu"): + super().__init__() + self.c = c3 // 2 + self.cv1 = ConvNormLayer_fuse(c1, c3, 1, 1, bias=bias, act=act) + self.cv2 = nn.Sequential( + CSPLayer(c3 // 2, c4, n, 1, bias=bias, act=act, bottletype=VGGBlock), + ConvNormLayer_fuse(c4, c4, 3, 1, bias=bias, act=act), + ) + self.cv3 = nn.Sequential( + CSPLayer(c4, c4, n, 1, bias=bias, act=act, bottletype=VGGBlock), + ConvNormLayer_fuse(c4, c4, 3, 1, bias=bias, act=act), + ) + self.cv4 = ConvNormLayer_fuse(c3 + (2 * c4), c2, 1, 1, bias=bias, act=act) + + def forward_chunk(self, x): + y = list(self.cv1(x).chunk(2, 1)) + y.extend((m(y[-1])) for m in [self.cv2, self.cv3]) + return self.cv4(torch.cat(y, 1)) + + def forward(self, x): + y = list(self.cv1(x).split((self.c, self.c), 1)) + y.extend(m(y[-1]) for m in [self.cv2, self.cv3]) + return self.cv4(torch.cat(y, 1)) + + +class CSPLayer(nn.Module): + def __init__( + self, + in_channels, + out_channels, + num_blocks=3, + expansion=1.0, + bias=False, + act="silu", + bottletype=VGGBlock, + ): + super(CSPLayer, self).__init__() + hidden_channels = int(out_channels * expansion) + self.conv1 = ConvNormLayer_fuse(in_channels, hidden_channels, 1, 1, bias=bias, act=act) + self.conv2 = ConvNormLayer_fuse(in_channels, hidden_channels, 1, 1, bias=bias, act=act) + self.bottlenecks = nn.Sequential( + *[ + bottletype(hidden_channels, hidden_channels, act=get_activation(act)) + for _ in range(num_blocks) + ] + ) + if hidden_channels != out_channels: + self.conv3 = ConvNormLayer_fuse(hidden_channels, out_channels, 1, 1, bias=bias, act=act) + else: + self.conv3 = nn.Identity() + + def forward(self, x): + x_1 = self.conv1(x) + x_1 = self.bottlenecks(x_1) + x_2 = self.conv2(x) + return self.conv3(x_1 + x_2) + + +# transformer +class TransformerEncoderLayer(nn.Module): + def __init__( + self, + d_model, + nhead, + dim_feedforward=2048, + dropout=0.1, + activation="relu", + normalize_before=False, + ): + super().__init__() + self.normalize_before = normalize_before + + self.self_attn = nn.MultiheadAttention(d_model, nhead, dropout, batch_first=True) + + self.linear1 = nn.Linear(d_model, dim_feedforward) + self.dropout = nn.Dropout(dropout) + self.linear2 = nn.Linear(dim_feedforward, d_model) + + self.norm1 = nn.LayerNorm(d_model) + self.norm2 = nn.LayerNorm(d_model) + self.dropout1 = nn.Dropout(dropout) + self.dropout2 = nn.Dropout(dropout) + self.activation = get_activation(activation) + + @staticmethod + def with_pos_embed(tensor, pos_embed): + return tensor if pos_embed is None else tensor + pos_embed + + def forward(self, src, src_mask=None, pos_embed=None) -> torch.Tensor: + residual = src + if self.normalize_before: + src = self.norm1(src) + q = k = self.with_pos_embed(src, pos_embed) + src, _ = self.self_attn(q, k, value=src, attn_mask=src_mask) + + src = residual + self.dropout1(src) + if not self.normalize_before: + src = self.norm1(src) + + residual = src + if self.normalize_before: + src = self.norm2(src) + src = self.linear2(self.dropout(self.activation(self.linear1(src)))) + src = residual + self.dropout2(src) + if not self.normalize_before: + src = self.norm2(src) + return src + + +class TransformerEncoder(nn.Module): + def __init__(self, encoder_layer, num_layers, norm=None): + super(TransformerEncoder, self).__init__() + self.layers = nn.ModuleList([copy.deepcopy(encoder_layer) for _ in range(num_layers)]) + self.num_layers = num_layers + self.norm = norm + + def forward(self, src, src_mask=None, pos_embed=None) -> torch.Tensor: + output = src + for layer in self.layers: + output = layer(output, src_mask=src_mask, pos_embed=pos_embed) + + if self.norm is not None: + output = self.norm(output) + + return output + + +@register() +class HybridEncoder(nn.Module): + __share__ = [ + "eval_spatial_size", + ] + + def __init__( + self, + in_channels=[512, 1024, 2048], + feat_strides=[8, 16, 32], + hidden_dim=256, + nhead=8, + dim_feedforward=1024, + dropout=0.0, + enc_act="gelu", + use_encoder_idx=[2], + num_encoder_layers=1, + pe_temperature=10000, + expansion=1.0, + depth_mult=1.0, + act="silu", + eval_spatial_size=None, + ): + super().__init__() + self.in_channels = in_channels + self.feat_strides = feat_strides + self.hidden_dim = hidden_dim + self.use_encoder_idx = use_encoder_idx + self.num_encoder_layers = num_encoder_layers + self.pe_temperature = pe_temperature + self.eval_spatial_size = eval_spatial_size + self.out_channels = [hidden_dim for _ in range(len(in_channels))] + self.out_strides = feat_strides + + # channel projection + self.input_proj = nn.ModuleList() + for in_channel in in_channels: + proj = nn.Sequential( + OrderedDict( + [ + ("conv", nn.Conv2d(in_channel, hidden_dim, kernel_size=1, bias=False)), + ("norm", nn.BatchNorm2d(hidden_dim)), + ] + ) + ) + + self.input_proj.append(proj) + + # encoder transformer + encoder_layer = TransformerEncoderLayer( + hidden_dim, + nhead=nhead, + dim_feedforward=dim_feedforward, + dropout=dropout, + activation=enc_act, + ) + + self.encoder = nn.ModuleList( + [ + TransformerEncoder(copy.deepcopy(encoder_layer), num_encoder_layers) + for _ in range(len(use_encoder_idx)) + ] + ) + + # top-down fpn + self.lateral_convs = nn.ModuleList() + self.fpn_blocks = nn.ModuleList() + for _ in range(len(in_channels) - 1, 0, -1): + self.lateral_convs.append(ConvNormLayer_fuse(hidden_dim, hidden_dim, 1, 1)) + self.fpn_blocks.append( + RepNCSPELAN4( + hidden_dim * 2, + hidden_dim, + hidden_dim * 2, + round(expansion * hidden_dim // 2), + round(3 * depth_mult), + ) + # CSPLayer(hidden_dim * 2, hidden_dim, round(3 * depth_mult), act=act, expansion=expansion, bottletype=VGGBlock) + ) + + # bottom-up pan + self.downsample_convs = nn.ModuleList() + self.pan_blocks = nn.ModuleList() + for _ in range(len(in_channels) - 1): + self.downsample_convs.append( + nn.Sequential( + SCDown(hidden_dim, hidden_dim, 3, 2), + ) + ) + self.pan_blocks.append( + RepNCSPELAN4( + hidden_dim * 2, + hidden_dim, + hidden_dim * 2, + round(expansion * hidden_dim // 2), + round(3 * depth_mult), + ) + # CSPLayer(hidden_dim * 2, hidden_dim, round(3 * depth_mult), act=act, expansion=expansion, bottletype=VGGBlock) + ) + + self._reset_parameters() + + def _reset_parameters(self): + if self.eval_spatial_size: + for idx in self.use_encoder_idx: + stride = self.feat_strides[idx] + pos_embed = self.build_2d_sincos_position_embedding( + self.eval_spatial_size[1] // stride, + self.eval_spatial_size[0] // stride, + self.hidden_dim, + self.pe_temperature, + ) + setattr(self, f"pos_embed{idx}", pos_embed) + # self.register_buffer(f'pos_embed{idx}', pos_embed) + + @staticmethod + def build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0): + """ """ + grid_w = torch.arange(int(w), dtype=torch.float32) + grid_h = torch.arange(int(h), dtype=torch.float32) + grid_w, grid_h = torch.meshgrid(grid_w, grid_h, indexing="ij") + assert ( + embed_dim % 4 == 0 + ), "Embed dimension must be divisible by 4 for 2D sin-cos position embedding" + pos_dim = embed_dim // 4 + omega = torch.arange(pos_dim, dtype=torch.float32) / pos_dim + omega = 1.0 / (temperature**omega) + + out_w = grid_w.flatten()[..., None] @ omega[None] + out_h = grid_h.flatten()[..., None] @ omega[None] + + return torch.concat([out_w.sin(), out_w.cos(), out_h.sin(), out_h.cos()], dim=1)[None, :, :] + + def forward(self, feats): + assert len(feats) == len(self.in_channels) + proj_feats = [self.input_proj[i](feat) for i, feat in enumerate(feats)] + + # encoder + if self.num_encoder_layers > 0: + for i, enc_ind in enumerate(self.use_encoder_idx): + h, w = proj_feats[enc_ind].shape[2:] + # flatten [B, C, H, W] to [B, HxW, C] + src_flatten = proj_feats[enc_ind].flatten(2).permute(0, 2, 1) + if self.training or self.eval_spatial_size is None: + pos_embed = self.build_2d_sincos_position_embedding( + w, h, self.hidden_dim, self.pe_temperature + ).to(src_flatten.device) + else: + pos_embed = getattr(self, f"pos_embed{enc_ind}", None).to(src_flatten.device) + + memory: torch.Tensor = self.encoder[i](src_flatten, pos_embed=pos_embed) + proj_feats[enc_ind] = ( + memory.permute(0, 2, 1).reshape(-1, self.hidden_dim, h, w).contiguous() + ) + + # broadcasting and fusion + inner_outs = [proj_feats[-1]] + for idx in range(len(self.in_channels) - 1, 0, -1): + feat_heigh = inner_outs[0] + feat_low = proj_feats[idx - 1] + feat_heigh = self.lateral_convs[len(self.in_channels) - 1 - idx](feat_heigh) + inner_outs[0] = feat_heigh + upsample_feat = F.interpolate(feat_heigh, scale_factor=2.0, mode="nearest") + inner_out = self.fpn_blocks[len(self.in_channels) - 1 - idx]( + torch.concat([upsample_feat, feat_low], dim=1) + ) + inner_outs.insert(0, inner_out) + + outs = [inner_outs[0]] + for idx in range(len(self.in_channels) - 1): + feat_low = outs[-1] + feat_height = inner_outs[idx + 1] + downsample_feat = self.downsample_convs[idx](feat_low) + out = self.pan_blocks[idx](torch.concat([downsample_feat, feat_height], dim=1)) + outs.append(out) + + return outs diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/matcher.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/matcher.py new file mode 100644 index 0000000..debe797 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/matcher.py @@ -0,0 +1,160 @@ +""" +Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved +Modules to compute the matching cost and solve the corresponding LSAP. + +Copyright (c) 2024 The D-FINE Authors All Rights Reserved. +""" + +from typing import Dict + +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F +from scipy.optimize import linear_sum_assignment + +from ...core import register +from .box_ops import box_cxcywh_to_xyxy, generalized_box_iou + + +@register() +class HungarianMatcher(nn.Module): + """This class computes an assignment between the targets and the predictions of the network + + For efficiency reasons, the targets don't include the no_object. Because of this, in general, + there are more predictions than targets. In this case, we do a 1-to-1 matching of the best predictions, + while the others are un-matched (and thus treated as non-objects). + """ + + __share__ = [ + "use_focal_loss", + ] + + def __init__(self, weight_dict, use_focal_loss=False, alpha=0.25, gamma=2.0): + """Creates the matcher + + Params: + cost_class: This is the relative weight of the classification error in the matching cost + cost_bbox: This is the relative weight of the L1 error of the bounding box coordinates in the matching cost + cost_giou: This is the relative weight of the giou loss of the bounding box in the matching cost + """ + super().__init__() + self.cost_class = weight_dict["cost_class"] + self.cost_bbox = weight_dict["cost_bbox"] + self.cost_giou = weight_dict["cost_giou"] + + self.use_focal_loss = use_focal_loss + self.alpha = alpha + self.gamma = gamma + + assert ( + self.cost_class != 0 or self.cost_bbox != 0 or self.cost_giou != 0 + ), "all costs cant be 0" + + @torch.no_grad() + def forward(self, outputs: Dict[str, torch.Tensor], targets, return_topk=False): + """Performs the matching + + Params: + outputs: This is a dict that contains at least these entries: + "pred_logits": Tensor of dim [batch_size, num_queries, num_classes] with the classification logits + "pred_boxes": Tensor of dim [batch_size, num_queries, 4] with the predicted box coordinates + + targets: This is a list of targets (len(targets) = batch_size), where each target is a dict containing: + "labels": Tensor of dim [num_target_boxes] (where num_target_boxes is the number of ground-truth + objects in the target) containing the class labels + "boxes": Tensor of dim [num_target_boxes, 4] containing the target box coordinates + + Returns: + A list of size batch_size, containing tuples of (index_i, index_j) where: + - index_i is the indices of the selected predictions (in order) + - index_j is the indices of the corresponding selected targets (in order) + For each batch element, it holds: + len(index_i) = len(index_j) = min(num_queries, num_target_boxes) + """ + bs, num_queries = outputs["pred_logits"].shape[:2] + + # We flatten to compute the cost matrices in a batch + if self.use_focal_loss: + out_prob = F.sigmoid(outputs["pred_logits"].flatten(0, 1)) + else: + out_prob = ( + outputs["pred_logits"].flatten(0, 1).softmax(-1) + ) # [batch_size * num_queries, num_classes] + + out_bbox = outputs["pred_boxes"].flatten(0, 1) # [batch_size * num_queries, 4] + + # Also concat the target labels and boxes + tgt_ids = torch.cat([v["labels"] for v in targets]) + tgt_bbox = torch.cat([v["boxes"] for v in targets]) + + # Compute the classification cost. Contrary to the loss, we don't use the NLL, + # but approximate it in 1 - proba[target class]. + # The 1 is a constant that doesn't change the matching, it can be ommitted. + if self.use_focal_loss: + out_prob = out_prob[:, tgt_ids] + neg_cost_class = ( + (1 - self.alpha) * (out_prob**self.gamma) * (-(1 - out_prob + 1e-8).log()) + ) + pos_cost_class = ( + self.alpha * ((1 - out_prob) ** self.gamma) * (-(out_prob + 1e-8).log()) + ) + cost_class = pos_cost_class - neg_cost_class + else: + cost_class = -out_prob[:, tgt_ids] + + # Compute the L1 cost between boxes + cost_bbox = torch.cdist(out_bbox, tgt_bbox, p=1) + + # Compute the giou cost betwen boxes + cost_giou = -generalized_box_iou(box_cxcywh_to_xyxy(out_bbox), box_cxcywh_to_xyxy(tgt_bbox)) + + # Final cost matrix 3 * self.cost_bbox + 2 * self.cost_class + self.cost_giou + C = self.cost_bbox * cost_bbox + self.cost_class * cost_class + self.cost_giou * cost_giou + C = C.view(bs, num_queries, -1).cpu() + + sizes = [len(v["boxes"]) for v in targets] + C = torch.nan_to_num(C, nan=1.0) + indices_pre = [linear_sum_assignment(c[i]) for i, c in enumerate(C.split(sizes, -1))] + indices = [ + (torch.as_tensor(i, dtype=torch.int64), torch.as_tensor(j, dtype=torch.int64)) + for i, j in indices_pre + ] + + # Compute topk indices + if return_topk: + return { + "indices_o2m": self.get_top_k_matches( + C, sizes=sizes, k=return_topk, initial_indices=indices_pre + ) + } + + return {"indices": indices} # , 'indices_o2m': C.min(-1)[1]} + + def get_top_k_matches(self, C, sizes, k=1, initial_indices=None): + indices_list = [] + # C_original = C.clone() + for i in range(k): + indices_k = ( + [linear_sum_assignment(c[i]) for i, c in enumerate(C.split(sizes, -1))] + if i > 0 + else initial_indices + ) + indices_list.append( + [ + (torch.as_tensor(i, dtype=torch.int64), torch.as_tensor(j, dtype=torch.int64)) + for i, j in indices_k + ] + ) + for c, idx_k in zip(C.split(sizes, -1), indices_k): + idx_k = np.stack(idx_k) + c[:, idx_k] = 1e6 + indices_list = [ + ( + torch.cat([indices_list[i][j][0] for i in range(k)], dim=0), + torch.cat([indices_list[i][j][1] for i in range(k)], dim=0), + ) + for j in range(len(sizes)) + ] + # C.copy_(C_original) + return indices_list diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/postprocessor.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/postprocessor.py new file mode 100644 index 0000000..b1516b6 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/postprocessor.py @@ -0,0 +1,93 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import torch +import torch.nn as nn +import torch.nn.functional as F +import torchvision + +from ...core import register + +__all__ = ["DFINEPostProcessor"] + + +def mod(a, b): + out = a - a // b * b + return out + + +@register() +class DFINEPostProcessor(nn.Module): + __share__ = ["num_classes", "use_focal_loss", "num_top_queries", "remap_mscoco_category"] + + def __init__( + self, num_classes=80, use_focal_loss=True, num_top_queries=300, remap_mscoco_category=False + ) -> None: + super().__init__() + self.use_focal_loss = use_focal_loss + self.num_top_queries = num_top_queries + self.num_classes = int(num_classes) + self.remap_mscoco_category = remap_mscoco_category + self.deploy_mode = False + + def extra_repr(self) -> str: + return f"use_focal_loss={self.use_focal_loss}, num_classes={self.num_classes}, num_top_queries={self.num_top_queries}" + + # def forward(self, outputs, orig_target_sizes): + def forward(self, outputs, orig_target_sizes: torch.Tensor): + logits, boxes = outputs["pred_logits"], outputs["pred_boxes"] + # orig_target_sizes = torch.stack([t["orig_size"] for t in targets], dim=0) + + bbox_pred = torchvision.ops.box_convert(boxes, in_fmt="cxcywh", out_fmt="xyxy") + bbox_pred *= orig_target_sizes.repeat(1, 2).unsqueeze(1) + + if self.use_focal_loss: + scores = F.sigmoid(logits) + scores, index = torch.topk(scores.flatten(1), self.num_top_queries, dim=-1) + # TODO for older tensorrt + # labels = index % self.num_classes + labels = mod(index, self.num_classes) + index = index // self.num_classes + boxes = bbox_pred.gather( + dim=1, index=index.unsqueeze(-1).repeat(1, 1, bbox_pred.shape[-1]) + ) + + else: + scores = F.softmax(logits)[:, :, :-1] + scores, labels = scores.max(dim=-1) + if scores.shape[1] > self.num_top_queries: + scores, index = torch.topk(scores, self.num_top_queries, dim=-1) + labels = torch.gather(labels, dim=1, index=index) + boxes = torch.gather( + boxes, dim=1, index=index.unsqueeze(-1).tile(1, 1, boxes.shape[-1]) + ) + + # TODO for onnx export + if self.deploy_mode: + return labels, boxes, scores + + # TODO + if self.remap_mscoco_category: + from ...data.dataset import mscoco_label2category + + labels = ( + torch.tensor([mscoco_label2category[int(x.item())] for x in labels.flatten()]) + .to(boxes.device) + .reshape(labels.shape) + ) + + results = [] + for lab, box, sco in zip(labels, boxes, scores): + result = dict(labels=lab, boxes=box, scores=sco) + results.append(result) + + return results + + def deploy( + self, + ): + self.eval() + self.deploy_mode = True + return self diff --git a/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/utils.py b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/utils.py new file mode 100644 index 0000000..dffdcb5 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/src/zoo/dfine/utils.py @@ -0,0 +1,182 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import math +from typing import List + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +def inverse_sigmoid(x: torch.Tensor, eps: float = 1e-5) -> torch.Tensor: + x = x.clip(min=0.0, max=1.0) + return torch.log(x.clip(min=eps) / (1 - x).clip(min=eps)) + + +def bias_init_with_prob(prior_prob=0.01): + """initialize conv/fc bias value according to a given probability value.""" + bias_init = float(-math.log((1 - prior_prob) / prior_prob)) + return bias_init + + +def deformable_attention_core_func( + value, value_spatial_shapes, sampling_locations, attention_weights +): + """ + Args: + value (Tensor): [bs, value_length, n_head, c] + value_spatial_shapes (Tensor|List): [n_levels, 2] + value_level_start_index (Tensor|List): [n_levels] + sampling_locations (Tensor): [bs, query_length, n_head, n_levels, n_points, 2] + attention_weights (Tensor): [bs, query_length, n_head, n_levels, n_points] + + Returns: + output (Tensor): [bs, Length_{query}, C] + """ + bs, _, n_head, c = value.shape + _, Len_q, _, n_levels, n_points, _ = sampling_locations.shape + + split_shape = [h * w for h, w in value_spatial_shapes] + value_list = value.split(split_shape, dim=1) + sampling_grids = 2 * sampling_locations - 1 + sampling_value_list = [] + for level, (h, w) in enumerate(value_spatial_shapes): + # N_, H_*W_, M_, D_ -> N_, H_*W_, M_*D_ -> N_, M_*D_, H_*W_ -> N_*M_, D_, H_, W_ + value_l_ = value_list[level].flatten(2).permute(0, 2, 1).reshape(bs * n_head, c, h, w) + # N_, Lq_, M_, P_, 2 -> N_, M_, Lq_, P_, 2 -> N_*M_, Lq_, P_, 2 + sampling_grid_l_ = sampling_grids[:, :, :, level].permute(0, 2, 1, 3, 4).flatten(0, 1) + # N_*M_, D_, Lq_, P_ + sampling_value_l_ = F.grid_sample( + value_l_, sampling_grid_l_, mode="bilinear", padding_mode="zeros", align_corners=False + ) + sampling_value_list.append(sampling_value_l_) + # (N_, Lq_, M_, L_, P_) -> (N_, M_, Lq_, L_, P_) -> (N_*M_, 1, Lq_, L_*P_) + attention_weights = attention_weights.permute(0, 2, 1, 3, 4).reshape( + bs * n_head, 1, Len_q, n_levels * n_points + ) + output = ( + (torch.stack(sampling_value_list, dim=-2).flatten(-2) * attention_weights) + .sum(-1) + .reshape(bs, n_head * c, Len_q) + ) + + return output.permute(0, 2, 1) + + +def deformable_attention_core_func_v2( + value: torch.Tensor, + value_spatial_shapes, + sampling_locations: torch.Tensor, + attention_weights: torch.Tensor, + num_points_list: List[int], + method="default", +): + """ + Args: + value (Tensor): [bs, value_length, n_head, c] + value_spatial_shapes (Tensor|List): [n_levels, 2] + value_level_start_index (Tensor|List): [n_levels] + sampling_locations (Tensor): [bs, query_length, n_head, n_levels * n_points, 2] + attention_weights (Tensor): [bs, query_length, n_head, n_levels * n_points] + + Returns: + output (Tensor): [bs, Length_{query}, C] + """ + bs, n_head, c, _ = value[0].shape + _, Len_q, _, _, _ = sampling_locations.shape + + # sampling_offsets [8, 480, 8, 12, 2] + if method == "default": + sampling_grids = 2 * sampling_locations - 1 + + elif method == "discrete": + sampling_grids = sampling_locations + + sampling_grids = sampling_grids.permute(0, 2, 1, 3, 4).flatten(0, 1) + sampling_locations_list = sampling_grids.split(num_points_list, dim=-2) + + sampling_value_list = [] + for level, (h, w) in enumerate(value_spatial_shapes): + value_l = value[level].reshape(bs * n_head, c, h, w) + sampling_grid_l: torch.Tensor = sampling_locations_list[level] + + if method == "default": + sampling_value_l = F.grid_sample( + value_l, sampling_grid_l, mode="bilinear", padding_mode="zeros", align_corners=False + ) + + elif method == "discrete": + # n * m, seq, n, 2 + sampling_coord = ( + sampling_grid_l * torch.tensor([[w, h]], device=value_l.device) + 0.5 + ).to(torch.int64) + + # FIX ME? for rectangle input + sampling_coord = sampling_coord.clamp(0, h - 1) + sampling_coord = sampling_coord.reshape(bs * n_head, Len_q * num_points_list[level], 2) + + s_idx = ( + torch.arange(sampling_coord.shape[0], device=value_l.device) + .unsqueeze(-1) + .repeat(1, sampling_coord.shape[1]) + ) + sampling_value_l: torch.Tensor = value_l[ + s_idx, :, sampling_coord[..., 1], sampling_coord[..., 0] + ] # n l c + + sampling_value_l = sampling_value_l.permute(0, 2, 1).reshape( + bs * n_head, c, Len_q, num_points_list[level] + ) + + sampling_value_list.append(sampling_value_l) + + attn_weights = attention_weights.permute(0, 2, 1, 3).reshape( + bs * n_head, 1, Len_q, sum(num_points_list) + ) + weighted_sample_locs = torch.concat(sampling_value_list, dim=-1) * attn_weights + output = weighted_sample_locs.sum(-1).reshape(bs, n_head * c, Len_q) + + return output.permute(0, 2, 1) + + +def get_activation(act: str, inpace: bool = True): + """get activation""" + if act is None: + return nn.Identity() + + elif isinstance(act, nn.Module): + return act + + act = act.lower() + + if act == "silu" or act == "swish": + m = nn.SiLU() + + elif act == "relu": + m = nn.ReLU() + + elif act == "leaky_relu": + m = nn.LeakyReLU() + + elif act == "silu": + m = nn.SiLU() + + elif act == "gelu": + m = nn.GELU() + + elif act == "hardsigmoid": + m = nn.Hardsigmoid() + + else: + raise RuntimeError("") + + if hasattr(m, "inplace"): + m.inplace = inpace + + return m diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/dataset.py b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/dataset.py new file mode 100644 index 0000000..0eaeeef --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/dataset.py @@ -0,0 +1,113 @@ +""" +Copied from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright(c) 2023 lyuwenyu. All Rights Reserved. +""" + +import glob +import os + +import torch +import torch.utils.data as data +import torchvision +import torchvision.transforms as T +import torchvision.transforms.functional as F +from PIL import Image + +Image.MAX_IMAGE_PIXELS = None + + +class ToTensor(T.ToTensor): + def __init__(self) -> None: + super().__init__() + + def __call__(self, pic): + if isinstance(pic, torch.Tensor): + return pic + return super().__call__(pic) + + +class PadToSize(T.Pad): + def __init__(self, size, fill=0, padding_mode="constant"): + super().__init__(0, fill, padding_mode) + self.size = size + self.fill = fill + + def __call__(self, img): + """ + Args: + img (PIL Image or Tensor): Image to be padded. + + Returns: + PIL Image or Tensor: Padded image. + """ + w, h = F.get_image_size(img) + padding = (0, 0, self.size[0] - w, self.size[1] - h) + return F.pad(img, padding, self.fill, self.padding_mode) + + +class Dataset(data.Dataset): + def __init__(self, img_dir: str = "", preprocess: T.Compose = None, device="cuda:0") -> None: + super().__init__() + + self.device = device + self.size = 640 + + self.im_path_list = list(glob.glob(os.path.join(img_dir, "*.jpg"))) + + if preprocess is None: + self.preprocess = T.Compose( + [ + T.Resize(size=639, max_size=640), + PadToSize(size=(640, 640), fill=114), + ToTensor(), + T.ConvertImageDtype(torch.float), + ] + ) + else: + self.preprocess = preprocess + + def __len__( + self, + ): + return len(self.im_path_list) + + def __getitem__(self, index): + # im = Image.open(self.img_path_list[index]).convert('RGB') + im = torchvision.io.read_file(self.im_path_list[index]) + im = torchvision.io.decode_jpeg( + im, mode=torchvision.io.ImageReadMode.RGB, device=self.device + ) + _, h, w = im.shape # c,h,w + + im = self.preprocess(im) + + blob = { + "images": im, + "im_shape": torch.tensor([self.size, self.size]).to(im.device), + "scale_factor": torch.tensor([self.size / h, self.size / w]).to(im.device), + "orig_target_sizes": torch.tensor([w, h]).to(im.device), + } + + return blob + + @staticmethod + def post_process(): + pass + + @staticmethod + def collate_fn(): + pass + + +def draw_nms_result(blob, outputs, draw_score_threshold=0.25, name=""): + """show result + Keys: + 'num_dets', 'det_boxes', 'det_scores', 'det_classes' + """ + for i in range(blob["image"].shape[0]): + det_scores = outputs["det_scores"][i] + det_boxes = outputs["det_boxes"][i][det_scores > draw_score_threshold] + + im = (blob["image"][i] * 255).to(torch.uint8) + im = torchvision.utils.draw_bounding_boxes(im, boxes=det_boxes, width=2) + Image.fromarray(im.permute(1, 2, 0).cpu().numpy()).save(f"test_{name}_{i}.jpg") diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/get_info.py b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/get_info.py new file mode 100644 index 0000000..bcef786 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/get_info.py @@ -0,0 +1,60 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import os +import sys + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "../..")) + +import argparse + +import torch +import torch.nn as nn +from calflops import calculate_flops + +from src.core import YAMLConfig + + +def custom_repr(self): + return f"{{Tensor:{tuple(self.shape)}}} {original_repr(self)}" + + +original_repr = torch.Tensor.__repr__ +torch.Tensor.__repr__ = custom_repr + + +def main( + args, +): + """main""" + cfg = YAMLConfig(args.config, resume=None) + + class Model_for_flops(nn.Module): + def __init__( + self, + ) -> None: + super().__init__() + self.model = cfg.model.deploy() + + def forward(self, images): + outputs = self.model(images) + return outputs + + model = Model_for_flops().eval() + + flops, macs, _ = calculate_flops( + model=model, input_shape=(1, 3, 640, 640), output_as_string=True, output_precision=4 + ) + params = sum(p.numel() for p in model.parameters()) + print("Model FLOPs:%s MACs:%s Params:%s \n" % (flops, macs, params)) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + "--config", "-c", default="configs/dfine/dfine_hgnetv2_l_coco.yml", type=str + ) + args = parser.parse_args() + + main(args) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/requirements.txt b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/requirements.txt new file mode 100644 index 0000000..55a3c0f --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/requirements.txt @@ -0,0 +1,6 @@ +onnxruntime +tensorrt +pycuda +calflops +tqdm +# onnx_graphsurgeon # for YOLOs diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/trt_benchmark.py b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/trt_benchmark.py new file mode 100644 index 0000000..5b8b3b5 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/trt_benchmark.py @@ -0,0 +1,214 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import argparse +import glob +import os +import time +from collections import OrderedDict, namedtuple + +import numpy as np +import pycuda.driver as cuda +import tensorrt as trt +import torch +from dataset import Dataset +from tqdm import tqdm +from utils import TimeProfiler + + +def parse_args(): + parser = argparse.ArgumentParser(description="Argument Parser Example") + parser.add_argument( + "--infer_dir", + type=str, + default="/data/COCO2017/val2017", + help="Directory for images to perform inference on.", + ) + parser.add_argument("--engine_dir", type=str, help="Directory containing model engine files.") + parser.add_argument( + "--busy", action="store_true", help="Flag to indicate that other processes may be running." + ) + args = parser.parse_args() + return args + + +class TRTInference(object): + def __init__( + self, engine_path, device="cuda", backend="torch", max_batch_size=32, verbose=False + ): + self.engine_path = engine_path + self.device = device + self.backend = backend + self.max_batch_size = max_batch_size + + self.logger = trt.Logger(trt.Logger.VERBOSE) if verbose else trt.Logger(trt.Logger.INFO) + self.engine = self.load_engine(engine_path) + self.context = self.engine.create_execution_context() + self.bindings = self.get_bindings( + self.engine, self.context, self.max_batch_size, self.device + ) + self.bindings_addr = OrderedDict((n, v.ptr) for n, v in self.bindings.items()) + self.input_names = self.get_input_names() + self.output_names = self.get_output_names() + + if self.backend == "cuda": + self.stream = cuda.Stream() + self.time_profile = TimeProfiler() + self.time_profile_dataset = TimeProfiler() + + def init(self): + self.dynamic = False + + def load_engine(self, path): + trt.init_libnvinfer_plugins(self.logger, "") + with open(path, "rb") as f, trt.Runtime(self.logger) as runtime: + return runtime.deserialize_cuda_engine(f.read()) + + def get_input_names(self): + names = [] + for _, name in enumerate(self.engine): + if self.engine.get_tensor_mode(name) == trt.TensorIOMode.INPUT: + names.append(name) + return names + + def get_output_names(self): + names = [] + for _, name in enumerate(self.engine): + if self.engine.get_tensor_mode(name) == trt.TensorIOMode.OUTPUT: + names.append(name) + return names + + def get_bindings(self, engine, context, max_batch_size=32, device=None): + Binding = namedtuple("Binding", ("name", "dtype", "shape", "data", "ptr")) + bindings = OrderedDict() + for i, name in enumerate(engine): + shape = engine.get_tensor_shape(name) + dtype = trt.nptype(engine.get_tensor_dtype(name)) + + if shape[0] == -1: + dynamic = True + shape[0] = max_batch_size + if engine.get_tensor_mode(name) == trt.TensorIOMode.INPUT: + context.set_input_shape(name, shape) + + if self.backend == "cuda": + if engine.get_tensor_mode(name) == trt.TensorIOMode.INPUT: + data = np.random.randn(*shape).astype(dtype) + ptr = cuda.mem_alloc(data.nbytes) + bindings[name] = Binding(name, dtype, shape, data, ptr) + else: + data = cuda.pagelocked_empty(trt.volume(shape), dtype) + ptr = cuda.mem_alloc(data.nbytes) + bindings[name] = Binding(name, dtype, shape, data, ptr) + else: + data = torch.from_numpy(np.empty(shape, dtype=dtype)).to(device) + bindings[name] = Binding(name, dtype, shape, data, data.data_ptr()) + return bindings + + def run_torch(self, blob): + for n in self.input_names: + if self.bindings[n].shape != blob[n].shape: + self.context.set_input_shape(n, blob[n].shape) + self.bindings[n] = self.bindings[n]._replace(shape=blob[n].shape) + + self.bindings_addr.update({n: blob[n].data_ptr() for n in self.input_names}) + self.context.execute_v2(list(self.bindings_addr.values())) + outputs = {n: self.bindings[n].data for n in self.output_names} + return outputs + + def async_run_cuda(self, blob): + for n in self.input_names: + cuda.memcpy_htod_async(self.bindings_addr[n], blob[n], self.stream) + + bindings_addr = [int(v) for _, v in self.bindings_addr.items()] + self.context.execute_async_v2(bindings=bindings_addr, stream_handle=self.stream.handle) + + outputs = {} + for n in self.output_names: + cuda.memcpy_dtoh_async(self.bindings[n].data, self.bindings[n].ptr, self.stream) + outputs[n] = self.bindings[n].data + + self.stream.synchronize() + + return outputs + + def __call__(self, blob): + if self.backend == "torch": + return self.run_torch(blob) + elif self.backend == "cuda": + return self.async_run_cuda(blob) + + def synchronize(self): + if self.backend == "torch" and torch.cuda.is_available(): + torch.cuda.synchronize() + elif self.backend == "cuda": + self.stream.synchronize() + + def warmup(self, blob, n): + for _ in range(n): + _ = self(blob) + + def speed(self, blob, n, nonempty_process=False): + times = [] + self.time_profile_dataset.reset() + for i in tqdm(range(n), desc="Running Inference", unit="iteration"): + self.time_profile.reset() + with self.time_profile_dataset: + img = blob[i] + if img["images"] is not None: + img["image"] = img["input"] = img["images"].unsqueeze(0) + else: + img["images"] = img["input"] = img["image"].unsqueeze(0) + with self.time_profile: + _ = self(img) + times.append(self.time_profile.total) + + # end-to-end model only + times = sorted(times) + if len(times) > 100 and nonempty_process: + times = times[:100] + + avg_time = sum(times) / len(times) # Calculate the average of the remaining times + return avg_time + + +def main(): + FLAGS = parse_args() + dataset = Dataset(FLAGS.infer_dir) + im = torch.ones(1, 3, 640, 640).cuda() + blob = { + "image": im, + "images": im, + "input": im, + "im_shape": torch.tensor([640, 640]).to(im.device), + "scale_factor": torch.tensor([1, 1]).to(im.device), + "orig_target_sizes": torch.tensor([640, 640]).to(im.device), + } + + engine_files = glob.glob(os.path.join(FLAGS.engine_dir, "*.engine")) + results = [] + + for engine_file in engine_files: + print(f"Testing engine: {engine_file}") + model = TRTInference(engine_file, max_batch_size=1, verbose=False) + model.init() + model.warmup(blob, 1000) + t = [] + for _ in range(1): + t.append(model.speed(dataset, 1000, FLAGS.busy)) + avg_latency = 1000 * torch.tensor(t).mean() + results.append((engine_file, avg_latency)) + print(f"Engine: {engine_file}, Latency: {avg_latency:.2f} ms") + + del model + torch.cuda.empty_cache() + time.sleep(1) + + sorted_results = sorted(results, key=lambda x: x[1]) + for engine_file, latency in sorted_results: + print(f"Engine: {engine_file}, Latency: {latency:.2f} ms") + + +if __name__ == "__main__": + main() diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/utils.py b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/utils.py new file mode 100644 index 0000000..aaa6c1e --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/benchmark/utils.py @@ -0,0 +1,95 @@ +import contextlib +import time +from collections import OrderedDict + +import numpy as np +import onnx +import onnx_graphsurgeon +import torch +from PIL import Image + + +def to_binary_data(path, size=(640, 640), output_name="input_tensor.bin"): + """--loadInputs='image:input_tensor.bin'""" + im = Image.open(path).resize(size) + data = np.asarray(im, dtype=np.float32).transpose(2, 0, 1)[None] / 255.0 + data.tofile(output_name) + + +def yolo_insert_nms( + path, score_threshold=0.01, iou_threshold=0.7, max_output_boxes=300, simplify=False +): + """ + http://www.xavierdupre.fr/app/onnxcustom/helpsphinx/api/onnxops/onnx__EfficientNMS_TRT.html + https://huggingface.co/spaces/muttalib1326/Punjabi_Character_Detection/blob/3dd1e17054c64e5f6b2254278f96cfa2bf418cd4/utils/add_nms.py + """ + onnx_model = onnx.load(path) + + if simplify: + from onnxsim import simplify + + onnx_model, _ = simplify(onnx_model, overwrite_input_shapes={"image": [1, 3, 640, 640]}) + + graph = onnx_graphsurgeon.import_onnx(onnx_model) + graph.toposort() + graph.fold_constants() + graph.cleanup() + + topk = max_output_boxes + attrs = OrderedDict( + plugin_version="1", + background_class=-1, + max_output_boxes=topk, + score_threshold=score_threshold, + iou_threshold=iou_threshold, + score_activation=False, + box_coding=0, + ) + + outputs = [ + onnx_graphsurgeon.Variable("num_dets", np.int32, [-1, 1]), + onnx_graphsurgeon.Variable("det_boxes", np.float32, [-1, topk, 4]), + onnx_graphsurgeon.Variable("det_scores", np.float32, [-1, topk]), + onnx_graphsurgeon.Variable("det_classes", np.int32, [-1, topk]), + ] + + graph.layer( + op="EfficientNMS_TRT", + name="batched_nms", + inputs=[graph.outputs[0], graph.outputs[1]], + outputs=outputs, + attrs=attrs, + ) + + graph.outputs = outputs + graph.cleanup().toposort() + + onnx.save(onnx_graphsurgeon.export_onnx(graph), "yolo_w_nms.onnx") + + +class TimeProfiler(contextlib.ContextDecorator): + def __init__( + self, + ): + self.total = 0 + + def __enter__( + self, + ): + self.start = self.time() + return self + + def __exit__(self, type, value, traceback): + self.total += self.time() - self.start + + def reset( + self, + ): + self.total = 0 + + def time( + self, + ): + if torch.cuda.is_available(): + torch.cuda.synchronize() + return time.time() diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/dataset/remap_obj365.py b/backend/apps/algorithms/algorithm/DFINE/tools/dataset/remap_obj365.py new file mode 100644 index 0000000..9102eea --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/dataset/remap_obj365.py @@ -0,0 +1,153 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import argparse +import json +import os + + +def update_image_paths(images, new_prefix): + print("Updating image paths with new prefix...") + for img in images: + split = img["file_name"].split("/")[1:] + img["file_name"] = os.path.join(new_prefix, *split) + print("Image paths updated.") + return images + + +def create_split_annotations(original_annotations, split_image_ids, new_prefix, output_file): + print(f"Creating split annotations for {output_file}...") + new_images = [img for img in original_annotations["images"] if img["id"] in split_image_ids] + print(f"Number of images selected: {len(new_images)}") + if new_prefix is not None: + new_images = update_image_paths(new_images, new_prefix) + + new_annotations = { + "images": new_images, + "annotations": [ + ann for ann in original_annotations["annotations"] if ann["image_id"] in split_image_ids + ], + "categories": original_annotations["categories"], + } + print(f'Number of annotations selected: {len(new_annotations["annotations"])}') + with open(output_file, "w") as f: + json.dump(new_annotations, f) + print(f"Annotations saved to {output_file}") + + +def parse_arguments(): + parser = argparse.ArgumentParser(description="Split and update dataset annotations.") + parser.add_argument( + "--base_dir", + type=str, + required=True, + help="Base directory of the dataset, e.g., /data/Objects365/data", + ) + parser.add_argument( + "--new_val_size", + type=int, + default=5000, + help="Number of images to include in the new validation set (default: 5000)", + ) + parser.add_argument( + "--output_suffix", + type=str, + default="new", + help="Suffix to add to new annotation files (default: new)", + ) + return parser.parse_args() + + +def main(): + args = parse_arguments() + base_dir = args.base_dir + new_val_size = args.new_val_size + output_suffix = args.output_suffix + + # Define paths based on the base directory + original_train_ann_file = os.path.join(base_dir, "train", "zhiyuan_objv2_train.json") + original_val_ann_file = os.path.join(base_dir, "val", "zhiyuan_objv2_val.json") + + new_val_ann_file = os.path.join(base_dir, "val", f"{output_suffix}_zhiyuan_objv2_val.json") + new_train_ann_file = os.path.join( + base_dir, "train", f"{output_suffix}_zhiyuan_objv2_train.json" + ) + + # Check if original annotation files exist + if not os.path.isfile(original_train_ann_file): + print(f"Error: Training annotation file not found at {original_train_ann_file}") + return + if not os.path.isfile(original_val_ann_file): + print(f"Error: Validation annotation file not found at {original_val_ann_file}") + return + + # Load the original training and validation annotations + print("Loading original training annotations...") + with open(original_train_ann_file, "r") as f: + train_annotations = json.load(f) + print("Training annotations loaded.") + + print("Loading original validation annotations...") + with open(original_val_ann_file, "r") as f: + val_annotations = json.load(f) + print("Validation annotations loaded.") + + # Extract image IDs from the original validation set + print("Extracting image IDs from the validation set...") + val_image_ids = [img["id"] for img in val_annotations["images"]] + print(f"Total validation images: {len(val_image_ids)}") + + # Split image IDs for the new training and validation sets + print( + f"Splitting validation images into new validation set of size {new_val_size} and training set..." + ) + new_val_image_ids = val_image_ids[:new_val_size] + new_train_image_ids = val_image_ids[new_val_size:] + print(f"New validation set size: {len(new_val_image_ids)}") + print(f"New training set size from validation images: {len(new_train_image_ids)}") + + # Create new validation annotation file + print("Creating new validation annotations...") + create_split_annotations(val_annotations, new_val_image_ids, None, new_val_ann_file) + print("New validation annotations created.") + + # Combine the remaining validation images and annotations with the original training data + print("Preparing new training images and annotations...") + new_train_images = [ + img for img in val_annotations["images"] if img["id"] in new_train_image_ids + ] + print(f"Number of images from validation to add to training: {len(new_train_images)}") + new_train_images = update_image_paths(new_train_images, "images_from_val") + new_train_annotations = [ + ann for ann in val_annotations["annotations"] if ann["image_id"] in new_train_image_ids + ] + print(f"Number of annotations from validation to add to training: {len(new_train_annotations)}") + + # Add the original training images and annotations + print("Adding original training images and annotations...") + new_train_images.extend(train_annotations["images"]) + new_train_annotations.extend(train_annotations["annotations"]) + print(f"Total training images: {len(new_train_images)}") + print(f"Total training annotations: {len(new_train_annotations)}") + + # Create a new training annotation dictionary + print("Creating new training annotations dictionary...") + new_train_annotations_dict = { + "images": new_train_images, + "annotations": new_train_annotations, + "categories": train_annotations["categories"], + } + print("New training annotations dictionary created.") + + # Save the new training annotations + print("Saving new training annotations...") + with open(new_train_ann_file, "w") as f: + json.dump(new_train_annotations_dict, f) + print(f"New training annotations saved to {new_train_ann_file}") + + print("Processing completed successfully.") + + +if __name__ == "__main__": + main() diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/dataset/resize_obj365.py b/backend/apps/algorithms/algorithm/DFINE/tools/dataset/resize_obj365.py new file mode 100644 index 0000000..6ccaeac --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/dataset/resize_obj365.py @@ -0,0 +1,153 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import argparse +import json +import os +from concurrent.futures import ThreadPoolExecutor + +from PIL import Image + + +def resize_image_and_update_annotations(image_path, annotations, max_size=640): + print(f"Processing image: {image_path}") + try: + with Image.open(image_path) as img: + w, h = img.size + if max(w, h) <= max_size: + return annotations, w, h, False # No need to resize + + scale = max_size / max(w, h) + new_w = int(w * scale) + new_h = int(h * scale) + print(f"Resizing image to width={new_w}, height={new_h}") + + img = img.resize((new_w, new_h), Image.Resampling.LANCZOS) + new_image_path = image_path.replace(".jpg", "_resized.jpg") + img.save(new_image_path) + print(f"Resized image saved: {new_image_path}") + print(f"Original size: ({w}, {h}), New size: ({new_w}, {new_h})") + + # Update annotations + for ann in annotations: + ann["area"] = ann["area"] * (scale**2) + ann["bbox"] = [coord * scale for coord in ann["bbox"]] + if "orig_size" in ann: + ann["orig_size"] = (new_w, new_h) + if "size" in ann: + ann["size"] = (new_w, new_h) + + except Exception as e: + print(f"Error processing {image_path}: {e}") + return None + + return annotations, new_w, new_h, True + + +def resize_images_and_update_annotations(base_dir, subset, max_size=640, num_workers=4): + print(f"Starting to resize images and update annotations for subset: {subset}") + json_file = os.path.join(base_dir, subset, "new_zhiyuan_objv2_{}.json".format(subset)) + if not os.path.isfile(json_file): + print(f"Error: JSON file not found at {json_file}") + return + + print(f"Loading JSON file: {json_file}") + with open(json_file, "r") as f: + data = json.load(f) + print("JSON file loaded.") + + print("Preparing image annotations mapping...") + image_annotations = {img["id"]: [] for img in data["images"]} + for ann in data["annotations"]: + image_annotations[ann["image_id"]].append(ann) + print("Image annotations mapping prepared.") + + def process_image(image_info): + image_path = os.path.join(base_dir, subset, image_info["file_name"]) + results = resize_image_and_update_annotations( + image_path, image_annotations[image_info["id"]], max_size + ) + if results is None: + updated_annotations, new_w, new_h, resized = None, None, None, None + else: + updated_annotations, new_w, new_h, resized = results + return image_info, updated_annotations, new_w, new_h, resized + + print(f"Processing images with {num_workers} worker threads...") + with ThreadPoolExecutor(max_workers=num_workers) as executor: + results = list(executor.map(process_image, data["images"])) + print("Image processing completed.") + + new_images = [] + new_annotations = [] + + print("Updating image and annotation data...") + for image_info, updated_annotations, new_w, new_h, resized in results: + if updated_annotations is not None: + image_info["width"] = new_w + image_info["height"] = new_h + image_annotations[image_info["id"]] = updated_annotations + if resized: + image_info["file_name"] = image_info["file_name"].replace(".jpg", "_resized.jpg") + new_images.append(image_info) + new_annotations.extend(updated_annotations) + print(f"Total images processed: {len(new_images)}") + print(f"Total annotations updated: {len(new_annotations)}") + + new_data = { + "images": new_images, + "annotations": new_annotations, + "categories": data["categories"], + } + + new_json_file = json_file.replace(".json", "_resized.json") + print("Saving new training annotations...") + with open(new_json_file, "w") as f: + json.dump(new_data, f) + print(f"New JSON file saved to {new_json_file}") + + +def parse_arguments(): + parser = argparse.ArgumentParser( + description="Resize images and update dataset annotations for both train and val sets." + ) + parser.add_argument( + "--base_dir", + type=str, + required=True, + help="Base directory of the dataset, e.g., /data/Objects365/data", + ) + parser.add_argument( + "--max_size", + type=int, + default=640, + help="Maximum size for the longer side of the image (default: 640)", + ) + parser.add_argument( + "--num_workers", + type=int, + default=4, + help="Number of worker threads for parallel processing (default: 4)", + ) + args = parser.parse_args() + return args + + +def main(): + args = parse_arguments() + base_dir = args.base_dir + max_size = args.max_size + num_workers = args.num_workers + + subsets = ["train", "val"] + for subset in subsets: + print(f"Processing subset: {subset}") + resize_images_and_update_annotations( + base_dir=base_dir, subset=subset, max_size=max_size, num_workers=num_workers + ) + print("All subsets processed.") + + +if __name__ == "__main__": + main() diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/deployment/export_onnx.py b/backend/apps/algorithms/algorithm/DFINE/tools/deployment/export_onnx.py new file mode 100644 index 0000000..58a12cd --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/deployment/export_onnx.py @@ -0,0 +1,128 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import os +import sys + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "../..")) + +import torch +import torch.nn as nn + +from src.core import YAMLConfig + + +def main( + args, +): + """main""" + cfg = YAMLConfig(args.config, resume=args.resume) + + if "HGNetv2" in cfg.yaml_cfg: + cfg.yaml_cfg["HGNetv2"]["pretrained"] = False + + if args.resume: + checkpoint = torch.load(args.resume, map_location="cpu") + if "ema" in checkpoint: + state = checkpoint["ema"]["module"] + else: + state = checkpoint["model"] + + # NOTE load train mode state -> convert to deploy mode + cfg.model.load_state_dict(state) + + else: + # raise AttributeError('Only support resume to load model.state_dict by now.') + print("not load model.state_dict, use default init state dict...") + + class Model(nn.Module): + def __init__( + self, + ) -> None: + super().__init__() + self.model = cfg.model.deploy() + self.postprocessor = cfg.postprocessor.deploy() + + def forward(self, images, orig_target_sizes): + outputs = self.model(images) + outputs = self.postprocessor(outputs, orig_target_sizes) + return outputs + + model = Model() + + data = torch.rand(32, 3, 640, 640) + size = torch.tensor([[640, 640]]) + _ = model(data, size) + + dynamic_axes = { + "images": { + 0: "N", + }, + "orig_target_sizes": {0: "N"}, + } + + output_file = args.resume.replace(".pth", ".onnx") if args.resume else "model.onnx" + + torch.onnx.export( + model, + (data, size), + output_file, + input_names=["images", "orig_target_sizes"], + output_names=["labels", "boxes", "scores"], + dynamic_axes=dynamic_axes, + opset_version=16, + verbose=False, + do_constant_folding=True, + ) + + if args.check: + import onnx + + onnx_model = onnx.load(output_file) + onnx.checker.check_model(onnx_model) + print("Check export onnx model done...") + + if args.simplify: + import onnx + import onnxsim + + dynamic = True + # input_shapes = {'images': [1, 3, 640, 640], 'orig_target_sizes': [1, 2]} if dynamic else None + input_shapes = {"images": data.shape, "orig_target_sizes": size.shape} if dynamic else None + onnx_model_simplify, check = onnxsim.simplify(output_file, test_input_shapes=input_shapes) + onnx.save(onnx_model_simplify, output_file) + print(f"Simplify onnx model {check}...") + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument( + "--config", + "-c", + default="configs/dfine/dfine_hgnetv2_l_coco.yml", + type=str, + ) + parser.add_argument( + "--resume", + "-r", + type=str, + ) + parser.add_argument( + "--check", + action="store_true", + default=True, + ) + parser.add_argument( + "--simplify", + action="store_true", + default=True, + ) + args = parser.parse_args() + main(args) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/deployment/export_yolo_w_nms.py b/backend/apps/algorithms/algorithm/DFINE/tools/deployment/export_yolo_w_nms.py new file mode 100644 index 0000000..206ae26 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/deployment/export_yolo_w_nms.py @@ -0,0 +1,75 @@ +import numpy as np +import onnxruntime as ort +import torch +import torchvision +from utils import yolo_insert_nms + + +class YOLO11(torch.nn.Module): + def __init__(self, name) -> None: + super().__init__() + from ultralytics import YOLO + # Load a model + # build a new model from scratch + # model = YOLO(f'{name}.yaml') + + # load a pretrained model (recommended for training) + model = YOLO("yolo11n.pt") + self.model = model.model + + def forward(self, x): + """https://github.com/ultralytics/ultralytics/blob/main/ultralytics/nn/tasks.py#L216""" + pred: torch.Tensor = self.model(x)[0] # n 84 8400, + pred = pred.permute(0, 2, 1) + boxes, scores = pred.split([4, 80], dim=-1) + boxes = torchvision.ops.box_convert(boxes, in_fmt="cxcywh", out_fmt="xyxy") + + return boxes, scores + + +def export_onnx(name="yolov8n"): + """export onnx""" + m = YOLO11(name) + + x = torch.rand(1, 3, 640, 640) + dynamic_axes = {"image": {0: "-1"}} + torch.onnx.export( + m, + x, + f"{name}.onnx", + input_names=["image"], + output_names=["boxes", "scores"], + opset_version=13, + dynamic_axes=dynamic_axes, + ) + + data = np.random.rand(1, 3, 640, 640).astype(np.float32) + sess = ort.InferenceSession(f"{name}.onnx") + _ = sess.run(output_names=None, input_feed={"image": data}) + + import onnx + import onnxslim + + model_onnx = onnx.load(f"{name}.onnx") + model_onnx = onnxslim.slim(model_onnx) + onnx.save(model_onnx, f"{name}.onnx") + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("--name", type=str, default="yolo11n_tuned") + parser.add_argument("--score_threshold", type=float, default=0.01) + parser.add_argument("--iou_threshold", type=float, default=0.6) + parser.add_argument("--max_output_boxes", type=int, default=300) + args = parser.parse_args() + + export_onnx(name=args.name) + + yolo_insert_nms( + path=f"{args.name}.onnx", + score_threshold=args.score_threshold, + iou_threshold=args.iou_threshold, + max_output_boxes=args.max_output_boxes, + ) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/onnx/CMakeLists.txt b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/onnx/CMakeLists.txt new file mode 100644 index 0000000..85f2ade --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/onnx/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.5.1) + +project( + onnxExample + LANGUAGES CXX + VERSION 1.0.0 +) + +set(CMAKE_CXX_STANDARD 17) + +# Compiler options +if (MSVC) + add_compile_options(/W4 /permissive-) + add_definitions(-DNOMINMAX) +else() + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# Find ONNX Runtime package +find_package(onnxruntime REQUIRED) + +# Find OpenCV +find_package(OpenCV REQUIRED core imgcodecs imgproc) + +# Add executable +add_executable( + onnxExample + onnxExample.cpp +) + +# Link libraries +target_link_libraries( + onnxExample + onnxruntime::onnxruntime + opencv_core + opencv_imgcodecs + opencv_imgproc +) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/onnx/onnxExample.cpp b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/onnx/onnxExample.cpp new file mode 100644 index 0000000..62c98db --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/onnx/onnxExample.cpp @@ -0,0 +1,331 @@ + +#include +#include +#include +#include +#include +#include + + +std::vector input_names = { "images", "orig_target_sizes" }; +std::vector output_names = { "labels", "boxes", "scores" }; + +/** + * @brief Draws bounding boxes, labels, and confidence scores on an image. + * + * This function takes an image, a list of labels, bounding boxes, and their corresponding confidence scores, + * and overlays the bounding boxes and labels on the image. The bounding boxes are adjusted to compensate + * for resizing and padding applied during preprocessing. + * + * @param image The input image (cv::Mat) on which to draw the bounding boxes and labels. + * @param labels A vector of integer labels corresponding to detected objects. + * @param boxes A vector of bounding boxes, where each box is represented as {x1, y1, x2, y2}. + * @param scores A vector of confidence scores corresponding to the bounding boxes. + * @param ratio The scaling factor used to resize the image during preprocessing. + * @param pad_w The horizontal padding applied to the image during preprocessing. + * @param pad_h The vertical padding applied to the image during preprocessing. + * @param thrh The confidence threshold; only boxes with scores above this value will be drawn (default is 0.4). + * @return A cv::Mat object containing the original image with bounding boxes, labels, and scores drawn on it. + */ +cv::Mat draw( + const cv::Mat& image, + const std::vector& labels, + const std::vector>& boxes, + const std::vector& scores, + float ratio, + int pad_w, + int pad_h, + float thrh = 0.4) +{ + // Clone the input image to preserve the original image + cv::Mat img = image.clone(); + + // Iterate over all detected objects + for (size_t i = 0; i < scores.size(); ++i) { + // Only process objects with confidence scores above the threshold + if (scores[i] > thrh) { + // Adjust bounding box coordinates to account for resizing and padding + float x1 = (boxes[i][0] - pad_w) / ratio; // Top-left x-coordinate + float y1 = (boxes[i][1] - pad_h) / ratio; // Top-left y-coordinate + float x2 = (boxes[i][2] - pad_w) / ratio; // Bottom-right x-coordinate + float y2 = (boxes[i][3] - pad_h) / ratio; // Bottom-right y-coordinate + + // Draw the bounding box on the image + cv::rectangle(img, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(0, 0, 255), 1); + + // Prepare the label text with class label and confidence score + std::string label_text = "Label: " + std::to_string(labels[i]) + + " Conf: " + std::to_string(scores[i]); + + // Draw the label text above the bounding box + cv::putText(img, label_text, cv::Point(x1, y1 - 10), cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(255, 0, 0), 1); + } + } + + // Return the annotated image + return img; +} + + + +/** + * @brief Resizes an image while maintaining its aspect ratio and pads the resized image to a square of a specified size. + * + * This function scales the input image proportionally to fit within a square of the specified size while preserving + * the aspect ratio. It then pads the resized image with black pixels (value 0) to fill the remaining space, creating + * a square output image. + * + * @param image Input image (cv::Mat) to be resized and padded. + * @param size Target size of the square output image (both width and height will be equal to size). + * @param ratio Output parameter that will contain the scaling factor applied to the image. + * @param pad_w Output parameter that will contain the width of padding applied on the left and right sides. + * @param pad_h Output parameter that will contain the height of padding applied on the top and bottom sides. + * @return A cv::Mat object containing the resized and padded square image. + */ +cv::Mat resizeWithAspectRatio(const cv::Mat& image, int size, float& ratio, int& pad_w, int& pad_h) { + // Get the original width and height of the input image + int original_width = image.cols; + int original_height = image.rows; + + // Compute the scaling ratio to fit the image within the target size while maintaining aspect ratio + ratio = std::min(static_cast(size) / original_width, static_cast(size) / original_height); + int new_width = static_cast(original_width * ratio); // New width after scaling + int new_height = static_cast(original_height * ratio); // New height after scaling + + // Resize the image using the computed dimensions + cv::Mat resized_image; + cv::resize(image, resized_image, cv::Size(new_width, new_height)); + + // Calculate the padding required to center the resized image in the square output + pad_w = (size - new_width) / 2; // Horizontal padding (left and right) + pad_h = (size - new_height) / 2; // Vertical padding (top and bottom) + + // Create a square output image filled with black pixels (value 0) + cv::Mat padded_image(size, size, resized_image.type(), cv::Scalar(0, 0, 0)); + + // Copy the resized image into the center of the square output image + resized_image.copyTo(padded_image(cv::Rect(pad_w, pad_h, new_width, new_height))); + + // Return the resized and padded image + return padded_image; +} + +/** + * @brief Preprocess an input image, run inference using an ONNX model, and process the results. + * + * This function resizes the input image while maintaining its aspect ratio, prepares it for inference, + * runs the inference using the specified ONNX Runtime session, and processes the output to draw + * bounding boxes and labels on the original image. + * + * @param session The ONNX Runtime session used to perform inference. + * @param image The input image (OpenCV Mat) to process. + * @return cv::Mat The result image with bounding boxes and labels drawn. + */ +cv::Mat processImage(Ort::Session& session, const cv::Mat& image) { + float ratio; // Aspect ratio for resizing the image. + int pad_w, pad_h; // Padding added to maintain aspect ratio. + int target_size = 640; // Target size for resizing (typically square). + + // Step 1: Resize and pad the image to the target size while preserving the aspect ratio. + cv::Mat resized_image = resizeWithAspectRatio(image, target_size, ratio, pad_w, pad_h); + + // Step 2: Convert the resized image to RGB format as required by the model. + cv::cvtColor(resized_image, resized_image, cv::COLOR_BGR2RGB); + + // Step 3: Prepare the input tensor in NCHW format (channels-first). + std::vector input_dims = { 1, 3, target_size, target_size }; // Batch size = 1, Channels = 3, HxW = target_size. + std::vector input_tensor_values(input_dims[1] * input_dims[2] * input_dims[3]); + + // Populate the input tensor with normalized pixel values (range 0 to 1). + int index = 0; + for (int c = 0; c < 3; ++c) { // Loop through channels. + for (int i = 0; i < resized_image.rows; ++i) { // Loop through rows. + for (int j = 0; j < resized_image.cols; ++j) { // Loop through columns. + input_tensor_values[index++] = resized_image.at(i, j)[c] / 255.0f; // Normalize pixel value. + } + } + } + + // Step 4: Create ONNX Runtime input tensors. + Ort::MemoryInfo memory_info = Ort::MemoryInfo::CreateCpu(OrtDeviceAllocator, OrtMemTypeDefault); + + // Tensor for the preprocessed image. + Ort::Value input_tensor_images = Ort::Value::CreateTensor( + memory_info, input_tensor_values.data(), input_tensor_values.size(), + input_dims.data(), input_dims.size() + ); + + // Tensor for the original target sizes (optional, used for postprocessing). + std::vector orig_size_dims = { 1, 2 }; + std::vector orig_size_values = { + static_cast(resized_image.rows), + static_cast(resized_image.cols) + }; + Ort::Value input_tensor_orig_target_sizes = Ort::Value::CreateTensor( + memory_info, orig_size_values.data(), orig_size_values.size(), + orig_size_dims.data(), orig_size_dims.size() + ); + + // Step 5: Run inference on the session. + auto outputs = session.Run( + Ort::RunOptions{ nullptr }, // Default run options. + input_names.data(), // Names of input nodes. + std::array{std::move(input_tensor_images), std::move(input_tensor_orig_target_sizes)}.data(), + input_names.size(), // Number of inputs. + output_names.data(), // Names of output nodes. + output_names.size() // Number of outputs. + ); + + // Step 6: Extract and process model outputs. + auto labels_ptr = outputs[0].GetTensorMutableData(); // Labels for detected objects. + auto boxes_ptr = outputs[1].GetTensorMutableData(); // Bounding boxes. + auto scores_ptr = outputs[2].GetTensorMutableData(); // Confidence scores. + + size_t num_boxes = outputs[2].GetTensorTypeAndShapeInfo().GetShape()[1]; // Number of detected boxes. + + // Convert raw output to structured data. + std::vector labels(labels_ptr, labels_ptr + num_boxes); + std::vector> boxes; + std::vector scores(scores_ptr, scores_ptr + num_boxes); + + auto boxes_shape = outputs[1].GetTensorTypeAndShapeInfo().GetShape(); + size_t num_coordinates = boxes_shape[2]; // Usually 4 coordinates: (x1, y1, x2, y2). + + // Populate the `boxes` vector. + for (size_t i = 0; i < num_boxes; ++i) { + boxes.push_back({ + boxes_ptr[i * num_coordinates + 0], // x1 + boxes_ptr[i * num_coordinates + 1], // y1 + boxes_ptr[i * num_coordinates + 2], // x2 + boxes_ptr[i * num_coordinates + 3] // y2 + }); + } + + // Step 7: Draw the results on the original image. + cv::Mat result_image = draw(image, labels, boxes, scores, ratio, pad_w, pad_h); + + // Return the annotated image. + return result_image; +} + +/** + * @brief Entry point of the application to perform object detection on an input source using a specified model. + * + * The program loads a pre-trained model, processes an input source (image, video, or webcam), and performs object + * detection using either a CPU or GPU for computation. The results are displayed or saved as appropriate. + * + * @param argc The number of command-line arguments passed to the program. + * @param argv The array of command-line arguments: + * - argv[0]: The name of the executable. + * - argv[1]: The path to the pre-trained model file. + * - argv[2]: The source of the input (image file, video file, or webcam index). + * - argv[3]: Flag to indicate whether to use GPU (1 for GPU, 0 for CPU). + * @return Exit status: + * - Returns 0 on success. + * - Returns -1 if incorrect arguments are provided. + */ +int main(int argc, char** argv) { + // Check if the required number of arguments is provided + if (argc < 4) { + // Display usage instructions if arguments are insufficient + std::cerr << "Usage: " << argv[0] + << " \n"; + return -1; + } + + // Parse arguments + std::string modelPath = argv[1]; + std::string source = argv[2]; + bool useGPU = std::stoi(argv[3]) != 0; + + // Initialize ONNX Runtime environment + Ort::Env env(ORT_LOGGING_LEVEL_ERROR, "ONNXExample"); + Ort::SessionOptions session_options; + session_options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_EXTENDED); + + if (useGPU) { + OrtCUDAProviderOptions cudaOptions; + cudaOptions.device_id = 0; // Default to GPU 0 + session_options.AppendExecutionProvider_CUDA(cudaOptions); + std::cout << "Using GPU for inference.\n"; + } + else { + std::cout << "Using CPU for inference.\n"; + } + + // Load ONNX model + std::wstring widestr = std::wstring(modelPath.begin(), modelPath.end()); + const wchar_t* model_path = widestr.c_str(); + Ort::Session session(env, model_path, session_options); + + // Open source + cv::VideoCapture cap; + bool isVideo = false; + bool isWebcam = false; + bool isImage = false; + cv::Mat frame; + + if (source == "webcam") { + isWebcam = true; + cap.open(0); // Open webcam + } + else if (source.find(".mp4") != std::string::npos || + source.find(".avi") != std::string::npos || + source.find(".mkv") != std::string::npos) { + isVideo = true; + cap.open(source); // Open video file + } + else { + isImage = true; + frame = cv::imread(source); + if (frame.empty()) { + std::cerr << "Error: Could not read image file.\n"; + return -1; + } + } + + if ((isVideo || isWebcam) && !cap.isOpened()) { + std::cerr << "Error: Could not open video source.\n"; + return -1; + } + + // Process source + do { + if (isWebcam || isVideo) { + cap >> frame; + if (frame.empty()) { + if (isVideo) { + std::cout << "End of video reached.\n"; + } + break; + } + } + + // Process the frame/image with ONNX model + auto result_image = processImage(session, frame); + + cv::imshow("ONNX Result", result_image); + if (isImage) { + cv::waitKey(0); // Wait indefinitely for image + break; + } + else if (cv::waitKey(1) == 27) { // Exit on 'Esc' key for video/webcam + break; + } + + // FPS calculation for video/webcam + static int frame_count = 0; + static auto last_time = std::chrono::high_resolution_clock::now(); + frame_count++; + auto current_time = std::chrono::high_resolution_clock::now(); + std::chrono::duration elapsed = current_time - last_time; + if (elapsed.count() >= 1.0) { + std::cout << "FPS: " << frame_count / elapsed.count() << "\n"; + frame_count = 0; + last_time = current_time; + } + + } while (isWebcam || isVideo); + + return 0; +} diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/openvino/CMakeLists.txt b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/openvino/CMakeLists.txt new file mode 100644 index 0000000..cd2d168 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/openvino/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.5.1) + +project( + openvinoExample + LANGUAGES CXX + VERSION 1.0.0 +) + +set(CMAKE_CXX_STANDARD 17) + +if (MSVC) + add_compile_options(-nologo) + add_definitions(-DNOMINMAX) +else() + add_compile_options(-Wall) +endif() + +find_package(OpenVINO CONFIG REQUIRED) +find_package(OpenCV CONFIG REQUIRED core dnn imgcodecs imgproc) + +add_executable( + openvinoExample + openvinoExample.cpp +) +target_link_libraries( + openvinoExample + openvino::runtime + opencv_core + opencv_dnn + opencv_imgcodecs +) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/openvino/openvinoExample.cpp b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/openvino/openvinoExample.cpp new file mode 100644 index 0000000..a799898 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/openvino/openvinoExample.cpp @@ -0,0 +1,42 @@ +#include +#include +#include + +int main(){ + try{ + ov::Core core; + ov::CompiledModel mCompiledModel = core.compile_model("DFINE.onnx","AUTO"); + cv::Mat imageMat = cv::imread("test.png"); + cv::cvtColor(imageMat, imageMat, cv::COLOR_BGR2RGB); + cv::Mat inferMat; + cv::dnn::blobFromImage(imageMat,inferMat,1.0 / 255.0); + std::vector im_shape = { (float)1/imageMat.rows, (float)1/imageMat.cols }; + auto ireq = mCompiledModel.create_infer_request(); + auto inputports = mCompiledModel.inputs(); + ov::Tensor input_tensor1(inputports[0].get_element_type(), { 1,3,640,640 }, inferMat.ptr()); + ireq.set_input_tensor(0,input_tensor1); + ov::Tensor input_tensor2(inputports[1].get_element_type(), { 1,2 }); + int64* input_tensor_data = input_tensor2.data(); + for (int i = 0; i < 2; i++) { + input_tensor_data[i] = 640; + } + ireq.set_input_tensor(1,input_tensor2); + ireq.infer(); + ov::Tensor labels_tensor = ireq.get_output_tensor(0); + ov::Tensor bboxs_tensor = ireq.get_output_tensor(1); + ov::Tensor scores_tensor = ireq.get_output_tensor(2); + float *bo = bboxs_tensor.data(); + + //example + float cx = bo[4] ; + float cy = bo[5] ; + float bx = bo[6] ; + float by = bo[7] ; + cv::rectangle(imageMat, cv::Rect(bo[0],bo[1], bo[2]-bo[0], bo[3]-bo[1]), cv::Scalar(0, 255, 0), 2); + cv::rectangle(imageMat, cv::Rect(cx,cy, bx-cx, by-cy), cv::Scalar(0, 255, 0), 2); + cv::imwrite("aimage.png",imageMat); + } + catch(const ov::Exception& e){ + std::cerr << e.what() << '\n'; + } +} diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/trt/CMakeLists.txt b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/trt/CMakeLists.txt new file mode 100644 index 0000000..452ef21 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/trt/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.20) +cmake_policy(SET CMP0146 OLD) # for disabling FindCUDA warning +project(DFineTRT) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "-O3") + +set(LIB_ROOT "$ENV{HOME}/Documents/libs") + +# opencv +find_package(OpenCV REQUIRED) +find_package(Iconv QUIET) +# cuda +find_package(CUDA REQUIRED) +# tensorrt +set(CUDA_RUNTIME_API_DIRS "/usr/local/cuda-12.9/targets/x86_64-linux/include") + +# dfine +add_executable(trtExample trtExample.cpp) +target_compile_options(trtExample PRIVATE + -Wall + -Wextra + -Wno-unused-function +) +target_link_libraries(trtExample + ${OpenCV_LIBS} + ${CUDA_LIBRARIES} + nvonnxparser + nvinfer +) +target_include_directories(trtExample PRIVATE + ${OpenCV_INCLUDE_DIRS} + ${CUDA_RUNTIME_API_DIRS} +) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/trt/trtExample.cpp b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/trt/trtExample.cpp new file mode 100644 index 0000000..906c02e --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/cppExample/trt/trtExample.cpp @@ -0,0 +1,346 @@ +/** + * NOTE: Convert model with --fp16 may lead to incorrect results + */ +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#define CUDA_CHECK(call) \ + do \ + { \ + const cudaError_t error_code = call; \ + if (error_code != cudaSuccess) \ + { \ + printf("CUDA_CHECK Error:\n"); \ + printf(" File: %s\n", __FILE__); \ + printf(" Line: %d\n", __LINE__); \ + printf(" Error code: %d\n", error_code); \ + printf(" Error text: %s\n", cudaGetErrorString(error_code)); \ + exit(1); \ + } \ + } while (0) + +struct Object +{ + cv::Rect_ rect; + int label; + float prob; +}; + +const std::vector labels = { + "Person", "Bicycle", "Car", "Motorcycle", "Airplane", "Bus", "Train", + "Truck", "Boat", "Traffic light", "Fire hydrant", "Stop sign", "Parking meter", + "Bench", "Bird", "Cat", "Dog", "Horse", "Sheep", "Cow", "Elephant", "Bear", + "Zebra", "Giraffe", "Backpack", "Umbrella", "Handbag", "Tie", "Suitcase", + "Frisbee", "Skis", "Snowboard", "Sports ball", "Kite", "Baseball bat", + "Baseball glove", "Skateboard", "Surfboard", "Tennis racket", "Bottle", + "Wine glass", "Cup", "Fork", "Knife", "Spoon", "Bowl", "Banana", "Apple", + "Sandwich", "Orange", "Broccoli", "Carrot", "Hot dog", "Pizza", "Donut", + "Cake", "Chair", "Couch", "Potted plant", "Bed", "Dining table", "Toilet", + "Tv", "Laptop", "Mouse", "Remote", "Keyboard", "Cell phone", "Microwave", + "Oven", "Toaster", "Sink", "Refrigerator", "Book", "Clock", "Vase", "Scissors", + "Teddy bear", "Hair drier", "Toothbrush" +}; + +class Logger : public nvinfer1::ILogger +{ +public: + void log(Severity severity, const char *msg) noexcept override + { + if (severity <= nvinfer1::ILogger::Severity::kWARNING) + { + std::cerr << "[TensorRT] "; + switch (severity) + { + case nvinfer1::ILogger::Severity::kINTERNAL_ERROR: std::cerr << "INTERNAL_ERROR: "; break; + case nvinfer1::ILogger::Severity::kERROR: std::cerr << "ERROR: "; break; + case nvinfer1::ILogger::Severity::kWARNING: std::cerr << "WARNING: "; break; + case nvinfer1::ILogger::Severity::kINFO: std::cerr << "INFO: "; break; + case nvinfer1::ILogger::Severity::kVERBOSE: std::cerr << "VERBOSE: "; break; + } + std::cerr << msg << "\n"; + } + } +}; + +static Logger logger; + +bool DrawObjects(cv::Mat &image, const std::vector &objects, + const std::vector &labels, bool isSilent) +{ + for (auto obj : objects) + { + if (obj.label >= static_cast(labels.size())) + return false; + + if (isSilent != true) + std::printf("%s = %.2f%% at (%.1f, %.1f) %.1f x %.1f\n", labels[obj.label].c_str(), obj.prob * 100.0f, + obj.rect.x, obj.rect.y, obj.rect.width, obj.rect.height); + + char text[256]; + snprintf(text, sizeof(text), "%s %.1f%%", labels[obj.label].c_str(), obj.prob * 100.0f); + + auto scalar = cv::Scalar(255, 255, 255); + cv::rectangle(image, obj.rect, scalar, 2); + + int baseLine = 5; + cv::Size label_size = cv::getTextSize(text, cv::FONT_HERSHEY_SIMPLEX, 0.75, 1, &baseLine); + + int x = obj.rect.x - 1; + int y = obj.rect.y - label_size.height - baseLine; + y = std::max(0, y); + if (x + label_size.width > image.cols) + x = image.cols - label_size.width; + + cv::rectangle(image, cv::Rect(cv::Point(x, y), cv::Size(label_size.width, label_size.height + baseLine)), + scalar, -1); + + cv::putText(image, text, cv::Point(x, y + label_size.height + baseLine / 2), + cv::FONT_HERSHEY_SIMPLEX, 0.75, cv::Scalar(0, 0, 0), 2); + } + + return true; +} + +size_t CountElement(const nvinfer1::Dims &dims) +{ + int64_t total = 1; + for (int32_t i = 0; i < dims.nbDims; ++i) + total *= dims.d[i]; + return static_cast(total); +} + +template +T Clamp(T val, T min, T max) +{ + return val > min ? (val < max ? val : max) : min; +} + +void GetLetterboxDimensions( + const int img_rows, const int img_cols, + const int target_size, + int &resize_rows, int &resize_cols, int &pad_rows, int &pad_cols, float &scale +) +{ + scale = static_cast(target_size) / std::max(img_rows, img_cols); + resize_rows = static_cast(std::round(img_rows * scale)); + resize_cols = static_cast(std::round(img_cols * scale)); + pad_rows = target_size - resize_rows; + pad_cols = target_size - resize_cols; +} + +int main(int argc, char *argv[]) +{ + // --- Settings --- + if (argc < 3) + { + std::printf("Usage: %s model image [conf] [target size]\n", argv[0]); + return 0; + } + const std::string model_path = std::string(argv[1]); + float conf_thres = 0.25f; + int target_size = 640; + if (argc >= 4 && std::stof(argv[3]) > 0.0f) + conf_thres = std::stof(argv[3]); + if (argc >= 5 && std::stoi(argv[4]) > 0 && + std::stoi(argv[4]) % 32 == 0 && std::stoi(argv[4]) > 32) + target_size = std::stoi(argv[4]); + + std::cout << "Model: " << model_path << "\n"; + std::cout << "Input: " << argv[2] << "\n"; + std::cout << "Conf: " << conf_thres << "\n"; + std::cout << "Target size: " << target_size << "\n"; + + // --- Init TRT --- + // load model data + std::ifstream engine_file(model_path, std::ios::binary); + if (!engine_file) + { + std::cerr << "Failed to open engine file\n"; + return -1; + } + engine_file.seekg(0, engine_file.end); + std::streamsize engine_size = engine_file.tellg(); + engine_file.seekg(0, engine_file.beg); + std::unique_ptr engine_data{std::make_unique(engine_size)}; + if (!engine_file.read(engine_data.get(), engine_size)) + { + std::cerr << "Failed to read engine file\n"; + return -1; + } + engine_file.close(); + + // create runtime, engine, context, and stream + auto runtime{nvinfer1::createInferRuntime(logger)}; + if (!runtime) + { + std::cerr << "Failed to create runtime\n"; + return -1; + } + auto engine{runtime->deserializeCudaEngine(engine_data.get(), engine_size)}; + if (!engine) + { + std::cerr << "Failed to deserialize engine\n"; + return -1; + } + auto context{engine->createExecutionContext()}; + if (!context) + { + std::cerr << "Failed to create contexts\n"; + return -1; + } + std::unique_ptr stream = std::make_unique(); + CUDA_CHECK(cudaStreamCreate(stream.get())); + + // get model info + std::vector> in_tensor_info, out_tensor_info; + for (int i = 0; i < engine->getNbIOTensors(); ++i) + { + const char *tensor_name = engine->getIOTensorName(i); + nvinfer1::TensorIOMode io_mode = engine->getTensorIOMode(tensor_name); + if (io_mode == nvinfer1::TensorIOMode::kINPUT) + in_tensor_info.push_back({i, std::string(tensor_name)}); + else if (io_mode == nvinfer1::TensorIOMode::kOUTPUT) + out_tensor_info.push_back({i, std::string(tensor_name)}); + } + + // create host memory + size_t max_in0_size_byte = CountElement(context->getTensorShape(in_tensor_info[0].second.c_str())) * sizeof(float); + size_t max_in1_size_byte = CountElement(context->getTensorShape(in_tensor_info[1].second.c_str())) * sizeof(int64_t); + size_t max_out0_size_byte = CountElement(context->getTensorShape(out_tensor_info[0].second.c_str())) * sizeof(int64_t); + size_t max_out1_size_byte = CountElement(context->getTensorShape(out_tensor_info[1].second.c_str())) * sizeof(float); + size_t max_out2_size_byte = CountElement(context->getTensorShape(out_tensor_info[2].second.c_str())) * sizeof(float); + std::vector> host_outs; + host_outs.resize(out_tensor_info.size()); + host_outs[0] = std::make_unique(max_out0_size_byte); + host_outs[1] = std::make_unique(max_out1_size_byte); + host_outs[2] = std::make_unique(max_out2_size_byte); + // create cuda memory + std::vector buffers{}; + buffers.resize(engine->getNbIOTensors()); + CUDA_CHECK(cudaMalloc(&buffers[in_tensor_info[0].first], max_in0_size_byte)); + CUDA_CHECK(cudaMalloc(&buffers[in_tensor_info[1].first], max_in1_size_byte)); + CUDA_CHECK(cudaMalloc(&buffers[out_tensor_info[0].first], max_out0_size_byte)); + CUDA_CHECK(cudaMalloc(&buffers[out_tensor_info[1].first], max_out1_size_byte)); + CUDA_CHECK(cudaMalloc(&buffers[out_tensor_info[2].first], max_out2_size_byte)); + + // set in/out tensor address + context->setInputTensorAddress(in_tensor_info[0].second.c_str(), buffers[in_tensor_info[0].first]); + context->setInputTensorAddress(in_tensor_info[1].second.c_str(), buffers[in_tensor_info[1].first]); + context->setOutputTensorAddress(out_tensor_info[0].second.c_str(), buffers[out_tensor_info[0].first]); + context->setOutputTensorAddress(out_tensor_info[1].second.c_str(), buffers[out_tensor_info[1].first]); + context->setOutputTensorAddress(out_tensor_info[2].second.c_str(), buffers[out_tensor_info[2].first]); + + // --- Detect --- + cv::Mat image = cv::imread(argv[2]); + if (image.empty()) + { + std::cout << "Failed to read image\n"; + return -1; + } + + // preprocessing + int img_rows = image.rows; + int img_cols = image.cols; + float scale; + int resize_rows, resize_cols, pad_rows, pad_cols; + GetLetterboxDimensions( + img_rows, img_cols, target_size, + resize_rows, resize_cols, pad_rows, pad_cols, scale + ); + cv::Mat letterbox, blob; + cv::resize(image, letterbox, cv::Size(resize_cols, resize_rows), 0, 0, cv::INTER_AREA); + cv::copyMakeBorder( + letterbox, letterbox, + pad_rows / 2, pad_rows - pad_rows / 2, + pad_cols / 2, pad_cols - pad_cols / 2, + cv::BORDER_CONSTANT, cv::Scalar(114.0, 114.0, 114.0) + ); + // no normalization + cv::dnn::blobFromImage(letterbox, blob, 1.0f / 255.0f, cv::Size(letterbox.cols, letterbox.rows), cv::Scalar(0, 0, 0), true, false, CV_32F); + + nvinfer1::Dims trt_in0_dims{}, trt_in1_dims{}; + trt_in0_dims.nbDims = 4; + trt_in0_dims.d[0] = 1; + trt_in0_dims.d[1] = 3; + trt_in0_dims.d[2] = letterbox.rows; + trt_in0_dims.d[3] = letterbox.cols; + context->setInputShape(in_tensor_info[0].second.c_str(), trt_in0_dims); + + std::vector orig_size{static_cast(letterbox.rows), static_cast(letterbox.cols)}; + trt_in1_dims.nbDims = 2; + trt_in1_dims.d[0] = 1; + trt_in1_dims.d[1] = 2; + context->setInputShape(in_tensor_info[1].second.c_str(), trt_in1_dims); + + // execute + CUDA_CHECK(cudaMemcpyAsync(buffers[0], blob.data, max_in0_size_byte, cudaMemcpyHostToDevice, *stream)); + CUDA_CHECK(cudaMemcpyAsync(buffers[1], orig_size.data(), max_in1_size_byte, cudaMemcpyHostToDevice, *stream)); + + context->enqueueV3(*stream); + + CUDA_CHECK(cudaMemcpyAsync(host_outs[0].get(), buffers[2], max_out0_size_byte, cudaMemcpyDeviceToHost, *stream)); + CUDA_CHECK(cudaMemcpyAsync(host_outs[1].get(), buffers[3], max_out1_size_byte, cudaMemcpyDeviceToHost, *stream)); + CUDA_CHECK(cudaMemcpyAsync(host_outs[2].get(), buffers[4], max_out2_size_byte, cudaMemcpyDeviceToHost, *stream)); + CUDA_CHECK(cudaStreamSynchronize(*stream)); + + const int64_t *labels_ptr = reinterpret_cast(host_outs[0].get()); + const float *boxes_ptr = reinterpret_cast(host_outs[1].get()); + const float *scores_ptr = reinterpret_cast(host_outs[2].get()); + + size_t num_box = 300; + size_t walk = 4; + float dw = pad_cols / 2, dh = pad_rows / 2; + std::vector objects; + for (size_t i = 0; i < num_box; ++i) + { + if (scores_ptr[i] < conf_thres) + continue; + + float x0 = boxes_ptr[i * walk]; + float y0 = boxes_ptr[i * walk + 1]; + float x1 = boxes_ptr[i * walk + 2]; + float y1 = boxes_ptr[i * walk + 3]; + + x0 = (x0 - dw) / scale; + y0 = (y0 - dh) / scale; + x1 = (x1 - dw) / scale; + y1 = (y1 - dh) / scale; + + x0 = Clamp(x0, 0.0f, static_cast(img_cols)); + y0 = Clamp(y0, 0.0f, static_cast(img_rows)); + x1 = Clamp(x1, x0, static_cast(img_cols)); + y1 = Clamp(y1, y0, static_cast(img_rows)); + + Object object; + object.rect.x = x0; + object.rect.y = y0; + object.rect.width = x1 - x0; + object.rect.height = y1 - y0; + object.prob = scores_ptr[i]; + object.label = static_cast(labels_ptr[i]); + objects.emplace_back(object); + } + + // save results + if (DrawObjects(image, objects, labels, false)) + cv::imwrite("./result.jpg", image); + else + std::cout << "Failed to draw objects\n"; + + // --- Release resources --- + for (const auto &buffer : buffers) + if (buffer) + CUDA_CHECK(cudaFree(buffer)); + if (stream && *stream) + CUDA_CHECK(cudaStreamDestroy(*stream)); + + return 0; +} diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/onnx_inf.py b/backend/apps/algorithms/algorithm/DFINE/tools/inference/onnx_inf.py new file mode 100644 index 0000000..3fb26c7 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/onnx_inf.py @@ -0,0 +1,163 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import cv2 +import numpy as np +import onnxruntime as ort +import torch +import torchvision.transforms as T +from PIL import Image, ImageDraw + + +def resize_with_aspect_ratio(image, size, interpolation=Image.BILINEAR): + """Resizes an image while maintaining aspect ratio and pads it.""" + original_width, original_height = image.size + ratio = min(size / original_width, size / original_height) + new_width = int(original_width * ratio) + new_height = int(original_height * ratio) + image = image.resize((new_width, new_height), interpolation) + + # Create a new image with the desired size and paste the resized image onto it + new_image = Image.new("RGB", (size, size)) + new_image.paste(image, ((size - new_width) // 2, (size - new_height) // 2)) + return new_image, ratio, (size - new_width) // 2, (size - new_height) // 2 + + +def draw(images, labels, boxes, scores, ratios, paddings, thrh=0.4): + result_images = [] + for i, im in enumerate(images): + draw = ImageDraw.Draw(im) + scr = scores[i] + lab = labels[i][scr > thrh] + box = boxes[i][scr > thrh] + scr = scr[scr > thrh] + + ratio = ratios[i] + pad_w, pad_h = paddings[i] + + for lbl, bb in zip(lab, box): + # Adjust bounding boxes according to the resizing and padding + bb = [ + (bb[0] - pad_w) / ratio, + (bb[1] - pad_h) / ratio, + (bb[2] - pad_w) / ratio, + (bb[3] - pad_h) / ratio, + ] + draw.rectangle(bb, outline="red") + draw.text((bb[0], bb[1]), text=str(lbl), fill="blue") + + result_images.append(im) + return result_images + + +def process_image(sess, im_pil): + # Resize image while preserving aspect ratio + resized_im_pil, ratio, pad_w, pad_h = resize_with_aspect_ratio(im_pil, 640) + orig_size = torch.tensor([[resized_im_pil.size[1], resized_im_pil.size[0]]]) + + transforms = T.Compose( + [ + T.ToTensor(), + ] + ) + im_data = transforms(resized_im_pil).unsqueeze(0) + + output = sess.run( + output_names=None, + input_feed={"images": im_data.numpy(), "orig_target_sizes": orig_size.numpy()}, + ) + + labels, boxes, scores = output + + result_images = draw([im_pil], labels, boxes, scores, [ratio], [(pad_w, pad_h)]) + result_images[0].save("onnx_result.jpg") + print("Image processing complete. Result saved as 'result.jpg'.") + + +def process_video(sess, video_path): + cap = cv2.VideoCapture(video_path) + + # Get video properties + fps = cap.get(cv2.CAP_PROP_FPS) + orig_w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + orig_h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + + # Define the codec and create VideoWriter object + fourcc = cv2.VideoWriter_fourcc(*"mp4v") + out = cv2.VideoWriter("onnx_result.mp4", fourcc, fps, (orig_w, orig_h)) + + frame_count = 0 + print("Processing video frames...") + while cap.isOpened(): + ret, frame = cap.read() + if not ret: + break + + # Convert frame to PIL image + frame_pil = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) + + # Resize frame while preserving aspect ratio + resized_frame_pil, ratio, pad_w, pad_h = resize_with_aspect_ratio(frame_pil, 640) + orig_size = torch.tensor([[resized_frame_pil.size[1], resized_frame_pil.size[0]]]) + + transforms = T.Compose( + [ + T.ToTensor(), + ] + ) + im_data = transforms(resized_frame_pil).unsqueeze(0) + + output = sess.run( + output_names=None, + input_feed={"images": im_data.numpy(), "orig_target_sizes": orig_size.numpy()}, + ) + + labels, boxes, scores = output + + # Draw detections on the original frame + result_images = draw([frame_pil], labels, boxes, scores, [ratio], [(pad_w, pad_h)]) + frame_with_detections = result_images[0] + + # Convert back to OpenCV image + frame = cv2.cvtColor(np.array(frame_with_detections), cv2.COLOR_RGB2BGR) + + # Write the frame + out.write(frame) + frame_count += 1 + + if frame_count % 10 == 0: + print(f"Processed {frame_count} frames...") + + cap.release() + out.release() + print("Video processing complete. Result saved as 'result.mp4'.") + + +def main(args): + """Main function.""" + # Load the ONNX model + sess = ort.InferenceSession(args.onnx) + print(f"Using device: {ort.get_device()}") + + input_path = args.input + + try: + # Try to open the input as an image + im_pil = Image.open(input_path).convert("RGB") + process_image(sess, im_pil) + except IOError: + # Not an image, process as video + process_video(sess, input_path) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("--onnx", type=str, required=True, help="Path to the ONNX model file.") + parser.add_argument( + "--input", type=str, required=True, help="Path to the input image or video file." + ) + args = parser.parse_args() + main(args) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/openvino_inf.py b/backend/apps/algorithms/algorithm/DFINE/tools/inference/openvino_inf.py new file mode 100644 index 0000000..6d37e4b --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/openvino_inf.py @@ -0,0 +1,101 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import cv2 +import numpy as np +import openvino +from openvino.runtime import Core + + +class OvInfer: + def __init__(self, model_path, device_name="AUTO"): + self.resized_image = None + self.ratio = None + self.resize_image = None + self.ori_image = None + self.device = device_name + self.model_path = model_path + self.core = Core() + self.available_device = self.core.available_devices + self.compile_model = self.core.compile_model(self.model_path, device_name) + self.target_size = [ + self.compile_model.inputs[0].get_partial_shape()[2].get_length(), + self.compile_model.inputs[0].get_partial_shape()[3].get_length(), + ] + self.query_num = self.compile_model.outputs[0].get_partial_shape()[1].get_length() + + def infer(self, inputs: dict): + infer_request = self.compile_model.create_infer_request() + for input_name, input_data in inputs.items(): + input_tensor = openvino.Tensor(input_data) + infer_request.set_tensor(input_name, input_tensor) + infer_request.infer() + outputs = { + "labels": infer_request.get_tensor("labels").data, + "boxes": infer_request.get_tensor("boxes").data, + "scores": infer_request.get_tensor("scores").data, + } + return outputs + + def process_image(self, ori_image, keep_ratio: bool): + self.ori_image = ori_image + h, w = ori_image.shape[:2] + if keep_ratio: + r = min(self.target_size[0] / h, self.target_size[1] / w) + self.ratio = r + new_w = int(w * r) + new_h = int(h * r) + temp_image = cv2.resize(ori_image, (new_w, new_h), interpolation=cv2.INTER_LINEAR) + resized_image = np.full( + (self.target_size[0], self.target_size[1], 3), 114, dtype=temp_image.dtype + ) + resized_image[:new_h, :new_w, :] = temp_image + self.resized_image = resized_image + else: + self.resized_image = cv2.resize( + ori_image, self.target_size, interpolation=cv2.INTER_LINEAR + ) + blob_image = cv2.dnn.blobFromImage(self.resized_image, 1.0 / 255.0) + orig_size = np.array([self.resized_image.shape[0], self.resized_image.shape[1]], dtype=np.int64).reshape( + 1, 2 + ) + + inputs = { + "images": blob_image, + "orig_target_sizes": orig_size, + } + return inputs + + def get_available_device(self): + return self.available_device + + def draw_and_save_image(self, infer_result, image_path, score_threshold=0.6): + draw_image = self.ori_image + scores = infer_result["scores"] + labels = infer_result["labels"] + boxes = infer_result["boxes"] + for i in range(self.query_num): + if scores[0, i] > score_threshold: + cx = boxes[0, i, 0] / self.ratio + cy = boxes[0, i, 1] / self.ratio + bx = boxes[0, i, 2] / self.ratio + by = boxes[0, i, 3] / self.ratio + cv2.rectangle( + draw_image, (int(cx), int(cy), int(bx - cx), int(by - cy)), (255, 0, 0), 1 + ) + cv2.imwrite(image_path, draw_image) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("-image", "--image", type=str, required=True) + parser.add_argument("-ov_model", "--ov_model", type=str, required=True) + args = parser.parse_args() + img = cv2.imread(args.image) + mOvInfer = OvInfer(args.ov_model) + inputs = mOvInfer.process_image(img, True) + outputs = mOvInfer.infer(inputs) + mOvInfer.draw_and_save_image(outputs, "openvino_result.jpg") diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/requirements.txt b/backend/apps/algorithms/algorithm/DFINE/tools/inference/requirements.txt new file mode 100644 index 0000000..7dfc48a --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/requirements.txt @@ -0,0 +1,3 @@ +onnxruntime +tensorrt +openvino diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/torch_inf.py b/backend/apps/algorithms/algorithm/DFINE/tools/inference/torch_inf.py new file mode 100644 index 0000000..2e0c549 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/torch_inf.py @@ -0,0 +1,178 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import os +import sys + +import cv2 # Added for video processing +import numpy as np +import torch +import torch.nn as nn +import torchvision.transforms as T +from PIL import Image, ImageDraw + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../../"))) +from src.core import YAMLConfig + + +def draw(images, labels, boxes, scores, thrh=0.4): + for i, im in enumerate(images): + draw = ImageDraw.Draw(im) + + scr = scores[i] + lab = labels[i][scr > thrh] + box = boxes[i][scr > thrh] + scrs = scr[scr > thrh] + + for j, b in enumerate(box): + draw.rectangle(list(b), outline="red") + draw.text( + (b[0], b[1]), + text=f"{lab[j].item()} {round(scrs[j].item(), 2)}", + fill="blue", + ) + + im.save("torch_results.jpg") + + +def process_image(model, device, file_path, score_thresh=0.3): + im_pil = Image.open(file_path).convert("RGB") + w, h = im_pil.size + orig_size = torch.tensor([[w, h]]).to(device) + + transforms = T.Compose( + [ + T.Resize((640, 640)), + T.ToTensor(), + ] + ) + im_data = transforms(im_pil).unsqueeze(0).to(device) + + output = model(im_data, orig_size) + labels, boxes, scores = output + + idx = scores[0] > score_thresh + result_labels = labels[0][idx].detach().cpu().numpy() + result_boxes = boxes[0][idx].detach().cpu().numpy() + result_scores = scores[0][idx].detach().cpu().numpy() + + for l, b, s in zip(result_labels, result_boxes, result_scores): + print(f"Label: {l}, Box: {b}, Score: {s:.2f}") + + draw([im_pil], labels, boxes, scores, thrh=score_thresh) + + return result_labels, result_boxes, result_scores + + +def process_video(model, device, file_path): + cap = cv2.VideoCapture(file_path) + + # Get video properties + fps = cap.get(cv2.CAP_PROP_FPS) + orig_w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + orig_h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + + # Define the codec and create VideoWriter object + fourcc = cv2.VideoWriter_fourcc(*"mp4v") + out = cv2.VideoWriter("torch_results.mp4", fourcc, fps, (orig_w, orig_h)) + + transforms = T.Compose( + [ + T.Resize((640, 640)), + T.ToTensor(), + ] + ) + + frame_count = 0 + print("Processing video frames...") + while cap.isOpened(): + ret, frame = cap.read() + if not ret: + break + + # Convert frame to PIL image + frame_pil = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) + + w, h = frame_pil.size + orig_size = torch.tensor([[w, h]]).to(device) + + im_data = transforms(frame_pil).unsqueeze(0).to(device) + + output = model(im_data, orig_size) + labels, boxes, scores = output + + # Draw detections on the frame + draw([frame_pil], labels, boxes, scores) + + # Convert back to OpenCV image + frame = cv2.cvtColor(np.array(frame_pil), cv2.COLOR_RGB2BGR) + + # Write the frame + out.write(frame) + frame_count += 1 + + if frame_count % 10 == 0: + print(f"Processed {frame_count} frames...") + + cap.release() + out.release() + print("Video processing complete. Result saved as 'results_video.mp4'.") + + +def main(args): + """Main function""" + cfg = YAMLConfig(args.config, resume=args.resume) + + if "HGNetv2" in cfg.yaml_cfg: + cfg.yaml_cfg["HGNetv2"]["pretrained"] = False + + if args.resume: + checkpoint = torch.load(args.resume, map_location="cpu") + if "ema" in checkpoint: + state = checkpoint["ema"]["module"] + else: + state = checkpoint["model"] + else: + raise AttributeError("Only support resume to load model.state_dict by now.") + + # Load train mode state and convert to deploy mode + cfg.model.load_state_dict(state) + + class Model(nn.Module): + def __init__(self): + super().__init__() + self.model = cfg.model.deploy() + self.postprocessor = cfg.postprocessor.deploy() + + def forward(self, images, orig_target_sizes): + outputs = self.model(images) + outputs = self.postprocessor(outputs, orig_target_sizes) + return outputs + + device = args.device + model = Model().to(device) + + # Check if the input file is an image or a video + file_path = args.input + if os.path.splitext(file_path)[-1].lower() in [".jpg", ".jpeg", ".png", ".bmp"]: + result_labels, result_boxes, result_scores = process_image(model, device, file_path, args.score_thresh) + print("识别结果:") + for l, b, s in zip(result_labels, result_boxes, result_scores): + print(f"Label: {l}, Box: {b}, Score: {s:.2f}") + else: + # Process as video + process_video(model, device, file_path) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("-c", "--config", type=str, required=True) + parser.add_argument("-r", "--resume", type=str, required=True) + parser.add_argument("-i", "--input", type=str, required=True) + parser.add_argument("-d", "--device", type=str, default="cpu") + parser.add_argument("--score-thresh", type=float, default=0.3, help="score threshold for filter") + args = parser.parse_args() + main(args) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/inference/trt_inf.py b/backend/apps/algorithms/algorithm/DFINE/tools/inference/trt_inf.py new file mode 100644 index 0000000..731e0b5 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/inference/trt_inf.py @@ -0,0 +1,244 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import collections +import contextlib +import os +import time +from collections import OrderedDict + +import cv2 # Added for video processing +import numpy as np +import tensorrt as trt +import torch +import torchvision.transforms as T +from PIL import Image, ImageDraw + + +class TimeProfiler(contextlib.ContextDecorator): + def __init__(self): + self.total = 0 + + def __enter__(self): + self.start = self.time() + return self + + def __exit__(self, type, value, traceback): + self.total += self.time() - self.start + + def reset(self): + self.total = 0 + + def time(self): + if torch.cuda.is_available(): + torch.cuda.synchronize() + return time.time() + + +class TRTInference(object): + def __init__( + self, engine_path, device="cuda:0", backend="torch", max_batch_size=32, verbose=False + ): + self.engine_path = engine_path + self.device = device + self.backend = backend + self.max_batch_size = max_batch_size + + self.logger = trt.Logger(trt.Logger.VERBOSE) if verbose else trt.Logger(trt.Logger.INFO) + + self.engine = self.load_engine(engine_path) + self.context = self.engine.create_execution_context() + self.bindings = self.get_bindings( + self.engine, self.context, self.max_batch_size, self.device + ) + self.bindings_addr = OrderedDict((n, v.ptr) for n, v in self.bindings.items()) + self.input_names = self.get_input_names() + self.output_names = self.get_output_names() + self.time_profile = TimeProfiler() + + def load_engine(self, path): + trt.init_libnvinfer_plugins(self.logger, "") + with open(path, "rb") as f, trt.Runtime(self.logger) as runtime: + return runtime.deserialize_cuda_engine(f.read()) + + def get_input_names(self): + names = [] + for _, name in enumerate(self.engine): + if self.engine.get_tensor_mode(name) == trt.TensorIOMode.INPUT: + names.append(name) + return names + + def get_output_names(self): + names = [] + for _, name in enumerate(self.engine): + if self.engine.get_tensor_mode(name) == trt.TensorIOMode.OUTPUT: + names.append(name) + return names + + def get_bindings(self, engine, context, max_batch_size=32, device=None) -> OrderedDict: + Binding = collections.namedtuple("Binding", ("name", "dtype", "shape", "data", "ptr")) + bindings = OrderedDict() + + for i, name in enumerate(engine): + shape = engine.get_tensor_shape(name) + dtype = trt.nptype(engine.get_tensor_dtype(name)) + + if shape[0] == -1: + shape[0] = max_batch_size + if engine.get_tensor_mode(name) == trt.TensorIOMode.INPUT: + context.set_input_shape(name, shape) + + data = torch.from_numpy(np.empty(shape, dtype=dtype)).to(device) + bindings[name] = Binding(name, dtype, shape, data, data.data_ptr()) + + return bindings + + def run_torch(self, blob): + for n in self.input_names: + if blob[n].dtype is not self.bindings[n].data.dtype: + blob[n] = blob[n].to(dtype=self.bindings[n].data.dtype) + if self.bindings[n].shape != blob[n].shape: + self.context.set_input_shape(n, blob[n].shape) + self.bindings[n] = self.bindings[n]._replace(shape=blob[n].shape) + + assert self.bindings[n].data.dtype == blob[n].dtype, "{} dtype mismatch".format(n) + + self.bindings_addr.update({n: blob[n].data_ptr() for n in self.input_names}) + self.context.execute_v2(list(self.bindings_addr.values())) + outputs = {n: self.bindings[n].data for n in self.output_names} + + return outputs + + def __call__(self, blob): + if self.backend == "torch": + return self.run_torch(blob) + else: + raise NotImplementedError("Only 'torch' backend is implemented.") + + def synchronize(self): + if self.backend == "torch" and torch.cuda.is_available(): + torch.cuda.synchronize() + + +def draw(images, labels, boxes, scores, thrh=0.4): + for i, im in enumerate(images): + draw = ImageDraw.Draw(im) + scr = scores[i] + lab = labels[i][scr > thrh] + box = boxes[i][scr > thrh] + scrs = scr[scr > thrh] + + for j, b in enumerate(box): + draw.rectangle(list(b), outline="red") + draw.text( + (b[0], b[1]), + text=f"{lab[j].item()} {round(scrs[j].item(), 2)}", + fill="blue", + ) + + return images + + +def process_image(m, file_path, device): + im_pil = Image.open(file_path).convert("RGB") + w, h = im_pil.size + orig_size = torch.tensor([w, h])[None].to(device) + + transforms = T.Compose( + [ + T.Resize((640, 640)), + T.ToTensor(), + ] + ) + im_data = transforms(im_pil)[None] + + blob = { + "images": im_data.to(device), + "orig_target_sizes": orig_size.to(device), + } + + output = m(blob) + result_images = draw([im_pil], output["labels"], output["boxes"], output["scores"]) + result_images[0].save("trt_result.jpg") + print("Image processing complete. Result saved as 'result.jpg'.") + + +def process_video(m, file_path, device): + cap = cv2.VideoCapture(file_path) + + # Get video properties + fps = cap.get(cv2.CAP_PROP_FPS) + orig_w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + orig_h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + + # Define the codec and create VideoWriter object + fourcc = cv2.VideoWriter_fourcc(*"mp4v") + out = cv2.VideoWriter("trt_result.mp4", fourcc, fps, (orig_w, orig_h)) + + transforms = T.Compose( + [ + T.Resize((640, 640)), + T.ToTensor(), + ] + ) + + frame_count = 0 + print("Processing video frames...") + while cap.isOpened(): + ret, frame = cap.read() + if not ret: + break + + # Convert frame to PIL image + frame_pil = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) + + w, h = frame_pil.size + orig_size = torch.tensor([w, h])[None].to(device) + + im_data = transforms(frame_pil)[None] + + blob = { + "images": im_data.to(device), + "orig_target_sizes": orig_size.to(device), + } + + output = m(blob) + + # Draw detections on the frame + result_images = draw([frame_pil], output["labels"], output["boxes"], output["scores"]) + + # Convert back to OpenCV image + frame = cv2.cvtColor(np.array(result_images[0]), cv2.COLOR_RGB2BGR) + + # Write the frame + out.write(frame) + frame_count += 1 + + if frame_count % 10 == 0: + print(f"Processed {frame_count} frames...") + + cap.release() + out.release() + print("Video processing complete. Result saved as 'result_video.mp4'.") + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("-trt", "--trt", type=str, required=True) + parser.add_argument("-i", "--input", type=str, required=True) + parser.add_argument("-d", "--device", type=str, default="cuda:0") + + args = parser.parse_args() + + m = TRTInference(args.trt, device=args.device) + + file_path = args.input + if os.path.splitext(file_path)[-1].lower() in [".jpg", ".jpeg", ".png", ".bmp"]: + # Process as image + process_image(m, file_path, args.device) + else: + # Process as video + process_video(m, file_path, args.device) diff --git a/backend/apps/algorithms/algorithm/DFINE/tools/visualization/fiftyone_vis.py b/backend/apps/algorithms/algorithm/DFINE/tools/visualization/fiftyone_vis.py new file mode 100644 index 0000000..cded6d9 --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/tools/visualization/fiftyone_vis.py @@ -0,0 +1,406 @@ +""" +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +""" + +import argparse +import os +import subprocess +import sys +import time + +import fiftyone as fo +import fiftyone.core.fields as fof +import fiftyone.core.labels as fol +import fiftyone.core.models as fom +import fiftyone.zoo as foz +import torch +import torchvision.transforms as transforms +import tqdm +from fiftyone import ViewField as F +from PIL import Image + +from src.core import YAMLConfig + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "../..")) + + +def kill_existing_mongod(): + try: + result = subprocess.run(["ps", "aux"], stdout=subprocess.PIPE) + processes = result.stdout.decode("utf-8").splitlines() + + for process in processes: + if "mongod" in process and "--dbpath" in process: + # find mongod PID + pid = int(process.split()[1]) + print(f"Killing existing mongod process with PID: {pid}") + # kill mongod session + os.kill(pid, 9) + except Exception as e: + print(f"Error occurred while killing mongod: {e}") + + +kill_existing_mongod() + + +label_map = { + 1: "person", + 2: "bicycle", + 3: "car", + 4: "motorbike", + 5: "aeroplane", + 6: "bus", + 7: "train", + 8: "truck", + 9: "boat", + 10: "trafficlight", + 11: "firehydrant", + 12: "streetsign", + 13: "stopsign", + 14: "parkingmeter", + 15: "bench", + 16: "bird", + 17: "cat", + 18: "dog", + 19: "horse", + 20: "sheep", + 21: "cow", + 22: "elephant", + 23: "bear", + 24: "zebra", + 25: "giraffe", + 26: "hat", + 27: "backpack", + 28: "umbrella", + 29: "shoe", + 30: "eyeglasses", + 31: "handbag", + 32: "tie", + 33: "suitcase", + 34: "frisbee", + 35: "skis", + 36: "snowboard", + 37: "sportsball", + 38: "kite", + 39: "baseballbat", + 40: "baseballglove", + 41: "skateboard", + 42: "surfboard", + 43: "tennisracket", + 44: "bottle", + 45: "plate", + 46: "wineglass", + 47: "cup", + 48: "fork", + 49: "knife", + 50: "spoon", + 51: "bowl", + 52: "banana", + 53: "apple", + 54: "sandwich", + 55: "orange", + 56: "broccoli", + 57: "carrot", + 58: "hotdog", + 59: "pizza", + 60: "donut", + 61: "cake", + 62: "chair", + 63: "sofa", + 64: "pottedplant", + 65: "bed", + 66: "mirror", + 67: "diningtable", + 68: "window", + 69: "desk", + 70: "toilet", + 71: "door", + 72: "tv", + 73: "laptop", + 74: "mouse", + 75: "remote", + 76: "keyboard", + 77: "cellphone", + 78: "microwave", + 79: "oven", + 80: "toaster", + 81: "sink", + 82: "refrigerator", + 83: "blender", + 84: "book", + 85: "clock", + 86: "vase", + 87: "scissors", + 88: "teddybear", + 89: "hairdrier", + 90: "toothbrush", + 91: "hairbrush", +} + + +class CustomModel(fom.Model): + def __init__(self, cfg): + super().__init__() + self.model = cfg.model.eval().cuda() + self.postprocessor = cfg.postprocessor.eval().cuda() + self.transform = transforms.Compose( + [ + transforms.ToTensor(), + transforms.Resize((640, 640)), # Resize to the size expected by your model + # transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) + ] + ) + + @property + def media_type(self): + return "image" + + @property + def has_logits(self): + return False + + @property + def has_embeddings(self): + return False + + @property + def ragged_batches(self): + return False + + @property + def transforms(self): + return None + + @property + def preprocess(self): + return True + + @preprocess.setter + def preprocess(self, value): + pass + + def _convert_predictions(self, predictions): + class_labels, bboxes, scores = ( + predictions[0]["labels"], + predictions[0]["boxes"], + predictions[0]["scores"], + ) + + detections = [] + for label, bbox, score in zip(class_labels, bboxes, scores): + detection = fol.Detection( + label=label_map[label.item()], + bounding_box=[ + bbox[0] / 640, # Normalized coordinates + bbox[1] / 640, + (bbox[2] - bbox[0]) / 640, + (bbox[3] - bbox[1]) / 640, + ], + confidence=score, + ) + detections.append(detection) + + return fol.Detections(detections=detections) + + def predict(self, image): + image = Image.fromarray(image).convert("RGB") + image_tensor = self.transform(image).unsqueeze(0).cuda() + outputs = self.model(image_tensor) + orig_target_sizes = torch.tensor([[640, 640]]).cuda() + predictions = self.postprocessor(outputs, orig_target_sizes) + return self._convert_predictions(predictions) + + def predict_all(self, images): + image_tensors = [] + for image in images: + image = Image.fromarray(image) + image_tensor = self.transform(image) + image_tensors.append(image_tensor) + image_tensors = torch.stack(image_tensors).cuda() + outputs = self.model(image_tensors) + orig_target_sizes = torch.tensor([[640, 640] for image in images]).cuda() + predictions = self.postprocessor(outputs, orig_target_sizes) + converted_predictions = [self._convert_predictions(pred) for pred in predictions] + + # Ensure the output is a list of lists of Detections + return converted_predictions + + +def filter_by_predictions5_confidence(predictions_view, confidence_threshold=0.3): + for j, sample in tqdm.tqdm(enumerate(predictions_view), total=len(predictions_view)): + has_modified = False + for i, detection in enumerate(sample["predictions0"].detections): + if "original_confidence" not in detection: + detection["original_confidence"] = detection["confidence"] + + if ( + detection["confidence"] <= confidence_threshold + and sample["predictions5"].detections[i]["confidence"] >= confidence_threshold + ) or ( + detection["confidence"] >= confidence_threshold + and sample["predictions5"].detections[i]["confidence"] <= confidence_threshold + ): + sample["predictions0"].detections[i]["confidence"] = sample[ + "predictions5" + ].detections[i]["confidence"] + has_modified = True + if has_modified: + sample.save() + + +def restore_confidence(predictions_view): + for j, sample in tqdm.tqdm(enumerate(predictions_view), total=len(predictions_view)): + for i, detection in enumerate(sample["predictions0"].detections): + if "original_confidence" in detection: + detection["confidence"] = detection["original_confidence"] + sample.save() + + +def fast_iou(bbox1, bbox2): + x1, y1, w1, h1 = bbox1 + x2, y2, w2, h2 = bbox2 + xA = max(x1, x2) + yA = max(y1, y2) + xB = min(x1 + w1, x2 + w2) + yB = min(y1 + h1, y2 + h2) + interArea = max(0, xB - xA) * max(0, yB - yA) + boxAArea = w1 * h1 + boxBArea = w2 * h2 + iou = interArea / float(boxAArea + boxBArea - interArea) + return iou + + +def assign_iou_diff(predictions_view): + for sample in predictions_view: + ious_0 = [ + detection.eval0_iou if "eval0_iou" in detection else None + for detection in sample["predictions0"].detections + ] + ious_5 = [ + detection.eval5_iou if "eval5_iou" in detection else None + for detection in sample["predictions5"].detections + ] + bbox_0 = [detection.bounding_box for detection in sample["predictions0"].detections] + bbox_5 = [detection.bounding_box for detection in sample["predictions5"].detections] + # iou_diffs = [abs(iou_5 - iou_0) if iou_0 is not None and iou_5 is not None else -1 for iou_0, iou_5 in zip(ious_0, ious_5)] + iou_inter = [fast_iou(b0, b5) for b0, b5 in zip(bbox_0, bbox_5)] + iou_diffs = [ + abs(iou_5 - iou_0) + if iou_0 is not None and iou_5 is not None and iou_inter > 0.5 + else -1 + for iou_0, iou_5, iou_inter in zip(ious_0, ious_5, iou_inter) + ] + + for detection, iou_diff in zip(sample["predictions0"].detections, iou_diffs): + detection["iou_diff"] = iou_diff + for detection, iou_diff in zip(sample["predictions5"].detections, iou_diffs): + detection["iou_diff"] = iou_diff + # for detection, iou_diff in zip(sample["predictions100"].detections, iou_diffs): + # detection["iou_diff"] = iou_diff + sample.save() + + +def main(args): + try: + if os.path.exists("saved_predictions_view") and os.path.exists("saved_filtered_view"): + print("Loading saved predictions and filtered views...") + dataset = foz.load_zoo_dataset( + "coco-2017", + split="validation", + dataset_name="evaluate-detections-tutorial", + dataset_dir="data/fiftyone", + ) + + dataset.persistent = True + session = fo.launch_app(dataset) + + predictions_view = fo.Dataset.from_dir( + dataset_dir="saved_predictions_view", dataset_type=fo.types.FiftyOneDataset + ).view() + filtered_view = fo.Dataset.from_dir( + dataset_dir="saved_filtered_view", dataset_type=fo.types.FiftyOneDataset + ).view() + else: + dataset = foz.load_zoo_dataset( + "coco-2017", + split="validation", + dataset_name="evaluate-detections-tutorial", + dataset_dir="data/fiftyone", + ) + + dataset.persistent = True + + session = fo.launch_app(dataset) + cfg = YAMLConfig(args.config, resume=args.resume) + if "HGNetv2" in cfg.yaml_cfg: + cfg.yaml_cfg["HGNetv2"]["pretrained"] = False + if args.resume: + checkpoint = torch.load(args.resume, map_location="cpu") + if "ema" in checkpoint: + state = checkpoint["ema"]["module"] + else: + state = checkpoint["model"] + else: + raise AttributeError("only support resume to load model.state_dict by now.") + + # NOTE load train mode state -> convert to deploy mode + cfg.model.load_state_dict(state) + predictions_view = dataset.take(100, seed=51) + + model = CustomModel(cfg) + L = model.model.decoder.decoder.eval_idx + # Apply models and save predictions in different label fields + for i in [L]: + model.model.decoder.decoder.eval_idx = i + label_field = "predictions{:d}".format(i) + predictions_view.apply_model(model, label_field=label_field) + + # filter_by_predictions5_confidence(predictions_view, confidence_threshold=0.3) + for i in [L]: + label_field = "predictions{:d}".format(i) + predictions_view = predictions_view.filter_labels( + label_field, F("confidence") > 0.5, only_matches=False + ) + eval_key = "eval{:d}".format(i) + _ = predictions_view.evaluate_detections( + label_field, + gt_field="ground_truth", + eval_key=eval_key, + compute_mAP=True, + ) + + # assign_iou_diff(predictions_view) + + # filtered_view = predictions_view.filter_labels("predictions0", F("iou_diff") > 0.05, only_matches=True) + # filtered_view = filtered_view.filter_labels("predictions5", F("iou_diff") > 0.05, only_matches=True) + # restore_confidence(filtered_view) + + predictions_view.export( + export_dir="saved_predictions_view", dataset_type=fo.types.FiftyOneDataset + ) + # filtered_view.export( + # export_dir="saved_filtered_view", + # dataset_type=fo.types.FiftyOneDataset + # ) + + # Display the filtered view + session.view = predictions_view + + # Keep the session open + while True: + time.sleep(1) + except Exception as e: + print(f"An error occurred: {e}") + finally: + print("Shutting down session") + if "session" in locals(): + session.close() + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--config", "-c", type=str) + parser.add_argument("--resume", "-r", type=str) + args = parser.parse_args() + + main(args) diff --git a/backend/apps/algorithms/algorithm/DFINE/torch_results.jpg b/backend/apps/algorithms/algorithm/DFINE/torch_results.jpg new file mode 100644 index 0000000..5fe275c Binary files /dev/null and b/backend/apps/algorithms/algorithm/DFINE/torch_results.jpg differ diff --git a/backend/apps/algorithms/algorithm/DFINE/train.py b/backend/apps/algorithms/algorithm/DFINE/train.py new file mode 100644 index 0000000..105845d --- /dev/null +++ b/backend/apps/algorithms/algorithm/DFINE/train.py @@ -0,0 +1,166 @@ +""" +D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement +Copyright (c) 2024 The D-FINE Authors. All Rights Reserved. +--------------------------------------------------------------------------------- +Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) +Copyright (c) 2023 lyuwenyu. All Rights Reserved. +""" + +import os +import sys +import torch +import json +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) + +import argparse + +from src.core import YAMLConfig, yaml_utils +from src.misc import dist_utils +from src.solver import TASKS +from pprint import pprint +import django + +current_dir = os.path.dirname(os.path.abspath(__file__)) +project_root = os.path.abspath(os.path.join(current_dir, "../../../../")) +sys.path.append(project_root) +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") +django.setup() +from apps.core.models import AiAlgorithmTrainRecords +from django.utils.timezone import now +debug = False + +if debug: + def custom_repr(self): + return f"{{Tensor:{tuple(self.shape)}}} {original_repr(self)}" + + original_repr = torch.Tensor.__repr__ + torch.Tensor.__repr__ = custom_repr + + +def safe_get_rank(): + if torch.distributed.is_available() and torch.distributed.is_initialized(): + return torch.distributed.get_rank() + else: + return 0 + + +def main(args) -> None: + """main""" + dist_utils.setup_distributed(args.print_rank, args.print_method, seed=args.seed) + + assert not all( + [args.tuning, args.resume] + ), "Only support from_scrach or resume or tuning at one time" + + update_dict = yaml_utils.parse_cli(args.update) + update_dict.update( + { + k: v + for k, v in args.__dict__.items() + if k + not in [ + "update", + ] + and v is not None + } + ) + + cfg = YAMLConfig(args.config, **update_dict) + + if args.resume or args.tuning: + if "HGNetv2" in cfg.yaml_cfg: + cfg.yaml_cfg["HGNetv2"]["pretrained"] = False + + if safe_get_rank() == 0: + print("cfg: ") + sys.stdout.flush() + pprint(cfg.__dict__) + + solver = TASKS[cfg.yaml_cfg["task"]](cfg) + + if args.test_only: + solver.val() + else: + solver.fit() + + dist_utils.cleanup() + + +if __name__ == "__main__": + # 记录训练开始时间 + train_start_time = now() + # 发送训练开始的消息 + message = {'type': 'starttime', + 'text': f'|----------------------------训练开始时间:{train_start_time.strftime("%Y-%m-%d %H:%M:%S")}-------------------------------|'} + print(json.dumps(message, ensure_ascii=False)) + sys.stdout.flush() + parser = argparse.ArgumentParser() + # priority 0 + parser.add_argument("-c", "--config", type=str, required=True) + parser.add_argument("-r", "--resume", type=str, help="resume from checkpoint") + parser.add_argument("-t", "--tuning", type=str, help="tuning from checkpoint") + parser.add_argument( + "-d", + "--device", + type=str, + help="device", + ) + parser.add_argument("--seed", type=int, help="exp reproducibility") + parser.add_argument("--use-amp", action="store_true", help="auto mixed precision training") + parser.add_argument("--output-dir", type=str, help="output directoy") + parser.add_argument("--summary-dir", type=str, help="tensorboard summry") + parser.add_argument( + "--test-only", + action="store_true", + default=False, + ) + parser.add_argument('--trainid', type=str, default='0', help="训练id,默认为 '0'") + parser.add_argument('--project_path', type=str, default='project_path', help="路径") + + # priority 1 + parser.add_argument("-u", "--update", nargs="+", help="update yaml config") + + # env + parser.add_argument("--print-method", type=str, default="builtin", help="print method") + parser.add_argument("--print-rank", type=int, default=0, help="print rank id") + + parser.add_argument("--local-rank", type=int, help="local rank id") + args = parser.parse_args() + model_filepath=args.project_path + train_result = "样本准备完成" + status = "01" + try: + main(args) + train_result = "模型训练完成!" + status = "02" + except Exception as e: + import traceback + message = {'type': 'exception', 'text': str(e)} + print(json.dumps(message, ensure_ascii=False)) + print(traceback.format_exc()) + sys.stdout.flush() + train_result = f"模型训练异常: {e}" + status = "02" + finally: + train_end_time = now() + train_total_times = round((train_end_time - train_start_time).total_seconds() / 60, 1) + hours = int(train_total_times // 60) + minutes = int(train_total_times % 60) + message = {'type': 'endtime', + 'text': f'| ----------------------------训练完成时间:{train_end_time.strftime("%Y-%m-%d %H:%M:%S")} - ------------------------------ |'} + print(json.dumps(message, ensure_ascii=False)) + message = {'type': 'totaltime', + 'text': f'|-------------------------模型训练总耗时:{hours} 小时 {minutes} 分钟---------------------------------------|'} + print(json.dumps(message, ensure_ascii=False)) + sys.stdout.flush() + AiAlgorithmTrainRecords.objects.filter(id=args.trainid).update( + train_start_time=train_start_time, + train_end_time=train_end_time, + train_total_times=train_total_times, + model_createtime=train_end_time, + model_filepath=model_filepath, + model_filename="best_stg1.pth", + model_trainresult=train_result, + record_status=status + ) + diff --git a/backend/apps/algorithms/algorithm/Transformer/DetrDetector.py b/backend/apps/algorithms/algorithm/Transformer/DetrDetector.py new file mode 100644 index 0000000..91dc439 --- /dev/null +++ b/backend/apps/algorithms/algorithm/Transformer/DetrDetector.py @@ -0,0 +1,101 @@ +import base64 +import json +from datetime import datetime +import cv2 +from ultralytics import YOLO + +class YoloDetector: + def __init__(self, model_path: str, image_path: str,labels:str, conf_threshold: float = 0.2): + self.model_path = model_path + self.image_path = image_path + self.labels = labels + self.conf_threshold = conf_threshold + self.model = YOLO(model_path) + self.model.overrides = { + 'save_txt': False, + 'save_conf': False, + 'save_crop': False, + 'show': False, + 'conf': self.conf_threshold + } + + def detect(self): + try: + # 进行检测 + results = self.model.predict(source=self.image_path, save=False) + pred_result = self.parse_detection_results(results) + + # 获取带标注的图像 + detection_image = self.get_detection_image(pred_result) + + result_json = { + 'image': detection_image, + 'obj_list': pred_result, + 'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S') + } + + return json.dumps(result_json) + + except Exception as e: + print(f"Error during detection: {e}") + return json.dumps({'error': str(e)}) + + def parse_detection_results(self, results): + pred_result = [] + labels=json.loads(self.labels) + for result in results: + for data in result.boxes.data: + name_key = int(data[5]) + code = result.names.get(name_key) + name = next((item["name"] for item in labels if item["label"] == code), None) + one_box = { + 'code': code, + 'name': name, + 'score': round(data[4].tolist(), 2), + 'x1': int(data[0]), + 'y1': int(data[1]), + 'x2': int(data[2]), + 'y2': int(data[3]) + } + pred_result.append(one_box) + return pred_result + + def get_detection_image(self, pred_result): + img = cv2.imread(self.image_path) + + preset_colors = [ + (0, 0, 255), (20, 20, 255), (20, 40, 255), (0, 60, 255), (0, 80, 255), + (0, 100, 255), (0, 120, 255), (0, 140, 255), (0, 160, 255), (0, 180, 255), + (0, 200, 255), (0, 220, 255), (0, 255, 255), + ] + + category_colors = {} + for i, obj in enumerate(pred_result): + category = obj['code'] + if category not in category_colors: + category_colors[category] = self.get_preset_color(i, preset_colors) + + x1, y1, x2, y2 = obj['x1'], obj['y1'], obj['x2'], obj['y2'] + color = category_colors[category] + cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) + + font = cv2.FONT_HERSHEY_SIMPLEX + text = f"{category}-{obj['score']}" + (text_width, _), _ = cv2.getTextSize(text, font, 0.5, 1) + cv2.rectangle(img, (x1, y1 - 20), (x1 + text_width, y1), color, -1) + cv2.putText(img, text, (x1, y1 - 5), font, 0.5, (255, 255, 255), 1) + + _, img_encoded = cv2.imencode('.jpg', img) + img_base64 = base64.b64encode(img_encoded.tobytes()).decode('utf-8') + return img_base64 + + def get_preset_color(self, index, preset_colors): + return preset_colors[index % len(preset_colors)] + + +# Example usage for testing purposes +if __name__ == '__main__': + img_url = 'D:/project_space/01/002/datasets/00000005.jpg' + model_name = 'D:/python2023/DjangoFrameWork/industrial_prediction/yolo11x.pt' + detector = YoloDetector(model_path=model_name, image_path=img_url) + print(detector.detect()) diff --git a/backend/apps/algorithms/algorithm/Transformer/DetrReporter.py b/backend/apps/algorithms/algorithm/Transformer/DetrReporter.py new file mode 100644 index 0000000..2e056b9 --- /dev/null +++ b/backend/apps/algorithms/algorithm/Transformer/DetrReporter.py @@ -0,0 +1,183 @@ +import os +import base64 +from datetime import datetime + +class YOLOReporter: + def __init__(self, project_path: str, train_name: str = "train_name"): + """ + YOLOReporter 初始化方法,仅保留生成报告所需的属性. + :param project_path: 项目保存路径 + :param train_name: 训练名称 + """ + self.project_path = project_path + self.train_name = train_name + + @staticmethod + def image_to_base64(image_path: str) -> str: + """ + 将图片文件转换为 Base64 编码字符串. + :param image_path: 图片文件路径 + :return: Base64 编码的字符串 + """ + if not os.path.exists(image_path): + return "" # 如果图片不存在,返回空字符串 + + with open(image_path, "rb") as image_file: + base64_str = base64.b64encode(image_file.read()).decode("utf-8") + return base64_str + + def generate_report(self, dataset_name: str, model_name: str, training_duration: str, metrics: list,overall_metrics:str, image_urls: dict): + """ + 生成训练 HTML 报告. + :param dataset_name: 数据集名称 + :param model_name: 模型名称 + :param training_duration: 训练时长 + :param metrics: 性能指标列表 + :param image_urls: 图片路径字典 + """ + # HTML 模板 + html_template = """ + + + + + + 图像识别算法模型训练报告 + + + +
+

训练摘要

+

报告标题:{{train_name}}

+

生成日期:{{report_date}}

+

模型名称:{{model_name}}

+

训练数据集:{{dataset_name}}

+

训练时长:{{training_duration}}

+
+
+

性能指标

+
+ + + + + + + + + + + {{metrics_rows}} + +
类别名称mAP@50mAP@50-95
+
+

+ mAP@50: 平均精度在 IoU(交并比)阈值为 50% 时的评估结果,衡量模型检测的准确性。
+ mAP@50-95: 平均精度在 IoU 阈值从 50% 到 95%(步长为 5%)的评估结果,更严格地衡量模型在不同 IoU 标准下的综合性能。 +

+
+
+

训练结果图片

+
+

损失曲线图

+ 损失曲线图 +

损失曲线图反映了模型在训练过程中损失值的变化趋势。通常,损失值逐渐下降并趋于平稳,说明模型逐步收敛,性能提升。

+

精确率-召回率曲线

+ 精确率-召回率曲线 +

+ 精确率(Precision)表示预测为正类的样本中实际为正类的比例;召回率(Recall)表示所有实际为正类的样本中成功预测为正类的比例。 + 精确率-召回率曲线反映了模型在不同阈值下的平衡表现,理想情况下曲线越靠近右上角越好。 +

+

混淆矩阵

+ 混淆矩阵 +

+ 混淆矩阵用于展示模型预测结果的分类情况。对角线上的值表示正确预测的数量,非对角线上的值表示错误分类的数量。 + 理想情况下,混淆矩阵应接近对角矩阵,说明模型分类性能良好。 +

+
+
+
+

模型总体性能

+
+

Precision: {{precision}},表示预测为正类的样本中实际为正类的比例,值越高说明模型预测的准确性越强。

+

Recall: {{recall}},表示所有实际为正类的样本中成功预测为正类的比例,值越高说明模型对正类样本的覆盖能力越强。

+

mAP@50: {{mAP50}},在 IoU ≥ 50% 时的平均精度,衡量模型检测目标的能力。

+

mAP@50-95: {{mAP50_95}},在 IoU 从 50% 到 95%(步长为 5%)的平均精度,反映模型在不同 IoU 阈值下的综合性能。

+

Fitness: {{fitness}},综合精确率、召回率和 mAP 的加权得分,表示模型的总体性能。

+
+
+ + + """ + + # 生成性能指标表格行 + metrics_rows = "".join( + f"{metric['class']}{metric['name']}{metric['mAP50']:.4f}{metric['mAP50-95']:.4f}" + for metric in metrics + ) + + # 转换图片为 Base64 + loss_graph_base64 = self.image_to_base64(image_urls["loss_graph"]) + pr_curve_base64 = self.image_to_base64(image_urls["pr_curve"]) + confusion_matrix_base64 = self.image_to_base64(image_urls["confusion_matrix"]) + + # 填充模板 + report_html = html_template.replace("{{report_date}}", datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + report_html = report_html.replace("{{train_name}}", self.train_name) + report_html = report_html.replace("{{model_name}}", model_name) # 默认模型名称 + report_html = report_html.replace("{{dataset_name}}", dataset_name) + report_html = report_html.replace("{{training_duration}}", training_duration) + report_html = report_html.replace("{{metrics_rows}}", metrics_rows) + report_html = report_html.replace("{{loss_graph_base64}}", loss_graph_base64) + report_html = report_html.replace("{{pr_curve_base64}}", pr_curve_base64) + report_html = report_html.replace("{{confusion_matrix_base64}}", confusion_matrix_base64) + + # 填充总体性能指标 + report_html = report_html.replace("{{precision}}", str(overall_metrics.get("precision"))) + report_html = report_html.replace("{{recall}}", str(overall_metrics.get("recall"))) + report_html = report_html.replace("{{mAP50}}", str(overall_metrics.get("mAP50"))) + report_html = report_html.replace("{{mAP50_95}}", str(overall_metrics.get("mAP50-95"))) + report_html = report_html.replace("{{fitness}}", str(overall_metrics.get("fitness"))) + + # 保存 HTML 文件 + output_html_path = os.path.join(self.project_path, "train_report.html") + with open(output_html_path, "w", encoding="utf-8") as f: + f.write(report_html) + + print(f"训练报告 HTML 已保存到 {output_html_path}") + + + +# 示例调用 +if __name__ == "__main__": + reporter = YOLOReporter( + project_path="D:/project_space/01/003/trains/003_20241219_2122/runs/train", + train_name="大模型训练" + ) + + # 生成报告 + reporter.generate_report( + dataset_name="COCO Dataset", + model_name="COCO Dataset", + training_duration="2 hours", + metrics=[ + {"class": "Person", "mAP50": 0.8234, "mAP50-95": 0.7234}, + {"class": "Car", "mAP50": 0.9123, "mAP50-95": 0.8231}, + ], + image_urls={ + "loss_graph": os.path.join(reporter.project_path, "results.png"), + "pr_curve": os.path.join(reporter.project_path, "PR_curve.png"), + "confusion_matrix": os.path.join(reporter.project_path, "confusion_matrix.png") + } + ) + diff --git a/backend/apps/algorithms/algorithm/Transformer/DetrTrainer.py b/backend/apps/algorithms/algorithm/Transformer/DetrTrainer.py new file mode 100644 index 0000000..07db9a7 --- /dev/null +++ b/backend/apps/algorithms/algorithm/Transformer/DetrTrainer.py @@ -0,0 +1,50 @@ +from ultralytics import YOLO + + +from ultralytics import YOLO +import os + +class YOLOTrainer: + def __init__(self, model_path: str, data_path: str, params: dict, project_path: str = None, run_name: str = "yolo_run"): + """ + YOLOTrainer 初始化方法. + :param model_path: 模型路径 (e.g., yolo11n.pt) + :param data_path: 数据配置文件路径 (e.g., yolo_config.yaml) + :param params: 训练参数字典,从 data_str 提取 (e.g., epochs, batch_size, img_size, device 等) + :param project_path: 项目保存路径 + :param run_name: 运行名称 + """ + self.model_path = model_path + self.data_path = data_path + self.project_path = project_path or f"./runs/train/{run_name}" + self.run_name = run_name + + # 从 params 中解析参数 + self.epochs = int(params.get("epochs", 3)) + self.batch_size = int(params.get("batch", 16)) + self.img_size = int(params.get("imgsz", 640)) + self.workers = int(params.get("workers", 8)) + self.device = params.get("device", "cpu") # 默认为 CPU + # 加载 YOLO 模型 + self.model = YOLO(model_path) + + def train(self): + """ + 开始训练 YOLO 模型,使用初始化时指定的参数. + """ + # 确保项目路径存在 + os.makedirs(self.project_path, exist_ok=True) + + # 使用 YOLO 的 train 方法进行训练 + results = self.model.train( + data=self.data_path, + project=self.project_path, + name=self.run_name, + epochs=self.epochs, + batch=self.batch_size, + imgsz=self.img_size, + workers=self.workers, + device=self.device + + ) + return results \ No newline at end of file diff --git a/backend/apps/algorithms/algorithm/Transformer/__init__.py b/backend/apps/algorithms/algorithm/Transformer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/__init__.py b/backend/apps/algorithms/algorithm/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/__init__.py b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/class_id.npy b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/class_id.npy new file mode 100644 index 0000000..e377c73 Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/class_id.npy differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/cudaTest.py b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/cudaTest.py new file mode 100644 index 0000000..1d85a81 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/cudaTest.py @@ -0,0 +1,6 @@ +import torch +print("PyTorch version:", torch.__version__) +print("CUDA available:", torch.cuda.is_available()) +print("CUDA version used by PyTorch:", torch.version.cuda) +print("Current device:", torch.cuda.current_device()) +print("Device name:", torch.cuda.get_device_name(torch.cuda.current_device())) diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/dataset.py b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/dataset.py new file mode 100644 index 0000000..435bb8e --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/dataset.py @@ -0,0 +1,32 @@ +import os +import numpy as np +import math +import torch.nn as nn +import torch +import torch.nn.functional as F +from torch.utils.data import Dataset +from collections import OrderedDict,defaultdict + +import random +import json + + +# dataLoader +class FeatureDataset(Dataset): + def __init__(self,hex_array,class_ids): + self.hex_array=hex_array + self.class_ids=class_ids + print(self.hex_array.shape,self.class_ids.shape) + + def __getitem__(self, index): + dat=self.hex_array[index] + class_id=self.class_ids[index] + + return dat,class_id + + + def __len__(self): + return len(self.hex_array) + +if __name__ == '__main__': + pass diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/hex_array.npy b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/hex_array.npy new file mode 100644 index 0000000..264da30 Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/hex_array.npy differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/infer.py b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/infer.py new file mode 100644 index 0000000..23c652e --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/infer.py @@ -0,0 +1,190 @@ +import os +import json +import torch +import pandas as pd +import numpy as np + +from model import FeatureModel +from torch.utils.data import Dataset, DataLoader + +# =================== 全局常量 =================== +LABEL_TO_APP_AUX = { + 1: "aim_chat", + 2: "bittorrent", + 3: "email", + 4: "facebook_voip", + 5: "facebook_chat", + 6: "ftps_file_transfer", + 7: "hangouts_voip", + 8: "hangouts_chat", + 9: "icq_chat", + 10: "sftp_file_transfer", + 11: "skype_voip", + 12: "skype_file_transfer" +} +# ============================================== + +# =================== 配置参数 =================== +CONFIG = { + "checkpoint_path": "modelsave/model_111.pth", + "input_excel": "./test.xlsx", + "output_json": "./pred.json", + "result_excel": "./result.xlsx", + "num_classes": 12, + "hex_fixed_length": 1408, +} +# ============================================== + + +def hex_to_array(hex_str: str, fix_len: int) -> np.ndarray: + """ + 将十六进制字符串转换为固定长度的浮点数组。 + + Args: + hex_str (str): 十六进制字符串,如 '0a 0b 0c' + fix_len (int): 固定输出长度,不足则补零 + + Returns: + np.ndarray: 转换后的数组,dtype=np.float32 + """ + hex_list = [int(x, 16) for x in hex_str.split(" ")] + return np.pad( + np.array(hex_list, dtype=np.float32), + pad_width=(0, max(0, fix_len - len(hex_list))), + constant_values=0 + ) + + +class TestDataset(Dataset): + """ + 自定义测试数据集,用于从 Excel 文件中读取 Hex 数据并进行预处理。 + """ + + def __init__(self, excel_path: str, hex_len: int): + self.df = pd.read_excel(excel_path) + self.hex_len = hex_len + + def __len__(self) -> int: + return len(self.df) + + def __getitem__(self, idx: int) -> (int, np.ndarray): + row = self.df.iloc[idx] + file_no = row["No."] + hex_data = row["Hex"] + feature = hex_to_array(hex_data, fix_len=self.hex_len) / 255.0 # 归一化到 [0, 1] + return file_no, feature + + +def load_model(num_classes: int, checkpoint_path: str) -> FeatureModel: + """ + 加载模型权重并切换为评估模式。 + + Args: + num_classes (int): 分类数量 + checkpoint_path (str): 权重文件路径 + + Returns: + FeatureModel: 已加载权重的模型实例 + """ + if not os.path.exists(checkpoint_path): + raise FileNotFoundError(f"模型文件未找到: {checkpoint_path}") + + model = FeatureModel(num_classes) + weights_dict = torch.load(checkpoint_path, weights_only=True) + model.load_state_dict(weights_dict["state_dict"]) + model.eval() + return model + + +def run_inference(model: FeatureModel, dataset: Dataset) -> dict: + """ + 对输入数据集执行推理任务,并返回预测结果字典。 + + Args: + model (FeatureModel): 已加载权重的模型 + dataset (Dataset): 推理用的数据集 + + Returns: + dict: {file_no: predicted_class_id} + """ + data_loader = DataLoader(dataset, batch_size=1, shuffle=False, num_workers=0, pin_memory=False, drop_last=False) + + results = {} + + with torch.no_grad(): + for file_nos, features in data_loader: + preds = model(features) + preds = preds.cpu().numpy() + pred_labels = np.argmax(preds, axis=1) + + for i, label in enumerate(pred_labels): + file_no = file_nos[i].item() + results[file_no] = int(label) + 1 # 标签从 1 开始计数 + + return results + + +def save_results(results: dict, output_file: str): + """ + 保存推理结果为 JSON 文件。 + + Args: + results (dict): 推理结果字典 + output_file (str): 输出文件路径 + """ + os.makedirs(os.path.dirname(output_file), exist_ok=True) + with open(output_file, "w", encoding="UTF-8") as f: + json.dump(results, f, indent=4, ensure_ascii=False) + + +def update_result_excel(results: dict, output_excel_path: str, input_excel_path: str): + """ + 更新 result.xlsx 文件,添加 pred-result 列。 + + Args: + results (dict): 推理结果字典 + output_excel_path (str): 输出 Excel 文件路径 + input_excel_path (str): 输入 Excel 文件路径 + """ + # 读取原始 Excel 文件 + df = pd.read_excel(input_excel_path) + + # 创建新的 DataFrame 用于结果 + result_df = df.copy() + + # 添加 pred-result 列 + result_df["pred-result"] = "" + + # 更新 pred-result 列 + for file_no, label in results.items(): + if label in LABEL_TO_APP_AUX: + result_df.loc[result_df["No."] == file_no, "pred-result"] = LABEL_TO_APP_AUX[label] + + # 保存到 result.xlsx + result_df.to_excel(output_excel_path, index=False) + + +def main(): + """主程序入口""" + print("🚀 开始推理流程") + + # 1. 初始化数据集 + test_dataset = TestDataset(CONFIG["input_excel"], CONFIG["hex_fixed_length"]) + + # 2. 加载模型 + model = load_model(CONFIG["num_classes"], CONFIG["checkpoint_path"]) + + # 3. 执行推理 + predictions = run_inference(model, test_dataset) + + # 4. 保存结果到 JSON 文件 + save_results(predictions, CONFIG["output_json"]) + + # 5. 更新 result.xlsx 文件 + update_result_excel(predictions, CONFIG["result_excel"], CONFIG["input_excel"]) + + print(f"✅ 推理完成,结果已保存至:{CONFIG['output_json']} 和 {CONFIG['result_excel']}") + + +if __name__ == "__main__": + main() diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/model.py b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/model.py new file mode 100644 index 0000000..b4e193f --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/model.py @@ -0,0 +1,396 @@ +import numpy as np +import torch.nn as nn +import torch +import torch.nn.functional as F + +from collections import OrderedDict +import collections.abc +from itertools import repeat +import math +from functools import partial +import warnings + +# from torchinfo import summary + +# From PyTorch internals +def _ntuple(n): + def parse(x): + if isinstance(x, collections.abc.Iterable): + return x + return tuple(repeat(x, n)) + + return parse + + +to_1tuple = _ntuple(1) +to_2tuple = _ntuple(2) +to_3tuple = _ntuple(3) +to_4tuple = _ntuple(4) +to_ntuple = _ntuple + +def _no_grad_trunc_normal_(tensor, mean, std, a, b): + # Cut & paste from PyTorch official master until it's in a few official releases - RW + # Method based on https://people.sc.fsu.edu/~jburkardt/presentations/truncated_normal.pdf + def norm_cdf(x): + # Computes standard normal cumulative distribution function + return (1. + math.erf(x / math.sqrt(2.))) / 2. + + if (mean < a - 2 * std) or (mean > b + 2 * std): + warnings.warn("mean is more than 2 std from [a, b] in nn.init.trunc_normal_. " + "The distribution of values may be incorrect.", + stacklevel=2) + + with torch.no_grad(): + # Values are generated by using a truncated uniform distribution and + # then using the inverse CDF for the normal distribution. + # Get upper and lower cdf values + l = norm_cdf((a - mean) / std) + u = norm_cdf((b - mean) / std) + + # Uniformly fill tensor with values from [l, u], then translate to + # [2l-1, 2u-1]. + tensor.uniform_(2 * l - 1, 2 * u - 1) + + # Use inverse cdf transform for normal distribution to get truncated + # standard normal + tensor.erfinv_() + + # Transform to proper mean, std + tensor.mul_(std * math.sqrt(2.)) + tensor.add_(mean) + + # Clamp to ensure it's in the proper range + tensor.clamp_(min=a, max=b) + return tensor + +from typing import Any, Callable, Dict, Iterator, Tuple, Type, Union +def named_apply( + fn: Callable, + module: nn.Module, name='', + depth_first: bool = True, + include_root: bool = False, +) -> nn.Module: + if not depth_first and include_root: + fn(module=module, name=name) + for child_name, child_module in module.named_children(): + child_name = '.'.join((name, child_name)) if name else child_name + named_apply(fn=fn, module=child_module, name=child_name, depth_first=depth_first, include_root=True) + if depth_first and include_root: + fn(module=module, name=name) + return module + +def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.): + return _no_grad_trunc_normal_(tensor, mean, std, a, b) + + +class LayerNorm(nn.Module): + r""" LayerNorm that supports two data formats: channels_last (default) or channels_first. + The ordering of the dimensions in the inputs. channels_last corresponds to inputs with + shape (batch_size, height, width, channels) while channels_first corresponds to inputs + with shape (batch_size, channels, height, width). + """ + def __init__(self, normalized_shape, eps=1e-6, data_format="channels_last"): + super().__init__() + self.weight = nn.Parameter(torch.ones(normalized_shape)) + self.bias = nn.Parameter(torch.zeros(normalized_shape)) + self.eps = eps + self.data_format = data_format + if self.data_format not in ["channels_last", "channels_first"]: + raise NotImplementedError + self.normalized_shape = (normalized_shape, ) + + def forward(self, x): + if self.data_format == "channels_last": + return F.layer_norm(x, self.normalized_shape, self.weight, self.bias, self.eps) + elif self.data_format == "channels_first": + u = x.mean(1, keepdim=True) + s = (x - u).pow(2).mean(1, keepdim=True) + x = (x - u) / torch.sqrt(s + self.eps) + x = self.weight[:, None, None] * x + self.bias[:, None, None] + return x + +class CNBlock(nn.Module): + r""" ConvNeXt Block. There are two equivalent implementations: + (1) DwConv -> LayerNorm (channels_first) -> 1x1 Conv -> GELU -> 1x1 Conv; all in (N, C, H, W) + (2) DwConv -> Permute to (N, H, W, C); LayerNorm (channels_last) -> Linear -> GELU -> Linear; Permute back + We use (2) as we find it slightly faster in PyTorch + + Args: + dim (int): Number of input channels. + drop_path (float): Stochastic depth rate. Default: 0.0 + layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6. + """ + def __init__(self, dim, drop_path=0., layer_scale_init_value=1e-6): + super().__init__() + self.dwconv = nn.Conv2d(dim, dim, kernel_size=7, padding=3, groups=dim) # depthwise conv + self.norm = LayerNorm(dim, eps=1e-6) + self.pwconv1 = nn.Linear(dim, 4 * dim) # pointwise/1x1 convs, implemented with linear layers + self.act = nn.GELU() + self.pwconv2 = nn.Linear(4 * dim, dim) + self.gamma = nn.Parameter(layer_scale_init_value * torch.ones((dim)), + requires_grad=True) if layer_scale_init_value > 0 else None + # self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity() + self.drop_path = nn.Identity() + + def forward(self, x): + input = x + x = self.dwconv(x) + x = x.permute(0, 2, 3, 1) # (N, C, H, W) -> (N, H, W, C) + x = self.norm(x) + x = self.pwconv1(x) + x = self.act(x) + x = self.pwconv2(x) + if self.gamma is not None: + x = self.gamma * x + x = x.permute(0, 3, 1, 2) # (N, H, W, C) -> (N, C, H, W) + + x = input + self.drop_path(x) + return x + + +class SEBlock(nn.Module): + + def __init__(self, input_channels, internal_neurons): + super(SEBlock, self).__init__() + self.down = nn.Conv2d(in_channels=input_channels, out_channels=internal_neurons, kernel_size=1, stride=1, + bias=True, padding_mode='circular') + self.up = nn.Conv2d(in_channels=internal_neurons, out_channels=input_channels, kernel_size=1, stride=1, + bias=True, padding_mode='circular') + + def forward(self, inputs): + x = F.avg_pool2d(inputs, kernel_size=(inputs.size(2),inputs.size(3))) + x = self.down(x) + x = F.leaky_relu(x) + x = self.up(x) + x = torch.sigmoid(x) + x = x.repeat(1, 1, inputs.size(2), inputs.size(3)) + return inputs * x + +class eca_layer(nn.Module): + """Constructs a ECA module. + + Args: + channel: Number of channels of the input feature map + k_size: Adaptive selection of kernel size + """ + def __init__(self, channel, k_size=3): + super(eca_layer, self).__init__() + self.avg_pool = nn.AdaptiveAvgPool2d(1) + self.conv = nn.Conv1d(1, 1, kernel_size=k_size, padding=(k_size - 1) // 2, bias=False) + self.sigmoid = nn.Sigmoid() + + def forward(self, x): + # feature descriptor on the global spatial information + y = self.avg_pool(x) + + # Two different branches of ECA module + y = self.conv(y.squeeze(-1).transpose(-1, -2)).transpose(-1, -2).unsqueeze(-1) + + # Multi-scale information fusion + y = self.sigmoid(y) + + return x * y.expand_as(x) + +class RepConv(nn.Module): + + def __init__(self, in_channels, out_channels, kernel_size, stride, padding=None, groups=1, + map_k=3): + super(RepConv, self).__init__() + assert map_k <= kernel_size + self.origin_kernel_shape = (out_channels, in_channels // groups, kernel_size, kernel_size) + self.register_buffer('weight', torch.zeros(*self.origin_kernel_shape)) + G = in_channels * out_channels // (groups ** 2) + self.num_2d_kernels = out_channels * in_channels // groups + self.kernel_size = kernel_size + self.convmap = nn.Conv2d(in_channels=self.num_2d_kernels, + out_channels=self.num_2d_kernels, kernel_size=map_k, stride=1, padding=map_k // 2, + groups=G, bias=False) + #nn.init.zeros_(self.convmap.weight) + self.bias = None#nn.Parameter(torch.zeros(out_channels), requires_grad=True) # must have a bias for identical initialization + self.stride = stride + self.groups = groups + if padding is None: + padding = kernel_size // 2 + self.padding = padding + + def forward(self, inputs): + origin_weight = self.weight.view(1, self.num_2d_kernels, self.kernel_size, self.kernel_size) + kernel = self.weight + self.convmap(origin_weight).view(*self.origin_kernel_shape) + return F.conv2d(inputs, kernel, stride=self.stride, padding=self.padding, dilation=1, groups=self.groups, bias=self.bias) + +def conv3x3(in_planes, out_planes, stride=1): + """3x3 convolution with padding""" + return nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride, + padding=1, bias=True) + +class ConvLayer(nn.Sequential): + def __init__(self, in_planes, out_planes, kernel_size,stride=1, activation="LeakyReLU",groups=1): + if not isinstance(kernel_size, int): + padding = [(i - 1) // 2 for i in kernel_size] + else: + padding = (kernel_size - 1) // 2 + dict_activation ={ + "LeakyReLU": nn.LeakyReLU(negative_slope=0.3,inplace=True), + "Sigmoid": nn.Sigmoid(), + "Tanh": nn.Tanh(), + "SiLU": nn.SiLU(), + } + activation_layer = dict_activation[activation] + + super(ConvLayer, self).__init__(OrderedDict([ + ("conv", nn.Conv2d(in_planes, out_planes, kernel_size, stride, padding=padding, bias=False,groups=groups)), + # ("bn", nn.BatchNorm2d(out_planes)), + ("activation",activation_layer) + ])) + +class Conv1DLayer(nn.Sequential): + def __init__(self, in_planes, out_planes, kernel_size,stride=1, activation="LeakyReLU"): + if not isinstance(kernel_size, int): + padding = [(i - 1) // 2 for i in kernel_size] + else: + padding = (kernel_size - 1) // 2 + dict_activation ={ + "LeakyReLU": nn.LeakyReLU(negative_slope=0.01,inplace=True), + "Sigmoid": nn.Sigmoid(), + "Tanh": nn.Tanh(), + "SiLU": nn.SiLU(), + } + activation_layer = dict_activation[activation] + super(Conv1DLayer, self).__init__(OrderedDict([ + ("conv", nn.Conv1d(in_planes, out_planes, kernel_size, stride, padding=padding, bias=False)), + # ("bn", nn.BatchNorm2d(out_planes)), + ("activation",activation_layer) + ])) + + + +# Calculate symmetric padding for a convolution +def get_padding(kernel_size: int, stride: int = 1, dilation: int = 1, **_) -> int: + padding = ((stride - 1) + dilation * (kernel_size - 1)) // 2 + return padding + + +class FeatureModel(nn.Module): + + def __init__(self, class_count=12): + super(FeatureModel, self).__init__() + self.alpha=0.2 + self.channel=128 + self.conv_start= nn.Sequential( + # nn.Conv2d(1024, 2048, kernel_size=4, stride=4, padding=1, bias=True), + # nn.Conv2d(2048, 2048, kernel_size=4, stride=4, padding=0, bias=True), + # nn.Conv2d(1024, 1024, kernel_size=7, stride=7, bias=True), + # nn.SiLU(), + # nn.Conv2d(1024, 2048, kernel_size=2, stride=2, bias=True), + # SEBlock(2048,1024) + nn.Conv1d(1,out_channels=16,kernel_size=3,stride=2, padding=1), + nn.Conv1d(16,out_channels=32,kernel_size=3,stride=2, padding=1), + nn.Conv1d(32,out_channels=64,kernel_size=3,stride=2, padding=1), + nn.MaxPool1d(4) + + ) + self.conv_mid= nn.Sequential( + nn.Conv1d(64, self.channel,kernel_size=3,stride=1,padding=1, bias=True), + nn.SiLU(), + nn.Conv1d(self.channel, self.channel*2,kernel_size=3,stride=1,padding=1, bias=True), + nn.SiLU(), + # SEBlock( self.channel*2, self.channel) + + + ) + # self.act=nn.SiLU() + # self.conv1d1=nn.Conv2d(250,self.channel,32,stride=32,padding=0) + # self.conv1d2=nn.Conv2d(self.channel,self.channel,32,stride=32,padding=0) + + # self.se=eca_layer(1280) + dropout=0.3 + self.classify=nn.Sequential( + # + nn.Linear(11264, 256), + nn.LeakyReLU(), + nn.Dropout(p = dropout), + # + # nn.Linear(self.channels*16, self.channels*8), + # # nn.BatchNorm1d(self.channels*8), + # nn.LeakyReLU(), + # nn.Dropout(p = dropout), + + # nn.Linear(self.channels*8, self.channels*4), + # # nn.BatchNorm1d(self.channels*4), + # nn.LeakyReLU(), + # nn.Dropout(p = dropout), + + nn.Linear(256, class_count) + ) + # named_apply(partial(_init_weights, head_init_scale=1.), self) + zero_init_fc=False + for n, m in self.named_modules(): + if 'fc' in n and isinstance(m, nn.Linear): + if zero_init_fc: + nn.init.zeros_(m.weight) + else: + nn.init.normal_(m.weight, 0., .01) + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight, mode='fan_in', nonlinearity='linear') + if m.bias is not None: + nn.init.zeros_(m.bias) + + + def forward(self,feas): + # print(feas.size()) #(b,250,1024,14,14) + # feas=feas.view(-1,1024,14,14) + # print(feas.size()) + feas=torch.unsqueeze(feas,1) + # print(feas.size()) + feas=self.conv_start(feas) + + # print(feas.size()) # + # feas=feas.view(-1,250,32,64) + + feas=self.conv_mid(feas) + # print(feas.size()) + feas=feas.view(-1,11264) + + # print(out.size()) + # out=self.se(feas) + # print(out.size()) + # out=torch.squeeze(out,2) + # out=out.view(-1,self.channels[self.stage_count+1]*2) + # print(out.size()) + out = self.classify(feas) + # print(out.size()) + return out + +def _init_weights(module, name=None, head_init_scale=1.0): + if isinstance(module, nn.Conv2d): + trunc_normal_(module.weight, std=.02) + if module.bias is not None: + nn.init.zeros_(module.bias) + elif isinstance(module, nn.Linear): + trunc_normal_(module.weight, std=.02) + nn.init.zeros_(module.bias) + if name and 'head.' in name: + module.weight.data.mul_(head_init_scale) + module.bias.data.mul_(head_init_scale) + + + +if __name__ == '__main__': + import json + from dataset import FeatureDataset + + train_dataset = FeatureDataset() + print(len(train_dataset)) + train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=2, shuffle=True, num_workers=0, pin_memory=True, drop_last=True) + model=FeatureModel() + # torch.save({'state_dict': model.state_dict(), }, 'test.pth') + # print(model) + # summary(model) + for dat,lables in train_loader: + print(dat.size(),lables.size()) + output=model(dat) + print(output.size()) + + break diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/modelsave/model_111.pth b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/modelsave/model_111.pth new file mode 100644 index 0000000..7872470 Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/modelsave/model_111.pth differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/modelsave/model_out.pth b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/modelsave/model_out.pth new file mode 100644 index 0000000..d436ee5 Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/modelsave/model_out.pth differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/pred.json b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/pred.json new file mode 100644 index 0000000..4c5fc98 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/pred.json @@ -0,0 +1,492 @@ +{ + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1, + "19": 1, + "20": 1, + "21": 5, + "22": 5, + "23": 5, + "24": 5, + "25": 5, + "26": 5, + "27": 5, + "28": 5, + "29": 5, + "30": 5, + "31": 5, + "32": 5, + "33": 5, + "34": 5, + "35": 5, + "36": 5, + "37": 5, + "38": 5, + "39": 5, + "40": 5, + "41": 5, + "42": 5, + "43": 5, + "44": 5, + "45": 5, + "46": 5, + "47": 5, + "48": 5, + "49": 5, + "50": 5, + "51": 5, + "52": 5, + "53": 5, + "54": 5, + "55": 5, + "56": 5, + "57": 5, + "58": 5, + "59": 5, + "60": 5, + "61": 5, + "62": 5, + "63": 5, + "64": 5, + "65": 5, + "66": 5, + "67": 5, + "68": 5, + "69": 5, + "70": 5, + "71": 12, + "72": 12, + "73": 12, + "74": 12, + "75": 12, + "76": 12, + "77": 12, + "78": 12, + "79": 12, + "80": 12, + "81": 12, + "82": 12, + "83": 12, + "84": 12, + "85": 12, + "86": 12, + "87": 12, + "88": 12, + "89": 12, + "90": 12, + "91": 9, + "92": 9, + "93": 9, + "94": 9, + "95": 9, + "96": 9, + "97": 9, + "98": 9, + "99": 9, + "100": 9, + "101": 9, + "102": 9, + "103": 9, + "104": 9, + "105": 9, + "106": 9, + "107": 9, + "108": 9, + "109": 9, + "110": 9, + "111": 4, + "112": 4, + "113": 4, + "114": 4, + "115": 4, + "116": 4, + "117": 4, + "118": 4, + "119": 4, + "120": 4, + "121": 4, + "122": 4, + "123": 4, + "124": 4, + "125": 4, + "126": 4, + "127": 4, + "128": 4, + "129": 4, + "130": 4, + "131": 4, + "132": 4, + "133": 4, + "134": 4, + "135": 4, + "136": 4, + "137": 4, + "138": 4, + "139": 4, + "140": 4, + "141": 4, + "142": 4, + "143": 4, + "144": 4, + "145": 4, + "146": 4, + "147": 4, + "148": 4, + "149": 4, + "150": 4, + "151": 4, + "152": 4, + "153": 4, + "154": 4, + "155": 4, + "156": 4, + "157": 4, + "158": 4, + "159": 4, + "160": 4, + "161": 6, + "162": 6, + "163": 6, + "164": 6, + "165": 6, + "166": 6, + "167": 6, + "168": 6, + "169": 6, + "170": 6, + "171": 6, + "172": 6, + "173": 6, + "174": 6, + "175": 6, + "176": 6, + "177": 6, + "178": 6, + "179": 6, + "180": 6, + "181": 6, + "182": 6, + "183": 6, + "184": 6, + "185": 6, + "186": 6, + "187": 6, + "188": 6, + "189": 6, + "190": 6, + "191": 6, + "192": 6, + "193": 6, + "194": 6, + "195": 6, + "196": 6, + "197": 6, + "198": 6, + "199": 6, + "200": 6, + "201": 3, + "202": 3, + "203": 3, + "204": 3, + "205": 3, + "206": 3, + "207": 3, + "208": 3, + "209": 3, + "210": 3, + "211": 3, + "212": 3, + "213": 3, + "214": 3, + "215": 3, + "216": 3, + "217": 3, + "218": 3, + "219": 3, + "220": 3, + "221": 3, + "222": 3, + "223": 3, + "224": 3, + "225": 3, + "226": 3, + "227": 3, + "228": 3, + "229": 3, + "230": 3, + "231": 3, + "232": 3, + "233": 3, + "234": 3, + "235": 3, + "236": 3, + "237": 3, + "238": 3, + "239": 3, + "240": 3, + "241": 3, + "242": 3, + "243": 3, + "244": 3, + "245": 3, + "246": 3, + "247": 3, + "248": 3, + "249": 3, + "250": 3, + "251": 2, + "252": 2, + "253": 2, + "254": 2, + "255": 2, + "256": 2, + "257": 2, + "258": 2, + "259": 2, + "260": 2, + "261": 2, + "262": 2, + "263": 2, + "264": 2, + "265": 2, + "266": 2, + "267": 2, + "268": 2, + "269": 2, + "270": 2, + "271": 2, + "272": 2, + "273": 2, + "274": 2, + "275": 2, + "276": 2, + "277": 2, + "278": 2, + "279": 2, + "280": 2, + "281": 2, + "282": 2, + "283": 2, + "284": 2, + "285": 2, + "286": 2, + "287": 2, + "288": 2, + "289": 2, + "290": 2, + "291": 2, + "292": 2, + "293": 2, + "294": 2, + "295": 2, + "296": 2, + "297": 2, + "298": 2, + "299": 2, + "300": 2, + "301": 11, + "302": 11, + "303": 11, + "304": 11, + "305": 11, + "306": 11, + "307": 11, + "308": 11, + "309": 11, + "310": 11, + "311": 11, + "312": 11, + "313": 11, + "314": 11, + "315": 11, + "316": 11, + "317": 11, + "318": 11, + "319": 11, + "320": 11, + "321": 11, + "322": 11, + "323": 11, + "324": 11, + "325": 11, + "326": 11, + "327": 11, + "328": 11, + "329": 11, + "330": 11, + "331": 11, + "332": 11, + "333": 11, + "334": 11, + "335": 11, + "336": 11, + "337": 11, + "338": 11, + "339": 11, + "340": 11, + "341": 11, + "342": 11, + "343": 11, + "344": 11, + "345": 11, + "346": 11, + "347": 11, + "348": 11, + "349": 11, + "350": 11, + "351": 7, + "352": 7, + "353": 7, + "354": 7, + "355": 7, + "356": 7, + "357": 7, + "358": 7, + "359": 7, + "360": 7, + "361": 7, + "362": 7, + "363": 7, + "364": 7, + "365": 7, + "366": 7, + "367": 7, + "368": 7, + "369": 7, + "370": 7, + "371": 7, + "372": 7, + "373": 7, + "374": 7, + "375": 7, + "376": 7, + "377": 7, + "378": 7, + "379": 7, + "380": 7, + "381": 7, + "382": 7, + "383": 7, + "384": 7, + "385": 7, + "386": 7, + "387": 7, + "388": 7, + "389": 7, + "390": 7, + "391": 7, + "392": 7, + "393": 7, + "394": 7, + "395": 7, + "396": 7, + "397": 7, + "398": 7, + "399": 7, + "400": 7, + "401": 10, + "402": 10, + "403": 10, + "404": 10, + "405": 10, + "406": 10, + "407": 10, + "408": 10, + "409": 10, + "410": 10, + "411": 10, + "412": 10, + "413": 10, + "414": 10, + "415": 10, + "416": 10, + "417": 10, + "418": 10, + "419": 10, + "420": 10, + "421": 10, + "422": 10, + "423": 10, + "424": 10, + "425": 10, + "426": 10, + "427": 10, + "428": 10, + "429": 10, + "430": 10, + "431": 10, + "432": 10, + "433": 10, + "434": 10, + "435": 10, + "436": 10, + "437": 10, + "438": 10, + "439": 10, + "440": 10, + "441": 8, + "442": 8, + "443": 8, + "444": 8, + "445": 8, + "446": 8, + "447": 8, + "448": 8, + "449": 8, + "450": 8, + "451": 8, + "452": 8, + "453": 8, + "454": 8, + "455": 8, + "456": 8, + "457": 8, + "458": 8, + "459": 8, + "460": 8, + "461": 8, + "462": 8, + "463": 8, + "464": 8, + "465": 8, + "466": 8, + "467": 8, + "468": 8, + "469": 8, + "470": 8, + "471": 8, + "472": 8, + "473": 8, + "474": 8, + "475": 8, + "476": 8, + "477": 8, + "478": 8, + "479": 8, + "480": 8, + "481": 8, + "482": 8, + "483": 8, + "484": 8, + "485": 8, + "486": 8, + "487": 8, + "488": 8, + "489": 8, + "490": 8 +} \ No newline at end of file diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/readme.md b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/readme.md new file mode 100644 index 0000000..d8effe4 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/readme.md @@ -0,0 +1,19 @@ +# 查看 CUDA Toolkit 版本(如有安装) +nvcc --version + +# 查看 GPU 驱动和 CUDA 支持版本 +nvidia-smi + +# 安装推荐版本 PyTorch(当前已满足) +pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 + + +# 测试cuda环境是否安装 + +##### * cudaTest.py +* import torch +* print("PyTorch version:", torch.__version__) +* print("CUDA available:", torch.cuda.is_available()) +* print("CUDA version used by PyTorch:", torch.version.cuda) +* print("Current device:", torch.cuda.current_device()) +* print("Device name:", torch.cuda.get_device_name(torch.cuda.current_device())) \ No newline at end of file diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/result.xlsx b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/result.xlsx new file mode 100644 index 0000000..2f0582d Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/result.xlsx differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/test.xlsx b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/test.xlsx new file mode 100644 index 0000000..16197d1 Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/test.xlsx differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/train.py b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/train.py new file mode 100644 index 0000000..28f1728 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/train.py @@ -0,0 +1,356 @@ +import os +import random +import logging +import datetime +from typing import Tuple # 导入类型提示所需的Tuple + +import numpy as np +import torch +import torch.nn as nn +from torch.utils.data import DataLoader +from tqdm import tqdm # 用于显示进度条 + +# 导入自定义模块 +from dataset import FeatureDataset # 自定义数据集类 +from model import FeatureModel # 自定义模型类 +from utils import adaptive_clip_grad # 自适应梯度裁剪函数 + +# =================== 配置参数 =================== +CONFIG = { + 'gpu_list': '0', # 使用的GPU编号列表 + 'CUBLAS_WORKSPACE_CONFIG': ':4096:8', # CUDA相关配置,用于确保结果可复现 + 'class_count': 12, # 分类类别数量 + 'SEED': 111, # 随机种子 + 'model_path': 'modelsave/', # 模型保存路径 + 'checkpoint_file': 'model_{SEED}.pth', # 最佳模型保存文件名格式 + 'checkpoint_file_last': 'model_{SEED}_last.pth', # 最后一个epoch模型保存文件名格式 + 'load_checkpoint': False, # 是否加载已有模型权重,False表示不加载,也可以是模型路径字符串 + 'loss_fun': 'ce', # 损失函数类型,ce表示交叉熵损失 + 'half': False, # 是否使用半精度(FP16)训练 + 'batch_size': 32, # 批处理大小 + 'epochs': 24, # 训练轮数 + 'learning_rate': 1e-3, # 初始学习率 + 'min_lr': 1e-5, # 最小学习率 + 'warmup_epoch': 2, # 预热训练的轮数 + 'num_workers': 4, # 数据加载的线程数 + 'print_freq': 100, # 打印训练信息的频率(每多少个batch打印一次) + 'save_acc': 0.7, # 保存模型的准确率阈值 +} +# 计算起始学习率:如果有预热训练,则从最小学习率开始;否则直接使用设定的学习率 +CONFIG['start_lr'] = CONFIG['min_lr'] if CONFIG['warmup_epoch'] > 0 else CONFIG['learning_rate'] +# 格式化模型保存文件名,将{SEED}替换为实际的种子值 +CONFIG['checkpoint_file'] = CONFIG['checkpoint_file'].format(SEED=CONFIG['SEED']) +CONFIG['checkpoint_file_last'] = CONFIG['checkpoint_file_last'].format(SEED=CONFIG['SEED']) + +# 设置环境变量 +os.environ["CUDA_VISIBLE_DEVICES"] = CONFIG['gpu_list'] # 设置可见的GPU设备 +os.environ["CUBLAS_WORKSPACE_CONFIG"] = CONFIG['CUBLAS_WORKSPACE_CONFIG'] # 设置CUBLAS工作空间配置 +os.makedirs(CONFIG['model_path'], exist_ok=True) # 创建模型保存目录(如果不存在) +# ============================================== + +def logger_config(log_path: str, log_filename: str, logging_name: str) -> logging.Logger: + """ + 配置日志记录器 + + Args: + log_path: 日志文件保存路径 + log_filename: 日志文件名 + logging_name: 日志记录器名称 + + Returns: + 配置好的日志记录器对象 + """ + os.makedirs(log_path, mode=0o755, exist_ok=True) # 创建日志目录 + logger = logging.getLogger(logging_name) # 创建日志记录器 + logger.setLevel(logging.INFO) # 设置日志级别为INFO + if not logger.handlers: # 避免重复添加处理器 + # 添加文件处理器,将日志写入文件 + fh = logging.FileHandler(os.path.join(log_path, log_filename), mode='w') + fh.setFormatter(logging.Formatter("[%(asctime)s]:%(levelname)s:%(message)s")) + logger.addHandler(fh) + # 添加控制台处理器,将日志输出到控制台 + ch = logging.StreamHandler() + ch.setFormatter(logging.Formatter("%(message)s")) + logger.addHandler(ch) + return logger + +def seed_everything(seed: int = 42) -> None: + """ + 设置所有随机种子,确保实验可复现 + + Args: + seed: 随机种子值,默认为42 + """ + random.seed(seed) # 设置Python内置random模块的种子 + os.environ['PYTHONHASHSEED'] = str(seed) # 设置Python哈希种子 + np.random.seed(seed) # 设置NumPy的随机种子 + torch.manual_seed(seed) # 设置PyTorch的CPU随机种子 + torch.cuda.manual_seed(seed) # 设置PyTorch的GPU随机种子 + torch.backends.cudnn.benchmark = False # 关闭cudnn的自动优化 + torch.backends.cudnn.deterministic = True # 确保cudnn的结果是确定性的 + +def prepare_data(config: dict) -> Tuple[DataLoader, DataLoader, int, int]: + """ + 准备训练和验证数据 + + Args: + config: 配置参数字典 + + Returns: + 训练数据加载器、验证数据加载器、训练样本数量、验证样本数量 + """ + # 加载特征数组并归一化到[0,1]区间 + hex_array = np.load('hex_array.npy') / 255 + # 加载类别ID并转换为从0开始的索引(原始数据从1开始) + class_ids = np.load('class_id.npy').astype(np.int64) - 1 + data_count = len(class_ids) # 总数据量 + data_idx = list(range(data_count)) # 数据索引列表 + random.shuffle(data_idx) # 随机打乱索引 + + train_idx = data_idx # 所有数据用于训练 + val_idx = data_idx[:data_count // 10] # 取前10%的数据用于验证 + + # 创建训练和验证数据集 + train_dataset = FeatureDataset(hex_array[train_idx], class_ids[train_idx]) + val_dataset = FeatureDataset(hex_array[val_idx], class_ids[val_idx]) + + # 创建训练数据加载器 + train_loader = DataLoader( + train_dataset, batch_size=config['batch_size'], + shuffle=True, num_workers=config['num_workers'], + pin_memory=False, drop_last=True # 丢弃最后一个不完整的batch + ) + # 创建验证数据加载器 + val_loader = DataLoader( + val_dataset, batch_size=config['batch_size'], + shuffle=False, num_workers=config['num_workers'], + pin_memory=False, drop_last=False # 保留最后一个不完整的batch + ) + return train_loader, val_loader, len(train_dataset), len(val_dataset) + +def build_model(config: dict, logger: logging.Logger) -> Tuple[nn.Module, str]: + """ + 构建模型 + + Args: + config: 配置参数字典 + logger: 日志记录器 + + Returns: + 构建好的模型和设备名称 + """ + # 创建模型实例 + model = FeatureModel(config['class_count']) + if config['half']: # 如果启用半精度训练 + model.half() # 将模型转换为半精度 + device = 'cuda' if torch.cuda.is_available() else 'cpu' # 确定使用的设备 + model = model.to(device) # 将模型移动到指定设备 + + # 如果有多个GPU且配置了多GPU训练 + if torch.cuda.device_count() > 1 and ',' in config['gpu_list']: + model = torch.nn.DataParallel(model).to(device) # 使用DataParallel进行多GPU训练 + + # 如果需要加载已有的模型权重 + if config['load_checkpoint'] and os.path.exists(config['load_checkpoint']): + model.load_state_dict(torch.load(config['load_checkpoint'])['state_dict']) + logger.info(f'Loaded checkpoint from {config["load_checkpoint"]}') + return model, device + +def build_optimizer(model: nn.Module, config: dict): + """ + 构建优化器和学习率调度器 + + Args: + model: 模型实例 + config: 配置参数字典 + + Returns: + 优化器和学习率调度器 + """ + # 创建AdamW优化器 + optimizer = torch.optim.AdamW(model.parameters(), lr=config['learning_rate']) + # 创建余弦退火学习率调度器,带有重启机制 + lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts( + optimizer, T_0=config['epochs'] // 2, T_mult=1, eta_min=config['min_lr'] + ) + return optimizer, lr_scheduler + +def train_one_epoch( + model: nn.Module, train_loader: DataLoader, criterion: nn.Module, + optimizer: torch.optim.Optimizer, device: str, epoch: int, config: dict, logger: logging.Logger +) -> float: + """ + 训练一个epoch + + Args: + model: 模型实例 + train_loader: 训练数据加载器 + criterion: 损失函数 + optimizer: 优化器 + device: 设备名称 + epoch: 当前epoch索引 + config: 配置参数字典 + logger: 日志记录器 + + Returns: + 平均训练损失 + """ + model.train() # 设置模型为训练模式 + train_loss = 0.0 # 累计训练损失 + for i, (feas, labels) in enumerate(train_loader): + # 将数据移动到指定设备 + feas, labels = feas.to(device), labels.to(device) + if config['half']: # 如果启用半精度训练 + feas = feas.half() # 将特征转换为半精度 + output = model(feas) # 前向传播 + loss = criterion(output, labels) # 计算损失 + loss.backward() # 反向传播 + + # 对除最后一层外的所有参数进行梯度裁剪 + parameters = [p for p in model.parameters()][:-1] + adaptive_clip_grad(parameters, clip_factor=0.01) + + optimizer.step() # 更新参数 + optimizer.zero_grad() # 清空梯度 + + train_loss += loss.item() # 累加损失值 + + # 按指定频率打印训练信息 + if i % config['print_freq'] == 0: + logger.info(f'Epoch: [{epoch}][{i}/{len(train_loader)}]\t Loss {loss.item():.4f}') + return train_loss / len(train_loader) # 返回平均损失 + +@torch.no_grad() # 装饰器,表示不计算梯度 +def evaluate(model: nn.Module, val_loader: DataLoader, device: str, config: dict) -> float: + """ + 评估模型性能 + + Args: + model: 模型实例 + val_loader: 验证数据加载器 + device: 设备名称 + config: 配置参数字典 + + Returns: + 准确率 + """ + corr = sum_count = 0 # 初始化正确预测数和总样本数 + for feas, labels in val_loader: + feas = feas.to(device) # 将特征移动到指定设备 + if config['half']: # 如果启用半精度 + feas = feas.half() # 将特征转换为半精度 + outputs = model(feas).cpu().numpy() # 前向传播并转换为NumPy数组 + + # 统计预测正确的样本数 + for b, label in enumerate(labels): + if np.argmax(outputs[b]) == label: # 如果预测类别与真实类别一致 + corr += 1 # 正确预测数加1 + sum_count += 1 # 总样本数加1 + + # 计算准确率,避免除零错误 + acc = corr / sum_count if sum_count > 0 else 0.0 + return acc + +def save_model( + model: nn.Module, best_acc: float, acc: float, epoch: int, config: dict, logger: logging.Logger +) -> float: + """ + 保存模型 + + Args: + model: 模型实例 + best_acc: 当前最佳准确率 + acc: 当前准确率 + epoch: 当前epoch索引 + config: 配置参数字典 + logger: 日志记录器 + + Returns: + 更新后的最佳准确率 + """ + model_path = config['model_path'] # 模型保存路径 + checkpoint_file = config['checkpoint_file'] # 最佳模型文件名 + checkpoint_file_last = config['checkpoint_file_last'] # 最后一个epoch的模型文件名 + + if acc >= best_acc: # 如果当前准确率大于等于最佳准确率 + best_acc = acc # 更新最佳准确率 + if acc > config['save_acc']: # 如果准确率超过保存阈值 + try: + # 尝试保存模型 + torch.save({'state_dict': model.state_dict()}, os.path.join(model_path, checkpoint_file)) + except Exception: + # 如果失败,可能是因为模型是DataParallel包装的,尝试保存module部分 + torch.save({'state_dict': model.module.state_dict()}, os.path.join(model_path, checkpoint_file)) + logger.info('Model saved!') # 记录模型保存信息 + elif epoch == config['epochs'] - 1: # 如果是最后一个epoch + try: + # 尝试保存最后一个epoch的模型 + torch.save({'state_dict': model.state_dict()}, os.path.join(model_path, checkpoint_file_last)) + except Exception: + # 如果失败,可能是因为模型是DataParallel包装的,尝试保存module部分 + torch.save({'state_dict': model.module.state_dict()}, os.path.join(model_path, checkpoint_file_last)) + logger.info('Last model saved!') # 记录最后模型保存信息 + return best_acc # 返回更新后的最佳准确率 + +def main(): + """ + 主函数,训练流程的入口 + """ + # 配置日志记录器,使用当前时间作为日志文件名的一部分 + logger = logger_config('log', f"train{datetime.datetime.now().strftime('%Y%m%d-%H%M%S')}.log", 'train') + + # 设置随机种子,确保实验可复现 + seed_everything(CONFIG['SEED']) + logger.info(f'seed:{CONFIG["SEED"]}') + logger.info(f'model path: {CONFIG["model_path"]}') + + # 准备数据 + train_loader, val_loader, train_len, val_len = prepare_data(CONFIG) + logger.info(f'train count: {train_len}, val count: {val_len}') + + # 构建模型 + model, device = build_model(CONFIG, logger) + logger.info(f'Using device: {device}') + + # 创建损失函数 + criterion = nn.CrossEntropyLoss() + + # 构建优化器和学习率调度器 + optimizer, lr_scheduler = build_optimizer(model, CONFIG) + + # 初始化最佳准确率 + best_acc = 0.0 + + # 开始训练循环 + for epoch in tqdm(range(CONFIG['epochs'])): + logger.info('\n========================') + logger.info('lr:%.4e' % optimizer.param_groups[0]['lr']) + + # 学习率预热 + if epoch < CONFIG['warmup_epoch']: + # 计算预热阶段的学习率 + warmup_lr = CONFIG['start_lr'] + (CONFIG['learning_rate'] - CONFIG['min_lr']) * epoch / CONFIG['warmup_epoch'] + # 更新优化器的学习率 + for param_group in optimizer.param_groups: + param_group['lr'] = warmup_lr + logger.info('warmup lr:%.4e' % optimizer.param_groups[0]['lr']) + + # 训练一个epoch + train_loss = train_one_epoch(model, train_loader, criterion, optimizer, device, epoch, CONFIG, logger) + + # 更新学习率 + lr_scheduler.step() + + # 评估模型 + model.eval() # 设置模型为评估模式 + acc = evaluate(model, val_loader, device, CONFIG) + logger.info(f'ACC: {acc:.4f}') + + # 保存模型 + best_acc = save_model(model, best_acc, acc, epoch, CONFIG, logger) + + # 训练结束,记录最佳准确率 + logger.info(f'Best ACC: {best_acc:.4f} {CONFIG["checkpoint_file"]}') + +if __name__ == '__main__': + main() diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/utils.py b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/utils.py new file mode 100644 index 0000000..a6eebc2 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/utils.py @@ -0,0 +1,88 @@ + +import torch + +class FGM(): + def __init__(self, model): + self.model = model + self.backup = {} # 存储embedding层的原始参数 + + def attack(self, epsilon=0.25, emb_name='encoder.embed'): + # 对指定的embedding层进行扰动,增强模型鲁棒性 + for name, param in self.model.named_parameters(): + if param.requires_grad and emb_name in name: + self.backup[name] = param.data.clone() # 备份原始参数 + norm = torch.norm(param.grad) # 计算梯度范数 + if norm != 0: + r_at = epsilon * param.grad / norm # 生成扰动 + param.data.add_(r_at) # 添加扰动到参数 + + def restore(self, emb_name='encoder.embed'): + # 恢复被扰动的embedding层参数 + for name, param in self.model.named_parameters(): + if param.requires_grad and emb_name in name: + assert name in self.backup + param.data = self.backup[name] # 恢复原始参数 + self.backup = {} + + + +class EMA: + def __init__(self, model, decay): + self.model = model + self.decay = decay # 平滑系数 + self.shadow = {} # 存储平滑后的参数 + self.backup = {} # 用于临时备份模型参数 + self.register() + + def register(self): + # 初始化shadow字典,保存初始参数 + for name, param in self.model.named_parameters(): + if param.requires_grad: + self.shadow[name] = param.data.clone() + + def update(self): + # 更新shadow参数:新值 = (1 - decay) * 当前值 + decay * shadow旧值 + for name, param in self.model.named_parameters(): + if param.requires_grad: + assert name in self.shadow + new_average = (1.0 - self.decay) * param.data + self.decay * self.shadow[name] + self.shadow[name] = new_average.clone() + + def apply_shadow(self): + # 将shadow参数应用到模型中,用于评估或测试阶段 + for name, param in self.model.named_parameters(): + if param.requires_grad: + assert name in self.shadow + self.backup[name] = param.data # 备份当前参数 + param.data = self.shadow[name] # 应用平滑后的参数 + + def restore(self): + # 恢复原始参数 + for name, param in self.model.named_parameters(): + if param.requires_grad: + assert name in self.backup + param.data = self.backup[name] # 恢复备份的参数 + self.backup = {} + + +def unitwise_norm(x, norm_type=2.0): + if x.ndim <= 1: + return x.norm(norm_type) # 如果是1D或更小维度,直接计算整体范数 + else: + # 对于nn.ConvNd和nn.Linear等,输出通道是第一个维度 + return x.norm(norm_type, dim=tuple(range(1, x.ndim)), keepdim=True) + + +def adaptive_clip_grad(parameters, clip_factor=0.01, eps=1e-3, norm_type=2.0): + if isinstance(parameters, torch.Tensor): + parameters = [parameters] # 如果只有一个参数,转换为列表 + for p in parameters: + if p.grad is None: + continue # 跳过无梯度的参数 + p_data = p.detach() + g_data = p.grad.detach() + max_norm = unitwise_norm(p_data, norm_type=norm_type).clamp_(min=eps).mul_(clip_factor) # 计算最大允许范数 + grad_norm = unitwise_norm(g_data, norm_type=norm_type) # 计算当前梯度范数 + clipped_grad = g_data * (max_norm / grad_norm.clamp(min=1e-6)) # 缩放梯度 + new_grads = torch.where(grad_norm < max_norm, g_data, clipped_grad) # 判断是否需要裁剪 + p.grad.detach().copy_(new_grads) # 替换为裁剪后的梯度 diff --git a/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/数据说明.docx b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/数据说明.docx new file mode 100644 index 0000000..afe7fd4 Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/NetworkTraffic/数据说明.docx differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/DGA-dataset-1.csv b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/DGA-dataset-1.csv new file mode 100644 index 0000000..274c5f0 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/DGA-dataset-1.csv @@ -0,0 +1,202 @@ +NM,H2,CH4,C2H6,C2H4,C2H2,Type +1,3930,2397,157,0,0,Partial discharge +2,37800,1740,249,8,8,Partial discharge +3,92600,10200,0,0,0,Partial discharge +4,8266,1061,22,0,0,Partial discharge +5,9340,995,60,6,7,Partial discharge +6,36036,4704,554,5,10,Partial discharge +7,33046,619,58,2,0,Partial discharge +8,40280,1069,1060,1,1,Partial discharge +9,26788,18342,2111,27,0,Partial discharge +10,78,20,11,13,28,Spark discharge +11,305,100,33,161,541,Spark discharge +12,35,6,3,26,482,Spark discharge +13,543,120,41,411,1880,Spark discharge +14,1230,163,27,233,692,Spark discharge +15,645,86,13,110,317,Spark discharge +16,60,10,4,4,4,Spark discharge +17,95,10,0,11,39,Spark discharge +18,6870,1028,79,900,5500,Spark discharge +19,10092,5399,530,6500,37565,Spark discharge +20,650,81,170,51,270,Spark discharge +21,210,22,6,6,7,Spark discharge +22,385,60,8,53,159,Spark discharge +23,4230,690,5,196,1180,Spark discharge +24,7600,1230,318,836,1560,Spark discharge +25,595,80,9,89,244,Spark discharge +26,120,25,1,8,40,Spark discharge +27,8,0,0,43,101,Spark discharge +28,6454,2313,121,2159,6432,Spark discharge +29,2177,1049,207,440,705,Spark discharge +30,1790,580,321,336,619,Spark discharge +31,1330,10,20,66,182,Spark discharge +32,4,1,2,7,52,Spark discharge +33,1900,285,31,957,7730,Spark discharge +34,57,24,2,27,30,Spark discharge +35,1000,500,1,400,500,Spark discharge +36,440,89,19,304,757,Arc discharge +37,210,43,12,102,187,Arc discharge +38,2850,1115,138,1987,3675,Arc discharge +39,7020,1850,0,2960,4410,Arc discharge +40,545,130,16,153,239,Arc discharge +41,7150,1440,97,1210,1760,Arc discharge +42,620,325,38,181,244,Arc discharge +43,120,31,0,66,94,Arc discharge +44,755,229,32,404,460,Arc discharge +45,5100,1430,0,1140,1010,Arc discharge +46,13500,6110,212,4510,4040,Arc discharge +47,1570,1110,175,1780,1830,Arc discharge +48,3090,5020,323,3800,2540,Arc discharge +49,1820,405,35,365,634,Arc discharge +50,535,160,16,305,680,Arc discharge +51,13,3,1,3,6,Arc discharge +52,137,67,7,53,104,Arc discharge +53,1084,188,8,166,769,Arc discharge +54,34,21,4,49,56,Arc discharge +55,7940,2000,355,3120,5390,Arc discharge +56,150,130,9,55,30,Arc discharge +57,8200,3790,250,4620,5830,Arc discharge +58,260,215,35,334,277,Arc discharge +59,75,15,7,14,26,Arc discharge +60,530,345,85,266,250,Arc discharge +61,60,5,2,21,21,Arc discharge +62,90,28,8,31,32,Arc discharge +63,220,77,22,170,240,Arc discharge +64,5900,1500,68,1200,2300,Arc discharge +65,420,250,41,530,800,Arc discharge +66,2800,2800,234,3500,3600,Arc discharge +67,99,170,20,200,190,Arc discharge +68,310,230,54,610,760,Arc discharge +69,800,160,23,260,600,Arc discharge +70,1500,395,28,395,323,Arc discharge +71,20000,13000,1850,29000,57000,Arc discharge +72,305,85,25,197,130,Arc discharge +73,1900,530,35,383,434,Arc discharge +74,110,62,90,140,250,Arc discharge +75,3700,1690,128,2810,3270,Arc discharge +76,2770,660,54,712,763,Arc discharge +77,245,120,18,131,167,Arc discharge +78,1170,255,18,312,325,Arc discharge +79,4419,3564,668,2861,2025,Arc discharge +80,810,280,111,570,490,Arc discharge +81,5000,1200,83,1000,1100,Arc discharge +82,10000,6730,345,7330,10400,Arc discharge +83,1570,735,87,1330,1740,Arc discharge +84,8800,64064,72128,95650,0,High-temperature overheating +85,6709,10500,1400,17700,750,High-temperature overheating +86,1100,1600,221,2010,26,High-temperature overheating +87,290,966,299,1810,57,High-temperature overheating +88,2500,10500,4790,13500,6,High-temperature overheating +89,1860,4980,0,10700,1600,High-temperature overheating +90,860,1670,30,2050,40,High-temperature overheating +91,150,22,9,60,11,High-temperature overheating +92,400,940,210,820,24,High-temperature overheating +93,6,2990,29990,26076,67,High-temperature overheating +94,100,200,110,670,11,High-temperature overheating +95,290,1260,231,820,8,High-temperature overheating +96,1550,2740,816,5450,184,High-temperature overheating +97,3910,4290,626,6040,1230,High-temperature overheating +98,12705,23498,6047,34257,5188,High-temperature overheating +99,1,8,8,100,6,High-temperature overheating +100,300,700,280,1700,36,High-temperature overheating +101,107,143,34,222,2,High-temperature overheating +102,54.54,71.93,9.72,97.37,6.58,High-temperature overheating +103,116.17,180.83,52.48,278.18,5.36,High-temperature overheating +104,5760,540,40.5,1000,2760,Arc discharge +105,50.18,171.12,74.7,148.69,0,Middle-temperature overheating +106,20,80.2,24.6,68.6,0,Middle-temperature overheating +107,28.97,10.94,1.64,6.96,4.36,High-temperature overheating +108,15.9,55.98,22.33,137.25,0.21,High-temperature overheating +109,47.6,19.1,4.21,27,0.72,Low-temperature overheating +110,40,102.6,32.3,183.3,0.2,Arc discharge +111,50.35,65.58,21.05,99.13,0.96,High-temperature overheating +112,2.369,119.69,21.891,20.15,0,Low-temperature overheating +113,120.45,210.91,35.7,285.39,15.86,High-temperature overheating +114,87.17,17.26,3.94,12.87,32.81,Spark discharge +115,5.48,48.82,96.81,489.57,0.3,High-temperature overheating +116,605,1586,655,1901,2.3,High-temperature overheating +117,1.96,2.1,0.5,0.67,1.59,Spark discharge +118,462,212.4,31.6,0,0,Partial discharge +119,25.4,54.97,8.72,77.84,10.47,High-temperature overheating +120,131.7,116.55,19.4,183.97,0.32,High-temperature overheating +121,7911.85,947.43,96.93,907.19,4844.48,Spark discharge +122,21,2.01,0.46,1.48,5.61,Spark discharge +123,676.74,969.55,570.57,2483.26,17.48,High-temperature overheating +124,7238.97,695.16,231.6,2394.3,2308.92,Arc discharge +125,101.5,24.45,8.97,128.37,0,High-temperature overheating +126,73.8,148,38.9,181,1.76,High-temperature overheating +127,34.76,5.52,2.09,4.97,10.36,Spark discharge +128,18.19,21.99,6.58,46.92,3.97,High-temperature overheating +129,1.6,1,0.1,0.9,1.6,Spark discharge +130,22400,22400,2690,13440,1570,High-temperature overheating +131,670,224,45,67,2,Middle-temperature overheating +132,224,4.5,2,0,0,Low-temperature overheating +133,900,9180,0,900,22,Low-temperature overheating +134,0,224,0,45,0,Low-temperature overheating +135,470,4637,1300,448,0,Low-temperature overheating +136,65,20,10,5,0,Low-temperature overheating +137,53,39,3,4.5,0,Low-temperature overheating +138,219,44,3,3,0,Low-temperature overheating +139,37,47,10,5.5,0,Low-temperature overheating +140,34,30,34,2.5,0,Low-temperature overheating +141,14,62,16,3,0,Low-temperature overheating +142,65,34,16,112,0,High-temperature overheating +143,0.7,1.5,0.3,1.8,0,Middle-temperature overheating +144,0,0.2,0.1,0.13,0,Middle-temperature overheating +145,48,40,11,0.5,0,Low-temperature overheating +146,130,140,24,120,0,Low-temperature overheating +147,86,8,2.5,2.5,0,Low-temperature overheating +148,6,3,0.8,0.7,0,Low-temperature overheating +149,50,3,1,0,0,Low-temperature overheating +150,55,22,0.5,2.6,0,Low-temperature overheating +151,78,66,62,2.6,0,Low-temperature overheating +152,1600,3600,670,14,0,Partial discharge +153,6600,1000,38,2,19,Partial discharge +154,88,9,0,0.03,0,Partial discharge +155,2240,168,25,0,0,Partial discharge +156,1950,123,38,2,2,Partial discharge +157,2240,157,90,45,45,Partial discharge +158,73,8,4,2,12,Spark discharge +159,5000,4000,2000,2000,8000,Spark discharge +160,24.3,15.7,6.4,11.2,29.8,Spark discharge +161,2240,360,25,169,828,Spark discharge +162,4480,560,380,403,896,Spark discharge +163,2240,560,380,450,940,Spark discharge +164,200,230,2,170,480,Spark discharge +165,60,5,1,6,29,Spark discharge +166,890,110,3,84,700,Spark discharge +167,41,112,0,254,4536,Spark discharge +168,16000,4000,500,8500,16000,Arc discharge +169,21,75,24,126,0,High-temperature overheating +170,111,559,243,707,0,Middle-temperature overheating +171,23,59.9,18.6,56.9,0.1,Middle-temperature overheating +172,740,2227,567,4258,42,High-temperature overheating +173,388,860,230,1833,18.3,High-temperature overheating +174,84,126,28.9,132.2,0.37,Middle-temperature overheating +175,362,533,91,553,10,Middle-temperature overheating +176,103,221.7,47.2,422,0.9,High-temperature overheating +177,1769.7,554.2,145.2,1066.7,885.7,Arc discharge +178,38,3.7,0,4.1,19.4,Spark discharge +179,700,137.4,14.9,194.8,936.6,Spark discharge +180,253,21.5,5.9,16.1,72.4,Spark discharge +181,131,32,7.3,18.8,38.7,Spark discharge +182,116,20,7,27,54,Spark discharge +183,70,3.8,0.6,3.2,31.1,Spark discharge +184,34,18.9,3.7,9.4,5.6,Spark discharge +185,390,62.6,12.8,65.3,133.6,Arc discharge +186,1270,3450,520,1390,8,Low/Middle-temperature overheating +187,3420,7870,1500,6990,33,Low/Middle-temperature overheating +188,360,610,259,260,9,Low/Middle-temperature overheating +189,1,27,49,4,1,Low/Middle-temperature overheating +190,3675,6392,2500,7691,5,Low/Middle-temperature overheating +191,48,610,29,10,0,Low/Middle-temperature overheating +192,12,18,4,4,0,Low/Middle-temperature overheating +193,66,60,2,7,0,Low/Middle-temperature overheating +194,1450,940,211,322,61,Low/Middle-temperature overheating +195,0,18900,410,540,330,Low/Middle-temperature overheating +196,960,4000,1290,1560,6,Low/Middle-temperature overheating +197,24700,61000,26300,42100,1560,Low/Middle-temperature overheating +198,14,44,124,7,1,Low/Middle-temperature overheating +199,2031,149,20,3,0,Low/Middle-temperature overheating +200,480,1075,298,1132,0,Low/Middle-temperature overheating +201,40000,400,70,600,6,Low/Middle-temperature overheating diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/Power_Transformer_Fault_Diagnosis_Based_on_DGA_Using_a_Convolutional_Neural_Network_With_Noise_in_Measurements_1_9_translate_20250424105329.pdf b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/Power_Transformer_Fault_Diagnosis_Based_on_DGA_Using_a_Convolutional_Neural_Network_With_Noise_in_Measurements_1_9_translate_20250424105329.pdf new file mode 100644 index 0000000..651e96f Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/Power_Transformer_Fault_Diagnosis_Based_on_DGA_Using_a_Convolutional_Neural_Network_With_Noise_in_Measurements_1_9_translate_20250424105329.pdf differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TrainsCNNModel.py b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TrainsCNNModel.py new file mode 100644 index 0000000..f0447c9 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TrainsCNNModel.py @@ -0,0 +1,96 @@ +import numpy as np +import pandas as pd +import tensorflow as tf +from tensorflow.keras.models import Sequential +from tensorflow.keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout, BatchNormalization +from tensorflow.keras.optimizers import Adam +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import StandardScaler +import os + + +def train_cnn_model(data_path, model_save_dir='model'): + """ + 训练CNN模型用于变压器故障诊断 + + 参数: + data_path: 数据文件路径 + model_save_dir: 模型保存目录,默认为'model' + """ + # 1. 加载数据 + data = pd.read_csv(data_path) + X = data[['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2']].values + y = data['label'].values + + # 2. 数据预处理 + # 标准化数据 + scaler = StandardScaler() + X = scaler.fit_transform(X) + + # 将数据reshape为CNN需要的格式 (样本数, 特征数, 1) + X = X.reshape(X.shape[0], X.shape[1], 1) + + # 将标签转换为one-hot编码 + y = tf.keras.utils.to_categorical(y, num_classes=7) + + # 划分训练集和测试集 + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) + + # 3. 构建CNN模型 + model = Sequential([ + # 第一卷积层 + Conv1D(filters=64, kernel_size=2, activation='relu', input_shape=(5, 1)), + BatchNormalization(), + MaxPooling1D(pool_size=1), + Dropout(0.2), + + # 第二卷积层 + Conv1D(filters=128, kernel_size=2, activation='relu'), + BatchNormalization(), + MaxPooling1D(pool_size=1), + Dropout(0.3), + + # 展平层 + Flatten(), + + # 全连接层 + Dense(128, activation='relu'), + Dropout(0.4), + Dense(64, activation='relu'), + Dropout(0.3), + + # 输出层 + Dense(7, activation='softmax') + ]) + + # 4. 编译模型 + model.compile(optimizer=Adam(learning_rate=0.001), + loss='categorical_crossentropy', + metrics=['accuracy']) + + # 5. 训练模型 + history = model.fit(X_train, y_train, + epochs=100, + batch_size=32, + validation_data=(X_test, y_test), + verbose=1) + + # 6. 评估模型 + test_loss, test_acc = model.evaluate(X_test, y_test, verbose=0) + print(f'\n测试准确率: {test_acc:.4f}') + + # 7. 保存模型 + if not os.path.exists(model_save_dir): + os.makedirs(model_save_dir) + + model.save(f'{model_save_dir}/transformer_fault_cnn.h5') + print(f'模型已保存到 {model_save_dir}/transformer_fault_cnn.h5') + + return model + + +# 使用示例 +if __name__ == '__main__': + # 替换为你的数据文件路径 + data_file = 'transformer_fault_data.csv' + train_cnn_model(data_file) diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransLightGBMModel.py b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransLightGBMModel.py new file mode 100644 index 0000000..75d4185 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransLightGBMModel.py @@ -0,0 +1,189 @@ +import os +import pandas as pd +import numpy as np +import lightgbm as lgb +from sklearn.model_selection import train_test_split +from sklearn.metrics import accuracy_score, classification_report +import joblib + + +def train_lightgbm_model(data_path, model_save_dir='model'): + """ + 训练LightGBM模型用于变压器故障诊断(label已预先编码为0-6) + + 参数: + data_path: 数据文件路径 + model_save_dir: 模型保存目录,默认为'model' + + 返回: + 训练好的模型和评估结果 + """ + try: + # 1. 读取数据 + data = pd.read_csv(data_path) + + # 2. 检查数据列 + required_columns = ['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2', 'label'] + if not all(col in data.columns for col in required_columns): + raise ValueError("数据列不完整,需要包含: H2, CH4, C2H6, C2H4, C2H2, label") + + # 3. 检查label范围 + unique_labels = sorted(data['label'].unique()) + if not all(i in range(7) for i in unique_labels): + raise ValueError("label值应该在0-6范围内") + + # 4. 划分特征和标签 + X = data[['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2']] + y = data['label'] + + # 5. 划分训练集和测试集(分层抽样保持类别比例) + X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size=0.2, random_state=42, stratify=y) + + # 6. 创建LightGBM数据集 + train_data = lgb.Dataset(X_train, label=y_train) + test_data = lgb.Dataset(X_test, label=y_test, reference=train_data) + + # 7. 定义模型参数 + params = { + 'objective': 'multiclass', + 'num_class': 7, # 直接指定7个类别 + 'metric': 'multi_logloss', + 'boosting_type': 'gbdt', + 'learning_rate': 0.05, + 'num_leaves': 31, + 'max_depth': -1, + 'min_child_samples': 20, + 'feature_fraction': 0.8, + 'bagging_fraction': 0.8, + 'bagging_freq': 5, + 'verbose': -1, + 'seed': 42 + } + + # 8. 训练模型 + print("开始训练LightGBM模型...") + model = lgb.train( + params, + train_data, + num_boost_round=1000, + valid_sets=[train_data, test_data], + callbacks=[ + lgb.early_stopping(stopping_rounds=50, verbose=True), + lgb.log_evaluation(50) + ] + ) + + # 9. 模型评估 + y_pred = model.predict(X_test) + y_pred_class = np.argmax(y_pred, axis=1) + + accuracy = accuracy_score(y_test, y_pred_class) + print(f"\n模型准确率: {accuracy:.4f}") + print("\n分类报告:") + print(classification_report(y_test, y_pred_class)) + + # 10. 保存模型 + if not os.path.exists(model_save_dir): + os.makedirs(model_save_dir) + current_dir = os.path.dirname(__file__) + model_path = os.path.join(current_dir,model_save_dir, 'transformer_fault_lgbm.model') + joblib.dump(model, model_path) + + print(f"\n模型已保存到 {model_save_dir} 目录") + + return model, accuracy + + except Exception as e: + print(f"训练过程中发生错误: {str(e)}") + raise +def predict_fault(model_path, gas_data): + """使用训练好的模型预测故障类型""" + model = joblib.load(model_path) + proba = model.predict([gas_data]) # 输入格式: [[H2, CH4, C2H6, C2H4, C2H2]] + pred_class = np.argmax(proba, axis=1) + return pred_class[0] # 返回预测的类别编号 + +# 使用方法示例 +if __name__ == "__main__": + # 替换为你的数据路径 + # current_dir = os.path.dirname(__file__) + # data_file = os.path.join(current_dir, 'train.csv') + # model, accuracy = train_lightgbm_model(data_file) + current_dir = os.path.dirname(__file__) + data_file = os.path.join(current_dir, 'DGA-dataset-1test.csv') + model_file=os.path.join(current_dir, 'model','transformer_fault_lgbm.model') + # data_file = r'transformer_fault_data.csv' # 修改为你的CSV文件路径 + + # 1. 训练模型 + # print("正在训练模型...") + # train_result = train_svm_model(data_file) + # if train_result is None: + # print("模型训练失败") + # exit() + + # 2. 读取测试数据 + try: + test_data = pd.read_csv(data_file) + # 检查必要的列是否存在 + required_columns = ['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2', 'Type'] + if not all(col in test_data.columns for col in required_columns): + print("测试数据列不完整,请确保包含H2, CH4, C2H6, C2H4, C2H2和label列") + exit() + except Exception as e: + print(f"加载测试数据失败: {e}") + exit() + + # 3. 定义标签映射 + label_map = { + 0: '正常', + 1: '低能放电', + 2: '低温过热', + 3: '高能放电', + 4: '高温过热', + 5: '中低温过热', + 6: '中温过热' + } + + # 4. 对每一行进行预测 + print("\n开始逐行预测...") + print("=" * 80) + print("{:<15}{:<15}{:<20}{:<20}{:<15}".format( + "行号", "预测结果", "预测类型", "实际类型", "是否匹配")) + print("-" * 80) + + correct = 0 + total = len(test_data) + + for i, row in test_data.iterrows(): + # 准备输入数据 + gas_data = [row['H2'], row['CH4'], row['C2H6'], row['C2H4'], row['C2H2']] + true_label = row['Type'] + + # 预测 + try: + pred_label = predict_fault(model_file,gas_data) + # 获取预测的数字标签 + pred_num = pred_label + + # 检查预测是否正确 + is_correct = "是" if pred_num == int(true_label) else "否" + if is_correct == "是": + correct += 1 + + # 打印结果 + print("{:<15}{:<15}{:<20}{:<20}{:<15}".format( + i + 1, + pred_num, + label_map.get(int(pred_num), "未知"), + label_map.get(int(true_label), "未知"), + is_correct)) + + except Exception as e: + print(f"第 {i + 1} 行预测出错: {e}") + continue + + # 5. 计算并输出总体准确率 + accuracy = correct / total * 100 + print("=" * 80) + print(f"\n预测完成! 总体准确率: {accuracy:.2f}% ({correct}/{total})") diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransSvmModel.py b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransSvmModel.py new file mode 100644 index 0000000..ce48654 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransSvmModel.py @@ -0,0 +1,200 @@ +import os +import pandas as pd +import numpy as np +from sklearn import svm +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import StandardScaler +from sklearn.metrics import classification_report +import joblib +from sklearn.model_selection import GridSearchCV + +def train_svm_model(data_path, model_save_dir='model'): + """ + 训练SVM模型用于变压器故障诊断 + 参数: + data_path: 数据文件路径(CSV格式) + model_save_dir: 模型保存目录(默认为'model') + 返回: + 训练好的模型和评估结果 + """ + current_dir = os.path.dirname(__file__) + model_path = os.path.join(current_dir, model_save_dir) + # 确保模型目录存在 + os.makedirs(model_path, exist_ok=True) + # 1. 加载数据 + try: + data = pd.read_csv(data_path) + except Exception as e: + print(f"加载数据失败: {e}") + return None + # 2. 数据预处理 + # 检查必要的列是否存在 + required_columns = ['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2', 'label'] + if not all(col in data.columns for col in required_columns): + print("数据列不完整,请确保包含H2, CH4, C2H6, C2H4, C2H2和label列") + return None + # 分离特征和标签 + X = data[['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2']].values + y = data['label'].values + # 3. 数据标准化 + scaler = StandardScaler() + X_scaled = scaler.fit_transform(X) + # 保存标准化器 + scaler_path = os.path.join(model_path, 'scaler.pkl') + joblib.dump(scaler, scaler_path) + # 4. 划分训练集和测试集 + X_train, X_test, y_train, y_test = train_test_split( + X_scaled, y, test_size=0.2, random_state=42, stratify=y + ) + # 5. 训练SVM模型 + # 使用网格搜索寻找最佳参数 + param_grid = { + 'C': [0.1, 1, 10, 100], + 'gamma': ['scale', 'auto', 0.1, 1, 10], + 'kernel': ['rbf', 'poly', 'sigmoid'], + 'decision_function_shape': ['ovo', 'ovr'] + } + grid_search = GridSearchCV( + svm.SVC(), + param_grid, + cv=5, + n_jobs=1, # 禁用并行计算:ml-citation{ref="6,8" data="citationList"} + pre_dispatch='2*n_jobs' # 控制任务分配 + ) + X_train = np.ascontiguousarray(X_train) + y_train = np.ascontiguousarray(y_train) + grid_search.fit(X_train, y_train) + # 获取最佳模型 + best_svm = grid_search.best_estimator_ + # 6. 评估模型 + y_pred = best_svm.predict(X_test) + print("最佳参数:", grid_search.best_params_) + print("\n分类报告:") + # 7. 保存模型 + model_path = os.path.join(model_path, 'transformer_fault_svm.pkl') + joblib.dump(best_svm, model_path) + print(f"\n模型已保存到 {model_path}") + return { + 'model': best_svm, + 'scaler': scaler, + 'classification_report': classification_report(y_test, y_pred, output_dict=True) + } + +def predict_fault_type(gas_concentrations, model_dir='model'): + # 加载模型和标准化器 + current_dir = os.path.dirname(__file__) + model = joblib.load(os.path.join(current_dir,model_dir, 'transformer_fault_svm.pkl')) + scaler = joblib.load(os.path.join(current_dir,model_dir, 'scaler.pkl')) + # 加载标签映射 + label_map = { + 0: '正常', + 1: '低能放电', + 2: '低能过热', + 3: '高能放电', + 4: '高温过热', + 5: '中低温过热', + 6: '中温过热' + } + # 检查输入数组长度是否正确 + if len(gas_concentrations) != 5: + raise ValueError("输入数组长度必须为5,顺序为[H2, CH4, C2H6, C2H4, C2H2]") + # 准备输入数据 + input_data = np.array(gas_concentrations).reshape(1, -1) + # 标准化 + input_scaled = scaler.transform(input_data) + # 预测 + pred = model.predict(input_scaled) + return label_map[pred[0]] +# 使用方法示例 +# if __name__ == "__main__": +# # 替换为你的数据文件路径 +# # data_file = r"D:\industrial_train_prediction\industrial_train_prediction\prediction_server\algorithm\dataPrediction\Transformer\train.csv" +# # train_svm_model(data_file) +# #luru = [7.4, 5.7, 3.4, 2.6, 3.2] # 正常0 +# #luru = [6,0.5,0.29,1.86,7.41]#1低能放电 +# #luru = [217.5,45,8.9,56.8,77]#3高能放电 +# #luru = [32.7,41.3,5.6,106,4.7]#4高温过热 +# #luru = [92,57,47,30,0]#5中低温过热 +# # luru = [181,262,210,528,37.7]#中温过热 +# luru = [50.18,171.12,74.7,148.69,0] # 中温过热 +# pred = predict_fault_type(luru) +# print(pred) +if __name__ == "__main__": + # 替换为你的数据文件路径 + current_dir = os.path.dirname(__file__) + data_file = os.path.join(current_dir, 'DGA-dataset-1test.csv') + # data_file = r'transformer_fault_data.csv' # 修改为你的CSV文件路径 + + # 1. 训练模型 + # print("正在训练模型...") + # train_result = train_svm_model(data_file) + # if train_result is None: + # print("模型训练失败") + # exit() + + # 2. 读取测试数据 + try: + test_data = pd.read_csv(data_file) + # 检查必要的列是否存在 + required_columns = ['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2', 'Type'] + if not all(col in test_data.columns for col in required_columns): + print("测试数据列不完整,请确保包含H2, CH4, C2H6, C2H4, C2H2和label列") + exit() + except Exception as e: + print(f"加载测试数据失败: {e}") + exit() + + # 3. 定义标签映射 + label_map = { + 0: '正常', + 1: '低能放电', + 2: '低温过热', + 3: '高能放电', + 4: '高温过热', + 5: '中低温过热', + 6: '中温过热' + } + + # 4. 对每一行进行预测 + print("\n开始逐行预测...") + print("=" * 80) + print("{:<15}{:<15}{:<20}{:<20}{:<15}".format( + "行号", "预测结果", "预测类型", "实际类型", "是否匹配")) + print("-" * 80) + + correct = 0 + total = len(test_data) + + for i, row in test_data.iterrows(): + # 准备输入数据 + gas_data = [row['H2'], row['CH4'], row['C2H6'], row['C2H4'], row['C2H2']] + true_label = row['Type'] + + # 预测 + try: + pred_label = predict_fault_type(gas_data) + # 获取预测的数字标签 + pred_num = [k for k, v in label_map.items() if v == pred_label][0] + + # 检查预测是否正确 + is_correct = "是" if pred_num == int(true_label) else "否" + if is_correct == "是": + correct += 1 + + # 打印结果 + print("{:<15}{:<15}{:<20}{:<20}{:<15}".format( + i + 1, + pred_num, + pred_label, + label_map.get(int(true_label), "未知"), + is_correct)) + + except Exception as e: + print(f"第 {i + 1} 行预测出错: {e}") + continue + + # 5. 计算并输出总体准确率 + accuracy = correct / total * 100 + print("=" * 80) + print(f"\n预测完成! 总体准确率: {accuracy:.2f}% ({correct}/{total})") + diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransXGBoostModel.py b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransXGBoostModel.py new file mode 100644 index 0000000..8c038b0 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransXGBoostModel.py @@ -0,0 +1,160 @@ +# 变压器故障预测:根据变压器气体溶解分析(DGA)数据,采用机器学习算法进行故障预测。 + +import os + +import chardet +import pandas as pd +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import StandardScaler +from xgboost import XGBClassifier +import joblib # 用来保存模型 +def read_csv_auto(file_path): + # 第一步:检测文件编码 + with open(file_path, 'rb') as f: + raw_data = f.read() + result = chardet.detect(raw_data) + encoding = result['encoding'] + print(f"✅ 自动检测到文件编码:{encoding}") + # 第二步:用检测到的编码去读取CSV + df = pd.read_csv(file_path, encoding=encoding) + return df +def train_and_save_model(data_path, model_dir='model'): + # 读取数据 + # df = pd.read_csv(data_path, encoding='utf-8-sig') + df=read_csv_auto(data_path) + features = ['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2'] + X = df[features] + y = df['lable'] + # 把里面的空格、空字符串、非法字符都替换成 NaN + X = X.replace(r'^\s*$', pd.NA, regex=True) + # 将无法转换为数字的部分转换为 NaN + X = X.apply(pd.to_numeric, errors='coerce') + # 检查哪些行有 NaN 值 + invalid_rows = X[X.isna().any(axis=1)] + # 打印出包含 NaN 的行 + if not invalid_rows.empty: + print("⚠️ 以下是含有非法数据或缺失值的行:") + print(invalid_rows) + else: + print("✅ 所有数据都可以成功转换为数值!") + # 标准化 + scaler = StandardScaler() + X_scaled = scaler.fit_transform(X) + # 划分训练测试集(可选,不影响保存) + X_train, _, y_train, _ = train_test_split(X_scaled, y, test_size=0.2, random_state=42, stratify=y) + # 训练模型 + model = XGBClassifier(use_label_encoder=False, eval_metric='mlogloss', random_state=42) + model.fit(X_train, y_train) + # 保存模型和标准化器 + # 保存模型和标准化器 + current_dir = os.path.dirname(__file__) + model_path = os.path.join(current_dir,model_dir, 'model.pkl') + scaler_path = os.path.join(current_dir,model_dir, 'scaler.pkl') + joblib.dump(model, model_path) + joblib.dump(scaler, scaler_path) + + print(f"✅ 模型已保存到 {model_path},标准化器保存到 {scaler_path}") +def load_and_predict(input_data, model_name='model.pkl', scaler_name='scaler.pkl'): + """ + input_data: list 或 ndarray,例如 [50, 100, 5, 10, 1] + """ + # 加载模型和标准化器 + current_dir = os.path.dirname(__file__) + model_path = os.path.join(current_dir, 'model', model_name) + scaler_path = os.path.join(current_dir, 'model', scaler_name) + model = joblib.load(model_path) + scaler = joblib.load(scaler_path) + # 标准化输入 + input_scaled = scaler.transform([input_data]) # 注意加 [] 包一层 + # 预测 + pred = model.predict(input_scaled) + return pred[0] +# if __name__ == "__main__": +# # train_and_save_model(r'D:\industrial_train_prediction\industrial_train_prediction\prediction_server\algorithm\dataPrediction\Transformer\train.csv', 'model') +# luru=[7.4,5.7,3.4,2.6,3.2] #正常0 +# #luru = [6,0.5,0.29,1.86,7.41]#1低能放电 +# #luru = [217.5,45,8.9,56.8,77]#3高能放电 +# # luru = [32.7,41.3,5.6,106,4.7]#4高温过热 +# # # #luru = [] +# # # #luru = [] +# pred=load_and_predict(luru) +# print(pred) +if __name__ == "__main__": + # 替换为你的数据文件路径 + current_dir = os.path.dirname(__file__) + data_file = os.path.join(current_dir, 'DGA-dataset-1test.csv') + # data_file = r'transformer_fault_data.csv' # 修改为你的CSV文件路径 + + # 1. 训练模型 + # print("正在训练模型...") + # train_result = train_svm_model(data_file) + # if train_result is None: + # print("模型训练失败") + # exit() + + # 2. 读取测试数据 + try: + test_data = pd.read_csv(data_file) + # 检查必要的列是否存在 + required_columns = ['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2', 'Type'] + if not all(col in test_data.columns for col in required_columns): + print("测试数据列不完整,请确保包含H2, CH4, C2H6, C2H4, C2H2和label列") + exit() + except Exception as e: + print(f"加载测试数据失败: {e}") + exit() + + # 3. 定义标签映射 + label_map = { + 0: '正常', + 1: '低能放电', + 2: '低温过热', + 3: '高能放电', + 4: '高温过热', + 5: '中低温过热', + 6: '中温过热' + } + + # 4. 对每一行进行预测 + print("\n开始逐行预测...") + print("=" * 80) + print("{:<15}{:<15}{:<20}{:<20}{:<15}".format( + "行号", "预测结果", "预测类型", "实际类型", "是否匹配")) + print("-" * 80) + + correct = 0 + total = len(test_data) + + for i, row in test_data.iterrows(): + # 准备输入数据 + gas_data = [row['H2'], row['CH4'], row['C2H6'], row['C2H4'], row['C2H2']] + true_label = row['Type'] + + # 预测 + try: + pred_label = load_and_predict(gas_data) + # 获取预测的数字标签 + pred_num = pred_label + + # 检查预测是否正确 + is_correct = "是" if pred_num == int(true_label) else "否" + if is_correct == "是": + correct += 1 + + # 打印结果 + print("{:<15}{:<15}{:<20}{:<20}{:<15}".format( + i + 1, + pred_num, + label_map.get(int(pred_num), "未知"), + label_map.get(int(true_label), "未知"), + is_correct)) + + except Exception as e: + print(f"第 {i + 1} 行预测出错: {e}") + continue + + # 5. 计算并输出总体准确率 + accuracy = correct / total * 100 + print("=" * 80) + print(f"\n预测完成! 总体准确率: {accuracy:.2f}% ({correct}/{total})") + diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransformerFaultPrediction.py b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransformerFaultPrediction.py new file mode 100644 index 0000000..549cfad --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/TransformerFaultPrediction.py @@ -0,0 +1,93 @@ +# 变压器故障预测:根据变压器气体溶解分析(DGA)数据,采用机器学习算法进行故障预测。 + +import os +import chardet +import pandas as pd +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import StandardScaler +from xgboost import XGBClassifier +from sklearn.svm import SVC +from sklearn.metrics import accuracy_score +import matplotlib.pyplot as plt +import joblib + + +def read_csv_auto(file_path): + with open(file_path, 'rb') as f: + raw_data = f.read() + result = chardet.detect(raw_data) + encoding = result['encoding'] + print(f"✅ 自动检测到文件编码:{encoding}") + df = pd.read_csv(file_path, encoding=encoding) + return df + + +def train_and_save_model(data_path, model_dir='model'): + df = read_csv_auto(data_path) + features = ['H2', 'CH4', 'C2H6', 'C2H4', 'C2H2'] + X = df[features] + y = df['label'] + # 打印 X 和 y 的行数,确保它们一致 + print(f"X 的样本数: {X.shape[0]}") + print(f"y 的样本数: {y.shape[0]}") + X = X.replace(r'^\s*$', pd.NA, regex=True) + X = X.apply(pd.to_numeric, errors='coerce') + + scaler = StandardScaler() + X_scaled = scaler.fit_transform(X) + + X_train, _, y_train, _ = train_test_split(X_scaled, y, test_size=0.2, random_state=42, stratify=y) + # 检查训练数据的形状 + print(f"X_train 的形状: {X_train.shape}") + print(f"y_train 的形状: {y_train.shape}") + # 训练 XGBoost 模型 + model = XGBClassifier(use_label_encoder=False, eval_metric='mlogloss', random_state=42) + model.fit(X_train, y_train) + + # 获取特征重要性并选择前 12 个特征 + importances = model.feature_importances_ + sorted_idx = importances.argsort()[::-1] + selected_features = X.columns[sorted_idx].tolist() + print(f"选出的前 12 个最重要的特征:", selected_features) + # 确保选择的特征与原始顺序一致 + selected_features_in_original_order = [feature for feature in features if feature in selected_features] + print(f"选出的前 12 个特征(按原始顺序):", selected_features_in_original_order) + # 使用选出的特征 + X_selected = X[selected_features_in_original_order] + X_selected_scaled = scaler.transform(X_selected) + + # 训练 SVM 模型 + svm_model = SVC(kernel='linear', random_state=42) + svm_model.fit(X_selected_scaled, y) + + # 保存模型 + current_dir = os.path.dirname(__file__) + model_path = os.path.join(current_dir, model_dir, 'svm_model.pkl') + joblib.dump(svm_model, model_path) + + print(f"✅ SVM 模型已保存到 {model_path}") + + +def load_and_predict(input_data, model_name='model.pkl', scaler_name='scaler.pkl'): + current_dir = os.path.dirname(__file__) + model_path = os.path.join(current_dir, 'model', model_name) + scaler_path = os.path.join(current_dir, 'model', scaler_name) + model = joblib.load(model_path) + scaler = joblib.load(scaler_path) + + input_scaled = scaler.transform([input_data]) + pred = model.predict(input_scaled) + return pred[0] + + +if __name__ == "__main__": + train_and_save_model('./train.csv', 'model') + # luru=[7.4,5.7,3.4,2.6,3.2] #正常0 + #luru = [6,0.5,0.29,1.86,7.41]#1低能放电 + #luru = [217.5,45,8.9,56.8,77]#3高能放电 + # luru = [32.7,41.3,5.6,106,4.7]#4高温过热 + # # #luru = [] + # # #luru = [] + # pred=load_and_predict(luru) + # print(pred) + diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/__init__.py b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/model/svm_model.pkl b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/model/svm_model.pkl new file mode 100644 index 0000000..fb7ef8a Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/model/svm_model.pkl differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/train.csv b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/train.csv new file mode 100644 index 0000000..97e02e1 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/train.csv @@ -0,0 +1,356 @@ +H2,CH4,C2H6,C2H4,C2H2,label +14.67,3.68,10.54,2.71,0.2,0 +7.5,5.7,3.4,2.6,3.2,0 +220,340,42,480,14,0 +30,110,137,52,22.3,0 +80,10,4,1.5,0,0 +46.13,11.57,33.14,8.52,0.63,0 +33.66,2.9703,0,27.72,2.48,0 +46.81,36.88,8.51,7.52,0.28,0 +39.1837,24.4898,18.3673,11.4286,6.5306,0 +42.0168,33.6134,14.8459,8.9636,0.5602,0 +13.6,5.3,8.2,29,2.1,0 +32,11.38,8.2,30.6,3.9,0 +0,0.8,0.5,0.4,0,0 +48,38.4,91.6,5.3,4.8,0 +0,1.18,1.6,1.1,0.6,0 +2.4,1.4,1,0.3,0,0 +14,11,3,22,1,0 +5.8,2.7,1.8,0.8,0,0 +53.6,17.7,13.2,5,0,0 +110,5,2.7,3.2,1.7,0 +3.9,1.3,1.5,0.8,0,0 +0.33,0.26,0.04,0.27,0,0 +33,26,6,5.3,0.2,0 +27.15,26.51,1.88,2.81,0,0 +12,12.5,3.4,13.2,0.5,0 +2.17,4.43,0.71,0.9,0.01,0 +21.58,4.81,3.33,20.57,0,0 +0,0.033,0,0,0,0 +0,7.29,21.51,18.61,0,0 +12.26,8.86,13.95,18.21,0,0 +0,1.78,1.02,2.16,0.42,0 +0,2.73,1.56,6.05,0.71,0 +4.94,1.52,4.06,0.9,0,0 +5.76,2.54,1.82,1.3,0,0 +0,1.35,2.19,0.82,0,0 +16.7,1.12,0.86,0.58,0,0 +14.67,3.68,10.54,2.71,0.2,0 +345,112.25,27.5,51.5,58.75,1 +565,93,34,47,0,1 +550,53,34,20,0,1 +115.9,75,14.7,25.3,6.8,1 +78,161,86,353,10,1 +54,7,7.4,8.6,5.4,1 +19,10,7.9,9.5,8.5,1 +80,20,6,20,62,1 +170,24,7,17,54,1 +4670,3500,2120,5040,2560,1 +24.32,16.36,1.67,30.18,27.47,1 +57.98,18.87,4.62,8.66,9.87,1 +87.27,6.5,5.16,1.07,0,1 +34.6084,18.2149,14.3898,17.3042,15.4827,1 +61.3944,10.8221,4.1623,10.4058,13.2154,1 +44.9775,11.0945,12.7436,2.6987,28.4858,1 +89.9942,5.3479,1.9551,2.7027,0,1 +52.5,32.9,9.73,79.3,9.8,1 +6,0.5,0.29,1.87,7.42,1 +63,0.29,0.59,3.64,16.8,1 +22.5,8.5,1.2,7.3,8.4,1 +31,6.6,4.7,19,67,1 +3.3,1.1,0.9,3.1,3.3,1 +45,15,1,19,18,1 +316,36.1,37.3,109,440,1 +24.2,3.2,3.7,16.6,101,1 +35.2,2.6,1.9,5.3,18.3,1 +4.1,3.5,0.68,1.2,5.2,1 +34,60,11,123,6,1 +96,13.7,3.8,35.6,5.4,1 +12,14.6,7.2,14.4,0.98,1 +11.9,12.4,5.9,13.6,1.03,1 +46.7,8.2,1.8,5.1,4.1,1 +53.9,8.3,1.1,6,7.1,1 +51.1,7.1,1.7,5.9,9.2,1 +1256,80,62,38,0,1 +49.1,12.2,0.3,3.9,4.8,1 +912.46,129.97,6.87,32.09,307.6,1 +176,205.9,47.7,75.7,68.7,1 +100,94,22,304,118,1 +29,26.3,1.8,27,82.4,1 +650,53,34,20,0,1 +1565,98,35,48,0,1 +97.81,15.87,2.71,8.1,24.36,1 +66,8.27,8.21,9.21,8.21,1 +116.5,623.1,416.2,1683.5,2.87,1 +59,10.4,4,10,12.7,1 +68,8,3,8,11,1 +85.865,7.0013,4.4914,2.642,0,1 +84.333,8.0593,7.2211,0.38685,0,1 +83.714,8.067,5.175,3.0441,0,1 +200,50,40,50,6,1 +18.648,18.005,6.6987,55.463,1.1858,1 +34.667,28,20,16,1.3333,1 +44.482,50.357,4.616,0,0.5455,1 +30.1,17.1,2.2,5.5,5.2,1 +30,62,60,460,3.4,1 +5.2,8.4,6.6,19,18,1 +15.6,67.75,69.15,40.42,1,2 +5.5,9.2,7.7,2,0,2 +2000,1800,1260,3600,10,2 +56,78,18,21,0,2 +56,78,18,173,0,2 +18,82.8,4.3,3.1,0,2 +23,11.8,3,0.6,0,2 +150,60,40,70,1,2 +218,120.7,126.6,142.1,0.9,2 +247.7,148.7,78.7,192.7,0.9,2 +181,262,41,28,0,2 +100,170,595,34,0,2 +217.5,40,4.9,51.8,67.5,3 +1678,652.9,80.7,1005.9,419.1,3 +673.6,423.5,77.5,988.9,344.4,3 +60,40,6.9,110,70,3 +200,48,14,117,131,3 +46,37.2,8.3,107,71.9,3 +59,28,9,70,15,3 +335,67,18,143,170,3 +42.1,28,10,51,5.8,3 +5405,561,5,70,128,3 +44.3,17.3,3.6,23.3,10.4,3 +189,157,17,62,7.4,3 +260,130,26,84,92,3 +980,570,37,480,54,3 +940,440,3,530,460,3 +420,200,14,230,180,3 +60,40,10,110,70,3 +707,115,11,55,81,3 +56.98,10.48,1.28,13.57,17.68,3 +44.11,24.55,6.66,24.14,0.54,3 +20.39,17.18,1.77,24.72,35.96,3 +30.4094,8.1412,0.7212,16.0032,44.725,3 +17.0118,13.7574,3.0695,39.571,26.5902,3 +62.3063,11.1903,1.8599,10.0123,14.6311,3 +44.964,8.0935,1.0941,18.8849,26.9784,3 +32.5967,15.4696,4.9724,38.674,8.2873,3 +44.7927,17.4924,3.64,23.5592,10.5157,3 +23.0233,12.0046,10.0593,12,61.8213,3 +139,52.2,6.8,62.8,9.6,3 +117,5.8,15.9,7,12.8,3 +421,135,27.7,351,374,3 +71.6,20.2,2.7,34.6,44.2,3 +730,750,190,1300,7,3 +43,36,41,47,13,3 +100,94,22,304,118,3 +49,41.6,25.1,124,15.7,3 +21,7.6,4.7,96.3,26.73,3 +65,26.1,10.1,41.6,57.8,3 +64,22,20.7,51.7,95.1,3 +150,80,235,105,35,3 +294,27.4,5.6,52.6,338,3 +437,27.2,22.5,34.9,30.2,3 +2054,370,26,535,805,3 +136,140,59,582,140,3 +4430,941,76,2475,55585,3 +179,413,27,544,473,3 +250,63,2.8,66,120,3 +190,450,240,850,0.6,3 +29,7.52,5.5,14.8,5.4,3 +6.3,7.87,6.97,3.03,11.1,3 +413,6.8,40.4,4.6,8.15,3 +23.4,14.3,7.12,9.71,3.44,3 +98,252,95,646,22,3 +334,39.9,47.8,5.35,247.6,3 +102,62,5,63,73,3 +23,12,12,10,61,3 +55.8,37.2,15.6,15,1.8,3 +279,41,9.7,42,34,3 +255,48,8.3,33,29.8,3 +218,195,35,217,33,3 +34.45,21.92,3.19,44.96,19.62,3 +51.2,37.6,5.1,52.8,51.6,3 +106,24,4,28,37,3 +138.8,52.2,6.77,62.8,9.55,3 +162,35,5.6,30,44,3 +263,628,16.8,46,855.4,3 +170,24,7,17,54,3 +991,91,106,8,389,3 +446,93,7,145,637,3 +158,71,1.3,146,685,3 +127,107,11,154,244,3 +300,240,14,160,140,3 +130,98,7,56,65,3 +35,25,0,23,22,3 +2251,2159,887,6055,1849,3 +198,39,7.1,27,22.5,3 +200.83,59.45,41,40.48,150.84,3 +1500,865.2,99.7,1421.3,662.8,3 +31.8,25,8.2,12.9,5.7,3 +29.3,24.9,7.3,11.4,7.5,3 +63.5,7.45,1.85,18,6.5,3 +370,119,0,84,199,3 +138.5,68.4,0,193.6,137,3 +123,51.3,15.6,16,42,3 +46,11,4,46,71,3 +4.23,11.75,0,2.65,9.11,3 +1000,200,30,400,1000,3 +119,25,12,55,84,3 +466.5,148.8,13.1,266.4,511.5,3 +550.4,70.3,9.4,136.7,100.8,3 +410,120,18,71,250,3 +443,85.2,9.5,102.9,173.9,3 +44.35,17.36,3.67,23.33,10.37,3 +201,36,6,32.3,47.2,3 +44.09,13.64,2.42,20.08,20.21,3 +172.9,334.1,172.9,812.5,37.7,4 +25.1,411.91,320.9,1832.8,18.4,4 +56,286,96,928,7,4 +274,376,55,1002,17,4 +15,12,5.3,3.2,0.2,4 +56,285,96,28,7,4 +350,1001,298,1001,7.9,4 +90,149,32.4,486,19.2,4 +747,2065,1029,4589,6.4,4 +428,1660,533,4094,11.4,4 +26.6,22.7,22.5,109,0,4 +70.4,69.5,28.9,241.2,0.4,4 +164,244,103,497,8.3,4 +20.6,19.89,7.4,61.27,1.51,4 +4072,15850,9057,22621,535,4 +26.5,298,0,69.3,8.6,4 +73,520,140,1200,6,4 +766,993,116,665,4,4 +16,237,92,470,0,4 +86,110,18,92,7.4,4 +36,30,10,93,7.1,4 +31.7,40.3,8.7,107,4.5,4 +228,380,82,1012,19,4 +130,270,67,500,3,4 +135,466,70,502,9,4 +73,520,140,1230,7,4 +610,1200,300,1800,6,4 +0.96,15.79,12.3,70.25,0.71,4 +11.3,21.84,11.3,53.1,2.46,4 +20.07,31.02,3.83,43.8,1.28,4 +16.746,16.5319,6.8744,57.3739,2.4738,4 +16.137,24.0087,10.1348,48.9029,0.8167,4 +4.6875,10.8259,17.5223,66.9643,0,4 +3.7648,26.8179,7.2202,61.8876,0.3094,4 +18.6139,17.9724,6.6865,55.3628,1.3644,4 +15.8933,21.8097,3.1903,58.1206,0.9861,4 +15.9445,30.0131,4.9709,48.7713,0.3001,4 +1.3802,6.1511,9.2081,76.6277,6.6329,4 +477,566,239,734,116,4 +56.4,42.7,167,1413,17.1,4 +74.8,482,297,1409,7.5,4 +220,502,178,1017,7.8,4 +6.9,80.6,47.4,351,4.9,4 +131,253,97,357,2.4,4 +113,140,111,405,28.4,4 +7.8,111,129,701,2.8,4 +58,103,51,251,6,4 +143,305,78,721,2,4 +170,300,44,580,8.9,4 +180,340,52,6303,10,4 +17,21,11,145,4.1,4 +90,160,54,330,29,4 +44.6,63.2,20.1,129,0.66,4 +246,432,141,674,7.2,4 +56,144,36,164,1.8,4 +69,212,135,692,3.9,4 +181,316,115,593,2,4 +170,330,77,430,13,4 +76,202,275,3216,16,4 +87,500,26,520,9,4 +279,487,109,708,4.4,4 +851,2802,772,3521,10,4 +557,3541,521,2928,7,4 +10,4,3,33,6,4 +240,676,200,818,4,4 +117,257,92,468,4,4 +173,334,172,813,37.7,4 +240,28,6,26,85,4 +36.2,12.6,4.4,15.5,0,4 +105,169.4,59.1,347.6,1.8,4 +45,168,82,330,3.1,4 +39.4,40.6,17.2,51.4,4.3,4 +62,112,36,148,0,4 +8.4,28.7,13,105,2.1,4 +206,198.9,74,612.7,15.1,4 +220,340,42,480,14,4 +130,440,180,730,0,4 +170,320,53,520,3.2,4 +50,90,18,260,5.9,4 +677,457,45,410,12,4 +207,416,347,1345,20,4 +4020,15850,9057,22621,535,4 +56,100,51,153,2.3,4 +160,223,45,495,11,4 +42,98,156,610,0,4 +766,990,115,660,0,4 +51,71,15,87,0,4 +32,60.6,34.5,151.3,0,4 +18,113,76,294,0,4 +318,57,42,219,0,4 +99.4,50.57,19,70.6,0.36,4 +27.4,63.2,32.7,137.8,0.52,4 +63.3,58.1,8.7,60.1,0,4 +3303,5652,7057,7633,0,4 +200,1000,400,3000,30,4 +330,2000,1600,5100,30,4 +14.7,610,151,917,0,4 +2000,8850,1500,9400,200,4 +1680,7190,3700,19300,140,4 +0,300,6000,16900,50,4 +0,260,160,800,0,4 +18,250.4,172.8,707.9,0,4 +890,729,246,1816,22,4 +17,50.6,10.1,3.6,0,4 +1852,1004,2447,2557,969,4 +94,195,14,153,15,4 +210,1300,300,1500,13,4 +229,1110,170,713,0.6,4 +18.95,46.97,6.94,61.54,0,4 +181,262,210,528,0,5 +160,130,33,96,0,5 +4.32,193,118,125,0,5 +170,320,53,520,3.2,5 +27,90,42,63,0.2,5 +9259,8397,26782,10497,-1,5 +120,120,33,84,0.55,5 +57,77,19,21,0,5 +259,863,393,994,6,5 +93,58,43,37,0,5 +166.6,28.31,6.72,12.4,0.3,5 +38.19,31.03,7.88,22.91,0,5 +0.98,43.83,26.8,28.39,0,5 +15.33,22.18,17.78,44.71,0,5 +7.8105,30.4018,17.3722,43.3893,1.0262,5 +32.7586,44.2529,10.9195,12.069,0,5 +40.2597,25.1082,18.6147,16.0173,0,5 +33.5617,33.5617,9.2295,23.4932,0.1538,5 +24.0035,27.8,24.4228,30,0,5 +46,98,41.3,26.3,0,5 +25,85,9.6,178,1.4,5 +29.9,34.6,5.6,70,1.2,5 +12,290,144,355,0,5 +83,35,4.9,86,5.1,5 +4.9,21,15,69.3,3.8,5 +140,173,45,17,0,5 +11,31,26,52,0,5 +9,16.7,9.9,85.3,3.4,5 +5.5,9.6,3.9,50,1.5,5 +23,61,14,153,4.4,5 +44.2,101,13,11.8,0.45,5 +18,20,6,12,2,5 +13.1,44.7,91.5,213.3,4.2,5 +70.2,246.6,171.5,371.6,0,5 +66,201.5,220,99.8,0,5 +93,58,37,43,0,6 +98.5,555,200,1636,8.3,6 +300,490,180,360,95,6 +27,90,42,63,0.2,6 +111,559,243,707,0,6 +679,4992,1823,3671,0,6 +22.2,50.7,25.1,56.9,0,6 +78,70.1,294.8,635.8,12.2,6 +181,262,210,528,37.7,6 diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/变压器故障数据分类.xlsx b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/变压器故障数据分类.xlsx new file mode 100644 index 0000000..ece4ffc Binary files /dev/null and b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/变压器故障数据分类.xlsx differ diff --git a/backend/apps/algorithms/algorithm/dataPrediction/Transformer/基于机器学习的变压器故障诊断及预警研究_傅闽豪.pdf b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/基于机器学习的变压器故障诊断及预警研究_傅闽豪.pdf new file mode 100644 index 0000000..0f9faf8 --- /dev/null +++ b/backend/apps/algorithms/algorithm/dataPrediction/Transformer/基于机器学习的变压器故障诊断及预警研究_傅闽豪.pdf @@ -0,0 +1,34426 @@ +%PDF-1.6 % +3 0 obj <> endobj 7 0 obj <> endobj 11 0 obj <> endobj 15 0 obj <> endobj 19 0 obj <> endobj 23 0 obj <> endobj 27 0 obj <> endobj 31 0 obj <> endobj 35 0 obj <> endobj 39 0 obj <> endobj 43 0 obj <> endobj 47 0 obj <> endobj 51 0 obj <> endobj 55 0 obj <> endobj 59 0 obj <> endobj 63 0 obj <> endobj 67 0 obj <> endobj 71 0 obj <> endobj 75 0 obj <> endobj 79 0 obj <> endobj 83 0 obj <> endobj 87 0 obj <> endobj 91 0 obj <> endobj 95 0 obj <> endobj 99 0 obj <> endobj 103 0 obj <> endobj 107 0 obj <> endobj 111 0 obj <> endobj 115 0 obj <> endobj 119 0 obj <> endobj 123 0 obj <> endobj 127 0 obj <> endobj 131 0 obj <> endobj 135 0 obj <> endobj 139 0 obj <> endobj 143 0 obj <> endobj 147 0 obj <> endobj 151 0 obj <> endobj 155 0 obj <> endobj 159 0 obj <> endobj 163 0 obj <> endobj 167 0 obj <> endobj 171 0 obj <> endobj 175 0 obj <> endobj 179 0 obj <> endobj 183 0 obj <> endobj 187 0 obj <> endobj 191 0 obj <> endobj 195 0 obj <> endobj 199 0 obj <> endobj 203 0 obj <> endobj 207 0 obj <> endobj 211 0 obj <> endobj 215 0 obj <> endobj 219 0 obj <> endobj 223 0 obj <> endobj 227 0 obj <> endobj 231 0 obj <> endobj 235 0 obj <> endobj 239 0 obj <> endobj 243 0 obj <> endobj 247 0 obj <> endobj 251 0 obj <> endobj 255 0 obj <> endobj 259 0 obj <> endobj 263 0 obj <> endobj 267 0 obj <> endobj 271 0 obj <> endobj 275 0 obj <> endobj 279 0 obj <> endobj 283 0 obj <> endobj 287 0 obj <> endobj 291 0 obj <> endobj 295 0 obj <> endobj 299 0 obj <> endobj 303 0 obj <> endobj 307 0 obj <> endobj 311 0 obj <> endobj 316 0 obj +<< +/Title (dX)/Parent 315 0 R +/Next 317 0 R +/Dest [7 0 R /XYZ null 822 null] +>> +endobj +317 0 obj +<< +/Title (ABSTRACT)/Parent 315 0 R +/Next 318 0 R +/Dest [11 0 R /XYZ null 822 null] +>> +endobj +319 0 obj +<< +/Title (1.1 xzvfoSaNI)/Parent 318 0 R +/Next 320 0 R +/Dest [27 0 R /XYZ null 822 null] +>> +endobj +321 0 obj +<< +/Title (1.2.1 SSVheEeVQYxzvsr)/Parent 320 0 R +/Next 322 0 R +/Dest [35 0 R /XYZ null 822 null] +>> +endobj +322 0 obj +<< +/Title (1.2.2 SSVhlN-nlOSmKVQYxzvsr)/Parent 320 0 R +/Dest [55 0 R /XYZ null 822 null] +>> +endobj +320 0 obj +<< +/Title (1.2 VQYxzvsr)/Parent 318 0 R +/Next 323 0 R +/First 321 0 R +/Last 322 0 R +/Count -1 +/Dest [35 0 R /XYZ null 822 null] +>> +endobj +323 0 obj +<< +/Title (1.3 N;xzvQ[Nbg/~)/Parent 318 0 R +/Dest [67 0 R /XYZ null 822 null] +>> +endobj +318 0 obj +<< +/Title ({,1z ~ꋺ)/Parent 315 0 R +/Next 324 0 R +/First 319 0 R +/Last 323 0 R +/Count -1 +/Dest [27 0 R /XYZ null 822 null] +>> +endobj +325 0 obj +<< +/Title (2.1 SSVhvR|{T~b)/Parent 324 0 R +/Next 326 0 R +/Dest [75 0 R /XYZ null 822 null] +>> +endobj +326 0 obj +<< +/Title (2.2 SSVhlN-nlOSW\(~vmKn)/Parent 324 0 R +/Next 327 0 R +/Dest [79 0 R /XYZ null 822 null] +>> +endobj +328 0 obj +<< +/Title (2.3.1 SSVh~lvRSlOS)/Parent 327 0 R +/Next 329 0 R +/Dest [83 0 R /XYZ null 822 null] +>> +endobj +329 0 obj +<< +/Title (2.3.2 SSVhVOS~gPevRSlOS)/Parent 327 0 R +/Dest [87 0 R /XYZ null 822 null] +>> +endobj +327 0 obj +<< +/Title (2.3 SSVhlN-nlOSvNug:t)/Parent 324 0 R +/Next 330 0 R +/First 328 0 R +/Last 329 0 R +/Count -1 +/Dest [83 0 R /XYZ null 822 null] +>> +endobj +331 0 obj +<< +/Title (2.4.1 p`'eE)/Parent 330 0 R +/Next 332 0 R +/Dest [91 0 R /XYZ null 822 null] +>> +endobj +332 0 obj +<< +/Title (2.4.2 e>u5`'eE)/Parent 330 0 R +/Dest [91 0 R /XYZ null 822 null] +>> +endobj +330 0 obj +<< +/Title (2.4 SSVh^8eE)/Parent 324 0 R +/Next 333 0 R +/First 331 0 R +/Last 332 0 R +/Count -1 +/Dest [87 0 R /XYZ null 822 null] +>> +endobj +333 0 obj +<< +/Title (2.5 g,z\\~)/Parent 324 0 R +/Dest [99 0 R /XYZ null 822 null] +>> +endobj +324 0 obj +<< +/Title ({,2z SSVhlN-nlOSg:tRgS^8eE)/Parent 315 0 R +/Next 334 0 R +/First 325 0 R +/Last 333 0 R +/Count -1 +/Dest [75 0 R /XYZ null 822 null] +>> +endobj +335 0 obj +<< +/Title (3.1 ry_ b)/Parent 334 0 R +/Next 336 0 R +/Dest [103 0 R /XYZ null 822 null] +>> +endobj +336 0 obj +<< +/Title (3.2 gzh^cSGg:Vh\(XGBoost\))/Parent 334 0 R +/Next 337 0 R +/Dest [107 0 R /XYZ null 822 null] +>> +endobj +337 0 obj +<< +/Title (3.3 e/cTg:\(SVM\))/Parent 334 0 R +/Next 338 0 R +/Dest [115 0 R /XYZ null 822 null] +>> +endobj +339 0 obj +<< +/Title (3.4.1 eE|{WTeEry_)/Parent 338 0 R +/Next 340 0 R +/Dest [131 0 R /XYZ null 822 null] +>> +endobj +340 0 obj +<< +/Title (3.4.2 emAz )/Parent 338 0 R +/Next 341 0 R +/Dest [135 0 R /XYZ null 822 null] +>> +endobj +341 0 obj +<< +/Title (3.4.3 j!WNch)/Parent 338 0 R +/Dest [139 0 R /XYZ null 822 null] +>> +endobj +338 0 obj +<< +/Title (3.4 SSVheEej!W)/Parent 334 0 R +/Next 342 0 R +/First 339 0 R +/Last 341 0 R +/Count -1 +/Dest [131 0 R /XYZ null 822 null] +>> +endobj +343 0 obj +<< +/Title (3.5.1 h7g,epcne6)/Parent 342 0 R +/Next 344 0 R +/Dest [143 0 R /XYZ null 822 null] +>> +endobj +344 0 obj +<< +/Title (3.5.2 XGBoost ry_O ~g)/Parent 342 0 R +/Next 345 0 R +/Dest [147 0 R /XYZ null 822 null] +>> +endobj +345 0 obj +<< +/Title (3.5.3 NwRg)/Parent 342 0 R +/Dest [151 0 R /XYZ null 822 null] +>> +endobj +342 0 obj +<< +/Title (3.5 SSVheEevNwRg)/Parent 334 0 R +/Next 346 0 R +/First 343 0 R +/Last 345 0 R +/Count -1 +/Dest [143 0 R /XYZ null 822 null] +>> +endobj +346 0 obj +<< +/Title (3.6 g,z\\~)/Parent 334 0 R +/Dest [163 0 R /XYZ null 822 null] +>> +endobj +334 0 obj +<< +/Title ({,3z WN XGBoost ry_O v SVM SSVheEe)/Parent 315 0 R +/Next 347 0 R +/First 335 0 R +/Last 346 0 R +/Count -1 +/Dest [103 0 R /XYZ null 822 null] +>> +endobj +349 0 obj +<< +/Title (4.1.1 _sy^~Q~\(RNN\))/Parent 348 0 R +/Next 350 0 R +/Dest [171 0 R /XYZ null 822 null] +>> +endobj +350 0 obj +<< +/Title (4.1.2 wg_Q~\(LSTM\))/Parent 348 0 R +/Next 351 0 R +/Dest [175 0 R /XYZ null 822 null] +>> +endobj +351 0 obj +<< +/Title (4.1.3 STwg_Q~\(BiLSTM\))/Parent 348 0 R +/Dest [179 0 R /XYZ null 822 null] +>> +endobj +348 0 obj +<< +/Title (4.1 STwg_Q~)/Parent 347 0 R +/Next 352 0 R +/First 349 0 R +/Last 351 0 R +/Count -1 +/Dest [171 0 R /XYZ null 822 null] +>> +endobj +352 0 obj +<< +/Title (4.2 laRg:R6)/Parent 347 0 R +/Next 353 0 R +/Dest [183 0 R /XYZ null 822 null] +>> +endobj +354 0 obj +<< +/Title (4.3.1 mKmAz )/Parent 353 0 R +/Next 355 0 R +/Dest [187 0 R /XYZ null 822 null] +>> +endobj +355 0 obj +<< +/Title (4.3.2 j!WNch)/Parent 353 0 R +/Dest [191 0 R /XYZ null 822 null] +>> +endobj +353 0 obj +<< +/Title (4.3 lN-nlOSmKj!W)/Parent 347 0 R +/Next 356 0 R +/First 354 0 R +/Last 355 0 R +/Count -1 +/Dest [187 0 R /XYZ null 822 null] +>> +endobj +357 0 obj +<< +/Title (4.4.1 [sXT[epcn)/Parent 356 0 R +/Next 358 0 R +/Dest [195 0 R /XYZ null 822 null] +>> +endobj +358 0 obj +<< +/Title (4.4.2 {ORg)/Parent 356 0 R +/Dest [207 0 R /XYZ null 822 null] +>> +endobj +356 0 obj +<< +/Title (4.4 SSVhlN-nlOSmK{ORg)/Parent 347 0 R +/Next 359 0 R +/First 357 0 R +/Last 358 0 R +/Count -1 +/Dest [195 0 R /XYZ null 822 null] +>> +endobj +359 0 obj +<< +/Title (4.5 g,z\\~)/Parent 347 0 R +/Dest [219 0 R /XYZ null 822 null] +>> +endobj +347 0 obj +<< +/Title ({,4z WN BiLSTM-Attention j!WvSSVhlN-nlOSmK)/Parent 315 0 R +/Next 360 0 R +/First 348 0 R +/Last 359 0 R +/Count -1 +/Dest [171 0 R /XYZ null 822 null] +>> +endobj +362 0 obj +<< +/Title (5.1.1 {lmAz )/Parent 361 0 R +/Next 363 0 R +/Dest [231 0 R /XYZ null 822 null] +>> +endobj +363 0 obj +<< +/Title (5.1.2 {lmK)/Parent 361 0 R +/Dest [235 0 R /XYZ null 822 null] +>> +endobj +361 0 obj +<< +/Title (5.1 v}OS{l)/Parent 360 0 R +/Next 364 0 R +/First 362 0 R +/Last 363 0 R +/Count -1 +/Dest [223 0 R /XYZ null 822 null] +>> +endobj +365 0 obj +<< +/Title (5.2.1 N\rT j!W[~g[k)/Parent 364 0 R +/Next 366 0 R +/Dest [243 0 R /XYZ null 822 null] +>> +endobj +366 0 obj +<< +/Title (5.2.2 SSVhveEe]z [EhHORg)/Parent 364 0 R +/Dest [251 0 R /XYZ null 822 null] +>> +endobj +364 0 obj +<< +/Title (5.2 WN XGBoost ry_O v BWO-SVM SSVheEe)/Parent 360 0 R +/Next 367 0 R +/First 365 0 R +/Last 366 0 R +/Count -1 +/Dest [243 0 R /XYZ null 822 null] +>> +endobj +368 0 obj +<< +/Title (5.3.1 N\rT j!W[~g[k)/Parent 367 0 R +/Next 369 0 R +/Dest [259 0 R /XYZ null 822 null] +>> +endobj +369 0 obj +<< +/Title (5.3.2 SSVhlN-nlOSf[EhHORg)/Parent 367 0 R +/Dest [275 0 R /XYZ null 822 null] +>> +endobj +367 0 obj +<< +/Title (5.3 WN BWO-BiLSTM-Attention j!WvSSVhlN-nlOST+ϘmK)/Parent 360 0 R +/Next 370 0 R +/First 368 0 R +/Last 369 0 R +/Count -1 +/Dest [259 0 R /XYZ null 822 null] +>> +endobj +370 0 obj +<< +/Title (5.4 g,z\\~)/Parent 360 0 R +/Dest [279 0 R /XYZ null 822 null] +>> +endobj +360 0 obj +<< +/Title ({,5z WNv}{lOSvSSVheEeSʘfxzv)/Parent 315 0 R +/Next 371 0 R +/First 361 0 R +/Last 370 0 R +/Count -1 +/Dest [223 0 R /XYZ null 822 null] +>> +endobj +372 0 obj +<< +/Title (6.1 ~Ӌ)/Parent 371 0 R +/Next 373 0 R +/Dest [287 0 R /XYZ null 822 null] +>> +endobj +373 0 obj +<< +/Title (6.2 \\Ug)/Parent 371 0 R +/Dest [291 0 R /XYZ null 822 null] +>> +endobj +371 0 obj +<< +/Title ({,6z ~ӋN\\Ug)/Parent 315 0 R +/Next 374 0 R +/First 372 0 R +/Last 373 0 R +/Count -1 +/Dest [287 0 R /XYZ null 822 null] +>> +endobj +374 0 obj +<< +/Title (S€es.)/Parent 315 0 R +/Dest [295 0 R /XYZ null 822 null] +>> +endobj +315 0 obj +<< +/Type/Outlines +/First 316 0 R +/Last 374 0 R +/Count 9 +>> +endobj +314 0 obj <>>> endobj 376 0 obj <>/Filter /FlateDecode /Length 4877 >> +stream +x]KGľo/6\;CȜa1=M !b, !%A,+$  X@b %?%z9 țskzt[UŇy/7}XqCՔMӸ7|ꛫnSSV*mݴo*+٦4wK^emkU~Ve.VD۟ uG{We۶UF~qn}}CE]VJFfմ?Vo{VF/US>sv}-#ڪtz*r/{o+W<>5omekcLO5r݌tm$*_jt‹Rj+-ͦ*l]Ǔ+wh\-_ڹ5ve ~(ӿ6%=h~7#Sb5G3@Oʇ.chf&Տw'tcGq"K<58y5/3 G[-h,84e@p[մT`*Vc7קq* + +6EI跰nvLCm}k!Nu\ĦUUd.I[ dߕrV<|gL6#N>找/m'9.n\}XA+m[a}tiӸB.ۦ_H5|q'xZHl^V{5\WkO"N/>V,',7igYjDL"%NQ/2p+<[x|}ZֱpJw +~) Ÿk<>-2 Ml& +EtU` F:M +ܺߏ52Zd}+Sޅ^ v0{N0o[.ē iZ)S7$q&kPZ2 < +' Dg呏ʖ A`-%l h'@CT4$ & P'. ~ h'#)[壌lّ'EUl ,mFyM%K`dAdv +νL7a6F;5L=٩δlS%"M"06Zj^ީdk+耬 R~iõA)7*YH2IY`m bl'о-ɽq3O`K?oE:7}[dD-a(w +ud>:N|.~ZC4iTݔǿ?y"u|&C~+G|؆ ?}GLڏӿo]?.;+ݷq8WՎU뒡6gqoGuͯ <wS;@,jD@T[xi% Mqp@sSXn^7[3nWNy}uvTr=e%~WK2q^w_5ڲ޺Ie*WtZ = ;-Tޝh4{l~䗡=' +^x\wi{¹׸^S߃Zwg4Wͫ[_ lt;a r~Tg>mp 59=ze|iHd~qOUߨ={+W"␐T$RɻKiϧkgGTTrdե2݃eڻ;59=+*u5Uqc|ؓO 0P|ِ#1s|E᳘Q$!=7=Q7y.bH ~F;`Xa@p8'YN Cs;2MhU`zɺ%hx=$ \Vc&YeZmep)^HlNbW +)uOzx2p'HoYp61<t/IK*욃tI|7GYG1t%OQBj^CS}qp4) +x\Ya(}P'0ho%Uә.HM>^w6m]KcU^,hjbM@jPGDe"4B64p! /tMOD}QKRhShab ҤuGgphWmhmjqj +Չԝn{ļ'N.Ұ{@$UW;{7; '%W$-Yyg>V8̂+>ģIQуXJ73ac+;bDjm'RH/Vm:V})_YK5<&عr*9,zPDW IoO6MYaƆOg> ۊfmL_OJ] > ~ ƚEZOj=`÷0(S9qYC-V \c&W d3 ^dx9K  Eqgo(o9jbw-.8Ρ ]IkB`@'vK>1QuI7-eiL( +%L. nqwJ]jx,\/k=^:6e9,(-/![ \0MSp9A~ ) {{F};;L;o"-M򹬤6w5&eR 22RxV*/m#ψ7r _.(chX[,W Z (b&;wn#v:Oxm90YY d!lثOv!~8o:Jb~I[C]2w&-ͥQ7!ʘg1oLbԲirQq[ʙȺZZƻ0iz'pf/m(B θ}IJ,e?-qCLwRB=n/X]ަ[kq>@̓ - wDB(3$^@_t%o'];ѥ8+])ێͣ0^dh,?O'% +endstream endobj 378 0 obj <> endobj 381 0 obj <> endobj 383 0 obj <> +stream +x]O1 y)ʒ.ZUm?@b!CIg|wYud@>%Mo &0L\tr@^H>/Boh )jItJ 6l +ժ?%Λ[ĩ4-Mr{&SC|'S +endstream endobj 382 0 obj <> endobj 384 0 obj <> +stream +x\|յ?"I.Y]%b IO$.%  ]\(?>KVO ݠ}PiJW ޙM }ݳ={=sHr(J/ꬨ$Yڳ>2`Xmϕ 7X~~"EDYu׬2ݢߺH-}㽇P*^Ao:5_ınCO$3G(3c/Y +}) @ +6 nJ+L'+,h2M}TD |O5{.8GJh=tak/ >z +Kӽt+Yi4Ql*AAz:@Hnүk+2=6Н"}3u1&r`Q=ߥߣa9Kʢb[ *GoN:x% +KZ.3}"UA";eEz |_E˩v6K@ +0u'%h? I?YM2죗!iG1 4²~A/3od[*-˵4fDzo =+4y6bŬ-bKt/]Av8Kk0l~Tuq}CߣTa5o+wҽWlRZOwc gsbv g׳[7N"{xOF@<(drF}RnDߢa:Je yv` =}e6{}>r'_򣀗R4UKZ)$m@TJwޒ売X~ŲbVE +mdW#7]a#'oIĜ]Fټ/\F~7$%JRi\6IH;$MzA@3eK_/WPR,W[kx [Hdr,?5:i-if(? +V+䧱0lfS9.͐tr&+dGvTO:KoV疗Ks;MQ%S\E&ȝaY-aE5٧^pAh("g(šUxM nxEhk-CmTckø41:$q*nQb]Aգ;PHk&-eqGܔs7f3$]Hmce""u> +BSzDT9͡Xb⊬21GЋPG +P?xM$zE죲kDlMh./2Uu!}ԎFBH#.DC.mV:4CIK%:jVQH<"O쾱oଖj>֩-^TZbTnۺƵL1[Jj +JNS2(1gfk_QԽIUihҪ94)`Ԫ5ˎI׶eX8J͜p~+Q4Z7#0HYp@Ts3%Y^֊.kUX8IѕPcLl%cԓaN3& +') EMsRvXrp!h~htU@MsdDo :VϜqa, 8:RQx +]tLȅa>sKN`ɲPa|£Q|I C$b0:Q˜9ǙyY5j+ԫ=buRആSBPA ++sa]9t&N7ը!8Cfnt+0bi=_9%_#.mN-C=z)bThNp}F$̸9`K8pLBc-l\,^4;IHcKVo5[{yL`-Ɩhkں%"ޮUw3"FQgP#g,ާY}wFē*`g>r \#;b4g {\"qh+鉉a?2ˏ)scqVɾakCiUKq$23O[/yOkl7F5"Qѯ90ųe}J$❏PUN+u0]Mhz{ٶ3On-'[.ܶ~v-be5pVBm$ޖ 8w:Yǻ6dIeTBn-&SI!_姥tȥ t4%Q$%u(RenC` +*{2Jw_Z@UniJ(nGdJt%YY ipp;p7j  S% & lhJ1ˍ!/Xl[6zE;X!c-,z#ֲ,gQhEbs( ל(b#,8E,:EVHrOb,lAl:dԃL8z֛s+7`Fø P:2:Ac\z +!I{*n\ +`=pI$ӆT{De~ ~ApO`;.Xn [T**(gK'9ѐNOqt طDF屹c^94hg.y⏁W&\K-7+s`DO]'ﻒ{ܿQ2K cݯns"ii_P aG aؕpoly\4\:V [5Vsu-w@~S,E]Ƥj 4ܳ,J@m-h[d;Vi+yln6ўow'سvjNIx/n* * ɸrft!igImizm}ܩ&Y&^-j#ݙں9MЪm`Bj|^I VfzSs +QQEuys[SS4NҨh &f?ƐViȺMs0+;<>,_[:^kڒlG +~( ?;{?  ~ތ Of/>89>mSР3Xs )HAThuŠeXKE1ی$ve9?kPM[V[a+S ~#W ڐ׬J+\6ǩ+5'j5-j944qs66y_1X<1׼0W <1WJ5/0ϘRoj6Dن.X3jSy.{(ҲF-(L „%L)Sіۓ29Sɿif*jYl~jfp-iuM+l٠ %iգ~T ePJҘ +]FF_)$vA?5%l $DJtV^1 +'MbͣisJJbS=ep4%c,X6w&HKԀgRE x;^lv۬QC~2~Xxh -w"|BL|drKOvsڅ]e-Cv|2s'ϓK_(ҡ/x9? iHCҐ4! iHCҐ4! iHCҐ4! iHCҐ4! i" $k\ LS j=)T[O2(_ Y?ojbMd/?h)Ra4o+$و+rk?;͉zR_ğ?j1:j6mg +endstream endobj 380 0 obj <> endobj 386 0 obj <> +stream +xqEx'pL2H$yI$hۃ}֦ hTx-QO?_~oO?~?Ͽ~wO?pOߟ~_?Y?Zu5t+_cw7~X?u)ۻ;}eҋ!5IkE/'D +L eI2 SIcF$u$2悔Xto`,IϘ2)v&cU;~񍒨i#9uc>IuqnIuV( Z!?y\$uq)7Ij$\ ͇t+|ơIj aZop8 W@%/PZ%)C:M:ҋ%MDL [LҒ_)qhR (DMgH‰LFT(320MRM\2_P(*TNR*&T84镴ơIz|v'Ɖ'jR2B<MʒRGjqh+iCJt])#̷X;&|UUBIT_CT!̷}%Q' +ӆU?2veԽF3ՅZbUZ44IN,/̿2)ӆAGxmc +.Is%k :$cght6^12A6ՏW!*aZ3v6 $Ig׽m*842vj樚0G%U$WYbA(vg9j>$ڰp54I~u&Q!CTbs1IN% +0'm(樇sR{fT&iST4!h̳&ѣ_&OM8`7}&`΍x?wq@084hЖHH +5+iC&F;\vCd iliB/$s Q20WA;2\5MVp$djX'{dL`n/hKupߞȸRm#]qR&UIsDn&&ͮH$ʸ 0܃3C$g굻x[kzq86]&2s*)fNDqF$ax0?|Für_iC.qhW}{B/HФ$"u$]-QR&I84Iw|@0햄-dNtG_&uI/҇Dj{ W4i!M'Hؓb?*@*‰X_e~u)ϰb~aS/]>ݾ4i7I/2L`Lw;ѤKCK^d8M}an'q}$ [t-_&MLF_PƂyzeރqKVV/]84)HФԐX~Hk X~E~=Hl>|w􀑘á?;R_0OW8`Ƒ|dڲ]OSMTK|d4M)ʃy]JE&ImDsLTVP*W!yEea^ UăyB +ʼGtDh7Ŭ]%US*cqh*zbkb-yӽ YA›X볋g}$ͦ.84)H0+wnM&~'dg:$Jy_W vH; ̊6;üRy8LWy+Ww3b]qhRìmc8̻4I~}яUMbȓģkD4i/FM.jH&ļY)%xFVF_Y&ч +-^. +˥A`JrEݑ ^ݥ{*42H7Mi ˥b+[M"VM,CrW2ZT,\uD#,A#S}+۰2M*Șx+cq(L'M'*T844aQ8E=[p^܇}:)"MѶ|փ*[_RF!zDa? +XI*-6wÊ־/Ii$qh-34uD>Mh>֯nIr$[[Nd+㗳 **R1t¢]1+#My$!(FtwIXKY#->kb~byEhbl'{?tRѰdUdTt~=&X6M""㫌4&>ш%Р *X6XuRXBNgHơI5M~~A,r G&4XWUdI W\e4xEǂ!c%dKѦXXoDML)T-R;R4ǡI!L8)2zcG ?4K&x$>cafC,DM '좍C(#1:(Rgq%amMh-'rPyɉ C>e2|hpتJChRDF3kb1 +M7YTѝIfQWJUL"dD ,S$~W_X9i2_vGC6U"!,sߒ84b$? `YBbԂeiJBI,JxX -ŢeH;WyIJCȯXߐiڰ,5|qhQ˾dC.bQt1d#X#܉EBBB"! H]qXJ?1*֋svCcX/6,cH^jxN8 $RUNpz,9M84 +Kͤz[7aP RA:UP)6ȠyBpI:k%G d2*UѢШ{XX +&kP#`"VMBȻEh7bl킌/2zLW::QCL辔%6r`M`U'1[BzOr_5.84 o%ĚPX}xOך&<Mʒ84b +G9MXu[[G5M|]x>_1}k!8!V `-汋2M*8~^U*bCE֌X} og%_L$ݑva[ewk%f^U0=:"J$F84K$b}k`Q X +jm6N8kry֦y%X۫`BR8q38%~mb} Wb}=DȏHwvbo~#MՏ1q$#1(HS$dga6-YC=MqXK-s{wvǡIk].Vvѐ:R4ǡIS^5'X)N8M,'4}(cn>o̳r()C>M>$α 3)vbG.84 W;b]>v&鎾1'tC*P/FSbOpus;zp5262fe!_?f?*!Q_RjJEuUuOI 0n 0VWų1]q.<Mʒq.$l׭;W4(]}KVV-+hKh*Ms<˜ۥ1`&&էT'6Nptv +XAlbv5[}y")s1[cnOvO4_n&144cڋ"5IZZ-p$'Cx؂Mo~cк]yD9фxk*6;:8ʯHHڡ-H4%wcbKC-GsYl:_-щjz? ؊ ^M/y{ov +!{h=ďyCm+I5;KU^[S/A[-D$n-6EC:"ؚE?[ϸ5>d os nV]u6a2B*HIR&y&֔bǓc}:&ФR,&V?b.84IФ/2.2ФGM'UӽqWhRԗγ&D$߸q%C +8.84)#m +u=MH[[[||MJ84Jza z8RB%Ol'MTBŦxUOwbaSp&AEhMb);l36y'`}8ɡI:yZ;ԐN**6~UM~MpXS:8)vLeᗳ_WRed\$LYkQZ:UWeտYw-nߚ]?* [ 2~k>7ķȉ%g׷ȩQloaJ/ĞXbπ=.qhN<~N#xub7v"~zž^L.K,gXĮzM+[Ξl`jrV=M0YȸM@^^R4)K–K(#EeUϷ.v-EK-(45+~;VtG9E'\`/YNtpRDǼ$5I<NhVWM]-}&D`/ӛ\*:؋u7L7b/[xhW~\vǡI]&l`EBhR_pw+rثVDŮx~ZT5bvZ/`]Z[Mw<*[_qvT~¼&Q1]qh6]掰wq$/Pa-dvATM2ؒ-?L9 +[7*bخd~IzFW`s|BM_Zű&t}}ʸDZx9;!v!=/?_]?'~yW~/G +endstream endobj 385 0 obj <> endobj 388 0 obj <> endobj 390 0 obj <> +stream +xy$]'^}ef]YUYgfWUWwI}O%uK]:pZW&e$Ӳ$cY43Y2Ֆlxg-쎍g00L"ٕ/^xw~"PBJ%c}.?xۿw=w?wgvӧN8~۱n~X&44ݐoȬrmFzDž;/=RJF!CW/N-*nq;P;z"; 5venKs6uhmxMON7kի]#| 5 +[576 Ck@dJvܱC{/ӼtG֎Ckµ6]/3YFr!pA/6KbRjY1lݬý8rZ~k)]^~܅Or;|ڵq8wz j9J<9E3־t=%YvV`2):J.euN6{P +ve!;Z Pduϲ::SMLTM XI J 5i\u'~>{MMKYgE} /.c[x!LmnGۻL5ƍ b $4JDBRsZ\}(ܡyԾؽ CķN\n-@T]vq](֜cW!.ak]5*Vdlh͇mC[g C4(wy ^n>rh鑵KpyiCh*]! ^#wa4@R={vڵTh_| ԁWS#Gv\qvu#t"8@C@R.&9wC͇@4z ]]^+]] C̴mCr¡f.?k +ԡhyl}ZC<WZ&,وhT_uh~wu݇mEl&+BeB}cXX_n5샵5vm!B˗ЄH({Pq*jxu$qpztw =Z8g..^ZPz!¾%.4g KWklHnԻ9QPfpZåֺeWIE} mhec0|Ъ]]llgT=YJzI `yↀj5oppUj~#Tiŝ{2X{4FizC;*U0cxsĒDt7lTwӨ +uRd{:v}UWwSrnnZO?t2cI.N@mիhڮ=`m= +tr%%ЕhհCP7 ~>mN:ЛϗVw SQoy~::ΧkP:ߋ~sMs-5n3O6nuG#9oikYS(3ye[qg!^D>MEz~zY޼Ԇr ]!}x (ɵ~'HЩu<") O]!]vIG[zIJQgî›GnKjyͿ OT_?x g4bJ2\eI +(=KOdR]JJR{p=SG!9-(gEa ɝ=mOI,Tk+1YV=IܫЪ4p5IU%REUR|i燒0FJ>%=ׁJcF\\f#WdȇOh/ O^.{/ْO8%d|)lr:!A^{aTs@z +e8²ڨ5jv~RmEA9ե%~Jcd>Y.=c8ԜM,8FTyi騟Uy_w\Y T mIUxE)&AA1}!K"l u2 ~RDa1 +j|'0+PfPBnvIa-fXɱv~VHzT +M0m}"{d칰ӫ$W(̓ }2=El65Pmvx'ߛțT mq ݯ&a/5ʖ+JH%MxUȌkA<ٙ]p@D-ԧDysy"H5El1[1͐ P3#z$dAhP@`D lVsaxgX=mt{q0dES$Y,:(Bg=B~7OC0 j3XwUf;#"# H/D!|=@SFjc4Up;h;{=vBwS`'='&;;_ނ'do6Y9#l:vxS +bRM|Q*^ĉ{xHʥS6ўZ64@ RJ' >4!T%jhcubF ˧}G^|( _FR|(rAaoav&X4#U+ y7#.j+paOqD1 u\|8WE $#t*OUON0 J8 "q<Ǜh7w٭ :d9XVƁ{H!Y* ]6;ٞ}粊 +4.5@ڠN +CMa,@0TӇ 4eHɠ="UP@F>psffFĪH@p)v޼ +LiPGxlOGur2v6+H]pH%ȡ(+a Tqx(aO'v ZBs(Rey.TQo=c?;`˷}fnL_P*3cÅ]+34.E4<'D \t}re{33̷ϰ4DkLImfEOP@Lƻ.<$Ln0+̝ZNf, ;VPD}Il3(!E= g r QxJقpe>8+仩S|&@Q;( Hw;ۧ%g:2G0oZl+,VGc^OЄ/(y$Fte|#Jʺ)b&]x};_'wnLQ&fS_Qa9cfEeQ9U'؉!*qS3s4Ta (*?r?COUQ(^"ߨ7byj& \'sS@Ȉ5r#VU_=&3FoG&鴀jwge[zcP+`hQxXqU0:%C&oP__俚y$NjhuFa;ˢ< bYìVJkRQ5M/HqL  !kJűvYS]9ӞS5+@a'EvmVYU&aQbLXMj\+Y1ۃ14!,rdȩ[A[SuDԜ˻SRief13D%2uQФV Bj>0N Ds@kc6L;8iCi(G0ÅʍIt,CtvF-G|ѷ"Hz(ii, f)<,6N&1o=B:NAjuvz in]J+UEV[fz#+@@8J@.u`&r.nR#{(N2Xx%Sc=Um`nC{9QXypO@zcqgJ [2NI׳5Ml,3 y댸3},%L_NfHq}6X֑1gr̿A]=zf+Q4>FPFh'3@*ߘgόa缐Z+ '#Q n7d1RY^PdB̺R1}06%)4g#( +T{%YuE,*{ni^Lph(ai;ņ] CPݿ=]oe0˔畮SVdN%Jz@ǽ +C(t:[3Y^:e ;ͰC]]ሂ4ˌ/qNdˉX2'+H|"^ْ)ܝ8,<3Dkv;vLTX`ree |#H"/5~e]SIn0Yf-Ј2PQTl,NCEŘ} ,6u#l[7cpc^ʤ4Nޙ|AΑyd, fj6tW@t/ʁd~h CۂPDϼbcҧ?5Qs9#F:VCbjj(I$*7;ej VCiB0%(O +ZW!O2 lNԦYNIN$|Ts{MutV瓹Jwe]i * }whה&M$4YdΠ`'6J>Ybΰu)&tknRAoHȪp"/ml";|]"Kw|ѻ=3+:ϘI ifsWFztDl"&VipRif*J-XAB`Yklۚ)21oMc6RtQFi=0fd||c|UPI~vWÔikJUτtF5`Y!:譆tbV΄4JKx- +k3/|{Tm 0fQlr]&`{f_ce&4lcg pR1lMv@ctt`W-q9'j-O6ds.Fh7q4Y1%y  O4F )FkIQIBÝs)Xx Q$Yr(+UA:*Y55! ? o ~ +GUr  )9H:j* 'v.}G.Z:+8SJA$ : kj^FX$p6+ [l9ANPV- ҚMfVJqO{OXDN])upcptx@6w~{pU[@<0Pnn,Ҿ|7,a]L{jNFfӳ+؞9\XH(0Yyw)kܞ.YLY5qaw`dL.]H #qQ۩[eV`f0 # I eDoY]V5:qtq\b)W׍Bԧ@[-/a +lU_qPZVs?CLf9܍߹B6{pw31ɹ]&NEW ipMK7r-ٓ߶/=D>yw)%䯮"fGHM.-fJ>J{{TzWJg逰:ݞ麽Z]=~u[|??0U[_ +Vt>9.y622u xe >e˵Ѳ>`mVcg\;mkq o-苗`Ea U(E V$5[uPy)ACI%fXWesQ mk[mƙl ,J*/Z~ y l`%NCt.+(z[^`k_DV|F,@% GjӌcF$5PHz"VذB\tm tmhj=s4?zye;ɘ|kpi˦]o˪%tA8m?GgἮL f5OJ@543IcL 5/^ף(FD"|zY +483.V+Z+=1_T_ə75Ҍ> ЏsUGBUJ:lmk2 0Z<8PXQptG֎Z jӒF6WuUyV%;;lՓ X*oȞ'JiC z-\4K'7b0^eŞP :X*wz34鐷F]Y7w5qfPh{'Ud18JV5+mՓKS)A̸\*U M+ĕ `<:E\Zul>DRɡ~%_8A٭LM`/xH ,HrAπ(hM])oL_ MK BTbf+/We+5y!2Ѿ #zXbP/<Өl ?f1Su:( x efg~\':M|m`İMכl]m7+նj!jƳY}3k&W:/\Ȳ[mk~d͙{f;_;%7L[Ve]S= L ]lE=ԴMvkQ4YW`o ~Ci`׌W?b"I0[.ڐD&H<go^ypGLNSYJc< @|G4X,vyoqN0BYLIB,#)C蛯3[Y˦ئGsmE1EQ9+i:A,G%C JCsTZ`rv0=93#5:R=nܹbq +M$thݵr_[VR#NWv~7[ZEN(P܄)ńN-2&U8&0Y.{jp AWERe+YToBI SCM*'?o,y~(N-C +4}zA-Ө ,m_&%6,ęC/%4>\xx/nb%_ 5~E ece%y/ 7X^~Խ!حxxbp CSWW"o5ׄ3~WH_=ǡ$wSRb1__/1}35| +Ĝr9:wc~a\и Vd=<Ţʎ>Jyַٔ?kiiŞөKd?:-[Bp jI`U-< +yWmmj`~l+-_d-[ +ON |yCg SUD_o&\6׻onov{F#j/Ps`SӃRI;?ǖ c^/j>L)U5@պ^%7_yn_._{garۺ:2,>:`[nryg׸vֳuLFI⬮aYs+e狼[%Ǔ|b F:^ǟCdѧKq'˜^e ͟LmU2I-T}BYԍC-$L_:'r^2b7i,`T*%D-pUTwp0F/ +i'[f$2`w\قCycK[iLO79iu_8E$oCP]:ӡUJM[ԊE]u0!Zum`>(?e_)2Ho +cmY/U9%ӔphsF Q&K:u$Sx2oyIK,EpZ[Џ1Π?l +oGA;=~;莋,pp/}/晅xǴǼ?ZՀo'ρ]";gz=l[831 53A9G:m7 mR}hjk64VxEYK:xe(4us? ~Wb׌=6b.={O'e~܏X4ˋ2봠ީO̢.OAS1?бk +P~awȿRlRvak'/aܔON-%A0&Ӹ$w(9aes7Aio4 Eo7 KuyyO#-&Nv__d;OD_6߰C6FFH3zjm,x짬W};=(w:a@~P;/ry\ $}gJwt q!{ 5M]Kv ~Hh-_h5,%nbZ 0w5q1)WſoaL|jJ?| ƍ5 +$A%hS j8NA-`R.1&2.F`r~7y+ܻLcSuiF5>8J]]ja*e_0!H?2?Y!3iP\+KK)`ZjkKY/'&7wl%F1oNٷ BxC;pŻT #Wi# d\p-_2D68|TIMlAӼb +*#wwɗ~;hLT4ͨP0jvq1Jq$ș /" ƍ}oߋ/j)Ƽ˖rnym3 dS _*Y.?uΖ$u[}ҧEfF;fTU,,]|DK kkә8ዲHΉS)+]e3) w^^-S7@FJHR(Ԧ>/i>_fUj; o00>D Y*W$*?u징3< +7 泞lB^sW>vjy˿b%%WY;ssSÈ+ 3RMP*֔&kйn\Z5朝LX#I^ޖQ(І+86&y ~:_x\:4ށ/mx.oٚfSKg@$C︃?^G,* $-f@%|`R4BEȕ0ъVpySz@j8ӭyOOV> ϟf +RvN Z͏MJ_Wά:! s.S8 =tH2}nHiSOw$TC_6HWҤ A|ӉZi4"`&Ǟs,&;fk`F=Da}6^Mi;|&c]^y^PƬ͂:AMF>Y&r0[o¦BpqE_i4B7ٓ;ν%#=)MDfŝkMsx/|w;.>LzXkw۫'ek68PP%YRY]sGMdD'3t>r+9D\JWW[QV{L_FSF*o6,=0|#O0Fct#^!HURwR<]޴ƗMO. +/Y.sn{AkQTLOrKy4*qUϿ'_a4CiwR13q,q'* J/ 0`Sb2 uZrD܋G%.q[*.\|"Vv[11ufJÖ'DɅ szw +T^[ +eN-\p2ۉ.rHupi{rk + +'yp. &ګGY 8$k }0gi)6=a,qON6o mIt];@_A?F[o +Gw@$J>ʻ-n`Uab|Ҭ=D_O /[,.,A+88;;\Z53#ڜ@Q B[V? ~L4MV\E@ O=ְN 6gmߩR|cބhFx!H ; {yygң~'wbɅc4kVIˢ{%v%Y\p4jr @xz;6ioY6[Q =k/DJlۖߑx޾=q'}Ł KWhÈRw*4Ƣ(@HA^ &=7)(Lcfb䲴Ǭ2Ne2$KEΣVOZ/Ts}ۻhgˊ-su+?0[Dj6ޚܲ(ʀ#]ϐ|QOMꂩx8td{5Z^\,$h{dw~5MfVylÞf&4M&)-xJ ^\Mihe+9Bg|ڴhqhvwr%`@=ǘ1* TESjţiáB'ݣ + Q +OV|*!w8ūuBN> H6Nq i}o+T[rI÷\hȥ}3~R/v5AVqs'kY/kc$j1'"i4*\e7KTe\Z̟/a2*ԓ8L@%FUyٙ,p{nk.j?teL=@yw뱄/K)o@oӭ)zdJlYWk6P#wVW={+K3y$:b\+ooWD 5Ws`abT$q;kGK#{NzaC?\-ς}\uUBp?,5چ-:WTE̒(jcJ91A4>bsNYY0'W‡nӑCdNl;9r1TnLGcǁηBd GE %p``Ta`u;45K {uSuAYW^]ϻҊ"&<"/윮mŮ,}MФ@E\O\Bs/}PbՊ.M$cn 7 +.wImjƃPMCc1mBfǫ_Li+bDG} 6ј?=r%O.νpp/~gC&Vάq{!VƵ[cͰV^aXsWaWP&o6#L,f1(>J>{ \bwoOGt$360ڂMx5D'W=C ; UC +tY !}o >IR)"9-u6W}Z&szN <V1Co|Kl/A~q=k8v'N +6M_GU) 1^=;=$wHd4S{Rr@ +ⷂ6֑,Ġ8XݔF)wLpc]RJJ3jESOoJVs &7r/G5@gYSԋ r+"螃mgqeEwt銛fyLҖ{. [|A/{hG Weo\eСԵC~e5}ڥ7:J5FGwGV$Rcqa6q2cU vx&Ȝ{שχ +1oϛ(^Ur݈ AVp)G̓=9FVҢؒRozz9R]$.#42ޅJ{'JxX&j7_oYv {{޻ob7E(B +)"$e*SL)̬ڲ\rʻixcpmYal0p`q 9gfiΙsƘϙX +-R{~v=t4U} | m~ .%s_/h! b#7lGGBB <_FUϟ'N(vAT8z:_Xmw-۪Po'6`og aSrdo)ѧΗMc%9=}'/FNּ;xQ16 U`u}]n8~WM@syJntS4ʄ]YѹebXaV|;sEx`0Kn}ܲp,jahZ +^ol<}&֞ErR_pX3\ڴ4YSGќ +t9Yt+ Qy͉\9Ku5,b4~%ŢɩfA9^+4]MhX`T@cQHb1ZYfQiA=jU*U3>_R5CYոZ,~Bw#HTIfqrH=]w밒C{:cu*'s[iu7b+sۍȖI +bw5AfCSEZ)#-QAZ\}Y^er|6`,[MDs;M϶/_U\)pHq35h_Ȏ=EU?Y{͂=?h)ߜȮ\̚wU##X2%K1`Pv.gz~^ +켧[ZVBQ#1%P[yL2dl5^rB+Uou! E hP\4CݺuwwtHx?X;;_Ԝ,xs\,=Xv5cgT/+ؽ GE*ss -L]N@P-7mN̗ibP'2M7{mNb#T/i2+)D2A~voI/d/̧2(4kKR#|OKp~ /In<{̎4o8Y ZqЧ[YG`CfkE(iCD0Xi k*5Mc/jTti6 Q~_@ ]n8ZIteN4"_'1p)pre66X$4gI{j⇘E,97 ! jQ (0uqJTg3aDꇞEl'[y{g^ 0,ϫ.| ӟHeȰըiX26yN<>a'bs 5`C/i1s(ًt A+i* Lv-aVӠM')aTS?aWa{΁PSJb3lkK.4\bV˛KTKdiN pI[Sި"%ͥb dQ ]Ko*B{w_EB8fhSZ80@@ ɻb43|Y)7׿IPAMﻕ!mo@pKi<[ur2X;pM].;UMNEt 3! r9*$h/uvL.P%/YQ +&elL +wQgZ~@'#ޅ"aEܴ Uf^eK"UsryUcxpv_{Z'l(WOE".B֊;KȌq.+IfS?GLӲmjwvv~d= dqZj6["?U)Ӭ_Y)ed ˱ֱ[Фg;Q1MC1 hTqTu1󚨅Q3uE0>glHܿq֑+&cs\MV nPYY3H|e+a%iCHjmKrEl'O]]Ǣ8Ȣf2m?IIe-9hlʞ˕s}@A`k "6jۦZ* |{,=*2N랡J$ٿTHp--aG6ߍ֔H!-@ #[_QEV)w\HUmWjױ=dm>V%$N\̽L@NG6T|i\p`x2ѕy]64N6Ϳ1o7s޵eyAhi R}AtNăBP`uiMx\B>=IqxyEF^{nO@>΁t4MӦ?Ys Z~Oz;_ Z|X2|Di vA$]Kgro'v(I=:;{.L]B4"0O߻VϷV2}CI^hE*?/'LTfP7hAfV+zo%+p [z g|ݙv^~jg%fgsksoƠ׋o'q6AK,|™M8j_0~mzhQ5\U3Z:6dovNW~8bEoTlU/P榋e%ЍI ,Gs"OcJY.r{1Ia4Elgw;HZ7{x/^Ϸi0_&M3ꑗ;ȪnI+I[pvѹo~%u_ڊ^7=bA/aqpߎ:SD9|ݡ艜EJ˞CIM^˖|) mP^VuWWwk+v$U9jugؤEsLĶ?"M#"[sn/nXE]uB=-A?!&'fzo'yx25]Q}Ku~N w]R6G%+MROڔvAuh}U<Ʈ[׏y!$Oda^v°LaIH@9dc80lfݲq%^cfEGʍW}~€`$Ȱ/o,*kS5 6`֗9z8`3V1phFw0_IcqV€(j`1_>сx'+ |walUiw/{+uvkj좕 ˽y hd62s{UszX:)e ahn*לiHDC;R7Qن۵4!ޭWM3gvxik&O +!ܰtࢯma%fJ\7tƍ;bBS7ivL*)K{ʰTP3Ue"xy2o(H>cX*dž$Ѕ1QuK}j^x}Oc7 QrepllUNĺ `} U-O\pG"Ɗ9;&@5ا>O3k׸4z< ~^]Ǥwn.kW_&7?{Їox (zY=v`YO8y:>d>q71NZ#{hҬ.vtlFhC;Bn=Zۺ% Y5Yf2l=q%p)0WQ5 S+%yK@+ߵs'-qG nG.)LC dyMme=ݒYa,׳=M k6ѩv*`ZFwo~$)q!M%=/xatҥ͛d"M{ t,3OX'5dt$hUM-LMzÇ8Jr_{[!|P1p6U_."o]y~SpTR´wK/EWd|rۦ:qp̘2R|D/VoJ\\p \\biUI綅RF*+sk{;?~xPv֢n~{U` JEwfaV0b,;.UMN E?x[BoXZϒv ۑK.[GZHY_TkRwNd.l4IorZ0?#,7c:\ե {X y2e 32f[WhݠF7s+V$,t-nQ쨦09;,`Te IN4iiO:k|{Q)]vo4ʶYd1`5ő-̆ ;!chV*Z~Md#][,-΍dc|}]FiqxqД̪޾PC+Vլz}44"[ݵ&qjuAzODiNtsVrVvLj˹2m(\G&༮f&cm5yJuUn!n*(ΰ"Zm0;]ё05Vͬeˑc8 +>UlZ~OCc'ftCArהFiz  Kگ!7, z>q*k8>,SB9«#d~Rrh_WWrΆMgC:KDHïLV `9lL +Z!^>wo3*P;=؅=/7߀⽩/e:Z_ܮDC*Cu[ۄ$KL~;[E=^S ֚dE!!i c"Вʈ4VPTYԤTUU~Vkv1TKg bF{]w3@OalHoD")#3l,׭7Љb{14H%BK+#zt"^^jUǷUT*$!!eGF\9˵;um[ whIg +jU *$) +]4-0[UZm~R^@]@asC,EL$RQӨ ,="}hrU| y:e.C |QEehқg_ǍuXzd 08Ǣ{HGC(c`fjlsZ7F0 %pydدE U=}U__/C 2q"v?:/wX%k}|磢CFO{7^jLHYV0 +5SSjmvL۰ݞm{6_Y`R۱-c(9_\- +(92 UnV6DVy4u}.̿O'G՛6D`5dүCȪ=pwap4p*.7F>YH'_ILbz+"U0´ҸUqGzZ+`jVR[!jͼmQ7ޘ.X\Y7[07ghz9P8j[lmɠ)ݶa=m5QMDB+~#~kvȚ.xПң֎ /DA-x%uE`j%9:z q6>#7S^fW} +GgSo"*J傜m 66'Ά8pVkV`bG&εg}@y30U$i=j'mHIo^+:W]}w{vv.V'GS/I{g SJqvBX]"x..gJę0lO]ƈ`ytp+5'I|pPDE Q4Poivb` 35s>Υ(S2v=I︡"𝲑ծ5cI>3̤vaAEYC-^y+ wy%ZDZpZ+*iFTMXži27g: &/〙byd+FF;#:r}uV_3d¹M]O{(_F_G4.ZxK{Fl\bcdcM +" zcFٚUfDQA7FJ q}9ys +ip_` )v#Й-7d /UnӲ̸$7-R6=v`UBHƖ"*߀7E}ܓ;15axidXßá(ǵ?/b0 nMx=je{&yjǴLuts vgt4~m(aUU,Bz:ܰų-cÃMo]᧟3os]g@^֛mV8-ސOcפCOWLg bq3 Ε+XC.,uih_өIRV%y)fV&(@O,gϾz|\*2}ܪI`Љb;ܳŸ+:68|Mq;crdwd:PܪR&!yz2"-軒dȳϩ[3mDA6ROXtDXr/iջA؁ =v#UCiN.,IݴG@^Zֻr;thTcx1hFtI,pb_3q\.tZ5XuW_|PIUgN72 L:r7)g}]+h9+m%Z _i°mъOOz^t6Iq\tC~ _F%5N3} +J.r)#ZT ` &]uO PjkkDXm|RyBq1ǟ$ͼTdIm~1J|r1qdnN<Ko>Xߌ`e\C:&˗.l),K袇X}@#zK82fjJ R/~P_!SD1<v:&ٺ~YrMAʍ]^QYC8-b*tUj% /"(>ݐw)'ZCcۗ=i?%ryjY?Yp39,:1N?9uG2_-Ԭ!r"eĖ.\`1Hu̱օ-m*<#8h)|U@,P/ \^КWa LK|_`?<ikĒeqԬne{-z^ ;-bͲF"i=͐,(pvI뷅vز"9vmx혖 k3KL*: њ{ѝ ș#C V ']0yћ[|hzD}>ɥٷ + q1g KC=f %eG~:PΌG1`hj<ZUd4vDse%"׳H +ZWJ7>} 7M8=$AlY[[{̐0cb;^`s@!F M.LkÕJRadžEBkF;^'I=02r]CT%7|8dEѷCRܺ%]|;~_-&p<_>TgD񒽔O'c&f-'ɬoߗ|VJJ#W3+v)C5y찂&G&̌K"ݾ` E:4Ps4? jyah]6p5Xֶ$ZVy/TCFeKǸE^[)yCL#{yR]nU[[g2&Go=+R9mяy)~1/{ZY|d cMr(9A-߱Txf*hrƄW^E&PP8e|w`XeIa;.9r>ģnXR$LfRzCTetnۘd@y>u2Eo*~UWC"F9(Ȱg u_&[Y֢^);e0@ it$ɷGAL5|Ii6;d UMN*ZV=rjJ&i,%+rșbVN|Ŵ ;7[dƛ5%SVgcitklU-QGj8K;8>b`tjv C+dٶȎ=ۤRHjFu[ 4gbC+no2uθNXouΞtpU)+x,~Haܱ:޶5[P3O0hP1ٌ8>*3`7HY`Ư~ =)W*bgd2Mm9,$q&9[y62ekL6jUBnTg +_:`{_9<,dIٲ +V+x4=ѹ[>Rc򘣇)={НQhT+nIđgjM0omj0Yӻk=&O{QW 5=nձVmBp+gʙc4ai OHI:#kT(0,vke⺓N12; Jy y$)g||@f + 3kR*]bi'919g˲ҽЏu64L15 wagH^' N]- $;#D9'"Nz3of޼]eyoLwUjFBju#Zj$4 CK"@0~}}fwE 0,='7of̦TUYYY|K#)#?ȋ/L1*7*憎M0͞d'Bq U}o0{Q6,w2#)*6OvնD}1e5Mv4KU|(`HY IF5%5 JDS$2bHH:: CĀ)ũդNNonG,j:@h HºPvHAaa*)T0l +L|gt@3dU̇^*D2)>.٧,ȢIANJK~||~کkέw\:rҒO03l{8<ިnApYRo#p\Z91Qms,gM]&KC$y QϗO[,h$j#0" +m Rlj܋N1R$3f;#aGKIY-oHvo(=GJϝ~)sͫ<~ryU!ui}#lY}Aܞ2#P)",WFNEteUjz&U#X"#T*(c8+ C1Ei c +llD?݉5cUE$uOE ?,g4EKN0t4*QU#pc$?1UqA EDF#^n!ۙNж&j;A.m_5T"e`IX +_ͦAXMhVt\LIu^lزIUN5}Z IWP.bØKKv4M]0 vIwZI| +c6WEgr64U?w;]K FLx^.OO,8~ Ěha"ln#U~*娐^AOԬг{D-0lPlکtNp?0 +36JnWrm+= H(Ga}:gKxe 5~[ l"R \|O9#W$&H[2y=C2DݭqZY,JJT,NGꭝTR'ݘK: +>o8 Rm18}v 9(£ <(<"4SV˺ e{v&a])+Cbl%*{1]$YQNo~JNJg7[*ʟNѰ[rE bXHL;@/X}ؽ󭒚 mE[Igٿs;5kԿ,\!'X|ΜB +9٭Jai dL`Խ٣*4hpBѶUX*)o0?"^Ļ;DtF4x׉Z|89pylZy7\0LK7FsɢP6sǨ'>$#r{í|ȜpgRa]\<|-=7=˘A ۲An}d…$/`O>gɨ;^+w"Z%߷DY"k檽rcTfvFN /C`/!١$8]gP 4jpNT#g9y|?Xk 'GT1Ca'JlwKTIuU =Yv﹎`}Or *Xhlk\~6E:>ZH!rFR[>m,R@ &唄Ⅵ 2Wz +7;|WO;_,ׄ++tDy:F``D}!;sCsfKM"a_Hr. N'y8cwaF«)$?۶K?Ojjh&/ĘOuH늢ab)`DSӃ+3T +NtY]S£ oZxv1[^x•+|'?3Ka. Om.Rkǎ]߼ߓJssܚ*^uӃJY0 %ƐIY5I6aAaO!)0e5A:Ce` GTf?H!Ӧ&P#ޭt٠0TV9_e˷0uEC {M]9wKj_b>+l's9$u]ِ=5 k'*禧?~'El5py.NրeFE]m8z,s v +O dsGW8e1J[޴;E}]m"3f0?bqfc7J",'ە?nc?g<4OF7eP h~O08o"Eρ0j'p +F{&pP;u23[ rU'_rVr&_}NHLl4Ns"ݞqiO* +ydg6fjT Ja_:*k8dY#-bY544isg~{h$WH.ac(.<ȧdo^|ZbSצ/^tG13ZBgΨs+^

hssm-4;p]:los K8 *1RԇJX]yx%azV`h 5`XS1=dA >ddo +™=xiڱ5H{^]wg(Bws+M5lݨ^輌15滈#"]m~K,L-}/v橶rt@$8[DB+X#Ϊhh2gXYaI5]&%ӒH6 ؖJ$_󛂒Npb1H.$çnY/y8q)ZoLB<S5R,FtS'@2%dntt'LY=~%^`T5;yI_GvMO*%].<{"F<6 -o-bKM.:M-+Η.5@~\ABPɬU dH?I/lPoF;w 8?߻ S>hcӴ +mKdA0 g-vaVZX5{9/Dn8  +И}?Өilr v0=?;՘p:bEaɜNr g'DڸYdnnֲ~gNy$[b18Nۛw",E,0[r*]YڈA^kslnh3}Wʣ-}Ia 8`9ɠcww`\Րh ##& x3*!',č,D$+iDɂ.MٲgE +?j) \GJ3"~![.l;,-غ볅0(>@00 Txc0DK:-;\Z\cYЃ~7?G܎xDᜟ""fHC 'oLMMy!=fB`K2sj7:ܘrp>*!yEjʹOhٮ0Լ\-$U[:HpF֝]8}~X ã.yn_;r@aΨ,H,xC5]-hnS,juɠ&b(:MK*3/j-Og6zh8cEj dq>,P٧@R7UFDTؑaaA"Tl%fdY|Y\GYiW[܊ݵyfdbw,Xz f2I-p~=L,1I+lk뇨R>!mvB/~ѲEjȨ *u2 +n)tFaA29CfUp99㖜R"#J(fԜoK%("*N? ~m?3=yS675(3Omǰi]adGa{<Lm#T}3Oc' b7b5uX7AFvX4_t]Ƶ`hU״DCm8YW$uY>LP@}ND]yoV<(WŒ-dPU&!U(*!f9H!l,K싥}ރؑq6mNvucMzf/? ?LD+)U'#뿧,<0 (ҧ3+x!)t䜘qd,;SJ1~6ՉǬeLx

ͷ],, +_ PpP~6[-{\Ov.N#6W25)`q46E%F,yѬ 0PjQ5w&1YI:H"T1PC5P ` ,-\|}ψTYDOxM/I?[gaPuGt' {㔘@GQɚn .9){7n ^QFw=deoQ1_rm{Ϝ9v56_YĈa:D94ȬM|dS ^g=tEhYŨs` x`XJ:e'0cOJG|E<웾Ϋ0pC{_`ǃS4j5b) PpAXct M K4Zu|b]y,4,{H؀X^UN3ET + ejH]D̝:q+:vKZ$dN" Lq,9A Qq?4-;H%'9=0?˓a9rK+}4tiDj MƗA877ecC9PQՓ%r6+q<4xjKO'uС:jם@Rl7{eG+~*^-zNY.š%Yat ]Tг\&,"2ĖG.R[T 邮VYd㙊Yj/8H*كh7, مB*v7u6Taz"Lj{GC2q[3O DVEdouG}iI +Ut4M2\[|zYjT +ܸgF`܋en{tcٲ&3wǙNz1432 Ueqf.2PMΪpe-G'PH Ƿ۪#5 ,B^:0F =0{ Nmo2}a>huS臟g>~.)>23ð(6UH=DW-р7IMv-vOH9`~\fiO&6$Ǘv #]^lx#E*v^k +Z# +v_+I>_lS5j#ʉ.VV7°u6߆}zmmHYdPVc8?q%C>tGL1//2L2ݝq$V;j -M+0qYیGw,nL-!G{NռþNvkId# ~C?H4!uH)KH.2yj~qQ4?u=l0<ևcd+Rm6gO.g@>rZfkaZG촜Jt#q[Sv>'s 8Buȅ- +,$P37~x֕%\6В,~ҙ\ֱlmѪ6@8Kȶ%Y +oAՅ#_%l1PN4ij˛ͧhnk{CiūL;ӽ㗼h69u hK\NۚN5@ *Zq%{:3Oaj,dJitTS0JW in Cp(ah+<")*+U_]NZވ}KȇLT}yd9U|?2?^H_Md(X~ψf,nS yCSJ 9M3j馪vzpj#|Y85 ^ ~-N%¯-H ^6e#?6ΔS=Ӳ^JV u ɭ%Kn%gId:SǓz) Gܥ ]C1:\GF|K!sj uW} +J$:Z%(Ç2GK޻(z&̠Ȳ8?__3D$Ip: +da'3Vh7Ҷ(ZFMd-3&Yi.c&&V̀/ѫ./*ӨxS}Lg@ʉQ@qGf34Щ:!$C#%=/nŚm`\Tcz^eӓ@I-fjLܷP۰8N/u@^~&F,adVKL[nj*gSiGyMPB,9@v`PS^~KVCy1lhG#%{3 QpntJ ~E|\f0uPa,&?tN"qd=yy".Ϟ:[lJD)̲[bĹC &?ao'\!ޑUk7ښk7 \:5]- Su{`o9{:%b _F@f\hY z\;و}zֹz,ߣ +Wx?zI +igfNhnf6]Wsus9۶Folߥ5? 5'iOэLQ0kâp9_PDS_Vfp7KJ>B> TƦV[h ._b?Կ[L %akpȩsMӋ:59Nj1g,Q֎I]֊]sy;@j;}|:c &R@5lh14FY$P -;" IņKy BGDWURdPSS@9 +rIX$ 2ٸd<͆OUuט?"\ ׶^|Y9y}Jc+Cb/&DӜVe-=Qy8\3j^ܡULլ p4;!50;~WN0\<Μy+;ʇy>w4Ӗ 4p%wrn9pO{ X'*դn+ƒ|RXغljqY^\?|xkx{N|LkzXfq7t? R'2:"##i#gGa'`>Ld߽/ITrtXU5فTޭi9swR*L6y.q>1fW#uTlj;oZ@6D4 >2dޜs=CK ]ׁ* +f6 ʍ8{ʕ"Z[P +0{'N9ɝw\VGkbW 9vJKDh>n&m·>v#¯ _)OǷN‡N#~:~Pz+_ʫJ_~%Woݒ/IʯH^Hb+uj_Wץ7 +dz|w\4w쏇:=Z8`.r渄cNvҰ6m/gΏΝTEso7i`NT[.T]V>upr< Eym ;"]9!)0KX& +GWϬOٷ*;wp4 ,RU9Zd' X И+-11`*oC+|ns5[7-CƟ3Ǽ>Z,Bpx=3 +cE!zd|ݲk3V Ov/悠?H?cO+ES4Eٮhh +iy%v|>B'\QD*$7,AmJoz +q\dޤҕ1-ձ^y-̩)5]Wx N/-xZN%dVJtez?ߣQ*I8&+$1el, IE9) g~ٶ_aHus"S7 @5ܯ6 s>FoLX$y_/3v:m t KgǁgnwBmLjvL^_p6w؟u"K3̐'/GɯיCK~Dc>kyGWg%QkcpڲR]uzPcS8Nstn<ޏcG&+{/iIog>+e_#m^Y Uvci}1AG?dl ٤c`{!O>o+Z~*,tP|R>I~y5jп@/B뷺)YglU}NT.S &1Z-t ~W< y?o'Yb'mɟҿ M%BYufCig*YTp&;X6ZฺNn޽KN߸A*+o[Y[#LH wHdzGk]aytp|6 u38$][_L{b_sU> +,F>evnD)`]{nŐf *ebn»-ZdǪƾyejA*i |1 [SX,DՙD2SbK|1n̼ k@O3?Fc +]&c3:hj踀Q F7aBٸ;7Gtń% 3'c\(b*`G28pE#QV *.Ern00,dkvvzXWMVȈ\G߻Xngh^gGmu˜A:_}*{R ̙k(d|3v ;o# ,k75H,ោי>n{y&.j'rhѣjn% zqv(LJw `v:EXF.3FoFP ׋:YZORb;&r5Q`aYSv֦S]OՔe iȯrt*E7;9h,Pagpw+ͩ#uH \WCH6Y#6(3BAxHJWvI p+mQhڊ0j`R׭ڿS-oR8X|rI5"YhqYٚիZr e$mx6Rӫtݷ)I,{ Τ)QX2_MȀrU0z7ANd1 3?v*6+>F}1BӮI>nѢ2V]Y='!^q~~D%\oˇjɓϰU !st+;uulvs;5܄lwh6pԳ(-ɤ?aY/5Emb -| XڇR(R:]ܶﲯ˻f[|fE܂m. ͻ2 '(~5o&XU? ')],+ļ$#[V֥w3G e&H;vdsy/!W4%{PmFǧ#Lc,XdoG";5\5|PlIPӒܶB.#n{.:-΄Ujhݾȁ-4`3-!X0fYi1kS; Wmo&e U#a_!9.P.&aI? +x\\*ήfVzQtJz3t{6hGpP^~+>޵g'^wT};H?$tkGNWtِ@د_t 1qT]9*RJy/bآI4ۗ\0\^IG%ހy!Vcz O\\9]<_Ƨϝ:g6֏;f殪MZ} #;>+|wMhHd;v8# qF=nߡ4"eQj2dl8/r2 ʋL2`ύ.Exܹ[GG,#ݮ.A d 5G!_̸AYĊO̲m +|3D"&4WR/Kgij]:lr|Ipn_ {ayMOsڡTkjRsml=Ϥ"Ii=sI|y*.2 #4YZ-fKU[k(q"cy2)6 xL5HaXcVa`ΑpI +2AYd+6o0?FOi>]@7X\n%{߄/9;GvȁXg^O~9at + }#<6 Go+mY0]m 7Bvs|\q` +DD?gW/DCeK̀q\:H&&VI*NC %Cn1fvڌ#96N3 Y=cKKVNKaQeQ$2Dm{r~6FQ<<##kV˥nښb =C"Na,^& 183q=tٴח,omkKKnۓ;767NpoQ`’'z58QÌؙȨ>ǙOBT-f][6 x ON]#"iْ¹d۵j +-Sƿ>ք^ICN]#{[a=Q#,5A I߱cpHO1pR荳 Θ_HC=tට'syU|36Vҫ:fP[ºm,Z7~6rq$9SLEm-9BY4tN 2>( +>CQ4T5d.\a^Z-h V\FE7*3Tj#O3|Ef6&{ xŷHS˘::fؑf(bbyYi +RqNSCƭ/Vgg_:NgOlR +00|[O&$IYvYѳOW*K9-=P\r:%!oHwi졥;rɸV[1me$˨I2-G&IzWnb{,WG8-<õvUogfS7E8u {) :ƆK8)ܳj882%F |DfnVM"fyM_pe!Fx `ܹ؞B=CeD8|:-nUʠL.򋶮* e0]J QHKK%LE +5dM%W2dm &@:|M8[eO3;63}A.)fb=sO v1?CaqF+byƕΛC}[&LIcUKkE %ޛ#z=%Y(C)ܓEּT?L"8jKy[m6eWR8CMߡ~e3;<߰@x:]qNZZ)`'aMTxGX:jGKĽ.Jǭca\݀h+!J▁> tX$nη ,;gxJL'vܦJfmWʁOZY4%h^LiP J z+5leq#5ۆ je+jd5=G='&}w꽞p^/&L9}Q L*k/`l&b8 +]üEl*\~MSxD(U;|L{"ذ7b{E?^Y=ޭ@ODUtK8UCaVIƢѳ0$8 +1?ay] kH%owX3Xm2c.g6J9H*˞.@1P=ܿ)"]E5h]^%9=Nen)[CDy?(5 ղTalF#JWLLs+KG6(j [,(a!~&؜`̚l,KȻsL.a8٬\ +zKS);NDj靱fCKX4[ yBL>JJN܊fhYLUʵ*ѿaDf";hzMp| VuCS g@POXL~-d>A/1CI^I(HaZ'nrʨtuwuBgT#c'sKChS4MîjJrH o ;Mf[J,ӀL;g8>/LkR{cg8gY |]cLԍ +&T5pnY7f2zR^dWQ~j.i{7;瑨ӀR Lu-"-|e wFyd99iϹȀM-k,0=IK/ꪕ x,QhF~UkpL dYkr(rŋSS' |nĔA, &>rCQ۱2ݞ }F  +A =>%mn'h3u,؂UcH[?ښn81/Q>ghg(ڳg^ޥpkc2!U8Ǩ`RVav\(,sRFQ?xȃc_v5Wݔ⦦svIOuGQ?YTᵳtS!DY"K},R3 e=al)+V2j8omǷuz1@*~st%F]OMN"%88MigM 3 0eϬvhay7 kVQ̴ahԣii( + z +hʪ2EXfc,JfKG.|鞓pD2;p04S }6DY ++'!i#^c~gJ4+@a&̙S+s>|B]bӫ4ެnIaMo0 哆|f Vk섍++Wf,"įTu3R2T[8]nx( IG;Lnev||Bظ~}: SP/Ϩ2 JLWcץb#*y'6u]bK?9PӖjROgw.S +}^*L_UkKJ3k\ehuKJTe\v8:Z %DŽ ȡ[*b<{Ǐ+IߣʣX&k^hw"m2Pe?r+3Gp=u溗Uu^9X0ʫOCK7o=X=#bbQbB nrb*(Li +RΎ%:. (Z4>e|3 4X`gmlskZ_Hv_TEY~* D^\,?N^= 2X +?〛9^^[YY9.h/*tXqkՐ*D*Z͔W >u_I0@^?<ʲqw}o}}r***IU*J*rIdI^mH1m4^ЀM=3`ff?n̰43̜|qߒeLJUUV֍/ޚjwQ6h㳄N{Q%{fibRq3wl8 AWϘ>W)mJC" ||pŒNOmTCF!!oI*43L4lwg}n`(pX!jeep6reѽCi/nsIԿc^,;(z +5c^SbMvFН4W'gč;{k5r3 rXm.3KB䬣n552Mr$)\waq6+vt9yCfI{)Adt2Bf#8bje q12Ԉlb +`ڟwIʱdx+/aoKSK nf˓b˝Џ.]ܟ?87VW,/rø\:#O펻J!@GFI p!o Z MT: ?_)oG,4f,<. SebRhfx"4`S(*@ +񤐌;}'<8,GoGv&B=?o﵂sg հ hep6>\6[m̦ SSvXk9ͦes&zI Qܷڎm'n'uZ8e'lA{[H{vz5̟Z+pfW x53]YeL58Ɵak61W"3L+˄z,"=M.nP-E XU~o=, -5Ow$'=.g] kiTQ α $#rh~STA~D9Q!wݻo$\faVTfXYffu.Fy1a%8+KCȼHނ63Ǝ`^-;|M8@\kP2"S4=q~j5$ɪ^/\tčŚn+xZg} ѳ"u zHbTuՔգg[-&BVF{*=g][K]m,W#玅J8.LzlVa(XVG\/Kdy.q 3_?LQdvֱI"!D͢iؓN2>7<8j]rI"jzelT\Fݑ7irU>deݗ \c(s{3˼2GP + v("o: ihcQEL]5婲 +D#nz6v}-Bu&]nU%=#]ѝQ;׮Mi8.Jov"qv67?дV9UD >{"f&(O vfǢZ>Jc#eξ( +ޢ,YJ-"U*e2)x~x&'LjΪjo#Tu6/Ny2h3yH~|QW%⢐wsH Ok#L>pCAk,ye<~m2+˲CWr[p~\QRCf9{mVz=/a(4<NMM b3_UI{SB.mNE.ٶ.WkEa UiwMޡWkzϼK/)=@^T^| >ŵkfIX"tnSF`v^;NRٟ1@WÁ^73 WdS9BcA(cSmD rUp rt4 huGqlQ+k({Zי`C>Np6]7Nn)p;3chUZ<'#5-#Pn_&aX!xܠ\ͷ/s+eP "tSzzg^gmkkjˍ8g7Vѷv uή>Ҩa\kN-5)&>D|Ĩ\6 S`e P(Fc`5Q!妠!BKv!_+~ ưBoГ-f\cniiZ*;ӝF7>EhHbe:iUh$QdZ2gE7h,/ հb!q57(x gqdZR.%zfZ~^N]Vv&1;^2VV%SӌIg2d%4DYT-:l*2͏HzO&b9Ne +DŞ%lԶ=""`wS?rR "ѹК,,h.heiJ>ڧVKj"n#.9!!+TAч~&! 8RR"E-' +Eʹ!n} VHhtU!a3't=Ms]:S)eiD +kgsK.4'fƮ^M~Vq Խn*߭l9Ѱ=kp/&XxĚDj[#tf(9 qpVBE.jQQ7@hN$<|ӱG¹C(wHmWiEG*X ;:+%Kg.饥y[yliMM,=aZvxB[:iht#98c|z7n!QznGd?.7ƯZ9b^Vˆ #fZ:Abr`e~>'{&}Ua2 +UC4BbRdGmأ%qsqZWr.,/ :LEWR/k>VgPbtGIZIPeg8 ,G2@8E>Ư^䵝A2艥f}doNM'hqlk s[{>\.QF`6H[i{Q7Zu9*!R3+MKՓ`qq_iݴԜ00QIJ bTϣPgɊuM /Iԓ}̆Y:8ÖxrCP&r {)ܙeƽwsߣ-pm]8suꊄBQّa\@&JnR߃VpzӥQKR+V,-Q-qʹG^"kjJJ9['U샗.A y ]B#k4(hݛԍz*[xuOܵggb,P%U?2ـq^Ol|1|T>_m ۯTJ ɮo.!iWb/k4ҩoIWwgd$Y^XZhvvN1!v0{D{.x=vMUu?#Y]jh Ӧv2O?QqT?(,r(ј>K#MU)lm. ,U^ZuDUA@N dV(I1 +{e''kkIb x"kwĽxҷ,n|CAx6AG.2]OLep+؊i9O4^!U".MJ-TvW,0NFk92Ԗr2^Z\Xٹr6 W3 84F |ryp[ 6^ +_1bbl׸w5}KΕLAp{_pI H<)Q "DDVNTlSsr谖模.XxXyÈLܮcr'H`(N L?Io炀10)w/Ы@BOR㱾-.w;=O&1Ӿ ^#)]n(@.lew$v]nooߞk4m~"m2uohE䓆 + .wj0gZAIJDV-.2,gQGSOl_ 2\5\}5#k2ccg(AÏ9*FEՊL1l9&؅'C}^SSI?\JeM.z箝x1{kݳgw6޽DÛ0xw5BAvMषf JPp/|{6'PV4aJC@EYI=b>SէjTwHLVО&6 V`l1դ[BN8|lϼ]O2Wbz;mY:/"srE*f+dw]Xخ+Wx$1&=6snGڸh*?;ÛSܻ(V 6A<"Lmdv*GqlEU;Bn+5FűZS&Cc Z]-\e:z]1-:l߬XB|uѸ樗޸|Ν{5ذzdW}^«Wb P+$9}:K@ V5n!"z||m|3|.lXf1蚊6Y@aT_$> , m]^%1sͨe|~E K + -um,@+4u'%Rv}ܮoJuWm9"sN>D7'M{? HILi'jM!W$sq{3)n%p9?1<|$k1c-vCg=.7t/xKUʨSe[7uEYMΣ e>39 +S4b,sEK.8EK iI:+Ej{/ťBaƬZmfr~|XxxktxvpVWDS۬LvM)YD?ZB\ҏTedmpddgg½e+%8jࢻ,-ljjr} 붍uz4Qƽ%ְ5Vpr߬ӎ#|fڮuBN#=f? +i営Mb~{e;TϤ+uxcTʎ(fE.IRA~ch7XLG ֮2U.܏oyk B G43!2)d.iP&p)45*S?j1L^‡oNs8` +};"su'z~EhwCSb2f߸NTh1:~eqvbZ^d\Vp fǛԃ!C˺ O.mE_|BD))V^Zw,5Y=I 4>ܿKbM!,Э+sW&&gWW-JĹܴ5=t;#NNts׸fF V1XX:Y8b_"pP_h6'BhaX]E3Na%_^sӑVWtJ,q0Bv{FRF!"NwbQMO+kK;讵RyٿY{Pn:cfف7Êe~O/\-E#0ȧ} >91dKp{p2_AZÓxQīk]⦯4%cݳ.P+9DJ3]S6!6Zt<}pMw#UI- 7Fmea6qݥk?ab,ZbuBfՎuM#꫰+Yf/̚^hƘh}pg-Z7M-V#Q;4Hmv{ES[ g,9QlcϨXR* b:ck`'6B5e&7-,cT,H닋ֵɽ=X,[˧G l X-Am᧋OiWfƐuE5#݊"0TW>. .#W4\{)L9 +@ l&Uǘ^1U͍Y`|m2ҚYPDbR +M6m=%Ts?zGΟ׮\j6/_.v:̅ $r՚͂V8 鮓ԷCVo(7~d0ڇpЄE\8&C0w0E*JMY:+uz>sG}Vnxײڈ_ϊJW?-kj&={@tW_-U53Dl,#ICײd_~g{dw?\t bMY4D]x,AxR5KI4B-L/pLx< n=B?[ܑJYS} +\;n.ɾQ0SEZ)YM6Bv<ײ!DTܤ]siUErݔLוjeg~S<ZJnvSV"ǭҮ> y0-#W~~iYKa5U$t& vbc14n1xLݐ[3j5򓂓H1-<=;^NWŨ}H)D8o՜p+">ElǖMgD{Zؿ!= x;BHQt'AZ'UdM)+F BovxL/ȼ@ TK{R@Ic3B<~24 }.A`7<NtM.FWڢlJAxhP6ٱi^`sH9-\ٺ3kky<$ldͿO5'>\Xg_ط[l{3=}ƺ`Cͅ%)q9 *OL-6Ft1MH( Fe2 P+Zg(\ ]F3i$ĶL"TΤ\ o- [dI]7hoVHgtUEj,ؗy&wt|X\|ڦ>]NOxO#扨1o' M 6r3{Ĺ;VBBwwC*XOhsȽlC%OTdvX[ߪ.Ãqs)'-,7F8-NOf{BVVon^ku ̓P.>Y K.G҈D]VE0Epbvl~n'}ǠsԾ#kĚk_C4zdn{Lq]P!+P*54(Q;kVn T +6vx$= ݹg{/g~ݩ?=~鷾չW[~)p5N+v/4tJ]F=A[>/?P1L#krZa'鷐U7̜9PGB$|Cvqzz˚ɭnFYLboL5"fp-4 Ռ.13kCdX#=f2L +fFǠYof>\Hoy]Z)}ʙ4 *Ͽ|qae)MǺഋi_i{;#c ZwgӍt+;~Acc)R$:ZaM07vUKm=\H\ڭ%X30g|O#̍#z*T<+aдM#hibq lJ̫YAУ INgʔJ1HfFqX'x%kc*P U5Bt9ISE;4l+>,"oVPYoޮE (}=2ˀ[[sZ>ǜ49;ٍv܊=%ulsq}7/wgއG3;X2j@=Uy2Tٕ\TEߴpRVMS*ںqo)ϽgtSϙo +0f9Yl*[IQ=qo{"rnLᑌKOKvdJoaCn۟[Zfo]zs>3qgc7{[nUJ%?iN*{ d إ3H G1m C/#jO>xKN&Y.utٰ 1UkT_1VԬw"c w/8K2笮ot}lr7'2UY978ETHEmRs,64g.^ՐO2XmXS+iCǢn℡ʃ,*R!Kq$طOvNt(jˆ@u MJ_4E}WN.]{j1<7pyK4nf@̉-#_xStF9 3ʴ)~d,0nF6ecmjh[0[ ue\CMb2v䩥MKa*UYbykt'k_m*zkik3k3O{Lz;!=Hup b=5> nflV9'`T1$hƉ$ WF|{JbS}W"s_cp:uNQD%f}Mh`}`UƩTm.8A^Uc;'znt *{6ʅn(@^Ԝ,-K1 K-MDL#V)،Ks%Ϊ&X-ᅽ=\TܜH֥Kݑ>Ӷ@OOza48]uۮʯz#_Ƶ@aS̔C1_ɖ",wߗo؟8խιs}HSNUb?*/f@4q 76pC&Lӌ@Ye㾅L :Y&cBȉo=:#k{9MY +ԤlO FV 'y#ٶn_OD# ₟ !ix(l|^n,;MQEOc31 +@t,z(}SZ6AwkKSq+hMMaAdtjE? i,+Uaؘ +f'8)=xyl{h/r^ΗqEY/M55+X|*o̢2Z&Td-mC@@ӰaQ7L)浘 +CgSckkva~v6#eEenμz#oSp Y=gU\$e\h6[#TYT#-ASSg 'f]У-*ѽ$l-d$ (f,q +<#Ik<56SC+TPO}P5M-T.L(2 GLCvmGh?0?qqqbO;FdJ^5ukA=3ēf`{܍9)U+1PRS۾DTohy +=JTqBw\w*6{cY^dڲKp(gˈ +cXVQ|zJԶmLՂFTB8k<ꈰS<=Kp9,Ĩ:i)F1a #cRQ)XBO1fW'Mv W &8;6[JFABn][i6ߝ3˨֥VʠlV/O֡jDwh'+T:o75nX ^&+28(P_wmfO|cXࢅKˢ6ٷq{$P%V/Wu pѨJ һ3Fzݬf#^Y. _62V1eleT״0<,$V<_4cZ_חvwI]{ ?YQpc|`Tk(aNt +UMF*j0 y1'L5tX̖[.Z[^"[X*?=p̜xUS5V]Ćp:4.f+}nu+^_\N*VL'^we X:*ZnBuj]G8[-5b?+PK]_6M}6RŽr&SB?fKK+Ϙ($d]C2%A 뿢 DD>SM]tN\!â)ak(z# LJLcbb}fe {Pi1iQ*oȚ$Ka*;}GZa'WL 4㫶ӜX.f"U.vd'pd#:%OęYT<-#nZMn%nңaulέ--g&w&gg {lbB=Y?ypzG:jD͚%]d`O)U?0\!XR7?Ԣ;Rm4͸jzAr;0&-Ua +Ԫ +ͅ}ެ`aB!Jdp][1誖{ {>k%n-K6Xh6]NXd1tF7[54d.z_;hs'S%g~yٙqj ţb?J.?f8T^j%_*V#7RP6=U%vhi*cK%h[v{9 6^:c)qt9 ĽI7, ɢ6 mf!I0r`K.grYzwbW8n{cg\OKx3 +X‹P-~=0>*]̭k!D6c>(;8.LxAe^9BPtw,^J-[E, !S݊Zꂯ10 +H ' T4[e a26bJ!na$'>04oXDu뾼}4X܅;ٚ6|?QV&e_W7zRWr|`ՉJQ2sgs01Cݘ{w΃3& {1S`b A\@B#&feGuy7]vu Sr ٕ Z֦$YVqffeyP:V4b4aǟA JW.pc8>O| +Zm1Ђ*FNi4Fuvvv>. Tax(b +`[+ZsOt(_l3Ӗ^&zrB-#{ɖ-+001Q}.nN^nH,RŝXd^(uttut6. PO{P6]<=uZ~(bg1OyS*WQ9^J(SPLK ˨"Kc [ ;91oزrlTQtˉK|HNΣgMcRp-WKcFĹFk,S{"cdKԚ I% +P`7RUЦK=Wx هvfw98J5V. +\V6_:QrOHbOa^w6GFt5J̭ }?ܘ4ߦӺi:K]59vZz{<? :AkDu^KKKϵ4HNHb!+"vƑC]c=aJ˶YPWnÌҨQᆚgȷ?"2չk0.C΃ϛ$lO^{]3V "dg%ѪM}PN{I[73_0Pd2b+l%E.-s,/2DvPz- Bî\(}O@gY+;f~m͹|y|yL75,֟xqF{1YDx͂Qow4a=:/,+:됒PE=$y0YGL{#dV9ПFo;z +Am'4(hIУQĂ,R@)k +;ذT8Ѧb|g`6r^&~#ؑ N _40Ziiv*>8W. +Tqzӄ5Tp`;ƒX >j)BׄL|emd$H_$dϤ7L4WlAtE7ieJ70͵]4)v iI qsoVprsgy=V抴+Ctnz*]XF){ivO"D'R24h:F`M~B=ôùl2" , +Q_ž# go+2u4ʖb]|f]>\Ox!0bN?v阄ٱwq02 +gQxqOzடVŻݓ$oj 5ќ{z"vNnEO\\/<DޣѼ8 ٟ-+h+y)iÂѶ/hb:zr?)G#7*\J}TuYڕ~YE<\igqf.L$cSz0U6Ɯ\3)n(r#N*Mt?SM~++bZ5{ ' G-w#98JBmy`7k !: ,WVdDc5qa)cbܰâ'&1Y7R!)l O%X;;I$yBl +iq#3m(ju9g˩lvُeIQ/7iݻm 06lD/sGǗ/_W1rT) ƱuZ@1Cۜ԰3v6 BIGZ%\H*?K*:TQ^[`GW6*+quf,8W,ê+AqG/ ڔ/F :'s[o:W`}gɒ+u 9KH|WN&~] CZ*ꣲ Pڎ-U jm L)eSbnG(Vv|7K;f]03D?OC:&VpJo;OniOhOֵR[R>__ZJM3Z*̎gH-㬧Ԣ'?068zQ؍#{ >l>9V+1m`_4C"mf5^)Y":MsR@wN&AX% L DixᵀD%IW1!%*~2Hi(er%=^=6shٛ4!cJ߻XLNN={YDo+s_{Q޶?v8o:o*F[*: N7Ue\ ?uP߇B@ߊ\*U}rЉ T_xrC*|k!V,9(:`,l7z{Q.ǎ KU9vz'l^yp{k;;ۉBR"MQ]6޶ +UgzQo/{*T\ǜ(oq&C E4mroܥid2M)Zbt&3'ZoӳaOτ_L1AbnZ4)YIRdh" B7End}Piqr/MҗңWFK+J +]:g{ǗW5h}ݝ}ApX/)Hw߯zP:v%)^npV2̝2/Q$pbg|!I FMa+<)Sjv){sggV# ̝wa.UV58Hrb/$$crt_D#bcQk{cUIQ`h"g@y0S@,Ɓn8}DawTp;;ވAeNpX"bK0pL ȧ yĵ@Sa$qnNmH'iR5%Đe^vʶ VaaQ X1[0l򇳡`6z*ھ>u,J&x1/:#uCZȏ.̭V66$u&MØt-ssNE +-tҥFX`Ԧذpʷ4(eFfMS%,#r1U,9J&_4i$lb$ Sʸ~E-q+ʂ;rV&YrD`X(sZleXf{{?6scs4w~n3W0Asz~~\5Pׄ+q6\`!9cȳVp2F $#lK2?RٟBh>FyziL1V0`$L.\V0 lt!$Q0^7&ɴܟ$ +İ<ĮcޯW83g'WWD؅cSZDm:1&럑iQ֥郔8k \DV4&~K9Mg66ņ9W7\Ê +145u©Y0 c=om4y#YWEpO}/$KƢT_-\H8-b]_..8R!!MVK|'͜폙MiSVxsQUAv.d$qHݎ,0K\";ëȭȿn,,YWGyFIݮȆ?Qq~lƺr9ShT9QO.4( g(6#;򐼃"ӷ7sX 8!7<3 9llD-K9OO_s!jj#fGP~!Uy[I%%iKnfVv>̔2,؆:_sT3y^(qN*S\g*f8Lo$+?g"w؂:]ULMl2[Br LueE] A΋ﺉ5߇,\T-FXˋ1iYլR 9lOb(u] 'KS4RPq$g +xǛ5~XtBZûNf ݘڼ>nNUV1t !U\"ȉ^>^88'=n:'j?|>sGeSvx\Xͷ>i_6KL d5 ۊa\0]U2Cgl=bY'H KNRWsFL)Fwf)9&6sG%ŔUTEEL*C}l +nkȄG#7t' rC{ڛ;./3x3Li M/L.42x:P=F.LO_AGhG#tV)_QEKF.AO pW5њqE:M2}| +*ĸR:FsJH7 +lN+F͌a48rي].Uph ;I7^O_d'Mw镱lqg_?EN084լ:C3 v}\y{2mJ)Z-NQra ԛ@M2]3ܡɅضMUN+לaRG//S83^MOV㻎}ҍs&HI +r6Fk~XD[wye&^D@kԾ"ɔcm( 1韰BV䟝rt`gmUhv~~_֣5\BxJޒHas8eIz4_8֡3H`>u1%v=JU k;Ԇy0#drVh,SYZ H\UF/DP+zSBTZ5l:R-۱5S)&UU/90?A^6X*Hb$-A -(S_??w׿Q;Cs 'Nفg޷L?`'"X-úhJg(䚺D JiTkr)eӀD Η*BD;Kv(Q>,I^[l.5/FKt]pnG?wx2N|{℥DesV{ʼ^:r ^!ǒĘ,2f`l~{8BM KUϒB/{=H30u@=_HbO<%]ElTSͱtdQW/11m_Rǔa%X'N zoD317s ur__M,$ +KGhŨP9y2Eѡ^\9O&-2x<m6 +p+8u<,ӈĢ8|(z-B +f4pK0|6a|.H(_v?}_I}؝Ĵ%>qSZUTk4vܼ/w6/]zurg#sɽhxl_vi()l_!4 **,A#jsja2EF1FHQlh?J9^XBu$`U}̖`|R;% tuZ+wwoCLOOLNdEn5XnP!>y⋳ ;|_k?4%#+^9iu@ U{`ReNpHMJ![ +7x[Kt^mK>وOb9l&̚?  UL?,B2 ^Fj=>5ՆpvݥKkk IJ,iOiŽ''GM!Dhk+ p[w~Ks@h ee&z9:=mpؖv|dK|KnJ2T.АϓiH,oPy3+x {<}'lIWDzZ_yQh#t=~w{ϟh z5T1cMQu<9\LL{{4all-gS#X)aη2('ϊUK3WҾ.5f3EC!R}M=nƺb gQ]K G $*6<(.RMbIޢt UȈ{ȵR.1)E_n,n}+?IL{il{cMJWeKŞ/׬[V%#%^>n8BfSmB.Dg +>,TqjNYnܾDK9 + {)oG_'IҔtSd[JTeǙپ^^$itv"N8% x{j]kyկ[>C]QtQ4]^I<7ۮ<9XeK*[Q.by,%^]m^ZR31>lRTS L:!+83"6a"pEKҴ4hdWP*<]` htrf~GʐG>ܽ^|Q r詅xS:9un=;6G>.҇e>J*, c94,(Ʉ 8;RΊ!#CUEo zI\hpo#/V;ȠXurx P؞@xpZvQQ4bPym}qMZ&St Qםm+2}7h.A RsV ؈e붰⛺{5&\i0c('ƵH٦.)o$ۗXh-z1?ckTVo5-A?6a`VoF`tM 6@(ޞl7Q  Nݽ~ }r4Q8X%>`[zG ?wHw tkACUPV n̽ {}I^tK$|˷ +62d4%]srfy_q#̭d"q{90缦r{ӇDAm. R Md?N$'fsGuE=ʔtGn߻w4JٓGSomH=kbuYe֎-W0[nBQ 0&o#(c&|ǹ͎F,'Z#)4f&Хq|H,I -dXڡwkoLLLJLR`LRy$Τ?!}CzacexmY^s9`pڮm] O/S>҅ $+ۛlq$."a" Lvz2]1Fw+B ˥20anM*IȚ4]vtm%z1JDuZZe}94ySm0T^dv\ Z\gn]@̕J\_I2RZ 2+OI=t}A5p FKz;_ AfpWJһ|-_4%oJko05Uۯ|Tb5绊'}ފ/NB;߼}9ygz9^k8o 2">{*Q}O e/\tRoz.cxsc& +r)KLr߈w52IBٶL(3|}Za]9r3tD;n%z$[ Cw?D" '={]7ъ ЄADzXNئ9q/:$"y$??rq!L%.ypAFaF7vpfO"*ˑ l >΀#6׿Lkczp gj@qHEYGr'7&j%ȵ7 +ss֋+׮}(hi;޺'n]b*L*@d^@M\vBr L3b/T[Oz%R"B*WXjJh<»|q^s˙T4A~%5D[S W8euszbLӀ.bӯhiv:xagx/Y6h &^ 91t[9|Օ?\l/;Ͻ%)[CO g=JjpLƛ2uVZݛݼ]>οi:ڑJDk/oX;l:S9cp,Qmho+T L׹7&gNż +>%kd$ŝ()&slHC^6SXVQu4,@̶Ս_6 ,F578TeGsU 2*jL{~s0_-+Ǿ=V9"va=v^89X4}RYZSd0^{X5YT\"A #Xy ]:'mFĐaiG=j!K<6 ㊊k`q9^ [*8sBĨH@I^k6qmy\nVfj11໅j؆#]\twuFۻy3vemw7youѹɧ/YK\S+8c6;&sC&/ư|pEm o|^jq2͔"GFs"27m8|؞1 +ܳZBpë-xMLk@'MǙڝ^2+- +k؟7.^Bs*[9Znν--,Hݹ\Mo]{ Zz +Iᑷ؝i鍶(26'pJ?jw.}CXx`c˦/< A!ȋGL6?;F3sC.ӱ +Ba_%[g5}U-+!g;SeSa$eWro#]&D:/uN:8>󎽊aQG-𤷦&&n6͑[8<ܸq}4|kF#ڝ/?ӘxnMl$B0Sl2UbGI\u() :)VJJ1ܢ(z?uxDAX+z"Cl+D?"ҮTa]g +uuܜYXYy43ƧxXwÃMGhMvia!o'@/.^ =\&Cu2o *ܒӮGC{gOWSXLd+1 3NYZLb\ArN ,mMdֆq ذPQ'\Ä,Tyd"V_< +;7;1=iWڗ^nohBnozaM._=:zxkK{:|qخ_|e?DQz> o͛լH4wZ]{g/"dp.e4bTU-*ՖhvW'k4*Ɂg82f[.aZPKGbGB/1M GBqtLwtq i&JKַU8 Nǖ뻭ݭë˥ZPNp"_;۾C{t[=R4ҋr On?y/zVHk6u_p,(!D#9ZLbVUXzqo,2,Do+C 5l u 3s 5dpS'Aj\L.|=6PbmB.W>۩;b(!}^@r?q7_R立Z􃃽F޺qc+~TNË b zLsL>uּ}>GsR\6`߷(&iդCbQtS͊)˦0R[eةroMR7aNtxBQM!T^pq|?D&̤H65m SS9S4"zfעektU D3ID Z,&S1=U|ws;|ba჉܏|Fѳ<{w3;[ +FCE_ X}"t`Wc +3*Gk I::ÚIG`0m'(*JhmWHH g^~i1imi2 ɝ~waCyb HBƐ&VL5B +Os+Sc +9NSV\Y ^"hV=9p;rjHDSݢ]__cL?*t.ټ|ywÍ;GGwJu>].߉ l;ߺ;/^,iQ9Qmѝ9o]J7gN 9/チ-U!|R_3J_Y5y(0˱I } Y%ωn傜Ӂ+fky$qD-'3Ǚ^^# jJBEm)ij]X884[a\[mLZRbJ]7wY7C`LFwod]F5p}>; S^?[?ڟ\&@J:T~*h\`A9.p8QYnN;&*Gy-p-zbo]_(c{4b7<2uCVODWq)7LܳCHKe̬C,-«.~%{Μ#w$a1x؆ނI]ߕr Xz!ay鍍/kwo=3w~xyG7o~X?ʇ˪ڇ饥?|)gqՏ fΈ% yN=wh{;Id3o{vӭu,QBb~Jͷ +4`jl9YPQM6\sjAv3)z:xMd +XF7]+ߎ@FD68ah4hhmٓPEʧ]@T; /c\.8oOҐo(w%@no=a3}Txk߿LTEgnxo~d\{{_{26{/|L}3陀8Ggob1/@R7ds-0K9 ބ].ٹҖlQބݝ޾[ =g9?F -mXF\+ +2Xé=25[(]ҞN8UzZh+D9Yt=7U(fu@f0ŌQg~%qOv@bL"Rȳ0'|is5GFrbTVY'nHzgζ_ooU䵑 ˵ KI9MUlRIYhl7J@LaoBK~WWIlDM& G׽TgqF15/Q2Ŭby8s +[\! n֑"~>TNkAg+5FGZSeݧCӀZW?ͬV&S`pܨNsu}Cn,!^aXy}_Yy!Quqt:/ϔ_u)}PR:QDEjKL3G]88SBvTf- mFPxq;7?g ' {Li7+bî]^E͖j.J*[J9@5@ځx.AT w^WzVuP_Luz|4*>#5kgv֊ 5ˊ)) Lh*UpIzEi9ĺ2feekܽZIsv3Ez:DP=-;%ӈ \a4্ QMs="-*zVtv[͕Dfioeeː$::>oN'}ٞFyWnO@l!MfKJ.ZxA =}qv +v|ˮñ)^u;@Ռk)] eH X\$:8wh`!fj*-  E9viF%ղ?ܨbyac^jB:*V[fBy4 /HO[K|յh[/-qg\[%ׯ>~̱߅q*Olo}ɝ~CuWLZGCLˤ/:Y'xhڮqUA"'lXKM܊;dx7T 覮B1PrRTơWhz&P_C"0p _Yj +m3Uq +]iLRj&xI: ْ|6BQ|ܗnH;Svu؍v_ww#:͸Ԩ5L5NZ.$OܲvE>{2ڻK&wG-3w)j)ȳJ1l Dt3][[d!E7Uj`D^Zy[IpFƋ5^3~ap-s985j(֨q]\hչQSSA$H3%-soZ-T MuUAOI(ej#ڟ_ӑ3;t]%$9ҫ˟|İ}?'OZE,H4&XI}P+8|4뱺|%߶H46d$\56ZٕfmG +q8Qw[\E#e-L(wWS|(NYy;Y8xкlέ:̙**?=/g`yhdD>h6ƆL|^ԮɏߗbO=G'K^O5pP_14rChʜB]|37/} ?^,뙃+Sy&Wp~y)-vՏЧ}+a`0vsGإcUW}"Dv#wAbR!/65ďYIy< +7L*||Ҍ!_Ԃ<Ƴl8jr8ǪaXE3/̥*1ՙQ$2TBvJZ,PLRkb~-+zq Neb!NϥsQ: m}|Sښ[L/Vqrvraakoss>Rxo뽋ƯݑSs`bfK ޗTl)c!,[ttDb^-Nl˛y5٢ϰP[H8mTC6bbddfs) 4 u_zC/mM]׆.ߺ{͆o_>7jz'9лݹ:j){4:.( @YA|}(BM=ƪDׄE%TtM +NT}O7 tM 2~ A1O ? Gqv i +{~_ɻcds@ ,p|2*3IgƄ쬪K# +ݾi"{ % ^cpǐiNʆߒ\YAqGeǢ'ЊrC(llSU2FL 6hrĥM"-ߩ>+8Vۀ)f2/\0882cR(|`WI#cjT ?-BH{Aw+Ԕŀ4a/! ,@PԔ,*Kn _ 4巘2r7g*6ZQ(jI-NaK޽|aooWxW=xLmَvp```a0)KC3eEuK9 kJY#`唁wTw?oXPq-\//-.~,J, 4ZLZIJxn* NkS;搧$15LDIu'|͟Izʴ"s!IwK\c]jwUS9i[zLw?:y|5n9nf͑J9'=k\`JjX5 Okԫ'H +Z#JxaE?FΦH}nk5JX,t iE ƾ%FA:T{]l*jB$PQ2t_Z[;5zs{>οVxg=c'a\bKg,J' Nga!rԟ2֫񊙒2ggሢ#'+I82C-پJ o}Ū7(ʹ/&4ImymŖuT* e,陘K3OڈtnNw< .Yn#<5l\57ͷi97 6ЍFNqmb=Qk2zY4D sJ.}or`i +g3ENXB4!Xve#pS$༅3bTs}/~B>K};reaIh?Ն_n^fveivrɥnߛۓ}xmut<-9 Λ0g=FO H5U+CDD|;kH$&L( 5gfGG$O KRD]H4f|LЈZ!>2u1^dg?`iۧFϾU`>~>_-7a +T[$E IQe,Y,?&ys3$e2,rhvsQCoy``@[|ܣxjQN;򕨘pWl +XɌ)'3G2Y>VU]C(KpoTcڛb~oع^UӽX.++F][ { O7# J%ˉαve JE"MԬ[͞ [k֝؝#;wSȄRZ5Q6 +N-/#aQQL4 |2;ZB&N6[ Fega6XvmY";WfǩfɎhRgp8xrk"xcw/:2jYC9|S +S,v`E*4@X.i))SI)5]֝J7Xriw[{?wcawXKS g=/Qu,GE)55159aa,=jA0~9a0`Z`nh,vr6;ωd,l93_4܆$Ќ +ۆjqqe'3τ[d8 +'jG;k(:1XO2@/˿y +XH +ZVzY}Wlu#ʛKEٹwteP/ై0,m.bʔۛpiu7@}iceeR)uvOu28;ax /L4b4vuy_Ѡm|UTwB>_gղƂgR-h ҽ{J3P-#ӠuᶮF+j=hp"Vmp<یy +wyzt:w.pR;q=g&_me7z:)oc#G,ð䊰JBf&8ec}iÝU԰_Xt RcX,B̻V0B tRn{._٘ +4ۢ e03@WI&;H~c,pV^+p,sYY4eUf]b挙Ka\ʖwXrfd.]K$.04| V9鏇 'D*q5e-OtsP:a8_1whIˈNU>=UKE4UA*s0P$ ŕڋ%S.ٵmJrˍ"5ʂCَ*vș&Q70 BrFuE݁,8ʹʰ!@thsBqmg;s*L6 !frv`Mncdk=J0s:Ie_fA:&o DahEy4zԻ3?cƌ|߶hoM>׍ayg8ԡfIl$+`O!C5 40 g_N1=*\B0ݹ>>V+ u n(.!l,((ca|.WmĤX{(Q&ο#tp[ u]>MKɶ&0j3ijz./@qʭ^O<', +u,8m FDT 8Z알8ӧEk ^;k^W̕G /\ȔQ/_<{dGj5'<'ԙw`N}3pԔ<;ApVF7h4ڔҨ "&HWfel}6.$20\HBuZ)ɐu /HUGY;8J!|-f!oqA{:.O_ZZ +k>|bK[.7+72캪-9+AWFpyEb3WR9SH&&Upy* B\ݼlooLU.{cGc[Dǥbt('OqQIÅ1b@ `ICI$ )JK|nE*EN?7f1> 43i~|]RQd7mFrL~ZSl|:Ck'g<؍I&q=_ZNےViR2;:0ucCn;iH@s ׍ٳWIӔZP>ʓJvz=>>1:|r a[8Pn>S,꧇Ѱזv67uq+J]?&@Gzt&)":8>yt]>Q~XE#s-ŀv 4Ct 9$å:2`i-XN "LhEbqNCIā`hEfWh1/Ytc8/5eawɷYg oZz +}~9[y^[sƙZ}o:eupz':hBa}E'_|şgckm0i;j.tjT͞˾)Ir!OSA.;OTZUy&*Q(ЩD֭2maqpzk _*_] Y{)b%sa9sЌ龁A +}dW pn8ÈNzr|Ӗ0!}V KԩK/bٖW@h+||)ϼbW@0Q4VpQI w(]Jbh@d,"qA&t*:Y&aYV+ZQN4d$v>V4N)Z Kܽ nܧQ\8ev(0?&^oSd[CU:IdY fd낐-(2-F~##{b:O7aZ3g,[zV48+2?q`$B3ڿݹ7~Uy#,p8]40i&d>c(i=^Xh "8ӪmtssvKTfDDYw0UCM?DHTSU 颦rSW)~KIg]= sL'{_A:U]GQn)J.#r/WuHq"Є'Ad-"0U+"ȱ/6_̶t4[A 5%}y=n}!Riϛz}/37T.f3GC7TY/^uykw }Mo&OI6ecT'Fդ)/<.~<|9أ|ҝuQM2aT% 2ܧںs8&Y57J?H]]d^ L22:%hIMNGN7#o <ҍGfyR,t9.0]ܤf*ki3MO;i}23g?`0U1aiZheqH*D3rQyeמR@u&l%lCH#~=|Ѽ׬ptqҌha$/ ,o1] ģ4dO53=:=k?lۃ;x9XS1~~_=7g4j;xSGafz(uvMYOܲDLU^Y"L]W E?[" p˰BL2ɼ/Qe8}ЇÀ7gojfW68KϵPZ ,wD {[޲͍,CMX_0DCT.~OQյ;oY<CٙL0U-?X%u Pxy-şXBlKUuI, ٷ,`f`֌~aF&H&scs4Zud}i@oQgR(,Os,|%zg6Οׂ`_,ʉľ?b8>ԮŽ?Yy^YLl4,9؁'lD}Ia,Eع3>Zv?or[r `C>@:QD't'ۗDЕ/81ZΊBRXPo󒐘g?-vٲ"L!ch6H?\>~I!f\qjPL(뼹‚'xԝvҔXL+3~UWe ehO\`0Uҝ{!S1} #̾TnVmCy#voЇ]vu2ORpľbfaQ|!0gFUIxHEyp2sY<ÔE:efwr–4Lmu:ZD+R.gt^'ExG;ƃ#Wd}}vBgw'눛ήײ q1\ l_$)::;\dq1 +Qa,$'.dPɣ4 y}=uJXݘ3fѩc2uGu g0釃G?B;7@ 4Y~%Trx;8;Sy~,YMѝϘPɴ|f@\\K]2D>v- %?LMIH,)i EIXK G3Gg4_`Vԕ +孑sE :X3\WGi|RƐOk$]ldĩTu'ɛ5w?6Yo}H yZH#['=Tmm/}{ {ޫj.86tN@⹎5CnZ +]1D,\[^ˠ"t{NW/{.5m.|ʄAU̲eۀf w(&ҴW9O 554I<-6*#f':wL0KJa8OS5ÛGgm&uGc)j<Պ~Op])v9櫞5gq%!K)d.vK;l DF&c4-S/Refcʻb[g^C󎳶9^Kag o_ک>6E|Co6e;sdB|,_NZ"]Ȋe-f$,M2'8(D,^SioGҵ_JZ-rvm]˯hh'Bf<yޝ.}QZl5vn=^E Hv!rKcexpydR= qT VVW@qfC@8ӆh*>gjo5k$}MamPTR$i WV$߉da/nm*J&K34̘?x%WO$ QrQ[x?-1C1Py|\烏 :H4`kH nĒ.,+RK):Џ^wfxigRCBL58V*oKl K;61]|_[\ިpj<2`骃҉K&{i,TIzgU +O1y} Y&,zRXj3mWɮ(*5|v|Wf3pn2* &C%=1 * + +Khfs}̰dz h5+'!ry0JrLPLJT3Jem*2\'YWv}d,#tTJ-uՔfri#Wfn͢do,' CuorSN(sl7ȤHځ|䓈pPgΌ#1hK1#;a{; \݉ 㶎{ï9"Y(zjYVPB DЬ`` [\>CDn_ʹpv͐2HUI8 aj&aŅ!v^ +\@S & ÐE,mlB"Ԫl+{ &Ovy&hB9콃`A/LMm%Fx\>~^nCPu8D)w*ԈU8?Ε2g>Wk8wMFXjOm; oO6=Gplwϟ)suW\ ڨO.EQ/R +* +͘"e~9mB?-ɐ+y 0Qej|Z][.r4'J MFgZ:N%xDtn˔ e@ +l'1+j* SsPjN ::R(0+l4>E]bo*xKnx}\_°DU: :9` jR#9~tq T=~ܹgV\5x%c}0{W-nlȥZ('%Fı:Q<ꭘ2a, '{Rxdo`UvLG׾m~]x0=|6!?>y8Dk`}p}~ 1(7t)Xνkƚ]bك1}ٓg4"rVa3ddpZJqvGBy J9KWW:on{nՐj;pcgZ|>kk_WKS,uPݦDne [brVLYxv^, ԅ=rբ, X^\[X5ӜY>iKmjz2>zq3f%7_b̷G7u9". 4v'(Dz7>mfՑwu~Iʻ!6 i6*;xr|)+2k_e־ JHӭco=mXpٙ>JBf=QOd2篜OssMe3KSrP}ӭG<4ӧQMם 6(Tei^w8(JPҜ3aEQQd2dO>f|M,S)]8i2Uu_q^5fFirw$X 6(㘍#yo#wemb^[VΕTmL/3P~ETc$nf`0)s2I0i_h$T}ŀ9k5K t!1^P`q1L%y&}yJvE5\LC-6a'& U &Y-[ԕe:JP5]JtY h\q`7 +Q٥[tp١Nt8wbR3H٭f/73agy*; } էtb׿ҕU5ͼfj +O]>na]ZR89 MIU<օd>[^/BcLz U>ƒ<559 s}|>|M\~pmᜧZDwVaX^VZc6hE쥨)Z:j#&oBŰ mEk yEQՄd^QdVENӂY̡MSŘTV43h +7,qN%@]M+%g™RZss/.F>:ŽԎφL jÜ̗I &"ӿmt:i W=ѝ-^[4_9Gc8?A%Пr_bCCw*,6ܐՍz"(Iq^*, OplԮ(w+Wxe}ox,1/1- ޞ>h(~qk?|IS䪝 ,0Q#%Oks&KĤ44\h +axo 4Vu=Z%dG$.({(e,1U-L^ݬ0`j&ƞz/ _bJ&g7Pv. +nitGٳ5X*Ռ + גQ!u~,)gx"\x“GEd)G ,?+ &Y'c:4 7k_%ye}C)MJ$'Zq~:B>ng"d>?|1\08/Y"u&Nf* %sNkJ@,K0c5l&OR@geה N5L'=X1 +{)fԌmbb'=+X@hzЫ8s~A8?,a]_Ir涕_z}kkų(+'1=.ਗr@qyAjBݹi>$gF"|鍼K~IfϨVAg܇x"Z/'c';Q>4ꣾ{-<Ӱ䵛7reY Ԫѹ}9u=}\KGpP +'37V#c eE(eD]"ظM52)ϐp{00$~زUHѵk] 3ӿ[4$VtXWW<"s5Ydȡ$bbDSUK(ѡYV,w<1,P*E;i}'@#c +&_[ " j[orglB>^ NW1ypCTY`FJ`{ ZZ<+̴b,QF_\]] _@+I0=K1BPMM49%vֹ6J{;U:6FE&8-Im]g<ɞ.irssڟ{HODviil.rS\)ʫeFiq1q8nR^,*v£XI/'P_--;$nSfb$RM)c$Z!XT }<c$B.kK:ߔdNMʭVf6zͻzW v ݝxv|]M㠘y?}EPgpqXH֝(_iAB{P0 -l.߿h6ohCBDe/ +5ܔ+s?1?n΢OuUz[*1Lø}~BkͭA.[ w⼬"Qs#(\~͛F^ +0c-ONޱlH{l] j˗ZI*^cͳ5Xi?>0g|SnBΒߴQvsVy@0SJ_8{e{s{re=`_xQmD=) }e2{w\KqUޑs"-Wҝ!<CL#8 $ǾĎQH/Ul BXE|ӲDR`XH>ҥ )t2;LnK4McCSGH۫`jg]貨t_st;vޝ瞸uN1$իwH=?# %Mͩ%e6ϱ=ݑ.G ݤ čʙﷀ-g 1C $Lj=&lSMTD3źg(^g.9*>HuD\U4̓d)F!ʊjpEUM^W,15Td"ݚ3.aQc4Y7 c#aLegEs+qVFfEXyq|^Q9ƹ1,@?EK8^ͥTkȕP(kvpy Gf&>SYshKKXE +O26a/|NZdn~w{$jĂTY&H*HWM=Ӎtc4ܓ++{K{sZi'`Q.iBZN.O~f/*?_kuڏ2\4 +wEfomCZ +oEUD%xNFa`%"194Wes7[#.1T<@:R֔ 4,)=v;*l䥍jqܙj +6%rU9)1ͣ͹|̓gΟ9)-;wR_{ȿP=/(3]ޣ#B˧Jϔ",1ԣ ؆GAAbP$Ng;P/"Pn&Ϥ z!B:Tc1ͩQhz34 u՝y]REt)Tb/3#}؟$gJr2 TAӹpҙK׮]n*6f;t,ƹ)>tCyZ(.)oQ<3Z6l`3~L3,?ҫ.$Qqsފ't-nA$jmfdCBuqo +峒׳3pfigimً`l(˂|嗟‚",Y2ijTͪ -Ŵ2v4 K!;?*G{{l"A#x; 3Q=һ哰E2Ā0$|IIr{/ qZUPFO1{@R:`/m$ +?ۄCDm5"WhC@@\d{SGM]?I͑#?ń@U5˖9MJ7 uk4JSk &P˖e!ݯ,oq- "UC[| UsUwnu3veSFX6o|[_Е"21(u7(/It狜 JgU9$SD$3 w7xykwF+~״O\r^Oj4tjxAtǞݥPȃ A{l]HCї =lߩSm8XBO'e*شEElQ0 E .S p!?ieE¾W·c!@q1'XeKDuET*!S5Ou4I1qzO?Ag#'/,(SbMm^m6;xћ۫G~z0\4{nbd0* U ڊ+QIWޫޜ24qau7㻒&ZL- YTSc' |(igt|Ăv49z^q/,s; GFo1םk;1Yvا apf?GН'5{[T5mbًD/~lse,2vB2d~wsPŅId)g'Xv ],۰6N =޶Ϻ~>2N orc? ʒ_L @(+2~sBn1O,RRd2,D(6ˆMkH# zg)>EeR@1' 8#&wy j㶮߰aJvTIHSV +lȤ0t(l$Ժ,2o!BDA]SYm;9Rk U*g{6nY!L(1h%F6jj.[6n޸֧&y`b)Rڃ"vk̠$ wlUb@BⱹIDSϘx3Gl@ӢV,,S%7A9Uw5W& wpo-hnxg g)Vr/6 &-^^71% TG<ؚU{ԭ\m]<ޛd6UeO~[r_F 9S"و>{,1)1q۸sH69Tz>BsK^Tk&'WYktM61"RY×Id8ezS 17cQ"QZF$PǶ("W*אָ T( ٪LQ;Yb eZ +mu-_$g4±lL2-B+:*BtLSSeQd U!1 211UvJ4jf5^sl6WعЕhu4#fShdE?^*lFFP9$bbJf'WS0"8ugm1dŻ]`0/T +\-) *i5'}S(`'/M /$g$zsP_=yYS<׈ޣ&;= _LiukwAn"ChL?kӗΝ45$Yli?7U%M ;n~nӔ;}t1Kk <)3S8R_ = +_S!T`}}5#CB餉e dB zm?%5xOyxVOH'%b픁~D36zJrR+I'k:jƌ'_0\3BnQԣG0B<3PA"Sp;?nh`H + m!lmݹ)Տe?bUuZ;(`s#迧Mw f£%2N ă"02}F%31`d{׃=]B,\]vRgQ'y!4HSy %vØSs)aQ1EQ'UkdhwXصc=O6/0W0@D,ҝUL,Gb&EvZ EZ? PX2lV5*(yԫFprWV:΃+ 4ezob8o>-lKmHMףJf˺M"*RGi[_QHƱlVQ3HzDzEKMaa'a=[3zZׯltzoY_bbݺm\EuBAɉ'myo$E8y'6m8t5>ib /h}ٴbU?ͩ˦X`V4;*)+2-!"@?;@L_QvX~Ȟ#̺ﮪ 4} f0&:lX,ʔlYZrڻ,vҔd]7"1A*"{szubԇ +#8ԄSlGAD}jD]C^NB6Й̌ig,`w-6}m5Ҡ/3O=+ČK? q4@6߆3SGlNt1ay k㌀CZo`k`K/N0_99G7[hVHaeS1(`ZS',#/hd7 qUUKSIw|p,)dg9diH!Ɏa)#$=mh#u?2%n͔y.4Ur3Ȁ|ƸّdNޑrPS@(n2_|!;WɧsA. 8P3GO9aR35Wz?^|`5eG$0fU|S⠫CVFdEݏc'15A0Hc*LwoQoZ4 i {ļrb^4Z#pMC/qxËp)xRSl;5#^L}OP,!.0䧢bä|:PaC~Vvn,ݏd gj}&?m%(i+b]o5)3au\=pM廣sgM/:2g-}M|KIu*"*?Ɇ.h'NR_c6omg#JM.+[˭RsʎrUyFf/Օq#S)U͌g+e= V5/% J!~1O|њL::\ȁr0żp9zσ9ϯAg4oAΧRNhW8PT*r`*jg0bąt%H9{۞aoPM.Q;Hf~W _<\Q6G.W ##W㉉\=bK/5t; ѡ.aog ZS W6TS3Au>bqlH⼰N?FjE-쀉KLG >[.=@p7cU&.| D\+ҚU){=ey#gũXݪ&}}rRasJtwm;neA_D|)2xop9Sφ`1Dfq BрX|uXx*i ?4m| L @cW(A9ܜqs!f"[aŝ%J,q;=ٛ;J6z1Žkѭ6.Zsӓq+[ÇyOJ)|k& +2iuXwv+O,HE҂Ԧ41$n&KgLU7ʹ x"#b~נv>M7i|E3Mwr9Mt3a\Y.N31fNK^ 6>HWμL =NNoX8&g2'SyCaLj7/<oNi5:i/c9r3\zi:!6`@0ǒl&S叒 %dvECY:_:6 +CC ˗keEasJ%n++JgG?%\ł:t ïe[P3Y,xɆ7։!2Ǥia1R[dܼ8/9-4f1㓜Ɔvzst=#(DH\%?NvVn'QBEegyuE)ul1iI*#zT*Clu2pLoTIM`VJ0c(0!` ֋ڗU)4hB"(XUS0Tn؅Lڄf +r˿n֡( m1\y= `P.y+4=tI_]=-\ E=={9)))d{_g&Cz m]2T|_:i:fqF5F>Dd= u䰌WqB5asJnaY?fek,໚ 2hAeXUNw6d ioN;R>t_VwG9##jK1.RŗJ,- 3}]ޭ4%̚#tјU鉉٭cIWwNwϲ0+Fg%T'w;%S*a+*`޳V\m.( \mdhW:# +R^d7D) s) sތj4{oa$̟QO5`'W>! {8Ub=`\Et׀-!˂4f&3YeBB'0a9lnµ Sظ#m\@#]YoR.Qf6R(oӑBRs[!&rk{ cyݍNsoT V[~{67-k`&[fd*k1SjZZj˴p-;)\;EOKC4]UMVr'i=%RINTvn^D*bݾٜsBr7scb(,O\9 aYE~VF?xҐSEepo-lsلţA3Y/1vleY`8٥%/3jԐMGX@u^$\N|ٿ6=%N%K TwYߜ͡!5hV"uEI8v=4`y욖՗C t5ϓ`lx,"3%NѾܫ??]]xއjĒ{"ĞUs%O8Eـ+9w{8D!LW'jR.;YfS,G^17/HKw]Q db]qW򜜻p@{C|e4eҬy5뱕cvʅFKWæIzMשB~zֶI.^ղ߸g7M}|s♤<h[ ׎#ahl,[^VV>%k|Ƿ_V]"Omomg kwm]50N&S=*~Kg#«{Er֗mso*cԺꀴOqM34zY7Xۮ$d73:QXh1:Csa QmG-Lh dsCΨZC겇.871 9Uew]KjLkŻBy!D&3- }{;t'2uI)q}# ̜ڴl+E&'E.t 2 =S\ЁT,Ls/Km5B3ƌS8 +߻"~a$ؤ8eOۚ$ׅO`8fa(f+[I+5eRY1H6ukC#y +{}nPO&\lau1LZ^@4V#1E _xBdRgRv3v&t"9kL fc\ݯE3-5s⊜I+ lHk]FζзlGW/Rvء 6_]l%94dKī:yɍ;{ [ $B^.? miBk\DY:u Wc%7N)zT;/8GKQp"=Ԟ.GXp'#Q1UlYٵ"0$V`9a*2GФP,N):iv)WPg^ʠ^!g04'NCx*DfW;t1{ +oR&?MtbQ^A+{ STkQ GI1sW۱=)a+kWTӱ$7̲QWA6.Fe 4\M[<'hZO^ɭA<1fmz#UZ@K ꯗ#tJ^ + 4Mrd +/k,I?,n\U$۟V o?kQvÝ\t\7-jr8jr9-<@ ³78Bb=2'+Pw}y21uA) !-w(rPMe6E. ޤ$QcX|pL 'r/6wT9tgZu~ig>mYL>}LQmP'gqHwW>Z3Op[ʳ#aAxj^5HN@4*q>|ŗ+Z ]Ϙ% z8`jX $eZ^D6oɩþ \˪)mǽj@88 1/E:uUݤ(ei_741_8RGwpu'.7]5rw_^{b54Սӻtu'v<{6;,Aj3w[*BA]RȟQ"-WpZ":Ć НJ^*^pRއIf2P.N> %D"S) ?)0EEIϟƇBƸP= GBn/,ƐNn;VyV>P" ι6ʝ3! + `-ʴ> 'Sةj+֬ihSZ)2)Qyk%Oӏq 1eIYoK=6!o|y i:2A; A'<%]×庼Rjv-D&5*#JUpOʘ3o_xt]C n 3g#'.'&)TB:nMvX rZ7iPvm8-gnVdU;VSɈ>'1:17o&HÒKPD@I[8dz NhpNY 9~3%ii8xΖ)R}:7l7^.onjXQ5 v af_3l-W=|y܂px:pt2mFb9RW#J>clD(SU +f9!q:s|RT!ɲu?0xqȻx00-McQczd @\(TͮùR\)rȼ7RF Y22w+sa""ҟɌR\N=}[#ucr +ƫ/|dlZӛ̲X?&;P G挄 +%grh$NfjKYS+C-3ܧ Q&|BNT ic.^8nYtLZɍZ<YfL10uj-K[#_˜ 3#Ï`vԠpC<J%J$&xRHenca,跞;wNOeb3fQ/r0͛#u..RLA-D*[ӭ\BO:us;|qs myd2 SIډG3i))$Ie:wo,.(;eGy?q|5!HX +:` +{3lW5KMu0_QM[ P +&qF>x`=\f۫c~43U U!g嘥ʬ:-1Ƙ{PfŽ7d[4D'˨@ߢ؉ՈaYQ5,&d#8ȿ9a!i,0xB>;aé"_ DA VqR0 +]{&s[iom=ȗ0| ('pe)3`Y7)?{;$]yG_WeN_r=UJ5k t4UUIv5A|TABMK4Sbk;IPT<8JAnIzuQw+rgun<1y8L"G]Oċ")EAFG땕Jcy^ hq˧y֭GT[L[(l:-~INMLZre'"^G~:jb+آM'6ʔpP8c`K7sڲ Qw&HFQv+ʇetP^~uQ+wJZm35mڹ'-?gYKʂe=Ln:6n@uuTgp Ԙ[wf8EX8<(-L Y R= $-T CMA™/jy0w| 1g9A1qƚs(<L+>8]l9݁9\N]nW}1UOn|`5wΝsf&'R> ##NHi:-x %e)pk]||d"ف>0DN}2S/2 +0n ^'gLR2ΈV;E|y~ȱe3ƭeLB͒xl_4Mog-]KK!A-PoȵMz.qcիg2m̍5)!)Uܺ"]z6<vf6j +mmi"8ԔCkyE/v%V+ bJ77"K!fZŋ? #_.Ͱ YGjBJ[Yd/@ſY,j;ɷ]jYXI ` :K޲N-)dKryAUc12*wO(_TnmO}Ͽn֩Sمk ]}W>LiWkϽj;⭫wNA)Jݘ |_Pu] -S0( @: 2j6ɚ#O@̏,[6I! >=ہ6qft+ ͙e H2y μa1Ɲ 4vff1sDK'מbqWCM g;x^ړӶ;i0]*߮Yn0 0@I)n/״\wH߶ȽWWŖLNwO<{;d-3nk_50sLެכ3Yԟ${ΝI .X ܟgaē\K}O2]Ya u7 Z!8a6kW0zGjQ]zQʿ0WA]\>[-e2CXY"wrɇ.3s&YO29=^6&mG=TtWW3b ]-m۴>\:_|}kkk#e L 9u\NM~g[IsD f^f$LgI'o9a5!7tFff"etJ7"S + d_Kf7s_Y$C="-KINxg:Q)/ziWV%0>~(g/<4yv)kG5/}u:hBkr5ki6ad#a@ 8I^k8i``LE$RLͱәN{=j=ŵ0#0r΁04h#i_jz:[j#:ܘ*W"ˋP\95:71L#tcT(o*S>/Y%}zчzMe{{TTLC:qzt}sm݃J 8I}n+nnP["OF,/suH93/38lb[] TTGAd۠lP5YD"iK40+61/Pe td|à,m@Q]xTffD|O>N,!n h4XeIJP0ϒ`uFl_i~A'_^~jcC|0lzib >IgAM!"-".DMGV7aJ)n*D\cyzu ȑ:ʹk%rԹy "+?i21Iz;to?I3l)jiS^.O] ͂lD*X]qDWgb]fX-%[ b5bB!(}#}K0ZAT#?_ɭx«%ו{G_3ZwJ})oݿ^;sLURfDtXౣW=@ޡIqRCvgS?}L3(6xY5gKDG}x9܀*OP=Ku<5r+n|OSqaݟ|A5\8i+5D<ڲH>M=Di[h6 JG?hSҖ|Qf:[ՓɎ{W"" b{zb\1TMì2dCP,T!*p4 i*pwP3Rh[t*~mH&]Kx1*w嚼ǿPK\I =.;ʗgo|G;#7QLKg>Zuh=TG{kCJ;QѾ'L|*rGoi1,/Rqd 95 ;\fANŌ0G :gI[=g?/'!2"EC?>:CK M2+#@hmEj}r,Jjp<'^N^N$I'_ +'ݟI_W>|VyncS?PիV++~:RVU3N)V ,Q1Q-p+# P8 +t Ok*0k;sóN7ɪHlT Ɩj^N?#ZɌkt'VP;{ԪxKKroCN1%^'H>(J-oU7 IhzܧybOСKfddP,{\nq&%<6 HM&DCӳeYvdxNkYA8t< ;\(@M5ҩN'f/3bK-@lCu҇l)vӠMʦ ih`F\8ceV64tӂFyjqmAr} d]$6ST;8ύRmq[i>ύ̺V +/fkR-B +׋>GeW/IQME=RG))Nȋz4 +￶geéˮ\]1R7m 23ozV+5l}GӳeaoQ3iP}QMu_El|bKW]W06E1ۄS'`*L'{sYj1 9dd#EncFVP`ƂfԷߥ$ϫfpLދ,bl!mp߇nr +10GԬ +4% +,/լlO\DETgs,hEd޳-`PKMQ51Ѐ:X|Q5Pl/S)D4-MMIC^ɊtB#<i9AieO/YN]Ww |'f|G:UtݻJ~H~mW7Vk(GW4klGwKg$5 +oѡ 1<}ˣ9^LP3=Mx3j5$Kj72 jG֗K<8-Q]1UY&Kj1zԠ2`-<(W~?Zv<6u;/mz#55Vۙ0θ Lw>&:r[;:ཁϨ} 2xvOht-v4Ia\l^![^X6߇j.g,MF|2y=D|v%M޿d +09j#3޺;:^)ʪQD,'<ztYRJ2珒yEm[a+ۏZkkCS[c >h_٭l2L4דQ0 ex@hatd@j:R D(p0 `eS6.#-E WbdD g9 4)g*:N@m[V^J0"Ez`Xٮizm@y@ܬȊMw L1e⚠¯2LayYݪgI.JyMio~#xŗw^ܹx,@ X:{Lþ7Z#a/cgPmGq_N~KZ~} |8' ۄ꒥iPӾRaA-0lmGۄ),*=u +{&\H דѨ[Fb$|Tm eu`Q#dnHs? Ë́73ut`MqAuD QU i1I^MO ?^eY/ ҷ Jtɾ #-yoϿVxiןvNN +鉉n{;l07DUzP金s(= =ɷJAhsRt V>ҤʁCՊx{2áD +_LaO0z8tM9?C۷E0_% + {#X(qml&=ĵCj*!lR?UxM/%0(v's=uxvvPY[!t4?Ge>?V46ӿ ^!Xs"[ a !;=Hm35)}l@#E\PJjzZX DǓ<Ղu?EsC +3?MVp1A0SPs3K CY*'dj-Nvnwb& w7 fpCMO/*M +JV#`dq35{kg'Ƽ_UsecKAӜ]__\,CjiUSW0Xmu5bAҧ,gut tQ+R>-}2yGݻNr}f?E>u?6C#$G4HVfԟN7ոsV_d&Q2 +$Oϔ)dPܳ@Ҳ O[VRsyMn,A]=˒T8AK& !#t>%04pqF3eLV5ޚHH۽5WۍzArL_2~Xrx*,KD4xrYRTbʽBNLonV˪,LMU߯ۮĥ|KG6 os&! J[h4.YSjSwp9FHpmkkKhd/LӠV!ݐZ|~mE-;.^'ssiX>(ŚP_j6ò,jTdž_4dΩ!rӂi'^c=]r3WE|K8amkڔ26 vv-q 'DF'jOᆎizJn0?bkA#k;z@qܑ 3FQS% WJ Ny~HWi!SF"c4s5--M7 "5F.Y`Tb\΀!fq pa ؋p"PfH]7U 'wII9S2>KD$-Q2I%3I>|AyW*&3@>ɏ~ׯ\ܜ90|zaeehr谲,0{Wr+ÚCݼ~^qsZo*zp-ԈH[[ !J;Җsw;c@$NE y):iס>u^MX`;V+L4 tlݐmWq#4 p>3"jAlaa_ ۲5q-{2{Z8A7/ulXHfrw 5ӞUS~Tijk˳W͏~w{ƾ(c#_9Hz:쾒UuLiq@[j5ΏGw%zf2 +b`_0J*f欜=fKS!9O1IJJ{B쵸Aۈ/+T0v 뛾&dkamQg|2,KuS5*!Z)WΐW 0cBi#2 jZ|a'En&d"sl<~,*W:d>ÛWfkuyERKVKvح$fz}ukMNB1 g0 Yt}DwCϷOĖ}̯!~UdL&f}Dap96YezsV-gscGWVڳA) NhahϯWHJu{J]ٖOq?AYۤwPIxP2ٙ& z btw#Wt'Aƣo1$|zR qNKSߣYİ!e?qz'ScpnיmQxWRsb{ʵДE5?J>yŋ]Xj6lf[utLP Hx~_;|؊ǴwV@>tI"*3|m d%Ej* "~黴͐w91ֲ#hL?;BB( o +Na7ߍ8쉾+>y~swWOj雰 M#y|n';=sxJq?}IVZY;4˔'f(d/2 $+7X$y 6"S,)D5 2Ih"cETu"aB8#V/b5UQA֝Ut[,!9aTөK}?~-V7I_Odc^ͬO|D/cpƟ}N[;MxeFdǁ+Û +mrЯ_|Hvn#IR)S2ON_^LX޳sԹr~@?o{#2 _[y?__ܬu(Je>3P?B:ՓFq^7{NϹɀ^\SmJ057[iiɊsx~n# ; 8+̹HӖ+̕ɺVeļU,6ŕ[CXDARaq\8ޓη7ͮ'rȋ'G(u iD|5s|'Z3:uղ LC#?;W,{@Lr$Sk8Rf.ʭiM\V^ƥ +p.P'x&z'W&gfMMa}t?5xgbJ n$Xʶxg 6d?:%v*!4@ Cjl>V#9tJ)zH5lJ4mop⍁9 vwrcd⹑sU0,m]:{0 jpڗn]tӈ%_Ur,_YZ֨S(jEvOY%Ks?4Q\P6e/W@JxfaDuy~q[|4 J[4LC4KkLDSj.`?+tXuJ"rhl8C Q}j[XIC DA q y_O6D&b0o4h|7O5oV;9a\\Nom*NSCФs*5[ m+"{9g%Y6'ePf޷!û\ἃЈZ2TJ|4VKl6%ux OLGz}r\k]YYǾw0ܟ8G2K9yed&~621zRdٖ hSd@l.W)Tp#0?Y/*Yu5@H~yZ%1a,Xޝ1۽gVO++;_cjaZ'{:G\)ڶ?w!B +1+r|dZ +Br(*szDw?.t=mL^=SGRuQ<ُI"kS}!5[oP璺J ^g2LO6ףP, Η@ 3er +Q!u,:ƦaC&llonL~K>FL,,lnr@'W < 5m6TJP`3Pf֨.nxY]@`M4߷aɄ{:`ljIK_5O:T +fw +^Hͩ%J9W.\.PSe?!ĸ1ՎX\+n+_Ds\<| JD;p-=LM3=NbSjqdLg&ff:f^΋>|S^/Տzn#ITu]0Xg .&^ylV ݟ4^i#Lo?N)aVXV ,j9- ז&'\uz:9|<H30ڇf8m2kkPؘ@h~,xg݈RV2٤ +rzݐАp'4 (YJ3Cpyw@k=Zi7)9-wjs'W;b4wGF]ovܞ2l,5wTL+0zRti_asoNjɩxhR _%Ddfm2EpJLr.B|;xJ9xxH6`N/ ܔI$Tu޷v{IJϯ\O}N\Ʊ5Ak+&^(ѯ֧vʰt\4||ET@Z1190oڹg KL*jk X~Z;pwxLl1siglZVK>gc|Sf>fAB[R98O6L1k)[N<5Hocۢ?*L=kL~">;r\P8Xb 9ASכuDOR/KD[x8Mլ4j]nB{y1.aG̈ UhrH,$ I7@ 19+W%De}47UeN,S|:]7 KUk@-[U Pm& `hv䔪a2i_O5v;ߋֻ +K?"~{<5hwk)%b++k[᫝x=ʙ ˗JU\Y8K\I/f(Nyo0%Cco}2ЩU2~L]Qvtȷa9WC`,)b3S$CUZt}9Yt?%@q;;cLG%el3B,#yڐRazupU>B:gg‹|JB+d 瞫LΥr+<ԊũS,h4z5q]o:xT;_jkh{1]#bàS⼣JΦbHDS{p{:=l}I4DLfd ĺkaGL-&Uc1ȅIWOdzX L 8—Һ{[ooXǎwb^l{jϬb18P}8Nl=wD3YX ;  J%/~12mYaaAP&c"(9/%*xT۳/u*۪iQ9~Z!GQl7C|;|$Xa7_jPXev<&u J'[koP{:ch`3\UXN e-U`EϗG 72}̙3) +gχ}P/n1u5B)?aS۷g]E'y$b㢩茋Vo-c3ϊ`t~ϺXWP2/F6Yte$rPf%6iEF`"//pmg:lEt5Y^BG0qׯ0?+R, xUYhQѬx/w| uO;ONH(#lS=y$IhԐ s%>+ Cae'G/ _mY'()k9HT1 Ȗ2DSdN,,z^`)3k& ngYV\l֗_\;XZ$fŏ +ĒyRuri2JDNaGGG?T( +<uSPSQ櫎n޿p(b1+xٜX -i;0lCߍ-!G SŤnt-$Үۺg ?\o- dŕBimU'ǒa+ߗs v+`fk`MbOuSUi:1EU+rʙ;Ķ=}_W_3gtm\: έb(צem FuG&c 9E RT2 :byqUs@fk!6:Z'` $HugdN=éK@ZKm:"|,H b[},)+F-Ѳl<'y ƾ; 3A巇XqM?KG{aK"91-4H}o9Ϸ5ew6+6Y\dgYЋ0pyljeG>r]Y~ST+s NK۷JwDsT34lXE6 W!iLƟT˓֌q0=['0M܄琢L#uV|\mvgZ\vw΋<^J$6_܆ahRِƵ񑑍id4˵v[lR= kgTutks9MWoCRLQ fflVU9Œްe-70qHRLW4ѕSx`?2mݠyboK_7qGy`|&+˗@ ólzpvjO$8X`hP^U5d. #ލ7 q&ԼRU!Q%_\|7<:ox. m(`=ż-ۚԩYHO|o>eXtlLhKq՛\oG+ +y:=3/%7 ߀bW^t3\_]Un \>9cPA_"pgZkVF|_mdYKŐJŎR(el?Kmi[CX[7)BRrSw4S9+)2FlJ-9. MWSMyMtQa@ >/~?{YwඪzL--KIoR'1~m4u {]4 k_Mxtansp9Ry)VbߴdoKk~ Syg(ży4ek*H.Ԉ R9ׯxw)\̵rҦLnfwWV6e]ޜ>Y2XpgIj+#7wY>wEk؏yd0;nRQm +j2-|9nFĖ3fMt~Bn8E: iʉHijX@ՀLwW!) }^(Lh:9y5ٻ{wͫ 7ܹ*(o ^ (SŽxgVMi/=O<5^^ +)F +D 쁯"DIDkҏo$"BC_<^N8ogf=S64,/Pز4pܑyPpyHjE,P7K,_X(q\fLqO_z<*AЯ[o<'-~$} +`+Ohd7d-@ =Nmӵڙ35im}Q[k'0RR,g]7,DxӬ)XtոSu3˗ߩ칶\RRBTlNa{|9~ 1u2.33=cTqŤ}״eDssR>Z!h+FucCRrBwk¢j]uF +zէb\<&N2.ʶXR)cTAX\no9R1ʙ"u%+sJ݋ԽYp5]wϝۤn*`tG"Oq1#xhe=3HV6Cq0>pq5>#=N#J/Sr._Z6}1Ы%~%;ߙe5EfJY8c1F--}S->b}ІthT?*gBJh}ߒG7yc!X\Cs iyes_g.=iLWDԝ|tf-|*uY֚ڼc-_hN46{&vrh]ﻮ%?D4yu5=`Β&5LdaTcw{,M9ZƥXJl;iHOu=(I@BV5qº|܇KF %4+WLT_zZeP68sF9yzZv +״t5 4qՅ*ѰNݢpV[;W@O+#>R:rDw5xbZ9 +$! J/eZW)eǤ 93i UcKG,c6XDS)%wb Oza=0-.lx[_yox,[<^9+RK7oeA+d5;;xFUws|EOtz-'o G-ͷ$'᷐iшbF&' bGL'Jg#BKO^ST7K5ù{uđl7oJnNOK5Q>rU10DolfIYTV.H9 CL?I:UU]k)wpMn@hEZ=A~hK#p@bJ T8OH`5L4\)ZDKX˞Mْ,ʚe}EZ ~|:!&ˠbǵTeI;yߛ;wc'>!ۿ3+ɫ>#1~ߒƨ[mx|nhXJ|D-% e|w(ЅKk(U02(i_tQ^UEYDf2'vS"!-XOlҶ jR*a2Kj-.Iʩvnxzʶ呋G"He|J~U!>vX{Ax3fy{}o?~o^{x[;?.~v~(Z~j~>[7o}{ ۛaltyh S?8I'Ŀ>nJ1FPo[1-ܕ٥ܝfDX2M"_WJ%'Y*/(QvL=>b бȎ%A?jM-%hJ7QdZt^N[f8FҎz&]0+X3dN~(CX lrnYI"dLJ|2+\6DsnὄVb}^hjMѴarԑn"nF>ooXkbZ*fsrj6^_y +^!EˎLeD&cS%ߋo;1qvyyaAlLM̈r<1);` Ӹ &Hb!Zp1c#)Mmߖ)Q4_NY?ðשdggǼy E?rnypQʧ͝KSS33ϯOr?0@׽>El?@1\FXq9٘ 1IFsP5,$xv#C(vWJd Y#MFFMP"6<0 ]TX(b=;ikI_ 5^5^}+ )yaSx(rX~bWh݊yfN51<}V ~P0"qCh 4Ӱjw ߓʛ_|ӗӦƋfԈp0[!{MN>/_ĭiQc x"nqxP(NLR=I4: Dۥ>$>Ru`Zem`ʬfj`>$F 6U/֞D>K)` b6MfĔoEb58|FdHfph*[xgV#!qH1c}i:fRsqu=zS"Cd_`YȺ[qll?ܙlR+i|no'v ;]%{ϧw*cN&kBLk/ q/tj *T8QCp#l>#RHh!UEZʂ0kr& G-~QY6MT icH ws߿t" Ϯ'rZTikbitim͢*J*$ɩ1{~g{m'y>W`g@ +3/ +ߞ?I-T 5xng,c*ԨTԆᔜxkU#cԍ 1K? + +R_wW!;"WĞQ! FXkJ[n,&{^ݬ +_BLmT)ٞIYq"mUA)Bf^tx^/2U=w +vO9kϼɭyv;WxݭCzI'dzʕgGGֵlY-=W{;&~o> Ў` 1729pVc"lH 4bH ~/DQA|5| Э 8MG6 +&xPtrl(0*jY)=,ղ$6dSƼSI5&#@?BW5#wN|c!-D)$̕,ILt8J C̘)>s:Z:3Srrc}snk\j>.}90GH + i "^*x q>"jjKGDaEG}9$B '@8L>b ,! UWgG|şq=$66\]6`9'Mub +c~c q0%,;KkZZ yRE,w4G.w-k(.f0(^o8s-W@ߞ02xk2Y 21YoQ`wDQJfHTR*Ȼ*Zh`^&iuJe%(hN <8*4vmms[]l iΎszWԶgn'tcAz+[7[+&rIҐc};K ̈h28b^ԁS\b錑\JYA] |o;vD,2$Q1F99ʯxG+&_ЭjTFCT\_  *-TxzfE8$3E'dLFxBG-.6srRg} += wh%іB>qD2%ÞdT3=6ҵ&JƤdۚiu,8)bWB[dF)f(\BWDjM#LG$¼'8cReC(ɲk2 -w֑ VRc~_7 6b;ts?m?P[ HlY|"BTeqj+̰^|GWvKlxWFJVbŵ02:3 +}{mtdt NO?u|{S=DڜɰF3*#f cQEUuaFbu + +s8 o9L uyӗ!W&scm>{|Nb3hEUQ&4"d_RFΗ7)Fc5R2UjWm&OmGf{kT"^)a{̻zBP}%~otU(>xɺ^Rf^esiګ̏ģ6H??t +3QQ5-@#&>"3j2-&6ִ7 ݈)]f(zH&&jh,%j5DH5N-S|a9*E0Q9l9L[}!I+#t؟ +K%5C|Ô 7ozW^eg{yeq wT}cD+xނNI݃}G~C7΃ 0`|S⡭Q3%3NIu-)d~USAqs~T/-;[BQA$U5 ]ؐdCLA5 #Fi7sRi$M- :NEL҅LDt'?/xXH.ﹰ>$  =Afȃ |>5;̃̉eq8SƣjczK7vu\ΘJ+B]LMdFAl@%8W p 2 IN!cu؋Ԓ&#&0U\p:D53 +ܺrvo$@F@dul%5񪪻&Ė 2mdfX]*?=]1K-=9䥗}dCF@yaOO7]ٞO]q=]n#nN+jH%vˠ"U9'(r~:잋whWk՞o9ڿZd^7e3`).0&H t ss9pSڊ]ϜR6)Pş$;δIЧ} _3=ZZ=@vIN3EI pŤd.7$] sk"8#U8#J=ٖSI^%+p`*v!ީCxS8XK„X^Xz6}A3leyMư>[XGNUo$.=D/F}]ظ=j|zv掑i(x^ѲLwMc)1F8$DpKͯ R`4 g)뮊9j&u~r$.`Ŷj8<ȴr~PdCoWu wlJe*R8!ch(m]~7Zn opzg^n66G6#I<浝qP:[ʦǐUc?>;^ g2/A#?'`AMRx|̣-=[y8ZXbP2]P2,k +yǑ /J+!!P_> +J|d$F&[6"k2ve0^4(ƀ$;f"x", WQ^s^{^zڵ_{mHJ`C^zi|Pkxt49hhVi~gvQpezϐ ^Lۥa_{ﺈw*ś +goIX,:Teʖ#/{b=QutæhmFpB-halJ ̏Y3ˁ%EiS js*c7x%(fGk¬N:*S旗gm={/-zL#bHt?ۿzP#_OcNK=dk2Ha E3)C6#pw4[&6ƘǦ{*7yضJ-ir}yg>e`ݠLM\q +LXOf6TCXv ‡'_&#=ukkkF2!$g2Cמ\u y%>d`æHiɮڜyؾZsw;р{?#666n7{!!b?ϙ, _2"qb7dI1l*Y1d +'dtu`HVO]T~4'g{rmo`(GLe&.0llFL8FtY ӞK.`J;m~r%qe~~#szNq<7>=[ol?s7iF3y؉?U]18SNT;"ys Q^M(:/hzm<(6@Eap)y7 lN tVEԠHL,/UJ{|g%;R 28hzBgRՑHFgȠnfh >.ijh혙yn +ᇴ/DduhFcr|˟pbd::PRy^|3_q[hK;W3E68̧͖,1SƘL4 u-KYV30<uNMLD6T mF2Yr&ۺ" 1L)yOQT=Q1pU 4lhi9m[2+s9Ύ=zg޸/4jɍ텹|G"7O,iEZQ) +!B*N 1fd(Lo9~$oqwwre ?sp"Kaz5 ._iІ09x)W4ExV$Ms%(u0 K:KeU[mH24-D{&-[#ww=ozq8=|‚:.| ,u$ֽ7r!1N10H!2:+PW/-]xvo7\3gm8lل,v*&2Pu4StRqYYt Ɇɡhd:t,VEAEBbXH&sldXB r3gGm{Za +k;;Ѡ49g~O,.钍qwc+oVl@ɫF\eEɏ c|K=x؏){%fM-™0^3\f)bB~&ՊIYEϛiF-K pgNs-h{t@בVCڨcC6mSfjB:Z10Aeq/w6\\wBPEP)M+AXI f~']/S 4u&^akl;w,Syff %o!,g[:+F )*C# q+Wet0bk$1d~J @%j o`;nњ%cM#ɮ3x"m^ v$2V@e +ݤd7w6iDjh$Z("gFґF%9?>C $Pec)$.₈)sU0_ޓ0szrm!pf (m`6 AԖ6D<-+s]i]RBe~v.20L~21:1ryzyuٰiNkfDZho!@*⒰Cb4z3"˧'賂qv\ V"u1Zl Av@EDR0("XX]PĊb?BoӼ/mnoF]=ӡS43 iG~mj6|6>X6uTǑ_}D?j)YVM]U$B*D~: YY[yO!*0$Ƌs5JQ^O,{DܲW"]f 0)\ +e#܌zΨ4?P2ikW+{9ƽaұ":G#CDH2T oq22y؍y3YcYp PF+! Y};?KM~Q[˷ }<'Ldqׯ0W Ћ7D8œ8FD=(US>_6XaZ/靖6'qMkjY_-+SRYN0U&;}i>ǸLU&蔞ՅL،zќiBH( qn۶d<8mYX|ȿJ\D"TnlZg~mFWATBm "awk窧k׬w4}OEOv !F;Lde+V"ɘlTap=/L#GB?/*D1IaEuoli6(ZdnYnu}*ĄdmKȋNجX2V.Z`~HLe?}YUf,5% /DFjJ܉I1+JW0F6[׉đ4M_G$W~ư3紪vUƸg/I;oU;o_鬷k7u;k33w( =?} I ҫ'L53f +Hk$$c4[QnJpH>Е@d}CŌxR~KunI?)~k 2Q _zI;I&rx հHMk$L_U 1: +Ti+V~(Vi1>ǙXvêLZj.91FZ+AnEt 1Ϋ)O g}764%Bk|QWC9ٲa)%H Lœ& d3TZEe-݉$ZAsGK%.̤ Z.Rs)]]k]^[ۧSϏ+d6ON-&vL3O)-[TpbO0Ai̅uCe,g8ŋ;R Gz\VOD\ *b8{"ذ}FE*b@v ZSZ/nC)YVYbu8wqjr' OGt5k@8Yȕ/!DɔG-T Дᒶi 3t3WXU)MĮ<vJ.-_w]DET#kFu񞁺@J[  }Xx'̰!&8HRrzPnۛZjЧ[-05SBOP=DꝚiN"#BSR:Цmq2+?xgs羱k/jSB8"Q8%q),PўbsTy%yH~9PX{u}!> ݴ3 p|o(j#;m'> +گr_=+s[o1!bI= +DZUЦ -o +MlSp69nO,Vq֘r/4$4Ti + +-ܴVjxWMC&N@1d-e۝C1V yPB N*xrq X؇Urӥ%Ar X!Cɯ`[Rgz3ÍR{?YΨ]"P][Wa _US3;ڟiGu;dֹpL./ޅm0Q"#@D5lblM`'`b߇ؔ#th&QĊԩ8_ _ĜfmחF,0HG-]0l4k!Ϭp5aNзM̍[@˰ +rpT, +s&Jm!E$Kw\8QT*k<X(]\[Xf-DdIkO饓x "@e2LA*݁ĴUyZɌ%P#.3&"?MzXJ>߶AEHT@d76lk[ + -T| rE6FFn0W~rtzq À|QǛTtFےpvܮozZ͛흝#7qWWwY~޸ggرFhHa0U(l4v[)ClD5LIYZI}RO,ZSI`$,v@˜=V Ax[rUyl(2 CP&οP:WRglLI^˱vKLݮkSiisQ9yDxd'ln-}⮹= S#+ٙ 9#%IJd#;# L 9෈Lo[,in*g=&AUؐoT*{MJuaI=n剅{kiY-+-=FYsEP!FUKSZ=6;ڛ''>=Nx iZOM^?un$}꫑~`?ԇ.Q._1̮n:ʤ6\\3##+HF+՝b,wB^o5]w1mpD9j`}X)ȿ+9;tg1En/y= 6læ\LńJz0(0d%&CLJ>dC R+3dy`9o0vqh5Y[ao1=gr~ƹJhڹR.I]:}zm}nAֱ3n#㙰C 'vt$ >j ɫnYnˁV8U%`^`!]C FOE[8. fZEGvZf/(=ZmU8SCbXMrꥵ6ccV.3"nrYb/ ^mQOjtp:c5doXHIUm>ٽ׽pa+;..nʹ +ӹuhrgQD9ƫt'Ӫ<L.w% k DDZ]x0D/\{zmQqW )YObW4\GZekbS1UpM, +E ~o +r.N鍭1%j M{G.V'A0}tC?ߣ^ާnh6."2`pmE@KG܍HYqߴӇͨ1TaTq}OŰ((T kJ:4=Jd$jqx(Vv\Ԯh\]*\*;snnktR(I%2hW99]; }hh J +{NMK(oxzi֡voL޺mn|∸m\Yk )9_Ep@{$ +B'~A=~>>Tab0ʀ@!a^jJmD?О,mml#lץNxٝvʭٹQwOiȸwg8Yn9V8'kG5+f!%Ш8ItWjs4 !z$_j&+j|W8O]JAe?_K&3(aj^Y]Lu=cIZX{dVg՚XFpz&X +8Jx⣵DEgt]ҜsNr]һhs#k6u|E1@ʄ`%0B8TvhA\q\ʬăm)V5C@SH}Y[K)$^s}2x7I7+x| mgyܓ+3V:.̓ ՝#/ˡDzܗ쾊%tfG$rT?3b=P-Wʞ'\©cj? M\O&:"o5< +IOęJF=t";jY+8RrVx$U:ErVBS:1Y[UQKz*qf/h\][*Dlr3/)(>~vݴrZ/5f7a<`y\xqs ւL`}"}:HqNjԏrVGoiWgd|0O[OYfh!$vY!.v27qb`:#ndmmUَ#jլ!ȝӡJ][gVPi\wXp25m3_CVo߫<t1q v"C &8 K˽Q|W{U1Ԡ|}wꅨ{mT/ܭV^Z/]:Xmϡ\9BaG֘wFG1^I;j Th/EІD"[l.KM s/r"C}ۧW" ))қ=̜UOΨ-Y Nuȟ)$LdˮtpŪ$QD]V]B,,ʹLnC(d.N50ecyRT#;KXZ~C?^t_叟7,w[ +W/^,S\>qL#q>𞞉}=r3;Ja+ g +03TžSչ텦mX/9Dt0arۛL':dNlg6{1@ڸwJ:b0Ohb2R_&*äR(U{$|(2ב<Ѣj2&B3 $Cm%PyuF|Q>e@`\*#)u9 ,0{+/&e"ClJyzĩuO'`Z~°7u;"z[j+D-qNɬ8.ݺLn!T\7|*Ϥ@%YWy^(T7(D ͜kb' +f㩖my" D {^ +`;wڿզdM^&$_q;>t7?w85?W27n@n2aanfa~ܧ/|μ-1" 8q䤮nr^dԺ A-8& OWgZW_iy|Usl5p$ +EԜ׷~Z*^Q5H<ځ\*}dog ~iaqcHxZaazʑ؈iS{EHK;0u6-k~7{wx)t(uK=\gI?zʎI4=p‹G[|AA8Z'?l$3W U0vnR%% +^QmYMf‚IgrѕȠ,_`8Cqr )wėVQf;̸0ZȦ,qzv&e 2g.2v9"Z۟=IZa+K)QPL8‡KN<?Xj|_`xsW?qgef㇕b.=Ud[tcX2hovspF77-κ{VLY3Z53#ub2&iکɮ#\mR} iq9iÖ~@]+.HZjj1Feɽlrպc wdvg]{0{2t/Hz7H/' $P?Yd:ǿ17םIVȇus,߼uִJѥ2s7ݽgOo݊OW[[VUnʪ7!-@bcLnT>z$]k$d;)\gEog9jz(\~R j d핖;#$y>2ʋR`r*2$ e\5Z'3?ߛy4SaJ{Fو2:xݾ|.]_گ]7o_{4sr$8FI&Բ1{qz }lOS !ddӆ] mEJF̣,eTz0UNVPi#^=x'}|͡1!7S0(P>-zVvN̞!5vuEG:z$#xh ,U -WSr܎BPNNhShL-MYe%xZeAYq|:klRqୂ,aTYI[ jV%u@'p-M,ru1+77\}vn'O OtI{s>;OX3clCHSq1Zv#m\~BDtlzJL~O>_嶤EKr}fu +nzSI;oLb'vfU|ꭍ{{]YrLo=];q㎆SQ,GbU߭WΏ'ɺXef^<^י  9Ȝ5tS`Q u@Zo덜}+t4k'lEyJȜ"`"(f=1bkK9X[d8a'H +G״ՓqﮂU38*qcRCiwu?L-Z)LWWAqHIhV1AR j;BتV bq O~RWc!ͩ1YYewwB\VvDyjv~Ь[gOlvꌟ:ŹDLq0(xd|Pu5րG0k} )=5 2$twU$*QJF!luqoΥ((f^%~׶QZKOe_&щ++|O_2bv&eFsp^{Vrg+S;YNݧ{?E֢;17 Le`>>{gE"gJyT;y&+ o<4s@T(ȆQ@xHm$jJ̇Ё%ybFJd8U`Nctg2XŅDPzK ޫm *O<ܽVZZ=޵kWfn]b{[澛J{EQD8s*NMSxCӭ}-UxS{UWi(u%uϗiCX$RS{z XEHbРgK9̀t&6 8JQ0L9zAB5_?l\,Νe:v9xP%x؇ێf2TfG p52qvEۧN!0hd`J}-e tiGaђv>,q6keB'No{ HU@D0BܫV;ܔ:]VEH?#Bf3nQ/G&'W?Fp%3%aVxrĽV1HZ_ +Qcln|ki֖}HvnPzև:0?D(_/, 4??iЏN&.ڔ^Ova]NQ=h܇:B;oyu3T}dh^mhJ0Kqu'bԙ =#ubSKѦk*`Yi*F80c@_\*M }$r-7|Ϟ\C;PzoRb2 fAbPUڥڡyGmjҲL@֩uX_I`/VoӘOV$lM߱u,5?.៶k17az(D ]C`Jy7u}<ߙ3Cd|쐌!Myۻj@@&dLZ((bP, fE|'0 j +!.xFVrY!~"!`,U1H"3c 3/pj!< 8˟jķb[LXd^,OKTk9/(" $>Ŏj{Y"ܓ;n~C!s+rM.&"[µnwU~Дߨ,V jK9N#!Ͷ~PxV C1q)ZWUn-7z)In^_ i_a oT论3*U/Ǫ$%an06z $,BlLE5;zbj}jn3vmBn<}n*a%ǡ HS*y-rXs<q.S e:0Z{= ++Ju%] Hmedlw(.Kgs)Vt= VeX7$V"SB%Hn͗ /#e dU7=>`!ݞ9^q vƛWmRaO?|f}(ب;#Ri+cG rC%j;10*tXjFeG1}~f~~jClV 9`ʀ= z0uX {ډa]U3lLY`"aw >'_Π2M湞Х)oDŽ JY/ԕ$ΜS}gk%U ,"Y:n5ɖ7q,]Fꮰfa~遟ͯj|wz߯q5L~tt7ަ"xڳP8g$TW2>,Εh0%5<~cVc9&yQ2;al|5EM}Jweki|EZOA +ՙ%miyXXT3*Ư+] +X&=w>C`I}hC!p}=$ ec1H0+,~D|3-ȈNhhW* " Ulcp>`o88 \d~9sTe[Yw@4!ItOqw]j[ط؍Ldtd|K_Qm^[n{V3:*j3׶N][_/+Mdz?2^tZRVF&IƷcY,D6Ep] E5{Q4a$K+\ 6: l.zg{ +V!vXm>Ks2 ٳI.4gRJJG׆&+ɑs,D=,1#{ˌԆF@fjGQ HfTvb 2(}3 2 IP+~rpm˱lp+zz[3Htfj?'u%iMY0zf0OÞăACw=M)]҅' Q9&igC l[9,ۋ +8aʐXUw6*];@>Sdv\-Rio!|o{H}2e&f):%Lsg1*fVꊃJrEB9\St+e孬Tc$9C.)F:|I"ۓ/N?][ Zq߹ W|c1eG{BVej+M07]\@&n8]!:aF |y2^xKAsuR(et0T仔%{%2(VζlUsMh( }qU=.qvv MH _mp^#NXŜ1O*>mm7r{oWO$ݺ%q1=^"Kljxn6c2ט`KU6O@d>F.Uڏ.ی #XJQ'fB?#jƖMчGv}Sv,?5>V+L"4a(݂jH.֫9,\v컖lwL2Z`jϟ,n2cw6dg|UGpuQJ ϋJEr&H@TrkDV_1EeRPߣ>Bhfmsȼ^ :+F{yV-w [|{zg}kKwv/ܹ||\ܟ> utw mSPGzBR,J>~G@)L +]G@^TJٮ #Ԛ{M쇻oɌ_UnW+a0<]>!m$=$.EdE3 7K-u%NeڍבvK{]7}kg*?!9F:wS3yO={מxW?uzy\:ܝ79*6Dt#ΈZ. +O@2_vKRKRק Df!S&&'X<R+pq[] <[(j^t^l\|TE(A5a +)fGxB??GpFVGߗOEڃ =y8 7 J\^R<,yy$|Ǟ~0 ~$UIJ]UzOT)/24d0Ȁu7:ޖ@xpCJb&Sdnd;P?S8t8 +1kCŪuzƶ¥\el=u`ճ/-.jiwH])FiCZw3k%DƷӵP D>/n޿/_zĩSmK >wuD x&83++\Ԝ{KR*qr[~ٴ7&fR`!͈\+;k[X3!cD?8r.9İ^^ȳ*\JajHځVR.ņU]ړڳ |I/vJ{?/5{vy?O<\[ܹܸ}޽+W_ՙjt8.<FPil8Gڝv0>?+r@Ԅ[YEI9SK78E7NFh<}&K)T\7tG"._Oݕ]bPm>v52$aQfZX:6!cEM( BTeOMx6l@dicH62+o3>r!Q w e3|\2}%\h-D n!.bz-#W1bĔFlJԍm+Okxa= [O.7r}ɇ^{?Ê>1>G_|͝;G6{n7Պ@'c܀zc%OZ̩;ǡ68%Зh d/Y|{aa!\ Q ZiB`Fso=b<WX@"УЕ5m2a XOJeѸf+4aA1wMsQlC~7DUe  {.W1SXsҗ.^ԟ裯?Ozo^ԧK3 8P!.c&c<7RՎZ2{}zjSx.O,l`}MS/9c|Z]lAx`sMK;+AiZτ}U&ү[M2 /G"P7Ron垑^7VLXe,$9EAi;"SED15RՁ"عES2PO ٲ&D ;t-mN[y̿f+VF{l<+;7o^uԕ+p_5>6fV{zrQՃkjz:b{;7t^wT2,6頁 pr+'_Yaw I=!wtl_fyŦcv .2f6~ T:4yǫSP+YMYy\2C$zq,N (96dqQ_|gTFl5*m7=[[w8Gd?at)Ql{Gv)Gӂ?@GS!"Y=50QzCuw]UݸE|'MS9Aؚ48{: ww$F()s\=dR7,$0X>?GpB'1;A*uKKoe99ҫtв4)=eLKp>)kOzM8{xaυ巑X/:*Io _^ϭg_Xpt$v li P =ϬpoFUvZW'&|aoķW/W̞..n_+e2 }⻧{Gn;ޫNxn26x(#iyNbJe;nWًL@$Y`Dꗝh&f ]2_!t8]U:ch?FC2Bߒ7 IwŦʗΥssҎjYK;Kw!CIQu3k[']2t6a`Xp +.]V9KI6NIA==Byz[?W%=hKSbCR8t #7L=ZβV̍IlE|ͣd`S>|QO5OL6l8૯{v.}x3QT5=99ﱞ85-b}z(otݏu5{r}Ȟp>}Abu®*i*#,]*#\:W0S˃SV[>1 W)[fI`xչbObK+:9j䥉=$Şk\򛺇1S?/Ƀc'"kz4{[yZ4D?<#坝|ٓ'/]8SVYʅタ ]޾5ݷXNi_{m47w]`K^;/)]Ö2YH1ݚCpxߒ^g{~ƒa*pxӟ&xIg ]5ޖnxj݆"nlk6NZ3pd@.|N/[E +V0Iˢ1Uw-]s+ =O4$\&eߩjW1׻Y%G},,]N2蜛gm3>]p˞&"o O+eF)lY z>nd X[;`'kׅalΗ;Vg, +Ẓ6dggӄ-9 Sӎp +FK~MyK*?ÛWЇnK[sod +So૷ߩB߹}0.N&C=-ubݶ0aCR-Ea/e0b`f8(3g}tM"tCQFCvSK_ ʺf1aAᘦ(8еu4[DԚvO Z74 &cֵ37%&UO]45S$%HE&PNJ)s E + J9x)ۖl +i~pVrK+p:b4Xz^ytG Ly09| +fdD:3iJ,/NTH#!M +Жk?QHPnW-K+CGrNzb"\=ޯk{Q+3D?-cYŞv;xҷ| էc%.zy DtLON +s +Dz.FaJmV+T!@heeSq!"bOy)8aս0h͟cM iy_;?)&Eg J*|{io{cH;i!?$d! v-1LAՏP+ds2"B>%LyIE E=ɚ\5oJGfk5nܠr,*wʪOݾQPf7TRxy1t pЎfЇC+bkEzawr.=K8aeLu5QT QoEFy-Tk"GOBYVDtt~,LKL,HfwVxm+d;4I IG* u8$)#e1&Ff!lV1/]_$^)맕W%Ϝ޾thSqݾyxSu 5x+98Z:p3v"%H GVc*d3N:~@skZσhDŽf] *ySAM38i}Glӄx H7-RG*n;}Om@%M#&Z؄WK l X{9!3R[1%2g$Mޖ@Q buݺN/NmAgh^"OegՊ=Ћ3!CZmDa4S#snTmfEؑY;!&Qw"/r=lօXVe[mO E2̈́gT%3I sV[0 ra&? +5([(I˲!r{& .L4mTL,E3Ƒz_^]#`hNI5#X뒠FV{{g&@si^^XܱBjzufe;yXe/scrH>~WSZ_l߬mTZlJӆ mrUf8`]K7%F8Q[FIӃg, jPdĨ[誝1US6`K-No(B bZ~ةᚽ:4s9H6!p$$OX uH10dDm\jhYtCoN`ŅnQbgU˩CԚ~3ٍ-j>3mf*~L1m|PLBD>jxJngCr!f3CěҘnTMQQeI˅. Dƹ۠?X*¥X Kiܶl} Ø1Jv'W9O`+[Jm˙V/qMK]JJN<-P)5kh¹C1ྴ3RcN45vzS15.+mna<2 pD7{_c!ܾ2s'+3~LQ C"0 H$`PIb1GcyIA2>WK'[s ÁQFlŷ'$z1ưЌh({n'McfJ]͚c`ٿe}M‘53>dZ?9MNz7(w2j?SlWRʶq 7i06=(ǧ߯ͱr%?I]٣ h 2{;sbh^ +)<ɒlG}KgzЫm=8QD"kMyO`#D4Ņ݂bi&wgueI{ʃ`uu/|G7&gko֫/q棯W6V* —JrIM-^^!)'H(0 'Xjl_1mA6JHʇaS!OP#n/oyt8))j:,3FŸA)éqlGϠZNR*5UD% +"ZQ|KȰfc-lusGm] bmPͰ/cgTex5+sPrgp/ͷGUa<7[ל{/]y…9 S=܋/νɵg_ye{nwT>G8bGV28YV|4INOKIDvy8/n2| V"8ǩat:=<<[9 بGmmq,ͩSX3@d2'1sKM~L pSq+}2Iz+_%Aebto;^r7 ;Զ;Jg g7}wT%Gi2"~_ %\ÿ$D6#vg9,|퀸}V6j8$1ʻKj-Ǖ׶䇟/yi}?_k7Dz͛?/>~?|a߈ Qo;o؄uЍHNi黄,I¯$JƽD} ֵ\H ;?j`[SpW!Zxრ%;@_˴_7A~_rYx:^7-vS'Ҳʽ[,6Ϝ ^#;k$ +,5ACLcpcAвr*MA|)*3lZzdp1ap"jkx,ߍ}-i&cn:t +yDSCΤe%!S&M"֖8SUbʼnCfh/]FtX+AN <@!25+%2f/ 9MT*9nNJ;x${STɿo@cҚi.fpyl|?G>uq􈿀2aW-lE$r0EVb28NG},xgkt/VHqud_++OQ'ۊtvZ7ghjݟHxyZk~ SL&60*<('D)LҔz~_ +c3?,y#܌\ͼ.F+Y\\"3V;ZuU Tjg0V뫇!'3T#0G{T0G~'a=&Qs9fhw2Ɩ|[RS2o9?&pM!nMVޭIGI80LE ; ӜSqnϦ,({70<ƒ:UxU/EM8-զ=l&:$ G N[G/͘3,HfݱStRoj;_nTtz;٬MR g- 0S X]9Iۉ1/_$_ƌG0!MHOs5dR ]%Zu)5/OhO<5- Gm \ջ\"ޞݪjc np^< f&[\YZDz2P3&E!Z=~=t4>B["ھ$xhDhX1̹JȖ$]S9tĵQMF#ξmlMu3'*L`:h+bTҮ&Q]33! +_?o ݼɝMZ;>ZIbq;[ITgo WOD >K*j2`=i~31,w[)-48\ޑe;N.ZqUFV 8{ؚS6&rfcui1܈$h`e=ݻrɆ3"^"t59 "kx"~Ջ)ݳvIrVDuŁ㤾Fp |MiGooGݪrB>Ҝtr[S np b9(Rd)(Z!U,9j/UNM]Bjc^]BS'.\T3Hğ*W1.Ow\b*e\IVN~r%'5_GW7~|sqZ*u$ow7t7%}zv/sAB2QUMT r ͧ.Np>̯xkR8?Y ~;Xf;SIƚ+:W pWX <οGf>G !ayؑDn>M=)+>SF k6b(j_x;{&XJ5GC_gZ>bFyF\#$? 3f:_F0s\SL├X@~IG Ē.)AvG)}]ٙ_1597OBttHGx07#j lI-x]\q:Z_U5p~x$0%hOD#jHVK4EU"󰎈& +-?TY%"Yn$8k 넖 +{"|c[+ +uC^>@RN :Ο9 F-ۗP0]& i@ns`2ҟiUccۧՍ"-t?ݖwK`j!x5 3f$"6 X}sjxޕyՅOpլݲ|d1`cRil> ѹ*$Kk',i_ق@Bwj\mv:PvD٣ߖy cL\m5#0EE"2ui 1#4ӄOWtv{J:х˹%.u4ӟZv'2&*hB.µR$֔H ViS3++jZ~([G#ܘwٵismf(J I͉]%>Qws7]\EFhO5MIe7pڟ/>W7-899QtjvxvlVa~3EJsT$ڿH:y_ljaU'[ۚ.үfvf9_H5"+#N9)SP Q>RNPLZn@ TǽXι_̔&A@A0xivw$ " +pw&γ WF:^o9^tߝ#R_HZa^K )ʔxT#-d… rPBtA һ#ܬÑI*E63GB3FlMj8!1Ɩ#bέ +\ݼ+gi lA[͛.oѵˋqo=-T˵J!3q[Cy} sPu [JDܚ+ \ᖚ~6&!_=/YEiB\RL3j81iI5U+3d'`&1]Y~Ip}ĀsGd {]LF]Gg¯SqDk \FkG$ +۷;wF'Dgۨ=ew1R=G!ͷdyp&dhDJ5JY%ܡ4Q(̩;ܕMmVe Tmb:/I[fwMRᆵ^05fs|H:׮A;Wn+5n -Ь6 >p}Sⰰw槧ʔ^~m] +;A'tm(Dɡ,ݟ3߳ LǁݒeܫO^tdNjDceS|"2e:f29~Q;Jq=2\8.R+@FG>DٗǕ%J'o̟d(M*iV@+HU+F(n|,;1F` p^p}+C1ًv||2\d aZZN`(Y6=Q+$PؑnP3yZ͖RY̖c\;pfbġ rtkChY[osfZc7˅eCx8r pddH)*rSyAyjkaڱ6y[-j7f[9[S'йɥsztR\J5` lڏg0.X#c1:dZ?#0-ػFN?Dr i/`a'HsI$\TXOX[GD_Ŏ@;D 4h64"qnc7aQڈEv)&W 83]KM~% +\GYY ?;0X{ћ7Ʌ<|ի~d7Űt, c܀{069wwV[ʓ! ԙ8_44wBG%KhF2Zs' a`)TҠ ^Wک akxJ'6OmDUUubcV)-7 =BԲyJ 3!Ah M׈@L7w/8~IIv)D E.)oI6fSZT.kLQxS{].|eL d$HmYj5VԤ8|*v>6R diνz' {FJ:t*~z09*]@cH.2\̆7 3P _y(ezQMo1׍tCX1I455bcj:HAЫmAB:+[=8A喝`*e'G+-Ve›,^49=]'_ՒƽNu}~D &oK&`~"p/6֛$)RX:3HʉIl:~F$JLƖ$Lv[ ίV@|4:58uYj뭇,B7|̏ @O=f,Mb3 'b#=opűN +fe959/߻j5ҒOzXȊ23gf#G\xv\GQIfmw#%#YcDSpE + {%{+lF`yrg'y!S|#Ez|%oA/LQަZ5ÐXqeChf{FF)p~9ffz kyJi HqGz#b70#[P/^\{3wϜ\j}3#<ER$9gej9!ی%j^8`XpJ'Zy # XTvWB31'k66wQql{rs&p<:.8[\0Ōõf, oRdd )mp܌))J͟fu(ômȞv]|$F .b[QP~Ě泓ytMn)͞ݪg 76tVWЕMY]ݩrCʝfdPD&vA0!}a{Āzlh6&s,E9aY35QdFt30Z(QOemB9"I x08&7UzLd{6sBy{tIۢ~i0ڌ3O;Yڶ񌩥za ,ݶ/8 ooxyYI*}9Q*1䣲/64+RMJۃWw {=:$o,O IyVFuWK4m[(J,V\]=z3{>=f{ԇ|1@i/:KCW)^S &Ίxef݉fBg7^$GJOlշ{+/+(7]7}w^܄̢/曓h ~&wd`>ﭫLdcؕjPs⴪`l ) $WQ->/|4Oqb )jLt ik:$'4qڌџEvP>)\K 9*P(,Ovau?jI-QZoUݺ{t#ܡ9ɡM`P~fqc ARCBd7-1:Z^3gXE~!nq{yXv*KS`:xx7D5CۆC=kKE0+L7WL)8P#\vݑWU͏^[&(̕%E<3sebqSC880?>g+Ԝ_[Ⱦ*s AMwjVjhq+az>Wh^'@&5ldT9 i}Ӿe!3*tm yw岦z@2 r?nCqNTvq!,?z.xߞrUyQcg>VG돥{]N]Nxl3ta- -WScn#kԓ9CE,Y8'JEDa޳MhcibBL*Qe=khf+ y rsE]Bff?LWU@y'Cb@wX*QHNUZVƩ?_`me6~5?s/}ܓ>wL;WWc#~ߎ5lk4G*_59C-dt:ؽtsW墒%y&r/7uTlnk3XJ' 4⻲c&;b\RߤMxE3ruearMsܾ-r"^}M“/?y^,bC1 v`C# V@ 9j{qԞ7K[&fq!-2PGjP2"D!p BS9PGcӒ-g97ǜt6[>4Hp6ci3TE,YDEf}PN5qu[>.1u:`}eGOaQTGʳ[/|#ϾMmշz߇?058ة))w{_HAF4AaTZ(Wd:ݓ`ðB `-4k 3{ʥD:n>l|)& p=i'XO X˛pjɹHzNFWS5pڊ"0|16u%Oɳ ܋o%|Ng䳷Y o;+zQglƦ/+ F1XY˿I5F .ZLYfyk!듾||=`R~b4gy +gH4[ʍXU aw)V9 +:Qɻҗ6C}G19Ic\3u{@&h4$٪8B#o?2as3ФRoNuKGmꔜ Xa;o^Y9A7=x +GRUU_C|ΒNy +4#=-@ao +(4u;D°.lK`]C% 3 ᜧ+C{ 6aѕ6Y .rt.õ}Hޛ`P&>l¿##P?TqG|q[: i +U9>DUrY 73*; ©*DtNdG)0c@b&Or a3i!졍 %%2_sq?]]eSZ0uN|\&<`.~sP*z1LEѼYH$*̔zz'[,Zvv,Fe2[.^x7)6gǫ`Q]6|׋Mqˉ6!/q U,\2j,7kd+W2$?A  ԃRu&YHm-? e +tƸ%2֙'[`j-BKI֌G(Ik!|<-YUf:/ĐT*یiva/ExG(3]սgg>f\R$UTUU-Z-Gum6`ۘ&$!3@ G û7 Bロ*J-r[j묽Z5Mc">[9@5?%$30S}O1ɗ&Dfd?{KcI2D.$aEu,!aݣcn|/^"Q8Ssi DtŠ˲Rd,JS @T䷁22 |ƨq|А[^ u94 %^xM:΅!.y:ZcQ-KI0k4f}R< a hwxG%+6*ѽo{7fDH͙GL#~0viK15&9"6ɶ+N4V̲ 5Rwphْḻ`FJs3}Ÿ!a=ڹܴ/S>qj #fA"`Hw_}z" D;0\2[L`tZ<28)#a"^ i^ +WZ8 *?.TZiU]93#0%e ,vj̏(SBf/rvM[пҦoN3%İjwЇu & Ck(X!IH#tB_lKb Pww,/GQs,룛Ҭajc#P)Ye叙 (7"}zFnfֽdFAn'& ԈnvMbaNyRT$Zv+L.1/:Rn8GF~oU`d1(åqzsc))x@]Jɠʩ@"棜oU|3eܠNz [I{iSv5 0-_p5S93Yx^QHx!z,.GXl"D((\}Ff%Ҽp\qAXo 76gG%-IlCq>M񚖦u‡x%RE n|w_Lg]1S 9BqPK66Vfw4y2kaW%ǰ f dM֑Ӕ|~Sox7y&F\44G4Tj1h:ΊrCy}p>c'Lm14q:%vϋr:˗8zrRGp9Oog3[^}!O( eJZx q*QzI\7ʮm0e1 bac:,s̗,"' (Ody=iLښ1aMmGP~ _vh0=u}z69HJ9 jf5ʼnEe򪫑ۗ3Q:jǁ,MQ|椧YX(3 +}Ic]"ca2ў_(k.8 S ӧMw,N0(]WPljeƆN nvݾH3PIb/T3/R ,T1WRM 3]dq-b œE +Q 'qWD˭6rrY_Ds%c2JaX$`}t + .-_tiRfEKh7$ \cH{tQ/YOJS)Ue ʹ8 R$0ǜxf[N2 OEٱQşbGݤJ[tt1[ r"w5Rz(d%ChaGz0Ln.1#u{4=6N[[woҙ.RBՎuwno)Ͽ%;17 @㶎>ph} tV @"aM2SDs2R.ebWd "0gQ 4)އMG- Ës`O!-y.Uˇr.Be IDsܮs ^{V$qC)e$*9.D%-&V_j¬V7wnVؚo1RTo3ĖM{:@H4+mvh 3>o*hoTO槥t)n[b#aʜYUldDLJoIyʓ]m𸦈 KY`cP;HɱƯHpNNУ6M)MQuF#{l8.+J6]H0 .o=(3/̾Wʇ!lϸI$ZR,MBL@?NTH"-2o Fv"r[8ē,bd+ZV|3@bL*r a`F?H&P:͞/ _;΂!掙ƳG?`nYQ<eQ[I0刳0M2 )clw8Fv.4m)b#_w(NOf<.+H,C#8 1ZWE ù]=Æz,z 6LDžGx?KBM(Uua n]/f u]dyG9"z=ޘug"쫖a7ObO3{Y+c2%ffU&UiJXD1k,ʟgWS~ +}&!LH;W_ŀQyN-uNMIO=D9W(ԬZ,ޒnρyhktaRJ% :#}8{N0۩,!KӋi`U$dG(䚑TlxmΖm 6}|!xxTQK9ZgNss1BjTVCHR5_-:6?E)!HdV219 AJ2f"Z +fI>}gnڕ$HLNB5N™3!7:9܈0A0ӣ#3ч\`Z_P^,KƼTg>bRJHIX :g v*4SOKb8Z&YH_K@SfOlA[1 zd!G{4 ]oJ;K&vw'0r@7QrhvoJM;,_kF5$8&vxmR|x؆tcU}A<dAh: uǝײDJ&R:36XX+DQ$N_4$_Ij +~ƠAɤ\T4-_حGc͐|Pc KҨysTpK080vG<6'K3:_VyVfJ`L +!{utD qEeҡ~L@%LPRU bFɒL?7.,>DؗǶgq)q7KW%-uFv|FGgU[T8U9 /_zF+@G^k[^U))E =@py)Cݮ$W oaեy-,GOjpV50  9M}CrmvD&BR@'We0k&>4lgb{*QZ2=;/RW՞c(BY*tZsnl޺I!^N)L @R2 h>2Jd nbLy)6ه6IdǙoVWXJ'T \\VP}*Tr0x PnHLZ+d6rWi +͙aPu#Ґnio/y0ow4, uN;;cTPfkH C0d7;dJ{I}}}!8ʯ2#)8Eг5 [$ibI>t [|;' K1dėbT?f%]L5=lťfqlAٴCETp|YY[ k:>/M +X{KxDVn/^kܚ<}zfB.wWŽ[۷rԠo֬ndA٢0B.ס5/!'ق )&USCAq>kQbL- wP(*@L;N|gtfakQM M&{Sϔgux:U>W+yd\,c&C7CR\uRim_8}Tn<[2Dk⡮g$i:%;GM/n1vquk.߮0ͧXTǰ5etLORK_k#z)?LQJ\ :#7}u9 ANB6[OsW]. FxL[+¤pB2 ͫ&JW'7o_<[KS+ܥ%\|ҩXdNkC:ݟlG}KhrO] H Ll(C+1r^A` Pg$N\*M>x0ljN;FquՖUTDj8< ӵ?tS$~Y@g’ʔD1tW=WI|ݏN1CjM]C?`͛epGxLxE [N7_(սsu,g1qؕ+c 3Wu9Ä#"\n=ΕA6GGl_8|kФ ?~$#BXvVd!"*L٘Ŀ>lOhdf/<,:NC=yT._o&!kzXkW/fC5nrwO +%vx崘Rvs.#5n7jD4>8;]IKxA#ԇxC|3]zw?Dz'>rڵ zBΟXCa FQw"_=4oy>r`^!':=a&g~UkdMݴ :3ZϔsaQPӓ,uD];0)rO4K^ )o!sE=d-N5BDNavv,AJ)R0\P_YlS ,E4HBىyiVKfU,V'؊?ϳ<_w:q}?:kGwsW>g0ZڻXJUf'^'w^{ҏywv' i~ +H#W?8w:9~~V2س'qicfb>'N-ӥ6}Q@&br8;uJ˖Dm&i<2aU9R2^nM:}!)fɷ@$SoOF̞- +Oq!`N=Tw/Z?f<7/nn>zm+7_e qij'+6gs ;Gk^'ȩ쓾.T+l|\o!':b6:>o!|w[2ǰ5a3غw EFp~g6zX:%n;Z\5'PdZ +fM'gU>Y~YNbi% e*Ǚ6x-D d,a7!ƞrE7W;S;siֽh^8Z`p<7?ivVtܹ|lyG +2"JD ;~\60>^p:[ҙPr`|IN&y dU:RY CqT 9EILl=T%ȩtl#Bv qgY형Al*42IV!.TRyzo,ߔ& ~cy ?c3ډɭfsfݸ[Y\|ޝ[^9K/⋯}?W>)˯|kFlAq(T9rpPPW 3?h9GZs ֐( }eԁ賭-dj,囒坱F,ʿ u`qMs̄ $=t-T-` + IJO[WJ&^ +vLr;82 z6kҜK:KK,JQG!ci"yMELuY<PeEÊ)* 826YѢ(* 2T 8aONHR"V%y;T`64=g3 %D qԼn4e)tF4k" j0;UhԐY01I%u/ S ,&Jr̈́R/&0)JItzۖ"\>&DŘ7BDT<ɅH\Hg~G˷Y{^bX]paJN8f5:a5}* OW+U]٘5HCv(Ӯ*xh-GW Q &,c"H.NEEٞ#9aLqbS/at_@kM59j)!ƏcՎ.b zK[b#DX~}mڥͳb m^(/l i-zCa :R_puգ96fU[e-` +5L1ĔmT25Qjr.Q&Tr(c\YvY;RR;ؚEd&Jn@P+V sL˕ ̼0v"6~Yfꗄ'!Jn?RIȟ//ǟ}d_7l}k}|F/gk$8ԭ1G5:Qe9B._ |M/2d̄s 8LI@q.] @Q+A7®!)v+p RYj:'TOu{.%v +6 &R1>+ɺZaPb1ebgB4OD?ωӼwCaޒ Ԥb+A=njVCx7hEgB֮U*˓מ~zO޼@9Q||n#֣7f6#E\y^^y̼C׌װZ'&L4/' eGw8;20Her2-1)#%2[.3[qӇR0c욙,6VTݠj@,E c29}#;$,>IexEi#0U9~LDFΰ<;̔aDžXԣ||:%upfYMlfn4.&m[Cۦ mt>T}Iؤ L~Ly[>TR6uT됯ld-w- D0kNFϵgZ#ư&mal3kJsSVP.VdB1")KQ kA^ %H" CdnvOIi`(3ir@S<Ü1330L d1SqTֽ6o$'ӈvX0kжzdR J5[Nb"3[V bn!YBh+JC^>ފW1y^BN /A]z{P`n1YX`l2cҜCԐI.锥ԃ0@kBQz5X:&Zw +)OS+HݰU" +mS-*b\x㉙xù ?IRsGQU^]}Pl }F|% 1PV 4ÛKKuLefBhI=Ͽ0ѫ3]4^8\7TL3ח¥#=͇['2HA{|^11f!EYV YiHAgxl} XA2U>O !{ϛX{MGF#D;9&Fyq**1cI!ϗ3V"Q>z|~fozXkȗp1 sD_ ZrfE*fyQTks: u8THax/+UmBZp[ȩ,{ކuǑY0'Jߊ?}"|d䥷u9;(5(ݝTkj;:{8-+=Pzo'`ejFبo~驨,P2/lȕJL)R\ !h݇.A48VIɰ$da +u\5a8{0V3_˿pI6$!a3=MaI8!no6xMy[of!U$Z(_<]$tmHw>>IsCe iLj-Ba(e,s(.EZUb9'Y]AW<Dz_ TS rM@T`QD0Er>+mQ 3-%ĐdwtA'*jվDj~~٦`6Y9.g?}Ec!t۶WgtzZ(,.^rGlpV#PQ(z79jo9zQDC[J"'|r 1 TE['ޖ8!j:Nŏ&.|r~KVĢ=*u*PjvISDw{&N_ҋ"_YPlȧq<[p]]\jOhGtMJ<]b'';d v{?Έ(S#d6>pac104TL|(> gidy,1Wrs7B >D4m!YRך.5J":44m';;ܯE>-` +i{ -P٠Pl[C%ǿUÒbN}Sg z3z̑/f2j(X̲*Ks6gxc7*,L( 2z +@FT X<$Cs# yS0ʇ#bG>ۄ63>i#|a%'Ϟ>}!Ђ_ f>Z:̙%P%+Ms32kJtbDaWlehx}GOWJp.0NN:|;ĭ2Au8XԹ[u-Aa@x8Iݔgu5MxR5@" 3iqǭ)qA7mJRԄ5!µt샗fu7=Ek=ر }H`}d"L@"!2w(y+cgE).%鲈h%Y#9LhXv'\,V/kg Uq7"${)|#?qfI;dyb/erSnriNJm՝c~̶9(:{'t:s$9[vB s"]TQʑ _l|TrցtYa뷓kL@2Q.Ol |JZ͉쟠IJ0%̧jf{x8yhHX3Y!\eHvZrF8iH0 kއD3;Sm(]g'{_FDU Hkzc'YWI{N/֋Tm)0x\*e1ŢWh1"$mLLiB + lYtcq4G a 龝>Zs'ȫ d]("O[Jp)ӎ"J!˞\Ti9< Fr^r|zs!m'=;.)ncLG|$"\9>T[/זkz:(&0}鋯=Q[Y7ȡ=x I bO`/{p<)zٍ[ƼaҐ<`,ae:>H:TD&`sڡjSϢhRL3@bJyPaahv >GU+;Q8n?GjP`甮/ k¹[NN֣PHx]9`LYq)IsL|;6|)I4CxRyFm]gxq#pFĤLGDjF{;Tnf'3ÌVhcM?@.L̀A+:!C0t d1}EOe`߳q_31Τ|Jf-𧼒_NNN + +i~yPo g#ԝXQ\׼U6l2,5&X[u*3KWx*payH@2v Mr4ʹV: nB[TD7?KI_ xgrK%ɤ߅wml\u:Ricn4%ݻz{=Xm}!Z_Fh>b*U,&Q03|8M$WkZ%($iԜ1KI \K$G4xD&xφk؎;%)9TL9'u=e<9-OL*s" +ůM rcH`C[D),MLl:m;n?PpPQi `g(~x|2~I +Ic2R*)gtOfAR\ϓ䲔CIuDtf@Tvd* K)&%۝wD-аJ9J5S<$eES%~, +!co3\(X&׸<'ڥ Nͅv{ 3[[vU|4Wp=*Ё>i{0}xzuH)Gxp %ɁQ_rBAL]"yH@5v "`9ZP|\q"+icGNHIGkRP^hde)|X>[k=;1Lu'ӾB"]ߙre6WlH<\ܷ#D39"S\~eɚÒl1ȍX9llA@i(aB`޲d+`,VwPf uŬ76>?Sf?[yO+bzmd>Y_KkSg]G}glphx?Lc/S;㾤ϐ}E"\+J5`CVSGФF9!;:i3혏qw *Hʆ !%I^;>l/^x^:*;S9*yK} "Q#Ⳛga}ueV02 Uh[5B⦑Uuk%CTv`,.K!bBޔ.c K|~Z *s%Yǂ\FONfZ8r@4݌ EWLR&. +WZz]ׯݽvZgqͭǎ]qʵH#۷Í&#V/ё9=X2$}2!X o]6t,9rsFc^y_)~2A̽k&3n1$*C>{Zl43otU,8X)IMWT-+?`"vX2b`Mz=^W~Έq&g9zFDޕ/\Z^mX_^΋/K{b^ڻX[k\ޓZSA[{ mg_zLf<(vTڣVAˉ? SzB_.qb5 8OqR u\FL%2`w 5왩)E.S[Zb}T ;]}k]>kk&G +h⺆Ì}XOph&埢j ΰȼ(+//+v,J'e)E=#0$DHC4#xu@t汵qY + -6g{{{Ϩ-CY%?TD1D5# +@).Vv&"afΔ+A7P<|V%qz:?L.pԱ9l]P+A+͵< S4+`"bNNn;, >q[uUEZ4z["1 ' UUTSD 0omI=n`~-v0l9J)SR💕(6 _B 0z !k`:k,`k0i !{a)sϡ:@d_r8 +/ìZ PlcOc$>s9Qz}PUijBɊ1}"Id`= vgXw^6T!QlvMvLҩN9+Jʼn\!^8rNZF0bwpD|.ԠePaU4@Ҷ6 \_1oR).0izt:ٶNT?< +lPgVr@iQ( !Hpl=5"EnZ[=AsBӢsQYF00kej25Nlz攲N;3-)4۝] Ш_:_>5gfSl7DX@KPQIbhu.T'|ήg_RUh`fD|x. 9y.S**VF# f +;2W8m5wX@wxV9|MfIמVz<z.Wccg* |)?Z.(NF|߁ | JsEs7LWPB 9*-bU +u +~zGHEC9<\泳6G8+:WD"҂۪R%<hג^w)Ќ&44UWiS88j!>6`Vy(EKGP>A1X`́,By6K GHR-NR)/[>_F9W[$:R:*5V7xFhO7LYk+7`~XHkNmlTBNXt;TL+ґ?n%mb*JvBR '/&y g` 6M OX$.3x[hRJI98d8ee[ك2T7ÐK=D /Xh7-Iov&?*794YX7ZIBi *7 m8⮑k,PK˂kC}B˒DŔG~:q=b`rݘkgXxRNy#2N]%1`hټ2Xm,&۝TJ!av2T-9sŊ}nh]\?5 J߼p.dE^LU[Khwj̔Ȋ_[SfـDZҍ0jjӮLbYV`\e?A64,<%7Xi[&*4m%l ؒn  V% g+ >i8vp .[-8,omyƆwp%bw(9ZۆixIVWlOR7w;[z{ +0.3pzܶjxxSw{]Kd&Vm4m⶙l3w^ѮS?<ߚ՚[2<$+kOmz'$X0x8+*?[PFUT:ɊdTT^fT\Les"`ZjDEQۉzyÊbh /؜P+7]F>e\lXngI-`9]F.a]j ƽl3v5mojZ;PԴ P~E?``l2.;mɢE/kO($⮱QU1;vqc].S1oGu%b펞!0鈘45 iy oE0 +J[j(Dä^HX5D빯Rep^&xM0#5i[ъrG$~]'aZbf1ꪰG3nzJ9ȒZt<%t]t+--M I5Hނ9\55 h)Gpt.4ø GN.-:+Bpa%ۮ V?p̺V" +w\V$JnuI0!E+*x^6uSݫ6Wޮφ[?t z([SS]]\<|P]YIIPGwvr2Ep:t@!A#-7Y3 +azF}s3fiJ~#ʂm:XW wux +Gxf"uuR  u^j),@uuh MzXsZn&w + +L褄2iUW{/o<"Pev[Ȗ$Ã[cxHSSӰðSd@xfl)TpsgxMY\N 6KZ3w̾!IgiR Taؚ^n5"$kXɩ`Pe0_ u͎FU;qb*C=ۂdX,\U#=#(8,[AlyH̙Da OꑑA+K;=qEWMXB|q EІPpy~$ N +΅‚esm()XS [{NwfEUJa> z1JK!b(eZmx%ZQyZHAMq.b%V1Lɕq:7.`*+p{Eh筘RF4 +u<3GF,vl;ؤU56ʁp8-W/Y"VOKy3v[EL;e왫7o+8pQ8YdR6ur{{EZx?ʕO8aI~LqT-`WI?MHr +[NM1VSss~vxz7q +$lē,nҏ P{$X*X6n\RZf4ut;}ɒy>{y8&gS㦾U|m8(9j]&P/U@)#(}"/v c4#aI+6d;e32H[`s `xTZFK0ADGC`+!<#0u%0/ U&JDe$Re.,"eكa#S@y$f%KȥA1K#VVBpsA8_kO$b-aqKm({bl,;hg_YsoTvKr9,=p!pv$KhĕF)ɧ$Y0q`٘"`4F ֟M^kr'Oa*V5kP/ Y/+.{Xf`F|[蒙%hR'%zR"iӵXZnYG{r fC]pច #ŋ-A$͘8XZUg |`3#ؿDy:Ͱ)Z;%rVwݗC_6W9Ӫ.n|yד ߱k?ŜŠa׮OïJ_%4'c.4K0ifz4WMvl;ak&P h{ջryΝ u`YyY9Gn4zy`tgȂv˫׭+RΤ(c\m$ޗv9oW^uQaFS +h̎_됃eц@ mc'\֙^AI,LVo/t"敕X]"nucD$4rKU=+*N*>EVYBՔl7vL&oy +3g  +#Y0_@TGoڏfѕn08gm5-^d׬҆UTlٳ}^-Kws eYgunLnG4EH~'㲖H7^{sO2댝>՜Nj+v k5fz`N/jY Q]wfwWm#pu>9 ac 8s` +K⍭SO *\tB6NO0 oW%_ӽUxeor&qjnމvUVֶVeg:`yk +C&4Z] t\ _^ ~gv։UbykŇ/[&.xޡ۶ +ǕՉuӚt[bnײuWt!=Mu`uR\0hEuy'% *qY%4&+N+Is`"EY9DeRvH{.:9F`0bDWݍ$A$=A3h9Ǖ: +#pu~X܌GIX/ ԬfX{'y;4A^ +8>V&,eSA[h\G7ˆIq'7.w"Xں"`,1Raio3&9d"lapB,ef#5Wpve ^} Y1O?^И sp@ab1V1뼋xy[i %0Aɱm(58 緇8GK2IVyF9X@ O6<׏\k5nqi}s昣8C#zMeۺWlKݾ %ں.R6ArmhK|V%5*mBcauGKKKW>\J>eZlVN,2R/eIYCˏ~/Tzpjϟv}ݺlRAgjd=smHꌩE&m;ɶLG7+ ^bή6yZ2+_7 Jjb˂h]V`0Y6N(}tKJ8$VWhECg2\H 3=ex`v!bnAxX"UqVָȒ}OQ<8Mha6&VLm8eW-h J0Ӂ`HFFT8xƃ*N5ETF=etJvy;6ה{]Y(7hKoVbfkGGַeul|c2p-1ӎj3z}zob}m~;--8q@<,eTwݦ`rh_1ݘn|iC Y,hC +R"<>X!䦬v̮`4; FS^w _iMK6oL6GI1[B%Ɔy(ݹÆ]7w;# Uæ+&Ml+(M7JЄ!Z㼵E+ Zv&WjzUX̶U(r_$%3$dž҄PyvalVB!Bj%VVV㲘]%d N: -"2Tk G,#_ v@kΈM> )xϨ7?M[RSUk4!(CPrzLSP +@59@˫/c u{f> @=~҄ p$  +1'^7T +w,{XOwx6$^՝GڡYCiJI< [XߜmxM7zf6>1:f|r[\[c 4Iݙw5;&wVx +^E#@g$>N'۳Bs^hz{ +肇5E𺽸!K^Hs\֚\Ӊ>wx%7Wguw=}nwjW4\KPwQ^-^aGn]hwcٹwݒ[_#7?ܛݾ<{_}PsǙRj7O4ud[5j~ ?w,wy'{/}ĹcF##^}?u^=Gd|=d??>y蟟<'̞xp?ݜ'g0_wjݿ{*/`3Fp*猈]`O<,("kr0bS:eG|>{݉d>UJdJ8nɏs{a\[yW~Si|(SR59JN&WydV9Mnd>QuW/t IΌ'ND-鵶g-u8N-ݦbobt`ͦnkVʔI|T\/漑໙ͽhD "Jnպg,rj!ђ M,} e~V+_7/8kl魽d:yQ1m`ggQݦ6qtf^Cm%;3O;zvnל}Cqz^$:בޞ+}vͅ#Ww%\1僺Tdx&wWnNﳰٻtW]zիu_Pk.ڗt_0בKwS<}d*܍ i\ `RmA~n`_ީu&Ǒ,ÿs}suݯܹ" Rn f֥7{e[軓>;%w%y$cd{/2;ܝكue.Cw7da6{ߣ';ǟ=ɒD?۬yp?y=3`3ݹynT+؆{Wmy~sB{1~<;/Wx~Wg{}_d翯Xo +{uD`2M?ܞ޻g$-?IWrq{4zGWe} >E~ ;wZ&yԨ獘@~FN|d*9e@cgj=71ƹ7;{tۛxWe'x_aJKt5TY.[2[i8D+5֓sMmx_3fDno]ru/v*3׎{~և?.]#F1v֜{Uz{4ڻ"~=F^΅E.~4Kz#^?$.{(<3w]rPUK>פz /5>t>͡u_x 7ݐc÷$⁉qÝK2ipUFJr_nܺ(?86okWn?|͑ޝ}w̾y:6'&wS:tqij ir*tz@r?yrbC$( ÷?]G>c<^yb4O499=y@ٝܧ/‘LTraǽX8ė'?dJZQ8cScjy\:_/;J0Si* ?k2M*;MaɵԵꁓO'Z+5UYxkb]MG`_s!730Ͱ<61L/צvD;izCwѮwN] +~'sy&F.oEL&@\ˌܥs sˁ3+v+]"?WNN4Ƽltӓ Vg['] G}M0=Ļ/e Om)+ۓ掣l|mU~8ߟJv͏ ێLs;WMߵi?^,LLk+j@skj?yk;qp?{*1ӉgÁV&mM` XoC%gYzjG_U8g'Ox 5RlӓgVyWOnLQQ@L?&ӔTLE Z:9<=U4rũv@ִ'Ӕz0u4M1cd2M-Ϗ;N.L욟YO"P +ͬ+M&){L?sLߐC|0wEMיL'%wږvвMݪN_T5%OMu7L&i*cPjw'4;×ǚ'b|.D|htf(Fg_V]NrKi\;)FIO +s]n0]Zf3N.4vDsEEv $z;?|=[_X/7X_zE4N>wtje(/߫T4_aKkj>X|߀0OQݽ =9+<vs4N{k~Н"~Om~ûO7˩=ZC{D?g À +K8~u0Ͽq)n/oދoKCB; _;Wo,׺S{<нq4oyij81b2L&dG4_|/T8>Q }P2=/ +ɕS&nj0Y==杩53"ܗHh`q,yzWeT O[}|-}r9d2LSӊg'Ϊk*d2Mk) Gs!S6l@dJe&`9d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&ԀuA|B,$@AH4Cdu"G<Tx^|scǤ"I0}scI^[m +YXh*ȶ1:(l2ũCt=1L'y +ED2SZeid:5c( 6ǂߍ>|Lh+W g,X =lqo@8rgHcaBܿPh=FREz 1!Wo8_Gi i!F+c)%8׊.d,#OQ0i"s}_׉t, +-1=Mdˉ{,҅=]8#f3hΡgy]m$ҝ]9Dm1'|)B1'9Ӵ"UJbT6ݘgLThLVK=Ic<>=Ud~AC݂(' σG?%j#1}KG|*u'7'&9Kuսc^s)BZ Ŋ$kgZoϖG#SSϚOu_^7YGu"|KbG}lm.5}S_Z ^6jb"ϓZ&JZ~bEdG~rsS9⯄t-,ZHd93.Uȧ +h9GNO,^?cِ5h3{x]eH$!&Q=&"wٝNaĄ\(*iy.bOV̿g/6X֤LXji(u +=saIߔ'*CLd ;^]R1ia3$>铌^b[>Gƚo9Yn+HRDfz$l{ +I]SbsŽ';YRغR#pbbk5fLL=ur1]Ȝ'1iO {`geKL6yt[$+RP4]k 7&=սJG'1Qc+Z/zʡQ_.mMGX-X]txNF-5 5>Q#{:ȧ>ʌ5rw5ѥY2 hOv ŌӳtDydys33&/X6T`~lN>Sdj4ÌbDʳkX|ixckV{4;'<ӕ%=[{U }w=-qd@bjK:[es}VҥL| w"xOȷߌB"J]&+⯡ʰdKwB6Ih5L10>"癜}#۵3NY[sv38"Ddׂ0c|b> +stream +xVkdEg썃zBAºx Q&a1}&\1}ORC%SrsdovzmmGp;cF`ݐR^UZ]:RKڏ[ 8`]3Als#qC=/,zH"tb=E)CU +9-(g#R"4T=s!' u HI[9L;>j}ܷ)7UMMʯVG SiSaHK [9I#ns'9""w'v9_}iwekvt+H!Qx1iT:0Wec­UO(E0 +]=5uj]> endobj 379 0 obj <> endobj 392 0 obj <> +stream +x]n0D +]C2pC3u=L ya=o[|ޖ>yeN>_wk}?8\N:/6oo}R{^׶鿥ʼnؚ[(`8z iJhK %B3B+S %~eB'ڥJ-VJO2 ,z\`]h茜 O8"eZ X ,ʜ3XxG],ޢ`Y V8X +8`a p&2i,Y /a8!3Yg,΢p&B@LBd#c^$i#^d,,^ G +8`e0Vp.@cqp.IIXY+ pR(fXL@nFu%L7j% 1J3e!!Ofi`YlYg:AB%+ R(r(^XV:׹Ǭ +X)KƬ|὘b 9s0BwR(΂D3- %x9u' ֢v~({eW K +ַ̧|[/z}R +endstream endobj 391 0 obj <> endobj 393 0 obj <> +stream +xyxT8.̾If'3Y&$!9YY$ /A6EBR +X' VU[Vlk]$ZK-f~3 K}}}3w!-A55)(B_+U6%7z]K -ZvmcBvT-+:,|eK?G *KWBi})BgrF绀PعnIGϬڎlc*u]6#ľu6DX{e]E|!'?F<^@(>JLK~ǯA5AGBAD.D/3hz U&t/@ ڂ_C +Z +b"Y0GEh= ,ԀFu!3tG$Rt +w9SH.{ge%_O 8#ُ@Cd@h;>2w h1zo#jGb7MD[r3m1 O=-L\o9e0-X:Ci ߇(&ZoB`.b23YjG0yaa4ߣs%!|7۰ t@qtąXeAhA`At7|#dZ2=dfXA3"@FmFn.EMXǻW8`- +A,CǀЋ_[op/7lCػK(a]3lp!2#4F_Jy>Y# h%`{{`O+8pd"y{C$M"9Pd&@ kƫWX^r@VѹA勵s?S#q]dC6+HDYԴz݌z@/>t 5w}?>_¯&~H)$5 ;ྗ%'Q']Bq&ϒO/Vᑜw(aO\ؗYo- CҝPq20 | +9!; +$L֐ɤ̆{YwYO6'$=5 ͣOB__s +rn>{{{uJ!+͓=#H\&o/oNTAZ} ]y4rJx@LFNz7 _^GKW5Gh=O=|]DI|G.qx.gq':ZCdl\:w+B 6|Do&1s;_Ud7jo* +rΡh_@jqZ2;hw.|iG?AӉ#Z<ԇGUER !2>+;KK0)t#83v%uLiu M~ijLboh6V*ft;*B@mM g$(Wiim}a&~m0W _߀?Ec/pű;:L wýBAt[Ԉ-q?kA淣rXB0 d'LLA"ܷ0A`Ma@GM +Z!Nޚ܍ڒ'hN [|>}Ox7) ؊O`idge[(--zEܦ3(I 494+x҃Uhe$萜Ӄ!rf#3.EA/ ^wᶀe+>l6X90lb=Ɓ6엉`L+z&灏"Z2jv)Xa+Zց]Y{{`s XH;oneCG|#` gG's L_O`^[W|??m.:g vlܰkuk;׬^re[m)VVL*X6aҒhQa ?/7 +f>r:6Ŝf2NQ +((.Pc\(0eJ+:㊊KݼW)zzb[ruoڀ7j]olXϐ{><୳p.Vyeo]{- ׯVjrQJ Y5b@W?T`)C,ue)=P[j +b4Xױ44p͒ +Ta jbri*۟{θ5KK;5hG ykc[/apcM+[κˊ;YWXcH&@0 s-1&}=v,PjW{c@u`ev@7fo y{6|JGٟzgo^-y!~~4^YvMIYa%bT wV=gѲwxW bKbʚ^ | +oꚎYP,KcX8a"+rI^8/$>h)+| "Z XϬTً;Xnvrf%}kkx{(b1EO/Mu+bӼ,0'0ka} s*_jT<RS@z6 +@ݪ)jƘ:HK*GT +wѥYY2 + `{cBTܢ>O^`OIF+ _]xUiz), {{UWՃx{{;ɞ=IisoW]S;[`+qY^n.G489&:W%n @2 i|sk GPu1_wY|R@{IM{uK5"$JղJVKD!wZ9B*/c$)0Z':!5QHHDZT8֛:E';kZr +@RcfQ5N,'DXԜ1cΖ㸧8)4{gdu=`|ϻy +/У]L^"I0.dP`!e,L'3RwZn)`4D ]zu0 ܓ&h +덭RP=K鋭v:[—tz{{%IOf{rgIq`%_ J/SK:1.tiu᫆sajdۉ4y[,xV307C]>)&Ut΁g Zޱ,;~J6M91 0,1XaPLu˘Y!R+A Z JE-fђ^f䴶^cwB/Pv+0%Z2+x;P Le(Qdy ʃkߺpBUy.rpXC# O qHR:]t5 ؝E?#(y܀!;P]=) Rw?!.=RO f]BCzѿDP鯠U +8W"2c-u"Tp:YC.@:8ag pHBFVCðC d5,OIE?G!CcwC0YzpGC PtC-o6}tÀ#T !B^ JbLoLA6  ZlE}mmmmc}ѭg+ +}T"t̷  x!P;A|Y6Bc%z=1V U"]>hs\R!BM2u٠Rj ]z%&AB-.(3Zud;mH-6>OPIi*W㞶rT8ڿO@< achP BA]Ƈ 38ty#d67B@4T-~BK.) Q7M4sӴOfBd*hW}J{JXͮhCZ.2HL)|گ}ii}I>BKҤXbOIqHT{/{ 0fʕf@y@.Hd@-p@yʀW .AAV2}t)0r'S 䲧jq\3($Y@MtI +HC8Q@ZT/0hls8볰P|O8y$׀8:pRFɍ+8<%Ry,g2Z|hnɭL/?140{&@8:xSgK{r`PrS2o޸S&1WQX>_>K>Qɽr)OSB(T +BDifVUL>XIy.'f aN5PظpC\n)i(meU;,$¸`]nqWK nY{c_́'Vd\i4V&Qh|YW^VWul_Ü恒rUĊ|2 dvutuu'IKZOIwlVom ItC,auC~<(u.uzN/੬ R2` +%ЍQ4Vqn@WAX/ i0' B ?.×rZPP'[y0'+aQ@ײ`ǟ.aG큺ec72wۿϣgKV?ƖjK%#Pۏm_".;-mij]? Vzhn`͏\ lǤfWㆦ~nYJZl>fY誐xd=)R[b@uL 5UU&`R֤cMM9N'F6QYV^mذamx&T7!VΨcu13|@f-lj;ĭ Zwk 4q`eV! P,*8y's$]-5͢|d]=˟)SoI5,j>.O7%pJ)Xq& veGIWQ&%n{(ZIiE!eeѽ>uL}F}VdgdgeC 2+DY]%ɔ{e{]ݥQSAUGԢI{6@`0ڴ! +rYGPRQ*j= |-M*?Z1[>  D!́C[o@x y4κ%$ FJ!XJ,Lu3SiyUҁʨJ:F ~!7xZD7xeư-,ވÐv6n ]k_o؄6l@@]@'v{lK.h@R/NН̸3#OiXr8y(E*9ȦC;Ag#%^EְEHLbrT y; +#~DXi'FւpA8R3 ACyD}XAY~ Xcv4Vu"nK ē_ R)G9%(肌 +}]Dt͜k9mOO&.κ&tuxΔa'l "1ēS9b @vMIR("BTo"Mɓ4O +O}2rRv\sR8<{2GA;@xx(uԫ8n9QՃQ"srx +3W|S:) b>ɏwEm|:[܅00 `nHPea7<, c` ,_l`$ `yPBl3S& +F K]*…'!71r&C y Րs*!WRP•!啹Ф,F 2k.V@.YfO旔|prtԁgL7$Z*DTDG!0@,)jYڪds9 !p;-I3Thf&sٞ^lRWIj4ڰIVQThILE3IHG9pJ,܏~8ut|}*d&a6 BZqDu!O=@6M^>4X,vm*l^KNO_pO.xslzAۖOaKMtUP^xw圆noY}ݼ؍[u/k꾶 oєkn}즺:9sVndB )9ܮe JڏM OM2,I{- #6y c22CD@܄lᲽ/n:0g-.8}qp)N^SIbKUêK&*#QL),2?TR,bRآL% / O/`/o:8gk/iX~O&u5/}LZI52iMwݡy`o^wqDx}}bd\i}t"%򴪴괚\Gn$Ǥum- 5[aݹfה}jOyPᩯ^5fW433\(S9OeVyƭrkJ/J7M1V$P##G@W\8R~K-e%Hk,0z Bm-t\X⇂zccnet3 3<%q~_^m3 [ٓHzFtkSv?hXp+/vVW83=\(j ye.١3Wgss'lgsGvF2#B6ΨIz{Irw sFq R@ ++@^p +:5OX,$HݓޓN8GT{mzY|T2FZgi 7N)2@F F4F(nQ%K%D[ѭAcZaYCi=ù=M&2MY-жg!tn/{\KKK("nx/g W11UɊa%]>+ d!ȷC&:`w425bYR,iSgDCb0xcH&m!dLbT VWU "M' i(Z"ͣDk h M#{4/vEiϱU0U +Zr1Hj0HE" Siɏ ~%P[@DzOgVkchTQH 1 U:A}`0ۂ1J3/f hD@?Ap;!b#2gX<2bY ] +BbdSAt̑BN͎~h'k:ZIK.62]m1҈$ IږLs>pop&tntG2&dՖL)&>x>ٗXO ߤ9V/_-vku!h%Lx *_!=^PgDI0ThE}h$߮߫szG.!(t|;y8<*G1/W(Tj$fK00\|E >ެjsx7 F{sn>vvIEnUOX"D6fs\>U\&z*,Ql4l4>~Hw/Xޱy澶cg6ʕU*Mʭ6B,v&ReV&ՕR)i*{XQQ#=6Sb;Eһ1Ѹ.Qd7LLM)墉}eG^>/N㯁oX:!ϓ79O 6)|e^8_cʑ~>%~^Q,sDHu9v [t;~ۋ:`oܽpɎŽZvfڏv +p%'oXMuƅ(<~S'j3] +R>0ޕUV]{[폱/@zPPIdX괢zrP*y4j-4ZN:E\&+4 +bi !5>(jy,S*d2i4i<QjROA %4Rb_=nI9z(r +.pZ +vZ9 u"/7L0H 3?̍:YZXz1 ZY\aUrV˱e1 aV +8=``zȦ%2Ż?{-Iicܴi ? v5r^omw咗<:ϻƹIzGʾP@X/tEe`5x}`Jp^r+CAg:RJM">ذprz}K%,$q "*'?K= +Hhe%^bMLTy-bz{ ╁cBd^͢fQ[g\\|k ;T޸wRW`T t 9Y]asS023+رYܸ.?`,hbw7|oz,ON@̀~{+a w9UnQ8(QhaY2lY6r7C!=w ZLA*DQѨ199}9C9\-%hB&5ELi$7ٲ/f߁~~2"JzvrG2HY *.Id6T@Z ȧ\*;ȯ]:_~EԱNBoqG;tWc&]Gc:ibcFic1n{5{W+jws`WkF~e\`B AmkP;Z4]DH9U<7^cӓ!15Ji,.94hrT)0OsHԶkWm2`5FZQK ρNIZ^\¿eDq|>5V4)oq'rM\sϒfO|㼤j.2[!, SVNݶGYC(Mƍ*+<(EFINOԕg!QޅK̍o^r䷃GPEADs2Eo{4=-PoI!AQ̗T/5ˑ +˴Į4k-6kw[;tO"DTPՆ\]VUdEhuMxkܭ=GޣpqO~n^>BOg>sXqEr2 MZ39),?#XbҺG,D /PXBĒ$,4P(U"ZZV| +:*ԤKI r` ~S}|\k1MY(7siŨbQa :wkP&g|pSƛ:Mc3zFsU1WIZLcA[䣿<0?뜿 n^tN]k;o M&oXs{^ұaa;5~scʂ LX op@=Ssw?Vr[mknn1]ݭդR*d +>˴䐜? +f6(* n 7CxQiLٱ2 +FxHl1'}C\6fD*e]e na̒2%82MH:CG[\z* US5@W r˃q:rJBչqWB ;OF9R3|*[~h_-ǯݗ~D[fRՖ=gl,ˉOĖWx~~.{K{i ]#6Kt\s5xb:{I8:7Eɻ=Dc!ədةTt @-f)JFLթ\5a| ̰e~:LRsܪaMә-Z`l*=J,uez㣾_:lGzt~2/KPQhVLJ2:պr/9}]G]_LmKЋ HjZ0"iqk>+d8 D CgL8E܇)b)G)ZH;~ +pHȹN9]:;6ygygY9bhYډ-}[EUj8 Nsq8BXjp NTCZ2yJ)T6rC`z43BY`N5B΅yz4.;'a AV'.zL)وB|DB|#JYlTj !=5Q@)''e:kxϗ,W:+jwE}#UT|r[v!}\~n3.q1XRL2~D0hgLY}[*-=a9%65;,On,[%4߾gvMawvu?}p55-M'?>!Û{2pH|8~+`|8qNWvϩԸ͕'\Z=S++@9M}%YFq _\ Qs}d q^4 `BO䭯}Q0<' u vѹBk[i&n;NKcKX2i.pdTݝHR"P0kj|~^nҚݫ+BS׫)4ry@pII +tm_v}U nRr(Nì r"ݐH4CA'N#qB(8>&j +RoD!t!N"n쎓ODW5.q^2AXbwM+rQ;y٪˷w^ [03gSb~Q{׷8N.RnXtziV*1 ҙ̝'Q: +5O{ļyhK=udz&d]'7fz +wA.ߗۆ$c ?B܇Q'~d!Zޅpo(Hg@3ݘ%2m;,W'ԯ(-cTk8*r!@DWqmFmp?F?ʹ  4]氧H~Q]ƴٶ0s1H(fu){Qopg +8n1zGƏ2މʽebYSvy{dl}˽1cCYnw){&֢{J_8̾@4Q.=ԟ=>7JY%%Jsvb&YpLYTgkTLmNrG9 {(Z(*UZC1Ⱇ\)se&YB> dˊʞo"V$}<+}7[H>vHp (rF%\rj HΨ}cHY6@ՍvAdP8[P5(CQZ 4ӑ>?.hIcϾkڍׯ_w_ro?@c~˿4gK^9h(sNe^U1AX`L$Oߕ|%G^U P+J}IZr!Us輠ŕ9#J=d߁#7&/Zڴs_S GՋv,;9/XXO; Z3N\a\^yˌ0 x0ʧ%72Fj + +<?bvTq,'qr!Uhj6N Ă4%{4#Pi ,ZDn֩K$?(ܺ^zsn0U}⇕ß\N<^śiA{H2eeҤCyXe!tRVfS93t4 +#M:*Sq}) !aq/;0f0[a|S;m^Yp:?ؓctD;O|cO|sS&G4}4=;o7#p֢v] o fasNaW~'(cMx7R<l,NKlYf3R88u@1FO{85dBEe +s{Y$`EBQ#TI2;wɄ) !!2OcuݭOi!9!r#\|hvon7o+J\ҔL!Ų`P3Ξ5 +#UYG$Zs#\>3=Z'#7&8YoAŶđEY4IhyɊ*c8.T)U?|*rǪooU.KQU"i4q +qX|~ 2d]=/R)4O<,!d1 +ff٢ gAeGl.{LF9~^:<&#D#:tnD#.%ш@!.Jg: §" #(]@Zv|H0qXB)w!fJdaQ&OhD>  W1jvȗ άRF +GNE憬ZK-[ $ui> zo|m-Y S@?ڸ?"I*>2YD +6-KKoPtYl7Ŭ1:`zZKM]wrOsCޮ>SJ(Œ~3A)Qj˲r.˯a[P1Cq荍Ftvc9[#(G%E'_jUySC(aBkM-Y;y  +%8/2 c|T{rAɤ2 ~za"zd fCT5[@b\(ԯl=*_zG~Z2( f+t{ >,{u;g#;*OltmڕW_>pkӶo29(sfmz8s_(X^ keGj5;=aC =g'& (O~q5XO~'YXb & X % +K<'?%&K*\r!@G*!4ՓPFF$TTY %. av^>z a]&<43M>K Kn>pG_qTP& J |׏j Ib@Ax0Hƴ-1lx ?wgb=j(Q:#n3.a oHP "LF)mHFpZٲJ3F d.e0c+أ8xF?8Hd((.I4K0ρ7AЏU2Zpkwey[1{^;T9Um" ^.d}`hZւcZ%(G aW\bW5nF3- |U?wWky͓sMi\z` ~okȧ7M&ȖKW*"lK<]^r8=;=UEZSh7Yt}7j>{;=I#inҌe侰!L +n9KrvIz@vs$-m=eiO)fI)[ +{qv_'#=i4=>LA}1Xk_?zX]@X:z:l1o8:x16,]r[> +d~e}3"TE Y,E@'$GXODOlU^1 +3Ze͜b +r2'FY D(S{ aف >ctM(}EEWf͐d92jyBYq.y'LFv.AKX`&tpTuuK535aQق`N+LVa`06 '.6%)O=vdW^<٪ZZK"8_`9gې^ +3_>v{0qzƤ? 7>=$\qRje7E?Teu(` –Aq` "{O ;D1Tkyh!%{yQO'iWlPT*DNj5^DJPadEal +=I^pӬ7@IjF%NlUX%10IR/zFq+VE|>?v ub"waD+{U.J NTAc渶!GRm-4hHNz@It$G<ۈM FX>\G>I)'Qz&3&ǟ1V~і}}Y˳ԶoQ֎~ܬ ~N(4 턟9 hgK hEo*1Uxků)šefW c4w ʸ-&[PAF. sz(ygg̽ř"!fdeNu-0C&^v6R`&ڄD:yxg{ww+yӻW>iu_4~Ҹ>{႟XƷS/|aϣ{be-K9nŃݕB&FFm}vH_~e= !WcDOߘ&1_KVkYt8KL|/Ԉ?[hà̅"H;CWiPL'].'sU^wYy=w >l|8rp׮xjb{3y5$(SZ#Fdgw_E;eC},[6V ʶͱ{NsؑsgNV +XI +7"pA/%&7+ i3([CaKʀʖPą}Ƣ0S +ťSO \Na$C@~W/ֶ 2y$mRW@h_G` +:1q(D>DaH'$Dz^ D^ 0VФG)=wAx!QW8ղYνe6kAD#6꣒&@U@m$91 A"lU6[gn<Ԩ+D o4|֏}コ+[(Ngnoz%v#hoO]ԣ=◳ +`$AJ]]^Zf6K=eVgY@zxF6h`48Z-14eݙyy]油ocLr|=@1X +ϫ,5/M13֥eA`EX#]~I%;-јTĨt}W£ŧ _Lwv\w`+%?X'@%?S<@BdqL)mazb#pّIeq:Bz>[6Vv >ܓϟEX]RQ?C4+"RLp1$gp8"" MM̉iŔh +c"#Zɸ1o)+VvhӐ3)IH)[-tLD/{Yjb5>=3ܷoz\,ph/tv'xp fvtEW~_豷Z_kcەoO,`|c<w7Fu::uC=%s\cIRթiծ-5ъ ؇ըDx]Lj ́&TX",vl a@X'8hq#ɓBo3L-Pj6w8is +>(չ3FY'Z9v6bsq;Ukh^df훯oNsqA5Ώδld\'`<{Bw=<|^Ed "ɺ+'nv%"D[-((dK% jxVcW- ʞP8Mv$x$ W*42h61WMU^EP/6L?Ys!ta"hqoqD)(ívh':n=p=:SbwgιHi+oT\q<P`õk%bQ-nJb94ưU5G |0|- eYwZQDiKzgx} OvQYkWUHǂ̯~ۯ>Pb́/Tl<+"1Rb V6HiQ) fÏX c5aiXi&QAo>/IZw{EKZSC(x:D~QwCNyu9ݳop:=MZ'\!5-톉nk{ )N7. :ujhV:%Tf2.Ʀ$t&]:CpxH %\^WE83Dق -8:Rf^}U'Yu)V r~vjsqs{Tt,IrN%A+XGn}ѥ&]]띢Su8;O;us9p2:a%P#493trHolNCk TplC8U U*V6:],GۮwƜbDQ|JaW*2;e(RFwFu\=z̙x3l-jB/+/8}hJa~٠>kL7%R[K؅ +Ry 66x7הap#ƫW׵oc۸mn,Yp7s?w=j|K/T|VY3g,1ԽS??4~PY~uSūKL<t)j=B24 nhD +i_*XVĞn1FvgeW"f 9^}uTVz >Y^lORrR4$q9Q-udAݪ:<ư>_@o0gC;|?χX(Khdd*h0_gK/qB hH`KĎdeB)EP5 !p#T)ިO]P':?Ȧ}6 79Ě!\lO$ڿ9;pW.82{4ELE=ҕ&d={]d ˑ>}\y;Ŋ3s|S[nyJ RVt'yK ++}HI)Ib;8O3qO< +v4{nx3LH'qZ-Чf>` l%<%XS)3g"O)|+ط/uPxU~Uau_Q>4AJ4 +XTzBbf 0O+c^s*0 2x" Vta4Г'LkÌOMyByF[!{Y/o7c\m+JBJAۄX0'XYΒ%ֺ2#J'g-t] aaI[ՔCQ + 0dծ.OxXV_] ȤV`^( x`j]V({TN}P !ƹIY#gi.q#AhA 3 c 6.T0F ml- h>DL땉k4G3MՈd+U]xaW5ta{⠫'9l$= +GxVjX mC2hhڞB2* <o&鱪a1W&Qͬx\0s +::!v(mg03/u+8;V6K\A0SkK[eK+. 08mB{q[v u˭0GUEBrn~#3΍a&πg O_unvXD:fm:'Bgz7@V +Wj -k~;m)=}{!Zd@=D8"3fZ+2-t9lLP?Zà|D o37!i%ŭv +!\nE*0%}|7U l\8rY3ӭ}m<c^/ WcYtZjXw6ziJ8 zKcVh MtVpw zҐީcC8@ S:,H\ $bt}xie/3|u(R:w%ކH5X +pZVyKM A]Ҫѷjx5E5Zvk@LFaB-[S8ܾvW? 4\Ͷ7h\C>V{԰rqhdNx-)Q݄M꨽:Y6,XCں %3;47k S#8rlġ.Ew7gk9~c1#6C(XiСU̒RFKfw"TD'UBћLx Ξw@G7^_|隊%S1hđ57L.| qc"^ȚˑpGɷ&UNjR~LP !A pYNN!eg2 +3p9 h73/$jYjN; o3Wa[Mon%HY^٭vyS@x\aXf\VYѹ{ټƫw2eq颂5jo|*W27MjJ&ȖA7lfbLNiIfiD%݁(bKm8stb9vT.1zo)@  +bDl2ƨ1j"c>(-jb'`YWP-qpG h E7$jMgZk1c#H0g_BW0W Öjbkr[[F|cՍ^>L^cՀeg hm@k=ZgZ$&`*׹wLŀ ኩ:o):?8!0j_d}o.'uN-Z-B-hǼͷR?յX*c{n'V /\׵m]u]W|[9n2 swGw88soC Cpuf$~t$".:,, tHd®w,*LP.2„7M& Jov͡a'czchHTfF N33-:D s3.~]+QF?wLVD4k~1na CJ&zsy~pw$}c6Fv!gI)50%t= $̣I3340㤐"N93Gz+V4kq >34k6wt&̕(+t@^hh+Ȅ1>gezggːA'Bu=5Bqz0[ɹDfs_﹁'Yɗ@{ꦿ-J?/OtwӇ+DFg3W,;^l9Q!*L li){^74+fsá,Gze֢c/H %=E"s@$57seOm^|5jjv AmMДr\9~w%pַ92, I{쓶I) j_]w?(gR}gSϞ +zX~|ph"DRHhhrN9t-+s~l{;xvUtO&omLdQ0 ip +<{N/5{[&U)dHr1uY̶C]pNya-X{PxQ81obaTΉ[ u `4i#͘-g 䜱q:^QذhMW-ѫ%{"}?zK|؏ GW)]M১P~w!Mk x΢ + N2n(\.D$06Q8‰pS8}| ~|s S2Th! +ǦvV5 7j+Ns49ܲ|98tic`]'E쁯,.b c1~::4iz" ?q4ÎiG!髺T_5H-X^X )&dt,&/i=yιE4+:t _ g07̏ۥ.CiO|E1?wSK58˾o!~S'Lg 8w;c(Ūٹùq:{7=R%2O)JU nupvѮ3."^ѕ̩X/A@BޒpD}ٻ@u~$ghC{GR6v6rk->"v<;Z+C9d:۝)_l7S <n84v͆rݾ<U3OMhrƥs\Wn/]KJXLY=`g9xDG;h6QVS ًSZg7G7~wvW+ңuEݔ{JQG+7tbMWq GGp \tGh < Dь vCOĠþ4Tk(k{bbX>qhCf"ӛ~о+!: Yб4.s,WѮYrIi>UV*죤lI5y +8P1*Ћ2"xQ6k]k-`]TBn-.)E RRk|mfh)A!~5Zab5`" [ޝtxIZV$ ]Iޤl*nR7E\ g47Yv?.&%Qϐrj#& D\7˪M TQ_&ktV=xp_#}M/AaLJl28?)dƴp49%j*J :O5.H+M,VBzi)<ފ=㭸W3u7[V^n ⱶR{\پx<K'+*p)`U>pqfJ}pmb[rXYZ+*@9L^XV.R"֡\?CxBW1JUC^@4ZD;}@l&u56Hf 6iZdlCCf6퀳T-]Y;Ьf>uɅKP7O^{ +m.gй|7Z(voyycQU^]::q:l +:y+CbKnybxǟm+FXZvci@lRx 6Q)%,a< {H}+Y0+Hq˃xG-a @CsHv5}RW' !;Dv՜&2 <@r& 9>$ +HD8nQRC01k|k5uΰpkkRKN[U[8 +$ <Juڢ#D,JDf )4h5~f` Xr shM9MpS;H`%s[½W͙x6&}:rc<W=Fa| `8k,IDlf(JHV@cWB4᪭pT[ E1ߩbFC΂f.eѺKg^H>\&\>ti]FvC:zfBc{-8]FA)'?iRf&aOGZ=.&InIa|,ߩ&sh1o*um @ q=r'`ì!ב96$9&icX,ߘ1!Z9]b'^_ + +sv|y>I>11SĪ{i#a1A 91\42c4;7Վi&x&p8:@R"x[[u#1Vo}y؜ +>%ZhRM]4L꡾J HT^*u&cJj*_GwyRFIitZI#Ma'D) r#4;PNB )ScSE#* ,ao' 9*==toR_c^_tO#4"r}9xQ@FcN>{?3SXAO ծQmGG#z `S LզݣɔK'N~PcMdZy YkⅬfuV̙HdiVAZ@{gh/L(}@r_է=2q:fٺLqڛֈA]Rۋ@mLW`pRV1O+k_әa (Oi H-pq~-?(O\B*)NIb`%DXM?'kNH Kfz{3&~wӆR+. Iy9JMNgzWwH̭uÙ6l0&$I;ZK,V+̘Z\x;@h #&mȪ)swr 6>s0.-bʂId__EƪlUk+rVsR~F((t7A521N$I'amt5SEK8;[3?DmA.78|{p1X{jQδ +>Bdr)E=l뭡Bj`4j3CY""XFChϊdSqla=7:9L,~O"m 6Є fVmdj9}$)~7He$Vxh1{=uO9S*-TMDZ)'q<:U)O FM&k Z94Lj_`)'q8jͭFZ7i6 D/! h&H~fr zx6mkW[:5~E~1Cʔ:Z:j1鑉ZܷGHPJϭl鬕T>vfe|$|xG'i܉3H]rNOZrv9l66C)6#ΡI~WP?Fԋ#.OmR,%k֪Zؿvk%%)5rYSZrhiRa 'ꨐ!׈-3&P{ٍ[v'/W2İϐ}>GV-HFNGB&vvnXq޹[hWʕ,e] +藓@X=k6},BzϾs+y$I D؃1AJ* թ@ Tcxe*dyؖ +e*Iu<K:?6oM`B>չJh-~q\Jaq`*=2Rb:oxaĨ#S W$#SF7>j"1 s=9Ίt;"n_wV, ̆y^{Om`ĺu+)ٽQZY5BꜧSkBGk~r"?9?E)S-"|ЬGр?>*Z$(DROL5ϣZm7 +ZpX=ϑ:;n<'l.-H4JdL~@I;5mYûHrxU)?9Ovɛ~r$S%dRX#RJvD(+|Kbe2\LVt9d,S,%}@iDG#bp$cO()t05s=L&SS4H )=#1.kn )Jeb:Vy[̯M4D~4/dg5P:oB8‚HT!\Gē)yj_e1.hvӷ3ی̺%kŹb]m‴>Gd \R/L +)3OQ-іJpj`noj;rF!4 Jjޕs6z>>΋?,c*2B@0@$C2LdfthNMa׫G_YTȵy7_K m ל?Rj.[F$eҏrfFIf?2Tdf,wά؟\bEeo2 zNcU`÷n pm +s6X)3j,t2%#D? )1/8<4LaÄa6Pĕ)+NAvB8[N;ݳjڂg&U +qSpm +,Ѣ]ߡ1|b3 bȱ$,:C#ۣM`4[iItJbjw 4*`^2gw$ ә;H@r-/DP,D/^=-EɲH |cJ"n,g}?P9w ,MR$G ! v${ے4)K3@8?k ĦE#g Xm;`PFdrd9VNcZu sTP@Rso$昢2UC饙 `` 19U{yhk6a̻#0ڑwX~%P]OyCEw/U揙2i%wCn9nyK*%>Ytě"1qEA0hdZA8 a8Aă^$8+Ο9wN\meNm3qm:q`[sDHѤuEQ`y[>s>6ޕiAyi΅"Eȼ='8[sˡ9W3t:}ywH>Wݕ;[j{~C%c?]S_t!|v-OA&2 m R6]s-` [:ɡ D ɁP%;%GdjOlMHЉ$'h$ aK 1GP}.>UCO $R"mRǿoD7L`0LY+[jmڬ*Z?pjnN .'H(}@b!06"@FM4 8dnfB6L4E'I,i帢SSOiɱfkSCf ;GŃ.2.CT/\G'5T :;Zu-k=>/Kz 72?-&:9R6L u;|ZdfٓԿ *1ΡD;v#H +6$mh|„'B֖HbeF(q|bČn +4L^Q/ElU;:4pZj`2B/ д, Ib^GKvBݪt40n PhYbZۼf >l! GIcr,z(Uc54V%ǠicqKQ3$ v^b9=_ffގ}7kk١sgwnz9ᝐ'|rf@MϐaGGG +FŌ9]o~s=#ߡR|)^0 dAr--Ȧxt.%$34I gC3O:'Ñ=9i2F6B/xnh{[RTIO*^F%jʒjb͢np WSjme­lAQ;UD_!YEğ9Z0k{UьnjA/F^,=jUjʗ8!soO91stgݨh".U䅧GMFP3,^7'/ߴf$tC!/ZY7vj .u%S%W|G/\rU]:]]?js49e :L3y͌ +l#L 8-k!(v  8ܽl\ǀ@&1ffx$rxцC 8ٳ{=U~TUW_gғރU;H 5-t0r`&t4l A(R4$#?s0v:՘zUv.]~-*vJ4Kg@ĢǮ5NrUpmя [cKھP)mYG00i`y?B>%oخ@e𿈬p-xt|Y=:QSM{x/,k0z]ޔudì~l+`Ln}6V9 kl.r<dc3ĝ}<ѱ2NMR~b{hվ®Q 3zV6ʰlQ2yRR[S͟+PH$pon;WLG)':mdWj;k[Keҷ^\q;:^ӓ\2ʎQY2St\JtK]'Q&KQ16$.RC2{ѽyF1b9h"UY@dn80+}ܤMa͂xgN)xAIMF|y>-dшQo{n$h-SX`!QZ8AiRetR:KS'I@+HO'b H: H)<2ψyϬ:H@G&(FdC:@(^|sXU_nst08`5OZ|u?8k8YȝOh Y@@8e=:h -5]rҴFuT+BƳKQw8eCf_ tKwͭ?N&|uڥ__lj6>1]Ay4cP#y4yd0^D ˌ?]puqWfoD'Zw: +*v#CĈDTf8_xLVyBawʪԵLNMBTވuNJu{LL׷g/ݷǿ9gg|_6ᇅaQ%1ZZ',8;EC-=[S)-ŴXQh\Դ mæȧ );NsI(y+OD ۽[Ue^gȁ JޖVsOxUUch|q )h83;oSEoe!. +a3'] /ͼG(Q"%>ڊItRF ڍrlr"(EVlxA%r7!^xwl +L#zPQZoh&јi{G!"1|% 9n債ժ!'F'4P4eP:á14f:YK-B q=1M%-9cڱLEw:HfdS6^ N ͺ fuzepޫ6^%!Ш IK'FH^BAlQ6BrϠ K/\1kKoPΡ 7qZΞ˵DG/1fENew +J"ɯȯJ*})q)m!rqK|>sG{PUd0KV7y{{'b#ޑZ^6Ӡ<|1--3#&'/&^L/7gadLF6fʞ>Í36vu{l[b[r0ֳ5Z4 ٣H,L.$j(o\\zdMLڙɤJ$Rfi6p +B"zU׫f1M0&#EЮr8 l(=?ȌJ*l<#U>Vebd/xVd4"% ^%8eD.PX č7 +@ A"(w&}&: ݗӻd3Sfe˄6FT(tץlG0Vlz .cZpњXϙ1mC\UTl ziGEdŸ8TΧ@ ".c^Aڮ[_$vcla' 2UDi2S5_ԅpAp(/>/>vVL8;:/d1=}nOSOOi袞JEuT?kFKKlܟķ1sMnZv+B۴am)laG 7ͪg$}Tn/gW5ꝾsR0]خ>1t1Q6kn0QkwC6 N8 H~9X=wE(a 6UURDW{@ +ʫV6:눺(q{\[~.md|YjqYͩ%.0|akx:h= ;fk;w8C{,ZTj=/ +45MOSz\p:3< pk>LpT._h5d2?p=t~i%d*iwZxW];rWmM==mۦ˽~̻^._]5km!oWjEʒ| 2|RY۾dfʳR %tV8|tXPi>!Ev\%EVbŅ/zki;N3<]f_Ŭbg6:"3"E'EIp8J-1-Z'%tF 8ʍL\e( ԮO2S>޳gXSy;'FN8<<)A5H>%eؔɖ̴*fqxf+3K<.l"QGyh'#Ʉ@H=,=nQymҜp_X[{Z-W3|]᛫oݺzb+_n&z1~"z!V-LwG,/2σ&~f7M 5m/ę2R{09Ce NvQOm/ #Cj8g^hSA9dB-N}d)^z׮իw=#\~_= |jk}Ǥ}6 ǧ8cB BJ$;dD<Ԕ}9FDDn-}qnq0gp`$G( @}H@<?/xE w/gz{o9kf8?4tO +s O1[7i6V_zЃ=AzЃ=AzЃ=AzЃnVz &&JI!#+DlV({U@.F>dGit-C3<yQQ -B +nD9t jF }UP+@qԃn@E$NԆ(&4ArԋnFZfzԏ2(*eQ7*)("@6tYq ",,[TBC+omB-hm@]h>qx<bÌ.`uχVHRF8;ZUF_@{nwf} •٠d@ H3c 7P0@y(JwB`*s9B@p` ``8qrht/lXs ~{Q=dWdM/c +±qd?D[  i./"?}p=CLk.\ 2ij^g@</VMSrH E0~[8 +xw:CZ!cu{WAn*0o:]tM4{2>xWuǁ9>:tСC:tСC:tСC:tСC:tСC:tСC:tСC0OAF?3aB^Z!uƬj<*}捕7 7x)-(@ +endstream endobj 377 0 obj <> endobj 394 0 obj <> endobj 375 0 obj [/PDF /ImageB /ImageC /ImageI /Text ] endobj 312 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*47Wp + +endstream endobj 310 0 obj <>>> endobj 395 0 obj <>/Filter /FlateDecode /Length 6401 >> +stream +x]K%Yc^w̝kcό>3s:]]cYqĖl#$!@ +!R$"+D,*B  KHէϩ>cM:waV䅙^'?]_8,Ln߰[goSSQD+m7( +)geEf24o˶khrЙ\>ț4:3\(~_ui/i +SvKQg?ۇ_9,L҈\L 3{s߸Gj\΅)93_J]ete{'l2:/뀄' DzC]Uu]ӆr% { YUEMcHoeNvx+'.ӢTݎ,+j$HzvFfnItNyEAqzu+?=or|?RW}Z~:ExF\*S.!yY˯t`E'XH҆t% ]_Ztp[Z3{7cJSAE>HSeDAph F)ف02*X80u );eۿ B)1 +b <2*}lBw?HQML8VhōOM߃&r +4$ [A|A6;UJ` z)+)'RUv|>hCk:0dAeKP)7ǙdU*iZfw%׹n8Ղ)`%CY^^v7U[ yq Ý;I>Ă !+U+N;u0Or1Wvl%|n=L4H.B%µA X܀M^6V]`*/ jtx`=+M鞮%iB `:do'"(k8鞁GvN#;X #•eYIȕ Eg5CvǷM~6m .:$D% ~C07}LI ժ`70IX_}guW& "\$ߞ eǾ3ӈ(Ez@ԛY܊5-Ks@ܾe{V6#VT9A]֤E;1sEf@ Ts)WA'zeb&>üVGoEle41bv+kՐEZ ZAZI:`シC#?JweiVO{&v {zm#+ܫw uc1 smt )[Rja,6ԋ=g߃ۉ +S.DEY_@P*wpﵗ?_)3|(s# +\r ɱJk=1-iMB{qsm#C><3Hm_y t3amB:+-ʺ$~;Ã~tNSԴL+H<<)"c#|>iUJgJ2kRE~kP4Tړeۯ+QS>nOU_ g\y uxjI-*Em*Wm~.]vOC/wߊfc4W3l!W{۴e[V4˂^QwGHszZX(DlsfFh V8F^l˼ e㝎#: qkdH.=[nq);33kiet.n#OiDSBU 0hbec4:x4đ(3vE䇍۾l[[GAE(g╎@& Wp½@hccST()5#CU}V;*j 􎥚`g)&FJĉ0{_3B1G +Hw"z^)z3;E,rD- 0sQjř_>F6r_$XLeø'b<'g`JຜJGYi@'ۨjAcuu^ *He%S}eoPZ [s]$M;މ~څ0;A@i! uH`\7`ξǧ}Y >Z%%ZҲ+XKp0t7cB,c(yYs?guY$vPCkj$:!qҸ $֓QuEx)d E+sA[,Tb`+hl5bBKgD`|#8-h!QC]¹(`h"f3 ^P@v'ŪH.'nexi( +jʃ[v`us}+r +ptI0D;pI,:p9nSwpnY>-aL^ s2D +ȓcwk-s&T2<i`Pwj?,r ߫_q&utyᐻ"{°|#``d0U>X<h&cvAUAbK\RtC8gy&ڊ2<`NifYintA"ixU"C%HvA@[\B}.WVugVӆ5S^G~.ǕF<7Q\h0H`|0+\fD.jpaXK_0{Szrh3Ɲ eBx;ovɑ{&%oN.2X7<='fS7'Ѱ.S7^m& Ћ[NyZ`PϞki{1.ߚ_f3o )D'mLJe( +AyۦWmWp?0 -l`PXLƁ)^ym>](x o gb' +LA5k7֦xA$DuזJ-q.'M2/0{Z G-i4BLɇ?sN)q&od&O + y@)K#+ %&w} +z1fa=!+^ҏcRy~o3 ?8%A$GiE\G._EhKLSX66Z +5l!&^@Ѧ"[TaEyG#WT_sE(7jBވzsn\c stWsykm𪂯&O/qk~|I3#;(0b0MZܫgr4V*fK t8<1AG<`A"CVfEt25 3ȤTzF{z' [1{~X,LtY`9w'ڑHk Kp(rQSYY~ޮZv%K"Oļ$I H,cϭ?wLnsPۂ x=DžZ'e1Nfo/d42z#=h<ý\kw(Bܡl"oq&Mi/:WkUӠ E`A A,ܒw-ÞPg7fTIuP%X3QYg$/'dյ9H {6;"˄:X(^[i_:Y+ ymfQLQXJ<[㘼}/χ$Jt?na{d<xB0U|2KWP5Ld&2Ld…B8l6Xy"DX3z*WsD%9}8uv?a&@q(pK'A8b%Uk|mvp2za;BK]rWz u1 7 +r. P>YterQ82H&JFCn3ƀ tIQ%IYºLdjׁPFv aup+ٿ qdֽ$`T+N@ى>J?W)RP6yCtcZG?6jm-(ڦ"6UL52!^i;csan !c*=b;*%>.˱(.cdēU8NG?_蹫EnJbv%y·|fTvcZi9Yi.a!`~}UЃ\EƿWuҵ/W^c F6v]b۵v[=Scg)7|(7,wZaxů^>Mx ^srwt *G&jP%]7͂Cαj$f )XaT,JY) O +CvwQ%?5/hBT6ҿ _;V;j$B0o?`#'[!9/~̄ڮ7̰ٗ~.Z|Ghٟ?ﳆs;CR(u'tG[x +endstream endobj 308 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*47Sp + +endstream endobj 306 0 obj <>>> endobj 396 0 obj <>/Filter /FlateDecode /Length 6684 >> +stream +x]_ydW{Jֱ8{|7;3lU4!W$ԆR Mp >`ZZPC<-BPS;;3ovgϙ=r/swgfv}˳"/0׏}S_;V^;cLRʺ}Ͽ>zƊd3{ˋ=0K 9{~nWeŪL +jo Mݙn4{7iBr _0tٽc1=dƸ,3ٔR3{c >S*g(Eݷ5-Uݷiew4=uvx^UTvz>Q5֔~~pQׅ^P*;C}S(žjdHN 6ve.®ތ5^ խxYXӁk/u^`YIzps)̪viECzX9[ݹ*T+ͺf;SRY5u(a}w=*bWəY#knm-ه=!@h5ݬz)"Y/tt 0-s}Ui1 :PF { ڈq{kIa3|*-}4Rw~c:§\a+ٯAM}oFu`REww:ux҆–¨ ' ϶;mnv E!-TKňvQPt"3!JTtBS +QZ2ޭ,,M{ɂ52+u}X{Or0FO U&ߝ}?6R<93Rug|d|G2ؗ8=Rf) +b-foc(4K7}-uk4r'.K^e4@"$NA&mԐw)mR4 ײꅜ\p6cΰ\5& G s(З1tΠГk8˖Rs2{$jt{E˳fH%c+I~*LJf†d`оoB@80 ]ZZPQfuRs(1H}}4_Gm0^M61ZdiM%5Ϛ/R[>I`w017ޘ%Q+OsuT\BRZȹBz +v˗>^"¥gFM0V,lvмPt]zz8J'73>ε?z~QjpڛߧMj; X^:l$U]6TJYU`uh,~>i;-zJ? +д8.3Je8WT +q@wڈYv`ő1sn;Xh +u pQ巜 (;T$8ǃh QuCVh g#Xv$/QkAl{M +ei +H ,n2K =SpOLBɹAPNp5^p5S($Tzr!0!ld1jg &PD_lh\7߭XZ.zv(uޚ,霁a,o.VGzЈrDNycףӝF-޻ +>S 4b/)T5VA/*jT􂱡!1\]Ql[S]k}FUHoĮ}pf8URfH4P!=ohmvHR\t]Y>۽?jȇQSeBGBN)C|qpl$1If+Ud6?j?DLBz?=a_d|H,x1%zD_e2YwXVZ=iÀ^ִ](qƗYAD,%ѽ(+@EPQ~e-?{lzʃT8iѧc)~Kv _*` <]zI$-F8rk 5WDTCCsE  i(mb<螳Ai@1  J.@_Mzֶp] 4Â5e]s-}ٸ;#Y ߥ* nT\͛*O)N1}^$ \[}1.T]ȗ}A왧CD푳--hvl%7 +\8+Yת_}˳p);9nK ]ldY. Q!C83$vtySH`X:)(mAZ7t=L ,nbee%H43E6QEl^Q{>,HFhrA3Gx]VM3bq5nOPA! bj`u!/0Q*鶫h>1bQ"7d akȨȨsq;R-+}a +b,10EXYt,h[ c{[ +Bc{?1X;JiFm* o|w d'҂BzkXPsHeE$PeF |XF"Akޜ0$EXhh}IIq8A|-rR[Qfݺ x#G+pexѓf}9LGhoR3n󴲕WA4zl 0)0-B7#ۧ8֢{0eBsUҜAР_CZRKSBBLb1 195p)}208=Z?NO050L0(1T ΓL2w܀O| S&=6L frPNX&]F^|w1L˥w/${s!R]@!P”&x&Hmlƨ􄡇d&Y+d)&'8E 7h$`ZC4X9LJ8֑TS̋I0$$`F9!1F=H4s + +gx|1KْiȦj"vMI\-ithhA[BwY"?oU?|sQBI{)I! +e؄4]v]Y6#dٌHrg%4\ @6g6&-mSYRih*'?p 1Zi1Ê +)!:@3EUSq ,ML!x0P0wL/4K;&DVKڠQ+p*tgZӅy7ď!9jzVPP;OaD~D#]4LYO`***ˉ( X`w($rRqGM WD SAqŸt&sEh\jJ[*Dy΃#]+0 p{9r2b|wǣ]|3~\TM @Z;mW>H޺K#r3ɬT0ǭlkZAys~e KQ\ů!JS hwY p(9צ0 +&q3` ӭM.Zzߙ ?L k䴩2Ih+pXz|0I5%b|N 1JXR} fb }̔? +R5Z\}>Bo!l@?t.%/Gv$֞Sչjó * qHIJjn!byD;D=rzƦk DmOЊj&[q2BG@4y&oN #q6 4 h?櫓"!S?Dߏ)C{2_.lᢏ*SZKCiVyH91|FS֗w GgJuFNr;b5{sZR˽uG8?~T_2ND'nrٝfe^ Q1ב)'DL3z+bF?iv"K5qfe C!“cZfz_=&oZJ?p֟]gkߥv~AT~' jTSW WAh+_ !ku +GIdcG^\^"^IБҊ)bq : 5OIZqS4cny0D-E0h3_>L(Vig Cq^P2FY1deZV &M%iIXnү HҖ*ˮ kW%ʎlmP7R}X$ +3mEN]48ozX]-y ª[r{)2aHla{}v64$젇|?)sd2aXZ℀ƚ01 䧌'5-LVm791Np1xabm?*W@"V8TDXxuؑHKcsLhƵ{V^E=hDI"jplE_Xt&Hރ_phǶ|969 0$%ziog%"Q&KCdgw ϙzVyK2"}zZht[j/EB&nl 5re<2E9%{ &u2m\epSw\WD鞔gX[,L^QbiA'9SSň~!9RΟ)*} $&+TY1Fe:h\a5|JD2x}=6-NBMzB pM~_tcF*8F6v9Ĩ5eȡ]be.-rI<ǐdpBPXO)%s*jU[R. ˻ʼ9Xt$ ETש؝|_$M@2H8ڟu? +{Q(^1q0PF䒏b +VAZg7&F28yq;G7_LASu C7?~%':qܑ? )7o~|S'D "j.JT2i%D`t6 GkH EP҂ĵ$r]h%ZXs_aи:6wTٽc +endstream endobj 304 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*47Up + +endstream endobj 302 0 obj <>>> endobj 397 0 obj <>/Filter /FlateDecode /Length 6411 >> +stream +x][%YٙY+ˌoݻvץ61Mbl)F@HxF E-j8쭜BM55Ut5GN 3@IB Q٢s_MϹ/ckM!,ø[n(TQwhG; }ze5WRep ?)UR]V(j]p zcM'W+p_'DSg0 ¦]¥- Dg@~o Kid$xt6W +{.%@]==m"<<NqUFSZ"CԘ?IQ.VZ)[ k&(ہUa֊nj}5 0 fO!3ٍlgRЗTIoղPmȡtw!on뵌 b@^s='ԼBj2ctl]KL_C%5'47ަ4j;w@TwHp_DӢ[[\TpTui/Kid*G-lO m |ނ'w;QqTة#AJ^U 4ps=Xo&t}bFOm7|ӹZ'IBƍo g`4Z ESK`u=t5gX:0tbp*{/ho.N+T6DЎA!vPCm!! ZJ?UV ՗&Jd+oW?MSa +C')͂[`:=USL9QFy>C ABz`%M|zy\A&whvhQװN +_"jX!q S~>'Ȑ/i{΢7er!*[M3Jli"^rh!7\5t?CXF{O1p(E)j|v- .zWa/hF#EQۋ ^TD$mr^|DԷO'W9oYY;UHM2c7ɘ =&b< !9+ _*B Pt:0ۺhHA00?<1S7 &xor A5=qQq8SCVZZ}<0D>fGxNޕಲV/CJR4c!^H889l(Q@x'z^Vq̈ROؑEh7?4*e&;ڻ;<JBp"\CeZum+ Op\i@ű?pcOGf;I1qF>3D& w cK-p"A T@ecAKԖq5e2TYUQu"%;M]e;&IS|u:ζ_RK3YI!9yo`{&$Ḿs{DLإyl3'z Akm߮㬺M2i L\D4[_lu.J^'Kc7ऑ{zozmGӽ_8ΰ6x $|GTuV_tƽ$ek{ۘq9t:hm&U= +I"xo\#xK|#)?p.(aWcR˭mJ8\Mu}OgNu4`Ja* +`.}9]C3nʎܝ`'Dt"'12XLDY0~c \Xi +  BSy6)FwG{426exa`)JPC3sC &z]3_,Ԫ>i;]Ǘu<)0=2C +fbvu E ºB5ú<_T9E>[PT*sޚ\E&qv+oyo3 UhɮKk6Evʣ. So`=ҧԪRh@X"?#>Axw&#Β Ƒ zʲ 61Ha7tER6{^n>&kp-bC"6eèpT'S t8/Q9wl!֏u$O`,]50`E[%h܋ϸ-!f%̛)÷L^"8I~fz$w +'FrkM˛StO|O ͔7ߔ@F͋P u')961]/P{0>:dxJ 'k:Vd^҉|Dޅ~Z|YHi xe{.syTWx=~% <%y@`/!TW>z+Tl6`>ٹH>ɿMI'hZ` INeތ M(M3sbZĆyW/zcYp3|SDX;웋o^X~i7~ L+ +fh]5*-60wvt;t6l]uv?!ߡF AZc~ a̜e @0i<&ё1ĺd@yc]*_wt;"=.ƥ]=~( +Ec1 p:u#;QQ5tċf_&2#Ir5rtuEsusVΌ]ԡr=<ߵ rCq0(̽4^4JY5X51WۦRVTX%a=?at +V4{$lhP2 ۵qP,jF{Zvah4jI͟63 + ]ۮ+2KI %A ٴm":6C!A&(z` "QKHpk8^Tcz,kn#MbXaן0FM, N>v"J_悜0Tlym`/ +%[o1F^;DG]Bw0N w!/;+6J +g/y6@ 2y6Xp +7<8b<ʾ-z3dN`w4`<؄*e/W'p-P_s[HF<~@m̴@K ,f*Ȭ;7Ң1̾ĚOB/>T4^$^S2I]7K Om͙Iz*B~ l_: S6&C<(xU3'^_/^G᪥L&4=_Pd}9 3+okc2HS11x&ЁVjP)' UzilO^+O> iBc4)Rɸ eL$Ya`ei:F}-B*$?h[Z; +YњS8=HPcV܈KK -F-^=0:a2E^ % NC_qu@-6P>P#k`^O2&glqgQ}[e!O_XxwYZA,|s)t٧oh͵Wh4GlxmG"da8XV#SNXSm8ҷ24]8pxB +ߌQ75C;&\GQq#U7C$: +ĹrV{(71D_` ^ +r[3Kc +A{G R)4,Ej^3Vg-5S0;$.w&m~)_\;i*ۨ4A?4 ++ eWQYuEۡ@{q%>wsUfW7[ }9 ;] 2h+z$uƓnC٧&LK/,N)aMR<,U6Lc}sFu %*^ULN~zII{$"ܷ[𖺫^轑衜:][8f1O?vݽXm~_3\3axwԥQGq}c2g2.5s ܈O8d2hi>@a> +stream +x+*47Qp + +endstream endobj 298 0 obj <>>> endobj 398 0 obj <>/Filter /FlateDecode /Length 5626 >> +stream +x]]U{}?lվ?ӿ?nvvfgw4Ǝiʕ޴)EBKA Tj^RhR@҆UO%@)(/Z!UΜݿ/Ϝ9sfǜFIQbS.|_[LFXԢб:~Sώ.PDLE$QӄQt,hhǫeLd>TY1X'׮i(R>˲LtG3g\[|lQДHRictO4(bUojǑ fODIɐZ B%"<7A54XtIޥF3tꊌjxz\`=lbZ,4|,b&[~Ӻ h}!reO𹸼2oLxvAk [Kyn3b Y2wQuYV\<^t[;Oe]K29(w>n;=ɤ<,V'S#04WBjII,#M2kgni+I'=7{sLTuQyI@-n/6fs/s{ _^C;G~Hmz5 ""bMΊZlMEHhm!+Ymۢ2?ݎ[+X|Uc4u>58jC=ѩy#G^@"Sؿs{+y6$2/W-vnn8Lھy;g?>p嶑nKl1Cսj8hz =R+;MZч=VΉ+tL4o©M=}S2JjG. ZYN1*adjFY, +R#S,5V܂hQQS +!w4ʑӣ.댡'ώ:\ & 90t_%$&8}592LQ#/XPBG}885Bd]m<4üF_ mA(s‡/]6 θ:$4M^ݮH]msuHH +ǫ mth_d,2`x553N mԄF%? %p!Bl4Ɠ[L2"&VC] T6wng;W8‰o~H*xHU)xOF5 +9&{rlߗEi\X +M0 9NeiAM"R W$J{p7S'4;F +LcJ:iJ#yh,V%%0;>BAu. +:e L8PM3NΙ=& )LDH&c4$k-z Hkmv9(טdV*2 3B ;8@e}$,0;@Y G,9 ^zavzkB'nNq)?o #3CF+c`oOpxȮGO>kLd8\K5.z҄ -8cIhfr WzU$28N<@yxCV +Q[3vRLwmMmM.@MʣqI8 q^B)i39O2(N~nHFqt\){T DaRS^ʍӓ2nB)9'?onBW^^`Hi͡h:K2ṅ&AM $5F:E5O2+QJX[z V>Gɿ_eTy1*O+a$W¤!ɕ+R1~_Bb6Nd hN3gXqqn0hH|*A +m{5 &=H*10D+lC66V ]BywP)@ڕXI8|vSUB9-;=\<+ +,Ӗ+0Uq @_,4;Yuk>M#f9=@MGO)i#SZja ̗un}I0H] i~m)( T8M{+Y{:ĸC@$g,E\ +I&?!O<-s H-Jt1~1 z|'qNKtp"6f".[CU6\UmV<iK)񀄣hIy!w륩IaGa|$W&TW (&֘"p'I DUr + m`M[-J" VwݗFVuUTȵ,,),dX:vFA4PE +Ng샷\ ZڞzXËkkB/psȦ eu,T Y[=fg\k8*_+~;g?,Xs/qP6EeY}'H7~bXkR,pgٞ +?dfUL[T /`OMQ[֣뇘W CzsC9PM_gѰ @l2OA)Qu}' Mk'u)vuU"|A"|'X69Cңw*\rΦIkrx_r\Xu:Uu 8/}8.5 22󹄩Jd`\rşAT|$͇?e[ L_J /ԫYNa1gX"2 Ù_x6Z5;w>*8 >5_ U;wNT*pWͯ >B@?^QѬVLm\p,f61fЧ0RDw[6\?|ሕlBHFl+j6N:C=8ạ*a!QqFFC;0V3mhjjʿ„@WPc2joUkp]Eg*'d +?xuu're>k\f.͈W_h|Fl2-sop_WAZ/X*7i׹ *BW]&4m#z~mK>ŸpMb\lc\x1$ȜwX! Go}c\ m| DJ =nz<h= ,/}gO8ݸO?CC~vX\P}lIBL-0@~pbA_"LT@v&KLr{ß`|We{WzZNf0J3ݤos7!]o[u K0]U0w%t݁O,yIya+X^F& +Tyl +endstream endobj 399 0 obj <> endobj 401 0 obj <> endobj 403 0 obj <> +stream +x]Kn7EZv槊$`pL)t {up33YbRx*RS $5GsN0 +Шcyۨ}aHp:}vq:nrꘙ*፤޼1s3̨cw隨 O "!5,1?ML4WyjYaL¹{Ʉcv4ݦZ=L;PaIoɘt2.Cc'MdÞ,خ)s{2A7ԮNF=L-a0yQgjQa}S* n0Y|4;1M&+G=L/S90 "ZJ=ܹ Tq [1} iF1٭(`9LKLcZ9zj̸/op}0拗q5f}fq! srs(ZX) kQ-/{D111~Q-XɭVsgɸU3a\q/zT8c1b͙eJ50b\r̨8V;E}H1gۧ(78pLX2W\&~FAZr8oڞ+Z=1Az +endstream endobj 402 0 obj <> endobj 404 0 obj <> endobj 406 0 obj <> +stream +xy,IU/1fDdF5׮ڻjOgsznnihQQAL^PPY{=eF3ϻȪ9}ΩY+#V["Ϋωǻt{Nq?s#=|{{}^zw;λ箻-kgwO.W?'v?ЋӎWz#^Ͽ .vyG7睏~8#sapȉɝҩ;Mm<ǽO@=g!|qg9,9o?+T_w>¿:Ѷ>Cyzvko:s15ustssՕ-"L~c3/6DAkfQ3 p|H9g}{9QOu'9s?+߾ի3w+{nԳ=쩳cO=u)F 4څ'AC.~ןG`uBW֗~"IinQw:t Bpmm +Kge NX͈^s{DX.7SjB^wv;-u`Z}fbBw"F&Ye$n,!n-/ne0l4{m"oj"Q2k@ZIyZ4%ad0aVA8UA2O[n[g%0[+o{[?;O߇?.}?W;/όF>Ҳ+̗V9Ϟ嚣GX<$lK}m&eSfkhuu "!;F +ЂA+Q?@d8[zĶQ'j PVT +U)K8KHy0OBQZL( naS7i ػQIw?PI0ݭy|X+w{(ꊹ"=ҭ4+w#슈2ul8CĺC6ۦ>~6 X1y'( yldep[L.bV;xtz J bNۮN +w2ܗ(aGQ(銇e0KXU35k0_i=$ {F8S`]ЮO<_^LF68_γ_ 2kc%jp2ߩc>":CfHcmk4ђre^~IXhLt:-:o Zxphs@`m0K_ P)}w_ +]"b$@8F0dQg QTtanwQ4N-j#M'ʺ9DxQƃ276oA=dOCNU+40O@ 6A!|1$PXA\s;K%x4h}gszS@ ̀:蜜fqnPua2W*0%_U/[اdfF*&.]wMܾǧw/ّ2{b'B0ѹØ| *=pVT=uSF5l<։\Y$eԓp ˮwLzD~Nw«pݜY-~UGA}ZVwv#^Yoyfkc'; ˯@s;31XNݐhFAgY􎨎h&/̅ihl\]HF4#z;d T}/݉[;XAq~$տ@δ4n/:36'K'E6!-hX#Ժy^sr&.v `i8V$=88:فHR.ŊVp` +,\:]Vq|[f^P=[-\8T(YTH=]xClh_p; <,B μ㹕bir:XN[d8<nܦA<9i3z CRԽфDB9j &3ˤk8T8;wZO#VeE6{mj5P4kB( +]Hw 6tml1 +_eD>d1oVuP2 9HOF&by4컒_#cɇ5\ScճF$XBn{'^ò[.ҲF`2^%)y;!>5oa[.=6wH{R# @k| }Ȇ٣Չ)U܌F ΋w&]$dJ Aܟ?PN򳌀vp)i(^ |hc +#6Y" J~/o's#ը3m߀"5 f&O"C0iClbWj-x$O>.SS҃ +<3W Ј.\H07V谩~yXpS;7oeYվa!gzcx/h?.ވgkS =e$>qQ=zQ K)ZY k#ii8|AHPv ދQ 0F.뤔ق!i"K+3S?l`Q"a[T^W8|JsT+${u!oo3OZ<*]Ld]o4 Kt*0 1#Iwhqu$ȴ5F(}>A"Ai-VMU5%{v'miyS曙2SLm?=N}{=u'K랡_Ñ;v'3vh7żZKemV>Eyt\[%ZEY/[y^v48`EST\^H }EDJua06Icq1Ȳ`NYoQq$<-) !(li~l؂&F\NB@laH' 8>@IRsM(瑛@ +'= +h ivW141BIӶR (nH\'J>^WSП~A(v:C_u"F賊4dW`uap4 +5b܉B|DTr\Q*젋P `a{enۜp +쎲eX{㉼86FQI|K9aލڅLy$E5iL1@Rs>ÆHKUV*$)Jc xcǵT>QBc6p +n #& 9>=,sԘVʤ0ǜ8OA\ڠ['H5!Qْ<:`BF)ɭDFA}KfH ?3A͠`?elWs:x@qat+X>a WDhm *J@o /ezd]~]~t/|ĩ_Rő^B|޻c*棨EvW3Q>9p\f鑹8$.ߎP=QU'NьY)3^Mz% Y2JҀ2o8*, @YF_ +ʻߋҠKXu;R݈hWޑi(b.&4ՄTEzkqzhbb&m\#*)C[nivO,Φ2&z䮗Z?/AmAhVYJ`ic;1+>-oAzZd̖ۧV7cэӑ-ƄsExL&ip,y!DiϺIuÀ+,lID?yr}s K&b3%2h4%tFwB뀒(^1lr smmK<ۑYjP`#C]qG8e>7U뤺( s!Fwo+!e|m5 񯢸bܶ GQk3lZB62: +"虔PNZ` +dr©Uj/Xq⪞jF6NV fH6vm$(OP}|}N un=1S S١Pu5)Wo/V#-iE-`5}[U)@G:0ou<8Ցg&±+IǠduALѹR&jݝ}^N)~Қ[֠|O߯h&WuA02_v(2<H-0iԄrR-JjυNbJߍJՉo 85bb8) vkn|zZH# "I3@m1妩ʔPtY( +#yym S? f*kBLZ κtB7!2~TǸ43Lۍt)>?Yrԓaϖﵷqsۇ@O]S7FyGyШN(vZ ._l hmH< \_Ddfu}Fxna}p8$#Ψpm[܋L/wv7ӳ?WWWp|,UGoiW-LLr?O֓)e4a4j߁bg˯pِƨJabcZ&f8qÛ^@p n1ބ +4wt DnMJPIHq12`IY`!ޟk^mϤiLH(7'80Ԝ}eU c I,ɒ52 "@{$U Z٦ץڛZ nÜԯvyE)s2(,HdSq9.0pOt b׺k]P|3C5dTaP *:ʵ8W؂^4f%plz z'\DR&izA"G(C^ҊF;1em! H̰1m]d$ c +1UD4]>V>wyofFo-#:lüzhb[ &`_uH,ySsNԮ^ckDv:N'ݛBHhHNd-,T[j[0Ֆ0!gSffb6ێ:ǠSn/Q9(eMJBӭ+kɩ&Ek'qeٓEq{Oܰ\]o]Akq5@Ұ6TK? n{w&M8^b +/'8 p#`zSU}sysGfgM)gβ'NDJ:g. 3[/QJ}"6xq8 V4n9DFk3L3ȟ3E+ dS@\Ȕs?mx?~yVkݿ ^\P?ydp{1߄'2xw)@_Om0I5 +i#CZQaTp]#C 7K2FuN0 +&O9ԤWWK t C;> "8~x zeHq 8KsflV2o'nMJMllIK˓J)<;xGHPOMZPT#DAGTGy_H=&WHnK(3/-0O=V% +"C0(익5A@#P/J3Huh{C欌 Dzٙ';$PGs;۴gmݠXJ\0zbl^QEe֟&*I\lDn'M8N{'?T<z#!5aa`ZB7Z|u]:р]@P% +Z&Q}͂ۍ= U93%kZf:85b{$F0*ؽ]H x1QTb|7?sw7bweYfCGi>*:/+rOM=.FV[.fL{b^C E0FsUloT!^\a-[Fy~n!gl@>.E?ЋdO*zؠrR7Ƙpઞ_IbMìX؉f98=Qbo1<5NpVbƱH]Pw1n+Y qFb[\ /T%܍4Sa2b) C/RGz +=K=B/mE.ehJ ip~dD?XktEV;UN![eQ:5ܾi<4Jnz9QOhB.#b^7˧|+nvsF(`-Yu=lKn8\p%XPx&y!<]ٙՂaY84Fv^ɥZh|6qU=jeEߜ`mDϕThҥ}B1J")DPqJ)çL,iw;\h![wҮ D~-O/؛]3s\ z{q[H.L|mcg2RT[ZԀtT|8J=)$8yliD"I}mؤ)mƦw +4oP9YuA$T\!+LM&>@@FpL@wL~dZ`M In˳ŠXr-6(,R^05e͵$Zjp:Qmަtɷ`"yc\up=L4k4~(.n1d Z*^V3ܝUc2j?-{,>.n\glYlĸc[!֡ x Ҳ!ޘܱ wrn+mQ4ɲbQL!F5v c "K1c%Iδ y:"䶨VSeK`.}o:,;N1,d*4.𮇳aN5&f +xcUs}7mLnOf 6$]:IL +}&2O>=/2OW᳔X.P(L+hQ@Kߪ#a&a4č4@3o.>?"~>8=AT3|; >ei|x"i304>AAI~trԫn}لc?N} eexz׻?G/g4דj@Uޞ$/} ܗ}#Y[sBq<Ѩ/ژnI}Bq!`4Bo=WsUi OG_ ~PX\?5e۴wtA2(c]tgnlQ .2"/ XL<#|$:ӿ,8'[AYVdh$|kqMVJsvAYxXfnVMçHB@ZX纱~*Z[/PrT)%Ж$k؋"m^wST#~¹Թҹlm OK;fȲd7j1S]tcC1!{.#DJ.х'2!(OI:esP1ńf0XX'_ߏSmx̮]WZiM%y>eW2ɘV[*=W143FQl%Ї͜^9- +.sCVh8uQ-F%tUNeqhx.Җ6 N-XkkHNW\6Y¹1&f7I&S\/C I42t|j >2n"ѭ'>Vѝ^i@ح7"ekNU~tZС|Dm`})h}UpE3<.}3 /̱҆{e)SsPG皰_MRǖDޠ.tKZ-=6 |B# &eӯxؿ +͑I/س ~ +ni{ݯ ezv>|qZh"<4̦, pؘĪҫB;{J p^+=v5 Բݹ XZFW_UmhbUT[p\ѮS$ʤgݣBjaaW`nFTSn0g8HA^&N^3wԢ{h_P3b;99 uS@&*[k `P1tVZ Rn5Ȧ+93 ?m1Pa2q c6OF9M{,X+(k~$)@$4h>F| 4n(-]i0)wZyz6t"=JǏ蚏GEg9=:eT +b_5,2u u +O"n}*r@xqjiU(qp<{ `sPvю83ӹpd59{&^5OݪzIbk]>hl_Spaڅ +RefeTF4>] VB,-= Jz{]2?Ch}%D^_Pv։勺Rg }w"|2. .+%%1Vt+jb^'=>5UyXӝyIfl/ۺOfo&3m!@J}0e@ iW(UReT+\).S2kz-S7t-y=Mf˗-hm(W{89 6WLA 1k} )vЮ{ Gy Y5Psr0/XͱUA\>ȭ6֍jǢ9ӘIk Wmԛq">"tlb°dTCs\5?L3hdY]ݡj]%x K1_RZ0l]㌙l~y5Ϧ:09Sܽ XeL"ĺ3N[,H=Z\q/[sޔLO&%$0E]K/E{vF0;㗄\/uc'c1&$|7c]yIsYVD\񿖋8q!TRkD1`f .z WprTH"ARIK Vڌ:jkj'86Wcm9GX 6fWo"yFi)9!C$9(M&F`IO] X"!{U-:g1,[dQ9c:c|μ^ TR3ߨx5R bNxg~X/6)k +=J}3'ǯUKUo7dV]Pf,&{P ƱKt݆g q~}x3zkȈ} !&ɗE Bo+pd+S38p߰)I %AF4=H>H&6\I@a#5uHc]3|"c,gR5!7 `c3 vIݮEnJ!]Fܚ +PYD,cܨq_wCdG G΀ш,ku(qoWu/Ggd#:=ER-/d`B7CEER B%5[k5 +}Kn?GkzեOtax%dr<\*MMWs :)g[ +8˦(@OGIl ;I]zgqͲ]<_UG\S{e[dN#QmG 5,|JCBu̡l\^)a[d MD)eל4FWF^L5]j9_*j4{X "\H@&pqTVSqy9:Fmg۲*x[ꝝngX[A]AnR-x$奤iҘj-cy-cIZxh ZNJ $2eVa\ϧpYxj 5Wc zkPWYKy-!zpo ]/>ԣ9`6*jNV\!{6Zঝ9.TX ;O+D"ٝSifW5 bfp`/NHbZUϺг7jl^}R.ed{*l[͸tlS(òێ=G+hjVx8*lj (m ] qMvb+uuiOTdy QW;a3\1j+vm[涾on>JJTtT|sS +B@i(rdba`IBb`o4AgpnikvhJ^|0.?3v!x1x8è@,vtQ789s@5\h&J>`-|4 +WiZoj^zB]-u/OW6!5pHV# +upz +58t(nٝ4b jag0 ]5l[V=%ْo|nF;tu?bwʫ=mCs.||bmcw4D rys {w{bx}bY:[͚oGPA~[v(nƼ=LvϢ0 +Ms&gGA5$bl|dzZW1~ξ m*XF׍,0S)D(uRcR6_UoFɤ3շ:ґVO/CK_J#Xei ciLÓ6!O#$dfs[]+0ҮlvF{qY^x4Ɍ@b*e]$[-_tZ=Q, lvm|[e318sϜ<)bʋ䵽{ +Vߕ+֋$ &4R%8)fmk6t0ƸZc;[m[A jG>|Ԅw|=#_\)jd3rUW@ߚs×(?G/qص:i# "P߱d>!yhlwdL'o8OOopx4YGNd>qǫM .<^Rk݊+bh-\#!rm] P}*&i 8Ah8D,j Bٍ#y< +jն6Z{\T g4Kp(VvE@ߚsy so9.;nG%:m7GXQ×xBx^7Np eyhf_1ڈۦKoy3*2BnFߺ4^ "˛@9Á(A-:neOg'~`D=\|/[LI`q"I,OҤc&uOjSS#r7b.?/ +v@v&M?oy`e~D4v{wS575mX1n'!TUMj<˄} %׵Qe_Im_UuVMد8#t'^&g Gp,+pāxHFi`K(g`h} i܃,;~}ޯǽhWEZ`!Y%!EX)X# H(\QPP1UH`)R&rpbv8>Yjfl͝{wsv~-{ ].RʫMz &?0k:z}N跼@V|ue(;:{;β< My}r}z‹0:chAx֠a3,B(VaY #$R"\G(QKh7?w-'X/< :.Z1i<rؼaru=SV=~Z5)ot5t/A?wRXgV~fK_NֳMgwuɭ>fMHM#WUuy9֑$Pt8P$aC4mRIOMs22AgЦ#e:aA) <ǎu&D^05b\ th >XK&jUSI}\\mr?|Jz'𲻓jz};C^YnW|Nh^- v5#9+S[#Mjn A"E}4\l;Pn㚫k瑐M +@xlo{ڞB0yM#4q٬@^ܙH ttlI0 $ٞh6ݜ.w3̉6H2T~Vy=w]ɕJ٣h}RF.WClJ䦗_tvlu۱oq|![ZaѤ5DvX1XǹWOHwF-G,bd< )Z=^&mrBUlh-2pAۏEUزi CàIH#W:W~RNL1,QG,KP%oṍ>ñO*?|L\hMtW`ΰXg}~z*@Jp@AЅԼbN2V7qOIp= sl!xYffWBcNbw8ܿv;jsʕuO*h[M0^!kQBuE?ߛ-ʭ2 u #ZAr.Q59aa}]zyE1vɯ(bnaG m̷J#H@[/uը=V/fec+{֩f^,a]O  ufl=ӺwU*`Gbhdx8Tʏ(Ps(:Nښ9b/NklJ/PSLae\3a-8U#Q)ݻZwye{Jo.hWog +53L~gb5DZ{{W?qդTZ(>&qaLʈ@FbptT!TB1S:bWC,^LHϨ\Lٶ'' N}5ʸy>WLi0]"65DKgaBUD2&IY!Y||ST-H/zbΐ]߈FZYvM^>YYZC+ +@RFmD^QV8JDPc>004kʓBջKpL>ai;k,VAN#v#G9~\G_]Vxhg;JG)2hZm^t񞌂˙Q\X\Zv,2zats,GV%6[!LO6-=yRԛt"1.kcnY’Ґ1t4Hm ]u {D:`6S0k0MKer*tb4%fY/3nu`@" jM҃%fvǕ :Ym2$ f?A8xAP ->Z0N*Q1t"a<o)˅w"p)ťtmQ\+﬙eh<ӌudq1@d+0$q'rFOZMl(b!Zw-EG9/ +e~>Z0I,Qp"R+MK0.Uqܲ,#Ys%*MLjo/9_;_ȽUSi# =j +m3$JnKAq2Z8lnc=*%wd-18D_,;9l[eє69?9$iHm]Ǖq +{s#{")o&^q椻樗3"BWkZdW#>~H {(7Ӻu*JKlHϧ9{|<̩꾒 'l~cXntCMyOr>6¢3,zŴ}XH +-dLzsZLWRSm;xn33wȒYʚIm5kQZѸΫ'3&˷vU*HXX/~u𖏁*#u-t +t5cҞ <⍨ZŸn}:NQpu䉐P.FXV9rX|nk1}G*\OzϤ<&ZKX<Ø18:.PN1U(:\rN*Y U*N\_og_QDY N,cu:CDZ?{B5pDg-[90HԒ 7"2q<&2&a?{>4C00Q Raqsqxث@9/x#:deW$i& β[PRDt#g-5 &RI$SE0tD5&0җgB| .,wim;*WW9]ye c[?7Z&[3ϢJhmf>P~}Kgzs<:B WSoBXϕ4Nꒈn諬j@NR*˚$Rϖa^kDfd`chAZ@{s9fDN0XtU u,A h +K6`@YU+cIJqK>G@d#_|/vjnNL" ޑ~EʂuT!%{?5A;-EtE]1!vN" tt 0k(:!' Jc80 +S{4}}@` ^[ ߬OK}駜iS + zӧS\Y.8DaR)gH\I~/+.xȨ"c:~Zy͜M\R+AߩLTg:mӯ|2[Vgv2Xw/JNƋ>xt韬78w\ ⱃGUuB_V7A 1Ai\.u/|27k9aJSڋ Z խB7$<` #%f39'< 1?hcAu;9$h@dbT)93))D+YҊon[RXxA8;׺1wU;a6\IOzQ߯47Yl#'}Ժ_: ӲD/C)iQ{,xM:ߡ`"*1*4;sf}MG&&~(E &qt .{jck[xAhaչ|Ieznv##=3ir:6b>uSWbzȎZ.+\*ER,6l1 '%!AKQq:4)?:./b~RxY@)t}f쐗V`$N3+fܑpq͈H(;Y ).S":He_(6ݘ+k>@EUHPEE}Ic@)&ȦJ0y}!e SM.BIw kE:㡚سO/֒.xq;̢8e:SKg%JI~eH=<ܮ!6S(]B'ffp 6UTc` \jBj#.)\(l.m.}f%Z333{G sסoD/X^[)$?-G`2gv7LGt:т8qMD8\mgͮ2PʣUM𾊅HNjF-"v|@h@sO0G+59T)!,+Ƈ=YrlȾ).[ZnpuRneK2IL0 +sl^ps)E$N±qʅXHv3.xrsTϪs٦XkStz͜>ڣb&TG2p&k\pY9J 'Q:xkScyLoNǪ2`7 5/<+‰JMPlMHױk}_:G"zbXG#:+{[6x_:kY3Ak3A +-zҫi9?퇑wb?8z.K"I_jO/EKKKX#]o` + +@ZR>AP&/ɅjlUr}+@yS߫2 ޓ W ӑ@tA'G܋"peDklbpF# +֜;,$ґZe)?SS}&/Hh)Ҵ'%ѣG+x4A/^_3wx͟%)h;k0E5vY*2ϡTڷkv-Oy"-xNu*)_uޚXɄW3/RK~+Jߟ'DHyhOᵂ?lߗ +`~JK/LYj&I4:xꐩI[n?~#5wZ#;5Y]眔^LF'GhT>+K⼱ǞiP Xc Bn-4a q +Chn"F- /:uAg#((*$"L{rw\T e 3|;k=ŋ r`J]qxރ@΅'-vAHn}3zU_YSXMICwʭ>GRo3sz5rn_aF osՀ=yQ$c\i:,^/Gu.!zݍoۥ*i"^`l&0}Q ry{Y.Kb}  #wZ5%1+~ݡIhILz:,y YW8yKyw`@iCzNFM m+́(| gp'o qp}(ƄR2o^8V7Y{ro>3-|LJ'tiO/yZs6DuĢ6ŏ*JThY {8e|;XoҎYY.s;w-[!}+ 4+:-{eڽ~. +BN8U}%ŪS7 Z9ǞRE TVQG}_1ƼD&)ẜ%A lqlοS,^IqďŻw"C'6 a,jfECt[#f|m/Z>rZb[ᚮ;U待*U_\Y֫ ٵ뀵aM$8+qބ(>l3h\X41RߧvcmG'C QƯ 9B?AE 'I Tˣ;( a_1;{W{70i |1U9k2*W]8<j5_`ZhVZy!írGXn:+uNbO 8x]kcg#[7̗7% ]# %̭˞ZC;/Gr~׋ r(U=tx<7 Òlkv/d k"Z>'/ 0\dY mn;?0 g^ +dϝF~6[CO] wS}a'QƘF?}p B?cs=>VмoCιi>O^`;' [g5SKϴr>l}fڑhk}Ϲ#;/ ; !cpa%_ ;=`0. +_6 kY|އ/{[.!`66v線afg ~]J}wv"f`0l.Wxn=_c:'y5Ma#ٸn0 `0 57 OzNb0\\{639WNg6Ol*?2 ۏ2 ?>7f05 ټvmϏ/%nua(|`0ڜ`06#`0 `0 `0 `0 `0 `0 `0 I*F:j0lGb`d6q؀n> +stream +xU;N0[rArV%w"ْ8 +'/ Ÿ>O&.ol`"h4Jlr4a3âS׺Oy‰y~z4WvѤcq~-╭摞<i|q]Ԧxe~7%Yn +bRa3> endobj 408 0 obj <> +stream +x]n@ D +Ij^K-? K@ȂzcqWHu[q~{|1t;u[6"ʿ4M}Ԏq{kg,ԶG'ˣTkHL*Ր6Րm!۾RC2PCRXTCR^jHv!)nR5$evjH2.5$gV…-X߬`UfZj^܂U[`e1X/wY*y{7{sJ +V%ofH*y7V +V ^Z*ycDFWX}627">#C|#BvC|#B}67f6#Ōx3'#Efyߜ7EfN"/JȜ8_N|gdɄ$z.K]z,Q7}G\=oԺ۹v?A?i. +endstream endobj 407 0 obj <> endobj 409 0 obj <> +stream +xļy|T8~ιzg&$d%!! &H$ B "ᆸ .TKՂ]^ik[j5j"Jf~Ϲ3 }?7?s9LF:Ġ)%SH@vܫfڏC?5w?!l~W=zGHrŕC'} ;pj ̺ż ZqM~W+\:wv~PxG%WKȢK(?N'bB]M +sH-gpp!?t +Uԋ% ؁4 Ȏ8F1$ YCQn4=Bh2Vt7ځ/nD p.,4 ~Bh+ڎ#j,? /G3Ѓ ]<_h =G/6|}A˰q) sT/E?~IWHB88]dۇ>\ô!={n&k6³݌>>ϾƞkrtJ ^4\g:=f`x4 -~$މQ8>r!G/gڙǘ {oyM>O!?,S߂ڀ.mAG{wXKp<%›)& "ZoԒ d&|IN3jFdZk̯\ +s/r(N(#{8r s/* sh hJ +p00pnA=PtP$A9L[X{%P F |__OLVrW.4FCʏyV_~܋/ed Γ,<+d.?6 +.GHy"6uы{t7>>໵(qlrd iQ8J(<5)Sxb<'Ngoq59֍>C }0h{hy'έ`nƧH+.k)T~tգz8,G`׊ߣh3:XQy#ym6AǙIpA?yp5tZ{ +fXQ=gv|`;AIm\@ē +X|Sr/8|;]]qN7 s+-s^}E!I<p72VX8aWeԆ]t`  r&t`C~^A@r s<3M/G;A;ތrCqX +ճ= k}#/ 7v\eC-{&C `)ۙ_Pѧ> =Ϙ|=Yȼm` U +<)&w<.i Vbe/úhYoW32߰ҘӤMjөdEyY"^+Fb(۬(:F +eFeؾ`oƕӶ8:f7 d@H)B 5:b gLbO`pXw-r]`.t8q_cp:a=u6O]^5P@m.f,Wcx,j%w :vA&1`l "q̠!!66A|B4Û +hN_B{x݃zc>h_sc&7uo8wlp, M;v;yOגؾMcw'^=݃x=2@>UoQ`P%lZqmDf\.@8ru6M-ngvgmpS +8)/# ݣ7+Zݹyg Nk/9j0~>H Em@SXcܮ)/[%B +@g%4v4ǝAR23H3#tdݙ{b|A;ĶċĉSgt:6q;qyxٱbm͸IF܌< +L9,0mtk)d<+;(+=`E7*2G%o7>oyM ,flڤ>ol,hMƊ64%;P4?x{p= (VmSHft1p۴ oLϞ0u $ɽNWBQVs}>fIO((*H+?7F3,uX@!yZmZ YO9, :%aA9K{LW "JhbHMcd;:?k55)@i)ZfT ~C:H o4 #I)sMZBP,) +ŴN@a4dwhZZGK^ĚԪb\ +gDLWZޡUc +EQikH~H!}I7$-XEB iVOZݬ#` +0 +A} +}P ,XHJIJ &a:2C +JS@I V}~[A1cBe(^U"5$"[%_5H}*1Ci/szHݘ!9% +̿Q$=0$2ߢΔW1_ur,%H!N׌(_IPV WHD~~Λy J`FHA)WgJ8:\\00ӕ]1e먀|@"cT"beːM/MF][\efse Mf֘Z ԟͥotאX0 ͂xאސ2bfqdlXC/(VXCKB+4]ճL?3g +39s>5 'ՏJUb&˸)WfTjRJeD݉H2!=>%?mYW9IH &˙D)iAH,8)q +¹ZxZmk7@0UfHB:{ 评;A AZiÐDGrO9@WB O @2XGd4 +EkZYˮ +kT)KIhVAdu}~:ST]*FPT$?QJC!ҿ[nbib#אtO }is毛#t~9RIx3f8[b2k gL ۧ׬0IӥaM@Chvh55G5ܠץS+)(v(~eR٢7mB"h[ " ]rM 0n[ Q8!mH"hA_?[ ; Ka"aa7a|4|e>y\!5aF3C0, $%!oTn)yrl*)Og# +_Őӕj1H@bm!V0ٖi2 Ũ' `ERݐcr- y\-ζ!?.!qYr!% jzHl6pLFޔ%3 M,ٛ P  -Z̈́WrS9LK iDݿEE3UM&0t#_"I}ֽ==F!J/!C!s!ݽ!̐njH7)D/erӀ݀'p`Sua9*5ujZwnR"_t:og\`3' +;y!L2(̙{*b{a=RÚBgAe ,e"?d{>3ũj(Kh>~Gaz7⿢(ylfn* 8,cP<g2JkģP.`)3?E}&8uأ J)}^aXHğ f~)(JXxWje)` /ϨFQ}9/'q3T% ]:}=s34 +ebY''[Y{xL>SF ++:7ǽeE1z#aBx+yώ𣏕W|Y}E53L/?fy` ca0B`)x+mC׽DuIʗ7(()ǀ)QFAOiMy-y^+V\ \; ++8 +Pi[_H`D[v78CN,GDᆉ{SξMv5 +[9,{G!t|shfpя.?Z~+ު +^X~5N`i EC>4,VȈO_4%^0x|Iw< tW' $؃ Lk^_W( /Ǿ }#'^'Kp_ THddSHjpʠ1h@=,:`8 +6[eb,(q׋5V2 wy& |J\CitHHl +؀݄eK8%Ւ\Vݴ֍ݴO8M]G$%ohzRJ\ ;} \WwKD;<$JzMãVb:;#:焉/Q@bbΑeFF\aTc5r};*N6m* oTU:O{b,`f(PR*VfSuu5%ђ(("GʼvZ7kwNQ0Xl:(hZ6~oqm;\Kg5kZuhz'}c{,䤍&V;4# z/?5.mj{x\UC} s=/&%6H OSHB7N2[uβoAx*s[pIuN$KCxJʕa0nK/U}UE*x A/",FDhZײ +b# +p; f1'JD3栨2>8Ȃz,jK j 5Yi/~nDx[zRZS]W[NrmTVeņ{.`9}t+rꨳ>ጸ,3 ;r{=۞|Co +8=#_Ϲ2P5 `,U旐 ?/4KTI0{GDdOCBIo+T]F0`ӡĎ?- 3MH/5-oOoA% xִ5XN%ml6|*oeHl:e` |Bx2z3`*=$c@ɑe:*l^!s 5HhYW-eclaO `j5TS-Jf fLGmm]:'.>=Rі+0/\mE\eu}ό_@ES13 @G$`7,HN=diYSi 4B +j ^1HރȅxxZƫ +%>IϹtȒ%9A|?`>_͠ JRRJ`vW}T=e<8-qcCnBp"!NæpM39[e(2]āni;D}/ S$^&`MO̮O~!RѪzƿb?|m-:ƘA,Q"4,) [FYtKMIc?Ĩ`b%I%e@Eȩ/hlvl%ԩ&`H  Pi_.hL[\w]n8g7<#tE&* +R;1cXzzx~pV{X.a +O ($@ׄXfLU`h#֕%7GZɒ<:D([%]]a!89N9L2 $p0T$ #1C%*K\n@N آPE!KeƢ/I ҋ$_N!:iHd`=EMvJ;'zp *Yz"KgV/דk-{n+۾5Q5{tZnR.Aͯ_e1fGtf5Y, o[i#j[׎3a[VBSE/_s?B:l1CWЅ>fCUȒw^4.⢂PBX39kyz )GƸQQ& +SDCs蚃6砠2tư&oD`K%%x] )76(Pʼ֊e1˯ͪ?{s5qm1n#|*_ȒMҦ\:)lY^# jA*'G<: VcĨWR{5ȫ "FhJųHȒw%ʥݢSo໩⌚&0%1Bye;m S0pB)/>}Ѩht5xY E8x,7" )hYQk1whDWG\g8ܮ{(pgQs$]X [q mueSϰ= +ze|T@-Z\.ތVK9a58"U!duk%@G,aե,L(28*ιYFs-; kHb ø GʸU)~ +(۪iʶ NPHB^{aMnؠHl__^hڠx=`]-J65Ar&EmBfܼ߼p}|Be :K'9r[OW=~Wvd{unꨙ=n#=v񗭭_[e>Kn5b j*z[˶]x%ۇJJE5pHg9'qR)7]q#b ;K +IY֋PAϗ+2#1vy\^Dzq 98ZH럃]&s= +<ISJjZ/nrKtonx?㎤3I/xɵrOWar[}\RjK4ĝڃ4Wv:ÒdVGJxWjV`GDqύ.CٳۋQB6{dٹ7 0 S|aJ *>/( D1kj{k UٌV pBA((IP$r`1A,zczA0l p t'I00:*`ö&$ +I ""DQ)=[QABIsbgGH4h0YE ޯ,nx`{ʏTp=ǻ+J8>%W +^KH0TVQx*"%\aQWG!@;1tP/!%3bv(8[jJŶ{*HE=='F0LDcLMTAH(j(eHʊ$:4O,IpIE T~QNeʆPO٭eTȺ2]{ :;XHPJ-]l16ڭ#S.ks{ɦ/^kӻ6{p]m׆qɑrһ]:"/a4"=;gIZ1c&ŝRyP(:,KbҢocYTBUx7y2JStd +`@XgD5 ?f,Xba15vDP,&V%L (}N6Q4,7LQjSLL*(S]X L3*l֝+gȕ.lV..04HET'P]w%?67*zڍ!E+ܕ(lj 3}5oYz[\-m?lWڮ6,P.ЬҬ +`^aqu8To(5mn?xRKȻ z V13D7% c^{HLcBhF  ~q5 FWR!`$fsUZsV׼/Z- /bPUD%{/*٠%N5u_P@!!mЅhDqUĩ@\a#%aPʈVTE>(APġ.E!Rށ.= < +\Jn1Gؼ3H{(k,Cq#m=i3߿Z[GH(nu׍`M-Sizs|7Y-ՕF"?llTozNXڀ +ymij+bգ)vr zդv@-"-Z*ߵ>RYQU zqO-^VyVyoE<ۼ~3~a!L`DUP(o4TĢd[{Ԇp~x%qqCc?~CEੀʙw.?8b<,b^ [Tf~+k +; [{CHS>/7\|rLC`0A @ՠc1?$Nw\nOD"_\̸"] VydL`6*mkЍ;6+DFy!zmRqc\ChcypOx +ӽúD, +Ƙq#RC@1.褾Ų)&̛mH7t:hDbt70}=R\ - F[ [[{ޠ 8[ ._1@S2`a =s:9Sӄ}BDU.t9\DaЙ"'w[yP3jȱYm  Y"߳[cr_Wl15A dg V~ G[Ξ9)I0P5 + )STcj'[޿ܽ{~?Ξf+:\7K[U.F:\ùrO\OЧYB H5Rt2׃VD B=sCJB[½ʽ*t]hfߎ?$͒rEuP@狠e!(֊DDqOн.t"t2s4C'$F#,dU W&U0 +[Ý+B?g"ٴrjdOG5N]a 5,[]9i*n ,m T~C92qFc2KDDc̹hI9E[毲zs_]taeW]LHwO/|˧(#W]P.&+Ӯ^u-RyS[/]'NhJ Zz +ApU(! Dp +T*O  +^ftN~+D0S"ǥ_4]-vYAGӡ U)E(@nTHәݝ3;2C1{ %9m80=:kmTȨrϝ{{Ҡ釿QSKp=ގ\"N[Dq7ڟgn:N Ī괼ƫ :ᑲ;ZR1ITہ VNٝPsZyrNn9NiQ*T_>Z] @v|d +h%b3$^|Տhqgj2 +Q}koAPuA!y/{=3 +ܾ`L=Hg#1}"D:hSe&_+M]A Im['U5U-%=WMp*F4?U~EEBڬW)X|֑uEevjєԬTWz1T)!MC[;҃ikH(▫;W֫nv@XHpX2݀V-C˰ + ne*SRNkl_Xwan1o+] UJoĖH2ШR^p*1KiiL4$rpUj9Pw*XivF +1 "bzK13i~zW敪4eV5~4! B>X-7[䊡sGfc,r@ -\dFsx+d#sn!o½"*]u Vd;h=\伳'fPQḷ\Wj!wIIn0wW$7V".HVao+R-QE~ +p%h78EόUD"vd ![VNʠվr1c4IdNՃ.=ڂ2׍&7V֕OWkk$({6 psƶmy)(ž%gN6g lwJ)J}Gz+֑zm`]Zwuy<4BٱkJ] o75).w!,/4У+e$؄y{C,8?Qj"3%B؀АګoWP L 5 ʝ/4/Xc5j 5衚>צx]6v{U,jjkk^f?=U|YۺW42xb5YIaOu#NyPDX,(+mJ?>ftg?Ieᴆ*n$ Rf"55]VlǣXW%H]HRI%'q]\rӁr&:N$~ ^K1)`Ix$}K2rPp9%] ;Фoj^ i*:<:V g}AtOODj +GeYT.+*1* +Pm].Z.Ot|ce-Y]\n_jq{ ƒ +h,+h~U`mn'o׫ZvzmnkX!oL`c|CW6 +;3Gw=׷潛'lx(T'zRcz|UmɘI##k޶+kOO5{$2To8~ ?E f5C[pj17'T-竮TT/m5`~%-|şD[͈{#GqLXl>hjqƠH9[h)Uj; \tOJYX+ oJgq^y{ d;ybJMށUI ,@DBے>s졼ZFC_{;;U +_6nbU?׭Ʈ7_{=3'_t; +*+S@V:@V|uttmT##vw<\?,#J *h!ArW%L ++Dm82! ~dAh1BfG?#I(JT^$+XYQ8J* 1!d B 2g&! +Sp&D %(,b dHȢR8}$ٯ7IE~i}_zmM*i{`~aP*ҝ,Hw(ɢtcT၀"eK1~T$y+_^cL[₶*m Gdu=={WY6y;nzyk[k뉏z{7^R`YK^k-Lbf>4YU7VU0R%(x6ڲ85+, i5*cMrm  Jl{ԱX\PKhV +6RBQg*jkNG!r(J$($C'GXxg@+:u33ӳswszNJ{] " ! @ T qFv"q*ؤ BHhcʨ2ȱʱw~HJ>ut~}-d,k^UAaE'2_HyND<Ҁ^h?~vjcg߾i'W?'zǯZ욖#}G߹O.|$U1;dFhѸި`Χj!I6K0{$ xA%QT%r0f#jarґy؏KGZcg QyV@ARmmTIxPKt| ¼ !O\޼P_AQwqa^`@ڄ!!Ay`BJ[)W~x ߄92ygQo@,9t!z/' C`XdvDҐI3'Ct! zSKYS!J$j#b<_M ?U/} {WE#)|^ {fqrh҄#NzI0P?Z5IKXkM?R˖W/Ok/w:8\7ayKSjBsxcLJA =6MȻ*€2&.?`xLV02PotXPe-_6:! +vep&&n87Xg<kc^Ն+Xȷdb2!uKHD/J e۠(FǢn$2V}*\m5ry(b]ӭd|+zP>liuԞCO9G/4Q뚱l \qTm˯x41Uq\_pi# "~Y:銃%t-sme l=ñ&r2̷qL/xɕR_hbϭރ[oxxߙS+{&'Mܜw֝7=ڛLƯ$ۯi+{nk?g|ffw%W. yh!K3{U]<"M+ua&ɌjZ g](ZUZ91I7ȧY'd*TW*,3cG*(xŖL$nӮ: `g >3AvȲ9Ȋ%Ȓdл}Oq)#d޹2VLT@ E9F9H9Dykr LeKgq%;ϲLgN9G[ Mt,t_P #?s9j +(2K6xdYI&= Du07 Q"F豞Va:2˃9o^55} _tb$U.fzCh]vcGj4["zËM]Ӹxt;5.B<-AO&zEU䕢\@SDL4CRAM5|#R9a!y=N(\5mr 'Z (҅񔹀ܨ<$ 7IQmQb(5e3 + >fM^ǡ9*IhU_$z: n0lyl6!.z0[]h `pYz`tJ^Kjmbъ8$V$uXou/%OrV'j6Oj7k"HA4M?~{{V5w{kuD:5D+Q1d31i5/<ۯFPt7Q{T:"xDΐKɒڗJK,Njjv+)wjj/ԐRdii†-J_fbC#\_o.+c`ÍJRGcGǎ͍Y@Qr*2b!"2ЩkCLDP.G%QdT5J%!;N04H<Է dd+ѱYfLQBAotOݟJ<5M+5vxL3\.[rU#1e2L` +\CA1U\tU$+63jەUu$(0DA6vfMc4oNܘ&,D;۳4B_Ⱦ7 (ZK2"oϥs |e{`vDkloyd|ɧ&],ƺ#^+^[ْ(W"D +)Tn߰læ-?.5َ|`yV[t (HO04jѹQi451E|%ZU,a+ucʜf1* 9{a%PQuK xL<)q$*khw0;tSՋT"E3t"`̓ۋ/UdI ES2#xeQ] + LƆL@^&.| K2 jxvðD/r(TGRKu/։^!l6s 3gL3uhϘP말N] ҋgiߢñ)<  \MFp]$.^렅%^m#Ͼ1%j@ÛVfz7>sU_Ea=ځݗؿvE7g +CJ F0 +{ݝqad dl;3, uт-ld5fu -WR)Զ9gRL 2y~ʡhOχHծ=DrgzCܿf9NHi&*qdp\& GCQDre[^m,bu+ ((j d/ۡX NU9܍W>; vr´t0My۵[<tv³g3 ڪP74oKE3;ݳZ"%%30ƃ[_|xG|ۧFW[q1?AU` -Y2|7/ Y0ygQc|QӘb^%ʍܢKE|?Tdˣ1)aK Ϫ +UTo145OX!JhgM甘SBVd[_9d#YPAw+foJRYxH܌K-\nl¸iG + SIgM] EuR'B׵bYl 'l=0wfeW 6+&TmE3>?:\[rkIֶ^W 3ɖhؚk!2?6`7R"[8E~3fGo%[^JSOk翛_JV(J o0*D`b?Cp :bP 0Vpˡ0 %t7^5Syʥ:{%m$!3͐^En<e$nɛ@C)CAxEI TrDv'v|(bMO3lrpKo^תVʍ["b# +n$V V1"d+d rѼ|s? Ux% 8{pA뙀JW %jVs),ђb/Eu-m,Se.&qbӲ +hIHҷGn_[=x[닯?qk ʦÓO>homdu;vKbȸ0- (ii/,>ce8Ovgnl6bV`VX >YP>ҥ$+9߼DNfP.Pm')F}N KsTg%YV?_iGY{b~_,,>cJlG܎aG޵v񬥝}%" ~ݟ>kCa`4lo_ٙ$yL ,Jؓ>6|ц)JB:)+ؑɣd*C\nV*Q88P8qDbŎ#zG;zo8,r8ΝIUϩQ-OkyZ]/̏dn@ɛӰט[c4YcA$f +vuճ˳lDYa,᳙{-`șQ{QcõsԷv?f/ih -rEZvK}>BTDSˣ|>3x`V]q ⏖sGmlu-zG?vf=Nd0{IFoI/,Z}߆zV2<+6+ SW)3e6>lX-O.';7 +\-b$)#=(!-A3jh;5j*~_/֥g%]0pIԤ&5IMjRԤ&5IMjRԤ&5IMjRԤ&5IMjRԤ&%DV +`$#0[۴|Ȫuk;WL毝&zht[E[)d%-tp=F:$;ςLs Ջ!$s "ȫh mBF4Vuh-D+$ʣkej4jC((A~Ԃ(zQu# hP; +#@oB;1pshyw||uwݱ֡vDBm+\uyt~nm$NP> +stream +x+*47Vp + +endstream endobj 294 0 obj <>>> endobj 410 0 obj <>/Filter /FlateDecode /Length 2045 >> +stream +xY_E_k{-L7W\׵oݭvoOdn) i{#T4\̨ +(z( + +B ,{(*0(2z!z ^"A73wf*r9sΙه?KW]{W~xUy’$I7wnKyEq{SAjOF oj_FmjZ,˄ XA"\EHOY jQx>%(=UY=X,Iz(=٩~sNm˼0 +XͲoTuʥEpzI%w`guץ-,<$OGkSkﺼfNy9Dad'9WLʧ~ϛdScF:ixHQZ Fm= Ɨ ;Fk|ODD˚QV{6f҇!N@XY~3 Y(WGω:H{ޭɲ隩@Ԛi?HcT̊q̚i㲻;֡ %loO|]z^%.OB5y֬ +-Y ]aoޘ ~!\0xp`,]va lni/ہ#bgG tdxO? 5YĄ0-9$`7PM )sBՙYq_[ ðmgPdL~JΚ˼Zh(t uBӺ\`I-%@1@F:⹠urİf%]T8Z&/@nmcDG@5X#H5͈f[??!;zE_hѢaFcf1OEG1e\a$1Ilq$!랡5g? +mib~p^8~K+5ljZgo,=˯ڣ΍9}@$D!*z#Nc*,rom)5m3wzK]Mm8 +}xqH=/ ϊ\y+XN- {d1wz{b rUM'?g?gT +endstream endobj 292 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*47Rp + +endstream endobj 290 0 obj <>>> endobj 411 0 obj <>/Filter /FlateDecode /Length 3624 >> +stream +x[k]UnB>frN==}6bLP-2C !`1" TT$BLhDGbbb"?ĄZ}:sgYw\{o=ynީpݻʻwM?%lfuo{b +y;D]itfdi)۝w*=MnE![ys+c?2W7^53Ykm]\,YTEI>B닩ȼ$fSFs,{T_3[ StTVdk|ԝzl^fJva‚D6N{:sNGɆM)"'*dV[Bdѵ0 [,i~9nnptӺn|wagB ɴ ro>y 9Ne<9,$мgpΈԶh8(4CzdUOe˞>GJg.z*E.W'\1]۪[B5j G`j}&&DLoB +߃o\|_,ʿPr~Ֆtg.ʃXH6=y'Hv'y%ljܣ7c3/Qmye||͝>}0G뼴> ѝ_P}KĿğ;{m_Je߰S88O'tݞhp A*ZdZd \-Bɷ:w+&J=~)9񻧉}>z[ǃĿ O_bcsQ(^'f ;4^dY_$`O^HR +ǟ#=K:񧈞@m}bJʲcf0D{mpϑt~;[ lԻĿy0cK$hn&ߓ-.]BßGIP:!>ʡl{ffg>^GƮe}ll +TqSH_F[i[Gɶl#,>HSWŵ^b!H). uF̈.[ljyQ t֔?OSp\Jvm69\O4sIe{*7Y8ӫkF{1w!~84ًdZ[L~!fGO&)9&Vg=U@"]W$:A>& atT)օr8P!T4hUT}=Pn#ħ4=Tf.$0sa|2 h.P x̋d,tetShk2=K_ĩN%!ʹj֙i-!뷉a &XT#d25 kۃи}L#\!WudJ*qc3pOQ+!+ 5 8@uӢM)dۭ4%WʰI*v͵k~s`ۼ9и7e#^[L. s pg|-jza ӹ &`qhZ~wS+6=ILj 7ڪ`,`/ *2!&ٔB٤bw<9)ץUKG܈.ҥsȧ`4/b3H2w֫=h6QKRlZfV8ϧerq鑏Kx}[郙#:$AkV /j5N54WB*U^ +F0C @ɇj.QuέFI8wlkrYL_d?@9ڎp`2RZN&. +@lnzYAn^#38l H=!N[5y6!ֳ:  񘀴%'(j/A+XWr3ٖ$HU JA6p@L. \RB%GPf 4T폥A$ʔ70Ӂ.Ma-E8ށjFjjYVrE菰,35 !j)}f;ɛ8DWQc*^f?߉mdђ4CWJ2oߗKǸYXĊ1| #^ N}\(2k7j!v `;#AUÀڔ`d 7'~(b04Xđh`0sK.K!ht>s H,e>#6DRف ERR +>H:wXQPXX6EỎcD=J4WA_w<Z~\:c#?N\BT,( +s= `- V*ā !žZH&Yh [?WuY"ϰ-I3al-4wbť*wc<+FiY5 Bn*ꆤYQ6e>GE|϶Wgcnl>?1/͔$$aʈs0~m3m{L|i""䪯 V9X@.js~ѫ^ :!r +ڲ*Rо6^f P_G9X_(4;*;CQT|Ec|Ɨkw0|Rv~ lV+fx6w0MіK^ A%>٪D a%iv+O~m +׮ŵ5vVb+Plע-CRTvcZr9zUzD%vLDnaII+h4cܲu-}bceFc*j*~s Ni5<[w +\V*~Q;΂B#nSBeNhQhǞ5$2w&9LWɚa\8~QF7{҄T`ixDfPKc[u}hvrMoAy +$ND3%!b/_KM7b k?Ct-N%3™aT" +R2_ȯ܉!Q +o)KoJ0is> +stream +x+*47Tp + +endstream endobj 286 0 obj <>>> endobj 412 0 obj <>/Filter /FlateDecode /Length 2083 >> +stream +xY_^fJtۛ⽻&ilbWi d![DCI"/"ڧiP"C/ "XB_3ݙs'8|3g9w썂3n %']x{+,ֺ/_/lR +6WqΕ.i˔-6wKW6յ 8s+ӾZ1wu<|avqYQk&Q˯.Wyi);W=όֵ/O.2idO?ٳkNղoǑb>?H#ݹwOH/eHN TkEl^1t`#x彍Ot3y>Hm{aWFeKQdߛI5=xFi\zq\l#ߕ!\?} 37pow=Tn(' ?I/M̠YDtQ:s]i5g5wI[|#n"3>u[8G+M/zI/ ` +@m!ǡG[C"\Hz{;_QB9`)E U9Id nCufɢ/ }{HP+^d홃䱳)rE[1ҡJqHtRqBDb c4Nt((O=ڃC9)fw~seXyP2Bq_C^:_Fzo {/G ȏnνJ'\hչP (wc< ꄂ氐Žώ}Ѵ%o}-GZ+ENeeGp9n5нO΁ݻp?nr +:r 71ƘoR1շ&MGqB)S&T/iMB$L+sI?_Ï?U97uhREt^B7 &iS5(\ha۸~3`,ϐk- @Q+os.L }xMZ]pX]/u' a0Q-r噄J Ԫ9\Ade6Bf7v7OjsЫ(P *@D= =u\[}CKC7u}ᅔ{f?e>m͡b(Ӫ<::I{o@ 8|JOz$H*:1Sv$|[X}H@-N?jqCJ-ˈ%FN R nByeƩIѓl > endobj 414 0 obj <> endobj 416 0 obj <> +stream +x]1n0^ Tl&E^@@eA~Yo7MÏR[?/봷֟ײvz1n6{3ȟ'ԮX>_{ s:78͏KxBnU' _#G q'd:OSsuhz*0> endobj 417 0 obj <> +stream +xy`T0~νwξϝΒY3KIB ," "Vu B[[k׶_kߗTSlKd;۷o&$4|AJMBѭeh ڀfè}& F݀H@#Ȃj k3>Ch ڌ~o#)zgQ51(%Cw_#CϠ_S.藸w;%-*t#݅7QNSbQ'fh%:`xMGqh嗐fB ԊXCM@_C_$C2Ǒi :؂TQ-ޅG/ۘóXBCEa>3gWrX^](9mh2{;z9t F߀5%v'zIfdWGʖ:Bעh/qM+t},zM*M2KeTM(P+VqMSZJGnQ{#0Ǖ/ #$CLv~K4wѧDSQOQ?>7яOS$vH}I"-++Z{#5#mI]2¥-O+\>\>-r* 79h +Z_6M9xt1-|Gf?o p-K=^+|?>| +?3w9eTڨ 4j&ZNmvPRPRR'7?~A*.D;=ŠlwOү?F=9 81gm{2jA~SHߖ~("ge2pat/peq񷨣>}H#*ā;^-V>MhXC-5|fggI~˜sQwU o~c/Wk G-/?wC+ 4 {]s~hj" *>a/DCQ V2G/RS{(>7+0R?AF`.Z_(H=ӛ1CKytAnCc,G/ϱ;?GejO-T ӨD_ ?IXNIާ^WGO$ߤtKN/qj1=j*B.J(ZDŽ'&H=\ְ M],^9R+4R.Ĭ5'm7c.n t{rXX@ Um>7~˪mp#*DQR5`@YPHI9m}@Aͷ/Y7}6םqKW>]LƉ铎듉^CkEW/-Y0^Ms7] Iۮjono3^#yw7{ã"hKDɫT^jy,^SV^ p|pr{{g @6Ꝺm.xW$GX}e5huՂZsya>$'&yza&s" $[ހz60tco>ŸŽl#i'Ix6?eIEʳCH"}Ah/뫩!t!9|"eS`ˇυ˺S>!] 3V^t Xw1&=;G{.^8{W']ӱc>l+]z{W׶cJžj8n.%I@ .&>?Hˆdr E{'Vn*\:;ؕ+WLOKÄ1k^o vz{{.*:eоxC}ꆗXZ)4HqD{=wϬ-}$}s{VFR +@\<. Set#M>چ!V$_:Tz +m;+#raI (`Dʇq^N"u'|vt?+_Nv#1= ^&łO0!f\Pj4>GlF6nP H}$Ɂ00a$9.v8BF$:0Bb2= =($uL8ūǎ*DwJzDCq\5If>mA*ۿAB1qЩ`M8}Zb@Bi IavwA*Cb~ro0At jnC&Zt Ock}Ef|z`c{'D^oV2ipmVC +?Pm>SÃ@ 4d^o%_(G/z=,YT byk+ZҖʰo32~'tfJ"4!cg 1Ay̏ ˇr)_U%!'T6"g$|f2hcC#mpãg^#tl5re='V;%E9^ C*ǐvj<_P 7_C䞭f=3ȃyOCbVOVcp٣* +Cн:U3I*X^<νN"Ut4~!9s0}sgk&=w^ǡ! + }>?WkŁěFxB}{AbܭJg pe븅[~_u|LˊSCFnBJn|7\K`!A1<g%5x9I4p f׿dRLHv6ʮuYNe>Inr\-WrSr$7 b"%@ʐ,hA9)t5>1$+ku)ϟ{{qG饨jog]!H cX )1k.+pWI`www#˖hhƷlq5]bW~l;ːB7˻`qj;uS{qf3I;}q0 ʰCu- j@=8q'Àȸ##'a6CC̆^ec$,z_g06Ha_q;P^.v_{;[~"t}hk,>[vCH1;'~P +EŢ-6TT'6$2gyAd5ծDkt9.-q][|],4!@.5}5ں6MyML>pEo XGB!p`u n?,諁"ʶMbuJM_\_iئwK Ú;q +x0bO]G Y2o"n{l $$$*Cţ\*VF$a>R|].|)2*u#;p`vVcPf6Hi+cajNbO>EYa!_P/ e3I&2uY[#=lwd\K:S:g\m 7ܶGn۱-x+? +bG<6# c}r2  + <8W%I`ڗvl:2fEAcȟ6͵n&Δ+f‚19#0{[(0 +,w+\f0>  oFh˥T*_(3!6c3q8T9=-~m`η "҂-h4X`s:0 5u0/G 2ƞ>ο! +=-6 +a(&cb1{b.bMeeY ӃzFRjd:dRhXcrS5G5fUJtsoʖkV֫&o@8 +4zWh_UF~@ YI|kOK {ɓ Yh Tҕ[T7xdgFQY÷ T!)({ٰ6QWl +DS{0gx֣:OI&t\pЅ]#˷*Ć9[l=KDFX5:NҰ ^IY"AL s`6c$O.2k yhۓtet,f H֔&]ۼ=|}͏ou}[))pǠuOY~Na?`Nv@9s̠ajBҵu'դd~::EVH *7Rt"E-ۭOn'q># dJju:s&`CdBPLɰSrNXWr{&,XĹp|^ԽbOtQ.dd_vzAkzW^lz + G a`ο}`X TOlPqp^30K,#ֿ+S)rw7+ފɂ A4^cz8, +sc1\6]߶[;P318?f5YoM,G>P2c9{wJyJmpEo3Ks_:UPT7PT +O4uZfhBυ^gdXE znKxU*$ҋYgr󞠛G:1ݞTSܝx@+Dꇲ(Y^JІ$E?@VtnΝr;M(!'P 3m%Csx̸uA>"zwt'] -=$Y%L1` j +By5jnWC_);}.a 2>ÑuGQ ,.Ek +'UZVԀT SuQxj DJ)ך?yhdLK؇(+[XW\]P/-՛ d"%R^XC,cn{RfKE唝вَ[po>(O  0G^h +?1.^6ZㄓN_08Ƀ;!A[RN/RftlumvG4)J\E +eDv%eE)~DVP+P8Gʂ5ߩ8xGS d{8ªD9jLYp`VUQ!ԐY4YE + +ck^#") '<"*ENҩ2NA\"&o< +^V6ʀ!=-kg9f_#ߩ*Kz^d2OjYscU\V\A b6vҨ9U3LhD\İR%pdTU +' \q*;DSpL=x-U#o( Jy4|ZvDTFG3;٤#"cCJܯ$;J#yYqåZ>TwمH JKO5kf__KB#X!dF[2̶ <^Eǜp)wE,U$WrERMbNX S#Fr"l#gj쯃RȀ j +UKF$yPdPU+MbFWGE a}?phzglGS}a`r+}!WIDYvyj**0D?v:ͷՒsMp:Twr+]X`Fw_ق͢ :<7$&^GH 0QKƄۛA jMހސ@Awn8eE:$2kDd᳢ !cD N2tXb@H.A l[9eܻ!Q Er@P{Fܱ~aqf#o*S"\m Ev[*Kg(%Sxie2Mnц/0._a3V~GB7?ؕ,W~0DMBj':]yծ㍮;L~aQ)L+7R,YJqLG &,˩Ȏ`c_k`!}`3Czld{>1>"f0FbA +\qV^g9@y;[FJ~OZޝNֱ^t~U]wvx?{uϯۋ_#DsrmNK) 5ٳcAR5%E}M"7OQ|4'|o* ((_Ƕ#J;Q, FzJXx*n.D,e˕%Z zbu&S񨬔a[DmZ*ze(- mJhKU["meԝOu~4* ;EWCKQ,- Xj؃}$(M)t^Ca15}(ˏ߹t၅_][juWHaɷ7X~-mK$So]m=xkc#FKJ-K,I{]rΚ;>>^Vֽ>|!u~M{HKOz,.ĬTj&'j''&"!#(#́s>N$BzY6C +6fPMT{r|Zc3Gs)_ѷGcb/d=D7 z4q+HGU5T ؼL)=8e0/y+亮^28*&&p pT=9ia$3M;<)O MaFኅ),u(q#QK +OMTSd0mt>j HQP[4B hր S=¨ܞqɉ0`mykp֬j½CtEu8GZ0ZC_7d&h0%_ i)0FR UǢVFs1y>^>G/lMQê)2}n9w{Tɹ;]M)<垼=ױ-GR8%>zMk(9eewO +'qaT:^kԙI*7U z(` NպVL SUyL${« IRR椹voZxZlZb!0M{kzkMp1VE/"W}t2LSVWJh3Q&mbXVYȰ-ӅR!J pO 0% IM)Jk5@mT[Vk4Yтw֤N%T( +&eTm*i%)D=?'5Dw=!D=so;IVoH˜jDf;+EbA>Zm2otJkzl$H.ZH W + W[pylZѡ!c)^g)iF9W]6rU5LNV4Bэ +[y>hܝ(ExT*@* % +BTRl<>, +U")ɐ!' HtZ G f:V"lvkW ȚK=+ohAʛͻY33b7ό`FCUAP)4%ӡQPUKRmȖ4Y5jfXTfANPƨfMۇ{NPKm ~vKJotN)`@nFe٥S<(WK݅»vROot K?AO#l +ܗǷk<|){,JZMŧ-ORu5oϫHNK +P(ZYY1iWЇ!S 2A +5p*-L9u~?Eplʿ>5D'u_C je3 gbm!3kN鯈dvwͯSPޅ 7˹}P8ٕ?>ܙ:\|bT.{wz ڪupED+#֋;ݝyH>oFdVD=$ٷv~@-{` +NABOQR! +?l ,*Bb*Z +R2-*^&jT1dL[Z)WkV-|۵ӦLZ}M+0&8_XzȼVUbj>%L<Կmړ?)$vSGhOr |'+L1]%9bBU7@O^q h!kKi`k hqI/4gAJG@Be?Q ˮDdAդEɋ $xME9r5h>К!4k^9DqG3j˞}b +~AĨ$@KPJWPWLT,OWPq3dԴ7z]C?~ NXk.2}[zC{F:MwoodApͰk#X#GdO-B$X8iA-QnE rAC%07{hD !EK" i!u2l'?{ +|VLa ()jiiPG BWQ:MH^>!퓞#H؜q|laqG7 dH89 C88{CČxQPL\ +U?rCطoڐ+Eu)ѝtu>W7?!9>lK ʬ5x7t.ef{̃M~sJl|N%dPsNCuUIiEYe\]~gRg1<t 䵳a:2V:h t +x) 9lJώ|F<{ +[= %\ZeR O۫_"cF<W?XcULM fVy^1''Wo1e޴njjL3y-sc=bbҠ-6/9/,9M?g%0k2~d0iD +G%NǪxk$g唡K>CAE5|3Q6I>I1Q9_~;:󌱟9ƳacByߥ/rĉ +:Et;SNT$RyufLa4"lmJ;#ӋZntPP[b ܞa1pN!ƆXBzUs U +,0z%@V42 G%IuЮy<{6-^16ZM7kWo7-w<nxyNSהc}ܻ`)^G4Lg^H54Ύ:CaY;|`desIJ޲0m8 }CxH=0&@gPO +ÂH,^N!M G ۋ e/ܕ܍k9P)Uj(Z`F6ʵ)3rSmT`NQs Xܻ%msEvZb ,̇" +SfSO+H.n]Ud\X ݉Cub7P_)TUoFT1_dIٶ`As 坼)E}1[o) A.Ph̸s"ql75hxS~ŨoSfy3c[vww&頝Mɵ2e$Hx&\Bc +{q/O3) mw!t\dSKde2ⳅ +!:Go \`\ zD*C:0kMBiVPDՍFk`&FQ5(!P](c(|{ +o?ظ#`D.>? .X/Iĕ;KQGuV*gGUDbaW8BUt[eY(Q܋ޘ9ㆍoΛd.oByKrm;':'noҶH7yγXDwKݾrg&>glZxȼ:=WsSՍ+_06ֲ3<ޢK, +% ux0K6'TFzbgmxbMayZB!aLqd4յ'ENHXL^EqTIS" 2D\iS9#^g2zm2;jIl~\+/u šCcxz5au+3wLY@9gw P~L@|͂+~:2`Ց yئ.$!%cFSo*ӗ4hhpg'"d\/Vey׍VJ/4pmWT`nrmݶ=5N~<) Yrυ<6[?vag\kħ;jS||+JGd\z|7;"R:LtTRbA*A!l1oҘ7C>Fw=-ho^$vP"j:<>s<5ZGu zOpZGpccSe6=ԌFK.<S+T=F_gZ4"d}mחXav]pVAm*jD=Rn􌬸[~Q6/稁uyݚƦh&Fg.4Ds[.4D5M#&hY貮9.KEpTz4jGi1CFб9ΰ&H/-qDq=4/J/"˧5괆C&YAV{D?& t"? L a0/yJ3Z̏α2Nr$a0&\38db"L:ۉZQU ſ WBlQf`d 1f‘>~v68d:zNލ"bd'h"*؊*?*Y٘sQ=;>9<2<};5Xl _ڬϕ'drHINBb`[$ʎ9CULGݣp vGٖ\:{:c]vw[g4\S`kgGX3 zKb(Xe(ĄC)w<ч{5o(=l^b7ڼJ]Qaa0'8,9VFUUjQ"Szn3MY2x"f{iZ |n4o@|2 &AQ)v=+0ZqNPdE9o,nJ1`VЌA`~z +A[ X<܍Ϟ˂=b GU*%!#c#nE-)h7jAy<7CY/Bk +y&Iݙ 6N&%ׂ}E AW7$pbz*ӂƞͳg2^cYߦf1y//yG=69|Hd 7bS Mԭ_FDm3g{=N//X-*H#/'f%JgEf:Q'jujZHf۹h8llZLMM-h"M0MRM8D2: TvKS$#vħ/.JEܱp#n$I+ 7MWb%r |M/|kR A /NpXW5q*XSI&Q쳢&$kt%3 &ϟal'/mC ,X^*V7fHȯ.LXG@WЉ~Tik:qiщ|2Ce_lEu"00~֫,ǒNxӒMk +Ri/d|BTt>G*&ջuZ\7/q,iҘon +i%\{S[qlckZRfO4Gʤj#Nmltesj,P v|8X+{|_}^^7D6z7ǿXuxqdZ7YZ/r=]I>0“Nqy'$r*`k|I֨cNқ5&-'g/ncA7HhFeUN)h~ gM:mx13Y>8~|aQTAHAFEÔ`vQ2)!,n' 0. $O?4HYŬ",`i+Gd9љQ聃w}CΟxOKzpW,-gJ9W)M rncկi$soX3[\YRqhN_@4k3Z-8iYkJ!ӁNĩF}'AZrURWؑ%? +w!t2/#t7/4dedON$tX$@`H<%;&xӝ;N{auS;G\ ƑC[P~F$嗹kUQ.F(ū;X\ɪA4DU~T%m{Yuo)=LgzŚTʞs׶\[rfڵ?sS*X\<Ӱ^erzd|wٟ?K|`mxA)uJ]ckJQ[ / =~1q(9V=/V +Zqȿ돾%HIZ ^!7&yy!/FރSwetߞךbT9;rV/ +zY4.WGG㥘ZFhT/EFشwY_oKX} %:GkIF}Wg %6')2n]g ? +@wF{o)Bl'H G;*ǑjGGcJ\]XK(΂Ҳ%݁Ynq~1j6_a\lOhmB%w2h^PO^^SZYҚ\\-HsX̭ǚd}B/DGB[ŀH} 7*,VİZ---3H'gfM!ӈմFu[ Mӈ^+^ur!bCHjI #[A2;# +V$Y=j$`ҺNf蒕DjGGe+BE-Րb#W<6/0=wOjm\]*fm^KJ!6z #v;933_*G;摍< ;ޫ&֎ &{rT6Z[N7yeiIiܒI"ld°S?c^ 1mnhE:-"1%i1:ځǠGqDKd'Jr%r=ϱ/[Ύ2JXol D=FI'4LQT#V| K}fq S1'J"-QAgI4}=2%0tU)YQ(:UVWl/ͷ#Qngo`hh|SbB!;!ԕMQZ'97/P:^EyU}lҝj€,y6:uw@萣XN%ƕ[&(.K)}q:NbX9#E3BƆ6=jG!"1~K 1]2hod BE1u5H/ULB_i!4¢&6::b RYE ;e~q#F1!dЩwAagr$cZȀ<;i@,5"LV2[Nj%ST4@[3IϷRѩtPdoKh]SKR>]4K{͌7>\s8f?YoKNlMQ"DGN6[%}w%,u}DO+MM9sH>ĩl5V`)yv^H\pgv+pcE%rOu~W5ҢYL:9B__,Fnݚ[d3dB1 ff:>'݈L3G#>sXX-L>ͲT/3dT/ByV"hy`ǰ éx54*ydt'L_ѸûKy7{Ң7Ύ'*Q ṮtIگt~Ɋe@ʚ I ȣ)BtԀP8KBGfOϜm7j,HvvT f'\fSj5JLc\1׌]mvYwKώ-`\ҳYkhyAtM=\Ddk`ۇm!꽟yuK.9 3T:h`ZQj3z hI& "ܧ ;'T +1K?:”sa|\y*Ct9x$BR{јB?N7i=<ޭYY]]_UË+L5S|\k涹K&^ץ+(W}|c{UBh}>=RǞ?8v뗘\J*J*J*ҧ_TRI%TRI%TRI%T"yslJޡ\^ X#sâSA7̄6Xs`>T Y(A@b `D< #@kYX}0߳ pCD! lO"2p<7>ɮ~>Or: j06sV]!]wݗXz%}h:p|':MOgW1^b ~g`;g)vf=?'m׽K^f#܈ϿJaq\JTulymTß]}/w\Qq9@?צ 7W={|_ +*TPB +*TPB +*TP⋀ΚONx%xWpqRvMr@db{U +endstream endobj 284 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*47Pp + +endstream endobj 282 0 obj <>>> endobj 418 0 obj <>/Filter /FlateDecode /Length 20286 >> +stream +x[}&s2N$KdYcu4 ےPf@ͱGtMRLo- +.y0!:5:}i^ +>&6@Ji^?k}fNQ_:~].<|to;߻֩ ~_]Uc6/_}"ބrڗ.{i7]*ofvp3 -io'ջ 6.`)J!4l{BI8Է~x3S?~0oj)c^}7?d??~/j~\zw_p[?oo??ǟ/=e~:.Iګ_/TnxL_y勸\Ɣ[ɗm[qL79]q2R>qjK] "ݸ(fS!#߸~ƫ;~R˫Z}Aqr:,^\#"GZlm.lWy-{%[VKaW%Q~:,Fsjs/.k-_v"%wUQ\z|g]u_~m5>~jt6fݥx ⵷~"*_[y&=+rFƷEXW/RksΑ#:,Sy䃜0]>stf9ikn6B%Wa^ާ }PϿ?>;lxg޼_>z3[5L~Oߟy~PkΖ#<4D-wV GD +? dQqJˍwwCZ޺^zu1-)`lW7%iQGb#<;a޺W:/E:K OIu'PC՟?=:<_h2'ſHe(zb`-+z]̾Qt#m2,uy`H}?Iu-xlh߾7?W?_ouWcS}~'MOb)1G_Ѿ!')$RTysS, JY7#Vʠzޜ.J[I"W\rm2 )  +KL؋OM;N#Y4X5oy"?ǐoٟ??ѽOMs;1?nb+~]5c:gewO9zk@iZo +NKIαS;AmK3+*+n{EOJW_Z]Z&<μc:{(SW&Q}¶\1Sٕn֘[!3o+[Κu7MFEK1{YE.4˴2hѪÞ6mei]W=.ݰK`-E MDzku? 5/){JN;iQb-v_cJz]jɴ. -+Y,e<$>i(ڤ5i}\]>[ﺞ"mbIq-3Ҵ -,2i>OƇZ~p/wD,#x_IGk5;ae܏JXu ++\XϡW8F^Kc轖0}_Gf.ґS{_-g +Y`"!V:]|μ~K㰇"&H FO;Q/iDRO/B:l(+yek1!\[#lJ ʦd:x?P4$9r>i9R #9Z:9 g3Zx?-4Y9wOyKַr-/uzΑQY߬@ַG9p.O+!?nZZ!|;n2wqWp;}Cuw'V}O;cNG3KQe;z>V8Vw\O=kS}I{yqToa@uwzFLk9k'SKE_%fɞ/M[EAN_|}-ZƀtAhf5k[_mq%v\=-xe_cХT#>e!5Tv$F2\7WGW"ʓTvVݛȠf᪘wYsmN)[ڨR+ZMGG]5( Zu +6бHP߭#pG3l:LV LJo`[5 wi >yEtwDnՋJhNDqhlp$[.Ӹ }2u9>~aLh>޽>R/Ќ)H҉\VIg-~emE*kS+F_2tl4Նf X)TԳbƲ 4 de1ީb²°w`kNYuڥ,/6tک6hZ(=4v#AsH=nf)E ֐6UMESco`-)imq J[QItși72 s1I'K3^!"sJ( /=:4I$% K=J{+?#RU$L+\6Iۋ +o(ǡUN-0 Wwdy Y {q#A܊@.geob[ |*d淒XKIZ؅^0.Ps n%{4'ã3q4 PmɬXiE; Ac/@G(;׭DZY͞pqȁJ=1ǦI]^9NiaYV}*0Z`4nhB8l޹ u9nUfܒ@w[^EYG4ɀ\XcZpzk+Nݚ8Rb +Ò]ZrХa أHL2L%6I8#Wd,(m2D*+f MnH*mb<1y!1l T!zzU5N U9JSn= V2+WLu h@N8뽃PXʸbHWt vLG _[v0L"3](n7_\ ^(PN@Bᑕt3 +@Gݗܙbf[, ž;{ Q#"t"Rdb.P6=Zl nI4z4 +f:z8@9y T0ʑ|WG/$[\ +pIŽ6 ` fAmS+&$X,]G{0F!S+,K+$2PV LJt6a3]_GŬBf#&h0}bhM>PFiղ`*zF!T,dOVӸViH4 )7ܧ pFP>RΨGz)jiˮ]`yap)i2D Ub#0n|Qp8-vNyZD`qM%CdyU9\t+, Z,'.T2bqGlb8,fB==cNQVvez~W.#r Xk¢+>3(t: +խB{}{Um +A\4#]1ݭA|m7z +;pŽZ^w$ Z͂~'WIGߩx(@s?"`a{x7ڪ #tbǭ$hA20g-|>p'"Ay54ROрvW=b@rَ]-W%:G;D3j u%Jn`cD@Sujm1Nspi[wU@v) wLr5SȑnGS,V̺JA4-*OJި) ͑ʶ@5F(*γy9%oT5;4A.;(ټWi92$S(v Avf V:Q^Z`!m`P^/!W.zš 8#8Ds$2HA«B즆u Yv`a*vlThjD N:#8tn;T^~w[`p47Mbwʥ.rhRjeusY͔Y[f$hJsK Uw^hS \JU$h"Y`(atX]B3^Oؔ4fvz-H&s]%!3B]M&Q@vjU$L[M4@0Z., d{~?Frt.8m;+  +@"A;wBN8ݜeSDͦf_bhb3v(醙{p3\p3*d߁=8B,)2sg] ^SyׯTܹhPOV^#/*K L<.<%LeOrGlKK'HXfE9܁U }Iy}PX`XH:ceAQ^ +6͇كeڋƹUizV=@",̐˜7v$ʘ{9u'krY%1 &X:|%”TrGb(WCQGUuC H @Vm66\v43 )02IS"INNfIŊI+h<ѪF diGLM)PQQI䳢vrwRd^Re4[S+٭:NavYK!C8 Cg (}{7{Lw@F/4!y:̉$|:#4*".Kѭ2kVķH;:]fQ:п[9g\ drqU&25H\=:RGz$*TSGߕ/P+k1]f)#&t)OՁ9Pdrhm3q{h\{ %UvqGNt@vB>^@X +ve +u2o?a}oe1#|K >FD%rV(*+2P6 p>V]^=թ"BǤcfihi( @[ +u@V GfQtW6x= ,#W`{=}r;xQU: KyZ, dr(+ilo8J/4+ ,4ˣ:U(le8 +R( ++@gRΨGzłr(lK3S7ޫ\B!PGSiۓdcs3xg3Y'- +{U@Pr(lZ4uv% +LZxW@V + +2C +o bH>0(C 𻢮#U?hPT7ʆͱJM{p"jP ] Ѫ{픀ĠBEP7UMs7Y[2DFZ&kSu]hUg:Ea[>mYϘf6gשXl'VY j0֊S{ȤQ5MBN3\"@f<ٌόJ&w3[&%-\ޭi;:-'YˠVKF5%BPGh\drx6l3հS*xf }Y'P/KEVg `WF+])`S?".dqZ9emf8u#ʰ#]Q-sB -˽ +~JtaG {CZ,]K)E y7=ZwId]? tOA՗'5L[,s r!9+I֐Yy(uL2AXٰGhtHbʄ42g'42%%&/sr hl$.XlrT]^`† :Nd:Cy>ͭ` = =sN +yFi3۝+v'8 ߴ# dXƐ:fIC3C!rFf@VꏩG?њ 9[=iwS <&Zdr LHsΩԉK 2U?i7I^ֱU/~lnh\ bp;!9"9)}*eVDмG/sDo8w'Їs_<}a@F!͝xk-Z r/Cͷ[}V3+gZ' Ifc{I$;UyIv2i[?-8hvj+gӗSN)MZemE)(=42{!8-٩Kd4ѳ!A-/p95,Dt%Ϊd3 Nasv PƞKeRG3mW3d%GW*y9Zv:>޾gfiKv:Ougl;573NU*y٭A/v:o*; We+*MB,Kq闄1<Ӹ:F̮X323?ipng/Lt:߳S{KbjFحUG=@vDoHr w +]cI4󎝎uj3ZWG=Mޠ[6qjD$iy2j<ƴ <CCKJlA%mKmd}l$_J<A/'cz4">D(Ecք^ _>aA4ۀtw.RЬ7 $\v4 [@dU'4hjC?cz#K# ( Ca1 +w>H`,bՍ$!:aGEOۈi dNQgI󨖼UtU/C{#ۛ^ani( RIb2GŲ=vz8߃LM$$՘{0[tAY[˭A̲hiTPgBO:'vJ]݂wEe('9IU?{֠ĔlƓ&(Qihҹ(HZڊ&HMG)Ѫ ln dK3Ȉs1NcAυg HP݂B ^!r87`z~1o +YOƝdjV5+Rz5xjw^& WBݾϕ:4fAq4!RUw_C3|]f%G(_3Q=C޿piyhzyձTmUA:Qsj̍CV rFH(?ِNh4s4t(m_@,(epVLehRVNĂ}v&t?]pAWe]bK7 I'W`I.؈lij\eg}ǭ>qYEN>}on_rctA:ӘJߠa;:4y>f!r'eߡ,w`k GWuEնO};Rmp.`'ۆ}itf߸۷۰3ۗ#鲔rSqmVM%Ljf-ngXJrm]5bAJ+w:V.wʁhuD2D}̤[}kꑴ`O = '[? .C財@V+5,/t5jdoĂNޓ0ae "uŷ/N{~m__qG1F-X 丨bSI\bf!EM:,3Švqѣ&ԎX,Lr\y%q8E).Uu)qQqQ#E(E Ab$yEuvhp衎b;=k4HqQw%.UT8.;qт3,Dbg\Ӆa:vT"q?Y9.ڸS-<7&)8H⢅g3ڏ2d[:bqQ+qQA0I(.|EgFEAֳE T,S\4ธ-dC +M{ +*~VP&ӥ ÖhTw*N(+H}LƩш}j1}huKVjًɿwsH8Ǥ9c5@v=Ӂ%b(mmxG|R0cH`NNp(6&^"0ӏ]T2ЄcPy/1zxG- /ݖa"P^` T͛\Ѝ nВ|ܒɠb;WAD逈$UU   l.0+%H;d-l֨OӸ!#-]+әG Kz$cIbc=L\69ۊ^:b'رLu?41z|(QՌ&A0=,BIgCKٔ-)5 QQ]3_s5SE,)Ѳ +$s{))/w-yG +2'E6_y@;HmƩK +)1A'tEf(TK>0s^>A۠i¥[ď'b)eD|UR|K/ꡛ@? @s_%&&;SPt{) w <!pAu<(u 2JqHB֍y:;|?¿snoqO?S$H䄝:ѯVz#P`m @6So3=o;o[m#^~orxcLd/|uW=oafgz߹hCY-sWx,fEXp LK mzdH+? %]1Sv+S +GQʈ[E_: A3`4ZYBN(S:bNN`r$i3Ί HңhFZY3E*nhG +W=^]}<@j0ŀHҽ6^ZNX`~`JkU +A̧0{&z}u=-dۥF՘*`NjxER 5]BZ+T?A2Y~TK :w&w[>i]\.4h$Jbdbn[|n`mmoP6/MdRqO9z;4=UݵؿM:T!]Ω2[[PD2"$9<(RU-྽;'*-wyE<7 y@rVHߺJv52UUZhW#=bֵfECVH&I.]ݎ@DTJw_R}>XY@P8z)D + ;A<xR2^ru4,;#i :t**; 5Q7HM +rz 5ahe@!z$עG +WUgU { eN+{h +dvH[֮GpJT&f)DV|A/4 V豢`,e@\ˬv~/_.--%-XVQŐU9(둽i"A A+M3`WT*9mjIPF#TQ[6 +d7Y1WBt֠=*rB)jv|g j 3^5  + ]+P0_＀ ~Z@-Wv_Ѳ@˅K8a2ȉ` 1Yq X1OիD7%BO @{ @uiER Q.7Aɫ* -8|GүjLg7tl'+QZWovK znx@YYASU +A\z./y^ZhuѾ-#Ѝ!CRXm8G  f>RAp #w DK9TIv8AS͘x&m6q&lDQS%k -DyF,/ȃAo؈n2;ٕP 7 TBN/9aa++ttvBaŲ,OL$wllwېv(@WU.ջwRT@GPϊ@dAba+41fD)$3ѹN(Xvr1|Z@]'jFW=-z ^(KzZFk4:clp/իƱEa#m.CK/wU!0 ӝ ++ɴ[1IAp_PM:sɣ`I ì$AjLtb,8Ifh7!\"LPȚ{YRbx-H7gȜpf'LlqW覎vhG*j@͉D''ؽII&y42y1oIO2 ]1 k1 UU 甃t߻;ܲVWQq gN"I7PR!tUG:UP+ +{>.:0ﴃY&F6=&̷& fpPjel;lp1ggMi6 +oq`8k ]W7zG jsI@6O ̭UEhK:!Yc+hfeK^ѹ/)`OLJDָ +)}gv|FȨB(lJb<6xR(k6 +lY,ŷ}#_Gzpy +):q +3ENWK cqA`hS8!La8pH^SpBAt9My8QrpL(NDŽRn f*':rGNhG1 +9#b|'Ddy[F#UZBr28t ^&wl=|Wc032UIt#VIP{fw%(&,m,*[n=rB/][tcGjdǽk0Kށ>|oC' '˞J> zAqSÞJ2D+nOtJħ_bOԞJ?쉡WUaO2 'jJ$k*':ZBѥÞ?B,@'DbݞPR$[BǡJCxA+v(+Kk^iilJl1l҅'}hH7b5&0 z|$2^!|CL̨UTk[Z&I}p ]HS]du>M+Crhzbg[jeڦsC>5E mҸ  WXD<uO~LtkzU;5R e#dh(EN{5">u>7mi[Cqq-]Cݷ'XĵrsO󤌦 *T5dζ3 vp`+v.[Z\Np +HxAySXAAeBɣCU-@Y|s&ZT1|#hhkk=<%9JWϗlϗ3;І;Hʐ/Oڕ SIǦil:%`$SANt`c$;ZX-, s_NǑ`cd| I[Ke +l&F "7.DTz@UT~cuKɛavAE)$9)q'xw{d1΁n@DѸѪv2P6''jR5s;*bWX>phOJ.GiYɇR6\Dd4@4nB,V"l1`+Gk' yȇ+rge( n53bjpm1sfz8TEэt  !Cs oK/4&s;;V9P2O2@(ǪcM 6Ǫc,d 3̘Bt>F9&. >VTAk8WēD؎9Dpj;t#э*bShZA^>U^'@j]vZGŗ!ԫ_9K\r^fY׫.~ݪSnoBXMn֌ٿTkoHwk܄f߾fǯěs9~{z^YV_{[j{ނ^D??C_>_;Iڊ,)4 VJ1&d$tHk].;9_˼ ?4W^M|"1{/`Z$}l^FS Z>6P)KQcdrWO?TZ>6L}-0#|_!g KOH^srɝ_n7Dg/˿Ͽy#Ϻ'|/??}]"<\9"<RL?tDC𯀰cVv! ;)6,[{p4dʰ[VeX"I һ-.?s_rU+, 2Ќ[aF,Õ~7e "g~^)(*l߱ښʫT޶,8Ӟ_|\JG]_oјo8 >N"uOfIZf럟ȧ/a/i/Z> MN> endobj 280 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Tp + +endstream endobj 278 0 obj <>>> endobj 420 0 obj <>/Filter /FlateDecode /Length 18556 >> +stream +xMّfC^,x'w]j?_Ͽ;;'no5t(`շxڇX!^?ͫ|B{ =bn0V̧>$j |)|ޮ^GWڋ$ vvAvb@pnѣF/G.C%%{[NyS29cr/C?}.&]a}~k'4ͧa)v۷O;9S~CߵU.L@y +P~1p'М 绷Ay c`d'f by0t.Пo~n:1$nJj)_tD7F|>'nt.a~^)wJ HN)xX8D2(h`=y8 }^J +J+c +!.0b5|dk+ɥc>TiPOy5-sYcE<\<O|kN*VkY0vB18WUoAo{ F;?1&oBg'ߴ_Gw~/U nGn'qtvX ᶆpOϾ#!U߽PFT9)s-'X퓑XWnhѻp%ʰ_o~[3rNr> Ǜkkk(56T~ JË _.]({;Ȩ'C )$3k0vm3/?/  տ_oJU ? b7oa ^7O:2w{auc䝲1xmK{Dqd}0|ְc[;ƪ3| ,+9|fmn },%Y~X~85ilsCuTי 1d4͝1o{#7ǟРH62r]|<,X/x^/`ox˱cm+kbKIGzr[y8ґ .iy,R +Ə;C-6+,э)SsZ=2;K}#Q< >a_}Ri=|mY2h?4B'ԽܶP;2i}VȘSdԢĵnH7Yq:qBV3VX4Z4_XYP#{P~o%6M,"|R{;RĘJ;gbI$ZVP鍤ҫy[woCm"S-NY4Z 25^oj)pQZ "k#nV,{$EZF~X;r5GiS8#-vxjniY#%ݶH + e.)=dpIq@V fEF4rs l^T52j+vYʍ1;G{x$7^`?)~~68hv$ +qh#=e'#IKՊ̏XԖH~΍Ԕl,GwɈi\JiSo c#`e?< y5d&ʱǧ6,)x ~mV= WA.D+VZP]*wWGZ}Ti:Rura^Iz!r [g5tZ^8}]@#G A֗u ,)BF7ƗGMP{6TuFyv]܊۠ +u_tf[xm ݶwFư7F.Hp +jfm1eЌLU?8f:r,=d:'1 %Z2DC&w0__;rC^k!}=NzY|9 O:} NoA~ +~n +o?5sL!vRf)qXy DSA# $ +oT|4K1=3b:L|wټ$%^ -GdX;sZ$A| tQ+g"{G%6G/~W~z'v#+L7_[8-zmVWO ./Aȣl c/N^zg }AS͗Ol .N +*}c'i=}E y؇|ŧ!E i9(zXTXU)=P4{fOoz>d殧hv=A۬8S-уshJg08k`9|-Pi;N|x֖.i©@{%3U#|܍pp\B 1z~JkѤBq.7Ff|if?G"7NyȺ ĺ +颓4Y79^w8`^T cb5\s[Lؤ +<хoҹ^i.'⪲u2N,'8!|Eo\u0a2:&TF=9e]1}jI4"v GQs +1ćsÇ'|ǘ@D= |dWrFs,}r:Z$O^6g%G؅Jxu%oz.xҵsB[OBeH؅Vҏ&f:%M{e_g=h%Η7.C+cw wDZ|Rۻ>m7p><{ 7G%}N+(ZsZ)tkv_Z+Ήw NQ>Jh'ln3Oz%p&+ +/:/:Hw㻡;wCx߽v7t~$xޑ~gD|"3-I5oNuXg Zb 18$w+?zw,stO38!VCt@:ğJtЛtR!'{g~||k';(ޡ߻p_*p~+O/ؗ' ]|:JtC1/}oq[|q7i= }Y58O,ܡvA5н'vBi:.ؗ68Kge2!Cտ{D7c.& +w>`tsG\S?ORz'݆6(ǝrg{g/Գ\xiZ7z k3&gv7m?;ӐĕnR㻴͜aN+=pN;Mq_^7'_MۿyVtȋ@r7^,umݝfQE}·Rr/9]Zn{Og[?7NB_N|Vrv8벂oh|wXI 4wsGyJGN]ko%?mڳc?5N.W0HX.񐛭sidۯ<"W}WBѕB ל[yN9[3_~O~os$Fp#>g7[^+~?)Fqxzug>0op Wҟce_J#v4vP e |+OOF7/Wc_N:a5}*\ϫ` =!4hʙjo?rX n/Nzh#yG|@^F:TP9O*Y=z^?ŝΘĠ!8k _scݏx!`VYM  øSB^eƃAlJPSڬOF cq|jl؍t1d@V Grpup^[8ĀcU%X˰JŤnhX˱N=V!r蕲wGCR79Lzj:բu@V G\ZlgAp3q\fxޭ!SbCܢWA۫P0Ul ʺbٝ },CX2eq ("5¾JMwb&""#z*^ZȵfyGylؙ\TdU4^!dLhb?`֐QexQE%}>ZI3)V*6LqEsϖ4܅MHnjk>5 J6W8G\IӂThE{-AكW7#q@) ``Lè +-ZBB%Mj=鈁1Ŕ,c[| ,oD)040A<gXeacY`Lљ\-vCZ[LeS%l- )V|C~BX`\-\@" erdMН!99Y|9laĜQ^;j)zjК!=H`Sٔbbr@-#ʂTТzha B6ʑ-0މXW6u[]I|W5vWP,jQ+$iԃ`byY@".mc X2 LF|jYlH7) +HMKTsESzMrUt6neװiBH '^+Zz/@*Zx: $\`Ybs@m~,eہՠoզKۤ޽kaۻ[ts S5@FQ`jzh>l=)#iΆ콥3MwS ?r(\T<ղuUp.={P&U俭LkY+0͞JjԖn͢G5|eh;4M2k# _tlĄPvib(;ؤdjTbf&%hTEW%={{R&GPIؚbf2f(g'P0&PSk0] ccYJޜD2L2 +vE P(+#[Z ̠9mWj2xڭ!6f_l/,vMWYMT[)} G`,H rdbyF`?6%\Y;@DVb)"j v3e\;(kػ7#gÈOŶm: +#Ylqw${GNݳQ~.pP/tXB{ vnm-kEpBe[LzBR٘$'Rapx @~Dur-'Q'̄ ϔc%ss[*.Ι˰_@,w.SBd&%GAYLT[L|l$ +)@X@"сF Vz5 T4Z*WPz,aRZ0 6)Btt@VmysgG5k+3 +XJk`Cۮ&aw|haax8Q[RĢ2@yp?Z="V&GX\ Q?-lPQX2"0c<űN 4]oLXlr)˯80+c#F-@*'\r6l,&/i2g؋1k. ǭb>QU48IANS@ -@l-][0.^բWɇ 1@ak=< +RYO5iV-P>ʑUc=,X{okawlW0@Ojʧ^ f5Y&dz=5jH7) +8-Cmv"^+jPRjvA Laizmu.,jkP'\ϧZ D A79Nw㱴Mw`j ^YO-p&5uAf e h&Ŷ#gl7Z;[4&*+#R{N+sɼّgfC'|xqp|9 m&Z؁+rƊ+NZ-ʑlqc3S#@ 2,e*oHJ4<@ +vT.0"UH%ݶ +K:S+SS#.paQ."Aa\Hvr +O=s=ǔ VQ̒ XbB#׈OÌ1U|tz˻\ԴZ6mvYS֦Z6Ŋ^pd`e,A:aBK +fʠrI)6;'wJE,G'^XdYr@#ԼꠂNszNr#fuNZݡϩ,T.<'bޠZt}Iuwl*ݝ^E˘Evݔ`2=n1 +X7@J`J@(0ALX,Cj$T@.74587W=l=aL'$VC _4ZCXOm2,_W-'lY$lM&~S4n:^TU=HS$GjvNOBAU`edT4^"֧~=O=- -8Jq/iK{^i`,<&ܙe.SȢ6e3m~oBE^ۺp*"ђ9p=!eo&p%d/PT䗴+OѤ +XKPxmtjUtJ%ŔOAU$ 7jwRBif[@{ V,4SbjARqx;c+Xly($]mp )Xpy,,C%PbI`݉`) < [$GG;8Bt x tk: Bh6JMjSO'!zl-B3MB:XeSuE/|00'\S3nzMjU0"+#;t*X=5) +[QXCAk(el)(tg^[.\iοc8 +huv}8 Tgܢwmr^#IYSN9j28adpXn-1 "SjrPt~-L32^hXd2\hx.E.U$daA/m;81<]J2رݺ3FlNlǤ-]6$C`ys%A1 j?#U1 f}Th4dm_1P,ܷ*c Ugܢ:L5KTI +ԨP>Ԩʂ(LG&XM*yz،: aYޱS)Rj!;c,C z6ИZUV(G hl65z[CEKĆE0f(5)B\Zdw3qBhΌtd@ ll"Zb+]g`e(RP-}5_̇XbZ{y]@@-F9`#gܢYlv)l5Brr|r ɭKİvJf a7WճPH0($Wq9(\0b-B d2yVeVU@mkE5̜,hxŒ]Bh*.0*UôXi=0dk@N* +Fk?ÔΙDs5(S-:Sa@G3 +8X JxJc>DV(G aYn`pM +8`erM$ +Aq0ig>32s@6))C_yZ:g`e(FŰQμ&G a)(D |R,P,a%G9 (O|,O # d 90KѺBXI]& 2I"ZdHJV#]ʴ"̋1rEh\(f!uSF3<$dL6e\*%16kzBJ}F$!I*]3!DWCt~k1U[CW>JZ[^Sa>DV(GM}RH]kAӴ cӛ$e/e,CS9[ h0(&Ӷ&z n*/67G`yDz-@T0ԧV49T0a@V{K~BISCLb @(s4.lBiFuAAm0Hm0@fdIQ«ml1EϤ˜1EZ\ْ2V*p`RBMykQ) (XPV-NL&FވEidBLªn_SJ@4t=ES`M: YE0->SY׽3Gx3׆7}5HtYGԙ& +t MnؘZ 6V +ެEVoS/+P*6u< ٖvfɱX-ǴT 9moqBXTܢvsȉ><&$(v@+f M ,O&׎~bubH[2Y"UtB\?Wh'* Lq|4A ږI;-I;c nEJ`SBVtZec-'4SNwlJX$*^H5NA"G5$`vFF7R-k0~hbyp9E*J1(dlXa>DV(GEb+ `X zSb\P>Ţ(y"iwjz´5(ػCֵ*&hrvz=F&G4ߌX{Dyoqeh ;b<߭w4p+^1FnP~t5 id|PmGɞf=\Ɍ{9f +%ˀ$I۹-( P5V" sZO779U)x"`=wش2WW*S`<YiUOrMiYwXQ;>prLj\V.($:DL s<7a+)@!j/%> #˨b$4M5섺6B>bɒTcKfcD-Qzz>KI9Xx(=>M *p/ +wlԦ u.Nk,,&ęW戀380]PzBe f\wS'=)#nd>7=l$ե+/nc-Z4ikn2tbJEgR0f$e,y56֛qdl[T͘(WND- q ^rz5{u]\z"ͰLj&|ynnE˖hS97&Ivq[9T'U696a LpiS2$޴24"9`憜&1כRlb} 9]ԣ62 \?fяV thWGqY堐1Ps)a[4572Wi5I57oEy&C @y~';39HE$.Ȇ.jrsV8' +YSťf.Ij&g"F:nĤE\`fd`Xn;ZP7fJ2Q!֤< +۳jF& pb^W&L kDAJx'P@E,'riҬ}`2n^6ޝh]{# +[Nk*"b Au65M@gdQb}ebǧC$6ɑsR>9đ' x YH҈h%-Jy[VP"=eZ5OG4壊>aNLc=x|3۔S98.2"'Xvy;(M2Z7CpTku%Y9E.S4)z+9- jU%;0ZaA";gu6u `Z(\W<פ=^xJ7@rSuIYF"þ)=uh&;d6%80d*ԋl +`6D"K&L`.;s2i>fٷ( c'eL1gU;`̈'jºwRb %q$2e nl+hc+gHr^RBRT3T+%-.k˒cLٖ\H92?d HL&B|l}H!d@m&M,p? +߼r_W]G7Ǣκ,v +Qׅ_2 +/9i&TʫH|ۙcL2JS˃K+]7ztr,`9(%d.u=sZp1 ,l7WZ.iS9;򤮂ms7 {=pJ #=`cgU*X.ahKrV"ęGdX8GâN"}+O6*md@"XS#6CwHy`Ra;IT޼ +og@8k?UK_ixWa%^7h0ͽDPy]R>Vwk651\}c|CW8}\A#PfY!1.(A_; t2ͻl䯜Xl=4_Eqj_ Q嫐D}%=,_w&4{)%<FqAuS?֚ǦFKوd) E*Xs8-*K=p}|.n'Ҍ!qݚHxV9r+]HH}/e2]=7 *l# {f\x1謐/A88bf`d,M g6Ǭ1A2y3{^&>4JUFڣ`:Rc&4vYM閪J*QV M&ty,+lluU&#Dn~3rV| Y)(3AW_)%6gy3(yC,g+fih!wc1g%}I7ꛏ;>tk}~A/9p -V]!ןWGqY[M8Omg_*P0۽-'E-혚ë7;In'䯜?/tc07G]GW|r#v;+]r)AYD vˉUHSv0$O IC j4B +.D<;gE!`"g>6g)mԖ˼h_%ǨfK*Ar_b /ߩR#+ϑR^rKEGh 8ȍ‚A=w:yQJɹL撣ZlJmiBa ֙3%Gyr*Rхgby 9 +omZg՞yɱ$ J >ݧ+mX%7 +/9jAL)1ŕ`NWxɱ]vnb d#6H{ʼ4*d,,n0qMC]2VM+W[ ,v^rŐly~䙦SH<;ec^l_ȎBZx֨QxQKgmABLЮfV +Eع$~@P˪<Ұ̩Z<;NZ+2h34UVT8vW u_xYg0l6_5{6Uٱf W u;|~҂$ +Vg?e9IeO$+_ˬ*2-k}Zk}^C*fU3]`׽)WsOK^J;7\Vx}U;U썶fwcLԦn @KkU.eӫ7S +-H ڻ\퓮wƦe>%D IW/Yd +}`-z̳actبt!W1-SHGtO:~uњw)z")J65ջ-w{{p@ Π)Ye~aP-|V,RXՁ1T?y֖;Y.@:a,M{Fdp\狞JgVdAsk)v|akyQRA+wT~tg^#rqT>YO.UZL4䎄DYg1#J^֩e/u(_$:-)z-Z+O&m>MUt!ћN.1l&`~k9뱪Z2{ҫ&$#* +ٛ +{3--̳j$A8w,i+LbUt=C1h/n?ˡIt s#߻_Zybx_hGWO_~e}9to6kﮯ6 ۬Sm8]fJ6`'i^C|s +&^hOp݄NFyI [TLގі#j5chZ|)ΪݘGǚځ\Ϗy͍0In{gC^Is}d8nMtĵ NN'Cn/^?4A31Ngs@\c6F,N}ʴs#aWCld#ɏ ;! H[j+Ӂ׵Ms'A6ɉ߶3DR^)Z9 dhKx |U)NMh/+J`eG{Xpj律8ZA몡;{=m3|p0N向/1M4+>ZIL`⥊lFs(q:#퍩WM"_G @m9V}=񘐭'u&`\ZtMPdUpLLJQ3G*D]Sm-͖cA>cA *ӁUefA[dufHŸnk=|l%ӳA 7,+NjĞÚw'V1K{w]NF[&s֥AQ vZeF%gJ)S +_~kYXvxgB aW7ܾ}zCtz b>a=v/1-}>6foCOכcܼy[yL_ZxX9@{Bea8@ٱ7б`߹dCI?dz9W!|ϟ/n\Ρ`- ķo +endstream endobj 276 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Pp + +endstream endobj 274 0 obj <>>> endobj 421 0 obj <>/Filter /FlateDecode /Length 61976 >> +stream +xͯKvdB4ഽιw?dǑe{%#r3@;jݢ#@E PfFL(b0Ed 1`Z}qd ]jUꭷݧ4Ox|ߙwcR|k_U?]~H)̵L6MO>iVZ4K{4[av?%>پp J[}] +v7KI~e+'o~Ͽk/蹿_ugm??"ʯ_}/Mczm=B7>:C C[塖\ #OÜ7?ȟD^^M D~A&'ezo~??S^ʛ_;7/^X[ _J]~?n8;`?|u\{ui(]{7][)cqts2RJ眯K͜Bծ$~Ok7~Rf)/} ū6'v7>I뼪%|לʛ_8uS_m]kp}y^7BtO>u"U0UG{JU=J̵z\0`Rśow+'bOiFͬn:,1C:>⼦/fG(jɦCLٯ(xH*2_̽o~+|*+9+^wD,Aݐ?n5>O랗Ӓ\|;B}\b_f%A4r~бu 4 c뚴fzW{u3??_XwJ _C{/ ?orM2KU&JSr9Q 7zR)#s~+8xIoVwk Ize0~HG~_45ɦ]>kq$뇜}zb~(s ՘@?LfreQ@7}͵d&;KcA/N6ܯFg\žaƾ"EZ \vYj2}{3iW~?ӺMӺ?:_/'Rp+@xO^J5k?ٟ ӱj +kO]}E!YEZ_ kvr-C*?y}:}pYWn{\1,_FY4:zT@j'+ՔK{__e'!1_ߓe^Ѫę+`n }12+sӿi5jX+;tP#QMjcBד鄎 kgrK[OSy'p嫽>Jo=dM5H7kiit`+^Z/~?]/#o~?KFlߔkkg/ӿnԿ⯀Uw5=+>6& L&a_? ?fZBX|zoŢVSgK_k[?uw77ӫ!]kaۺ%]v_knyu߻o_NM5O޺M!OeϫFSIiYBSZ_U7?R3bʛ tkV]^6jHJEjl 3`"/`"h0]TŖi-E ,Hn"5hYB奨؄J?fsSENdzjID'% 6d [(Z Ujl +z|X~MW3Т@MFY`z rA2V5d/Oʸ[-cv2 jBYvƸ+fT x!!Cu3{i=X͎-; 1.A: v+BV )ZhުNOŁn2 #99Hѥ[3ZAՠ4ϾH_0QʋL7dA`ZhӉLH7A 63sBn='sFO4ܚ)52PWG D39kYa*R'ų-1"xxXUc`emetHqzE fԠGAx^`qGۭv]4WЎ1 +mwReڤKXAPu0/tcbKBCM+ 5ӧ@`gw5mYN +I4YSѽ`=MaT89^Z9anVC0skUV˦ܴ[s: +{}Tcc襮d& ++Msњy]5ϵ{}.ztњ Y͐ BWc>}I.]8ad0BX7qP2_+豬b;`B]&QE߀eQƠz {Hu`YP|ORX} `9 :.\OM/3T@۸[*PBѦOM z=<5\ZH;,XQg0Bl=$S BaIMxjzKQ S)އ&2aY0K  xT)&6u QG Dvr 7 2Cey_h < zHj@q@/`豢?H6Jz|T*=r":t(-t"Fc 106}(PG]c +;7 !-` ˹?)@HV)T@DoUU@D]ˌd-bCۅq N2x6) Hgy(B#bqkG.e=EjWGA!U].xMa]wu Gr ´PQ'490Y [6pfw6Г+nZŦT@)<3nqytu T^xTE0۹K` gap g +2eE\s/|H4[ l5Ċk{"(b2,=PqA9pu!i`.ܞY}*2_, g8;2XeIo ṣ`G.5 ;+ %"z}R5vdÎ t015 +Q`7;a~K҆o +ЧPDqC>[6lA|p]C2+O8[d5܁jbiãR,,6ta32#ΰX(0aSbi7X,g abd.uP|SVNo@O=?\C'O.\] 8\p>/.}>Qn(c-,0"3 8tk@y;P oTм(vqZ ܣ +#;(- `Ff.'jdR}2"U,Lw__h܂a +mfs6_@\,BV,_T5:Db_PV +ɔ@_<gjL8LP)*_9)ȡ; اRgPy,Dמ?18C UxO +#@ `AivTF:F(mf>D +Gv ]Scf:=VL8" +sD#yl'*]A5}sV|z+ '5ba"ԇ³j-t"7ҡ$Z`2p>]+ΧKI]|QGQqU ,rݑ|Yp5 {/.;ZoT}a:~PVcaA7n=rqypoK) wZVQs* #oM_"vB='6+arotppwiy8`XqbʼnY0A [3R#z1Otjz˱79+͐=wx"0Y9XX`r7Ċ+S9@_6K1sDzshl5;I |x(>~B-jOEx)|H(icX] Oq xIUmPb sO. @-Pc<6 "+v^z@Ab +fŀ@ٚ?N +E -%pV$(;(Ujc8+&^ X9~TNʀCbqV]Vclx XEx[XN h#jֱa:6Nᜍ@]jx3@P]-_bm i\8¡ +S^tFB2G7զvBY ªu X؁J̦̕+#=5mD6ʖ1Ri5\6o:,f+ 豬bY 3rY4qˤ3ʖ =*9dLB A/YCM=Edn>cirȃVA(J0-bP0psFf`H5C'T:10 X'YoT0+rJ;RvUك&ƽe +ү $8h +tKSv*={Cu{3 ȣ.g&(O:pjĀJ>+S8c-Dq7wJPtEGA 6 +k^G?T;T{{p{qImidhDHF0cŎe?f4N9_uLf6R@V@`^Jׅ2f .@e58_%чZ9an5 @ypUT7܄ ^EA{ЮP*pS!5b''aD00LWeZ=$ tsBVw0gN6Bch׭p +] R< У%žJ(@}C_j 1CA6Bgp8ȁMwD6d2fFpS6 `ĢJj%yldJ1&Oȕq0"tFA;+XV 2_\Yf.s@ߒ*(U Q 6xe DLflaӟ@CVth%Qe`#C``pM ҈vw]ߞ2N:}(*>d(Pe_hj\r b d M+B3"3}'%|AehMti{C`Ux\iU-;H+RvZ붊RF,[ZZjmu;ō|x$oPw섺r=6&6g4}Iclip nr0UFo۠mE +2tQFT) GIʍ9@=nmG|i)Vn.W~wʚSPcYDz D5@fV)XVcY T#Uu TRW܍%߀ NJ2hj,xe&tNER`@Nqao8I /a=e& ^\uRxR8LAC% 1O´KeAPA\ *XN=tU2̱ҡe' +Xō+HP(Qt7ar=z5s7&;JSL@ը@q\ƦLkE +2*ioD> l +6U]=rRʣ)ѩIR}t {+(% yYeH``N,5aM)!ub)Rg!,ފf[0G)hقaM8P\Ay$/L¥^0S/ Ú%W FaMIԴ +LS+hD' kaڥòՠՊzCʆ.GoLe6E]y"lᓳ9=( SseQ9/V9 {K>eHD(XPQͮ0@Xp D&dޙ QD]Ψ V.>xWRxE2׉9lfoUsLqj*ũlʩ9 KIq/)7+صgc&=Dn4~,oaj Uns_ ud +>Z.I R6DܞH]mi2ԑfSm^S v 7Ay$o(ԛjr=Zz12(jUb7NI3="RLE[i}8f:Hge[5/(3zjнEz67l {rF|[es v3ïP;X-@BY DdpB&i؅,y( ޓ&nHn|2J~:Rtq7ۜK<4ms +f #Ae.K|@M,tIUӺL4A4QP+LtXZqRKCM <T7%R/t` tG +mJOF:w(|2hIEn@cS*%Vh:ICxԕ&=!›MM,P L&E+<|g/{+^Vr^)Pܛ|TJZe@3ō<#C .PWGO&8.TR}[҂9 "2M^ ڸn5Jgۃ؊kho0سOО4V&åMGTW,Zz|F6RDcI +-=)j2a,bo9Q%hcz{D^{tcS2tiD3 P?O1>K9-4sŅxdɉI sa Ӟgm/G6Fzd-:F #r 83]]:,[ Z87D+]4Z-9EA9Gs"KWٹ. kVI_ ֪,ς횀?vdر̷a@_ԛ|8(%ѱ2]e3v z|dCFҵ tQPePT4Py>e,Xa?[Sh*_l7/_1@ٳ쓥FZPl-<}B J`bAU% +jXL |28gx@(Ayy9P2V$jFnO5OԔ_Ο;i޴}ܬ ai ͽ& vV'{;)?\Gp%# k0]=#ۏN&dqr멉@Gdz +7 'l6t0 )RnQ(jg,Q=nlj=zFx[v톝kޟ[0пk̖y e-!W"׍?tIkJ~Qr'TiYh-;в +z-)̣gv4WaMP\=Gp%[aXsoCuz$o°5#/NO˭4­Dc 0iVV+ Am\ ) C Qp +-k>Fh16Pp@Ś7V1cEqȦ5XLK%¨ba*#EL +CjL+[Ъ@bou JV}tkZ?ᘩ늘Z,SA+:h}"A=/ AWƲ\@136U`|Lj- S,$O91]RnҷRYCzdžTVH ;ֶ)Lw-Ygӕcf+c'V.;GY-{X4: mV3wNFC[y u){@\ڲ.PҲ.2൪Wl'"pNxZA3ylAn+'W51ZdX̘/L| y|՘{{r ʉE-*!Ne R +uㆭij桻X'ch=Ldۙ?l2B%L +Ѳ.o@Q,4,EPE +t顫xT`ӜdӑB$0u'{TM2&RAyeFN2r['ݶ ~T j*.k0TyPnliC3#jl:';'Ilgg`FoP-){4€"Tg09?4y9hݪ[9w&S[>gTI?IP3\G4i\b{y-;m}_LfQFMB@C߲`deD4f5ed iݲr0t'aDgl8cNŇQ3H +p v;2؁E GźΓHTCBsݫ:q laƇ1_ hF8^ԆP-Wҹ|̾RQyʧզ=:34 +&;#/Cflj!e' g8Jm^R:Kۏ|;䘾E$7NnI_O1f\M*76Ck@,+JL?Can9SCiY'bá䕛{ +VwY=dYc-H^3pCFZ 74[`Q5{ݧ{ѓE;@%AP{٩P- )4PEaFXs>H~ogޡG5(끾zUoaXaV=HVEDo S"||*Ac0{}Km(Wj,N^dU)UWTV@HE>nUVOn',ެ٣CE @@-]F?>{{ݻ0ߕ:]_|AN7+JtrCT7/xNmx.mЗDvRt_\`.9txntUϮmS%l6@9Xe+=k U>z hG5:ȱ7]o!_m%iԹ~H"@I<W+(l'BdɎ6 Xen9b@; ʡ۶_G.9Vy/ؑ_۹jё+. ݳ޺Q1U~cpqt_#E~L||d6Be+ͮ,߯ɗ39?}bwN_ cu>_rJ)'_ύy>~5K4wwe0oǯ6;g\_M}E67H3\;\A5RJ),魣`BUiP@lҬMn֧康;ݹ[[J59q"ΑT9=(u)l\ML"z5ڹP3YU*ʰRv#0I󯓚16C4JZ%M޶\^Vq1R)cL.}iµ{v͂ZO\s2en`k0^u* *X[JRoOt/{t> .ē|RvRL'=-sy[pkMSbmwme͟D~gLngw߼޹"+.ggC63M;;w/u,u;KL+VPi'? +_teuŦRF^+"U S?J^ WzL@"G9WA{/_6a꥔R) /$?)L x}RQSzx+tß2H ZyWpOߤk(gK ZV:xwrl%ϓN`x yY 9]62̖? RuZ9 +Cũ1VaCnRogWgDAbCjWr.}+UeQ]l~T3kfLB,|p?+Ia@U}tO$=wlUd +!H^]n6&Tіk=rl.t^Xҝ!Dm t࢛F,e>qn#Nĺ5`{vSY8F m0:u$b +|y:8w-k@s`Ɗ;tEe49Bjq\n@K]N,LGjc!-CNhܤ!DVN̵Zӫ:s-BZC\s^/W#>@"ڱ4It;$ȟ b{9t'gqR`>|Lx4 dgSXq@A2c'rΰbUaFh10ݨ֕^AUa fs3< Sih<'2zIxzPP|k&|(^~neb +;F{P{S|{ /a+\ +% /&H:Fsb^]^q&$LqzsKcyءdϼ q\oVJ%1Ѯ&\ +N#B8qjCt}!;#`H[#*"T }{.T)J\1On@!5YC"d` d^l#7#T`mcnXx6KhaD5GZRF2{H| )- v x{(X,נUu+CBv@<*/+GeEH=psbO +OduU|6,OpFzp;z`W0dWU+^^ak9-2׀ +p޸+V -'<)Xc2YS~y4 )zȿM ΁@[uU+IUV  [#?RoWÍ6?lXbe+[AKd>a9Q_؏iSx" v"{J&_ M[{Xy?QpQD`և콵>{@+,چ=Wg{b0T8'2lR6⌲aR&<#3+נlaϙܨ?MO=?rIl~^3Vv[ B|'Ui/ Aخ+H1co,쁐31+wѝp0]eX1 +*/X4*:|RhU`x2 |z]#0"Ca+[.XNỤk0;8)U>iog:8z YP(ڱ6^;pwnk \O +|F'"w]sF?ZNY O7`Oz3z|fP:WE>+*ke=y > Mwyx$NЁw@q$P~_uGW~( po՗T+ip9yBCnVr ܢ'1`O*s< +W~ f8eHY[ KbJ0bE85b8]̢l;l9leي@uX`?U+pʞlЪc!4Zl"1#І.,*27= ף895o!P*yqx whLBs\Lr5;V (R܀+=ttx$D@.yS7k,EemڄxNB@}?Ʋn>  ,eŦ"CoZFQe@=Rϼ }l*1RH_6 )S9lޔfӰd* I |]y$ Ƥ KmT%X#%#K'z:pD^"!wZfą#w/{O>o|~M:ϱ)q8njVwYy{ y߲/ oF5NoIdE߿9[i =ĿNgCY=Olt}jc"H@C+J+QDwv:sz#|0*Qt7=)W~Rt ;)b4`jcLT 髗[ndڥ2\[(WulS+3G RԦ+r =_ONy^FzǰrBv $ggV)&P .B*>/Н^CoPV cnFЮGV)/@$̄ ‰rFK'.SCaY+t>ŭlŒA1fML6Ļ*@ E,kYViT$i-5'l0YV:(:diAgr\Q1kӬ!QwSpLrhw Eo <);v?̣saf710roPWG6L<*#| r+qtE#S+v+8kpoѦAZ63ZzE!ytcZ]+g<#v7 +̶ +5 +*$nǫ"̜Lw׷̥yR/`+n𚐽`*ó' i.cte`%ȦT9]()1 BK!.CtJZ5EzmW G V”8]sk[JW{i5+P^уaJ~`%15n V^7-V\k=X E -[Fo۠m1X QG{ŃWl`%9Lj-ش (-5l]eި-^7T;WXP .86 +1Jqd=ӊ1P]c!bXxvճKXd2O(5Y͝Tnc _ ˆBuz$s_먞>+U Ah%ߞ2'6G+! #ɧWvЦILW Q - k-O-]l\6{+64B -qQ%3tߔcN׌o]_SE7EۄtQ>XXD'f bv8Mǘ%aB<b-]JqWLƇY@VJBV,|}N`Dt:iwyR?53`#3 +5(6=.,m<43C|1t֝# NJ23hHzE ;j£Մ;fV5d( + +Lp)B'>\i@*9Sx*x'3Ϥ [P޵s;%0cU#v]5'jz a U[+vQn +8>{OFSIEȂf*xfHM^qn<&_>0M%yT^U=0ç;vDA@i(hJhALwٌ7PQiCJt2IFOabq^<(j 6晚35fj>B#WDCxI #{EXQ(Q 4q$'?$'ҕ jP ¢yutmtmtIN(LmihQ @  т԰h> +Znn'Zv˷.[Q!iՐ xC%}<ޜfNa dp V +WhӍSXXnn`@E->7@-ԇ>EޢM72AY"0rə\F\\(b -#x,_jiCH>X~eRg,'e/dbNX֠ݎY':@^`ƪ q|`YnD| (w!ugsHنXw2l +8@A/T@#̒,LS|,+N=Hm9'ѯbe J(N,GRMf5qtMJF23V8B՘.wl.db +:;RXNh$5Xrв7[2x3[C+, bYcS е~>GOw¥*T-.U+.X"n *VcY@{EX1ZpR [GU@Mf9fժ+n +]TҁFSp P(>! +g,E뢇O譣EOpTxtsƵ#Pۂ00Ml l?Q6!ukÝP,2!Mlp"Lm6A[(-ۊ__.DÛGX' !)`N r .'&fx<:''<3<mN<`Sĥ5nU"2kެ}0g+X'pYA6"'x(Ủ'9mTk3XqbŅE&ˡ $Du6ϢEWE`s*(0f2z؛r9[CUcpDZEQotx<[pG5q)z"j‘rj#׈^.8ZHۀ{3O!߽k=^3zMp@@qk⢍XwVHpk]^ fZåe%^3z \E)yzMqk]/}aِ`̸źO +7/]wz-ZlZGH0պ*HG_4#@-^C&0CYC_3C%haf\e,|:aa :JB;P`4D=汫Ba\%X.~%]i\,x,(ݿA^ 3`ޜ1@M:Ll(ۜBX^X^Ժf`Y˲U.tU)iМfcDPcX8u RlK0CEeN/DAӥFr_XPU)3^ .ہYPeo@@s֊'յAbDvꗥD7Aa`*H5¹C'3D8:XQҔڿlcK +^ZU7XG茵av`/Az戅yF` +tKg;tʝ^!8c 7{3W$2МwV]khGs6T$ؼSU_ "BiUs4&n`2VHw;:V~CKSݡA)JK8v 544a3d啣@ 6;+Ƥs+KqQGı,iluG$P^b qW:&]?P|X`9b׬ w Fu_+(tXv\U@t;@{p5`X#Rf:$>.ԛ'i<t%8jm[L!ODb-"$/lkfe2]` +>dF=|qqsX|V&=tkH+4s-ԑ|dWD:{6(<%~ +0-FU39Fn-vawu fBt酐0yJgTbeU'aS@{c)G܉bh:+ߚ0G jP bSހBO4Y=RQПq,ctEzS>AAU]ve۹`Z;O,!kp,*=7+@U8 )sYE[cL$ܐ@FCd9'y $,$,Q‚P  6 Je-%Ly^%CŚ< .쮟/!~>v. =_ZF6x *RL^DlGҊv ,[Ъ@co'GGɈKh ')vd5N[43g`ղJD,dVM6fgTulE +r'Zo'#O uG4<+vzӁ 1`pbDY̏?Dd`ٺ@da ^ΖWH$sL Ta4lI-mKƵ$wq|I_U$([%bsքo2tPl9JP2fVYpGt6źY &A6Œi5G V-k>X6X2@QVְ& TEUG'qcF* +H^J/F)1|RE8*F ~=vTTq{?@qao'3>8 8NWLQ1*@`h; tsYG *w֦]ԤӲHANq'mGN7W{aS=|8|X&XM=Nld,߳tȾͳ|zs^@dL,;W<xҊxS+e Zt(v瑠Q2RSocBS)v5bKt!! v-4ܮޢM;2݃bc+RS z -Y]p;j@`bgɼʨ2<n!vPYͶl&wN2dbβr$ɣ^>)Qc4NL;8jYuX002ԠGt(/Mt2Y3e (Q {#t * %#.5:Cuz˽Ԑ!Qr$ʘ(l nd`ײvkG{P5lE +r WG'qkF* +\g:=z$>ӣnrJM!H +&+V, )b tُR8 {v,>+(;Eʆ"-j & qGh(cE|JPQK3 nV}_P vt'i\[G9 &@JށOB禯4;ڝk4d==KqWQ +⮴ +)d៼邾xQW$g+uؼv,GAقVQ@co[؀EzS+У+nHW7eW<|-i]&854\A[FwPulE +rci1Z +]&>*cHR\T,Pyb%u=3,n%yr1ΛO'τ| ;X;+X' EE%N,Ņa] j%پ~&Sٰ`CVSl>@# wU]b=,-+GCɈKMף},Ήl +28ɪ9tLs\ݚ!me [MúRS>Z4~C7XLѥnGEcg>:>$'Fz mN*!:n)X6C}/VVO* ^@~b_|AthP547tUB[ujH.{Hs}\cLI鴽yq8mڷ )mWt瓁?#hYi^qeHÀˀFOX^49vQQIO}XSR:m﫹S*N=M9٘= ρ CPtQo:@`XWZ(6\X <TJFaΥ@G|@tSU wpJs-4430YѦ+k؊J]y `Uxl=JrV}86$0S*:[ SJ1GP\ z[Xxx0203f83, +ce*v$@bupb]@^y,B:+(uTle8̟&i Bd |JGy.#ؑ ɇ>zq:l#P\NNGXɘ uL0l'pP"SAºN𡽇xtNlLUy'Oh4P,/al~G (Y@բ7UF \Vf+[((p +V .wA댠1]PKVtyYT0Y_鎲% ij٩5pkI@%4jk8tYPq*vXL;)l*̆{n%1FP6yWXW$8v!&] ]Ș2]ݫ@9!N`C |f/Eghz+pz=mYͰ/ ͘: m9赪.i89,̥<*l.QQf]tkU誰$rn2۝GuO@'"oA FX+-v^<>j6j ڲ ÍOoלjqdaE"*BC[" GZG }na[y6NQGV]AbxgD*V5bS VqÃqoGKP"QSV*pa9oٱ$Gh_KiSHnE +$DYd#^N{'HK`ᲢNZy9/\e2S#6S#Ss{7wg"0@yPTm8/jdyg̒^1_d.rbN"Y +HFIK#O5icO&at$OĎdZ03j!>^1x fȻg?WG+qCl.a'K;@~zǜxYk@PIY9TxNZ|CUeSlhK`ImaۂJԉ,ol9.ָB ~Qʋ3buS ލy,k;C/UA l2|NSVKu}K;C7>$;'#EKhYQF fo%9{ RW<{ |7s'8pa 4]J։\qy06M M4I5 ~kr-DQB'Iziڡ!@ϜQ*q$B_ju)L`'gz^1o^;t-[X)vvTLJ'zŽ]-$`/ChAQ1uV_gG+hi\9߬u8/DG^lLKNAmo橾 #,Z+c`Kɱ6P`F`ޠY1gg"]+o:[/;Y;& %j2S&agpjqn*#9AF1մ@~7+.vOqƎSz߾nhԙjA9`U=;vX}9xfݬ'- a0qpBNْ+f${>ɣ@͑L!,d~_yџeZ:VZ?}/@WvT +`s|yzKb\" kgVE#dqr3vqbRO^[wv@[&†G1;BNHvKgqvuC/[C!wE>NbR.k^~+ ܅Pf UYs-^ #3ِ6;nDÌ@N\@q]g$jFprB|1hlQ[R a//8~_B-k_KlF͝_aMkǰϷMmS3~`Cxl˺iDYoR\&%`ob~LiaXBȁFOɷG 0{8?pp[/`bO;U61Y/pJ0IB:ZY2ԃ@ -]Ld:>fZ7ގ~XX1mDG4F\WƱ,KW(f~/%ǔ]!(pf Ț-߄9fPVi۷oc~[/O?>.{iww!_Fy4 7*<:S6/+)g?ķwZ;MWE+?/ټ.䏃 aK.{ / JUp Z*XP7-+FVJ `Vi0ϥ?% ?%/[@g1Ñժޔl|i+X:{'SW|<H^ǗqZmSu|9|5L|ճ}o>w_ttn+*̄npjTsV$07 +/c˜|`(f %0]`Wq49F2 ++xA_xOP7uϊM}#4oNU;thR0 p%77 >$`^p QO>IeuB33Q+K+6%67SU]Yp <=)vk$77Z)~GV,jOD9mʂl8n.ޙ_BUkm6J|++ꔸšx7:KdtOOt3a^g|eF 6<~5 +wQf ~F>@=3via%-1z5Dw= +s8~5ʮk܌y!ܵub['F«/<ݟJm'q:[?I28}*Y) A>ÒRgv?X1qCܨpCVy#x,.t.%;T#'gLuy:uahȗ=m~S|BW>UoO{-/Xqn\#կo畃-H\z\9+UoOt:d\=זO\ _J|{0JS\͵Gd_U[MW_>Jņ?e?"UjD$!GB~{RE=IIKMWT'~W-(I{=~u?XUWMo8׫ ߪ`|M^W#B K~)|˅K~*)LrG( +3Ԏ|£=z at8X`B 1 W_Rt J+H**!YSEVc{U)]L7Zu'{2=73l2l4:òӰ +,pP ~P&%uOs/ k@2|wkĆ?/-!y8tQg|p&xrQ, /M'q@(>vx;Ivtܑ'և +m)%U$:訕jGm0  |B*М wX0歹6hmOS8_IP3YEEf$6ڔ~L&b ; 310?L$P/c *"uSڌ 75Kгf\aӫ:A}L?y}Pf_oz w~p_((l$VQ֬ *4I?h)i9^!>I LcǛJs!*{X=+`fWA)VuwjHp&:Dt ZpZ G R}Lp{ +J.A;RD#Op <q/ZRMd }t-8f?wk4ahYmL +;a!3FT ԫ lÎ5-UC? mO!6> g MrQEpW>UfSuaRd[_śȦ$*m5(h w,0T]ڨ~԰ v"oc TŌ?}Doĥ5 ef>gՒlTm_Hg# +1&OB 8JĶ$ ;?;Qh~8jKu: hR2l_RȂa 3 ;t/`*_@53[ G+l$\@ɆNλ~U +<_MW ]l٬Xtxj±"_6@[JϽt{䃼ST,lwrGgu"AYǃGؓ+cұ"wLtXP +NYYt<{:xtٓBQwԻ81%H]+w^BOEYaP/ƅ `ؠf~.Zw@MB^c0؉xXn/0ȷ\3 Q<߅ drYwxmFfHm!OvWͬ#|yAwڒ_DG!H}7}3sB+˶+_zzxg7&ꊉΔ*5I_G#. +hʗ[wc@H/ e% +vu)yNB]#YcJ<܎;: T;^ֈ\T zg\ :;6}XMU V4s w2OvV V06eG?}qw,2/Y3 ' Q]9wog7To瞏[yuF"r[OW3xꏯާJ/Mvׁ{w~u?Ih=cqUy_wa `8=6XzX/oS/P TsGѾԪ1r'hj{mҌ{5 @g0qƐF]RiLOS,KWLE$ jжI4`1ͣfT۫M26j?ϣL21fjno.~7+ks&ZxLcF]YPocQuŒ TVt^\vB{HUQ5v;ֈL@[ݎ vQ4]mMkFpO 5J4>=9KUJo H*jz{AZ.$Pfh <ӌjyV^Ad0c:7]I_aMy=Gc#;   +兂tV +nZ'LϭKӶæpm£<[-vq#5 @(R35CIwQ2=QUI01=[ULϖFQÌ/6]tH6- kw6Fo 3TPWG틎@XYh "AiGk] I'˜h|3S*k+w.]3 EPϺeН֋xZuUUCcmU|=:BƐQ gt.\,,ʣhV04cGjK*g 4\G\tRD"-)tvYotI@c@_Lm:2)8YA*%6E]caq% Bj|nm;QB1 &,3Ye-Xx\/l8ej6=Rä3+L$L}6:#{@O%_Lm۰XRrdնac$3 B]3Rp?QQ| w7P2 {ӖO G+Σe8 ;36:6H10NxD\ @8/W`,:oݵ1ˌm_kհy^Kl{-V^klF^fR+:c Y|8o/vl{v"A+6:6U7J]=sBHN6uNc w/d}FDM1$P`z%v:Ew/)WC9W ;䠢{iݸW'}50r,:H:p#kW< Ԏ+V=P~QG5ѓPiTxtO~{5:,,YAetzŅ1GQ5 7({m n-+irXg|1UBCԶač|DlƟ˩RjnS=vpŃ@(.).Fá=>z,oGPhnFQ;vc;Ff;NdZQX }wנ%S+hx\Ixag0]:ؔ$IЗhE-%M+[`lۑ}t)`"2q:zIwSq4eNT^;W&rE+ +B qjn:)/0EY\U4bav-XDv3$D8 _l tZ V`raBYyEn]pZ ( ,#V+8cH ʇژXH6\}>&Nb*=:c0MژRftZV+pQV,aZMQW/}B6g$5gy +i=wT_^P GYgl)f@ ࣥ}#(g .WܙXX`#?KI;?zʉsCLt!ޱbC>{j߳;0s1: Z0]c7m^v /۟lCP)8 +RQvIg\KV0SljxYb/*sj~c#k>W`t::I;@TŮlQz7J\5uQ6a.:zecO2񄆞u(Ak nZ*rq* +B qn:)/йY𨑳H\=č2W-4=#I;<%]agܗ_}¯@xPea{@ty:*nߎ nuM~<{ö`qEo~zgsSlS*nLN  +DPŒc9@!`/+{?= +C(tp&ݸ`ٝa;/\1VA啬X4NLZBC:lj8oy:x6O p*Cꃩ⠮@YUՙ +Fàp5*pOGXG]DtԅKȨmqT%dzx:,HcL:d{0Ue̦m Q0M PRK0*| ;9N` 8;=;G7%`0xL+F +$X9̲ \3weX+en|2SW0n 8!t;A L1pt*uQ0 O/ ܶ`\'ɘD:6 igrG vcwd~OqsXtI$SN%[0<ܦF+qx@cCFѳPtCDnGxC})5J3Bn`3 Jp]X]Tr =WJ&Wb *=5tF0jӅLt P#!M 0zIR74Q<"*vt>3aF:mfVDXou/؝*&tw;z37 >4gSe.d:ö^omm0WN "3 Gɕײ֝χAjb6}X3ދsƳ16x`Lx9&l`yGb/ \;lƙu'@-lKEOB(L<a{?o䁉a3HN:Jk g'1-awrV7t#G): +YSlj):BNxEꅜm xjf2Ԑ^/)L36+|Z;+r!/>20sۂqY5LԗB̰Fbz;Rvc Q<7QOW^NNb^N8uL9j?*VBP*qNjH<=5KV o^6AƄ=0c:n0HI7S }ܵ'(Q3 A;eט^5sHum(n%q>3F^>q|Xt+,膶aN2N8qδc_':C;Vёמ@owJ>.%zp3ZlT ^UPУ#T{tF/!zG$G,N4FRa<h 8cH P>\WN0zOyUIҠB" Z+Qj٦  +oHOc9ov=tz2˞ |2Y䴚5(Lk%`K 0*gIgW.8^Tw..C}-@0v4"~/TQi;L}  +ez/QVe€ݮcf8+V%b-Bd,`m]yhnI] LAi'T7f挎;1(P>̐y1sy,+\ }?dJMPgo0St +0eT|=zUAq? )@T=%;aGIqB~f^9†Ֆ!pc֚ty8T ?ϟxu'-B|=XiGE>O㿛a>A}pYtVA.724I"zI؉ig8 ꀑޡfsu^(tkv`^AN;5ɊN/wwLg, S-%L*u0 M!_*BȳS_jck+_ZҸ +EzJח^@OkWW0h"8}DئHW!=gs ~ +,FNR`a,sȑ:60Rt43bF&+p +LGB-6s8 X9mtm1q(nTnۚO@ul1&e0s, H`)ewV#02 +!mP[Ҍn+HEe@x$Py%>6>Q|3AQpgPaF +h=]´};W|rb^mLQK\f\Ŗ6=ȴ8"J3}Sålv2ی$!557 +/W{| +БG*4|;20˨-%\o0d{G8[?P&MHՃg.H?:qpYPrKԉrm׆C_LXRLj0guE1Dj::%lRc>\/L{tj0 Fo{A3 yƈU1UAC:luoۂ'D?_d/@ƟrWH~ x~5xF6dg +lPy++vІ k. ϗbƃ'utJvr9hSУx䱻r]YNRI?6*k'db*?`F +f+ snkk qz0 +4*0+0]+4*zĊA^`i z];;m%:^jGs9״[yE-H10>h$mg i#tz +S'We:lqm +pW6 }yF{ ݶ +'%P|WF78. +j@g *,2Ş{S+*_FmZXGx,;F= LEw ^t\:)=KXsɉ h*f%7nyz7CfOKD4(,9zgBfc^0AaiEkSj׾즶n"7w;P#;AI +>sGstGK. Jѭ +f fh Cjfa>LWG],tp KwV/I鞙4KK%Ԏ3NlҌ7RڍAЕA21+У׮=s< m!ᳯrǍmNiɻÉ]Fd@YI\DXsj:ǜ+pp.>5 +eeT#15?! d8ڄ"`D$ʼn%$:.\W%i/z(^`f*{I +a- n2-xFBlj'!#z҄'5קeBXˌ!5q!'‡CXt_xE'K'¢ );~uqV|7@{AE{/0FRhe3RS')Ⱦ ڭX<^mo()?| jgrOXv({E-x&g\>\WǨ9LVs(4tfRLUʞ D3ڨ(4uXj xdJ &uzCf5BP.HFbO 'ddž2*gM$=&:ضa)iƃOґ+@Үc) +>05 +|j kJAF8#EP34aT0&% Z )I74.Rcru5^R0@mL\q +VK@1 LŦǛцW0TH<'4T3F ,L̇j,";C /Ņ۱Xms|,:Τ rDٱee6ej<k oߵ8vf/Yz4Qonw=qb 6yAxlV.|LTUګ@F_TqnmAE`AΙ;y pa "U'qԞ3D\R9#P8;4 Dp"/;5.~?G&"M/" wCh"z,BTkk\ +o_,o]mkݽWOX;wdzWAP#3 vv\ϩ XmT`4# n#ڡƌ(5G +uOt$C+Qt! ŏK|NbS;pۨ(4#m + xy,AIjjho1nP9i0SscqTmN6i@ime%zq'Nz +[:B<~.N\Ν3V;~$C:."d8ڄfJ=k3Ԙn/aL$j0 Fs5|4^-@ a}g S%ځHaMܟݏ4㄰^a- x$k#Iikhx ktP]겉/wg1J;|Wiנǭ۹r>s#r쑈s+(ɽ]E50OKhN'qPsL+OH;)Ch3^s 6-͘8emJB;fc۽ΠZ_SQ՗>4ظ[=qW?ҘЎK]'uEug9FYf wzlۓ,0wZjȐ;kCDAt e8Bƭ|q| MMl.>>FMNﯽɌ!e͘c'wd-vL隓f_1j9bD͕%d;y942MIj]b-(5L4` {4e[̄wIHk^p(9#w$l۟@(_6qDj=Ց#iTsȝw 8¦䐃 +*4Y2'7fP֜$>TYc9 lvI1`'{ws7w6h%h,{rm<:Kɭf֜}ewJ+ B@hiH`(o͙I;)~M (%ӧ3#3cicvEh»eBNQrvJƟ%}w"Xȋyj 5"\\U(mt%PT!wtԤ/5)Kk[vxHVhinxM'NenчaLj4v#Xz/,ZîU':wr?y +Q%dԔ%X 'ϰZfDݰ+bV4V#KuYo1fM023%H+aqnVK`kbV,N= <@rXg1Ad6U泀^ʱ yAfO $@qxF c@`XydaUlkwv0ʖs_grLjd#^Hfgr9Q HfM=/'8O֍W5 iְ^\`{LbE/VpǴ pyՔ;)]kQT _a /@"O`0Rj]Q'OWq`e+mvP:`Ҹ:Ցj#lUd9Vm,hR<@UkhοWQ ۺN?~}?oۘ־ӏo󓜳 r V6{ +_:fWERqF :=no,ޙ/% 8 h2ݕyke|y!2Lck[.l-A"٨|ϤVG[ +FL_.|Y|?|-? +iegcJVSP.$'@dՏ}*aP@veK"kzh#g>ϷׇsK/Zّ$`?ɠ|up5ؑ,k492ZC;IAIWﴍ֕t5đIN82Y [ye1G_[v%3;tBF@BW6?̶om,ls_ +jpH.o{r4Bgc*I& =n#ȝU<#љRC]@$8]@nҦڵTn7oͶGr=&7m;+wfgpI8%e3* 2y<~;[̔{Ρ'J<; sH&{a߰O-q=]{g'‰@TN/DRg I3݃kʓUzT]FscFk^gKt.\ +ςC7H+>JŎ_'bG"YN>M><7 opWpr7j6NNU/W灸h`L7>|si]v$h<^v'v|:ҎT +X$j ex7G`GH;pH?#j^G:5཈_́kw>B'aU([0V;eۈ}G֊uucd+Δ[W +v1?Cׯnxճw^ׯmܚ^'/p$ ݁EXiWΫE.X}*nˎ;st{rWNh_{W2]6{`_w"~\^5&W ܞJ<)Ȏr|Bʼp/G  @4(\d(w",:xQ6 +a@܆F؃b>)lԴLڒUoX^>DDN, \QWKɿM\NE I=h˭Z؁%hɯFM̰oçZq{feY*^ٯzc;fepb 1:%;V7RGOGBS84/hX=RE37jcp>sJL jRׯ|~]5<'>Uy;iѐWIy[ +!/c.oݝ .?rEFFTSR:OfX98r8%j"U_|ϟ~ܮfW e|67Oնɣ?e {pOVw6tC{@ϛo#f:{7\ 3ە\D0vqcE*Pүʌ\fJf4 %81xqI ] Ů@6d]醦Qp 3݀_Z4P,Cw|(C#ljiƅ]Zc7g/ZT_-53}pᛍ~wNq/w);n|cp +бV9"j;P&:  N  ! ֱmJ9URT4xݦ=_^b|8tAVwR <"4B23I +/o6@h;"%9 +6QSpN DG1Ң@Z Va.p}ښCdN =t|f`!IvJ +51> hTtx+{"QHL҉NPyw (~v(`d :#.U(sv7c:cF pѰc\Zp$!)*,,4AáZ/9Y03^pC ]6<6;?*#h܆+d|BɰL-%*]xo:0'~ F8 +5/WHؖ@˓4$.opb[3 xwܠ,07G2& +U(/|$ɱؕo ÆJc| ee  ]9YZ ;™wr7TN܃ +Yi?XV.)/=kuMI|"Sr]f=agV:j'-|!^ !Oy!י +3|Ť.kzj󤮰CWO :1^gZ zNיCt$3q7 +1#mH;gSC[b*\Q<65V FܬAvtؼZTH@P})$wg!J,_@kí%OHed@CC0nv6k(eiW#`$Ϡ5}D69O3 գ[sWo~@=n,~L0ZAǙÓ,Dm'2nHώ.P9gJcPk 5XϿRC,0~; JSP,X~ɋ2+efz2D}!'@MZ~(k|7%m֎g?}hqN *pq9'tLX |T7Jx8{w8k8X@:]eJE6kېTι0cjGϗ +G-.bBA˷Xl(y?ph +gNbіA>{`@iKĮiy'Je' wndžA@¨tat6SI!*p:/0i3HU ?~K .W *iFBj&fmBU<_@"\Ώ +m-oGIU`۝q'.wD빡6 +XHZ۠Z',\jPTGx3<xS3-u,#C>V.Lx=Ck̩0"W )Pg91MHb e>Њ(P*CY0y#mf/w$f OkgS^**r/W1[YG#:tw +U(TN>[b:ܡdXhƂeiŅo,67~ +w ;q,\f,3ܖV2@ o km8$_X,(L*|F!T]=^m4 ww+һ}1[i>7VoǕjGOVQ{{oߞx&_P{zը ]y8?r=gSn\Z ${ۣ'퉐9g'_>_g|+ͻx +آV!$Vɗ`DۆQ8cHL#̇ +xW_cbἛ㐠H4֊ `A0И`FQl:06\GM-poM6*ognT:d%%ijQPWG^,<.]5-e[p +y\@0]1h dS]k,J؅*QdֶƟ?1GZ}uzKm3aߟ?ja2Ȋ6"g|`$LBw`/_@Gd u+^dQo@: s黱M3Ia;S`6+mB *84=m X OU:;nn`ɊA9 Ff^A0 +j8cV>TvlD6H1WC;р%)N; t1g0źWMly]bNgf+2]ǫ9cEnpR=wl8j6mۡlJ&iE0׿lW2W;ER %lFn }wh)K zBߧ"Ξ|yUء= Y I(X\WnDȜ/|mXD~É3"񭟾z`dKunzGpDͰhpVU|yzxUgj+0jՖ$9I1:\cceaq݉od*PTӲw$?QD4![XO`hľXgA\$hJ:gUW=8v]M< #xa[px{?YFxX]iXE`ȵ 8\5PQ gl\NPoY%߂Kਚ*ŘQgSP]P=+H@*+ˏ76%n̳7cb*?*^O. [XR?j[+Vb[AqR lӊw]'ꉿn#}P,L焜tNoGPI/D-`k|dT 40s:?N+8k +oOV'>Uz(>L "V)UY#CQ4c ZXuHihb/ D 56Ivc,7G~Y @[kF "QwGfX8Vc n0'=)#1R +lWiQ?W{D@6S0cd3pzGUc۱l0j4@j5V0rGdpǤ7hRfLWWllT &A/B]cXӰ(c:mZ`k2b)3Pb7*}dikܦ+Уx,ȫ؅ҭlG"BQV,)u/x$: V96R:FF64-5?Lᱫ@jv{&z +4>+Qjɦ *A {='W9hd;,QWG_P_:Turի;AlĎs hiYڈ4c& jyۊ/V+pBppyP|VH8c5yS;NȚ9OVV,liWBVA(; +ngX@z)*1a5FChyqKmҫȉ[)t82d%xY&՝f/wGo_⚛rZ0/@ 3\)5eeoJ\րKiTэ)Dk&STu?'~R7`-0|39؆NJʘZkϰUr/ܬ4>\;DZ ̌5;v`F;Sj +U݁Gi>sᕪCy7Ae}:/[BF?Y[AJT2p^\^JY#oۧI[Pɨ3z8 )-kLp1)8M@H&J6)I=hd6.?L^zxQ`t<[;wLtG{{5^V>t}im(".emh|'4>a`S:5Oec k^Z2/۟sHBւg>kZ[QZ/^ ֚%oGxf TA6/ \Il"bzSlֱ$!jqgeV舘#gm^Xbʦ#8c6-'dFBm! þ(zZx%|X'X ޴_ OV>Zx6 7l`| +kMJ O`|k eZ2b,ѥmLI' O`|k JMZiEGGt}vzvm +2--:B +|; ѵNoݑZO@)(YO04n#{2]]P mxvI@A 2]2n#>=vãkCRxtaR`wXL QPɌ!5;fӊwU-lB?j!k85 +%jt\@h+p\K:.Dx +_pq1d{0K ,` ulK$aR'^> +_gAZckurX4u,:cv-qާ6Z`<*c#D*'ٚY6%L,`, i&&cc-Q5 Ÿ@t@b5lKYEkc[$զ+,6UCyl؋h>13`v]GMt_p8RfHw1KH1W:6uFnWj u"M:IMcPS m5P!*}/Bo8DDNHgP:81`-šcA:Zko5!{{yv,޲Vb͛;ȈnodAWU'9аDmഒmg ˛3܊ +@.)ʄ\<h<`߃餣F|:U[:O :܂RNŠ* d1vO:\+EiUeU9#d/rb8pvaQfāh`ry"|uh4M'#_' :БD$f!ĉ1E7Q0r swыu7zs@ e'*'S>G&xUf>͕͆3c,,HzYa"bAs-XQ]8||UNշ!v ۄ ;wKXv2oղM{|TSJL *D*eì+P@rHK +L 0m;ُwK^M!@^`h~ kFC+ +t_U"N,-R ڙbFS3Q"Z~f$GXjZuÜpg爄iכiIm:m=4I'{fʔnYQ՛6L + L1F}ZU3] `< + շ%0bUh[δYػk ;5왬 y d Ap6]; ZU(99R4 +MG2f:QL; +a"PK#%xt 573ݎUn.`U؁| ؃i׀7t܍)NF5GS}7@dG̕RP4WJW_ӹ-كJ[:~f2\ܑfOnHg49ëWp$t~fmD(C%K^>8=(d4 b Ҽ (_4 Ղoz_?L Ն aNN{KY 4E<̴W0{*Ssęѱ95(r z=:=@.ڍ/쌗͓R)A/ +*%Гphp~7f,,`;a+(/e<-K&a2xP&3$gm3^t*툁tt.F `ҥNl~:̐(x8pZ2TZU>8cݡ"a xy2;q0: ϸ|b[njmu_'p5~ΧKtyol[K)O)z UKy>[bcͣ.e`ò聞qұ +g{Yє# +;Dge=mQry,*) +HMXxhtAG0ejlɑVR)\`(xv k&K +WPh9BGtiDT|N~vGĜ(%eԥ h4Cw LOFJ t424glB09!"c,a+b/f$љQƼOXR"d hlE: 8WP +ȵċ׆B:Dc[!e_X G'B@#A̚#B35{3 lբ2"%DgOtF1.Dd*ZYa+bil0ZGw/§ef=iFeߵ$X-ז`PՕݮHYؽNVqC*bAl, +8y h1hFS̨G5&!:je_@92)j" dzK $?4glB0̚G2HtuiE RTFd՘7Tz ^xpr/*5õW/!iD3T[=P!˺~+I]mړ 瀝x ?ԣC5ݼdW4;G!+j'cv\S:3=¬>Za΀T5oO4{@': JvOQQT^vzX-*Q~AS+M抛uF$ `lMPy0 Á* &KJUYI3#֡@ xVV,C'P@,0K.($zKy4+9@0ar=h;9`9ڼ%Z?cH#:DJxBpސ,gs[dm%1B&:= c2mMg4i-2dP6h+SnLF7?WIײt"ءNEVAih:4ٱa+eI=xARUuLl[C @@PX%.;"*ltXE(G,{6PSV54g0[չ0pv-i3~0{j'%ͪWw/͗Ǭt: D!4x12+[x`!nݖ[V~~vNr,)RYd\]6d];{]{V:氊mC)@~4-eZTz8Z.@G.FBƙfp$5ђk` ԜDR**/ӎDw`elE  + +xvP:3:#G +h10&@L)/lDm$9Ar*UMg%9V{F}6E(Sɔm$f`9fR |_sd aM 2epStsyKBge rDŽzhvFp$295:L^|sfDVF06 WY@'fM6YL;݁V1zLDrȼOXm2E^OlR}YEp6kqU!d9{aFk 0"AH_dCw}^͍.e*VJ3*51LGS|ahEH:=226{2XfInP88YFKrOm9|uS{sAvVؽ4?"+N+у!Vԗ?mG# yռ61$KC?*R7IaZuy: ?鴕 ,DLyCxtkBmO~2*HI NH.5t8Va>~E@9Ta,p!"6 U;Dzݴ@=JKܫLa/ Pº[ /A#կ2VRk.@80w1&m1oݫ>PJ Ax M9=)PLZ ׃#!,pGsxP(A0UzSxVlڽV^JYU*i2 +BQ#ɟg/wPem݈%/ `xLo +:x{AJ٦%d@P(HF q(d U>`/ $)+@@EN' ̠])3Ȯ zX2 1#H'^Vhg0SvђI!9 ɁH֊KY fAeJ4k Zd8!l}UwMA&qNAU`qZ&m-M+'O金Ǡt+K\}27NՌղ="r'"NǠ:X XyTKm7q]m >[ؚXܙWN$d`HKeW*lYlG0AmbxQtoQp2AVUr12K=<M eW-ڂZ+Z`̘>{&0Hm6,kPϕ'5Iߎ *f?b LyXZD$G%E~q ҆\:>I)ZONztnc.a fe)2Pl ERD+C\d%Gv +s te ${r{GnMd 㽸$U̠.b2z:C(tl zH@Cn{f*l=AOT>D4nV)1*O}7I'䭛vWoߤ'sy"Z4|cݴ0Sw]ᰃ7a58E;mDmZss[4:dO]VɍKY6@tշQ5<#c1p v>P|@tE w0tծqn5.Z+:@:]buJ@tыAWo(Oݰ8"{ gV:ek;I-t;D_!r1YS n1nXбFl ԋ+N9tԹd {m1jNCFƶ@B)w[==9쁄bz&sRR$j) ҅H[:x}($sQpbɜD$oHRK_eᣇev SdԬZj7V֜DTU|n68PlX=?9+|ܥ^cgZW|q6?.8<}>YJKt㖄6 JS몠hyQo&ZigJ/XJzUVF%jqvTpU' *JBQN։mEE-FavNegG Vߡ-7l9IAJ u=JNñ; 󢝽%+z$qgXWۋ]lvCۧVyUR$Yى:yѢ GӜ1<$u3:eh@֭ҧ2ttU\Μ'HZ1ui':k"]G5:n,|^i%4st.1C^ +YC +{?YKI(Cp YUIJrcYU쑄u흣s$]˵)m#iW#tqdw6,MvA>@{O.eɹ;j]}Zy R"gn8LZ|N5|j]vy"͗ϹZZQ;;NbPDg84QcI3Ρ\e Ѫ9UpSs 58d*ꍽe9YV+^RI +: AL;rѹF֭eWddٵmNp8.W{vȆiNs ɝtvU#u:􌡭P>]:h4wr9:Aù>qls-1t.<;r7i424װP :GmI(Vyq*o>k; pfXlBr$npyCKI +;TD"ؕHY -%ˬrDN+*U{mhSF S{9m\G?$8|3*0ߠ +__n\Ykԭi3;q񪕖 +\qqpEv m gSHwZ0~^ Fn~{m}{1x1nO\ +qi[\tC=^V*n [c׫GjYkPyxpvjv=AaLc| gtHP*V=W4Li[kh%HvR' ]Uޓ)U$s8ΧHl?d}7aK \.1U+Xb¼^{6!8!/iD&Щj*nvu褚WrRCrNbp< +dR (o앖Y؃B[<e0,A+U3Gli 8ǃ +nK4*Kh~TdKl?8ӈF?&^beM,+;ALW!Jr٘AQ@@w(t8ChB&c.o6YG>w0n #9@,zDIa̤zđ.|PR(cٟ6 dlsG,D&L*7bAiBGq#rS6䗹aI2ұz&hC(._[ւ`fu +kP +HU;c.f/6XS1n JEh 4',V:L&JӶS CkVI'mcp_ 'mq:A4o +c5m9-3prdV@ưFWУm<`sc@@8È Xޔ)iw1,8DQ;G4/` vTftN@! |Pxz:@qGCVlu"ڽPҤ mr5{ "x.Šɠ +gz?;aDܺ:>dDuh@2vBx0:tsb(:;:78A +V. xVQB]md;5b VchK< @o%¸PZ 8Ô:+;LW!/?….d HY@6ha?*[ ѬӨZÍ6 "C,%7|*sK< +RN+INJ +aˌ,t0 @,4{XP"Ypf]'Rs bpr|Eqr/lMhL4 `3e`ÂY8x>ҐAZK by@;zV7Qc\HZtg@s.x NZ^bbW 2=Cb'ޏwp×w#~s:nhlu`n UykU}\URu(C9~8 /i;nj lدa;d$B~m->(6=ֳ^h+ޒms^T (@r^t1nNd^:De^᱒ig͌{E'h[Xdw.OuyLt@<+06"&m|o3< rGR v/  +X܈)Si179UՍ+p+G c&;"O&nM t`?e'@5v0J Wu V,~nG+Hr1׊)15>K=AN;! +Z% < hv+wSi)ރ@a +d[9QM`)%pM0=@T^2:зO)~iaF +lW4kPԇ?:аUak{7}eU=PxSl OJmA1X#dw_`YVi@7 ĄFȨι FPbp (3<:[誊 JLYiɲ,=sKnHN8t +:[GSEXUAr?t4,ŔfvMu[E@t=zҖ{e (=hW +]f#t?ۑ9v4ͱ# (NV+N,X`h@.uuu!k +~"4j:Oz6Y@X}}h$=»?"wT~{eg( ]- 1g{xK_Ca"l6bv̏#:ꘝ=Cg:vb^oWqĔKȊHbr"h$AQf#Ɔ @i3 hvv_ْo=(]w0j~y r.d8ob˓+eD/>Vp&mB6m`:m85Yю$p"Fn_J!iD>R➂gl@|դ16@H^\6y$}?b,(`X2!'(6u*cQ91 +Kk +eHu +0UlrVD9ODW4z矼O>J.m 87xMXQ=w,DJcQFUP d2v;7gDZߠoǂjr~Mlw$Ó/q3;ƻ7MXf\I n _x}߼7nJ_k}sWjx"oX(tH}?n$f{_Hګ."l?}9~5sѧ+]_Z_ލnu#{]_\{RVpFwه~nӽn7zr6JlS?{OqdOy?&֞ !?yR[{R 2??o?/'ag?GVmcVߵ='{?}'wb?v&dw_?o6[`˿<ܼoop>ߑ1_{k~?vʼjÎ..gK!6>SZ[p[sg˱n?]#03<,:[xYW(P5\5ۘ~LWA>o +%Q"BR !6x8OY/l+VmGk6h}kg?~~^+٧1Z{-;臕_yf6| рC|~ouUu^_ΜW*k@di$8_"~Ӆs[?kƉ \V54|O\wϟ'٥>y3zi'>BBO'psX8wA^e)5kY..<'{r wǁnPCmo%`5^e??ɋ_GB\xe)S #sW +(gmD~GJ!_p㻇9^0trcn;XA,mt~skz9rB{F~oo%N2a؎p4ml)^њw)~@eX>50$s%R]?+%)T3_m+XFKy^v=m?o+y/Ǚhw&5'9#s'PO/rїN֔rgii/"?"^ k{G|WcJ΄'?s~}{G~Gn{^Y~_X }G>Ym}&o*yOM|qci!Sّ+`O/A<ۡ]ןλkN jg{ -~ۭW ;":1[~o/(0S,ٺޟ'?$HG]in סLL?4&k}`_^$5T> +stream +x+*43Wp + +endstream endobj 270 0 obj <>>> endobj 422 0 obj <>/Filter /FlateDecode /Length 42506 >> +stream +xOgv?ǯm!{Mn_Q +$" m#uŐ3FQ0AA P0̜ @L> Q}j׮]U֩wXǷxoΛkuo?t?z6qԧߞxW^ڻ㛯ΟJ$i%;9<,Sae+_)JqrQ(ȯ}}ïj)c~Ko?2ÿ_w~.^O_?P&C?ww1>G%T޵ako;3vo,oLrz;ƻݮ ߔwڿhKwwUoQ:8r7|WԿҟ?'%~~w_X8t;XGW64ɷ_AWF?|+]o94^tm3S//?d,GYPa>n4c3wߜߒg~;2sw6;q{r|w.ig~ͺ|w7w%Yϯ?߫j=Wo|>~w~Uo{yϾ(uwtӻZ_;Zg#_ll?ݚi[mfoE._2Tv~VJÿr+2HoG*wwpCǻݑ>z{}ZWEf1g__O|g(߃YNt^ZPmd?!}u爖WF]0Ur+_Kį}΂V+vu~](<>Dž~ޡ=^]3-Qbu<̺`^_oÞVָZkqVCo&*Z3og3`./->ctrfP:حϘw.#O._h0'bt1'5׬mcTQ4SaiLF쑷1mHf=$V:J'VZ#?5:ڔ4Ucڨ4i=Uƴ8J4);i +5k[ҖC{ӘvVyaX~f F?xc7`L#ǘI3єn0 fO nx9mΌ֝bmv\6Sbgu(4yFcaXΣԙeR= +&kc-s{0Z :Jj$y Y{pLߣl0kfwck(YN_wEq`*4 Tqk$wo/Γ*s3jiVC[ ~06`l{tہM?x:fl8^*>Y9:5w7̘ۦ;{y1`.a b.%\xØ xyl$qF43acꈹʲ(U;[vլ[ V\JcȥPyftڕNt1Qs̥1DĖt*Yk[A6%y.[vCjzζdܕdRzx Jo@[ϭAo@z(^uIQk)-"z^xlݢ7g[ ;v챃=vOԼn]!x*1zjl6oF%6 eؖL!Eo9z ,wkDZ v*%2AnpPI6Yae,c`,3 +\l7EST9HxkDvuiMbUZ \K0FLHw%z#*QKK1ǴD 8a -5xLGo.iWm QL HMMe5[{~o@b;ו>aXh oolt2Kjig)@!Sk5T[{~[°XSyZmJ:RۏnR,?жяm ɳ>Vqx/sX}9 +xCji|ym=Hon@s;&@A$^::/r$jU+6}4q֛gߺʷij1ypCQWCۻir6+g~#tVLI1?nAü8Q )(axcnla9xFI$5ts$њnWo`$'/&-`7 $JenDϡ`봰e\մ]j/m؝1]g]k]78 5֗Jg:!P,Тw  wJr<'}g}߮5Bn[= L ۃmsYCCuzxBc;z]jVVZ"mEv\+}°1u;УGbӮtbStͮj@a=j׸枪-6~t)XV=V`yx,?`yЁ=HĔ˽S;˽orS|{`R:#.u8XvDECFП xʲ dmQ~p>VnYׁ +;e6au4n*7}2.Sj3Sy}W@Zb00tޠf ihMugcxǘ$$0r{scx'gedc4c2N4!1WQ9J4M KHWׁIp_k1G&3JȠP`[4gUڈ2h>fp;9f=tsyaOiu5iF +i(UhU3UU2afƨS" j6$*SS&gX<-V6c_pl A:Uhze}֒U68tV ϶̛RH_vw'sPn]םS4hsbCtF>:@' +'?hەsz hQ;0YKdRxnAU!0컾ѷ1馱 +UnĔkFT/ e)l~pi񶡡N6NU٘jh 7ű3d~w{OU~r-s-E+VYix'}0L-%D`fI9q3d-SMVCԲ>!c\qA+ j^Q܀mrCRU= 1ACF3muKɴTo՝ԞeLTG29̓&}p+B*w_kJ|I~94p7L78ƽ`u)Gȳ{:IpTaRSkD1 +Sӽha9,G=9˄TdDyiȻ_P#:5Hlv\NJW43x 뮋'9Գ@(ДT9Q9׭6-ƃL@D9 FQ31jM6-d+x|WaƆ՛pLecW w3=Ȑmmf-^tpQƶA +du `h? +w +yf$ ;N=5PP\V +*[S :vף:V_y6JiHa[C)k/*kp!dÌIC)9Fi(TsDm(0 21i˱#!@ANsZfm_ y;3.ь+B3fA{|qPǝ4[Jnd#Eȧ:{s9#vH;6o9f3lo  m9(CoUԷ8\}2fA&9@ !hb |Јa` {Gny i~rthD۽AcU#TnJ^- +jib? iM0%m kn7T* A S{WPvx%\[PBn[$'QO>+b WC+كǼ&U qrx:+| Yj9|PiȻ_\"iUawb}pK]J;(J3 )-<+G챷tnUbHCCAG"=t!4n 5Dޚ0$8DW8A~%RL?$s`s>V4Iz(]I5'E";1iMgk֏bH\LKaF),E{Ԏk=OI"y?bIѷ6n$|i=V—Û6|#aE_Nל^pܝP7-{X#bd-ͧIу@Z YYIZJsVaoqhf8)iX|HҒoҚE1^Ii{vV:B21H-5n": a#j9}k*i![#!66 +8HJ&8Oy{:cЉUC"GgpА$R ok%hDqJYBGRH7BvRi +82Nq& x̲+VQJ{`pRVH؆su=ȯp[P2?HEi&1_N ;dv 9+%?dPu66]Kt@S<^$ +{@]ᰳ9E6$[@PqR6Θn'z]TʑjY$m +;" 9׮V2CuJ] .A߰f<(J;?)3^JSmm!* x]z +W8rZkSER![V PBHY9vQI`#A\i91fz[a۠d A5k{RA&} }?:U|)C\P&d1f+n04Nx+'W@ds+~4eKwrgn"DC6׽i-dHBy% c'Ƌ7Φ38/VpoކDtUtQw†& 1}`l xGҙlY>QU&=Zh`ZF>x{zasg?c]! +<;3GbP82|5b5Zo1rat4)y +@_RxFR[dl$01H}'r~7ݰ&gI7ҥhA]c[CI!<a=z֖KD";FX\ 6t1/=,=V&@ *Z60ZARm16)Jiq!,5J q(-y1 +o$Vk)-6[#,xnc3`$%ӟĠăsCm[mJ!3zrb0@l`Q31x?) mZVdɰ f(BAg0C%6k6GleslJ9HcԺ-wvlX7 My/h-Lr I|P} +жشr QPWCNJ$]VYJu "{$/! ҝeKwrg o6+m $=5HTt[5y6.FT5m9{im: +,sHCIN=UhYU \p尾b0CmK#a#'!D5Q)ʯJ;LzTdO?ù +H&W`p*}b { +m/2)%&|8ojQOΚ +o#`"AK(4lDhPY{+V(M[ p<M|2:!;/V]UU@+ +z#@̛xczb0e9KiCP j'dh=E R!H\7xyÜO ;?̚4d>~ kpX,GH] +IȴVIQ߉cX"l,%FUT@&pA+Th8r^L200drgnQHy,;)E ;/F6~< ${ѻ52*c˱F +-W@J*_7K~w#1MGIj+bgfLj"\jaGTՖ\ 4-+n;(J4&.1LZfنICjQ^,&6o:Γ_PG41^MD Q7ay;lilHm}`n}@kv4 +s38ڵ זwlFhsk-)8tXYp`2~W!cêZ]Y(Xж`J;[̂ V*l,Y9l)ͣYуi + Yjj iPZf=cf%6Rnlv*d˻̀UuD9) ǃ&c6t + s\ +O@V >fѷB6lc:Io*@y + +(B0QvVXV8U2"jZ7n!91F+ H|KEH"4,%JuFu< +:)e 4%Z{|(Mz  Gʏf$ % +%s_; j%B;w Ld en">h_p@ejU E Y&VU>2:\yy2w DCys7vSo;5vb +%mR%K/٢>C-<F@4%eBmm#Nw{ by1[$1bwIEoB6x-wK{̲-h^,}d.ZaY`MX+{[Sh^24(\ +ziu=[}T3|p'X0H6cm^QklCȌ+-[:|]gbHC~^mqgGm\V=&iL5򤭣žedecebKb]dT KX ȱxKG$VrhGnDK?  jg<* A5ixUjR3 V9Gj㡪.5Q-=ssM d9Q*i E|^GqǕ~Fal/(p߯">I`X% +ĥ=zod2M1 +ˬסFd%҉r}uTi@/}q݆%qqH[Gzx@()@7HM*ݼ*P6įwJ$_ P.(t#Ǥ'hsIÀot~qo@3Yu˨p+'q`ZؼM (sx>\>z9Pq1"7(DP`J95@juW?6\<NNQk8֢=UFf=e{cRqׁ{Yх b8M8NbA)K#B&oͿy5:㫈Ij{$~Paw'B +3?sODž+ѧo|*sӤ3j;5֍no c>#t8kL|9xJ/rq\F:Yn#k.&Z+c?Z #Rx9L陵Zk>>660IcE~_>)^3~1};p@|Q'q~pJ{Tƹ#(mJ $wpljcS{&R YmWg]SLwg߻#M7./ŝQ@n<ɸnfN*4p4rIV[CҭҍgGOZW F_F69=dC807GͶN'-&5H'1 ={&Cp',f^BҠy\`b^/@P'3ؖxp5H2 MsA| DTqM9$#Rxӌu'uu:lp:|Μpl{?b_֟7`^м*>U=A |Ij6>Z> dmeMNm?A*ǮKհSZ#rӻ\&-EC!FQ} +k#qC59ܒ.&q_-<ք^u$ƂrK{ijyx{wo=7oI+}zä>atOO7+FD2v (`Ơ;\anjT'tRYiu#5+ҨH%b5dR]kc]AAl@Y.2W&v^v[}W!\6i^@\t<,Ew,(v%ԛ|0Lrg=KP/W.sXRnMA4w;irt^_)=Ѿy}>7B@#&j|A]>6#g~ylYůr#y} ^v_!|.;9ݰ9?@!C쌞P|W9Ms>b̹ĭ V&sF}7t5P[ +r[2;evzx=UP0oZU1{er*o +^%u ӵYƇܕ,MV4p(E^sl0܋Zѐ[}zl;yNC}yj;3c)Xf#c'r,Hki +)ouY].唋5]P OFt6ltWiHru%"̻c2_ĥa mGY>nrX.'I2o< azlMV~T.;>\`.(49H_aa!s {{)BDMHGps-+> (=C.W0qnZ%(WE)._Y-G_v&te.c)s=Z}7шTüz,\CxX:YEpryr_gI>._f?L7+3}Ƨ..x}=z$| >I$+5&iWta%{ޠ5-Zu UT\ZJJH|Yf'sYf}\2{Au:\|#@mG\{`*F#g`p"'klw3<.[܁Uǜ* kՏWCyt մ>:Х>C V/b؀rh^0>bmn:[ME; w8hi@]xAధ%YAaN%Jyc i$AASL˟1ktV\crP2~.0$Gzcc9xΓ8N`8N^qN^qv@8q)3^HR348A)6Sq`x:X9r̫p +@ ljM:X9Ύe<\E=жJ(^)O/S3ѮK63t'8NPq/4Z ljp8NXR8Ίrq<т,g +s=s|'xJ<]+<\g--g V(OtZ%>02-j hT^e'ˠ+F,q k (Ga@klHi>QB<찤p VQ숯f%(?HC)ms! +N? +kq4򣮕/e>zm޿=ޝ7 ~5>,/z )[9^?:rRlI~99A~9P??/Os  3~6ΠA~9}o[?/:䗓 7މ w,/Ϥ-ۀD?/_d1W=/rI~Ca3y_ +ÿm0,G\`O7'L$ߏfƟGaBQ~t觯qHG/zO9Q~!o +i{_* B嗿{J?H(| |C?gB?/;v@| M$tq9Q~KT7|?/%D!/!v/Լ_~ 嗿*(GrR=/Y!ߏ C Q~ٛİ)(lCQO">RHϣ +>/[GbW//?Q8msOGY~ Xr?/Xy_Q~֝ ,T>(|s4~ҭt?/lɽI~r4PXI';=_4HǣaYh//K Y~S_ó‰rP#r1 Y~6c_?/ߗ ׳!TϨ_Y~jYi[_ގd'e۽mwGn'=/P;?>/߁_e $| -I~x ,lS}Ooq~vg*I~>e}qPO7 Q~I_(C!ϣ R(4죐(C\`OKDrX=/? r'G8_L4=/?1 x_~H$~{_~?/?R _~n[`( #G'cuZnh'Gi0*I~O +i~_~X'i{_~B@OlI~Ioqx,%zG' +FQ~&okQ~)/ +iy_~g=t?/?U!Hs\uX_~R#ƏgG|gg:υ0xب'*8)t>?Y~<_Y~=I( _~&q-g3רQ䗟:LS`5fo_mF'e!fpM$dGrA?/?j VH(l&S ŏsz|a0g?}~3/ +LdGK}}b0/oԓ_v5C/;{O&'ί7ˏay_~VBnFVHQ~iVI~ +A?/?oA! WTz((p%Y?/KOS{_~f)) Y~(:j0ޟ>/"=F?/$ߓ'_Y ˮD`7$, +i}_~w3АI?/!9{ S)#~Y~M$'bx_~5E\`Og?/-\oO˯Q` _Q a.M$?:+BоkM!G/!`įo-) I~hBjGFO/tU~G?/yA.T? WYCy_ߞ.R?/ܮ @N$/ F,~ =/&EOo}B_J߱s ~}_~)OF;$_Q~-r]__,D@ߣ0(*8)ˑB?0_~<[/WQ~KO*_>/ [a/x*>/m?/B*~=M?/s +B_RN!oB|0/˯B|'P(ެr?/h~ I~\ _~K |_~ R=/, 巋\`'_GM!?Q~g(4BZ:{_~i[r'巼a|QH(Z8BGygyx_~SX?/`ϳOjW,/ ߶ gy|i0g9o0gK}?/1g?UoV*I~e'X' ~˯l_T1?sB_#PQ~ _( + __~'4=/B>+ Q] +?/v})_~O)0g)(&O $>ݤﯞ޵z=zQ~ rA)?/G?rO/E|Ge7&gzA-o˯u~`0g"[u1 +,4>/7>=/x,_o{ó򛁝_1H_~p,a +)~_~Y1_~T8x_~1HףѿQ~ Y~ ͑@Lڿ!ߣ[}|3g^N֦;}ow]z? 2}О/Œ/ː@A;nz!v0O@ g7>'w+uvlX|"\S[=L[g)A rWr+>Ÿzv +%. +\M +5jQPvS(HZOOrgMfwhmʾ8g~RݬݍUZVݬEӡ\txʽr^C ~ȝ^ЇOw };}fo(w{j>WþLvOAZR4| O8 W^:|;}w {hWY>پKwd'|U"ܧ_L7J//CB>)(<j=<scۥ9;p>|[nq^87c zYe-xX^gCyQE% p4 ~ɇ]1 +}>>@˵)\+kMnI|O>_[E<; +}@r P_>Pl>(}d"|zt/ȎN{Z;3G 5\EOL<]Ǜ}QA=<YJg}r>ba=ΰv$ճ#h_=0(Wo‘t&>-m2=;OQH|NO6{yz2187T_|/;,g q>:g gNpV?ۇַ[JH1A='鱧JN1z()'gP=2 良 M==շg[zT%Fr$>'IυxZl7LDZlyC@9_ 6@B+#m͇NPklO_M0n:r-Ѿņmjvjw$o훝l_Hmet.>#dj93Wm +Ŧ;RO<,G()E|N|@Mj8ӭeTl#>E@݅lSg{?[>;>`CKyӇFnh_̆ζ,c|nk mZ6+|{7Q}D}ط8;}n@I\×pj6~/G;]a>|xQ7k>m[wI停m-`}P?̗N-LJ^Q#`憬&J"T4+R(WҀz=M=(D)/%J`FdfȮ *43Yb(2.vgF%YhoQʌUff31V8OaFa:aFWfsucFA 3f4(xqeFc%tl|0tVf*3=auoPŒTfY)3TPS/TܙH+EaP}eFS<2 w(xDeF%qŒvRf2F ;ŒX<~_.TQA &cF'0>z3VQʌaaFTf22m0i(MeFAgƌB+cFA +3>ih܁ʌUf4xSaF +3 +zOQWQз20]>Z]2J vsEƌ8ʌFʌf3Ff2%PaFѾcw`(LQUfԗ<ƌ fGZ1;ZeF3#1`u7fVU\^(}/*Q + +증߈`s|bwC;QP_@B+%JaX%JA +QU`Ɉ`7%@VJٹF`[6Mfx!ĈR43`wvVUPX%JT< S( +HҀJ3x񦨯)t57EΛq7qHVMf›b`) Mq2x ()8mdSk)1MxSNz^)hT Dv pT›p݁VIoy iVvܧb4 gL^ШҨ(Np +=QA +zsP۾QCZOB8T:+ +{J3*4*L**Ѩh2Fxe)xS<)›6hʛbme)}MʛԦ@Aƛ(i7 )n Ԡo6ͯś*Cƛ綔zUjz5Nh( *5 +nPQl9TjQ3_FA*5OB"gFA$5 +3mSucuK)XGFݗ:F15 +xXƶe!ݹZx=* +.Ɍ -_;s3q\(̮\(HW)rƅ{HcKinWƅQ.4RBQPp'}4PH͌ʅBI3r=r\(C1`᷑!UB!U.r`h ~[.}{H]j{Hff^C +BϸPЛ}VPU@ݺ!s\hЪԨ!uh\(N?Å"r… ' TQ0BbRpQFUQQOQd5F=! 5 +3+F)5~;©$FNW= +3pU76BaFjDR(WQpsqʅUp=#?c TcN2PPJ~mhDGgB7vfCD!<<5m mBwofT jӐ<%O@%?vY) xpXJK˓nfW 3n#?OO0ZB~fh!? ? N=B~ %'@*w3A!?c|A AUOyW%?I*'8:%?A$ +#l s'ĕQJ~h#!?1@_ ֶ'*hbН jTn=:u#?MZ٥-|n Ϡ7WQ.cJ~BjW Z) D =F~NO!?O`JdBA; ZoV=Dc)'(,%?A&ӶPKSOp7%Ԩ^j(rtg0,56~͔F3>%?XM-B~"13gC.QpJ~tJ~g}Pm'\EOUngfW3R!?*|)L`;u"B~O|gЛycDDAJ~Ug* >SO6J~wR3xWf%*䧏9F~"g%?;)dmgC ln'0#?񰐟PROJ~Sĩoo5G\%?Jt;L'GB~Ob,kM#?UO' hA!?m]B~bdP3HuCMB~!t\hڂ)]\h uvTgBpA +zzgtil aZsKUVyie(u&G=#zP襓%H6nʥSѥlfnĭRtMgxlzͶL3ݒ|RAl6d 0)Uh{l \1~alj>WkzZaKU!Ts{0TV)8<!%IJ Q<3}R(rP),V_qV[ +Ƀ1.|tk=m`;kX!pnx-b\mUe54Iԃ +(\4 2+͉[nVUɿH3Hj-q0&/k hwH !322>}ƠN'pzpLb] %3D̖2KF 6|hCuO!y sO@F)5k<f6*,Lmrh{gNlScg|G{QyW5 W+i!/V!B=qʲ D4۰V.G|Nv4HN,k=P,$-8(8<0Uake 4Rr5>vuNADe 5zZPkWlHU"YU7;Av[]CUkF#] r/gdsT4|p#gǰ`9tk=Â]ܼZ6fk 9{l$M[%7̹ܲ┥lD˰b0FmDJi?NbQ|z- 5FƾUIFd=zNq'u; IXE D>ܺM յNűV6Y\fuuv|Uܤ u5'$Οܠߦg kCes0 X` |d+ٰ(y9,Y/GBdl$ 5YjZ7xoI42P僟s\SfiZTqlRtWԺyuen+732tզӝBhӼD T +V,Uڕ1AXMI_ +*, fWygn:3gQtXBf,!=b~6\f.)Chƀs/jZQ+v0lH3m^Wy rrNFG*6_ dr j6=0zzqr5 =4A0d"&$@%aNV|SX\a[E.2l3SXM cp(F癶n^fVK9/{Y~??Պ|:,m5za5H\a ưo.LIϛ q0z "tX/^i?Cnȁ洿7Ov jeojfV#y^&U}F)νw%1!Yǚ.%yKyJS t^FkV$\tDqU4N!TUxcY?4zp VI +Ĩ^laI8iInF) ӛn܉P_L<+7A&pק*a +5TU +u{^z=TU*W[`B +UT +[Q +*4 +Q*Ac|ФDǠ + (pH +-jT*P*T735^B뾟+ +m:uA.yMlڒ hi+[xyjrۑAov0P`]ʦ ,NiBҲtb"m9B'AږXxXzi(uΊ$&e!SzRjun#U1Oa-.S95u!;jYT2fO⊋u SY{gM[E{a| +Vk Is(=B}"!f658w@.f6mhmvgݪ .R6P&Η ؉@n )P sn\*sT6!Z ۡSа&20;8*L8SVnM0x@,L]͊lGMbSŪ'٧.`)d;ݻWȊF3a~FI +Y')Q(P:xK0ggPUIC(;Od- M6x*S}:ne +`+Y!0a9 50(@:;]B뾞+^I T2^I=úgQ0xRC +p/n^I F8 + 8 t N1Np΀^I3Jy@4HF?x/0aYF@3<+z>)gVvMtn7"AΥlWTOaW-Y͙,)VcŭUM!ll3vo#ƐJz*kі՛TD#Lty"Ш#i_f1wP36+W^)V,xpKb2ƶt: h=%C\&:_`?`s=Q ׀ +Y8efýPL6Թ~>5v̰/@ ""`n|."*)fG .3ڞJΛL^NbÃ[zS)NR=G}E- U jeBn\8e-Gyc^]Z0eddz;a`HW?w +e /Ϛg T2Lt(RP(zIduy3HWPq8et@5j雃#ϕǯ0XlkreEDoztIZft D3/v ,y-!jls\FЕ5hZٛw hmWGekh]hh*ڮmWINۮ}H WV Pn`V0kf!(ii$%r +icVmܽSG>\ 4IÛeU檡jh7W UCsռhc`0WslAĂjsEl hlS5-u t)eU檣j6Z}ڡf?ʄ0ӼZ5CۡfcY+ g!R hKvhS'9%2]U߯͐)a+`(ZB&c!$h% _KnSW:f`Cnq@& zq!3^5<=դup`Uxٺsཾ7K)9j!9[wTBj61+V*Fb bUqHagX#Wp8Զyh +D*Euq+.UA+F[,e/^XT/)/n="nb:% íوQ#WG]@mAD+SYyLPuܢjȼj%lVFA5nJp)yT#\1ߐK($?d1D! -* hd6|NB֒t"tѢy%aW(&Q_%Bdm\vlw0,劋vjyI7d! 4%@s`j:4WLX<@n Zfۉ LG`O˸AK^!Ms]a}6@9v 6}$خw:dᣪO5@fuk_js |kngX#p"2QOVΦ=3zڸN rXzidXx +u*6-ǎzaZƎ=Xr,+VbEXv82|A@[`+NѸ̂kX&LF\7Rtùb5iE0G _cn-1BOdmlK4tkv+_AF9ԀӳDkխL-󆞺[MbW'%Qj9iN%ZT*. HzȻO ƭb i!gP<<#VE`G?Giv«QkG+$W{N!A&LY^+\"ݵBg ^rDjJqdؤl| &،6:Rv$'q%L +v|"eװ"T@$7B%ݦ" v_rP}'ͷ9}8S# <)|*Tb[}b9w +T p$tlk#&iOԷ"C;Ma> OîR(G}Z@qێpkP١@ &SkS+[S+ΎWLmᩲs2ґFV{bM6u2VtW jWe~Aumr(6NLjNecCe+/c$%Yk#NӊŔ h잭R"Ul+U'c +69:;$2!Yɮ_9ں@n3Wx 7(rH je1j(smwQо",W -Xn{Lۚ<ã,S!(zыO{-sǁ0#<8V3 }0v~U%2}dO _Bc&TEќ T>L~ UFM2YJQ^L ?V1ےZ?B~xl +Cg@ԝyQZ w +!Kn5Aj/)(YI+ѳ;#Jֻ lS83]|Y. ! (:dU°)lwTZN(b²-1@ށش www"%^[u+h9꒻m$ ]R(Lo92˚2(VqymRVnQ~Mw"w4NOH;q|\; EKPD.e8qO0uQf V ahאT Тa3(n¿@0jFb:-/qPlGICP8 CJx°+I6!@{Iθ֐PdJ9ds^e lmJ.BS`͞+ِ0C(Vnv@}Ҝ;X`o @l{qwpjZ=n f +7BcL}q2o HSϙ! D)pR9Hb22]34É0ozFkf'z?%'25Mqie~$s]ֆUd$Mz⪾&9=u}Jժ|cc(%Mah1ۡΟTZS]7'{/,&W6o͹! *B9# +$]ۗ 'ǵj٠JTTjp\L4#_cLt,n1O [s|N(FAXAE`&bCsL Z,ؐ4\/D]<$ͧZqf]ϊʄƨ@,VY$Dm1YeXt"@Of_ΘS0V"i; rT^BSLܝ,CԔCޭ lAm-60kXzD2l]r`ŕ$azc!T w(=:>7lqq7Ў|TБ ڀqgiqfu=1v%k׊%(8TUscd,P8""Q2Ժ%M%nR&_KVRH(LS;bd +X8ZLdi7B'@|tߦ s;$CMIkFd(ZwC.gP+WϽ<= aU0FNJ՛ީ$P$x\ +VYBs|ͭy|%ppʹG&0yh +D5j#gϵc|֢D.;Y]ˇ2Q!/ٰkȢuxA VlEg7ͫ< +N|uO2Ԛf"UCd;ج%;׍%[<,<_ʼe僶XBPkR(ݴtnzt 8j;]42VX= fʃQ$P\Y GQH=`EK,` @:5$]"wy+ lREa6Ҫsi$GWT74aK%"P]Eo_lMdP+CXfȏ2"  N 'C)wrORD#`n TˬfF!(g%wv9ꁳ'{ /;fo*QBZ"|OA_jT TjjU;yB0l֦ Y8`$0l h=_Bܝm` 56+YG֩ #vaY' 4 ᨆ$Dޓi1efehY1R͋^@W+XGNH ȪD62-2PPVv._򆪣m" HAhBg[Y6zr S5c):kIΚlG@i\P*[)l{=$Y{2OSٴ e+jOȦxZK~ѓĨlHX  +.XNg/ݵLo8et<`D6[*`D6!Oln),VVEf9 ʰb&6k1؆֔i%>1ĪBr8PbN +Hrбu3%> Pix}^vUd=zXAD TiTOm}]ʠOͮᢀғt7MI`|Cn*84iY CoFN|ԫ͓|7Ug\cNpp0GѢT|"FHZCe0^4A&;`ɕNaQX=dD^ͩeTvPQO^LIC.Zf'P+T:&ᕼe{vejݙ+̮«6wԼ`4ԷKh[ ;z6,s@eC_t|#-9}Pj7=_yVyxz5Ⱦ57Up:7R%(_[>:[ g֬e۪9A-Ě:eLrŊUXdX₵@5fe) +ZV}_2>EfTqWAek9+|k2Hrl]cP^ƚ2HXCo ctQWW#q` *hheTD P?̓9+h:+8lF5F$&&e#XIqeĉH@E2LHVuf˶$CRă`R$WQrV#_H]k +#+Nf?`{0F_$_3O[7P]CGM[,KJ>WVg."Ib3ݕ$>+NTIE.2JQ8rrs /C|!Y4<qj&-BwE$/!ZI*XJ +=Ιvu2,g>,(@o3fezl*)tZneJ\9"zٽmJI0Љ+[GΚSm5#/fl/e"v4КPD@T4Mk +aa 9+*&" $. E$Sxh\#G1 +79apzP'):-kDG7N[Z'JU^%kζO+,<æyc]=ɚ2s]L=Cڭ*WpKQeX{CFSdFRb X%Q*DKt3Ч` )]ly֑]Iw^BVt8sijŃ66vrl)ʁZ! ~ e/A˖1.P)jR=nS +f3Z7dU,&eUIcjI9#Rǁ3vuó L%=8%yov&G@½BR&<DlUD7v]OٔdTZ%l,+!KNM6ɷ`5l3&kP{$!eOlzH\70ٖ7lA# OSN N=%Mi> OMC}H6)A+dy4Ρjjl6n2 +ƴdxlܡtdѲxcuP2:hb!lθ&Ɗ3]iV ]wm8SPkGwEe6#Kv+l|\O9XL[lt"]u '-ԇ(l;| 9b"C Xfܷ`Ղ=!8JQ +ȎV)-#]p KR +sqCYP+CH۔13N[c@\*1L 4U^2ɶX j00 兙WªK9D1Q! { 2k@%q "..(rnѾmb:d #yaRF#/-G + G 32:# j#n S~ J=,1D0]S%AƆͼ$ RF ވWLw.BV8~t/3b|=2Fp %LU$% uIPc6ĢIeuk %/;Jq. +,\IAҲ5%Knv@ҜW% er7KҺ98r}Iؐa3C]s2!KN$K$h-f-#ݍ,Cwp[>^zSwŜO{޿٧~vΧz1 +7۶Ÿ<ߝԛH}~mŔn:>߾~6}շ߄[jW__>n7lR (+zo6Q>\7%P>~MOw Qyv޷d7oٛ顿oއ43.Շ{1=te0lgs]~ޙ?\?'mZEx/A, OC!)8H9zJ-i:lSqfMcī\{ՏMj\TAP-ܖ7v!^toqWb4iWdVi7M]vw;m#߿~{0hiK82_s_nR[$~wA|N} >z3yk4o/& [75˻}}}GSb@ٿ sV6v0t$ŗCܝ:)ɭ'R'QuUKş<2P-,ms٣ aoks}_v^3Fs7G=Hz9 =oMgyu)UkR獯RR8nzvH}{Rygd]'N+Pu=ocMz`gWWK5]{.TP{FZv׫k5]/Ee*Xo_߶]Z g$rjRI1 $9sސ|:@Ejbλ^]Te5b^>)2D +al|U'sC|=˙1!rࣷIfY[-'FṲ̈́Q7ǔ +y2*܍>tc qyƮw1ԧL[b}YFf|2JJZ^F)}vv$S|~'u}8!W ^QQ -3`jjTY6TTRv5O]T߹`uB(k'uQ hUF9F<#?G]󻎛ڒ얨^m8})4=CʜJ3ڳ:b<7{fWVvٜ\-\b^{=׌}UKi%k}NOKd$zf{ۼ~Xl~D_d(JZy 9z>p/6?boϧ(sOp9?|b"!"fN6"yjc\ޝ/0џbmiI/2r+oL+^Gg_>᤿2v.D^Tן/*ҝa+7.}+%MnlwyݠGmp=w/|=|S-s MhR!Hg(y]5,.9vbTaz<\lP=d,=#3pHȌ|ٗaeb }Y̗pfA$teO %t/O8Fp˧8Fe|1e|A8p_/_/^>a6ogu/ +¿ys=r>xL3{{qus, =˾)Va0=w||6 +U=h~̾+C?38Y }ggI;ʍ4ٞҴ[?y a0$e{aāx?T +endstream endobj 423 0 obj <> endobj 268 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*43Sp + +endstream endobj 266 0 obj <>>> endobj 424 0 obj <>/Filter /FlateDecode /Length 2918 >> +stream +xZo]Gw*$p M!ATURJVQ#T6KVE]R*$*meU++̝sb#Y9g~g|^i8_!^3yy׼ o^2Yk](ҝ]icC{k"\V3#-Sٽ3b{qBV~^1鷞{6X^wcI.VJr$Wfi7fajb{m)l>lm^Vj%0ݳȬSe>:6o6'6_Om޾G`w©\}6Q1?}}R3l3}!L56h Lɭ7$S flsҸz|vW +a0 +]mJd"jl=k L;ݹcl_2l89=\ |L2@I92ř^`uhe^g}ocoPTeVfKS6zo9t+JKim}ЧA͙;݌Te8:[i=ss&4soZ7϶rRCcէQי7^*vY[5= +E$IMr;HZ)'f}1۝egzǒض^ 1C J|YIGtOa$,_Mw\sЎɀ )RC0q.y􆎣F#3>ǝ{bP%69՟!}};-1=9(}o4IpqR!qy8Ggr7HS?޻~Gт}Ľyqs ӱh%\Gz'%.; *K^ +*s Gz݉pOU}B5s&n2GRH8VzX7JftEc +Ħv3YKYcXYb(@V0c}[f d^EdK$T n|KƊ-؞6GGo;@ﮐUxD؁  x׭1zW΅CZWos9ܡfn=poful|4B]%UiZU +б ֶildalaW'MӶqW6(c,ɬsEݸgV{,:֯gqoY:/FQ$]gG'E=E +bgq/3[ #xaQp+q:8K=!l9i6 )?A82+[;uӕ "@|oм6,oZI2Q8mRL +8/+\Ϛ(iAL"51$Ӿu/GNTjbW{5޹h`*1 Z.\15Vx,d`4س~ا5DVTNܤcTttLdbmPWיBePHyR$ny°d`*Y;MtfwS<y- i:h魳#^יd0kS~t/,V*g⁋@",38Tk><`Vʃ.sXhk QOJUK4Î[oҡF.,R..⨮^P6x 2~K}^ JVw*HQ>z cI*4Q]iA$9yC!/-)Oˠv9iY7[~#xb 7[⩒F<DzT@QZ +5PN9Wj\.uJ{E˵VJKqibY/m9Y/\]k +r +&Wh>~ K. ,c@< ,4JΎx~@OsqOx'~pSo-NT~}y,n AuL}L{ťA\%N5 2I\Y[K$:>&ۍD>ǖɥ4QeV)u#޲%xJ݈,ӻ%x`W5K5PN&/_9簄+ɴE9R؊kyX),c8L.?7 W?J-Q f fu du%1 qbw%>ؾ We)8KoY4Nb@Zƀuv;Y]zEo: xVzꪟաEܸY1N&R5cL[5,bUA+og#@#aqMB㚶F5 5X3;z -%\&b4G8u6~O P +l%~m`EU1M[ w[WgҐOSr*Qq'N)vꯦҼs6돗6n!X{s_e +endstream endobj 425 0 obj <> endobj 264 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*43Up + +endstream endobj 262 0 obj <>>> endobj 426 0 obj <>/Filter /FlateDecode /Length 4386 >> +stream +x\]]u{{Ol,)ǒ#lM\۲ec\9[]?'18o)n1-Ph!$l18%ykiR$4P(ZZ>WW4Ykf֬Yk>~}*ZɅ_<1}eD9/6}b J?5&BhٵJ/Z޸VkFno϶^n*u Aa7S_Э{,BT/%dxR´87mT.fyl1!6-B>Ng +yb)zJl_۠͝o)K@!ȗN7lͤxu'4i}+l}dYq4gKDIԽehNG`#ϷyOg>sh>FsDOsG~)6_6 d8۹2 s 4M/El(s;|@E&'z8Key?Y_<|w0k{E.py,=ʶJ|NRIݜ,Slm!l.]U8jLgʇ1#`L(3/I_}Uc5ep1<4x>Sp+4m?>f9,gtBpȱI+f"UxGK5lmX{0_X^321~NCTnߦ6\K687d-*/` ]1ݎT@}-En$A΅=KmNO1? $lAl鼰)?Ӥ`94؄V`VLU@ ]z" +t!_i{ⓨ Júi%Mӧa0ao/K@'*( ((Τ9 ?vKК>X\pL" +ly0*cXh,+ 3UAa\6%zŠ(3"5㍏tbFC.O$`"q +ʸ1xpfxFKcKU3Xb4Fz,:+[e0j/tʻ>҃]䳽3=,9ފ N|(7ԭ3qb'`ϝoObdgNZ>F(4 |^^h.Gx.L{W82슧bCFO0 v5|jO(8mhdtZr^~o50m Ñ \ic}CQ`Is%'9p)4n) qD<@ijTl~vا4+nf.\XoK #-8kqnY#5/;;YX]-KBdu>F<@]#( +#Γ"c4"0aWBߤ]_) !_&/1Y>f!+.bu+EɢK&9r*c!bJ#;faUb~hgtw!7//e pC2^9܂Dxʜ;+Rr‹$&hb? 7Y*?_,{NBYciJS:1kO2?qݾv^I}02ڧ|Qtz:fr6Y}M+ȿ3W6H {L+Yh}yxΠ/?\`r!nnTv0M;JA aS%%?Fb,H@BPRN=H/3 M\fN|kq5[~"C}Adm.̗ 2JIOXGoF7t[-ٺ%يw5p!aqXv w"[ܨ;aW~χ'?NRc6>fxfd)I|Nl3or)XmY4cFO2G㓡 gy] j#sNU@3Ud +^tta8U@,'|PR$1מe&[Zdlvq2;Zd|z^`r+L\~+J .)B 0RF'iuQ <=}QP%~'G6z'V,~F\6pMc38}15fjr._vrfɌ-E|-W)8軘hӃDvw{7pO>7ы %>7s6=1en"KKMd3#%ŻLn}V&k9_Ȑ扏Sȩ*ip˩.@bm̜M) Ͻkꁹ/_TT>2fc>uɲ\eLy= +aDIkdz}t Www%ZbsxR0WLz!+S9~g4" >-O60kYA+,~m1 /Ql.dDŽ9Շx?e7yٓ W썉> :I?xӧ'7pہ|&_|}Wu`gXe\~LmƄ (*  +5brF2v BuudxD560pAŌG M8# d?.{bA\0wApL{0 +>p<[!m,JZ QM䳶^?T5?7ܛ +q p~ S~.Sw5*q*`Y>_d5sy]jUBh#0O ΗΦ v2W;ӄ'ƒ +<GP +8f$qXZd ~^ӛ6l`>6aJ3}`K8C+c8?)k5C"pU2`FL8]2秊ßjgp~ q +2p<(7xƣ䋾 +j-P *+|P'ba2<ADT 4V!3Z2p4ф-  Ȃr @:f-d:-^^dܢkW;- +wC ǃQ5E%>x䋱 sT\&qU\~䠿C-Ӷ_.&[p܊|W0;;ϫJ>kt 1x +;W뻟9I}[,vvny$8aKTE)gQu!\guSͮtͽT+}b“q> gvCY'&L|ie U8VBƒqgǝ YwWQ#jsߎ9xb-[:)pY=D/Du Mmq4.(QXbw> endobj 260 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*43Qp + +endstream endobj 258 0 obj <>>> endobj 428 0 obj <>/Filter /FlateDecode /Length 285896 >> +stream +xuP\A{p : 3h<w5A;Cp<>ﭭnVښ9ӧog}oG .Ll8Z_D@?.p2Fdi-]_kzc ,Tv|/GׯbV>:; E$5p*_rY ``{ >]BDt)|O>ƴCT0cnqeH1p&_^l>ԌbN,w1l=(2VeF ikPLUҎ>BL|GJGUdNA? z8UF;ysyw}B2ْQd:e E$TVx2ÊN+/7Sk+˜ðNx8qM~eYl)*{M NOwGul)O,7\+W;M +M9.wW;C&^U m[gW :?j|,yZi~aMaIP@fe*a!Jù 'O)Y242W S-LʼȘ:8@A_VNԐN+ MA,JY*fTI74#Hsemr|IspT[T|f1 !xՔYUsD>jañ$}nױ>Q-{TrM >b*q ՟|P ̙B}rod7LE7.ePd%3|z钶8ϦN9CK>ʯne<>«[]WCj/_Dt2# tD#e+[XneQأH*Ce 5ĬYsyW ;ttr6BT*qKт^# $f~Q5%f +zmtAΚ./MX[zflyUY!=./݂UK6qˡp8?JoAre?7؏e<սuJޤ@~gItg. ߟ]$+̘a6hGMGKuz2TFhX$Rx$NEqӹmM)xrUӑF=gէ8aR4Q̽FƲ!T lnֶ{StqD" #s/ҩ~2 bU_x +wjU^ ř,%<úzoAP,daGo[VU%\>d3"jj \T.˅UU?KbpVB!lEW:^~6G{)_&iKy3䳖dװj~v~2ڞzxh'^rp6_]&Ƴr.ŢsVK]9S _갧|~=&f#xL>0[ ?@'d E!NˌwXX2Nj23V^q.YcTա&\yL_^ /$k=gO8ɋ(\şPT$Aw,˚V] +Sj$#V|95#JC+ +µA]KkF 5|qf JfWCiiRz{w eS鿩a}'p~ ]/vh^JVRG/L*fH$7PzRyh/2*Ղ)馹rr^qsf[fyʓJ 1 +}Cg/64k l\7v ;RRQmALăQv_ܩU 6p" y-mN{)卑L?xkފpdް#K& +G|&"@!6TE󄯢R7>x 藁;yNF]~r#fJz3<}yr",n}rVqj=>rsLJY]*:\ AOr;Cw)٩҂9x;d! j7s?v&Vm Gfv#.osW3 !K1—qŵywY/fG#AN6Om[FcL^NHNi:PD9Y3qg; =OuI>tqQ`y:lF{`n9Q`25?e>xҡ?AtQ'z+Z*Ҷ_,,yV8+}<!J{ +:i GD97Wb'ۍ|k z#3 x0ą@;ԅ/DE}pRS'L sD*s9p"aHiڧpk?tV[00Qs^᚟UMℵ\2Ipk? p3ܛKaKnh$DT~r|rYtLwRGv%D佴먎",ⴡuZ?c`0K,@j)?࿫Gp}˗Ə]JnS_cP_^ \tzKw^[zLZ6y$ԙL9vdxUeL_XJji?^jcZDtt禽L|CwwVf3rM|t]|zٹȯC,!ᒼRz.r(I扃{9j0S7z|0d=F9rI96Q + ݔ(j2#=kt0կ YSw"~#vsoA57 ؊EaunVvyU)tTb1G/ApiþvwO]lOm\eƯ3b YYkMH;3ίUdG-h/EiHMZmTsqyi,wG3oJet1iMk2r2W0&.G ަl>L;f烐҈k}g/yO/ Gw6쯮=<)c4yT?f}5u=zӍy}Hw|)"j44~c\G"TeV]j1@XaCxЪ٧؟r<1=pDhcdrv-ξNp)|2N +?|AƙT'Vb$Ď@Vӈ.L%dž1ǚ/lKTq +4|aOn²%`TLtob#3@o]gyi+t +S6b[CB]5d"d`xcO~1Xs\N.*~~2әouVw#XZW4ʛk1S][z+lݮ.pPR2Ď^Z&c۽[(ȭg}ٮ9݇kEީ ?Yx~~5M(L]59kk^>J bj\ AYN"I c{dMm#vku+s$qSIu{*ذ8/[ҡb)&*CY?So6#M]>]wiG*)6/3-F+o |OQ:/~цavCEGq*$RGv(¯dL河 cv!;9bwpE~0b7E:t~HEh 13ۡ[j{M_ؙx{]GpkhhK4L&驩Y'tI '&n=t>mDѱ(ݱq/Ux{Zyrš[*9FyxlUS|-5gtIϰ4 !YJ >ϐĊ2Zō٬j/!s̥+4Y +#fn +xC0HR͊kب܊ٍrOG?k Ld zM&ׅ}.8eB:|/M *|⥣igW>60b,\*`_}&N=IFcG;=M/I4fH&l`cYd|9fMcX pf*{/ 5mp X2@޿)d Խ\v+wfKA0"_^"W,(L9QYcv.;yJ(CHg&=6F05(ݹw|}̹ +:8&%O{i + 2"wxepWC;W[[nf<kgmtiXG<7NV]gطRQjp3郵皽%#Z*JE)e%G95 6.?K>y meoW8XngʸU Hzwψ Xg%י0^vptśOjrexae˗cFkUP!褼yثsc6ڿ>J q(IIK ա e*o]} ?E|HA28kFj=R:鳲jЭ~/_E׀u3éW@﫯#3.ގ@NKŻx*V[`#F[·g$cAXDwD9{0oH)KcHBF!|8[!eHJ*&_W~j~aD8LϠ4iS~\Mn愾yF>N!, +\ =m}_G,>730w*|2fOXq˪M48z<0\"waL1 Oze$9ןһVԑ,i9WWTTh34CFb\1/@N~bTR-L`\Pahmd%7]w*r<{s庱Rxq(s:XW.Dph7^ +&7po24hl2//Rq̒NM|}}OzNq̍,?x"*>\#K͌gBՌyp%ba$U^;_oiUo>\?y"d}̩;Zd}ys(N;X~v6т_xrb a(2~u%sq<}%T-L&ttZiז @BjM%g{:|LsiY=='}iXɱ/I<: +PO;IzS)fne vK 0&n`(T 31<`FhXJ<rMs{[Y 0};ʩ»=3d-'{gf.ǺBȏsoHbֆSjvx}JCZ5?l:V衳0r5km9/`JSPr1RIB"2He;eЛxؠHɌ9a[Gէʸ Z=ZX 1A8Y oCS\aVrQpF`d>bWUN(1<€ym@q\ #fݱ2tJǤĻV az7E,ɸiiѤ%1f!xN%3vL.jDhk<niQPQoT+Bv8^˟8Eu37dӷz^̋$An07VWπmMP|ZJDžІu˭KjO^rG.Ȭ2_4iتwJ|VL{&= /rU+ǞU#:|ur67]&OgY9P=Kd1C7*^#;F 4*`)C /!4OC_~2ݵ|q}adZah?BA3 T DIDs⡦J0# Y ؽ:R \x|LIͅM0$;oLa}D`\9}R#Ce. +G/gjOb?Lƀ?b>.HN^ C)R6hV3،ʽr9kuG5h:s '\>S2'UI>]q.Dn_'u@+êFCp`?W`1ht|Hϯmpa fѱu'o9mc$tg86 +0z5ջ(S)p sl @HT1ooݿF ӷLG +ClKk>zk[t%Q?r[]u8]5઄ "JO $YAh,J4Co  ݹIu1 7d-6VmCg6¼ra BctJ$@i7WvC4ѡDž'&5" ۔ tu.LjM׶^-١WQZ)U?^#ܓ(JZjfM" M5hBXw~2}o +!I '9$#`|c$.#GoQ I>\qOpj;DJ_H O):s=p)75¿ (3;/p4F>6; W$i<9e+*eN^^PkK'3hP VjZ2.J10ڞJ{^ld,:EpÛIm40E@DC0s͛BFPޢV6Mj+٩IVEh&\Q*[]M+ lgy7;q7a3C C!Lw.& +HD8 +) ׬eb4VHRx˸y&{hpH?)ĥzMn%.}9 mYZʢ1TinYO+( CB=þli +ܜѓVͷF)gԉMZZr~y4w-фw$(9S=3K)>ojh[UL Fi9CįD𑵘ΆI)_uF攦z3̉~n.%%/Jܘa,!RƉؼUULNRRB <:tۖPu۹bI!H6roe_gJLוK]*b :TU8 )YHS0Uy06^,mlmw0-&ktsۊD轗ʍ'{Z}y_vߛ\huf+7ٵ4 cַ s21vc7-#݅p>M'%G(|>oۧ]]c#+H|Ƃ ":¤О]'Wrhz4 i?^ҝz9[\{bnJzh`NٓAzX༾'ܙo8vyPl o=͐P +QGB&>QU  Y$+i[\sB>a͛^'@ .@a0o}Ri%FEeHt2aRJl&n&m(&xu9ղJz&̷LwP}Q|l#:%GWDОWA+C{P}7f`%z&'-?n k81̨زz@Dpj+ʧUEoIipƖgrth=Ӛ놴& y+a ̖c̸L<'i Lq(}QA~iM)ёK1)"÷QUaU[Wc5ب O6+&iρ%BQNlpEV>dAa8ΩpY\ #i~dTHc»9>p>PC:DPnuS |UO>8L$8oER]q14,{}ֲAeZ86}M٩epmA|\$t4~VcfN];ˋBf(l/}x J}G_vMBl|NJ"JCBϔr#s"A _5 qy2u +:lͦ9]6Z1K#w&t0TvOS;e jة `u\6^ +HDQ8!T/{.˗p 뛖hn_8yh<|HߨNI[{h?oj{릕tZR7 $G}g_(?7 42_W~꥞%WLC=Q \F~| ¨ש[eǔToI{]L*Adr59A_z[:g_"ϭ*󽢬%"H-c#^nԸŁ\ݘwV%2p+}^ RJ?-\.0R7ӓ98' SeAE}*.S"1׋϶!Wc9Z^1+^8aU֣wmկ~cEiCRr"L'#m^4eU+eɝV=+C:x) Պ7Z2_9-) vy?/%XgmJ:Q%ZfEzaVrYQ#(=MsI5W&IٶiBnַgc +#uن^sEFi?8Nd6 2+#6ŝ-EzJ_- n#q|#F05^PI&nUWKT"ݙ@s'OQ9mHERD9w.^Ώ0|m&N~WuH3N=@d 7-'Ň'M(^ͼxZ4|K'94d)(h~Sw<:>TUZ˜@gȅ^$03fMt$-!}1EZuSlx\Y'M5b4' 2Ng^V2'`fj(\?V~ӉP`B&7o}K}9!攲#m.=ԥ#/=&QL0n$<,U2z-@qzHmOKsW7+[Ƨ&" +Pn5TnKnCXU?}Yr)Ԓ[yqgFyJ(|— Xvc_ccr<M`[r42,."sg +(_IjQ_Xڢ#Y,Q0ӿY'OoX29Bd"'+[E]o8wJܖ_6:7gXhşHىa;|&}t<//DҴ$f%턗zY4neG~Ր &Ya ꎻ{y F(?*565to6AE) +%v O\!Qז lG^j**DT,Uxė MAmTZ횖-+[Iiݟ|J c?nN{(ONs|)^+?B٣l2LI%eԥaPBU;R*YmL#9^ g&:3 x T(׹s̘yԄ[d)un,!qwiǖ&&1}ϓ)CqFSv#qc([KMԔ$XS=Y TV,Uߥii BG`\Ȇ1M JaqKSb=AMܭ- yp\Bd{%wWhߨi>z}˺)yOp5 `!&D//odCh22,i1mB=75ٳe6L_;ć"p4(T hrf~mSdudۓm^_6`Yj͕'$ͧaKǪ3ƣGY昬s-W)+S'(ja%i=;ߣ3?Yj<ĬJ?R%drPKvQa\UaeGJwdB"^g3ۛ{Ok=*{ Dl#Er'R\(DPE/+m(St^MTʋݢ 8޿M\cWGJ ])"J 56 AT6Ғ4)sxdYHbDÛ"""okH4%Q魖?V6s31KT 2'ʮ7TR_]^iжpm'~OLUe-B~/SM>Na%;(pb3rũY3}VK WJk;]$G29T셝}q\ +V +ņ! jʐf݄kz +p%" q9DsޛZhrAdCwQC(W;"0ő썹1E]>1̮b~i\C/ԟ-Q#l Q쐔s\L|!NV:1+zx5lyi"ւ9GjVfgq FU엞On7CUG +(#&?b&a?7& U5DMϧ~7mαyaOZ>WO{}{ Yf x$U.Y6fGQQVȪ)d-#A5 zDd}c׃Om'vm?%kw$|3]qk;t}l[RhMyṕ[y#d<;}xva8uu l'9usB+ϛYWFƏ +q)BGj,'LW'^+p?1 (՟6Oլ1fm࠭Sqj2i^|l$_#¢$}.=ZT`(b7-vPE9kLSM@}fi$ɍStL0"sq6لi0DEop+K{ocNnw=Y?T<;LW.K+" ǖE9@$_MTW=a uw؜c㽼 ZDyygC̆Iͣ^"ѥ}g0zב88TS@בrVwWcP+$#_)ItR7VSRDNqҌ|(,LWvzq:ܤWzӉ _ɚn7ga-ָ<*\><]?Gvuz;sQ$\RafG7}~y @fGj(%߂2&$h}FsY3=NlRgNtn83-(XYt>i:|,q$ Ř# ێ0svYA_gbSY|{-4'I{*d-pCūG!ߖj"ڡ/a +q1~P"e{q?Xc)?W01'F7 myLXpp,< + BX~8JN?sph:r:jpK]ԇ[څ͂IgJu(XlwlA'Spd/rҧOq(ձv^LrD9Q$ (Α'k݄%B r}/ﻭl/:;8=7]^}7Sxy׏@\uhPuNn Y+w&"B=4T- +exE:Ou}O]SpՍmK>>nPQ襫]:mHJ!N\b"kCx/%Fpcn +AȎD K.x?)Z6%e!]QB(uZ, Z1S" +~`2$IcOh[!*CpОEvh0Nz!ׂvHȶAW;Tf+5+QƓVo*9DʧZB]R .fѧ K +FQ%HHgnpˆΜ=zȓo 6DʎK*t8:Tk<|(ɍ_' Hq1tlKŰ䈍ZUV!$uoU=Q|) ѓGJ +.>"foE:q {zliX2i\c"ufϡдx&̱3J@B%ɠQ4tND=UZ7͘Rm1tY22ev5hUsT2^{B3r^2gTzX{y$3uǶV }҆aT(,;΀t"Qm, \31;^Ab3x|rzxIoTYfK$Daӻ/yx<z? z"Ӌh%DH5Фv39G;F1 d20^gO{ED-j˽z{\}x0hv|S@a c"d7Y/$rSwSeiC$33}3 ry0ƟJw-#tf֨Z9{ +XTcysp4*2VD8H=T(ƭ>`˘~(Q Rw$G{m9x<^[7h5C3F=C/C+onC =`!G9Ƽłdw~}#E_CQ^/=EfT(^2c"%mlo7\ Ju/>l;l]~sN/1|+gg+YYboE?C@A&z4aqu` Əyڬ] B+2Ѧ OY9zCuέO:.uX8[~{UIY{,p/փ`{ã )U,}#Cg7>?ۑjG“>TIDёk17jZ]z!͞ +!!{ c*9o2UrL3儳/+5muV eeCWIhӯ*}:q(УSM+:kQ}A`qyzulk]"xq1aŻ៙@ijZ,@am$bRܟHh,6ҘZtusJQ1KA#p5)ݗle( 8;@aJBU&nO ܳJ4#ʋ$I Xܑax6g;\v{p,m R܁y11y+TU*meϗ<}|d`!Q +[zyq>kNRNlKUF ,{+IVEؾRIf2coAg5#V`=ԣ=țf5" t0[kLL6=Izz0Q/f@o/.iEͻE،1;Jvp!<+3Sȕ,` ޲8Xj^ަ /"kA ,I͞j)r[aK(x]#I# =N#BR+.U, +';8gh&6%?{߉xQE) s">} jS55B]:i(bu Z\cǙ{z\܋*M-ߤ?wkυ-'2㓕x!C&F]}ԋkH巵?"s#>G"s;wO>P+:ho8ʩ)xؼ<>TJy]+c7Ӳ^2ȵaF@܈Ldfb(eӅsѸ 3=Ap&Ն-ύDŊ6G''iV&?%WLN+OEY,]WO[`,mڥM"K;Bh!ĥ+)`񨥋6w^C#O.z$FcR]ZU;ƆU"vV.ko٤GeT!nXhuW^6O%~bEi3iW)L1<6ή`r{WKp2Xހ +UIY/MDFb^ G}z +*Fd{L{rJko`X!cRӝ?`?Y!W{{)s;nIr{:74j#2H mٽŋu Ls/rDNw-Ʀx*nxͶz@%c&Zn// .{vAi,Fc^7:E4i~aҞ\v@0Yɝ#)G,$GDz/ $wMyo68Qi+6,(8JW!4ӢQ+֭%b*~`^ΜQA`8\,>. Y+fµM뙕W-qk\n]LJGڲ"W)e$/';ڻ;u4$Y9ZXpMEZ&=x%V?u%Tum1UU +VQjXX!b2v +-ǹ!׍gotJN#S=afSA}XRTSV Ӿ1%N1 ǍXM,]5iixm ?ef*d@ C*\[lNa +xmaΑ+ucP-9|yu7}6y<@":epˁ"w<@ti@yOun^2<_ljIJ8UM=S#8D,3PP' ډWŞ: +1ݍ @}Uȭ` +%FQ͑=)wPrKT;F?2. EudhsyE^!ьa6={Mn[v:YUmaB!Tro$XVbaj+=KI҉r'3ڴYzTTsfppD4#Fv2Z)Q#G Ȥ_G2nݝyS$;}0ZA$=-$/GgG/ooOgo=Vx/WS:ncEM 6V8_PS@wۧsosclG9.AvK*L-ʳL"=8Ѿ㑗名&[Y\_zX[aSoDatT^_؀jbO6߲a-JL-8धYaFfO" RHX$򡋲!a rC.BD ꩪrG*~vSWL)Y[!3Xn=ܳTmYfǞb`<IC/z6ƏҪEe~~|/IwnB5Z)?uUm߭7Nc I(* +?pB"P-w~rVPeS(ߥMh&wlM1޷Kdww_ja,Drd$4S̐nZ1ID5`j'v4xyupѓՆCvn~S@@-cO"Țׇ `8C wb<>}jP{ mzXz:-Z}Ź={֮5ny.^3gZ<^*#8nYcqbrr??s-S1rxc ="8s*$PBͣ7\j4=1A 9J;^= Xi ɏU2blTS K_ ~hV OS6 +ub(<ܗM;#Vo4NMB!1CW.YGE)aZtce0#JD|b1^>H +3ƫ-!p%NѵM|@ՆWx';6ܔmDAh'ABEQ E%`v9x'̢b~I22͊ k$!i#cOtz؁<0ȔPU˚\b4cG9$JZv8kiYGۉL6fsEQDrʥz?X6e)1x!ezy]2K$lw/~󌥮' n/T!b8y++]WJ>ك7ڪl뫗 p깘l4b,M͗.@gS.}&;+ξWK^nE107iLR, IM%_QDL,TjxlzYE +ҪEo*̃`DgͮEJHrxj"ʇJqF?wGyxCML!hw5̐ +_\ 㢵S_0TkE^F'AV* L1ߑ.,_R`ſZ'I~@mOEr\З#HzQ!aѤUJ4D4:$ZQ 0Wycho}uF(Z\_Oo EK>F>ߟ7$['rIP:G!M|r'pd=d''ޓ=8WU8Mҝ};mQӰ!1X2;Cߧǿe9^jQڱj0U1c'CvʿCs]wC'aMjq6+~nåz$@W7Wi> B*D +IlrHiɳjúvAg뫋]|Efua~A]r=@-Ym%={ QC:U!x?,:FA’bt?utL""fwۋSɏ/Hr=xP/2o^p8f4Xˇļk6/XPZx#Vtz7$&km?1-kmWs(39pPq-ӶCfTU9WD jleC% us׫ϢX +, SSEHe-lȩY̑iyCUkrZ;Zѣ!Ck鳣ZLܚf6N&TPN`i-!?abG m[nx b{cl<u_ߡ0(WA D!Ld*\>>]=z^ D(D{P'DAJւ]tKDH8 @ X%,FᔔW%WaX6~ [hh&N5R-~15YޥFj*Cc2e~uew@[wKu1yooWWXedJv5fN'˃XE`>Rf,!cmcnpZ ^I7*q)69AuMTb;; m @1%&J +ܟ|GaR('srttqL"j)utwks6~>_*~/uW2l~#OqMO'Y1n<52ӅmT=b1TrLDD߆RRp+w Xf mwkSpjw p>ӳ1 +~huxlmQ6ns Y/YW{ⷿs%: >q'Ġ<\y~JL ]-5;3f(v9(la]!0tq bؚsa 6Xl]KdGˋ]0=9;UspqQ~q¯]Gt~/R_3$k!w@rٝ{!p+u +inEt ib^pкȶ3G>lCw{sI9.ba@_b {9@A}(%9#(2}-$ЎI^uz-LϸFִ.mWHݽtU1a&!obEeo=.L4 +[EF t"KnVցA]J1]ST@$R>r!Da=Its bR*@ir_ +E@62/D冥# 90${ *"D>X+"*HԚ1YTcщ-\QYbdz/Q>ӢhM#A>D/DJjXUAMK8s0B/̈ 4+$relz{ }ӛ0x$OSl߰y !+`YhWpQկ"fTm вEGfli{% YT(iԅHc0vYVn@& Eoe)Fj3 +oLzq$|NX\vc%vZn{~}QC]UcMF{Emf9XuȁĻ͋ 4nBFFi^kuEԞANL=\s 7B+,]q;7|y5s ;!/ ܔ~DYU(,W6[PD!+ekVֶAK؏g Ǖ e,Xظ2W, aOBs T{yaq]Ū(=rPf\:~HMxh"-[j){ N=$x*X{>ܬ>]@fW f -=[i͇H֘UK)s)'Nt3KbѲ^SͽSgm2ϩ:\YHh?=(z$ĜZWWDcW:'pw't(Tj^" dN|sK C&2]mGJ|AdR矈jb2IP +V1˧F#M99II-meotsXdM;3-er.) +bZS~C(35HNy@(9In)kz6#Ox^ U5u'PdEAVH%Z6eK4U2+o>b9ܯ h CTF&GEY;P(NUP KXRTc.W/ M~C&$,U48Ӭ9`{ď;i-f,W3sY|g^"R#KXjxEsq,E== _n@_xvuqq2-HۺzC]@_ Ν5|ARrЀ!bnP솨PAkxu[rq_6h1[$bLl-L>::$1z58~Z{?>)$yJ<\vظ}Pq`e=Yzw~4#GeƸҀ-s.‹ $Rڷqr|XE%5s{+ӏSL+1!s J'ntߵ|v2LȔ#O5Z@COӍ:)5v: + 9 +o*s̤訡x{6Lpig ![>Tk}b/ Mɰw`-yVmy?wT{k wJ +ra^kӾt?ía T\kHyUX}ߤcq-C2!VEmzMzuu,j.o\:x̹ +v aآxBglϱvVxNz` /IZ &W]od 5ƪms|dpͪU@l>}WR34I# ,,2Z=nq{wl9^ 9-,H5 +C:)(uD8}s ޠV  ד#Zf! k.,i-.j=n$&N{#_[B ]LanU眏Sqca%yu?O&^/OǦ W?pozcVk6VR%x .7%,,Ib{@k`ͼCέNn|ۑooF~BDY!x+G +y=oCy^xu.߷2 rq +tnA;z]kXՠ|^^~g74y3i{VǮjšoWgǠOࣘG tIQOy&svEy}}oM[)" dJ`jE :(Ud~c8yl`+Udt)$XsINEQ4/FKe [O"#X2Ș jƫ&.nXun8o iщ*֝Rq Vh|+Z ڵ3@9<)\քK+`t|/bt(IFl(UCp팶ퟳDsYV6P10s!d»kUHCE_H+~ڃyĘC~"J^( $MELK#K>Zr#b"s(- RI "ܥADO]h2"A|y@AiG.d1"P[BEڷ+LJ#p:%%\?~5;J@aK[9WQSGñP`ƹAu9YʝIxk!Y76R2%oVOׅMg<NuX ]0uҧ7K?˵S9(8OJ%næ m@u<;HJ0лpǺ+\lsoi΁¡7䴗(nYhOb,FsįLL4(^qrK>5e͝ZiϼL0yFM(C`-3*Z{2_jm7ӆRm +Ps(R[z{bUgeL==B%T7ܷCO [۳98'CG0<8x.S8W?a~sݙ]g2ԍX;3jckZLv>I|i_dROSUmfV}l6HRD X({В(2X1 Pހ˳ջ}&/0^8K>R5mr9Hz~}7wO/vWě hf#z !jvl"zshBIKjwHx!mrd~~<9_?|:eBѺs-vn8k=ktVNJ4nW*vh{X?Aces⒴/%%>Hp~Ɛ"yj~Y|lI:ANAO%O/ي7$">I.599jBDLlUXBUD'PA{O %ֱ;c! R'ƒtˈx)1X7*9lfLS`?mT3Pp"V2e(5)Phjr9O_Dɷ`l=&5'Ze ~@<]81 _oS"Kʀ,WdgO;ϐR?AND\h15˹ٟ vfqf2QX\9 + +B AD`" vTׇ!1SD<밲J&YN5ni +O͚g釕?xt_;< 4?^]l|1b"WgO63$г1m-l-D-k˸dKh:? TNUc?/ up&@T7܊M 8G֒bp.GQymg0DeJgW5ndl{/pCd7z#7JKdByXЊdgliKZr+ԘF8F1NFI]Sj Ln;vYgvlj +#iP)~_r kd +L{.ɟDP Å T9н`QA%A㟶I8r?n^.--u9KEc -U_zw~O?^sR%9m(vWXbرrǡj':kchzH [|'f"]t#qܬ*+*{8e]@CpF;ݭqwwwwݥ  8Y.?<Un龢[)GT: ug%egWj|cҺova~o %OH_` ĒjcΪy2.}/AlvX #W X62-,,Q}@f ؟Uߋ\`{sֲi_Uzl[YŶ{Og )#4VY +jxTA*8z5R>euGnZ-,Xy>gE>Zʬ; ++Ĥ ]}$Fߝ8ghꄼp: y)̔M62FVFIqQ@D]'tu*G$6JP%'}8B-\ZX5ݨ4 +E>Ebd0!yzaڹNY +/ ꒾'=kD7DǍnSSJpp$>>Lw#FtO&Zj59nM 3QA` g: }9`XEy XP9fLnBL]UlJZj|ħ8 :Fp~1co+BE<"S<<n\pRD(FqD? tuأ"Ǧ듻$'-:dxl& y>u =hhyh|sHo/Uw>^Vbf]Cc&9pP+m.@Iɮ~qLGg4N5<,$_onTC(MQus#&W㔈j?|(MP qU};|#b) d%x4YM3,zaz 55\ 5ԤQ(]CBصOXRɹ1_Wjw%*~K˃ۋEœH$U.9FWG>P_JK]`&S8;W12ҨOxHDLAwGX +K)ǫu`ƦC?UzH # hOhY);R&VvB0 \)āw;%-Z1s.+A >|V:SAqek>v{5覜yE`'<~9u*[᧕@16{M&t8sY +I +NM$kȒۻiym0̅NdWQo{/-W{.c]Nό:lǰ5&#-E)*~0W!jiy$}GO۟}V(i*șΑ{yk ZqX"d9eދ8iG {UJMNG7Ro}$CM4MS>57͸ɽσ 4mZ3W~ O'p@6ng΄Vn(jb56.PEw-t秀NЦ3ǃRKH}fZ # +XOe+j{'myw *a^qQQ{fg% +hlIhi7Q0 f0]: ͩg횅!jLW.IxaJ>^ks(g3B gNws4 Jk]E\PC' +ʸ~o&Jh \sߣL <ϚvnCқ {=U@.== O8ϣi+?{r[0uY} XS/ockhp1H g:Sy3I(\sfTD/>@pD~Ø̼k7p0#o˥)WXg/jV"`oGռpͶ]t㧪t"TaiQ)I]oOAKȉ϶(´+Nob\2/!ujCuJj).14&1;\򓯒88@׶ԡLiKdJ3d; J1_-܏WpsL\gLET5ZpxVح7< +SȴdlJu_rA5;i1[5 +C/e2-2zݓM]p<.~)ccVy5M}#ao$]v eG4fTT~e7|6%;Km"6k؅\HѤ"2@˗Wʞd +dUE,H$#?xXst6;U +t~ +9'?۬M/ew?WA ++! lFmק׻_u,?$ͦ&{{+:]HI>2V1ZݎᦷlAX,>?cn4]k\lH3QE*}ROl7k? ($2+E抓 +BZm83@$ +jR2 [La~ $PQ]g6 +.їc “}!v#L[Gܗ4%࣯NGcP萙ZyyM0Ϸ@_<}B5=z@\Տ@6~5DPU__OfP풍 N(hEtT^n~| -*QoLk~?mH*uq_˩C ) <Fǯq 6E1#+栗O ˍmZX1PH}HpCFƕpɘ`hrh`S6# BP&: }e|$|l-l c<\Q1[1WX*@+E[ؙ.'#<3M$6bѾ`b!^qo 7"W32b[4,~h2w5@w6w5~OԐ*Lf yrr3//:ҭg ֌/@dя,wp^g gZTLK/>QĊ FY(ɂMMXEM& **M)<^>]3ad/x?{%kSVL#U\Cv~u젣P*ߐPժ è&:VU=2b`abN p%sWYc%9b%oRob7+`)v +j@o8S چ-(t㇧}dqN` /<贂džU"L? ҼZ&XY 8{Dg39CÄ▅B}q&n,lII1HVH2zY41iy`Wf_ +iRl(ZvPoKgjx> Icb[N-G Vo +{;uk3ld]!mcV-)Tevؘw-l~];A2΃dhւDM?uPNwR]* fr5]@h(orh$ +E " p tJp k౮1 A>F)o$0Ux@R<ӄ( APPLE[5xIlfx!~N_6< _M5`m$ +cUܣ1ܦRYwO{Xm rC@Jt/!vBSVk.QhSz4Y!+[ U[-W !QtϯEbw\W4Hl^@+,@nbl;^32g?퍛Jn*9cn][ܮGȋ o}#Hbn]1уMARx:+g-霯|tf+fhL21%6ܬ;p)>K }'bT=XPCbEo.CކX{y3p1Oϳ;d2b_SڭصO_;Q֩[0:uUDYH^)bo=G(_44bfXd0Т2#et;lO%!+2xKK@8sCm HK`([hqW]}uVaM-k'J\Lnbiq*%̞Ygz azrF=+g368O"rn(u} i9<7"Fbٱg+FFۓOsdNjIQQjޖMfl#˘V5(TVNP4ES>4\ݸ Ϟ90zN@x]շ* + oOMAKdqH?o3Uv;acBkq8V7m5ZN(\-hw֩(de ! M(ߐҋC}ք^_Hʱ8xape4 +sQrjcZhAe!PqRkCf\B)%{հ'fo6>zk?7}|T[Ṕ̈́G 1D`B+CD1̄=:.O$T!+1lo9+I:l:N_&qQfQWv礃QZݨ7r#i﬚M6P0EGAЄ}֬ z/J JDPnvPopFP6pe(IR]Hp@GbS 6׬\S;;4k(UH+̐Op~k,GurV 4h%X<=r'fEA= E]^vmysk@dbgUFxy\FD~]Epr'm6+#6%J3Y8TY/-]ۖX[: 8#]ҺzAs +ئ _Z;>w\3_c3# 3s& ۉ0M(1jX%R5$@j%G0@ 8\ aa[?ٸEbz'2:]u;?_پ> UP|x7 +z 5g.~PLNgs(1`} +r#* {/CF^AN$S F'JMb[.CEvb}n%!#0Y`4~\,"G`' f#,) ~R+cˣ@ J7pI}N'z.?օmԭ x^&ikKK#&h[KU[m(IY^tO7=&Lk׮In*L(*ӋN89 /+:Elw7sx17ޓ^mdBJҚ&=hJ`=?ҍ¹El2bڵضn嵈q=|Z|[ю]>nߗ=Wls%mw:B8Ljsy68eq'D.xtL(@?WȤG MҦv%$[1mls-sGn\w8gˀRMe>yJ^\$_# Ђ;TB6@ #g!9iAMYMG9^o7%y +ĚJU +\3YK9~k'@wzVW߄#bQM_La =KS 4oKHG^ߨNM1&RIt ygVZ]}CEQU{u8 SUdG6M{7ɌԄ>@Tџiv'h̋6̮ ah<%qEP$CE_\"PU@l@4D^]r"O#5&?6}w܋Uu].:mB36顊6<8{o^ƠĩnE!72F)+X Ϭzz8@3TT9eJY=S%~@aASrb3`&r9 !~XvWsps)x9Vmsnfj;I_2ةiTV˭ Ql j+XIUv~Mj|~w&כ "uD؟_#=2C_!E?0ceV;؄o혈3%z+ۙpήY$b2)DnJMƂV+]&:v=h:ăo83C6!"!8A&d#C'EfG +DnmSHO>[H08|4ރi!nɉ\yPlg VMoxSMPƴYMύxu ,uh8DDMHM@Ŭ#soiĹ iR 4+z<o/,]"g2`}gbpNb_G`z4(|̀IeRDRޡmt?XwC҂-nhX +bYNzņ}KINGBC1x3b|3_%5| +*o('A"vQIe9f3<+?_Ëyι~ d1;.-9[D6V!UwY3 ּBNʷ6dPgO`()U9o/|i^"㘩55óؗ~,B,'% +I4=;cz92vݵl*+ш'E4' 9&kX#`\] Dx]M4&Jbwd6 = RIY +9Oj <ϔsbW~`|"0 Qȭ4mЇr=2Ӷ't%szZ[fveC. JNܘ7=u.^lM\.YRWt,VI-ȍi|z,(nqjv w|  #THUt\-<= UV'QTHN]B0!oi:l"1D5@-|-j^ wW\A?h9WT]F6fNFgjF3eTͩ7i]wl:rBLf+LQЗ-WTrr2gr@)  `V +JTmVv:DnGs2$ 2pBA[as 9oJ;y}?Rχ"ZFy$1]>e1 &Ȼ0Eirp|ۆAצ9Oy\8F GmQDg.1> ߐHĉ%d1|2}d1{}1d +FhtzZ@4FP1#}r0T 3żH +-eZ6+x^)Xbo%)06v:6lut)ZWpv׎+- +сB:6h +sK4`< +4LwՕpvhU6ҏ]% qc8þb(p9g%9 +MD B&|"^?GHzxȈS]ĮXK6%BnyzsS 8a + +U6pO~ +>^ ??P'KN8)C^y}?UM..Nt,>5hbcD$DP(߿˯wYnC@%@˜M-P +}qɣ-Ȍ> ]3I(T1iC^ P +Vys4i0$O/v@jtׇ\ #T7ecdŭ`>zDRC؀eϏwPs>eyf!NU'Tf8ŧ<鬫FL19<cx+l[-}K\ f8\6X9+glj:G_ߗRXB;q+ 

vyIQWqt<BOI$Y잢j7۝!%ZDn%{Z_lHVKÄ́{VwuBXrZBKѿ< 䪱U;P|uK,*$:M">?y{\p10$5U;W$u4;\nq K|Dt S&NrpbږDs,@N]9%PlVBtn~W;de }c˅1 ݝx!2 S,sG a.)I\t0霺 wyj>ݐJ|_(11H!u6MY59O-:i2䮛)ФAx*%ˏT%3M'k產-â2MѬ,PE*5:EX"Z'eke +f +oU1Z[fՋX$>'\Q35󦁕-b?+'mĦ(ܱExַ~U!xp=pN1ᅧCdyJ[\s,o˧*Kt4ǟx%qLHLd v7[ÈsYE=h&ʅ h۠ qm,SC:Ε9%Ö| +wNEc\V1P:ln4vILjl礧4QO8\q x}nm>hbfz=P(f4k{d2T㣑f֢df,Jp\vPPt p@v~9wH xu.8> GDHc!CmSiK pCkΘ.ldEn_$2he/K_޿ Ɗ6XV u/HՌSGtxKH`W1|X wogݙ3/$^R⡌\ h(d;%l$ [ }VW73C4|P hїޟ:ߢ?`ʚR)x]+/jR#A'9;'°"ABě`HE3:>Q!6R :[Gx>٬O}(Jw-rbR(P6%YP}j^%%ιX$ץF|ˑQk/a)Fr ) +h%7YCjX,V?~ MdP-UI~PR'7~O៊:?^9z:ˈ>ȔɊTY{F! ZБSXc$Ё[~J(}IhHfP0HpҦc{Pcf̢Ru|Cƈ +!U'/ǔ(330ĨxQeDR :GAKH76CXeEZ ~5YdREIJ!%*_fZ +>Ÿҏ + 6W{FsYE[K'ywU8vj-T?ƐHiv^U}yL ֎'>%[djs8D + +k[)m+}  rRcź -eA3j D~FA-9VsFiۅB= +`6ȱ;׌X\YD{1)<:o;V\?_j.Y6jw2#Qo0^Ike]S,]Uh8`@ XN Ko]ʷZ=Z-o)ZCG)?a1"eSo"e5jg&!ekx)4QA61'k.z]@*gn[3)b3LFb}\Am0c了A+1ZŞ I6k4PDS߬_1<s8.4ο()`cNCACAy=(wGc+'9 f +̩Tް}nܜM$\b{`i(8L()3h1c[$dXf1<#$#rb}OR䍉9,Tb6 6>tV ɓa58XO>VGҕ.QFp:򟣝6$ +sSH\ߢ}I ];KeONo6\",]:%NNV([ 3 oF׾ q] ]<'?lX;y9Na:Y=jt @{֮$?W~J~A2a8xKq!-;8^WYNs϶w7%ttDvN=M h=F)ryAݸɉ dx 7HWuυ8|;;'u"S1+lUMCm+>XR0hUi,ǃg- 7V=nf +"!RI%^;~)^yU~F 4j\[h"IU"? XmaίbyE C,%0u)v$>M ji[|6NɗΘR,1L+r*!8eyҵNơƲQB*8r}l~5oeNyiwx)д'm^Fs n-\<>o}]Ϡtu5{ySuYSqu_ن!p?wStUkR*LMVPd76U6?sκC6Xo+JLq ;ڤ8lqC8%=54B0.TQIi* &"G*c M>aGfRdHS+5^+iJUL UL'PP!AygԌOE;KȆ5Scx0y=Xt6U<P%)F 9FÓA) :闶3L042kS +ÈR3@ǔ݊ +gٚJ +Og'P^h-=52;| \..%AAeб"JZLU_.Ʃ33۸Sho1$̅00Q6Cm1 tump&֫b&6d9XWuSz=xѹt<[r H?gA5"S,OBLk.6mPDYGGP Oc ZaZ}D1[,*>m +*^$Jf~?4qwXg:8 a6vr5'S]{d7w} .NDR'neVDmI%-aJLJRЬ=O%ǒ-Kď+Κ:ںLy >2 lm)ۛrغY}gW9!Y6kXPE[n +IV%GVШUC{;]Mm}H!Ki[(b ^9؀frQڪ$vaa!pHk59Cvd)Ou֨\\ S=-GŁ/G`vd3(t[qGd4ϙi܏UKo /ٳ07c}55 / 5_ցPV:"40 4uaȇ Z\pw{:rtG|8e `6?%>CtdypfaC\]; aAlPeB Rw"o~@/2ģ%/tG̪؎/n#dMJYd)_J6FtXi2&J6 %Vd-fsEe'~Ⱥ5ef)gU;goPFàGm9o!,Ї%!Mxw$]fADTЩ(a#jaxb᰺{ᔎVݤ)Zq8Fdp Ѱk*IV.o $|REAm2DSl=a3B|wWH 0:s>PE0Sփ#7!BĚarYG p$iSկkSV݂)b-.# @"A$x Bҕ(? W,`qQ9x0󗎴kjK`)cѡ!l,~K(Դ+L+eFZ? BlfkKЈ:vˈDʠwӇ|IB !~VJ_ipP@g +|kn`/R|#&']lvC6|X<j"7I:6N~dsstF}=ySa奍м 1AL?-Rpa;B@PfqDxD6*etF#V$HHB܀F}[ _gf'J+'j7_GML9OG #g|5x$*)j*!q?*]Y$]ҵ3$R:-\!X(Emq[(9FyJG+šx08Z/PZ54Tp +#:@$/Q]ΎI:b|hLop6wbHv~u1fInœ! + T*/́:GЎE' §ϡL ; v7Qnˌ @(Ӡ"{PH 'B\J#e @Jb25@t VCs% 1i1+w@rVHPV,SX&6HR|R.;(-U 35A]m-[jnvhEGք>#UDQ(ph]:_p~/R߀K[PQ~"/ޞ^w .sx7W`D8\V~LOڟ5*y^>XVC{ڈd9V WOL6V-'ujL1Π=x+C0nvL8WhԱ=h&[XMY.^m)=l߼pT}B˩d`A m%zv']WDxlӹ_^MԺ|nWg]nnQk7hLYv&۴7QEel/$ET!b_ _* goJ3 5j +6;1Ε*l FdJn2ufbu41zaZih1Pb!S1"xldb։wHe_ʿeO-(><6Ӫ[X2P;-/R@Q?oy>JJX@cܖnJ6r0Ʊfw-  4BADSdU\D!(5݋vG"|o]! u}g3 s&ۼ6FdQaU Ϭj_!N($mpBa-''4.ПƱFB<@H5VM E8_y~2, dX+u&FKΩ(^~oiqu4p;b]S'H(~,^QdqM{G%S;5mTaYtdM0hCžGPPt~.wMЪ|k Ak 6ՠepR +> }{>z[uVVDAg:v@ٌ} `Tf^5ϸUk! cÒGf>%n?ʌtSU`?P$:gF1;dvD[lWu-(^'" +u~{oX[ Bx_~QloZop# !5V} Ho# T_f{X預 otj!(W6ZzE?(tLJΥNw.U x>#\MGuv@U-nr:lНo݋Ur~s،O +꬇Nݒ\#6ܯuK?Eo%2 ITxljSz*k'eOdOAї + +.y5=?qT}^@)[#"artAUlP8Tafm.u&sWNc`ʡO;ʵZo +8mHN9݅I '%ՏM'W(MvvU~k:5EBh,z@pVdH nzWG.BKA#q*#/}=ƪ}v^19YQ;5fia媋Wf&Mί _g<~]wbCC,׍zyMu5 +ѬhR ND(tcujRce* -/PI6WAjL @s *p-vUaCηO/ ᣗ%\Ӵ(Kgs(`:7j8۟0xy=\QO&^ѡsh\>H5`xqvvQ10ѡŦIK=Ok:BQPZo9`Xߞw=ģ0V?PnFĐΤw^Bkˡ&-άt<H) S\i+C ^PwI]mītV:=֭uQJ=>#%y/hdRrTI;@҆Vjn BOZYXr'AqW@pNQXM`%u) zģiSjӆKrH*J@83i. BJT䥰 OƁ`B!+u`ɱ!4z4j %Pߤb(*! +%`E0$4:9\=\I[T>BpT''g$Qvr(20^7$p༃-HbjI#;G inˮ)Bq(lҰpÞ /ItRc5?ҒL1_8CR`*'i|dzVʰ8xDV( :#εEQMݏ21`%6|cI"0i!yM_DzQFk.ӷQ$o:zvuh^]j\ۃgM iezn7Cp$5xyASࡉ] fǺkYF%F.mh9T +%grL}t,pEyDd8션ƜXŮ(f1V@m/[1+KgH'Hyn)3y]~@J KKG~ABJ>f )^ ^OoES͊8*-qwț~gn/8@3y:KFb3oT_Lrnn .-w{O:QP!Ƀ bBHZB0Qq y-!l%id!s" b } ґt/~C+4dQeL 2a$O8DDUrN7T&N7!ﰖAb/ 2JB2Tޖ PhJdg)-/sÌt?4J? =k|k(z64rٝ5{ +~ݼTаO,;XuQ+w3=a`蓈*il^FN$ZF бb# ϒóXNSI>4~y4^|1 mQ m]tu#[?XX+xp] Oz?:~rB#yi˨ t7e|r-zSu~4KOciFRs6Vq6KTmZB,nAT)AO#)Edy$W!łի|E{8$ g=-xЎ;$Ē Br鳔'A{\2K{5:3XӬ +?(c#Eif;zԲ=nmrwɄT~-D0MVBp,LjEw4IszV?<\.Zx_A2B3 W,a{dA0andX~a"D ASXxx9YZ oXJITD @2~r^%& TVh&.},&9Sxx2 +%v%Lb= eA)u!.֐ ݼHumZ"_}H4Lt/ɘQY$ V$[y_zmtVe70nUX/E޸:uF-eYYk4ƩXOY(uGc!h3 %H9pGI ɹnIWmX(-Q,Юu}v[8QrTݳjBlC(՟LowR64pk$3 CcE&{FD‡)tY`zIq0;MD. ys0TUBfz:phU1N3`%b!x%TГWH04ŀEp7 +:I"rodJ</vԼCNn/Z7f eO$r<a\Tb٫ūҔS}CJP4*L)Gx6]f 6Ca Z B7Dƺe9;F:B0A8Gy:d^4Ȟ&4 +g (  Znu2XHP0M[!YQJNGSYq +/M@hb,5.IVtE֠##a2/Q'J3 G]nڸ>?m`9u"&q4SQS"sgf5dN8v(TrMgtFVPqvY8f<V[tO<0hUIV'Y[f]w ML[s֜:fVVf/'Z65n ܪo7Z,UܿjT2>)ׯtزۆ[:l苳.nk1ʕp$-.LyEG4Z%/^BXpŰILB _T-s_Egg%R.g?Okw5Ecs2,[df[,T2p\~a~]^MZEMx* d۟ +;p诊qdhaԩxBٝɨ3Vnͳ1ߛq&5cr @Y^[ +zU,\[Y IDX ţnQc@ Mi̾%Z +BĂxLAV'߃(0#UJTEyǞb͏ + b a=cDN^\~L-(3ssDR2fkǵ3S2Sm-mGKe?bE.m0. -J+[\D+CU˖{T|ޏmMN^0Ș}{7DIMhkbMDv?vw+B5Et)]~=$Qn喻mar&|<]+Zξ!Qs,*w^{Z\O3?a#}%N^y +(}8-s,uQ)̾d.8;98F,ڙFjxqr^Iݹ& UGu=|E2Fq1UT0 LZ" ~ Rpn}\pd3ܒBR7M +Tfd >l_,%Pg+ؑ:q㜪zTk0hȹأ҄)ťV*]<ǃޡ.-qqSzZB+:$=X2E9\ bkhpƀjнP WCYJdtrQԾ^\q XMfrx#b9dK!:W]}XG"ЇO,R.##AeH Hcyo]溞:~t^uwn'5•kH&[[Fq5qVZ~k\wdΜoKĈ˱;zRqlO`U %O0ډDZ" oΡ̆I*ʨ\CTr|F„l<^mEeYO03s(J'ouZ L3B(u?j@"bb5&߂%P?%qW!93s-:eDD2:P,wrxPyhLLLsy6 ULw񌇎 *7JBO>M((zpץ>P Ob4r07l rZ+dd6pCA2!} #V/z <Zy<ƩTf(CP^ ,oETpo`GPJRH,QFP`\; ݑXWY3xMAa*V@YhŲ(;nH}Yh +a"5Y ȐXht3o<-N>ack]*?7fUZdLKҭo@z4Q>/+8s%1, ģA(7!/]l^Scµ}J`Y,^˦N7R7EL$w˲W[eu 5ۯM+)]ܲ5o˳orͥM}m< +s84fScm14ikw)u% ` ߗ!*[48`C `1^gg!]pɠsgp6Lhxuɰ'w4.VekLZ2>Y, ?[T"B:㷤CΧ۫u%36׉֊,`)ɗiG8p:A>ԯeG|) )m +:n;(YE?&5U-N?o;N>RvAfoLwHJmH-lZTF]l a ٭*6B6PYz4mNoZ`F{v$։ҹ/')v]~gieO%O|:|݃A ++rEt΋H7Z8v"c`Trxړ⺇뿫XS ɘtrkMiuٯF*bؽI)xN R/U}/KVw9nҰgk|<dmHb-j|iN/jզmL҇t\C.MB!rZ?kL1f<23em,AɿiMhĐi0Ki?Q|%Cت d/,z:cJØ#6v[`c9J]v&l0,.ʐq/_ũ,Q@83佑%vĝ>h'NYGmN񦦫.P'tvb̀1+׋kpԨq +Oxʂ75Q9b1U>זœG ˍʷ񔘡ѳnc=VYuni,ရBC{[ϟU>|Ay 9nL}wt-bVP ƪmVw-Pw GJ$̞6j젓,Crw.x.*K糂TyQHۅ>pҥK+U.fC9O-7"F˹Z!5~ͰaTSk]%(MXdH<*⩦b? +ƞ'f#,+]D$aLRi؝3=x׺픅tÙ C4 M͊MjA Jo)Sы=~nV}pӐǖhY&O;FH]Ql.-U`Xǽ.B{ړ _Wӂ +k?'*t}P tP3M;e!VX(Xl̸m"nA~Y`(EOJA5fX2V!Xsa!dZ + }uw t0?{z۫At#XB[V#l,DleߜVyr>E H92RXsXc/dꦼݿĺ~.[Ȳ}hpӦCd.8~{8tMLsEJ׾5q4M[wvin*r ֹxQI@H_,.k M]1BjR`wAhwIk LgϾS8lXϰzܝ]`P' @%i|c:TY+ r41g6hE9Ml}n<]\G >q0>Őp$*>SI* lT"ZΑPS/ 6#FR$ k?7m˒bzz3uޘɱTQzaABՠ$2ѽ$xBboP"ձfaiJ{{~Ʉէ"CZKl264zv W3ch}sgf.|{qM_7[9)[MN@֋/z :e)pJXymŖ!hT I6sn:4_dC ԡQ'tS7 +";Yv)2]JejCkf\J]L%#fSR= bv-֩%A:\b"ř_4ob+^s;;dvI&+"2$%[3 oK&3q+;+TJjNuث+:v2"[8T }`*y$'38L*S_Q8CE< j2Ѹ9jַc8xTΙ4ςtx9,Q_4:|S|]_EOR*b+vgE ++G2Qkؠ2wC&<\FXG]`BPIT|%13Yf"Hӡ&y4cnŪmT`(S$yUjs̟*&lI4q_!5N0,:oZU?5&HE7w;C#br쇊W U'j+.גl1hy[u2Ztʨo>;cKߚ`:|`մ~nzU9*!+A8(oK.D$M`|ÙktC1`9-+"r '#O A@;a25HE't}{$08W0} &ADax0dIjR}ی8ʑ*nFN B/0ylC0aͽT'(FB&\e )"$Pqd ԂƉ:mfK/Zwˆ +"&U]֪FGkD?|V~^>ݨ0rP' K?S +7j۶Wƶm۶mvcݿ?i<'~wc~}nt: \ZTl=4q|(]Z˾|Ԁ.F:MFk.QbkbۊicoQu)+cAY dZ^gZ٦g}jpCةCZzӭVrm~"HΗbfO“co­JԘ{!7& +&ˍ.w-+wel :υ/X4bgp 0. T%B4N2MJ;_(Ut15^6p/#{_ Јœ|.CR.߅$~qD:D\q}nzƍ?ah-nَYTH(~דK\@,A*F;Is{lef,'CbgðeeaƫƶQ9VGSܰY؆AbDBKuJAQ~e}Mt#vQt~At5>D6dqЗAxR"\I>d8 +\0*! J c;r)16U1Y^*>vW0ُ&$Q8G:>ɦyUHnӟ(z_šWDZ4 xTI U5Hojcݸ!ҕDslDaf$ӘʫT~xo6]cP=SM-̧vr +e&]z&!t 7VU;rӻݣr-Bsy񙺯dHR2m# QLT*.#AcsЌ\ji}y}zԲfo.\"4 r N8 +%!t(&MíIrpʑ@S1,ǩYcNɨ-7}XPqR>?I͠h #$S8jsۧhdrbēTS;ʡI6sT2yܗ?o?a[UE0 fB$`$p~`h^~l&IL8G$(@FaځݜS ºHx!\#L pט~b6AY"/~;=R90Y˒n|Ny< mXZ|K\鹵E gUko x]) -%V}!=y^HUq%EcodT D!I@C5j˙^>lfs?YmLq2URPg1SFa Ix88¢ 10D@C$ ($U(30bݝ>pDv3 E~0\x$yDv va` +Iqmp u @JpdjTp*$*F`̝ҋC1Lf0fr<2s)0N;"rW[*F0jя̗ĐQ%h*FosՂ=I&A<ݹcٺZlg\R'[cxB3юw4ͬ3OF]2GuߴQPb{2c…qU:|q'r<5>:}_+ Dv?';QrTCKRe3D-MIOê.~tl2(dj->e)nc[oqN`D63qHq{x5Q2F*7H H #)\J+5@ʓ'kZ&h:_Yh1D #sOm)Mzc*p#9U\yE9GBZ,3{9r>K_{T,BjUă\%JwƷq1,}ZOJ9 eMݔP@~.-\?$bM'oXkƳ;x;-; 鐮w0p?*"I8ElCQtwgTV$al"wY0/s8aA81=ob$d@&T Mڵ+q/"H;KLN">BERnT?@ lO&= AvU* YeQMe!9+0( @:݀g~un Nz uia儂0c#HQXs\ʹ|ƍX,Vmك.Ype*)Aʔh+"^`>x)VzJef-o֙YRts&#׫!$K0#@E%H;~q¦{SinD !HEo)T~XQ𤠫A ;Bf0(j(>e;d qG(|q}'T ˠ4c%D<bQau{)lh/6Vkvsd_r!LYi-_ue8` 1!˷~'+@Uaթ:#>P/S un֦eBr!:ˈ6 n gV] uUB8bEI}F5Z TS/O?Oł&g9݄d6<"ƱeϻO˻+z4;֕ U_l384R4`X~z>_%U,.usGҋ mgiS24RqգGJ@rmaߋE+-S4-/{$0qeY2 +{qU^P5,v  `rs&ώo}D ?5dbĨ0/.cc=fqN$_x^an+կ cR Pt6>O=+ iDAdaQ^(۠TV:9 JZU\! !6nH*[I,*(n?\yM/\F[PJ#KQ Ձ'`7@Ig0Ŋ@0󱨃*b.2jv|K:rg/6xHCp'okx6UvLk՞͚ѡŷb-|A"CZ`'VD* ~WߺV79HfgwA_Gx-3xb'pq\_a`zA0x8c@, e3ȀXhz(?4ZtŚ%d*p\lF%/7:HQV*}Dg%O݂$-=->x &eQ}4bTBKd +E}Kv E,q2N~',2Bx24Ŕ4Ո^ $9 Bxp2rL!M"`"x8QTX=\E#I*MoUi!|?aLR L4Kƌ`g=I)ϟȡ8 MS`γ+ Ҋ_9ev\~B%NqaӼm>b^A0iTsnszx[orcgVMO\־}+Ikv><܍[\\YkJ ,>eU!H*hc Wu+93rҿtTscs;aiP_Z,T鏿 ~,lF5gL K$8(3U^_@c`Fw/$/]9Q2ǰقhB"scf‰iiRS8Q*30’Ȇ +RGD_٣=vP Ƚ\V䞂4H#qȇ'ɣg20xb%u h0.Lp0ju4Qe +.(.WikTӄfIm0$}gCw&iF)OϤT fL& !\"!c„{(ƪ,b/LcRRfn1*Ch6<`3\ImliU +> ?ziv-Wy*,/W1 v|REYf sӋT*?шh^ӄ.%u҉ĦgVaA/mm5Uꪏ.OlU,XzydĭđHb[$sBnslOAgaNn֬nkKD$lAk TaN] `yׁar6fl'TIhͣ޺~idVZKȲ2sLv+KZo׆NE'ZemŻ`!ɐu`e M<6{pdC;3 ;!b^_ وDA)teS>cQ%HD@9VX};PCRx[wcFAՅ pok 5%ty5/)OkMF h"k:TJF^zהL:1Q;ps9zDr9qTH5| .Ł@8@h5"3agӆŽ ̒*'ՉB6 +KHX}tC LY4?xÙ5s#y--cu,8v RQ?QtIIk dkl?MSf0#Xx-}q:s÷]]WȞ]wg(>>҈kL=]q20lլ>?4t0qHm?U:VZButps-T ,ftPx.T6Tp7.N sQp(:+z8ec݇LNzN+L$һ\[bO#(#TYIyCC'jUesl :l-w ˄]Ʈ3=8[YΘ)zeG"KHrvUlA/[OOp$"<_\|K1W3nw*Z0j ht.API(4!9 +E=_dLuʆ~.nw:tgAMKrŢM-7MtCfLE<ۥ>Otr6Աw.Se[?z,Y4w0 +/{x:?_;;p|4ʹtvUHDa!w㪫bH5s~wO+OKHW* (SIdnb!7GP9$$|Άk f/6`TDzIH@X*Tg"gP1`6+)0~?R3@TZsI.%[@x0﹇Ob74 )1?f(Jb t|)_l:za?>;z*=põe_/7Y$ +u\@__]-TjZϒ}R܇ fyⲩ8xd=^=>c[e_v pU4cп,͘5; vz iy4..]:K& )WP"t]A ((F$##6x\qP"y<:|BAI*F6@i ,CC +`(g}c B Bc܌4x4*)%(CK(5n9!p!q5K3\K1~muA SE캺y*!cDgf613d!>R>m{~M3+aP N[Bq9-[}Yg쾙{;w׹,}BnC+ʧ*՛B71xvM:^݅[ǺEdUaPbb++faC/H4uBQPZP.iUOFkGۦ$Wiu5g)wfh:qA1eTFlu|ZTYW=H5,kBrrIK8cws'6;3w0_&mZ($ 9 S ISDN^c-~m;?+YpD; VIkQrm7L爛FWki]'JhPgV=;@"@$9v}s\V|YG.kb{ZȬ"R27?`$zAU-oid + c:*ű/OQvɊ^WhJ/Lxp RM#U*S (33RZBKl)F?*ϊъ-wFwKYlW"Ӿߣ9Dn7$$ä{w9'-!%57K@0 P{+x} ! + }Q@i? r#|ʱ*嶒-u[٘>ߘm{ЮZeK=9-S)&XWZq@Ad!D`\qѬym  UT{9ELrOe/K5/A65=n=1rqra؀3d\hf܋]?zP|XӼ$ +Q1G@v'$$#@ 6O|ud)$>b +$i#n6:%fBW7n❜ae@f!h ݿ0Oe%@]VsE_ +x<k$n9IH%=+h@_'=ZBoTW4k/%(mNQȦ88a(= Y{8n(XP"vLy$RM-ˈaf`Mfy}?N+q`!H3!P6b St`e9!+n]*44f$ k&M x4FRM>㪐_0" +ܞየ&(3Ё5z[G PլnF]쁹e-LJ'J㝢ZUYZgW=$a2\C5] JӻYGp}} LV $YH8.2=RU:q.-J]*sV7@mǎRްhMa#%t>3F zʞ>rY\JS UNpalo~zXGfZj%Of\#Ý ):hcC +#bKVޡnUKRU +7,~6enbufrlm yln*UFj|׿׼zZ%Pǚ "<-!iBdK8"VZ0}@V=➗#ºNZ@/U8YtZhzvv,Xe#D!w=ԲkJ+i9rn3TG?/^N.,p种əAO(>>: Ϗ^•S7mt!`9<^lI8Ty]8DžnYȦU9N`hddcSܣժ34=DO;Z5=!TW 4~؉1!1" +NhGDI%[ynE8ӄ,a$ڡ nRp +(@_H;vXcȘ IR1ˁUhqFCIYr kF3]"au4LyPXPT頶';12lLQkkyH>c7/&M ǗR^C.zRor,(Vޓ[\r,)W$,r33rzzkb(3V71kR1Wz* Yt@W#5Z\uũs>DY!Y ?uɂS "}[gn\%)ʢAؓ"OE#I$P !P5oX]ë6 &⏾! |=M(xQ'q (i% Yz n= P `$`u eEܰ؇م +X>IΩTF*<6E,Ն. ++᳀;mO߂<^X.x)b9zSxf:tC7cY*r0谚)[fT R!4TɶOe*[c+v?K+b3Cq|ԞF2iqT&[wQl=W.0\2m=_ +SU =AyU1S0ROKŧPGIͲ,9#'7Cf60c` vL ijf2 +֎NAai0 |(qw^q`m%mJ969\8yuH8SWU,xkK JxZ2.+ߠ4j.fEÇD#Cۅ}h wP K7:)b28?Tz4òaƧG1" |[v0М)GXһ¯_2.ܛzjG1;F4'7!%,\ʣf4,ձEUfmRyE_-0̀P" ; UztDhJ\:jODЃ!/<@*&kF:wzi(<tѼNrc,R"p͌Ǡ ߔ66F`Em*֩Ys9<+ 7o,ғˣl{5l[׶ΧkoQaVD1s7wOVlIMYñ@8OJq4u#<9QU;̍c82Ϳr}j01v˜ y?bFy7Woe>Y~LN.6}N]7N'9@x)F~LRu̶i]W@_y3 YTJdmH5JDRXQ,0Rv%!e0BroS/Qiŷ ~zAWSI w/w5ؚ ,!̐e#Bng'' +(@A#& ^xh"P#7+2rs&"qTo=^aFƒHq H EAqf~Sd| CَLκ"&wcKdq׷7;NCͷYM9̖FI&iSI۩{̸YrKQzlG ZvՇu.aMV.nMV٭0J!0:`V#H^I,BlcsB~˓h&-(/eU'Tԋe +6o(Xũ(f?Z8Ȟ+YO Di}:?|k-Zz>ðu6% $!]j&Cq[9^*0{-?I&Cc+ŸцKXfQg%NkRt*Nijy)yb PmZw兦Pp +4rT`aMI+Qê8~2h"J rH/EI`YIPfF#GGL ZhbW pp3d apC \R;ANLr}a؃Bp3 +@ͺOL rg5")arG:;Dۦ&~tWlA*/;n6([4jjsWjCQb'cpEUOCE_\gWW<틐"6?H"nFlMտĪq:=8#مnf|C!vm~UJ^1Fv|&hkI% J|SӣuyyGcs|UM"ܼpsy=>.?^Rkc U3LnڲQB. j+4 +HwHL)S6ʀDO(q|ILKŨ_X~߂ T=o [#^-h2o4']'qs2DO1/΀'2!_ 'O!:# 7 XWK]MU8&%g7*gU``@yU%A@Є +n_zaa#/ Ң1i0d24{Q Ů~ԜY2JuytvTW}> 6ݵDMCy-.lQlMCFas>Wāwyz~f^rS}%w< {4 +y=2_PE0'Bu$%df]Ksѩ[#(^EM EaF\ry:ֺ].xݏի,'q )Vir5dx%Y,5ceI>lH 7l[3:hxpbf9YW>?9 :lQ'Ӄ< +MlMQ9&ǀhCȑB,q@߰!sCNUN=Նfl[4ܱmll;m۶۶;M^뺟VV@{/q1܄95bldoU)QtA$2/}y$jo#iazp‰TLn4b8>7{tfA+U ٧^='#u89#gS`J$*l~aM@Gꤺyo P?(buƈNvyx+9Uy^ ?[1WRsYvc8~V(S&aIg95Gʁ;-J?rB:/9l5rƠB V?Ye-=AN@Z3G!F_w137?xyF9ӼSq}jrI[ޠa`~C|WtԌҰپ?zlt~l:nWOB$\~i5f?[ٻcFO 4:@ Ʌ7:OkM眒yrުآ ǖud\xo5d2+&ݫM 8Hq?^!Q vйd$S},WQώ u +1KC!'+"B= J#@*|px$ `" +X߱ Z  y"1ս6m!끞Y)\Tb[x8=ZBӅFuUe: 縼c}ϒvvWP'@pV>0 a״hi_,wI5i׻Y/#B +_*]*,n+\Fl8{'ғ%dh gVN}FRm"ONz{"F~Y6T(fk8J﩯Y;%aw|T{؞]g4t=s8{Gr}ĞuTe8ؘͰj^#pͧ+=>3{}RbwjyE~Ș+#QfVGEϝOh{AD+pNPH(] {iҤ K7#[aMʮ3x؁BfʽDxf. ܣ2 jX5drs7nE +WMВD% TDR2 œ^/Ru@2X]lxN/ +d0 + B!p=LLI}xqUįPSי?P HNʠ>FA  y"g=3!6Q +kBe&0q1< +"V:}ٸ;}3?oodFo'N!JzQ ?6hWЇ'DuDۦ"B,YW͟jM*JSuͯ&Om{#})ÔH˷R3c֥l՗ ?St7>zC^n>6_U +LڪN7sFʨ峧'/*^2fjlHi]Cb[:U|(O*l,mj2~.]Vjg\N{q靽/@bt{mU)27_=5烰V(/QӖbdǤv7xSNq7#[}]JR t.n 02M2MvhөLy/`Tf9t_9CE<[buD$@v"q ("̉$aSD,DmPπ`t#tIX( +i$}8.mr 21ġ4q}Is + I%MR7}$b=oYrLf XlBxϳvlƫ3E[ssE]'tkܲ}M8r9ΔPH**GaQA Txoچ`|9]aa\B\%nhO0|n zT~5^W<-xiaF~1=ᰤ7'Xɴ@QZSbUM7V{Ik¤1E}x^?9#$dAur6/M&>ϫ;¾˗' tZɪ_m'?wF FL3.0@>:΢|SU4a?Wricw#;}HO"EcNYv(A$dh^Ϥ|۔BBp%3u.%:,Si x*d0 ơh(KOB<81a`iS\: *b~P"T>xdt7Tn0dax +0.A4Uvf б8ZCrp%)8g\]Aӱ#0v(lADx=hKvec\Gef&+n̺4r)u:].sn!:2JşZyjKЫ>㲋?ShU._7iJK$wEV6)_"ѥᡔҷ!zUbR~z)4E +{Vg[W(u] 6r.˝\ղwBW~4gfWwçh"VpKqLN-^]#dӁT5T7^lcv7g(߷X6p9 'd,L 4Z7Ta:w) ܡ$-% {"†X'nEv( ^)Be㩋(ݣc]+d*M 3Wj7'D[]1QMP5>  4likf̏ "= _94A@ֻ8&L(.A7$sY0B\w^ 4/9`4q J.YD1\vE dY'7ls!TRslmR]ډ \LػNĂ>z|]\6X/aL;<,Dڨy<&3&_{&1)^f !TaPȏALe!?K_oWׄ R:am<UFMAKYTs3!ȶZ Gj)|X”Ry[2ҪÆD/R:_|N2!}Zt|mik8؆)ԕ1bٛ]J\MkjqV&' qb *6#VW mEypzwOVݥԻi_7RʿEO-?) +4H(h kqݜ 5ΰԌ>2y@'Q_jc)O,}DL`N\YXRdī)wxJ.;E >RW]xFvdCFUݲEU9уa[iY͝fVgIhQF\(B=tt44!_7uK )ȃ`70^XZ(U + IbYO޼!=oXFI&΃f~&.̓!]$P6kWCTXѹڃ.[}v6vJh>択p8>9nƞ Z3AѶ묅0X M=T">a ̑oinշk㭥/iuI%'I^ߊ WZVwMp,}^Xϛ}0dA| +w‰oKiL: lzEdh3?"6OhBV)Lkd_k\Rޟ;$!߈&;* /?J_bM@%_G?6ŵyCq.U.PzPҰȆ#-c  , WdM=bH!aI:oLO+0neixsp_n_kZ$ɸrht{f~dh=)vqv/:8mf@ĐhsNvʯ*2s_2|~dm%uUAsc86 HTV3g{ֺUS]ҏu6w`# EQMrJFeR0]->$-U֊c= >YqO4mSK35gF ye +3ؙ쎃NGڟDB 0V#%,*8j9PM`v퉐շo/7 (M+5t u uXT(>!(GXFv01ZΟ{ܨ#ގT $RϬhq`9t&FeD5L"'D1M0agfOa%}ߔc@AW*&HrU:4-@lz,՛|yoSwnQnfx_acb-.@J",闥/ 嘄QJt? F`l|XbT>T, +_A jh` +т4xd΄^!57ED;@9*dIMDFłw#/_u(.-eYڒ< *H"7؋sH 占T$qCU4(E@sv㫨*޶+:_u*G?om2 SW?t8,2 /*U7x57\x#<<&3& +_h +nxDd `I|VHǰN-|l[ё7,FVy+r5CE*._ϧ{<Ω~7dGs " x2RGŋחÒj(p}}i^ +BhjhDz9LtWDM2HZi$^!rB?ɤ7^P`a^6:N^M]ołQ` 4vAl^1l= >)#k[۴[U݊. y?'Q Hu ) ё'&)v"_BPڗ0b~p=z_"C ۽Up3ԋJ4Z2ksiN$Gqm1X[$}56;EhKE$;ӥ{ 1s+EA@Mrel~]Ebn1)&+bO͒-6FYlŪɳ'0:ۆq:AavRF/+5 jqC#=;yv6Ϗ~fˣvlV9 kde W=-i89)1H!itQR\i TE Sug#Y{5mn/{̯0TRzylzӧb_j痟މ!쒤s&1USUՒ˱RvQO;~MO RbqJʎ{7$~c(MTe|\tPr 0 Ȉ(Ƞeο|J)BRwg$g6dɎ#^@N# o=h*)[ֹh"~'CAUw V֣}vXTJpD0sѐϸK!FOE5`' iA(b}1aԵ{^zc?_齼ě|Id}g`)Gy֥mbACc"aeQ-TIQ·^eg}Fz8$]"N')vs7vyW0}%QrBҶgDp͌iC*g d%`*i6d2 e[O Y>o%+TT( 7:X\DVśQ!S!ARpĔtB$UUO -O-3y.{o4:MOڧ/{} 4Z*\IC۱(LO1aW١/W#CUb-9% LGo-ƎUHsbK斉0KiyYIc#mT>`F:,?_9֗>Nl|il}R3Q7cVJp/m?l[brlBOKI˓^sqt9[&[k\%EF"6Jdk^l"trKLLėEQ=\,Ř`!N5Y\x5D-_G+¾%Kq}?]S1])ӭ^zzx-I(?}$DRKLQ ֋]T1s !RSp:}JƆC#Ws4ji'i(v$C!^F dT$hA@t ppfRKR8lPb$0gCN=qP`<8tXhtDXoQb(]2qED6*0ǩ^ y÷Oa+NQͻyVh2,Jͅ +e>1رzY̴rMy9(a~s\sXFܣ E|( +8|[ %ݿW\32㯨P2xC{_}Xf0(֋J&k vLfj;cx.U8daLt,+hDtST|>:%}:]vNOFOkFк-efN{/njM5~H+,#nNBQf# 4$]P9'2yUۚjzUفuIkUKyQ Y:uܳv~HUok`Od,E!mwAT{t$1E) !2ėp2 k&8z hz'xzZ<6iʷ"mpF) P*pHL0 ߋXR8R*8dw}4tQ}?,2X 5!J.K aa XHB:ZheԒN[ˍϑ78k"p|-qTal| ( +ZyJr{N>0f$v\N|Wh$dK'ET`Uݥ9]]·=V,pdrN)ynHl\GwvktZX'5ő5ɗ枮٠%'ɋ CGdfM]]+-Y9_,L vnk8([ȿwa3gm)48nf"Щa}T4n&V7?kj]KAnbgd@U +z߻{ +fx"< ..<[4op_=b[E/_zDvDH,*DĽzÒpjcMKSQ n"t|fgGB)h,}—F0M{Y̹= +ft$%MitDgEΣ~4hDZ!pUdPI1AUj۵(, 1+(Fﵴ~#+_lM hV+C +.ZbH;B ϳ en8'qmVn\:Km'[(@&O9hh5 mDPכ:^D +Tot/HeՒo#υ;D4`=2WAAYPn™rjJ&tkD _hjHxZ9h >ky]`x}6ҬԿ+Tv}̪-5,ITh#0/7p~y@6\oM%؞GCrQꩴ5l/{<ٺdA]JO y3$P `s1'XEJۗOb$Ug`kֵi=M%Xg?wVDG.`ҧ!`jƼ#Wl" ^6;nbC29vyo 9ϷW, 4J+? kyFcZ%@9*ϭ)?z?U^PZsUj6fXZb*Qٰ"h[˧`VHĚ(,ƏÙSqD3S3-c h@"ނGa`kQ3$3/5yuQPi^MSOk eŜ~`'ZYCB,D eײ}eT21 ,%Wm񯘘Pg/,wd** g37\$F" i\k][5JS ){Cs>eYp[6* ,:Zh5i=b^LmT^\UWТ_{U^}2'/s\٪o|N>&}o'znC=vu8,\eeG}iq(E?cVx1Ʋrrr⬨ w;n (WúVMk XRo~f.;2Da18&yvፋ4}I$48WĠq 1aFVN~8T~ -mtD҄J> }`:B_dH`=\hn_XxBJ)-yj~U7=h-f zv=Ŭ Mf(1dC̓RJVЉYQeSފ 7 }#*Kv$Sw_ofF< kKοt}|ִǙ.M㥐'y a-^bd_ +W3Y㊌R~KRL9q': +Sg),qXcNse<"/Ys:f/`[xx?)\_M:9*`0OpwGwNW;]-!{k?br(, t0˹@|_G+Қ8YO7Yɨ Ƹ6#mbl;uW P%\$Վ-Ш!J2˛&R,-vLvU ۔vD?(rkȩRB9w  J*r"SL&Y/ +21xjL te|s+& cAnƓ8uL!"D`BRۼ`<W*-6ND9 4V~07tD:͝b@fYxjrrBԩSQ|%ܞ5u*V\KIFr(pnׇe\.ҥnc#'I#ۈG$i4;SU |)Pun1ERubOZ\F8ViS.FFž(CuRW^NTU՞c-?SŅrtʇU\9W \o Ya'6}"nnT#16aMOT' _/YхJgH?CώE&6O$**.Mj?^C^ D?fV?<`{Z5_,"ѡ@O D!W6H|Gġ8]G-PVnz]T*HIaF`|S* 0JU2MJ +jWod#ǣ-]Ԩ %I-3@RC o[~D ^_UC<@aK b6?p.IIՏŠaPY. PvNJ5;EYm]47ܱAJx.f.Z.F EwqM*ꤔ7g2kZYjnWswWݲ޽1xߧu$2&ڢ0~5-4QEGʖ#kЖ@E C~/L-WHV%:kG9`/WE|⋋&-m*Tˌ$\]>Z*`1Ev]}9vuG繜<(! cl'<9C/|Lxi}-S.-: Et6ZֈQtߞo1e-dExneoS ?7&uK$j{s6֮Ca$\Gn`p{Y bs(EN6Ot6d/#h6CIgtDOPi`)\v"0bR5#@4m,e>d\,mZ'u@H)jB΀?S\ +)99/G!0L_$v=il_yI*Q DVbiBV]cG U՗'ЩR#>j9^sԟ/*L[gV ]+MT?jj 7KWt3l,+)eP"fp$of_b='=9S;fyfϾ~lW;*j)aeUbE^ q΢ӵ26i";TBagɕ3*MG'~rO D.Rp9i{{R ޜ~OKQ5frd޷N2C2C8rtN&L/?G;ɢZIY3IHN;5V|7l:a]+?:x炆ΏЄDJ20O_qjtF-bVtg}7Sӡ_"F"h"G1 ʡZ#nOq!r@J$1R:*d"n+ 2iܞyJI +c +iLiBWsrsH?GR8Z(1tƅa4G!0H`G (3Pp*qa Z@Ŧp K +^$BIݣa{V![[XY|i唫V&zjuiC]pXy0>?/ۨOE(s+B8yҰA?eR[0ECEMdBl2J6 sr AAZ +p(5|G@c|Y%"pYy +:5 '_ھdMZ+ _BbĶZc|-VL7c~v6~m`H:A0 {u7%[%2Sʅ,ϠsQ=ɏ%=o̭)[, x;Gm~ on.nij?ң4F2*}\M]\0cZ?qI!s9ju(DJ<Ϯ?iw&^2ŔqʕI5e|nZC9 қ疯!FBH)..*EpH$SֈB10Ku*G Q-:V(? NC k$qp1) ; c*%W#[V}C3%ieB53[7)JyDNXItg3EY z' kXyL,;{>IXE%>Yلp k9AqQy]~VpyN}1"zY5Ɨu wpImd'\p OtzCnDpiZGI +>9m ͍,6rTٶVirT%q87S`8Ƶs[Qx|9c"hٛifpmG(VwR_uWF2K`z4O7\} 'Vl"y?{]\Iq4H~"@;L.-RMГ+62N CE!eLBQgbTJ]ONSLϜ w٭50opiy@Ȍ`ku!b}bP+fZe a PڲJbS(Σ&$'iy?g}kd, Fy'ǜ)OHCnHIz7XB#ض&>`w + >ҹ1EP;Rbp +dE҃1Ѹ <5tܴp10cSâ6>``"F + WX^4Z>@y^ԉ%8g1M +&_thpҐiA2 + +9PHs2s^@cلYI ŗRF7{<`Ty0}|Wheji=Y&:vwT#6JskR 5t +9HaD606@4^xb6}/ Ų] G~ +oY܄Ұ<Jθiɢi OcmQ6JrZ(qLtVWl*f'>]-cK㲉kB2'Kfrк${)qYOX̾U!ƻ6kp=k8NDЃ"I+neܛB>X-Tr;s ұq1I27F؆'VFA,v}#҇1>ߧjBH +JŸ +: 6/=Xn6(8k#qQ^I`Ȍ"R\ *%ʐBN! 6R"qnM>şB6VrE&{Ē1^"P$S&i%1Gu /X̤:<ωr.A&^ESc|d-{ŖHtZ?[{Gۮ Eɹ? 7Mn]rNpB4QNMғ[URXz1*I>* XL :N MJWOYVjr6?_bF2Z5h$i!->oGB=qY$ĉ;Fo'ov /3iM*0ɡϵ 2_ߵS(0 +rgVaZ5v@zENS.o[[TF{"D&2EXzW1auqwڅ_Fl0U9D?AEq όԈ0,߬pLL¤u'Ƨ2sd ;b,#irrc̔j;C/?7_1.)@1cb +5CI( (̴zEKHf3U@j5IEލ C?tK7CZ|.My|4sqx[ LҼ`ҝ{?j׵V0V_ߙEՖI~1Rçz߽^ƇjT/KJ{dR\Ֆ5dHIpQurCnn:+ʛg*V59{8`\ ?9އ,DIiZ4:.! -ehwn"TϹvL&uZ C~J۸>oׇ~B -McTL^=.jYt(g D-oЫ.ۯ&{9;GQwZ5ǫd$w\ח3z>pE.>S#*pȏm ^LyfZ(ӇN:m΢ +s"ޫ@Ki!춺[/c[-HiCb il4vb`IW"1 _N h,2JyZh4oIEʁ/3\xyV LpDlװ9 ( +>ju %tR#,;W_g$M?)XԖtO`zK%Ae:SNwS-/ +ˣUGTfeLD~|лmO';ڡfUnx[' ~?W[#i6+4U!e(Ph)M4s _3n^[|SaIv/y|Zt|,s|`1Gh$[z1+&:X:Mb@m3ȭRw0D5J̯mg@$dG6,TyM&hS8"36#|Ęi | 7i#.htlr?wU| x3w<̖ +ڻozSZ B +!s}Or]X + +ʃg 9o!cJ,) "&#`1A{H!6 PP 9"L#5&>3L-6 7Nc4z訞FZ%2'&@g"c``Xdt@g;b9YB7*(6F BM`bJ>`> !Q9|Hӑ~h$xG+/oL4ʘۼ,(=ݑ w MIgJ%f"j׉k_ޛMNwLEFkE mo;޴`n]ZZ^t퇎],+'gG,Br^CjE85~Ninǘ\] `W~-'Vҩas5-^ZXА7S>=mv4.̈GRRY%'KbqAut%VB7Wt=˔kܷ'㼧Jvcؾ4O4/(8NjlᏜp}.j&,W.~#!.t:72ڥq^x~!r ? Lё[fAJyr2yg+KBV(`l=VNe_MCCӧ#8GME3\?]C4)bZ2Vl?9@be, X +Ўv6V,QD;&TPQ@I0mT]G^}lE<6^e:T)4@OFl??4V"d53FUPBǏ=M 𬆩lV,YI +5W|!k, JiIaNզD_lxrz@ 'd &c*Sl/}KOBNQ˛Ae\xj[2P5Vm&:AN6F]sMۑ7>4g,LJY0۴>g{gbZ)̛ ]¯K]wD8sWub>#\,Z 4x@Gf=I-d! pR4 _d1 i`e!AA,2Cr2t N `0b"hhE{p&5d#<.a- 9QdT ͬ *hhq&44VPA.ܕP%IJS(Ekv'%-F8ȣmQNUMf!s}SSZgInũE+mMZN^mA5L3n$m +[>~%5r/rPKm^SY +O@liR@}GfɼX[2l8ݬFى|LKFmkY +Af5N쨫S(3ԇk]cR%1/ѣ6Q1[k5RFaˍHO O aŦlbIpG9混Y0M5~pjK,Vu~8hFϬq$;᫠NS|8^4IKYIaTs`? D̋i\p__!4") t=muտm[+PO6LEWcX`aJ1"R]P*x1@&0&CmΘfRt` Ht,F ,qJ+' +:X:Ҥ45,m"4M$Fᐥ&D%S $7 JMZ&5;2ČcET7fr7J%zalI As5>Qj R8O`#]޽"1c >c|s{ca\wCX_e~9.дدTmjXcLq ap.>dx,G<@ CbAjznxJ42kVav3MN(<4'Qǹ2k(:777R`U 0=Iln+@]C[?V"Ka**Uf'VL~YDY~j&V[pkykKEolih.kFc3+) pԲt~ojo< O763 :J{*5~B0'fD0#!H$]UR U3&fF5ȶpykZS|8.Gyۯ`V|?@@6 +@(]07h)354 ^0[^.5Aiǖ4c{{0^X'VᘉD.mL[?LN~e\I}3OvB7ƐMں:ye0GvAAȗO_PWj_`ׯ}!c?zDylZAf;樞uH]V +2pzU7҇-m`x[ ;=#[撷n`e+hq9Me+<:W^qVyQAi"Z=3CO"{F.7!lp%feIl JT <;B( ՜kt,n^Qe nh>kfMs4 G(O]P0\ jPTYA *`)M2[Ca)b!䉷*KM1$\!AyʦSEKb+ZZ*̱;(6Ҫ- +̌ċd9dBV:N0kUd2S"cjeM)널*N%rw@VgS^(].l]sZO W 1Njq(;VXY9:/^(G"w}rd=\lpø{.iT]X:8۬.&21N7눸F⽺kz6ά\RCgLIfnަs_OOm +V=G ] y |}k}sk JOKt=D>B%ʢL +Ѳ5^wm7>N7X_+Ί F* <#d'I{4aF(CW \ v~BG0@psWČsbB/GtLr8 Q^eNeqNm Wk[[SCjRkhJKMc alXy̢nKLGj&żY}h,zmj{AjDDRɴ߶h LJcC*b,X SI=fVut % B3AitatdBK+&Sl']v +0wiQb{?f2PԈ} zB!ؤI[ ʆ8``1@޾Fq6qӴKo ~}vWC::O.s͉!!е傜Ia~#n:A2#ôX KDK j336B݅hBiHNuVN5dT'T h6Rj_ wEts aE)(9>XćQ*AC) \D!Տ2O=řmtk-;dgU.,ٌnBJ-:/u.irrfTN8< 䦯ݣiXy+=.6lz=CV,JkVdk7a]EV__uNZi ٲ&' =|n:.yN<2u2vęހy4,C +UD"iAsneKd 755hF(풝{w|!I>DGEK8 YbV3tKtx71*:>Y]_? +. XrthQǔ$Z/"BVr?9T Y)3lDon6DdG⣙oMyU+Wcz!T},Q +G\W&)+@P 1P~8|aNOOr'L#S"ǕLJoQ22&F:J_1I5 z]%&䐣 N ~~ m m +C67_~ah,^8=k,[KHJE ^qwYVfwx6)N{QPcQ~Mע"-l;Gӱ[} +L$yO? AgoR1F .9aK`ܶ/q=ǧ WUvRF66,vcV.-?7[7.ywRy * 1ұLϙ&z66Sa{J=uRj.fh; {2. +kFxFZCi}q/k/B6*_`bTzC@_DAE +3MEO_@͂uQVqlZZQbzM" u2s;5h/bq͟8\Bfg$Z1`RcS{pA0D HS)ዂLuRB8씥`Njca~F<c{o?nz) 몢%>]T^#O # E-?]r7lJB +A3loy $yu-)r0D)m ;MvtPޡBab+FboEF`ƗĞjnw~)Jb߃b]h-E4.jll2#X3$X-8c*5hW`(Yi\F> +=ր0[vL@<K0%k-hPyFY/ kY`G~m@C/07Ӕ#C_u8W͡dSvƎrZ^沧Ë=7aOl1 ѤfΫ-<\scDꧭE(F^,qm._jxfu߷J֊X. ٽ>I ~@ÏǏ + >G7$]n-nq7n"!á'-ҍFg ]\j, +$!~W/2?^1X.˵I@{@f˃!?;7clFtl9pFP!PǸ!@%eXXvp)ǰGX"`E!QRMAo KT~m^;VȖ"[/ yA0*\,RP?!Mz6 PMRIZ7&fil,4g. %∥[ADĒ )AAdyw\4rQWq#|L7\)>'CO& SW2)DD&x1-ǒ@0zk\E$> xՂ MFA϶ŔMIT _Vs@hJ)W2qKq'Edpeۿ]nP +wGz$\K g.gV\v#t0iı8ZTz.PoH2*n(]zdcKcqz1b}kEP+a|]cL.ib[p;ZcJdu G'[3wuO]:V m^gB^PUc%ڲ8Y(eW͟V#ES2eF1 D\c=U X )Mcql $tevCMq-rn+ױ1N̹ vyz>v;mڠcTY܃2s CWZ|ZZjL|0i 0j8HzV(&ҴW^'úcs4/Li?o\)?t LH(»P__ 8)֍3zd#Kl>Z0wqz[Д4iE,]+==Bϣ -\[RadcX` +}3귝( J}\H.<6pHg9+$c58QiRDtUjxnEdf'$XJAjuHZ, io=* Ot8+nO~?t9'}TوA; oz[M>XVf4$Q:߭<1y Z&]Ml~.Lv+=c'Q˺ ^Fp<=B[G+Ҙhw[ʙeO'G$Zh*n&%-Wdѥ{ |p_L|ėD J;Mv9bݒŻ)R +xS ^ =+X.)>[Fiĸ2B?ӟ/0uMOu5(dLR;' {i^ZAi^Wt8BI'㪾˼$4vߣ^[d>Pz+c, M]m˳1[ZQP5/nVI# i5]f=V_oE|o `ₜ"P)2ଜ+J( w+0Kv$Ƒ{)"4j*XEg|`grsgrYl?n1׌$5[,~:OUOmCY3u =@$#aP` ( + A`𔗶O%N?z″zNzZ"= 4CeX@遃ɝ.9;f-o3UE&ER#'"ӜE 啨 @k2ϊNO|5N-"c P-zJ yr' >ыpU0"ݱͬ?/چaA9XMwgGA힯g@dو]dF!]@ЃE`?{dYPȴܺs=eG"rJ!6Af,є&70!#޹%vWGlFcRiK1*KD#3\b WҊ5I!X.gFGUUJ_˟V2Mb5 Euubwq"Ć]p֝XD3ַ  D0^ Do5\yrǧߚ_43i!дiC#Aڏm?ח ,('#UtMZQVTZ٨n#WEO;_&M]<[2L Hʯ"%x(ʮ( +KQ>x( +ĒoDwj3950J*ߔI +ٚWHHp8W ͏]jLٹlsMn+!_($b"UtD#)FIYsєU$;gw Q[0L/SS,\?Rrx_va,vk@6Fe#Xpsw3 3xs:L=A;LFSt^Xe=.OxN ._d{3➷F}_^M~v@0p鋏/7Ь̈d%[ݽ>Ґa3VI)[ZIonv.ftmz&߱XQ{; FOcoN8۴-ͭ=iW].߯>WnB?;BE1ѽf?1 Lb߻=Xv)g4`2/@21*ǏMY&A&&=TBNϮ)𬜘1\|Xp,sQqIY#`T(Rx~>rY92HniR}3e{7&T)cP6Hz*o9GЩ0ÔukXJjTXX7Vf7AǺ`)4aL+@o0D65we_o6Íyǃgoq[˻@yL\Sw;08N}N+w3lPܳ*:81}~-rxVOt*˓Q%*˞58][D[ؗ6||n}w#.9%U( [jFEY +eyfn߲C+Z)3:=#WnoHH '>,V?_ "Fvd, GUƌ7PX!mgО^vAW8|b iJU%-e+7)D'I0 Ÿ}N?z*\6Y +K^( ŅJlA8a3J=8{[ rjogh҂Gx@v[|[\j)Zf}ʠ6~q{:km2jL˱*m ĸMv<!呔Msޔ+.E,k5amth:,zM T^RB2CsM:m24[~Sd?۪ttm%:&C-:[aHO U? +$?_G@.bRS-'NAz:pR֎5h-XG㭧%qm۷cwqx*=qPSnIE._ +0# +r>`jq' + +.޿>RmN1 +s%S)<;wi_0{vA蠋B=z<=)l/ ؄ %qG>t&Xvn +T0~uJ=Lo`u-\m:^9)~lyd;gg8CXN\O +(0? =eCAEWӯ/񲴖'lz4%`X&`!0*ר#*H2A0aR 9,w*b[LB>j)0rxAZS9}3$&ťs,$ Iq.LbVcfjBԴR*P:p(LVԏn6:FV2Ef{A[Ōmkj/llwODžɦA*7N”>/myՄle"@I=ίgs{\h0+1f]{un!t>e_.;7 0>XMcN]sd|&KsG.']]0 b,#%638moTG6q qݝB ]ϞH=ή}}U?)&!Gx &xΖ]N>B" |KK#;-eE]`^ְZlS27<@ gk+a\ち3rH[ ɪL쯨$$_?QNlOjD&7L%?/ˎ^)M_"MINm6 N$n*i@pPV.'ǯӜ*!IugxU>nv*ʷT?XbF ńH}-{>z>},as!/NP#;MePwa%n[Tu gTEmJu\<] }kat{YլzKvL;GG6,\5Iw +y!!xf{1B%;<6[:bUUQˤ\|??׌\,u؎v˓= 쌐3jY~\nEd*W:󞽣V2~Ԅ~=6pov*5o[L$sƏMh|辊9Bi_laLx=A6}y*KLrPT#$Rj]>PUQ=HBV +;0jNY}HNU ]`> mLMP +mb|eO"Q(@cU ֪Qjz庙).DjqP''t T~QQuZ{kڼZݽM:%=H`f.{B\tKX%Ze)|}{_ySp˝`Bʼj™[s5wd  +LDFۆK`6#x F5%k[rMDj|@!uOE%[m% 1]Gw +!~iMU2eÛ<)Z F(+ys|M /F~njb;OhJVj6pUD6weBl) JsQʖbVgbh1oz + ѿJn~ڴ^--B8ᇜ +k׶piF-LE/x@{h&먬ǽBՔ xXi/aS8Nܖ<\N l4G~]W63DupO 5G1RͭIS@A; +&;QknsY8,&D*zqWȢś>d,E{ke T5!5~rz?E1tl D8l plvQT6슕׷ #XDbLJPvهkkJ whJhSxCF<:yL،3a$?od7BkJ P2nH"jك""~_O|.Xhcwcb^ClZޥDx1휁[EJЭH5َx̌X !ٖ'ߥ9$^eRhg҄*$9*z6Ӆ2Cf"נACy\[?=h$;O]C/*ꜗr^hGR ҈R"O~UهsׁxQ+jHۜ^DIx1χy%Sm i +ͭrۭXh_$O'eF*_y Ο*R1EW>:{~1TJ_ߪ!\׬"$y`EbU3ϼK~]?0ok{2׼"v]Oo*&%]V&a?SFӷ7Uķ#~FKDC& B*E4BRыdE:u Cb +FMM('*@S"5aTR&&1a3L4D 1%OAGLܹxD ɪZ!}vtA^J[LX7L*u&^tydpn~2 -l ]b2[\quc{̸|Q&ϦQq?0a8LP-Lf0q{W:ѿb3Z$ieHII٥j>i"׵N6*m;;6";O c [!B@l$k@Wkhl5qr_aM.!ΠKγ40O|7'a]O)ɛezo adH5Z3joFEU\6|\wRvP`?Z!eUT$B,.KAB4S덬!o. !O>_s,H64%*w@;g`ݪڙK2'&AЪ* 34Ñ !ez.S(l۪sft>-/dRWuk͝Q-σe5?YdIYǽݿ6RdzxSo`a"+LÝ8{XQ@Ӫ~Qw,= ǯa-"ePl$ +ErnAw" u7m:lyhl%u?N4=Mbsh[;pq2մmufƋ -3w3) +#7vmPk y +Kȉ ]m(d;S7*Tȧ&*)ڱ'(Kwű1Ts'LfЖ*Lũ̙G^Lï(qN* PfZ*rtֲ.|cݴj:s;uӘ~(7. "ֱÏL7uTJoqrhm1mPNA|h[-]jXbfqi *@,NpǧlƧqlw$M<cszCGKA+ޞ"(eځ ,%fyi{6fJz5mD2DdЍY#ED(dY9㄃/x²kM blD*dyC@rRg +懔0.m=yLA cŧ(;0ItTR9֏A2yPp7Ɉʞg"K,K0KL,@K'T$dCß)zko؄VW1FƢ-]|^X1UW;|\ |ND܈Rr| 0^l.xCB,[$pS 3R;>h|hjYibX +q3rF5K~N)NC^:>1[{\-"c!oL)%P \lAьpcvFD{gH;#Op(%{9MVY"b;RjPaGOؐ{dOT"%<()b4=Dh\k?p̓?D8)ҭ S^ 4Q=F>V߹>bw3#A~y{jcN{#?:Qů٪w\Uj~P[tֻ0wP`H2'w5d̑4|fh[]? Uxr%l?C*@i7zod5#P~nI=Ɂ5< u碁FaaOA3Uͮ $Y[[aJ3 ggrFQcNKW9wum=u{ %Tx89yHAl|dK^rqs-5;.?4ImNظN\+17pg8V拝F>gρ 4[|(?<>#3>OoM}mLĂzSCEf'1x`'ڠH-gĈDE%G%fJ8 Ka%׍Ӗ=UXIq-'Ytgaxa0k~|.*lhytt`( {ztkRKUta?A9_Ri` HšTE#a*:m|F_ȵCۖX"$@(HJqAɃܦ.mJ]X)-9aWԘ,FvfBdv$ aˌFwWsqN9 Y7̇:K=_fa/VBVZiZ~j h{iy*Va +e Jo:-.9lܮ TΓ7A܌):alsk}?^oApP-d5_.֦`$Ip9xEF>ag}hB'"f|9jy,CUF~}vTܚp2ᕦgټVa.RWɹ4̘K!cvTs͹30M$LEa!_Yt'f2X$OP?ru5xGG43!y{3䠔0xژ_pERH)U{zPR BXzhCVԝ Γˋ  S]1Q2giSL;D!E`iPبekmXJ37VE`]۔OVhQۘC܍Cx1ɁU)rY}P_a[nRZ5a&GwZmc[O3P(\6Ik$i''9^zk}) wLnO6[(4-fsƝO-[y7m]KrښºP(^?!~|솸2{Z-!~v\ _|3jbkc݇Iܷ6sַ܈Rl y)ӝzË:.碛-o)dA$bmΕ6jvnK$ z0b = T!@C;sh܃ǽ$ɑ./OO~0lg.|,jS5Xr "L45Bf FĽ?`m{씨GzOŻpԆ4:XD?d'$ʎ!a< $o`j5"%ϳρ~x j:R'6 Z39=S 6BoWhQw!0qaH=9>xuN$ƗFcJ^|wYqA 3/t'N n'_:D4yhw$n!T {[tn%@+Z-zuWV;hVȝxF _A +~d䤤Ԓp^&)"Og貼 +K7r?P :)E+ݴ?|T:A&CW !P|ncmJ eE&,8gmY.g IJ%:1B'5 57>ƚ|a.jwz(,mrï l/7pX(% &,a\*~dNQSH"tZ(-92$Ŏ^ _n|Pf69٫Qַ8z۬zMp Nتy2>LUJq;wˉ!b-S{ƈ@3=q*j RzRڳtޔR{w+­(DI31[kС#  .@B +Z XL'J:0$GPSFǬejǹe9)}h %At*}1:o`94Fr;!,gBNY_k8;!? ?(s8 ,Մ|jUY{/:ZmxغԉGguŎuYL55 9䏣(pqnwlRIx*HŰoɢ_;OLJ,bQ.&K}xrY:+EͥO,=Ζ^U'6|ogw7~?k|]:|ˆGj91es礀Z&w +]Q)޽-۩ZbRMEůInO:~$G"?D~zW)l{CJPRv2/O8k[Zv?TƱܽRRM@K1JRU`"ͤ,ix)l˹Z ~:drYֺ(ŢH\؆b +!ȶ{$ +S2`κFA(f{eKpi+g?9Fv=/ϋ: wm:g^o&!h|@0V0Lq(HrՆy4(jO=zf昖EreՀZ^d>)+K$x䱻׮X`O{jK=Aqx +@Y'-_9htW;tQ +Ez`o>;yڬ8Xw +MlkgT[<[aJ #Ƌkf}Xvϯ jrT;l?Y,]nd'6w/Z$s7>V!SNb+!z.k6DV^]Y.U.8e?Kxw'BG ӥGd'K9ו` *HnQ mڸLdZMU7H"?WbfN1[V 㢌9s84|wp V:d hx +ouEIA]βh2byhtqŎg, +FK򇲇-=|ybaQ68gj'xd2~Q9"&Eq#^gWC /JSy +D=o6Q=55D6[[RRpYz6ӾIZU=.4~.esЅtj+Ԙ޽ZjHh&bCҙҫ&%7;~H-P_o6SU.J<̦Jwr|Ңgط'<#m,chTp +:Ç H$/[d&bDVǜggֆoEZ%oum{7Aq#<4:[KvUвסA|O_ت03VzH@Fla<#^eЩ⁥~Xi+l%&m-G! BN%Raߩp-eGI Yȼ* Q2#`8ĔoS(㤦vtΦ'ߐNQd ,6MM)4^4h$k\l(n+@$[v2 S${ Ɣ`M(h:o߼1ڽAt”@[u?֌͍6f{ncgP!5q>[Ub_Hx=wwtby%F;lf<ucyb(fAj`g!wK+ԃ**q1KK-\s1wD.=K`]ьplBbO&Y~oۺkr|_߽(;g02+);6svAZk%$f٢s;[@5Ia2Uy93^\ TphbAx;|u̞%b?X!CUMvT ACvZQ]f~'\kvk-` ~V3kqj[մV4UR:p'YM)8q5M: A^oT,*2@ۛ1Lr`RXzz_aQ{e(-0՞ot6N"B0e 9Yj)xXЗ=i &٠r$:6.05Ԫ;\tR-jc'! 4"®SD\]X>wohu!)i.jGRRಖ4f\jV{[ӝf͡+͞ ץܺe<@:^;-șހMZ$36<|Fu j깱akcvo ]b+kfJ"ʔ &n<ܾf`:(&2$ 3(h' ~2YqXrVa@0cYiq '8mmzm(cB#B+xE㓕OۿTЧAօAǣ`2RApL"a>HfӖ`i_X,| ĎpS5ϗuwuz:8]#}|X ]Yfғn=!-QJ@~KS(&s54'Ypdجlq" d &%>횿A{ڹobw%.rSGt.`E"XgcY_ kL*6!HX_o9Oj.x]N +Xt[%tɉU%b?&uoL=\| e=}g ȏja a#!f^v}j.0FpiN"{Q6Fб\BZDߗ?neєx_|\<|wtFv`dRu?!i6$sUۀO&D&OD$'M!C/nD` CO!-jqq<| "xuYyAv̬ym5*nbǦ;y67 U +>3N9:hAˏMZz=GOWW4U\wA5/rbםV9ͳRx긆9fCE4 i5GkS :z+2V=+AѣY%DYЗsN,~6;!bf%(AцcYF"$/JF|l6SmV]{yxd|R? K Ȱ !HS񴊗M2i#rLIF&kNlQ-n?wKY$BJtZذTVpӆ}l~+YⅪfiB0\86HÜI$Nb x[cϱa*{D6BZ_]L?/!ۿ;vڗ ?I \wn<8:%9%&y od-I4T1h?OT(JV'6/y:uj }a \k +eNcEBa&i"1=r5,ԨBHE88M]63#nǏgE"Gg \]V25"ʄs)+::U,U~ZվAʝ:9.nI<ݒyX Seor,c2;İퟳ^FO~m}@hŹ߸g#) ×e~hr7QD&gE IfΊ/7`7- 8"u 'j7KP5;M$`H|`Vx&pEVn 4=Bg{tA=j +DKG kٻh +Y5~=܎6+~Z4 5xU=-=N?/Y{f"$߭R."wj'Ck~Weuο$W]v.g7dJal' ̊b D $H @DB+bv7fV/7] d׼k7#HWc*)C}0\Ģ'JL,?ZD Ҳ~lG3{x&L+Q2m-|~7σ ׌ǙhSUwwvsueiN,QNdQS +0yksJ_anzt,&Gʑ A4QRKm8R5= *,K|0h;Q|Z0 \K}o2UT:cI#m.K^ᗘ̈́Ϻ);>[k <,C\MkP:SJ -:HyWgR}!}ZpHU *n!`V2U3+H+ˤ:w})&7,oPV6&AlD:i +ɑhˮ!8!wq-Tia`#ŃV:& ^N7{] +cy/ 9j7ZaRe^ݜTGN3zD~v!J}\Mk )Rfc I3R$lTZ\/)P` ,4_@ZLq Kd=5T,<^w'̍H7.{~>wlӱK9]hxNљ9ZYNG+ =n9 g& i!Be4>Ut.b?좇U<<^\ -?6j#YMx eEJEWH55,o?U[\]v[%@pww{N!gwsӿ`g\F ViGlD|v3] `f iW0HTvynJ8V53:Ip[,BhzDt"㰍B˰ԵJP!*a $p?\i}]Frq Cy# 2eYP{WOWy>mgk%zy3{撬<a_ˣi{88XATRwpP"!sp9GıiYJbabMЂ4h"22eG 6(toN7[@᱈o!2 +I%37kISe͗H' 3sk;Ҿ3 +fazLȆjc'3?k3- 5~: X6bgR[2Ã~\JT"$ag$~z]BYm?x|xAZT[yԼ[xDT暰s  <[ڻn/:ײ$9!0 J*];4K\xXZKsxx^nA{}@T\ e-yUZz0a(Yֈ¼ՐV 4Zzuo[63%x@(e +`#Zi21$8L(N]jkgo=T N+*yHڪ88*"n(*'ąD<_,LgNe(2|l,# 1#|K"A=eҳV I $`IcCwcCC'wVt̗DC!0k1"C2%br=S5(]q90ftoECТ~~ji篟Sx +K8h9~_g@6IdnתIV3918}{~1I2΄0ӤͣopHK$㻪A؅͔q`j 7$@CxXΘ.{sH]b =.]($ِ9,d\"JJc2 ӄ3"# # h+n 98ة0όL^%[O%mPjK/tx|=Ҵ/`j 4=q+ɖ1ISB蛔֢+~A ۞t'ꆿ,[% |/YS/0<(a>EKe_R5 +So棡hnqIV/GO->(Mss5k]נ%t=V yPas+,TEU qdǘVB*o6Ci\<%KĚC6J1ЋWꏔ*K6 iaѱIMWۚDX*| +ZآS1![5C0XQ#csI7)\k?^i4]y8IƔ9PhE%¹f;$p鳇h{~]XcIvl݆._ EקEq4hfoOGRV 7# IY>p##Oa0Teed9呴戆n93-;] U=?شnFeݯᆹUJU/n S W'}q6 f./[[7Z_UuUkWS k9,zRc7`dOJ!i9ESVk COXU˶⪒~&bȰ߅4}`$x|ny!cooݭqw-GtfNJ \C|Ѽ{w^87<Ⴗ>Ǚ Z!  +3?BB&׿URPp Lˬ-xLh0bླྀYR$ER +p,"صf2]7O秥'& 'mC(C,b',*3tO }jHӈKGq T=q(x:R*2rOjjPaIQ ʺ4lQpv^&t$[%DJ@'G0.: +95'8Eg<o> +N;nW;L h czp| ޣw +x4//a綿]X2䍀6 ?}u{?{CࣆEeb[C3'mC|(!Dft9rAx*. +hU~-90xfb_)h͇۬$U$(իLa]ЏPUxiYB:mH%,W /wsQ7>^k DiQl q@㇎2Ù)b Y .G +ܕCh&O"Df yOV*,(;gkz!f@Lh|32 BV'A6X|Fp(!v+ׯ_߆?hԤTD3N!DF$fQJɲ4U\|tEd~=&RiE15Ȇ,Gx(9)"'qDR5L>N<\HeU|9iqbXUZݞ>7nCu4خuexyߩ}Nز(GZV%HRvxܡ(8Y"k\x2~H/^V,F/%*se ŪMsǚMqjZbV-JCo~q&@Ry@}o4tj5Ͷ' B%Y9=>'eA6ޥͳ[`oSu<%P[8B&gJ'r[G>0TҶQt|ﰔ߹濕^ЫXa +%'=HE(toIF-P_0ېbf EYj}JԳ%19A9QP䵮(v>=Au6|6lEAUBU#4DB= w fb͑Yy7?K_B{#"f6P;^ 1'' .[rAڧzzڍW4@\VA_0ΆJ_`# +( ˓TKAKˠ%:=O߾1j&Zc$y r$ZPweBHolr0^`?`N1+k;Q^ +gsV`Ǐ.T84/!^6B8$3VԖZyǜjǽ23LB7W&I*fHQԤsp;Y(ݳJ:=ͬγAky鑘IĊe|nPR0YKUcBSpNiw}<2lQbccB5DKzN9m:ڎX\='wg;Xd,LLX-z,̟MЫݗV}}Aj֏O6 MY/hJ7Piˤ8}1QRqA +*j:=YY%VHQ Dro*ˆM^};Bi`АHТ(J(ٛ^򷈃gh .~r|,<5u٬Ej̦Wm)*NHF,a! ][+Kq% 2D! |TY~ h?`IFM4(jg)9BsZun4͌E{7(WpD6a._ڰ\N_V3Bk++p$dl +E&j:}6aY,u©y p4v>N7ѷU s˝ g7ogvrM:.V}ؘ5YFCK PɪqŨC$ ؇]ixcpPP5HY̅] F<87#HqK+ɠ{]kF1@MR >:O' Tg wQM% QrbTƤ^}>fҐBe`XFaiՓLdHF5PƤԤ" hR6\*.p-,!!d@*8e/wkՔU /ӏ)Ø&*1a8a'"=C +=jhRp)ݗ-:pcؗ>"eTD9=흺`h] PQP !̕fGE4dԀtf:bߡ2$"9ѶOFEқ 2gf3B֩e#WbROpH``kx2Tޟfg!s/r1fWf qǼ.oq5aJh·4 3F! T|omi<!*0$Wx$R5!s`oBsPG$jCgPG\~pkܬ.a.J3 j@%gn#5 ʔVrꌃ%퓴&ngn RS/'@1SW(44yIs޺M٦ jy%jq*2 jCB\?0ԓ,: a_o^bf[$M2/7 'M WhhQ.=9faԌ0=wit:YQp`t uf\v,>jZF}qjA=h=44^p1M{F7J/ap{zI%qE +Nܽy/`M%@ͭXQvn?G9d>*j= 6:1wdkٸ|7\wqb]DGx^ukƶ]fRR=VoK5bV\2`qbZ*Gǰ'Ü_'qk'3wQq$B{0 ez4od)lvs.*v~znZ]9AُJW;1KƛyF +6`1˫xb%C4ӽ{= qjV_Ҹy~=u$QU7`Jf}R\)cI=9v\]~ U0JêIt;ڀ<Jȥ|Mޔuݖgf/+^Ծm1O,Kqc[˻8Hs6 @^A#("w5{YgNsC$UN/]溺%Z򍪥fPLKcD%+ZVoPQ8WiD0\FAC|ꨓ>qe-Y8`X6Cy[;f 5ZIzE*=F_s6 +KcbPr{FP./s95eTJʪ'C'9>,F;x6gI'%Q.6ڿ-0rЧo'CѐE8:+s)69J_V?PϨ_v98|SŇt(;.]2n%2gVXBfរèHꓓ]M퉶G'r-<}jH ]erBשmj۬)w{7f[Tt А1 )@OuϬ !za$&ٸߌԘn*? 'eLŞ<0K2–P,O߬~Jdk0֒7>Tn>b=^u|B~xBwq#'D|M9|BaT.~ !B0J#rvęb _I>q= "k€)d] ` <3!ٶ* (lWݗ#sUio<*Ejޤ"6qY8dNPܛi>2Z[oYx%{rZQhR@,r9#seqD߀B600lusLYh"O? Jٓ˟su62v m߽S0:U=ύm9ĉ/ފ7 $" r%rx6kh>3)[+}^r\͸nб0.>QYC8U`]r{6 +sdb$8d H/SOw2hB$S\5+V&Znݥl"B(we'%҃)CObŒ$?}{5+?\~:9=rOR kRLNZDʟȱ'!9,]\ܯͩUĶߨV.k}W{gʏƏ/H[cJt/ux%o2'jMWL}aɀ,5!"mOXظ+,1GFstQ"˽c.M֍;0f˯pխ,J9%8oA'5;dmwH܁-BW!e}M!2_vvpw ?:F\E +ƁCR-¿X~끤[%"DϢ3ւڢ@I!v;&-Br4w9\kXY՗&TU`g`ZEEEtYe ɢFyl-]qڃc:/Œ/tk(f }皘9=Yf!$R VPhhM!6V{ Y i% :5Q?re39$?Yog yڰKPO F< RKg{fXiR:ԑcڵRHN>%{AǓ)*!X/dus[HM xXی)]cmG=*sr>]Xm^ijVoKBZR1 ![6_5|Ē*(O &grW;|cmawi[!/XussR& 8FXOp< K`Ed'f!xU6#|9 (#U ~ѐlQ\(B/'s cIQTHg\ AmARC\S+*F8Kq)8~}rЋ@.YHQK$ hluK3)uM2Tյa;lbc`Rjh탿/U'?6F$Hۡ+B;~ QÎB#E@9k(q @;-W w\~UEbV'UH ET֏ȈEBf9M.xʌ/|7-4Jnv3I6ԬPnH3E +-մHGvu72gƻmT;qjׅ%E;H`MOvD#4}dᮉ2}Ä+s0zLc]sR/1) -5 鈫Je| ԴhPZOq84}yVWw%3߱0znF0djLAY,*A4J6 pa*jAWWiHo1 +h:NU^;n3~Gۆ\ +'\P1;X&+>szFsu7GR'^Usr,L3UKΘG"A|X-kDv02^< \۫Ddrv"Ts;k,B&6ݚ8#3 7QFǰ3nKu3˻Ԩ Pbtdbp\[6u$ngO.߿_cXz}M9gxֳOQF4 SYGZ#Ș՚@`Q#y}+t{&ޯGslek3++C;;#OՄ[_.$=& 2]߈$a w<߹Wg˛GVu~_=|x3q0*ebcV4niۏ.CYki]̺ۆB$hqIN/enނx7A&+#_ R7zך01 owg\+f/ l.DRh",,Zj F[|t VfLY2U+_WH}L7侭@)(tF+WXlz'jծٮP!Y0byp uIps4U:Pa& qHDZ9ȷR)֙>Q$xOb"+x|9ca["Bl5Os؟Q.r{^{ D̓S2j@Sƈekna?iXf +x~2m(LHt'H "n;;[s +}U]x=t7}aSi]^2I7VCDDHuדn .|K6e.zIG, ьOJM\.NqmY*5qДa_ӈvXHzݬ]'I.9up1YeT'ʞɀvQlx&M'| N&hnul1ux~w 3}MP&pWABuY1Rϋ(de&(TM*W]/=j!4)Y:Q8"Kqo~bnmſo *nvf=q,3NBx ug0eK7{0W.R (86*Z/.Tњޟ}d@(00Y.ޙJc[.bOHa*&8~lj`1Kpa%1ө 4,FmX `ġ9֩s7 ^|n{1p]*,N Ư:!SpJ"+[`X=*p?2TT<]_L)^ +>$}X5]pQGO_hm)DEtp;AC!Z]׫Ŗ/(-}3^O-nssC~v{qZa3~CjH!GdJf)4щ@0I"h"m zxREqҁPrOֲ@g$f_Q>S|`&kJڒqƮF$.6_,oɆcfb,]i&8))i@ݒK +MD-D B%b"A2H0*XD|b;Y0 +{hx4/r{0`g9FzJ TB-I ;$'-6/N

WYZxA[ǗO;saN[d@ g# m?ȒթjIEl/q"Fo "Ɍ,0|#."}x`\s V@(C-S=bdeqBIjJs$׸E!%!!(u/v̽BAV]OG뙟}@IddFQU\B։Pq$Y3T"H԰_\kߍK73,OeuIqP \/sL﷫Ao![_+,MSRS i'?uKtk -ӧFdos^.]F p~][b][ISRgh9Iޚ\?]bf[/6L|d;ۆ^˗HD ((qL/tc6j&?'"2r/Phqѐ? +zq S`QVPO8h}EddԚɳ`x]^f`qQ`/,/'ItPpYxaz4NʚQ`ˡ$]!ԎE5,sd.apZ +)e(tx6|g/o6LrC}(AhYe7疵€1?Yn$kzy2Bs6 {^֯ k<<((赲 ǐ *E,%E j{#ԩcč4K(~vR Xzn.nƹb3WT,o^[ J;r;; +T_ESmf|ǭu?rtcx[gRjQfezؤ\9$<-44Ɂ"BDS۽z.~:sW=)yѬ^(j[! +YJ=GCx 6ag?tƫ˷.|O0e*Q4ZZ?Pz׏~ٺmI.v:!b|<~+"e< eC>ujRQIn2aAbYũyYal/*R$"0Y< 2Xn*zeZ~Lp`6z[qͲU"%z^|ټjLJi0ܝ "Kg®@" D@Z!b.@j3ǚE x@IEPQ \#X2V|{6!jŅ7nA޷?B"H=~Lu,v ~4{KI؍Bg-$Ֆץjrd˄uxjq`\٦R #gTRk8B Teݨ׆^ΌB-4)$ 06b[dHj =fuK \QtUWfO7M~:$cq +BN x[| ++xcv]N⍍u Ugػ43-7吩֗N_<7,jY#izkks>IF qU6D:/&g%p~s^+Owcn0慑)"8#`->Aoa_)YX]#خ,! 4&vD6#} ڹYrP!Sc杯ө^Awwe=M ү|kt5=򹮑(TGՍxMLdDO<^|XgADɯQ_|1;!&0)} +LJjmm/=8eEݶL +UR}OMՅc1|bRR/^O'[}zտ4k饌cxfN@x@2MS`]8|~(98Heq$dwdFv9daaє>R̫XSBJg9VR p೟It44!4-t&< +HJD5#)Z:?L(Kf\8d |OO_EbquT45uc\`!1=Gj`#vm'ŪԖk`燼Y6oWSS#m#wH`쀯PZz@L}VlՕN~o4K% 0_KARMRtބEد X)zxwk/zohr7ɜfŲ1̓6tM0D?]7TKuu^(x+s+qDKiqꃵ[fkƆ˔ʴ p_5f狼~M9]96zGĺ쟮&1vY=+nM?otݭ<0wAo71Q7Z>}(`{'OPC݋HI)Z>nȔ'?].Ο$y.mw?!(hk N{<s:Ξ[l>I*y\#}EKŖ'NH%@Հi|7Bl'b[|A?kz{ 戢'og@Lɵ&Gsw~(.!,+][%rmQ0)vdOI9@B\X]ZՉ[}X/ބO]8䜗#\U4&\.;ׂ?"4saN\5iK+0Ɣs\'.DH]Zٓ2 7;lՈ_foֱAoNnn[C B C/Cqk=8]hǛ_LSߞ q6J\t<p KB*zt$5RާZ$]DV-EHb`̨ yŊS 2S @SQC..EBb2LWBY,bCG? +y/),Vf +x^G~Xp[4IǑ#G@4V=xmxGq{抡 F{`5>5Ԅ= 0Q-\MP,{r<ˊiu޽c.ۋI6EZ]H/{.(dDP< e5_9^M6edCsBS Z+\794-<#Z^h±<QqCPX9uf=X%Etr΀q {/sAp[-lҘ"z؉ ܨo&!y W00~./5*鸽P}0ۘP߯w'/E`MV\ߊN*=q[Lt6R\ղirZT烨يUw"R4kldBS%1 _=ԀB8`ZkU Fyuy9Y6.fE 8ALeׅwVgqCQ6;/ng櫓CvX5j^A0fGsIKp6OKGUJ7rNrt%ƅuI#cD@vٚ;%R^xqBØz@ v;lݟ$0rN:¥ 36vt\ j[9ȼ^ 9.1d& Adz _߻;u!gzZ=\ . +++d sW5^6<&rx#6bb=Acv|q_w "ESQUbUטXg)Y2*rr()%9}h f a2/J5O>Fŧ˜Zj;3}uo$s.?<\ɍ4'8gR[&JQ MCw/~6bEr7lmt^,"+ yׁb@_7~D-SҔ_ J$YKxCћF4Syӝ~2j>uXV` *!LBVeĩk-PRڨƋm룜5L3?cKK{sUVwQECTLܧHW;&m<_&iӰ6)&{-ű@MdUoQU[-LC2j0lX rn>cLs\S9d]Dpۦzv )H}btJ4&=>=99='jUw[U {0Q ߟ.7vG]N)[j$/_ۿد%3m?ܾO]}W^!^\s#9nN5buuWxȼ&>B_ė=/#H#?*Y嬎:Il(}4/yCoXeK/;!= V FY/[ѝF67w['vWT L(mQMCkۂ6V!JlTerE[(L3?zg0ZJjFN"VNI`dc0F+,y +$&L#EoQ4BJQ&,W4"):R$Yk$_G/i1G:`Ŋ^vPUV蜹busX`WAN?=Kb{PSTPMpi/*( 9 |opT{BrLf]jjUtRoV.u&NV1H8t0wVv_g\g&4x75D +<#٘؂@d 2z/hfR7&@+H`_"vv%.0uaYYBsyZ9yf}j#Eu;Wà0j M(E$_p*M]`% +G~cIgEF+l~0Gl kEm UZ o.h + x-0tL +7 q_}udV/K> +l Ohc%722!H9ov\ nZUgS+ )k'J&Ў<)\˷WN\s Ϧι[wG,MAjupăԜf +nW' +8'UP2V8~mvQ)03ZZF344G~w''mN-bƶ !ZK?%Ns9R+5OŐmlY-&3FPi Ie LA p1ä x,s fE! Ws~#R鲞λinCHҒzv(akP*7/q]AAwV={P:._o¸A= պ;}p>- 5+B?ٴ?6$:j.Xn0mOŷفc\1B)Njh,#NZh,+0p@C7IWH94:PB>4KvHPJRQM_`O]T UuQ)&$-h:u+g.Pө;RAk5=AN/0_л2f][M>n^0(3gJ!Ak{*}L +k NB30XC @0w~wvCr74&e;=^x_.ap _ZBS"~ֵ̡vD۟pIKeZ$BĐM0ns!IYZXmЊ2%9,ci뛟խ}9A)G<Ԯmз\z%hk"rL2'!d]rl%&YZs([r;xè+X8_ZퟕMC7:Z?dDPBTX)dɉBD? fqab*%&XTҧ=<ͤO2IH{Ս5{(1 iQ$fߵq|l̉-> ԊpU\OpzMseRV 5-w$ 8_ +6~NjNc49fS{VKϤ: +}<ڞ8*nV_ޫ9m"m;#ert˛sIYLq%&k$[^I[5W`hWݪ𢡊3 Q䟿i3*ШK4/SThǓƇF/3np= Nd /SSDjBV7r]ԡHH(:[/wVt2[Yfӯb.˄~x Y콞98i:3EZYEߝi.ۏ+ 3o\bG2pXt:V͘g\i/*5~2В8DhP5p}wSJ-k!K l +>kԽx)dn`P7g~vm\2AD&5ٕ)XwWwՕ?G{gNi2Wh(S+deHӧI3|'/ؿg%=<.' +9 Ca `Q-È6]]T" ˂VT?g> 3KE14WC][OPЍd8ZD׍<!nNK>ZU[wWWי14B }Enl[x7+^Awi[&@dE缫+1R2N,$=+A< ]*uNuOC.o,9#I6iN%DmmāZYZ[a&'^nG>sHU{Րu(-ǓxQorqPg?cHDO<p~]*@©{)dĈMOL*@),OK2LٰxWZ;\ ?6sa=c96E#5M>OFU"37 \(!Bގ|dm7{{Ov ~(uN]Y>;|fU>Vܟ;KUNcϊNn +EZ()ͫw\u0s& ǰ#.OMס22˷kN*.~1x/)24estl|sKʞ)RRʜg-'%1׵еWGWRXq)9(4ӼtL 9^۬WXclgˮ9a* S R# Kw[%Ѩ< W)&똩$Id ,r_$i$0m/}r +tȕe8ۘ98_(͞Z99u7hfX.!97?##"8JȊTTl`%\~&FTW )ÌK'C+nv䂉(fSO,l!Aق-ZH^s'RU@n濼ot sw߳rkkxi 'BRQ :\jq%.Bd|ĮƲUdI mڵ|kݘ4:V]inm48;!TIR#n426iy[8 3-)Pj! :VRwD(qxD +qEbl59v\ J.;XQ?DjNHɵ. +o<;9z~H8 ZyБJ46 ;:>}lt\lt9JIMnfYa2G8%v+#MDAX ӑh2\ +QR +Z VVgYB`0za%LF {oM7~̡̥DשOdIv]\2F _:1Kx#MJl?U740x.m"9;RB{ jMrφ&C 7\M"GYҡu 니<13vߢVBV@F۵fN@cåh6~=ʇ!T)lED i]d?w+Ǟ\i77[Ͼ77~V\t/r̮6|i]];%3kkNJoۦpLP +?3_$ Tq+ +)E.sȡ!Z>WjMVT,A7ָ]"(-cG>؉Wd!!(}L< :A ]dHqImS:VKivWfoD#Ë# 7[$h16j:-xcBFRj  cG +h..".Bjap9T<42$Oʨ>'5u;4"wcE?C}WB|7Лdž! +huSTՅ*w`|֚}++A mB/< +Rtee@# .yExR-u$.L. (@h{MNٛEkPTnY*,0 zD|689={"25^_.$P=Mu*z>'*yW]0|UUo@Ys{x=skyw%t+@M /keAnZtutUF>Coitaap"_JSO<_k=y/K":s,G/֧A7' BGK) BkϪHX(R(bI^Nub}7l栃sXZi,c`E]Q +ϋp>/EHLh1ebK|BXd'!bO99&sOO^}AT&_]3f$"Vf ǐ˚Ot?w!sG.rhÙVS!;^ 'soo'ibM0@\h Х F~:HlġVg0C H71RaxȩeEGG󩔗ﭹ땋Ce<]194 I;3\nSg%WabIyaŸ1\l(# OCL9YI':`F1ڇW Yu(_PT){;7?5>r/m kz܌L m$]j1 }ߴӾolTe K]a +& +# +zqu-eYG-zRlr?}$M'O 2Ϛv'{ϕ`Θ/E[ף-Ϳܳa4xh )Y[T|ӬjɵU'd&pdtZd} 0K!͌+G{gCQ#Yb2ŶvFLHM֨։e/k( ett0ؚp H;y%6Q1NGAł?==>~{gpP'U7$%$Uk*7rÝ+0>h8XcB)K`U{v@jhԘأZM7%|<5Fi_4YL]9~U*rѫ!$p[ ?o"OcWBt6!; dtKî/_T,7RȫQ$PHon`.* +(B+UiSmM&:0gtq_ԍ;}LA_# dmBGxDxJ,)RGW Q`0L \QO֌f-:V#nzY{| s%^zO(* 6AZec1sn:OtBSnaCwKl<ӻ.df|7:~ +F8upasGe);5q뒿)_ 5O`Ѹh1}1KhaSt)h!`^j8w|Bzr߭tUDL#A"v ,g)IyZD ~VWKѤ, 1WD DZV3Kq/SL|!yݜ6=&.b6Ka?S0zW}]wMRgnXBbedK=,G$t wm8ZT4O4/(n3塪?' uQz[[li+2rhKU!L5Q孋2DsX{\Cü RݭRezyGڂú3:9F\A9YM\N%[8Br=-iދⴍ\[ڕj);CyR GNy6{MO@q}b7}&)>o13|HN*2> sZ Π-gEbT`oי܇ڊd*wh@__,a8>[dJE<.4}+9x.TYRt!ZȢyOO0N7/F%x Lq]!F>>]K7Z:ED[g  /,8vnM*O\Uw2V,0~`JJu04*F ,>Qdtr͑|f>?oG ++l`ROl^`h! AJiBEE$0 }}B!'c~X[Id'QЯb:CL>A2;Y*ִ>+e9FAd0GUM Py*cq+y9|L69iP"кDT2P-Hl0|"r1&YK}WfmK/n7+m[mVSQ TT ]H#)Qr܊#woh'}};\_q_n +ӽsqJ%tHGIy;_VV ~ǏP)/BNYdEBӈ~2)4X"@H]FE"pAG_f:4|yZ8t{ur0psJrah<ކJ҉t~GlKrj_]:l΂E?>78AgeEIJ &%鸾ZDJcVڧvc@oWA j.?%cD@ C <8d;Yíy9vmiyLoGV 2QiU8k 9N63`5 @dq/'aZT&/1M![wp+~Ҥ@v1,R¿7wխO,?i@1BE1 %QY&{1{dASPUP jTИ=Jo0koƠA$\Cm-~pđj{Yfjo jYfVȄߎ1B]gYFLum $V@X^B#t;FLǪ>cA 1&.u٧s/n0j=b?>{sGE(F bnokcpg⋫\#쥬_OW{}y(vU[вvKi5xNp!XZr.a<[FM(h+c-4Qu6&%8!>-0O-/ػlWJWA0{<  Tl4pʃK ݍ=(Oo}'Us5n SƆ[:)!#M'JkuUzIC㶕rfI"wO~-bwn +~.]+ܡ8p +پu^P,qI[=JN,`1<hyni(|DîPr>[5aƸsZ9vp +3*ee @Eaz|pa 7QnO啩P2 !K0iVc4gq4.`'5?U wNwAzHL + W ~}o6A*`i.$ij1]Tt+L.ב ;9%y D^J͋'}z:, |2WN$kQsAn4lC5B=8r*]H]g,./'nJ͔ٯb+02s)zclll*R21sjx+hxuyT.h)%E axxȉR }BH,0{9Lxɖ#3]ݴŒ8+j(A\ޟ~-/ORt +UXun캼|>4j +u%udS0MO}9o $BvswH9rǚ!,Dǯx!]i b)8N(t2zjL(Ei 5 +\٭ajhhni6~z5@s_͙JAPeMkH5&!i6uyByiQ}($; + ZX|7rLefA%U5Ͼv̂\~1 LΈ֎VˋfG8ӱWPدXF/,$lx^e +n4P +aFC)$k+lO8-fo*V_.pUiU>/G<*@yk +APH;@[)E<%s;XLɍ %6јqן}Sɺ`I%#M: ,>q"-PT1!hsXRlR[ uuRd< 5\9goW7֌4`FruT(jZ S^_i/-??:֤{Q {) hO<جuKnGw#`S>J"8̈!b7ynBrgux.}n-/J:/],f1v9c CN ڬVҸ==4.6NҦIE[LVY?_pjENT/u-Q)*2M1DEY(Eq +áZW3b%X +X3-ء&oV/y+^^&;/CP`oWPm%k1W8 :aRKAiR?T3yXz +^nfH_yWxFvyS[Xf^UUc2)G`9TkljPϦg2VejtEU/tyb>R[䱰uXr &'  +o*Tp r^bMz*)\7[g/ۃgA0FxPP],j3 +U[h^bd>dr05Y\x=*&בbԖnӘs~2{&٦FX̊ +Usj<p'BB~?mU50T~R"lp~?ʫqĸ:y0iOpVM>y<\L[J&JRKidʎ(;O˽#F1O|>^LŲ^#μX ږiU?-neb4Œ8]/e8p5\H/=*mAr3&1{V)<7aVƝ0BDEN-J!\{3ݕ{ eup +sjj?<&?Ef9|.Ѳew/]/cN䉄.MZȊx]>3#'{td`> N+ЧPXF;s}SuM:Yx:?ǫi9_to +TbE0D݄7&޿^^(y11o}:uقlCseh~B;3CVH&C|,"xԗXDeUlF%Se?? _cBCm+p%AiX4nISft kBnwyjޖK.C>[oV`lZцuei#T݄2JZf*3熫 T~r~B%Ao/"BQWxAu`[;TƓXq -"`=Z4Ox;< /ud#?}Mf79F'nX%R=4îw%,CpIw:<}" +2xaR%wҏɵDž&ොTAH#'.ͥm䝂kdX߿QKxJ>IyB=`sɯ?9  pr_P6iKCf`ބ8Iu1PY P5&߮k;s1)}ezv-hYE|T܏AQdJ:φ|F'n&7HSkv]@geuȻ#b͑@ԙ_l+JiZWBlf@.{Ɂ$qY(1PS.AFll$EHQ*PKQl&RXH(@6k02ŦQ/8q SMԦD}˛8omT%)tLa/@>ZW5NeiבiXPS=!#7Reh y ^4oQ2\'DTOaţI6vz*lD1G\Bt>Q֒&2HPNf(Gxc"Qĸg?e7 hrJvutҤ`,W3Ȥ3߮_%mRu%'\pCXܘAO˩kk/UǕm~&#]vݿ\`:ha:;[tm>G#e3$$<Z4-v/8LIج9a> 8 $VMOpPK pTaݷ`*ue,!!8qf,aqSN<.*d/Դ5QG +H,L/S3Lt#)TZShGp[Ci `|EJ9sT0s{.KrH2k'S&pi,L pua4Q~ 'AG|xDѨrBQɮq_amUI8?VWGrM*/L˝jBn5'6^FΒNg|ޘȆH?,%>^ ei_tt0Ct,lg+tM 7K+O7g,3o2߫?WW9kxy~dDC@wp*6]}xʖB/Ɓ_g&9<=~ON{c槬]nWyr'ӟJ_Mld :Ecc+$N6y(yc` ֆo[}wMvGhmeKa⥠J^ʾ`Ѣc…,;;")j*jߤMkyԨGFYP("2&FU3 Trci nf/k>ypD*JI?r6<^u2nvKE@HJwNA_X^:~3}Znb]+D"6(^B)BEzPi#jqЄ5Р).Tbyeͅ=:ۘZkIW%rZdX;cۜЗk6NidaA"QJn>t{ѐ|0v +o8;|g˨ +$|N.ӑo1NQ1 z,PO6MrPf`5&ֈOdaE[8:[q"ZR'iߜnm`U7JeD:Ky#P[do +XrVsԄ^ϓ:Ucd\`he8,a>|0oJydld9Ƀ^ܘ#j|Tꎍ"N)qϑp 3G ?^cH ib?"~ܷbJ@^uphy FRƯ.TZ[ lۻt}H[E 7薬e*bgf=Z謎]WweZ~!ՠ2)XaQNVk"jҫA(c|/[+IeAtٵ Gs4Cn&*>fWYL<: +.v|~/ %ZjR *0z9LYvJRL0L>1Ue*_[cJ8J92R;uP*%GHnn~t dL \3֋VMxa9!^`cqk`_%1c_GPiҌemcAitq\NQr^y`L9duزҕ ]<R{)"Gyy%0f:xh)S1Fnh͠Q"A&ߛCi>m^2Fɸy- Ԁ8oDFB +(6z*nJ>t!;ǻ@'$pNYx"NϜu*q@7(Ů{CX`ݐRcq[GJ;)s'hn/`_߳  +:5AguBwU,AK\6f$БrᴤsSHo-T;q\̷}6ƋyE A §΀&hAMЩ.Ҏ<1;=5֐ ͧ母N~r'[!ە8bVg)uD$}Cw*7}QI`=!˿N?ydBp QWPTjS +EG6AOۘ*k* r[Lqa| HGkzrD c=ckĨK0£*X&6.2pHKhV%>g; u.Vh-|uRlIo=Kh8Wmo(KY^L9:wfX0jCAF*->M1r麭*ODžfF^zFI:f=Ň ՘*sRz1qhCS9BxQѭY7W0 K A`2fΆmUq1EȐYf8xyFՕ$[o&\\逼 +<Xـmu1ޕq_I?ijn` bvs\}S1%f<{tQ۰],5J3:uOwla"*#c% ;brY`iiyX^r9dwtć bewkntr$?<w`UR| Ǻޖ4qWrX0bMkɳEޔ5m+T1襣A7oouyVa'f@Yu%?W.N.L_x.Ú]9O2}44n{ǯF+^ Wձ[J4#i?5Dl;nmLn*!'waMh>ԝ@hsa׿0o=yNUü0j%ͨOQwJ55r(+Q^ʲs qǙ'?Xr4܈s&JFjdk})G=x&C"ksXOţ$TSqA`qZAc(TjŢ7H/!gr-;!o NJTx br$:??txp]Jq0DakÒ`I^ξ3~y$傇2 +EmEHW{5,ͬki:!o/n/ﮫݑѵ1SK'0̽?ZZkwc(/<ˠ@S4hV_&MrwSUi1?)DWڷx)K>Y~a8vx'fo{nwDٛ=F&mbrqۄf}sMfzW{ hsĺ!5}d¨(AUls<)T1u&b8 nQJZrsz->?\]_kfErzЬ9xszr9E 0g -M c157CFd=T +7,1GGCs:p ֓ToKY>N +oЯ̓"E*%noX4JLmw5r</ȼp^ /#krL_ LxMܳZ9XHoAQ*?~s K] e# *CTyOq B4Sb>thg͝@wz6/Z3&p |ŀZoF=7m^&k>{D&a[{WB!1xF|J+8tƊ-_S]QE8u9Z[# ~q̨2 JFj}T +30]yS5hPy\FV9[Կjn6 +ӷ_OoRmOP׳oTZ1o i{S*!K8/X%Tz +d.EaϠW!k[oSeA?:6a!"[PovX% +< )փ &`4k˥wfn…8„#I4@jq2$96jh&*GOa aqYFp7 >`j҉'s*(BGbl6g#-lޅK{Q\ٯd"3Q+ds W$+Й^ׂa?Uǜܶfe G]RR]=Ξ=G>lK5o + +WV,dOظOԝ=1<zBmYeؑxtn]t0A}Qaz4j^V~>x/43 $p7aZTVFtݚ`3/Q+ߴUwB,Aؠ g9g!.tuX:J@eunMͲڳPYchv(+6ywyk:nt@wEw"U 3pSfpȐ@OE4K,](`Y xA6uO;},o-PlZ`_6iTQJCnNیq*ɆI/"0.XW?7i掉<,_0E_Tn}CbqaHck#%E}J:oՔ4S(R%@9O XEn׸\D˂^RS0`o݆K!o\ +sϒA^N@z=8qS_[fuI +2QgIPm[Y֜Kk~0Z/8D'Q2@ GkNsx]qɱEd8sMgݴ":6!υ@Z؆ +YDTz]QT&L%O`A(@Xb2l2gq:9sA 7jo{sn ڒ&".dpo!އ=NwX>@ozWoG5UKS ޜPEʒ+ͧW,<%.p覨׎& i%9eF_i6%z_^6fE=iv# +V +V=9'z"S"y!*1a)n~HyReTБX2'DWR|ca.')hv_tG2p=Y[ePAm0q~QBhk2 m%-Op$(ͻ J>A^^f4?=϶;o&MCc=&ђq05Lm't# 錛S{'ٿ^hJZ;J{ [[9$=/_˜54's5bc9٢13/V]SHP^}Y^쇡R=n"hp~!xu>)!z7EQQ3O0,dz#^}?_T٦.]/y_ܵ0~-m<· bx; +UWwBmp14H7rr vp.1~@B qB1voT[^^0y&ʉ%Bhd$c~ߠM6 v'7u]y7[%.f$_ bdי"s%ZH,!h)֭Z$f@\婘l2lڋ(-,2F(&t~'ৣKV5Є`EV9H VҁeNr >71={ |}|kC~:\̸~|3CPH] Y$bZؤ'ϯ2+F=Z=vzmkɤ}6@Y_ͳK&P?[0멝LP`|r: SdVKhZ˯ups=|T($p1@]^la$rsY4t`"NyrU<4E%!޸^J$' ˛ǭ-;$GxFk^x Nyӏ6p3}F-[n )r/\Tɬ7+y_XIϰ㿕T?>M/%H]r vG"H gHGG'Dp_4jQ=sT/V¨ٽiN1.9vdB0rӕ#Ce4K125ᢥN`-`Sn fL qe!͆APTKKuc65֍2{?K!/7GEǘ.{g*mY6,]"KyE6ۑ[ZzI_υAwkp+[^nfV{qI)ieQyN:\ԅ8?lFv[hȾL0pؔXEUkz1M9W.&f?FGࣆ_+pVgh(#1Uk:O0e DAb"fl_NOdE(6UixBx1\xSWV,=Lvq5SXeġKmJ=c]t&3)8Hp0^?%^FދUTt:ϛZ,r9go$8}ӃCpvގ7"S7'IWOTQ/{~&Tf,DJo,4wiIAbeVb* dbF)3@ܜ9,& D#5f%Psgp.Sƃ&^ʶnj^:u.cJk};}#yG/:%S,.kD"^p?\YX S٠}' 6CU85y3Ɵ!@bYI݄E/ś0=tW'`rPT +9f\ywk'qSE/{x8~߲`DQFӨ?#wg""y8):*#4ɣ[hE&L}",rx([l{ݦ,+Z~X~䉍*s$tJls?c3qL )Ak-MW]^*ZjOQWYLVF 0(iܭ ZPU˦#0g߿o677cٔBP̹w;( +]h:! +K FoΤ-o2]U_r/. Jq0RaF;!f#YƇX(:jV`0ư)-h91$F|t4Z& bC-!-ԥh’Xţj/&2 M] =R\(k\FHos5K^KY1l.<6ces\^F &0BZ +uAx%k]c;tFkuI\1;V#knq ǍGG!['Яæ9oܶCQNQsf\G?SGVa̒ h>`e!k~(֦z9v# +2G=FhHV,R 3![ZQ<:_"ǣ:d+MN/5ڸɕ}*+:!]P8xp'< +L00N>+Hvc,o=|NUYTj*]v.e;hA +>tM~-@%@b*>I㋓2kǎ?4 \8~,ֳ;V_ELWk'sۈXR Ѕk6)[#_"۶IV'rfvmkny"չyoV'7q5(PFɳ +~r`ڰ˧ַyrDy5e~TcEfѥ&0;[Dl1`D| 9pW}yn%ef`|ˮ>Iq& +ex##W@ZHSO '"<;9c=f}N1tr@8h,QF}%7/N%#9 뫠6#<=Stvt|`^QN,DU$ʱ#`PGl V_$iAZ&>ÄJ(t~[#yapr0E5"v2z2.\XUx֗DY^c}MexX԰kGq@zXi`mh' +ՉRAbڊ[R*hDa$j/D*!u)ܖƒ )Z_N6gYN6_F"$5qre/39 t)Ukd_+*[?V„0&GS;|y 79Fjվ]{wމP"P  M& vX {)P`۪xhF-;3:$HI܉SxoYW"93"~t/'DIܦLYBӀ/#FY[V5Y*YxHQ`7k}XTDEĵ[dxjӌjhM27 A*(^1j3Z$el8P^ +;,z-wvXGDKH~2(쳞𜜣yo.FZf◃7ffv2;ª\{Ctn>9X[쩨c I%˕tRO1"Ni*0lpiasBI0T˟ml+v[x[ +urBjW(L/bld  +#g]B]O;֚a&Øcj&`r5-3ٍ^aaXaIof 칛2A/\*35I ;_.= +uo/)\_`ixؔ \z(# ]Kذ}X` ѺƁWS}px+?"t!cePۜvg2rF&LY7j=q&3s[,Vsqo5#}Dzt)EXUxQ6hϤ5Ew X`>&`)vP(b@`P,{ftE/ +4́>L𱞺uibuḊӘn\siJ9(J"M3C-[9E%j6}$RAa2@FKEtk H`Yne"Reoe#ʙYuNp?x{2~ +0-6=Tm=VSc'Kn|~})rsDER%NB< 6g)δE/TɝܟxÜy56!sst~:Oi8tLϩR>)iUYºÝ3w;8)6B+ q +n +|ir߷rrQ ;,u8)X]duk&Pu :?,U\ljtߣw@\V*w dy.)8hy/%! l{'"Ͽu1X09/wNy[7mNc6|c۶mVc'٨<ښ][scBQ҅8ApD*&$͹t37\:[9Y6Īrsb> \*:u 80b2o4Bar,,QJ+\y: +j*Onp|G@4l)9eFsgxg"kQk ԖDK*r}qczkWehurNtn2^]{Bofdɣn&gjb髓P u(c.}Vt||ގz)z>\)|?oV×Gofkҝ3K2Y<خ˾]ERŐ NtFGa :br>%70ݎfxhBSCTͦV$:\ƟH&js.B AդJ.ֹ瓭hKG|=4_*tmuMmϑ5,؀)NO]%_?ɱ2sJe01pDT0rzamI0FP"x6yt2 33\uRSNqj+(ި_0TTRr'p@hBm[xj<I0yFi=UćзԌEY7[W*i9Ĵz˟́o_q$njt -JeUq}K_מEg|y +:g;N r|DiTRf~Kx=j|^z/Mf> 9AP]]}t%tyCrSt70gn5UfHKYc~}WRmbbɡ6wSԄߧESw&<ь\7$5 aKaV*j.XyZ=kh]^.[u)1E}S`U.up"ɔS:EޝxPw2BJ,۔*A}#ڮCa\T? 5kytcmDZRh~!^#2 +qq]s[jPAĬ19-> pb\KxGD6 q5 &X}wK%[Ac;`N)SoJ&$QTb + / LzYy Ue7kۘPրzE(7dL܈.8ZS$q*`KCh%^P#ix̓<t-&+:qyhzUNr<-V[Gzzݼ+Ub{(}fÊ/GKOV<~SQ@9ۦ],|_vڱ%25sl&@|X݈0L +2!;TUN;c-v32CU(c2C]@r"*2TK ?&m REse<J%%t-y[Psen7WeYx5Q'bs4p]7fͰ4y 6G, ^ &m+pBEMw;}uMGDEI%IoЀbbmhba|L،xJ'ҥӎa;[hA0vbè +P{mTze&%jOe&1{ +8BX[zp]#|WœA`TI`PKftu}HzvtdSUiQ\ +I-=> S]H2ߛ<-ѻ-p~~"sjRB5TE +T#K^;Yn6'"\PWLJ 2x4>u\'IR< % X?O7,N"T:-eNqįESFH,,خ tUEMyu0J.. ڇPmCH;`Y! "ƪLhF6<N]M1<= dyZ ѠY. bkS6XZ,JoC)Psr#PCFˑ n+X^S^VY{<) =Db` 4Ȭ| d #83'` 9 b[bPJ ^scZ#$Nޕku1Н_}ph隆=nUXլ=w8lPn2 +ѕ*RCL\?m_xu?.gБL6`%+aPC1!/@3ވeQXḹR#LWRۜX*{_ .Ԥq5ıIPaߋ aV>?n*r>3縢F_L4Dȷ|^hwEz_θ(_xztt}E!A"&! IPܦ{"U@&vDMa<xpQP^Z{7>cyTZfp83HbtlCV)nv0≶Bf;=IФw6!B.1Z^mEzCR +HX/!d{5Rz&䢷p,޽"0'~^0\2вaӍ޸ڲtٟ%pt3ỽgכ3 +_,iѤ'҅=V3Lٜ٬H0iߍiP8^e!BS}-p+XlD]II@'&X-wGʈ~Z-ΐ&U뗢1϶#_9ݾ8P{5^]L업I x1TR2Xh#z^`&z<0jQR +DdS?ܥ,$!9*yz$<3Ŕϯ3.秗.kHc + D5t}((CrdQ Y(͆[o`e "0m|PRlH4^SpURY OP/L|ǫWPm;(Oww<77܇&ĵ _Al3p2-o[aם{Zۖ$x rD^ ze14ԦBEG#G%C*TSTws98!!8j%.ƃJ})c14Pn $: _9\Dʭ+)9ʤ+w l!_ilr^#iIzchHNVhS^c\`2u3<:k&lCm`kǔ6E^nhγۢMj#P)Ŕ |qq]Y_af&/̒;Bġ!Ю]E$E`&\ٛg[ 713B{\/vdQ)*" fJ%_j݁tYFr" H* +8@EF! B&мAR㐘5YϫI [bq s&+ 6xgKXÝ6F{ +gx[]H(QWx\ ,Yl6'ї1g[r?lbCܩ%:?[/IcIʬTܢ3r*ͼy8\/‡Uq_w/w@~Les +z]\:_y#I"ݶX,]ni_/yQ_+|-u}_ Y7}(sbk$12'#P` }4۴o5zѫEs2.,Y#zYvn +|5E' [ϷnQzbDOx+{65 3PI#`a`zQH/ҰPgsznXuYK.UɿYImh4Ǣ%NڭZO\Nwݖ +Q'7XE!SR;IpKb3FzE#5!&")CrFP3hJ`I>kh;\RX'JNdh p(X )O;Y[YDaoN^ﻷV+D^3_JU{z!/P߅Zc(DH5vu鬴סqXF%yhԱ⒑J: c\ܧlpL#=G _ .r>Qx]!hDg7gsxwB4B]0hĽ{y2ʰ!_Op/G,= ;[ۻz^i[܌TM_ [/ 2Q_n 5kT'i ^\Y**VNF=K偍( *S(MM1fnnsOlR +`)dpDDV;ZIABL@^3K(gJ#lxAZR +T a?K25^to?T*ѫKwXy5L&jGbTE.1@U`p#g xV͙|zC/_59'{jb!'qK?IEJ!4%tQmHI#E% +Ӕ\xׇ.ZͱG +&3 k ?59MCz:'3hJ1INLGjGU:k2%E9ǿIz?k6yŤ6>y(ZG;*$(K(r'-qtaNWYF S4@e2kANÔ'{:N7#qh>oL,wf)J\mE^&v Cz?-?uu #T$xPn 1͘"l̽%B::y|XcN=oASja6(>x|J +(CN[2z(7rh-%LΪ.R" 1Qd( +F˻bƂGf\zܚ= 9,,D{K$[,*F=9VV^7}3D= Aq [8(1MS`z ]ͳ2HBF9PGo,Ms=y|KbQu4P]=shX饬*yvA w۲Zό:e*h&Kuqu`Z/~oHBCGMBK_fcFQtaXٵp $ !krҵn=fZC߷îM5(]O +%y͖< :r'|wUۙ>= rf ~;Z.UT ۸Qs!DFz$r]c6xk7,5mQS\(ԂiRRs'1(hvH:#θ[W!ŅsV6u䓿%ab0*7I\DBKJD%Be@9zCjׇBւ-F Ŋq޿Δ1@雎X UG aG*<A-i$L3DJ6yZ_0P,BW.X";$Av߁{c SG C^fr>џד03/lbtM,T5rLu +s{uL]];d7[9ےL(*zwG3]v}%P U+rzk +8/良u1VEw0Ǽ4o4 pXNA1>eY=@ah +r] +IƘeg9=?ᴁӡ^JݮlLk 3 BKO~'O0/S(^[.F. ϣ_pxJ{=: y;H:n-ednJ'g7WG|E3!h26c^rΞ]U5%w ^c4ӛgun "[;❄d2֪ +p4ŝ5 +.8<\\l="d72az+5^V?-W]wFEJퟮ\Y{Lfafp4 nphs:´Akf'Jv=uOKK+dtSbSHOJWS" T/I"5,r/K H <>`/(O[z &0? +l#6h-CrJ_:y&#C&:!pCO0˹oGV1jRA%@meQ̵k`K\nH杯eѭ[ґ@8'?*=5{`)rfVэf<8-7Ӕ+Yns +C+ꄅܮ9 Q!a8O9nw sNnh:|Ifsg]`bj=8eН7]N83ĉ-pu7B;C]s[ϯä;wO| ,_PV׎a}vqNgN6ܼ^Mzɏ3`f`@*QJQS2q݉Du=BݱA C\"2mCeɱV5^U[Zudת zr++A;ԟTd$HC5RDo Qh$ [xi!(5t&(w.Ź3ޱnrnLd+AQ ζ ȠhfYlhmp5Ә$0&:B_B1`RZKټ N]_'zy{c7a[\ +6λYw[ouE?Ci H[(Bԏa:)@X0gKfEKAlؘBWyOmo3d LDqΰI8Jꛨpe9OAs] +}(:!~/ dtݿ:1RY+3P/o+EAriU_N$7?u  D2QExNΛђ,zfϯt78_W3Qлɝ +# %#\_QTF %%:Hj~ydndlv0x}t NCb@"#L"Ij8D7v %.$9ʐXʫˇ`p8g9v;"HPkØ(E~'lTnI#O"Ѣ.❨Ȣ:.ɯ.T@;0{5Wm6+:WND$*e)V8l^ZY6SuA: +Vu61SJh-"ЍHŠ-ŒWNvwĢQy1tz7RuΚfɽᤦʨmY`:xZٳQOC=én2D/i L#KatdrSVN[VcVhiǝ) L[A!9C?T-=~NhL\^棕gư`J)sĦVy-=B L,M'*Ŀ$O9gex@;h$ADuŠ4H64#8f|i 1("9|oP#bqSk}焞RYJW&q>4313#KbD4*& \^ŴV9L +)Ua!MaY'qKLP^Y:kD,܊tnkYZt2Kg1'I @KC.)٪2EMѪ +nv M`0͚ECXb_A.fo/4uq9l.f.?AhB yv4)c6=@B>o{V颰a.IK9(.ku -[Ғ~9mx?rKmp7]p2|&}YC3Fxd{5h04 *4)nU0UShK4x)F`6DzYLPq!{NI5_PiHNNVDO-O.jAD5SűߋGދ ²OEu+H)Gb<~#gI:ң03C5qt +A`oxxA;1 Е=;3e=jg Q/`z`}p]FU~]m!JGDFF 7~$FJ[F(_YWhbՐک2/ % gqcZ3<ʗҧ"@eo*c6i\&2 V*7< n1 +-~S$]\:3qw:3)";ЯoVQwh+s3v`}GQ@VF[[[| + R8?**6BĀ%uUh,Tշd" %h!XHFZpO׋H" q1XBI+ JB?@EvD,,l)` +>C  q)YF.CRSО@n'B8#X~r-}ֆ77 ?!6gb +EW%UCXśv}˩kNv+˸qM&y_N~5 IAHx9'36+l_L,s x+NNTl3a?KMR.GZǻˣR&kդkٕWת^n{Q:W|=DeXOk OφߛEaLw6/+\0Yj +Bbz֔ɺ*D␓فN^Wc nF7 W4eFJx6W[y)sFܞ^m9@^MBvPSVMZh=T/xzTaeQϰJU-[`K6LW -b(2y +?O?T\o =TwCOS`8_LtPsL'cwt>qTE{JhPJ- . 0%H"%l'](H%KNhn[)>Zf ZͦjIj^{cѽPG<\1r75Jw1\1YN3=a a%ɱTsmЯK)N"k\$!F1hTL<\JJ8Uqm^th{?-_1NoB"tHR;1+F.H ~ТY@n"ql$@&N>VW)PPrTK*"SbBEaP͍)9\ uf:qL-^y#>xMbך8sLu@}5S6m!kի5[Nک oXwn3jViO{[0 殙K`M榻G>k$鰌0TLyLz[+&M@T}KlC1+lL1{K+L9۾ jAmlJN2AUvp"udNmoTMKr85 + +l1sJwhi?UlF+i*/ "dӞ0 hX2a0лJtCIЉH~Y+ߛT߽XVu|r#Lv'dcog1Je + 5RZ5:I ;5 M9 ) ,!g(dmi~wiVX!eIA 漫N#i8Enx$"i8DVD>=d𜀖,}ވ{7@ M.W{r>OIa$ !sҎr f ^\E%YI2!f nUz%;x[Tpo ~dou_[}N + zRNo H1<չ!IƳ)9MQW_|vi3jlZ7Å8@(˕:\٧@RPK m>+RծH߯'Y C魜?8AD?_d-xbmuXqpkFUTKkb@Tȳ\83qI&瘤U{hӗct}){)Z鷆قYuD +J6$PJ1LS~8=o\?Η8hv?nsշʿ+'1dL! LH -!c9gKksfQ%/, _ɨ׊QDB_n^=fwX*Xze::Xk+K"!M2:e= G6<^Y0b-ƛw2uj"C O'(XX5^N!>RHDxutF`^H[_p%Yt :E{g W/Fj +j&DMLᄊ{nSm宅/fJwaKѫ@:$mjdF=RݼÚ'ύܩ~T;+(G?| tgMn%LND=> kFNE{)Q.H_êixR?CKRj$ˬ9­DBVk@JNڱk%5gC E|侼 ?cwε;5to歐[HS2 r:<{'8N?slB"A;p5d7)0:fh)j3:{Jy{_|a_QPoILfS n!b9H&v'6Bimjk/Tvx_7bE3 uQ7LORyT+X`:TTQPЙ~HZ3?z$&RP MP:A Eo:Fg\xU`CKRp$|4$CQ4/x{}xzWzGT:5&*^pEcex+ +E+bZ%PrdW IߌWwURu + ';)"@G "#"&͉Ƞ0qfڕc1u\u_918y5ҴI-*6\o/ـbgA`Hb)OИ}Ax >{iHnKNvp5?bՕ[- "TS./Bec,Ea:a{mqq[1=M*T x;Q2^97|X7pm}>Ҳi;վz<*6eAxa0R%-hq> IbP&J5)%|P{Bmoݗndf)!i ȅ,ǥز>,7_u&DM2F*09ü>j9cŢbt' + $Z5#h.`G,DFX6L\mn#8ϓ)_T"Zoo5WHv ~\[,=m;\N"ҿmRř%eR0tDD'Pp](qQQPQlNLOMuR;S :8}PGDa{YQqHe& c5#5mV֝m@F +V5P m|ATyORԷUٟ[CS+F_m^g6ZYƶib۶4$mlvض}o8vL=&:GEd1ʇTP" OcFSwfKpkm._W3֗=jp9$5/4EOo 1]kjruG`c:~{#|>};>G~q}@-LL:8[Vl? /%uHd8Q RxpB-[YqT+UMuUEVYL9XeP5_1 -, 據| L`򶹳@%/T'ֆl:rvcEo]v;@D툄ET\~DIS190 v!3ÙPž::'nnn;mT2 ʞz}û X)UՊ`~ZS~a62:sGëyaccafe]>l^zq/C `6Ac]natF (c5Ճrq1{ "V1c1jlÞ:&A*AK8tr-1 +V1=eڵxa?[{t99|xpf^KȠ 7ժF(I鋠)€GxVa@G|ِa?~MC[+i 2-SdGQmFG˻TTAE^{YMe9+DZDSzIrY_|"$f=`2 +hG"\.Ȋu%yːZ3 Mah] I8ohx{~ +E">N:7!<( [u*M<9QI22_+6&u3@d%T$mpMpRRiWrv +/ΟIW Nj뫔i髴;]K5V헓5=ss*oOϼ0``q&zZȶ{!_0K4W.rѬ*W9G/:>%=X:"T"<*FM5(!} /~l`!}Ip; V>ܨ>jCNX4D' 1  + KHnؙ!=W2h3ɻʪ2;?.FYܮ!yeS%Ʃwr"+27hw#8M`S`=Ֆâ)!?4%9dxU  qg!Dgyai%&}UxҚgf ͕\19UREY\=fA)v݈N1Fp;Gk'һy,&y n]N(l@&ZGpxj]Q_sgկse+|Dž/OS=hrvqy%Y +ϕ 'q .c'DUbtлiӪr^Gȩ~]c|ew) 7%!J +KdܴW910-DpxÌ9{Rz4R- U?liH8GsAJv*,GFW+H56y3!dhhH(=-|/!u]HlpgDkl?>q} @Ą`_!w^#ڠhL} ) +k"'uh#@:zPi jjt Vg3sD Rhn=L`³,WL'~~jݹunt3ĭgHsK]vNC` R4}A +! ,)ߕNjС)s<E1nu1GjciYVjBc =0%*f,-|`kd'ԔLycF{ecr ^Ǜ6k[ 7K v˫2֭MON'׮[Q5)":'i+Id_O%)Sect0] +B#ЂMDpJS~fX=ugsݍvnb6J5&%v9 Nϓ|=ITD5 DB4 6hߚ9cY9iԀ=p^r^"jmL D+0LRTh HXRFwАκCl[>o6z4Y}@RUJZ$..r)>kL#1Y6р~kq1:n05+NW\N7.5 cwdƩ#u2}nb}A3F*Ko;1U _?>b2}rn]̚4s -ipj# dxm4:gMJu"~O-­#ݙqJ/r)SnKiqL) +BD^cHWE }#~deQ͍;uuQhbHg]P3{YZ=vpJfz1wœ(jkv>%zj+ +줃Owh 5`fP/#mO;Ƒ4uՙTcV3 jJc|U.-X_TVQTdx?}G> +,f(lz4V 0rZQcĹ]$f]RSCntv6K)dEPVXL^3=҄6IoUQPAϢB!dz``/vOzb^qRhD<*mr<8;~|C&A Xv)QEtS[Y&86g_1#:5p:5 +0 t(hh!ȹEmZ?Z?|93~1 y:W2ېÍo_MFK|;K(8%= h{o,jQiX0 +;q+'f>+wLL0Mmn(33/jѯDUʶ;Uɾ~ tY\J$P%@f77qecvdhTJ+ۉVÊYQ{n)0w|}oS<>i^7ԫ;21O=YDz[%QE-^򚢣t)@=tRk,\k!De.\.8 24p?u}e&7%.1߈=\>N nVZJ iN.be{$70D`Q&QY::M(Q5,_=Ri=2痩7i'AԮ$KfQK!Liz₃ʆmhU5mgY6j /<8J[οoPg;e|<" ,萨"-PĽXSR",J_ !1$]\^Tі{|A-(z9Qs"JDji8CX%lG Ba&-sb]NW|mB=ZS"Κܦڴ::?%le*L$;!{zD걳!4wij¢?dD@YѨbVOCzzw*9Y󗙃Ĺ*!L:F/!!)y_.'iadҁ哚Lqd i@>/VS=NPاYhwT,{}PdXvt_ڊ9k|>N%j1m̈UVM_bTQpxyΨKKɅ[fDC%w,&Do`5lɾ듐STe"\ss0d9rq[[nG7%b4. j ^>z1ܠjDÿ8uIѸH Mm2N.w]# megz7Q{ 8<2@)Ċ1үdD5 OPt%M-oQ̤3Y鳯!W11 ձ05[;Ff~H;.Sv'3^GܚVW.ҧ~ua0Ď`Ig*^:@}40ð^c4nrf2=* +D>;S4H\]BGǻjii.Yy +[{t7r6bā8 +}s޹ ,pTF-,3i~CU&UytPؑfT;kܖ`QMQZ:wv7˚UZ$ #e8c6$"i~]G'[2NCo^;$K2¯ɛ"Sv-EkvibF~9RJDY.3 d~j1TT@¸|BRFeqc]2Ym~(VQ'|#w|\1n} i:f6ڃB ca1 >0 1zkn."e-\3x,_ۂX筰UV 4NLNB<*Z/3.x85,9(+d }to;9 )yun_Wg.#C3VWUɔzFQYAE)%ڕCsz̙QpXc+ K`g~7PN*l5ZkďoZ 7m>.31w{6,U˶i5dBٵQۈoXp>}39Z*_)n0CV? wB?E-44eJ-TwBTt⫽jП]y![CXe]5gN.w$opJ]) ?SMT ّJJ#$6g~ݘsGt ΄)M`S/[Nla'Y7) }eɀF *y4SQ;б.C3ݖHj PX;toOݡf0b`Ic;8s}[fc aSⰭzUT v³^0c:Yu ty[eeh$̽{٬/.F F ?\|,oy;~'jusLsJ;u~ .IG7qP~"VVz[-p +/p@=Rn;S~UfҘP2ԁ:lҀ/ +H +SGeGZ\b^ vt 겗'?ρR8P +b9 ,DEٕL:q0?`BV_4˖eT=[WSۈ? rP1"W;u{`*WjWcu͹ +;摄&DD:biZ)KD[5ܷ (LwF_{T r[-^l`4a뙍 KVxm/щ +w1-wFƇkaDQ~.@/2>/)Gk֓Y\ ~Zt8(R= jn7J?44<)Sds{p{^s}pI}?wO'3_"9;Y;2 [!+ nm:AOcMpfJŵEhUa>18 ߿/Nr*c)_5:029i6LGYnI`앃9.>*ň +GEl;&e1 ԨcsߠѼAߪ6zNO3Y5E'bŀQP3ר>0q^۲LD IyA5vfEmc'mgGgt>opِ=3 C%f6%+e`y$|`PGؤL!&uJk>] ϠKo&\VDH3 Ɲ}v+u5H3UR)yӸ]_$ Hd؈٭8H&+kUvmH~mzR̯K3%Csay[9B/M/J]BcyGzpnr*=CSl¼4Y7jM b Wit}$ FS҈:|Y4rHܥoX5P K_rxP!&^QXX} -9ە2W]`*C6m׾xȈ|Wl4gfJm@hI"lʃ/BZ%kӯ\4^ʉz-U w_/Hwz7E.J6KE +5 Eo۰96MR?Zc +5(̮o^N]>LվNuL]US FcE0 HBӍ~y +ܡG.aN +:A7dW2[ ?2}nrd~ +Tcˉ d-r K_c5Qߑ&;(;Սd + 䦶)t O@Ia[%N|ILhuJ1nO^oeV8OÈ]xy.ի_wW[yZ.wsD M,p@RM0 J4ZA5^&ākNŐu_t:U$Zp6BV^iojce<&3aG5ˢ";BI,щVj{a`r[}D::"ܸ  +3Hλ)_⼘n*3otiRXҜ{.EGH 5a=qW ~s|\bڧ +߿/;kMx4q)r"+%]?4 !ZJ6']8#9<⮚P^;9#W6DL'&+hG &z}M3 +Y4[ sF[H>l[:r:OX/BH>tL6 +-HvgՖJ`SEdZx|lI.I-w4R|q{C~fXH ,S 2BnX\"^&]KF@0G +'5|Z4^J3Γ6l(ƫ`_Ѩd%lMϒtg'x1BI@] ULj"IrܼR{ȇha ,zKU?̾G`²n"{Ҙ=+m[GG#eR)4SAZ9\ xAc}tH`sj1e kH;V&MQu݄3_1N:g-o tEa ucƨ?Xͦf-*9ÝnԨNƤzл..0!~A(yۤ| j؋_#S+lS(Lfol_mB*VDMĭ5 8}n߮:4Eo&Cm+ 5bRֈ'¸*+GJc@_w#DG%MG;kP0#ٿD{Jv/UBD#!9Ȇ :\szU}.su!y}y?͜Tk-deZ^=sލAԣg=QN!ņT,ν8ȳˁօ*\Sޭ^ \.UX{+9+7I]X^y&BUQKh$jbv" Wr\rr v%"( -#rO-u1Xou|wwFŽv&mϑa4;c0GXHUx[Q& pN9oÔ+2lhqtKg͖.dI腗:oA+Z2A")#ꑧ& +X#Z6Rm7Fx  l +z&BǪy݂a= B:^r=Nj7'[ՋbiGpk^qL L̃p ua4b̔@S]xG#XUF$ 8 +nL7bsc!jws`*ץ|<):W.p~^?ÕZok2}m|vU5ȀW?.G2<qZVa$vD^DwFUn D#*psIVL2 (qC'/6eerXˋϝX~I+гBg7b:{Rgqp.,"G6ĴcөoP8O MJP|cwUHDd_ f]ޅo5sk0J"SX}eP1 :)RMK%mڵ >}N5m2DDz8f|}x}֖V^?[.J~ܻbxbc#+{C,UyS޹yұ'V/d fzٴIc>\%z7'yL0T,KM"[󝨡`oE 1'Ea2ՊG{o{r$x!jnՋ|k=T( A%^'9YmH$oܕxWM(qH4[r([7|r٨kQ`ɨO, 19Ӆ]'*?ϊpf@2 6RmY_Qid>Z{'G\#M[klx4ثѧ`xt0P"b,E*Jt!Ss <)Ꞷ*QNRPS C-qX^CN +a<B#))zJ.+KWGk+QTqBF1.]9 +`_+xjfHU 2kCj0Y8,<9i蚟E ]to^,s|luek0I[\Y9?|,kqjq&;Q}TAb`>ݺKJ·D8r-p'WˁDCeV>I^ct9H3թ _ZT|SF^*RE&gUTBRh<%hb *mqmX[X.#+kn̞͎B.r !!/dd 3(dD--r}>5tp-+碬ngҭ=6=[edAdMUq*lAlJb<6yrGm*5}\"T\+=:Y*SD$LDPv$LG_oXS_'d"sA&_Q̴@4el-!KV`^1 +9~O'97j *EwC/F2a8N-M3S4bh|_6/49 w'-n{!}>;8]8swB:8t+!QaLy b [dzmPΠWvM^cvuo5kI;N;j- MPr9,ѕOgz1Ql#:IOH3 *Mޥwzdbԋː.b_ +jߵX [` w> W!:XIjSDj:?Dq}.v]ømus7hSuOkkuy0ʩx|``-'sp_(g&<0+\ k"ec@2zSrRtz̧'!-֍N*)5~^?i?ԶP5eqR,d/*4I&NˬO@ZOX~kȪx=Qõ=ɰL6G>0il Fg qT 8[Ë5~U[UAEN+ԕϹaHhkAM~r-pz㝱!Á`A93忍 d}<;cևi4G' {P'[Uz)>q ~LϬ5+)#&RO]bi Y>Q! + hN^~h<y:+mK.` +wQ]$8~l[[;6l͹ⴳu˪>CZ%*7ȧe-`#R7i|t!?Z^3Xb8z +}WWjeFvF!~KńY!P3к%?TwX]T#65SBw'+IMt|$R~%A6" 2B]XE[v\16#Tu^_,U_'d(v bKTGs$-# D8Dӕ0Jxh犢 m+lJFҴ3=x~@9~oE>?!L~qR F4Z!D|]|IaX iKXPGH1"oluD<NoC7VT_h9v:cJF&>:~1F٘<iOtmF>dMfUѢA"f,ln>9 hy4KN~ی\xB}S*mVdғvc-Svk3p˜ĕ[x( ^Ώ9P#U_פaɄk9ȋOoBu;p%u*v`)/7x.^W1DD72<-Zwǝ?)c1JJ (skuiLe1*|$??^vUo_NaPr7>\UOˮrķj̕W⩨0BCVnA$?ky 8>_,dD)YBqgE@ÓT" k! ;OCGB֩YI_H&#lj'N @DZGzN]+ʙ;&՘P($!߆{!Alo""! Nf]N⟡K,,-i,-$4$\O6\rq{6~| +F_NyA?Wv?#yb~? +nw 77Bw%5۝Kss뗠v8Pr$m^BRS/~ 40O%HOP;Ѹ՘.ҵHJE /~xՐۦsg7/$H^cۋyrnkh*$T͞t39ܙ3(5^HvЎVDjD 0O4L|x}ǪP*Md݂KĵQz Krq<)M򜨄CՑ䈣 v$B2ZNjQfHmkC&MS8*{lKtKv좕QHrP/e`2ߒ;aw kCWk-bZiI]i,8w+K$Sx  xf_^X7'2T%]d\PsfBI+ 3 A&JFJb(" +G&,i]UEwc.T4&k]̉r'.*If9k7tA1bM3DоVtFƲMƜaKdI2[\m!G-)ϣJr&^Ͱh4,Pk/e@ 8//^+Sdaߍo|lb=N(sxV^S(R c$ + a@OrPvCz+w0eQN+<7)Y2D I4099E`D;ȸoM*g㌙i|/먑ndcFL6M}))o;~fLOPC>QvB  }XPЃ"Pp6[s +sjdG.w+S3,I3"/&C,mn9GP;ROr2F Iޚ|R6fOCdF s}e/&LʫZ NJ۾Wzzr5t.qTQ@7ˣFQ CnOpjq$zm@ϥOLp|jHBvTZ 8|z?;)W.Xz8f)Q+bB_+JSI5}DqM SGV/_mjG}teI7C,F**:Ԏs#P*~˺c~"գFP}^ fb:e?o]@BpQkNu!J +UfCXAg)AQuZbz7ijh+5EPF S;{F8ptKΊwp^ќ$\_i74X+9V\F[ܘsg-]A&ɗ_mt`7%+%'ae`\'jJawhܭYY63֓*+-yh0 +,Z)"B\Ǥz \$^1a^O,p{:zx)9ՅL(G|-Y{(c jd9THø >jh{8+Ű Ў9DVZtYy`Ua^V +CCʣ`Ms kQ!-SCnM`Bݷ*b.w{G* 2Fdg2ٕܜQjRya%AD[',W),I?769. +[MlR{ӈ䔘̿W!01hD|; e +' kjجS _r[&aRS=dîȢ(pÕ!Էo@b +$Ilj$El^%Ik\#G*§O߮!Gk6.uytsϋv#].a7Y $IG;vمm6۶+46۶mN㤱s]c}ya;,0ܼXT)-D]`~55\ +~Vx+0R0_t),L|'5'mjě޶37|d) + Fa䴋c$ͮY&BR(Dy~'!}|ϳPfD5cBHVڟ/D*BF>I`է1׍1i Dێ9/" μDr&;N LnEcJmB +u]^_N)jh+M$LjWO#]C[v]/4Q%:p$k^Ϛ[,Y%הkgSkͨ$S3"-F&,qW1ECvzg871Lݘ3Z_GސrZ?̳^>&N*Z3-4Fy`3"2zh zaQ]x<275T_꿕!Őګ ,)-%>QU2wOX$|hO0a$}q|x? [zaeuޝ{#a9p Z0d*w>gۿX wۿD]}0y^7`1/Letm;;e>˵์ggq0YպwIp8腠 +}kE1Ipr K˘j+~DN_z;N夭;2MX~:^,WFWU *a4U+h˔=*orw'x~|ѤE)=S A~?vNZFzm(0\TJ֒%nNSsi9l Pm$! hѶѢ}LCM٠_ ɷ ߞ #R'` "Sh(7p:BU`((Ʌ&QK#4"7gR82˔ZDy,hîA&ݫy`1ZيcތDG;[ CPܻR0[}@qq~uV eQ{ (UxmԔs3MpICx -TkZg< ?HY]+n &+>GFYD ~q_!30`4O 37ǻYD|)k J7uR3-&'Mh;WwFR.x|[2RʬLS|ڮҳVDBvnwґPsW뽿$W,wl5n u8kKIB4P L.*[X'&j/ # `0}ӌQ6jU&mj ]M\EHV 'm{)А([3H/q^P0ǓfZ$qeQ +o? +cU4 ٍ*DCGfU[ԦV׹$9O6$- +I3>rx̝jh㽛lb%o}vtȂ.@Ua8x6!bM~PFhTeL~s(}Y",'E1'9e=Twi9&jSck1DRnj^jbܶ.(Ul/|=-RBsb*'>)(DfX =H"ЛLXr~%K>|+.`q<{qc=.,Ѡ\/C! 8Ӓr &!+1O㵘=K+*J$),$S Ϡ ;k.`wY]"GDUS`2c:! `VB~ɯ#Pݺl{j=^E|qx@SDD,>O<蛚xn,LʞZcop㿊)URHMZvT&reFhjg~ί7ֵ$ݪ4ED(yy?m'WV=*6 +uV̘b .[p3|J{<<͏ކGP7k +9ABj.'zz?.@Yջ6{&Fu71E'<0Fz{ >]l Yj I"5VD2q﷕4K[`,ʄG)U GC&RP$kHx؁w(1Ҁʲvot?_~}.9WG[jW}EG іNCQ{41]fby 5y}[Kb@ٝ$qiS~|uɲתwlEo.fi.N7[9;k&=fϫQ.|\"NސbCE0rM<^gtt6 $eJ1ć;)Z ؕAp1jQbq1gU?ehҁ*,˖jqsj㟵^QΧJC̈́-WR|y6tnS}BHP=^�D*U!mդJpcXp$pTj voI"n+WRUFpoDf) ? +O! D B0tZ2Imܓ- +wg|':2\=/>GUIٿ5,4"GŅం.;t0qmU ⼱[`AM`b?xu8vBO0UGq~^, (~B/Ԥ:SWԞ-k>0H$ +ZsW=)1v@Ȩaؖgf%[wi4Ohui_g.Tǽi^ , ht,5)-k?WidFZvr6>%g$$$'_T&{=EeL*#ׂzb$D8NB3En|AgNHSv>&N+b(8Y,9*~8@Jze/Mϩ\ %jaI^mZ!;4:_-ڥ챋neMO\iNNZ$ kTJ/Gxey! + Vo_Zu@fR6&3&Y 14")Š Xӧl[3i|HƠtx?moX<*X* AlH㳒ڸ`b/m>Z+@YzAӌųQ[+IX:Q+@|=uMY,~j;&$1RkD XL<Ѣ_&_xDﳱ D@*AzX%h|L.R^yOQH[좠'v7ZTCBev-V.kTEs$r@|?]CPkCvY* ~0+m -}2;p3S,izxh@~:5L!wP~21T;Q[Ͳg@IM^=휲xjqȞWQL>t!'Y†j!a3eۯDW" rbİ[Zg*j';ł-򙊚 OZa$ TL/ bPPt_!=`p*5@y]֓SC7ڵwd6gw= +JO~"b = ƨ&^^-=3kUpy|-wO BPdֆZ(nP0*p$AڷÐ&&U)MM(bS +|G +k?ĭJSm)־jQNT +F2G{G% +3 v1I:XPw(q)Q$"Vx7) Lu39t :iOCcUFl|M^ou5N +񧸫5ݼIK3ija[aǵ^e+تnݪr寢&!+#1o2ae!b +f\6jGb5(5Zf11 Ҍ⥇ -죝&=o(j̸6ԍNgI!W +fHh[ hJ.?G% '2.JɕV&,RQ%𕈍 +s0傉]Ps~Q]rp[! +kwzG%qJpaDas\ +uTZt9Rۛ"xt[op\Yq`aM7}py[:x(VoUsދTvw=<%IvNvȐ` G&»n8_t=&L+x@3b3H(pi{wWBssn;UTd KZ'  }L(}.?G[05<9f sO;׵W"ɡ4/N(2?mVjjOQ~!pj*U޴0 HR~}=46px)4>y;N$fjLfGq:;YK% F)8?Bo4-6aF<.D[qga튾T6#M4m 0=B 6)s S g62qUFY_-T^l_X#q2IQd''A y#{CDKESoe^18=)-U=Y?/|=¼Hɘ"!/C/K'uJJBPM)b7}44ej%,W2ۇa1C.Un\o+ozj{9rY9.U"3%Tz~[S +6?M&"rMVg)M5%+# @P3={ɉP%70[jO^~|z){[5Ҽx<~FݤLbلR:*xmra$ q}gEgd?N73H'}b8wV8zs'!9z=GxM㱈Tq FaKԐd8"+˙5ԓ"E_j\ ++nI%r0I38d}>rȐl[%Ad P@eWK?,.*. ׫֖Cuv䁂t7w+ =y636x*Ɇ8:1=eY(Z77 ψ͜O[i.csPu_e*RS0|J7b3xtvi/]]gԾA娂 wG<{ +ND>%>Q?`~F'm;gz@l-S ""ih8skW刑OyJekbSqzÈ0"#=S:C-_#dT']ڽa~kϺC9SKXw!]n=N r5Ž]VA]}Kiv0XNEL%Us˳[Ẹ,Qײzh;I8Ai}Itua:8 wtRv +q쎳iVJ(46vpyhVrIƂW?53qX aXACf|pO2+: "Ֆ cs&?$a%Q oWw+]h~`=WE ƔUdgL4O C8"!&"rVXӪԢﵳk]<و +J~CibGl"гD}IG-/3ȿxGŅ*ZQOtlb5xӄ=0?5vyTkR + CAGv/>Йckui ϡf-xI]=Xj~=d8b+5ƺ^&Y1W9^?R&\*1jH-~6/"ʸ\còxJaUm ;CS}ڱs_lmgߚ"Uxљ}bޚR;}s$oQAXN{UQA>S\ަӈRVaBn\Ϳ/5JL9efnBvÆqЪ . 'w_Aw(YlRRffIvzzP(܄gdkEP +g ~fm؁\vt.3j< /bWIrm;ˇ?xܚ'LwCoEMG>n%qWoAO 2 +$1:&g"o:ݒV0rټV +k3=|'KDK\aYE)5prhhHuUOdJ$GHDO:K]vCaÉeL:W +u +Vu8E +BB'FcNX2 ۷,b[B|/)J{*^-y$#3g@/k 3VO@@wgd{~s#_؄^T*sN5e(4-4 g(olta$XXQcqq& #<'\R,Ο~oGd?:J~*~̩͌KRw䐐˳~~:thCrkƩtnZƺׂ6g:] +Ņ#3TMh4S)9Du6WKJ߉0}0w ]e ի,vM‰vV_. +UnIw}ceqnί'N7Ф3mL';=/.4ZCQ185.-2`U t-f:?`1o[ƪ>7OV֞O!4 9 qc. i$R( +8o b^kZ!Yn `ٳv~l4DSd&HdGvjhՇK{H&XD w~?zL6(:'G,paQ~S|X$;*S uud30 7SZƑw]Aߛ4:X +pl63y +юt6 aiZ77}? 9&e"fBהW QK Áyxk7\`yu]z♔={b~N_ ؎lUS6$ or2TA3nX +3q[ht*Tnz;[_tjzj.8=oj9 e#ܕmwjW!Ѿ)k5П/3 +z?thgt]oja4|}.R,1)ߏB:js<¹JSIhʌglSd/譜1D-3^tĶ!/\Vh <~5ֻc6LŽevûti`\bAHe( H؏W vSu[eyTڱ^JG\V "&I8 n$nߟZ?;Mp&s8Q,jw82þsc dUWsSvQohKx.bY2e𘒹(RS*nOBC0(*sv! ih%) ]Ɇ?ź6[ʶ;}vgeq2_{Kmi9Z.& exq\(ѝuG,۹r/*v*|5fMҐ{?\r)y:9i*fόN93kN&|*'bK= $zksygOjL:$}z~+.6.{GĻ\>/dpp&|wΑlke84=S02b [jT.@7v8 AQz鏓s74M\UsM`!E%ɝ^?4RݬKbIb[ϣ_CGw oV?MX.}uN)3Ұ"DrS%AYSzDf 'Q$ab$f:%4 <)VsAÞ_~ X3yL+0ܖȼI#=v\ P2qR+hh8"VA:f{}Pv HUs +OctRf ˖H9,ҽS@zCC:Ce?{o]`Dܳ3Qݿ} =Kߑs{1#R"r5w!=@ydȇToQPSS+Pgq@T0?p{^n2l<p' ˍ27">oHRb/-]΄fckn8⨀@3g ,HIUUkC[(WӎO(,-eaxzГ;(ONLjHQ4ZFh~SdFgd&[um(ja7Z%MZ[ i~LyaBQף#Dv#+Yqظ>4pk0@—0gt'93$F~[FL fΐ\^6?Z0/9"y{Puld'"@: `[`keD4dγEНgCՂsSyb@  a*%mO4X&FkS/u.V,`iXڤQ&˯bc(]O^R~XKUs +q D.oGzz!.Hw@ x1 &`4O߬\cUsyc}2\ l &bÞHr}6ڤQ䬗N2-\(r1csz׀W2uVJf!D:)Sso7M6 *`Jl6 \V^KԊԢ$Ƒ-xv[='\̔'v`\("w@پ{4:KDTN'KV ܑ"K0x2wDRN#.GxhgVBpbH$CnN" bI +N|+EUikhŽ^-w!r:1@ww 7 Ɛv-YShn$*؋[0\Ҩ/ 7'slrb'ֶ@~oۊ%t:a8"pn!© +jKq\|Fj† yZ.r).  + FJN+4 3>#bZLEa*hurYggڽi/:H*؎LJL,{Qc_zxM @{ ;F p@Ovk_iB⃦1R`]fZK |ޛ8v?N|{gQE9eekib"vhgWcMΐ +$QOۭ'756h*iUE3Gw2{!fDUAR+<%n9`UgDYMjBh H:wDU~(^tf=@*!ܴfzB .@//MMKJEI.\Aw}vV;Y"/#bvXc\&bܞ~¸ p X)qJ@i*, C U2)Po%,6 RѱN-eK}+6N$I5o[El4۞ ]_sLgOLʐMw^QL}^}|՜iEm3"h 9PgqNN'|^qyo::?eSuYe+may~="d7{tqiʁׯ= ]_΂ Y>Y̖uIZEhR Dj'(|1BxVD F_r"%xKF +CMU;%F.'QĒ,t$&A?%=HU,*"ECm,_f,߅VR%մA,.(Xk3nCj ԅ#t6 6uɘ[& 3 07 dT +Ը1A/J2E(K EYlK Ʃ +a%~Oi9v՗2>5sAonѹ#kq4m0Q`ۍYzs:t`nplztQZI wW*L +˼{MW{ MiM~:Ko[ǝ@`[\`cՙS;,̈́U*CҶ0M;C'ҾrIf:}j`9R]! {6jNŷӠHJw_@|rzyQ+XSJQ 9iqZ"ۖ 05}JpKúb!g!rZt^l]&j6'XxЖ{e`ǘ{0:D3/o׫4lN65s'ikT.HdJ%(~/NfBJtM$ j̤N-bM 5njRadJq Igw-4 ;ɪ0)؛xd"GV)/O(Vx7 eˀ)?v*3JXh> 81rEdһÙ ZD4C&ч5UR]pOd:m,_Zi^OKY/4KJ{nĖ,6MJ`48( "gchP/.ER o i+>q$ş)*D3.x\gɋ.Obr=~;@OMW]8^?o(".͘B<֡~FJImn }y_VA(RTu Q+ڷTpg 6 3':s=&ɷ@%sf!,1'n@ȷʢ.:E311Sq:*'q#4 B\hML +}{v߭ۜ&d})&:M*"8I?5.5N|8Kz_[x `)_6%D7 J%_o0m#3@Ә;oӆ! ge^nx3bx^!$f.Zz! 08*g)l .QKyqCP? /P^2iPGbq $b0Z(vl_dD|aSr.ka/7]如>#Dtl)<w{l΃%5&Ö J|K[d9jz!ŮV)sh\m2IF;G7q*;8STC0Mj #+[_qF>0ӲcFI*Z%Z_"y%>y;01go ٢L?Ff^- lA.dS>8Y Q}޵OJ*XԄ|B]+VEV.TOjMP +<>΁ÇqLOTC ]ʟo!;-QJ1_ +|!g7"BQ-58鶊$Dv+mcᕱDr0H)J}|X4jH,n4Sf𝼾` O:L&%y\MZE}x阣s瞏jDc~R&yd20X^Jm:5cѭx1ce:˛!PL}*ˑ']G&3~DUtbTtUlM4Ft|L#){r'_#M m#3mjx44iV,{Hw3%(~/_!z7KPԕ<䣷[~l_W.M)#hI:.U~z1OJY( l_SQ57T =q*SG4M L궦 +7'_uK׀ %qAH2w^`(f52X4Hˆp14(Z$Z.+Z߄-|U;]I8|.НY3#uz7BsFЀuzKcmG/?ѳLJ=4}ܾdiE7ƒRu73j1FX>E5~(_  6p&®k<6!.Eq%@]ׇD,eQ<$ +)TK#\|Mc3@xqzγ^abٸF1ۉwD)qı͓z +u:_>RH7mMC}5@n[-a *t,e\neߐUS?V~ DE_{Qm/x '-HW7ْgc\Pv .67':JQ/FvȯqK,`a}:X@HAUP?ڢvXݥf;BHʗYp :)Գ/C/qkXҠ0~gNՑ7G rKCBC@N|h3@]|D(ML' \x:G= +?ZzF +&r|*O~qQ=lCKA)kcR{C7rO;z#Ŭs}O@l2p]:뽪-ɋKzEF1OddU-{+#-h`(H ;G~ި'\ eIZ,M PiIs48?8q#a:s4$6Fa+!WkR1Xu!"*=`PW'&S!\}'%F/I3GL\^:UG۷g5 j-ufNvVF5rc.TN4c֋,wĘ\ ܏Ĩ:ՠs +d ۄ ?&dVMqw./c7`(+~N e8n^" w2B3:A?^92,uN3б`r_jCWEq^퉭O<)ybvA"X`3;$5p.,:VsxB,+T0WVi\ +!9 +E80D&lC @ƈ$8ײ0[{MTyytzD)P$"Mu4IrHԋOnX'v({V[lr04‡qsO*`YjਹL"!4G~ptRz@ƉL6gY:i]_|vD8WGw==q8@EkP><ќK*Wi>ź*:Cyz|81q[C7>1ռL߾5P!3 \#v QMyPLx\E8IY߅תjB !ݟAn1Q}cL2^I|[z[Vnn{V[sxguIxіCe-í [2 b{. eImQš8GQ^#"b=r !Zb/)j{  +7X]hAv+ཤ$"zy ˫iTFJ&kK0/L3$# `}"êܢӍPy[(Tѳ02U NI'0x{{xr H<1JygKmcÉβ#; &#\ޞ+h)(5/O ' +OSc*WoQ}rqB5^BQ!v/'gWʳ vMfT\Nj@F1h=qݩ=0Mdؘ1Q+|3vYmgDD \oQ@d+D*x0DkNg;^s^ڒ_|דaҤ(mjh  '"Sā'% 1mZYlEw'&'4׺[ B s \qf\}-C-s.cƗKVAIH‰8DN=g0A,6D|wEVhy +_~wH|a1fx kO*wlUm>C!]J}ewPcXʛ&eefMcJ oPW6f\Nz}c_U(bߦ)ݥllI4fu*.OȆ0hl)=3ޯ8P%Mq``]d +hGy W![ _R9Mh ,z" +*"MIIԺ..CDe]+.@'.&Y/|\^#D[91^2&+s}'̳,끴9*'_ԹخM LG F.fQE:EONŻP{l +2q V8~ +2?(l'p΁=k1P>[X8O4^:Z/_=NqRooL~ 1*_c)62F+D:OpeϮ/^ +7at˃<;F\XOlVP۾,B w@S1v)~0-mR ?p2[)Sb"kG@qLǧ}xS쓀@EIy Uu9@( +n`.aT+x$:%Ȁ$|8WV{u7{r.IX^u%YVՁhP\yzKs/w@N}( %eH9Hh3^mTc39ݚNPA>~W')&_(QޡF̲fCV)IHOJ:ZS~.ȅXu"ըz h6kDjt9,`}ń~z_0Ŵ''(gB^C0Wf8 + KestU(sc#:~&-'rFIF)tF{s(8x [XH'!&6˙U@JTޘQ9IZp +)kMO?|O1mױ'.Q ^\q HzF&6Xg9D&{"nXQ]sK;+o1UG p>q3JQj P!!<%qbe!Xls[bnll2L)p_V@ڢ\b=L65嗳ۨVrB,*Pp5u 1bUM$9H,Jo+C Z"8mXrqڒSn + n:yA\ *9!Yޒvˇ/FѱE51v0Iz1b3IZWO}jq N8@U:0iPCt'a/ W{E Aol;+:~dӕ?;Ajn@~UeJ v.Ǧx+cԞmb!՞S7[Hn"9 @^-Mw&Y1J>_Ļ6S >d0V7]f~s˺B\Y2#E5毚 (=LwW;("x7FiFXz &m.^`}<8۰ "n'@$dRc=\1ژ3&#.+&GM+":X67y;WϞuI-\14 +_ȁ%.3@ 02kUtuy55L5ZULG8*yh+*oF5z{1[_K|`W΂i%.,Uf(F/iğsZj1bb06r!%nk^^'RE)i;n4N2Av[*$tHY7+ w!fJ{CI6>W4-$@Jh+j`8X?EQW^X(iv+6"h> rɧ\8h b_5\Zvڨ +Ι$mi :_U +_ArE'?~|SlvnY7 +}~?9J +:3IU!ďƚ`ƛ,& +jDqTr[Wfxޞ#Dqld;Ib$]OܤV>bPGH"a-݀m̌g`v?6w dv~i b]D[Aܿv\tݖc5bKޭ̾:ávLz6[: 2~"Es؏,rjC0l\ˋ20 A +MWbXlW wY K811 #ut+/K\(XRc +ct3rm:BS +5f H13aKˊov单PXr xPu1 P,|@, 1]aO\0s +!%Lc @e(ʖF6## ɢz$w"&=:ru}2 ()7"_6ٶl-uT#u ei'gO?>!L/~ 3 n&֊%^ү%yev=e} pVKkSZ$/WzOj D nbtU,%n}h`X6&ԓl҉\F K8mElyENYyLǏ#w4Z6s +x _8>΢puj:d/9$ʍfY¨ ՙ&TW m짘\dvgI5=ܫlUt+$xx|e*0&$7f$¬6@wp_4/ԅvZJiQRDn6:|ajț^Q6)<++//LJ +f˩;~蚙e^6R*Nu8(U! ofsa60 Cwp Z7jtWE|3;zNm>)M-_7/ ?!bK498.Y[i[;&C'/r9Z`f|bsH Zjebp,7k<3믧qiqv !}^JED|W%7՗O-, AIE>`(jZ3vPs~; "NjKLf)\l؁3 jp^(.XS$)\tv"Qntuyvvp+p/ +7O0'&{V7@Oц.bj~$T|2!e1a,z?^&@aL*Q4%1ɹȢ-Xc׃?Zz\p^WeRMp >KSuaYInB"@SvnI{ +@dEXa_eGuk8kIVKu~z%QX0Z1@;&4!mt*`RaLҞak6'qk[Jq&kwGOLb/ۗ!= ybTݰ"{LYK&1uAsCD+a2wq_T$"LZ?HПEFf#}FP2rN`` ۤfYnqO+J.)3 f)z2Ps-;تF[?YoBo`Өz-M6k"JH}:8[YOG03,^<~y# _74b/IT|4?p+{-Z^Zb Ї\Njv#w0f +fBv}Kw6`vة`^\{)hX.h|iP$dмz"~`cQ&NNJ,-im&_Tx.LG%N0,DdD!Դ9@4[38Y:x˹-_݌Erɶi7KAfJI| IeK(bG.ĚWxq<̘2%O檾ƆqZRg}خR?(tC2LɏכqlÌᯊa(|7\UD*32om|,6ts~]?p1x:\nb1G|}m4r*ŋH`B} +s+N+J(NSR%1 ̭?HyrGaG20@09?)' yhhD}Fs20PL5} S>2̍,C/o(YIxJ6kt ξT4'D 鏾ֈ9|rn /Dѻ몣+nso(?෹Sȸ .Z)В0IDf@(8zZ0 -$S buQz$gfMf1 tFC̩b p[COV}bRx&}ݪU+z,&b9"C۽E,?›KF^%Ā +^# +:5Rtp$ZKu:@pPvϥ>-i@D$T@3؇ *ajw$-97S{:(P2֊&oEb^ՋY4'l7EYU2 {>9Zݛk]Ka8ѼZѥWЏhe?[Ǘ7$YL42C|, Z:DJD p:W*Sr%<6*n= .wո9tZ%A| d@:0yaPm+(`U-]֏;X)_~p +Fy~>HO,wqz,=H_ `m:9""O&, ծ#mFNrS2JQ38 rfm˛/=ZX7Ix͹7阍ځ1+po!˯5q~:#w0+DA +IT|8SP^a%oykPckj!&h]8o'ggOoK5/e,a!A澯[&kJ$N81ӞIdjUQ X#ſ=F}'.<0  N~@ȼ` +bG4V& twS:L#IK'ja 'Z+{ei E7 +@IagM}8j*`#;XGߐa!K_cԹ[qۮKi6Y-Sy* + XkGZi|j ܥuYqp*ZNLw;"(U\ ?B}:#x{=&L2^WHtc sBV S6\2"xb:sXC# x“΅RQlΉ7cT_F@(oC&fx瑀A4vOF9;\?=ty?6N *jG-HƤX}'ar}5mI.Vjv-6{/JF>gPe|kzSM+O.o1FR07#Hf:0K(M$WX̨1ĺ=\yYᘞ~纘jܯBT{ujiKlMX=*nĎX3aFQ݇gݖɨzg;C믆hqPT_m8Я~HȈ(A'q Iv: 'Mk/#F.4r:A`ާf)1TNJd,,b-2CVr  ?2ME*Kh $?n/QUNYN㞭~~t]xd}LnQɱr| XmS +8a/KA+&aF7wX=9yhu0: }S`rt o[R`Ieb^g>h!) +bEYWX p`i!?;.VIͪL QI ҥn?=HGdݤjPNX/n%4m$ƏX}c@pDu j"7?_ UQO +"j)eDZ QWVZVn]s䭝֞ |x| XҀ=v/>y5@}mxH=9~i1J+y4)"k._O;wuvQ!?D-&}/Էܑ$ #%HayR ¦dF]T6,m*p) Ez2XږX#:%\MF4$=bD3;ͬIo Ry$# +l5XWAh8ONtjj̾sNum~ymՇgy3Yr5cZEj]F؀q6&tD ?Xaq܇:fc`o/,_JUns4`MK))hђ~/5ʃG'=+3[;39@ƘZSA_5NP+K{b[V6Y^%Q&=wѷzՑ*̭k7 ,fљA]櫈-%P|a!(ãz!C *'='_tc$ q'WZP7 08>) 6!es|DաgȢ6"CI`{ +_.'Lm^I AZ=Kҹ6G@Src/#)I%>aNIKfc%aņl bXL'<+!j.\̤5} +ym-tJoiАՉ׮c︟ Wz=]1{6zMLOG`paQ߾ga9SJ{ܕ{wKtT]SMM]ٗe5ط`iZ [Ҥb~N<. ,/Twdt)PSCkz%dhT괸u\YR0[^Peʪ=f +<Y Z. Ͼ~ 2z$! Q)=b> (}7(G2fxc\DUV{ tln`<ʤ73 +KIK+31Ӑ.}@4fc(1Ľ귏M03+`]"ͩ!B!M禰C:r.0@OiR D?DhR| ͥ0ܚjׄWD5DPc6^x[!n5HP0RGI /`t/([+fd +*̓H,Kkr[1sk:lQw)f!=tH=Sw"7E#q 90DC`YI +1mbvTK9:-vE )uo ty:wF(&' +${&پ%G)&ca!ב)${#lC6tP`ᤚ` +^Gdrw9sTLJ޵gA5zpf=tOv3M$(Hc 8KҮM,lusC] "b)tWQ=%Ӑ*`3ڌHiƒD_x#6V2( +Ӌ+)Ezn/GR ̙W,?G[<ǁ+}whz%Ge ,H^+z=مܩG T'A %[)(=M9 >i=5SӞЬw{}{6g Z|x <;19 '\Bc.,":hs(޽ZE{\u1'2gkV=.#߀MfNNjCpVf~;vK–a,6E1M-)')V>`f 8 !.i8RW? +d0Bo ¸LSk\Hk>y_ΣjTQu^W^Oby qwb6V Um Q)怀dsy"9OZ!LHfp(ReI(kp^Fb^s? QU8ѽEԅ߈p17o`UfWRw@* ey4Wg~RLCb/4ֹY w}S! 9\j bn q/-<0%J0czmDtQ8y~ؿ ڒTaJD 焉D鸌'U<&))oO eгrEfKnJ#(C G˙a 67^"){tj-|}\,h]xG=A&G=e+*Ƹn#we4Hbd<dhP)ljV{fȪԊe|T \ Uf:ea^tc:Af9ͳu}>]!p/3[*ؤ]w<9OL;f(m)nrxHGNW,2{$K_,zx6/{ A(}YoJNHȞn6/PĿC[<.59v|~cNA_P0ۗ ڗFKYM7I|'O$>gj;߀oMg|Hx޽#t#Y>MH0{ kQqaur: BlW6R83DlHoDQyFFWT/u:m@U!Dpomǁ[ƣVVqb/ʠr /a WY]Dw etBGb}>vD$ߎUUoWkE۲2o6z'AZ_Stf(MʬV} Oc؈o c؇ 0{td:spyRet`dI%%-[Qbs XVEгKifŴtG{+a;7|KA'2wECc +0/[ <5N eKCWT<ffE:wl_+b!b=|>{mFaKa#w l`nfmހe` _h\k°dRha<^C| VH5±Ml !l~|Ic!?scn5l#&ki=oҌɪ *N}Dt+^kI2btFw>_W˭9[AMw[| $ҌϏfo*w9ӈPXY,s&$# A xhVT~xtt&ud1_%!vO<ċpʆ 2~`I{'R.hӄp.Зg}E7nOr!"Zs2`'#Fud|k]sEnb vͿ"Zͅ*3jDM&A^lg+:"ӟVG)\>5٪3}II? U!Sog`[t }<07"x *ڑ!4d ?\n<XJ dUqcGJ& J9<,of>dާ5op*]FMLWxk\URך7/WZFH*<<@8*.N Re9;/ ᠞߰6n߶96] DrFf4+v0 C־f\$o__J\NcD@X +GHl1\X85ѤNh KH!o:Tu؄"w>?5 AÖa51ȷ96l3*"A^ 7TɿB>,%HP?.]z47yT'#X^^LgSs83Nln3נy-UԄ +qQXuoGתg=)k(!n ]ErƖD~z-vO9T]H5ڏ=:$tzx̼j_qNL0|h%ybD1%m Z%JoNqCJXtwB&/K @E|_nFYm\7@E̿r^h)\/32B^1aUbr*(wNXx&J>Bk!;Sԩbs &)n|,2b[.%Ҋ8~X\y|x~0ת7E$ d-:5 tbn?_'.Ui= if^%v"²@MD|o +W@~c˛ zmwo`(P8g|$C(~ʼn.D%7,ʺlȧL|WiV$I>&HK_:FCG^x<ҤzOg$O5"z?*WHo2-K..R&.ZF,[ *Kdc,梉@EAA'YNd"PHhktAFj2O6=2[2鎶ɍB0VDٯUojʊ%ǀQwlAXG W,}S/r8םȉ^/ rDd \nAD~;51On./ R WyTX˰.Bg? IQa0tjeف D~ 2VK V[a~c0 ǾfW ͢t(hPH7 |~j\DAqD +%u(Mr͕c<[/7f<8:ɣ~"G zpDB NuzZ[3vLs?MJ?b0FzpQ09z-XJ+^;"2GJP\4n U" +a +eZqgv@DoB%f{1$5_ a4$XT&sm:QmGVo(?i-R>Ag\ىN6Br0?y٦vυ7騃wsng}8 *SL`l$p0*x\F8K7z4}X|π1p͚3YH乱T&0d(cAðD-xX^,FI*d>R/KꇢJRK C=Sj[k6;. ^% 4V澒4Ě1$@`O5o}AT~ގm3Ƞ)ش[<Df-Zf废k}r2N y iՉHZcCn㝯4>Zh&[[Qy_^yq(t4k#g"%-4]VSCUEWv9^; zX'eJ\QP-g5m%ن'X-.ke?41I5◱X'-ڻ ![Q֌[8PCɧՁj]s^ Nslٓ+~qh3K5=.C鿤:f>+ uU#L:+D!)fuKWkksHxwmtOU\qmO!Η Nи餼kNm}(#hC=!t"oy1jh2%x~$O1 b7־{7GnSRqs$\ad١g_@4>_} RoC $%#O"7G N7#F-ݮk۲iiJa dϐ RRvݨDXQ|%HKu6Uǩh0S_ūRT2}-7H q41Y^x=}o#וݻ>m, 1fP؂RD!2.\cr&Jr)hIںΪΪu:yq!S>{>@zL2CC"kPwu^x}AEԳ8E˄7kV )(SZz(cw??#QNo6lh"(ʮH~ASSzKu*GCT٥Yd} 5IHbK6ۤXI^aY5z=>>0]5uu?{=: +>XZuHXe %'͆D72H<(=}!'|b1带Ս;m3GX:}@%(Wl[^ rY.(tvh(4M9,(nX:" B']g;NxG_8e cx!3-߯PV#'A }Q +9d㍭ z '$rMH%vcDEql;4g0݈4(@yexDHlub.f۷(kϣ'PZܪ1fRUidq\Y0f6L= UZDlE~yygNnn9@KMg& +f%PLH+ Л/SL5Qagа0Kl0sOhIL{^PZ駷J[ML݄&n[唲Q{ׇv8)"*!`nS N,|ǐq˽Xk)SSEpbA$uyrs +SF!G/3cvǿAs%䋭O_^&1J*xJ>z0؍hW"F`1q|YV 'V~?'nJ̿cwiwv1DVt0~JUS 8G3D&f}!f}w.uc N!RFM'IEh(VՋVߍ{܄Zp0+'DkR` E*;˨MtkE+ON#zxڡD\B T +AXFXQdvUO~L}B3%2}R)Q?-,5*Ħp W yH <8n rJeA{߫K]?$OK,X?CvӘ9MeA^+.vPqV| +޺ۺEUhС}22*eDK)G-3; +z)ԼTseQ|*o9G5+}7RA;yݘt,/ `zTF9gMqi%kaJ!%oھ;7ᐢ%Lm"B։nVWgb|K0eI(t /Q*gUF8Pnϰvc; ^ { _3Dgkn"2L +T$TIAYKEHlxy~Z&8̈́nXBB_'^~0MDM:s5|1J#xԈ'3Ec;xlS.b͸^e3tܥ +*T'Y.KmcE >@_k&<?n>C3h( Pw/PUŅG]:90Ap `ڢ6s[i`E1R9t?{↑o%Goڵko!=_G\WkĀ8.3ט?nhR b$ary%0ʤX%8p]KˀS=HGO>}*1Ʒ#KQXוhTR!} ;ScyK{Ra]kJ"lBsdnM\[2mJ\6ܧ+w2'G0[zrN,V /VMi d^sQG,k4>>  yҥˏ͆ KY ز 栶u cB.K FK9KQi@ \U`泜@.Uf * 2!f&{`G=pQ &5 34v(!}Ouh)El, +R®j]Eء3_bsH?6qj 3 +;j Z̸ahroF%v3tk]zv`5(ޡ͡LěmпQZ9 +ߺ ~ w/嵔<: 1Yh@r&Y(ZuVv) t9+q9+1͔t<82=SƙJn< EqO?ǿ$25!nH_e$P  aώ²y\e8J]VR)$IVF420b0BA5-aR-%MdD(н3m +Vv?2Ʃ++PݳwzDlμa8b)X +1'*X lHTc߮Y=n|Pey~{9asv5n01iԒ6D:x!at,X ָl2LrZ#Z,p@w3!۽FZK +Z !kߩ :b&Ue򩐙eT3책 +i [l0aȏPڦzNm R~].|_jCJuw[֍avG JVg$xG*19ZsCCXjj`zFw/13~#~e ʯ_}%lH%?/ȇ NgJ$ہ_}ٽ"{c~ vA@ CB^ͧ)$VI@2pH .6dZ"6)uM5b (Q8xwNq\2Bz+)[NPo0RSeQCkT/fhȨw;>Wіn57X-ZtLRu)?]ut"D405/ƎLB+_?Cg<5_ex/[r/GC`P15>i㷖%uQ4˷•rI/Ⱦֈ)F9 Kإ4;,EF2k^^LUQa)}Y\C"鴠]R +I/">zm5Drǣy=7kdJ &.7ʘK>e/iJ2!ds qjb?B0U:o, w-G~zr">1YlE<*c*-G,%٘Bڬ4d[U4\ܪ)aifѶuEWO +^enAì| c-nVB 7Ѡݺ\t91S.wwƷ s[+~ʊ&M|v_*Ï+]7j^Fk}<"j@_}@գ K3x<騤*&9q)٘ uZsz<XUQD7*Ƒ<^1kEdI[ټrT\'^#ͣ^- >Z!U@Fj<ۙnӒsI >P?;P ٙ` ? ?7aͷ W%"WxpU1m [TC~S~{lw3{:K *ctS#Ae皞%)x)fI B 2VȌfȢlu`VmCdoN%bOQ%RN9Ju0#s mH$[`0ŪdKW]2u#}+c|E4tEa0Zٲ7`&$>2.E[G7l [I2D>wO +hyk'T.jwkUi((,%:ojd R;J:*w?_j.+E7" ft*Ɖ!PĸMo FE9/bLzJ S2]^f«_dWζ8ԛI@{&q+V]Z_FT)@L + V79t)* ܋+FաӭSOku% s-[Z W8!#W̄;ȫ}O9GTmn}}ckک_!u@Bk*z!$p;J7Xd&Xk*++:D\^X\D1dIM9Q.ɱ~{<2" Z!arEvV#SyW}ė:3ʹ6Nq<e=X lYXԡqh [hPCpe{lltv C'֔g+;2Qs09q5>1`AP0VQ]UHwɖ'a´*_-m}dxdYv"iIA/lcYQ' % 6qfяwWOS,?'K=q,\݅-9 7Ӥ{"GFK#Ff&ij "V)iS)P/n\پĮ,-l(N{n(axF ,#+ѫĐ}ds45|b'c"֢Hin.ɰ̜xE;/Ϟ>kD @'v$GGsts4B}8\Mz%+9,Z[إ4!l_F6n^9eE.P[ +`*ꝿZMC_+B7T2P\^~^x $@)< +}A~808k꽞#c'IAqP^ ܀I]s߳9_IŮ%VU{dpdOăNX#!{j^A gy<9$|[6d>W\rdjF5;ߟcqTUZKY)3TЩw̶#+h-y9HϐL+Eqt!#Ou6xeSoZ+ڟ'(ݍ㏱d`KXP*j,$, 7J pk]ϰ:{ˬ_kPegt Aa/dB j$>Mmѭ()HRs/ AO@6UpTHy?9,()bGp+ +id=WNZ~﹒RG!Usnm~튓/D(nw}*uyZ>8js=QQ-eMwK{jj{vQY̬Le\vYuƈxR>t;/z(/ց}|Y% xō)4PE_KEǒڱ3{b,Y{e3UX5Խ2d;'*]M3l`>~߁ X ,6JQ`q`[FH{Y^P$#p?ۋIiK8N'3=P-ʭK3d]\S(no R"?)+7v+87/ټLC"A>9& Ij,sc'^1)fv|`vSwS>wRgs۲(ws,=V +5w}!Scd/Ѵ貝>{2b;}%`x]7ҊKkwXI`di<'V4dNF4vxhrlcϤJ!27"lbJ؉ɆpJtOp;YydzuH'-$:{@ÃCVQAEcdyl9W:Z AG:^0:@D_]9Fخ48'Z\ďȘ_&2]&kaĪLt˧Ql' v48?^i z{&F0Vg|tyqusIz*%?*v*u  0*e~7n)%0{)EӢ)φ李$g+:]~aEݟCtm!&z¤лK1gIҝ"F\א&^+}]kޣ!eoo4N/ n ֣ #ЉW!z¶yu?ve! C5xC!c7x֓ٳROz7jC~:Vg휤kY- Apr:ÿL&V؎G_nus#)NIKl}8muCnjT>,;WتhI Ŕӣ+ߧL W7mڴ hk7<=6O,/V+!eXEcY~Knyqe순C_+)^*)iu gP-:>::;P(q} ~VB9u?4ՓJ E +[jAAP5i9͛3Q/>X^'3'C} tcVS)tFo٩QNTLRO}ݐkNs5F>+ +.*<K +ct* ."i1:`Jh8PtHX{*̓Aw2kv&)*kF<Bm lD RH'zEЈWxs?l6 Kc-u_NbY[-3Igq>Wê/F'yP?cjOvT!ᵰdu7Nl-iY8Hr6iȐplplg6и7[Ӝxwxof@JgӌOq}ZHθ-wm7(eK6Nίu#$S\ +^ !YQoJTR@cnb$dŷ>m+BXZ,$iuR@ˬG۳ e^"B&2B,SM&#}ߕXX1یV3sѺi% yȷTYmr6 mexh6g0mk4Kn)#Y0/µM{~6a +c;A{eԾa'UdKwN݁mݺm۶mTPmTm۶m۶}{vv.rGsT*E8zJo1>93 аQ y񖶗 TGիi@al+~¶eOѾ]!*|{N.sU}UGCH6I#E9c2e_գTہ⥽MGX+#r$gݔY$9wO%&&}|.Oپ׺yTIL@5y ./O@ &eb~zws{j :t=- +W" l dfB4W;y"qN3*m:QsEl[h78IRGQ lG#վk SS@Nyx{Nfɭ|ir""D)s@wOKԹV|ʺ"G!s}\;Z#ANerapi} +7b,W*2:@$f $BpitrS5oMe-z2}##DVzlw. 3#L~a] KH`* $ mBAj#fp cN+޻[O2 6̦g=@FwVlQUQ<72hUM&K܏-ü^,u#lv71rVƛcS U̐=i;>{I;-S"7&WR1\WMVUw NnCH8ɗ+I*B_^?Dy'X$"lVn^^dv$ƝR׺@ )*.t߷"6‹H +dLKD|gFRCyuIL'>vnکů͖&"gG2HF<9RʛBFc3+t`kRPڔp*MG5ev=K[$4[9;`CթN/UVhe`C"́4ʅU $ 3'p뙜4&g_.O\:\~ rDy@u&b"jC-3!.cQJ -rX=+k}zJ5ˆj ;]ʢJI|UmO>y[ sMo^n=mj*ʺGǴQW6vCA;jMvu?HJFMehcmL`5`z9BJRyzn!Ɣ ^W(`+8Oh~BDdZbҿ<}ԅP5"B`ՔDTOBs:,|,n)~J%tr˗%۲kV0ؽ 7;Լѡo&_ԵL*L&[IX׊ljc;0/ g:-Qu3XX$$mX|PA~XrU9y-gY{H$ʨB(DVg\J{\6-\nAwiuMYcTPR{akIGL\ݸmnyLJs%jն#ׄrN/:[{kse_98'?H̭4&u#adZʣ? 6k_+ wܹ_]"./;[>ۯd=G>!AaقY%hx|.|q~~ p12 o0"D@lS7S.&@P +B\z ["00#X䌏GĠ 1+y 3+H.]ZėJ + RM_fx8ЇZJ:e.IPjNWt@$uW_׾Ͻ$PFh]8mvz ?Xf^6`p=:4<5_`~91)xyf6?m.ia(?%*˷ˋ?DVQ#)Y;2gp"%‘[ H>g!-q2KP¦Rg l<>t[ +?%x$Nk2 yViB=0IIm% ?7|C-.|dE=pM=b7H,ӼB#珫(l QM-Ă[y< !-r?iB]dbj[q:?dyʧWm̘۪ +~NB6xpᎨ${+߫ ƀKz4Kn!}(9&2]D8_\1?3Tʩ5e#n?[VM10HĜb&ЅJ5=wH''$@`"7 $ECg\ۻ1)W8RN5"[-!:jC2}y~oVΐCon,roC@Sׂ,B;j~ӿIܝԉyWtL"=eqQ^ㅷoo)ﵻZ*_xH9 +2hD2sjѷ|5YH^;G;MFwj`7OKq'B{@E1h_c۬GD0yBU7m},<P +ƿ=\WD6@ !D#%lR<Uo鹋|w'=2R ǰ*Ǚ ~NYNsl>{1/-E[,cy\+N5zJx9 S35P)5*-0+" +T=X2w +.'ђȑ))W-B#+΄zֆ!*~a-ñLܫ)>`}0 H,NY+Ty3s@@8KD&$H.V8,Sʾ/1VT +oTdF9W8wѿxERȟMV@z?湣t; ϐ:[S2:g5IYbԾ}{}Xq1Ļ=x7_ܛW+1gb@ RrZKv=#yUG#2 E p&2@?"',@ddlz]=S&ˀ#e뙰 .|g@Qn~q|TQa@{F6gE"NtW{$zzrf!GvRR2;8 +}bJ`kʼn\En.x3<&j(n u5G/+ GpҲG}ۻ?I;-hiJW5Ӧ\&۱qX$hG˦ui9[ 5J-|Ncp*|2(ַ| 6Kݡq@0"ED>a#z`/@+gʼn.jw6QjR"6A Yb'HE >tUTu*ƪaFX~wV@Kt( iMq-`4|Jǽ8.iYYF KC +cKvh,yL5YkUtiƨjbz6[>XͦPo*~"/n`0#Dg@:y6(2$8-~|+mL`hJՐ * yEYR +HzGU$3EjBPr 87i D +Mc{(O(WzzCx!dDibVudqW|H)HᄯûMBdCLãT`rF=ob.1e7iኻLZ7LfѶ{O`*55`VѶ1WB/5YBF3<3!g@BÃ791G* ~Nsܫ.. mR_AFc8Y̟4rYQ".g2ڪZ]n*x6M:yxdXp7d+u P] r1pk*vd{{ݽːa BW +ɒϠ.w,& Vs5zЂ~|SٱueV3j W"W- C/jQi6 U0}u,qᛤ['cA:2`l#YH??bX g厂v0+矺ERM54g0&>XqM0{ⅠFQ`7c1*h^?PYR3F+_ Sy:&q.5I^Qd]PPKmS2ax:2ޘsU-(樯GkU'6})4-^ס9OyG͡ +'on>:o~QN3=xܱ"YKj(+&]|J-`3/>eWߋz|3h$c" 5q ZQ/2rr`{F`"\ZlpzS|޴{-?&ig٠H eϳD^+4Sدjp\HgYEэO`rg4D_ ^P)YzVRŸDR.dߓ,XӅrUgi@{Lٻ&DAh +`U! +地!U2Ebb} Եxh}ȢQ"t<VοqPgSQpE\ qe[rL^ۘ8JP50YYF!k?e;{@/&84g 䘴_1YF@5Qn=`E9b^?E^Pb13}PBMo8T'D'u$#޳\ FlD74Eb?h4p2Fہa>#4ef"^>T.d1Yuo/z`V-V%@Q-1-*8TJqǘ 1J5gcE)B%"xd\J=Q>^$O&mճHN@{NU.Ε~z5 7>6Ϸ 9A@uYƲjsEemqQA.ʚNQbl!A=خL`a -'d&J8L2\v 2y< T[ĭvUSVnD<-|(cX;!toYH4؃c<e R +"µ?f*܀LKxX6DpI $qkGoT'R""> +in9|ևcAHزYR%w«}3kQ1kP4vV@il']NYk=̶rY\!@0U:_ ^߿/\Ea~e ' %0:/ +KL__ޜ1 LGg# vыԆϦLKR(K*5Xı^8Hew_$7wgz5,B}\Ki#q\@^`N_mGs#Cufl rCB†#gj^^Dz{ v!bCzfH&1~L7mY׺-2+8OC8^ӏ{3z٧Dk懚W2}!;SOn/0|~?g_ Oq)W :I6yo$_6C˹;Yϟ%#EbF3]"roG8aCG|V߻+`!nkЁnRZ*IWM GEZ~8B;IVa1N]%\ZšKT ^t-־ЗFIyJkw3k)/aDQ њ-|D_d7(M7|(]or-- +q:J(L\'O߾0jS/ꈹ-HA$Q 3ʁ#w.^t'/pMv{\#>ν]/@Ƅ_ypp!\|ޮ\T%CNRRIGvX5w$Z<- Re?A7*Z6FP{R!s7 uPuӽ_ $ SwQ:L/BqcJ^ 9PfUo{o XYDM3{3[h̹>4?I+{g;@{ 8 zN"gC-ӸbA*UcCh'd&觺?J4 +uQU\2^I _ >DEmu#[P'E&L.F4F=1@x0M}I\>RAO3ex*Cu]++uI6e9,\qܧ;cWGc;FT_7:4`!V%%Eo9$u\kWi lC>1mBq;Cz#.͍z% h+sꔴS聇[3&#z98!V Ρs5 JWIkNZqV`C`ƌquO(T 9 u+=X ;U_xJ<'GDv+ +cEtm;)ST,bD؂o<=0yaeNZJSՙy]˴C<%$l7IIReJw*!+<`G%KuE-0dnbo;z[WLsnRU9>7_b>O7?)GnR!Tsy:J +T"fqYɊ=PnO8.(vz2 +]jPe><1F2HY}4}%/NKQSv̞q.I T\gAVu4=Eғs9ՂE/<Ղ7^GbRY8ssjL'0+˥_ ^ڿAW/2֝+P\Byx`Κ`5"j&{R/hhE|. +R8b#w?6lSpycM69*=؎8cw긭@fj.ޡ4*` 'GGG( SK*"sF%[tg? ӌ]{gG(D82@ନP +>TYMYA0}{94 ȌloƯ{藉ڙ)QQ2;p>AJ vM!f HnG-jء [v|NQPNiR\gD:XGhfms\q>\ PG@(tŭdrܘmlµ_/S+njvEanF8?ueN0/H#V]RCʼT[U&'A|^]f#ੁ[h6ߣgRpOUInJ͇(aWC%%4Vf \\{[pSo6TCh%sHVh3֏|\!z{^ zb)|_wcl!jQ?Xp2$fi5X~?,h +K~+ }G9&+axJӐt9S;CP?&^GFaJs +- n& cXjX[8J{{_ +?UA3{xrc̯- Sn{߀#\-AdIt ȻpxgrH1<K +xu.E[ղOEѵobcQd/~dˈ4!OwgGѭ6y]i1,#4[j8i:(,Y1и_ +if-|x'CɖZ;[b{U{j}]m0={pE'*M=)Zvp:s1p?Rb^W`ܿ>u]{>=wz@ihV)cR*G"B zg;;;=] rFP*'+,8rohy  tf9ؐyZAj?No6io#؝GO_۴Owi49)V\*2id~b[ZR&($phZʏE.!_)ܪ5j#l> D#a}ɏ$? Ψ]s죫*lI+&1ۚ~7¯5L\a ³C'Ό7, + nY4Q[Bq<~fD!5W +(Lnӑ4Eɧ%T ϻrt;.n @gƍ㵋*RP\[u]\sdgX"j031$}V:oԊ=Ֆ97/`⳺d39^TYwvyydp`]V3.A{p1z7X +b![g ŷQPi3۠WϡA2#3^$g~~ܠ)rk2-Nwgw \Ue*PS";R iW +*ম=hJ^~AL'燮N^62ذN  -q8TSˮEgREeo:sܱY c='ã׏g4Xft Sc=EG5_`W食w^^9z֙ I8ݛAZJ&{=jvIľfKUyQ(~,R(ʉڈP)3I!)HPÂCMb#YK +ۅgՋɚ\#-p0m[hm[;\jÖ3=-! Ľ噦zzm.\tam83;mŷ^~D8%Ŧ>zl#yھW^j5we`8dYp|BA4@`E;N/W$PfƓ=߾w5Զ7Dڋ _#cdj k݃w]0}\YJ]G6szQ,StHE1`G<-i(ȷ̴-i2Gd Y )1C+ϞXxs?G&W7VR޷o8εû+}+[Nўdkj:L?`l6hS:t-;;y *xg5FfD `UCqi 5c(D?C`Jc@:f9D~Ԇ$0SuJ܅9qJˌI1w]4 +(a0LYroLy޺uyY[Q.Ab Ihv4V=j䍪Uٜ-wjEV]B`n(  +XPXsX;S63fdf,A H|/ {77[?@dPJʰJe@,Rb)%mzt4ť8 +(|GB}j(&q+-v=)ڶY oQ! +qg&Vm מ?ԍ8M2?#ӽgyC18 +/dg]׊0 StrZ@u]ݟWʳ4_|tCY%OԐ1q#\$J,>[NE9h6y;=4ߕ5q-d(dza0dA&$A `߻8,)f*12  /L3~T) -jYk 3=+pFn~9mJO G]R<{L\);'utS}ũ?ǖG>Z0ׂ2a)#e6K5f F]IۆbL+wk~Z;l;t~r#Ki: +F-W^:{Upse{:n$!d}kx-bĢXܵs9k vsNu;rLi(]]!g;B1c'd`n$H%I @E!sZ뢒VMx~:x9_o$pS~?kvEHHq݇wQ .u}DDt3dkgtJh +3+ '+G2luWаîIKwټ3Y;]l5}wr'EHZv1*ɧZ<43/͈"li:~@A7+Z@Zg3f{e܋g3JYS 8E0U|]ouD9i Pد$Z![vF:_߫gҶgaKO*+JKijaB2ȳ-S5SD~-tG'GWyߍuALGݐH6Ɏ/jqhr,Q!tx0ﲑtR*N2ⷳu1$@2 0Jfg5] NI(rZdNCrO:"SBg1ܣ+F+H?{ݣK/]Udtӷ{GaeS$CPk5C,}{S +~P3h:om-B૤׋G~Ҥ\?:RՕшR"W2D&*t9@2 +r *wܲ~sJO R,5 Ҙ79ċZ߰$4/|0B;[5AVQwDtG r<ֿC5 Ѽm~?RL{86Ĉ0+|jd{Hn\kn>;8;|۹1>vU?2F: A'ٜˬF; ϓlyUx΍'7J`qZtm9IꐙRWnTʥ/$CBlщZ)LԠcuscHW ȕ./*Ő!pv`_*$i\͢&`T4r<7 vw}Mhs*ٽR$שmO脣CR"q/lNvrv`0tҚlٱv-n~JЎ?\$hJKK>0^>o/c*;%j[)z'K2A2pfm oj5o՝ҺN2ًզ-sJA0zv'o\a>zimi*CఞҎ 'e]3AW{eU +vpq_p@x ehK*NI\U3U}'U@{UC0[=zVeﶙ!+9!kwhHZi8_NHvg"zq.b&-! + 9ܠ Q!zq HhrIb8BR_vfRYދɰsDYDZcf-kT;y_YzmytfRjQe0I[;X%9O𻕖,/WOs!N\V׹u\l;K~!. ykŽֺ ąďCژ3)¹3=y\PQ༯f;Tt@뼦QoF}lwϬX1띹_Xg +i|8C{R*mNzsoύbE[wOF4fY{|Y[gŒ;NVHcvW,7:6w$U+i2'I>w5/;}B{˪XՖ/8jvtBf\NӮlp5@OslclG'80f/F+'$U}Aʙ\sUwօ*3-5gC}Ҙ +陱Cn-L{:4u ӾxoT|tpΤy+ {?ߕyJ R[i|pjbCrskc.)K[ z? W/ V5ۦKtNY'B!Fe\wcc_~Re;q<[T3k̋ۺ + &VtvO擘 +m]5_v-7.fތfvrvàэMY7q +YBj],ZTC[f5燽{><ٻoԶo9O~.Iڱ?A| ӇeiIغPFc_%_s~1äQ i|q$`2Rljۏ%ܳxQǰv-Z0kN.j޸l^i7~XUĄVUF9Ls>Z"#g;VilfEaE}EM2̳"ea|i;Bv]Kf2 *k,!2"od]sչQz@u3cdl5 KJ[P&(+3)Aat;ڂdjtBQ(n,r\r BJHrG68ƀŶ(w'}Ԫ%m,WE(0,*[.z4@Em},0ccooX-%(޻b xBP{0i 6`듉s w؇(%*Q12,o?nGpUSls 4~:Lp.X(hY`Œubv)3Z*fc5h yBrljN,p"{eޠ>2G3(p:T<XfE'Y-f=[<%Gϝ> endobj 432 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY]" + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?a^up/5;٘(`uk7!gSQƸ/o!9oZ.UEdzY-Z(xq+Ұ }kB̄[VYѫ\,h26Z5X ĩ?(=]6)knTcOb x"݂(H+њ7zثѺ:f׭Ʒ_zF$SWd=@á_~4HPO;څ78Rʪ1(6kZqEgKe~"M4mMmj#j3jCDb9^+HYʊ}3n s[1 c$dեs3dD?]aiNhYpzӱ)KiR/7|y%0jfgYA qISq6Qhj}"Q30'eRGdH_=,z@[gJƊHXIK۱v`^X|_#c; I:A8޳f+94Jn&ʒ\,@ݱUv}p9PN[&V6<6:v[rj9`&8UR>n0MCU"kpZItN4?7׽6CSr2>eng;W4'SN- TVҔSJǟSKsmu!gfӐCސZIHÖ,oӓnrjEJEl_\w"XYe˄3[F/qQ?³Zi_OvIu&n `z@4t[jV{woy H} yۍ9!"id'V~.H7c)Ej`)*@)RHcqIu!dK FVH#GVC9vSj*XPI U8Tjh",=OaJXrjyc_l0H'zjjc H84!iE6P1h 4iϽc% ,S]#sޮN-Kec) [we5G'M9Q[d) +Uibܣtag?\5:_?5k&n$Zϵ9M/j wGw}n&x90G4 /-ۤt4m #z4?QQOʍ>) a~$SM,ù3,@Ric_Τ,&caL̈]4-85 +%3Q"9ᚵC}ɒc9ّsNkUW*Q&FDҠh`VV_z;j>]y?LzQC6Y!?jt4mWs{-!fHnI>~5ʛm:n||U٢Yu {#ȵ]Y7>}ڃڄ Ӹh#ҕj$aE6J$QOQE CHii RQ=Jj6*⧌n GAlq3Tf8ާ1m&;~b)$Dhgnb'o 9 G@ifiԧQ0!`4vii(BTy%PVC)c?}Ju%9 /ҶmK)A=\)2hr,/6hHF]F+;A6jy~s?JQ'v88RQ4RRiKL45eqV$%E7Ŵ%OPkeL7QO#n*Pk6h/zNQR1 !f@ "j=3[/ZB9yxV:O|%'̧\ZAM]geX!O)Ps3r m8B?*$hćP~LTWC$V|ަ5슽 Mg#:܎4Q(+:YN7J#E5v { +PNu4Z-:D7sިtaGJR| 7??.9 S-hpڪrq(O(s2$qqAYO^ZSS*׀(#JAb3T.NܐqZ72b#{ܻkv-mc.~PkV V[˝E!mҨB+P:W_.US<eW[2;[i2JzksDujJ§TI$44nV"-;)PG4Қii l7J:c4q^s#ݩЏ.l' K* T۫gnGvjFT4IL@(42)@t8 +wix64PΣ*qxGGX)ԣC$pKypI$~ija2j .>XjMH`p0uf)* +-? +C&>7&="vNm_?ڭ$#Ì1I +8563ETH_=KE\Fi 47HZ4􅨰Lv0 'ޛr~RhhᬈD]њF=ѱkKY{1 DK;6OSQfΙk(Vc?CY: 'aU>qnG3/<ʦ+U85wLI:}ݷG*l2Ϥ,vwryB*07!ra>2+*m>v @QfxZ!Rx"7GPAMI!OTsa}Zb` +Gjv@XW⤖F}ԑ>+/w 5zp`qTc$Y5zp9/'5NSpP glVc߭-;WvYHqx"M D-d Mdqu4̢:ܡxZ"UQض\-+-2qQHxJ)bN.՜ц{?5^H%}(I^>cnY[ڊ"rsVb~qV/LQrJƸ$u37SYshw +DQR΄S4SK-Sc~(i e4jB8@)h +@. Tr3c$J +HUui0q3l w{udr7I"C8S[0+XJe:QJcbR4AAD`Ԧ˜-Gx4m:;n5}MV#?Nn.buv]T +8 +01N{XTRRS E&+;\7>( Fd-z%4u; 7/8N `?RsEq|tQX凉a*#ێ5RMhRv逸`>II"2*3Ri:bJ r/z~Tu.yV5eoUlzv*G*)1W*$H["+mo$eB'5\>TFBr9D1'&7UmĎP#Vz FY*: ^;nj|B]2MiĴDMR+֘_6_}1 r[E sR5 .?5-O9>kN[үȦx$ݔqԴK9kle1yErR~aT4+oJrK<>z#[w$t$ʅz Ik$HO|Uۍ:KxX?}#' 2>fKm|q~簪Hsi)#^0XeG%#'\@@%px隞cA$$wCp{{S(n=GZ)(@ IEDO#5?1!ir 9 ڧD*>fj);QEIBҗ#tt#J( !4E5M4sI=))):4zSqRt"hRUhF- ije;;L-.]~={Ttҝ̋cԟƜ0WYAR 3Hn1 +C֣ݟA6OZ@J /ǵ(>xTR N$5LEgd>ZR Hg>ޭ"Z{+-a7@(z1=d9ҧjmF+R]a}#*VSG}Y: PU+ka|1ǽXGH0acU.0hq>ļn=[+eף +\,>SiW*uvVR\m "?jӤ4k/ euzI3lGXYH=!GcD͞uv;\h-9g,b0Dĕ$`y-k:Qe mKkgj 7R e_JWI +eܬ9Zn9Z]TH H W20RIJ b:Fί%f#扁SKA=m + "SA'u#Hֲ iiϧnխ-ѰV#zVdI\@kLKidfOAٚP1#լOh^ơr(hҲ l<`n85yc>ccGѩ3:4P<3\ѩD OoҎPfl\Θ(08?P:1yڟ;"&@8T\㤔r9}0@#h @ 2syLTq3Uӭ(.^jΤ֋>OsC:4ȉ}d~h99Hh ZK؝zvh=PsI1w#E8q|U*̭5fX@wUCEѠjL$N ުiW% ?U˻* O5Sj А6A;|gYَxcL]ҩo5bhƬSa'8<Ԫ{w=kV4,jǠ5 &ZwĐ#OJlӲf`C +}ٺ=aG ,טT{cPۥ! N75PɧFaxd T,5/;]da*w ?[Pۣe.!4LEf]2QO7OE'xnm220[Y*rr%ԙ00 1zis;,#)>sYVsʉ?t]!+,1Gl֡ԣ5vϭhmȓLʷnCNVܲ}^EirMS0NϾioetcmL2n+*GZV4ϝM4^wUyA8G= S/6g ]|$eXcL c\xl.8U*!*%5>FOLEkJu!y y1E*o5>ЮC_j >{e?ҧKWW|q+;L +Nb{*DǢ7 6?RX[Q*~4jH `O" G=lk1Ai =YmxlSf h\o⍖oݴʠ0}kkWpRĞX=8F4HfI{`"6x45x%V^ЊԴRcqƓRTDmlv0cb(BLS @ 3OqQb: V48/(saB|r@urHcejV 95:IjGy1{ [?غq`>wץU~UE?g݋vBo! +z?Wo/LәMj?vWHO 3>&S6~L B8JDH[X2FPԤ-SHL~lC|Բf4QK`}V0*a{wyɀjWDZS@\y"ݯ>F-Q9xXK9x޹hcYtX2C(ìoj'?NX`nTif^GJz.I +O?+F<fngؐ·MLSQrsԎۓ Q:c13{+Wf0I2uJIq9- \5|;/EW}^geD_5[1I½5nN>FerGfy,8}i>ԭ&K *lo@[C_#{e^ɞ}?I!C]xoE#=HjcF`@'~"r8%Ož.1]L/C Ueċ7~2Ț~,\F4z?:m$rϛO9X%NgP pMbyNqȧ$1=n椖Fj|GnΡFM6,IP0oڬ.( H)jJJhB9iݴ Ԏ;S4]F17qWLFInK@`G)d7?PCH+@* 9Y Õ?γÏqA+ˆ " s۽541c@aP8jv+r0}zJIڙ!HMP E4`Դ)/oq +ͺ +c +f$I4MjbYc9bd\2}j3e.9*kRDGV|3]">RTߖ5l3+g0_p4g%j~ȿj~AIƦȫcxsTm|?ƚQ34Pc; 3DvCEO9WqN L_\Y3QV(KIL;S߉b y?QKifP|}?Zp[BҷPH,RcC,\O?!dyP=Z8X5Ƒ:s9dw/4GyV5Mz6<5?*nM?UTR8^%>lqiXR*A_ZAuP~h +ǖ'Yx&XaTݓZ\AAҞ@C;m^:ffDD͗N=COCTDѲ`")'Nm€%)3RD1>`E0zjXe'iu$SI!ֱyH[=JW +pB> 1Zн\+ֱ[6,9Uby +-K4JCG#:21pO@hg3 ia9vօAz 4*:E3i *wm$ky?[ytә/%l*6 $mHˡ lg*?Z]GGXLuuIxi2H39儐F*%b*H>2q.'B0VA׭ЧIWgXۂ>S%%-%2JSRSKM=a>n:U9yn1VtA-j\"1-9m]$V,$ԢbCYU9$U=kcO}RFWFf7uCK ]Ґ0 ;M<>\uQaQj?1x_ZH[^9MT@搚27 +4q<ү54<1ҎfF#Rz@dH[,TH$댜s!_9J;T̰['T䋌Aԅϩ#[퐬!Y* y y @ɤ+cڷ0㑴6p}r!Y5 qHn^24*`-9NpFV{Ynonnw9Hhs~]fR\FxX}@612qLKiG>ӷby:<VtZC;?0*j ' tox|dRWBvg5 r*댰 E\{h.PjƝe9nj +wQ}^ _qza~נQ|CMg Rܠ=7&iEx+gF.1e&Ѧ5TNنX4C[DR"J>cJ|ܻw-͌6kNd s]][vc:~ ֐Du)o+`a jOfh +PAԒ*=:ј'3g[d[bo)!4ǰi4RBU$ )10zNݦ1T{4>wӾ'qѝ)R&Ci5+z͏D):^e*њ-feʦG^8+Nuީ}Yj7+n+SGցSNSѓ6){6OnA=_jm9]=j +?U{ܛlwBVْ-G{(ZވJ< +[ܜ˓b#Uf',$ B}BCgu 2; ZN+Q$7V-ҧa~vVChcu+O2gƉ5fve4jxcKq,,@Ϡٓ,Kl\*fG??cID/] +S`VXK,q2=4;=PF̻ω*Um3ˆ+t48q A`2=Cw6qPZ|䓊IohFw|YαсXs9iFAzi$gvd7:41kbV8LV힗m$WTg*99e$S`v rUU1VELq?RA qA"$qʍ٪ +Fy$ F#Jlđ/^_5%dCLXvU3L {2O,kMd)|۸C9 crR}Ğ" T䒠syQ6PTBRqxKFagiT@o\T$l˅[CȪs-*emذ"eg$ji$U`xcϸ A-Ӱxjl-17yV1%U2j^AL"iƩ0lcPVKure|խf,UWo'?KY6hqT~)b9aN9v[.erКM-mZwrْs[_5,"wU~VSjt.fn|)cMI j\mӥ<5)#ҿUQ+2$ǚXu^'S`u@OJ`J~ժKh1?™6O^% T ~xK[%^f`EKj6$R = |*)۱-dVj˸G`~NOQ̋f bR"ƗbX'51S> ZK{@"l,cf=7*̡ʾhC3([hVH85Εs ++yO.~cqJ=3ԫd#Awk!Վ # хW pA Z# ˲A׏_h}yc*'[=KMq)-1M:!A4/H\&&R1Uicj3Zv-f(&<֭-qEHbc޵%]2}eB |խjh0kt.3\J^x0ƩC P+5;?OkU: +-Xyh+d G|qRhsZŽ݌2*`Ԛ[ga 1ZlA=E@QRBD*"9Of؏#kJ۾U7=s#I:Nh7~ 9-h"oJ1N*֖ZIbU*WXnҩ|⩵i;h,as܆8 V9/.Eۊn~HSg[ܫ(Sߌj\:y\_qҺm) Kw!YPz5JK{mK-;d?}*kodcn0BVXAN$AYGw4dOf1ޕ #f ۽ET`@iik18>`bCn۟x*TZm%DQ<Js+7٠mB## +pDV4=SH[V~|eq9S)rH$l"-<waR58'f-;SRt>N +_4]hOToi..cV4uФjII#B_¬ +fiO0\~E.MR5W9G3g*lw5s4wIؤծe1qYe16'9 sVzD `)f G^=z"4*P2vL`~-Aqu%H<䚍 äi-3󐛎* kpLEX c{Q%ʜzt.x=i3TlYi6wJfHr9r>VlJ9楖PiZUAkns9&$Waw-L\ӱܒKo92 {UE2NFpMl*rI<Ζ5feBPWP>tC)J~Rnh~ +P0 OU[Y"q0B k{)MMc\ecGSL XGHPK-5 1Ͼ;vZԘ1ϩQnD.U>V\љG|nIWFQk;PKn^'ӯ-pJUamg pz gs+n>h+)f? YEhjqtqTQ>㉎:0،wuUгQM6(JHGY5f(Pgj̫tQӚ6}>`qJm2G^~_ӚʌN}^[]779'JRHb@P6D_ƬTebDS0USVao.Xc\|ij2h?ZS]όǡ2Nh~":<1R:VKu'LfWMWa5&cq2ia,u:SH=fJ û0'abtlVE8&eX'ɦ+>'5,0!'cPUȊnb畀ajW BjŬJ9pi߱J{ZBCٰjWP0Q1*W8ҹH=$ŒQсe3MME4Ijj7L})\lkp6lBA唰 +B:(OZuRh9Q]/#> ]"OT|*wiK[$wr]&3j&AU>I.v.w'-3E$N[& ϣ|%g&A OxʷJi<ݲ︊c ȫvֱ*3)w_c`u$gv>\й,gjN qzX[kWYqE\T?hP%zc"#eb))$GKsqm$Sy[\ U,F+D\i&اTpHw"NI5^{gyӡ,+Elav {??#j vP70?"ohVXg;{}*\J7,١D=:A1Fd?Oc}蹅\1\`_o\[&CdbI"I=ONlՁ%M1c*=jf=+l!UQ q޵A578+J6D[\2W85cD_GV{SV]2XCkbdUIcȮbwV5VD1HjwJ Dr)d4s@0&ާJ848qfr5N=)3 6|a$ʸaΖrrrmb9H_JLw黑֘cӸ +1ϭE,{`G|P/ipG?ZU͟.UY jbrt ڥ{i1}jzcV=鴣J̥.䨷1y+5A{\ytV.dW7n/risЂ 2;`@<(4א%kbY-?`QF|>*BQun-.cح׍G +$5ƙvmu3!Pг5yF5QLE]VJGs[ܯCTW$^|Ll|Ǹ5jQu)c1T3ZϦ/4PFNZE) 25nf䃞Mi,W<#5lL/CH!'>ccF j̷ȧuqۓ3NÒd Sf(*8.7p)ʷӏ\Һ)APR8ʑP q^yKc3QQ-pHpN~]DW&vlӚ¹{vI_\JK?G`fₓHa "A(! + +VoA q@N2DD`}"M_yX1oPem0Z2>ϞCM5RHk?GjTis!#kwM ?Wjl79ԿezEp1%(߃{jG*dl@r1p<zhvnH?^2Bt(dndb?O[yBW>5YQsMW")H.M.T&U}qK@;4ӀKZ1?—":/n3>¨ Jg`ԃ܏v?Ruܼ˟6¨Iy|FFsjډ1D3ME6 9 yg'c9bIdPbFBV5ZsZjN1%*$l+1+`d~{m$`#LYKC56K`[mqw:9PsyDr2<*9.t؎^p?RrV< +U{Jڈs$rdںi =Wb>L71ՐYi"LqЏ8#A|2?ONJOrM|Y +N7cI4\6]GщN2Hm?,dZº|rgU$҆* )VblOA(UY8c#Et9mDl\؟ܚ7y1 ?282(.rIR9<;@'>wvA0_S*\m CʘhB򓃕&Fr\cekb9<Z k{8#|*ն՛ZB?fɥ `s~>W}-6F!=#qIi[ +褷! 1MQ~o{!<f|Rsy(9>P[q?c%UnEd>uCشL"ɘvxS"ݼI}S#UŔ` +}CS V?+~7 4 |i#SgY>ϟ)cg7*G%N8l~)>\K>ȍ&1RQ9IAՇPIn;{ >w5l7}2UCpLR?QYSvO&w$iHFMp$>vB{CvI&/tԓ:wr+Yέy?#˅>'b3[8I喌#{qުȶ,:o?^RIK݆Qڪ !H#uBz+TgOph2ny%%zF2Q*9Rs6ѳQJ1ۜheI0Oާ5,.m@~V"#aRc九wj)ZI]s]<5iiOzrPUޟhPGyw(s#i+ie+(y5*]M=&eZ\g͞#"_&}#h9 G|HQ\09Yi+A@2*/2.Ă:Ư͢g9 +Mշr;)ecljbFP`krr ^1Sl*G'hvqr&=lVVqB + `4+mz.k7%{#ukhܱcژ F(?@2[m岞d;A2(ai"'X!uE>WηSM#`?FXB[֪\A$-3IRb$NGHmw~}Oe s7|T jҜtvM2'"H֗!V=~YCsDOfNΒl<)uIzRrce2 Jue$2+m4z> !hbhg1`eCfuqI~u_eH1$NCP}H<\ę~B5=[UW~?Ī T)ZAr0LZ}M [_0Ij݀ fgX+a&4=n#[]vn?Z?<*Z}hW37?ٕ[e,SE+ Vq%t#o2'V+cC&ŋ$V[:-?Q\Xj1&Y??1G-`ѥXOupVW}*Ǜ(H.&S^BFiZ֮W+ .A;EYr['= "$L xֳ?s#f5V`&[i[2I ss!ҲSXhASOM>ňu,1?LdGb{(qrd}p e2zzPAڪ#t)90G\[#588Mџ+XV̅#[.x*vX~-& ?&lNme'ҭݏ(DVzq zݏts[,FJZ9p85U#r[v D|AK3)Ǡ}Nqn20*J8`jӉߛ8s@e1-῞h N6JtnZtټ|н'<ʫK#2L#e4MLC,+ѼqSYWrsPp.q=VS +rG{Fh|lUEDӢ(7_w&7)=Xv!Ѻ2Tq HA[`qNuhe{lsޣL<[ 28HGɞZlz߆>hdjΧdoO*}On(#p@Hkg/d\7C"רxM[AȹJA]x9-n * t-ĭ$y8GvWP- +Gs  +!V.$w',C8`z ++|)_=Gzf>V DsU-)n0Rss+Xq$V EMSCy#)kZEhJu"m>P2j b0vɾ#rx|u}i@t쳒:g?Jv"ZDm$6Ң$1Һk|b=r IoJFzTU4j5Yre~85o#Mp0p]>V +SmXOq=FMubGQ7/CS p2QSJ/NMyGۇ(;a (Jivm +2P з3UrݑDɕnVA&Eaȧ'6[ScpV|јܩdo>mjfQ5,2=7]@({W)R=WӧYr  Zs5퀘$ۻkrE՝ũPz^G*Q*I2]{ؤ̖$7?\\jblFPqڴ.--_"QoU'(Ã0)wVҲe8%y|e +VrSLH๒)U Hy52+x& +Iaї$c4$/ jLR =#C͛hce* ^eXpBs(~g3$=}֮.3dJҞ<TZTHiȥqQ⠳мS̴N +wV/Xm@r$zVsfهVܽޒ;JW|gS<7NAzWOx*SEp$G1Z(4#Jɸ+TJtv{;wdWg#1.ҳ=lmN$/U[8lugxz8Eyz$B=RV@[s Us| ]Z,K ^Cigzw4l١nwn?M>T{oڮV Ij&rPR1p1i' LxnƷ90jl#w;UB¬RYDaBÊ@FF ^愮-7YޝnhA),7U`?ZeYo ߑGSY"?#UܖBrv18o~FT`iw+NQ8hcZ_A .<#^s K6SN ̋??tiBhcu榫5͌mTr +,N]R. ҝV1ZG0?V=X)>0ͼl2je'L:l'~DքG],_Ϊ>8o2L?. >A{VZ5c1?ʼn : ]>̯kͺ7#b;fɑW#-} {w/ykJ: Ws +8v.oC|IתV00ZsM南Hx#ҳ{YIq1SPӾ\/ d3ߊB!w!s֠\j\F[##4П.lp\]ѵ=O3ArAj )9%_R<ߥC~%G1i +z>sR6pNrEJ2ۺ#BÕ~yoUqO+sO1qSX\7aiw$æQ\34!N"x﨩oa^ځ$NBQ*ٜ̍U T"H?\Z=;XdºR僂Xm,ܡSZ`:m.? ;WW;l@tp,O䖬슴L.8\Η2@Mi<;|NsU"S* o%u[ +ҩ95S5^+e +{V|o1% XWzݭWw'W篵.?\`LmRס81,sjꚄI#yPK#-0"S[Z5W9'RjȌ)ʁSX0UGA0L}#q۽@)5P!aPj)pE +r("-P1ގu2ͭ Ok@v^ ${G#nӰXt6^,s UNw@vSN Z1MO./O92;d~7n1A4o`PLlZ}Hqk"ji"yrD7?YX?ghb'{uYwFxS#O_4<R(`oPItd;Þrȥ߈`?QUd c'/FZ[sLhvoGHKlE_?|DN)fks}0K/b2㴵 8jiFwxgzbtkK#X0EB:fBN? +M 4D<@K#>pHvc$riW*rZI*_r?*h,:Tڢ]:IEq(\6?*.ֱp} '=* X%OzH*mlJq8R6v=*#}ޠc -ⳣ>X.knX&,w +ɴP=T`;'ִ۹b [EvEBB} Qv4/ZDA*=1=O ]N?pYzvwP[0j[;[FGO)C-qҹyԋF#J^s6+;5W`0 ++1_,qǠ?'j9)UBHdaR51RU*jPSKp)AsA1(&gG5`0xV}ģf@$zZON٢W/ F( RH$n&yXGVwqr,8nZM %hn)\0E\`;#z[2ZFR'a:ҭ=Qkb(\I>u̎ h]XN*pqOm2^_ >֨"q! ]4їSI`ieF*~aKoǔ+O#5](%1_cSA ܸn!B]Lݏ?/PpiJ%UnA*N8>Nl|Gb2L-R Vw5eL,UԂF7#"3Evܯs$g ?d~ i=݊@7|á Df)!YFYl9=6E@)18&oD1n9@ P+٦Fax>W,)?h-G7o^iYҤה]69,mfMd4>7ڥ>!ٗ*]bz㖧p6 b:*'Ac{OZ<sl=*&UP71d.H*F*C.=( +CDDi^>s)bQ)WқOk-H]MH-❄vk@)H=)@4 RZV5U&- }n$Xd^itٸy3zl"[5Ggy"XdVSՇod-ۚǜךkK䐿b}j!I2&ONi|?_L. oZ1 ǡ  +=z֓OddL,?ޭЪm@ Xy=7V#Z3ּ'kwGOڸMJ]6Ww*߭zn&~0k5wg/#jpF)\sL0K)) uE"gU&iO$R>iX4c\,Aڒ/Ri0ќ'ցϥG {8*IU0@n2EI<;G>hOv{R^ ݏne[!O8UD + +xZ8P@QF +ԹGl,`i(4;UMS$7^|eH/@d5YM1*@Ē4&iBiph$M&M5B¥,H$u61@G֪!J=T^"4v3M݃O*LJ>4(I2)1n,ߨO1+{qZjd Jm ٦rk?N )gɁFÏʱI;$dVuve*vz3d{T\ku4M9*D{M=MY@z棉*+) WHI>VI л, +zqNWV=In7:NqW/I>flBPOj?VaQdϹʸ˟ +~.6 H5cRtJMftY89=}ǵC# =B ip ~EyU BHx?$>ګq5dJS^$.,vחv6 x9)֖ vfRNya_)"Iy.lᴶ2@HOA4pA?US^áLs$lGoD7U8YZ@&%bzeQ?HTIN4br9jE4K=B-XB]~ߨ +vM/ZքJ{iw$x.Gֺk{bC"ȇ4Gt#BDXm;yYDo`!gҥ.r֢]ҋ8;}NxRz.)[5˶r [nc&ܣi5ӹWR]<Ҳؽ$+&\jأ"Uv\U>]W4'ZEIKH ڜUdzX5T2Jp; +Cva*cy\+>+pcv@:m5a̷P}fjNVm%EWմ(#&NvkSW혴:l[x;+Ii +SMeTvĥݺVmw'].iio{mdrj3o{~>]: ֥Reu&5Rx ]k[P RrzJɴ{ @\߈{6bWִDrO֠Az:a稬iZ,[Az/;\zUi>^sݫ94sTfvJ(Y[{w9F=;kqn8aK)h]9Ï~"s~CTJY|7ZJ?[UtX]]d-ss$JB9P}*;mv,\ TƌH,D|pk;LĚ -1åwc6PG3.t/f {h;Յ1 a@ +..V(Rf4Ck8f`jkw5ocUsӭ78UqX/%ҝAL1~kWp8K j=5sV+0(ɳX=jӅe? n[xRM#4ĥfjjvaVbt>&ӵH"cќ㯟~Ri{vڣ,h=)%0}r*(teΤkw*Y "(ALov?HˈeʜVj@zV%sCHi2`$Һ:m۹ZYGn>UCbZiORsQS.n܀y~A$.S΋zk/(NEQLӑP#&5#TDPMFiO"N4R3^AGHH'\cD?R-"!V- Rի!i-n0BffdvhTqi9Y:Ac3\ Qnh  Sh!  ?J4pX:HZ0܏zEb4!teRx-MNQp$٤:w|ҍKb* ޔ#'b*(hY:Z,*n3Md+Vuk4U]cGJf&qZ{w@5Djg#jnsO5N9>0*s4瞔d80zaƓe#[! PX@{VB{gVM(p7.s|Ȯizf(B1S̗ A9JX0u26œ*@*⯩YIX.[Ѳ8Wנ5OPE?YmС尖TM|?dYVﶕ}P*6;\%vǨ{ÍG1SдMzglP..[FhcGG u +goZm1ӊ`T˷֩#TԆZPHbT@-JAXAQ*@iQfLɦM-HM4M&bM59s@Nf%QSW?)62;ACȤP$evϥ+S3L4L=iE! +C( HlpԒQ3@~1֓)0zCy!E0J2̌f!}R ++Hc֥~5")اQ4HegL6?gDYI1cUSQV`Ս+I2N}>D;HpV3'Z/խ8SʑMf7Gu[ԖMd⩼L6r@tz1%QzA[q!!ɮ`n'ބZِz9RZA{HxR4EKbY{@-W~v29O۶=UРu.Vfs +A7Rod +qДkB~}kaZ#ӊt|Vrњ!eAT+T+e]pz:ƭ +w$è=j/} +so&:j+nh r#;VL42r?Z2J̀h +q=#.Hw5f;RzqdU{y'N85>w<9%I8"`(p~IZ8ij Pj-4XYs93Y֒>hkR?s%=MPu9Y3Z\՞N{eLmF#zXn߅knS1}*q :1T[8kcU;Ð56ȑGbڌ,JkAcD%Yz(ԁWxw%qă̄s QEt) k(56 +5q'Edj6.}*M$Raڊ*MMz1T;w^F3UTJ(cDO֨^0&R(9똇MRd7Hޥ'EL" +endstream endobj 431 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY^" + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?汎0*CF:ޱ6K(@0sKv?)p8g4q@ wуR0f)qӷKHZ`7. (H1:GRPLR(=h(ӱI@RC(PLR@Q@(@Ģ(h(b +;RMQE-Eu(RE4PEP3K@Q@Q@-%-QK@ EPCqю֜=̄ cRGgsG?΀;z(8Cy9/O(9E'Jh{v4ڀӱLfҐ0}1ZJ>c1K LqE. S;RJ)h4 hQޗRQK@b))iqڊZ()h QEQEf((4QIK@(hQZm-RM-RRA@JQKH(-PQ@ V#DFI:vZ\O$b(iz> ҨhюOJvuנ4s)zq׊ : n;/j): +wjLfu\J)أOJ)h)zRbKCHIޖ@!P(-%bQ@S3u&(()GPh-%-%Q@()sE%-Q@(4CIA![T 0En(RXp3J bJzn8LBjʹ )Ώd#&X'8SBTѾB3֢&8ݸcr&clӗVI2:1QLؒO,y#tvW[oU++uDp*_JbS_ q\8(׸qSc==jK!#U ɼ#:9Xj +d@ڰ)qF)B)آE;NLS1@ !)E-%0hF((PLS((4J(-4QE% &i3b&iXw4Sr( +㨤4Jij`zj"-!53s ");QJr+8GH>anA.3 Ƃ7L`H\N𡷞1lp玔Jsk!8皒7eʃ_5Oi!{?LI`S@}鈒;gnR}3VQ¨cКyp~)9O`KY@ _#"ci1;-7cWJ]1G9V 85-.m °9֬bwds\2m% f@ }xټuE lrnY61kRO2i>PXN[ +2vLAcrƵ_YAdԂ;Nq[$as7천aX91qWZ%\3j8S<ɬ墌qV$zS.]a3Cһv ,Zzm!\L6 VV㷭e(}3Sst52Heb02m]NNܲ*:G$jKr*f7 +s?8k9[>NOjݥ1k$fQVfD~Rc(O`DJwV*p˓ElpC &pp;Jš(s{iЫ#,,Hk8QJbZT0sJsȭH<;P:SpFy^;jgVFˌrkTZB"Us``[q9 ~196S-ZEfB"UK) V^[ETG +z + >5b LU684P$}H sQM&I &!<2$$R܏*?.3Vb9Ҏ@uSqOkx"F#2Jl!̊fΠU[ljmI rfs{qM DW"_Tm`VVs*c@I$X;`jcJASF hAWzTIԋlO;N(e:9P\>IjB Gn4I8@&/ lzNVq) +͊N)Į`f'yCژA""[N3V𪑒>wBb4) fAPzI8늍TpHRKv֘cG5;jO*qY9J QP-IJtpt{He:c2I]z"q4$ ܵ|=*]ޙj7In(Myh1J(PIES|T5 ʄ5MK-H@=HIa~Px")bU '׬ HGA% Rjddy4t]4} o*UUCK설r:ORw `R)JfZx`MSkx$an(X˃t`6WXa w' +qNzf"NMc֎PuRz`\Rzh{yy/ҝrDK3I9eIpzI?g;4g'b.r08BY1 9VGQu4n<ـ Y0Xrcqz89sJsHVq8#,Dk<;“8tfdaCL 3>QQ$i23f5Cg 3O RyX6c.@ ifV *#jBڀxJzR0LVr1SVRL +CL#`niጮ@-Y`9nqګؚa+Pfkdl}a@i:!p* 8'U֩2Z,Cޝ*9aȦ#SȌek$N*˘[>X&ZjpjFzR3lbFL.7iiF?jp~\c5CSr*1 d&{4l€2by{8sǠl<@5;NUuÐG=qҝw +&7 $ {t:Nq1UɫV? `AXp٤ +TZW'IsT=҂Oz(H$)dSFYQEbPr?58CD +zN3;a;uɥLBt&d>Fe}[4?} ZdZHidCf *r oZGd0Fw 5Ǣ.ssjOG2Fsų O+Rƶ $/q+:4DhNj19h#9mDL60lIoJuD̘BAp9m @КtzLJQx&0r3KB Gǚf3xv(SƑ rGpx"|+]*࢑*P!;CxS=OE=S;]Si6ݕhtY F#1EÔD##| RpNӏ1]ARgGarl9+R=:Tf >.`8$Cg.3][‹ǔzD_lu"9 5V'ݪ+xTFj.nrXCVͤ&DP?szjiZJ88M14P3LB曶S)JXv{EHQ/NZ;{SG'fc*HW/1g֥XpO>{L$# @$\,Q{iWzsP` +h;'sT%>T$8*I IaDp=)1HQ9Truh2 + Tq!(/$[w#򑛁SZT۱*2G$}(4c@sVV7nbH8LwXB۸ڱn51irS^=ik+̢64ʺ$,i"EVVZꑶ~e9O=5ûrR~NRG9dO#4׼}@XםaPz|0"|Dy'5'7aM0s@bϯzs\B1Olf"o/-$SrpOcx]Nr)pdg̎>kqRi{|dE{쑸VlU2:#@ڒ [8 sE`4y{>sse FQzPP"q=sY{C.O4P/#_>~?Z+9aҳ\JF,(ZtlpdRPj,{!1T;\R 6W<P(;SgޘgE=y[""zOp^*85QDIؾ/97 eơ,pJ\Tlv2e/ AhlS>*&ܫ  +r2#䜁CQA[?zvF +JqNP32qB4Љr 0x}SI0 + ҕO>Իp '5=0,+NS> +ԀEHnaLҙ%!q})NwNC2ںfig=\q1ӠyC7P` +5̊+O&@%?Zi=IRJoڮgF1 lݐñ,p<^̼NKNE$ +@oldT1βOLs[V%8Nt @ wllTvS۸#izP{!AM5u)`3`d!o18(ljK{,O* X|õAcOLUAӽtZ2~o_۷\V/6XC?׭trj{Q:r iYA1YаF{|@3I5Ksz +%ےçrkEC`:OJ%ʱ$ҳjƩPˑ?ZW[zQҰ$lc9+2u,/Vr7 8c TFsG6N{UAnJFE|'ZޠgvM/*#LӰqi C.Aa҆괹Xs]%I#ҞDw +>2݃X)"bU"Np+6FfpN{-GJùxxPpXzk\3}߁Bgi S0vۜQ>J,V]*-pI zvE',0OitUrzA'`Znd9沶rsS7`Ӛt*IrcBNI$Z Fj"@4rM٦L|ќ rI ScLIRs9at LRmesK +HTT⛊hM!5!^"Fl_zJQ)GJJSȥy\s@hnjR)P0W wJja@2SR+'wu)U>몆e^Lg\O.&arZ$湖ۥnİqꦦf;yc`ђsW.EI pN=+Ksc33 7aZLƼ[rʥ{cwgygJH\4{B6vFVEPaTK\9(K<T\H3berh@4GOT,(KJ f(w;:U-[O0ژn)%GpzzOGV]GpAIɏ[wʪGV6.=ORRÕqf$S(? +y촐+7Q2$j kI"<2kYl<h);#PCerhs@Mj'7f0y\ +1ҬCym[UR@+^F$HJ=+j*. 3j#H~q;.1J{cNNnqؿazZQyMsq=z+@iؑ%y&,j@rsש-g]᱐OfpRriDւI԰GL(:i/(o1AO֓ P7;dHpI>T-ҩBXՉT ZԆ(9QVHmPB'&>R=3JąR)hG"\4AtpC"x&Xa(ǣ+ZNhAJe$I$I݀:|RUa\| IMȯ| +A8ғCRf.?Kwa?Y8-g\|:3&>h1Gk8F8Og2R݉K&Ԯn#걣Hf<9PtTۥ݀Fzc;gy‡*:)F7bƄxh(QC +t`|=*y"9Ӷ|Oq$8H8JFIV2B괖kT +6I8#'}L|P/B+OO_9[RA#8KuX#<+Ufd2|@#+ +j]i<[=[˽<7׭Tojn@VQ<!Iܶk<]/B|HͲn#"u8D|GG!})V<4b`}(QL,1iQ2Inz{դ3'$H› 5+.1݌JC"MX2yQl&GLB1K3+ԡ{ +qRALJ'3h,14#*x6=*a$1$L7AHyIUy3SƇ 2H(׵?pj1G4m6~T\v(*qJ:`TZ= Jǭ;3ۨL:B8Th!CMhq1/Iɋw'hZ85mmRޙ✷pB3ɨ䝞ErrAȤˎ튼})'>^~}YܨO1sy=(pj6g$"`}j;TRc !8ÑQAebҢ1<L9'U0r?~#S; +Ɲ?4"$ 3zgSTj#4e1r3c9qGHnA*2KZ9Y0zՂ 4 !@K6}x['j[H[%Hz7zR.%T8ǔr|ΨK!'F,wT.!m$u8/Jߊ Ď=xFn1H:*f>\cTK Khxm"#i1HVRR֑@&(paE%-1 F-semcc<_Y#ՌZ6.^!9T=i?JaU}fK;R@ꧫ&Fǟz_6CϧZrGJv֧a\fFj:`+;0OIRCf2EJPx v(w9V!Ld&yTaS֞"rG>SVJõejܼ$ +bp8뒽}ؚʴJ۝ܚ5BPkcڔ9P}ǣӮ \ְ"֮Z52psZJpO5>%[Y7lhQvRbrXqH}:s*wUU'j '($3JqDH91XzԵ8;էLlE⣵"EzV- VoMYb6P|<9hRp?*C))NjdqIK$!XyVZF=6cK|_ 6IxOj/RO(*>t8lfEV$5* +fX²m'LV3$ Xx`("I;r?x8ڕP;)Dk)PG~IC"!զz.WZ`(NOSTv@?X.g 6ĘW6ң6iQ@DH5eSZ.J{*-VJW.aL#U#~CIQ"M$-JhI4 㓑Ueiy6wZceb3VM6ʥ!N K܏m8-H\-.ʘ%8%1\%(ZS%lSS Jw%@)KÊ, լJ=;s)%ڬ VԱ>ȣ;9kzp+&Dg&SX8LqiS3;VqU9nxrhV^8SKɪ2q +h. %pGLdx.O !L +WލLö9Zal}ig{P1$R)OA M i(=d Ec`vjڪ^ٔ%9%*F :c }EZqZdy68iv[sȭQ+Ib#d]ˉXg5vt]H?Ң{dw,0(UlԱiDF&qT{}jyP)~2? +g"IZq:UˑO^=`6;u^0aOAg}>I_t7"~=˜ 8jaMX/j G%JT=BӂUv튰^+fXG;S%KF=x fh,> +r[ڦX)v"lMMj\SDE4c;5(٬IZHڳ$U'Zd2j,)˃Zejyùi)Vcw@ᑊ +LxȩeepjۊUdnI4"w2iqO +@RE{S>qJz暢8 ;b;(\w:J[f'L-NViYJKP2Ri3@ǖM(B{SM95(֤X\#&X=jZv(.B"QJ@^FqcˊJPU Xd٬ & |q@NQK1Kphb`3m.~vE0Jx+LYI´ُE1֩"\폥[͏jՎWXH8by@ՄU袭sOe@ J +"ݻjzab1(ZbhbE -QKF)IqLafaL" XMoN>SI&$VQaTdЏNa4*T*&MBȨS$*`r*)E7ɤð)FxJa4 2;18H8Y )?J9hRɦvAS0;riug @1RMɥi.W=) (ON¹]`S*phdb{h"B8 +xӂ9[~ HIXeHܐj/Z jHo`kBքKC$z +UZxZ@4 +pZxZxJaijxg<)QXUX";vnִVHV%^MOU{UKLZ@@Xi\R +8)( -KE ((1KEQE-6ҚU8=h%H#¸ӗCt$(ʟb\ 1N-4"*Ú}j;Р +3nM2Hj?~h +@zf5 +ɃRWLQHN)E +(i<͝zɧ:K1-Tːig4Q4A7,Oqt%rjsL!<Ӯ )ɫin|=*VUATsLM%a&eT 57$Y 'dIB3T-L. !N*rr%DEZaQ3Hh!Z84E׊~)bS <'b7R-2V~iDNhhݑB;OjpJ +sU<ՉI9c"VڬƧu>^F(d0t)5FQL6Q(B7JE2jdA(v!Q(IB @EPRE0(R^QLc[4E! +endstream endobj 430 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY]" + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?<笟ѣi?Lo'hDOtP|OԐ+0l?V,t&CR=P0&}w֣hQ̠a܉.݇V4DqѦM4cpI[ZYe;Η5U!b&WCP4XѨWdayFyFd5Y?M7Y?HfyY?K=dE3@W|9;}o'jҔ?1Yb F$֥̀SH8i[Ϸ#Ie`ّ&*g͐}1؄F)]y"3+,s֐M/z5$(ps!IL'voam\?iۀ9Қ881߽oDқne~7IA31^lWi$q+g}NJi'̌>P yƒg͓ V@ +FsTweSQ-_4t5'Kcސ\.xLi<笟ѤۑTlopS-diFFҁP+ Y?M3K=_4! +O2[C|笟ѥ} L:pc-_4y݂=M Wɝ2")+sdpxkT]> Q䓎'PISۻ:bV$kzo#A4-$( 8 "mڐē}zԛ0s(#/Ґ)9)Iǻsh= qc٫k7Ip>*ΜJm5ǙR▶9SC@!ñ.(Fyi7i?*-0#֜#!>6g4PwV7]>SV%}JF8vrTgs W{xZ8k#o/^=Esv0¥)byS1;gڜ- }O);Ha57d9-,E=mH<+[\q-%( zv`8"%\UN9EOaHW)$ +xK~j# *R44GJ >Ɯ@3˞ݱ[ +{#u-Z"RB#p +O +igSj踶 (Kʨ<4IV Ѯ/G"6Pxn}LPdv#ִсqrI1r<sRaw1Dk뚔D?Z]sS&? +\ts{*e4JozkN5Ym0sֺ5&AҤKer :ڞojJS 3]-cjF)GOqK"3; +\ bb՛"q23pP8Ve۱Tz + 0Da9FjRH''Y~_:6ai64y-:檼gupFP'>ZJؐfL)Vk7 u-Hb@'hIvW^Se\֔^tR#wEKf~,֒<С l_˼GA>جLgHx[HU@8Z)?n+W^ǸXHTPA9FA+ ܷy(ƒr}}rՠP0ƱU >m?҉--Q$}3iNOLSia;VV2%c ZlEyT0l^ά4۫cݾE3I⫓}9B1g\]/ҋ\-r,d㚯%fIɫ8U&Q&4?nn./s]Ch*:PRV9KO @R/Z0>8E(ǥ["`?QS-4Pb~yIRRPQ +\JZ((((sE*J +]iW19GJqjr'ߥ0,la-~۹s$eW>09S+$#'_?1Tݪ=GZض +3Zi)p ζ-6G cJͱ[Gƃm@ (4D#@zN;ÙW/:+r;6ǘd$ZIi9A=:]C}{U{Eq7T\vFN*33FXr ud`Q+T~z;1#`JlzѮB[Cx r: IHBI_»녎KYFBw6Z@XVFC`{T 2sUd_7{%fˊFlADQ62RE +( +( +( +( +( +( +(>|4RT8sOQfژ@iZ6R5 2+0u-i>"yHOœ W.Im%#S#4ON*C]-cQx!9-4 +J9F֐IsBZۍُcaMc9#PKBq8 SGBt'hGOƒ53 A +C9ӹ-/|ヅm)lh%5iځlp>=EhqŖfSo!oN zǟPQMF:NUs)1ݪIkOԞ½CTON=yۭpc7bK܊q2?*]kbN H{(P8^;5o1Xz80L6Dtծ3UUiT]9aҶbU L^*8 rHUZ[rO R!+(UAjHW-v̚E\&RA׽[!YG1ZjIG*MPs.A2qԡʰ ބvȧv̕Y{wWr?2E2G*NcPO8 7Swm;HB@+Ƣ#heW{gKGkYz}W(7 OA!EPEPEPEPEPEPEPtQ* 3b6M''CA!ȥJAK#sNE20rj+?IrkGbN N{LiZ#Tl)9@䬅FING8>t'Rː3j +ѱ@:>Tб(fpII!>XX0Dg$ SÜuYs" +׋(\nsM .Ccը1UT³` +(Y*3dI:EfI16FCMF69t5HȱLJDr.qQǨ +3e }(]jֿ+}D#ibkxU R3޳.4p:/`)GJ vZԥܟ;jGi: TS]jhC-P֧Vɪx ךp AOġ )8jE4\,3asj\0jaȧV.;JU氎O>SWLX^E4{ShN)X_im$_p>Z6H4CBe9 XY\6PgN*f?wLqمZ&wTW#Ʋj>&@BA"\fI2:*+6n\beJ2iܛ2Z):QEQEQEtfh4QILAK@cb֓1΄[˽М~uШF=*T\FM=."S:4}8[3CyqϓT4cdʫkڹZqёް"aV9Xy=?O\n;:攐ўOsR-*e8  =_ Ӛ̈~F~qYWV5YQ_3ir#8QX>ULt$}}/v+$U500@*E~L>3 ~,k<5)m^_k%S )+nnL:f4#sAg*Q +NޛAR"FYC @cS6jNw~_\6cx=[8늨цpR,9?ήm*=k6IL; }DX/kWf|]MZniEjqi,JqRBSPE5(' + (ȩWڢTqj@HTR($ + zO,AVylB'4h@f1L3b"=U3JfVbrr= dU{qh&`XP8_X{gLؑk`Teݿ<4C3DSjd5 Lަ^ +R9"=j!ڦCC$iQ/R)!R)zHd>T*sR +C$)OE %CNe ֘HBM!R?Ƞ.@:*O-p)|C@0 R1pӸ(杜SViCө$F+’IYabPW{(v{XּPe$fpKo_NIqF=J?Mn,Wn>QA$P +f̬rÖ%Qqh\ZF:Y}>YQ:SwVbe~S}jڌ&>OiJ*A*錾 bGSFr=9a{V3GzjUQ-=hf%E@qPL>"j zTR* +p$ԃސV^ +*eHd("SJ:R21}iCԢ$SR$((xP"!#ҕ(怸,c@QLԃ,~qNZƒJkUԓdND*r c>ѷn5BO<Πdzw +Q3H*X~`wn +c NW"b(1DS/2*g5 +OHdҥ;T+ךR"Ѱӱ t$=U[6 |r?b\v=*PGuݽf4kd3<R͝'gOo[/QONGj%jLUVTi sCRӊMJ HML:T+"^H?*zr1L)qCJ>^Z` +x'HdR)*!HxR + R/zԊED:O(Z^iIڣ9 +H 8SLCXO* Rs2?TwDIږ]b2އ\cߚdZ1@-"ьt +lh@*eSPV-(RN  +v)qJ4**dN. ֭H5QtňҶLHCXlI횷a ·󭑔׫hVçқ=hp|vaRAVϣ  E'|+~esFH⒏c2S_s}>3'ZQ#XU?3?)y_>aE|cMb#HFq*Jֹ `a}2q )$e:ө]9O';B#2Jpp,xTCGJT ޥ_SҠSS'@s@ɔ0*^֠SR)'2e )qTJp¥Hc8 (OF p> LQ{z $?<֝@SךwD<}4D F=A 1 y?B KG~5Qqv sjhX@IX/#o$xާ1# 㚦eܢ7 9J+8mYr8j oKd!G"CJRĀD Y):IC=OjJ2*ey枽j8RXOoJy=0j J%iޡSR@G/Jb\qi zJx +M< !csNbq/S@S{N94y&(،9?8-n"|:Q-h4R+mB/jZ(iiq@7Ţ剫U{A\ՠ+oQSN +p )اK)R+(ɫSaV`Te5uך"%#Z6=ri'njkc5J?TwB{Fh)QBbPJ: +pd}y Sb] 'v0 +)VMNSMAN(Zv*[KP)\L"aOUYcT$\]aºbz֍į*$:Rɇd<`Wm7tsUZ<ջhyAÚc%}H ί?[,AbPĹx[{ +U=}i=7pΫp*kOt'<–Q28AbIWhi;zVu8 +\MSC`()T@1K8#Ҁ+1J+RN + fN5mșw2kP`S$0p{{Wym ‚v+>b 75@By Թ\Wk"J#,0{W%4fc޺19ePGucdzR+FֲhNӳp <2PMH*id + 4 NiyD98ր,N)s:TA=)׭%V=;SP! Ԁ@*x?8@.O4٠ 3A&]Rŋ[b1Tɩ:u_)t'RR+c ER4Q@ kp0;E{-w@ӑ@:v4:s\\xSK`]iҠ`8QKHZ;@Mk.s⴮l(D2 +7(s!#֯:ҳ8ִ\qf(]*p eK&TsZGN[EhK&b۱??>HI;z}E(|.H +TP>n#ea؊{HL7r89=+&c<{Pax`*I&'p<nFIG)A,rZy0M7 xR35 d "#P}++pGԼX5#;xfW:hc8TAmDJ F)٩c%SO4i1yT >dḧ.rr)PH" CH v3<6zLdTAK@g'`=4Oza! oU@ݪƞck]Sq pһWʏWʺ=s.+yQOyQOr.x5'z^S%*?^S%*^]'!nk/ُVW5L=IJ:9`;ԂoD?!T?*jtsb+ץS^ꕻ:9utC¸ץ[?^v-t_B>//_9f?ף|_z_Ss5H=>פ_ +ޙU^9HIfRO(*滖f7,s\:'71l*jLTlO9oʚĿe[*;:8Lb\w3]IX?U }eWL!$99D?dsZ0LaX*!:z?gO/[$G+2$ b+HqRN2qϭj6X.zGקB:|?Z,;3i7q}j7Wa0]rHsR&>Y܇sNV'LN:?tCKIצS.F`$zTNRA}WrҺ?5-Û\KG1(,W+.LnW'&Bտ19ǩr3ZiyjzvE_uQ_:lSGRkq1O?)C.s/@?'(?'?*^]' k#b ʧϰNMMHEuC@$C TGnk + C TQg~=`p5OOϰ{X9aO?n?/"_*=sz]"|B<'}_}c&s G"^c>cO5kNoZ=W^בsl|yx}i3Oa: +endstream endobj 256 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*43Vp + +endstream endobj 254 0 obj <>>> endobj 433 0 obj <>/Filter /FlateDecode /Length 4530 >> +stream +x\]]uwtDs,>P&C!Eb +MBJ i -q< +) iKg}}teYkf͚5kWn*+|'>/ʮtsΧgї^OuqzcBhٴJ/j޸Z鵗w+yp0v-DcNu}ߩ2b~FRB֎ڸ=)%L8=d<֘K_1U7z=zr%/}ianЏ7rNg^U?\} T+|6WK3 NFڅC|mꮄ>ShzqcGějB-@!)+clTNY0U`=tFp(qf?2^IU=i*|WCZYϩoS,3?x1*1\iCpԶ5 !cE;@)\ "xdf +^C紊.?Q^+ "?yeW|8S#q釦7K 69#ѯIj-XS+®(4ū@HٰND{ 7Q2eZI۞<\ J<hA2i8vJ>8FOz& h>Zû 9@"<,NF4<:ѡdȂIPa`Bi YҀ*GR8 ѻa{mpRqƈ}҆A{I: .iݱ>wizOÚF.!=yiڮSУ6wiMT^Ӎ"ɝ&42jkiƑYh|܃Fѫ|:~j=.jOXD dDC25f [ty Ҷ:A0dE*\x6U+dv `\^ A!sT3ol%Bʯ+Ec%j;hY#>N"}4oR/*<;Nқw$h|#e0Y~)f6-4h3A n8_bh#QsM3MMMyE}mC$X8mcP_(i֣-zgƹegcTb]F%x3'1:/jfcgHeA[g/n(X{d&譤aw=:%Ш(I3aY8Ƕ>5%L8جw1={cLW-jk=}ZJ!ցH7` +lC@t3_ /Ƙ0pZ0̘gϯb8#kRjŀJ%S\оSH-Sdv@zӬG8(]菆+pݸ\!X_!ѵF{@Q]dZOL j"Ed&˶,TkX)us^y,vLٲ*'taUaf4,^zL±ؠJ@pSz@ʺکЭץIbv{#A5w+rt!> ٧2暉t,yk&b1cbȥ]3RSD|bD^Vi_L#}"C8`Z ,Nq?:8E}Y"z3kM!>u͓pT}boz9|H?72"/'+z 瓸(]GA!oh&iY䙡,7 6ng&lYo Of6KRv9?{_,qf{s|ÜAmHت6:n?fy͛vq伇 &1XG[Ncvl Sʟ{ϼR%9ʟ^He9fYZn2[CAe>H:PL +]\u$d̈P.gR#|.9,a,{ĴgneT<`HIx77WݗT>E?'7~Qszʓ<[90| ΰD Mi+{8Ȳ@tsCd5z4ԶײTڇ*?4X0=9STV)-Ӟ``ޯ-P0l3NcNypC#8+8Zާ?N4Aok!F<6mTSM pA\`b& 6`NaGFKo)Kwœ*qVi .sI^Kù )RY[^v,^,:ջSς?xxyܜn6y/B2&-_4*xc3ނTd]=_&6:$ hJm(tH:,؆BdJm(tHmCچK6:$ېmH5'=i-:QШG!uZTTr_ԡQQ"KJ.Ԩ7RNbcĒмFSܦlbϏ?bBI(Og>O4W¡͊!lj?sB&Gf{{t~94e9Ck/lܠU& /P_Nѳ@5;7ZÑw݇.v!mK.SQ;M b$,3%:ݱd%?"R|v{ "OG&I-Mj8]=wxk%AiñrS.TW;K48?9~~aZзFm I+ŷIڭzx9Q+'p_ԐLC1Eqx'5s|NIcmO|Ә{PI+j.{z0%p~W; AT_+T>>G?[8nhCz"{y^Wn[. +endstream endobj 252 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*43Rp + +endstream endobj 250 0 obj <>>> endobj 434 0 obj <>/Filter /FlateDecode /Length 3207 >> +stream +xZKeEnbddAÁ[SGD83C$Cv<2aF΅ku"0.QQ H4fꊽ+.4auu9uOнOݿ^Պ3n+{+OxՙZ(ܕ=`icCL0ι-w%gFVN[lwe6M6ݼg!ne+~G^|l#\0K{mJr$Ԃio_/3Z0??Y)5S΅Dy0nλso`RױяSɏ q)45sߪH;{\'W-5~EfgTB*+l>k^&dJV3a:V/4sN7?tvVai0EnB RQ]}tQmy?c~^0.MJN,|QK栛I9/P[ }ۓH;H +8.G: h*O BzӘ J:#G>!W"rr q!.ҡZT҂7t `μ + #g.қGQr +eBd ~fڤ>ڄf>]ĩA 1QE`;wvv~7>k(1E@ N +Wv` "R,- I$!;9]-$oδ|RHXN`b;Uхόn;(i`0^[Eq&AA[AB(zک}.)[e}*)t}4#u 6 .~ޯ/)?'k{ǑһDx_p|:{а뮧Ѽzˉtzs}8G4! au㞗8<68;[>iyc&3((:$XKNҾodn`.EZ75E$IHvp0Ϥ)nݝ<`u$P1> wj0bL+C&mH1Z54f6t aA9vFҠ8qo Ir~[4g?b毱]n⻴OdNfrĔmM)aRCb`H9D:q{3-/;XU6"R#WB.ifdSz##H[O G$L2uҷFcV8TH:ɀ@( )+8À9&t<"&=D37ɠ;y.Ԃy2`uke5pFzvIMdքcWEM Yd +Q(Fp"7RW` Օȸ|t +TsϗfO?P]Zux%9 7RTg4*pS81}8M3ߑ+p;lG8<]#% َTAJ.ۑZpʌ.,Z=_=-h=Qf <^hV/Mb`|U !t? zU 0wژnU#gKK,G8W9;s7 y!p ;2RKk9f^94]!-}lp@`y6'=~ ion39-6@ +=Rlt%FT̑荼5l;;e@P[ v%l350ad u@h8--:0@7&hn:6l 132LT +Ѥ.xqTګ4:,f]<8g'첀Fzm Vk|tNu5ѿ3zxpN`lgI|4Uʙ|/!9.B7f27;N}tg?vS7rg9{+ TwFQO@g?s熉ϺS="rE|ze #xcM/#j>/%/v k:&#%*?֌nRGXt Kѧ*\;&Z!xopx!}7\z7ɬMAR8-/!}ZR|gjtWj$DsyY}7 ٱ"MVݛ`Mh7fI0NW{k5i 0/Ӥ9٫o6b iGjFys" $,#0[o?m$=hy)UMk罔复s:X#)CT1;^#k@پJ4Õ[h#>2~x*B"Eg6aei_I:<^@F}!PWS}<* "8 +-k +:l024~/pl'V;/#O8=OS?3xԪu_DzFQdB7+|Z1Eܔ>Kg]_]KU])i]p[ӥļCFfx,NǼTXAo>~1Jqќ &V ւ5RR'H,g2u (YrOU9i3ؔ-S@r4.u&"FQfrm""Z +z1l +endstream endobj 436 0 obj <> endobj 484 0 obj <> +stream +xwu?Y8"ǓA @L(ƒ@((@( +cD`!JU  E@ Mnwwuvnw|!7|F'wJ.E+V:bdRs:sR&7XYJՓoxkss͚ƿ)9GW:&VBm+9< ;Kg1oM]:uhZo\|׵yA!㓓y*FvlTW@8%Pe +I2rlBqlrmQv-i?KmFn]&Di67=cObjz|TF3ڭ$!uZ5_UiwJkVoP{WcfG1{N 2rbR%M]@; xdbn/I?}(FFӒS4:2+ZPsޱʅ/\Rp;ʅ+ŎO* :p>ϯa;a()W@ou2:6yJ6VnTC\4Ci@cy_&§ȮӲhjuzrn]gcgT4;3) +zf9*>>Q6gT伯93Qϭ};)߾U8kz)<Jc:/ Ap'¨4`Ea7/?aT=MNna>UuY?j^RឳR0_<κպnF K.{k=˓}寄N*L{ZuܪV߿υ LNhӀܦɃ0*;(m2ijvE1*c'EW]YyɃ0Sv9)׬WߐkkNë\r|memQB*//shEq{iG_9=/bO*$׎vPnL_{$75o\;:#o +cnΤOC;NYyW_VkPK.>{뵍c$)~\rO / hGSFlĹz&?)9ಋ7^Z?cwƃkya{JGkSu_M.pOԠދwf%w|𰨼u +K=j35/88hCپe_e<2V `@K~V~D-{KGBx`Փ/W%eېִ +gܟWI{^0%V/ S:AiGÿiBbx4U%OaN{;fkg:nРaEcM跲sxeW94cə=rIk+?O 6-uqv0pɯj<&]V._z <<ط%@nzhOo)lW>>[Ϫ{J 3Ȣz2Ufga:Y6 HqM*N:7%}$Լ}V-3:>Hߐa^Mܹ9\/y}Vvtm߆[Vszh^Cj( (,>L޷6xV^X4dY<O:u +a-tKэ_} ++Q{hǨ^~V|!E5s w;]n.Gь[z=JpŠ'7nNZDȕҀj3=ԟ~ox.wt:`=]Mz'7𤵮?d2-syğL*z~=C;!`۟L.YZ樹yxgfX?mWOᯆ7煰tã?h@;x\/?^HCDi[ 5)9&7g;'W:&,ڲ*;LfvqRNC^ҴO~'}򝍔}qT K Dy{~M˔'cv_M;o9|pw +y5#!Uƍ?t O6/kgݷ.S.cTM9 4eۺ&8beSJ-yO{;sWrmJe+eA‰['f|vӲ- 5ᜁYgb0X9lV|Ĥ8aZ[$>Eo3@a&Pnţmn`CQwHvowk_F=^ZeZ_=^&?=1Epkahaqvtj7cn_=fѩO.(?nF~D]W{y_c&3fKg7 S{ߢͼ<`c`z{cp5=#NGͥ'S\fͻWz-GvxϤ,Jv;cQ ϊ;V~L°yVG&sAyg~_ziadj/ ߹zb U<)߷+ +2~/:ya +oț|n0xhNXg&ɎpF_r's%djvsIrg&3^ hNp`4  ekHX_TfRt _}@^nF48 0=? Àq@L8 |4]; n$a@q@][\T8A]cCT`r.o(,kxCie7;˷8W{ϲwbGM;-oW0M;%x}@q@*AQt¸kC>ys~5n^ +Saklo1cnyy$_uo]>6fׯ*7̸o{;8}Ҁ_rcFy 읢 ߺ/O.^bGv=:G/[jq?f{7Z0?ޝY[0=- uQHR{T" xdohm_V65 ]ҀJc/ﴶ/h+ 4a@O}mZiÇPi@okicNNi#ն 4`~a@> ȭOeN-( +w0p? 8{uj{LpWr_txcҀ+;ӗY0n[* 8kO h0lU ?PodYR4 f+X* }'.eAciG+iCT) (ꀙP: Xf&=ݵt0yE-,ŗKWʵ0 |^udi4 cq74Ih  +i@aEXҀC/,-_<v a|a<<|^Hr?-JڶbJ^|;%OMlYMM}(8j-J6U +iu m|Ҁj֢4`WHrί8MɅsKҀj֚4`͇{<.ijý +sO>U +Z, } @4 ª% +SGgT%i@r^S1 fda mŒxL.ik*׊4pøCΏ7m@د0۟7"{DSaUkׂ4`K”*(& m⇅:2ig][+u ^f6q_~6|dso,V[KÄ[Y% Ƚ ui݋,`Ӏ&{i-;v61:?(ߖLr^t~(?Ubu4 0_(m'g·4tp(Kf+Z]5 @(3_K;_Z+69 X?(y4 0+`,<7pʤhnI][r@4 wv"? FlrwM[{[rG5),Pwr~|H皚|vnMueԐ _XK.3~4~L>;7&RKzD}ݒ4' u)IG_SvQ|0-?!?%,Ӽ4s _pU񮶚\vPmi)朖%hwL~g#,sOB>,\ڴjKr?VL:/eK~0Y2Yi@Q6OUVcPHFb=K=YEO;Ii@0 ]0]TϿ4 D'h{{{wp4k6:qa!K{i%xۃ784ji䘺{Y};ܵOTW|$r˕֜䖽Ի)hwuOyn(^w@<*#kOrk-Ӽk +i=3ZV> gnXyFa* Jrwi +ݥ7,\+_)Eq~~_z}9jou:4 wKߌb*oZ=-z/ܵB~Н 8:f{{!ks) X;5ɦih,U) Ƚ.5^8&Kaja^5yGO D_Mb{ws/gȊi@mVk:4n򞚞_CdW*\pķѥf9T']][K2HklFi:]Ϗ]2QѤk{I0v|8-Y4iL k\5JEq?۲\Q#(ԞUf4J" xO\[kp|_J]=lAg]uҥ?y+_9FьKA_oEZt M/# <hUˬA0*qA6?_Y~˟ u7 aJ-@0Rn]Wi@|{5:~dO%ʉU6]+7wcZxlԻ)~2fF5NI_uf^oc7xo@;Y0ܚa7klF/#S#lx85Sl}uQK)`fη/ 4u=#揄cw;W]2it{0s$};eӃ=w5-LJcbϾ/`07̜oM_q2h-=6E +{c`P^9ȿ6Д -Ki|b9?53vFf8Eاnv]eƪ<G Cщa<&}4̡/q՛>=0vs8?5X ߅;?ƚVunj =W[\cƚcpL3CͲ0s^'}5h~ Ll9Mqkczխ@:,̜/}5րC1խ@G9ߕq5ktt[6tw95}WfXV tr[6n94}skc:խ@:4̜J_{q5րcv[60s`"kl]c +έn7G\X]c 3_Z +yEvkttfYz? tB[6H9Euކ{Z +xuޏC;hCOl]g}%Vma|]""eYz? +lV f;/rI(rNf5Vm,wp(rvDhgj[6p9_Ȯg,C;3Z +yE"fW#ډƶh?OE"?ˮ.MҀx!x~W(xvwA^!LN]cf2>*R.VKa|L Cv˰.LҀ]Z ͋O"u|-/€IZ ,jigG]ټխ@a&~ٴ[UO޻m;bo0?*a'c +endstream endobj 485 0 obj [/Indexed /DeviceRGB 255 (XXXwwwSSS\(\(\(nnn{{{]]]Ÿ%%%qqqgggfffrrr\\\\\\񵵵\r\r\rJJJ***???333 555===LLL___HHH"""KKK111222zzz}}}ooo777VVVeeeҾtttZZZiii@@@UUUMMM,,,>>> ###TTTAAA!!!Ø̋RRRܝDDD:::000~~~\)\)\)III;;;뿿\n\n\n jjjCCCsss&&&kkk^^^hhhyyy GGG---PPP[[[444666...EEEpppύcccmmmxxx<<> +stream +xwE^wEnET3D=0`8E@aEP1gŜUD8E 'z*(ŀz3U_vf뙝zfzÏSSgf`MW=I34+3`0 A5aj`<4 +yhT+!V8CCΫ4/ݓpqbb%ТtOUĉyhj@uMɞ-jJɞZbjɞVՀ%UмVo#K4\@S,8m,pqbGlkS'*<4Pu;89:OUĉyNlNՋ|\@fҵA7:=ծFEzZ NCdٸHOUĉyh +<4KN5,&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'IUĉyhpqb\@&W'II*4i@ 硛{>\2W85)|Q Հ(eE5PTʊj @P (MlR&B).{@6O?gitoUqq:۔{(MM=raErӶ߮}:w(88%;{@6INJD5j*T"tQ @%JD5jDTPQ @%@j*T"DTPСJD5j*T"tQ @%JD5jDTPQ @%@j*T"DTPСJD5j*T"tQ @%JD5jDTPQ @%@j*T"DTPСJD5j*T"tQ @%JD5jDTPQ @%@j*T"DTPСJD5j*T"tQ @%JD5jDTPQ @%@j*T"DTPСJD5j*T"tQ @%JD5jDTPQ @%@j*T"DTPsJrSt+88uJ}r._qq5{(VǞ{u{}ݯc +Q1.] \N!eazDbtܑ]RÐ9 =N[vɫ2]ǩV`gO㺬|gջ(szs6/J.uEx`QJ8ˆv+HοNQ/lLAn+HJt®1|Ǎy_?VEP^wńwѻGuDUμc +4S&Oi1iqjgԿ%[ +-X~uZǹ=.Vwrʌ.;D^"p]3suS1N!Հ{.y@={#uwqs~ߋP $ԯ7׺G*%<`g1}qf>m}0ȿz|tdVCc"y[4Â2No܉Q93$nWj]qU ڍEfZmfÑv՞.:nDy>TVNN[>kwQNl|NLu'oͭd?=>@EnhIy?l,G<=/sPgy_XW'sYb4./+[%jOKV+w=P+{zLw6/d2SOT+Mnn"6\w"&uԶpJw3+`z_f^Hm} ^X,_'fV,;Nqq6}oo>VXNoc~řn`6b>Ds-YvN:]>'MZ9wzw*l@n޲|8\|`ݟOxC"b9=i޺i /h|_[1ʦ8`vwwל[|q8㵽oy?M3֤{G>jQ( Y哀03kVt^<3-`@|*hIѸFKw}d +gjjˤ|k}Kۨ5.Z|U-=ll`^1=j;iC;e? T[@C>>JSzofRu<c6/L1B{crʭES ?‹8gM="ѤDXskGz|:dXts?q5oUO:A\ζȃsa'ĭ[@7-Gy{ yZ+ȯÖEt6Z"TC\.VՀxao9g황+`k=@㵏~-w߬Z'Q=y! Ws^:崯>$ս_X|d+ܷWZfC,|ӥ!Lmݡ^975͚?(]#V{_9|w;}[Wk.m3IyRWG ~f_ޞ8Xq307Q(m~K2["yw +#g{{6 NϜ{M؟?Oۆ]q->z@I%6ՀmT=68cl˦;~)N^ڎ +8'zEX(Y_ݕn~ޱQi|91x_i9hWg +9{Xά~[f9Low7{zs +6`Q Oq[Գl eZ&'ύ/У4oݟƙV1UݸLM\h}̗o7qP8_ɫU O`-684UJ$i9ZDWm[I s=vՀ!f%Νba{jjppFHZ{Myg48 (t7W5_mXH՛{y!薛u N 'GNQoBZbaɚs:O-C+0 8 n&SljO.7^71Zg76u `}9˧D7I;wixw># q GX Ҝ|n]lC,⺪}Yox S7mUհꜺ+|u5jsy6^k7m5CyZ'P<2p6 W6P:PXj@Ga{5&2i376n=&uȁMއ6XɜTp͠vu"7O lBz[lnQ~ fNGXb/;Gt]18z\ô8P"@ՀOF\6s^ 2τv|3ө"3U(nʭa4 :3X9OXw㼶O:;( ^Uc\[)q:zp\oգ2mF4hK-6˲`u m,Vh, +vE;xKRk{b ; +)߉nIvi|($ew-f?g&~mMĒ&6KC;|4ЁR4U&vՀ[8ZUi&^khNnQ٩H=>ۤrMi8x"Ȼ?1b u6Ī}ʼ o˴P$M1qo0~&Vsi~@)А_vsvxɅPM {‰ 1[7A En…j!ybv:GKL%|7ߴKGXC$sL@bP4sTȈn) 'hirn!Pڼu:4Ɇ SUui,E=2l{ׁk'KjӼ[@i}1E~Z>$@S]f-2lj^٬ΧxȚe4p bU84XF0㶐,j~eMp@l~uW= (YiO˪ L|Բ=P޾[ +mB]onPXwE# 'mB=w؁bO* qiU +Agָ-⩪OwWu!kA`GVv'tc}rfNkkBFUjKXTjE]3L7P#'8=oj/|Sl\Q4nOnozXy(j^Oۯgælm"XUu 3y#j\D0|O4@Ae2(6̈́((|.YzfDړ[2LP (;IrEwwB&[6 P'z@զfJ_faQ h&rX{}"f@a"u"Pƈ{'G4 XXLj~tx=?9חttO거~h;wJA6(6d_Y?MR>mQrw|k].b1ʘD "sR6~KE(aA`&0F"=`OjOFDE*`_Fk,DOlàEERٿ*bTqy)rNSrl="{ @=/^ghA݁:d[-Zd?KG"fh +֐|E5@ll|ο#ɷw*c!i@>:zK Onj!ڻj$\t6J0cO~ۣEL P<|5p'|ҳD X[8VpʠEиȫG:4dӯ3킊U`/A @؃n(%6uv(耒$Q-^;hQM/PD7oȽX_ x\L^+\־ɷSM6hgͳQ$뵎5;jDZ^Yȝšm qAEЪPR{yvE/v{3]2o휵,j"iփRmw.8 SKf7?^KSȣ4ԎCV9R].Win=pG'EOe3U// 5x=F.rx@)}l&ۉ\JuAq +aTC>jy"'kN9Yb;hΉ"zcqyvPNkǑUo{(7z4ζܣo?92y:JiS]^A&7$^okՀCD~"jGAč^Κϓo­v r0@ڊ"*5Jk]90/yHQ$ƃլ+R*f6[\I"*ZRo}vDW;3`knfecmNKo xhD=Y|hqz/hM.?g<%F׈N? uj^[%Nupt@)eqNAm᧲y:X:%mwGՀD?~;D7Vc)[N^hyz _M +7mW4 @z!;<(wE7^Du-lr,"5(7L@1*X-<-y?Ffͼj5fzjoՊ\7@+W,Lqv;Ht{y;&:\DzH3ūY0"^{6)(fW"ׯS}Z~iȺjۗel 1Bީ 9VǯA'rߜRA]ʦ۩s'׷;efG~#Y&(m$^ +O9X(R]c"jx +hv[C]0[d~ETG1en;SZ8vu?b P;C4:_ R{bKj 2 ^ȹd/'"Ne<&^]QK[ǿK8eS֑wO 2gVe\nvAcNPRWʼ?Y뉨Y/mD۶[wyZY\ ƙˈ9y̾,YG~flB~e&7IѹJdMo v]DӅP! xT] '^z~@Gldٿ/O[6Ь:W~V1ʼ@=D~%P wԿX2d!6>|e'OSu|8JcKZe Z^kj]`Ծm xT] Z9z"VdUUwLmo?Mn G&yz$@',p*.MEWmL#*:V@FYO/xOdSU5ȳ%lL1~-y_;hg_ǤMe|;d6,Lh' r)b18uZޢXSD( +ge)nջӹ\1=K q_??NcUdS +Ipx5ZFL<'Qd~bC,*mwIC)WGQȽ< nHkPZw˼@z0eU8^DW W=ꨬV;@"TP,rtC,ِ̟mm&^Q"EuܻoTQ܋r*;+WL +QG&-uZ:T~ =EԀZ5AC8)PnJgPU5J{YODr18ly[ +v:PD!W`-L%E*0Fv/k,ɸwLZx-Y="\@bȵvB.o}K8/mZe=ivCHWW z5Q@ʚ\B06/~Ə ٷW"j: +(g#nͶU_"$ Vo=&bzj ^1r#zdzeߊl#ImSi6byn?9=qQB9>#rXR[?I$u_!|dd{Eلt)TrGCC`BZ|P".rT}2bcr\W)~@$ɦ~CG'Y ax +KRj'$~Du@M՚"W +*ƉJDIvATܹ>h3??@)T1Qrj6D-0 g&GhUQDL7ٴ'f=|bݖ  jFW~=t`礲t⻅t"oӭ9TkJϦ"sotSPPL-Gws'U 43obmv;V7iD7Su(v"=r81Wx(;WnLz+=7ǹ&@{j'jb!V:R ܪ&f8>0Q>[|H߁&E hmU\$O:|];J ܤ x޴o(1_?&NW~8!@`KS=Zl6뛀W ( YLmk_1ϫDsl3-NKLb +9[AUmRtOeM>xi:fU )^sl+Ă +j-„ֻڹM}*-ЁhtmeY|Ǜ4Y%|{ $5=NѼviiH-9E|yP=*8zv%gU 8Biϩ)x@L ƈ6{({4Œ(5mdME߉׬[Z@mh^{H9:.NБLʿU@\Yk2Z= +) H~EN/n]O0iDџ8ts5Qrzoh3b&5Z-G  pn/k7ip+/=0Q(=jޯ_J\7P;M91XZ=f e1WlQ+wZ@"ᭇ~l@Ku4}M|О{[ V(=j"Om- XB:qQ6XS} CsE (Lx7^M\ɜB{4m7 uyY9i׸+7E#Ʀou ˚>4f4ŮPI3^3\@qʐY jN +ӘӈWnhx?^Ƥ7j`7 sZܴ}8K%h !_9Lzw^j!Q,[Txm>dzu!fN5}/~@TOZյu6 h3'{mYQTM̛aamhkS Z>3IwCzkO@ ,sIφom{#Tƙ A]W/ վ#Mtgt MǬ®5lGxHo_2fY,Bz +endstream endobj 486 0 obj [/Indexed /DeviceRGB 255 (qqq$$$ooo###___KKK%%%⇇***\\\\\\\n\n\nggg\)\)\)VVVϡnnn555DDD OOO777CCCʁbbbzzziiisssppplllwwweee~~~}}}hhhWWWFFFTTTyyyUUUGGGIIIuuurrrQQQJJJZZZkkkܔ˕aaaPPP[[[㸸tttfff```ٱ^^^ƑLLLmmm...ccc@@@+++EEE===։;;;111999 菏333666XXX???NNNHHHYYY \(\(\(MMMvvv\r\r\r!!!dddxxx"""000 RRR慅|||AAA]]]>>>{{{BBB:::jjj<<<---؛,,,///888&&&222SSS444''')] endobj 482 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4110 /Length 53759 >> +stream +xwX56DADAlĎ{Ec=^5QlĮc4FETHP1AExEqg,˲uysy3˔?3c;ٳgϞ=zXyuԩܾ}[+<<]v(v1ttYYY=|<]k׮ݸqӧOl4|GGG'Ot־ͫWӕҤI,Y"*m6::ڜm_zUToѢիg6"""F[׬Y~ʕ+Һ/=_'bŊqƉ ~Eř\+#*_o߾5kŋD/[7c9qD.]/훭_~ذaiI?>:v͛ߟeKѣGww"--{QQQ7{䉓yZR +^rr`3fLժUكҝ;wƏo>Qnݺ ,hѢ,a={,OvUT/\PF i=_G.\8}tQJ8ǭ-,!*SɃ JJJG5s%JX1|rv߿enݺ_2[Kyrխ[رѣGZ6+]t^vjݻwddm?~lÇ߰aC +bȐ!ŋ7Jϟ? zv3f 2Wa .hLhq}iٲ ZjI:*0k֬9sH/^,!*; }z?+VTo&r7nAjrn޼w_ +.طo֭[ؘ=S߿ݻ5][[[sf͚2et"%KC8O}=yd6K"B#Gsڠm۶//:sLz|cXX##*@F +Kbb/_,o~ٵk׶HWfÀׯk\f#ݻܹsZ6+UTΝtҲe +=Sի={f,"==}ݺu ,?TE[[۞={N,GEZ2'<ݼysXX2hРC/_ނioK7n2doҤŸhӦMҺp  #D|!**j̘1oVUڶm;mڴƍBF^|)\Ҝy'O<~Ӗ^^^>jժU˖-K,i&-%--o߾ő#GYR-zUV=}TYv;udgggr% }m׮]Epqqqz +oΝ'4"GTd!!!s5j԰`cr.]dgg?޴iSSO/$&&8qBX)`gg߸qcҥK1vЄ VX|ݻlٲW^)+ʕ۷!C<<<,[^;wn[l1Cccc[j^`AAA+Pq2ݻݻWZ?tP,!*VffW_}5k֬Te>5je{y͜9SL2ݳ1\Ϟ=۸q/=x@6vvvk׮UoML=f̘7o~GOYgg=z}۷x‘#Gڵk',j.] SСÇ+C6lX-,!*ӥK뗜X^#G~'Fݻ5k(?.X`ڴi&맟~jԨzݽjժ7>K7b*7n NπEV:$\>Ǘ/_*%"͛w1D`8d O 6,_|>}kݻw3g\paѢEo߾-kΝ;7a//+z',888h:?,X?,1 :tΖnGTݻwOnРիo޼t#]pZj\BT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT`tY[0/^)R]@ +ѣ&LشiSz,K>eccc. GiiiM6t#n:rL>|nrDT`t}o t… [|aÆ={>|x, eƌ ,ٳgh7ڱcǀ;;N>B +n +BT`\/^pqqy򣻻 Zliٮ OO[nM0M +kӦMC QXYYoŊ%JTWիWʕ6mڠA-ە^|9r޽{wҽDoٲ{Μ92lٲ=R0'OTZٳgKhhmQ2BTq5i$>>^Z/]ի?cd\?~VڥK+ŋ{qڵ> ::iӦ(w#FX~r~aaa5`?O>urrҸ}zth DQ yevvvѢE-HnݺUbE-/;<ܹsҺۄ ^@Oj:_^xqhhhzzRH:uX\|Wꕎ;.["ĴnZI8DŲe>|zi 2ATcǎ,Yr˖--[t;͞=/Ծ֯__/ikk={Μ9J*F^zgΜimrO>|p#h"YYYv6mڃDO8kt4iҤ%Kvvv/0EhFh)͚7oh"y&1233mmm;ѣG]\\wo&L*"QI8䃨!*iii= + Yp0]b۷ok߬z{\y2ƍ:uJlmmݾ}{#aQF?SNklһwoe"w?sɓr>f̘` +*$l~ܹS6طoe˖,Y<]ɡC7,,(/͛7jРQ7o,׭[W%2s? dXbܸq5kݻX7;w}[`i+F|@͏?q߰aC0}˖-[nMIIucwwe˚1=̙3g֬YZ6?l@j.]e^>2O?zn߾ȑ#?oѢE ֭[O<Iddd6mԩNn޼Yr嬬,͛7glAT򑴴4}Eٺuk׮]-ەJ6m;… [o߾lZn#%0~?|<ٳl۶->>>OwZkkDDDwN:ǀ9 oܸ!wo߾'Oj|.jժ?ySX|u3fpۛ-oHNN^ٚ[\\\@@zO;7m4OzJ̙3pmذaРA63TNX~zꙭQ2BT_RSS+TGj*>:$$䫯Ҹ@iiiѣGUϿ8%J۷I&Fs~d[n2dHXXX"EtׯbKJJ2} 4)TCիDE[[={=˖-0aU7n0s?x^TV-Oϟ߾}[*++%KhxBVVVٲesa"͛k׮UTI1S?$jՊ!- #D|޽{YYYzv"## (`VZ5f*Tp;v :Tn:'|ginݺtrr2d>}ڵKT4ET 88xʕm۶vyg/OtRvv#ǧO ,hMm۶m-Nwj\uM9s^zKxp g~rʏduСCzΝ###l__߫Wj\_nnnϟ?/Y9;4~ܹSTp7۷oM8qҥK+|Ao޼yya8\q5]vGTHT %%L2W.]5IIIjՒ ;vԲA&M,YRN +pIc] + *Q2BTȏnݺqAݻw~~~ĴlR|Ν+feeYYY8qq i&QXQ#F_^T%*p__ߢE]w޹N_̝;W*eˊR +W:tSNESN]hU?ћ.}JR5_eٲeAAAvvvuwjJJJR.k.22R3EKN@5 i|!*SӧO_pU%K~yn*szw֭=^T뛔doooNҨǏoT]ppʕ+EE]6m2dryС+V(X͛7sLQPB7otvvSHǎkӦh@fN8!ݽ{ڵkz.]VޠA=zha8KyFeիWO<Ѿ i|!*SgϞSNNkCBBVXa6Nukk_f͚VZ)O>|3thtcƌYj( +ܿ~իW߱cGɒ%u|˗/u + :4""Bo-^xʔ)~ ݻ;~xEEG233/*]5qİ0s6c7nxyyIy +]vԨQΝ;ݻw?t萎ɓ_LLA +@>;wwwj\[xǏ۷׸۷okժu9aԩS3i0n8i CxMJ|`ggxc2.}BQgϞ9;;gggKWo~˖-NNNիDE*Njܸh@hhiӤU^xќÇzU޽{()-^T2e{hѢ ,ξ*U7!*_Ziu딷Ç;tqܹs?X~DQV^mLf .Qիoʏ}Gr}ٳKQ1רmҥK r#$:* wA?*жmۣGJK.?~9;1Ǐ]\\uݣK`ccs֭r؆2-pFy{{ {VX%پ:+V7> .VVV&fFT/^/^\aaa'N4ԙ5jԸrtŋrnLLm}]Mҥi|sQU5jw^ # ㋊F>}VaҤI߷ng$*" f +gY%^|)޿tf(={VT)i]Ν;'*vEѻw7觥yxxMϚ5K844i\n׮͛ݮDQ _R"&AAAWEEEo^כ7o~qrѢE<<<̙ۡ3g֬Yƨ,􌉉qwwiK_Ƞ=*VTT%Jlذ[nU&*raf +h|C2[_/^\Z=*0bĈ׋ ղeK#PL<9,,LX(SLxx)=rssSw 'oDDp}.XQ2BTm6n޼io//OJWuu'O6mTv +0f&`3f9Ebcc[j^)]cǪUڣԩD{ODE*gϞSh樀ƃAo{e"Euݣ7k׮I_ta_xQQ#](+-Zhԩz׬YSpa# *@F +ʕ+>}DN:uѢEz/_ [Q}ׯߎ;֢)M>>iiiU6m4h$%%խ[7++KUYh|Z|EE-Q*THHH*4>t\KT ;;5%%E(N.**cǎ"Q5k +ddd(QիWȑ#׬Yc۷ҺQyTp-Zh-7jԨkת>,\pĉZ6󋋋3/9 #D|ÇI/^lu)h"&&&Owӎ1bԩ4%orx]5.^(ʩSlmmՋŽ2ehK-QX#CBBVXWh PWEEsFN<ٴiSi7O%9..kK,Q >|ݺuF=ybŊl޼Ɛ qF-hѢ!C8,!*wjJJJR.[YYM:u&ҥ?#O={rϟ?WU +,۠AC5k׎5JTl۶m̙3̙^YdɤIDi + 0`ǎ__߳g(P _Ǐo޼HT@UVNErUSO}B +,Y#dgg:F˂KNN9B8+g͚%*֭x򥫫믿vwwod +Q2BTl2h axr``&zⅯ"""ǘK(_J=4 6 >\TxMٲew&''إKN8QYNQW^.]Z5jW&MDT~7AwT %%ek֬NR" .ϟ>} Ν;͚5~ill񙑑!*x۷oUƍ~x69E/+Xhɓ?6l(*Pv횷_Tɓ'W\Yfllc_yArD[[[߹sG8;ڀݻ׬Y۷o իW(TׯEE]qqqP"5¹cDBBB+Q***]vyMؕ>>>A%ϙ3g̙w !*@F +ř3gDu'' .8;;=kԨ^tss{XQA]QI)))%JP~\bŸqDhѢŏ?شiSᣵ. +*U +rʏ:4e˖111y=OsJFO )R˗.Q9s̚5KݻvvvjLJ8*W,\r,TPF;r4`_(3 #D*##v/^խ[nm .>}X\87::D~~~ϟօ٬Y3rxxرcEh +ܻw=;;[hѢ˗7( +ܼybŊb^.i]߿_TܱcG~t=O9%J(!.21/bFiI a 禴W_3&OCu1**J"˗/7?Q2BT@f̘`i?;wgee5kԩSktttժU ˆv1`QQ̙3͛'GV\,@cT`_qס/ԭ[WT$*rmiL%OQ9%i%K_pᔔ_gϓrJFL 899=}TT5*YxTG;;;ղeޏvOFAÆ +-nܸQreUG @ #DhФI,QiӦ?Qf}v͚5+Vl\F(v)}.QӧOKwuuU.ZJriT ;;bŊ{{gϞSHT@޽{W4HIIi޼krڠVZ111ŋN-[wYڵk޽ec\\\?~,*=zسgB%eʔy;6<<\QǛ(#*@F +zTq{'(Rao(DQEҊJ-%/55f͚7oK.믿)Sƈsi_u^zq.CڵO>.Q,3׬Y3zhQ;*˖-{…%JW$%%ժUKTwQ3g^#gggߢUbtzZZڛ7ooSZ`„ ˖-ӽU0JZ@bF/_>~xGppz^zUTlժձct˗nnnc%11QӧW\)\ @T&ߊqgU<#m5++Ri,jС?иqcO7bĈk\5lذիW}Ҽo]}~7`ǵk׎5J-iT}ъ7=zUVy .*ݻ+WZ=լY366Qy-Kie>zHT5*Э[H岯Kn ƍE\V'\|֭kHK.A^z%+\^ Q2BTJv)Ŧ#oWkňyKt"oڴiРA1==QFgϞոUVvWm~o1*e?K +([nȑo7oެTRpU(Ǝ|r=~Errr͚5E|PO 3D0ѻN:jԨaÇ?~,*U\k[z7Ѐ{a.]?'j(hit-[6aJoׅ߮Tz/;48EwwO322yf+++CƄq #Def)vF+oW\1C)jV2htvڵk_zpppxx{n:u>}qmٲenڲeK5nݺ:FרQ֮]+O>}ۃDEQk׮ r"E G [N8ѬY3Ǻu,XPǯ=zTBBBVXaH3Ž + +RfT#2dXQ2BT٩ŊFZ18P`d1# @7o?^TܹsddIg駟Zhqرc,X-ۿ׮]EE~ܹSX3g̙3Ek7n8l0QQ=* WWϟ'&&J ˗/WZUŢQ@TTT*U Lܿ_bŊ69X͛7uNI޽޽{k׎1+_{DEQC*V\i$233˔)L.5jСCE;vKaYf111bܹ_|U3f̘7o#ø +h^).UDWEk)z2נAOO] *dӫW/-Azzz^M6fhFQ'O4nܸN:;v찶ݴiӐ!CDE_#,N2Eޕ+W|}}E0:DjժqUdd4&MKQQQ۷7||*Tp]QQ{T`۶mS]|Ǵ-JܹsС=zXfM~7nܨ\rvvٳgk@ 7N\-Z4ydƇq #Dq\9Uq9^ne&7X~➞ zyI/ҷo%K.]<-)AV\YXk+WQFM2RJKo +x{{_vMTR]vݰa#+(q@V޽{ףGȚ5kes5m˗E'Nxyy8̙3u5O?tǎnYd)S 6 ;9r]v۶m8pVW +*+W ޲e.S QnݺEEE)S&..NiGE'p}#֮]kһMP}%*KX;w lllvETⓩܷQhhCa/ řK*W\잮6+Kma3f +,ѻwos玿JJz5pp?ʕ+ĸO?tΝl\h#FDn +ǎkӦhۅ+*Z_~ȑG7o,M͛+VMѣǁJ*Qo +L8qҥ)o߾QF viWWF8.CN8DE-Q1cƬZJX;wpe'O\rE6~,RG?h֭'7d_YE`EzF.9Ps?sYK'F˖y++tm*::cǎ?3a„E7Ǐ5kv5bٲecbb||| C*.W04huֶ}8gZ믥1*|yH7}hҨ}Eپ[QL7774TU>ӭ[[nbb\pFҺp19x𠁃ƍ@͚5޽[RO yڵ}tqqqrrވ +@O)>륶m +POQ^)nW[8fM(ȟnܸQn]--[ܽ{c^|q@@o^twwMa ߪ#Gj֬٣FZ~}-]t.]vڼys#,Ϩn;wXT4]T@>u|Сzܹs 'ǒ%K>}Y:v( 'ի \*UEŜ\Lsy{<'O8qQF&} ETxh4?עa s E_?(%b"Djjj .]qm +ۧ-WVjP=|޽{zbŢU_Ξ=[Zh=___+E9E6lؠw-*HW'WZ]- ˋ4QT@f +S}l޼?(,\xzʢkd,k֬=zt29r}ݮ];` #D>fQ,جmq}C6ƙ#EͅEUOL˗/;w/}655U [Ç[hq5bVE7q9 +*ٺuk\~}PPPff-͙3g̙z]m0iZnnn +(nم|Q--`Ψ0T)))?FL4uEIDEW֨`ذa7nٓw k?9dȳkw{)2j^ke QLgINUt8M?RĭWp̞={ֲeK=ݻmmmov6mڈ?xkFZZ0ɓ'lsnݺ>?гgϟլYK%* ,Z={֛7oVÇFyk9;;UTt#aΨuFبQxrFFF۷K.LԧO]vI{Ŋ YG>>>(r +ݸqCX~={ :-Y$00qLj{=p@ݺu- !*M9]:$V48{% $S&c]XXXHHH[&&&vQh@K.3fQ:޽sfƍ}?,k `D^PDkh0Eb Xb bWl`7* 46T!(";H.ޙawvwvg󞙝!ruv SN6m믿*y~ >|ݻu +TI +l1vvvEE@V\<]r iԦMXFL2?,խ[EQҥKyyyu=葬4\]]###Ϻ3fTTd݃ "ߞg%#" &DATs*qYRdc +@Z $O^q/An$Z* + 6Yfڵ˖-˸uڴigenn֦MM{碊{kMf[ɏ=z׮]W3009r#.̨0aB-lyvN\\\qK]]];̜8/^Z3%%]aBC(< Aq!Bf鋱cǮ]V^իW)بQ[andFdFmUF~BCC ccYf3FOׯ_?222 +jhhI*, P *qO™7$u]ryU_%HN.ҰŤ/ +}[nڵspp)WǿQ 555.00pҤI999EN:m߾J*͟ܯ_CIY~??ܰaC {رc̘1E2k͚5 +ωOT@.ƒ*>]6h``'d_ÇyvD +xÆ p-[J@§sSr+7=zH?[dmm~=Grk׮;v1bĶmۊZZZXYD}6~iN +@ f +K8J$f Ęĕd^E?Y?w1 +?fgg3fE}}KҢ2Kqww NVBCCש+&99yذaӒ%KL"H 'OҥTHII[. ++--Zjo9=ztPP}QjU3{n (<\4iruFOT[k--Ǐ+|qO`` Hϲ֭[+6Μ9Źp޽"O 䂨 +%Kvr/ӇS%>=wKo" j45Q,*^zU7m԰aC&~V7nܲeʔ)#TS*77wʕf*}ڴi .$~~~˗/*ݳ`<@& R]v񅯵,Z( wunݺ;wӍ<|αH I9F+7܋fzě :(?ɓ·?Ò%KF)={FDDmu=zՑ޽{cǎVQ#-[LHH*wܱdsss555Q[YYݾ}ĉWX^-$$R-^xڴiz\\ؘjڴiRR?*lmm]=z;Ϝ9SOuMLL,W'Q+&iU]Ḑ R͙|ıq=rmQ@??,Ç;wNKKڵs[vϞ=u)uQu- +VT)77W:ۜb| *P3gfffn*_<{gGX!CڵQ֦'W+Yf"C{yjժ'2vvv%VVm߾}bN 䂨 +_v)܋o!Mŝ !#m9e$11{>" +:;;/]QF۷;w\0sL_dF7`988s>@17nܰf?\lYb(Nݏ=Zz\޽{7lؠX;Ο7vb*@to{Ban=Fb>ʊr +=СݻMyQr /DATx:6 nO蛶B"Gϯ$t\Qٻwÿ~^dffa775pP1gϞut.]Gjjj=zЕ+WZh}bŊ + aTӧ:::ŭZj}򅾞;w̙3صk'NNJJ|t'OG~…6m;Zj(~7ߊjhhDGG;88I=^|Q]bӟ{m, +s|ܒ$qwaRGQK^лw .7/ +L0a2Wsqq9qĎ;^tih͚5nڡCyF<55| + ˮ7*lٲ AtӽqZjq3} o 8 iĉV*|qF///> iΜ9gfl˕+'h +٥@TtߦU7oNG#GуQ,Qʕ+~d'(yQl7*qիwYiPQzꥤ\SNK./khh=zɒ%r9O>)0W===v]Q//M6og۷AŢYYYQQQ۳5"##7nXA5kLMMʕ+ח97z{{:toH!CH/ˌQjȑ[l/|ݺucKrTRJo޼Q|@^ +@ 9:{їXWFC{G؈CGQW޽{֨Q.\hdd$HO=ztر&,t};;;FQSSN:X~խ[wm۶{DDg#332̨O```kz6iI8 +D׿JŊתU+Պ7o3zv=>֭[|>%Ԕ}[;2lmmEŢΝk׮djժ)))e;ɓ't(䨀w2P *&8$yxBN8eHfv`ԛ7oaÆ~IFiiiIII/jX7nܺu.]8qQtrr(z;lذ;vH9eʔyikk~1777v=''GKK 233uF/_^={.Znݺ?@T`„ Wf >ܱc·_~S?rϭxi _khhybE9ѣZjQ4Q,*P,gN$Gd>JDATx9C&q/zw60ZQ|8+l#~T ==k߾}z +~c*vq9,gg稨·FZ~P+O@NNNj^z%Y4777oވ#+w122mvv #44p6f~E 3 xKٲeuFfΜ9|FL2={444O>ݻCrݻCq.եN[n988q*Us+󍍍SSS ߞ8qŅgr^H'þ*]ڴi)Op5YfW\AS$G>~Q叿HoEϐĝ-!~k8M㓢@<"G<,jkky_G^^^$ܾ};嫚 Q'Ov҅Qz3gHV^|ٲegϞ1֤_Ǯ]wLg 2Q3 v]QϜ9S]݋hiimٲ}Փ'O'쎎.|j*_t)hjj ${{/2 +G"##rttgϲ)Qrʥe> /DATxz4w^H$ GIb{"ZT ==}ʔ)-Zݺu  +3nZѣpvTѱ1 Ebcc7ξ_SSsƍ>͛7{zz2<7ʕcXl=]^Ν;צM>>qĢxΎ}pݛOVŊ? g_DvŒ([,=2P *}&c2E(r6Ñb>{"NTӞ=b^t)*[O4Iʽ۷oqCCC[KU׬Y}Ç3֧,~lڴˋŌ3͛'e֭c *WkӧOߎz>>>vQܭ4h* OǏ+Uè`̘1 +G1[tpTjذ۷%+*TxꕎO]xޞQʕ+?(1~\@ +_fN;W1@C*L>s]97mY(bRuT[n +~9sJAyyycƌٸqNB.$̫ig>Eyyyw󓼵|֭NڵkW%/NnnmܨQӧO󼟺(ϷLNN,7.00ؼy3k.::so}Rܣl2bEfb?vy <6CZZZuFv1l0FQ̨2K144,|;hР]v׮](VX͛7OL.4|2.'κuE___)'.]D)Q-ttt= Q(Al#36p/4k l ^j"lD@LLORRR[--nݺ?]v +]NNΐ!C#׏633SݬS2*p̙;JVʖ-\jUzӦM^^^mܹs s.ӻ~zz؋&LzjFQ d#g$@Q} 0Q3*GOXAƗ<3>7j͛b>}BCC\8v)Ν(6mիR>uzN1'c1D(jjjҺZBTJDIĞħ?Y=I|"59կA)"<*c??7*UQR˗/G +SĤS2*УG&Ϛ5kΜ9GH6m.\ e̞={>)""]1bIǎ>̨-t0bF.]dkk+;Iȋ/VʾxdVriժU|| /D#222--\r;wV\JD\R3eX{n>B<p/NVLo& xT` .ԩ]]]Eݺu~y ,XLTѣG)''' + +=z4S[xa_zeiiʹ4!!yb޽<(o?$$DVp+T7*p.]04*ַoߢ&MZ|l޼ӓQҢLŊ\ZlIFFQBs¢Oџ:t`KrT P;DԀ%m۶Ǻ{S *rYNs/1i_Uo{inҜ;Q۷oGEE۷RJJώ[nIׯkժOjjjU֭[7n8̴|{vvv1̙3k,鍊{KQ;880bFjaaaq޽-Z(nTSSӬ,F}Ŋ'NjJri֬YŜ +q>Zĉ...}*""sΌb +dggkkk?bΝ[QD@>m=E~hלDm$ZK—K$#v%@ +رˋ}rCC˗{zz9+(XhQ[&MH dN,((hzƍ](6j͛͛=<|ۋN6m…ŭ2x0G/99B)E=\nʮ9rͭOunݘHOO/Wy!* 3g} |b7ͽTCl aީW9D[ +^*i P”ƨw yQo!==ٳgOriܸ3ӆ +G߿_^=v]KK+==)yd +|ds95r|-[LHH`{E)ܽ{AHJJ?0ş QCիܴiӻw郎db;dfI[JEԇ L44i>L_O6!yyVkیhk)t*Qۗ=B3f̘:uP?l`` hR9r-[ +_7jԨ,YBw ظqk׮^^^]͛#޽kbbXgg;w|)]JfT bFN>>Zkjj*yd6m.\ رcׯ_/ʗ//deeež߿bQǏw֍sƍ|vӦMJxT ..> /DgϞ%''ӿ$&&ҿx~`@Tz !:~q=?!ܷ5YJ2֬S\VI7)Qxyy}s}ppo''6m8,'njҤINNN[ឞR_hQ@@hmm}u3;9+++$$ݝš5k|}} &\/^ +ܾ}aÆQȎ; +ۨã(QjTƧ gag"/]NO(zӧϞ=c/xqjդ|722?CxN@u#""vډ?|#))IϟeX|hff]~}&M$&& +Q@ ¨"_mVV=߾}+͛=<}jذa Wƾ=ۜ9sfϞ(?{LI/7e;r +Iò +ԭ[Q3*pIggg{ 6lǎ l߾}w.4U~}5;v[tС yrjժՕɓWX(VPA+'IbFDSSS{_1AL +aD'1zuiKv&ˋ D**pk׮͝;Wܾ}{С{-[vԩ'OW Ç;w̾8|ysA!Q??˗֭OpBFRJo6==|KLkԨ#e} ]WoTnTZE1'Npqq=;t YPƒqxժUKII|򲰰wީS8_zuڵcǎژ1c6l(ZYY1BG|O|(ʶmۆ ؘ &Dׯ__xq˖-1112GTQdleȂd;PaOEOO_L:Udgg/Yd_~e,ӧϲe84.]|lllΞ=[B[8ƍ͚5hʔ)<kҝ(}Q)zCQ۷ǜOrPoTYbF?޵kW{ѽx4D+/_|ҤIAջ>((s__5x۶m555e~&)Q׏=Z1AL + +98n8= +BOɫܹ5Y3XpܲFɨ@VVWᕲe˖nժӸzǕ+W؋6mf̙3zy~ihh(lwi!C%KKwgv9tPFq>>> y~ϫV(8z(JkԩK,ѓ'O蟪֭(6m4n84OLLSZVCCu֞qI"DuJ1AL +!*SYG|f@dqn#h2Qwܹs֑#Gϟg̘v\"SS9sxxx-[x{{YC'Np2/^p6mDEE|AAA&{W+lȑt2/_V,1RÇkfx򥙙(fTbnnn"vxzdf͢*&:uյkC5 ߼yEջx񢉉\{xxlݺ]VxΒwv񣒻IGfxYjE1޽ +RV=j׮CFQJTZf1 ޾}{DTԩS-ETQP)H_ 5KƤ] dGzL~()W7(EΞ=۫W 8L|fffOP3rqpvv6}qUŋjՒw>}Y KSDD#߽{~zO}YJ*BRG~...KP-oo7QD@<_dyD| $=&ʒH-sRiX4t +Dm6jԨ·˩SE>==}…W̔zyyʳrvZ^\1bĈ {;\w^ww(0xϮ^$ۇ(Cɑo߾ݰaCv]QhQS^Elmm8YZZ^~]Qf͚?fG} 0Q1cSQ<#nǎO!*Z'N\jUqK`@Tԑ+*?盢ell,vKɺСCLRjU@>!!!FȐYppp׮]U:ٳ\ٳ'$1h JV455eeFOƽznڴ +'ʛQ@[c… VVVAT@ @ffa$R_b?^z|EGGO0!11QXJ///___ r޽7nhllY]8q]qՕ<''jժ_,^tIɑɷ'?p>HAQ{YXX0bF׷o_{z𡃃Ó'O؋ttt8FժU{(3*@9~͛7T&fT(D,Wj!* DJQϟ&$$Utuul7wSNI[h۷o_%{*pZ͛;w,¬/vrr:}4~=u.]0K.Srdի͛7gs玥%(fT`׮] vڥBZ1)(BOUsQ(D +{{{5j<j!* DJ>QĮ]>}k׮J?;wnxxxQȨHXXGk:tժUb^ҋͮ߼yS;]]G r5y|||VuFnݺeee(زeˈ#ӭZ˖-DW (˗"2I rpp)(QBT@. +:2Ǐwwwg\ `)^tiܹ<==[\9.[jjرc#sMssM60+I*8ŋzbb2#kff)Y+wѣZZZA1 +( //cWݻ555 AT@ ʕ+L+cǎ]EYA{۷ +/ ݊C>yDjÇ_lZAWZg/_y~G%Ebcc۴iîzD +v;b!fT&L˗/vرcY#4C7o0DΞ=[A> jAYsܸqt?j!* D>eL %eWG}R^qs;{UԲW?g:ғ@(e|_`osF%m۶]~=cQ5*U$eFedd^󐙙9{e˖I_fÆ [gbl* +4m4))Q.\@#/To;;; ۴iCUfΟ??yZjBuWbbbfE1/Ńw}Υfff\D2HR4>|`z%KN8(QBT@. +JHl$?">2W0,K$kĺ.Q2Ho({OHihd@,j5 } QXp\#el#=r`(y#Kx +pvGO֥#/]ݱpZ.}??殑;Hc\Â_-k&} gTAAAgΜaΟ?߲eKcyrBRW^4hЍ7fdd4w1chkk31N* +XYYݺum-<== 'ΝՕ~|gϞuttdEEGG>ׂuQzΜ9SѱcǧOr.Ɋ+QB%!-@Ot[%TT -+۶m:t'j!* Dn?${L>Wqݱd@RQ|=ʻ{{IQ|twƇocߎG{UtHʒn=c9 +t{u_d8ЙR#ݫwO:9v%&$ yZV3!Ħjfc|7-u/B6o!ʼtٳggeeI_+V033gbR4*P^o_~M6eS(ٳg%+]v=~.¹[ȷ ---l$dŌ +L>}N7۷EګW3f }}VZeddp2a„+W*?=ϞQ-oIV4hPvmsssotttʗ//Hk׮_z/\P@USSS]CT@ ߹Kd)ɺ.RZ"ul\cߎ%cbbHv6Gm[HDl6\QboXlc_el#C^TURmDW8uhAG-/HsM̎dڑ޿HuϲerpMGGW^U|||VZ%%-@dEKK+))Q#9o'ӧD%..֖Q>|RSSɓ'/[Lɑ!oX۷o_TٴiWqC9rÆ z..;$lT7oѣGi޼yZ/"##ٓoٲ%//j!* D[rpK6'K}Hb~㺐H|WܱNUd| (Ճ?NvUh>*F=,qt 7T E'N棊m[,OzWie>;3 +Rݱ^Z\ǘ+dwёUv]^p?H:F'l@ydҪ' +Qr"t(Q:u)s-Z\pAOOO)+++k .ʖ-;}ɓ'Q{Kbb".TT@:vN@Ν#""$+cƌYns wvvf/_ܪU+a{ۦMuuƏfeFXr)Srssً;V^=F}РAw.n@''0###ef--hllPV-Qf$XOO7nHYGSSsͫQC8Tvqqy1{QrK \tu֒ի J'Nt庡4SLL7jԨ >d BG.W{Qfffv._\'O㼻 +ﮮ ;M +rAT{s +0<{.$ЏxBU߱\Y4 tVOG~HqU@/h::g 6N#ӑ~"R"yBPm2:Ioa<O;~?G!>KdlҥjLLLߌ_CCɓ;x3wd&ѳgTΥ ,P]wO<@!vZ ''UV?yM;ƮGEE9:: +ގ3gtؑQ޽"""aÆwto޼ѣDž ؋׮];b)i˖-0fff{b9R2P;DT Q *]Y#~vU2sx={Zbw\O9 O5݌;"˯dՃ0#D^}Ԭ)m>M~_ELqTOR͔Q޽ye2;{87RtwӇ9DXYcՓHK-YG1hhCɂфu?BP;w:T:R.RYf{Nj͛7_tiDOnnnYYYꞈ $Wׯ߾}T={d{!8 >}$x ޾}Q0`={*!!W^>d/ kܸA.^/dffԩS̙- ˗e˲:*y[YYIj +|P-D䂨wX _"_QBT@. +|asKۂ{j -P\|uR.ӋoԨݻNŊO>zh]/_~uww?tPq+TR?~sx_8s9[[[5ݷo߀/͞={(puu=vF^djjqF777ygi&///oڴi*=?|`ll̮@hhh~E dQBT@. +|&$^@ٴw\˛[%]'OLގwNtouksrۼ;vnM,A_"Ugϒ_컂d7 +WSNUut'GWm+_,ثyy2ƈ)ik26TLm{m㱍N:ޫ<;^ro{m˕ֱiO6n~Ko;u6-խ{vҫin[o^p(q@7;m1iۭ&٬#x#*? ?{g5А1fc>dc(}||[hѢS9<|ܹ۶m.nJ*;|bMa^^^[ne/j۶ӧ9QLw4hdeٲe'OcQ]u}G#E1;v0?>d/;1{9s\~b]dzmʕRػw/S2P;DT Q *P[4G*q#=1dݺo7vRp1(q12AAdhٟ;]+Od,%ub7Z Ɗ7l(c2Gm㖣d6=K֯/c2O֬)fٲ]dJm>d5=:>g?{UK +ӭLG?ڱ16Qߎx(&+ۑ9^_,<#viDbr6HG +̎޽ȆNd.`H-@> Ȓ$5]ƚӆ<"P=__5\dncc_?%I6lX`}Q:&&&'N422sn_ld… *TP׬nݺ?J^ ߣGj.;w:t(m۶aÆtAAAY7ofgg/Ydܹ\M*U&(0ӧ/\ϚӦMW#˗/R v +rATtt,x]ڒuSH?=p*3Yxt2} :Hx7CAU_HTj:nEˊtt1$9RJ@6v@CvǪU!'U:Mta '\wH~W+ꦊwwoǟ&wl:RZ:o_U+8ruך־c5uul׎;'g*&~E?T:yH-(ݞd@iU@T#&n3YKL\WɤU2\@}U"@zyQɢv\\\5+*55500p>{׶ڵkO2eذabMXK,6mZU汱5kT͛EzT;w@ ȉƍTZ +z4N0Q!*`ff\;;P l.VT3Q ;lzg@wY>';R'c<\ܙ.3+g#z<#GPdǛox87:8Hf2 Q3ÒGD_č TIj^^iVxx~y┾XVGbaOs|re5)N@Ѣ5JSi'OHSč{v KI=A['"""""i,I/XWi5umC +HR8""""""2+Tpر%:u9siӦ)Ț5W6mbŊe,dڵsppؿjТEK>trr:~xt,驻\+uft%ƍ0 M-Z*PdIi׏>}=zL>]oo1cm,_|߹s's̺mT@X!6mX?du, , +6^ǣr.D6nW/_1+w{N,:-/+ί +`Db{cҤn*]qsJj&v O^ P))ۘ?ا&N 7VY57yVo*3}{CEGa!UsZЙU>/zoP 7{&Ν ï%}2vb=/lЛK]6qthhbXO>ޘٳѩ H Ʃax6vWZ X7DDDDDDn_[IBL<}{ b8V""""""ǏK(q ^~=eJ+Tw?'O9ss{#F -fik֬I,;Ì3v0QD_4={v'ߘ'NاO : 4bĈaÆEXhR)ͭH):}t6mΟ?a.;vlVTXһUz9=8o޼k.LMqFutB&uԏ)_5 +YKR[u +ė qk9EDX\& MHw9=eo PKFyuMo]ضLp"DiH?Ƅ3[>m7եMM>[Vr'綑'AʡT.e)Q+y91Wяʕ{YMs+UzR’>\_(m@1hXIs?60qպ+Jk v͈p-""""""+W8;;|rC[څ &ObŊ>W?~ӦM;uͩt!WW׏?<ǎMz*PG֦ aJ %xuEpĉ-ځ˗nZV˙35koss\¦K2ɓ'UCVR"bQX*`ybqSl{l*_9)S9qE~PrJ['viS!_#U*(|;y"k^Y<ѥ=';|νz%'~4gSPe_?']J6FsCޕVUOƏI)ωד/j3!,X->ϙ|2@k[nӧO:SL;wn۶U*X>,up#FFF-[6Xvm?%nܸ ̓'ϠA2glls~q!lT@ڷوP:})f̘VYK,FaM[[+*|zƖ:8ӫ»>}JA J ѷgO=hӳCuvٕt:Kl$Gw | ү R{V}LJLK\OaWvY5'q?]uݶP1x>ckM|(x>SkL\kǢe#B.QDbNߞkf-wf\ZKQETNϺТrD~]E(j8uԜ9sV\tB +5iI˔)sʕׯ׸N@2a//3qD;߿|ݺuUU޾zСC׭[Xbկ_ +оK!^z%mwء7h@zw;;;NjӧO)RDwM + 2dԷ+ j: +YKR)2?¾V"Nxz5bB"1c7OB +KV?PĖ^k`ƅ0fV+bfQHի'TH̀np'܂7hӓ0{/ D;#1g +GrL,HJ υʉDDDDDDl + n*K舫&xĭV@v-ADDDDDD͛իWϙ3r8XΜ95x}Jv$I,YR;v˻u}B[N9owoK,KB֭[DŽ Nȑ#Gt2t)Ruĉgyt@~0 0Hso](* + +:rҥK/_.@t4hPtiG>|Pn۷<^;wɓ*4H3FXǏG=gΜ?.L,Y.]vʙ*ڷo_ӦM>|vڵkUVtTqvv]nӥҫ9c|WR"bQX*`{ +5/'#bT= 8 /?8۴ijׄϑHx9j3ƧNtc7p.`xI{\1*7QGx3ϡIY}?_G!L|B5KcXxĄEG%FT}n/a^212%Ja=$A=D%q6܄$I' +y$"""""~E[tDq/@f^5ʐwj""""""ŋ,Y|' #KʕܜV!z]ݺuw`6mJ>3rȡC]BRJwuuValJ(ѡC :88Xoz<}M6[~mO1=e˖]nӥm۶]`SN.\XձTȲX*` +ؘ篑t[֢bC4!^?A$A<sOtA4!1^>Fe;Y(Q?)nBb;_Mئ1F1a&'Bk8'E9'ċPE8ƕpsI\7n GP@[H;O,GN\jq'+II,<SnBQsEj!Bb ,:|&.EH5 ű򚐨f(%bS?&]sMFmoc1k)prdж7DDDDDDdo޼yڵk>)y˗XbӥKgo֪UkϞ=!իxbGG /cذa#F@Y2xŋ[?ڻx V\ӧ% &l֬Y +0T +I{QϞ=_z%yn|޽*T]sʕ+MXBw4ri> +YKRay [`& +.=롘x Yu(:D;a:̪'I 2F ۬?ע|ńmL +cΣF=5 lr(c6kݫ1PTSn Uiw>&QM""2MHl]g[Hqm8]@tV&$6Ʈ +wiTOl+ ٢*'@qhz='};'-_GDj;W%AQWaDj'C!CNw[]'U7H܉qLw(V)8qF[1Xd~|h#:~^Eܢ+X$ob8{|S]%7: """"""pʕ&MjP~r?EZ*K,ɓ'oԨ_=lү_N:oQGr/}*UVZIC˚5;ER"ˊo޼ٹsZ[~dԝ. +D]9qMph},tYDOlLEʧz["1Ra(Kp.R>ǨH;b,]A]R=QBhLbd.> E'+|FLi1a&v+ %J MZPwD4VI51^w)KUoV&QBwK$ށ[F<]>-'vŚi&vj?i:TJ^Mc#x{O$"""""=IGww{l< -X4!Jb=ZjƍO6-'ōڽPYRǏr{{ϳ"R"ˊ.]ʗ/E#X*u/uw D֢Q>x +ohEi DK$FNEaSflc|;81`?5t>7Eջz{;al3;{U?|zFk/DWCzUE2 >R%ckĊ8[!1==@Jc?=>. ԵD'/c<ԑ㻤cH:lqlt\IHI~"֎o,`kv@qCpn%""""""?,Y2kٳɓ[TȲX*`> +DQAAU{[@AQsU `d3*1XLTףꉆȅ;WϏab'6 cT!q2|Xs MD{|&wL؈F/2J +b('}.)ŚFѐļuQ!1^Af(%lIP*p ɍuWɨĸ^!6|7Ex¦Z7Σp\X'sh"\''6\C 'CD""""""LAm{}eŗ]HTEE, , +QԛHTV2ٮH!N:#Ҙ +>YWUL|H'P]GP%^*^w)nC}1‚F&& +U1cB9sJGpKz<uJb1W=1uJ`q#^?SAZ)1#݁pX|yJLWOmbU=1^>^1 +E XmS KN"ꉙBbQ,9ed!z8'DDDDDD6=p7Y9wgQFdKmo" +YKR(JTi~%񣚁zJBN܏4*9]HIi4*9]J +2f&:iZ*zRUU='.% ҨT 41]F'FoA)9^D='ǜ}(,%fҨT 41c͛c΀THR+km{R"""""""""HTȲX*`> +DQAAUW xxMc 3Aq|ҧwwݫ'|zlF%Ɣ Z_kQtUK#iR#mZ ipgucEd5jE[ğPgqy)Qzo2æ%]R Cy_χ5EH:oҤw=P-Qǟ辤(FwX=>TD/-:55AğBŚFQOb- NkAC!pρ{M0%#}bH_4g: +'~0>ܳ {>Z]ݼIףvi8MFfu` "ډQ7 zy"zu⁠wSL%1k:mҞc#O] YX&D,[Ч&N5:^]ʒfՄ[ }cBK$FL~-05&H)Q[F *&F+ +PHDl{X&EI+ѝF9Cg 'M{4 QTR"ˊD*[)a\QpqlFo7M4F>[-͊M&$nA8(hp)s-ps \-&e&DlE8$h([](XW;\gFs㥗u j HÂrwNW@fuWAC"Ws:2`*$y}24)q;W&V(?gY'H1GH@*8*hp-?fZ"q'V1ACbvlmL"mF` +2Z#رU_ܙqYD"""""D+(X^UUƽ% {CDDDDDDDDDTȲX*` +/?LX"X'6^ {SP +zs;Q:LH ߭`8^ċzb Un 50Մ J ˆ>Ƙ1* PN̓Y>Zd(:D;ݱg=m|;Ԭ)_kE(5!Sf_>0ԸH\$92"y4T|爵XEqۖɨY&Q?ބ5 n:Ye-"Ǥ1F%-2MHlݫ1P0N̔y#~ +1]Ǣ k_m~ȘZصROb'NnRdzv?K} 8Cg/D?4>e͛&$D/Aqb*r'‚&1,i1z%L9@_GUT@LN'ȧrbjȘF4x7)&fH1 O,'WfՑ.%.>D#ppKPTD"""""kCLS*t#W/]ۀ QR"bQX*`{4+qwO%}y +pv7м0%£g-o|iѬjh$~z4-Q14[6sUڇFxB5KcXt ܬfOUO< _qM QUҗMۼ_E)QaV_!AJ6y'C}ߌ4OL'/u[^"1MK7y(jceT(,=ʗ$hm3c|tI@'<1!JTP 3@1JO1r^^R3yvI'wQӨYuŬ=(V U31C1Ɖ-j jsĉ +*`^2n#;2( +z:zIE7@NwWz~gӢDDDDDDDDDDDRT&M]>#g.;u7u@\X1l+1uPD^GXgf%N˕[Q_kc RuVׯ r[ѳ۪63qUQW,RW~ټn`zqs,v*Cl^V8~QԴwKJ=xc.qS8@> +YKRt7B{p\x ycs-wP6C棶%p(Z+QWM͌0*1rGgU28{@#ֻvKg`BhTbk [73̾( +pz/:DĖm jX+nfbzthr"Qtq/)jajMu/\,""""""""""R"bQX*`*tS–v} ܋p: e65KTٱQP9p]d__)%Jc{,>W:O_tQH K1ʉҬ&ZzQh_gMҬV:m/A+"].Uhx4Chs;0ڔHW'u#hSҀpʩRbuȮ]o͙j&EAA(n[;`mQ޾ȎVqDDDDDDDDDDaTȲX*` +ت(_+fDC/$'VWOELC5ŨeFD88OF"-BLxAba\9Jc|GW:eh`b\>V1"&Yʪ$H'jیxBcV)QY٧a_ L, F`߳g$åhibC]ב(`bq\<6&6uppm#MQA{_:H5֍GH~^JW֔Iq93xeK WsADDDDDDDDDdX*@dY,0 +KlX籘N_8Ǹ(y`JI֭Ir =+\BX.$fVm[$Y`'JWZ~uZױB WBTFb."kt'(pbļyY50q.FFVg54Qzo$q-ǟzV0dVx:x=+w^Q&M-o|06)Q$1qb̙rb+ _JF%U^ǭ(#.҄]<9GZ%&ś1 U[`R([J\nn:}s _Do4{Hmrjl47nDLizftdx-%6p!j!TI܄R}2$Iy_ +Vڒ~+}и""""""m=Z>ULʝֱCTT+ez +QR"bQX*`DIWyS1M"lY,[t+Ɨ,vv}K:%%NT%+''Mإ .5.q`Vza/|w ˗7hc4x?B7MgHlHb$8jxP,);`߼g5$1>޵fj +rxe)Qf%E<)lbNX['6Jɠ|(*,8 ͤH(1MRbǎXRĊ1ba]bQ"""""" "Y'Q|o /H:q"""""""""K,Fa@tw +&).;]]MČC8t{ی=EX7ͪ5/yˁvh׆u03b6ŊA0db +Yx ^XiO1_GCx]ck.`Y=2ҞE1*5lno{Yjl|ff:h^-*&~mĕ;7oLf܂'/>.acTѢzxg{O JS#f${#+Zm(>Vo2P2?b|_E5p|c""""""""""aeT(,C}XG(92"Mr$pO^]s5{hĜ:οLsoX"d(_)[q8y2r;;tu1-i.P8nM2OfLj-2ɳZ[Ҭ:q4=Mx2)='"""""""""9TȲX*` +D~4_b~DGn.XgΠI\Ez̝ĉާO'ND)`j ~OÄu>O˳ܨADmGyV'M +7 FYĥuT,VNDo:yu:""""""""""X*@dY,0 +KI䂁_4XbЌh8 b.'9BVhX)*&jO1Ccq19q)J58acb蜸<>QgKqDs'"F;E3AArP4w삹*[í υDRTpoNJq߸'I.ݴ.a%xTDޕǸrc^ǢyLIfgR|s4ՐĦUQīw9>Q[@bwG61mJ4hJ"u,ێU;qqO̘+˟gLψ~ +, , +?;+a>'xO_F\!Q|ȀP<A^<,$_rƉ"Q{1: +ǘ8X"dYl/Q{QvVs6($nj V!ϑx:FDiɝD""""""2)U4wBś+$M* ~̞$"""""""""nX*@dY,0 +K~j?w;H,!mg~Ye"UIL {q'"""""""""hDRT|, , +DDDDDDDDDDDDDDDDDDDDDceT(, """"""""""""""""""""2K,FaX*@dY,0 +Ķy1,, +endstream endobj 481 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4110 /Length 27723 >> +stream +x{Us?s:&B%$LMPT$ F5.)B$I"J"D=Q8;߾{NN{|cZ}>Zk;vAĉ1#8"===mO_駟nݺ5O?ӧG 3N;dM >Zjm߾=Ս챫oNuCTZdISE^<}MuCTw ,.'*F֭[w衇!* +QbŊ}n$ +@x_hTQF˗/OuFTG'|̙3SEDѨ_>f̘TwoD ۮ]]mѢ?OA=rvm1ҥK_yC )RH;/|rUX1{l:prH!:DQjՏ>(޺u'bqӧOz=*THfKkf9\/ +$}>=㏿뮻ׯԼyyx2~x1-Zw5eu}̙N:͙3'@ +P† {O۷'UTIUgիWo ~/\xdv5jȑ#s9e˖s=Of͖.] +Wۻw~`Μ9]t)S̈# fUVV +9hܸq>u7x#Pr\={]&CTQ ŋw}_~ :tƌ .ZjzѣG_s5ЧOI&%}Zrߏ94/p?sG333 6|bŊ%ݡCƍ~mڴPwQv^yA4gΜ>:Mԩ獵'"BTQ`o^`%>w\;#FxF͚5.\xoV_rO?ݱcǤ7nܰar<ԵkׇzL2Ik_?#wud +l۶ΕSN9e̘15jأqmֽ{'|2^D3gk.l {Gze˖%-D!n}x`>ѿ{QG=sŋO~'ru]ЦMB%}W @r˰aÒsϮQbu?` /n:٩SB +%>_zM6{yrOχr7|hΜ9ߕw׿/\pIQ BDO+U_/[ƍԩS9۷\ҥˬY +,~cӦMUVvuBFFFphѢj_4qK*K>}L2%C {O޼˭Z۳w}wy퉲G[ 6ۘ;v8p vK [DvkʕՋnzIn'ѣǯϞ {ϰaƍ YNz衇◛**PvիWx('ŋ[honmСIkʔ)})VR>(P@ܱcǀ&N+-"DTح%K4o<~E/If'?|Νlٲ~7&Y|yƍs9/(W\GM6Ί)$*iӦe$8gÆ In)o^#<2ީS;l rBG6roXzuڵcƍ[P!&'EZ`"*D[?_/⤵km;cȐ!i)ׯxްa xO=ԘbJsҥK$<{74i_ꩧN89}tAÇ4hP;vo6rΟ??###CH CDپ}СC.\F׷~zz5J*6of(P`ƌ=zHBKt_wu9ݻɓϾhݺu)$*|㡹sv!ي+6l_Ө@Ŋׯ__4hШQJ.q˗/nڴyʖ-"-"DT"~ڵSȾp׿ڵkFRcժUu+rG'}ܹsׯ$*4_/Wg}V`$g-(*תU+ޠAz+etMof |Ym۶[V?r?GZ` *DD@H%K\`A&M6w;tONڤRZk;w+;v䲞;:GM61GUL'0`ޛfB*= +<}s=?װ}zESpfΜYHT7. +"*wui…1%JTRCPBٲe)Qdɽرc˘b͚5/7ix+VݻwҦU?p{'iJ>}Lsx˗/^zZ +\2DfΜYR^xu1Gq9 +:fBZvmj{88u;PZ$"DT,+-rViҤIݺu+W6*V~g=ɝD֖-[J(m۶SO=GMu;iGsgf獵?#ŒiŊ_|ѬY /^'ϐmݺuvX|}uyb_|wߝ/۶m|zp%MOJ-]SpKW_}s9ʕ۷"*DD/R`Ԯ .R?SnAGl\`AI駟*VyݛoꫯNa?9O^FI$_lܸ1sGSO=5ئM{n:222+sq˖-M6 қn /,PN:=i}]tQx-Zt/E +"*O>\r|Gٳg>}L2%([ƍS-[,J.r d; x-Zx78zD\K㭘xT`С=S|z{ԩFf͛˰; .Bnݚ]_~0iӦM}.RBTQ wof&M/~J*qQ@UV$߷|g=z1'xO:$w%KįOrT`ܸqÆ ?}MZo=G5ktҝ++V\vmBoQF|I]`_ Η{]tQL1k1bDD\!@ϟߦM5kW~"wiРA'-Z矏[tifbI +tm1_>5O?+V,`T+]s1bDOw9{vӦMNZ~zr5kb_Ԫӟcv͙3PBIh)+VhذaL1Qn!~mzJ> +թ7o\7>rFFc Fڴi3+/e2dc1jԨ{׏)9*r-#F(\pe˖-)^uUc +ۗ-[v֬Y?K"QtA?cvq˖-mܸJ*?SL4hPƜ:uj޽~GL`!*DL0!/o#>}z͚5k$矫T\|饗Zj"W^9'%%KbDn?OٻnݺŋWc\zÆ xݣ#~衇 +(.Q BD`S\\z饥J +9Zy晘rڢEK\ݻ ^:>y4~juq޼y9 +naÆ*THrW ZfM .4*ȒHZଳΚ6mZL{8p`@M .]:&֭ٳwoo=_ZE͗,Y_4iR>}h{3fCH +"*J*}pyOXbGk֬YRO<ѭ[P][nꪫGqjG<Ӈ^N*U +|;w~wuBY< ?hѢ-[5j4bĈD΃[n_儎;Κ5+7!$B +novgvaܹ!;I[o<֭K|#G5*{rʯjEGTQԯ_wߍ)fdd~ +і/_/6l~>,so9D{͜9ON|.]̝;cǎw^nr\>ŋ[h{><7gYʴ6l 7٨QfϞfۺu[oS &M$7n~ή^{mpo59:tOL TX1xc +{]tQn~$UT[jK/%8Bp#d$J(ߐXfͤI?===8 @ +iӦ˖-KudɒsM¯{}۷oEv^M65j(;2Qlٳ:o߾/bpUޥK|_m믿6hˮ(Qbԩ'tRN:O?'N9sf X"U-"K]hW_MuaE6'W_5nO? _uRnݺMv.6l؉'AxڶmO;d0a€wTOc!֭[O=Խn$yʕ+իZpGK㧟~ڲeK|=33Xb:t2eJB6{JFviѣG_uUy=n喘ڵk7o޼?-Z,^8k;| . n͛7g9 3 NTQ VN;6zٲi7ݔn`?պu^x!~%TX1ʎ;,Y駟nٲe[ڭm۶uy޼y:CٰaÞꫯkᅬ׮]{С}IdWSNrUW}y^UV/7i$=&!i +ԫW/sj֬fof1"E92̰9:_Cq71"?jժ|7ߜ =zx0>ۥK9PrFկ_ a'xOiUV}+U)=knѢSO=uA0A[n{իLzO>\rLTR_us޽{O4fL'OueΜ9}%*0p{'ŋ9m۶rδizꕷ}ў={jgÆ o:aub1)2y+6mTF͛7jٳgpaLDV^]v=ݺu ?E6mϟ]*U>bQL0!k;{d̘1W^yeV{'ׯ__jխ[MQVο˞2e̚5cM|]qcǎ 6Ν\PJ;!K…nlL8_~hذ+rVڵkcGnْ֬%Kr7ܸqc~>PBzzkqeu)ϳ?s?PB3gҥKg! +"*$7 ˣikצŭ)2k֬@19W]uѣ̲}]>SO'HxիW3gN\\Oj׮e˖ƍϟ?TR!LD8! >N:iԩ 7??8s\OW_.]:ӨMʕ+km|2{צM>,z-Z4x;T7{'*DL͚-] wޙv%_vc=_cرW\qE.'ԭ[wɒ%{{9ڼyQGz\93~0a€vuO?X➵_|SN9蠃^zC9$5kj֬seK5jT=hР+۶m (Q 9x"Ws +<'|rW֭{*~igܹZJu#k@ +IvmZii,HVC:3O_cݺuՊ:u̝;J*2oݼy-[r?|g&2 ҥKWyi1'6lغuk +}QF9rdnh{O=SO=G 9_|c~+V9x"j֬f͚b.Q+bر_>f̘DXre6m[1322J,ș~c2'$!@v[֭KP!) 묳Κ6mZ|]T >Gyg}ݏ?xA^zg}!C¿O`gz\N8VZUhu 7\{9jڴ{@,ԪUke'tҬYW^1pXaÆN8ᩧ +9x"ߏ)hٲEoիWW^=YvN dff6hРnݺׯQFŊ˕+wOk"E-#Q BD9昴W^ikZ{دs9'O +-[OŊo۶UVj.L2PÆ 7n\֣Z/B֭w̟??<3۷v+V駟eܹ9.ʿ 'LrDԮ]{1]E2eQFofzzz\r̙{lEH&Q BDӴʕ~h>m޼E-NfͶlٲN?ӧv?o[<~JrT .xwlٲ`;HOOyD. /0>z諮* ڣ@`ĉo„ {"DTHJ䒄,X0merC_ׯ_x#F#<^ =z?1c\~yǫ?XBo6yƺu;찬+ׯf^ +zp{r)aFNPݺuWZS%*֭ٳA?8 ՍgD,H-f70` ~v֭1pr?9>}z2Ғx> ,_<زeKv%D{:uj|wީW^̲rʘbQ/QF%\rwO <rjjժ= *D_~VBگ&z~.ilw q}=ʔ)~r1q΂KԿkڴiYfK.+rGo?̨@gΜ9O=蠃6ol?~a&jݺ /S,X?Pp0#'~nL1@'<餓/o=d'xE~~g}cǎ۶m+_|7o<(Q BD$81m\siݐ!CƏ.NT`gk {Cwy%\jԨxO?XbGI +|Gm۶͛;p~F~`cСƍ 3Wj֮]SUVwNLqQ@Ϟ=g̘\Ri#{:uu9h.5kqƬ"EL4?@ +ytiZ⫓ K[`ƿִO2eҪVݳave1}38#TML26mgff +ȗ&3I +\}wΝۡCOܹSO=ltuyh۶mE5?'xO>aHÆ WXSL$*aÆg]}w~ž۷>ۮ];Ay0/mڴYpakG@ +yiM~Z]qcǎo߾TR'>h|QT ƶmjժ\lӦs=cǎB +ehjԨ[Dl̒[?~9^x}ݗ;vvD]6!~嗏3&?ފ)&!Yŋ_`Af+32hР-[m|4{)SxK.7n\FFF[b +"*i7ޘ&+IuW^yekx&Q +ر#ǟ?qZ<;se]vo<%6}JNT`sNvzzl8>+͂Qwhb("X@4VVˋ^[,`T4vƆ(`Dlp&/̲.E~zgޝ5oqwwwɘǧ ~kO-[WXѫW/U5bcc%E-E >nxQQQ%KԣQF͜9SM{y1u#QfCj¥Kn1C9Mfcȑ:QٵkW֭]\\tbee _zUj?֭{IJܹSlYzjժL6U'*PN׾jo'/={>ux[kܹC׏?^~}ԕs^ -"4hp=!})ruu=|މQfBժnBU-dxlF%JCfܾ}{ Ə?iҤ̴!*UNvvvW\)^|؁<<<^g {^rRws''Ν +|||6lϐ`]PV=@Y⹗V[[pC0fK QfUH`uK(WMa3f̐׉ +ͫWZhq++6m 2D‹͛7k֬P___-w{hذM˗/ݻdmF +t}ڵi^<rg}zРAo8qBR\իWP +$$$TR˗iZZZ;vM6$ŪU4!Q&4ؼyn䖠Q+ggAvY;W|XLׯ_kժui #1yIII_7iXP$IQ<76nܨ߄zpqqu +>{/_^e~uIfݻ… seQ۷MD݅_~1uy3fuFɓFo.{{ѣGwAR tʕ*UtOƍ2eӵj0\r¿z3/^:|p]gӛ6%E]<?W^}gyAm~Ɯⱻ{I +0#DNΟ<<M݇:bc{ +4;vڴi:Qw^ n޼vN @FJΝpK2x왥eʔI/AСC7u6).ZßSzu-wW{9G+&芨3BT}O8p}ce%Ç .9SDL͛uyڭ!!! +0={\j^HRԚ5k\\\>s]w;*͛-Z$''ڵKv̬YF!X<? V^ݽ{wC:3f=zR@'ZGT !!B +o߾PiҤ=""}9Gs2nܸ)SDL_urrrFW^ݢE ŗܳg"h;۷ʕ+۷o?} +*h~Q޽uժUۿd̛7oʗ/]KKǏ׭[,\pРAi,YIӮ]۷Kr ]ʌ:uDEEIzDD;wW"""ڶm;;w9*PP$@WD@o*t*\n:t/2k3}?>$$D^'*`B;0`Gh"+KLLޱc͛7+ + ?U񅍍رc)͎E 6gΜVTie˖M?fٲe_L} 'ɵy0`ѣ˧yG=aaaŋݻ)gׯ_www?z6˗O{-[_Aݿ_lC^?ӧ%E޽+UwڥG<"'xsTQy[} +OoŚ5ʕ"i(*ȪQ&M?~\ØE^pA;ԫWɣj+VKUYppԩS%E۷o޼y5Sy"gΜ'NT;>))i)))M +ڳgOڵױ sΕ+WNw!Nkggŋ?:Ըqc-EFFzyy111ϓy'O +,XҰa#G|txxxHxB芨3BT(ukW_ J% ,L.X[|-5qI& eը(11zorj/;N?WbBBBƏo.[[I&/z:u*1c f#08qBR;*cǎ6mH5kԼ#GY s +MtET!*0f0w`ի- 5?eL4){pT@vݻk`eeuƍҥKg~7o\?dɒ_̅9]oFEEioƍoժծ]kFo>UŊl2;;vL1@ܹ?{wgnLXV]@ɓ'O0A^PHjjof˖-̘1C ܗ/_޷o_y=W\(o , + +7Zqqq_V`3gիJo+V'Ç9˗7oHf6l~->;* *W\|||Jb5'N_|*JsN%Ŝ9sz$@WD@qs.O \ +(#$$do_7Gի߿?J=88xԩzj.^_xxx@@'O[>+W;v\x}f&Uև?n*\,ꚙviI13Q:l۶MRSb'hQfP\`hӞ=+H&SL7nNT||ݺuhkTTTWٰa޺u;vd~~jժ={Jƌ +Y/~.999Ͼ}.]TG5sLI1o޼IIIoL'uԑؙ +?,,LR;vaSNիWOM۷Z!*JMʔCGOW~Z K"*`RRRjժ%[6mz̯".-2dΜ9mذGR4fT̙3kVd5jƦ.Wܭ[_zl +?tT/ 4oExV +0#DN tJk 23L:588X^'*`V9Ҹqc,Xŏ7_|ϟ?o + m۶uAR4fTuQd>}XßիW׼KRRR"ERRR$KWt6ܹs*)Νٳguц JUT9%GݸqC-QTDT!*5|0{&?^pr2@V2mڴcDM/+rWbbbɒ%nڷoG&ˋ-ںuk%)3*pI777E_vm?9~I&ieƍ]vU*UBB"]Dc.2WzuVr2M4V_ +z"8]`F +e//ܾm'L&N4@V2}1cDMTTyy\in޼Y^6e˖[YYmٲhiCƌ +8qBO۹}vVZ/jޥC۶mk׮}EZҕKLL3F-?~~0Z`F +EG jpjՄ] ]>KT 5h_~I_ׯ_xxxg^dIVVV/_K ]jmmmǿKIјQ׬TR |ӈGŋzHHHppR-ܹsbf#G ###===3k޽-Z<*l,CT!*4f0}a|YHk̙F׉ +;vißqqq+W +Utڵϯ94FK }$E3 +DEE芨3BT(];a)^\XFh,Bh TDжMǼy "o_|Hjjj9u +i˗/WZUR4fT`߾}.7o,SLڟ{I@< +<}^zAWVEJ իNmBRRG~"*xB4HX2-[ +V ![7AvʗO:wֳO ?uzӐspp/RH-,,lllrm&?xْ%KuJ5dKKK㷤%kkÇ͛W ]VJIјQnʕ+{"sM{a^mMsttz(~DήNNNիWQFJʗ/_@\|7&&FVpˏ̙3GG&d 3BT(("B[x1cy\/gOa.iUظQPAV!|H TRݽv⋪Uk2y~Ǐ7~?&tƍJ*IzTӧŋՇJ޼ygŋ%/_ڵkv++#!)E+&(PTR +*\pZl 99ҥKQQQ. >|6&L0ydށަGT!*/t*:V5k}-[RRR„ 'NaV'g<(Hu9}Szjժ=z7'3BTȝ;B2 +ꕐ.m2kѢEzv +\t#11Q|=o޼L ?%K랞ǴҥKKƌ +ܹK޾}ѣnݺ[N>8888$$DPB[nIiΟ?3gΏٳU$E3 +_j3oNQf,^xz +={E'߸q,˗|S0ݻ%JرcG֭_KԿ˙3g|||ѢE у +޿?vP-<}6tiӦ`mvOQJ.~nnn c"*? ׳vTȑ#ϟ?O__˛U >|z…lllߒiݻwAR4fT`mڴQ|-х jԨKxbC4߾}[RTHdӪT+W~Z!PܹS|agg׮];__F-(FVڵkWe73BTz/gΝ;;uk&;;Y.?=*[ڋG9c dr%Kh۶ki֬5 ț7rK¿nhh9/_}Zʕ+;"*иqΝ;f_3BTz[To߽{рŋ'Fǎ3rQf`Zgݺu*ԍ(&)))Sh%J?~ [ӯm۶[Β&zh̨x*ٳg͚5h@͚5;fVOEsT +-cFfΜ9j(yaÆ{Q|E聨3BT0k׮5jH~m9)boo_x|ZYYY[[+~ W[nժU3uHMMm۶;n]S)%%e˖-&M|ڑzuܹCE5dF%ߪUJƌ +\gϞ-Z;vL0OOOܰP888ܻwOR$*ri:ua[Qf`?vuuuwwwrrRc\ ԩS'On:D$}z{{Ŷ n?󨨨5k~l۶-88X<4M#G77;v^+..? PvW^yzz9rD W/^"Q'LyΝQf`&lmmMv횚jaadɒ>}(8yVv-(]޽)vwwڭG6mݻUVM8Q SYf:uScp႓h̨y2rŋm۶=p̞={С +E>|PRT$*hѢ5kdr=<{뒢x9::*Drrrll6#@ggD@uĉM~:OJ:l0OHH޽Ç̙3gΝ ٝ;wnWѣG---3˗g4/$-[j*SMݹs眝%EcFfΜ9bxSnԇszW{T ,XP| "QԀKfrOxW^gF5Q {:w\&M$#GΘ1CURSS.\(Ι...}˙3R e7=jР˗n͟?oVlYm5kւ ^b.Q@;|6l*ѵjՒaaaJ?'(=7mOYKka +0#DСCm۶}6fΜlg^vڥvkѢEeooY@bbǥK2R2Г'O&OhѢwiW*Uڭ[7e%t/҄ eɒ%훚:}qIőA7n,Q|ӣG\]]o߾͛7߼y~G|;j/W<*`L^^^b5:Q ؼyߛ7o4Xbƍ]Uzukkk5t!C|RV]999OΉ':uꔘрϙ3'9Ο?߯_3gWѢEǍ'h:R<-Z$ =V_64IGfQ*Tp #*͛7ٳgj-Zt:u2rWxf߻ϛ7ϬWʛ7o-Z4mڴǏg4&W\3f8pJ2foi֯_߿OjÇ UF$EcFzbŊqFS9sN2%((B޿߭[7q6lXҥ^.#'XnXl۷oQfżyfȐ!aaa ޽ܹsMuwV\9pW^i3c͚5Ŋ3tWƑaÆx ի'~JK[nu_~ &L8`ehAAA666;wOf{ݿ? oj֬ŋ{}}}7mڤ`++.]1Zj_D0OP=$RJhGT!*d%wԩә3gn-[lxxx͍ܕN.]ԱcG\D]v9;;+JMM8qbLLa3f5$޾};bĈ jy[e$BCCG))4* ǀ>}tu%%%IK;wnlݻw~~~<[ x5mڴK.m۶͟?ğ y +ի( &>!*d[lӧӧOr9lذѣGΝJ| ]vݳg6wie_o)))۷o2eʹs4 ˓'O``1clmm֛6~ر;5tK!!!Ǐ ovYYY}tpbbddncc3tP2WU<?N{-5o޼uhz'Un޼YbEy +,_o߾bbݻg~`rD@ٳ5k֨5o޼ +*xѣg͚M8p-)7n3gN\\a}СCEIƊ'ё_|of :uh,X"~mU*whhhJ ڀ +,6|kvڵ*UtT <<< @R,RÇMLΘU}` +endstream endobj 480 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4110 /Length 21805 >> +stream +xT61QP`R((R5B!46T`,X DAb,"Do3;sy3ϻ SsJ~(ݿ=sw{Q-Qʦ*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +)*ɩ +@u4iһ;yO?tƌs̙5kVڵYfe]nݺ 6lԨkѲe̖b7T 9Uȧ'>>ȑ#g̘QjժբE֭[o߾sM45$*y_u]v۸qں뮻>|5J~kKUHNU0aE]4xZju޽o߾m۶-$*U'vi{ܹs˝+֬Y33믿TJ5{.h5׬J$Tٳ/K.d֬Y֪Um۶[צM ԯ_̣`ԩ~رcG'&֭[ٳgQTrF?~-[{{J+T[<(Fqqs){AtM7TT|}?"C7 eK5jԨڍO6o߾ (aҭ[s喫ZJ +@rP!f:3E뢋.ZveK{)Sʘ2di$*1cFNF:u};SNڣGųtvm%%%yM UHNUw"W\qg}]vyO1cvm7f̘2\q'xbޣNUSϝ;w~?^b-)>k۶_~YڄFѦMjZ@ +@rP>_~o9j~駻tRƣUVGUV.T 9U(Ջ/ءCs.}M7>|x5{=SƄ4 +LUSΝ۶m۱c.>OtڵkO7o>gΜ&4h>Xa +PT r!ooܸ~XRRRez衷zk޽{f1*ɩ +@sm֬ɓ:裯dرna6m:qĚ5klIJUSxݻ8pATŴnz̘1eLxg;vXT+UHNUre]~CÆ k߾}!syeL8ꨣnᆂZ +@rYfկ_Μ99GGݦMBgĈ[lE6lgl=JUSE=3;ciÇ| ~~}s&MZklIGUSEz꩗^zii?;\dlVj Գgς +@rN: :ѓO>.+z2;1SNK +*ɩ +6mG6ڼy{f͚\Q\~})cBa`>,dٵkמ7o^s߿`K,dM4){N ^{f͚dEY=o_Ƅ͛O8`>,d믿~ڴik-2XRѣ۵kWƄW_}ʔ)YLRRY$k[*Km"P,oAO?i+cc_s>>u}=RAUoiӦo<:'hѢ 뮻 *S ːW;IoM8cYċoZx9{Tc&f+o'Ml2N= =yI:41sT_4:jǨQAb6×č&]9@̝?}jIojm]e*ulb׭^X +B&OܤI +N>C P͘1cZn]Ƅ7|XIuSߣ+ ˎn[jb+&f6q翤%7+xyة}3Gu|&4%>z=1sT{)1sTgNl8ؽ =72{T+NȾ^Zb樾3iN\I#â51|fqՉƥ&|u|&$nRLU2o޼z}wܽ{{1lذmݶ ]t2dHVRT"|FxetT[ZJ72'fKa-gƞ;To +P^C΋gVo+Ɲf;SD`*曏8∊<.^Oƹ{91arHVRT:o@ss̛WcV~, el+-t kW%Oԭ'7'.\6`>}q6$xQF!͝g(.Cc7q}KZu_mkZyn'.W3m2?c5$zT'ƟJOJ\%^=iHX\fIOl=Kz7eߌu$7Gm(9ّZFѦEX3V1cIz7^|38x%}satUCX + +@n/{gm֬СC6mZL0e˖eLh߾a +P +K +\ro/wR{$o|wñO]Co*$Dw'~ѩK=OsۻIS~1o0橸+_Pqm[N]a!mu=O|뿕Ğ]uR;3 8.l'GPI1{ϙK95&6c_wΨĉ+&vu! jxyiqsϬB-zvM+gy꘸ͪԝ96w⑻ōU}a@Z +@fϞ=p~xĈ}]fK͚5_㎫[naqwxeLO=, +ʙSg_W_ʿՓN/Ҧ[ V0PīO,O.Krq~q^b%<Z鏶/x#V>}K%?ݳ(W\=b:唸"%P\80Ib>9b<=dQ}>sEOlbe?ھBߎj W)iŅF웫Q-Fb>9b:7=V~ ƕ $r4g5Bk|=3/.҅$tqpnH=UYf͙3nݺ5 +~]w*c˜1c6`Z +k؛IʰvqmXc_fxoI(3fg?O_AvkOFO6<\ĭW^:5=UMjx%!1sTo}j[nÇSӦT6qĆ+'J<h"F=O*bkS1q}7qʵqf1rd;vLP=w&R74^}+g.}CcNNqWٔ/+t_s\+Qg_dx95kb7|j͙3 k֤I +j*T6f)͟~(]ϣQ;B7F | qp滲$^'%?>WiӲlOϨQѮ]3G/7m'?%k~M=:ڴ|ufߒKšU6 +[Ѻ"ǷeWc11YϘ,c _fr3G駱M3&74$PNAKLرѪUe-& +t@|YYVuĭ}ȋ[.K0@yQ'vOyZňpq MeB2|l|Zzm- *Vk}J޺E>:8^SքģW3q ,_}S3(*UH;>|Uɓ6\z&*TcbCJ=sㅛ͢l}reߵo/YXPVٓތ +Q2zm,P,h 2XeM@1}@ +@Jq^xai%%%oFv +PohSz2cqׇ0MbsIT61h%6O'.J:n}%Z/݉[Wc%(y|2!vT1pҞE6"6X׎3eht'nwN|n^Ĝcו#Mo"vl}Hu_/T +2>?XDT fΜٸqo)KU;8Ɯ#ǁűy<+Tjb#%(orn6*Qqxv|N\]nݏ/A+xCqL%f6;Ov><6NY3/Jr]yx^xfZ]^OϏΈL,͉q7k'ǍOWAKs +gݯ_F_~c6nܸK* U 3縎XI9﫱jTs"̝s=^yXOK\^̚oq6J2*o!Rԙ4iRVfl|rH)@\© +y6h%Ƞ_Zάg;izZ>EӦq^Fה$ݦsnwQ5ORxGt NqרX +?n)I=z|+9lތufLSx[USJb{tBbQHIiF=9 1hQ&1)%'e~&]Ħ1R_:yO,qՉqw {"1>6?)% +ܣF=SDT uz<ԩSO=URRR%gg-o.9:r\X~<_}͘nqio]6񅟣fzW)ƸiJ89>_|q + ,ffn%F|{UH).<(W}^qQo (`b>. {u{/Dx=Vğ~Y9&G\jSDT E~VZ}9Gk֬#t֭*$U :C_[|جS\_1;DYAލlz\+|Ǹ(ŹFwZ8cħcѿ(9DKZU)8Cb.qmQ'N4 Yŷ?[v-Rw|ø +/ƨŷ5EI+-WXuS7Dl=.J8gou1oG61 +mzUՑX}3ŵi%~/ZrA@$v>.cBMeIO +EURO>_^]챥\xfΜOֆ~UW-QU')${Wkr╹Q88(=WOԎXI/Nc;_W1_G%|eU>Ӣ_Y+b' ?KUHW~~rVUēbUN;~^7,Jqe{!]>^%J*8-:3/;;r;/oYTe$0o^:f7''sLXsd"yPDPT -ڹsy=Co/"ƍתUjP(:4κ5v{`ISlV3J1?UJKa<55VW!w`T+ӢAejJ<8V.RWg>JdL<(ξ=z%kDsU/*9cЁqѽ(ǣwW_ƊJ=snEI/='}xWZ1y]b$sR<7=V*s&1~oP5$VN#$ +yO߅gjr 6lYPFZ2@ +@*|mڴ:uj.]<裵j**BUHYgʥG\xlbQNbVsNxpbY '/mbR׎Tb]9-[%mf9y<<)֨T1kf)]'cˢ$Fri|*Bm%P"%n圳Vq?&XR+!P~hlĊ4ƽx @X{CEu5IC̻'*ŗyhΏ=XvGYvٔ>Vj3榫(Č#wvqӿ#V|6 lwu+j̘VJqhWf9lތʽZL;Kb'#[zѲRWSsΡqKѶ(kbלs෢EƗECĀMQ[&]FŧO9WuQ[bsZ=c2G2ֈ/>)%qjlXuwcs6{f=dXܖ1px5$Vn}xRgjD]xkB} +xhQӬ-bCsϙT^VHBQkzsSN?pj{*YU_^ڷ?2~Fh2@CN|]II4W[^.i[ĵĀWJ%ټ}pՒEIl>@*/ٰ(k+#JoK[RkNl?fd7 ERB%ٳ$klelCOTQ* #Z(Q"{9_8ܹgιw_OO8w;{oePbʌ/bϞq_ln))!OޖQ{X4ZFZ Z:[\>;?)GE~{r χjNqϯ'j[qО,44?1kZGY^9ph9tvА9sT.kuQ'?T`[\sRAP +NqRuj1!0P6oAh;V5իWߺuC 4Xh0;w.66֮϶iӦq%9V~5mz*R#y9].ܯFEbq}oʚK.+5U?Z 2ui d9/詉Ssk=锐`3/Y ޭ)>;Yg[L"UpGBBBӦM}ݫ5jd3g\$pMCl8VQ^I|`.*V@UZwЛ(~i@JNa]tW{mbZ9ɝb;Z=^KY ԫ)FW;ӂt?T)mXrmiEqt?Rbz;6/UbQX]k@Z6ޝb/TLK5b޸(&Ǫ^߇"h.2ŵ-"׮-sv 5{;źOhէj߯S2dI8;~#G^}ܸCΛ7/k֬/Uج(Mzu:CzA5.X\=j6ըt'iφ7?R\(&fKTY ò'yV])ioXMW讷|xkxkEL#QZQHeqxK}`oT\-8N~N:lQ|Sa-r:jXWeY4j@uNK KG5 bY c (&x6BtZ|\}J?8^&x /~IykE =kS"Up3{챫mv֬YYdq~I>fcWbb/*Jl%S\9I뾖O"Qh=+*xJY1=ZmQl4W^Q*a9_}ƨM:m|J)!Tewq_s$trE %o{Q=->*0wUt*8j 6_ܹ󫯾z[@Fv}oqy=NJ7*}~2y X, +ٴiSXX؅ ֭۔)S>[@Fxib=t; 7Xg4bm4M"jPsxbg8H?<5롧8XӆhGyE͟S~T4r=,NV~U4n6ƍǣLR^zҏ&E&eoOwj|kuD9ϏS֓zۊ\zДdomn5ugyu%Nَ8CnZvs璾`~Fʒ|[eHn/Tl }j ~yP׫oӑGŪAxT|@37]xũGʚJfb%ެ{XTG7 ձcv7~AÖ9p]E]w聎Cׇk×ɳ-Q[m^uO3]\*8aիW?vXQQQcƌqeI CMC ~el~X=QGq.QR WkpJ=´9w?i?P%ҝ4սvf/Y'PҊVS[8K+h+~5y'ac>Vd1U6f-.S\ۢ-pjXvni/R;uCd;ZGV ޽f͚GMrFreI> C|U%7<+ZlO:OX[[V{' +CAb]1LWG'Gw:4VOqr+ [`\ߊuizqrK [zڸB8^~Ӹy'\;[L⵰5]>x:7CvEPɎ>Լj;(LU +6/7HGV cٳFNrO>ƍseI TM;,G~ *kop:TWNۧB%ej_Q;S +?-nV+i{u]Zdqn[l)nQd}E^VY'VfbnǦV-o+XVߦ:s[\ǿRܺA\.^DR;\.]]h֣!ynJisxS}*ޫOgۙ6Bao֣Jj,\V 8pFOr}a(~:)!rj/T,-)wn̩'RVY;6SR%\Z)ɓG9r8]̞]'OSlQoh4h;dR|@_c>X|XcZs5NJXU_Ug,6l*>ퟨi2cj:YmP7vC7)ƫA*Ew>VɎ.`ŷ?R'S3T>;;S:}.lk{*d֨Qc߾}I{,UdC5kirgƤ%Jhϯre*8 [uwM{Ϸ*y)ebHH$ i.۵Sll*wXkXbbZ\Χ5'բqVT|O}Xܢ##jU*e@XyəSm蓔ܦջ6TqJWtj +YǓѨMth[˓Z1I3iU6V1v7T>:q& k ;\V C:tF}]v:uj@@+}ld|E)j5~[Ç/nHHЈ4H.YG VQWv /S4{['_SS*l*!C2طYIcVO 6/_6E[Tlb)FEiذF-ғ-Z^د^z韢Q:4KA}{׋/S4/lVMs1բQɚ5MV}ͼk{ܔ’@:;2:sjfOn_~KiQ>PIX(Q +jԨw$ǻtꫯO lk6 )LyW{C15s6L:={uzϔ6暴QA]AgbG% i,Κ ,Z)϶V^zbő!c[/KT_GhٳU~VoYm2hrI74W@b2jڋT(1Vv8I'olr.g5R倫 jR3{k?ʜ5nM&%u-^G)SU\+|[;vZjqqqIcҤIH[@񆞙 9Fm&I|!͙ygխ,0?ΣZf]-(VIji1H]O)7R*v *W.&.ױ`4jqV8,<`Wu_gΘ7tMl/uolt1~8Jm'Ejv^MyV=(vE,֫g>>u=7Qj~ڥbxY,PzQ4j|E֘ +xhM\ʜ|z>\}g5iк4sub*30̅Ξ=[f۷'9޾}3f*?V'F7SuA9 lz) ˟-~_铒;\o z-N+u4j4]!=}®/#ۥxe㬮p:Ut::\\X/KdW ir.^?Qܾ[kg[NrEt=c_3ߚU{{GQ,֩c=+75[:?^U/2U +U?8Q?0 )6SK+[{o7M&M뮻ΕU +\NPQ 5Mk)E`wEUn#uhit/}dNll7mtٲeIשSgҥٳgweUQfjЫgjiԐל+nB.^g1b]k4}#̗`w_Ő<:ݡb@Y h1reb6ʝC/m5 ~8xq(g?NфvӀ""".\xڵ-[#GWV*jzmZ֡hsqpVY=z ן3ƝBfyEw?Qu\Vܡ[qNgp@>y"̋3a„$+Wjժy@Z(ݘe2QOc baÆ 0 +*^:88ؕ%5 +׬ۮc7v~E4}h۷6G1#ŵ̳Yݾ]U}6)љgxfUxя?7*E/sQd-Wv]jeG38WUHsk. ;ܰaCZ_cpʍ>| +3hm4I2vS/bٻ#2yjZ+wN1u6Mjbq +Ǽ?fԊ- Z8/:`*kZ|y /bzS)\*Ӳe˚4irҥ .~nͥE= +>EX}س .u$Z(ƬԾ#w[Ųw/ůWJ-'LmꛛLh|{^lQ<__G)_2m:[}k>>(VuQ|_AO#?9T)UH7'>/_kז(Q­Uelsm|S鸃:q& UŋRI,oKI)+ߧl(bѮb]gd1oޒIw{2v^rﰷw@'Z3qj/U?>qO2NK:пR|?7;ZY*VcTzy9sZjժ/Zj֭;J,Vx(W<'rH"E}r xɥ\92[_as=;wL|0K,}I&/ƸOK2>sV{l<ׯ_Չ̞=;22ٳhѢW>.TÇ_*xw>u$_zǸhժUO\Y*x@Z7.***{_we=}?:t9s[+ [UH5kԫWҥK֬YsʕٲeskUEݳgϕ]|sU[8pB +?S%JX~}hh[ڹsgɒ%… 3 +cUn߾=… 7|[2 6ls֭ʕsq=`= +hݺuLLL#rZ~}2eZŋ߻wGΜ9lV{lR2eʔ=z$>ӲeKtł Zj?qc +cbŊ/^L|pCukI+WܶmgJ6mzV{l˗K|^dI``[7h߾}#[7oK˱[Uֺu똘G͛7+_Ts%>8x!C";U[ 111[N|$gΜ[l{ZkXXغu;wn6m\Y*x@RG)YS>}zNZM6zhӦM*Ur~Ic= +bJÓ<?"""::ڭ%]qĉGydڵǏϟ?KlV_O޹sGnowkI 111O>?h9!$$̙3*U[> +stream +x=aEїS@,! H@p + 米V=w}3?ŧ7v \9tSps:^=#g΀O<73#o9r Sps;~=#gܜ΀<73U p x]?pt9^g9&440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`"440& L@C`φ-d +endstream endobj 487 0 obj [/Indexed /DeviceRGB 15 (TTT??? Ε\\\\\\$$$)] endobj 478 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4110 /Length 35646 >> +stream +x s?,i_%#6VT$2~KY"cWaB|kj$BI)h~Ιu:3Tg>Kcq\s]_+7'N׭[w͚56lڳp;.&<ﲶaÆo_v-[.X %4hrʬ[)S#'X--ZT]Po;'1/~$Jr1cFrӠAݻzꩧrJz=]v:uj**^̙3'LݳgϬI6nܘ}Ν;lْܬa6lo?~ =M6m޼9{j*-Q +@t%;*~ 'c=5k,ǡ6*p%<35zAemywqG>O̿]vedd-[63SB +@t%;*0~ .`͛7[5)Sf' +GDW͚5ϲlҤ{왔˹!*@ +@t%8*0a„~C/<QOT+Qf͚-[,sޤO/DT ===.>|cǎ|ͧ~z1DWRa~qG*TVT"JjToСC-~?L`Gž|aÆs@˖-'OQHT+QЦMTRsصk\K/>QG5}:u +@D] +DΝ;ꫯg&M̝;wܸqD'*@j߾}|@vnܸD!*щ +;*0bĈCh \wuD'*oѣGOXr姞zjD'*3*vf͚yNڠA͛y晽{U?.*Q +@t9gu믿˹-ZO֭[V:D "QNT ?I'=v؋/x׿ꪫrGoZQHTf͚ui}]&M6mڔ}dJJJnܩSܧD :Q`ڴi;v 7K/evgضmM+* +@tq?;nҥիWGTiE "QNT 9rd =ps>^iE "QNT 2dȃ>x7j+(T`{ M44iR>KooO˕+)Υ^#FuDQOT?nܸL?| 7ĤhᤤZjϓ ITD6m̙3'&3*nݺ nذ!&E r *@ +@tAj~LϨUW]OƤb'p‡~QOTȴf͚C=4 +,]cMKK^.%K4mtGEHe +31'*щ +dV듓#N=*p5<ُ5oX" OP!CF8@ +@tիxJ*E6{T.{Zn]wYjrUXJ*F`wh!))iY+W^|[ر#-[g߳y洴]v/۶m۾}M=6lG&)S̷~~{9٣{HWAT ̘1nݺѧݻ}"=*#q"*Q:u̘1~16{Tus΍ɴE%{T |A/Dw@GboT gf.٣m۶}w݁f̘QnN=*P|-[$%%phذ^p ШUW]u-6'ߨ@hժUGydlK$R@*U6nXp ШΝ;:蠘O#*oy10٣uլY@ *Q8xG"'QYfviEQNT rD.1ca? +<ӗ]vYÁ@TQ&M|EOD9y"D'*K9IIIk׮=C(rDZn=w"D'*K9^{W^EOD9eʔٰaC +%J=Q@ +\rرw}w\ +ԩSg̙Ջk֭[wn+W|6GT 4cƌj~؛Dw@D֬YӶmە+W.\y+=*PN3fԯ_?Uv{͝;?OM69Z|:iӦ͚5 k.\QԷzCQ'*ѕ?ܾ}ŋ۝;w:ujj +#'q^{-7֭[yVJJJ6mzyg׿.PQԿ{V D RزeKN{={Nڹs8ˊ +<'=:+۷o/$ɽz[jSDHQ4Gvѳgw6o|…)))㏏92V9rM2{7o^8Gݰa,y HNNnӦM޽6Zh~ϙ.]:y{?={GT+QЖ-[3yS5jhРAZjȸ[Fuֽ/ڵkJxo߾&LIE(4QF}wyg knРAsN2e +7Ú5kz}UVzk=?pdžsSlիWרQ#@D RիW믿ϟ?k֬ٳg\svaVvx=zZ*-Z<;w.tKy5jԍ7ޘ?W]uUz< +@tVT`e˖^f|0gΜiӦ-\0##3tkرc~`N:Ow֬YsذaW_}u8[A(˗7j(1=z4iR\ۀ܉ +@tnT 6̙3gٳfwQM6 +@tIOOϲ8'wz^ۻw2e{W>bĈ.,?o܏=ZFFFjjnAxk׮m۶СÉ'`QNT֬Y3gΜY-Z(===rȘ1c:묘T/׬YsW\q~a%+AT͛7ϝ;wΜ9mۖc@nݞ}_W1/˗/oԨQ5k|WO;"i &*щ +Ν;?ٳgϚ5kΜ9;v9rUW]׺y;w}>mڴƍUK7QNT 2226mTZUExS?=ߖ/_~֬Y'pB{D#F:to{.}D]v3<ݮ]3f$%%mK7QNT@ѱcӧ)))/>c#QNT@Qv>۷ 7QNT?r!FRRҢE7o^ +@t~37ڵk7s̢nKT8 <#_}^|E엨D'*p@xf̘n5rE엨D'*#]) +va֭'HMMMppg4hРJyT`у JpQr7pJsT`ӦM 6\vm"e~ׇzhQ7Bq$*ѕ 7'"t= 68JmT/lڴ;V]W_}ULnbGT+Q^zM4)a(^xO>EŎDW:ӧOرcbjQ8mڴ3gNQwA#*ѕ¨@zzz˖-/^ZD1N:xJaT`у J@!"8p?_]P +@t-*׭[nV\yϡp;ܓ]LJ*9TJeVPaϡjժ%%%em+W|+\ju +<ܹs˖-:eӦM;}m۶޳fmgddlܸqϡpĞC7oNKK v_{.MT+mQDDbDTQNT(FD :QDbDTQNT(FD :QDbDTQNT(FD :QDbDTQNT(FD :QDbDTQNT(FD :QDO>d׮]UT9裋JQNT۲eKjҚ6mdɒnDTd}IMM-Fӧw18蠃l@? /ܶm[2e6lXEZhQP +@tK/?--mΝ9t7xm? @ad=O ===!,j駟֭۔)S%JQNT|-RTP +@tyYD۵ka~;WbŊ5jUW @~<,޽/}De9@T۷/C<%\~(qD :QDYreÆ y499G~(AD :Q<D꫟xt{mժUbZDУG)S2@T ?P~[g[oթSxDI$*щ +aΝwޤIr *6l}ݗguxC %*щ +mg}ԩSyTT vFmܸ1ϑrȒ%Kjժ(D :Q| //K~Fz7Dk;wi^zD%*щ +>C [:u<5jU{E"==O^`A#ׯVZD +fأbŊ{bp~7>CgiҤtEI'*щ +FL{VZӦMO&M_{=X5jKK@K@a)*ܪUvڵoNHMMwdʕߵkצMUT)[l5ָq_WEl"*щ +FbUTSOm߾}vN>2e$z+Vhժs2y.]$"nݺv5kʕ+yVzZn}gݻFqDD +#Q*TЦMN:cIpׇ՗/_ȇ~K@KEkΝ/z뭴BSL38cݺuKJJa%D'*PEȮ~:uѣGΝ:x۹sg.]y裏~w1I&v[߾}D'*P'*GջvګW.]TZ5%ׯ_^x!ϑRNc~k֬}dʕ˕+iӦh۶?ޢEh<@ad +̞={Æ v[v?n_׬Y~ݺuk{+W\޽ pgp[ouyҥ믿^L.V.]z~{JJJ:c+p'~ ֯__.[l̙ӧOs/tA=^{m)]MT(Q;wu֭믿ǻڵkoM6>۝wy]w9m۶oFŊW,?:t9}ї\rI?,̚5k̘1/BO8ǍW/i@a?*?lٲK~g/2---֝f:xTZp3{֮])STTpU[^ve&LȱuwygN +k{7ssꩧNv矣OG*U.k6l@'6sXLRZ?~ƍ]tyLII5jTxI #xLJ 7e˖ӧO?@a#*/Xp֭[ϙ!C뭷>o{۶m߀O:\rX< +@t@viii|~sر#:tu붿O+w{'Ϟ0aBi} {FFF^LcAxJOO߀g_bNT(G۶mG}4gΜiӦ͜9s׮]ꤓN{c/ҷoɓ'9_SOb;s x8Cc^nĈCeC=tǼn!*щ +FF[nW^yea'O9rի{pJJJ V%ŋ˒cǎM۷={/3gn:ՋQNT0OT` 6L4_~뭷mVӓ/{wڵݻw߳)WSO=5`[2kn֬Y{Fy-r ~s1 .,[l(Z@aè˫:f̘}=wժUشiSj׮+r)dxw۷oC{m^{c=ˀC(B@a˗/nup֭[ˇvX ,zkPߩ?ԫW/CTT/UVz(*]i +ddd$''ǻJ +dٱcǫ:zw}7l_~c=VlSs7o>C«ϣCW\O2衇CJ[T`̘1GqD׮]ZE;wçLRPJ'|o߾1oxz;KWZ\Xhqˀ^bŊqm#D RصkWFRRR,YO/Q,|ɨQ&LN:^xᨣ_cM74rرiCWr.{.(m$DWcƌÍС+TrY^zg '罹ƻbk׮SN*U[kwqwߝˀ.]q!D zʕ+ +*|ՋS={<0eʔ݋'|+_W1g2`knsP|~\rqm#D H,{ĉTE&_|ő#G.Y :u駟Ɗ?|չ Y~Xncǎʕ+ڵ+13gl׮]zHB +7oNNN_g#ˀ뮻_'*ѕ>)Grr'ܫW޽{s11X|ɳ>׿u?A\sMӦM˧w{jjj,:-֚5k駟9,VUV__#<ˀ /pرk D #E~>}4hb1 +,]_8q'|R۷oW^Y`Ν;y^ p9TX0-ڨ֭[g͚oۗ_~YsSRR:vؿ>R??3}VG} ܪU:ꨴ\W_k=%\ˀ%=$P& (XU`ƜT 4jt81h _d 1>:Q'g﫫7PR0}^кy_'M"N>+6rL*ɋUjOIIk<_ˀÇr-q!D{3?-G7 ~)H/8N{Dc[. $'<Y&<*fd8qX+WuޒO]w̫Z+WuQ+4Ycſȼbe1,:)2ث]q\}^l[Z +t '\[5>~Gs̙;w֭[ 1I͚5;tУG^zUV-J?+V8֮M8sύ21>jԨ#Flذ!6mڄ?9k׎wwuםwޙˀq?m$Pf- ~PXy980M\Pd,QЊ]t;y?g*~p1xL̊]=,uŇ o\H+6i<_1[SfV\(n ^cpgQk b9g2X 3%8*G +B +g};v옜UbرcDze˖xE}wf͚vZvڶm{'`,XСCM6}jժau֍U)\oޠ͛7znӦMRRRJ_ve2.P}cp.ӍAWW[q̊.UtSPWEY2+<=^jyUKwYC5WJuoÊ#W߉Wų;)ëzDx߬\fksNϼ{^EF nJpT`&MZx/i#  иq㠰Q~ʕ+WXdɒ/"---JWYـP&M3gvu۶m{:3zļoԥK7|sGަMʕ+ȖMT(3e"*WF uoJo֬o*1Âv*ƊU+eV*ƱbaڟJs˼ yw +oTdWLĬw=ƷnpqXZ!$+Q,+VXhǻE`8Sx]w]6kOmC?_\2+~ݲeKIII 4hٲqvڑS&M:sl=zW^N(GqD.֭[ϝ;7$PF< srW1) *@x2x=*/?6q- 4WP&5みˊC.4W1ЫVLJoaWAFF+?8H' +KO %tM ĭqEW%t@~Ǭ… ͛_Ƶ5kք_W^yX\VF5lذyVjXM^ƍ8p7RJ|IR= 2t?a$Pn|4\g +0^zFp`̫E_`HK/xDʮ?$n-kFrXnݼoڴ)=Zj 4hذG7EWNwy]wݵ:I>l&^~;/ONX?!*$NFFpw|*AMu_T,sێ/ -f||c~gk2'i+=#-+9|Cji// dY!^+aqS>S ̽bS(ꊇ?GşSMOϺu5JgZqşR^*WC˜W _9 FŧbxUkbQV6xede+-8`U#sZ6 + ᅧٺ=XS`ƳSfw|ggUl-2Ū`g ^킉J @Qedd,[,+6ZtizzzªרQS~xFŊF _.'NП:-b_|رcwA+V(} Q q~P yX>93$'1xg= +RS-+YbЯw=7-i}GŤ_{icQ̊7Odou'[V|ң'O3+#a"WZ)mz^ [_ӣW1WuIvr"W\٦QUZוm%?[wu+~9aIxA/w[<^cNiG?ZK3'`!<h/:5g5 t`Erذaû;̘1O>Ȉ8aŊ{YV>f͚nd}[L]nڶm = 4(J]vq?<7tS"[J Q AF n|417\`o91|+V4 bxwnǟn=h5MT Nx?O6M|M['_FD+;3Z[.̬Xb+Yo4V1|͇W,UU-k>-OaaQ*W +S<(|K8,ЋO=. 6yx} +6yX1z5^yn׸1mm@Q6o˱sSN-J^zO>;ZbUVըQ#-%?:\d^?U)W]{~ :jf}w=G˗7dg߮oœN +>06 >?XYl$Lt\[ܵc[nn[QQWoF\\n̽{q9{pegn,)Iݐ4aG!2esW&vE[K̛gDYql(1O=e $ ;7ΝAٳĆnZ~^+ΟA9rc)qQϋs uI=$aT.n쨌ջE6G%xv9Q)JcJg=Ga4-P)DDDDDDDDDdX* ݻw۶m7o4-ZСCT]eѣJC6mRU/^СCJ&/T4"cbb|yAUlAAkutȔJ8""""=_>~!6BӪ?vܻ)#??R܅C  {N{R/_;jXH  |'Z(&fRŋȒ}B*[ĸqFTK&%޺t 3[5qv`>ߪ$.݆6#LMyx\NđxsuV_}w%^&W:hx2$s56?V ?WC"K(x}$ns-/5d>zđ#u.{ UK>7^){g1jTLSp*uovicl1jv ]䟏sj& [$țY"erDDDDDDDDD; +۷{ٺum޽kc?xJ*E5Riժܹs2da:J&cwRNЦ š|+İrĹsVM{eFQa ʅg-M,ZG ;7Μ 2 Y1H5x}hyP>._Q 17/N +cr@M5 q/N}Q#BۧB]wLE?>*X'N?;8" `iWF(P' SpJ2t-\f5EƔdF%9&I &i4GxRî([P\""""""""" Ke˖իWϟV"PxÇG; *T?N .NJu6~xVuŊzGg, "mYqSk}5䮸1chNDDDDWmWŭB~ɓr._FLF$1%.F4dom11OC3"1S*\Xe2i׮!}'n׌J +VKLBFuK\w=dN +x|VOY7"~L4_o@ڐ' '%^cr]w"U* sE[M[rKCSݺ%?$SPO 0" ߆BݵC;y(1{:ť[Vi O&KS'޽Hs޼&QR[N:6rve˖1bD>.^(%(?oתUk͚5Ra+6{GqttyTzbi4~k::vr'?-k;""""e[/(\>X<#ЧϷ-؇?I6 X;#ѻ7D.>l(^VԩˈC5 +z8e +:*%-4z4zպUQU'OF''И1FT7:q.mI'xcѽ P[38q"1nߏݍ}ڱYJuP O~O?d>a=Q7Mzb'0"kvOCnFAƣCً:V&4غq\ ̂[aXNFX|Jz}#Ű|Xrvb^,=L(1n"c$J̅gƲs*17111#C$JJQ;/G >sy doŭe78J3G1 """""""""RKrʕ .^޽{%Jh͚5Wտ}6_|W^ sݺu5j԰֐"ɓ'ӧO ܰaCҤIuUT2 }7NdZ9BԼ o$DDDDd;Opzz0Z8´'^'t3qwF7G`ZѠ 8S{ˤL@*qB2 K$J=Ȥx£;:G1qhXL&>qOtDJo7yq[mAb\"nz51Ȧ~LW4 i0f6㗊S'@ gz7Rm>|x˖-{Va9 3f̐sl:zhſ|cOlΝ;-Z4+]x]vua̘1cy`R"J8wU?VL܀_7 mu\t7bDo0DDDDd# boE83=|b{0UO1#0|#$5nZ<-|&61!%6-?#po oj*cىwP%\7p\ xW>\S`ىB{pM%WYn]$͋W)19ht>"eRlq~Eʸ/Jy PpVda9&$~(|ldŭR|Y:Y D|իW{yy +C;v8h ''' F]N0! 6n7G|`atM:]YKHO^ i_+o53p79 YۭH[M25Ziq 8txy\> 'E.X&l͉~HoFb:ܻ.g;V=1=^CM +8 > V'x [csb Z68AX.l͆J̈+68u>#_X!l͊UƌLsm$q:~]fHmFbfܾ:68 3c2#1 n]-S Jve-24o"[4瘖h7 +3VEx&+1tv$f7][) s$+WL>}…_ gK,ٔ)Sjʕ?I1cƴlرcŋO<'~ݻwڵs3X*@DX7m*nFapI`x;mhڼ6`aK)ڏ|6"l*o$ [;dS=bx1uHl [`\ 6u\!/ +D-HD=` sA ?!Q4G +WQ +fc8}F4$g(\nXkq|1Ή_"}f*'TH,=8}g)Ԋkf`ꉆ9_ےЬhmVBGP(9ǴY7VfYg*-n:sLK<MslK˗Fy{{שSǤR>|β÷JgSc:|[eM֮];+ɊɓGݹs_\=z4 C&MڶmN:6NR"D Z3vL/pMrqlhȪZǜuwcB{`XKaxV|=ka-L|_,|(_߬Ĺ DA< isb +;)1) + 0!*$> +g*\o| ifcPU=( [M)pq.J\Ja  &~3ē |b3Ũجą[I*OP.=/Ej1a@#l30{K !X Mk9m4Ksk<;;si`$.U`9K 'I66f0!"""""""""T?mJ~8uԤI/_ӧSNxŋ[:Vuqʔ)?>L,͛7 Ԯ]{߾}ғ$0P~HhJ.ݼyZjT*< +&*wC%a,G͟#0{`܉[k{3ܪb>h3oBj =|Ș*\_} 2商chY\o8Q6hQ ߀jrI@z߮ 42-o]Q)dɏf$B{%kbUW߮5$"3yQ:VI\޿cw'YGЬ0_ҵ1*Ыp +aGѴ_u=kcoǐ0H<&q!(;Fk5YK9pd9G,'. +^+6Z=n`8<ߜh9Q+w\X_hN2kDDDDDDDDDdU,0ϟׯz-,<}mѣG+mXx|={.gΜ7og͚oZ%?I$^^^ IS;vn#GL2 +{]³fjU;z4E'iy<,=O-ph=X4wx8N +90'V5 .) +K셅0%|7pp-{k$ +cj5 *}`_h3-cQ:K*0(CtYn8[%? Ō^9DxV8n6s`!3^ Jq2EN$+oGv@rgclDP(EDDDDDDDDD6 S'JB͝;3 ΢E.Y$M4Dcǎ/|Ϛ5ʵSKB˗e˖ZJ;.\Ȟ=, "K)6u7{OL[qӝHT|-0d *8CQ >U'!q`= $ޗ&&ħ("ljazb,EM 0ؿ݅}c+8X֢O< ރ+$Lj(oZػ=}\p qMJA(&l+X{W+$: LJtwɶ.FD9$U%&&p6QP*cJqwsz¦1z5ʨh?k!i{gz j6hjY!N,ӎ.֌A-+qNWÈS(2b @R>}Zt1c.]yӦM%J(-nj֬~nذZjV+!}6mګW_UQiDd/ڱYJśwV"kZ}GCDDDD2 Ǵ](z`>8FAi .CaTJ[I,h*["I ٷ+e+{4HLWO] ^؋Faxz'/97111^>vUwx1s[%(RHLmc/:?RX |-ޯPz." ^)`QȯEEρHzbVܼq1mvӊiSmT61dW=15܂xBXx٤l鯐 +/j7PW'+V]iw1M7 b H́QO' V_Γ) T6VJ̉kP_'3\H{QCؔOIFb.\=>]qj +aiiH̍g3b53 *j bij'Q+ۮCj23ː;iGS!n钛v+wYvg!x77؀ YFO F?ٳ'zpZ6p!C׷X1ݴϞ=sΥK.\w@qqqիW.]b6b:lA}G, """ʯ -3ǰaE@q;w_u*N]6 \_N|gSl_upRb:]OeJb:]KeJbί:]KeJb: +svUO4q (K/׭T7rf0hjaQR?Y޹s'jժmذC_|9uΝ;-[v%=3e4g777f* +1nnju0?\l⋄pa%vEb8ܻZ`>8N- Ɖq\O*l@R?29O +ĖHbRbB~2¦:g.+j) +jǟ;8O {pU71fLL{~>ɱ jşw>=k'c+$&ö1LQ^T+6yG7<)Ѣars럵JS$G +5ng)uϮ{RxF9籷z:%L('aj3랷RxwJSg.lpnUO44_hJߐ|NNwOw2hj9p%dxkO|UBF +7=ݍD Y0\'J>}$߿@Zgh͚5ҰC]6-} ӦM[tEڶmi`Eq?3mZ{eڊlFJ.""""H@i! |-[bzuc?(,lz=mK;7K}< +$pV?qF݄}`KcG'N]Xg wi#_Cf~݅}c+8ps>5MJ+%gy$zunSפ8mQ_Z#[ɉo:)$: LJtw(.lz={KrVI ǹE/a'511.޿xsF,ky[qwszĹ]ZQ=QIXCjdVB>~|`o,#VAm*;؉z}MA'iG |JZV򝨯0;!"""""""""KT 7n(\gϔ:P*ܸqKɓѣG4N]ʕ۽{wv޽Giج˗/wݺuJ+=l"00pǎjȑ#&LDd 5q`/Is3V(?njz~Gn!m~|hڶEP +P> ^o ]÷C'|c -q(*LZk㥠A-qB \4J>S15NeᕠA$heđ wZpf$>CңÓnioQ: Cۢ $ėpNj&k~ͭ8lb /L}5I #V, =pŀ ܬ`#IY+!^I~+?z75瀖<f '/9" +DeʔQСTK.'N J5E:{y 'N|XL\YgdɒďÆ nn=%Or'l=$_21GT!%}4DDDDdUi*nrg7/,pFP67`]3ȔK5IW^8ȜKH|x%K/_={/_H9ܽ۬Ln޼YT%@1lR\9G +&VD4A:_go#Kqv\ymB3+S͒cta|}F(X 'eE:5#96SJ<0qOl scǒ ="!&A(T=(U5xp.GCf5漛 +f+Պ;O.k)*%zπ¯YJ5?',^L}fbLI<<_Q B-3` (:Mb͛c^%}­묾hmVhp# P89Ǵ3(J4Z4WhqQ/n1-sZّМhYC +X*`sΕ-[6Lv .l֬NǕ|%0Pڜݻ,lm޼M\!C?H"!Ig'w:J, "M<})'|R9Ǽx*=9%t$;"""""""""RKL +lܸvڟ?Vڙ8qbNMwɔ)Ǐ=z3FߡEJ ,h\qa4iҜ={V6#bi%O*+&nn:<4s“]]DDDDDQ[~W7! 7nu5ហ!n'!v%>Ddfv TO8IMTK=:^ cىP-$Fo÷܇k +l1;6(GD'}Q= m$·E)Ѽ8I*cHt++J @Tؽe|ےSU&"/2|q[TW2FST}9f](FQ_qS]>X*`0ТT`߾}*UჺZ ._loo/lر)S WWG #Vj͛rӴiӐ{5D%, "^SM<0~#V^NEu[0p㩁1.]0qj0ɨ L'At5;qiM@*q$I%%”^XhC<&hLE&=dxaL#oZX4(1m1}SmAbIX4z75Ȧ~LK?z5?r\"n+\7CbLqtNDDDDDDDDDḴiӦjվ3]R'N)S\o͕+W6=z(}ɋl۶]ߡEJnʖ-:޽ +V?A*4Ŋˑ1x̵ŷ읉RٚkXKW}MKP-03n_BRN Yp"L{?AX|Jzو<2D0$2ތBv~9r7?UFBqqy ~IdX9 Mzs=+9@tz Rs流 +UT= m^ +o߮ڹsI&IM4oXُ&?ǏٙyoR"P+nr/÷ӎc1e)S*\\QW57.}BT<%dʋz&F|PXeh>h&VO!K~(mhYg|Y -$E13 d- yQ7qd+d=l!01:6x +G谅0||6wa"P)VĒbNqSќ8d 5 &JX<^_Pc\U< +CR۷+Vxeu;;/f,^'޽{ҥ=z'N=x@:i>|PbŊ_ÑKHCϠD+ ]ٴL0*wˡЬ """"[&\Qq{:kX U(gJ2|7&5(mab܄.Fv1k#abUlDW#;u(gщ51n=JF8݌\1~#JD0` QuPb!hTü6`MP҈{Qbs\͕ 6OD4Rsh]* ye<֡C)S(6nxbyk֬YSqEb 6\lRkڴi/]3fL= +J b(]@+wP9Lk1OWo#>*uT1_O#D2Rg/X&%f`5Oan\ډg0&;VDijh"yis`y$M<9p=ž6gMu˫KDDDDˁz +o=osi9bt+S{eW>Έ /_\b)#$`6ډ1y{M,{6DwLف""_dU*. +#ibYe1m +Xv &(hOx&Ȅ;>h +4ly:(&dJNVhW%*=eT#pKUȘR.ߖW00=34\YRsS* _5cƌ{ׯQaO>]n]vʔ)ݕzlٲ@+WuVǏ;::?('88_~yR\r={V!iD1gb֌AH0ͥ[z)vp˃<Ɨp 1Dze 'X tEn7̍0băSs"uvUG tA0A +96㨁$fldw}93a?R5q7ږ \C>&A8i~-e3G}W:9,(Uۖ6xVUO܋6 q/L#goqq :,V(&)&p(w&*w9Q+FX;WlM"ϱp5O\Ds[^^ނ"3 +CRy=sL͛7ӤIi'O(RʦM;΁J,)mx{{׫WOEmK.5EDYR"܋@䮏;Ċqwu_͇ebGZɲpDDDD=z.^}x^bwDy.l^vk=!/B!o"oǎFBOD{{9qذC`, 0zG5IC(mK&G6! {!?ˉՒDCJBUU=u&FƵ,W/ o>b{![g(D=QJ9Ķm'wo9Ew#Uc$AMD2J1eHj`H&DbGLFԉ[GǗkbuB36HDDDDDDDDDc9t.(Z#ŋg˖m„ *.j֬۷:unKHΡdk|V{*n~1?E L``Ϣ!]R)]*n\]兊v>v tŋ[*0Fqv&Ϫ +QNJ|Da.Dy=*(]-LΪGTOĄfIb$3GrbGHhvbR<ΪYPADoT芮&Jgk?5½{Ox/ =j]#x;wE<|n G&q$T,j~M>-96.αxi=Ls$"""""""""}T,TÇcVi\?9 YÇ I#, "x.Aq ѩIazg"ٺf5DDDD3<fcx*x gÊ嫄]Vp~Zaybuoxœa +KaU/,4#q LF&lkLT (&x!@ 9(1 +R4u,M cHbIt[)'EDJ$V?ׯ(5gyR:'Jg5Q"qg)E l`i9iCjUyL I(B:,LV )&>{&'nhbbΤQT򊠏#z5A zi0f!Eг_s l`sBfqJ]жlKR KT?vrr]O:7o^݆ +~:{bwb^yy!ZDY'.bv,bf?T-c=Q%"""ׯh=sG ۻGoR\ ^u@Q~fז$ޕz1Om_QJl:;>"C8hjϖ&.V1n'0jMVƞUcpRtV%%o^g|N;ÿ#ءb&nUnLb3܍ +kFMbqqi"9`x`m^@/iR j;9JIs4<i㛠ܴ*pDDDDDDDDD# +,_Μ9 t=ztϞ=uFX*@D FAFu9#JEȔIAO^Gs˃S:"""""/75oW C +$M8wרWp2|K5G#1cJ$I(HsHՑ*n19>}F|gsZk1ǚݱ7Gz s&͑k[EQTիI&uvv,`*V}vj׮zjƣ +W&='cbs Q(^kqEģЇmF`=BkT t1Y54G"""""""""E,pwwwvvY*Rjjܹ:MƍG#, "+}ʗau#"""HW sb!N, kb>?*'hX1峪ϻVI1c#y-Wym_G,/wS(;R> Q^QF I , "9q)N+hBDDDDQi9{Y&8o)#o9.'>zȗ^P:UJ\8[-ѣ?61QOΓ'>KGq8qQcfHK,|ij3kZxvK[m$q tI]PbtV_/qqy'm(Q:~ףrn鬪=X %v|VM̑^N,[V'Q<^19N263ǝGϣs̙AcjlL*c,Ynݺzg6ln˗ ]p]{0VT5t:%*ZTޑK&ȉGx閼>13201$fICz(=W_DbTjT#QX#O9"aܑ:1Ǣ߾D9| ?DŽ.߿9G"""""""""L)իט1c;`>ݏ9"lurr:uT &emΜ9p+>=R" &n8J9X{LDDDDDA~zUz*^^2Ld"-Osbk[bZ'癣䱳s$"""""""""ERg̘1((H +@zV^k֬vZ݆$SΚ5k t{MܸquX*@DDDDDDDDDDDDDDDDDDDDd(R*дiӅ jtpRL6C_t)cƌ IRD,Y{6TrQT/wZְT@kAAAҥ{Q=۶m;}t"C ׯ_7Сdɒm<aB@Ŋo߮őmKtRcz&OݻZ'?7nϟ?ӥK3TrT`JR6Zkܸŋ;MҥKYf5gÆ ժUa0b"}@^N>;v8qH:;;GE0?8::ƈ#cŊZ'O֭[7dbŊSNU}^թS̙3!,К4GiFv֭T`͚5@0MTrT*|}}Bԩ#DM-zȑm +hM:o6ûw4wݻw4Сt{g0bX*` +DR 2\~ݘ }R5 +Y`@.hذe"'Nk׮%KL!yyyc@Ν'LHtR"""""""""""""""""""""˱T,¥ݻw[vMx$UVݼyRkX_~!Cw*u8pAtIF,YZzu0ݰTr,0KvdƍիWWjҥÖ-[VU2e3g$H@a茥DDDDDDDDDDDDDDDDDDDDDc9X*K$K.6͛ԩS߽{7O<ϟ?Ǝ{߾} t VR"""""""""""""""""""""˱T,J޽{Wxg +[w]L?~\TK. [/ڵkkn], """"""""""""""""""""K̡s@B?R=ݹsDRH:ujC޽[R%'Nԩ6DDDDDDDDDDDD44 \&xiA!, 'VN +/ DM@ ]XXJ!(DANt؃nf9g.Ϥ;o@ta2*ٳݻw򲿿z-P(ܸq޶m[pGtСU]^^0->>>EݿX,.xu/_r1hD :Q0j8|[lDރD5==399UV]p!Eߟ;wnxx\./XJ_~ر58QNT E=zwޥ{nlS`vvccc ^?11q֭{/Ryȑ֐/)@ +ܹskirrSfjj*ˍ/RҲk׮;wر#X777'RÇwMOO~b?۾}ŋ{{{㻃F'*щ +Q@\zIkhhSlttϟ?7n|o={ T*KD'*FR#۶^O>])ŋ###cccO> $L۷/nݺ5QNT jG^:00c5k$ԔN?}kǏr\|2Hհ1}vbb⏟ +"_ 6'O]]]L6,QNT jG.]433z`ve˖\rŊDojj<_Z2w}sT{%iP|˗/"x9;;;??'OܼyskL +bX9T*|֯_|vA +@t|.Osj +endstream endobj 477 0 obj <> +stream +xi]e}saP JUpYB2HXc(0Fؠ@d PH)!"*R JѺKRժUYٗܙw{yh==.JBm\E&uxanSM+zLk>x~C;Q=nQ[ֹ'q PՊ9%[U?͊M"d}ˋbm8pۢخɀ@̡P3v;;i95H-C;^^v)W7}3esFVQ7}+usu=D2] 94̡9pd́@$sh"Cs.wH D2] 94̡9pd́@V͡/55H-Ct_0ojZ35̜@̡s*Ԁ"bW shw PQ?=(SbOD +C{cj7Jjо0pП\ :w*jx x!֌@9t 4ZPuđ]f85Hб` x1{ 5Hн0ss -΂@ss7M,|1[΁@ss1j@eP Xt1-S"%C? +0V o]?q gp{m/{j͡n\x,˟@TsRԀ.h+.+I@ R9?$_1VVzc@tsh߇׀;+֤)5` \"C{r@;=RirPt}_p5=Y$;$"%C+]b_7~& 5HyՀzz`k;lgPU ϴ_:f&5H9ՀT8I2DʨܰsQ,8!j2{|cQQ ܴE]LBjr_jԀDRrI ȁ@$5 jԀDRrU5e)ukQԪN,kh 5HSEѷ$y-i +ՀX$/#@)U#O:©DZ5X$/$@)V[$y%"MPUWL ҔŇXj^ y~J Rj'rI6<8k U55I.ka5#C TچSB ҔjkGP45j +I=jF 8kڤKP45j11c']8@Qǀ7$]6@)Q:VŀSH R~5 _ƾpǝ 5HՀ3uo1}>3jw6mz_đ 5HՀOf>f5\DʭQ}7\o𬌨Dʬl3ݜ} 5HyՀ6vOxcdE R^5S}?\vu)5rFn"eU.;F')g1[&̬{RS رweՃF RF5`UL]z'j^"eTfd z`uQ4ٜDJ^v5`u5j@g;[a~)y xxj׀MԪE ,wvQl6 5Hk@qI3?Z9`nsEDw 5HkI6/ V>=`FI/5Hk.6z e6w-L\DJ_N1k@)Wlv73)} qT*~#r@c{)y qT][GnJDJ]Nj@2su,>)DJ\ր ;`"u|L[^w14DK R9tz]1,E_h o/_jЅ" CzSjЙWGFNpqwbjЅ_)׀';__j-)h]bD x%f>@n"̡3,Fր_ezpC)rjBw_BNm^lwP1ƀa5f 8MhqZ}9`G"̡}1`h ^}A 9gպtv%hDjk~5b9oJ5N3zڱ<"5}5`Gݶ8kwG-LVQ9t0cׯ)eU縓W'l˨DjUnU"5{}b55#c_+m5HMCsh5o<\n-s@q̈p.=j)`Ԁgyҗ=R=LVR15`Ƕ!-}(/S2怚־,S3>jzbkO1@ Tz(5}-ǚDjm ֬ț@s3J rW_S@shS,ݩګw5=v һ~pמ*"C;Yv[R}tWLS@sTO_8GլOVN|QTz98 P(5 {T FRTv]}~_Y6N؏bq~Vt~Ǯv߂!~D R9Q)mOdYʅ@0S9Ӧ"ր=ikE3v 5H5?m75GvU6"ր'r_=zSPXةkyyǧSF"րԤ)z}5`obPjR~}<ս1?Ԥi5`P@fՀ?M=ԤY5G}1CTjRԤp}[ ( ][ I Rsjgj@MjS*j{eWj@MjS+{TjRԤ Xo}R I R~SR9!9zTjRԼPͫ?P@fրw ~C @&׀Jem}=ѥj@mj^`U>S5&5H5Rz<j@-jbj@q/P6)T]565H5Rej@-jBk_@Ts;guTR~tUz>>[[[555mmm\\\\\\YYY|||JJJ)] endobj 476 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4110 /Length 29329 >> +stream +x{cgR,k]"^\Vˮ\"vs[nIWtUR"?ٔ"BdrJ4cώ̙9̙~˞| ge^xsJU w8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S$NUH"8U +@T$*S(֮]xȃjժŽ(48U_|zѵk^UH@#\wuguɓ{9PhT q%RϞ=uyPRo\rŽ"(8U_-]t޼y{nq/$._?W^iٲe'O7n,_|q@U*a…M6[o^K\"Y|ܮ]gyxדț޵k:uŽJUH@3gNWZ5`RhԨ[o\r˖-wI1]s5O>ds*@zN;mʔ)K,i;_}YgGGT$n' +?C} z"ٺ\_U*Y7xC=QX|yժUVJe˖r-}qR,UiӦlr)UǷi&i~{>}vb~?syT N*믟s96miB +t޽GyN5kVzvbV\٠AK9SU8 +@v@%*кu'>ϊf=K,9Ӿܧ +'UHU2eJ֭c[DT>௾*9=zڵkѬ'b5s*qƍ;v^zuQŲ"*{ hbÆ ۍ'U`ٲeժU}Njj^JYR>I&֭i@իG;s)˒$ng +_5jԥ^֭[EN͛7<*/x̘1UT ~;iU j $U+6lXs&NتUYO;o֭ +cԩ7DU@UVB@WjԨp\&tA˖-KMM-%mg̘1ڵKOOn\U O6mU֒%KbUPU=zt=q2{?|Æ UT[{」VC{ح[).>^ݠ@>}tTU@UⷳWswf>*nݺ}9/6o[niܸZ۴i˄]wuҥxZ@zݹs#裏;[4AU@U*?-X" ^zc=*ѱc!C2!=rB-#_U 駞zs**S*m۶o=2'k~'NXbժU[lY.Ν[N -{ݺuW^y%@.~믿>9?U7n<'Oe?)))͛Wn\&4nxʔ)W(nᆡCf>VɊ+jԨf͚ܧ + +@T +OmڴyWu}vm_ٳ[nL,.B*;綾^sOU -[ڴiʖ-;cƌz*C_̙3s:ZFM +@^}Ֆ-[3SU@U*GU}#G,/ѣG'_||p.OGϥҖ,YrQG%< +nÆ 5k\lYMIIiժĉs9EU@U**p}ݹzI'E .wҪTbŊG8%Ky^gȐ!;v>=f̘Qh́@L_|1~UW]uW{챹**Sؾ*0{N:i֭1׭[>S{=ܜ<8k '͋͛7GGʔ)W_p +Ժu7,X|rUL8UTnN8aΜ9M+SLdnO<(w9+1UVm…ʕ +7n<#3?裇ޠAYh,=^xa֑̝;w@&UHo[l뮻NHMM tRz"^_]jմG{my:<1)So{˗/Bs*F|MtE&MPg̘b9Ç~ip9SΕW^9lذ +*̟?jժAU UH۶m||Gs)UV]n]̣SNmԨQWXlٱf͚<ʔ)s{=(Rs*)GGܱcǪQ8UU2+WsΑ]wݵVѣGݻ<ԪU'~zZZ駟>}U6lذƍJT~c=vё{OUT q*0a„ZjUV-U6lOT^}Ǭ.^ׯZPjjy9ܯХK/)))W^ye߾}+UsSիW׮]O˖-d +D +@JUU`sLÆ #/ SV~L2;l߿Nbرs?7lܸqzzzҫTO4o޼`G +dZxqڵ7o|zu@$TU⊧~:`Ĉ]vY]re?K.d@V-0a,]v {{_zUVEG.#Fd**@1gQjZ:Ovrs~mp١;fe%Y>ͪ'gU]$>&bCf;q'~V%b⬅a0_awNyҟ՚%{"j*бc!Cl7{7YflUb"K>^|WV-_|ѴiO?48@ԪU&OykU?|y,Uvڍ=:t}Yp}@@icj87C +z:f}h}Z(SkyWw;dWwTb>0"LxWO澚xSN|ijF⬅%/}FȮ$$JD9O=Ԙ__\{}9TUe˖U^}=:u|hѢM~嗙O +D\^zy|#^xСC㿽N^x7<̬;3ϴk.dU(U'x ?B͘N8@<=2 |C[Cӂl! |A_?u][<,cW6 H\d':< %4!CAEy~Q'NM}DF9Q(U-[ԫWoܾ{]v?PRUڶm;v㧜r[oy7kooU ꫯ7n3<3{8Oo}6m3yg +D>uYhQt3xSr +U(UB~9۷;u +>t!msB7]VN;3 *!_'zk0 ;:r**PZvX؇=4,YR.]b>,?ך0-\#|ca+gF-93^e~xXVc#zyBXY.~W]-ʼnON_~[U8מELpvIOɮ +̝;Nغuk<˕+׫Wolٲ$ +DvSNy3f̅^y0eʔs=wÆ MH*)--mÇWʕ+6eN[?~zS|I.RRR׿߿RJ1'UN;wߍԮ]{̙K.g +D +Jw? [;,7KЫW^WI/<=KZ]>뮻6{BϞIikh=<[@^.mw eS{PJpU뮻 +vnVy䑃>8}]5VZ:gΜJ*3}9}Wf͚5x> TReM4~h +<^{mi2ey睓O>9TTJCP<2,ZTGDŽ5-&g{ޜpP?aa`aays޶:ΫsN 8<6FƣښȮn +/_EdWLmkZK<3v3+0H8Ԭ״5 +'qPV,hϡ]伯Wpٟ|921%0|i0{H}͏> +k}^c>BbzzƮGWjx.}CG5)ݐsJ1_H\|G5i4e}THl"yO,خŢ3^c?9坸pޑ1׸3#y&5+w Oܝ߫PԪeӦM[n]뮻O*/{ =.|ڹs9"wGW2mݺ^8p3bN8CzO?=:V"l^|*U̟?bŊy**PwkZ׮\-O={{q*;ۇ */ }F]p1ęثWf%oS]P|n;{ wˮ>BƻO cĻ"c$F>}ΝKjb3ٱ<ȸu }G$^:X#ȎwqH;9x qGbW)Q>XQ&FޝԧO$v2t2Vf̘okӧO߶m[/u?e ׬Ys1d,ٷjذa1/R4Uw}wǏϾՑ{]|U&OܢE#/r֭9WU JU]; 6o^$֪qc<թ΍u`[C?j")a'pˀcWgާeeF⾿+5…yT^5+K7V?̙}p06۟2U>$?>EX~&^:hM ,âEyt _vOb2CC]d%*?0y & pf͚=z}-ԡC'|r֭[߮m۶K/eHW2}>| +GOr);UU`ƍ5k\tit$~;6UTJŋÑG;OQGibdvxNᢳ +'qԫ91OQ};,9I4؋6/g&kzs;gð{BfŘhQ/CiɒpY|%㓓{bdWR d0 +8bbOމú 6{_F>8H?ժeyp}&ΟQOGJJX4rHw nRh]ݴ%_}3qٲPos>;(JUU j֭ӦM?~/r|[r1cƜvi;hmQSLi֬v{RfӧWX1͛7hbԩۍKU ӪU;t>淭M01|CIxၬ;ľ}m;9'&%^ 9t7CN:Cx;)4=1"MlvRwgq{M/zk'6?9cHց^B׮&n5Mj&?ugЭ[oN4Gн{ng٧Wob$.A7v Bê9satx*Um۶M6mرƍX'N˨|Gխ+Y5h}7SR2S'|ay'ڵ3t?N |´8>NWje Ne"}y8C'd&x8^PZ@TZZڔ)S}qmڴ)SZj5z=ܳه_}լMVzo6lxHW2mܸGӧvL*m۶Oniбcۙ80:5^ i +-FopK|p Ŕ8_mxO48V>θߊLC/.;Շ?}pWoECu2Ah"첿D'|}1[>9gtW(fV/O0qز(igVL4ji&{c8$V~|'~[ |"Wz܉3vwQ Ll>$(Qvު@ 65jȐ! ߐqɔΝ;ٳL2 ƭ]^zK,-[6"L2iӦ*n:thZ8a„ӣ:jܹ[~**y'zjq/bǨ>.yǰG⊐o Ivxpx,;\P0nU]%V;?VaIX3q8'gJwa}'F"$T-pI:0nQ8%tPva81Oƅ +9^Yo1dȐ' *mڴ5jT + +rd[_zHٲe}o@TA\}2mڴ RQàAŽxKx6;BǾDt {Gc.3Pd+I00&BLIpyp]7ѧ#FO;Ubv5j|ё+TT?jŽ %ehY9|КPP/ʯºU!ဪab$A]:}@.աRdWׅEyˆm1V|i80!x߄g?:T%i? /Ĵ=B]CZXKAK,#!T*?3pE8T92}<ĕ7sfY8'fb8JXT$TboyYfCp ?^sȑ۷>-S̈#ڵ+w +>,X&QIkP~q/bǨ>8ľ pAp[5Ř /-Z"V3,(\C퍡S' ?]ï /  V6–"N=l2˟H <4(\T>l. +aS~]0ai8u§sE1 O8 \\)l[%ja²gXU$/[o5k짟~|:|.kS(^3fhРAzzzt$**+<@q/bǸ&HN +#fEao1]z +7358qp𐏟E]^CbL"O6C_CקB$>y0j+SU1^>]Ď_CDžѕ†BO1<7(y^xvpụn#9_GVH)">y815#^a] )@ss߄}+Id8CRC b%~pPxuG$ w%K=6W =lI6dDUs_w9L>U;&1w$+DHqo|]#tرm۶}6l5jge>m^|Ŗ-N +|3g\r sի|{G֪}ץɯB +ϯZj"TRHN+VU\|.d/9m`G{)&L>^ iJeMPQ kGBI?|5:.L}|G$@Sȇ/k׮%pF̯ ./Dt z]kX_ԝ~ ; }eŒ=<-֯ /֗.%I6f?tG7\TɸEFA׆x{`1%Fht +>ĺBo 7 vDpZ)Nȃ{b-2o#{GĪd!eBz$|؜ЭBOǽᑻcV*!|2P + +۬Yni~ވ}vԩYfSϲ7Xbg7ۻI컄R;\vP;/JkZTjJDKIZb'N'g&dw|sM>ɼx{o޼zꚬ!9ʂ-Zp¨$'gϞo߾#FȘ19*l Z?iݺ*pd*)2{ס(Fj/I=''A _-#T2%cUj-S6Kɶ2RuN9TٔCGV2ۗq~b{ٺBFI/?>6%攘?iK%,DFI'K$掙dzM{P ebQVŊm&l VK|!:mM%woIա2;y5>eʀN'UDDD={e˖V_vСC>}z˗00T~+V;'+Vl˖-JjV"##'L\mzaɒ%”SM}Uor&MÇ[~ +XFURk{wv:4OnEIcաZx:y= ȱ]u5~Kr:y=* 7#[wI)=UHv WЛG%֓#K/9޲OIcMWPMꠔsIb}9Cz6&IsաhXD]Cea)I&irrQ%i^r:PR^֪Ceʸ+T?IաRտs +ꤔpIb9{D>PSLB/K>K峢rEbU9{LbQ 2r錘-9A9YsZpIb59sHTMWuʥf}3RLD1oξL.J'9廫WrG:l]N~9)mUS5NF'םpWmɭ(i:5^p5˧x?yMߒ&~ *f4Qjki5]ѵTK#mJ,(\Cs}5`MXYI-r?EߟTx?%Mi:}qbvYZ5<2Jv1Sv|/kǏD:''YlJ,*.ׂL\7w5K@ :uDJ>lխ +(3fĉ Gl +ٳ^zosܹsۿP5V6nرckcǎ%~{ +<}#˖-0eT %uK:w͛7iS+I͛-[9sVy#UbNֹ4k&Ku1³u:-Xk\cNɉ%<+uUbMĘ۲:'x*lJ!O=qlsm{97qGI/?>ӛYSbzӲu/²4ZuN:9\ؔ%1w$տrWO\1=kd3FuNZ9+'ݒJ )qaSb.{K']-iR/oO7KXI: "Zr->HwND*8a]xmɑ[v$KxOd*A}eXk- <nGb*T>?+:yz@DGCIx.6JI:YT#,j\N/:R>Yx'[%q|$5ɝ_l.(V&y26m <1 $(HEB>]25k{2WpW*n5MU;X9r;vȑ# qƏ255kVɒ% *TW_ +h˙$uԨiլA! &gT@ JDjy`vw[VW>,U rD>"gUڼ+?3>phg({ ,'t,Tھ+\blRI/DII:T*O]||/>X[TПc_Q. o$+&&Gqi+*%fe{RQ)fhشl!T׮ğ}M ɑhLcGJu+.j+W?6mO?%*f͚mڔ[zlٲ*s +(?tЩS:7o*UԩSE%*\} mP0*kfi,YNۤwID˘vK׼6[Rkhbiy|n $P8&m$-Z8 !2_yV] K]V%^WmG +^.LU_|DbiMFّRFSqq.H'$_$H;WɈ/D%GjF51qX({g&.=J\#+U +&ɒh^=JWO z7tꨕU|ѶתUk۶m3fZӧ+XOJT@k^ + ,ٳ;uoyUྺtԇ3_WJ^ R;LhhBٺƷ_w\jwS]F.V'v* sgYH+K2g:ɟ:UF/{ +}9C'>x,~=TȘbO-Sǎ~㵓cJʘJ ճ ~ +їN'f4wK^e2d) +4:I-{J`e D{˼yFwwex@PU͛7} VVN>ݣG>0)M6ݰaCڴix1qqq]tYnoX3g[H9XWnܸQLNHPPаaÒ#UpSb07$MϟK޼Dg/C4O4az=?Ug HAsדwWʥb;k'39;YAu xIۑ#6cN|H:XLB/K>;/'ǭh +891,٨:XTB+\"N7WT\k;`x4l]][*c9w5k&mҨQ'*_8;,ٻJb4~]*29xI!ov&4+w) W)P\K %ze5Ox%1Ud'"Kz$/J^[&4z͉/]jR\,U +(6nܨ\gM* {<_poRy}3gM/1a}U`Ӧ(I9sjժM6tdIuU ,,I&Yf2Q0*nwo??Nޫ|/,b.!cA}eX& 7O%cUG=edL +&ʐC.tJ2OL>)N)ɪ|8ʁY25PVĉe;qL+klz'utDˌ//\oL7CDRW* Il +$>|E՘1cƏokUO>D J|ӳy]tywӥKg2,sߪG|||._l8ҿ)YP0*(>^ +דyHTHI̟_n,\8&c2uyrihkuGo@uNyY}Jk7>$_> +,JG8o/%QN֜7N"g)(lzɿd)F&czUtQ7w~,ժ +(lҺuO&*য়~ٳѣGܹs?XS/?{e)RľhoU`РA7iBN>5kK*`@U޽RNGԪ={n]#I@59>֡ɞ4O4o=w W= ߒ&/ؽ[M#A9>A]׫Do-Y`QXYΥ}R,r0'PIΧĽR8Ŀ\H{R]K{_rn'~ȈM>,U' ԇdRW* ?[3g7nܣGfnHOiҤo6mjGVUHN?ǧ_~3f#nZ8yd*U ӢEd *`@UQ2kVF'3gGdѐw't oq?|' Fˌ烙Q  FwO@3Gy_?fn4 5Uˉ&ʬ-`#;Slb&o:_پF2{Ém$|Hd6`b[ _eubC.5.[mpB+pa8COI2rIu.S ~OU9[#ӋǪ'dEYBtچ,(W$K~S}Յ_NK4ŮZx\JUwL'\Irլ"_iYy$oyJ&V$2Jq.I4VSNp2rDDRW*زeK֭>TӦM=zɝ;/nSݻw}||ʖ-;tPOOOί w +̜9{ {gΜɟ?rR0*n!ams]^uT׃6\[I|BKbZCq57zSj)abo{[n67)U5L48|X'nL'QCD$K䄛&t]M2,rFZ&ު_.]%ıcNTYJ, 7vfoD-@2C&<<<6wKrk܄ĉc[%JH˗zeWǓ#) ϟ-$vPeW3S3+qI9RF;QI]ITOhbwJib8G&;D(Dԩ%ޗLJjyWĮ򭒘A9|s*߮D屒hJlbzϫ$%:U??NxyU … sg͚e9 +hnڵҥ;~x2eNUǥR%f#˗KDovݽ[:t(krekDo=M2(tb[+ 㝦6%.n!%^<̭  +HHԩcz|.]=qB*Ulwb ]jSb>5]fB 3$X!k[8CW[4 jqiLّbxKw%.fC#妒|`Zv>WWrU5^Vv떧}=zTSL(z7nرN[U^ƌO>IzZdʥ>zt"Ighm'NLz{&~ldA2g,qWNܓ,6% 刉e275d}%I&v,}ge jdBfo_cBbNQvU9['z%oĬ 4_OʼnђMU;u-[MTKwBbֲhě7טO\3Xv~똓omf͛˗Ie Q9Z~WӤqƮzH2lM/wug>q񛆟9#LU[N53쿱[I+YU3ى^򷎆<{[niշq>Lt5l$Zu~V%֒I jSbVp Pp*pmOOϜcO>l׮&7oɝ;ѣG *dTU֭[[;U*UtqWBc+VJ~۲s!+IIBK2g|X#Wy{Lܳd/_a Ok\Zʕv]QQN }6%>yıßw5keyW:?c=:b +Hq[.F9vEĄ]wqDW*WYht:p*6T]L^zU'xxxifΜ93eʔaÆY؍^zYWW~A ]kQ8ٽ{Y#ٲɗ_+o kWOiRwsx1$fϮOl6_ser8\:P&?xIk\^H%KK}ʮFG'Jt*OʔSm"T8<|"BL_AcGNMMtsF) Uk_u~<osB +Ylٲ]%W:5 +͛Icǎݹsǧz??Aܪ*S.ܹs͚50A\ML>}[ Pw,uHŽ?ĺu_fN~H:?t4ò\9dxi/ט<&IǎjcJr瞣j*N L͉sw5!1TI'Ɛ薉㥑xPH*?tiӦYYd0gŊ3g>x𠏏qU@=|0jemׯWES ʖ-۹s=zL7 +?\bE [H +RoJ~gr? d ɗ;Ο2%#7J=mޕMȷI2 }=ɕVI$y>BHCU @lllǎW^m뙕S)'z +Phet9PlSL iyNG4C]PRM8Cκ⌁WE}t4DW]2ѷu| gD^T +tmvĉe˖l1^E$ĢJb#i Hը + +^}߷s۷ꐷ'o|Ф*sNi0mڴaÆO>dԨQTGU\"exU1MJEf9[YJr*M®xR;~UxԜfywJPK#JZ"?tP +OIT~:$QP +\pJ*`ȑ'NLxLUzT +*Rڵ%Klk0aѣSURaU7o5j5W6mԢE ˯ʗ/_ի`ݻwkԨq…C 4t*g%J5.**w={#kNջwoeӧOp +Pڪ?RիWO:UH$T|||_:bŊf{Kp&"""jԨxh…ݺuV \rˎhѢ 4hذaF2glM439={ .ɓP'שSҥK0C uTRŊ17 +P52tuѢE_b\SΞ={G+6pN:/ &O8lذ 2 +˞=QӥKBUӦMLtݻw?{, Qn[3lٲ5kVJ%ڦ ֣*`@Up\ +(+^vmz;wWt:݇~gkɲPݺubŊQQQ&}||/_5kV;z9Μ9cyZ۶m_B[# +XUq*|N:m֬YHHHTrνdɒ͛'"gϞř1cFm=[LL߱cMș3_V-s +QURCU˾111*UJrʙ7 +Ԯ]{͚5yMEO>3fA//_~%gΜ֟ɓ'M4ٵkW!NףG-[KΡ*`=Tǹ}U ..o߾}I̐!޷o_Ng8h\>}4_ |t)*1ct~ oUڵ^z&lڴYfN[ QU'Ol߾]YthhhLLywȞ=kV\\\jՎ;f|E7ntՒ,*`kZ[tiΝ*8.5T {̎3/^\___צG֨Q#..pD9rr.\*1bĤI,L޽ *8.UU ={3gl}m  Dg͚e|WU1Uv  +(믿KiKrRgU { nذӧ6s˘1c2/]tTTሧsJ(U%FUJvW^f͚Uq*`p DDDX +*]xɷ0tHݕ tzTQo^x1ə3f mРVBTǽU7oO:dKfͺdɒee'k׮~Ñ_t)_|.\ Uڶm@{ڵ5=2d>|СCɺ0*8 +l߾=((hΝLt PM6fÇרQxKgpI&˖- pzR۷o;wرcʏc^^^m۶_~Ŋ˗>}zBTǽU4iRhh5z׬Yٯ6<̘1 d̸*`ݻv=NU\ǟ>_}ݺu5kt¬qڵRJ=xpd]tqᒌW̙ӧO׮i"## *(Q"""… pUqzU ɓ' nyZΝ۵kWcǎ0ai +~gǘqU ((hذa]PpUqTcǎC?~ݻϙ3']tYe`ZL@XXXF\ +fΝ}-ZtͥKv,^[n drƍ̙3j1*0uAp=p TQٳg>I&)LlRzuW-DW^Mx$0 +nzݺu.\UqTt?ȑ#&3gμnݺ dUӧOFd Lyq @UpUN6mܸqO<1>>}+WnKRVRhфwI&222o޼_Fŋŋwz +*w===-ZԹsgO?5jT3fkH`RݹsgΜ9] +h >>~Μ9#G|N?~=;w.\8a%5k408qUwǎޮZ UqT4s:5_͚5o߾N^I>}͛~PBN^@CUB +;vȕ+KBUpU-N|)...N9sf``3q%J$aƌwfABUlBUp3ߗ$ +endstream endobj 475 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4110 /Length 22997 >> +stream +x Uߩ q#TkH2gj0H^B!d.|%\PdȔ&J.R + \un:{wyZ=Z߽͛{衇S^EYZjհa|" T sP?x*2a„M{Y*S{mYWQO:5߫UȜoС;SWQm<8߫UȜ'g}Ru޽G^Ev +@T|}=R=۷*CU2*[:wUj„ M6*CU2*+9|"YNUddNUw^~^Em<8߫UȜK.7tSW{=z*FU2*;#S١C֭[q= jժ:묓UddNUʷ~=cś~,T sP]v_,0`@BU2*b-ym6Y +@T|묳G}Tol2Y +@T|5xCo>K͘Ի\c cӏzwL6-bҏ)RꬎNRj~ g51ݼ%~4!}w$#ƵVBbbꬦprP%P]իxw]tzoP@DbJqP8thv }ŀo*wj6qΘt!UI6mILկJbꬮF+1@UʞTb귎+7+gOLf^vN|r&8'?9KȀ裏{7?2> +11N>|\nNcBL鳚[ ?Owde9OYnY}#>X7I'M!&~\4SۺAUѡC~x{ś3LJe97X3;-ZsT͓7G-֎O('~OOV7jNiBI|8WN CGd%jSgqdžYOh✸:鳚NJI|t'_,ډ6OȋѭwNDUѦM!Co:UVy\MUedrz~}6)N*~cE/7VgTbt&}pqC]^uUobj*1hX7qzL3W[b*&.;5.g]"@V +@9jzxsĈmQ׳xSx8nfԯ(خzSJzlh}ILw+}nHG_c.Eb6>wnJ|UƨQY[Z$y1,_m]bz鯱81uV/1٦*Xwu?ǯ[bNUrm8Ƹo✣r .wը3uѻI_;i3Kช}a&͛gg]YN37^7 Һʓ:Sʹ&^x|L.׉Sċ_<&=qԸ߹K%PW^yҤIśӦM[n׳xS8x\{sA,Q+׹_M] cs^#;ϋZ5˞յkUք/s溲/韎C. 3G[{@ +@9ԩ3k֬~ך5R^]T w~-==y֋V&MъQ{??1uZEm] TOެoj{qf#Gc喍Wbε[Y\i_yk\(Q|v|^E)bƃ?ĉe=f;TK([v%/]Щ5Wc᳚znfJ|af#KIL}w5|OL~)RXŹMY9f-S{iF +Y*e;wnZ_-܌?*92wnvA\̺ubś1g>bϸrjRru/f=>lu_5bW:(.U_c7m# +5gA'd,?󁣛4hu/meOb5ʟVYH37:X|ꬾQ *~1pT+|V3_f2Nݢ]IYNl|nl /Wr+ 3I_7 wu%V:qS/ T,ӧO_a76m:a„v=qME+1OrpCrJ VH'o5&^%:r(eĉZn8jԨZm_c)Zwz+q5O?hmx5H&n]_G_hqq_k+UJLJjOU3^5vشB(p 7~W;٧*ɱqǚ2qѩmv<{ VI,8`GGzht]<']?Ta-w`QF՜xa$xt#GW4q„XuՅS_$sasO:~(kl\?O?7FM6jbd韎K=nku:|xlZ˕kԈ?&MucOuX }|4}d{fUs~;e'GJ&nlyu&^9wމ-<ɉ_|/T$;f-k_* căō*S 6lm-s=| 7)yv#:fqq%M+N>{lO]maL.xqM;tdœYM|sqߟ^(]VoNd14zF8ѣ7;y6Ge~>k5ĭ7Gu;-s+xq≕LܧU@fT,>lv79䐾}VI&M'L0?1cƴi̙?/u]a5kּy^VZY]GU3,JջbN?J-˖j9=& rk 7߯hǟnE_v|EE1MaxQ~w\$rglO_Se j*]`ї9MoDZx'zl3^[w^dȋRg0B+N l?bt(=qj_;ߝD]7>;/_iCǁgݱuw%>Ds9FtVh<ƍh⮻Ɛ!yMoG?J N*q=rf$Q,ҹsnܣ~7|sȐ!o'O\:u㎭[СC?u/DUܹY&^36YoLZ?&X;FK_gPe͉'_$֭|õGNejԈ?&M*Mǻ}߿Cxf;4q8n\"ڪ'>>2w z}dzBKa[oW=/QJ-}VOJr_c|.T\͚1iR4lXm~u_N[nokOج}|ĵ _V8zthQ*4S/'~]a[H_IQbʞ'jjS_c%^~/ڞ?MxJ*e=ݻ(Fws4hP>}{3JAXyXb=ܳsλKd*ը{i[.'KJ}s]x789/ڔ}q˹8 +$.dvԟ=zy>h[oG Cϯamis7G떩?/,ίAv[?LvANr+K=l-k68^Tx~{|YPF?~#W~;}%qᅕK8y:\(w/;o㢋*x I{*YIדq=bS.AuWsLuq!/;n3wqyJ\Hq56hiQ\vZfϞ=uKWSO=ugP[6V.JlͲNUŻc=TrxN 4H|ʔ5rQ-d袘7%9jovp3L|Nqz4-/'UL|拃Iz65bWЗ_ [s^s_ebI5kq?drV}q_>MsW'_t\Ē^oY??p_Wj<͋JNJ+V:[LkT⚿~V7fXRw4e|m4?frXycTlqm,<&f7p5,KZƸXʉĨ+N^}+/B;{/G%nybxoh'&O-ŎKx'1j՘8`)a(>y46(3O>(zDpEVʅy4Z5}Ŧ$\]i|n8tMV/fŧ⩉(+ƌJIlO+U!qN8tu^?8AL;2L]5"V!l9N[Ę#A=㈳K7Ӊ+ǠIѠ +[oCWƑMbjW)3MbWQ +-7ġ+UbrWɇ&%΋YZV18*q8i|CbPbb~+V!l}(*IQU(n6x1cƬj۶mqOe_1өS-Z~S &\{wuW'\ȒK.SOnݺ2_ĢDU-ECo[D:9^z饲oK|ͫRTZz~<+Ջ +Q̝ vf& wsA,<;z/᪥|v: %+5kŜocbv GFH.v?p[BSGŒ'F'.};-)pb]IJ>:<g !|M^}!5q5uVR9<)U!8cZrhFNO%'vRcq>rkxct<9άBqJ*kcO\*~I%֎KNٿ+WXPl~ٳΝ۲e1c,**:S{Q@Hݯʲ5mt0 +@xgL[ǀ+rwF<64a6-{r`QQ%8*0>.SvKNWG3qn1䄗b*$'%=8(NnblKZr>1>׋OKWuT\g6f ǖ*$֍%{%:*9aHl7W!qlthO}Lĉ%'<[aNL(8?/lj$%>[+v*-1n%X +@YV[m'KO;vLOUV>}:u^zuڵ9{?^)a̙>l7޸o(*c̘#s.#.#abʐX͝uv>j88$5b>OӮS.[΍ӗp"=IUB*qvltRr8<%^70 +M'fW+'gxexVWr„hz3)qClDVrvsN%'̿Be+XcZŞeV>} 48묳8Zr%~e=ٳgsnY>` 6Uٱ|䡇;v5\t1ŷ_Eġݢ&/Gw'cNzT*q|3)%xL<~W\&1K6nz.K؝qY E%oPc{PyHKqѣ_֒I\iDZŞ*]b%̙3vڿoO\fG}t6me=p'qhmg93c٬'7G9+2J\38M<7Kb6(NNS'^UĊ}bv?Cc$?$Y6^!Tb8M߈x>מs*NL0O8Sqj1짨\y|66:$mJWD8gs%+iX,L Tj֬Yu)mK.9/}ĉ-Z1cFs=;SPPM{ň~QܮKXcܮX8Z8aNCƿ?SQ93_Dì'n^/%qxJ&nb$n#_c&EJ%VDk^8,O4K18.qNxXRƇơCkǣ~Cr8Q<79U*qN$ִV9wwQ+)/*'~Ol"wcR.|ԯbOlޠAq1eJ׈/?}voxYo~R噱lX)8{vwwI\},S5㋏cġW{fECrx!~r:ʬJ&aUoH?#G<3gQGԩzX;&~vkԯf9N?ZyIp+}g8gs%˰jѯ_lMēɉӰX*k_nٲer;?J[j>&Mf=% +@9;o>_ǐ! lӦDġAۥ̸OyQD5'jd?S˟rQbbxkn%wMrb^u:nz0Su6'zq %&f⮻P;Wg剣Q|UM~`:lz0iR:=qC!8'~I sgRI.97mxuϸߢf*Rq)Mbꗱ[r7VI決g^Gn~-xu(9רdYp@qGԝߓ8>!1d-KQR 2MK.|~ǦM~7eٳgnr̜9gֳ_B;U Suw_qR}d3wEIwNnBLż_ļy㇟=5N;xVѭ[K5bؾv0viq=)9e4\%sof7ӢkW[rXi<]Ē^:2NYsnHz^g'}%'D&=qgFIJc82:$ {=qcаCcjIRlsVQqІq{}']x/ĭUH\P1|xh罹O,x1v%Äӄ#{t^]K?Gt! |l:nBqzG\'o-UH;S' Vm*$㳄cO.'ċWrغ]Xլ#Gyo)vi"פ*믿݄ ׯߩS/`ĈlIsf=JUaDߤx^^|lz=sF]c̄*910$4ѡCDW])&>͉z;?-?!~⯿Ŋ;'&NP!^Hh(&gC|%}V{AUH|,N'zk?Y1V'S8 + yvKOS: YHT`z; ]vٹ瞛TU<{&u_l~Pyhu|Нűv5~quC͊9$B(=ONrD\'r~1eZsӓW!xڸPG>_mOJ<,.[ątRܸv?fu'v{'tP̝_F *1OQ$9$.xf*J9O|`L:}_$GmE%~00&6b8$GUq)CH,a-ZӟƜ9)e'Ğzog4w:JF<<7V ꋕ'w=+t1GVEhP_g'&[ +·q[~KfxO7>y70*U;v^fO>vRhX*9,>\bشV&hrx,|W'?-vGGqPXblQk;:ubxL]WcfQq`Hx԰n|:ݮM$^c%JL"8 efl[TvqP'^^I_Ǩ%XhDZݑ)wD`CU?N:_ugym۶Rh|34+L~Zs\rS !y= 7`}reqM+bg%9pq9 :.;^'W8r&S.SPr}K"n`%}v Qko&|;rNM0o%=;s8<.UΎןPߗ8/qRoR/ރ +'N*yb,K8V?{U Nsꝼ@haw1cFkwOh|yiVq\ꡟԎYc +1bcbgG_'vݾ?/mNH=T'r$Ս*fxH1hR61cR9O)ƼP1&;QGK男Wbw|UlE| +OlI?Ķ1r^cy3U-|b61N.{(!N‰㥧ӣNߍ+oX;ěoFa4M[ +$oߟ@hN2kᅚNhzhٛ 1`}բ[Fꡓ~vmH'c_ŪDbxDVD^'/G2?I\۔)%g 8ujjݗ?'VuFvx;)G?~Vĵ<<8rDfN:5Y&Ό.?ĉMǸ:ƱĻ6M^'w`=^1~dM,e⑻2=\bxxD\X'N,:r د_ ݗ'Gnxθ(u\vm;'س%qǀ27<{dx|-.ōOG2+mqĬKx݇v} VFݹs mo?*yT\v|lꦵJ^ԣ-v|occ9)ݪfrX=g1;D?EQօM|12n>F|H>>(Xhʔ]r>jX0U}=.>L9hӶ13mѩi-حMZqK?Z7mː8)SeߌNMb^m#7*|/=Ztz4h"u*U[l`74^uhzdRrf-Ďs;kv?9~` L_npn4lx'~Z-կ_}˖RvdL?&*MF$:w)51JݫhQ}qN!-z:NK%'E&+Į&LP-cbxrLM7alXwc$6h+VgRvtLogZbU/mUswBbo"poa;s3GDb*xq^mY6/,t_$"x*NiWZp[e@ZjX`[lfѢE/|DQ}ӎnQ?]{ɯa'ۃ2ؐ~V{6hpH\==v̼#w:=&M*%8ix9Ch{x\ĽcFZqE_yg|ut?_3Yt'Ā&~ǀ;/7+8Hxt$GH6'%qR&^PpwT .dcN%rUWL&B) {oRb sBL +eIdK/4kט6Ē&9 bIڊ;ōK +@i +@_׬Y3AoR>hQ׊q&by{#o^?6MѲ{,NK)88hqѿT򫯒t=9o+3hY:9.(cʕq&8VdNqPID!(se $}h"F.z +H⊴%4o/ű61wnŇ/Ea$~x+Lxqy%&҇MsU\Q|U$Ǔ{#ʛ+F_OLT>'\5+V$2mq91I$_UK.s.1~Ui{ǿ+JM<1.!14ώFA S( PeԫWo`;뮥ͭ*uR^~H c&6qϣjUm*2?{m⮻]&~WƂb11*WOD&G$?6qG§LLyY%G)&ģ3&~람=$ڶmә5+.L1&gxUMwګ:,.Of[X?*ZbmDQT#G>5בnT?ts8s'6i\2&6U-{?⌼'֨v-8+ +@Ѹq9sd(:/Z/9&n) gxuNq|^IH9n1mG%y$O'Ǭ&XnD&A,9#SqbѲ'f%fW\Qze XK1^7ܐ6qd⣫{׬9qgHCTEʟxfJ,tI&I=DzM\*f8xvܕy1m\}k|lI7QyLۣ\HGT?z 'NlWO +@Z(z:?nnQT8&Hn3߲2\y‘qlbg㟏Zi48.Ce>#x/.ܥ8Ļk\ղƳZS| &ĥP?r ?)VL[qѭ[L,'գ8,n$9Hz{Dby/qKMikVxlY&]'.:UK]bX +O Pe4kW_PsO>h8O<\Y7cƱEIϾihIYvd}yԨ^Ŋq eoX/m-w;۳i\Pb>7[Mj<3^6Zqqɡw]v)뼦L]cяb8ܨV-W_Ŀ\SgMxJjb?1'UD{GeJL.Wk>8ָЉkVDտ +@N; +fΜ٬Y' +@Z_[^QQ\pR }@G߫bU'ǒ +xY20x'~4,`%{b8;66,n%8׿Sb8昸馨W/uY!)>C㪻+rIǢŅK:'.4*\^&^rjW߳>'w]pNs/P!*UFӦMgϞ୷~ 5*ƃ㄁hI~S6Co +:N<֋;Fǽ%V;/mJ }o^VXg>Xc&k90[72{o^yy<01//*W[6Xljg\Sb-oXs:l<:Ɛ?`U xW`wŸgrVA;$x֫{nQD*i\{3f̬Y.\X^ۮs=zQFSNKv*'bŊjժrJ9UֱGwr?gǯ~mTC%rfr-w}bV%qܳqΕ˭ɟV$n>\63U9Ncdb(1o_y2mԣ$VUbrD6uԞ={Μ9sGSN!rʍ6(C[oUVXCO?Oq~8]3S*Yg)f-⼞q>U⥷rx qޕ1q̓U>]䪖!XҬl7X~ئ8zBr?fؾUr?߬:]JY]ːxiW{CRʾIjarA0y:hɒ% +zqrJj2jjԩOhJ7bqϣ1}ck~H}~f ^V>XPolut:Fʝ8⡸$v?_iU'n^]Xofc=qk9OܾѷZ%=$&ۖw=1%dAxf͚͝;7CM}m٦`9sn햡ਣ +6<*SS1kv~|dA:K| P$Nnkrǧr;6]wOomk&_xeyuNHܬ3cEJ|UGe% >Km1C>-q=NLfZ~lS19J|rJ6\K(?PR޽^jـ.O[ƍ;3oРAOh*`Yϣ(~IVx] w +~$n6&nZ;6h}KLd%Mk%WuK( .lܸ_~YjeVNZ)qWy +Fѽ{'O +@ + >we]eˊ=5>Cf(6mZ- +3**?еkQFxҥni^?:txGӍ֪UO?Yfa&?Z {ZZj5mڴT֨Qcʕ@Æ ?tp?^VȞVMΞ=,;ӬYdr&M̟??]{UVȞV(#|Ӎ^}է~z&s3h Zjl>UUJz:t'Nl׮]af8d7o>st__VȞVHu֓'ON94mڴ-Zf#G޽{m_dM +3**)HW0bĈ UVȞVHSO~/0`@&pg:4c`&UUR[|y۶mO^m7߬QF^ǍwG;dի7cƌFuVȞVHk٭[^pa ԯ_kڵ[hQQFu%X +@ +@&/Pի}yx}ڵoРA +@ +@)^~>xz}?𢢢\m**Zlٽ;z觞z=5js=^lԨQngXhiYbų>/N:uƌs/ׯ_j͛7o۶m֭k׮]VNZ {Z bŊ%K$uhjժՠA:uUFZ {ZJDdOPhi*=@%UUD +@ +VȞV**T"Z {ZJDdOPhi*=@%UUD +@ +VȞV**T"Z {ZJDdOPhi*=@%UUD +@ +VȞV**T"Z {. +endstream endobj 474 0 obj <> +stream +xA @A_%fFA9{]z(44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"44p& \@C`"7H +endstream endobj 489 0 obj [/Indexed /DeviceRGB 15 ()] endobj 473 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4110 /Length 23142 >> +stream +xywS})%KىlQr,V$Ⱦ$EX +يPdi^{H9s?z|?s^9ӽ9,X@UQͨT%FJ1*UQR +@bTP*ŨT)FJ1*UQR +@bTP*ŨT)FJ1*UQR +%7n߿ 6`VW_}5yEzlM[Ftk*[nW_}u֨PPA +èT@0*ĨP9 +@1*TPA +O>'p"S?~J9X;Kxr-]tz˨P||衇T(J`T2gT#F sFoO>47YeUk۷m۶z}èdΨTw}_~YLW.9P*glͦLRxiȐ!m۶n'(رcn+QȜQ(>//||:thsƍk޼y + + +[.'PY +@ +@&N[Ν;Ҙ1c~嗺uOoq_xᅬ+QȜQ(Ay۲eҶnK/UPSN+~K9p z^'|rOiI`T1H4[VY&VX w?Ə?/ V-}1@cڊU\%,*Rdw%\R/ܼy\¨di13>8&_}/nl4N b1x魘<5}=w?.66Vbߞ^˯J+ 7[e8xj7J=kgzv~Ϝe(߾;]~,*_L=뮵XH^2* ϟߨQS&֬YᆱUVjI`TݏqS̲pzqp8lW^W6Z3:왾iW , sXL=ŗuؤb^񋯫lqTy:,F +@aÆiӦ͛˹<%Q(wI C=CճqZ@y:?}3=jՊ6t݋k죢M銩Gu+>8,5f^lC *zT*x:f^l,]L=s+z=%.[{lwŹOY:uׯ_Q't 7ܐYr2x8wn6sݵש~l'PzFęǔټϭĵN[Yq]|8*ſجib|)>l̪\0KPѯaŌ+lsv_@ .oʪۥ?8"UT,{g㸋sQ]VV1~CWK=Wghf+fxű{)Dzk]R䛨ߌ +⊳: 3g\c5rv>KPn_(׹]3jTQ@Ώ{-(W .?>r?'Yq*^dVŋNgь/NuqʴOLGL;QFt.N$ ]s#{ +vuב#G~wժU)-9 +@R q]7}v/K K_J8乓kO>?J+͙3 [n믿SZdERc-bcQg~/ScZbxFe?{?K+uhy)j.?_mSwv ,U|?Y#'W/׏iZQ9jVzqo,WuySgo=!YӂUR_b(sp1`yߗ7^n{aTfѭZ*fC,q +@W52qh8|@oLO{n"~) +{J޹q7kNMX3O}On7{cX NM޲S8ɸL۾tfǕ\5UθJF{mulGǟ2,d/X ]\_hfnXrTqhQklرmQm xs'Tl6m n~|K=sJ[|ta_`m;\lfر+Ubq[1{>eT檫ѣG18+2g糤1* _Sž:ˤ;埱 +evw<W;ҸuP {V,ӽ{\S)]շqÃq=e̴Rݺŵז|믏Oάx^tҧpCtRU5^ҏX?ͤI[n1vͬzT;_G5R~7'X/II1O=b%8 1zTKsys>[KGuZe.^wQ͠zΧ;gVWQⵧǩ$FoW^ygYE-K@19n83^797EQwO+G_܆j㲓,FOJwѣɽQ:ߋu+ذaLZZQ}.>6+ۣZbV1rdyť]+:1mZɷe1S?MK&w5}.b1}zɷm>KN̴xRx<~9{‹KՈom7)YQ +߬zSL)f=s|4Fo.(jFӢ5 ӓELzO4i,&OfPww~E楺սkС>˜nrܿe%_y%ݶ3b_S񖇣%.w˱v*VxU^K@V^b3)Po7W8vlCif*Xos5[śĜnjwbQgo|(N/sERkHW^Żmj`A4^v*YjӨWŕVH?*3FggF/_J+Tuذa[)-i +t4V֎AWF+L6',J-@vBW+S7f/|쬳+J{}D?Mxnn+ŭ-Sgի݋8xcRgW^Yb߾qqe,-ۃbqU-v[{m!ޜ\mn^Aǀ>pѻwi:-G!み}^q 8#9ԣ:Э[\{miwGbB)^w?yǍg6@%1*ygw}?~6, +_RD@%ZN<{KlQ?~o/_+rxpX"W묱&MbR/u6Ę~&)>0,-Eq|?~|Ai{O?iqbʔ۴Z\|毫; }~Sqy_l8>ŽCqJ.|WTxzhִ|Ž'X{qu㣏J[l6 Y{FR_;j{b lh(>}_󻟈#/iwމݺE ߋ'ok׮OW[m2y&No&O_K]r-24lذq뭷ovۥgu,ƌ +_ZϽTsxuJO;_~QfE37?0~ +99<~|lE"5jĬYʥ(.l~)w@LypfleK-~UR9KY-yjXix?|h,^.[Ϣn/6> fV1oN-Q_}5)UB+*3qѼy5k9e.j#oiqcD?|v2kJ?+uY_殸g^y7u+ޒnj +_8ž3PAA9sW^{?ȑ#Gy/iԬYsmmӦMǎׯ_VF/]ݣ[=ާFQ8=z NI^V-*oYx㢋G]RQ}fX877}vĿ_\wQGx]q䑿}tq\omK#;/.$ߋotG=ǗߞQ8ܸҜ9'.lŻ#sO;ң&Q<'?n]YgWxqa}g`P꿒Ǣ*سgUbkny8N,_IVuw"ɨ]v,[jb ?=M.\^ æhԲ?4fEqtɸ̴8VjGnq.^buN+FկY\+~Tqv "gk|W/vgXRjx;WbWIjY]w2-E\F/o ٰkΘQܹsy\pMJm+[hOF m>Z5cA\I"*kͱ[Yޅ p#_]$|obwWGDr1тn-V[aѵLubXu1*/='UbT\b2c*cSrYL~L}+Y+$!VdQ/a 64iRQ#F8LRժU;S⊚5kV V6u?,zwݙnGw^3q&tsnvYŢ]/]=.xG\']GxV|EYby_.y8 wſ!y^^G߸c<3qxwG~̇⧱r.fleU/nWLa\N,֋oSbgJE_&*P$_[=+.[qټ/mwXٔ?c0amb\dQ믿ެYjjȑꫯڷo?zo[PPдi J[feYfM0?,wZk:_/F &? $L8uM\OA|!EWg[0o4>:8)4? +Rj;qK7yq1F$W_XbėãndΨaذamڴ)~Ͼ;xYi̙{ĉZkuaN;cݺɿ{M6Gӧ;SSF L^|usn&Aoqx q^~8ĕ{0ˢb>$NK\=$.{(Zxvyiܔ$Ӳ^<']7'.m6Onb7Gn(..A jb"Ek9-K#G9.n>'^UWS*nSr\4>x$Haإ <)nEW=Q ;^t[Ĥ|hYbňh?E2gTpwС=z}E_~N;{YZ6mty}QFiN #tO>)qꫯ.|U2*qƵ;MjՌG2r~BII?!^~ + TDppt7,֊9_./7\VU{<>~4 UDqH6^(||r40-.JYxõѡ[WWPн\'Խ':Mb`cqEfohW)|h4Ϋb8"&^dgRhQ }v*֌7\GSQ|*Nnc '8ʫ8ŧ='ƺTFN5+:,Wx̎qEdΨn8~NuQwyϭZz ojR;4fϞ}ivm%L}>H3v! l peg`u׊)l`1a<⼊NvDqg]c\ O{Ey^:pr[?x[x|[bZ}]8'KZxÓS[k7 u(~4酏TRqT2^/hO\[ݘQxhB])qI!ӾqM9~bfA'YR|.)(yŏbIś]gc[ě7 /WwUMqI~/Dc| Ew9%*~KG+H +_x9c裏뮻Pn/< [v믿-u2V&}wO?tmر\o6FXl.Ogs!)Ϩw:(\pzABb̝uZ,k9aR1hUqqo Sb,On^sSp qvhWd{/|oPquZ!.qέѮRէ%kkŜTz/9[Ikq BǹŁR.:%(V(kqCJ)^W /[+LCTT<6uG_)IP BYQT16Z7&VH ?tI7tS{:wܧO:EVz7OFr>ǎKO{VYegĉlI& +d"fpqb%}#z-v霼hfn7?{'G׎ϧE cЭҁsbZ1h{lħ>K-#bH_=OR񗨹tbxK\VxQs׉YǾKFuOo o)jՎZl3?v[GEJ)n+ +oK׉Zl3?,**51zc,l<_1coW2>WIœ?D⹲~@(lزR'ǃǕ7|/{4*r +)!C=Fֵkoqn7|Ҟ{9pڵkgn.]c;-+MΏE^~ܞ{hzP[&s{6y(⁷bGf{j9TŇc+i'ɯ4/6f;ѼcM?ޚYnucG.1]%+<&G&.5W@qx8*qaxƩր#{j9TŇc+(gq|v=z߿>b=ߟxĨ?#qOxin(SqVzbPX;]x~#qR^gRh@Tq#!wYю#Ù*nCv_{eutqx㈻ ZkyL~3:$.^%̘u#󇞉2oQܭK;>{׏( ]6-9*!Z*^*k}E ((/$?h_,~;0f̘??Q[lY;w۷o1:tп>DF 괈?'gXI^]:'/}48fmJyw37W1#8"FNp|z$xeH5hŞ0'cZ\;>VTћ?h\|e&]bЊg%Kǘ]q-uMl`s.+稹Lً Ob}uϹV(։YǾ!i۬R__2yW0;/0f~%[g*xCu+aC,l<_baQš}UIŋ{~B񇨽\j/_bQ:t[nS.kEȨyƍ+M>K/MU2f͚ոq~ 5k֜:ujYw}OgƎ{5,rШK O=4Msp.I?ď/D9?!X5js%,-ҁ G1wnq(xƵSbѲSEr℃^sSWvѥ}ӯ^~ܜL$Sv!Ic;o{w +@a׎uX5i>I8~ZӱY7bv^*v+/GqR ^W'W@qr[?x|5)tQ^2vػѯ^;Q|?\/%,tnvR-OD}r?.3RxCb}cW-)1#aᄃҳ4Rx(~5 '#=T)ńBQ0)xLPxhy@.Gqa5k[ohؿedܠALXUB+R_cR8V8m:)%~I(ψQ|"N;^LXh0}z&#zĩhhWIXh(P9ԣ:'Lg)(>Xs_T{T&&,ln]Iԣ5Wđg(.WY>/=˳P$ +4i2iҤRnСC oMU6d'wM}9;`TbЈhfcW~;l"&O %/]tB)goL^zg@׾} YqeQtq7:Cⲇu9gǝMk>LzwIܜI<pp\> v~q'限$+Q<7]\TqҠx\(8=q50v-G㢸%ymx'ʼnƁg$.^UW蓰PZ\ Haإ Ąs]?V(^}}<oNuIqPrX,Gqg^GULY(uFno]jzׯ_ѧ?.*f_||*Q1_+SR{\ҡfҨ"LhCr d\3ɽ/CT#JP%nQ9kkZm|iZ{̼^X&ґ+>E3/=h{iKn}_⋨W/-CpxcR_ܸ+_EbDZ[/I佸O|9@c/<%}_oML{.N/X/4ڀbxmb\@7߉巸oL}6Nɼvq@7{=kr jo@qLʼvoӣ JּŔ /L8uF$dX^-^?$2ha2{kgMÄWo3/mo?G[֫-tS䫨(}/bxe|޴qq]< ^+5Qa<67*PcT ^*viv<:N/S~<>B>I񳟥X f͉wQryc͛qd(QOi.>m?X$frߣ!펯,G49x{hPopWq}.*ov12;,Ѯk\cqF_~b暦}N/g^w܈#9OFÆ ;oۡC&v3*kM~#Zz aӨ~Q;DϼC#K3/UtSko1rxS\~qEœb +o\4ϱ3#.۴'nKmؽOGnvW<<,rsB4pC7bxhH\QI91w}s/ y.GF`=z8py]yɜ' &o>ˆmNXw" +LɼTZ<8`JϘmN2(2rUaŅj(jjVAd.~s|߸#b2Usbb]أ]ܶi=ߩ1ĝEdh!-Sw_!IŞ܋m$VNUjU{Sy._F`:JxԞ;ɬY7neCÆ }ΓwF[{k2֪D]}~{rA~Tu~qsh߸cvlWGvX<-+aۑQlkqQ},c 6bs_){ŝd/ewt7q׫M?,v'?d߳:]1%&YlwO&y)6qa[Ɵ_l7|ԫK? dw\<1"7Zq{(T9v/eT8pPO?曋xڵkgPz+VTT)#QރbŮnQ#:;ŷߋ_so<=*':ѓ[0=(nVҽwҥq1uj q^,Gy,og`qU!]\@S_Č,+,9.^ݻtT\QU}S{cbĈŠ|+Wx_{ U=fesot>&.OxOt>bǎE*tl\bJxoqv(~Qqӹ%< +QXkСzj=z6,o$7|ʕY6,X`mI@X-VR80>b~T_̱8hPuַT=ŲϢ qcy*rv>r$ +QX+:?+N:}Y ^F^IG^e?!ѠTo>gq#7$?x+7Ⱦ j4{6mSqaWl)*}?Zpuꪮ_gJqz.q͡S3&zCq܊Cbb.ņ ӯr*Uͥ0>H]܋ںub9i9SWx<#GI'łrGg\C7wJg+U=w+ͩظ +Z'NoTq衇L}ߨ~?0ˆziӦ' +@7g]_žǙݣQw=q#1㓅%I/w\b1dH>H?܋_/zobX*X</'8q#=6}+Λ.>tU#z[ny:33r.0 X/>(Vk1u'Lȩ8?El^7W5b?]|時/tn9Lbc1*k͛7ow̾M6=W٬N;{Y6L:yI'ό +@fg](QͣہqAѮET\W=OJ~CGUJuZDo΍G)qエ}.|ԵFJYv~jgLY=#e԰aٳgg0mڴf͚%v2*pq{i"#Z4& ub}|"/cڬJ|Yim=8=ѥoLxm捣q+тKy¢m߯@3ދWAV-c]6뤯?#X~7kuSWwT1;^-bQ0Jh'/>FA1*jڴ3l(**裏;OF?O,ROqƉ' +@R_Cϻ9tA\wwau>oᬨ\yc20*ҥ˨Ql\˫WؑWTT4,fϞ]~Γ_FUʝzDtnTP~V3I(Wr\7?n٤tqGq_+<-$^a y0b*{$]|w^ }(_']|gn {8}s.Κ%Xo}65 }|̚5kwN<m ,Ȳ?W^b/P.HWPڲF w. +G[Mצ\,&ϗ(Vc=6NqrwLƾPTEK˽xߠhۼ|+Ç3zcǎɜ'Zj-Y Iju-HN]'đJ| PCLC#?1~ٺcfV-._U?bN˹ؾeޕ,婸SW^ZL]sCU-kj^qMxq  +/8`رgsiРA ڵ0aBR?f̎{F}} <5j,^J*I) +@ +LҢE{yF%sܹѣ[m׮݄ ŭ֩Sg+WNHygTrgT2ҥ˨Ql8쳯Γr5߿޽{2$;O?ݡC,r˹s֮];#va#G,n_nٲeb)'F wFX[㌫ӟN:r=@b +@ +@ N9;#ˆC9+3 >gϞvm^{jժz,XI&6lX^W}|V:iҤ-[S:yF wFd#Gڵkp͚5_z]wݵ<7tS~2. 0K/-bTrgTJϿ+lhԨɓ֭ٳ5kxڶm;nܸի緸qRYzuN~,{ڴi3f̘5j+lٲcN6m&Mw]iv=zts̨ΨҥK{8ɲRJݺu4hPÆ K}х^8|իWڵk;Sve=pbTrgT6 7пUVeٳfuOo*UTܶ+V쳙3gN>_\|yqUVv[yBeTrgTrzUw}7o^^z 8ST/LF wF V\r-&M{{Yf^0*3*4eʔx`ѯ7l>GtPjΨΨ?p̘1g̘1{5kdܹ;6nܸUV:th۶m5>jA1*3*IXb… -[hѢ%KT\f͚[ouQQQ'tĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +ĨΨP@ +@ +Ĩ.r#! +endstream endobj 472 0 obj <> +stream +x{\?3*Zшq["K[=HB)mіVHԵRT)6ڠE]MQZj==ݙٙٙ3ggf?=9f=L&ÿE +g OU[qhR-| {M\iN*/Ȫat0,\kT5.k]~ìuRi5b/u]#>j7ìQ mFoXenqOh{Pv֦aT-fm531wM'\5$[4Da@famNZqxvۧ(Tm)c/sk*Oܩ=DI;ψk}CB;]wUQyޞL(;iT3;4|d9ײ؂FT^q@|Qr7/HAp}~} rs sOO:򋎘Yyg≟葡9*9!竛x1\#\ӳe Qշ :;q57ʾCpQG_<0٥/W4vJ ?"JO9SӀS+<-,3FjQzʞaFŠ/|2^W3*- h +]N o\33 +J8gދ^25 ׊q45<~zO|IV^?!67•s q]?EVxOTURolˋ_'u:+-k˸B4+Y+?m~|}!;rE+CoH6$5շν1no\Ybx|xZv9 y.^p̔c?5ۡ-5ܛz mZ2AܚVnR&guE?18AAk#gQybwsgY]z s] U|/%֔-{8OsR44|P[xymWp]K{omOF +c,"ьaCJӿP44> z uά0mun fߟi)h[СE~@6۫xZoN2sn5po5=`Ugt,&:੯-J<^[>/m?qы'\:#7tε|x~:bi.oCdi-C>ȅO~p-?sMh-lP6|#?:`X~>UWP'4'!_+>nMfgBKxƔs}3)>4T4?z[Z4^?D#7 |f|mEy>_O„N! +x_MtoåQwt/P'|i}/ߠ|Y$"=ZX]a@*yni Ԡj~?s]ݿ:;uzEy[9=7׸k.Oqmq+ ~{zujk}po>8rx{ + +*)15 Pa@Skyȩ5|P!AwF;M=&ɍ3?_iԨ'z^p ߻jz8݁~﩯# *' خ㌜8DggK7 d^8ĮGm'URߛ;] ^ҢSKԛ;jT;df>u]r&( +4Y% +L ~.L5i~U+qꣳdߣ,Λbߞd7ܵ_-*e{\Q`ON3QTIg}1nOg@7k̽pn}v~gM_vמŵ}]F=EC%h5+8zu4JnXC~ư>Vg´#8nJ} d7\6{i7ـƾVYR5~/^ㄔ/~d%t}Y}Y;5O8wԊ}V|쌇2upX>EGmGoE?@h!'Y7\yjq_XuyޑL[ߤt$,WmrS[c s=}~O:9W7StҒ?-Ѱp6~`xy/-0j}G(؛?cl` [2ܼ_?wnS/t[8_T5c.=b 9`7u`.\5_X:kΘwmuvv1u\Wl~-{t[R +V}7/XE~lQp5wnq_x;,^=ϝo )XO-no-;{uMOcF M^'$4Z7mq_x0 s`~틕m:ZKÑol?TS0s{R¼wk>( 6) lUV5UJ(SfrHIM1 9 1 ӀӋPkk"HǮxrm~u&lٝ}erEv/ ьUy7~lFIģO.~ +z7@)$" WiM*L塋ruV):?.rVj=[!vϦ׽ {r /LmTnVƗ_N|ƒ &̏kRF;+7ۙYs<9m50LcAPpo-:#z~aDs ץmT4i^{R5~Zt>54|\0 E}1Y{lsT]i;}$Dpܾ[mPIg +:֊4/h%0,+ |N`Mm Z( J0941h!E' jp0c(ZoDo{[PM, dXa )\Of65h 0{f0 ?xE[l¹kdLq0qWi^kB8ag0`xc>?;y!& x%"/# 8󋃚 +,Z+;zu߬u|bL0 scW5;ho4. ֖|NN㐎Ra˿:O{~`0z\??gJ]n?aa=)I 45F]pNEgJr͙} oFM}pBBY@_ +0eL0`Ĝί_GTldwd('^N`2z3n>,p+U,Ҁ9 ~뀥€ C6[8 'v_?{Ra@]i }gtnܟۯJ€,O PCÀ]ԏ9c€̏?M/>XFz 8QO/n)d^tt~cLc߱poRvϜP\2a_6=(@t*Lf/G.isʄ{mx}V0 z`v˦{?VcraS]ڿ9xdloBL?֟م7?eëLzgvDhwra@ծ'HЏV2 8q]@kR\>0 gApXU՚U +a@فUwlXʭa@|pDU՚l=&ymJa #lTΜ[-ߒygy{jJ0>t^ +Ja@:Z +33 2 s*ה0 kwl?:71m@k? ^|DB'UkFS}a~ECÀJn;4Mh f272mzMv]/-\ ۹}2akv^€‚cÀSOh gguQRa@|kk|$۲`/a@xOh ϭ?KKwn3 .qp 2o1? 2ܴR]3,?Tb0 0m}(fdt}5t0(:l5 yy̾lZCϟՅÀ)/?xϕ|0 פ03 `k˽20 e€Z46 ȶ[rBa@0Ewgv 6Sdn|Y'QE04 pGe|a a\|̔*€̻if v-o}^#ÀDQi51Td>W%hmd׿_72 GpJ|>_UrAd@02(lӸ0i 8mz|FT].ig-Æ$0 dӀ } ,?0 i-nG[5* (#ϊ_w +Ӫ rHl0 }k;y5( $K:o{6 ޭ% Zs]7_& h͏kRvʒY@=*N: x4za=@k{v+wg3>U?\BUwijm +Z+ +7xLҀ^fVdԽeg_ﶭ|hɘ^<#) .\/8Ry(<1qTMtА>U53쟆# 6!n\7ha@u~V] _U0(7{W:4Qs׸oB4X5r_L5a@gOFQ" tM%=6 z€C_6WUCa@6 ȧk7 vskc9hÖ/oםc{4~=aqh/j- |W%Ӏh/r mgms{aO'Q#7qmջ䳀|0{i@xTmv/BpL\5X27[yWO00 (xҀhL0@7K J! x)YM-|/|vU3Jvi@Ǩi?>+h&G#KH! c\c5Ji1Ww+^mɹڋm|{Iɡ4€O5NL^weT~NCz.ytVж\zA^O!DјGJ N! 45zZl9n4`e'~4hˢ2csSkF-oiȔ7o,zaG ~kP-@87>Sn=0 ~?}Uq֏ۊGMek‚Z _JefF)56J^}c +G}ww骝;N\@ ȈpR5I^*7;c}[85Q)'/4s]Ɲl9+m͚k#@?zX80ymg]wo32{sd%83,M^;qSh1]4C +sh +kX8ȿР#: M%n +4~`y&,H^qWы:~zj|)uΆaB"kUg72gI}U tAbX8/L^䝸5߅kL/wuVaEk|fNU}56augZX8(y7E+W_.wsB5`}ɋ=\}ug}iTxX8aq5k/s٭@#,'&/i\k~VΧ&/rT\cXzOvov+zN ?&/r\ccᜎjv+z + &/Y\cNzapN7h=6ɋ|- pN_nv+zM^Wqy5VS9]V$/J\cRzpNhv+zn uy#1-Β4nZa|W"k"ǥYrvNov+zLe{O"Yr V<$/rH(Zz%? +ɋl<^g]y٭@9>,H^dPd:K΂f4^w~(Bz%w{hgH[smX8EuQ1nZan"CB,vf-灰nȤP{u0%>Z +iy=-Β[9<^&O\cf~[K|?6h9 +Uj[Kl|pC{ܪyQG'([b#[37B0ci{8Iy~BgMiTI@& nv+zEq^}5.^Z:blf-鱣n騷y< h,l;9 +endstream endobj 490 0 obj [/Indexed /DeviceRGB 255 ( DDD:::쉉RRR\(\(\(nnn000~~~\\\\\\***\)\)\)tttfffIIIAAA!!!###iiiqqq;;;ZZZJJJeeeooo 迿\n\n\nzzzXXXUUUԷ jjjCCCsssƣ&&&kkk^^^>>>hhhyyyTTT 222GGG---PPP[[[444666===777...EEEppp___rrrSSSύccc"""mmm333xxx<<> +stream +xyU}MNIHHpI%pD*d_o~Gp +k/vfs/[ =XYT갔0|]K=& .9xD*Q_1:NG_yUga\[Et]&a;D q"kFѬ +cWMW>=n(r97p@&|)#erk55+MJ~R {6Α'y׬*g\ȁEpw*b@}M +@g<`S~["Į׾mE‹۽$N.̢=@.9Q}WUSûnnV6~oK3O5Y07U[Ms.+&]#(mvcMo1ؔo9Ų%ܶ z7|{ 2onaՀ֥ 3vFyum;L;-:{7?l̓HIm4-ȼ~W7Z +>\Kf ,f/}0IEfby[Mb9k-C/|p1 +\ں9sl8$s39&֗rZsȁ"$e1`n;?\! +DsbY9Ǟ2i۲4M~W}Η|uB W3kI->q'Zn7TzWc j=';v;9`UHhOVۘ qohD]7hyfmb\MH'`S'@ݢtI_zUoեo߯L-͜2{αιwRz w6ϙhzأ+B M\˼01':? 88렡αyDQ|{`5o:Հ|Ίs \6j#ˇ| 3yZ#ձaS _xYmsYVSC\)jVŀaz9]b황+`k=>7@^,twxجZ;Q=߅! ; Smr7n{xMwn2T+O̝+=<4·uy<]7S[)>m>&܋7jjŀԳkHUZ;y\=%v[?3ګw(}|at 7_k;7lFÝf{wfcܩ-9 yNvэdo]$@%UݼOq0iEfoW ĢzrmF6meă4mvH .옶N=nfZ Ig 5}f n062ϪQ(p=f  qHGº n]M3QlмufRƬ-.6wGlyv&t{C4:ͼCR]eTb+OG -Ň ny$tНχL/H`jd+ =n[0`axӳhQ Y2`iR6k9j ?9I8m%`AWju;>$ܯ#r[gl^:x^shDȼL? Oz>>ŀM2:)2YꩯOeC4bru]MIәToyaȂb1 5 a.Cܦ]epFnz-#;;gVaOrJuT(Xm1{vvⴕxakVY6`D롴Lއ,4XQp͠pnNlb4|dޖc]$Y mf9s'FBa=cڶ(=W@ɜŀF\yiAPgVyhfЩ*ܶ3SNʭc4 :ǯ9WXwcݶδĺ" ^\_)+[kRSGbڌ +qӘ9J/T<.bI6]hc1FU+vۚT^Fڦ)h+Nw|VʤC57ozļu`,ߗU~_KԧIgMnn+he1tLzM]1`&fVT|f5P0gϧZלcRGh4E܍\b>h1ڛƿ[@RU-6Û0y6 #zS\ךo>P+˹ŴD?rX_g.b9y֧ۘ7f@mS'& '¬l\ ޗ(K [Br,m)/GaybwixL둻t;D2Wn/fWi~@1n[v1#Es1ǪЫj$rpbٮ換!qǸcC'Ol1aX e#V֩e6 rY Q H}Y"|G遝L=fwY(/kVŀ5Dx+Ly>8M:)Aڍ3]g|. n1: wc g|bC 4C-=%4,gK_豏hBKogݿbj5,[5ۚ-zC @53kn%"Te{xK7)= ~MI~Io{@+C7ܩg1v Z4Й.3@bzhQ,Ff@A]^M^VY@jʩQ X8M ?E޿{3[QB>Si:"Pu(VB z47u!MĻ`gT?Q&_nJ 66Ŗ6ŀoEzЫz͸' m"})^FkW&v wK{bԗG 穷t!;:<*u{x+-R B&k(5fW,Wz-d܎R(:Pq`5TN"X{MDOUx`0Zօ'Bwt1U9z<B_̽Lݎi-M(ЁJ/3 b@(u6p idq{BUxz 3 + H7q? ^f`X=ʁHCZ~`$*%q yxw-lv7̝Ai76_?(-6ԭ?&,LrznMHŒrһt%N{ =j olB0$",1"B&Je6]O0̳|r # +*},kC b*"Ϻ'b +oQ7-P'rxexp2X+uC.b'Te D:UVƈR7utϻw]eR7M叼[WaAϵW`,r=k/) cAݝ&ZK1U,we""R*s}rAR ۴AW K(`%0 yJD*=NĴ)`/z?Sc/z% +ߙ|VLj I-8@#Bڼ_J>/HD9:0|wDvXxLu֭ F|O}"eQl;|;çMvkt)븯jvAؼͲ\JQPZ +ӴCXW$bvIVQEu-G{xC"m_myuͼsf }>2Z"+92&]|m'vitQ=ͤNh\,ְ,b!\7Woiw5DOڝdTo/4x;F%sx@1}j(&;\Zuqa +m46pڗNsH Tq£z^}cӄEqdKM>rG7kqogۋ~ю`7َ@rݼ\R4M)~c9iɵ5^p/<\Db9hx+ !]-ZHKus_uz=y^: %wN;5"xPODWQ)E@,5Oݽf;/{EDޟ*=c-t}1H_?1f5V(kUOm"kDu+=[?D<=`D'_rQ~px3qt@1fqv~mރ۱亜M:Xm/#b"T"[1οT+Z^2E`㢆;{.}9PBPO7F/ h2;NEPD_6zE亾b_ +!]j㈾ ~"yj̀5yҒh_EzU/Tz:JM~͹|}dwNo 8mVNk̊~g{/#YODgXِ(:/CVW:"jPjr}QO8<8F .kڨ\ET hmyQu1 kW/~`mWT9+L=#~KHQ"@N00Ux֓O_lŌ`%x39U~r|Z񋓾^nGMD5wW|7V_^>3JDȶM2 >lM^-y'igR>Ƥ-ec6*WD~)݃IU xLo(Vb7ꨬեN)k=ḈZX0+T] X ^ik": +dm&ИsM7JBjG"wѸE j0v[TxP6]# Q, Ć7~f"(<۴cf=%QMiemmB] *G|w: +B~fGÃ1_=H.Q-~ ?;"p|kb*dtSV"-5ͬZ0Aj;@|Xh-S=ւIo's!j<&¸-WW$ub_@"\ >9%wPLڶYj^-Sc]`Vm}F] S~mEK( +l +&Ď*;/+KQw]]g <ԿeC1~~ x3+'~SRԚ-dPQ1R 6TmNFb@/].QGQW+3s-;Q@N˸ƞLZ^/|Z(Y="@RȉvA.8Wgǜ/ڈ\oEG(`gԴ0MdQ Qa猬+ab9/EOG"/TG$~M[HprE+gn4oiUDZEPHDoZMD=aujSm٠Vb"OV*: +:ڰ&(n #CD_Ĕ|5(/=iF;qҗ$XjS4ol&e'<";\5;ҥ+2fb"_THR@.皠sN]v'Hk!~VGQ \Vn]*f%,4Xb yH EԛP0g2v6Q'\\zI0 m/|z("6VO ;k*R>T_njna`VлK~"K$ͽcb6joHy?Z*NbΗCpͦsۈ K=ĵ~-v +9E쪢ϭ=Q 8;4ށyM.ՎuoH qʏڨEDae0n%CEߡGEvoz7^|vY_C66ȶqbRv_ B^ƷL٦hO;_x7 EZ1hLhY 8_bmP֗Cs-,ŀEׅ_+kH\OGnvx^fʺlkH'/$rWÐH[ygm+"Hq; +(utZ@߻Y p+vͳOU)^ZVY,nL؇"FY"@Hr-UEzO @4]; f DbmP}1GB'L[SnCy%g^[T_ %Rrr$o VE 6"N УkEK*&:Z bYN)o6l%f I$6hز(u2jv`\*c'b^՚b@*G9ID%3?ĄSX"TvxN? /dS?d-x4W)hozCt@.'*c䪃{RU岜5ٮ}&F:?ʋZ;lB s3"E~$rXk\upyQ &",/D%`#媃Dl[C)zWaercC@GʘE̾ETm$Rz"ۿU41GzU@Ta:ʡ[ +@z!?+;+R$V~9E~(g^vn|DnнuM&S}-\Ν-דRa'EߊC+"PM>Ll[ޕmpN-.j1M>q|-?H nJy봇'.[7>\\)`e̯&3;MT J{* ڻ+Տ9Sb~@$:ɦ>IRbC]7!? @nGB,A2 ,:HsY:|:Μc*[UgS ?V{Ynw@~& 9^SYfb L8\**Xh3ivqN]ȫ1b zs\`u1)$`_]^]#­a2G&wKUb^R 7&YU~z;?RJXp&Ӿ"F/|Kj=@`SM=Zlr +( oLxa|ӧjWM A$,74z jIc +MC- qOUd-߆vi|8$SGiK8X//ևZ~5_=ݶ̞CX=TmV +Zy=F3g>KwtێL?n *ª[:q[x}悓ݶ-g(H3Ȱ'Mg6cl> ICzgO@ ,υk6l{#Tƚ _wga!6]j@4qqnUz:+SӬ. `%pH}=WpV] s9!k.=,niϲ`1  +舍6tcO5}_ idcmY9jkr%~;vY?6i2O\`e Bvn:myK + ZlK 6#stmk5n Ni7H[Չ` R<̝gN68W:ռb@şLޯ5r P [tմorLjmdzSpAՋ'4s`otUrW`>%}P !2E;"c]6칱])0ŀvs݈ၷHq]UJL~ +oʝ/U nOνݚzr@DUrnBȴi'Q_ h7m` ml̃,#iRR:f~Pa4kj|j1 a`dc/5bVs-W i%p4anv''<`j1!`%_2 +endstream endobj 470 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4109 /Length 50354 >> +stream +xwXbDADE,;v%KlػF{]TH, j=bW4OgeY-C:wfLc>36?~@~ǶmJ۶mkӦUwM:5$$Çu/Bԋ-j7oLiҥK_p-*66v׿N:e`lٲuر~vvvk:wekmmmškoooɖ,YR@f͚Yo:{K[#F[Oi Μ9S_:ydJp1BYf=ruu|?:ݗkCNa%&&{/_7n|800P^9N:mڴI^?zP P r=x`۷mvĈe˖bcֲgϞ-Z$%%9RfMsOwԩGիWϟ܍AC?uVj ݛ;wU^z\)TPǎ{iٳ]v]vY^=݊w)SLbZn}vy}޽M4|?:rԂZ ,0aB|||r%O<_u߾}=<<ۛuM2eܸqڏ +w9zʕ+O}888/_\r2e8:: '<<'Ç6mڴk. }Ӈ4jH,SE@ܚ4i~݊WϞ=\rY+X9jANPK.u+UԧO/2>xۄ>~dɒӦM=z_U[(Uo%Jo7npwwϜ917o300Ly{kW_}5dȐ… [FD~]6mq#"P 'StttժU .ܡC;Z#uqO#G۷o4ٳg]hQOĂ,Y"GϞ=vbv`}9@>~xĉ*Uhj]k7 ..]4 P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '(GNZ#'@- ʑ P rr9@9rԂ9jANP '?qttv#`J/^Ȟ=zzJ*Y &11]@bbb޾}[fMk7׺uӥK1c.\@ P rLcǎ?m=̙-[6kwaTZm۶zʔ){;vڴi8qb:uE7nҥXpppڵ1c)b.9 WWׯ_'XbEݺuUFu-wwC#F-Z[n忚4ieҺu۷'/;88gٳgnWPrԂZzu=t+666:u?~ܹUFsڵB +=[nJ/_ӧ}M4v/Fkז(QbҤI*`=ҭ'O*UٳgڊkHHH{rԂӪQFTT?ŋoɴ?~,~/]Kt+ŋ۴is̙3׬Yw˗/O^\YUf~>}wi ۺukv$-ZZ*OX?:uڴimرcǹs͛2]޽{;k,OOO xԩڵk;::۷J*&xݻw_f^bJ dN^۾}5={4o6;w^lY,Y,Ӓ9>|Xbw Ԯ]ȑ#zWɓg׮]UVU8k׮]n]\\\{xxDEE,XäI&L``WEJ.}%T\yşeIƍ;88Gysȡd[n -^888XR߶m1wܡC]uM >QQQzϋҥK)t۷o]ecc3{lsHLL,X'O8РAtݻʕKArԂ5jƌbPPжm,s]/_tss{޵sٰaK*u9kժUXXU/^xoӦͿ/I9>},[L,(P`޼yɴ_~%**ɓ޽K\ .X`|\\\}%K8*U$*=bŊ^zI9smf:tٳ-O~+ }'ODOy5kׯ_/VX_|!$ʕ * ޽{zF2ed-ZԿ)rڵ7S|\l/ܶm^b={8;;+C7o͑0`… 6l(vXNHH|ӧO:uĉK.%%%?8>}}}}||J~RD,Ys[~}׮]%EkIt]9RfM >'OTe^obZzo8k76$@CNZ2f͚ݻW^o޼yXX؟{5k;~y[ɓǒVN6m$)zyy]pA_}Ն $Es 6gJ̙[n{9+^O%Lۭm޼CUrqqq +л*<(/8sLrnݺ lPFٳgWP!- *$)SsMHFT c!'@- Qxxxƍ6lجY,ٌې-[̙3byĈɍu}ժUдv~zIRJg͚519?6idѢEL4z萐/T={v@o޺ukI*9;v|zW 0 44ۅ A^W ?8٣wUQݢEt.yy8l%1{e˖!_ET !'@- QRR[M~e:񣿿[n;w-hccsի[Cѣի%ESz|rIј+W|}}sȱtۧ:'OwS%1xL{m֬hQf̘w/`~-Ӕ|ޗ5w`E]]rΜ9ܨQt)BY +d9 3fʛ77,sG]Rzzw<[[&{GGG thrzo?~. 0`…19իW#ygϞϒ%L2n8I1k֬...iСC 4UѣGuwwwXt~z%4.]TtiyJ*)}+))_~b9KŽy&y-}W^=y6D2rԂA>}B +)8p-ІAt"o~~~z%/3fԩh"IQ~ʕ˔)qƼy?!C͛')ٳU}||~_̙3G))~g/^0#GԮ][R|N !!!W\UÆ 5k%Q͛zrK.۷iӦ:wZnw^#'R'\; Ν;tPIVTTT5$Ebbb*Wwՙ3g-ٌBbUHy=M9;{oo߾ + +2[, +9jANȸ>{^7kUV׳drʕ… WݻYfŋ?{l̙ڤ >|ْ$' XW^ba̙ 2foVTsϞ=sqqIJJjܸڵk%ŋK?^zuI9ѣGJx%;QÇnnnzrr=Ipuuȗ/_^Α#`ooodc{iWd ~@@i+22^z)]lY}f&M]5yo6/V\9&&&yo߾/6Kf3f̘ӧK@BBB2e^믿{$7|u}ג- hYJI9qΝ˗oNLٳg׍ lڴSNb- z}Q~w۷o===E 0a84jԨܨQ5kd]  P r@VdI%zŋڷo_ƍ vGI^Α#Ǚ3g<==MۡL4i„ ޜ,xyyEDDxxx4ԩSb0xm|rνbŊVZW嚜ɓ'>-NI&{X_ʕK^7>'лw˗KK[ hF1k,P@Ps\?=z'U9n`9 Cڵ5ӧOZn?:±cj֬X|L2K6mرc%ŔrӭϟСCK6~p9{6kL^wqqHim۶}嗒"9ӧOWPARpN@ɰ|2{9___;LąϻwNxbGG^ti;wgF{Yş?dɒ%22J*J5KWR4֯_ߵkWy}ܸq&Mҭ̞={ tqF݊ӧ3eʔ/#GԮ][R$'uRJI yƌ8_]f޽5kּy|d;;$IȜ,HN˳&! &H;w^nި1^| +=<<72T 'dtk׮֭Xȕ+X + +2D/^}|ժUw1Ν;**dɒVXѫW/IpN͛7 bnooy;gΜaÆI6K)'ի>)&&lٲ +GQHN@ի09!C,YDF~E .HSN3fL:0ޝ;wjժ%~iddɣ|hLNע>h+իW?vi甛-92$$$}c.Zz=eP^d\9 $$Ç#Gtss3,_hޢE;vo̤5k?~\~ر"EoLs[zu=$E9_~K,׿-[h?Λ7oȐ!mR _S0cƌ#FlV*)к~z%$|X u+ {8p $E}5j(]#*I}ҤIƍKPrԂc+N8!vHN@/V6$ȨwVԭ[7"""MnH ɣٳghLN`ҤI&L~tuu{@wb*THͬYi}?9jAN@޿_|/J궶W8nj#)*TÞ +79S5Fsg֪U+y944tРA ݻᑔ1Gϟ/\QA\HN@+66hѢbZs@2c-[ܹsqN:?{CLȝ;hLN@\dt3Ǐ8qIZ2@;qn ,߿jڴ}t+47oJ9;viovOLLU%u77RJ)„6nإKIјqL".\8`zsSN 6tوԩS+V hݾ}[QISN@oH +y~lĿFΞ&)0*SI1՜@BBB\?:88V ,BժU+n޼YxqmG + + + 3X P r QFbb^f͟~$ܾ}O~zΜ9w)2,&i&cݍ 8q" @^[E*-m۶[n5'OPHN@޽{3]Sڠ\rr咯Uݺu%%Jba*K.{ Lpuu}jN@rif۶m +;1wJ +x 4(44TQ\袢ՑE=z~W=͓Wo4~qdͬɝCS(X/[kw J +(`¹/899[]v&K͛7wAR4&'(nϞ=->r~ɒ%|Qطo_ӦM ,x…ܹsW9s\rb 7n9))mllri߾}ۤ:tܹso2LW8I1՜y  sk$z:t^|=\]]cbbDEIW'NXp*:::*@NZfߚG4OkyG*jkj4 gϞV~ի|޽{/_\of&4n*-:v?VBCC tҾ}J% 4n8<<\֫W/M?A8wr?~8p… H:EFFɓGu-kd@=z$)hժUXXX򲯯K@Zʕ+%T%Z˙3g>rHŊ$wyW\LF +9jANKRfqꝚ'4?g׼v5[%a׮]-ZW^ݭ[7sݻjժ>}Zzm޼YrSȜڵkut^^^.]ʔ)lٲ>}H% +V,I\f5A͛7/~~~b h>Eo +XP|e˚$$Ǐ+T(ږ)SfM4 )^sbG˃43wܡCV:wa#./Y7nmٲ嫯z}Ǯ]YFɘ0-rԂ0Dͦp +xUfL7_1h˗믿$o޻wVPӧz,Xpݺuu5_ + kժhdNɓ' +JСCXW^oIrÇ={ӳO>30ŋ˔)#)fĜG\\\*W\JOOO%cF֬Y׮]dXJ(QtQF͘1C͛7շoߥKcƌ:u swwh8'puI^Ξ=8JvZji?VXYd1Ο?_I3b'đ`%´ P rĎԜaamm5݃4i4yM@@s$͛ٙu_~N:޽ӻfРAӦMKܹe˖9SN6m &M7ndʕ+IQ7' vcbb0˗K*%)fМST`߾}%KTк9smSRhXy]T>~֭o./]w7pݓ VZճg ? +$ǖUw9rMR,ԪU+""B!&O<~xƎ;eʔt "'@- yV3hfNn[ʝ]tm=s֭˗?rH֬Y-mڵkg6H//ŋ7hH޽;((HR4>'ɓիWPaƍWѣE2rO\+)fܜY%'p̙r]&OC5}5nX)Rݻ@׮]ׯ_|y[ٴiSϞ=۴idɒ4]n޼Yx$wwӧO;;;q]MN11[n6l0r{{{ƍw]+q"##ի')*'_`dN Ma͚5]to|mOOOIѬ9t}s 4VuiXbLLY.\PlYy]\L٣ppcx{{߼ySR4;ݻw7 BQq/_///WWWggTK9jANG;jzih,4citdrL7kJe566Șn޼YbEuݲeK<}]M0Kw ~M5S異]f>4"L.YK-[֧OjժEEE%/>SLرEJ&С͛hѢJF6%r7oo۶MiAAA +1~m߾}+Vv/HrԂHCvzfTWZS7a}L ɣf8p`[4mT49s$u{IuK;;+W~teYN??z)?pN@UY~]w?SZ3gN//2E,X Zը2'Q[,R_VZڏK>OΝ;x`%UZ5::ZRttt|U"(YիW%E9ĉժUKJJ_|Ŷmđ͛6lX̙B4߷o 6,k֬={޽{RܰTsOQ+W'>]l͛ڵKIrz^"E=[E1Aa}vggta \|YlРt7?wX^p|"7& +:ɚ !_o>g~HٳgsΕծ]6lcSN000S^ ~sժU-mc}6$|" + 9 ̙3%ѭ[*W^ٳ(~v1cn;v`555+ǥiժURR(}N?h%oޠDiXϏQ׷u(})..k޳gS 'er %;H@MKagC9d1I"5  |eذao/^ܬY3~ݻ'$$p. + +>}n/0~s{G)~~ݻgjjZ{ݺuh޼kP{͛7%{-44z4Cie(AT׮]wo x zN$s$^r-3n,Lptttpp:u2J[ܾ}siÆ wY#~s޳g4kL<9((H3\~E 0??3 +6nܸ9ݺu'iik?;yj+Wbԇm69O6m\(ʔ,X@ςժUv횑#C2e9'1oBsH.EM s Ȕxً/Zj\xO>^\RR%eV!syyy5jԐxy:uӋo޼ dŐܲ%ǣ`޼ych(#Yhii p7nڵk mmk׮5iDtݻw }} 9z ?~ɍ@fffEWWם;wJ?¾}(圀%W|@V @YHgRi4$A.$qL-|6‘)'xڌ$p_arG9ŋ_Я_P5/x L8qʕWstt<~mK. W͛v*kbqqqgddT\Ysrru,YҴi^zAstнqs3u`\psDX뽼QgϞ5kAg[bEYGo9o}URiݺ5Y]]]>|o߾bY T^Kg:Aك T&܋GZ*xv^ψ +@N7gH*oKÉ*z g std555iqܹ_,AEDD uVlN8ѣGF:u갯D駟Μ9#ZIOOo۶ӧOkүcǎ{Ն(jiiH3O> ̛7o^BCCcӦM/FgwLLLk__+VHɓ'/^QYdlll.^(ʝb0::VϞ=^,*V9;+foc$yso`90NNN ,PƝ}||BBB޽{۷O[[r%'ʸ]ΣG"##9[[ے,8~uu+W?^6n(~IM`cŊu,YBaUuEsuAd,,,_.gg~<zhUZ4x]v ":w(圀=T2rPV 'RH*3dhr6זd8["LNӞ=b^x1[/bޥKcǎUTֲR<'ڵkY8a„UVmݺݝ>fgÆ ^^^-M6w\1sXf ;KPz/_J.>|vT a555{SNvM*r>AMM---XZjyyy:=Ǝ+|Ӿ}K.1rۢ*UxBKKĶ.^hcc(SrMGϞ=eutt?Pf!'er -#{՗|6*?\MA@H }vɛ7o +~>}RrAcǎ]~լO8QJeAz/_/Vttt߿ollLwc.]={s(r._… KҥKFݻwOp200`U =z4{Yf͚EbE~z-JرcС|ѣNNNZXX(2%9p>@A(FGGڊ|UB +_|Q,@* @YHn,9Q7KR >B.$Kik,r;w|{ܲe4+7kRI]I ǏB_lܸ G:w9ׯ>)!6m9r$3f8кuD)6Cfffʕum6bFQȜ"˫TRvvvۡCرCN0aՌbժU_zdBO˗/3"zYQdҥKgM*YT9-d:EWvVM !5܋N@PJ $''ݻ :wȰ >|I&111FFFʛx +Μ9cgg'ZKII1117lHǎϝ;Wڀ{4h"ׯ7nܘhĉ+Wd<@sTسgE!se|O>Bf͚ݼyQ߿}xL8 ̜9sΜ9b˖-^*S.\H8!LFQ]]U2rPV 'ҺLloJM|:/9n-Ǣ&uU<@@?~WZjuUh|Wtww766622*SGGGO@߾}rH3zuQ/M Bw(dNҥKVVVϸw~\\<Ą}9Ν;ˬdҮ]FQU|}} +*dee?KTlll.]Ess7n7 ݹšQTSS+((P|@V @TTTfffŊw깔! IwK+鑇ljwxx^JMn&{N`ԩZZZݺu2dH^˗{mĉϟHOG7nWR166NII/~:fƧڷoE1þx,##sibbb֭~8pQ~xxĭDWR]WmNĉ=z`iN ""b%o嗥Kƍ===E zTZYɤm۶hd p/=LMMKڵ+XsTAA4CN@hoH;vg ݻwU=29R{Ѵd@CԧKw|Kx ܾ};::zժUSxvRu떣ĬSvm۶/U9Er[St^vڵƍc|:..NK, \rJFӌرcӓ޻w 9* p~YB.^ؾ}{^OOO722*y[~T׎w-**Q?炗)ɪM6W\a ,X ((]ܹsi:s挝Xsyyyd۶mD_#'a܋t*H:BLcf2={Q!RvE''ׯ_Y9,,L%^i:[(uN`۶m^^^kKTTiҥBJ&r,XPVKK+!!E넄0>Hx 3f ޼yk׮1͚5y&qF8yy \t};!sΝر#_-ݷnZvʔ)>lG/%%Ԕ)Ʉ=\7o̮>|ɩO8qGb dggkkk ?r¡%r lN\ =|K]:c?Kk +ZJ@PNsӦM[puڷoްaCf%r߿W((j*__l۶m8[vvv N:2ϟ?g߅]ׯ_W^]WmN >>ʊQ2'@<rۺu{[SSӔVӧϑ#GE^ ߲edFQӧuzvڵO;vwof*V(|@V ̙3s?~, 'ȦX r/US#[g{#7#q.x(5@Sso޼|o߾b yP ' #G`@NdpF + +jjs;!Bps_2^Vܾ};SYMw5jD,~ye&M(jʕ+֭[}׉vϟתUKFl/_Y&ڜomڴa ~b6k͛%oGi&j7nd޽KE#͛'3j(wN7f544!WN'Oj׮-|@V (WFFɓاr uu9W/^6'~B9h[[[Ѓgɒ%%o7ٳJ*1VԩSll,9u֍;]733u떘۷ob +?rB*>c `@Ni;y$nd4敋2FO%[g;7FFGy |% $$Zh}-[ +9+ɚxiIRno||| +8W^xɓEKKˤ$)Ǹ*wŊuΞ=˾xARvaKOO722bUv9BҵkW2Dyfwww +Vs)0 rڶmȮг@w9tPFY!'3z_z6lx捘5`@N䔜BHvujU%}ȐDMMo3ԵdaRP no뉦<-ʧrx,=mڴ@MMM:~Q__Đ5'0jԨM6IHHh֬Yi/ZFy׮]rzt7o{n5ݻwРAbO<)e|r9ӧOE׬YSR:\pAtqƭ]A]]ϟW\ܜ}rǎݻ7{yy +@||<~> +Oп$%%ѿu|R"'oi2xEy6/}$(a͆&▢@I ߿ݻwKmllyGDDtЁa9ɔuV- 3 E ׯK?Äsrr]]]+ZחQ8q˥scccv]9۷ow9(;;;~ 4h޽zx!>}dbbwLdŹ"## EW]]])IKKz){Ǐk׮-ǿ rʓu)v=&&sdT훜,Zy}vvǏW:G&,j*EQn֤sRL%1Y@%&bZW |rNGf\\pj=fO<~)?&&y<&SNůcϟ?ڴib&Mܹ#$\'Υ>>>!!! F%SQϞ=311aUHIIiڴ)(dN@勷o߾VFe˖k׮7nSѶDVfff#VZуq-255mԨQÆ Xɓiii-Zn(~ .2e[N* 19XYY;&r "ӥJ&5iR +G䒏tr1$ FHdl"|e6'2Kf͚5jŋ7o,~KǏ533㷋(shYXX|ܹ3f`4hV0Νرc>}& ܻwԔQ2'pݻ(;;VZ߿/TPÇFFFM4iѢERR94m4%%Q, -bOosrrk1-6n!~'sWÇ;99z rRAN@ v$sHnp5q:%e0'7| *f/_qhN:ϟWIw}W|J*ѯ}c{ٳgϚ5Q466~B'طc;zrIò 6jԈQ2'p {1b۶moݺݝΝ;]]]y4i¾322.&&n?}%4O&&&ڤI-[(VRE+'IbFFr_ӟ޽{РA BBN@* 9GL"qFWd,R$rvڜ9s۷8/ 4i]>|ؽ{wmϝ; I_t)}~С޽{K3ԩSjժzlVVVʕ֭[ѣG :ڜݨ3B?{/zwURJΝ;k׮4dejjz=F122[nůqr5kdff1իǍ'qcǮ[Q477g$!ED>ǡlٲeĈ BBN7?~|ŋ7m+q}޼|Kf8%Ю@!~DMM]<^r ,:ujaa!}(Lrss-Z4o޼/_0ɒ%W\bbb=K[ٳUTή4W߸qUVttH98]4F +LC!Fq{UdǏs>A9Χ8vXϞ=yUPP@6]vft_~9ȡqgEsŞ={~رcLL5Oc e>'v1c7& 9?Ǐ#'li2i%I{ۓU)ͪm xyy_&Ӯ];9qU+WlrժU:ucXi9sEfJ.༼:\|>|8d1|}}cutt>,innnʕ+}||D9gϞ0B9"$dh"|"U{ȫw h՜L  S$'͛};w8|7;iV^XTfٳg{xxeVJ6m˓f]?~\GG H2888xԩE|̘1:{WmԨQt2/_/.RÇ 4`UHOO722b Sɉ^oܸcƌTаa0(zGNO_}VW^t}+lذpvÇt?7aQw?uꔂ#߽{I&jsO<[.(dN}W1z؈YWRw93ѣG@AAXWZUV->g) sҠ~ʋܐP"ooח9@8yD^#Y$I*I}cҤ.iZO( lٲeѹo駓'OJ+Wfggֵj֬)ڵk...\6rz#鉹2xݮ+WcAݻ]-/1[3Pp۷owjs!spvvW ++xEfffׯ_1WǏE9jϞ=fMe$|Nm۶MWW" <oŊ-EN9rG@aaJ*fffqqqR^t^PPsɓ' LLLdل=ӧO422 + ٳR#]vΜL0СC*ZQWW #߸q‚]WmN 55QF9e_G2ǎS :uꤥ1sܧ?8w˖-8Q ( ?.\077WF/rJL(w dgg1BUV7n,M'&%%kժ+t'O f~_PٳR={<~8:u(8x^^˗/EVVV.]RpdPPmN޽{9z 0^>|ةS'Oiii%''s>Aj׮SFQbN5jmmm[n LȜ#$P,WH 9%BN@& ;R={֫WĒ_-̙sIb6m|}} u}FJƍw. ?}4~=}euĉ=z0/Wpdի[fUs玙(dN`ǎCֹsV_>=&yy _JEire`9Booﰰ0f͚?^GĀ!'D 9rG@RRRϞ=J*jjj;v2d9sDFFT  yDDDЎ߿ۊ+]W/1&&]y߿E+ڏ=R򄄄vڱ ܺuܜQ2'iӦ#G˗]t['~mÉn/Qzz:DbB:ucSrJL(w$;ʸ:((hbtҜ9sN:%s+Viedd7n׮]466ްa+mll.^Ȯ'%%YZZ*22ݱFFF٢aÆm߾]aK[YYo߾U͛3B֮];f~~K.7nܐf=z9rDCC999xxxlݺUjۻw:_}A> (r2ANX|y@@@~~R;;.!vrr*~۴i~ 0B nۓ'Oįd\+۵k_|n =z4ÖСŋ5jB׮]c+ qĉVZ_mmm͘a谊V;uĮ?yv|uURRRVE!s .C9C9sQ9|۶mŏիի9KY\zuС7n9sƎ)8)5'`nn~֭mڴtuu]Ν;?c^.MTٳbtt4('Z0ܿaÆ|uUbb"2'@ӧ2>=08dٲe666IpVVWN *Y+[lqssSDP"ddW$}>5 IkK?edQd8g2[9x_{U֎5^h SQ|vEߣGqm|(6ҽ}3+Jv*kUȑ#ݫ{M!<^}ԿG9:9vYo O^ɺ!7nd^_xYrrrį9hРe˖ 311hܸ9p@oo-[) 9KٳgE+={}ޞ]OJJ䱑L㭬EMMMwww{EDDddd0&MZd#GFFC3Pjtҥa//҆5jԺuTDmmmv"ߜ5w#G|պuEEEE'߶m[#__9%BN@& |.&$5,!.sB]sdž&dфo#ݫΥ"9!!'D 9o 2i%q(??}OӺ +~[]Qǝdd;ml\[hgUWE;Ja"Ƚ͍l*6 Eب+/ߒ_V~^}ح=Y8q9%\tܑՆ&J_- w444LLL_ 3M\\7Ĭ>dȐs֭[Wj??~^$@N@Ң.]j߾hN:tCxL={dϟ?xbccE/ѣGٜoo-[p.'bŊEٝ;w|ri#[XX8qB:'믿ՋQdG_9%BN@& |k]!/EWױW;V#d7q]6:JHi>24$DKKb+˃n 2:aSɠ^<@L;b233kԨ!6jjj'N]0޾};mڴ0=E/ZRI~svv\jjj:|uIJ cGڵkǸdرc+ѣNNNztt-t;;;FQSSO>:uTVV8bĈ.իW}p{իG)iiim۶sڵcn|0H pׯ_W|@P"d7eF! LuuK ݱ*\G.:m3Y@49 OzNi5]Lp]qu2+[8U|w۟0$7ڱz2gp'+' u|o&~___1QD~~~XX،3޼y#f֭[/^k׮MLJNNN999ҥKEW8p={СCj|ʁxwݾ}QNZI;^|\Ph˗/_,--ܹ#ff͚JXd1ԩSgڴiec?~tvvRD$ + USS{葅t'_zjժ1`vѣzRFGiܯ_|1X[[ڵAOR>YYYz p^ٴiS (r2AN[@G&ۏKzټ <}N}$E %_wM䮭zbWr (r2AN[ො-y5}]2C~r%D/oHiIv /?1Y;9Y;a:1m>:/Rr wމc;mn׎o:H蘸N'II::ڐ#ˈ&eĤ:bbHΥ/'y&lM[W_gH4v^Yv[t|ݭQ?nyܫc-:&megdѱ`^u(c[-Ѿ%{w&x /$$ǧ , r>yٜ9slْ[:ժU7n\ʕ󽼼6o^ԱcӧO舻v9tPʒ%K&M$dǒG#G2B| >hРHO|΋1k֬ٳgK\I&|]$zurؽ{7nذU2P99 'P]OO2LHgz-yԱcɚ5|&[y t|,s>Ach(3F'ƍ#W+Q_U+ qݺ=&$$kMG-ڵE{L ȪUw{UbZÉlƹDʎm#;Җn㤡dICV$ ;WHy:D?݊tC);WHǷ8,_wGzz~E=2iHqG=&YLt E{UbGoLO呯甆.%Deee[nEiԨQ@ȹ)pK,-_pJ*í[{K{5555ݾ}e˖#F(xcX;w.ZhΜ9PMZ&SKÔ)SlllȖnddĮ@xxa?x@%CN@ rۥk'NdM߮~U<}JԋE#M٩cZO$:Z{u"?(_Ǯ]oI y2:*/mmٳRu|X);nE`(Ub;T";mc~u8e pXڽ]X]5EKѩKQ5Tձsgr~ݫw# /ة9^!cꢎGVAA#GD[Vլ+W{W-4h0bmmm!ƯEM2*Mcc㸸zzR͒ +=*Ν;Ծw֯_bУqĉ9###oooOOϚ5kTrr2=^ʨkhhЏϛ7O0#v…RܡC@GGG%iiiuauN`۶m Ǐd>r (r2AN{IZGK]AYK+ǸÅ z"'nț>SA,HREW͛F'J\HڷgtEʶ +uqԎqqZsdW1P,?;~M$mK,uIN2W#EOHR?S,+{\E;."+'c|<{GbŋXExH˗IvH IWuҶC'O%#4GӺRg[[n:U͛7W hԨQ@@sS۷{xxƶlRaÆ566]nܸӓ]Gݽ4- + d>^9kkk...쑛;`c k֬=`ק,,, :'111IKKS|@P"d@9潠nG.&vyV.'Y<f }7ZWzGF^ю[L27??l?KeCڎB.gi`wZЎ32uܴ%mI?G4b?ش$6c.|uƄ,b”$F;n@@@g;:Cb;Z6!Wwv #GKqd/^ooi;?%vlI-(mIM-w%K98пJ؎o;GݻSX,%A>c{X"m=im(DMjРXb|2Ȟ_'FJ' +ygoONͤud;ّ3bS06$++mG/k>(0 BIT;J^(#(EtD* DFGJw6Alٚ9ffvߙmA{QWV*)F/1,رcJvOovK.{ɓ'oѢEΝs:vURЈ3;H# +9rРA{5jTW̙3.O,Y׮]N2Gw`ɒ%m۶˝;ʕ+ (`'Nȓ'Y4s1S|O>ǜA Xœ@\U>=d*6N}<ҦX߯E\GtP|T4:VI{)NQqCu 3[>263wׯۊ\8"EKWkמ.<(X;qVraZũC*TJ~m8-U.y,lKu8T+J 'X)^R4Gn^j+_`xm$Z2؎-ŇmvYN'OKk]v;vÆ NS̕+Wv:t*U*ܑ#Gʖ-믿F,Y2Pv`ڴi={_>lذÇ{m7"yW'N蒀6m̘1;s9s愄\zeȐ!2eΞlݺI&ׯ;8&:۷o/_kO/s'OӧOs֭[>s1'` sqmz:2_dZ_cƄ_|5HZ=XZV0@G_KY8'D/3\X[[+;٦/Ym%u?-ҋ/Z+#Vlޣ=~z vTNWݛ/^Pmxܡj\1$D~iU|9W7Tmm 6/b_ шᗶ}J&{hn0csڵjq}zٳwҥ}>_ٽ{3_~M A&MFO{yN8Qn]1JҤI */_ȑj믿?"8='`<{#B޽{ &.<9KhN5oa_2W_πHܻbxYdyĭ;?p{W-Z5jsYdYZq=cx+>O>} –^lbq=:8M~%ʔIV-*We썵٫gYbqO/?u-}^;FxRڕ-o2_780k֬e˖9… 7k֬y3fիeʔ9vXď ǏׯW^ye„ ^ޙ:v8gΜ +*t=(('n?~|СW~D5lp .E~ݼysԛ%OQFƫTRɒ%s:w~y2d>_nܸ"E +|99eeakB_PO({uj%Iё;]̤KU;譏U,sJąbV|VA,zL46][IooSQo2.բqFÝ.Ӣ@ujZ8Fo|P`{H?[#MWSP{5f[v\}IC.Ҽz+Q +q8Xn1Ds_ۖ2G;*Wy8[G:k[ccf9aaa{Yx%KL@ s5*]wݽ{~6mx\lْ/_>̨Q6 0zho/#G5kVhhÅO>d׮]uhǎ-Zx WZUF wUwRJ/sƣ9c<Ǐgz꿉99p }y~qCjQH+Ji1) >Ti7 jOSdUU7h +~Ŏq]c=PZ +sEG(e%U7(S"n5-ǘC~Rjnֹu%O_WxߪI~_"sz,3K.Vguƛ#jbR?WFQi͞9.Iгc'RGJ䃯wÇ/Zhɒ%V'?sUVSNR}xߺukď +Zvm,Y|?С*U߿RJ%'M4gΜGgl^xN:5n8 ˗/k?1A6lp;w,W8='о}y/?p@"E?9bN☫7׬RƎ>O%UI JU95e53rF~QU?~qWae./Ie9W,ŴgU3-.SSbFhcQA'n3c\-J2hKj^w8^.S2*C 'g0\g J?A-\[\?(@7][\ Y'Q| &Ξ=nݺUV޽;ҪԩSWPr5k̜9Ovnݺm۶4hp@ҰaFS̍gKHHH}?w/[޽{KRHѲeN:,̩gln/F-7j3eSh)/UxZA:Zm(6Ƶ3Ye<*_Om8Qlkj9ep{,w,jhy>V/xA("WqjD1jtQQc{pԩG'MXbUVVZ…$H=ׯ׬Ys޽ +~5SHH4i2hР7n܆ "N5rʵlҸ7|;ᄋ/viҤI<{o>zt bgϞ*UO/_~}ڵ?9bN☾S5aJQk꫊xTU9Q)XUX;z+1{gp8W#ڙWf﷮sTT:"G6lpرBRJARJE|@ѢE/_3gN_tҥs6i҄# +ׯ۷oΝ;tqƅtҵi8z;_bNx?'p-[֌/] ^u䣻Y/≠`X54~0%Ԯ?''NZ3Ӭx?;xjGŗmZ P[-:@Ijz{Z/S {ՉD3rVX c4{JdxFA9t~꫞>)vg2G'gݬ8^'T'~_>Ni-v׊i1^Fx4娨K_d޽իWoڴo#?&Mp%K&O< sGɟ?G ^o"^qU&PQu4nN;+_uKX^ush9*Lwwр' +:M/^7֟W;*T;kL5D1Z'FL6}xALbv/k,y-VGLVm^Dbݳ_IfXY?rP̢?(b^ן;jD'};Uon&6]ThEQԏEg^Oz/ʕ+S^ aN \ǜ@,DeHcWۃ )bn?~ڷZTLh+3]PSEܱЊò-Qtjqk|T̫GeϯGdg^0]輸ۋ1Og8yV+Z,&ֽ*a&|Vw-gu氃çUǔR1BPIU4q_UmjqeTL;u5iʺLwo MZ^,QSmbAZLɭ5'R1&(rbNu R7ork6H[7d^iOͨ??)-'I{I~PMmJiTL߮(oo ?̺bIkn>~`f|>bLd/TtU ߧn-n^upUO\bV|^MyA >OH'>*fOTtZ_Z*mۋit񈙩l_qL)E_(ۋ9tbQ-:`5\xܼ/y/`N \ǜ@,xNMoN;Q_?3Ŝ@9 (}ڏ8' a^:k?z3yiN ve3yiN vfy?],fY%' DCbgWЬ*byiNa1[WZҬ=˜bNu RaaJT\oǩAռNv[0Tq?_ b, +it~W/iKń|\Ђ3ۊ}b݅3eҐF~tZqXOY*&{ouVr +3jh[7#bϐVۊQHJ#8љ-?DWgŢ *{-Ol\ٳw؉b&6Xd+kxfˏǘO)b!/*iؤʦK፼WllڴMLɫǕR1B8(xlReӤkYLUtU&7Y\(hMMɣN(-R؊SkDSjfMn9Q0Zs*(H攞3/r[&bNu ^͛EK-ʤx~O؊6 +92Z-Ra +i7?1V`@N͡uoT25)Ġ)n8Pef`xG%-@ۘǭqgTٲz]eb|kAM7˦/(C%AO 6.ܸNbvxk]LUW:Ż*XLc=GŵhJk[߸Jq|HWي3YQ>ˣl'9O'W-2YQvimwwA=kjɊE}'|j#5O)k.I6G 1YQymm?M>ogIe1nRŊE۾)暼O([3DkW^S_ߙ|z 2mdMeZ43ƫ#/Oi/UXu*NĞZfx3

A Xœ@v5_D-A4z}尝{mf^~]/9Q ֶ|Iʛ)>&J΅b$WAėܹuL9w_>R"cN ,aN ^bg3MyspۂjxMtVP4KWvh<w_ Mo#1V 4k^e\}ICN ЂњnV3$D#Go^8]4#~G v8HFX^N5XްX](FҬ. 4c3ߨSfxs1'` sqZKLV%7˕;[:rm|Aʬ@beI*fҥmXIooSQWT;%V_&`Ӊ̏1Ib1Wּyu*_tfP],ٟomȦ,rӻŲ +9]$yr]lG9GeV998nirg:#E;)Kw_ Vqzg1]<^ sz.o#YFכ+LמP|ZbqznuK?57*9jǸQ=jhO.nR걸xL9k^M{cQ4ɝuTgh||u:B~n~ĜA Xœ@am5zVʽ:OtP;/۽jÍ_Ґ5t\,ї;NjHUwGO9P; r}nJM\LX*FVr:#hBvX^S- +:M/pX5],F2Үz;z=jrs2bN⪊/k5%״U̽T^}ZUbWg[;ԱŤhcbSu,Nu(/[=~RuRi}eꞟܮ]İ`=%rKK]ܭv%MS\ZG{ԮD g1=3^JM92xs1'` sq՗'TM4 -%KӥKlVXuBj775rEM@ur4":^f\UR|^G?WTV!.Rl Ţ:1T`E<ۊ5蕪mߕ+^XcVrh bqޣvijUnPSE#Dh*nzDSb?bN.cjG+W@CݢQF|ZL2m[mMpBksQZbgMmMq7Ӗ(68 +j5>r|ҥݫWh`cWj@#}bgmj yuvgώ6Liv iS49z%}hzlq[B7bJ(6tƤZh[|܅Wmby= (6Ry +hƫ#mZ_|Qz˴Y,T؍|:c[T*ߊV998o*B.:Z*~1MM(ܥ&NTҤƯI4hBCo-H;h-=2}M5%E??[q„F}`Wt5vK>.vzHb=혯RFW|EgQ̋1޻EqDJtحƍ{P {pQi+=6Z4ͯ,3*qb}mףWU7GD̉ؽ$Ƀ,2a1Xی][[2b;Q:4{땷-"PY% `N ,aN nvн?dJwSsٲ{u5S9J3:ib;%SԬY*~2F28]Le+N])NshMN8͝,ֈŪhJHHWY/(} ƽwZhicGSqn(!W)U9Ťjl(մ-Em(5ýb9bN⼩kbԛV)j>E. rʜ|~}Eˁ>yitNj>wmLv>+v4b +y8Ժn8I-IK۝brŠ8[4ڨ7oՈWxFbE[1cF󍍢qK.#dFqbZA1I݈[Jlob.NTKxUGc̐|cZ̝ʕmb'6~ +͘<9K^\m%]_-<0q7dܱC75ErNcٛŏ=9 ŕ{5SgR'׫l%2D MV˪UQ0ۍЂ1*SHUlʐZCy}}JWݹ>,ήOzXqXq@JѝůNǘV;ÒF^=K-F7ׁg '\1czmѨ(~yB%wRW'M֝G9Vh4%K=|99xx-~UPY-Y3={I͚v{4H&_ҤU+o&,vLr#Cw<9KW&kr/7PL<;unZHYۊmkcM}U Dt дiJLGgOoOԪ~I+jbeȺq4h[ceL!ob&JZCߎtOj\T<|= s1'` s#j:Pg/zX5l??t;3yuwRx)g VjkVTʓ/hzk={?=f1Eشbx{m"1'xs0']S`<+ _OgW)ZJhz?\ݫ-SW^vƽhC*jL10kXd)^{5#_H_-XVi۽hw<9K~ޓlKFOeָ +k ,b +ǸW=PS{LV1FQ5A_E^[Ν_GoQ4^x1Q쥠kw}e{ TqѸW^/mblg"0'xs0'}_cNgE5 mm_8WslF/ng+n?c_16ٽ:zv-{mj/꧇Wܼv /VRz<99dnw[bԶ[PgWl\Eͫǁ-N{hQ4?b4GEs[TϜx_43?ƁbWG)Wvq Ĝ% h _g<(ڎbc{CEuՑM/P"n(Q>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4109 /Length 28332 >> +stream +xyV?n4PI<$!$MBB$Ot(!phQ8EDC!$J""C2%b~wvGkzֺ○׽wؑQhѢ͛x衇z.?~gMv駧%m]nQ͛?9]9ON~֮]{衇!' oќ@bžT7? <9>hԨҥKSE7hNSN>}z7rf \uUFJuFN“,YNHu{lѽ{NuFN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BN“BNH֭[ ..?lْFr@"ڷo_|kaÆ̝;wp@pSzQ`Tw;vH 9 *DlW_8p`n222R/䒬U<.*RHjbYbEfffjRל9sOY޽ʒ%KHN +9 -ZXpan5s%*U*]ySNޭTҰa.B҈#nwVZnhԨQ\sMQl.lРAx`"ZѬYŋK,yg^yuIIWp|M&M>䓝 65jԉ'wqGnumFB=ܡCz@m߾=x$^~2e 69dBNHDƍ.] +timڴIOOOrcpm۶z.]z)j?p<#m۶=zt𧺝T^>-Tw $ߪU4i?fW8∻KaWDr@"6llٲ\N([c=֦MDno.]{9묳~K.?~|1ݻ~UVMa?6m +nh`i;vw0 xH233S!'Du\2C + nֲe&+[nmܸ+r<ګWq-Z4].{'{7AeȐ!JJI?;wuTZ o޲e ԏ8∧zRJ)銈BNHD͚5W^_/UԂ ԩϷmvWG[h[c\uUwqGLt\s)~+"si~\r+VL򼯾qN;&7o!~9 *DTZ?jjܹIoXgyԩSwu^z?| +>9rd*W}z|cǎfJr3Dr@"*TaÆz~e~i*UR@t[^z7o ~Zxdv1bs9c={~5kx\N\w٭[fܹs2e ֿ0}W-[\re}!qiBzT{̙]tIf3Dr@"/?.,d4hдiϟ_jT#Gs9sϝ0aB٧~1+WcMN3?x433sC-VXrɛ۷nܸwٺu |m^ˮtAf:фp /b|N:˗/OOOOf3Drnm߾`9.J|?waÆr-F͚5ϟؼysժU\yg;t萴]cƌEN +9`VXQ^zVΝf~ݻ9眉' .\آE$L|q J\&M:scUT (wѷog +svkѢE͛7_zߒɋ/ةS-[ꄡCr-l)j.]ڸq\N/ʕ+~QSL9c) |e˖qIpφ 233R޼Gyd|cǎvի92~mްjժڵknjBLH EN +9`^|N8!~^veIk7hӦw}iwuR4կ_9:7lB"|N;-Y:w޽{?CI'~&MןyO<1q8$ET`"'DD 4T76o޼jժz5J*6>ov(P`ڴiݻwOBKtM7x9իĉϾh̙]v)$'xh۷Or?ylٲ 4'Pb?bĈҥKVZ ;([o}e̛7/nӦMނ +K/99 * DB*Yy4i{cǎrJ&ݕjժY&ةS?hر#|ZnSL~N \eʔqҾ}l&]-ߣ?ܻw}ׯ_\0ڵ{7( 5}"EvIN +9cǎϏ(QJ*rH +ʖ-[H%KNF_k֬yEIëXb^6]Z>~w}ItW=I&\)^ҥKW+V+U6K/j*@p7n㡠?Ol&5kTV-G9 /GLXvnEH9 * ʲ+Vh&Mԭ[rInbŊׯ)y?IdmٲD۶m;Tܚ:+{7==_-L˖-;f͚͛7x)lf^yU }W\qE|jժ~>flk׮={SSD/lӦҥKcʕ+ڵk/+rqKS H"?sL+;ROGyd?y޼yn'~XMv\wu)';${I'M>=###-W_mٲeL19SO=uƌÇx$ 6TP!xN?FY|7O˃lv*Px` +y~|>}/_Gǎ\$r@~%Jnj3hРMwe]lԫWKu;?~%\RxQF/mڴ d0`رcSn-Xc)&9'}>ZFI$_lܸ1 <䓧vZLu/uwedd+Vl-[6my''D,Z(~xscƌ5kx++V\fMBoQF~i]`tM Η^ziL16lXǹH 9 *͝;uիWW^=D{נATwO*Z/)xf͚ڵ̙3c[~} #~*VX|=w}Wt_uM74lذ|k1-gԩSMN<~5QGox㏟8qa_sr@T ׿ս{?XhAwQ| TR%ՍK,iڴiL19m۶-[vӦM1s9gҤI!mݺ5333`N`Μ9:tعRp?8x~cڴiٻ%J0aBn6j(jժo! Q!'ӧOLL2_~eJ>_Ouϟ?TRn;~xL197x㨣ϙ3]v!m߾=###`Nnwsʔ)>hР֭[+Ç9UW]uwx`W\q r7jԨk&بQKk֬7|3RKSk}'v{Z۶mg͚UP$e˖5l0̜70RJqԛ6m*|9##c1s[;wΕ_~ 8pر1v1"cϕ+W/UVm{l':rw׏92ءCg}6n`3inƛniʕ+k׮~"e_9w=n)A˗/_~L19n6lX…c9f1!CWl׮]ٲeg̘QgI$'A?fW7ndɒm/ƍTO?mɓ'+\kr@T ۷qb+;8∩S֬Y3MJ*W^ye˖j)Rzc%rfߍ=:ǵɷrʺut/xӧOOd_~Y|m۶ԗ/_U>ڴiS.\lo~ƌE+>ks_8'LS,\pn޼ylѢEօyD5''DLri%ѣǴibC[eE}YK<|0h>_FN &13f|ɩh'Z/^|G沖`;wڵ1SndUVſ"9@nQ{EoG;{Tdɒ}]L1~f7bڵŋϯ! -~G +(.9 *`S\}^qJ +9Zv{rڢEŋ\ի׸qZ*>qĈ(~juaΜ99 +_x*THrW Zzu-4'ȒHTϞ2eJLׯ_@ +.]:&ڵ̙3wo;3_ZE-Z_0a¹瞻GCnݺM6-"#'D*Ugp\pVX1ϣ5k,f੧ڵk.wm 2$~GL:5~vF>7wؾ}{r+VĿ!۩M6ѩ\_jժ[nͮh"x0"O5>38cСuhժU[fMLqѢE͚5 d aÆ?CGK,9~=ze/o֭aÆC{/_=XdIӦMӻtr}{il;vhѢoS?'MO>RJL1ߩS_~yW'',\p s11F 6,n{7s9C3fPBGf9w}7go~!;I;3|T׮]8Ç1bDnʕ_CDr_c~xtK/1ņ fff߭_~ݺusu/ 90`{7CӧO?SsγgС\еk׎p-Zdp C Yv2-x|7lv6bĈ3gٶn;Q&M7~' 7\[M?S!+V >1K/4{7^f*Uǖ-[+ wʟbpUڹs|_j믿6hϮ(Qb'|rN"38㩧O>}z .[,U-"xK]hSLڮRի3229'LS 栥GNիWvvpO:0--]4\ׯ+0C7 Q!'>_OuaE6$W_5n> |MRwmժ_sOO:<" /ЦM뮻O?Kq7{J*O?t>blݺNKoH +X^zOT$:~-[333+?o߾I +*+UmN`9r!C6{vm1ӵmvΜ9ߋ-Z,\0k;|M6e>o 3 NN +9 VJ=:zٲiޚn`?ժU^z)~WX1ʎ;,Yg=cnm۶SNs rȆ t_m۶}Lvڃ :sYý+رc.' 2sl?cZ3I&5 9lv +(P^zSf0c~#G))Rda[neذa|GUV ?׀5\sm?wvڵkc>xff槟~Z\aNjՂj 'g'Gtڴiaf:Ӄ1c_y|''Dd#Fjiի'_k瞋[M4I~?cǎ>o :/K.'t'?|ΝCʕ1bD>} +,zSN9eUZ_TR6r믿>kEz9dmkĉ{8[l9`VZjS`A,QD;2e/x /0#QwШQiW]n`?չsYf@~[ .X➵_~SO=蠃^yC9$իk֬seK1bDݿ{'۶m (Q 9x"WGs zYg%2رcҥKWyi1'6lغuk}Qs#F>|xnxyv?r/"G-[rDԬYs1\rW_}ѣjԨQLbŊ֭[b"'gdd,Y23'g Lr@T IsiW]s +H[6B4>{ʔ)u9֭[c=s˗/Ooիw9 80vv_{pa\hѢor<ԴiŹ*9PVП|3f={{Cβlٲ O_r-Æ #<7 ݻw׿QF]uUyo̜?XB͛7gW}ѳ:+XvaU\lYL9眓۠AKf}4lْߝ;w3Q^&O_իfX"{N/hԨQo}u]dp7CW92YV^r@T Ii*kw͆`׿w޽L2'Ǐ/ ,D\rIz9eʔݎЬYŋx^;CJfN}wO~)dtA6m +6Ǝ;`0j꥗^),X~(\pT~˗s ~O>9k+;CqI'-XছnӧO9wa۶m˗͛7OuG$JN +9 ƏOלef}yځ`7pcǦٯڠA?w}v5j|9*VQrqpmۖۼy_}oԨѻl 4h̘1aVښ5kbj'ދ)6'ѣǴiӲ\0mdVN`N:-^f6nܘ[H &xǾBN +9 o/NK|uiߞv \LZժ{6>߮?Br1Nzg?ê |)S믿gff +ȗ&3I \wu_wgϞݾ}Oԩ3<lte̙yh۶mE5>'tO?aHÆ -[SL$'aÆg]}'w~žݻ?۶mۻAy0/[?~ 7 >hS$'D ^״kMu^{_H3gvڵkâ8=J vP  h(Q#*Ac bo@E-jLXIQc#(`DT|3 xqfuw-s{-<<̮c~3΁={iiikNLLI&'OT*Ν;+WVo߾k׮ecar7zF1ׯ_SN ^.\8zhi͚5mNm ?%0' >+:yGyÇu@ 0._VԮm&$\\w%MN`]]|͜;vڵYZZ>}IׯrԩSg̘1bcc7nʕ+ʕ;pGk֬Jrz섓ܹs9A޽7n`mPV=@^¹Vkk먨(C0dK +9Vh4o{떢Jc7'Ι3GZ''`0iiiG}WܹQt`ѢE p-ZܴjժLf@>}曬 /*]r?z=bĈŋ\fN8!*֬YիMjժŋ?͏;ִiSڈ +k׮< `˖-u5pK +9ЖBrIXP1rL9Sںu_UTwss?~|ǎ r۴ic6}>|XR/_ +6lxi333#1E^qnݺ)Jrӕ+Wjժ.}L2sLᅙӧ6lfp*U^_pܿ\rzxxرcMg<{mN"-|S ݻF"'TZ9^x}"4 +=_p 'O={NNݻ׼y7oڴiS:99鯁B#Jo…t@jjٳg*UʚjС˖-S?a۶mߟZtU>;СCZv6ɒ.]ݟ§W^= wWy)ʖ-+hSANh}c"4T1vB(88x֬Y:9yfƍ=zrhhh%z~֮]+)Sid~zgguj9W^yzzٳGr̼yƍ'^𭴶V?e ֭[קOC6s̙8qT*RO'J...CN ))Zj_~Wqww?x𠆻GGGwUT4圀EN 'tXD1n"zFSnn0%SL9sNNX>ܮ]ڮ[S';;;K f͚]UVMu t>}6l SEc^zUjջw?~I&mfɒ%#Fz|rH?|ǎܸqC۩rqƱ9ݥKMݽ{h9RJF"'T:7E^׍CnU9ܯpM:544TZ''`D;6lGtR˻s\\޽{-[Ȼ + >Uᅕɓ˔)Ɏƌ`w֨Qc+W>fʕ^L2Ef~wW _aዬ^ ExGρ&M9sFT-'o>//?)"{Сh9%K@rL9C~k˖)1Ҁ6mZHHNNWXfRܽ{ +([ &ɸi]_HaÆM8Xbw!'9TG+W܏?۷o?ׯ=zLwqUfvy䉵߿/!/^c + iӦOu yB +[^ܳg&_Ha9T`: 0@mݪ4HVl@ifMí-9HOOwww?~1vvv.\VHW^bʂg͚%* +A-fǧOJs >})))Ȑn*UԾ}5j$^XYY;wJ* aZϟgyСVZi &&cǎz\\䞛ɓ'EEr-Z9r;8pCT4圀p(@[ +r@ׯ+zRR*#G*z_ ȻO>c cw$''׫WO"##eYN5Y~>LULYhhԩS݅zΝ/&&&jWWSNe4i4P=zӬY'N:vչsgQٳ 4P#GA S ϳgόEN 'b$… +]dkXN驯|cƌ9twXmժ.:tسgnL d/^#_z%ϛ7o̘15OExG眀J*+e˖MNNVn8qYfҩ+ Ν;]v ,f~-rL9 Eǎ2Y?كV@SNO>$33S>'׫W9 ^f͒ԩsoD"E}?ʕ+zݗ-[fkkϞ=۰awn۶Mz5J9=S"66%7-iӦOs֭EEaƍK tۊFaii)Mz4`* *._UdB:3gΜ2eNNt|_~eN[]\\bccsJ޽7n(wi׮]]_~!sׯ/_IOOsРA+Vd &̝;WT,ZhJJyJƍ'vnrC'O,ԩSh_6v9WfR%ş? 0%r/##aÆQu*gϞG`o6nػwoQѐ93g4jHׯJ*nd/~MTڒ=' I#*ҧd/4o\͛7!'T:uJ[֨vM/3ϬYur&ȑ#ZR)000""" obŞ={&۷wMT4dNӍ7e^ݟSKJJJ2e222D+V 4H2… G-*.\855,=ڢE QVZ17nH%JRza 0ƎU̟ϟW8:kr ?={ɓurm۶e+99>R駟~:Xj]N bLLLǎEECN<ٴiSYoϩSΘ1C.6mիT*eJ+*p@TT˭[T^vwwk׮[2z!8m`* yU}[_O>]_IXXؤIur&66Vz"E<<\ZiST4@zz 9ѤI0.q"K"sN0AZ''`vչsw'$$ԬY33:422RZQƵkr?沇,*pI777Q1zywΜ9s9 ڵ~yGGGZҊ9 gcǎ_+{vAT4˗/ EN 'd࠸zUK̚OzǏ -Z=z4뵌ɓzv~YЄ4$0Q3g4iDT4dN@8L''~wbJG[E:v#O9{noooQs+"'TrxQQWi@qW:ry˗]]]>8ŵku떢Jv>4;v^re=zHZN@_ GZjLƂEɲzCY8{lÆ EEC9ҢE WRJR8aeG+.\u ܽ{>`J255:m&HsIII˗7|?9Br_UDF*|}ii Khмy1cth+>6oܳgOӡC}7f͚Aeddw߹sg}q9'''Qѐ9CjJU QTd+++Ѱ֭[ KG'c3ڪWŋEEsׯ۷^J[nQesׯ_^ 0,_WԬF7*2{&"5Uݛ6U{Eu떽rիKC/1bhnݺku jȑ#zǎwޭfWT4p&׫W@[ +r@aaI?LT ,-śQ8qBI*'Xpѣu333ǏE dff92""؍szz@BBBݺuEEC8кukWyUҥo߾c&M&'%%،ԩs%QQɓ'5kJ|gM<'b~-rL9 ?W1)֯Witԩpbъ.]np,ZhԨQ'dff(P@Z7#*pڵk O.~fff7oެTR֟{z] @8u <}U9r՚jrt@Qtת }HIIYj~O?@[ +r@ϟ+FPYk*lm?աC/THo_Ŋ)>>: | /^}Z\wEŋRGGNj/vZkD[WFhCT -[VT/QD +J*Ut@zzKbcc\ >vXmL6-$$Dw`4;w6vx?rL9 DE^SϚ5AT,Y?^?( 0!K,1b=zTdIRIK.-ﴲkذٳgH|֭[$2C۾}{޽m۲WΝ;nܸ;w|hV5k^~]TɓDwy(j޼ypV4mTSRRO6(VSeya=zmN9ݛ73_^HS%$(||XN!혁 ܾ}M6_|ٳs]^_~}iݻrWbbb*UDECbbbd_k׮];w^)_[Zhq]V,Y?޵mhF7n?raaa[naiӦM>Æ &]vZ:xk#*6nNիڵkۜ0$rL9'w(*UaiiV .](9K.yxx$'' -Z [|c~?XhȜݻ;v(Z_Q_~aP{Ajnݺ%*f d9 \\\;_~k׮M<' |D9aH +r@lٲÇK>'믿zzzxZ|ӦMKTZŋMaw-_hȜ]:u$ZCFFFwXу4 ޾};yp 677?}&{y{{`Mv9R&|M6mN9?6lsG~YeLLBjرϗK.deee޽{!s;vܹk .\P~^*~W_y&ʕ;yd' Ν++k׮U^-ݟYbEQѐ9۷粯e߾}^^^j̞={ĉzZ]wΝ;WXF\~Z!)׳5d fffꇅhѢiӦ!'T˗2DZϗ9e˖1"##Cի8qV.ׯ;::|tҼy^ܹsG1dN`۶m]v},7N:/_V|׮]+\VAJQQ}N@b +Q~„ oqOis 6mZR~-`* qݽ{Wo޼'iӦx/U֠AMvُ?Z7>tP"E/ڷo1%Ku0۷V**2'-[6|p֮]۷o_-+矢{s?.UTEJUVzU3 d^W\ɓʕZ9`Dׯ_oٲerrPo~׮]pyT^ ETq5uvt"| ׍7jԨ!*2'y=zȾVwwsI7YXXܾ}|zZZ7*THJJߛnݺZj›~0˔)f@@;vFA +rq0޽{oذAT٤8::t +-[|SNptpuҥSNW^upp N6___i&666 48vI=@C8OP$'` ;w -ZVVV`* Fwڵ-[J/-P@2elmm˕+WX1kkk KKK/pBzӔ}u1vҥˮ]TnmԨѩS)##c֭3f̸|ʑWWWnݺeoڵEEC֬Yӯ_?zⅧc 333Ѝ{DEr)$G7n. +`* +*c777GGZj988*THKϚ5+$$dÆ KrIxS 6+󙈈 <66A*۷oMN(PiӦݻwٳVBBBݺuEEC"##](--ȑ# ";TlӦM=mll.\(*2'hѢyy.]8.=z=Ç,9K_> 55뢢p988ȵDzzz||&#M@ 0։'Znˬ?Jexx1c?))O>`>>>Æ svvkٝ;wܒUnuuu=zyNxbѢEOMMUpڷoۡC \5mpΝsrr ;wqZ^^^NRU8R _툈ÇՆJ,)QQ@fff@@+r9O&u9a:w{JJ>~9sȵJff%K9yРA~~~ kͣG7o~e[/W\Yy͛r%Jt= O>Ѷac9{lÆ EECBBBL"o׮Unm߾}ddg}vV ++VLK%' */ c7"'T>@ϟwwwʭ˖-+P\]xwًvvv}:th +Zŋ֭[tSy33ݻwo^ oݺ5q-[h8q񱱱|_5j$*2'=<<_rk``E[l[RdɒaÆY[[?\T+' ߿uVR_%JeEሬYFT~ӄ_6Yׁ}y222<==GѺukߞ={ֹsÇ4`:|1@;wN ֭[@@@&MtX0Μ9#m2$$D,X_cǎ ϟ&ݓnZr߻E1cyJٳ'L~tV`"cN@Q;w5k֬A+Vk~~I|Æ W=GN '|PΞ=۾}w͛ ,(?C~߿/سgO+++Wg?~ӓ&M5kgdd|ƍS#qvv]޽t^ZOՈ 1bŹaǎ~~~*`kk施۶m:t( innt#,*}ց9ſм 4~i :L98tP.]={`KKˠs_տ={jgg/[[[y=<<.]HR˅|xZZ&=<<֯__lY}we7n NLLT3U ՗ +nѣo.ӦM>}:QDDDPPhp2;;;;wnjӦͲet{۷o}}}7oެ` ={7N:_dO/9'o߾b +c#'T;w̙3*V\9**m۶J+.]޽ ._={ݕ^effL>=..N0{{9s1"_7nܒ%K4T֭[wc"Ǐc@@mmm߻ˆ RRRD+.\k׮2???M*E8Znݳg.]/^< NOs_uEEHJJ2J?0:rL9 غu>}*T`1cL8p†oL[[ի׾}4\XӧO:رc̙3ϝ;fX"E'Mdmmm4!45'Oީ[ :uW_}ծ]?⽃cbbDu++ѣG >&HKhm۶:uruuh:Tn޼Yzui=OVZ5h Qlٲ3J?0:rL9 HMM \~ʭ;v\hQj Un}vĉdp֭8M6-X !!A0kk!C=ZE||p'h)Yfz h(==="""44Tf+Joo5j ,YiӦ/Vyſz׮]UsQQQb2e>|h~`t +r@^/ݾ}[FJ6l8pWS*ʕ3LW|UV_j~ϭ UcΟ?_Tl׮?`69p@``+WDuwwYf5n0m^zȐ!~ȑ-ZhץKԩ#ŋG)*Z[[?{( 0+==}ڴio߾m*QDppa,--қ\=ڹs'ObŊA%h_Ν;߼yfСCvjKs˗ݺuۻwa<0.]p¾Ç[!{Ȓ8jԨ;v5={Y!￵K8|uYlYڵ]1>>~z M4ITT*w@Fi EN 'Qϟׯ_\\nii9dȐ)S,Y(.!!?T3k׮۶m3XKZrʺu6lp]5ʖ-ӷo_Rׯ_3::Z͘%W\YreK1`%Jr,)))͋HKK^oذɓJR]VW?Lhyzjݺujt^NrvvtN`ڴi!!!zjjjѢE `D@? +endstream endobj 468 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4109 /Length 21901 >> +stream +x s E)kRho E*ؗƾoc;%1ƾd2J$J&dD!?']sy}~|~;<%?c{{gw/z`qT eZL8ߞ4i}ڶm[N3=HNO⣏>:Ss;y嗯Yff_|Q5j^\pꫯ^Օ.N 9=ٳg_|]tѬYUV۶m7M6 4_~IIOG)S1c >g裏M[u]ףG<$' @%9r7nܢC-[[o̙S<oPE/> 9= /<37n}Wdv<8Yf$'5ky,gϞ\pK/<^k&O\ƜmvKU 9=(nj3:u4rȅשS;q5eʔݻ/[JJJz믿n^y啅/O?tv8cƌmfe̹N8ᄼG$':w3,s=fUS'|Ҷm>  >M6մbTgyf߾}~}OvҥGMVFUVj]F @rz?ߡCs.}76lX5{]wUƄ +LOΝ۶m1c,:cuڵk㏛7o>gΜ&4h[n + |noܸ_RRRer!rK^zf1' Ν۬YI&-:tQG]wu[ɘ1c_2&4mt„ 5k,ؒ$' {Ǻusx`!ӺuѣG1駟رcS 9=X;:th ;O/c‘Gyl=JO̚5~s9:jԨ6mr=ÇlʘаaO>`Vz,੧~K6lئnZ|oʘ3q5X`K>z,SNK}wiB'c-x˘0p=zl=GOtiȐ!tI\rI!דq衇ׯ '|E]TT=HNOдi>͛;5k,K/ݻw2_[OWgϮ]yʘsm~[RƠAzQƄ6hĈ[OW&MjҤIs4h+4k֬ +zgv2&4o|„ [OWƍ[wu˝֦MW^ye*2Fծ]2&ꪓ'O.bj̊ogǷE2WD%JXgŬ$^:]@6"QR.SL\&ŊjĈlIEf}}Bz,Z 26&~?O3\h8Z6M׋m6ufߌY_|P}b:֋󚘹dN ~VشQ-;E)1{_]#Q/?W?/Ҕn%:(qs1&|_}e_Zil~uHl8*Y^Ŝ_j*2s喛4iRz{I'Nl޼y\O ƾw>IS** bNѣKlNt+.%6L}[NpjK~bnpş9Ls㱲cM&o]ZUIՏ>]bbym\ |}jԻIojvز T1q6Į[$$&X_M4I&|ׯ:ѣGnݺ na +'Fyݺ^śyM\slNIKs?^c%f Ll9iJ|Q{bvOSb樎زq6[){fD.}Q}k❸VQ--(Fb‡-b KMj#Qbo:-,R3#b>K~bN&|z]e{8bf|~v3EI\znSO=ϯd}guVw`%MO(sY7ży;fXa{ؠ^,=~B'.lۿp=zu +o)\q{G:Kxb}.pd jL'j/_bKJ5j"_|M6)JP se(ĠOK{{ﳗLgHQ螽a^P-`aCn2lÇ/))d8+Œ3JPV/N:ս +a޼qד>rnd=>V 39+ŌaߡȕM UжĎ5G8+6:SbYb%_Y͉?4$v +sK}.'I?=Z2ZӛixĜE^_Aeh"Z+Տw1uzL(FϿӿ +HaNw6:?j!, _|qOr6klȐ!M6-JƏ߲e2&o~СXI pq].\gاgwYus, 7U_Xo,KupGx{щ3v8F?w!qv <%vp 8uۮQ~[[|$2cJ$h̘Yı[gTao$>=Jw۸_O┎{μ7$}F&N\v6Ct&sؖ/*vqyQP΋N{)fbGhrfΛ/;Ac|'kpj6{?Ç3[j֬f{lݺu n(c…^x)f1MOv^[Μ:D}=rW^_xb\z5@׿m&^qEpB{tR\rIec+ͬ8J7_=b;.8Yb=xe#VO.*RM$f#Vӣ /LxqEI3G\{\p&Vs[|Ežzj~dƾ?b$f#V#;o~O<~=$z^9 iǡ;Z)_̌kKnt[TROO7k֬9sԭ[FOݷ.<eL=zzWT+=z }=:=Tv&w[m/X 7i%?9z5W.ꓢQS~V-q-㥗9qqU_ejU"^~yqH[ZǰaԴi6gMܭc6኉O*?\6ë9qm+ԼyL|e|u Xl7$F(5׌㫚vUW(VǫV>Uq#s@5gHYi1.>.*Ywi.Ywz&JdZ6g˚SF >ٰ)@ @z}嗫ʜ9sJkL8KVz@5hOi' ~ܹ^ 6</.kLսНxq9M:58/Fv튝9_}S}mV>㐿'QQM'^{Jȼ$LrNe?$ +o[/xn|U}u?fj3e|3_7Xnbc?8V_G{ġoI8pI3&ZLbecԝѤan>v=z٪nOyqCq]bWK(#ƠXq)'կ_C= w?񏂭 :Osec~^;n!:7q nx?eM8&fyy nвpxȉ]SNs]pN'ϧ+qubpqM<87xBq n++r$)Hիgge^$]{e^dV1n8&f2 ^t>&>.նf5 *Vi}J޺E>8(^]ք[W3q ,Yŭg3(*=H;>lU֤I6\r#'TacK=seolm.xcpWzB\n\8RG>:;(=Hӧ7no-mB.]\%P-:u..ա\shԮ+)Gm݈ +ߥڿ~+)Gm^ KѥH3KvwVpK5݋]S*׻K5aAS仑띥ڠ/qa~{Tݹ$֩+ɇm\Q׾rݓh +5.3&M\EsiU. c⭉G9n:-c߫g?w;?_D N;?ђ^{]v\R 7iJ41r=.nh&1ة$*gbYbJ%n-˱b<>T*q?lIO, 5Lbv4n}%Z-ىm#b*'211e2cuG/[{Ax׋oVc:Ƿ.(8=H3g6n/K(@{=hx@= ν%θ!ȅqqLψ~}㟕b'n>;s8u1J<3n:+n.7nGLܙL>v?:NY3w̝R\{'/F@v68vJ<'n8=n.Ğ=wύOL, qe7sꤼ'Q wgAKs +ΙgٷoF]v1c4nܸK* = #|XIZN:=%%%\R y6qzΑq͓Y'R?DT=/R*Sx|`shvrX)+h8ط +wDC⺩ѠF7c'E2{W޾1RN,꽑;rby^Pycř9?/x7+JrbǸaF-p+&J|?vl`ls\ZkSAtoS@lK\R⢣"edzEIVN?:W!ȸw_g!j'[o 읦c?ǧN7:U!qᙿĚ ٢$~]WiNwlG\Xr%~u2sF?r%T!8&0>1gHߋ]Oͱ#EH!cQu=O +HOkժ{wsf͚=;PUg!,yHl)xx oGur}0\CmcDl}\[q-qƺ +z:+جs\S[#EL!^]ty(řcNx+Bq6ڢͻ)o ^t˜h~]c;UEI#-WXuUaXl-,J8GouoF61 +CՑX;}2Ei%~/ZcsA$v>6cBǍeIO +EOҢwޗ^Z)]c)z3s'|2_6lذ+bz@58=E,$uF&vz S㘢$w]-:aN,U;^Bbi' G]^1芸<88(Ǡs%Ξ8򉥝8"%w^ ?.X'^Bj|s3Ȣ$/r~s>qDQO;._XȷQRĩi嘱qqxu$w~rj/_?%O߅y19<1ۻ8^ޚcĤgɃ''0dȐΝ;ϛ7/!r7xI1vVZUkPE' $!q-SKcQV1R* + )B>cǢ$v9w_5 *ClR#WAg@˃KI\%4W*1}l38^Įcq\WU>1sT3vѡۢ[Qw^9w_)|W*fN?ξ=v(Jbx8>+ӟGJ%֊Ms&}#{pyV :;c=~ms$޽?ZT+yK|s&?V +RDPȮ^zԩӃ>ڒ@ iVzOnv{3OQ#+ЧD{_(iWRMSK%qyV勒6EIl6@2nyuQ+ЧJ/J +ͣg[XĖ?'Y xd'-xqA/FOO폿?,lOD=kNl?fd7 Ed-*Y ҏ V -~}* #Z("ce5]g;933s~` nڰaC*U~+jժ{ȑUJM+Y-֮UT-Ku1*tTY+/9dwZSn;,+Wm_Lݡ*Q¯l94tLYkDYY F?,;NU1D acZ8^l@X^k?K*)Uj66:PApK9kn3'Urqظqkk4vh9i/Y5ulm*έ `nWPm˕,.:b[1 +h4EFJB+I{vد"֯͡M*ksV\VuX9J3E/p +߿B +r(22r~I@~.k]dq|R3_bIooRd[*\#≡}4g3-+3Ea}d1J7(g]m*[G Ry[ ja峭8_xG)&O^ˎxY4ZFZGZ׹kB:[:{G(WE~q!»u8{UHTwˋ +8f@3u,; ?q+CX^:80ph9tj܀3T+uQ>VP[\uWAwO1|ԅj;bBp.7|v8};Tq+֭;o<$`8}t||]mݺu#G8>~>{2\3ԩΞ!Gܢc++k.`o{Ufl1|+ zƝ6ߕ-VOuoaZ뵧)S6΍:b1Ыvv82N1sʞG/:-kW;SRZoq(DYq8,Pd3piHgb\YuxK=xSxkp'_śjś*SFx zʸB'& ś'7xG7֠t'赎Jucw7ۊhQ|C;-ˢqVP,o0W5j`:oj`{bXf@j߇ +!7UhZSm(pz9-7h˯dxE学,&tnqٿ>i'O~'<޲e˩Sfɒ% ͎7_Ғ1iCLqXʯ{Z>giNG1JKcǩ*e~Ϫ0LGR).{]t`Ou(/ŏp.P^K-?/Le?mbFz1)և_+&(kLݬb(ޤT_m+_GY+e|m}Y#b-K+to{U_5 ,[T|>BBtrwQE%{E=]->'0sOUt'8g=?oUI@ڶxlڳH3>ܰA*ܪ%dU̙]yrWS65sIۋߪQqbfة+G*S{T|bzbڑJ&p#G-Mw5,}~Q4ٳfDqbgܡ_G-R@$G,.KdKԥDi՞+^T6}+19n>p X, Yn]DDٳg=wqAi} #:E/z <ض&xu7S@>4ޘ;*[/M.2^:*E^W\\?/*7EƪI=@Eo|"cԴzh|S5:YЦLs.M5ڶ"W΃5>'zۮ ME^꠾Oڿ^4hEb7֨Qiѣǰa\YbC,ə]moѡݪ$/~yHVto]zԫb%M^RT~Q *>)kuO.>)xoWCk*5mb3^]oP*zv洊5~}AÆ.\nуm ͗ךUwپ@Eny~]tsEc~*U>|xLL]YbQ:롺~ed26S8yn/ȧ58_\Z[{4'ڐRpT#W"Hi\cuiQl?Q22q }mra2E ӦX{\C֣O6i;:Q21`Ec~jժ:txϞ=ʒ@dwLnpqsuxbJ0KuXCS'˱ QJj\1B뗩s'G٪pŚ<^Oqr3 c\"ЊnI87vqrq[M.v͈?z>z.Q>Ɏ>ib+&6/G> رjժ8ޭ[#G$>Qhu[,GecJ7Nm*TVzbsNۥŴ @>mKuNx;Yܡk- Wg8{ E⏺8]7eSqZwQ,Sn)wl+ p[eU%vd=G&65.'Xp>fgڰ+EtoG+Ժ6}@FٻwoժUqMa()1rBͯT4-)wn̩GSvQ Kc@S'rp=PCU->-Pla頻jbKA}JOaQX) Q֬:~phRyS5hV +Y|5|69AAZ=YcgwˏA'N'[\3YZ b߾}UVݽ{]5ʕ%? v.LnBTUD ͙պ.M%zW0a߫)ٶԝ5+ORY KS=xT0!-bVObke˕S\\Z >Hh4?Pz)7DMbt-KHju˗7o99sE }ҝ*QJdcn\gnԑdg~Z]I/Xtɼ>{GWhS>2!J)^EϾh[zbzF}u|FMس^y埢QdMl ԿJ֬i*6SuL7Tcu ), *S?&.Pa|Js>j=7[BU'OO?Tj՝;wzo߾o&OdT.%0}UyFIϯ)ST/PTvkujƴ3>SڼF'Hw:4m%8uֵ(6k&m-j],TC4M7l0o9>zZdPѸxlH7C5V@b7jڋT(4Vv8ׯ7o9WSi5U\_HeNEׅs:ߖbzd Z.}>\r۷{ܹرc$2 7x^9\-ƨ1|a͘ySԱ1?ΣZKS)eX5Z?MɧӾ#"4}zJ4wO3eդE:,b7j@ŦJfM\Iۮ;j cV-x֓bƯ85I_u5gՋOj<;kOOxy.>ykz:C=NOT4 +XO6Y?qVÍϑݫUu1sR/Tڨc +'?vJcj,I k Y6Sgϥ2s`gJ\'ԩSժUۼy֭[O<988ؕU '<=Dꬳ97VpgM?Xҷ{.iraHNr\38N[q8c8Y#toҦ{l](GGJ[qkY]uut8'vi).ո8\|Sfy~5j/gV&bo Zb{E<@F4oE3EGJ+.xw$(QTmO=񩽑> jZzq4{,Y>Dcu$CTW[T:i<{NGNh^}]mґv0o*hjRћܜo9 ׏2qQ޼[g;ʘ"7dfE-\!HUoHyUS[T r8s8oͧH LX(,.jOq^U^Ȅ'׏|Y 5\ʪC.%PurI~ud65ủ}.\аaEyY… gʪNQ7=|Yo:WLׅ;]bSnQ6L- UG/p1ܲVf' +RZspAhUFjkxdRo{8x._<44ԕ%4 ׬ڬ#wv~bhhWy צm.f>O+7g5;wjVgCgbajⷙ::Z]X~yV)5j'Snpz{eU.k=hYasEt9sfViɋڨa5,.ޱj3ԕ+nT5fqWW,y^Ԋ-Z88PWOT^(jROHE5hŋI.\xշzK +x~݊]u .y ڀ(-wDŲw(ow)vfBFu&Q4{/6iU/n1PױtL[ΪEMߛHxw Y-E6Qf/d +vڈ˷r%JL}:OԚ޾OGOzNQћUU,jU6{k6qr{T ŝ?UL:ULYV:y, U2I=1q0>fqݖԋձSŤL\m8 @}|o~ܯ='\2yύ7 Oݻ+Vxȿ^ gΜ˖-TË\U.e˖%K:{Ot&Ag&O.ɩ9)RH"E*=g>p&AAAyr)WVP'x>֭[̒%qGjРË1Sƒ~ܹs;{OpB:u/_`PPдiӢ_ώ;)rB +8p5؋}'UN&LqW_z;j&M.\r>̕e؈}'ȑ#cbb<>o+1t}ԨQ?nӦ͔)SZ]'}@VXQv/&=XZKf˖ͭU)Rdǎ?vm l>wRw{_~IzDWwkU[n-Y;w>wRPR͛7'=Xp?otkUnܸ\r.|> %͛7Kz$W\W.S[K2\tXb;wɓ'\\-'}@Ə߹sG6m֒.3gNfg9z>w}7*T8w\҃}0`[K[r6m?+Vn:c c`_-_ۓ|G,X֪.>}z֭i޼Y\Z'}͛%=RxׇSTӧO'=د_";OOqqq͛7Oz$gΜ6lZe{DDĪU<Ϝ9E,^|>_waJ###=֒.;zc=rJ#Gϟ%e cI&=I\wu^֒}ٟrBXXɓ'^Ua; 9vXbŌ'=8ym:K.m۶?6mSYl/ұe( c:L8`ٲe\qO9qāΟ?xܹ*gOӮ])B֫W +{Oc?t2 +endstream endobj 467 0 obj <> +stream +xرM\QEё 9ВKp @ .QHGzx`/m+.?}^.o_d|SܟZ32Ck&26S\2К ͖o,dl {hDfˀ,dl ujDfʀ:-p[%n `4d-#!n ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ x +endstream endobj 466 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4109 /Length 32703 >> +stream +x s?,i_#RՓ=YQR0*ĈuaCELҢT(-D4IIh?_3sTgsz]~=}w<|;_~ +_}ر#_`I'I{k6{6l؁V~w5k8n֬sQ^+Wfo۶lٲ9>dҤI]vqޱ!;](@qM(@8+e˖]ڵk7nܘqFO5mt…=EDW{ӦMk۶mkիץK3<3ΨSNxSN'OθzP›зo\fM>}ܸqݺudӦMiiiڵk֭YlƍO?|jj͛SRRl7oˑ( bHMM=S~x=N8,ڞW\O2k 8;\>0vޝVtL1' /p%{I&rK *Ujȍ8 =RSSO8>,F >[n ;=HO+=p/8<8ꨣ}y | Wf9饗>ʕRO"eO`m۶mڴSO=+=px`ذa)))]ЬY'fҿD'˞@h͕*Ucsؽ{%\/g13uZj @Dz]q D]zkfF͞=( :=Q{' d6p  @z~z#F:thW_'Q @tzY{oV׮]raŊ| 6 @z֭[w '9n\^&M{=z8{1=BOyodئMܹs9̗ "=` ̛7N8;v_߇{\sMxS>m' @t{O`̙guVx6jh͙W&%%uy۷OLL~[=HO;{SLi׮]xгgϗ_~9s9lڴi. '0q.]L:5-y<@V򴭞D'=/>餓.]~YjGyO> yVO"ȑ#իw:txg}<16=zoIh$%%Zjg엞'=-[Κ5+&'~oܸ1&C],  'PJ~)&'p5<1ISN裏Y'@ @t{O v?< ,]OLIIݒ%K7n|zğD'L:m۶ѷo}״o~ʔ)ѳbn{tUOoСѷ6l=ܓeoqyEu~ '@ @tzA.]&N}=n|u׮]M4Y|y5kV˖-{)sO`9=NO Rʆ #n'pu=#5ꦛns x{)sO`Ȑ!#G\ :=N:/PBm3ʧzj7id׮]+W.SL+UT#< 4>*99bŊ#ʖ-.޶mΝ;3ߺuky3[lIIIٽ{?};vl޼9cRJ^:so'sO }HwrAO;{uԙ6mZڵo'УG^{-(sO K +DwPjժ5mڴud=-Z̞=;&=& +wzmI Ϟ@W_} E@Vf̘Qp0Ҟg}6mڴڵkp=enݺ5!!!Y@?Dw0[n%%?{UV}ѱ=J*mڴp`'=]vr!16KO>sc7{W^`'='#\wu8ODYz3g<묳 +qz@d ̘18ODYzO=ԕW^Yp0b&KOQF~i!Qoۇ~`' L@BBºujԨQ#E'ТEٳg<  :=ݻw/y"(Uƍ˕+W#Q @tEO`ʕcǎ 4%KOVZӧOSNm۶sL2e˖նYziӦi&Vþ XvmVV\`&M\P@ZMVnݘܹ>={'|駟^z{-[ciܸ 'ٺuC=4AYzN۶m~p`z] OmڴYxqxܡCɓ'\ޞ@A6m믇O{キm۶\>*))e˖ݺu;=<%f $'''ѕ֭[۷o=3y:P\FO %9s=:|JvؑMwy|ޞq'ѕ؞Ν;u#&M,X )) {챑#Gƪ$ޮI&{s΍^g}ѣׯʌ'ѕ̞@jj_<~}/3o4i$&%iӦxϏվʕ+7bĈA%$$dl]w'ѕ@tW;vW;w@=o=˕+׫W6k֬Ѵijժ8v7(IO+Q=1c\uU{l-xEMw}wiii+ %JTO/ر+aֿ7G}t ;p޽{ϝ;7ǕժU;餓N8c9&-L2rȮ=֯_zUV-^O>YfMg7 U~ĆDWzwu޼yQ6IJJ޽ڵkٲxˆ-[hAbbb˖-{Ѵi\t҉'>쳟ynw7Pp mݺgϞ'NU  Я_ʕ+Gm[neȑZPvK/YfS>C ??OwĄDW{3&&UPwlҤIݶmv%z'z^xaRRR`,tmܹ/ի׸qb'ѕ̞@;an֭ p*U*;]{~ᾗ7o~뭷v5!!!ژY}'xb͚ҥKYZj<JrO TNo&O>7o̙3+W{#8=j֬.^k׮VriӦ<@=RFuM7e5\Sp3@ 'cǎҥKg]?5k֔)S,Xם:u4xvϟ߾}1ի6lРAny O/_ޠAtu„ :dOO;H{mܸq֬Y̙3?裝;w)qӧOŊf޼y:t)[!Cn +*).RSS_SR 6 +D'RRR.\Ϛ5w٨Xb^ ԤI,$6m<9lCfϞݢE8 ' Pjjg}Q3fػO<ѣTR>%U1+oVbbbO=3lذrkŊYf-_11ꫯۏ8OY @tzQmٲeٳf͚1cƼyoߞeAΝy_W1ν˗7h իkguVbi׮]}?sYfܹsȑ\sMBBBhgyf3Gy)S6lXX# :=y*U-13zlٲ3gǁJ~ny/ǁJ_|qڴiQ*VX @tz@Q'ѕ@jjG~/8@sNz +{ +(=$F=`8~/))( ؼys׭[PrTto/A( zx&Ksϰa +{ +"=dƍܹ3n^͚5RJ 9z] t}„ q#^|Ş={9z] L:]v"Zl9k֬ž"GO+i=f͚-^8YD1o޼N;hJZO` C/KaOAѢ'ѕ@1hРׇ+V{)<d*UB +{/UT))))tʕ{J* eʔ)[쁢+Wià0.OѮ]nݚl޼955@Wwر}_O{Ռ㴴M6NqnF콴e˖`ϭ~g"OR @t%'kzPT @tz@Q' ED'zPT @tz@Q' ED'zPT @tz@Q' ED'zPT @tz@Q' ED'zPT @tz@Q' ED'zhѢݻwWT+Y(N :=bl֭UTIIIiܸ%K +{=NO ^xᅞ={&'' EԩS۵kr![nu==NO ^xK/tJ*Y?Æ 8^paӦM w=NO ?^~>}ڵKO Ν;[\P @tzyIᱞ@m9~nj/;wU@O t饗>sYɞD'+T=ٳguYyr/( :=oU`Ȑ!UG]ZP~qeݺueUTT_z@S*_@(<[nÆ kԨ9s\VT3gqqbMOț;v}?CUZ 4l0~|z92>>SO=u֭99r!C0ŝD'gj?qu6jԨYf'qGdعsg?Wve„ qNOȳUJƍo5*ʿ[?xG}4e 43gNa$J=NO +'šڼy֭[iSNINN.ܛ8qbs|BT2wgcӦM-Zre:v޽y|JJ.]Z:{4lWUa[ @tzy@f*T83۴iӺuO?TRLbŊ͛7߰aC˒&NرcLU֯_3g\re.UN-Zs9=zVZNX, @tzy@fʕkٲeuv9}Æ as\C]qpڵk/;3}J*u9 8s 1xp{խ[}]vС!Rqvر{wAO*y +ז-[xGyoᶍ5zup :=<+:=VکSݻwرr>}{~s\٧O)枚:vo}ڵٯXb2eRRR6o>*Zzǚ6mmGOȳ=ƍXn?]6s۶mqL2=z۷瞛ÝoÇ縬cǎoFRb],]K/p'wSO ֭)ذa×_~lٲӧO:o>C\,sO`׮]NW_7d zȚ5kݻ_~7۝wy]w帬UVoV'Mcǎ,;+O>Gydn .̜9s̘1/b3p?%f' Y{?˖-[tg}_ztzj~.ʕ+osOZn=iҤ +*/۶mەW^9nܸ,[hqwo>~;5gyĉT=NO Ϣ_,[O>p~){UT ?!emڴ4iRI}M6uqΜ9O&%%5*kxdž YfSN=z@DO`__|Ň`m۶E3999|^ r'f:|mv„ %$СCsf>0nܸ={*孷޺ o~mڴ;r2|#F :4> 7ܢCOȳ d~ﯾԩSIg=rȓO>95ktu?*!!6lXBŋ%%%%vM2 ڴihAb>}z- +"(ڸq Ə;l߾=OLL+uueww eʔy'y֭[Ϝ9s7xQ +(?oڴi6?~K. +D'gE'?k3f*Um޼9e5k|W8X<̘1M6tvm=xG}4wu @tzyV{{-_=֯_m[h1~#8"{M=zx{M￯SN6 QB/+ +DWziiiR,zvk=zƌwꪫ}ҥKGߪ۲eK5»߫C +tf 7 BO+Q=1cuQ:u*ДbkÇ4iRJ*=z`E/]߿J+.\xI'e |F֬YS|# ؽ{w ,YRy_{-Z4jԨqƥQvڋ/x1`E7J*_C)㎻;;v|뭷 +tJHO V\+WO?SNeߞO4)OO}z֭ nJBO`3|=܂+F=UV;'Xvm}=йss1Zƍ_sK:F&Mv=7Mgz]I d0 uԹۺuv6v?3SLIKKɞ 6T݊>zٯ)Wܖ-[ nof3_C=TpğDW{0O?ݻ㏏IbQ ,Zg_aÆ?^z]w]ƍg=o߾oIN8O?qYx*W\pcp ?p6 .ұc'~?L`6mzٳ^zQ`O`ҥǏW-Zi淿m3:t>\o ]tQx?s\V<.^xa'@&p ~zϞ=o#Gh |'XlYX|.h͚5riɒ%۷_v~+\p9r7ߜ5k~:?>hРlKÿ:C @$[v[+/T*/QbM BI P%fI qqHr%$)lwO &ij>o߾\pAy l۶m̙?yzlRRRvsWP@>s9gZJ?8g2qV:cRRRYӣG^{@xgl{@g3=țϿ }|(`YTԯ4h)AĆu1J /ZU*}$hx|$}|Ϣv1N\'[J޿41|Ysb] ]"@<-j) VrJbؽ{w V\qevj׮]BBB 'W_M0aĉ;Fe]Vvo Ɓzzj8Fҥ:F1'fK/t O<5\͂뮻G)LOre7.oY#}Чspr8%yؿ5}'fy޼yIII:?| 7d`rKgz_~ & F%#:K E.S'_9$YČ'wuIQ$_~WK|bxW}5)~WKp"@ZW#+ )]=Lo LQP75kqQ\{Ç0aŋn_Gu%\ҷo߆  |_}ʕ+WXdɒ/"%%%TŀPF +7קOީS۷{sywK;6o\LxT w}nn(ؔJ1Ân_8S}L3,XcINħo.jW8fl$x'Ӄ +~ۜR*sw#ȐbŊ ~Gύ38_~wu׺u2d l߾=w}|ʕ+3[nP^f͚tI֬Y37&L j=zo~MrP9ꨣy=hb'K'?<GBBp ʖzKRoJF719)9LrIEb7g?[w3Ϟ_Zø&~7O_x+n_ع+WWX']b_?=f'zyDN\ٲ1XbЧʖ'3sԝK:\}@J?zw +No`qܛ9|yOS(V@7n1c{7mڴEEܰ|ݺu;=ի#{X^Bٽ{QGh7sΧaMT[ru`˶y L#Fn ߉| ;\!I><} sϞ'^ %ω+7H ۃ~~](ޱAg?qHk>c9;%rizbyNJzb^-Ga\(]$oEI _+'ġ TqCaMJ?0X.o?[s9*mPޞ@f[l;w=,X@zڣjժXf駟f9ߡCɓ'H%/ܳg]-_UUϑCO;sNQ=O>0獏;.X_1/r;&vZG9?~X\O=5N&ЌN9%9AثC Q1IK<`ԨQ駅Ͽf͂O>AK7uLOqjX53V蓾Q.1a[b.K4ꭿJ!G/(iԢ'O*c&>loֵⷺ:}W%~n;x옭)≎$3]S7;s4oBntݶߎɴgA(:G97nwSƊJ*m۶-YASLiذs+3f?~| )XdIʕHѣ~~~V2 ^hu' U\Ϯ:Tڅw={GF7;ڦpNm!CԾ}xF_bmʣM]1x:tob^&Ûػ6%hTT>=%~:wob߾TmsMɼZ?֕Ziv P.MO_|\ZΧuc,M|'֎~vE5~sVZMjdO4+܆:puիe˖={֩m (7TX1Jfƍ^z}F{͛СC:̜9vVJ ^\vZr?ݺٟvڴ) 9sj߾g^aK !zWŋ$˕K{z4q*2͖ UO_6;exVڳ'Ŋiʂgɣݻyz0-A`bѢgͫ]yj0:Ly0HmsxGΝϼmN Lˆ' v?+~x[maZ>\4qŏzW +?›X;b+G\᧯ +rl#8rF%9*o"D b`a2܃'vs]nez's\:߿ҥs߫x}Is ܹspϮ9p@t<4hCjWg͚ex,FӞ>m"@=r"aegF(wHb +>yio8Ձ_@G@̟?87oѕ-[_~ tجqAXojԨ1w\O )Z[pq6G[lI(ţuԯv[}^=r> կMzmx7W{}gs?oյlTvlw?u8S.O>\m8ؿ:w~!jHanjudiU wY#?C|:v|pufsgUp_!TTcx74q@U{{?ĠA)&.o(܌MVna&@9Gu˻wYV jN>e{7y?Uz^zeϞݚՄ 4i5k֔*U#㉾nZL.J6 ҤIc,FU66mY)6] r%RY'[ri.qe{J¥Ky3\hpn/kS] M;qlRO~罷?[틗z4L{Q{auxk]'/(jO5SOv {[+ۊԖ %ֵ;UʚÊ1ꬹk̛JMhQ'Jϟ7oތ3l⸧w&Mɓ[36iРԩS]Spa x1fo[ƍҥ3:dgr:ieerS>Y5R60Ns]HP6+ j򎘞X@SvET6‰Ǯ&CT}JNûhS VjkXgMvjAQmQ d@5ϣQ8Ij1>ލy ^԰M@ճn$=1MݛO+F<(88xSL>}[u+PQ?kmݺx=z&{{+GVqRUB{OJ:'KޑL jҾ[wL2  gnݰ + +3gĉ7mdzbǎݦM={&N #B I&5lS׿3gvȘ1?X|yY ^8.(CӖqL_<0ΟPUӦ~S>5ʹ5fSf'RvnښK3+S3qOt9F5n+31UxGI̩Yx]8Z5*aښC?eVQՈ"?}i# gJ|CGL(zX5˴5~9H̢3U3$LM[ja@:}HHپN⛚{Di#U+S7%:6B[#F'S:MmjHħ*}5vyEJpu:ul_Qg0[9rdȑ&MqlS>|xܹ;wǏ?]>}ÇǍ׃j `ŊSLٱc>I&رc_iN™X1m)偍hz61`~o+2DuHlE?I|[c!c-ަM%5mZ_D>nG%6ՂcTB+ʼn{~.#BX3MCŲ8񑼷o 3ukyϴ-ʼn[LK}>Ѽ$xY%n'S(X oMj<ѱwdjt75w}"n,޼ijhu;U_y/@T@@DWuTDM6ʔ)'NX|y ɭV0zlٲeȐNzWMKzw^Ի F{IhX 6<;kr&r w_%5}t͓.pS>~ZĮ~4M]na2 7.TrHO#BwDI΅_Eo5Hb7𣏕.Ld|Բ>Hbwcx]j Tj/so +|[k*D&Vܓ4~2iH+nIc=~,߷uIӀ6=czJ?]k2N  Eu!ܹ3nܸA<]YXSO%Xbųwg˖_vFS ȟ?ӦMׯ(Q"w}8#GFP'ɴ暓q6S*xWL g,TӺh'^Wb'Vyd'ݐsA$Qz#5f: %t*1[M,%Ԛ9v}|J2örIտipĄJ6OI@fiDx۸Hwni?Ge\oyMD1ֵ %+m޴`mhߴey^( W"N ăM6`C]xqɒGMիW_`ӗ .Rc 0~֍5ҥ˫QuDՈTtE4r + t`>2VK剅ULҳJTbrݸ6jj7$뗞 +ZZB")7_ׯEoNJ~=d˺ד[C+֪GivSkcHܚZ)^I|K{7=y~hjƵh'Y|I,=L+ZhJW|R*C%{ÓI06_yt+|AӖ؍(]LfbJp}"+ Pi7o2AErZ;zʶ2oFI2 uѣ ̘1.t~mݺW^9p@ҤI]>Yfs)A .lgdz۶mO޽{7o޼t_!A-Z޽{F# ^TJ--r/(* [e*N,etyb6<翠 C(SiiU6m*۔t̟QX+]'$fnH̡U۴O6rH_^NI,DbNߧMd՜yrF?M5ys^11wgdԹfT@Sv:GuMdѼƧ321U7mʯDbm' ;dbfU Ӧ|8W'GG&3o;6_^wy"Ie7WR-2y%N/VW @xQ'6әBNիWǎ=4f$ѣW^O_nڴ魷'~\|̙3:p7nx??.]k.~(=#3uD:'ZO=z@w^EuO>N&/;lw{g{lQ-k&Pbݵ_@SvyeHbݵ_Sw{\-k?܏-ȫ{pyc^^jZS:N;&NDO A_'TppArΝlٲ9s&e*U.\!E=ڹsʕ+O~!=d2v%JX66gQ'@] RMTB׫~};d +"ZIF6Q(A ߁VKU$t[/i4ZzV)JLUƴVQfϖ_K*kT3Og0oKM_)k^jb5zėu/3mt'3[X3-1NP{;삱gՋz״F1-fۖE-gKj]pc>jƵh'z1<8yE+ܜtOgT-Og֏ZX=-K?=J3;h|R:]MՒlf':+~ZN%&н;2~~-M Ϸ-5$jM8裻UܴƘoHbվw1Xn9PߒSWnίiY$ʷiW>q-8#TIq>.D{*U҄ z9@foyۛE9]0HU=4eyu8qH"/_: N6-o޼۷o;:}T\UV,woxÇwm:˗ϸҢ`EPPЊ+\-[ 2乕 bWS_5UO_M-u nJ]5iĶdu$ֆr}bxK>Zċz7ib˺f`x~S>~nJn4W3\Rٗtݤ!~3NPo(Q@eInlfgW.Ldл3}KkM5LJݛx&j tRľ-ωO|N,ȽL&$x<~,uڨSCD5d}e&p9°o߾2e+N]vC Y4hPs7o`c_>{lx<=kԩ~iP/xI.\D gS }U\v~˧AJhICZ4ضPf[Yi[t̕wčjZ\{LB$noiICշm5|MLw*kMqKb/ledW&V{Gz&]˪([%&ŴϤz)3tќա۷+{aM@f5)jXLbΚkr6(HܢEߤfiPbΚgU9jBQa4*_#lUéIךt-KG>%}:l{}<}>}z%qy==EG-[ٳ $0NfJ,ep>1L%=95kj-1LfS&I˫mן&߃Իu^DIf轺ȭ`cէX8N?BJ^v|= &*LSğի4$%%zO$NU413)%#b%N78j%(&GLVM'GZbR[Ǐmg,qoH Ԥ夺YT+>:8vVMѨ&|"U.,|4ң`%/LUט {n:thv[YrE~u 7ny[n=xy]nE½{<͛>4zwᅪY֯_tΑ#ǣGeZe-<ɓJ +0m'ҥK˕+gA3q۹-uhO?ȑ.lEnW0}D*dFvh׏Q'~ +o$Ə6V!M0VqH#yDjX{% 'nرTi2R6揱W(b}⦟m5-Ś6RQ7^?y[-OO4裡yǦ-mjD ҷV&>I37Q]GwSs$x 6ߛ7혢Y*¼ij\8:ڻwoٲe+p_I7nlzҥK6}=z='qΝ5mmҤɄ 99sf ۷hѢ!g{Æ yxTN T͛V/CkOׅs3SJ@C6DaicNW$fjּsybF;jvհ941^&~RvY5`31U*-jqic6rH5ڻĖY5E :|7 75F 1w >j U$Ӈm'9ɓ+0Pc꧹]Sf$x?\vS֎gyol6"{8:'UMu-YÇ]g:tnt̙,YܻwXԩӀZ4a„&M̟keH>={fD_ ^DY|tz6D W:gҐ0nk&OTW,KS/ֲ'P :oҐ(%񤪤ׅ; rA/_#xJUEXtVJF8*YE}lw%S4H<(奠ۡ[*8C*Q"7OJ%(9VL'K{?J?dǏjy^1iJ3KlN̕JWY̞5_`HGsUuk׮Xݻw][w˜9ÇM[۴i3|pc!Eϟ`Wʕ,kFP'x}5J}~6o\=kC]G#kS Ӈ?N[upb_n;E4 9mՏ]5ѩM^FixMrjAQmQb Nm2P :4Q3qur2{56(9-[j'K}ˑ:7T%xdo( 4Vߺ^c͛7QV֍y 8mU3U2eܼioɒ%*U2m + ̔)۶G +-[|-Z:uTo{VZUG6 ^DF &:4KӇT˩M +ifebAMĬ:uP}`}bMilgab~Me4Ob6<,r,VWh]'Ḷ{UbnݣNn2c2GLUea: ;ʙU^,TMI}ud^Nj0'0V V  pڦMJD.ؿŊϝ3={/_nm۶?GM8ѺaEgOO +l߾+}GA ^P4]M5Ko]BÇ|yyy} 2:t(nܸV}?Vz+^ǣ( xՑ0{VHV&f`W$R<:w^p$RMn. Aeȩ4q0{P\6q>̡aWܚaqqY[r~e2jU@yHysL;C1h.\(X?Б3歾 ~UyW7c +r Ni ݻװaC'᎝ODΝ;gںܹsWqyECUV+WAq}ǖǭROd +{[c(Cx8իat{G;רʮ~Uo9XtZK,Fbls [0+hhXZV0k +j~~{_cWe}Z~\"4%ՈT%m>4r +9$0Cdљ jBKH #¶t޷?YS8N^w}*LWnFd>uNNѣ֭[5:u$NMq]ti!iҤ)_M6-XJ*>>>/^L(+s޳gCr/5ck!+}(ӕ ӆ a6AMSBL1C~Lm;Lܨ%56Z'.WA 8I+'&gj1̹cWr:/UjYF8c48qlg5jQZ;tX|q0q p',(߅Gadu.AU\֫]6 8Ͳ:۽{wɓ'ӧO8{vycaƌ~կ_ڴi:l޼h0]-P'x^Q:h;F~VUV//u쨾}m7z +r^Sub$FVg{޶>}M4{XWGoxU::"&Fh$?U 6~Lvq$>|hK4.$#q*$~I&\b.~"J]'}$6Я\hĎOMl/&RIՖJ`UW%6R#Gw#DcH 8R9:ƗhtN`H@婫kAv;$k/Rcs5e2a :Ni +Vl˖ ŋϞ=!C|||\4nĉ7vO?-P'xM[۽=_T:\ϮLB'B;oۦuuVCC- \8PCXNʔDl3K%Nynj;H&һ>YiH=-Lbʔ+M3mJL+Y|qV uOKgjDrw$[ tkpٝ&yd*Q@,X *j`[H v~Y娏WOuNN uwލ?Bϙ3)R?-P'cw)G|*nNa׮Y3͝k[햚UpFd[.h>gbӦ7ϕ+jWڎ1AJrV+qHq/lH4q&cHbJc On59'gXLkxW,T %2%~Y|qV_zɼZ0l3+ێĐDMdb*g/-r2[mԨ \:ՠaI.e-&tnׂl}?Y7ѳgsh<:Q':8Ç'{;w̗/eCr=*y_[fǛ]>G>;<~~ٻ#x֖w3+&1H g*ӬBHzV'#83V+3\ݲ YUW%7ۑLLiZsyŲ0 + 3qyh8#VE#A9“rD>1gyN$6=mS +ޗ2I~-"9D2^M[î0|\UcSD/ 8:+W;пΝ;[67NG_W[|U2gUו%%J`[yo]}Xv5Wii2I]|ĨO%Me\9;?F#8|oz>1}!w%^TɕC+ʿW;yw$l%4{ʼn?PZ9_J)^jPxVfر"2rωuGM*Ou֫PtY9s,P'?w3 ,+j pԨf:m3 )X'P|y___ܴ^fƍC N8ax܄:lE:6Px󳥉ةŵUkHb熊8m?G|d{ʼnou]Do-LmD#뻉16mZk& `"Ҭշ5Ҥ.;Sj78F%V/:>hٿŨD㬾“.YmgDw'˖8gk>ILjw%*<V:{Qmׂuw5^y]D6mZ̔)ӎ;\Buׯ_ٵkW޼yP']kwk{ԕ̖AڪZ^QYw̺mn(hcr*㬺:1GF[bQ( ɉmU&dK,[($oV:xҕBTWCbN{fzԩgWVZ^z :|_\Hۻv/W z/V,zO~J<~D7*M_4=eۢĂHm~0l%n e(DmqEqV'a;1>1zyEEl[G6HjTK+f0>8]e$TO9cĜ:wG͛7jԨݻw{{{NRJ|믿nH˾}:C/'5W\UP7,M_dVдeBg$iR=rG$1ʉ.Y͕ٹ Zc'@CjD'}E˩~Es?We`=GmV_mUyI={F11N2er",ԨQ?>iҤӧO/_ԩٷo_Μ9P'sպG>gt4z3!Х +(KZ;]x,e-NL$ƔĬywW kjPH|#퓳S"񨑸#'WNhV2>܌>n еPr+_<0kĐ:.] 0}"FPPPlbښ8q;wfӡ"e˖?><\:"]ݺ[c%QJDI$D$,'{om$8DO+|^^|ML8oq7?NƅZjUXzyY6$CZΝ렃͛7&Lhِ܁: bB@F&M䦝G) X`Ĉ}>އz7dɒ7nt!uΝl~xxz*Th۶mOEnݺA7nؚu@Q'4bpqƑgϞ={_"Es??? n GӨu՛>}z$HpرԩS[0':+m۶C `$N<F@ 4hPǎ֪U#FX0Cʕ,Yb5^xǏ׬Q'DuNN  ̙3n{͕+9}tL=zdC֭ fHAy 8:\'`Ȟ=tȝ;={Ll5EGI$5u@Q'4bvѣ[hC &OlHΟ?%K۷o0qď>ȂX: pu1N޽{3g>{=zٳ#iРԩSVZu^^^2 GӨuEUZ^kv1,]r5iҤٽ{wd= Q'DuNN ׯ?m4Ӧ|ܹӭgϞ͛7+WL[Ǐv"Eu Ay 8:Nŋ߳giUʔ)/*UСCf͚nJ,ȣNi .\x! X̙3%K oذ!]t.={lŊu:t(: puyyQ-Z/΁I&,g̘8pSTR%˽N )3+{m,/nzgknXdx``KBR8qR2~v`Eyݗ *8Z +endstream endobj 465 0 obj <> +stream +xye}w`9LQ*W!YJ䊡\Fؠ@D9R + Ug>32GV[U]4vCkt ZW.>x|Cwc ةFW~1Psλ4^TOntw}J{81Hsܧ׀5rnEѽ{>}1PCGuFܵ(޽A R'g=(vܳ*۾ DϾE1oqsڿԙ98x~7yb:5| upwqH۷yb:6Q,8ȁ@$sh"C3&7H D2fM 94n̡pd̀@$sh"C3&7H D0zyԙ9tQo2'#s8zԉ9t0@̡/Ā1"ϡ-@ C RzL xnGut@ R:Zc^ X'D +Ck-pܟP8w)bbС| x 8'Ԏv@9t4N~Pu6}f81Hd x:-6 1H#^2sGM)΂@sOɗu|Pi-@ R9$1H h<8}bRΡ, ǀW0巜1H Ё4ԀFc 53m1X< ׀c]u:@QrYo8b͡ +" Հb@ߩuB@vNfF R9twH Xx)]vh]tx` <%5kKn3Sb̡C h$T^P Xq)?_^nd~_@C1 Ā /.z-DJ1at K/{b̡o4q x)ಷ]"C/#i bH +Xuv6 DJ47 E н;"Cj@p͵-`Ie5-DJ6>)P>(\1H-l,):Pƀ.g`Kӄ@sǀnΆWt!)1)3}D*7ԓb7ӈ@b_\}Y)2D(ܲoOiF R>1bO O 8]ݖbӏ@|b@坻t$)%I Ȁ@$1 bĀ D2 I Ȁ@$1 b:޵&ާyS)b:gx !iĀ>/"͜P+ߐUt@S^e4b@)^G81H3+w,JBDa1/$@x%"͸)^J,1H] g]y/%@ŀ?NqY Ā-Lv 1H3 TSnIv1H3!T뒮A Ҍc>'p铧WD1࢑.B Ҍ|0A"͈r$a"̈́гLj 1Hŀ4}j-;4}j".\rV׽3/hLD-U9ilD,|dC {KX r!)sM5ಁpKgeD R^1`ϖ6svI[7yRN"e=wu?҇;'+bF7sYS b{i;ƏϏ@baňno;U_6mG RF1`b;[eT61HĀ| ]iryO -S/wAQfs")u wǀ7׉j}fC RԇՏ;3Nb[p."S6.|g7ԫ;I[q䑻LDJΚ ZwNDJc@;e kyeK RpMvpБ)6+1HcNyT1R=W51HcMy1j1.{̒@1̞k(T*Kg;̛Ӓ@1h Z{r̕@1Tc_38 F׀Pb{rP it 8K R|1ح3rTz~T@ R:?>K\*ۓdCyJ/`@/$Of"ŀ |Ŏsf["̡hK?.JYd̀@$sh"C3&7H D2fM 94n̡pd̀@$sh"C3&7H D2fM R)}7">^~S5Ɉ@9|o]RЪ9 Ep-C?]+h]zFJƀ +1JC] ܯC)JǀC/('l]t 7%E͡KZ?9t1b3>uQ>|v̡g b@1k:kxlgƀibQ5@ VC翨2T>:1;YJ1J>QQ/T~1`NQt}ۊPR9ԍۮ^U7P UŀWɿ6`[}K RΡ-`Pycؚ5o}ͽ l޼l7eh @Ρ0Q yH XtPь9Ë%CZ1p Mb"swNk(\ (ts4^D 2͡?ܧsg1`CPF9t'Ol2e$CGj@1rϙMƀ -"@)ГD T6F?pU߉KkPF9tb/8`L \^cx_~`g=F 2Ρ0eƀŀAbϡ5` XVdb@]bRϡ'?P S{P@sgk1eO_:I1.1HkW {'ŀ")qWwP@6ŀZ@G?)%=1PP@ĀO.)Fˑ'ŀ"%\_ܾ'ŀ"%|=)%=㇏>P@6@rNj<)%m1R9t8\.BCb@]bNU_#1`b*wrgWDjw ~Oŀ"ĀJe'n?D +J}y1HA15Ds"%C~ۛ~J[bVCV#௾%_I'DJ2.鎁U6-1)7K1H)з|fhﺫ1Fb̡kſNǀKT~xɘY|^c@_KD*=aq1_KD*=8–_LDj` +endstream endobj 491 0 obj [/Indexed /DeviceRGB 255 (:::kkklll///몪RRR<<<000TTT四\n\n\n###IIIQQQGGGppp bbb333KKKwww\)\)\)OOO%%%߻तWWW---...CCCvvvttt___PPP111rrr+++ccc777ddd222VVVfff̎FFF;;;``` ]]]ڽjjjUUUDDDBBB&&&ˠ\r\r\r444 ,,,MMM???!!!ZZZAAAnnnӃzzz"""uuu$$$888LLL666HHHhhhEEEeee{{{qqq@@@SSSNNN󔔔999yyygggsss^^^'''oooٮxxxiiiݿ\(\(\(aaaҳ===XXX궶ן~~~>>>[[[555mmm\\\\\\YYY|||JJJ)] endobj 464 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4109 /Length 32233 >> +stream +x cgZv׽-tO$VuXBHn.))ׄH)"KRr+TJSci3g朙9~y~gf_|~~)$sƿӟ|* @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'rdNNr99 W @\!'z,Y{E/֭V[@ @Gy۷W^z:5r99[o8ꨣ&MY#'z׻w[l_֨Qc]CN2''3Yfwqz"i nO<1nS˗׬Ys]ς*@N2''Ν۪UK/K.YsIKtVCwߺO +EիWӦMOd۶mKo1bDϧsuQ .,('@ s\N`ȑ;w^fM:thyÇVZ%O)^k۶E &9܆2dȥ^p&U%'ХKÇ'=G;W +='i%Hdn ۷O>zJN# Mr "'I=o߾zDfϞ}衇~) oܸq?pk^zd>LN2aOhӦͲeˊ~N`uM=&???]vLkvG| 髯_~_z8`L @6@HgӮ]rSs=m+ N;vlv99H߆8sFzĉ۶m[9)YNXjU.9t˔2}?pٲekn֬V[mUQW_}.;un;5 { H+' '۠s ޽{4sGݵkז-[VTǏ߾}6xo4߿GE[R{뭷kUV% ' '(CNࡇڵlgqoٜϺt2|ңGz)vw|9֬YsAM:599H@Z9իWw-S99䐉'֪U+kYݺu,Xb̙36mݢ]v=oR[.c }r/_~'N4)l +9tp >h }rr+Wl߾}O^iӚ7oY>z4h0{,> +JSOs1錔 tq;i6f̘O?tvJ{sO4tNUPPԫW/YJN e˖5jh  $ 4.+9;#o?֭[w޼ymQ:꫿[o5YJN .oNsON qN`ҤI{իzի>v9眓S;C_xdwygN9?߲evᣏ>|b  }r r~if;OUnVZqoٚ|n%ۺvxK=Ϸ~h…3fD5d)((oO!rr>995kq=\zw\֭wma4hzo?ԓD;Mr„ o暞={fmI $sM7]~yyym۶8qbC }rs_UW]?ڠN:imԮ]?Oػv}ni>|x.]owiӦemI $p† .]4rvy=LqON`UV%߬Ys=7ښ޺wqz V̚5+Zъ+-ժUOn2 9ڵkWn9s>#9Br99.}wƌņUV-ڣ/x{Oԓt鮻JUZ.kYfFMBNA}YM6O>dBN NN2''KNλ{xoVܨQu2nݺx giӦ>CK[̮:jԨ>LNNs9gȑmٳԩ _zuwn:cľ:u| {{C=4,X{.^ZժU;曗c ꫯpk֬ 6K. sr݋ԨQGQof۷o>}vmvĉ/((8CN~źu9e˖@܏?{Ι3'޲>+o sUN`„ 7[n<;S~3t-]N:_uɮYf5l0zyuוn^^93p-آǖ$'w5+z꯽Z`@dn | 6<٧yHќ@ΝojժU5hР.,aW.] e˖k֬)_ڵky睭[.qr{&MX"}_t@dn /{{g!EsK*p~Yb;矗a̙SfK..Ux˪Ukz+9uY r-}9Hoժɓ-uԙ={fmVt@zaaϷשI?[lV1٨'/*V_ㆰu\?ldYx|mj\*za= <ӭ[.,Qfm-J=*sz]ƍ;o6ma/O<1a„{3anmۖp9sd嬳*UVņ oϿ^y3(0,-kk=?4 {Q*V9Z㯷[ZYXcWD}V_}+ q]-YWqOV cڢI8 +j9_Nk{]*zj} ,]q ,l喓'On޼ys-'dɒv/,նmۉ'~[~7O?b9͛7a„ǿk֬)ǔ:t0tЭڪ |_hQ3ϼ{KXO|7dxizɭGz7c^Tyָ6nпgJhW ?eۆ w-ہSi7o c&>lFzJpU`W3\ciKWҥË5nƍ;#Sk9h2єJ׬Ysu-|pVZ9EM4)? + +4m[n9t@ƌ[ϝ;mɑrqrUۚ5a{dzCCjU1~ +''j2wb{> <+{PϻzeUL9gMg_1_v5l>Jr.v5x=®IwNzuxjOw28Zƶi|V+"l|N`ԩtP›רQoرccs*'`Xd׍7xe7o^V>·iG}z饗tEN9#F` <'~EwСCrqrUؤ!alappR1W^ -Z$6-o΂rD]bkl_ާ^jeVLÁ&{g4V|>:iKI>XO8ʫҋ/NėGګ\'}خ0yx0khY]}paf͚k>ˆfyMv$?<_6U;'r͛ϙ:t;6tӒ]98~p /~<>,[֜@'|2nܸoi6vm۷Og>M67o^I[~Hy?Wk_8ź*9sjժtרQkKWȏ@3p+RkرrJg9-[Vl@9B&M5jSO=U#GC)|#93,~g=:z1~O>yʕ%d+'_D'Iy㎼>{РA[lEfN`͚5|/oiҤ믿F8JN NN(Xν.=a]ϣ&+lT==B 'гgjEzuÀ漲SUc࿲7\աMUu-xc}޽9T㙽C޼s1᮫K. Я_jEk<RU՜ 7pWضmz;S. ,ZX;;GH8 //s|͋o9/~.!Cz@@OOy[ +F?O]wpSụ[Y*~:/]C0oK|ٳc_;.՜98AbѮvTY~^iq[u^gbe*0llW|3ER͝rVY1u\&~uZOu|oߣu(}W}/Me+.:u93;/y'Ɋ4+DԞie?m}g4L=0UŴw?=o.wOߟ.,[Etуo4eRWY&՟+m~tW7wx>=.yU]O ,X5֫W}ο*R1*T.K םl0R5v>!5^sM2뻥iŠѮ֪YQ{9/aOޱ+յ׆*}X:PaИRv:v5G;V =z=9)u芽:&>юCy%_CƖrVѮ=!3XGGjnG8>'9'aOtun!\qEKi1wag>ڱt+TnR1މw?U2'WPP0mڴg}駟:uի}:뮻V3x OW^y}es9rd“TNN _2dKnuu\pAk֬6IڴiSo׮]: 争S/ sz0 +5izGf&\:$'ظqj4v2T O m}y*ήvhn5 +o]zfŒ}ױo?sʬSQ-J4ls3L^tdZqKg]ڗy%CiЙmÍUxjbױJYq믗>,V|pBRxllWecC({o>*Mԏ,vCJYq}k%l85. R5U1ZŃzdA{{B7NwTv_#;+ʪvNofҤI&L׿wߕ Gy1c~f}n u鮻*خ]{X\aEzGKs>aÆ5jٲcm8` ,_QFϏDNp989ɗ)U3ve8x{wO+~S aTliG+Fwu&-̱a;I+F>خ~$1ѮFk20o^iEޏ~"vHuL+F1'w[Ův)6gN,}QΊi=OKt-6 #{?7v,E? uyτp፩vuhW n]mX6)yya߯ݚ:T}r~X:Wъo YqP/#hW*P?9UVM2e<_|Qcwac|4gy#,'5:ujZJ_bE6m{b$'PhѢEÆ 1bDTF~~%\ߎ5e D:th~~;,y@@NkYl_ˤ72Gb Ͽxt o+п#݊n7I9eǀlV< If͡Z_pUV80\~Mt +Sf$]}ӷfs1? +/pugt+xct'ic/ O:N\+pӭxMKn:Sx1uh;/^^kYda6}瘮Ü@[n:thů5k{]PPo;;ur?$VẔ̇>ӭ ~+joLaڴ>};ŗڳXq&*LI{{Q*^}^}}TOK dbwv5v5_Ì߁/j+;8*>b,'̶[)#nů{3ӭ?SӮ7X&+ ͝_-Nzسk,JZ/d28qJh90qo;>(//̟;E5%P_,;\ފE>'9,]^56:)넢]}ad;Зbt/7*6s+jk`EgN˒naŠK6*?(oVGX$-6]ǵ^X1bQMw3j+5mv8sX"aJRci+GŅ ÎvὅjX#ům*ժ~1n}W +-K7jF5qBxC+b+?gaEflWXb^ rq}?|}(vu{QFٝM7t[YO?ݢEt8 HNвeF1poY;qN`yo[qܳ2M7TCExdr6ap8L+sτ~I8$=(o Ҿ ]xD2U+{pQ% W}) +|s4*ṕV,f$=aM[Vqpe;*>pJ^Ni]•i_B#F-Q]Ck_=O3[n N*$kL9[ׇ>ЭKqV +'o}ݣG^8c1CUV4}٪-5jx'[lIƏRN +}w:t%K +[ל… 6ltxK>}z] }ψ >7?cxѢeSVoc/&+W,iF'pO>4vȘ=߉+nΰOhdc>}jaPOeQ7iטIŸ]}k̊%ewW'~zZZ۳TfŒ^ߤIߕaŸ>L̊%eyW?9&3ZNUq-o~V',WwkلGIS3ÊO|rj$kZs~^c~~WPŒmԌXmw˞Kw^;V 4'PhٲeIyyy=zׯ_j2,dɒ͛իG{]3<ӪU9(t18a„z͜9sM6)yrьyi {>IY^{yC4 v4 *$jw'.l^?<]+}=t(!ó.ٝƶw v"*V}œ [D?¯+b2;gwu~:*b/~5tL]zѯ–0WOG]~-^ g%쪠5L#3/>1|97yXq^+@ؠs=Ç8q$h߾߿fJthO}xKx_*9\tIyyySL9q*989\t0hLž̬) 4$pKgrUpk®h}AaH@®h!Et / ct ႬpWp{eV8E]%TPd*w wVfŊ3,%Ԭ߆Z oaaxvg*v֪ĊZX6E+|ic +[n6Z%Yc;gYش|gNQ解FXYHBã%38ՄüW!'Pܗ_~y뭷6lźn &e=ѣ;v[Z{キC=5NN`ܹwΙ3׿.scrA|a ‡oOc*V ?^xP=pkH®ãb$kN./9]paU0.anNYm%Wov \.䊛$.YJXwg&pjе32\0>aW0aAؾlޝdiKq v +o?;INQ.%Y'Bm^r@b|͈# R,-f=? /pG㏅oGu5mڴ-ZY&ޒry!jhGn 7$?[=~)p|s`bk®sU#Cr[€]ѯ8g&kN {;w>ŒJX.&'zhP7 +>ze}>\"t  7%+^6tNuV}o8(<84 J<<0#+9S8'3*|79eHgth ="Lhtp1Y@N on曗.]o1bDufȑ:_F'tR&X + +;8Q[""vZ[P;E} ԮN[Uk ~-Em}ڣ?Z"vݑv̝,73 z3sι%K$}KyHiFq2O6!XUU57x,jWd` 5.s.oʪޑ*iiAq2࿲tG?t_9lH*Q#QGx,T{+͛7G=k֬Ov 6rM6ݽ{w ;+WǼL"Ŋ+qn 9r=J.]˕+:uj+Fhx~ԩdn| 5w\H'#?:YWv%+l;4/6%Rq:!ͼR W6~uR]sz^[4T.!gGE\\]v3gL4_}jժmϝ^\ҤIvʕ+;> DFFn߾}Ŋk֬qF)R(lذaƍӦMkPoeNWN'O {NauN ""bfgSLR_rAe|Wc1XM;-i= 9D*ے> tO*,|t+8jޒ nC8WԖN^ޗJiiS /\RQY!jzC8[;jTJ}Di!)_qR=B.OLHIž!ZDiSo9Y23Pv*=q#A/<8' '`Gk׮1~>}T^} +Hk׮?>f˔)#' xΜ9gstu6p)SVe7hERauN^^^Zǒjd +y48B+6+_ٲ\q=%j"djS*DtTRmBƯz5GmYS.53ǔ$|Tί65?IeTl.Hj_Q[q2y_GlX$AMHIO̯2y]<1ܻ%TɔR6[hV~ QiAqKyE\^XXؙ3g4h`e+VٳgNZpaϞ= MUV]dٳgc|6l(PV6'pʕÇ+xMo̟?ƍ٩}9`ˤI:tV"'`9pk%[MՖ2ghGXɭpTAW}HM|T33˖[eImզ2oy|ZT,GKG>dmI_Q[9e/.XE"Uxʶ%[!Tʂ߂SMm.Md=IcKR_,<$m_\>T,- T%棪.6KW;%p9rrz 8r8=}ҥKQQQJRru%KYdpZOLѣG>8qD4*zrw)T͛7 {1chrprpY7Rmid)d_.$W]q';*-TO'9l:Z|#!'^Q[T,!gHK>ɚ]Q9 +ʥ3,;|4\Q9$T| klUX._O[9u@Z6喟/KV%wR6ISզBGC8_ڨ%믈_}veȬyE\] ]Yf?eCoլXڏYUWvU-\_D}䒊%_:Uu~EmWBNxV-cN vrey]eK$]eRߒV$'x9Yf}WQQQʶ9~M0\gf'Μ9ӠA .8>,Y\rދm ܹj8#'`9pk%[Ms֭Ҫ\Ylr+\j6}9۲wMAO )Z e"3[ibfrK2tr/y˼zbQQ}ӣ+'l-LlUuIEmW5ܸ,uTe"金3+x!sߝUxʶ%Vɞ]ϟ+Ԋʪ޸Q%\C6ʹϏ=Ӹ/f~EO~OTnAzI6BOHZzL:8}'/LUTI$NIHќ2#Gؚعsg*U-$k۶m2ej Ye˖ǔ$d$uW5cFqZzd*j]UmX81mƍ69u T\?wO2o?ʪMDܑ*MONWQ|~36=9)n6SߖMLN\?s md{zŐ)iUP6Oߐ_Nc$d$ ܹ!*t:yqPܴ@.^xѡCXz۔˗Yhm۶yxhvq,'0iҤ}jx. .Ǿ[ 5jᥧٳg~$@DDf,)SIN\ɣ܍P? 2fK3Gz'O4(xW|ӋݎF%7F̕M$O.ÆI߾p92diے>l=N4*_TVowael[!lq|ʪ'+rZjTL#UHV,0U!YEkSc\UWwU?^A:y!RҧMQ3qM2fs'HEwQ=n> +JۤO1xg~U2e <*5{fkH޹Çm2qM9-[.^%Jغuk=СC 05k֜:ujMގ-׶J hi*ZR߸Fe5(xPKiT7M'v 8(Kaii}]IRrF῟1;O>5;MJr-8$J++>,%K7'|rDZ* M;R~/Y˴}TmWD7:P +zįWih^S4ޱ{T4)s|"UJ| qұ|G]HVbc- eS֎.^l)V?r:_n;,U;l#CH=;Jt$cKXë-d;*CBd/պ6 EY.2c뭇3pxEw%'pzݾ}\+sNر}jO$K:uV^{^c6ڶm?v1>}z;sׯ_/Tq dرZ @s)h]+lFFalPP.3V*FF j˪ xz4鿯;YT{տKN;J%ѭ|7f ɚUێ +T h*Ol9敟Oe3ʵkFq+KU;)Mz4) dBf{ŇeOK( 7_pU iO&Լb,v_3S޷DQ Un!{l>{}GŽ[wcQ~̕UMmɂu]Yreu" ;sN޼yݻg9+W8p`XX# N>'y͛g2e\$5{NI&ʏ᥷#Gx"'`@N\u R]_^ȿ]8J'//KrSMHD:8)s"u1}EV54Tj԰-%s4zUFWU(mi x[Ag7`cՇ ( +ʊseiަ鵝f|,+Kn8VU9R@$4PN@ШQgϞ6ٗqN:9rL>59ҥW'OJ[/z| /suԩ4i_Er *ZRo򫵫ÈJ4.x@Z3MOD`{1POxPKiw`IRr{hy{ȧ8޽'_n.Uh[AHrVͿVCVubEXEq/e'8b/EUӶbr^M̓z68 e&T[wJ0Ks SoAի;X&vH _*:$՛}Kʶﵭ@nS (^x7 :c3"xSҤI:uQ+ΜuƏ8޽_ʔ)hDJ,MS~x-JN$PKbsmm 6lXuRQT_,ӡɔ%ɶ\φڢ~!VK]fv˪m:ܙ{I^MJ3?Z~6ZάKmv|w?[O7tf>}d„/JN +DB@s?T֚|ӊ<\kMY9X.5?UGE9ZK *egU5V5{V]l wH8+|)[3:) v*֐VeU+0QlXSm8VUfnRTK[X*v)aEÇ'~beڲwt7zy`y̐A$"¡2kq2++($wJRtJŝR\ÊGJW޳G*0++֕$rOrhX1Faϙe.VZ+̵-W̱-0Uxxȋ5cU]sU zGsbTr1:Բe˰8{,Xp޽2dsЇ6lP^Kt9+W.\fϞݾ}{'&'`@NF}evsKں~|ҥ%$D{OZ]:V:"L +3Gfe6f(51V\-}sw$H.IC:Tc:J2ʊ͛޽qT,_Bˤz3m eWM?8+k%SF*^dQ[=&kXq -t$Ԓo5y ~2RÊQ=zԩ6Ѧg]mx*1ΧC-$UK韥U]"Z++*?QQ)WGuT#m?:luk*tUg\Eem QHݜ"00pTߓ (>|خ]˗>۰aCҤI97qu4A(t=aYy̓G._-vT-׎_QYեRCmeͷ2UUJ(E -1\U^ޖ?Bܕ9.Tl'?)^j PQp*WCEe[h~:zʯK%!vxsƍc5 Ę={v׮]_xa[@@To|AN@s+V0'K +rNur yeWBf/uC޸3KYPj\[ch!o|_nO)d2W18X\wjwŗ#S7':TX=ٵFzҪ.Zg9!KJ;o.-[qLn"8b$-S7K9slhoɳgRU\-},RiKHŊVU&Uls"1I>_Q9P)kCΜUUt\DNɣGX eJg<KeUoO7Wq6ƪ72?BeUkR\*k$۔9Z(X(uJwG]n*sl,X.gEZv$R6!'9yu׮]ر5$'B +sСC q D`trz'Q6˼yoߖmeZvzy,L+lTiJ/ul8J .ZjL/ -/cWۺJŘUwk*i#?l[.H:km@5[-c*Z6t<.Gdj㛻Xڰ;+U]^A"bV5<{&oV+gJ8L: ZhqbֲaٷO)dw%1ڨ̙c͛9TЯrsåV2 [7n4{2X@OI 3Ǿ(UgTIiT$^='zj >lOdɶlR &s~~~/fJD9(Rr:6Ǐ={B +Nڦc*oY$?_&@ xR"뾤^VˣkƓܒXi+c76hΩP궑!/Egڔ"ѩ4!8X:w_lJ'/eH vU3tEtI,T_sXVVU?H2ؑUU>sHϞlY 77]w6MI$z Q֯˨u_Fnr<ޓ4n53I~;{8=zȓ'fT}tɞ=fY_o&L)1DyKZd/eUW:qo&QV\iA9Z1ĭgVͱۤք@6M7ك9sovss`ozQfYQHL9+W.ˇ2 4jhʕVؙQNxǏw(4VXcǎz6#'ËHiW~6u,R )%Y<=~'r㎄]cd1s_jZe݊#|4**vSBtx{[;'Y31} xn+cɘ^*7;ǣgeqWUӊ/UZd¨qnZ~Uv\_sbWVu` o("#e03FЁ/۴cŹgkfeJť6_~^yHqy_U_+?_cOTdqPy׊_|.tʔA*SY_tX |>;zʪ*Re'Jǎ{sT>4?dhFUDZb9Bۅm9?s7n<~ϕ=iҤW^Æ kQQQ}>K޵kW-1 ԨQcӦMq 9@NeW#-佤;woH_[:t)S$U*ێsޓ3FgN+q_Vud`eUwЯjx떎2m{H{y^ɕK,ctF/0 I_i}lƪv,&ٳ2=sWOc԰bnjz,+sUݶM?ǫW_t"'<LJs\e!!'?DTDu=&us8p*r^t^lً/T;$II&ӦMp &jtr8'PLX*\ ޽|)gȸt:F]qDg+)_\ҥᅲM?Ү4h s/ .ポ7k\qXGê޻_`UWүݻҰ~U=<Ի9_O IW3Ċɐxm+kWu,ic\)}bF [yNX/u޺9>xԊUYU= ,Z{wލ}Ѷmreς ڵkeLSr-Z0jȚ5k#ݻرcw*S''H ?{̅8{lݺu-tP~ K(a1'O={v zHZʍJ`)o +ʕwAVOٹSZRkrPZvگnվnw;/Z +ٽ[v˜Ti<\j}⚊FU]PV`U/]={:VܻWԿ]P;eʠ0ժIVxQsIO\Sw98r4i޻woԩ-YdT[s:ѣG)m}ZJY.\M6;v47Dp_Xb:ٳSǩ @~SO>-++:_*jM7+7z{|IuKFŀ U|\_5;MU-Y-=>9ªR,"##[ll2[J9>*hŋ ײWh^S3 X o~ܹvĉ mժUM65ԩ̙3M ,^ώA~z@@-ʺM0ANr#'`@NhY[.'=T"2ԫ :]ª|)GU[V+ U]SN;zOkΣ+ Ui~UqPկj nU9~5#ZQZӸ?NٜÇ bNgKh"::Zu 43VNw'N{ܴi;w֭[ϟ?_gr#'`@N]efrö7~_VZ'#x"L_qy* ^bĈ@Kr#'`@N6G7?)GV疏oX^˕*:ag/Ʌ*sLW\-WuoUuNwY͛ъJ!Os* W5U[UwN|#Nzݺu+W!CTj-[ߪ?VN UTwM,ݣ}i۶mCBB>;qDc^9r{D>HRRT)޶3LJEs:⻀vxV*99Ǐ-[ɓ-ŋZjڵdbۻt2sLզsΆrݻw/_xA 4y"AFMNz #';'Ю]yYyWXD>>>ީR{0QQQuݴiiS4iN<;w9#G4Ȏwܩ]CxÇ<8f ?~@k:֭[W~}ʖ-[ժUT3gNGGl޽{e˖=iSjBCCu:ر#_| ^3gs .](˞Zj5jԨYq90 '8 L6MOwؑ4iRc9gN>k׎?]tϟϒ%!'`wH௿Tŋm}c)*W[xbŊ)c'90 '8 ֬YP]vs̱@JviիuֱǏ߿-[ \zr.\-YfSNݺuV90 '8- ܹsի;?vX 2 K.]```@@@d4uSƍct;vx}!7nT\ܹst.\_|Qnݒ%K*m*DNz {KrpWXasӧOO$Ls:/=zt̙eVuVbcZpa4i (=}n9slڴ_ѢEm-a@Nz {r .lݺֺu.^8]tMr2e7o^zcvعsgժUb2eJ=l=ZDDcuȐ!Cƍ*T`.Ya=r#'`@Np\ \t'""B +(,RH9+._}L0(xժUNm۶]tɟ?c}90 '8.qƌ3p@Θ1`1/~N@VXǏL۫Tbúu֭9q5'`-[(#^vmDDϔH.cVTTTҥ;f~k֬qՐ, '`+VXy?~6m6"'8. >}iӦ%K]v!o޼rh>69rlٲQQQ=:%JpTnjcCf͚9qoONݻʬӧO)R;{10Mcԩ{7nU1J.}a rɒ%sڐ\ื0'C)cǎٳg^ٳg6M63fH2e<<(X`xxaٳgQ"'`۷WR%nSN px\ื6'`pYfYEX"o޼70-^e˖{:tLUQENʇO>pB=SLvjժ9aT.DNp۟~QFyDr)Ru?#Gh^9 {Gs1N>=vؐh=+W+W9իW (CÞsmօC2f6mZ׮]];rJ\\8|򅅅p '8 j[ɧOޮ];C >|eѢEWǘqN`رwx# #'[㖻uaڴiɒ%sΨ,{G}tMÞ;vTTɅC20 kҤIӄ)Rą988rEGG/ZhW\ЭbŊʪeΜi`ɽ{6TNr\8㜀ŋ];$ +Ǒ3g:t{ɞ=իK*́zi._2YdW\Ig} Q '8[n 4h޼yѪRL9w͛;y`Akr}uxbN< Q '8%ҥu۷رc$IQYpᰰ +8{Ns͜@ʔ)>|UB@Np98DGGϝ;_~WРA%KJ3p֭[^ܹbŊqN@qҥ` tb̝;}1۩S~#&9'ۅA@Np9<|cƌQ6b5yxxlذL2X|._r~~~.IX9F\҅A@Np9{:u/<|p+WQKF5cƌ]l׬Ysƍ.FX9,Y\~݅A@Np9;EFFN4iСO>5ޟ&MzʕY:1b.\ț7ƃD8r9w\۶mgmΜ9mڴqxF=eʔ=z8 1b|||mۖ!CW9q=mڴA=zȰS͜9cǎN̝;wr3r +08qNg֭  rv]M +endstream endobj 463 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4109 /Length 26579 >> +stream +xSew T *tcC7+ްł{ú"bGذVP" +ހ?EdZ2Ifku$7_NBS2{{mskAQގ-ʧ'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @b'dOO(z==X @?#`r!O' +lO?tͻᄏ{ @Yg^{ûvZaz==@۶mǏ_z_ԩSS @͛72eJ{]vO' +,B?c>yO'o7 6,|6=Ȟ端jҤI.|6=Ȟ磏>ZaJo6klʔ)Oݦ'kF6mڌ7 {zP~7.:Oݦ' :tm-٥K {zPk=,ٽ{{ {zPva7:o {zP.褓N*y '\|Oݦ'@B hBϩz->~ɾc cх$J$-%M-ljUSKZ<%J.=(gq9۷o>} +8MOġҨ7!OλFnXCl1*]ձ?IX%Ebm[ q%B5̞c>ĸӟ93wԾ:3gپZ _'@du/qSo䭳K;ϼ1=VM?>s_T\G{I&WZ.=w~bjUS8yH=(O^қW^yG]mzo;OV-wkffٜUxLjo~{qǰ˪=eأkU_ffVU{U[ݷV,Ƥ?Q9{NmIL_U'1PߘgXUM%&.{NOL}X%ױ[_}=gu9qΪ- zP8[o-ymٳ(vf#Rb^\̬6'}gmǪW"TOj_YZCz_n#jLSU}clO﫺mEZԧܛM`t6cOW5o[pO6ffyOnFzUޠ'߬/bNjbLDzyv&t[rAOӽ{C=p>uEm8q.sK\>gqe9^VL,DGO'9ۯՇ/vh^)!'7I'nv$>l늼&멧b-FVj^KLju|,Um>n1y1牗תˉkMj/?!6ΐ3&ĵڥ?2%tte^rDOʳ[>7GѹsΧnH}2%(}U eXYM=qJJ!7Oa6N<8%BL,(}|y ugN&5qԅ1z[{UdbSL(xAUCv2}܉pquCggylbW5xfM()#qƅL8^c{tK=ťE?N|%䔞gu}WJo[zS P<_ͨٔ%Ύm6ٔZϊٔ&cUгϜ<쫩Ϝ7ٔ8oLUmDzUZ_bM%>LxN>֯fŲg%oFlj5U;$ttn>o]_b߱41ӿD\cǎ-G-N'@q5+N*.#\%%q~uXW_;{8::RR.).9(:﫩U=<ի3woAyL<0}l}Wݝ33̶?o\f^9N9+z]WѼ*ZԒ~9-g_|ĩ_5u:C/{lb'ݛľE @yYfɓ'ޜ6m/^mzf!!{匘As_c +=qs} wǾgƠsOWS̸;JݰvqѠ~[W\Qy&_On^@v>Vg@ @y]tn%%%k=ůN'*}yXmnK5L1uZoތ/Uٶ8˯U}n_mZW;S:>F|9=3m ETSg玱F}usUWw4_՟I/Wr/7~zfǷh5%U]8~\*n;{5xcfpsߌyK|jکqUFG˩1q-ҧ`X~81^{ +Br/mxJ~Q?jj_]+uL%>5S ެUm7dj%MVw@ @FfjРAۨQ3ro}CO0{vsF9-_4**:%%<ˣqǣ1㻊6*xe֬^UgsʮC?%:;ʗW_K}Tf_=pyҾZ{=OVeԪn3V+\ Ŭw^f՟ﭵ*k3wǬժUK?ĻG-̰&s\;૯FN? ++TYe qqJtϲbU}gnxU' Jjz4"u8%O7?5,<%~:IlxOQZ%V9ꓪ?1OKlٲ  +8:OOpq +YQ_K4ZjO>㻸ඊQ'/f".mcхżfpULcSScM&9(V'K㲁l8R}uq=qm<$:jO^z]WU6U}@(E; ⤓~_իW +ϕxq? _"q҉Tidx)Eʼn'fxځqILE*N<8đONX.8N8*#G_7תԊUK㫲h{ xqU>{>Z +]ziw\vowW=ԪfS+V.^~OjP\|GJLDZfttA;`GVmV @F'NlժUۏ5(Nbk^ѬqS|>2뗔+bR<z6v:Wҫzcݾ6ĦKTe6ˣ[x ?TtM +Ym}]Z% RK%NT^}*v=m>.s[/Fx619{#cJW/OW2,Ӊ*q+~ /4jdycR*x&S%B|Qhxj%}T'6O]UYKO2zwڷo_zs6z== +)}fBq}س[nn48S6]"K7M\L<ܳUZ57q~*oEƍ}b-sz1_MrG]Xs3ipxz%7q/*o_]*͗M\|49*wU[$nQzѡC$>8Z[QƏ~^Ǜ̝8jTz '|Ft<77?s۱M0![nslc.*ώgxeފ5׬nbd,hz_kU|3֪ܱ'KuM_ǟ~)a-g9JX7ވk83cMsx~B_=^&S{NjU kNB'9qҤhb/ 1;n^6Kg] #Gn7vۇ~(OH>ǣWZr{1E >?4dRmХS9ژŴ2Dm{26_2]kemWwKq4iU:+>Oqkŷ{+23ό}+xq1ULfx\&np@Un_~3ΈsΩlWGW1q &nzrz&nˎҧO[UWQGUvLM-İ+c;N?=lWǑG}(e_6q=fKJ}5qULܡs3fL6m̙? //mڴi׮]֭4h>zҰ2Yq;Ѣ ų7ƚmk*Ƥ+wufΊUwqG-#n񪖟8㭁9^Wߍ:&޼VԄԾrIKkˣc㇟Gj^+fF]Iɣ/^'_m9T^|I,t%ZvI!W>1k7`Ώƥ~b۝O8ߎ-~I~:īOh޼ +GV^Տ&'oD0ロnT^1yr4kVĹsx嶼&vZ-^Ϝy'~b&)&|Vm/:ѣC7Ϣi%k:q?l7jTz[EUsbwlҤoDף 9woB @z7|Aݻw׷9sa Ϙ`ov#dvet[f'PN8zye>8\{m~x%1^~]OwTa][ǯ.RnճIqCJX̞k88xNm|ԩwUj(}N蒘Ȥ=X+ ;٢C'+W 8eJ|}5{_>^j-&TjӘs`}3OnֳL,~?/[lVuؤ0q|D9O>Jz?{%~JfU/4okjKbŒKV9lŬT⊿~\5\oWeXVjo&?kfե'}g߿!e_G9hР@IIɱ{/6zcǗ'Zlxh$y4>*329jP_)ȕƤhK/1wj+x忎5H;~CSƤrѱEVF4*O8_Es!yiqyY$fra\S Ċ#C/ 㫏bF>zz3|饗]w9?6lw駤k~E,R]tYguڵkצM-[֫Wo M6zW_}uȐ!#G9sfY`]v%_ Pc>U3I3{u>Z}cv+NwϿD `lsyNxk|DtNPJ›bG.O^9\+ƾ{']4Dr#U<21;jÇ3f+ڵ?{>&Mx{GJR_+g„ \rM7T 1?#]t/Q Pݛ>4?Nw6/,I3]xR C1e[fH#[V#*qhg,ωC㼻XL1D@O2` FYzs-Z7n\Nf5Zjug .XK}|3a萝OZv;%yݓrα{T?Z1جQ$jΪVulhPvcj$'Ob4o?qlqJ5˗ĚpkH8XQǯU]8΢xMvTTcD?W(PtWnGW+8ax2+CExU8&s=㹲ˮ?q%0~.cXS ۿ;7Yfui̘1wwqvCT=һwpʢ?l7lܸqqEHOg1 E ?ה$Zh1ϦZ'^/[χZOw Vn)?Za= UqNgm{V!ﳩQ-{>ѷ&G[=qhuXvq_1[Ȳ<koW#qtX->({f8 nIO:uHPsm)VXe\v']j$]Wkl@Q.J N[5H|/Kl`#Wnx5FإmL({ͱAѧ O'%>up!,eJI<=ȨUV'NO?#)ݠA c=rzWիmnz$g0*oyrl/e{I=jo?8uw}o3"mx|pbXӓtoaϺ!N:YxL)ٳcэZŽℽ>.M,4>TݬYU!$'q^9O||YܸHhv}͖%*/흔X* __^Sֲ̹BU+#U?$q╱{AϏNn0!Z,W#1,xLQ ʓb@ w138Zv8ح ƕJJsQj$:*N@{ \T)1VX&>DXbӧiӦ'|'2^?Avir)\pA\zhΣw]mj4BOh{/]6lt{^ w6U7X|/6-L]Ş%oX`*fD͓\e8i?=H$~y9tđGb6iSKжq0Cz[gG|̨}Y YULl_O-+ +_<|G*kxj_}]+I< ܜtU}%T)E|99%u +x`MlnX.xXCay-6;,y/%HxrcWnWb#lɱB3_bġubk'n/?G%nXƄK1%n?%n0FUCߋC]R{V!,#bbee +T$]tL}ӧOͥO8C3f(g:o9T6Hxs`&cC?+.T؏cC$6&陼͇CK~VOA%W)cZ8RzO?]vξ[ >~%\r'Aj^5+MOڭ[cu=j)QJIsO#+fs9,91kV.9j]7$}D(M\ovoeAןKJ =[,W gK-HFtG%$qy:j2ҩ5g'РAvZ6rIO;vW.{.[o-dE~v}lsp 5=r PM"*y腛c;?=Fl|T8BhXn䡑z +ka|T,XgDǓ': Y%ĖG&M-TGc bU SsB|A8uO?|G%nX6yN<63fĝ{8pƱ,/ V)ML![fw;gJfxXJmc%9]n=mZ:q7yJsO믿A{?7%n0FW)]|^$w>-= +x,#bb9Zc#~.ONF9K> ٫کSnC3 |K/] P}C48y c;?x;yaՎ*$Qiaz,<-y:*fD͓\e8i?=H$~}%t䡇/m7Jϣgo.(7 K+HH*!"HR/ HbХ"%] Μ={b~.Z0s7M`Z>C' J^١3C[w>Bo8dF=,X&ө*g8yp:Ō/ ~NѶg FZD;5j/ɝIYSGxy.X$Ԫ&ye)nbjf}>˕eʔYGK.eΜĉ.|駝:urlIQ;wnܹ:ʕ+EΜxz㫹huiz:ܿSx%]xV0n{RO]ӥy~Y|7n(y ]d1ԯڿnz> iup㫉=emծ QNrxĊNm_z}e,$v\Y$PLMNm(gxLz8f61D'z;k'ՁwPqP}:6>L?61-tT:qy>W'Qj16z%n; Q_=ʐ- tݨuNjGhv' `l/$}YfլY3"_C$LpӦMO<ԩS߾}]Lȓ'ϖ-[[_9ym7-^E}㫹F@\nxN9M(n_jZL(Y!= +Ɲ7 vB5k% jUK__j%!R|Iik4fb֚"=SZV`'Vl9 Afͫ?-+klϸIJsWF_hwO6(__u>E*cHl+bQUkˋ >N,R-@s+OY&6MbZ:|=_NyM/?=M8J|Z$SAv~B{-^I_7eԢ5H Nk&}6*_DsM'W9r}I^z/`ƍ +p=gÆ wf=~E wxK#sz"#E:g1gcICsRU׉7̪H,v %M~\/XoFMAԩY H!@SOm߾ń?k׮āSf߀U_<ήFuJ4UMk8O}c=z{.T3/7o_;`1xZ7AܴpfK_P*ήS& ?j@' &}3泽4Tqčut+5^@ؾGOEt:X#n={j׬Ӊv*}v ԿҘ,]6TvxM}4"B>U@WgϖY4o=Ď:vJcg6vӫ)7r0fT:xڲU~4Ʃf喇I1JV]GiSuʖn|h!f畇aT6eb#qrd[Z=w'ef% }@BCC]bίZxqǖ' FA?zVv6z莇v4pP注Lnc}+9J=F9v? [sW8ǎ^͝[Z0aSs&M4f[v'SLf=,?ӧ-]~Ӌ(ڵS7>\|ؾbÆ7W \i0{}8\7eH75@ X7?'G>=&'R零َ)`G^$Fѹ>W͛w s'~z.&|g-Zpl=~B nlCmn}(vLS4N,I=QKg/Xnl>L4ۮg_JvL5cX-S'a\57S"MRϜ)XƁczVc8 _YEE[Uc@yy箥W+i|/'P̳*O˿rb \n +=Mx~j$uo[h"QfU7'P/*tb 6zy_7ӲIf}A6;Ƹ'D7|EzG8IܤzyЋܛ֮3駥%[orlUUݬyp^RY%nQy*\^üLܪ:Op\^&WԞM5ě6mݷ5{pDp_Oر %J_['3K&?T0..˝mG2{0Lb`U*|RS晭AvP+w덏lGS]?L], }(POs'61rl2|ܜ\V/PKl_ NU]wۿlT_U/i&YxA#٠K ̱DxP3VM,Q`\jVRKjRU~RŹm>N 0mڴڵk-[r3>`'3[Wl,3O+}6~C/Y>SQHǨjWchrT ?m enBPGH=U[;}(6~rʼK֣>5WFU?[ Ivcf=ܡZ9dxz9'SM\k tḪ%ީ6.i+)Oa}DCΜ~]qGUC5ِo|U}S5P3W)oq2qiz@׌:S5s#q ]Ec\OחxZ?/䭄69lEG6nX@%Jt?qiJUhe;.yN̾ݱW%i |+TéUuE#T e<8c;aHUUڎOc~dwdS8?Mvv6L_֣)U*]cVMKm-7RB)O_/?}w\Oibu-^L%ER]bq}B|-['ŢE*S&vZ<]F*Q=NbԊЅ 1LEdYMFU˕1UշE*l"Mu6~NT<#7 ė[cbYܮI˗NtI/ƐxK~\fY_xZ{ʭcؠOǎ{]9ydTY'c5:%C5c +pWݦmt:4#_&:v杻vN}WCɦZՄE4g/mWkbo_&P-`xwjDCW6W+i|/_&:g.<5tbثpaMh6M4h+b\׋i 3U0qff(:JT)UJ5կ+.ym6id6Vw&ީGuy-4|x,~cguEٞl7F fg;+ԸJUW?'P1%.mV3qժWqKP'W~>O\F[ń*]K}IpL\zE FIϜԲi34Q]c8 +@Lk&LMk׮9r8$OSz6$Kj.66NT+U=exfo:'"\IX#AE%G\.yӧM%@w$O]>GZ}$6N2CfU>\6S)*g9 _]*~|W_'mo"]qJT﹙x{/~SHVe'[7ur;H?i OlxHikq`$vw߽h`E|ڴIʔI[]U-,0U5u2>n&1Jb&5k'X1wK/Rg,Y̪YGV~OL_F(p> 8dΜy.&Ygmb"(' էcc": +M9ϾS:w1ョތY!;.9FU;74P9cݚ;87j71Iib}:aSoLB5.{F4zc5eZ=Z)m1SF=:εL1Ueb56Q3qOGV\%"d#aC͝7uw#Z|&v''e6`@3L4~߸ƷZا:jUv?t07-7]f<34|"yjfdVl9f[7pbTnfbdTJ_ݪ%58IlRM_OGq]ϭ0R$׫kMjܹVW]SתQz]'CWLݺb]Wim7|Nsb{/Eb +uq4_> *zu"MYUw6FUMZo~zĿbq(>UxD?ӥ2vk׍'Fzku5i|u]zـ<=չ| ^S~k_鸤MȢ˨qIUJ 8˗o˖-.&]gql=@ \7z뫟}8댸+; ܫpФN6ݳתQՆ5ٍW3H|ȑ_ [oO%J?-}5&NTQg:h;» g|EC:$|> 8ʕkΝ.&lݺ5w܎70'g+$D]Ws{U}M?Hu8tƋnSjT` \U7 N'9o&:H4>Ns:9 r0qlPǏI͘4iWZc5ә3UKG+eJiN$^T@:pLoE:/jP{eH&WfUӧfK<k'ui`{=_LUi_bVu@'mQ~JWL|8x?{Ȭ_rp+ۻ@‶qH죙ؠq4Պ-O5k=h\iDOvʕSN>}ǎǏO2elj׮ Azmx9$OR}/q2|y2wqUiVl 6^a;14;J=cYͪceVd@ILkv*ax?Y?򘮫Rug4 +PQ՝wO[dTD_'}u5jh֭ч +.ߪ艀g6,Z=p,vѸV7`}3ۓf5ZA+ĺFy`$6lOoUo^&rOf uo~>1{Ɵ D<>X~mf @p3gΝСC.ďϞ=2erlU[n͛7 իW['>ӒuZEh:u.T)g"yU=9.VlnUufk]ԡf%oU8xƸDo}_[U31s 3kj|Zi3zh<iRsf6UΪ3Nlzmޏ.7=hֵpqf7sey(qZs;,b>.-Z>|xӺwޣG/_3gάR ]tݻcA%]d!Yb%K$zMVU/|"U>sHgx&&OkF֭?ɓU@p3g|g,Xpݺu,閡Cnń &4h }n>|x-ܙ4iχ{Ikn.&lذ!,Gp[z&Os%OܯO͛g7$IӧO'LЙ}n+X ܙ A+W8@ڴiO8a7ZL 8O}mYfݻw;3sʵc?/_Ϝ9 ={֭3+'ܖ#G˝͚59rsɓիbҥKœY_'x>gyf4(P_ꫯFyďߙ}nR̙3c֪U!C8[dۍlrذa-ƯGp[.]>csͻvڄ :5k*TńK9O}mӦM]9+V(R31ifvrھ}{HHc+'viFDDM(Uŋ[ϕ+Wdr Ço޼c7'ܥZj?СCz-3vFٍNN$c7'ee˖]tiXX3+12ۺu݄?k׮, ޣOPBk֬ڰaCYĉ4h`7)S?#q, ޣOj%J>4wr9/>0a]A>{ |#FDGݻww`ڵ8ph2eϟJD= /^,^ƍcڵ+A~M9sfժU2)Sܼysƌ8A=k{-Tǣ޻w.]/waaa'O0y:uoq>{ 6mTL(ǏҤI~s}޽aaaХK޽{#:'x>M6+Wرcw?~={v9A>Zzu5:d7aÆcƌ ah@O}@ Wz7Fy=|Aʕq?22r:t|ݜz;2+'x> f/^l޼ =䓯j d-[ֱcUVI'kԩ͛7?yd"E%K4H8qG;|3FfBCC }bޗ_~yu9 &̞={Μ9sȑ1c$IH"QDgϞ=q֭[㛢RJ#G4#@'x> 6nح[3fΟ?QF ??0'x>C[n߿x񢯎/^WR%$$W  ޣON:mڴ%Kx0 Ag}xƌ3vA>{ lٲիW[n|TRe)_|ŋ/TPҤI\m`O})""ٳ"E|0I$S "' P'x>>{  ޣO@O}}(G@A= +' P'x>>{  ޣO@O}}(G@A= +' P'x>>{  ޣO@Oc:OL +endstream endobj 462 0 obj <> +stream +xA ARA~|2 pCCC# K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2ddȒ% K@ ,Y2 ]>o +endstream endobj 461 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4109 /Length 25134 >> +stream +x oFUNe( +مEZd/YJIf DhK*?'?͙9s4/^3wo93<穲hѢ**zPi @'TzPy @'TzPy @'TzPy @'TzPy @'TzPy @'TzPy @'Pc>#KllҤI+d=4o'NC9dmnPݻիW駟~ 7dwz@  @OʉP @OʉP ;8ؘ~;Tz`i4f̘O8 %߿?%6GF9;/WO(dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOz9= _ @|'dNOrg֬Yއ~s;w+r5lpufm_^i @裏z#F{ӦM+CV]uսСCժU{CO2'>{m۶dNOW^9ǎ[*UժU[`_=ٳjժXi @|ws]wUnݺ:thٲ[lѴiӕW^ϡ ~&Lx_{:v옘PfAO2'J|u믿.;vxWnis{Ë|GVrdNO~ԩСC 5j[nرc6mڴ =zٳgv szP3g}?C{g߾}ի7l &5ZPP0tve szu~ᡳ>+,((0b~駋РA'֩S'à'̚5k=x뭷 +]z]tQVR:?gϞ=zJ\ @Νۺucꪫ9l'kL2Zj +pz9=HG~'vmY jݺ /Pⴱc6o<KO2'էO.]ަMCf3fhذ… K9`8 [NO2'[ol_~Ybk9~g1o۶mif>S{w+dNOJ6w-bҤI ҡC=ӥ<̘1o}v+dNOJv^}Յ^Czرc[hQⴂYfY_@E @ &L[ϟ?Ы;d=_[?\v_zz @qVZKn^{r9{9>\N z9=(h9W=Ȝ~x?C 4:uj/}ݺu}r3f3gΜ7o^z6hmݶ\ HO2'%[l{wrtȐ!:t*==Ȝ6`:(Pڵ[.K szZ˖-_y啔CsedNOR7h7|'%- Rqn%~9WZf^>VZ9s㧟UKWvE `4˪$_Y^>jZ%JXy1W$R @ +\pW\Q믿ޢE\g'V:>>,>:cFQ~صyl^;@yo;_o|y|<5fYrB:ѤQlNEn'-Z>Qo&_YM'']B+tq+ fޤ?^Ob+O$e&MNu>7I-Gux^~%&9HL#cM\pɯbw*QGuߟI$/ .\N2%h5fϞ]fjY',>,z&~6>ԋF=cgea<44{>f|j7(,mޘ|e?"W^}fHL^*ʜO\o?7^Gb^$>+mٲ$VܗD,iذaڵ+jEz.׳EHώke-6jU2t,\G[ds}vv3U`NtWl|e%Z[2KkGF%&sذǘybߏ%LQ'9G5͒gĊJL7 zu[dso84-fy"{N̉GuOl4r|I||D298,'6$ӖyyN|}KM$;n&It|Uމk_QSoz7\s9S̄3f9[2EOX&\uo\x{0Gq'ժ(XF,\=n^MSPJ\pL\%@% n:'3r%^5>ISA9L<)yg'~25~2Gժ&?ĉK8ő=z7ۨQ]afϞ]ˇP%^ yc7׹^u.PY͛G\unqׅQZsϯ nziCacJn߾Qxuxdd8RIn8l8thi ',Zc}IsO%qNJz ~{Kqxw7kc?j3Əs˾7o8w N;g2Ma\ӽWr\ƉM|oo6ǖ:1qT9ķ6ޫ%$V+H&lvmҾٱ/84yT3o~\;wH&^_rߩL7nqMr8v-UjϜ&{;A87߮Kɉ_l$vƆ{X=yT'&_Ju}a䖞뮻GL83ڜgY'TZ==n*aNÓ窿Rz;O@kP\~wm祷s:Wз9uĹG Ŋ9qkymKs|s•{` sV=z*y7qc?U{i&~zxcɏ8/8&XkSOMDݺeZ?>Z˝vZ򈥑xqC$&>;?]3KLc-Qbb)?[oNof%?Iex'Xn-N<1ceLLҜe^Db98b%8ᄌGui'Hfx'X#t,Q-ψSIoUT=׿]^{gl==rzصKRطUrV4lPgy&T+.ۗ=X=1*([IGמqqi&{<=Jxqߴuxgbqgx쪜&G<3w-Jnc,B?qFpCi;>yؽ{U{J3v9MgN?=nGĭ:&&~+*1]9T=È#c[lEnֳ *7&G%oJ+ĈۣYN2v>6yq$~5eS/FE^?^36,~Yr\|3 #]g?<6,u^ KwE5ؼQU61lXWPmG!Hso n|RĶm2M`4ųGN痜}&KK{3C/׏O?-m^{Сy3q؅%'~_4abD=$CC?qJءC K9MuEbuc&w<_8&n 1='ۺvZ/Aiv&Lx}'~}]WDZV\q_~uY7`-rOlX Y#y+ϣ1G6OET&-MSR֩, l٤_/v;!zt&1Kyc?|%.wcV-fΌUV)E_ErOv7/yye|oNluի_Dzd⴯J~X˭~;٦2&u'ƍfy[oEtÉ/u~1l/ibmbon[_ƌǗ/ݕ'D~\yeN;/*_Vѥ}dϤ"=7:[VqRx9q5%>Pz'S=NTE$}v^b߾ѩnr:dR}eSzQ+GA,|n?֛:kx7g8lA/VTE'~E̝jxtƉO=hR'1TGjy7.]U6?YkVﵴ$r. Sh4'1߰%KvRkL uǟH}[ŠM?lǏ/fšk9}zqmϟ^|_|Q{uo׶l2Oz@1Xc<լMyw$o7P7&vGW'>266: ;ϔedbԛ )GzǀYbvw7GFĔEc2'cGĉ;qxcxT7O'qaOMKQbx}XtM+q -Em[NlcJlC/U{ƫ)LLiØW͘b H ԩ3gΜb&4i䣏>*jtȑIaiQJSO=kQFy?O ŹI=tq[I17t;c}QV,N.n~4GCsK%}Rt\IEA)GNzY3.?6R'zUUĻēL;.;:sqd.ω"ʷpO\vT'eN7.=2ijk3H/.9"ybO9sXnNN4ٺ'm}˖a"qHL"^XRs8.6nU*1+e[Ѵyg<_xha$jw_R]oM𔉉mT]b q|ʡf1)lj'ňN[ŸE$^'l8q˘x`LJ L{8Ri<!"s4>ăح SmOl8qtPr9L]/*bR7O3S>ص ŝF1L|kJ!=bF){ū4*8".{&N3U&?Db_xuqx8 bLzFJ6:!6^+}BYE$֎R&g)x$Y'9=H[N9oRGyۿK֭_Ӷfvq2,cܹvڝwYc=V|'TN)~fbTs.t2 L}q 94(CW|5q]uX*Fw+;.ʥQ$K'c Ox6v+n.C8`TwqAL-O%K12N5,<ر}$.N2$~ +oPAV1Q+N}׋酷VH q.D2$~׍THqv O.2$~Ix[k]!/ű-.)اq,gW}qNn OF2$K"K.K/-~αGu}ݷĄu^}Չi,w]vߊXL"+͞=ƌӫג/kŤ?3GCٳ㤫SlV5~z9jThQi?M19 ZqY>cfheD g?1z,)Z&-&xI1('9AYO"V'ƹwā{ѷơ47 Å'~S,&*$WpZonb͘H uTPqH T!wxS\wJy +8C^rҙU4lrM62iHkX.^-bqU DOl3?}Rwxb<~[RQVn:1rh=:UHIָ\x9ucƧE$>/65'zS,Bnz1} k}^nT?F#}ꊵ~Ldq]Ηb +I<99-sG}Y M/ۧxmknW?.%KE4N}T7<o'ndԭ&~"olEܦĎ=圚1f^w_M қcYO4>}͢߄H|xaPbqf95^u8{QG9Q5CDb +I< FE|nrib#R}T4^#(G)Go<z:qY$w7GFkÿJl^ԯ֍Cvkqdʡuɑ|e['J6VzHk#zQ)ǐ)z$o<_Db};WCѠBâk9ucԬX1c+E$6b +Il=RY9F+Srrh:ŘgsVfG[;/ű)֊gf$UD3qJ9u9+_ܭ_ԉ D2'Iڵ6lXs8Ν;o .sn;jԨڵ^JkѢŻ[̜}wРA^zK*'mGY*z@ /6 K{>5o%{n]1=uc5q'N<5`'s~2`D⮋r3qE9:kQ<=A$(Gg73 +V=c +Jl(Gg|Qj.YkƳ_R! TojzK=Hu]G]:k>[Xcqƭ巰Dbf,XPԄ*U͛7/5CO`I ~E4b9]̟{ބ~I=gS{zخ|BToFFȑ>M8ecoZ`Hn.~"/>8{95c̼V&HWvkz_L|hN7O+"Z.Y/<8$^~`Ι)ԈG7ISYe9GmN&~EJ9fDG=cgΌAGYJ">~7I9.8m&g̈';/U⢨H- +J2&RpMuSGdzS&VUL|~ESƐ#9'$k&cᇣE) 濖<'I-[|W;[ZÇjժ]tӧO1:uԷo^FJz),c2/ύj96vO}<$c XZsAǾ7>]zhkQ=rdWvC/q1jTv׊Emz\+ OkƘt׎8~brJtH+t6xIkX.^-̉? >P +O%j,~bbrn^!z|.ݧvm*&~u/bB,Bn1ӢW%_݋R$VM\/O}S'>sg={'̉ZuO,JNqQb-))wDHOZh1vشr^yeבY7s_.jB5LҠA,f g~粵1ckzg㓩))nH}irwqRZ娑5e¢ER37PSG/h{ewؾz?ZdقߢN1A[ώ81&曣G??jةzxqC'ĠtY?Eԉ'1?HSy3z )I40(7D l&q^t9bO!nL81mTsj,L18O>nzGxnb͘8x'#*A> HQA (JEzDz*GQPAA5"B(R$(M3;ل}+3ϻ&]Q''0}ݫN&N|S-%ObI݅yRos*l8MĶC4_DOrj@oݧ<$p~p cN0+Vl˖-/RȆ ҧOᅱ׼yɓ'{)0`@=i\yUXTBƻ͟ZD8 +$fp(DwY|vG}muj@(b,>ߢyJu,Pjғ5rk-[}T(T?\-Z>aݪ_2U}oCKZ!WV+OIɒX~8)t*)qLltKIJʹjkTxmۦCy/&L ޹sg"VXQ\9tM6/^K߿u9 \n~t_x}E[UQzMfusw#]S:}bSNܥ]mT5i@WTG/x9H5N>$Qږ]sձH*l̏PNH4ѳчįաX(]'1[.[$W.C7j_CVWc,O;g&CK^2q?oծVY,{"?ODcfqz8OY&uy_4U=ݧjV[,ɯɔhU Vև_%DuoA$q B +EEE%qSZOwߎ;ܹx H%f.ݭ0Owٮ})fv =CZ/X%uWzir/XnbЇ1z)syIvÁy&+ 43U!;@Y휩8&kfiwXˉ;^gŧ4d*>諱kg+?.Ojl{jRX +2q;qO k!&։_hkۉ[vn_}J>$ 5:/9MQz:>$ޠG pg-hLps߾}{b*ӧO}]wիo߾^ +)*) H%~=dy1M`y9V>^Z5Y cO*zccXmiW|ewqXM_^z/\P:ށGm<'t@_CAkQe! l'$ޯ։тc'ji"gjj(oR|ebn-:>$j@;t46PKޭ9z_S,>$Vz9DkÉq>yۉ2ĜZ|R}HAڽj`_l$q %Jlܸ11{y|k>^ +""".50' xy_r˿)]RL:HҺ ?Z,eϬu[=|ui^I ]\Ut9bqL9uLZ]UU*14NӥlU4ͷtrLU]N4cX˝Mϛbӧ'0Z%nV&wcJrM*X\S}N4jfY$K+U>I ϜX >-1~33%yr)*\JSRPqUS'+T!_۶M=,U:g1'J.f͚ҥKBK7rJlΝ:-rI㣛]99hM4{Z/5I=@Japְ=AoO^z^'iO< 7O߸xμBI|]mz A"LRpIW?Pf/yMmi +J>/&1 )(zMҗtS)*Cn%]~KAM*W'NQm:g}N[ow?d<Gϰ.QKL+V\bEeZ?~ XX|+W+Wέvǜ1孥8!:]yhyzR[.n Z<-f)W678<-mLE7(%5r֙3V҆ehW_֩;-˩;Q]$ )8Ph +J*w +JMN|Lk$%ׇRTZ=_mL}P~ +ucpsjժ/^.]۝رȑ#3M$ 4 HUju7[/U+oUP{h;Dc>^*#uDmeBm-7zxf.^P\y@@Sgkjg<֭n]'CxL J݉ߪlMk31ROTL"QZvW`&SڟUF]z@'U:zNb3{tĿQ&~4fbqڶu*a&A :u̝m}{)SӏǷnm^7nk89MNؿ [lr/Xǿ H>[=<~WVoT~W2/"w^ + +1Ҋ9!1 +RLl9pbyM^l&6W7u'З @Kl/&Nl5 e5yė4{\jOlYc50e4y,}=.'A M&8н{Aӏ˗GDDx)(Wʕ+]q Hm*4,ъ(]TbO[ݮݳ AWTiEy|in+Z.Y/qVG~EPaœA1)R L+z"L։^kn$Ց+W +BRt4*^Q*SJ)31~3Ա+DƻL%+ˁ{TTX7*z~-fb<յUՏO*iÉpsSN#F$pc fpoȒ$c͗/޽{]q HmG{GZʜQKǩĽ8-@jrhD|νY^ +ҲX\z +-I1=1[ʙS/ʞѢ|{?)}NIlzNl>\.|7L|HmPg>e>LlSf┍*fb)}II|V>QԝD~^XRlVCsYw)&"u&y#i=  f_}ѣ=<Μ9%K/!!!.] +JWLaN@*Ԫ&~q 5D=dνV=_)n4;kͮoGWwкHl_Oz,h\MS9jm`Y]$tgD>XΩQ#mp kY8AMkzi ʕijg4q}PQ^ +>Wg4?3gԸj Dcnޜ@&5.6}TS88C5W'N?E'{E{T՞UMjMJRL<}کMשDCΙymVܘLƍ{嗽״jjxd-re/ٳgwg1' :qF$}uЫ7їլNXp[s7?b)ƽnsv.\X]2HqDxS\=gjtGݺ)8]FympH߽ttZ5S/P^5Pľ}յ?Fv_[_#&.]%^d&=qDgAHf>JjR7/~ބ|ym6.k˯0\/VyY+SK&kj,2,LSl-ȿobU^-]"xE,8^_W^8g5SlljN+5on7q4O)ωwkoI!r*L+WPzokמcOVy9|;w*]]ĜTk'22 ӳjH9&m.h0YO%PR}j^.#7<˚IRI3Nrmkjޭq@@$VYD; _5Ҹqʜٺa[ԩIS3 WjӒ%N&6nc=&'78[h<ƥK'1Ng5_m^L&M+{J'2NЅK:vRcy۠'5cSGtw[3*׃Wͫ]ԑ> ;bNIU烹$ +H%.^VvZ!R  Wxrg3Zo8{AGbG^S+7Y';4*Lb>muS$GȧϥJ%@Ԝ^x?HHI95j̛7KAppŋCBB\k)cǎy)ɛ7k897!Sh4pT\^c^ŝVՒkTj: Ә\K1n'8?w/w=1t)1m3q/n'=qK~>v?۽ām~kڙw'G3 佶W}K49Gb]Mt1q-ѵh3xMFPj^ _K}\q u^03ުیeH _ԹAApKr2TƑq|eYe`YݚDI$D+9Nʕ+ו+WL>At)S4mKAJ?9>)[Ulr„ s^ +]q 1'oݻwo/߳g[K۶mnji5C gΜI&-99>ٸqc%ٳ'sjժ-XjŊ/_b;cN9FEݶmw͵~7oxZ߿믿f?cN9F~׼+VlӦMseΜڵkK*fKcN9F + z;w*Tȵ W.S9r;v,88͖ǜ`s5j̛7KAΝ Z?Cvj֭ǎf?`se˖U\KAL8%KZ[9s<[dɒ5' 1'X+]5k;;vtWZ-Zt˖-tW 1'X3gNݺuqwΐ! xرc[nBƜ`s5[dɍ7zݻ[oB3m۶3fR|BBB\hߘcNh͚5e˖T1c]vy~maaaG\5k\Ü`s7-[4iZj͝;ׯ=L0gΜzyyg̘qڵ GQڷooԳg>}#40'ǜ=z 4KA׬Y+W.gscbb-z̙Kʕ[dIHHɋ9>]zjժ˖-RSlم fȐܲeK 9rp*+@0'ǜ(>Y+__9sfq/^_/Z*S s} uʕ+o۶KMR;NӧׯtKaaa ,(X,رcUT>*+W>zE㏍5ڻwo"E,XB cN9 iΝ;׼ysKMPPPÆ  /_oȑ#zڴiSv+CCCy%J~ٳg7>s'N޽;22x񢧯-UԄ +d끊9>iӦuСCo}5k6mڴzҥG9>>|x…[n;K*UrreȐV +s} ~wҥ'O?gϞ Θ1clBCC?$ww9> +(cN@`N99> +(cN@`N99> +(cN@`N99> +(cN@`N99> +(cN@`N99> +(cN@`N99> +(cN@`N99> +(s6= +endstream endobj 460 0 obj <> +stream +x{e7Y۝b/MDEa4 h(i&Za0 +2-S1eE^J+,O9Z{Ye#{g~6Y 5wTfG8eF1\{`=^V^d+AA6wgh!ViќMRjit >=Vt-*2U]Cb /Ǜpfn]#FVMж[vugpƨэ bYcLc=v.Cgvel) g|8~(EGb3~hP~Nk/ i}B>أ=6Mj=}&zGz_3M?·FW*l;F3>^[@DN8$|<4)}(ÏYv~GS f4-c>Sv)%Q힕dž?{fDE/; OL7$4ܵ7j'wO>ɧ]Sŕ~CO5уmxoÙ܀D9gM>pA__.,3S(G8$lw^^`R!Bsj!grY8|kmh3_{>یoBsЫ+:LUѣC.,.3mTp_U~_6dsppp4+{5&a+(:FB_>8;?8xGީdp|i@3 x~8AњO%pS|5Iq׊UzknĻDFРحi6 fҞW>vL߃(}t{=}CB;DKM2mE.o,tmʷ}C>zy +ʿ7=9c}srP'ϭF3бuN+ D ۷̳# 5~EQю= ^C"K›,v. wY+/*   QG@ki_$uw?t`GqϬh/z{D鸷N廉 ~Oj{ w?17 iC 69?m[ է?/7tk)y'?&:4_^lA'Z +7JF[^'zҰ{h:v:~5.>r}??m:hg=|%{w^Omqg`~r9>h- +~P G~!4sOD[)|]~y͊X 4?.Ӷgm ]LBZn[e4m|?o_>[#~mǫyjy Ԡq~?|Q?:U‹r:om:qVi5}r*NsqEx?W78`ѵ^Uu вNMٽAu9++8w5: +P@'Ty5|!7 pv1< C=]ި%5R7{^0@ DzǬ7݁~n 'ح\2L~ jn0ɼdT]-xQrf(2}2-|8йӑE?BBZܡG%9?,Ԅ=FYA2[ƿOWqzŏۓ#b#.EoԴ/.͸>}W*i W &wnk>z}ǻ_;cQgulQa[\t;lهqr5{iS_p[ +]Bf^/ s^vSݙ-g_hoG.N`'.1AПM9|{Z?d5Oy9͂)ӿ/NO"g[I}Y4І֛>+>yޝY6]M8,OQk`A}T]`~Xh?? Vx>)⍿iخhFҠӷe{_eݵgox1{Nes;{`h7nKTwcٵ>qp\4pSxN.K {Et+{nՄQ/PSҍis +N_ mfn":Xthy ZjPP7 \TxN(>c}L ~Pވ]zxIAO5nn,\AU32{ΐ7~EG7{vȒF ЯVܴ+}dm<(<6v/'FwP>!})ط~qF[$Z@8wW+0rwT_[-5':/}ي&o_roqUK0Y/?SO<-: ё/m݌)WzKѼyקk\ @< dN)|ೣ̼25})Fڂ҂` +[ Vcij` sRa20aJSI  j .| x¬)&l6)Vc`1[ {;rGܕZ$ L0zIOZ<# d/ Tnʞѫw j2&gqv&`` o*ʭ=t[YO + Q2gI\(I U: 'dm6 @Ls4\z=$)%@z=Oie`*O,:kvF}YWSr;{Фt <09kvw]cwnbXo' +~ aҡfQf/&F[ L?6$6>W!8㼪e?on)K왼SG0Е HX}_>j֨]6 [:pGWǗt#8^c8y0$6S6ưU =/XF]7  XV&jVvS ߕ3lZ9^` 󣮯Oدo:sIP`H^z0} <ðX.>hޢ|֟Ge+ @=Mm## 2N.3q?=f@30Q#Bw_S?>fϷ> ]:QO/n) d޴UtN{07Uw_++Ԥ 85*}zt`/ݛ_==Tb =:±s[8X'*<ܦ +@m7zxhO/( 2η +fl2pj +n <ؽmR<<]@ SWLwyGwKwr8N,:7]JR0y{.;>[N^^0W'|}XU?Oݖvhc``֫$IǔP){<|LWVFސZ1ȼڽu mZ5Ź@.ȼ>`#5-x3[+We7O8]@Y[:~ 2-Xm;N+\96 gʀy+H֋UID}ZJ0k.Jخq]@Pt>l` OA0qjM +pJ*@ف'ذ.l[9&%@|0Yj ~2$jՂ#wlPz[9_y4WԔ``Jy+#sC6KhAVW ^ d~U)@A^9R5xrTnlQcֳVnq]f -;ƫ``i%/uz[ 4uJ qX 2ߤ>nZx@S6|kӺ1 6:l^ނ F ]jB``Aa -/7k00hkCQh=W>_WG2?}q+68 Z?U%-fESV+ \` {Zxk{0("`r}v= :h#v-?#F00hbA2iV#[f/徼d? !sÃu|”@ Kck ӺWv# :+M dޟXWK>g;_72G|#< +| x +]mڸ`9iP8)^0ǃ +%n Ƚ!oDqQ.<8<řg 2V ;'aKFO^+ee\ i20p/2-f0 IB~k/;A@\ Y20½߮N@-M'h'Ou/ wD`Mbָ┥=s$o [[T;x{4j~=@;9{|`{vt>>U= +\@f={:w`M@Yk;xMoK%hd +Ozښ6X=U2WV_۫25 :Z6M zln/d`?s}maY?gM(?^ ?[p婽έ% /+2\нݪco~yW-|KX}r``DzDɝ .Nih)wzgmP-<%1 +/ klYe?&wgv`!vi %@pٶ 㪮%Ӌ Ƨj5&'Ԁ`@v.MmJuhOZx5N.8?W~O r|20s2@C7=u-w). 6 +k|*\Oo^l.O^ޞÁ/MN /[Խ}lz`%Fq-s|2e`+R9hֹ#U=`[aרY.K/@>'c) L4jLS5.J^ӲwB}@O C?λWp_+70"`๰ơk#[wb^+3#'VLY@>.Ynd^ +$QN祹e{F횫hp\eǕJ#eXc5ʘrCwm?t^=#N rg 4]~hX +a&QjM٢S,ڗOVnwS<hWN{+MK!X8:yߝ?ܾ⧯:5-[tHUo(Ϩ#Y<2rz/^->{jZ?8zRA +#a(r`msx;㉮;ޗТ/42(ZD(yC7%u${_ ^c ЯL;&/f4S&lsg;1dG6rr"75N3|̄; mfh]" kBGwq¶+\ӻRˣEɋ3qe ެЬߍM^bntN Eɋ#bsLWlQOEo@vx>'y5vU*Dtd@?hța5Qj_I_:$:_Y G?$/oX5s S꫱ʅ9m\w-FF%/ZXfP "Exfsn~hn"5M:<ӵnZ۩"zI"k^cux):7hmoD=2,mv+ѿK^5V{sڲ٭@k;+ZD6yCSkFtR[ֶf9y5XӇ +Dw%/ð5V=s٭@k)ZDȕaY5Vsm[vM4yWu9mV]-oH^٨u!Q; +}xQQ,DV-I^dè:K=Q;hv+ھ-J^d]uܑQ;o7hm;F轓Y;*:Kn㨝9nZ&iȊ:Kڨ1nZۅ"E+Β2jgH[ֶA=y1Q,F ;5EfEE>^gmZeGEI7hi?G$14J%vS5 wFk'טx)ؕ`f-g-J\cAڛćf2FZڢ',a]¹s[̦/J[ 8ydp좁鴓۳Yǯ{mGB>`5uc۠\ +endstream endobj 492 0 obj [/Indexed /DeviceRGB 255 (jjjCCCsssiii&&&kkk^^^\\\\\\>>>hhhyyyTTTnnn III222 GGG---PPP[[[444###AAA666===eee!!!777...EEEppp___rrrSSSJJJύccc"""DDDmmm333xxxRRR <<> +stream +xy٠ ""b A1jDc ⭬(*޷m<'Qh 5hx3]TOOo/G멩3OWWUUUd-"^aסz{N I\[E8!$q- d,ۋpBI:T d*۫pBI:TmmQh[g 8!$qN;QȬ[uRz.i~^Hס:6ay^Hס6)OR@ ѪKןmiqYfof_Hס~uoû$ ̶^Hס~z +lrBI:@:OQ5%4G\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSHס) $ДuhpBI:4e8!$q2@MN I\ '$CSf  蝻ݲ?!$wS_# PH +&@a -( 0h҂ PHzgmUE.snqI&68$2}z@}ߦ~߾ǁ&e:tFs~SH߱$Wߩ$׹߹$i\0JDa*T" +Q@%0JDa*( Q@%0JDakP( Q@%0JDa5 +DP( Q@%0T" +DP( Q`*T" +DP( Fa*T" +DX0JDa*T" +Q@%0JDa*( Q@%0JDakP( Q@%0JDa5 +DP( Q@%0T" +DP( Q`*T" +DP( Fa*T" +DX0JDa*T" +Q@%0JDa*( Q@%0JDakP( Q@%0JDa5 +DP( Q@%0T" +DP( Q`*T" +DP( Fa*T" +DXKA%]z@vry{SX{w}Ц PwZkatvڈqt:-n;|#!PvGv:*z>c6O8qP|vk2fu;nS7 RwGW_Whjo|hלkG֘UG8rBzl:US 1Ol0HSnS2q@&˧jIcz}׸ Dw0Dd6oc|~2 3Ar26a՞U[o ݞ 3h><^$on鼨}dfu3wbmC )vsg8f]թ "W~/;i]͙ųޯ K4d틞Sfrw~k3MUO݌~߶>O(ݻ^uRuYx,u"xq?y~/?3Y([@օIljle?1G\19) |ʖb|MձVSw;P9NƮk43x_WNwWOmJϞhrofƽf< wR6ovfg s,{æ7[ȿ_`\%O"wvԶ00U,;[y1.3ov#b.`|ō +gom +OXjbtåw8z~]gwZMn9 /ķu 0 >Ds0vLC0/ud6M'뻝j';Gx˝77(=L[VKw6*-{|tons=w[1p^y3{x߭gݼoyN/;?6J0~;ʝ4:޺}Ӡö"iʫnQFo0p\>Fsw9rrI$>x7S>r>6+#?ʫ֝{$Fuez v|yrtCm^st"jr? @O[M06@|nF1fO^+*\Q| +hj5/]a༱nEp:{{HhBGSibs(!;BXuq.Z7SXVcc-~Zd5ww`ax.O:|Ole737`3?9GRrQ* y #ٞ9F9c |4e"y7:˳S<SNpm5cN G^ǝ3z +}srn~X"_M֊nkuϻ|Ͳ{@'QfZԃ8ǿ~(N΄a3YO,|QsNj0]_c"i_;_6$joEr&7'b`v\`/z9 >hz߽&oBڮt۸; _n=junPO=qoX[μ}@&|_m4sc" l+pwlV_̆=3- 95C|ڜ=irXc'և$9ϓf6/ҁN@PP( p?/OqZ1 M|Lz^B]~ھ_g-,Aj'S~N2_JaލKeneeUO|m/+f~ː̖/>RΣNlXƘN] 4oDRsnOuF'w{[ᶫb z|\R|p l+gLBirL@*ܐ|i}a` omxK,ϼ7C%f!nnɖtY +|ů_ܝy<fqpopNܖ'36@Kux>si\ܽӏ(< d~yzpӯMӳb2YUd%GCiʭ$|W|,e1ɼ(d1f[{|Ziϡ ugr?Uت2ݴl660k[}تzMy II^k-30nQ&C)b:f@d97*66y!-7(hNamh $nv݄&6hȌq=Ӷv@잽N, |8԰ܦ:d@'K o[s9_3"lÚ梧.tz\9b$:)Eh'Lbbd&mf1 +yV5VhG킨@BĮuqi N/i3!LcJhzٍgwYB7-ҽ]l[(ogR9x O5 R˼I?vi|(4 2pE]_0Ke~ЭDiiiehM:X (u/oWUUBbs obq&^hrH9/,Uq(&F]WGQhjw!9A}ißz4[@3sy [ٰ0lKw amEa fGv7MW_ӼG@y}rfUX&/uiޑghݤVȚYg?3 r'>>~Xkw}BA,qGކVB M( W>=W<kKeU3U+y>n(aČ̫[J䮷Rs+/N;t3iQSoR\H A($wF(\}j_`Z|^&>1! wmSKi*lfyȀܔkSul&ܱ[<w_4Kͻ&ռK;C27 k}O7LqX]ڐ-M^Y[j#;Me1UEg i?ƔAn<|SUfkh&7t!cM;8-^]Ć"9d.nHA%Ma o^"cjTL]&g9Fi.nS[z)e(qzRO,y]򒉨^V2;/y&:<]5'Ɍ1Ħ00Zd{o P&vKmf*tmH}ND,{ D{("; BoB6!#;:Μ<_2Tfn&d~@L_Ģ0P#Jl=teBx 8dI|xO os6E<1e ޛz +oi]YdnMxԠi=!?( i/ 6 խWo&NG9E`U&e<\,]jmFoې4!ə@YzYx/p +4tMW4rYa1|/bvQQMӂ9, +>?9P|{,.Opek&+|7ߺwѡySf2@$ڏ*cs}::G}{-9(ίwS]r-}#-bX}M WH, +r-/)2cA&ԥB2/"EeR4~-X&bX}XeȻ-&@S j-)(z4eQ8 EDLc/ԥؾY}W2N䜦vo#\y>CQ)vPoxh-,eq pXC=:ff+kZàL=SD߭;6qAHx4`5>x1mH=96mЕ"r +h&?>Ot~ۣEL 3|kS}aNzfE1D4`+o}qH;A߉aQF:4d-Vz±m ~Kgv*耲$Q->^۵qCf0;[4޲?)<[SE˳:0vO]ֱRt_">y5 e6Aͷ7Wtoa}VbK[;m"hr(NcEvcl'2닟/ M7v/uX= [HwVX~'Dԅ100Wd~Dc"겵2x?ww~D<@,LZE%J\ҷM~M4;_ @33FVO78<\sSxf"UwGDj<. _[.թbwmZsΟG]jѺ;.ȼA=E~ #xGOWA^~iT%RCnR޽#)R'U';eoVX+gԺԅA2OV&"jŠ{l hGZm<-!Hzd̽s~e9ClR~!^U)ҵlf}wAd)S}gu/gJ+ۆ{稺00X~g"5v_ۼݬ:G~2˼?_= D~%e|e2dM'~}PKu9cZ!A +?-j[`rU +~"vٶiUݳw~O+̳ɛ2Rp/DIV<UQ̔Vk7eP;vT?Bm"R +h}]4w#jua#4Q@ol[R*y+ɶy,I]#JѳɤdBGhՠ#9DD}k[%Z. +kǹ_X>B3_@ol <_Hfl͚[YLY[D-.m~ (uan٨ 6Q Q@E}3C4y^%;G'u/r7/§:*,A>BsW)BSDd5 +MC'L֯R}zjC6$) T˵5Z(n6;IkVGtL00U=ƻVPAn֗U5G\P7hկ`xc*X2_'ELEԒR +[Qua`{SYQQ@'l}Z 9˄x,SHn +@iޗKGeVOTU="̺ƈ(V_|y|Oͼ~DT#,|PݐoP>WD}kMWl6B=D (͎<3E'3sշQl "7~‚{)N>qլ3Hz +yݍ-. ,y߮: +B.u&E-GFj#T@iO>ggMT]"jt@#߫ +普(]/AS:RFj92oTND!k&GP`d#S@)jɏ5{sꁙ<&ȸ-Txu\_@VWG|W-siyyLԯ"T:T N`ua`weQ/(+;g\Utf١~Y9z uP=)w7li ʆ]hQ"Rxc+#䧈~SYZe]jH/bj)PE6j #G v:PD!e.J̚.~`P_{HDg^%96q-=e?`eHNo7rTG9D+$ -4RJv)![ U7 zz( _\\Xy07njR"j: +(#|UP9~})DToH'~DԬ[T@z 2}!Y(yDvvאkaOY  >F= +M+9g?mXXx.X Q@t: Gg/-B8wrJDTs9vuj"]Gi1DsQk?E)`gTtTH+}a'Gq\D;yp'mXT|%Ӏ6vTJ/H:չb4r.eg<";D5'eѫ+3f"_PHU@K0g-]v9j+i>z/x_ `hHa#KDzt#3+^+L[D+rRuԷ"rvg.0xXDԀ(-mS@|G0L_uR@T_:hH f( +xYDS?xiȘR79WoUDuYI"m߆D{fmEߣ|B[;"n +Zvuۋ(&@D Z=)MԅNu"J!T"?2jA,1`d~o寜DߥKe@vS7|v_C6HJȶqb_ Ʒ̜٦h1L;e[K~U1t޲.Pu%ڠ/v3[H5b _ V##(Vߩ";gsU5>&OEy"h 5~7M_Hz/i!'? vNڠD6:+u}A8WӐgOR)^VY,nL;(\"@HvuUKEzOP4Q; f vodmܤkģU :u֑Rl%b~Iig4ɫ"UiQf#EMo|jgv9numG&2sMm{I[sm R4NYl 4rj`<(c'b^ɮ^@\C#y[Ycl|xç);\ӏc'y-o'RtCE ߋ>ڡHW[8e\x ]je~ZW"۵ GyQ@kl]az;wEkw+~/ +Lg_l!@١\Z8Hvmue"Ejph0B٩\(P2fMwYGo.U[//1Eב^P:! ]OR9q+6Q^"ö3Q\&C^yK? ^AbǼ%8@}*b@i핏,>wx@eD sjtK~To +DQ)ʡ/چr-zn+;,bDqk`td<+rX;[R7@?)'(o!EuSsҍP`Bz{ʪLv&wV "Gw9WkStp#ѧv%&dS0H6wM}$u^ȅ(kB +tЅx;:4OYQ:ըWt4!.;ըZM1!+u@]abW,T(3΄\T|݅}cGN"d/H79ctm]ȋ&&"6it|Ss n MaD?KsbCB 3H+cD?o }~@l[rI!yCjF̻{|MoH)wb!(TJeظs"5-@n/U.vԑ2Wu]̛E4/Dmӭj=<]ȟRu `i `rQ(;€ܰF&%P7)< +a6xӧjMA$l4zTƪ[d +T;[mUGr5$+yz@48ɶ2L&5syoƼ'+3YY m.G_hG;vP(;"Stg|^ +;0mX$ikyMϙBrsah{a1׸H=EtX¤n+ y}8~UtfI(z]s )VNb6ͮb%P-S{24Ol[&(܌ 4kyޯXgIda1`ˑH#gE\,ڻqDܒ/i԰ +B2/P~VyiMx+Ms@ 69z?"S4J=p ǝl]cç kԈݖ#vBl@+r5ψfu}'cfLО׹[T(?"Om-XFbv:f?{6X_}C E (M)N Ɖ}\T2CC{4`7wyn"HI8cTG~5 {McfT#U +U?T%PB ݠvUj3 ɷjm[3Eho'؍@uy̼Ži)j&h!V_&}!m53*soUan۞ᷛX\-<[b_۰Tgnn DUXm{'nK/߰p۶@oypXXcݦ$16lOqut8[!=7K<} bB1-adwvwg:=8ܦY _N=a6MT +@!}b*ri43'wv02Ifprδpaq 6MOP~ 6f>P@GlDI{VIUMSD&9(]g9`?nVB^o$36Λis&wͬ]v[e)*maf3 `M-oaΨ%+ɟ5OmU2{BfnVrnđ׷bں- 4Wt> 4g1Ϩnc}0uy+]f1 _++F1 P aҴiFL4)A3ණ!j|.h`QOVC*$ \pd\oL@Xs#:mwE|޼;kX@>3;6l揖"4sBH;8R@ͦc-ob`%~?c`!?XԾYFlBy@XHua@nB$ e.q ZۤhUvv \^MlBxL@S|dݵeNL a-z:@"qܐ'&anԦ5 2-ikV,͎Ա/ tz i7ȿn+fGFǝ3C[/%n l76@f(@fь623P@Wii;Թ>j?4fьm|.ιtvf&'ԇlhGYМ?W +endstream endobj 493 0 obj [/Indexed /DeviceRGB 255 (ooo###___KKK%%%⇇***\\\\\\\n\n\nggg\)\)\)VVVϡnnn555DDD OOO777CCCqqqʁbbbzzziiisssppplllwwweee~~~}}}hhhWWWFFFTTTyyyUUUGGGIIIuuurrrQQQJJJZZZkkkܔ˕aaaPPP[[[㸸tttfff```ٱ^^^ƑLLLmmm...ccc@@@+++EEE===։;;;111999 菏333666XXX???$$$NNNHHHYYY \(\(\(MMMvvv\r\r\r!!!dddxxx"""000 RRR慅|||AAA]]]>>>{{{BBB:::jjj<<<---؛,,,///888&&&222SSS444''')] endobj 458 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4121 /Length 50139 >> +stream +xwX@숽w"5cc$G1*[4јDQsgegƬuk;9|?;v>| }?c֭%VZe|HtppĹ?r_>zcʕ+WlYҥK;;;[b26g߾} s~ORVGZj۶mhh]fH߿/i ڴiS°B5jw^͊_Ϟ={;w̚2r5 ڕ+W:vzYbž}ivی>|d˩S=B駟4+>>>%K + +Rvɛ͛7f͚۷oO>]=kժeL'`W_ 2p™=PHf͚7 L\d(jWJ… o߾CAAA=#eøqM3g{ZD.\:tѢE?7\\\,t:Sf˖ٳg.]3{:|%K@,j>|8}tʕk=_ې̞.]TT)Vi)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z\d(jlr5 Q%K@,F)/,Z|R?rvv9|2G= (r5 C]zuŊ3{.6&55!g%:sLRRR3{"w[o߾;w3fL…3{:P"E% CQkOC{{{=z̞=;{=#QJ֭[;K,=(رcN*^!~mڵ3{:mܸs↓S.]ƌSH̞EQ}d PԚ˂ yFgŊuY +??wz{{:DA&1bDѢEusFݻWM lr֭m''}N4)G;+(r5 '`=zЬuq޼yyɬYيׯ *4znݺ9;;gLի}k׮QF=kL8Q! ufD=}dɒϟ?WW +,8}t +E% CQkO@jN<]/Pŋ7on)ד'ObK*u'(|rVnܸ5k}U^=g$O>˗/WmWTi̙aaa8gϞEʶlҶm[IiӦVʛ7oL ʡ\d(j߫Wr̙Iݻw-}]vϟ?5ge^*Tpww4iRpp/\]:th޽dbZΛ7of̘1}wީ*9r8tP3wb`Jƍ̙)󉍍WHXx1ٳGRܻwoҥ3eJPE% CQk=</_k֩S'۷~7?F˗/>}޾uƍ+QXٳg[P1cیg͛7=ѣG]y=~xPPPL@Ç5k$Ǐo08qJլY3**JQGGGy Z}~O*~"IM<(r5 III~~~񇝝MOKK+Z{Vtŋ[gVfWjSN6lhgOuqqYvmvr. INNLrqss;qℒcN:U.WW׈>jرM#^:t3gN|3 ٽ{xΜ9,/5ktvv޳gOʕ2wfz +TY#+ +\d(j߼y޺urb׮]M4LN-[-[6LjժuQ͊QPfcǎܕ7o;vTRSXέ[֮]nݺك}||N$&&~fAܹSxT]k֬ڵ5'PT_.Y2f/))Wݨ#Gu5k,sgV~7{˖-С5d Ջծ%Qw^ewܹ~'Ofs500ĉӧ=:˗߲eu&[fOIIѹ7ӦMڵ _[>ynݺ7gϞUR֭[ꊋ˦MZhaF\{o߮]|5'PT_.Y2f5s#F_M>]Yn޼q/طo5d!5ڻwoz{;wj*:u)777#LVj?|pǎ۶m;q_g7Dٲe>lO[ܹs ]&yKdvZjiVBBBĿs34ׯqΞ=+w܊+ufD &ު s?\bEʡ\d(j +11H"fO>-ܟ8p tʒ%KRRqۮ;w7O<۶mVoҤɎ;0=ݻw_n]=fΜ#G͛C?,}+Wuuu5}(3ZxqDDm'̙3gС:wݾ}1ɓ'uJP0ŋӹn֬Y:C S]_#{nGs6a%K@,5jTTTmJ+///_;{ 6Ǘ,Yŋy0]-bbbtݻwoōUV׿$EKd l2qcܹڍdjw\\O?tɳgϾ{.粷/\g-[6_zXפcn+Vݻ+WQ管CΚ51+_=i$+HYfvƍŊ3nLk޼-[6668mQT_.Y2f0Ç}}}SSS% dɒSZhрt*R7nسgOe˴[mK6m*Tصk)o~͒% .T//ONIIzs~ӧO_r%--3(((00Gٲe3-m]t3+K D<йرcիW|sي+Z\rcRKgxwq lr5 ݻwkכ4icOKK + +~ν}]޼yŋ|G͛ך34;nڴIRt_}Ն $EKd 6{lJ֬Y[lyΝ/ߗ㸻ŋ pqq1lo۷3%KsW=zd+8|ٲeݺuOYfhHÇ5Zh!'=z cB|79r> ٺuk˖-%Ll۶y:wEFFΟ?1ڥKA.f_|㈷î]t*^xU7m)%o޼/^P/qI4bw5kLkh"N`C՗K EY ]{UL>|solll:uT/ZhjjǫVj]=V^-)+KЧO˗Kd ]3gΥKkNDǏ4i]...؀8x,Y ݻw嗒bd FsO?jMuj3%k͙3'""ɤYf\ٲeϟ?nРALLw , lr5 ƌ3m4wMtر#_Wށ4+⑪;;;[af_;K7773 pBIѐ,ի{ٳye˦ɓ'7NRtuus玻{I:x`%LԨQuooYy>FqF@@v=CY+W*UJ^r常ޕֿ;5,[նqׯ>}6AQ}d PԚpΝ+_|z{8o<+LC8Y|g#̙3gС"Y'OVVMR~̙3*Uҹ!!!֜ŪH" e :tKnnn>/xMJJ + (r5 @ {ԫWϢRJ\\v=[l׮]+\ݻw嗪ŋ_p!k֬ >|֬Y$K ZbE޽ ''3f 4Ȑk5f ?aÆk׮uss/^!)%P;uTժU%Eg O>zhzɒ%/_l͙^^^ e UÇ9I/NP`A{xxrΜ93ܣGN*}%J0n 5`.%K@,rСu릷wٲe^v ٻwoFt4i_+Utv~/^lY̘1cM&)jg RRRJ.o^vUFd~7l`]tIoo$uAY8IX?K_8p@>{!CXs&{Ig t>ݻ +2p8͛7BCCCBBoV%ޭiiiAAAey <8k֬3g@;;;V\d(j!/_̝;_͜9sذa:uJJJ2e]...766VlٲEfiǏ4i%ܹ3<<\2,,l֭ڏ$,/)f 7om۶s>|3~ݺu]vI@M6+W,)Z9K eyyꕤ(Pj31ϟϟ_nx`ӦM;v6mÇIII$###'L pժU;yjAk֬z(/,ZdT%Կ|/aŋGDDܵgϞ {͚5;Ι3}}};C˙8q $EY bcc}|||ʔ)ڏtП%HJJʟ?bb}/_.)7T:u0?A1b̙3 [b?5`ͻj*7)՗K EY2K.ׯ׹Ν;j={e˖?'N^erN<%KsbN:vXI1,C֭Y)PK*ew/(::M6"YsΕ/_^Rr@ l߫Wrȡ]7}:44T!!!G5'5)/,ZdǏ$ÇϘ1BglѢELLvvڱjӧ/o_aYz>|(S˗r)GGG͢ō9Rr,C4})tPWҥ%Ekf N8Qzuӧ+Ud9x#v,͚5Kһwe˖m~ӧO-Yܹ5kLW^+WԹ+gΜQQQ=z0t%K@,F([UvvvF:uεcǎMj?쳋/fhϟ/^ŋJl:TreS'jIK.ׯ'K Z~}.]ƍ8qfe֬YÇ'Kйs7jVΝ;%K?;vf͚"YW,YRRf@$E~~OWW|}d4I,,HnxYw $N:[Ng^y~w>>>ƍ EQT_.Y2f0ڵku&nΝ[Љ^|#]V޽cjɓɓ%J0rbŊ޽{Ko߾nCwttg6l_.P9sL2B#WVMR$Koi_Fg  d&5-x%Iqʔ)cƌ1b~5Oz! 399YR4$KqJ߿WWVz NOMI}ȑӧO7nE 0@ޣGq<KQ}d PԚ8ӧOȑ#,w,ZH޴im۶7fZZZO:Y>qD"EV^ݣGIQ@Կ%Kh۴i?_Ν;wȐ!ch? **jĈz_qqqUTݸq# @R4.KZj]v-88СCy}ˣG +*$ixwdt{a5ݻ'n.]yFR4$KpQoY1$`InϞ= 4hW(^TĉǍg,<%K@,uTIҥKF|2e$%%i=g~&,ŋCBB yQ7o%Ǥ%]#G/W.7S>}ZB%Ejn*VhD@$P40Nuԉ3D3Hb8A9^z%)%8q / ,'''sMLx/^\PBꚡ߯@o4?> %K@,ʔ\\˗/KWO6m̘1bB=kf4,($$ŋuc֨QC=AIЙ%x𡏏OZZeΜ9 .lg3gTTIR$KvΝEJH* 5k}vIqƍ;v4$P1o O<@C"?~~k)!~w⽩]_`24Tƍ٣Yos4?(r5 2;vԩzҤIZFSNI^^^+Y07vYR4$K0nܸɓ'k5 .3K0e~aÆN:0_*T )%Pwv%CYAq|I~?{ =C 1N3IQ6K;wDK'''qG?7J*ڋo.^:# +1"-%K@, +WZTIzvpp0YݻȞ+W۷2YbӦM?oHӡKh"<-ZTݺu-[DΝ+_H@Çy0},_\^z-^'ͨ-[h :tkVϟ~t~Iޥ%hذ}[n>ŋ!!!e >|0p fD|Сyj޽YS8!)f Zh + +r(qYr(;aMΚ5c*T`ʔ]~ZW\dr5 |R҄ݧۅƌP0жЧV 3رiӦիWwg|]XXعst[͛%֧,ڵk5t~~~W\ɒ%lٲ}J%ܹsXbi2+ ;w">>>88XR,1N0` = +$O'/kVLi?~z mҥ/_dٽ H[@9s :TҩS 6vq%JP?`ƍ:b~᫯JNNVҥ˚5kL楨\d(jTa>a9~V^hQKM.fΝ;ʕ%[<(_gt\n]:u,7Y111-Z <}PBV`֪UK+V[.I`f>Fs4|rҥ%E[;N^Rʕ+2puu]v)PT)Q}ׯҥKcƌ2e#IQƍG#GUj)oǏQe +=-[6~G8pyLEDDBDj╿`Sy)/,ZE!b Å|<2]޾}zEII&111=O?Tvwkgg7hРSCo۷7kLR40K رMč'7Nwʕz5W gg3gh?[@W^-YhYc`Ϟ=%J01BkN\/E޹sG.-i-[ܺuv}ҥ}1}| +.CIQ`ժU={TmGDD,\ЂӒᡊ6޽;gΜqe)nԨQ#66֔'KL4i:w;vF RT_.Y2f&I4[X]\RB뺖׭[7_/Wܱc\]]0mi[xq0;wKg >}Zjoܸ^w=z5"~;GiڵkAAAf .Sϟ/[]111 #TVɓ={4l+Rȃ$EY.]_^"zj``eeӦM={lժՒ%K2ݾ}xiiiΝsss3n28x`O1bqü՗K EY]/%\msuj(,#d˜#/X|/kɓ'klDf͚U@LIe׮]M4 '%(_sŽ;f"~%JHd 2%K0vةSjVgϞ(ׯ_׮_|Y9fs}IQ@\y޽+nԪUz߹sxUcqqmڴ 1z3gl۶M1vvv/۷g(/,Z:lX!H=Oȟzg)11ݻwy5/߿Y>~OdA5n!C #Gj޽5͕%P?v@:KÇiӦg.\8A.\+WN:9͛7/.)Z'K ^9rdb,}.eJ ƍo֬ي+ &|7B\.^x]pe4Kږ}2ÿڵk_r3=vvvV^=`e%K@,`6|#$?R^(!L7GؿP(d#ÇZ:|LLLppYƼpB_zY,XM\q"## jƍG˗oȑzB?4h )+K~.]H%~5.\8p@{{kܺuK +Yw޵hbϞ=GUlYxɍ,/NNNǏtRO]l錄{$E=Y-[mV 888l޼̥\d(jg(!5MHGvAPs!Wpj|R8{E8pAg~Z#OԩSǎ+nd˖mժUڵ3q&$$h܎9d)S|ŋ6]_}զM 98gΜ}􉌌T%yVZfСCFG\?߿?88| @M6m֬Y͚5=, 4t_h,t+g ۨQ#ʅ ѣ)̗/߳gL<˞={7n]oŋ8!+v-I1,x1{xxS``ŋ3%>}z0>Ц\d(j6}?OУJIB{uX9Y&0o0'lDbbbʕ\so"Emfx(!!VZׯ_,,Yr߾}^^^&Ǐ>|PRϕ+מ={]7|FAY֭[5k|u/^0nV&Lo{,믿{-_f?6s'ȑ#%J5˖-۷eXXɓ'UYdQo۶iӦ}7o֮ߺuhѢl@#P,AbbbHH۷mGGG:͚5+<;wï^j[|}}k׮\n]{g DO'pss~͕+",X NUPd@P %\5j_ϟ_uΙ3gJ*qqqׯeGfQD~MRԟ%>}:,,,--Mn޼yttx%2&M8p@\k;5e( :u$||̦ML̐՗K EY Tͅec,xg e; +?ս׿ۿ{ N8```…}||e&v=z;wRIתUׯ_+ fG߿oӦͶmd?Z叆 5kVO!N_~6lkϞ=w^dIO6K | w3gΤI&;v0etʋ^"EݻEq@qX/[= Zիg߯y@HHŋō r.ooGIAAAW\1eXÉvM "##՟}РAs5em۶ݲe'O:Q +]|Y\޼yzigg'Nħj՗K EY4IJ g7Y],;Z}T{ Xv<<<<>^zjʔ)={v=WP_~nٲ]t ,:thJJ_]@_Bm۶[nsL\&O\f@;;;ϵnݺn%Zl9|ɐ,Az*O<߈%]]]^sROg,x/YD- gϞ-Wⷯzv C޿%Kկkj޼ՌJ,8C=RD ub…FO{k֬Q ={vÆ ЌO*ׯ_{xbEer5 (ݵB6ή${ᗍBHqkLcawU,)s2,#Gj֬߿߿ʕ+ՕYΘ1C,Я)%%Cz)_-[ٍsͮ]IcNQQQ#F0)$̞%سgOƍ`,ݻw$E$$KQ/_zζ~-]T~nݺUX11cLbRt˗/Kd D-дiSնΝ;8p $E. 5n@3=|] {WWW+O \d(jJ7j^Ekxsɟ^*/lĸ,[lyqu%,,lŊXrrrw݀fΜlRSS̙3~xuѣNjSh2{`fs%o<AD +Y=.\vtt/QiӦ3FɓǸsܹ3<<\~Ν;7fF)SҥKYQӦM7g}WdI#!=ſotʕ۵k!KPT_.Y2f\VÒblA-V(8P +NT 'ƉW+(XPкp(66 wyNr< 呺Ƀgtː{IUd;{4w8J.\ׯǏ  9P_|ݻwdddQ hҍ7Ջ w;v'UZ-[&&&JiZ[nYXX999ZYZZ޼y`q„ K,a7 +\x||<(ק6m_KbeeUHƜ9sMV"Q^rʩ{ MTrQK2p*nR3cUnA 8Ek }}}333ɷϻd?v̙3E5ٱcGݺuyLi߾}:tP] +~k RSST##McuMWRddd(ֈ<"ԩS'7*Tnviz|^zѣK7lذm۶1Ub:r5k_K@y{{Z"=(:e˖M0,[]˗/qqqEQƮ](DTrQK2h̽bT2"l: /Nj%:thxxxbΝ.\بQ#~͛N:%$$p6m^ 0~k v5h BBB8$k׮YYY?600P\---vEٳC +>ݻO>ܹcnn^k͚5ʥo4nʕ+uO۷o #v]aKi(+,--EP?P Co߾20墖d= Dxr,G̈<;ҋYYYe˖mڴ)*Tƈ6l˖-Jt-Z\tT7o + +Trccc{7!C0b%Қ3g}9 墖d= Dͬ3y#ڕl!hI$6͝27 =Qٳg/_l֬*Frܹ={~skpppUZx%ήVfff/^(M޸q(!99iSWʼ}R%e^BEGGG-cǮ^~սrJ 4ko߾M?-[655UW|(=*]tq&77.jjj=zܹʽ@KZhyrJt„RXK##zv_~M&î]=zsrr2 %;v=X;;;E{SZVAEk 3fV cOs-=^xD5/ Y ^Wnܫm"$ GIT%k .\_0o߾k׮Un>zc-/_.ѣGlV85VZ7nl߾I qN"OMMPfff%XhQÆ uJhooOɓ'k׮& ((|ccc9 i„ ˖-+n:OOOyvAҬYfΜjiiі+WNޔyRݻwئF7oN{ԔgՋs-AժU_z7墖d= tqŽ R]M3l%~+9ⵌɃ +>ᨷǏ{e233 ԩP#j ׯ=-!=~8p)S544F`e*}DoTFF;ZOOogڵCj 233;wEĉ7fWPZRSSqtR dfݺu^^^]]]7o,pvv.8$ ?{~/^d%FaiPm9ҽ{wFP̵UTyZռ\ gx 6{8WFm~5#^ɐk ._ܯ_;w0ZZZF + + +244%ѓ'O:4vX^z_-#~Cǎ#"" +>ϛ[_z6oܦMGFFrV}s^@&qx{{|vvvh&rKGZ 80<<0RreŵjJYaAHhh|Xvmv<$$C~֖}(WKZܖF̵2_!y%Du:CzL^qv4[xq(Oޟ|4 --s׮]xŊg̘1vXfsܹsTTTQV^WK-Avvv5^|)411={#;tpĉŬ,GGXF3zbٳs8m9`FPCCV9}Wo-i̙)Sw˗OvՕ۷oϹJWW^;={oܸ@INNR{WRԂţG:;;˹-o>9t0i*egg,S + +׏͚5t 9/a1~A-Ej^.j @Qݳ@iŽ)R0⻂#nfD|4~}ɠ6 Ξ=[8p`xxdp7oK-cǺtiffƞ믿:uJ2ŋ-[>}ђ~۶mc?s66l#)پ|RlYv\s̙6mڰaC7ǏӯO]gٲeo;eʔ 2FFFϟ?Phdoo9FPZ'N7rttӧm\KP\4%y%Du|4w^Hm|vG9If>={"X-AZZɓCBB{1o =?@H%xݔ)S6n(9 6mJjrssnjn:lmm;VbEUA~ů%Xtĉ%#zzzw511ݝѾ]vOO>\E5ŋ2ջsfhhȎ $$dԨQ`ٲe?}{.vJGGg„ 3gΤ_qq:zj&M +m6dy6<|p=8;*ΐ 8p݌`TTH˨eʔP(@.ZAT,cȩxyMr@D0e2HY%j rsso+p֭[uڵ%''cӦM4nԨɓ'|" //"%%E28nܸ`!44 &m۶͛72 61s/.h޼ybb;Ǐ*T`[Ke˖Ç3Bg˧,2d۶mlo\\ׯ544?0ŋ`qpVZHy uyz[S.Zdff{ QE- {MdUvf  !Uܫ'Մ TTK흜\ս{~m۶VaÆܹSM4hmllQIWZSNuA2b``bjjJ?_ӓI6mΜ9STw8p *==W֯_j˗/gA>p `׮] b%,/K^<5~:#د_={2*p޻SK0cƌ@FiӦ/_Ull,Az|rrr>~jjjҸZռ\ gK&&&#B^Xՠ&$ZGUSJwww//5kk|қY[[ҁIWZ^z1vyf*2j(&vvvRݻܷ>''Hv|ĈwAt_qB#(d-mllx 8[[[<Ԕ=xeT +iժUBB#XZ+V0eʔIKKULLLvAKKk׮)7 ݺu‚Ux@QZ8qǏʕԩ""geNGI%zx^5,/HԁZ ;<[nLUݥϿ?~ܹsuuuU=Ç.-[`qڵGflպusI˗k7ow߾} d'bŊzk ;֥KF߿pqĉ/Ihh#EOʕ+2*lْ`qj 8^SEmE۷g\K@ +P;QE-_OQmڴW!b罘^5u%022e_r)9$< 7oތ߿*U=:ܸqRԨQc˖-)jWZƣ)Æ +\\zرc[IyѢE'O\|rFɓ1cÓ+UWc-%d-sZnK/^066.\]{/ر'Az ^-Z\t,N-ymթS:t ;;[KKKD5/rrrZlD?AT,?r+C!̈́ƜdZU?ÅZ^K s͛7R;$$D-NIZW^ծ]ׯ[ijjFVZ5n8%:OOOx!{q[[[vf͚>}DEyZg:880BΝ; -Z(qjjQff&#dɒ &5$4k֬`2rѣEm٩S'FPYYY%y%7cƌϨ%`= J6$9 /muDK{-__5{idDw@Jt--[<== /_~BJ!Jϛ7pQGG'!!I&mo<>>^֮];zhvqW\a5jtuF044]f"No߾|zk Ο?~-gΜiӦ _)6o\8,,lP +sssk qFv=z(jcǎu҅y-AzzEj^.j >ݻwᵀZQݳ8KvH2S?%? #qQ=LpPBk rrrN:|)mZnVn]Fj >|PV-gaO+||ٖ-[q:uxwppaMLL?Jto޼Z*;ZxFPZz/FP͛ +SRRjܳgC11ߴidF8NNN'OdEھ}:rHC+WND5/Pڝ:u]j Du /'r gag#+t@"lƏxQIj)o߾4hzzz3gΜ4iSrAAAջz>ٲe&Lh"!!A1^}P`ԨQk׮fgg3Z^tYf$b{ujq֪U+FPZӧOk׎gTٱ[}1cٯ(N-1xJNNfC{^_ռ\@6bĈ, j Du!:ٕr"gxNEO#{?ˆ&yD\|w/֭[BJiJ^zςEMMͨ()K,4i#جYK.37nXZZ2{a+ϟ?^<^zeddĎ-Z0B~a6j녋#FذaYhh#qmz*84n?Jܽ{~츖VZZPI<~F%y%R*55uʔ)/B%ZQݳDBVS,!>xK#G.Jxvi]3%`۶mFb?΄ fϞM?<0)QK`ɓ'K.JZx/#شi˗/9<ECCçO+WN͵k׬jkkgddhj*YK:$%%ߴ d-ATT#YɳhѢE>{|fw (~k ֬Y3fvƍR6ܳgπA ?P墖JfXX% PK {CȭiOBw + KkF.n"dddL<988M4ٺukӦMU)ZKSssj +eʔlp)S0IIIr1+gٲe6OfOpSν{ cccv\W\aBZzoߞ,1117ZlܸM2¹ל-feeŞt-A˖->}Ы@ʆ۷o2d#(Zdz~<(QE-T|}֯_[)-QK {$)ƕgJkS2YMw"ʤx&\i4#[GIP2Zߟ=SN+ϟ˖-WoR(ZK0r 6|KHHhԨQQ/XFqW\sxɷܾ}Zj6w8p #ةSǏ˙Mo`ɓ쳥8rrr$JJ;vի?B +<FQ7(WKpȑݻsZnmׯ_n Zxz~<(QE-|>|ӔSNRRիWlZQݳs *c?ո>2,5YG>~Ѳ)9)h4-޽{===߿Ϲ>$$ҒnjSxxrRƍM4.X;!y3VVVW^ gffXLJ?~ҥKsv\7oA!k N8ѡC~ 8pݒzzL|455ՠAvHy"""EOW}}}9y䉍ӧO٫444=zTF )s"T'---22n۶Ej^.j dիWrrdÇ?h%`= J{ojY0-iۂT.Dr4N 9JjHb^S|\KÇQF1&:T… 4{]I?~lkkStttƍyMZ'''O|2dȶmۤw>wܩS2 4uBtҗ/_9z{{3ׯ9rBY$={ԔWo-AJJJÆ A!k {t{0`dd6m*zcDzrttw$`5k֌%^ۏH:1B"uE m- |]ε}]jUjMKGGׯ,cbb,,,"IZ ZVVV;={:uܻwCf{9sM6JS·Ν;挠ǏԩӫWÇH2e|-[$#sݼy]\\x4hѡChGE355{f&MZd #XbE%fN ~Ō`jՔΎܹs Bռ\@ɆZ%Xt"qJ"W6dLRDZ}]r%00y󦫫+t/??I&3 ۃ:uĞM=̙3/4558н{wy: + +bT5o7ش +*0֬YÇǴv\tj׮ +YKpQgggs}+޿nb4Qƽ{tttxܹFDDtر3=ϗ/_jժ?*ʕ+ǎ+٘1c֬YZZZ2![JD>תlڴi Bռ\ϯ^:w܆ bbbdG-YPzG\g8-C&\ +/ ˣIVVւ ̙Xѯ_Eq>tŋX[[>}bŊgkך5kFLɓ윶444C1/䡧#ؿݻwGq BoKȑ#]v=Wnn.=ڌKo>**x'N} J_ݻwAZϞ=ٻwBi&::ZSSSfK[k V^=zh!j^.j t7qI?QK {|$'Skb1x5@iSZLOOςѭZRb/_vwwt{UӦMWXD8uT>}d>-˗/ov.^H?6=kY +zA==_*?ۺu+#|rootZgϞ2B:tHWR(o2>~1(^zcٵ֯_?n8zgz'%%խ[W سgOᢆF֭=<<*%ֳg)SXZZ*'ITrQK̿QK {|'>}!+vthӘLs' +N-۷o{uYKKJ<4SN]reNNcѬYiv+ 6xyyeggӸ}Gq2gvvvQQQw>zk2C#Gc^xQBQ#(d-z{}ݷoW=PZ:u]G\F22e7Dڶ N/Lj N>ݧOw,zxx(SLٻw/#^lYooI&UXQÇ8p@&&&O+_#2{8++~|2{ܹڵk+СCO>܀%q=)22=߾}Azk ?~\fMFPZՋ\9foo/ɯJWÇA666;^~Xz|Rȃ:;;L&y%kݺuEE-YASH#r!y/6)g@*#MH:a-u@씨%شiӨQ +Ǐ˗Kuuu===]rO>1bܹs}!޹sK +bbb|wf߽{K͛kӣ=߼yd[KY;!d-}z{B666,,,^,xQVG1k ]v 4:ujΝy%ͥ-[^^^M6U@&p-Aa!A"ZZZ"(GTrQKj "{CZÇK>r.\_<Ǐ$^L,O}[RJJgwѣG̊yvvW$666ϟ/fۻ#8_ŠZ;w3BЫ*ǏW$''s)BjԨSFPf-5rH=:::6o\SSSeTB@_j@NZ(PKQݳ@r<{[n]]">>>00-Z_GG×ݻwèddjjکS'FET<{ɓ;wWԱcǺt.\׷=S/_n޼9;Z[nYXX0Bl۶mȐ!碞|t󄄄VZ%qㆥ%#(d- F{W^k׎f-[_cc/^0%IJ!A'N#y% += !ȑ#...sΕ###%yxx߿\r<]ԱcرCfK;;; 0*I*=loo9v<))ں8=kll.:t֭[mxvݻwj|bٸqcFPZիW=Do޼i׮ݵkiܥKCiii;堖@ 7oެo߾w+/(GTrQKj "{Cz-ҥK'O#CEM3MOOѣlj' +6lطo[YY`нpuu}fnnn-R$unժUBB;~EΧ/$$dԨQw[(..ΎejxI+Wk0%y '''_o2v`z8 3׌ /tgΜYN>˗/W +z3<-ǍG_yA9Z(PKQݳ@h/WB%z~|+cY}RAȈ%(t[Fz1$f*@iUT-A6m|||V^XUf*UHQF_|֭[߾}ygΜhѢ\-׬YӺukaƦZM&''3?Cll,$ϟ?^mmm#gΞ=?~F|eQTRRRfA!k ϟ?eRܿ{w\kllL +U ej`*U{F,XϯhoQE-F%PYrwDLn< ) HZAMbӘҒX#,E- <&1dglXl%PFòļf~FZ|QmTgr>H,%Ud͒QxHw},rTxGղN;%g-֮]{)F\OOٳ-[ׯV(q!C\vMz3CC1chkk 30N*%qFb-<<<\\\ʖ-+֭[Kn.O9ӧ(vPio`{nݺuʢD/d-=cMKСÓ'O8dɒ%Zb('pZZ#W-A9wlڴU)D5/P@!g|@vDS6Vtʟh3p!:7uThD +g!{T"oHvcI%#c9JdGu 2 +`Q}"Τb^DƂ3GьɷI?FHhh RFNN… gΜ),Ybll,Pi-A޽Kxyy5mڔݦ 8::>}Z2ҵk#G8 6‚D +?~'FPZ9ss#;w~ {njC?_~UV_|dK.-`F<{l<o3f̐5lذN:&&&վѩP/\~UKJ{׭[7MMMu ռ\@iZ;qߒ?Ued3}o=g`T',#;N'HH2!(prw' +d UcdKzTUպ*TqC +UXvmAF8k׮Ii9xٳg׬YSJ3Ώ=bBE?u֒333#O%?zh׮]g2ފ g oԨQk׮UnL//M6q\rUm۶xbQ=[YY;vL+77%onAkkkvZ(PKQݳg.ASW͢K}{133 kyuNe,O4eNwq?UQ>-[ɫV%Ϟ^ x: &>NjժIƱc:u$بݻSM.iւ Lzʹ|ܹNI&UHP]NݪU+ƴ#GpN/Çуrtt=N:աCFP[[gϞ犌LKKc^T1t_իWll,{ʕ+G!e'OlR cllcǎ_~E)'++#%󴷲zZj'y% += k6⿊H-O#{:d2z"MX˘L_+\F^&2mToRÈX=gCL!s}I*[}̆u=?*O"s6~jE*\ƱIUb֭HF999!!!ӧOf͛7_pa"""z葙('XxdڵK8лwov\39ߖPlO>yhР;v(Ubbb>}P kk[nIiӨQ?C___Q흜,ԩS55ϟ?ĉlk׮x𡕕yz/_\reU ߿?;~nݺ"<ߧOFPZ}޽wj*___w\\rrv}Hickkcǎ:u?H夥%sfÆ gZ(PKQݳ@IV?|zTiچ&R9ҨO2 ȣ&䶣fb<Pf FoF;5IGU;sXE݌U3,@ƏGU, ;#=h^='МD=)MlmɅ ^<}JKWn.<ߛd#J{xخ9r\xuRf%$$4jHQIqm}=[rGIpqqٿQ Wuoޝ;w( 9sFEIw5h v|޽ٱcA!k uva9{ȑ#٫֭[ףGEG~zOOOmy→|}J]KgϞ0)))j墖J#(DT,P҄dN;w6,+GF)R"ȶc;h[3~/L?BSZ#@}θV[BfLfIs~\7j~8 ;.X}!hKn6IU>c9o;㨆l~o:v2+;7^4bG9hkq|?t;WY@:БcN}LtՈsGftdǚے% ~E7o)ʳg7mڔUT*U;B +BMi9997ndjӦɓ'=NH۷o2dddѢE&M2caEuyg#A!k :t ,.\0pWH/|Ή9sYd6kР\޼ySjUvDܹ}z׭[ݻj墖J#(DT,PƲ葉oH֭#^^{3ZEȗtT87&s6*\ qZ2z-Ǝ%+W#cY2V |5kLƑo7"s7W1~XwFzTO3NB?x9O{ۛ,_NUg򑑞7||H_K3 ̨QEsC@ҢWؾ4`CL&%KGz*ZQ@3ң:2CU5KgEe?ttt5k̝;~(Mjռ&L`hh(؊///oʔ)- ZZZVXQ]bqO?$9]W^P]ҭ[6m>|JvѬ=Ξ=[YYY , dT^#` + +eΝw{{bfd{ⅱ1;^k †֮]j墖J#(DT,P+ʖ֦Kj2O`qO,xZtj XC]3֬JTYYɺelߞ725%!JJFGGr\?&hm3+/h3?XR2kGbbdoTFOFUأ]~T1, mKΜQ0K(+m㞿`}tp ghfF>;oߣG~+3JcTR-@rss{}!ɠv|||5**55588xX:uLg_G@ٙ'O%`˖-R=Rx@D5/P@!gb$\E6-C1} _ϥE2_bc鏃Gיi۔!KǓ1Q8lFlTE2}?e?[jyEsH֌3;X{RiƸ8bk+| .Gen8Soߦx>Fӳbܸq^ 1*%ۧOoʚ;wnPPuUV^?o]?UN!ģ}7Q>~l(-TdoACd +"U@(YD-2d([G$I~/_]򹻤תϓ03GMWKC;~ӛՍgVӦ{?3ueq^Ǽ(ZT3 믻WGb߾<8֦=**w6@̓gRfv/Anmܭҭz8sވ7k@N.߿;jV 5oiq÷*cCl>]-ZW0@v]*6w^mJgg%;}tѢEϜ9e .]ZB_j9vdСøqogʔm۶-Zm۶;wyz 80k֬>ޟCUV3wI0ap?mB>siʀb5:~ Pڴz?yP +Rێ:[D^Ge6iM{7|]yψ޽{sfymРAÆ ӤI}˗+v/>3O$09G˻uxghٲԩSK*աC` >x/^޸q֮]w޹s.zmf͚7K$I:uE&Jܞ={VrK؈n5 |M))4y"Ꝟ\.\L Un2)w,_+gu7/AezE>٪E|?4j6A1~? +ypD|\<jv嶶*S:+m?M3cMauq*PO*u_fE8X,/֥29D=xLUR ӵ4k^|hDʼn'-[hѢm۶=g)UTٲe+W.]:ݸq#88xÆ _֪Uk֬YAAA~ܥwyg@ 4^-+T7ryݻw/|IҤI7nܪUܹ=J{ƫsW^5yҤI>ƍK.|ڵ˗35O[dIVrK؈n5 [AzQKe2eK53,,GTt7=(҆.4z2x@LkEi*XxH(S܃b_^e8h_1bʕwD76Ά'xxٳZ=z?o#[9sN:uTL9'5kϝ/_J*2s bk"#}0yOH}"*W:?ИncΡVGîŃ]7X#5LxH5+jFw6+sêYqU˟Q4V#U8o\ŃWc`yqFv78ƻczY*S!U4b9ub̿_Ÿ'_w骚JKv1-f1QaU5* :E1Pf tQKU/u'3&T&Qam1TQU\=Ku50&V*-Q603x6u,aoޱCFRݸ&b%]67.j|eUMۦ*>? vVQ HbZ]8ʦV)q%lh +e؀x/.E4}d{g5~]ztšS/U|Z/(ӄaT|_̠TtW4#]r1I&|bF;Ҭ]zbTX[|VW.ϘҚQ=KuM)e^UqvA Q~03x6z.߫?{p{`s *UFzK1uFzK1MFzK1mFzK1]F *bsK`y14yPwwbP%hD{Ms 03x6dza_=V1 {|gM>5BJIuNE-YY*6IA͐S;_i:מyWp/h~7ݰtp8ɨڳKJb'F + +>Wb.-:nmI'F)2ޭbSл=[tZ|P*F yrMg{u,&ҝ*j֛](6j']:<9tZrXe`#zټCKͲ"K%c.}%)Lv=ׯm[͝kYO Iʠ97V z}h qxC&mt:,^3Y_G=_kezZvMM;&{%S?ŕWimzLZ~J-R2+Cz' +rc-.6(}3jirx[EI֫vUkkz ZR[uϤ8O~*.Tݼ^(ES%KjM԰xW_˯7U+gy%;jozߴZ}VZJiΪܩ +EZi)>\b\ׯ]֪G۱cb.}娥CLw~բEj1{U+",NYVCׇ*0H[o+CMMVtj1SDMÊw/VMî)NLmk]sxD5]j0)qV=(UtdEF? ni81Uˢ_MVtk:8~ڏp^oAqo_8q +Τ&+7Ո + QvOwޣ qzUjlz&gEQVs ?s ek"U˷,/G[>a{kUEXl31(q}NK=(.W*dEmb5䑏(C6IVc%m7YQ*6LOrX{T\M 諉)9HL)c\ށժX񿋬.UilA.6˜P\Zm^ZF*wrf~ _j\.s 1-f!r=jd%N`*P9kIUzP+(.>b<(~9&+gO5u V*Aqlrb:bR\bUFFkt}j5txqo}ѝMkHb:f TGG̙FG曬01+oWѢ/f .B%k͝ EQKs _j\.s 1-f!roT櫾j%|է XCu1Wfhi3zXS>SuKG+g&_sdrz7_mZڰUqhey1[F3}5X[_-ROu?|]̚1 L_Q/T/u+t.fI\>j7ToxPu |ʏ9RGf̃#jВ?Paqˋ< Z5V<5jw*]JTteOu@͚pwUQ;E/l5.K[]߯ٲ + 5YU U:tȂӺ~QeeVSV)w,OKn9\SMmѾXeРOLXTӷ+gu7!;5O3cMQ1~? +s |\̒VO7caة,.6Kb4b^|E3ы(.^TPwԺ*cJ3W==(Sl\YRhL;Tȷ$N :ǹ*jW +XPVrK؈n5 Q0Y?~)?ܞ T6[ME1:wyu=wϳ5Ϋv)>T/[^ܫFyd6TkJb)g:lU=B<.~/j[f?7ד>/& ҅+k(QKq<+>b"HwşTE3YaJܸg,>&gw%MiY]X?Y5{8~S\kj\.s 1-f!JFcWuj1݌}WgYmܺLU}CDbwX2C5 {(d +nEf 6/NS7b/q6/~oޚ1Dm^-#׼ya&,RxYkM5c>:£j`WE&fkcO-Ҡ>4j?|V55ɲ"{\F%pY55Y?~_|Q?lY0.kqdVt&W], _EbZ]8*nhxZU],I{g +y&oR],)#$х Jtr2 u8(-T9rGX_t~-Dգ]CoDq7b `/kX\{7mo蝙enqޝ*^1̶:/ҖKjFrvuW2RڽAqS 2[l*dX\|VrK؈n5 n(Zw+ nǮWAkժDȪ/(ϊ(ܒ&,Q)xWcqZmq*"Rc4-~7_nvJi1S\[բ~rĶnϣ%mj^D?6+mW.;4-:^o>*sZxV߳ո\ 6b.[lu͂;Mt?tJ\FUF۰@C櫼%گX_CDbb= ]r6,\I~ޡ7"-հE*6e hbXHc$4;el(EgF|ҖeԹjNGV$El5.K[]4q*qm _?F\7OS7re$Pk"geyI V=͚iժHo`}z.[XJqV#-.Pﺾ-.T:Zeg/Ey\:"bvqz҆6^ߵy1NQ&|e5!Ңݑ"E4Zk\kj:b׵&KulG9k\:ne +j}$gl5.K[](O#}tkLLDGF:}z6)8|oѨmmui e];oѨX]f轧"+vSqEP{Sl^#FS /gt5qEZ8Fʉء ?EUԿbMm0OwŮd˃4Yuy(q^=60;jF}ECr]^ "xۊor"8FQ<]mj[R DxV4H{(˳ +D#\F%pYpΟT-+MVqRi^䓚2ENϼQz[$VZ(LI4y*P1xJ=.>(kϽ)>MSppTC5hX>]U>jr7ʶE=hq>6QxVLkFM}ab# T]53fJ(VLmP븺AzJRFתgՒpmahl=R%Qx^Ჸi~;Gz[4*GNGb{ }tM,O(T(t4޽.PΡ# &ec<$ wy.X}V7n=qX2VUV!o\F%pYqF{? fVB(QoUÆ:z5 h$%Mݽ޽e)4s*U +=FZgXVrK؈n5 51>ʵiw֢qVKb"c|hՐ1h,icrqV[xQ*+=-vPsV{>8Fy"\]hc+>\b[e.b#V,XiǏ2z.FtT.G9>BY;5J٥88] c}?Zm?8j/y1Qk~{1gu+8:c;Y= \F%pY]6S_qr?^y du8ثꖣhelb(nMюkG8t6ŵ;g՗E38z8Q?5gba2 +Y[e.b#V,<.Okj}FGqqnTI_]n95 N9zX4j\ѣhcg^L?c/6nY=1 ~̗GŴ)T'E ո\ 6b.[lucwݻ!z.^yt'([eϤB/T~ʬ [w|\4i_OՈBrQ)>OOqs1ǃj4/WKWMz%gA+v}18x}yVR4^993{['[e.b#V,ڭ;)EP"%1IL"E';`q%@l\DS\F%pY@4eq%@l\DS\F%pY@4eq%@l\DS\F%pY@4eq%@l\DS\F%pY@4eq%@l\DS\F%pY@4eq%@l\DS\F%pY@4eq +endstream endobj 457 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4121 /Length 30165 >> +stream +xyU8sN)IMyT$E|d2d +%܍2.%.]-7 +"J"DE~gYsN{w?zZ׫~z핽iӦ,+Ҿ}tg?ӧ;Cs1 iӦ}i2QP}f Y\xcǎMw%&*\_?蠃ҝV7nӝE f@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y5Kf@ +/,#*\@jdr1Y@֯__\tgnݺt'՗kTգG5k^|ŭZJw.ܹs;Fʱ[LtgۿM6ޡA%bU`u^:tGYtt'6qij:+w~Ç?˗/ެv.];߯9sD߲^p+WNw:(\@j:,\0oaÆgqYgUJ4f;wq=yu9rifc4zk6УOqNhر_|qQzs=wذa;S",A%bU`knѢE ʕ+wq\pAӦMӒ7|Ӷmۏ>h`VƎ{!+ 7=x`_Gyӣe˞tI#F۸qcH}zۭ[qE |ye˖[|y۶mǼ^{u7i̊p՗kTժU%KpBx],%r]qW_}urjժzguĉ~ׯ__~4vMn 6QzrСC7dgg2$zHrrrҕ/,#Yf˖-PٲeO=kz)Ί۴it|0`„ *THqVλ[vE.*U%yx[:j 6nةS $kG}N:iɊ@՗kTըQ+V$ǫT`M>%7|_9É7xFkNu_x?O;u]S/,#~~arssMy:$:|-m޼SO=UVT.1c{nݺ#F8K*|x=ĞvAz-ZHAJ[kΜ9O>dtviY>o*TaÆ%fyӧOOs֬Y)Np՗kTUV5k$>o=ڸq\^t%O?y}ݖNc=^xᅊ+25zQFp¾;{w15knѢEPno#LM>E0k֬޽{WVmȑ.]tqVꫯ:ulٲh{]w>6mڔPkEJ3gӧO*!A%bU`UXLvm{n5lذiӦ͟?~!cƌ 8ᤓN4iRh̺uoR/;>|#vaS4{葻ݦMoK.E[*Eݺu{";Y:vXA3$Ǜ6m;dgg2T_Y FP5 ƍ˔)oS38e)e><+VL}&A+NҥKtROJxr*U>|xro?j׮jժ g}s ={-[^PԩS<Ȣg5~]woM>4k֬U7m׿N+W\1$ 5KfaOԩ^_||モO>yƍ{=cƌ2eʤ>p|tBҥ*THeVhĉguVBJ*a9餓LAq)Χh^xN:mDOwyꩧn ߿<7[jU57mtgO0O>h i%҈IרQO?-SL)-=[5K{5n89޲e7|n\{oF!U͛nwڵh }ٳ>[9 2BP}f A, qb\yڶm+|ovϞ=?]tKv}+W&{+M6ץK`g UZ|/:hР;#Ӗj{8p`ro? vW_-ݨӧ/_>݉EA%bU}={?~BRJu]kժUz˗.]r.q} F~Wvr7~>o=eݒN:iʔ)G*Vx +ҥKOduIcv9!Y#kӦM 8T&SL+W}ݓ[5KpioK㎫V Hr1Y@qKvM۶m5kVnQvիW';)$X֭T҆ :ꨇz(dE$wҒ%K:?]vͫXb'w~o>3 yVZn%ǷjiӦnBsϽ +_~e׮]/^.Yf)Yߔ+WW_}u=|5j( +ݻw%%%\@j_~)SLz˗/?'/n!-W_{」7o^駟j׮v?O]vY$=CO^t4T^xSN q3fH5+Le&ŷf͚Zj% ?KgE+$tGGjѢE!'xw/lހVbŊJ*r!u]gqF͚5s^ /,#~TRr|Æ K}>a=hyov'uY+V;vgLz뭮] 2d-ܒb-X`}Mx`ƍW_}^|yÆ SI/Nra:餓LmT^/Hw:_=V$uM7 :4)… ;tL,k^{%y֊n]bg =3 ~_~%_Vրh]vwqGKdE7f͚ׯϋh"{Y"-5Kfz7ڶmz}GFR-[~<|w RtGyKqV+$x`ÇO}LY%iㅟ%h׮ݢE6Ԯ]{ʕe˖- ֭[v2eUW+WDuws9 (/|ȑ7EZ՗kT4w.]$WXѠA~e˖"#UPgI~@-Z]v w̙ 莭^:ߦO;Cr}ժU̓W]uȑ#K,Ŭ'xW^y {}עEZ}y=tN$̙ӽ{P6nXtx!g ⊫zHNZb{v-[_>/=jԨ(b|p *S? A /,#hر_|qBu֋/NK>y5jy櫯T[|z]r%?piݺu5kVٲeSRa,YUV T\}uK*M/v)K.qƄ`!g t2w#=_:t-ܒ>ѣGy͟nݺywo8/,#/3fLB~'J?_](''L+򪫮l?ߩSt?9oƍou-[Yf }yg9ӧA/Y NrV%hڵ|… =z̘1B +%;ܠ_Y_|1gtg`n N9I&%˕+}۷o_;t{c7w'yἎ /,#SuQ{ӦMK1k)_y啎;MNwuW|&M:S3f8ґNX-Z{ZL޽{w}m֬Yvvv*+˓_.QYAB:tH~SA | WT\Of믿KvbժU+V,ĒE!VZkѣU%BD{-UTѳ$;r_СâE60`„ %B|-/__}$*qU&w̙yQeK$oW^IO4餓Nڪ?#OOO:gK-[vW^vemڴIEznݺ%˕+wg9Zj)K> $j A\lذf͚_~}mi W ._|EB0v`ƍ5jsw.]ֈԵk^~ׯϋt!z05Kf%aÆ~nNN13bĈMaw}ʕ W^y]vI2-۪U~!ߣ+W8q[̫l#~mf֬Y|hk[>_~Ce{gvvv>}.;n ٴiS^~{1eʔm@}GK~?O^{-}SO=o߾… ;t萷{A1"dδ>|W_]fsG9sf .gofB0m۶0_|Gq+"QO55z裏svѷ>!;Kpws9y%R¨W^ةS+DRHEJ-BVX1iҤ.:l A%bU{΢T\y)Ow}ƍ]`[n7SQzN8a%?#z]ȿk˖-}ݼHJ;d/[1裏ʩq!L>=AUVK,IWJVWP+H%SNݮWފ+J.])2iҤ`0G)rnGiGZ/^ݮիW_p7pCqb[/,#;K΢$ꫯڴi'loJ*_ܹ_y>|ZWI$x駻v?re}ſJ & 4(o^z=X F$X~QGN o'Xti͓O駟֭[abGSL)[lѮ^N/N,/3f̥^Zu]pnݺ͙3E.\]ϟ=0k׮5jԕW^Y)qA%bU߃˳ƍ'^zֵצ<NugMwykN}>[iӦ.,C+W~'wkÆ z3gΖNu]׬Y˾KݺuoҤɰaN:yoIt'{Y U.O<=y~ƍ|۶mGlqRJ5o3ʔ)S}?JwE +%%\@jӟF쬕+Z7vG̘1#9n8^|ۯs.1c*7nӧ?^9QOhꫯXK.6WUV-YF=ƧrJ]tOK&LSB|;߻r1Yv]E +:曳;/U裏~ᇓf cܸq]tQ'4kW^٪7kڵ 8㏿  |Iڵ.O>;Gmܸ1 +6oO:thH믿K.)vmٲe*T]ꫯ+={.*}1W)% 7޼1cF?oϟ_̫,YUVC9/{d` *| *lٲYf-ZhذaڵkԨ.D +/,#l/O_:kg۵O>yq%hݺu?;쐓-߰aCN^zΙ2eʉ'Ǐ܆"]K,>۹s#s΍"O>dݣڵk'żٳ?3'LP I&˗/Oni ժUnx֭x_hҥӧO۷oofT +/,#l>$nݬ~;FYsl`6p{'9n ڵ[nݖN8c|uN;o2d-R_)%8ݼEv?5;<1c.\H[5K8qYq&LتqHr1Yv[;Pg)zuV8!خqwuWr,AƹkF{/H~{hر^xa~rUw}?hcժU[npɒ%-Z(΅g)zqGgBj֬ٲeD;shcrg *vqt' /,#l<0k޼žezw 0aBr,A駟4ijժ|~Ϗ]䠃zg=&YOmٲŋs֭{?޽{B ov͋r!EWYtiBY?uѿywM7 ѝ>bM3&կ_?ݹ5Kf۫/̪U+_ {~YLwη_~ժUK}>8qbr,[tYg{SN]]v-Ћ/رcb川J,A=N>y׮]mr-C )΅:w&˔)?+W8+R-y睄`{>obq衇.Xફ:3~1Wzꩃ>xÆ 5k֌۷OwFVP}f A,`{5qb`󗓓gY;СCotgQtf 6믿lwM>t7wy+4l'|Rv⦸=J,~}@6lm߾K/Onފ6 6~\kw_reBq>]B$ Yȱ;mڴ&D8iִih^zg={ڵ/rw˗/?i$A%bU hQVồϚ7oֿ*ժeկu .(OwY>q~UV믿N㏥J*$3)%?Ξ=GЫW<ӧ̙3| 6/_פz衏=X*ZZdIB0k֬iѢE͏GydW7ls=yݺu馛ZlYK/ҥKoW\qŨQҔ[!\@j)x#mt'=oJ@.hܸqݻWR%ࡇJ%HaÆƍtOMʖ-kذ{WbYn_R3Knݺ*y@߹ss&sgyYU`K(+WF+$/±cy٭{ D݊+Λ7]vEKcȐ!v;2x}ݷh 3gN2%CwK.*A%bUL1rd5פ;kҬMӝ/η9^k$ЦMQc࣏>JnF/niذaGfΜ٧O?vi|r)5'O>s{N:%sW_q'DfJvW^N+ښ[M6/Nr *p@תUk…u)B^zu]W?L;Xba5KfeˬNwןu%Nq%\q)3s̾}k߿ٲeO?ԢE+Wv^Ύ?~:Sb&J,A.\}'g4p_|1v><9sE[skE獤 r ݫ迟}<3E}Eqn ߕf`h`ĊX# +Q5vX^DQc,`756DkbAIx_?36vg}?s?˙gc8g}{FvTNRsST].tPԞUUX: :uTW _ݦ@6K(_YsӦMڵ>4[[ǏsV\\\54;v R&C/ALLLz_;88\pI:lϞ=鯳 ^z-]TT;&'ܴO%^aaaBZJII̎GEE ) ˥ڳ@R^*[I0riӦIիW͚5;xM֭l ̙3cƌ.]yCF4ZdI^N&g[n?Ckn{.\'8pܹs[AG+UtE&4B{ *W?:T~}҈ + + +To< \`ݺu~) ˥ڳ@ꪒ*٪A, (gϼN<)>G4~'???vݸqcyvKpҥK~Zx]vǏ[YYi)ɛ7ojjs޽ƭXpᤤ$QP7֬Yc܄FUVll(hP/`С3g|gr儝AV\ +*W^裏O QT].tPԞuUrN"~t25jԩ82{W_}%!vտ?>r۫jЅ *Wlճ/s3fҤI ++Ǐ׮][e޸qCo?g޽$:ٌ&SNܻwO@^z>"s 6J%۷- \z 蠨= (ߙ3*ooC!]Tf.ѣGO2E@~wiذիW5_N]]]͗@f%jΓ'ֲK3kkk-K.>U~,X}&M޽;q { }yxx:LK ??O;66ZjzrRɽŋvC).^:(jݻ՞=#UXjPdC:ydi^zjz=z񨕕U```XXXͱz=-[&-Z2;LjŊjO =^f͚l۶Mq̌3 &P𭴷>,_[nz M6rHQPV n<ԩᅨF$$$/_͛7#{vډJ%pttwEUK/g"-M5oj0U*>)]ZjyJ2f̘I&IX6mGG˗7kKhbΝxZU9O>}.]ڮ]S/_^%nnݺ\Rx]jݻw;;;$''+Wևu&3o޼ \po$]۶m7m$ + +ȕ+W *+ի# +K 駟2F۴iϹ[nKPpZ$JQuAQ{^~]չeKоjU& |Ǝ&K`A;߿G1|ὛvZjJ:tXniR`S^=hѢh\/~;k֬VXqeʔ8f}^L8q̘1$/Y2ދDA?ĉq;wlѢEƈK||-Edǎ-[KPPlQT].tPԞgT~K۫,Puf7nĉqz ,+00pѢEZ[JxݓG1uT.Lyȑ~?'']vU^=w}'/_vww?x𠕕>ʕK-{_Aݽ{WHC;wȣ~Ǐ%xmɒ%1m6}>>Dɽ:X˥ڳ@6~OՓ'XjUJd/d9 %%Z+V?uzU޼y5V~w={4*J:ydQPx/_>-'>}Tk;wk4sT… ܹnݺ븸8ᅝӧ˖-uppxE\}||XWWW:wwGBBB"""2F5jt'ٳ[Tr/p"P˥ڳ@usgᅴ}!Z5hjTO0Y/U'ƃ"##Mƺt_~iU,,,lرBeooyfOOOٳgoܸa'܎;zԨQ -46(PѣG b> 48r(ht/-[Zn- +:uf͚OYnnnnƝޯ_&uԉ\lr۶m%c4>޽{ŋ{xb':tHH^}>7-""""$$D޸׊C +>}zϞ=jqw{Nmeeu}aN}N|0299Y1cƷ~k\2Ft%-[ƍ#ŋOLL~o9rAҩ+qvډs~EUK/gav,R0cJg}&>IKKX{ >|XZwf6T:ydijժgϞ$ +͛6Z|Ʌ :,X1+:uvܰa\̞MSNd?~\J/A7n( + +KԫWOY!V[[[i7IQuAQ{U~ړ'U(h3iҤ1cH(Ǐ?صk̎֩S'&&&^ZoժՖ-[>-[G+V_vppHIIIO>-#FL>]̗/_RRu3Hz7vVz ) +=Zu1777V7oX: EQuAQ{TKn2#FN5@D/򥦦֮]["zyyٳ'K:uJ^_ĉu55jԈK]lk׮sV:u~wQT0{ N6 "}AF[Æ ["޾}k,EK@EY 8vLeXQuYfrɓ'J(ʁ<<<4 +Ǜ?ϟKEFFeqlaƍ۷%8~xzL2޽UVM)IIIEMMM-ZԧOde Y%={!CD>>G_IuϱcN0A)kܹ֬(VMA4>(#+QQQb]Vlڿ(XJx0/H㩩…?JQuAQ{ʕS]nǍSoɁdԩF%P͛޽{gqr^ZNدx@NgiׄGq3z_UZٳOi߾ƍEu8q$)VZ`Vz M6rHi 4,w{ ޽{q(.^:(jݩSڵ8ժ*]eY}- +԰a~-co߾QQQYy…')ؼ|:K/ VvÇڋ UdɄ?^cy:*;::xB 5UJquu=}(^ÇK۷ooѢEfgڵYf{ RRRd8˥ڳ@v7jjT.q*Ik#F%P-[n*U+Vxҥϯdk'8z(}{ :uvN4iљ n׮4~̙ի*%o߾%oڴ)Jdǎ-[Kk;;;UK/gEuy<څ>\@5jt&|Gƛ6m?d }H Npĉ?\@#M WWweժU`ҥoܸa| %?gΜK}vi_~쬭[ +%Xᾕ?JQuAQ{ΞUUfUjT:eU^nnnO<)Sӧϟ9SSSy4VY_B5ɓu%_KS-qܹUfUorrrbŞ>}*2d̙P5jK |en޼):u_ شiS۶mEA<|pC).^:(jĉq ;Otɰ]S-k)f̙C˔)#{:JKKر4bbb{᪕/_$fV,3gNHHIVN{#A:s:uvڢhԨ W)[l Ra?ę3gWn| ",Fܾ}?`jٳgai{ J(!>0r%,Uf*_>UdKիW#TЌo5"AY/Avڵk;uжmZli.]ڧOT#mmm֭[#ӧOr۷Ä?㷣p‰vvva^^^ҢQƚ0CUVٳѽ+V޽4^lk׮i9Qc{ ._\BUK/geUJ[Wz*OoY + T={뫎58C2k֬osύz .\h, v֬Iݺu̺w~WXt5jrݻӄ͛7>g\~B +Fs8ЄO?Kqig֭ZN\jU.]DAwrjRT].tPԞSUFV C7oUG50dIc>g2d4`ee%>Z<~XTT/AZZڠA""",Hg駢{2*Eɘfvܙq̨Q +0 Ŋ3a2ZsDAz =ڠA3gԸw[Tx/ALLL:uRT].tPԞmU6ZBոqRRTcǪU_RVicpcΜ9>L|2+W.i\Q* bvWRE_~6BwիKN3%%Ex}Y:_µ(hD/ӧOܤm .^XIÒϟ, +)RgϞaIIIK,<_ȟ \z 蠨= d_/^T-]U˖uOokWϯR';wAqz ѱhѢ +˓'Iٳ Jjz'[[ۡC˗T^trʢvK.իWƈpsΞ=;իgEGGtŋEA#ruuSNիUVF++W`'9|.]bcc5.*L>}ĈFoAhJ9(.^:(j]tW//hc5h*CUm:uTk֨ʗ7A@F/9o'\{ݺuUTqԧMJ^QQQAAAx >,>tʕ+ٽӧNNN^zɗ/_U@.^ٳgE+WҥKVVVPWFHCL%(^(^`%K.\H"})))ΝR >tPi7nĉFټyn˥ڳ@pㆪsgձcgJT׬i}a6oެJZ< CUTˢ?_G yZԌ3DAᮨ_+&%%I?:u:U/_j֮]۱cG愜UK/g[դIsgUdU~~T˗L@N\~q_)S]vWF io07n-[V`-Z0Z[liݺuH%]֨QcOB/]< CUXʕ+`G79sfԩׯOMM5bqƍ?^Kw*U a{ +(X^Ǐ:U/H˖-޽qsBN˥ڳ@Nrti+V +d󃃃ܹsމ9s愄d)lH.\(hbcYn*U((g/֭[}||L֛7o=z1صkו+WJ<#/_ڵk`^tgΜ 4_cccsέsd=-[& +*@R qsBN˥ڳĂ   ^'O6k}05k%R9ؽ{ʕ+K0%J%زeKVL_~:ΝƍŊ3Gҳ@ݻѣGY mmm}Zj3SNk׮qvv + + + d%PGQ~}愜UK/g0sv/|}}?1hkk}vioN5tЙ3gJEIHH?%˺s玳((g/MZnmg5t +oHʕ~( … @jzҥLC(n*ppph۶m.]+{Nf%RJΝ˔)clr%,&ٯ_?i<lݺcǎ_rpp_]]]2xQ2e4V>|ڴidq((g/Attt6mLVƍݻWˀ|]|Y!%-[ƍ^տnxx9mmm,Y-[裏?Q~~~]tvGQuAQ{z ~?o߾lѣGso{1bҸZtR +OnݺUT)QP^7mk۹sg- 2eȑ#ʹ͛7EAիWn`G֭x5j0a^aW>lԩ5_q|UK/g0 ~7x%X`SSSP‘#G 2|r5>ήo߾mڴiذ͛9{ 6lЮ];NUZ(QҥKy1F(]_% +j%,Z(00Ptvv1bWX6y/>&N8nܸ… o...[FPT].tPԞ|P޼y3lذ۷o|WJ7.PɗˊK˗Y>?|׮]zU^}͛׀-ZܹSB + |||5kfoo/Oburʉro xhٲeݻw7F(Uԭ[DA?.\pzQZ + +6c u2e=d`EK@EY_}UbbP4o|˖-J(A6-`j դM6mӦ(Ĵ\RbEQP^kvkKJJ<}K(aSdɄQPg/˫|›6̢E-AK ]5:``EK@EYv\RV[:IJJ^zfЂ J(1v?SzVڴiӪU/^tqq%n.]|-g7nـ5k:tHQnEX%P,9{ O>biQFv30r%,tҥJZb+WE::::99ϟgjL;uڵjժ4ڴieG֭{1FJMM]~ Ο?q0ϯ}Ŋ3gʲo*UDA9{ .]ڣGf͚:tH-Z0;wDAz Y#A;^ZvQAQuAQ{Jo'xq:uݫW^re>KOd7otwwOLLx֙9sWٳg.\ͻtҲeK,%-ӧOrL>}ذaZ-Z8vƣ•zuHjGDD 0TiPB[MKhѢ,Γ zN䃦\z 蠨= lN>陔$>|ڴiZ%--m޼yœ;VZ} ȝ;Є-ԩSk%8q1cL2ݻw6mzG7o_޼ySzT!@E;lllomD>\˥ڳ̙3=x4((hr2rgϞ,VXWdIS-x򥗗Wf?Noeeu͛?kFn:=׫WG~~~b'O[((g/AhhhXXX'qㆷ˗5 3g=|W_};Z=o޼g=ۿxB4U/ 55gϞ˗/[lYgggY[[,X$+ +Wdҥ ;I7۷ 7pDQuAQ{\pQF2s˗/1բ_?~3RSS3ƭ5k6p@///S=ul… СC…8}Ӿ}?܈q iz'N4Zfz(8t,|kr!;;ŋ_ &hGVO2eĈYhst&%P_;͛4hPfMRJj~_~E|ڵOH1::=cݻwM4ٷo_f;22:+YGXTYʰ:HQuAQ{ڷo_6m?`[[ېӧ6s۶m+V,_]7HLL>w\f###juzĉϟ[Ϫ\!Cvj,:|_|apBMKK:u1cDOHװa5k֔(QBzѣGuԹ~zf37idݺu%fh7y/o# +֨QC{ QT].tPԞ|֭[eL +<<<,,Lˇi/+WlDnIIIѸd^-[nZ>[H>8EK@EYd޼y r=f̘Cȓŋ;uhҢE ?g;waRRR20zI&|]ᆉ5jӧO :%22򫯾2yJڱcG˖-Eyj)7'|rQ4tvH)R~h֬I6n_k 3իbŊ[޽<)Ǔ'O~EFFΝ;!!!֭3\r wԩBfJLK%h߾˧ю;u#/bժUS͛7O +tqѢE7(I#y|lKai-,NQuAQ{JJJۗ'0?jժ@݅ ߿HHHIo''?\d6l7\P!3eݲeˤmI&v7n8qBzMx#*U2"ݻ Α5|]>>|$[hlV)_+W,,NQuAQ{SYn]޽={hb""":v(sVZxoѧYϙ3GQJrrL|GӦM0`Z3tVׯӧO?}*3QQQAAA={tfS^ܹsO4)$$޽{׵kWa #mllRJ\f޽+|slKrʀQL2ׯ_H>8EK@EY.99y ֭ٳ-;-]t^g+/n䑖z7nh&|J...rk:vʸqƏo2" +K`gg'̵j~ݻw6o,=Ըq 8wueڵ ԩӰaêVKLLlK lAݻwK,_Y"Xr%,Yt͎;8qB2eDEE5iD rܹ:%Jl۶YUZZǏeiӺtbyfذaӳTڵk2wb"ÇK Ǡ޽{;::8EK@EYٳ+Vh<3gΜ˜UV{nȑ3fgמ={̝i~z͚5f͊2o2d>?roqqq _g2QhhɓEA3)%%%""",,Lfj__+5z*TPΝ+@K.U\YֽQQQAAA`ѢE߿o|`q˥ڳ~ ~PŊ#""5k&V&r޽{'''kV*.\dɒhطo߁.\X܌s޽֭[?~\0++/^ɓUCΜ9Slڴ?,gٳ'88… ɓի'O}7|bhԨg;wjժx%;wADA{{ϟ[$Xr%,III7n\xxwD +,ڿ[[[f*lݺ'O[hQ>}I85ڽ{yoj֯_v\v_n߾;wX?~>>l3gf|=aÄ[ZD ~4m4<<\~e}zIٺ@3f̐o߾$>8EK@EYt:qDϞ=E͛O0vJ.]xIF47o޸qeXѢE[jպuk//ܹs˖}OxC ~)YDrrrTTԔ)S߿>hmm_6LiX|y_x1heeѯ_?SrQwwwi<[ 0`ҸSUXQ|`q˥ڳh1cDDD{.c3,,~JL6ۼuۑ#GO)w]vWfrݴiSww̼yM6;wk֬y)$'{Ϙ1#ԣG޽{.]ڂiqy??XdI^LÇ i<[ҥKqVnx).^:(j;v 0#jiӦ#GlذY\\\ ?.rfիcǎ:t_^y&+VQƍ)"gkHK$G]`#r.z߾}}||lll,N=>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4121 /Length 20661 >> +stream +x ?{TKVJDؗ Rj־REb'{hK;&b II-$ADIτ?̼s&3gw|>y3oιkzL_?v?mݶQyT_nYfI,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\@jTR}f I,ȩrYSI%2$U 5KdHf@N%՗kȐTJ/,!9T_Y CR5 r*\/ҤI~ӧ3glٲ|7m۶C/K,4yTJ/,Mĉox`ӧO]-Zڵ몫իSN yƤ%U 5K@5mڴ뮻z-;^{g˗jTR}f h&Lp6_~-ZoZ~%U 5K@[o{7tٳ37/͛7/KJi֬;p/u=i$U 5K@1k֬:3Ϝ9sf-Zjխ[Z}߬SLyǍ7jԨz護Ll۶%\;WjTR}f h +}vmU]vك:hvXxk +oQF]}\s_|Q=.~V#9T_Y>3NZbz̚2eJf}~UWUTTcn"YSI% >6쩧\X}=qoرcksq蒪YSI% ^z=?^{(wYm{60jԨnݺ5KR5 r*\ω'8p/}p~K._|EuZh^{M6e8Ly$U 5K@ :tzcǎzEEEy>\y5l5lwy粝$U 5K@>n#,RoFu]ty嗛7o^9sQGհ>^4jTR}f ȁYflrΜ95kvm`ذa;s ~ߎ=li8I,ȩr&MԩS{Zhzse9Q|pM7aC.]&NX4jTR}f ȁǯ⊙ۺuSO7|e8R1cV_}6,b'O.aTR5 >͊>·6 򟶭$J(QĚ|23f~/Ѧe&̕T_Yr`ݻwΓO>y }odN8k?,aTR5 &~6F^ boh2ve;Z+ƿ\&>96^~LތG~m[2KV&rlTWN<~j uVk+*j͉] O+_KSw߾VߌSJ|Q?uI'T_Yr_kM6&Mj׮]CW_ҥK ^kq1잘4](;߮Pr#{KN\lnD.7'oߜZrb+WO,<5o~+}?87ݗ]%Tz&(\ /Э[Znꪫc<η&Nصk6,Ǐ/IZR5 )|28xl̼~n]=bMy3ǟoʉw=^T%{6&/kj1'xcO^ O$XxO՗T7feL{HLcn&|eg$NR}f ȁI&uԩ{!C4q5vUW] kȑ#pT~Zl~n?g_ه66szM\f-7L%g?b J,<ձ3kᩦӕO OJ:N\cebj~ރ+jH<^W\ʧZ]"@%՗k3gNv>lׯwG*xG6h6{Ĉe8ICKf?N#΋:q1?H<{'Y2q8ěk≇oľEG7ċNeL~\t_Nb *;.J(QR}f ȇ=z<õٹtM }믿~]waa6x2%U]N5lJbͿM&TMz6NCOWr$Jeu@O,<թ4+6kJ/,pc=Nk|'tR  {$ -4} .9swv1&P[ăm˝`8uh!ڵ*{bk|m[5vl /sb*Ɣ?1hhMLڵɓ3w>=z(ÑswװaԨQݻw/IZR5 hfωΌ,[m/ks9T_YrGl;暣Fh8 /ӫТE?UV }2HfM֜9 q㽵>EZX~B,95,/\?X$w7W ==ȜOEۇZM? @e|XHV :1~=%hEe8񛧚B&͟Yxv=kL= +rMV~^8Pr'?;;]ܹ߿RK$&LXvekذ<#e8I$U&렳dok@{/ͪnVʸGu?X+>xaıWyNl=kYq+'ikw^Ğ}:lJ9ngsĝ{Oݤw g'kƯ0W|J埫)Tr|1'_oבҵ{v۴L;ė}qgoLJHnqP4xm|'\̬Y:|QF}'+͛7_q >m۶95\{԰38csT3c/j8j8hhó?qŭ1hh8xpqDGg=#wKLtf\1<]Yr;e:8yK3k|[GtO!£b߭'_ާ8uje+쳱ꍝXxp=VzEG>[ +OanjnJO{IRy'~?J<5>:+j=&3j-bU?3 Ou-1c%k8vl`pǾ2/9&MqJ$kcnNjr@Ɇ ְaРA_vT=O=k;8~cNᥭ5gkK/mb?< )n{{~|<ȉ\T㎋SO-M++kkxq)?qG]RNxqci%b;<3٤7$5^y{?BOvg{4bbuM|`[Ί˛chm/!sw}F#5N| ++ċ/~Ć8r>px [qFH1b h ',o*lsqylcvEx߷ʕ ^{M~E%՗kJ3iҤΝ;Ϟ= [o-R#5jФgW|}7|A,h|U !cVv~k=Դ:ĄZ%qܸ^ou=FXo,!^6cRO*{nZ%N5Z4/_ҋW~uM|ovx&K˷|QFE/fx2yyM^θ!/-kc^ɸ~W9qC2KK78uj,D]oʑ?LNR}f 4rE]TÆGyd O"LfMCO&Wzq +c}J98餹zptlz@moحo$[Zb!ZѱYi++-cy`mon`RO{}?8p`p?7*6?(Nz}e?x)qstupŎN=5;ny2zn⍧= _Z1hP/stѧ#N+/4[lcc2T_Y(|бc> {1bD9TI,y`ev1-.ǥlUr]o^KWuSX։[w#%~̘QO uMKaZ|].qcMCϟ]/ϷL%/q~g=W˻^k%nKbV"q~kXx1wh9v֘Z5kĪ|o6^|[3$'&\P;NngY}y2HfMĤ)Q웑+?_)&[VD Cn9JoOJJ\/|"Vmډ'c%v&%%CG6ĵQr7 %ݲV\TԴ5c:'.o۔31zk+o"Д$՗kjkƌ;vj"vqaÚ LfMĩW -rFqlT'Đn,c%G⊓ (ĸ[Qb!/mcrXx^<%rIlwPۿPJ\%=>,開bC:'C˙X#sωCv DH/,։'8pV[n=nܸ;HTU<+w=n(yXaեfx`v4[vx=b?BhΉ/6)$Ό_iėƤD vnѸΉ]ߋ{5qBlL5>f-"~V4qZ_,sتKմo3:bѿk5~>&9h25KꫯJfͪnÐ!C{rlY@S0XwѕϮQfuމEWUEW׌kꐸxL{;$xms\]tq3uJ\"L5oj,tL&{6C7o"WGiх[qs\_"WGI\=n!cLy#'84m,TbVaG:$vɯ$^[~Tta/)qZ5CwGzOٹ1 7*{"4$՗kjwygu={{***yIfM{b㋮=p熨6Xd\l_t8ح; E6'/˜8%;]=*='vC.1Ptg\25*sرqعKki`ߋv^)?*(nq5qbѥM˞ASMqjꜸIuz-sjquJ=:N*#Q.sjş.S=⎫Ke3e'lxJG! @R}f wܱaAǍסCrY@SpYq?^,_02Z{EqAQSE\uh8Y&FSn56:ήC%qϪ?C8)-SnW}UK?L|hN-c:%5Ncߌwn966άC?N-%DL៱vqF/+q*$ΎfO|;,^,qz/AG3;{E7@T_Y矯JZ͛vm}-)4=z3.i͢ġ1pϸꆗb5g?4F;ZōxUGQuXzbC6)xo+.jīݣ/{1^N=uzDžxM[Uu:$>8zXO#%^vU7.MuH|8Q<[Xo\(ŀ]%eVoxb~q~$^'\[-!obwcpC$f!ߩ[ @T_YpQGsN?.:蠃yژ1cƽ[_mȑE@uo1g"]!q~g Y3bcFI<4n[ǣ_GESbzc 騸0?rѨD 0KqkΜ9EWg+G_|qVj@Y]俯-="277T3! W1`hl(ɻ㐢/NJM*7+W {Ǔ#I\4{7ڗX2*gxuo>]qhM+=T ϶q5ѯQwaEo_$/,)yS-{|mm~qxJJlkM-^W;lqD?%%,*$]5^E/_Ô?[LSM2q%%E#bFI\-^y.v.K 5()u̜QMbXQW]&>86,;.׈]Y:n=:6>(6*+.7nc{(1]|al\ti-Om]MbcR,VR1cz(3.?{bm/>_tg,h'MYȁ[c-;nfv_SՒY ]Ӧǯz]9e?F.ߍeĥW랍KJULZMFq#z$v+gXE)yѥ G)K51*gaL,[RbUtiXQ7'EÞ%%vމE֏!GFIoRMbBǴ֋+U%q٘rUƱ^%b[$CU%qxئUqwO)~9W:TN ^y|5{Թ&,\pa]ٳÓ$@ʪ%/|a/f o,:)Sg7]eN|bXjN:7+XQSc%2uW>Yj$vSucȊU%q9e_'uLkUOU\5+%|pu3K,nnY.mÇ/~QS՞Y ]3gE/y~]'cbҤz \ f}wjsׯ׾}턻TtOXĖ~ѥ\6Jm'&q[ObK;pYpĻ#qǶi۾2bEt%%3^Kwamm_k.Et^KJl}]ھEݰv6#-k۾t׻ݳtzt()m|QlTti1lVʔ}w2nE,Qbbظv.eNsX-QMbcR,VR1cz(mK T&9k"qѻw7M3\,$޽)S._WaHϺW\rB]?(ۯS~[D>a#+?edm.zogJ,\R\E|]Hls$3`?mQď7?jC޾X;5*5ެhyH|vލ8vo ǃDے 5Xt=fq7c?[Om%hb@fΜ>3U{7?HP0cƌ{キ>ȑ#f ?&یw3[gCѿcԘxMq9U?[ JME=8q/1;1_xoF_ǻEG~P$?,?ߊ>KĴ" 8E?攞vYh_A4Ny7ğ~ ȼ$;{E+Nms#ϯkx{)7N9QT],o~&N,O cC$Hqq1`@4i}m}a-OyM$9slַv[ե=>{0|rQi!E4CtH1 uk)QYΡ)_}O/׶k~^?{\]zϟQs zGTiءJt{dIzE*b5K[l?VÉ=Ŏ53;tklg}ņw)a=Ko׿*j~6X=}DM{1/h֒KԼl?QZQwkM/h6(~D{ {לRe++.VG=hR[c)F?KoU**TpŦїf +թ߇\Oi$岗O?=|K[ٳg͛C2QsGheօBt燮5kt>Ox\}xK3;|TFd8V\*TyA,TgL< tU[75oΰ@Vm *D{xsU Fq^{KZOuE74Ao\kײQW{XߓK)Sy(Vz5 zmy,Zw5O Q:Ak FqvX,ZuW/C͂jj<9C"dԺ\:u꣏>zO>=O<!@ [-}_lFAN1aJН=|ʵ!&ŶJL)&kR6O>>#>h-M)&Wr['(F ?b{ݺCY^K1lUU_6Vy0dJqx U5O~b`SLp(eWߐ!ctܧ]{Q|]tӶ}_F:$Fe/ZϻҥˤIm!@ o9{Ԯf IM[aSlصL'k蝍Ř&xfmRlKC2ءJjY;~<9[ :r@ML)vjE4jǓUUe_̵9OVVܗ*ި).xnS}еE7:zT +16Ooy@@2j].{ -[iӦ]N0!o$asZj Ӿx]Spլv,/OŐ*\P?qF_P6ܡwS,c|^Z^# 1VI.~o>Ë?kz(LvR&/=sTůSB;բQ^^bZ1]=rPNoNsXt&DΜ{|uvRNPPOQrKnݺugϞu;ޣGq6g4=7;'~ sgS&kkdx=S8&YqzvPq& ֤,}jrP b-|QEic=y)cժtPz[@>M.Z5S'MGfkn7|VxZ^j7n_#GeH2jb<2_;-”Ma) ܫ)kTAśuxRU%ߩyhg3wk:Goj]*vfWUҧ *bt9ze;qQrKkΝu9rQF2$35g %|I/_]!*Q7^^CV?1^Z;5qŏ>mt[%u\qzr=VO_xy68?Q_lq\Su&//*$gYnuٟE7II;Dy>]%L .ȥvYn~FaːeԜǧUGz'D=dO 9TO_,c^^^Cfazzyq;4GQ+ާ {]qjb'+sq[ߢ˻}t}M"cԺ\ 7ڵkWDDġC܎wѶ dFY Yy<{P?Z SZ*TY}p^yX\kj{Q0-thq:vdzn]K7>)nPL }mfѺnd;h.&;|TܨߊA*Vշ^S7{>yUR꠮|:&xOy|YxZ^:طoq6Ǩ9 Ͽ=])ĭ*W*TH!!:v,ҶL~ zH^.]̟_ǏB#>P]ֶ5^k䇊gAx\G ,>)cƌeH3jM_S +}@2}w5oJPǎJH$<\QjhV_B͝&^]3"UEzUP .1XAfZbjHj_;ZWŏԯi *_S3-())b6Ww=sBBԮVfvY>֨ZU)>,VzzMõL +.E={޽ヂl@9vJP3Wb;^{hPN}D0hUh~\/h Ǜâ|TlbC)Z_i>)RdbzV}Ȑf}|BOMу /S/n&PiѪU'c+ht]CTFe/rFDD޽xn&LF 5gjЅ .<5i(iԴ_|mkJ?ӛ]adWUtujCMl[OR̴8\ov< \Ϝ^o 8b 9/Θƍ/KqqѺe*ZMVqxgKt=s, z_|_akv~gΥEhqF -u\Ψu%@pȑdz;v, 2fԜӰzflƗU({S;t?G͛ug5*AYőj?VZ չnZoM+9)FFǰݻkϨuWx^kuWQ*>"4p}+:*mzaaCWk<_lu~iqڿV+>WXDg{h3Y/⺫Y(veQ#"'OcziFqbR˓6\Œ%=_l`?EFb5_F 73j].{ ~unٲxǎNl˨Ĩ9 LJw3B7 n3Jp %/~V,Ψ cL|*1Zw5OLWq&cIVWP ]]]諢iMq3ǘ⺫_:LdbqW^Kت^.pΝkذ5k܎[sɓǖQ9QsX))j&z{}PWQr +I^!gѓJޯZYGOrWѽZ 1Xш▝Z%Ϝ]$Ewlu=W}[,n:^enpdA--z]rQrK@7k,1}EZͭW\a˨Ǩ9  )=B޳{dE=yYH kZ^?En4hhѢ2*'2jo40?zV+5x}b.^W1_žmuUQ ox b?bP89E k?\"ZVh/oB@.hWp?rQrKҶm_~|||lC5g\a&E??]JB8PPqq@F{>]E'?}haW\E:岗o߾o+))p¶ ɹ@nqќL4OR~-n;Zq ^}&R̾]śo%]bp5x?G~<]L_|뮺Sj Z^C8`5-[VH[hFY wYE^צo|5n҈>o}\׵"ܐͮEn7MjR\ٵf:}Gjk/nq~\w;nըjNfԺ\ ̚5CnOnmڵ%KkTfԜr g: +2'u_L*Ū ⳝԢť:Voj\&ulu^c3+wZ^͛?>ҥKYoiPgԜrojRMԞCY%>EGV:Zcl*V=;=Fޣ9 3'Rv8h}eت뮚_ܱףSrـ-pw5EȐQrKgEFF;w.ŋZ|v*5gVؤ[>%бS UvjUT*wo}Zq;Q.f}U~1xe!@wW㊻wm˼m1y졘ŋՀ/ZUe`Ժ\ @ݻVZGM{0$$$))v~LxxիS?޶m[Ŋ<2jpwu*WU8DB(RH"E岗s̓'bk޼c+f 8((_~)T[FYC.p?q˖-K{0((hƌ111Ϯ]ʔ)qR:1QsPFe/gϞǏw;+e<֋UV\ҖaQsPFe/mѱn}ɓ'2K~ƌqNMfH|Ũ9 p(岗|F?>u&$$˗ϮQ)Sf׮]>dԜ8QrKڿ5~駴˗/f͚bŊ5۷WX?ϟq2j].{ HΝ]-[,]~5*СCx7nV ,Z^8Rttt\\\# \fM*U… aaawxԩSEqH>aԜ8QrK7n\^ + +kݺ]CJ5o޼6m\g%=jx|Ũ9 p(岗W_լY_M{2d]CZj7oZj[QsPFe/_~^zrrrڃ<… U3gv1ٳg4_2jʨu%DGGť=R\ׇ5TTӧ4hm/5geԺ\1⢣ ٰaC +R~-22rng͚ծ];[[FYC.pÇWXĉiN2K.v )չsZhxuժUC9,Z^8,r[߶m9s5Tǎ{衇VZѣGK(!]FYC.p)St5푫oꪫRJJJ\\ܓO>?zhѢN.,Z^aaa=8uΝ;0.\رcŋg̘UVݴivY5geԺ\tݻw4iUs+ɓ߽zϟ?r?2j].{ `={)S&%%dٳ>;tPGFYC.0ƍkԨa(cԩ;w{aԜ8QrK9w/ʕ+o5geԺ\hKpҥK= +0jʨu%`gΜ + +{ aԜ8QrK9t/AŊmf(|ƨ9 p(L +endstream endobj 455 0 obj <> +stream +xM1EY=aAt@ 3ho 9k[z;_~q_Wg~qzGOˋ?1pn_@ B _@ B Ǭ0304s%bf113x5bfĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @g1​ +endstream endobj 494 0 obj [/Indexed /DeviceRGB 15 ($$$)] endobj 454 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4121 /Length 36860 >> +stream +x Nu8s+R*DVLIğҾLQҴTSS2MoZPj$KDRD:ssw}sx_sssw9׿O?=o{N:3&g{̙vX}~#?묳x|{_r%97tӐ!Cv4w}Wf͜f͚͘1׫Wo…9k֬)W\=K.9{#6m4}QG㏟s9= hZPBZ "U^I&{Ʒ~ۨQ+Wٹs~o߾TROJ(RkTr#K0vvڅ=zxs;뮦MrZPBZ "U^QFxƍ(Ѽy;SUVEV/P,HF'<;찹s{o޽322:^(HYSˍh/СCիwꩧ:txGwMJ(RkTr#K0hР;/oР^XlU^ŋoXhԨȑ# M6|M\lOy;<ÍZj^R/RkTr#Kлw'|2!8p`BOffE>azZ "U^-[N<9!`ٲe_bEBw}e3@/5 b*Ru%ZO?i Kp? XGq￟^,HF dɒګ`ܹzƍK̙ӸqK@EjT]nt{ ƍ׶mےOokӾ}cǖm^!CtMy'tR%Jݺu?󌌌K@EjT]nt{ NgҥK7mܽu}@!DjT]nD{ ԩ3~ڵk|ܽݻwK>g%I5 b*RuQ%U֭ishbʔ) 6]rwLxߤ7vZ "U^6 /HiUV'NLo> +"f@LE.7Z|k׮is+Wn ?rԯ_O?Mo> +"f@LE.7B_|UW]F-Z'6D*%\?|DjT]nz ֯_n%|<o '() lٲի1vZ "U^$Kp^zi̧L4cMc> +"f@LE.w%8F|J(O/?|1vZ "U4j?Nc>%=ܓ|DjT].Kt=3)D^-ZL2%+Ԛ1] +t-]P^ҥKX|iL^,H妳`…?7ޘ(yz jժ5a„:u$5hh͚5֭ 7ʖ-[\DM 4~6m$j~V,H妭`ɒ%ZZp̙34i@{ jժ5~u&<ʺu})S|7|rʭG˕+w4nC nz=(^<YYYof۶mKEjT]nzz ~6m̞=;СØ1ckk/A2 ~W^y%|~5k̖-[vO>1w/AVVO?5 b*Rui%Xzu}ݭ{ƌӡC$%Hx#ԩSlk')UTn?4o޼l%H@DjT]n{ ֭[׵kw6id̙Ɉx:4Q=z7=ZTΝ;NSR}W\q /@:u +o+h#TTԚ1 8.p؁x}ٻ{ +*իaÆ]659昱c`ݺueʔIM&#RkTrSKp7_{_|={ׯYf˪@ǏӧϢERO|W#|vMZ "U^#F\p;E;Ra6l͛72Va+2-!HYSME/ޱc {5jwy]tv$LW^ӦM+pdj;C9s ,[n~e˖}7-={~xNU~Z "U^вe˺t2}L٭[}k.###QSO!VZJjٲe46m~[șΝ;jԨ{O?-]꫅'RkTrSKZzu=FU4hзo>}TRmy櫮jС;Pv .ଳΪYf< _8>8Ë "RkTrSKڸqc߾}G*VثW~5iҤ䳭Y3x饗{CO=̒ +iҤwyg…Şs}`5kٳgweѢEy7m;СCS*аaî/⋓(RkTrK믿)S&g{ɒ%ɓǎ;s͛7uN: 0]vy3ڷo?Yz!C? 4h.]92i@"f@LE.7ZXbΤIu)Dƍ׻wJ*h;tں\r ++VXpųiӦT\yԚ1qYf;'O~뭷HYSˍ_/A ,i*wu{QmYYY;z C:ujժU۶m<[EjT]n{ r[dɓ'm1k֬M6?~=1bI'Ű|իoTR^x^>>+#RkTrw^VZ5eʔɓ'O8qk׮3sΏ>{Ѕ7 Yz_~cMKJHYSi{ r[~;L4i֭:t_Ը2eo~{w߱c6l0])"f@LE.w%m+WZj"#|O?ߖ+WnҤIGqDSmEjT].K)~~c}i+RkTr#lnzM 5 b*Ruz ҩ]vƍ 7233gϞ};#؎HYSKN5k={>3N/RkTr?{fjҤI3Ԛ1\i[oF֭'Lt`"f@LE.W/As=_~y裏s9Nv(RkTrͳ>;~pcذa*UJw:CZ "U(@,H妡`ӦMϲer}RyKwDT,H妡`}MqPקO΂Ԛ1T\~K.MeP +TLjJw"DQ,H妺`w}w*#RH7tӐ!CҝQ5 b*Ru)%7nnݺEj֬_.]:݉9Z "U^nݺ92e(g}G΂ȉԚ17]vElr΂ȉԚ1lڴYfgNA,JbGuT Z"f@LE.7EÇ۷o +QB}_,HYSME/A˖- *UP.]tŊ\rfffv2eʗ/PժU322r˖-[\.UT*Um( WS +~իW锕+WnڴiGG׵kn~ںlo޼z(!$g;< ЪU6nlԏ=XZ)[vnZ "U5 b*Ruz DjT]^Z "U(@,H% +5 b*Ruz DjT]^Z "U(@,H% +5 b*Ruz DjT]^Z "U(@,H% +5 b*Ruz DjT]^Z "U(@,H% +5 b*Ruz DjT]^Z "U(@,H% +5 b*Ruz v!}ц *W|A;$RkTr*V^]jՍ76nxΜ9N8Ԛ1ܝ੧ѣGVVVqƵk.mV^PxZ "U,_y̘1= t s=̙SFdEEjT]n\{ |N tYg=(EjT]n{ ?@/)S=¼ϧ %+RkTrK젝`РAU_Zt6m:g̘QȺuêVHYSˍ}/AlUB}pnݺ 6s=Sg/ׯ_J.=iҤc9&)kZ "U3[ ~HgUVA 6 ֯_Wn햤$SO>9#W^]ȡC4()wZ "Ujժ_pu6jԨYfo&$Xn]?Gx#GHAV],H%(@ժU7n|4j( +֠AS?Z +Rb'5 b*Ruz f=h޼y֭۴isGdee%;b5[nUV6mZSUt}… ۰aʕ++W.SLjlѰaý;FK,H%(+7iӦM֭>ҥK2z ,h޼9jԨ;&[lٛ[L4i…jժ|{o8mF暞={Z "U v}N:u֭cǎUTIFի׳>[޽{oۉK7m_{K,dJʖ-qƕ+Wg>DVM,Ԛ1ܝwYbŲ-.]?%K_׬Yʖ-۽{3<NLW_}mVఎ;ꫥKN`H;wYg{m{(##C Gnԭ[7K|?|޼y&L7nW_}v;0`NܕHYS9{ ֯_OeǗ_~W_ld͚5{էOƍ|믿n(pXV^ +*'܉/iZ "U+/駟Λ7oܹ|I?߸qc3vG3ΨRJfxM78u֣GXbDܚ5k?gy&-Z\۷/{.{7fԨQUV-5 b*Ruz g͛7?|o~nUr;oaE:qȐ!rKڴi3z;N:5aÆx][A{`Gc5k6nܸ] RkTrg}̜9s͚5%3+++| tfW_}m8m۶#G܉ :t0mڴ;322y=z$*믿~ꩧ]vGڴi3f̘e&*b4EjT]^۸q{7nܸzkʔ)֭+m۶8p`ΝwaK.,pO>gYk7oܭ[ѣG߷ox ^{0֦Mv4 e~JԚ1\v>`cǎ0a† =QGuv5_~gϞF*ps9硇*vwuxyvxx^ w<8wu_5 b*Ruz oٲe?^zqƅo;nС~xη/ҥ̙3?+##o2dHٳ˲q<۵k7vdDܼys6my o &h"ѣ RkTr$ъ+F/k׮-J:soKx[)[C=tg7xhݺI?paÆ%)觟~ڴi|:C>3g)S&I W,H%H_~_1bvWj͛7\2a5k|饗9'NlӦv|\sMB0g 7?1y Q,H%H?Ųe8m-^|}'sFS_yJv)_N|/Qb?F!]"f@LE.77o.UTĢ Ǻu^~ÇO8]pw_2eJ>UĭZj= v<[oMj^x?π/Jji5 b*Ru%1b~שSFQ/VSLF]Wr>`Ϟ=X4⋧vڎwy᝖f͚ua3 |E/^\BzZ "U^ 64h 33sΜ9I8裏 3lڴguQ>Ģ+:t莎knرΡI&᝜π{Nv)5 b*RuI%1b\nz뭃N^x<0 >#N"SNcƌʕ+/[lvKj]wݍ7ޘπ;I!"f@LE.79%Xpa]|?N:I^wy;=zt^| /L^Vt' xꩧz&NئM|+W,[lRHHYSMn/և8S_x$Ŋ]/As=7t9s3fq"k}]xq>W׮];y9[RJ6lḡ ZnR/RkTrKaÆ嗹w'pB2Ũ`ѢE?>dɒ̳{L6HTbX"1~s=44i/袤bZ "U^<%QNkk׮{WbE`ݺuʣ>:v͛7'dΆ UVMl7)_UJ*4w8]vwߝR/RkTrK݇lUT>[nݻw?1ʽ}ѣ>O/_gիWK/mܸqxgy۷ײir!qkUJqs= 8묳%zZ "U^>`6mzѣ^z%^s/G}T۴i[n9?cƌ:;ο}pi׳a~? 8S=y ^,H& GݣG^?-͛W+Tpi 0Yfy͙3}K,/)ŘcbСW^yecj֬&5x bZ ~Y5X6߄/*ӝ|krP.\AD#1 MK0\TDE1ߏɎœspR`ܤ*Uqwgr)*oF%XfͤIϋtnfffvz}'WbO?o{jժ|A q-:6nܘϘݻIM;s޽O:*;j8bᝳbUT"niΙ:9W5܈]D(_Un{uܫ;'gnY~%ɽʹsWrKaÆ ,\+WK.\pAv2 +QP^/bȑFzw~עިQU?k.ԟþjW# (SLQӈ.衇gs=w'5|/g^z&5Ԛ0׃g\\#]wF H '_ {#ziNgp7LQ}k;bE;ϲ爘97gU-F'dG<~ "W7q*so+C#)nޝbgW/+ډ{AɌhI?|d6M|/AIJ]u=s?t?56l5kԩS'O[o-[V?{AXVN<.]ԯ_?/Z(<=ݣ\r}W9cdݺuu;vv~ӧOLjs_πnJj)5 "-|k'3J:ա +~{|Y*9)[BGA|%1⑍#?DܼWuEwU6{$#2!ë:F%y{[kd%wKog9+T-f9][sFrKlGqժUhz >2sr@p9'Q3jR0O_%r&\s;H& %VO>>}k׮TOIT/u͛7gٳgϚ5o-TիW?c[nݪU?T>hƌm۶]r嶇T\vDŊg7hժU{Wx[l#9y|NfRIDj(*g~׿ulep~I(~ '&@jZ߈eG|᭝*⟯ jΈ~qɊxR쫺sG?+/SG&84xdEd>}}+VGխ[7-YľE|뭷,ԈԚQxOtnnˮ&bۂ/;(HNeMA!u}̜,gt{5;uso:'f?ŝPrSKDze˦m1uӧ\]KժUիW~:( w;nam۶}뭷2| GB⋧vZ>»裏NY>5 "a?ό)jևGԯGP\ε / +f,Y^g6*xi\!Ȫ:n3ZK=eÝ_k?:,\7,{$!AqǃEɈSfqrjA3b66Hv$8⏙)Bë6sf#w̠At"WڦDLg.*PoN6kTEA^gk?- +f|Luk846Nx40SGvwK#oΙΙX;ÝNrK͛͛W;wMRZjOZ"w}s6*T4J"|^П>9hz,XoDjH-xXAANJ0yӯOV.=M?g4'@Wpڼys 'PB׮]kԨ{T^}-oK.k͚5Z1cF^z%φ o~G+2)F,H;sc* 8#G d7?ZpGEmr$8T\'۠j;Yn5V z1"VixٳkoO[/r]xaU*2Wܒݖ=[ niK_nk#V\yfN X6ƒE ƾMK X ٨ru%+u__Wr"GBvĢVKzĪ}U1 +VUD߳{>r$} q+ =Y+^ThKw-{#C nh^ ~1*gBZ;'\{pw\wApE "U^VZ5mڴ[̜9}ջ`w=Fŋ>o6:S=zh +-ZTZTZ &(ؔ`ŏ`߫?}s:? +PxoN :]O<اzwG^tP0aEv%_G6񨣂/O?7~ʎĨD<Gq`9qDwlG'7bݗ4?]̜YI׊Y >q`ΜF ߙ̚UI̞]܈:w]V҈9ŊxG|R&>+k~x6uv,ߋ_{-lVj^T? +@jE.7ҽ-_|„ ƍ{׿bPrs=;O:m۶k#GҥKZR{챓'Ok EjtaEp CeW]tjbc|p΍}jOJL8`G,]#!8|ԪU@IVgg38OG2_믃ڵ qΜ +z Ϙ_~ԫW؈]_Ͻ\PU?)ܹ='&&oeGzpg.($ť8w .ݵ;!P R4Qrg ׷{wɲ{eH˗6Mՙ}j%> +o,KvM +e}8>.EHLz*  3sTp ڎweT$WLNin`c+O +Mh?TIg}FHDDDDDDDdpk7s vʕ<;-ZUvܹx5φ-ZԨQoK/v6iRy*U(&Mիz6I7fRQ436xn½gDDD^p% \y" +ĉ܇<GGl?l>L]M2:Qz㈩ɅCs>0~_q#зo]Lݧxnfb}ܢıcѫ#GOoaX gX21QU.{LUK>[ʋ3>0ztL%T$oŠVikn}?v&d u~Q`Q[9f"iJl>X*m;b+zN'ys$%*`54cqv9ׯ_ٳg֭۶msE͛7!C*VqUҲe9s|spС,ݻܹs_tIԩgdkE Ɠǝi@m;+%NDDDJZ"WyDooW.V =;Ο}'mžT(7SV8wΦ{OLy"*S"8lrrٳM,\GL>Z\8s櫟.Gh˟XĆ +ɑ_˝Om6L,XLZN]6 L,PMZ<8G> +隸c +S8qļy[yy6wNE_~ʗ'$Wp645DDr;+&K(ʨvo}ĠP&M>,%?$lY܋(J8TAU2DDDDDDDDj3Ը\K5__-[^{@ѢEG(.P.\:uj5umJyŊzGgfLf8r^\;M1~-!st7P kY2K\ԯկ%DDDDDDDD3Ըk.AÇ/Zhҥ_+,v͛wl=ZhO>}95ksE͆2/mRۏ;6v:7V u"""uwCp5lpٲek׶h.AoJ//χ/~=f͊?-Ç+BSNm۶ dCyxQ``۷ѣGL%ymڴԩn4C]Lr!f {Ucx[CDDE)ra'88[`}/{{WXuF2>|=`Xsl9\cws16? .I3x2T0<P!S8K@ai0Q!(q <<&Z6C`SO *L1csO_JnHpb#`P#l 1$N$>B5/d-تgiAW`n4菥Ǔ'ppл=!!H\σEͪb@CJ$MS/^ ZTlw#"""""""RF_&HKũS˗S^hQѢE#Vuq_~L"w5AZ'u ч"ѢE+]tfj֬] u"""қ{8"8^&?vOӽ5Z \ -w-p!h5=p,&q/!abO,j#.:]c.. M19|Wpr-{{]  '(#\t\RwIb+Dدb@6Iy# ZluSN(f8$ %sS1?ڎ@3$as$sv69C1CPO5I$ZAoGw@ƺ&Y2Kpv,Y9SX: L+$(oĚػ=u\q q-Jw(",+lX {W+$,Jt7[VMkc*qk (&, WM-H} +ŅEbjQ=a +9ت'xK֎CR6e;Pa6AHXZ\ Jۚ-G)D: ̇,Y2vKeӦMŋ05j_ˏ6lZ ۣ'~M4ի׏?nùDDDxq#a<譠u+.R""HyTyL݅&DSannDžc/ +\;&:)Y/ , 11^<.^Lߋ|ҍ=֝?c]X6KӜB88ty~{&&Gþ+&q/v_z K$ų+&EpP`dxX&Eq`& kAtJ`Of|(])-܇x}UO4Gq>)Ý?+Lk +з5w[A"W}[C"HUY\td> +f׷5seۊEfs Tӧ .[%e˖#G=z~pB TON@@@̙~@mt3pcǎIw޽zǏ='N֭[/Q"˾ % ""RǓH" =Q:׭H0#Bˢok;uy3ϫ?.%oC<6<6+3n^_ٱTO C0ٰZ +n !ꉩq& +`qdndBbVAb6Ea,Xu 탚c dIbv\?X}Y:OH{7PMX O(1C=a_ +,ߛw(/-sYɄW%57v˃ŧ'a\zF!1#^01 KHOBDs4ve_qٵuHd.Bsː#ɋH\if?5wY^T5/x-nmBm 8@ h4={DD   :t:Tx'On߾}ҥ .|8>}R3> :%Ns +` 'ٟ O:|i.Ĭuٟ O(1gFŢmN#`_lN#ݰC&$\Xz!ꉦ98CJK@eb.Ȟ^s \jٻ&p.'%P~.!!!:%888K,ojժ6lmӧONڹsҥK/]dfLfϞ]X1f)% ""RSX\q<׷5R,EDDDDσh4<=qj X?NۅM#Raski͗ʉ^m|DX'%A2N0|bɉ/C|/_>Tfa]6 1ǏO:uɒ%tpphӦ17(\""",gCK"u ۉnE +FOQ@\h(e#J\|a7aĘĉӆqW=1޿x^#\[˃_-ܨN{gsiCX'>D<cJ3F^6{]qŁ ĵ(1C˙#][4kKK9^gDENxEE/grmY&A4% &߯!^Ѯ-&qnu/X"_A<1˨R%̟$ahVB>zoɈn^F⢵Pb'.z{b11vh/%9@\(bD׷5DDDDDDDD\ȺqF2D|XfbXmU×@V%fq^PPM{—GX`Ea4+$LYk&vO5?lmE4-_AAXmZ=Vx aGѤ`-}(Ͷ:5{`>AB9px^^k򑺷&T(V$'ս5 'N_WKGޚPU`Ab#c@DDDDDDDd ks `r:s  0|/?:99IFDI])]zlٲwƉG:*UҹU15Ho2qxb ]52@"Vp5s/ >c-B,h ֈd;>[`ͰD P>.6[`s096 +n8(&.{ \*`s%0+bh3&&tc%&GŨCHM\hmcPU1 6+1i9<l@cˉ?Ϫ(q*7`+`P#l$I /A7lAŊ_"էM6TAO${9K 'O+> IY<Լ л=Daj+~H,I='Qi|-(jY """"""""sj\%tML8K.Rƍ"˗a[y׋ ޽ 7}ǏR}Ƿoҍ̙3{zz +ٲet[:w *U* @X#F-[+WNVP,""")V+u< +?}w;Wc}[CDDuyoBSfd/?kijlV) ? qcKtBI~Sl'vDɨcEb3lx`⨟( cBۧ9 +oN1P=zN*V9 + ۡ4XiRK4DCsy/ ۢtԶ"T_'AeEX;8!36FߙiEbkQz&~Y3zCgQ̾hB"٫+~Bˢok?ʧQhy:8N\trdַ5(Z\4o Vշ5DDDDDDDD0Ը\K 9w\ٲeN\ 4mTxRNe( >} + +-6ggwﺸK5k6oÕ+W2dȠC *6#O?1/cb,>-6'1 /LsÒ3scYdĬ01Ĝz-˲`GH !ړgTSrdOV"٫S( .F҄z4#YR_]lhEWj"+k$͸k7%Dִz4Zu:tؿʫ>׷bŊw|7 +*l߾]stq5˞}9iBy=~{YDDD*OјZ\9 V@a+*"""^V8pZ\Tc P9ZBb8g KL<_`q$}вv&BXăhQgͬ|YYy3 doYa7qd-`FH30/xwK...qѹyI{R+V/C]lc)]tRtmB.$ _FŎJk^]k :Y7^z&1+ft6lbm]ґLʵ0v&VFt5rM[RvX>N?֣%VÁffڀvXסaFo,)ǣʉdVK gEm0o#U,|]$% F(n6( 5.s ,jժ%h}E[y41kNDD=y*-!Vӏ | +q%š:V~Bd7&(1+Vx rjN<9H4ٰNϢ~\E͎vxz5/ mMhivMCbr &$K9ȘR˷P%+_@ZBeM'9HT@nPr9b>}СӿWFq=~xݺuaSLTES*T֭[>|/^<億=R3gγg$EDDdK͇bFxNX;"zbp`j"A=MD""" +~?,ۡT.U0/4ybRĉ AVta!W1̉0q2ĊOO#&nCGw8fuvt#&*f~|ch_GMT8<%1Ӱ1=hw]93Qa?R5q7ڔ |R_C>&A8i~2稘yJGϪىmJ<'ER&^-f&J=Сt65ײX9:GPب|M[Dj&(CWDzj&tfKsNRy Tdj +J,f"f 5.s v̙iҤ4Nɓ'\M{,YRlٲuռsɒ%&*>|P@ fӗUw'"vLxuA[D݋bg'^2oDDD{#ނ#zE5awLj`PȫTȷoÎYh߈=(6L1>Ĉۣv ?8[l*`bCl2L&U W(%.X=*?H&@.DzFD/LhmILL9%.?C-JLY|tV+W*P+F2Q:]Ѱ!޵}xl"{,Otp扨XVwgw xȫ'$Kh}:+v舭BTX黰~?j4?:SD&^XTlfDDDDDDDDZ2Ը\%RԛKرcԮ_MTH4ukF u""" kRuAXW^"1kFΓWLeكQd LWyqh4=<8ϟeKY#v6X%ډmX8W3[ڵj&V=c$7쬾sX$Wn]dÞcXbJs4'ĞX*݈Lbʘ7O1S9qH%D%E8\Ҵ*`_3oA,7D{NA3z_n#uHszNjݟ=싡r.8$9r5Qa̘1={ԭ=15=L|gy:AȘ +I>Z\xG+m'5-'""zc^s'tAq7Ɍ ?#ybċ#|2|s5[%1cJ$K$Hu61q|*:|t6EbmSHO3ςMI@9M!"""""""Ғ1@ȗ/ߩS۱b:|)K8paL׹uVTiF u"""2moj鵊E0ɃVH\%ğȃ'2>J%(?(ՕTtVJjUJYZ>L:#9qk&ub?fV`b7'Ynh_]Y_WH㓭y~V_<&te!"""""""{gqz%XdӧOIWWWuS8s 7r~sܹsEDDd\N^T13QIDDDwR~p%-:]aU@ vUJ +z~{Q]Q{=*'Ϊډɉ +(nD]䳪nbrbFI$Ύ# |̜1 JS1hFvϙDDDDDDDD6bq%x]̙o޼jժ5h@ݠ˗/80vvWu&| )믿 +V u"""2G0OEqreD&]higl9$\d*oi"h=:|b>&n>('>ogհqDDV-nMg5g5'U%nF6`ΪO_=ه*C~SwA9=D(CW*ʞCDDDDDDDQj>`ݺu48@gk׮>}3gSHQRֿ%1b:K@DD=| Kav߳?&Arh1eОnMbXϱD`}sVuM9 XvVxLT=1<+XznD9waNyhS1[:mZFv|]zGQ9*='kZmZFDDDDDDDd3\/^OӧE&((I&֭x .]s{zsٳEDDdg{>'.rO^|[!32DTB% %"" }p^~p6B=/otK,C~kr_$^)U3!",SU_j$^ODsvU.]t Ws] mas4*碞v+=.Cv.A^Ǝ#((ȑ#RggSNe`*SӦM3fcC]:! 9ٺMDDD{{D&21򉒰[&[{GW*Y=c\{e̘188X7%ЁQUf ֨Qcڵ5IRv5k֘իq$-EDDDDDDDDDDDDDDDDDDDDd 5.WùM4Y`Fn(KSotGGK.e̘Q&I/~ARHq]ڣC]씡j57W\!!!ZrHm%КtzoݺeNM''7ohܜtDҥKٳGhP,""""""""""""""""""""";eqK`%%S _nN;vL)TѣGMT7o^ӦMi u"""""""""""""""""""""S˹V\=IQzњYDDDDDDDDDDDDDDDDDDDDDvPr9JK'??ٳGXܹs9rС=nJ>O*taҤI:Df)C\+q.βfzEryY}ӭ[+&Mʕ+ק1:05Nj\.Xs t6s֭[аaÅ В{eʔ͛7J7nCKtck2Ը\%ݻw2dsRA |x"4={ֻws熄+Ĉۻ~k~^ڣpsJV$,hc+[HktOHZWC[hg-EA`!A HhhVc x?糺̝:.)\]-{ٙ3g{|U`yygbb϶ݼyʕ+lvɋ{FFF+ΝFt g@J5k`.\0==Cwŋ?~t>÷nZYYi#Gٳg73SSScccO7sGGG7s*ճ ˵KYRuvv6޴IHB011m'd2|1:A,HrlcLXWWd`MMM6]ZZwϟr\;vݻwUUUq% ǏX333S,?tPssstg~_ޞv`ճ ˵KYw]XXؿtаgϞڽ{VUUn@MMzcc?FQ|mee_|)J?~X_EX=ׯ_(, +~ѣGw0E/X,ϯߥ ͭijj޻ TP= R*\YRA%6T +j.2w Ο??==h9P9YRAV.}3L%Aeg@J5[/^>}:zbճ ˭]k׮%XTzTPsKS(*FP= R*?## +endstream endobj 453 0 obj <> +stream +xk\e}3,Q eݸ5h1/D+( *(ZBDTj/QPKxhߪUm֊^Kgwgvw63;w72s;e.Zv{,g)ňU]943n̡qCd͌@$shf"C37H̸!D2f  943n̡qCd͌@$shf"e0. `RP7]IsUk.9t00Q7]Ks a0@j. Tǒ0>)aHUΡ]`va`oߑRoJ*C]`6a`?ڿ*C]0IzP;0@б.m8Yf8aHeΡ]06]`xm6JCx4-0wCg,D*ocS?Y }9Tǒb0P{x< "26~s`0,CG1 aHe̡") 4@'a`ѓvO~}l67JC^tjO]YXv*p !aH: uV<}R8OV$i"%C/QxF'aZ Ϝ??BaHgN'=$͕0@ssNI\21 4̖0@siG& [5V?6/aH%̡cHN>}, xF-fL Rsh $g56=(s& 9iY 鶗5aH̡9 usw9Y RIsH5 p`tsg-& 9EM D*k}\ai7;aHنF &X"3Nݒz_ipk#^zWs0@aHWoH'>2ԗU>aH{%|- Zk%\;0@yjj)\;0@jKZƤkG4@g N9]8a< ,yK4c]uOpaH. jv$]60@77Q)W $ )0]ō.+>5r/}bׯ{QLD9 \U< qzlD8 i,Ygr! )0s]eԑ˹˳2" )0YmI9mXq^vMws" )0np7/ewsFn"8hz;OxjG RaŸu^^[?|`y̏0@L;WWmG RaC36SծyՇM*C4aHe@ >z4%I6#aH%g>0P-[x]k8iGI tN@݆S[ +{`":Am4 ;nb8c=l/_ʚCo tC6K R%s花O ]U[ "U1.?gG9y٭KYK D`]5 |2 "ϡ+>UL +7uoKsGUM RbrX*mmoL DC/0) |nV |ҺFdˀ0@9t ]ͰֆmկMj DC]`bhxA_XI[aHsN9 urxm3|߳Ɣ0@9t L~.:Yc 7[aHsX" vĤ,p3;]z .fVG R,SoTߺx.6$ )xmaCߞ uE{0@9t ?}< gi7{e۫0@9c +fms C" 9MI9K R9oӢi֞=;ldtgg<}jx|emiΡ}E™jWds0@sί4p G ??brYj *. t(ПbX{w^?H`$aH ->I(VÍm]4=v]PLWM R9\U4aHБo˾s[ "C{@QCM R947 ŧ l - b DJ5f8,Q(aH,0P Rh E$K"%Co8e``-X6oƍ?^Wԏ{Mw򺍣iSu ,x#ţ-h]yڵ+:;m?vh2[Z펵k;oy`00l˷_uoQV"U}oڦ :1nOTuv̚MۤlD! o9 ]/ D$ -:U;/Y"7w O~2 )0PoLJ9ʸUN Rnan緦9jsaf[g- ue`(k9mpI<D9 j\=/(ucywՖ-44V\čA RaGGKG\ֶr! 0S)2pS"UI34pU6"UӖvi l=?! 0plNfOSo* mw7>PiaHՄ-60Ж0@0PwO + +Sje 7 5 + D u_a#a-aHaVsGh@;@6M/v" 0PwC"Ujv% # 0 + 9=}~}a3z[MxUQ"%C]{Ȋ_JNvYa"CT>t`a|ˊ# )a`XUJtY"CO\2Tu(^ DJ:aѼ0p$I R9imFj\X aH)=. ̽rߤA).,0@s&=k~[П}ZM,8bϽn]f]o}0pT1?vm6aHG6|(00DJ6.kdjc@"%C1\91a{R͡k}p0Oa-aH]Ρ)h +endstream endobj 495 0 obj [/Indexed /DeviceRGB 255 (bbb333KKKwww\)\)\)OOO%%%Ļ񤤤TTTQQQWWW---...CCCvvvttt___PPP111rrr+++\n\n\nccc777ddd222VVVfff̎FFF;;;///``` ]]]ڽjjjUUUDDDBBB&&&ˠ\r\r\rppp444 뷷 ,,,MMM???!!!<<>>[[[555mmm\\\\\\###YYYGGG|||JJJ***)] endobj 452 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4121 /Length 34419 >> +stream +x s"3ަ0YGI0cMaNVeMeD +͌=k!%[3g׼=<9}O?-G_R%\uy@z GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDju@ GEj],A,QZ+Kd9 rTDjufqEݺuk׮]Ár9 rTG}#իWݫz8Pn"5g@Ժ\Yrs_pGyĉz8Pn"5g@Ժ\Yrs#VZ|MիzDP>"5g@ԺHg ̙3}c= /n+|O}U;/_^F9 RsHˍn>hժ_~饗VXPcmU;4bz7n| 'TX GEj]nDSNmݺ  +YC=^*|]zsnU;֬Ysys=QlDjuQkG}Ebs(KPnݹs&vҥwU7VXqI'?>|#HY".7rY_|]vK,)|+YUVmk׮Ml^c*U1-]ۗ_~,YԜ9*Rr%?~|ҬZ*%Wfs=m<}_JT_|qG-d)RsHˍPСիn̕,SO=նmu_pCy+Q,EjuQ 6s-(((=W J5?Ȑ!ժU!%m۶]`Ad)RsHˍD`_~yґJsC Iza 6lw!zꩧbwm% K GEj]ng zճgT%8ß{46h38k~+mT#FԩӚ5kHY".*W]uU~ɕ,[lgꫯhѢ3xإKHY".*_|ޚONd >쳝v)c:u̝;7//SPPpe <8}7Y9 rTVe`ҤIG}ҥKɉ,q;ݮ>}T`~ǎ;>{HY".*1=1bŊTr"Kгg^ze;4mڴ3-Z̙3'cOY9 rTVq dukn„ .|Ig|W_},YԜ9*Rr>K϶k.D`v/իW+g<13f8C4}d 7v؇~na=THY".7YifٲeŶG?K0wܺu駟֩SrT7<×,Y,AzW^y!UHY".7*Y"N,QN?}ڵkOTxzbtʕI[e tꩧ3fHˍP $D?Kpg6,} &m۶rƳn?~6d^hٲeү,,d/Rr% %_|o?wJR1cƌi߾}AAAXQFgN*K KًԺe bzճg%eʔ)~eԩӤIڵkW(O {8rw6dԥK>}j%%Ej]n}ҥK,K,۷ȑ#?֭[_ve-[7Ka 63gζn[A^޽vZt,Az>zTd d {Zkv=䓅oe Ҹ.}d d {ZY˗p 'N}ѼeӧOoҤI-[|g˫\袋ZZ ~-JM@u%;~DG۷W^YC_ߣG4b;ꨣʫ\%ce&K KًԺܜZ [oɓ'7mڴFB~Tן1cF9 B%駟>裳)K KًԺܜtqȑ;:z2g_~;w}qfs5k̞={=(2%Hoٲe 6;wn6e d {Z{Y_q>g}]wi|?;;Tu֝5k믟͡o/2%H/[,K KًԺL8cYvmIz5oSO=쳳\ޡK/j;uq^|Ŗ-[nv}Y^^^,Ao%K KًԺ\|M4o?Tݺu[ju{6+Ξ={vKuvaO>d 6x h޼ySN."Kʚ5ko)Sd,,d/Rrs&KPPPpᇿ w?C=֭[n1bLzmA? 7Э[rb ++Lk۶ "K KًԺܜtM^{mE<zޚ5kԩ_'mfmfϞFe<ΐ!C:wxN^z#,_YfŶÇoѢE 4Yu=C'|r-Wfڴi"5g@ԺZk)!??O֭[z*yl_~N;f͚>I' :u{6UV/^F2 4Yb~W-mڴyꩧb/d "5g@Ժܨg ;#FX"ڪU4lذJvUWr-I7o>y似GH뮻>.(S%(6lXoo߾j*%HwxzE GEj]ng .\ؠA<0vYR4KpvmժUfW\qEҦΝ;<8/b˖- + +JWN:w}w֭K{,A?xZrebKݻw> GEj]ng ,ALoժs=زN;͘1c7.M !RsƒaيB qTU-T|+5~m!WľF vľ/oPDVlgiݺua5j޶h"^~\pAҦcN]pa6mvuQFf͚W^y'?~\lvwyg۶mK,A9rgUVź$Dj44%nYh^Xxj=w ++OEEWܼVmx!Msb勝7  ǎQ蝣bS`N_/̚vx9+RsUvxcFD+,:*B(vv|^o䏓};jǾ;۱Oͷ~".K.mԨܹs[6l{iӦwZ`Ż7|nS۶m'Lx;֭[vZ,AQf?~qx㍂R } ]vIw%ի`Ė:1bݞ τ/e' +'-7*>Ղ̝˥b勝㨧WαlN:"&4ڵd;N?wίb{0zbxoKcOnN=scc]^r[3?;Ww&rd|hsŌ H˭,AΝ Rl&l2v#8"͎QҺkԨ1cƌu7o^V>Y L81vC\fMFV[vm|%h߾ѣob>wݺ=e "5gP~)<\-C^^T,(+.CCjW31eUʪv,?d{<2r7~4[f |{Wfv,u}>YyXUcZF"䊵g3Ye=ԁMߎ6voJVT^;蠃>tzwygǎS,ܹsիrun+YZj2K0{졇zWJ|C +~Y_|+z',K9 rHٴ~_Cɛ&O[N|-\6 |8ZWC"*6% ,eŧ_ Ԋij8Mo5+x*c)nʯ+>튍v / -Ku}pɛ~;Osh^vN!9V~ ʹ^+<*!W:\tK|{cneWozx믿Φ Xn,A׮]{6e]R%HԜ@9eɛv9̞]c3'`>$?)+|Cy+-6 #{[nF_3zW^,Ss;7yn>*I?Js'^9Y9;x"o᪎{1u}eTpTY7^HԺL6m}]zu6W~ 7\z뭷^bcD+s63Oxg=e˖P,A5kL8qO?tKv 6쨣J7%1cFӦM^ÛoꫯN,AB,˔)a}2tH/%;YtN Mdqptgf%֬Ԋ]:k*5gRsQo7]^{eQ49^uk@%cǰjuVzFX* klɓ{a,Acdժ+.^V[);ڂpI0J*v<;~".k֬oLR5j4dȐC9mD~駏92bܸq'tҪUS^Yx~iuYUV,AAA^%K9 rᦛ2t˳b׮O'ѭ[LGY6}co|:M{Xt }н{+SW=Ã*ӏ\ιp-:zT+vtwFH4zU=HmՏg*nc°nku%曯۶mo}vBo_ my睧NZV1ct1o{ wq+W,j֬٣GuV'xb#)q 74iRͧO޴iӂTW\W_}uw6,"is=o߾lI,իhK.8p`e "5gP.?4lU˧͜$O}G٬f8OpԮ6)~t{;0GN[qGvZ%Vl&^\Cp_7|>G+(c(׊]O;jӲ>QO29mŏ=j+ގL_Q<=sŹW+. .՝3mZHp-QʧyQu%;w?sM4iɒ%>l?,O@oW_]] 9lR#vǮXeV}:eԧOꪒTyvqvFahPŦڳBccߎ|o?sk,ȋԺ$Yf?3^9G'ذa2j$L7W|_ѪlnKߎhÔ)x)wEK_W׏??M;xiP/ԡmWg}~Z붔bQ=*㖛W/|a͚lα7oYڊg };%#ϔ{Y2O˦bpَ +*Z[yR }S9'(/ 3?6+} z".BE}'N?~~G8#FǖTNb۵k4]6A>c>>|ٲum87%X|yÆ ̙~,w%HԜ@}q}l;acJ뮿&'ܧfpgpʑSqaيtlQڢ?O.yS3W[8uUOXqȿ9tDTcs\2>:캢g͊a睋dsL_qs3g8bBo{w6[V1s +{}*6úJlxx&K~-sxU﹮h3l9sŽ;/[ bU*^<`eŹsC:"L{0lU;Pf46?|3.t%1c`@Vx aՓ&M7nܣ>:vۍ3% {l<0r'?eQ!MbFCAIF4$;V|ppP9{>U~sn[u8zNX{bߎX]*Dj]nd ֬Y>cǎ]"oW۶mG馛`b!v~-rҤIK7|s~lj-U%(|;O>~Yk~AK/("K9 2!?9s⻔ܹaK[ 4<1p95KÊ=ɾb+h0_JQ1feVf?S^ic ++..9%,yZ?&ş\}v!E5=L} qXѼ̻ŮTU-eŢ& swB89nI<K%ybxjqmXTlygt9LJO>ϼ[=ۣrbQZVJY1vU^sUk7(ɬ]"L +L޺o0ydE*WVe ~xW<Ԣ]woذa_~W]kԨ3ϴh"?8 ߅o#%(lٲC,./lԩSׯ_$Dj E=].ad .)| }BERC /L0*C'>17[5Y \Eb5krޡk;p?z_kmȪxMڬw*t5X8禔sHhU2pzc l+Rr#%Hxwޑ#G.Z1CYfqW^uz<^SO=ղe2nܸĐ"%(? 0`РAG~Yy5h`ҥ-={ѣGI#K9 b + +~_>P( ’%%+Qf~/uV-l]UVLgL6̊뚺^'l{ou(򧉒U| W}^S6/eǬ愂g*/Okä}FW;^!XCpQ+. cJ͡5RWLpΊ80 $9^.W(E6KKpFpAeV)ym8~CY1M73U9^.N)S5rQxD=u]82+=[CB #Y1؄vuzS!ow1ړÿu2V1v߆7OvvgW̏WlYXnO {Dqi 2* DASd +!EVA. +J){іh%Mkz~|r.|w$.M$(>lD$Εd\&cdȦvesl)Q;R9nב!ƔH*$gћzK \Y! V0=".[L7M"dڒL6.A}˾ЮĴ𮅯@}Im-|d"ڔHvmCޱ@ jS=MbsY QP}Nڒ+_ATML'oIUզ2g)y-ZȺ2T`WMD@ōzRCoJ*$;eQK`3gԯ_+V۷/N:p=zTxboogz{キ~yj5Zmk BBBFūWzcemIcW-M&7C,G2{|1yGn\ڪM}oV'rGRkXY"TxֻÃǣ.:MeRPD[T[jlggbUm*# 唫jSiYxP +( Uf Vݗ'~, >idIaWrRpHkhjtQo{CR%<P[ntdۆR_.InZ߿nݺ \ϟ_t)</ UʒJʟSզ"ěbr4WK~]iX\_>˚ծD[hqV*,Kv/&Q,;(r搴P^,'3-$+ؙ_.?6委u-JڔS)Zx>zɏEj%7~i'|Y2iXFNV}˺ۯD)rjhh~m!%[ǃh3$OvoKMW7Jt -QKM>}tĉv(^xQt'NXPv˗'O= 4%w6m` 6tʳ ߲Z??˜9s:uJ#K-uȑWP8Y%("K~5<²8k'v^-8jh,;e0γ8Z_P6ZsbN%<:әSj +ȏg죶g y^;Xj Ɋ󆜚'Z&]ȄF&@-⛕ZUZ f/Õej ;n8Kɓ'?|֬ߦ%gΜ_ b?3$L0`ǎޑOࠠ !=j tkiB]sFVb폶YVTms¯_kUn^Z/+!3]uj 0B]#+vP^ܖ4v%Z%hMnXzwq~[ܸ,Uaa2w;I'ܑZ%KoL|J4=TxֻʮrOT7˽^4&YY%qnӃYlggbUm~a x!~~rㆽ(\$Tjc~%q^Ӄ?ZǴ<4ޱ:Ϟ,j4+]z>f&q~?,ъld"XQ$hTIuHMGKѼ6ZMwI -QK`2!C9ҼZ;vT\9vnݚ>}z&k֬}V9zhoM-/)r9?? hA-uݺ%ZɺuqR|~ryӘ~6[N)OJզǦjUYTTTO~lćsR'y&OzbR\ٕhI: ML-K%զ ƥ7DZeKٰ [FoąS0wRw'}a>ڔ8sc΃T$}/%K+JeĀ |+jhIz2o_g΃o7bjD$k}|hbJ c9AOyp['.1 QPקZ JbٕNߒK&lZ^DKחs͋u7T 6@ nܕLԛO:w4>PZPY&az( D-W^o>tpj sxfRTLIo_Ӣ`XRIv]z57. N"$qL9/zUIU쮿QKd\mBybt*gΠoe|Y3jŀEDHr\R2tkY>{&gg%Pce7nGj |}}-Zdcŋoٲ%M͞p-aÆ05jԘ2eJ~/Y#z)\NT=RWixHZPdבW+rX|Y&dOzJc̉zZRMi^LΩ44.KFEbd:$ŋ{mwI +RcSTΫ44!GF^kTP}I"SS}e\]޾SU kw{bJ<. +&6%?Ȕ3Q)Rkkˆ*+m*[@\)XNޯ,T"AUW)%[uhhIWruQKpƍڵk9r$z˗/oҤ]K + +J*]āZ۷c)S%JTX^zU&oA-ADDww:oo_~Š#%05 `uN8lZM?,uj C|E6\r' ?Z8Z3o׮|8u %05 `-[.dUD]yT &7UҤ4N3M\U51u +0NюϾmbxqz4${&F/R{%G}MWVҖ68L,n$5j8*53Z Mڔ*\Oձċ}QoKUI' 3LhݎR›;$g]}]YGZIa-HZ֥KiӦ(l%ݻ V)6m 4nܸJ*C.]KaÆZj_޽lٲqG-Yu,3g;uoUYwE7޵~zۘ;3тoKqvdROYl[H(dƌ7K#Yq8Q&%mcO v g;$R™_K2,ufb2eʛae%"qemz Ҷt7-)mK'ʸܮ|%mHGJ{w42Nw*U12sz>'9M2fzP \s-TN`o-ɽ{?gΜ5dȐÇۛefc-W_}E_^n6mTV-QD:׭%xץKkw>鯿3 j tu("Bekj3JhD-5\YDQ9T|R%s+#2s^dIpb19wDpb2;q\$W-m*9"#Kxǔ3]o>:%?N,)g:71 +"w$oCy$.K桜9+Ҧ͜Yn=BD Ɋsrj-ÅPtBoJF0:Rjj )F3YʿNpLU;3 .j^nѓ6l%09rHǎ>l[OqĖZo6SNfΜ9K9/g~ԩ)S]"fflsTrTIWJN5&FW +}$cxPZ36v#ˉvacnhjqs%%,cZ\9 QrλHy]R̉ei^L931}̄~֝RaGŧWokUoK!<kbbǤY v)-sbJ}d6fU{Z +5So(8czڝMUKhτt5/Wb%PzjÆ {- -A?SڵȊ@YӲeȏJ֭OҤIHt%JPyrԫW/NC%05 `eʔM&O˩S5h([WJ_K (ʤ|T9L^'bŲjFib#Rk#6k|?-?ʗ6v-SKl+L 2sټ\;31UѦZkԍNl,A龜lF,#JL$ecDڜX]IKbUU 6}m9h|\ZDV֋+JCKߢtkRdSj^^j B9A,k L}}}(!?h{攖Sʙ8MT4#ײG_QL=12SR4dz( %˸xI)%!;Kކr1T5MJ5Wޏ<-8R>8ꨖ@~ x4%PM0amoIݛ+W."ܿ+44@}qwwkpZɓ'G>RN}Yu.fflqFi߾w/KPs+_˃1t.6JWK7ţ NK4"3J 1 L4@)=K*wۤ&5ezxqq%{I-K wKVC%֖?Kw}^AI!4I4'3'_/M#֊ߋI:]4dM}$vjueg1%~DyJ=!Ѥ\!<·`s\đۤaY3 ͢}Rg۫|;̓t5/W_Z.h0?Ki̱Tb[KFİ j't&O0MhD9pJtۖ!Z&WZŠAFeZֶ@m._<ƞ$H`c%%_5k/˗/ccPK`krMaHXqyh/ŋ6ݘ8t?1⭬EKN"I|LYً'=q-e csg&N-M("KI:K)WV 8z[?2&$PT 7?VITǎZېA.I4Șhz,g-qr09K&*rȵcꙣRIbYcj{d%QPB͉JTQI\&4Il+?)IelS9]͉ʲhi8UYLr|d2$I.J1yb)d 6qVI1Kz9Dq+L:yz%oKӲ&gҥ˫Ww2eۤ@s+VH(ѱctj tu1)V̦3…R=lۥys 5."B51 @Ecb]ٹFz[f/qC5ծr{Ll"A1ld"X1jmW%qLlq%S6IYKJ)Hj7cYDdj)qbPDS\6ۘꭃw1~ʷըegJrԔARR#k VJ_gNVkĭ[ NĬrSIl$2Q9W˗.MKR6 +s?ncӪtiOrSmɖRɶEj^@LWõk׬w:t`%ÇϢÆ :t@-Y "_}szd~'aC3b͛}4%zqyoO5zi-=\ITq H)/?Ը'R0qDG֮QqL[CT2o()ٷ;<$8ռn-ի?t萕>%ڼysq&r-ϢE\ PM +, ӧgϞ!o޼)Rk[/O:k F!!;|iC$2fæS'yjyhҲd$L(>>kW&u m.큤X^3mM,hpqȯ!llI%9QRC^ZTiq|8ոG&?Ȑf1Ƒؾ#$}/Oܚ󰍱I/)3ǣk&8;H{KVϜnb؂rL*ɋ*ʙD ef^1ʞ'8Çgn}Sk 6lrJL.TKPXcǎ(4VhѣG(즫kaaG%Q痥KP![7Ҵ9u h|(A'8aL~%q耰AGzu[HbRɓ]2zHƕɍ;|YG֐#ge1='[aXqq~ 0ǂmx\q6C ںQ9wں5&V,&Eux\7'F9s""6yy_;f~DV'Ϝ'dHĆ1x)/m(Gqߎ?%vo%]}Kj  lذرc/_T֤LH"umРA\7<k Wqc7Sq>j gڹִk''KdmSxywޑE$sw0&^Ϛe$M¥(hae`I`vq CqLԾ=ybyɞ]/rD^VePȜAʙmI&LpU59rϜ>zsf7-Ϝ=2b,(kU[JWr]իJe˖zJ[ƍMie;ƍׯOSN ".]zV:j '{8 |rIJxo^-mݻR̝+~x1'NmLl$_el8w.AWaNM8ɉ;޸xQj8޻'  ʮ}9M}Vp^S}BƿՉCʐv3miFgάYҸ^X9 +9s""Ty8owr=ujv3п5I,uR?<t5/׵k ~nݺݻw/m[n͞=> ,h۶mx'Fk޼ȵ2evZ e{9z;w<<(PUV:t.TK?^hQ+vGQV5 \)˪qϪ^%+Bnq1s:%6&zFMg':}\#D^)CXHDUqUw iVC&1wt5/%k |}}-[fM)G9͛7jk|>,YMk 'OTu@e.^h[,Y&LDY؎Z3]]*h(c>rRS'%[7^|>$g4yʧʧ]Bu^5-Ot {ߎf<,e0ӱݔퟪV9sv9=9?m73Gj/$"Q9>]"*oǪm2{9z.*_Qo🢫yWK0bĈC:q)Smҥ͛7P?@5W_~Qj z5~xeM4s玽olٲ Nj lG-YXYAm1GfiRM|jJ\KlZݘ}o<lL\Dsxsf8:Ser\3{+x.XCpDU=۱Y޲e5^oG~X-e˚5k17jƻO>k׮M'NȚ5kQj n8&LЯ_pW_ 4ZQK`k69l?"OKr}G*ɓC+e J;{'z6hW9Ϯ}.!q^⇅j ә/Z fg>i|3?JTg&Qv(_$BO?WoG4'ja㽬j[_yTKp%J<~-Hbڵ*UСCGTJ͛7GZdɒݻw/QDmڴYd[P$Lĉ3v#<ό*R$$Yg$>~*[|O|O +ռ\%xi2eNzSժU D%PƳ}ܹsZZ3gf&;wV>ĉPK`;j tu\:ٳg%J|ɓ'sc(~~~^^^׮]S\hQO˧ᘣ.S̽{7͞=]vZ OooK.fnժUW^FɓGnv(]uF-iӔ>h $?J-Ç,YgǎZjGY:ug̘\Kp!+W*VxE{ߘ$IJ*y{{+VhѢʇc'LW,Ej^nըQÜҶm9sXKZ+ر#r{׳gϖ-[F;_~j .$zjJ.\`[2eTv:u(6~؎Z3]]yq[KpΝB +]z5~3ʻ"D:uA'JHFj׮aÆ( _|X!7*Ut9[:(PO?SN%h%ff.JWr㶖@٥+VD_ߩSӧ+z-`hݺ_!C8nݺUh(뽼.\2eJ + mz{{>}zwyI&>>> 7ŒZQK`kt5/7k .\زeKKuYhQԩ7E%H>y֭t;TeIwn>|}QKҦMۨQ#[LW,Ej^n\\tH">'o޼gQ`(#TPa2eA:쫯2dH[ڴimkժm۶MۻCO(Q LW,Ej^n{{{ڵ+ƞI$ovj0+#L8G0,Wݻql߈rZ*)RiӦsy`F-%05 pQ'G0`g̘/_>K(-+'N|ܹ9svcСÜ9s"̘1c׮];wl B-%05 pQ}-ѣG˖-Kޕ(Q={4(y.QK:ujnݢl֬ŋc|Fm~>}ze;u4iRGo؎Z3]]y<{xgϞu9rtx;yNZñi+<m{$I2f̘nݺ4ѽ{)SD^ӨQ#ekxkt5/W/&=zt``-*Wuu_@@gHHHҤIqHE%5kVw}wK8۶mQbС#F0,\qcƌqsss樢 +P@ppe޼yϞ=k0qHZI>~8~?%]]y.YK;wn߾}dܹڵ3-Hɓ'HZ+kt5/m%P|믿=zcKΝ˦-񉗑D%hذʕ+q

gΜVZ9UV) ʕ۵k3ͺv{-[xzztu\Wj wСÊ+L/ ̙35N={ʕ+,dɒifsmРYռP-vSy3NK/ZǕ3fti@l(](N8駟ʲŋ7n9so^YY +ĒYռb-Ç-[\z0aBevN};sĉߺu+eʔNbIW,Ej^@1rÇ+ իW߸qsr{1ydeawN(f.JWr&۶mkݺ͛s~-o޼Jy +ĆYռE +endstream endobj 451 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4121 /Length 24896 >> +stream +xT0PADD@`݈ݭz;A00 b `Ȟٝ9~s{f~9ξ<ԛ6mZTifٯ_wܱ(Rzz ʥj\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTr9j\@ZD.W/C,(QK䐪5 JTrP~'xسߢEbϢRf@JU]^Jg}K{9rd6m=H՚%*Uuz (Uo*RYTy?CgQZD.W/jnagQ]0س(TYPRURcmŞEz٫WbϢ0Rf@JU]^J՝w޹{{zuVYF,(QK@k?bϢB#GlӦMgQZD.W/ .8S=d͛7=I՚%*Uuz (UzyWY$ڵ=I՚%*Uuz (UGyd>}=d={իWgQ0ZD.W/j۷ofݻtRlo߾}gQ0ZD.W/jG6:󙍥j\7+ۼ\QZD.W/jV{76 еk"g65 JTrPڷo?|^{sEl,UkT%Tlr̘1eq8X,(QK@gy~ײoe˖El,UkT%$_s1{&OܨQbg5 JTrP~͛m9眿{3{K՚%*Uuz (I#FXb%6[h1f̘"g5 JTrP{W\l]vÆ +|foZD.W/%饗^Zo6W[m7x󙽥j\'|r*ҥ8[,(QK@I{vmݻg~8[,(QK@I9䐲8o,|foZD.W/%/ѣG%q>TY/cү1yɼu_zu@0)GUٟ6HXYbݛ3'9ͺ%JSrP8s=ls9Ӌ8[, +1xuh GŸ_f=ih&:,kv Vɾ(DJڴiQώ7bؗ?;OdX_f`/YX.Du|ZuخmB].W#)IOG&8ǥ+@bbf:HT%$s1W^yef޽<"g5 {wxd7(>7."v{l+K{"qضUiE,d(oPuwo^2OI\H{bGqWuqͲ=LOe9&.ߜ>1uYމo|oΘs⌫Zg5\[o-ۼk"g5 M n-P}b~t%PL o?G)gVFziLΰ&B6quҘ3٫:'V쯿bb6ڨ+9bX;U?x[/TbN뮔M|4&WDBHU]^JR|G}tm)|foZO!qB~rKeŦk%Rq1|T!?qqjiI|lzM\]6qUӒ q╳yb}66$yc59f>~U\3x|lJ#WW<;'>{U8c +~>ץrcE==zi"@.W/%iM74hP_"g5 jLuqnt(TYT/ƾgOk7e㶳bu@{dpwN|n]$=;6+RbL.~<ڱc O?}C;Ήk]bfs,K\qH,d"@.W/%ieO6Go:TY0mZtU\rGW/N'R׉˾DM]WSGqi_:q܄}o&-ğ'U]uxqƁU9b*;㏣C*|Дq%ѧ_fXss̜?ic:qlxݏqmb鉣ksQO\EYde?sӦM8[,*ה8WXQ"n9#hXy?Ό{P5l7 T~1ĕWVvy)OGA=mןsKrP7nSU(~-<kؼi7_ae$xNѧG'wK@7n ,P٦M#Gq>TY$;4m'v&&5g?/{(c.+qL&ٵn1<={ /="GF~qyϔx)qqEq5H\plA&|rtq 5K 5׌!CIlP?^V~:3o`۸|qWXGpvfMߴEM^hf]<G\Vۚ7>sС +x}$hyq+Xđ#cfI̜9o93vب+Tģ._VͳuUF0·5mt+W~hz]7=Q2? +x٫go*rg&񆇲= y&Vjm&f9Z7ߌo:Ziċ?s$fv,Jq=e-=Ֆ\!Cn/V[=El/Ukxdp Οm+<6<8Uggqlqt|?o_XD +kˣW*m`*Vl7ΊϮ_qE}w^ebxwyfsNU2:*-׍'./dŐ&5`&g[޽#Ljxn^7U=xUqƇٯ*|^[j4q +k<qiѫWUW5M\sx޳ze388J&^}uvXۮ\Zm_2=x5qN\mxJ׏vUO9%.^R%6P3K@y7lw;CF矏9򫯾?~? {}3ԫw嗏?jz /̴lw_nuwH|XXnҺܙ~ 㫯u*$,[wV; ꉫ,oQ.;a*'_|Ֆ77ѲeWދM?ʞɇ.$[пlJ5hGGUHibfl7Qu/6qc䷹߶Fx/?:uY6ZHM])[j?С +7 fj'fαyr/]+XܒG @9K@8͞={YzSL߿߾}8~| e9j?7޸RRf?sb-4q^۬W DsV&PCwOpbM>8r&= +pUt]3^*ikCU}}b54U~ ]<՝OŞg7q5ꙿ{nQ7pqAI>]Pw<{U.7,s3K8>{W\^^gYgxB]}Ϯ۞.6\5LU~ 7_[Ω۞>6X%*io+R,zG_R\(@.K@ˏ; /GnO|VUgWYe~fʥjV+Qǝiby3vL馤´in1~=eJᅬj${oz1퉯wGrby7ZeV0ɯwmgU|kVݽuEI3&&MfS_ϫWGkK+L;71)o=w iIb$?k35IKUX+V߫XįvZU|ˍ:RIXp_j>$~L$.痩M|њ&eMWul+@u.W/>k~믿rw ;v~իwGs=wm|~ڤj+nճw}.lA,+;.82NڻN+cϤ-q5CϜ>)qEѧ_1qkEGrbEΉ̧hgAgS +<'fήA5q@]&VW\3zڜO,}bF_s$V8 +8x(剧ǡγqefy>8W H3!z<8$V}bMuX,|"\jymԨQ&M&M4qIy>iӦ?l׻JN,M6[' ?_z2h'.e|8#kBҿco2F>Qd%nضU|xSe#?FIѨcwuHHM?o0?<ڴϳ0âm+sWy|Q3GryʔiS2bBNe'~K,_ MbRfICdǸzh?c%'K@y3?0ek1uuoIXxᅻtjuС]vmڴ_oc 2dʔ)9'3\su];C N(RfXI{NqU'~E,Wq3S5 {(ڵ)| ^pCt-$wʻ'\{^-$H +XM㵧ġ=ܻbj| qqePǸXYE40;6F8|[4qb]8*qtuOtFb{aE6u6{]{3_W%-/qbqt.q}JJEqysT%C )=ztV ֹslgz=^zULggϞ\P͖_6myf͚0.RfyxÄ7/|MCx(/Wo)u;1NКb-@^V5~Z~ŞqNm]:g[5=8zxc H|*.'mx8C I>ǣޱK5fX ⪓xD53JJ<*N*v.JѻG-@0d?=NEI(z8 Hk:"z\]ċ3ΐobUTK,J"0K5 7nZ褓N:=2l9{~|^fN]w\|}/|F%(ՙ0her4 b/ OI>f1OM#ཱྀKɯD +@8.$qdX Gġ'c̋ۓn>-OO;m'6ק"ƎM+O<~"5Go1 +c'Vž-Ideji-ok{s,$ݜtSW5sl?65mVoNO4^{:H+bןQѾwM1,V=O+$V#yGbE @սYt%q?ѿ +)>}/vMZ&$ϼX3Y,:ZO8dצ(kM^vgXz:%X:^T%qiuTٿTmhqI<9nx„P[.M4)n{xLx'%bġ-~&NugQ4'晸T|il8wү}wr%Vb⮻b„3s$/MFy}1jx$wine7~! W/ۍwN$rwY'bUOԙקD'~bJLlO3E&'{eμwM+ozd囸pz7i'V[h6r9y}r8Kލw̞ٟg{&N|ݧ_kz|9N^ռϱU8:{_'>p|;YKmz¹+d#)~&m'>gnk'GH|\ċnڣWsk&Vdi7>%$ ㏂%(z  馳7g9mڴ+9 /ѣGMi&Lx i_>NlyB^Ej%q c/ ;V(zrt2n?8OZ~Xm㸶 {oU3_?y':uޮG?oT#i"a`ֿ=:gc +QMA w&VRs0vZ61qm3xモqu5? m7)qلāFSď{2a`mӋʏ?knWU#qf {r}ouPD)Uuz (I}7Ӎ9ykOw]i*?wYqf>*UkY{}n1f`ԫWĽΈ;nfܢY|tƹ-O(WWSBؤ3P\;%_E|?S|0w/@`8yHz4b Ǩ')lerbC'W,Qb8Iل6-cIlQLLH&v<'lfܮ#{U{.G H|$6^1#&%$4Eiul$͘d[2,$ǨBd:ƾdKJB)a,r}~k<\s~ϝc`?Nb~f)WDj$.'cm;\^D'(Quz 6dW^y;O>e[OIԞ@5 r=sS۬Mܣ#)z{>K@U]>4N,z[:'"'3![' ie?y=q-k5O[ǀ$x[L\sT+ri\^{l _z&{'\so]qrrI\{lجuqHJKghK8ohtFb10X'Mޙ$ms5O_/?wĻeOQ]aS5Ow;cs!οZ9ᄸ'%ư$?AKt'߿vGrM,^c+IENl篅3~mocf_OڻsqO\TՄcs|p\}ܹy;T -o'3{s6/Jث{L4(mbxu\Sg+s+)ia^-r&.旿}ݝ[c{S o]cj$T%Ci1$92Mu\rO?,KpMlw{GN<%>ȂX+l{^2'a6*g1hTŬvvLhTQD'(Quz FեKV[O?]iʶZ= 5-8 VF* L1ʌ2P5cr9;1ZοJ@5̟kvV/iUo+rĈc։Sc&YFobWK6{ׂn*Yq1U,='tVډbb882EWE=X4뛪ŜtR\z¯z_~f6'O# 0W{@ݻ-UᫀAqA*=΍?(8Ul ku^Qk#xFW;'}5H\̩ƅ. ZUo78qb W]uUϞ=˶Z= Mx=80*+ūcʗa,? Y_/j{hXFkw`_">ui/=y(ͫ>&>] ףYO-뉋Ygxx ~ƋO+(o XkgnQ=bU,ӯ9?cSQ2vډǫIJT׋kU;qxe=q1-[oDal7%-J$.W/Tav7УGA|0Rz$jO=mrnYԾU<}cеw {06ZH&Z/{=_w޹ā#O~$"d[Hl9jK%YYGJ\ҸqѦ19GGGk|r}n5Ib_W.8`xv;j8)$}7w@lK I^=eĉOJr@]z饽z*0SN?xSKg{}5ωw-kbuYѩ 8o{K@ 6*op ƨ7q1;Uůkx`[0qsǣM {o?/15N\};߶˨y.:8IIT]^Ç~&oUJԞϏVPҕcƖ/ZFEE)Ǿ;9|UDjѾ9?X'% _}[F{>6:^ıI&>:<^|I\/>H`W'X0 jb_}֍sΪy7)֫yЏ_[Ĕ3ML|&Zm%U-s:H|:Zm7bQљO4&vƒ,g+m"S\P}&Lb- +LXa*?iG,ǃ]Q>6l^}ut.ntcL|ʿN78%t{;~Y#5j|gggM\dATt럌%I]<8hbLSWG6ːwG6Z%F\틔Uy=Ͽ>;a J@i~||2hK\9!6(|vb;tO?]$8bxaOFD=b@9N{eq-q3KWl__Ǥqj13߄c&yٕ|ud v/T&8}T`?cr&#߻X;dyg-L֮Hv{{6~cC3/K*^(kb׮1~|%cV;S($.W/T߷~r~-[,ےjC,h5fwY~\}ZkiŗʻҊ1R&}QɟؤaLk5)Maآ[!JGFc_}Dݺ_~MK/|Tg`\B+QOqF%͋3(x +1pwĎIU.CfG/7>iC_7Ϗa'ǐ*-j˛Qî}VM\uܓ3F-1ظD&F+$ Ȝcf>qk&NM|׋e(xk%̈ >_T=5LnoZx_'Lu|@Us$~UJW߿wj8.9^ukx[]W2x|檖 1{VV%<XqŸ_!q)1o^Ѻ18274{eUHvsLbUky=^IĻO誖31sm,É3AJ^^bUjdM7} Lxꩧ&7VNԞ@^|OTv~ݖfؠY(VZ1_3Wc 1cV)WX=:gJBjyೕߤal&06h7c'qĘ\H\Qt"o/zULo{̟mWv]?]ƒXy+y\9ޠ|W5_GwϜBb1svm%f~BB_yu߬܉bg?|kurnhHT]^VZK&<[neSgPȷE.uԾwHJKg؃K{P9zuz(wS"9&.8VXjǛ=;>:nGZC]g^GOHVr@lᆯz &MtM˶ڐ= ",WE<TQ;ܣ_RG+b2wԩg)f}QęI<92&sFLsbK'G,n.]bj[ǁcq9Zzq9J,ab晳SxϣqĹKPjK5Ҵi??xW/zjC,*iKc#u:'ZMf"iGq%1rNqىK9KZKs6qFk7&Oɞ'js}zÆ ]wۯ{+z4hy{3K;wn:uʹKԞ@<8Rs16)}OIɥ<ƀb6IId|*kQgNI,OdwKyxuE8q%f;qMZWJ,u"@$.W/i2nܸC=tҤIKkhРA93o޼_Z] R!Q{U6~D\xs̫c'w*[g_C/}cm[g2q9eN|[l&nOfj}>=|U\CϞ= TtYgugr7rw߽޽{ׯl%ڳ(9__e?ccQe-[ŗQQQw+pU?_)V\~YKd-S@&WuKD% OެY6mڌ7 KZ+< +L2dHnʶZ= R*Quz HAٳ23WZiٳgWTT9 P`[n]ԞDYRK@ +tuذa?;_g}r˕g1'Q{Trmڴ?~|ef֫Wo޼ye/A&M>|;w=ztyVRg@J%.W/)ТEɓ'Wfnꫯr7k֬}yYLJԞ)\@˖-z<#^"Æ ڵk cƌرcySg@J%.W/)[ [z9#n|/>ug1*Q{Trȑ#N;cX,Ҽy{/GlUڳ Uݻ\Pxfm/rYرc۶m[`˜1c:vXԶDYRK@ + >|+<駟n߾}y֓q_qF7pW^ylUڳ U={v&MΝoo裏m=k޼ԩSM4hP=ʶږ= R*Quz H={7zWs1e[=|7~ׯ_ԶDYRK@:=zw7:f̘;g%LV&MoyקO,<g@J%.W/Ѷm۱c?~|֭˳Cv-kkYLy$jJT]^R㩧ԩ5jN;T5̙3g6M2dHNJԞ)\QGu5,g}Yga'xv(J)Q{Tr&sСÄ {|uy7իW#Gc=d6l8qĦMDYRK@L/bΝ+[mVKɓ'w>7w$HԞ)\ҋ/N;M6֭[o߾zjzJsSL7C馛***J(ڳ Uzwk &,x֭=vۭ4h'_ӵkg?aV%jJT]^RlΜ9=z2dȒCoAԭ[͛WO>d^}sN?~-w$X$Q{TrzwuW=f̘PEEEnv/V\qŢG裏Fq׏;  8{_wz$jJT]^ӧO?3n.ߜ[n` Zlٴi믺+ܹsg͚'L4饅(vuk6sRGB%jJT]^&L83GQ{֭[g"{Z:~2%jJT]^5&M߿e6gΜRN:;v<餓v}R6-g@J%.W/˦ٳgu]ÇǪTP^*̼b6mZH,HD%`7w'|7nĉ:FXUV:th۶J+T&S,HD%'gBsΝ5kVꪫ.oܸq (Q{TrE$jJT]^DYRK= R*Quz "g@J%.W/PD,HD%HԞ)\@ڳ U("Q{TrE$jJT]^DYRK= R*Quz "g@J%.W/PD,HD%HԞ)\@ڳ U("Q{TrE$jJT]^DYRK= R*Quz "g@J%.W/PD,HD%HԞ)\@ڳ U("Q{TrE$jJT]^DYRK= R*Quz "g@J%.W/PD,HD%HԞ)\@ڳ UgN! +endstream endobj 450 0 obj <> +stream +xA 0UH (휛8;Z|<# N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qbĉ' N @81qcI +endstream endobj 449 0 obj <>/Filter /FlateDecode /Height 246 /Subtype /Image /Width 4121 /Length 22134 >> +stream +xyWFֲdkCfBRVd5׮6k(B%KC~g_4gLg|N=tg>9Ϝy_s,X Fg `,,]%tq.YX8KKg `,,]%tq.3GYl*T@>o'M;lm8KdУGn@ݻwsuY  ,Tg r*@B9KY % +,Pwy 'ԚW@>=ztѿ}wg !,r_~|pDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu QkDu?o~Og^y啗Yfz5lpZo*N+G,Sڗ,K'>ÇO^j{خ]UV&G,Sڗ,K?o߾ 4iRduѣlj'Xf,[b%j<}5ju]3dgA}}ݳlI5 T:KW_޽1c2άR+\Zy}wz^zUZ5wPZ O%j_,}w}wq?kn׮]-6lM͟?>0a3<,hPfɐ5 T:K+֭[P*Uڵkw'.ժUT|M׮]X܄}gիW_;NDY/Y@y׫W?W\9͛{6 _GyjժeKԚy*Qr%`I?taȐ!Eׯ-{>iӦ%Lٳg^I5 T:Ke֬Y~Xth=x衇ԩ8Ͽ&L0т!Cmvq 5 T:K믿nժ|Pt謳κ+ + + +3{?3%L[IV\q %J,Sڗ,K~v{]|\pAV*tЀJӫW={f%Z O%j_, fϞݪU1c+>lJs`5ל:ujjղtZ O%j_, :￿N8obUV/bicƌz뭳ح\Z O%j_>}tڵ6m 2$0sz͟??o>[J5 T:K@~{[ho-r}?~* /fO?{g1]f@JԾ\g cglͦLRthڵng) ѣGov٭WDY/Y9sUW{2$1c4o<㴂~V TDY/YՄ r˹sz׶~ڵk%Oq_y啬+Q,Sڗ,y)s۲e˗_~жnWPSN}-yΣ>z衇V TDY/YQGz; +~͚51cFq=G}%QkDu4i?.:TniӦU^3f8餓 4שSO?묳VZqJ5 T:K@y衇8∴Cw\>}rp3g|f͚5gΜ:ullMaDZ O%j_Ofm/׻:+ iah,֯ĨU\eh\rl'~&QUݼU]o,S?9obONC2?ͮ>Pqߎ%zU];/H"%j_7jhԩiGkԨ?֬Y3w4HԚ B|߲=Za8|}eгKE Ö},{qݵWlP1}%8z|<\y #ڗ,ycСm۶-nyoF.g鑨5 * ^7iqjcJ|-st-]1cC /U!ô*^>^>_.~Ub'G,nօݷK\qx4H>HԾ\g :u۷oq't-ܒYz$j\8"μ9Lsn$n<=vڲbϛKrq@Ub[$3baqY.nQaqTL9-~/YdMxF[$O$j_:3sfK]wչs\#QkΔx~txiٶҊW+X7V^!⃗n+x3*ž ɖ}> 3g\s5sv?KDYP';QjA\||L2$/9!Ί糢]lfΈ]n\LawqiqS9*VZX<5IGA+^ur~DrdO:K@~e]FY/?VR%HԚ9qĿ $9$ɇƍGAAee}~UVYeΜ9Mr-ǎ[Z$j +)1RN#j\l0)u~ǯu bAj8,`8f䨗F|8UhWQ]’[wQ>8g/ +VK}KFuh1,?>D ڗ,y_lժU RQ=Xng5 *ʼ?13W]9k&{nѩiV?߻\<\.Ŏ +_pmd.~UR^A.c6ܫy\W)m;G.~ ڶkߩ3$ŎlgbWbU[g>}ڞ={03θkrv?KDYPQ"z0gqޱyXn=2?M7)D|CX\@Vj{̏8+ߩXkSO-|n%N:i1XkN+|PѸ);g[[+^NUb_mʼn'VF ?8|X7U[bU-Nb+w/v1.[ś)|UObygtx^Պ,xzzXJ}\sgY$j +8&TWuVL}`A4jw9^|>U+U[xIQҊ ԩײe0S/0.e,j#Gص}\ѭ Ĵi׺uQyũ_K6Qe>,,Be׏3?n]cذO8(.?qq'S??Ջ33?n*W\g5+ڴC[< +/V/nRR%j__ʔ)%Lx8∜&Qkdߤyvj}/[}a̘h޼T]PPw5t8}NI[yدe%|3ݶ3b5t +Ľ(Fl]Un8^}8ݹo8qn.}TѣcJ[5+V[:+fx[qC)[b+zU);[e.jhQbjUW-{Ko`AֿW^v*_QNTfzU{TҚpx硿-dڗ,Iw߭*%:M69M,Ⱦ]Oc]sxج>;Oѵ?/m1Ǵ%fq#T<իً;t祭w&xq5-W⁻xs_3ŻΝyisHxʜ-_3Έ+mS>_U-xhx_c{TPP0gΜUϟ?r'駟J5jvm۶m۱czKDYM}EKUO\,:rqecT,jTݽY\اpvĿ]VGx}qQ~tq\]{#??.<':v󣻞.~wa8X⊜=7l#>ko{ +ϢTFs⪫V|8??=0σgWq~t8ߒWYgE^e+>PtGw<'["zgݜH2%j_$]x& +?co޽{O>}q`w?餓ڵk8ϓGf@̟?O;\i2~lVUVםXKv8f8tAN-k/b\_ñ]|aA K]UkNkܴdGjyXx`Jv:nʅ*־nb^k.k\w7wF)5]r-ֽnqEUïo~-ɒ7+Qr% 6|Ǘ0a֚1yܹ{^x_Rn-Zd9)Qkdȷbӎ|uĀc[[#"}1QexX]b8a.on e)ΏG6Vb<=VϣqҒ]lTgUqx8%Ŵ_5cN:8rlIԾ\g HW\~*al0qFGѥK)STE*UN=ԫF 5 'ӎYuݮc];.OxO\rl *CΉsY<;N:*wo\rLg)cG /\⢣bp‹=krvg^<#N.(w8ל{~HԾ\g Hn 5k[o>w3E̴?{*ZX1bQlf.Z/pSvZ1ۚKtt;^.z}r VDqp.^)z}R0.SXlCbWPУ\gԽբ'F&1 w0}x}~z17J6$N3^+zh4OT8bĔ8etF?Z[X#pm3N-G8m.zXw藨58'ĺTFqKbxV%+gv_d%j_$-r)>{~UVoFi[mUvarٳO;+c=VD%jذ}LZݱqq~E'F 8aStsÞqs9}tŻ.q^E'ǴDqnq|xgc*82N;Q8_/;_IQѥe-:hwXoݘQq qN_.;+Q$m3^#:1ήKqNN O(~6LW=gUJ"-:aP_> bV!'s_|%:Nx*ZוQq7%xB,DuD袋.t]s}ݷȄڵk_uUis3{֭QͤZZ|??g=z 7,>΋Z[D8Ƙ1hq` Sb,O^sSjf qΝq`MzCE' JS>כ3dx|;WJtſޜŚ1'UusTRƸx脿ޜ!.q]q@okOGNZ\&\L8ؿR75'Gכ3lsT9}OW)[Iѯ脿ޜ(*brJ뤓NJӵk;3󟣏>zѭ:ըQ#<ұcyԩGjY)τ 6d +M8K@U+H}X4zpjZd(v㊢D1zhvh}xiv;F6Q5|銿Geⵊ(+N-j,[bYvhsdl])㪢~ղOcߴChV)mqu c╲O)>/VRn^E'./n̘ZF*xR%]稵BTz1?(srlY)œ㱛㚢~Z+XcZcYL@iva>ºuv뭷N>}M7c= PV,R޽?{sOe,Oc_6Gߋl~P]7^z*zS3Fωe*nLE*exX/ō)n&ĺsY?F=gS#^T$s3>1r`L;z1/i|<>vha4b1 Vq<.K;4(VJx₨*e*nލiĀѠRqVbxc~[Ĥw)n'EJ)E'ZKb %a%g}\SO=o<#zo}ծ]֨Q#w*|%L(((;vot)9K%A4vd&hތucЧQXlotM\bFvQ iӟǚQ Y5+ek9,NL;gXLqLڡ1xjQ))։ߕ}-M;T?u+&Ω#T!ƿZL^ WJqx8)휕c|;ƸWSڡubȌJ*i/˕"}9:Z;Z*GlvΊOͿs|w ߗ`YL@imvС%9;v[Ο?lȑ#[l|)͙3yƍ+a~OVD4%`A=o[["{J8K(M-X+k Gg  +z b5R rt. r~<3nw]b̂+ۂ_'̪b9ٿvj?X-ޘ_1bx__cn ӦࣆE'ZKzѼyDaqHb %a%jѢūZv^jժ 6e˖|kѵk>}0C=PEFZ@If|~cSfđGȑ _Mş} YW0'׌e-_M+brjK_|ݦxNS=j,^/XnwW}E'5-{~|y읾uϽ_fȰ1'}qp5w}E'̎eWZl3?}^[UN~+̈́XvxF1C,g%/W4ş +RYƌ)_w-ǖS^StOQkŲӡCqG[XX?fH9Kռy1cƔ!sWoͬ5kz믿7FSN[nnf??g=z 7ܰEg cZ;yin;+NƘ 曣gϘ;wqٱc(xƍq݃Eǧ:Ǔe-ZDώzFMS_i;Ή,48bㆇOl<7b4IQrS?Uc~FJ*v]HѠI (kfI}΋͏(6dzYOp{FY?Niw;:W9œ{ŭni+SO]R1hݘ"Y,[l1nܸx~5kV--SN}-aW\q9f*N,Ȏ&\ׅ<|GŁF]o.v3n.Gqb 8P-vi_)RNRK/ԢE +;[mU 6t-y%Qkd~=bKi_/&?PqDOE}osN7FѣAcc(> lP?&Yݪ"n=*R_cqѽqZx% S:~OS.8#N+G8ux5@P[%m8gZzFC=4M+zUykqJ9){-s_W5]Wt<\1:TL88EV4k㬣,ɺDuDkҤĉK9C=ݯ*&l2a„&|ᇩ"gSf@v\u_sk?f!xvwe_2=Iи_)G-؇Ӳ^<7^h@LEŏw'8(}qhY"9'b(XeH%j_$ڦnff͚5'O\^E\p^zi .;/gSf@v^lL;ť'ٱ/YnOGYU֌翌:(n_cӏsL1ck_exq;1蔔]Oobr[Ļ/G'LLJgSR~.g r\|MȄTXŝc%] 8nr reU\I.31j .V,GqǤI }޾gb7âvd]:K@5klرy'v[1'h+қoۖ0u#F<5 cnOi\5>H}㑭m2⏯c#]nmNёxx|1hbk\)~N3z=Mq\lE\T= +&3.RQ ]2KaO'JqxevV5qaaS}5&+jwo WVs%9݉g&QU,&=ڥ.G=q`\ŇIs3{[שc*̤pH)r dSYfu5GAΝgϞy +.B +/~P԰V 6/ Ǖ?0Lb"o-)Mc2o]͵;#ҙs[&yXrV8kdС[($-fø$zl{$yGg)R_qPxVTsv y>(S_˒%KZne˖oVb)zؽWvqi(9,L, {V#l֯S=Ol u>+Hb0pINU[_2 a&n{1|#wYӦ0'kdo&1f~hSē”߆;o¥&v})h,]m=Ot JNu‹ IdNJj..Q9rO~;fLR֬YӨQ7n,**JHU9(LSa^Av MX.pB??Opw«9 +ݾ)`o7rOEu&]ipҷ¢ =~N2fM8$61T_z)Opbݻo/X=QJ, +gjĻwO #Sy%9j =O +W&xGyr=W*B%ft /> m*_u70,ϫE5k?]sYgMP*|+6mQP^^޸qSXQ,(%Ok+]n^W/\~y><ԩM…nMy~Q.-`//ߢJfLuO?}8 f;V7+|qc6q܉|0(|I.{q%~M%O?Ù̻xZpxA{2$,1~M%w_~UQI$V.Pp0&;g;C]rD5kUzmݖy*ӤI?Go]ZZy ++5)K&>A4qGŏ=N=5X/"^x$^[qmwC-|ǡ(xq8:ap158mZ߿s?^pavu[̾sj(?$ <'f!Ty\Y K9L<գS58yr8P^^z( P3]t>ѽӹAWTXQ% jg>cC^˗/Q믷m6VT= jW.)F>B̿pB?>4lXq~pav꽰ۨpFO9%L^O U?g#ǭ_Jbg1M;xIٟ>^ +ēO-&ΜYS31sZq wW f1f!;6hbϚUU' _Oj53MlJ}7'0, ]bGj..Q[lYst驧Usg~;G۷oq +,5eCO-,{=^_(*Q7o͸)?:AIb|ܕ;*qG2;'ĻyI')>jϡ=P{a{{uAFO|?yT3{&xO6#QĵO!ߞ/=,'z=yaG&n=`߱ g[g׍Ͼs8p/}0\]y֯_\]o,\0#Ue˖eee9 +,XЮ]SXQ,A6ރìZ߬q8оuh]gtXװ<,. /f- K.$.z;ƿEuOXS)^NmN,i~fd?\+1}{7 w^IFa'6$ }K/xlu5xרй}ͦP3˵K@&M4`5=X=9O6lvm4Kb)z$?sGG/* +םiY6q3 k£5xQ=vSHǥisk*cMI%d{F DR%\nY[~&smmݺ^z_++hРu5aVYOa )kv/\?4t:=*;_^mW +oH:1s\Ză>x}OpM|B&~?3g *=U@Lb&4j..裏6lq5\p^ؑ`ջ[}wɒ%Yl5_TݗpệOlKӗxā:8=F$fj'v.:-{ o+LbH3Ojv}&nS-Hb86'v?(\|ZW/\A(޽?yw)--QХKYf%u‹gpǣia{Z8ĞmK$vJv63Xēz6fҝ>/y(O41{|Oj&f9[L =O5g_4q %rsM7ݔI&キ+P87Y']߾}SpQ,?/dC~`ݲCm[N#:}*Xo%KHl{vPffj"XĮBd1~PO:~u^'1:@O|uW&~Ωf"Qj..)p]SVV֢ŎY>}z=r1/O<UkX!®.Ww(QDJ$Q% >æMn޼9GwݷoĎy~{s}>)\]ҡSNgϞSNj.]f͚q +/)\]R]vJѣG>:tH05$)\]RC;wn_?9̖-[JJJ+ڮ] $sUj..)3yc=6G{x'pܟ0nܸ&pUj..)yva޼y9j.첟 fРAcǎR˖--ZT\\1jZT= R*\ܹs;uu +4ho4o޼FiӦҕ+WVx׿gQHLT= R*\ҙg9qG}?\g4iҀ*Ku֭$&)\]RM6_sL0ᬳΪlٲx׶Tn9stСUj..i5y>}x7hoj"n2dHFqDUj..)v_}9 +Zj5wܦM6]vk֬RΝO^\\\+)\]Rl˖-Gy̙3stiڴi/T3`m/i駟nҤI"Uj..V^^޽{ +'аamذGTRR3ϴjժ)g@JE5k{u+ر>{W'h3TZZ:u6mTUj..Uz{iӦv[^\ij>{ '[^NZEEճ ˵K@-nݺdroԨQ-[+XK/4iҖ-[ڧO[oQF{g@JE5kZ>|͛s;?𢢢6nOz *;v۷o_ȣ*)\]j̻>|e +͚51bgN;Uj..֦MoqΜ9yaÆ 8Ayg@JE5ko޼ysԩS_~/y睏:ի^z5qEճ ˵K˗O6_^pEʶnZae[nݱcnݺuܹ~ 5*Q,Hrkƍ|W^v:u4h`w/))fG."Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*\@Q,HryDճ ˵KUj..GT= R*^G +endstream endobj 448 0 obj <> +stream +x{\?3*Zшq["K[=HB)mіVHԵRT)6ڠE]MQZj==ݙٙٙ3ggf?=9f=L&ÿE +g OU[qhR-| {M\iN*/Ȫat0,\kT5.k]~ìuRi5b/u]#>j7ìQ mFoXenqOh{ZM?M(;k0 Ֆ'r?ZqſEI[₭j$ 6e'mYn~Q>uyWF_ԽGp` ~P9;9$\zC>cܜœSjN#fVxg{+zd9xrs +skHs!Lo3aY|KBԾC-Bg3bsެpNtW؋q%SCKKNpxHX^>m˪xhqWXmPܯDj#J_ n{*\>׺{?#dCe]5=L.ZͶQh}prPWR˸&kK .-L>Bʞj\ +])Wr<Xƙh̕%LJw[9~gכÿ?1n0AO`No w)$ +L96SZpR~? wϽ``{4+{m& {VW!+o62~\q'}77q֝U^.M? =~oe;]ŷ=/;hM'8h8'EC÷ ʿsgvٵ&hhĨ0v_B-c(Ď:o:KY9 EC )﫧oH踰&_ +&\W.pϻhhv8hIZ?H@pW}\-$Eڨn9ka־99ջ]w԰]S\VV)蘂(r NPtʃݢ_2 |!}  vۖĿ+ǟEc +9>)|۟ɿ`WUՕC<fß )ArStu {ߑIN`xZoowE=p;RVtHuϋi~ #>Oõl~ӟ +[9 *i O5amPZV]I@Ӝ.㻮6+~je Y/sSz^z%dSOΈ>SOvϿ]}hS`{ g.}|͓>q : Z49 G1fbB +&ZNweeO ɒg0}hau%U|OSvP乥}zPޠuvT4!_o+?[}\㮯Tt늛 ]ũ,\թWS]=uLֱ *+ ҝVXV? 'C&OUf!g^4$4\|z'v}Pמ{5~e]twZ4/$`3rwE.$ y}Na_TsK}ot'{I&N-QoSu%ʙ{ӄg(8x3i6.(o60tWU/Ɲ: +9*9o}{Pߜ~Tlӏs֮?~AOqGт?9=.@mi=jKw%z.+ILKHkVeqP;8vi +?͇ܰa} ̄iKWs/qKot_=mn7#%}ҭ^O j_,d )_tKgڹ//sǢfZϊy}VCp ǣhmQ4}Th~X~-7S;7;~A>.%QϾU{MjOKGΒ{5{N&75ͭ&4)k}`ɹ -4heUs{iѯWS;B9Esf Us4lr:~ĒZjUP\WxN/t[5_Te5c.=b -`7u`hyw./{5g;~E :u;옉:.ߨJŹisBFqawU~>H0|]I- +΍;.Ú>9 kѓܩ?.j[R: WX4=fٛuY?Lժ},xӆZ߻$m_@{/QLs%`%vj1a5:$`Q$ +`ڻLpw~{do .m\tZ>kgI@g +`۸tp'Wmxnvρ:k1@'hիJ'OA(%^lxW#3eՀNH'{&q +%` =6烀FDMtz$ ({l. zzN/Cͯal +r֊׽mfpeՙ̳ew.{lsWؽ+G3%] >W)QK(_E7<0y.Y0nKXA@[vϦ׽ {rǫ/LmTnVƗ_N|ƒ &̏kRF;+7Ys<9m5$LcAPp?-:#z~aDsīץmT4i^{R5~Zt>54|\$ E}1Y{lsT]i;#}$Dpܾe[mPI$gJ:֊4/h$ + |<`Mm Z( J$41hE' jp$c(ZoDo{[PM dXUa$ )\Of65h ${$ ?xE[l'kdLq0qWi^k*8Ig$`l-b>?;'y-!& x%"/# 8󋃚 +,Z+;z&u߬E|b$L$ scW5;h o4. ֖|NN㐎RI˿:O{VZ{apEB'MN_.Ï̟Ɵ3wFa ~XDsJB&MQ}I:\sfͨNHV$3(_l)k}쾀^lE} s uI@ם_uft S1g_{I@Yt8vT0aH7Y{ 'T* }gX* |+*~IM?sXRP]3}t8gLQqw:+(qXv?JQ|%-]N?}ݔ|,N}QjҎJ_+]& kצ'{|'.Zߔ\9s[8 +8 vnS$ sO׶mR=<d6M@ 8%l[bMK >N~k$q4KhQ[\nA0}5+ aJ哀Fk`ͭ;8 wAp`U՚yssZy''= ê֤$Э +WH2_cúpTnH2O瓀#֜$`1k TJ^yhd;sFn|KɞI/)Iycu%rgfd~VU)I@ـ >R1 ~tnlqcn50p$pO*׌$`p*&vhDέdn.d~6}QU^XZdzO͋OG `~vعi* 6: fXpoI@CaQhȮj\$`YQtH4< "w+5k00͙}(? K'S^~j+68 88+I@fIag֖{G`$hlm-۷ޓ̡a(/lghN.=$`QȎʮ_}DCd? Mf)U$w壀̮%haZܑF&/: cM& |>DnYWKŽ.~ndD}ɏX}$ (/~odv1Q0qI rӒpP(;$`] +9&n Zc] 1o a=I@G;^Y~VuI@{s +$l Zq]ޏ,kTP$FUR| `fעwh.kP-Htx*>_m[KJּ;LvUX%݃$ l{{UXutkiš{ve׊—mW=gD}~N2K;n +t@Eşx̬> \3{On)hevvm[$ sK29m5= 1zy4 SS9xJQSXKW6\cQmo ,fOX޸5S +䪒=Uv}:M@s]޹̝_qh$ ԋ7TQxb\,!|xjfW\;f? GmC:}@ҹ]oB:,kӫzIQ44wWq' Juh/po+<5$qik│əj +koMGBǸkvc:qߛWLs! idCi$kF V\)+ m7ڃY@[Ec)=48$Ҹi{EW/n|<h/ʌM! x0r=|d\߶}!S>߼5j<&A5 (LqkstWY?n+6] sk=jws({@+w(y"*x !kv8s br##ªK˟׸'ynܔMmHGnmlX5GԻuUwBݯ$=6kƮɎ ja"5H+nofd dK#@;3M^;qSh1]/1C +sh +@kX5ȿР#: M%n +4~`@y&H^qWы:~zj|)uˆaռB"kUg72gI}U tA@bX5/L^䝸5߅kLo +wuVaEk|fNU}56aueZX5(y7E+W_.wsB5HU}ɋ=\}ug}iTxX5aq5k/s٭@#'&/i\k~VżVͧ&/rT\cXzOvov+bN ?&/r\ccᜎjv+b +&/Y\cNzapN7h1U6ɋ|- pN_nv+bVM^Wqy5VS9]VŜV$/J\cRzpNhv+bn uy#1-Β4nZa|W"k"ǥYrvNov+bLzO"Yr V<V$/rH(Zz%? +Uɋl<^g]y٭@9>H^dPd:K΂f-4ޮw~(Bz%w{hgH[smX5EuQ1nZaռn"CB,vf偰hȤP{u$%>Z +ig=-Β[9<^&,O\cf~[K|?6h- +Uj[Kl|pC{ܒyQG'([b#[337B0ci{ֲ8y~BgMiT1@& nv+bEq^}5.^Z:blf籣n騷y* h ]l;1?5 +endstream endobj 447 0 obj <> +stream +xwEYDPWDD@C)b+9+挧,"@ 'FQ=slw=ᩞ}#;~駫**ZcI;4,;`pJ`uh*סVM88q`Uиxoĉ&E{ N\hVRM88qꯙ)(ڻpq:_sQ hQ88qk͵D% vކ#ס~֑Tu>@jT88qmS9mXuh}MwFjm,qq:ձS5K] +@uu dټ@oĉP@:ԕy:@+"CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФqq:4i@MG'CĉФm9 -._uG85Hz|Q $J@b@% 1T *P H @$fi[$DdReiLo885ݒm3y=qqE:tˤQ|RLz@Iӎ)qq[&wNz@.I@)rD%J#*Q @9rD%JQ @9rD%JpTPQ @9rD%@8*(GTPQ @9 #*(GTPQ J#*(GTPG%J#*(GTrD%J#*Q @9rD%JQ @9rD%JpTPQ @9rD%@8*(GTPQ @9 #*(GTPQ J#*(GTPG%J#*(GTrD%J#*Q @9rD%JQ @9rD%JpTPQ @9rD%@8*(GTPQ @9 #*(GTPQ J#*(GTPG%J#*(GTkZĩO&&= N3y>qq-3yGX5qϽާ=ثA;48>tö:#\~(;w'tr'ܧp +S6;럑gg:vgӫ  +zw~!?1/,H.Yu%t͂`P˪RH.l#G]~:}UEW_sm u(bǎy_3fP㯿jB=_yDUϾc4&O5't)[-X1)OKz\>w<5஻gW9B({RT:;.'k:^Z1yp*^5cOWYATl9߇Vc 8rG?R6$6z?Zsn4:Z_(1kեjJ)C}>Jl4׺LJE<`gqf>mֹ+=?(̀ƊS-E6^営 Z˦WYw;~'FPr2վPuA<njka@79ry~ۣ:;w><4dU=(+''޾[>5yk_)?.`ű̩c6wɈ%=>@Nwm)u?ܭOZbkv"x z/ JP7y+cNyy,q4._`MOMVw?Xv;NJ)a4tM23|Ӈ'[DӮ[oi3lB"JE̹֭3?::SN2wvm}|w|yz%jR[7Mm+1/_7DZk` غ|~iY +ŤMtr̗>;p]=`g)N"..7}jʙkvi]ޏ#xBXI n蕇ɍrNᄚ-PIgzTԔSݎ7_ :O;Eo.(=M[V// r@;8,&@m[6vnU3%_ݲUL3}wO [_~FWX$X)M=kǸVRl?ijsU4 m₨kݓgy (S,vqA4tq^HTRq1W=&*Ǧ3Df*֟zUN=bo>0]h;yCgMNP2wc/ݯ%06@ꭺT:`a¸)S`ys( iU/B]%n9SlwICqe1%DUGrqݘX.O iV6sW3VE5SJ@&Pj}9*Ptm)=^Ҟu6hg`F,6E~pw m:I~[}wHS#Ia`rlۻENo{wf>ׅf}HNrWPwy#G ݲ`S Cj +3V3U}OY HWH`nqZsM,v +J|Y߽ixjS_ϧ͹#&G:6@WݜΉܼm Yo:;V`P|g,*O}Ӝ5LC"^E/ t;q֣I`iĪzl]M\h}̗/-Xf:UV0b7?u -Um0YEH&fW} ]bE ky 6g.},tŐ]gfoT6 pVHZM{ 4آ t'^P5_iDH5y1(c{1ZZdN7æ!gRBMilJy6 oFob1foEm'`ͳ[UO4n VΪ~.{;3B6+]bY -Khw՟b`IL+{4m,fU͡VCI{[J晘MYk5i5C#'P8р6Uj @xV@^>R qety7.}l;)%$+g +jHE \j_>aթXTOȦvJx~潠v[.x?=Zі1Lˀ[ݔ?Br>;옙cbߠfיTmvzJ 4 n{c`a''?5VT5%AS-Fk >mXCR֕qgD P@sեO3׳3;aL9'R ht9CR]e$b+OCpKIvwt0d^l9椞2mXmgz7si6$w TG8Vڙ[Wg)!N[9HkqF J[}ʂ͎w lw&A9yoL_X fO5k{E[ fssfY4ɷQoj`X똶dOze%೑&LJ5~mZy`CԾrUwyöorj +~Ǖ#rX qk!>NX3,F4]n^Uhbny.[ +D~_ѿ6B{lhS,GGLಬMcS߇6k{IlIujm?UA-vͬ4'w1L*?]s6Q(MSZQU_6z}t 4K}Yl|n҈VCatUj>lhEgZ!VsX.q&{og_,'Z->~]Q(IU)}Xx5σĈӊqn1?я(&7&יksJX?*unxPI ‰/+7A` +'VɊ~b/Q2a[1k!*o4 Y=irM!kTMͪouiޚbݤ)8Țye6X bVr6~ ^X ㎐-&~5M0@lHI("2}4IW(z+7.JXgy2 6X(1 kD6"|ב XM걍J!\A w>V'f[ϗ[ {dMvV coi]*]``Eō&d$fsg& G9E``5gdQNl-XQq i\QA.Yz^iۢGMb%P|(;eHLڦs1&y6WWz@UemaQ h(rX"@~su"Qƈ%Sh*бr]ˏZ.':>"]JU(=sex6/uCQG{ׅ]&4+E۹TȻ\@j? D"~;~fQ H]|KK2֢@]Ib+c^1,4):DpC/m"%`)T%HXgiNF?D%*`ozzs,*Eàqu)vUV_տ&bRq9)Y9mO @zAgiZ Ŏ@:d-d?G'"fH +Q|E%@,R1F3`e[o "Rȍf/8 k0dVz8۵1ȍfO(=rNmڠEm<fHS+blڗ_+z17=GaЀMu+LcD +WNS,f@V R!|m^ίP%] +tҺDĂ9:0|wD6Sx\u֭ дF|+O}"EQlm:|;ݧMkt)jvAؼͲVJaP{Z +k|()Ĺ6Z7[nn? +^ys+ }׾2Y"˴91&]tmtntБ=MN[f\ְm,b!׶\!WoiwEOMc*3U48jAC9<>5y|ODx0c6Yyk\_ @ddV?'Km 9YYTqcz^}c҄DqdU~AKM>rGRVζܫo?qtS;tp17ݹS>TA̪'&^ܻ4Ja"OPpKԺ.th}z -E͑~GzL}ߗvmjD?%!q&)3߼~%gw*5*k^g~:n\~"-JLo|~= +*s"ׯW}Z~ͺJǕ9߹el1^ >^O'n!'vKCMwPds|+@A\,90҅~e#Y. YřU%\O–J҇n +OmX(R]"jX +hqGm]0[dDT;15bn+SZ8=v՟>5SP5C4?񿙈:+_ Ru$˺7}qu Qޖd7(v_Pꆊ3:jxZn +lH{ԝwQ?V@-𾞯+G'kwCd[z&:Am\)Ze?۫GrSF[رu荰>nZyb^ȽCԻV|.?6Jԑnw hF֛?V@>-u%Soe1hޅ"ۆ`4rƲy3.ψvE$瀱25Ω[0Kv⻪Y7_@⻿>6:qx@.8$hi2;(Rjs~WՕ2;7Qo Dpȶ˖Nk̊ gy/ #YODVК(:/CVW:"j(GkƙEP j5[oJiDT h׀myϫJ@ls>@D4"6kfxۯr?{6yG)^E<3-`¡~TY"0j5q&9E~l|Z񫓾 lL&VwW|7VW^>3JDȶEM2{ +>kGL^-y'igS>Ƥ-e|ʧb6HQ?Y@+dą7OŌYLwKCv0#prQ*/E +_p]W|RWy`ZkS5ODSdۏs7N=St1۫fuo@HQW@~.x,yC^o |2jS1w;HULWzˏ @I㣺8t\,iZ׋G+oqm Z%@\: +Vm-Ӱf}DĄx'Y1>7w3:jXCeUkeUW["b>L^UEPxmw?1_Q+#oAՕ2UO&ڪ(Nvs qdz$rό[d_uUC3!j"20q&W l&?6+s~tx۬aW5"i>ͷZ+_E.VGQOHux빯f6P=KDdu{\}ޚ1/8农sユbL`E8f=0Zv= s+<~Q3oBՙ)"כ +mNm=).28(wsze08Rlǧ#WDOq&[9pE+床Gmgꨆ"j"(>ervr?} "׷SG&0R:lpH+}%'GqTDwy`mXO{G)/̀yrJ]ޑʲNJiF;q׋řXj[4wl&e'<";L5+u3桰fJ"_THQ@k".瘠s^,TEBD.ݺ7UH??J XYE"J='@S#/Qosx@L[D/rruO"Jv&׿6Nd%q<(f@lX=%@;q賻K,~}M t {<^M_Q_'?#hA U!H.k|3DWhT:OYW^3[XM0a9+Ǯ*JcK{h/@c6j_(Ԉ(ރJK?1^b](-ޕq;QrBKuJ "Ҏ#a6@"N_Z53mר-FD.Im2=S{&Z׎bW +3Xoh~Ast@a ,7Z*Hn`:,fJ}%`7i( |6Wdksh;P?Dze]])}+a)ŏi[Ĺ6$M] ݺn6H~3aj)J"kʓm͒߄}XEh;eDK?յZT_ -rH>1'*c5򇚰d3^)bzDl綖%Rt}s+Enڡ(9se\f0wTխp,ghEk 4@\yn?9 J.3]Q &",,D%FOe׏d'ٶV\!ReQ@H)cV1ut@gRHlV@]Rqnv눗PElMW_ȶȷmM 9/>/Cy\g Ԗ c^$rxGeCPbv1rKcq;{qLUp9kF>OIޜ@E|+^:M9mPlrMabڮrm;ecELo8(nvrmv!厞hr99  +R#M)o!Di֍:'ׅ>H ̦R("U+քt +D2]>rb%r^@]b X? Md~I{$r.mȉmGBԁ3+,SW'Ua +MR-&$~LMź"װ +" TN` JE-i:b<ˠf,"XdS tAY0ŷ$L9e:x_? Niw50;z~ź7׶ 45aegsY:|:f͜m*[RgS ?S{tPPM-GxsU 03D16)4rs U<#83jvkJN]ȫ1b{ ϝxso;s1$^_]lT}#­a2G&㱗wKTl^R@7&YU~x,7J+&11fM }cD@F/|Ej=n&z@T2%769P@Aޕ,L%^5/Dsl3-tke&UK6b +rcZabu$˛|ekqi7q3u}xbty`hrCBb}:u=L5}.mЁhrme{'4|{ mP +Zl㹺 ߶2>çIwtێL?n *yª[:q[x}>ݶ-&(E amwhk Z?}ĵWG#q4׬sXV抝ҟ i|F +5)~Vu'7jCC=mh$VaD+r>WYN@;e{ROܴyw<,#uEHڀ}_7~ TgY cizit~T{WK>/]4e@aS|ۼ}lAm0붬o5 %jr$~;viO;4@+hf, j۲GV3w n:myK + ^dKt6{#Wtmk5n aNiH[Չ\q*`-ܖL}VOn }t~4"&s?9ӭeN1b`[ 5cCnPJb1]not?Sֆ@ufTЉ +I_{ۮ[Jb# +}A]X %)4eX~tK6vO;f2%%ƺ~1<6n +1P@iI[ӻ=iAݹ7ZS[jY]M"m$+>s{xJXY/|X<2!/c{nlƧ#`] {=86Yk! +h57)"|]D{즉nwA\~vz}NL7`= 8&V{i +endstream endobj 446 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4106 /Length 54270 >> +stream +xwXbDADA,;v%KlػF{]TH, j=bW4O̲,ysy~g˔?3cG l׮}m۪T{nڴi>|Э[YY}^xqz3ܺu+ ʔ)sEK;v_:}rةS X=sHHHҥ֭[%[ZtiB7o6...$$dΜ9(SG)i˷$!:۷55k8uԩʕ+aaabBٳg?vvv|?P˵"%::GW\ԛ4i2iҤ +*ҕ}-ڶknȑʕS7~ZhccҿSUZ5y=S xby]\<==-TG<ʈś7oƏ[[)SVVc#39 gx@Ν7o,;vLoxx=|pРAڶknȑʕS1ݻe˖IIIţG֪USƞ>}:::رcb!H5Ŀ 4wcAÆ [`m6j ߟ7oի_~\)RHNznoiuܹnݺ[_nE\:w%Ke1mڴٱco߾MZx2 N81.../__~nnnS?^PB߷1\ϟ?_jO>|w;;; +*/_^[lY{{{s4鄅 0 &&??y?pԶm[YYW:}:8x`ƍł8U[l) Dz̭iӦЭxxxoɓ'Z]AEx1]|s.\HXr}~嗙1&ǠK&>}1c4/Rzu݊[ҥ}||n7otuu͚5ڍ˭[`?}5:thѢEn4ԩ3pf͚ed#@e)**ZjEرcN|||(cg̘+W;w4ѹs YxqOĂlٲR"G^uv;P*#dL?~}VX\JٳgW^]~={w! ۶m[%Ŗ-[^:_|x2W^%%%ʕKFRtŋC!!! +dWUR%'')S|?ܹs򺫫az%KOj>o޼5kVppw+9s挈XjРA .ԭ4kl޼yޠA$q0߿_R,\ʖ-JK P 8|p```׭[W^=oҤI}mOXbE}ɓ'۵k7~RJpʕ+:u*E;vl޽M8$&&nٲe̘1>ʗ/߱c|||TiH#F3ghgg'&L|E4#ZJu:u̜93c/lmmM;C-GkĤIꎎp?8P xՠAf̘$Tx;wެlٲ۷o/Ye25j8q"yںI&&|@嗔:88[C&L޿uiӦݼy3m?qM>]ٳ >3ӹs͛7F:u7o^-U۷Ogvww7ɀOSVj1ףGk*UJYdx,X`Ȑ!˾;v0Ս&w-ZަK.˗/ϖ-eZ2#GVL&:u=zT|޽Zj +0}ݺuׯMuc77… [t}/^ê pBd/:}|xgϞ͛wΝ5k4-Zؽ{wLI=֯_߳gٳg̙oy&***⓳gϚnժUgϞ]P&dɒ Iv_Ǽy wǭ[,ODFF=/ʔ)ŋ/ܹw՜9s:!11pO>:x`Æ =w}'O Bx=z̙b``-Ds]^rqqy޵sݸq J.}yuc ʵn:44T*ww,Y2݃m_hx@߾}/_. +*4|dZWTT/yԩwޥu.kkE.\@NNN>qppȖ-W+WkS[re޽%ܹs|3bzW 6lΜ9'} )SX`"ͧڵk7n(Q"}cS/Wˇ\P ӹ{bb޸q,YXŋ0@bŊ]~}ӦMz/_.:s/o.WTi޽Jر-[$Esh"F!\r̙ӧO|ܹYi&&&b9WdIooo///vky[lرJ< 66PBzW,XÇugϞ-_޽{4=h? j֬9gΜ+Ŵ{A"E$Eq +w%IHd.x5iDÇϞ=ے )YrΞ=kmm-GX=V^mM[n6l+W믿*\q֮]+)cӦM/^nDcƌ 61[["Eo9s4~LdǎmڴUܹ/лj!!!'.^(.򺸚5jqw^J,)-[tɗ/ߋ/a#.ݻwZ **#dFIIIoֻ6Ǐ~~~.\л6<<^zw-^xbbձcjԨaMgϞk֬Mӧϊ+$EcW^ɕ+ײe:tD&L2eU $Yd1W۷y撢*ѣGϜ9S_~[!*) .} +н_k޼yAAAvvvL˟={6yqơ8S dP ;v3ʟ?͛7-s#ݻSzVw :[[&sY{{{ thrz{=zN: y䉋>|ٳ-ٌBnXlY~͛7w߽{צM}9Q/_>AP 񣛛۽{͓'ϓ'Ox&M]եK7J˟;wN,ڞ8qrf "^Ho߾-QÇ]\\nZZ5#5jԬY$Ec>>>W^խ888L4iĈz`0o޼aÆI"##k֬))Z>]JΞ=gfbŊit~߿/xߍ 4;,wdpxy}Ҽ֡C4h`U%g˖իEڷo_͓K,yܹYI1bĜ9s$EI<@Xre޽łݬYl~ +?䔔$_դIu9::JK, + +h8qFcƌK.}%KvܣG\\\4U"I)!V@B ++W.ͧƌӧTRA}vS!@e+""~)]|yfrM]5eʔo6/VR%:::y_~K,1Kf3v3fHx@BBBٲe]믿{$9L4モSlذ[n)-X@ѦtЊF:tH^;wСC-ىrO>>F> ,2dH֬YgϞ-.VVVfF<ʈ˗/ɣٳnʕ+wU*OOK.988p[6mژK0a”)S$Ey<@سgO``cw!.1_RL5_ܹ3#FHnv_~_-ْx؛UV-gY޼y_z%>x`$?^@yx͛;w,)lǏ7ǻ&8qDq.iLլY3222yqk׮t2@VT)%z%Kڿ&M N:GM^Ε+ٳgMۡLTA<ʈZn6lؠwULL===={&_զM1?^V- +*DFFfɒŔ]Ǎ')_n`.S۷y򺓓SxxxJm߾/h9sbŊzMիW9s׍HX".D7nܐ + }޽{'vK??eg͜9sz.].]#GU2@hѢUT9y&=z̙3JSzW(QᅲR2@ޠAI3njwZfMݍٳ*UJLLVfΜ)>?СC%E={JŊG)>\@< ))%66V(;w'յf͚I.\+)Z2y~ZR۷ҥK-Ӄi}^^72 ?r\rOl2G3f >\; +N~X\K.ɿr [[[ݢqFli !A,X`W lٲ%ǏU~*UX'8u#6gJ޽/_nO/^<..Nصk׵k(oYjUr9sfϞ=N2@fW|g&/[YY=zfk-[?ϻiϟ,YŋJl"""VQsZlY~$EaÆ ݺuǏ?ydʜ9sF!@>>>Zzu=1VyFFF*U*]ʕ+{-)}p;mmm/\cΝ;|pf)^~]`Aǜ;88DGG+W._!5k֔h]vM~;;tХKȯxEIqڴicǎMGƻ{nڵ/0yB@߿yFmFǏ7m{Zrqq%QFoŋ0@^ٳ J"̋x=z4j(2`ŋ-[ܹsgLJJU։'tǏ/VX45kSR4tRy/ܺu*&x3g9r+**Zj"7nxyyI<}4 իK+>,Rf`kkw# k׾sX.[O?dڄ@߼y#)8rVY#&1hР JVVVoܸqZG[TɓǏ.2q)DIŋNNN͛ʕ-9r#Úu R?O^͛7o  2DMJuڏj'O;TR$ᅲ(QBRLG<@ HhdB@*իD7 9szJR4&0y'j?:;;߻wTɉdɒ)"f4塂NGេxWPҥKuXXX ?cƌcJE9r䈻MN~kN^ `~ҥ|Qؿf͒ .|żyW={|b?~ɒ%9))rm߾}kxÆ 7oZI+)?СCu߶an~X~Ç9«W\]]ǒstt(ɓ-WE{{{%P`vuTsoGƷvyMê@UzZzhggO?ըQgŊzW}7K,5im6yVxЩS~A2p@e˖O-yݢ۷j … ?~XRL5кue˗/UVI6K\fzJ*)iIk-0TF<KRf ͚]'5?g 4}԰{-[k֬޽9f|]Ϝ9wml"ved<`ݺu:˗/gɒE[Y|y߾}%ߒbbbJ($.ϟ_q___I14 0;,@qWXQYrLyѓ'O +)m˖-b +;;" m/oB7oްat+]tٸq_͗*UJM6}AnW_>cn֮]keedL*#L/!Q9L3k)~lmi][0ZLLL +/I}!!!޽{+V|޵ ^~}z@BCC[n-)xi"E9|p@@+Wݻ[x#̙$3g wҥeJ1 ''*UTZ]ɘ<={u)V///2e$/=z̙mnݺ|~-[L^;viӔoÇ%E7nOrΜ9Qjcǎծ][RJGɖ-_?t 4hJ;.(((9% *E<ʈ;q^4KsᦉLɟ#۷ϟ[hjccc嗺u{NZ++O>=}+k׮VZIFΝ;o޼Y,L}(߰E޿_R4Xzu^-Zdd +*V^}reכ5k&KPvp%2eʄ 7nԩS=2Lx&&^3xf.n^ʛSl]}s޽)*T8zh-۷oofH%K4lHٳ'00PR4>5jTXqӦM֒k֬ٳEyС͛Az1777Nd~f={C>˖-S8EBBcsܹ#)l۶}bA-w Olٲ?E<ʈEvr&1)-mm4u+ikj~q{Rso]G575旵inG>}qBlV^ݡC޽{?66V?(\6mڷ~[dpWWW#W_m޼٘sէOj8nnذhxƍ%VXѷoH׮]+-YLLL%Es޿߶m={$trrGWR7cY>0|sj?:88SrΝ[jp +݇*Wn qȉOR40`ŋ”)SØ)>}pUۈ3gN[[[GOz/Z~4ҍxw䌦@ͻlW3iMpMBb*[~9B3ŧhTaaa͚5KJpΰafΜicc11{7n4r{[[&MC+q"""ׯ/)*od< waڵ]vo|wwwIѬ{t$$$P[ꫯ֯_ǯRJ +gxbruq1ٻwy-I@<… +X&A^BO<<<S} nxH;5w6ٲhu b)n= f4;h39ݺuRJ۔իu|u'O\vM!<UV￵''9BRRR~VXy ,زeVZթSDŽ7gx{tw],)/ yo 8дiSʹs rqnY߬Y3y]\K,Q81J(K)\P!qu>}ӧO;VzuH#@e@z|HTgP)boO^SS!,AD@&Wj˗/][X;w۽pubҥ\\\ɣG߿/Ν{bC}w&MJGbuJY(x@TTʕ+uSp[Ju?ŋSwT;)ZdK37@W|ڵԩ?K.-[6(vAJfYtis:TFJS<@8x`&Māݸqcqespp0"xHqK5`HGͬA[Lw&p`9IS4ի-Z\p!_C\\ e˶z_|{ШQ# s'>|*,K,!!!&]C&%,ch>ʕS2ѣgΜ)۷O3\m47|j*}4C S{'O!28TF<ٍ{5?_ke=H3';Nb7 +'z#!:lܸfׯ_oذ=zXl6Ǐ7͛[nm?Sv^x&Nwߥ o&֚JX[[]VG&?*UJFÒ˗Wzꑑ߿ϒ%K];wlٲ:vey/^-yQ&x@\\߭[IJ۷oW~u3gN``q̪;vسgOJi@<ʈ4k9kkgiFw3˼qo4uh\Mqi:44Ԁ٘O͛7d%UV-**JRui"(UԵk$EɓիWOJJ_|ő-Z:tH\[O e&}.]4yfX*#&fB|goMΚO,/@.Z[l$73&&&F>TBo^ZT' k۶ׯgggի+)Ç_~Ν;SR >}||._dX㉹^Rϟ?_I۷߶mXț7 ot.]$.o޼Ihee%TX *#Ҧ@MUCsj&y< IHԿv{m=6?ZjլY\r9r0}JN>-)n۶).\8lذmQF֭+X`#o~ǎɝ;ԩSԩmee֯_߿}mڴ XWKň+JŚ"+* "@#Xb bW]byy 46T&|ݙevɳ{=wά̬Xaaavnff&0h<5kdMLL>|v޽+7hWNzYF^ .]j֬|˞$++Hv~yݻwW~֖>)mXrQСC7mTzɒ%;vTC#nbĽW^]@PH&}$=]Gi\Oa[J-}c*?F~… i0keggݻWI͛ٳ6]=IIIC aV.-X`„ `<:uR@ɵkf 322BUR%==]s#BBB KKKsNݺu񠠠9sݭ 6v#ȧ<쵞ѣG^ҫEu(3gDDDpn#ܹsCAPZ p%Y{dFrHHu')o:@Uh$Z^yׯ{Uqtt\n/233߯ѣ-ZTD R999K.6mZI&͝;WD/Xx({#!*q<@+W3FZ__?11Ɔf޼yAAAo޼133S/ѣGvʎoݺuРA)իWA[Pt阘[[[5AΪ;j]f~72_yyVW&$ `l'soEfn$ڠFy޻wǏ~w ,6lX >}ԣG'O*j@nܸ{bed{QN:eggD4k,>>^IMܾ}ښUOgccs-q-Y,,,`~TTzϟ?i$v<66~קP5JLLd$%%fee٣Wa̞={ԩB*"j׮PT)m< W \݅=$̇OJGǦuݒ@rB233{zzΜ9SOuܹsرVZ"&~SSvi.˗Qٙ&u#|޳8 +Pș3g +NTss7o)Sٳ^z#K7xm۶1Ucz7n/Z[:tNcٲeƍcMLLv%O>(ZJ]v9::J9$e(m#7@I;B$rutH)RLHy/_ w^ێ;.\~:tܪ4uT_bڵ*999r_=ׯ_e?~XdI5:cQHn>,{o߾={r6{쵯5kKѠAWס +_@ƛ7o +"tv*hR>!zQG=փj۶ŭѡ< WyxJ1"=y9Kڍ޴!,h$%;v-&N]ְaCvjtYNvubb"c;~8= .lRhojk޼y\\#(<_щtrrً$ry=RRR2 +e(^!v7Eo"-SG5pabGyyy . + +VgիWHHzK̋Ǝ|r\]];eOOςիW߸qc۶m&\ZL5:444dǵ[hѢzuEj tttq5jp:t{`Q.P˗\Ope(^ܛ"xV#^ݜ|ܹsMMMEIɓÇ5J%Vym겟о}p렠yWv͛7jJP'Orrdddp>@Y,{JOц y=Fo޽ry +j<֯_g0.xL͛7%RJ0 ,,LhWaooWpܹ֭[G,--KP3;u337ohe< @P9MqutH.stNA8%HFm'FI&k֬J䔘8qխX*=zUN:;vtqq9yd!ClٲE f͚3#Gl===066fǵ[x₷tz1o޼ڵk+Qc._4119x`vdo|RVgϞ?tϣxIժUeutt^zU<|Fxhh7~ +}Wܗ6(|l(-Cyr$½ER@mA3#]i>>>vb˖-믿5J233;v!{;|իWR]J/^-,,f͚5tPFvڝ:umVV 艱g΅le߾}A xsɒ%qL:uٌ`%zQti%;~aΝ=<<8ۿy ӭ[7͛NNN<<33Tcǎܗڿ?@:JtjٲeL ~Ojsǀƍ_|Y厜pQ.055}VB<  m}7H\@{|P__g͚3ۻw|p7o_|M<:ub|VZ>s|$%%YfO>eǶmwFgdff?ۧOLLLq̞={ԩ^@OOoÆ Oŋ?){l2N8q…`J?#h]p)w<{,MQ.(UTzzVB< ˕ۤ;حҎo#擐V$ysod&L e,Jtss7o&;̎wuϞ=gT(=|0<<]\8111g]|ѣ`ތOxǏK*Ŏk<`ѢEVvys9w\˖-}ܸq%׮]㿯իG>=Zʕc|;ǎwD֭\PdIz}ie< @P}$e u*h8f̘+Vl޼ӓў~en:SL5k1Z]BPB/_>.>|t[wM\'OTtzꅄ +ڃΓ'O,,,ggg39rQO-.^]@}nݒ-[ŋJvttd%tR!gϞ3FFF (PZ܅t'k$ !Y٤O#jIC\<HIo߾8qƍ"SNuuH9Pnnȑ#׮]˖-1WK/##{YXXiboӦٳg9ٳ87qưx FvwU}\MMMq>411K)qM>~ąڵk 6,xm۶ȑ#nnnfHj|Aa{nF0""Y^t t$eԊ%J|Eۣ^PZHr&#nU$|4\H +hc6BCbAs۷o|-;w\޴i?}4kH!򬭭䃣G/֯_OgK֭###9{{5E߰aСC97M6x&M8iiieʔaǵ[e˖!C0RfҥKgdd8p۶m|v3fʕ+rʽzJGG^&.]b 3EYj#9$ŋךz 33Sۣ^PZk&2e ;HzҎ ɪܛ  4T痘({׵k1cƴnݺ0*=x;wߥnݺr,8sLv#%KLJJ׭[إUVΝSݻǹڵkuao;vA%)Pe-صkWA)bcc+J>=>}g}oܸ{Ϟ=J”3gd5jt%{]p^S |rrrA]]]x@(<N$ܷ&~_$̗LRycSj6f !=zw_%7˗VZϟ:FFFr,޽;㐧M6c Ç3viٲ ٣G\\\N<Ɏ:Ć.]9rD)tZ0R\x^wʏqppP---ًoN/=QF%H”Xߟ,QDzz:ڴi\~]a֌NnnVB<@:NJKK+UT="Wv"tI19ܛƹ%c 6^0yso~]t`˗/v|Iرc̙chhW֩S';; baadbb"{2b^-ZV/SSS97i҄իA釅< +N4{ٲeq?~SN`1-ػwo>} +//V뽽A===z”+WNQ ҬY3z62)^(zMYYY)ڋ~[mۖ,Tnn.E֡<@"VZ\umAyෘ4e(+0d^$) Ǻ:on݊ӧO =:^n޼z}%mTe*^+Ly=]zQ{988(yѢE&L|rFӌȑ#ݻwfffq-p~XRDGGhBSRR ֨Q#99Y۟:u_B! մi˗/3)7o^PP;ٺukE{9s]v`/ӓ~< ӬY (A~Ľɨԩ*0fo$SC7կE+JEGG~ZI=zj*]5j|Y~]]݂ȪUFF>do\sƌӦMSHor~^-8#(eyX)޽[6..iӦVT)33_dɸq 7-W򀀀G(;vU^'OС#X)3gΔFy@V^sa_Z7!k.Vy/D]5;"XlٲLJd@ҥ/^-Q< ((h޼yo 6l(&88Ϗ#cccU,$$dĈx ^֯_ƍ뽼T&ΧOh<ŋKYpܹVZso'M4w\E (KJJkH^@O׍7rssS;u򀌌 CCCB<@W|= +0<9~tWu02G?~&? &7VH!% 48L2eJڴh",,VZJ z@j+V3f5k222j֬ˆ;99EEE1ϟ?gs]ׯ_WPny@ll=#(eyy ԶyfOOςVVVIIIwÌv7j(11,LyӧqzmV^GڕYLXK*%x@(h֙3go?~,< L^qBbުC6J3+lu Q`M ELq,xM9M>}zzzRL ̝;wok׮}5cccFe˖7lڴi\\1P 3|Hnnavv6˗7n'۫W*VȎk<[A)Ξ=ۦMRܿQcy󦍍 #g:1Ewyʕ$b{eJqykڴ)#(eyfoܸQvС6l`7[~7#sz*8A4h +CݻWNv\OO/==]{Ssd/xq*UHMM8q"}!<sIA[uu_tH@qIYH m۶ >}sq͚5x`jS< 00po'L VŋF]rccc ޚ>}TRm_nkkQ__˗/jYx񂳴@ !HY,bz,Z-d={VtiF3o ''(#k֬9r$;nmm}M%;ٳo߾`/HJJ~< DF 6m9P4Hn?T֦g[~ +`Qd6=MP|/_L0!88XQ nݺQFR<}ʪ@olll%8/\pĉ]BB1V/[ٳ55kLNN晅-%%ܜnyիWO<-m۶1KTT7np5gKڲ]ЬYxvgϞ*PD)x@(W\ٿu޼y%PjJL"$#SYB?2Q'42y5Yw*k֪1ZN +XܿO>qN2%00P___?~4117% 6lÆ FFFqqqW 0 4z*7n _pΝ+2޽_~`N83 [,|NOf-SR%-[p|QF^˔)#`a_Gvڕsڵk}||n:v"^K5ӧIII˗/&XO5C&!9<}IV!!IG-kYMu&E<`߾}>>>޽jcc#b?e޽-[[Nn޼ٰal[zJ:7o^PP#hkk{5#nb +FpرK.埅vnݺ3R:u]v&ׯݻ#(铥ejj*cرCܑ9E􂢧1~-{=pm۶)|Μ9SLa֭{mA|O93֭6l,={fiiɎk< ))^z_={W>2dȐM6^^zԨQ"""P3NQƍSN_YYYծ]VZf4=qℯ'O8S4i$>>^0ϟ?i$B+Nev޽keeJYpĉ:(##r߿/(QYYYu֥4l0!!Aܲ5ԫW/))#bTѷJׯR> z MصСCnnneP  3IVtkYSHe(J`y@vvrrr[k֬[_|U?zꢧYÇ^vҥKӏ}{3fL>xiOt7_YBnq$''׮]<;v=א!Cl" + +3g͛===o.0[.{ gxxxv"##8p'!diiy=CCCƏdFlٲj&+?55u޽Ν;^ %( <Oܧgթ2+#E."I_zu̙ϭ[<<<8{,Y200pƅ:d7)?wO*YxbBWW]vɓΝ/_+Ѿ`˔)XhZZǏNqЃQ#(eyc\]]EEmGʖ-{}z޾}ѸJ*C(++w2۷WZF+W5jf#G\f #hcc(4DxO6m4d)<>~ 6DEElh^%IxS sFqDGGYΜ9ӳgOiҥK]-[^t|# + \`f?]vrr2#.YnѣePV->gϞ:::-Z4hIP@[n'NQODO;0<YE^CdR”y{Ν:ƭ?~8eʔ+W06UTiƌ^^^sa__l>۶m{1###rAܹs'OL_l2""А#F auuuSaÆ9d/]^HԬYny@JJ9#(eyDENx:uTӦM&ZjݿTT@ы[n*/vzoR.]GֿwwwS͕бuX@z(Yzz?QДOdQr[JWG27#(.{nNn\tرcf6l{!VҥGJ^;w>pXP ƍM6ȨSNtttŊuqFv<++K___1c"'nyӧOTJYpnݺKW^WҀ~jYA%Ԋ+iffF/6mƠAʗ/N/U{q< ))iȐ!tl})W\!Cy\]]O8h+Pw=/\Ndn_ɌnJ\HwEeE#@^yٳg{[[ooPAy߿?q}1&&&~~~Ǐ/[IKK2dy766677?5% +Wм5jA>yVo8rB|Νu-xqjA)8н{wssQIzӓ_C@2rssx2{^bEʕA~<<@|k׮U (|BH#r!yO>)U)EjX5I(@QFyM%{?8qΝ| OPPPJ`W^ٳ'_:::C3gdAΝ;˔)eggF۽{7;[Q/6oӣ=ߺugǵ[Y!ey{!z]&C'DQzG1]vߟtpp2eJǎE@җү-[>}Zy}H7nܲemEyAyyy3*X[[\k}'MMM=<<&L`ii) >|OT477 ܹFǣ|A;,,,?A=zp>!ο(5|DWWt̅붶vk׮JYxWTqQM_ BUZɓ'z/̬gϞ5@y<6@~_pF@=(Ay@ÿ< ##cȐ!w/W^N>"##ǎ \k'Ņq^֮]kffQitApΝ;Ǝ?zjժ<;;˗A{{/g LnyݻwA)קOs|Pqqq͛7gǵ[pMFP 6 :T\/_lӦ =:͚5kFO'z@=))) TRR t)###zP >bGeyѣG ̙ۋ/Μ9ɓ򉼽ST)ƮZjjQvءźu\]]%<.vttf +3Xss AnZn ۳o߾} 0R^zĈ&zu6m_ΧqN>'ԃ5zyym޼Yy^z޽[WWW<Q^t &om׮]xxnnnNW^^ckk+Cʛxzz.ZH+5 yqqqK8_hhE@LLL˖-/^TXQjz*Bz=;V,)))...2jԨ`zՈ8 3իW(O^NԐ>K.-V +eƧѣ<ԃ<@}D>e #ؐ4"߉ &Ƥte@cH`V%(ì2L_::Vnj16)*hժիU_|y%}֯_ӧO]tի#!##c-Un͚5-Zf`l-hԨQbb"#w]p~FϟW\o[lI-h?ɉq*U"TBBBƍA)ϟ?qDRܿ{jnnN +MAJɘ{ , ,|?ŚCy (wDƓDrIzH޼g6(]ԭNV# O͈mmRȂQ3JcuY1֫N~Uf45!V3YmHg~by_W#c: +g=3GcHշBmYƂob9(U(n$=ūC􈤦35%VUu ŽnM8<rF͚5SW*T (r_̙3G/8i<͛o6mnbB۷oO]t: +g:;;3"##eϯ`w^Z"T||<䗲! (UXgGCF?sf=_ZHg˻Lv41YuJ1V.׹Ƭ&『:_ד(;sf+~ui앰V"}]ȀfFE 6۴4=Y~$RGNN… Oe~,Ybnn.hy@:uݻG?;}6jԈFV O +gggG:w|紐ڭEL$?0RLTgT,*deq["?ƨ˅+(VƆV{GEF#s3*qr"%J)=Ɠ1#/HgT$jx YUcיrVEHgϼ22?glDgGF%" FaіLB:"7`o?СC7lؠ֭[^^^ʛY[[Zm۶ҌJ%ݻcǎ%Klp gg/^D-[Bΰ|DOO/11~}1oxiv|xHHzfffnڴs+@hϥJbohݺKlkk{q/\λ~K.%P >o͹ˤf:2q|R%IH Q[QVٲd`/Ɏq$A2DѯEff$%Eș^ϮzkHO$.{Ss"iuN&>`l02Gϑ!4f)2jmhBZZZŊt_GG|}vʔ);sqqY`d_=RSS9ZYY͙3Gs'>~xE2 +͛3V*=zs!9r͍pvv=OgΜi׮#߭[7sXp׮]x@P >om$hQu#5-5ei}Q'OHjn}$_[ ѧ;fN +'9s?&ի+;sN&6oObQL4cpY}ԪlV_Ҷ-s6ikҿӈ^rY,ޤNҌʒ87Y>JȢO\IlԣttȤ!d/a?[zxx(odV䄆N6͛7J5id…m[t233=/oзo]vi"{kw73 LLL>| z֭[`w!={>xz޽ 4PItt?n``3Q}?.Y$;^8O{OGoćAP0mC#9(FJXAU`0n\tVV|:;sII#)kC֮U9㗓+~8,!+kK֬Q/ȲFESz=>seYc:uJ:Mӈ;;۷o+iS~?XQ痘MժUL奫[o:=z:%/t<|V~<+W+WNyۧOvȑ#]tDF>8гgOFP}߾};[jU@@B<<-ZkVN#;OTZ$|yI質<#Պn}ئ)9 +"n+MHzĪ\_?~&/ޒ;[:; Q!P]tEJկ__Q)qΝ+iS\ɓ'1аHK/_8Aʕ9o.1cu1<< h``p9{{{ %ݵkW}Kfǎ `,ҥˑ#Gx6lذ{7UTiڵnnnBGn:my0i$^޽333cNjuy={ZYY%%%ie"#I֊7YDVQ=!xyí7T=+R׌*1o5;cVbE)VM?_Шd5/L_u$UrF9y*2&ligxZȌۿjמʌn6&RF=Dص59~hPn.0s+Mv$yykdV籬a+2]EP):o޼@)ǣȳgfΜiӦ,Emʗ/?jԨ2eH96lܸUVO62Rv=)m߾}E?^ʌqwwwUCe,h׮χN{{@zsc3fP٬nݺ4zYTzu +b]sN]V{iehccs…ejkT 7oWw}:ߺu;iӦ!Ch.r!!!#X{$+044 5k,X0sLv-Mʕ!ɓ'ϝ;Oˎ;N4QٽՔbnnΎ򀰰A15jԸVZ<@o$+[YNȪ _?T?Uq֕95L^CBtvX3nFtaDD(/:&J>ʼncT'#=ƠdόmےONѣ3Kzdtv}3L';dw +q:VgHq*Y,㶙wciӆDEXJ1.jҧ?*H1pUvό[sf|uVg (V%j5cM_;EWd?ɿ_L+g=z8||P__?66I&|wީf͚&L2dcׂ &M$[iaaSzum/?~nܸQgŹsLLL4>ڵk}||4Z z6;<ۻRJJLLÕ+Wq===ٳ~h=cϟϳq˖-]]]E,)yIժUb]ev =Gie80?8p^uVTܸq+*(*nQT{uU׺{jE("y/%CS{/K ~w 62{lͫ}'Mdky +X~lٲ.ª 2ܽ{7JCQDcy*,ƺO=$#6x70/Y|vgʟxpkpc~!@0Ӧ}'nT|4Q-AV'Fg@YqS'sԩ.j5tMl6kwJ\;8hXp\S `ϱ6x,ޤўaC +唿ߍ0Fk/ޔgHL"80b…0:f$MMg`k FZ8N8 ЭC"r`z5{ws CO&Xxj6T)=QI""""""" BI拢yL } +MaҥK߼yS8q+WNZnJ䋴n])n݊pH(! +$1_PnS|qh5Nlfnb֬~1&Ngep?GZjז~!4y79io:q}V-aib{M=GϢl1&I(9Jhv- ([69+VNx9y(ϪDj.( fuiUGȉ&^f_X:v-~({v\fmbjسD9rf$$Ib\i1/(vu*Izo¹3+S.گRR .899=|̘1@ڟ9}+W{NB„ [lٽ{w}OCUR%8884;v}#U&8q>}04bOOH mT`Ozxx}1SpҤImځ+Vo氳˝;ڵk ,.]ʓGp~h] I2Ǐ?X@=b8%nm3 oNUr8JrBTH(}*\߄q4H w6: c2Ƶ__D4P)v:woIc*EabDS1x!'~g'Qؗ;;tM,ubPRtKNWskg֢SPȗ;y$rg҈vFȝabDȳjOಇoʳ1$ =/$ّ`Y}*^I0)?Gڴ$Jϣ|UͧOT$ +rt;Ĥ,1j yyd"Q M快%N~1OGxVjp J"""""~ӈȑ#3dȠOOvլY/1e߾}+VT(i-Ph]0}DZ(c_PcyX +ʇx*Z.^Z:':|<*_[< GsCߟ~B ägvZ>X_f؆ySѦ)CR3-жDwwL(jqDs~)"qLzkpeh6,.%zx`xQ#fˉKoDn^rY8r$ƍ .n(d4Փ]tMGǎGر~==}1h[HF~{ΗD""""""h4duӻwٳgΚ5k=:v%U+:s7o֬ٸq~sҥK7!+RH|F-[6ǏUFiߖf#BbŊ.QbyX +%rPr(~vfճgP[(4Z7[e$Y~vp]ve Ռ9 t\=z+ǸAߊoX-ħO2X.|8WjnΪKqVv;g|G 96J4t!KL4z]ͮ\5ե{{G]sZ3Z+Ǩ[b;9Ȳ=˽G]u&%JlMOzNܖ7έ +(f*AMm`j5Me ᰿} """"ɓ ,Xj)-ڢE 777zi/\ 4A6lй6@=d:uΝ ץK??J*%JؾxQ֯_رc7nx +ҿKa^x!lwa| 6iDzu;99ŏ⸠ŋ.#GxeĉE9i< oقD%QFjޓ8Y+l-+ +JAgxX1OCа "_Φ Uz6b+hHDDDDDD`A +0a1F*}`h[L.DDDDD݅9rd+V^. cƌM4)Wݣp޽kذJΝ;%1Ba&MÇ'N`)Rٳg^49^Coٲ{".L ujժUdARc*y8$_C Xxn?riٱ/VX!)SæWH QZADiҞ#QZ$ x]KODB)=b[3h^W Kc̆ҲZ acT"uX'5ʳRXY#΢i~\&D4}nxML|RXx}C#0hϱ2QI<@=;|G; +HDDDDDDd+>!C-]I/i"D"G:odWz%nnѯ'DDDDD;{l@@+"(.\zsrrFI)ܛ7o6lk׮EٴiSL?Ǐ55VVmСUT.E;wE,)]t׮]6mxqnv>00Pۣ^hcAqp])S`DDDDDDDQfZ7EIQ<Щ!""""ŕ+Wֆ:sL+YdkԨQhQ{{! xvGEU Owfov\TPUVlDm͆ݻ׵kW9sjݻwG,+#۷o*UH\]]g[l[("<@D3gbr'E\1s%Ga_#!(]I \]̰`O4Fii`V&^kN|=(d30/V.ݬJ}pKR4w WgiOW޽F(1W mx /6BQ~I"Qh5+ I;w!!HU^ ڻ!""""C:v;K,%J([l2e-'Ғ&^pHɓGuwȴO>999]7DWΞ={Twѣŋ7k֌O[l'EI0ޝ 3v!ƈΊ*ֽ7DDDDDDdG֬Yyf)ŋսXٲe&LvzhDڋΝ+PM#XJX.!slj&A0XٱB扯Q.sa8;=0lK7*"h + oJ8݄͊-Nm[`1|>"Ѥ8/[oCUEٸ1v}&YɌ;Hy4O|2qpyW/ͬ>.~h(ݨƘ "( w"4nTﻤw N}]$C*&I_ۑ^D""""""(5T7mke}{]h.nz{x@ Q)RDu/O( +k-Sa}{ T eR}{CDDDDDDDDӰD5O4IJSy@؁9$f ѵ<@D#ak>F3ק<G1)1sNYBt-h ݋DDDDDD)c +Է7_<ȖX@=Xߩ.z/4|8pfRv$M岬rLhrkmW\OUg%2fw,1M;N-͛j(*$LtsT{̈́Ȫ*1>޽-fK\qp

~H29S t>6;6@zMQ<̡Njj&!Y+Wݰ7pwĉÒUo9E ou [n!ķ(Y<l\zLrvO?!S&-'t[o#ڍqcltKt5knכ'C4tByV3f-ߡL7\|{6`v/F$P/61Ej=j '{BמfĶlXF̀JmPJXNAjv&()_*Pͭޅ⦷G/!""""""""iX@_ի;wjGN_y6ԧ9f +nt^D0p#z> kL ax88|Yu%mAC10^@z?ݼe&sM0Əc|~o@IDGaqW4wM#)lzlĒfՂīhw ZbZ{9C)Y}Vv vljx /AV/z.pO057E//vitҞco%0qpxo^ނDi/>q018x}M$""""""^$?aLaL 1f`ydx[4, ^/Жކ&\`AEp/˗Q Wg3ԃ \Gdm5c\΋*@8*hR{7:b{%d{I;ѫ: Ďٰ"z$v% Ȗ,HdԨ"D͆$}/JMazh0;ơź(ayX +!,1^'Q^ yM([wHDo: C N@ɒ$D6U*OxҬ&*\&b`Ms(W3,H&_`8~Z'FlڴvQ.W\$nEzPa|c!|_;2e,HP! +.ڰ.ң֭]utQKcܯz(ʖ ! .'%m q&jq48QP؄ + ז-bCj+VE +hP?kHDDDDDDh= +?m,OwN eU<%hţQ"<@D3?`q/PB=wwLS o#enԩ#+5Ot "n{Çcd "k7 wVy>O̕E.H@`AbcCm[#gf#qq/=śra( 0qS.ސ! Aeb '~vGIh/lR~}Rnh`-p&j;<S8v+Y"䟒ad 9v29- +8q/2Afơ6&U\]!^SJĔ>A"b:"n}J׷7SEN Q "<@D3^!UU OW3ɃK4LWQ&U/;.><w n\<|$IPxcZͪ$N 8:ʯ >[)PBD""""""J@eMu 7 Q "<@D?[#`yLiB_I.Ipa+$H=pФ+V-V{䨏4O B(hx}2n9–/v +-@Tj %&OO [bb8HDB)=b[xn?Ⲟ^fa'(q:/(5v[?VHRy4l*f1FuVfE`ehQY=u +ŊYy3h^Wʼn`V#4eYhV(ILҿ#FSZ1WCа F虸]Yj'L\nV$FҢV 5g-zyW%}/N +qӔ>Fa0~=!""""""""X@=cd!88(s4 LǷQ'D +aԪc$y<'>j85 +bV1B]UU0o/JXxuuLs*c>8"3܀xq{Ny'*ٙY^^˳*t?.ήE jܗXx_‚ +XxPDg"'F0 6kHDDDDDD8uZ' aKOO/r """"""""Dcy*,⦪%/Ϟ;1 \E<v`:4m*|W.q o/|V%yކc4p941ĺĭWLdF4Yk%YqXV9 +jK4pYchK>O-*{v̂4SS)р&cTx +`;лyd?Ay޼M |qv 4~f %©GZFv-5p-nr*CUX-~)5շcPL3<TȰ}M(+Zm-PI'\z&v(XXJϏxU:2xXSEug52BUb$1z)iJ4$VcQkPͭ"+Øegb[ @++^t3s6Lħʡ{+95N$""""""^l؋C[C+(ߌE[gN9v?Dcy*,*wþ–vk}݃C׊2]C s)>AYRMj}ֳj$1"iҬoAt.&WIbܸ%9?uoT6I{NO)f&Ft 1Gl a>u!tt¦`8ҬG1S":eqj7>6j2FC3o }nCv*9Ȗ6AD""""""HH +4ÅDؿE*9ɯߊ[̅S+xA?"""""""""s?>%£G&V+&ĉZbJ$1L<:NYqOi7L\7 b;*Tͪ&Zs5kXG;/9H?%SNe(Mm$0r=$6>79Y,q1տCgY[NsilVS4FN9/H{\`Mt^iI" ɳ:Hb>2k>jTK쏁XFػHWs'@O!.wx'7 jkt zy[R'V"]Jm∈(UXS0FV D^r#.L GPZ@H2Ĝh~cRkҤXĈtqY݊o!ʼn1͜UabʔX..&N0E^IYCKVUkl|4o#Ҭ^Bi1K6ù.0~j)J-pvMM5⯳f׺vE1ۛfͬJҬڷyfyV~`j@\z?V_x= 411Ops-LlWT7=wD55nGsoyno~Y *bbbOzVl7fhUn5Q 쌭#gmJۻ`H$"""""""""Npqo6u:"""""""""UXCHf&u P=)h!ONg.DҤ|vSc3U*nY:K7.X%9AA@fXI^p0͞d sbr:ݒfu$ď{ScRԪ:gsW_ """""u"7ۦCls3X@=eOr:ukl0b[ __ďIз޻[=Tˑ!C1|~cY:= sZ9cHM3!}= _QO+cH#87 Kt={Ц¬N^ +ػҦĨy&Icrbw}$+|ggUADDDDDDDDD6"<@4ϡpܸg۔D7-kɷ?c֭CțڄGi:v1q;jFMSp_b`hQðeZ*z3fuɳ1}Sqߤ*f DT>E"<@XGϠ|z >po| INlXImZ46w_4_bI7'GDiVWr8<9F)Qz=ѳz򻜶c%\uM1~Ǩmb,򞣔HDDDDDDDavOp,r -IDDDDDDDDDFH*""""""PH6?[ڗ20ꖇ=#"""""""""s +endstream endobj 445 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4106 /Length 28292 >> +stream +x{V?NT|PII'BB!(I'a)!6頭HD*H!Q}6|4͚5Zޭ{_k]v@޶hѢMFEN<製{SOs91iӦ}ّ.7U<̛7OS]O}\~%J?s=wԩ*T6l%\"qP1bw|\F#5j_l.]+4hСuS-@D4id1ŋ{\sMZ"kԨ{~F:Spw'u#k׮ӧO6 +(ЫWCz@ܹ3%^{RJ 69d"&$aÆK.P|:v8p֭[&?_OޱcGLsߎ`ɰs/RJQ5w[N:[l G}oQhdvu1bó9yg>CO&M/^ +V{v횜~r`֬Y:u*U԰afoE+W 8hذa.uw}7P\=sΝ;' b@"-O?x+2d4hдiϟ_rz;FyM7esB^&L~h_̊+8̯z!/YMOOi-ƌ3x,u/UTҚyw==}s>>[n{35jTji;vt瞋+Vlmڴ hž|=zdyhɒ%I~yx1`lr衇fy諯d]<0`;_.Zh;Sn[o5Zj\s2˗;ɗ/_ܵkW߾}Ǐ+!p"&բE6m_+׿&W^ycǎ۶m CۓR^t҆ fs_]Ls2eS$iӦҥKg08gÆ In)gyc=6ޡC:j dsBժUG6rXjU͚5ccƌY8!&AB"DL<ثW^ySN?W^yex[nuO{u._~rkԨQ|?SsyꩧfϞf=x@FL|L2֭˟?ɱ=ݖkԨ_W￟k1{/Yɼy֭[,W_ٟ#!p@"&y@Hŋ7o^F6}v3Hڤ{RJ5k;v;v׮]YÝw_VZ.WRo߾=P2 iO+)c;/? a۶my'ʛ 5}B +E{$DL<[va1bŊUT#(W\ҥ *Vxѣ曘b/7ix˗ٳgҦQܯ_|0iI^&M{hѢK.ZjT-VX|"ӧOPBm$W_mٲeL1#kذaO:d6Қ5kT_ߧx%\=x!]v$x12+VhFծ]bŊIn|ׯ){?Im۶bŊر㬳zꩧn'%h;'|2~X2-[SN믛4i2o޼EF^zʕ?= ֮]{QG)PV>(xW>7|ӺuKԃ+yʖ-|ʇvX &X{ /,SLFh۶mݮ-@ _:B +/1k}zZZZ-e7hѢEL13}-[{\$x1 {?cbcƌ4hPɛ|+2بS·~u;5~/hѢFׯ_|[d0`رcji,Xмyb;w<ÿۘzjjUUNrƍN|=x3%KFCـ {R".\جYb1_#oWVL<0hР)>ݺu˅RRz9y`I&=PӦMselٲ۷oϬԭ[7qƹ>"&dkԨQ|^;OTR?<ȗ/ʕ+ߣ,֭֭[ـ@ZZ3'uQ5"&dgn?S…Oe.XRJQ7,Yq1dvQt͛7/I&%ܵ}z9so~J?ɵ׽{iӦe+Vl„ ]v ?|РAlNQo} f?$DL<#<ҧObRHɃ?z+.`u֝?~%nG}tL1~㎋ϙ3m۶!wܹ3---`|ש7o\w>rZZΝ;c Zj5w+ډ'e8pرcc1bĈ/TX믿?TJɓ'p 9C<xniȑ1ۿ 5ŏ?x]w֘Is-z뭻WV\YfͨSV^]N_5{裏|usaÆ,X0?i޼ bC 2?ضmҥKϘ1#|gH$aO?eV6ldɒm/ƍ+U?lɓ'3\zK@wܸq1]}5s=sԩSW[&/RRj믿ޢEZSzO&rfߍ=:%ɷrڵks駟:w+zӧOOd7|Sl;vԗ/_U.ڼys.\lknƌ )>xopG.b\tE&L),X0v7m46k, /|K3O<x|LrYg%u}ڴi1šC~2E?Їz#<4+#' .袘3N?([/^|f5:uҥKk׮jժW@  M0!5k>\{6 C'/u֘b"n >k-Z4\ׯ>o?/_wI#DL<>eʔIKK۷W_]Dm_)>C!Go͚5[xŞ={7.w[?׭[wժU1'GG}sPp[`~}g2nBdɒ0x@.]fΜs=R66mhѢ zOC]v6mZCE bpP—_~lr!_| 7P|֤Ig}K.ݝw9dȐ13uyʣ>z饗קLңG'+W[nƆ &mҗ^zM6 oذaJJZ39駟VZ5O,Oرlٲ|ອ[n?]=e2bB߸qcLq;w)SfӦM+VCӯS֭SX~}ʕoߞYi֬Ypc9 DL<>ժUO2w9眡C֪U+URe͚51E5i$L`Y-^wr￯] _=#scɒ%7NMMܹM7t柳2ڵYfovL裏4iRn ?RJ1?Cǎ_{=| gkn!;I￟|U׮]8Ç1bDnŊz뭲eB=@Sn˗Ҏ>|hK._cOOOy[~u?ora<@O~g$>TNfϞݾ}/K.Y.c…͚5=S.~eZp {O:餘bpUکS\_aoիW>ʬ+Vlɧ~zNs9gSO>}z̚/[,.\pG8#A{߈)SdlWTiiii9a\tE&L)7sR#'3c;h;O;0--]4\ׯk0C?[oEEXy66l/ }]%>hٲMv/tI>r‡/r֭<GnƳ>;,ƍ׷oJ*=sv}:k?C b!bŊ:uğQ矷m_OOO/R^]v&M*P@fPBg?r!Cl;ckӦ͜9s,5kpŒϟ??a6oޜ;|[n%̀: b@Z2ztҥS#Ae˖j|*_|ٓ]vxY*^ /мy$W;vر9stGaÆ}jӦ?SYAz= d9!eȐ!\pA}g駟jԨF$=!/_:uwNÌߏ92XPÇ6K'|r&naÆş駟V\9\ x_w~uQk׮)f2_|E2e_1b;UT 7p +niӦx̚5bnjDxLrx1 FHիSVMj3pj۶/_w5j~d׮]Y>>Ͼ7 0t?ٜЭ[~:#K:u_)SfĈ}ɟ?F~g8㌽Vr^{B +9"ȑ#o馌f͚=vX}zN:zh⋊+K(w߅<7ދ/X 3BFݧM_~41O<\ݳgω'l۶ߺuk]Fw5FyQ^,VX;2eE]믿SSS~K.$#I֠Ad}hԨkMn7pԩӬYJ<_~>`٫ p ;v)S#g?Sݻw}ڵb*Thĉ!WmڴZj7oN3gJUkG?>7 t2s+׿&j֬… 9H"6l&~o' ShY*UԌ3N}~˖-'ǡJ*k֬)flI&-f{oƍfu֕+W.55ugl\s5:t/_)P;uY-@dSԔ5kRVc3Ϝ1cF|]< 7|N!C92,;wܹ?9A/B!{w{:ZjYf&/f͚۶mkذܹsK(rhE8c/in~'Oo ?odɒ޾6mTLE]}QV֭[;h +.|O>"&$S&)gw}\uUgO=zu] k^h>=?K7o>VZ9wO<ƍ۷~˗߷ky晇v믿~G0Zɏ^zW Pd#FCNcǎߘzbŶnrDTZO?)fxg8`#֮]Qٳ[hu#h@Y&jՔW6O)%!8x{SN1w.]iuZfϞ]R\>hڴm۲9'8mرPɒ%ۜ 6l߾=~U(#F >ъ+O~'6mT d"&$Ǘ_Tm۔9sCpPݻc=_8|M4ٶm۞N8sNq.䒿Y0`رcs+K/G|Ò%K`#55Lex/ȑ# fS< 0~ gܸqHS*3OY>t#8~atc}:HnfyhԨQ^{m;x%3O?+Wn˖-'x 6֮]{QGe-[Vn0RpG׃3 3rj׮rʘb6@.]fΜlر@?r!Q7¾"&$'̛{n`׷oq8?s͚5׮]N8a{SNyW<4u%d$7O\p[tiWc۶mo ׿թS0s?N:aFNP0ˊ+b W]uս>!\Jfq#Gֿʕ+G @<x|R\o%z~N)lvry}nJ*~1~xKtgyGSLM4Yxq|?>Tdڵk'swgqFay`cر 3Q˖-_}՘bǂ 9Au]|yL1x@;3{'dvڂ n>}/RwQlߴiӨ;"Q@$?>eK[W)ǎu9'~^z}Q磌ժUO<_/_>l>ڱcGnӦMzߠA> 4hИ1cUJ5kkԨݵ?w~Sk< н{iӦel!aVZh;v 3Z &Mlܸ1cPB&Lx1 g/NI|)wݕr)\TJ6>ܮ؎x@S{1O>r?JڴiS|===~ʗ/_4yIZ<o_;{v~Bǎ`s3gD;v(Toq9Ӟ{Oׯlٲb" 6ԭ[7w3< U޽{6m{_mժw/_oy5>"&{4ju9dF_o۶m%O6zx@;vԨQO?ݽتU_~yk׮ +d>~wժUs˃Kr۶m f|N|˖-Νse]="k֬ F_{F裏~cE.EvѢE͛פI1`x`J߿s6`.9sI}zvZLnذak;;+W.]Z:[x;͚5ZQVϗpҞ;wNT= իƍoʰg+55U8jkk!|l z!@aBBTy[T+*`&L0gixɤxxx=z]ʪSN#G4E͛7/44G]5kqӪUop3 {o2^ 'pkvʕ?8/^lrM49qℨXZW6HHH^/2,_˗/?}Ƒ˜ + Æ |}}EE3ɒ%3}K +#rR%Ȃ_n0'N={N<Ğ4GrI&͚5KZ'`zkڴ͛75nmܸN@VYZ7[:GN< 99RgٳgL5dȐe˖iM6xmXqС-Z;d.]Oӎ]krҜJ~I"@aWPLT!!1cT.3>DAAA3gΔ։(͛ 6|ƭ~~~!!!E1}]v^DիWV-}w48+={57oرcUT6lػuz{dΜ9&LjpZ~ $$$T\*q.]"@_(x0@zjرL)|ywߩܔ0''O1cN<@)n۶mjjjV׭[!Ҟի'P;8p5kt2{ʕ+뾣aݻ 5kܿh̫W*Ut]KKǏ7j,Yd/_رCT>7n;Uv4l0::ZT4  3W"##;w˾w9PX[~/F<T={_W]UV;32eJHHN<@A;:tGtR˻nzbbbnݺmٲE޵P@@ +/lll&MTD ]v4,0z jժPB1+W4h"88xɺ4O?^ + _d]Lx/;M4j̙3a}yzzf8::iIٻwoEEs-Z4Ǐ0 ;UCVmmU˖zV`iM:588XZ',??+VhVw-p9;J*i}gϖq!$^@C0aBBh@< <<|Wt)Ϸo~ׯ_wss;z.ە*Ux-[_Aݿ_hCZ_xFƍO>-*xMٲeg]>>Üͥ|0 nU zt+֭ڴIUVr9En?~\˘%K^pA;ܿWJJJ4^Sz~ɲ9 + +9s(|,X>}*O͛wڴi'%%͟??--MXbkР:66Vxaccsܹ+.i?CZh㾂:H111κϓ}nnn'O 2W5kvȑx֭[pB*E<ˆY\SoF_HV=[emmkڴiӧOW x 11vo.r/5?gbBBBLt*[[۝;w /^3"\]]O:zĉ̃B ~wO&MN8!*صkWNDųg֭[WG+9 ?Ϟ=SxryZ5qjB]W[0@1}q#xoݻVVV7n(W\ڿ6m4n??/aBCCǍt9|a2]h%::Z}[h!~cX3<(U8`+Wjرcl90s(xO?zV=x ̭ZF%SN#""*Wl~޺uki=w_|֭[ 3g,Zjz| 7,Zqqq/_ԸhѢsׯZ6lիW0 㵅Ç9uŋW^=za,318 Xb|||JR'NhҤt*JӸsN.]Dży󦤤(E<ˆEE:ty| 2e''+vj\wv + +9s^f͋/f~/*(Pk}W\ֻul2{{L~s۶mҋ5 ...i7>}x@׮]o.* +K4lP^VT4D<ˆ._Ue063f̘3g + +։#GhB㦀l/| +ztSxx6o޵kWQєӧO7lP zw֮][.III%JHKKWX1p@YҋƬBv .5j?d :zhfDի#Fi7nܐIj <0@^cƨ7ϫ59̚5kҤI:sӦMK\ĕGiO?n:`ժU%KرVСhxɓ'7n,|M޽9eʔӧkeӦM={juBB,]E,tuVŊb5 kCFW^utt҄g~/F<ȫR%ƚ|TմiƚMfϞ=qDixZ@<?k:͛7+ צrJ???++[,!pi”'NT۷og>j5kּx]v}vQAgΜ%}իW/&&FTN<`Μ9&L֏?ޤIxVy<۷-anP gUq5U?dxjڴ/2hРϼ|rᓔ֭^xaii%t ȸd Ǐ駢)گSWٲeyegE ZҋsDƍ*GEEyzzf׏?!*y< 55Yx28Q5{q|YܹsǏ/0Cvԩӻ?---U .WZڵkٟ_wL8y򤛛s=zؼy?g̘1iҤGFFvEZ?\-ExAKZ߱cG毕޽{۷o/*y<˗666"@aUWw3 !.44tܸq:ԬYGf񽻹sQwbLE<ˆNoooUL5uKU~3FZ PRzzzݥ- 믅VreY&"cEeYE;ـ N={~)Gi֬TX1C)P[WVNNN2a .޽GIO0ZlkkՎ۶m^$i񀄄2eʘxrqrRI.Rp*%E5~j=7O5z 9͛{qӞ={ڷoo֬Y3p;ud6Ν;,*2pС-ZȸСC3;+hcc#ֲeKaiQQ(bbbdlF_k׾xhp<`}+Vx--;jNy( ,c4f\|]Ν;ׅfM4h`ggg߾}?~-!Qє˸?Ю]ڵk۷T"f,^x26ZjI/78ТE#GH:tؽ{;Q™\vm}0@g&N|0Z5l?osGի &-kHb…F,,,Lߏ?*>bĈ0 Zj8pe˖2իŋgc߾}L8qgiiPdIW͚5/]$*8yd&M4^/=|?^z]\\LE<ˆY|jǎ)]Z~U,LQ$;TuwcѢE#GO>d%===O<ҺYT$L ˗/רQCT4e<য়~jݺ yyye;͛7˗/gjj޽{{O}pDDEO>uuu& 2\zG-]4 @T,^x~jVZ%=zO?5}? +#djp՚5YhNvS:KU*"Bm`b#F։LKB޾D ɟ?|'99yҺZ9r[ґ1c +,(ׄ׮]^hxan͚5\N΅ f޸qc^{EFFvV:ZxUQQ]\\j׮]NUVTH"'|OLLƭs?ހd x2TzT'XMkߪ}U{..MT+*0w ի5h@xQF {]O/7iGA7nܨZO>-]tJJʻJ… gŋETTڵkv/+#!*fJ*%)RlٲŊ+^xFT 55ҥKZ. 3f6Nl;PΝ;G<ˆyǫzT:Vu=OzjոqW3O^׀Ydå'ѣEL"%4,\xqy]Ϟ=+k bnݪ,I2wvɾVnݶmۖ2wܱcܹS#/𵒽 }UV?_'OEs{>!|Pq$}AB\\\*Ë/4~7o޽as”P 7oT3f=U*[[çSy{KnJ/}vVYfe*66N:Һݻw? +DEEyzzʾ֮]:uꔹRL[n5kԻ)Z!kWժUoܸ!*f~gϞuִ4:ui;lС_5j ١ +6bÆ O>T^(]O> S"@aܹ*_^y?W>YZti@@!.]ԺuDEb$|z˗/===Lߏrʉ޽CkGe.~6l + + + T\֭[bx@{͛#vZQ—ZL D<ˆϲeˆ &xiaM6I/*x#G={hmm%~73fŋ'$$ؘ%eݻwAT4e<`ǎ:u}- ԩ l2c4`J*ݾ}[TȰ|rӪ5k|W:!P޽[xagg4o\o{5PF={իB +#@a'<<|Ȑ!z.޽{/_n矝 2xQ +4^>nܸ9s显%%&&~G);w} Z:x ~<:@PbxQQK<@eNkkUVF-,,zաC|龣1-Z~rF<}>x~W_y&K>ydΝ+k׮UR-)?,Whx?sʰo>OOO-f͚5a#n;xQQ{<իWNNN qk V\YNIRSS_E fϞݬYƍ +xr˗<--M*U8q^.sׯ;99i|~͠A:wܴi^vܹsG 1e<`۶m]t} 7f͚/_ָL2׮]˟?V7@QQ{<@b +???Qao]O:Xb򋣣P@)_;vݻwe͛111zV +.,rٱuViruegϞ:հaC(P@rOO}iShQaX<<}oi+W?xqb2.V-Z򲴴4b1}< #B +'O,]ւP@Aׯ_o޼ybbҍ|(ڵkk.sX^ˠVkֶm۶;w>sKƍUVMؼyse_+CRRs礛n߾]L#-me&$$ZlYre +?%J0Zz3q< s6 C:u;fggg`F<P ի׆ jҍ&)))Shٲeeʔ2eʅ [ӯs;v̕ zhxpȾ 99UVY [cq©(}^.exܹsǏ/7k}Exwڵ͛K͓'O%K.]P![[[+++kkkٯpBڵӜ}5kT ywy׮]6hԩS‰uӧ_|YHaw׮]K,i̖MJx5jMXfM߾}e_ŋǎ>S87,,,do0"l@ݻoܸQ˻( @<ˆ #!c777''ի;::˗KϜ9388xÆ KIxS2 s@<::nݺ*iii۷o + +MVɓqݺuѣV\\\ZDES](%%ȑ# 4hPDD t=uTcFpBaPL$%%Z[[r͛73==b qݻWxQ\9??(QBqY77W^i:a„YfIo޼YviӤL8[jս{w///;;;y:6 .899,Z(a?޹sG%c+YÇEEYK.]~}6'1@rrEEsttkX]Fρ0ĉ-[|eƟj:44tr͟лwÇg7o^ooC֫WO%>dwqssKLLԸѣYŋE G<99YBk׮Oմɝ;wYT4e<`ܹcǎkǏ{zz:uJVH:g&|† &W+ZDEY+V<9p׭[t#4F<0;w=))IT7nܜ9sZ%==}ɒ%œp_^͛W>4=jڴ˗5n-\^B]7o^XXE)ҭ[7O>D߆r닊OΝ;ҭf(T4"K<@EB_VVVQQQ[V +#|Ο?#[-['Oxb^bcc3K,٧O!C-[V>/^hٲeVؽ{wvt֭[&Lزe6lطo_ooo;;;WQįڠAQє񀠠Oߺuׯkh";{͛}V:FV/YdСo`ϟ?n:+Vtppe"EdYQ8"k֬4M |+ $8B<ˆ+W4kZsݺuVVVr-iӦ͛7/---sc-[kٳg:u:|pV/_gǎĹst?]7jȀL̙3e_k8f̘l|ykr=&+W_ӧkGVϚ5k`y 2Tعs[&M֭X\9駟ׯ__5Ҋ0s(xA9{lv>|ޑ^^^7oΛ7}ts@@@=llld\1ygV L8q̙ϟߎ;V{zD^z±իKY*/^vqnnno߾mӦ͡Cpᖖ0¢'P{ o KQn] 0СC;w~.Ν+oW~٣qkɒ%eoo/ﺹ@bbb֭/]??pZͅ}TÛ7o.{KڻwoE +hn`+WD^z}NХKhŋ7d_|o9 }շ=äϟ_ZHH5jԈS(xrԀ-c6mj*SG<˗/rJêV*>}ښ1ɓnݺ5666F޽{[lk>q%KGAݻXPBz5i3/X۶m^oxeEP KJJ/:;;aÆ)x{wk+VlС 6McOHHj@ҥ###5jdfm6xK7nk׮%Jڸqc^DES:v(|:ΐ:a„ J/Η/߬Y7.44Te.X >yH"z|ޢbժU]H?P +#Vqqq^^^7oj@u\|[nBYHÇ1)Æ ۶m1|󍃃ɺz𡿿dd^{ըQE5RWڭ]VhSڴi?{||3g\]]7RZ5JOOӧpwpF-]Tx[cP$G4O*W| EP Wڲeˀ5n-YdXXXMܕϟ? cǎ3f;wN˰ +L8dBhWK'M$Sc$2eQH񀯾m۶{'&&EEE666F>+c|UM8赗R6m:v*| NܼyJ*zZjbRݻH?P +#ׯ׸C-\ʎoN0a޼y nٲݒ^|iӦ ifkk;xQFr+zE +'ޑ|n2 + +9shxRSSBBBmZ + ZQQѢE7nxbkwڵիK9:/*(QÇ0@N/޾}[jժaaaJ6l0`WSՉK6MWٔ|UV_Z4hŊ3YoyANN>}mllLU1c̟?_Tl۶?`69p@@@+WDuww3g6l4m^z~ȑf͚ץKj֬)xŋG!*>{L~8F<ȹRSSN[Ѧ"E :ZrN:=yD+V 84-F8Fw-#]]] ҥK_I/_ڵ޽{{tҌ6lXZLC#GرCToРYM܏^YejԨuԑst<`'Njϓ'"-AY(xC?o߾111'O\hQE]\\ǟeL.]mfrʕumذݻZ*UۻO>/6_ѣGdd1/YZ 4hʕ*T/R)Wϐ4o޼O4KV+տaXÄ6mڳgϖ-[V\zI9:0u`i=99`3u? +endstream endobj 444 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4106 /Length 19462 >> +stream +x ߭=Rʐ5ied_!FA>5fƒ-;DPTRCCܚ5ys?O{ޢ>w<}}Iz`yTu-2<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9 ey2H<Hy$g<3Rfə)3@r@ 9LӧO7g̘Λ7oѢE ,]+*ԯ_qM4YguZny$ 9Hjڴi>SO=5nܸyYjjժoޱcǮ]6k֬*Z3̙s>7H6hoҤI|1 oSN GrsZz9`vU{ 9|pg}݋/. ֬Y3sg}WF߅^zUJ'y… /䒋/xŏ֪U]v.նmV[QFEEE?|.̚5wߝb>}Tߤ1l&L8LRP֭~|oOcr-zEJ?VZi/zaə@i2]t9.siӦCϟ5jTϞ={C-GUW]b<3-XC|,xQQщ'x*+?~7sRe]FH<r7o^.]&LuԹ;w}Jl͚5W^[?w! >Մy$g9|嗻/ 6|ꩧڷo_yΓ&M*/SNt 9Xw}׵kק~z_=lMu?v}'%cǶm۶. -y,s8p`ǯ?Jӏ?xnJiӦĉkժUQ`ys=שSŋ/V[m5f̘5jTpwuW)'`P`yŋ۵k7yyݻ>Ö-[.ZV[mwy^z0࿆ vGiӦnQQQa.#K9aȐ!+y$g?Zxq-f̘QqwuJ&OfrBͧMVf͂]R2Guzy$gpڵk/Ysnփ>`1bĈ>}r–[n9nܸ]O1 f̘ѬYYm^~-Z䊲~]v٥Zl9mڴ]O1 L&yZ۶m_~W^1qۗrk=s\L2 o" Ϊ~EEEEE| X{WjK@7C90`@U_-4h>+T)z~sBoSgļ˞Pvj֛οGQrY|iR^Sߏubm6*;-LX-aغZ|{F^l)'Tc:[TN1uu.b /9^z3fhРAU_R[lY ~{@ez㝸X̘Z-}Ŗ]cTxŵW޻OM켋ُ+~1sWh-6͏9,1gw?7H1sW?x-<_o۶m9O>|ZiӦjժ6h)SJy̷-^o'&}Wm[>De/%^xmE.>BVJOյ/خu~H5->|VJ1sW߹3wII7\zW;GNCKce{\F| f̘ѬYr|G :*/G&M|K9a뭷3fL8xmjeϖƥ'v*xR-cu)>;>N;VbNVVZϼ^^թ|[7{ +@%3w_ӗͲw"@@,YA_~eyNٳC=T՗1zvکu6jԨ\IU3R8劸o[nם7E˳*m۸vE/v.[l8O~ߪcxiѬŞ;5Qi'Wbbӵy2N:=9s}z2㎃:7dȐ\IU3 +q1󓪭]5n83b+UL^lq.y%Xgƾ) X񋙻:{ +XkVydxsLy<3\דqy{0t#8WR:h{c,YR\ޱzx +^\Ax¾Ѩ~  +Wh)';Cf%i_eϝcĠi_1=z]woK9g;vlQQQU_LgW7o^I'ԪU>SNU_IdIxvx9O_3ߵMfj_*WEkļV1S k,[X?]RkN*/ em3*(pWźb봊kgTqZk_}q,V1ㇻ? S|56T.[ǃWį,< G}h-|͛JNںuRNرѣ p%`BK⺿}ZU〮m7_}}}؛M~4n~^ @Gb stkOItRbݥ.;N6eIPkOiz%tof,ޥ:.)V>fwGc߸u [%S|4{W Ur딍^ُ%ߗ1}b}6>(y۔ '$.֫-vV=oFKog(55y… 6rȱc~嗙Gj֬&d>%N82nC=.O?0S*w-qƵeSgP7ջ8]7q1hX#TC)SOK/MPjzPo4̳Ղid 9x;VK}{R+iT<,I11ce|{tEɊJ11ceӟ o/[jxW-|11_oa8#2sW+ZᮦQ|gX4hi{eO> (WOD ,XhQk^)'L4iM7-T)j~5:!/)=w:k; /5wމ~Nk/:էFdӯ#+V~x*.S\8]hq⥗b@ŊncƔͳ[ܻs7]Xqmb*.K\[o/\ZiO?ӮMC7'mALZb]ŵWOV+_zh$/.׻?>gol>0>dW}[=;[\Rb'&Di3wѮ]kN#W9{3wj'F۶==أr<Gobu߅^7_xA|Q*J,f>;wLV|l2z)?0[I[?Ge_Q8l)NmSlP7&:tQGU  \j@:~*s_Kw\yg|hSc?K{-^}|y4Ҟۍ╔]}xq|hSWqˍcm?k[<8_>)Pu/^sMxbyg^'WV˷N*oq8_>Գ_U/bRH61?pq-fr/Nt뭕7Έ8 _-\Uu\^ukdp̣ʧ7]Tx̣\8Ϛ;&-w'ڶ#+c93\ѢǷo߾T@1+%&~Ih\f1أ(&hB]-ig^c] {)6[-ラW^mcؘM .G L1lmVbu\lRޛw!95o^-ܸr<7mKx@?b +cwq_r(=#Vz:0Sn^2#g,GssƼrTɳx}s|36r]-Ģ@^O6z\Ϗ7kbgưBKrJyy-7q~qթ^VP]s9,hݺu'OܴiB^Rao1/GJ7oW_ŪϊֈG>Żդu]ύkƓ.{oUuUQ|+~:fTbƮ_?i4X+pثU_͋Dõ%-N6((X+,ΉFkc.N=[+va!% ދ^9?VcF1QE`a۴ip’N:tGQK*$ty~P8ȬGx{t0<#)ytYT1PnvV?Sgu[ ]9ѰOk\'_(ȭqNC87L,xJ2C.v̋.~^-֝\Y!-qnC⯟G:JO r9n+X-%})81@HC=HaFF&OܸqB^R!KڿXanw"0}7mڴywrY<УG_U!~2:t"DkVf48dKu%[צR?aJI]A:*>tkR)9~~ +c;+,WR598)~¿Ŧ +??hl=m1Urg㘝bBGv=Tǀs'](31^-#}ϸ2qv̿b^VmcD莹bHUtgu@泳bby]Vpk[)?ƌ3dȐe4*ix?#8SP~OrJƋFŒ~Eq7Iqוqyʵ +KaaS)CJ,gqOW*.\Z\>(?+)q7 į(Όkǧ 8;MǸ㲥m[T.B,Xn<}[]֌yGTELKnZU{("04=]v]dIΣGyM7TK*7xM6U0*(mJbq:2ξ9`Q|mtw1Lh͊+xD R/='|X-wѡF1`xJnҨkGַuaq-+bx8)׌'_̽-~8JGp5Oa^ŚٻxHw[H3(NSFbbŃci{s)9z<=7U\)s:(Q={b}&ի"0̙3m۶fy[n>`Z +|UaT_ FsC*=j,:(nS_r*U|U_g\ҋ)|mLXBq߱n^:PjTlJ]jyN9=ɫX7/=~4M>ޚJkμXK#'׶1]9ngdGK'Fy׌yK(7[ć{n|_Pܶ1lL{ϔ/hӢҋ +<qUW/.]9n<J|W޾ 25jD%z/d/pEE|I^1nz]*;ڦRl@/>n~hT-Ű1ER`I^m [}| ]l}6b2O8!.=ݕۚ17nw\paCȑ#_<,>c^3*-j,:rwwlߨQ\GgVqߴX/b!]uۥRQ%7U 9W>wl۰aB-6hy{>9i#:yƂ%_}`ݹmq>o=2紈މ&y_Ď9[ܦ^lq-^ϛ||Ps֏ߍyWN9#S'.] =lS4˳ ,vywCPv\{C%C3b c> ?|V-><ҊXc-b'x8[< +>СìY֭}WͷaTs+ux|qDy}t{J ~jEgl{m͊bXxـܽ/{^ω9v<>;V˷]txŀ'TKuz.O|*8zSu=)׌'Y̴2L7Gs3/b +[MnkēDüϋoK*^u^{S鿉>Vz`5]Z\>|ܨW15hOqJ;I's6'/ӈiŵ:irz!{j/((XT@n?5:er`tE' j(=/_K SxZ/1xOZZZDD;3P6mH"ߕj6Ho6Y3.٣u/ J)bgǿ-U5^m19Ь_sg>GTuNߩ{ђՙiz>79.aO1i-]p4tݟ2.Un?TPm39nnOhŮ| U87_#m79ЪS|Jq Tn?V轩yQtGj迗r!y@x==؄ 27e +*-OLWNTou=gh#վ\|-5D735aW3PAYц7դLK0ȴXRZGL*5߭?PVVO(hYz!3 6`7&^uQ/QJש)^RGM)^p8G1{˴h\6 1?R:+ƍ+gZ,UqUd*EDRO(tnK^2>}d^޽… (-Ŗ':~㲩3%EGkT ], 3UlzQ(CŮJSRL|I\]LԐIF1Rki^V+T:Y(vӚzWUUӼ8\æW(k)2TF+z7(^1R\?[U1L*P"sCuo>]_S-3>|1^buI׮'~Y|>BͿ7MuE޽{ϝ;700Ж]~8˦qo?| xNS-/`]-٪b KLmF~:p_)hre4ѼX[˶6/lxk)vB(ޠGWڪLIM^fzvlxXӃ5[abvqk.U>xE':qBEM4vP[=/ȗܺuZno9wΜ91BՎsdhae7lQzwcD1t&S*u޿$7ܣNxN>Q,V=s#'U%]ZߦC>^IW\4wߨCql)_N|\{QIG|hE +E1E}U=2=(~;Y?FN*}Tp GKP@%E@ڴiSXX؅  0k֬}@^x~e~z\[|J\uxHOQq^g|ܘq?*>y\,=0HQq\K_ջTGE7]fph|Q5zW/-X[i4wtˊi$[;nn+Ih뺹|HRR, V6@!~TI] 4UjZŻ`_ow)UN-LwmVU?*Vw[TŏNJ*9D-KTvwF?~i=::zɶl71DGP_<7FMSn\U\X4jɒ.ӰJ=-bTr(kh+%]N3'(HݺnnRThW-,Vzz6 > +0X =pzgϞ`ˮ| <]u4\ +G+z7=j|7d^| ii?^O??Z}0_Jlv + Ո9ƹVzXR<)^hnj8D#_QOJرy[6Qqֽg-,^xcF̵Q`zRVL?E3kW\m(NRbR'yR ʕQ1f,k\**EqJRly̪xkǵbWl3~8Q_R'Oh*ԅZxW5ž}V[pn>3xxL(NTKxƦbxXFѸVS4jicd/:RjWڦȧt짼,WFs3R'nUh\NR8)u hR%u玻# 1tӧ;-yIII%JeK`5|b*~li@3Z|Qdw1zisQצXZ&kER^6 97^ʏyvWթ~Uqr bbbFXnu֕,YҖ-5m6а)3&q9IC/펫Uݱm79J펗AIڙbe͎b˻Zͳe?aÆM6-^z-XXsYZ~}-.^qq kW+Vܷo_6 1xÇ֭O?e\RJrrrҥݻUv+W|1HMMmР;2.^wu}_o׮ 111Fϭ[֮]Xs&"##2+V,99f͚vmpҥ_^9{lRlܒ%> +stream +xرmWDQ9sTJP .%3N>`=9oӛ~yc(zwC{8zʍ#nGo<7#Co9qSnps9y-'>G\7#χr~8GG#Я=7H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~#H0oh~# Z +endstream endobj 442 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4106 /Length 32798 >> +stream +x tU7dDP ("2#pA:jUPVE-R@E" (*22Ȝ i! ϳX;gaH;'w7_m۶]`N8!&<\sM;t}jժ}ܼy0~˗/>޲eK +dݺu+ ޱ&{ +o~%Q~/7%p_~+TPNUV_>$j֬… =ňzDW"ӧOo׮]kׯߵkO?N[nHΝL}v7_~̚1c㳏wɆ 233s.۱c͛s]lS?#7nLOOߴiSkѢEGSJ^= ##㤓Nzv9ro^z3{V= H<$233;O?4k~=tP//B= ###>￿}mr-gyf5zDWX^xaxpG>s:t(六{ Wz/~'+VzDѕzw}׮]f͚=Ѐ +^'衇͛74iR@D]I6nXjբ][zΝ;/袗^z)ݎ>iӦծ][="RJX= vѫWW^y 6nxƍS( :/w~n@NlԨzDѩÇ2dH__Q@t_֭[fff7RSO=n:B=SȲz;w7mٳ!O@z@s9^f͚wҥEp@SzD͛w)d;^/կ~uW⨣׶zDfΜyg}ƍ7nܘsejjj.]ءC2e佭zDSo><իK/sYg7k۪֬@D~Z4iR׮]M]֢EzuօV="Rzq.N8O> <{챾}v[H=O#F_wg=#zD?C7pCÆ "|hn\rw q'N,`D۶m?|^o_ves9| --vy_@@ti=o߾ƍɶ<#7xcLB&55uŊ?`H<n?jj֬Y1ٶk6h`1 -Gyczի1ٶz1I⤓NX@@ti= jժC=4|'|zzz,YҤI}U  0mڴvE6g={;\ӡCSFϊoYO=yplڴ)==}Ν֭[m۶qׇ+ٛ-[ Y<݁Pz@ݺuO^NW^gj;@@tc=vӧOW^LYhٲٳcm/y@t]= ݀mX9[~w;n|gӧOSN YP͛SRRb4h?O< pWz뭱ZbQGۈDYZ ;n?رogY]f͚IzD$W=k8OD3g<38N= \.l̘1I'\~/O< :r7n'qr~=IzDUz@JJի>$Ez@˖-gϞy@tQ^}=z$krʖ-~+&q$J=4/_>v{')kמ1cFݺuڲeÃWP!VO޶mX{RJm=`ժU[^| 6mڵkO>^z1Oپ}{7{>?6nܸl +>&Mwqmڴ9蠃ok.7ѕz?ܶmŋ;v2eJv ذaë>o-[ +xUjjjVw~W*Tbz@ZZ=_[])l޼CGLұc8eb 3gΨQgb۶mEޤL2=z[ZhQKvtHo޽{_9lڴ RSSO1"V݀M<;wnv;3GՠA|WftH$T222. &yj̘1]vYhР<5k  S.ұcl2et2p>;+Wׂ1cTVM7DRJO=o|G]_ꫯK<L͛7?#GܺukbO;S!}r%fȦѕz}ww|}Ŋ{=p͛o|M>+VHpn׮]_{b) + P3fW\Qk[l9p . os;Ldna7ߜhE=+ /SN˖-+re]vUWuQ1l_3w|W֨QN8>ppp;vYvw}bŊŋG+W, &U 4}@l@tZvmn͛e=z 0})))->شiӾ)SUV={ h֬YewO&Ms}Y߽{^{C@tڼys^&M} 0ժUnz#N:W\q_\V"=|R?<1ѕz@(==}cƌn+Wӧ6m}-[\tEz㏿?YS޽ܹs^ֻw$L=+Uls]w6m 0+[lvXjU==Ohn֭[JJJ1s[fF籦\r+WQFlP RXխ[o>裏͛7sw}wEbZjŋwmŊo֬C=Աc"#GtMyӟtWoȗzDW۶m+W\UYfM:u955s]w] ~СO?5k:tРAnP.]ڰaütmĉq_֯_?k֬w}w̙| ѤI۷J*Z3o޼;APoʕ+*h222^Sju G=9/\wߝ5k[oPJ޽{4iӦNm۶}ꩧ};*G̞=e˖ J=S-##>`wyg>y;ӯ={-[6أp>///V2e}"ޡC&fؓzDe˖ef͚tҼyW^yeaÆtAE233D:wܺuvڝ| vS +aժUf͚… 322^3sΉIz[f͚{>^L+;8?ѩѦMfϞ=k֬wyg޼y[n͵K.>a[tiÆ s=XfW^y3HH'N= v3gΜ5kGqW57_g>s>rGL:QF ѩXffƍW|!Cvs]r%IJ=S(.gy&M6ӧOOIIIH'N=4k߾iƒŋ{ɞB=S(jժ?{?~|ǁSJRRR.\شidO{ѩZoYgifƌI=S(}n!iiiI:'{ +)F5`D/)( Vظqc V^hP\oCM G]ix㍏7#vڴiSzzzV?ssQi) PJ4N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=H2N=YhΝ;Vz1${JN=ؼysӛ4idɒdCIѩ?߫WdRL6}yfS +矿⋷nZldRC>^paf͒;%zDP/R߾}wءK.]^?]w]rQ +*s222c\r!O_veD=S(ݟz@.SNС/Ҿ;,#Q@tr+ƌaÆzɚE=SG ȦΝ;?u|\lY55%zD=?7 z@N?v]vYRi_݀@=ݻ/S<̥^y(q :ˣ| l2e}k&%%%Q@t{w7 PaРAO>dkڷo}h"1#Q@t{ѭ[ɓ'@= ۚ5kիe˖,~7;t( :رc\0q<zd9#PB@t{m۶s=wʔ){=ZzuÆ 7lؐʃ>xɒ%rH$R)P]|_ +y7N= / ٳgqy×K/( :|!0x:Ԯ]QFKSO=uW^z K=S߾>C`J* +z5jN ?i.+[̙3O;Dѩȶmێ:PWըQaÆ5 +lР[~8 NC&g}v'o޼9ߕ#F۶mۦMSO=lٲLeٲe-ZXn]RSS'MԩSLtk׮}s3g._Wխ[e˖guVϞ=kԨ KN=_ȩbŊZСCݏ=[.L_ti+y믿>#%׎;&LϿEާlٲgut钒 KN=[ȩ^z:t֭[ǎ8xرSNov+ ?1$צMFc}1ܶqƷ~{޽ϒzDPPŧہعs=ztԩZj>} ۷_Rcǎ;VZ*U/_>==}ƍUhݺO<ѬYh<z@Aׯ_ի sժU[lIl˗ٳg~>|m 6,e:uzʖ-bO>=O8Ãz| +֭[_~3f̘6m7|w^wuh'N=rvؑǯ¯]v||MqxUV>}ߤIu]w}wZnWT)zb?aȐ!۶m1s饗#(>߈3g3^S=qƕ[zDPP/駟|g}_z,'|r/jժm{oڴi3yʕ+-۲e_>~\lСC?| \oFkN?I&U^8z@AE)/O?w矣o[ժU/뮻.P:wY۶m'O\Z~Æ :u3gNSSSGҢv v<_ZӼyiӦ N=Q_|,X`˖-LKK xYm 6,eڵ8qb)tqܹ9LII?~|^b믟[nׂmN2|J, :JL= ڴioٳoqvx]t;߇\sѣs?~|i=zL<9 x'c3ׂ/ +9N=_i֭~YN:cƌ;wySN9;޽{޽{O4)~>SiiiE;\x8Cc7|!Cb[|@tz@Nk׮?}ڴi$E31bĉ'ʕ+u`JII{ZamIOOxN̶m۾Zf̘Ѳexz@Aznׯ8q |ͭ[2e\zwիvۗ?S+%C6mfΜ7xȑ#7k,DZ`riR +v_^y1cVz̍7潬VZO;X2;m۶o_u]H=S(\mҥvn۲e &~1ܳxٳ端S5kԭ[7O\_~y!odQJC= 33L2N)l۷oWF;D+x˕+}bnӦM|pxzvȐ!<@\+~<p ?p\gH +4ƌsGv9)%ٳ 6y=UV=zt޽c>X4a„ .`_g/.\x ' |FV\YRx]ܹaÆK,;ܗz@E9rSNy> V|#FO:534m4|%瞻K=F@t%0f̘+"c?ߧO;m6*T駟ʗ/1L=+U/#,YRopʔ)gyf+8∕+W池f͚|A:u7۫Ts<̘1M6! \عsg g}v0a/hѢB]ضmw=z~wpq޿^:\pwYz[nc>  YSOիWqE->>h.~i.T\pu5o<ש%KtaժU{0%%_>8q 1bĈo95j:ƓO>9hР<9ÿq!H_ᏩgZd [rSBPD41 Cƅ%J̕ox'%PS2e<~wy*[زe̙3/ umjjj{V߁:ngWFbnŊG}tzzzkz+u{K/cA_L=xYm0`+ur/Z)hP'hP;h4hwrФ~A +o~yoQs/V9뇜uMsR8?0Qݬb͘_W 9jIl,+z1H⒘N N g~SqI&9O̾AK J^=`Ν 6\|y}*TЭ[+})=꫉'N4wݶm[a/oܸqD^r%u)o&|ʕ+%UW]SO_ :ѣ<\{=X\gH0b쓯M O ^Y ;(MO& ˂q ^|#vu.uppaoF JS^K@"IUQ>:`իo?1;w.\pΜ9fz뭷֮][Znݵknݺ5hP_bExy^^s5?xa,Ao޷S'8o޼Ը裏p y,6lحL=^0;nu|YU2 眉3~yoQԭN:6vA<IJkD&8+Obf9=]5]=e3jO 꼏&$+1ӳj)Nx(aX}t^tIRF=Ư?|~YfϞe˖"lRfvu֭GիW2ϲe8իe/eb.##cȑÇ_~}[jmUV<7o߾#w{8Xy,QC綋5u^pc5]&>|}7_s?*qo nx$ƉJܪ%^H֧6N&qbÿ+]ز$NiL@Q1=UXs߿x/Xo駟.e .U͚586mڴnO,w?~v6nܸjժ3שS'VYSiӦC=4íZJIII@_3 |v7oIF=Ho説_}x#9@~1nd{&MAأMN\6+JUojd%Nsfҝd%uhT'~&^y;^ \ûz!L)aaÆM8qſK7#袋רQ5k|W˗/_lY8%K(SeB7/Ϙ1s[nYgo&wC:uz7u6|mܸ|)(}fU\U-NMyA;URR0fhI:/4&V$1`O9_sj#}r'\rwnĒ@S233-[pvqi^zu#[n Ok֬o/_] ܼys蔔7oNVZ˜8qy睷2èQꪄM_9#x=lrى'( ~?:LP܀_gEbj> `r.^KJJpM\ }rea.͉7 ʦ<L|QP&%x该90LBj~Y N FK\-D'>00.BO̮ +,X`ܹ_~e\f͚UV\rӦMCiذa 6mz.ժUE0nܸTV\yѢEKT?wdȐ!<@I +-dGme@ddW Ƽ9 ?}:c̪BPz@.k׮˜9s͛qdMիׯ_AsLv% <L\u]w}kJ@15a„ . SOM<@df zAרn8hP;8젠Rn,],\̘cAwk{b5 ~ski\>Wm ʇV  `险)<!àN<4`E<N>-#Y(iNKo^L#Ɖ?vF1J j1O _9 '152~n(VJg= O?4*O222^F?vGq*UJQcyz>FNV9L\ѺS݂'wu}φ-L9coK꿷9qyNGITb*.o:._>'~9~INK𗻃R%W~wyߞ>}E233#nXRݻr!tP͚5%;w-1:)ޱ|A'&>q``x5ޱ|ygp]o8+jB'z9+\#1|͇w,ի]MFbwW,JbxW(DI _Y+?Წ_! ,T~WiӦMsΝ˂ \_xXr婧zcǎSLIHK/ԫW}TҊ+jԨȑC= 8 =O:mǛ-z[Ƽ{]ӛsyԅg^3SO ?9&X?_> :N<Aڟ2$|rqN&vPW'{ѰagEM1x䆨Y[EJ<`/j8%)+q?ؼyG_ԤIdIQSV5x …_tqEM9x7!x,ZEMXaYWfrܮ} _Ĕ`A3 +:_rZn݌3MWEءjժ^zAJϙ3]v۶mĉu떔J38c֬Y:{ߗ{znCpBwQTm߄PQt^(A U&("K*HNҋ MBYHf7l9g=; fڽ͎ŵMjQ=qתI/GMSj* Wls.^?FvUÊOV=T)f|b>Zmhw Fu{:NlbPmR?ff}I OFs)ezՠ{/}\bF687r) 9yʜ٫ӖَjL #8uZs5qOlC'&+Zѣꦈ':~%iJP`K۰aݻw]6VX*Uj׮]=4}xyeH1ƢE*Vh5yG rH<&4nք7H 3IZ/P,֍]% 2jwM'I SO6L;=^UmrM2CCgB}IJm|m^M>bulb^&NM[|Uƛ՟8ڦkZAԹ}GWľ}սWVluMqݙXVns)q@ulb~g?JW^>Qݻs>x3f̨YCm R + 1o Lh'ykdbMuwfSͷܟ ;M1Z@$l^CX1mlBڻkPSɣEeʙS{x5q*2 SO69,axZ\ڽ;EhÂvzmZʿ…dέ;zrm"{ W"^L,TH[NDZ<ڱ+µtz3`Ams8iyjӳb+ײz˿[<*P@lb||@( +&y?CFg/S*Q^Ay۷xٳgׯSQhѾ}Ƥ; ܾ}`AAAO߿4i4hcǎC jDgΜix,Fy |7֦M~qms,C'U\7oMBG)nO#婫G[j ff ze=|BΡCʔɉħJf+ohbʔvK5bbDbϝST%= Z=TW^[bߔ>s־&sijgmG59k)XdI(1 -k2N8#qɚNfX-xRDbZ:U 坫F'N6y֎zݼn"[(pӧ͛gM69K.ݯ_{zl8p\n/U6go )Z[`qBn6{7oN0ţpݡmYm<|T#(}F<;S-6ÞI尫G҇N\i/-ިw9zȑjĕֿuR f}wK~8q%}vxjֵԥ㥟֫Rg7qjJ nj@uxizUv:q@U/įV;OP_}N/-X*l@UNaj j u ͙VU;9ܯTʛƿC_PykTsM?X02i&_?VpBy@ĝ>}zc7o7 U+[l ϣƏ߸qgV^D^Oe˖RJ=SkDԩׯ_*U*Ge1(F77]Yqa5rySpMfڰ˴eY0дe0'-<4ߝNnu/SŔS]Meerpn܈`cZaerrK}qnerRK<(}Nn/kh8\o{UK91$&J矷-=~j_)'DİѣmrhxגnEy;wnܹӧO߼ĵmܸ_~,Y2k9ן2ek +,hn+VׯI;d9V2r|?RV #2W[׎yIT-7E){vMUYL̯Iczb>MalQYu| űScvbMݥL(1[vhKGvKi{Uk:\WQt'3# Qt'N<ٳ=s hԨQIͼy9rͫR >K.7P@ HyGSQM]h@[FoԴĺQ;δnQehpHLZ۩cir'S&PԈ&CTGE\duRh8P;8H;h.nҠ"ލom7/$$dӦM'O6m͛7u˗/ѣ{mٲhѢ>|&[l{+G8pUV֭3miݺŋg#9kio&z9FrU2@DRy \\`+ +t{1UNsaRT&7/iY|ݞxOq(8l%3)8Jiu>3'T)빔Zmz1H&T>vy=D8Ie Q W\L>U>hqO+k:j'UT1"1X va Fb|H|YXq<*U +ZD(pكTN7 ={ 6nhz4bǎݶm۞={&J#B'6h[;`3fvH>7|SlY]xU/-wujjhixah@tv⼭XUi&ߘ(SeӦU;hik.M߫nO5ʹ5fS$d~[1vKܞAgۊNb 2T>t욵.NQ(SaښMD(U>eGjYA@b&:Q$q Ok2m͢ه&ujDđ}̚sX#E'#S%:6RZGsj*'AykpouQFM8u˰LrĈUb/}v\~kMСCq⨢X|ɓonO$I:uԡCM<`̟UyUukG#fd3ݱ6q!8xɚiSW"'}_$Pԇ8BsFiSa#':l4-? \O>F.sqdwް3fLĉ1RKmڴXbO_ȑZ␼8Dž N:d|lriHe˖}Q``eR(n6i|?][#?o#fcgMW,C, ®ɴ|4TH%V&:#1L.фnO8g= 0#VĎ;3fܿiҤc2O$Pf;%&G 5."kכU5+3{?cפ$nRfTJ,u{W+vUY D(qҾdu JZCvئl51[԰®58[]ku[&D q/aVw5ᚣ.U(6D" \8kמ={vH:]υbǎ駟vXt֭9s?~ɚq5jd~CXb7nt /0a„eznH|o#fC>;MJ:qd}#GYj=d}غ73R&fO^[B{Yjx??h&2\%6PĮFpCZn_ߘ&hq]뽔8]Ȱ+abucgj[M]jdR\S&^Iq}T$ZOԪ{%[&tJ}xDbFp}IC]H" \< ۷ǎ;xӧO?YYH)SM-X|ӓݳf8)WB͛iӦK0'F9Ϟ=G#(ֽ&,c+L+3KrrkGiK}ndXOPIidZ}UnOuѴORbb\ݿ¦Mugʺ=OiS*Z;OL$њ?Uf:IgPt/;oJb5.}.X \JiS-Z=NbߐKsKwT+5Gu5Ho@T1Ӧ*wrI s u6UxO+fc[pQrky@O:u ]O?/nqTj?y`J*yq1H֎)GM󦃳9Ե`%-iFPA&U'Ѩ*`,zߴOj-:nO,-jh' .%&ˏgdžUZVy 9y Jij7 +if`-9+׊KI,_D<䜋grUR߮Q>$_$>\\W/>V }Vyl||^Ҳߍs/;oj:JbQV a״+R+dzCc{)v| h|tŋ|^w-7(Q\;=u?+<֯_Ϭw{y@ŋo˖-/$I9}t,Yn߾`,gmݺ +޽{ƍ.]?7ڱoѢE=%sQ^Ay +W9 ^Z9J +X;;T4o:QY;=TL[ZޜnL iSaߢB8 shfһ=1׳KʮYΥߧ҄4:B(d{gMǃ$fӬḪcd^ΚU?kw+M$Ф_]z#1~۫Z}h!8"SeӦK9utjɬ9u7U1mʧ;'\:[uLd#wWdЙjڔWSvO.;jQ3F/2Q?IAuێSWܞv7 XjUرxKč?W^Onܸ_pSNIYYT$1#&פ^JȢ4yO$xdd'Ws>h~M+YT[D||Ԧ= P`Am<_DHHArY:u*aJ,X!E>ܱc?>>-[Iqu +'زtY6o䵉t2DkT"'O\аiZ{] ]J{K_oy'qF]Lj]_wo׿1oLXNbߐKsKEMجWǭ +hմO"bbuS[MK{'MI s u䯏ؤPAкY+Tc~6?*~ 1&;VP˗/`Ay@HHH N;wm۶ŎۣqUL+W.w֭OuСݻϛ7^M:~d}z<6rZ4Y'mC xӋo6UOM-u/tդfWex[H'IMh]/䦉7WHCe5#lj&ۈ7/'oL8%~N4_Ϛy'xu&$^Vda/Oz'8+*T& [&I;N$^S@RvgbV;}~ЧݘxU%&mI|B;{Ͼ54@WܐݻTR*,(h߾aBܡۢ&Ν;$$X~Ϝ9AE]SL~#%IdŊ_*fܷ!@Wm2Y_2VxBaLuh͵~wޭ-*ouּ5&] ԦqODv9ty~ڧO'ҦMD3Ϊ'y:rHҥϜ9c?~|`VPQY]h4tmZ> )C;kɜ3g|Oc暬Lhr'e֪U*] cԷn`8.%TV|6CoV?'n0]oQ$~>M5ıDfIty|&NSٺv_|[Mn0UwPZhҐ4@ma8EWǩW#dcw_xKLn1YD(qhVb2lrI𾾈@|_LKlK4X%N; 3y-6ix>.g,^zb;WnѰD@P + 6}ϬX…f1ׯ^?͛7߿o|w~|7n4crǏ(QӦqYxq2e,5(5kZ[;qe{on - &FvfNo}5ji8{s|׎Qx#uZOmyjF `/qwb-koO7ml.'^qPC22BM5{{ 'nرTi:J4捱Wb}l,E6RѪ:y|Q[oU=hQ'q8qcS7V]nHDسgOҥ\yĉ5jdzҤIdv> (Qg6nxx }||>1cF ݻp¡UaG{ţjN:e55"[oyӖ *~Ǽi}IbH^~Y:\ۚUUwmrj>ep<}=ݴ1f)}1U6ok^v*w'Tnb>ô1f7&돘iژMD(1Uըآm7LǃW3{3OlYCiE)M_Q'FYs+u3!{O=wѳl8RE 1NWg$K ;ow=2Wݐ*Xpa#ӦSNeʔݻrΝhТ7nl~+Cڴiwm#<H{d}:P/>gHSڊpŤ)IXa6༌U u'% 47nTbn MUICIL.6qA^ҲG,w=RK#xLIC㪔VJbFؖze-p UJuca[)+ZēZf8'&M7K<"xJ2^Q$G¶ Fb U] l%VZrJzdSc/#x Ny(XfMܹzZƌ:kڶm#F ɓ'?w\.+*Vh4l0 1 GWMh`[F2zZ}iԬn$ ft`ysln۾ s[`!;Bcj}NV&~1‰}5{O:!‰4cPn&CTG/5&`v(qw$6e~18P;tQ>-[jԨK}Q杺4 Z駟*U~n/_K*uɥEUP… 2duvK-[ڡEK'NȖ-_eʕ+K}#/(m%4S,Ki0o)su~ټuNJaiZͼ?(ՋiifɃ&4We21&mDb8 >O>1&0014'1׳9GSw)SṊij4J̦A.&i{Ub.٭:.n2}2FgΝSWM'lP Jgmܸ}/_YGyoe쵶k믿6 &X7A3/_m۶DQpơej,iL 7kN%uXשyqI c2T+w*s^Mdz5+f=&P| jZT]Yx񨐸QM^';a/j\D{M +xI ;U xY +i(Ga~͛ &p/ɓ'˕+w!>>>Ȝz`gϞM>{.\?~|?8hwܱa̙a_pi9gםԶgNN@LtҎ9e?{Uw5`"{ +ڸHlb L|G~R{';W0/T';WWT"%VN'Vՠz3%Vֺd*@oD*Z;O\YCxK|ԷCT͉P,O]Vr 6}Ϟֺu#FkmРɶ͝;jժ+[i쵦KqƵrHCy |E;e#f^OE[he0jOHys 3݊[Ӵi_ujpm9mra^+&N.??իmY։mmva1w?̉-mqalz N?2Z-ĕjYJ:s48qlG5UjQRtX<%8sܘFyK U[txTݞZ-J8|u28s6n '1,V;GgYV*O~xڴi=g۟Lw~駈gݺuo0}Zjkx1[zNæM +Be\j9vS"hj5?o_;(c* Wls.ڝpy[ڪlNԷm~l-e[0U[ǨOB`DɯK%Oܻ:ZZ]ǩRI$X6B#u[db.34[qF&xuT-[OĮ]$E6M;nI%ݑhĎw޿d[Iuu1G] Hם$~z'X6ݴH/=k4L`HkP,)yEf˖mСn] 7a„F9~7s(8k.lvGT\#(U\n#4v~8ݦVrOxڊٛ؏*NW&O T.̻[UnN-4ĘڵuĿV`;.$R#w=Lĉ +{-[l13V{udqTZWK# 3C3l/(YSqT#hշHtA"h:ZĵkUΞ~ -dbz:wD-;9*GQ,"YpΝxi\ AAA9rp!yeC.j OPWmk.^蒛5fU8֢FbzqRo5˕ NnJ׮Y3͙c[ЭM͑ܝJ?v$#Mj\w&/&^j{L VУ&;s7/14Bst&1P7.j,D&w4n+WlG*gN?,F>8=gHlD D6q-=cxX9h(B_LTI?`7e[….&vo\s(p,gNNL[W'3iMb̌UֿY#HlߙV'jM\jsriKݐجG]<ǐQ ЭH&&l!9}j n>s]Xwgw&1̉|be|.$6 =m7D 83g}90`.]X6<56IXnˢWS+E2%򷭼}Gi>u;lNz#P|!zv[%d,RūM|.z+Ą#(;v06mڔ'OP@y>޽{;sԩS[3<)0M^K$]#(]J WnfW~C;+U +iK|~YĨĪ%ug:kEJ4ɽx-ǕJVvTIt?lWy*ĔNhTbRˉ(&&L:^zOfȐa큁M<ׯGܹ3w֌C(/{l<p>_MکRqwUkۦ9}fMTHTI\: ٌzD=j]m!V(h}ĕQuwb2Pb +:WlU&`K,] $h_p,Y8q镕+W[{:g.*TC3>#G %Y{~r/)bWyk[C(X@>Q.qz[}M,QC/2dHǎ-",6wѣGڵ7eʔ*T^yG'qx֡TӗY6|yWFuڦDAkY'ϻ+/[[Viebrbbб˝D'J)3'$G5gF6GK#k=УHSeT*.{3DzDWE?3C W\twQ` Λ7I$6mZٲe-OΝ ޽{sax<8m=tROvHHRԶK!WYycI9+ן$>'slox,K,*GO7B尉IĘ%߯,rcq^ ~|Ttܑxg'GO4Μ0 ѻxc1H"$DCϏ'&<&wqbȞNX";wW_}GS,`+WvV:w\ˆdQƜ9stqF ,'PD^4.hذĉ=EP`#Gnq__߃ Px 682eʳgZ6<Zo߾^{-$$sQv_p!ܞ-[5jC +1c~A7|s͚5C("/+WnٲeByM:^z|Ϝ9w^ |#@Q,bpy![lp!W\wf0;v2dɓ>|8q Gy(}]-t_I,ɹs2et-{&L[0PD΢< fܽ{7cƌgΜ?ٳ#_)SV\y޼y>>>2Gy( V\^k 1,^bŊ^;RڵkWҤI== QD΢< Ɨի7uTӦ((^aÆ}Gnύ"("gYYk=|0a-= &N>}z;o +*x~\u%JVMvŊơpcܚ5kj֬y%V__aÆiƍQ @Q,+*UMӟ:ucǎŊӧOWXq޽a$HЧO6mDi^z[n?CHHi8qL0N: ("gYVu… Gߣ7ʕ+{{npz-X5G:uUVܸq# . >ov횽>R:ujѢE# (pe%JXvvnRJ\ۣp=ztΝo߾m!eʔ5k֬\믿;jժs^zVZ~H$IPDβ<`ѢE+VĞw9rx{ns6mڬXA\reϞ=cƌr@@@رݻ^r'NرcǥKː!W_}UJ= (p!!!yݽ{l-Z=ۣpx饗:tЦMqz.% +<<eAyɓ4hZ̙3I&@,$$d… _ܻ mxʼnǽ{("gy<޽{Yf=v{w- رG)G|… N_|1UTƑX޼ymEyy8C vZ„ ĉď?^xb +)O$IFO{۷޽|֭{=x Ν;`<4V޼yF7s֭_~e ,j2 .]zĉc|AK"(ܼ:Z +endstream endobj 441 0 obj <> +stream +xiu}g`(R+!YJ䊡\A! +p r("AH0U +Q+(zKjU7ݝ+;yv|hfgW/sJbˤcƎ޺|6.ml7}mjoj!p~CCoQ>JBwj<0I^K{ʝ@9tƋRK9t$ܭe_:C@9e'?jȝK1(D +C_$G${}7)~{$of~U;%H9̡]L^q'k۾)De8䠶o%JCn訃}@$sh"C7wHмD2 94o̡ysd͛;@$sh"C7wHмDcyS:;bŧ)~w]lP>;4QS=;4QFP<%`%Hsa4%u~đY"Ρ!Q/>~a˓@9Z)d~wyQ8VC@%%B;v %Hqs`h줭zڳpJ2C·B@%5B@*m("e9q?lobͮ7e'p!(Dp=l)c?J?M"PzdPs(4^:vx$%H͡}o K /vz@ FKw#,I򆀒@Ё/ K Iv:)w[(JC+ PTS@C%?;'NG R&sh'땀J +h=wLbR:ФPzYgc%`3+Vcq)D`#PzgC%`ѻFu|Q@s;*npdSQz.ɺ\| 0K[D)2.?\ַ6!(D`bLKK:ҫIA Rs(^=:W_f[@Lj +Ƞ\{`XsBMMJC+H_VWׯL C RFsRpg0VڟҖfeġ)9K7eSfQzzP {P"Uܕz+@”LSRodQTp~ 6&%H)Nco  %v\~{=LHJ +RJwz@/%HJ@ޔ")ySM 7%HJ@ޔ")ySG sE_w#%Hyw+R?7J&E HSJ +ri$Y/!J&M HN:#kȅ@SuJ"iy_E"MUW%H$N2)D\%΅_G8%Hyȍg]uԯ#@ "lHNkM{ =0"|rm T4PTp_pyomQTGK;9-w';P"|ses3g@”kNJ>rmݱ5~|(D*L 8$y]^vέf(D*J 76v@7$| ]lrŢ %oF_$9@LK>]R$|r[|K- %HGV찴V HnEI2}6\J2-ɉu>Z)`ߵ@lKYuWK˟xxfq[+6%Hٖ6v (k7O\)Dʶ]qK@9m8< +L R%oVJ| R@[)w=u_ʶݣZw`Q)DʲUJ@pC#Si ,>!)Dʰ4-e+/S-NR] hP{}ߓ)W\J2Cg4K]t՗@Ǘ׷R3.@_ Hvm̯,P2κ~?7s'N~w9S1.j2<` +d %Hs袯&J.1G[?s%`Y^WMmrsh;Fs;+)3](Dj:F!|cǃ묵*)`2c"y%VxC}~s꺾#"E R[С0V =Cjd;dټ(Dj:(:\xQKO}f(DjZMcgGddyR9j};u8 Բ$:=K RЁPs_uP?}O R'׎U~457B̡QY?ƫ@J X76^"C̨%+W^sd,"C̭{L|뮝' %H]nJ^%`CePkםL"Cz,.-?׫Z줢)MS{79f xwj@Tshws|$fOKotsV FRfr_]1؏dI~t6ydf )ڝYy(DJ1K@=y@ R9xo HvJZC $y*P)Dj}-[S@B% Ijߨ"<-I2 RZз$ +@V[.ݸ{s5/^zVTm]5qoz_\h_^5e͙3ge z{{WNJZCo|n괎RvO,lvyf?ߴi S0>S~;:k%OhL Rh ll(.%H%9,f8(*%HUS-m-@ R^%ll[)"%H9nu)%Hw`T ڱ۷q;E)Pu㊛F[S0JP-kڸBQTPvf?{*%H)e+/9,y}7UJ +UJymڸPTP*-c0ln7V J +W~zpVQ(D +* ;o_VM'7)I{j xUa(D +*/iY[YI~W)ʉYm}ƛwcdQTKnvfBQSNm[B+ @z~yu6;@ML6 )`ֹc2ZP"C7wHмD2 94o̡ysd͛;@$sh"C7wHмD2 94o̡ys<`ۿ"š)vklq/R JBkoA@"У&K$J,p\g<13Quqs貾,7w$J6:I]n=Y%Z4<.(N:$u XD BЅO%Kn%J1zW\D gLҗo'J:kG~A Y@zYϡv?^,uW KJ*9tK@(=I=W)Vs7$J@;o^%I,޳)e:%t K[:@ +Y͡_8~ j ڧ$G .@͡hJ@MJCԤ)`2>PyR I R'`kI%&%HRGoR I R{J@t>.{!%&%H*e' b0%Hm,©k:*-J@mJZʾ>S%&%H./8ePjQP*u]Jf"EkWԦ)JwMN E RX +cP/Y]-凞+śįmi^FN"CpwhK h-muE R9U ]y-(DJ;65y[}QrxA|f% @/$?J͡=|Ϸ ɑ@ts;kuZ{%Q4* +endstream endobj 440 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4106 /Length 33865 >> +stream +x s-#"=&$*0cB*iZh=[$()43$%[YmZ3{9{[{{sy_5_|/x<*̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9  s@@,̉Y&L<2'dxdN<2Ȝxe9rcɒ%s̉^ԪUZjȜx@O䞕>}3Á#(7㎋/8zq1L81Á#(7^zE/V7TT)#!ۨ͛>}큤K.s_?mڴx +lٲʕ+g{70k֬-[^yW\qEǒ[C<2^~vOoK<`ʕ[lŚ5k[*U4}:udqT,^8ZW_}5xim\G]re|Ky̞={ηC}?deH|ṡ~"@ sQ瞻zꄭI<2!t[nIѧfnz`YfjԨ1ڵk;w"0nܸڭK. (/;v|G )@ sr< /wq˗/O֡\zݧOB{M6-,\y+ximP3E<]v&LHg=Of}ٳgٌ'2cƌ?KG< }cƌym۷o:u22&(gnzҥתU+u+~5j(!z:ꨟ~)Y4}u֍okvAeeHeL<2Bx<}ڵkSOxz饗%]bEV4~G.]<@<ҷB8Fτ ڶm[6)XO\jU&tK-ZHx@6x@(X՛5kV+VXfCg:tXvmZ|yÆ ΝU<@<ҷ"}ݻw"M2O?]ti54iRZo>J+>l;/| +յk$kmt5u~i#G+VتUΝ;hѢ:nܸۧ馛Λ7ow._~ݻwϻE< >`}]jU>=XΝd<̻k7/QSNÇO!*=r[0aB*UJlUSt6mZƍKhEg]vO?t[nK.$uHx@xeN:餉'yN8')Q0}&MТEʕK/n}-_]^ŋ& H_ڷoK`{ꕢC4c=ʕtxcǎ-xxO< A<`ʕ۷Oql[oմie͚5{w֫Woƌ%!Pg}M6$tqȑ;駟>jԨ/r]wM<@4tzs֩S'QJ< K6h`t 4誫*;[;殻 ֪Uk9u]wqP]vezk }&NxqǭYdM5kv駟wyi~k??W^Iz={_nѢE?쳜x@ +K<@<'x_~٤Io6CժUe˖GuTﭷ޺F8wڵk'[]wO>tM =?hSFKjɈ$z8`ʔ)" =vڣ:꥗^*t+~|Vj׮]# 2Y~EzhA?>m߾}{QbCLB< [nꫯi۶ R" =pM7]{)X';V^]F:aN;4w7߼ >SN[oUbLB<  ԯ_o9/}'^>X<`ʔ)xUoҤ6lS{ꩧ?dÆ dOhŊ-*T/vie k.vqǙ3g~g s/ԩUP!Z/(wqO?t¦Zj͚5RJlٲ/o{}}5o޼dx@A=ةwKL6M< xdN<`ʕ+u떷CŊO>=zԭ[_֬Ys [}SN9Ѓ{{o¦ +*\ve7pCʕ3hꫯ[Zn3D/ s{< /|/_omٲ4huoNԬYz+'''|sC-(1bD[l1cƌ5k< s{3sf͚+V}+'ǏoذaZ/ps=u-ѥYw}WbŊӧO_~#o,jݜ;oUV-۷gϞlo7 '+~~|p44w n +*5hР*aSN z_~Ek׮-^5js=Z*q̙ӨQ+VķD~#'+o<@<묳%o<`W\qE)/=+V}ݿMիW9sf[&߲jժ}>d 999g}AzbD< }[l /ķԬYsƌ[lEnqòSy?U(lSF0ǍAٟGҰ1꒥9nyRyCEtuUtuDFt:y^^{Ǐ?gΜbzwuW۶mx@-rge˖ĉlhf /x?,| ,)jk?5 +{Q*WڻƦּq8i :gGÜǼ:_ϜǟjFrgFs|79#9_uEһItuT{uj:`V?sÆ ϟ߲[ M6MXdIڵ曂Mm۶0aB… [jqy͞={ƍ{7׮][!uaСժU+}]ݺu-ZrYg={ĉl }~&<\2_=RepJpƱ^{Ų7uvlqϱQEW +W)G3Z{m))fQ _[U=U8r14c};3#] +ڎN;&332`V:u>|x[n1c>;oh0ѐ +n\3jժv-[㏣שq-8qbt^HanO8q;+ӊş㳯>%~\JzXٟ]Ŕ^}5zh =8RT|ݰ:ӯV{!C/#H4ujhҤX0)\5بvlG&xʾ"O:>$dOËC(e<`ʕM693=6:tpwo֫x)~A++V^G}W_}o-j< /3fC=4eʔ4waۧycDƍϞG /$IĉK_ts.#ð.gb* K)OmՋ6+ 'nп +ΝÐ!v iqp0~RJsW}4\~y6,qSK`\W-tSқc_d/%9*;m[.4-9^20(%m^˾" + EJ)GB;nSZ2УGuQƍ~ ۾|͛\zڴi[r6my;;7}QF=#_u::묡CFKmct޽_Fo|{쑬x@x@3aR8OҭVޡ!٩w<`='Io?mͱM[믱9Οu=Ü9%5*֮>L+yyt}8yv*ByK᜾R:cxO86mjժt:WTo߾W\q&l߸9蠃x㍂MG>S?t|2Zzĉg}%^#=}6x36mw 5פE< N< 4hPbC+Ɋyrh:Uh1{}^:yʯ~aW/e< +Bs’eZ1Z^禳ekֆo EWG'@ W9^2eJjذ;ܷI<ࡇ:묳 +n?3G7n)rʂ}J*pG)oӑs9 4jժ ;lkz衯g5jwb/8rcpG;ug&{u__Vã.q:%|s{^Jr\%S1:g +ƕ3ۄ{+tU* Ct1Fd!9+<^s,{ѪFM*f{_b?+ #z:`CU֭[m۶wܱ뮻o^z-ʷ}w:ujժUGݱcdw/x@{7lذ{,jԨq}uQ6xwyEVP^ӟz/8apW]j/gjqBeahcb^}#+N` Wl{H{so֭Ry)ԩSHت*9Z|7lI&5klM6]vmK/뫯{FH!'' .8p[nwFXpaݺu/o.!Cx@x@9믱ێz[W g韎s¯sGϨ5ybx[Q*~茚]C0OI|3b6.̙AbѪvXQ~}FsA;Y6QjE7j֬w˲b9]θ.jtl =Fkcq\n.'gڴ`XDY1'':HѪvh={c>~Ѫ9v?${a +?aEs<ڴS^-;}Ic?2VqVcu,珿_+pϵVfpr0{nU&~Lد^!=k|K#eÝżA'>+O?/¤I~bgM7_r_g%SO65N}۽{~F[\V;v!Cz뭄v}oѥO֨QcƌUT)tG8r0`d!}v nѧOݻFz w@y*F墣ub/JR ]skP!jl ;es,4$p %W؊µ׮7*dъ[19&h0 tRђJ5 忧d~l='{|tu?, + Dga)OիW[/s=7y5kPg}[B=.m/xWnݺݔ+#FHxĽC 7n\K.ׯ_ʱwtcL8uyg0eQqᄫ 9g^= մinci>Ym͗z +³B?lIw-[:28pbBvx\lU:]ݺj;ƾѪkxhy@4+6k~;QØIva`q/ +U{ +7Kb-8{!}s)(/ R +*VH$@Q.y}'N?~G8Gvە:s|۵kOK)Y&:7cǎ-x2O v}-] k~:蠍*lٲ ̛7/%:_?xĉ׾&495|0U*;ӏo3'WPN KSv]݋]1V9ymF;H+F>ت~$>ѪFszC=}VA'ORJ+VhݺK/o{V-Z4lذn-_bŊW\q?p}n|V[}g)k=m\uCڿ-GfMG^~/q\G6 /ܙwC~{a70 twf֗oOI-?d Otgo MNM7kMTrTGXt7zH7vOt4\?>thRyG?v<`ի[s=7#ĉ59)i«YV:vs{hy@~R +[,ߞ/'Ǿ¤aݿr7 lxS}w;Qd"j4LM<0FV+>j,̎ۄI#Bq}´iVӟ M]1;ckּՑ{//I0=jh5?y7n&M[n}曃>xΜ9-YZlٝw9`|!\p<`͚5p{y~!+Eʖĉ֮ O 3?MZrx|w|ymrr¼y] +W=~3?~}Vݙ Jb4'ǾoPwUvIpwfΰ4?Z9&hc}ga]{fmX"[c~*F"T̫^a#1y5#yAX"nL^OcZV ]rjݓœne,Ѩvs愽r_ +b?w.u7?-.LρFjF9}b]Kc+/Ȼzت._b-V:'y_%ncwv6-(%q[#K4P6x@܏??Cq='lРAɎ[nz'V\k޼y:tPܷI< ҥKo~:7ـ2sU7tөS֫WHXOׇ3ZpjFNmUps[ڧ"m/Npp Iw{plɇ.գ]_9b|&µi;…&jgl8kxhU̞I[QI[#?i+P~l9rɟ}B*U>۷// aWTgiѢE7n\|HU< ׏?8xC.Y6x ׯ?ǷݻW^E=x@xzj3c7O-}/ +/Z~huT m{g6ZbAS+5<Vm#t$Yv?Ê_qfKbA=Ү8뭜ڞSwYV,͚Vck9a eY^/N ܊=Kbժam?5]گ}1^ooԝɰ_V7XbRłڬiϱ;꣗}Kwoxr0#;!]PNs?)qSc ۸.]>|̤_޽__B -YiӦs΍odM%.joٲe0K/r_o?ǏSδi6lG< N<`}4uvhzz–%aØCoe>ab2c=Kv;g +aŦ ~ [ O&cpb96 {0ʯfāM߇ձ(*& ð{#DWGհ*Œ7CDŽMy~.adX(, NTJsLQ1蒙v+aN2,KјP+B^{m +], .OPFY (Mc< W4_|q&LX۷ᇷbbW-رc[6dGyJ<`}]'|rmNNΤI>bJ< N<`}t0hT–/xKzeH\1kBɵBF_# +C:G6EXgGo3aSб[FREeфMW%IRdn +6\T#)ˊgXSx,aSyH8F-i$zC8pa|kx¦+B硥0a%Eڥo{pApum= }/P;H4K!)~$n.ʹ77o޼C1bFM0Fbƣv:`ۊ+>gQ dݒ%Kի_ƷwuW&'PM⛂-?-kg\)Mbn^v-<]#l~,MXS0xEhsXTiqMW5svN<~1|WPfxP*!IxOC=S%;Hd~h[ + +am;D'VesI ?%<]k'wh_cO2gҰy񎜢jY@tuT + "?'+-=CۆѪ&S;5k-w?&hھZ7>TެVlEH!o;6lŋ5NǏoz̑#Gv1B +>`7B񀬻 wq̙c1+'ޙ5/KK_/ ]J`!}s¯_V~y/ oW;XOg$prpu1;C ˜MÓ]xHծ2b(%vJ+ծVorp>E}R*,%#ɋʧRM +55ϧupD{%ejWAYxTvp>rxUj&I +IO]d1a>M,ejW~ tG*4[?&45vtɓձوJԻ*(P1cL4)44T:eʔm~)3k֬V~s+V޽g-X^zdEy*TĉU[Ζ}RGy|p˂ћH4F\4@JV6ț<>`To*5'Dܑ +8zDܕIs他_|Hz=DRgT[doʪޓr$4z,ZZϥG~s]~ADo&?q%\cRy}LFhҦ}D{ʊ*?k0q/'T S{9|͛O>M,YΜ9/8qb3/ӿtss;uT,Yl'z<ymtP3'~|Tҳ\W_ +Q[Eo'yK\+vxHRm=QVd{)8" +ȹKb攈kM}n*%푒#j4RG:>R]vEo)L+vx\S"HXyBR V6Jj$RUs:TUt-(f#"G9}Qݷd"U(/"[9<Z< W^liٲƍ{ڵy>xB +7{߅ׯ{{{=K$IV^]lY3_y@XXضmۖ-[jժ[nEM 2ڵk׭[7iҤwQʁ~eĉ~~~66V<~x&Xg߾}ǏHy8S +oyrk~4Gz3>pilكKRˬAr]IJ1z(eUo [:Vvd@KrHj7y$e{(i┈Avor|9>U},ej4F;>%'ZquPDJ]ݥXidM&ő%b"yt'>ODp]ReP{ʴNR5'<&q+)/^tM&8|V-cNP6.~c˾WY9>=#'w2n?GH/ծ@X뤇UBNXN)Tx,7]d`TjW +PX,rT**JnrE$R6A$<tP{CiPUV[B)cφRO+tk$ߧ[5j*xҥK V 2etʕB +]6M4&Uy@DDĔ)S?}Ժ=|'NHD<޽{r}>|&;<4i.\uT{x.ZpJ[#e+E=b~ <61dYsGjWV$E{!]^x=,UU%KgDpFr4QGk#j+\<%Q#)9_veW$E{;)Trg0<_R_+U_'TduWE˟#ׯ5Wﻺ^2<"xou~dlju}Klh-Xzu ={6n8/_,Z' VҥK4Ӏ&3fOʶ={=z^77gȠTl/8sLZ.\`{2iҤzg}c*رc8((HlGyiܸ++w-%l&M ;!RE;9S6?^k1i$趸kLt`.71l#),m}Mv}rߒUyℭ>nk#QJܕGtܺ"TjG~uGSK//s[|}}͛aL<&$)RwHfn6ȳǢQIS6ڜuo1n$$j$Gdz:,y.-sRyHʨv=mTҦ9޾ZwrT2wsOʪ|{ḇF 1#7߼Ysgy\;hOһncl5z}I![mO ~|4Hz]d#JTŊl2 UA~nIҫVS㠙2pfw$Ej٬Iđ#k =G{G|,3~ҳs"*qq%iEK$#_UGoU{=LF.汔I;IƚGNeʟ8]47$ezD)&jtn"7]P)H^"]}t9K Aʪ&U!\[o{D,VR^fIOSd˗6J.Ж T8^b4x@|i*#tuzmIv駥 "Eo]}^UJrFoepÆ}n%|.~SnjG{$_IQWٻW3ȡCR}#JGxaÞ=RC"*kvF-^DrsV`[Qb*ec_Ϋt4,6%x(#*1:& $Xç,^RF&9. FlTUIyN~ORUs4ѣ~kU?ٰWetقM 8$`J{r+I Ƣv#rsש{ϓd _/UT#~ߊ ĿӸˍMfԬiEl +V昲c"JV1Vᄈ=BT7JJH5T{Z8Z%j?bIY^<|cj%lO (HGG4Rd$د\)uh1͛BaQN?>ri#}DScX!oEJU<1\]ob3N[şJrD1mmnOY5FujG _\J/Ypڵy>xJڴiS„ -}ctDDDtaօ=== (P譌3󮏠<`ƌm۶տTɓ'+QGy|p~].톫wMѿjBjp~i'˦¥TK6ghp2ن7=uLJRZk.On/*#ϓW͚ɼyVDA˖2kGLkՑl 4m*!Vd[k>YF +B|}% Cw?W4(4iF~#hI1!ɒb&kGJ70omrTG6!: 2V"ɟCQ#YȊQu2hB{Φ2phPj־LjzAV=$M0؅}z_K$OVf#iT޵p#b<`5jԸ{f:uM6{=v0&ժU[rg}f{ YTޢEf@ɭH2ܼy3W\u #Fի=bQGy|p#9|G=e$]:1;rʥ3bka%bXbAMvYqA2ܼٞ)q0Bud6Y|nE\rD>_ɤ_Kڴrb2ܸa06d'f:ʲqSSPwGLF,C?T;՗$ ( W^pUʅ@y(α`ZudYsYY"}ɘΑ/_ytyI1?4cij8n6H/嵒)s9+wFԷ&@Fku}˚5ÇM1< li&>>>q}a oժ՜9sL0UTe˖-//ѿ(\l/W׿̛7Çm/PEy!TMRiOXnBV.T(UXoȓg{.K,bO+v\]?>I_#eWZ9&OVIJE֭vcV9FnU l$+k!mۤlY;FTcTI'je1I埵$qT˦"H"u\ _*m2ٱCJ~u'Ǒ l UjeUKrO#FRn߹SJzuddu#ӈZY2Go[Bes:xC*V/_{.H^dݻߟX>ԭZDɞIk0KxXF].D K_ș9.1(VZLիWXT C9sAܹcQ&:to%h0W2}zפ9L)2bzrj('X#/*,-޽{Ϛ5+""w4Xzf 2D յF-ZXbxNô[3OOK.[:w<߯=Ct&F"WZ%&< +Gr])ӧjDڴ9ƹ}OS .=#3z_r~y{t»YO|U2իrP{"kQZDN_>Bw=A1䬫ENYvNX/M9_=q}:u^Ty2u9ҶmÇ)SOօ3<`ڴi,Y2___eYd.boy@nݔeLN:$IE<@@k*NwTzH2/M쓼%D[^kG}no11ؽ[Gq+),]mۤ\9m#Dg(a߈qA9[}k;0b4$io'e:4bw/S*T6r^Y- y^{򭪽;@YǤ5Ŋ6F$b4ۥhrzw!٪޼#38"]eN +Ed4G>1 [_0a=3rō?Vb,PZ6mj@OON:$LЊVWBoQ>05kִkP(mRE7TUۀe +112n6k}t VJl].=.vpj+4XouNJjK1Gt(d/]رl]~6;!M7Wqd(ʤ R"q_?nȈݻ^LzD^[ͷT8UZ_Vɛ!Kbs[~h?5QT)AR,qXQiEMÌvMoj0hQRsS9]oS)#6D +nܸcǎ Zty +*E̓':u>9bcy@DD7|~}9YtRGy|""t=}QK2of#Iܢ_K߈ ˙.myn׈OJ\FhU5dz'${~Y*>\._{U>S׵U,r}#*꒨Y$"RǢrjKۄo^ ?9QcƌrㆶU"HrE[7B).muiK^@a }U98G \5 -1%4X ,\rԑ!ɓȮ>.߶Qbydo + >ԩ4)P;w7&UT{͚5E!L<|3$$$w={quuh&L0 $K2dw\(W~Xmq/-Kfs<߇cVQo*ȴ?H߼GNr]2I2U|^]m䁑W9;̑y > "em6e刉J +2]È:Z˷dWJZX=I~cŋ%n\"3kMqT/̌ذCDC?,߮_׮2~o,ZT9~WKX-q*F)J16J*2IÈugG'U%RGjP>/ΝeD hQ5ҥ2{S< EǬEr>XER 13r>CD%\51g9qFN^JV DtqѭjUU>XtW1p~:l,^>)Y?;ՔZFT\y_~D~uy"44e˖K.q~~q㚹>. =G9hĦfv#F-n?fEا.Jdׯu͏=?o1i.FoDw{/*"+D5hzL(/ջ +moT*dH^ wKܽdM06@د.bϕǯgu1KrŬX18&>)LGeUK%M"UdP#*cƘc1 cqSD*j|r+ ]DDé|\m%kʪ:;zŒDJ\ >(deV?6fc1}*9(,%ܧX0rȟ9r[H3gСׯMhm.(ܲe ?;vX\=Cvj̷rWzK޻2M?_*EvviHBBkL'w̤E .7:q&7H c,h\%\Ԫ.*ݤK9f( J2Qo&q'A&DHj2a9Zј'+)\جD/y+PvηEti";qQ68H jwGT>9UdR36uQ9;_y"SSauڲm4}w+hEܺUQ"*:A [LDQVL"E (:UЊRte2Ǻ@1FT>Ji1N "卮*hozcӬɭr6 (8e-h}R oVVƍmڴ1ghǹr +1s pXQ@)2b!$H&?(˚5eIR}ݻҢ^N.O~IEIEwFDl\֬,/Ҽ7k~DU#dr/o:d4nJXo5kMG0@wabY̞m4;9q@]A"%_Y},nڵuݍ\u88&g1#tk@im ,Ϟ#6m*}XU@*|uȬYF#޾cdDwݪ.U>'1i3XZU"*sLaJDe68EM'9GD)/^7Gs"Fα,Hlg-- +;2yi cܓJҺ$Id=|yjqL:~,9*P\~VZ21&^x7o.f ,\P,5 S'Op8,gϞ={Ā9r$Nآ}*oY(o-?@@,/#Iĵ{uqqcjhD'P/l8_7o%zWE=Ү\M h$jU~%ɐ6R7Gs.('5hQYX\]uwpߵ03#*YKS@E# 9Pbתg5&gλeIRQGn߮}LtKtFW mۤqV];;֚Usߵdά[o:RÈ;oETcӁo;ouOYխ[us~]O2fs q޼w-Ds Kb~@״nU:;8|l2@:|lVST #Ey@ ׯ_W/YתĉS^ɓ'{xxѣ{ebMڵkg$<mRK%Y2W_}\)-[R̞-~\R{ +pAm1+ts|@79s]}Çeڵüy^'8>)cKJɹ{WZիu:cԫg/Vb>Xt]Ĉ9I-rܪVysY棛g|PU>|6^&.vP8V6wP8@y t1󫯾ںukLL7o^˖-ã? \FMƍ1fe e{9z{===-j9 BBB^|Ξ=[zu`3~2d-/'<b-Q?u߾QR&yZID|_@-+& 2˲c4iַ49$Uޘ5?Ȯ];\9C>kv#p1LSc`R9 (:/^$wu5gBZYՁr1LKBw>Y +$cF[#\({:{r Db?KgGjwQ}p6"""z9vXw7o={$NĘEpssۿjayӧOZI3(XBYէΝYfmڴ16XTtǏϟ?w&3S?F@r[:[ebwIʙ9 9ytq6{^EUҥ|/hե)rSvkU&iM=?OaUs]:siXYv4F#ByJy@XXXƍ,Yb鞕]);4=FYF~Z7gΜN(Q.ɓ'Xm.^hzXǎ[_푫= |@1`"[ݥ;;_r%/]@}QRЪUٳg[gWW'NΝ+Vԯ_X@۶mO=Jy… }||HR͛7OoQmʔ )0z@!kvɈy*Gz7t":2;us+8|BBCCsĉ׬YSlY30`]˗߼y$Jų:/^h"00=(>'N̙3%<@=}.u*'ĉ$Q-E1|s88ɱOaU&Qoygϊ+vIK={ +/_jժiҤ۷>}j״iڵk<@k׮%KZp'OԪUKwС۔=Qoy@˖-̙cg^t zyy͛7QDV'^z7FJ$ɓ'3g2zyСCkE{UZV7?rQGy`<رc֭ׯ9Yf͚ߕ>}˗+WN?5c>,VwUP!((E(l߾=[l X3gl9{e?~d <@vCy *tʕ'Ofɒ%Q|}}===oܸ:8}w9s0(+]3glժ_`um˗/]dK_|E +*UTre777.Gy>??ɓ'+|ƍkz|ÇFѶm[___+.NPPPժUã'KiҤїX]pڵ2e\x7&Hlٲ +ȟ?8FR`>(l*WղeYf~ay@2eva_vڵiӦQFիWƍDX]pe^pMZjիWW⚹={͛농z1bwJ,Y~ŋqQVZj6l}W^ZWp֭e˞;wΜsW^P!%E(0zJ˖-ޮ])SĉG]\\\7o>lذԩS%Qݹs'!!!Q===ϟ$I+j}z{{>}?~>>>4<@v<`M65[z &K,zWTR͙3FH +;v(_|xxxwҽ=~ѣHnݺ>>>J2VPa>GybkyK?~lbL9ɓ'Jay@ҥ.]6mZ{%j!CGitwwSHa~^xQjm۶ErqqnӦMZŋgS(0z޻vqd FٱcG}ayqtb(l=ZxW^Yxuڵ_~nnn<@1iҤN:EilذEb|o>}*U*eڵK0YQGy`XV ={ֺgΜy„ ϟ*Tضmac8q;7o^o Nm{$H0bĈN:#1Mtyĉ-uU|<|E9t萉3fx9,%g<SI }3g\˗YfSNM0rœ'Oroquu={llٜUti۶mʕqĉsQc+л{n@@3W|-[5kV%f 6nذu*̡|8K(q…G&Lp*Tp@VNDy`< RDDĺu~$I̙3.YYҥK޽[?~/OމYEaXx;7Ν;[liNm@ ݻgϞʆ]s"}z7o1b֭[ҥKeg}f,rbŊ.l޽ Ĕ0,7os߽{ٳGUN-+U ׯ_|O>}5Ӊ(lD:pW^mNn%K\tuo~o@@իW&LĔ ̘1uaBBBŋϟ?<\ /Úr }ZN>=bĈ#ӥK|ŋ;&1s\~=Gٳgh‰)2,lAy`O<@`_zİҥK+:uj%f¸qu-91= :7 +<_^>}>|hlL V\YpaG&ŋ9rrJx]zC(]0,obQ;wwΜ9&L8{ :8$[l9jԨ=z81H'Otn>(lGyoرccĈqqdVQΝ;888e9Ξ=Ĕ :w+P؎ugٳGTԪUkѢE%rpbϟߴiS;v.]y(.]%K祃؁vrƍݻ)RdiҤqpVzaaa9rxb&M̟?YDRaÆʕ+;1 +< f[n駟Ν;/Xn]Μ9Uٳgj*r;q7otsssV2<`̘1ݺusb>(lGyY^z5lذÇ+Qׯ__hQg%-[+WD\pS2(lGyN:ռyCEiwss[|yJԩS;t]r 68%HQҤIsM'XvX&,,lر|a{ԩLȫƍ{մi:>HQ.\Ț5A@y`;qܹ-Zݻװu֬Y͚5s|>K~"Ǐ߹sg)Jy֭[SH|+P؎+EDDL7L>M6N޽{3g̤xQɰ>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4106 /Length 28044 >> +stream +xeDw1""50bƄ`N(ba Q\s9 5`Ō9t驞aGQz$:tk( +޽!CEi@zlРAmY֣(_~ z@nawzq[ne֣( HO=]tE_֣(h̘1mڴz@SN9#zZhg=Q QGu'g=dݻw2dH֣(HO=\pA֣H֯_d=Q ;|uUٳgn2ϴvھ}GQ2z$b-^z{x0HO==X[oWP ي+/V2dH3O@ۏ=s=ץK Ӏ@zUVǏxov!4`z$uY駊|IV2O@}giӦYaS _~٢E2/x6HO=,H˖-[?>4lz$xז]vيڵ5jTi =HSO/W\q^x!4lz$7x㊗ݺu{衇2Oæ@oyxٳgW%4lz$K{_x6HO=~vXC93p< z3~~Q4-1?cw8?ٚJX\\.l7>v0U%I={'xbs1aS`3xxvx7M\sD6aXS9ժշ>?Lչ cV۷-AЗK.L=ώQ俏~q8ɓc1xqNuk%6)I\uʟ"w~x˯خdVoLG_]Ov7q>.P sg7ܬ)C"@@}{/;?4l0^7<>V/;lȦ-Ÿϋ`g5xXDo},8iۮ;lKo և/`n{w7j=m[q,h}O|qd>qõIz(Y$fuE{bȸ]q,vs?sgN Ǚsu,YqQt oq!'Nղ% sWWkwi ӰPMw S_nR]b5qRlF6uVO&eJ+wcV5_ԅqq|ʹZS8nF;}8چ717gnj)quUbʨ-Ohx#Ym{ ~wuI1qժfh[c|āϜf#wԻDRP={;*^s=niiϊ>(6Z$>$u)6g,<]Y]zR}I.TzNSmv\,>8֭71suRncd)vZ뭗hĈXzZ'·p˶Vwj94.ߐk2'sHY ~4c'.!},xcqyeM(H?/ڵk ӰPO}8>8=Uj8Xe]m~/F#=_X648%R|于l^8?o]m&ʰ?sZO?]W~BigA&2\Wv&'/:8"ǐɬwJxY5#qY&qwj 㬃%8qqArw?'>lJJ=?|W_}uep< zѠ' 儺MgθhM?rշub?fԅ{ps W۔BX~w>:yJĻN,Gu'Dk`ҤXp;Ťfw>TGUʗزy~+swKPj`%x뭷*^ /pvi_&MϏ3okWFq.1` Xg]˗o8q~/wzN}Srℽzsx9qN=Ճώso.S\q1r'~mwKw_/[įo-_bՄ&GGM}XsͪVxС8) cnUϾ t{ŧ_E5ę$<.|~}@X`ܸq/+4l#O=ՃʝÆqձ1srǯ.f=qe=;sv>.nyܹ;mWSwNŭeU]6ˏ&3UV߾qUpqek1Fԝ>ƥGU'@Q sOQFL3EP_{lqhtMo<.˵|c=&^~+|%>[d͸xggj~Ŭkզȿ_c7ai7ȝ9Ctܱ9mpGO9Os7_+n;Ώcn7=8|vX;_~Cp/fjίFv|4):[4_|.v7iO(&ߎ6eK|t +}.U|x|Xg 4)E'o%^ɱ1vlU9^|ʔƣ/pPUc\]>ުY}tb +$fu&4ܬ6[E7"n7<~;m_6g,&g!կ7JKtV?cDZ䉻lDC:;s?FNJ3jw<}qiuws5}nYސܬn/n{5fu:oNKVb4 2XMI|s ܹ&>@I8r ڥ&:|$e7XzR'e\ү^.]ƻ"X6qR:"x3gn__GG~,_-R'ԣSjgjOlHyo}գx|_ď6Ã&\w`>KH,:qmj?0R}7s=w6mڌ3&4x ]W:s7#vf EũV_8Ooqsnq}5L}zd^80jR.qcv{quq֍լk~VSO2 jOxq)?I8Ϝ=(:o8sR$qD~ƪuq-ؼ6Y=4jqFrH1'GDFզ9jyf|pYm1glMN<8/&1wfZg.1'~մs>7c:wJ7Xs>7c:8ΝO}:Lϗj]s6O.u%oGWWg43L[,jJ VLL c+/Mrl[m8bqUg|g} +}|bfY%.h^ZmxL8#F]&z<ԟ/>%"]{v,_X#|V_sw'6)8\FzL_رc5XNDz,dY~]]@{JU7wxee짱vGEU3{Ӹv%?\eqlݢ4qc>ߤfeGEkVq/woV&n +ˏm&A{\,_9{~V^#SmQhf?s~Ϝqie+&{gN.[1cbK/$^u\lN-"ӫ*FR%QQųD#Nƍcy늻U},}زDߕ"_~9:wī-.Mewk E&RB]&Μܬf⋱bB&9񣏢ui޺4xz[5Y|%rlϖ@ jUx 羐JқWWzxJ)oӃd(.fu=WZ[]KőW~rr)69({ܙ3X})odlTq=nPčO\j>.ۮv=ƓJX~|KfjsΉ[ϼVg6\=iw\_sύ(2q5⾳KZ6㾿Ɖ'4bLx2'rȟ_|S3;mL18SnL2v}t {\׷V7iW5Qg6]39k7:*N_^[df]3˚ZqӾѯ_5MgW)UU]㮿G)5cウNMi׀/'n:|=wn(v#ƍ{wnjN0믿8q/2l5\s=wv:t7iҤß2_xhצ +٫ZbJ[?򩐺ժ+bgo{RK*/V׮1t4z`w>[VpZ5tocӼY8qtXħUĐ%ުi:ģNGc˚x#'>seRu׍G4qj>Ӹq>qotF4q3Mѱ^wKvUtYI`z}+o .O=? /+ǏIs̱Zku֭gϞD23iR,+w9f'./}ʧ#SҎk7篻LKm$/m6[ ijZu:-TY}Xgqvʍ3q,q\g4wp^ljڈ[ޅѻ{ڈ]~WY>cy#>MCb .vo|ruTq9]S 9?h/Ӎccj/W.kCF.>8Kbt7Gxb[Mu饱I .==n v*;O-֮vqq%^vYǔ?v|O| 'xDž$%IN}O_MuѧOF98z HP}zzꩇwGFX뮻n.s=tF@fV)^h 2ض_DܬtFyxE;myXV[&c|K rūI\]䥣|k(oBRqUVŝg,'Dzc#Mxj,F1krbe7]KS&QSO=t[_IL|mn ?lwh}X!w~qL掉l2O kҎ/JZ׹Δo+4ӟS!Z@be4]iA,[OUt.;pFIsΘgj./H8&zdUvm}~r|ŧ}u_%.- 'p4K/tJ]j[b5:7d'sxh"yii}et*&s-qr T^/]$Y#杻|5^è8EbeE͛[up$qƟ=V%yQnG-kbKsSݾm9Q*Uo_Ɯ/ijJ ɉ1*j?gLlw63Pjӱ[NLP3z?%.mw"qx=qQۑ۝<{|hX`J\3^~"QW]>qѸU X+^z~9!?$ݰ|61BV+/"Z8!6qL4 _EomymQѶCWiW)~&1k⍮(˘iV,DO8>ʖXib%lMTb?A??kZ$澏57E*RIL%6oC1uYt',]}!N}H|=:~)/ߏMQDoB=׫Ww>+Oy[n?'=+b֭ۊ+ءCvڵiӦqӮ_1^4hаa&NX`x[mUbݿW>e)qqGߙ`wѱWs-w/ƥ.}%Nl{;=n*ޠ|٣^x>矐PfWޓ{Ť+b'K;}K|R쐸رyLEqhUyb®|HoOz9=vjߔ9qzH-|-kBH~FiS:H5qq_くkb|>;0QՉ㋝ĥ q1o-W79qlx q1hQ.sKƮ 2'.wHJrZĕcijk⢓ỎmcpbbnV?yjXh( VO`zl!C*^9r%SOuB-vm޽{wԩQ3f̙gyWTtfe[nČD= \|{D]].h"~5=yeG[w4uiɋ^.V\܉?]L^z1fϓ/;a88E/^(h"kccMksog&/zX}mcc;:8%MF7ɉM-Gbĥ; F%O7y@NذǍgى[eN/z(K\cV g9:-˒'VmxwcZlи87qQǸXL@|6@'a8Quy 2'.nnH<,;@R1MƧH'ߒ;wx\{Jhɸm̉qǁKoUb6g +%-'G'0V[mذa/Ǎ׺uQFue„<m۶w\޽Z>wwc=W}s묰 +K I[m<>}0j|?4)]/6a.Ǖ{U)U8K"6jxWy 1"%~k?W^fZ%lOT~X`Ѹ^%<}8xxƂOGKlT^(Ho0;/I&ueȑo6j蠃0`@rߔ~rJM6JSCd`F&z1Ѿl+BtaW}4Žқ Z?L7?$I-V[&NT`Q 7 (h7Xcxlp oApbm6}| 죩ez+}Clcmxdž;MI?0v\Zİ+<+"qDZ:ޭuqB&IŊŵH|=Y*ޫ.q|]$VkH=zqQ-6Fld>^u96\jGK߿:6fP-eoFAMw(wx +Z$[1߿26=$wݤc;RJ DSmvرSeY~^z*+4iݻw C=ܾ}V&lr=4**o|Rmg=@ݚ{[_kG3E㸤G['>kO?9/.tn<'ݮ>'&Of]fiv*}'Zd}c!&qF8d7X\'%UVzhC&M >$:+/y`}xc'EGEBh`4I‸_RbK!VgZyAq9%WW^a#J6KX k*? +nmơŶaS+L}hC-sI9Ώ^$U^vmhso]dxZĩPE⏱{E.(G(Xc:I<s7Lyy==eYn-آGqĩZ:\r^{UbK/tFP1bu;?Pl/yяDw4ś}̵V;O-&cyXcҏ3twu-htE>37)nk_N&/tVlRvӱ 7j&3}@E⛘w%%7,%.8ι?VSmҭ'GѸ;}L}&"[WcEŹj$^=1e8_|i jkbtU#/rYYmQ[k_~m U>1ʤ}բu|1.z$.?d[sE$<v/IX9+3͜-}%Y?.|8dGuY$bw:_<YQ?qF7hqg;w4zXoE_=s7+nkmkcZ<|_oƜw4{\,<+uK'.?|@prl]},$<{$:4)*qxHi.5'"*͋Jo;&.Z,~7$k<@|gE&#/kZ4y/"qx+qQne_:$ ? &뭷ސ!CfnygzUouטz3*˨J%:.Mz@WE=TFΗ0XHíL|o[cҤRVq~ct+O.S="qeX}v6$:Lvq;uXFwe,w(!{iItbq{$qeXѸF d2]H x܉ZĮWh$:*]U"("4K(H t@DDDΜ9o1bۑzuӊUgGmT)뛟bǍAO(CeUߨH$.Y[9H)C}?*cǔuӚo'ekZmatf?QjMks;,E߶n:TIQU]=g7։> ̢?Pu˦it}[ͤsX ղ JӚ/ktϵ_T"zɲrڱMy钾kt&ke'_r31Q ˦Jiǽ?99&Y 2h8]mJaݲ.ΓMIYb)ϟ׸+ǟײObn%fl+>:)ϝN'Nhb֖}iU=VbإZ։M`gϚ/8uʓghbß]hc'V]S|sjNYzVL7lIp m-$Ъ7]ȔIǫhQfk.k׮}磾#FxMH?޽{ӥ e(nMS ΎMW:[7]Y/)Y)}Ut`'S.}t Jas_K:;7nvnFsh+UTVx7CB/9.k@U 31k*gtq 78?tVhQ;RC[%nx妛it['Nn1sg&kl⠟ָVg%NNQ'کYS#G*EڦeںuGu*X6]<$1E IR;rUHb7Uu{UN:4I"IcFn8䟲.g4$5 &:|D/x>0}Oֱw)^|q7/k%K߫Eu% +],XPPL :6Wf̘ԩS.|g;vtlHp¼y|uիW8)W:wMM^#}멒sJhI]l-թQ`{PO=Ӥ~ݭ[yxŢO+uw|@Ѹ$z4k2cIKU~ծK?8>$LWY4o 5d:vK +Kmզ_7QT._cJ۪u;OFEm?5˃*@VoAn='F >T\?קFyPfLwj۫+}{Cĸ[&頖ui|}e X|e6ީĎC"qeq?1njyGoLz<~t71 'w$*Dypٳg׬Y3"⿿}?-[r0:vطo_zm۶96oZrYMD^?,xh^3=;,^[^?LbܢCgh9x(PwY^[=LUhrh寯ͻ-^oPIc-,V%.A(_}mZՆ5G/[R|EjEë]dbV*jR,-0+\%z}AV~hQ{&bK[}+a$nSݧEC*?'6mR޼wZͷxF"*/=Hٮ:yעqUkETf'[ ,Py4_U'ebj[`˵µQƒz9Y44XY$W +܃ĝS-^u Lbx]y*RQC=HSܸڲEyM*\o±ctTRիWl޼9lڴ)_|Όǯ(@x7zq:6O!!NM.3,,5qV4˪Ny\ճV`uӉ]42ϣdF 1_IVG3]HR/N$NUZZlѐ1XT%Kg#1yi FPwуiXrOӾ>i^yŃ7e?Wq:7@ydRWԢCOnU{U2I4VŖ&Uyx+TO43D<Rs޹s}Q.c<æ.kO9;M*uӈ.ɱN릵N'^Rͬ[ռ_mt:0tZl~ +rv4Ғzu7̊ 6UGw27-Zk>ҷ=g +ƫM/j@ }s擼4R7׉ѭU `I2ANOַz( 'Ѳ VXiǩ5[mu5y $n}'4GUуX9}3R_'gvN5wROOTy;iv1E8OUim>Q=ڴр;?gK4ªD<R۷#.]zb؆@ܧ6ݲxU4Xç[7^28;OWOwO]'^[\köߕmk@[gG#Ѻi Iز[[7mm<97ҨM2+lޭ6U҈I Vz+~ۨ۟,3iA=:qFg6vmP`Inެ,xXP;U':t=uv4"YXpN?׮Wŋ$^c>s|\s(iI|Y`/jdֹu:qBi1 ym_m]'rG##1;$#C8p'JFDy͛W9s&qĎ O([yXTɒL='e'ҙ#ƪ#'-?bjD%tŢ)s:ê1c]t0at[rJIw ϛף;'kzyӜ3M)C;s/_hz2v۔*!cUhްUd&Nh|9sVM`< +u֢xFe1<\h]7렢Mrjh\W#,w\Yb\3|*s,1իUpW8s5ĝʜ[S<;1*R-Ҥ0HTGJ4G06ʒGn^*BVFu򔧉tØc%?QlW֧5*21MrHܦly5ѳĨ֮sE~uTL4wD<RW\ ]矋/ؐ@`c>mi>[1OݾnC8޺O+N&y>~#9B=F8x?i_'X7kv6OkuSG~׿ccRիs#^>.؁m[iSljn&Tjg-ܼވѮ jm7_ӷt0J5f OY%M?(+}>]GzY'~l6_ +.jI~Ugsna3lݺE/E / +28PM$֮iz,8vZ9k%֭G"vW?]S͇;hg$=0c[@)>n +Tߦ)ur'qrն:}dk6uG)1?sa0rdrbf4n2V&{Q`3mlmԴUnޓCw+c,J,+{X՘'SB&U5xa$f LEOַ'ީ6/ i~M4jfџC}НU#Ds.QN&VޢLocUNܭO q{T#Fs)ccJjw|@ڼys]tH ի63=(ҼժҶ5M +}kJgm;,}lpYʭl[Ӧr_-J}l]v3s W)oBUZ۶>Ҽe}y<}޺5$ĬC|gml[Ke1kzd׽*rF(կ&ڌ֮R{xL"K/Fӭ(n)FP>$Vײ.Dc+L,M|IKW L,W)Oo{Z/S@b -v*.!RTD.][M-&"s,WG7G&7kEb--lbm-h6J8F/z*&^E4j*]s:U]Mm{f|qhͷz.w` x8q"mڴ>}:^?,mMT8ܳ~^lgl;-2yۚ7IBxgoh&W*ܡL\gw]xԫ} ƼގΙ=ǻOD{T} 5𡵿u.ذe ZaxL)+ifE3C?ެh@VEBfx aJ5-.:TXU t2'Rƌ~}^gdua>SSɶ[Um>LVd{cxucǚ 1I\&EEU%s2]b^n&YMj5)Mbѽs|Jtv>O\t1ItLܸz叢cIO3QC#DsP;~/={d˖ͱ!;|B>Tې$g>gt~ɵyҥM\:nG#|fz5U$ UgVo_%GWvHJ7SI*o/vU.__'_վo]w1J>ah%O9#uurح:w/H?i`2{wFB#JOO*]w YF5}Tt^IKC_>pm}X(z|MݦOk >H~N\ۉfAoi@whsiz!x{RN%&ДmbSu{G4w䔡.A-yoG+m۶٩-Qz;W) xuSj;@'f RŢWII.WN +k}&q`sx!wΫغ,t8s~juf/sLm{pb8yl!SǴŪuѪAsu 7Naav^X#Gzq~8r+q"{,3~L4VQGZG&1}dbMU-^g7\g:x:Z0Iﻈs\|D%iu'4$fq#%-2qx+ġS]bwR'fdj 3꘱1O^zO-/1 A-cƌraݺu>kP}6:>ɒcZ$E}1E}Fhz~>|˽Chک$vg/j?Uu>{ǝRIyߪy|y/^gf̽\0.>kܞcoLs4ިfwDRJdV-6U'Nqc͙c~BZjb{MVeb16q3q\ϘMV_~LL̺ب LbJoI2Z|v1Od|?6zPsSGÇ&;f&Ώ=X#Y9UyVhu뚉6j7õ`Z#S霑Vxy}++W.6^ا:5*;A']tX|yX *­[ +ﮱ|O͛ZUjܜ޸1cc^f@UmXY+tU%5$6uΣ5oA4[mܖ,V2cǕ[̓h!cr_<A6_I#WUcuvH42fNW&'w9̐!Qׯ[Iz/&[41誺l#ۻ"Ѹ6qzMWDcun2qBSx'V~IlYWC:x<0{PQY62V՘cέ]Q#@h\.+ޑ(+:vڿqW}Xz4CŹ#<jyݶmׯ/XcAztu7=\gjUozw/5 mT7 yƪ6'`ФG (<\ǎrHyG}(Aw~[cJ?^ G^co g]GCS| ȑc.:l߾=O<([mWH4U1WcM>?λySXc8y4q#fWbJĆ/J;i*xNߋ']_>uӧڵɓɓ'ϒ%KڵŋxBCC/\H6'N's5j;@1>iLV/[v}d7WlsW ߟǁmUY_sVW}|7VVHqWyayPED/9{ 9:X#Wu׫Z޿~5w=P"(LΝ˓'ϑ#G\7}2dبoOK/}O(> ZM;iApo({&V"OTA=1mnڵzUS+y{UK?l^Dqn_y4ǜOcl<1c'̭-bw{UO}\լM4e{ +T"?#?bmquxo;h|򸷉;xztX,qSwÉy̜L3@1cU}dc<0hbذav޽{=?̚5J*.:tܹwގO(zU I*I"%J1~W8' ygGU}&V‡D#FbD1@y'Of̘ڵk,P mCmժcǎmРcQhذa-ZIĉ_x1$$Cm۶taӦMsf0Cy=իWoĉ1|…Iu7n\gWޣ<P*Uf͚m-[2āܖ)Sڵ۟c+QsΟ|>O?Ǐ֭̐[WP!/_`{6mZڵ]YjU"Euփk͑#Ν;CBB_Qx@/^L:uDD]RJ-Yı\~=SLǎ0lذ͛;6<Zj?]СCy3zƍ۵L%rlK. ޣ<GB֭[gٴiӦ|937h5C [„ 3(Gy+W(Q͛Q͛W|yp9s>|خرc]Rޣ<[oW_E}Gݻww`m۶8p]k2e,XHDy=\|x7o'xbϞ=kYVjw$O|֭ӧ{wٿBN *ޣ<v^zi/_?_~7o6}׮]S^ѣG?C^f3Qغ|rǎ)W\ 6lРAL<;+:tf}޽{Fy=hL:yORHe˖,Y"a„ѣ3g9ru\t 2dHxx=(Gy'O~_7ď?k֬ٳgϖ-[%J,Y DDD?ԩS۷o)KrÇ7y)Q͛u6sLgDԨQONޣ<po\9/_1ĉ֮]*U갱(oGPx++VXv nzСk׮uN"EHy-^xB'Nh(|DWAd~DL2444У Fޣ<@QxFy=(`ޣ<@QxFy=(`ޣ<@QxFy=(`ޣ<@QxFy=(`ޣ<@QxFy=(`} y +endstream endobj 438 0 obj <> +stream +xA 0j `Q?I6uּ< Poh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#H0oh?#~$5P +endstream endobj 437 0 obj <>/Filter /FlateDecode /Height 247 /Subtype /Image /Width 4106 /Length 26878 >> +stream +x U_292!Q2"c5Le)$"Hd(Y{}xzN}gα9VEPUQN=*=SJO=*=SJO=*=SJO=*=SJO=*=SJO=*=SJO=*=;v죏>FիW//￟]vUV-V9Ȧ?{4hɓ˼uY[nrJ͚5 +K=21jԨ={>:]wݾ}n:+{ sW_};vl3T*TVm?cI'ܽ{UfczdN=~ tG{:uڵk׼yڪqƫʟC .'N&h 5k'P1@_<]vo UR]vv{QZbwwuy&~ ^zF+ sPj_ܽ{Wo gaÆ|GVZVx9(~CC )<԰a޽{eI7n\Ąs={eyESR9s{{~uf-bĉF + + ҦML"* ȜzԷ~۲e>Wd>EL_ɓk׮aPS5k^{o+.Ҭr! (zN=ܬU9(ܹs[l9vC\s\\sͩSVV-[ySs1<@'|mݖŠ-[=icǎ~_9(F߾};w\x{V ūϘ1A .,vڷoܼS̩@Q~͛oKl_k&LP^,f⋭[.gyf}bt~@ snVSL)<4xve7g-IcƌiG9H /k og} c6mڴifZi|Q̩@j'Nvmϟ_x^y睳N:kveW^y%ySGo-^~C;믿^N'p=S{+zdN=Rx9昔C<GQN_u&MOnacSz@`In'_iӪW^~ӧO?S p¿n[g}WZB=2Kzᇏ:ꨔC'tR߾}s3fk3gΜ7o^ݺu7dvء\k ySI[m￟rtڵz9r!)VXanz9͛):蠁x=Ȝz?xM6Iw|ͧvZ,P`)ܘ[k$,_3VX>V^1k2pK9s_UKW{| rKeߒVX>jZ%J$s2.+,+JdiK.ꪫҍM6z,m|ގLJ/xhh0v2v>0 >ș~OMq^!6n#g 9@Eɟv^L<>,9N7]/v*Z6I-ȷ&OM0%ԭ<l+d8VN4'H1#׉M;]]/s8eZTOI#ljLQbď:qqϠ%^{Z}THc=FntW={v?v,Tws\`s[{$o&@%8rι1nx8׹]u.7?,܎Fj(?G3ypN;,n<; + +JA=W޼yMvmǍ%-SS;pIשnoƚ +'7ǘ<5&|#ߊߕtolCouwpasy<4Nޓ#gz|C|<-OQoIގ ͏Ύ_+FbMѺQn,_3_?'7)^*lsT`)_7UWvhM5V_bީ`vH{D 7_:ba5⻍cZ&5GwVZzw+ n?!6YW%>GKGW '&`NIww~qϥW@=e˖ELH|nE*Ơ*qt[ X]e_[MMe'-n{Bqs &vl7>MN*>qfwW{!$>w6gKxV5ķ7gN$V+H&|vmֶɉ/8$f96nI9L.6M١S_sYJܴ'5eM6픫&&{'x#q⛍عįSwH6;{s}M|V'&չ糏,-믿s-b9ӣGgY@%vC1sj-| twxuuqwO8b欰|st&\V.G]O%bKGJs*5tԎ .JJYsKWt.*.WGYN\||x`|nѫW{8ޏ'U]SKxYq?2Kdb8#bAu9Z3X)o~,z>Ib_'brKtYbY=ဒ?YL,xq)HnV21N*1xƊumq$O$_ijZ$&3Vo.]2NL<,uM& |+wDΙ%3ggGnUz^zq9l=*1E9 ({ʬ9qmqQ=,y&*Wލ;'/PZDA8;.5ãG-{ +,{rd/J[I=HqUf3nNjAAAA )\zhH}iQTkNc_?[|M=U%xɶg[/N-q-ZĨ?}L|ztiZĖ-cȲ&vnWwcƴi?ncĈ%N*Xid1|xYL\e|%6l_~Y3 +kɇUdxjx, F1cFkx%~138%N̜YZ'.m)ƕ'{bj]%ZyFM2 >QG,k~tHLfyft]. c/OYaxtQ~~H9G$9\[@V$wy24kEى_̌mL<+DىE\r#ىȥSQܴԎ{.[ahڴD.(Hѻtǀ8gg^Q[e曱%M>=o"Y1-:Jqx#vکDU&!^}'wE[_=v.Y6Mbq~1_fVon(m1ѬYIgΌV+ebc5[nb^_{-v٥꾻f'~Ε2Wy%VL\Kg=qѢJ+EƔ=Kw&KTd']w=v4q Jy9*ˮ辎t;k֯m7f[D3N8usKxqߴmxwrQGx&W9'z,i]w '%բks,Bt>;nwij: +ح[U{+em⑫raxʿn8문ƒ&{o{r08[%c#n9z˺Ç^E?~V[m,oYRJWae?w7YX=8r-oNK{䬼b =4~G x+x˂g^]^r6mK?,v;)vˆ;b P~_vAxXw%6oi|TiժU Z?kĎ[d'qD M7s'4uxL7(L)ib6/DO|OR;{/8򒊟%Mg2/8'q_lĪz>I۶gG_Z7 >Cc | 4cEhQ~|EI7y/8沜&agv7ObR`Ywmuڵ9_}UK L8&O??_jZi_~[o 7hzv)=ϣSj)FK=Tz+ .^|#ڝ~;$JsY] + + +͛WjՒm…#G||9s|5jq۴iӱc K*K^>gE#wϿ{r8N:|@ټ4.ZtJ;zq廀^K:Ow}i.X:}ه{~:NwgoAq¿RUO^(JJ".8:]\S^Q߁ѹ}d$^^[ZQѥ$^pA\w]z(㌭;%'yd*ݻ.ᇣCDR$.q&R1k߾O>YĄVZi_f֭[zڵd?z~gS1^%%:ghꡍƇO$oDE ),ܔ#qKC98vw':v\ᩇrP +m苔嫞r_JQ^ԉTqkܜai??͍'~U̝ѵqYĉjr7-݉#k5?q+WbdΟVGIk,'C"qش $v .q̟^G [>q$*聙]f"*z˺z„ ELXkO/.쫯JpCizѼy,bR"m4lora5kGcus9s!io.6س4"~Na#gcɳs`/#'Fܑ@ޜ;zn4 Ve|}l>3ϔoedb[G#_GMcX)[#"ubJV;qxsXt'oXąQ^<3-WVZucz%Jl.݉mbqZ*qx8=)mSߋkƼc1upDE=e]ڵ̙SĄF}GFGѩS)SҢJ*gqu]WF@E8/ͭ7tJO\.D]{_\xKsgn%EܵKs2:C=ϊnGn%WIW&JOzq剑:15q\O21T0N6equs[Ŀݣc+g*xyqz ˏ<;˜x\1ę=2'>C*xq w7Gc92o_6a&MzϟytM}7m459Ty>PmwdTzLy:aq7B|;,$*m:TڮY#>}:Z-w+ϼ䑓+ZO*VS&]߉M˖a"qHv&X7~J,)g9$MCKAXm՘2h}ѣG؂ƍ7lذ^zu]~̙3s &|%Y{kxK8rQnVyʯC~z=E\廢6] }C&sxx4͵e}_wzhUnWT>H=tf[Uq瓩>믕Ƙ #WDosLx-&3:E5ㅯnńW$^'lӳK%NH98qvD2qxrH8CS&֏F2$6w_S+Nj_8q4Nj*M":m8q|x(H,u)nP zbrF47qIAa R=+5CW @~b9_ it!zr#gTk>Y/)]|cWTG\NgZL.竉}ag̚bKr ۿ[FцkO*guNKўNaY}b-X#p}}nQ61bͣ_JϋːB:^/}blE>W_=R&v)hE$y'9i{>b7{{o-[|7 +On{k֬Y1w3<;,vf/CDE@Y18m '_w H}c9_ i;#x-\|ubF rI4xۏh\,漺ux_&crkr(7{fDY.P89o*8S\\AŴFqQexYI[ۅ' ]MeH$0,OQѩE+]vߋXL"+͞=^ƌӫגfȧt\?C*K: .W^ ~y%y[*))*G#gYjYpqʵ)W>/3S%q &֌yĪP縨oogģ'q ,&vxS\z/'E 5kūM\/f|=&yI<%07[!^)m14-./]-ѽ_b&nӧ,>[<%zJ9jJW O +-|9Kiѣ9QvK"]bT+fK"R`vG}tҥ9wߝR`i¨4)o>ƇzbܮT/;#=>͗|_%KUsoenW?ߌNI=ÈS;(?RU<^linJg-圚1f^.ŧ#oߏ y|~-HTcԓqN95Q:18,b}ăb87ƂZ- qxʡ͢~^Ljq^)b$#H($R%nߍ)6źyI<$S&V72qNMbhCcXDVx%.1 + +b?`X~.zgq7uQ?{Nkn5j7|s + + +ƍ=Xs29]̟ǫDrR)zZCoV;v53h: 5Pqّ<^͉1>&]3(Dӎ)Gn:Ike=pHA ,[#"KWa*Jl߈ԯ֏ACqlʡ/"p;Jl;DN:|Ĥث։>T}fFL:OL;}zy-{{#mC~Ie-'tSZIl5PfDߣdxkxHM{r9 H +*cǎ/P-[&M꽒դI'зo.]8SxG5iUsj==E_C GXTTkӟ-Uc}4ꭍٴ?/$Ej>뿠)}6WoݗyJkDv+Yd*W!p^+ZhUF!1Lujf/W${!qLl^ǼPmu|JVR֨߫T5}pKV ]Ǽ^'kEw*]]j?c-^2.|Xn:Pejocjqw^6g|Xm:@ekjhSbW̮$$n-. +xP5[&|U:&Tcu|֐8$+(Hv)O?"Ѽ\O  A˟?޽{c89 `͚5KjIڶm[…Lx'vS A:J9 //ZJEJf9͏SGVPT/qy AhZ-pj[J_A/Y s^X<+jІyj_StuzjN8_kX&Y ԮzGdSĴϚh<;9Z%k. նY վYIL[^-jԦa̗]{g 5`8XwTG{Оo}hտ,T2HotR8$.Rʖww>UsZ%㔸X^9G^55@x͛U=w΍߆D؎$h  Lluݧ7= {5cx;WNCfYgQ:CGM\W:[-f^}C}UV 9]YmZEskVha=4ުl5Kue=[z%Ͷ~rxy_&+uo*!>;S=&cfiaմxUUE} V^рz.jboWaN{P;XT!^m=8oz}4pviBO0wp:qׯhCbwDchgӉ;E g8_j{Ӊubm rqHO.Z*Ѽu@-a;=w̤Ig͚%ݧ{zr3w~D=~'2URd+5|]:ף4 +xXKP8$r>]N,?IDӭ%lO̼X2{Ki:X/ďkoveb&-;4qH,kԏ9` ikbm[fc='f:@#1BXV[PsO6Nn kkb9m]*g mt0YeA*U;u:Z&*0P+ HЊ)u֘|w?E7O? ˗_Ki=ԡu1N?&4sѧ.|1=qC6Vw n=K48^*oaz7U(e?W D.n7]^/ԳS>Pj'[LF kqNG2Ǒӭ' i%^ A+Wܚ5kּyc:P˯^̈́kז.]کrG{*[5݊ +JӔב~W% ?sŝ(1wUWՑ4؉klZx<^% | Fj2?_ S5kJOk(x65bPl;S^bz[}zrI}GN5z(o|k{Ej>7k>vW:k +롲 +HxUY|ujղ30P|r"v*UMzGN_W/ё_254,%˹8qPO/Q1_ek98Ojka9_"jk?9Mh@Vf w믿>i$g4v-ucƌq?n=Qnxo.kl3ګmh>r&v[5[Ìe7Z0av9h& @ոP@۬,go[?Q.(k5 ?N, T&7AĦ;^OQOƻf3N}=V}c8&Wxfy[hh䒚|KF^?Q%lNh@֨Qh/ܹsի˗/fBҥ׮]X===,%IGbqoE?Ruh:WAImf6 X2TފwH(h?#@܊TWbTxvB ]f=Z86Zlqr',*=ic` ׋N:* '醑M'VOxjg\dí9~6~&&_Fbvj)N&R +a`#j?Bm+U9v2qW'&3ke֟%ޫ~>MoZW,e6'^ Ak߾aǘ3dw]roz֖GO{MvL5} GHl>GJ0o_oD#H3Jz,)HwGN6ES) $h_y7+gq%}gΜq3СCc/6T4KJkT'e3_PqO~ܡg-wsj5l{ʙ 2ʼS#jX5)Uc4oB^\%Yѷ Ԣ6ߚIa7S&j>ɓU-oo3M'Gj`MaQFbg>TpxhըSdIVEy#5w.UF6$~z8Jb=yx)qIbvnUZEq+c8Vu^uH?_+"AN7OMx8F/2Ή9U$Z;A Ĥ*H֮][u?jԨ1S3g>q޽{=)j749ԮWƴ嫚0W}&QMkkG8|k7zx4s#k摓!M6~U߉:}.o18{{iR7J\{mU-ϱc;mLs|5rIl/mJk$r /1%v|C[ǹ08$hQ|횻=؞={+R>fŽ; +,X==CO˜OBeRǔ7^)fw]Sgv-:VԓZ{x'2Rzc:8rV|GǙnz(i\*{uC:hϐF +|ʓM!ER iՖZUg.tkշX < ^WZ%3ӳET(*Sڻ\b^u6m:w +r~vH[%D xlQ=ANOzsFM}_8/`H}0|ܙ{Suo +t+Rmk ׻:~J=Љ[N'=Ͽu.OKq< PbDfߝNPܫ~xݽjKW++.ox6[|cȑ#n&+WnNc?DiX7>l hPEv9{2"M[cb3 z +Ne=Xӗ}bUʗDD|u271sq5c;1w{5nƑs2D'ϿMt9zh9y=FP^ğvMCcjٲfBOOw޽'\涺uN6ͱzlG{4~-Z]=BT=U,A٬wW,hN+/fޑsƙչOȐƼ8*-mK4EbƴUv%4;ث$1勚 st8t!U-w:n8D >'X>}8%&9r-oZVXQbE7uֳgOx]KWty!0 uM8r<._եw N'82ί3CII$DI$ѿhtܹ3޼y͜iӦխ[ױ5iҤF߯=TRׯw3Yfƍs{ׯk׮n&ɓDZzlG{9'|ңG7ryVZ5hpp %JdI=i֭Eq?9st{U\yɒ%F˕+zj˱h*X]L0`@Nٲe;z>}tzlG{9 PPm۶9V.]J*XbNd;u[nw|9VaÆ %Kt5>}SN:Yh3v͛{[n=䓿KԡĉoذhѢ^vh͟?vnɓF#ڴic9ԭ[={z#Wh\` .D*]+M-t֭J*Z͜RJ-]488خ˗/ܱcGԡyӧ+Ox{b)Sf…R<իuYxqԡ̙C{9h>}B +vr3XbsyG< :|:uV\u(44tɒ%yd~s;uTŊwd̘񫯾RJ"~Xbƍ+T+ĚqlO:SNǏ}2e֭;3(Q"7h> endobj 248 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*43Tp + +endstream endobj 246 0 obj <>>> endobj 496 0 obj <>/Filter /FlateDecode /Length 19957 >> +stream +x[}fGnpm]ZYmmXl)uOH0|{JmԔnH#Kn_ԗBk}g#k]~:\Bޯ? +׿zkW]ZkgϯdU:Km^?UrױKM׽KnO_ħO=ni7 9ghIۍ|GIW 6.`?J!^zCP. xzyx^j)c|د߷_CqGb?~F{o;߶:7ןsw~:_vRח~'~/%K/1\}*61/|SLǸĶT|\zOϥHf:\S],T,q}BՖB5*J카Q0Vk`mq73'C3ٸu-z!*s0ŵ޺{ÒyX J/sԱf-ijUc!x;7 gvs kT#/o>kAp[׿ qQ\&awn~8X}K]ݗך + /t'߼ɨcո\vTx4B+X0Kh[U%u~}?H!\V +wg&+kJo͌ +fzyOMI+/e܉oaJ|i;op*L}oݫbuŪwUǖZxinq[ +:}G+{lY}7z4Ky#Yzhjofq>wof^q.߼ >?8%{Yz~8|-hO߱$M,re%-=նC"))@3FaA\<}K An{[}7}̗8 KbK͟ޠ渔{]ioRh VVgᛛLZRG.›Kk{y~{}뷶B^hoivs%e֦g|g1?L;Ay<7~~J?A{?oB|JKl0'ږ +-,tt^Jme;׻'/&On?Sf)ݻ0/~O)gcMw~ߓ}~iG2-MyK6sHbni.x-M-Ҵ?dhvo/vw}O9O{}鬞Pd? GxxۛXm?Ͽ{G_YlEsgig~ +y `+*$o?$/I^xǧ`skBm\”<(*jT[shm +3ĝOL[5o>c]`#ɮtԕ}e%o7R.q4kրkϨU`g|7OuC}zywΥuÈ;zx !޻EM_{Nן*9̿i~[~A?~-:X?yy/W=$L$; hO,bR+7O?v]YKmDk"m9t`ZMdo$L?ΖN~w"'אր3bMy{*O Q'_U?۫m;}/W9.p_Av1ˬyϷ#V<,g`S_H+H\b9ۈxzCwq?jhpZ=עq:}jVљQP?frP/Y8mkK#rZ;~/?9߫Zk}43kd +li2C |i|\aL.EZ7d;io +jJiE 2wZm04HP+([ *|VP&~:eeXbi04S^ed@۶-WpaAYk+6_exG``4 +ԊΑ*nK‘}Ї42Jُ*8;~,o'B#S+ FN'[D&=D.6sX!d+l`~[ErCz/qzZERs/`"理u,\֋N:MMӣ.{ЦU[ =0iE e'}0w 2U3@0$$CQ\;UcPVՋ+LjU3xL@'O8R p& B pMJcGSaMtW{^5r :ٛdĄG薸B.}o6[moEݎoU9ȋɼ&T^Io/iaqC+^]!a$SU8Tvػ#V-+ңKoht*Ѡ4JZQi^8(-R G(X}0v^a+*Cw*j 0c;^^2X: +ti((#UL2ǘIg-~"0[, +%bjGIjZdBw, +}i @3=Rs,s[If`h30gh30ڌ3 m m6 m:ZPҪMЦchЦchÁt,t mpne [MЦn`?ЪHIQ:Gs:9sFi`38g`30g303 sts:9s:9~93g38qN? g1;qNMWjWU6<ҭA*U@DP.S\*So f{Qӏ0 ++q p9Uo v]1X9eAN)  (Ԋ?5h< iX$\)`ӖxjLX)~&X0$^T$Q+R` +(I/d)Vq&mcF0"ne3Gy +밦&P1&V)+. x$-\h]+V6qvL3s$\9,:85 +9$ٱGͣL +Ha:7:sk3@ BTɣ:|lAWs?{`#ހ9kf46flq3 3pi9TMIԣkleQmQsSc9P22jc14;Kc;x.WWU"_%҅N φ5Q.JM|ʇB> UB Hma3bU;{V!"XWaݫ:(|tp_vߗ9*`C8$ +W])U[;ٹS6խJoRՅ}oZ\j':&tvYM!X1jEl4 +*|VP&~: m ۀ*&AFЏB\V7]N$3W,F@#J|kjYlreN3.~l3d9W>kv ~Lp1t$KZ^yAϲmuKÈC%gdβ4%k*1a:wߗ;\ }ƀ`LOh|Q^$;h:.jdB.9X +GHnWer0@ + TbQ`FjY`zq0:Z=@ vR3x\ L_ pb9ڱ8^¶ˮiy@lU'x +ðwWA7YoXWE#B'b4v,kFM 3T9* ׾aZHǩ+nǷF^lpmܿi9bdoW5rdhB*U Щƙ' *96 P7 h6&!)ĥ'RȑE +WucKwA8* #tc9JNF.pK&kdWeYX ْ @-\`ղ`Jz%ɍiPŷ񦀲aO-co 6˩ +b%AzlڣG581P AGsX&cҪb5CC'& +Ւyre؋Uh 0͵ F+fh7O!ػeqXE8:4, ^OdP>:Üq*0> 2'g³ip,YA>F6xpjl`ǨqF`:aw{tET@'bA+AJ=9Fcp+Y Ǭ 2+ S͓BPruܽm6$p QI'Bb̮D<؟d价 ӓGܣϺCёcG,1yehbE4[<QrK; ou6L];ͷel jcH%z8WVPtU^<5G""N{-4@ֻc-'`.|$-X/gwF鼛rhtq+eQ2-6-ͥ*f7{$m`f8QLnDc z!織c jkѩ VyuI_^TV!86#Agb,Kn~wB$+% /F#̮ϴG+;XVX`]Q_WǷi{}44TU) (p^l:U:} 1䶚ޅIǎFߐP?<{;LwA#{oEԡ>&;?> 1wx65I]QrE4Uٌܣ)݃t. +(Az +ΝȦm3VKrDip1nUd+1A wcFѤ,HۑH#MԔK&10vt,T^~j4 +rr̔7l6PwU(dbTOk]iӘ-p1T%߭Td-q ]#񲂝x"{'#`tl1PLGwDj$;R#opE0C>*d-*X=fWLj\ h0L&@ }X@v]Pod҆ܶ+$(2` +j`ۂ{i;wD Yl*8 X{oʬрh@C]"Pb +;rPXM|%g0퍾~  %D> 1$;0>g5(mb1;(Jh' Dh{9De)9Ű{ͥ(hb8@..PPԤGZPn@JlWpH}ɽ 4vPXE rsL횢HrHgod~^ +jpC{S򵬦ˉaMQS*22/rPʻPmB4]sT.$c 9gal:<? 2Ӥ4">ĢX#-5u_䥬c"Swp4D˥\f^Ʃ-mƥ jzARIo)5zzJ2=X"`o0ȀЊ4& LGϢHz.;hVU2bIBQ^\sѐ%][9'x҅lFH'Xݻ']AOQSr0Uo#%r92pVd*aT_h1KɊgݾ +שYrGQ~P41dΠ;=z<@WPy޺`3F㖊 +, +vRU:njU1N/&ĺvYp1\Qhɜz +hzQmGJG"?͌V]:ې,_кE}b]C@@&i=1e)^6JF-bt35tEy(Cxw+ILn#FrFQA(O ¦ڑ儙}j<|8ml]*&0@,KAQQ_Y1zk\ˈ,n8-uOCrntLVSzsTapGƟiE[K$lp+׊hrKpe4{y]uvU!26r<ƾ M8/PYz]X }MPmJ@SAԇrt26<ķՎJ J=jv lj4d9>{xxwED*[~#H}G! *ɗE@IyxZhـ/*prT=tN=**:ոԵk1re:A%C`˄ŅMl4hVhӥxEB$NBK%af 08UvdcMG|;H\8ώܩL_ q;&,t* {3J Jw:kWݜ/V7͏'`j?>Zi|-~ЪX=nu8p?7e07YeAߦwjYo.یgsќj߲oB-ѷwx0D6<1tܲ/E#8:$#HZůV23Jk"+/`D%N*u@`FҪ zP=w nYQLmo:(sL^&86xpՉvV_#K- +W^+oW +uB^PI^6+Q:#x*e YVo ̫6왳dNܖY+BL̃-xYȇF{۲`EmtP2UDBgN&"A$J-DmL݄,=u [l$C$S+ # KznOU3u"}zKm>ʥ({_dt6Ʋ+e%Ar^APRJ?5g8 +H߁X}fj}RMm-Xt ir gѪ~~zO}^]lhtj%3})xJ#i`H֕TH%ѵʫhKQUD8+/U +;U_*6ӽ[ۅ۹[JS'K;m^xz5}JD$0EhBd +d"Uqs[7}ˌbRȎ Ř}8NH w.{Z(­дĚh<'XKV覓e]d#0&n`|$sH }I .rYEզ +˚X L,#s1p9bBCTc5+&Dw&DBR'/H[D2=N5ܭ=,MzL@r/ZSh''3i4$Eg: >C;~찈h͏zͬAe)w H@`)Ljd٘) /g_Lސv[ 2I ?mIi䞎6qoeZոQ0ކFsBTPb2.u@0@2Gd_SDhe[֊8,F~n{p9VUqZGH ӕܔBOL>bp&p[Ln<[y:D}Z}MͥЩa!T闟ʑjrCV3GGI>ృxS"TB%Eî!,H P@`! VX:ahqtK>H𥌣z+`Vti3ׇC3lg*s"h0ωz|ehf2Љb:~Du#Sl`&\)/2xQ)0C]$su{!rv>>& tWd0¸%ʩz_99`0/6$Qj7 ꘥ x']?z$'M/U]!mv{zl/f.!&D4xL1~%cّyFSЮ̨G8 +I37Li]KuTe ,P"rNLG/TDJ޼ [ـ 5੎ӟ,c9 +IV@ڭAMOV;ТIFIʕHcX .ʱp0 pH[,n S5[:@{ n{LI3Ќ3;xă0!&<%SFd" Cn)VHAf[]#Ur5I17l iUG t$-Z[Q bMuqb>IV$=D{~ekBSAEp$R +ڡ!<;uZg!%.#`^ c jz@:8!C7@:I@ 9=q7j)QHϠ_鵻+kH4h1v13)$a ^6pvEbhdS+xݳf=QTƑ>WGg;;@\CPc`U`NMEK|M+# [m!Byh('Vc9p2Bׁ[~(fVי4<3v>:ђ(5hBa1?a@đX3`J Pn3C19QjRB H + !LjdOj(yw4g +:G7k u?Љ:1. N]`J,B{aЬY!\0d)fd,ΞA ]U2!y\_0)c_[I$sx fyēyoAU_WɃ^W*P_PDZ]gp n )|U, -eej=nu1NOםޣG8+h5y(ݳ`RxR&%!T}F=^Q2H4xّyFA_10%:fG3>z]+S8 x0d |v/V=n1h('Vc9Bt'c;s Sz^2|6h~կv+dз|h^iVz)SgW +3&q2k";aoBɪ(QC%Cò0vd{yK'{,NjQܠE.e$^mE{$jC:IcCgr YGkl=nէ<= \ CDQ` 9D[ l1,^EM#%$ O6H/UBfkH8M2 DD 9UL̪]yN4AZPX4nF+ +B4H9cN> kT 5Vz]%l~n>;)X(TgOJSk'vP3 +Z5=sn:e:hei8 +6 +GW0ke + юPc:ʧ^ţ 5CI=~ ԽZ9 j,F#CAc繦k1QCcg94vUʎr1Xn:á_L'GBV6yG{BeM +^^'8%x|N>Y{rfuj/IS_ ؾ(˩&W5Xvm_,:$ YTj=TFH8iH?8gG3lM2^=H~L:zV7s!::@`ҚM]Ɋ5g򈐔CsPJ$'k_KE?ֆ&{ 5J3Y߷MF40 h"e.4dD߁J' :97qW܆.e$QmEώ_A++SCZw }s"7<%rSR$>TR ŀYȩU%֮.f`Y|L;,B? + /0"ϧKi2Hۧ 92DN~FN(mq^ـy8(؞l +f(%dC3N3p0c_;DWNA=+f,;z<׉ʲ t q`Pg^Og39~xb:1t"(k{XyAŞ Vp+ˎdΪɔ9㋊3XggLXfzcϠ\}7 `D02 Ց-IP}3zy RR/9C>%nvh*>CBF>czL3%4>G1l⑲~&]?`G F)c%CPEsUk p/;{ ЇjlgLwOӿAŔJM=_SHKП[|򎽭%RgErA~ a~-nzh/Vl=EUlګ݊oo? ݑ^ OOJBЎˀk9ZE=nsg,;)eEb0Oבwy,RgK,2%įedX~)ŕ|6@4̑mTzA&[dr\u'ַSҿQ@3oW]QLIđ6"S$9x;b`As^qӲ4쉆exy Wшqv0[zE819 'Xh4Bf'![/HfjGbAUׯ/^pի\<ʉ65 i{yCQ\c8S o\}zs]RWyQ+M(ӟj3gFCaXšcxyO'3KJ$G P:&n4i}H!؂d߸uNk{ڛ +E"HTz 8i"}ugG2,H~   졖0+ =.04&,O]ڌsPU={$aMh.(biy96ۦ+ +W)rP{kZd`t<ݣ^t$#K-W(ԧ$ @ 'DZ 5yL" FAd0D-h "_ tF,|Iba/(0s ܪ}aOUQ<4~ò&BHkċ "ɀ.F}NVyk00%lィ-8ˆEZU5O(@T 2kga)}bI+c*4d[ ୠٹ2(F(Al)/-$P’Yk 'EojXUMH{Y V*M?tda_F9sت=!(b}L(>=m4|/5졙Z _1ˆd> +3{k "5D[Ce>- GW!ȇ# |_CFI})Gmq8rkjCC1@n jqF STXӜˮ^ c0-2x u<"ZY(ܵ<mn`z;F0|ăKâ$g>w]k(?c]ΕcwYkL@{(n#U9R% yDX[|{j%UrFk!,"ύ=EjȞ7{8_\uGe7O_藟Z㯤Gg77=g~~]* +p|~ଭbj~EbD̞jFp oI>SXSͨğ挛Somh>{ hb.~bKd%Ǐe呹\<iϳ|[Z{tǐ.'m[Vv>69~YuD#C)w|O;u!=}w෈k3 +endstream endobj 244 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*43Pp +y +endstream endobj 242 0 obj <>>> endobj 497 0 obj <>/Filter /FlateDecode /Length 869221 >> +stream +xԽ_%}YֶR҂r^J] ҶuQ yRuOB4/mQ~PâCEX,AS ,b-v>mSMKkQ瞓e7#s#7cs_9h}O>}sӟ6QcG{ci룦7w:{;Gn~ƯYZ6~x;}>}kņ쪋}`ix5WoG;Cw㣿? W埛|~|?_tMw yo?ϟ%~ ʧ5h3E__\Wg g>wƶpʗ^Y`(;=kG{}(s7wAu?6ݠ憐b3Lpq_6Eƻ!ǮNfzJTL|o S +8U$ƃ8)_O?}?ֱFI>G^>gS8??j>v>{?/|G?}2~uw?gNoWw?^z>{x/s}xy?g޹oo_|+ñ߽߾?ޢ(Ƙfh;HcM DͱƢD"RsEͱFzROz!RǮ85w`k8`4ţX-59XjӀQ5bEMƣvʱFvR>k="u\z{>3z?kSXQ{Km|`GmXGƣzkSXQR7`}! RXwG Rwbzk8J݀GCc)::懠Q&懠QXwX=k8Jm}j]WzkC¶]C栩h&+y\w4K?|Ż7x}x'O}xC?LMn{<6b +UbHE%o*9+։9"䭂gN݀]k@9f+r!ɽE%*9rSɽ-^_w|0sWL1$E%*.^c6xMjd(&wbn42V9$yC@)X#C;m>`1) ^_1YTޡ;r0r96m@% *9ż+#[cQ1>r9Cw}E;P51$|pр\9$+*ELg/M]qѦb:{)pg/YO:g%ح[Ûn+pAݦxҟ|]!CR뜛Fӹ)ptn +5ZXQ5hԡk;(\jr5: !Rcm|)Xԭ1P8H[\6!RcmzO9h>RZc[KzOHͱ6Xk0PaP:C:G=XXjS1Ԩ]<:ԀGMV:C9pT LtuϗR+/GϗX+/k8jP{I p}<Z=xRu)Jb(:J{mh tn +И)tL,)?K[CFLO=޸WNt<`޽wO0󯇣ߚ_~6_d +ݣ?qA`F.xC പH\%഼N+lqU"niY\#TP{6'9utkɮq@p6jÂk;6>"n5g׈8"8;Aでkq@pqÂk+ܳ#pC8"8v!#ີ)x=[aa϶z@pSMr)_#ີ)lozoN*&fU# (A)*ikDB\%\?@=YuP8"x7 +@S;7#N"[!٠t +7aIc|ǝ-س ؓ;i_[|;'/~?>{g7voob3Oy1حk"bwChwkvmñ~Ѱ}c[M5ّ;HlhaCbz+G7-X0 :Hlha{=Hlvۃu\9pCkXpSnz)`v -{:)x؃vX=@X 9HlvцR> 6G Xmx+ڪ>3__c>w׮_<2֬B BiS +6e r7Pa[\Ç +y2Z\crlUȭF +:ykdBhBCF*F#%hrw|_z4{pOtOmxn}KFf4DGjȍ.4FkH2k݀; v :]km[[ʹ*l+3ܨܫ̬r2Y&AAcڠd̀7'c9dL1oNxs2Ǜ1=ޜdǛ1oNx9ɘoNtxs27'cޜidL7'cZ9cdR{RR9{XmnMI0vP1c8lU5ؽF[XQ*}l?>F[IݩhU<4*ulVcfԱ[ӌ>cF[.mU2*F}l:v>N*ؘ;sz`N3@Nrz ;&@N9c ;1=!w1rzxANrzt;AN9cN;yOc,yvdɴGUsWOң٘3sbƨ^ZcPN2קSk5*y}j>h^Ze0O1קʫS5xuja>(^ZcN2קЧ:}]jgS#4ri gqY9c gq ,A1,gq̀8c, 8& q8G1qxYgqL8c:Yӽgq(YQcwVԺ&EWW1L/˩<:DR`2o2섺Qur]QW!WurRW o}RW!W-ur=S *;B**Aޫ쥺 +ʎ쫺W]ur=VW!Wiu NeUUv]]\<5ȝʩ8 + 9k3EM:SԴ3EE)j,LQcQg ;S53E L)23Eu 3Ef@)2L 3E&:Sdzԙ"ӣuxԙ^';06bޢ;]㞋qX~L8~om^E"YLxO_z;_~k<5׵@jg"A- 5kuLCF"uIQ&߁QH 5555ucc i[0"RHz GMzFmk6n4!RQQb{qc;t񨝱:*u|u5kCXl@&Cuo2m0Ԥ|pԤ|h>k,q:7QG& +w`#0W8 +5555u +7vqY78GWII89Xgz#5+]6q:7QQQ7qL +*)55uk8j +VGGMʇFyϏM֚ 4o59}PC~;CdCltW/7ON~7E < T?F^atnş\wxW'w?x'sۯ{ŋMȫx}IҼ3=,fK#BFLdX-M1n@174Sili АSX)UdsCs`̬X̬H̖O:Vp b1a1!1[>SXUl L`̬uP|SXUl +L0f:,f>),Y*A6bfb擋ڞb=ys!,f:(uP|r#Sxe0f9Bm؊cm>c1>C1m4sa1A1ɶGX|b23i3:<‘y (f>nn= 8Yb3Y반Y되 @f=xwIIt@cf]jY반Y렘S}ncr>ޑlǬM Si¡yW{Dhg~}!vv]~z|^_G;k|'6_[a?[VZ*-VM_[!y lL5VHY(d'º>gV_[ar0׳~ lQ +ؽAk`+Y+`{!w1 wL9cq;Ә I:BNrzǴ;BN 9c,N9`N4;sz`Na;twNa=cSLXlWQ"nz/oq:o|PO,uN^ݽӍ>[?ӏ>,kP u!AA +n5?|Xz֠a V9A7@Ux / +A5נ_֧6׃נr_ ^:1x jYgqL@1=,gqL8c<,8#qt8C1q8YgqL8cZY"8c,,8 ,N9Ӽgq(οrҋ<ݩToJyO=~csʼnݨ|*;tU5}m6S6.6Ӯmm.6S6Sgai;666S;6Sama5ʹʹiaic`aB2SHfB2`LB2v +)$N!v +SHN!;d<`L;d:)$`B2v +8)$N!v +)ͼcO7h|6ߙ8/\?VcR:굯Ļ?yBC7 +@a#?Xz }~?Xzc +}h +G +;Cw5 +)C/3Qy/'d}h%x4dM8Y N45q N3N֘p 5x5D'kL1p51=d5N8Y3Lb8Yc:ɚgݜ~kw䰸&23o|wo<<|Wwn\xߥ냧(7Řsrw]FH]\#Yt p* +F*ik$ )k$x.^\[tkWp-*U5klH +xp '*[ѭ"^\C&tNl@sNl= +8ꄐʶsNl9ʆsNl6VsNl3&sNl0rNl-r#L<:4)D ixЄ!Pqb3:mKpכ{ŋit/%N̊&NSǧ}zM۶p.vo[- qu{m&&6*ּ.vΜf݆föCh6Abaa(kPf $6 v?ì`-$v I@nF7 \<.@baw4Q 0[Hl@4$h;уn:æ>PrVEDrvt +kKkPɽE%g=$OzHΆNx urZm$Hrs@lkq +j $9 C#)xNNkIYR'(9 YSS'M䬊䬊li T'Dr2BC'KOp@:9'g#$99"99y +'PZm$gUD$gU$zn?p<8;mQx|{qPC|?g/.yn4uN7f~s<8;[_"?>w|_"dC4=0h +/0MhZfc#44H&4ŀA % % ].A MӢ`C&F&ƂNf?կiM % % +:WAn%'4-AaAI[ɟMKh$y`l%9:Рiy % }5`4РY򰠓aA [Р4442n VNANcA+춬 M`IYc)O M`7C&fWB&4MA % ;=p5ǃf74K4Kt28Mz5i% :РIѠI)"i% % % :i +]TL4Su TTMc+׏x>m`|#w/.޽l +Sϼyv*@x_Иa=F]츮M*@lRvͺ ͺ ,ðn9"} 6d6YѰ7A;G.߃ Cn?@+|v][ok:2wNNңp6#_ӽÆ짏o>}'wFf7.5yIШGF͎ .52ШGGʇFF&f0]jСQ#M>HʇFʇE֑F`lã "5+5Fbj)5F;HMʇFMދtPc^Qw iF_:)5{5a59iYfh:-lFw.֥&uR>4jV>0j6YoK@jQ; HN=tuɨF28jV>0jN߈VѨ٤GʇFʇE +ե&ugQ^Q^Q'K~u[#yYШYSF{,Gξ@/+Nme9SÏ_if'I{O=<<|!3k_}͓/O]䓝pppШ)Ti]opԬ!`ZԴF78jV>4jV>0jvm8*5ʠQ :J\UjZ7NV;8jk4jk,dppVGʇFFV6@spԤ|hl i;XrQS}˰\qpԬ|`I.a ;%i cG@hԬ`۰ + RZuR>4jV>0jh4 +[ RӬ;5IШ٬(ūJMhlQf&CܽfѨɎGʇFʇEhqŢ 5YѨYz U[#QQQz~SRg7YCg7Yo+d}^w?Ӎ2 dnC 2296oWY 98d9$dve {5?ᐻ<4dvB!bTWM1kL9,de$H4vUC&#29ⰐY.#!#hlL,dA!.c!.C!#hZ;4$rP,rH ؏mkPWBfCBf/F ؄̞4,d9,d9(d6Zh  (da!.C!.!'G  9ఐYY_a!wD +9==~6MsGX3벁Sm}l.vװzFr/-?q~{xxW?|]_RkkRǎ!u8@juzk88EGgI9iqZ#[YD!Rs5Rc FHDjEV5uLpBHU13 :&gQs52:cF=")֭FzѨJImFxqc֧k,jgh k/k8긢JҥH|#;br@wcn9'c\/72s;"{rHbn)IN-vrٳL8$*9SIN-s;r9䔙LO(Q!鄟j^\~̻7/'z4~oO\>?f o_'0>qM>4iMd# pq| ͑V=Xd/6ƞ4F44GZc[HcA  i-z# T蠱?4mРc͑؜W=`dA&? 4GZc;aHcAZc/aEhoM56֎4tȠAw#zȃ 4`РMkG /`uNئY=`Н[:X0˭r*79Pلǝr +&7 + 7R)ލ +f, .wE#r1ղFɫLnјvY!ހܽA֘Q& +"w09S^k{L!`rshhX6qC/9o4s& 7;hlB̭՘*7;_slxq 0x^cӴ M6Xnt<oֈ7}x{-V77|`5)& 7g9o8nvr㭱& *wٞ{tٽ@ٽhdv/'Ad7OFre u|erj"Z=c;tbӯ{G \_\;zߓ=@ԭ1^Af uqiF& 5g9֭F@=`60EjQcb| RW2pbFMPjc 5c)MXQ{H=DjꩦXQ` G=8Dj|k0jQwcz9hԃn|{"5yK#8Fbz9hn|qAf 5:>-plXwX=k0jR[>Y{HMVcF>8jrQs;j55n@{'BgP׷+@W(⓽B\ЃƞrW/.nv7xGo}|T)t/oѓ7*+eA$g? "yL*1G$'o $9[ )Nee#C\eF8lrTɓKFe5bIN^`rt٩INn`rݭɃ%'_$yNW3Fe(erZG$'2^RzINs}V9 9p͠[299 Ls.9Cc*1G$'.yPiZ==;{zTϞ+<Gw/oW'w__\y#!99߸?}Fdz>[O "kLCn(dαB({ÙtLS,db!s[Nr9(ԐɘLyXev  S)w :)PȽEnzrlBn2E@=922/Qv@e$d65 "7@=96``!Ӣ2Eyz!SU p <P'LXB(ۀӓKQB&{2"S;g22 "[M٧QnG y8>!s;g22[]-PO-`ȔLQ6PO L60dB({g2ro@tONjZm 5&Vj:hc&hL`_g޹_nӍ!7qK{>Sϝ|aһ7; *s"4Efu~Ѩi$ GMa8ju1Qk4jRk̘hRǠS'쳀A'5kLH̠3케&(D&C@XwVcFv Pj{b5MRk G|pdXklk4j=`R;-IG9\j4)?SѨS56aҏ55cR[iR::5'RkqIM+pԴ" GͱH?`ԜƏIm5Ҥ8jZGKHiEc~Ѩiتg"ϿќoMۊ<<6}<kTtϼy2Fpx+ӭ>c'_[/ӹ!pw +GO82QUQcf8j=)b>)caTSٝJm|쩀"5>:ɝGͱz9hP}&O5ź|)pR:CTsѨ;Km|_Af'5 X}>55QS~5cTSٿJbuG;DjXQ cT9pԔJݾ|+h +5^& +]^Fe.tO}V4Aݽqًo>3o~z|UjhN 029;Hb2ӲJɝG%*9ܨ̼sDrr (;J;lr]rr`c2ϱJ{L *s0$' 0\296 ɻI17x=s@rv~Ha췥J\]@%瘫콵JKޫhK HrrPnLNDr% tJYKUR& +*{I)\s}V9 9p;ݚIN`rt9r!9*8sD@;M GAso̝G0`O^8hk|Ri},:vCίmDM_簤킝/{ztT8`$͗kxM:}H$s8RMjC\7bx1aSSQ*|WK4u#FOߵÌI5"G3/U]7F>c-_7߭8yw;?5YKWnŻ y3mCmj,?WrM_V^7bpUiJ4t&GCPsr4?JE~ 143tzoaCq4.+:Ne& $ yU|`t\gV0]o +[7mv~M{wYY!nTr'0O_9?ljGBcobq^.Q! "fa BDL]Vhԅr݈h^ӟ6(i rmz~f! 0S!o7_hgҾꗣmqKe!>bz=v b.y_:\"c  E*u[Yj:{ChH7u,9"|K Z6n.Vq~F ||WT:)\sk gseED,w4:-$Uceu?S|,O:U!~P~A{HrJ%"\%/+w,VqamYX3DU.9}[2"B|(~C Xˍ#5rӃ?-/ )Xj] +\lgV[`vݒV@n6`Xg˕Rr JJǾTE-T^PiD-Sʺ nڦ~`c)rI]:u;@qFI%\?E!D[TIa[\lS1/-Bz%E̗X* .C_nS?q.2(e]\duO!@D),yDFycNJk %tȧ]UFTlH1=[U͍C<ēG*ź5:ܴ\œnWtG13]8α\mS_ēܗrhϒKإlxhdR++bß;*]84u!VtK_)ć½ 3~F<*Vt=vsgjse, +e~9Dv3½u O&OwA^e#4S +܅;/yNߊ;6y>N˃$ +C +4'faCi ,iReeUns\lgVu +!d~y_K;~ڦ~vn.BZAP\;+ YJJZr*YzK,pf[EVO8,pgM]RdU2Ne.ճ< P:2'Ul2Bl4/ecER 偟Ea#pA՚, -)-I9qBֆq~|Ts%K*2b]+8W pz0{Yd%NلEFTq)ͤ-;߮;٥ץ$Xӕuc,u`.vN~+O"r1+_}J&jUd4뱒̰Jf\ y#UE:jxQU3QYRVXUp3\lt#¸X, ]?;|/UU8˳/xa-,ʊD CoY7u=&W IWكF4oX{u<wAeD-=JfE-Ve1XoJ<\Jg\{Pxm0*B"Ϫ|Z{-`vjVhΦ!rɪo͊,8X~UmYb_]B9Qq^颩ئը4楇pQkzeS s6uK*RU"yݫ/bSJ]LFUybQ+U5&̪óuN~o;_.[xFTбT3 +#U kE[̦=gvw\y|0(ocKk%ޏ;_t^kI~%t 0B-b,Ueߗ[?߮e*!ybH Z^Jh"v<4x.]lzSq՜U(t^,#ZLe'KE_)!Q̅yx6إ +:QVQxu.*V5l^Y)AE/(%$S3s1=?;kxR/-7@UV;hʄ̴htfR"O蹘9K8W$ZdM]RI- +u +Wj/_5 ˺>zUL^\7/0-nO͒Yڱ5~vԺfqǚWNSoUǺ8ʕbUgg<, Js]JyryZ(mϪxZ3.erE2KSMdՒDv֋[X⳼dny.v̂/:AT5T*q?Z9K]W@K\e/x&T$W`,wH# 񇜸5/e/ Ŵ\#8&wUJZgt9TRvQ\ȑ΅M#>3IB/! _5' +=\Jʞofq[A[2OUMVnQǹ^r3r-7QU WiLjVnQǹ| :;ۺ/;eI+ߙot +wbF*@_7-N~mWa7y@Tŭ"E{uw~)錿taFVXM/m?'@MbegWM\]MU).+dѶ%U?/(D.ŞX+\|<6!˰m+Ò}ɰ'^GӅrFVX&].k XF/9U:ˋyngnf7KaZyC_]:s⤍A)v]SL-bkjci;[ER?Y8?ąV!-y跱w4R;$T5ebcEVOr !hlqYJHDrfρFmX!l:ůTcM?unBmW6xO. T,/UJj'ʻkgvwhۙuS7ʱ4-z)岧mpeavf8y韯,.AoՒƼXhyMuOjnl9Xڞ+_D-ԅֈ;EO䅑Bn֋87dV2m{ݠE ./F~!E UBEn \W7Io%lPU`]ŖüF.g{!B^#/xa vśr{֝jgzKExm<ԅNJ)u<̳ +G6Xqݪm*ٟV~oL^.9G9y池ԛ +Tg.~r펥+SYgW7VQ6uscE^٨ Aek }z+ ZYrU`Ub:""8,?WIh7嶻p rg峔o'#ӈWxwP?׌C-]B6yvvޕzhEw.pƗΉ|vhsgWX9;H")- iQ83lz{_m~$'RI8b*t c[yJNɛvɨ4/WԒ1U,LvA^J%H&Rƺr^~ +9JhV qZ+[T#Ҙh9[*r^~uka%bݚ$DַwJܥqe5 wiRaN%'53wksRJ9w0m᭼n.r9YF@TR2AI +{Zc'?Ktf[Z=?L~]֤FBAǍ'PX^fDjyՅY=_5CH:lsBc0[ qS.<ŪPtξZreefAfԲh6cBI d?/WRƹEoӎ@هfWȮ(,UEJJ91mKbgsU+oMzq7•[?6x/b i!Y D 8 sIm[yNNނT!;s!RɽFJ~ι.,1nhXCMM+?Kofa,-z&پ/ĞqV'RJƢ[EzBpY? ?E^% )ifiA4MKM\V"⳪ퟖ-ndH{^G[>wV.SEqTqn rcϳU۟~ȉ^-B6yV왲SHcfj+6ԩs1吖zq6綉m_v ID+\?T9i!#Wf@u杧%gղosXmNQIU/wHƌE)x"CHE%_ }jRRlS=uwJPjzbJ2 +Os]u^ { hO>#fwնKN%Amj)u[nϗX`_L$eb,;h,Ϳ vB3ȰT21ιsa/Jr]| lVv[ov!ؙuSD+B yÖ_ AHuATM-cn bP$4&")g ʱsTy_t+v٭7 j%?㜙6pJPϷ5eMQW1[WM/Ro79bJ!#9cЊ}jv/jSXԁB:s[ /_oa?Iku?;_+=_+o۹"mjρ Cy$SHEŦ.Z8Q,s7r]JCZYQ~dVp^~ua61V@T4g>oCJF1eh.`l{i~+6U-]B6y~Xv6 aAUpENb%=g9ц6HPegEe=J%v]:JgƢ ߗ8<).٨02?YirGbj;3릖(E7Rtk|B]rH=g\[y]c)r,X۴%\lD4EmjK[)8ϩ\D|j+~1-Lc*FCBOI "2D.H)!!tzP( =ݶA?2ǹ:_VH:\sq,A~ q6ک@{.ȯ_NM>.r oj=rWW4]5w̄}1+ԖLN?[5JDǜXyBr&CG )VlK)IX/n$TMQ(HﲭB]C+)CW*ȦVDZwjy_*_]ZR?"[L9߂ֱVWDUz8NJRȝlE4ǎO6g:,y#66&%l)Թ0;IJ?j[ !%C\Z,m=6_biȰT6>f[釶#q L Axcn-gEriRǢjC]C$ ;_JJ8"p^\r1嵗w`]8J)bc"Wȹ[pqu2E)݉ O?a[s+hdoy[0K|ئVeD2ut.3ȷ\JXK1uTӜjllWך8<$CS`-TB'䊽-FV̔׭t|Uy ;Y%EnJH/q6I'eK(=K q>\oID\&6dǙFޝTʱHwS!ϸUgx[ mU)cOͅٺVwzŎs󭠨q, 3rΗV yŒL#ظoJY#l'_ɻtҕesŏl.pwΗ'r.ty| !5to8oM֥v[/Һ1o&sui]tl`l;ٌұFo4ԍ.+R_hPWilǞ/!" ]IDb/0ϘK,5UXVEdJnt^ނC!qS|Ӄ?̩=/61ȠV9Ų +9W9 JlϤb*+duϤՆ;uҗJes,zG\HSLN?$/|4#+r,En.򊝐.-!va8Pb~z0Y#'f]!{ w*8⾙A*b;H_ͻǂ%;zôjauKm̼q/,V HbcFlӆuTӜ;-!v+hכZ]HWNK]C* ^l|6o"=1I8};j)UPh=BCX)YҾbBȋfAZgaE +9RWWx TPU똍#:҄c.rP1]:wf3xAQiXďM]@Na^c%s"ɨ^O,ܩM-cQB663D򖝹?}H^-_){H$:YAQ8%*Ͽ* v)_5og^SͶ;mԂMU(3 +*gtK{RCQ}*b#?k^}m/xRYηrӺFJO/ W)8\w(Q) +Yڝ5/U7?+&M>ζ -G6o0*rCU.Vۥ]J6$u1{WusBtגxmVl#[A/nqVBYCʈGVIyե9uݺ][ .m@׮vBݩS>d+{V26^TQJKBe;RǢW[dȱ)^\wulj+"wB9}.y/(*="^*Z#Z~XV{|7o|hUb +_-VV6?ƅö/mSP5^ U=MmSyՅ=BW}U{DG۽nm]9(5S`<.ےnk hJ&5۴w`Hg@AP +zЃ@ +BbVq2g9Nz~טc|98M&uM|]F< i=+0Qo2 \wFa^˔g nuH:mU/Ec}ftē`x{kJ+6r"쌿U!s 1fr[>hv討;0I`u՛иFH.1;8D,x CjXIY]M`E$k$'%cXyPr#?$lz%w5Cc:x)%Ei4q"[XQQ)%Ui㾞mza˺c)tR.Qڌ> 6΋_<}6𭓙SI( r_2$It7r:G`fbg=V$%HżoMعGX C4֦Ftpɝ,ͯ,̼*,ۻ Y獝p,(魓t 䴙&Xvu BJ"G,[&+s>^!0XaJ<v~G fXk!E5-+j"[R|T1k{oG٫# t ƥjsNswK0'^7tҶO3xXfUsLd6ʭ@?.&-D ++_<( Q}~=2;1"b#[q[ʻ&6"[9VN!h>yF bB}s&d-/YCi“ț1l"~Qn'qŔc>~zJB.σ6 n_yr4"νNΣOg7xL>;9gs ra5 n`|'wBZJ7ғΛk[yx*w+Oh{+F봢Q> wٌTGG< &@Oz:[L&<{ZwԷv1&bT1!͐T XxƗrFw 63Zvc9ø*]|y5l)XM ;憎oUoFDn Gס1dlpူ\(V!&w /uo#-v]s>&ǣ`~$y+9s/:ibrqƓ`.6-Dn7މ?gM' o mm^W}_92C>IBX~~3nɇ݄Dw y_LH6aZĕ'5HnP=c@bI͗g0\/vý6%_z+cLQ| NVnظ.9l\۶$Ɓ|$:ތ0w"N=Džʮ$s `DhڍY7Wm2o8@!r$q2\#J:3漤7cF2t\᜗·qWϞu㤻9x9cǦڪ boV_ʥ5K⻫q݆0vz%mi%MP*lEp27bgAyu$бfTfɮ<by$8^sO'~L^}Üu s6NgAwCy+L}fg6l\WW* +?;5Ɖԃ{6+wlFl X3cf!_g]ftƁۮ;W40? Qcލ NCY>.ȱf|7q|-6a]Bpڗrw- qagM!XCfȜ޴}E^]bh{9-03as9[@vޝ|o@%Ǭͦ _^Trv^xXi^^CތC/y gaw1ml>E֕KFk>w @% g.a? /㻓7g6g9a?NjwٌHw +iY?DҔz3n73zx="65^I&X:A\YZr!Oo<=F+tOSo3f`Dgq6'O]"e̔gǩ$R?^l#滄j3S닿 w +^ki"ߗ<.ls9WAѴڌsJS&@<Lk yOb-'OCėofr1U;ɊшYu7rb(wx 8xz # +|Yw0ztܼaQ/yZ$z0#޺Ó};5.nP{9*V]xx2Ι0T5]qL'/2;WOQs.ڌ6Bϓguq^3tf3n "3x7z+ox.6ispV^& azn 5/ptX-.4:xtp0{V?#s+[o3Fy(,$ ]! cG٫7?̝8L9ZM>wT_M~gX~Y=f/yiWl+.VC54hϹ;ϘM6Exij$$\I؍896QXͧgs'%f&ґm|d Zߗq ,c5qW&اp݅ N^W咯6n +_!Yo<|FoΩNo# ^$ay5Q%f3~Sf4.b[fī!hbq /ؖ#k "_Waq +oyĆwU~ÜNCЗd;/h[ңq q: bXxul|Xm6K8q ig.5U0SQAg7Y9|5#,@enLx5t=Ds?@#ʃi29z΍D8D\cmFn|uY਀p^jc{7wmRbIJ8^Kԏzo#4c=fX{<5MSNg7<"pxgҙk۷>?+Tqي\`9μkBr˘ߚ Dϟts?,UW4N^1g~M$izyoLP>˧o___f>>}9~̟<ʧo_ٟ/ ?͟{?_G?[}O?G>|˷Cy7xЎI1|W5oy,.c乇3Ip}3v\O9fb8-Č3(._D~|C;izV]6cY4m8p5i<8smy1MT1,5U?Ӑ]yڳMq]bг3; u$ f-5ѽ:8|Ieۏp#OzqCTؑm7Ӝqf#jڷfろ<8㢎&~6aʰATMXYulk{szl۱DFEz+¿awF-.Lݿ!5r>"c!m7 ƿN y2pEʸƶJ>Z4o e3֒jP˓CqܛQj2ֻlqxUI K_t(b _@LrTT2ycn|.hH蛓L&97Ff6Dp+lu0ΰr&\o͔xܸOON$:_߂<1Mu7RwGXBH'Ү/:{Tq'a]ckag6DC>5DJpKnz봤o2XEƉOqfotqr8l떌5lFi|Iz?y˼{LߚSʉm6M<_-:c.BGA oX|4҇Di6YZ›sSm kc.ɍ33~#k2^_WftMgr lQZ1*,56E}XI&T:}BRrsߜe'ICV֩LUVqW,\YN*mM[L݌c6gɢocrr_(34#i!LyU_wyyyKyCy+U5 |/b+GpRj613VM,YoNIa +5b.|xW̜}T% <Л!Ԇw=^h~lVf]_V#|+ ý-&~T|nĞC&x!li#4EZWĞLYx}sq˔ݯlOq< llީac/b/wkzF;"ېnv[l7U^ +꽂*|wMw^o,8n[(g~åɅҕNcjF Ƶ#7N94IV4wo#ܯrƒJ|r 7>M7>8wϩWOŚD8(pV>_تS;5)hFOp\"6?7eޝÇIrJ6^U(Gur0,<-vs ŚDnF`-^D0N8%MLS.e% G٫39ap=FLe +F62筛IݷΎCٞT97s4sr(-ω']J8cn<tѰ;^涰|ڌ9VXF5tƹqyM]֕2ch4X.aBȍI)Gƅ+ү׶er`hPHxLX KM$"CTʓi.~niMksQV.<&,Ѫ `pnc")Dϧ'M'DP><狻3-+<ð.KJ,H[y*]>D3 21A/W4Zl!jca)վ9ZFRcSe+;d0Y??.UoUQP;҅N"o~+>hxٞNꋃ@)ĔzM8{k?y|C#fO"Ži/qTlYd'$/\Y[pn py:'S%1#˜i:1<kfb4K q +XWGG +cp\S|&s)U =m>rm;3l⅝qio7Ƃd1r,z&\F<Ҟ(ߨӐ K)Já͈0W0^/a|Sh]l㻬d̎.76yk^fG.tVf +Q0`0 S,tZ +akh:?L>7ߐ^.>Ta<: +e9=h uIj4TpTxn2aVHBnF͜* +[&Q.1,ʟ 'JL+|8B~4SY&#UB)(ӜWަYd# g<.57N/rධefdcI)lS%; AsMXoh8y8.jcDPFvS!n^H/S9;}4$fݍ;{sy?Dj7k[I}jmG|&kH+kx!O7D0o 9tA ,[ +i\x2cyCRS;!Qj(0cvH(ݥSSL$o, w|ԑ !rtϘ {Gb39j^"gF D}vTF;Ǵ`LL pL6U09d-aT[6zi8NxHϥ>\3B}/ʜnjnn_^M awV L9_#]RavdQ%dS_V\! n \>scѢJ|kX d~2,ӑiZxTQ3M~u-qXzy':T Ji #ƨ:?_ݱFimA4yU).Dz#?H5}c$KQLQs8(NF 1IQ20ZŇig9JZ$K4:".S)pMqV3^4IiQ ۏ线;SFjoƦfù\éϷ˿XFCF -qgl>ThӸ99gx\*|aD"i95؎JH4{<\*eֽY*T:5*g@)ҮymaNu7$&B Ֆtj1Jd)=uȋSl#[ý4[:v"`&m!gVKB +y$R9i;o^hU3TJӅw4tx)A^%HtS4STJxշԆe`=4ž m;Shhft ۦ7XK}f( 47uwkk׍>ԁӨ)?0JtUFa| 7:<#S9dqz%|C屴ųkxs0ȴ2BvF(,lwDISlNE?Ө{ %a>JȄ2j[3OrˤoتޅBU͕NjAZ뚀 !(Fd2UWY .s{۽BN٭vdlGnZ:7⨤uLxR?Wy ݼJ3;ƇVmMK{-8J(FM_ܙ303Whit&Θ{d&lQ*&u(DN5:͎:J]#qj%Nu Ȓ5J_"̡F#u_T6n`5.4Xݦ64X~gGy[_wkG?۷V ){`d8GJ |~}juNH3lΝŵc] +A"Cz TJl|͜jL*(Xjb`Yk7W=/b #x/ӡWRcFf\}eڮ'ܧg^KH]&K*~yyvS n^:WpYiuڐt#zI5K3Jm4'n{+Z,adLPr%#y J9T@zZ_?j#cGo+UҿaKZM84q!x5\IW9>-Ӽ?"$SvGND:ꊩ.!+p'sE49GVQJGd~_PV1E\{;dTHS\3"GVD2٩+<^ZZ# - xbSҦeD: +=4PFZO,qq[5pLʵxme9#eaWx0dZAE +ҘZa1O͇[m5'I٠< _z76x̯M…|pt-QUjlM1T$1G:abp{r(s wc빬RŐcy' H4 QtܬV mIW\V*{{JN&=d&{V,Zz=fJrd=@cA }ɗ*wvgs.}mE *MT#a3x "H4k=NK5PDeZ`Jke!w*QIPzh;51p qm5Za?~ba?2g~w}gQ|O}3_[p?g2JHBbuZ4ՌøSs7) ?P?XheYEcT$w6Pv>&\Q6cS=9KMYT57Ν/Gr`jGsQeR&3MFy]R欇pP&N8ݛ+mpVeeܙmtJva<_pW]&>SJ :s)_W|#T._nWTaq|Vc&t<@2jJ#:uZOEKzY:1(hhQ;bOȞ)A6RYe ^hM!PQke_F(6CxUˋ]Ӿ[Q`F FgWRJKKEZf b霐"q,wz#]\#q굶ўĮ>|b,2}>"siIqGq-]UZdN‹^V W6ofohٞ>kdz"$yf2K?\d'>r.boJ6"t?騂 @0/*=֎ l Ʊ8 +u-M_z0ʑ\8FHbţ ++M=^A:VX3]lSj&g4Wz9ZxtT#S潑Ã͸0mst4^m[*hZJ> >hQ iZB!7iu9+F6 (Ys;svNی{yb]Gjza1UmUKȦVqޤXLj$U'dVqHH32S`5J+  MZaθi:/9 ]Y!T'|cCwTwK]TZ8 ^}U QNKms1PAe+!՝ta^H5iVҦ7SBv3+b@v* KoHӱbh9VooMK{۽y +ґǦa6ڳ%n1"-ĽPZ,_5cj4̦¨Ch +/sE$6à&]䕾M/.O8IF$ǟ!y1qz:)qZn1s 1ݤUۙFɕ{ݟLd;r7S:N_IGy0"pѨ|vLF165 +iL#9k3]oq-uzUhԦϹY:\YQH6<jƆ=mbKv d|F@6=f0(Q臨aBI7BwS!Y:^AJG-)+w}%}Ô)dNS69O]s+^u]6.^T XPiM?sjՒt9k;'cؓ~CŕV56q\D8,O]jX`dKFo`7ﳩ?~aBΔV4N9̽2$K-¼V=kMfi+%q1 S:Z(4-T7\4meJY3.<2ö X<:|SS9QEĦ4=mqX&5=i?eJ6?#<Ӎ8rh!4 BZ9gW6;(eVaZNⶩjt[̕nv3TXH.k +K7~j*1ƈ k6C3. +RҔO$8װ+`!_Ğ\cGhcGbtXZرbak޺{*ښY9,mxؙ3>Q0 uS9F,(8i$ٔxԣM7=-q ER:z%4?zSZ9=uyv6baR:&o8UQњq_ӇB=j1-:MvK^ GJ`,ᩪ^?PM _Mٹxs-гa~h䆪8TIFmEPM;.ӊD;+ayz# +hCԔI ;%/bK쨘cp;e Dv aVJ*Y,p9SiT㐧~ ${5#yĎ m`5 +Xp!J+ .e}CJ7էCNG H۾fE -o˓e#v +ޤJ;7 SҏT Z ]=1Zi\{]ɓ:_>^4)0=iTxHe0<`KUu2_) +Fۘ`5I]oձ7RIC23[8`ht wWTsX׶fT*kXYl075F嫧tWݱ:dcZX}:ZZ^{|t2[ó/biudc qɸN݁z mL*Kc)bs%X:22=Py>!\(z&#пa!EVE9p9:U)1=\oaC*FH.|JA:u#$Ӆ?#Uȕ9wBl w)7FoM V<]˔DXe$=]S$lQȂ'9 `t m=ԠZ.Eϭ,V"bth"g82Qɺ@mK# ϙ0LoipA@mur}*܄JO1,(ue6gKs '粇cZXn(D\wk!솀R0ʒap2Pgj)7ƆB=<ݎeo4ngÂ5IP+շ?̕f- BJn:ue:?#^dA RjkBOXj=?f܅=vJG˥KPx0I`O-NJJcUkqE%FcG$f* ?T)_ąe4F ?×ϣFjq`*XlW:b0邔`,)J+ C8OfP1M;J^6 +PI(6ՂkUZ&F٣:1oXZ)iݲ@ RXkj +3@LLz!q4JT^ ֐YlCm_ 6_ߑNh +^!SN 5O]/ӓNZllpxA pLb@ +V(7EZ=2xP}J_amp:PfZ:`| s;0 b1bi죠ƕq#kev#%>~#Ds죠R-ZUL} \-ZtG@F j\8q困 K$| %PZK?%9 |JuEmv`sƹ4`}p9Pj\`zuaJ1=ҲICbtdi)Ž"bHRa@M!r6x"x ˆx"%V[+qP4%KGi&pAd>vAP^+LJ;xCJHǹajFVXJgʚA3,ON eP6t2au\?&a,nmq']yA0B58W6C|5MZR(:r=O d:u,iހt'grUx a̹HDz0LF\^p2ؘȦ +ySQpU r?ӜbWY @Ο)C,X* YT*KzT> *l }Pugec*+.kr@`\ 탢=KHE'_@,on{' <}MfYqˆK!6_Cޜk9eF~ϕ?ThfE8t26)/̢C:MGǃ01͙)/u1$ !P˫6(x`*qApqcZ:[ygA:YC;]kPoBV2AFt%A +x ŀAq̭Us0JZ04N`ݩ,Oc5+g8`0;٪ ^p6b~[x-{ncf";%duL]`jYH Dٽ,= i KąMDxTk~Ǽ!JݮjYZ) C}M(m _jsejk O9Ȇ!7D%de*kZMx:VsJFejkOBס.I~  -SYR>\V6wNyrgrn\ +Qt~U`0m#~d<1GEZ >)AY}Jz5$UƣDLX&D|c=Pkin5T9ԨA309l[717fAV#D\fZM2>$z`.Hz0*v\nsϘ"Y[<kIA +τE+…/;`LS7#9SPۙvhP Lt;hT{;@PR9pB.^(YN QnSuncc * C7!炀PJ&j&\:P&nC^h>0"|3 r[b 8#+8L1ş #3}\ w NfC jeѝB}MH\'ϯ=[ y&Orr:Đ-뤐ڧbu\Nvdl7f0jF(Yl$Xν\L,kg8:85:,kؓ~2'Dv)-prAxEEmGBQ&k =Iue$CRd.laB0'ETpL[yłM6H1N F92H\'M-΃!x-6t ұ٬|enjNZoJ-e1==RcmH1*O9iB: Wʆ^gt5!qau jpnOOJ&B TNhaE9,;!ƔCO:xFH']RLO1-9H*KQpJd5l ܫNTB<)%}YzhAP6~}2nk+ K$TYYʤޣ\ `\HckX(i;<;?Go +)ā+gB>)&OD 9H,Us!Rf$Zyj[J7٠3\8N޵j|8KYδubsPC t %[Q_??ϼBՑ1|ՙgal +G|Z'[Wc$Cbe7 c@ Nw2DRJ N926 Q4jʯ^D:!0CTJj"!+b83 +Fe'4ըU9$Ml*['4_C:)(dX1&fK^reJRQY,U;kj*lt&qoSPP +ے\҂Kh"GS\ܜ[ 0]DSJ3KMpls ”ҫ …dr+u@0o{M1Qʃ +4"yH]+Bƃ *Ɗ.1,U;T-&*\0/S ;4U!{7XbC# sA,1JlGae]g\cHQC P¡Sۡ4+ދ4ÕSʱz{^E֭2Xʽ 5I!HzTkhlS#8H2RұJxkH|0'z8@6s:Ƭ<pW\x24 -<*KF+DMjߕ̽OGH:~٫S& i).qeGE^`MEo5 ')b_D&X)QW3c3t11|Q5V +p;:`lHBP~v٬;7bH7!RƍJ*,YV[uJ.Һ2:s .m:ȧ>"`VmV5XNm>J-מy6)zcB 51!ԨZVֈmM8>&,9ͺ_ckRq2~%w+?p0E(RsP:!5LfԙB-tةB9\oHAime^5P! +aIǼ#B᧻9i;u碜cWBۺ<̍Xҥf D5aRNq]\ұť姗aa]X]L7dcbNV@_m$S깗giIǞ#u/| Cn 5)xa-4̩XF-xi:&RN !=T0j+63Ŗ\|u~GJa2k)C /-:%ȰHj릦y]r#fUўR +7#45֭QRE-kCo40I WT:)ɔ>-uPu7 +*GK2|@LiAǎ;T.BVTmSsɤ5 x(f!'K:> Y]wCbTVd}# rׄu+Px26!ǜ2fN aCLf}t9S“3bJ|*1oN:Ôq' uҚ 0VdBeYʲv)9HI8й5:j+fiI\ jd*+IO̓JF?IG_SXsmS򐒰5 "LOw;Z1 F\{=F&Y^IOaOChR=[md(p'M:> 5{mR,tU^8$N%j:Mۚ +V +#jO(56~т<5UZ_M-Kk|@CQK^m i=5#R눘nf$?ou/`[q n"(.Mssqjze!ͪ~>ڹ=O{V:-3e~M/8@N}6/nV΁ֻ5iyp$`{J*0*dwͅv,;Jpԣ(Sáhx*_!Ps@0c1bL)lr4<1r %@̦g(Pspr: F@QPHNea&WۖR`L3(`LbAd5Fd4cJ ~˖0AySJhg9L"jT"tU"jEgfGMֽ6dORFDח9ծzVq?I`YGȖ]n_J$Tl͐LH7iVFyI8H.T,6NeJ1]AUo|d}_æ5@L&I!`D4 R:& bc7;0>!N}٦Ooӷ?KfW>} ~pnէoo_[OO?o??ǿ/ ?~k͏~}OJ5B]W^6UY>/O(LSi-U$̾?gJR'k8Q;ub7g<f., .[ւ +<vfQ5 fb #+hjd؆#r궺6p|Pt $e`_%Ki6tȠ-1 +SSUJ1BO˪K5D{ʁd-}-+聒N[+/8jJZ!<:vfQSߍJs-pa>? +T:*5vs1MCЦ"y(0P-)ӒHhJSCnsvkhJje^[JꂓnL- \%9MuӲm%E%ͺdrSONf)]Zz7AXT}W8d5CmԞ /?h`Lt-FS=G`U2\! HLn6̅P1lp䤈S|0CŠ% !DAPեXSAI%e̍Nr˫Zz|'C^Yc'ZVqʑ6VFaS.n?WJk%2O($-}Dr}LM0 T =4ANF10scM9NgLoKIaֵ!TեkVĈ~ +d}I+U,lHޘ H@$dnnV2(2%F)U*V54k+k`ٔL]v\,yXwzƣ%j&sg hJk5]ס1=S^tPu)';2g Bæ@6ըkTڥ8i,KqJT1 cWZP)Y)誒އYoʦdǡ,V]qFtX`>3޴ڢ[_TZ +xc.<5<1 8ޛ!a u'M8r::KǓ&ar,(:v^|4`P]l)Ly +]40c9>P 4i2Wr0SYϺ7-:s#`X|caCUS9) RaHjJzY^tA+ϖM<9%›y^c4%cQ + T0Snjd;͋-Rb${($|x$|mU2*^zlϷzҌu2sYy2mt +aM[KfS +y/*B\K}2Mj?#  645P{U^^6Ԃ6a|XWG| U/뼚SR3y1w S)p/¬nc,N!1PD< +^K''rgn֌6nnegȭ}[Pu3P[U~,.?*v 1uT29C8rκf]@MdTLXbezf8aN6j;-+qJg6p@gxY12vYam;iҺ>O./OoZG=Tr]A][%e6{[ZYz` 5HNCk:o fbNb|QЦ(ن( W#1nc}x1@;~6)z ;U^ыJ9` iY0p#<`7g]UhS J~eVh񈔳kS.n8Tl.'fK&j3Se@7 ɻY*z膪nZu4 UEaiOP]N(90FAl[eVlnY0f{ϥ> yh979St듔b%<նmXO˺K ڽs| 蕒z47U3=ym%Vx Pt4 h|ͩ )Ș9-o4B55CYT̼󆱡j jJz8yPt%Kcjf5yg6>͕,PCO]f dI{"8F@iKǾ'}}4Ƽ4qYt @8.a=d^tこN-ӎq8`P +Tm)ʆZF6c~|ԧ M˂Pٻ? Iz#aML!MB:RN)a +!a0 a]$BЃbT+s-% [Ȏ.x$3R7,UErWN:q)iةYeexs쏛r8|dsɤ̱%eHz5ݿN[T.{ | l3w #A s,y‹P,ʟͨ#`je%ߡ6w pitH0䞡AU]R"8Futێ}˘,3huʆ-7q|ȡbt뀸Wۚ8mcJ$d*ׄubMl:1V5ԻU8lj "^V)Jet~穆X<_f#X&ASveh!n2׭_?FdvfO˃*m?6>0yc%jjl\ S~daKǠ'ݖ!>IATc<|Pu0pɥ>G(hl VùA) P\z #¶j$77\vi=xCm|`cnjCŻr"rYh:sҡțdu1P?o~+l0L{mȩ*k񆠧J~<66YwQ,Y1q+YX詎*/2rÔuMrKڞ\;_V1ѶDO*%dSZvoK$7A]7xR#5sHKY椠K-Xl(pĆtxL;KbCZÐ]ؽ-%p +JÅ@fAtr} +aCG ejIm*mj"ù&_ ١4-x8i}h<:h$* 5DO@=HV\.TKFukU.-jjY!-wa`. 29j׉"70wy7bTuxGc%7}AQu /?R !PT41_sSsVi`m6\hMQZ? fp, DTҜFA??Pިw+Hfā`".K@A^=?~888%5FӃ@A),t -1`N]c@P@U'.3j*._|* fjcd>>sCF,2OP?FtT8%oGPt0pޥOnd!T>U DqCA>;eA + + H) ߟډΦȇ/o?]d)x*Pz(:ȧ`cU+QU,)bAz`āߗ궎x|? chVۢz(z#!S :xU *4|eEkx]{J5P""_O'{֜bvQ#Hso[ҡ `6,2hK'yq3A V\{4tbD5X2>dbC@:lsx  +ǧ1rg,D=ׁAU|)E Qu , KE!CMW'1XU,b'#&;|Ң OEx<ʽ_0:>=! TOI~T^ 5Q.Sv@.=U4Ͻ UC5V(yp5f@Ͽڨ ޣ)KO%QzLG*]S7䨸f[]~ JPJXAéŗO0=ef'+e)MMׁQUiZ2n"ʽxaϚ"X" Y&V-{ A>5[D*u&2 Cԃ?@>5%i ̢Ft(:w4{a0H ~VA8ȁ_ -aO +=Vc; +eB( +>v5CA0HxlHznϐW$G/vJU1y4u1FP#?TGUD..jک?^ -|`x+b + +ȺiPt]P0UD^s#Hga?VKH. ˞Rp3}K"reI "kS4aK'nZGDSɶ¼S-V4UĬNF͹Pc ɥu RՄ1 \:.:Mfv&|Щ@1g :)V$ TCI}*2j=A\ZS`۩+aT"*{ u?aO0.5ByO}2 ذ5 yznR7P@YbP3t|ÔU=-,*Ljt {B)UƔ7Lsi-uu;g2n +20,c4ß*A; JN5k(Y&sac׉p1O8͔1 ۀ)M5dj~fu*1jĆڨ +G.xN͌:d)|pn~ͰQ(yHmt@#ypұɁqmP3Cm3nxҘNBWW80 1S(,2ʥEMP$t@0cѓ22(:,[JP |ЧbV|kÜG$,UT +%+h#ގ~`Olf8cmoSE`55~ qJ~՗yDm)#ԥ㸓1OmF͛QT +rR_SYKY&ڌ.u L*)n*cuEYqJ +{1Ć,u9(xbZx6uJvF*1-5b$[vb*'j +}9M1T +"ΨjliPT!=#¶77oS6|Il^_EĵIqȚPTX4 EN ¼S5:FUJ~!K KX˦+/ϞxKMW0駰#E)S66{gM 2=j)Y4 N#DO.GiQ,8o Lse窟cj%YS/Q>Fɽt crjCZUf&5cX1UT8{"tA$=(3 c"|:8:"7awHN 2ulߝ-!1\ɁʺPeM&tAr +[/ԄEzʟ +گ` zH_à`0K7jl9pzN鬙7b J~%gQm2(Y/} +*8<uP8Ka'UB˜,s$f3aB?&*Nl@wLBPЏ'G6:/6c ]/{J/9J` ?_K2x7heczWhujP{{w=2ִƵA-dʬ>(bz *ז +dTL [:8A~sc8l$Jz7gm R17VgeL@I 54C}ÛsM; M(YߊlE]2-)1k`AKTo wziE7[6.>t\t"n(* k3_x{*@=K`K"Yi*͐\)-jCs.o b'i5qRలctN5d11W҄Bt`auKk(uL8޶%JXzS.hK6$6!TFp(zH5C!ׁ@MUYC):bd(:vXf?ǵPxsұɛLB3j%^Lf Ԫ]:* e\8_82zNުbڨU(zqh'Cん_Qά.7_J~l.ua&'Cə&S3ѯz8 lm!ܰcrَTDT`IT1Tш=uo #˩)#:* 5%C5a/ .0َihTLwڬ7{n_O~FD _ Px̔1Y%s](C; ̒_B;t Ң 8_%qm cptA&-1Y]S@*ЬbiUQBFv.9ONfײH{v"ȳ +2āH. ~=k-_F̶L{@rLBMPuP/J<31%@:d3L#?cU. +jb -<`،ܛG> $w#J$7DS6}C^lglCn=YɯcPCFupQJw`){A_%Z|YUIR|YA:Tel|hcNt#~<1Sҗ_rQH ԼPJ- aBT͔H(IJ焚OR(*iKk<<9wqha d6 DoSinP/FHt0pbOyj vZb?. c=j)91{Z{H@hTw/+HT eH-PZ4 eE/jt +AC%۟蔒?u6]_?bzvx:b_ycpWOi5)JvfLjaUH FX:2Q.nA dm37ѡBQ jHi|26 McDNG[:f83m K1 [Z3ݩn|8+j61 |SWʼ1<6C!' n׭]Qd (vgԁ5>b9ICa g(Iv3 5C$)/MLuGpaP>?K jaS8w| 2|yX>f9;he{J5EķBlR'9~ëhO6 1ǫi4\%4pH ?t +߹ޕosӀ5k5fGFTV!tp0Z'vn2yj!Àjy*WuC@}VMNiCh=RL> b|{l躾D8/`!cs"/)sE<(. :ϵ$iul{fkgWBCRnB0ri5 ZCqAN;O. n7"s3QزhAQ30h/_(Wmz(,0v h,0_)  #S;M>ˍ;Ѹi"{.7˝W%'7~#Xy.e ܥ35kCK:D6a Z#HrsS2!ejC 4 Z 0p.ÀzoݟrƐ:Lto|k;UϮ5W}EGDGlP_\Z߉ +:70Hoz'?Bqrǐ?chRI+l<ɹgMri;2wK\A|.!3v ٠~=w_aXa| ѢG<4 Z'*4E; pi>7m.h#8FvXe;\4kC:#ӀLrEՁ [#a.Й+@sywpѽsGOs?Fyjaә>XmsoP4ƺHV5~6Ї"dZ&7a |+,[$`\NuC+LzLbĺaRE`=L:JH&=T[vxʈ |~Y^6a#"ѽC}Rgm:߅)o)ehbRc)"ᘀ5!r"$6r5 rBpXAM:O<ܓH2CoLsƋseQ:Kut@볐s^ CKUé0< rk3g0ftB +i!3иVr".D !;ad.BFi7<~~n9#ȘZs.gu\"= 9"XuJ-^eY |"+i5ϭhl($`+:#fbF ɢj~y$:LhMhrI|<)8_y4kx[E_z Z Z`Ra_N9NFL!>6rЧ"`gZpy!zUԡ C$WC6Y7$0P$(MUQ}ldOEElu3FXڔBU{p˛ƙM؂fxmS3~[K,Vsqshьl]M +E#{;:fdat =R~䖟t=1pk(x6&Ku[ݐ:<P.{h7_9})u d|F" Cu /+Y塏EΣ*e\t*w֫! Ƅ>|rHS57> "}y! f7BGr#wl;^Lf\" ثu*\?KڪBgi 0Ƚ)[m;3Їb,灏眻,/u@:haMK$vO[ f(oO:L&θŒ@By-QC +wECVOeN6sW? +f1]A$OjX@fn8:/uv FBY|{*1;Uim|m|1#=51?_c?>q'~nO??~S>}>j?ʏ؇o?~/OC?{3s3?~O~^.@=d3+aE:ܡCh݁]J,uC+-{oha PSM]pTu(=JY=v9[|v=io| kZ30(ezs\930;^"P:*Hj"#գu̮cZ$!]A]v!" t ZMt/W'^4wK.,&f:0(祆{@\NMæc60s4NThᨎX~cs|c7AxNs,{27Ngb1CFh^\>ux_EF{FhE& X\!tHjG^>HD|gH3= qۣvThL? :ݹS+@ }VW neP6ssJ70txiK$' Mjm*"#cϨ+#]Pw@M#.ڮC\]?3Ȝve/ %XwyU%qn_ޑ>9"X :uKt"x/-OK3Dey3uqϫ8}ѐNbhRGJ?ƺD'::0蟧4H "+`1zcW{\e(YoR'54kٝv[vO+sE3,qh&Jkz$@Ic{ңU|e?ޅ~wǝQC{~^&BA:~_KLMz +a 2PC/+sJY1q[$n:f% +<6~ @<\F +\ ߜ=`#$!#c &{_͋X[DžV!84y!.PFY5!͋dNw]>:}jΩ!)tVM-o^iZ0JY6 BGa$TGz3@#msS=~cWk-qs7=.+M}xZ5ږ^jl߸PPF֊l8-⺣6gwil>r7QH_.90)}g\F@\d[_-z#G 4k:MXmj.yؐ#ه##0y$Ch.h5]<:iy!{bPr\B)L4_W$F댆S"g:0rB:t*RY'CQh@CMGl{˘?yM ;i(39@>-8κ[r1uC{rOU\O^Q0AhPL=WgC~CM⠆r[RG6 #b !=]5WCqvAN:ՙ!ԱTvZ\b3* RyDj7c ZΕ!~1aBMe[LiM>xI,uA#@/]~sMawp:2Vy47(ALu9ב {;y k<$j hdXFXF\\N!~TUz ?u2CG03vi<:DBLV8!Cԋ0~;>ǑŇAROa<\P. (ą}Q|s}$'[cF6>OcOK.,idaHS컙(n|&u$@#sȳCvr}Vq*w$9 "iZ=/`(IGt>#&ˎ%mdY8MWGx$F1-إuSd@E2C=/˩P[Fq15K^!E9faSa>e&u#q-BIPiPKnAar)s3hӄtΜ8 RdJιMSqxy?sDУc:3<00bi +oTy.Gq>fUg" l[P K;7{-8ѡ~Z4ѡ%#m ,r.HL؇D˜;# a9u_@I#å^/Y: 0PouB#t`7q=x"|P_>|K0ZcV5T`1 +LL[ BIxVMi~J@G;9Xjta8?W2 +ƋߵARs~#6R&%rkV@dX>+~O5-ڑrr]y [SN}!(;7n + xssFX!\#t=;H6<^g2 +^#d-+}mla`"P7'Np_i^ +;lJY 9MFq(YO +BʗHQq|K\yRM]x5%σ);p!*^c;W2q.9k{5"vp 4}A&$ <ມ\&/uՉ.X.sN6ەTFy< <Sw@]h}"i-t}nkCYzv.75؇AO\%ֹ.ܢc*K "0g Ĉ!v88`KϽ^!q88\OuCruPB/*1Go Tݹݹޚtmmj׫H$ְxЪH$MD5 +GręAƾCm!YdqVZ:]^ mkt&՜[pBo*v~gҒ#WuTvcNکra_o 3zL{rڟ/q A +#4i#UYC +8֘=ܐ,ѶQM$1ݖ9L{ ☿pd x_bu,n'YxC3Z!qޜD!}/e/ \5ol!M "yBo^UcɁy.uzgbt2ٞhz A$ﳎxS|-ּ<.:dH6# .ywms¥6ota{qrf1UpmF)+e\лT]Q9gscZh54<ͼkoz~{*ŕW4UE؝Cn^ [/9*0HG|~isʔ?#ֹ8Xy의=,p|-lCXz][}GV_o7.^ ,~.W^!>bQy3 |&&_ȇUUOiنt ]=Z{*K]|NSO'|ڎ۵6PFǻGTA:EVyЋ{ Hh:b iKz2dRg- 9wetY~ u#灘 \ 爄CajЉ~j%+D_P3`Z}#[rT\=F+%r.gR]bjnC>MlO=|aSϋ;0svF-Q8#Z[aP#}-teՅ"jphUR: l +y*QFY\ʩ"WqylFk°/,͖w|9.F<~ c|ӴknB(,q0B*G^U޼A{BS{s"Nk֚eAMyRƀ:,!zW#&BYA랤pJz~YsP<ݔS0orv=F'Qmk-r^MUhG;Յ@fєS|$5%ϲ?=ӹ] XoKX4B304(pr3^b_WnB{ז KШ,s/ [ncݿb9 &a.aGi6{=^ xA:lH{ukfaӯεk}.[Ce!PX$l/F/9yA35!AI^-lSose߈C/&_8w肔%O1ioam׊5$WaS˂[ŸȞWD.uB#x Ҝk_sa\Kߊ3Ě:kS~mt|S{ϲ=KNgDai>W1 31*>}F q:j@ 8Ұ_H 0:Q_2:H0jWhDa Іe\5{<,ú!u Boj}xRŽZY͠R]!sC!孚qAmfX< Bsʹ>  @`ىUCL1E.VxU.qq1٪-u4.dLBV籀AnJ,3+(w@^^! t*@}-kF^x/3 }+rq6 +씐z*V$qTKǺN/Twǰ"uTxvutv0::7)l~w]<9tҹX̹d&}mRF7Uu>74F=WZ?#}}6-sxc9- +\Pֻ {?n:Ɏh Gʾ L,dؼ!a!# q):1ANJ3,b]tVB8.RL/h4bf\ h8Y%yy@-XǠF09W2j.u<ϗıi>t!ħ5B0iLȤia*NīTG‘- + 3 +YHzg+=+Qޱh8 -Ezh[ I!lD#i-caR+#dUHm<ϭlkxo!o4 sm)odcunh;sq*=Q-yv*>dA됀h>Mk6`.~O|Cz dtvR>BHw2 L(jefYiZ9,k׭@Z#{L^Zxss*^ 1^ oba3%B1µjHs@ {.{!Է`?@ -UН˞2Wvjw QǭY.ޕO1|g"]b"19dcc]?-9C%y/`}ZAM7w1D@Ui#\j(Bmyj#DSytU{E_KH; o][lah6w\Ahfrkv\:U6DApk7BqIAbM7Ňs4M[uO=*0^%Y,H._{7/Zw!k&68Azl܆>6 6<N-VaR[W `X,4^AI.Bm +e#&u\Tr_La^+\hK!hȮ .jڃi}{iygx*Copdť:eqiFn3:0= vo>N‚;6 IN&POT}jøghr q,~+ر79/w>z|ܛm<_Vʱ')o-aFحGmFz@\\X%f$ae>x8¯ 5]෺ mFz@dKJ%̼>iDThky!HtH O'>?7h!˖DùPCJɋ9+ VC)%dп6 ?~ˮw9_{9w499޷oo/.o +a/0y }@;V}Pk>xv +DV0s*Ջ:Uq9uM^;֯N6x@.ݲ1VW۷"QCF^ 9DqᙆJaH;=u7<j[ˑ]1sy,̿6J):~O7{85n )C" m}#hP@ 7}"-{n:#js:ߦ @f, +z ӣڀdԞy#a[q:M[U9F`~q_Q!@g;W{.Y#}-Vun.0!׽ɍDH걀rҮ\#Bxw?2zXmjQuz6!ZN]3BQ >7t(Ґ:29Fk^\F7<}}x#Nw3W:r@x5uF1Ӣt{5/2Gp:skŚ"h F'"҆n,*DxsѶ;~> (a:qa Eizlz=σQ'w-q3z}0/` }mϨd:yT4[z޺1$;_h|_&g9קUv/ o$Uoi´k*&qK/nM +620H\IW~+@gm+}xZ7lO5<:Q; n*Թd}ʬ9XyԞn}q8&Y)tT_ù *4Z;AC2yX|ݺ[p=ѻy>NGE00H) +ryɔҩUf1MnlkΥd硏B>x!krN(uS%L-5VCEǕc[5ٿv}(WR; +Fn6ڎV>åWǣA-ypb;&x#Kb-2σ搐6AM8[dϧ9@,~^uKi" ashюsu ɸM?`oU GTѸpm*dnĽTwsy#[ `noȶBCFZY2ÖZŷ\3k$4ws)۠U9ΆnQs#l4땎*|4 pCçkmօPEfq疜.-ݘ*Ȉ{ sKP:_U\jeKm +!$דšϒ=xyI:Kԯ[? yp{G*Өs!D"ȳ[jV!xKRL_>atz OCGmXC~30).1S9 hŹs<ԠLV6!-1r1>J` ]&m׺8]:\, jϠjʽ|$ץ41^OFd\4B v\mk I]п6Kuqtjqus=,?͈]N\Q:`da3Hi۵C'N{^q.m8 uw,ln}K@#pbi+myY{ŖCBdo ap,0{m Vs{6[i7J`P7q9YdOE=@y;i3t׹2KD a5JTNxRg0Q3F!!sȷ ?"%T~/׋bה3MdZ).+vmM¥0Lphd"&ئns=kV %x : tP+'{*1^ auɯJߕPQ7@lC&7& +Ybbka~K fY;3;RmD!t.$WZ\r6䆧/)vv4~%#uLo.f^PâV H0 u9qFPA%uӞX;"\ȈTRgT{:,LER+~K;MeTEi}GwҺ̓ɚ) w=d䦓:7ER8"xcXK@|V.YEH*q +M6r7{10ȁ`q?g\E$hתcKF9B6pAL9W 5s.jSyI5dEK[\-FI85?Ej^!5R{"Cx[vl[6^A]Aowi*yղ.9noȏn{㭵1/mࡋUsn.*kD65\Ԗs4jdzTApzl#}6.JE 6P[TH5H|V-^StӴ-C⪳)VLh<&u_b": yt"IXjgO!u8Ո ̦DW sr /.*vD-y_X/X"^t + 1,}ܖڜQHSzjdaӡ>+OcsG!E/^[ԚǶRN`P; E8! 5VC(g{FeX7w_wYq{BtA'ս۾ElFk8-YFA57J@ .= zG97DWױ]`KV$=.B0)AiBy|-w CM(lٺ STFO0>8qJ4e ֹb qv'hTj`MoQqӾy7kAj4QXD: jg}D~O9o<1|SquHyy|zwfmnqk:davSCϺycWӱ.KsR5Z[kS iu/fǕ^;3ٜvAN38w9ULV ^j8감Av܊ )c!#Hw2~BF[Ht/e#R2 !yKz q5V,V)HqH ֶRBH葜W>9Wòmj.-J/":$ga6Ԏ+ fU^̡ UՅ~(5wreQ4&eLв3213V!#1#(r)'TU`$a5섙{^0l6<*QOޭYA#!?jŎ)Cl{V}I;-pw t2>WlF\z2-D]ϡU\] 33XOPB@@WkǛ@4[.zj,<^`#" },n.^S= +W>ʝwcK7˹; pJy"6 ȩԴrrU; Hy<Ӌ]/Gt{u8p;rf]QEr bW[W|t#ƶ5;M[~sQr4b A@eR72FVZ-szcDg}8٬+O6n$\ m:BGhQ_͉(I]5!s +ެ[F]"{q^B(!wDTs/[Fvc[>/GP44[ Y^dHo<%NSnv] kBPAN:/RX̠8 bd: /I?y,'];JJuX\Z +H孶Ph,rZ2'1A$8|LC!/u9 3Qo`qf󼵛,,frKߊ&AQp4rsa&-'"E_ 8j\teeZE(C+F5V]Ƿ !Gн-c YdЩ$%G;=t6fп6+[8*Xp5ac/Ǻ$}= +4BE$x@(m*֐y,am=2AXEdlr_l׺踅ENŹ#M m[sY8a.bI..愕=JG[UAMa;,\orWni$3}J.6x^6kٝlVQJCo:ͬ9 h-N7y8X5Hs1)+=#zǤ}w)=#G},st30H{i9"pg%z=sjA>u5aenU%"աu釷􈯴=Lo b4r[`܊D*hrT q}O`U4XߋzEJKÌ6Bҩ9u4XpgSㅌض׮|$YdL g;]𼨹VLt߼oy g4*0"Wm``fPWfˤC!G: @v:bH +6^'". ACPGo={H?O"̋卤=9hyy#i0t\Ց($ڣCKZ@y46\q5nJҐzuHaH5ƕm F:t8a`PHmUtaPHyH8w[CmDu G B(Ye"KK EOY:/ofgΥ.8lՀ[ˆ,#O#HcP}ӌ ب7aH<= fiF CP_4?>NZaxzd)< 40w NI KCZ>ww2ɺ>P({X[NU!) - +x6M| t +KFQ5E\[ݔOt-)}t)\hYf[$\P.2`#knHIS5> +.?$bXweQ$J͢Ɇ;"w F??_1Q۲e{*ހAZo&g 奾BVpR[768Jo!,fC%b`m~ xx8oGl/.n K  +ܹԗ'b^vycxttaCD zx{5g@-^f4.9<WZ.Ґ98c6Jsi?QI0Rr-.K47rpk\Sr\ +3Pi:Qϳ>KFy鴫; {,ڲ*fq *@|ֈnLW!HH JE'@K* D N3bmkJyMT g+{ډ5:Hsݼ8$强 iqu臘Q4>`6GV*q!Yyp;+R䩍ٛxR޷r +ߵ6 ]j˩J\^:`&#U ̕fYE#82>bhnDV:,~~ꐚ;mٵ(3F  #B`x,Hyiټ aFKi"㪘x.WV}w،x`P#k }+t.AǓ)im K'UIqr 楐 Ї鷺1%`ɕ{K>;A";7͋< eK,Q$~5YuטgQ1YQI6^xFU6=vBg>i"+ $yx^Zwg(J: F>Ysq`tnr[wRl| .4lj:K0ʖ7 ba*Ź0߼jrfd*(#}j,Fr.ŹiE?prM~j修mzu.ϐZ]+zbdε& lIeR{޷qCOF.1c\$xs=9,.AV:-%~kO] + Zf~Gh2vxo尓 +V52V9\^a¼ لN Ka#Ș>qo.H跲Mq:!Q!K1 Pn]wS"Ve4.Cs{Q̫ f֖| NBX?$`Dt"J-F'RgbtF>nXR6Go_} ڣ"dD'I# A~5o} 2kAHk"kAF[H'un1봶@~GvDbji4Նey͎&V4 Uz"SgE17:.n!UBJzqJq61a +rOf|jF ,]l!ouq ++S)kįpS5dԛETDٳWS3o6/Obj.`:lM[ΣFntm6~dcj{?BC pwy%m$tpsXG7ݡv HGqts;,l%.m`szsɟߵ&uo]`yyж=P@gۼMN3 ⻋oacwl7e>RORDu( bi6;BZNq#]V+JuE0-\kΖ Ul('&7ar=")[k-X~OD:T=n#1T5eXtP5mo\mݚ$..D^* +=H3騘|ijUq`2 rhF[9U5. Z tqR;ن!6{67pR>/q> "otRlj,R޷:7ӱlG5ZyU`tw-2-AzM'sO1lSs){@ōӑ]+܆+t=[9PСF4jSYٽԦݭ@qh䍕O\2F͵^V_GsqAkiijvlj{ARV },ԽH*fWeG@nۗ]dʡOE]Oз[ZYlaGk57 2a:=X<]0soi|"yMμR-lGӼԀU.Ʃg"o%S0ȥo3I_Ym'6t,R0ȄzV\oeRc79dZ/>:uy."}^-Vm.e…Ɋ\7 R_{Zu`G'Pw+LWqCCb2ߡq+]_]&RYʩid"{£FAw27 TrjYw.K ,]l"2 p4WGn'A\XnCn*%~oXɦ)KkYMM:3)07ine+ UP1 z^/]$3x8Jjz1eeK)4ZЁ1rpkƹl|2إgd0&.\nTA(۵@3$`̫e":V)]wCLU-+1W;7@ьUZ? c xW\8]i!/fWYNeMVEiP4bnڂ>]$aRUrY#VA(âEzj}+k*잿$cS,cÀ"ߴ55OJXWٝԎЭa@hAJm64[Z.W:Nm69DWD@l2D6EרcU"jqt|Yl? [dwwڻ"d:[]K61r^?&A~sF,Wk8~K&KE$j].-0U5۹@~ED:$`s"yʂi %\;Jf[4U0-bc|j̉کͶ yʼ5 X<~JyԺ`8UT!@p_MUkYQ%u\Et"}T-OE-tS(rIkTԒYe 8)TTv_yQ?ϩcM9wDvGXGa[=A%ώ{z_ !ƷVCZM퇎mg6.M%Ok{ك;Hs'^Jy>772(d *nv>C7 g\cDz[t/N9KG=ʿmhny8^,UmVً7 `{}:cly_p3ƃglpKmXBQ=/0i +؂1j|t(ňm&hfyyHk ˥ǧWIf|bio9=Kawoڰ n4k;0!>1;_СeȞkz&`zy&sb 0m۟rwv0u~#>ewO5?t?ݪI +REi8yӡg6q !,2ͯst_~L?+/|o~o}/|>>q'~nO??~S>}>j?ʏ؇o??'?k?kٯ_}7k?7տ3630ϩ/C|ĩ"|.#!(ϥ~&ۘXgr,3-|&w7_? w_'ko{o}Wc;˯?>YPbCwsΣgnKm;S5 WzLTx+:$da:N=/3 RXጬ?&(͹z[0 K=tAf2uiRvRY6tz^:Y*ƽ&:PF:_2Dž-wg6;#YF3bltzɧE6OcaS1˗룹Zz-xkȐz80 +K˥a"ln [ο!0nz̀ۮm[ءdչLx^sq0s# zTs-/ >p!zaǁqnBk{a~+uX-XVKzCx=tӺ<;^wruZ</ruoDsz_KC9ڣZFjOE[FUj\W"$aZ,n֙/in0w0i6-zuE.g%Czm=Km +8a}|Usc|.C#(s.ow_9y5 b޻=B=/H|5 +cx'Ay7كU~Van3r]ZsTE6!̵Ƹ>&g,Eq{d4s y1GaE9(A=r9N(=QSoTGťjk-g]F^2=E5wZm߲K]d+YG\wqZv;ݸ7N bVxy_Dzͥ1Nc)މc1E8Cih2dV[q 1FP12#سeNS1&!8{^HީeZw ɭh%ZE!g@#j q% *R= +fn!/# r.6P;V".sg+7fHX-6S(BcF3d*87(f4Df*,b̽/t8h#]+ dpV6 EU$<~Ƥmn"S đl.SP Un79$hHLj/^ETl=>~Pf!gaўB؍O.vnF]f);A:+ttyMXu!u)" }R*Y:ETeh}QG)j៛ )HA.ymN<͘ 7"&FTA*=uxxy{w۳vb\m a7(?9RG,0BiZY6 pw*ǝ,v'n2zZcӊGr:T0(~E Ӷ.cƊ`-w \`s\7y4n#smdt^SI>'X5 BWzmsU+>⯯vspaPj;,T@u5*jdD[ܚ//lt.cR'@Mp$53[ km[4WAЛCD+=\t=*Qrl ߯''`k9uEGk4zbJ'?Z{=ZK[b.RJugd1 ^d>sQw#aZ" ]re6i>kr-6'\9?<,D^0_4z nf?f?>o6\H 'It!~&R󪥾klSܢK^EDSY8Si m4N2H7.߼iZ "ل$Ous +ə_daqӁ0XûG%&JEXXZg"JG^c$-V'=k,g%۳V-`QG5Bk [e&Wpl㳶BjnmQ*v?<AJ3.:1. sHVOg]Es+N@V0ۮpftZj&~1H>we487H}A2Je4:dy\Δҝ}@t0۴n5osOSk۩i/;}ߌRZV:wqޖ'0:MIFalR< xJ{xg;E'=d3xYeFăa^$F2mWC"\6Ƞ͢VN 7 +\^/k7v$.)?Hd \+=V@.٤5Qɥ{&x7qf;}ٛr'_ ́JK/ֶѭ1Ue`Zw> ~Da#uTew`oXx]#$Fi4tmDsA|vLY =sؓ{T̰ӴBc9.ÃW^CtLi/.9-Íq@zP r٘'?xG  *a ›WwZ=lfeh}k)s k9Fu& ?WrMTYVY;aWAKauOydS1,}Y3r"~ycqQg'tZ0@]dE[,KbЇ"[*N1p֦Sr,r0Hqi^Kj=2#{ϳ$ISN\2wɜκZi .]}o Z'&˦w6oy?g[l7CB0R? ArH3~mG[ 9-g"ܧEi)8<b7[Y @..תt |c"HKv n" <jw\7 tgCx!=-vk7 Y("ikU*p%Lekɉ@'#)* #9VDbX<7PZOETNWLXP5,m2*D oN r9-qhTSYt0[Jlv80+CNqEDJqO,~9?H6'g؀HBӉGDs$ɶmM;_kۏl6i12C b.OV=0{,{?(u[Zjȧ΁0.OTTdȬm{$OT_~hwy柯E4i;kK dI").~-`m=ҝt@$y|& kr'uΏ.=L3&~JDj;ģxBDf"-=ӝ[@pќCJ sh%jXs`6F;?C0>AH39s'2HyN3w T]oQ9~#S蜶c;wӺkEMI_̰K;٭1>AH3OY:O`KPFdC5iy{%}"Qߣ-&wۖ-RhUYVO>:'_q C(%AAԵ"lY0;Wr97 &瘫y:DҺ:9aʺ"ʢ֬ylh`6;Lj Ҭg]qyQ %ky)ضEMߔ}F Q '/MAMNtzu9~jR^_ݶD\1bCWs1Qsx'5\8cr+u9 +dέFedY5=U;[}S{>۫=ٴ!&߳ijMM#^C^\}^HΨR +kr.-H[|[兟ҹ-_^^[/$=->Ku gBDIcBsI/<,t&'t5 r C9#ylWkEBOrȵbeqK17qGuHJWABӈEh#w.r6$K"aE>s|m >H9kb晗=7y+6:ZGNl6xR+cL׈c&xo yvgőmȵvH'%(~19'9@/-ڞlpf9mEb4/  Ek*4Z?@$bɊ5V9q{1c9s9r׳ֵֺ12VȀ2 +PU%"rEGtqBSG0[DɳTk1v )@q[s0Ko:u4Qa(>Nz{^]Yۄm1 .ǚ&Q%eC5.rY$hǜ-">sjYn{¦%@! Ο=t\.2u&eݐ,.uH|,0kk\XYk`h 4ēZuP0u"C@ʓ*b.Z3S-,F VFz`ZYiOR6er!&Y8.o`]۰+^< _W{K0. /\zc-Rie +47HE;x! dtB9Gyjc5MĒ\ȫo +B1pJ/?FoySM(*eaFޱ*R;]!ǘI?, @!T@:]5J4'dusNH,IN4*@!ID)Yt6Z$M6h*ZeNcRhUFMMXJJ>q">%*U]F/<) D,\k+2+́8A(iBj!@LmG +j xgxS ηm "68'W)=.$pC|X"e/>% dUo +x>742QFtaӆ2 Q)8f9;AV f]2G?6#HCz4tYv;O9X^XTf X97¯(IHm !oHo(aFw?.WBWRA_;5^׺j'A:Z-'Gpӄ0yH*h.KTQ}{.=y>ϧo81i .B+l!qHK0Ru\{v]lզ (b#5H`Q%M v;1(KźjC`BT>K]Fmc*K٨Sj5^(۱CAc@DeEW|4jxN^)zHhYYU ڃ+fZRN;I] +2yI:.`l sעeC7MCELƈe)GOZ??bō-b6K&z{c1\M!cX$KrM1J +KT$bFLȈ_)٨h!{," c0Y賁̷}w=8ic er[eMIq硝ZNG 4" TL"7x4€7l,u8Z5p+u~8OXSdU7۲v "ph$r 85 vÞ>3}CMb%7O :bi9L-D61b&l2C͵Cz:ye_%Yܧi(-Kb)NƬ2,W|Fݏ*^bKT8 +NlA #-W[x@qOIE2$KCdZ +:&ԡ_e0 Kђld1G1_RHͩ:Hr=_ t2/ &UFdfw2c.C;C1N:G06}"V[<*Nlz9"\]Jc]w5%Ǹ\AK4c +C\4k\Z̎Z|C#gmm@8LSv@h xD1sb p#!+^>icf!mE-#|ƹջU#ɟKn[N!SlC$ hƹ9d;t7 +w,F)ѡ: 8͒j$'s ]}@1$+9BWD/!?1S˲8W1ߐ6i}t"q|pu#@?%kH //o + cA_A4"K$Ц#-7zOm`^:/'mD*;~1Mm@9fqR8%жt>e\%,J4.RÝv;_dɞFmS;A7\eO1eJgD<%T42|@x'ka[mk`&ODCrpzF1"*S| "J#BWy?zvRd`J +"@to6[OPZ֝^ʳ%THeR//_L%.J4Q[cؗh+~$Arx#B Dzˁ̈́C-AK/ۢr RYh5sK1֕DJr%= \;Pp{O@D@dGpbk"Lz^K"K +٘S䓿DE8 T7^\39"odhە +bA|L!g1Bxkfp)|NNCfbRڰjJT"ph2/!4kϪ1Rl]%ajd57R+RtW< mՕ YxMCF}C%|x.UNAU@T\n]Ny/?o=@H%F1> X@R6Yj%;/r;=J) X@lj\eM^u,2qy<9fDcIS0vJoI5ԁox<<xH!I9׻&f:=$r,2so"$u\vMCSk3?0~]P9tRaLq "Bp/u|:DXri\x*,/ܤ^k9" Zǚ!vUu{(=[Do=Q4t*aJ` YeC|)-AKb)-<Ygm ++uzA+c )eYnOAɞWκ 𰶢JB>g- R+a9?7_'WO|O?~_3{s?}C7 Ч釾/ȏ? +[Os5cGt1KMMC5 \̲ MGy]6\0#3)w_FIڨf1 qȤ,n@9%VwbG%K%@:XY;^SxʳEeǫLCtܴtZD ){e!MY =Hk)cppLd;rI`~om,oʄNlZ= a R,uV蹏$[5Jhߟrv^fܵaw+pd r.)&T򪀩`,uRߡk}Ck캒-v`xP9*Uf~ELMOϗSFI6.* +u M*E2Ɣ cEBShr/]ё 1B~ + +E)F@SMQYJX +Hm"I4*wY4\_Y7ښYdiӁ$/@"24"ZLn:ZgEH xy,e=7f^6fGD,`@KXz[& Mi#tWB۷n0FBېzYVXȤ2)Z2Bv,k1ʫJuJF\1R D籔7Z9R 図04"wLx7R.[#8Zl;BY*Pt1bɄo8w L컫vDҠ`r1 ~RWJ33 \8bS=xt05^Y3[5ck>Γ@U?Ճ줱d(~tYaoh+CSyHtRg Cﴡ]%I,{PcĘc4 5ur +Ws提~6>΢,yFVb_zDYMKH@:ؖ:(-ReKYj"_NiuHU+fmC$"˙`iBd,u:XiB%gq +ԗ A\&5C p+CoF'j|NkZ"kSh7U0׽>\ 6M3 PʲC + V:$ ռǭ;ˏ1YL=@6VJC".:Wwzt7A'`5AKEgcV3TAMlϥve)ooH,*5a L9R@hc#ԀVvoʶQ&3X4H1:O>!/;vy )*C>ԟ=pO`Vpl!0%iĉDNjGp!߲,M:c5̟ƕUwޞ C=k5SY@5d8q4R+o4״lx0dpEnwz76;Kxe:=+zyMh3DM6@g9LTLATZ(XvMYY4Q-uj1 +HSX$H%<Ɯ(V1fPeYD^ Psr]u8kc7ggɃp9荌Fj++k~l5ds&xEh,+b8M!<2'Жc9Ttg|CºTk&dx]AjuC e Agbq4fKƇ\)F7\Y7PY~7T*+v7Af3pBV\7;e?k?sY3a0+N3gLj2f"8cr4H-()AH5BCbQa(E/ :r=_JYx7bH6&Lzp%9ߕR~-$>rhclo<O'/Ы7Mpr(N<uP_9z珩3.zGtM4ɲv+6cO!DU請3Y_J 'w5aՏ?;SiȮ,M4RS ژ8 ^\m[QB#eÉ9 8xc$ݕemCʆzeusưRAcqrPs]cGRXaCItBTX[žҙyF|$ˆ8mh BipsRx68~ t;傠iP3l³JC8"nJ]CyP.,ƛf]CyP.ܟy;a;$44-;g1l.X%qe!{KX])C~Иl#ġ"[сs[?0XebuIol4WDwY?p?ĐXSޝ=C- MZ]w%Ca:JxSpr1}.i3ۈg_S3O{P"+h؃(0d,ɟ~P )u0yd{ +X *DtM;0a\.:y۞0(ٴHSYc~>:E3ѯw;?oۿW}[?7ů???K_Kħ?O~|/U uPO/uv 8 + ;N6ސY֦3pLǦU1W)?c_(V0.KDT"dCC&H=a4fs1gSr7 +ʯIƎ!fl'=lE\ʬJ'O6]|+Efz}YIf:Z#j{r >x[Ԩ}:iؒ"<9ZRfQb̮ޘMK2cVr/V&*&A^BaBtʹSiTNZD :Ƚ& qj6֬27ˮ#;. z@=%v|%d̶,WD8a*vGM<"`:8R=$٘mYnۘ|@y6 ` +We)whsX>&XTY"5 ͻJPē99x{d]k>X.˛7k~gygPTt·yY.| zBJ]`?K?Z'^v^^ RfU5ԃ;ܲs=*^C>zRXe;X6( u҇: F*Ye#Pd)!CBfɷ`A Y4TJqv߃7 +pl^!SnwO}Wo(JNldEx/yG`+~x{KFQXC 84`raU:'5 ,#8 +MJcϑ,7_X݀JB^'Cmd`Eܘ̱3άbK1/wuY-WzGhL!,Z@Q'JWvGN9 DoIm4f3*8#q/Lh? ڏڐv$pԡrhJx1Y|1hą6k `"j|S?]u^Ԋzyi.>D15Gιr~T( 9ime(k6e{'z$yg o\6+"K.4q}`1fِ:Y6wl\cmBljM ,^ )CoJtk|lW0 T:`f6< se3-A1RTE =d^6zeY4.4i|Xn\6r~CocKW@jQyl4tGx?cLZk؆Rn)t(<ϊ1sRb-˙ݻ0MU uh t6P-)x"`^4E=5}3/OՔE=5v|Ԓ/Z\Ly[Io <Ŭ9t4,OzW{!иcR E@*:-R.4g$"KEXʴO˘B u6{1em@lp.ʶ +[])}^0DmIs\9ePU[enH+`0a1\Now+?&uP +c 1x!g"ٜB-TEasEё&7f6(<&=òqhpGW0k_4.( p&—WHB>|=W%j3{?"I<\)rnyXU9[#xQiwVc8PCXRrFGtϫ&jĦ}M(ڍ1>F#{i[S^8pg[vn9bVظQ1 8l:aJMC̣۶/a +Nˣv"2l|m@H(̻t,Oy"LJԄBa)OiSBt"W\5:D&6 + +zs2lBbb2$jț+"ΝJ˱05>;D$~йsV]#48vqG+.Li yV Q;ʮ7(欴zs"ؠ6\6s1T˦BEnmN)KmRd3ױAsB" gR̎)B瀄R,U*)]Hr3apỔ-;~*%kOr-A yNM@BNdiexg `MK,A +rb𞀘؀0)(:=̘ΰLk|qB%yCT)7 t7Ҿcd+gJyWٴa\}caOF~0CX,TԐVLljVx"/X_ұ٣gOSy]s\a1OD_*`R#w\5Ø 51@!®zI>I y1CaF|LQA: ax5'=n&sI0^P\)RexähBSR; B'`BJZY)4g1cu,!S/IT;*PrjW#,SrE.j5Pc#]wʧZ+Uy`WyKHJ|&t=BFq`8FXi 1$$G@MO+?Q[A4.l9)톀\`C%KÞ`˅(#ANl@S6 peS?FEy\B=֗oq΀k]яor7i:ݣ -w#?L+,EӞJχ1< +m‡BAB(h Rɕhd3Z R #h8d`uCP۟v"46VjbV.0-9ˍawuOÛւ'k!0d&.J|Q@qF ʛlޘl;_6614vL! Pf,X@156d ̍) \8W% 8׏xR|Wj{ OFr@l25V;5{vt +O?̻.Ax] wZCeqZ]ð1 +_cZ!ưf'4<#?u20@o]W `5>5%Ȩ+RН6 vRM};g5m.GZO礷8p|z m;,S:5tn(!/ p }X"؞; 01kP>X{ÒpJKE1HgzReVJF̈́=+ Ig{GAd포b7hX<4/<;v3re(9$QٺEe ď&uZiyñf&uze99qH5a!_ۚxȉ&\{UrbKXu8]\b:~! +#a(OտRiՏڿ9QB?`1&FyIl\KwRTʙicl Kab֓SEzLa_Nbr& i!l xaK)O1qpؠ_H]x[̑v $u zVWy>6QMw%chXXK]pH\ "?~lڱP5)'B5y B 7 9+Tb"`ԁ$:RiN`rE/O؛Б<!QjRcܘLB!|) 5<ZkyC,m* hX" FЃ$!Is-:O ,.# c@AR!VJ C1e|….Ԅ;y՝OsXfυ1=sXcfG. HP\( .3JtDlCnVˣcY.hW@iQ E~TXGtH!u PLVi`D$)$Faӏ* M̴#)o:25''25 +xɗ{VI\ zɦ.}ڀEr-Sgd47;HWGa=x % Abu$ґJW_R`ڞ削؋D:E(aᵷhf@̺uqwDR s]a`$$H*u .9\ +-E] A5@!hzyc?HUߐ.Jr_'4y;BcձdCh- +8%vyi[XΡڃzT\}0X'¶xJ1z-x:畕f"W[bT޾ť[?)_mn͵oZ Z@RWUJ 31Žm&G׍> u)IJVU]n cӰrcQڣ~7gOy4obtFZסF8]@Zpy3t/p5y4e\U4sl! a'Q'-x{b3)B ]Կ0fXh=n~ђx>[mBb4;F@̕+j ,X5R/䙧`iny-)<1mH-uR\.[.'tc 鉅kaŖbR~$sZ .OZ)l?/c[ P܈RQGBbAiɤ[xHN=+e߲t[AJWw҅7Or&ê"r ŖڠRT+yEb[sEBc91*ewLsY#T4`fC=+∏>}]_1AJ,mh >l"sBv*?Թ$v* sc@7Ne]q'Ɛf&uO8+ AG'lZ3H +/&b 35(2&q.4"1 ݰuPLQ +d!*,ukr%J_Zϧ fQ8J0^S7"aj9I#lR|A} D +ԤJu! Ƃ!0F9k*/ru:JTNjHźk̕lIg -`5\>BJzZb,tIBW㛞Bc#V-İ&`!IVcHjNt; +5vIX]CAiŨZPh#Hd4Q +"{"ڒǦ\~.FqnޖH0\`fYoaff9:Bk.ϹG0 6B4|b@͉m~φ399q@ct6&D))Y'\1`5:HaWU&_(w0tŀդA9쪃zsK!*A bYҧQVbXVQbр'BT+ECM.'v̳FhRCy?Љv.SE}i.c-_)mkҜyxWLJ}n5,]ɇsv֖xr1 ( PAg5[x{TC,{nd-NŴ$!!U0~ѣ<{rg){&Bh +9q#jy @{ލZ\ +)\F`L%,YkKSM,E&$+6$P^~%+ S@R#"U*=)DڽpݵW8%1B`)V7VD:<%o!(< O>?(vbvB +d% EYLH0? +qxKۭ[ZQu-1XԤg+|Cyh +/¡% s9c\fg91ۧh2k8vz/*}D(`{XJzW.0gw+v^+Jf}w}Gڪp\453BC#ʮSJ`"䶊aRGiS'lŋ&<%e ՖB=- r^dĕu5]\t 6YL*mNZk&9iEZ: @XDnQ+& ^Ĉį2~噒S6HեD&IBA1B.b/vC-y$yJ>^W) 䟠V iwl kW.qe! Sᤖb3}O uو)anjpIf9E9:g*kw_4(Vڬ=a7?3%X*UXcӓmuBѝmŐG8-Z(LP@5K:`SY5Ⱥ`39G6JגPxԁ%[rUv}%a鮦2XNj}u,DVAݪJ7̺LxAOyk 铅|km%cKT-o?RXo V ++w9xZ`&>~xR4MF0sV|jc BD[Dlc*JQV +5sK J '}+Pm.k5n\z +޶k>\} 87ʄVw pCn(<#cHJ̄0 94[>cfI)ARJQ!P#%`m/+Eq%9^냇)$^t6sYNjX?[JWU*껄fs'{nkeJ%6($R`'Jt߃! 9Pi>D-wٱTkpSKX br8K/zF tጘ'.-+h(.OM&olPE;Qw"7v%*iߦbφȲلxK(뵈KbcĦ!;*!x8Ƭ$Q9MY|be,$8Q–hďC7 oc9VgdbA(Noʉq`(% Ӳ>Sv K呔,Ll"f6֬'m@j5?^Ҫ_jWոst36=̑DLTI I[BÕoIzAI[>wcɟ@;)_lXm.m<"'|Q" +##|1;]rǍF"6c<,4b(un~A gU9dkd@%uH {NCrmoAdk\)D"uxQi1B"u\~vAFGk sNр{mblGlH¦@'k*cFsO@E6 rʘND%2ӢM7gMԐ-&tG܆iee! Yk&)]7+Q-(95w@{k6) yNG0A)d>lCAȅMEFUȷo&brKS0>u 'Oi 8L( G$֔# + S4iSy=Z;Wi*ІVR9UʃB2RjPCFs~<IzFs~;|jPzbhaԪ=Anꗐ[|.o +=%pBn|Re,pF}?|ay#S=u~삫b,C'u@jX\i5Ƥ Zvjo>8{EkѢ?gys&&W޶QƨK]^9? a'`E2f{(!ܑ[\5(Ԕk5*'g15x ȔV,9+0ӛ9 GxXPB"Ui|LVZ@Xpϼj#-wjBbs-S׀SLHfK (ĢX ~0!F(T2_%)EԭP8j~VT[9Q~,Ta UW#9CxP@d݁#P(d !GF1!{DYRSJ%BQb2^{pK@#Z*CS '6fLZ^> ":"|TiSeJC`ԁ28+xu|lgui$"O\ jpSܱ_X߆`/H|bf:!xz@':or2~c`KFϥCJl"u >zn*7f(sN8s* O:Re+S5.QnbSNc(W-D:|*؝[gv>ImÇ#0W:>΀&#`Mh])(|!ĂzZ6J ;6&N +Nȇ\Rh=hP'uZ) rHWaFʴB-Gv\i[h!,-ϸ-\2>`+!?>POΗgxLLbz@&1#爛UAy&'&//YVh*?wu4C;t0pnQj̦%}]lNPGhm=ּ*Л,IN@j2%y.Cĩw\ז_2$+C`E!b4a&9B}=/}rVB-i)/G 5ԉvr]r$nZzD~]F\1*@VõkjH#FQ4G)Dv0.z@h/{1+ç=/4c%3s}T8?t(Y +0JRz 2ʟIRUTLhtWu;gM }1GRxh<|y!|H4FTz=&F| -0ekDU伡a`/HJ?Nz@0;Jgi])ʒO8(б45HJ괍cBhx@.MZkĎۥbcjܶڥ=b.p)oYRFp/9SZz8<1Pj1:бThEҒӒ9b)e@Gͣ䴤FA`/ +Jm] a0}PtX>u|` ok#r3uSzQ +17n$ +H*|7ĠA +\b5-Dv{]V!b RPGOG#[>9@5RzSj_4ߔʢ㼜[h: +x:`8/#kA5Z_mvl2=lD{$Mbc ՀIycBv-S#xwHp(>j,XBrnB+ca< U՘RǟgM6փ,v=/t~m);q7:;@0Fd];z;^z^<`/CogxG%$ =8eu}/aUŮ+H8j$USRq AEfqMbLLʃHg*(Hy囎oi[2YeEx{ޓ-Ck|XV: Ćs:|І*%B_b3q`?3`Br) `$SSytQHHrt9Cо0@'yCPV +rD2!{|zlb23AH=c H[mj&'rc&C1JimrIgG +8! ͨ2{|XS| xndOF FH9@Eg&dU1 x}UA7za,Y<]xYbĐB ,z:FyG?f x$ `ӛO|{sG޼˛yyɷo?x{޼~ן|˷ԷƟ_g~鳟7?|>#~՗󩷿w*H%@e5X$ul(,c KJCR*T) +Qc АNBpRW~=qLЛyW&;r/@p RiB|Ħ=AL^(RG=ԕb"E׏ +QrT#2Oy!?M]*E%$U9mD +6#;- (#hpy؊G.kV@cz@bHD.ؐ:Txؐ覒 +SNj郼ÂpY( W{ؖx`c9ߪQlv4C{A(Aky _79/vvi+rQ~^i+r QDlh P#-(RTR[U.Wdp Lš:ѿ<")ˍVġxDGweЊ8((ͽFnO{B!Wm9T_}$$RXofH)t>r](G=,Бa80 Y1P[!Ky~'# 酮zҹ2g!$v +Vp'd-Y*Eh2|5X :OpO!u .Jq؃kN"6rjCݩ]<+Ou/JKp?m<@>ԕE,y֢mSQ96,ijh%!| V;=՝R؊R]1 lZnDvȾ`UW&_PcRFNˇe>Zn*S [yf_xDP)0:L@$$-N$+*AyP3k7.f"*֐jޮ1b s|Xc\d_Tw}9QnсE91<ۢRTņ&l:@1s L?RT +-|tԴ=;13UVÍϞ0VBXT„"ЊMNR\HS䅓yMSs90lDTCIiH!:AS(^x31RS + =DqX>txk" F]Htq擓(>0;0 B +*ы<+~:ڬ#5ᇖ⍺zڐTڻژh9Oq}Pu|ZDjT߀6T'uzBQ8ʫtp"Pb v1Pz.$~ cTa~og7^ԏ?~o[?_}]~˿NTYR`]lX C6ZRK+ȕY@~%:KYJS*dF>PGH-ܖz +Hb!9ӨscZBXJu,%:<1nCnzH631 Ju~藐= 4FDO\iŧ! +JtJݷ&cӈӜxn=+dIJPNsj`u +;w +MI-j_H-hД3EB m!Hm8MI*S^-FN,OLIrJ}Ekvz +<w2 Cn@Xy.1GʯDס\F C ut/pC=!Y~Vgę1:ծR4=0]3Rj,U*adJIN@#cm*"o-?>F+t$:t7; +4D@K>17{YgQ+ EeIi +p&j椴FhdkR7k{GHpAXrܳK{,IJB!W0)h R27x$CH*UB*% f9Q&-^K Ē뜕(f9B K +[QDĺopO"/ +rGƳ7;L\LJe9BVNӑ 僩ĩЯ"!U)D5N kVtn !6L78шM֩*hLh$u *T"c]j)',A=Ì`$`R* [gf +b a)}7{ "bݳT>( +91QQq2Oc&-+}`PF88 yX@Pq:n6|]驮G70ݰ$E{l=sch*n #=G`!y>Wy!x\Տ'O:O0\.|UvwU[6/=0,&,E^/9CN#;)FN"jS$T"Nԁ3( Sq;q$PH":{vp@\K%2ZS'mo4n0$@PTPFsmڃ`!\Vǫ\L +|sx%wÆ +|q8l ^CPDT˞HU^+Z1aSX[h,3{ LtRvᩂ캤Ur"qA媴j#hR +^Z҇@@P`k#R)a}ٰU8s RGnaTm}Vxs~ӱ=J((0'ֳKuك +|];}1K S'G'zrC45˯5gRHD`A=|ٓCh&2w8;R1(p,- = | ?.l ` }ʠWC " {);1%|GG? +p@%Ԕܑ2VrڄfI;]G`l+} H=H4Zӵ8h\Ӏw5pFιMW: ;6= O0zG[5-)'5&X \,H-XkIèpFy&_O*c&_* $B'QFN"hmi覅L*MRUP2{}@C<Կ$> +(۔qR&Y8{n :0{Bn>u"|YwAxkLwXw:\:ܯ7dD07e6 (US`8[$bREi"dF@hfh)F*UfBƉ4;;W_N$.uF!^?j A\:YåTrS_?\O[^+Sjz->HG-5s/Xm hKry]g4k@.<!D \rk8qkD\ؠ r@_D37LmBe2s4~dF?~ݎK'?sͿO/?_şk??? ъq+yС2Sao˞*&s7p)jhЎ; )IURTJvb3KX>Aq9}MGŰڭ}9ᮇ>-QqZO(!rG:-RP%KEs03ԨPG R4mH(wy3;Kxءl/CK^(BxazFyd}a *>p0!f}kZyJatRv +"UٳJ"cpBsgD3E6EiRi%ClߌZI4FRX>zRsX# 09M/Gxm!.JV- x[\RȠu}zM#YȡѼjR.3]S8"btB$(H*e:Ky6-de*mHֵ63NvjDiILvQuG\k˭ƞUvqT;=.&}I\rX+sgǀ,ƺxYy-/jZNi\#Pq*Og.U2,BZN'_pZ3NV^)a3j1NdpYj! E J9c07 eBuL`zf-ƏFh9|r)=EyӋxav&X5I)7}u;r/X]a0QL,R]$5sBS-hvhF +,5j/̅E_5 ֱ!@ $@%*τ\ Y>蕮<:0 VEe/6s;.rg +ү2ظ`[ɮu0BK-՘C +8CCF )HkL”SU!!޴%$Y}<ނծܩoAKp-[ڵa]x2NbLV*x V_o5(gEk9Fb 0a:rw.nHIpgȸs3&/ݲD42nF \tXrPN:ξh\y)mu 0MHƕXxF$݄pnG ȈOɐ7RJZ_O}h!FcBԉQ(wi8>y^6wꂅeih3@b^aY~&:X&v' 4S<ѮpD $ R3Di(ዜFaq5 5'9k^x!3HT./͇qz@:<P& )h۽aH̹Nc[5QJBɷ͘+c +B 6PwGT WCڻNFù29W=r-h@ŶA`r8W'!-嚋|qha=:)Kq}?c RK{SFK〷\P(a֟L,o!NãQ*#./~JvJϯ* +|A@I=-ubW7p&F#[ jLFwLvoOO9r uðoۖS!echFr+h}p]=g7TKOⅶI<[nPW+F6I)N;id̩BY}$ZhDܽXZ,3u!j`kyVJ8Jw覂I UӿM;>O0Yq~MiY?9%RZSʾcHyh:iormy5CfA'}` idB:F&BChӕ3{# +"Q-< GBꌝVZZO;Ͻk_WU↑[ze^(›3/j ʩrVmѝ˥ jzE>X9'R- <.7 ax9cqj,;%QS`rQ[QTw-A)@u? o1t|r,u#.mG,rKH&b- !5w.B9;M,m`HP$NxYW0FL'YE1{OV 9/ +UumἋ@<rh>-}C373()gtf4IF:Bb ޠxFHh֥sЬyj?ЬY׿o|Oǿ/o?O?[+o>OqYɮۜXS Q(o" ؈r*0o&.^a+.a}I^h@8,j Bԅvw* DʂD3ԖE/rُ4{b7GQ/zW,X4hy.HW\PL&V?!qQX?Q쌮kIDi@/m(@>`vun'8PumtaH 5A6ɕ癬n1lP8&$PYqw۫ +3 DVFDIo(,®/\zJf Y%Jʰ =C9+ChuI܅у}",d%!#>Cic[oի"+/[&JV1܋:sUL5 6y9!LseϿDղ$EG0@ ԜnJt1@ L7WV0@L񪌼jH_rM .UPoѕ2m+8+)[j/,8bA?}._AVa{f9\N01%::5'aƷXK%!O ؠ:,٥tӒR^\0qC?0BAO>.Ru?,݊1 +z4g"!f?L0ֹ/ǣwAM n0Ci>Hw<B9{&U0pglr*uQԨue$ɸ +6@[ߺTE]l{Q&KVl:ՕQvg#(00wa6!ޫΠQtVYՉem0199u:fQ݊D| FB({nErC6JH*TpLUV>!c p^ƖvB 7/an2X0!X$' zԳ/PB!D)&cB,-Ǒede BN3UĖ9A!Zwk[9 +gY|t7 modD"3rj[bB"!NuH%X +SDPxaPruU%Ig%ftˬlYDD^Xt|H5F+Q[}l&np; /(_ 1}@XLTڄWM0ŶGjOϲ mvYy䙴уgm +ߐG OJaa4xH9f! t F_m:L)@) 'P|z$8P dF0N ?G}sP D竑klA78빁1K.`;mH@ݩtu;' k;ѵe|.Z2DWFw\-wJ+vnׇ|Ev.sJyܴb^cЂ!HVcE)B0~6dnNǑ-IjW +-.?;luD'Cs_*Vapuٴ֑]|^ !(4E!@GK;(hPrœ1PWwD!A }>R]x4fH|C[$RD۬u0:%h]i0E]٭ ,ƗE~N -'#կ^ BWq~=ւv/ӈg4ah뇐_B Z!䗐 +Pz1Zx!PY#5=TPpvse['$bƊ Tl- +n\3I(δK "P $wl5 9t,@H(fԧ2Eh\?8W&F1HS߲#l_2GW0g최Y |͊lLkb@{㘂)BlS4Asz,+/}mycuD0ho#:"2daư^/>/o[.\\!˜[o/'4u率-v_P"#1cLṀH>PnCk\FdY6 쉶(eLINΤ +v2A%R Yf C#D@NGAӅ  Yhwz߸"FRjzy .N# LñS WiȻbZxJ팱еX`t1Ҳc| 7REU-}:1֦u#} zr9Gn3띎4]w9:p[N.uZCf .\;zuſ '\Le|<'VԇyF9!ؖsǎȏ.Y&;]~d2 Cv0PH!25e`5:[N0&4f4c+,~"J +hj3~dwҏۜoV:NB=~]y;jv!~[{N7MFeqSR`hNӆ*~d߭wj 4x15S t0yq2m@Dpw 2z1\ݭ~cl@%-ZCuu#ǚ2DbP(yrk <6Ϗܚ־iin9Ե>vi:Xė%v5Gu_)`w_¸JVM[sWf(RgS"C +BW{>:跜aLAT|Ot iCo0ceKp*n(`덜s|nrt~]A1AL5=,y +h`"R!6n&,>Y`cu2L=-',cǪf=Y&Y +ۂ0*WY'βPހ̐pu"u!1,pl5!!Xb" Ż$ )P !,Ո!!XbjŷE- BXX ti`0(s3)/Zh+[Oe(ܢTpkB_(I;]Bm-bv쁕B+Ji!Pw(^"OX&9rBjQ{ ?s }S+.$2A /|O)0fTu-r'zpl|vꉟ׫l{ +'!"r ?=}z!"u}n;!,ËLސ5@;i ; v`儀`?Vzqh8@ A{1a8kŨuQ0ہίA8:휯36B%n)b2迋뗗 +MaM^['rj zQN\N(2 +]2P#(tqvtfl,) +]W?,-ZX/. L|.AyK/PwLcP" `܅ [=Od8VHV $3uݝ9ܖ @LdNYҸGKG \`1{1@KtIe=b| +!nHHY-iTYJJ Pc5uz +18C#<AJ݆IwÛg [?x/]Զ^,޴KZaC4Cj0eٳXM{Xvek4]nV\hP +|ߟy~@Pد3{M^4Éڨ;vjn1}>g@ܓ\Nh4U)jO124'}Lw6) #/cde٤r#[5JǢ]D _ϸրA+F 7Zyy={2lՁKST$C.ү_]T$C n"mu%# +*5?rB+9z5cWڢ(3-rQM#(u;whB]cdL;WOQ~]d H' +i~8\5\ +/۩ w@C% *4l ;P!8qR_BHMUgXng{m(aeO޹,0WQBpa",՚|p,rGj (wrZ1pzuL,lzHq}]})RˑDUdo$ JP"ɈM7 +%( +B/0{Xt٪uM_ƎY_XGݹSYýx,H3ZNXѽI,št% 5rBOQI)s-"/~=Ԫs!88>\'N3]TC;l04$ԞyhrBSQywǠ\*+v89[Y(qfrõ]/q?/j%6'jɈy2!\tK!@?$W aH?V22ˏ6x5kŠ-'t5s'#s6Jem`ՙPo EǮiC5v:kXSobUEB ȺxXt c'Jݦciʹ`ɱXB˒aA34CR, -{Bf|[N.j:/,Z:}T-Ng[ ,#fk9ye|wUzShaBrX7WڍM;3EKfMt6(I-,Z4ڱ^BϤC-Aq"wGe轎VP0S^':51?%Ɂ_{X|=u w:dPBNbG*$C ]5wX%NFJO."ou`‚kц6⤽C65"ݚ lı^XQO Mm#B 7P|!i,P 7P|!i7.M3@!f4޺c|nrfFi}ѝ,r +/\&ls/:W^\`-%v0XϽí?nA`Hm]@1^P[]c :};ˆ"R@.|n RB^wXtVd2s1v۵zb|D9:c,!V7-|Ϙ.xnOjVG{i4GTin4`E:d ZgLt7PYicɲ\]Bnɲ\]BkmD'k9x`uDBBjhbsнB** {#@y[Ŗ͡rS;v܁u 4hc,׺:ǯڵ(um\ ]Xo-'4afVmDM.;dj[e\v% W۪#P}c4v]d]lMhտ `axzU)n ʝ#;U*g +C5&2;R +C^~} 9i(Iᇰ_ +(IᇰZ.'~]Ol;f,%C.! +UUoJ(R`3ՌRd538c>P'״mv%>UQpIPa]~c-ХA\e#~b-ХA* RudBOj?$20ra{]=]&3xH.Z6f9AߏE[x`vc @:Pgt#-ā΀u Lbflm̶kф$bgWO\\QݓMCuOr>d汑A'[/6_ A^X]bR s +5: 9]h&{mGWڿno7l_Ȗ^(Yܖ1@rT1pT=BN] 0DrAhcѝHJsly5֣;Tlabuɳ+\y-sa; ^"݂C%훳 wA)S&HYڦ,M~[{,:wuKJX/ؤ +P: I׊׺;P: IYN'cU e.k~xy2!72) +=V;=q=5z=Oq]m=Vǁ,?`r5q]NC>R韰7ҟ~H%,];넁ҟ~}m!`pm!5PʒOfƻ#[NJ1!YΌ6<'+Wp~=Vu OP GgAqef轃k-CSS]>۽ۅ BwC?t MWPu'l .;>,֝zqEm)Zt!k6]l3^߉Iup~{@ׇ +Ζ((?e))w@c8`qN YE;~hmwޟW&PO ByϽyx ?xG˛wz}ӟg~t}؛w}}O~?ͻ~K_.?ϗ|So>a}Ϳ/񓷿wz;wO?ԏw|{~M=2M~w X@OuAzePj-*u!pv2Jy%ܓ%Q4 jd.WNtZ;ψhBk{n%R.{[p&\i[«b.v,6cZ` +׹ڞ \)=w]XX;IK8v`í1JzTɁر+ +*w!} d6&T䵷1{ϛ]Z"!tj'.2 rkyqbt>//oJn]{QGl'z&o:a?& l/|&2!M6G{/'3{9Ahbm__jrr[F.̭?O5Ёr^+*nd$ Ssa,Dx)W\pNKmMuU&e=* +uUE $cuuc5Jx!Nw Jx!O6݈~ ag~xMc^[cB`^hDRF,@5$O6FπRB,Imk޼hO]|Tl V IZ˔pm +Qʓvᵄh|} Qʓv X TKl""'|M[Hyͬob-D*?|ue=X-'NFm0+ D5}4hBL=y#2-!C;=8YKHpY, F'N;^+3e #cmT޺f]"LJ+V-C|h9hwk~MWCo!b".R2tz1q &2|g.&2KMCh'b ^KHF'bsQTǪB;Ce~l`ɑYC" ~W$Pb縵w ˓V9}peuZlEr %.mи#4h{]C'K2XsJ\8k*"h H9j让h7Ù-{~%6JmP-' ~]c-}cIᣍ)n,֜xH%4pV^C,ŖyFp,#?dKXwPd,'E_W<{tG"hc|w)M CeıHtukvuȱ%DM:uBM:4ר*=!#7AkwpU|UvʭJWrP$Dx?tPiDhyo +]@;8OycDL8$`haTDqco|hI8Ytӏ-L72j++DZش;)8zg;t2F=C9JP]@_erxr=#jg~H.u{ޝu;^N' ۾n=nfQG>ޯ}w~[?֏_;_~OoXm"?p.ly%.fĢK'[bd y._Υg9rіו΂<Z@]:pju6']L.*I*)SR}#qZ%)PN =DZ]O{_W:kdeAr96#tR!67 KH'URb2 B}f* :Bl'ڌ޾. SCn6RC{]n6RB b뚊FbExrkڌھnjs 6hɻHYB7zP"Zy!R6>hɻVFV@})+IvX}&l6ֽ kvwp؄@ +>*,mi9!uvxV6,#̡ȉW_e'6nĆT8na"-6[+pU*x!pp[WsN-6]fQ5T$C,1Lno@ d۞mC|}WFCۂRB(kM SGeAt?" +}]&m.35<:u>.Tf> 'Khq=hhɃ8Y<v>6w@`kstcun?wkRF}kר+sC2AȞ][{d'|K!ɃUbPlt: ֭ `hc?22*[ߗ-|zyb"#䳀vD@H&:Z V5:}sS3B@'damD~A +Ŏ;[L;O&VtQPP"$bܠNv\ " FKq&dg"k߸!,@qtKF.Pw8HBx8@H%zfA?)(Rt/ѡ=y~)o4t'ڟnI;O`p (BCq]Z=6&KkuDM:K]t ggMluۈ Luȹ%ݯO =Q5U -'i?_YmPLp#,'uqVIL,j@Y2=ݲ'dwgomƶ?F'Q"x o.K|I\Jomص8K4+/}k:@ ?Fm^[jL[z%*Nn65VBE -'snZ}UVm3ir!P2sfsh%T ۥ4琂0|S>+FS Hו |/#SXik$YCQk#A % ukk9H 2o gCX@zaPdul +aR!w07m<¤|CW:+ +@/Kt6^>@Zq~>g'Ry9"SZDOK灟tFֹmwϠE*6L;wOE17׆zC:^ M68v*.΀S VgX+xG9b XY+Llr!T6W֛gU l%"L kq([IQ®rdo;ςl%RFSxc9(D<,.֫{^mw򛝸{^mwٲ\Թb@Sj_9!rDO]Y!qM/aݛlzP^r!”PZY +M/ܐl(^KTbۮl +RW":Nc1ek7$w5vt졫#;eHtݼ "VV;H0w]kF9^tCSeA/H/d"pTN ٠ uu6 +SXXm}SΐSXX>ᡍ)qgȉƑrPi։m721vZ')U(^(ek)O4/:id3z] !~Dijq Է}P" y,XN!C3\7.}tԈPng?^"qʂK]>\ڏ?L]-)ZrǏtw"pG/Gb irHH(o=zdegu^hUa %Aꡭ[3X&aߡg*02]-rpU=oAұ>ז`;PBCߴ>h;PBC-'s +[NI:m|T`R뮤K\LN+?Bxlrچ[lnCd)arWD6%u"K ի?bmeH|hCCS$]כV8H7zr>po>fPw +O~ltDX%&prBQghUhn6 g@ +j#rq5 _=tdC(![ 2Y:JHc@{@heODT +^>CȢ?^ L;oNQ^y@pʼljl`ۑp +i9UĤCP'aeyX%1iIAKZ7uhklkC?r|H&lgW1L +C<7M{wոVyKeH$|B}I2|R $A8 _)L/3]9!z((\ӆkk} ;(ϰom} ;(OJ`!% +P Dq{l jxUm9Zz z@Q#B)#reeێTuܞm0TECuAJn5$rm_ _^w{Tmw9D >-+mj}7xX*'8 mlrjK%Dg]m*ޭԚ@}S΄S$8vlbk`܁s+=rmfL"9^@b9(K;@W.$C)7m!-hf!4;EL6)¾X9%,вrҰ,;6=/m5Vr_Zr!ɓXX|]*ҐNr?֟aa2۹m +m]CMȒCUtmpb_<Ņu5Cwmc:f!V@c ZgMZn* +Yw{ lH >)ܯvz?2{!v}zf ɠkGi0 ɠZ;{sf9)Z;Cge7Q0D9EvIZ9 AҺwg &ԝ_Ap嶤KpaCҫG +`;cC<Ĺg@Q0P7Ilr$X`$Ԡ6DSH.0\jP b!4Ce*d.}҆م jdCFf.g$Y8= ׯM;-CZ!vn1W +AHl +mso`IlB^+' s"I.9Vr!Pu@J5d`JUBРa%b* *Zబ֌RZpu^hdYC#$l+2V9_-LV9_-봸$7`WĢ6_ה"rz +8`۹p.¸`͠L R~&vjRu- ِJY},jl +%~>W!+4]w;0XN!:ov(D1M,uD?<2fZQ˲ϐ# Uv52T0k{.&Ti +c@H=OCD&UEпa p_ldXCf$zQ푼 ],Wls șjE@Ǧ ŸkEkћuG1^Ğ:@@vXo<9ѷ>0x;EuN=6U\a"Q2!/S:ж<_Xv7z%>~޼Oy#ow?ޮo}G7ˏyw|珟'}޼g?|ɧ>sy/wݾo/773׾c-osohjqM2B(uIۆNʾRm$,.piۺӶ=$J2Y@i1t+ئ+ -D=y>-DyIz2|R P^ 1jKf}:Q^ ɮ^`cօKuv)+.;ws l)΀+,*f}3-дKZ9n ^># 2T_Hwx̾M+ڼn39ȾV-_2v~$~h2}!e)̫U՞Xl@p +PMl6"'Q6HXR-2y6ݑ6uLo$/r7qZÜS`Z^Ϡ( +cM3 ICY-du:g%EFmxJ3S"%: )LC3Qu{!(wޜJR f> |bgz@Xvb1] ҊuSXrxA])_N?A@Z!5m_g{co(@zl(7%)YJJ,’d,% ]{>-’d% %@rPIֹgKeP^_n + ;>H7gE^n!*0 <ço`\avʭjpZI\P­J, L nU >;U+:JC2djM1Md$~r>iN9Ec/:[^"IÐIW _U K?ԅ7o?_ۿ_ko|?__ͿO_-{ǿDŽZ}Sa)0 十f߱h5qfӡD&Mr@ k,j1"ȤCh +'1G$&R@ 东peԾǦ '\U}u=kcXG:\,G=D-*(XjS'fIe<;m>U:N!4P-D,fHeڀekc' +Du-g؞ۃtG)ÉnApuF}i@) GuOKέqK6:Wgˬ%BD +Cj$oC}mG=&w@;)39T sۡ4=t^e wX0`9Eeq3t|掟SDp 9%*F[=%BlRv6|mH%ݥ6;%_9 }+v6|mXM]$ C J:@g7V~D L-9(Ȼu\F#I1p +ROGh$9NBA]+ޜs<6]7VRoB#I1$|2)Uwϰ̬DxwajiADxwՌbw0D9W ;wB5"ǁy"o^=$ K'v[jp]k\53TJ m*4(Cg,/zme$\=Lr!P 5DGYge 0j)qg),gfSXX^~?!t]D!'d+`r ѮVCIm"Jv5$mU.d^ɮMB>>^ɮ0LBG%н \zrܭ7k}*uN§J77NWJ6-$2W^En +Y!Xtl_-L!ԓ +c5g+GY-p?ܮk'Q/W_xXʈUr!PWm@*9Ӑ[ʠaR>I1r q L;GNZ̷O0)9eF{Qf.P+A!qp j_HL]\N}C5H/m2.@b9( +p9u B=W1FeUfSY%4 UJD7 0Uy}6mX $yǐIhH<,̃Vc$4޶!ZI!03U7&Nۚ}\5ZG4uPehRjlPսqv\Mlܮ6䂜#8 Æ\sB8#3[g 70J5NэF5f}_N`)I5$+2+ ꫔Jc4AqBm8SɘO0&{yd8bR]-YyK%A9 SE@CgnDu%P ղ3(HIKˆi+'h70e6G߹SVoڷ.0b:qeq7` MkAn`iuJ+Lk/D%ޘpH$DBoLf8$wFTA %; i)O|&Yʐݙ2:GZK`fr=o* lg?|  W#F}caSDX4hw|R Cguo>VB 8I2w +SP-Fe$Lڻeh ᝌYs>azMzź vEX~!x_i-t]= I]/mH/w[9rhl8ߚE !Lz}A^@){ѭ,0v!c߆sݐ6uf$'@ֈHfݴfKׇ  yd갍֏^ȥ$4g'~B.%YyKIh>zzCۑ=KK{]ƞ!oG)' 8EuW |ƞ!oGS ]asq"#ω"؆=4C%u#A@1$'"( Eiod}@ )"Z +dqKUng?ۖaGV1K ^Dٿv_"U%h ~~OqϨ"~/iϯ>ҩ{UV9V=ԪԢHLv}Զ3rvզ٠Hԅ4Ei%f x$B"ەt+fNwSj<u!1PpIU$BV#䴦&<([C:@1SjuIٶ}wYSTMò> c9ynUqg1k*턎6%c:$ kMI n"ͬewr;K@$Eb cPuudG1`< žkD5&a)#Bs5A-[\Xi$ԘS@SF.,(jLtДԘTB}{u0_B e5cY@3j23 `@n +jZ|Sp3qrB^=$mnZugۍh/IX)D6ri!22WkE[\Z$ԚTv3mBddsuBV7Z}q)(lkvghܑr +̪3i;<IRY!:Nsj%-m2c$/YM%)9II@i @*]r9a$vxؑ^((IA6ԑ >ͬUed 4NRS܀-҃kEd 3Rc!0e2(H23m/gB aeN{rqht@vcHP-|33NrPNk:1Bt&hb`z_v=.^!" [ځmϨW3/Fgȝ@Bi5a۽Y#w Ь; JdTNN>u.qmty*鄻e,nnB< 規P30a㑋P3h31Lov# '˙HD)β9o!1pq ICV;nۃQNzcס gHuτ-yHh!g-;GMŧ PL!kݣ2SHݿude&EM @'0 +V=ØGD(X?һ<$FgprBP<L| ]ﶧ"'\E~Zɍ Cg=ި>Hnqp9 AQ7X-`B`o :K= -g KMS :K=]YO3/%FXeq@A"X8-0.O m5fE LZ;] lzė< +8ce% $.3NRL'|>L OF&,:#쒸:1K+,UϧDa0늬>VH@B^&BpYdB$ !&6"["7n7yVS ROp$z2#'2\2]%ŧY IYtl2]Nn.ezRju"_Jx}SJWuv2+㏄UN"a$ڻSKI$埂RGe +3l촹G +*E}om OYQ,@@ hMP[ +郠6I9*>1|he#˛BnWH(18 th=. :M;!G{6J9a.(]*,%ܪ7@ɐt %dH@XbT2$]sO8F%jqG@8@v!{ / + g]ƖY&7g*q2h)k(Y[&|%.`i IF5*.A='ۿ).A=' `r}Pb[+[V8}@ /|QnxAPGˍ/՘DP 9 v(  3@8$&P=!!;z2!e|kЧuzrR$ prBukۈظrC0ׯ"zQzV<GyAz"b =vVx)'XE[~7>=\ j{l}Z(0_mAӲD񥰝.Glwe_ +z}Z)^g|ä 6@DJ)xajMF H)0L:6(H)`8J[O(Bk2w;g8c9 !~ojM\"^'~)ΦnN!J \ +mvjOvntPftॄTͳ BJmO +=!=ShSdh#m +#'r}G? + #d PBTbg+Gz[|m`z36 ,~[֚݅ /^I2¨ݴ5(e_ +qJuBzzؔ>|4>R9IWm  m 9`BB.HNqvظD W G]^y"^w91q?tʷ 8%-tʷSY| `)*C%}!]GxҦ!+tuB3n Yfզِ :!iWV0oz~hUD7Bגh/  `dkUh~e1X>k=QE`CDрe֢J8ve1XɖP ^ dz-uÝ!8>:,hfs Mo?ذ +F0 qٍ`CK!>n3k@do-\ձ+@Q_89R #j';e'buėv!#,KėvY%b K *0mUd; *DH0yRLs| Ж:|"#|FPݴeVUdZOv9tOs:|]|╘JO2D0G%^u"|PkK"SeqT9j?L]ģ"?fQ$' k儻pz.n!w2E>^AA"8˸UW|6H^>wu5kjElvU|PlCl%.,et;Xh]fXMu1;ue\^uO CHzfEN7]2&C/~.O YNl>a2lN],9l-">ʀ4)~>1J [ +oۭ+?`)ȧ!4:2Vm6>E} gבɦ=dtDOvNt LLрI鄰9#,ڞ_anpArOQU̔*sNRlKbPHiD]2l:+C%넆Qsn[!uF7Z.A^5 rMлuk:׃8ګ7*gB[ wũ@r j2-Z,G9x.r9lד_i .ضlR&/W}O`/̠^y>Zd?zzJL,a>)V|&0@ד߯sX|kS20>iU(.DEN+jL]"~¶P^ f?a[y-%e[N^ -8 ArW"<bMSQL;#` l% +0zԣDfW7e(113WPh +hC͑츙" c(:@E*2,+([aOpTωOFY/V*:B$DJ9,Kc57':Yxe +钐3HؓfA. {N!Z32E!C>HP#7ԂFȘz,d}OmpAbˆs=Szѝ"Cr * R[FJt@roYѵˣoP!2 is`bȵTm;!̫0sԐ['eޢ|@-1J )n#>PCՃAIehH]tԳ) F3nAAE +*x)նr@AE +*xDHatD6cWH*CSMjQpҥa,kD/Lac"R3AV'L]J F`mo'nH]05@E 31%Ё%x5mEOPh@_N4~SԙZHL XKG6!:[# A'| K !D|‡HvuzH0]Hu +.?LB4.#RKgHFvZZWO2t/tT˚%.3Vm  `'|M  vg 8 Aa'|T夦FQ7_K|`|%@NFMDJDk:TdRJ>Ì2+4k F+n4r{ ]ٜ rZuHGC6'YsT.$UO8 4*%{E?eO~IӜ]'-S w:I.11JpObNQ;$M;yLNG T"=\QJr,ڱR1.TOi^ abmNN'(`-^qrBIP<~J~'\|d='\Gu@r H9KZ\2:xʰ$"7\|&ROip_)RBKr5 +H=cۀ yf..)r&A5' + rЙisGA7V(Z\lB$xBjI}Ѩ3 ;t_}DOi7 @_eS:Kq3y݈2F-E-6WfDC[*9!*H3-L<W 3XVaġKcA'b3d=| wF;@?Xxh J]¡ qBlڂbAgfjm&HZ +\3fxcJ+֢⣶̱:J<ݭӐ 3/`܃ҥN:ұlPnItdM-N{ lB6hߥ]tdM]ގK1֒m>ɔ3TKdcf>|ӻ3)hdBbfrn LFh%e A'|`fZQT j9XtSj  IEZiT.$UZ"csuPtH2M)ýV햬wL2,6mAM>Ȥs=\YR5 vnYO? +R*<' ,GBJ%aդk.TzN%Iz&a_m d\xz_NВ6o e邠@ KL ]tq(?0ی2tA {p0pPxWs2-& TKq>6$cRL'q;ͧ&udN7rI`% `rEP< U84h#<0 +|$ǡ m)6dJZ +ƾ$J -U[rL:Ck7?.X9޿փ@/7ܛws_7~>Owco}|?w|7>/}?_Og~?a~~k_ƿow_~ÿ_O}{CSգ;U]Np spNpsգKEەٙr;MZmm^OcK*  - yR)'!sBG4 -Dsfk]70t.v-N2LL'*.!ˈ [޷Aw K9M juh3~tgPC +* :Gdv A<@F!ԁHoa{ !yƁ,*'( ǡKz;8 aLWLer@:,v!V&+P.S9S&+&Ѣ[M`G;`8D'ٵâA`ᝰ- @Pǝ jcD 6̐}>&`c ? a( S$PuD vl?+\r=?ݝ?ځh=  ȟ%_ Cm\P#ZLgAs0p9YB[9 +C rA'CAꍌFE՚l%pr3#|녲>e !ao}1`)^ɠH~zc>C”P\b44N(k.x;80_ƃF wwiLZw֪ +D}V])u4&r;{$_Xhp3rx=^.fv@ξhAfR9AR'۫=rNe.Q :av܃*ߟu? %c6]P2_>PPsypUR< CЦ)ސ;1L TJ)5*fo|ΔAUX)2%&BΔAU)5a֙"rAA'Ԑ] {P5;+%BDiתNBթ9!UH#C(g&䧊VШ H^ H nbW1]ADD0g̱qcFs[]kgLm ~P +[kj}ѦȺ1mV}"e  Tq=( pQ ?8#5n}MVyH]!pFuU+K:aà.JEE^ g׿c4H3?Sg&Z:+Vue\[bɨ@ PfG%#vspmoځIBh;ƿ2c'L蓦.J%f waPe_x}@^ocK.&ۿMGu('Q&Ws V|6g񭅌U.~:eU.u]'&L+iݭڑ~`rh6? {-Lb9hփ^Z ڠ К -֬O* -)߁֧ss̏܃ܧssi` {jhmQ\ px8 8•H FS.ɢY FWVd4}}"teޯ }D] `5'/2x }}CuAW.*]ělfUzq@ئړz ZQD:SeK\*,NJ=/O.gb_,tpT ӗ[\q+#SqJ?yo__?|YocR'oef2k,c\mYHlҧO͝Y 5? h/d迃"踖4|z!k~F ]9$%&$\sVaAɰ.'}U5rP2@IZQ#%ijZ >ifM[ãyY+4>u`}MZyD}Lx Q"ŪT +)V29hNx΀)V29c7@=z Anɏu^8fDM;<9fD];<Ӿ}CYmFԵSI, X2{Y쯇5ˣ^f}B[McEh^#IMcE菃^{Y?kMcEh^F>1A@h)q>\nzeT*+F=tOд2R`AGeT*+F=tpHel7GqϽc[Ĩ]w\'x oB~ĐETw" MB9x$h&G#^pm=o~4h,'!MDE'!]DzP3$EZ vάOB*U K\^@yFD*Zorr?Ùt_u!w{Hm۱_CX 3j栔3900fJ%lfA)#jOi ?+~A̿h/Us>ziJV/0PHn"Yuɵ2:]يdNrУ^*2눙;wkGc-蒃RUv4Œ.9 JAȭw4Q)XއvA&z2bb64\Z7Gt&uU&G8~\OkM*:p8rRoRTсpƒ[@;2D nPÛnʫE6 jN+]nl"ƓCtU+US ZX +z Nt xٟM'տn3]rQ^-;Z++FytlZ&~~M}ArhU>q!\pc{ejw[O7u"5e}M]yHͭ'āX:x}~tflßnE55M[mF=8vc6~WpVzQN'5G8Hx_)'6Gh u*\laaT|""ߴ~IT}Sɩ7ʼۄ맒SQs?ZmF9޳?UX o4nb}4g_a'#7nb}tg X\ߋ>ެZ$֏sĪE. ʄUhE4%+pxs1w!Jr-UVk,[:+[~Y>"ڄ\.8KQbd?5}'&dw7zkBF#9Ě>'W#ғ'Vο>>&鞪,V$ CbEb +O]*>G鞪,V$}r̪Q" +6xm_"7 >Ca$sKNen4s$gw{-T]ʵ'ԫ6I}zm/>hGPz֏?(C'kiEW?%"׃"УM+)1|懃~歗aԯAq[%ykPD\%yk5ơob9~ѽ>lݩnͿ8Z}5HI{@{C "I"wsWy84 "${¯KuN(fÝ(az?^yT&=[`AYo݂tMʄ+췥v u'fDh\fզG'eEEQ5}gզGi 뇦/|:ZnDdEn +pnJdEn +} tUU"+rS͉ASU""7%2j -!*/LFT כ<;Z`W b6vG^8 RWF}mPJ8n͂ue _,Xw0ZƠJXـ'f3=l ]/x֟C opG|_il'MT(13} [զG 򹶈6= +>:dOdp#QmnDhHǷ0EsEb"9Ncn]Q X[^oL+TTh`Y6=:L'l 67=Z@U0_jMVy9C2ؙ ڟ>bgFlN$hؤǹ6b羦lR: Sq(~*6< #GTUl2x^Kjd(7,0}*'?!pɹ)vkOsS:(0kc#lCxf5E>U&Gǯɦդy[|Ϙ,zh/ZesS"6uk>wԐ8avhy ;aМdţN ,>ҤJdIgKR*%gcΤ(H/f:Tn}]ƒRmQzM^󹣪 <@lQ34T֑\ ߅׿Ž'd:Y׆Gr^ϒM:&?TE*|OTsS'7؍:ljnsDF^}U_.8 螆>DЛ]``1}*M.00W)~Dz`#/'kY2$P"+r!شY2$P"+>1fLB%pn%sIR +%_ɝoc]aOxs+L( {|ȕlowom}|(e5^󹣰 .B7>sGa>%?gCc|o81(HܑAI>8s;2(s[X91(Y/uS)r|74d`u}rk 7YeQ<q2 2t({89{GQAU\.wt>j涧\Pw>jfG\Pd`֏sf.dJD bJ*w 7>_Gtg*Mf1$8ƴ[r*@b&6D{Dk:'@2&9:F̚SIƭ b͡-PXa7>D/e5G(u1^Eaר|O"bdɈoO v;CdQ罵cs@dQ%vXD=+zNJ߃}}O٠H@>l澧lP$xp?Q63#6(<G{m|ؠ5V0p +zSs4`bա%={;|9`zU=c`A֣wc̥H)h3}tȞH֘sR>&R,gr͂q ȔzS ſl]>N?ǻww;sj leUj`z41n{Ԫ a봈qSߣW 8ӆq~cX͍OH@^jn|E܋1fG|P>uqMˈ}c||ƴa&F9a6ao繅O\u[Fҗ 96SQ"t}b76*DU=TQ3E"}=҆s>/w7?z]dEUfbO=㤋~S\IXPAgK]_ 1>ܣk) +^uӂF^4ӷ\Uh WYUh`/ҧ\. 8L. ZK}΅P! E^VFB0xOTWm6z~`{U` 7'fťWkn7njJEvy(3%$(RcGH=EmMYyH0D{է7Em`ԅ`n]u[v57?若>q8/x_a~lL'ATU~ȜDN>I8)Y"sLsR%2'x>pysR<$,ֶɭ7G(F0A߳Z5u❰klգ 5a6V.1+UV619Lc䈌:U~L¹)=IO>掤 J$E3CT;2(YnY3KQL;鍂xy/׿ݠ>?7|_޾Ïo_?W~GW__G??/W}ÏOkG~闾~ ?{?_?cΟ{_wG??/ſ՟O~ѿ?m"cs%JOL״V"Vz6@@& 9N$6aU&G[?Vc$*ߚ +W;P%"P$׸6`$Up +P즆RIx}6\CJ&xeOD eoUmZX10ޤ'X²Xk+F89WrS4 |m=>rTV]^[HݹQXy͎6 sawnv|T}=Gڼ[B zrdK*9%|,+GTݹQ}&|)ܹQ}(d97;:9:㕠"{&Dtlgߍҧ\~Kl =xA tUj,]|-F\~^V)3h0&] Fa?T FxkmiσoÚV7m``4unQpW1NެE <%qfG-V]ͺR4 O$ZڤhO*O~JE]$'a@t'W.p\<7 cI8EݱK$v7|͹U}n ts7>`9s} μXHĬꝈ˔D'-Os/S&13bs/S&Gu+Mu ovTX1JѠðSզºQ7u΋ZO##pޟGܕXhe =X!]3FkVݲQ +i=!I"Sn+oצGhoQ@,`"죀.BJDf=6Q@W8%x"yV؏5ێGoO< 465@'v5eǣ} +)vsR&rμOD%y`'67$NS]5&ܳuu6>U8_b&Gx<'M1v?RG0;28NZƼۥrOa5ǘsTz(2>Mkcȣ?1VתMj0'sn|T2-]ڴQ."w~B(q..M +/p(wj +${~6;* 9V8}HْD\p3d9B!bKrO)݇-IԑK#tR$ _ۖ%PڳUlyxP~`(}l /u$%e3ȣ +nxf7-b"~Nwӧܶ +ds.mlH\/򍎁:-br-ln}}Z|x[_H~.QU&G!'eU&G!֭Cid.dĩL,azZ>am`g"[Tkv4kM>|U욺Z`ry;9U욺Z Aփ)+s"bL" rӫeLY)cIO܉1$s}˝H m}*?u:CFjDgVw9fsɣZ{PkOJդ~RKgJRq/xsVQ(+ܣ\M,ڣ܊^86 C K\rg;{֯ ^SK&ۙMܷUpU^֖5?g'+8w"cslL_),, ;YcNl\\ 5cz:Ǜq_ lǛq_ q2CfGX"?ET\KR*%b% }.̤(Ē<d!\RI,Aυ4)1)v\jͩ~/Pϋ͸S^Oąwsꣿ 7r5: +r4jRupo+4r5:*oM^sN@Y2='B>q/=%"_ǽL εTosuOɠHOڿlwL͊-8` 6RI$*0[M҇[ՈDZO}.ɼX?brS' =֩ߞgNO|E7,yQjZTncR+k9l<YmZӏE%6 %K.P?ٺܲ~" s*3-"!=Gr3Q"R7lTDr3Qقgz>VBd.zݦGm,?lTtW2N-<ѨXMyњ K7MGkhTD#njU͛, 82RlrP&"t{R.#" "s>6"4G$N'tMDrm]Ch+Vl38s|ݼT$[̑RIQ}QkvTnzVDM@pT < L&}T( <yHGB=F=X=7/nbrss#/wq/jr >TMn"||o'6Mn"||+ +o@ ~H]RjtE*8R"PE*d=oafFěD*dcfc"̈xH1D& +9cGϾ"07#M"z [>G/ބ^q?k5>G/3Ɖy59z7(rdVw)+OU][[9XejDIbqpG9*:|""feMvLslBT]O.MVꝻƇvf*dhw-besde!xSWEJD$+35"r݂ۜrRF& PcNM+"%M"wTVMVb+pً6Y=K${1>GPTS`B.iĨQ>Cvns,ʴHcULT }rɵFIc}ʴHc psrQ#"V[2!#78ls4ϵ}o_KSFufIG HSQjTjt`4]4$o,vz?<|}ǭ?;ǔu򓷾ce;O$9 y,:L󏦦;[0e>ClG` Lr!9,rPB"R/=6)71i"t6<8c4 +ЦG5?*M1)E~9.3MX(h@h=j͍+Pp*,Ԝ]W@sxPx\q&S""|?3GNa'/:oG܅6HL:<ڏ}žoX ϱm3أɷ-躟ioߏ.ozcr.?Vo*M,HaT.>Y` 0I>Bd nz9"[zA~c䁨tѷ<(b IS%k7[whvq4V} $?M*XO<(<"ԏ˃R h1T(}̄x,5:*4%kuT0}btUɚtz +nJˊ6%1gP >lEeC6|髏!~wؗ>d/aq~,c)<Ҥ]ukj^t$oGT5􁥉 +VsorQ#QW[ͣQqJ5GFxGsۛ@X'cNٱc}Bɇ 3"Y=Gh2w!f# x:rP! \ؑ녒[ƻ8d(ϼfɣzG|fdTH eL ȻMM9~+3:n#U$䊕gN"(eYxb{6dCDH6k?xϵ S"B+\CovDyHE`3}rr3Q"Rڣ3-"=&:?ܦ[kں37%BJ';_s\rkt1 ! Xy{tqP! Xڠ˅R&>3oլh]zU[wfUGH 2s5:j(h"u_)8Gԍ + Gz6m`VP7|Oq/D#{zP%ku,=ʎFIQ>0;Ճ&G@Hxv0MeAPwO{ 5}hp, GP6Ǘ&/W68gaL>;uCqAP 2GlO`U\FFT;9hc@AdN؞ 6 c@A$񕱜Rlw@`ˋ`3 +L#( +Ǔ3}Vơ=e<]H}Vƹ:B|<2F" +ǧ}Vơ=p_߇e&+Gx\|ozS&}G8`8?SMz)qx_6OT%lwK={%!48J\ĆW 9Q>_: "|+(c>Ɂt@D G ED~/#D#+ʢsxO+rksV#iזҍB齴#(uxfF~:7dqN¸^(mQ % ^mBɇ'gy˜^A fFGRleh]QzS3w ~`Fa#%k6 +|_Z1 +|_=͞ I)(Skj^t4&ſEZS󢣉Ň÷='5ð3Oz^O_\׎ wqN?/K-$g_Fhp%8\[I/[#)I ]9@m\D:۸&(yQ{9iXH[qMP!7.$m5AI nSQh*p1DpdThctbBzKq/Ώ)RKqخ y<},5AIśzK1ՄzKq/Ώ\m]]NzuruصvMގ.3 pyLd!{?q<^sY9478g [ #73S-iq MXb +Ԍ}8Ϟ0Ԍ}_'uaH>0)P'shnp4O*\J͡<%K++5G{m>dYmGm'[L4Km'[\4'[\4,6sZ󱣽 ,,FcG{V~֚M7 + %!"pnPkW88 PiW8_#1JBD:)}I|dV~C^#?G~Il`ۇ~Hkyr +vo 䊢FQWN48J?{TGpǵp,Gudph-nADZ(NR "p~ "gg[2ȴ>θ}-C9$<-EծQ.cqW]I\]?vMގN=:{dnq2/nhysuDˇ|ctY:}86\h27BD>>K>ufoGg\VNvގ(PJVNj6ra&\hc׶5ho1-_S"υ#rTϷ8P| C#(N$y '$q6b6v:xsc`ӵGyTΚ~wP /d/5}*9(_v ~_Mib!5:@®W~ɚuMK agQN֬ZcFb&Hxp#HɁnԊz{"x9}qP! ;#1"" :dRִr 'u5:eaOJ CJ` +Q7z#C +/}5Fi(8b&Q lKAs~ \ wS+.JDb-zm̓Eĸm(|Sq{Pn!RSR#ho6*>sADܵͱ2M(E|G|g,TX5JY/ QjhbÍ%`~lcWqP b|5WqP b~ù}(A1msyeU\ HDf(i +ǎv-i-|kQ-yQrY:p& قMX:pë 7 >hH^18518G yHTq$/`>hcH.182H}Ƒ=r[T,yєZ=37ߴܷZN,KFao'>p2]>6lsđ=a&ad+鬯$mqoD$giFk0a OAӈU{p(/d䵶fm]UD&rdh'7y [YQ&#G;duej n0ۨy8}FD~< #w4#.Qr&݆pTs+^"q,6(| lC$jOnC$Ħv*MF"0Ya -SWLV**L]" (m06"U<}0U6)t2vp/0?b"bWhp"hRhp^0[HT! |QAIgֹmj¹6*qrpOMq G|wLM82G/& #H>Ge龡?l< 47˩"7,pqd_Քɧ L> ]P5eid +g^3kz0^L"/^(o}cB"uBiιBꈒq1\H,Vb˺Y2u5~@gqm ͅ%\Y>Cs!uD\Q1`,Hq3'k z3Ǽyz66QUi2rSL jH}pY:dx-ΚbA|5 F&1".85SGI5."Mj , 47E^US&\o1QS&unCKψo7BLCq!sX[}¹6l8rT +Fq@~C'|ۜ0(dLd[L :9[_&x|[C:>`,HQ2pfAꈒAhD>\HQ2f}r:|\0hpZwE49MBqJ>H$TUA@8:j}.¡:d6 ͊Ȯca_/sεE Qr/Zp$/0$ȄJ}$r7 U&#Gh%-SW]Ls낊-SW]HLst=bhJ?Kph.@?Շ.kz# a}t\x=d<^}\4 RGx'SK 9O_(+N086y-OAdd36\P0ͼdmqoxWS?0`@}߿bM>N"M j.EM}&lO!#2ߧ /#iNtc_!G fqڦO ^3dr]S} 22w]!04%8;CxYc|kl+oaSl"*L? &pl/p,4oq>^\P,>^`d+,ܔ l{3EKr` l{FC~pфO-*Pɂ9g l{#]?ވdq|-1.8F D㎮>`)`a˅z]0jNote磺ф([~Au Q,({10rr((l>)O@Hlԩm]N~6; ]Λ _t׏Uc*W8"]<}*2{@xpWp-,l6nPydzh%B,T}oʋJp-H|c}/'*F$#1 m؛:cz6НOz3%7{`0-*L Ǟ'ɸ#K)[r)tNņk6 [j#ę-#Kb{ g$Na(άbkUuvfV#ZtCfJ2nP?dhhDjtCfȦO] +{&8|;p,L(lJ& ݂ Y}ѵ6cU<B>`*`O"L ѫ13${xvqWΖELL7`roXR3}Uܯ^;[yf0(^;[yFZl.L E=k +=SvC cޢL ZE_/? XY$G/np޼]_sxj>>`t'ljjѝ_d0*L EL-$zP䁏A0Cxy|cռN5fk4ÙW:?~qmK?Ï?~xz!b>Ů{{P[&t-75ݸS4B&Y'hlj>Uqۆ^^lDƙnz=o *L P,`njCm!oD'iA oDk1Bތb){P[ uO?؉36{wQS4̸ Ƞ Eݐٟ[ Ƞ{Q23wޯ907}>j y#I%8F8ɵ8&*FfB4yx24z`n=*PǞkya@oı|ڂވca;FQ] kz3X)IqSQhp1UWT!wWhpO[\[ԛoišk̷_n[Y`5yu}G=mwtidްoIL 7 <μD n>0ApWIޣͩ5 +=9OL8C>6p] V\ۚ^huls@ b׍"=g>uҢֈq,9~ѱ2cE!~ѱ22tkˍPTؙ<0tZPagJnh9JΔ9bw+@ӻΥE+>0Hۨ+B-qOo':*XF pB)M*L #*8E_L  x~12x[0"Apϥ +F,w;F, ikĢIJѴ52.j`m˰o \T*`L G~N^+vv,L`q?^'{Q2Mce{GIX5\+254{uKiz9@/Xl9 l٣s;E0yCnƖBaI܎7܎{v*L{ X3斸*35Ad #[Ñ8ٻhÌp2za.x275dpV;ꚹ275dpٯt5W榆 (lzm'ݹ&F;EDc(5h¿{W*,ڏܓ,6B|[W'dUW& ɾqX$rKY#/E;%$6^6hSֈ _ۻhǻȊ`_%ia+rDr]$4q ;EPG-vF*p/bm]_@\_+6<<Ե󷮥L< x("dR& ֭#{Ebr7sS}Q0N-+;D傹%_L a0<<7ŎHPa~:o]#RTf0CUp@LLj &1LT  sZVx./\o\ "Vxp_o\ +2:b{Vxɢ}[:,#p\ݑ١cYLбqFJt +"Z?$JL7u{tT`gq2;V:Wz'=$Ps|~?W?}ßv_}_ ~>?_?k?͏_ǿ/㟽?go/׿_ӟ?_7;/?cLhO!j ^]iՎ9038s*jL VQc*f(M["jL Db׫f?V6BV<ýw-r߁EUrCK 3d]?otT`o#^b<o CHC:;S nv~-&+6=Azm*t+z,v~-MzcG`fnfֆD\Q5̬ oS`1b8N66" c@a])1Ra35dsN7͛35ts fܹ:Oc&f@̬/g4fbnLxu,z=fg8.R 3CJ_[]#L(k/|甮L" ݜDj5bo NS3BE>;aFH v{3v,̐r/'흱fgS,Ď9a iՎ903xPrF@E3+*jL q,W ^k#RTD8nG~PI*V\_V8">W*9ˁf+ +!& )D$i!+r߼I Ch̵{ݣ6@˨,Zk6z!m$ "P8 iGCbmP-eiC&xj)Of +9Ri)OfuoK/"\I띱ѣeDtXFɢv+ni|ڨ +"Sq%poMU*L x#F0Q1Lo-pGUc795v+xnN/3& ^[66x\ H;%x?Wab@\B۪LkG:c³x4A +f`[zgl&x:KD:c³SVydzh8h#_q|՝F:egtlnĝF:B7 *헹J"@HX Q}!#,m6NŐj+6;eDa kůQ0d3-WCH: [j_ !ȕ%8_Qb6e@)üdxx(˕V;(FFL{ 9, q#$B)5gn鍸Q0jdW5|ub:e8veϗ5b:e:q2_VT5N$RmoAP#\ÑD[eg" :1~Zeg"Hi!%Dja i(+mr25q}9{_b>Fˆa& +#f؇P{_bHi8pmekx@i]e~gJ5\氆 ʾ`p{)vGpXeav@c_@!2uF*JhmS|gHEPgFsj$ɍ69uf3 ^ZX]ٌunq^Dܲ~/թa@N(O4C"(B}BCSg"hTR[/&X | ,CK  +OOV`?4hqRęޝz\0s,<כ%G/Vj C}Lޝ2Z_C$,A]ԚYL%gZ_50X}OlU`?fg̫6`?f8+Ng"5&r)*"ہǣ@F0'#8829scdDd^s#(U0&YL I/ +$1GY$z;Tq>SFYǤ)%5L3+\Ddbs ZQU0&Y us(TmК5 +sTQN"W/ "*cm=Jc$A =WIP# +01`Vx +01SM7n8tF*YzqTq \19qg>C0ȷv*Vbeh q6Y n $_X=~sнmł۞{Tq˥{F!rǾB 9s,;iV;@,FA8;2# -j|tdN!q^ e܂ȽQ9D#` +$ν3xUd^3tMj|-g<08 >ǘ[^DrVd܂cLAN\0lEDdb3p.׃|.Mdb3*8/6xm$6x.B|TE"FE_?"rAcK]{Oœ\sZi # hK ˰U`?;Si*`8̀zs萤*:2C$Ap{R!*#h[wT/&X |]?_L Pѭ:tH* WIP,"Wo 2*Z)^L:$BEɥE 9!rG#s,C;Gu~ w}΋ 017Ť3RT-ǟ$^9Dą!VBQo= +2(C2uHBP ?96x5Pu`?{=P{N!]}[d$% B(cLAN-^Zg#9~.MdsY4ce _0R轀s(TX'0z2#,43Z`VBHn,04N,0#pSqހ}ɀ!(6 ؇|OGÙ9$qeq7t#*}0-˼5t##8Ԕ6;:AșSg +$39=o +$ h5MzC!&:ɩEl7it)Zlu +2BQ:Ed-GE1O2[mHTbdhWޘ}h᱘pSޘ}hɀlv&eުK lp(=g{ui#Z.:D܄èz1U!<"գ1p¯ZF:Vf"# IM3P ?'J`k9EA79a0h%CsUbd Ds(T ;*s* +〈(6s(>Α01^5.`= D{bH1{b1@U-mL=^%8y+  +olBs)I⎓-Bs(I{椡^Oz*R40{AEj B ֛.B(c-bZM@BR`@P!KꂧŨ +"qE%L{ž0S1^EtQeja?Ox(ޣyb<{Ԥ!` G t Y?`b @Bf.n.%"TŰ!zmt{1Qo!;բ2Qp[\k*r5Hk;t9jDl7FHY|Y5 +D"sѪ0U1{sqGEdr0XXiX!,FqPNmn5 +D"pC{_D?'E4J-sMoyj` wzkT;[c?  + %Z1 'B;xI8$B 'LHC8$bhBc*R404޽L?Hm<['42XN!ZnrI8$C ,ui=FqH$.)Ec-'\]c-Hk@M@BD4ͼi>Џ~,iD]y;J/49 *D~"2LU Md/hd*S5@4R?ej!vlr-TADE/,N.('o#q fL ~+S5=.XIY*aP$.r}o6 +EMvzKQ(# +x {kph00]0yj w= T5~-=سf݀"[9*2C -RrQ@$b ]qQ@$bhrNڠyص }=<7oHmc)*/dF!Z0;Dz,'-`-ir(\3,ɜ4C~P:ejaƯNLm< ^b%aP!JX06E}L&ji=@Bd)Њh00 [`5ݷu`*a EQ2gTk[`$mQ)X{婻2y0{婻2y׏hQFYL CufK:+00 \x`!;bE  EDwфo]BDy( +&".lo|8]o.lo]X.q`"OwQ \kXt]BD٣ +&"oaa>u)TFn.a\l;\\:=xoќ%"s4Uq텋JQί.uJ׿tYlBD7ż? HJz I +`\Ӝ[gGaX,0I3t;5F^4eh|L H-;А 7^H];b l l5 +D"㌝0I Ldj9LR[lŇG +Q%zl h[泀~ɇ>Z#GS`?LU'\^DS;fQxVCuE(Ed{⡺"wtVe^MY]?ri̽#TQ  Pj4%Scޢ(PJ4%ScaG< ^X`8%~T^q>HX{⁽|-gc(_S9@aP`y)8yX`8$ۚ8.q>HS,g[#>)@m<4R@( h H +`pʎFC$;Ⱇ1MoJQ@`Ff{y|Я%w 检A%G(1pKsE\{tq:u*%GK^{x^4tF:^i> {[by]|kťalrNu0UAan&U*%pGsJ`@P! +7CnJY@3/Vx^H?T?-GS`?<Ք\JƞÃ(&625,e{(um%vADީXb<".zs)9Od^`=y6h/ⱸBsw%zc凮Ho>dS'T ڇl +rZd{-ⱸBs׏?ʃ^xlTz-b[yL?jܒ#qOS7h*+a# +c䃮>.+ILtzQ4~.+Gm. +rx1cq(/m"  z㙻y{: ה6U) l,F,M{sᙻy1}-< +k1پ]<`Hg*P0Z)]Hz]xTSEm[8 {[yaWRq#Z4M +a(Qb#!l8Q4/Q4&]X{mL];X{੷2qб=xbdvaՓ׹AAJG(֋#sn/#{,F.n儥jE#Q)T6󖢏hFyڃ@a=AAu,{{`TrkE {}O[|dńuY(=Gz k K,eְ1p3Q2>&HgX`*5X8G +QQK H(RODx\E^B`XCǼ.cSoe$KGܻI`kP] ^ >IT {c(2ǚL=2 +6ǚ 2y\ E0aheEQ,J&br̈́Q]ȃ{3᩷2qs815z+G@wG{MwFpC@w=n( K3z+G10z%G1w_*f=V&bK3z+GNS6l'h$D\)T6]loϽ4[պpZ5H7 Ko&,TK(cK +${;ɕؠװv؞y۟Hk؞uzGk Waރj+G!+3u%Ш<8@t1Aνc'?f-J(rbP~{P{mS{P(ΉP>jFfdj9Fdǟ^VYOlCi >4mˊQ1¥D,Mo4moKtX0\e4aU(?VF(lhQ {r\D^}ޓk$rACǪ`w:$ѓ~Cz0ؚI>-;JsGLQys:&(% E,]j6xfGMIXOa6سc%$,T{vd'Ϊ( R  VmN( \o.1TF(+[Fq-=J"Blңd,.b9zƃՓ{zla u0{ +% `Q;KQq059=VrM婟pٞM+a>WK3ٖM%Fm4,t xˊ7:Dkƶd*5klO[(n:dZ5A~woiB9HeX\0-y #$yl [$N!>pML%fI&ܻ-ӊQCxC [ώ,NulQeEmeGI863v !GM=l "PU;l͗ 7&_*E 7&_*el_^$Eȷ<%1ް``x!ca'?x!ca'8ԍ~gpcEYhcxqa^t{eh8|$0b1?s7h +t=UE]zaеx'/ +: XD%VlMZ|EO>V(rA1u- LG&:״ h}D\:" ?IJ]MΘ!*E{˥i4DE^o1Rכ V -Ot 8`{({Zp ҝkza^([b^,zMx'/+j]\(& E9d 4};[d _oTv&-\<cO:rpdLƣ=ˬCmzA1Ep YL<](oٯŮ-I ~t_82,`ivpqݜǻ +Q׻xW/s`٭; =йpN hvD[M8Ԡd4;\-X[t Yp[pNkOO`ϲT;;$*¢;ZJ2,&w XHa .'-I>"I?!'=U>"!ː*EϢ` |G8Rd ÉAAz u3*%#eO&'=UBBb#^/ͫ ->sQ$ rPL2;^¿xpM6|W/\P͌s]zeR٣c(kbXW + |z֤;IIÛwX7_ɸ]{z1pRD huD `ywkT=U=nyOw_q r/jfX(QLzF9u3_EW\& NK$AAtdV_H?:><@*dpj򈤕 8a}GW*eE`* + <^뜛X1I92q*( r8.=FUȊ(`uX0 eئV .B; n{1dx t^*B@ aǮB7"$]n]=U2:|h6Gz G~xH>89dx #Z(I3&.djѷ.=UK.Ջ.Ɔ:3 띫:3TGzns*BXE6ݢP{ocǮ(b1H6ظt%kP=H6O xnU# C$* +.x0[tK9RN-c_V, +ј.fǮR ],Ny"Q.:a~)@I貿?>9@O2k8YhblF:kM RjjL첿K3e*D9z^/0zu80Oj8`pj^CLIHćj̓XaTet)2T92su)2Tϟ[ tz0 É] _apbTtMG$PS~uM.zHMS_zA=b!ZCځI&kvd@DigHMp_O>+:T*JE|]ZH./՚-5 Rw??f<$UʂՏ69RNUm +#X.gWa41P2d[g ApaZҥ21rΓS)'K-"]!?H`pbj^\Pmyju5T[l#]yN~CYN#஬<'UGXY(+lNx/uF!7:JdP>08E_olSRe ~C=OI~ÀAŲǢZCA}’sABdez]B$*JE|CzHEtEMzHh=v"R Wq;f<$UJrzCf3pc$Dk̦IλHXhbd,5&Jw=w|*BEhCRE,[DBD._0hZTC恪IxH X,ċ#&)$~kmKOd&jtp:-ɪOPb K? .2tf_.]vYeua,H (.j49x-4uIQ݋" ANq瓌C?c!1r|QC$`WG9zϕ(ɍ΍&"h!;J"1ٷVZU{.٫>_WWǯk\Wlk8K$ɸEJr],4T(%dW<5#<lQ}MN⛦xl _ޞDGl4 ޞGبXa;ud\ot8_IKoGFy%آ.4K-LwdM!`[|-L ItŌ-ÍCbCdȖ-FpHmL^stBFEg$Y 0zYL b щ< |kF=12)CѵyX$fI:%bS"ilB˅2Y [ mid|>SuQ/F!)d])26Y&M(|"J $]hP)6f4myB7vrlt#dKE!o"~FM <[l7yjFg%ƞEȬpHad`CMYQ+< J0 `#I؞pF3R''/m7p-MMj()kmӓݦ^91~#6pmWZV k`n/)m`H ﮔL`H`Sm`Hq\|:2)ܩ#֑N 6^)=Mg0$5|B@BI 4$fFBI I4^W@ߴ3KkUhxf)6r g P|8&3aLW0BI $v_橉q甠Af@X;d~,hOl$kCoFgۤXpv?3N#3m&6Gf|HDg.$0[frE8 &L_gF6^|$ 7+j%6[l>Vbs i]0 Vbs Il +/ipsa!HHa{$by8otLEW]߄[~ < A'A:O]AHa{<\Ƿ#0p.pem + 6Xde{G̷X:MU [VH0颬Jo,(>/p󑠣ʟ/USt9AXe;;s :>bzUD}72m&N7odMX g.$X0иJdx|Av{3>#2\԰ݞȌ +<;,A#FɋX;an$J0Jݩ|I .J1  R]BSiԤ4ON9X:dց=+/3;A˳6;R\Bیq'Itq@H9z3{;0CyiATd.~6491c%zL҆v0=bTg6( )GOu&Y8.bUB.2X T5mfS ڰrC!VNu&Y} +:!}"Cǯ;bjb(yd;9{U>· F}[ogOo FRO`*aB :gDo Jw +?M72 J~!ķ";-0×s}<՞SI* byM0N0` +8YJ%Du)+G:Ӹiz +tRLR0.v<.j'{oČo/t.? |H3yz+Iª kTo}y]d~&=3c"C%4 L1O:VL%"S&FNs$ +1cb^ T MW!#)>O-i:G槞xZL2 p2z6Xde&vO6Xde&vslfxjWizTO0{=eB+KX%FXdf6$g;{Ld6vz)*Ur, TÏ՞Si*jQJND)vQ ?AfRdVrJ 6:qc4n/mGɃHz7ɞU|.2;Aϙt9#)$MVqف)E6 .mq)=g +L˥ 3d"S%08ڋ.Ё'=O)&]zӛ},3/j/c}3)2;AρS՞Siz$wQ'rRL4܄aX K2%*b~ߒlNУ):")$= + P!RMӣ0{ BVMZpxfRd|zP?|.%Tt\Pc<ɞ3[up{]d{!F-J}X9kv<KŹ`X ̕?yLd6|m恗iMO&&yMXk:m+ˌSc$27C6AU\aF8PW7\^KSUp!ntbGER`&{ yj'"K'0 m= +MLX9L/ri׋I5nzEd2h"ԓ˞K}X/:ՓA졚pM2~t4v[(vstyUTSۧF[Ixfrz+doHER`&f73b&|aFX39@Va8-u'#4sj*̙o&h 8c%>_4~`4%H]HPR$NDI](ө{ xa/pxAlY5 +Sj7,A5`jD"iG%NbtKy6 T~,-M@ %I,O=H.=hJPsJ^)A7EIڢ`ϥ/,RjIӢ7bayJ5Rє !JO|H{?Mfs$OE XAFD, ͉nW`-+YGP+>dC%1R~u (k 0_4vxQai-o$kSUxeF+DSP + +ev~,+$M&ݸuЏeI!t_F3?]^Z$l AΏ%i6"!+H}NJ؁5Tgy{2bGxt٥aOH'9}S&-R`XYRC?N'Jضj4g dy1[2Z1K]':85C |X֭QD^l +̋K7)Ss9N7#I_|I'D"Їˑh +eYyV#. Tcm {iK n ,XJ:&ɾRis,M leŢC0bGRғIz#S{b lhn9#)4MTdOs[ b:H|.Ck7,-a\pR>|M_RI s)>u vM bRؗIbfC2 [oU'Iv{D|A@!.ke:Ǹ"j]ūڭ4ɫx'DG6Іˊ,W.L0`@`P"yI4È9'mD'dy4OYDA׻iFiA橤daֿOOXxMD',!gQ"ZzN3I U1,|9I@$,R3>)15VtR!g o'"YhP$N^$F8]Ɖyr2*Ip6n(M$5Aiו[u s穸4ް2^Un%Ixgv'%eWQQQ!/*Vىe7$,^TnɥHaDM$L ۲8xո5[ynhMbgohf̯>O|oė_g'nzixO屸N%LǭS]u;iEWm;EM?^n˟ܶ5=tњ-~^4P< 54g#6˜6ǜ6GL r r19`389`3`sͰC"l `sͰ="l`sͰ7"l`sDͰ1"l}9`3l#&lG,L09`ˤw8aa-a#&lKL09`wX_2[$6GK"ȗ 9_rIﰄ-a z[$6GK"x 9]rIpdLz#҅6OKq.`sfr#%l~,!.`sDd°u|K5j([otk'oܾӑ6_lϦǚ}ܽ3ppG7~5;g>hއA$gB'A 9 9Ü9GK& ns& s/3ϙ3ysdBΰO"rysdBΰa"r=ysDdBΰs"rysdBΰ"r]3lȃ#T&rLGL13e8"g g Ʉ\*SB9GM&R"X<9i2!AW T%&rLȥ2E,a6ysDdB.)bɄ\*Su T%&rLȥ2E,A8ysdB.)Ƀ# 'rLGXN<9ysA9KNQ:ysdA9GN;+\}avA;mst{N9v:DZ{|+ֿr뒙cuҚv@ɫu;t1mb/`^yך;Bt1#͏y]hv 9WmǼ3;f~+$c^y3C ?,'qJ2yVr8i% n)+9psLއ|,e>,gd-a9W%nSU7y*Yp }8RɁ$,>9C%nTr8?%nSr8;%nS2f97%nSSr83eqOa2])a2]0rgW̩-:W/~|wwڢ#|>5=Ֆ]g u}Ԙq D4g@2ɀ]΀YG55̏#(&j9j5G8L "2f#&jP3lG5F A~ɀa D  2f#%j,G ?jp E8.Y]2qɀZ"#%j,K` ?j %8,!-9Z2eɀZ"ƒD%%j,K +?j %8,+9V2pXɀZ$'T5G +?j0v,A*9BTQsf OG#4eeQnS?z'= mi&_lϦLOYN7v_3~O}M/۱wvn5;g>h^AgBA 9s 99GJ& r& r+38͙38ysdBΰ "rysdBΰ%"rmysdBΰ="r-ysdBΰU"r3lȃ#%rLGL0e8b g Ʉ\*S9GL&R"@<9e2!A8 T%&r Lȥ2E,4ysdB.)b Ʉ\*S` T%&r`Lȥ2E,A7ysdB.)Ƀ#'rLG0N<9ysA9KpN:ysdA9GN;+\teӕO=_}Ng77v_{̺oN:ϰ%ǎ#1E&(|ʀ^y:wA3Ddt+Gfz Wqʻ@!&IoiozwMfzJd$A3d#2^}@~ q3@K$keA3d-aa@#4C(L~ /@ $k8"^A3d-qݒ@#4C8K 5+@ $k8VA3Īd-PD!$4C4Jn,'"OA37j!ʄ4G ?h~ a%+ z(鋢J(t t)t)Bf + {w찙 h YM_ܷnGMQ{6}V-2 p y3$l <5ΐ! p`gՐ8C,9N!QC y8%p|y3ܗ<yΐ3 pC_g8C",9N|!g Y<gH8i/yK%8z㨗<BrKB !S^8%p/YsPB|,9w\(!rKg.b9% p]JPBP<B,GdqKB !\8%pa.YsTB$ yr,9q,9q Yp,9pYq:ڦꕍQ+m>;>bNmWCڲ?cfSk߾9jss-c=cn{\.:6'66GM >t t69`3x9`3`s75gU66PdO6NdI6ö6MdC6ÆKͰY"lؙe;q3`sD-መ/Hz%V&lHE;,Q2`s-a#:&lKdLq19`wXbb2戈[$ Hz%&lKL109`wX_2~[&6GK2v</`sĻd%%lH 9\aDd6G +Þ[ڦ-zY,enze38 OGqw_3l+c}innΙu; 磛LڋlCv}*ۢVR^(rUH]BB uv)+оBV +{+tСB^ +UE)tBU ],PU6RWhI]U!uVR"UIeT-)RTHR"HeT#)RTH5R"JeT+)RTH)LRR"2EN*S:LQ/)2EXh bA*SRuT+2E]))JLhJ]T2E]%)jLQWKeZ*S5RuTk2E]+)ZLQ2EuJ*SuRuXb^,S4eL ) LQ_HeB*SRT/2E}%)+LQ_ bl +)Ҕ j ugZ1I2ff-[q)Ė'r| n;t3d8rn)1/H<]V0Ʈ4SqkykpJ  o NaV@A)u8̭58KyJ s+o NaianĭA +A) 8̍58%>yJy !Gö;і[%{A=p<n/6[֦<z/w-s]B@܃u q+Bᆰ|[}[B6q7"ץ ۗBndKᗇp~yk [&c0e>&_ n [}L@2y@ nI w/>Pg ByA&cR-1).e>&u@2yB@ nI% LǤ[&cR }Le>&Հ@2yr@n%1q}L*y{O/>Pg 2y@ nIW LǤ-[&c]}L>^:է3P?gW̩ߎ^I^|̱3L6]tՖS&OMeYss-}랡s5> TPkWjmJC I ġ%FH`  q5Bq PW#,CJ\@j@Fj4i +$P7W#$(C-1 %8&-8Y@j,IG DǤ"Z"cHC$8&8Y~@j,I= u/E8Hg "YA"c C-1.%8&ɀ8Y`@j,I. D$Z"c +HCHdqLBq%8&8YH@j%1IġPKdqLi{,N/E8Hg Y.@j,I DǤ Z"cRHC]IdqLzq8.5@YIʢ\gqs믽pۆ 5ö٤򥹹Y;gf8ןM^c퐩Nsf>`zuk%d؊DD^K]:mLDPF@$rJ@&V +)D"id"oP^@"rH1 y#tBu+T\\*S)D"2E@&rL$\*S d"Aȥ2E@$r%)2Ke uLR"Ha y/)2EXh bA*S d"AKL;\*Sid"Aȥ2EA&rLCAZȥ2EA&rLI\Ie ]LR"H T'DދezLQ/)2EXhAjȥ2EbA&rLZ\*S)D"2EzA&rALR0?=_}Ng77v_{̱C: 9=Ӆ}ܜ2>fÁ @Ci+ 6xL @"Wz!4JB\ +@Ci[ ' yn.DȖ I t#o!@Cfi ! H֘@@hdIv @Ƥ8Z YcH-1 V@hdI] @$,Hɚ^"Y3H$kd 1H֘@y@hd7 @dZ Ycr H-1n5&4=@hd H֘L@ $kL~i5&+0нDHɚA"Y3H$kd Z YcH֘~i5&_J YcBAxI Wg&y=bG`1;T ?J=>|~E~6Ÿ[W_yzg<=|٦I>IƁS0P<˫fcU<']ͷ{r;_sxӳ= ^ +qxL/3̦Gws_]|E}}|=7߹ٷp¿gK_3>}MO|{9}ܢ1L C<]q݃߻?S/=+>~_~G.} O7}ۇ}._"ifzwGgwd8ix[?pa\7G>tsqʝiwv~^q8?͔Z#\zqkzv=k,,|G?ݗ|{.,3pC7`9ꭏa}=;xO?yš;Jm[yM;??>~f|sY_|'t(0™9nxO<;y`zI>|Ye[?}?q ״wg?5u]Uw<s=}cwGc8s8 >wߣ㿛>2Uw}c;v}_{^KlXKqڪ 6X)X=;;-,/gUCg>k#x~׽8\ u_~73>7-̟x>믿kkg|ɾ~)gg_~/ڵkC

}a9^__{w^y:Y3:բ .hK(~բ?~^Y-zK깟Gw+lp?ψ;Vq۟ӹ&')X{ªSI߿\XXaۣ'_Q%ȠuVw;~7g~C_>3wq)o{ 7g:Ma!~h/=Ggɧn_x)f6x٥g/ܠA}P;qWC7>Wo;;h-+6M74V_TR;󳧝(vzsu6ST͞5z/WO/=g;kx˅-4QI'FUΟllAGQm=1`t~VnXԻrMF;,Bmm.X-^tϴ+[YVzuWC ЛU]"׶.VvuqiԖWa5IME^a߃.ؙVwV םv0 JEVwq᭞cgmLgQE3-`Ŗ\ܖ/E\kn " Ѡǻ5/kq 4-NA.>" Cx aSc^=ӝ|HԙM h|gN^zZԦ i i}TԙyW,t[/<*kViKrqиJ K2CqZ"^~,"L HӸZQ +>qh5IϢ3fYwm_E0Jb/HmXfWյcNZKcQD9uoVm )ah\2j05\}kck|OPE&ԀER +ql-iE#ZlvTԝz!)P3{Rk.hŢƅ`Ы,pޖ𐐾cY>M@;:-\}yۙ C{;Sԝ5 JϿ5kvZl 4j{0Z!A[gXb߃ K[$Y#.ۋ +[Ez*#;MWEWde$~`.=e$~5Qz^ʕѠ]?ZpcUa~qXV5X`h\eoc?h]y_e*ѳ s4uhUVEE= v}fg}+1̭)Jl ы+N.L-B[#ňZϑCj*_ԁѨ]ؒ"g}iB ~p:3QMߙ=L#0]l"s@3M;zlRà:j[X6-j2"ƶڢ7`vSljG\0hpYM9LpT[Y jh*RL[иi3Pxֽ~$&tUvX!"ښ[Mw{D69cE];b1=-V^w**SM􋃽x*vA۠>Dc&UNN8}w]zַ{ĵ)qWb.vŖzַy`:7AuW8(6vvK;vbDvWկǘ+$]547ʨé(Ѧ^}'|u]Az|>SQeGUmg_@G"\=CR},AG9QOʠOx87䮀kA|vUyrrН7m_LH [_S"SR]Po|/l +vsUXOW]M+?ePYkPCPR_Ƥkk޵o43 a;bNכˡ^[oKRo~zsoM?bPuPo*eXAG[{]X쁩W)mPzB"ؾOڛzloCtkXX֟%W>i|oh Pkݮou ZZ;8oOvꇚBG}{+?c5GhV Cw}5itbi֗czM]@_˥j$݀=8CPo+ֻךI@f +K#[Q$r0xoKsMڷF޹hSv:z4핹oCr]*M]0Ϋ꧍XΓw5dv| OnQa~2Y ꛎԣ[4SqO&/J{wuG73ի k/:Zo~zfk + +Oz= ճi|?eu3?}6z|^G %n|t +>1O_;m{O 6[w-w璘T﷟h0^~{w틍i=IJݬz É_,/to;?l-)`*Ы}[ D:v K?l0EܬA\-}!-٠bj{|abgtI6ܩ`hwvq+GCŻ/lUMުm)گq^@6¶XEٸ3M,0D) $`щ. ؉/Do +mc\KL]#g߷+pliw)",6%AUn mj Ew+X޴%:)SAѶY YHg=!jNҮ3S[-+uASmAѾUA[ }vX0=X7t=Ǐfl bEj{m2í pދ]akɃlc{fk5\7ý!pRDXUk.EW}on59kkbB-Rt_?;^3Sb);*fX: 6D L[klhHgRӧɘ|si3S } +^@[*L[2xpL6~T|:TfJ 3SA}TwfV=v֓ݡxqPtsM t6(:3 ;<\gXhkAFS .;E ַ5d=X4/Vm`gh[EYit+L[R1 8(NF;TakPKV], Q^C_v2)-@Sk7WO9yO9ˌZ- vD+U{ Ch`kuq# L*4Mݱ4}?i +` Ԓ `P7:^U@`,i\` +FD`` *B~"m7MԒU]Xn\rl1\0l\<юAGhנ'wZ9ђhIjݛ7[>2T_7 m{4o>/v.6ƺ~ф46A`0/60X768PKeI8Ԓ5舢Zڠ#w@tj zr 2JhIb!%ϴ 8mjI дĨZ@ghK PKEנ#AG']tsfߝ7Mz o5ikI \wL-i`6߶p60^m7@3[5ijqW5 -yg40!"hl `cC6(L-mБg+ P7(fM56)|T2"S4~hU4U 9zO[cOm7>jys4<)6iS Eb/L|bSҶ ᾭgJMEƓެ B1EC6ԶmC{E`MӛdV!4^"3-mОm< k{7S y}!amC{E`G7StᫌXyfj[ڶ=ۨ2g!7Z2H]M.<3-mО]dIjڶ=/Bw1 +LKqPfWwb#KRж5c>l ' l 2mhۚl1qn+Ș 29EECijڶ=[|rF&4\\okڶ=ۢƬȘ?f$OO} mkڳ-јdެ$+@dgwq3mhۚl]4fU*z3HcT +"A m[Ӟm< AFoVudsŶ 76mM{E/dfuMYMwqA晩mhۚlm(iU"nYmͰwIW!"{"fmhۚEsߦuAFof^\6mM{ETdڒY[1 ]ё13 m[ӞmƬɘf"c6dL{1.:Rж5hT|dLdTA 3.m[Ӟm< oi 9d0m|dmkڳ-%7OJGZMCYCod̳2a-"3m+ڳ-6<3q1,:MK^}Ӓyfj-2:HgG< SdfC(-¶$lW@dtL϶FleJ2f&Bɘ>"cfj-YGLћ): i3U13̴h϶1j6;zNyEPd(œcEF dmvf1k +껚MSLۊl}6Ɇz`Wdzzc-"3m+ڳ-+`(<3d2 Zd=$3} @o6]"c6TdL-"3m+ڳ-F+/jr r3AC8d N"#=bγ٧|>/: ilr8ښh϶|m7++!sC6m+ڳ-ǀϩEEћEՓbńښh϶HGVћE:UI^}Esiۊl14$7CS!D9ښh϶X󬜝M_SSf=N錏D+ iw'1UٛӁ=i{V?7?׿uyRԇOzᚷ쪙͗w/\Xg>t?>g] yg}bw/򻮿xc}|O~?~U>7wz{~e|g 'sn<;Y@[~Ǽ?_tUǜο)v-֟)wʯWzAM "Wbmj ҶH^Qezfc=}x-eOɾ?֬؋W_0)KD]{/}sR.InS:)ёrDmtFCl*=ʹ/Teo_,6Ug>nz3_AP#-^~֯N][7CMk4jvaK!6R%մ4#j)m`saKn8C]8Wjh7MSZ iA=Jԓ?5m[4SoS%^ighxt#vvus}uwwTK)XQ֕P7 .Qp=l31xF>t%]G wƇ;l^|Lj'5)ӯz+MGCQ #:2WBG}ȫ.WOnڛCZ$7L{`pRO6)=QD*N([lNNWF4Y+M'ӬL+;4k'ب";sTW=m5)xXVwj÷d|֪ǩU{_M'wp`Gaz14c]k觏jq gRk|,瞕}pG7mzَöC[Ek!;ga ۷߻f}vWݻf~vntos3cU)yWG~ y +EsMDЦBA +ZRWh]H]ՁNG^K]U!uZ6RW#!!/:+hP}D ]QRBWhBWhKe^*SuRuTSRNIe:%)ZLQJeV*SԵRuTk2E]-)jLQWKeJ*SURbR,STe +LQ!)*2Ej#^*SzL2EN*SC.)RJ*STH)Lj2EV*SLj2E)4KLg14|v|j|.o77b|{N9o۶k4'C{ŵÌŝfHb a<3cfqy10cfq18̘Yc^<6̘Y\bf,0/ff,03fח3O 3fw3ˊ)l36f, x10c0b a,a +ÌY'‹'܅Ά_lϦOQ^2W@}zebn5[;g/׾q;D:<2 g:~%r9qȀy9@Γ!rYr 9Obyr;d@t8K<r I9)-9zȁ'CLǵ@Γ!rȹmɁ'g<=3 g:%rL1.3T< ștɁ\*SuKLg@.):%rL9/9KeN{ɀȥ2E\Ǿd@tKR"_2 g:&rLA03XD~\@.):&rar q9119KeɁ\*SudLR"c2 g:;&rL 23"T(Fv.4^)oNv N1m?7Z_m^ŷ:m@\3f +FTsqQ3pqQ8̨rQ8ܨygn4;l~,3?l6Ot ?lϙ6kfUc/执+faDfaܰbhalͲ]6O ?lS ;l~"v<3E;L2ybeawdawbdawcaDI0Eư手-aa[& 'Lz'6S ?lS ;l~"vvb%u|sȁgW{}ϊ7p%vYR5ǪE\2łEH' !N./B\.8XqrrYełFE' !M.YF\,p8Xir2b#łGH' !N.?B\0Ō8XHQqrrYfQ-Eyf͈ZSH'G f&K7#Nj)L8#Nj)L9#Nj)L:#M.uFR$wF\.89H04\qrXK\ir3䰖"4hQ-E9hЈZH'G f'G 'G f&KG#Nj)LH#M.FR$q%'*:vRV.) g9fkSl{e߉gY[ӷ\2}y݅Nnڶ~oZugnqʢe4B1-$ш2 Ee +e!,FY((P If3B+DW2 EdJ8#,BY(X$TQf0B1*$ˈ2 Ee +M!,UFY((PQIfd2x642R9dDl2bc$RLj2dĒH2KeeƳɈeƳɈeeƳɈ凑dJ#ʌgK #,F&# FY*(3MF* $TQf@TAf/x6/R^Dl2b^$Ҽ2d2dR2dĒH2KeteƳɈrdJ"ʌgK1+N%xW'&VפSL߰\|+ ߙX.+׽|fU{\B2Hc X -E[(4PXal<-B)Hc RƖ"-DA[(0TJil B2Hc L -E[(4P@Mal+ؐ+RV!;bVHcCwcK%WƆ4UƆ4%TƆ4RƖʣ" iˠ"->EҼ#8E[*k46yG*_0TilLTYl)ؐ(RQ!;bIQ2HcCwrHcCwIJHcCwcK%?Ɔ4=Ɩy" ivxb\qђ|-ZD܌'hy&V~uԩMO{Dz݇gOO2j㔺cc+~Pw=&/ƾ28" 3pV#R Hhq4K@Gc01xhq4F8cBI#GcJ+ 8rѫ8}UF_9XEѨ+Ѩ8^#ZqAxhъ-[D+V8!ZqCxhъ={D+V8>@Zq"'BZq"'AZq'!ZqBh +ъ*D+N8Bh ъ4'D+N0V`8 ZqEh ъ'8D+NpV8#ZqG℀h ъ'BZq"'BZq'AZq'*D+NTV8B +ъ+D+N8Q#ZqFD bB$hRӰ;78y21X|JղcXUwGNOs[`bec+_LO@.9`xHrINZLrBsLr:B9l$9$7#C`'ʡ0=VܡP/HC `;C @sLr:B9$9$GRC`ZrHLrTKQMIP-E9D&9(*$RC`ZrHk)k)Jk)JR@WR`ZrHrj)a0Q-E9$E䨖R$@{TKQIj)a0Q-E9|$yEXKQ%XKQ%TKQIj)! +TKQIj)! 5(^$!Ӈ!8#ұP76N__lhLkJS.zbb\F%6w.Y΅/QS@jp q4RC'R;!)\ C&B$R#Zq84ApH@jD+BFpؐ@wr@lHNv iɁy'9Ć4xҼbCwr`@lHNj1;Ӽ1; Ӽ0; ҼbCwr< +ҼbCwr@lHN[m ;9d 6y'+öҼbCwrIs?;w8+\{}lۏ|Lc{s^͝c9Y?}$w~o1UhP/ܷ\[zcy˵8ϟyד>w?xo^|-?s|< j;bMazzĴ1c8gc^Ͼ{_'n{_˷xۣ7ͷ훹[9fw{mp~߳hͻģ婛>s}'__23G?gxd߱o3s //xW?K^G<:iK_{I=_3?{ff{ֿU7>Wg퍏<{kչgnp]~/zp_[O\8[g~ӿ™1Cx݇w=>k=~}mї~S]>ujMTn~̽ zԛKo՝o\w_;̭6ޟ^{g~w]K1󴙩|3']go;3vO|ۙo(Lѭ[_4sדv/'w\89uSSukgS??~W& e9jf̟;iu~^z-;x;Ѝ?yd~xǍw=߼ WnƏCtBwYwIW~gș9{}zCw'=sם_w얧l w? /D}?7b |L^3<о<;Ͽ/|Y ?yxok/7*w;]V/~\Eǻǝ~ȇ?uG<|]~fC37m/}SĭϹp_IIO_tv232Ύ̙_vV?e9Z{W?ݿOݗn;7ef=k|[/'Ny_y]K>g|:?M]Kۮ<]G\z??\j ~7yp'^柾&m͜gNӷ}Ko/s}3?o~Wyj5ߺwo];o7}}7 oѥ+c[^zo_um9_yֿ/\/ȆWI?=?h<V?Z[=(VXqpzi|Yuf=Rn?=}dqH]ܻ}d浖^`8Oน%/4|q0u_^y>tP8A{4k~̂6O~NWۇ{ }{[^:3nգ-Ym ,p1 w#ȕ?=;c>ӷs\fz*Tx>ș'?--:'OX<Օi5Kߴq /:{ +nu=~cոjiz~I=/}K]6֏`'Ki/ۛgG7 nRsSgFE:$b{m]qtH;:.'Ghb)ێ@"R@)= 抎[$oŖ~z+mC[]wqUQ=AR%FShT^gMx'kmͼNa^[頌}Jm-V#Zڊne02 nZjoFE`b6ߌ*fY=;͈x#?E9}TQ|õ.ɚ/յ7Z7bh/{bloޭDmh:m,~[/.mB~=U}~=U*\G曱U)A#uѴEݣ|3r +^UU< uTU(+h@S`ێhS5_>6,Lӻ`bۯzE]=koVdǀnFSFuijK{o]|Q6߬AѫKu$E zmyMӛTӿY7T)SHCG *+.u\&;^ @6 У'Վ~|3܍$fh|#}Ƶq^ #HvތI7Y_zYE?[V][T4m.n^E[Vo~nW02߬U?0@u}M3HOXBm'ɒS厶n[~b]k˿~MhRx*4u'RnK?5a^]W[V?tw֍m7l}DM}uS #pv>~Rs@t3z=WhOg?s}מikX\߶t%Fތ~>s?T?C6=si'U;SNnV}rEhij+f{WW]RнV,nUŢWԡ*FϱUGŪyU;ɷwPt$")S7 TwfV}k?Uh܆v֧Pw_kEsgVUfշZ*ϰl)mEԸ>㳚o 9h5`T}ǚЏƏ'gZm`TV5~vnzU=$/fiV;bִj5Źvfbm[WgW.ԮYvڬb;wWxn^q>'7PZ^~]ifۋ ~B/+Ssj e"T Pm'*6smU74n!:/EWm^ܭiخYYy,I:[oYEe:.^ܷUtF^JFN:+\-r{m?$1>;ۛgfOw7ݻYlWb?lTbfRkEȉY}ٲW}ƒ~S;I~E͜N:dSݬxV#*oF͚usbfIoFZwضNzbw3ZnFw8j\<݌ fSn.UnlrѵEUՎK F WqEh(ѓ9`U]lM`ly-,U^f7#y,{VYޭA#b 2捴`bT[6y59ߟk_Go@Kʮtb߀jm>O6-VkԢ5El,@q3ܑkckז \FRۀkg5A궁CEvVPaN)c-5HjPt:Nxoj@M6K6WkEʨAڲA,M\[4M^TkFpTgum|W,DsQ坻b՗hpVY|6EڢѶ5e[]޹++tnm7Oz*bO N?޹ muyՅ |v(+@9Abږ,坻bэlsOˇi]IJdG*νX=ctd|@)E]ՓYO|AV +)߹-ɲ.n5FFB>{MQWD/mU޹+sl}8ޖ}&:Ű|,ȸVm]F& +fyl(fWdm],mU޹+ϋa*QR!3nBfVm]Qϑ\0 +9W:[Ȍ3ZvdVm]1ΑOˇy]W%hYY*~r۪sW,Mq|cíi[wE72/޳P>,|(E/}Z];wŹZ#V{ˇEU|}aW| {J!;wj{ƇL{B33"[%뢨cq.&*۶|箘D7 OF;>btrHޞDSQ,Dn;wE ]!蓕J$?yzܒڪl;wŢYPÂ*+]\?MmUU坻bэli|B~bo BM4mUyXddêBavʶsWs3 qaZ28b( +ڪl;w9;ABf!.C.b12˵UVwaLoK LʛR^EUKݴU坻36m5)fb!$Kbz]w\4mUy箘M̖|{f+U\*ݜU{f=,-EO3t=˵UVwnF& {ʇ9W|}av=˵UVw~{u!3 e%2sF(dk*4B&BӘ0ۢŒUE[;p,J[ȊuUE+di.fĎ̗:Ԫm%hE7~_(dyi@Y,!O[\ +߹WsͼԒ6dTO[X^7hۡ38]sb!T>,__RR&]n3# {ڥνdut=a*B K,mQ{9# rYB, +Fecqq1ZUXn_gdUxW!ª؎̉:\JU # YKP⫯̦Vm{(Vs3LӽE[..\=WP9{fʇ^RPfCZUPνiqK @~+4PxG 5E6B2Džh(6X܏lXeW/~duç]dlݖڿϜO_Ϛg>pΟy÷3>gf~6|3v1f>~է~Ej;[ t`DGGm`mSmp/Z݌6.{7Ůuػh_w\l[gGw`}8I!w0*}F17|ogc~j߬痑m=n1K^㻖}_{߿ 7\{[n3ێz:Ϻ#N~ߖg_uYgtzwO̿>Wޛgf{+[Ǽ}_?ibz 0Qsh\<؅/Iw3~b:S݌_fFu7ŶuxVqt30ːZIZzIV>o;sNz'OZ;_KoX|_?[[ڿnu:e?8{#ԯ>zI7_o[Ͽ]xuWOwZuNO^*Ԍ" +8{W{bE:ۻ%ݻw5ŝ{Ez+wom^zNBvԹ[h0Mh +@tm )ՉQ8d|SBWbxXx/ Wmײ1?@#@-zsH__+u:Dܪgӧ1ѽa\;;Cww^u3?Ѷ3j=5&N9yohURf$&MۺŒ_ίκʭ:cm\Zں^ȮzLQȪc}|o0?_Uip ᒙ鉠VuG5'61vEK{oh3ϢTNFAhaژ +[5UH46td\7wmlyqsռw‚cRCFlin=mDE!u1t&޶3EbO>NfOOL_|iJݳbccs{Vuؽ)cc{Ӛ9ܲg{!b CF =YPtM0]3z#uLtaѓEgV7:KMD4tZ_GR3F)Xt6RDNâJtx1CDEcY7Kjh&9zM=K"1i 6BAY7K Rt{XtBɛot:&z =K]#Nz1(.NqEE؜Yq春",zR,u8RD'`d&â=1KPZTt`YpH=jhg oxMQ)jq#gRMȌE:7J.2M^u_+䔵o^%ӗoߴlu痭{8uԺ[jyum{Y-gOZ,xMYPfO%_G`lHYX9  sziKLdu&i;-YW +-Y^p؁iqnu"Ať ͎j"њE ;vHfyia6ybH0iqia'v,lxφ,/m4l؁iHlv} -.m@lv&,]{6{aE"*K 1+(ʒغҐg-~X= ;agi66{bb+ɢt۲ "(GJYvf>Z"Z(5j!$ =W"W&P=UiEOQ y ~Ͷ{;vZ&swM#5m}soX}Ӳ%Ϟ!_׋6Jႛ$GRɶ H(9!%.s#-*xȍ) @Y=8"8"G("8K\Mk;7; >,q7;,,q7GgwWTpfGك%fYJn{77pF +*v.ؿ!)Jx\96Uq){޼k&'7񌱱s/\ɝhu' rBgEݙ[/j | vl C mp[sl#R8K`k!!;Vcw*LNiީ0; +Ӽ0; +Ӽ ;&AwL4iީۈCDH󎉐 ;&@wL4i1ҼcӦX❽L5W`O>ֳ؉?a!p\br#h1 0k a%.!\"@ÐK8` C.1Dn%<1!p\$[@.ÐKxe B.n rÐKD\"@18!1DQ-E"!z79H$0y"G\"3@䨖",yZD2 Dj)ɞ7 Da-E!Ȫ79H" "y"ǰ9L};&qAN!w''_R#&Le8v|c'&k9ႉ^yzkAv .a&xPY0!JS3H`1Y"$.ap`Bgu^U$q ip@i!"8C@pDbN9CG z8 I$., $xY⁛IG):"x! x 38" "&x4 +!"'8$}v Y":wdW +!i8 xR:IbV!mE8, n=(xY$.q@^)P1:ך3J⭀c:D4I\FEP0:Dgu *>f^' 8"8q@pA•rΎg6"hxVxEґ9EtŽg44"! >Խ4j$$G͡#Y_Qg}F9ԅDlQq.95k4꬯Ѩ5Ƕ.J́-IQ惣8DQjfG͑,ШCV +B"ŧ(5ǁ@85k>0%Vc?Q/G8xAQȁ*$RوRs +4!*Y_QFΣQ"h<NW4S#\Nӹ>p+dIvY|ʺ뿺x3VGNOgϿN`b8sԗ/9yrmJ1h+#{ +N8Yp1VAgn%eJYPpVx&Z˂ T'u N2mU!^Bz +9?0G&<i!3jMdWiuebE }7-9qr<ܶ~o:| _<9yr7s˞ɵONcoZsU_ ׈Q'ZAd_@ZpYQAL1KJ#R55]r4ҴnxԤ _1KFGm5"5k>4Ш5GJ!^QFZy'' IMGfG]q0 $5ÀhYQs@?'I"Í&9u|`:&N^#Ru|xԤШuhk-#thY_QF`thԑRQf}F94jZr|8jG͚:k>4j!DHGA"I_QΣQ$ߏh<SŘoX+^mTt\sYBdc왼V]664:y%ԯ4uԺiv ꉕ|5Mt`¯g-ܫMhМ0Š]fm(s1 B* ZS(cAG{1{ DM8hRyhЬРY 2vz9Aᠽf= 4ЬÂɐ[G8hf)s^fCA:h<, 4<0@i_A\t 4t-8hVyhЬ=]ZhOFu4Pi@hpФѠ՝ZnyGf* ڒQUX-GFu8hYAĻX-Ki8hG&ͩZOAӖ4<0hMi[a-t>M[rpЬȨndAQѠYOAcXy ʤi=4;S٠ǭR3U8ԝk"L8S٠b3It~ŽXS{ƪM֓G=+vܴbw/[7O_2Mnf-9yr|3Z; ꒌ[T^Q$cd,B:(na˂SBHp^ ;^y8ZWzL~/)W5[w}éK|*'KncT!w|EfBY$?0HYfT"YE2Df,,^-,KTYQY+LY&֛00șpYf1"GEN2k2"E6e+Iafaf3,(@(-nK2M5%Dmh7)j'MZ~ q4j8AUBGAB* FeGRѦ8mѦ +p4Gq4 +q48CB>"Fhűъc:D+uVk8"ZqEXhűъc D+ՈV8VCZq*H+Niũ 8 +Ҋ 8 +ъc$D+IXOs4 Q}wNf"9gl"`N4ú'VzuV/u/?M-3B[Y0$VZf+ md23Xah , +CL_efЕUZf* -3uV22ۏ26l> +C= +Cl=BGGahGah}GY ( hXcz@c5k4XhXc-Z@c5k5k4X hXS!k*DcMhQhQ&aT9ކUϑs/j)9QSڥsr}yG"3=fQefS.eFR?iBߙqbĄU.JqO +BB} !Ygu^E2; !i8xn'x1g򉦑\tc΄yR1;F swN$}'5KւL~r`"qFĄ$Lq`Yo1b&kDEr13:,frZ4$ǜ"31bfE)rx1cf]̞VMx&1~bn33{JČ&7*l53g0f`@b+dW:8fuXYa14zDcκqrBcRb1Cc&]LVy刟`9g0fXbZ[k +spY?1~bf7փ̾xhn]NZ3cf]%I$=TD!9' y-IG(`g &9kEDɳ?R'![% 1Y7<(^b +BN~A j +b7hVt9&8QrϥWc웉q̞ɗz`sW>xGͲ6`3,k8jIV`s>&55Q7ufYQ(u6c4Fem֜/:C&O)h^͒ % ,*@GQh\AfLhNBG MA%QE90 JBf._TN;o)UfG啷nwfr6ŋ.uQzjJʘܜjhj^Q~\:.כtwgի8ޑj;+Jc\O8Z)UWb{ūEz;mAWVh7Cm ?XC3ԬoNi~jCYp?(\P~`7c7)ދ3>jk_`=m,kUQonuټ+ U冲h Uo(|{_>UŴoyS5P^~(³{/6Gݛc4Fd)ݬzU<7eWo9uM&C9Pf??\F{P^ޯoߪ#?pz/-jV؟˛] 4I(^~;nv[YߌSy8qV= OYdi +VP*zoIϮ?pMwC7Uo*`CN=&6MM>s*[ڧm(Y]{??`~~}l0h(Wvէ;c\+f|bRpz_Ub[in(/)о3>6 {7լz_?ZtbWWg?p+|/Cq||TL9@77nV}|,]39P|nʽiǬ,{i{z}C +i~%>A%f (}/ײk_Ժ|i47P(lѵ^?P C/PtfK{ΪۮF~{?ҽ4^Q~?B΃h4}y5/pA/Jv1u--bo/m_U ?z.Y^\oQłzSerכ e_iH<M8@_fRtnczVZgqf2K܌_ObP%-o? .[:0l*O2ICVn:%9OAL*:Ab-6n h# 891x$aqxݢ;شm5iO3٤!H9 Xz>y-ˋ"0MCE_M.'_à Hҫ4c`Xºeyp& +G6pWSiT"~½Sm,{uȴrH0+".u)Gbpzir,psg!)wC PIulLNoԭN1U1@xK6EqtȮ0"M) i"ur G]!a<8wL q߇X}2D Ͷj"E7`?EK<K*kIC/=㶣Sяfo( ӽ  Mw5yik +TxaN^C4bnS-CP0OOĽ|(yŦJ2 q+GFS-%)4١6@6уwɆ8uk7č}ܑ|?Hf+= 4Ľ2R7|p~Gm&ΡڐV)r̶x}5b4Okn?)YG|p߯L)W }5Xayi t8GܽECZ,sŷ&VxYr5}&HfɆg ʼ'?2'ph2L^eO_3'wxTWRJoBMm}Qe(7)R =qa4e CTkk<>? %?₡ZUD$.dPoWHo؄M {%&,q/H&ݚz _7[{! qc6Ӓ̓}pjt{ʢâ/JNy4y[q^H Fg]U{qM Eϙ9U"i̽WPq/CO O~+iͲd0a8EQ>PZS!ڈK$.0qp`sz%^`>/ׅKy&Ĝ"9A]poK>OoMkk aQ9VYdoq!3؉?2؛:4@ qZe(;q/HjA0a±, Pj ɍ?>PɏB=rv|pWʎ(aBLך_I.ڎܻ~A$Pn}AfG&le5h +ϻ [Oʭ҄h?)sqq,ޚHo 9GJ蹫e"F6vY2`K@MeA$hrL]KXxƑ&q8wҽ I' _ q{9xrLgK{3%2 +l)OoߔĜD##Qu;s/K<9&;A}}?IU~ +x7>h'iϝ*%#AzԬi|8ٓws˦p_L~xP +|pֶ=%Knqc ?3P^u5&Ϻicwzx5G-fK.ĹW.U1{|lۘ/٨o.ƿ'?Ի&9n'O<9&,_䮭ch }#&,{4I%x)%VN S [NK9hir؃2->xBtbtm}A4ƽcy|$px|0p +׀a,r2/D<gG:I{V]4^ G篅;ᜉ:h 5I{Ug@~V81@xs\-ExwIm>KFeYsܲcsԃOk/dOveܛ:psKf&p^&$ʙ296GqqhV(h x$ߚj:@^`řGGRxZBaEso-M85~/@-c|,s 5#R/[A[!<%1q9NmTI'Y}*ϸ#ͽTDd4.~K3aV}DQleEB8#T-oSv6vGH^)CY`4"{Eɻ +BDޓ_U$&5-v+ϟ%G{k*fTDid[1uy|P|Bϔ-01t2 8:1,c~nShv)[2|}-\ryan|x\b&>1I1~Kġ",ıdҦd0qVll +(&oM8$a&>o1;4Կ<77[s_lxk%'ѶѶ& OGd?/ۋ Sgbsɤ・XXc;4^Ä́{Quǧ_E.cG]p-;ˆxF3]9Gb\|kLlilddf|c,') O>2*0+M eĒ:&!n<ު{{ngy)'ဋ߯:ySQ)vx\u*Zƒ;k[jtG-ܲ.O_uf7f}Y&>+C5K>)\$]^ZO3^f$y9I8҄pGe&Ӛei fүĩO{v}79V+G'<~߯e}qtx—faPzU^A`b-D+%i=Ǽ< /MK6Oės7Df^7p2]yG! '&_7]You1f~o.sߝIv\flV$;s`Gޚx,p82 iv{mlp1$o9kSnLFٚ?|*0?`AYl R;߽9#:f.?ZO}G84MROeYL}Wܿ5uqH_yTUe+s '<)Ȝ*ʖOe'AgBǴ o)rZÈV"ܸ'|sDٚ0zdlqqϡPF(Z;ȣOWOn)*(N~^9yx``ueG\e_r?8b=]%X1ԉ;qdvPf V~dv~aVPrllz}Gx|]x[|mVp-"f uvGyWPqmeKEfUhIC|p^`:I!kr f?KF[•"pK;nwEϗ^_+uqH#_ݎǦ)`f#70eRp͸"eRN 7A$59ETyEf25)θ׸fѷTzYrfPt1+%hs+-8s~Մd:j;ȒkIyKswh&5INZ57<.o% wUh5r|5edLaFĀWS׀(B'&/#q:[s)"), +/n?,<%p4n\껞+*U<*Qe~;/3앚H႞>O6KWɳ=I,٤%XIKV&%{_M⌛%XiO$D7J~HS3gكcamsxd|cOm5+5*5%0pGq,\%c ^pDދp΃<񍸾 [I%kkS&v %YzP?5% MѸ1-BqrjO&_ϊY8I3qhyfWjOD|+a^vY0!+Wި.+OSsZ3R^86Կ>r#͎Mp\,b"./&YNRL<9=x47YIc{i 嬖{j,ټ)ك%{dm59.p]ٌ`yFXCmh;v6f9`$i1 Y|Tđ-a|_71YBxtS̅Tçd+%f_$.wCYAYZ8RԅPwWvVO;ʡV9`et\pf?lߠ!"vJzps7qTg}ɣu:WQח:q:z> +1KVMPFYYK>s ;J7< Qx8p14^4^{3^Gs\/U 4sēWvQм??oKuRxҺKqcٗO^<~czXb }pʯ[|`g\Җ~5fԕ?FǸ͟D65jâH8$ *`Z=Sy5'k6E%]~;q5DʴG;5wl֒,'OfZ $ԅA^#s~A:ꤩKx7W/e7nbs FUyJ(-ODdickVHMQI*gŜͭ$:>Zle`\] +c^eV+#Ygýhy)  n&>؋t܊hgUE#R$%<3^?Y1O/7W] qO/g +q[[h'Mct ԱfR&[/N,[Y^ \=KyK9,3,M:F^,sQğ?s e!k/p( +Zf^@݄;:j,C,Q.{G*gkxwwsAH5e'C$>&t1 0~lESv?D,ݞP֬0"Fflfq{P>evBzܒHo0k+CJ2=I }fxgN&\.hDF^?ţꕚK|/`c߲xe68I6yGD ~D=~(ɾQCPDxgڟBA;&.Mo> ;8r#-V*3nwHf.k2 G7&VlvoS Y2讞X&H5=p%R9wʤiYwO{, 6%*<-0Wr0f\pOSx\L MJtÿڴOr87瓌5!ĺ'&Ni%~(P(#jz`1$u3ZP#Y'5/W&\x[#38[؊ޓ^$c'hBٖdAܐ{!jΣ?N:?+H2s|0pkdcSF8SMbZ{B9&.?IO@bc?ydjE+1xYI37j}.J,p;qA<Κ*Ӝgy(UmG5G{I˱ҕ!>ăXޫGcZSVq3sDܧi&.:}$Ǭi?\dMLNIư#[4LSơA|/dьdB鞈''$ŨdE`Y2Sɒ?ɉ* D Gxy+C@Q> "35ǖ_8OIq N|^7F?syԼ6=GZht?%>Y3|m쥂+^Br fxzP?'f]9xZlL*&EYY/BlxyߎcnLy&hZs||, +4#R8D+-/(lVChaXIh\vqH1mݤ <9ZNnssl6!cS\ +sıLGF^ٿms$#ְ)YrEq'+n_3\y">$f7XN!jxʍA| +RĆ%M}q _01N[mgp{RVn><ep'6O6a#>Q(}5r33D`J4>X6VıY|ǂKMg7sO'73'TэfxSqaVV0|T=ܖâ(dzz+Z}J-" T53sY1gmq"p(2B!OV8FG-rǥi6Imܥwb+.P6m_9,1鰉%~%Y7cی?'#Mf<+ܗҎqznK8(U)-"Sv.'0 -%5G׷#/5]죷&4fOqĒO{a6v/pִ!Zp*ӯkڱF{`rؼ /#imtQwLK"7?%p:;ʦWH䰙zzsyΜq*6R~lq]HjNbfE=Fʑ٦yŃzGEV^3/"5+ + I8y!Qpa/*`aݓޒ`Y۴\j/7+egz: lZ?ydB+?_M |P9-lSra]zuShUs Y2u/w|0prHDk?_ x?1Kzm^Ic_"zz8g=Lf1Qv;dSf|'Γff ?Lg<|;.'bsGOHG[Oi*r`{_/\#毈g)xqO'U@ =/yYGѓ2ꆏ=fY\a˥")Vxb^'yE>[FlY[FfMbx\->wQoNsh٤aP@hq'n̅H̵?0{ep|m23{[ONҟgu;T~0"=I#\.ƗCg?OS̐&J7pL +M'wFpJO㷥[i,B]U?.Mųou;i7nGy8yO<~1&Rf%s<׃`~')LiI'Xܒ->rb<2>Ϗz=7}Py2dYs8އT%ˊ8&ڋiO ݵ&#e"lz߲u Oq:7s'r>M6ۉGȨ^* KYzi;խؔǜք3@&>m8U+<135ĸ#?L{?N;,575TYwQ5FBY0g? R7_v +&+&ed-y%GS˳S4R2&<+xr+gqj|r@r21yE<&915%ςkͤq:oڰkZJ,pz;EQ[Ύv^m̑fBf}*^+1,)5[Mf>ZswnG3JBHlvrB4;H S繕?i +i4SeqoRЌl D/ev`s(W9cD<)0yfǦB+RƞcbޕO5Կ o͡4V¹NRu%KA("8rK|ˑAfL1Cǔ`^wq2s`ŒjWշst,5e|viH_J`[fy +&EĨ #/P&)K`<*';թ4rup2t'Y9Yc +(9/&YrWw _M:>'EfN>e65h"Gf Ē&H~-`Sxk <|pjW[4yIJ[%iCК7 !;ꝵed,|BIx"pN6LiD&|HfY4p̥Gf.hR]bOQE"-wb&>.&NĪ? 8Ƈcu8^WF[s?2{/N/Ab`kM(:P.o=u^,ńy!Wzf-x%n >Ll +86{n1?՝{5&Ğ^+N+#B}&xz>`p4)X6OƓxn-|cwKmy 7e 5u?GVdI>Emc(lkl E}Zk&C^9>P1x$¿^l:cStO[i}V'To^,wC?_l#Ţ,0\5y8C(EDqEM_6͠TRp0T!T@QNfᴂ}LVT bHPzx3WSǃ +fɚo']qؔVG,TkJbs8{4xSp_J0 Q}񍂊 tUދe+ӑW&~k8*߳,bJ+p92wlKHYkw![p֜~P[P4>@6eSY~IsgYL[ʕ ?)+T%eg>zic>2JxBkxa;yϏsq,Y6vRıلlYi yЉ¡cy-Ԝ܀5sTg}菥(;&_A,_Yw5Nݑ5yf>C"Dc %ᴚOxvʞ:6{ifks".iϚ&FmX?(jSd 9<'?hӏ%TYzyv~`w'8c!Eɾ|X%F)i1L#s/=;ev~.;*M4ج lkipO]GWbĕC01i<ų3‘hYF²+u W5f^%Pq$HfY9Sfrڒ-]ֵ[Ws/yۯ:MkµG_8z0p( s +]ݵOЃ%71 A]93'xxRp4ga7r;Es8{QRIL|Rćs +\܊9eYAni{ jhC^.afQC-15O)8<`Ľb.p(>"Qw5k|1Nm1?w_ͨ#ۭ荀K}5QHOp#|c, D9=\*bp ? 3HS|67S+!ogW^&WuKneךA6P$$j:m0}TN^"5Ϊsw8 G\ߪBR-wɷ;>bWk6<| [NŷO.4_f/_7I>%iŧ8ZcʹR/Fʙ1gli=u +j|SxY +"IxGYQ E٧*0>^u")#ޘ"7'Eړc;fvἥXoMɣOy\15POj,G{.bϊ׽mZMٲ Z6-3v-oRN%+=iVp55E! bĤy]PHֳL|P?0WNnCiSn%Ori iBt(t*7ܓWBbbr?/߸Ҏ{Ų5ңpZ>8Hs6G~.+xC8\6[n Rkg&>eEִ"ȆX9itE`{6+nk+b!L'RYŬr!4fWq8"j5'||iR)FE4˚NiR@͈s`2렀ig&nA.% 9,#X+žrY\h/ %=cJ``o4ƓGT9 +\R̽OEZ[9ixDBHv;uzsKꯅZl ,g\!di<7KIo`=ʬ8N*g6~ǀ~Sn?1Dyc2I~9rvE?mT"T51r 1Vaī]hy.]>b03x +!Em +6ff iTܚ^WI-QCPfd%ĚKImb$s\7%FYӚ%9?WHg֚On/<*g^f\Rf{S X- ׯ݂Zy$5ۚϝcA'b#WQ= ᢩ9$=EfiA$FAeY57FY ʠi)>*Orkכd֭\qb./]k"r٤5h'~O,OqrkW,&Ǐ C a)(T*2J*m2OY`|R.&_ +%[s~?;Ŝ + 5깙z-K>h.\*Ke:i,$7'( q3>Mpbp[{3i||8~N ,ܠyev[>r|ń0 +Q8 tA9x9 Q DžP{@-Y1>WF  c=5.Ti1>Id?NwЋqO^kB10G +N'MεP&)&] >1'3ބǵP+sg[;M}AZq `pv *.KLr7G*GA[⟚K\݄U&.MPn>I ^=*%}IpR>.qΑf0F0Vby' R9?G7MOP]v@4?Ge&؉kjn^b D($0^8ph0ʑq9EЙ;3[u"^*bˉ|Ͳy{+ɒNfVefq(!Yx| =/ HxĩNwH?.ulc+1'cN'm\'J>1%bΩd9bޱr[vpMONXT+/) +bۼRy2@h#.#oHeSxܩ<<ޚ=rN*wt֪u> R§ {_ Oz|0.vsQܘ>Zu'wc'nspyEGMn3f<%C#G޷N =#L…J>؈* |U&BѲѳVM5aoͤqU^v0U^uRZA͟ +x9-7o(t/%!6i`e*ͣW$רXJ|6qD/51XnISLN&4S2#EL1WVm2͋I3[7sc /P##8 ?'qOs%v^L;4}Α~_tzo#fy/RNR77^Inݚr)UNZrq!@ H?9Š>Z>cwlo~@'"x؁B%^*|C*`^1άY竬\[$ + ^h'ᥨ,voM:R}PxOW/{kb/psQ6y*Ӝ_ vy3#(IUCsP 5/ 7f>/#=x)_Oqup=Z/a("tOs¹Zn](,k=*_^nCMqjur;7o1T24^/ l eWӱe&|Rso14n>+ ^ܧ{~\ 'l˖ך}ܤW ˼6|ϜMYQ3i٣lFɯ , wY_VΩcbD˦jZG: + u/pn^Gfac}QXe i[ƇTx)%it8K^oڙ;B\U bCh?/3rOsN:Oq!\#tc_E,[Χ9?.pdm9-/+ͷ_4'ζ>S4xEIʳڿv|>ZT^|_/Gϊ8pcUazƁʁz/KqLٞ2T-§PơQTՊ4I4?-n$!{~I8.a7YVxnRnbHJ9|{6Mx#Xye1v0'Z9ϝ~|]q_!Cv&52.ϫ i*/>dvPU’M#r؊J}ɸ9LK틒<",/=Xo1Qiߛj|mZ)=8g ~Qe댣;HR^~k^LbkMpq" őC'&+E/%e|#3&j" +PO`^/L*o<3~m9!@*WġUBY+ %Sbޓb >¸"X6ܳjsg(]̮-OgB4'|\WS~垚da֩^ +M~mDm?ၘvJy,/p[5"22Gv*g4|܏n1?XT^JXϨqMnkyj|p?97ivrٌv8 +xqGƑpSCRK/.<|yyƥګYD啉Ǟn[pN/dǥr/ +ݸK'SZˀʮ9UzKX SٗLtO,MGʤmt8iyü yUN얉쑹rub\qwq55qDzfl pN&E.dYw8 Oi~#}䖔E̟4!1} bå1wi +WpkEE>_B)ܖ8/͟oaJ{^uu)>EM?;Gk+gH{&a~1dž!>W_ ";{[^ڻȲ|"⼔Q+lg-LJ 2n ~wJF;0q dx/i/6Yب>8'%R3sqplM R"t#oO'OzĖb~()'%oJ8 +ǵ]ep_w,=%V";E/bϫ_=TpȐOb~{ё.[ yT#?MdFb)弆TzLӜQW㪹nɧ9&H`zw8HV>Wp + 'OoŬp2~%Y>0]Elj,rtSp[y#EW3pfwy|]f߾F ݎ^lWJ~ҟR +~ky*\EjVQ%qvˎ$9uO[pk8 ʎb٘d9=Wٚ- 5Nͧ߻Piw4;7SMIol~7h\y+&̓ė9'Diy|ibZyq"eQ$.M?-+ J~;8g ^,%,&4_?>IKƴ-ML+((NW;GZ+?ʋ)u{{u>=.G&?ز| ?sDu,Gm!KaD{(Kv9Jֳ("Uc+. G5'|\.J@Э,Ղ g\r(7%%?|gE +7J*8?>"7e5[?NI D`&O+֊>o}\,G_!%+VZgq?z]9+$?JWq@扱<;`͗IxE1~:Rl , 6ǬSE|!D0;$hz ;('r֜?}xVY„[r +!h1hp+د i2 鐂 ԚjCdr?#emV͒s[}EvQIueV gP)jF^މ~dhMKAy'8^|k=5> +GNۦ6~cQ'd/xfL=Um9-2"m}-P9rlKUOPit4-Hrry4'喩B)E }qǚ!?s3E_M#'Ͷoz3O?]O;.kКPUw=݋,i6h|\U[~kN+9Pm ɨ;wϋei9\e:BŴ)-~Neoߍ/Z̼kM9 a{$ۼ >/HӖnwx%~Z9>je8JՋ;]w={q)Ƶw=$n'(qRyv^jH{P,Z0P~ma?hꕽܴ:xZ7[|iBL,/ٖ31O00ϖ!B9E1Ov[,ǀ0Too׳rumkNN /{eO2[f +r#]wJƌKB8IAwߊ`̞pDƥTƧC'܋=N_ ڻô ྑJ +W97.e2?VD'Mj9\̫5ݻ[e\Gop" h7U.gr, 2h(/񒫝?hܪܓ" qܲR.̝RSs=(#> ݾ5a)l~3dSXLڳ + 5wcpOuZL,*gJ,j^W=.+OhMzFxp 4OyoHOvȞٚp6w~]yǡYxd͕iHw"~`Xyc#cw09.*/nj-$grTn>?zJ!Y^m>Ѐ , 1 ]RwMKӃVЛ!ae2󜘋Oo2,MAѾ5!D aJߚ>.sA58>޲%j 4o qZyI (hysH 2 oN{rrIqW6s[^&~SW{r* +o74UV~]E9'[3ut6T +-TO*UOӢ,. ؎Bf_ThM{wjJ݆f{_~9똢^CLQY۹rʬ>x/eV&Q3;EIB!KL#?JQ~Xޚ^ĞT$axOG-A xF&v/H)0jrREm?TwU\V*[iN8.Zx4X퇩|/%\|P_}`,T.';+VpӋp#9NK|`1IAC,<'R|bm DS:|}Ik!p?NJhQ@/ag@߅&NggKAmB%=W6,Cm§}4^O4riRy(~q&GܯEoA+|㪿?=w?x/{ bxclI<{ IP"%9U+%=? ?aqєWX'W(L9J@+'/c/C'2\R&]c".nq*#e|Hw%Z'2.*)}c~T/9jO8ͿvPm 3xXXsi;PMHP'jkϗ0sem3*}d\z۾&8<y+'LVr8RʥpkM˫+KQ[~kBm֕7-f(g;|( ոu}udv/͟h߇f8G6=i` UXq)Oy̫<vql.?_qik$Y2RķܕȈo}P??MxÑgcz!Vux)K@b͆:^cjY w(҄“  _o迎-ᷣ=(チɯYyrxX>J:R6hemP4Z1sM~kشg]$wpZXWޭVJY!4~p||I a 4&TpKQyC$vx{,촰&uPT֚{T|]V4[9,Tj֚_s (qi'ˡ~LZT^sȽ1Rۡ7C!eeIhBmMl"֖EAr4a5y)h Z㘝/P(1=R)Pj8d|]b>$0=!$tB_ʲc=~ƽH]8 d|@>up~܄GY90[lSwB 2Rg[ٸ[vpFV A9SU93-+A`6 ,vm)GW4}) 'Z971-l N[rH]6$9G%t8`奨4'OOqrOE<)l<'%i&j ++39ixglylyrW w9Nؾj^KGJsQn#{;\/,{ +Ų,{($A3OjRIõ[=glwG5\'vE\uJ`j"/gTihQ?K+Aчr"1nFt$3 U?:H1?V*~,)7d~hG R>-|+ Dy>N{fk[u"x(yKdWk_u'ćnGRnOY((ʉg8RnԖɲ?N[ޚAe)$ܔsO7=,ȯrlYg3#z=?{6]䌬=7j5'K\= ܖBmB>M<),|G¥bI򬄍B㟗Z0`[X8~Q/yt<.>zL~t}W@ B0Dk?T ǫ__IVH&f}SiWϏ [$cT!p$I 'c5? ,;Y͕,q9k\)w3d>&e`r)"S䒹Ԭ#,/ ' |rݲ2>K)@vnιՂq!gˢxSIrfɲ7߁8гTX[~/Z"J4,UߌIUsn,~xE\ -]4nrCa5+7r hE趤9bplI>+ι5"v[ C意*d~ e&D^{8 [ye'h'9NMY ~FʋJx$.\sBh} .'u{2_8fCz]<#_̚sx?M;{6M- |ܢ\^LsSl&; ^D'AHVbݶV+wYq.L@A\ؑNH!f7ADK"^tmקܧ;;G}TmBxwx2|Om03yUʻX GMm>8KP/S?4*C̓d)VAj_Ό~!)Ӕ̔…Ute_ -qm@^ؙ_>v~ JjLp͘)h 5MA/xa5ۏBrg2kV<ЎP_;=bpqJh!p;OU#/WU#$>Nj@5i& U觲 /\6cfbq2)akH!_ _Fi M뫑C +^av Er b|.]Z3gK-v nz6g^B+i8g]ctBn<7뗳z6{aMGHN + ҎN_}mtd>A  ;Kt_~}.B}JL]iU6JAG/-Ypq~-Q mn Phxʢ@ES'YWWu/ "%2Gο;z _igeZ,v"_e!=̰F1;rJ27S8QP8V5=C &7r#Vm|] e;/(?KAF4j +˨=xyWckߔ^zf$+f +B6w8^.jqF? nzۆX|(XP=%]i FC {TNT +,W)mL7?3nxht9O]h&SǛ #?pTOzNٰ$ߣSY4|~M"wiǂI CΰJ sZAٯ_Sgp_!QlB,l2p ov̌$,;\=e:c:T +)"3c؛}%V p-2͖|^) +]e !p{c}&|=gs3(]T'iF qrO+}GvE[tSDoNCRqɒiVXyޯF[r@Å/ACoTB_GR^qrI'HvdC9 Ӥ%t˧"~hYU1?ڠ߁JLjG5$u~b~?g2[pEms$VyU! + HN!o[ЛFnԏ+b~])/7›_/C]ό@f'FM;>AUI;ӥҺ%?:OUW"1*; -R2>9vӪIQ (E/A]2(4l2do>~8 +%h? ӻKhA1DR,%+*$gդgk+Jv&Kkx3 PJ{Ӄl'ʤt2i\x1ogKMMhxWxA _3W\?Dl>Mg&< ŕ4",Pnp/(ϯ(ci|]}e>^<;u,M]~9M ,C-9(<`i5Jqۤa+v=.yO &7>|@$TBO{NB$7${ 'Zs8y5RQ(l^ÕRզY2{"4/LkZ a-̷'Z5BlCoD㥜a߈R߉5S-mWaK> 3F0!\}M rw\_0z#Br=5o*Njh| ogI?5҅J>8o/pQ΅|xb&g%lڋ{fFM@2W[[I3!7lݙEٝEgs&wIp \dV/&/ _-8Mxx?2h,XG$2pg hT5mMI]2/ΦJȴ+ qf7Ǧ6 A#2s*ߐoUjg.% ij &^G#%ėGSA%dƯLlR'`k arK?pӹ5nFI8j)gLAT?3!eB] L`#G9f?\C Op$A\LP1~̹4Dҳ T_bRpE&AY+&sJ9n :M +\|(\X?3L7L.r-./h;aKS^AW?2?gpNBM9ijC3y%܈8 WMW6_b#_$wQ[& +="ܚ%ak8i[gzRr+'TT^a4\O!K{Q 7Y`lW.O'7#6gыr*SK4ej1aKB.^NZ\չ2E@#~IBYI+@rF.8kn(MxW_-E'7b>+͎GxF?=DqQ"Ǖ߆Qx]\UGI䃰~%uteDmQw5Y[mSZK$ǯX Fx/p~ʘ1Xn2G_FY5"E2O^|Ae}Ɵ=W sC5qr\\nK♰u ."T c_;l/;yN]9%qm@ey+eAr?4l ?~>M_-~ {#Ä}Od!JQ*(jyПe|LVvsg%,Re¹ v= S:'3r&~0_-Eh;wT;S +5? Br Cq]ͰϽDmzxPdZ<wԩȈ6hME-NxOťK)\[iՄwFWq~bµd867 )9ɬYXoM) #u}"ܾ?Ac6u8U%TDP̙ˏ\3؜',\M)ӕ/q?pzOeo_Ȍ&)bEG8kj[ە1Hx;lEW'"$z4 /TN޵[:.!]W:IemqXq2$6ձ +P .HLoyldt#V +o6\InOk?GD )@`032UH@֎U)!{Bf nJKOfp[.oh ҕ9Mi|~@L>^x +a#n{5)L }`(d3ꅦHz]zJaD-Z 'N_ Pae1rbeQ!51ެ0DA#3ZxX=?|'ōr ^\qk"j- OiNj;e"T81?O6i[[Lv0yx_LM@$qW/5M(fޚ@8rFQɌV3[?2JXp/pcM^;MjtWdzXE WtL[09bp$2󩅦=i^{BPp鑌actJs/sЫՓQn\֡t 4|~rnrOi"Nظ1=Aǫ 76](Qj][К(Vk[eu%862lY^PBݟ ,f@akD +URh+*}ȚCQ)Jvizd.Xd獥x$:nRJav2W YfSR;|U= ,}flkxo &^Wztvjsӏ-L2gSH#ambh}7jV7nDUz9(DmfjSh.];# +@(Oڅ_.9vWt&ȍ5"g0+G+{˜U5+' *H@k+a^0/8ow]7*I̹"t X8od[^ $WgӚusLY֦(n +uki.Kwص^p72iMQY{#inc{ ۴Ѳ +[eEWY~ wisGp-3S iW +`6ՕOǨ-\ԭiA¥SfͬrJӫ(`Q+W'O*+Ct|b9nR$I׿6xMޅ\Dq.&7{ds6e./,Up㋹aMbGxPDKľ`NT ) kۇ#A]' *R7:%=Dc?k71pXd=E>_RW?pN}6#icKܿĹ",,.}~ERdq2Ę.^$3KIL jqyѣZDZi/WWjW( eiJycVx d8w|XXJ +qtK)+2h)3O\߽UiB׫rpvW?-:[ +4CsE.IY|O"OI!ORӱDݑ/nMQDEFҲUJccz;l +g)Uƭ_%nem+~ o"!zQW,js~?  W8n_cf24i3c,?ݶڴ⥱Z[C${ʜ6}"G[-"{~zqÛ͈IQڨc;vXXWm"xHɍMdKԨZ:F1&&t*=: yJᇃhLe_ rϋ@lZM!J3e#.0 f榊kxtzgڴW$Y42r랽m02۔=Š與+p*Vwc'j+;u[+P +CHIl[cFjLGhY8ԶE%D Ms^ +SVEYgn;M["]] v QXf$6%̤ZX7\"#9(''8DS%P6Er`j h"K/BVDlmSk6gl{tE< GsDhITn6pIN!nGJ[$ӆ,JINS&OSRn[ܪiPq#Unb>@BjځۺS0L(G>FV=P8~ٗ6!f Y+a#U &G Y摨+ ]2{̧ Z]&&3sJÏoxJi:^ޝF60#L?ۃ#=uOµ4-0tN0˼&FV.i&aCqPj0 2d~{ +uj&'#6)6tlOj4nC]UZ\i&sq +|GOjtlf[]J(*-,횲wl1{I؟&7Du'36\#>/!X,[ +%Y p"zk=pBRL87kxff5"'H^:mnaϝV}ດڅDkla9! ߻W-z%X*K`%wo3C-|R曔$Ნ"8ˢ0;,i'0>UR8BY)vݖљuz_ފZBXŽ7XP4 +aM˂̜%|Fٹ^Qث% +]rA~Z4r5<qrIO.qq 0c8Dz-PuzseDSk|=7jҕ˴Z)،7")D\+;^RCTFmۥ.ʚjQ{%-4V^֮i-(%27٠+^_rPb*ջ=5&IQo=9% Zea cUFgtMY4]ѸǛ\}&I ؼ 3N9 ²RM^-gSVNpsZhݺdBö_,}lKr+ )蝒!O|٣H2?Yp-(^ vΕޫoLjV&F>^u;QYFR +FS4Քz1zㆍ+nr/ؕ5Ʌ)MVl5'6cck}kyZdtA5֤]qH:REQ*ge\B8Fw%Y'4m#f6N%hYF>n ퟦR*|nsOW)Ij{H\4E3HKf<uL._X&b'q劤Ox/Q+OQ8 ?6  +27YDS7QTs3ͭV31X4E'Rt\9evߵe%XXs * |L>$|"G1O5[tI.!cgEo9ޣܶxܤ&x( &$rD^4p_]rHc))!As=|{i {צ-]d_YiR.A"hp˗蛚 o!_}Fr{xb+W?w{ ݁SPS?q㠇mM#JȚkuz?Wy?48[+Fy@t>U +.9j{9i,oƷE{uPx6}y4>!Cy]t֨m}2MZӆ-J<,޵h"i? 3;p"|Σg,2ΔDZ2H3&rmQl^C颚>3:#y7; "4Hoa|FB4qW?o^ Q]ծ!3Qמ$U,a7Z|rLb&':H&LVkxK&.MaOU)yB6h xsX n0 .BwP)0E"ی9^v%8Rm~kyi!s^$Dn0Ն-/ӀppQ9*xD+ԫ;7QVy{QM@o ԰M'"ُ"VuڀBǽ`=B,ӎ-rI-r66_@wi]u} dS'ـwf/]6qZ8ܘ#%K,+ o5nq@ݭN4M ff;RʌV1[>s/ab|W]-=P \jcoT S!6lyRf!ӽ +2eekxu~cғ؉ +M>e>nA G/˘IB`eE'fqptT,4|l:q/AwrdlF[_WD2cDwdth^ÉG !rk' +ht,qeF s'S4֨EЌPj(NusczaFm-črܧ;+91tspiC[L/MүW& XbuqI嫎Mb֧Y6cltR=ɋYB5׼jiU}6ET\4?!^-] 2oˋn +sp37^>^6x._)_kCB`͘{MU3͑j&qgj+9E=ݖEgWXz$sp X DihTf&Ol 9_]mfr†KS?)!}а/j3Z.'sM9d%9+Y`?b^ +4"EpgJSjM^f\ÛA%z_ f$DܬpX,A7ԱY&ixY/DGB6ǔRFnLv\>v" U?# +)2$#tWZ ʐ-ƨJ/0P1ߞ*M*B5Ɣ$-D솼i*{R5^gfMim$-INn@j&f0 +"Di/զYyTE݇?d)+߼+^[)VNak\ۃ Em#f\bl|p](\ W7q]Z#)E\ jVI84(0,لÊ2ܚeԟ<X֏~J? :*:L>^ a߆5m}w1{0;/qL>ľ񄅬f#Ђrب^42L) )Y9zrap2JJw7y`%d4bWh ]Ϧ؂ Q]fjk.\߭]E7oBn|A|0L=IzAo4j βO*ZX,76ɠ4a+羦mEJf!b?D7y<T~8%atW 0E;l)W +Đx&2PE{GfZ_!73&\~NyzEFYQd2:crb6eI%cE ;|y?=DFG_Z{vz$Ô9EVҬ*hxh|r^S2l¦o$!έcrgSL"7 FNMǥ]!txk80V 2\f3bLN$<>qpK/U!L>~.PANiIfU*QfW(X$f6 ;NsYN1ROVijo/-,`o=B3_qnjs![v6 Fa븧qq~R?tx2oU?tj_3t2cS8p +[ݶaUEJzH cxVYm0mggD!]4MwyK-;jˆv>´{Y~x0vr=:bߘ$L*ZR +NZW$ J5H倏k?LސoVnD 9܄D`00;ffq_NJs1bĿ*dDxSu?Eb7V3#Eo[94xavrvA"JDW0WH]Ag^ȻoIbG3Xk3:[IuԄ׸Jy5mR-3e[|C$5 )Zto;S ==Yg0fnΦ(YvJLRgVXiȓZcۓꭁ]ĂNduŋeK̙iC|Q!'(I 7uATE +Q/&o 5BbPJ_ +PGPs`@w%:4W3Vm~1QH4NwЉ|dnrrvY7,Z^fEz|Yߚ\--"<=7iV`[K?d" +o&|܆x{֤l? Rw9v1PrlF)I4Tx$$(#g$(VPLgV<ng_vY>#*> s#rH&|[y^fb2*D^i?t. 5A>ߜ*\)a¦v+u 3&1M }˦K˝+jQL2u2mb< @ipM=AK:;|~#2$OѤ^l{ndjyC+JZfc'k[2x}7==ij%bzGQtq{xrg*bn[ĝ -2㟵i.ϦrbkSdt7KM]} eJ VEaGM9(ԓ˽ufn +Yȕ{O1޵ivNYT Œ7%u!'Ue1qf 9>ĩ&0CP~[4ةզf7 +M1Ӈ&"7Mг#+8~6  J"V>nńo4廹Ϝ 3A^ۆ޾jJ>f,Jc/ }aN}ag=YG86Ġl/9!db[uP|D[;߁D/E]LZރHyL9Hb|l?Aur;~>)k\d '⦖quSrQv!g.sG;7a18~pswKCifAɔtXZm injY`*"Hٿ4ͦ#3Wl1X$3!{iBHͭRt{_RLfQAW/M3BZx}QNe>ko,zBԬIE5|v yf#Q)_a0 aΧ~| 0651@x]\X(Ι0Yq 5vo2pncxӨ߈zp#EPHjdܺYXʤ<[@ oe} &kƠ)FEbG%+Bw̱6a$G2 0"#>)]G|TAf)3aXˆ G.}i +I2xܴCr_. mum;ʴ0Uݹ Ĺ_+Z4U8^l">CE-j]xiW//#yNz ]eD#';A@6E2|~VټZqkT#EB|\Z-Swp`B3OOQAVLrd%t|,V+m8ͳqs?7dkn;!\i} n>#jAGK&C8dEo(%?';V~ +5nZ_s45ǀ3/uI&q_71*;?pŭ@v}0ɏ)b_Uawr]R>x,fZCn3.,UX=y+a*s0eD3T⠚SD:Y૖n" +o|ܰvYT^)T@`mv\]푣7uf͐pIP<-?A5'jUf:*đv.Jlc1mmN{ +o|DLƏp3EۤX=׆ϐ5U34SO +5p*5SzҝJFqj"eCRiԯ|%R4n6líZج64P]&FogEx_ +Q.jc*'jsAͮTͬgnF e]]%S4Zt"7U& W b;GP"8˧c>N 2L=_>!Y e/xj6◣@|9]EMI6AT ip4-KRC +ud&IȱZ,( d$J@`۫)]Ey"l]I_`-Ox%ۗE{OH3c B\ʠA"ZEaT+GLOdy O.jT*k& +.V_K\n(~E5o)>]PtT/X-3i+)kV]+VM_qe2a'\D̙$v_ŹUࡆݠQPۮ5C[]jP>'!.$6E]IM?a AߚEH2UXI/7R`뽽~߇-n9TQFe! hbP>^U[nEDfRi9J_efUۍ c%*22`^aH Ą JMayO~\Mj"y/ v[0P49mD)qo=C]6)?V{kAJ$н d'-6DmsM -R6W oTwό:7B~sZduf뉤 >7NVe]Kn-R-uPJ&x&୿|Gu,':I*0"+3 1[BF Wb]T/:4HZw??w팟G߽KM \C 7Hʷ +r- YЊWifA/2YN)&Y0.i_ 9ZAACj/` k֩}žO{[Nfҽ6Zi-r-Ss4x_$w2bPFl -bH#]eR[(ro|BvMOwJP ެ'*rU,}J +>RD;qi|sqg'=L7ܲ1s@9O_t~<٭+aĕ-Ei^9񎺳_>\Z Ë_r4v8UqxAӶH1$%@i$~ 4֢A,nʬ/,|?Mi.r? ԮaCC*'h3< "Ь߯ L”vi +wxޜ{'Q}?w Lnv'U_$Ϧ;$K(A +lߧڨ.^PrQ&6)`^|ӾƋ}3ׂ} +kRu}4Qm$QTsrmq"|ʪܲwrf٤p99l$7ym"Yb18Rb;R=4Sy-ƞc)s{Y憇np ]?B3U%r LA7|q0\{NWN.!(Lؤo/^%}-hwrsJpQLtD\@fgq smwi\|nFROCەR/Gg[%/C>(J.TgOu@վ,CE9hZn~d-S0jԷ~:vc߾/o~rgS0p fp$BMhO]?$JБ_&rcd4^[U <$7*fxPj +9z5y=E7_kq2}% wYZ9=crAL Kgs룅 p>Β\~rDxS] բA*0:LgH5Q. <%%N'Mm[us҃y Yl'׈wqk^(Aص;c깗˧!7@ Qݽn]lEߝͭºGB` +$@񩮜QIpߺߜ`tlZRٴ@ cȀ)?O1ݢ.HE 2(*i#CBFqYԓŽFͣ'$rc۪-]g>nHq,8RMjMMA%XC.+v)x?IBǗ4!f! F13 +^ +Dk)"E`OJa_f1v5i# 5uI;ZUEN4f:쾺-?q_] 39wFu}U +~8Lr9qcWK;|,˺7??5s]Ʒ.>ǜZrQme +(qxGTAkJc YAKpaP>n +Cy.`m[ˆ<U* IоI :E;5E4j[|5Z]Ψ\ +]67f1Q(a>}Ƃ_๔c˷j]u=\xقx[K^L_:291|w/\c6 reX.qv +u&N̽gVzZR Fs9,J^o>{UVI;/4|iqel +x]sz;~ +uz%Eb6עҚpX?)1G  *Ԏl^Hq0~hkFQ i>*W!{|[&ߥ9[)V&2&'5$^:IF;K7] JRbk p&^IGm)BN\K)^3iO'qaTCa~Ex p!I}BRx ;)w7 C {Tv:rqG+_i3fqU/hc +Vm%HN[JpV) Ҡ+K7j*iJBrHUm$4<^E!ΐY鱖,{&}qcҽZf~O" vcOjW=BaҢtBLar댰f&Q:\׀|fs|OjKKDUWn6nzmk qۦrx|PK[<3R:߇ܰH껡.W0bVxWl [Owt5$[Q+U}=ݯLeKn>MKaU'?j")e 48<|&Mk,k˄Xi*T=z\lv^0]eY2i-YIҒ6}Σi>c(3D룜9K}9w!yL[Sư۝HHKފ7NqfD gsB2ujQP]+f(VVEpo{UYgkğq~^y׹aSզ'(Gߤ@l$MgI*6kaKp]AWVG>rZ]C͹-=^[6EΥA7+axZ_W$F Qi`zyhT8o`80r~l6'!3UE$}4UWϯ xh6fÈ^|mn}]'7W$TBj„?-z蝆wn3|],LĺW?f>?}3 +=,AIt)XЌ +YRlO/:3,"Yg%mVKL޳Y^UPN6&yL'$0-ޠQgDy󞕂yyJavw <1Y}@b Zu -sޠAd&ܠ"ΦxFݎ7g_> +`z,___2/O_/eo__|O_ϫeOO???o;_[?_GFh:u/gӷ~ۼtz5-PO"rKpIޗ;܏E 蕓s嶈/MэpO`u aMV #Ȣ&EvEfOM:b;*Dy;fa4Ŷvx"!hX&FnglݐěDp'~:<Ӹ1.َ0uHQ\,SƧq9R4C[:MҠO9s:7}xCRD4 w]~v}7rz/bYjcGJH[& ++/1e9̟?BX'7ߺמss +i$(٬0^HBٴB.yciy|y6MuUc RTU@zi1>$\iAwE~Ҙg>ơqѲy6)Q:m %ZNx?ı*{2&BOTgOAvq'ț-~$G8`2 Ysb|(g~~‘ Dxa}LL`I,ɸy?=^0A%؂~&o s7Λ^F2vhUEA! zĴ.p}Ep83AW]e+%RM^ϋq5e$\J>OWN餟?"TpQQ#C" j%b|EV%fT Ov4wߗao "kxn*7߮``:͌繛e?0O4aɈ(ĒFOŸRb {/ƙ&|03GkG^?m7Kѫ?JƖ{<]WgseHyۮzx﬋f}onϷߴoQ [;f:S<#iqq੟5*J3O4ё|xoi~2C_Yq/3ݻT 1 ~%a1.j'VcRߌI('W(Q;>O:WG D|x'L/Hoiƭ?pտTh4i: O3ߙ"#o{~Uom&2qe"k9@>[ '6 0tOdPZey񀧶ܞKxّ/UZZ%qK\)EzU=qGNwvNj.…FϷ?[IoL\J9[qBu$St@í49.&)'eQOgV0TXa+YQa~j{YdI6ܧeE,'w!MkD2U怕 3zz5Q%Pyfr!(i2!6ʼn$9<^~kܕ&87G!uWZ ++p' +vou_Wۊxq ^y<^ 1\M9Nzg *Zjpm#ЯSN}1BmÅW1Q#SF[|\8}fqj'*0QZ5Hk"nlR8T_D(04k~~("D^!*A8jfݭ{mNSP>XP9E7qT4 ZjbV0B6?s4=z?vbھoYcPc,6t4*ð:CGE;,uBU䬓S}f n0#|#szTíE +ԪuaV'8<65qrB73qQ d'0Tbm"8Qŭj:&$C3F̓#Q e OHǙ|ܲ2 d vNjd\U6Q]f%o3]4M~%]ak6?n u1 fް+sM6w8xqp=p7nUuwM1|J1, #N ~ +ܺ{Y\m~ewVsu~vĵx{qL+Ot<^V >OÂ@XP(q8DYJF:C$J4;xϮDf5.$Fqq)qXuTcXp/MaxRClSM!-I2E]Jd]/ d5}>nۗv{N2$'}Pŋ8y&9prî~ސ2_QO+噌򓚜ƫ2ohVQA]]Š̄Kzmi^q`}&./~lǥ!ϗ?^3t4U.y8nzMP&:#[$ +)K:"uc뗳% =8,%L^»JTiYp*܍߆ubJx2ǂ&B"iH"gI!蓦|dzP +YX>[l uq_WxwpsZbX2MSGB/-NZX.!EVƷV;"juuNܴtq 7 +py/I^$c1\\tz9 oܚab+~jJك%kӭᨉ=wQ(~ExN;3GI&Œ3-fh?WšS{|NA_)Nq&Aitn2K4 7<<3 ǮHs48/Ҵ?D%] Bߘ[@(mJ_mr'"-gE̷^Z]_p(M`FcEs+ ϐ= Sgە8JQY2=*+Zf`.!Q +үSF}/gKXmk 5Q`;;R6QDܵq4n@BP OA}=ɜZ#U Zj;L"]8懯ښ n`!i9‡aچ@u^l =WV +?'p>;̌[DѤDQ|7i).̡unktW0)/m07n7t6D +M:}}ܩ(_ݯo"k.qߒڷ|x#4A'U6_Ҕh>Q("A#CKⰲ=#VӀ}4Rw*|#ЎS< MM SAO7^ y0#Bi cW Ѯ +ۋѿ =(Yl1w0yC]-3(x3(VfԬV>TDoQ,#.xh Sq~rPApo,SHq!;vNمkǕaIʰ 0^mt #XpW#oQDWѧתvNwb~D=ʱTی"MRAHqKar5$rBL|hQF*@S[(~niSRv78q=%Olda r&df(XiSCJAng?9'.~_pw\,p\PhF}/gs?ќS}~8㬸w+lN +S7bj?D8 +QNɸ{è8j%Mke?nʭwA1)opbMK▉'f///θp*y/s!)%s[s|w`@q8]V3p-;nȎ徭!s/A3brΛ%W>ڧ Ĺ5x޺ GlX6)"͆Y =ex:,}p[oEo߮,///^ы?(4)LPɱKe gZ %gr +COy{\Y+OA<YTFٓ Su1 I$!%G?>xCLI({fybCy62™7gO7M{%֪K:w?<5i$OŒ: jQbыкv cBdpST2W3wuXwƛgW>xg2O7ˋRLq\NZ*gD7qq$l#>*~?گPxQTZN{ZwpC|9y)bսj{299zY+'o;s&L^r_Y˒Ivw aN f: Y"ޟ!n,6`-dEDZ] y\\P"pI2 /b|RTmi׋ ((fX؊:44|in-σeTkk}([bCÛ{xo͑Lk$uB<DuYgO ܚd wD૲]*i`0q 1B"h:qp \ I 9ϳmӝ\~e/m,06{v5|?H,1krtÅ0lW=R`%UOᤈmmN츓Tfw w|xݍ*w"_ahFP)s@FG\B| *#hl`# N qdر"&Ιz$3jۯ~Hgqu1 mϐozeDDEmqI׫%^5s ZcC'g՚x!_ML!l5!ev6Omi{KRaxcnvdP^37Jvo#_sda7E#b] +5s]O};!7r&VDW^޽:rFv辀I{힡Rm矦w srV5~%a(Up[- U,= Xk̃}6S/!i_J8\[GĢbe吀bq$䉮XWYWFi3 ㌾S^XL@Yߵ>7:ilЛV{34J4 ~bhtm0{ W6NREv?אƒ=3M0"Xpp>pJu5JQ?MMd$H`Pv{7ڴZ&&TIyy=V9h+S"Nޯ]~|_Wzv7[,Шo; 5Kcq$uU`á]d҃Xvu2WSTQ?3Vڍ׍ljZ©^7y]8\c2wbj$y0)oF~`.$12&6 f @>@mpbRO_] =Ϋ =.WR% + xPE8>ztQj\})CM1PThB0lm9&]̰owAu@BFS# p4/˳Ϻ]6Ss}/T,3f=jpԊ=+"Jvx.‘*R +cHg+E-rTX܁*H2 c>C$ZZe-޻y{hbxmD˔ 1G Pq>zDj\p3s"1ްT^%yt6v@u@B>aؤS ^]UIY.i`3Ri;Dk)V 'zC]j 6z 7YcxlQp#b:mm3܅oR ]{aaЬxguL pNΗzW:!T*9նz?plF}#~ ޴k$c V̭ U='ټҁ5_[<wE8Ӣsn#_ر{B( *Gǐ]Y|)F\wzbL<7 Gͼ)8DZ=ϊ3 5[G8D QeϋNd's[?* ǁiֈkU bMm)qhϻ_t@8N o-ƬA}~!*\JkS=2v.jVT< 0[g|,J6B T0(pCXR?)?p0$H`p+V&n0_5'6 ۬~Y5џV7z)BH?WFN煱"Ը`HcsC(Rhk5(R8wANnLzMh :V. y .~2}q/MP lhMvûmzX#sa[$EЃX&+sy +U ]ap(nx4(6;џ9 ֯aT<ʰ5Vb HtG6f),f@Sd{ߦ^2 !e·81]Nܞ˾({G9#ӳ9^z`ܛ$˘;֮GP*!K(BV$BL̍ǀ:c <45 $}n0_5c.q٢f'J?ט]7q*'%?ׄY^^g)C\tM7ǪʱU}ip<̻q[.{tN'MW-OjSHtWNa(fRfm_fL>Hʪ1\v~!|=)X )!P0kH#>.m,JnYC˒2?O\*ib{/ݩ^OvPԸG-ֹv!g} p Ǵfzndh߿"xz8`d>fcX~'n{%)a;3R?,jFC91tow5*-a@*ȐB9)1DWF;_wj@'eAB@}k>ihzV ? "'\lϷȔ]]1A[VՉs3/Ǵ 9})I\.AP+ͅ2n"q9b,gXIq|gb;"%X`Oi =h6 &JtHbh"Zn#B|Ȧ~ZGL\/P$+ǎ=Vz=fz t &eV9?Wi@=WDj%FG(#})VC >g|ۦŃ͆N_x$x0Ss43}'u7z/~ZS[h%VJ\^,osJ4 Z$OiUm q'QNRJXYfmܰ +_Mg'1ȃiF_4ȧޣ)sW)ׯ?ɝ\lkC+Ԉ%N.!,Vt].S+'n\i䙓#hQ7c<|$x0SSQ6p,{R'wb4rɪwW%I k|ľJ2CcW߉;itQ9kRcD3pafaAh n26dR)F*Ħ3ڭsc]({jgм» іs攨\l<]SξYwV RmYl>#WȰbg OnÝ;5͚`ef0#Rl<9Vd)vUkƜ)ӁLu5- qxn.AW56 -$y{UN;v&JHٲe=@51u6r%{^^3+wT=/weMN*tWrV|Kt.XNOiz~$"ݮX-yz2 ^iGn,m#WJvѺsQAU ?Ol)̪BŒ.{Gi4"JEv`':fTt1qG:\Q28vlV^pOܖb)dSZqa.8h'<(is?tС9Qj_jopJ` o0]]Xυݹ9[N5m$1&8>"mIcGF3=WVr[ +Єv0E?ϋBüCK7AFّ&-E}F߷wzN6 D=^Μ`UUHjfkNiVue1p_]}:̙5(*~l > zZ '`>͑)4ٚJbywd*',kÛ[Fn =Vqմ3C@ +|.`(DeTwWI7]~.MWagE =2z˷_8uw'"||, s+Ѣ3ϲ.$y7Ǚ\()f8B oaW`rYK|rxzhMO.>3֜y%2uSk8x$ +!qj F#)rŎ5I:m_6*rK먫Rxa}lpKz'ٙvVs?,&d-bm>Zjݻwz[_`r6$\`Rm!V+O]ixb Xs-EO,o)orO\F͉F!6LRƾ,mcbcPG7clmzu)4;Yfg:%Ez +8i_C<%o=]^3gK~mzf0khe}y_221Zڮf KX'ABk mDon<&%I1g%JQEo_ۊcMyhBw{Z&>Hc%z6=Ȯ`ߜEIFBL +tj < xo#B@s(Xӹ#SmDDwnvn!0acЉ/u;h7FfhA"I=ͣ.'œ. _tQXe%邱˹V.rub?*:?UgM6#$n5@@Nlx#`@׆z,gm2[[*omv(4hv$&쏫kJt%{F3Ҋ黎b]o֜kwB}׌88yW5EC㯹iAcx-}zsH*H\Lt0xD{ir`FS(5p^nV$ߥr,_&z\rGV~Q?O?\dn,ۡ{6aD] .sc?g*w[}e ~EN>}տ҈Vז2ܲ*ɒ4Sot[tn#\ڃw.׵\ͭJg0XY7wh$]ym<)Ťщ3ze vy,S_i9R_l68l!yhJS_q=k5޾D7FŶԓğ' k0䪔C!sS)*|O:MY%ZmHl{)y^^{tāU#vy;;gVQG3OǁqLH/eG4r*&|^;tMH&ޗâ V8"zu ǃ%npD8DCC +#\蠷q,Aǝ( TL A*XhBJ4jm9&yZgîHAvE:֣󑤍zt]{Xw' R]xdڴ786Xğ=va_+CgS* Co;70`;IҌ&0A F*&5Ē h+S"yL QWaNfLv7')v}KXVSnls}fT3zL8{Sv-<EfGє#mC^wod^Wkв28#3WT8k벛8or]Vvɲ[ܦ-5/1 +l$}&MJۊ5Xl⇾74^Q<>Z[2AzG?Wmzh'aw}LC늣!s㚳 ܜ{E|Ce}էցox$6Ѵ3G3 jī?>6p.6c<%,A"y\ѷMa{{>YtD:SENgQ7_Jb]J^䜋#:D-Zo;ػX% ӡmӣEBswBwO[dk~n\ + ѩgBUxX?Xz!~W8yIO:;g@D5< ~z@+ ՙgjlOWeFi>[%A+S"1Vؖmt{ ^6YZ_;{aJQIfvq9D7 VlU=ix<:@pQ5l%eOWܔ +ܴrQol +0ѻӕiR+#1"Ć#iZu >qۀƯ=a 'z@ÓuZˇ- 024bU'o{Iimfr]*| ݖy];meL&0Tib޷ t +NLi[ + v}ӹH\ ̽?Mk sդdEKJ`Oɧb4TVZ%Bb O잠vg$Jt9 ?">q[[4vDsWGf0wAҶYդ|XR,|BVAqHs\00 +*|/uyp^У#sPl47)Tje2_OuW\rOb)du)kӬq_W ̟u0`e/6LǪmqfG2]x֟oMS7G[Z [ U .]vRFJ W})gm +p\εH Rמ-$\=umsU}w\4OF:yԽ̲^D_XЦ05? ŷ +纮+<*HdRX$eRX&E/ER E'h=(.,f`'34 NnOaB]l(5szxm9wu1^C21n/&PI+tHXܸ&W/t}>P㚈 7gz3c5757|k&kMƴ7ȉTrKZOz,Sܹ.#CU~bK3#הH>=VA]{ox +) ϩOW-:و("HKy6)р?aM!JY뙴t30\@:D)ӂΤ)Yt[_5&~Ci9f)- +k7 !,LՄ{pN46|nA8#CQKK̗n}c/5֟I E<T\n6I̤ W~:}!MU/uRsp^YoFcDoD޶Xeӕhu)}9d9(A?O)RA`szt^wF&e8W/(/t}޹bЁ =?|>P?p' κyedR5]+w 4n;~{?8vJ m3j)Ub7d0K0# +>G5x_kД3 둼fˋTrU;1EE\TccVKQ\{n ="[Bބj\b2bksƝ!ƄDTFzQk1"Ti͵H\fWͿ0de>|,HN,wƠ g7a15^`P2Rܵ#dj7i|`}.٭mT&#[9x^ 0pźzFFzԋU㲚_DIbvw\wCK),0t`ܸ'tP|ᎢsCk\`XyRW u:]~9y`te"A$ & s7Mf~ _͞ 頞gboͤ3g( *+fZOsOt~%'eڲNԶK7cuINxG2mvJ6Ek $&juYyS +8^R,=Z|nܦ5 j dكWUiBJuŠëk\C`.ޤKeICǯÓ#uR56fƂyRgLy643x.]rLKPVZIÅy1X)EMQ`Ux&IPZa5}'EP!XOiff?'>J1  >K%sbۭTQ\d#~tj&t 8Ը6'ӆwnJgͿ4!\IO<,% E{/?aZ6H>CX nwR{XWIG;k.:0/\)}OTuW+VMw#'b;i5w0LHO-q`aCNDw@͡ W3!wuɘ1J|K(U + +6.ho؈Z.ԗ-_r^oR-xY1Λ8R7f9՞7RsB-6:>xH[szrbkNEr \ghJi7܀'oD-G YVi:%VV5!+"ySsk",!̱]=fu{ZōAkb]\@Ԯ +=@s:&QOƦqj_Hx+> 1m9U.0wb!T;ѹi/f؄3vݬ=A?_t1."T9<'fxy +\G,<*Na$YYcSll$VSN,6#i㓻,#0Ew\D5s3+NNOk6> T7-{o4l~szٹ^Dʴg3~[I|?"tѻA^&{SΣyͣcWVs}^sTF<2 ołH}H$xTqF;}`nm(tH[㶾誯n[oC۰=6qQ0&ķW_0]SU `pZAV2E>KͨqMLA41$6V)ohK;ƴơ|4@hFrkpd&ls·rC`t"[ˎ?tBz3$(-+#LEZe*9g^2\6UWR|5Ҹsӳ|1Θ14cPJQk1Yz?)v] <.\<`9 +~Mȩu*uڞ_;wmrWb +Y3u` dnǐ[ HHߟ*XK "/u\h"P<76Oйૹ(ùYXDX.E:hv+G? `)ƨ֝XW +m~)ΎVS#;)7mipؽO:43>ۺ ϣn]{b4ckΞMp>Üt#;{VM[.[!./#vrb灂˄rTXZtKz\%UuлߍjGGO~h8Rj˙ FHԿd0i͔>Z/ &vٺֱA1ꪽeRW,oU윍画Z޲@a8,,HRZ,hڃ>`/Pˆtli3,!pQaF,l'jfs*6]]RL!@>_=X2qύo\LKJH֞Ft1.ZQhRz5M5JNVkؠ=)o-3,E_k-z`YK ^Ը& Bq禡m粉TфCwڼsLijw-?XgܦvbW_؃_f&\Z-#?8DcQe[윐kцۍ')$ +޳"R19]r&ڪcDeVn(p蘁-g~ԋgNO-֘9OmؾpڜkԟiCu4M7iv^_Хbht^uҾ]4vQ'J,Z["Za`8>șr+f~E.|S߶QkbAk"aSmdK}83I柢r'y"Q9kÞI@~o_7W'Awb\Mzw~:B F6Ol[>Xbm˹tMM:WvW+s u7SKqj #|dN[L.t͞Rz[q hH;]H / u;~.y/fʤ4R +GޏVUb;fɸIutyȶ#k~>z?c[mqMhhisY`8 /u޻ i;Wp^ hѻDa[yO.& ..KmUOȸvmorC}>j(HDggw +XLdT,37y=+ xӌ w] =n*5lB$P]5Mr qO79͙,%ѡyܘ6Ѵ9񣙛[;hrU.+>ҧ C E׈]7<ӳ77mqtۮPSn'z\`Oˤblwǽ`fuG:5ӾEf|q}C!dM" b!4V[Eи:$6諛O2Mz^g^٬_Gȗ;7ZGa$bF ~L"2rj$:˄vjv_W;_HGEzNNh5zKk{ +^v[qƿ%tO`Ï1lRҍCs;s8A^7ID0/CJ36Z6w5V1W5J&#F< [^-]3ús7!ǍPG8o+\?4. +Wm.!S8+0#+< =)[OzƥmL9L}G]WnM%OۦY+[y6};^ʦ yU- h!+8-֕؏ ynxVnE. }^oΞ#NX~Nj6gꙕ ]ğ'X{>DT,. lU1TIk`o{&_a 塓C.\38QO^n-]짮u.;zо76cݗ8|%/Y wr"]WFG, XW91'۴G-[R}vUsT'{[˟_1>eOB&vdCsi;]ē_X?4MG 2U aY#E3kkĞVԢŢWݷ k4AX|QDݦ/gM肆VHGj˾HEyo;KH:!z.wpn'5!Ɠ͝^;6"bƛ-=n TU6-cpCa{|\诵Z;q'A^7ϢO=NWnMߤQ1Z`Kc)}bqZ#-Jsbhwֿ&ݦi:>zOj\c[k.^K D{׾$]Ꝙ s;6ιN2U +!w{b~ j"+|ps;Ou#@'7 X^%i!̑g- PL{5t!C)PZУv*J$ժߎo cf3z?b|`tYC8E>Kq`A^B74յHxOj1;evW{j!s뫱?W)O'ڈXVUĄE.Z9bU6J 8jjک[~UTV,SΒ 蛜 i wb';GZtcRfR9yB)HÔ8rdB"!P0xd$aAՎu +uhN۱ULQۦ̠2ha1i^Puev:ROƺRhR)Ch) Jo0_IWɉ4WYNFM<<`kcd~JH#eGA BWg)חGN޼E]UzUi.ԋ7DrI4)nא)=S;"AGM +pw,A0A +NN ͛lfD!$k/r~SF^ڴpզHkrI6U85l<wRB]5OB Dל):CHmKc{׾\ ij̴ZqQ: 7heM5Iٛ&VGǦB:VJ)mZ`XU"цIPDFgtĬ2gn8rnz.J( +Y5D ]}Yza)tIϤdz&@χJj\œ[N +Vv$ƴ~`H4ZeZX2DwBу~%Zp#nHǁ:$ѯ1hgN +="!G^iHhR^M}?ӃPzVu r +Mjhn_:ouiE!<93$_zgl(khE,C;sloK/=%zLjv8SEu}1߇۬ l٢rW2t$ӄ tܷ>gL\Բ8 ֈ`'h7cr4l;5ssh_zρ2uAF[ +c))N{̋k#6msk|Sl^RV +G#7ypy*2?fHG& +XWêO\,\ ih_meGޢ'#\ﮠ51-6#8VD&i7$ȫ7ƴ7fzcUz#I`rzͲ㪓Ltñ2P< =`; >l ^;Z{ y?ØѴ!qX^H,/U\ŎU[/Zxz6ѩcftVz8{R?/;>x}O׹a] n8V}Ehų-}\2Կ1\6 +bJoQD 󤁉4# IH@roQI/ bWL[zX뎖QWܴQ44`V{x"ihJ%"tP})ZӆYrb}Qd1>x\oШk ه/ Yۑ&)Gxda; CsF ЃV6wL,{2GH#ybnqBB;>^Vk+4]苚j4Gw&5ß뙝`fO0Btn̦Ш{myC{[$yބj\3Vqہq]$a(_8A0&ݴw G7\'^SxƇT I *"$@IB5M*?xHի*Ёs+< ?Iε CJ1VM衟oXč@c噀ֿ2%bsel-4Rwh} M]1f?2RC +=>?L\/5n<2$ȋ.*Nے{tʭio +Ż*H륨]Ҙ 'DHc?rޒ<3+薪lP" zIOm.'ecsCsz. \:j=Mt쮾RiP\ݤLPa~v5!"&| UxpZ#2> `{?@jPVѼFֿr߳UTdN4 Ͱa6+3_ǒw,NKS稘\Utㆦ`й%,*;US9wj=*!HA$i~?.nr~vX) [[`h7y2oR&Y\u*]`K/&_oy2=|x0yq}Մ^]#&\9znן1|[_//_կ__o/{?OOSw|O?/?ݿ__'֯|`7~g4s87xf~ +Y\BHtmi2|_L\2+kq_ ; [yx0S}C['zUJ,Q؈H :3'!JVIo j~5Mk>J>~cz94n&jfcq,&/뽬WQ4 =и{=R%vtٌ"$ ]5#.`Iw3 !~sSӍ+JY?b)EpKM.]k} (Aw2qvnATD`X'wzڲC!YEy>}"GޣBQ,\.5Q,n ;7?1cфdpڢsLε:)W%%#c Z_sŞI +.‘6SdZuR5o{FkЃA*F|Ԫv85j؄>xBM m њEpE:Cf EgȾyYY.".sO,ߜ/|d58Cpm ow]>Mq!(_2<UYO触 LWn-X.7ݎ[՘Yqjz:Rlϫv1v| /)g6eVHZTqHո04k 0B zW/, ҟk/l=*J|:)d=E5ת7;; ߎ,F4"8M)6&Fs~#s{5~'cNFK0ݬ+BXnVӽ|s-\QV;'E$ȋAĵ!nt0UO&~ VϿ7/*J`xh|t2A9rvէ&15ЫC?_@x(E*|u7֕B8_$o<6GZ=$'y ^Zq\ Bձ<4F+L<ͽ/jV [ 7bW]JC5 +6E9F3לrc`Sѩфѣy͘6lhQ3G-;S$5fkTeNŶS)lx9S &"ʼ3a^B/x6d |H\ApЃ{=Bڜ/`—CU8 +72|>7P7hVF_!Z}j7 }o Z!-磇ٿLOEN+sԼK :A6$~=n@srB=T`T߄[_4:-N@:716z륐f/uf[$qD|= wv.<С}0u]'Ík :ax%H1zRјB"~?5aK.޸%) +f7ځa\CI;;s v8'N9X3Ƒ' g 癍_,SAѸj[du" }#ׄuŊۉbZnn.UNmO3G>rG2J s:0qTJ 4|`ǐ%yէށ[~T#c~(` IJK !I|IyXKaY.wgDVB؎IU 3K@s)D69\Ѫd.M5s &|?Ĉ- ]^y^IUyw;3NF0sbu&m?_Pb;ŚĠn :J;vvrvӃZ;7] Jep;}bSis f4O$IͱVWfwjJ|YdɯM?+BwǗJ)tIV}` _<> `aUZSӍ&[S% !7Ki!fVC¸f~{qhn_ G!_X"Y0i97oj +=ôYƉt D7#7BRG~}fj89UO}Z0گܚ*pSO豽iKT)j>`˩X +9CT^['Bd}U(ڷH1EyURywڑe7nf|MP#/LK~#*CZfk? Ds-dp]l#XJѩȅ&"R;15(8WBGkܽ=ԇa8{rG"PP^%~СR$|.WSQ`hh3.- ݔ5wv4 semHb}AyY˭wPT0\^%IGa#tJn W9)BI2˗XQ[rYECSwUJ|+5nNGN^Jn'L|F: ͢Ia~?HErH/L{ A)T/U'gJ0>x-KjG'|E =5"^zAKZԸ洪hZ{4}1V>hݠx0y!ؐ6Ѵ9`4r굞BUb -j1E'S>.ObNvo^n9.ڱQ3{lI5(FD.bW*mb#i Hzi#?0sS~eXNuENU,iYM'^o{bLy^ RVjI FLVbwgBvbN*92Ku |oL Bj[⚺Q`)Xw +THԥtڰF<БVn`Xħsi|3('k^nXcϸ2iEfBvrH}RW"_Sz-FqmNz?qo0%T:H(Qk 9t]G:Ǥ@e[\+E+cS؍Lw0*(RK^ӔËT*7'%1JQJMC)"Q5. +=$ݾ4By5܉`ls+0zIwO i3 7 gzoX)DYoqNֻY!GL:`Y#$s1kXb!ZĸA(~V6'NfO3/ +#\k1Xw:ORχ%j_}jcP$랆ȍ`~Ԗ{'F#Q@׽cZ[ѻwUΑ/(f&ɯCI_v-p8+%qሬGFU+ГJv\J?W%QW7-O8֧E\-[$]x 6qC&twϟ/ǿ7x.SnL%``&_?j=O(3J?k`7{o ԝn%-h*KHLjm*7Xx<:OB)z0|KrvUv՗uƑװ{k`#R`IdRv)4e)J/J5_#4(璊5o^'Cq)sgjBoO>c,Қ1xzQhM |ދ  ii_`jw4ypj棁s BG%^mɕ7ʓ-߶zV]d&-r"Z,-z ]՚$fFe#[]Y{d6)N ]N/&"3e_d]ߟBCPe&` +J|5AgK݉jF+QRC=tʐԋ#Å0"; jo8 rk /*۝|P"D ~b)# p#4aiv#L-|ߔ1̬ 쩢bE]~RX^횷O 1hYI8my^RQ(e:$ȹ1"Wdi#;H;?/;Ξu/4-s۹0s+p&jlؚnl#6XU鞂!$jOu a SF; b]h4w3 ܔ'y15 ;9#$ȋƃTSQo4E-8G;Ǥf=#5멒t>VEhZ&-kCxb]NC̖K[L9$Q0[눮eWOs<,s5˲Vl ɥPXsⰭŖD'W;nK)nyꗖϺ9O)']ʧOouof6v8ėL:ظNr +^I]HŢ)JwL΢lX5 c-˜(>Ŏp_A7-1*|u;֥Bn$OTw.K!6pS!YXX-ȂOWXw!w04n>̽t2g3nߌnVQ(Ŷ;O?WlƄ\i[Qzí_ 9a~cl,A;P}'X L6% ;f4iUAa*ϺKzX٤xf@oGJ-|>t?r㚐2_Ƀ#$&ǃ'I'tS F߁+$]z⎭e +jtLXhxcKZCEh [qMK! 90b\y p0XY$:OFC6#ZXm$Nz-3/\ܹ&c-\{|"ձ)~;l3Ո5HE9p;Lߖ.ht"rl$址xgЃBkT8q@[%D +> !џ}}G]Wn0ahWS~qw[:'~XgSJ&MЭuz߲Ss_: n)nAQlpMuήۖR4+d 9ZKGVd)0n*|sۯwnpVNQQNPnZ㸻X4!w뗂К`i(cI%r2ꖑd=nqy杈/33Ȁ6 >h,}DI@ (XI+֞W3)6ǂeٵ, # Fz yh"/f֐1$Z}m:DhGC=^y=sjus7)ȣU+hp$+ƃ2YzRw5FF/awקI3+0z2nght]U8;v׸ŕ|{'A^s7OW|OF 쨵EG$5!2 |W= [j+P{ԬOoz !tR'ZRF&ռAP3ήv]s:?mom Ѡta;ԭ*B%k$Ob Р `L6vDk-yss^kx۽T- d|_;-EӇ9J}c48Y2.,\K ;_; _4pI.U.裹E rַ\Wjg;*fum \;Ow1RqwHZzaRD(%v`]h*hꭦjrӛw3([|gցw bY#suuΑ[ٽ˹6XP䋻'5xN">vk1Lk4p%3т?L@0b?2<ĜIK!G![*4{)gZyntѵ2s/ʽG:\#8W<9N8G_慦Rp|y-$9m)v8y2dFpj + +N ~K/kVe+îo'CivȞa +g`}Py__`^!c۱D9/l}}C&Qko ԉàd(FzJL&ĶqoOޫ)n8[^' !lʇm{F7!C Ib4g-KN;Wfe1x_)|/|+p.3Y\;/)RTaV(7v\7^$yb8+rb#>ߪ8#ܼ}RMSR%jJAb$:6$e.Nz.Nєœv;8uЁ\K󵇾Hʗ8On*FmS^Jtcu0mW~έ1*x{ ŏD5#Q9Ž~nhHb w=ao@DU!jf#K]6\RZ.G[-Fit\Ztb sZ_[vFy=h(Zu7=7/W=( EyQYU +c7؏e5[~N1yXd±H%>u+?zӾ2m16/4ÍL*kJisz_^KG:'Z%f'^!kѓSӋre4۸;k}7O=ҷ_nú *~d_XvQSwfɨ)^2a].)fwnR5[Dy5x\ѳlB) @)v$ܤ"}7" ?=\וy= /vw{_)?i|GaŔAx +Wj:\BՔ+}g늈O]¯qj^hYM +CĦV|ivp|(@`CBmx1 (W5cILjƑk5'b,,AhAIP(*$VT+}G66tq<mbenpo/F&r΅T كW-MnvpP,o(>-սZfvg̀b1#J!qrҙSo5Eq)SQp UT| +i!pGoT`1$|5o-0u_&U "p,]jJZa?nCXP,ݭB6rX[7WT'Mog\Iqb`J;!jdW >-[[r6:(Vwg~.XLE)n+_-<5sEq H{~ٗHr Ӱ`' QrPsz0$:;k! +YvGbɠ4Ē<[1d+I8`L8Ҳ`q4'Z|tVuBj͸i +SQ/<˛yg;ܩY;bBnt@f+x/'CεA|mY+?M1ǿj#~ِn:23ߧp @ۑ +A:;,bDr뮏zEj嶕^ cz05Oρ `ʑR S1'uNb3^胩jO1sGal H +B ;vP-Lf9^8i9n ))6Кp?+Dus+iOfEQp*jV{1!\i]ݐ`ڵg1v^L;)bڏr5ᙖ{`тhKb '?HD-z=W/ɂr"~ 6 +|fTQDND"~'?(v8t焩S97TqH8H. I-qL z O (9|pwĜIC,{3Xm7o}q}Pπeo(9}Df{ +~ 'L8琝qyPZ8Kfp;`!ޛq#"t-ɧk~&if4¾(uf—;,٧D̊5 g)dZb8fO1:;#E6ڵ@:>E`߯T"1ûB94*h׻xÕb,Ÿ6YDb2g@m0ks!>2L^\;|>&Nfr$k4ka&hW>ތ׳srx-cz)X'_^쀋g.hcR]7a9Įkf%ӺfcWb>ceB:D(Vc ձ*>p6+| +:q~5$iB9v]WfRBVH4et%`;B^?3fG BSJ~%BTn0|arpē-7jU5c0?|%J9d}N<0>*zFk"~}T]՝EP< P{ +tTF}i㐅giy'܊zdXp,O _|hc I - 2wG/~/~:uelq"xq2p@Jaї)1}UڹvʷI0ԡ6#:X607ikc.뇯~@r?*,{}p\)E)&Ep_ׂ"U Ǒ睁zր-:ݮ$YpĚ^)`Fll|Lp#HnW +9t_\*!TOTu5P yHјc9@s\W +> H.]߹]mihw,LelSgSNQ"nIzPDb!POb^IG˅  +- ^K}@)Fw_CRVق" )lNTDJb<\hAL +\AnS#sdA0$"8Ig,Ҿg!}ۮ@;:9IzNN>W+2_Yȕ0r ,ry $[6uо''}NW̙wX8yEG΢x|ӝ*C;i =fxCrf +ۘeCl9ͼcݔSd~c*jXM.:! 0*,NW;<Ţ>u7_p[/o HĸqM*]\9&dJC_^Qa!z*}\ w]!εu1-bj⵹l…y')r뢼yfJ_{ ـy)<.͎q}];gC:[mۏaxשc Ǜ,KQOo_ +ӳq-XFSlYĘod聿Ov3ծ21eܚwlJh7cct{?/@e$NB({W$#D+ZsEޏ8 rs!'N |g*+XPmr'!F+/9(HB}Wp뻘P_x:;sA7ʰ3HAMwm +_*d^ɱmAGF{=8|cu;0;9<;0vOh3_/8#ykJA͏~޻⺴ e+q` _^iRtf`br}ygݦyi4(ߦVȴ\x-v Nen=܄OM{4t~Wҽ:;Q^9t^Qrs!N1J4З]XNs꭪Z2F[QCᓠs0}hCjs!9B7 ג=D )B/8 j,R=é!w"wTF]r(w"It&i ԆL:ͅx|;<~Lslzv= 2u-% &?s.Nuw^?mu Gbe +2^R#i(Q=9 pȬO 9Koԇ;@]jQܶ'O4/Of_г||;[?ww_/?}ߦ__oY?>I}7_o!W?oo?ow^A[IۿB _XUTQZUթO4'S̒zDd8vl Y +}W!meo6k6(A6h05р'(>0Y{m(̲,hQHA,JY$67(qB'K=bU/ZiC/čݬۛ-^;DzbHvwMH">b/&KX (n.GRgsc 3w{8aX;!K*D u fJ!Tuc 1@!k뒜#1s K"/{8y7YB ++~y{-y1!k'[21rA .|M萍:GT㑪Ietvgj0t˕+dͼZm@Q^k1Ѐ~7:l^2|B|#)6S4ʼesJ'ѽM{4_/`єuY10v$'P{[UNgbwG X-+WGT01Eվ]>"rshHnDDLH,+A'] SL4E2w5y.t/6-.F_8_^c1-ƚzK B|A#VbK4/VTr,"jcmCƗXI2qLF< gnaSS$L 3|vx=ӱ364A03~&Dev jirWe;{.= M՘΍ ^k:șxhYꝫܠ?MBruh0:ͅȉ>&cs=/qXSk{嗳>!RNIőhX M* 9x^ztO;G?+~Y~krlzoGc}xlkYG~2G_ ?S|7OfٕZt{[ڣгiȲ$SrpAdPuILmA@XDR:ͅ{W:׶GdT5ƗI+:㩋euPΊµ ٲ=oek%ܑxK!)G8wGtᎏn|o{:R')ʼ;IgqMJ63,/W01ޝqW:qb:SKԆcR*7/c] +Dj1/Kh;8}'&͎J_G۠o JtV:_&C[YHε?eL'2h~w@K3">4VJP Eo  ! !&'DXutFu'^WewYUW{25YSIymLvF0 =zOEuuVF^WeK˄=Ds l_Ο3r +| d7 Uԟ-b"Y`{>"VLs"RյB[ʰmao5ˬxʋ.xn" L!fFS^#'&21?d]f~PBjc/&ͫÖ kob""΍klbDMK!0r2(nn98 anw!pez5r9C6  s-SVTn\dKl^[G'͛ULwDd5Fȫk~mo<T:閸X eB+ɉ+aenj H x"V9ī;;|dm &;(}s^_LQܾz6/6d yarC:k3脜k DC ,z"_/7npüi^[-f$^[D19 _[FYZ2H?W[ݭ$.SdoU8e/g1#G10N!a~Q;ţ:GJk@<*z yM>ī4&3Ѱw#:٧+8̅6zM;NX&'\ٕ_ )1Et!q(-0 7:%IԾ*2<>sa?&oQr̕ `!8%:*)#h^붲:7@ͫL3L &|2qUM,QN&sFӊ,`+yD$àdbmun!\\[Y +[=MXҀ,lw P-X'4W韨`23'x&Mkё=Ȟ, 9G5T``{5CPǴjF؝LX8Ḻ83@F 54!@:Ltd'DN/&.7HroKN2m̅+|J#lptIctpL1׌Y'0&fKdL$0)cmל0T~{C,,7kg3c +ڈ[}Ir{u:Ǜ?b[a/iC+")ƈjoͅ)D{ KX +ĀjQh^Wͻͩj[i^5B)%}UoYLucG`r\lvѩ/h퀨{m_5=OLuhGj@" ;R(mM=+Ӟ0vDNf񻊿^MPƽZDv&)X%:guva`>keV4yuh*GbQ]|~O͋@x}_BMdB"&-bLq#Kؾ@""~Fd)}պLMdBfP< 9@* 5 ܑLNV#H,@)9jݑ1Yxm_5. QT]j@ajq-wDN:.3"HHUtN@>W^`F^kODt@C513EsRuMА:ɉ0b+D 3U- ޸Zс%Wۭ%g46r"!b:,9^jqdkdBMD0G!&QxB\05Jf@"x&AA8Kᾗ%J%YΡDھ!!QSDS>@m_l +a~j,P<)<}Y䢓;yr6 -rs48%;pebM+R ,6m&3{S.ZwUU ΰ7h3y۩}UYXz&AlE!'ӮŇx%EY 0P,mM"Dx1׃}yUEqP$;8ɉ@oKvVb,mjmXxF1m*x!wD:13LH~'r"=/Pž7t+`x~qJ[ds +#5u@ٰZQɊ{eOa%ܒ۳PA>ցKoכ ?pe3ؼjCk]3Eɉʕolh24Bkym_g5gN* iֺ ͠\UZRwYs9S0Nas-1-64qE޻3ٮ}՟ՒBMT1sbD$1GuUZCdAwV;xb>@z. 4BK;OK7@: +yq$n.Gm7GI}43-tCx}_ kLKEZ0Ɇ}]P,)vs7Gm7! NvSv&(zH3UtՆCx&jLN-ޠ+qhay$xm_)6źPtz:hN@j^EWm8g\D`X6muھSlB&BɎEOH]PF,p)DM̅ %gJ ypky @p1 B+l\C͞|@yq[+5A^xؗ~lkvsN]ާTviG?B!{vT\(m{6W=( w. ҅wbK=U|αg>c!ӣRtC CyMPbRv|W +' PvST m7;=bטd&bCYq,4oqzDؖSVH.mś1t?sz[ OVCozǁhHYչ^"qE\DmL6(Nyկ1 09֕( +_"/he/nC@kcMDU4Aѐ`|[κgm5Hȉmon+E^|L@YھhjBMtю$7*m;+ǞktLNۊ؟^tk]PmMvxtj^U-(Ǟk3-9Q}|ȳ OryկBMp +n4",<ܸ7!Ǟj7DMi-jk< .d!%*Tख)#ӽf5뇷PG f 49\ ;6_: =cԌ$6#I RWs#W|41b׼Zzm_ Q1Sc\lZk*mΌ =@b"'HF/"`ƪ&fzUR&@1_Ȳ'{|y6 + C?')2< Ex K6(fjd+buێ6Ln^E =>darc4,Ŋf k `o^ uؼb۸3C?8ژ1VdE⦹6Yzm^u 5SS8&5 ym^EmgPi+nicy9?51'XQq +g>]ͅzr2/vV,ИO v'^WEQUMm.9yl_EL=sBN@_Al c7"ھjmp&4- F/dWs;Z-P?XjH)*' FCyf}RLM@.سiWsfxP9m2Tdna+Ab h(k #'1ts*bnC܌B=`5KB0R2Cc~02CXͫf&j JwҀ1WhTԼ +7P?j[eDK!im7qf}Uo_35ޚN% u0glr!cFRIIcB5}ՈLM 2It:\ݔp3ĄdlM\C2sb&0 Ҍ9p)^i4u9Wmfn-394m|+fRnھjm+&2pxmu9 Wmfn?: C +3iG"fyՄ}BMP zq߶i26ML1uCngǷb& j5YfqՀ{taew9ھx&(2 oGXAqׅj/2v"qO0"0kUp 0p &Cdtb~"3Nھj&mC\&/`oIÇg8k "3Lӄ>㿁IEiI[`f6p8Hz:&u䶠ULy&HADNq_tbmL*W<DV 5}!LyZ%g]`*&mHV$Hڿ9 AP!2yW0Q> 3R 2S*"mc <d#me&o-CFHM0X"#Z&dm׭ Rc;4}T1wH>7bD;i/`uGHM^AmLB)|SM ˑzHlv +ƮPkGjoFѾ}طS,o9H@)Ai )A=d_}~rL0rs@7$ d`z}V$. ! H.%7>} :>~ʞ[>8Vrsf HdߊM?N’Ik &Gr. +h?"t}p1#pTM"|lTe1Y<CU$vH\KJPTer:йOwPNJx0B`0` H0\;P^Xx@6RN_ͅSȉS7^mPKd`'S${^`qͩj c8G?kcǹ"N\Ŀa52Y"7 +kP%-4I&teb<jtx8ͫ綇!F_ŎɱS(0nDFgyl^Wk&>QySù!N\ĿQe39qe7gˑ1|SE^Wk&>]So ՒnܸͫգGxu#WOPjb +ħ&"o~|\W;3zb+:iGJ$q6`ͫQ-@4$8/q +0 j^wxkڶ53?$x\Gji[8{i¼G}ek]_!=tշyݎ-m ]?<~D`9%w ahջe,릶&NWϼL,zFzNn[$ޚ3;*ĭ4L +\Gjn_=ndS}z*Njݧ>#Ή&_a9}92G|e)뙷seFR\?;h +!Us9 5ڍ8 ;6,{&N(cﺩ'کI[f )PS]7!=:mtMumf1ǁj,~Ul-G\Mɝ|w r#=? ׳t:J={OAYWuE,}^-Z^ SSUP޸& b. ؽh$}#ͩjbW8 727&:qWom{C] OhtyLN,\6_Uor"*`0&1G4<&x:Eh3lskn9g_cYߛDMb^WOhyL-\9ɡy<49MA^iEMP Wܤ4Et!Լj~k LZ}hڤXbn"7"79ytFے傕`yBg_i>s1彶(<hxD&{a-2H󁩄TEƑ"ʘٛXv]ܻ#VVʩvaPkP WJ~DW WSGY"*r#HJ$\Et)Ůc#R$UTgAt#GU$KGN =DN-XqZERt;K=]Ha)ff"$جd=9bIJNޖ#&r_By”,'oc,$ދ.1D1a繜kEyE4pXemd!r.T.a ![_MNJˬmnnUƅtz>[z vą|.?v<Ń/N1IK8nwmK(R x66BNq]vmkh5Wrv{m_Rm{82GUW]W=Hsɉ7ج WāxƋ v2J#Հ\s=}U=Q85۾Lq|39q/x5{Wā KӋ΁kjj QڮjNK@ͫo9=ǨvDN>KqWā>ھt\15uCrgWd>UGu۵xۛ;8E⪖@ИBqzj˥&!lAn FǣYZ k:&\fiX&FBN1i*NкV"e}ۄBM,zCu1x8JWCmxg̾/ou1FMM&_@^WM+WDea 7663f߶1 #|.ըFIupLWmM;-S@<Ǩy3LWέU=`mZi4.vpv2 +g&j`C¾sPR*To!dV#?p>HW-H|t@/4*茸[4PC{m^5w&'X2ď0g[o^@o^W-XPy,/At@36L bɀ@^ls̃@[ /1Y/XʛR VY$KkiwA`*o#oJ2?;ju@^lQxqk^+GoQ!6&p;y"&'`9 Pȋ-zw|ڼj'o\pysGMܸ +=|'+y@.tr pʫ-z*Okw^WM+0|61w>AͫP 3BL0lr* yQEyV>G$ T ȷ=ps!> +pq# ٻ$d-({&2Z3+O[o{:uIȂ >/~װ,ߍr RkEG S+*w}8Iy,9`<,e]Wh˅枉ߜ6M Za\Gj͓+p,zOں!@xTEDj6s54А'Lcx&GNDb\p^5YŗgȲѤvβV[ܥ;-&t|(#rngSrg+K2pޖSf˘=>޹(,7# ץBGưĺ˘awifD|DbuӑX,hdL[bV1yM*td ?`)ud"x @dt$X,x]t$˿\ +if)6*%)Ю qx-DV(~ +pDiʢhM#+ڒzUes C$Mđ^i:5q Hr-=;sUrM&"8={9zSj_PC+LSN8Yd%*AdɕּKASZK"_QF*0 IGưLA؞=&y , zt/'XD@=| +w `rN 2d(, +w흰; ]J:pg?x3vZأ 'רlg""~vȲ*H54oa._F*H|C|P" ^C 67 +5O; H +ɱ!Ѯ kv/+[K$}Djޗ}4aOIT"e&ݔ"e+Jre0'yHcI^+RӲm92"EAjJR2uKMIZJ)iYKԑs,5%-k):r$R-eI[ISse׎c,yYKԖs"5%j)WJfT+5YKRu&`Zʭ6,IX+b򍅪dUd**b#YJN&BUr٠Ra'MiҲe9PjQr2>s"pbj2ScK3-P{JX’laGaC>H0枉ׇYn=e?Ec=qY\1.5rٻl年 oBJhR!'"֕MWൽP^ }=\B\Wڃ'~pw)?SQ1ԟhzhg> C.ѿ#}],ݳ=OSO=XMC>I _Eh9lF'DE6JCw;ΡbuG0XqS}ooEမKuv)W51J,0n/_J~(_Ɏbs￘H=ks!>0xn 9չJQ*hS|1uq'5…ڎ˹p`Ύg7 +zϒ ^n>iܹL>9zͅgWr NI=lc|GTr|ZcmCƗXwL;9'FDBqitahQ^]~w`&mff ׿YAs#F*Ƃ32W; nI@Ky@}^۟>- HQ̴1UId!*{Xwb]EXM 'qzTfeBdL.ƲQ>b^m}eUpUXOl*dq/; vb̜ iSonuYgn=Etv2;t~>*il>ZxoS <1^T =?ZX^Y2n=Ȱ.~*ՊC1;+;mSxfᨚL}38*n=`}چ⯣yT?s9qMq 6Lmځ{qWyjH@y#~3SN+'[6EIk,)}-:הFfSb bc6:^Yl}O{b*:?fnYiK x 1n2drE֒*"$+xoӬ9qM*ޅrvTJ?u'sz0g+(x>2Δۿ-YCy182-cv𱬛؎~ +R݁uW&j!y#bSŢ>RȦqV\Sڪ2 & ԃ||h*"ѷ#]:Y7+@zsĤovplwv2z fݹzͅnI`_ =`}ډ-$~3`m/f2}姑٢~1mc8HkZ0mKLVaܗ[i$wW;&:!ܻC\J;xp2qcZ`ohݙ u[j;ܟ2r!˟Gd6ax .5ؒ] + .pv6>|+m[}Srv6#I!BfGF%aqHoӻ~s_FWrˋeF qhv$s8 `dT6PH22qM婱zq6YwsnCѨ˭ [z)=mY\EjaTfl&O_y +uFe ד?Zu\o9ݫ;ZSχLοVnїA<30C*:kݖwq0LLe{O3WgY{L= wkL|ɔMF6%9xU2|ߙvY_l‰AWdK)ϊ~ώ-1vHU[7WĻm՗Ц5?bdF,,rߺ84iowԢƀ8 ᢩ,\,`y["v6Z|.5(Ik?cxց!$>F&~lTFCB^Ww]m9;qhnޖ_v) !)sT~E?$mMn xom3mcCjQ8Q>-8v ~Eذ`h}Ol r:JZ3.\zZ/񭉣goUZ1 a!}vΑ~bvd %?Yhn.GḷGxxtm0M0IoFdrNx㩀$W:$ej82:wrJ`45>ţ'ɟ~ٳC?zGBrao/C:ͅ`}95^aLUj? w". %L{ɷE{ptL*(GOQNr)ʼn_ߞ㜰jb1'w6P{(=&/,GP ,}bo9PX-^,?ѹHzF7~a $# F +J!b,ٴF\wE,f%YTcL|5۝Pw!2 =\.1؏>I5:mUf '}9ܴgi綳W)5YE¯T`1?&!dOƬ:痱#$L~HFG[_Kեy9-? "`bߠlnPЉC73eSDiJv*8uYNIРEVkI! ډN%QS7eQ2\-տtsڦKV|?X+e| ++ZF-:iش4I^IN:p+F_<8C␡уXk^5Pt2pu6?zmM]I"找cc3،ZQʯd\9%P`.f;3݌x3󡺁vYrX;9஦|?G99;>W>֯\bs*mg7 Ɛ)tX}Smn_Vfa+_﷘N"ٷ%Z ۃym.GtAGsm{ňl 6Â}v'Wt@JOACt-,6FCv>G6lhMCfV*2@Ez_AEwД969,S["H3K!$@AOb $F Ho1$+%T)fUfzhDa/Hr@FjcfZ–~$|ɆrEP_HN,, +8ֵێFn ֿ +b=VnMBL\|SqC:X +j\KE#`z79N.Gb^SK|;qwx\MοAB?+& +6D0bpg.Ӛ.Yo}'omk + sc׼[Ac>T;E]8'MgB\Дm$9+c# <ݫlsALP̭=/׍XM8 bDZ# v]g, !oE^P͵/2w"\r\}6L9SN5H)v~GIqKm?mWLLLNH9 +pSESJb' L,}ka"6v==y1ľ_3psraO9qU$%IϚ@6VbƼZ61\2 krQ0X[Gs|% +wNw+ g-HwȮK';ŢfĀ F$8w,guEٽZ+-k^eЂ.YAӰy|['h`}_fYīޗps@'.":kqs62T3ׄ_f27>-y8 s ;p89SII+ 肀lyH*? k)H'Cj`0Jn,e=P|8+ 3[WRO D@5Kv2"O|:?NkB'^SؓǹβMBjT{isT3]Z:^-DaYο(tq tѶN04. 2ŸmwQl\jMY?D-d32ˬp/$col쌙efrIw;[Ko4Y={kVu,%.uJa*Sӊ͟yffyY/ҹCy߈3"4 3蠕u Wgߟ5UZP ~ruvl7N|5D̖?2sIY?UA7Ӻ=?٢m6=uYBvm$nbT";^0;͝H}o8ݽQڝ"S,΅ģXa RL+H Vyx羂XYWW":6߃+x6 Vsn j%k30ݥy`̬G`2>4{]–ġ-98I! fԁ)\C1miǡ~I#̱RcMts=4O˒&LOvgXp;9Tگ@Z|QnhB7(gחƳ׭yag7w0nW;18ZV>4|L{Vcn#6="pB$iO/'Jی}' ڲ^9 "$GZ#S@ab¯Tw`S+GzE'ŔRaېϵ tMQ;!nZ4)[fh8Wŧݓ4|h8ށz rMa[|ȀzƁ2"w+b1>zIu0mCOz_/oj뛋{˳ߣu`3;Wrm;}B9vq-m(^A 8p,_u-Wkm^oO>35MtY 7ԹMAA'MyW}؂vUzbMRy+4;@"_& +G  #a#A2e)ڝJ*—ٿw s?yx:{&IoF&ޗ*:iHhX˭$p&.~ߩnNb9gG T|F 975wq0 +2ePˀůN-:X_[W;g_NtWT3_NNKl) )cBDkH 63wJLZO!Y-歹0Ls#6$>62%aGQPޞ;jb[v4OڭmAWH+Q%_U Ebf< ;^hM:Y{6xjex~8i%̬Y:,HGf}^mLmԤ/TY>+ Q?^IlC]9VWsަRno jN'wNsFP2hnL^VERcL6(h'^^sٚV#BGlM{nPX'^v2]t,1ʉcx_9{ee'qseIӫܠHҧ!O7Zt ]46c֎-];^W]E-d㹭LBր[\)Ȁ3!GWs#=y0hhڞi.l{lBSWyDm1w7ey$_}e79뱑(ЏD[ݝ?*;DXv$ewQAACFFZ༑ܩr$6A@r=߈e +v!L^@c"x4C@m0iRx_ג&A*fxKO^%Q *rhV8ʆюDF[RGҎ1v1s֒no%u\-( ,ag-; 8[UxGO0+ :k4ߗ)Kts}Ut#ZN◵LowNj?\Nf>u5+VR +{ +8u-LT59`?k6| tFŧ`+nV؍{E~ƍ?F!Ǻ񗻋 < ,{5vbwCuȴL[3[lV~j4GůTh|Lue *6zQmPr0c#cOqNOJpFfx}fZ\?y:uЉ:G>c܋\Sxnaa}{Hy멻?}xA+/7 /KfYk@G\;Sh_z/!C1Njڎxՙ'b4? {`jܾi4OhJ5_ahZX{ +7D1cBƷ?>zgh6qxIoI}MaOHhQ2*M +r|5yOnCOۍ5T@=u'v[11gkvD\ gGزH8NT?y!s-gCȪxUG+oR`  Nrt-+syz?ds=+D?gQ $f =oN8N޴ړ6cycMyhJf3NoղInpWW31h}oaؙ~gk~xWc"؉χ3w37^:iFwc;\ D$XL̎}?c]gDU^y)lG/ Fx:z}_urڣ٨FSTG(6d q0I.`ϻLW4"G`I?3FbZj[ɤiٝ2 jZV5.&ln9= 'ϺNZW~: +Mgzχ?JDiy#,+r'W߸xgyγ.%>kQ?DwN^R{fb+wܜ4q%͆& >6G Cgt`p zG *SgKv4`ttqDHЇ?S#sϙF4VhSwSwp|d-~pgl~w! /z 3fyWO33t?ǟ)D\>/ W XoH2y̑h.:Orh򆜬ʁ6Q%Վ}Ee:Hqe eP̜pܘD$sK74Um S,~fdn})B9;aӈ4=zj`RB)lvRB]4mRs9i?>$=ӥ̯uhJ+T՟`]_+8bQGSg6n^D|e]an=m b3x-_O]B\p'Y'9Jnhrfqڝg OΕ-~1_|)fz[Yl˪k94tr~1NaU 8O}rqossh +@((=&R0n>cA|`mLJܒ 15ߌJK͗.閳ΗE݆bu-?[sbt >4a3^3E6 ᢅE&g }VWAbWds؎*()6d`ðZ%m[\R=RJi%O$̂z+ʘU]LuV{ d~dOY@G7ӑB}nAv$<+PC Uss +a;$$,t=yvX sjo@"㊑wjw^v<2wloG4D38j oH#gFַ¡}Jeb-laY` V/M3NC2c)ib(ljTmYLSI7u :/&>'/`lsZ{dn5߼kڗEn@!Fʧ2Ci2Z~ %/ܴE0;n('^o-~fdn}iBg$p]ͳ+93%麆Hl|K2R[cGbĮɔ/YmSַw +(\t7ra'ڍ\ėXf0yudݢHCYn.6Ykv9̋|W6˵hQd \,;{yWmov1Kam[xt\;[V^@xLǴ*W"^˛;LzYs3dTElB2ۯ*Njv*_¢ufbഘ12eV +Q'^"=AُWd]|K5uBr̋L‹״fկ^}K*Х-GpŸ1ⵤOy@L,iC#NB3 ɑxN{2+|5'ϼj^i?w&}QuAa.A)AgJr>mC,aŢ>Y><l ,|BthYgU\P +43zvG\lÄ2/03mh9tҸcrR-^AXNL>pI-V+OFZF1A\MrzN/Do|h'ߺ]^6Em8CUCm^~kV|F^h <d|̹WȔC _;46s6:D*GA0e9G,1@~8X~'>qpf,۴Y$ӑ/)r2JsҥbmHDюsWPJ|zcY|_L#h`^'F ,pFX&wgް.SE;QC"l+s#ZnzvPf[ȭ2 ~A.2N7)S$ArB*?E GXפ֛tT߁/ k= )uTLgr^?[qm[3H!P/ƚq_qVA^Jמ'=dya؟A9]^T)}u{4jIv9NI͑ E\g!;:u8w||T2ZESgO)KlirTYGD-  =ټ$#}ώF o?շԤU{!KJL_fh:whK阥*ߢ[S~/C\iНp"e*殉hy4sm}t G.AzDtOoJ -٣wxˊlm>ĘrĆn̦nЙ[&w:5G (QGy7x~})yGt_5c/6?רv"oZ}yZv}2"iMp-\^!=g2 ʾbK4%u'CWwK!Y?-”Yrh7l[2ޠ4?_e'u{ŌĦX߭sǚ}\ǁ s$BzZ#)XW'"%[#YD1vU>/Egd4ÐjE?D8^:( tx:K#`*l宗^F =߇gRʥ\!{`1II]]mCIЎ{C!DX^ 1#!8@㟋]}IJ{8D"%Lz^FI,_9[b߇t Dx~},Ft\[ |-`-a^&Olfful$P%[2)E8Y{vJՠ+Cϡ)<4o=Ezձ/؃6 T&ʱ,n0V|3(beAwK9>N4x9>wx-y$zZKl߯e+ W|/õxܻwX:e=\vN=h+s:at]LN7fўϫwzf ّ_ x &f\qڅgQwYb22O<edF4:-!i)l7s ?pzp :,+<>\/t/MПZ|JYYe '?7swl~1yt7cO@˃CO'zt6,zdb)Oֺ-׵SF}r9w( +#LcJvl-~7R6'Pd}ǫmc)QÓ^ZΎr]ic +}BP?=u(w}}4Wm%| +?אg7NGnľ^kX3Gt]&Ez\| G)Ys\ĸ;^sA[B^"n?W"t7쨣)$P;t։C) s5za8ߙYł/V<[W쳝a* ؤ'< Znryegw@΢ +5ݏ.Cd?h/u7XCSKPPRkI.jȐ?W܀pxN&d{JR6BqPE:tw~Ǿ /$4EU1I7~;ORTG |^ g.?%,{8mH%Q~r3ۣ>qQ<'EB } q`n5MfFkդ+MõyM wz.EjCP~! uC2F.%`yXT6^ J w!KS+q`j Iv:og e^YZ^zS?)pqH'9 sF˴")eb4aNv?sg-*~ؑi| +#I=OyK`!Wf )l8cǁSv X:&gMO$opsZl_Q~9r2;E *$c3Iu.9?O`P_!/ +%ǚw*&RPLgAGq7#oxO ƞƷ{|Z8-Ybp80%IRK~%K BBN[UUD10+&Wt%M'0 +x•DΕAѡ#uDn"шj׺}\m Vpm0`~2}W,׷Ss}9nIE6~gU g`MLfD <9*#_4sF,%\FeTS=WTs$;Q4ZcUxbb1tdz\ +W[*#eߙ,&Yl[QtAPԘ>'Tm{EpxMh:'90"~@fAt04>/c'-xu׃wY +[ ij?`&y'A{&yK'mWn a̼j)4v6C='u?`p{ I^GRX'wis=0ĺDb, +7t$\%Nrۣʩ!Vv1l\ʰ@a8pmfec`5ᚆɳ*уCYR*ŋ#YAXkodrDu$GRWڈ~.j{潒"ݝ`|:rzK% u aHQU/C}ny"g(9)R" 'է0J!d~|b)(ND1|{u\&%b}Ч?z~XB^ k G2=t5s՘$ch}tqDNLL->@2spfƋ9ӆ#$\Xj%TrԓF +4}Pvnp" $5<( ,Շi^6B'ѓэM-oՋS$!I ,<0}4K<,>ļ+NHLCvSc28] C2.8{HB%JVg Db1'8(>AV<# YN$^򏆟"e{{-ho|x˛v=5aܭnȄ" 4]qu@ ߇h EAfZ%C)SzZB~rʮ5hG#VC;Mʹ&;׼=p063}"bË=[5ֿG;77|ډfsU70m&CInH~v܆lJrmuĭhM ^u a#hkx=^šA݈ )>* +ii)r$\+r4ў,I(k W, \ ,L}b-5`ghK"U΁H* + ϐP5f +굎;wu "`6scw=M^2ZگB2rתs0lq#{sR_6 }|*UD9 aډ8`襝be3b၏;bvgQV`ۑgDnu"!:yrr8ի_I2ÕWPnG<6ƶauDo6Ny%G) B +ӊ>Et4 3%]^z +bxVKx~m%4 AnlvGcٺ;cSQ (<$}v P=CiWj;4l`6}jte4iw,u!h]1;?^H攄4zu̶HY?T)^;?SdQ.r0mYnl3?QsFf؛^擯 +g+NHפHpA@6`"Gğ5AHûpM $pݝ.ܧ]XŌQj}a{yk30XCWxn3{쨹 C:{aG8yj꿃@c|p\x75v`73V +}T۲5* + d;b4g0DugSs\1@-Zh!yA$V]Nۛ0s?(]ypܧxb+H _DZwHz^={nd8s_?4h-biH;[v+ZZrcZiJ{@g-'ْ܋:yB`ƥjw3=C9Oha7hHݹw7azbP!5gY(_01zJ#x.r +?xkF>["xsb!5g `aJu4Dn)ɠd˩دu82`l.+8M06H͌yj 62]s6q2ҰK5YtA\Dfy#ec: +3" F[s#Y5mհz`Y(;Ѐg~p:q;3d~Pw`=惱0qSvЅ;]F 5v nk;R 3lqэ uPI\O7-<HٛE8G%ؗ极pr0:aݎ6# OO9Vmm:ʺ utv__bBm(}ӟpOzl.GhbҞgG CUt[w 4hnapk,iŞԽzA!,csyݺpѱ- Kv݈՛ 4 (sp]LD{"Y^ݬu!者M>@WnflrvO)xAL7?A^ޛI80Gƌڷ@+3}RpB[N#PP3j{ՐK"c@ƂP1|@ƌ逍dy'#0 L'fIXv>FȕQuXFwc}3-vFdR͙_!W[Q/qŽwe&.QuTSh>тK=m;p\\L51˽Nmqޣu_XɁԟM$ݿ+&CCYv&W +ߠ!V#%1B2Y@h;/ m n.<އ(u>:˵;uizwNLȉipFvN}k8S})ؓ 7pژ + c +"Lz[?bܓ[R2W>e!jR+rV5(&9g9:G7&v(vߘ@k\ )sz Vy\ՎYyYm{SmT,ݤ{vX0bYK=.@f0Y~8s2- ]7ֽp m^SmCgrG;7so] +thժ$JTAt!aeC#6`]}ptˊ.<\#.Sqú:"y 4-ɅPA1Oԥ*s "!$"@$ pE~Ha$A8!_`$nIhQ6Z0 ŝ7F*hA9j6<|ͷ0FS}dm$Y-+G:jM,6tQmTSekkĦL s˗y9~MmB/ |iFZ(V]z< 5e MM3}`FUXY57n|yg:ԇt1APh5Em<|K;>; +ڎ.LA3 ޗ] {z\AޖvÛʎ3KU'|ltnit&:Ƨwfߋ, u}ӴkYcEpؙ+~^ЂKCpԁyWHVܳZrs\qKgqla9􄄙{^&] 3es\q{CdN$yjGh B4OH5w{g\˷-{ɴ Ngj}s}Y:2Z`8\极2׾]tIvވM׬[3$`ln ߗukfH޳xPk35p!ک +a+ލJd:?{&.\-W˽ߞy6$BUAPx68 |L%9&/ƶE'P;KNRA |\,e{֠ Vy_dPP0 qy\ʼj3\O# HQ-q@܍ߣ,dk}0QS Qsz"7}dwAQV& ]G*&$˻ +UbycbTcqk{ \9+ + UbpvYC}nx>!TA}pieX ךG0rR}DcըZwXD\M(Q]~Z*tQ!edvN p" +y@}f0lT0Z9 3e3mz2jOB-Ķ4ДA_Z&jBOF\B@O}Xa2dB+8EM@#W!{  5mhz 'TMXO6WaNᱞ?ی8ГA_:`/'#US ˩lA_=Z7>~|Mo/d\ ں =V;,k'$q O,4ћsuhM1PAW*eePv@,0`k%5U&: ~la I1vҒm=n.mM+ݰ%qmi~ʍufEb#롷{{S!?4RIDkp3G\,W93V]a|`$ᷪ/vkt!e\y \ p_5F󛝕꡷ yT繳U̓4n c3N1hC+?r H2tnP"-0[)SYM`KkFέrp$GI`dэs4d޸X/-{%H'%5+9P1_9\'S˞8VbsA> V;kؿ~KsFg[=[*,y8ٹ/9Ň.1»RUU.1 :eIڝD£d}1Q) ݏaӗ}|wg5cAvz٣Sn}أl21p6x84C ues\a+dǨ3/^`#h% [lm況zΕLէ2 䏱X +qJ]:мP~.As*9TKMWTU]˒:g]lBǹƛE[  +g +,idt+Ų! "{]ׅ)NuTX4U +T.u,P8{6QOgEZ mOm$mJ֒;w̕c`heh -L:_׳RD$ozqx}|̒[ +KvwZ#E\-D`}q ,8ŊH۫kф0 FNq * [Lw( Q+7b1%oR +b6'sT,JLB5goUNGfpQ[tesy#:pۉIx^D'ťB&*0Rc'`vcB|3Ejf-ec0E h(TлlV ! VI М9C[f}1~, nPUb|6qpխX^'ܸ'op$crQٷ=[gi!_|0.C.Y{RTՂmš5Q.~YU66ab,Yeԗ^┇O+5DcA=e-fGcsȼikgU!Pc;&`̷i!-6SxQLj$H{r^O5'3BΝ9bp@S<`zKQ]?]ƺ_1&-lw|?ٸ`pf67E-KHI/\+(HEd󆧰VrkhP)t +Iwadq,{2W4yv89>pDK?[8c9opmZmK#ȃ1he09SUE3)ASp;/ & 7;m8b4smV9MBG^08+BJ-+Yc*2D")NW^E&<[&4)J\?I ye:;iVRpZK1?asMGZNi1vnqCOi+AQhזh8Zw~UifcFVjݕp*bvk*}-Q8,RU3ZgV ]!A]8b[l7V|dFb󢔢z/~E]JCg4j#&, +t aBX_nt{Qg!۵Pl.>wʫЎ%ܡZ\6Jtٝ/wdT8ٽCͮ /{918{#,lEwՎWnp"+2-U,Q..U~:`E, +}= ,wr|zu[op9)pk(E%Z=gۡQ("j4-IqTǾOU ߤ;B%R6xDz?deJ;/ +DK(x8xPat/wns2w9ᔆby0BF#Hw}[m)d5u)*g&A-\%EP٘lB87Dd>*4đOFgm e9Yd!.*rT(\1@L۝ (7AYnjE@ruA]+<,ok]#:hG4Ѻ(9P1;wQ2㺣f-=y.rS<jźR00E8}aѦ(mX}b8J;s=̎bҙt"/3ԼzԻ9xcU = STweN!zm}aUrC쑃*}w\l|X(V]ը3ÓN++lUf&)Pfas@& T,,bS"tK1#' " 9!+P;fST^6&)XDaz X87P*gi Tu֕ڷY~}<坧| \Rȓ/FOۍH|uR_ "[ s2Z!(eMhp4.8yh/vMuB~*|պ Jc=ZZZ0_1y%ME?/ۛlQ3&G\(uRTWsXl 4~uErF[tC(X"0<<(v:/D Y[3#? P$\\qkyxWC\_Zۣ ώ=F/h"RXʠxͱ;/ w1hi>ۦ7 %4׏wJ)F?X9s0z +{[3Lňprق A !%DGU`x_r&h|xu<&; /\v. Yh>l#)Zь`Y~2f/j]۾tN֒td@jq OV8p}%wV;#a1*l +5+Y!\cRQ˦Z9j/@uܮs݃r#0}2>n>k쇡g.^hxvG̭C'FY6{ߥeA{H2\$3s;w-4W2t|-hHnc\;ݣiq,ssPAY/):']_89mxHTNFv>6>T+eLn{L }lWeY@fR z b rE㛕P^H~j^1cĚnb,>W \LZJabyI/s=,Ѹ1PWeڋԑd"Խ1}4\ܨ^JJ؄vZ4_rd߲ +bHg9Ss|2Qʼ`嬟{宴F7v{A|O,!eOlpLvW@M\ +_ȗGad}(*b1F), \){LCHi6B*|պJts(m$\- +䍔ªAȡO\r˱*~n2C}Wb:PjXR뒉CF "h&*e%Lĭ,QkT`!B6kq!muLL{y#??Wp<A#>у ƫ1A5Xc(-?̩Nk%Dsqe@bY"o-݋nUtʈ*sT,pFln_Hĵh%yu.xJGֵgot"ә;%8vtT͍O61oZf;4T@se*$S5̡шjGRe%-U,@J8mAœTdmϦ4 qg +Q-$\DVL/,GhRPc kRظ.TOD.g +kR3UQ q۲B%!H SK.@ʋ("삈`jǷRvy%8[9C}5,8ug:I +?&MOTQxy}<7ۊ$\A1m% {.~H^ a7lHLܡ߰Y1g2'X,2Y,:}30/Xq|׶J`QF-`Y!oЙ ;Nc1HK=@ Ԏ^Sߥa*̺M?^ 2}4{.læd*D?D!!X: R2* P!BMtd6>kIf沐27ث<uS;֑L(ČȨ2ұe$fyV + YRGŹѵn[U0}v?6i\rAj7̀eLD"pg Cg0np~08n`(n/]7XCS8Q8_ EhB*E1B^v@n/-&^J]p'vh:#&ˠ;b{D" Ϧ s?6[_1(ҵґ="rSnܢ:`KN^M<uJv4j%aSQ'0d:6pW,'\lFʍ-Bg$nN^ETL>h+]7*l iM*yoqXɮ"e4wÅ3`reݹc[B`@tbMp%o` V-!"֩ +^%]D1 seb:TĠu=Cs +D뜅~> Qh/'pW|ֈWZte7dx dCw45XS c ZmFS>/&19\_;r{X{nl*3.Aы\pAa<ٳ{7}>ذ[Fp؂\i {<NbOI{uNWhAjZ3ٖ :v>A :jc%CZQڒy௖ʨscZ1>IöCZЀ,#6\#`Qd&_v2kcٳK@3Av/; w\O,ג{7.mObSŪ&c{ߧahDy7?:5Q`yCej.DIĘ=/@='kx^@W{M2c iC&,Sq%75sF +MQrIN%| ruX:5D𲽀`4:k+US "X͇|͜igfS\C frꉽk(<תWe{]&14;ܓqnj9Ҙ?̥8.&x8ZIO=Vr\]ʉ4^8+gs׀{ݢ?&=lB3˗ )/gTt<Cc!qd똻7ld%ǵEes ZXGhwǾ4*?*tOCh\;p^qB>`W01>|M(uc}gJ] 2c|8ǮW@]{. veJv%\͇+jhc|8ŮWljo[H~{/ڰ+Wj|-p/a8[>m@~c +Ltq&g@oeRn.;'0Ckj.Nj`ɸ2++WfTJ##nޱ0Q˽m8~/‰h^dU I>0q+%p ].߲n&R{ =q8HXE!BY=ZAgwjG>.>koݨE;DzNz`jЌ ݂.p0]x OfFcƃP>3Nq< y2 +-e{as0nA'S֗qrm)_rѕhj͓7gQbmaL1HbqkR5հ1W3kg98x^@:VS'1Vo04< 7 63`-)ߚn6~ЊCgp$ +,Bb?Bf%!<~UfA4ZVص, +Բm(H)nX _ߨM6[,`aawɡ+Oi9o,R~5+(QJ1;r yǶ഍mW\8墝[P8R,;p)lui+[+Xq7`yP(v]$`*b`b WAQ$V*izT("g)cꅛ r\ p,Wɐ)_"rBЕSdv]xe2(T,fYa/]T8?|\ٻh/?w͵:֫Y ëΔgڍiL>h-̻^Hkh){tlKlg87:`bzk'< +BN*}E#e7s +_nźR 9պ(tJO"WB 8Vc鰪-ٍ8&W  +|KVI"=_n/a|e~+jenϦ[-)IR"-"s2RS[ `g(*p2=KKm}o'??CP_P|2w2s!BaRYwZƕT=h +ڝPgaXǪtJVRW 4 |žGtaOlq u0mU^}ʖc>(f5:*nh4o` +=CXw)->p`nIb½9Ae#+t{~7pOkC"^%݅)/X ZBdBփbV<@RхM#e [$Ϧ*_6) <-zz"P^j#}:~5tW+3W?Z^xwv_ νiU-/fKy6bfч3֙(α4_wL?d7`u"`q!Lׂ%)V);rT?W$V.ŘČ5ʹQӽLrFu "G8y3v0нp6ÓS&7޾L"gV/n,WFn)ɔO Ϯ$d_t67s͓bIvTLw^߳AlW!f3}ߒ U9x<σ045PunCTsf"m _)%K2.\ + 3Roa\c(T؅yJs@:vz1g\\nJB#rRAkT_0soB< vwI%>NЏi̐ wӜ^Nx7ɺo kO}fH뽢f͙ecQZ<\Ds0y<[Z'o x- sV.3 p}ܨ?~.ÿ%!;ME޷???[__|_{7oPG?O&o}{/]qo/?OO__W?}E?HbJq~7֪lhժl(,)D{J;IΓy= 55D3@kuP^@Wf 1r908^ߥ|}tՏ 𔿁w%Gk\$NuH'zGt/:Wy9c^~c~>3OU:GӯM0ASb!UF#գMOC9g{a6n[PsFJI.%n o8|K}URt [HYv\";jn; bRG?1/ +ѼRi8sb.Ѩ25xgRhc7M@M0Ctq*uQyl Lw}Llxl?\].RsX\fgZqIpď5myiz~vYCfo +\X(ib)İdS<'ъ/~0$/Y_⽭cq`"b+GrneVM8`Q +8>vL/,ts/{PMqb4P9~О\" ޯMYN,/2Шsp7bE,ShL{ fB6~hn c4tȮ +o󅱼o-\XxOk0=%:dKMUhQ m*OΠ-޳fheJA?NAh$нvQJ#ym0C.ц*jWm a|Ѕk\[`[t30tZ^6Upʕ~mq~1N ބuک~;axBρz en@0gSh5C|_ EqѻsV;aaX/4e‹9j%iF${PZ0k55M.Ń\RDGg7s}/+L \l+?zdȱXiܹ8J7Ry9Mva&4+؜|pK?o5^=gKe[%Ⱦ/EoR~|!dSnȌtÏ ^BlSx_LW7#/?OobiҐJx9[E b9)kͥ0VRkf&>Tt5 ɥf疳G\v]OWy: +5OSCkGRP(f~Ȋ%6}oFV|wPR\<zvbeb*ЮgQڇû<1VZO/4hnɏsK?h6+`mfBIQoMzzKA MM.6 yD&%.8T:~ \KUy#S" CN@ƧFK"yAF4Ya8[5$*sRySj8OK4;o, v}32q2׆ .F1ڎ:in/]7XCSɃJIF\ |Moy\䈻,7'o oAiK岣{3l.5Cd~ktgs_L^&oȬ '?WLϦ[/.VHܘXfCp܍_8 S|w Ȕ@N"CjO$ta|R&?XOis8E.ѳ/uH_ZnW4-l,$2}Ȇ iG +FuѢj(xo젚[R]bW_ǾL0kl F!dG1={r,9`E2cLVӬJi7ЖR].kus04/hrtrZY5.v;f TtQ>Sm2&pqԽm= +p'kmå_ l(;vXn62ҧI9W۱;$_N< QzZ#tN):)xz3aJal+8gYN\+uk rjf0[;#g&R5]|9l5Șc4s3H8D-ژnhv3t!`t62`_\%83ur: D?zSs;n?8ź="6v8N74,v?-b +k^4D; ZW{5tH,ORn*)BIb[f\S,enzI[|Vmh"^Ir^@Ozx(6B#B~lSĈC5 h;uV2fClb=5!ӱi J p'w!,/z18` l?̹Ɣ>f[S \."$ِ9HgP<05N%C;SlAC%< hد-ZAD"Lj 嗢Vi ,ep_u ,N{J276x6}3vziS87>#=%x.jp\sB\vZ_=极g)ևuK 5#_V]r^>rBg*|w[1[X Znfueha$񻸹&Tn6 n#{؈8 W8nLNgIGq/S= +]vx_?#YP ,ޡ)3=荁+Л@|#K:`#Ya-NL.L0F!p Bbd 8d%M⍡ek7OOu  =~F5-X<2۵ʑF.D'8w|!m +CQ A 6۲^B%V u[^4n#2a_cha +x!IǨƐ9ܺɢI;="a2z멲Ryi2wZEBFm$UoFߓiY:K7 +m\}%˘^CgLXM}])1 FzݠHi=.kRtꏒBot/e!pIzcZIaw }1ZVuNN<؍l;$9\5%x& g LW+%D4s71_l>#4{e QYG~Aރ*j]j:[7/ Dɼ7b+i,o\5n(#Űlpr9nQ$F\Gܜ6=YWK1XCtjqiV.j,&H􋗽% /7\!7enRܘ݊C,B\_ڻco暇Ü 5#Է=# gM~&~&rXY:ω%A&/+$|#W=G0i=Fk/^s K +.~%Y=l 0IiOSVG.W?if*V]YYiml激yMKlIW-șЫaBɢ"9E'E _,5=MKn5&-egRHAፀ 3X&5cE drq7}^!M<#vn86 M^>rn\ L`a vZhmQ֧Z&{#Euu ;^.˶0}f#@[_|f:͟;6q{˳ s9л־khgJ*`ڎD"tX{t~OhW;aHRHnrN&_z誏ґVSG"U>Uק6 6e|za Pc*!PeKBxS"&rDN$U2u +H)8 |ղz@纡R^DgLrԷ)ܬ@],!`3Lŭ>q*/罀.QIz]4"ޮmK1sZ:{@OIA!ʽy<'؟`gEQ}_ oZ @M +HPhqɋ))n #૖XVzv\L垸ϝHA@rRdu`]gHrHz{ (Wt/LR<^ʚJac +Ɂ Z@Jؽ|_v7tsͭ{|9ZI'i+@ '(yZ}3-0@"/fZĚMUD$jZma.`꓁UӌhanDwac*ޢ߶wan8նe–3ߝ.7=(k ܑ!HDZ +lBŢ"G{/):V!rIUeUeNp5;.a|s`aK[_d,4a. [`醦mAG-kf˃49q:*91aZ|kp=0s}#T,F&ٜw~0 Rߗ -|k,o-:o1:+}Vu c"(*~*Ju rօC0>1U+ϑu_& +wqǪʕ31OӵL.] z|} ʼnc vU`;/8 J8@, Ei12/$^(K(jAF]c~M2ӷq%i%Z[` C-n,`[kFˀGeDTs.ym|/ 6^vBL$U!J<5ŀί1q)6g Ǎ\|5LdFZE \qX1b Cfbʚ@(' _7ŐȪ5g^d٦ÊDqX!4j=e~>UtyY>a8AHÒn~}W}w_;ޚ6avJ}4rcw6q וhc ++9d-Ôe_~yHs*{8Q$>nDqU7~]^ɡ8?Dn!v\t.8`Ϸ7> SPf,<@G^hN5tf䩛%(FY`{d#D>%^7B+zoS+IPL` +'!?W("޲3aH7WօwT30/{(`[I!F]DobK']| 4(M)z)o^P䡭/-=oU<6|{gŧ2>>8[OFaeeܙc[mvbB/^\B{Ɉ8tSx)CL)y<#+EXI`@.ؔc!3{C|Vȗ9Wb91xMcZh%i~9\.$lKZ-5'zwxB_)?.t\yc;z 5=⤨ 8p(_O{{m(0 1NN/=?܊+0${{1Qir+n-#FNwYvI)L![ 둙TIv@9v-x6Xݐa۸.,i\1.MVtv+f\PʖSyDehb UV=n]l wB/@Oq;† S +`n8Z&83_|B16Dy+ Š]J |#eSuWquY{ՋQv⓺Ut)U + 55otpգ+,0q%p!֥rIϱP/C5>%ęzttE%czNr5Zd!a|"]7|3^L3Y.:ݎ3ܾ7'toc~]1T>0sLs弪Q4A'{%euM}\ KF0K{ηF1!c;S0_aJ)2COt/t%c7c+&r:{u*cȀ?Xׇm(nzI9^ڔSi "]C$g!RzWEa_T<w}ItTc횇ۂ$A,g@\;>ݓ F`$dfZμ?_%Tޤ,|lAn-\TG{4ui]g8;) +nPe^߱Z g%S,b΍a9XN"΅&Y',)O8b[AH4\?л[RC/טpq%7CF_6C,b.]BۨQ׾Ee9]ͭttD3<џ89)Bu/K/x>d )od<+Sςo]%BLFKwЮyZR;lou.&eaf"=@mT?IO۩QWM[εDSSf +E?If[,%E0"Q~u4qn601 +y="9!_q&k\D~*bIHx"&FNDOmc{/S>ۘ$dᾶY&q>cZ-*sc睃Ν +KX[AO]7K|߰*5eTӔwL[7{p '$&?,34p%2 єTδ"yqq[BwR f\/z +[ph~墻_ΑWy ++cVUwuty73(/;blkrI ;BGlk: +G^r.i2"h]bm1|Ezˉґ멒H#W_I4}jkQ=)X_789fص.3ȉnl:VsgqD "K`zӖG<"45sĜhKUc7--ﲇ&$nD6@ `%^A U` +Ϗj`~ 6AS `AGw29 PJ${.o2|;.| SԂd3mZlnJl[,vXf:)%^1rӛºKtQډe^v϶t|'hSOlX;\`ҲI;ɯǐd}z^ϝxb{9YW?QbӾS5sՐSCU.c׽]v~is|Z29PZAn5nL}m kՋRAAly=՛S׍ƉDrU6t?pKP; S}C?rizp$]'tr8?s 9{mȣoAE\] _1C}cD^%|QNmWQ{7+sȵAe`ύ᱊!f+gXL-Tn;2 y6&+TCU^:ޓ=co]} + +O&{a=_SF@㖾wuLْwpeQĻj&Z*sz4+&JbrΊ?alYxK׆ݗK:3]bK3=˺x #Cs:It*Z)r$ijOQz+vNXvdӒ2Rwi`{F0H )SgVz52}wd/G;l!46\46&,4t@xe_1ty/@a1VLH~qJ +] Vgkg ؈,5;P_::Ο'w.:Se |V;H0+7'w:7+MH$ hOW?kjןj_гKmm{w!N'@OVyN v-Hc0ywt R%dŋ'Tbfc +ȍ 0#FZT%FIi!"QxPx<H@^)J{s [SaNtwjP3 ȺKQJZ:99aL\?XAߙ8I x2L'|z䲍N$âF[=PM.3'I^p S0,jf0\|2e ^M fyCPJ u! ,5S酣q SPmZ$X󸔼m4̗yӷ2)?anqq yrӺ0#HY\Wv20wޙT5RHƐW)J1+GAOAW:?às2œNN`3?*atK w}/xٕ]ۓ wa{<{૖]X9~J%T[&E!uU?EԢa1v)к\n.t:eIyWH,@QְUW + +))>xrPF҆򐘀 o4;m?8t*cey M 7fh&KTSt)"VfvU-dH2"'|=Wl;d&S{6]DԘ}Vd/G=lls%3w'J|psUcFdZT"R%lA劉SI#> JT=eܖmHZ{@ga~ ۚ/Do"^:*00ե[Fx#g9d+7 !wAa`W!!ϕ?\JמvX.s`e->scsRO- I3B1vsbs`tNc-ksOb(rA{Ϊ9:yphJܲA<8k=s0iq y|: +>`[S0 +N똲>?EV^Nq潃?C:6AtDbk~qé)~Zy6buG7x/^ݩ溩k;ҳ.;ƤMp%hQ2?V`4ȸq|^c!էc8 + meXwىwhCGqׅ111fw7 +0T9XgZ >{V޵W6칤!rUgKT*EBKː '<{F6~TR)so(&Lz;f1i29 ? yhu7YTξbE>6!_q3"H= *JԕdZ+c=U, Xy%Ncm3.J5m\1FrL9tv>b)l30zclQh1dbIJWA LvKT^@8q#jObulT PB˥pѹ_i֑/ymx*X3m?L։Y%:m`шv.p25m8(Fj"1]1v'+A{7 T]E-A__)]1!She(qd֡GE! y"oMĹڎ޻x. +tcRpU. Pw7u6e}=^&/o9RvL\G)tU?@ڛ('T@wZ䋊Q<+R aJsH-Y;$Cyd M)ˮB`􅟡VHGѾq䠤Kn[Q!%򙲛vUS8{6[Q|]uve~.NkmZ:yӝ[$t9 k w>B[r'wE!O Kx_b]TaWU c_++km0{i|/#}xKzo(xGOW4GVZH2ԓ~ryQ˚B,/ aTNVU{Wԝx'%e`3`t}3J[AY ؍Iإ]Ƥ4)d.X?T-&Vt{ӬB`rč7btΔoqLU6;u'smuLwnbS~) b۸Loګm|p~OzUolwFc=inn%^ss@}oaE̬Nn513$ bS9ޤ`鞑IXۯ7"L % %;ȑm)OЍy$jN@WY>q~8ZWJS24nꌽ\վ)vIxN>c\@PwYk18A蜍% +Az1X~:r]H*W+yߥfK<8E5͠wI*3=]ké{]kѽ8~F!Xq:&N&(%˫`_ c;~Acn=Se 8 +w=˓+س 18N~&T}Y0uBFRkLjwEʥ}[j +xu#{TN;mcU8d-&HɃY>exһeB廧w s ]/EhM#\Ӛ@4iͽӳ洆:-ZT(Ͻ/{~LbP TNF1qg~N;WTA sP7W@oT DnmWO@y8 amL]X&:#_Bm){bGBm1jD('hd_%\}' xDRN/<`;чpm/EGjcDž͇*bh:3p4sP}0s}LcL<RBc0&3RfX֕?mDV> +_1D/:t8LܝA$iw.Z$}^*~GJ36%7}ƧڞCt,Qt8 hkκnd3Of=;=wB١-;bտ8⵵Zfw0;h";7BKL:.2@.(.$!O_|)FE:L]*;`NQ]7h?leȡ*%wǨꉟ8{8ahas3cP𔑣$d +@?dcXLlҊ1w'RxSl>-`[ qoeD_4rb˸ϣ%xr]#a'|f 5 )t tWYmch#Ӹq/5O'WBu)EU*zF}Kho02>J>Q4hs<ߕ*3CH$oD\*m?M71}V6GԈJ(O=ZE.!PѼ +rylWExW͐E; *LَKh] Pu"e4`4 w 0ۚV3_g.TgjTM7[cK){0sx`B.-"~2;,8óIIVbd@${Mll4i{Ό!/Ɩu +żǒGCx\d)_^'z_"nU=HZ@q e'n`:]5Emj"JW-;Ԧ[̊C#૖XVGsM7\ |1I5Z/|Uy'he_N95^i +ܾ&CNmMƑ:=+B> +>oKz}ey-r'jnyHWzQ +7Y4ueW-+1WrTPjWϬ5|ˊ^(7zo}4TgIJ|Ztʻ*ֺUm0.eii'd(+379٤g,~IϘGJk}[ Su} S%<3O5:M# +AxL BIoPf(6 {$ &کYփFn% 8m~Rd*T,YYM88~ڌT7%byYobqj V7̰(f=# li+7eԽٸ?1㺴kTfj+D_bL|xrfr=8i$Gr f + +ϊhdC3koGW6?%*Rk[Pvfj|"i&z3Tm5uqHKaQ_`_89Un)ggٰX+MT3iiG:3(e$ mכ +5Et>G .'azO&;`]RFg W1CE'E`[z2#!HrJNQ)AZGԾ}ȄF7] q䈼 ]+8C +P3\nno{3XMs3 6**&%*)&LαG}uP.aVeV7}"IlJR)&>ӟGгFkc흭`Jк2"{b[ +漬.%ί8/]jX_a=Fz@^;%Oxvf2]{j{{28gv~LԖ;?ƛ؛K98ú],=DC-oQGX LO*fJ90;/}ՓF^"ӱ kk'ڞ Yi;=q&e4щeoy"(:urקeeT8[Җ[W}Z#Q35~ղ2p!+M, a)GR V"k@Rk +kGۨSfʣ9|PfhT#ɱ\ʵcʁZ:+xX;u(ܸM!y% gxZYJuhu Ϗ S8j!*Z@ (?kq^#7\^D97.A} n٪ ]zX]`cpbm&Vxl)2Y$N oD(̌fAѰW3Qe} q=Q # ,@[Kތl0$޷i;TŢSe=`FٍBw1Ab* +~qQЏ?͆Wd=ٔئTJc^Jn(KR^ۂhom,Qe)t4anO|# L&/6)+R.gHεOuT.UB%:-7e}l{EMEF( i/?U-1w +E>x)UIBtW|f(yAR.4MCl'Krcm]}˄g2@ߠ-5`.2$૖XV cEZZFY'w#͵t?VGtafg DƵp +KI>IDI' *eyMNmKPpE&iWKW:3FOA3_p#y mv^&Ċlx.H;CFV#7p*9Ynlwgڃgf~Oi,I+p!pd:NS[Wǽt<.xc0ab_yfa,{@;7wh6x/C{yڲ6l=wՌc.᷼Iy1ƭӞ;6~&RqǛ|<G7ʒioٶ ehk{P%I%}U)65F6YEªAxvU41\[J3Rw]l2,xŗ^ ?aYC@1zh<ƿl+$Kॉl $W_ IFѤPj. L$Uh7J?jJfDZSL@]T +C+!~H$Ecļ+xɘh4t/+۩6`02Jc,Ēmh%b-cEO BM6KϢp ]kV|xyvGY#,=uc32* yz bɼ 4~ 68[hzh3M,di#q'H2>M/`ÖZy|rk~)7p[Q{VNڠ%ovyvNK/ +1zBg!3]mۉ1IpIx|ߗPdҘY|}BS 1"Z&pJW{(h ܚs{^ăK9(wx֔vheH]*r{`¿8=Ds7YͿ/%?~~XcoW_7w_ܨ>~'~m+_?7{o?3Hqe%yzQ|~{FWe]{ qPHByc`{5AиRASWo5%tT.5?d]RJw yl~ܙc[2Jt +ۻT8/^|꩹T\L$*jZPsk|Y=oN7f[ _46 @A38~uwi[zQcmN1V9VsLiEb"$ +oO<*:XuQ|F`;1 e+ Q.ie.i$9޼xk) +x>UNqN:7* PbFSbl+0&l9^ɍ1"9]\C,+.ׯz`D"նQ1kP)'Ѓt"_҃cÈg|Cs; V(Rgfle>?L%Fug5w;$eTy{~O-l>/U&\zv<v1c1-G-NveB915/jed2Sۻ- +(V )˼c߶TKk/_޶{L94du}`@i@AWY^rhFq3J)m9sĴgA@Y_ 8b?EZ13X |#b.vn;/!j>mM$%-["荗)^57]/ I2w7h`r|彤-~:dg_BgiA'X% _ ?С(]Гw=fhx||y`׽Q(~|i=#P1Nۇ{M<ŋܜZ4H3 Q4>-Au=/ʶ#g[a,-BVF xT8JYZ+e51` s?KQWKDLc >rzj-FQ0K|U:;ָl}x(/YrYWMYvyn*4;ͩ)mC4I]|0l7<; Dk4l:#}0POfHb6& op%v7qv|&9`4ܠ2-`:I'M(>mu$uf^ݙ"aHEveCĚq''"7t4}&V oBzaBPXH<؟LN|~ﯬ:1 +Ֆ|- 'rY2$yrEjىehY"ztoo3b Fc|=u r_'c~;ך@ҹ(Gf181 b{|U{U|Tw޿ۓZmg[c.S, +w2gIJS{,#w݋j |և+|T܀`yYKc4^AוPhAޙ~NLcxE/:2 qm%Zpk%5.fr{썗z{Y΍MM5:'=?50S_8j|z0W3eʵ'($5P=YOaF@iƦ6#$Z@D&Qiahah9A$ͼ>7F:Ge2ЌB|${B#B +k }$~ '\7F("F 0(z_-Q23 o[ԫKQIN5^zpNu1x9,p_D)*0T(]~VDeg-4 +@yWT:+(#6r 3 }|ZI-fwYyی:U붳f`d R!S+ RjbY5=6;<.@/FmxK1g3]@Xq|GxidE3^Ԁ=kÐ{Fu?OϘn75>Ļáy\+_L4]oDt%n$_tm65FmWn/ǧT|Z Z@Gs=kMZC}sQI^r`=ʃw*"HמYES#ǹx1xa)+T+TO\Fa*SPr3#'&|`'I:`^[K$:)D ٤d( ,+@;a?ëyGSZ~62}ro_Dz9 J)n4 +a\ARtpJu"?{+`!UpnZ4 +Cg9eu+`a #3@)^ư /"Ť@}|Mo\aaKl40\_`_p>@ffZsGorc@,JT,=V<f&h\6hZplX܍(F.'W"+r._Kr )`G@yZ47fI}*\~ G6H!U.kո[_q_U3S\Vsм50db+нkp1itD/մ Q@Oڡqh +VqH@| bTp?g~';SlNIέXvL7& kOx" Tyx,-k$teʇ1yF'472iF'?c3o 7I>_Cૂ<UZ4u= ͠2Xvf:Aa~VຼX;!ҩhi-' 0yX_˴wDTY.pfOMcT>uShVE[lﹽxl-D[ <ϝy15@BWyp}Jhn04+^! +Vހ\n\lF@h*<~V +C]d$*`(޴e-BT74C7`B $g;u%p|"d]nnyCoYAcEY?UYia9LO ~؎`ޝ9,0@ͥ_JK G5PJŴZmhGVžgzG^{V?Ph'*7_smjA{#Y68sRm\xDm& + #J +nЬ%}^01CuFeׇpgy_`!4m}6خv -@+ЋS'>+9iiǞU7&񋢌Je~s?  +`) ͰMef3oZv`Y~MRG2'>E[ag4}۲ + }pm`Q_`_}rN<!A_#MGqHgd۟>L` ;4_^Ɣ2ot-FbծD0 bBi6 Z % ljf#3>6@4hJM0l5Kuh^)JPU $eɹܳ'AtdL[62F` +Y!N`AR,FdWҧMM<;MLeh)Av[[J"is}g ?|^!K +2; P,FWfMO"yö2!P Q! 7^|q+d3`(klj +]Is٢2OqjO,/◖J,*˗5cb?ӗ~_E}ͯA>)4`[l/mp`hk|4as3sdKj|h0{_Ҧl{XQm9. (>d0*4k]T=bN@}x})tm0= 0h8m=ћ/9+'i{(ľgk>Q[ î GLkUF!}[כD%r&hslud+~{bi}Js+-ӘK_ޢ)scoq}3^&\wW@1U]^ aڏڹ6~@CߍYw}3fẖ/ >\Q]=Zv\pF;\#6$G1K n!7{&g.8ogx)S[.q32bk4c;*pCRR:s&.D\u8 AyQwOH63^>'lm ndܹt 'l \TrcegDW夋%y!oq++˭*6cG6Ɩ%gL +R;׮ q!{p"k cS\|ɧ RaFbB>#m{vCDz>_a̵}sb[k];KlFueͨ~Z^{n@q?&lk#8'F +=~8H><檞rUԍ||JGW?T3ëF$+`kÅr;ۍsP}0RXu&GyΈ=[ϕMBZ6ljs&U۴oWN <,)tf͆UhM1Rjb~sMK$q8` 9`A0RZ:P3WO6mT] جmf}0f'}'g;Y~ꞑrϛs:?M$yťlzeMAYⶖvH8 r!R7SE}AZ[K#ꞑG%UHF`M }ٔTG@8q~^[Әy֧2onoYf\\:R P&s[#!OGt5/nkiah4B7 JPNƛۺ +ZMB 3?Bf pvD 쿏 W|?&saN$iMX\H]R!_56Is;m5=mKlY;nͯWAzAHigqR#|? tf@ 1I»mG0-Se^&>P[&6xI-a+=?yz\r~@u S}˔mHwÕ@'ҽ@{AvOasB0=q3!oloQ=SP + ]E v8"NOvѽz"fz.{l3Q:/`pijX+6h:veglqeYYY{!3I +#z1`a q[D&>]sr04U<w鮭S_sZu]ݚ7FzX <ᶎn"T=9W\[=}O*3jrpv͎%~ܵc{4G7#ͦ7lyFNH7.R%3? Tp_:9Ì] fO7r }&8TskC+z#ҹ|džbcΘ5"v}AO@}>hB/.k->|o=,rzWenr?0&F`b Zp7CF{NJ =pmm'OmaCLtsTjms_Y50n)6r쨺0].c<űfr!6~U +qZ cnle{|S}kWTٜmJvTȤVQ}Yc+,{-*swJg5rs||)';۾g}Fx{j6uQE:]wr1/Pn{bXʋҷ,M7M@ }֣6 FAږ(=]A$.S\EBM#qnPwTc}/#:F?/h('f781O"/yvzz#Wc@MK<{N¬7<$4gؐb(`zh -2C0Eϊh\Y]'_)or{毸[[0oU{ٛ4*t'A^u"Y\(XS>=ʧ$?~Rx&8>ӪOu_Uw#6N :OHAxϊ)< 7ؖ1X 3X.֌ +v+bѣ{ƵTm[Kcݝ5 r4u;0q+@^ b9V(mNW0g-twAy2a8R 11cfx'ڝs !dB>mk!ų|B?冺*Q2XJox fNUv,۱|o&mr3te8~j&j\5$7F ABӦ˳P#ѤYemJxŞ9bhf8GO.^sk/潬/?XX[sK}lbKlw}J8z104Rte;-_) F(A<|d\9Dѹ?7U*m*AǠ +FИ䢆K{&k#)qU?Vl؜t7Ttnn +I ; 1U+cm)@Ƈ:Sg1u}m`X9x;hfr KWE+ptd^l#v~~2j@6Dkhׯf :a#% *,@ҧuԺND`lI=i'&2- HFsYvŜٵ bTj65#`I|0NVT(8YT] q_ߟ {F.1G[-M?5]0/Ɩ} vQ.wn[<3V&|uցHؗ+Yꓽ׳󮿅q <;y~ G&:#"%]l>UoKzeoT +lpLtZ5u^Zs߱YO.DϗF[4`=av̛V|fXU0bs_I>[CĨ.]=R{;視pŚpm`t Q`¤_ުb[RFBs^VK@\\7x'Gza0P}0pOfĉݞk +wkd咵Qɪt2=WX_YGt|Go_j`M{g";Bo*1ԧ0h +|RXL,tG~ M\^+SedyCYoyw!$ěT{=zv[byd*s*XW ıS6δ'b>g=UyͥF"p\{)8J +мu6VSm>\lA6[oa4^l}UL%QTȃ{6{Tcou%j]uqrߠg\j7Pݛ`[>7ӯ7 )H;s'_xruY.[w:TR2dǾpIQHӹCa!flA_i-=<$w-{KW8[ u3즚^'5\usg^mI p2h tN+|E*#B/`$:CS O~?9 zGS98e^SEKLXSӞ KcƏ剏|!rp_Ǡ],f-̬(8qgMKɩ{ Vd0}bK$Ɛt ;Wʫ1k?_[hz ah, 3J:Bo_R})3F %%ϜխA)y}k=ohC8S7vvd^HǀO*(Q$SQ_FI0E|NS>ޔD{Ȓj|bf:5P}052jVIobw#}.Y_ͧ` +oAn|ni}9`\xAm^=lD n:zP Tb+ͳwu8W7:15:,eTWGvtAG荪{oTEQ^L'ө٩ +%njCU(jӂm-<9/ߥ1Eۺ\/sD8E $*_l@sL-Tj]B|4;^;\( +ul*,-J_H& 2F_52ㆹ|&/3\;y] GTûqI"ʪ\sʼn1}dr(*_buȣ%3םOdRFusL39k?CP?.,u6ۍ o?nl{M ݎI(e̟fpw1bZћ]#x=#<+G01Ѐ:z"t%PZHҪt|p-B,L mo]ΆU8Ӿ5*)Di)X*})*4ei~*o2 [o;↮Z~dsi3*g*}㉈Jr{9/-=GՠĘ~[ٶy>Qjv:xATn$hI+QM}oLMrtSiZ+ӀLtIS_% 7?\Dwփ`Hdpq~ݶ- r舃~$"; @&0A\@n \De̐ P~ޓUoe]/W9N纄L}]:{n~V}" #JTJ_MS©6k-uy?"Th8`J yń{*` +~td= ^]i}/3nlz*i ۙ;ys($ {3TTDS`3CaI|d. 2 0ʫL-_L  Ƒ_8uފh-Mq`L[Y,ԉ mlSUWco]iG#F{K``tŕk-NՃ)@Rљ\mYZ6uxS팥&k(vi+r*N{\z_6oH0z dhmx|7G|:V:\3XEB!<,[VMD2=/Z6WZ+7vづ?)?/c2e㥙]msK:§$OTp3ގv k"w$^YU +@C,IѝƭŒ:_-9h0FuB Ru7PjTP =k7!g3re-۔)KDB-N +"O@=.s#A]O\Q'wFV˻f<=v_)'JQOvRkPYWS]L藫LLm=L/վ~hkoPg$lSB!^KƯlg +qZ9u>jUZYt037(]EKY%nS +.g|~$pj b"_ٚy*XWql죿: ^0!GYq$ +P*N/IR +!7c9x6d`G*6š$awEz{u4-'i#WATyF +Sn@0g0Fͦ뼰v~oW+~|ϐ&I= n,u~(#_W +%4P9 DTj@EZ<2> m[yi8g1{`=z:55d\tٗ-X?q +wEx(Z8,;eUvYd[sNp7߈pVvwIsLi}^ͮj@{S+욺[H+8p߂4;k"uŴ_+= o˭!=ݣ9%\(|ǹЄ-uwfwa,˭ԄI,ՅKe#TΒ_vɸwp[]Uʔ-zxQb[?Of2-׸tݽ,@+bŸD"_L[PXbI(9V{7c˝R˥՝Cv%\mwn5\#vѺx1=Rނa MtXDqžf., И !ZMBQڹS 5t=,Kq,b]*jPo <5q54/+V'u:\@c3]6Ti[' ٝo#50Mn{+?B7$\k=Ns:PVݴK5"xE8ȭ~kV( &sݍ67x6lOpJm pʛl2#k8ްv#/t{})l$²]d*mؼwnjrΰ#M1xb0ml9]퍐>&se{-oWlecVY_HgƥX[.{oV.r$LSҍ+ppfF ]l7b1fAh #ݫAҶZ ViavsGVO}QfN-1󾸯󢎬4h8}ͬU}XqWSWK@M>-^F2D8WW4M +{,g]n[Q!pXxӇw[LfC-$9mr37B̒XȘ!)f YCbe!n!B>ޘY>Cz`o,iҘ)f ϐ3KJ=ޘY¶s!{S2UZ0} > d Y2% +6[!X/X miO#56j Ӹ!ky;װG[諏- 8&%m;2 +]k=&R_rt =nOQW_CҡBRCϲ(dyvR7.o$F'R3`SCY>4FM+xph?ćJ垳1CҳP>[UwsAn\J&'ioWw]uʫl1T[p`v%(qq A sշҢpL}2!շ%~g}0@qJ k+:s~5"$#xf G,*㖹0 +?\ 9U$A*e)uci6ZzACTR:E?K(?o;𵔘/)z3H-Sw)6O= +5;7:?Q>zŽ%yu's;n08bx6y:3:u}pMrWm7;&x <.9N-9Q4’pl`= dfDxH `im%V@l'͙qT.@,7}gSU‹ $~=73Do*M$>P0Ds'yxrzP|}[8+e5*H(9DA­ 2hBUM4j+> +y` l׽u? UJ7ȿ49K[o/ݾ;؇utti['&loR`VŐZkS CMw|6hޡ|9sE#r|1 +t݉}|âA4̛72 AIxTbWNZ-`|aNH\_N9,kكK9z%_JG^9 w\LY.9ʕL[,,Mu.ވʟ H+K碍wÌNr6W2:b݃bDėT*5rv݃کlJZ֠eeI&Hd.ApTI2}VK@2nKjⁿbgblqZҨH顅2j~j%QOUR[ěSF^/eQ_`L4#Fa裡Om@:Ŧئڶꯝ.2'^-eE;4].5*B|^N}sax.}:$ZByF,̍4̴"}]O%#+ɶ~ϿlZaBت6-g ٤,!gډSzcZ[^ ch{ZctlcƸab|Y]_<`~^aOi*kAjA$qeMA>2m2䈴,:(92u +%.+5D&UἚ$ծ {PshC'/~a DX)Wh!z%@OcҧA[𒶣„hrJH o9hya0OO;|^Y,/վf00S/e:h0GV:#PEIQh3P7pE=5+4SGL%QqpT3b!+=&ۈ(ritqL~T dƈ5jvEZ>&-U`lc8emUmdo)Ân|V6py.1!CBPyl0{ + +D/W[ t7@f=`Ԍ9I:xʳ\{1Hղ.JZ䈙ZҶ:lgsXX*-mWoH4l z99}8 NTvT[~잭*boIGr+SCx~e Tʡـ.V8H™ f~O+QJD,ŁGbVw&?nZя[{]Ic->}gpo?~?֏?X?㷿۟߻O?nǟ/_o/kW?__?wo?_oſg?B›&`-66==/~ϭC@ J'0U-md^gT71qQ_cszw@bXt02!؄8G<siHtbl~ij5䆾eI8qjD &91AT>EԆxzYF7-E!+Y=,Έc婓4Ù+NQ3>ӢSc$}? ,2i̐RZwZ!WstDYUfLi%Ft9Z!3;ξT4 7 sHru)ZkPm9_XĻZm⢺?$f)`7A@'f¡@M>c]\ԍEyڌr292N)'r0M-?{[MOKBv%ZJ?6M#0Zs;c)CTԼs>W`QUvkزP8j*9̤qb qhE=Jடv8Z X=SX3+Fo[[4SsU?.)>8:j gĝiqo MQ|i͇KZnkfY}5s/OL^<&l{{b/}Ym8"EPrFQ6;ԙf =oE:Fȡ1;Ev>V΃?-_̘,gKI[i9X/wΓN+ÛW$3}Ѝy1vlC]Q=_Goq<-jRfe*7Wȟa.R>E4f%. %ȡ%Ko' ԋͨj:Vwڭ͊]^pV jc*Ӭ|KW_G2U4w4PG@z:ejGK[ M$o92|z}J 2ytV|<^Sz!Jr8W_#Hې6 tw +Jñܸbo39l:Fs`{wnFSt/Ջb:,Wc}V8`2/2 N%CN ~  Wlm@'O$>}ERZI[ȃȹ47?R'4fB,E>=fԹ`gs 4"vz"6C/ ^҆tڻHh3OXMu[ѥ'ž#/Q/Wݭɿ49v?T'vN }H`w eڥvl$o#:#I><ʸE qN[6&N`^x4|6[rtO$zc#wePMe5L<;.Ze]7%5֖5 ZJRhC_&{bVݟ{~^SUv^r/ݾ;7 G.TmYO92g3(zJǴŔυ{3:5;>nKl;5ɁR ?eсb-CN둍b9Fq'J_^ +VƱ'ʩ|zɳPkN1X՟{W-)i8DlvkߓeߕM%s;Hm]z3gBPNTzEL|}Men$r0# i?`w .ݼ[`Li\*ԶKp]SZ:ܖ u}ﴥ/ݾ{9ZS^SM?s9ݦy'v[k}OJ|ݏ'_N^|NSGk( +MaS%0 |Q>Owkʕt*Rgs&/h'ʁĚy?4#CIoy[<0"b^=^SDXWz@5Rھ9iskF3x]* UsUcH3Wsy.D7w![ w{It<r7ñǰ\RGz;4!u bX$++ +x3朂g^71Q҂/T_KX75`S:F dZՙJsmwjridN@'uFUJ.#zdrZR磚dS/ 3exrlS̩aQhRQj֐s}6!}/O7V],nM~-.J׀7LfpZJ$FXi&\teE +(6dG1Zgz9Ȉ~ [-"Z)jK$}EBԅ,bM] 0bOan*cAӥ0\u2ȖU< 8l?p0Wm]bYM v^r'b +k䍵SxO*/ҽiq" +btXeM VUg(:?/CMܮ[4imS+5PaIh)#UXM "Tm#"~?Um+-X ҂:ahhI&XxEc2Fpo ͌C5Q 2>c}ͤSقGUR?jQ7YXG.Y{Ֆn M_r 3#FLJlAB 55yh-6- + +z)ݦ* i)J#a]X˙'0:i>=4Eq)nb!r)(d4T44gn25hjn?k8[8Y?tE=GیXYϷm0 +flsƪ)0&W(y߶Gh*nߝ0I7niqnl5nBfBVх$Z]3/XEA5I\$nm1,fp,jGHD&Sd0BQߛ +m5 W+ʝVWWXxSH˗צFomC=I nuS5g^^ؓS1n{RZ.z}BZRŹ$Uq¤YTB1ź Q*<`[͏b!;&W؟MR8l6[z$C`P\|ka|AF!=R;/XjS|2XuwE5,3;bFn)Sh!v:NPN݉95:3{̈́=Lfw Է=jrIC;e aѳ-^s + [4blG9򗞗SEZs*o|j+g߰DT\wwJ~KW_md }8U'YgZ8grL_ؾf40U/6Ƭ!̱!iC`(7^1&ybɁo{v(@b η3'!lU32Ôaݱ{z}KG%4{'ZP6R7تc^8`e+s]FQ=U UCO8[_5bh#WXkxAQ֬>`]E35է4z 3(uCx25#Pb7Xu⍸ra#6u~ 7Cwχ y⻸;+9we[α>G`U?o0ljNqQdM٪6MMY^c3#-f>3>!;8v!^}wn˃ιz쥹p#[dnuEd`/Y#7Uns/Ws MSj~r)S5ғڷ5;ئ;dcЮO%"-HRA +? KyLmv~I(q%a[ŎW\~~dg|جJPe%<;Y* ?K !ᵉRm# + 9"1uh Uaf5f[)thw0o)\7??@^]1R [iǩaVʳ e59U\يyt`>q0X [|9KP-i(*hИ}#u޲~2p8o`q ׆^z@tŘwӪiWLs! +*CmG +t5٣ܾ}&p.na _߯b"gws#9&?o 9)9o':]6upGpCnrk@@:J2 NiBCo> xdZH\)ȕFFGVjk 4E*t^` 9]Jt 2z991Eɘl:lbVAv df4iro, m,Tn(l0yvɘh)N+M7BWAAjM_ȞZ9s Y ޱ|γ/#Bp K-1R3?_ ~1*3f\ + Yhu̡Q]7KYܼ[nL[m~U|Ã߯ڎ󳭰kWVs$X~T}VSYpZ/ݾ%gQ"^K gG5RWؾo_xݜ=;TUM .Lv5ؑa#CN{^T"-?-wo%uҊ"x7ZW<2Pc~멒%NgT(z}#oF#\=rySE_j+ Ya2̽vϒCQ-[`3{1lI`2s-tk7**d.TM$.`%%3s `uVНwhtkl<PZqR\!W`^p +;]Qܝlq]]vqh+ϔj}ID8=ae +ۺ,ƻir9dgHEE};kkR]pQcY.kMɓB7}`+mU7Υ+3{ljK𜲩qw7U]#7Bd.*`Mt:r63HR6ofm#kt%nyY[mݤU_NsǓy[8.u8Rh~]xCc 'a+ ma,Λ%qh 0i}g[5A"5xt.,HGٹcarTNxsYA9 +o(n(y!C*d/Լ˪Ǽ2# 9¦DY!Cqj2Sͻψil #fseMhVǹySyke#F,KBSl繗ӊ{hVy祛w!RGy-Etqg}F\>c qTvYbl;`;5q;6&\J\O[cMp5o.U6%6p^G )?LTΠ)y +_M>_eF]2Gy}eVB^r7kxHPFelj`ʜ|;IWC|\Y<$"&~}c3aI생5^>zݮ'39 W<&)(WiKmCƮgB{tRa3 }:L #kؒKgxs$@<9{~MGz6-ȗ,a3!m_YE_U+ax (l=O[׎eYC21nkj .Fzca%EYAVγ]Xn)hj]1|(y^݆65RjPݑy tȖ-x1nҼY{IqK"^."K.{)$:= 3v>SfakspʶyfTIԮq<&ݕU%$ߺMdKY^7 +X%#9G m3=̩-L#9`s|n(g^x;,Z&zr/zϕ<<32(._kS4DAmxJ$vf|c1Ӻେl2?b-{C ݶw +NC"4$>:E q;fXxg8)AOpuj~5X vo@-PH$s~{N9+ ZcCA=`SAr, [ &,]}g?D`3haFXCbLt|,*GAW%yⵈ"͠g#-}_bAFzM.U*)o% E ҉t"|020!&}]( [ Tp5OS@)q+Co3_]O'v8ot購j y8̫_G:] x3`o[6V~w|sӺ#QIv ;%0fU_ڮ۔&.fcN#Cw%S2mg,V'Կvfro6\l$TUgBXXҼӒ$>eijiq5VRo1'n3d7=64^TKaOCȽl~nDXUtؓE"6xjoS[R"O闫fx>lG'(=PijD+W8cck땯z/7ebb/x<@*|r786ƛ4 3!8<Ư9Z /\[^.&5IpRq)|ge}7G%3jMb֬f=dF/6[2u<f$ 7d릇DҧyH9%E)wqo2ݡ _<`ӱKXQ(V&"fCKIZ|R_.=nKFjlGΎT +@h֟+Ցѕ26dX'-6,~ㇶ;igí\_&A %_ѤUNP(4- _=o/971LP>NzЋuz;kХ?1[:8l08|q~v .(LAWv8r{G~-@>l4" f!OACg jʞsv)\^Rj-f:]Hy)3FO+:+i6Ƞ O{|[*dp_qk,jɛyxEek\3ޖ$gݸ&!KF%Pm٥ɪ CN?A/F#0얠;F:At/Wx`[w>;ގaUV~UtUݐ4Y8;aXz1NOZ lO# +-pE\rx+]荬J v%{Y$Rr,V|r|o( /\!"0Q%ls.)=U3? Fu?:x43|(jД+Eٸ-Mu괠Woog>:jO?ωJ_3o|^d6|T$`0|buEa\9:\Ojw<:5Q&Q8WTޫ IRJ=1ְ~UOZiXN 9E6|e4V~hhJP~WWMԠEulYI2; n.\봖$}Y\! Tcl9sKj3kNśJݔhykQ6e3.2ZR Wa+I~ӗyOFq$?aX]I,FqX z֖eəp⑉FL:ӑw{WgśRsWh b|ӎU An~ 1T2Zզ`S4#D4(m]0#ZsE\TSRjRS0U6 /g#Ѷf!c5zB4,ڿ^&c1S74Ȗ/F."녌zfr遨QGA6k=cuO]z@΄f +BIwNh,=TAn%/Ylsz/ݟFIX4Xͩ x+ +Cb< lZFyw(lSApU! Ɲ5,$K1f% +yT6(Pׁ"7S6kXZܻku,%)j6]iQܾ!;yClRbSV/8Łg;I7ZLI7Dl+x.!e+۝u'{o]*N*с_q4iJ Udh~ibqD{ޥGIuۥ&vJ6WȟW&C׍|q\^`jM7XHjOⱃo: XƥbO{Xb;z֌ 5X;"G!{#RhޱDy%e#ӏH}J5[ówNR{na^UD sB_SCnNRZ|,Y +}|0ⓔ6Y5*̧=Ijxu2Xm| tΗ)s)+ɻ$eR#m!x]|yXFNu>@QbA}ɁAH؋#3x6aNR50b}|l~1rшB=E~G +-'756P.V^7nFMʞRÇ e˻`WS#%ڑ0,#J6Wml޴>bJ؆g,YWڽ`V@ņ55=X&ņ +el2Z$dp5;c" 1H?J嗈`tgT=FfjC +wmXĆhK-\M=FkyhsRVVP͇B,rpXHP:7G#P5H}̕/ itWcCBԼMм= sSxsmp +2jo6Z.xheF[S+9QOy(;ƒ2=#45oXu$#4T̺9B=NL9B7d += #:C҂:CC!D=:y{@Jʮ]eW/F[$t͜#T}?;&WS>Vr5F4(5utɘx͉VzU[ϱc*o:Lha!L/!N8 O᝝2Q. +^`e6TH f@ǁVmCu+-x=څ^nSk6٥NӨ<6^FDoMn-mBeOL7\53^3jsŞ̶RvƧڪŠoӂ^bHYu&{0Xw뉣v'MnƉ>ඌ$ARA9%;,'0ɥ~QDj_ޯf7L`# taX/7`n8[8ȉRr*I{Pm.Qu \H61ԕ}K(Zg}C({0ob(ɰ[p!+PMMD`i_PX[ka "QnOh!!QR$4R׌y1tKtA;Uf:]^]뇦{0Ŧ \[jUr4{@8ʞ?M~fcå{d0UF_c%ũ'Oxqo(G/R-WKRֵf\!Ǔߗs~`#ƺ9&M9NG\v*i Ȏ`"¶MgU_ *"mJu.~qN%;)H1_T03`1Ws8w_U.gAP/x~KTQY/vN9}x۪e]ӸԵQ +hy+'&#>&=oh#Abʧ hBV˥gݩQWlf}1׀-ˆO~֫2q +6T 0txntlϺT i* Q˥v?CQ E+F1/ȏvvw\&A['8)jKJx޷X;0n>@S79E5`1Sg)lFa<KUhbX]*W'Mîj961UX98irҒ9뛚5[jU~g[ž RFU{0 N?sѪ*T]PT5Isa_(AsJJLT4 /FIQgNBF:CSl0E2a{ jEBcJ٭G;߁hCt}k +{vnӰnBh*'nhiq`۫cXxv:yad(t$\qCɊr[G稣)@"DO)!ܠuvrFߢ3\Zy~йc89-ڰZs_l6)ڠy68ϊ|VnN\3c7.&peP|VՔm (_$AՙaFwHW >GH9&~j^@]<ʙ0^ޡemH Sg鮘`+6sF +z4u.7e:$q-6LAe qJKx?$?k63Ȏ/ݟVqM]ȊQWdÐK׎1J5%6vfrfhSU=QWRer`:F_L vwPf;=l:D pqg,݊q{YI  +^$}uYts|y)G^lRXNJ/\Go'F#uۛCDuJhGBN酴9\t',_Dqm$eio+4< {4>7T& A :$|5h/Ky,U&}6F7-,s5ኦ^s,1Ay:Ƭ_8ϟBuntU{V֯yn,F} 'f"=哘҇Y16Vl63ϞTy@;v>mK7WwZ`ʂHO- +6fˈa!ȷ[Ϳ4b'y#5C:~huL\)PKS31G_[ZuZ~mG\?`hC͙my g32P\@H>]=d?vX&2ndnz@AY52w:|0Q= +"^XY"`19GʟEPY&-'}vQz5oԋˇ inԯ;@Yӧ?2Vds(Wc>NT4W g#c =S%+5|I<Ժ5, +S̎K7ڴdv`h\\ЋfyybAA%zEq&)`{ j&>l;ߡy$;|Ird!0#I3wlRR7LZ t~r(> B(`jy%Rۆqd>/rT0s,!HO4Fg WkOWsr֧0%σdD1 QukY WlAgxް6t,LhZ+*O׬!wa"^3C +>3(PrdkǶq +gu-Q!%,ɄHm~Hr},Eb30ڽڵk6+1N]D+$q %tf_^V4IŤO_B>scF(t98>ߍH4?%`te ]P{5^; +z3VrFT_aU~}+Ć NNti zQv8)=+.=S4>ԗnPW n!ϊX&8Gcmrx0l[Wk(VQzDO/UtZu5:StUSPtȎp V R2-D1jKd)Iw/V@eZ!/MR?{Jh.MMwFѱċDO "3ntvLdqtʠaXʈJq(1JW:ZX v[GƹueoNWgWyK۫ynf`+Ϙ{Ò5@$B~g}P[_}KOk@ qrjL 17tUdd @M,n:bLRؖ’zPyƓ}v1V~CNh] sخRDĒk˰>=-m*\OEY9 Ux,<s;9)C-9J]KZISo]vGh~1Mo87 WgZsU:ĩL>5sм3s +3PJmj;ʦE| )q1@1R,T~sݹ_Ռ*Q1ۓ}<`Ňn-f|hcBWөtdظA2svڙdJXU[,PN>E>ӭ",(@W~O NJohPUֵ.LS("o_|ĖDơ +!'n{>OmE5@Wdˡg!$O->͖m!_ )x&eAN 'nlHthX( W[6 鍺{1{_"7˙9_C_1vPQNM=ŋM8IRx4J@ 8CZͱWˁgHVzF=$b1)QS +Zx?՞嬑!J~8iĐTl>oWJ4nJ6P/bgY#`):W,{w9EhZȂ͚Ckuk-k,晒6Ӥ-e0i֑&N\zWTbCޣq*uJA= `sϨ$zʳi~مTP,&$.@_ /bOy1l`餏 _hb>jXc1=xO +1;N 5ls@SL\4jlkُvZPsof qXA3B)h$0qb\̸Q84h5E T辧ǬM5&;R ?PTýP*owmx,_<ҩ1/+kifT@`gLCumE/F:umq5Z^ajՖ`U>P;x"f6A.w`K&uS3F8"dF+#zRܘNd"%?6ɒ,>9b j^LK7X/m X8GK 8 ⤣Wp " C(!΀l'!;)3c0^(Ϊ2Dg@eY]Ȧm[P҆=̍4<vN g!bH@(eυAHGWF&RlR/د gu'cAyp>APb2:3g~5UZq}@+_qZsKy $ѓA*AJ+<+}`"YKG}bJC(AG ?5v1 eRր.f rN\-SwtI"Nwu=2v3W(*ps?v:ʶ}zs?jO.p=\(jr=|"MYd390~*Gy{n{@g2CcjnO57mA׆=s鹺tO3/Cw.Fo1T5s1#x|$C]+X"2a\+8xEs gP?>'*;뉅_}tj6P{y棱,;-ll?q bBf-hbºG0^bmaiMlB>A8kmmEۥv!nag7rxw0vpbYcp 8OV$ep\+Z༠Lݳ:g??!EM$KHΆz P2 x۱D݄_V9騖R.lC}l%RQ[iҪс|C"Pp1:0DUmj[saB'Fʶb0<旦hKw`?Tr/ݾE8k6}~nu.(u4:ˁiLgZ27Wt'_2`9IkQQwW2UWh"mMpӆyռ'f}9!ώKS:aGi>ؾ-wTxTp7A|hU o0+QV]t4 +*L# 5P7aɦ!v0,GHƾokmPL>Pnd]㼩M-)V>NEr/!NZ;Wk7tOV*@r9 { 147AWn=wolAc{jcvPͷV];!5Wg̚K.)3ޗFL)LN5s>U@O6&be)}Һ"fqKmxdFLmJEog坲KmM9TTih9Tp?j| oS<OecYC0>j&(d|(12X15f]^W'QA`LyP%(,Meء^7[89MGsQGp !።j/{Km:ѾY8(.,.:|ұffX:(Ი؜TD[l$DO +փP9 "c +Eg=泇#=^E qu[?mgO3_<Sb7IĒ~C /c,o nn;= n/8ͣ[68U6f,a?rn,Ǡc>45T2({Vpy*W=+8S@f<Zdɟ<,0ހCT4d`g+vC"V}}e +? VU3 PͲ9Fg 7UE5g嘸+3:{L"tkȌ@]02F%)j +[,H;@sFX+[ŕsgu, $3#8a784nnPUxPU#ZeXQmIr=?SUK+Hl>Ï`m$d4i$8|j99u_)ы'][lXFHl +y0/rɯZ^mʜ7fJs"J;~ &")fFs9͊";9 +sԣv 7݊A+Mb2a|7忢I.<] mB7K{%U6sz88+>/FNA dƝtWAӘɈG=3l +FcjS!9^ddbc6[MOqKuHC\''09Y,*XM@^E=zCt'm\ٸ{ب + f̕ OPnU8Ct_3 :| bl_'t̯jWKۭF_$^H?O$B}P'Fc 4h}g4#oNR-U n }+,4Ke t1rG:fAϊg ld8^XxMrP2PM $dD}nTXQŊT>;WXa=ՃJ1lVI+ɯdBӘ;:27bo U2P)Ye=АL厎'Ô[Z_5qlQ\%, 1X7Rȳuke|CԀ+p ]n$BXgj.>LDI|ϐ)*cΜu__PeLA^d;ocO&vk$PTlF KxΕ/RA=q lrqoA2vl7D"?lI).-%xaMgHSܼA~<YO+fޜP$i‘>eд}|WV{f8+W㊌*sX"TwCZsxyVZUVÉsz.|t@lNJR,U[$.z +;<. ,WZ(. +7hn'"oBpF^|i=k$|54E./$l3) Ep$&0~8 +RI$ 4UY|l'|IH z [9 |.enezf7Pg!>\k=PTqfo>@AVWֳo m&ĽbZ pWc|/w8,Q]wx dctX0):"bX+d09H)1_+by.I[JȽl6Hs.}&ϟ @ȟgg7+-Te嫀~I #/[Vrİ5³#^~r_붪]<?z[(]RhözٓȺ^Zx9\v=:,a;^ $`H>` +r[NXw:[Ĝ>Bvȇ=ytf/r!y%rZ>^vHW,e66uyیIme'FĿ[|jY z6XZwȍ.h!nas0wle}ȱ^Np2 H8봁@vQ!?yyh41ēܷ +!ՋvQAlOy+ Eq`NiDO\Py'b*qܻ40Tx٣[FTF$npO13Pqy%DE!Z1n #Myك/sOSSk;Y%vt FkAz5S&đIh_j x`?"/M$lS&$nFmRۭ/MیA +עh.ݾ'ԹתMSʯ^)wq;ņEu^Ueg7'-7__K0dw4" cYXOUԧgF(~r,ٖ OUi,0XÆD<.BF.szY\Y~Z߱4p$h %Ftd[Wܝn%­g .3u}V +)C"4LkXLL&lA&  a5tV)ٌʳ熙 +U|Dgx_'d& +NdfDqd^7.s3t |H1K>8c,Bd2ƅhjl0A#$Az& u]b-NU~WS]|OUWթ$umYA]C&~ 45ٌR|a莢P1p 1 3n]Wj㋓T\é[u%bNU~FརNb%KMK=Y#8uхdٻC☲jdX`#n8_{P~9l,#`YnUl'ձ/X 6\BNk̓ +p^wW&V+B r~dz1ꥮf1_l64G+q|{~ugv}n%mOOΓGaaL~JfB +Ytl-\(xgIjI%1LWuܕgV;eX,&p~d|SBQк$_R]媹j |db5ҝ )$B)86F&@4+]vCWS.̥5n|kcp8jCPc± 5.]T>Q35=ajR7ĘBf^S^ KO9aa0̌kj^=߮utb/0 ~l/WD_(&6Wv׷N,L,eOhX?P3 *!ѫr/|D Lz9_wY$>M؃Nڢ~{ﰽ⯺rf*>D]"= (UoZapAn'NIt 9c(.̀ʍ7:ڐB n(TX8ҞLΨtvh3=+dz+\ݼDvmfHuؼS< +RB=c;9bb M46Faߨ=k4Dl9KN)܎R8-)ї~mCߺ(RWd_ -v.uڇ~} AHJ@M*\*gw:훳In6cT/r"@}X4ИCL0=$A2Z +xc<;$rݹ@w<ӡE(tkKxfMP<}Z<`YƠE#@ \"(ŊV#2р`猯nwDDF(O]j޾LzzpsG)-it(L$`EY9mH(oNpk/u}zQ+/^ל|ϴ$1K8c=Oi8>e۱𑙖-º5qu;RC!y>LUS3 4>ܼjLE19 + A _IJ=B"b_~Ǔ(34whC_J.^euŏlRרOC`^i4\.]㬥2Qj0(,Od,@*E>fyi{8uy޼YT +x Kx?PK~@ &z_A}w(oB%1k/Xb`eNH@ճV1 ڐ?Qt(9Q + fbB&h PRTT]23 +&^7 dFs*L 3~cw/&u# x\z,۹i.\pS5w"vX4mꦩ>5.c͹@ i5򦛔C0tw;T;TWdR2aN#iJxi~ko$?,/,g͠s,ͦR#I{]w.P+Is̉gxbtl41 ixLp4[E>G샵/`2=Ɨ&5߸ycsdҔV^kqkEQ޹%<]S=,`wOb hݨWGilLcSS+3rAԟ\n{L1x/)TN{a cܼ7qo+{\a0^,]M y^ D#5/(8u=O6 W#{XS0-ɪ}TuWnl2DLGWsU?)%DOu{chcx髨l$]j涛lAORГr  %_c$6De_S؜Ubg~Gn +I@‰" '{)fV۟M0YY#) u 65B$q1'\]e-S0rMQ86+_e:n_@M`OVDr_E-ȃ]K8薔 W 3s"t_\sj:-ǻe6ۈi0u~ЮC%-? 2JyL`erRI˩e9aܮO@^ eZB9磭o}Z0$|*ZGI F[mfA~d?%5!6k3YR\Pw|3tAnb~ _7&ӷiOx +)֢WZmDXֆ͕@J 92szEdߌ/LB{I/cONdxqe",G\R/y0!1["_LU o׳ѽ[J^J^{U>G*+)o`o'ߙ'A>l>r3j + +3^0Nak540<59fh,tQ35w,<虺Ws$G/pF#7&c㙟s$KjEqDr'bhQ7~6hc`9ot߻Hl %^A,46i dv:l[KJ6hXvD0yeoi)3VՃg>sz?ej<0` $d-I7aW1+P_${$&_Ttrխ4+:%EB m3㩼p5f}^?\MO73|DY4uٝϋ=}؜-&|V ܴ1R4%5iIAyAr+%-ijZ-{WlHrJrEϮt@0ϨIបuhNKԨZ?p]oFgZt;`sREp[ nK>˗B7@zf?G8O¿u'P=٘w޾/?Mo_';/+4}j~[?'o?>w~տoG? ?߶og?k?Կ~~/3ٿvgo/?_G/`{|?_;9'i{?_?ooտ/~Ooo_33{~; ", +g.\7Lnv~E& +R>5 1c а5r .&*G?uEGtf1k͗vө8C\Ub^SQ&(m4bqg/p8f3H4Ӊ Jx JJ!v yY* ΒIE^^ n\ԝwcX=럖woT:\z b%RǓNdC\7FـlTldȥ]F3IOiF3G tؿ v|ϤHNO+ + ؠ9p|{iRy=O_Y|T]:Te86&[$]j!LDZ;f}^koi״==K.=q^]27I~d8;BK+뾰6`Q3y~Vْ7lVZfamNMNfv`Ϊ@7{<>e).F4J%cyf#lͦgl^X0DU<S"/k.&$9֪WRC6>bI05 ("R,,KQD7RO*b|NuÂ%G@2QT| +F@RC)OM%vy9"^woδLMblr : +nXi7-&'(Yirʛn5X?hS.Z'8J(\ycB׺xr>>R.'s!wG:p+F)=eμab|n0r%uVMUkdϓW ?xFTZO!L>Oy&y]#uZю".Gʺp54SۀS-=B q\S5otױk.'kS|CRp2魆T ~tQoEuuz6y5 LČ!E|"qOg 7]须 w|L $KbGwlL=U-t[jgq%4ĩ_jpP ͱRL˱(A mTs\~#eusۮnԕv + 2ÁUbLfE79G3.hWIOB*|s>m;Wy*RvG1TY=s}mju+"8ɲEMq*ʬ`P:/O(ؔLt(yn瓖w&ƴz-[qVn-Ii6!#sJfKi0cJS6)|o-)28swWk٩+zEgd]j w=*h[=@JS>RZFp]{T/^Es2/cї41vR]\Wem@ZH婐Q $h ߕSkH}Iq+UҺgTkU:n~̃9*p+f?EU))^F䈐ksv3[3d%9%_ q8ϧjZkO<#-v%eUydUFNU a 5.m(j+q {L++gd#H+&)ΗW-h}xL37΍o@3L=Sjɲ:<3sDmjHL.Rzw^6T?bĐV'T&c Z!кSkJ?x!Ɯx4ln=Hy^cNYo1XjbBv+@YH Mk:•L^ު!t@\^= mR[{hS%G|Ҁu.Ƭ:JwJю%a03fNQoT;لtSqN^"SetQ | -ڶrA_lm8`ulhI1NU^rڶu+Y2K]cꮀuJ=j~afZs?xCWN%u6TZ<ڐvx:XTsλCV%axτq5pZujCopDOLDrJ`8tpb_;;ݛ窛g>)cgvVUvdfN`N,pPJb:|ε2S:Y{HVŸc6w^n3Zs7{>L5@aS >s 6gX=}a|ϿrJVdnpr޼zwNB '§w+LfN͹*[3RI2 q}J n+3nӽPꮀG.\V \/܀f>x!Ʉu; +4dK*@fi?dRhvt \i&sA8vWLONCDMOߖNֺ[L($DS9+yo؆u/$KeY7E,C͝[)a e Pm˛\$XX@{W)!kIokDXސ^` eBNE,Wr8hmbyCz1obIIJ%Q^g |&H;H5}c‘Sw \ՠL݉bS'Y Gs]͌< t `E%d k[$ cS#4B+v:)Mp\%LJl^g,BC zTh-I~ epo&!1]Z$/ +iq,Q]5E\Ek=\ +V-f$b>]}Pλ֔#JTJ!uiSa +`M`}=J 7;\Nno XI>pr<ּf#'CsB3Ar +=G+םj&_y np!dIAnF0-ꮯ +FڴI漾~OW;kԳO; O?;ua_JGsv_BuWlz2#Z\|>*Sv +4*/$h$zT/Sj2D?&ΠC6>]R2‹.)i8g1][99,F_4s0~.7ҭ9f <\ |( V &$&& v..T},ڸ@ |˗ЭUJY -k6D8QYKOweH4'!.dMlzJdr>e~߉.wr>N$GG9A#|}\8mw،,^\u;J ]pvaqX"k\7t꽦GO' h1@%p쮀]-j +W-SćCHTv`,P(g_PoNj&٥mrQJ>ۖ)Q(ܭwsMo *;8zogT4So޸Pש- IRaB^7d3QXCgސ_ꊸ#-|XC-Lm+tHdY<hfu:5g9_NꮀK +{f<7 3]@&B@ wZ<4jOIRҽ*3ۃJ֛zA)g/hA˟=% kQ,>x&3Euw˺K*S1Z%CLW2u5 YE>xGIԆ |sNHmпπoPpPvD]=ߠY.HݛrD8b޸3&!eY2Sykt +^@WZud{;;wNmQy|2 Sx3Bݳкd|3 Ч))B-ITotO2Ru5.`3o|ءq#ѝr#/(,ְ[c f}M| +rShB /#^9Sa?J 0`$>Xh>[YYW^1Cnvɷ[  %$`mD"loLWL,(S^sn&+ q%x_t/Lul6?7L rrcLuwW7VpۉMƬTYTs#mΊ +0B FN5jd?˟Ճ.{IVWO uw|d2п1X 8s3~Ɲ!xfF.Cxs`0, ^XJ򩝣]Y J(؄K2e8+#l_>+e}hT?ڈ1S9\מӭuKbLv""Y<{p{G vV7E0EE]brg)[SuS%y0;6\u܃g~3﬛Ut~J>}؁j]cE9{AŪױMXTi~i+^N~1ѳ9!Y|j*GnqpC"A!"KhB W{Q6^z0C9+_k²hE§^?WKȚ-R(ݩ\ڊ6|̔yf1 +NH3G*~$XN:;X(!xe+ ϧ +m9E"b^Ԇ8 _V)ro']=u/NQ.#vYtKvo컈:_oV\$=Gg0._{Q gX!Ŋ5gSzʣEb{rzbHy,UNІ=zx)) .fP^5: +Y LX%hYIk3{㽶4p+g-nun᰹AJUt!<7׾[,'Vy E6 Buy2=C,=rŚRi+(p[&C +N7,w,e.N_p;f1ŹiJ;Eʗ{)aP^8kjgw6 bJv /&tkcRWQ*+Fmj=2BE󛒜_V|>dhO3ie fU9iUr; X}K >`қ6qcaw0C[NC\e+3J+Dhٰ46d`t˦x]d"HMِa>|dvN?j='\`z[7$qYl̤&R(\S?,%YvBlQ Hl!~>%}{&p5ScF3,\yQ7.=fZ-~ЮSVjB4u]_|ಽ5W]n$﹁9Q^w*u⒜d{I'FȠ,QhL9Lˆ9H=)4X'#ܕχDqFv߾/˟Ɵ{O|ri]߾|/mo_|o}gW/ o7 go|;?a?W~7~?[ׯ߿ο~_}nE-hvm^C+e_f^ضl]'H:{.Ml_˄Sk2}t5^Y2M,LUZHR3,5o,5!{dOs99^XZ B>09&[K/1%yK!CiƲKrEfx锖--?rȂ:}ѯn9. ywe&zfH#{6j6O]dq0v^k zfYIjo X em@̦x//Njg$kj^Ź前h-)0{;(zef&ܸ`!"萇T$0t|+g4*\i"ky\Zߢ0Qi큫Xwuko+ylJfީt (!-- P"Ɗ`4K#˝wrŎ2g~0_OK6 ꨰ5VOJ͍QV /[?I + $bՇY2j=:C ή縧BWPډMx fpM#_MtpwD, +Ը +bͭƏrreyue1fY?OJKgQj$-LL^4J&6pvf4oۄ-UFLr#+!3:dw{Hcې%)i6ӵ\ZrnrșͲ;Ȑ342!qPxew)˱hR {4]3~!b\ya>NHU_ >^WpJ)Pl>r3]eR AȍF:L@s톐L[CnWӦ˝7q+}vfg{H=h F~٫(XZFi3"mb|ݱM++FS3p+ΡMr3r3zPq߰qldIZZ0|-\Z_'jFƀs>f7|Kq3~Y.2( +G E܌˰FHHsQdu';Ë*-[)av6{u\43( +߬[0m +UΡTMvRQ[RAje>^Pe ʵD8Vs : knA9<&uWZ B8'Uŋ +vpo ;dGw3hD"?Usp0HCX=eVCR+1[ neKp~Igb9-ŹXbx_(\T]ܽx߃^`n4XB +hioiPUY5J$J)7?t~~Yi%![̡܅䨇iw0%xeWM\s#yY$\;<'u <$FMNR!s +L(dӆZ35sBF}y/vӫi/[e$躠n"2fq-kq\r Sy6!(k9:Q|1}T 4~!)~eIS3k:!Lج|F5xFn׫sq̣:-:OhS7 H.dKĤס_$ $h#G6%KWꮀdzX£NUZ] ڶapx7WgٜͲy,>K Ii)wujfbǹ5ci)]Kqm)q + q-V "VX"d9$S'`j[RBNF:\׵ȩg)Aץ3ۊ 9Ņ >7j+O";J>qW(y{'kv#Eȇ 5+)cuv[Vxח_SCp$ +yj3 #3$W3Uyyd0rI&D*2y92TLBҨQԚA/w8FZe쯬D:EQe}'É> +֢P3mP gI3f#wv>;x30W(g8ٮ`"9HфMsViE,PI#U=_<#/)p jL4 G !7!Q奭΀NJdF7_]rÑtM`Zk$&V(Āf4_ ؓUz 'MHBiK8Kj<bDrLV)TBIK+°I ҢVK2%3ta)zia- m1qWգlF3^׫(*QͼbohBFbvJGW,m02Kx_Ҡg $4'e5{/$_r0r{f*"[u]RL-(T;qOC| +O/\?_V؞bԟr +xϚ}5M~ZbCZIwd]R`e1ܚf)`#adS}_p83Ԃ֥ b**1wЁ_T8[=pEdu%4ŕvZ +{_AAtO0Qf +XM $U8WR)uWi\x5Bٲ[)89K H6N.yI'RN=gw1p#| +A4UJ`6䘸c *dsf5đEQ夾0 +_ +_$(mhwwwI4( g pivzn>xQ:/NNՎ K]6Bt kN!Ìj6 J*Yq{35>@wQ?+}سY5nJ!ʲW϶K3?8˓u& F'.#S$3.wC-!K DLCZ$q"`<'m}P}>6љ뀢%A\Rj^Al heEP;>aa +PAD͆.ˇ' +t3U *g&6>5ٌR0-CWcߜHz&u&!j<߈L+GlH[} +iXECAY!AYuPDFbBxߜk9[F)Ev6o[Ѭ% 3]A&"kBO>g|(Fȏ_K +@+.l'AIJ!r<󳋺}]"Q*E"dKr hGRtoLYBb?-oes@[.SWqQ3]Άz/ uw|h2KYrkX$n9C-\l4[Z\7y[}8>2W%WbH:f^F,~X Qb"C ֬ XFlgA|5 cAl˜ lI VPz(]?dGzQP hFb g)5,>R8 AƵl gB')2.hSSYyUmrDuɪk^Qm}F^ H;¦Ssq3XX.lR-0߳'o8秦n\ "Y3B"AP Efla_)Иxw_V Yʩi9<gYDf#GGD'ڪPz#Urd-)ct0`qyL֘83Sʭq`-?X~{ W{`݈z}y5\F*LsD{BiC)WB*l9"6r޸ !q;cwe&5Nx=\kiÍRK20ʞTW GljT~Rf;=.ȅmO r~}~kXmh]Gn( ?9lU6XjL`Ѽ6(̀@x’#I+.g% +wQ+`z%j<قt0Yv\Ao_Ϙu+΅JlHv{Z7(ݽ~>ttq?! L: [0oHSMy0%NPYk#HeI'DeH7rrVTfq6ssi^2<`ʝ2`oäeY ~2>ҶlWۄ `x^rSn8$oAڕ p%WiaY)=$Nc^]xfHUv.{;ARBu2z#/oZ7.h1to|FN`+rIȞ-V.eI4<]3260q"ɫEv$})C 10@T;_!ecD(oiYjpH7&Rq5˘>Ȭ[.sIc]eYlj4>Xg~zxN 4X\QXIg!Ϧ3vL>˴CYft= 7S"gl ml2e8+_[[fnZ_ |\ZxkmnfC[4tX@nYIdvRLi#pk)YmQq%3YfT] =K2O`̠ +4ž€eo|2׽-M _l[ dW9K>ٶn/*0~xITĎ*nQ3]fpaVN7ێR NUBO+~6nd>Mh݄.0˄BMu*ZȢs. +nK ba$* y^ϒ5lw+|u8b?,4Pڹ& N>uA.,dbQBʫs|tΖM8ubWB _GW7̌]wim4'0|xg^|=eb>6Zw6ܴ @=ÄTml*ũgn}}4zy N쎫!ANr~{Ec_-?W F(h7<$3at̠vzr|_AQINy;jxvwjX?[{%i ׏z%%-Zrx5pNp+,Bv}H_ [7Er鲱:d'Sf9@垆ɍoWّ,UW~J.欣dv)+$\ME~JuT>]m ijJbq4_'B ^({}6-18ʡ,VduWox304L<̊Ǥa F& 0H54)>z [&z;+Wr $$Q9nvrIcdJRq.K*Jn^%\Hmb#--lv[(GGdfg KYljѫmHi>4i޹Y4|&dx/C>.Pt;!(jy|lihdIC٢ 0V_w2!Ipޑ2U PmlWxw>w=]ѨdӪḆ |5JQB>⸢ŴqQRCP?wzT%\8ݬfM>t4ߟ^PYԩ̫`I91Ru ֽi_>83ϸ(L +DW)ՓG5yuB/+D/@8|KMJ" npX^k5x/t׍r+t2^!+^QFN~%X0 ]ՠtqF\q}Y!=62ʻzada UXEj~uu,$T`j~?^ +`X`WzOREki0 +ax;r֢p/j<+oG0]fǏl4MddOwX"_K,/;H5h;FTP9`mkؗst3Z(TfwXncA ? ?gvnjxŝ@adͭݲqʧfq˂|ܱO}ſ_I=ȵȢ (Kv%Js٩˴^j΋1\yx5JTꛫѕ(;S3W{?Gr{^{5Dzٽ> |Dj~eM@e&kxA ?༆ 4cEdBu7Gɜh}xA~RTa>*@8^J,l7(iACU 9J]ab_OZ,І&dapXy`нZi1Ŏ3?OzD%Ҫ̓.ID[a[]ցZ:a=6Sz+/[^wWGTY nfd^rUd-KV{J31SYӴ4=_j{B*LPnk, oVaj+=0#|f/Qs^\]' sLR%n@ٔ9#ljσu6 ˉ3rEI1;#^cs<rt$ܿ9.r0rZ7 pNN>-Y$Wa ιeeKeK:u5~l.v0_ +};f>]R Xxt⻔I<|643JJiVt`H۰$&U<=iMzQO;qSwIY+97uj)LO;/Ę]ā2e'+r[I]ǛgQC&kqiEwˋf=2Cq,zVV֥@XXFf̮ǕZ"PFn؂MxyF 0f'XsN-;؆z'lqvG۹Yhb{Iή:+ +5:mX3Xfm&f05KU~9}u^RPټ?LPlrqÌBiU_kW]fGϲ ȹ$d*{itGPgQcf2RuѣL+ӕzq>ʨc94NvAThلe&9/8K"l07ɰ]TdĂ| w%x7@dpu9d*עh@./+'0\(*p$4SꮀhcqT+2 |^rx~}$8P3zX @; C{A {)7ÈXٳ8~hV_Qq1*hB*i#IMwYunc4D0ͬ 7w0K+sVsw^6m044@ 2Lw+^wo~(͊9:+n-e.Êi]GoU3a;; D}9*э5YZ.C =d2u]`t񊛐Odjt28t$@ +fjn?12W`hCc$K-W!܅*HY^=UJ ICoSM 6ʘv_Se܊A3r8IY!>,}ˣ[gw!Ǿ@pœ]tm1GԪZ*'[==-˴- )O"TPx[U@k\vRSlYVبÐg}Iz\6T٘u>Z}>Ӎm;+n?pt=w\ug/(2,)N+ z>6̎N,ޙQ(++K߱| Фzܚr}]ݍuDY*޴UB @+Sг<496Tuwdju&pdhyq i":J=7rVMΥ};H=o]w~Xe)SKS BF|[Y-PVPoY͝xBǴUh`q̚#8(ힳh7+iZOݑ~b"67)z=ޏ`5}1wN]3`c|KNI!"Fl + ncl.m>f!ͩ"f5¥f1XD)rO %]{<B5Mۡ쑩@d41/Խ̂j_]*kݭ>U 2ā/.ƂV[#j=e76PYȕߜk_= k`(&Tώgg Il,ZT&t V̀G* uw|eSڬ^IBE4& +Xٵh6f6_k~WJ +.B's-`9O!RNw\XgɒluH77Ř.esL]}<%ۃPGʡ3t1M!}FaQr9?,̭$b%d#f_#{=5;vzϔ-HYuC-LgZ![vc@4qP$7:@n3W]l$hPR2"GJPaT9@%G4}'N{2"#ŨB5]b*~K.VUgpfƸ}?q&рÌLb2=fнf߻gXejQKUfv>w3GN(^ep2fۂv6 iaz̽BNFɊ@yέ9nP?rXcn" ]ljxT9ӉHצ5:=d6˥dCk-|8j4fCK?˾暿Tr*~f'%Uo]?g^}n4JSwU{Nt*ϧR74݊*$/Eqc]x]wԪ*XAJegsK" pT5dկ.Qi.te>!`Ltt!M)u9m}SavlZF7\y*7(SogUpLKtfpl+p^ Kd#lڹRpfe al9e,fk%@ߔY,FF: hUek)~VjWaky>L>> %f;/>b6dU,&Xr saQV@ce>V ^ɣD.6Mc48' ώ,4O1yx#'7C{]"& I]Tlz'TvaH#^zHۙD/ZU\.r}Yf[vf ;-5J;3&KRLmH$hRsr&.2^LV2 [(ԻשNnGK!%kphF~O[*H4P),3ScȕO48qNI=\.Y&Lۜ v|?%`vmK[19N?y#WY1uq^ XB39ZɫWaU0Ȋ;Ǚ]={o%f:k(!&$D뚫Zg򬓋sJ-PMf{S YeXW+ 569qOú*6U\b+d!]kF=jpN$'n`&a‘9R};tALO- 2l94sA_TQG_+$)PC5t͝ &#ڹ@H q8`>R˃ _%uŦRQfsH1\<6LқU^ >a*8GJ3268l빼6}H +Qkq?Fg5NIex>]HuJc1,y6窿Qm-<>UIV-[s]d]ఖ:w#ScW!gaduFx01["G&'8[AS+˪6[$ uw<^~uMUB~DSË<[ۣ⥵$wEr`W[4'fҺ.="Ve+{bJ~)Mm((}iVUqj |ҡ3+IJmE@+û]g/NJgo'eQ^;R%}L D}7j1RAEUDsUOK؉ ++qpnꢟ+NXYeC_v~y̭:}!G0>"SLUs z/EC\)b=89wkzGkGʫY_|] (QMPϰZ+f_j:pul8z-X52(4 k=%-\,yM3j? 1Aw rlJ߀GN`->!CfPJV>" MG{ ٺ+},f/PJ(WR{J&H4\eS%>:9qspUs)@^/))oJfUev%hnIծ̷5ڡPJ^˱ISeװmuu'sKqa+?ں=MqR}rVt&jqvZ!Q¨X9SQU ^r-^#P]bcq8B~4wq_ r$W#m>8:`#gyG%ڐ)%ʞi@ 6Vww/B-iç{Lkg>fpUnP8Y22Y(=;\OV˺jIpleݼB2H.\Jki'1s9k6.w b +I8`(ysj[`rJ3uADgD +{n K[.ЂDq jx20 +!{sPC=Ą +@벱N&˷!$cZkd٠g;$Oӵ?ҲBBݨQ-i,nTA +CNlۚDբw:'m#sb qc ;7o_Nn(Hyqc㼠c{6нq(VhK 1~ƚ$X7mSoXmc'o#$a鸺{}+o\Q9_]<|TݓC|T8K;ޯ&ZxzZ㎸I\hf-2 =43l ­q)vCc:v€<vO]2Ua}1Ũ:d+W?%܌ޫZKdej:Qhĝ5z!';WB@\zrпFn9^#hV(uzR=Z"ݒ)!ܸYLmp<$e +gk*~t_.@WOlnzCB0sCBTM}T]UF|VM}^woγӪ1%f6 TiL O;"1"P琒l\K"zͯx5ůDzn ReyujxAixfU[!T^&TŻ:'S%#SU?x!F%'H(c!n僁wD: !}P]Ⱥ)$`(Atf)+ǭ6gڭ,.1 am`.Ug|j#~ss 9!B to̅~.9fzw3_j`R$CDPbL/†LzDІDx:'cV0ɞGWq +vTBX~> ^%ǭtuZVL%1Rϳ{$mh]{c]t- -Y!pU } ]m(&]m/>ʭlpi|UC@ƁD\F f4 ӾHIW"6^coZ!sk IޤS+f3Hm΁}^ezڕ_:[ ߝFs;F5Jzo۪!!,Ewei ڈjS +!ˡRZv 5* cc{ݽ9Ϗ1i՘q/vԾqnAʹZfZC4k7mC3Aܢ. >cKWmr3=_J͂zJE7$mjCLBnmF1pu$w"/^Es22BY2f;9~U$K(B8Ѡg^wm+wQ &y[z&uP GGV?x!|"ԭ3NJW Њhk7XsbҴp,`ψbaelO+łz^D,ʞ~L+҇|q& W?yq*qS`5dK{*ڴ%_klǽMspeIIU'[dj +/L9]mC:R=DJO+3\/ x%p`lY;̓ani9n$uӂ} z t9E0 @q6VwKU|NVq%šG1;dWչ悮?/Mȉ'3*~H.%_}}ஶo ]yۘR`م| T^4^fah1.逓R"2V/EGjnm`IrηyŊ fR'`.4$hVc6v I;w6i*6٫V3nҲzxp$C(q~ +!Q8Y8\j|U_SL_yRcHɪ~|{IE]-mǛơ/V2D;E܈\"J,&wtsh{]?sP Zj<%3 hVtۑS-$v~ +`@\*Vq3-gzVŵ֯gtĔmޓw>a= oQ\`$zm,ķR% +%Ĝݚg|5='@q!;H4pSI6OcD$/MOi߮8| 4F["qo0$pzd _챠lr.J[Mh-| )l + Uʳ2/2RKv.Vy\/́YYChV˅˭wbޖson/w:AlH#JuY&J6.a⇈xwz&%76%BsAWoA0Ǹt{ ~\*Tgz3Nhu5Jp9{)=6媇uU;\l]ޭg稟 $u ޣ,v00$ukM~ץ-0 r/Eo:qpWzl{_zLj\fI[!O)20QTLdL T%{kn}CWvq*qZ32 Zz;2OA:u"> +Բ-S*c/F8<3Ωj8T.☳Z=-RډW%7BQhv/@:Ϙ(U"˃z&AȞڽVn?b7uqƥ9 vWoZHNܛ?kII="\9xDn&Pz(wK9|=C5EC$>c˝b]f(y+ +blx/j3ܦ殧6$̶_ɇb_f'#GH!!D^CQbPztMC‚SJ&maZwh!n<ζܨl>R\D=5tuE|kؽ7zJu#޵r4jfT .Jژ95tЩyAc{$&G `t%Ka|H/=1* z,Zt瑛S2ܩ,P=`l .] "|1/jSWj"S{7xq~ۙfvԅa䴶%A%@A_󡭣cźE缅B:АK(=$_lQɻ1%T5V;]͎ZLڀ+h1t]Gu=x18TR񞲻QǑ9JRSsNpJMwϴ.TjR1e/glnBNRbkZb83Wy`֛ZZ;tO0@aj$W"_.Km$伴TBj>튗skP]+7lknꁉRzKq*L +⩧isi/c?z\ǘ,y)n$fyꁉ4^ ZnKł+p]K[Vqwj(~`|tP_rq2²sKSyG%Dc 2rsV_ N[t$⣄peEzГaeF񘥠J=!sRΘi(^ˢA M:{3=CyC4ffg/7Y= +( + =o҆eiy1)_p=Eiꝡ進<0GWvlI*uć)n:p4nץ; +D9%&a-+EuG{|a#XadV2tͳ*A5[+a闠{۶N΀ .w6f9^Cxn&Qr~rvG1)~*Rјx֮|8 \ۋ.,kDDLrSrj$"'AJ&%\yAb3L.߁\RI)T)S S#8HH?& 3JH&՟QA ֯a%Xu}ȜHe$xK`f^Lm'wz:̋8y/A\d_kf88r vڳR\3 Xݰ'45VPJy;E{#7w6tuE|3P$9x'GJ*~Zbj? b1w~н{{"\{ mpyLo>S9M +wI?|4o%1@kbp$u͙TD`(U3.gR#.QTE+4َJi ;.d~^X4X@:X8h3@/0x%ð.FXL '<1\">sFdebg-yхvІ|Yz݉7TE6*T*Eͽ^ꯔuK*pAH?I%8R/}ŏm nJ9 B/P9cϋ޶ |q m/h/40Rd,A&hYc]PA4J?,4U_["~}_BK + =6b8nQ]P=RS)T>śS3(ޠ2nU/A7׎(_uЙ@Vfu ^O .)$pB_A8ؚC`i,l4ͦV  ҥ;Uۖ޺SBhˍ]]sݡ˴?Q(\#ʲ?G3:@ C+Žyr{gwКΛul/w*fdFI. -v\];tt`PFgt}tjV<ghQ3F|eV4WzHZ~ڔw]BSy Y>^Wq ?Q| ;˱bbΎ8]"UwQHX{r%N(;+zO]m?x33lMHx?@91/4־Xě>h_!8-lO8VԈbA-( (gwVq'J[I{l5SU}qX$bۗZ=0t:{]%ܴC4cbjsdޣUF-eK/g桋‰SKÔ?P=0HVkdVYR-;j#θr=<*Q;_@'*zRɵӮ!R;[qO xZ^>d!r cft!~nOq,ՐUgWFI2Ruf؁汓ϞӪG Ѡh}36ߩ8niF )87QnueY1rM!]lgyui>o+MOz 5D|B?&7"(lYꠤ1s+k!w`M7l8ԑ)^_!—uF@~tׅ/uWVغd0+p)fn-M^ZJj?WǯZH̉T B7?طKghb~`œa垁[IEXs=Gj"Gg^ Q+9⑘~2)?{c8UkvRN쳸6V()S}9^mT\_M;I8JϿ_|[׾zϾ_~~YΗ/w/?ׯ?\U~SO_ۿw//?7o͟o?Wo},c"rw$˾ Cd&g D_BNLcS%y!P/Aw>X;11oCm&+I{zzɩ_^J@u1z$8<@g8)Il^zmD@mN49DmV +tAYvny,uf&S|7fM(cSSXI(VgxǞ*[%JF_<3kOР;d9h[9ɪȥL5nlB p4v?S惮ߎX] D/U?L[Wsӵl86IJ[oW3V t59)EQ±)Sh{R=Qk:P >dm(*j;$1+wCeR'~RJ$Q)jWJ3}Ҧ|w!.Bn%ҎjJ3{`@r˪A{jPRDb4 `tF#6.4SI BcnjS[jrMX=hfZ#5u}ŤyzK68/]N<qBӇ/4mf M5J\4m"*8Vg'-Yr4tuE|96S9u 7:K',jtojŊ ݡ~ஶtaYn+:#?iR:[3sw 7jwn'~/h.h&F*5*5|}&:!\H):Sm[cY|HChfþK)ySg,ܜ+ppsR[;M0F"WF7q*n}VZiZfm٧"CeX~hhH6hIwC<@أuLaYffP$^"xjZW6qijy %o%ζ܎Xgi &jdb2f^:ZŲm0%f*rٔM(#$VLUpA_BÊpKiͻatR^_GI+m|՜S1˕`|Yr{jfmQ i)ڏIű\l€8P#-Q=L?kOBFݡ6GM\%q> +;#)j.pl]ϿY"McX &A"͹F$$"Z`#A9HZ3v}p"ıA 57;EВ+J|J~ uT6ͣ/dYWpb9keMfՓs#7/\g_UWğ 90ךcNV)}s_aRc< o é觀(lR]hR_5M*?*]+v +P=p_M\^ UWңȉFTr5d_+;A[o/q]iCo0j'|95xOas`_}8].KZjl[ҭkEITT*^#$ yǬߌe(Qs=lń &Ƚq0Ķ2B~Ghk%輑L,]7؉m[9NpA̴=mZ?CjS#;#B@H^l~=zIf31v4Tf3q,ZF(1Cwxg-/DZP#wit`f&U]Qz`>c|7m܉{CA_)d藠PXKNQNfVNksIb't·:R?1Ahb;[ȳx̌զc*`&ԚZ4#0%Q,abxX?kU;㱹٪}9=KkE҆~AVԲw33{ˍ rshs"~<1֫䇲/~NXgJsy4Y~zaNTUbNQqOkN>ܓdQ9bmScG~Xnh-D\P&7lj:bz}&"M%dc T̢qe_1.Ob 6ێ2{[Em+0k.4 ^!fQ o1u!LW_s$w ^mwBBR8 Vo.|M%4Hm悮n$rP={JUF=~u!؍ibXPj3b >0z 1Gj3b*Vdg'ZO,fl(-p8x +9E,CFeº6xsKI#jʌ?[0*Tcc>I}O%$%yz.rX]130srDeW37kލx7jLSJ873OBh*fX + [>aoB7H!~]^sqe5z1,zp Fr2惮0d2wڦ:o*6su~k>k?M3ZSK>gxR)7tN@iw X1pGinOAu*&sǿupŊ DL lJ| 2]n-u/FANw.7vN)fNעܫf3kU.J*ΤpZYQt4|e[t $Bd9w+/1UZn}YnXB",%n5-UWğ/X=0W(܎aS8A42cUqXoDnĤ/ud">a/ꁉvpq߱EWԮa7f+⩧3*u2[v'ѥoZ[/֯D_BQQxZ/j=vFޮqMm.[fҰ]#c*Ok1{ 楉+ jўM];ƾw Dsw5o6rkTlW(>z={Sozoo CQ};b tC0;Ї1gskC61UƐ +Ե1\g5dC&c^ +Yb36N%_nmf?Co0jǹ6wF½ѾN"H$Z NԟMv| ӓ&\+sbPޖʞɜ]m??K@:u`i1@>˸J:c9Wn])k|M=E̘x4Cޠw{: ፆ1;rE99D$dz̳U)G%?6-~t[7m +b&.iu9̳\Jȃʖ0wBAk>Z*ZLljnC9&s1Vb]+CHZ@S?0KCEɗ'w u,jSW rk`T=0HM(iXWԟؙb?u=0#'qdE)O9Ai+2[hQ|i%Tg9H\4:A,WJ^ dx=+Ɵ)exUik+qlХ]q jwjvlkꕝ+/iZ\>g3jU̽QTpZyꊸ 3Z\?EΈHk42#5ÛfMV4o)g[o7aM1DmY u{zFIԤ_wxCsAWW]=!EϤ=z񍮩ߓDIމ.|!е *'%p۠+&%UoORr`/6yh.!G/=(`FƑ4QQWh VNs 4&!-EBdܻ]7%q̓j=x21ے=[?/?凿/?/uw?gx߸H}g~q{{_7??ǿv}?'d5M`}]!2灇UT񇐐~ 9> bo4PMyGy +ѹ ^-}F zOyk'5uPzFMg##ځփе|1nMt#rbΨg'ϡ829[jAWt1*k-^x~ӇzHS3M+{)*`#9\zC\b)3f@jpN~>s[S[Vvtp_&kR=K7X7 GF1o r~ts:l=;Zra ݔAdA[BV`[ϖR^,pS3 fhUT%ZIr /ռ*w,^KJ" ^AXj3{q$)Xb +zth&^TKJ\x|V\Ǯa闠{m~8\g(o[A=!A !GhO+c?"_Uf5&'$5mm$7^Դt u?j"ڪK;p.>ݻG_+r'K@/EEjS +yh.؍S%scR0Jx 5T3}~ R{`nZU֧}yM|C׷S\XH~c&8}Y Xe}=>b8WaJ%sLt'EbCr.x6sasAWW'"rHNMhEYlA4jfZ{ekA_[j²P_>WD#q ޾rtLTȯy#In0; ^^͛?1 %b0^5/ŕ``Q=7pzK>i*T5Ԍ=igɅdJ[*P~+MTeZy#NANdx>@GcKbK 01zF4ڢS"q~dH.d=b f[H`1Lف8ˆ\&dd5=az1Z1wh>&Żq-甬d9$YVM.[γ_P4LKTNJ$w[z݌w [aYqC_^Ӎ/Cg[꜄Qŷ+{)P\,P=R[ٶhǁ);TZ5.\/0P/6e^O-&`Q;=2 beP[誤EN2-JzHęhqeR[A7]¢]RRm[eD I?a[ǛSlhsǙsJ&X<%Qn*V'XG^/0d{ ܳ2S%D9*߿ܯn ݲ6Ge*|g-K"381@\W\cG(Pk1gFߛ|06%\r~Oڔ퐩mvgikͼw]'&tgztEi.}lw{rE#fL&|s0S~Qt;37+Vz)nfƦ>RsK9jI{_b3&fP{Gc7B)peз!?*.hyȽ2 ۑc^g6HGOW.fKX](+X|,ҢWOCaX +{3њ"X40{)}#n%R6^0t}طmH+*-I$.SJDo,=sV Duwm+WWğ]LQ3g%+l:bjw?iYLGWg8_{BrGKɍLLScϸ9ŌPB@)xT43/6h.jP(-rSfb=^xa7/?sbnr΅l;&5%в"|C@gƳA;$w뷃 c:?ŌUʶt<{9wSꎒS%jזaj\$\H Čbuz쩘̈H=Ş2r>WP>^eIUSJ4m~{';=cƬTےJ\s{>Q * t"&C[4ɢsZ*}_8J"A|nһ|(Z1w6ăƫ:;/1vI˱z`⑚hz݆yVSR#X8O3h;asrS'K.3 /#J5?Je?ƻ݃H,U=MrHH;DkgJd7]F5u5Z S6㡵 }pe뼟{BRUu4ܿڽ,l9>͂'"l'?Q.2鲟&G\^_(g,AS̓JTd̹%&&.Km X<̍u9 4 8.1si:4TOz;;lW$_  S2Mr[,t⑷Z=0s>u :="7mW%qꝡq$ bMJE/ &չPjc=D \z0nzNBi:޺H'W20PQK{فG͍BG:'Cg*A׎ aڇQfh0|!Hc~Hڍ⩹'-lY{YcV@ gL% %mևU1Û3\"@;C׉U긕փ7g+8 GIA_W_~H9v:Mtb g>tN޴4VNr[6$? 9 tZ旪d+lTŵǂcQmuO]_q K9M d3^7%^4"E3+[]s+f߯5t!k9>%&C_J-kjrhk9h>YJdix"RQDm#RRk+ٻ_L!XL/I7SZSk4^ viana|Ôƺ?oX=0H-i9Њ~D?ؙHzjK99똹6Tbɢ 1M4ױHq=74-MT?#tt=8n'=<凁5Em]wMߴb0mcմ(UWm%<_͸6;4^O46qA%Fw,zS {;Gx,Ie/QSRܕ9Lc]u.[M}ũRzΚv3W">nsƦ8I/} .^g6󕡦ڡnzOF46{25c]%pu*Bƛ@#gMoEJXkE89fdŽp|ǰGs|IDSQ;°R=92/tyr˪C}ׁї“ #qEF\AR Cy9ŤyErAWT(>)FyK8ntPCϭwB7VLl.AFQ *K7h ١藠ߓɟ%F301?9[FUjbw;dsm7_lX60gL0fzn-:6M?R d;PXO`؈1 }w/SN꫁m)+S] =]U'ZD*TtX}΋bGz;UO5&b#Z#10.`ZESTˏcc-zT(m4M+Dy{h;"ś%Uj +Mi]1H8 ]]OԆ/ +]IK>a>xš, +(VgxC_msʌ)]j4Ǎ xbRU}sYֵYLaq~ț3ewf^;,+qgb+Y@tG+3#=pWC/L:.snrD'{0F/a&SΒZ5FE4<4 #K[b*_B ,bS?%gWэ\UgQ֨x$d3'&bہk:#bj3Z +YABs;SF蔏kvkJ-j>]Sg(Itp_:,h_ڜbfb(ހxxb筶tv]6Kr^Drt|^B VR@9ۊRBe'<%LT̅'P-*eG\犣42ŝmѷ&A-]a3p;73rp}t8R]Yas ȷ/T̅{=GRh܍ۜW:w_d⒐79?rȶ>U]G9eZKmLJdi{Jgz_x{ +ׄ2mhM.!,)epΫacX=)>ĄPHmr>sꁉ YB3)̕~7^Vj~KώۨGaFF'N GDmFYy( T7 z4(T1r#:\`rkL\ojLP8l+:"Q5/k@wPcC{P133֝šF8RZlG3r*V3?OX49蛌{錍DB#ߗL~36y~a.>Jc鄛IX5/x[⢋_̦ә/},^g1Ҳ?~n4MSڌ-K*]$_7R+tusm=Wuc3ί)[Zee'Xl>lXp\zhEWwo}P{A3X᭶.ٔoKmT⋯rx9ʝo@>[SzruUw$FwxNjn2cVdK]@!\J+X->,S"M֛x.6ϋ+AqFL.o/ҿ?L܌A1'gw:_φ|BK1lwqfDr%GQ|ajgT `bF:6;ƼqO-b S{T|6XƈZmVF3* |Qݲ3.8R캩iUl,78:il$hpF"4)gic Zf~/ۛcMz= .]Dʥ`Jۗ\g o_=a9MLs +8v=eaAhٱjKeESܺuY:ρ| D\؛Ɲ!y|^k#׆@NZ+vX}3XYlI9?`$|ࢡ@ tclfWsqN1?( =M _(mW'A[\1MkQ"ly3I%Kk,JP[,䦡)_';emPrO~bJmnq\U$Cu60u6 /y1=&yZ\;i/Awi$Hv Cj.G?^́Y;{ʅ^ϰuo8t1dY;^5Q\K(sw=3NJɲQ}E]nIe~X":y{TuE|nH}MYengOX`4SS-|v: + _)?ܤ%+j/7P 7`{)egIR!FS=qoLa22(̭ŕ&RA\Xa:!Ȁk|M$P푃1obIћ !:ŏ߉Ij5X9VH$u)+8e{!hH/K҅to ?zb"Y6rG,(A펌;A"_B&֦JA7XyhPvEm v=Js +bB*ǨMYk$ۺ1=N\"lN2W{:yJ5SB:`?)T نG^݄FvDPנ^=q$7IQ3oqZc7&>[/|+(jȪP[8 цy6̼+\_G{IzY4YÍ)lKT.vܩ~`28;iiA1!5EWcRGB 3an,J☞֭{='z;M_`^Lm36gHG||4=5禤!)6S~\悮9\@k_hWkxknqL}0GSgyqW:S ">B6v$[ƆT;Mo`h_L-CIwy'N]}d0]=%{0%nyu׋ʦΜoFUۗd@>lHUFxM5$&YC?8">Am)%"9M8G=<_+GAI_qajdW~~ }k炲=Ɉ!y[mY,Z_3bjSNk:2mC#C DWb'CeXq >]b]\iqks?KV*QKg8RW)cQƖxIzme{*86 R_-SmBK`pc_jӶuƑbBL`(2;F +s($'9ɉ V&WA(B r)Zt`Y_B2YCJϣEݞ&)"qWzt$ ˗<`;љ! :]OvAx]bHݐ&L8%qЕVf61*^Be=Ta\hNoDŠsSKA3ӎL: ŋMIN_sfzmP:Fio܀@V'_IƍB&O3ѱht%Jxv^5/!W6c^JQ+:y_FfPү,1:TL3XXüD[!ʳӇU Uc;$T&ime x80RaVVgtHB>dqkXP&+ܙ\8to:㪝1w-fvgRN=|S9=Z/z/Rk`e, + :!3*Y`cGm d4>&v [g{ livTdyͶ[=@Q=O#$=(U6י\! .slr)vެ^%js7ŷ}thV\nng'/5y,ޚS瓿ޡM<Ĭ:H\>tJ;6Vc;owBMw #PSLb ! %qoNCy> )E4S߹u5l'WDt77NJV|((p蝖y2G9x r1q< 5Z~FJzfDX8v +(=/V1|}fZ$ɴHi~y EhZkrO-lxnޤ ]\} p{X>|Zlr +#N8ηiRlhL\k%03/6'39xTKнm}2v(y,dgtLRE6GM]H"\O KQ?㢶FUin˼(b~&_5_ێ*YJuR%KMcr-]ٶ˛-if-1 0S]C Ĺ8wNȶF^ă8FdbQmoD_fM/.(Wcsi,f:^;O_F@l +@nE? ެ%Pj^.ulP}2P=hnmLv\;6Ct?r$ٲh0Hd(u-R%XK8{1D1_RG`K~&kiZzxզ귝iˡΏA@׀81+u5y=|]WH}dT<:KH@6 +5S9P,c(x0FYwDF~Z/}1/1\}gH&.rW[e bPg8.2#е}0YSB,RU+1Wԣl`?M|QO悮tw:=`djOJEjA;hav$u[\2o"N*픐|[xfbCiZqrCXu u\1eٮb^4E2|ǝSL5/ۺ#Uslgҋ'CM1i5d@m撧Z@X6^vHm]9n34ka3/>SxX#W4jnz;Z!B 6&zR̤ه-;n5^|Y\\x=G7AɿWUWğoOX=0W,t;>nv<)"9]4yٛxs5+UWğbu`Q$=;l03mFjq藠X.%]6Tn8P@z#nCHtpRd2? 2IG$;`wxwT+IB;cd.ߍ ,tbd^^~=BgnFnT{;;ھH6W4ހ!qmrOB 9mSd+w*T=.B=%/ lw!oД8t֔\2" 6HNݒc̃\$jyIGW =13iydAhIF<:j-e֛*eyZG\ @dqOzh\URVJUnZ:%V') TG-憁@î>JEF~8%O57C7`j=p8/5cJ]yi)&ԆQq^ ]ʑʛR&-*%՚(&V&LA=|$9ؠƼլ4oq=yRv7^PقaxǟYh4_,dC@KeFfbiM;G/;ɬa\0cNdNdNt$_$R,DL)F&߱ɡaK t6gȔK&"+Np=6?XB@ +cs {IA4.T=sznB& @[c.dB2Jx %hi0hkoA#] }*1SN󼷂"s6Z#KWA%jBKL sD {}Wȼ㬫u$Jl::J1eۖ0b%;QW]CNTG"t6p|SyLW=.Tw8uք+Ebznr1`S0 9tD#%ܙ%rdn燠:[`& oӨi,[2Gn΋PÛ΢f[QՒEFf[wg {#)Y˳;L^];ѝC/p{[@' eՖPN sҺ6'bOnB '9+c)Ul Ȯō}_E.l7}W͝B+ =΅<)ewd^>HtV;ÿܷdcx4li^ Zc}C =PCB 3ӎL: ŋ^ŝؕ_q'h;K_NtiqM=9>9 \33k0P[Am"z+ĨUOP-QH\]ONݎZW_M.r|jVM{xq55hz#8<`)+d rHUn+ZZimafrɼry6 !\-u.ML` mMTq#cuE};3p`1exI+5)~’k-^q\zC<\VrGxzmuP,hs!蕕CYr MrA9[Ⱦ(F%WK $xܦc}`~|\$nŃL 8t,5gזyp–k$KE[ +RDGm̜jO`ۖЙ&f',Юl1S,f"eFmwŭNxXpJF1`8^Uww z5_O7d>*聢/ \ߢ߬I^GC*Su wl7{G:%(%]O?_]&xfF龇 aRE]_QŨ3De]s7E+m_B%Eۆcm&k;CA ]䔥:V8Q!%~bhP·֣Qd=u/Yq PMy2Wp\f諦t{·H*BxV<{G|Ct :hEeM ur׈$5a s +WE3ʢ b#%87RƃLO=0bs1o@e $=iɖ*qDgk%p+Fp}E] 2'""u{R~:_ ">qSp,\2@#wd{;—}5W{]:YAǜUs\wZ,^Y;QTM6?/݋8^YOT4L7RB +T(6| &ڦC\mVr=*||V'D]T1|' | %̥cDf^-2G7u϶~V 1?~zPre1 k-XHKuzZVEل=Sp9׎]Cl!\`}w kX4(~/MH]Kbkٺb5MK`G3iaYYfn `0|Y,ȧ۠xX BJ(_BdF"v|]e?n'<}wUW]%sƏodӟ#{4eAuzԵwj떳t)E7N_L}8xxR`jPwX95bo"3tPooC qes^~Z)"3K1vIYWM˱kڱe=,tCi7²pX9gNe hʃ҈QjtaׯՍC`;V=רnм[t7SLu{K${@md7Xr_etr 4|.u#¼.OTz@^=`]8tPx5o]ƁQA{jzRP70s @ڲnIi`Ck=Z܎4$d|4sG>T4 =5yB5Y-KVYezۘn]FzWI\@mv{Hդw;_@l +=/ކ ٕ@Ъ$!Mt۾Qb$7WUPho% +c)r"?,gh*G(+WO@N'?K)9LX-#zCV>T#|YQS6.9AٷMaL]͍þ8!N;69Fc_NqT}_I;F%sV<XG5*ʊ{p['n>NxrIP&I-#~p5,[hR£%1@h1y'|d׽Lv43HEZbdMREFfm*}`_P3pup]z;m1(J]k(Ug]p1Q +`6 ాn2A?T* +׸ٲY#w[wd{_\z4R'N3}@\RّiCbiw_F.w8.KN֖6e8g>C)Kj뭃P.ﳋ6fQCS/p wtFw;nc։]\@ 爊3'.w^+(0݇U%Izyz7V4z}*\D>&S:@Z>a{;/cbURgڊ5"KW\Nז\]ؤy-xޅ (m*K>u813v^~<f& +pdJ{PN oVVetyd1WemUfc0y}^3,J{o$;hO.↥vC&LͲ! JC$L9@r9s^zx`@hڃ{-<___\#wܟ܇6G/G{\]wGMϖO + X+̌lg <Ћ*/"顶0xn<ŝTP~3VE^k9G+F#w@g_gt+pd߼iOy;nM_`^,mj/k^6O;M޽}E[%_S+yf&(k aEi?!&н ~}܂t:~@yEa\=u=d4z桧>z}+ΊxGags54*h=q.*IeO +@q*A9 lXz'0apA/zԌ6nUB5 Neѓ W;&͠|ǶLEjeN5 V %+ +t>h2iZG=}=W44C ~FU_I#(mԵps[{7~65"ͷP٣Vv_Fs;Ow|{ZG;<&(búrʼ9\URE]ղPDN(!%Fwx'1OyçSTݍM&w`X?^^ +="AVftSjRVFqɪr^hNqC#:jCFSw +z9PݮK\"0c/J,J,0,[*!ȦC4藍A= 鋻l/.D rsA}vO7c;yF>a/"1 :\XA脷pyv+Dt?-XW>gImށWzPIMº1F9.gW5;?‘_a^1}׻";V{SBq_8\M%E@m.DKfM+_o\2ݦ)[)Epٸ>\mXz".wFz,-8 agr$k ]@{$4 UvX;G#}o f/l93p=aK+Kba>un+Q7UxrEZNSZ@tS5:;3X +y-:=a9Rubd`(Vx5P0ty&:w<xPY#R;t]v0*5| +h~Np8U9lotvF#+:rU村#]'vz)7t1{w8Y5V28Լ:oKM2\7Vy_#+}TV)y:+;vɖPްj4!40ԺӰ,d?zg^844{g8m3R״ҩ%eq;Kʂgψ[1/V'~6LXI Zݤh&tKy x^'lVDt}Bê#~Ժ=W FkSZaT/5"]0@We1pWn ݳO-}xۋTB&UxC0)O5aꗍ$ .m3uȂX7ȊqM SEOAY8 r[Y/t m!= ǖ-L8sNAj zx;$@̮~=\(慫q$wrFOa5*fVrCXybB-_F"/FrYځo]iq_%H,Zspt߲qq +߇!8C.0l!ux30IxwB?tllT:k)ӳ.Շ9e6B³(K|ұ+E/Cv_1+m :>AvXO&,T:S9^x:8iYƪE @as] +AD( +Tc 5H8Mu%P qD'kfυ7}SRxd#*s^+az^+"i\ƶ0 +~*5-KuZ$#c %*rFRR3bX+M?lX іar?͍־'mXY`vi@a&*:)~`@(.xnI*mc߇ЈKYm8HpS bpPz+# ;)8u> }N +0L8f m)Xb9PWx]/&,5ʬbܟFxƆB~qҖ6O,=]ա炵i69S9sFK\1]25$W¼~IbK俬0\b甫O>܂{' +)7(O|By`C/}-:I>(?6%_/]u6qf]fa8|^IV{ůt4Ss_;@wBein?Wq 3qFf$ n>Sx(z}'q*77g| +a8 }S>S~{Aa%%uS]su gUo>_rIZ.{PFټ2 KZt?Q +^ʖMf3]3&LAJ: S& }#J쥇۵L[:aq0M&OvCO̡{Mݼ_SI=&~g\^Kk,zc"N%,΁4,3,HDnls#9@Ifq bʍG]j5f0PMzڑ?XA{@NdWm n7U[)f xq r1OHJqB>wQ;\;8|޶"-o @m!j[#&<$`ՠzwMdRbvJvSݺG,$e"LM}va4$7fIJl$e>]Fȶz)8=w$냇Cz ;LzׁڸM<Ƀ襅a6:P%(MmbmEpկfv$W4Wms?U!Tj3êɐ}b$=IҮgZ[Õ in8f68h"{!_{<~B`$4mW砇'0,&$Qٺӡ˓<ʡ=Xr&ܻ%'!-ң۪3gٷ4Z;]U6("dI=KA7E>Z' DCKM#Ңf[& +N]B07@Uiu?At[\XzdwȔK^T9/:kοGFxI|}8CҦVs{UUY&U==Ev,}@1BAMy!ֹOB歐~qmƤC04p$U r3`/6tbpAFATѬBH:47L!b&!2vusrtH$m% "tAݗg3/ˈFt>12/ uEJ֘[N6oT}艅EbjIyQØaپ晊3l64l XϘ{1z#5[}% Uf2K7;/p9GaӼ74󆔤m{/ߪэ{o)Vg~ޟ 9lJw!?Ѝ,jn|SPUgWLӼ_}ެBDZeTCJHpV2{6xO!CdXr U",;i7;6 4!5yhCtŎ{ߜ,Gt^˵Κd%{(߷%ZiKR ~Kʱ>Pڌ%_.]5kv4&7$a:e3dvfRܸ'f?wF7\/!S;@:jaTk==%޴U}]OoJfؘ)/%)a;y=w)w3HvƐigPnh/Rd?Ij1<)%vZ͌v*2--ݮ6 +,:fdh*ݼ󁾉!"#s yYByEgrܧDf`mލd="pb F趱]H?t? Ef-~&gGL7ɦTa&,g@Hs-`c +)t4,nܮ qM, ?uÞ -Tu uJ3bvhEd'aM*wXGFu9຋}|C 3]F,cŤnrLL2%_Mx\N!7ҟ +}GZI|`@١8þE$~w-XK+@KzƉEg@={7nd3=ɺI LQ)=ix+U''=Qm?qxogu@{?Kr xK;F3^Oj& zd,n34kAfNg(E/63cS{flZi9Ӿ'_<3F@k70 5x 0m_##C7wU)liU UjIn^?gT/!>H7Y+5kaҜJq"Щ: +*LIn*!IGԌpt{hqann{H\g +]gep_Wwurvo@vNj <|i\c)H>O6 UXֲl۱]}bBq FdR~@ڔkq "-w'i>Z/Aw/@i'ߟ~17Gݓmmd19 JqG'd-X$Tw3`7o n-cw1D:HQQ[*-l-?\C0Ғ$ˬT$X7IҭDoE׉<\ Īh!K[ 'Ö:mYVķj,ɸgei}`y'IkyZ}Dh޸!VLiq:Cq;/[W = +.RDFUqDl#57k 7:$gI|~WD%[B|hޙP{_>ySM !W&H/JwMbd橔k>~XijSJ2vbCS6k-T[:˸wH*p]M$o6!C~b6ra ;u} +Wf g{|F>s)$//H L-~=NW{.Q2ܹnRR{k}Șm#5UO(v>{@!HvM ,РAVC~sQaѰTWv)R< +'YKP>3tΣCoww>C +FJnz{B6Ҧ\Epd3#B-y͍%F]`A?oޓC +:iu>sǴi`7 &.a0Rϧ!gB/0l +4_g}\GdNSQT{!hF"i&"j:nlD Awɴv^ujPlbiGMj x2݁yRk[Ϡ +\փa_yb/锗sׅJ#eڑiCbi1i&37݉EV,^b*NK`Y{%6/vmeɔP?Jζ|Ms<0%qIa3X*+؄Ʊfyb/Y]Ld4嚏fs1=Ae^,Ku Ch %_lxN%A*9'kK8f`uq)6X}:7ᣃK6!vGLs;v!86O,0iq&s\KɎ3yIӆDj<ج9mNTVB%4!QyǑr&iGU&dnyb/| +Xp!ڴ]?)@(4oW|H%B_) +fvVyD05yʛI_L^>e6Hc wqEw}؜a7Vc ߫\KySnZ'+#mˆ0,*_.0O$q^ R,S^J;+5KYBHsvzCw^DJuqtwK}'o6z|eiH@V+%Vpn*`-2toh;%Hw6r4a:nTZ(KIAمmYA'"< >F^׈Vt=I*[lu+66K*է*;6+Jn7~/&6ZSP7td6)2UP۬-kS=yޣV!e+SILo+ġm)3t.ҌDg@K'#p,_V5"`u8M.OO 4cW}l+D\/Ci3oWdԯ^z4Ko}i +  G+܄FnnıVr[v + 2%qU3vE]a# D_7Y4Փ݆R}T׀t}\4Ih؉BxZ2X RI}Ʀ.!A%}|}W6,++MoHUV}:v8bK*9{4&{X0^J(\s! +M/G҆.'T˻5gN% ،A c@iYGӍDܱ\liƘ?IH~3FpfZ]͍΃YVVrcf FhxkcI,d0 tDH定%53g4a[q68kSem>4īvԆ(q]b懚'y)W}PFDW(|Jܓ6 +Mģ:]%S]p>xHdFkFZSiȈQ/Fčr=pq' rVlBu!֫щ ?lXx&[jFLWkg;&2I+#%#>5u@vXן/H|C;vWzk씙AEebjFT PĪM؈?F&l],ʫ)0#4R> +Fƻ nŁ"5aWANW[;_nlsM??Ix*D172jpb:}GIf pK'ٔf%6|R6AV<[FM|ypyӑRcJNg pTkh:~=kga|9F=:0hD2.wrH9G?ceb/Y_0>X\a[:;4to0~qd_B5mтãn4C.H7*caEbk{>ec _ɾsל&.FOU2O\N 4 +g +V6"$TUb?B^z :~j 6ۻSŧk#M!eWVlqO{ߡkh'+'-nJ',Jx D>Iڱ%pJ{~=OJ|bJ' VyHV'`(jtٱ9Mf/0gM4#5>Jf }k q_jʼ3QX+ Tbl +$OGg,"IO[I5/Y3'g _(=[LGmnO)W'9 dKvGKzG+9 +Z8ŕzvfAu d?C0UõI֌G |0?0 N#¨^ٴCغ3GgCW6Ƣap`@q٘: ,Y\#G#&u" 1o mnrgZ^3$3figSьAfĴHv$ 35_Ē4 Hx 4Om_2F(rxdJ&Vz_ )8L~>rtjL5^!yjqs[zPtdۄq2(4Dy;s=!fUmGЫ%%R6cJB9P۳45H3w󒗅y&Jٳ)=t,^=iGGi}W,5m@X#.3g~@do.]Mi ‚Ov̓xgFoRπAd0*)#R'NX7Y͏eב4jnOj׀ jʹUD >H>>gq>PT7]3}/f4KEo%-^3Mj~` IrC*\Jļ%&R y/8ʝ=/?/ڛ^V܋xD5g*E',}}JϪxbo\3ڑr>|>sUz.{)+4ȃYʕGT39' z -:O?Ј 3ڗ/C0l5"#`- GKbL&)\`̨. ) +?~ɶX5x|ބ}G0+{G xdfdv[QJjFF|XGiss5#'QVzm&~{C=~C?ꖊcKM }5g1\\#)}'}g ɸؐaΥ-ҘφVZĮu{xq|;`8Jջ|Ze)y}t;`H_UBsL':sqs#<m$\/<]6O-"T_M,Ȫ`'KTC]nazX"D4L45I~B>כ~秡,: +:9N[);YLU0ډ$ޒ^?r|S[L~_)*?, J8;xAݜVI.zz-VTe m[}ioibs%[s@d--sU8۔ aWr rpP-A/}o?v&IIkxLrbbؖk\U}E:Zv EP_x 54P*͇uP%Yg+qYOYF@do׎RhPD”M|ZkK\ Ӭ@d&m=d:=]F5}[׹y5%XY,WX@pcڞ+qd6 Cv=) %.Zž=jy- +h~{ +54Yqk+TWANW A:>0 Ka aEAQ6Q0rK Ҟg`{oٺlЬ_TOV_fw¡c,*:h)%[ˍrCymjf3 )M\H` a>͎et`8aPz&jyDXEՇcw[ͱnlǟ]޸3n$@T7irӴ@%;zgSWʕv1v|//?%֩$_R[YM,@wqƝqxve+/VnlVq)΢iHxd6 Gmn}_b+X;*=Ю?k 6툑{} ,%3^Ѷ!פ($BKqM?CyNnYi"^>3qt{C &U8=m/Iy~b&E> tzu ˯7={&btMC-MZk^uzc@5 .f6kmrϗv0u8K X_u,sM~3~_+떷[RwA-l`ϻ&Q]%'sjPk#3+ބ9Jf"C~.=YRk)2jkJL1\DU..(Wt767e`Ү1!)Dg_lrv:bt3OMyv}yJf!/{>†osk>QPa&AavFV9!&PQ%5#et/˚r<3SMܭW"w R|8W*ұ}boqY~IXg|L3{[Ȋ4|b ;FK >g}FfJW`UaÚ+YFx~K^ +bhX6VKGv?NIdqxao|ȬeY;c9 3 F74qX✴3{1*-at{M (Rf"K-Z"+~Sa$ OƘlOigt㞂k>osg4.^웛lIErK:Hmt;'%ŋ ۱D_Befx@N_h`'xboGndmh#KO>܉;Cӹ&ΰĝaȞj4޵-/? ;ހo"t XTl vյ,SCohvÌIks1iI(jI: +ȱ݄ͱ(N;rBa>,/ +gqFc&DjމAO +5n uA% + +%QVŖ$qCg8>l)*(GGt6/\gmnOt,."TWڂڡnzCbi؃HG?W5В-uѹR!~nXDnb",8f. yX[XJ6p^P%ϻG%G>nUdvuX?;5bS묞W@1_JD͍5'"Xn ω:6B3K3{&QE$JCe3E nSxM*j>ዤS`UG,G}#ĘS"xJ(fkCGrXM|Tv]ȺW Zp;I8'ۼ>nPg-؂snL\YLO;cŴ>zTBnɒfsƾCϺ*h2tX +*3LSۄtDʾij+k%9JX/i贋B!u=6O,03Yiq&3*_:8g-RMWߠ.CGp@Z^u{C.iB7q̕ܫuJ+zXMpyVh?,ʘ8]E^7Zgƌ,M@lR +cf5LE!zԐ)oNi_מ1:L\~7I͍ 8( 6 1XtNzdnޙ#մ^}igM=T 55 +$&,p\+/vz586mŲ|djw)ףef×.NB%2/6,6vJ}uI$V'OܮJ ,B6alF)Ok3:c}dx|MN6Fx~0K~C{6^m\SCK?-8/]~7hzCc5?bݯztayf&Dx~qC|&2l2Uzwkz0yS2^4tG>;&!Wÿ׋`i(m&ԇK>^0WW@e66y0P&K_{XT:hyHىݥRfUf"ƙ ylڼ󢍆:~ )ˬGp>Ԋ}vihFƚ扅X }VH6ʴl$Ih˝Ix +m)oA ӂ_=t:w-A0׉l`fߐ:A +*݇oޖe'a}>|@tpoHIw}1,.px!W;EFybyȗ ƆCa1(G(UI{P;>@;l8WPhW6d'Ȃss#\uByb/霩 C֦0/V\d*r4K +Uy*z0a)8z\#)}v4Y>V^1MTxF7zȵ`᫜FsaϹyX\-nмg}/ ko ԋ@7r}^C-4.U-תoYh\-̯<š_2:523TbK~8pv(o7yD~xzZ=+N6?GZ[5ĤJY55βŻ|ZX-  `{U93Q~Q@\zl?\a:?_9E%O?t?`9VW)}cmh긚y9J3;$ǤP<CZiDdu84ӡb&i[(ils# be"(|B{}IXCӍBd-E,0σ$O>LyJ$s997p.qPnJ$lols#|F9hl-*{znJ6n~bψ0]~SX>д&DO:e2b@NgI`wF7y!9Hf:VAMN44^-ebdǪNwwHT_2 dޯ}TW/qpCdžXb)\178vu lXfw\Uэ 3@X7Rp"2< +5,D5hE@e^,mfjIy%4M~IO# 댤/{zCNٖ{X +'|̅/nPrAՑUlO.y9z[dt,1=O+ KKwJtn/myh6WBؙzd3ΈKE:t;3&p${4GbibT{I`'t6HYfH*$RҘϣil$J#Z\kN1# 񂴙ͩ&; CB?=$.1jn׹b/md4.<%/0O9h>):DA}t(//ѝ}&b/F\z@ա-[~#p"\&qG?O|o~ݷOߖO?ÿ>ޢM_G_WO/'ٟg~O͟M/ǿ_???ӿ//{¡emQ>-kwƏ|Q *ruPb)E>E/˥}({d,94bm"U;<7F$̮6Q⯫5 0J6 ~9y;xPP` +{^7^ҷ@&9ϻ{lX[rPma}Rb'_[A8 eF!(SjpRVBcE'I HU77 УGO+E"5oi;biStS˄s+F9gZoy):I0Zt{ +j>ob,GABT"qͻk= lH1)]3.2ԭ!\DY|"my[Ĺ(rf?+,kv,2P/ŚSu-,>SE"Nߊ\#|*a5=PӪK[67c:󒵦/#+dFϓ$*!is)PT6IlĹͧe@ɛ>\[,:upGTkbAiE3i.nq@naڑFt! $8L:^qԵvܚC^,mwIގ4O=5#||? ޻%4ls#\f֝ٹI?Beg]LM_XGCke)b@4#*7tXuEM*F?,$g~y+i76gY{"Spa?ō|Ol]/&{+Ll>Ht"k] țӔ0 /9%[S+ܼUÔl>aZ4O,e h+c'kۉs^W?!%SM 9݀gRUv&}[_?嵪=,a*ai`PfXyjSփ6 }^3Zk)in\k[Jߑtb` ?hy +@Zk"cky ,F^Vx5z~"@_̬xV ˞Q|:YVC˅B5+|~렯' œph*7;4p-kaVRz K^Ra*X MA]z62*PEe\/ެG2e-4׎h~݇={f>bsQ[KLJ;x61Cm~ɖb=IK U[4Tx\"SqJ5~}k=?Tb̛81EB@򶃀q9 1oc> :=Qɶc!oi2 l}(kDME%ktF$? +|(olvl{,y 24'`HU+Zæ0QN7rF>bLB|Nn䤀ݸUZ|&;OT-XqZ.ωBTDO+f/F|$\fl%_8 M%ֽEZȋ9miFl֨:.h +4iֈm_ֿ-}fOvAF)UtǰRL(aa&V Ռ0'Մ*za0;E>WxUp er-@56m+͌u K4TqM_M5*SY\Xץ2G/0Ҧ6'Vx-lo[unJkk9.X\2|qC^;Il:.:b/zy/RoƎ*7 }/Չ}{ZvY5`F<)v/my/ ef W m(3\-[az )Yg%CnM U F(3,:7g/8.5ž&E Zq8:U Vp_3{b CļBH( ~ݾe ѣ[ +[UC3Dpso..jpd[@`=F,Pwa ᦘBz}ڀDLF.2F8p$?h\ǰ(yT@8kWqzr扅gi5r :Rƨ:t u3=SZu#s@])|Z:X3D8)$/=*A-&V(v67g:B]vG W L_koȭL﮴qUkMbDо}XY1hI~WV0~X_w<̋X)[;0x>iH2DD=iC$/Th) )?q6yb$76\kpK¶;#'^a{{A_ruOV6s>ݾu,0zr!Vј|&AJ(so\2rHKːpC^e[0SK/x7dP˼d +MM +gL uYUha?)a{M=G/k8ma!,|B7x%}Zַ2;*߂VxtBh⟆^.{y$M\te +~jwnjgиC:L &Ev2iHٻ^.<鳵fHߛ =ݞkh'@6Q]y + ˶)Ef3xdSߑk@\W1UfS 3T}45ʺá ˂9R}f}^SytO_Ҧ,ĿH3(R+k.HC͍ ݠyjYS2FM[dpթf0jΫRgՌKhkwDu]c}rnD9k +Mr4ih Y}EwVVljHJ(⦧.lXEE&(%m4{Z'A9Rw:H &jWv_}Y-*4 +͓*q\/^ml # 7ʹTrFk9tDe& +{SrjlnG$C³f&NͭJ@):zב6֍{*&&j>S}i' XOp(kiźh\yddu<^Z餓q!*VP"""90Нx\ؾ9Tt禽>U,,jbi3 ]͍ k#B-L8,.8AzdǶ}06 +xuކ֙ f{u޲|"y, Sw%1_}lİ : uRϬNT *V='lOV2uXN!z,< +$9_'KV]"EkmkIJV/^u + M@2B>TOVagB3wP-0!7Y*4!ouоcCl8p׽vFnGa>{imoTR=^^2>"}˻V{"cU:,S=VELe}e,Bմ7cK*\$V| .Nv8nqDy|)%DJxd~٦<-N@Kbe^,m*>R<_Sn1ʁt&O$;vm?- t/vNWٸ*47T2TwDa1mw_kK4}.MÉHdy&s= y$2Ckկ;CxD").oLd[`\z10ȲTɑ%w;L!Gk.ukJ+#CRؼW^ %b[ac#Iad~DlF1ywdH@wls#\pҝ'Q 2(yrZetc95ӽ%F孊N!.6c:f ,E5:Рl@Z}e1^b:Er:]5P.N3urs#K-55k-s~Muپ@XZ>he@˫Ƅ"d;F|pz}6w?}63z +ky߽׬;~4nu4!|\9JR'CAΏ݈:DxeHݢFqjDgĤk~l;h4V4&T]eqz 75xA\FL=CQ=ƋʍᓙMM3iz‰ G_4ؕ=> 'nT1%L_U0'6岆}VP%0g?92@{ġJ:8d`EW+$A)@zz·l5cbP1)+CHF{N}\3N='o*45ďrQ}XKcIe؇_Hdg*.wu:?p'߯M3ZB~,=V&#rއ- +66}6cL/"֝yVIX-m<ԋ?y¼mNXmb|UY]NKu RN:+!D@AKj +(p,q$WYzzxEvptP8%ӼEL(#Gþ@_) u deڑwǡx)#{-^RnmcH?oiudhV'_[烷'8U-dܺt5 +=g7~>C%{kq}b7[mX5u01cB]ܺG|98MʦmXwͨn/65:]#eRH`0źB*.&)c'\GCl`d2BN%a2%fŸ}q½\0z&=Snju0hS8%/G|eUTb/mMf 8e 4-9mV $=%t\XiKhRk~-|bd$m/΀KeJ{ {<{)+/[^a?ﳲjby]]ըyr~^:=礂]UVx +gC:AKcCَG=EdBimQ彠Nb׮i\q!zar~ +>Tqyl=΃Q qs#| +K⨾c|h3coq`@ffljq9cgO.P@F^hi|Zq+\8Ƨ=$nx5?;o/`ilD?F@CQ@Fʴ>4@@'jRbʍ%"1s!PO| >¯U8(7o*-|ZՓ&L +,'=:_$XX`㊙Y? (OWsN1seט+S# aՄ #\T<$) 2(q51EC $y|whȥle+ώ=Lԃ*q/m_]/]`7gdyC&l']͍'f8 gOC R*Mʡ m)8.f*jv,j f8xdrw%_/|`'4s+g+cŜ F+[̓vĘϢٱvлΓ|'RfeA+x w~A`E{&fjzL"Y un'֖n_' ?ػ5me +) +gn/m6ѱ?qj~lɪө\/[^݂_A??Bs`eHpET5J<$v*D K]g@W39u KpӬCbIu./ss8ڟb5(8"o:ݳ!|KJ*[ o[~qࣦ&H*ox#AՓ6VGn(.˨.#ǺN|sbJe߹ sGdp{᎝+Xf^@aea#ٻ TXo>6 g]v;Pٿ];FOsﳆ}fmAB~ÀE}?ZKkM3Zͼr|(5t d6濾 KpdJ+u?)IXQ &J;jͽa^,,bg@ڃsu KobBM9TGg `0qkJ]rMبĜ)vBUawT5thogzSX @(߬C7\_nt^dѮ6'zʿXڌq#zq '&1.9*Sw`s<ك篩jSt28d^*nCL%6$V,,u2Ubj/U)kC> d茟33>9>&XruM /$mngn/P[yWϳ=Mٰ-0Lmp}(GΎ>zhJ8{~]*ک-@i$ěܼ[)}\\[qGVS! v67g:BZ)ʍS*:Ho]5LH\2;9-漂>SIk +&z/˿#ho&#[=U/^RjmMov67g:;qѼ5K>c:יq9q;O>(^,msqA 0N~IM!l65{qqEGxZv6k6lS-]{}TCgޯ3RI̛0w_ +9qQ_R[ͭ;[ ʉ''dB,Oܾסrзr2qm 2V3IѩU7 +扅˂lp3?o™؎L0^w72dMy4jt&٪{7YZĝe#yOJ%RI<ϑq\iUi9Q +6hMʷڻ Yȝ&949Ok"ms+)d%,ҠybWx\Pj\Ռ3::T+z -f^In2"@_R[MY!ɘJ9Qd7]'P,ϰ/Ud#wUzvI.NSxX1[}'DpyydDl; ^`~I#[rZ@ː ]`@ЗV*p6rz6y1aU9w |I=D:P ?6<R?`3)[Ltޯ4yxkA嚏~Q//3M0fctbn.y%׋|!O l2FU6F$9tgGkK@$m2+Ogdɂ.nXDؐG"ٞyIq' ޹׼+qH#RQ5ߠEO 37bAsmZ[4{"o+欪}r&v؍4B:ޕcvr5$=[ !O B:EҰe{ר9G]רz~g-{=5jsk> yvd΁Vbi~(O;tc-p݃q2ͨiSJeX<i M7xWT4V RJx WI~mIj!]h ^JK0P@$|F7FŚcfs5n60/ L^6wM摅r +6txEtfe&pK @x\i5z堻HipDۼ PU tí=+&^[~͓\fӌ-eI OGbwuˊu)Rץt  \&H T;tT U0?6>ZuZd\`nXO#'Džhkf5Aɶ4~OM97a+9i_G5Va%$ei,2 SRvjM*cTҺ0 i پ]vƸ,MruX!=]TU<luyRv0Ls#|F9hY(W9[Q{P9?؀ ~نNTc[ɁZ9p-'Ȕ.9yo=LYv>cvdr2lBN5}{N޳GN]s(> cd/FH#\N1F`ϯoD坜;Ցj +nY RP ++>XN t.cG!ZMS7tms#|&ΈDñ!ػjlMq kM7OKiff]Ѧpb$~-~*Bap{&:lc.Þɚu%n2:2D %8ѶJXIv:^\ ޞQ^/lOOnNB,M6\­ʂS'=0w1}=oYYzlY+R߃Kס,f͍KO8VNۆC9HW6}K)TNH ~G?'o[:įbCZ?HJ<=[)s"ÜUX)ux@ڌ7y}-&bb.\M[_.U[/#-:J1$G*UFWk +p/4] i=( OҒ`ou[=Fni^[eӌXRQQB[ bk/I*rzew%E{RO%}9fcl䪟!Ie47aIt +KPz OUqۓ[Qmz~tT + % +o/hs g;\< 6?(4 dKЈt&w<ДJ8 +'WgݾG)m=n h&,4 oK}MubYoאjuZ$\YKw#|eɧ +aH K@K^>/!m뼳tB z:\' VT\&fF ɏ[qs#|˂#Kw"+!Z˘>˔ 63cSO z +XY/P:Ĉ[#XG00p^,vZJ=< vI+fisa%MXձx:)`Twy6uָb5q["xRJ{w.L3keln(;J~ jjjU#tfòOkf(5՞!29h _[2l9qĚk˙DV0ߌ2*q=v*.WDkmh(PZJmxT;o)Fiy[dQ9 +3MH̕7ᄣE +fJD@q)l= /Gqc+7~4cfz>Xy<GB{Na#ϒ|r幟vZ0m~^ +)RnUOK7$_uLv;~re03mǔ >fIގ)nR2F@w67g8.@]Tf'ĥ%p4;;ԕ5is@ƣ43!e:yHw-z.ÕX9Nj^"NR3}X7_cqq"uwɭA6=3"V8ԧD 65!#E +Cadl܂ &uFڵ|.pOs'^M8Sq&ѐ!߻zdmʋr_ X +{J"5RRz>PId/]XiDR3+Z(/Z你H:ő4jn_gm;\_?pFN3ٳIױ +Ju*;VQPRl.'- 䜍`"ޞGI1.afNy&H70eAI7)kW떴/2u}1j,zN5QMI%OIk()K2JҦ)UܝQf4V3--wCR;g4+}G۸cdʜ>Ob_{y햝%²Wτ`τ-yz` WҭBi*Tg9IrTgA9J67'lؾ ۃu]nދXVل:u{ Yf}DPJOܕ'M>Fr}9AYB,jN;h_kFor'Q36oBFEs螐^ABsJAnsA7?x7 θ $H-W=|>Vc>3vlՑY CbI '!3B H ^m J|]ÙxKG_M1o% &//~_~?͟o?}o?Y-O/~?x/w?o_w~/_o(#y#^kyJ!i@,Լ.[NJ j9ީvm)# S#6 RwKan7u30QB z+:.=mfIxć%ڤbW H}YCG-.$-1d,ɨ 4эO#jP_4*i+$R{!+j'T˼yϱ~9CB!uQTvUJX?KFޮOuaG&Q}Nߑ~$qǎ;?5НBP$IzR?_i$Ɓ@v- Eo$mwrl[=ȌRzZ7vTCaKՙ4)^M*G!Yy6u``cǚ坄O)DkzP}N9rwqs#|dQ [7.H!:Z#A~?$kB{Ϭbi 9JʽIn풆m>3Qh304zLV܁:bcp7CѶo>>l:TV aPglG 3 +A!L +/T>=Y駌ׯ`HMg%^j%0[W"%}z4.J+l[|ZJc I{@hXHKdUʤx{ w΀ȢN9`9)?of`A] j`gZ[e`p3z|VaI+NǛ4cxP,)}r"j:$ ܓƳ]߫Jnj[JRx|).Dřu֕AWR`W>-,} Mq٩~,<cH1 =P#Ƹ[F8̈́ +1js|:³FxJAԑvXE)G''[J&ieGm98}k`4X0NR1Wɉ_#_d M8Iޠp)/Uٓ2\?O،7DoՠB?}6t +lg-h*W>4Vjuz֢NcyL@W5'zc3uOGI%Ѐ&wP.L^&x6ٞ(V:!ft Jv'698QB=63v't9:Qr|{f5aEFҞQ$VMk[?U>?Эm]G0LhMM0.%6r(("K%gB9|Z )_Wz +GpAfR)lN4@R+N3EWZLy +Luá A<of49$!9 I9I0q1#r;?~H=.(PZ/R(/2?O|ij>9gt%+ҤwvI34[d %lJ}4X0-p^ݡlLB?*4L8W d] 8c o%se @}8 +Gk]E;H-u}䠹ۇ s aE@]³Ԭ45={cA ej;%YPڌk7F}ݐSl%6pm"`>%>D&&VpPxv>Zl%M~4K}GWcұgS~,tf''5f֭R1tyd/W`%Qc) ϺSG%CU g Giz[;kX1#-_9z9;摅,iF6FJhH(Ƕ0s>y9Ԭ*98- evDEjʑy vj-4WA;|\!n O=+ˊZa&XB$K:OB>;UUE[J_*$eA +vh)Pn@k) nRb%Ur gS\KuB 8E8vrI7}.x1d*OEs +1'8;`EޱR"(._um,ݞn\INţ]ݠyCfwt ӾKZ+xҌ,Gz19Ci0 p%&WXhg {JAAD§ć3H/5W!%JL ]z&g=͂3!\(hkqAVq5aczMߔ\9JZpskHw"ѠMs#<=9Ҡisl6-V`Яq|?kNk%:ި%:_m}5`틥ͬbT\ +vi߽b.^I"y(m\N;׸?KszrJvl^R(bi3߰RfJ*"G-_. 5$}0N6ɕz%^ j87rJV K߲^H_U䱛t?*wE8XJ!/"Fh.zi|VJq ӓ= \p ~#OU9jn=~9d I E˩ DQ48x犠CR&Z?NB@ejiHJss#|Y\ :ms#|<[݌3MN`l!^=c:rC_-iBlDT2dxkn7$zs>m=d'h4uWV̀ -yNI +-zn-45 Qo1N'i|nl:j> <3 E%r+;RhZr B7tTMڻ5hK2= X;m)#+bK|ۂih|=2U`ڋMCrLΪN Cjkź ;FxJ_Z҂Bߦ )_?p!Uyt%/ZSˁ55o͆zq~3H S\-摅x WvL wKxE%v d).;rϏ~;|X)P6Z֓NGDO. ?tzJ'7 *Ųe'69Mngw+[V^Y؟S14"/=.7u`lxݾu ]*yoHh%aqvtb O,(Ŕ1`Y$z΄H0 k'oi爌76F2vqF ,Dz )x%x mV.Ezef@hUQHr>6ſ7fx7o o7N?~+2M9T*hNhkA᷍𹽑.{԰{r$VݎMdMQw67g:h*׍=J3`ԏŋyB-pb /iybP+GSEA}@#& +=eK-ĚOv چn jn62clbHkBipElSZ?av"HK;"ʹڎMȟE^RrXVOkIP0R,] @W\2-c.IPJZh336'& 4MixsyWTjhjRv"IaW "eN);u}sw!.~9]V]!ECL'Mʩqs6gm]05mi?Ѓ)b"z'.ur-OBg7 U75T"\BRyo°y,[iTr%Zc둤ȅ 68m%v"wݹ5\ʍfg13PrEd/xt"47: @RC!u"GU6H(jK @0;O+n,KJ“2VzO nJv d)VV+W 4hbihm FbGb-qJbN;ӓAҜiPGB 0>>?4,ՄVz\i݌qiKp;Fn$|"*i KQyJj[+5|"KW>{foGӽAFИ+@<Քn! +%>[}dG}M7' lS?57ZEi<5EhǶ98iWr(tsK%!TO)(ٍW/4~w[>nݎm1"WWS8L5 GʹdU :w5AP')pKSZ/5MR89h2P! )ft,pj Pg}xP0:,d;;wC~)bv/ѷGLZ~?_MExR)oo?o~ǿ=,~O_|_'go?OşO-OןM菾ONWwGg/鷿k, /3a$]i_O+zv~ ;HJHO %vܟ`r/6eO['RS^v=Ѫ/qsS/BЕtxʞEs{fki>4q1URlVF't$j't汦vͧBETmi;biSw{h/Wy-NlGQŁ=К;`: G&L3}ioO̔L_<>PY +{b}p<ӕXfDX%_MyԀdm~?1my{+I53)kq)դx?Jy>dN\;1n.Wn:@ܢCnnK\I[)@vXi7ҥ{Яgan"\I NOw"Γ鯶ގ.Zbi^Ns,g6xB*#8Hd v<%afCqo'A9%pTZ7ꝔXȉK* /MFdm_Ɗ8L)@/t.gām}C{͡riqIP-d5m!̇]"ﵼ$_igf ~l)DZT#1 +XkɨASulHдx" trQ͍ptIFtOi~È1^IK~1ꦉeF}Mh fN@XK&r}!C o1N=]Z&}^3Vp%ۤXʲ^[9-F$\DjeE7>n&3j:ezq,ϟ$."GdAs:ߍM4_Bo]*JM<'p]cݰH[@OeY@ZMLao5ʡ2pUR)\z[mĢ4 RwWM"jXsmmnϘZI˕xѭv@ΘZI2[5uM-ۧJ§L_<BUfq;k4[f]c/4)LkIr d)7+v,={,$)=I#N"&ekDWulP}6$H@h1ʊ5`n~H|Ʉ uX_싶`vsrNPk 0&uveS32u)di5rV>RY,v)2Ӟ=w4jnWjY$Z{&$ۧ>_]\S{kP HA]l(LS@+!Ɖfb!q*"\͍U~9K \:sqږj@KIKfsNoh)0ҦrqigJ?P%J3YIeB}_*9XڤÃ?(܇FH + +[jHF蠰.=TTV:l +l@8ωCvbMz~׏>t>ũ# ׊}#"tx< +ArNIJeI|ՔuAB@*7 ƾ߱bIht-~oRvoF'f̵U* #܊g+GYq~ +7|Au z־vXxM,Vwnuu#R!(P9|d |ʢtwU8#3?]_dM!W0Bl]΍:E|Z-${ꝩ঱=aPXw_ Ԣ6Ǭ|$mf1M,w&*xvaI54^٠,9!"x&8%ݺ }nA߇Y s* <=f69{kQv} T7977Ż Wrtdr64ݟHuU 0:&Ř%h XS􍶿hXCCuf9`WM4\ݹc“L>[0zHJ>kQ_KZ? +7>c)8]Cu10VgD.'~d7{)HNez6lTe.a9_}Kb}d/=O[TPr`vT߿XE!/]sQ~)IS^%Nq'Gq^IVy H0ُk)Cfjz<\U"81J/u~i8|o"I gVa&Zڄ_S1hz "J-F[DC)\zw"UO],xΙ˦ɝ~5AҦ"F)'1o(šXi- BAhX[@]9/ECka>$'+"d nLnyd_ fdIjt%amK +c؟fj%gE7Լ_ݟgSyd/m0W+8hN^.禍U~tl>`We+H7~8N1g66MH *}~f7$"O" *τ$|iRfMTp%XWg"{w~Gbn?f -BgH*zpk#{B:ڽ٩IBvϳ6CznQ=W:,LѧpONq~" qc*sH3}6aEqPDE7y% ^HU.PVBe9N:fV2&K§|QnFVW9*UFVÊTm`+U%` Lk׎*ATg_KLk,!E[KaM ̗L2%H(FSQ;Wu:dClWd(tCw>B@͍K-I7Q*薴S 4ɢgg_< +3Kf_ #/V䐪Z%?E6֭q t= !f$ (0vѶJ(bL6dC Ȓh3ol(Ξrh!>T Fh*ks636߀߰jbl g싓gʕmnJ^]E\q +߸?/]IxRc9UJ#GUSd -MLn.IQo,e)8  8rEp_gt+j>PU J[ \G\Jm̈e|vt‘QΌПyKvR.TϭUy} 豦7wKLw:YЖ|}∺>A^l\IkܿaR|7i|ۻa ~4h/61M@lq >~4,\@lҎ +'\pk{CA|Z~Kl4~̠OoKiY-'y}B6*ؾq ^,m£We)zw"=㟸ߴ[]b%Hzpo嬖O}[ WG˻1FK}.ڤ& |kmV*w0>^4gpy4_Ө[S4&)%Ugt+;;hMMCZ_7tKiuA e( L]Ԍi*d%<0 @r2Me1D&aBh'I%ry& }*gUv`/~+ B!~Bgϐ&&vH=2p_w$Wh,zh3B݅bTޠߠӆH +MF{@64`M65@şD rPGQjǷ0:&=ӱ Ko^P84*N ]|8mrphYj梲ƽYc+.IUZ G!s<X|͂p,$SU>sMaи9g?GeXa^_^+;V\(mلEOXSG}X˴+ >ҠJhWY4xbtpNuoL|wޞuo~Neqk29$cOW5nn|%֤ m.4PXYEBkG.*lFsڕ9v}nR1v24]+_B^Pl5Iz y;}*UĚM '0so5Jiw;ͣ&rJsd3Ѷǒ_ݒ٧Tomfvx ;)# d 'F'l#QlmmmojZh5~J 4JgBu8C*FN=}OnU4󓪥ǭqrCfnnVK )h6܋5 +@nOד<"'0;PK#} a1 kn(wNvF!A($91Q}-\z 5,[3g`YyҺR;$t-6t6FDi3.Q34jJ5ILByZitjP됼~8J>2]cdh؇9;0ŧs*L۩2ǭ+B\}(mbmng=R7;1TO$(i ՌŚ-aCZdqV*ű$PG"5 y3 Aq/0=!tjZ$@ԡ >suPuC, Y[5i{`AgSZo$H!9sc3_<Sێ (Dlfd->(k;hf-?{3f?1hAc!GʖXs$a4]g+'iX%m*OAէPy9ÝE* ˆt=otuVnr/gECmFSxqݽOЊ4V57: RNr)W>uB.?qSԉ#m[A>x`]srQ8;'w'*Ŀ' J +y͍pz1IH+tms#|hްE+J9)QxnǪ%WXRo+6v<[ҭpdzSǂ$ZN &Q5,܄L@TT͜qhwR~*3+~Kn90pv8g4v@Ztń+˰9o.Nڵ +lr%y-jE(4Q#pmP ˣ aBy6;A^QZrF9`n'S@`ɺunKR4"Kwt6,D;3k4o e m-l5YR_2s<&R-5&x!Kt/JMY]wWi6D R@4e Y@+U +\\.Q|lht}=-q')j>:^\{'i\s@}Qऍ;V@~[o -]']+FsɈ-]0>p.܅z|\5o)f~'8J4 wH*KVD?=>|J_i%MeI}b U [GboaݺcOgRq V\`h1VzyNw K{rkXćlTFQn5җ w*FiS@lmq|T!Ȋ)#_Wl_!grm jNvj%S,};ȷO,⫧8}{ޞޏ&\նl)7<(m4 ôD& gs= /[M8xfv}@9ZS{ l]aR ؏5*fґ?" E] LwbfOr0 4H;uLq[D_[Lȅy$@y DWBM60%hM6=\Io'_=w- ,kOsܤ༿ zH[/2? +?[fIs + G<@h)v̢˧w0o6&$Xs62)'>vy^MNNN +%Eq38*XA_4Z>ޜ%I/./uu3&wMC'F 7FoDAhi>]nUqԾbln* SmhÇF(#19$-$8~2$^,2yy;|~)^7r 9dnvtAhm +hYMÐT3?{!sRbugu{TAQ.*+vZ6RHGPU\Yel%Xѯ5]k@MșD`+|]Ks|'WS+'%Sy>jwJ“޺bFђ@[[Ugt+oi#+aȎ xp 'B`;15$N|Tqr +G8Yq3 B& q ՉvL~]IH5o Ql9rV@tXMV㸓xW(u= j?N&ɮAIԕ@w:Td}/$\DVҞ3qi gVj2mB7=_vdщ(aUdƛgY3%@bLIOo>߿7 W}k7'+XW%??'"gZa6mnn@$Rr0E<fflKܐG]<&wJH<E̳#VїB`0CitIESj65Bh3<.YZ^bfdrhjV%dH^62yulG#94SxGȱq֪6Ƃ)驤 v#3?hWgw]vL2 hK3(߷yl"x;w^!}: +YXbIOxɬQfsnn'$`QLC Ҧ1>`ibO|^3X}N/UF}ϓ%3F=O?.f#oZ' |'/-̾Z~qDEݓi&$qN&(%'nv*A,]i!}v3gT ctZ.)ZpqU0XL %;fP1<$M Ppn@H|p9`2gJdҪ 񓑼&O=hx2-l^yJUhУurT)j_'J\?/d淥{#KMǗ[glLօ0DvL%y=j%S +ITEHZےZiPB3 Tm-tZsz rlTKnq4WDVҞ0S9<fLs#|q׏k<'_`K¿Э/Hc7#F~%̾q#=^>Y=~7wWHs\foĚXi' .ql 6Vuck)4Iڜ.=&Km^OYL o4 Ko;.o=|ʨ!C֢]kGuܵb9Ӝ%T\d+Y6;usP:yk/57va~aj\[Rbiw;x!f%=<؄uy5T :l*׍_O{IC]Y=q7llfU,Rb-EeLG5V(u+秒&*16,x[)!rj$m3!biI(GkąT:C9T+^4Bc(1-(= N qDPz:7V,|JhK )W>7.xK/о jix49h}r0}5xBd-(t^6ຸ*gOv۱Ƕ鿸rz,)VהX :ʛSw)ޞ[^N7h9)cV!xt5٠0SKjJQ24]ݑ^h+@͍p6)/y|-[sJ\ KI@SV8eo+3ѥdU]f=A؃Apa=ma~ g3WU73᪙oL.FH/dcr]~*T=ԕ50/vt=OǛ0yf8ySzo\o"_ط7YGYSN\oVn_RjQ YҢuͳ!fI4м0+ v*\{pg73YsEr0h'Jԫ8ܡrh'[۴miXAӼJ_Nh79}W?iڕ&m>~(q=΄7YlU'̒ ++"JR$V?&^bllYq8EM5uTIݧ9}ϡLpVTfɔEUNPA67gĔh uG CWkh' WL *1Z/B7D.4&GE1ID֒BI`-V[&`I}v)ɪ <$-Џm:RQTѭ-y &%[ʶ'w~mqc3ҸÄGP+R:v$މ&cn˔)0e GDL8W^qjLqceٸ;DtSrS~ط]RM@@hL-ĭ/[m^!#8:@Qt *u~_vTy۾:zX[9Kw67gbFi]nQٶqC6t4AA e8@% l0|间l*M7dssrpOp|yY3omThZ2z`X"\y9Aϔ m0E9InWG> $f0PZ5{kCڀ[ZgrǶ/1\J.HcSNv$UlO4Rڸ7e2)alG &,QoS +ט'77%o(Q-ow7[(Iؾ6&jbi3g\֨0&6M6m ++ky$m`d91L}:Yyäz4',)F۸5ǟ{Ivfq!H_s-e/TX~ "l:14ivj%;Vt́=NAؖB ++ +m>{pm]ݠX3e˘*JE}Swtf3x1 )ikP +|/8~7|uǚ.|쎘q# Y؉wz5լHƜddVBqB!{ey' 26mᅯfL5XM9MJAxI?K$)&].ܢNU\ti\[K'up:}>$σY2%"۝xFɉ7UCM:Ji?N]SBzpK&4a3-KtN=Z)݁-R2OxJ, <^ 06jzґ}lgNdZ2YmA6oZs i h+Ⱦt4U$.+]~y: >/3JEŚ;)yG9'U\>qsTiH#'KU9j]3 `5 WOMs#\2JlyLoqNaY\@h~/^kѕ4X'r5~`<LX)|{iݽ4w{FH%|k>T@U4|Ge6}JuH+:ZBB6 GX3`\A-5?'>tms#|"fyBsp7'/9 jցvh< XfQx+msS707Yݍ-~pmrMjcGX;;$ޯAͭ ivZ ZZ O}JfXuýHai/6'e!-_)U}d/F:d Ю~x! XZVNē#3yL5Y߾1hS#MElnrצr}JAYݴT=ԕ5>ELq=Q~Ay.$gi "MsP5 7RXY~\AݟI&!$ҕhm AwHv|s漖 马Hy%w{oaMm V!`?M'7t#-VbiK̏ż;x{J_u%"߿C}$ҩ+vݜ0AݿFpF,$N`}0*2e;TFĎG.at"r/#3E۟ffl ؈GmccYƶ/]%ŀNv5s12PjfD'!oB3ɩPhSbOEk!Pwfs",8~פjnnvvꬼ{{a摅Ji$|E[-o +ڐ6qڡ O9ycHU9nKt4摅뇌0Zxq8&e&{0)U&:4cs#Y;9zFw-V,!si*/eW )]>N!c[Hr/c6mi"\թ&aF! !ܾqy+Eir_%zjV[8T'zn$<zVX`҇W"[kdh%,}wVզ`q:_*M L4# YqݞrHr}oʱRe@6o<"G.)Yj} +ZCse߱w-YSP#|E]R ?u!+m6l>+Hlq9tuk g2HiކW&4W; J*ʛ5i״JѶMeyڹ*]>vjf%JBiS%]͍$+TK~ +H.M}_ 3T3k4%ږrfҕqff}= e{6^~vۆs¼3ʾ_.nXB>VKvruVFpM!Y2 'iy%8IZ4؟?P FŖ_<JZgN,TSGy(r2;P6*yx{[Ly?f+6-\V9-eF2FՉ7,OߺӖKSK-Ѿ9g*dح^7{Q|^؊%@& ~j%"2ݸrzT{]+~td/hIVZҲ֐6X7J+Ugt+W_>gH5OEei7ؘQs3KA5C^* *~_?<"(-N~fN`LA`Lxyi Ϣ͍-t59 3iƚƂ 5dYvOWaG5MŽZcݛl\|oHKe7[Bu׳77g6eYJV -pz"}?lȸ}Y=Z9+ɋ?Iu6-; 4Vyc#MԶm8㜲f҆ &ӆ$ +KɎۡ^>:S26*'!)*KoKzD,*Cg*D/`6  +i)'89s>͹>ſDU2uEI|h}͍)Jh{<1b27eLT6PS?0R1k =)xAub(Fg + dOg f<J[tKv[s,5/eOg5h~*{+߱5|ӑǭj>1 &COR%~P,ڋ@92DiBׇ;|(55~<3yzBJ1j$G3E<ᙅ+@9%-ԭn͍!,]3t%/S4$K?؀ 2ņr<Բ]PCP[I݇Oj\މﺜ9{r)+b|~u}hT:??µ=%1c)faJ[PL +*aIL~;UFBm yY z% s'tG\9o޸?~,,Z/uܘn8:̭ +%:eG\77grtthuܟfblP[cɎ@G Hu`W:>F9_%WڦP)=9)= 9Ir1Aw67gu8c\K H0C5I#RQqKZ$^%׋KJHlClT!aKijB=`[F_)Mi֧ x\"mf)׊NBn'Aqرyحx{s.6 Ve؟QI+u +v&;-M `Yy7u i V.vZB%K+W "|Vm V3G%°$$gІt%LS:.\.Mμ ^V7>&N1bԢM͍ӈE:@lE %-[ڕ}-ϵe#m˙DQEt%/rEmGis\4,&6TtXg7ܕ1}-Pn&&Ft}nNa7֯~#ak2zn{*X׳"}?BfZ~o61?Pw67SxANʏ{GQJ}=ŝ"sZXwօOcc +췋q!cy2`+/JYh3.{n\wyŋ8tWZ6yJS>bGs7@4iºaL_8B n>jY^.ꂱ+ {=x1-fn.rHe=m;!'=K/֝0hI77g+}d\)j*D1},3̌M>R}K@9lPէCʦ2pLp#G(_#V]"ū}FN٥M"=x.8nK\8`'ݞwV/',_i/{a4޳.$ѿKyi)sc:9190(\!r5N%KGqYEe]21P6tW$i{e z@ՕK(Ϡ*A#A(mrvj= !@eP[U,JpnCJJGI_qs#|Y[@W՗2ҙdޣm^!j_ 4|[:NOF){,rVMɺۺ%6eKc[{VF-[G.ŀYQ)IVtkjM3oEZ`Ҩ +lޭdӤͼKm +l !6dr2Rzv_tS.#߱~ϟ͑(rFJ!d=`ոu(@lK6eL@-56eʤ +ƹoIi+" +sw\ǧj\a(^,mP +X}=̪9OX3K9c63[$ޠ_~oJ_#j V|Sz꯶]n0?aߟ?aS_ҩPr%٩U}|"\9w-+ C6~b cKb) s|F,n"d Te gQ]͍c}mx cv*Z)kWO| +Y=˚}V+1F=䘖Ya\@G/l8WgIM-D;R_w"+KC30ϟEK񬲥wDm2eg|(F·2 h3FT\?S|\ 5J7,4VY^y }K2q;OHqGr|T(Ms#|ߣ'.F(*v3'N)6Up0OFGs7VB,Izz'Xѽ.dN2K!עS@w67g" F&եG ;T~'SI8:й|PFsLq;o1]/G2olwyc{vo:Nl߃q86RŎ tKJ5']s zp p>^հa^y$mfd9gG\포*oLi i6dhiNyI ]I {FFp/Kktz267Ŗ6tvP#_li=ɓ]0s#gL!B/1OÖִ1(k28]䞔o1Hv.^JvoLmsv˒uNl楯+77g g_< sA\',F21W!Ƌ,>ճtQֳtA,Mc MFz&ْ6ƤV367VD/jk52r%8 ௌ: $3CW7=Fn[lZ Bk/IY•1 Gz:=Ptqͷ]lWN"=hA󩾷5S6f@o5 ͛ ]ݠH+c/|*kHUR%oK*S[* wu+GۼzU4t޾h ԨZA-J !LS$nnOX +$iȾu tqw"'IԼ1nl̬@A HZ"yc!6GͮTd 6&;LO'\zn\ȲJcUZlbfdfh k4aZ:"SLgхm=h\Z>NeySn*|m,&[:̵ж$<Ӡ+j}Y&p!#fbNxAQ@7*:|Sr.vݽ2 +˚-iwsɕ>r oJ_ +SØ>' mfƦXkB񆴾rfCzsC CmG1l9H.}`'҄*E v&SwKqTK⅘y?R @OѶ_)sXwGs$H98 +u]m^7\٭žtPܧ TVFd|`iiYx[fVҩa2fE;B?ǭ(ӐFMn˶Fa!ڷjƆdY\r%x(i & $O嘓{,!H \"$-;A"'ذ(KWAFYxZϜ5jQoΨӨ},ϐM<1e޼;]E!4˼:W:KLۖ^r"Srr3$zb;ܓܒܽj _VCh6\76,eW )e.Jq#v3, <0M\nR%~/dd MߥxvN٣5n^^ SS֌n~T3m%._Kpt op\6 Q*y`@gIG+J -b$BtA*wlˍ܊nT^Etx) q:gSwI| NyJR-R(,*R;#L"{%:b2I睶䃷w +Ʀ I/8 1ݯ4GFeǶ\qt`eɵ{JM6s](͛ު^7FAo ΋zTs})[u!W'aWs\tn+ࢆ_B]74{Q =ѹު +>K~E5ߠk2gPpA>tspu^(-C825Tc n"R3fm#-~PfbV&e[1RPˌo]ziA 09PNvz_/CiFOW-|~:)e5ϔF\+ ‹ZQ[׷ *\ +&ՊiF̆e3k9VxoK SkR8yCCSA`3\nGnc>MvmZ0,QefU7O~橸jf.V9N<,Z>fP>-۠+Zuk-'I=2̶͸E˚ ŚiAS+XR 4єVz:ZkL|+ uz~Jf>\i\w{Dž|m1i>?}GO ?|?}u4~~O&?٧Ͽկ'?7_?/?_?Χ?i5iu9^Ug{:*q\Fn uYnf__o=`BR}_%QÑ*fu/~ Ư+A3Ɇ eqF& ~/uw,j>nn%j;@3tybe0U+S+NvX`w z*w}neq,rĨ-6T$XI캽f%SB\R :5 AW%yS;130%WF~t +ֵuثr'PUBKptߖݮ~17/*ͲkN_Ry-sݽDT`46NtX~ {bXɛ.11x~yCNc'Eλ:4>GJ9\ndԃN iˋnҨ<_vZ[pwrE믫`.r|<$OFtJ<[ +A3Lo. +6BW­ī┅TTWufxĹ !sԼu : +:=ҥnU%t:=ql9*ʉyq3?ԁ0bʒ|\x}j'h8a`jofhg;NiURI$޻9b\wyDwك)\#-, 1B"J49.5ts\us.̒iKիqU&a_"ۧ|Z\%m(:p)_8&_* R31|2GܚrjAs-$͈E^\Te#ifsut8tA=F=z-] Pǣ{70*b͵ڥǨi\3K1Mi;$*.33~zVօ1hd:xǴWy{?E/;kR7b{L-IR3z!]pэDu-^R3cPZlA ǬKncõEf$Q +|OxRkzC1,f>ޏXm~|JKE3O2!\7}`N'~nX(SxGh [Y(\Y󆠛h[(9aPUQ^Pe_|O/Y34jhǭ4m*#7hM=FTY9JOds_x싡%pC +Jib?( 84 AE!Zꂪ: }p rz~h)2*PSՔCL?,rBIHTz W1}Sk\ELWnI& SL;[T6s)fTsph֏SY:gp ) Fr̹A(=nZؾ1 tvƋ = b,%RS7)Yfs]Uacͮ]pĤKELaPڳV'vdC7PD +"R$% +BuܢUV?)M>!7ף `pWw+bTRc&%OV<$t2vAq`C[Mh/CSaT9}q\D'#ThD Oƭl Wx\BxqHL. +e'Nپ\Rd%Y]Q}1415t90Es=ȕQĩ -o2WFHGP%LV~j]T !emTRUkpaBU6m%榷⍷bݾbO5=';[8ǾvZ,gdkI-GpTЖCyC#|*Z{~deGBIUY͢D=g*$y1gz}ѭ8yy3%O|)` u En_Uq”(L+{(o먿A1KQW愡EI=SC<͑{R;")wWZTy׮qQ>_7 ,q+.OMb8AgC̠\a ̴;OԜ&>Y, uDYP(,?sx(;qwZK+Ͷ4u>ܤ}W!U؝FUiCE(ZAݾ9ݬ’&dI`9:/@3)X7iGƄKKU `Vq͕n k`F,{)KC82G_IU+"9 +ff&+E{$&"UUMFJ=ۮt]|1΅*W֮!r+a$.ZRxE_9Q֋-mO t?a jteOvfg[Rډ̈˔Ty⮛('}ҜV%].q`ЯTa GܫS\DI#QZ7f`n8yo:q $Sw C:RNoOr⬑sIV*Zq>OA:&w.A#Pj! huH؀ <ߺ{ـ֛L_(YeK}. Su=t˪Ռ}O<#Oiff7JtV]@Z:pr?+cJNlt[OT&hN-Ra]:Q4@C%X9 4~q'uS2^٠Ws9٢l :zD~>I׭3+RNtSxK%VihomKpIc,O-L2<X +-'R&I_HO +|KMhT/?v +C&֞/Tӿ)l,)ԇs 9bZų~ŭKUq뾔ryVIf=+[c*߱;յZ {0X_F>Dl +F-$ʈ­o5LJ-u^>6&p} Gp3&z^?(Rq7buvm"%6cnt`5cw\Vu#5MVH&;j_3Nz142廡8HUB/{ f*)vKqϣqXȕ6Vq;>y8]dxT|nɿ ./.K[v@]cu +w1AT*Zai5v^EZc{վS[R>5H2T koߞN;kVUR֥Z#.&ߒ)3nGOb`UYțOyo\C 4 nHR|b Ou/Ό2CBk&BͬkA ǬKncoBV,Ғq9z˂;eT&@#WV$l۩wB;ng{yȑ}_&8+@ M"Dp43%)8V4rzA^IEH4;|A782)>7cVWo54vc;?ڧ}/|ޯy􇟾?/^>}/^ߺg~O˟??_?o'o֟/#<1ǖ~n߹+Twyk);Z/`,ثc _\?`:ރnpa4Ex\PDks'PIZ(*z}p6J;Q$)]A B7t+~M^GT%]֞ym;~/ t,ۋ1ĖGhR0o}{pnT1XA5WMȩ"XzJu FnۃYF.wE=NE_55zh ()H=(og\k\Q8.kDսELur`46nG_7]b b_cK0%|YKE F[. &M]l,[.pq~wܧb>4D]Mz1ۥ8pT'cC?7F~̓ƥ[=:kIQ6$~b{ <͢e$`-Dl6ESn=ͩל5p#$Tu:͈&GVur W%$40Gn8cP+Hqg^ 9ɮIךsGj`O<޸hW]J%NJS'ދ+Q\[} h&6{ܥ}^ gBy T~^ֳ[YZ<g% ZCQ<Āw$f{{, vtsDLA71~M=f?1CjL+R-hU|E 4aBcΧTsځ\7SЍWnՄ s(f(VYh2u Z9J2͎{3M A]{h}KILԴX]!Wۗފ[Xޓ8^BI)bo5(2r3Sk#TtZi݃pML. MH/n!FҖO.+-,kS'e/pP- {۶6ꆤYVD +Wf(_9[v fqDQ>heue]̠|HX3}d?k3T\oXY:W{YeyoiISGj`#ߔs?OMj,hL s ^ ƞ#%AO:E\V5W#j.^xqOʑI5tz1hA[c1 z3UZsSI6UMrs{p`H 4h{E?6vW@;/".GqQZէҨ~|U| ZgR4+ZטTN||&-`0my[inJ>6Ӳ `p@I#MZδ.nj5\xMꢓ^nLgGqqw'|Carx/L\X[ϲ½/^罏K$T3vfO%o <.k%02/fP|]cD4@#4 wnuul4cC`E}33<|3ۢ{˙@}lŪdi -F(Y\ Ly`jlel=MC$ekm%nY`y"E)?><0Sj TЀ4Ƶ:藠os +*yLJ/,9"|*7e],/JL!/t-xgKImVsyL9j\VM$lbN +9wgOL6vc؉&ȡBm zc]QgN󩴐 E1oyݵ.4M<0p[Un(-N*JNZp;z_ mSOŖ074o>e Ƅ-S dUSHXG> f6. +Wrg-f9 /shiӵ*#UK򊬐Eh6j}c(W"J:>}E=Ȃyx_i\ DcBfnWKIKe"|G.GFA{RZݛC/IGy w!h qͧ֠ 4M}h D<"|~eO+ӗJ͕$i"vfigv%;rs|N>pS)nɹͦ#eXԸZE nIWt4H6lNR&,;7&O 0n4X(Bt2%~HLh0SXxCFryR ͛U#REReŀ7nsqlо2Ż6/,PD 1:9Ҁ#h&[,\ SN@K4*rH{14=s.+Dc$",WbfT}GܾU}{bSwA7W-@1nLh*|~Yd zh* ȩ^g9c0lxXtH?uک;1v@d wK=_^+GM-C}tƀυAǞ83Q( + SҮvIbzl9!IFh%_BSYSJ7*Ac g 7i"5k'8%I򸝩>Uf.A-i+CSu?({pn +M<\+Z3 [xLsq}㹨x0;w~j~:VE KоTf2wAu^A%1+Y T. +h r%=P$a&1}*vꡩx149* EU9r pѴ^=rHĮb؏z۶U_nzLdoP!@л6:c:I (}@fKT#+=wye7T#WI*V5`KݵS,'=mT3l5yb\^M6GѶl]6>6% +O42Hi5BWL؛hm'XSv(#_H< +,pmdkl=ۛ$ku(~:zn]R΄|]gPH sLG. +2(LePh"5<AQMEI-}J =IO?!N<'Ͼ?=WZm԰y`:$K]AnTVjA1L=h"͂[67(NzԘ`T>oeXkʸQT g}gzJԐڃڇRt"NcJ4O&fyy.&jV;ĺ"+UuT6{," *I#կl$W>lAlbb}bJwA7W-@1)&RK~!_3̼ꡩx14.^9/$ dem^GQ ./jkErY%Ai~~n)u#s{%QW֕ 䃏]o$Gqx." +ph&{3D}_2cg0iɣ4 ^ڃF3yvIc5g?7 P+<9WU1w'ᡶeSVġ~ C]xc@)4:ݦ!aP&ݕa ./uSF᧺?ɻI >E[K/uIY~e7k3s:hޏp#?Z )oɧu]ǗE]~s4.%KL'}>%3 Wl® ŸrrʊRē!槵j*Ͳ`wA7WwQ|]}2ab:>S7xYW1d7y٧ zjU,a !JBŝ}V_%9Z9\QP^Mt pp 7 +f+R"C,վ9}HmE;ySt<V5g8Nc5&I )̩.:]ܠynʉ}6q:..x454-ȨC+Y}~Rg::c*E^,XGD>@;]cV&F0"6wK +|C# +6,MHgPoBwA7W-@1 +?_&1}VRF_=40/f2hΎK2뮑W~ +\7!G2z/K4&v\SXxC4t~.G_iU#_̉GJZg f膃ƚ}f6  +mʧn {fnolz*7h%~/n;K~v{Oac RZp h{Ѫx(קU@1',:įm{qHpsj ;B +򼂔pf~gZweVԒ$"X̻B3]TZ/R$;܄EQ2 hDR%hd|{'8Hrf:Fr\;+1I5VH^ ++:"^AzM^ܸ9 n58M}: HK/:*JoAnՉc>ФAՔz3d%{mssFYt_gmQwZ1ph)ŵ_)Ѐ6%_yτ7Bk +x B!W@|czZYy?BC@}X!eϞ_N+VIԫF(+ci ) Z7曤**7h'} gsY;'RnK^^tY8^|bW-.myܸn恁 n/B^-Zz)l,)@bYZoJu5D*@1#,z+Ml/K^?~nI:*VDE+=qPSuV'Dev4n@W$J/AwW<;BC~O6bj>z{UwvNк{X7t^o=GmQjn},2FpW.}R=\7!W7hMѵp/5Ӟꁫz1[% Rɥ$+pK[^RxҎ_tb͢j/:#q8ϧ%k(]͙C3%yH]o~Mʱ\ddJ*+,A7W-恁 n" Oy7-E"%ܟ¨+Mh0U5ja]re*Ҧ"tkVq̙f7Řp+\7G.%D*0:BcW}qsy|%EBaH]ͧx4} +O8wp/ZSwA7Ww%~/ȏUf0ު C^"8q.^oa>5MbaFX)7Ϟs릯L]h37l􋘨84g˵* TF}Lm}ݼȰ5py5ɮ/c֔n%8i}bmNbGhGIe9p+MX\xIS:WK~'eemd!WfRbh6@svue\+;?( #o!:#~b6]Wʽx욚[Fl^j'"ܶw{7r +c+~%u؋`ʃF42cDk)  ?M:>7{İR6/@hx-KSJ^U#p#_Ɓ(Rg;k`π̋OEےـs.Hbs"ؔd^R`(6ny`/"> +Ҫws B3q78^֍EBAD4g{>s"".Y߲h"2Yjv|u-lQ."vxJEh)͘SNȵOAtj+ܠ[(AMg>(zq^tpw\NH iYKJo|3qn %|kn逛5yШVbhkѶ׎l +/FմR^;:~nsDqKgo ZC +|eIӴ+R`>=uOJ숶VW}]'ȍ(Al]*+){tΊzF-{!IͶD!Ps'A6pqx p%Πƍ 7,hIEIVȼ2EMTE;k$oD_99sro#@{( *7:>񥻠+'"~D:K~=av̌zh*j@3x=V&;:8CmV8輏~)$FoE((y&>\.2.&7'U AWpr\LרOOKDthiϜ0[WRbhEoT\u_XCj;_y, 95r}{fX0}|5,ز#=~z?*wHq#cop/惍҂Lp nύ~AU `. RO4Ϲz3>7@+B|$Is$WN\Oh%bwA7W  hިdCLTAfR~K4_hof@ &OS5G*ST$Ug-J..n;j 5v m{>V"WQi#SUhSnG䧙 6,3]p 13e$}9jUNeRcW&zb7SN$Y)](>2:Sk^\?,ׯ~,r?ElRI$ߞ~cg}ʬqWOWuIhUS0: %'&`'3{V +S^ "ޣe_[/&駒FfM4J -A#[ځv0t_ʛS4qq+-y5#%WGژn^X.wh~1\61c^U(+r&=#(Ju] B2Ru m :)1D<0<9}@4wAI#FIʤH< +$Xi Y. +n`B&r@QY@bb3F huTԾ1thh,٭~% &Z{FZ4/&!vj.3/⾞äAo t +9.zS%6/&FL. + " +)]6Hլ k_ ͤYWy%*h^it Dl>k JWٝH]ty꾁hߕ5˙-lSPswK@3P>ᛛ't7>htZr'nˉ>B_LQv(=;ZU(MbW.{,͓Y$:3gȌ\n|^êpS֕ 4A|$†Ѥ2.Y%wDuIOtv_O~`I-By 2A#/~gO.n{k nvBUVdQH~*cm~?{Oש>ˠȊ˘"R"ٳs|ʠ@3N:43R_e`o/*]4p/YCQ(fVФJYMjWdFzʼnރn^sfnPRmWSv^Lz1$.Ǥ~tV>ofZnqF&-mn/`E=xЇ2e uVCHymg+Pn)XD p:sJ@Ff5,{Uq ͻr95S;Ӊ/_=ķRl y/u".siֵ"kprBQ!#\7܊ً[\EFkL縄%bfgakX c1X|,+bb\p"4p_բ[e::\]SX8ShqϏuř~9? Pʣ_̇[&cs-$3ש +lbS<6icQ\6F.{GJOߏ {bBr!qd֍8>Kq.Z$qq\)y$AyQQyL5`563]R;5H\P2t/XKsqdzuS)ս#i/lguM%VhibhG|X@wjKng~ũ-\@Vqskzicq Zx99 b4ɪL=)r;O7X ݺ:ۡTaxqk5:&(mB!M%oeVz'6uMz6mV2pjq k*xrŖbuBE p~2Mٮ{Wqm.4:N`9 +%~Ԉr@ HsMn0N;=Ȕ|TYeHtsiʴM~*Sn'Y[i.ؼmҼV_D G:rw +CQ)~OȬ`ǥ ċ.Mx[ |4#^sN'9:qA+N:0WWcQ'e J;_[n[Dp;jH N 8>떉eոVqG}_PP1I{߷SFceF^hWU@2Dtts܂܆FzE\6޻ME͆U%v[fVl}JASל]˕Rp CI=9_3jMy #sn +gV愚$ӗntqBՂۆV pcJ5t&s7FuAiP|ƭ_h8EddpԾUe)bK"P&h6KwA7W-I +B7%P9J+פ4o#ݽYs19ZՍE/ 6 \Ҿd +ģCܠRCƔ9OVP +<\UxtlNmLO\J؟~*M[Ԓ5^b;r&Nn+CR9Z/)t}}*b ?7Mg6S=/W@m V~=P)W"EIMIcdhqUaU7L1bit+Kjp|.~}PX +{:Ī@_ n!~cdwh"O"i!H1h%kis~lNV܎ʮzN)csJl +7h&>/-MZ*` SXGh2rl Z52pYCM3huhS҂jZkbQJc'w~ +]fuNv&{)fJ\{ RWeEh&^f%^?.>httyGlo(S_]BWsD&>0'(]GI eӵN]@bGvӰRs'}.'J+7qhQKF,ty{8hL|ʅFޡ= +evٮ eXLAcpbE|~ί4M'nֶYfrHsw4$:h+/m*vl +BI#]Z7[6bn4np!'Uy$Oמ QMQ~n.S I}/nEa^WEh&A n4E( C3 JgSюf/^猧( +4Uטɋpj;O\5x O_J&srhWtr`˽F>*0#]hsFۦLa$ +((U՝9Ֆ el%T57UAS\Sk3*ɨt[옕n^e`?Ejܘϴ-,.M5,' +i;#VqUDIb%j*̓K|O4\ܭ) 7q9++GG煀ցDs·%T/pԘeֻ|gP#ϑ=x[i1HF-c+_;t 1=wٻMy1Ͻ8L5-e:)&Yz>Pm2MŇ +&b +܎I݉)3'R9|\>rȺ :"M9l_9DB~X3QKm&r +ԺE+u^{Y")KI`ʔ|l~}t;(K_{E>碿rD%SuhUj~u_ K=Zh)5b& qĦr&CN3x1E{ЌmZHkM Q-e2ţsU'wd}1՟F(\zY=@OeROzp:i%5^Hp9x֥uD|4~lO)՛*,5*$pn[]I|垀R-+>NƔPM=rR?1C- lؽ0{ҚV/4AyO* c{?RII~oNT夒\9ϚK~O՜J,/!3Akǜq>T+J`*/wR+$FA`Vqg}1&7Iiv+w[:'X`upZ_6%XP)o4 gMJbT8&'Y  ಥl1Gqp% }д-G_53SdʱU_{d>6h[wHB .,ԩ"؞{?2aZ5%^o==BjW:~k8W۵{Ǔ[JU)%hyO nCttsܠ,ȥx7о18qh3̚PS z{\ >cYj,tmRJ!|V(wjxs +xxP hWw/rwI,}Ac6^%~0eLb +AME]bIk]S>\7!`VtAnK^1K)Lt + o +B h2hU5aǴs;*G/{TeW֯.,=QzKC| gud/xӟd=LEs8Q&i o +45о144C +WKJӊ+ Ь;HhBPd0oTҔqs\:F+.M,]/{ʚ\ݟ› (h9fg5o{Vޏ3LʮGδj-WQnkі؊lpJ%%6&~E{߂\*-jH +4@>hd]5ͥ7)ոU&KSٕhg + 5}a"Oޅhs#vUP [2"*}J_ [qB5gKVI}Rv >+ď͸AA7oQxnؘј?ysbAUzy'0l9~uEHTu] +۠/;QQ#4̓]e1W(|.htL#N3dK~n͑Pt5EQg~BOKĤG~V$l%ǜbr ץg3@O͠ne +B^v,k.vмmtBZhFy9L?j9w7*K pwExU4aU&!r+n)h +k vJf6`Z+D~{7Y=t͉gN+<ɟ~yLBORKn6`IkzTF}kfJotBIШ<Vp p)GYvR8WXvTMa A16(-7W-JQn$ N|Ub"&L`Te0=ꮚ|p[$g^,{KC9CI`:7ϻȕnL``DMbyss5+$L7J}aX 1H#1Hܺ f9"v +9=)8qǤ8tAPj@sqsVՔ7"7|0CܘŘ:2y6@ P +~UA* Xu_2NbYEuq)fXZwrr 2_gq3k`5-Ђ vFͳ%ǽ?{ZPR9j{mE{_OR&禒|M$N#G +2٠8?7zϣ~pA&菟P`~ [hvɾUڲ)l|VIts=F!g r+["rV> yul/_"5GQ65nT8Z*HpVk= pn3Dl zJ1O׫xM_F 9\]h9h1㛜cj,>?y,P 2\"Z9Toi'-V{Q!NB#V"<>7u.÷;DyHP͌fe@?>]\ns)EGBz{JLN ;uts\z_< +>^\!fLN#V"4YY/b}CѤVs+q7PEkSD74%~iٲUƐ=;Qlp۬$")H1WI NP?9$ kVc + 67j 񉴒7 sy>ʾfˉx>Kkl;!o/]EHp$Y/,+*R}HPZ֍nw=[÷nViF3S =E,ss< %E+q\l>taF;I/}zvFf@ iOs&ۦ54}7= +$K#.@L}rĈeV%첦`469dK^Ă1ݠkK A 1~| ՕU +*^Qx1[pA "n(V;JLSwpz;}&!k +Acsu|à_.d倘n5y%x ?KkQ0x?P.)ܰ"0TejU̒>cn3#mw$ݏEc jMmOt_cU|wd Hwfy m屈V͇,mNyYƒ1'Ns$(0tANZ/1k"K٫SxpT1Bο +}պ`?uS3B~|v/7mX6# *n +EQ cmK ZfAҞSK2/Qt3M(>oqM;} +wۉ1; ƷW +ݐ4ظyhz,}GH;̪9}0BbqA +V ("_JШ/@jJcwRJנ;8JOR9FR4 A)Z|̾IQ$2NH -Aqlv^gE5{~1-Zn[fZ7ŷx[G`~C BVx*wUԸ8I;󘷧wãܧ^I~I"~/ޖTܻf:[V>[V@\KӮ8|Դb/xG8o&igIOeu!S@j8vk S<#6N%Z:@Y~ǏRw?vOkis +$A=ȟ.go +8fZoϻ)epl:dŸVBbawVlR X z+LDP+-"6W?vd}[Ʈヶ(4<o,(@-8qU7j?(|D㿚zӝ(m§ w/1fTۭG*Xb 7|Ckj-1p~:J)5ў)~2&uCnP$#WD-aA7W n]ȝu` +#vb|ƛØp5RWO0xSGto7JtInʥn*Y2#KR4@3 މVy+4:[)eBց&{T}6:`&r|5-<\)s`U-=m֙]=jvC399dovt3oݎZ9fP!2"(⸹O0A[Y"qlP]_\̽4 }qP[z;@̓FF: V4M+1.L+U~/5TG  BzTu⩱Z|X9>h_cADlR9{0zR.GS 1/۴yw+J #x;[T.@d3("DawT]InS Y/񗆻@[#ZT> +;{(b JypմWuakZD 7.gO +T:#\B:ofиYrvcV"!.uPn%&%hcj`3)[M"~yթ|-|ܿi܎y"u%q?@J۰NnpF\Cq)g/Α'sY_2mNy]cN_di60*\Nk~|A$!^cj%E]e@ @W젉;.ؖ9uusDŽzVBJcU޾e/l!P<* $"1v:[7-vnÀ{X!=$%G֛s{]R5 .'5. +KL ,t o(g[Y7j +AW;U^[|#nbO]Ϙ] 1y0HqS@>qg%ozx||48l+#݇J_-jC| GX,䒑0!VRY-)WsIQ#<{hO{R9e-AcswB DŽdeGjeɛ.11xÖIl[Ka+ʔl)LfG*2,oGLq1"!2x'%#{9B~,5^A`Ҍ`nRC Uϓ3.&犊;v8oǓ%Ǭ5$CVUƳR~m^Z'Ya"y|~_ 8J@wnvQKi;W+JJu PUU:&VO#6np$Kǒ urgLFr-mN=Kv7bS sUxӧ z[#׵ىoqqzH:y`C@ο=)dB>n˹R_-p5 BO!odAvnn@;vOH8Y9j(QF/7 (N,{ҕcx7}n}Dq~Ï(T7OP"qhwHq,?I)Ƴx|_뭫21uv Vpr}`AV_l@Lwϝe= 8OacG7yEbZ7X? AЪFYwЛi-;S +sGRa_h +x(ؿ]p6ZČzh458/f|s$4D8vt|ö G[w~Ru3$|pI狿 "ќĆgU7VF/܆[hB.AVҖRq-, ebDrQafYؼ1*4JnD +n⩖]YŃz+.hS"| +k \ U)p9Ph#E.ܙMqh46 +W!m|q%~qm~@|!/k?7ggݤ>_ + +}>>S?*,:QaW$.o"rb!1YşϏw%NPB@+<"T& @ɠ_6GrZA nWIحƱ# j|Pw$!;0_\!ʎѹ9_E`bɮu#KBxrN['rW$>X+Х n=]@*Z'[lf0ŭ='_ g7ܧPw9q`D'ZR+/WQYRH~0/?ҩwQ;F2ĄcX8ǩ`'Vb_mlDŽG9sAtD}suM<"%ĩ +B ҈&ҾUQ"13r4ZSAwqc:pJ-)qKQi^"<0.nJwn5R6 ]2}z|[?2f >FVa< 0)8 +17м1Ǵqv(GCl r-y ûa~Cl[/4gGr.7F2 +zB}203p?cT_U!aN没 d_R+]f{7SH_t`Kbo꦳t3Wsoܾ> Ki^U3IO8>?ai"3}U7L,Th ~R$AXOk\ 6KQЈb3ireӌ3}JѶ6ts23FwOEy==ps#EٳD/, Ŝ0*BgWI0ش7Ze4aFh#@3r<5UKJxMoP'tryND@]?Zpc_N#;W>vژIkʓ}>qWvHNGvn%TtC0{Qa~2]gBL302)5Yc]j@[s'(aNy,)F Sqӓ cȦdtyXN~E6Mw̜'6Lr}kc_y]D / &״RSAPj2blAh`NP:@W3Đ|:-\#|X&ZkȯnDG,ޫ.anImǯ;DA.+Gy Цv+=n$&x_xK _&~ڹh_{9\~^M.ջq}-SmrZi`)|FOh0BcCA?giC1H7䆟$Mߧ؛Dw"fIʾޕF2HY"UaڠhriZ6=Z֚з`J֒D!CA@O6d,mnKKzd %G쭦{>˲H+[GS6}hǢl:1$g-mx`l\`P$WڂAʮ#E) ̟u%*nOO.45.zLݐr_Z^E /HTG@K=~!iPu*P +IڱR5 }847ȟ?XOT&SUu Ф7GUyfk4M!N8\5A#mng@a@tA) =u>op)Z +^wt+P4j'lPт[G35-!l$/ 1k/MG \q2րztr£J;Jb\l ݘ=sLY8N?{B=A.KzŨ*6U/X3|NS3ȏf_n-.7˳shpCPf鶴p+C<?_M^ys7AZ,\ߵ^5k +^ƆUpUχ0ITy!i3S:jqs< Kz_T+/3` 7إ{L0?<_+Fb 7B'eDiuhkʺ{ ,T#m +m9{2* )7BDU2GS,4 +V -4{)t{!ђ`?_nkʲύCNF@^>u؟&Q/sS;3:Ygp˼?2 ՅTzf yjjp>$j5CĞh~a67-:8pBN:&tPϚkOCz*|-}͑F䠗UU +b:n]%pQ>PU7JI J(jQdbrਏ>/h#xtSwE4D#*=/}6h)F_s;E^Rpt%i&/ۏGY˽\(;ܛ*"$~(O"o+hKQV;VnOC;3G8 LRymS+^ +^ mm6}x[Kx7B[@4  +vdglSU4U;$[1we'SBm ^L̏\5}˃?ضaڠydj`K'=, I(OjZ_2{5g`7SUT'RP9 ѪQֱas?O/5O 3R6cx +nW䯗m$Z%=Ȼf +nRu%^}_ ]-EX%/:B9h3T2ԉɣF9!VM%ƅomǬsRhVp15Aԣ\dy/e ҖNʸe42PݿCuA)DBO|1ⰴ/y1lnUkHA>"J^m,45)1xac;jrnHsPJDEv#"nO "nc"mfǣ;~mFݾAUh~_ٲَ;hx'H&XȀ:@j|z|j)RZ^я1't2b67G"R + dW +1rU 7cӔ7h=F@zA% RT;%DJM{]S$d?5[h#.xL9lΧ3+j˦͎M͑iXyq^a$#{ R;N]^JpQw3GI**eyS2ums\z_RݷGmP $!f&'' M-A?Wv`zy<7Tt1r 7q0tTő ڱpXܹYE9RDO~^T%W َl]F%rFh'R y–VVaTkl4kb}]:6z?WE#v #/=غFkz|JkSr #Rh0|M@)O+eyҽeS_-aQCn2ͭ B~K npn:.0:h">9|}_޲ Ir^f$JbfSt<$ Z邸bǥ4y)HQ$# E[݁8lgpL}.=ɽE=/g`AAbAh@gP,J= ܧzG Y=n|YV| FAQ N0 WidFgn!4 {nm^y;FKqwJΊ7/dm(G۝:l` L㫾HD!^އe~7kK+ﮩL-'Imŷa{̌!~1C29d=%x0lzJQ-gVBKj˙/u`ظTȇg59= Kr '!3mhhy[Vo仑SD@>BB֔9TOK2g#HUdõJtM$G}*O%s Dz؆Fh#KSw*LQA\ra >Ӳ`8+w9OxIFrs6,fLiG@h1 +7nyA1Kzhf׫3*d `H׮Ka}?Q}c BћMs1'S-^o o oEk7//8 j7dŠlzo"[xUw;>Ǹͅ|UTzl3˅l`dʀ +l=;$mJ Xv+N-KL슍i{"!=Xݣ/^zU{c%p5M-^zoqxx1.)Q6UlJcڱ7R^SY""(̲ 6uaw67ȇt!K t0ɉ2w=Ǣ(t&Qtо1ؑ} kV ?-D dcy&ZHDLK 3.+ nͦ ]@RsW3䨈t-~60h#@nBwm=zSUv-P&>q,@1A< b*=N`=+LވϏ .,+7XtdD$fET+pqXA!VU\ٰJ,%ٓ5xK(Ɉ#\3XP}p<Ͼo)-g(Y|yS y@8gޘlrg /Odl+4Ν {=}7&[/ڸx+?–ӸNnn?'dv5S`NV6%21/ƖFgs%h 77G$Sxl)ocfLMzsj@tJٹA 4Z(K:fI/}8]Ň wg ]%񭋭# _ G X +căt{x<RFOК79j.uC&!@~+C-mfa~Uc'J6Z ޘ ~2($u벮kП+l->h"  ʸll5ga14 TN'm. 7r>$Hw*d_ h#^-gm&XtR{a) +cyE+C(/sú=[W~I/;L$6JԟђWrՓ}>tjhf(j +f5_QdNuS+.٦ Q[LOe~?3^6r> &e)F(,a`XhfU7w LFb7m ކLY|`#Z1G5aҙGA#gRnPm3|lgY߸Aڊb/f6@`ȯ6 +3P 9嗂yf3v$D^ԯ d嶣|Pٔ/ҋoݬ pޱHm\MNֵ$y#Ɖ+jfK8H&b5ʚe` ~H։'|8I>_) B5'0N}U\I5)n<1"`D|G<`}";brZ7uBOk.HTPw|Z=Ns)x3XUŤ0=~%INChR+LeBЪ ^nl) zA.z+l'G|XqNycHm1-68Qi%)FE@NԸA.;U4JEөq3S]LnoK@_Մ/6 ب*(Ws_Iwc1a;Ođ%&ojE]uI ^Q]YE I]i'+x xVF5_ؖAݯxuq o›WcK `^U\mqKl M%ns8VRYoPX303ڨm͎j |/0IhCgsaaZ='-ACALWb(bW028h@/d*u@RªɆz"T*%>q}5goHm0x{"o?{ |Plq}p#ԩީ /}_] Zڳ u_*_HA]%9$͡y1_-G+ @a,+~O'xTJ  Hj F$ݰB +[N(xѐ2Y +s^[lCRE˪cxx'tHcPx%։rUFɈd[~.3] f}%vJn0O訿zh*a(^m$tP?I;ww_SFsBL,dL}Sms]\Vuzzԛ={tЋta!Ǥ1?E%@K,m +-A +y'mc^ཛྷdB¼,*xkB 1i+c& A$VBwc]$]1zZ"hVOo0.X<(3Wb&] t ؠO}Iu+:Rbr[:^KًnDIXi+G >PhC 5ޗ+? P#$`g?(rOSĕe9 p? c+?bg~h'lam +*Юv]Xi~畃{u좀#]fz6K9B0enX4x$;A$1艀w)piC[ 7x kE 9_ +> LrUݐ3A`eig8WjpWdU%k.K7,N:z} !Jh;uVc_%C`zW^Aq,}E^u{ewPbJ٩r_횏)e7<-s K &ONu (~%*mde_PM_}{/Tw'|xh>d4*=^d쿦*X^6_5QL.2_}λ;蛳#U9pen0Gy ˠW]],ېWA>br:V&q}e0xn6 *V>bb_v<Œc==Njvji,sȿ=;c߉;k$+kCg~sZIpm +=y-P.Yy|O@yqay׍+!rjU Kr6b mnKΞ +C1^.\ +3u߾,AZIeyRG;Mfww&QPj }lo&??m۸A}[@Q=eZgm%y/֗Eou/J/ O"҄mcÜn`=D}C_+ |`mM//h0cokڮV\2uV8"PTY';;5C)um{6@k. +WQĒOU*LCpz]28("["_)q$x/$/]v_]<8!bmn?'Z!h f.%Fu +)C)DF>) Xcav;kX:fo6{#K=ȠP^zpAW"__|R^YՁP7̟ 6Հ.h64tzy71W=Nǿw'Xu6]MA摑 msK^=wtx_[9eԟf@4Ys fq,˵I7$ݸ{J&ovXM%rtKU_};VU#ufgFG'ȡNqjlVSZq: Pm:`5/.nK`6jbQmi+G;? ֲ-5+[je'3 XKʖt/lg6nr*u*Arg$&Ϝ݅@SwLI4J}N /678`480MK>#k\I'Z 9y)FgK]\1Sn "F,7"冺Ah"jk07iڪPEea$5ja&ahMl}$v/G4(lޘDH.Wvcp}jz} CHHq7ydeĭ?h߿BBL~F] 8+bq}A>XXnp(^md&2 =!&5G`a[\C~ 輿^r>+a~Q6o<] +ׅ^j"\\2\˳rA<F;`&ۼ7f +X.6@> nl/f`g3\Ν_l'MHW-3k=gգMƣX_((W/ ݼx$b}q;!ss[4'K.dQ ~׉<OY.^(p}Vyc㦠ep}>tX\q*W{^=p<7`^=Q!x6t_ܯ + iՇ0 +Ӓ,p;g٭[iJ"dz؍Cݨz~ZT뽒c9DEN^]RR']1]6)KP~AJQr -]Yo`n\rY>pS荶pzyF&N 8":3rnF>`ɪ) zA>0ldL2eXa 9^V&υqZy`7ǭoˀe>6)VŒ[oio>~x@gƊ-$y»]B(Q~uf-:i3^ӊF>S.r&lb8mEj`MlıR6t!A, Z&T2A ~'ɱej+w3eX̨YÜuЀLtIVy^y>WreW W3N$ EK{&*'tӷmn?ob:pZ +q;+%Χ׿5'@妖,~v悦XRԭ|SvMV.3XT{NjrJ(maǢ۰7>&:hߘDǭ|eoD0vkdy" .qd)v[n,b6Z\~R)EKON)E+rf1jR(77ȓˆ7\D`WMq/垪ʿFTCӧ-w̖ v3lC̯0aA_+TafgR*IFBJCӰyM53=7໿V-!&Rαz19Y6fZّI:-@:4irP7yuLPh(BEDD-P6,n +g-s5>m7V\,O$\ݸ {DŸ >9M6xJpafmYՓ _3+^`/ڠsWyA7^KFVӉKFvR!n +Ci + ʗ:tZJUԕޟn3ϨfYFJ2ul:uKmy.;b HD  MBԴ9aQP ;L0{Bcj'#A s1dǸ&Fr\|bC(_~Yw;-H~8Tr`y}JkR R]{n-mn?F +o НEYʑg:gqI[6`'qN?V㠲UPq8ʹe%ȦL+{O"ɭJǾ) m)-jh/&mҿ 4 b$)l`$ɳj]+B>) Ff2Lwyܛnb>c_xK^xK^^ x0ƴPP >TފhxryϊKFU/3JJ}NcY) g$iqZQJً,]YXgArܢd-qM'?y x34=|^cggDSOx)iqNJh||7_}6{`s.vms=OWDbNj"Os]&;9* 4 +B#5{h#@8zoLoLWQTPu63%-?y}ns~u9.l33%{ +W8A +}%0E\As|%01kXʸ`~=;'0ID 9WռC‹ T3e  =k{)&ZL߸oXʲ: K{H\C 9S|=M`ɂQKkjIqw<8?o}A7* \}:5QU(Y ,g'ܲJL&.ؠNzѪu>MuI.#'иU8q!Kx⤗nb118ax1$]?t_tIrwGǿg>~{?㗿c=G/|'7r9Q}?waY|0Ϳ?{<*:ݛ˂qAxO2H,rr"lԠmnUBԠ fn֭(s, +#N /6A&_|Hnм1lc+[]l,kS3f4)6$wF+'D@2*kGs 1~{2{.Zh 2+zK:dp]TfR̾f#^_G rIp_+ېcvi x)> ?ZrΧO=RڔeBo5fE3L0 KrA1 "ƼKy6(:op6 m`2X +tCgߍ?C?(x*yk,W^&qCEBeg2Jv.apRw675Dm&lfl, #Vi*` FLKZ/|1 +M!?SKL`+}.?AT7i?"9wLT]v‹] w-]2itԭX¥>w==kنmn''G|:.K ꀻuPOsB'r7h'eD;yiaL lCOM> 0`X˙g:HO~V/0R逇pO1#7$ǻ8VXZ6q+VVQFTn~P/z+89TzfHC\TF0͸YC +{4A"U<2tK{uo:Azͤ8 +k{4eI4Y4N`^+B4iF y1r&Ю2?h:NS|aM m x~N?-Pq)4jM*5%0GUC/&}8 <.wRzjMj5ySGex XTMrVqяJ%ݤDY؉ϓMg6`.Nums|Bm +.v 9!FFP#^m,M +BXBiޘ6پN :M np'{G|A|YXQ'WqŇ/7f)yrt/żo9<ʶ{)9,1]E9?-n>U$>HM2K@"naxP 3PHɑ:WpJOG QL̒=fɀgՖbFP-H.& >?Mfm"D?¨!ɠNF?7cP י$3tY+^-}6zUי)Y`R'SCf#;F4tMhfK1_48.H$ mXI\?=L0Fx-ܜخJ.}Aj7Gx@/ȡ +p.v&I6Q:hA_YVҰiޣmnX 6N8b4!~sZ2hSwQ@ ^1z+|Q^elD`}/^)ʫ B^ o} +'ӖO|\ +@rx +EyšǟRq`-7Z]ȅ6 &/Б^k=aӝ!Y2{\>{w) |Dؼ3:`yZS B()q7Vzv.oPt@[ fV癔Ը&u3Ig +h}~lH_x ^p АFh]3kZ&\":Z%O%ӭ ',%dg 8KTFD&gԝFdqs|@2|u|6s/ +#1Tؼ!7"Qq;Wq.j u䩾Ie^Ds:ѫOW#1^Jw67GxHSJ lZk֭*\B\\PO)/_SƍQ!pe̴&MmpP4}K] ^ + SV%ER޼;,#> 'wމm`Q2 R)KG 9c#@Ir ^Fɍ ﯡ="Z)3P!eFͪgaz"V4Y5FHhc_뤷%n7|̿OGFiy{Mȟol6M%@#cZr3"{뾷u$#]djO)E /vߔJ#R$xړk9?VzvXrz'5rQp#ZkiTS:n 6VVNBvPm_Ş*z߀}* KO7x">P1x3IZKr6uiu>M0wdx)FG D׳&'}-@">ʧU{A e.j4~O,@[*Fe CÒ&/I>/V)/-u}ɔmn(/J2KI.:>VzV9еX\Dǎ)7;Nk]`1EH + k lz;$NS0ݛr(]v:$"Kـ-F)/Ȋdzʹ' 躈ؓigjDvE?[}-ce7"yFLf43oafW&19Ƌ/4 Q[ttl+dHh_d6=FX"ϐY0r[ 0pĬr)>ZR>B /|f@t?o!j'@PT.cց&rTc"trؾ K fC NjVzA>p*$@ŘqpRKBMr Ǐ{3F dQ3Ób [v;Zut[wg'v:>Qc:H:Hرinu%L؆"lrq$Fnlh9"K>3'o֨/EK_K(׺,>͓RįUntmpzy:/})m# rvy_펰 XD*Ӛ=hk3cw ^Hϓ,e;39~{e׿@ɪ+_M)Zw~6{:,@d} A';Z$z|GDrE%`ql)F1r 74/ /xla +a77I'}8)LnGhsZl-2S>Dms[9>GgUtJ/X} JfT +$Q^Y%e,޾$H(ֺpY%-+`{|:5vms\z_62"~fz +iMαIN$I'%ӧ zv Z>X* kQ66:_!ak9T"@n> +r73i4l)mtx8wl{O7Ph ;=Ȯ IՌw 3/tb2se>-87"^fYJdj5g3! l4_'!Xφ;B /F]|g`z`-?t͵ŸQRP TT?߸x҄Z47OlKz_x`:NR; ;2s&Gn{G +eW&Pڿqj8MD'PHJZzv3c@ Ľ b{Tmi]0@~cSL)X.y:/I@lCG=ULK_7L>Zr x Kz_.tջ욲s_Z +ƍ`APLj5x{Z$gAnN\¼c46r*mnԐ܄NܽG\S7EG0I$2u|5p}W bICXi> w Cvs&-ov:u5\;n6; UTd=c*v]A%tAF4{F d=e_[_6,Cp6ޗZH?_!) f f$1]d.RBbr'P˹A.NX!IMHLz_*:qAE 7xI͆=~I;t5yXGꁩx1!b_Pg=A4=pB'\~!^šeP1_%z-E7VD wFgWvGۍم)z-ݸG=4~F +y?s`(7]3ez^lV6`B(lML:Cep#36@GSg+:[IiXPiXXiXj;vPiS= xm߲ђ + <0@‹T=$pmvg)~VOm&Aօ61kܺޣmnv@kqg͚>cj t.Ae9 5؞7Ue~d"&kڧ(!)R"RBB(>:q k6Aw67FMخjK%5dea$5*)UGS acC8  b$h ~uOj'KCU E @-1 ̀v `FS?y Ge0]  ;xd(-M@2xRX|2Ks޺4gKN ,ŢY~\K}hk +߻aرQc!ڥdc!UbLj+G  +ݕ4]x? FSՒyS@#5 Mt2@=|r +Ƀm6~Pz>!qu} !d0#K"Nfta"Ƀ" Y75F'7 ZadMmuYaө㡆اhһCؠa_:wB~^ޗS޲⽷L4,뚙JX@ (hi'YV,?ebC8|--/HDe֌O^Bhyͯ7/?~ ~yw!ZZYE*uCE'tn>qq}?M~3Zh1ӿǡfi=D&pV/RwZ0/R13 yH//NbY-Õ!9RKÎ>ۆ H#YYBW7Za&i,!|zoKS j_dюT9Ol'J[Ef vk#"npv 6uC/L@?nCdqޜ 7- +j5rW}Nsj:nKRmt ڟ?oVWqm]jgpzQ6ZF g >N~ܠ!8;̇@_xXƶZxkNOjAƖ 풤u rֽ/aZI0$ztJԥ3Go摑irj/ev{w=Zba glm'H!!~U?k`VΈ99ߠg"Fd}Gs +FrVf6wT=P2 )W;lZimO͢rn1(vcǶ ')QDE FjӰ"jں~6Ea5i.m,7G,|FsH}^1Hr8z "m.DEt.}msqL-6 j i]^(V$W/ +Ryk *тF5ó>[&܀*[k{\#yT&gjFI*[>)s؊in?'<2uK95zB7x;spو3"{Rc{>e* +37LRE +$ `!VD_CrSgz>,]lin%}dBܤ}IaD~EC2 5#)'lb.\Q;&qe_ԎDgEM&Q9 Udd8NP;mH{) 3[z_ȏ&,l#@}-ˮIue3TH~3j^y]ۦn`mٲs'Z}r&9ŗZs?+`ܣzyO'$ \ fT.FmQ,~ e*Y]pnʅ'dv)GyG@N2Εr<Հusnݵ h^ߌƓ"5}4¨:AE P,:MI۰Ӕif6Kz_ԑ恛Bo5GklheA 7&۬r|0  SMj^W}P @; AԠ{mU/ՖNZ2$+%OATRds(ɩ}^Jw67x ^RP6n)1 eáOY;aK AoIGY;Zughi~)ig@L: d  Igw[6^f3]hlc9y 1 m/_PK|+bF$SxOZ6l PYRTTWxrT+CQ_ĞVS_W@c L iP3`E4ϊI{*<*ܢU8OEQcG>//Q8Ilyɶ>mk?mnT@1H窺qU7^Q}ABy6qdGA5cqcUV)i({ y,]C 9WZU*ҧJGR&&}3Pz5g".ė_af.|#AE5a,y [4ڪGU}?9Nkɾ4wG[mTyXiV~I{4N7mgM)vW"ő.ol#,*`D2 +*܈qaR_ +g`U СU}¥bbxPleS8&\ZG@셥tȺJ3=̟_Fyк d +Ȏ}"5觃$Kk}mP4= +cRb?-)CfN+4= e:u亰\9"1nʳa!I. ә*w+aA=VVwRaՊr`(ɀh~];Å\u )6+&?;!etaՎ)HϊŤ~`j[TiY /黟VАxUF5d + bz_J ])v⿌vc\1*Uc*TkҢ6S>%tM7 dY%TmZHJz?XM>'h䏩Լ\e5x]_MwT@ېHRpox~Uw@|wTPh_. D'3`q$0762;hȈa[Q+`紣gͣ/stV6ʹ[j9'EQnn8Z}dB& ذ{aue !N}5GGFt]oA8 \[@]?Z7e׵gK3U$=:R>Y7~?'iZ l GYՂ%q۵%װlkKrydmںiI2^ֹA.iI $91/+F^a17r=bm.&R@۞ACn>ǡsy>Mp(&AfCTUyƻޥ8&Y1-y^LDO7;,^!˜akr(],pzwwz%77ȯ/,#)9gY-ީY5mKdb^md&܎Lr; +KGF$d})!R zLA˳jڪQb^.q.U] y7')^?\ ˨hϜm,59 A+"60 9)7ҰÏ$M1xo@}ΝbQ";W 5=[㊻Ҷv*` F ї%Aud5kpuU鶿d-TS?mϧMæOEPyLs|$M$'ewEG0 +\OicgDSk$}Lt;y`]N;;; +qfp7++cp&ffp\yuXaAxqkܐeiۓ׾`XzҔ=> +KX*@d$!anJNjۙ WḎZ"mABZys9a1%xlkާKPL(~ &BFD kڠFm&VG 2ؼ1uedQJ2x@rpG7Q^.NGJ d~X:Li 66m<_X6=^7Gk^C&YC{ȧvQ|B j +&PH]YͺM/9l97?Gƞr1kKRq0UF3 RܟfD6Č'ΈZ2]B}-j&v$ 4x- 6]mS~9F]agn2XzLb [6W6*Բ `Fuݰr{@" ^H}2yYiNOT:nYcE0#ިwuhrtv O&s g>KO}UC׷]b&W  Y? 9>$|͑[ H'S6Ǔ.̑ L6JPQ$Jֹҫ(A>6a؅8U/}1fY4cF2sue)lkd\vOM\Дh:[L?'Ry)7{.GSai7  +>-<*l)~+REN"`˽w%E  [l (mJxOR}-O[=Z6@E+J6 +ۋ_:7w +3|!ļ/] #A;%FLK@q;zM>G',oVO'Dxxxv=xXbv^XD{kH `iټ |1zInGHV mdemn?N! ۂ +WrQg,Xf&˪ +}j1b':%zpsc-[9e'w7@ћ)LX,Y2`J*+dȸGv匿K 쨱XQ1-ulfޖ Be,sN+^Rh%m`mnK3;5v(/v<% ++zeB4}hk"[=EOkLu3xih'c! 믬&j/[@|Q?]w2T:cdY_{bw`OVKBj[^l.3=3R _o1wl]*{c + 9Nس_|~P*zې2P5 5=޿nbCJDgLNb2^;8f5ܑ>U"'ٽ8w~ ??(Mn`g* >;*)WS|, m{} $|nr<_A̽ۈƀE X,:nY6Xĥ}oڧ?W#z"'>0veop4VwZV\rY_jbÖ\Xp6[q^hAO4|F!|UK M Iώc{ǯ(4EL&U+4;6h_rMjF&ŖZNAE^{NDd1Ch©#}Ǔ5C jq{sb0 + 4)X"$ о07[mjB5]T{^]U&Rfqn#x@B},iN `Rm, +PH I6SCM.n+GÖVp&e'lꛛr{ Mb0eIqN 1 +|*u쏿 XdvQQ4xqFo?6}X4oX2x˄laM 2Am#}]Ӆ9Fr™=ouHx.Ee%GfPe̮1`moo0 ):$ЊABQuQCc0!"/u - +A>rr:q"kOբn*M& =ǢTGؼ1 t]*‡3o)edjܯpU&)-2tj-2ѺKjnI~I{y_mh} tSemꋆc '?:|`mMtY4!;XhA7lwBafv~KE0c iߩ*`O ľ$bK•㽔 /6Sw67Gr:)?_h!vҬbaCcx1/ ZYp]뭝ܮv 7 rZĞ^ &㼔mn&֔~=bǀ/}=qCS1#bl )T6_9i>ֺX)=[UA>B܆$9@m9L>Dvx3] Q,fR[Πݘ!6|EqOEu`7JO6^M׷^J"e)}ZRH$A_#y$&Ç2U)&4@)8-D 9aK[mIlM ֣`yA۠ʷY.&#de"2QVZ(>y-l\~ \&TA +ce381 IEz[yX 芚ioK@_Æ_RWOUMaurIb䞈jNӋX;8ǥ{={-Z6~sٻŖ>չ;c+1bmnpZxa\m]!Fzu1xA|1Evr2jIL\L=+qMmA(pg͈&aoe{묚K 60h*R\mB, +#N /5:wX$qv&O|1/7|)xMT]䶁l\|/ [g@DbOAZ9d!Yױ}QtG8@[O*oaOeaڧfT*ױNs %l#=.eM&Yz*jl?Q2}";tbzt/v"$AW1"7. U5%Ղr]h1Dm8C}uп]\Xܤ?QCH]HQX೩M=x`riJeg )SyQM%lƍ%lﰂH=ќKkQowKt_:goM98/ʵmHjܐ7Cpwwgh1l 4]n>8FsPfh3rdR]mCר;6|@g輲?OFU`=cUE'6 ?0aV֦n| -İޣv_.cQIpaUCݎ;M{Tg.Rf l(.^ryJf*׸~vPJfgϨ">h [5y틄=wЋ̺*R߿afh3pww'Bx)Np`'vcDv6~mg:W8$$qoFݺIL#syEڬ+ޯi;eXTs'"iޛub֏td|6"(K!5ҷEU߫$sj + +\2z:hM;!AL&;oll`VT 8* چc!j%ksx/qSq(华OrwwEI Oa7hSx]?)-eOd=2H-dEMӆ|"F(u3F{u6 "fF_>}Z+'Lj!Rnvĉ{^~u.?oZ_&JR!7> }w|b`pZ'Kc +I.] +cl' eyµ̻&HFyҸIQx%&[Ⱥ9$LcEFI,uwE%OF4@ы]TGɌȲ4 +%1caГ'hswqf(|#+:'<Ex:Cw/V?R/|'g4BыLw,FM~B>{d^M=>M$xT^ &k6P%/ 58'w[S:zĖO;igLEDnnZv"vۉ7ێtF1`Q8AlcZsľL⨗jY Xv\{8/ΐwDra Pu' YM|K~ d[1ɬi1F-rzg]2;izÚ}̴wn5AItȼڄ }w|TH񻸍V 8^|h4}4397>a:*_tkR=RɇGv }J!N\"5n={#Y響RJ4 +"ӡrÔɼ`gc@MmnC9>:YLlN{Y+:u'_XTI)1g VM}w@ٺq(?cJsEP+V n5=:eM"|Zh"5tNϪ-P(k8,u3pgXvH*4cH }wQ +ki[qs~ q'J˘53< +F;0w +8H#sJ+Rw\In!)ZġQrN1GD{ɎxF)8@ +y@ΆϞ.n$7ly+#+pM=JoݏԷ*5Ǔ=|rla< L읝N%WkvV67nd72WDڳQل:Or`4c% 0}? +hvMR LG;ܮd?&wiqS1VF]yG +6kcwtukFi]̌%b"6/6li:wDhmBU&/xGJ]*}ReFZ\߮ơjArT8HE&J FLЙ3)#.p_ D8HO{>`GuݙDN;L]:_cTW~K1;3YB)O=Õ:.A**nQW>;UJz FKQw57L8ՒLfhS[3oomtlm .Ytyc: 3N:wY?X'ɾyaӒo+т9d&>`ldW?̏̀1i!b٭ Poe?^w +'-夃6 ncUaa08BGNͧӨpY$FRd?l,.޲TM\#7" +TԬ tD2&N^!>at + (v]+H:4;OJ.% ڔJAW?,JOG>ty +g?^KJWO63Wx?^ Q&b֨j%>HC}A\1Έ 4IQNV7=补E n_ !dgT82=) IqfH `pC -"QnFctMӲ2ZkxJ^W2d~t1 ʲU' >ow*"J>3D [PBpww'nn'%4dpN7xfc@M&Τ9fPcBvB }o+:ٻ ;kTU-3F{u<&H/C~hTf5-r`݁TS}]$?͓$-wi?aL/qQ 0>qWKw0.9xfo_z7= 刡Y:T_q1tg(g)ؗjghEKyPx}. =5PwNv85`IAU]d0 @wp6%: oCm((5`yr\eguy}#@R7ZP?uwgf肜ѓ{ٓ1~ sƨ/ć%= Ǭ, gϱwXMN8׍u#)sMO6LPUE`X^ǙD)LOδ,ŐoYm 6o z.Ks:ɯ c "~7p웹 s"6l>͉'iB\ky7tyIƓ4O4Tf;f#\'gP v= h39. -6uFc03fhB)dك6 D8>E+VČR +Wh.%l}"I*>kSwQn, ˆ0޺/-M?nn??2;t07THVfG!M2a[xcBF'FX%u7WI;wdbHuuLmm9Q4gbD=ptP2BUtE+e",,~ov,N%L{&4\pto&ftF&11|8U`IT-p3;i9buSeNWQs*I5Oٝ9^# r +;{'6Wi }w|!F b=>)/}Kh|کix3C.0r !Гis'Õ3uRQ|QCA76sbhXnon&#F\n(SQf|x{gV) tI])GR'8>y^*=)OMRcf?æ|_92jjFɚTuMEg]A&q^qZc+{sw`7l mFe /E1+N݂g?Pי9Z{n8"7kJBj%.bznxgm8]ZEbSzm0]}*.F&+S^1{'Cڌ}w|b{p AYyX h H#ɤĬ|O] V~Rf=H)wm0P7>[tUy캑'MvgJjwa~HVvRYCn + $|$f"M;;7=n={҂\J/jxĿ1L,cSԦ4V]b7'+ғa]ZFk37x% +@gՅ6 i(P(H)Rq1͟'}/Vol+2epIdƭ!u y!?H"2otjn i֘bnlb +rU8Ihڻrp#wl16X!. M3*P*GqK|#oc'G{넶 ~xnz.jeގ"}w|7ޡXWIk|h$ţ?p54 | AOY [/ċD@RpOV beV֕Rl vJwo e9l~3 ~~H4qeڌ$}w|v_ ]%UUONjvbb`& mn'Zt WvRu~:",}Ckw40X}{OUѸJN<ج֓wm%~CFSmT=3tM[896gw!snLVsx}V?b/"41늷筤KuZ_U3@'/9b^;%.ڼ)xͷ6ApA>:?ƏϜD%H6 {dmƁt揝aweq {ӕ,M%X#qOc9 LA7teBW0 _1ܸxiJ&?`aXƎ'ƟFzmd}qm kS!~sdwf==vLU=0$QF* bIx[}6~ρvWA6?n̜Ó$9$v6~7+.vIlÓG5gXv4]QoG&k)'\FxeՄ 牓V7|^y0CTvi&|EJӍW+y㕼Jx%oJTʱrs(NgbtpjtA$儫9PɾlЀlZ1Piy{=))E/cJ ع/9I},l }-Oɪ~bu +~.b^(sI*ڌ6^\VYK:>'/#nS".jgRʯ ^a/ҙ[cih?{a-eŞH~ҴӬeh[}{Ӑ;v7C͇NYi+i|w&Vb_|2A >?߰A!Pokt\~)we3kED?">1tNKjcWXFn7O]%s͋HLg:%BFӨ*ZlV *ӆX'Xުb̆NW}ZWw'WՐ3oF}9>DlJ z2ꂝ Wul'?P.gyke4աˏ?rNʺz9 V\NO/ޣev'٘sph|UzƸ9>Av{]{τ곣d4NvD +QhYo o0*j8B(@b)?^|ҪB v8ZwE=ɌLGZl;¥ Ih'OD<+x| _% "r6|$p58Gu~/J}D8筨5NM-Ц6'_.1E>m`GV#ϟDڍ{sww7Z7+niQ;YOs +v[@v6h~IA/V/_J"Чï&@(*ۆ^?vĈ.^vp-l^YwQج@Ԭ ܲ5nژl@jz CQUjR|#+ۻ5Ncz''t > r?{u6@WzRErI{ uIԺ )͸왘ꤓlS}Gl_󌽪jPϻЦhвm&qb\>ug\w0c7=m5sv爻aUuݻh}6l5Q CPĜu +(`p ݍz0FTV'3 [3>\7>\7/[Ou BL"` `c =Ch!.-mvIICN'cc@ɽi@6ade3<\H`CڹF͘iͻSLa6z`hrgnu_c?zPwpI]i_U}/4"ᤖR"9 g4sCRx]7XUdMlI 4Qb4-qڬF%;9t|aLKU^Ĭ^M9IH=]6SZso]i;_¶@[喇2}y85A*SFIv= ǜyĽ U@N8L9K S| s?݋Sw\I FhJˠ)|5;rl>G|6Vd*z"rw^($9Q]*-e?eNT̾S°JMoc5/.^0)e.B }w|T~0\JZĊvZ` mF9305'H? +sw96()&tX7:wΔ3m8w ubjƭuHoV9J ;.g xqu iYhh gJvr#(OVG:"ɾpH쎣heNH#b1]EB)(H@!}w9w(-eDoNI*BC f6uʞ+],U.tE曇 _5HOE$¦JAr)o;O\wY3_)">!@0 +%JuN231 ]pOPf S|?tiY|aqQ/Z{֥ e{_98pwwgc.QF.rC\3fh5j +"A6FYw`$>:Y섪6  Gڱs?^ܟaH o P0))Z3Pُ[]mrEfϝ}!v8okbaՆ3Igd +3LwLFsVk a -Ħƞv?L%.{E'=$1B3uwgġfI 1 :6 411ovO3;ZsݫxQ=29XӆBI{hA,O!g3C Jk@8'H~x< oB@r+ϰ)VcՌYYhu]:z`/Gb<ll$7_/7 Xk6 !Q +}:br&Ai{W+HW}OAZcוaQmج@BBR+璁(bKOEiEhg2߃<Ŝ`}ɢպ)I~-G->u \p+zn6zn)g^+PeQ=>KC-RK/Zb ovOk25GJsvcf+򖆥O~Ц$?-Nn]'~N9@?{t>ow.{ Y{eُeΘFbVtKNףH~4>5Vcl;kCZ1[B"MAH!Ӂ~en(T6q74cc0 clIkWHL?7TƹL\\OQt5{-~?OvpGi,ybh%/nr ]TE )b{gb|D=lD;+4ٛZO,'>rWlSSf?'ABK98Dܷ/\Lou1{~s-rCs}kB'"Fl)q^5ѓȼڌ#C8yg>=KV dϊy:|&ģq χ٫FǛ Sw(g^JRJjԳ_~8r\Mrsbq}tџIʈ%afhR }w|/R#Y!vy۟遯&wo]jݤ  +ބ f8'hZ .&“2{D~r 3ʴ3 # rWNš~@Ά~b(g%^DFZǠMoaLk3Sw g^-4FzCJ͢hQ2o)='X7\r&U2ZܚYd m΀*(6T-AuNq$!q9;e'JMemθ_u7~脫&VIdWcLԠ,2gL pC ^ܣoU][Ї*$;9(H5\\w|i%^'!J3n-a-9l&xCrXE q%o [d>E+@3'f-G8>5&ց60eXO!MP$ĐmK<_3|Ł83S*@[ O%P[uX@2hN.:}1C`;3'`s8rL+ϞWr%]\I8cꍾkg:^*?o֊v~*~҆q50yGlRDT qhz:6YcsT۰m.AeTZ$ApnD FLv|m+FgHü'i@ sqq։=bqG[Qj$M{⤴GϾluЊ\>OԐɞQ%VvMzR̘6z6VthicJIj_U~ 벥lww᥾ +M/59(I;:BBKѮ$`To>#2ww}h-U0Κn:yic:*v|cqueQ'.򐝍t/PpH'mWύн7J憜1G&k'zRJ^8\cZ{93H^ %>M _L̖Sn k5Aƿ +kozGA%П]q;&$. IEi޶@d1!(Orr"e?3-%\풸K')' C gj.1n'3B{1]07X5CQSw1ru0gnvؽ ײ/+mv$;~7KSMF]I.mJP|Y2G[0t \p+5=Z/ Sx | cN8C}нiUn\+I_J}ƎL|ze_؇y+T]Q^a9h{(x˱i_1BMpwwP %ZhVG7={vH0*UN,1"JR"PWJ]L 㫳Ͼ>Gl:Y" zR~/e͘%7v 5,w,QS޵ig/>"3H[nkPm;M".,%!SF/7|ņ˾$--gYR=)/:BLVUp4Dڔ|c`H}I{kƃВF%e]w|7X>'Wu@XIs̰Ӣ\~s5)NC W8&6(?}{A\Ur\fɇ +1 +6B琳O!] GL2[5\6G  X]>w6qImEDǂmw+ӍŔm^L)~zr 0kBuF@Z%O 3d7[{e[t:g{;Mꃎ&.t%ٯ.׆D)uϳ'sf7km&pyլqd IuIy8X*˾>qAt 8 FȍE  Vj}>ml9Y0OCgԾI0*$åDcyUpz8KDX(>=u i*>Wl"[f^ke<=BaATȡFn͒hq;%ѥ= iy)ò~@)=aI(;#%x wIk@!}wKJIڬE,FO:h3+`R}d?\;qbcbh+mwSF !k~!#k k ߘ3[Z΍jW[h눴(1 pq;3O@uj+{ȍїJpը) %Â::#X >:߮Fv⪺ +r<5~#g} syx!f DRӽuwO+ڔFqpUq}f6ވwҫ$nf&TpSy7Hr t \p @OJ+a1elr4f5F|Zr S{Ӿ~]xMnbFeͭI[ȬFQx&\4N=/b)RM&V(3΋}{S(6"@1pww'|Mʋ p%bV8FPj&d777[6O|oн:A[9TRqǮY+˙wOpѷP&ϭ}c6#r˕lWg,qXvi.\YAB& :ѓ+8@ap] gXѡcQU$:dg(ְH]E,uw5=3pmy+ʞfU>GMVH߬{f}(Y(UB>Lt:a8YCz?Α=}xF{M}pqC{IUqcC4{VY7u嶢8ޔ wq:/va]pl(/:6ŒyvNTS<'D/_BӤ߻"ʧyVTzA5Ia2b'IM̕,dz&7q1O7UpE`ӺvQ>^h&n:A}RDm1$ц7cB'>"IB rYSv$QJEC 1A9 !A_iڙ1CÖ6'y#R z)Zy9QFŹ"Q^Erf+DKT9 4K֯ӧņ˾L voi9DS#-^lˈ}8OXcnv^<8o63$C7;Bg./9|R~UqV O>簙Q)܁:9 9V'fct ݽxs t}җtou>l ة( +ᚻUw~oؔK .y:&&;΃\۫@I0zR~/^|V5o3M IUj'> +o}(w(W[.w)N%8Fl m_˾>q6]b;^Ewibg0s@]gh]Lhy/^^m̈́+~2W}_nu!檴]{i ? +tidfR2rST䤫C[73?P$.-Ar#;~FzTA2 }w|3@{$GaLPgZC 0& +xDP2BqFr-_#.j||47l41ojRV2BI.a+Z8JwIE 2- w: A8`ؔKt$5 }w|FmMF<`$|R~/ՈF7cjD$Zv6uZ9nq* cc/聼/|ӉGwcPK]!DuԽ1J!1ޱHe;{Ԑɾ>X8V)5d:|/f@I}GwΌilNRXˢҟRŇ'NL.;3A{=))CF?ډn< o*jCV׳}ghmC7GU˶É>ߵ:~m؋^^.;?2)tK;qx"ݺB Q0[P0/7$_E"4q>J͛M)]`;3j tPreqD;gݧ9_x郋(kډ]@ߛ5)5UƲ]Z>aF(fp-Lcm5./fH5b +s+غ)A* \EWA2-`ԝ":UgYDWtHi rer!<)YVC̸ru631s[:ry)Zy9q]eVާQ6/9{8/M>nWZ{/>T'Ӆh;whִ!kk7|R~c1uyM֔F^; +BF\埽u:EHy1Pw\<')4|%" XJk;dFJ< 8\nRghz9mAڳ/ѥt=c{@!Pp\1R\/ׂN_KQ$i+Gww/Q⪥HQ}_nc|j?bV)uq" ´:qVKt`73DdۍR(>Qjd4xX@8YQ@K #lCw>G{&\23or’$QU$_o6bhf460l"iiJ8'(.s;fD}sн +ײƕTo{3Z_9wM#ڻWљ<;#>3_k/Ht{WSvkr^QXȝ/Ƹww'pٓŵbQߋP'uh{Ggh.QZ#ngf̧^\_Q&]u,.eh5,sw|?g.%瑏O略zwjx<oܖA#ǬB^ \N;U8=T5@x3.&w]TSt8h3>8\ S4[IYmܰGR33&hj:z1ȵcA:Uȥ/ӴmǙ+0 h\D)r#n5;\d{[#`%Ә.4:pD w60!`Ӱ&J=I\5 P5cbp~3>xXd* '*#Muwg"?3tAngzRMm#f\\*?i簙 P_ 5BOܺ Cf-+%).*']:,Oc;UQȋ>lt(MDuw%ȫB&wwEI"vmt~;.-нCu1#Z@.i~0922qU0 p+IS\Ra^qWၺ*}+aVFewhBVŞߋZ-òx7C~fv_ޣ_ +[K) gFq7:Y{W!xȤ +3L}rӏpww'hZ$57 hW]e%NLC<ěM8Xtp ڕ m̙Jy0aH+Bhe{I.ș3O O $W.|$Ě0Z{/8vYa^=Irm8CO::ђN-g+ mr\p9s;KRtqxIonId{ (C]ro=2bbG;J4G&``'RrfP((Sk#0ץ4q.D ;]6.+`K +x +s J-/nIrV"d?q3.%ޘ;{QTYmN/ n$32o6s`Dqў2%ف6< B)g 7Pۡ# [9U#`[Oʿvj\`Ezw9O+W.Lw9rbJwjBtU}&O\/Vm15ontu!R%mwuLhpS+|F H+ )+ ?e{pqRh|RfYC@OJj] އ|vsWCG}eCL;RO#r{O eЃDi6-S:>E^7!"d)]|D>VxP ww/m(SO$j)CJ*VYߌÔUD%40|hU WuI9Z*!{3CXl%mm1s}>=٭ +֭x\od7ҎgX^x;n6z G]IQoΩZ +T>pѳ_9Ik^ET rvפX$::I)2ݍ簑IYlxi${Z;*z.ƞÀa()BKHwAØ*Ax#ɸlEnI[$ηԬ 5ؿ]MݝG6dۏ@l׍6|+]'=c0G멯v,t+)0v=1mjUewrL$J#NeQ ǪZN1ru+#O렩EGΝ8bVD\hDūҐP>*-̾%/)>)%?8Jx9̚7|!TB󶬈RO5|PlPB,1+ZJ(Wb$\nǸww̦(fq04$vBj rGShbmfyozdnAQ4s6VA?VY|拧pagܦ#Osww1Kg>#q^Ϊ;Q2LQsS3jնpѿP ޷&pwɱ[E-ف rw5eM9wi\k:|SeNe+fOj׿WjCON<{Cbl;3b@9!]<1{:lNƢ') y3~vɠYv-[br== >j]p7\ΉzQmR_Wfg1 ^t2=]M#M{e%> sk:ҺZo6Snvk쮢`&/o*o/0ҥ/SWvڠhnkJ/jIN]6qNϓ|ES6uOcpQlƗ+\NYMhYP[dߛQ;S>"YvW@!D2QIB{}33B[]7!Wr~.LsDm$eG1ZJ:3q. -;Ѳw܆wIk&fE;k -0Mo6A\tŭ X ~ ǚ|}­w;RsD8hSRτ*PAUr;OƊ|Re?^eFv gS ٔ4Ie$B3_zR~/ۇNkqT .%~ #m =L.CIQ3-TB&|:wV!lyvkr6J_{,w v6#@ۛmRmk챉͹~ѓ{Qǀُ͐Ip+@S;v_!q)fz)C_WSlُ簙QߩԁP9*IVn9q}#HU5JXiZUe<9{2T./Iry;Gpwwgtп%&\P O3dKb3xvj<8o6eoI +ڲM.]u=!-;kcPkxSZߟk9ݻ>-V՘),Hʤb/QKECOdtϏEQ!)LcB&HL$'q6ẜj΀ZbW2#,?u05󊠵[ >{zc;B:hwwg8cw3'ٗrrX/- +k9pXfhS,nTߨv۰w rHL&3=w"ᓎzxsK^D_[׏!g- +Jb,-pu93[Vthqgk 5k,yeܸӚOdFH'aEr6/>yN:Rh<\rxㅒ$^^}SM]I` \h.1G6xGN8tIzgFX^.(mA>!];хϾ>1ܕeRdBE1vL u2ijW>9?%^qT1ͤB/_tR˷O]./6q*H۸|@JAkRXi7z7Cm2r|<{Τ. ${{ptҴ >v%md/[pwXu:32o_.73-^6ӲI" 'ٗ2.- TǙx3}.%;PsVzS,> +6.7|KZ_?/"_I nq'2Qn +]ӁU8Zљ6H~]Zx0@]gwicíz$ C' CwW|+i#S)ޭ.tЮo$x=N&7.Y +-M }E̊vZ` m}FF߇Q}Y|\${Wv{. GIwҕ<9聼oXHJ ''M8$Oxb9@'SČ9Īd4f7F}[2m cID+)L+B3'np[J7cAN[y["Ƞ]1p䱴07 ;3|3+==܆VL#:39mhڭzFKo+r>࿩. $)814wp >-mӻEb2ӂ ǩRwւ|9-%QRA* \!In c)& wwYO$mʃ/&Ȑ5}$ r^VVSُCz{cF_.+//yvI=<|nnn~O?I6"U׽cnbn8T/g. a''ԪwWrJ 簙 ~Mge9VC =^`^[kpB'ny}m]@6gv_S.'J@G'\!hÎO% +,]^1|˜155M H\jcuy_=|F\h.5I;+df6;"“{It_Bڡr$#ì&$Y>{l>o pᓲ( Ocb8@fH C 1 Uy5 lsg R/Rϧ RjP3{sLgmT0|&?:NěM9ič5w1J3g@NKʜ>>(O/}Ͼ>YxphME!:cރODzx3~0s5 &ygv½C3fw{́=fo~X7OnE:N0tJ[> t?ͱ i;1ndf9A;UE}>o%.jХԐɞQ*X +I|R~/լo3cZ z֐--m/.A[fǫNTۅݴ#*E߃N#1}:m u'iZ9F|-z@ñ$Q6/Dž +?FϾ>!I8h VBHr(XғKh1lޛFKrHoN’* }G}M+(j~kWm~龠+VE~KBrP.~d_IK0*e_R9uemF[ڙbaŌ6ڿ/-to~(yeҋ -aܦȥ?=j;f;b$'#mHꆗf={lzX%>@OJ+6`F^㵼Ko_Uߢ!ږ;ZizmjX{InjA"9kRݻ=p`'-〗ُeΘFKM{(wOՒ{;J|JzZx$In#]\.ל_ۙQŒKK}43n̸=a k'ǬdSz-e?K?G?^0&9yw^i4LXSX.~K|)]Y:ϗ _4\bn 1~s/$WPDž]NmقJmm;ܲaj뛭)~7>Eq}jq\k0$j65@l_kܽMC*M;ӰpRpAΆ/Dx?`'7C0C0T<24a Ҍ5Qæ@ݨ˾{;˟7U'ܥ-Qd0ηgRAgDffz祲>]c/ ,Ʊ>f4L$܁rO賂d ڜ~. a`zFC'F?쟮A'|‡z')ūtߋiuBh3J.=-VLjEnrWZU35ځPuY%t(f)͜`ѯNѮkf,,ފCV/|+AЦOnxƛݻx=ƨ/ui}Ϟa怺bs3UZ:UV$ 6o5c\ M-5DϾ>dbT+hu~/5<5foŲ aU;?{ ayD xb̬$9HqKl;ϗH堉 tɞQ4\M*P~#z]Ni٣םazxj.RuĈ;e)qVijA ׽ +`h™Ɗn? gm0/cZk\y6v3-=f܉XnPC( Տ;XVAT'cD}wLgGMTFO:h3+TtI5ܽv7C~d95>{^60^t+_~FR.-XC=5c8y)XWhwwgL*J+ז7ަwc}ﹾJ*ݹ{4c4yJܬ{-[NO4qK˰.<5[ ZC;Lӛ^bB2~꡹!)Aj7nb={2w!d.!qa6T=ofo_IGm!bhrky+I:]Ycbm^D$])1\6t( Z[;է UW|R_g'0)+x dr[?,<)[+3iOǖiYV51w] 0.:O,VcGDQ_'j3$x ސ$ucVxs>QiXEA g\IXE[-,+,a#iYnxxWh=I)> >瘅'4\ 7HhZך1+YZ$yG9>hF^₽?XTH=9)\-C O$K59AXhppr/r|v@}eIϋ}qѳ'aq"|ʵO(R ͸۪,XvnO&p6rNN:[|RoPO%+; r))yv^4o6:۹-=]NH¸tQCQ^Qqr/ 4 (5d?\'ѓgڌ8hm5Z{;k 0MovϨi7ZpdҸriohb{%6XD˰+{,+r01W57˟#p\un'x}.-C{ UxZ8 Y#DZÖۼ" &C!L'ZtR@\դh{*>ξپ`Tզ:|`V=) ʇuD<\;' 7Cܝv}_`ۂ遾{cD[p gW݇o(^Bw]_"Чf4meCxpbR:krc^B +_hcgvkl*D-z"lzM|5 ]HiOTAB]*_Mia;3\ī{o Onjvjj`* Ʃ9pq]@]j͆]c|86s?#m&.m FpCV8FPjt"&Zh1!7b>!S$bnr|a=Gm֝e+DjH7Ovúe/>锺hS'^r{ni2 <[tj`%A(_de~Lї=~-3[W{7a1$0k 2 gKLfgM+ͧ~X r] SUGٴh;^{@Ά~Q֫c\|NcLoFaV|Upw| g.-s>)dȚsK0sz9lfxc綆iCEܞ7}V7s͜9`N + %e8w!b{A0:h{ k2u\L]#ZRC&~3׊I}._֟a x@@Ysr %ZM6q7ՐMlo;W{lvxP7p܎O7<̺ 7MA9lfXchW] MNJcx)Ry1cӼU Eӄ){׮M4y nDQ!I88P̉'H8 (׫VZw]{]UV%^N-^%q޵3>C̈́hPgn@F.&U'to3nłx7flt1ͤƹgÕ*0w7#v%b:;#)נO*y)+>ClþX}%JKRjʾof/pD/BhBCxs}F& %Z2:Zr)Mi]u^XxI|;lw||X2АqkYwEbjys]yn%3Ł[AW "<<;K~ՖS㒙/Dr !/j n v%/u%fLJ/gy'3:+K ώhF,a Ek%K`ЦK,iddq$gҕtJQŔFd>1l̗wToUt13-V`5且-)Y̊V‚9%raٺś;)+M)f*/+ݒpMOgR$F>C̈́hyZкɊfDXq/ij=[}~u*ݭr*se;3wʡ؜ucwG/[wPec&I}|(;L`6;yOj@J ɐ2lEeV,c9\Qŧout7+,JDMVp Sߤ*DgI@|c-nO'bЅ8 +C$c:Jh3sUW+Oi4# 1aI` +*{[7N/6G[hn\BЅ8 wd{9+rjfdSuA>q,v"}N'HVԶZ49QvץT譬l?_热 /~0q=e}~oiڶo<}/$T/YbOyucnO,Hn'٤mg~F>k= DN ڀ8(>%:_jE=M(8((y^RpԿU0mshΧ. 3пl[LC'o3]oN0ꡩx1U_J`(Ŭն^-kS_(<5*p]oJ eJ!F8"~1\ (_˲.!ҍK:ד倛BocNB[&Ͻ}~4cc$|jκ9xs9 |x`I#DҮ{p{wuAL2z]fE !Jd*eZLh @q~Atv7'xj#JM[Xd4/C,:z7_𾗃?ЮXq\}Pw\l'\bh3Ւҫ:w7K_I]}+/ mBJXx F/%{h9h[9CZd'sSs:P<9ŏ^7:KIg̏f2{` .gC@9 VV qnPujfM7X|`@57U9D\9v}¥MM?w^`۷w_~/~ݏ/?~e_~~7?_]~w?_'}_?>7|?77w^O/_pbzlOq+NwMowqד9@3SB#@򀳵7!j $*'V:Uf%;7QC`~ٛ~y,Ϗt芘%y[">%՝Uەn8@) 4m@lw|̉mi:onn.IeL'cgH JX2߼n.9 ?cE龺Ͻ?1w[GT˾_}60[3%G/age[,zgnGE-3GCd-6V] ށ`5iFHA Q8ax1 iB>'S*ktM ugTy%y=h1ӽ13Ȧp(Ղ'E-r@,7Dm+ET>Q@کR%Q2r*r}a-U6; >;P74-fˢC~XIL Tw\=}C?. {с;qѶ%d *`Ql]ޡ^KB]^K[IYL\BĂǤk=c& kn+' hZ1x >ռ u|{M|%#债?'rgxy.uVeGٮ=T2EhM8no uYV6gq4%Y9J%9|$%>_¤iXfe4=@oWSL S'!uSjlYq(]c'T[2/i> q9M2sug4O|6)}>;xa?z{Cll1E:dFFlfq-x/mĠ1) ?Xr|,@AuK|_r,zNF[ +ggzJ>S }*@'|. a` Dlw|Bm&YI[7k% +4HjLm@Ioѥ+H_A + +~DN2z oJ i+12 |m|Zp4'ƴH&21؃{SndCzm2˽ 񳺥qw|g5嘆w}'5@PPsc\ +&7 +)fO >TVڔ 1܉ѥMfAy%aCcx18RR?ݣZLmT>C[жpfX%R-^-*gFgL]ڢCoXCJF4ZHpJ_, z_SpYT[1g慠=ػI0SWj<91) eH[lw}-]n~ V->ƨلj wן~C|_؛9ٛs|Fw}:P%=c8 [t,up7[L E%1z_EK3mb$tv7>5Gh8e\Ģ0saB hȚFͨUXCNiLՓO~O <=9m;[-FlO.7K|_lĪ# 렓My_j>s 6d0Uđ|ʥX*95\L&^hCs"Wh>.)i,K/uVj +7jN,faE/|=PM <w~L[wW,-zyiƔe61Sv' w\?WA]Cr/4J(q~jV jG!) ZLw|łVx'%0I\B%YlJ`& Èj+rJYMh}Ht)Y12bп2bssBO_8EfBPW0nj+{#:ަӾ~. 3пdψ~K-R!LB0-㫇gStnX,z^SovG^yw< +XjJ]#rRC&9PKl +f [.Ƴ|pm@X[^ AVa hʌ̜UF=PP`㑒m􂫚 +Wo |jj/?u?bU 5Kt"[Mlג*pnRؗrH;ۤ@8z4aom7`> 4/GB[<=S.݃&'`qXRcGhSރ^[ʱ,ƏW7J[4Yy]ж897bcĖc+iKyb{ q1u[R?)JfSD5~ VykO4{.XtQt/6^<KtN|vyc?w,CrYSJ)&u$gx)B]yAI[ŲI[FRK1ZЖ싡MVZ +m)Vw)lJzЄ@bb$:)QFO渁*ꥋY~}߁, 9b +P ma*@r#M1Xb*HFT3n-h}^o*0Ռͼ$&f)5%GU%GVHCGgK +|DYh'A(9> 1v7gh[,%Wn˂af1_ mf`NFNTM~B\J) 3apSKWueA*v xh^ mN] G $%ĉ5ER%NTqi'+WԻc5}^ux.=wr3SQP15QJ%.m5\œV"Q)_$)Jh8eD̰QR.@8/kJK6XtMtyQ4xO172px''|&elq\ym!198zw멜q\P)hSg' HQV%\a"W)n$kj+/o|X =5u%QL!w>1Զ;@U~ p|~JH[,>C͌l +.7܀6(j\%zȫ UUC͌l +e hk̫6Ռμ$&N3ۏ}ZzTl&-|t +Jd*.NJnϨa&̔iF>8/}_nK>̀ zIY7= ճ*:x/ޚ발4":c_/!&Wt/_ mjKtv7'>6B{pMآAy HXfp$^ mƻBrG),OmݨbI4gN EmݺXtWhŔѿ -*".NB+iN{cH3cZFzs,`?v/:b3HxՖ zOUTls,񩮓 Hḱ=O|? Ͻ*tAI/ƤzrêwZ%ʋM,.p 'j# {MwO[ (HjUL8Sewo@2r OA+&hck}gX߅?ŨFX0wuT0 r +$:Q}rpeҾd +`C߿ +J-d +Z4gKm }$7wNJn6Z3:c3[v,bJ*@bnOnr%gh+8OT\"By^ +vo)8r򛩘`g)qV*/JS]i"`~i<ꥨĠt+qٟIҊδɦOv,j[U6* V.lmRD/*>u=Fjf3< yh:wJ{5&qj'Ph3MSj{3,#84lJoQ)+d`YN'iY&Cw)7sm=$'lG< l؃nFyF15TLT[dzECFWZ%Iŋ o\ 8Rء~ㆭ:e_"umK5j.nG61^8lݦ:|%zGdJY}1)C_sNmx^XU|Y# 3O(!^qLغPA6InxPxɪ%I".#aQZ & 9z gMڑ/̹-!oN.5-ލy?uZ|ӫ8nEKx@9:I=E6x_x_EGfNNR$9wyd$}êhSC/$Xi1zzx糾Щb MϽY*ϣPbݢ>qLpSZ.;_zw1(3&/7Hq+)f+׀qƝ hm6GVNqΑ6ƤqsL2֔q76JOo;N@-C `3܂&&q{qUzF=470/6MYjFRgU*9"t7#3K@cFl0[/rQ3X|5tC:hq"ҩ2sA_ڤ^Mf8բVl opo \`4ϗ˜1|TR}\ tR|O]mE_{4cjR!v;}S[._VI(.rף .K>@sNӳE H@L +H')VKОKQI%.F1d#^i%V\nmh7甗}{ 𱋕&eK4XyZE 3~;x~ VmB_ރ% zl?u|M*$Qub uIBRLT./н(߻'-i+؃eܽƝ1?Esz9y4N! +ik;h-RZ;B<4v]>v`/[z=ճ +$lm"kU[b3@3to|4+j6HY=EM-Ftzj 3tˢ렌nZG7=k.% +>zI# +J+SJ{hY)x+z7aC?nb=pu'˧(s~5<'S_PG7c};ORW˝]@' 8~Ƅ[5j [<ª{gZ;0=FP'c%B.;*j)Y$ӨJJ[˼%>/@m>?j /IuY"6,"n aPbe^AQQ$$2znQr] fLU>UWWj:C~|.)H;C;EU@hfekϜ.% /`+7iz H-R͢ǬВ꿤Z{f鐨hyz# 4P>G[lw|B+D +@?u:8 L|QOK4f}9n<+b&e:m]mt}Ѣ:u[P +4;~;NbJu7_B]M_]*A_$T!j#,o܁'T M:4]&I]oDlX?˂\t'%w7f4r.eB7KSͬ @|lr| DxoICs^ Z9;';;9|#7(u(U#zgd)~yRv7g 8,q 8$'XYy۝u$ߗ,kOWt#$&&Ԃʙzj_R͸8 _JNgcw 1xrK.qdF1v7{g'r^ mYct]ǜ%:묜u][:瀊RI#0RPydMںAǂ,Z/rNmEb6g8 *=e.* fuOm /zZ§!! |OA>g h3; _x+h3ۡE >2aO,Knͬ5e3v,;:3Ҷ8@r]SlWꖮmXwjnǵ uJ,6$^9Yxuz\2rBy GRn']hX;XWjꯠ>OM=ZѫĐ,`&?N+33s- x- +L3 ]ˡ ^L 1K\Nt_[mFWK; ċMTpK +%`?*nwVp%]  :D/ !Y0or(:pZ_sh,KֺJpRaxT Z\(w74j~+(,*}2e4=P#jVYp> =4}<,@iR)sٌgI5s~S}M4[_;M^zp}gMa>\Mh]H -5YؤCV͸ "IX]ks%bv%^<8\-ک:`cێxex,ɂDCX$wv1 "h?Ѐ֗}`唀pʣ_,)/ .o4N]@g8)!kh8U塪HL|_B奠 >DYpw|΁EǏDĢ35M 7X|qV܅!+E9NU۴O`ʬtt"'XY cvSL|S6}nP2#Ϛ hpckHJ1avO -feVwϨj޽wϸ#dܤ{8ޛ@Z`cX ]7EZ -~z5 hcEL7|jL{ !RO5i[~svQSA+Sy59hebO./нKܼk8|} +h܀>XꯀLG<<9ҝM+'.,:[߅@ي)]+$ Ub_BU@͙_]co6cn}޵?R'6%u}^v]-; ARa5\3&hDK NIK|J䒴dH~~|= \&6/ Aהs?gf0r/_8Z' dm~lR9L-*69'R{/e +Caur>RXpbS-Cʋ3'I5~ |zS4f +k[Ϩh0CńאݻYHa^yx))sj04a\UkGdq *Sp3lH:rm.@M )JbO]Q^o:!~ u՟dV)y.g>ZӨrSiߪ`[9(En#``wV3KD/3t8zh,8/6j:PbլaWگ~! | g$3.N'hk r#eI[Kuǩt%t}-P45=tjU>!9*8ߪP*zh+&)O#nܵpwՌll35/ڦlz &i>_Z2y^F.bݸM"zԪ#Hiv7 -=(m&5[z <_}>՜/ +R {kԺ~(mIf]Hf\v'l \]ssPK1bgw2bzϣ_u`ѿT̕3!fnȨg{zَgqRu/R6/^ܑPe)ɍ4U K]䀉p帳pFϟ$QZlm7)ucdOpWtUbDэ[Yy!\}7|P&Q,npI-ԿUQn/ +v}1ۊܥF-򶣺>T] \qȯE\ׯXbF=470/6W֍+v0fC 3!`gtXxL#:R'Ȗ +`#՟IULj(J(,EtEAʹ>Jm\ +47upk؟)YcT!-P4·⧹pA}Us(\_D}$}S3u4twEp_њ~}zirl遰|, 2k{/Vmqֿkf=ZZR{s1ut)B_WW@t;G?onHU&)΍)W4OH:%M'!4 F|U DHpZ >vЀqM>i!!|`=ߗGG2}^`5t; ) H5cAǕMVrҶ`,Gyyh?kPOjdj8m|S6ٕLs?َrԋsV5'؅1/|yթZ!UP̀=ip1[z:W2^oEGݤPL0ࠤ/ԿQڐA6>Q_\6 `WB v_l qM^?X6GWfEwJ|K>fWn>gql\6)+ʄKP`k479]"3#y&K1>m,e +m;Aސ3*ndV-huŭ$/(oOSXh%XVwVC7ҟbHR$;f%C~n6>E \2\}8K3]3<[H|gwήM4jjA;< +rTŴY9 +` D`Jn6)S ;֜Sƙu4 ֣PIX{1)m}qtx[K?ٳ8[Pe'XˮPnpRK_LEEkaY}vpH7kiɯS4VKe,eG*ƞVIA%iA uQvNn3云y7# +P6ԕctȭ_=8j1ԕm{ kI@vuK 'Ǜ#N`Kx)۽5jZ m>")g]TJUҶɍ"n5;u4d拉B7%cn.b$ G\ܬTu4U}٫x n0M>_0jQW 9 -?4RFM'&c&%.;YJtr)ZM.dx65@L7X[2Re9ݛWZ꬚?x̍tՂ*E-i8"C_";|g63rʖ|q[đSWH5EݪSugޔTx)$lET$4.Lr+N|ha|Cm\}(Hy1S`SJ+?>P[" ?逶=AoZ_9Ľ͜8+eg=]e"l?YYԱoGPA%PaWEMe/~c5lN`nKUomƼ%+f/KڌJw=r++=/qZmw^‚O'o/%lIl@.~^+5DVBRVKM1] pwL`q^}yH(=JBH@I57C1_/q$ /䩎pn'K|K6.,Mt7v( ڢ#(m0'_]g\jEהdY 6u+s\nE;Q. .lۙA5 =JHjrw<ƶ@[g-:Ӯt:PE h{\yzґ p,_4;t9[%XZ_"UD4MAej0(pҋ]=W.xg.'jY7ͬgsjOunuje|&Lb5_y6Ì@3%/%x3¢j㫇f"mbC86U2P`@݂ʀM3j\ȼ=ge|l:^'hS0XlұYUF7\RV3}ܩଁJ$߾ݒR5K[]_(է, +q:KAlw|lo. +z:( LZ: v؛֭yP>Zqa2JMn˭9LmfٯK@UiRE<~JqORm/K_SݸzJsDUX7d?^nbw#8I[grBlw|?XOLK|j|L??DQpuŽ_B渇 mu)Qx})"7/UCtj>⵿۠n ss>X%jb}p)8Nq℁JN`%]yu?R~X~l]N9tT tRT!y#5 Mn] hDVm^d!5a4g$By;к]u(tn?:H׃Pn`Qn~eqO+1\6yL)>76~sѐ 7W*@(1؜D<_%^;?IFRr- Pܥh@%7'K|@Ma/Q.LeWn_ m3xӌ~Ԕ K;ʦDf9 KS/ yԍZӇf՞bύE~.5NU6Wōl.z+a'0p L:ϩ'|o馻.^K]y,= nO-V8H0|0#u+{WŠy^~=]y8#4͆h+ޠ<\aSF~ru9 NTZ2F P`O?k況F9r|T*2q⬑U#&8IT 2O5RGepBͦb Ok$Y 9N 1v7'89 QE[?TTO9z*^@/6zTK2MSp_C6{ޡ:3z%2U~O>ҫz2[HYSieIJqY_BU|1.=ȇboQrN{6|4v:j?^wq8r*)Y3֥TlRmTdS~qyOЬ[] p}\PDVhqG_]O]ڗcTّK;AhrٳN!c&8g8r |Y 9S6M.4kX\иT%"`x\gM_&!x^_[Dc$2܈돦hܐf3c_LqiOn X͞bj76jApdCj-4Ir]46Q/Zn-RkEhSg]٧O*f 6?@bғ_]͟_| 5~gyFee8yNL|oTVi-w;7tc$#FW,, [gpVny4 ֨&F XjYܿˎdžڙKng&"& m{SqFB%K`x4qqz1tWotX`bA78y+ia\IT,6/n 8W#>m뀺?X6GGɧy:/ހ>wJth3: >L!7]׏Q}^XFT3nu ıҮ\DAzf<Yu퓉:V1*hR (pmʻ -܂K&JDz)Gp1OXq>nڧV`䀻w116Gwlr3 2ngEg`ǾF4` zűԡ`|=X6 + - jW_*ă6ڎĸAuQULOlcQ1Rʦppg}Nn} i+hSE=LSWeKGe92Ӣі}_5ٳNaެ\1mc]Wbx;v1Ϫ 7RXN-8MR+4D#*?PhfL!7X|q櫉?sm>+PԲGH 8$} +Fv>!x߃r#ڪ q,e q@|%R/Ѣ +>nOYt\WM%-ВAeI]oTzrqX+_?=YTPLz|Yy[ 0 YRѢUjE);aB6X=9YwjR);ԟ1{~?UϠhZůK$.I㶿cTIkS =tv7Ǯ-LZ& \Bi6IB)YviC +9jݪ|Z=jj}N0:5~D{J*$9 !$5D+L6祠̟hLQ"GCHV 8R, 1wXW+8$@r>0뾣n̍|fS9.Ou8&I}'a椱Pf{ږj4pn͞hP;4.jZ"&ePԇh"B+2N"&x~c&xJݡ^V2|l%EIFhllI[oJ Si%I`r_vn8 rpxvOLw8Mu"">k?RaFs2ќ PhFǒK '$YݣqPLvIvٻ%zwWh\*3Ӏ=&e! CFtNv̝'eϜǼ1OYsa)ϏܽEz0ޘɭǾm7W3%٫TBlw|ƥȀKdWqОNGr{_- )H }CgM +jh`][j懇t7gh+$-S~J~vxg +Mp 53)77 cI+Qҧ$ 9!7rՍc"m_"mHC}3䓛)7ݕSTIU:>@ɣ7 +#,Ju?5Oi&E9ĞEnOxYp9ko%V>[ˍ)¦Yš6VqvVx\ njxTNqؚc._BZoI}4_LWf-9)cfe?}RLE0vjFi)]nhSb@lw\/:AD^f{ +IHHX淭#>q>ء.Dovu^_+5`nىh')Ydo 7o0Z(x!YHϔZJe%G6zՋE/lr}nӎ" b?ޱ@RUN`$%C)~"FA]ffi>^]9ɥ>Y89MAezwvtÔx>{RN_t7+8o3W])qE}ːߗ< +1MaHxqrmALr{+$zh*n`(^ mnmßW%nbs(D>:@Yi%k5#o VUb1XҮ̚a|=$7mк쯵(0 NYnrZWHٟC9ShL%kJU A++ +&qޏx_mY. ڮ.s{8p% VBGyx `HxĦFב/E, #^ 7?-h}d}e +sq(D棓`C'V}^X#MU֤6?<]!SO8v@.l1_~ L̋Rb 𡻩[6>cKB]-ZM[5.@̋M"4YaזY&Æk+OhM^^?__w:9Gum{=ݶE ^/!eD}1CZ6c}{cHL b]5 m{H6x~ ?j;2(NYn;ـQs39bvkY74b ̶8:Iq:9l' ,Z^ݛY +OlKh_r=m5GJuaռESe6af$tv7HE[?G5$j)RaKT\S]wa`R^FʻMsd]29D|g"-8͖[LqjpK@+|@qlf yFOIM{EOsT`BFnqߔVG͟?b"vV|Tr'*O6bsaE겸<֬<͍ЊŞ~٦@-ӧ~Fh+4bluuj(njMۨNBa٪H8JMg%v7'''♹>}V 5J/1#ErRh,bsKL}|%e͉%fUש}W&'|օS/źYssgOc)b} +5rhc!s =ߕ )=U1ue6!CK^Y*6RҳW{(Ɨell,,ѹw'ޝ]ZE'9wsguC]Rq8 +2]80LE%{')BVԼڄ aȍdվ{B^|)8/Q@Pgdw0u@Xba}:Κ@I0@3o}OwahB1sv7'l\Jw'm)1ꓼQGfj:c@~~$3qp0uK⧼> ̵R|/M*KWO C~hŐT~Z#҃%4*5=C[xpoYOjE.2 Ű\q>i +܌\t^p0aHC1QF1R.tKX7DΣ 7fgn8a4kzv xY=A~Ln +TnG^?2 j~j+~j i`OC=gmd`j+᪱?&qKѺԇaD5k&B;ZCgD'҅8 }Ntп^l`_+p[5!!x/}Q%3`5y+)[>׍evN{qe}3\[%fT,vq=XlBI +LYx`#J]*?5h뗬3`נmz*^@/6g^$$T끕ᮡ_p<7 /tWmnhp[?( R P_}bN}7HM/K_-LKbsry5թ9#z'lK|;hsr@o 5cSJ[SYaJ4uKz28QO'Y@7 -x=Ic\Hsqơp|DwMkiQL 9.܋b8v-;h8[4j_&ݒ l{v\%/|6lw|6d%h܈8P!xOc^EceJ0rx_ mFG5 Iwe7>=a6r_b6[ JC#!fB2{<|c}7l ?LINQ5t]f}F^ FK=RqȰOuB]GM0rj}ӽU)nPH\V./.Xŵ7KE#l03zwD3`,8w4ŢU-%kq$ee6~g9/7H\۲giG?,Mɮ]NćrF]%6ӰtЦ . %}񵓊.Ǽmײaɋl@ZTȦ X4G?SZ.v1xf3S=^i;i!i۬M/XF:.g 8/![I%fl8 o^30Mq1o2`>V9,S(v3`?/@5‘xeqi,7ʂFN̐U"UON.JG4D`3 X=yȂ8m5JI:,kNDfd=fm,jfSuUXU f"E|vP+{ys,;Lc7ݨЏ7( IxCycZnl1-0}_C ;嶖⚸{(% ::LAlw|e') q `FEbhi܄Kޘϊ<"'su5=``rU:]yȳ(Oqk,4nN>^4%9$;-n3g2C\AyU>qfy|oJFEwgzmS8˺]en=ptNnӫ[{=".5k!v7gK8dΰ.ע~t? [nF)#8y1MQ+r8ABzi6T?f׉sGv0|qK`x+J +в{] %R5whSc +m( +# NFnxyFͦzrʣ_,;Z9īâ^nZf.ףM|p9Cb^/] 9㝕)I[wbq]1}1l 5 +p!r76vFQ8Hu._EGvH$(d +1v7 PcZv9~qqސ3 Ľwt|Uu-L)χ60 AĀʀțF YAOuDWq̍Qb/ȕˣVRz^T)n?6Bs-I[7}T4K8x>Ff( 9Q/ܴx^6=p^'kSr* f,_.`_*LE/$Ne%ux<7cdvPHMb4Ũ0 HE{Zmlw\ !"b$br1t7'x ^D?K|?^F_z`*)⌠Mi}]Jݪhjjin(n} tph 9ǻ,H^ $;DS>x|%&5~3`ϳK'PA,A?>9^?)TSXKY9\3^jP DbmWk]T`QrT *`zhx;~.=hokefj#J^Qafn yr&lRXw}=pU2q#ux +G`3g[͂fCP:Fht`o'hl+Mb t(aߜ9=DGw>B"`38])#zh*n`(^ mp)­97#87ha`>gyRn曧/ 8pxT3QkWCw~fr/ |_1 & >;P0tѢBòbFfvn/:p< K6)?0܁[i|밓03iQ޿:KzVTCTdImZ +=K]m׽J +aD5˫6#ѥZ >%:_Uٱ3>~{I[J=5;0ߓ(`n#6#0пsC'W(6of"/mJy~>vCsyj6vfrCbFfsYsݫ7dlHW9ڥ{l9)n9 N +o~I7ۼd /]=&0 /6 <D@jVYj讜^E=x})P8w}v>hy7@9gʈ3v WKYq"i15A8e| Ľi^ Z_6hV6}W9bI̜pvSRG֨)#8 lu7~ihSE/R['^ULK`idv;&td?,ZٳwPx]_}S⧺ߺlZ,Kgd0LrE{GWL/\lfnl4Yd*܋7)g9RhZ-t7ybi6?f6 3KV4^*-e{> ICi!&XAmKQ=/IQyIW;3* +6_>Ç ~}/X|-aoإͯQZ<$nR⿅//?/|O~|}=?O/__?7/?꯿8;׿F?O+t7_G7?w{S?grCFx~v $AtumN%r`Bܜoh1 +m1k!} +M;MҐۀ=X֚_Huѽ9ƻvv $YXlgo9^ +`$#4T6٢_6.eRA8Ղɾڃ| sbGj~-0ʅKM!.+\._޴yVO] t&sz珠7^L\̬~ VmBmݛDѠ>t8 4u!Wo9pY'/y8?.$π=؜kEn8 +ʈ1jH|}I ."_Y +/Ւ^ ]sq'|.O{.ۧf^A?m`h~Wc9L^Dz)9%gy# ڌXmB'D0a3-ز)-hXrwp)AW`Kʌ0124rH99Go~Y6OeÉ**YZrl\VUAdYLqnl ?y)u޿] I>4S{(>CZp4eq֍5{^+_Lq} K^@#w3PQT[>u?؁#5>^wwY64t'b}nŗ15"nxmpx@,hjrY{RLlԼ7vDM(yBM~ը= xF>V6YCH< KiA_gG}^\蚒g-hb3<8qTnS\ק0.Gp^#v7g 8P.t) VV^f1z"958)A93#ї]NIx,gNV|V\q\.%ngϫ)G_=s25`Y!e#$&oq}V3o V,ZK9ex-N9f2ZXk|!6c@߼нwU}:B`3j㍬Ts=>J0bӣ.Nу~~0f|ȧb)LE ZXܤem6GMt ,O֨HX F||pOy$|c^B)ucN D[o513>ȵV!/&}> qȦ!9b}BðykeSIOc$KhlwG74Q΢c4ڍEmq!|Vȕg&iiMKpKȃ/f#n>'8sYdE6.12)TjJ~Iݒ6>[TWnHK5b9Lz[u?C͡Z]NK +N4Kc +ƪz31WGN،DȺCj+w L;2ob͌俎$lg!|R>"^w>&(4h}_p8OƩRɓp<4q2 l$WwOWA= qw<(<@#%Eux~;Cp6ޗ,T~KR!WN`;$+Bk'N +wzД]Bq@tv7gx)FhK[?RGDa5i%B;1hZ6x +lB_:>Ѻю~*wY-U^"z,_ͦ ju5_4ģK].(ijUbK4;;0~3nPDz/=00|DIj +?84;}BSJ̘13m}bW@R^oXGO`>j9qTջ7_2/wK%hsj+A}í!Udw&H(n-$72_ր%i-%rK9~KݞZpS /9F.&E֎b?3n?aaF91/*zKpU%}7>q Ҁ^el +UDx_ +_p_ _=O)68ddPӤְkyy^$V@~ ?'NF`k=sE+GGJF"\WBCEXY5,EH&C36g\/<^Jv}{yW_b -'!S +9[qXj] ؼRǹ5hlyDIb;0)pZzG.cL,]>lכ2 I]9NiI!aA]X[L) kBJ_(kSLX)(5ٞ @vCbnS6=ThS\9KywoO-7]K| +I.E:GC?Hkhzהuf݃?oN:)+<r + Bb&ΠrgӚѲú3767V 4xZ>!䎾>}{%9?~:Cf +61 hB_m¦oK\ub BzgBV_'?){;S#.[5]D`;a']лl۳І6]6 Mp ]I ÉjW&ɵm9+h*ZCF#' b` b%!p|U exgD&H]/F}fj5t+l-(8^eGΠ6NFG8Q'adsLV/."~nd{_ VSO=ET-pm] z Gmϟ-M[Ca|}T_B/%֝WL!,h#7GA#>dTCVQzC|2M6aڒMY)h#$C,Db/]/ ɄIk#U0r.x>m> 2}TH +MCl<a6=|6ܞ8^oI%yn +>6&1ã8DIџLe&3QnSiM\5wiImH' U$>#''_pmOR}X֟{UMn + H ~xwZpGono2sxyYvҷӧ"Ȼ/-BE܁gP6]A[(1- jS%+khmXnX-!A7@^nj"n[oůe<+.Xx2V'3 ]{>`zYpz]/q; F ]E8$՗k54mn+eM"MP_Z;]NxG {{mXhWJq2{:n墵c (Bc]݆$<-wBY|/_yxCy܁'}>Hu-z-wYtȒ;p=WՈI=TmYvb%l' ]7pyJ~se,N?tϿ?xYnܸd2\Yt~{1A%Wx-Ev H :>5iޣo}'˪QS3ГTʘhÌ}ȢLCX>e:zx_R:̨{jwxRI>hC Ty5YKH|Ml90{j(Y M4q}ơL6)FT"X̅lF? me"%4z([֢qsޟydږZH=yS=k+4OqwP&mNzQ+f{h^ʹߦI:|m>DGm=S.}r8To?my.|@W6eI׫Ug6ud[Vh].L-PzZ]~`n󪿂ZćBGSv}s> P[K5j^'4§qR ^Ak|QǬa#Oȹi'L(Q׬[Dlޕ`z +9d"&|S%A[;г6 ʉqS%rKm,7ɯFܠy ,̈́RγE: 1|`if!1HTR7;U+gl2 3g҃~|pmU<LFXnt4E.>R j"Z)aLǕlNLlAr_mdw*Wћ;;)@Ƭ9GhڲCZ64-R>1%RfKƒ/ %5!;` ۓ'w3Vn=#TVݽHoF 8#zaW\;aw7w5HnZ"fGvLHi BFx5nr9х҇D:W'U5#Y|8c;8Bk<'{G4&κ"z~5*~ë^oŮ$qsDU6Mn|P%7]P~@76w۰Pí}].l&g j{t*U# A4{rU[]?pOzcK_3"Ꟍ6 oGrfS%=YP<GetHA rړU xyZh/O(+pO/Ţ/->*EݫyU"5_o.ռ|ҋ^ss 0#]zDuk;ͣ'Ƒ*cB$=)mw.UI6 7opʦN ZKNG*V\4iBh=-==!6,8pi;Y7GU0aac~iU~ 4&DŽ3xxL(mM.. `>Pk_0_ HőS8pQYa3zJ$+J|6JdQ{[-d3m*a"㱸;cх8i':3M;ݎq_I]CkǢ>qIs~ Oݛ DaY^h;3P%9#=8P縞|^N4U-ܜ|2^j;t'(6b/"MmC2z^y](/MěBS,XQr'^m6u979;rvKUn;pk7Wsyb@ YV: jww!Aq~"mBHZP 1jG3ؑwRr^HtU]c6%U-yl=fEsɘ⍥S6tZw] Nrny_gը^Rc|Ϥ> Fp}>n +3>V<ٔ4 l7 6AUm7gbR 7}g${깸xŘbX"b,&0*PXfTzX|jqCCU䕑i6깣LsYXɋmfqES3 SuBzpJ +V@3Aq݋h=9n\_%_Uٌ A+Q{e|ߛrxŝi=":牺'}s>@4pz=bכ (cf6=]sCnmڬY~Sn)~$8tw*huY;x;R~P#zZ(W'y裔[9?i@%8nLm+1|6\;&3A[St]ә?D!(q~LiPFhc)sg}=)vbW @ʘeF+rR-␱e:,ƒ6ڍfꮸȤ\޽o +@~D9y:n]qv$QyK-O]3$od+mڠ;v3ˬ9l&{M#CzR\;/4=8,vI.{ꏲ_GJqhfAwZaYzhedbOiLfFJIB84ֲ$BX\S9/0OF:?WhlYi[г 7q3+Ѧn\+յL5w^Tr5+}[iÓDIU曑u~u46dG,,"ѶE_cb'Z~C}s_SL0 I oI۪hԼ*ڿ͞6ڜɔy/& qXobnGz2iU.7a@6zN{Ko&"f~gHbH_abGM.m:unwrcwUPWȜ,v鍬FpWy¤tI~SHȂoNڊ5_~wӮ_:57wb OR}mhݓ'hGO#VE}1tz9d01p %m⮟$U$/̋e;mGs"P>D}sj +89JVye400 +Ut1r5#@J" a6j?9;$|RƌD!^蛿ަx9IB[W WYU#Z|B@ƮD.eW8h0xhCwt]OR uK8WAoҐI+I0' ɦCXTmSUFD9跨T|Ey10J7aˊ1O >e@1;|1^y~##%TMZŘpw\ + 6f2n&8U +fD wV5;MsYb3OBߙ0pW>;dj}T +Gye̕gu^$ݰ  $~1Dϗ'w "avJ f;2'3dBrڬ;УI$vnΥvor3(s T|҈.m+&p}!_&0e撒`8;)+|iFrs>B5L_QOySĥxBI"?bl^W!rh$& + ȍ^կ,DDp <̭.)g[_AL[(- v%4؄kree9nW"~i@bR`h#v +]x>Wx h x.8TxiN+ǥ}emh8C齆syp$xJV:6|؏US|W|N޽Qm /:S { /B~>r/?^~b=[b7-%TOҮk8\l;"hK1u}s> P^UښZ:hH Z扦4qNrdouk":JuxS'.v5w#ۄ.%md2GtsWϘ .UMV:C̶*#ALwgㆹ?Ѓv.+35#HSw7wHn;J\_Ydi$ '>M!DL;gۗA3E9yxf{;Ygq(WG)q㿝YSDwz S7w#] +1XIw};mH#ޱ;1'2CB#,+ԢKc:5>j{=H7C~Ȝ?L]л a&IgT01emԢ:!\RIMt2m96 d|ꔸ^F<-RLɁhCs$y}^Q@pmnQt*Ol&#'6Q7wS[Pra +e;$՗ 67d҂.J$C E2nl&,Hc}$HGۧDWI,>a'aS#&\shȸIЊa%sڡziۈ_W-QK,3oW\ps>D܄S6'8=I%~2H[:5+ykhmXcQ 7 !kI+oQOO>In1uJ6ee&, Casx{inN^el&c%"ڇ,u"&%'S>B}s>:}K=p92 &Dܥ[výƏy+䁭,?=Vbj!GF0CzI/{vіiZQ3 L,ZCǢ~L>&jh_O W]r̩. 3 ]5TGB.ف֑7շVU׺9jbL)HCk޵ubj*Zڄ7w؃O$dV"& mDwu\z?qgwk:1ZxK6.mڬYT|&h_LsA=NVP䶩O[炃ݔ*Ҧ +8MT)f)6o_Iwu˅0WqwYMEAr&dvwt rA?8Zhbnj;UnM Mթ;#ǧ 5 ~p'K[C6mn|@fHlrgf7io!/Z-nMz'qT2B~G°)GOUn+Ŏj0O6_U͑b,(ⵠ%MQNE&9_}s>"8'w}x7&zINtIUܥ> 3eyc/z✸ Ϸߨ 0.7xEyK~!h^ŕv7;˗1tJ^܏ݛڶ/h@E1AEk6ַ( "B}+"nAU 2WDhM"^)/F;w_OįW%CiDo"R:hkN?^NP#/Hc!ͨ1< +d9\2S>4GeD*MDOp#κ)up%RB:YBoX/fB_M7>9F 5ּifפ,qw/*UU\#j$܁I% j޷6;NL*8zREA@4|z W\軫JϚx}"o"5tͮJT~4+N_1<]p"EOR04/;L_?G͈lp+WڲF综'K5]Y-!(4m< +O,|‰ϻ WwW\r'wea}r09 (rnzr|[ +@j"C/2kڬt5֡8](" cʤv7V2iv1iI\)r6=|6k=kyd5=IΔK6uµW +`>BІeўd/Ӌ*9My}MQ{.6`׉5{qboGy}SFn POOR}}?irF_9wJM'9nh'뵻:tva{<,&"tuc׷[].LnC+ҘbŻO*q~=O_P>@{27ϤU9- ֍ m >Y<(dJ_+3XՂ_WZT4{}^"*17w};%^!~vUÂrbxq"..3:|SF[~dTPϦa:I0D0${܁hϠ}dt!NlCOR}Ɍ5fI{sԌƸOh+ڲN6>+?Yc;/u2ڕVD=\8r!f$Mt+] KA-_ظ ft~GFOp I/L\"55#1+ٹ+hm✨&H¢sۼ.d[WhV5(CLJX`m`_"/^mӇ?9qjD܁9-ͼɽC)!,Ǡd.c>$ل5 65O4ȭ3O*Y#|n4tؠAqfĈ㠣&İ'Y݅Djx]|; Dϗpjݜc:ԎܔMYccι/5q_}5v` tZʨ'mʬ;𾹙G$V5%k 8~sKOR}m{Mm΍軫pE 8xd,`U{-%F6.]3@8ºJ\Hvega8QjTV9ɩňD+A%q{Ql5=jU K^G7[W7+ě_z3ED5k>ⳋCނqZ|v}],`yĺNj& R吋$p'TΪrirF]9K e)2c&]p;F]xw64\B6%e$5*FI+TکIx3lPVyɂ3WH:5y.HC>f8<nȩPU q?zu3;'zwj#;iL@T0<4t.wuP zvaNq&a+qA}'m {6=oͣgm ~$Ǽ祝/ iZ])t˭j62b +  L^,J#ʶɡ|6h\h[m/>IeЀ5^!%Wpќ jhMH4h(Di?ndAܷ_;AŚ#.B yGSBނoGa*q-q,ˏ'\x塆$k?p>+?YC+}z#UC.5wb Ol6!݋ 9ѓJ*i9zꋃєe7$D'olu>Ku 8칕Tnnw ;Ñ XClBeU[ W7P@bq4ers35X4^mYftXA݅]+]\uI⍻e۲O$Hшmgc%ݗV]QܙNZ7lHSDo&E齧HbK7V\* zHNF,pE;-!|gnwzєȘd Éj\\].&'YwuY(P^oH i V֦t~Zwj"SfSf@+ YɄkN <B}wㆱwgaI0عBSH>E7< + +TD̓B;^ڄ&us_$) J)RF#j^ ~,5DZ7ܼPF&G\rcvA%.bQzv]xl\rC;ԷhN7rdrL<8 OF1z,Ӡ'8/o\KfDk eGl9\Rwz Gt}s> 0sEy8ԁDԢW`I"M-UEt+?;ֿ7;zྈ nTHTaw_)jBJ#6m#Z1ˏdDKG܁ ;8q3aQ|b0 D/fÓT_3-t1zHOֽۅPTc~KԊB\|Ϻ=+sAMRa?"*^uT|jq(҃W 2OO7 #8jfdauU^AWa;6=|6k=k''(TXf/W +`~hCsp_jfs^3!y|rަきDCmŲ\iUY[4+FO'@jw%cD܁oR: +7fͦ'ыqJ9w4E?֦>wmzK̪}`swj\ I% m&|WXK:5B'g2SBfzx!Ze7ji1ؒ}\bGA %[ޡzG=`GE'?HQu_PݨtHRD zK6͵ZMwW:a6dHEMRS[kpfaBUb%eƶ "Qʪ%7XAsXźWx$)o[1m (t/4iޓ_[6=z@n ?Q]"kzo-x8 \8^׀٩uZ,Y})-'({w 0E܁0sr +J4 %^xOF .ӕgO^OZұ z[yjHw,Y, O',Rʵ'i54jEOb~OE{jN&mghEr.m OR}1{аIyj-jhE2x;hյ#"6πD?O^lx !/Xw܁K@^bXZx_.GCVg#n6v92]hg>]<.3-t }#U\J ]\0.ΆG;,tEdƝOs, ++Z鵦 [ړ$Z}ljfM="mr$7K5яH e~h<\:Si9q1F^s>nS|-&nk5$벱rI"WԎ| wIC㥅>\StCw%OpyM+w`;ӼEXK.1ZWe`]U|*m{x_:o>&:Nsv)+aZ6x2.f^g:LkV%JcP1tp Vn)T$b˓GՐ%XOCx +GVM6>Ix>SQ3 `HPEǒ~~H7}ZNQmEb*D,S dXxMWYWihC2i6]6{O@Lxh XHn(Ix(JH+Ekgn:]N jͫgA]~z~6̞Tj#QZ!@w7w#$A[#l*̂(ǬhCU$Ì,^oW0AqEmH{E܁bԦ2KFwIjU`FwК 6bП,VE[=W9><qКvo^owNbFO╞5І[iﳪك5ȢΪD܁_.JXsf'4ɞq:1l+׏)7DDwAH. Q,>|2>pe˪"ȯԟб%ʲý}ՑnjV tOA +W"DOpKa,!κ ++wCrU3(J}T +@hȲý=}Ցn٤c^J^}+Ȫaᵸ}-˶9uϲ}Y(Rw7w#' -5Y] +eW\[@/{9/a3\sxЯ?Ҭ Q{02jJE܁7 E!hk!I=v4^M`ܼ w{˄p=wrU9LL,B/;W߰.쇥iL̖Tp*9.y}Bͥ boVK[zmM$UsÂrbx5|]QԒNOㄻ1e>nrNѬ`~\&]v6$HTnAB+9=IK u^1#r1cٽ֦pR6hJGoSPw vOV jkxZ7ެ}'^䪪ML[ɺh "Rx tM捽ʲ5ضŒN8xTO5QUjHn":@Hv8 t}s>rqphԋfI7$տlh:W*Kn\C}B`̿*L\Rn3O&8`%5¡ԡ0xn*khmXt^bcH.w($7W)\$BB1[[k|ne' xozQƤwx`5X]qţBX܍ڽ 1+̓dGވu"Dȹ zT ۝,b.Qv= +:谣!kpU +jV|p7+ˣ'2K(L7VMT=rɭ6|! ͫg1biHr-46M\^&eJJfy̸,*E6:17w}j q;5]7hORvYM4mf~ωE9o,aG܎DC͗1li4׈6r7E܁\! NL϶q8oreLHNT#7q$0;!a;(ӝOYH&M#g7tO`"2&0#ZEݠ4Hq}9y8u}k&/ϊCxWM7\3iЊ:E~$񱻙HSړ;\XS!^vsy-7W/ހ“T_ "v BÝ_,mn펣dkM+ۡUFlc6ӶCGZ.wF;l !s@WAOg9+DopӜ6_>Mw{dG:Y7սj 2F.|M[@ս5کxH- XNT7W q, D}0ο0"X~X*%'|ɾzը܁2C%sk6J Tߞb15dιhݕf6zo_~e3 g1^aS:9p;h;4K?g~S_' dLm ]sMBܠU&6Uղ(q)xx2{b:Ȕ{ʰNh1lei.%E6ƹM}s޷ r;̚c?y61;Zξ=hc7~]Up3Hi͡Pg45+I.ox /j((nSW(f}G픆Ec<xb9%SM"t’3J}s7hE4VG/&'ľԌ +֕I/iԝ&\軫󗳱}8g;W>[қ_7v4$O1O1jy3ׄˮS*xB2cY7w#zo'D ~*^^ɥVjYM;@* swsAqlFE\,; Kc>}s>)d.OE5K,Yڴ$ۯ#rR2r[<=i&5.Jj +;9*&g>TFͅ\].v1wY{.z]v»`zp7ּPymރUT1>Nx[>sAZ6 !׶.Ғs;$q6 T߈WE^QfJf+T֨{:sh:0$f\i.m@[IE܁& (Tik Q8E)肙6 4 ?ڵ-ϺTYlY6i?F܁'Jb@TlPE) *=9j-2>Ied,;WNFudU\㾲0Fx5n*I'+h|xuy'KbF\⎨EOWp%vʰ΢|zjY9uH-/! H2@9К$C(kޟ +QU +,rL +N`6l]61ϼy"nflH ުYsO'>QD]B>wmɬ31L)ъL]Ҷ-5Qkˍn`(4+jZ@HE0%Uq\n!\u+d|R heL47$+~Z"MOR˹ѐT34D֝wWr^H}2ڈrlLƹF>N:?-_kTO)57߷X}GOJ(zK tsBȱJRΪRirpB"/ &;??(ǯ\HqIȪ&<[_U~^5B`_ +@3ӶBp%Y Vc0e7OI28 GbE܁Lh+UikJ]xJÀd60 $j]đBN j ibA-mjy =;Bјx%#h2DCw^H-⼰~r~b6_M@rg7Unq\XgJ +?!"ر@K9pUMR'y U.?%Q"#Ĺ=>z刌e#OFY类;'-u5|p,rh +n`(6Wד?oW/hCVDQ?HK- soȚ)6&J=n>͘ '7V@Ż6 ]sx<:ԗƧy/*N[CW4d[!O8vLx-kӠ.#KT,4je^ ;zGVv'~@/ݯNsČHxOhlhX]Z!Cr9#Vtiu  CxRC2e$J.@d;'Wf3#-x/-ymuOC;8{Dz!y")K Vb"ӓT_z: #c>_A{ݴ0r'oPhWw r_4>$bzn^m*Oq3傌)[[|)7w|B +CT ^ڟC WZ<ғ́:g_${Ó_6t6oGΆ@n2J\l(D47 ÉjW&=̵ Z8':YZN#}LtоMETu?3}G`q}S}ItXL |&?K"#eY8I +$5q,9(ԇI4|Dk_\*-. MYqU<$5w85bo/F(|hk2j.֒SzR3 F߼ tؙhuJVh n+ )\1>xwtQ[LweAMN~0IʝcnLǴMCP5b*j H沛v0CrUښ5E, '^J"Z88#}Lt[ ѹHQ=XY(;K-*[ 1;sOh](u}Z9>(kH򢈩NU]s Tq 3_W A޸ؙ#.M:uоBOACbȫjC^UY7!WQkhku-yURZZ~5IrX͊E܁0+jfWL ɐ+6Blڴ/ +ǽ ~ j~.I|O-^gڈ"MJO[q:yv29COUn|ԤbQw7w#@ +3onxI/ Ls3JK=sP<m&h}N>Ե 6rY@eZ7+sVoxwWc 5˾Rk;#bv,܁j!.~jߊhc׽*ۏD}Լޮ?)=I)3xyʦ Ȣ ~w"jQW ~8K6ߝUv3*lH %#ANZӑn bX' y~gK}s>p*RU)7ovbw:dڼw(*'WJ$h3^I.GmX$&J\n7}<2ЖjzFD˫Y?*,3B;G̈dXk*ڒlDj%SOu9Q'adt%K#B =]gd*,Ό!w궱8},\|2SnL.Wϼ5eDIR77\hn٤o'mɤgG܁9ޖ@^M rG?vC&7͑y#sy` A>7ӶpI Îp ȆTG÷-ze A|9TϘըI)7wi'ŀַ}}V/r =Hea'wGC N;JeQOZcZuܶAJ[C" XmdE܁K$.;흈\=ɣ_obl҄h:MPTym̂ 2RSJw4p.8g<}g a&˾r8 4"Y(#' ⥥fBKݕRd}ž4|}=0Uֵ˱H,$x`p(d!dAb6lXOE܁BZsrhF 1 ]/FmB;J[{|1Ȳp`u&ͼm} CIN·fFA҇Wp +V +IJY%-t$2 _HцD E܁K$х?"z׽FjiюWDI +3 \N0W Ue @睙;3^IV + b*'U1|f"έ:lf+Wǃ&(3GE\^K,a> dW|89,C j_x:X![:b'Z#l=9eUbR_ԃT_rE&_U.![@@jvV/c;'|S6̲3e*'=Ie_[jGZUs%t' i޿4N| 'p,^2h4qvaa .3P$rs>iw*7r}, +)'eAe!O,b7@DLt&f,dYK$.в!Q{TC,6'܊)yw֬$/]ڬ;U_,ECA 8l^5:OFf ,a?OŔfYveUb䠛Wĵ}c KOpո$y +=i}^y$ɒ`ң}+'_<+C5fy #KF lamgE܁&4RR]iE5)R ^Akr@jე-|q v L,bEH06fhkHb| b?6FLxhvhmN$njI/V^I P}woX}p# ;~xAP CTIpH>6YZ5=]sɇDϫ2o.3aP +'W6 9'\$g*'-3Clf+GhC@ATw؏QkԬbWbm ]||6=.VVwv :J5V;YUJ‡2dTw @(tՉYX]ljSrR :K }s>@<ہYsHL;/ѓT_L"-C9uWZ!Iœn{ [fq]sٞ@7w#4z[n;.^Veݮ耻 +ܾ2r$F)pV<s凐yx^Ȯc^2'֪z:]U]wQ¤t$]D5ώVEEF\Ú<DŽn27 \{ lBy5ne +6glHOL<[chWu;u?2Ͽ +aU,!OK +h#'v}s.ÓJ&V"~儡,/ނ8R}ۚ7sتݓKn +iOF2<~绐mm궛)۷xNC7;|x}H/hwyRma[{_$Jp(f;;JF4>Cw7ww|R Ls^w7b3Vih^J:{(RrO$AJ}Qr5K, "*f}gg7kx)5:I _Εt'p(e$eVMQچUѴ*41v7w>8Zs6.zw-R;-u>twm)@ dz.fLJrcV + aϼw=?@Q[Qɺ4 'ELa,W]mz/.LQۏG;˄o9vg.Ui~ Y O=OJJLSI,*FX'QzF\ۗg%AET +Z8D gvE+_IоsNN .,jU^ZFcbh J˝$TEKpP=2,|qS+d} I['x4}xuðA2r$N;Yы 4g j$@i>sS.Mx6! mgS#&|SIexT$hC߀.֕D]m_5U@Wӝ^ziDn??׿/OߙL??ٟW/ӿ?j7??wR?_?/۟OO'W??7oW_׿3Ͽ=+V+۽ _:VڐRZWQgFB¯T̅CI(vm3zW::vg-„gvFl.|`EreYTk܋ńzA0xn*<*hXt#H΢s߁Os2݃0d%cK֌J)vmhrdЊ0:J hC@w7w# M4{FułD)傓oh#ؼ2*>V(L<`:9_'dʸ!v}s>pb&0>JW#'zYfj"jxL$ ڔM7ȁ4*=1K˶.*EkmW4g 붡ɇ؄F 5OFcƺE?m5iD}{*XY +?B׶zwExXdt˥@}Ef@UCw7w;0мiQl^,y~?KXs]s&Y| eB.-m4}\.@z³=IwDWhT *+.4v ve/dcm3Cnvo317H&El$MrXyܚV%QƸO6rڲGj&11|C{+?IxIh-$5ښS4 ӂ' lA+Z݊87ͩ~1:3my ]*{ e˭+;B5_'Y[ mdh#Z}{)&M)z7 ?#׼dI/Fmے(icwgp;_=vcfJIFb~γ0o)ޣogh;$?*6^RNiԗwb\Qk0oE_us&o9є6Mgxy7B~gie(ׯ +G>vH\. k׊wknB1 R7Ms}SVUKm7tu$?"17w;D%@*w:'z;A91p +"ifM\9E.< +d9)$4S4՛:IssU|t6@j,H~G2zKyUepډ&A%7,EǴt*?61E%s*Ҙۯ_:D6r E܁0& 鰶kXз umlhf M-5J38dS"5F"̧E@|@9t`w7w Ml54F[; +Xppa՘>@ۛa9q' bHqWGifPa[=]. !Cp⽫/ܧg/'F^#)o9K<5[^~ u􆲈e)w5%!&/;# mI_G`zlR K/Zܝ#fD2{,|Vڴ#vDظ"eYVtŹf`|#|܁g#'81M~$ 3z ?G͈lXuOQȦͫ9@$a=^t+@EMkjRAw܁:JlGoĤ1|u}s> 4"6̋=IoK[ay'Ym⁤d.[\`K;xRIShC5'[l6A…2=I% d荾p::ǍOJ,Rw\m^+J+駹+xi ?/;'fG܁8&q銺L^QzV=~*2|@^YOt͒̎+V/)xWmt +3=:O.Wj~oq+\`[7=(_CۯT${G=fA //~Ӂ3.0uv-[ 1]Txve߂zHm$21OFѳenG$sNcV֡,.Ќ!9C܈ԾuUm%%s|j{*]QSuh}Kǿ)qg^Y>zYUҤ!eD|NWeI9ҵrhrvj^Cg%;2i ]XMJORn50LRC ( U渉X^4>*?Ycۣö2o8rޛ@>ٛvy]{GjدNK/^3Hnj_;T.1T.Fpz"5zfhu}s.ÓT_BD ?pݧ~y8 q$c5YjTd^|4$՟Vp`Ì}Ȣ }b"p֛nZLI>܁K${mZbJ}-Y03]O>EP~Xu`:Y3Wt3Eh4ŖNkހޮEK[%-f\;+5S17w+'LxG HFE{}MkrnfG?U5-ћMF ~j +"E܁&+H֠@P' 'V&5lm CKND>$9h^ +Ε,KW6C.QtsjelJ_AO(^}nF4z'SaQcUdf9tE. +9Xr]+ _l'.zĽVi˦wBkhgG܁w-21XESk,֓ҲNE%rxϴ56/͋u}sW$x4`MЦҸ% "\I2#GK2m^軫r^Mf:oNjEhqs.6$nmd{c~-1\IYY0C>I7*&'@kUM48K-7/Vë/&߽o._8:vew$O 8Zzl6KOH]rk3w<dA݆pj.B-BfJfYpLN\Qu*j.Oޟyۀ:we.~۬b׃fH~Z^J#ֵbah9*>Fu}s>:apChuN2W6uH wgR9koUM8m<<PcVIuP_o"&<I@YGbo2$%{hdAS&mZ 81SWB3^YIVZ]!} Xi"{qዡ𭨸5ij [x%kܕcNu]ܾ\<0_.}.mf;f}tfт:P2[׈:YsW~wRI=ݩ*U<~e +đUJϸW隙M?x;B.W˼?YrBo&HG1y¬Y64= :?x{4op4l'//hַ䙕>pLeԜogNY(c?1Q'8xPgG?`$g⓪ D@Lem/%2*JvͬX#1Azء)zi=Vrm".dQ;;5 1r8*!aiȥʼnWGDQb+"ORw-͚GO +HOR}9nN-^i ZRϗܟfD4|%cCKzAk"}h6QW2s6wŐMXK)q9S|nay#bRM9gźtqq{ouU̔O -:v%J}'.(bVd z +}GX}۞~jzKMV}[f&2ȋVk&k'b; +Yװ:_٠CwYmdovcNY7֐lIڡ^`䀻=U/LE+?6=T"5oGN&Mğ.|pNVn IC&7Foiw10M^Ld^J%&T/yL2nP⭈Y4W:r$E1A +tA'Z}y\B7DolHn@,vX#yxD5«qS殫od_x3pE&>4dI ]Fjduv(uń q}q>zV8p}5N*N*T g. +۵չ"jﷶNn&=_ص+U\w59%I}c +eoYx[mjfLkbo}^%_!f%Dc. ɼ?!=$' |rƞ6_^Zx$a!*;&νA}gygzֵ^XWHoz<+]@[g+TǒHTbvi,8?emͩB3WB+=\hկbqWjz G"?Dsg(nc'zlk^! ;;̬pq¨~- g #\?.Uk^iKmgWOg=xO 6ƻu}s7h +-˸).i6=zVGc{D̺Ky/;uk_ˡІ,^$o xη)u9\A`EOR}I~5ٴz:Mo]5 (TzB:`6̉e[h܁ 9~/6z'>܁HxO!Dw5m,g (34/Ƥ8k 1ŭkcpd'+,n젥o1CA XqJrNE܁w9N*ڐ $2^ OB!enȬM=coRă]v_)3ΉNJT=rɭs #'ygM}qC=s:0*]aڡ2mXIHFHq}qtěgi6K&3"=:7>U:Qg_ 8hZ)b5SL]|;"aŧ~O 6Ճ~-ӢLle3wdɹ2-ғTN祝09] w<%Zs$N-L%fS5?RU(e+C=.[^X2.|U&3ȇqIdTe}:& CSpCd)tQT^ +Gky7$ ]`hwU!桻;3/jKfe,rh +nVW-~Mm1攸,n9<^wQ\ |mt7pHjA JRM=(i'o`I*QY7w#Q|FueA%zЅy-Л$FhC4B3xWpt5nNȷ&}Ua'.co$7s1Zr*xGT_hN-t1z:M;8ېlarZ89 +:DբP{E2 +C)qǤ~y[ (m;fMyDu5ښc=fpa՘IhLh qW?h=(?Y c?%6C_rYx'E3D7D'KpPWk^ i}jbE܁&p'9"#=I\*KC4f&Ujܼ^WkB/fpE4kr{凓s _>N;Nء\*71W]H26QPwm{bxLrL8e^!Lus_;/~1 { {lIvfɩkY ib|(^͓y܁f<26:NOR~n̩ kUswPAk伢=Q>$gh^s%H;wԘO4j.' pJ20w!aw7wC`0 Mz\%y+8a8Q +܈\EǢe]D+Ap'IcId $&v}ڮ=<};dNxo{ cvEWG'+ѼaDž.n;3AAKȔO-n@'2$鋿A|W[IؐߡzdȎ;Y0oc*lF[>]4p闲P6¯';\]9ڈkzڄ.Cohk'MH²pa՘Ihoo5Y+ ]<dA mf&CYa +{IoI,S.ڈDQA:"''\VMӓTr~4d荾p܀4* ^ b> odw!犑g8>|8h=sF@/+4H40s}Xրdگ zë[m&:3~PeqI;}V밋J HmgG܁X~9+wd^3 0s G>޿kK`zR(#ڀ.Z J[{7d$gUuFKUVxF@~H ܁ :+rӦ}REVW2fc:nDJٴ;8!<<Tuv$՟HWM#6o'FT0Wp3qׄ7- L6rgK-H’A񞓛!!rpwaE>]Ӌq2¤ +Ȳv:B.1 ';>HmB;TU7#  Óц&UZlva7o;4X&umS~ +&I/1KCfXWM;9L̔]+U?yqv:|;bCxjOA^=0=~$ 'VYl'ݖAǒm5K7҇$˯i9=FQdvxL?ޞem +@_$h`Dɩ{׮*tEn D K8GLO`֑`jb((F6_kc5?ggv6[Az_lSo%n.-)8 -?hnB“3&~n/OB~h>7"5vL O HݽcyƁExbEg4hEHrZP``Kˉ;A}nO@PZ-xXK-mkXV-{hs1nbq*Pw>CyOkmwmq|vKm˯#jſ.v7ycopvԿ2>jCLk?G_#E<\*ppTh/7Ij{:gL+I;XBH}E'kjD#B;k + TӍLr I KSq;@&7R\喰p:}l;bMCq(@ZΙ3VK{D?13/1`yG蚉u]QX_roӅ+n/}#9 1RaOXzЮ|X +`t-[+n":wʑ +]z +HlʹwiV.A˅N9D!ډėnmQundB_ /vYz#՘,~h +F#uiҨF-(J;Kݩ[E{_ ND^Yz 8b$Ζ 5͝8H}/{ +[xvum7BVXE8l/? bk5{9rKXRIg Б /.v<;C'Cw[m5fE{rbHڋ6u ͖ruŞ_{t>pC^db_Eսk +e//*ެ8vΏDI{8l-"_*Se%ߎj,@pF! 8Oͱ2ImxK6Iۡ;sO—e'dBç7B.Hi\oNB6Hp R@,C^[hiY.SiKvN6㮈%%yy|b0x֘7{ ,]POz7M-s G.NWNj6h(ӥ[u +GJ|QmnBǒM@Wjs )\'K9( +±-.2`@I/sZZ鱀>ѧ$<)pRcՆenmߣ͖ H V{u%ᱹ8ܱ@QZTan{\? h|Qc QY.814rx#m.3@{ǙnBeZU14,Qb@Q!a$2e"&;e$%iv&5fi3Ѐ0a\W_mXvĸsn?LʓVroZeG(kYCcZvQ$q "K!j 0Ei4TWO9CU(b78BNQ(4DlyGQ=#EDG8[Yf;ؾhSESpy``8N9x}щ|;xWTxMmZA3n7|7G{p ˰܆rɧIN!$/Ƌ3ykBlW|43ꇙ?㣑?5#^0@/f+dY jٟ/F;$B^mdz=p{x8UL_0ŋěnoQ}nO'ITVwm{M!0`l^w)rp;;维Du_7tv ^Ԕ_M8t2ީ[>mym-̍J B>Ϯ$?jn{6EmyafsK\y='dBCܸWB&o H-vrř8^-5%n.[wʈ]ƥ] 랜EMyuН?yn#O +)s@8(VwgÖf+kH1h:eP9Ex^7mo&@{#Fz&j(67%Pǻ=.^- 6lNd©ME]jj,mW^?]2>__4+\O8`=ީ¦xÖt_P+;`ςX<ۼ@E@%_'ؕx臆Ζ_u\QnK~Fp''w22pwN2>TzI Y^q,ˑ[ݍěnoѾ SPw.?Wܒp;D-H{JԱGYeQRehss:|-Ǹ8_CB +IG[hgLaB= &'$NlU#9qRi!mExe|bOmE#jsF灨+nL"<J*c^Oa#{mR@^=s3O wp,TlyEi;#6qv_"S8t S6qћ!Z`e>N4n _Bw1V.%S'':m:zH~0[H-k749`KG\F9CXxbgEmZlcuֶ(~wciΗhs8͌}(Xm18hqhQÄe 3 k]E9hAA:\`FVG_lo905`L"x>od on!Vy 6] /CK ! gΎR4&CDb9ł`8J Ϭ}af_[Ý:L~4OI=i87<#sN4>.4`$c~'Jx'pUxѓ_[NI_ {ڍ)\'<控7x>K/!2zlQ7;tӃ]Os7D6|oCΐA]"| Z[!nX\!N`XH3eDvM ƶ`#Exb"ػ;Wмh$ۉ;7f[E`ވyp$ڬroFyGgOj$IBuE3*Qk\nI-靃!J +8,P8C3cR)hJ5N2H^E}9ҟ y:p۾;U;oIZ'w45Ͽp|qr >>76a?C,Fg8dTڠrzXQ^;{ސ F V;,3,WTF`n4UVG;;|1xA]"<38;k.)'K竴:1/ |s^̛mm}>-t:qIpE0;qy7;hMWfSh2̀VZ`"<1mVSֹ@M6Uwpxs`8plپ?ڋ6ᓵ<5.;ѝrI>oGKguc$m96=p>< GG߭kRb}8 Ύכ]pzV~5iSAZm.;hmfۊ(XH2jywIl$k6hz*ry "F" om !2d8ŭ.681wp P}"ᮖZ6EyR[c\e kY8tP=0x!TbÍf5k2n@;N?/{;2DZַl"|cև^ֆ+yׄeh~D]۹' z&˾j&ynM-_k>\pՔ3hsqbY4qq] {j ҎٹAF{LG?/^GEy3O.o+핂F޹9_慅A6^ȈDV. _?%C۟>֎ϗ~^7<@[ XoQ3QGvc\;ml;}vn_$n{u݆h(j4%GƶE *kua`L@ɸrT_~_ėnmQu~E~%BoǴNs.ڧ5/\2X PB/|$<(iE'7͇! Peezq=#Qr787 f@3.<|Tk<Ļy6: \qF=iT8`KWWO_aȗl]38=`is ۉ-Q\x#<9 OZoOsuEa6[o흎w~@:Qlboޢ\Ą,eU)_hVim6υa#ȅ@S'4pܤtk(uaTKS?xAdb_Nbu;.ΰ\۞^sY2cxlH:nL"<)4w<1Fw  HlsKl@#ۻbmb~Ta"M;$rי(&&5t4ZGZlxO80=jhZqg6W.ѸņpS{%c; ;1 $,i*skhYmstUim.M;q0D XUgUYMb[{bG[WZӪoVmF ;P܌e]wIwIܲ޸[ϿBc۾x4"TOPyR3{؍qlY]4nsۭP_0˄KV, kN|~JzT7hֶkOl@ͶoԠ;B_-NID|/#}#-\\-O;q cp@BkI{`݆mP?͎Zőڦ^mX/KqHy +m.3\wvm ! mnr'0a#fo{2׸RTZwD+\g|b'[m;3E֜ #J-_as?mK+]"|kcܗ L|y5)\'V" ]70ƉeBwȰ[Q/ڢw`5?xj.<2?/||֏O@F됭u-~8oK%[K|f`K˭Y +2#4hsn]wQ +3vmב!bU8yu_;ї!V`g6.ܸ:3_^zWbd6ܖ"m9 7^1,:uegj0(k\LzfՐ ԝ!arR9&zr;n כ*=aj=Zw:7pH1ޱt˯_XaubL&2w5c֯Ml8︙BhęLV9~ƪ0mQ+Gm.m]wF)vm>aW=$FQq,{2L?Nr[N+nm (&Fwk?~YՁ@پ;Apqjp; {^7X`i >+\gva_k:B+# glj1iyL6 ?L:wMgK׏ub ^j˖{`^㆟to9-a߇9 +ޢzBP%ru|-k+7˞]-x"fT]ؘ2Ag|@$8[=X;tvB'6WcΒBEx6h^Xٶq>ݱ7_{/NG}q>i1ɉ`@$2,<) +pRgf{z~l^~DGJ $,*0JG4I΄er[5.&c-c8{R_x~Tcy-tMm7jmJ!=ᐊqe;?f +̱$@3HKhsrGsk.qqٽ'!*eCiHǡ;ѻnz.tyž}k`sAz&i%TWҭ,ɱr;Ő"o[ T̀iJ_,~DA\Be:~}BBeKj7j \ +ɲ hީ[BCDiI+|_%m !4LqV6z2D$-9ͨ)`E]pvٛPr#q]k0|[K6TyAٶ0)JPUQ}bM"46I5ChHxU7@V9Bl{卨b8;#gX+#i5 7pǡ$UJ3 `vC31/qJ:]ve(j1ARE\w(@W*@shxڍ)\glO vN}~Ǘp2^c^|nzd殝 +Njj7u!wzZzi9ɛU|A ElEytoN` b9[T 3Eiӧˊ; + 3χjp}JKZ [p.\*SݍUL`G!탥N׍VT?d2s. +pp*ӑh5Ot߉ +5"e 'Q]AVռֵWiik]m.<ݙn7Ɓr} ߜ~@&O*v|9WPZ &t-ׄxK$ׅ)?/E;  nif:v>NUomg邬Ǧ_Ԝ&wu )^,cob}npbo 74a,+m ;uƱf28L, 痢2;}HC1TW}:_Zawj>|"ܴÝŦmv-mps> # +ݩE2]]Y!KKxP9^?@(N~F|8~r%4`˅5d<W_Fyw݃+[=na/}ӧg KLExZ :@ظJ; 8\s[7~W 8{ԬN @Wi壩Ķ% Qs> ٓ5q|ޓj7Od.n56YD cic7,KqUo|Yn=],]C@S>0eF y=c\Wqy9X%wXlSlP|vhx7<^;{zѫ-ZG&ȭp#Y\ӓM6qazB^ʑ913fTWJMY08+:sR(<]gbJMK{l7vz]`ir[*lnXRX#y1.i+: Oawm 0&B!{ԸY-zvEK (q0!Pj=`' Gf.áv0KEogvێoS~ۏi70EyXlwof_gKo_fȺYQrI86)gUܙ=b|\ QIZht̀\pCya^r~&mSp*NEFBrζϝG;9[7z~#ַ(X& >XZbؤHeZRUy v"|VR󢮭Tѝ/"ϗvPZ+szb +]_BQv8kޥlx@{k?pW{NgG.G"v_ßr\p-'=6Hy(N}r_[j=h撾!\[̈BXTVmq]Az0g$e.Q]"T# oJ=Uui<>8}xss{6CklLqb">|zB$ӇP;(ĸhFi/cyr( dl;·җLX~=۰s"HrxD<>t(Yxs9N,yѱo IӋ^7WsQq@v [)=a[7Y V2fŞvc61jmXN5NnN}vGk3ܢܷ L$BIߘx!sH\Yg[p)(yD\=<JSu><<y=fx`iˈ?x-cki\^8FxyM(HZʗ;nKs>}+Qe\Oy 8 ).G77y}Yu0GP,J;_x#GL;4$syaf^5"h/#7 Ofm#9X["V9\,%C12 `imWhlz;(em.UfyޱD@e<ꂽI mm'($Sq;@Γ=f1<7@1!єqhs1ΊF ;72L{/1.s{ۯ;HKrp4i܃X ' N}~-X7V1qP!탥2"PחTx`C4+Mw=\KXۆzw'`L"|+M;_@8q34ҝcIؗnmQuo^s.y i^FuE/*R.mQw;6޻m + TS)#-fm F l#LI'wyޱ{{~#"6LA2>+v: +/SucV5m#/9͉Zwiw@t_< 1Ղ36aBW'D=]A]m2/,Ⱦ-ANQvoי DXMaqIL#sN*'$/w#ƂX,2 L9+Am./UmlmQvr1)&,;ۆYWZhčdy*n4ho:!]:)fGKm@%ڋ69Ȫ_ǀFSi5;$;y[0/.'֢ =@8(>CpKn[m.y@8`6qg?v[S4RϿn|`Dw^/4gEo̎(,j;o;-So;U'2NxDx8+v3/\'ؼ핼l_rlSD&av*@:6l'N\-ee{y٨x^2ѓZDA,Lf.-x_Y-ub]_4nO)zc^g[~`:4ues7DƎdgnPWO_Nž>X//8iI/ZَCOfTOgV"6"jo*+j9 KHwҡx-9㍒6Mӈ!`Zm)mfm_d@PzƸhs2nȉs%#Bvڱ`oxm0`7ː?lzB=/ Ew"'IOD% Fne-]{\d(ߘDdχm!/o6 k/L 2ˠە+-% 1gJQ'-vX)}y;Vp; Ձ&vلq~$e㘜۬"NQ2\ߙ6bn-6U7>c l{fe$#Iȑ]_ +maQHB# f@_3+!&|gZ2l~: %uC7/"&nD|0V7[|]f./H6iTClv-j]^&6xqypM3V`Uo/_ޭ;1ʃW2Di>lx̖lxlc9`ZĬj6Տ8ީ[5CKl@iYh2Rg|H)Ͽ|%0tzU%xB! NfG_wA\iԕjjsC;i +*+xP{8b_mkK)QW HdxNp VqAX{gs7j.HFM:`Kl1m.o >v}o +I<8O )_"l;y;0k /4gE~O07#Hl4$#Qos~ArwHQm$Ea굌3]F3"cgѝLq3ꆻok,g=dW}6^k )=JKxrEy.{|NQ*Q7!O7mV7e;r'@;"32Ip"I⨎l)1ml;##JK9s>Za)i J7l('1[gP);Eݮx-ύu(p`c@6_\-Tps^r m}4a&w6GDSa#Hq(8`S&;m/:V07 b=u1Rg@]"<"5mWȀ1NdlVHt>o9=qljLK:'˔ ę8|69P.p;-;`-H9cxڏ][lx-zknC!jkBoޢX dV ʁ1v ExAX%< x<-s0<ҮYO@weQ4$.x+dsϿZW(5^:b)/䔄\%IusV*WPI 30K(i1 e|sW#@<`-*DPz'lM!EmyQV#UBS~XBٞ80;CDgIA\v]_ƤeSry}O1f^R.BN͟Z \1;yuE@O:~.`"G2#iI[hH8@D/Nzb\W_9-s=W:,z2y'0䊺 {OW]>.CjwAJYa?$|@2Gl6>R̲m89%nL,h垱 Ni 2 ^Ԕ_pؿ;yaj?>/'֢ܨ@ OoGZFpҲ}܎;X 6b"X0m.g[e3f5oe]jajՏL,Ęvi Fuk O9{t۴tS0$T_7#t+-6Bgs4 +߃WnŸ&w{EoHsz`^y tQ֚`suEm=2UMANmqU,Tkn3(- 4wDZPo>zxԴ&m]M`LkIxS(k[7gN΁0f]\7=:h +-v +MC[ANmizmZ&|ueM%i Ba5a$mX,u{9\2W8߂g{,V#Jx 5b̸ :paMUGSg0\ѝnh&tss_pP{_Sm;Z)o?U\[Q hJ-ExOJ;aƵk[ڱ5r>8I3vgGZlD*{T䠹(lE:2Y,P֔[ q@Z.OD[yTbPi r#sE )JrM>78L3NQLٴ~;am5,ևKmii &Op+tc6 O*hg[;8[V^R3~T¤U_yQ~[زhX~H3kknbrh*u- 7pa 3]Qo_ @k-wb9Rd@tx-w~p1 pvt/̋[FSl +@P۰s \=)#o%H WwvLۿ{!tWi yQ,뺋~1'fkl|zqqev+jˁ<%ϿN>o4!Kg:kvSrOÓeiB7F-nu@6LW7ʲ,Hd5=6[ މQ⺱x-^O[M^)~3߿T|ߗoo{w~o_|y;?w)w?+?o|oj?O㏮OW͟?_w?c+iJ4`9u=NR(t|AED`? m./XX,}|X! +plJxQmDDk/# O̺Tewy5*%$p]>#sC3q[TpQ٬K8s6%IUhd`B9|HwНXAkt=dc( +nQ'7gEnMmҭumpk9dvR/ !7 +fL-m]{"|vڏkeY_@4h5pw$Dt[*s{,:N@8(fl42R.Zn;d }HVI `e$/]]Hxf0q;PPIhlC%+sC3q[T!p8=FJ J(DO @CE{gఝnheW~ +.rBNs@BQ,7{E{[}Qvsцycb6N}޲ZK$d>R&dBIIEt(}K ԵCQ}c COH!Q0$T _ӑ61Cظnz.ty4C+kU%#Ur~2#+\ۘwF66>W;ri6,Ǣ@PUW;4v31+/1V i4lkF&ԕvWm*yEporѸ/1#?XZ.yD-=~ hG$dPpLpw;2>!/Ӛshtc[ll݅V. +>iy3[z q67zTvjoElPYť+O#i\N}(ym-l +0P:s١m5`]`H2vo7f#דvfJS:')nTpgGi VMSg_wb t(gˉ7ޢL  &!aJ۟)$moC!JzIXZoJs{?8f ]/qV_[̕ٳx:-Azҷ5;X$d*֎mڋ6Nvm ӝmџ/g蠷j!uc{NXyL0j5Y9ۏpDeacӘ+##  ..V Lfe YFnbrPMBϗ/K:;$o0TWO_&t>K@edaec C7SW5E#X:;E}Lo2{ 3eIj}2PϿڸ#V: +M_px _E \dj(ڪBZ1q@MOm"HcW5Ixʸ4$݌R-wuۊ XXMtM 37Ubs_@# imPi}ܲHSF4I p,7$ܴÝ2R1D_pi31B *&6 +טE~vlDj ]zilz<<}חMp; ;%5Di)_,Rsn]ҪB8|p8+3P;LHI2*|3? tLQRՉq8nw-=оkfd$v +\'6 ZLZ{`[{{ +)g|6ge~p2?VE~8cF=@`2"m%e:sm;E(c6ύJͶYJ;cilm h8|y7 +W@)C{hn2tuK <q LlrHbs^06 RBfM>C1BL9ΡН9@D0;Lm$WʋV۔g鎓F%8<m.;* 7iVF^ض+;v(ԅH_5<2̢$ܴ.OTN.x1*ʋfb\W_+\_c`Tph:xӌv[-Í$Is(Hxf-JqoMCBqAi8t us{VmB0ڱd[aYxƶڍF1! ;c[^F.m;WS\6lt"N׻(Oݙ/ثDcV]-M([5 ]$|@FGEoExbAQZ@!@GQ=ֱ47q@Zjy=j߽7b#Rdβ.❢4Qn,'t{s{W|F/fov䧾Ƙa;0}96G8=K5[>Ϸ~_~}o}\oՏ}w}~_uBն'ܣ^-c9ն'y~ +)O Ϝ'8͌/Da!8w)5767`oQ}nOH:n~PinIO_֎aj @]"| ZeT, ޼h $L ?FΑQ, Oα8T85-ګN WA%"ꉄ83<'rs9^svEg7)c׈7`{FPi+G$&D9DtR$SAn_zO'u<nl&uEu6szZEg)Z)՚X勷:z< i/\'6Y.eQfS4PϿp8;;_ľtks{-F}H߁irvD{9a[Gh>ƌ.I9KEk]/eZ[h(BIǑyo_/A-#[SN<)8;MsOS qrTMw΄l{/OĦ{yb8ׅL6P;5k"d0mGS+7 W, },P>_]]"|9Zeٚx2v0c @74 ,;et(I4fmwՉ1`mH b2qQ᩟c QHASmlr~ʠ{E?*i;kڲ3lu";yzA/Ķ>4 \sz8m_ U&6&UFFJDaKJ%'uCYHcXH2vgHHǑ` 4weLM %+ρ&wt[?*q;EY,\㉍˶nf}3Clkr;+%h\m2v*S7fI@]}XxƗnmQn ׶|$`D*jwvuo/>wF8w?87N jޫR17 +7dLwL'"}bM"4öHǑ," ͝H+I[edβ7l0lܣ2ҀKƗ .$<ዐ/M};E c\_bb}c COXZ&U'/w69CBRᬍ]Me+%ባ@7+Z^Y[rI?SE|RNI]Ii;ZUW.5avZs !PhHM멐$ALJA]BA;΃Dq5mn@L&x~άC1"晐vƥ"<3,c△Λ".6~;޼v4iQo8Ǧ[D % ŌbnjǶ=i%fdLa^Sj#e3;nIZ< +ZL'8ˍ?QG }4^f2uil;:@^}'~ ῷ:^IUAZϙ'b[ց{>ēCEjWܬ$|i(R2~܊fr}iE{4pܥma[FyڲqHsA@ݵ +ClsRH+W4rz?zNq?k[dr0O#4H0ZHc~gj_uD_Z@0:GI~"SE%r8*dKޔ)ua<tKs%+vwwND`yF$ @Eux׃=ss +ҿq=;?gėp' #:qwʿl,N+  H뼣 P^Nls2Df=kJtŔ@ 韩4Ewx.?/P'KJľ3NJ6Qplx",Ρ@u<}4MնqnK_'O@|y֫&%rZV"uQVE*&2~T_&O"Z[Sj4/`ĥ)(r\b wM2msp˞+:K!ubL'28%LeF&!=YC _X5dM|Y$$_TxSjLܮx6,w.W>sfUئ#Mnv]w:_!^1eJfʹTXJ}O} +W`Xۮz:w;Ц$dWLiX.Kŗk&choqxe޳:>JNזaQ v<k"b9zR彲y:1,n6NxeD9,>rdw~v,R(kǶ", oMDscO[ ++hSbbFNsXYP$(Q29?5iJ`-"n1{BҎOfz@%QM[1'o +EfŌ}.E Hx6nԩS~ԗ(ZHX tLX& B<[?޺Lx(xo2E,c7/ +4,,aBn\ou(C{!?3HCn7}.NOlr{i9v;ː)ܛ055@E$rfkJW7q"Pu|dT8 EuME`|x"bM(LO?wv)" ضnJq.qS6[ Yg'Xy6KUmJZwOy3W;@NFێc&qS}@;ݱOJKakz@N@+ iko^S}sGHp짼K;+(n%6$ܵS<1~oNk 9oܞ37vd}\Z,ҭm/L + RwlDpZmY_q :IS +ԗB]g֛`7#l@N;m\88&~y5 N$OYM/V5q v{SׅuxJlә.PRAG{]O#|kV}'|"a O<^<;+{KY^ᙨ9g.YҎqG!աub; o>~`|,ڒ/ISVԶf%+S tp"aiHLz'}HFi+!Q׳LuxMΚ!X@g|?>QZL6;/ޣw92?%ޯ#O/o6l]﯂˻,}:1"p"|O ('u +hHLرHoOWKz*w?,2_y S4 o:F2G:pExΨ:ayF <),6.c _lm5J(ә>0#+  "Ó@93Jzg28b} 'LL ݍLWTSԙI/CkDZ?EJv(gvi~N|I$TWn|2GOa革yi$!d 5CBO wKjڗi)5Dj[cӖc!긊@H[Ǒ{`Oފ Os<`y\乮q$<:am:\/-ni']i^@;^G (ɺ4h xS,_Y78!HL '+큔B$ZaQ䏂ù`DƋK@cX+<tT_:P}"*͟-$<8M!njCrԙ|xIgANߵЏN/$N剻c@}|nyq##n"iʴRw&tb`uޛHo1N!ޝ87l+ئ$@h 2PcmɞeSfԶ]r$1&a $fJ8PiYqDpM{)\d8wS +4'VSui\ +O 'ʊsԄ7m>݅+C ;;jvAW"cLzEW=~QMa vXLkuv`#^}d !`q`&-^I@ZCtH5@'bMP2Z]~F)Du{T_̒4,al_:eY ʱeSpm4+lyMeeL߼YgbJΖƱ|3UgX"`Z4cc) _M m&2EԥN8PXX t>AhIIT" ÓH+zj+./|KζO^KXm^F0ה'5.{X!S[|= {_ȸo-OE"ZHh`=u,2$TFyE S֚ԙx`}bM'6c%V'ÜF{IgQFڗ8\)D Tgw|֚ߦM~/r,$RW3$VPגN[fp8*Yd-5<-x-r^Ǔ"s o,?E.["9Ħ9bJ:ƥ䂿4Vp% ieyP-s3c q70wXEzOuElYV"VI$xai#V󲨙jms4?ӣ*T/ռlG֨&&ubL'2UPLZi܄eG08F9,] :{"Mr'-peO8_ á^1ŎOOўsmOfz`A&q})2R hz/0> /-d ҍH wpًv]Ar!^&8}}n8[g^$~C#+&6[d$dz7l81j8 Q>q#nƣy.@W _7#+~]{?əZ@Uﯤ7s<60Ԝ +iѰKy)SN2̌>FuHxl^Զ8q TLɤ-Ƚ.YNax| +⫎x 3@ H:M g o8?FxLqsgJ@ڝŒr!xŔr!› X0s7NQܗՁ!`%coGv8෥h.l<X#rކ/ o֚RՇWXĉ L|XZgqruup}|\|+u@Z=w~o67$JJEUtŔG6cɃBҸ'JZjaU}~$Ed|>{UE@d%\3.'g\I0&륪Xr_(]'iMޕB[C,`ޙFwcA&5,p%i/ƧGTehQa ]1%ICYch1+k Ҏr`m4yGwE"PHDxԸI4!:Ii 8tM{sgu +|ZDtxݽ}[=^]֖MݦEݡ">ssc?1H:$e$˽cԼtk&Xs$-$$b5u"ڝ]Τ`)ۅHWLӸמ_(L \ ^'sעA| .`῕0^I=AZ˙vX57ގ-sbKaOWLҩ^S}eӃVa $ s,R <k5Y\$Ŕ+>TDJpIi 8r7yR9<#Gv,8nxM_L/q%!mSEh88ioz_gjFt(qCeJDL)8o9c+X@ZAZGgJJw>O@/=3XihaGLEk ;}KY'AfC+5m7?2 ̗VS[6u3w4q+K44NH}΀YX$ΜD qE@mA Mb +\ $ W1Cj\Q|Q`H:NoDZ+ % &k_y&"z BznRw|֚"? x TUp&b%gJW}O=2m +v86&M܆&ƥv;đv\Q$Qq;n& EI]rlF Xi(cWs”G׻TOEK,c}PX3X'$qux UW&M-LV}D罋 u9F{*6wl2ޱnqmj;j7%:HWM;?[9E_流#&6FRK[4Hx8n#lK@}N;ݧĸ~Y$t2ձp`Do) +*` yN}HMwKIk]M&{/#7DÔ ~<Ab ?,A@τ`ܝ cE?93WJN8DGN{d"D)>DVIW,^߸ӬE njzʒ# Hr őKX)„Eߏ6 Wkq"qLw|,RT/8_Vd9V@:tz"fNWM'*} +B'P߿ 7pQ$8Dѱmj,,Vqyr )Gߍ9bf HI˾m;}"6ᫍjaH,eưs}!Z-`ޜC[8r{z!I+/[-=L`OQfYY9'8'Kk|' ?A} P +RGH( K8/Hx!_WL)6R_/&=v,gnrN\`9Ă]||Bi=ϧ:"|9;ZVi"IZ?f y;lDfXQ]$` _ZSԶz8D* VS#p%09;hA|D!a9=oH.cp2c _Ep:HQwqۼ-\n,ܓp%i+XIJd'?RKWLX _}Lmࢷ(v^sGB]{H2G?Z"`BRz,pdzuhϧEHmX 4뇥FM`K8șΜ`<^?xlN59TNLA,\3")Bº4LLӋ`xw?;ísUϠ1\AxH A]M;kRXz5)xo +n7m:enE4}5gsě >E6RR`EIY)c,RZ'aPSxSj4 gӚƦ"r*zt.82lg˦h/pWLROJ7U't i5Hm(urp($:&z[-T . R,܏| 2 w.ؑ:bX'4zSknG)_Vʅ3\S}ilj*@u uW DvDupY2E禖=SGe1@H~'qiŌ K?y@t XRvg!; WJ( L1z"BS]A;΃|qu/C#NM: +DM_ctm /'qf,|q77Kl.%+iljo^S}g,N#YWybbB 'ަ?~̹y#S4 o,6NIjP +Qగk1)pPѴIJ@ +z)Q~clfs4,(+i(PKcS#bIpFQpW%LNr}8P=y $nTSԗ桜PU3[͎H[ǑqJ"_#B`=H[pwn ,-*h2mM7EDR1܃>'v KxŔ5KN3lT'g x˼ {~攞i~{dH֋oX p-7 9/?' /USޱVʐۦkw$'Z%>q3Ц䩫 0%+xzзd0u ӈ?ou{JjZ(3z% TpvTnI A]hLxȩm3Ȭ81K|F7|+M{X+&NuY#_SR}$LSH[Ǒ8dz+r0_@N5gTo:\wQjKыhuۯmuޱm7%^1vO}yOS~IH.XKw"c2p2%nF"ݩ>uȤ -D:]1O=)O0U'tBGV +H+m(?.eeD9 +ǬK +RqA{$|ycmǗ/K_pvs"Fє48<.ژScv܏lh۸m~yX* _YpP8  oUDʍ{ih)`jm7 |5j]:}{v  q1NPAy+35?5ԓ>>dHձ(W9Hޣ{ĨX,"Qcø |XK|LuwֳKS Ը$3C~XZk 3@lK:M 4DL{RuJ"9=S443`HQ:$l1lї(-%u#,dﲧYxr!ˈd;pi $L?w&Љ6ڝ7v/_!LA`#Kpe!pc?i~Tfj&7l{OѶ7֚qK_X,΄y TCsȋ3E1^IAZϙ+9 S?W+iM_އ肷9#G cHĎ)Ӓ{%Yd:M큀F7NYYB⼺)ᦑB#o֎tŔn' 鞩t14Fr?_ƽȁ*I[KP%CѶg۶8ÖKu>icG^X7Nmu,M@bM=ڱmj@!?)H]ct m'\֘F_)#u $\8?3/s` "ƙ1xܿ _ԄH‚vb +(#/ +A6?Ͽ$I'6W佳'88UOy2u!1ɬ +2׀);V>z^;$(GCQE$0p~9JaDE^Izf'M+dMi(kg\S}ilJg޴gNb؆ 6=/%&ȉ0'8$|$ +_?;tH^e,+0ilL{M3HQUrxoA9L\xxbauTg+,S"F6[?[25 r3S:44 gS\&>&AGd| nw'N;iN+=aܤ|{M3CwlÍmmS{d᝕}t;8PosCz +aGXb u.wBoT:`$4?5roq0$T_7IC"6NBwg^:yתEX2"]7OW,˜V`TNIWZ_IS4 gؔ@,g` -"~~}o`mENtq˦nls$|Qi u='^Ga]&*v+Tyidj_C'7L*Ih"R,zysܗi)wj[SFKb!J> +H[Ǒ;^X3rqWWLSً/ѝmB+uDj\;Lu`Ix!6ԶŗJih3wqf\:s/'FS'E@IkD ~P q4>ƸC1n{=LuE},q9$Џ ተA%GWL SmMEOBnKapw>%sl;}?1%3ZcRE -Q +4|u # o֚UAs,g`&>,sͧ}hRU?Š* ęՉ4" of8m| 4b|f.M'*} +T4Dw\E4Y"hcwI;symH"%ALΙ!}qj{K뼇C1@m4pޱmj,VWqW,%orpi"*tN= esU0+YDז2*cze;]7ΎDڋJ3%ucS2* <;Vl$P5 NB:5Heڐ&G$+5 +- ˓DhxJrϗu"OFǸ" ߉ҤSDn]Z D$ :碜'$?¯"&#j@gSԶh(RǎәߜI+1~k>z*Jp :+H I ?EP։@GH:.'. ߕ'֖Qa3V[FOv,:G<^&^缎˙p1NAwԛ G б'^'1 POBǕ-7|kM5Rj,s3E ć5*o"Ůi7l{ \Z@UbTx+-Ysݥ%G6`Jśv3/Nz`kS~Z,mY:m(3f5:l$1m*|s8 LB0n78oR?ԏ9> +2(l*m2$w 8f3)JfL;C=k:'Y8 '^a|jj[}e!H&>kZ.HxǶ9XMY7ls"5Xkƹ^=pc XZg}I߾3OPaOIym<)X}pxLWL,fx/ETg[W<~}|ޅݍ{ \ &(Ur2 (MxᩂWLXՕT \:S OWpf`:`SJ4Xuy9VECtK5-A=C_$l1n,}Pq98+c?7t8›ia6:To}oq"|3!f}qqܳeR MK =Sw&i('2N8NGZ~@r;W5W4v?N-15`E=[ 󥶕LuQ$W#W!yiʔ@ƹ2 Á 8 VP~H<%$Y ׫Os"&Z@42t6韩<{X#,BE= ^Y1HxǶ}p@3X?S:ԗk:yBiehu5Khyz*Hp Z9ZBcOܨĉg+B^#벃l,N" 豈D]x{ +%/z(uuaTotˊ,@EjtcgD-!%}YoDY !>t'꾢:sp I<*wTf9qO**Mca `wb +BƲ3WtݺOpvy[ȏnepcR]1M}GX> w#odNqxt@&\en?,XQlwFsE"6["᝼۩P ++RqCWLl}X;33 +j>@klng uShhM kg:8$$3%+̩3uÿ@ca*>,z@* L^^=6^]¨tմj_$D(mbJR>W3'4BÜ(H+ %4#x*ەfH TEߋm9/ώy fmSEbްNv0@:ӈM4otŔ$( t kS@ ?#|Q&UHb[-|Y `)~S4VZ[2F&·c/۫*ؙND4ۦv<6$VVI%]1IgT_?@.dx;IAmoAZZ/3O"ћ~:LZ7V&(U7@Eoq{S;|N鹇W{ ZEX6`%X$eSEz8?ݘ;V58Cq]o}P]r⼒Sj4},x?ț}5r \&X$a` pM)tqK \QY*kD8? + LoE'V"&[豅O/BNFD=i({%A]Dd-ghqu呔(ӛ<(V7r^)5)־LG&zܷC,^J[w +8"68@E>AE"2S !\CB/P$tjo;g\8CuveSE:A9qЃ8 R5AWL,d}Up?:ft$i4>q2(Z#cTob *}=?J⓮"\x?3՗tY p? DcԁHy:M9}Hx(EĽ物 g(RΛ2Y8A,gcyX 73JZV֋x%Ali/Q? G؉J996$S4 o@4oo^c WIuFkOfzeSEvw\׹]n>Wt7YSn44 gV\8v$rC8 .>&^QabXoјH4ok} x-?ug(Mi2,%8-y +z ̈[ ۋ+T0(M-H;0[O O"`.01z` 4g9J$- w/Iw G@Bɜݑm@WL!VX.KS{sg^%s;a5GKA)&1!ȦuxpXxNj[h>68NSapE&maE+CBLozax| +bE +~3(^`Lu ! 8#x&O<]1E[L.m|X_=LŇu~g +{t9. O p5COm*X@3_mB:o MD]X=4g8wp_1cnNj7^*?sajПQnqIbBf YyX$$e un|Q OS4<c,0ְNšA $eHWLv,+2AWM+A"@Z+iu;g.N|q{WLX.KS{C J 53efwl~Qlְ [|# i#q;eƁtw5ki3K0r^PZ&riDqK}V*ްyKP&k bRg̏'}bM#4ED8/ފ4 O"?"4}~1o+B];\=ZT7|P0Ԝ A(b+Heڕ4 w|.Y_p#W䅾 P~FNP <>H]wsMSj'vWK0o^`Am[}D8=rԘ:-3] Z?qU'x˱o/^9IS43`465E"/3/|h2\6rY~?IfK=WLHZRS' w4"ӆm="ƫKm|vIbUV +<wૂWL_,;?q.3:[o3Q;mt^+h@DdҰ [A!#Ny雴0<c⒆f4ty+?i,52TX$mSE +8j?JA9;CS44 g6xHQ|շ +MOo5ҫKBY̧=]UgT(+ >&UIT 0R#ma_~E ćNw|t!s|hw"c܋zgԸHIS_9,"K3KSdԸ_c3C~XZgP1e=Od|`~ p L1(bAXrp߽NB'@yԱmjHDSшӧ4S2+IE]1%|JCS;KB,gPd؆VmfB9 dix7. r]91X3'VSER 5Hm81K]":og|b_c7 +ʖE;Qj]΄LΕRnTb;~QZy8p^\+B}kד^<>kk߄cqfM;H8su_XWd |ޥBmɛ#bLpb6[$ Ե]X1OE{Gyk'&n#p))w +G1>$8 !' 8ݸ oz9.)u:1 gH7(2 ,bc H&t?纵\āo&q*}tŔ +) ™_u/sq #Ç Eh%$qbƦ} UMH[@|PU'N!>־LpIh"aFCC^u?eZkV֏#!b!jJԂg00#w1ފ O\X"0BnG#ϨLXDy#N/SEJ-Y*TEr N >/uq^'&8AZ>ګhO^4>!2>kh^_N7i'tَS]NK;_yM;}p(qj77ڑn<颟PI3 J0DT3%$XAPuXmܲ`<, ºԻA(@b׊e[?_BNC;]#/S.ԗz 'tBC`H+CdW%4 +_tUɮB Z7~Dʱ8l=]vcG#Y_Oi$Ÿߧ9`)jxj[>ZD8E ć +4EH F6i{$F[` Nf3~ UMHq= F@_Wt͹kW.% 7l| -t?qZţTgug$M9DRʬx0S tp"ai3!YD3rh[k,?`cnwR"z]\-:AwDXWLٕ,sw~޸[Q]{T>CDBvm+/uQ9ZHX tBWr&n5Mh^J?qVDIŸ]/Nߎ_51wlÍm妾p^5N0XX t>LIwH VKT_=jҞZ%88flf h1Xx 5GPI ;IN;O-`4:Д(`h \튾tJg 3 +LQ@/G3NP&gYIg)Ik:w2_)[r'qA(J;M 4 ,D嶣CMca@ Ty:e=gLWh{{x {egE41Ezċk﫪X{&00ihJ}- |KZf2 L(Zl WUvYD%-g6| 75N6tfB)]q:z]x΁+*SDUz8+ .O 1nOHxc: +(pBYx35w~0ћ:ih]~P? <>P0Q߻̆E&ț_:?YDF%\SdԸC (qj70J* +ҿw*i ZO, O;LkMS,Q2\XH:_Ai 8r!6BV`x(UlfMQ[ݐII,!Fwl-Nmskzރ}^I.CSd)vqXA*H77]m*Gȷ5½p Xi@7% +:ݸ=Jx]؇pfk/_ɛ}G;(q,ݓ_{˴֔;)>XcɴB"q j3V%eUu*Hp : L7@o 4p`BnDbٳ8s|8j#ߧ;*onao]ǀrjh@./7%04J_:$s +(Ԑt?' + 8orZMC{~d*w1ewp`c?ڍ4s]t.&#j,pƴ8CMìP6\1ebJCp_l/粯 *߬j 3n7.:hɹ5$rC zs<(9Os@,tr8X> L5e8J(U7@ ᷑JqڱN"c`7t7NԵq>4N)Åx|A sMђHiN90 +FFA,.y!V+U=AJPK ~@| S?}@_XUX\d + .M, eizb/4߇phHG-.hrԻ nJ0n9 }{WLLw@Qx$+ Hk}U<<k;+i(\-ԠdJP9[ŷKzNՓ}=p+4  g@E`8c3h;sl J?iiilL{M3]n'Aq̝?kJx|D%"' ;Lu " oT8]9$pl+ilL{M3&?9i2$|<,AIJIDiԫ`w A(6/˻7pM:›i487ěJsnw, ްؔOTPgi7|kM*RqP,$R WUGV:m'A<(-DӨu$hR }b|aX})@$Q+tDitqK!퇥Ѐ?@mc;YWsIxǶ9X۶񋎮{*G!3k:' j+ +խ]yD+qFmǩyfj" +mSEe΃q<~B;)O0T_:okc8O`Zp|q0%}"'4wAEr-+1@Ή&*0< eGDr -GyؔU؈ۉvۿd|F!;Lu 0 8#` +Sԙz|Lz&xSai\܍ۊKaxv#Qc@@&i3Ik:2~lFx땍yN{}kғ$\ b_+h5L33oO\8>IXӈ x($pbpk_ynHCćns|B[p+AZ+w*t=p"O 2xSs2\At;}=g/ f( pOWOU vr.XbF/"! o"l4xŔ!(zIp81yKkj~E4#SɡXO8Sr&mjO`b30>R*jpc {q 5M];#} +ʢ ۷w{ՂZS^EQTg7wsMqgS_ZzhZ$I@m۰mb۳(CyOdx`P{ ȼTg7|avſOe^1]O}.Ta&>, ̄H{]X  6 w.Z+/u8'tB4+jG"s G魲#V<|{ +P#B,lX $ k +WX͑`H:nXNT~)TW~(\08.|o[>3٬hE"tbʣV+vll)Rǎz-2F&maE[%Lo}2`x|FJH=$ 7I +qc,sO Yk +VjO00df*i9pj*Ip ZoQ;lq +A\P]D/d-g臩q'yPu|$X%8! _y&@#9C`8~?4w ,Ǘ" o", byXfsQvܖz-q+kǻb/-*NbIXz^Nh,0ϩ .`ڋ& .yL -bz#rq(QV7!H qQ;.~ڛq+Z'k Hp? ™i463Zb#W9h; +a7$6;t `;OuQIx' {=.K <.M碜T5iG՝VCA]pPWLASgj0t#}bM'6E)VƁ0F1־́G-0dMuy?tB*R2 \s +z'QV&oai2 S`4 o}ip h{7mI[A`HS5f\xs-g@p>^o$ڜ`,>wl)mާi>a}bM'4yωqi܏܇V" ÓHkjf[P$<4U0tY6^? 5Ѐ2iehQED8KćDTIlra:- +8ru ٖqxF1U7V"nw}Zsq3SZBP{߉ (< oDʑ!Զq/4<v!tt TT[X7zwA ϤvjboGh(POYNǂֻVX^gOojNX-pr&t5}=g/ fD`3i?g4<""=J+=c,T<0 S!xzXqGw5J@)Gqjg,,x (F lkFR_pYxQxSԗ2ۅ +XX 8o)0"!kEH} aj'ǓE *Ehbw9&wB3LOHq?Gy!6(Щu4sA³zx5ްj:nAdŖk2X̺7u!k v9Zx؜[큛= 1A!| +%$415Q8Pu|H[׸5M,}D7u88"c1p͗tG+P/u?XX VnаDZmDzފ4 O"j WbK*ów~FuYx BmLONxKh7&%z'BCsȱe,۪[Z4>C&Ա0:d$3G+h35‘H_=LŇA"4+765g~3x"Hk=6Xxx (r'ϰMbM2kY_t>p,9\[O QI-,kǶ"8, ,DBǶOiin~_CۦY8C?w~ 3 +LbPKm$x{fXn$JwN»'tb33I[ǡ0n 5OB΋= $`|_ (lMqlE\U +awg&| +_ B_k3HmIoʇr,$RWl-$3~%Npx| +2(`-6:}^‰+\qfK[LsM!S^a# qoY) O&ˮ^d xWH/I!칆m=BױƖNCp\ᦑ6/ $8ʁ^fzo/} 4YlrM½XAiVP=[@O5j<^1NCpZY_[*ęeZ܏#'ޏ_TK`ҍEM];\؃Kw>~{  +{ß#iYGҸ'H$]%>VEg,_ H~$ /YsBH~fͱzS4pqԹ)(05b*d$ldJlDŽ;MIx##~b +DR'oG@g[6 3K8(æ+{&ܴyxPg푄iFL; O9/طD8mghρ6CбͳU*p1 YҗMmmKHxcc'ƇK;fvV1&iAOI:0:</ڡbgt6omkۦv$a۝Z +P'8k|[bM-)|3g}+;p9~ +6vW]ZQ;Չ\oN 7&b&bOy "禡L<qm8C`wl{&Io۱c!YxcW#eGCHhpbL-,Vt 輵9 SSKz ,SV"ٚ>}zZ¢5$X.wz̑#8ρ%XXb3\SԸz'L!?{H[ǡ<_{s P}i9A;R½bXliS0~4>*rxOiO4 V(zktKk:8|]/zo%49 r/ W,V(U' +-9jL|pw\8/GїƦa8qFA" 㱗kd1>" B%$rkM,S% TLH+]=@]L"V]yD+s@:ַؓ**0 '\xzIEV8GC\]+7&Wgo+iS+KcY)$Lkg6w4?ŕVi7_s)Q{v~"H &7@EeeZk +ٜVhI˱Hu\Xɤ>RiSl<] _E=w LK٧  vJ^<>A?, 0BP02_yPXxc)0K܈tׅuSilә.(o܍qR" l!+Tiljo^S}A4o#2:?L )1i +$ ;}OƍCH7~wȓD2EnLcJy.Rgkd7uu+Nm5axb8og ,aorDb367|uqIx\āoMq>m||N> zi?=oQkqyETp]{ +E +B3˶m6,B37 3pJ8 }ilJg 3,88dTlAEAOZ\6[!iSW%&+W(41?*2%b0A[AE}Ikg!m(i U;Z 3@~?\1*NcUwS#·[!_`捭Dtf3L ]1K7/oLxFu`rh]y9>zSIG6Y+;!%sf3.oJ8ro%+^AZ/+orȝzeh`5Y`+ ik=S}i,`yq1 -B#5Р 8ť'|G8`H:x2yC+.9]@5ZS Ƣڡơ"f>JW,//G3 KB@,~?b +ƪ^9!ECpK|<wM%&4UǶ="<; E?˥jQ)!)W7}@4ō3P^4 O\bw=A7Ρ@E㐃UэniYr9 8QH}-ߒyVcSWaIArXN=PP,qGj}KxX%UO*S4 1+ʙ:>~ZF,KLh Xmu^$i]Ӊ8܍޻hz+r01mz܏zH1`Ix' +ɦY׋85 NŇQ~{Ue$PA-z0$tF35>* dW,LZmƁн9thkj_kIG:!-__i~?  l:q>/+j3F8<HXӈ x3i 8/,%[ O"}O2,b]xJy +`Z 8ю/S4Rj64R.cq>5Њ6#?lzo#rb^m'(ƎWFe"I߫$} MQ K8R9_NWLރ`wv!78uHk+zb|#]D{@H[2 Acnw]"E5>\ 7T֭*rS4 {y6^۽߽#EXl~|?a +E2Y(eySq +;p͏t]WLVC;;@ 2zySٻ#^[|ٜᎬ+Ll\+8b/uұPX ~#8D"F[p,]yው;$ö+pkTgVv4*Q~SLQ, d%8$Op_%Գ>nrd "5vbd6iE@*Q4şєWtl*NWL TS[G6PEBui}1Udkw<6 cP%`v[+Y=whkKw0]QYxE97UEkJ]z@X;#ZIJ$ 9͈EַȄkÄHx 9|IxA7%>SԖ~N0`/::D9\ c4H|Dy2r;I+J2kpŔA05[m*90?`D@9vVz|jE@P(8gCdo QUtk'Lp$[{ԴשDPBI'E" Pה/u"3oA0{Tj?Aݓr+nw'Uk'H$F1\$8_11BbtփoV~ _-B$%)MVh(il׏ۉ8>ݙX7<,_(t qS C;ySpTÕ3j`c",Dj>@?@)b>SRgv%L/gEgFI@)S3 g/lrtWj瓬/>W8?E6+YdFϝݕ|Ll9 WLR[Fʼn LYZ%C~>|Fd,O 1LUiE*^8͕\<n[)V꛾5גҙ;"ks8C)Igf%&GRѭnWBT"ΗiQ1icQWLGS A܈7?owVNQnQsϼhY;3Vtk[$%/{-AB%,ʉo&PacP7K~1Dj:zŸ3-ŽT%$ᕔPtWNrtŔ<35(xM7`EDv"m$]BzWZ^]tŔ,/n1@RHC(RE6|dbϩ8fTwGWJ2JX53yjBGa\mZ]zHd-bBnt7xiUr~%Ƅ{b3'$( f1n-@P ̺Y~KI;IxE7ӠpMJ)GhjK? Oo#W=}[8U/ӁdlElΩo|1HAŪӆ@+0CsF("+5bixqj7_^DS}W~<ßO9VliY?%[aTl)jjK?X'&3fiZ_xbpQJH=yY J~w|?/YIm_e)dʁ1M]Rt_$(txx0])繱)%!DR)pԇ# /8Ef'1xITΦimgJnH{x,oHVɰ0q/^9 o$&%Z0zFx!gHWLiR i;p_"$˱']j~>"O+sViYeh;S1SV+bJi1l/NZSfiZĘxkt(]$$k ^Ii݄.v +|T /rmbJ~`|3tԗ©,N}+o̔~ y ,` bK" XܱP5=x M]۝|mP^rrˆ} k%n".NL½E+\0Ɣ+U:IUȊ͚žHY& "rDm9o=&>g6d8,d nFL'U)}͉3U[5 >_~v2d< 3ʞ,d괈&&F +HI aʔ-+ܗieyh|p(M\ZkB|$u$^C8fE{Ǡ x5cy^ Ω[uMV-AoG}tnT|vzw]y5F+]5C K=P o:eI<\q[a' /8Nx +㦞S)=iʾ`xyq}m].Z8*_. T!PJ/}?cM N{Z6E5^nKu뗷mj81M xۅ޼wY>smX[]5c0&p2("{~Q3/Y1\![$#{aT߹r#_m?Z rS7k0,a^X3bJgf T$G+ #:umZ_ySu2V擮v[:EEz˃\ +4~r]qHgKTta8Lv$q w^7KM(G?vm:M8@-B A-x.%]0zYEe= g^W"X@qT5xgå3t~@iD?W0#d3BLcp Hx%/6၊oJ|sHQX5/n \-TJ=V4?m "ږ*,P߱-㧶xŔi/_bs?/NL0fjg7IDR4Ԟ9^9HxI9tWwK+J1sr?/q4hSM>U&qT73y@Xs¶eHC!b+T]xſxqfUfy,"Pi(!Q,k ^Xi%W+n\6EXmyivc\K}yL Q !23zKRc"5@` g*lsVZb&xŔ>+x3M 񘚹Տ[C2st%B!QZm'?񘺞Љs u֟C08Br`Mt9}k5s|Nѷ߳!GnPE90*9 /)מ75VpxŔ )5ޭW-k:vwK{) ~PL97l߽^jbD *l~d/[,Ԇr걙_Q>W+KEչh훥`$:Q~8A<~< Iܿc\:д]l,Ss=g`[?wo%xR 5,-3DY,A oWJD@rS!#_mEybJZf`Mt?sb5I("8 +;⊄!XG-} -ZrUbؕ8<^4>8J+~k[ 4r;& W\>RFOŝomW2ˤM'3%bG&PT#z7uK|J`DU0IxHxrkQsB%; +p+4Xo4}MK߃n@ -BԹp&0gG x$10?^19ĘKxŔ005_ﰴMxqj0oV Qg>v +O!X(~*,@$\{XW]t~r(˷f㳯_/ +Sw}r?=DUDU~pYHxŖ)iW[?p6đ/SS(D@9]k.ohe}v:o0sk'3 +γW$EmN5imHxe)[9R>%^1%I]30r# E@n܀fLq^ wa+o E5I8E*^ikJcևotb_ +1A剴r9rM-P.v \nKٮgz (&r#N ^15yICvLي3k`*,̚Eٹ5(H_fG[Hx%%kd<\1Kvx7i5mDꦈbB|٩Ĕ9Xwt@Z-,UZbsB `P+q~z.jfiؓN7\1 =l(CŏgIanX%sUlR'ʹMā/\\27%rJM(G>vmwR8@\BaK]Pxh-5V(^:}0ϛB[&Ro:sCzj3  +G"QE/. R )zWUlEpb2i&$VSIttcD'>9Lmʿ|Dڍdʏ1m1W(<^bP?Ҝ˗4^J'g O$B遭Kp hFVœ;?A3O SVWuݐ`훥b@fH$_߷9X+ڻG7:t`3Yڊi72엒a:Lx77Kmk7I֔h ⇅W&ߌGb*rmb\Zt 'Pkg4xLu. &o]:L]=q,h ФxDE +6JrT(fP"t#a8S$`;hkJ]֯=/q81(x_07dܾ?IZ>4nT̐V@p Hx% uS?M29C\U9I(Ǯ{'*{EL$GK(^9j +ΆƬs1bqbJm'9Om*i'D(ʎm7B("v;[ʁm_ez =pDS gEl!X|5AIJ%"PtWS+D]1Po[m*\`2iOQ^s5? +^4" +ǂXO"~Є+ dW\{+~< +-ƃ6ޔz*r0q]OHΗbQ *+'Q%VrmW{E0Ҕ(56_U3],Mq: tWN@+dC<8c`84:$b0"17$SڞԘ~x7Icp:zz㵡mg3,2 ¾?g{TF <#rC~tŔ%}ztԙ 0$")@bµC=fW H,dxKK>oN<-A"?^AlÑpD 2_*ʵ^R=oj翭< +SԘ~M4u* EԎc_7^9*m9NHU!Igh`+h +ӆ3}|khp-")g^ Gu~7iH Oَb)O˾5xsH!:٩5 +{gwg%Hl3"2w*Q^9E8ܕ={Nssw02[ ulb23ܑHw&҂S?g~R4\¤0ݦ5ebH=z3k`*,v% 6_NywrgK @Y}P 8+wzLSցvm|Sw߃ 5fĘS>|&;$pc+>-1xM5`E ^"O-_bn< + o /)'n$V)OSjL?nDo U!CrPSWP ,/ΰ@Edh=cO2Xx Ƙ2Kj8r8b+eSHzJ57ǶL7{ +Oo/t}/q'b]"SFy~duM6R F⪊ 8Dڠ_<+)^{n{@|6-|m = +q?db̊QaI:>Zg։7JmhhJfn$pU +q$I\ZCE6|$񲸵]F0}̔_DSԗ}3#"oG7??CH_/(D/%֔9*iX,bנ1GrGDYZ-+EBy,;n`\$цO4XL#N1+nC҈<%R\+ +LEWkU~_Gi,!㈐πtWnňR/;!d<Ѧ"+Wv_ f6'3A  +<qnbL.!G`{7v~?]'PҮoJӑn]ԺAhH+#dbfB gX'tl׎ +"+52<{gK00/Pꛁvm|ӹHVxu/pW)PsڤYS$r"ڎr0|_D[@զ$$) ((/1]3)B>CMAzZՓ@5y"+*]1%H5h>fu r닜SD1OpuD[T8+WN_]6o~ք+,K1}(OYorH+'rzwvZ񘣽$u g}\}6Kj` (c0X S dSԘVw,3FxZTA:3VfWڔQȃSmѭ Z'e?7%StŔ'Jxs(*J5E5 ++.nr1~hO ˧⚦E* ^q cJ%*׏ٍa50QoV 3ӣΉŘLk?8\ɵcBH`)HjLE΋کg#?^Lz>Ne׍E[8'9 ;=K=XD7cpq,N6g Jnޔ'u]Է9.9 fBh x{e%B z_S"z10EvN_L$ku߃`gDWkv5|25u8jԽrBxʯF;DrOFa(p`8 6wQޏQs}f?D+Brư0URhYdZ"%cV|)U;ka rFtu{];0VOFVwsxQh,8Vڱp L=}<cS)WUlM%DeSV fOT~]O ꙾ԕ <0idHxĥU&|!!W}]>) Nꛁ5M_[H r̵:Юo: .&t$O.DpC+tCG$ Yd6s:çXQYGtyL& ['os;@Dg:u7iGϳkPO]w"K +QgVLQ1 0~)cHܠ 42qj50oV +l1}}Z^`s %imtG|/31K);M_;t.Rc$>=cEL)R_tlP$WӈUӆK,n\crKO'Qy˔ ܴ\Lth1< + 7@Z&E 1f9DR)AV|V$a`N۝^۩菴'2~">(DD`8 8t3Rb{I5>b[t ,) VC K0>5g()_OL2}K2/#NKP[]) 0x-yR, B>$܁rl$]pW]gUm'S~[?X& Ψ4QRI cW4&kW+1Cj̠;J1;$Ho #6P]Yz|IL}2 + ]_A(IwC>NcF|i 4/SUټe`2 ZCXPNS=D7U'\߱6+}>RgsR]I|)ßMC K$ h7~vFLgeB.r\RG1+϶# Az| +a1?(c(C)hCpKE@.7dj1(!5_>PNjSfՎpwvtv^!FG[i($40rW;pPj"~+N,GjSցv+.G<;k'I@D(5Ǔ +G; +WΖO' ֯(׆Oڣ,Λ>lm6WRØLLu5 %m'%/Ϗ/`ЧN;I0JOc֠6yYe`cpŔ 5}pu7E!x@% ֗.RO`vt8C\UUi +&6P]w\%^s< + +zkͅ!oN|b}Yb2v} x<Ѧ +( '6 -eQ$h2s ͞(`W@sR D5PQq-`A9`6.Cgܿ}5MyRWM~5y#G֒7O*/==6]zI'^1Xh:=7J:Bx O ^;ARJ]NKB|Tj^hfG^1H}?g:^~Nhsٛ:wZM6Ecp <9h\f=b6]1[7=ӡ$3A!dWm"h_K)u(}}d^))H5L Dˁ5RoDkd! <6 ?ƛ0\Wm]S kjM!ڬ(LZ?Ӹ`iN\4m@oD$D鸎o?4 eP /)׶ d$*ʵ-P$IA%vN &jDD8L)Fꛁ5M_Ӊ91joy## Ua<8ER龗)C\q6Vi(DˮڬIASNv81> %7_שϲQF!$G+ (ՊdEg̉$I5ЇWL/րE(4(^$U7>ptTg{.jO@|e8Bb8ze"xj}=EnCV)D>Pp prK9C\UU2h 6P]|rM=pmqI IW +fVK;-OI~{ʧS_O:gP|NJF 3.l|C\L !m;qGp1=H-8D [S|jLne85z7K+ԥq{Wi'􄫮(~e'=MYY-Ay>]8 %J0EX3/~6L&hm9Lno-'(m&CnSlsHbSc[Ey85'.`$v bF3Nh($ﴲ*QM +ΗV,I*Ջ6W'Jy?X&'Dx <KA.GzazqAӵNlZʐ>pB]҃0Et<ߋ1? m݆+\|oj]"^U ΅{6/p.?Z7igb|">i䋸joczS@~jk_;Է3ޚPم ٰ90ۗN ݕSc]6 B+'ʱoCkW:J=wU=Kv<~W:Iq:w_i.ηgNéri3U[1iaHzV _[DD +:Vs40[BA +=`D9ݍ 5a =VJ3U[W'ʱ6 5{ޡ3-2\hоIZiV z*ix*x `h;VA o?ԫ|,/ojZN8-+TPǛTS{N`ӓ0rk8zk'$܃UӺS\y=t=s."yh[Ǯ@ENQPQ.$a8 (04 )_I&n?Q' )<ܥns!Ҁ?HzhR'(§Vht&-X?mm:?aյߔU'&SRN0Ċr S15hYN%@WVxW@A r]Swxo=g:L+kDzO}x r#O +# ob"kyOpǹjSƋցvm|ӉLuku4}s`<=ַ N"ƶL7{t䑖SRF*&Bla|V/ (Сcp 46h\~{MI+e+7k(3H&O> ||RK(Z~!ԘMYx?!{.q4^`A_QVۘ ՙrۡ婑n`R+{L LJ\8Qp`Yšmk3 Ssj@7g<3mBPŅ՝*=BW')i3 T"zVgoZD%h`N}߷bEԙ"'^E.'Z^pT;_O7[mz>7HS<'pŘ6Et?1[3v@P cWF:u@6u虜㙂K+yT@`s+3n&r+lt2>kf>,3MOKD? J)'umGJi^y6k.ڭ~q /Z^ }؜|,tf` ~dCoDk +ft^aRMf>rIm>k|Rn`yjP;qy2#+ƯQ|7>;Unm;#NZSfitmZЛx1vU|,dkTRAqnhTtC-P6*/ob3k`*,KRB:~\= ZOIqv`,tW?-7f߬^V +b +3N}3k:^:W'"6o5'&O\bP֊rTHؤcՠe;!_Eb]gCzb +M}9yteiL"5d^BۦH/a+Qb@!=]H}b +yL11kzYi1AsiM rD'Vc1"d47?M[@v$I);uut!A)f߼Nͤ◄WkRLXӊrvt"4qcq; 7yBW"gS[ڭL쬝&Z> q L?+0<X#3`< @fό{y=S 'є:ЎIty(#mhf7RoPwa4/+p㩭oNV|](D}Mש,7}~TT>;:{ 5ԙϽ4\dn&PQ1kHWL1VaT_r *Zm($_M'^WnVk= }_9Q/xRgۼ )?et9k&ڮF:}ntПIAk<3S-,hO24^r.ז/7Li,zÅ59pf342s^QSoŢyi%EԡMzH"lss!N)X5u݁O̅n3W>0\$p%)i5cv +Y96Ut:O??T4^>xwǟI+匥:o} *`326,mIʪ{+$FWL/dx3]@R JK,I .Hmex>Fg J:Ri>A-&~}XyS_eU( SfˁҙwBf+VARz,S-g61E܃V;c4z)T|U$vScꛁ5e,L]DC8ԗk0,s:;Z褛Օ:kYӓA9hz[[Ⱦ++Ȼ7}k@_0sĚem!cP5KH7c^h"epe5,咮&=\c5Tf?5+87k| y9\ җ#FgErYH/!U*PM.IOAOi8nR[Q\'~zNxڸz-Gk)cg!+ Yf9ܑ$F}gj)4yf]t.Rc9c.t(e%ł& +4N1h' %nM1:}j*^1Eæ[oDkBdhL$ل+!Su5)1rnV;r>zCR)kA)0}zTԙ34됊CXCsv". 2hL<:pVxWh7Ckbhaˁ>gZuH$ +I +g GBsi)SZHLd|AWL{/PHKӟĚPHKM~-vvf[y3B}scC/8TQ pGi=B!6߅W/~74)*u@6uK2J-ZU\4X 8KA[HH>+{#ѬƠ!C_[̜vz ÚMg߃f~wGSG@K|> &3RALп10E`q`K{ +O|L}37?ӊgSLkC +j h #'R-fxWIqBWƀN%0tױ17?<WL!k1c3]5/NZSfiͥt~nz&R/tEt51céV\c.C!JA- M sAk@fJkJ4BzVH&Ѿ9ŅWsgG[x-Ś;->ARWOm~KDR}9ė{`i)?*߼r {q hڭxǠcC_pL| +zSx^jk_'!طLwDB+g;U:ZH6y̦y1a-ԘA{Z x85z7KmFBT|Wk믐X>H $SYQMuMAXr͓GWUl$|(L fvVTng{uKY5f\ rTU`z ?S*d|)D,kx3ވքRƕJoqb)KkUPJZP?M@㒂H`Wj|/ڵVxqj7KdhD/n>,?42?R=8bʗ+ysJ}3n7"5X̴Vhn)bTEoy#R'5y85[/Z~QZi*M)лl{$z_?x#LZlHM$*ƴ,4uMAdr_qW vFtupVOFKyҼKq6( $Rz3 + F=1x2dEWbJ}3fF́7k(qZxrӉHI2m]"*aP೸փɩ: jy7.xƕo k:fnW 5BNǘb,@RtZ}<쭼RF K0$JhP/,:N?X$oB`R kEjƑ:Z0shtyi vXxH$ĘBhO=B2R X7">p+߰Jd¹rmxZ29gؗʶoqogC|>ӓRwp'x Lo\U^h|S(e꺁vm|SO~kf߅vRu); Jh<,kM274"_}[GWLMo,x9Fb<bv1+E<]xfNI:_x$"R :s +ᄲכ,r6I] +HxI9 +hq*-('!Ƴ~ҋ'(t)(o:C}M>iV>k)7U~\ V.)(ܿ^ G;M:4,'Vo ?U TmIX4,l{c](G|sǨ:932'x3F)[ +~1Jg禐VOSLT6!J4mJ ҉J<zɏOpߊ'G'دLjl|VZI1 ~1Y=Æa&ټSW꛾5xL|o,̉@5W:>U ӹϩUaԩ BcRc}!ep85z7K+%aZ +nsz2E7C0 P|@̅¾Z/=S$O꛾5x9F& 2H-Z9;1أ܁ dTow8ĭٷ7URb'y|ShLˁ+._v`p:KeV"o'>&NƶL7{2bVcr7dn7?TN A7,S A%τzMt=A֛"]R[HԷ3ͼR$e= Ͼx$Uce"iM‹O sGo|TXAt;) fx3^+O_yS=5Z}5T[-' Ƣ^+7k9So~&0K-H+aS0M bRbg*ѲDڠm"<wyc^&9/ԄJ#̵NX( +xd>IDq-@ +s_^1d7^j/Nz }VVhi# -ib_xX+A SDDj̀C2hS CW"mPF#m噻gU+9u#V3Ƴ0 ?k[Iv~,;AP)!5M_}mGkV? sK9ݏ_4.ڟuMS +!ڬI*iu1kizu|hYh'<\mko`Z(4e€l\V%Ѡ!5=׏K&xuMZi)D\84RXgZ>A($RbzrOByS_e[Npo=g:Lc,=9FT ^C'SU(G-Rع0KbZfЁYj@Z,~;GWLaa#<`5Z$7֎YZPHA rZNTmsuo^|,}u~ֿZBWLө[O*vbō1oFr"YQPOӌ!>Mޖ^#5hxzOnmjOײQD])&?]ejVb̎VX4.k ++H0zirFtufAi5kdj(.JM!GP<iY,࠴ZDmch?&w>J1UW[tPk*YWJmd'~8iv0u/B`,b#dP=Od2tŴ<5f@WWm*J㚞JoR+/fxsր7k>iMi9_ҿW!pJՒWiRu06 ~z־v0o0s`]2sZ[5JTrJr_d_^~<%,085WZӲ7kha5|=X/4ZrCOCFJS+~H⪊D(6P]ǿT:~o=f5JP)qO+J^TJ^HK)DP] iyj̀.NjSxR8[h5i\&Z:Kh{1zIB@gp<)cn'8kn!ꣾM(%.ax{5-N0.g*6kD@9vzu@VB|Pmac9OTk)Irxwcv:r-yjL'/DoTwi}kF3K .3 '_C.0|?)y &*7yf*wa4.=H9ܿpCH)58\])p{5Ov9)3Ԩ58oVJ%0)q," ?_RJU +WV_f|D?YoZ7:C̅zѾ\8J&:ok|V3#R3CcpI}B:Ug/[i]j̀>vNjSx.$,+ Y'S@Zjyv#_.'ݟYmxŴs/RAu= *`)JRپ,X +q ZEΩڵM6]4R:mMI7V +z>)PB.:ۊ1mL7aTP 8Qq'U+6ܿ*7kϴrJĶO͜76Wk +Di- ѵ:]REfX5/uΠfߴZe4_>mߙ^v,~?xOkX_6+f܁+??>i\hg㒪A|-?=7JᒒIZ@R״1U/ţCg*6kBC*mP|J3AF|`\?Tjh9߿Kxx+Ɠ+|dpZSzqj7Kֹ֤XoTgZE@'4P n &bZ!oMt陦N-:kZ! +'%fRKppIm4kZ*7`W8C\UYM$E;FiV fO6gB&TX9~?rY,IHm ex^?ѓK-^샄xŴ3et9kBQI-nۻFJ?YOVW45|Vg!Řrpi)k~dBwwtŴb0?$azVk4!?ڏ ' n`ڊr܄znNG6qܗHk|WӚ7kVxd?x#&y漩زu֛k5ir+Li̊smhj̀TWȘm*i'rUkkuj-B ,]Ƒٗ1Z9O9Ƶ ݕ[+1Z.zOfF?WT/+Wk!2H o1ЏTY94u5c0!OQ'=$ ?xa +iE@sp@k:3fjQW~>JW^ʞӏS.[6yJ3މohl|,.*3kȅִZ~T"{%`XH$q a_W=ߥ@P}*JJRػmo`3aooD}}zցvm|Sߦ3P%dsNF=@g@!\O]c`nG +Ř]NgtŴ.7n 4^`!IfKJдAv7%uLYD(?vҦ Ѧ8|tihzkIFi*|>V(JEqZf^rL%^1-K--8_lJ~v'J=ǓZ|j[ti_ +gmm-}#:D/U$<0\R8D$⪂¦$9D@9v'6@zu|hf~ I::ѪмIJZ ~o'K/#q +*83Ze7MV V|qj7K+mXHiߝ̋q] ~>KJ^ 7$b2i#P״ /Uz1qj50oVraNcb?tBR\GUng(˨KMf|/iU]~ט`훥Pmqݪ<ܡdT\H%~>KJT!JJ`f&&\+"M֛4vzC-s37\ +KezExI9|M5G*֚@}M7$6yZUkIi />W\ٸE;fg9n8spŴ-ux'97҅[<}9~I~0(!]x<ǧNB!sleQ d /)Gr o/|cZ—*;|15o^MZ1KܞOރ%VI-RS!>-JHJ@+wKMWLRc8M^S6d]ii^Pjx>quHIku7jmJsTTpIy~򕯞 lK~=z˴:+@_[ؾv`]2IFN=ԗhₜYO$wmsߘ~\iB*ĘcSyTnLb&XZH*|3obH+H2 +3.)WJ[g˝R2^cx!ڬI򦉴AV&loD+|N{,s.l̥Hr*,(1_^1J`0_+NMj!/"(70R4OO(ݕ;tOjԘ~kjx<ѦNe"_|IⱭDw$HjqH9>ne|EtdC3\}z;'!D¡绹[[<'~H +;.)ff/uMRl$~đ3U[5IR6ַiyl+Clm(҄C}ߵo֓c,muczK-T&\Noʩd@VgezBցv Fط3zgr L}><ߌP3ό%- _32lӂܘnOY$A3i}vOz՚S l!N"5m(JO9u2/D|)%BCiQ\?BߑLWlɁ&ʑ6ZrMZAH!٭l-Ǭe/2Hn*83Z4ꚖI hSV|qj50oV[٩.j[wńa"Hx){DeH"Qʞ*iy|B|y<xodr훥߹LKbPHi +k7 T(OB`.)_Yextlhs=Q 2-&J}7As!d5e {pk_:SO c%5&oLCD{!xbZNnQ=GEL L@9r: I|tu̩*рdxƤsb2%%* +i 2 exF0^!Cmcv $V[kL%!9qo$5(|\afp:u*ƷrYfT״\(WTD3Ԩ58oV|Y(>$V<k/ʵc +Wm֗Sڴdo`+q&vm|S_vCLdiѩǺߍ/-< '1)|aDeꚖSDb qUfM\K Roy̡2 ͞Syڝ tNpJa%. o kZ +P71j3U[@Qr:ALL"E̬h7Dy0SBKKE=2 T1z~q/7)$~+9QKՒk2??6oԔ:?yHWL+lr_:o͎WFa8s^ K|:.)P0}` +_LG0aoVk7Ap'dCSV׺  +8oSoR ΂sI\755 qUjMQe4캝Ջ8v\_RHu<}NY^ h搨ʣDZ=U?<W_m{֮v0Da&&yScKr3d-. %*M((' wl ~Z ~VRtnGEW뷃oҊ5o:Z,Ity3ZR<qL!T,lsqyI͋;kWL 3ri7? +\ +j퍓 EgzY֪R秱i)E˾5uR _+rwj4: \)1Z OseFnLq-o8hS͊%yM m{RF@ʒ8ǚxON $ TqԌY`#:%;&Z #PP)VbC[*ȕ$wEtpw{=sڱ@u-LN>ǎi,NW(@+[WLB*ʭNkYD(r er}0fpw=WMٌc߁7dcww IxI9NH**ʵBW;鲸]p^'67jӺ֮v0Da&N^M7Tfo*gJ +p.!7,m{OVR Y^iYE5;<^:Ӄ1%ο33yWܼ_W _AI:<4^r&HՁa{|߷~yJv>:s>*Ά-bȏ%> Дt5Jw| p4yӇG64들H"mYVMHmCoDimD4apϷ8?>$]-oOyon*y}pI=A,|9s +7-mjvz)q~Iw>T5HZm?ҟ0sa*I:'?tjp{[sLxsz֐7514\)Y(j5R\IH+4A%ij 'U'~'uN&`00^r|}+.)_̩kEk|{ HJ𛅗Bn/<>91+gO &CШ_}&mk7SL)?^~ N + F Z\Iwl0s]IN ^1&}ٵ5/uNFbfYw/ MI{> |Z7=E#xNBPJ`+hx*ߘ.%O宄5=! +"h9Je =? 89:`RP|mE6|MmWQ|[qy$1d@bV?jv\[QYP;wuߚx/$JJ9G 5ś 뼤xA+iJ97[g%.G҇1JBVz"ٶVcOga6/5 )Ib̺KMWL1ݠJ<^`.鷇۷nTpėS6I"4A lm֘&Rs+oD[x`8Io󪉁< ͞\h&![X_ĦB.M" vl=hyDi4Ld+yܗ}kKӷX/):\wIg^C>ɺ&ȳTy4Ug 'YWZѕ&{}|ӷfJ́7k4rgmďir4s)5X86If1w#`if2Wl>;6q+dVI:ַ͏yV fO+&!(V&§KX?R,WX qUV~HX0W]¯T/@WxE!\"$'( ׿ + (dt*ʵᓄP3JWq͟0;H?8PX4JB0J-n2ZgC)C|{/L˾5RoDkB9tδ.yD-$EK 'N Ir I +%^ ,Ώ?Ps[^CtiF';i"0`]򚄘GKbCov-i] V6/m`}U™0|'-1d/ np4Ȝ/le@W5!B4֎|߬b^lը)1^RQnE=1Vs^r~ʆhүBׄv0su}4Tދtb՗\0(אָ3o)gE I@y68WB1_nqj^_ݷUTiFzbEZb|E U6BBGdQ2 -"yP IHmhg *EF$LtB( 13VV퓛shW}.gRW{*痆Ownx~};#тA/jetB +{tA)@m-8 Lvvs3t6|3qś8o7޸b>.KV084륩b +ԑy}`mAGY8uIdNH5- I*s$FuVaZ++CٙWgEy!4ݴ ^JAO6>mc_sJ[IfG)ШqeZ .9wz]^9NHEaE ,Aڰ}[Ew[]]}& +}g=Z٬ΌX -oM{Vǥu[zqJ$=u jϾS.bE*Ιiϼ゛6x +bHN |rJptE^( +wW3|=b:ᥙ1n-]u#!xf<oF-|qJr͇[Yix[r2"<8en-7r|o,ކ__F͛z^P˶eǑ}=ax +~qVWz^33 K/ .Iw{VǥuO{̳e1}pc0ef ^ء.w@.uXYCpqN[@[ڝ#~ξN mw]&ֵۨh=ǀtCǬ<%Jϋ.X7څpunO ݬu{oGp~u`1W:6t@2P~!=/ +ֱaПĭMze.g]quBkC+]iCm?W_wO{jJA`'eqtP ߼9V3aؐs6 DME=OrzS:˜gq~ifggƟ+[gm+v,m|paZbKEojǾCSA>,޼7^p%#C׾ӨٛF(ƙmi?lyJ t=g/ &S۩q}[S޹qi UoUk5[mMz`#U1h;ĴS>!Mg4d»3wk]<0iR-^c=26 TPͪm|o`=%A5;[Gʝoԕ+7JOxc/o%!-y;$?D1E7!I^Bϙ( wi!Pgg[WW55[1eMEU}v8"g +jS:yy>h 1잙ܶ}w .p浑>r6QzJL7[㠟K1 պx٩Xmo58u7𪇗t*=bs+_Ep:ûKwn!zsؘ;XMC-eDԟ7놦4\KⱢ+HRG%7RWc v<6]528uF9*^/)L x/8M=d +׿%5{]I:A:06;Lpqoövk`h46IQ_UZZ;Y ?|]P4|7k$OroS.9T|"L7hpZ';ET IPϛztdoNƧޢaB=I c{<7dF%Ⱦ5)vCg6{Mb"No /@wqko BFC^݄-Wؘ +{Atxi8UP}.V7լ#p#WDA4upv 0:N.U'js~' UA/J@ ^8A1WxyWuheKlOSDZm8u3.}uƵ?(s/>uf8_79gD-|; /z|hMfw'zN8[}7}:=vnS{۠ϊc&C+}ԂO7h3&(SC6T幧ݞӖAUsû0#sngȓD%DWxP)-k܃Tuڃq3?j ɳXmrdgRP%ѹi\]^ /Ï~у/ӏ+[?f`?} qtb>k_c9dQ9ΞAG唩\o'kʁ?oʁK'O:j`%L#? xb(fͲ;֐!LΨ`pFӇ3y><L<L<LJg&sL>bpPLN!>"epÙ g2}8sP1%g1Δjg)!Ԟehwٲ8hc0SaH\  'ѺAN0AN3AN"z "r"xF9E9E9 & rX: rp:r=LAuqu$˜0)0)OAN bE ) Ѩe hf '̈́AΕ)AN +SD DH9[DN9& rL&riM\"M$0ȹ2E4J I6aseh$7aseh7aseh7A(p p 'AΕ)AN +SD D9WF9J' rLV'rN<"$Jv%ITB#ڙzυwZ1 5tSVh`a8|g/:s׫\;4$Z1=h{@L!!LTc&1Ss1 gjRr39fP33AxL 0L!!L c&1Sj1 ^jr.9fԘ)3 @c&X@'C"!̏!PccɐH_1S^1dH.Ԙ)$.r2jr 9 + 1f +9f~ d3X3?NDBBB'C"G!̏!cɐN1SN1dHD&Ԙ)%q2$jbr8 5f +9f~ \3P3CNBBBBϝ)H. y!oY9e== f>tquרY K/.`ϥ/.t+7-!pS7. p7 !pS7ɉ-!pS7 +ij bW)T䔖)Sb7Ig b')Qd)PbId b)v 'CsK4gMrJ$MrjJxH!Hd~XS1C{9jЊoN\5o< +$@O^9sʁ}#8-潇M0Mn&УQSI1)ez29ja =j05ELFC"@GM&УQSId0)bz!19j =jp5"r$z QS,G͑šУ]Q]Qsdqh.Id.984r$z,Yq 9ji =j,55GFBDB#C#e!GM"dG͑šУXQsdqh+I+984r$zY +9j +=j,T5P5GFBDB%C"O!GM"NGhaJQ7”"2"aʷ^f]ĕ{7qݻ.[4xj\9P`˖P_w9ƯI{Mܩ0I)aSaSAU   'AN,AN0@N#` "p"xD9E9E 9% r: r:rKu$ 'AN\" r%aseh0aseh0Aa шb 'ƄAΕ)AN" -SD" D09[D89x& rL&r!M\"AM$0ȹ2E40ȹ2E4"0ȹ2E4b I7aseh7Ao шp 'AΕ)AN" +SD# D9[D9X' rLv4J%F3 b{K#yPQKϹvHK]䧴OtOzza5=h4@4AM &MȡM8Ӄ&AHpAD drz1=h4Ȇ4A,L &MM҃&X!ABFC`]=h%5$z  9h + =hd 24(4CD +CBC#YC}!M!{͑P&ѹЃfH֐[AS[A3$kH,),5$z  +=hd V4L4CDBBB!YCF!M!D͐!PЃfH֐MASHMAs$k(&)%PJQR 10+L@f{Oj· >Dc~2k#15ZD3τK: Nr +L6N_C$GN[C5NrK[5NSC4NOC4NrK4NGC$ǾNCC4NrK3Ng$NgxΔ9%pQ/!8SB朗Iy )!DsK$gΕ"9%p^J8.A3%hv h B4NrKL !S]gJќ8SBDIt )!DsK$Δ9%p\gJ89.A3%hNq  B$GNrK,!QtQJmnZ=Ys{ f {hٲG߶ Mң/Rb`EZYt=/piI6`S`SDIT6`SD`SI5`S`SDi5`SD`SI45`S`SDI4`SD`SIt4`S`S,M bD%fI(gfIШfahffIeaefI(eadIhda(dIcahcfIbabfI(baafIhafI`fIh`a(`fIШ_ah_fI^a^fI(^a]fIh]a(]I\ah\f@%}Ky]DoW_?=恖ge˞wfQ?ؒ'#y;'x;'X;F6KzfI>C,#;aI>V+9W#Ĕųϻjzyd?Ԃ}vAui>; :4Xj:g4>; :4LjPC͑1}vS,QC͑1|~98F5Ghe>;Ԃ#ctPsdq*j,C-Y8%#Y8%X8#cPsdq#cPsdq j,C͑1|~98FuƑ1{~98F|5GH١Y#燚#cdPsdqjɒő,YɒQ,YŒQY燚#cPsdqҞj,ٳCpdqʞJdeQ܍>bu˖pM;hylPBw˖/3'^o3/X=xB{ȵ؞)TrE^y"{SO3E>ZjA>OZy |ȵ@),X) +}ȵp);Ԓ%#Y8%X8%88F5G=?Y#g:=ԕ>OTލ>O©K/ʁ_y`&{f.Y{Z4]2Ξ%p- ^Yך{SV>Z`pj>KZxr|"'éu4' }F'é,k>OL !2%@8SB<3%@8SB<3%@`J'pygJğ%pɕ\ !ɕR\ !ŕRL !Δ?K1SB )!;ΔxgJ<3%`o38SB )!.BgOL !9'pJIJ)J)l*8SB )! ΔmXOB5 `Ukv? !J L{n~j"*ê?kJy=vYNUqީBXsw>~NdG/y"ϑ|gpwY;_3,׭l,tXmc(UtI꥟'Yɋ_\l-3?on9k;nK1]OLMHlf&{6aNC[&_|ϟ_W_ol|V/o躾!HjSxҬW\4^r!W͸K6nyK6鿛_/4G^xeՋn܃Wϝ^umݫ||qڰ׺ +U*d@^^4rSUcF<5ͣ4O+U5͑'6ضx}-{/s\d;˄:;$^̈́#[.Gvs\؍={ߚQc\ףLyꕍ+~sػc߹zےI.fS'͚qɋK>{uQ_tZyKeDdFR+2N^犿߷c~Ph;vrzђwͻ-/Y'n};}Ξd]o=`G=xx~׽ll~?>aNgxӟZw/;=э?Qwoo]w[vds_[zѯ=_[>:?+^XOv̓^W{~{m=fC#X,z}OoӔ?׎~S $Op[Wwx[s;ԡE'\>e'eYi<=MW~~\?\Թm;ol|WXx8|7μ`]݊7ࢷyxVwOmWM;M4}Ëz$"4BqUGEUv9ˢ2TH;f?CDZGb~!1?א=jHZ[HL\CjD^vӎ/~o3%ՋfGҟuW_h-ٻsH/qGE}E5qkwCϿ__}κm=m#g92|SFy?ȷ~^۩˻²󜾽O_.Yeka+/?[<|FpbFoGNMGeiFߦ nru7U6n`~|K:g~認cO|kFve3HǁiL 1]GmS.y6]WAKW⭟ ?NNGq~n{˫'7O[/>k|G{dƢGfD}pxd\ڞ#WΞw`޴-ۮݫf»7?ѷt\:S .̣ͯ:|>wp>8 /<ʱ{o~[W6[[Nmn:zu~X?mw}v㗏޻k'ų]hY-;c~r~6z+M7s5bZ476涩S#/U~ЌO9;AZw"r@gq+3cY$g_L˕,刹r W`ss2 bI8*Iy=ù&I8B/vKe7*///j[nd$%W)LBT +⤈ʋ*9pK]TV% (7ONU0 7?ݞ"ɪ=EdK 2ťBض8W*(lYWWMP@Qeonk I@L(Z ^ϫ&*:Uұ4USe]].k;R^,Uck +ӭUB>V7^Y&~I%* +77lns*L'+]>.Z N[b]s֧B'm[tJ3[=FJԶ޿? tqƥ#͗X\4Ikk +͛;Wu+de[;:kk +ӝ.[-&"CUY:YytUc >.vav 8#jYvŪtl0K_e‘VeeRnqdk ++_ ´.UGLj#.tRV9Pv%#Uaz~Zo@y.jQVC˞ ӓ2jY":We;rzQ՝Fe }-BazCǷe"uj4t*[O e0T0}yT]>i^!sijZHVoVR(Gآ0 .u^ Xt/$IUҸDUc ez BN溗ewIUduqYij)L'5\%)Lne&ib/VDMq +$*L"7+) jI0)Ik {I0/Vkr/]0B1{I8qo@ne&ic5’ne&iԇ)L"7ւNat% Ϧ-\HMY 7U܄sSn?+ǧne&i*LFY +S *LP^-,N ­$uFPX7@HIk - j%L骪)0ul~9|d/؜P UeztZ mKۃ 'cWۃ*_(==V:D@QG2E\/ (B2Fij=I[U~ȚerQnoυ-eT~ ť +64s#*S%9oί"c4",rb*_(?U-voV~V/"PH ||*jOg(Dʷ+b=T6_߾oX#X?߆oHTۃxKU1z\#o .70ڷPϯwOÕ lI[?3 }\n}Ts ҵ0st!ߵ@*ثۛoze_fPC>yC|^XCc/]ˠɷ4\o?A/z[Ѵ"5!MrpU Vi\T6sRh%)*=Vmf.#;ՎjI(*&^/i\3F0$ۣ\?6)/*̱5sRLU! \WA^ҙ|-[IL6{I0wSLL6{I0[:VY=α + RV6{I[ [I)553@) +S.^)LON8VRB:pPK&+>A=Ĩ(gD֓..tf1LɊN8|SvҺ^ΗC +S * K:so kM/7\%„㗎[Y+YY @mr#Š̭kDS2A7$+{] e[LL6{I0!7Bndem.BmaETYLD=n?-YL@YKQz*H\I"62EU%Q=7_"5 *LX5W$iTKV B^RfXa'5$\\%fA$UU:Hڪb/LVA@(UaJpt ˜Ft+3Ik&Pꉇ 2pD)Ȑt%„Dn.Uapt +D&c&$5\%¤.LNJ8ism*YTMK(-&Q{I ZCK.#C9vrq HEFMZ(OeI2G ٚbxLVdZ{*[X]*$+kst +K &2^֚i/0T븿LZ(I4xx LhZ1MULn~:d辩LI%QL}Hf2 ;Us%f<؆t! Ves&% $9Vt r=QW*| *\5\dЊ&Dn $#|A\s½0I(N{`Vr>Py/pGk B" 2RY $!OQ &hk AY+20r DZIkTȇB L.6V2f`rB> `rr\ў- uɅ m@fz*r 400: 23i@.6"|Ĭzy|F@gPs Z "E5j\@V*2J L,l j%2F5A|ЌkP|E\HwgrE p $u d*AF r#y1Z UYQ@.2Hb `]Ee`ryi|0A cjfWMwq%UjF\F J2(sG .FtM%vp(R cŊ)QRojNXY&7~"P U0q@rg27`[= Nva(? O8Ih 5(Nڹ͖K$I;6AA닠-ES׮L8?AIp. 7p6g,Ǖp+(9 -2^,2ͰmKI;=[#Õh X9Q^gf6%$r LDnMh{q䮈kf6%$r21ZWʊ>!1z!P?3p6YQ~Vʊ5R!En}~fr3lm3g$M209Pj3rLnm3\M&6ĕB9j36)L͌mKIYk3`-2+S z6nBdLgSF2%d?2Oʏ,@*%E`/CE ۦ7fH2T.UPdIB'6Mq60qz TP8P~d(m2Y,QŸX634NQ}d&7ö).&Z%Y"KpeIv,"E&Ѹf6%$r S!Õ%ݾ7a[d.]ͰmKI!_rR\Y|0ЭO#LnmS\M~l{/3Ucx'UeVIx[ڋapPMnmJ}eEp^X%mi/ABmahY63T"Qev@mfrSl[AiU2Y5cr,P_\63)PjHLʄynBX 3jŶSM"7 2Wez@s.ܑL+7Ŷ .&py"+peEP&#.ܑL+7Ŷ .&#*/ޢ@_ EK ZmKa w'$~J܄@:EfrSlmE؆MQ?IE[·OE D -2Mp6rFLۧjBu.OMmKI"~VD"JF*&#f[)Mp6.;Ϝra{JJu;i&6%W 2!2 +3ܫ&:DǙ&6%ۤ|dI,Q%jX6 @mfrlm2YR6KpeI,P%<,Lnmc\M6KE"n[AIq&R d2AȤ oƸdDnd*Bpei m2C S+d)oƸdDny W K'Q?3 q6Y[c2iYr`I2܄E6MmK^L1F D5QF( tqg`l 4 Yfa+׺}&vqMmK^@m&pe"Gm&2f'Lnmc\MZi"+peP +/O&6%$r 3jdx=\N*7ƶ.Q׻O&4Cj^1wG/2FnqLׄp6vfz+d-f2@+ +Yڤn8NV1pV•)| gix.L%Lnm#\M +dF2'ޤ!)-I;3LȐem2@PeҐyDEpX;SߟmKI䆙3~&c\˕<`)!S jFdDnf绫ʪ)Iƪ Pڤk6%ۤqÝOa.PefWA1cCtqdZ1p6dfW!Kj$36I3YT%F*"7BϜ2K11fo;H-?K?MwXIeڞ½owN_:i~u\n:].bE7ыj67]}ёIw677?ɍ7mn^<؆.Y7ŷynxv>)v[`5z0TX.zrw +m0pt +#<0=r +3\%;?~(OZZc*Zұ_w&m+}0Y.ܡ_EWqj>+ nƔ}&}vRo8rͳώoYӼj#>v<}~p9O~g-dz7m9N{xѭ/oY` 'El^=GKoY<1't*zTbw4IZ2=J*GՒ1`0QVR=mq-(;Cn *hF7FW;OܫK/=~wgIgc8xfBjo6_}߰2z;[9rn3V;rw ?k&vvҳN6}enR/qr. [Mq6 fͦϷzKIURUkb[~& RM-q-K.K, ! +3Om >iJ}=*Ǜz0ii/irpnx~}eG2Px?2+ۭN+]*+8a=DӤbNgE:^Tq$JI8úU\;ȫˑFylûiG9z)l[Q}2-ȅF(v'H}p y P6uȇܴGH=?wٟK&yҝDKhRZ})Vnwڝ0vs4瀃K_\卨n.ONS/qU#yYï~/{e.[ 6{iۂcFX1e +endstream endobj 499 0 obj <> endobj 528 0 obj <>/Filter /CCITTFaxDecode /Height 132 /ImageMask true /Subtype /Image /Width 280 /Length 649 >> +stream +&Zr dr8W j `4Gql2e .2nA@-<a 82Ni 6 a/!G Y5F6`J; 4s> +h,6e030:h/ il4 0 Bb!9X~Y1ۯ1_9 q᭢ qb(Ɵ"ˏ`~0-v]^ۿ}={"'C\=ZA|Cb~ޖCD=t/NZW2ǯb+!(Mxaađ_tj\f`v.6~!'QG5d8:A {.%C +;Loo[0mz;oI}G]um[d,?pp'm\o%0Q؂#m +XƄʯvȰc4ܝ˅_0b|AmEXd3m_0V\"ý[/ih-#c~WK'inp!ÿkKi-Ab7Wۻ jhaB +€ +endstream endobj 527 0 obj <> +stream +xIC"|rv<'  l,[*:Lڎ@WM'#MUGB=WLgz@ ڈ{ zAe:Ce@rV!V]ψ +삆POF$iDXzN  {:bD`F$fD`q@.#F@gkr|t`F$8 +endstream endobj 529 0 obj [/Indexed /DeviceRGB 15 ()] endobj 526 0 obj <>/Filter /FlateDecode /Height 352 /Subtype /Image /Width 1920 /Length 58553 >> +stream +x ,W}UЕteё$#/=!$ΘqfyAX1 +++`l8@l1F&,;F dV0Hƀx\]I-ttUُ]U}讣>տ )*:uvU+;vѣNQVy⫗xғ;8xRxA,;B\q|jd0A,dݡ<2L6t^'έz~vX2{ЛCzW;G/W/7~;yqSxnjVM@0I=zw)l2<}/YmQ!nlrav#Kw25>2ۊaG>c]D^U#S~@^@੟^֨`#@3KshrT`7#(}ٷj\ /I`ZMdI,tlw%EZGn?,;0@HT +ϸhXiEP;h4J`5X2b+ξKm[@ O$)S' F!6rg4p60C}\?A QXN l`mj6znrTׅ2GY kYkromQ/2maeXfО-vwTd9nI2js[gncw<=ǮF 4, ~ ݅@][gX $|\gY: ~kױ[2jg= c_YetGk&fG҆BsN@ۇX@ )@za=W@3'biz\B1^l$ FvÝ0~`ڙ0YJsڦ9u'Jrs3]h:KX4`[–  w +E.:V72d[Ȭ9솺9 >G&tIBW@tian[ޕ_ UB3Z;h)x/-2£HH?+N:u^NuL1r@Nfa~|Ata"hNMG Rh>$s l,J`݅CF>&-L[9 mQ./I3B] &^J@;f_ɨ"oamh`P + u!l J`3LZL@L6nHQkL3h˖>mjzUģm/<h`S~_X̄p(bg*yL +%.z].*i;9K ,>wB=`M[]s87Wai #VLie 0;h&6?_޳ 8KX/)[XȣKYmot(,fA Xo`0ZAzLɯX'h6W?40N`*hZ\s]yeXaU^OR + kFFU+SQj'O~m9{4~a +4`=z  ړ~&>Q4X#UnjV+iha"oXB^֨`@V%z]=F="~i("04`P 2~\B!)PQ*U13$<x/ቶG(h`}NMxU@3`\v]yeh`}Q + mu"K{F'bh8y{G 5uf?>3!4<&/A@"uN ls^~)m s +6znrTU>zb'~#gBE h%C ~_oXx]>Rh`T3Z4\(y;x'Gߧn,څc ЏWn"6`0'NlhRr  ڒg.xq{Y,pޚ̬H񄽡ߟ@m8Ƣdi/@W[o0mcguPŏ"6)PQ`@A3FO~o2uPXN{׋}ى[Eetr<( 63efj8>pvh`SS~? ܅glEQ 7xW_?ĝXD퇁$ۍ8 &&Iae{j(5T9'6 +4`~vvgLM3ఢo`6t^LSh.$Ņ{gNnL <žZ6BgAjw}~?u +?>3!u64(y,U^݈Hľb_qN_ {Q :~\څ# NύBYVvҙmYinO|DXkU'ս^owwpsiѣY}mrT 3};]K<ݗ,0H*M IڡM_g'.߃zAyzN+uF͌g?]64`:JM>zVOWGLI~ l=JM +oCBwN=FIr}znp_Xt8[-pur7Cm^ $7Zsvv_;s`cs )F`P Xe}$Gv>:bpfD^< +uX,E@gQ@;%nU7O{ |;d;"V4lu:g49*\xy'Fyٱ<*XFgjͲZ‹}i's\KQRli/ qH +:h)\;<4[Rh6%5rcY[(Ӗ,uʒ c(кa9ri|G., :?f2$4l``=Wtl&G/^6zf +`JnsLچT@ABAF6%5%:#3Fós{=wZ8s:rGEJ9`QjJ,~&t'qgIl: .LXe?:e=f&R`"  ڂQ*}p;\ cnD~4kGtcnԥ{>8/>L`.!F & ~GcZ5\PR^֨l*hX.J<+Wϑ/WASyvVXj@ gB-x[y愁Rh5@c`YԒXM# O0ZnxRй&S;j1ePXf?}l..Z)+^E 59DnNw#vc' z*BTKoΓa ;}[dNYn-ϼ3B޳4f0FU+8Q‡~5z^{/}ei}Љ;,+טV\DjoꈲKZ=A>0ާ`@(<(JX\x[cqC&;2gkInI:DW+,#ۛmlzj8ctƤ/:h@̄ h_\<0Ὧx/u:~iwZf]I-xƨ'Flfۃ? +jQ1>x;W 0Nf#A Jh^;FVi; +pdvRξ!NWH + ihs#+r{ݑ ,kNUnW'Dݛ>ې]{a;S{B0.407hH.υ3*:zk` ?PHYdUƞ,5wdfr2Ab@ MˎdԈp[ +I:냒s- z<z~Ϩ6B( u҄ {&vU;Ubh=,Ԟɩ +65; yX +Y9\G{zt:Ēᴊ+?:s[s_6)2JdԎRh3"Ef)yl e*@ (y-̵pvKLSo_|9t?dFiZOxG{JwBd?~hˆc+xPquKjUԓ ,s@ۆ?@dL0@[fQmቛgx|6n w,tvkV2MѹÕ6aidh\Rh l%ϞP%n..4nʮhǜHu R7x-vw/cЧ@3h4B3mU8+Q+[?FM<ӽs|ͫv8h~wrshrTlZ3[s + хhwHѹ @%W_"{tRyv<;%֎,x@XW`0x7Kw%SXƞr BNQmhl!hn߼-h2s׳;kb@.'NVKLw:VUV!$VM/ne?x$&?ַ}kyWoFAǦs5h)x1u=cH;6MhNX5{TУ&CQwm66qߪ~^WHe%Px+v<Ж*<_~Mu5f]/NNA5*gv6Uh4R ݻ́Ù|:7T`Z59;t'w$! E3mWa(φx󾯖C~^r +7)ܬ9^:`m!&ΖUcHzwL}d&VЅvox]ȩ:Nj]=@{էnjV`#q XM6xJ=fgj.<_:rxy?JU= +u& MHMbDZ\a uНmkmˊz|o.عޕ5 x0 /`@[gڲNƒ?8isbcK+W7ͣK6t\hT^Zj]P\яurmPK g8뺪{WY +)h`+b+\:W/Omf[ghj:>E?|{7,@%%allϥ56k.tۘÖZ]]2>e7O1SFa[Rh`u@l,* +C`q Xfej#Q zYʟA>|ܛ\2`P + ҹzD0^\X!VlW +C8|ko$zzv6}67}W"hKi؟Jm$JPss +<$̵0s~]zգ}w~/"$&nvq?\p&4oڪ +.p 4Ц-%y&7pWGy#&:tZp>/8 ̎c/o *"Ѐa@M/ma-Kd"&l%Î$!\f?bɤ\ZRp#v6x!|tVK~^|9ivTH3j?/.@(y-\-%?(-zڏm};fqdJ^ m1ަ̖J#*Q '>J-&cϞ%uö7W3<; 7pAvww7afq 4Z@~E`$ +8D8ovԻ \˨#.Qq 3[68Z +?LKu Z?NǙ$cteuX_eIu@Bϱ8zŻj?&߰Ӆ#SzI5q X4tLmD3Gy}# &Q@no|rD|-=?,͠ej@g)6qCCJ "2.Um%up2 + 6hWE@B3mUxvG_ؗ,(Jg9b.6>;"^/!dIp9ITV -îWfisCR$|#7±"\*[VZB 4( 9C ,nNg5\Pۡ5Ow- Gzq 4Ph ";ٽnc貍n֡c@?Y@7Pm` |u9p$߆EöQ tY>m[>z{3,z8v2F t6 ^G +qŻ?Щpdԯ>W"jFa@[~$hpChSoj6g;/MBql: u n'2Uҳ+hT,Oޅw&::nrDAGAFDZ gkm5@{PWp 40x @(ymzRH]wi$6z,mCۺIj7 +cV4'an!NmsR%=_dlwAwgsLj"DHlx[6>tt} I V@/Z\C=Z:A7`@FԯV&h7g4sYJ9`k.Yh%R}V$H@O*v XM%t-nN +'ʰ"&{MDԹډQAt)m1[8Y6c[ =~Ż&?{>Cm"띿L6 [`Hqhx04[c4ozh s-,I6f4/W7WwZhO/XrĴUńVN|fIVSCg{iZm,Mf6umv,hAp9 %vҰ{JȞk1Iv_]PG9_^ߚ[Ӧ[L5Lwj#z[v=cj#m45JN6 |ޟv+̇) +#) %YYhղxvjzjB9;tGNxful$>;2v_)^=sqBx-(.U9e{{{Pxޖ@S @[k }@/6:ٷI<8Yfu;i?Nh[m2_۹"Ɉfa:xc#c&:g=F4;Ii0WKYúȏ:t+\-:Zq67 +wzP P@ھ\䄇l ZhRnZMn-y|h2eI0ˇv>dW&"eCP+DO xFi[g)NEZm[e5vj>M7A +n#MC0\\Xo5Д<^k]mT sۚ Khu){&LDgi)t4B 釗D;g*vcz“caf1qg=?/3)se %]q'7L5:z\V!z%V{ Lm@(ynQt&?铣f:~˅ouq;Y_0mtݡMmv< +"2zGgtVI=c Q{;.cs-&]3̺pZ h +Wnb+«p⏾xy;:@r8Ve: c?im9dFXu4f m/i{ +xXXpGϏ._,m!ЀӞcF+CF6_=F< ̵@Sw+.m$fyBVжXߌbύ.ZdfzY4 ?jbj!af tԄqR"mL"!ͨEm@vJWf *k]O*OZtUmk$zqiRC4ᝇ=t %5|3 -ѶK&fi`0P,ƃ!ԅ+^ZXo3м-SZP/^ڟwƏ^ :EorZ VE֧~l +eUݓe'r&7Jhۂclo/k8 =4(>ra4}ެF-pfd,Vu%:50 hU ;pTXohJh^'n](v^-8UQ*K/^7+yvŏ"畇J.|F6Ʒ6*W׶zgwzZ.] .ᴃ`@C5<:3< .Pg~ f_'<&Gu(s?[Y BOwLɠQZ ̟zz.]<4QXt!ejӧOѣG ZrAFw<=ozQYICmuC;XatQ6;" xa@c14ؘg|ݟ]bx;jJX!lsL?o69ͲT. 1{c_;ko[a}{jٕ{{j h:Oo@vfZX s%`AZ֫9~dH.xMy72Up JgeˋȢgU-W}@./M$0;V@ou}|ۗx/v^\+յjE h@UlvwwG-84e9&A'Ng8~Wu`PXf%gHrԷl?D; ͔I!yq^%V7ײ+qOeW`@35Ev9_hk#mxg;kU[3eWN~(tvKJ@!y~_;_&bXD!&$$֕.G'bFK_<׽sY㏾] .! :;f2$`*h4ީ6<_|<]3^۵]Wn܈c?ZhU6R{ (;/]{7:E5tؑjmoOZamեl ns 8PK:ppOz6JY/c[R1Y6_]f#_?4š'!Tߞsx?P + Bujy'xX_Xf>K -,y.~湲3)0ѤtfLExQ_m< w0JOa1[M +:6OvWj+<l+NK'T@%N\^L:0!˞@/޽:lsv? +Փig[}_o5Pнw4@`.=hԯ7ZA\z>x.oޮoL,}P`ZD,:"κnY^>^nj%a`mgu:ΦԳ{ЦlYgQoFjaiFe1nډku>;cd_By]17WgOIoۜ=y\_' +hZ3;w(qw4+^XeШM+S@Q}Uϭtrg؉; dϒk~X`pk&: Oft]ۚKs'OQhHgB=iv^ʺz7e/5A'<. +B\[@g̵:DdI]h3o ls^s0i +hD&mŵz}iC`+~Z}o;\}CNoI V4j^h[\ k*&l7ve;0 +tK? l ]YM߶IL.4`;xw#',~ko-t FɤmDXͣgk=y'=f& xooF'?n鉤4}gjIV :ZE':3gڔ6wEumWVuУ|M%IkC,vhxq;Gꆴ{U.ElgBeV5@;z|CچI\|k>zʿ3=wKnQ_kؒUz̶<\ª!NumgA>EY'f\p*y{m1c]Z;ǃ y}}#kf ~?~kww5*l!hduJ oe_WPI1Oa +mݗ#v2-ucꠣ8ʥve+;?Kw伲;JKꝳ*i"KB$MSڒvR6=:Y' *Z_ݖbTv5]>]HZZ'S/kS<ӱ6FnBE[wU|VFY N~(mYr. _ʼW7IŮp˜L֝0-CXyRMۖʅڏuuFھYCgD>n6t +\S^im)ӣx״rN6 "ƨ U X1]3y\c7::߅C8IO!:~Gslqʄzx+㟜(KoYF! Pg~RJ4E54`ؗ઒gĵ~weMQug\YxsagtźRIJlVC'JLRڴ'کnٮ~V:.ς4/M립zR;mOpqf]yJ\$~<":/wi۔#:}?om|3.6"Ѐʐ,S&GhZXӹHc jPxZ@W];֯*u뉤rVF5!o.vMH +yt2]MxIoyyt:?&[|/q2g9l}۠CwR-;۝8c"ft hU3~kwww"2議I%+Љ~=mq;gTi_1JXǸ6Y]s@+\ɳ$tmbCCdo,L1H!Ukf=D63zjd#Ǩ: 5K +ja'Pj,V +_F{/^ggkÊ` XSVNSQ 7uju/4`5QܤoXk>[esnsDrI-ݡZAy'/pfGG gۖqw;YΩweΞжPqVʺI!O?rc\zgP + Bu)+A؊jUxu@Q*~/:Ǥ#ެ)GUGB}+0g|X[FW-?{/tgKlg[nZmN0^ZhOpt#>ǬquK]! P~0 9}ł7ͶMmD XSK=SF24OAc(ut?v eFy)3x3 oꔀdͥгzB{x;ߟ=ܶ.Ƕs*G5*uvZo$9޹ҷ{CUUN/̍zCl| u᧟Qק Ey~v['67wi1bnK;r?X|S $aV쥕Yg[ۤ}mqkѮ0K} +vSpMumQ + w=72%=QmVoXkхЊ V@ϝϝ\&-Ygie@gM9 {>w?J5lo`d#", У.jkK 򫿫?5O+E[ 網Υlې4WCz]=ܶΚr +M<ZO?0fv+9aAՋQSo6m &U]ڤX6Û^4IEg0l\ kЖ8zmporMl6bFܧ4P⪷/@=|)Gܼ,v>򒏨ÿzx2ʱqzD'HϏ~sћ55E)4P +@Y>%pwZ6гtQX@˧g^ .a]=tBdrņ5 +5 )`%; uݨDzbꟙYc`@3ԯ~_XHẑz whRWa{jJb k@QZ'OmbU^Zʿ qNԽ@>~u;6Va:6ͣTZ2ljכu/e<5 ԛ#>#`JmN0#蕦~F +'m4`ka]@Ou83<@!@g3&><y?4WD:M}雮&VG3Ыy_S+|*G~8Fa(u.?ހg[6K3?@f_J=4,ivu*X]+?P͗B݋C3a1>})Ey\q ;3-Meؿ9IOA\rl`JqdܛVSB<ЀS@օpX#B +tC<{|w.;[E-Ž" +g7'a&_P d&SB/^+ m#vW&(/)s컑h]@Q@ƾ:.[UY{V׳ m,_B?ξNgs/:i>Ch[߅#C048MR@&e{Qޟ7*h؍;uJ!b?+A-N~\kO e'1T_mDO svO[=vސϏ$cegu͓h= (Nbju 53ȏ&3 jpφC@ϺYm!N~(msl8@ +]8\UмQI86#^Y6Mj@x5y7>-MÎnNp"h&lg&/.=1 8<(;BWU:]"EimQ!igJ.eoAnMj#N5sPȲɡ +xkcƾF:Bٽszin䁬OLXtȣ@3(F~<7W͠˟yC@-KQ +@A؏Z +sMpkxT:8'%ucGi*#^nOM* +j[sP[u+)ա:ei>K5M$.-Βl +,V.aveǜgױ+d{P\1㼅Q؝U@PK .a ~[|Csl8f@[+ۨER*,d0=,:`|D fk'pT" +6-‘U:ujn`-ŽK$6ZCq^gm%sN̝]]  `,T.JRN$9RTR%$X eUQ1Te:@ %L)bl0D("UMY,&Ѻ]bŝ;'眯37=3=?=>.3syף+e=2ѥc )+m"IKCSZ]MgV3Er pL.:'&z_ Kez h[?Rʞ[Wz,bv%Wjj܇]nƇ/p`CٿaA t)!@T4w܁@y@@C+m4+2$fsHƟlg]IW59͍@$FOF}9֮ \fYsT(Pv ڜܜkOjްq\sTat-YR%&&{fIa;\ЅsZ`/l;3`=^49-n e? +S-"njjqa e탖{d9^^7ɛ;@׀ߑDh "{~*$ON6~ǢP5ˉfNLOP)%mu&Ou%vQX@LjjCG͞b(Uc2cݳ"6{%G:h*N@+͇67h 7#QO4-=#1)t[*о};d7 8]qЅV{]ZuXOlʞET@:ms8y3hzC.s2.&P <` ~n"[ 4[=;sߓU[)e DXҌy0PL4mʎb59FBpNӻzږΞpٝ9m@8>JD͒*`\:I@gv;4]n2lEsdlO|KpOҙO@u ĭY_lxE">5vr.knȃ5 gzxѻ@@caͬ? 0ka7~Ʉjޙf)q!DW:zn>3w2u=Vpp3F{Pi{ D"(lGu2|UR̗{3rx=ޅ]V; ô9knji=ߝ eEݍTUO hp}A^9?-nfKytȭXEݶ:}T03[7^?5VμhSk5s(4` ~ `@8V詳b*:OW;uF>|\@4hDI-MEa䩳$Vl꒬n*gnh1N?ӮgNpdjHtdoD@hDsK4絧Q$'N +hv+%G,j)3_~?nxEOu\@ `\`= +@@n W+LosU`H'uH|.a ?%_-s +h'ݦΏ%􏥀Vs֤Li" 0 NOJx5t=~2Mscaj1|nf#֏$Y(e0x/3W=EK?>|L40(\h=:vn!` [՛eӋH9;6q$Z z85)l-hk +7JwN,$*8"u+۝mtZ<1׹. T$_\sA@OiaSr5\sutᚇ4хpUb*&PXUy`pwU@ׁF@@@`@VQ^hhC @ƃ$=y])iNYA&QqDU%ejuiʟi鳷%i$S}&SmeAOIY +JmWiO hs;9`GK, s +u-p\4eл^ h ]g0N \33 'GW6Z.EẌ'XN=QiW7Of$^~1Ys酄?oPL'y[&raq25 h#]E˸?Zg)>7uȸF@B97U0@Na +/z;4t D=pl—. щp5M \\{e;'ioȄ{-$ -SFI@OPwKjsΟ@6휀w5h4n9ͮD0 V%b5L3ڥN^V<٧룬ĺd]qw>'Zv@'<}㋏O@_>ֽ@$<:cNyL@μ |̓ͮa@P@즀m_Bmzن9 OGJ&+ТJf5nktqQyeGWI([ $ s_:>`^0. P@-'y>N0,l[!W#%әu+%fmCfm?ebv^@f8f'M&$Ube-%~ZEm@9!iZ}cZ86վ`\`=+tI@|AhXkk[Se'ngB/H};h3uhF?vz溧mKƇ X(rZ@E/ 4wWû`gtӫhFnc;Up@@$QYtQ*8Dbs )\_=|(^[n}AHf0Z2D"LHimOB_ۿiS[,((4` ~F3h4 [K7& +ܽ94GnSW'HɄK!:~366IJ@kEVA@]7+ZkN_gY(z3h!\I# +EvZ:Ć|:V;e΂R0. P@lƋ^0/ߡj4; 0kl_>H~"IPl O گerB -xp I@6v@-􄫛] Nܘ[F˙5&f'Q,.͇rfweyi_U!\?X-d[4~,4, ? !|ѕ\9!e&jQA3SdZy!m̃}6z09s7Hk~g+;N.G{.?v6Wj7ƅ@M=FذƋ^$0_azj0UPΕO$_H9qkg~׻2ȓr["]TUkez!l J@qT|f3}H$@뗛 +o9Wޏan'D. ;SFjXUQhY?=_ +0/ /N |eL+̮Uus5V$n;)XRv^  p͟Uy`sǾMNykC^]ǖmj2a#oNnޠK= 7@ +_2SrBppځ0Z@n3hhhN3ۉCFVIvm-F.@=oN 'ɻ6ⶒ+\x8L.DHnBHPm {22NjH:GQ<45Z8hs۬w(mn^QLEU{jSY-mސ8wihQ +΍"\iZkUQ6롪O5kc} V4̄^Z@l?\_^b&bd~ȍ=^:a%fsnD@¹flX=aH}D~܃Ҹ΍8 ZFqϬ6 vKΥ:'[4v- +yճ9LySƜ:6ֶ4@8~[2l`\` ~\@|JG`g5@ƥ;_OpM9799I䢀vEv2;B;i_s~ m`(Xaʘ4WpqQ%=mn‘=zI㨟Y̪(>k^̹U=ה}謋C(8hs;q~x+n 7|ݻ0pKf~J+ +7 +4~h(35|B?3nQ)i/c',znnY^@kI۽jEU?U|?X3xoGtl5E'"-X䝏E0{6Z8z2/ӲVF=M!s5~1tQ@XԒмg7¶j9 JOGU䩙b۟QM72m\./:qp-3 ,1p@P@x 4 v+H}MI4YcY9݃3;{&ԓc=Ts>GNm0K.|);۸spcJ +hۆ Eۻz"27"1 %mn"n4?+io((e&N 3;/&Mg_@cuNR3lYRrNqXW܎Q.O l+*@qa`0Ԫ;~b gF^ s/@SAl+l܀ǓHr.ޙ1naZ' LIW + 7́'iF=/^x=071&MQhuZ;ќd. ]4E7_9@Nd/Rs8NϐE}Kkq3`ޓmr.V\ >G뤞1n;'tN+Ӡ5LhsgD@#mqgZef} 譞@H`փqa5(O@E/6 W+LW\+'lN Êc)RkEmHBʴCڹܩ(=3-#׾+^xRy%mt?BS),Lg +y y|rJNA)yjL h:I*yO'mzZrNٜ)8LYi!wqjsez_88keX@x" |Oci7Ha'CDvo]zE/gz2S@B2ȹr !vj%$TӁ虔4/37.>D®qa5PSЈ<-_a KW?11AfOV/hW9亹o;/-~ H@K+,zҼsj3ic5'tEkLId1&rڶgMbWv\Idn`9q'k[* +6t%Uщv h?,w=y,p#Sf$V@zO $0CThD?x@[ +: :4`@-uJ@wuIs)woRg~F +n;{g\3$p™F͇k&)\RN %dss7c")&M궨e se3 _@sGن"t_rf$ޙkt;#q(ˍj$ ذlWC8P&̲vn̘-*gsN +8sД>.ܘo&iܝh5" ]sҶ\\׷}!9kf0qs1x 4`p//Oߺ)2/sozwGW< sI:BQ;G= R&yaнj$9 (7Z02~X8 $B6!uo_^3OD h'w|47Dm/6 h?G@zm#n{UlBs; b>Ѽ* Z`@x!v_@ -řSK!:X^h.h h/ +{ +y`./~bӫX]};Ww~J=|B - kί7 ?j'/`eЩr9P'܂|a${ 6[m)̂- +hs;zn=qm j!̏Xp87*@[{e4AثoW@1OVE?e1 +\[7>^xZHZRC4H;q|Y犤IY:PٙY43gi.'܇Jh,gXli*|גּ(v_g$_98qk-_ y_oKR6?vi.h`sշ+ 2삀6?p?q1{W~Vw~DE +/ Dғvzu+ɭBf J'Әsa}~呕?';y.i> 7JqJ@W,cMUpXs,z9  +5D8V_R@;`\` [{ek, ^}v@'uKh[qU_eZT PjaixaMWxq sЗ SUz$i"Xd͵"q[޾`V32tcav[shZ, swDk`2ZРշ+`A-3'W} +15ѝ~X3]_*]u ](nPt n3DG"Ƿ[l]FnW1gunOKɄr>6',Vp@@U?vldIݣf0q52ZРշ+`;A~q^Ev޶p/3>q[lH [9(K:Srt exJ:=%VJ#C>kQ2/@rܳmihRir֒Cwp84/Dq0ljUc(^-hmm JoզWwo/AMWBJݮ%>-&1~6_ B"mMq {Ch'_cѻc{Պf-e\\s*,MYI z& !V@$=ЭЬGVk̆2o]тf]M< C",6v~\ ^%>+=qq @' pFɩc6ifXʵ/\2 C/wgQhsum'^H3/2"}dutS?U)-VnOfZ + NhfnhV6m*+ 1  ኞg l>|՝\s8ȓl2UBge͓?y%I 1p + huWF tvD/gЫܸXbP`%g'7=pr"rҾԳ:'7> oO £[7l`>;ra? +K4 ;ӱiLͽQI(wl y2ZРշ+`js=sU~MQ"z+$͟=wtX +Rwgo}ws4}!K@7e7Ѱ-+"DRmyڟ'PyIkK!44M /<1Tv#ǢL.N1?uݢ*g0 JDP[v;o AK3 j {.nM_n\|lxn'VH-. KVwkJ'Vqn1aOFwt]sLJ7E۵`c; }hK0;g41=9+}HLzIiYLt~ +~l'B@S͍7̟N{` AE3^6_񿳷vB@8TѓZQ@s +j[Ĝ3 +h6+~l-Uӎ, {j^zW_}ɓN26m A, `Ƚ FHKJDzǴR%?lxq m}&+O[ѕ.}tExy$'"4[Ve!oSzD v*\h +ۛeqφ/LUzkeDYL +7rln$i)YGB>MF2!j:H@SsS3I$Slyj}zF;p84.Qhs0ljUÏB67 xk_7iӫ[!Р@@frZ!n΂NeK򷉧nT:CDen|/]G'"<t7Bg m:n@͍D+16_H2Οt߀ËۂTqmU} 坩 :٪dW')oyM䕅,4uCs q6hUoGiUYBmNei pO5, 'Ovth /R߱a6(+۝:0;f寊K4'=[沣 +Ԙ$uJ_ @ndgJ@@n[E((PV +h7BfL@}9yc+MFp^YVbw6.^+PÉpQt +>7m Je,0@4SDf&AlXŽ{Y@C\w6 Ϟ=m1/Q poߺD +wR=di3 (t:_ 4,Z.밖gҋ z|ںV?z6ju+ +iUJh> +ug u&ȳT1wFі}ŨTi6"TY(tvw4:]\C[ \ya\ +ѼFh˗/_z4 hO5Р@@@" AAۿba4)ߘz^4Uly` 4cfls 'Df7o 5×.O3<.s#g7XUedGL-cDOtiR;'ysx1U]OHT{bvO7Xg86JfMwF@9mUv4)zAxرMfBQ\@dn8X@T 4D(V@_]!U3ᇠCi}3Ȝ6;H8b2ڎ@TinjN@𵹊k>(qpzo84g_K"&| 4F@SlɫRF'#vVFJ윳~3cBRй`˧j.}5}MtDU ڇLsfȄ~Q*We{ZLk”vn4H@+2O2ɓgwth@)a8C1 ̟\!CZk~V+yuٙgwvJIF~\o)||iWu!ʊoZs7f缘s抧.΃{Qܕ 藟͗VxyUSH9%;VU@cA= \v@` Gag|8fp[_1}?LRռY]:T@/2y̩h4b8=3+ +;ݝbKYȦ;rs4M@?ͽK[55uد³h + hhm Gv0lS:WX}?.AN}n9O~YL 耪05c+Lcby,ܞJzJp-5R~_o|x/'B']Y[}5;=C\#g٨Sl."T,rSFivqiBZf:FV"“9X[HׄY4SBh.F{$ +hNe%.,=O}AHιItk7˽{"6Rt8ȒhU=t]yA@n C< 1`/R?{KjM,/69+q6 Y*8O4T*-ڥL#K<6\{];l/t bg>)iY,as'"ڕ9*}X4H/f)fJ@&dfy7] >w*6M4O;< Ӓ3E5 /Id. +6wt@77KٓqvoJ@57\Qtx^zGmm +áyZ'`St{Qhhm [ж(;\YfTbRX <С=-ev9Wa3D=kqC|MхuPVYiswGGWY@3D4rw E ]Jv6&H{ߠ(_(L|8T}Ȣ5KX=42ǜ;sb>e'n8 +tQ2.';I +6U[-3{8-B(BS 46y8s)=sU̵ eO:Knbp!l/6ٳ4 +l@3TAɘ\)s'nH|vJZB椉p`.k_2VN\y_ź?,Lڿ>:I5U/J=^G`4XDiFN1Z{N3 ~'7vyOg)n &bȺ 8Oݰ09dW6er&˪||r#$E[$sb:`ϑj f"˥.qQڗ&]d]/\qO}v37'%cs 9`iáyZ'W((>@@n @G1FRs<$17^"ϵu u\J|sr&CeEU +1e9>AZ +NK׼Mwc Kױ'ǬsL@WU,n`i?إo~׼ĴX>} t׋8S&-0D!A[п5r6O 走4/9\\^Y?<6v\? hNNW bj|"Z􎳀N,^C1:HFRttת:!wZ Y5`k~TȦvFٳg.{NF˜ǜ-qj A+mЄ߱%nlu*rM#z9V$}ZUs\UlMD6Px|,odOTQZQôݜ9<>$pwTiۜg h3p)r]bb5ǧ¯Zq)<`O@Sovcy:Ю*%y-g@s//WroVN]=VNU: ]iVq9fL0f\h|N@䨴.J"9J: h{zkp]RejE:Tӽ:eoi 7$J_c^[OU hm Zy̋I6suCiҥOS̈́Eg# ͸[nښGGvaIG陋nHֱkpi-mN~kI5g**[9'-hƅGb|-~*,<DE?#^UoVt/^\wK@N@rDc8$ \ +Wvت\ufv[IsV *l~@8j>?3Ɓ QOD?8*6px[GQ=dn[>TE4y1+VgthDKMbh-rH|:.]ݟk^O) U]U[Y° +Lj/=t" +SF_n#[gpw=maaZnZ+u/ೝDYڪhm _>tT`=st!7u % <K= 7R%v=l޼P%m1h^M +fth6v0Q:W:gcKX _oa):"t1퀶Yڲ%̦,c ~? V4Up )|::L~$ `XlZl`9%}gm#z2 nZ'+: Hb4ZBC@n :iyƀAk*ք|p?wGGW'uudyg?l \/@'+^LZ\F:4$mVvg| +>rF"0g>n +^!~_AZ0Hg3NȽEI4O9My:Tm#!ib\zF9[0(E;Ga7<= .~0 Yhm hD"WE<'P8PYW'pׯ'܇ԙ9KWzpb#i][_ǭgxP 4pa6-;;U=O{pL] +ؕ5SIw sXsAe. e<]a}p9NæU*NF>.WB7ӳ6Bni^(R 5/~`7ظZS 46v`g@Y_s,Ǒ5P#jՁ.MT hT-?!OY]KgiGRK١^vpB2q$ ݂՚?Qf m hv\͝q&Lϴ~9OZQZgΰ2v|I{I`NGi#z\&4~@P`hmNC""U3dŒQl _[$AH;nY|hnkH M5*L…( !T"; U=>,ٌ;*0SZStB lsw~U=hd"7]35V@joBЩOg1^QS\^ 7>kϤy<Nr$tm6Z?@@n߮l< ?0`qK?<Ϭ oj@*3t(YsKVUg_A'ACfc XHvt"YA6| DsFjё(\?tuAcZ>upFٙz?bҰ9' YO PׯJ>r 4,.J➤K3V5i&lGk¯=ʝZSs"ȃ(4;_^t-v`Sm-FO84g;_%'}ekNf +hRtBie̺$P@9rfmZS:| + ?h;B뚭h4m`@h8alASdWN7ڑ$}L\9'EVyNXIm +w +hl]FgI@Wes%9]@ <QG^1ptN/gPrggg˹93acGۊqa! S 46v`m (O|dY.œ>=I6Z brf[8B&M&M۹ڷ۴[T@i Cp྇7=#6>z'h945o4p,y M{XЁХgcr4)cPSPNr3i|F@yla4B. ǟsv 1yg5oR0S"ɱ?*״ؓjx{J+wj{UoM/rB'4l9]1ZUO5>@@nӕoWV "N3z?q8 18Le&M:V@kE7ѪX@'Iqԧ(4_yGz4+lsBSLٟf:sG{^v+O g!86JNfg!DS47r4985ح=6/Y*%uKpٙ,XN+9e퇝EX-y<*4 qZd۷W$qHr Bg6K5[=$~Ļ{XglHC1)uTݺЃX5BQe|ݦ[߮ȳ "ZOE~N3K^ŜEQ@g +2˜2&KBنI".p[/(4+fSsGG"\:KagNm L\G@ٗ/~ )̐P\VҪI>r1=;3n?8 cֱ _LvNi544}Y@s=83K9xNKV h!ķ|}]Y%W'7es0ܜ JO+Kw4Li5$ߵ=zn!s&x5gmzQF9Ȓ3Zt}<vR&ZO4/2VؚHZYxԼvTDE;sP{}tnmnڜٶ0ih]tg>sXO[B$QAdC6EZ $:]--$i @.;2S85ݒ=\Pؿ:}-N jHV♅5Y E=v=n@F^Cwwб~h A>tY@gug%ZX͋wjIFd s*Ά/rw/|Oʳ߳U0ph^ e`0ԪUth-T MG]Xׯό<\,L̯zq;)fl@Ey"),2;ESa8&w<)n-)gm`ٟl_bh觶颩<{!O,/}I'jw}4)i-lNi4jޝOZ@]ȭb"p({#CĘ$/_/A*a_@&SZAZi<Ծ湋97:ٜ p$&>+{>S6=΢5=*{7<,W@#Cth>g A+3`W.l|xg)L47M2]Ld*j8 +-Y|4ʴss ''sY@s n +EԮ#f'~! +]|E͜ӽbZ@yXOsj;`jz{ Up`99!IኹE=ʆ7|yst=܇6#ѼX8{,znzݦ߮4%Wyru +b+5;re^ ೷=Y, +>โUk6'1k(GXX@z폫>{T:9 +YRGϵu@E.,fiW8LrYƅi\\Elc]ͱ"(~"bY@sc5m9g04q|'GrN@E%TAgKvr|gXN18k)(2/͋#+l;`?@@n߮T3`O),"2q(óOJPKWEpCj~]'3> u2.h>Gg\lG1 9=O"o;:(2]2gB֮.9tyn!asBRtfsBNIX@3 K/W;kANj`ocwpn : l3aEtv yyO|bV5$F ͚73+6=r_Q& + M/' +,;fjA@nc߮`oA`o?]O0;yZD{g|O닙chFqg haExO\,Z +h⤆Y3WOkEiQѾ.^7>1rf~4{?8JpູJI;oxX#^K(4Nhmv<6r]W]S?Jj Z\;rE4Z9M@O=]mZq d{=}.uR_y׹Zg_p2xmNO=$M=nsmhQH@?2Ά/٩]OIaBXiF>Ft]v;"@D~6>||ӫ$Ug됗?w҇[_I} np.U/cEa`CWOޫӶT!:84:tVA|Z2D,S/s ~v;I^ W1KB_G{كˢbc _ ǡRqb6;{RIм.ͫ`U"O5Р+Ih`UY"a|Omzd3{ُb1}e-ck*;f߭9j\ {Cln`,]/sՙ:OyrϢ$'s&( +}9CݰsUE 25c?52zpOM@m`獖T g(e+^& {(|Csr҇_>*S Z t==˜ԕ18C@E] +;րg+3ѱ{_!r<>hdŽ^8f0eNE>oo!$=g6Z#Ѽ*9{,0=1ZT ͞|Ncj_``\`K>]ໝ$÷Y6:MEB&RȾ hNϵ'f tléyrT"< hZ jxJ):F@'2;(e6[¬#0ͰR6gs;8OE5u +11Ztvgh:sG:+OkHWġ/J"T.\&͛=k:S皎O JO/vlCx,pz^ ~|!59N$ ̞OZK.G-('m_Rܟ0ߧ/-Qh6^-hmt(jc=sU(z*63;:,DZIn|$QJٿSd޶:y sdB$fX{e A٫oW4=;V*> ,Ŭiٞ M\X6бWL_퀞ž;+J$h"MI9z汥 5/eF8iC]sQkhn*C|ZrU/gy0^-hml-M"@3Klރ-X:%c.]?u*n&7Y8+H=\tPms ,yPmHUQhE:7G}g|E:= E`mтf]AC3ggtOf98=#V@c;IGdf}z֞6FkG# yjZC$i1j1mswWmf<ۯ(=*ALthvN}\#gA2C3>Vin +:yG?lyWG8~SeI@oBkA^±KOBPz nВ|JLFڻjK:)GrXY5 +hBy 2Qhgj[ :3SFKt*l< |Nhzδ5޽8ٕ>-ORSUM14N7>2>`{ YPF:|f*5^@^,q 3Hn g]ٽV0ȅ/e@~"'Afy^() O}L{HB'y6گ?)%Zm:q .<+DAG{'ƌҹI{zEe2T^:m+ 8;b?<ß~u Dy6Bw h4 +Pc\'*wpws7{Pe$IgӖhOLӺπiOSځ.xt43=w=)LhATE@?94 +evDpthvN}\D"ς gɃۉSWxfdVtZW%=[te ڙhHШ~6N@gG*z9N3'|h +dCA69G,xtս +(}C~? :gkt3vv[N=>Lޙ2T5Im(fÝ8^6H[VhEejtwxEKDathvN}\q>ǾӆáyJ1=;}A"Ǧ"-ۍ*#ͅJHas&gں:D򔲨L̸1k=ww意շO>WTGoHBБy")t2m8SGΛih lG:7:pLUO-<: 5 LΗ6 z1nh`5L >;Cѹ%-yW'J4G֠SFKt*)yA8gƏ_X3`#56n@ƉuNV0I?jWg5.l]}F)O߽V>O/U035:sQ to z,ZX dg^@o~CE)'=\i{7oh=Lt!c^)p5$EKbrd[t]Ћi~*<{#Bw?wA-}oD=2Z"ݦSWጨm4ByJ3zaqj)Uĸbވt34.j +GM8hgM8m4 )0 !7 {H VޓΜNjΙ*NcΦ4T9V=\3Ə«H;TVk9ast4NuZ.0~4%Db ':A|`ʾYeaS&@epN@7o>m4sOV.)%Zm:q6 ~o0~ g&ʤ0ڍ=L*D}:̱잮(~hSמdi4>1~kx6'?Fd #ĐTM'H" 'A2GBO[țեyK bJDZ._hWo|'/E~%ס!!q+~"#HZ֣SFKt*DA.gΫ1gz v!_o)ظ/{mPĸ(7Ptgzvi +1S ߹s>Dwp߿l_}7썙.瞩{ԳS^:6s`J{==o(/yV{eR<ͫ׾Ug5=ٵ }Yҹ֛3xY˃ָ&Tk A[N8Zr .^ KSO~:88| )%Zm:qV兑gȳ 3=;z +=°2dI@Vл"8"f[k Mch?e Д|?H@ +hAFqrʞq.e h}8$QK !l,UF(,^:^S?QR/'Дڷ Wz(WyBhU +q6wG:}oxJ΍sC 4P;]>N-nө< \pH@>keoQ@S5@rdHt9p@D3O:cg1j7e54oGvUtշOu_~?q53}熙 鿬%͝![Uyݻ? thvN}\6'sA"ƏL9#/о'pӉ7p֮$QDT;+{%|٪`Km]uqW +*~'G:pcgcՃ|9cctAeW,N]ԤA='su>/y5=y,dQBZGc#sw:UtLO%6NWTKtvR-?Y4x-3Jse.`KMhh7 -2x u:P2@-6 + HYa=pz$1V); sFw oۀ焀& h3&~K{֎7ıtAj`*0у|?ˣO*>T/B- 01=Af{}m4#xZV40::/Nx13U>b&y(͈:}ѯ>_=n4\ +*d{Um@L"tAҒYv#2,%$ja yԻWp,ۛPnPr8>t+M!lqHЋۙ;31#Am{cckL45yM=_u ЂB B2Z"ݦSW#gAV@c`aDdE}Fj|cƂ\W1 ꙳lj2Ud 2hJ+V9ͅc#~~| y3{Q3]̥ɲc+pC7BhRC4$lʔOFBR3ډo]KPՔ&UM/(=Mb&+QA@+/y/FuCGe3N]~BIW1ׇgG:\W5֭oʮ*agXg+K BhaU9yA|U7b(L1 j0^@GyG3qբ& ]*޵Y>ɟņ KXSsj <, IنcX-!M\fgiW5$o 4ciԡbšugټD.yllpM)_JScxPnɘG:C /}v.M=zwl{cc/nB-6vr0`g \p׼OT/j y13HaDi\m$q:ŢaЖW~ k/WVtT@2^fyH@nat;NuP@&(ihXW.$L1j.uRV됲wZ*, *I1B66脼m8S5Kj7QπEdQ#& M>t(Yb\@  +<'$'md>]ivБw .>3 A0Q]}g]'hHH2Z"ݦS׮!gA9 h$h{2(C$1$7K?^}k_<ÏuYf<*mw2֕UKNqw|mfC; $@h/k @HV4;Еbe?}ى7HP؞d$GUдlԅ<ΑZ$ƕeG=ys?{pox-|Z\wJCS7ɶ#;LmHBEB-6v< \nƏL_~s(f[r6訁zٱa_j׃b^EuY1ëBEe\+UeCW1oFE.GZ`*& LAfZRd?NHAiA8Y7 h\=kʿOg=Gdz],v"A QhA/ +endstream endobj 525 0 obj <> +stream +xwyR[kn,Ղ*MS.Eɖq,H&ZqFܙ6 `92e؊_whP3{w75T*WIT_Ȟ_^r4_)!Zw޻s;"`}SѺ~'togE&&5?&_l(Qޟ(Zw ۝H Z |#RF<ڿ7c ڻƛoݪN|/ UoANѰ- 5A}~NVޔpYYܹ]t'66]܋Ɠ6޺G_11i`U_NE ,vkr` + 2~gM\:pǖP)C&߻{y2od=eDnMX!8T LY}#+ocmdIC&WɷLT\5*03rU`I߆Hduw{*0 'OHV0iY3 Uod5V0h4vǍ&m$ D֩0lѐ96Q̲6mN"PKk/<lqP7UP+VHkdoc՗JqPy[є0*-I/ 6,5J)e\$[$¤d):9JyU\P )MH~6;aPr[maVod+kR@9팏lq/w@,2aLC&b:@ylmFmoqP-<l7U`/r:@e^}#[l۰(OHU(|o$u =^ڗI@X}# + @d9i#YV$1Q}Z, 7Naz[`rǤdY毓H)=Wq毷 'yMHqH7y:@֊U}#adp7Cdfg| Ir_8B1o$5yalSq&m$-D`k +ntPI -?Ϻ\u :jQ}#0 qTDL`a&/@)U` +q[[f,@+ (,<}pѣ_&=`k@իF>n>n [ÿJz`0[ =}x%mQ(>{ ޳G/D(LHV$\~la'ϟ?G1 (:V/@?y<|=k=E# *0@ wfwZCAm=z ++p|̏Z?Nxd1I$m =֓'ѧς/? 5GBT`ӤRɣǣOքOZUnֲ-}Z7 q;\5HTߘ7p0¨Yp$@!S7KayFjkg|蠆6,*p9WȕdW 7˒qC&g +j֣K=۰2,ހU5 sg[2aR}ZraQ}X)~6`,G&6Y 寓Hۧ. 寓H۵{0J=:jۯn0 Zm R + &m,o}h8? *;|fu jV{{Vi0wrVI$tsmʜqlN]q0Lգ2wǗ:U` kzz|܎B$x<7x4%_'6`4 +i;[4}6i?AѸc:TMa4֓Y|P=8q{Yʟ*0vǍ7ZQAσA=/6OڃZgA<*_'VnaaˍBuxүGADO~{J䯷XI{znטAޣoa=X/:>/_MD|(_KeǍ/oz7_yc _Nη\5M~}(^:ͫ[y;5AwHzT +ߛ/_︃/^>y5^]0` o%ߏA־xױz=X~^e_A.W +endstream endobj 530 0 obj [/Indexed /DeviceRGB 255 (\r+`'vhI-k0KN1n42oR5Sq67U8r: U!tX<)] endobj 524 0 obj <> +stream +xڱM1EvM1B(a +>/Filter /CCITTFaxDecode /Height 353 /ImageMask true /Subtype /Image /Width 1920 /Length 48 >> +stream + +endstream endobj 522 0 obj <>/Filter /FlateDecode /Height 468 /Subtype /Image /Width 1920 /Length 106055 >> +stream +x W}.s{z$ْ4%/6 ߅\$$$&%\ a I|x ,6̽,6fB0X5,gwW>{=U{y{}G]ZZJT*jBVՑ=p19gȧAxY yf)>r2ǓVe"a_"o!8n/\R^7 C(֭" @L3Ƀ[nÆ E g9ʂI˟m+:NFҾrad0DuWyq4fuW27O}V+{򚹯a@X`Bo +YR+\]?^*Cr}x M'i#` +'_bΔq[ЁP [/:*kݙK` @XZVJUe-|*fs26C+n@S&6̫(w?K2Vס,z ф:i9 +=juG.^"y&>&&# .L0h&%Bj7ӗfkS +N)@X,i͍΄QQ2efq)M"i0 D-Bӗ&futzYߗkưhB `hH}qqV%(}tu?o|iJ9O4;/gBvOOy$Ok%mhB7P&!Fp?僽6WtjB]a4ʚS\]l0ҤeY}х:΄EB@'[ eԧQ Y7ԉ*?*`:N˝ 6l0Q僯~I2nP30%+f30ft:وB@;B5ld㲯by#4uJ  cggUk9 +=:=0C=@X`x8rG/os6<Գ%-u󼹹L*M>4u$>͠}_\\jɃ^yZl@!p7jL3;V*jjwzx•{mwC 0pgݓᬽp8K΄vGk'4ٝRU@h@ Vx[͙[AޠYхKDʥFQ:$Vw6>;[ϠBWJŏ;+fnfh]H7oXK;Ed@AFњsW'. /Hkwr%-u5.*kݙK^D@Xh6[!hҒH?jV~V7*Jǽ|c +4uQM*mBg2ֻ^>:g.m$xk7W5 QwR)je }^dI?GCt&!n1:@DB`gvWi'HGMPFG:t%Q{:1]^\Rr . +Yx/osO~DŽ A_.?'#33V1 +5l[b4uM4KKK v&^&9N+5-G~^rj>sW<&x:&yaW'ݝ9P!WH-ڢW +h4(4@o;?[WQzg!JMx^.+KuV`ˆ-|e?Z> 4uhvaS+/8y[2Z-y0KO|^dJJؙxa;V +鲂;)[C@X@*rBdibe>t5<[1]*:^.'rTslutUt +?}Al=> ׇ!]M0 + Х,=<ķpm~ԔS?PAH ՉAd <r<̗K /c'E6j9nA `]'n0fC/gw6Tq6/޶w:'m6jyBݣF_.PdsRՏX'4}'w*W .hz O^Ւ1 + t2FƄ#D$JΔ5T0-8J;w6ftZ5ogufYs{LJ +'~;}Svd:`Pu=;PpƣiZIu$)֑q96@Z,Q\ps_A?@XcM0 + @ *gF8H\'a\+AS@WS [OF{`obDٓuv@1m'f +gcrB#/' +jF>\,s-;":A0 ngO*Nӂ e #iC{鍿V1~ܮ^8Ǝ޻kkUM(TlꡕxD:F<gNt4\:IA3Etŀ~Z]<5s߆>9Z*="3[>^l> L(U*_i@_s +[8Ϟ4%c8hH)MrC5r +> TUwӈc4Us$ڨMZ^ozƻ +^>=qA@ ``~V/ .#?_ J~t3]Зevkzsͼ.MvʴS=ԭnhIz.5WC `Bol`t,e +[8:Щ&cXwӧdqV'贚j)VeЙL9*'.Ɵ#nhBgDuS3:4j᳣+{G- Fc?5ǻ EẺ]/q5zDKN=X:4FLaok1fnsk4i3Fmsh-OMDj 6+D=@X7,iagBC qgOA]bd9 ֲCǩ>l;{KAo@X7QhZ-y0I8M[ {s㜡t?RUB]8 6f;b&le~hvg||h+\atrꞔ6Fej <&/,,dw&(4@i}cyo{n!,R(4!@驁nq*U~UL5 /&I2h2=5ȿ^pSZ*h@Q ڐЏ!@驁^yZޢ0@XW@MjO(JRȒVkdjjk&iwW1@XWXrFQ㢐h2%5е~! /zCX+2&KZysssؙFY!dJj޳CbG A6FU*h_Ւ1 + #p~AN?Ʃ\TW1@X74ߙ0)ys+ހ 4u@;bFMdkß?O2<;yԯ +Y(4eQ`4 .P}-$k[hF.&.0h+i<3 +=EbJ!nDh? +A+dIFʤCX/^#w0ӅO [,Pb=  IV[\\̎BWJRԪ`^M&_9s|7֑q&JVfBˏ xȿ’򴦸$e3u.sg/W4@X74YR=ϛ΄0dO>| +T?v^֍Sw&(4 Spy T,3\Vx.ϠUI\p猏/#(x7h>='kp|Sh|.̏^FV}OC׫`ΟVv{h:\iռQyg}i +]s_3-T!}']oq FaĽWHhgCДrɜz)C]GM/iKWxNvԨY):Y7y|@SlS]eܡѢPMd' CtOu^ +^ե]Bo +YL+h1R:L)gƑh={>Dr~Ym{HY6 +gFM@m]̩ڌDIx4E&NLP7Lѣfu)Pqs2 6tܝr{)יּz Y΄JZbz~e6R3F<9qFuxj o ]hxYbysss3a?ɛ}NtϺ܁S-}nf -;SRy4y$D蠹)>3om?XMWrF'`gwI7go=zRjC85z^tA `TgB0LܭTwɖ^E;O}Eb$ >@޳|p g[Q Z!KRoCЫ2;؇pG{^Hm3o+z4uGo{hGMk/j(tZT*Eǟ 4;؇g~˓'`]" hz #Gxf5 +3t#}E}=OAmO{gEEb ML:AFjgB_7y׻[z&@ CUЇC\ov ga儳XX|_ZZ2I oyjt7FB2/iѫ! Eb nut=|k7gz63g  < ++*+g\jRd! ~}EbS{wѫ"[]o]>˓g6y{Z}aa!3a+_{8Ka+#?Wѕqbt+ŁNBGPɬsևC*Y٫ +C"TX + +[tM}4F{?V'hx6aL4jQ'Z~0 [ 󫬶 hBX~և8:uW>n&:$6c*UAY͒Bp=@uR!g2ICФ(op pΧWF h ^f~&9]LhlZЂgj&ClGz@^3-V~a,Bh +{&7M!'.A\--vMpU֙s 3J-8?|~~| 0J[Nݥ@?GuZ@=>\Z>˛b /Lk'qZɚ_s!?jh:Go{h AkZ@ԿA7|u,8s3-'CGMu*sycaGϔ2%?ۃsMpZdpt)8J AC@TKrw# C `]zWyI&PA G>pe͍rt8-Q>k=)N@ٜ9f{H)XN_>J]Hp,d@=*wӍҾChS-= o"uk9p[iηWN8ʥFo-V[>*s#KvTWhNC=qS:*jbu,|67n?:?7Jo +t8,g>z@?i,#4K:PTP}sæjiC xEKÜQB `]n}ʉKJRVBEy8c%(8g63‘"x6[/%$Сqvt3^-tn+8p7*W~SgCe&N@Sʜ|H0 +3もlyikQ̢!(NwT-]ZtY(t ~Y{aꅔAg`g~ ]meI݊0ep{C (ї_2^^Mhhx&T.2}rP'#h ZzS2S +C7.V/7]ޯR +R9'*NDG)DM4U?uD'\[K [;S͑-nC gV:?r7*ږ?jPֵ |[=LvifٛwF\V[\\'VJ5$WdJ9h1t].7ԡ:g/; pPE9d-h'ZƎIh8ZG6gkxnk@}+w?SD:p?u0F:W =,",%LкChWD6LFGv-u~iC`<=n~)hN<GyEWy&{++_9je!@̩ 09,,(G=(mrjsp&fx]7>7=QW7u>FuFK.7kmhʎ),ڍ/-orj3-~·k t@z <XtjC}NSMg ]3-;@Ƿ0Q>(N<7RHG.onΣ2TGt/O~\X6א?jkZ F{m{> &&C;Dg&w<ұek>W:`QgeQ(AsP-_+wOxοNWCwu>MO7G~f9 +2yt#/RY-:VkpX{ߤVQ LVWRDu:mzaL_שMn 풻FF{!|6sf9[Q2ƽ4ʜr:m2Cu .7\-VD`ž:wx)Mܙi54Mۦ`++no 58pfzY>Tt˙,Û=ieۜ|LwHW27Ц92 + j 4 +MjɒE>ģlc5MF';Z0hVɃt@ @7A t埳y0:qW>vXNI(Nx264y]f㴴p$3 +m7gL ;{,YwXj:Wrӓҫfw%j%񵋻:z|I9rj:Mh:ѿ&ͩtu:znv}SxdMT٦LF%$2ZO77GJ_FˣefB1=0z*9-/([&6~'[xy[qNֵžL$ )\vcDXb=Yn~eaUgЭ7{ter1u6Lš[vt苨q'ԿGȹx2lN-YeK/ZGO+\y6n5@m$w)L?P'nʠy#䮆hC$=;gu!0ۛN ֵPN͗jSM*`Yt3;:jz,w+X().3y7)؁l^ h`ި +هpgٺTj[XAͭhsZw0J(_F˦ R'm"rwӫͯʻN6Ak@SFIO2ZfDPnYWN?oj[8ZSñv继Z]6h3 Zͩ/}-Ъ]p-a i9"]g]!G6H4J7E܏hnq]lw|V6Ak@/]l<딝W㢛c^ʐm|M&m*Y;wkej}GMc0"mjm @ `]:o );65)m,i[8ݥ*8ѕ ^ktM&aИK%έgsOfL|wu((4h7Z8ZVڅ+d=缮ܺx$~|Uыy=l)z9\*>+KS.nNU7t]m[gV.Q<K~Ucƥٓ_!hd.]oi?(9UWљM^E] +tB5<"4[&S4uz8-yrSeLs *vঢWѷ1هп7^w l:~nzUv&S4uM +ɉ۟WnčwD<5gEoϸEtVWl?f]l:U@X@}u ʎ]\lXjy+?;9欻|MPjgB5C+6_Iüx)<~q糋^ 3[7tgoZn:mkG?QޱWLi 7_U";g-Eq!Q%/\:$ogF `]#r4YSv^9䛎÷_{5Lc $~?U>|G\ўޙ7A- 1%kC.&nG|cѫZ};pSѫԗS_Z" ߏ-px? nn7 +AF=h<@֧ΞW1Td*zlz?㊢NK1x7Ke=Cg yjR mÄ(.y+#h25gE’u4"gy8FۂБw7ayF@XЅ@@hPJ|⢗`юGAwOTu{ܾ˿rx!kh9 +=y;". +*&h2E/*zC"RdhGF `/z=G8dghwC/Hu|[1|4-,oR YR'i4uQ[_"PUS|UDEbH}c?7#>'T0l7Ja\iO}iUι  =qUPo1"2Rդ<4@{صL8St5Y#!}IᗸWo}| =ő(&9+x=9;|Ij`SSԭ!S'G!M(G^6 x<mTرirK޴1dݸ16?̄jI‰N iZٌ?|W|FVw$<- +YLF#9[ m[u~M˃z:t|/u(wND* +' z j[.;RS~B*FqJM[sɒ:yܸL:wk·ADg=l_u\=|Kű>sr7D )y'HˬTb63|_@ydwZ;tLF?Lb7*)μtmSNj M1~ܮU|E}aa!3ሏB#NСJxIFqIϜ?uR,/z(e6omLGv_SeAYU#T0Ͼ~Sc>Kqs(_6Pٹ. o{rQlģ&n֧F wu!ig6Ϫ#t8DZ5̳SshF[kˌ)wUk%/{<;;26cΩ76g>-ɡΝΦIMUZiWZD3xsh`q[*sUΉ-Z(4eУ9 +:UA-37 G3сjV.[fҊj neZLQd;y4 +-(6ЦWQ FэҏdtR2VS@?u~w p^UC7]7nMFl17ӠM#ES`/([F$jUH̦c%A_duVZgjW ЏC'p-%ΖWȿ 7^߿GVðu<,;=t-ǩki:h)_}6e=nYp@޳ z͗&n^f%:h*tLLK s8 J<|=շlwL>bq)yg'tP+l-WdzNY(N4l:pz6Vԉ+N1 YyYp3Qor,2:Q*@7܌KL78әzY:60:@%.Rs-72Kb&CwZ =,VtxǏwtBo +YRެsT,viԼl]@UMmlyc򣒾T]?wnsrs=nP4e!k2uKRB& Fߗ) +fw݇)2n'%ٸQ%~.Ekd0=gĩ΍ԙNssIy Y@'X:ٳFbig?5>F^ TĬBDs:N)8/1@m~A[PNDrFG4uQ{fq4tE E\LͦjY<-ZOhoٓ=9r??4lЗj{ 2L]VUk@tG//h 7œdjY-h"2\rmwGpRN +W@먗hu4~ YМQ s][p/o#hIKLhh?i؛쾦6kLӟW9vȑĶ>W8_>-ؼb:O Qmtؚv@m<>t2oRQ_se}4f.aD|ʅvL%Ι8U`ݥE?ƏeGZ-ypF@Xz9l=Ort&<֎-Z萚rRytcx_56SMju3>VVJeh@ `]Hߠy g^zMy>W5܁p6Q:󼹹?'^ŀmxs^Dz=]v4\ywΗ^e0 +: ts{Sa;v5? +jN]bEb*sj+p|Ҫ1upfly?[~YR.Y}]^?W̗JZ(tBѫ8)_-z +?Wt؁Wѭ;^vGON!UvQ-!|gnPZƓg} +^Fgb ί@X7Cx_+z Px]0_XՒ΄EGONx ]s.E0qG/c 7ࡃ9ި+~1qUMyӯ`anA `݈Ӷû|sѫXwvӉMB?|W8e /gP@W]X'oS裞ߢT-{"Wtdz$[Z>?or֯@X74}k>{4bU]}88ax@x7W2}8!JT꺡c~08fm +s6v GҀ~݅ jځ>yUJZ(tp/qKOp +|Ӌ]F+ă;ZR*"ǻF5WPmqv~OƟC紫I,l9m7 Z8A4 ntڇ3&䷤t)/&c4 +--_A(Dz[o@iCYv:uŮ'ăgNC'H鳦P 7?a.jh񜍻Z͆jRV!ry.Sk9K֯& *[JӶnћ(üƟ#\!d^R92KtztΎR&m@G.2~&㫺9QM@?ujCd֍n-=idñwaƼ +92btǼ}ZfCSpTtP;g.~|FyRmVgʣ4:*;{K(n"ds tt4hb8{lj/v! :֍n-}.( t]y߇ }qqV%> +]?=0N2\΢:9%5قҴ 6 tt_aO#Tɵ*HG l|b7ȷ_=C z!s6גЉG[5U_y>ۙQCд` w|/b*K1Dtv㯻@X7t? >x/3ea)gXIeW@ˏlns0.^xjo7j˷<뷦vt6A + &LF,-e:hF[J zڴ?G; ]/v x'oӏAfݜ{~/Gu#dG#QJQ\jZBn#Be˃g~dXϷwpjSzkA ` ܞR/`g-/hnqځ0Lcn&1mڼ+FBO=S8.tPKw/m<]Z ^r.|QmǘdLZj\MG̗ul&'Z 8.MOP3]䭴\|q}7c@5tSp}8⋜HV&/6"(/>VҌb3$h .d @yg3ӟ~$9{7VkSV.o[e16]5lK)zE0 @ ,011`Oi;ݑE KB[[˗@JRV6 +-~w|*"9쬏{鸩PL[&K<(\CGVhS֑ܷPgl<CСhyz&~X==?od(Χ h=LʣqTJ֪yYC3:n{%+>z S͆tn: +{&'=orw毳^@4u*D xUjQ^)n -a=w^Ac|9}SZry9Ch3B'iu^f.+}@;1ݼwf[,Q`4nMLR@TEhrdyBh|SargӰH:X,NӬUt{/r|SmB(5|z$R.+>{:nyfqs4Cd&F3̞ΝKXNm6!i#"Sh`*>QF#wMW5ܨkOΓ>H,|}Z_u1Y@t.E2Lk"Pu|Ɍa }bm۟us?c?2=.f#N5bӘ34T,Z(FYL4e&6WXQWuRMoVuU3'PPZT*_?/1ԗ=d&fe 2FoTh +ХtJMM^2hn@SǴ|*}"ՃP,߂uBW%-+gz~ly^=2%jZGԘ~gT:aSal*)n +iښjjZC!u1# FCH7bȳMWuf7Թ۝?@{O>~DɛrAS^OaB `]#N A׸kz9=ܾ'ZMrgF-$5 +4s-t- Tfo|.xsOom<0P*/ i@=`q3tfT-ͺi 44;^~ |-Aq$6RL͑b(X>ex6ޖУ krye9,MTZiV>1Lm2߮^Ean\Ltdǔ&bZn5<2(ts9Κw/g6^(kVWй޻qgTUH֥u.`Ͱeɶ.#.k B y7\cb!7l5j1^5pK O`!8d ,I08kX`0-K4=Uusί{u"S{ǷyNb|cN%1yB,wl?Cb;Z|u\C{ \ h]YWinfZR׸S +;v8sksa_VZ}-|f}fڀ>=A2j{)i fEY\A}&DKHp9~1/osM.xJyƍ2aܡ9\~Ccsk8sWv$i6ErCʠv*"^ېBfqB(b}VY +b9̪ܺ [j/i\ָ )䦩#N [Ϧp#-MڒИk3fohaUZ.Js۔}&su=$c1Bտ;y54k~~u4 3FakR@tୠ1;QFsZj{"}VK?ϚıU6ydѸhr%&1U\˴H_uӦ~\ oؼO'>|R;Npq֪פZU0iר/S3m0ݞAi]AΚ\qv,:1UiykϙX A6Qo^K0yn㬭kEW@+R.vbH@M$ev?M.@}j߉,s.f h"uב#Gׯ_O@@ )&g6繪\(&k'P'ʠM q*{w/u+G}!l#);fJ1 U!i,L} +mDڨEk%mO]@UG;,4&l2JŦ': +8&+ќh0NfD$=UU9%W/Wמ#oLM2i菶hPY:A@C֦ :)j[':ꛦi]|L7(䅈^:@;owgȑ#'Ot]w7o') 1+\Y#]a'ZɰKƧ- +_MP|yӖ:'fy6vPij02h01j5*bבv\7B:ԩkJkutUk^Q胵鶒nHu} + +Ô>''d aL5D75||Cq~@<q ),l_ +8g 褼N]H9_[v\sdcsDG#XЙHFK fj{Or!zMN@;:~ƕ|˕Ùg(4 hڹrʳ>{?32ejPfVCtUw=3m;y\MǻB2hf=, -?Ml)29_{ݞ)]]ʹ)U +)\ Ѝay#tN h< +M77$?YU疱+rk 窅9 +>[-~ לK7Sq>l»[2JmhLC3RZmn!薏D9nU&ɄPMfgWھ\Q,WT9iӞ;<{zǍ^l٩:EPgIʹ&q<1eݰ/.hl5ׇ2hmq +gyǓ}=ݞ w6<#C-;hde&_oNuőu,շ67r' C +_70uS>I8pxG[*t޶EuFK@ ֺ" +M[X] K#jӵ! -Q&m+4_T(o]*4aQҙYYN[ފ0G5$Kv}0<˖-[f .dh꾈)q6 -FʹJ6q唍fq1"Һ~4ߗ@LJpD9]cm\hh^pځ(N|;VX?4ؕmQzo"!U=tbNT?O-]ƊgS?>NCӦټU`t2ݼ6D m_W(d>7u)ϙj:= ^@K>,y' 0 lT@NIΘIC*5 +VR(BVZpSU]u:?\s hL*ÇQu֕J+w̪#I@'2iGC@|# )Y(t|bxo~Ol䔛%|῾ Ȣ)N%;@)gs27H&׿SzE@VG"Q {m. A&q鄘;B)~Y6(81sϓ}|ԳȇCSN6nܘj՟׾aC-S]y|MЭ%g턼,|:~>-; 1G!O]~u1?UVG$YT]g\ɷ\9Y-;MwSZOh[XB\]kaKVnA|uQ'>|R;3P,đyA/d ?MEUCt  ++w?9KN ҘH@w8;?6CB@[uut'MiusҺKn'{F=|X5y٪V&P69q,|.{OG0|fw.;BWͷ}bЗRЕnR ~Lͺ УbI +C~Q"6fTW}vv6]Jn EݎZ87JaF|.'{N@Ĉsbwi+Zxϋz9;/Fn4kuWT! + 4cqh!G=|:i5}>ˈό>phW\PF&_fcxq:-4իW4K`Q=2~z%Bn\@i7ĕnxLYҸWxW rO>L/bHC/\71mO.(fo.Y6nX*1E`h&.>m5EnTL?~F=<:il7vʟ>3 n]NnP5Ќ?_~|ɭϸoqD'ZƢ+[r)̉{|㣞E,M^ǂ3Βovnt訿!Apr.to/:1{{X 4T*7nEɢKlcG>?YɪVMvԳS=O(K=7~nh x?ryo`h^>^s~2VaF 4>V ZhBn`B&\sxz炂fMUȄoߐv7llۇqCG>W d\t!CޠGg9eȡ|K[@Sz:=_[(ȝ$Jvgg9rt)]7y'‚'8Ō'ֲCY'7j7/ +S9`N(BM}:7L7 h|^ia\y ncN#!'-JT|/LXg&0j(DSǟ7dz.eaN*O'ͣvr*`E ܧ^v6"/\2Zna﹌ϰ>N@+ LYpm.SLm;7gY3s`&l]*=o]* W󹍖+@,&͖:O|Jvm3l4/Kp?bG(zAd!CnʀѶTQzq#U?1FRwPv;H&r(y~eݖWZq?2~kNwyCWY`^LP/G"޻xz npq8Ztwpσz19/F4;[w~4O}s0t *wUYMn)5|N <-尧n{˪Ϳ}Ƀ' Ш%S/D:XYԊ5VGV h@@Ёv&%˲MtLC לUE{J^BJjˡj[$<}{pֶA7Z3hln#!:G+w:yVښ_"юHj u0tx/OnW@;srG hb]iqoLN]8Z-6n23_;8 ++?tM92Uvg h:f;N5*Y2zmXM1AQh_L\nҾnP\elD=NVDRx|ОvU-)LhĮow6 +fi\q6Qk3HEөj]'Lo~r}׺0L]FƬ|ƈΦ:Y3K.I:KWk ڟL"DnWi{o~uLvtWyzu<Ć.%},#LЦYn!l(4-iHp⇶Vf:쳦9b9,9n "sn0?tBֺf^Xqf0QСܴƧm)V6eFd~YS,/YZ B (<Wr.KCˡ~-ȝH@󸅃yX .ݨ6ۡZWچ.M1]CiJט#8;}gL=:NŶpQv*0)5;&\U*YQ:dqI#m-orMb[c:#@Ex"rr(T:8~\>wL\%^5X?MI"#lG% IF'&4:KJBh?nu7wR$t;l26Y=M tZ@SOF@۽+F]7љQh{aCmdVpDxtuqyFdl7[w먰rBC%$e)TȝH@CGb#-mzlPN$ sZ@[]S%lͦADRrSٰig\r:Le,i-t̲ӦykrڙKV䙥U mOKhS_V7%tOd%5odhqB_T] +8ۋ (4ib[c#Me=4&"젞hcMzzԇ5⧟aOW$tsz~X/(qi#阸'tV$ZA0p ?AN$";{X#1NgG:;Vw>%Vڔs5FuԊѫM+A@Z͐4ӆ+1!p6M,g14MgLb|P[/,RUv Н@T0;q,.g+moqQro ]щ3SO-*NQ9>Uttx3H%ϋBbq˦Y\ :?q}sUs7_ku}Y6)6!'6yaqtફĭ*z{zيB)\ܰa>ӎ_sVwQ;G[UpnF0sGra誔x +;ifn剞O6@4i9. & ;<1uwFrً4c,6-eEzz6/8RiQzc3_t0v*yD@s +_:e4z8y?yӎ]Z3,-h*iPJ'ᔩ_Nttd ?n/p4c z'VF7]$l3BhH@e R'fhatw|&MLv^{saHxeU3 CJ@˻sJ@Ovu5ϼrA@,zQX=vsrCw +;L{H4(1ΤMƟ :}!Eg~/-f {BQgsCM+f t7t +':aDLnv(}!7F@0! Zي8V컵E|J(i[¦ѥwjM]#MZ~-fzՆ""mr‰b/TQ^@m{vw9cs}_юBVU֮Or'I B$4ShBN>g9O⸨b7y&mmwz؍gf]̝gly6DSf<2fNpuZN@5 C&\(,&'WN`V6)e<`k +;Ɋ}:CĽ/ӗE:LQKkM8+PSeh6fq87_u'_/!ܬyP8?3q0t*NFϒMRF@\yBt h:/Ƽ @67adpϢ O%#mκ8,'gB֤w[]>kǮwjGNYiN^@>em=\7YM4ΤE6ѝ |ޚ4#[MgpqZڌiqFd9a 56rtB`F&s [[3B8㇡+꿍!\7+ +N=cBM5$M%t/ +Ѕy3/ T@i,,i磩"ϴ!wbijMqC0 uY^Cp҃޸ͫ6`D0k/M t'$V Їn?v #vGJgnmUm4  |tSU&r>ktƼbLYnJZk~lx}BE*wg@@Ӆo\6&4ѹe"!Zj+_~jɣ?0X;qKs@]@Z4y@>t<ZVA@[٠3<5M!< 99|+Oʝ23UoI HSeUY%Ijw +o#@t*;Vc;Weqlkӷz`Yӧε_MtUXiƶ-P o84L gJwrƖW1!\(Gfo96QbHyp@N>mTl#~p-;Ն5}r\G w~;8XBU Žer'g=4Vڱ띣EwO}xԳOYy۠2h":aſ+p5qHhvticU\e^Z.\ h w ǁR{bԳУ*&9S֜r YpFtDG1zguAsR%W4;U@J^p Ew|F=vu**&^,܇ r ű\.?|9RIyaF|^^Wh wJEcjsO-X7n{7n=yt';c&/}s7Pg]r9B^s\Hk=y5veJ@@]\]>kԳc3_eԳg>u@/1hb @ 9׏Of?x?s'˝@5|ql.g,ßoWxW * "gzLЅ{o%F[M,qG;h|){>b2W9hA%'_qZG>lN3kS>0u㠯9@,b}ƖW1QϢS?'|aԳ*g^ؗjyeVai@7.fo w2Wc#*Eg{Qn&:r9t|3w?@@KE,Wڱ띣ENrlk?c}w n0KEOmra?? R^@'V)4 [~J=B7;{vã2 ŽU:ȝE,Ku/8yqྷTࣞ xh~W}Um3{w!3c^ϝ<휇"tZ9oQi6(÷=<Ye6Id»przH;;${&8hκ_0DŁUp=x7.xun*D l-. io鬇P0.b9/χW"Q:T&*zC9:?5{I +hu`TϸoQ 鵣/\-@,b-ٱ띫gz:L:d%fRzD{ۄ6 3U_A1j)|-cǏo-)bL>2Po}thc$x6ySN{-mU!?Rh]ڻ%y?ϮXV{}nNaF|ph w\$0/d\LTq@Ҏ՘S`ٞ.[7KC7T2 3:Z+ZM9XTcO +/f\!hژh `4y9?]j%U w>L haSd hw%B֔TZ bM%mKh0s?=/]n~ph w<{˫'&^5Y穙%`i>6<"KpMlHHTzm NXЪ1S{^Ĝ@h +*ܐ7ɪn L),f $:]ڠj7Խ7x8/Fo3wop'&ε 7=7zyj3ӷ)!$) j0IJhrjRm5s/MB;qj ~0tc I@Yvj@>O5v8E㍉/O:2n0uph wt1aBa۱Һϧי9ǵ̮Ct8Τw(f:M}@ې5?7n1tWV|{/n1Ho?~?{gؠ^ec#=15auIMں TA5대6v +D:NYOц\YsUPZO^R=McA|E⁷F4qe.`VYG$Lt5F[76jskNꍅ!=ՔY@zVim{?7kȝ+h,41!cG=|?g:ZɊ?v4YD74vzjNQ2F g.W7N޸]bLfAlQS"CYԉ_8yI7CC3;FYkh"[f,PUvJi9Ɯ"GB/6"ZgRUp1!T窪o7T\[ fo3Ꙗ":Z5y݆$pCmQj0~ r<h}zVDt:*MsWM栧3gsz] X4*s=],ow+#Ln9 Y mPmMN-XUZ|$TW+aTujϊ։vw: ]t]@E-3¸::-%Im9:؉wyC z2ygG=(S7((4mJ:sBL۝R&C!H7pWIo?Քo(PUB,3w6*е**ȨC_|ߛh+\\vV&ZOuibQh#izV:脀.mr^^!;TyK5˵ȝN4 SsPi51my/wkqqÎ!ڴsp}0fDoǼ%nCԚJ4$"W=!>u2o-8pu(Lb7Maiunܼ1j +u hܚvqC2 ?rNSc~Mc哿|u]f׉wAaj@7A@k㬋5C9ea,0e#Mf-N҅:StK$i]6b[Xkp'Pg}oui! fokݠw9whWl4;gk)YU2wW(= ]G#аB?%'yCч|rc*ڴ0"h;6Nl介K>̥MT'B3${SتI8~ޛ{iā_LݰArY>(trp-?Kjk(] h}]7@yg-Lg E&rʬA&GZ/cz x9i34ENWWa'ɫ8_YށL>ڊ owCv/tXMSQwG$|SڰqJ@`oZ@Κ,TS%MGbA#hzd4t,i4nmNºF@m9|V rZGq˕Ζ™;d'˔[~Uqb'@@w +Q7Ckyvm㝍\)<.aSU]"U"Ǖg>oU=!p9{̲@F4ST|Ķvu'CEYEu 8SEi3(iIJi&m4UEӹ>1S9|v?70A`3k9j:>G=4gfbLtAb0ˠ)OM` h.ԛ4[΢XL}B*@O]ӽ݄.k\dh +7 ڸ,!Ő#MFɅYhZ>b䑕UXUphLBդM qsbTurxsFXjӫ LB_>;IhG9ynΡgԧQxo&:h w?+ T2iJT1gk6ftE,Mkq4U1 u(־gӟ82 Gf"҆&*1j2](2f:?X,:.t2{921cM hS?-:}ZE]ߵ2y:7v qlA)Gi?W.Im#MٷF@è!4f?/y7z%gW/nX0MvDSGbvhIO:YkWpuFQhS`f Ytl2V]%tPX\7k87,-g< +VSvw="4;J@%G̵&&}LtYt Jt8lq1LTVcqZ@U󁲟u՚򙃼K}Vv)-F_N/\QTQ+siUrlG3+|M8h- % 0KJN)ozoW/O*͝(:N"A +nyr$;av $V&4w@b+ C>2*8"w'_󫈮⁷vw<6^0Ѕx5ZY+Z 5})˩嵜tq=4^0P[ݰ4uZ]0Tƙ r?}CLzL(<@>+*. ,aJMUdaí,VK*MxL'ji)p"lT4t8Cj`h# J:& -|+t]a27]:lJ9D:HC<.fQ={og!pZm +>vHYܭ9fB@븺j,s|bu}ƴ0)g K5wԻ>̵&n^7q粑dN`wnDƹUE> l5uvTĴ  V.L{O[$%Ө'{E|R,z^ +ܧ# +zW$4;J@swuЧ|YXtA h_]M hqD:ȒA \|v]5Ǐ> 7B\6F [f3Z>㩏ϻ5Z +5Y.C%"fUgYJ@j$uEu} zZG~5fDtTDZMtdi$͜ :a}Q:m<g?{Vq:|Y'^曉jq +q6/ +^\l hs@UxbA'r< /{kp%Yca.e*֠ O heIT(QT\"v W&LC!vAGyJy]7~6>I4,A_YXæɩR>6c!@HT*+ϯe(yfAV Kh¬L78'/>~}%*~2^e)~m% UK(A2c5{DҦXAg2㉘vBs}9Jd~P(La ;_M?+?p_6f\M.򚩄.Y%.#uwPHߣ@@KH@&r܃\W8%mz:&L> S M8bWmm~3nQ_>7MdփإC#7W $jرs*ѹ~6a.F})ɤ|[ݜ1~.zub>@X^_o*)dwI;LF3,':7tnC'׃JhZJ%JM; *V-Ǿ*C俫 *9/SDMxnIz(~EU?HWדw6߬o[qf8 ܉t.V26ژ_{C7uD5 umhhӶA'z(IN87#_s?gӟ820kܚDvhld%W $=M _DJ4K遵>펟@tc7>\Ŷw>EUQBSԚsbδ4MF-v?l~هV/6RV*4"h 3f_X@ oΚ259_(Uvdl NnxZWdN;P~6`܍YCrЉt&u՚_yk?YS['8 |Brak3B!G3¡n_ F4'J[O:3M!dtiSv 9}n#?WpL_3kI4M&n +:Ĩg1br {B؉5lԳȁZ+~*]+t +~Z4w|t#iC荱 8_.~g6t3Rh3g+(*qu}|6xs}4;th?\cF'Dfj+ϝxe)ߺ>OGS.('++Oί,Eĭ|5=/" t]W$J;8>w'N hnaICǾl^ij&Μy. r_EVg|Ê}XK i/TiFt@zA|v]5v4qޅ≯W1:+A?lAg6՛}n2rB\GQh݉++eo؄9>c|yNCg2kUzjLGn^ X-72JXп8׎z ɩR> +Dby=p0y-n?p'75Э\u}͝PTZ)ڰꢯv{܁r^־&xrMbԳX/ +D^ +J@ }A; U=NCgСh0vgBнM%1O}[sno h w뗕֎z >7f4ja⒍3"Ћ}P/)?.RCqg)a$7h*wXggb|hfh`Itv]|gӟ|j룞ł`?3BOSQtžTnڱ5{$8OԳa cy8 +hᨻ snd;to[qùV3 ܁ ?{:&NN +|@a SXp%+F= '`ԩk= ?,-=gx7$ZPݍFM5ײo|A8&//M^> ȝ#ϝxgCqTpHc}Zm ]@c' +CWlϹd^׋tQ/pA +hy ;pmxFu hkf;$/!\@,].]Wz GÄ`ܮfJ:l SOya=RnݺеEG~:A蹎,ϫgcFSV߬u;$37*9Øip7w렯h wƣӟtwc'\9cc"Coj644-grִ2[Wr8aWs4NtصTjlS՛]:qJX.0/Dt b6.=6w3aWi4;w _k6CZ`O:r;a-mt5.t +Vw0[>|=8Y_? ٧uf!e}CG8A=aZ6rE: uGSBH@wȉQzN09G?N[y7֭[W*G>X, +wG&Ft3% ^՜N_s +hw6C #UP BDϯh8-˧>9wWi4;~13B.&''^K[^1 d+7<r}cI.ۤ8\; ȀY@SGܽak㷩QY8%r*c.xMIɦt:+5 dY*k_ǟz͢Sf\@GF'.g":c~@ +.S6r*tY@u :צ L#҃ )QcN%5Ma!`XS>Q({03AszXЙ7_t-CfW_<m9I&o%;f#DЖir'I&U#LǤW# (M䬢j'8v2uOT\vc,EZHn>&/[5Z>~ÇxqʄJ@ODxnMՀMtL8_fJLL=t$)O{2:,tB z@@\EpkI/GfjaVs1%}D`LA.h̤sw-FIw8}0) +U?kVv;gSV}KtZsfhF8/>7]mOvVG37CWyb~Z}B;Ҡr|9E hD)+86ƜSO=e ^r~J^8p6cI92I@P+rqzJ6cn7G ֘3Ƃ*s= M7o@/h w6!\)6јyzZ0̕ {K?5+b~CdAkn?eL^MS 5^?g9c]Μ.a[_^>Ёd&.>m5m6}pl{Ll #}LYAf*s +׏zdw\Q ֚#ał`^gyceQⶀOݼO#2!Ek=< BsN7F+aj/-h1hfNL!n&,TY:]OUT `5ӫ&p'T2՞t W>g7~[ _Lt1GWF.Lt&% ՞{CNxw]Kùt #DzAi{9͏BLMv؎N4;vP3F6>Aʮ wg-~&8@ hNYa,UݐRXR?jfm4kbځp̭ ;BS̚N%.VuFk 6vW&sf+J5?z;tYkSHg^ZP h62 hU=N@ędu?PUT6Ztrv'PGϧwqmhb6.?N3 +: N*"(粰s^>+q\_0ꉶ4{(-适W%͑6mlzhVVP41S;~o 4;&K{>L>ZJl64좺 4d]-/?~O~xo~ʥ'U;yÌƚVkZF@2=U>rVB XZ i j@D.A&{ m ݟk+;ͷT<8$I#ZygVƬU YCIC M $g{Z,v =&o@@BnQ+-KtZ[8cjh{z_igr^:!d1Cu31-8FhTICjUΪY.ȋ+a P"grjh~={Hg#8Bh`9bAPW4AAAAN"A:Z( 0SIJgSfVJ@n|3IC'CdCGfӥᐠX16$&zw}jW6u/0}}*RՃSL"G_#d@3K@Q0 +Q@c]3a,1/$J3uOC-kW*@VډKrEQ\o[S hU䍾 &l@"e쁅 ax#kW90(E"2qV@7z?UFuI]_$1Oö0Bi `~92iohUt38_6JccC0f*Z'o'{u@c)e9i9֮WuB    j'P c!}6'Dx`4l4ҥPAB2XηN~]&䯿q7щ"K + '뚄 Trog;j뚡.\ &m/=?(9vxMӿӧ2zLBlHNb}r*9l0R9IAZ ˘ LБڀgw=Ljkougs*sQMs!9sw; =pc]sv0R%Q@h3#x(vG=QCȶ)U?P{p|Vsk݂{ ~{9puH@AAAD 4mBy2vc3+R6PFhzЩď*McäV'o]u 3KZi;90y z8t0.q<5}Tpw띪zGݸ-/S'V:9ǾЮ "A !$lt %Q+7zL@@c64Ѱ`E3ә_rSϴ:t0KqtGO~vJ=&!{t1h1.2fIrUry[ {{txa)U]$ .kbRS3+٩楥#ck=+~0h_puBkϒ&   D"pZqSDOCDP7uXe0*%nf ++]^qmW.=>f&An  +4cpCL6 }Ɍֆ'҉#bmdwZ+ { 띩8xur5PF@ +Z3:8Ce4hJ3Aн:W/\oE88wʕ|i\ugӁ8Z4x,iwҬvFhp|L@뛒-C, +a+[VM85׈]_Jaـu {QBo%̵¦M%RhupS98Ndt .Mv[qp_.}Q'c ssWbauE:̓yyc'^bgXK1W7<'zTPOL58njWZ(3],,H4xERˆ/w R%.>,Twڟ^,R&c/L&   .SU-A1cHtK.g}R_5[pMg)<>wʇ<wft>5мQX/ȆSOwٮu}U|y{CI7kR lfh mvjG6}ۦ?SqpsQ( +n-o!-^?]U +BG.кocߎpp_vM=/o]Wz4RYkhqRP/3P H6=ήLU +Zw no'MAAA|MN`&+pKY + ]S8h(p=PVXc}.z֖ߵbf 7#4*c ʑ"U\keqaqE@UАC9Z@Gy:Vn &W(m3ӫnƣVNX|fCh_P4 - + GEyxX%jZ+Y PX ِ@b38n5 ՟صr.(U3aD˗яvqbguZ|Ta#&rhB?(tz=AAAQ;|f.c\z (T_f C:z"V\@7>^}\;ڱlF"=㜢;)rs7G<1S|A0;?S@=j?Tqp/^-]%T~F@Cl! +h:J 0,53csl|q"0hL~vY4ixnX(z}'ZeIԆB9h  ΏC/#^ = z\Ъj$7#ETTG&r_r+7AAAQ;H%"!6gKhT-ףOʹT?zY& H۷"%{~jF4Gz(~1a7zȑ釃?j+z' )=/Hu/IJh]gU{CBT5BD fGEjt ΕOfб| /n`V& 0zH@AAAzb<U'.2ө:#^O}wWdk?1Ww>Iz0[?rX?k]4%z^l6a= +B9BuDTg^ tfn*9H8Mj}àm0K-ܹ2dI@AAAD'&JisE,+#yXZX# wSKAۇp!}pτ}(\G#7Y h7X`=gcЍ,^Bs}4]uX +=NH@AAAzNJdwx=ab@O |fEgU!Xǯm\_6;d羪H@4|ۍtog h5^俄 ~ @ F\Eoy۷,AAAQ; [^oWdO=ϝ9 p}x44kOݴ-%_4 Ql] W+}O rfVN}u uPBst|H$-[YB@3Y(u08qV'~[yX +7dnk99ݴOu&rL;AAAQ;S@K:+;o~(AGZ.8tǿ,?w"N4h\0g 67֜Ƨ~ w3 ˷@B%,4!3ϙh^FµUp(V˂}kg/1s9$   v֛Ʋ͗~oι'=r y-a~;a͡%f"¡ӎRp[NGu0jm[|Z7.|G +Ň_ϹhUqOB측sĜP l sŬ rV@8opS6%Tcڧ h   u+_r]wgSc jħŹPD+Pbz E+m/(-8y|;R!s|/n5RƎO Yu΃-*׿bG]h@b1F.10f TC@uv_06NKՏTH!ٽoڧ h   %ׄK'}r|xLי{mх}".Yvx Q@3-}gEs.RA+%kDq'QF+yhUL`s%p%eʎɸXB ^8pKzo˭k@(Yħx,f8'h==':\mZ9]V@cpǸ- W?w ! h   X7(0k쭯~hj]|O$媖SQKL:M,^]&w`>Q9;n'wzg ˟.];"vqNDb小}IsG]}%o!˫P@c0Ehi}%[{傫t5K|BPDg> r~X/_f26*ce ;LI@/S֮Wo<ڧ h   %iu"_"Tclk4v9/l`|R.U`U%)X2Im[\q,"ʆu`ֱ:ԇ#O^O(=o~鞷nu`{0X;JzA"PN4eV F4f3V@@Gn/n<.0i{ p}'GW+ukd_ X0Ű2*,1]Ճ .'e\Nrʬ=VpЙgB.lU\/oX~_Gpؗ=.t8%#.D&ia9csQȜn?@VTD,.gA+'(~Li3A4jЪTَVӃKmzt$a*v#]# 0;w7 ja9vZ5O念Y8Xmg3CG,l h[7˭xv1GVhJl^|pQ<3yY_ZShiX>n{_w*&   Q݆,ؒA0~c9_e΄ϔ LO17-pO񔳩],c0ܑ\PFWSRE}\OHSvLr/s=5ħՒoJsUςiӱ#jI~K37`Qg}j(RZ}Sp-NMsч4AAAA$3 +1:.-m[rӏKLި>!>1> x aKy^6J嚆^(tsziO#p+ h1_Dr@G&Zf؍eT=ghwZPZ! 8yWb> nQsuѐ@OhM4,SBlDE7`̖=o{ WOuIvBJ$f[lQ # +z|TҴm x*KBWiv Ys4AAAAN"]&|Aj1˦n] Zټp뽇?s7M8"lg}#%XA= Ĵ.u,(g2=Df4ԹǶ|plpp0:X B_VUr[@Ëe>C@fTFO%D 0l[ɻZ9%$o@#D6,ׅ/J\Xٚ)w w9z>m9$   v֚I?d`3)pdL\TVKEʹ䊕USlcX^_:'2ovfQ@UK;BӀh4}J Cf $]=_h۝ H@̹O ;CTPRUPIo(8 +hkG<_uVn +hxJ@ rRFI񲽠2*|iBl6a=?m\ x׵JSIxxTϱU3H}~P~{۞{?O眊П8A9+QN pL-m A@z=\/W:!h0Pmq|o +7"5ѓ h!20cJ4*xAAA>H\~h}/\! kY]$\l5f_ G`ęZù#Bo<֖%靖ʟuQF U:Wݩt݌L.`XlMP0U:  +힊\Ր9ЎCt7.E+ǸpÚxP oy)|.g>lWg 2i3NH=FđFv=mSL/;<-𵀆]b7Lg/o-ņoճAQ̆d_'/7YS 5}ڬ׍Nk@2f0*+!yh  oD~.j;ӯvGgb3gF(3 荇>z h   ϡSh#-A&A#㎣3hk&LK=5˴a6Oo\A{혿e;*'~pBN9tԆ:ֻQ+3#151]92֙ *@ysutkZCcC2pwgjo>)%ƮPl*]trg0XL%2咖 +h\lz;d*О,c[tOܜAPK͵v]5<P O я,̞t;'?[tIP@c (fYfht !6l>luoQ@9<d>&>Pc!3v`BrP%:n<.c&ZyF(?\N0#]\A1-_=6c2{Q#!MAAAZa%1mV.yuUIe{֥r{wqn~FnL-]N=yAE=l|.NBFEQ:AhYrS #]ʠ(fzff7rO:!|qCЂ n?=-wl<~t|z$6=3hvMpG! +oY&/A _Ք9~,>@G٨'=ec nmpРQ@3a0cZs{!el fnmSDlTs_ hvAUi +WBeG.{Ks;Su^0RiyU) ]xh̿C    jg =objP@ۢ.cWxQwa^ Z8F=#";H[@;ڲrr }wdifٰ ߰p+$#eq˓^'o2~|.s=vZ/j R8>w #qehF(НzѾ :Wɞ*eB98!#W@2j[ Ac6fȩ@Cj +X&r!\h@MtCGхi< %uH:ZiЎV]X=9徔㯊?,2_ h   X 4/6,#5\{h}+ 5И6=8scAaTP{zAm.Dž7=g]*LNEJGԢٮm-m n[9"hLTw(ħٯJ>o—O |-ꓙ0 n`ҳJ,5fo /%% _zcJg6 hP&qf +h,|Fk ̮$9>h8*bjU@k8:Nnl U53ƙga)J@e6ѰhC( -ǿTk4AAAA#MVfe f +bjё1]D L۸s R+̒La f'eqbg 5Dj@ A @>0+|$ 1ZZb t&Tn_ys1ֳn}׾2\D (GՃԖ m!4dt:Do9%}K26$   vF@COwvQC 4S`~GۑlT& v.I +_z7 ׸)ܢ %56(;[vGu<¾ۏ<ķ>0^"D;bDR`GƧ>@r95x$rs_g֗}p6#_x'+"a)cZhBQlS:iL@݌ YmDa,إШsB325yiv^ah:a)O e@w,T?a^RնfFFo<'9q!MAAA3$mt%3\6(S zB}-s7R;S RnNr?yF\qrӏ8ax9 E&odiT(%\W|8e5QO )S]{^w]=q9R2^Mvi[ +7d.&8c=yI+Œ0w_SC;%:]YLPbZ%M&\3Ut3#L7L4.Ֆ|gw[)4AAAAN#W8Henx"zBfE˶E6pe@N /klk˗;`5Emkkm}ݟe/S_^".sUFY՝2Tz+KGluc/7uN]A(\vX޹aH ,&z\tZ=3r7?g66%ϫgi6S땀: Z.&BF=|&{߱i{吀&   )(iu3} #˟o X :oVEI7$Y\E1 QP +2'Q{:9PZ(-ܶzW4AAAAN\DB˱{Λ}|;N t.\ͻt7˅WNw+Ʃp[x2)8|N>(*\Wמ|@y3;} }y@O33Veu.s+}cϓ c۞ޱkjIpj.YSr1TZ`4i6NֽUF2j-u:'MAAAzp?y&g: +pLVk=w8mUFE =G?^> q3 +x,_JU?ӥV^txp"kk095]9O>.yS;~AAAQ;/ +}? 'fbH?g?E<̟ GI4!2:Xv]4N +} c +P֚?F=z'!K'|vL0܋\1RwI tZ<,6ri=h/l?xÐ&   YZp'p?*o?紧)Iޠ-H lxn: }ljևciydlZݕF{۾{~z$1c .b}+oź`a!0nWD̹ 6k0vˆ4AAAA ^zM>>+ט ܂hpY\]+Wa F@_}5 h   XOm{a޶un&_qC܆e5EN+T5Y5razayB8݌fGjHDB&Q乣dw`_hBKl|mKa +GWLT},n/e3Q_+of.|yfggYrZyTp5,֕ ;qv\PzqΪ`l=Liru:9!s ` }q 1_5,'Kn)NA P=iWs‘4yz_ަKbټ]k&   ک*sS RP@W 1u0$ZzNkِ3f&6Q EzE1} "go;lff@E܎VS'܏|bӁP^UqBƒvȋ@e)e6|Jjlet +{,rs)rYu\6Y6d3Fw +$8dn@݁ՓK+WprY4 o5YۢW,-ҙhJpʴxc?zĆf#MAAAkD@[>WIܠͪRi-o+w7a8d*B_y򏝌Ė)vf5YQǩhv.M̵gy3OpM|Nྀ<?bXlߔS6in؍cP[ ̀ I@eqOEM~~`GpH=/{\z#L8CF>nv4kJ;B/;*G\=aַH+7`ڊz+ӋW@e[8rAlֿ/Oj$$   v]Qwvm/vfex1s-?uG]v&KJ==L4X,|, Sб*7t0}Uw64M4`O0 SK+cUrL%"GW[oWrc3i0Ыz0 UG&v|eX4  _cβ ݼ2anJ,Vx7tT /Ũs`_U.%7P@q5e -4kVF ; ńRߊs̕^5oJpTx<~Ļ,=y!u!!MAAA袪X,V2=ʼuM[^퀙>7YDzu+b: +?ƕp<&AXl吀&   ItGWf(PgDU }rIO0pa@p}0-פOL;2o 6 \)k 6O]^lSr6qnIZ]F-H[խgG?)/ɱf]TAG2gp t1\/ǨM/ Љ#E63 Ɔ%mb;}cЗY[6Js#x\0hH1̈́>bzgwI -=m`wh&   Fwfyh)Uy.Z_ S] 1Ayn… R[Z-\xO~!evtw0W`G?x.9M,|UΉR:c<D=m9Q=t' װ;xt*t )ib46Xd15 (K\藅O(T.i^,˱@*cP*SLY6[# (Z4 +=oo{xq7-R7Ԗ9Yd(; oa4hd@1t3c(vim،L'ˁCLЖ36M@4S˅dPEykbˡ!MAAAJDABlNz:,U` X"K(c-̑pdO؛B8?ӏ;a+?#{֙4Ӂ'TVM]!5S$&tEnz n3uX]##j\ Vw yN 0%5c|rkԾːa'l1( 8\mi12Fp]eۂUR0蔘P&1@?0+m{o~d |q20 FnږL hh-@PO:WU.=Hخp`!~1F:=176QawVY7\ *km;.mޟkrH@AAAD(-Tra-+؆: LⱸZ) F^_vDߔ5_vggI)m8 *i  +րNO\)3c4g;1v&~qTP'onSp 1\u\ +h;t +{u)nϰq}a)0g*&S'o; ux/%} |^`q-a0i#ncP1XZYWO;šY@b36Y(oV5hU +q/&hYl6JUO_kB/SBɳ]n9f[2$   v2Ud +I/d]M@CLDEv<:Xalq,nc1a@r\*.pB۵WB) R vX<̅ "2HBٯ.xՎ .k1p_]-:ke´aWvT\{g#u +hXě% kN hQ-4r["8b[RCJ5`8/ɏw`=rH@cn`XDm]˙ZdU<ξ+?m__u3q~4"<GʘMy0D@7KEH@AAAD(mc + ;$j + Ѝwڂkg1t9oi1ry>VxyqcyD޺45~Y(Q&8r:Bfٮi-.iw3A@y7LHS?ψM9|XLjMhxfZ: +h0.(|FMFv_vMo!3Uн96B`mߺI;GqWr.&42607T t̲`㹗?@Q3L)iLC3#)hZ^s̒ ;7Ԯ4W8'!ɌFDIZtNBzR;hl;Y֛0'|KOu) U=\\P7}n}4Dђ&   5@@s&y®5vFG \ghi ڳ4wTuE6m@tm|la={;į<6,;@? 1@48@Km L@|Uh?3]KLcC2^Ht/)]| xiflT9 6,h-)a{UhJ#8m[bZ,Աy,T.&|_=#˭n{jT%Hjб i"eS}R8R ~91v9:띡{ e\eEѼ6,ߚ&vW4 C.@.\P~\P)u\L}$=43|*㵷:$'RAAAQ;J@CAРYh-K %J]YN-СIu<\3^{v 0aeW.^=Zޔ90Fg y \WXJl2WfiW] +e**;k f!R!y5O-(EnusQ!s9vr649+2M"!Kк\]1LwMoMt`(Y6Z.0 Us+Ex-Rhn{$   b͢4cb&! +h&FwlW1a0?zjmDܩ璘i|/ zǝ6 6Q@+Յ&y*;K@G)ЁɃݯ&9ꐀ&   ȿ4׆4ذk clt2̈]Zas( 5+}NzAP7 +o}7/M9{*:׸`#m4)_$tuǞhMvKl')v\5hX5ђ~q d()^-z$cb:,!\](gؽ0ULW;,qT%^X8nlN%;r)i q+ČQ@Hv&շ2=j2%פ&8L%FeX]@1VF>61펛I𑆧) *yS$ }ߓ _x #{I&q+1Z(9N '<)gT8 !f:P@CP".uWLϰYt&IKʍr?WY+{s ʕ*I{z任>8ppgQAAAQ;?>lȩ pU,h͚bPبPnНNr~`I܀_vW4ϟG+r6Vcl7F6'~M";0jePa)BZ(*K/.윺\mL_pĽ<=+1 I:V"|o_?!) dVQI52G@J7rcMw$rA,KlVP ˓pd?k~y3#zu\~rƝI@AAAĚY n~ȟ;h"M kY[ F37pthfJp]3F,;t";Z[8cxiNxO9_q;JutBPr(Tn}s3L [6|5|eYCt^JaЇ~أ A1c3Xc4שhzFbs7({H;'KxXEra@d9rGbFil uzՕQ6c䄨zp..9\q S8L5o^A;٦հ"-qvj +L    j#﷥mS')&se1*U8${̵]3G,AaI⽟9-o8rjr6\C6p) y*C誧ニfE6DݜJ4h/?Zg{P@ItWM)f,[1) `t2@Yt2oH]uzgCƹH,:kL +hMyxM:rf=N±dgR^y%ȴ\MԆ:\Wer&z˞ +L    j_hYS)A@_gJwn߭ +D seMG}z$~ /9{sNf8+1+`P )E3J)`e"lro|ue־f$W]d4v3bS>ǣ _M7e]D,:պ8'yv}T°]!Lt9ɡ]ᄧiY nk}̉O% ?ՋͰ*S== -=U_ M^{p$   v5q̅::ffQpͶF7 ^mx9Z Y%XcI8rʹȶ6rTAtv@2k?fj8.;g5xtX\WߑqvVy]ahZzbjGjf L{2CgwO[܀Jg1АK'ftO7ʀY8pp$   v4ӪD@[ 0m*c ?q7:!K1[Ǵv%8pmͪԤ&qέ# weق V%$iЮqN)A.fN7|g.:Ʒ˫E(C3耢iȒ7Z>ʇT D=g0s+!t8stO    2i{uf_ h뀚" - S۶UEaY=un' W[B `w3}Kngߪ".bq0V#`Sl34yr8O Fџ],Oc #sӢsS +E`Lv5^୑#Day[qnW:cA( =gKTL!Bm{4AAAANZ@I4aUtќM ,r l#wke~ȑ!. @P,y@f/f2\ܸ*[Ut/DYQQ^^ ~)M'] +!?Ȋ&g[˙F֫8mNfl6TYm? MAAAk.1IaW)`AAAQ;c hlVfk%/cI>d@5ʏϪ=<I\U<3l6:w ;뛊(kfQ@#{ǑMK̉Eދlc ٩p{=UF4e֗sя,\cՐ&   O@%,\/Tcst_YxX}y"O +}pwϣH8 SI,s:sVa5|qg3XU +Uz"A0uTiˮ.W ݂9J}IYxa_9̰(rOh.Z h   X-(wygSUZ1O;s>k俜Py^} } +s/ }` +Mbđ&   5JTj {E"%θbܑ?ޠ+DG?{$Gz}_f֭ 40 C 0D g8KH>ȺQ$׻+#dSEur ZI6IQto_"F 00h ]}wT*@TUU _:2ik2Ǻ)d[ +@~qGEьZ_򗧛'4>1R %6-7p)عa<66t^%&"\\]- +*־#Vh\;Dž'̹,{z 8_%_PbB|JVLR;ӐÑJ>YUB݄|*މ3ShAAAAX:u {w^-׬*{>J_L\Fɏ21* vVzW4xN9O'4N26܀>h2tC Q@ZY(<5]81"7ЮDyjԽ[j n ! Ѝ@p +~39R!Msd*YE顱5n:_,v2NF7@M'uUux%M nפsvuv*BɈ‘S7 +mdC/^    ܧ h}+u hLٓ->ޕrLhVW旋'ۥ1R͍v^蠯«˛C/Z%jrI;6Xhנt3w`y4NK1lڒ^JOoIU\-U$ھj5G{G̰M3c79D 3) VKWė4T]:^Q4,]P@c_MFAGl߅vܒX=V\%46\+'>KYO "AAAah2>#-±%/~}ohYw|(yt| H;]Uc:vWhV(MtmRL@:Up9XDM=$W߫ʕldn&WtvbB4n)N ) +Un&jrֹɇMk ;g0mf,z1f@oN(d8.=W?8v32(CV,U:yitۥB1uaauȡݞ׫{- +_\F]6y jITB'~dGǾ\Hh&Zr,K@?X9A    ,Mָoc2r97\@'B]#/~fP4r$)fQA4I 5[:M/4RfV!$L[W4 K ҆Up{{z;@nҠgb6F=2>9nX)p6.4y0 +h|:BĻ +|t+. kCc+znM\"Xl@7Ч-զ7*.Ɵ\KتAڹT(7=PQtQw]i%H"5x)ͯ,NG*DwK#4ѫfƥOD8F*_*ÔBKxt;]ҕm!-   #%UVͽ$E41$%YOv⳾_M: g7Gv;Wa[}fi ExMGV@󉈤F)K\:(йjEվ)-TA`@Km|!z:!pr3Qhttzh^KMeFzYXbsql:MM+W1[Ց7l=I/6Q&.?#p=5|`}TK Z4 :ЩA.u}ڊ_&kڷ nb!nOА~dھ̠UpyP`(6&qo!tEgKv͋63t_Z|=5AAAS"o[H> 聋o;Q1MB>~sO7.~U+ tdtʔFlo\,s & +vR +O6~;`qMݹ;<kڛ&L|+vEJ@\-uIku.Gn} o5}#Yw$2&ZШZz +܎Q+ӔB +&kX4 6EMl/o (WD@Dʮ/(߳OV@%8fJVU+8'DM RiwFmǶ hXqf8NgMbb! A-QĞ '϶jf`v]9r}S&/Qc,ƻxb2zZh&Nc[;Bz[-   W)}-l/[[Z϶|Bwk5N" +'7?@yWX MϘF2 {[XKm4v3O7Oܒm=NMAiسA:|?(ܸ``Y6uFV +bR%t">vl7'ڽ۪{[w?)xP:ֲeмTS֞(xݸ8Vu3yvާ|37SC4_pR-'R +hdB)<"&y:esR*tV QN>zU::FpNVx T#?x%"ZAAAΎ&Z) m]ԡZ5CHpDaY@}qҪ(o\x" +b b?*fW =n#[ +6,*<@L+;YjKkhzqb RJ ~k {2Ŝ|=5S_0͵5 wG!?[ +J[l;L|IV{ snހV<3 +iteJ$2|nC_#0]-R$ci@BlS%]A78S;q:nWIə{i*3C ۱\@@A}~~4A    ,M#[E,zzR!,bƙ`C}_t*8c?u0BӀ煌~ߣ?}ܹ͙^g&bI@gnJEG&E+$ &2yҙ FhvrU}MRag׋nu:U@4b]6>йq!屫(}Ikx kJiR (8LO^x*^)c@"W\^55S7ˮc /GHF hte&ʾA@StQ@',sji| +ͥ H%4?+Kۓ%գgA]Utxh?C` +j֝v͇ 2nΧV\vhAAAA(Q+|'|g; +&^ 2%vUjd5t;s.wI`L@=ޏG| qc%bGQ@󑃹6Ŷ{DĄ|Su!| 舌3iŴ2\@pw]\ݮG&)ߖIK~\rrpSJdW1id)Ӡ8J[>aEpUG͈Ɋj~۞Ôk&54@xIzGOֆqx͈N- +h(/΍(D̏] h~a?׮WH;קc!qyC^e +.hc a#'/+%.{ ǺG.26Ex1kWX1^L@Ӯ6O>oD@   ԛl kG îjg(֣(Š R5zHM{ VKJIC]ߴ'3Q'{oqާi8*k,Ȇۘ\!d{zDJ +? \DP8+XUWŸs +htBɕ27MN`|In63δPtnۗScҾ%,<ƮX ++5>%ҴMħcްt0xR$"sJ}15w]q0gWx;+T,yȗՐ/Grْ檺ۥ\.!L?QLU$9~w-҂bpC' ;.Y-Āoy "AAAa{P:h!bb3 %}A"EGU͞tX\3n +k/l==+?ca7_~ PsXX-]ӇP@;BYN=u( $LM9wGHz p='w7+j M$N)\q͡NH̓/>2.PyN@sL0UZ3Օ:y Й +Gpڟ#Xp7 +z|D!;.84.|834Ǚ[ f_maBZrNwu;}y'Oo7v8AO +`hpB@G1͆FgrwbC    , -"1)h`$@v XQ]۪D^jQ7qnA d~iUw|,;1!{#hHH@c< 4>8f: L9ضV^+]βsqP[9x;EK p3R^k[݁qat$Y攌3i;ёٯLZTNzqW*|ZMN@'~6;nKOcЇZ2ᡈ4%sqf\%Kע(tT,߄G|c|pW#F3^yRbw]]~~, +N60z[=zny۞G    ,o~Ѽ( ejXƎj4԰1j+CĨ\5o(fAg_4u36 {LG~=ycx{ ="? +Gy IYF< +k~"f,S0SStPT~UѝT2G;rLμ*#xt3-]1x2GڮpC|7I@JqN.DV|/P3g]Bs4mC诊 ܷ{ IN|O5tu"۪Q[c_.2 +ڱ}Bw&kC$AƾocAAAL@Vnh8ـR^Q1>MᅠD3U18'xYXtp?(3MQ@[~ LL0\ͼ3Kh­JrAv' E(4)Sfk"4)7t^ h })xb8]:S̍3Av>hVxbb4+xtc 5}e^@HO03Sh/oLUҔB/9-Nk7U^M\ 7,+ hrЂ   tz&:5.=P0#gXgJ4skF,~h0 `׬|P7V]O/A8{츿1n7^ VM +h2tt(tȯV4'9pNa[.?wi#_Ag + qFMiOob#2$PhϢp)o9b_=^{=[2kC4 fI)Bu*rІIA-K<땹 1Au߻wH^ئc.8XGvٵ -   gB@cF\ c>cKu^Ԁ/c\>Lkdҹ0=B܀h$Ξ|G#{o?L}u)dv_D!dڮ$2;県iVރ?- T6l /#$s͔@tn | -F%G|݌Ir詔&I@f۱:4R3~]pMT4DA +|a&NSV>4sqw7_ h^Qn*hAAAA~4ZHc/iʟxڜw^ ڙ4B\JShgr\Fo|</κ}] +VsuEN4f)s\@5Tih:i':CZ3i"bkU p4fVA9I@'xW?_;Ą4jkX-ѱtǞHЂ   t.1/=ht :"6l4܆d4giEŮ!ن(ɏWe?ƍ /޼b:h \/VVAOZNKw#HL3(y(?WvtM +O8 +WBC +V=+y 4Z P+VL[n 9}،V̮[:U9Q1ĖRUKrU]*'}9|/}Cf7`n:dch]ʕ> +8qź8h-   N@VZhEh +?WPT莹M&pJ.ܹ3ťgx'`>H{>gʝ+lZWmݚYUm,]ީt[>'@뜉YHK@4hYu3'zj4 D9[~)⮫McOK鋈…yc=n.~Lupн7f-ح_UJO7Ѹ.Wnh W TRkbMEZ с+>8tr_dRp``Oc%5ca1_c|wm)vY>$Ň\{8oWE$i#<> 5BܻhAAAAX:OӷtR$B3tqTd88Ik!W^ϳo}~}\ wܼ5} Esuhj8^ܜ]x:4RoziRMJ@cĘ5F1zeM4?@opwtF3K[(ZAAA߾knkӳuyBº~gJX/|;~K_\%[:z58[є'Gv~q? =~-X=XaHEGJ2~ИV\ ޛ1DqUpL@$F𤀾y.{ m߾vCk}ڷ$P +Ǟգvi E@   o) ͘tz i 2vSoG^;}y`w)Gd*_BJ~M(:Ri}ᴏ  T5YPsߍ1L2+\-'+Kǟ>󉓏}2{ʷ>isC$s TB4nՠ¤hAAAA_׶fbWCq^PL3 vÇq{~Y*w= +cE*@nTs`or׹\(~_iQr NH>Q:c1-T|t=L[5AdR(GRo}SN@O%]j!M9@<)yKrbAAA\1U ~+G[/,^ ֶz a`|9d\F*2. hS}LNMu18ЗZ*]3IDt T@FXVaUt[w:6o:>S,mݘOhMU8$M1"my')ǽtD@   qz-K~}2\ajܿ|_zx!rG?hإA6YE0j]mB h{]҇zɕKc53# Ʈbx>}h]AyLPCbC*Y4\֡1o֎޹gw.9n.ݨwUM?ˈAAA '`~l _V >Ai_n}2p ߕ ܯ3gPhz<. t`WqMzcɸtLrČ@n-@YĂ;*{9ڤ*,δy_v* hpMhgd"uY#CI@O/W:h-   K'K>M>TǤ̫\*ؗZ|_`m_sNN[oOՊTe+P#8q9TZfbm뱏]-bՠc0 ܆^5WT2Y^[uQ/VZ8nNl._c u7&7^}s _|ͦF^I|AgAJգg{1ED@   q-]"CH~KVjDq8|ۏcI8Pe[fa[Q8RyZ-L#|mպFUb⮊#c=rJ"ᔘ:2ԏ~jHKA㛺[:Cbg׸ʷ>]\;^xkH÷P#۽gR6hAAAAX:y ~H.e>{atʡB<Sq60 ގ]9[b M\F.U80;D0nK{:t&qW%Cf:hˀpxj怎cJC|4۷>74&v hIm2eژ!|$ ?鬿h-   S7B/~Wzdqi|!yϰ)4*^׾jOCP@ke¬6sT4Yi$mS*vS"Qcv͝uFspwxȞgv$Uܔ+|蘔MX`pF@Of/zY^)]]t`o ?rK7WbY1ܫW3ku)??Yp UAAAu@'JW`fӇ\W;&idPʣ3 +b/yg,'DkCU΢5S\*{亃ف3DB' 2k˧D@T!1KR~yZvy,T`Q!^z2qԪ9ºF`$v?R;AKStR=MtcLv5~bO]6I6ҁC@/44cB¡2vznhxs;JJ-   K  -y]T-}wjUWW8Pf\]KJSҹ?pygmeUxî|B5%|mqG"&> ݾ;quC_[kxČ?2:h}FOMi\إ0O5"0rkگyxQ~9G#7>7 )>48y#f{$: 3Ru]ݮ)?*C5tǓzu˕X-<8r'ܳ\;j|d"~ )CԊRcs Ђ   t2 +hjH>:~GP+gCkUvv 0hQhPɉ}݁oYHCUƌvҖ7>m Lhd(Y_7<_;Ɵ1XBŒ +,3F╀xqiΘnte)6 \E1]ԁ;Z(svs??>pj+mW\N@O<ȭ%`u۽u1LWcR_Eut 1}i2Pr8SxS{֕?je 3uqͻW,YhAAAApS? l&ZƠ)9/&P[#P+㟼I @@uRt74ī)l("Ad +laVh64vUUf#@ByU/tʓ$2\+BJ1&g h\{5 \G +fȋ>LYؽ{1׹F@t1m +n^-(na3Fƌ_DgP~cnuKF1t4jT݂)DJەHцhXtFFu* ;Dw&4f{8qg +zp>d3PE!οgwK&o;‚+)E    ,_Ti.ջ5I uV PN;[9Z +zo0p* )SxGQ@@}V hspuKGh͆N@;aDe[tTfTrKVVYOUA@+̴1\7:j)ihU0LR:5(ǹV~b1׌n|:{fg1m<;7uobUvgAљ#F\׆v8`/bthԸ55/ d ݼco_<7t_VU/{GGyŧ7|"ܸʷ>dK?ȆvU_zm?GtjOMMW#g>yO.*D@    S+uKwޘ @*N{̽;ZZ]q;;gһ$hj@)L15oT8FxfƧ]LeY]IXBU] Vnf2ܱΊjn<ߑ. hsFLQų1j >c:ř&)\l}zL#4mzFw)b! ߪ-]ӇۊI@s,:@AFYsxD!gٕ ^DB1hgK4jeZpX|J@SF +:.:s7O@闾:Eb[:P    BN@aS^Z h=m^ͽ_H.G>~WBc:xgt<. 5 bҾ2!t}Pzuvn!>Ǝqoc.a}Mݹ`_AL\&p3agܪ&h,j4a.p UA@0TW;< |o#5yjT|||bhj&Mpt1[j6k@@0,L8Q%+mV>cZ1 kӣwU]j~-O"kB    ,'%JMgJ(3#7Zry&lzqt[*J~>~ݾӆ+DwIwy ޞN@Uz=F|4_yn \@y'Vйࣾ]1ttn^æ_'؞g +t }tTv%mW~9m B@ȍ;7휀 tGA;5-(NI ҟ&jVşͨ#z RB6 +jeJ񣀦nhM5Ejm wT=͋=5}(mCk4H@}s-Ĭ~Peԝ3*B4ņ=س-   K h%Ỻ1INu%L:k?*j UG7ͪ\8mUj=|kG?%:#׼QQPFJtqkGtJF$=Aꍕ6Z+ 4J@S[fhHnS ªt)Ep =(MYy=\@.wBLEՊ]x&bk?X٧le]JwjTPnXC!+&FU9}TA)~>PMj4jÙXl_xWnz9X `*(x:6ܪܗ:zŸݹ7 iq AbQh:-nnW,8YC"AAAad:t f"9%8ؠb>$/Q=`z~bs +z.]e"z98$Z1Jv?:BFcF옉Մ7Uvh73k%;$|o`4؃Q*F:yL +s㬼3Jګ.<Ӎ~Z +W)Єc1ts`. h1kfWG֦#C.i\F ,XMOgJPjb_v_Sb C=EQ@Sw_pv>%jX=&qcu/o~o#.tskP5""AAA>bB@+Cx)Xm$hCt7y.'4oVm֋e ?Nɒn&:: ~ޜy6_ہ6|t(( +ͫ6AC1g֊ʦg ֧95&S\81 WYfz:esƙ.棋휀[G~""/+}{n6tO4vs9PbibJ:nSaOSU|y5ŒBQ/mൊZ"Dɯv{ 5ޟ,Fy߇LTz-ʶu@f07~^/&-??Yp AAA#m4W hs".5 +K *3rX7! p"LSKsUw/EK!~%\C}j9Ec/sͻ8ߠWp<1B<_L)R*.1iPUh"hpziwh7tnC~bp95 +M , f8iӃ^1{"ʟx%xz9:tZ`5m+yk_6fYoWݴ:ΛXܒOWʷ>L3ATU2Ot=5o9۽ovЂ   th#aVc*boDsP@cG.3[jV^#W>[1x +/\Y[ (?4+ѡ(4 fhw[@,:]@94i4g"ϼYѹ6<ʔ-h]g;(mXz)cf0d73_ )vw ƳO]:`d_ iN<ܿz+_%[ÄOY5nMP0MT}y6wO=m&D@    hs-+0e~y֦QqA@ʅcE'9JKS:(S+s1f}q4oJ9׃MJV^B@ +ota VwVqČޙܜD1Geuq>m Ήst#tDΖ>螉 8?#PI_)*)jξ +hL@4/2Fg='ߠa/P%x=zmIC~ ppPDK qm~Ck+ ֎=z?˨>j́7#n/W9_=~nwy9D@   )tzУJ(.*bb 8G&̸̳$Ls\(U ¢T@UssbKGku Ҧd(ujŦn7REm&Ї-ww׋{hMI0MYi(LCBhZzj۞җUJ@ud}tʠy74\0V~\:7J.s⮿Cq/a|2qVEMft$y]5tՍR;@xg)mO{u[w1+GϽW>,NvRhvv9/?ER\AAA]D@ӭ J+ڹ{ؿ^1qI3=pdC/%ߣi?+t&yeSQI|`i +~) +S$ɲaD3@iFwC+MsH Mt{T(wL7 +#i5N25ʻƩ,ԤK~/d 2Um.J:M1*>s'shx#̧UA5;stSE3w$1O2BQG鋋v;\)iRa<vm7]j$I@wnT@U(L\@N4OYLHMP#\ xl{^Q^4G 훣9xumsMiPRoH+/s +.$\D@ _?8U˼q7GAL>kˀdE8t?ڽ/* +R"AAAahdʶZ`[H ++ހj ;`⒑Jcht6?ӋПj _ ׶*~!F$)%Jz`KnN}o S&Lc݃(ys:(, h.Y1e_ס4i:( AzG4/,y/bM5;j@FGC1o1t!6gh;:RaW~]evOǪo?H9/` hGr楰wfyxZ    ,r0>4o/Cij7RE +dJ2 4x]h}zn3gL&ֆ#h&缩ɲ.h=-Sxc) Gý!lZTH + ќ}̖Fh.5<5xL_ ck~<.T .чe\4"M + u#[MP$.#st>m{7o}S'O=_̸ʷ?a'MWKcqGzp~Rz3'>qCG=ڵkq^^|GUxA=z-5_I#&Kx)Z*f=~@ut)(?84(Yƞ badt.oA6DnSW˦KΥzA~w>n9#5E0Y3[?d?~ ۛY7o&8oԯƾkʝpJjOIo*и8-   K\@T5a~)Q +GO[* Ȗ3mhdDN@Brᴹ. wTw)GfD,qF cr><~-= VN,Ge3hOX҉O~;w=lN{[RWpts*3FBH \nΥ^~ ͗(U8v0/|O2jlَư?{cZ[UzhU"AAAa h#CP\@7aBB1q8]Z,e <*~td'V hrgt׀ju3|:ϱa=l?}B8PB9IKOvh㹻ȁ/j?vuqyjP>nc4|^QtgAQTm/Y8=HMg l =CC=aqś_TziL;sUe mлKs_&`0qF1 +}nEЂ   t*+=5>_cҹJ@o僧!7r |T31> Ehw#s+*Cmtw&l9nKn*X~b'v??ޤ>>p }(ΌwI@s\|Eҙ=u4sqY]q@u*Ĵsۺ]PmıCDgݹk翢^i]ݢkL^PpwqhX3;|l~eQu"AAAaT +{-XU5NWmT 㜋Z4ꡗ2~`"|%\j*﬚'h &Qg)/1[K~8"L~= +:!;WM&BAAAS)-/GG3*_c1},iaTcJpu7doa܈@SfMvA>4ͱ1MUݜIA||DG/QE{K:3r5Xi0 Tޛ/}a{e3s4Ln-݆UB]ƥ83OWڵkɄQhЂ   td}dz$?Z +ꅷQƫ/NG~o_iwr#3^Ҟ5US 7R5ᴮ{sũм0 h7CZ8F*"}D Nt PS/ArA]s4BAAAS')eů{D wiwTU#*kMuyz51bWæ$`/*mZJwQ\U&{R('1_=af5޵tLyXtK4oۺi+@Gkp/>׾OcN(ͱغmq +bNn}j7A;=IUQu@AAA]N@T.FzSo/X-MN:޹ u* 0soZ;參C = +zČh6*b) Aإ/h;r,ٍf1`/] +WgO (}O͍sNַp͛*s M2v_P*f<~Oz~ook@=Qaz葻J7v=g>dz>݂>~=-   KN@[ y9H,>0M^;P?ZQL@Ia.%c)" +Rhԝ͠ۯmN rڡ +K Ky55 iyڍ|Rhəޔ65YG6J28ath)54yvm'T\ܚƽou C69lz&msD@ٚ(2e nKtE4}ӛF(a͊-   Ka^%+{&=24-g5-ջ)<=ʬ\J:Pӳov&b،fg68z=D?n?AUqUi4מ1dys +O͗);1փE c途n0yo4Qk?DCԵּe+j&1 `2 +h Y?*:#cferܓY@$_S_Hgg~m?r֭px -   #yfCOGem1<0'm=f:,+(UGҦԧ 0o 2(1B* hH {h~~V? Yڜ_Ծ#MwoM%BUصW +#e\F".de= Na\ EpP=SƦ/;:ܼG:rws\@_tCO +}|4f]@tx`F{,n`z`4?.6qr+oF{}'$onU^ ;1HI:R5 +hQ7n {֭0 :tiЂ   8;WvxC/bDNE TJ!h.02>X쉎MAj|}Zh;(Wpm FAԝ̹38]vu+++?R^BAAAn2QhP@uA.2ޚu^}hZ4.RID81z`сbt(" >0"ݚIojR\w8! +P+`cU%ׇ(4b8y6Zj^_p`X=(@퍖~F=JДܥ}ľV!V,lK^颲l00hEQC sx)W( ̾MjtBW~d.ÎV\w`N@c\43!g2^@Ξތ.~>屿3 Z:.2o K_qś_l0em |}~ao@=3wuk1K +zUr1%AAAa1v4$N@s\oԻ=mS诃,biƐd0c&:R j|STҔ6aG 5 8PzvE;?WQ]߹9r8twD??7ݎp酘zFIz ,a]c4 \h]$Uƫscq+hɃ - gxդrn~ Gzlyvwfc\>C,.e</6\8Cc4OF}~d0 +MYg>󹹟^ƍoHgJZAAA`G@<+gA5DGФ pwj +8s;W[ s5`O7Im \@[.q]KtM +=*v*4A.z,`)ʐ(//Wɍbw!rŒ/{\ ޝ郔4\OUۀ7}ON×|06 D.vak0վ_.o솀w^_:ėAAA hJՅ*yTA i@]OJA@/9UbpJ47t^`_NPg5o'"~h(nN@34wznM`wv*6(t)?{ഞ&Hۍ|oQupD3E#h6$5v,xhBe4oPsj5 +Ҿª\oI[|2+`9d⎟tG$s +x?t<ÎKrU=wL{*vPTF L'5r:N]йbZ 'lj=3C]pΆ_I@9*s? fAx1my߇x h=x-Eɓ'K|uAAAAx />A`GRFEZ+%{bTκtM;B&ߛ[Kvu":&Vm&0%=`R-$K7Awk/\wN0@ B+%9ښO$~"7볔ВFG m#ަ2:&eIgb2cД5^@%f ͗x((wuk#ͱőt…=#I#~h2P_Np rBKQp%[2 lhi#)>OO9_}ۛ/-1l^V$F 8gw?NOQ*-q? DAAA N@-w jte}Flot\pJriN@SwG3E{kf=0mպ+o y+xdTK<$E6vkӧnNjɋږnE Qa'썮Jf0z8ɝG~gz%/Ic$./EI>iiUVD;mJi\\'jrR|U@Bϙ؍h:|SYV5C=5dIA@c:wWpS: a͍FvǺAK E.~b#٣_/E;'O=7.x2Z*&0gg~z*A8,n.&QhAAAAbG@ɖ^iCw/Cj u@PRI[[)ΎJ1$4^\rŌB +M\z>z`;L"Q16rL?#Ey-8;|@'!Lz.[.G6J4dtx)ǞE4;t ҝũiIw>6 h_;u/yv+T^##xo=H׮]+N&\__/k3AAAAbB@WqW~Yq>NSp֦ӗj =ﲎWU]Ӆ :@#-E"Mb$͑+J~]=.?44Йe6ߝ҇pعBSɳ6b +)KB\4?O%CW?J斤 z!̽b42]{Ʃtnc쑴OR,ǝ+}H + -1ff}?40wP._eAf&|9z/+/7A0BnY|'rڪZUDO&ʹ9[?AO)6? 6j2LEp9sloEr_/+kAӴ$cO?ި<l*O@KdsܭN}4M +n;"Y +'HDt7˶?8 +T2Qm=]^'2jdKE-}{gy5#O˦2s_LY-ϐ/u?E>rm?~8n9+ՋڸGֹl&wh~#?skuf @B`Ezn['( aI VyLEyܽ|*6mk<oHR7GbYH6T@o͎[δ]ZbRVH{fU&o2Na}V$?_x/uG>eBL5Ѷ!-E7zUsTlFrLj=q~ٶعg˖ he7VI@K-Ґ}x} +bNJUtD^ftH;B +ס2->V]# 0s=;*sQ>2!hF}r4jhW:alm +5!o,~}ޱb#34gn^n"ebZ5'g)oF w:ZSӫ +uPKL우1Hxc-8h!gf.>/:B䮁L&v5;ei*Y7M*sHjiZھjnv~6,;݇/Yv+V΍6]sq:=O/A;q(:@aZWc\h- =JJg; -3gG@s/|A@g,}xnN9Eu3&:9M┝+/ >l;ROD[Oy$uoO8WYwDrPDB@;f`I&/e㴵k䮁##sD"H3 VYġpyl_I@S_8?]ʅ[o}6kzOf7褘[u75hv +h_yWpkEB'$ҡ FHV>;%bx9甔><Խ[^"vf;**c';uH 1eM%ZҦJKɢF>6 ߋ( 5 fԒVK5vȒiX2bsWE: klȅtzuM%̜Uj/r`lH&1eVgtȟVHu47yj7C%8O@Dyfy:;]~Ujl`fO͉R+aV.qEe$;^amy_'M;q"R^pچhQD?K>Z N }W>٘dk8]g?NѺ8}Y}D 縆c녁trsf:B@W-uWNJpc}G͕ zYFG'kfhhl7fV@O8=mP_0<-iyU>ԥuieb#~]Y@_jFw6:B䎹9+Y@"嬉^\:%74P;%Ki6LcguЮsx2i6Z#G.:&OtݛjUqsmUrpCY'w=H8ϜDs*ȁ2$YzKJ ZdE@/g*PwT'uJy):ͬ?mg5S8aaG$|%|/,9+n^p†;NC˲f,)91Z,FFY&z~sUQ )! zSo\C*}bά2Bx{z|k1tY7Ѝc#H=H]R=q6'׬kߍCUHc<΃H<늧p,OfUڛW.!;V}pڹ; y0`\Iiy4p)!c>ڇF[-9?U܋AL[[3oUQ ۨw +endstream endobj 521 0 obj <> +stream +xm{ezG2mCB]Zvcյ[Jm7Kܒ6mOF/ȎdIs|A c<_.]<=キ{/1 {{@%*0@@oO+p_04U@%q@H` N"@WE*0 q@ ' 0HP I$0T`0 D^6,h + Q@@O8 `^ RT`0Q@f4I$0 ' r + -R 0H7g$8q@a$+}Z@a`$ *08q@ + N"@¾ + S apf?nT 87' 08qCT`<̰P!j02?@qFX9xG t0 PļmXo4}E,&8>|+S9&긳'ފBXtLrGq]U ;si_ZIOo +[7^sN"-=ܱ/ݙB/[WAg`]rLTtN"]:4wy/@Iw$uہ51_JfUw`M֠?q㷃;&&7/(N vU7w`M47/Ovp{w߰ܵXW|o<kHow'z570;=/v7.?wx_^{`=|t3owq\?| ГW{؄ޮVߕ]͟fIwoww!;yݜݸ|͛ }!{.?lUWnU vk7Ѓ_M-@f +|`vk_SW"k&}?w-ҁ?{0{<هG}Ԅ}t\'pJ:aqN֠']x?8|\9éG?na`/ӗM;R{<1><հoI_BIw)>l7>~]:, 8z=8'᷿K_BEwy-MUJ,H MJ\o."V+;` :|雥 O";W~w_vVW+ҏߦu ::wo_ޥ80} _ީ8Vx%t$ +,k8Vx Xto7`_ԥH+=` :ti` z]9.>+xW]|,XI7N"|,XM߆_ ߭ۀ%XY$Ҋۯ:X0Go_n%yUs/{-w'GI.O:7Cp[͓Y]2Xp{H{42wx` N{dQ#wI']ۀ%XG/P|磣Y^5)'˳㣿o!XO'?w4Y>?{'golh"XӼ'?FGQ=jh{>nVFٳqFc[W Z?FӇ'4_MzoLߣi;׶, 1'GӒ;Nٓ&p{v<<9Nl3ۀdӟZe_6a6lΟ OGi4 }2ɗ4Ϗۿ_6a?');zr,B7_M#5k'W;Y>a + uYN'?:oGO=~Ѱ_?nV#ؔq8Imxǹ;3&gdz}W" ƴZO&i4+?Fڀ%ؠN"ӂ-Etj`Ez[[lֶ_ QP6`_6l'~xw_*Iߝ, m$ҭw/۰ +K/[H ?/K/۱aܭ XmJQ6`_f8nYPq]ڀ%ئM:ۡ XI5?wj`6:cW]z`zkllN"y_6l;ٿng @+xFϮgf}a'hF*OFz|a&h`mX|2ًoō6ӬGКq8_/^|ˤ^f~zS>x 4khݓHbec|y9݋y>1+Jgџf 6ybb/Ob|1M#n|ϞγY~v6ܞm +endstream endobj 532 0 obj [/Indexed /DeviceRGB 255 (\r+IhiL.N0k1m4Po25QRS8qp7U)] endobj 520 0 obj <>/Filter /FlateDecode /Height 468 /Subtype /Image /Width 1920 /Length 402361 >> +stream +x WY־ծtu:NBHwbI$(G>9G<ʣ3\#蠃x1zF8 $:rCR.JKU{׾[^e{׾U~<]w_jcAÿfǾ<d0 _McvKe.*wbLTϻ0q:z=Z9ӶNS1ѥ&Z^4.VMЍd7[Pα 7t +aXkW6cqMUhV6n]U4}?ˇsϾ~MnK^uV4/|7>Po=i')K={[b^8&Nh`Stauna +vyLۙƕgQon֪:GTU y?3UOټic L>D)rⴢ`-vƅfߵV|K->q15z}\-f/]l)鳋텳O\Qܟmg캘OvP;` +žn]Ov24Q [Y a{XL{ɉtS;~hsTMJ[^MXd6wj1t휊c%+rU)]>G@ID])\r`WKsT +]Ľ6ZUU.DV +] +vJ;1{#'*u5g]iS_*5n[#j*S'~um5D]˽x =PD&?3Vѧu T0o-{:O,Uھ9h(OJVh;ֶbOmBZRX.ܢ2W}56g% %>g7_;a-ɹr˧%5X<'] +5W=K1رcōm۶wyܻm鯬RdK4QSܼr }}gO OL^Ko`z[íj4CUj|X!>j* h i +\bF\wh6S5o7kDfd'q͉o<@F;-۟ʦ\ិModGu/\ʣ'O-iIc+ZMA5kIdd [Z@ݷyZ4lА}`-В83k2 F0z*غc9A;vz?u䳊6vTm-mɫLhu'S@3;{ $o]訓 jSN-P>eO`bu0z%ж]>}&cY a/Hv8ظ}M5uzD}U[,?%Ɯl+حZg>!ʣ(|p`5hQJ'|8G5.:jĊoQЊzwjt $z=vMtEM}vaF%`Vjz- 5f)&E}Z,h&;TC@Jխ &"/ 8eNs$nuhbjZ/_UUmEα۷v*RW%|=gOQM-W@B0=Ar0!VG9a_Yⵕɲ5WOsQJFd0u7u`SE+|LU!mw~aM-g<:S,jX۪/&g^JWc$VFՔDFGCT7VeDDmpk<랻gsiǏ~~ҥp']Y *D1}@?}}Ů}?qޥ?12b-sB%T3Tv66qub=a+;YO}-1uJV'v|U q|ơE%ό*^#o->o\ʱ!HGHSb@>`7PC:aC{Vġʦ~WM<+jzDKFj1]$sY̤۟`FlZ6?~aob4dv"54 L 99 +Dy@ + .;͎QrٿUM y/ I/Va+߰k ŷ.*r#C*m1d+ЬP~BaiU9d+~h;Q7v8P5G +M.\.+kƼj-]nQ #u@cf&h_DU'PS흹=s9eKfW(x-b + i3 +m:EsB {wis(v_~T;ˇ7>'2X^k$4ޙ]C"@"a$Ѳ0#'}ݜ:bͲ\sHZ'uFsFv@>Oe%6wCg#mnc˝^inTZu׎xNzٕDfe?ֲyc]@D9fHGէRb弥+_Z6c.3Ib4 :.V-Hʽrꑛپba.?M x{smaF҄ya{` +GK@G6_\UWJNx9. }W3@fжr.{bz%!1NTsH'lCwCԷ/]K 9zO9s@+B´R]R!aN̗徸@$ʛnL% c US!:;|>\e,VI3[%WK…8bP$zN!a΢wJ_FmY4NM5e;"Wg4+ >TkYL\*p2't]FV2!E~6PˆR>Tּpr֑3Zݾꡀ.2{ ;1i `WUGVʢj*I]pco'z\_2J؅e}Cl\Q{MP`YP1s3ED5gu =2eqq-D5_OnǥmiZ^Ji6o)³3}|L @3Ka4GӸ.huOǘ򟺻Zr X?W!OBuT/~5.Bܿqҥŀ1%ZHk1}?*fy}/|Kqw^W$Tv$/FQ +f KE31څ ;;C9Y xwrֆխ{JGH-n^Ʈl":,=7 +ѸoWkEZd\2T V?SC'y&؏[ p&a.9*9Lўa]v#Jt rA崄PR%n(_!oSV;x=$1//#c/ x" ğ8f洞 o%B`[(lV . 2[- "/&+?:d{qfgj.GcN;3Lإ8zc>!  .7A@N[% szZbq,%իK .w#hЊ їuti4d叭E _(SE $6e&h ;Hbȡ?(. #-| MV.hG2gL'hE^ &o9u9L$jvp=#haE?"B@,Y + gxz)h[Nql3JM#T;mB`i&dq gh%7ݦ1(fu29h(i }vT]*ͣr1JxjUw#\݃%LoL4bfcz4$E0T*޽;`})2@OGޱ|}%">| ϸ^A,͊>QX@YPg g!uWyE'h41h WW睇#̿7+a})b@m4lFHͶ֭V',5;ag{9h% j -;@+ʖpι(v` Ls y: Xf2{=2<Fp%j'eeX O3@3 bur-uYQ"hh|g`7ӭ4vgEk6KHH8)_@nj{H 6Nh 3&-M=]vz6V>q"j0^7^*?۪"wVXࣟ8T7JxJ:ZlqLUKjhzƴhERh[z.gE +=| _􌁫9?lnה;{Ѩtcy2\&K n-]}/juOˇ?~,HM\+5*"iY_]=6uw:Y++Q i3x/f+5ϗF|L$եu=~^=WyMJbHbnЧ#8ZN_!gX?`|K`YQ}-Jl d0#@mK &ι74fu55'K4>Dv +˥D3N "s/I1 ?m  `cjR^=A;0xʼn+BCg,Ozh,ϐ:uʸXEx^:-ˡV4{=~)pʏ,5xRb*lʋi't:ٴd]=R^y}y./'"E܃>>F+']hcw_L l*Ÿ~B{+YZ21KLuݧ!߆@p__^4q2sp95g"#Pgh @oݘB3nR +=| hν0p>X~6 Cw>kͳ[NP=')wF61r_X._i+AUWyipxq_?zpuaCukг xY๡]ָGD&f#Ȕm^|#nr[|z|}^_z ,&7j醗4vż|٥b(y㪗c`b.X<^?&:O0 ô'&uS 'uQ՚xMvQ'HOIÖӻ(aBWHXv38hr2dĂeQ@]5/00$m84NˊZxDmleghOd0v/{9OAn$?3ިMJ**:-!FE/"OP`eJb l j(dKz;~ GXk8Qe*E5U:y&.XP$Hyܛ.3wi 2w[R;'$jPi I@ݦAݴ>q䭜0x̩COGF:*`S'Jh P5M-cz <[7@#ZJ<3RozX<:kg'jAQ]>1bq]?>ĝH4B +홂y#I}f9$ζLRLQ,?ҋ? A@ȆoZ_m<ڟn_穾:X䬂-Bolu^;vot)bp4h.VJ'򔜾GO+zwkOp:*Uw rcL4h4k>T+Go?MLSf \R.wShHhؙOqw(ȟe4sUU 7s7vsTF8lz +2L!VJ +7w3ah,0iT|[T?_^޴ȓ5]49rھ؂o*&Sm+e"-!@1A=ߏieTϻ Bc پO14[k޾m糆xn_$MuDφFܹ=4e5\T]17~X('+K )"SOOf_u?si_闇ӞQfFjQ܍{廟_@K`MO1-q*{2IKJP<@/Ȃ Y 󥖙U Os0_gGvKC"e.l@2sUaz #G20j#{Cȿ]o9OH5ѲgtQVe.Ղri1]^tXf̔Uy&4Њn~hg/`X'8!T ĵ/ꐆ{`8=Y +q/E^9{b9ݝP<:`4ۇ<ΰWsklwlK7#st0& jnbb >+'(UI'yY;xM)US&ㄝUE5f{>4iV^-_(?^v@Y54/4tGhJwn{Vf]?8-c2"f6[4VR%2ƽzꑛd>bBhT>({/zSr 7m&\+7$b֜0͖ܯcsq/؏Ŵӵ%6жy!qmD|8m`O`h,H0Qty74F{@rcӑL!͝$hTI7sbݥ Y& 9O2^_]oi-֊) Ӗ1ޢU4^ǥжjB~ u=z&iNXei%XL0I^7~Q>BTw>k6EX9zˡ>saYŔr>"Q<@Ha,Gޱ|6~oLC@#m_s;k̓{'P$vu 7~^+wgܚ)-V u$V#HkO@bqlz'?d T4_QCC3,|ß'?yv'U8舤gTJ=Pt52(2Eu;b hX`Pyvqgπ yz/Qa$hDg ܡW;T|@͋ kwDkeÀ8qb>@c*XqU=FP.:fȜ$Bt?ioq- a}1Reh6`5+ [sc;H Bl]#^ҥ:%҈5y_"#$Z{ۍfX ~3V|-T7f&w.NZ3p U:ǐUxr:B1I*Or 9x8p[ U~АgEߏ@:?BDy| g3Adx)JruvY} ɳ4Og^p `_w mgl2 +GO ڶ?uou'Lh'pn'_DwIE_81eW:^i7yPo&PQDD 7v4/e3Z(sMJ>90(4E9_W۟PC ~(IcUQdRvM-$ɬ`#y4 +ALX0e?!?3|lۜ'Kd`޼#?Nc +/!|YOL8#2M6X6H yX-i-;G4j)#Lτ=v)2kYgfʙ٩W}0\lil_A%o-%}#_>F&)NxO73 ,<|EO:ߥ`hÑg1rq"Y*vޝpQ{|g Y,ɲ AYmy#a 5~XFՆ3#&q5o@? }E\1 +➽سdžͳ3XGN o^Ǐy߈vW%)6w/8 7M\깘~QL vG-UTqo2@D4;+żl&`j>ͬiV>U< 9a  b3Tm@"8k4MI{T-Ccxq4iz ywءXp;P4y:.$Ɍꄕ|WƂVۅ; Fξi"k 4ӉkK iG-rR]h>b)E8F=>dBC +6Kr4*Q6̢߰w݃zv4{i% W@itzN3FI ̓Hgp gJ 8v"b~](D1xA T F{ncv*E:[<8gLT3p</eݜ +#g^=̢آZrfz#ƽdL)z Zf|ؚ#qu* @Trs/|ѦnE<+͓.ř|`ҥ_L$}ɓ' KOc7hGyo^WW8Ew 7\t k~*>N ǘ v7U]FEiNAṯM57xXt-/ `4f SgG@<,bKfc6:Vcзnkj` 84HXN Mh*l&UL/&%$#|q +s t Fa6 LxE yy°:MtHY1͛ +gNƖwGtH3%P5 i/0pb?/1O=͏Mg*VeeC* Ҝ  }69o2q +<8n$59`D$[demok,E]G>.Prrfz7#. +|}Y-[@#B@?=Bɲ:'e>G"aaOYG jk_.ř[OLqD|wyiO7-\yx@Ote|S$9&l= |]XȆO y1ws:\2[`yt6瞢W!#eef"_kԌV1ě穦cHzڔBjJM 9]hFa>9`5Ɉj\pbJ#|8+"lеЬ4"#Q!eJ@W"]: FY(B܉b@z2FvG4I9 ?RM]}nU̩qrcH<㜰@'ݑ({BGەWT-)tr۾']A[R%?㢣9Q^voZXYYg&K oF_3}4R$|زͣc1q ۶gy'Oߛt)k_{Χ-Oco>M lA|؍O?^t\$QO}"O0߹w|\lDΰAvu  +S#HU$uu.S߮%R*!IgBi9p;q ΐTqeTd z4οW 1O}X5DUpytn\bx$ikeZBgKVsBdDc(Lyaө$gLE W[JOd]\Y5P,ʿA4࣮.~-ް=.=:mĞWK:§T$o %Π4(P/`:E-[xnj"YLgZ攓{Vz3X'CSvdܵ=b ~+']N<κ?dӡGþ_Qpo$߱F;jȁ=?#zXgi:c3@ouew{X* dg ]vn\dV֠ Uq^(,]GYܙ J_]ڱ?niBGE #yݸ';mpűlj\5}Q8M(&Oµ{vTa7i",KuhX]t`4=oZM]v]) uhaM#*JJG_WN(PRBDL[f!!cs@hOe>LUNoݰm9wN{hpgX6+nKFwuOƍ-7$<A,!$!Oza&{wpT@o7]_2. +9g|ȗ|u^3X oP7Ipc8h 񟛌HJBPj׼݃,&gFB @>q׾; "fy@8!||;ok=-`m_{m5W{zMo,{x:D3-]do_KN +@?QrHG !|.; 5tDhkPk[TϦpzPDbፔV %YBh췛*EzB98٠Yj焮~@g*/e*d9 +9)V#C@miSFB;*zՔ &zNFw^vb(Ct +ϼ|ܝhZdh09'*'"^"i-QYv]H4ys^)w^p*q1Z0/ 3I3fmd ܡo8*db"_j4_b<^D rs:[ΞD-8 gBЛa7SLCj_Sa<ِa^QeS]qİ|K$d#[9S֮-9(<oU2J j}LvxHHaEd>3THg'4KRlu<_:lLb 喱bJ BPjE%eKD )Rb+ݲ%<WUi^%]Vѡ sAxiΆ-QƸ`‹G0ҳ Pv) ā#|̈́dA28t(EoT+>Wcڏ+Ŗ~tÃs9Μ7-׈X3+[[k,fd~Xc0k%$_/{P47veQzwHƜ4ojM=lFAqC/4;T-fxP&VMz+bֵOge0?˧eF]w>{;u4>?o z >qY#T7W7*1J7]k+_iCjpuՋC!|G!+ tr9\_/C뇗?vJӪl]Ps`e\ϨvKQBdDX}]!;6y_zJ5 HoOb>U"w]DH{˾}&XvmT}\Z:$t%ø+R>3Ht&ZulDpUkgj6{ř +')ϡ3!fy[.!bp/tW@<~T=wpuUZP._Wj +(JfZ]q}O}'9gnU;::?B֟WwzJyIxͿ)t H !7UW.Cx| Ө)]&^]?nlxyg,]TPƹTcݥj@TJ6cծi_{BɽX'WP>4n(Gͩ[^\'d mb@A0yʥwK@mE:q2M}b7ΘрRb{vsO^Y0둝=胗n4)C +jW|0^#Yty3cHmЁ Y@8-ߌ=FBM2*_ ͉ߊڎ7Py s Xu 9.У<+ҔU7O6VCYms}ڥ:0ψ=);voJ=)zsN7oͼ9'Q :/>Ɖl,dneCr +lwaϑ3fęu_Ň|K?cH9!b[.!b,iV_6N}DwQh '}P$2 sr5UsJ*nGMq^Zlz21e9'F%R@bʁ%.u^% ~)l+:Op9R> t.;/4+ (^ݔ9H8r df8/ƺl}'xf}LvܜYܜ"98N9in6Ȝ%w^Ы@w`oӜsC#8ez|67U»m7x,H1QB{kf7Sv%*d0lim!֮3Һ3s4my&j[Qn ]?r;6qǑK՞rOc|؁$1kGЉ[MX,8fҺg VDE9!bpl2"ffI#G~yӂ"Aɘ3N}`šKʗ%qM *(ԶDc"߂]&).}UK^w/#GTreynlcri'tYh 36[wt^t܊Dzn ZYoK.]=_Ƹ(021fnz$޼J=hOK} +)P8M/(@=d74ND)]G"byC|`KՍ}Q6?LnsXHL ɉx:>E\sʹ!o O|U MB^ rIvf)1'6uf@h:G#MLtkS18%riMqnb͠ۏv[( oXЭ#2–}E@O _;+>Cr&ui۹Ccw oT!jƟbƟgwRg^׮IDHM:y+߀dUps{x7ƥ.>QT{-[SFb4d:R=jNqh{u{ߦpب8^[tM%.P@% # ʄ86=$`d"}N,ngw=ӻ|~蜙n<- dN (!8'l#0jǕJD`@(DEO(2QءS +vE} )\)jئy@8{<x5K(x\i^(27-شґ3.|ŊD,SuyI+ "ݰHVdZK'q+ے +-;d<θ0f IfET:W/p ONr {F/0RB1g D!GoZb3qQ'[:e$g?8Η9'h4OE$O²\<۰}HϸkΏ(5ELMX)[L anK}ypBЊ0k@X܌":F0ef\![J<;WpzlKAPF H3Jźf.dAp\(9h'_?G ,& iā[1>؅ٟ4vs> Yh%<=x-yt|f2 pcx:O[K);-SH~F\Vw6Lgm@ce8<sV9ӚDpYI)=.q-=&%yV1}~ȣz6weA3!M[zIUH!X3"@ +h覉u;ɣV`\LJ܁s͹F;kt.shZ(@^:ĽـS͆#*tp0`hE#;5:2Ȝm x.wH\wκ0hp +dqUYZ=H-P~M<6R%]G/HݿN,o{Ӗ.s 3b}O,4#Y1n-U;<0s(>t/֒4PLy4Dㆇ]= $֞L dE&Ucznȍ71q^ X^ M%V2Z7 yxSj",b2d>^ ;F"S^TBWQIRh>.M1`ER@mk1h-NݫA+@KdkfX~O"kdp9 +ϼ−ȁ5s c!wDlpy.0ԝ~izZKg`< 7xEn<7,m[ފ.da+ }Z v[$:2O( W~*fvaR"蚣 iYvB|3/hp2~EN3$19129\(`-L43&x5 3J yKϓ /-: [R2p~~4Ԇ:mPB ++-y<8?pZwxNc^}6i>خ]_=%-2G&7e t=C0}zv;3SdWMTA§NӪSxt:ߣ{>}̐r6F6.mA"AHٲ5nz@/!`]UH]~A|.A$dMȴ[ zjEO2Ym? 9dY1{ sӔ5Y緣qfSb +`9_ DyE[b 3.3q.M!9~s L0^eо , [VZhtYDT܀&!W\? qg~nE#fҺ-3Gsg T4u{?5وcJ^M)d嫳ج?ߘ=GY%+stưp̑yB*ew}`QC`cb,ҭw}m&v[1Q%s1w>Y?օam0f+J0+ ٦'`.YaRqGKgA@|,54O6{B}SmK+|,9fpZ0leH|UbaRKƹ3'cs qP=T""7{d&0tfp2<5ğ@ǹ|ϐnewdWhpB6no@߰lubgq|aOXIN5 EьL­. WVW_sw~[mmwd•`YC^^y0mzzD3ZNBZz~G"Y! Q31o>Y?ލiVq:8!hIѸ+}l=Jd Bdğƿ(̬u7F Ƒ@N4@Vxt818-AI@QArqK +gVU!uNbW0*F]NKXM<7q e +S{):(YLʴc|*ؼZ`%4J%1?-(L<(ժn% Fx2acvK;?Hu]dqtI@ k|zj15Dm_Ќs +Ұh[,=fșw3׹_z⟩[t\-Yvv#J{ +Oi@R21H,ea)ne`j- |3J,lyj 4&쾤+o 7hMym]5Lƽyh)n\VTWQѥW0܀)d"[=tS_s9 4}1 7 +MF9!K [X0 [(ƌ;xwzc1`n[8< @bt1}|n,/}Kq=[Z&Z2F :Ȳ[)#K^ J^%0DZo+{EG~vǧo7+ޥD:e6Z~Jyy3_-a4Wiɾ3"&?}9 vV衏b: Jp?M_glO!4.+hƊ3rIf*q]Ű;5I09в-obd'zڙx5Z @<gNKدBÙi{ gPQK<샑HH$|0^l "o3+dpe;ڐevynZU!Z ax`rdRNYgRl2ӕcI_VG-7hi_V;="$jppa74 ɝhpF6g&mdƑd5!4zS~-ˁt 6[Fax (ozPxʾn8w &;Α4>PU/${l!kUQ4nCOnR" vJU +j _}kcޤ8h$eКQ.BM[f`) +lFll!PfвQ&A4 C[R{*)d뵟3F)qeҥ/fyJt|/jǦ@3Ѷ/m.k'4l&}+kVT(xs7G=Iź=[ɌO]:k쎏|j oWлX0`AcӰG +ADuF$֟Xp.Ɂ_67#7g_O֏w\%bf!+v"Ug;9Gc,s:yH6ЁY!:ь*B]HgUF)g_.e+)(mnIZ:t̑7r+@cIȓ[o4ѐ 3\,p4_P7Ն] AI5wHmKv8 Eݨ-| 7xɧzB%[MyunDaW{󠔦*2pfE}KӏUclQrM=tmrhiI䷫'瞅5\-(_3~ ̫z*}xw`>Q7@6b7ޞ`ky̐_4OTN4([p.x洄ot 7 hף{N k*h{IM:hʬvs |sؑ*%h%-χ{^OsXA1gOkNޤ}4{Rf?SE\t9ox ] f6ͨu TA)"riuF5P:Z.MVeihUE* Yz)@KCx _+BppcVB(?ngAKD7jwUm ;c-t.=jlM_iYkN*oEZr3uѡ{>OS<G2sjղ! CznXu.ʷ*oa1N)qg~nE$tf;f:o<vUZv[5R,2>{ Yk2C8[r{^N&ǚu?G2̔BgMC+ڏϻw掇VnmoZEʜUŘkv#d{A4BCLJ$Pg6S_axo^ګ^؉xkqwVݭD i p{'XX0 @_e=0/u[ّs5~d(r(j25sJW 5/ ); vت)8\B|\N4BF#@D3p l̄G1I gL@W'B$^@ + Pl)jbpRG~i}U-;',~/\O%0H@T,R6ˡﮧ4~)klSU8'v}t;%= VLB󔊿YY:Q%v+pVZbC.tMuwO-](Qٶ_#]qKF-^R,F<=QxE/? ؤ?H5.";=u0z(:-t̯c3Mn\^8̩3_{WK3Xl Y-37?y;Q0vWL6SNDZ4fa1l>W>c߿ud;|:L+L~ 4gG3o]t@c{BZ\a"ՄB>R/Cn~Ky}wQ%1^%c+_kŌ`vZ1x' Tm/}3=羿|LJ]4#' &=h4}-ٵ#YCLӮxlߏ}gksMn$p`1 +smei]̎aHhs"ar`. *oFu&+Vo3N? +ZfC 1g.m(j&Z몶^mtviWgܸp^r^D[Y^)`` ;<:jCVSJdt-i5ְܟtX=f3>Xwݙ^򁮒k +[Bh+xN2r`%1>a  6=p'Wa \V_ tU W@#֔n r +\D*kUtJb֏h{kGgTzN03D:ٝll,uܭ'}4VLKLtoמF[pAHyBXq uo,gS+KȑeZ>ycZ"PxOO>{Vbcgyn^ά+Ul'wAƵOC#K+q2C򀖛,e(]I>,f*=:jxЬ9 $Ec)b]ΣA QjXF%d)η:KJP +RYY@KD~ ha8MaQ{U_D튪5D^RjLS@VɝTyhf%f\P +TiK,.PL̾(ҿ:ha洢:=}Fv:S!LQHҔ szM7st1;:op\t܈c̝q)4h 3]X[璹'k)UyڴkL14sx,. eOZ9 @㭇kLGpRfhKF4-ڀ-Q/*V( +: ϱòF"F=kMB6 ]_ +|.fz M׭ؤMu݊}UB2v+~ptL/8!թ5b%3hn疝F{;GYHTb@j* %GhԱĿ~2.PLQ,ù`V +Jy+oui1y@}to+\ @vn[ s.+cIˮ 11R-lʘ2SYi_쟘#K.hiľͰH@6# 4V SsE CxWnKUiPKx PrUzOͧVWɹRshlr9qUrZEW/nze\;5  pjpg6%0owbc{Pyms!s,EmϨ'%+;>l@ +@'']u?Ѷ^wH*js&3Pq!_eeL8KFDSTa:ir+[#5@w45'Ӻɸ!)Xf*\UhX$Zњٻl;|ӊA3mGy1:0Rn?Qa͙Ơ,q&T[$Nֵ Uu16u#5?{kܸ|uB) ]G\Q>|g1ǝrѕ7mz3h vB]/4#>j˲;ߦe.`\U n[P8W_sIn؟g_>)MUqquc=:T\{\hڵl솊u/8PG!.K , +tF )F9J]K5_H2؀=sU]VFjQv@QL5yPsZ`|{b%7TagR42@U2yޗĥԲ_-8G :lD[54= iȻvS- +WHm ~}b6ӽܺ<{[;ONa ,8Ĝ3pozbWMpMG#ؒX*jGsZџ-;p3$ ,2EnQz+$VCdxPo5ܢQ@iӐ9G V +ݖPy3q[;) I +ᚍaTRA_k^-1l@Iw[ԩ8a%~ӦH;Un&_yfM EWF 'ӧ"眍,U` V$SuV7 +¡t37DY K'u,MvQ%u#5Mg37݊?zc27~ Wv<7A=:`8L}~V{X0"9EY1=6 hN +Ь f4[pd٣jYVLNQ&P2[Ϡ +3hhҊ-`"צu3O`^`tpjv)OٽegTABRhY/|nt >0q!0;^VL"iPlY. `y9%YCIA{,{ɴKb(͟!skȭˍJ%" JU@xc1V/Q#IQBҦ,uВ[aְ> CDz^(dag`d[X}'Y'Y?`T_+MhT4 r:RhV4w3}46飁eH"Yz8y"^z\BtJ繗r^ޡlgs$6@?\nK|Eg iEf+2k5UY 4yGg?ͦ:t;I}>ĩۇNLQc%{eU[;N,y_%^=,~|rtOs#A$W,FYX %Mbpة{#7Tp<37Wx nRAI!h:ѻ\='ބ#@yPf`~"y+jlKF[I*vVs{^3E7Ĺhd]D@+u_G\!uox*t +r񋤛#k5=yi_e}gŽ+r`RO$uQA7~X +z棄c.at~p=iGάLFp-w=fbrl +DLcJE:PJ4/c9U3/ M BE< )_fcᵙKCcAZ6oLNJ L/DƏ,2_-d!P`߽XdqG8u;as@xy~M֮ks]7}uG~y۰b_ _u+ۀ w}-x+M*,[^B#o)s, )1ÎQhyJuxq5&Z2ի?avShIоhY=AV J,Ir + *COq>7}Ub5896DHޯkBc@ _WbxIw,8hx%<pifmiX`bCU +pz Lll1 +4B+vvOJkp|!C[9 }l1<+{ h$ +z%x.{(gsW@3|4 X|@3˖cIS8qXV`òjg;:tlXr%jyvds)x#QRCixNmENlZE4AHlC-KS +Y?5h , Y52$b$$WIGlټZ#sryǙB +H yPSDZ`7x1!^q17+.n헫gJیGO"5^7Ux~ ^}:¥np0ЙtlDHQ g$3`yGg +Z ko|Ok|񶛫WK!J3Ʈ^vMw.;݊/ogѭ?=L&!O0>ʧU=:'~pёѨxMTKRhf +9ՉMh؊o= i +h-M#Z8FA/Wi \CPI}s _-9dm2$Ѳ$lCӳB'%`l7* @W:Y-W)?j!+H0a ֙t5_W~šeYɐݖk@,Q+4G=؋# @݇H=[Jv<2R9ݗǧaiT>@˟Fsf+AsHF)` CX_yU A8m6$f 'e ++Ub/h30>`h%{RO-t{aMQs!וwFDC5ܳgO0Z3^~yt=>A7|-GFOuJx GwMجrzЍ8&{p´Uw:$N. +ME䂜XY"Jï=V]9s?5& 3*ݯg:(1a +fDi6g0/E>w43IƳt2gZU*@J1F[ @C5Yiw +6 _hUF3U şɞBjloB~(k@%E()7x_JJ^HQגˤ&d@K%bj'L.$-B ֜Y9ZΌb]$4&-0Ej ε[:(aթZ)Ῥ\E:"R&>Y2o l3mM a8cX& ]ιV/s uhd>,|Bkjaex g}뱧_W 9*g7h.Y'H`Q J1g11Ä-yݮGp4zټtlT͖/hD +ĩ?bw4XJu&tYy5P8ѭuwŤU\|3?wx K=[߾Z;=ԇFq>4?#0V 9&:K-?IӾFo~##ϗu< jR0۩Vm0w٣3 zW,PzR1J,8J^h&csiZ5_d  ⃝5u9Ϸ aڰ. M +X%g6PSI#zWLXR + =AIT:3*'*>沬M ~cmyf+^+mʒLLЈ~HvB2rS7A닡)4Y̮ (窡ġ.ՆJWuZ(y$ץWJk0E^UE&2v=nD}jM=)@xM 1pYMqN]{Ib)*cQ$^(he S6kT%`ߑQa40r=[]* î}N>lvB0??_.^u>nt6ʬ]Iat3tWȷ @v-6Ei-Gek>'p*+nG#ګU< +M/Y2gӠI܁_)FL;@O܀$"͗b O ~Ψ+sU]ڤQ>ŏ/>*%u[,^)O9c z̾s:ތю㋷ݼZ; (!+d=BMB)BvPRDeabU@wO>Ҫ%s%zZ(!_N0#J yWqyhއr\%o ͐q}hjIcX Ш9t}?/FN@\;0б6J%x +§mcϴg32~<c슝TpXz6Ql>cDZpwӑfӵZMv=П}7Z{.2Ie5wbԉ,;cF8N@{18sK'CYe/]bLt8q>Qf=7>}o[1w6tܺW',PY.aatb8bOL%^up9K)aqj]sF&Q^O5ʅ,4Ht@S->1d_WwfHX(CdAI`weAɘ򸞝N6]E k zc;U h:J+Z|;[$ +2ƆDQ6M+4:W -np +8$;_Y `7dxKnEd%bZ&;S-?$nuvAI T:UZciJf(e{*ٚ9@s=%%@gYG9gСRXf >Vw=-9g}@/{IOrJmc~Бf',UqyF5jdKd*H%4G.*XPw~ؑˣs@d6B6OP@D}9u݊7|n@t^xU`dV/ +B/,gv1#̑"[%HGc/dZ7@dR'd{. eUCAOtַN5=z2O]+g0a_ +;ܳIa:I-Wo94+_{Fѷn3i $JZh߆b\kuά{6X)@iݬb$ fW@;@[O Ae<}hUfT/'o#:B \#YS@@WFMׅr@-m[&An>"V.UWs#:*'ϓ To!0JK4cTj=x[t#QolA5'6@Us.2HzQg n0l:kxj ^5q8Xң<b>Z 7DкIe^EgIJ7 \KYtF,n**jEaQ!*(95Ez#Ij(maY2ϐ)W,7n>|@jU+:chBl>;ʝ1> H I0䓰$z:C5X4hf DS7u]V:tԩNxw?7|_)f3ZD\gbWFDz|Hݎ8% Q!o /E8]ϾeMY*_{݊M[@OU/nyk@}mȒdPpV; QWҐ-M1ꁄbGfʻ݋~|S >q!yE9ˆD5JOwIdN_TKj tq,VV kS"y (-ZK{RYYhi)ܱ:U\L%!Ík,dl!ɱV {_o_Pl\ -ȡu)5I>¨z|LOfP뼿@#՝<$M06=%86h; heq rH_^HLڱ +:KҜg[i}y^p 2w7  +Nv2OEBUlZ.dP¬S!+9x󾄵4KI8rN-ѠJS:V5b[9eetݠGmOi R$ "k@P+a j~zkRq\) QNweB~&[ifj֡I6` I,*Yt +y,^F:Z9aX2G@؊CAK$[Yfđ'f' %< :lzI?r,lvaHqGqsF^rXh1 @֨@xkrMqZ )2MejJTy$Q%!N{3EPT%15Rz9O Wtk=0x>ps7w E>X)4zYӈ(75d ^mZ=dhXkz+N  mZh +EX-O#ك _ԔZ ڦqC)͒vu ޜf;/Z/b$t\Mx(,ǂfՔ}o=<"ӨP2t^UZ5)2KຂuږR߿Ub] 2{sӦQ9hv9@ޱF?tRFRIRYM;? Zse١3cxęn9+ѐ+Rd3K,=v+51i޹cи[?p'2,y E<=G;lxx[ + Q3"*&IZ~)5d,0zҢId\rI빦cafHSh nFHC[ʲ+|"Y}\6ZXm^Kp= BSc?@~U{icI^ 9`fA•<HQrD\ +P}l&Վ(g)MkcQ Whiʑ%zZK%1_F}>(ʀqZQ;%2 ik6\ 6^|+ ,m.y36\qzc#f%W}/Yj2 +tGm<YBRsZڑ9&@v]G@{&!_0fnҽ0ޭjj@Ō)Iw!M!0{1:K ]>0^,~RU߰+r/Ћ+_m$ZRfB&o$C M{Eeb!%ESA*@o4;9Rw^UFs7lV:reP^Y7~kבTV;}tT +=??_.6,=?~.^p9v}Ĥ3'4⥿':-NO}yDYcn:su Vfh`DV@+ak˽K䱌ubvPÇIځ* &W¡;͚ R8 H,/ n,5dok!X,AX9>Gwk! qxb>?kM!Ym*t KZ)GȻ:y'5ъuXEy.|>}]Y)Sn-Jڼ2'@aTF{sZLA򚣿3IT;wu)K .6+BIi& !aOF햍I hX -]_ ^A&2xX54P? riFxug(!Z w ^њf'Z SZ &Pi<@3fy>H-K zk"NrN 7o44I=mch8`6׊*Z $%0Ƹ]VYmS Rwz9*n 3LyW4^ %72M@{g[kfΖ*@Z0*7DUD$kIHbk4uUl8J9ҿW /s.(e+AX-v#3h L"bKv].XcY5g7!5U=[e>%jڹsU x_rljFNd} ,, +{2}_УKk~bܭg1 @V]s;݊M=G*bMNΚcRl +w̌FnkJIDܽ/]9mm0ZOɥ1Ƥ),km %"ALΣiN:Rl # ]mUcy+h׵o݊: MN$ T L̼!|FiLmmgAk5f*%g Aeo;bmcC0 <%@s=h-odݛ:̨znvjg&bf|'W^p!cDr{$Z/JFOAKߎD5YctG(ǥg RQ:nP{4W]@G&Ah^Rb7~kוm<}B߷O?zc= zOB*zhC?vޣC[j-?(HW teddūFa-@-JR4fJZ  +"(uv=5q*z]8.hDyT#Fp"&u3a1T@Eg0F[g`F9m`ϐ)˝ @Zj0f^<<:wETsCs{6m~zv4eWΑC ݓ lq7}ƶB{?84}7wcڎrs/d=4#G0C~&rYz=9i9"M=0-4J 97{e͕vsHP[b] ԣ2<\SKd1 iלZԜn#3lݼaN{l*|1fkH`KdJ:j3(ti!nhBZ?3n逮> 9^w + }Y;ɵlF+V>#{Ima95Qz:D⺅9Oq[)@ˮfYxa(p.$.‚<Ѳ([eښ tye/KHߚ})dߵd] :z~.˶0RTD,2_FA-̅ +;m=V0DbM2": +)9S"ֲRp" RsZ+*3 F K +7soU])~o q8vWgCMgɑ8lZ{ܣ)<—BA8ڼ!T;B뤟f s M]Vfi|7G0S. qDžܳ@:ZĴ<^J ]OTg6\JR}FVjLy_kw/OyJܙ3ޘ|g۝;z "b&0KʋqpR2ybf-b(\%$6ʂe]? q Y9A7i&Ġ9֗#=+_s*:K Aqڻ*AWjRi!B.(ͣS+4S࿁x@͚?6i2@Kq9 +{KK 9gTSi|b~lBi}|5R3!I\jeZ5vC{MrkMo҃iβ.n!NSD,ղ'@ 3ǃmq*^7W.SK8D,Lu"htcdRZ?T\f+Jv މzEѠ !37\%4‡Nja'Usl\!3k w6$ >b'Rr &}sTAf^ޡef-j?wfb\#gԲ**|TWp?jhKK92dZ?eY->,yi\2Mwr / J.Rvks;Wj@HM]J;џpEN}m^U8G9xz +U)_ v3^y/f8[* y6=9̳]広s ܫ"imey"&R9#fY:- y30_* /|/zfW&r{"G,f+?1K.Cwhsü_a"հ-銎YŪ@N_ LMMf 4zcXܟ屿Zӷf1-lUH}ȒgDJ{f̈RLܜ]Qo PSpM$;%xa[D{5q*. 2N*yaC1,yN(-gu6'!kVyM9 +3SB3EP~[cō#䟹0G]>PysU6u)1pge 96ʪ<9M'@?#`V&r*fnz 85,TwZn(x̸U4aA4NkPQb Tb jyQAt`4!<9&6ήPAer@f/A /5^Vg+Y/2O=HfУ3p=[ @ct`EgF4dYB\S"x@yT, 餡\2gOb\~eܡqe?|?)q|t\rc)A>oa|&HsU0->F|i< ŤY]v*IBw/ϝi,#в8EAw)6>]]c>FkYz%+\6n_Q4r?%WX`$ttn=]K[ST)yW%tF<&mbn2~h,)ԈȊs'rrX9 RAV {ͫ)qYyRjVN/h$_fed\ +]/9~Km_RE{q] +Q'4kHXXʳO4;bŒye]@h1ʫ4 /Opr6+)ک@KhAu^ +un.ɉ]O;U}m!>>H+Bix*8|y=ɳWy K3kp(YpylIuox`I߷U.r%oxs,NV,We 0.heS%E;j0{kHttȸ43lѼ#*1u܌Γx{ܮț#hK✠hk##jTNj^jd4)3f ˾ + d̮2TSЉo=G"r <'5YQ!x)g+iDTsA~{ݔ3j +?TP%0ZEA+K skD!PE* +5m5c~͌rfՙkl)M>gsn +hUs4u&h3{p×̼)1} *cWR6@Ug,Q*RAOxRZUΨ4u~r"aU1(t-r/)*%z vyYAJ)U<^ cHh]Y"4d:Dκ]Cf +*(YfE djxxzUe $f*i$3Ty%O؇)3w%ƮG^r*@hO AczPrX@UKz͑*ܴ'Fxu v!Jh8{uoXרjOJrt~fErߥW$5wˎcܭC?[~ Xyz+"t-/Qp1#X%Ԡ3(X FX:vzuG&?=?*_IU G,) 4+-yJfKv,Α,C6݇a~F TL<+"fɳ_\o.=,jmŝU\kI<ɳ$*[b֌d1>g4đ}7^ORwkU}9VAu+\kq!eE 'XΨl|AsHIoG#XUEn>+f-w5*@GK!txJU laZ&  xv4X+fh)K:]ceڣW 4/zV +hty7ДkO[ר3?6Cx&xxZ6w-ϪzCa\]M <ͿͰe#.hh +Z j0DxstDoSwмšm$%uMl%o>hw.4=v]3\TvX^95DX`etY×:`^,.EeI@Ȳ<3p2Iُwpy@K+2X@%P8 LV+%S 4;c2+z@g@לɵgeUfT/΍$}%PNJa8~~ Jة;."a]-H̋ٯ$ZPl4;h~bjBt=+cUl)4ɔ*DR.3,WBE~yyJteIVar2]BҎ&̨F1\@s'LIn.aXgQYwV ɴUa]ga>GE39]=ۼ)sS؂{/X\DlE#4ːrC-F(TZ4CqkՍҽm +u~De]k +?w*\5QGFU%p +Qx1={Xkh>zgg6H co}[jmסڇ @Ǔn}؟a<خc]v|f4̪X Sl:b`r%|в\Jky%*5Cyg<u ) 싟*N>Z~2-E¯F>Ozw-QO`ksk\kDٕeoU^ 72_iN%|yU/rι3Ipx #K-Sfx"$uA"V9gi')ݪJ'}C<{1 WpJŝ[<=bg941Ti@۴`5U<}W?G% (8<7ߑ?tzd#j?46Ε^@+Yf.(t"6GUǤ>k=<}S![j~^ != k)"L'mEJ'EÃlkOߪj3B9}}z>P[bHX)yAEij!WĘY+c!KkPm6:h,}txiYc|D:I4L-er3OUlő.n @ڝЦmhFBzl9q٤/FT+5ѲDGWGi/t*{U7̳ 4L JGi :6*VD U 5飻 +R1Ety6Bs(ަ  X'WJƢnf^̟:/*U8"lUlکv>*mtCʶ!]f60sW +h60AH'MSD瓕c~.CӯQl"E +Vo|<ؚ/'.{Ø/?qÛ?,Ic#/<?yhDd4ر5'd~!Z` GgwZPyeAGn~g1wQ|p?-bL9T#.AL{uCYU1m,ElZ@k,**%yaq9*yRaClb8%bJP;ʾA9/IVXmit35ouWJSt"ʎn'$FB&=sVWMEy_;G"#kA>O=as@ Wo<޵|=..%sx+WǕm!?%iZ6]!;e` ip@QR4IOLmyH\4tCayؓ=eg,!X>OMF%΅uDa +M5>uq%%:vƒC^J3~6I߶jăj'n5T]&˄nrs(0JݓZi, ~s +"K(ǯ!IƋ:{hN44q>YYZ3]u%!h$Ai'@ +Zfȴ_emFnmT>cVXhFlXϙ ]:{(bȋ^j'?1g-˩ǛR3Đo|75'й_dߩ`P)[~vJp_rw @]j4l +RrY iם3{=˱Xj>+(44}/8ag=KN޷ kD%hɣR/t8(2˻_{o +HS + BT`k/Yb7 @ǖHIf!",C)uj:p]Ypn%,)@3 @sDs()V3u]:ːPM"#VuZy+gF4]J 0+i1;3|jd1*Oଆcz3 rVB[71tI Wrg"Dǜ+%]M*&o%1+!FN qm< 6뇟{ +C=R*+ViVJC +*lVaO(VӀяzƀ@a<.lלZT%j 2 |YGҢt$Agz=v,G$]ϑk=ON( 7RPUqB%ܩܢLVG g<9_1w({ ':>/gQ( x4M SBYVD#͞ ZeשeOVHgW_$ XiٿFЀȜZ iۑLmuᰯᷧ˻#WhO:k) +lW❁\^e^C`=%^ӟdAӜ^Y,+iݼ K_ݢO~c;"hJ6* +[lj!KȓR"ϼs\|9,Fǂm;s[FW @+^-Ɔ\%dvkܜ L?=?hfm "nъ:zZgDX݇a~vh1jɳМ5?Y=#-i5f/n.8Fn&5< /5-wX"KEqTr;5] rmW iTDŽ<Җ&w$0^=v}w6 ֣;TH"Uc0@Q= + >DѰ>4e+IDX $ C7.K.BnKg:^fo0AQ +ZPaY}#私ZA=&?0멓4X0n& [14AyYPMM,VM21fnZl/7fF[a@juZSV,GR\F擪i# +{n Zyɜ!]5xC)Z>ЊE3KJX6.9O 'B(mQaVD[V#mdžpWn=8pQN==E3[%Ү$Y ˝)R@X}yt[_:#(K|?ߣ5 b%&vC<^3}؇NЌk6O[y(ݏ0$y]C׽3{#':&Ν}ޯOe#5̑-ך;8;3`ay!t<QN.D9\ L {#Z94<KU$^)I==;cセ﯏.FQ`k|ao^k+a9o8ui-)EzƅA=X1džU:džvм8Pxq-QSvtsrAb=ˊ*HsO "t<"O)]|x%TQCz/dqktH1+AG-8Y#n:usol AE'ڼ~VO$ И#YfM/EzАAE콈0!7>=2|Y><\Í'Kl90b[ + +hNnY͚YblW !VhZ!OXخ5Y꣹a3wtӝ-׵K33u@N>ſS49 Js.XPrK2V$Ӯ!Eh{g,yh1f&.{Km f  J4[ ~ 4_ЛhpC!i saR'> knԚ0X*uvI%2$tC ۤXÜ36iP4þHNWۍQ"X0"M7^@~cy~ VszuMWhg +hM\ӀΝ{T~rUY;2b% m}X.㷸ӥ)Xj3=9{qgߒWfyG1]" f(s쪨YޙzccYǺk<;wuƽ1x5?{eUys_u!Je$@!8LWH4at!$C 0I:$,1&! t&@&4`[ +/\2ĖzWսug쯾[^sc޿o/8I]D$^ɑw_gW7rC\(\fw2@SY 64.K/ eEZ63b\3zj2-R +,[ȑ=]H R$-C6006qm12 ԉˆj:!z':ۦ{k#MZaE1P93|Ew-(^w&ZFcHW( hip jD.j {7'ny69= ݡemFl5X3A8-:. M)`3Yh,83spCE( =R, +dggkILNryZ5ٍ>4ۜG%[7,3 /J(o& 1"l4HWwQ)ЀOSȖ5|bwghG7ܘZOa> 0ȡiD)1ݵKo\#'bsNNՕ`6NW& /=4:*@"*Tcb=͉@36eCXTҙtr2wev065RwAkCm](*6 {KB6Vk QW@ Aɑ&v`gМ*C9a5PΨop@C@[d &ybUyn@Whf#C[FP,bR + [ghMnIoh%('nǴ07I(HbbNq>5A,42h\E2.W3 l6[כyQ쪣@A>zIl)Oꚙ椀3?eRٜynаԐJg4X0tRvpȮ'_K74 +m8mal\֦)47B6o>@_}8ynq~ G(쮗*Yƙ`B? ]UHsmӤG#༱Nj97 IbJ@@{Y=c1%l=;KW3e׉f{l:6& +wG:>fP nWMίf +OQV%xzIwyf+fYV*lИ7H54r>uZ$t9"<'@ibC,4cq9+h+ =.uףjpORqz#rF혿+e޸7􄩫3YD@2+`>0 %V/M0_/u{ՙPGĖR,C$`Z>d`\5M",iVÒ0zƹ]17F'|:ꆡ ZTUs:ɀ!cj{\c3l>Ř{HZus"ߥմ_  k0@@ +#A@<hyŽu,,1׫ hZGT}+*!]ޗR6yR:|š_fc(:g4^"K.%UwdL@9zy6qDW>IzWȻ9ҥ sHܶK7M\]7x'?L %fom3zv)͗3}ٽM#.#_\IbhAzD(J0zg.O4/3v&gUkFjKCZp@SxNXot4(c{]VVM$aU={g_KӆDPYVg/4Le>j#j_:0<ᤌ=Amj9&Ѳ2 kdAiNp9m~BAtfl2Ӽ}(OPe.N)06V;'Ӻch Qu`(!rOi d Q*PZڈYo$hƵX3MUbehhiKbf8|'G39PH'R\?8^#>#Z*h>1cZH5yEˑ韆:a '(R\U+uqZݪ#@sK /J8+\_štF}.{S69'?f}~MEgLtf1z^5P694LYלO m3{lWa܈pצ09Z/.] - M^J}Hwsl HHGHgzg\ہN]ysy\mVg5[=)uݘ{ic"" ^}o.e;-}a)MczxP,n 9 +C^~p؝Gw~nA5$،!&A4,8L"̈́X&>fֱ1Cm4t +'{4-}ЊGʩɳ +dHs 3JQE <Զ +Mn3 NO w3h-"I!v0wErmfCʘ_iP؋ 4P:Cr X;꺉DvQG~-{=|J1"%|ZTo7ǵ>8ydҥk@Z-=-0ɳ|a|әq(kJ ~U# ̈evA@OpEjQDy[D'SzGQ3A +hm@kXHQ(2(ހ1SYR@i;R(Rk_彔#741J△,fm2Ӽ" 0!^%|h UbSt"M"3%Uߢ8f:jR\z#tä=` RƝ kT/b͎+H<{K+\!z?}U LNa1u<%̳ww `rť&]#>qWnz)wH]У+"XBSݴ(rJ<{ߏ 2p쑳?V᫛F;L3lIe3޳ڗ _8 L#Y$zh;ӺpۜPC?*"7܇{q^UW۴E,NUR8-`s9ι^t`7N26m6S&Np %)P0\ Es< $W>i|.~Hi +z^8@d`E6\/ '95N vZByNm/Ԫ 1vēp: TTНa_S̠P +Q͊1"\۩DYLR8>`TPʲs1юKsZ-,mUBxYgݪ6@N;c@7i9d:UiУV5\}>< c/9 7M+d՛o%[&z0衯? UY3hpp8k;USMOLz @B_~.¸c{qIxw~ W-%4̫B塻:7\+4ph%;F(w$.w.d|+ņ^Kk[_o\.79D>rU_KA,n]K(TM,'f 5Qu6xX8|AJ]:mɉ *~;0˙ami~bI>ӲjkanZ0רX\г@oeڼ֕]C99`@fB]GGdWDrZ4aut:^r{ 4Mg!qZz\oFٖoK. !K#3fu{\хy>~ +m4/9RMy@8s q^RzZ%zZnc&,γJ  PFEc)T)[v]jKjbJt8kL,|E2gxSa45GHJvU,o;-t 4|mo^m͚p3I;G~2k>.~ YؘGC v& +ij8FDDnLmLz @q'{0طjҥb~"s]犽%^wO!N2SNI DB^ K*W ?zu˜ٯi€b4![4վjf,9<륯J||8 L#U.o gR'+7T_wU].5j<紅M2K9853QPΪsިF6ELj4}yn{]:mɉ +] t-BM\WüijbjRiљAt+"3?cN9S( WiY@ƬŸ3|CF1>Nq }q"lM |ͷ>q@s(K<7dJwju|#1#PlY2I3l7ܷ ?38c/;`g߬Jzhp%v@㻏a +JB,}:nM=P|$,9rbnRD':[3|gv k2<ȁP4K)QSk1̋ƅsd_s"1Ȟ;HC3&UB3hr ˢ_sM,>}2d;}n];pn +Cػ'e AseiamŁUmrj*]tg/ęMC7Fl_:x9b[ڏ|c(dcU?pot).8~t)=HXdL<@v)<{{K!ze&}ZxQ-&nuO \v_yHα!y@+W2(o$ + !qM"I]eԲ$ 6i=\ rHivn[4S1=C[N‚=I9+T4p[jI5pl‘4p{ծG2oO6>F.dL2P(Pf1v\RAF +n  A$r0}{ExlāqRu% 8QMC?51$ ZA@ʓ&43q)9T3fz$*t}ի +IhNіxDHu&"^%3oɖgXk+Yt=걈\c4K.FCL7Հuݧ鵝#NKf˶a߲wF`_ zP 3$2K[@c~P@_. FTɲY$qMx%So9X ü +TQTSO%XZ%d|2i!viۛp.Ut'#4uBF;𑵙kuQ8 +酹&{G~C36M&SfF7 ߰Y2JpfL>,Uxt^L@}PsV {Һht8Sвee#e[sUR@8XS%*$8&xqzUpϦ )[M0Nk5QꪜQ#6Ͳ +uOPۦI[@{)1瑢bsyxBo;=?3\uASpoŀIK@+aaeP*ӁH_FA%[9EkSk Է`&ƙr|d9gH۠wHHFש eg5GjLE]i-q@:eOP2~hGvq9ؾXy}h`t2gշY"B*,F X'W9gì ]*-Ҕ#pJq9sbHu"4n\D1 Ј<6[#VN{S Fsҥ #./8K7\ٳưZSʱ7>D6g2}ZX +NssM7g=REԫ~o;Tc͙ 9 C43X- N[|4ޯlN8M`A9-s[ UDŰ1ȉ4xHiT +AZVFY(U]!l4]F⺭ôc] +^|zS=wSGN79gRqvCuzLܬJ7.hD- 6_|p'7i)b/=ɳc+(}u&/x\QE@9 sZsd=pR-+g/r/\742qOH7'HFm"4;m42Y;'K`2$ϸ87Ϋ&2t4X\>ltp%ˆ㇙('}ÍeZV#Jk)hN|۴]ûaUm"9U B+Y5 ]UkefZ>WSe_%AWx^pUsp=N Ѓkx9FW6%b]5piU{3,2 ,s5%2RB>`sn(~s̓ecPigO[^ޞR=g|^9^ګe&ŏ7. +tSq3_ғ<6[#=|{S-X\iҥGNM uy~zhS_~s;j9mRs‰4*@r9P,ϧ [s=-̖`s,9)#UZ/f41Ny}HKpCyzȾ^r!iv&)v#Vn R{\eUce@Y^2&dRAIuY-!tL1ȑ˜ٳЙv0l`/k1Y ssvz?!,(KS5P@R+A et^UdKz#F)yBctt/s(SVCfJYv Ngb9_ɉJʋn+0qMՋ;% bդQsYS?Ә^ڟ;;KzPECv@%E<m`TxLlւLT"DZ!uBӷ/R<ݣ0Q};zJ*¸y #I,oi>G#0TRG*Ԭc4h8^\J,tX[Mzp)YCmUq]FݞGrE*UR |\`npA;dţV?%<3kZQ6Q@ߞy/=OfܿgC +T/N(`cQ:Jx0`^.-' `6`jj Rι%9 hX?D2ѽ!/T.wc+(\::?)V$iSi9~^",GsqA@Wfˍ6h~O q̬Y t('WԔ@#ΫʲZb "Y+dZ ԇa~]^Cp'^}GG&B͟ =vW4ߡUn8PVxx`u> N*Ӈ@K. m-1V=dջGbr±6sXuG9R~#($dha^%Q 1!v":ʑHNj#̣Ji-M2"<1.4U=: C "UmB нe㜪|;fƅϫ ;9GXJ(؞Mՠԅ*6_gЌee2@C ]* MDEdX-D7$hʼnťM31e 4+(8E-me9?0%|PNLLI4p qq Jg|:yC7] Cm赱GpDB$ou1X ` ַ9O鹂I\r>2MpWN}a%MQHSrš3(`'k"G`s{6✎nZP/@[Q "#s% +uZLDaEhת*j ecMj?NBeGl]tS@3qnu6`j 5fyDӀ: @`Bz=K5:oȖJZQFTZ `";4ϸa@'Ji=Yt`KEٮԅ[fP-"3-nSx`Dl;. +%Q;y#@ێ|K]8N }pĝ7Vuy&u IA 65+)^f JhWr!uEʭH6H+fYwJ; Opk-6}WlWjh,&4+  3|鯏)r9`t}.Q eҍ.Őc ]nX9ywMfX4 juo.TW?V"ľ&-rZji +*fɎ\Fz=՛P-qhPTf0&7~|[.8 O='>mT];gm8:4{r=oZh(KЌskq͸e_f&ChK]h`,9)V G+JmQ !X n!t,6HQtyr( +seS_Žǘ; w"6R'!VĜiB`}A5$|ğn9g[?MS^e&LH4DePHKH#Bү Ǭvl |Wis0 1ƞ n?UD`q M4YN,]2.F%{=-Tt;'IQZ;8gV-( C:!t6^O\r:q10ZYneu6t}FA^"+6)YYZC  M9`3xp@@$nЩo@=iBxZ:%cl*nAC՜97\2ߝttgpT(D =c贐5ڼ4Lc.2{F ׆b?:R 9-!"z @ow|gND9z)SU͉jFM:kq3fVD۟FS@c,/a"rݵ#%SuA +ezknW$yR v:#b+{]9L9; 5ՆLpmvK挞/[FBgo#㤒CGꌟX@hi0. f$Irf2g&3uWM^l2*:pP͍j@,5CX< U +L84 o6RF^0V;ko-4Y2.fqИ`΍FHd/edB8lFDH!ZN&(8yfεiڜҳzfs9k+_1氟0馥,⢨3nn b'B2 Xx, ^O?#Bs4(GPT @CL`)3R #ڼ.`.4 +yXG4-4Ut0AW/flp!h4wth^O*m_.X/TWbU$v: ](޿OsHBtZ0O`S8Lxi~o>u~N</!)l$ѲkAZ{ + 1lAME -6caʤjG{Wᅋ1 qIi@8pi/Hu @oƗgk7.QAB/# ܐYQ +[Cu֛.<{lCU` +Ӹs\ʔ0 t=̎.b"O8R$3Zi1'"@+a!462ey4!jI-9]j'UN1N0UrKlڈG }q]^4Ȩ.o ÉF‰[_@]//^9k*^Еv,K.cűaTBf6% ;ה1LPֶERk4Dj8[?;G߫@8ٶGs]/{{&]aƓ'?{eȶЛ8?面I^q|=e3VǺ!_;g~6Ă6 ٔٳcFVTV"ʆ^Ǿ@JyZx4 e2B<'3$-1H*h-w+o{`gqʗ_d/^shA/|*$&rX*\ bG3@g yW8F*C$$O@2猍-k*JjB٢qj(5aZ0X&SdGpzM䱔2Xecvtx.Xʝ(|毪Uo ,QDKGƻq\שotx==ؾR%úD{JY pl7B͔aj-f 5uJ W@snӅE+_O9p^7Z '|y=cˊZ{NXìX hr,~ o ##onD^pgF.&{,Zfټ3'ÝytOa%tQekb/AÐ4 +NJtR +NZr#ˤt#N:+[AWZV#wGN/sB qm֔IoGs[VSq'8^ u ɴs8g aO)?KB,U4YКA_M_:+ntTL|쒛el$t1Kt Y*dijD6tAk4dRAph7Ύ<˩ߞr-M $];*Z\EZLUtUG翁0ԮkKbG3A Shٻ6!Lfl]@y/'m@qhE7* UصjcImLP0 B )LTۘ{d1@+g7wqXyoZ-e͡[Xt{k6~^sn@tՁ\wՉkm(N.8_6qP +sdcAz>Z%^0թRUӻ#' bӵfp @>rtFu!,XVf9TJSFv_U7RёBVcEۑCor+p]0=G@֍x]o{5v6-`bD6.qL-XM'eM`Ƴ'$^%j/4/ɋ#'=74zIr p(ǻYO9eE8{_j8A0:(FQ]S]Chuzuk]<8IdhqTqm?Du(w 6q~g=WLJQ7 }KR1+ybI/-ѩ֎]x"lq=l/Y1 ,fK}z)_gJV% ?F"fIzq;,;)Vr;QVK ^փ[Sx#3a7VɐT$E쿜X3iAt;3?O;J[%12o3]C H*q#a`O# +@oN`Vkz+_K]5nTgKdicPW:MiՔ`ڻZ ʟh]e +^Z +6:^<;pxT˱1ӜKV`< +*o y"Mi͡8:Mt^eu8x1Qk24C+'D4|C;-׍SAf o㘦 Q'N.lm +\֒3, TFzY:<(!|ؙ]СЭksyD'h,jLjXoesFB%n5 Z+$.+SlY?%Ӻ빊LT(U.HB6TI{w t<Ҹ* ux`? ]0٬@?m +# (Y=M"%n{/z%FggFe5fEďNU7/۩ܙ4WnhHL9܍%\7e'lB sz;ӓ.pb'딱 `}*Hogfdl5դ,I $muۉQ@MWsb $)B7Nfyu_+|&G%m?K̳->rkSy p!tr ;78`9{rCMm~_$!❷qhc}g~ʸ*U>Zjz{2oM8Z=cKd}eDd߃攞5y $@4V7PԪv~iEL6\U;!^ҁ tbV+y 4+8BR0u]A}!h01#5,y_E S\Er-}Y6^-`2s~hKRjQwU XJI;kS?47h?>GHWsMKd :k=)YwS%"̉bF[SE$sY@'Xuds-Е4 VVf84*$߇:$u2s] &Ub:z$r֑$9Mҥ +^tD/lԫ:SnbIH zN $)3wOH]h_cZGG״/Sov ^]iYwс"JA5U߂y^d¯[<0-gy>P@0c$k~/M`ÊWVPH䄌Q;xQ:~A{hK`~K0q[:Z^A ͆dv@\UX:DKs%Y),o z0nf߻qeF*ީ +gxğ 5rњ,9,yR" +Upy [i蟽׆>´̙1Nнf QC ޴ݻ 4gl ړzuaOf !]c( mk&LiΜ 6fboV P,@þ2iSr~eZc 3}0y&w`wipiw )M.2fѯ:#aX +B/T!mdJFcMI-QaN9WT%rG\g|`5R2rD Pg3i!cPFK*]&;3y,aNݕn8kCSI@,vRC.a\ԜX$SFj<琮au˱}P7|.G60Vk#58ln[-e )5l4)1Э$q}7_ϒ4t/;Pg|,ӖrF;1ֈ6 +<ѫZ<;a^Sq~淎Sm#f5 iS+R^fbnv׏Ik8qỾ{ͫ[4˓eaA4côjP-mMOhˑto~ο_LCħv]dbf+hpe~^Dc!aX8%߬;bv`Zu!R@3|W<+z=|O};^q0K6XTXǷTՉ{@p?m!? ^z}n΅Oy}C{1gK3ؘfu/ps0ge8ied3K}"nN9g@3O!Q|\jm +=cPKW6,i2Jouяi$ٛfe (*|`s Quy@z3LV3'|]8rNҤΆy ZEgSo DЦn.;@:-B" >ߥœ3-y KD[g<2:- +IJ723"IO+r.w‘$ROX>cE=~5_(;(d4Ū./D#Ѕ  ,6$8Ysdf݌ڰf4#u3zU]/qu}?tkF<pA0G&&Yy4:8 ik_&]{zTӡJ+1f1eEX@nM9 %]Eg<%c& v]sՉyZN*LpX]Ƥ0ϭO ;i(G٠Eo4 97` RODnÃE < Y29&ƕ4gۣX6-"s^( ],o, GW8$fA)^'Y"{qŸ=& ˔ ]!t aч 4bh^HDim.>l` .G6nhRiM{zlMhf*[b*j2mp<8h>'VEC95jO*y"uUTFglGw{:4m9ܙ4pQ_jת >o d1rG~D>^ھylCG^j#.^LiU5,S2C8v v9#/)7X6.ank r+ UuE@P PFގeW:F죄y0^|W,8ݍ9>+ >Lum!dhv`*-+fmu(*;ͱv|;%6u<|7IM.s 7FE.#xeEWIk;S]/\2b.J{ov&h+U  <8NaYY'_8I*G\8@Oy\; O@OmeRmDثc|Ш&VMV!Ϲ!]BѮGڹļb@E5f1 }[@9CRD]2Z=xF- +KAH:"u!e2Ƿv4@6Dw=?It\>q| @} P[Ww/Վ@*X]a`@ՠsL7:aTbd3U]Qz~ @tM57/ҚLT=%qVCqCH׌UW(K%<*ag2]1Bnluye_9.["=xmto ~7_*?v=_H˓P@oӖ7*F3ᶜ98mY3F:fs\8>p=tu=w/FZaj`e0%gpS`7W͉ 2-8nSLG_j ]' @KNtLOk: +'ew{sia'-b/qAUdS(T@ AfPlO[ wye\`@۪%#rZ +yEw*$f-{ 5tQ 6݊.)̍޹4}wt^׶נfNޠRR Yq!5D5Doi F3} "h{?Y =|{~4A˨v ٲ9E͐KK3G;YŜs捷#p @=3uҴ0ٹ‰=Lh$wbi+@~ΥgforyZv_ZĭՁN o puJ/ƴ/S-{G~#{45 3[z! +QӺz&=C} J6Y"/fN]أji{l[j\a; y&3 z㻅Y>14ChI:i J?lg1r1FGQ{N+Q]yLofM)mQ|~_ w}ݪ_BsG 44-9Bj6UkXfmA3;d@'v8cy8~Z3\ [0@g60fZ]Eށ1 I7Os-ʾE}ҙy$Y6sN4M\֠c8uE7<P/f0[+Zʙpzq,K ͖n^%ޜMud!;Ms(oM*gQK2bw@"͘~o{xnhw6:>a.jlfO]_:9ͱ1f=IRʃ9gl's3p]bn{SF0oLz[[/Y!rH^Lu|ę٥r옅-\ 8բ!!8{ۑV-nJTPx[ƕ=fS8?i17LbH&{NkFs@K^f[4;2cZ~A]vV-%PQi6ZP ȍ͠.w%@N\f)*z5 >:1eI`co>y:㜮z&vdj81hͩA1a24j,7sY3hY9g^J;Chl +dQmvudɥ/&_>{s렶L;i ]6*Xߎ$fgl5[#SP.zl))6v6_R]]OtV?ߺ}YΩSjW޿oEOVr6 AeM k rhd[%M+,Z/O8Bj8S"] h',NN(<(E@(,>Z[0(.öv}쩊ZnՃ?dER"&?e&nY-2)S%.YTҙ$fU>;и Kh7{rvtnח"x)nb$n;3z%}@ORj wL?a2Z@ä(g)wcV?݆-ZuCÙs˳B?JͿ4(isj^XVQ̲kV 7|e5N7"&F?Dfb-T@i)RJ/ĵ׿w/菏|L/s + l$rk"nixNm+D3@%;5 {M65mvy,톋nSpy, [!z9rܢ<9y+|!#?:c(cLw]7v&-ORlY*?_`_VK ~у?|2??ԧh aza9b}p~L;|sz|hD'FNDz90+P@@g"v:^Rdn.=յȽrA+m<%7(m;Wx&+Y:vիPYF)ӡ)v^44;LroG =Wx\ث쌹L,x@,'DMn#zy+U2rMq-ƚȎXyC|{y6MD˒_p[s>7K{Iq=.FG?#.8],ʨCZ$S.BKsW%3X|ߚK«^. Ǐ%ֶڀUoN {w$ʙ9Ӯ*.v)Þ{;Ϛi0,'ٸIQSb(_@z@ϛJV[(ulexod4fРz ( +f}^,=-/w.~ \SR+vIhE^t Dz4b[i0c-ahrN]hv6vY:?`iY,`.YBSh@SٴOrD4)+.g=Շͮu`YR@k ]Ua b_γG"MF†64Pu4H"*RY{xk{_Ac]g) wPq5 {2r`wMc2?d̹y){GZK|{zNcPnz1^N 75NOdĔSyU$3xܸl<.SɦЯ:Vm4L"r֙2-TphLtY61?<򱇎?W.S~U/Ix%Ӟ/ W@WePXtNA3~nz`-cPdo9@834??/)t/֓Rl M$/ uZUd۰3v?q9,,Np1=u-S{8MWO]R:B^휻^loԔNI:jf"`̈,v`2\R޾ !'G$a57h#.Tzsve ,KE2$c̶n0N=<@wֹW yNfH)dhmm<.#Neh]8}J<=n 9Dr>#DXkTn7 +Z볭O ONx H>3H +ԽlVZM]y{ 4Ȉ/(Lrf\cw+T #+.96R!6>o^6/88PA@WP>4،rTꝻ>KQ +8ٱj)+jJOjfGd+ݓ $!^vJ2O [OL-m7aB߈)µ׿wd`2Xrs\6 22+9 fL#)fCI5e&kL +5mr\364wrC-\擟eK zoRlgdS[$bl]wq\)|I]N?yyj׷eը3xsgvfnDneo[n XFɋ0Jot]٠GxԯU 3FͩflI#3wF/5祔 +bJ ^JX4NoYozyTXP5wEbTG [t26c ?@n ăkQ i/'md2cF℩&n-%ۥ/3'pJ\-I!HkJϦ- Ș@1[i]H7^Y +h{8*fHT%BGv:@=)(^}7P gCS(`ڨG'UsؖP*{eaOfۋW_|LWH{ϕ9Adn <ܐgH>@9>٥.<;~ؽ_:5e{Mz>Yl\7Ʀ7{l{x$^`GUc 49ԸFD@'.ϊFB]2i޵[oL~ b>Џn@RȁCu!}/ݷӴ^!"$f.S2N"].p!}G64|4oriF|{6y~2n$Ii}"};ەP. uZIcB# @G2պ!󯗜y{ +.UZ -pƞ(= j>H: +j2zA|G y,S@_W9{#M kNe-@jxv;>)s+@'^:e]8C!VuyVOSmJLʉN/p4Ǔ :s2d4!kJUiW  o@529j{V~_73wR [ cP)DYs$hN-&DM!`yip[9]h4A{]k nffU0Q@j_W]~cONN" ׻vi6iL'3a~2nqs`,!m֛FaS^5ɨ<|A\eb4s3` w^49 ^rW\| (S oQ +M:.Pq5ѹO K4h?Ac{(F+lwJ\UK(neh$2?W*yPiGG7W؟pcgo|u8>v<~(^9>+DFr_ƃ?s4'-~ءM)͖ƅ|Kơz.Ʀy`*āxSb;^[MXwo8W0pSc @0+/swcwo~u +G{ +jbeOFFьo9f +VPaG#4F)4L +m)N<Җirc!5o)NOSˮrA51LD8>^a6T(e 2<4 3Ť5mOċLM3Ȳ aA` +ݢ16£Eְy$҂@sbsmwD(: LlAj4 G=!ڞarv54()Pg\ՂV%(Fufhhc`UJR =ZsLuҀaE_fNg +@Cn+ րO]yJ! .@?xB@w#kyl"K$-l :n~ELwlS3aya{%4\]נ@t@A$>d`PGM܌UnTq 0z`qŶƞ_O`G>w6Cxzy2eK[ߵ{M]͏߿_-5_`Fo=,c愃ca1ye6S.lš-}nj r?;w7kҩPAI( 4x>=Ȍ9]iNM%UQFЌݦ[0@ Q\,uz&IBhh.ΛOsQ3;3@@|F]:@*WU6&J+BMIr!vJLbaBYsE.v52nhZuӱ<$Fɺ{Azth vFEAN&&g$V0Z:߅'2s5[ulJg$rETKf)i uzL.1]+2j TR~؋~eexR>oNijS7J:ZLGTTv G{LZs.M7cm+,bZq]]8421gp*gc4s)I]$GS5e4/qbcx+'j[{kmf<¶k >Nj;m43z`v@烓f|݋b:뙸xo-78l,SDbnR{ :/q{o/l2`0#׽)5wn3 h]*dS8~QySC}yqaD]k1Q2@ҶLEWEϊcSE݂ґG\]46"aFK 'jHvtNk6FM]yZ8eno緿;c]}T a -.̰{|?֋Kz->=_ +h%-ed 5 ӡ_, ih])X_[hq9q˄H͝"ZxIdߺ-Џ>}`m =T!|?IF9'-V6zGz<@V5ڪ,HNLy -e , 7(dy{7@ "4>s2i g *: BhmM g@S׬w 3923uÌF(@S- 4 0 mԚ\ϾXrHLS]?A5Ýh$K=p'3Vˆ"ti1N[o!*жqևKܢ1tGu#+Y׫|XZX#/ģf74ub͠!\~Έ=wW s^I94=h+/S]|SEϦH2K9l=!+$$JglP1إ2D}/3k5H 2;Dvwu47{yk^|z[cfbX8ofb>pg~dC7:6kF8n/>M*}l 1Yt3irϷ \W\D'^aAK/hUq(A(QAӮMqE0z2Q}w=Ȭ2Ʒ9jas#AsьS0Veڨn0A3v^NNB TcggcWyЯ?"v1H@/ nq =@Rou.X֦͎vu#XY$>P֤}mdDqD6<hlU+FeTP'V[~eg0GX]|y*D'ښqL}%ޅNf f,\6|mE3$e]Tɳ%ؐ3oҦ'q늁Kzִ/T֗V"z;4vY4 ,1E#Sa 饋7* v ?:lvXGa3pZh Vؾ'u q Rp۵R-^8QLC)<]\M[:o@ (_V-sPOvA@[Mn73H[@9 +tCrSiR䄫2D2|P_ؾjٌb;o 7(t[Jrχ*%SRVĝl*=Xͺ;y[_ +M ?%.y7q>m+5Ѯiu6Q@>L ; 8ozJ$ښ~т8Ճg[I>눥u#!|_{#= ^ao?WL6{ߵ"7 Å-]/ք\S_ ;r +yLoF1]y_{Mt:{O:lqyn<o;Avjc'z3Ptm̚Z]7/>}{-cz}H* 6OA]YIz2{tYM'{I6Z=$ Oǵj2$]@k5`:fagc{xN0QpQ~MXHlR3~T,d*纾4јRӻ8ьl4-6JJoe 0h<6{ڷdE9t &C_(o +hm<6 @b`sVf6N4YhgL#nBf#@ƙe 4Tm9@k- @-fg{hLjW^؜ߓK/fOfQs!S"]*ʻ"+y m;` ǝtEeS焜͸ +(56I~v9o@V43q“bj8Y͞Vbwo3r:-Yd0lfݲš%O{uҳDN$Q'.Fmx9;g˨NZ]yVir|Qofk3ϙ]_ +P@9u7s?Y "h h1p-FXQ%M l~X^E0Ĉ&t06 FE-Mlȴn5YvyN{ʰ=N8}wHJ>+tU:G~Ŕhլ9-djG.{LB`#1Ŋˤ,ڋ\ <:zyu`96#M(6mQHgz(@ȳ@CLb͌4bwCC#?4YCfvhU5i̅H>BۆdnKߑyƞoo {3#ڧӌe>U\n,F*Ɂ#4͟sX<$ŇְY 2X_riF`3a`6p#B~38`RuJ14]dN\Lsqц wM, ~t@ûz1l24NW#q6Ot401joh#90uwh @Zc(^^-qv3go%.n7iSC$N (dK@h&@RRP;C՚3% ¶Sʧ%l˾&., .vGMp~ @Tr>&e<@ɺЙXgZȟԉ'L1?A&Ah pC`oW@[9.̣1_lx;Ѧ6mQ&tuD>gl^fV`v5Sr~PW%Vi8:#]}X:T`Uq ffavix.{ ++#v`p>j 63;83-}n6BAzv_ۓr4 V|V?yϔ?jƯ>'N?ZW˻jG6~ @ۘk16{ne)OSO1T,6bL`"؅tTms1|@wWkn:\&hq^q(a2f5ˀ*A8YE_K[&)y+>/k{x\I ҈ Fؐ{.KΌP5i@yП|Og㶟g=2ܮ<4nE"3uf]+Ѕ.5t)[k%w׿wdi4T[ EH 1 QI#2H煇sfkP:lT )`eLܝFA7/~@kGNbVHp޾%:cm7`yzb6jC6VD-jS[m"Ae&P`ZiNog͚9}gu'bf AwZm-Qk zB6ZE34d&Ga2D;'NhzoxzJ2[IF{p'c~MD$ 6(k;_R/c|* "OrDA#>!Cbu2nz7 'G>],υ"˱ͪg#+ljm?>m;*>S{DEg R~dXsf&V6ގm2 ߎ_17Ϊ'ѭ{3g:HލФɈ2D] qt߸2'gqy6п}ms2SV8o ׁFZG,Ǚ4>yFϙ+h^: A`y&kޜŖ "̄Fɣ`=q*jM(+)i.ñ,BpE'Hǰ>mĻVHK9{.jeh4μ4)kD%69]3k0Eg^#4m P`,8R&h'vZfN4nȊt>nREʟWBkݝfg*hqK=wham: `jd^]4 NolD,fv0c^>I! JѤ[[YF@w= +a4,4bb\ZXӮD4g':P#Ўʎ6ѥB1HUM<1bH]`0Ov4 ($[&tVŜ(K&0۞1sT46ɱ9m0z:Zk aAEhVx|$Kκd)70xУlWO +@ uH/+dfG4ҟ{9Q:gwSD!÷ -iw >5'cmJ6k4/)){ILi*dC#&qOҔ^]/Mr]$ ;ܴA7}6@uȵj'ph,8J6Wē!Fˍw۰$<;_*n82:_ $ҐlvzՆl~9OJp:Yv3G2c_kL}~A}!JD5-U~^7zȱqy?3Sm֒:cF:˂aKu6w6v>qϱG>r XAzC`'y 6 28LWkf&L:b1304X3 joL7n)~5h+ݐƚK^:8<:p|P@C>ZJ_-@c0V#TYvRZuД1'u&w +v&^{$jF9k<ٝtzu9@.E|zްPp͵"B$-yLئW$}qs ВW azB ;"]'{Ce%0 UY`MfAlJMh_!BwwatԤUx('nNΑWo⬙Z0hy?\`!kݓL2Qk,O% 45AJh܉-K&6 3FAdLam΅廑}no@#mоiqt.jwJMٝb]/܉vxUEӝ"le8/NId7Og̴h 0jړji=G+m ʜnVZd{YojiICȦ0!CF#LYb|{6ʠCo>īqb0,<7ĸߚ}z_2rrot `}3=̳D49#Dܽ +SO6(UKj?_-]H:S^S<-q"{?0lBQ ԜtANǖ5 +BqްyhI?d:NB7vzG- 4*-]5 :;hHӏ~>v衅϶1N<S6Mʦgc-f6 !Ή(%SE2wM62Yyz_.;_qljˆf:Z>GlEO?]~_O zp@|&eH&5^z<5k +@>ƨ:>yyKD b-_#x1z.kO/Я?ߜhu"y#s: +#B1`蕸lwGHF0eyjY:2IHj]x9WoGd7 4 9MuEaF;Aݓ +\bVWm_vTCJph_ @ۻ,Kr)f?}UeNNmMGl\0bnHw϶JzW>id䆂VHvjUU867P.}lNK30ifoE2 ^#|k?@Mhv@_}E|NELt 49 +\ۣ2wa;3h$ _5 >@['!ީnFc-S!rbLP~/t< 0"hKB?6Uf-`v3aI食uU[ɚv3ހ:Jgb+>cn^Dzw1fh]3|ij2aC=g/6d)ultæi%x߅%kھ}Bfgu42{ܓ!8gRfh [ fsv|Fj[o]wtϽ|p~]g@^]/ ;vľ +r׌m2щ"hlD68#Y@v-M2Ͽ[z3bdɳǎ? =~=7Gi/< T.Nj_SM +UHHZ[u!u~Ft¯~woSekud~-ʒFxQf2`yg̭;%,>;:qk9y9?{&G! +bw<rw([So Ψ]J[q&y5,@/wRfI*@u9DɢY:hMgeSQ]3}l4&rv;p91(}tplilwڊ+rl9(@yt"G|g{U{2웫skKz]Rt-N'( t.Yr8@=p "4Ēwe1`br^VZx +\@ P6.:8n/>`+ @hh|{9% 2u 0MhnfBn uPDo>=W>E-eEЙ:/7gf_@s#^  ՄEz=xF0Ox3=*N5{QaO @uyt9o^oH:Ӽ֜eq$1ZY)%7<68qlHfg Sabߑ I2e^Ptق\(7 j zoH?6^x{Ub/iL>1@\BȬ2b쟯{BcwrIN9XF+ +6TٲU8= =P ybMk"y`SB\ͬSC]6M'^PRdg?%@2K#%_gltBD@?r@".`zq %}H/7^>`9EcQ@oH Q>SZG^ܗ)QóNv=0٨=Ps]tvWԄz-swybКeAV3K7rT2ӀmVUa0gXٸlW60=3 +s%f/ =o fYim\w>li Xvhd&ro9Hbl]C1 ueLmP% =@CLvs\Otw.2@CD\'9C;e-ӹ%u97NG b|YnJq#,FRU?HP,lj6nt.hha+ZNh?:k v0_]vFQZнsnikAF)ޤHgvFYw/D?*au˫~l89ex`det`)~9vh`'R0`sjq?1u]lEݑ7>N2+_amG~>\Eެ:" 7=&*Y1z;Q2٤tW#[V_zC}EZFkSf{ sAA U(g᷿zQku23)+Hh<;d"l(nodcqFg DN@ QWG晻$%ң_(AՉآ=b><Zΰ۲xItr&ǾӍTW$=`nFsy#2cB5:U졒0Dvl Fu'p|֙'o4&6 / lg+i4Q$[ ъ`(uТMwӛoԥ)܃g㥻ij$ഃޔF44IJثeU +hiky-'ϟDUfih'זyI 1Q'^3n,5[hJ:NrB2ƮHv &G;J<F@{3_y2; 4fV@:a^@̔8T }36OtE`Ӯ/C)`BlǾYVK,iy z=%#S^Lh Ȼ ڈl ![6}l4cb#B 5rV?]6aC}YܬBMd]\4|iӝLT"z2~?~9 ] GMKXXB+UNw=4ɜ4f-R\H[ +MM[RʥIᓾOCSlLO|aQ[mN K!ڬNT@ّۚ1 A¸t^jY&՜?S`N<\o'6`^p nʻ'gδ +Xhͯu59cZO (FK7*ci(~f. +h綅DK3lt*M?:/Vܚk/4 m!ՔF.6,_,:5{N^ +}Ͻ^iPfM8Z~|t9$NvN !>w@̚hfaL1t!~a5~?w׍CIFH~ayre,Ui[gDIIuvyi߸nwFOՇ>q}7WgG~j2H֨k[q< 7:]GYcb[6гn%XRͤ͜u$\NVB#y\p%y eZg>%N]4Qkt,oz5WQQo|#/.x P: ::ǝ< FPA f ;U5&S!QaO$&ZU偃T:cS(܁(Pd."šeԤ&f$*{k/+jD+z7i ! {3d6^ᵔSM~cTe[ \ZR6f);pN7@g +ɸMNN˂c '+ PgO t@rv31i՜(/(L<}s(33R_z N;r@A +?!@c~ߒqsV /Gh,IPˣYӆ/GMQ :?sh42BPy3;7ӳ"_Uxe}Na\m6kmTY9ij[y{oyy*sP$jAhXt#g~䚐0w1|hkDMWt=N0:"iR0k|Ң42@_~.~% @$Զz1d\ Pr + Wk`;<zdEȒĭ޼q۟LBěoxÿ'&$Z,}CzYte\5H@1y%=ݑմ#h0uSڙ ֱ{3o3v6h(/+,*BUi=8[sSX Csg^g 1T@l|(ij%r&&Fҗw'iųk9MێxW <5/Q댓~ʀ˴Ƞ^-iE +@=?rh.)(el`m[42 /|ϕ&@@d E,tfn!*ZLIO \U*%z_/97cRyg#z$Ag9x-y 7m2usny`>qϱGjYN @פ?E2<;|Pa/v@'|ț:`6R~LE& 펚DNq,%qݏ:홲i:TܣbLg;M۰+ b Wړ'Jջ&6S见%s e)DjAn kIr6:ϮeqJjvLYu)pMg#dy$gfܐuSV]<cyM$!qv@W^K@oV^ 6PK 㝨rS}۫|l?C١~9Wevfĉi)޽{SgᏔ\9sj]'i`jmJȟY ^ZMn8Oտ5c=Pv?L4H:Jֆ qpg0w< mr^Ijm䡖􎢬y^y+n~MmhLL\ [5'6r7n;kIo\J1Ơ&ζg^Ʈw~$zrйMlR(CI<6kCY-]-㳶`׾;^LK J*H7Ʈc+DPD0hGI+u:m|w뛑叜 /<@Q4)~SfpsYGEi :$:3OQOJshoZ7Z+[Ti 2(5 tRN?>Ld_5;Wv^xK0n"fMvI=0a:oq2AyW^1-^9ze~~VpmPths&f̚N 3JȼCdJc}fX7`Jbw9\l̾rb:?t.X~E@'ro_>aCm"hdf-tlOfʚm +':*r62~"3 +/PFh N/@ b6FPΚ'u:nʒMB?r;4x=ST6`Щk843U% {U/<'hmvAr# lF!*@3\R/V"VV:ص:QTc!7&K 5s 8yh JI0 ZK4@0m&ןGl=zԳ5vm + Jf+tf߶\:^;YBwcWʬk51>ZB& Seڌ<_8㋝\'anC%DPS:^րY"'ۢ6,Ym~!en%v)Ы$=qRE ;5HeL쉩\JCr\F06톻%۪0}[L&X\xft7r6Lse,8.3+יs8|=q_0kse$)2hr&34΁#9M5ּ;Ѯsed"H[6ucU̼ylij:C;o|6$|tzެ^c03i^.i@H5ƒ4:r6yͼg)O2"3˯XX*,%˲`PZo߾L8,B33 +Ll`=:WRsy1Th5]7]] Oّl9 E˔[@։ƞ7'M<KzPl4Ngct>Ӄoi:~??U?|g1:3xˏ^;^>O @3{UGXv'kĂ8ouLV5nʉLóT` h@ `_+Mj<-PSu +qa\ݔ%M5[;4Cȴfxt6Ѵ'^l/No4b!}lMO.@h|b&f&Ɔsï4/mk.ItFsjqT :ha+Kq_6oO| l6^ٍ,T`7t1uY,&3t)/MFp_7s,3m8ÚcԏZuL\15ꣃV@eЫўu~kH$F0}X +IǾSSq0”@xY?'5::$M7FK[V3>]O47X][mm&\5h~ (bU`Qi)q?_)ZfLR +x7h<_WbQE+Sn<@%9m]% Ss:UaZT`:4Ѕ'_Np_A@grZwLy5ff2v 4ص5zn~gԣSDudHc M^-aa,;2˵L>9f:ghWR@g -owҗ +\sN.;G s׌o0ge=WD:C#ȓ\3ffc]u90k:^z{K| :fѰg _4ZL3kTW%ċ Ns-K +8{]W}$UI,?%ac[! ,h@2 !!tHȃGzH4cB&+!ЋgOhL$`)nVY%Y{>Ι߳<RҺyo]@oxP;USţz]݂1+S5M.ye;4ky+ ,Ύu3$Zeg64v6 7:b2xЍoqFvjr T\C(\wr'3'9K6sp Al{iX"SQI@ocbD^ +:hhjwϺts Χs> uFI[z5Tp3n9݇́,vgSm:$= V}|;u*}a\U}i/Sdz4MG$N%\h$!npk]?tEw/+Ӷ>a GKkL#<[IiajsKBϕ<̐ Rw=; n'a2=C,g\pVL ^C =:Jh֖4c$ͯep`t^6;&ʟ"!;_0.ܵ.c>x՚ tbW@ߤNuH,Be԰1%ŢVx4 P@|#b@w7 +KI$=dY$]wfUE4:ЕmRRuRCv\)1x2pإI\7Ph̹oymHV 4_=ؒy+!WF $pXU3 K377ZmcS>y>~khdr+v|>o=-+* w *&qg:8_zN|Rept&Y0a֝ ?`-[j7/>.~d m+n7 3deOБ_#+f|{ M1Kj8@~֊\qGeY!ɯ shn@ʿ;, \5gͶ\A8NṚW`Y%n3Dwj.*=^:Gd9*uoP0 vaWhz1f0lp)?z/";+Gr +TDzӁeB[ cI.y ^.Dc%vݳfJEo)k{)nyh}z4 @{.+cwE+#teZS2TL;W ++>fA4.If&7}GxxK'0/TβCnR^ĝOl4-wz1Es"C6 )21_Ы$.(UTUUjp)G 㟆4ܻ_oxХ)F4SFZ|` +:MVasikO;u5[;Jv$?U9;x3dMϊ1KPeGܖGZ>/SYk.k[dMJ_X"KK&^duTNBc[9U۪MVDdt +N缪Y!ݢΌ*IU21Vm(KQTs{`Z+mZ}^]U|yIc:v1rsX毌= C*қ)\{E@MD[׹!IYsH ܉߽W#:omD.?9٩WQP ˟[F+'[Wiȿ$3^Pacy" +$KFVo"nOW y2+1зT:9F):<(IShdV*nrn("]Q9oߦ:.qWT/. sƷ@iP'@){_Ih'ܔf.$}]n>NW5nʉzPSu@fj],[ca +0p,_9kجEiQIԶy bu#Rz' iqޠk +Qz+n鷸F_DZChn:Gw/. m[N +:5v;g)bq]KVX0^莧P֡ledN(7ux>Ux46zt\$0XIXy1O2Z9x_%hNRrXUɫ;Q+>4|N0M;Imrt=cdae ӛ"tovQXJK51Phr_3 5%9kNƯ}zpUN!-&<.-9e!+9$)tһv D@~'nduׯ䰌Vd3vU 9Bg4聒%s\^ + +{;Ga.{2kUaSTךPyAzwd~f2j$gɉRv~3Sϗ]C9jl>}:)޽{wVn?8sqfJy5·~}cu8ޡX$2_8 2s& ?&/w_,۱ pM\\hc``yẂ.@@вo!ǝedVg*p7/q[^H,("!'Hh&eź9);5%U-F)S 9$uJ +dA٦Kdrn,DqXNJp%4,Zލ,<Γ=YQfoā D +Lg4ʩv3!ʓ/m"<a)Ќef{gar/? +E#*.{Qcs8uQ{#s:hcXcc C@{ +ݤiVeg^CD2 LU4/{0ș-w61u`Bgg{|꩙w7-n3JHh9ODSfae6+[0bЕji^`%,UNz6L(4(fp%uUH2 oMJNRZjє׳ +gİ.r rK&ڲ ަSK-ā+ pME5G;mAХHQ7;믩WE=ܬzEĪ7?;r +vNr+4kG,?st<8UN|nz1v)7?]q5ćeB; }đ ڥMvm~gM Kk#Dba/vO5Gj k@zttoz- +ϚAv}Zu,~տsϯ V@+*En QfIf[ Ĝ +gkxb,+d,J4g>Ʒ`wS^n/N6Th3?Z8#9< +@5tę5ܡZ;s03f.T$j\gksGZ_v={3NM|!A!hoyS"' +n実U[qׅw}){U΄ӭ4gYݦWV 4Ty. +Ua\3DBC8Y"l+m[lݢU6.Lihw>0\Aۗ2uF)dz3@h~W2bYs֨K/a0hO\w<}f;ɲ 9󜪶mӀ89ӊJYx2^=/;MUsg8->?s75 +vUss%;· "lHjrlVa2h~ZgP9T[LMٻC99Y$kWu sIU>-}`,Ije@3ef AY%(5r( +;"jqz!}mfH6TI-h*׀Zu5LsKy(ʡ];?sj +5@|I4T %_ʹ4:d9}q›X.;}ۯW_>WP1g@EDq }1Jȗ=z~G[C|gAge_ |}[^w8[в(^Utg$1Pv]z?wDUepv @Q@#-PsHtZU(g]`_-̷Xw89pˡ7aA@&ق|AB+r@(QDުH٢t6&Mq +̵ovr-D=-y !6Ф1k<eR4Nd)Kbw֭@@{ +h/Qٰ Fgj_l1>̚r*v<3o`S4ҼAցJ$z^VI?((ngk@G +%qVE5=}$mh9}tٓJ߸ݱvl{_>-cK}__̼d( vp"q­/![SzT{%]ipgmV}kǻ?w'mgeZ`5Ś"˩U-w-/|J +tXr?1lJ)\C%'V92q=67zIYe^;r8rň4JKB_կj,3_ropX%T\4Q#vg%g\ |]K) _.ɨvenӪFۚ+̧" jgU];Q_&Sm߬AyL@Kӽwax?IIR),6CRA76Μ$mVriyzs|??pw $:ߔA!5emeY!wn@unYQ^07ܸ^ر)T*̓bx/_*tP޾Ԯ=fƟJ/vnqK:N]M+go+7$F^+XT3e]U%3gvX*%d͈zJ})̟o ܠ!`1"cp;pOG=FC2Bݭ 26z~T0WM%Q84k+gr{>+Zn;MOBG!̀+zn']k@tP֩ȇK>YKzӕ;f7ę;<R +RpWOCa$)p2ZWpj# *nXu0Z*`\"ME`+tV-k'ChcՍt*!@uà +>oLڑ?z}BZQ +G2_gֵz)W 1ج.;!8_PUt'4dHz HM#Q sfy#LsiUWd2#JyzeO{kxW:]0wm7|'>pmY'-hI6 мUF1Ѽ8g9Jt@qpR+Cj1dTs3GԶgmf @o? +tVB3[r PKͥKА CW|֕|cA[j"ʼnKC(tӇχS[uWpJ_؄^ cg]TL76Qi$Zz}#2N#wg%7WDc%ݠF4[7˾ ucc,z=Nn>[XwNz4+ͥWuGUW3HT <=jeTth6da'}t3r^mɳf$ gޮ8m^'a^1(g9ep8ާN%fsu38{zY% +psцwP{ha lxpVI,*˒$k_LI=' R qۆ`Zh~]0: iʱ'@KAh.W!9@׳Le?h9i$iŪ󖬑=Ѐ +i!: ƥ⽇~_7LW%# ,5(^M_wӁZm9R>'O܎mTT;j +g6қ'n^_r𗞷e<7LNAtR}*W_uqd]RN(@gֲ_ĨKveie@3 a+w.#֠qFR(4R^//9{y@c$lW-HGSן%A:WIqm ;iNq"^pƃPhƸ,4t5 'Dy՘Vl|o@w7chZ]CT1 a=uQ1`p+Wx}%4ez}$FTqC(T)< O-s167Uz©G;&!\+us57e~cn^6tuEgT%m:ѱDg=Au=VyK<bKcG 6u2WTy&IЋ8:k/דf{ fc1ZLBegD=WU %v 4  yչ;BL+*Ep=Id Gh40EI?ϸ㾳6(EП_xo\hO.d|DGIw_6w֏B +}_Dq5T[@}/HfYVE8)2JnM<_p /8z6qyG~_Ǣy>j w]= +pE£'pn$+M I1fyvxx +^qmAnV@s^ +~?o8>%,+Q֛.kst4Yٕܰt㪐az%j|25q@KsO~1>p./4HjW*Ы“ɓ,!#>r6`]rgt;4 +da j^q¶wyrχ༱tNJoG%TH Or]jm^ww/5w +n/ +rDa T#ib.\\j7`b§Y\R*`rAK jOߣVZtISn!xqVx]DQ +k0+(D{-G8ݺ,w:%x—)K,zg%3/ջD،ST,aFhU$K/yb^WнlW[X,sGxǕ}QE\-"?Cyc'V=4c \SU-7,p/BϬeNV2PWC,( g-^:|zUq4. uwmTʐ a7^2_DNk${O=d]Jxsg>a-"KŔ# `gE+mw)+2@C # Кڍ C']p|fwuK 5chRh86N#wT:k6IGj9` ɡWaxNQxa꿺no/`mE3]217+HֽCP+ت=ʫj( ¾$1`y!1Uy\7nz^$4k_qmI=U)[tVP.iE::IKAtj4tZ:֏hRD.4x&?m+cd[+.s^/` ^o<az4WDt\u` +,UAd4p%QY1;/v\K|bL?,vg$^ +O>"V2B/;p^at֐$Nߍv[4 MҌnJ+uJPJ&^G:})4hʼ'`lfʎ;s.GL^Ha]>Uj^*@w(^.C`l` r%_+4}~>H͆Co|vݶl6O>B޽VɉW~Emz\9\l=}o>~AJiks849b% +5<FbH;,]$^,,u­y&k%ӒaODb 2EK!>葱ݪ[Hk+Ai [ޥd`p`Ҏ_)2[QsZ h&g&Euc/" &)0e1%-O (rJ\.>RcqϿ,q"xۍo?0w+'r֏gJ\3^-D+E[J@8Q¸CFjW_k :DZka]ZEpg"h Dǻ;Oi=S"@xeۤH)Rp,1+|!yAbsFb<zpPK鋂D_Qi>ш +l[!t;'?p + hGOLHJ|W+z\K:)= 8c\2o}gm.ܷ}&] ߯sEϜ}λ?`D ќhJ87gv\GO +HQ!xN#ځf6l9Z4F2Z73 nɳwr=K5q`x` suwP*,8 Ⴡ_ uy,ZK>K7\xAi6V9^#FCMG5 )%V.Bc%LJ<ۤ_"/M9l!f@Eygw&wi_~%M~ϹT֔袚b[x.}2gl'yv4rm,P4򏑃+ÿQ. sΏmjoƒ{X6iš5xnCH>Y"=k qR.CT8;e]PvVi?G:ȍ4,$[Cy"szu>_d΋1y(ܹb~&Z60Qi>gt x,4 ShASHx2oӭ]a^u6_V @]Agߪ-ۍ1yLEgmY<1 E t}՗e+NmG{gB mB9K9\,ҾIckjTZmW4wl玛Ǹn]X !sNʟ_.#<Df6ݰѾ211Q9ʹ0W37jwIhy,[lC؞I6f~lY+_a*h`Ǥ;0%Kr yꭶQ#t'66QC^ꓰd٫:IyJ<gtuN&pˡ7Ϝl恿Z:Tjޙ4G4!eg7dXH9tM#|6HmF +ޣW.E漈 6N3bC],>1sV"׳T:~S{eḥ,+6#bFw,ɩm[rbΜak?v5ab[ѱzU1NݼZ-"Ha%1i?#{=wg,[4vJê"8Mb V2MRwX. +bƲ*˶ 9+eVzL1v,K :/(z ]DT6ڎ zb!&x6ܫpXGqsNz>@+'V@K$]0@+RMbji~cGO{Xìn9o]DE߀zaZ D+owݘ9RSA)UjJ)t .B8E'JTJXHMl4I9BvUcjnl3DDruЊЧOn6r"gc7׆.JP )b',zxTdǻ;_|py]m_S`'K5Q:_- l6!\Mj +t\dFA, xh3@OYsgAe JHwp0oKv9PU +a+Dz[63g+YǫSXmKE2\v\p3ESǣlICeeG[cOY(*魍/EftKz=s5nxqx'G3ĪWSiֱ8F̿MDTqնE*8Z g9eHXC!>ٝ=o72h)cR%9*ܟ+~W  bo<n&.GS8R3\F0u5"秣(bg@Mv +4u4휱+tXk[3-J:lD^p&*-ΛP{I +d\YݛˆpDëܣ\*R]>Dž.x1E)x r~ZޮZޚRυE8/ڗxFO_:t_%OWXeM𥱬j@+a&nth z#OK2N&߇(TM$a?0wm7}8'YK (] %F?#Ω,lSjXdάj\kE~lKI^qcD.ŚA]8U~)@vCIy홵bW!jlh`wЖ<62jJFۥ]/99)=^!A<ɦ# Rϐ0NJ {聚{NԽc6Q!4@K6@+B/..ʄ?۝sS.pn((>c9*wFdL;S<'*Q(&R=Mڎz`H?0#` e0wf4;is$Qu@a2cdTpc?mD>rಗ\">+Ar;0&>窅yJpڂ2U~ \2 SW7'S`~S2斄F0U̔R؈%W;۽^[>ͿycY1}gE-.ආzۀ&6@c=fWuK<xXj1roOPpÿ|S7}&_av>C>ZP^ϰ#rz̩#ǩW٫X\01<-M6si|76ЈAU7giZLGcs=u;AyF5.Mإ^ †@Z e%5G=ry4 N-o=zB[ոK\}gzh89-ǐxlfW?"u3_ґjX>Y&H-Pb獐SbU˝yEA:>'!6KeIif.6@ozB+rD:^y9z^NKQEC@Wcc)ѷdT:OW! -&CaKI֍@/0t/@ rh%.dũvN3kU7.Rmh9@:yqì.(ɊI!Sa/? +&IU7<Ы, /SǁI椐YHԽ>Zb?1N2k@R]3<$q -:":xlWW]?+2rFn%.8q*l/pʼ{4_]=`k'vm:Ǟ:r烟}\Q`לsca +^A`  P.3Жr|= 5CmN?/ŧ$1W{~gMHͤ5'|Yn̞>r \6AkeB4\C:7btؙE^w-(Ch̆n"{ _:xXV5DЭ*O$|9Z뚳uE^y+G{ZU'Ew^>V7*=-i5VÙ&q{Fogu}^yC۞w6_׏% 0K Ѓ  @+6{Z9p|iӋ]ix{w%@'e$8(K 4k0Jઆ WJhMHҎJ(C!e"C(@C//]I=4̯io~ jUҴÁ.IW?$aA#TmZ`gc=sکW Clv[Y48'yNeɉ1斿|oJ眭q ۶6`З ^m=%!:X]x_w3}93{ +n%y2$Z6Q2F頽*Y\¬hy8?ꕪPMG::~:`%zo2 c?99!]P +mpn&fp*(j#$J 1T GN8ƅ V#v.ԅYajc1QvnN`)}>bJTr4HԢq䚠͑][t*Α^e);%_tϟ>v'ΜohGOs?G% 3IpIfr$TBF(l睭/{VsD{:ele  LRMx4֜NЊlrt Iis2+5C+>M"AnJ<[K@+0S|{΃۬[2i m4d]Kۮ|*i[K5ɧ_ Hnv¸͢.zk{VtWܺ=3Q)O|7t)uuY.S@7`!ׯW 庖Lt8Pp;rL3q7y~jCobanE_OQq06k ~3%QPmV{rk2X*(*~nY^0dCdEx?Ot+ lxYv$zUr`Yz "WhȾI&E* +ͅz:W9;zhu@ةis^~lO +5gh8󔩨0](b je=5Ǫ.kD5T*Qt}ߋխNg.O%9]8! spƯ+`N淪3 +VQ +h|~B˶G IOQhVG/Cq3]oC7#_#_;ۈ"h@2$>(iL*vћKS63sduxz:y4tq 򵏌e=J$#GNXvպTuo*C37FB;L05Ro(vBˡ_|ډIX8iMeb&h& $N@KlB›<'c T,Ju&A+s/} {xOWs?SQɟz;$fq2g X*KeU:˄zjs_ Zx sB۶Z¶S@o8湾}/Ir Z4f+Td̫J%Pz\0܀ǽvؿ?kxܣG_бWV&I__:zJ@OK65`G_{$9_}5C_0U<"gf\ ?],Ee0Iʩ(B% ț1&%]w9?fpBȏ]9V61JA)%$֬q6 Q=RUá*^@|tOk''wߧϭWT7+P S:K{W]Bʹyc55טV$֨aI޹!Q'/IW׌k+α:rL1C@4r^Cg\%5։T{$ΊvfG#ͳ&$}{It#4…ٴʊ+Pxh锹A@gзNM…5Wu6쇉{DzB]O3-ÃbU=-Ci +y٬+9D̬WG`讫XkvRJ@[~^eN*1zeJq4p0]pj$3#Y0?ڮZQL啤fCy8ŔIx-C'[f9.+12qNBwC>E?h8w26G'4 )(y$dVl`ÜeD 'iٽ5[L@WC>yhQȶ{bdp- et@JPgW8^?MChox؊ >KTZHf]#R5C܇RT9*6N Qv,5̦`c!j9ޢ.&P6*7f\Y \ባpSŠHt1[?Zj4ge\[ @ m2hLȍUEP!̲I5J;5@c6kQ`[@NC7+9MXC9qt)+m&vI^Φ@Eː_Ygf# @Kv +'_J-gQ"TGyԽhsg|| zװ"kȵ~:TUo;!*ZґF\a[f +.w!>nC&7CZ$)gS@:9dY2ǦА!φ>׵iEs'9n,=͗ y&4EUy9]೦ׅ9'U@:ɳYdhYve>շ[4IrG7CYw {oR馍ѝ0|z W.ȲeøD2fr `!! 5|Uocϛ*1%r0+"\mih8#J3(4:^W2ix:>߬ZiUY%O<3>B3V:iKaj +ȎFq}K 9u47l&)/+;gVeI³C  |;Wodht\[@?=IeFsFm5J5LQUT^ Y̚eӋcKʮM8m$:{ i!}aԐ +CRܡjUˮWJ|M."/6JoţcSvS/~D:[ُsc M]@׳Фh 鬞62ʒf+}㍲gY5W :i~=ө @A3s^hre(#A C~ƪً*O]) +<݃%^M //3"fU{6M\HäPA hBd +:?YK5 g2GIGهn!Ze +3䷴gu\)3cwڃn $lSER'"b_9%/w1T$\J31 +fʂ {en4a䟤gYkf̜ԂÕY,gViZV gHC M=o <:E|Oj>ae7Pz|iṁI-M9 +^P@#6.2el +r_&ᯒr<jn<#ǘEcoЬd?'nM&GR-XPe sÃ.5@O4VU7'iĕWAcnME@.գ?η#'8P$SFxƂT|`A+NDy^U$r{ +hmsp'Wsw4T-Sa" ǪC~(8ev tVizg.~uZXr쬈Ygx3>Nb+5Q܁r(5I͂b(u0/2@KK!&1sWԬj/}kU]7!;ai=E]pᶁJwB=|<~g3I Dᢧws?ZkH `2|6Lj18ؤ:+̚,̦e;M ).x3)ki ++Tl <N g\$W!+k?)٥Jy\7xI&5jY Lbs$Y jC%z^=Ietry[ݭ9Z5EF'fƆ0v<ª:) c-uy?UjNmjO1bpQ-Wa,(ͣ2eP~{34hH1hv\ 5Rd*E^gw]Gy@N<jnXh^PI ͂h{(4=XI[ӟ~p!u~l )΂YK).'gлXb2px!5yx 1zeʛ3ԲZg_B6՚8CZ^.M[UM@dVFeχԩ2*u$;^P&O2 X{,L]ot1ˤ2>gfgp0T !Sf͹5 jBllya ~Yؐh,g5pF^4 +h ?h/d<2Aa󓱗bǩؘeVJ^v#]gz@!%c]k;(t# E-@b ]=w3Ʋ#N]84# צZ͚`Q h8,GU|@.sT̏ +oQJFh;={q&1ghW諂AV> x˻' o'DKը;(O.7+%Awtz(*Mu1C}Wi|~N[̐;1[͓jjU-ݺNk4J! +T4Rx𜕰 +Cx:ř +eA)!50'hYYz_R@*Y 쾒=Ha?\܎α'gE02WG -#.%-X:f55$NDC< Y)as4ӵ]񍔄>ׁ٢ ݳ^k&$^[Щl௽V!z āo-x ( 5m Qyϭ\og=cN !s68F% f+GzyG{Up~)r8Yzd(Y +:匏*k e`kv`8~}^ 3n%vVe ph\,eIrئ8l^Il+C \mBOAn{0 +]Jf Jk^<"1bcs^J/u5[vR"熹y$z 4LV*Ao+^'WtЊ|VJD +Yf0fk^!SD*v@KsrzR1=4c8Ys7 +ptt $Z+BX)uMk.QBxHw<ӁOYeri(FݍfѾAzCt ;P)(@3PeubEQs\0gvEry7?7B#*թzI*F-,`ry mvwqXcw eRCМby_&t۲М^rÍ My[kDuWdzRxR,M3Y-^GʢexIYc'9*a-UX" idm+ƅrVj^ Q!%|xj# cA-rN"3_AaþsJwid˯3]oCΐ1b;G~m=&fG8?]YdڈII.ݔû.F& ?賆vp٨2Ξ(F't|vJ}y*0Ґ-5)QAsiU^feU9Pw&sdDAmʉ.:8utiCL,=S+Ċr[\آf +EkWy:dEľZWt4]M!W`%@7z-KqcgEzwc+NN˶["аKBÎ2ZztHuUj4(y x;{xgZiG%6ȅjdr7N*J_^z;>l!8JqW#7s+"Y\5i +T+rV\{==`a]5czDްR +M=#MCR뎧'z)=N8dWg50Mb1Ndđ{Ѯ OYCheڐq2 4Q~f ȓ3v27v`GcX2 +FT@s1ÜFD0zQj+pfLhzxepQ8QmӐ铼/@K <2\<HHD/tho%ӉzNa7 +0TF+Zm[pd8+V[Rj(M99U@OE]xHkkZ(JJ{HH=|޻{i8uY@K9 8_>> Խzk[zs?arwk;^9~ O+ɮ@SibJqQ\r\Q 'H)BJUkTJiөhf;cNi/ +b,5 +tδC+k~ume)M6T-5vls@'HjH`͒풫oAp6?I܊lʡtI$4=mc]@ :6|*j0@w/FτZNW ohoL9 +YI\)MCЬ†-Fˆw#+ Zm;4b/~5 MG1jhWIS:~ʥ=x=Je mOMxk4rB\ӽ}Kp7";*2IKrin:G褔GNuK.GL~ +zʒXkE7d#CU"L sΫ+Rrh~jkq1kITHPX 1ݫeՒzR'Id;!Kv9AK*A6 Z=VB=]<^|W_vЋox,|#.du`]#fa4'K,ftr%W`gm16<gNha'sٰzL9 f +;&+ Qv U'-V:c dž v!vf+^, kxqZZ{ʥ̟h.(0?UZyR޲ToP!7ЖjwWxTsH#2nGk;ϒ\aΦM욠웳ܙՆxW)GryYO]:%+>JEOő>GBrX d{wa7Tff @ښA6Oo&>J!BYzerj Wŀ6 Kkf+GQԣc8+N\8xs5,eVK׽!` Zm~ȷ-1o]I֢%vfP,^dEIw(Y:@Kxm5Mo&YfiZ:(EKgF= 뼭w(B$Wݍꭼ!FЮDM~ 6(սC8Lw"F! )BFd8$+AO$Ն{$?bm7ĂE XcC^y+;tjRglAarVR?Q\Y D|Gz0uZh3*, +~M袰P +d526oLvyu{s\8{2UIbiۍ-R"g_&qP み^l63Fܪ~Ou#4d!nގ\c">`C# 2J틁2) Qܿ1Qۻtp\UxxzәnՐÞ*Ɏ?.Qf` +.I .te+Ѧ!C˃x+jw)=wo?*Ϳ]׾WDžsOJfz_w泭\=_'I3mߊ5Ьd?Eۀ-gA?z"AffQno9LZ~FDsGzQ5;r7E$hGo*6/&+lI}[AP^7# "Ⱦ!63;x`l0%#f ohq,ܨaoe!iC:#rԗc,g╱9A+tߺ.6>%&Y]ڧ@?zE$YhGۀZ;rx{?lsvI^*B'GZKKxҥU*ȅxɛk$Oi%w9oԔ?yfcIaR^;UhPA1ÖD^ xF5)šW;ϡhbV:EAyRQWL&]DqSTp=`+2k #&&g֑=-H f iD7p+82%jgxDgãǂzs9( 4ѳފФEwh$# TYw]32u`z E7Ѝ|n)U!FQ8VP3TYQI mxxΰI}Bl(56=|~%B@(UsQ=;)s̍_9ЏI5B[c=i%&{2Klh״oFOJI/#h#+쭨~5@jۢڊaw.VX@z=nv9a؞y F ƍKc7}mxvcÝ謕'g@{ +w:hR/ k 3{2o\CW;tͨA;w&mp@ץMܥߘ"6L`]PdHj:p0bnIVlgKk+f(X{:>"M@S@_[ݙN674΅A{p|c#, +}d'JLo."WA;*^Kn0xӌLiJY:\EeT<Y OU 4I~USў>+#>x(/P&L\2t==5Ț8c~)'\KӠɘRJd`Q++nYb*9u {Y7 |=HspmVp>r)@GNb+:s 8ՆQDFU&ЍaS(ERMWᐂ Hubu_Tض +IEm7ܾIjb۩97uENDZԬɯQf@s>m[>rӷmgsz7Џ܊kbYנ,j(jX}OykkRLF ({_92Ч?vwLWN37.py]G>o{1M}9Гrtg[̿zT<0ԏW?ucxh17{5rO|0o[sßsM դ *Wmt> cZE%ji`bVtՉUEloeݍ6zӔ y54l5<.+h}XmЎ#Fp-:Ŀ;) 1qP]VQѶmŗ4:3U!6̻P$׀\eF/ <=ť橣_R ;*'k5Kt15bCTиVÞJpNn9ceHۧ\F۵+YnsQa~ xG {82ƵMλ2s*0EJ/mW!mIz7{S,s-7k(4r-5GN-@ӎ =շӏKO\q_״0ҟXWzaMZVn);ȾK[z JC>,^Q:(03 6*4 bbb|=:jc#VydcTh7P ͕hͪS(ZijTڏz yI&$ @RD9Ohm~@cf| }Цl%BwELlUOHa}zОSGHFJz֪D8(rܐa\I+cyᱞa;d?Qp#7)dV|@=mu{:$i _sGOKgo#IݒJ>#ڗUkǫ@90p,3Ѭ|gf.8jc]>c|/h;n#ݑn_"gz]Xm!q0%љT=J[Μ5>l+tPkì.568y׊{YOV(d4q]UhD? 4JG%fԬz@STz+!7ܲѻīI[ϰN4nͳ^8"6(I+Hrx7ښBi |S?5rU [`3Hӊ c-8uxj! zi;dutߌН:)ٵx:6Y7/_\=wƲQ4oСyi+_P=`S#<+Ygjv)m 텶o.J҉bR+ +"9MF-J#!Ѱ;Ni!-ވ2"=tQAvyKd5$}dWIѕj(!sQDnZL +e1M(%$Dh73إ:׾g?67/p #kΗk{1Moݣ{,H3[{no7ya*&b]C*68ݜmyym76fG' +=ۉ<-<8U\S^g]1h6bq ,"9S 4xM3=ױei!R^Z![fck{ݡ6ʞb3 )]FZYe8Y ?A.$h#-Q0Z*lB\Wpzu4q42kroHn5.{`@s D?p6$iڥ0Gn$x@3d 3Wo/u]9(Fj` +by'%xc.?^3:zstv=huJYcwՋio{ɣisk +/z; vf{0y2|sMZw-ítFͣXԬiAhGcA]\c$/(}qGTp.Ł`m0*:zi3G 6e@JiRUQ?(d`2UGfn(KO|H +t&6pZ][szN]Sxi6kid=8cyyVSgTidݥ&ZOm,@ov y׾Wg>m*<ͽsg>~g~٨wW.L/p +M0ZC7ssV:;+=r, h24S;Rhݠfy޲8AhWy$?rNq\o7̖ٱ͈>.˦?*.~|5Z/OZzg([*]ZZnf^qB'{덢I4i}6XG1n_SZp] Y\]͐3FМHdR>lGDbaշƇA.PxUI9^Z(heC/ufjh3jaRNɲ]s8[;~x®|Ȓ`C W[I:Br/ +#=@KwRR Ulaq NJe?v;z7]opaoj]*y{_/j;8oF\Nic66z`oKF_Vj5J#b[( +hC;+bƑ9 +Wvj+VȽJz\Oi'=vj=Ei܇}5C{F@'$axeB;S +{ 9I&"@펞ްne_d?g/ +]C]S"8e Pؗ鳷`.sH HyPߌ>i<!ZM&V291dgU7`6ƟF!A{ 0DUJI4-Zhx@{ZyI1+lΨ^Oyd%qHuag6UIm f TG|~sU{0ԯ/;Ϯ<]݇/壧?a(P< rR'2L >/Ѱ HhU(gzђn54P/*LÔ"Fg $ + 98WHw*sP*%%jdC3$/B@{3&jmѤ3#_+ +]I[,gE{"ݮlƲ9t[ c*3e8YeV\M/EXf`Iٲ'J/1ìNejмځeλ,p9Ĩ7nz5iCq:@ÌV/l +<=IEQ*[M@l +O0ErEqZ0J w'ݽ sؗ]A7gYE" %w"m9wŁf֣&>@'L¥ЭooYx&BK"X֩~/_&$`dyH ᵯu^T-K V.=}tnй_7;+5Lmy`CަQU22 ԷAmɛBuMĒ]@ը9@7Hg {htlQiyUܰ}'39SWsq3Uݗ9VnƬ@K +u6wˢ8zYOAEDBW`õMv%}e8zmztx&Yn0kHmH--@heXqIϢqQڌʜ23r ׃ a_~(oOUyqMm|:j}W$:X}Ci`o{C{>Jp]bFaJcIV{Npb/-OP"붋;VǨ4rMܐHpkǃ~*4K{LzP;sNjE)"IFhD†Iaތph=MhO([WlE!YA=h mFrJu3o\HQKNGDsMlZBW Zp+;E6W/{Κ#Aue%M@jݔC#X97Ii),ڑ(z^}Hec78>'pH)aZx0Όp+߈B#I w"m&L {cd蕠kL6CI?˙ F:~pq9޹##2wQF5Lz4с?qmlӦc7gt psˌ(v{ K.AyߌoaG' Dgc<2%ON*a;& +f4hmOm@7$ۚ.*=y)&FxˣÕ?]][ +Ur\lyP*a[ZV&{@a49" ڞޮN4@v ./AY1զPtYҰ- +$à5 +jM3c%kw{-iuٜHos`F^h3Sv%%4MI5bRW߹Er$nfm \˃'w@ s(AnŇؾBiXTKIk<}& l#95{R},ؘh~7 W>qԥ(1)@af?/K@Yϩ$ʃSx-d hNK?T=Ϻ\Z<";^ߞxˏf!gnXȦ?y ޛ _|W0yYy٘T4ˮK+=.Y{kOc֛ @Ykr诟ʟ122M@"K{yay`Č +y-^+JoKi#\r=ë:hNgM; 56}vu-׼0sgnt)D۹&H.f$z:YFZLA4VܘzM]@ԘW D6M0A3[Qpf[H^Q:`DAr1fSNhfdOp@:-'mmp7NMXIڤ}3n%!O HW r4Ps2&%Ki;E\`TQ@??|WT {rn()14dAdEB%^!uT Voa!7ɵ`7 YNhp3pFȉFn:ĕ% + ZLM + hh0b颰xZ/POI 0߰G%wEkHkZ@CgM!hl{&_J{ +@\̵hQQ~WӋ5GFk! ix7GF9G}/l~-,N:bV9dYMtyMQfEEw@ӣYgL{b6$ bwμթs@RƝMI0jsI蝍T=&]VNđ&dbeuPVi'K30R 䆮I4Z./4'䙨<>c ٍO:h{ =2>ċ@?n_@[mZDE^@Ϥ:\.;31VHjͽ0B踶+lɼ)9:Qn}/_ ȟr-d<ڪx S#W=9_?Z{eycU* LUC+^-164+Gx͓$*V]h{H3l% gzGD*VKF@5E ]+D@O+M0͎ү&f θo|otN8m;O^]ÃEhe}҄YI\5;GI,qG|iuI4ĦMq֫#\ge4GtRكPձIk#=ڃZ (տTWxa푽Ǜ[1i(q09UyJ8ܶ7IkQA?Q'_`˸]CGj!mw50bh=6j +o}uEy`"hNA-X]cs403#id1ґZĒx@>uO'(WQ2ėIsȪ 0&j%@oH˓`-hr[dSe@Bĵ)ttoE͹UnLѿ+zA@xxJgcZMeJhXSK4-yx@+y^ Kh"wU?|- ٍ?-l+Tױ/0N7Y{w]ޗ }K_f<zUo *6R0nFKFm@,2rwɛ^4lzވkǵ" tuM{>~grO +.ǃ\3Bpm1/oak "xP 9W +[s<SL͵k=3ɟMG`qDWܨ wsQ>ҽ0R^h67xG!I@|ⓛNդkb:L +ua]fQKh<粬뺞MhKkc^<0x6V8xQ˳'΍E@#WeEM/橖r.k k(FZJ3PʤؠH72)UG2v.=|8`&gU#Y zE,9x*Zz2jCkSLJ\=Lh@|#Qˢ(EI]#̇iHZh:Wܮ^BѢ:"+ +婒^p᰿KWjs b& +@ 1rM%P~UCn#N R+A] OS-Uti{j,F*ҹҨ:yFܮޢ]vMRoʟ'A;6?hʓҦ-)3 Il0HiG" T\G74–T>o|u %:_,ɑ]>NflIĶTK^1mW˕$gpQl WT0uZrIw2ݍ,cFMU ګAWQ莕6c)X{"Y5,@;0 +τ퇹u觮-52VCTr'j2vW3_Ůn3GiD*Ȑi$QGCcip,2rֈ"θޞbu! \e{No7ߋUPB(FYwnTt=N(g}%lcUPz cIl='yњsWiJ@<0M4VtZ-c 8*7={튒"o7&<4sE/CdSpE:x9oXM|HckG.V$Lۀՠ u}[t@$n47 VsTKVЋ2F\0F3$:J 'hXr*=rztMFL\*{PԒHRBy)DIʈ0\o{Y>~=Q?CšQ3wYyc[ &6ٸˊFԘvjvKW<<}\sWE"5mGq:eۃY,}~wp n 4)Q` 5m4:YeǀD2Fh(ч?g7ݺ,0'8ブh 1 Z`r[Qn)D^f3Yִڨ{^5hآY¾MZ&&ngT<ΠzS:}0k1 +GsQڹܤZOh9[! y_ ٞؓWxqŭd-UW5LfDR*[uOhT\@N &g@;%t$W/?G*s(]t"k .ҋ! rY0EǨ&p+&F-1W:uFit+9eaQ끨0kvi<=&7p4<6E@#&IAվ3 {cJ+gc+ +֩C)ĦC>|VY 6m# @uW3@ׂx lF h*A{Nprə!62QjeSA._Q.z1w,\"M2صc蕎8 \]@`U/=[5Mh2K@Ú<_)ϞڌM:%')Y7(7rР? @C ԫ(&2'3X-G5tBDs~O욑%!RHޞF lI)C$- $&w@kPнٗ}M647&=jrh i;M󬂪w:Vf̏Q:W;Pc0^%?yTX+&{U З=i@ЩN8vw髷ҹpW+|isv5,Jo߼)el +gy<b*s;/Y{ޜw`:{ Z] õhIv{vLˇěR +J:nhSֈ\>(Hum8ǣ-=E{֞[X)Cthh5åAh/}@Y3L%C%ez^p {On'iAZmRC-ǃ,Ʋz+@RD6{\}쥥?H~<)$؜zYF UfBa*)Мq-G{^6V ]֡6i InC4lwdy2n=,UTL0*oT; Ҡ +Y4SVJ4shU6g1+gQDIC*Je3 zd~$wX|VۧuWxV>kÊu,@ NޏC)wέ A!@ۦc9Д:qN\35֊~d1ϳ[IK#wcD)39W; Hk )ֆyCՃY8ݐyT4PaOڕa3Ȇn#h Je-u0evSͼ|NW0qJ^}4ɬd6.BLł92ZPDs~G{.Ϛ/< 0bdv>tstEz1jkaZ$ sN1y6RH{K=}йo瓷I{g/"|z8~k^TI{-SFOD;h-_}ߓn>F~T&w +hFeYH(=)1~D i=ЁܹU5{չA`n_}⺊]xn(}S~J)VYH.-Ħ d UڢJi+W:{:h4<Q%lAU,"_w)㣧?񥳷ƚMq'~_*}\]n*!L gm qU&w$K%ZiVAJE(zgqx4}Br7E]qfo)]}׽GO??&[ u#sV5sG3!U5sWWݕ#5qF"z_55l1>!0왴7C|CvN4ݐ%\MR" t\nZ^h=:,<&uSSS H`HDZKA=ܱ-6S {vl"ʟZM62 7dmivRBcW:cU.EMw*\,Q4vGyfo4S0m毋,ŕS//̄m>!=*v=b@W^ǹml@qg$HkGt+ho$+ !!j⎑yN F4sӵJߏHx_=hӤ϶<|THA=c퍎>`ݎ'Jn ||#7AL2>@7Ikx%0Q@W,R28txXx{xWcRU ]+M T~|3S]hq65[եO +PzUu7L8flv2b fg#_Y[ _iԐ0)Ɣ")rt;$`G>OlU-r BِpPSN%gQK0$G4OX$)txA0ʥ&5F>pzܼ/:4ay! `´]D'R^ ζ$~>Z[,! +mdoY-^1) l\ N9M$=̬]ᕂ4aXڵuEL6hoD;YȮuD^&XΝq2(quZMq.,#< otWHigrxVz&ɌxdLDsgnOMY|C+#ؘ+&@Tk7<0,p`$80mư|ٗXd9mxQ_2*^ XP_g.zYz˛mAt&,fZv&Ebş6J+w:6+dž̚+kϣOKwײWt`?h@4YC9&i١9 ~aVT;,<TNR)5}n֯=1*i^"$o̭*c> 9٣5|Om5AvLغ+J U}?WL+@7pRh!lo$IWlrj-DžM 4;^8aj|t>746YwKC(XmG%t6P_aQ=@C?sEڡ3)FV>xȞm{=5n/Ta|_f¨y8 ԰ISˡ{"x8籹):ClՌ`$Gx> S#@5"d֣ڣ95_J`h7 1z:XhD;v+PP[J" 杴ҥRn]ǻ!g|!z4JGWk裹ItvagQ(ch`\ Cq}ަvTIFA^c أڨJ.]MJ]=Ү<=g3Z}Հc +ϒ)JzbM}^#QzZS\&`=Ğt{-oKL:B \4= Oړsf󒤙*_A;j]䘁LC[BgBZuЗ}?8Ȭ=*5/5 E'Ȗ=8|{P_: 9(͸[Fu.StkDIIꐁϔw aRM⿡:YԬCˢ=ɰ)6MvohmKT]~e +txD+5C?@DkW+vw7ބϹؤPNjAvTMU +yu'RvMP9`=P5q[rT@?YqC׿cL5&iX`)vKIe. DcUY$3}ZWhwD tx{o| WXYP6:fЉ:&JzT軎wŧsßsîRy 7p/*܌v;@wԢr92x]h/Y#Alǩ}cfPG#k0y[}Y}0^|O9ijE& +rJkBD6Qǖ]EDE{vv3$wl+dA'EnS aቬEϑCCy@`HrYWv f0qx=1AtIWFDV/JԻ],H% +SƕWe.a:#rMj4 Jj6PI] YwQOS@"xhq ? Qp_z쉮| +AZmJBc1հc-9^{U;ٻ)pǐ66&8 +{RrxImcncͬLCUwX+y>z:gc FFcM##a t'//rO)WGh[a+f=l/d06*W[3n~g0Z2_š=M +#'4 >j6msϮv_Zn% }={7MU;\h*>+?#箊孴C,\h~x<OrvUAM/l3_Wܽ;>z̕tv3`QBK[5RRe>g,udʐӼ@`*":OtMۍynw" oya/o??Teϝmw$l-غN!t)mKB~Kht 2Z VRk0YU5|b)HZ_0;kA~ւH\k2. bnJ_X$egq=aZ"=5Z@k 5ݙ-!/ZEZ#lxL #v,Vs 0%;sp wt50%6@Y4otx;-NӉt6p[ϒИNDG%-emҺFI)O&8٦f\TTMNٌ*s']SEo"%0{y`#thbWSaCWP,qYvoMq鍣l".KwuY7:Ge"7sImc4ôaֱDjs+@G++Y{q4OAJKkgq/ *M4EJfk&jPf\`ro7| 4tWR@Woή=`\`tGYklđ^,:͠Nm4N(} c 7' L=n:bFGtI.>R6dk n^q'[E\KޛۥPg5>!;[v!=t EGL6>xN${=xK D&z@ HHwXLl3U !mxhCd7+{&,eJ&gAS;:k]~g|ZLlq:MᩤD8hN#O#䟲)G +bQ2ft X^g)XLSgZ%`Fk?񥳷pE!۳_;>>>MM[t~5?}Ç>{Um3X zHp~C!4 _hە.؇q#(#("dhq +kgO<cۭ9 &xKtۖ0@C +]>؉\G@u4W61kO1uC 1nO%FU&D$] k": s瞜VKuh'I*!"КSZ.hS FJavA,ł_Eg7ІAjr]~Қ} ?|*Μ/:G Κrpzysd)??C)_PiɋJ3ȡ#\Xmkc7$+s~{z +ZBZ~J>8?roU]޾dEu~&)1E2gpHgf[d5d.P09H(m^h8[/3 uhdتgimk|ruI(.=(CoYgb`p=jLtim`:83LD,x=n6 HE"s穥]:Y~Ft:H9wY,`ؙ"p*m.m/<;r1^Q=W/YǪtbpgZ<{ +e.Gπgǣ1alLg lw;,@ lZW> -8L꧔X>+x7^X{s=C1$wȭ]Rg̢nH|'Kᰳ>_ޡQعd%%,9w.GgO֗La + #qv`dQmnTf#Rj\iWj$ŭJ"DM)7EC4xjTK/1kݾKwi4[=ɥ.)@g-Y%hfJFh,XT \v?<5T@V8~-HtKvOKwSmO1lf?h=@:GsY1W +G^|"L3.m +@(}3~Sev+β$v[τ<15W=C!2wF@&˺@oF>_Nh7n$QlΉ",˺.9qw2tțt#/&>2@ۻޝUI?Gwt} Eh7-^E;Wwfw+v퇒H/`Kt c=GT5L@oA f-"FMLa544e-ʇ(3@SУyED˟yB\GFP}]@}N6='5nFP{_`O`F;P@Y}]} cq}*p z:O^b.ΤqxBs&k*:vٯ, ZjgNZbqWjУb!zS8"jEдk[gu4_I)'ǛY-* #qx2ݕ]kXxV%).9#Ă+Nv65S3C"]6@BZ2a.}6 )E:cNh.'*hW2Sҷȶyی;ʳ/1xYf`\mT5E-'Πes8ux\k}~ݵ=r/^^]躇6賝:Qӡ2<\DtYl$=i:qr&LҠlo@cdq'ڤǐPC)@2Ȳ6:PlX)Vŝ%mK^qcW=> yb%&A2kПOVo+ +q +W6T)Ƽٲie{'Ʈ;֮ɪ isXwnzs{_g#iH1??Ne<7nߍ8$o mḓKQؠ`^ӜT8]Ĺjv}GJgvCj袻+3J\ hգgj).f/:*3 E4C^.`W9pޓGwTt?-fT"TG'qtQUuBz3jCۍ}}w"{6f _*7O9YYG;@F춲[O5H:wmy[]dpo8 ޛIv]̬Zz(blhjdZv1Ȧjl96ǒÔBc,jx/hY +e +82H h47tWUf{w:yߒ/ZY/ߖw~;U{r0 v +hSTҮ5_Qڴ-WCraqӭ'-چ\rVC +]qK>AJʢx޸.I)Sqߴ9X_m {Y +ii< p{-".]<칙Fv6Rf$~(k7gvӶ1Cud:~Ѕ%g|Ql HwA 0M91b `>6 +54Li3ZD;ԎJ3 l@[wgG~{ Ɗ쪆1xq|39Z18Q0ӫ%Ylv +:Z|';{玆:0~(eYJ,}WFeiFkmWMLy!-M5P h0"].nK&VO;D0cJ0XD=Q.dpnytˎ{qQ]î<4Z{47T1_8Aá kwgrcJ@W<6V?,.\xS~Of/\qAeo ǻNNp.;F\V56Oen=k"4No,S_ԉc|%mQؕhCFtGz0&8 WC=IԦӅh8XphLdVGjHnH RϪ%rsGLOy.Y?zEβ.ƨĂ dX @D* +Yiȋ$cnҰ]8W渇c珵G^Fדm7×h|8chݨQ6uػ{-#h豐5}m=X߯b=^pT\ wf`fӺ耑`[$.']stQHP(Z@lJ˶+ۗ`w +%3Pi +{/zTթG m"Ai ^z9]Ger袣glZ&;(L]fQM7$4ep|vMG@65b +/EVզD@1uzOkZȪD®/{ȁҦ;ɬӾUE cj]yEOvLFme£QEۣCIZc!a焒j_G4&b#.;5աq@i:~푿ٽ +b:]/٧dN>ŇhF9򥿿T\cgwj?z8Pz;d;v/œWhaΐS@ը}zi:OR`=e+ ]c,v: ׏ +8R@kgOXdYwFS +@xty=]: z>>TV>fN:Ds;Zj4_F{Wh|yxqxd3=N,[,N*~5NHno@Lu&) ;N>Wi|%I)NoJ%n" evnS.7cg5ȟlThF,jz "9huDeWlы2P^L Y˴#@o&\dKwi*w\bӈfN IvOpiCh(UNwn-\f*cx%ڃH$BE9u=ta +Jp߷ @nS` pmfm 4 +Ro{vD-'Q>0_V")!W1k9bᄷj94)G8k#lͲ˯ycc3]koc_mz~zp?-:Dfe^;5@_~:]J 8Q4,fH#.> +AQS+f[14R ˓3CO'scv ;Z#ִfDb{L#0 +Ctu "qvq"Z}eXzБt(!˯J=)<Ǣ]k{yPFz0j +@)95I`CqM!SOQpC4_ UZy}ꢈA, w r +4@n7K#ewl\Gt>!5p4'Q,alk^{T:0]@ory|tbD|,2?7uucͨ &:6]i +Z݁\$ZYbfg_L9œ>Aa/e;]7fxh钱Km< % +u‹Y'X!E֚G )^BcǮ @#f8H0ϯEFğ,mn㚁i%v+f?C1H鴫3 &>.p@et׉MP>DRMyƃxgz]<ة36+2Gs i^H=iBû#0}3=] +*֏`Gc\M㿺ﯼ;{/ɧ~ _|9\4ı/~x_>dHGt[a.RW~{?t}m/}KYȁa:Ҥ: d{-L}+{sK[9 DۨGOH咕ʧztq ^Z:1 i/hdrov;İrYGЩ< w.]c߽hf}Q!!=xf9*#G:߲~ܔhQ; isbv62G r5sȏ=jFzNo,WH)!.+*!{0e5E(< O pcl_FB M 2C)a7K!>)S+/ջ{__G(|mwѵ(~衿No4lHV+xϝZMD?b9DַXk3߿ [Tz_E|# J @ڽ~90ASN9x/yI2>1n$pm)QLQ tk%woҮ E;U6f7ˌ:-xΕfmFu`aF/ +Wpp +41/2&֥v،zb1}0$|:Wصt% ź\#D$5/z~"5bp}ftGʎ֨v bkA @.LڝWǝSxW|Xܙz"6҅[y1v +h\E$x@X{w+NDX +W8P7;ik^^E#j;`)aWdFuúMY0<{xO 'e+I}=1:NIJ=Uzm22JZ|~hZsP1BoQ̓:o$ a )(Z Ai"BFݞ|OtZF{[~3'>Hͅ + m +[ikF4õc{4M*Pܙ$ +'3Zl$4M

GO}߮nnF I{c폜:G|?7{5))yÈ(/}s/<89$hx jgj6R_vCk?'Om񆮙'b!DũQz蝠Q|=\k&}O?/r. }ı*}Mã`>X, +V`,q !fO5uCH\Y+&!Ak沚דscζdP9Sm&l +q@,e&@\j PKzLLS2&Fr]p.ǹ*׼*>oKw(OFc0xFO!ڈ.^)uw׎ USI{~Prw\MdzKԑ.&d=8P s\8tSߢ=_Fhs" 2%ț*(+Zn>}StɄGMdE bH-e hh6\6C&&J. 6jHЬ4<7hf(mWR,4jZܵ}Eyo tƶ]@ *DjspLJq1o7zl`VYV;]ڹR8}+åҤ:]geW8 t_X%Ȥe E:r\ЏJ$/M^rtkgMB3}6:}bѣ`x`x<GpH$ 57J+qs_\1KКpE Ȩ9ZqPgnk>m-AZӤ1 N}N [ln{cL9=vl=^8٧hT Ȼdq;`4`la *Vh^t0Pi{ZrheqY +tzF2='7nYG07k#݆†zkG.+]g"CH:P.{5%]rx +W璣b&I:_S62/ 2=*223Ӳ2N [gEqkp# S.,Uk=8qqf<ڻ32Jv@I43tGr}gߑ2M:{Xve7c^{/϶$g,ؐcA3`z4f,DS/Хԓ*yĹKSu-$x2,/.T06h淴D(0 &?#sd nHNsӃ)ac3eZf ^].FH ꍍ.L^niMZ"f1weMѓ=lo$ Wb$UjGh]ar m7HtcJ#|76 TLJv +C@w}a;L5٦Ѹ7WPgg&|ެd F6L(Ď/tЌ: # c4h]oB!5W@sv4!AkYwF{)@k3Lѳlzl^;#]g?(9?wgN׻`iZL9V&T͠'Yv4E2 +=VF={I>37lD"3̳1F}Xv߂! G +Q\ZwMڟYh&W Fh +MEvH(k.Ws尙@oYst ]AZ$,f^b,WsHw_DSv*chfmj@y~Vsԡ^c|p4X˯̖khܰ2VS.[8WF8>vuC7hB~V<>o6.^xsR6}в @oFsq{Zv%σ*ho;fЗ_4ydO>ќA =6}WB 37k˒m`"f2ܑy@ڣ.$>hZKZ10! v3˳oN{,u cw?|/>xlr-N8idxG8FBh(M߷wf3_ö>ϛW͂V]C y?@4M;|3Ϻ w_D&W ^V^p>y02KEF$rb!ҸX w5@ +[Ih{u5*VGT )n`{9f;stfJְ5s`o1)6r)b5 +JF+7t{P@덾<~*zMt P`JY?; lCӘ(aDcũZcw]ۊ ~^XzKx?)/8u:~kag!˜"YNj7)A+xJ I @RM"<9Tg :_& +eA%uK}i窷[NY#읻W>7L@LA*ju}U@| 2:u/qӓzד5w$DYI T8{q5&GaHDM$˼X/_!(Z-cg{.u5 ڢN] +ffs$Mv~.9 {;oQI0V@o&?#^3KagX,sRQ?/uc'@W^]@7t2ZK#lm˟?ފ 6.ɼ؏fJ{(|Ql$Ж^aW&:,&=UnkL\#]:Id챑wd͈>D߄-=q%+z-HpD@8*w:÷n x!+ jz,d +7ğz A{C\ ghB~qn\{-YуsdmN{.D$'pǰefSt_.mzRVն0=mRmšvM-3>3Ϗ4LN]jT젣. 2@;Sג7NA{5Yx5ych'Yfz,0_K`]<,XhzeM^mʌ59VDҥM ˩^Mjt ɃZFq(TcSzIE6smRoZzKE0WW#6:Qڌ讯1)m=s̊aN@ۻ3FR72fD#`x~XNR>Κb2 j`-Al*Iz}C-hB -0n,e #mS]硠 8m @/[Z =ւT<1کp_=#w{IG.Ja.9>x߲zj}}}0y~…0SR?abәŴx]\\/uwgpHoY*Z]u-sg67^Grd i,f]g44>;^A{Ue +=? +{TynS |ڎіs*.ܙ36kzmɜ-.5Qhb~q.X~n=lm?rG@|_~;Ay[xˎdR*vj41 Rt?zUԩlڬ4``@_ɜ~o{vc2 WqkP;d-eMtjhކ쫡cT)?.Phi~8Qq-Z"P Q-p':mǣ.VW}_?ϗ}T`m) K+&i/ry#,َ`htJ>G6|>9ϒ$:MޒPj}薓HuGwf_,im6؃b1/QGY[b6}?֍:q_{/&^NWv6ykO `۲O@,cgSJ3i3mpXհ?p' ^7/Yv4ʙo*_ExKդ}vpK2yD.7t!6>5e^GfQV"墤~k.A#?,2(΀41]ZˆmLZ.#+6A3׳JT#Ⱥ@M`ӻ(%' NՏEFU-x +ݜsoτ =-д0pKI[^oJ7eb/9M^يK e)Wv7e6;-{T ",<’H,(cnK[3\T2%v\G VG0Ҝ1۫BھBܬ{% K}-?#6GV 2X@ +11Nv(ݯmS>>#~&xg:^ȑ'?S ,A1m:v&҅sSuSfھh!\tZx-5tt{M5WOKmg@c|ؗ} L,{>>_~/VX Sve^qM@y̕IVWJu})2S<{Cc吮w @3 4~,x9|=`3v$Ï6 BKͣ@?%֖(T1AI} <6 FZ(@پ @׸6'J sr9&|eR6w7|"X/pCd Tcw!t9 +1!461*le[^{{MIPR48cY].Ǣ] oh`TM9">!h+E{:~s 6/$$>j:TW^:o g|VO--, &j"C4_PL >m%aGv4/̑O5%]!)Ǹ+|''˜+_|G͸G&<mKMG"oJT~=.mk_{CkVڭb{㾐=4\ϭFЛw/]xO}[V-@ +f4D䠽-];R6P'Ա* \5\"5[I~{xt\ 7>ܞ^7kUG޲gjM,a7=8o7ـި&.Ɋ t\rhXC8y~Yb@Gǥ8L +Q匲6 U^&̎]֣/vӲX @thHZy L'  腬vbCw"UDZd;Rz?=(SMooޛx"9aNJ6ڎ 6(zV:rs!692[`Pm]FqO2S?;1OLHo:;sӉ3zﭐfKgBCVGjqVrͫT.@?AE6KZW@׬ChDOy3YƢ$iFѬ5|9v)2 W]ZPZ]>`7\^OV pE|FY.L +1,--C:W2n]0mj{e0MQBWꖼ_(?]D(oH$>?>=Aʥ)4.M#l֖7=?b$M)V+ BE]>snsә}v5sHY$O-|k8F#LjjO4 WXޡyp){cdt/ lǞohy^uY?h)6^1-qc+j,q<Ø4 lhٲ5\l6'Oܽʄb&dCh 'h@_erƷC0n$L*~ZL-I}U@yF翕x h=f$@P:cwSDQ,mꖨ#p;Ci.+M4.*R[f;X{~Ǵ@Ƈ\x"j 9rT 8 `iM9S_|-XJ紮o-:e*<TPҹ%/t5jz35,[ +4$-9~6:a7͓*NQ^υ._ {8 +W!"1 [78%GgtԺDZh_ E~4P)y}W4#%:+Ջ%"EowudO\@meOGe!B^qIY#NCj_\'#*|Syz72mycB !;Kh ŵHGk~sg2k> :OpUkTՊx]&Fܰ u拣q:zh2n6 .z<yy2 * f><+vAɁ2Pםz:uؤӮ\s9ǢO ۼ|}pc7M;ؔ+q߾p"ʄG{,m^Ϛ.jBK{/pŌU.@4J%fˌTctHԻ3С]MAGt~i0=z>I6ڔS7 We8,겋 ½")?.X`٥eAF3}] ^ʄ:5Ň qÞ}̀~:E1#xCG*3/ b}^f2#| (HaF_xx3k-Q'F244€rF p%D,/ˎf͸)XF\08djЬ}9ʟly[i}_X"v:=QЅ8l +m1cfKٓV-^͜~7XQu r`QT|V4|G +v&q&iX^_7sT`w'Ob.EqT Dz1=<$mQR0)(T5'BM_ @wl4٫ud]B0@Ӽ )c}(W#5d-` +k[.z+ !h/b/λpR9mL 4rtR=V ƧqV +4:B V1mT;G´A>_3E`q( `V2G|}p1o\"#kGL0O9]jtM$h| &ۣ2Zb4#dOafͲFuUnn#йمSe ˮЌ8ͪP6\^g@r3WOUVSIWG4*Ojig67\YI3e2Eذzypx3Yԅ.l <ް6#_v{Bw,ȗbˆ [ETOW1[x\әkf>U]fQ +0ߙ=F花AzN)KG; Ou"m9iT{jI.ݘ,ߍCѽl83(H4 ԥFllxX5O +RgU=ע@#R +~iCl$ q>Z-OyL{p(R95.#_oͨg4>M5e>zKKr"bT6ݧݧ`V,NNΛ@MkiAN(TZښ!AVDX}%KʄOc>5;4 +F+2~vL4[2Qyψ꾔hf3By3TߒWR 1طQ3 +!`UBAVRa,n=4!t$yVBWhB+\,muO$5,uRc%im_ a tkQu#={14u]tv8D8xsRk<)poql +zG`).r|A$sR!=>1 o3RT\c9%XU.:Ea=ۢf߯$ρ>R4`,`)zg{x=La.eA- ܹX{5.N}B-@7;:_U!L?ʢ:1@7GThMӃL9ֲ(K=vhbm#p'P @s޴% Ӻ +d<ш󊐼oC^w\kRKkE~oUfM`E'͉VusBfx#JЭ$O۩ߠƤ +GIATpF8jFp +Y6t=8rhǢ c/Nr:!c\I'd~21{/HZu\]y2Lو6=+cbM'(`m M2\/<,BCV42Îu(<e::k .V̦ЃMJ: iE0@A$?JGX-hN5pcC8qV t\pyltҟ@_}}oCr|I@Ь%_k3"uWhA u{ԇU +M֨B[䚇5wWӅ%b@a C/D +oHì3\qgʌtP@o96N0?Z{o+ +8,(@WdU>ؙE@VI{WʂzL)I*M+`YOÓGӋ iC^.@\FO݄K@>k OLM!v25m:? +2]4/3 !v`=)ܨ9OB'~(￁8?X+ׁ_?I4 9}R[~_Œ 4j[AL/)LX(ณc7`e%+s7k$[#)Ds-H9cӝga[cQf( j SJƑ9*ÂAZ]3hmL%f@?5JU kwFp@uX4N̥kf霩DfXW'fʊD z%\p + +hTŀN487i{iŬYĽ +:lt/vxX<<|Kl[e]1# +~\wq*GZ](X6BbѸskg&h,_-jQ-?VsI @x.:5H`-?y +@"BK{ ׆uqA2\r,8޲ΓzJ23 J;:wEhy{Yj {jfLr7rGTgQ<5=D\!;eW-HGdm@F=J白= F@7D|{xd'rgThSpN҄bo1뛌\l 32&W˞6k\3P( ci{8(RP#0BY[-%ȝʆH;S2JEA=kha됾zKeWZ@i\>E6! kO''\ʗSb7N ˄~Zb=J);b):V|5^ڀ*l Š<ѼAG)ƒsHfj?gzMbU^>5 7Lk(nj@l{ +R6O1]r3X5tM@hK;Tc~S/LŹĪë1QZ0X也lHm]ڌ]ɶOt2WV갧gS^8٧8FgXYT08~͔9ZW YjԄu6=it^ہ߅zEEťTtoҴ܁S!wmQ!Jfgl~j!̉%9a:&| lo#HϠvWq. kTswzYHͬׯb#@w)=]¯$/GThzW"- ȑ;0i帇ˆ{.+YBem'P0Qڎ0YpVkjۈvB4afVR,кY0U`5hf Rxur )oBF]HGÒ;' `jm/UJrEU褭 +7yкa#PP,z`_}7#׆mbgťcŐ.AtO}Q WvY7M֝ЮqD]s_xۉ,kXCޞ7\Պ*c2G|O'=o{᷌ZѕGu7@heAQ`@Bfe]Pbifez.o.I`tgRdZ(BN9҅<4\8'pG{hna e1,x V8TU +M@tr\he4ׁןo)88R' }~ʈϊ ^bYT8G.S3&bRR{>y=2Dg՜ $2N^Ǣp:[\Wyjt+6 +([DI n+Cn*Lo/ +6VXX7d`2 _ʱИA*Ʌ@=䫓e=eRr|z*Vۺ`g eVom\]tҹpl@%hEr4xY_!P4sW>vu43@O0>wƞ/4~E @6v- b9&Ŀ[`:4cŁk0.y4+%KBkf;a \;S'xЬ 7MI<'|:h$yJ=ƎC?b,l+)ĽB󖝷rFpfYw#xG3:Bqu]jB.8u5M +Z'`}m|W72F|?vXh{~ָɘmo_"pܺ w.gpWؗ31Ae5V4ކTzG;F=ѾNql$uQQH vWQ(o/Ad\袩8cL295=E}xG[-7STˁD d6!D= +7jGZ"'6>rGO}:~<%'JD:򘠽|e.IKI)ɝBB]C#rX'.t#,\xc<ڽ|P'vRplF;9/3) ܓyz ]vG:Nmd] ~Ӈ'>w ?>`tW.KXNQ@cjSLʮ$h鹯5㵗Qש|3WR%dj;4߀T1^z?sHaﵴ͊gf(6?x#I%?ـ>gM3ì,j:{@5!طk71g{H(1%0JbGi^ct'SQo=4k/orctt2?]Ze㱼 +!y|(2&z)tdFr(Jz@(Y.o{TQSzHLvFwRG+n] éTDzG' ti/1 &rvmU@YeK@$:lC7M 5s!Y4bjmW躧qeuj9Y=;<>R(%Z)M]G6.s؃4ݯ~TIfϵEknע]t,xC`GpdD4M6L$ݛXJVUN^T mE(+s9:{>ʙ˜3߂T&/ !iL#OtK2Oy4pӲ])Z&z@j5O>{c^zK bG=sAԍ9Q`PY?}3 Oij.9a+ӚFtPsA˞)|??t;iqbXGl A#h&ܭfq%k9W)A1 ?Y903.ܖxHQi;n$BS$Ԕ Բ"/|JN544.N_s5~mt/ϲgO]^Qh^ikF)eӻEqUڝsѫav On?vߏP +=Eeƒ p2mf q  NYpsGM0:,oo٨ +{}kϾmSR^iW5/Y7cK};6cF 95q.c C@ +zK4[F`҅Tj[҄ԣvԷM1: M(6E{(Toml*W*k^WD˰euA8o`d]ֹ`ij+Dy #ˮv oCߍI*|^%C 98W78qG:J@״>)&ȴoLja7. (ͨ@r1ѵ9Io-,R6 &JogYYN-qj@Sɮt#WB~֐QQJ󬋔춮 k7@W*|&k +2e$|qđێWW|U*r 86a<Ί:Bm/glcЉB6">hv7s`AdClsMt F]bzIS :lih Anp?s̟z|o?58nF@S= uWv0ZvQ@Q@I},4w]~]?Xq5DDRyou3pccZbBnx&wQS +Fh¹(Vݩ786qX't^RmFMbu],g&֨3tk5㎽/Eu ven8SSnfo3q5҅vWqӽ… 6(Iù+%NvP[Q^9m5D!fNvgk˛.8%TKrۮx(\{s7"1p0v]Me~2x L +u<.ŒgQh֞F;;B꣹tvxdDޤ.p:s)}oyq +xhO fs> ܜ9+ ^в" }ĘSS/ŋݑr@ʆ5aS +v-+I 49:TP)r ݧݧ`b:L9=3D*!'F4Ns8h,(@Ƚ?v=+dM6! Y1q\l:QhYM^\:EB9h;(&M 1J/+vku`7EO2,05Co\HZ8ծ'ufW퉰/"Ci*hܙdYF Lđ;Cz: Zͪ4("F4ٱZN g4:vޑssL(Ah~P|h}i uhUKVZ"l_ "WEKȁ=5h;Bv+0}$T( +QGW$g`wOk맱V}h{,E2ﱨsWZUб|{[>6qv5+3_9Z];.b7Pz9}dbݺ 2 ۅ+CWeJ/ dF;˳/-04ȍ X.c<Ե'guҸ޽<6֟ פbIr1p(rB̘ߖ^>| e 'пǦi+rLcIXP3_.ߔ!A풯55㾓}D_yxϝt=PPԯSהg=hy{7&x7(a_ܹvϏ2?Fk#Y2ۍ-Sye[%$δs5LcnNnp,prBOkg;eoAA>5ECcŎ,V~:a&?O'%=2lH9{u09z{x<ҥDu^*JD8Cf+#̬ ÕQ[C%w4ŦX$\Sn'Ц[tN|MX,;QvF7Uh#nI»,x@\xw@ mSW4P|2 4ы F.XXzm돵Eu** +Z2ZVfFvZmHkj[fǹpKQMm[tۖe~@$͆0*z ~##()yv@@o Qk~Y绚B&TT\8jJ"Q% i5{TI Y_&bǤA`(&5Y97СAa_qf_c}|;i1õfF7Mzct)pQ++Y im'9,oS1F#/xA:|nˤ5tNA l(ؓlzSY|Dr@ëٟ}?+Gڡ*OB`eOul)IGj®hLGϔY sK?ޟ>7׿M}u,PP@HU-t#( `}}߬B_Wmn6Z^!%֚h=iPdL68?wK 0Bb:ߠr{+/OG^r}F >+wO~ |gΖHr)viU͵ #AtLcIrz>!E0Ay}#˳u0#{yN6:Œ285ZѰjx@Nu׸(e"c@h =}/1-Մo'xvm54% g*)+6:Oٙhh1P,;fHz^G%i4vYeѩ /HL3Z;SH Um|wRפ: m ld^h6OFA;РyԉJ:S'5X}"n}iȶ]I*UɳB;( WF:"/jS~j\X0@5aD 7n\O,tn".mBmO\kp =h=}8ƃ)y^4^p^<zQfzn&F\~w󂫾 6ҖL}:_ՆLdDN@}4/UҚV#zʵ^S +]%]]hgX /%oW|]f_qzg + I#miցv]h;tS;<ΨNaJҀ tGetQE$c:DDiGq +!YNYZ_dNwcf@7Y__|9ҋxPcEYɏkm/:@:66٨C%|P{z(BI?'5m G076(n/[ [K d8>>=W>w ?>OYYAr>#8 h?g~/-лc@(NYw~7ɑɝs&]i?gRL7h9tCP=#>)c(P*lΙ\Y#>"1z]۸TixMmg+7@`,MQZ]ڸ:c.vA7$g3/*]#Q K~i;5*^rW0Ϊ;?v5Yj?\l^ƛW54s+6ʹL`qݰ@m_ࡣ4# "PPu%[_Z 7k{1s=z5oaA~+Y@۳ [nZ=8m=o ^tQU=~lSyN^8:cqD$Ev> P:KYYTkbu jԻq|aH9&q6޻Kgb'3yOz`y f!+[BV8$#.#kW+!XɏER`yWpe!AH]5 3JY7̝3C?Vխ9篿z314Uy3O>*gzH*71)UD=:H,,S?1"IXkU  2^DM:.K'-Ό;v(cY'V&kUd# bef?rx{Rn(^\;P`<spgA7Wc# Oe07YoP } m|>MQœ3ZQq7cPɍ*D*epshӶϥR@!IwT';%Ҳ5fD"H< i$W k+>ZR֤" HqNzO龥1Om!VW]s1YjyZןcA#ơ뎥7,#+Kty<58r9Yx"PwHЋ} TefJ#|a-@?ZּS: n];ߴ|GqzFf.#2|H0,x]~9#&W ȵswaHI]#mZ3  #Its#{Iu( 닣/W+$4"U5.Bˁܑċ6D'%.M]dŲ39χctY_Oou Wk҈M1)yuvLRjV$K~ta uDX*Dh=-|ZM">s IdUH4Jgg]mHH:4;vsP!Q՗ӗ)b8 I,U(Oe?K~rȩD]L) J$-Ɓ\oٸO=|G118+KHG̙l׍xήwsvfʗb(5+y:]qIf Ex0t"5t vҜ˨ĆCFmDWKaX7CKϧ^`G ͼ}+$*'f씅8@HZE~K:&@Z8ueG(The af8qR h_U0qĹMGjm ZoKI?\c+-ym-"/: ٳU+/c".LI<k .1 i'j#KTvnib췹آ|dpG/[_mG 5b;~O/^M1KT}@wӁpU lM 'GkXcUy2xԭ)3mip(!P o9[MG8Wh(B4q&mf-Iyhʓá64PlU*8 }*[(U;8 +3p,?}!~@sIdj%;jU GңUc-D{@җ6h|I*"\vHW@krjVz ^Ayy6 ?z(Agi<$-%#V@\Ԉ#7og8voF*U'ce% +΄_]Jp,0@Џ^y|{Xr 'J:,ɴs<_uFoZ +-c~Z??~o +O}TzE~+(-06,̺fUp *s+EbH + 7%j9E^@ist ~]wԲ(.j=إ(dUqG6vv"6fth p(́jTEQ>XlJp=i>68&T?wkh~F AHei"͕YqŲfLAû0rV، ǓpȊp~'fxkI}u7ޤ>@R.0G;Ej~u'Tj(M3y]^CY#Dg"=4(U 4j8Uw5-KM%U%jGr*jaƵd ׊uͻ5 ǀ#͓sP&,J,om=m6Hc;,$k(i#@m {(t)ğ@{H#@ɌF8072G +|aȷ 4obTkhL<ob^ @W|omdz%uMe#k8_Z5#2[~}HS$)uze''~"'qp)Wj@ +]GsÃf=*,_ѥZ5wGMO&6V + DRh#U3/$+Xǃhٔ3g^7.Wa 'ФzTOʇWZ҇S&ehiE/4H!HoOXعf蛄I~T24 AF3ރf-ab @katfDWkCƲMEej<d)q @޼C%Qde'1sf6" _%hD,jboc0g4k~qspdGQԓà*"gWVDdnqw{F&L_ +NZcYM|9lyXTnK6yRZfrϪ!m.WϰL-5iPYa'Jhux$=4ό#g7#V3S!~坴E}lø4nZмb>_tflY(/0]`>dAJ-+WVW +[c ;U,B_W6[do|h!cu]v7/^Qֶmf- M&T\ +;So<_VTXx 쥠Pqk)Hwia3uLdp+7Om.t#%5bb[?qZIm=A'i }ݶS"Ƈ "8_'v~8"!,ރr%al\$sD#apD‰|ؒ U==g0=4<?+U/vRlsHgKb_6y&N!rP*?]s2#ܥ@`iI>C%)|bZZ=Pdtu$oO UЈ4a6((-94TjC t(d4kaB%@dvv'iC/M` bchm%D 䒝]LR4C*C\rnrPXiPU^PUIv4R2Ta]g\h.IpԽ(7{]X,2k[S|m2 =eB+]#!ѼI0nf-DY^UkiɸJWߖerS\4^ +sec-4lP2bWE_IO"?̰aJR MMնzERϔ+`Uw>&HZ >vfzD$A My*;`5)hC = g޵d$'j8{ߝBUΑt35ݗ@/IzkOm&_fECj ͯ{+F7Mv028gESSo WUDehrϗQL/5$ { hpL'Uf3BаBn6!Ѓ[Y^ߣOt>D*U0#-'iAr2duB xûTBOt 7?3fao U5@ܕLlKTYy Y3(3Wm*)hh.-'ߝ!]D%zX] ~*èChrkWX 5,\[DmZVVΒ,qUPɢWd&76K`eaДYE h0n}u INkTPQV4iF ж>vOnh[R2rX8kٜeqVsFH1N@JS+@RǮ5EdX90GTFs4{:OI4M(Y?!_hIVfZ"by;dQ5 n 3߷,|dxyd'C‡F +'t;y>3 GMk7ZHɧei`@D]lnsm n R&Vi$QTk3=νAfw*u(ތtb+:[4\`EHлmVO&ג\tD*P˝^7ҍq >Y.wҪJ3@(p7!ʼ('qb@tY2JC H&O񾍵q2>rJ@W V]!,5z;筴htjXYӎەw\¶fΛ@ީO3t䜪5;[&ĀJg0m"tד8/nɤ1$@*G~6ϥ/5<`a} 0 +(b6K ˵8&ZfɌ(-Uу1Pb饳^lxK%|:NQu8 +s[v-7OK!V +s 9\?. dy\<4g,7EofC_kxwMd9_U ګ?ԭ~XU\FUK `N|.hvI; m4ш\xzZTZvĞ3BMJsz+|}5p3٠vЋAsl=muNVk6 4p^E>>#-EYγ#GlPyPYb;䟰 $C*lsWLsIKѸWvN((;7!0FU wj璃 %-sc\R>M0U+sq|` x:ֈz_ !x4U6Pw.\^y'L-^Rc-åv_Y<0Q%cUB8~@Ng'i^&hӠdﯿ`rm̆ +ғج{!Օ'~A33s]՟ ,}RW߁_xӯUݟCޤ1ds&pzۯ\&횦2/fFUw0"ϩ+AY $xQdkz'EF ^M1dC,|Ut͌tӯ6K 2 ֆ,[Q$=;ܼQ@WȠ `@lz%喠~{5 GVxPDYh.3&ֵX+V!4"ve-$@~q V ^HcÙ^v9lzO9&!;JHQ`O24: +EH Br]}w[R3 o+T~=όGp]=|jv|0(̸D׳.4ă @ 5S3$ |`A$)հ7t"`Z1ul9 5^$L 2 1`k^=!֠4 ɕ6Cӧ4o]"SnC_p9`{Ҧ@~Q6^*l{%Yk83d43Ʌ=i%?'˰F :W9:}Y[\vA[P3 ^ 4.c}4@Y2]mX TiQ9/hsLVVVޡ)=7зWo@g?+$Yc~?oO7ӐC;~r[8w/#?GW>$W9}! \R>gM x_}Ǫ~Ʊ3MB;=T&5cG]= +'~~+|;pzmS2uMrfHq3Ƹ`1 q@Rh5N@95z)xKP,Tݽy꣏<3;!܄nVbؠIH67d-'{Y0`b]3@^X]f w2Y$^]1RC +w<v'i&# +U>fxBdoQw#CVa]Z}~Н\%\$u~ܔ7TЬcI4 QN~:B +{&BfaI3-.<$}0n#tERQBŝs^Hg~VXpz]/5ъq= lp*AeT BGCL!I-c⽴ju+$۪΄kekU*niKN ڙqP\H#ưe^ |&uInsP{˻ + +=%2C&&4-Ćzu3k +a_Y8%ևH mEV-ZE13RfDSmeC6@ZV.9_G?-?un`;c# +7K1h8C69SrHuѸ,崭q>EQ߫@4]AY'„)1hSath)LWC3W&e 9`ְ].f1]6ܠJ0sy,]cAɇ~kw)#*ͻ`>uzi z:YLG%z+@p +B)J?=(ʻPjܳ}{ӇLl g֟q %SL蟡o Ty \w5Ip" l9@["J +tJjH`?*oۙtREg%輗 gx3rRb;o4nR`4e 2E ++5 4g~|s=fdݽ]`ɇHBP)Jܑӟkyb;Ę>z];ĘǗ0C W67 tcQ犮0^eZ_Ou\z;$ाCR,( <[IٌQӀWl1O U2p̰֏~0wsIL=unnw_*jfc{Ye0u  +/ fQu}NlW'^?|nE^ܨ3 Rpؽflc2g$ATDH`h'&Ges4۪Έ3=:kZĬNC|Cg\MGw!Yv8Ҽf*s#CnțuTum7j% m4#0l^Bp8!o5˞1\JmW| @,4wtj@=ah +.;uN0:Zg}9: ۦB4kA-,b˱5"`⬿'Yif\R@M6^H,ZW 6={hή@jj2Xa`4"ӳ%LZ0`azц iJC?(Hi€ŠssqGx-u1prN=}1l{Wd矫5\R }u{u$}׻4V:,g҄ӟ 4T\Sl3>YÒ+)ey!oAdz˻{+7<~A&hg :Y`7iuZX=~GվfahnCw= D*DF^t (!k]V@,$m Y~77ʗ>+g<1j6lb{] $e- =^SZEcH*O8"Y2 4x.Y~l| @3E] +D,Pl'i|gxk4x&EmGJ v=,#jp+%6\:*#|~2 43ճDf$ .umc[k3iQ{i'E_0+[#%U}. AG;/|I IU}3!h>ĉ +=MΜu 6'U8 bZ=&Ow~O|"!P fL*`1W}s'0+cg>G3[j,$ :mr0-Q Mhֈ)I[ãU~:0$:4-K*44=84fx: {EP8k?(CI;@fZQ:oوޕ;]RT8 +)ɬ=-fTrd\4|fVC)dǰ' .R!ͰS7Jk,ZA9LK ƽmujdlXh( cw_,&4{wpuE UF4(=К(1>beY- e mXGYj#(I5s$4jIaGCoQ"o6tHƝ% 2/gDx\CBкSգ.Z`4SԵ{kO6?/}DD80Pm1+8dž3K +|$ X4l+a ©`gOw̤h{2Pώy16Veu3" @ᓧ}O/?yCH@rmQ)&!*%b]58HqI{kv^O wycaVY͜ߴ5#3S4]3\cz5fcPk%dzbp Y:ga#֊K]_^=;QM.BЭq˩eЊ 0d͸@XTs0 U_mI=dDV [yEf%$mi эcQgϡ/p$ϧ9,KKu2\ M*x'@m_480FlAG>P' 10#n];LJ S0Қ"GvLyIe :i_KJ1:]ҀMW{v}ƹ2$4z-`TW<`Q`SјL(i@s*m0\"̰j_:G. s]%K:+3@;ӮuIVdVpny <,{$[k~g偩j^suzj?vzpm.$Aox]|_h= +ҋ +Ǧf ,(#h\=pc|Bmb̢$5^Qcg}&q ڲ ;[*]$`A%Ü ٞr2R߃)z t @rr79ttX`H2(Tvyw4al[zly \d. s b2#*/,<:K{책t:A$Ps F/%i9-b՝Bux>3 >]|!n}`Ր LV~ƩMlǏ^}NIcS1'9 mi}Xi(m7YI%Be ֯?]2~YH;a@jtFB,MXɚ57v( ewhR4 V>k~[?+`45ѐă;{k"_K[ feؗSԚםasΈePs(E4Gq:dI#M@ѱl͖h473"eи)}|r$6FM%se[hXIA>KZx aN(JW6TQ%Pη:S enb@ 9ʇ}3`AFztXu4l9o`yMH4IIFlͫ뷛dhpTZǝ#aE8 eEI~lSw`1ӐQD0 =E5KJ5󚝯~Leɭ^-!mkC'ֿT~`@OۚM4/ҍy+ Θ:’&ۤ8(#dm 5S33L+D+:T̤i2Xc-bSs)pZ}RE\ԞϮrfp<ϰb]zr'g 8ͰS$GFþO(S'tĉ /,5C<^I[,v7s_{V3-Kk‘5, 3-] +[9x3\`38~;b)6Om>蚐Et/qLOlIe[N2dI3A8BƝ?sn޵zC_0MMY~l FB}zZQnd~z?-/[!-C@ݙ# +8cOD<y˗jB\֡!zjkN[w7IXpg +&WS  + 4d\CR0F("сYkR؄h=YM?eQϖ O+*4sgr@w1<=>#7lHM~ۖO˵I?xUtYg~$Ճd'1)H_g"Ό2LR ?_l`1'h^;o橡Y^_y$Qտ$`@o]=!SZ'f0ՇvBBo|ŝvF3o,$]%!mFqX9 i913sMqpH:1\Z?E 9vIW/Wm Pf%(oy +&6T gnJm\ |gƐ?582Qbz%3V>Mj|}(;]ʃ7F{/4;ҲdMC.ie:8hhkRwAe5ǩ\(GUbI ;+QWqsHӼ6;olb%:,>|"yFO< +f=FWgӃ +Đ3u|jK.$XC0M<`Y7}N="„#,<.)yذc8طY~;x-ss%7E4(37ZG?risCTY]ebM5vɲ-'hښOE˛KsL/_deHx/cه4 kcd$J? t4e*J| xԳC 7zF}, Y Y]rĘ0 +AN3⡢\gNL$8^y{ʼnm+pmx@;LES;&J]```痲|Rȶ]V9d zĝs:dP`@7% eӌ +M)\Fh`VVmC L @cG +*9ʠBq;pz/}*r} 5c1@65z^=A$hG*LhdH3ECЌ,d1-hݩI iUhI&"VVI> nP;OyZV|X?#Aԛ @sFhXRC>G|Mt⟀7di^JE^[C +Z ˅ˑ#م'*Z櫓NBD,*Mt*Qr}k Fs,SOL *vW> b:wxxT.귫x XGB + g<[vH?%𧼪q5 +V 6C"lLv_!yXmU;A`Dԑ)j +1e~B|!ӻX*_FgkDR'hG>)ݥ HZ!9t'+H-:cإ$ 5+{HSb[&jAAhPiɱ5Ge*%7scK@@3Oq$޶Ge%bs1ēa?3INM@QL֩fXl贰}P_{ʎ?a2К)DVj@XQ76ͯK@;_p/'u)ow( vYK_RX a~vЉpnZM.х޵>E  xnyWeY9!.t; $"_L~&]@6͗/VwvȪ`cez.T + ص2mu/ 0"lehelTMX~˙֛'}ٮ̕I~Bύsƥ{;(괔s+$8T![M~ͭ +0ʘ c};ƷfHyZ(/ube4) 'Z~SW!Bw_IO`/f$'hH> + @8+1TYABװvS 2Y jfҰdˈ3i3͸'؂8{̍v?א0 J*r;.U8ru9OfO/o\*߶HC @oGoq]?soy|yϞ}cRo=Mz VYXh@Cai=C4afTx5hW@wC@H> Hv;)oRZIDBc],cUc_u-;EFp=iB質@/ +,kˢg1!71`A QGXIb5.A$=&,3RZYҴ "#6aƸA?8 |$ ePoW翪,P9PKu=5HHc{fTwӐw4 g-fY6hMrhI^I$Њu(mK='"g^4t}#>]{*!f0.hHjIq3 Eft + RZ g]~8)@3QtU[^gX}b(w{8Z:a%*zJ FzMBa@<'gIsmbv)·d$dd @C1D2>*3D4f05 f(=}1Mdn5N8|8ZV}"WiZG3Z%ͬ*gn<ʃ$燇>bW''dIhw(Qk"P5hde 0*-ThH0CCRSL+caNP@o8 X)|}0U d`> ig׏jt\~.9Mk<'XjفIJa}Gpe4x$=z]5JXwg.!;(p$-< '֝,1zow8=v}?CpeD9E O;q20?ޟ~fnhRi4б"#b9T#>}#afU;Y}CF_h% +77_~/;>gq _h)}`IM:sX=Dӡu$vakFiJj}\yec( yKh5h,L C4F-M`d7jT%vb()JRViE q(3EKPMc"3%!ieZLjo5 OBΌM+ @%tpicuz'a̠\٤';\$+o̥Wsl yň5{XtK0a=̏4:7xsXDͣ:ݦdvL~37~FrJ\X?=CM+^-Z|1shgҕs 2F +@@sh22QQ3_ 4zub|21F;h*Ύ:G3 @J#E+T @r)1aD-40_9 q_+cNB[íA5\ZLJj.>Rs%+8< cj c,+T!r얀h]7ӶNz^e$ʼ¾8I!;i>mv6:8si{KT19UwRzYw!aYFwDBpDhG0 )tV\ v[(zp4#O`OAͣa +GT}5/f+>@KAHs:7N Bda;t1k : . +&wUpfVg*/@@tE)*ȰeewiZ) uKe;,冬8{vИځ3|kAS:ygFEm7u?` c>&I0Y 挴\EЬQ$7*h2/ZL? 4}k~̍vҐ@\g%݇4XvJ^-A|$llCcܰW:!MX5i-I`h|-trT +w@1svPrhpZ#5]׈ +i g]L; bG>+7R{!k ݂X -tȇD"sZ*4V~};K.Ŵd8tK< :YyZR뙈ށ&Dh 7@lh UZe(=dd/$" +@#ΩjG)ZAJ.'C2%[H{|u}tD=!^^R,SR`mi]9vTBy%F>0Z'|79/ *-0 ( RBq`$sgbSOa`Ua"Q 7ߔL0q6d6:#luisfCtp x uA]#oH~sk Y0@Y-imOh)~qtޣz2#eN$4Jn~LE 4V5 +Š<uqd"mN8 +$fTסhNW4Z"iUrtaUS7^" |`2،\92&58~lNш܅Q2ŏxQ0K =[|sxohVb} Wp|ݸ~eJG]0uUWKj)*Y(%C:¾(Ore#1@RL6cAOHk#h_4oK}`e|fXu9$ Ḛ]vc/](n)~tNH]z #gE$“N*yn5esEw3V]K9DEťy>h V c啍Hu1% '{Ks`>Ƌ@Z\#LJ0{kOPɥw>< ~~omNU1$Ѐ eHaHLoPwޑ#)jr7 @3M9f?.$kg}!k{(Q a1JTr9ŧ~pu'/hRx? X'P!?;r Pޱ,7I\X4#;W:ӈ.L}mU2)˪zMQpk\G,KXI<Ęi7ji,C'*F`نuг<N9c{jLF;q(5S1L]Ŀ1rT`]2C2=$2V W/,]aW #<kO T yj''v3BFNk73,CAS)̨, 9 +]+O;5k ٱ!)۫냓<;U5Z!!bzf'^4Q…A= N!}(#id蜁|Dl?P-e6KU9Hм \t?8/dybgoZѻxC+~,_a<3,`(,_Ca}44 f%ުH]<DۧCWNŕ*h} #S s~vq58?C @3sy "֩leH \B联Z=wψՏ=fMu'u'掚eړ0H ;賳 r\jѽ +܇O' }2.ShYxI[hEǝ_iPtphgE:##Eff ՊҌjrsNS3Y]8`4{ HQO#題u(d LU뻢ئAG:nLYϠVɐ"ɶ-rH_ yYt$D[tqe:˟GsNZnyeb w@7:w[RkT0t_ajЖ>>rA7xZtL/,TD4Vsmd!E +`hͼBRw3BnR' +@* GYnŐ&VOǵB+ +'Omf-PmA>%I@mK.sFKތQ& +aե {f sbƇ<퉲3Y[|Gt^}sC=4C /]7/O P3E/4 uܮ?߫+Sd+[h˥t Ro{8=fëGyUDlm@G.6HTQ v2< pu/G |PMEm8&C-% ݵL/@Rk~{<5N~_C%&)K]sf8!#issy_,GμTCВy8xETNd7PBʗGNGi<ه9YǣC0_Ct7vOIhfm>w,v4htr3I11m!퀏ևz<%@\Vԁy0\J(9@"yKX;~1>tt>+яƟWjFR<=F|>O1qynѨKbdsJV@_WBpFX!p/s!Y" xM: D4r< \|1R\+?YWyq&]n80RjzIYH8˥JHI}ggt4n_8rGufFSЀ}:Bb,1;90~l6­s_\1Xr@jCJ)sQNs`[f46a@tBF)nωSqTJ`Wn~G<[_.BCޏcpK+^U7Ց9heqs'Wh`X$TgTkP9*juVPf_+8rU6V̙& 0%[a큶>sÃ%GTl3u}ePQ>'MDiX=m;#dj5J `y!K0|>'fK"Y.8~ՍĈStU*)TaU$KuHCk5aLӌ XcFXCÑvithsnTu Xψ:-J4BCzkm1ks i@&>bCO hgl/]J(nŀSa Հ`]4)@hYj29XKTVVİq̜( Yc>j=Y\}eU5}$ R[>LujD#EY3j8fDYKf7;_*:.W/scpUGzlBQS0^!/PiGVL^rhX``h_j0JjpwxŌ?[51WNPcOƝ]Y<4Z˭K $ݠBgȬpyb Hh .%x0L +ˣqzǤ+iEYg X3rzԲ457{3v; +Mfgw@Sk(p0 -W˥4f˝ᯄ+?]'ؼgO={|yϞ}hFV@;<aa:M<e43=@ILjV@Z[Y3UC-*gD`VShy_8Ƿ|+h`z{""ȥ8r%1;b z&a}#3!L&J;&{qU5|8LE:S'.sb0ڮ4%$-m(u7KA-\59y +^;ĻCfΛD kog'mHX֦g[5\6"$x|t;cW8 ʯ-@w/& ]!6Qjh[g)g20i/,n*3ZAnwl<h>M !zɪ@3xA]D~ϰjO1W?S{k&7k^ZGгU2h0pLkiHq:)86,!5$zzyU4Z*~H}vftk8*V_#{ P#.ZN8vo]/vSÕ-/Ec{1g#+sr\Z'*t0n6(|RUhee @K[tTO,toD,̺ωIP/E-:F]~F/dZGu8iR3fCbf|f"s>uW }Až/ +9TBLrLv-vZJMZ/onM 'M썡aF\'4n V992XҝyP3%"K0W1ْ;DzɐAJPj|eLCI]Pm}4ovE!dR+ ~8~(nZqw#ɾ.А{5@`rIC +>f5i`:FQ>/lNU8!Io=0z-_܂fMŕIP-!i86ˌJYeA"GcƒΦ_Pb^$= mNj>.IREhgt~yqzĩwiIeLLi+8Թ*3'rSmrgաД61\1xjW*`J Nxb8V +q甪IZTˢߒmQ"r!k.<Ӎ^眐s:}[pHГCцdpp\%@VR)}P@wz8,uS?z:ttsqk%~?0XFRkhKhNNy,$-bSX -HhnԂ4yLЊRk&p8a+-Z> M +-}Y}Y$ZY)j)by9;v9KXYy"N^6UZ=ӻ4g#+ÃRH!f-t3o$laIW?l,z7?ZǷ>TP+@#;1UMӒR7 ޱ"77$T|x4ԆAC58 +p!`3?UK*i&*۝з׏h墽2UB2%qJk~ZyVb͘:Ogl2JΑW6M_CyJ M`Q] esr1KBмD*x >rP~/J/ !={khI30Y +te)HGHj\1DX%HܴD.Mx HN5l +Ќ] @)hb@h3̸A +01ٖp̸%>;XMwcs%Y7'i5F* +?O oZv8{= >1Xhp *QwI3U% +MxD)Ezhlr_2 } +m&SUTd)W X7 =#- ڣrЀ`f>{ԙubϼb" Mp` +~^nOms&Ձ;J_!)iYlKH#@yڲep w-v(Fl0q|P#\ibsi1 ŘW=b4QY^A[]ݓJ , I.r,}g!'wUahӾ4gefy9Pc׹/DLowd#a$j\#I`ku%bZ?vn+ftf5CgG!\ӹM>WeWj ^"o +M;_3.R{f.-tuOЍ]V4.5  %!'`|ƬGK$$̖ >ع*v:5{ͤBs\ד}MBr,=q| ЀiD}/RA1.(Bs5\GKYNtI07jԀ5ﵴdle8IPs"ax%8oʟGM?:\‚ Ewf +Cb[_!i5 2ep.4 ˵ 3D^hZަ@W%Pt:7׌I} bͫMy:OG^^$M^)HqgtE-ZzD6V7 ߌ]U%s[4^a/\ @TU* E46s?@;fl^^(ټ5Zrt&*`I3NߠƓb]7o)6LuP)qH1Z[0 H A0!;1u3dDcGF˕ aVeю#7NMwܣe@ +{࿝s^[psu'Ps} frhE#p;#``LO9ynUeͅ@Z?`\yYF9[NQx in\;i"gJJ±Ok=b;=ƹt1R-7EH\P4^pE+q]ʞLSJ,k2d "g9e3Gv%yUlG'M-x%gs$ԻC;& + kpLt3FDLm,4t!VTkSFP5B'ŎihQոTHk_X  SBHdV%y.S4Qsl*X\,9c{9m7`1cvN kBG&U] )z%,EBIKieaeƣY6y2(  ϊf}DZ򟀟iʌh?2GPWs%;|IsZ"TɡWse1Vvq^RyQws.ݵKZ*V55, 5@KHztD"nM.*-<Pf}tpB0CE +ZS? QX3Cռ&ހXy!'Hp47OU>8`l + =fq6W~ŶSLua^Hg**0P @8*U"7]'"W NǪ2>t{fmuF_EL)RZ 1'v?|{t'ޠwēg6)%L\!;z4]aʎ4Oq‰_"}׽'ʚ+OWgvV@ÇdIΥ*vjģ\2lQ@[he*7 * @~!YJ/ֈYj;@pIu8^URRW VB\6RvOTu~q``wƇ2`ݳ4/ƓCj}?/g.d ˔LBZ'xdd`|3mr2Ei3/V| ,`,Иxhg#-oD%C)Xf|mBhAhۙԼ9HF0,`J(hyR><O n3ъ'ro9@e W_Py>9onyi{ZYK +DfM 0У[H ΁iVZQp&4w G)c??j4\ + xfȝ +WdEihže@Ϝ* mr, hL-9\)9Tf2z W'8F@nJtr @(1ڑR,] 0zנy%q<_(xkm6)X/]AIc"WyX? @W?#tT䎟هY ’dqJ/*i@G#@Ǐ=6޵>{y:ދתK+NG,Pzo6Y̅}&>(/QEvS%} <)Dh;SBH;hRIeЪ;Űt&6Sw饵sÃƁk՛P* EUޔHD$%>^ ŝ`Bcrmr0sT@Y;°0wP*XD +KTޓ('A7T. +g%!d 4, fZ_NRgaG͠NwERl(WhQe XMxZz +gyRҹ8 pr@ //<x :g]$받陝.0%@HE*PIؒ-4 ʄ $ӤHG LShFa X H,ٙG?*3}w2OuQYU= |Teg;;'5yc-b=t3?|z[Xމ헣D3hܑQO<^,$[f&i.W? fvP@Pnh)A9ΉqS&BOc h8y'Iq<}K":@O ԦmMZv J̊P2kή33&f;;7^tZ'椘;gk_$5϶n[ u(c +жI.BՊo:*1{KcMDo2j|LEhq<ppLq=GiHh(A6bl&F! q%vp~}J( <Slbr/DԯpHV[6). ʬ7_ZA$g'@97 +u'hDqhȭ(3:?mY-,\VaGX_< +I2*#t v6yb& Zr|@ahlawܛ^[ށ*Ķ9()4 rv%( T +V`, +ٙPN^`Ga!W~fqXó#ryWty=aY/U9f0^NWjt ..txjO5-qDr=M{sU@vay^S\P"$` ?P58Ǯ ĊV:)"ţ5˧1ю ~>|s5®GwKo_?|! +3pVE%/VCU욨W ѱ]/= &kVImԬ?RDz>pᇋ?y_o¶G!ڸ^s{80A@gx4Zj#mz*WoI6mrB00F6`:<lzV_LIӉo֧Ao dyͽ6бI Ae"sH_㞇o{q>#)/R?}6uU X*l0"@2v4\]_1;#84B@ڙ\kWBhc&(#{'fr%c+fI:(K'v|5>xsyy)di:X[jNo#x|*2iU+ƚT;kda٠ִ% hzQDuhʳz_'a龪y*Ί8GȆ*oY w8nݺ5@ +e{lx`VY&.T cW@cr7qO-t2kNlXq{?ރ(p ¾-*yP0{dMh& ld2WO;+jILSk7Ua@AXL@ ;'դx"gSLz'D2\w+s 4*l`Z^j~5G;M77vaZc]I쇕`|:؜;#VdK#bњ+ +a{c +;)Ht?: P5^XT-L'f5ډUkl$"K`oď"2pgU Ϙ+45X1dccwə6>wYb.*ݷ~W~c.rngj0B^rl4-IVZ2b Ӄ@3?aζyf|\wK$,v3{Pۓ잳A8i 49MmڛfɎ-huůOEm> t/q̸\;Bl +@_4:SgG:d@4_s.y u1x.'/I0v *xC(GE?hv|Rf-n,H+bDBDQܳkՕ>7KnN={a@u۸vI֡bQOY3`YN 7@. _Y +GS ԫ(ϔИ.lDNdI~{G@ӣjxbaWy֋LcmOxĉ0/^f@WH^N2V ivtp:8*Wh5gAh#4io&n~B,f+` +(@, eFxm&gyD @\k4 {v7w%iaYw1÷4C}z/*|s,b&2«aq-˻j->ŻL_.xڎ~ksie4"}Si +L|['" ~m̦顫;'ݡH6r9ln+vyԱh2m},+9zN*'_кy\f9WDjSg ˔@3b`!lwè2T'AJhl+t9`$'R+6_M8.U`Ь{j(/ 3݋&8iOn }; +@?]}{C?F&8[/ọč4:o2 P"P^/p,J"Ss:$ Q>rxv҆ @/J ++(Hs\gkM_#_vR +[tWvZD۴*`zy0͝dH_N<_.sy ex𠉹Muy_{rMpn!a o'%KrOFA. ~P~*Ϥr>kzOzή\\Jt342=ϏH}ov\P%NQ!yBBD he=Kƙ۷]ɲ5=Zjj܉4Ub!gfxUTxw{ -G;c͖ *4Cf lZEchWDh?sڈtf `(ޕ +!/Hl(M~&\j0m؂9"fPa&zڄT$:Ձ>EYG׆6 _?HE&Ϡ!t=l f(kg%44rZJAж46]!47PU%`7?^ZU )vH@0z?{6'/=?Tg Oc/ao~gx! Зpev?[aɱOȧ`6b6I]3o]fFsʖ,{fW!冮15B"۝9H +zi5N   h{WW>1!u;%IIc/A&;ȗiۄA'7ӟI- mc|(U]g4)hZ&Λi'*¡s BtqUL/5Fɜ1` _ićMt5FxBHs.d[xhLZxx1)]sV_ņhZf蹥o'SanЋAF/G' 3WB8`i<V[ KVQ:C @bxfM`ғpّ,\``@h3a5@JB 7NjxZh&6VP4> x;HY&":>5j(:gb5gGzhG$@C jљXZY/wSךI`1abrl? +eL)k/!6CEW@itJ+,ujth4ghn`$9^4+=W()ح,ɁpQAB|sP^jLsVosлPTNhK&/T54&]7"@Oݐ*zFf xb$ti*}P}0e3|E.is߽m @OI|wVhy +4q>o;Sa;Gk6NAOѣz h4.0'ڮX;WYyyudt{C;ugec|z +Y3@K۾)|I"4i r^Ht++#%\@W-_jtQF +MaSS@DޣcѶ`u3E0 Xm +ĥ- +]%k* ALTK] pxZ}4uS(%}QX #Q,dnc[W;jn<MT `X"-zʫ./ ϱpƤm~oVЂ|S ~q0M&QKPc$ǃ@G=#AI[&|쩻hK컳f|ln!!:I`>PT"{WoB71+xfzTLIۢ:@XAB h(w'-qXE*z4Q`X(`Dr]aOnKk3Z/qpUs5\>{uvC. W=3:g̬y׵MSk2bSs56-ɁpQA"LBNIR(DMPUu +Y֍Yn.}ޜoXLtSjrw!4ɤVh՟_[П ޾.xͅ+/{GWo|>i:G+='$;"҂l-; @_ȧh5C}Ix+^5$AlsԎ!fےzMx0'h -]ks<<$ʹV#:t^fWBffۣHd󒷆כкr\>kԘC4UfZU[2cHg5RӕTrkyQܓKcSJ~h}268U!]NTs2,#m i<mP\UgK S;Tnb?z_1YΧpj&$hj% B~)*L|*'eP@!mr$QpFӱahڄFBPål:,,óx]ǁOA*tJD򺨕BwQ\u}j8`>5kXf)̞F)y*{Sn +*McQHqx)\`3C&(7-g"Љ柸|ô€+eUG69LLzx4AZtЀdj҇ͫث LQyqLmY2@Ρu DP-fO[ \8j@Rd k0 @Q57]t Z[[uz'VCn04 'a%HP2~_^7}&Ǐ lk9(z[>pᇗ.=gT97b +@ۧh}QEm΃gީWĥ'~e/{#쒿j1n\5|mWJU~A^lQs#PJ<Uʯ>#絚b+khc Z"Cr4=l:y\os pwSix!R@XMhAmW[37,40=52^@f^&r8kZGhYR4NWGhfߝ؎b+mJ:@K6Ml\o v8$5_.BiwnAUMM1ȀBe=0PZŽIt)[ Mgf$|}jwTEՀp&>$\Rč^ +% ;CfWO=jȉDNƦQ. 0tQʼ)U6<JuMB_A܃7s'6.ʄ{L;@kJɛqxu9W4 @SF@'Vɂl;vI pbFєA,{Ȋ'dbNXN cJ|<ܶ^*j _ælMPR^kC@;+m)V Z}x#Lk{]cIsd? $|{;2 "h `2 3)qƾ<쭷nߞQlc=CM/ rDPc4h﷨܌i8q{@xֈD*PO(Zlm)wP 9EwGoh/&zw3J!apGf,[7Y[5/hC3|)=ψƧnunҳs}Ҳ5b7K{h@sGh*+s/NK|4b#+M&}z»n o#?H$wPvL  0~Р^qF_LgŖ\_y-7>8 +0=V]4| nvfwIkP68?Ƣ g{0nȹbSꔸLjeLG< t]rqХm7$#̀.U nh#"EP54j$Sb͌F08vr5wǃ,3B$Afyf!Di-1 |~W(뺄B"RؔJLknU6LzKRCTH|Bs@DK/qT;VAâ+y\V}||@Ӯ +t4;WLgVKݮE9хcTp + L8`ca:~uPdkOњH4(anЈiYψiR.=_x4RΊ}CϽƐ GӍ7r M%.vv:6@T X3GlJX6{*Ȳf:Q 8EBb@,-QDFFGG Rq\?nwQ;\~8&km-%&kgnraWwڮ숫n5{bMtDtJh _Ih9Yb~z#itUU}+||zc $Rmpj +3ρTy,h-).]p3A(q)c>N^{eiQG)v$.D(#+2Bx6<::X?4g)* C ]-a%&gc`ּG%Dfj +6 F5e;] tUo{ & ;݄6|N7.6HZ7/gжGBF ȆXhRF;˾_ڣ7.;#7'*xc4tx7ºlHhs4Wũ|oQ(Yt+duGУlu=*36,w({k ~s} v'JuAK+r8kw/|س[x#?i⏂W @bJ~<_Ms pLG2og#s5wl;+D W9 [?s,~Ah #{\uI4ӽJ7A =1n^/7TEgDAl 0ME"jdLCF5ꃺޯ#"di3ߟH4Ie5ӄY=^H rǧ +õbfJhS82͐P/,#gf66k;]w:@6wi\- k_a7 ++绢MW֡RYT<2<ˑXII'bZޅ-G=y1*F^LL99㝬/0(H1we]h_ +Qyp,M|HӠ5\``v +4&lnmW_uڥI&;ku{]+Ǿ,>nT4z:+nȳ,<m Bq SiQiє0#OySRx1h3PTCW5cR;6U#嵝^gLvs ;vxi&`MN͔Ǚw-uwOmoAL#2WK0s57*NLdtJ;l3e;uN=ƺ;08bO2aWRz졏|Srs9X,;7f-fY!>3Gn.0N&Q$1-- SQQk.6@vY>^Zh}ٻ<;>tCl22t7*w$BF~:u?<@\ks#tL睜/ YhH'uVh,9 1#P63{h wYiA{5u,Y'ѭ}ӷ5mFwxeZ+/UDt?G5:X@aODiJg 1`!>cKbah,*жUٙq"c}Q'ʣ:?wy-5=0 !(p$f>RYncoyuZK*^v +U -NMJF̤(KBζnA'XK$D>;e (c̅5cF<⑓X}9Tgj4G2{ r:t>4䀪nSl kSD787!KÅj @{{˷pڬ$ UΣ$ka~Ұ`|(ѣ7ۆpGⷶ.P߬F~D؇ !:~E,zftdhdwzI)}G8"$4Lb BJ64l4\s=AG_r?Ao{* d/)IL1f8mϛC@=c2͚f¹¦JvP~Y<@{e  hO89OA?j=$V0]4-c0̢ +6͆/&!],c| pdm䙷\F2@sw^YY=!ܮV"k3s +rsߵix3^gh5bX k + Dw\v@f=3kiԚM&5wзoEUЧQ~=I_"=N"W`N"^g{G)di^0GyW985&~  cqjj\?hF@@x5rSZSA#@ Z8\u$o"B=fdw8$nBwzDOBAR@kY̦"sK!i6hf`({1cZ2݄W<&RB)JJ_wt.w(kA~5ZY۔-=yftdlR@J n oq%'mŶxrdfXK4 Oh@Tl + Z#pQ6I{;W}TÉA{p +6tgR/KZߌZ"+˙3 4 +ܽn)q +qE~x7/6~瑟2;5@ e9(G{XqK mPm7t:0 +i5|Qhf +/ 0%h9 ?x~ c#fCb!O8/I]Krz\2jҟyOiRm@5pF7OdWG׎ؓp.|Cxix!>b| Q.|g2)l0-5mW_lgiE&p$p0xk#T\JpOϗQ4'zWF;qgGI+t +PNY OW" I X Ԁ$IX2/; B9(uגd +@ʠ _1D:V_5q6~ced,E/jhjY @t;SL9)方F1@(@ +Ghn ^pe +CPfyn\X ۙV6ۧa`„uZ9o%AACBUZ悾X*҄7{8 Ep0.!)nJ)flG='xr+ȀhՑbK䏨WR:Z!}G%Wib&8q>5ھZuEZXJU$.G8ORx!9BzdL_4;JS=#P*1HrFUPTfM*qGSA +촧\[7)duDۇ;T (kE3 Լuޏ>T.'/=`xq[Ae$ +W-j +Al-3޽pCš6ڱup 8ȄC?cxg9a@ ;Lí#80D9w9XKDkHW#\2?3 +,h'{4끣mh>C'c sӰD#h[d~@ k1PTs7pE7 }aՅMzgྛw͊ E17h p5EZ3GƣhL{G\! 6h|^(;Q#Y&er,R+ wĬ>hȃz.f9FuH\R#@\i?xh GnNcLyl=mQf֍*M[mBlx͠:h4+c\[9Um%|%{!W#[nwJ+Qn* 'p1(_Rq_ Dmqg^R!X)@-S5ÚD/%a>$/6Fo3Kڠy4̎ +eTۈ}fj0<׾NC#%ay #9DO_t~1You];#3_[bq8MUw!Ǵ&+:"3*\TgȉBӓ!s%mMndDutd*eA1p4IIOTl泳q$hV͒:]zQ(yō;ږBHE 0'1 +Ay O}Ok_!*.fK>RfO؇ EF]Yi xKe8(Wh4D8 _Ϥ$CleE]ZsRaDF&@٬ÍmPgIG{"[z|n+|>v#;A +':BB) Z35FyH}G7jɊ0=qh9l2:r1\F?ɁvnȕB9ybQȇս\C4Сմr: +RŢZMȎkw_ OaQߨ6 Lg,:6 a~yOssȖkfDX3Pc@ƚ"6`Ї&4:2sq>==:$ʨы. IׇZ/+U΢S ."Ќ4+E a.; Y҃id.H@J(%m?\UmRK)V}||+ږ&c0iyx4k4<3vz#:YULO=|X|H1(]F8SIB{,;[lu)hئ&3VY_ߺzf\^T*û^0\]退"h$ZWvjHVjnXCxxkʡAZt4Q?9{^R74 +~##qVP(y;ZB6rI5(= 0M,{#dqLd?zǗt ={Bt klF9&G@y*&wKO8bӦA 4yb=:b#ӛ*$:E]!'cy}f6Pl1T{x泿g"S.LH%\'Wvqlw8[#Chڞf΂Dn͌4@o]s3 .k<e7J5uzYeYgG'\%t  Ka i^ju!$MARzY^AocFO&ͅzMrVd㜀En}@+P  @yGʝX<@ ;a ˜CP "mxjOBy1MfG0&GN60S^FBȆhO@vVWމۀv8i'b?.äK2=pWlnCU|skg;Fy:>)m +U p Б +}*"vi}'ЇG4>_S?Uw5mf@d{"Ŧ9 :e;"r,>qFIN4ߋnn^@;gGM=Rc0#:FU5:8noKa +Y`q|Xk's9M)w&1szAx]]O&95o/A;(؃OD<#$A{[|=sH +eFhZ4fVmx +B-LFlsc\΂HtU+iv40 tXz\a#@۫)enns, &"+/<_(%6Ź! +Ϭ)L9f_vhV_2NYuD۷E 2hꍲx(1箱>2_*uE3Y~ʛ-R5$)eЇ܁a]LU|5谁T{x4$]zˆ39g@[1IZWG<]K;oi]ۙ"+}PPRvD" @FzQ UKB\g +hWRɳ{ZZ ^aU1+ sj֦n'T4 +n&;qbwi?ATcj o:8'6C幏kTl"^h`(XV&K)"H:׷nH]/&kN8(D Tm "BS (ʃ4 +mb8*ύNlTs5*E߳ᑅSֹfgF||=Ж>~Nnp'|)m$A&;KE GDfgt4}&5hfҴB&.c<̓prtZkcrJE ǿ654xh r&/{!~hayDe"Jk+=EfCf7.5|/n<0TC;*(8`RT8~| 3rI( + +;dIIgԡY{3C#̗ő& q]K:\g.f6`e$o&h'lQ90qCN]*3t9Lܜ@/}d=jiڽ2U @U$v#3q?:O6)Y{0xǤ03y޺?xxc"pRPpT'Y3NC!2LS;(Hd:Y=#цCG6k. @oo&3feQ3%S;315YhiRWPЏntN'CPIzh.s0b~*ܼkM鷿6 +~p(GYBLRz%>܎ƣ5]>#L@|) 'p]j4Ip :uT"FҡxS'AM;[T7N`QLGqT1Ez4*:@ ,+B,_+ +Vd4HdaS8pD!ro!T&L?@CrI?{+"ݕRr}P_ZFa8bE8ZS=5JM +7<Ղ,|:|sT]IV^L$j]olbhq#~w^dFQ袃LYc͞4p`RHOBkF6fS!CAVq1ԖJ!00@7{bxwZV2ž8CV,eY!Q'፻M;j;E^hZ:SreG bE V3ʡR]w \ׇᾸBRø%h0A2)ϔ5hap\+pt^@#J-gou|T)0*N'g( AsG_JN\K~0S6Jj]Jxr}YI9L(ϯMWG~wT1?n׺LދjLATU"/j{a9K +`Fk,kT`m7HhS@UWj]C$mL6i] @>BPھ +&ԣzxlxfXIs+Ty.$@J&b-uMX|- M9Xu3(eQo9lٞ&:L.Q7`[ku2IH7quQ%}P2lmO5Sr4NPh3h>K}%OOg'mH~SǟOŠXyiV +Pmí MpP85ƐW$Ji1 +=ڳ ?<.5|+j Ar\.};ArGv·o9d;Jнr23J%wAG6_5퀿v9>RrUEUx^JۡZ.#;^I3ԛ#珞_)>i @CB΢2|Z5c?+j]{B0icgB@'[N +֌7^y](OB78%pCo[.T+a) o/IaGg8-Г4p"m7:vTo޶bIȨb4DcP#;BL,Q$n:XЌ-ὯŖiexxqke/^)Aoae] il'jI.sPFDahY c!6ol*B|8 Lպi7OsC;nKUD'4@bXti7u5^2 +ul6ZMO2z8Sz%{+T ~%YK/"H+ Ol!rI:a掀}"lrD4TChr= ~q M;6a)^L 餆ҫ׼ރ+WNͪT̡d#+ &(_C%}1eo}.*eOIhB|zQb(+{QD|FJ鍿dN4uv]_>nh zp&* Js]ixl-04Tֽ'z_8?^144ow5| 3$ ?6mY0v=`r* l <(rMBCc򠉃z?ЏϺ&9G~_K vGu*-o,q=0DxH.h +\@k37U[&v. 5\<$y"H#O[9sJ빝q(e牛 ?x~_}'\+D6 ;xq!h7]А09=ACOT0qipA܉dq K4hWќџuYO#l:Ě3;2;g3Om*3# l!rљİf*틩B:Ɋxu4t)f~R=&]m Ru"ÜPiY,;hs.79|h"حե2*٨ˎr3F7 <hh(o݇+" vQ0L"$ȀF0[ +@1B^OBf/"л5] +poX@5 P8;*dߛvn"b7pԨ8ʕ6a-/0?m|1n.˥1UGU/苎sr!RiS1c_Vp.ĉSk^7@)_W~P5dWcT;49D$sOd#ԱL5G ++cVc+Wvv[2+@Ae#C Fhf_L2qoS0@ۗ1` +=QU[68T8TZt(мIRilC׵>*T RCEt5.wkj{O$y$ o:7#uRQWm618h +wc +@O/66D[qD6LAr2zrNo @S(6)a3\*] MC.y9caU_ܓ0͍V~Pl $,"rm2 +V~zt#@豺 B#NE{W,ઊzW1'J*z( !MNnj/t.!g8m9MK!!Dzyޘy^=ZiWCoAF1.-@ޯ'F3"h+l ӥGe)ڴ)8$Zc8ji0C= 5焊FdrNgQB;Ϛ ˀ ; Ʈ\QWpe<>x-tk<3dgW>ăkv‘}I4N#F('X.sGu +3 Ooj-B[PNs k]yv6*a+*x>L[IjzzSa +X=?#@ŸJ $R!>A[PcNvѩ a/޺P|CcS7s3o @S NlM̺4j_4vĚ5p FWt~UAJh>;^s<nݺ"D7b)v=бmp0:U<*L\M`A| 0#) +yО8>µ)`pMl3.>Vݎ qI/> tzI`ZWSkl鬥6]r ;J XjZ C #ǐ%N.[1{};_xtq ׯ2%-{'xR ,5_6bdʴVVSv5b `[w쇧$LW)VOZ^pfv21,] a; &N54S9ٛ$oֺrtq9Y}V4yF?]tρvEiP/S C+=آmd@1 +ơo"hE)hUʀLDlus=o45Lŗs ŸYRcsП7c*^_Lb2 ݶW@ 4i׮ +_ A\檀|4f`UWZʀ8m ܹ6śjڧL0]$0UPyW[D-yY7nl;k⽚لRUird`XѤ.2뱰A,iM֜V]'h@LŎpNWr?*N5Y^֥p-{8&-巌c`1Q)H9p!vbԭNAfZPMFg%Eg>{9mmG=8q QhlJWw*vs' AkV&X{e +mn6MW]zdQ>1L{O%K6'Sl$0M8!/GĦ7"߃)]bPN\BUppD5X| +Al]бvfJwѦD08ܮZ 1k;M4XSS74 Oހ@B˟0[fh?iJӆ(9]u7|8u߭G_xj<0i?#T)6v3L=gq&Q{VFPJ|CGO&?Li _? ?Oʕ=\Co BBDsBv٭)u Oz֘ixIT|;}vtq֡eq]5+MG$}-}91l"87r_B~P],>Q~-cH'iw2Ix-khO5@n\M qmr[-$|a| E}0r%mM\(H %AXАVh \+Jmh1h +b-4<KTJOv8%^`&Ġу.^1j@#OLnoi_ݣk8kW#=?ac䍋ʜ#&7w%&ƿaMFht}@L΀ndT%lNE +Qt=)H$]c} P"$o ^<z93րxOC4+}AA= +]Jrqئ5yl4ck@Q-b;|:̜r_31;qxu;t0n;݊r{[7m4 +֨tgjd7hPa^u oV +9 :Y{k`X$]S7G4{rvBqGpg /=r V0.A^gQv\R8Kw)ҽ\xz%Smr65;H)mƈQN&:9$M<3iq⿡`:⎙4*4˜lnc77 +7nsQKHp0h԰Q% 5+_&@97kċTaS!a MK}iXC|%n$Ǽ{Ӹ3fz:ʹhۯEo =su^/gDC474qf2JO]md|>~$c˛̯CEjSKB s,M7ɷ 9qgtjPOoOv-8Itsh׾y7pI`τgú;tU4 WR|q&TRͣz?(\ +c@r^Kap h>j5Y]Utxʲ{oWIpmG j@K3P|9[‹O<QklKz4cnF= Z8q)H)~*`!]U@G5ОgEh]!U-=J?JHN`@odJ/}{-%}ohHH-4%䌔Փ98QvpcđZYf"`9TzO= $ \QD9YP)pm`Q 6,U)ES7pPC|2?.D64EmbsJlkh45؉a  {G;:]QQF8>3`kANJ +T+~wcFPbw}c @_ +(F@YnR+F<, D*behym0I OEw$j`mޟE`XGjX>7&rXc6ZϺCG0YwKyd^ގl a:Si8DPBꄧcŹyM0+Bl¾gm4G`@X;ll1k#XɴM_ +73s3UTĜigD7^ {9M+yӘIiCHY 0Â{zТ6UO=FUhVxgõiemWV'(Fh߉SbӍJКV4;NhT8鎲̝@ۍ,7wF7ߙ\ LU4-\ x0Nh?^Z}f*2#x2)!M:۟uakˁΆƝ1]T+lNE.L[\[}+~=tFv$MȨ{QnD_C5 /IKPh NkJBjGJƴSXk$wMJۯًb|XA i($_옊u^o'ڱ]c@ۻ.dk2(_ԉOE>+fM(>`!+־vsɽ?U" £@gU\r6”HO~ݢχо [^HBT7Y +7䚩U629l3ԣؿi&j)͜%udžI*hmE27ؤsD5eL]e(vA"n&JVO@3t(/C3d$&~o)jD[wX^M\ϧ@{y:Gr |ő53+aQҮD +x+W +@}{߻d菣u_3:P0%gWΓmczM1*\Ýf#ji`&O0ıAvD4`fڙhvj yWw9ڔc=̙H4tSKie]Y|Bq|*TEjAF!%9:" OWP˸( {`]@-laEa/kA fKL`سw8kt8m\!YFb2ތIو&;^ȸBMX9ڴ@PxԯɆ$*ّss;e-RdL2Y{nhUQ$y]` ry`/HЂ_:)Mv/-5~a)  BNP}nV?1qt6”JK\iBxm>U4h +13ϗumZfn&Oy +A^~Cxd,.LV Ά84 cM?gG {·Ta|~s[g߬$ǦVt%OsR떂{Ͽ569P *n?gv1/Dt!R>OJj';1=E"t;Z)}߾i<ڮrHq-GbYz]9e)೽½- M70t^.*X"G=3Db\?6h@]~F%=` +z5c=QEm͍ P&NtX>6\shY\ ¦o-mɑc!1'MEp,Ľ݀,E=w%_WL6D9.Kshxù+Qx>{.w?B`r8$Kw$ns8\vO0_֛ޕ- +@y +652n$"cjzC1Ghz4or7ux?6/1&\EDqcap򾌎]A7!D%h_0,uJ?P-Ky +Dה14K‘Id LZ v(0])Ic9j5 z(>BCXIE +`.HpfO)0 UD2S LۏaKɦ5ћkvWDs?z?\ жμWht$ ) ]0F$[Ws &ҿa&uƩe1b:y;J:w'רj6*WC0bjEׂ\0ДڠY( 6B-gL ¥_v:(̓Thy v#Ιx:Lt}Xqsjae (AnJWD001f@/.f'5ssn%u7v/L(,rz@4+lJxn޿!ОnnA{%R`_\YTךOh~w _6M&AcAC@9$&c. ++jALkG4ti`k{myî-jEx%}r=Wm)!QVvf3E%s_^30hD&#mq?_t@;ġxnv߈CyzN程~4K_$aVϓ[zףP|0hb=zT@Q55V$3 Ntϐ3ٮm ؘ @q Mrf:ú%O5n"SPA˭}@uI-OR]]M^a/x]=ڜ4y[2J<77 /aeh@2m' & +' LkDO:=.16bQ4L-sj״+z=\h2oJyh<AY)qZʣP3Ku5)_[Hl|lNs|UaK7gN>KleqYg*sq)RV<#w bGy5y6aP鿻g7wcZ$ +U=T+AXػW>yjUpCXfor9.'ROPghY-h(2w^`W翳mG|}nW^wr]4U"GAQ mB~L|wGYa8zrK@Y @_e`a>K\i,GHS9*!N87\8^wwjEQWv@W>YBձw/N$EqIS8f0DA@[#(eo8\"z|t6J:Jq&ccp?y?_ @O]_6ތD\ZÄ35Rf3Fq0fݵ6|UlK4-e9ᖺI*R;4fhqVD_7F򠟎1b29ӳقU M=7z OB6H˸ӉUe6=-y?9'c `m*D&Fb%OQrͯ*^"暯ECJT%ϵwdA&S3U@=I=hlv|Nv(ܙdLBk=u@N,Ds@٣%mb۶Ԝ5O͟W@[lG`;Yt$̊m+i26@+  `ev;fft[cTb8Ez"F1Js v"lG$NK<7ۡϹi>ҽsJf<HK2Z]Yݬ=4 +1޻g:Mއ&ys2'Ȇ/W_RFB=PnNͲ @3u4b;뿑^Fif#yvC˭6 (:㬁G~#a<~)~']|Խú='l +R%MjR):J{Y S16zıj}[=H@:Ѵ1^(Q#*c%;}%^-5P57J"A/~{o +Jb(+Ai6ĽWS@KC`:u3h2)<4\ZсR߅L0J*iΚMl&kpd8i]f4GtFEa))Rn;t9l6tN4 nYFv1[ =<}B@Ǡj7&S&=7viʀY%)$ZCP_(qԤ~0 'wXB[@_vI/*!WWS-O6{ﻏu_aKSN$ ~hZĝٍ5o~tѝH^g $R&-?t b#: $$B>~Cy ̲i5Q[4Tz "SD?V.G +2d?B`r?Ti`Rx4H^u]cwt{VR>}Iޘ\=tT?r0EZw35Nz&G;k;".۹|&d!N+}PK.YeVIu] v#,o/nTwrrB$,鉰AN'fD{+̦Dy5@2\WMk +iCґW| &oyoCɰj) ĆPl}'zPceË!"汶 M.L&d2]FGTb8ƺa8Ks`n#޷}*F+[B*hVCPk^KGFzm/vrQx3S@C {[%- 4\+YdMr|ƃȤ]9p3#~# qI'fMBjcJ 3EU8Oc}}Թ;vis8DH}ibO[tqR3qM.y˄X6&D*IDc {FH ]GIXƗ|l4ct7Jhlo)Gݳ>}6a^ν?۹6.8F/(_XUM^z7Ƥ삓:XqF][-`90Pd|+ R 8q$(r[`a0O'L;2NNm!UȀhQ;,)U|ЎޘQawCۮ>5xOv +B5Y @{u˸ 3عI;2(9πSvkcNjU 4TɹdxKqeeR}<)Muahg&ؚ)wy~!b *p3\ 46ڡe6UghCc|/vCzն IhF4Oh`Dolhz5y +]㳑o#.Y4Dh浿+~u%'j!(OgO7QQt0YA"#|xfsGG?^{ӂgdkHzZQNW?c @· m b묰q3椳:ģg'.]L$>[8؈ =Uzu Py;akv}Gތ'LAAyk/䭴K2E D?tܴ͡]4Y*7VP@j%x(sBdC +FJuS5 +szNh[є)9OE-qBe1*3ީoԶF(Ȏ +hgt$k|ܹh:vvQևYipFaӉ{0Rf0.B +GZ\6×͡%4"*M&6Hypr<s‑ɦ`]<ʜy ;hRD羇uz+ `lv7I˖i0K -̥xx-^A tB0)+sbcت9͎/c8UѰg:pL0l3Hv += wC'6]nq>9ZcSL.caI 5 }mk<7Aa 螨:BLL<ə} L9 ׺aFkaQv&uzxAq\*KLUspDB3?:4FS"2qjFH)_/*݃wp oN>W#-upXNE&5vs'[s`zzAd:~Dpދ֝CVu/RQ'bsg#XT+^xr*j@e z ųp Č"7F}6x!̕%}Bip +fdR^]wtd?ogd吩5 )JK*|@۸;S䚴휈; +ף_1w/͌%u$ x1C3TD.AP#PyfMYo`f"шfyr)Dؗ}N-񔅶Ͻ+9n}O#v +n~a!5(-53UqMy5th8z|~d, OȌ|^,uƁysVH|6ztȰ 󝡃( ׅ`48. GFᙰr@ +^K0#}l=6=jbqO#~s҈]k^c R'{:~c^)~T!S}`>ӑ h%2ů;OIY:&vnP\άi)w{yiDF'>qx7an8Js5YOYܜ(JMCqCj yZ4' Y0yxT$8g@o?WME/k;N\tm_}d\r2 ۫,NG;@%e˝S_NQez99UlᛀcΩhhLF5 g^,wȘFYr 0LtѺt ('АN,ƆKMX dnQ *&4dNvza6$o JD5#hʸXu9< q +$P2t3=Mr;4"v.CߌƁb@V~#n(ʒ7P^W:=*GޙMCdOI6nfg`ÉhPLnUƫ24R-€ވs5OF4M%853z^Bv\}+o;mGey3,@,^eQyѺ뷖;r~)ϕ;yzz 3LdH:?SS$;´e\4мa&ZBj[3V|[fy{F2/AsA$ImNHM}A\4=5iրX. hBm_62<>(ZfpVr?wo}Ȁm ,2AQ6&G!4_{yqfĞm>o$љvF Lhހfz&uXF -آ t˺VaӔʌ, ` +mfL=8"G (=ljP_G6kos0J30w'+ FݴmgCU!ˬWa"(m"nl@ߌ7q0k+OFvy?uSM @cQბaf~vD| @5W`L"G٨j26Fx,nX:fK{ t)ݬ/ЮMs3ThpTGqX4GZ%K[ff:O 8K_Y}oЉCӢ~2k9U#,P )c0p9luԦp-\h1hAWC z s#8$ݼn#J+B;PWW:?s%}1 +Nd@É/̛=a@A$05qTrQHK3>hp31k(s6 m@yjF͢CЩd)quxM3zЪPP2}ƿ=78?$sO[g#3 #A0bZFG \\}Jn}m|5WOtwډ2L$۱8:*E@`j4-Y^!i1 賍ME_Fʁ=ÏKv Mc֊wǀFDH ֈ?7=4j00eEY&r +nh.Mr]/5=s/`ؤtն%Wb@ۍWOQmK>&#T\P#o&傿^ɇ&Z80k]%XR$ 47왈O?N6:B~ +F83q*g4uA t/jc@Ýև=ϩrh O_O[W~Z^UKDmScS o G=g\e);ȍ +=4`z!5ثiSBpH9X dL ]?Yw WҰI\®mM ?<f1kH_ (k`Xsl8YX+ƾ'~%Dbw+23 x IhjC},iD*ѝ-6v8 ;lOxK0; S!/^e @)e{΁c5 r k ݶB*|^Mum[i@5! [EALkn\NF 6U$}NlBȷ7<9`rf9$ g28+%HEh-.)P2 TswĠW"MD_lט+yRiۦwzhQC#}ݖͅ\r6!ih/zhW~s/ݛ{3N SW_@F@)z9{Xf U㻎jZס4je&BގD[߭OfnF7ӋFff/'bJ00ӿ/:#/ s_)r?/OgZ%Td&V9{) ?@Q_9X.Ĵ`C7+t߈Yg[@goZHLUvl˝8é +; YX s=h=\6KIYXgǯuZP6 u%qwC*V +-8@g}wSJڇPHyԹpT4rlŠ4=iKs ([xHo./9k<S:&0b\)\@v$i愉&;q*^G׏yq@J`ǂGv+PD z:@uT:0{;ӶS9\ݧ\;l_:eVU8@q . @A)y`bd|Hsyrej!A#Q; aJ3'Q-461Hƣ(?Ӯ 5ua3M豨6|/`~wcP6ޞ4(Xݷj9}7gH@YV$(Dsv Y`dҮh4 hV, RX!B.qqveerkS,c]u.*Xxjhߟ>Y /M:K;;P¾y1tx +hz TN6i@1{1ydᆁuU8ZFL$ْU +,Fi՘\5ڳ}bI/gE6 +.~׾}oѽ=!$ >x tGcW r{*4ŕNmd\)ٶ#<;onƢ\qB\G:)]VxF#umVԣ2֫5^%㭅t \.FT^ (A49}cY8;&xloJ.x4Vˇ2Gj1 @z5 uZfkN@}\T~2Lf93 k]+q < FkąQ0 +ތ⌏`ڜGe5T{' )LyCkoJD8Gj۲?+;39# <\Kf ,#ǑSk7S_)k:04:h f9%ݲvFo1x 7XSǸ0ؽZLѼuFn9YrMD8aۜuꆞ4O%S1WB6(V K:Quܜ:nV<h ̺RJZ)!Y"0$e9w{ʣ-3Yc-[*bD $NJw>r$;@yNwc:볬}|w&OAPAx+~eE)Dz9Sp#΄PP5=@8\iԦ5 {-kwG|åvcv mh£BFlj;?^;04gξ+r=|9zlhԚEN.MW$MS5ۥٙVaF -8"`lt냼^{4S/rb뱝oL].Y_u FfHY1pWS\~gnצ @ :HUT@@۳K@CT΋U:g=6x=l?5q}re;62@8Ep +]$ +H 4cbvdFz%iޙ.V\b 1[]({xE@}?{0]Iθ,zUzv RzҖo K2M4gG: NtPBչׯkrAinpA RS@ģK.5[M @ZQ rEVL]#CLXԌYµx4TE71<_B%xnTP }ME#ֵr#$sr>돼 +1l I9 +@=?rퟜpViDۈ z"(,e Me} 0;UIoN.c|ӺnອoJ} +̶y^^fMىn؛gNд$+*қR_ɦl0i#lj.q}KZ)$;"pT@X Rbسn.dOa /@VcЕ/D)f@yؠ䞝 "?vr G6eF |P` Ϋ{g@0]Z'7]?mZ9G3 @4YnFg*g5 4Ivõ]:eЗe> +$psܒNXѾ_bߘ(b²VPO1J@3RD4o +:NjPASmJx>;cDybCA4'x(ZU><}494BCXR7;*iaRh@Ec2,sbʎYY|КA<'#Kpof2TNU|TƢQRPBo=l<,_s=i48'ܲLhyZ4^%C5-a< )ݢ>˦'gslY+ĘTz:>;pCU5v-1ÿZA@#Šeqal @SO929ht&YHOfxtffhЫF?zn֠]`t wO3=8f4KVdYu<|>y:WM "ǀ>PFZ4g] {S 'QVޖ3de-;#8NA͂4Z iz˿BXsFލt~^=>&ef9huT;7~-~:=a++[ZPf4ͅ0^xO*#+B 62 7^]1`^`OlޙiŬI 4$q Gyi`-Z :Ph]1W @?#pNL,28cV9tƁd9) v7g?LjT1JrOtO]p(kYq'] 99J{ +}?j3J󣸫Fur4)F9qvR.#(w8HDm}}4_ҟtϓ(*k|VM'9.+A7DGW^(Ko$u݉L tOh~S :y!;,/t enUG2<eCd?x A)oxJX<5hnh1H&7Ξwr\bƑ@ZCW% graBF3d(ǒXdH`t`NȿqVۗt~Irb9'R9bKyx\g{YMmU`iq7:qGM:ɊT4Bl!*Y:f5D3k0{N6 1i"GƒC`ڴ΄ItW`cK1븹Q?f_0h:@7Kʻ^J?q-k:Hzt^3 } >S*޷ ^ae報f{ y^DGӁ"KK5qSks!`g֝zZIO6~9786j 3kPWft; Ȳ={ 1@36N]!n5Еd 4a.5O;Im"0O69®|Yk7BNu8oFrbm \/Z凎(01_ @cfFa.Wbzg%>xk4$ꦝLh(&>.A3VO-?` ߃2&Lzg/GT 2Xʆð9 h/uKK P<l9'WhU/!5A\`KYkhQivO$ djKűRxR/a<՝Y"Y"($>ڷ f󲋠1:Z{8Ol+S ƍn5H|2Hgfh4 `ȌL3!Q. +B,~$[":r8p~?o|mM(]$ :$lg0[#bMc@mjߌ}uWNsd 'ŧ{krn?˨6dM~Ƶiڡ$q 9<s^r<v 0]bXgh@=Ӂbh%u/,aU@'7R'T+A|%~V>"qijԋomppU Hz4dTfj !;,Y_νt٭'J 8;u<|%~?:cj]7o.+(< Ye]<|=Gx=Lod4cDw fm3p'E9UD,JEv-_UN;[Q^ffxB7:w2S@34$@9<h8D#; [@ @\ݻ}i^*V) +l(K( Ȥ P+o8GZ:_5 +Z+©o @ z(Y. +Uf% }XESe =R6UЉvLŁ s+SsK8XV nJqa9;q@Bcϼ#|wBaB,3P"8hTXBnYL5QV;?2`rFA/Lo)nL; @ 7 жrkY8Edd:J%#)!ћHת勒m=3r20'=Г3Z!nl^^x*N*nO=+s`#݄ҽ^@0zMg%H 00{}zq;#F檤H M*t%0q`pniT9fUPJ$w;/;(?t>?d˴HwY\>nͤC2럘ۘz@t8Ͳ0,4SIJUl]m }~<6}.hV`]h`(ҙ@nQ=Dױ"E=t,G. X93)6иo\}{ ׿֭?{:~?cu{oJSmqGh|UKz@3@^A^k^eQ)K /`>BZҍ醙EZTOצ8; *%T+=ġBWf,#p0-mc܆lKݻO>LX><}<@+9"m7rP"8!"ˬhV2=TAGfuA+#鬔ɶ}aɈ6tYCC?:PJ<(@ݫ ˘^\4"7lsKqȋWrőyIChtyNBrBKVGdz;q@lm_;hCM*ۀFcޜ'zghNS4`C{a趂YM!QnX4 yWǍB—fR?"42ta {jCXq4)mc@lgקW@xGYٶ<,y-hhY>r}A! +Вvt+(R苁zg|ЪܙW!/ +͍O}tv#ŢuQڃ]1t({&vt-yZJa*-L<;ܧVLk<>|\OkJNQ;sY`$hΆaZѸ+S#\??o+q8 *ŏMSKdS.⡳N!ÂZq/yqH-\ n +QihCՎܩsDXZp%KC>qA!uc! Ah^]1FѺoIf? ?'2JL#ۜ:3tWX^P&Ns/F\kASh8B½LϣϠhoEh,x^s1rjteG3%nf'o4gmxRYZј8.C"ezTTƩ$[-VN;{Lf,/۟K:z6ܰBYց)G lj<-c*GXi،}ۗC nl*blvb1^ۦTFKfnPˀ `<ݖt8'{Ex VJeϊ#YP*~%02> +[6<,`6G9DH3ˉP^a%'e@2m'6(kH^+]tȆ:3E’Otc|apʣHT/{tĨ4  d7 h9=4ze6>X4'M>QR'y7_]b 0}ԁJ+H<}x,Oپ9_]yڍ^  CHCA)ƟZ6*:tܵ3$L)g \j}6kx۪蚠.дep<ÑB.5S0:PFT A6&w4#|DZ&Ӳ/';J{7+BE{{sc;e#eHl 6TΈJ;>KI8>-LsxH㢬PxN6C ISu(\B$;@QZI58UօZz()C+;YHg'JZiju `2gݚl̍dv) =Ʌxvy2gbCхO2>dƾ(]aة0G68f8, in52ԔsC56TE"%>>vfL"Ct 0MĒ&PrUZ jqp9hg|89_6̤~Pc*ue <X0D3O̚Dfv" .p +f + 8Wj=CPXk|<ă/j멗~=d +?<78;n]GV@8Ct q~ta޳FThhh٭6L^6!!,KV;ri&WL)4I +MSకǥ4"HH\þ?+ 66E8zSuGbgV65yxzh,{V"41+&2ֶO\C )quдV~4%Unkomţ;h79|znk͚iYA.F`͙@sP= p yOhΗh(~0'yʑc>Qˏ8KYWtOeCTTj%茣<_$$hh{Vb<LoZnAIm$](KL5ׇQ'9@!zvqNlE϶h욮V਀:7 j>I֘[9%TMZ4E!A;}+(1ydґk۲M!6S{HKXOK zKU@6aq;/Q`m76h@WFMcNu.M @;B(?. 2}ozƣ92xs;Uo _[Y߮O/gm aTOZ,vqƢhT*βi @W.z;ߜ-S).p"ojOe\os!ve6ér}VY(+YHL\a@_NCڥػҕ'KS&wcPmJ) n1:l%׽(ƷE7grSZ4#С9:KG?O'ͤx!&j4!=nncd"LT>TIfFkB@JY +y0@?A$5ɖ:U h%&HY%Mtf d]6o|Z󽭋.]Dp>xdzoC)Nnd4kK+>I$h{~Up$},@u([6ѐDfև04(/@G\~]]f +V"wKhm:A";E9=ײ-iO,3y*&hF]7 ]Ƒ5 m֑!$0m%`/Xwsej\t{%A(i.\]Σ$;Q@J)sh[NS.8}‹M_D +6pJK@ m(I9gwӍy=U:ګ6 ņxt%?zޜox]\-ФKw$ {sEcFo=|1>fG5TM5>DTдDiڌ uܵv[wd8-2U%dSBZlď}BB\}_)y-\n?HA]!"HTh +9 6ua\O$ˣzզIEeغyQ@Go! +O @g;hw/Bitb6;8^'軙Z@˺5W} *Wm5Y}:%G;9?pb`8b-Jsmܤ`rH:@TG 2s|-=hnn).kӖ[ҵI~" kHK% WX_|4vN~# +3A5'0Xs4HN#dXEY@rm:mٝo+' x39%.' GƧiXmc&X{(H3`o@TCknt +՗l2ĕ|כ`K +0$V6 + g{gC/1Unz@W52c#HquEA1o:(d*8qs= 0_7^:{[owܘO09 M?hB{}=f4{uoSywrg8c*YȀNKydֈJ: (.=LÑP^{{I0NjB+VP6z@s e]3/ r;%GJ=]'Yyelƣ Q8әQ8䤄 h|=\ɜJLF4I&͑ Y6d֦FAJ\xshA:^ԾEƛpLWi-'iy1C:"a%2XJ/;kBJ>'F(`?u?w*u;VYИnZؑG\ܪ0Cg{> +{wއE$GAI T+vy' NJ@3BF n,' B i&xu6H^)2I/5S+!u +dr%*0)6FGyu#Me-|%8@C +h4L^>V5B6K5DMEin.x2]W@._= ^$l;0ʺ n;KԸ"v[im +įbY'%d5Kb2KxFYmR FTBՕƀzsqx\ @].RŴ݄>]M + \: 0#=F)e)4}2kA}w C.ct8kmhhc* ~mX&UόWƿsw{&{)<]z7dO m_'v9ys![[{Zsbʑɋy]/[mU0(" JaY m{=8:s*T+:*Ah$ҍy ٙ;ֹN_Xn) XyW&z)FOeNv!:M9+_:͛4^r^`BU8Lq gӫcZ5vBC-i-OK{֘%M4BT| +@w,1fLj bONuM/zJn l(ė +d=rRHI^l+sd?%;~c0~oD%Ʈ-&RfezQh\*S@x}|w^m"D f@Z)@#6YfuBj \*Vg2ۙ uS2`+];UhN;UVdI3MzAږ!\XmI019tksVAgvsMD"l:I΅d/=gn&Js50da}QeG -v' Ըj;śߣ|8փ>ID248?: e|. [8K )('.s8pT~gb$ɲgǚ[ݵtM/5=gZЈӂ4} 5"4!CЀ%}胔~(B!zDZr3=m{lqsȬ(d[fw޹7Ww9 cӃ"{Iy\vZ~M z}u똮N:DG0.I!n$K +W{NqTAGwi^/h Kc)B4 <]ezkȄ#הgãq+=Kvr T;}cYnΧofOj_ +>C;f{1@q?͑ۛHϳ\Aտnkwq9T~#>\V?1uDn".u3%|ȕTQG6̭d) + ȳ4% }zBԬcFO'ۛ3OIKyjJa7z+۾5r rX r7s;?p:Zdg @ fɒ&ZM `3hgB4ΦIq`M//,>;Rq4#iŗ=FbGƟj*MZZZhvtUZI-*zd 昽yYH^-=T+@cL^$&ά!ed.sDE)vD +@s&h3sM"ǨN˔ơ+yZ%#(v)J7(lB׎pp" + @__MpfX=#+|5Řa. tz0 sɪ8H30J.?Y˜e$s2,gN!D&=VnV׎.M4b?W'+$8PK }("A9.ϳYr)Z[t^>O`g4khRHpLDw;E4jk3q:bU&jf|.FRKeLT a=[2hxQg͕K \7Tm&a)͕]ϼpyi =+p_/͇?kZgDw Ĉm5 LBr"m/:j9g0ެ'!q;'>oƿ~<t"]e<}Ck ]LLƱa`4ގP"iۤc`dW#2i ש(HT)}b8˓ +̾屢9h 3%80jl `R2LH6zʍ\cdB@w `،@f4#9#;x-#%T=f@{7?^Ӎ*MՈjhtmBO2exV};)l[7"МڑhGקt$eČ;O`twɘPzKL^b +%8]m{^\¸n\v ZmRއB}OJi~1N+X&m +~PX6PAQyQ'7}. XT F<6Ȑ斣p9fSޘc )mxѹ-J<..Ac~Lp-OI^ F vlHsu"x 4>x^<0:ӫfkwoc2nOk7kbwŤ3@fom @{zA'GDm: V:-F8~Z/}?Oޔ&8C q!bYP5H[s ''sAP1ڱ-4R'6=Cyue*@ qYK66-fd=8PlܺH>AĹeϹ㳼Rs.G/FO_ j ُ(^?R"ՠH{#ayOji5KXT)RY)hYr8*7g6~dY[FT} ރ:0p@Sٞ k5ZmbƹڌyFɻ:>8{`RZK'ǒSt5UKxοݿqEd0&317ږ-!@3Aۈ`hIqf:(ā-)7aF7 Jރ[t@UgB>j!TSBy$;k챫-R,SQ_Tf5N%2KRF9)BXnBOzz' f'͡u9r)#uZf-5IVPeʳn + [\'no9pcb2;DɅCI?0zJ +Zv|] hfNEH U;fP~)|e\ @ l @+4H[&|cBiC7ޥ{qoyXuaE*Fvgrzs3yݨ<0<{& +˻Y('X_R[S:A4!6Yv(=P$M>e0fۥfO3-KlEa{ kS3CX!ĩ?^mz|gOf!/2AR|8E|i(b +yPȨzyj`"I@#\k ^h k#]x};ݽ>N,Mߝw-[89dTs5[~f(N8!}Eˌr\yv}z=YxaU6M#t-q=4w s[ @;brf8s'D,9DIw{Rlh"!U qgnLwkqn?q)R{Ј̹Ǧ?Wޘa)yx'R2ȡ}1ޱ. 4a]տG֍H<@Ş'Ԃd)K @{7\F < kZB&rd7C #;~9sDht?6W :àqv'SY6᫮d1@؃vF:d/W8l +y\nN#Q&|yE~0Kn%㕞@t'BSŬ~萠`h@5:\!̱4qg5YS.z^0eJ_ Cve//+Ђ1ȏ-1А1~7gÞjK$_ +_pgNR-0fbUZ0Hwj36%٨ z5R[IKǏ^$s)1GPJyDޓHz!fV&ܱeOw?>'iW;L$yy9;t@(?rT|췈jg3gؐcA& / Yȵ #FеAr0:,7lY-TM +!@ѫ(qiNhBFhG\|d >k HXI]FQM^5KqC!ƖX,)Д]¤_nF`/mMaٕ yhbMfJ.`k,-\*_}ߟ^<xnӲKF}#iD}h3{/F +A\=_ol%n7+Sͼv)V& ́&Q1Be &m. euEQ+ԾTdCG4 mho؍?\v^g˾ A_mlYQ{ҧw/4Lp3}hȓ 6? 2g 7hC`k.'AijF6G^͟Qt- ?L7WӨ {R\zsdV(ktiN#qd (=2՟uf7-ȍ we_T";, 26^Ơ.CkI^Ie|r_[qƖ@^%iL7qt9aih`LI`:)}6g @RP%MZtU>+2kuGK 74ˑ6*P>& 3MޏA"6R' ĽivwisD84Fc18@rC0eIh +ʳ@m8 Iu +̨+JO?l}-=ٌ*}e~iMcvC7u! pDe;E)L,Hjh펰,BՄͼUAƒ&鍤;j8N"V%n`S6mvҁk׹{gٯs߷_ˏ̞p0:7ih{bɎ-x>϶e[z/ߊ>w`Z2u$&4g!oO)_ ' ؈=12 +)KՎ@k, WmuM$k5 Jm~z(e1.}My6FiL?{'ɲJxtN2-G9 +h= KI?>'0eQTD_ߐKzǚf쓥{VH^S0j&*hR Ŭ4&(̊p|>Ѽfl91%н#tCh$AcAb|{hBQI\U=ǍMDӽLStg>hw"R,ad>/T8 qME>W1Y*ЈI@l1eUn&[e0h+FM A\\w^h?ʞ[~nyQ \.+z=y!=$N e'?zd3ō"+Ayp}ofskWx+zVʈ<ҟDsCӒ Vp(*t:wpqln07O+ǜ,:;pZ +'HvesJ++B%kG_^5 3ҫpTIAi,=3F nw"GZf&0]@gV%Txlg ˊQV{I514w]R6ɆA @#6KJLбd{%K oxB셇'"ʙ2>M09 2< /YSQ Imox;" <9 ę#-w/=5M^#]qFTd/! ݵ-\J&aمݯr!ضkkr FGTOІ~xQ dm* +TƮf> dh8pG- @Mw혊EQEsG5̞zwZD4GͦI 4ۼݲn[+J EX9'~;{bELE8,?jXӥPڥf')uR +kHz\ q,~)RhJd\:&HƼSx#M3'OdJ)*mJN^0<[퓞]VLcI1qG1Tu;48Wq@y*Ј@Y.=j*p6UeYLMEZ#ΦR +޴j-:Iɶ7tY#R~5o[-ZyaCVr${;㭽חwo++ݕOE ^AcaP S gP^!Gc_OzK ,¬օF8; >~Hdl)˛y"TaD~#3d{ZCŃ{m4Oe\THjCS<@; D`.zRa^h + ur~;p{i` C uSpϬg^M4tu_'=EqXD6[oR{\xWһћH>ˉO ~bz5Iy?tmanݾ 6u)"MgcR$(qg <S*hOʌtq'q&i EoTn h^zҁqPdYH$+!']ݍ=[ә}nGQ:GAzS<{_l̈ I @>>Z4@S$Zz&h5 ;6x9~TJ{@{lZ5ƭd^g*#F5,.2x +b!̋>0ݺP>ptFwٶH1/j%o/DUJ#h"Ԃ +xH}8wQ(\q2 nz" o +ē>h尕 }!~0{p%SnG؍Cq +]߷ aTD۫GobU7ބ5=lv?,toJ]y/ٶ/&|@d' '= TflN4c̿[v!gNw>OwV{epL~[E&X>'^"fBk6 +hmi4];e +&`1Y`ć=Q"@0fUu9#mȁXX?o/uKrvkQPJhf-Dzwt5ӭ&i_81ss k~~'' ,~a͂crSMD O!LJuEQ4F"d<3џͼ6 (}Qg. hfSwMSO2DvJvmb +ύϖ`=^Ut|,o!w \*ys:PNzoٝlVɩ~A7%GǻcGGg +n դx >I z!x&t.-SСo=tpkzYm&}x+ۏFܙ&ڠ&M㣄vn?~; +%/uNOާ߼4SSғ}"K\̱ +Х?5LE6*)Yzζ/cLۢ|NhA71hHٳ Z/Қ|(}$M3 ` mcME,LOkfU!5DCVdٚM,5@<6ZyEp]|Dzn糲L([$BSu< q-k*$рAЩ SA[NrIMf"45_y+DbS'/ 99պB*g2p53tlc +Ac::=/o۾OT8G` V(0Rm!CwYupǟ4E/S'&pG w d0jA tXOc& KGe.M+,H5ImNg)3BKx`ҥh{~lRͿ4'<8aGM7b۠+vBrxvt@IRpL^ꗙ#9ŠM).,YDM XO'葛1vFnjv8,=vsn2.la̻fɼΉj1\g-Զ`az̅I[5>J_DDR<8Gi=|h{[shMNv-;0=jAN/]!%k?7i}YHKKDMEڋ3:1jQ_}wY8|4gV!34Lg~ZgQ6t)k0DS9 +LT5~2:d?[/^ +<-rvRm6#+iWb"YlAx.?nO2i?>;@ ! G_~7RsdF7FqRDi:Mu^{ʑY/|8n+>=tS!HqQStn4.7vbZ|C&A-12&@h3h @[ +ଥ6Vg2g£/Z`X R,]R2<~0n,"ӑNwor9C`>{Cm'Oz|ӣ?Ǖ"TZzܭsYRGpM N-~wB\iдk:%b-6p>0kUTw@߾׎+ɪZR>߈㥎A>+;K? @caE1 e5CSB%=dI=朷~5PFiН`_jz|Ow <ž /#t='3^ǯK^YKT3''21/@_Gz+,TWm/8ɆgD$&c}Rp|*:@kx^ڝbMG4b:~= G?ICI4@q4}7:]W @k!ZI閫U|;rL@g1>Ϥ͠g?ȠKaBW8y-sSxE5Ь?L˪4˖3 +*92\(02y|ah@c{C40k&AvlJHx4($SCf8aṴ;ÖDkCyhx^<hMXLy㉸y;?] $:ɢv'靏FaYs"-f) @oMC/ǜr.}&}m_K=F $8V xZKIs ++3qNs;^|_($0 6 seO@CRM{#܁JEcJaJ&bkdڻ{-Ȅ/;e aP[gR<F3'ĵ$q{!!SOGu7:`]~iTЦTA58o[b+|W,lpu@tɋcS'q4(i5͍DiIiBsljTV+ W=쑔kS:5U}k?\գ'@VH/DGzzfQ;8ŎA06ܽt:{0vUZdPCWru:(vyL~1jyB'M2M3M:Ʋ̧lӔ!kMS̠<|J> p°w(Dyyv`"A&}?4 "!0xk|;[7e6q'pYq544}8łp(Dhh>Χer&D *:W3"XT;j`s;I'8GS+;ɶ, @"ZP$5)=ejD{q/(fS5t7KU/LٙGG5>{4ULI'pmaf'{IYGpEu~?p7FhE%EQm@A35:43|<.?t:6A~6vs?8; +~޽ɹQڋCGJI >\KSȦ h5,n%[ rǹXa;k 0e[p-w;ìHvEhJPMYS6Zsjc d7d ++VuaZЯsBp7k40<1aeLH{D2΍ #iv]9y~ UW=ٻ:YѱI{M4[QiL Q ID]ŀ:Aq6>yñ6hylBT0},HUJjL + cDh="pueQ-r_/G6-<ra515$+XЀGW+,ȥׂtym yfJ¹;_lE7]^~^E=`%!GGWr u +ThۛGhc\1Z`hhz?kĠJ>eҒe%o#)uBƐGC mDkXz4yiPnCVJd5Q5Y;KEA|Vr#{RكGȔM15Ǣuzz`#Y2 |80mNJ5MvcޠWtinH`WcD ^JchP12I=D݆} O.C\`TЮ.:E8,8kJB4bR5üOd50ta329>p :܄TBUMzmo'=/)md4 /{{fE.4u > ʰ^W!P85KæyjF&wp3\@Z ;Kf5^_ Ǚ {wҝggqN3wcAP o4F&D3)0NzxS==@<=&B" Tbo*@|v4mjO[둳nKL >ָKw~-MS:;2d7e5fk \U6tS<ۆ0*xh]lf ):Ish"DSff%S(4Ȝ p#{'8QU` !^0B3oNhM8ci_3hRehlOv{g oצ 4h̅OlPj@Ù#shWWghIwq:cV:!j L%| @<"Fh5-:=:Og8݃ݲ%ZAHgᅐ}A(>7}D$T0 *ߥ4l/^UvbKu[KxC0Mz_=>1_Έ@L +rF99!Ӕ:iUIN@R/$Hwu2}҂O%pQ6HSVvL{Op0,Q`!$ ifZh(xq\BTXrZ;&\)Oދ@\w!g=; Hz`7J]HF;@pVHϦ!MV=WQs6k̬d"7x3ׯ4H0e"w f((VN{EZѯ_vte>mO ݸ[| 1[gWZWL//mTm(˲A_L!o 6E<" : &'lз{f€QX%+kM]/hA@2d +n )Uf ZKwZ3t^z;wX+Kj~¾}YͲ `jh2hD +k6@%zqMi ΀o@XzZ)0Gz1@*>a*2WrԔ‚zE=ӥZIPu<(sd~BkR4U>#6hT0{|ݞo瞀 ~fò J& A gi< v*%O36b)kFk7hǎ;$iwFYdvWfFGp󎁞I{:7>0=:,EC0힖`%54 \bD@uL}& OHVQw =St;?;I؋ϧָgf_C!_ +BL(h؅0(=zrzIWR 숌'y8Ͼ›j<Ř;<4 ,#[8 bmn$Ay M~&0o۷r/ vF;s7L1 9pZ8=4$wЭ )^M\T9\uءL,  Y+H(I֝;c^7 +p%v4+@3HLqnrҵ)ePvC974\ɨ3POMA#3kw&(b@*"C?UcoKI`8yi<a"Ѧ9-R@y9<?.=ұQYA AiDX7zXTٞڊLnԺP6#qlw +?g7g$lFxVXh(D<3 9G"9 Fx78.ppsAN_XJc}wwYt6Ť*fĎJD`Ȏ/ ++8,[ )A4 @WTM1/r`ĬϙZE AI)LtdMѥЉS @2C h@3'-}9:=Dl)O-MT$ͼa5J+?r0 +?OH4/A3S3w~ ԹhtN9uHO p[Xg"p䌏R(5BUA<<-g=bOjȥh5UAh*+)qŃJ̍P~Φ!>D؂Xg-D llKI^-rK& PɀAVtib؞ޙ ZiE&uE6ßuu7ei'Z aa>|#A2T((_Ԫ Ph;az `>*W/7rhw~ySpUf$yrW,!jc^8_ IZ;08?T9c7897drkf K&8-|1H4Uzօ#*B6zZLLfx .S`0~hϲg`?p_GEqMŮ&0 +v"5ֹz5c~ 7˿6MMsbiqK\_a/p٦ާ]42 +w-kYyEfzS'V`8G9h MZ󣍐9?{i:gzXboLFP-%մ^n8.':}ɨ#LkdȢ4׳w!Twd{`>W +ۧ+s9t 8kV޿mgNh2'UoXw'WY z@:-6ha l7p( Pc@gҺ-?rà G'zz뵗W=&5ƾ }zE2]q_W-|Д ycqF?<ďQB<(M ybƬ'mӤ2 ΍ݞz˲<E99P%`N~D^pXݗy5{!,J8Wl_@Uڔg}EuƉoPRC}tTẗhD]S)s~ +#Mt^7 ͐ҸM˔m9PV0uS(+lOr +épDj]YYdVm\./ N8tb&mIb:5h)qn` +`,`M۩gnv>צjeuLI!2)FOX84*K mۧѥ`4WoCʳcFʟzN!9w`i6$^㨓_@ w?O&&](v,AHS'p'p: l8ʦ{0(v@cT2xCX4 @ E9p'U֋cJp;?9 Dx=?A"==y v3$*Tsy(s WF. zj(ƴOZ@lo5݀rK h/I>3ҚKJcfO:A|~g& +^ j3</⌏yvgQ} ٞ-ďŝ5%߶N.="B^?0ʇy 3 a6zdWXh21g^TI3<"T_n/@gd_x[&$Pv̦ sQ\v, t$Ԟ^G/~;|P3Fn,dGINjZpI6o7 *Fkk!J +"_Б `Jjt&kH:*lJ"4ZF)g +nxx4t3VzꢻPx5ɋvCDhO;+CWA.Xel9d)TX,,D=#g)QB m՜Y +jT ?2٦BWgd"b3RH }k䢑bxedgMqX@ +>P-ПZ~K.,^{ٖBv8{mt +k؊夬7Bۮ϶e~+|p%8t}k]1%o顀A=$nkE3j]QSlU&y 25s9-iGQXpe3|Ŭ +6L :332I|>p}MVrC,NI#rĸ9:vjBxac;?9 oWCW?[HmKvƦIރu,O`u'v O~7=[MAcA l=9Vl87{.YG'%D=1<ĩjOgSCuB +f>i71:$hm$/O ]W|PV @3[BQ"ms1*S(l}M(:K|g,𭺱S/l$0瓳_Θ(Uh2Ոk瀻gO'نCQ1(_8H.F Z <! O%עM@۷{'L 0eZvU]{M䎵hCǵ㏈jOq'6gn4*h0ޘ˰:O'WKő@<`G0wn7vh gf {cr"l~i z5-G +VNxۿ{^~;gG{aZã[:b3a큰\:W#u 4Mtt }WWd +`&x> f銒gRCcP$ԣl%b:ZzČVEsѳYɫޚY8 gςia f来2mV;BXhg F~tV&c{Xp944 +݅" /Gw&@&hȜ!i,ildoȮF"3 w Mi1;OFьQ 6[be6w8+c"7{  }Jk]~F0 9ۇ{q4EBvSt_q=Z; zÿhJ4m!=轀;>,nmف}h`RZ%Cv3ӦDu)rpȦڋ' *$9+FTY }Iyc]dk/YlP3d@d3(qU8Ǜg6$K otqG|zhv0*^8z* +Du;$p%hU9:[P29Τ=LY@Gf`X@ț ^bYN(@PXXQ; Aqe-XtQ*lzمh.@7.@t*̈́\kBFhә]<'Z~5F[["n0]+ğ ,}ݲ"-tH4y~]'Mo®M'1( +t?uJk :9{qt{P ZD-kgفq=9#=0C>~n\VwaCdܸ1]Yi4vB੢Ե,d<' hM3ݵ_dNfI1 y#0FZ1Q x7ф&&@;rc @7zڝfvc*A6 P庂Ri:!\-y: fm@aSgp3hH7b]~~=߽oncЇ BA4_ +D͈>jk&_7{'Og ⳓusI^kLDʎ7 F$y޺7N4"_ b ]>c&w~ o nT; +z!Ԇ>4z]W  ;Ɵ"іy84hM_oWn ܡ@ru K_ގ,g%@3=%Th @A\ %Ù b?#PK2͞ђ{00=Jf(GdYכټpx{u}so3lN-^ +=<^-j g^oG/F !49CSsqļٛjDs[eh2jTЋǴ0|ɹɎQf@O(@3nL uՠZ>ĕ%Τ9:J)q*܋! p \}(%USV\V=cwLŻ\"EKB^ ٶtVp`=JIh9+8`K(C{0#^p-1[63U+6_:Mu=}TIP['t +V :IhҾ_ȹF5X B;x.taR'󪑆ӉtH<׾>w|Jq 378h3oO)fCiWWTJX$kʦcݏFP;Ԃжg,cWR + }ID퇣]IB*h`hRP4PGF&jFKf.g@(4mk7CJjRaP:]!udƥ5C'-w1eD-of ȣkfCs.("ۣh.h'aQB2i;4qÜPsxXoWŹ^8+~diNB: ۪N}l!r<$Q}' 3A=SXB\,m{bĺ]Gm_=00I2MZkmxP^1|1xjL^:7ѐ1tҤ]^#F\QP$> Pr7ޚ/5F!+w[7./F'8zG4 f)PvCWCfև-DMGOT !2{2ka/,f&/uo FR9l KvZ!` @ӡW[qXd7'S @S +ŌH)gQS\9f.oL?7@hgP@c>fFЬ{N3Y> !] +]1SPaD'hUOrGrGHbN2'r K^Y/pvtpx֚uŏKüG {,[sfV7Jz墦al/6VLl{'9W(Y|D`Wv3]9Ntհ/A6x??iM;Mۇ{>4E>/ rZKcu3άxYvCWQ`CiʡH!{9UB7R~$<{~},F7ʉۜXFNC1nLϷXp9dJ8F<0 o*W&K+H3DNBQ89$J5,I{rgx͵_cf6,xYhZ||6 ;1 |!y1!m9::%EQHkiUͼjOiPZ@w'YEpl{PLh9w T=ۛz{L`#x5~jQjhpt4m`={StP&h1k֤By.^o>5%<TxERC&ד"ȳNchJsn|2.ц.?ƵiA +^8ՠǙ0?rpW3 @%|osy|q|sT֐1 F(w/H,//ft%M m0%= `wr-^_Նn"DJwݼtc7y iɅمtN4Ig$oGCoCzb/ly=>V5W=΃eMmL +//c7&{omzJm&)$՚{=l| ,VH> AO/0F?Z5 Y(` (ܚ6*]T4W{L&uc6AW89}18 =wUƃ<I&[{7zo(y=/1q¿6 /n8*-j9JgUYۦr9 @:`\;(o://&ҥ P ~ȡAݏ‹eXYUa_)t'7ҧ85f}]skͲ}4Ь!v5QRεlƭ=Md@I>93 žVhjUwygTbvc?9p()ͺB#ó/puzH'n(>jvfa)VM&MZR)St[vr|7[Yqrnϙ8qtwW @ۅ}a@wUZB(܀эN~{"-kMk3%( obc?a@APp@$V+(`6O7L`L*e%DEaey(.CZ|>Fheji F 8~?7|| Ycy{}?reSe$5%r'#Y@ yDZL7\i/I=7Im µ)>΄OR7 +@97E5CUIlQ tK_ta}jq<2$4(%/2<24;#71f+@.MQv=YUgO/. @7071ii^Ё\gFj4LTדcDVbx 왦دܜ-d_8G_?lMV5$̪82ZCM4j((@ +tky1%1Oi^1 {wW03yOMeS >oPYa1<"X37X @R$m6U*t/L sruZϵ4iLS{4R CEծU'lZ7K_f6q$> ?M $zN9?`@q+ +ͪG v@}NJNp]hA= ѵ (er ܬG@zb-!w 9iJ\}wkȶW^ {zbIH?bM4J@kem]hbwj4y酈$hdQe~싼` ]ҩЀB(q(r@7rəl $&6ꐨMYbr1MJw&!)u(Z-JQͰE 6GTl8&t*@"zb)P iֻccLM5К$Aa#W衃}Pbf,9F7Й$՚æV;y\jeVЙvwVU'((FJ=W cnB[G0hp fՃѬ۳6éT4}44Y`jAǓ<]ڃMQ$(xFBЬ?餸,rMQ6txX,ѝv啻"XJZ< "/aJÞM5.=Y,Vc4VQ8)NjR$`uSqv5_)y+ISv^ {=qqm8(̠vKۡKR霋2nyyCg%:`ʹܛZՎ0j޿Nj]Em'iDn/#p@PVlR@Nn=s͖eOfߠ0,P\@ʋøm*~x@=P=ok/KbѸ?#vKeGZmn;؝'XvlC@>k/K] 9?RҞto3ӣ -늿*8HWhʾu64敦IbBMͼwHZ0W ծLq޽t~z.,H[BGӚ0ٳ?1WoMYٕ&/Ut[49)Qt~[\\ d+f|B~D0˩Ŵ|ƥ/ MQpǕ:нsH⬽6,95]p͎LSj@ę{Cֶ ?'oio @v92:( ܛ4#jiW ;xt,s0p7{"6!]Zx㻯v=?N 5bP&: )1ѓ0-8NepfoO/CUOf؎T{B@m JṢLjvmB{kf@\]_vXz쒛}yWrШG Ȉ4q&!A|oEE 1"w`D mDڌa֦P>&f{s5QBGh kkogG.~za>o Kfm-7:p +@/gPlb4h<@u!BStю@D( 1D6UY7>9]h02Yx] UF \bqڽ >Z~?[N>KKsHC)Ls Iځb*ڣYe$@ϲm v׉q<='J|〭ᮻka%,嘏Bz +uV#̝D +@۫z wBҦJngϓxг +t{ܡi[O/G6OKqg~4*şxE. j4L%˧2.8F ^xǏ(T8:‹oJ^05#3?I{A۝7U.XkO+ܙ0af^ ˞?+?8uadvi_$h^JV3Sѩ$#1:ׂÍ ߤ70uw[OАւ2'(%R}<2to Wf7$ +C5<jrd)+uCGCN#)-SץY{C-P8?eӗ])Q>'mж%y{6[ ؔd9,4wKӌPmhoG+is냬lo5蚶oEO=|%U7kUCp+Rw JXO<~"7KNer8|3~*!(x&_4 lkt`k_nR:t,_OؔI-tvd7t _)#hQ<elWy/;f&y?==Ћ5C7WQ:٤ѷ⧚<Υ߅o]A.a5?4wưKsml-$8{y4u_kп>l&Ӽ.Y24 IulʩSIIu@ѥ'翁w"Fz94ƔmQIJ F` +M 343m +90 ^ٹؿ-O|6[ +{@|AS< {?n6Z,WmA>^nZ=A'zv81g1\Fc15Na&tN܍ܕvy۹בĜHWW7&A`ZZh]FÛk(ajp +mK(Ty!ˤ[퇣0Z\.-GÝcAd}v_h-hܐbPeͺk50+` ~ +\*dy8۳|J)vqF|[Mks@ ^X2mA3Pgi3oZm)U{PǓ櫨#LJ.nEq}do%wq{z^g5#33]h\&N+A~4`?J I6£yH8 <)s#h7p<1PJ)_߈ }1|uq_FmNG%3UQdG +^ǷlΆ)eܓbUukM ЅÎ] &3@M{ =IrmABLӵvs0(+'X{ƣcy ʸڪhEvx#>mP1;gnOҴuz-(G &tnIlYaϲ+sߏSLpd_ 6Sif2y␭`;F~:\&B`eTs=*,kykTl^׈?tUmK(HhJ +C- ቦۺc22_dIq0U42;G4Bf}AzU5qZZ;q0xehYs Ȧ5蘡E.=+@CS N @S2paC6@C+B 5{^xGm:uIHWm荲n6OYR¢#? |77-moLupTPe.}S'@f=d=_& *vߝ B*|9%u.l eU^8XlRhC#)0VsC}0zο:XzxUFM@6L,97C936Z2N()zۦbJ 30[~ayf̴ +j*ߚ}5s=T8̺/[=4[Kt|OBkKŴΰO=8Ptv7( a5B >#v<ۃ9DL@C#MWժaЭ^=4]če5F$s{AR@{Q +Z<'yz(s6_9FF00V8hZ1=B+κ:ʇǜ9ip!c, MeV _ >m˻U, ޭxVw oɩi  q@-L+!V{ =3EMyWw nx:U &pi"c{qcF*"P{ a9'(J*Z6 kҗT܎#bxN1.B{Z&iB3'" d+FZ5hq8|#@F{Bi`qLo"Te}vBQyUSLOBj\~RK]Y&8EYƐ&x\U)лZlKz 5B9D ?Ih7WS] 7,r j4+@s-(* +hlh=V/> 3I9hP̝,M +Y}>iK{-EXj9 ћ+17A/6H܋n,"'X{o HڴhRon^$!Fտ2uf; +yAL&&ZBщ;ٷWɥ=eJ)ίTٰA-9Ru  dMΕ-tWS +m\2;KuB-gcHY }RK@F.Yff|45g;{a2VjhL4!2ЬOH26*5 Fci՚A{LMԒi OTi2vOg$6w> !YN;ݻ 2hM +D/}CE)MrbwdT OaQz߭qJ/Ag/<;o:om@|fεU\?tWV.]3v0~6?b~ 2&hK +4uBZG.hmeGX/S5ky9,LO Y9r!QwEpz]i]Q[4L?)VȑYlIg:^}g#\C⽎gY[_˶'u)$M6Fbz15S'aFt|ʚYv"h\.!0G#ϻIͽy<(k;}m-d +y,#DQ6&[xIl0<-'72.o/Lj S:( 5;3TȵmLAaȋDo +j2j#>h+g}b6eEdy*&WnCaeU6uH=(ى%/,͔79i}OuM^8^?cWxp+"`"H3RDrHJvCD1i#d@?yf^\~.x!($Xp8Rt&h3~[08s}X_ZeU`jbt6?1CwM2u(ӅF +,1 @O5S~)-R}VA*h@^j%,GWlf G:i&oOajޡ1y12дS/@c=3%6)~W@kḢ% Zt"30- =]uq^X?q +qcƧ#>dZT^T>*gΠ>'z ֵ!:>O.'`|f_X^0B{M4ɐ=G=b@_,R&M]D]xgYY{M.ND#JFu/.&*ov_]]UWn VNVv4 gKxfϑ+hͩ-@Q/qOa^4>qwt]񴇽IkVrٴe S<0LYa}rV6 iYrfiXUsTJW~Zt=^sc,AK4n #nkG)0۱|9.MdrV43>ʟ'ZEG_{G__DB)k_t v@Z-h@i^('h:o +P 5146$7r~%O=ka'U@@md g[7=ؕp7o2/&m:PB8#lC\[ݷP[0LG͖W DgW{F mlαpOϖ +a,%wdm) `WV[vɯFA!vժ{fF~S6还F# F}- +VO(",0h hfs8ȜD% VңOvaP k\>A L[a=iW:̈́9|i;v?K6듨q"|(Dc"t 7оBw,߃Y{ʟgh f{) +]{*8ͺ&Bw- e|~[oD]&h=ugrӲ!%Ҷ ~}Q u5HXLJeI\ya/^RN0ۋ&')ܔdaɑ,ε)G-8[<-F 0kO/f'㦲qz4| sR@1rii\]GR\{0rWЄR:j_C̬<($gq+="{]Ay\p!?h{:&Wx(3 Shl}s2Ꭸ,JygQKy@pQM+4΃bfh@gh#v{x$@g +Ml2'{lw h$ QiFH]rS.HkN;'ڑZj vF;u+hn~ B +N@f֏f + hh#L1Y|1P6W)[t2W+mCR)tϤ?, t)$Xi>7Krt0mЋy,Wh!bڨݳ"m P3N-mBzXNaIվqz8soC?RQkhriwYrJA 9'O{"h;ubЇ&i,1o6#  Ww@ -W## +hUkM8 F bQdVrF7;Wzq`?󬔵R%k8+Й}*|]>hW8N@h=!Nh[kvK sJ dh@l +exRkh8MZJ{ӪwhIla#<1\:GdLV{MJdVzǹg-dh(yunDV mƎIpNwɉ~D :V +-NMlWԴ;q`+n'&3WI G:~o%מaH?\u+R~@k%2B"_q^xwU`ݦ+/^չ Ů0(tUt5~!Rzb)$^rh%/#~m,=xMV6# 7_^HJ.!ح9A̝( +SoB g :@Ш: Р⌙0MvvCwCqeΦ:fFUǠ=oh<q"yїGDjp +Sy3ɕ{ZЈZz 745BT߀66eM^EAl۲g*7Qw@Հ_)KW=pE b{_fa_)QuN !L f~^1틎ʌ2X$Q`I)tbM6"e~/Kߖ+I,H$mVAlmލ]x݉G+8@9#mN+xDd7eWAB^uXt'XV0="h#٨ +ڣÔ|4nkaw "Fq~b0 f855bsHl +Rm_eI2h2v~z->^uYQ(549skϴJ$3 w??L|MYϫ7HLLs ,!?} 3<=4oZ p|XKms,vٹ{y hu쇥y,~Kw}5XG+yOՔYϐS>|Itmf^0x @61|20vAFزmp7l5F@ۍ&mH⃽6%@OZ'y>I`/ޗFg;/f'7 X//j=QvFtz;Ǿ` d:UUׅh/b~恺:NÓKp܏mȲ^kƻZ40? 9i؃'tByHB[MAܾ.4.0ڧ%CYyo1vR@PDfF`q}=FyuvЅ̵; 1 YX%Mތ0`Bf-.j"fq@pf$j!"@joM1G}Ig + ;!f_d=g\ꝢLU%IvDƤ3Z5)U>jojC{hВ䞎؍Z͠)knD]&LdItcV䬊D8361b aLܓ\Sӱު 8)̻2H{// wF_o,^E^4@'W운odF(Azn +][==3uyETyociEf|&(!(˪u0..BdhN7?)@&l֛XWkfᨼB%3JI5q62MDzIBf-qb!Xlxa3< d ylK@)%Ҕ:/kgz̋vasf4Z1Sz*W"''el|֦BAG`mK7@'% +;S'o48f<ޢT4U\'85puܰ@c'80tF^XnJ(9fe&W㠰~1sq@~I햮v{jKxs^#|3~~9.כF'ӽ/K0CgOЁݾ{vnXJF&i T,z^o_+IiMCfuQ!]@q Ȼ&tH䎰Kj1J9y%fޑO_Wj\p/t}Z)pSSˆ^ +VK%q?4:bL.@|~e9ÃG/KxbM`; +^@<8S=oaɟzL-7g(tpwLߩgl}BIajt rHuYI`χvk2Ϭ>Ac +f]@o?:‘>t0S{Gm#Ƶ" N/<4Om0f]2xJ<Zɋw'Op۷þi%_x yER3zh+[qo>C.1a c [! +pu7/犼Lhlh;oώ OA$M^#>]VSItAf?[CMT +3ZVzs& K#;>kj(_`/4~2;L״0vNZ =SK )ӧ 8Ͱy&9a*5F˶!3|Ќb[zЉJmB )tZtv98D("$kƨH$hMM1i0;2^lR-(N!傳MT6$6$N ;6^5N !K4MjJ8;f'7@i/&䏗ڋî`W $7Vm'qr*lx$J/<`FZn.Vy1Ѻ!p p 8nRg@k Joba KB8DB/S{4~$\SxKEk[6g<̷f naRPa~Iv?daV< T<:/:(iI#2>? p(4kb$ JB^ +cc.c&r+}\\>̃=~is?]g}/~p3**604vc▝ԆMWݖu +jOj!6qS_?UYٔ[,Mih۾2 kGgS +?^ x\|G͕N8NԌfsU]H'؊))&GU`^^XNJ_`~.ԯa޼\=!wɰn8@Z,/RLQf`GZī ÛO/x5tH[靠ޜګ{18‡HA/9qe aGna#A`:q]÷IP@a-@AZpkڝ,tM7AZ\&4YR9 dE8`JZA6k؟o@Axt`Gԩ+B~4^$ S~LiWrAt[1\,n +kZYSS#/հ%'y +$zExMA#Ge"X[mni:x0ϚuǞv-^Wo:;y#"zvi'HE'6FIaۓދ<@gٕpgU {GNk\iKP[n4zCJ0bg^ZO~(o؇o>.a)܋pr-.Yoy{hZXpROZ}d=Q3 'rc})3^ Z8Ȥ_Q oJw\@u)ͤ@PbM5!z/~|17K,U) (^8~wkv $,!&!Smb B(5@71pre$!bɠh`ee_Lv:GW?)=4mnX |%\O4v W5ǒނ?i#d+%t54vp]C+J.Iς.}zn{/FhN[gYvT-mIWsBm.A+ Sc4F GCi@LKё +2tՆ]IZia ̥.B\32@4·8&z^ܞ^x0=כ7ѣ-Pxag@{Gdj)2l: kُ&Źpؽy@V%BM/qc?K2J.=9( ]<*6r0i"hn+B\J}_|!ب&fP\ -L$[@l u\ 2ȴo-A"^( V-{[@ӓȇT>(lsXxdkrIe?z36057p6iX5>\{鷮_21Mhj]P-_.94>5)4h噘er}T\δ6e`<\X|c&9 D#Cs]q@/ VP%gϣ ߉|O/3{(WOÃ&>>hO,BwPF{~a[ wҶtM\+5oޯn:z:<%Zs-o|?ٌnU=Y#7%L + +oA+\ :.쿿0ۏ*?bE?3&Jqr<a{K]悋x KB319Bs#6ǣ&8u~%'|g7(>0@s8>wN;_!/'EB%wdײR +0Z_eGm>Y]Fo[*)7j!e%4A[,i;hlm؎/WQәQyZ L.~Z  =o?Zn?>Ȩ[@sScg B8k,xyr?o࣓9n*m3jN'nysZ@Bo/uMLJ  Sǔsp=~=hyr"&{eΔO\4J1X0'%@)r/.^}ez&wh. 7Y?PDǒgHMUڪ{&ѣ#cA +xJ%^)]PySCdFr.2d̸}q9ʺ{ +& 8<+p|GՍfI߈<[i?[._Ёݾ?`|  ^%4h PF㮄E {dbWݵ~tS8#ʨ(DMkz+MBUutBXmI>Y7 U[ٗ:I@N"W{r<82B?Y%Z4^a#/{0 _kMΟLm*Ok%l-׬MǏTV766s!Zr^d 3®RA 1(&7D$Iv$:v\|h S( { yLgR2eMK 9psYg vE9RUsKx5#Vɶ/>6v]kdlb°ZK O1$0}%`'8r[Ɣb8a{m}qw>#on)EhObW>覢zƻRz*d0A/ivbm{ ^o/g#񟓛9jm dtzaJ`%$["KH7'MJEJ(gb@ƍBîD6ýx6O+Le*0MC2XZDZl@<^זٯʤ,8l|1P9Ej8W3γKpaڲGA~ ʜy7HfJ=gjU5>@q}ޛ{j0 Sɷd^ܖj 4!D9 &^U '2ntjycnN tAyCià9-|`2PTlۑɘa\ +|P> WV4B#T('M9KГXrG!@vI(9-Z R8镸-Oy,{"9ɳb)T}2eʼ =mۢ;z8h\׽\?.L)gO4^fzahջgwM8u`Z錣r!:ksbL9F;9\p 3/zw#SJAy)%S +mЦD?5kgr硉w_lC@k{ ৫T F gmyt5HkF51T35F9^Sqt\|TIRg2+Wfܞ4vMlkկkjәʲ,9ٗ4(ku;Y.rZ.Ͻ^um~+20b#d4s +1dz>]QFa],r ڇ_1} #4GעA58M`戆%r z(HʾvK3,(Ldk:N`'=WÍS87:{ʸ GWm% 5p*. h27l5Tjü ͭ &M@0o 5mMaEE_dϒۓ[pr 3f/:@L6g,xHA@Uy-7lI?0G+L@abj*dr2(RF%Z\v@j=snN!}[/Ga+bI4~J 5.[E"R܍cAk 3U8<k_DǗ 'V%B- ђXc͆!N.њ&Evb{]{?:)eT޻uzWEpER *ӓU]Dv Y&oEO _؏nЮ",KfCV!'Z+\O$vz:8v +4[@E `zh  6L'X-D. .&$ +q)=ƚ kjIh9;RNWi<ۥ|Ct#;Wo²_u?ü!Q5Q%'vqK.ty g[.w'm+_Q|پ`g(=ohGs-a@TčZmȿ@{[` p!vq/?~MXRJ ZisR3g2T1PϪSa.9^6vF7d4P@^9{^l5uVѧ?(G .9n|i +K=Wvmb'ʈ٪ES %{$?mɴ~}.tãD~#z `-XN/@'#3^KiFh:lxe5\n<7@0l]Dؖ?dզg9Q.!Zo V)_bh/  c}7j\,0aht\B%$F!TjR>0XaퟎoVsl%; 7 g m8!jX]X>T@뛺 L3VRډKrrEF|4:͆Ҍ*<ύ3<{ha03~m'&fF'cŹ8HyPtBX+s 'E/#/=sĔݞ4Cl=qe234Z \ӴH9*)\[fƿz^:hQjh[qz*Hs׸A13W|=Qkmn +)[!0n1>(4$ڞМ$8[zʟq/r%Me<FN'Xcfzxb\ȂjaKZsR>%;@?z]h*[Z^ftJagM)R6t=M0@<Ӟ7vr-xEy\z}C3:k8dqO/9۝zǽt~ǾN->9;QOh,-Fyz%\n@:ǜl<:4y7y̍_um`VP(!ڒ<{w,>f~ѧDɬv[x<)98QF ەKmNWS#4f%7V pt63jGxѓ~}A}!^t'2+#3(Ad|hfm!  8AEvNޘ*m@ApfP?^ i{jҠõzj>mѝwXӾx>.}_Ơ +ڠؖ:⏡)[>#l:s⮓SW#^]Hz @ߦu{NJ6 Xڸ|'*'|DXa8\;!@4k A(Lqr n´HMc2 +r;k8>{٧ʒeʪϗ|4Jq72;G=<*Ξҋ#s +rS#_鳡B3"h:Xח=A0?Ahv7wǽ1̺Ϝ j4NJ#T>k0ugJ"ͣզ*.CE#yPGȡ)-P '>M.)c.9׎`-:%Q,{zCg:\Lq}׸um)Z"mt%[A(ͱGͼ@c[*Z?@-յйKQǍix*iqRV#$$mpgU͗}{[@C<-UO WM#& Te ;ytd03^~Me\z{fVeji9`<,JӞ + 8V?e&n\YvH\%:0g!=]e84%MѯseYn~%>Y4b6u=x.{aOt-[{Uĝdz=mn'N gw +qsvba\zk2Kl"˜x tuZg7FBkk2sPv!XzFS<>]sPλǵ4F+VC|F2|L6lb@+H0}FBSV#dC}܊ǃB7) &S9\8lob#AmLVVv]0+\-q ߌ\ G$ߨڐQbI;oIE M!:3wuZH|`W u9ORT0FyvJCU_HVz(DZVC% m(umUÞXY̸ĝkl{fJ S%tEq?2qW.;B}Pfh 81qyaw+|ZV׫@h @I(5LB4-2e>jk蚵@N~@/׳!z&a?饑Jj_>>9cAyz*|`Yr=EG ռE?#P5kjb_; R,F2%6;*? 'ؔ_N@k\ }[k)+2ȁhޚ(?yaA$t[^\`=_ʑ=כJzӌV~(Ze{L9.Qt'['yGPnj6KpUwEW$bPMi :=S8s=xEc^fZ^ʝ)oj v@FbokktK薓g|R@W@<.ɕoh=Zمh35f13L6ڃѫA4lo![T63h(d*)j_ۯy%~g1܎KHC~`U7sGUa$7{'x̝ gXc!~E.Iߗ"^d&Vce=ǩߓ3ب*{X}3~ .3O`KQвTr)%k*rO.2~{zaP7xMo+=2 ɪw(P@UV} +|xZÞ- K)s_$@㧶Gu?[@cE Kt=x#z+g$u-XoOC)+ +/ڦFϔ6ךoxǰSkؽ}]Yplx) NM)$6;Ѥ'2i&RP7jLy\]Ȋ[W1FԎQݦLkJ1- HsQGDE5TQ#-sO]EW37M[ݳ֎Ne$y(2DZkE,dtvZٙHj.NE=ˋ+rDe 6ʻ++yzi yma.y ~;UzmK4 9-3Nz/jǰs0tf $4 chM&Uˆ#Y|iv7=D9d khxb.Ľ;ރM-D3=+tf1jfy$n3hmLa@<[C#_ |'j\!q; nRU!iQѦELo06L 7pR`4 .BaW( ء _-x#MIZỸ$ohtTyS؟:_V|nV5zz5xI4tt1f17kC}{qePeI(Mu8)&, ReT_4H0גto  Xo+ܡ1cbhlIhY_g,AI:OCobGPdб|10rJ(\aͣ: ֡PpL74@I.07O(rSP|[0yR0xj^#o|tb6vt4^I77x('%[$l {B0W6p7ajzǍ\ Ypf陃r}<:7eM% ZE7Yl0'~:Lѧ@U#}5f.MYp\>dz=g|hrmze R]xq!ѵzd7*4 .5Vךox%5T8*K {1bmP* 6L!o!]`h,_\n(r=Ҭ AJIzqЮ{ݻۥf g$Hj^~!cU06c8GU+d㡼j;D2l;6"t@FhX}>GeWwu'#u +RM.%熷'^UEA8@Rc /y7?nW޴I+|ĒKU(l[bwMFq$$IIffIG$hWjCUefDx{;yQոyz'sy8;|WKJu65x]^dh`>7>:i˪NYfVjlHc8{jC + q5$FRD4xAzpM:]2恅?/`bhz.6;dH 3Ssy^ Ap#3Ǖ{2( _j*j h7!a%7;!wNLrЍ4${ا}N]!կm4M7ƈftTfR!MtK2a`J(Ae5V %JQKm֓L=9aL&F5e`hBtVE;G

a_=Yh t~Nz~/\ L_m/4ԙ$ ؝pf j)!u*z.3 -B"kGf@Q3;='|ZÀ!=pZ%03A; ֶ@c` +Co|wм'`W4hX3 ˩v5Ѿlf%E1bq: Xe&HC?_y!wy\G(5ƫI6ٸo8Ml;|02 PEkQS%DOftvȨ`hr?km- 6-1zb>2rD#7XKUhv30_\ dh/| (ljd61k:g zmezd'nNjiQC7fgH^C#Pn(d񣕛џo>-RX:-rF&Ґ 'O@``EAǦ)"?OB8L"lT>X6-̮CsYSC8¶}%_2qT2 +djE:4l QX@m@3(M}{BdԪ\To˞a|r M rX3C > -2' !`ۃ#4Ml`/p)|=voqm+h Cy-Ix?mOBP-cfACc637@EI{# #PfB4Z=474D9<m>g{gEF eIЈi~e<@?8.Aiѐ."D=ye`GѲW̬m㱔I+26 6b=S ;b]^vS +&Y.igkRw,55>: 'D1v*]s5"M6 r<gԤxǃo6;._[( +hKf%wf}%FkDf{j9|iƢ4b<M?>il=_適с&4~= ͍yq: ++ciL:+̯> @Sf.J&Rm@qlO8c9l+Fz;9CiNxq|߽fgY1<4>L='5)+/ CzQ>)p1󢫞}fM*_ g`vuL}WӽU*T?Yvq%V9lqCdS0TdILuoϯ]Fw@ɕDѮ5Nג%N[gP6ۋ+vQw|\\?o +r`\| XOՇ=7҄;DJx@5ؓ!mxf403Ė^^64WUkĿ/f-aPQe3\.Q;Dumc],tHl?:Hd Ӣu'ri~¶dS8?)=v> lWkoj#9C\I,LӍi?1zz-tDY^x,uz![`oPD8F}bT VG4t!Z`~Hˣ@:<$=)܃J1uhCfl<굨jUX<DžO{ԟ( ߪw $iζXySKUbHXmG731gߟsFKQ^IN(fk3Jϑ 3Պ2 P<6m>iRdLS0C.zCS>5!c**ɫ @ϳ鴒L :gEZŁUN/6Y0FzF(ރ:;/#]*y(=e΀~w|B ȍjj4he$;O}ovwD-U0tݞ;zrXxNcJ<=)s)mɶe[͵NFhn\w hأdHV =HoϮǓ(Ė~5T <8 h#>L@&x`ަH\@4 11,M~0?-EQ$rF#܍7Z\7CeEv fSႴ#L=z3@4exbFiwP\Fo',gx9[ύ/5%.q=ۀk1bh]%7i:Z_>0{=h^=@F`-Pm:)RZqWlhyKIOKԑq쒭ܪ;0Ax%BAUxCrb hV"-.* wWh2hM%&< 47K3L9f(lh@Y?0C5B?$gԌB5lǿ4>_yr>Z N(#5mO_y1z~^,It(-h{ye-'^Ze)gI%@Z(ZF lɈQͲ+R)ӛ75T8 , `d}4}rvNUL@ӢŁUN:"y\3N!!&[iTaA2\2Qqϯ\kHVe G6e"cUkVDE,$aO&7BHRqNM@oHjubGiC]|&,y$-y]1] +7y>~!YaM_1'MNYf4㚚ā|T8b&`@4:zguehsbfKzhLV5"Ri__sOE'i]HG;L|ޱEt}; 7N |XxeA0?SИ3'cEYzGK@hϨI,{XM h#^/}GAз ywFʼX{kz>q]F9='~ +khʌ}]X}GÌǘfօ׉UuhVi{ L[?go(^s+Άf@/g9Cz==9gfM.#IeL,η p܉Td%kEUX%Àֆj:?;o=$MIǀӤ~mӖzH?L-Yˎ6w+{wlPk/f܀C-,<>* '(T1<ArAw.?"ZY\ T1?SCO*rL}v$OGcJO}Ҿk3"Ϩ觇~hGy/Zo+bZ#+Dw{ ;_%RO +PZ- UG‰P;~6MX]^7+ ~;|D'vOqG@iS/mdd'9'.Yj텞_ht1fwO*ܶk$Jسz-& n8S%]*&N"|iSr4 +@6HW{-pA)h}HA@Td\ x­ĎhIҶ(p0A*߫"P/FSQ BK4 ++82S 19S_jU5RQ17 +6*H1}mRk`2GbAh>R:ԶZ[ğST2ю=w۔LJLf=ζ] J2e4qS[$4V7 @c]I>q 4/ :["}ɀ')4'2Va5-f;ɳw z1u)n5@1{\+m +5.be2j_[[1iָ/ %fօS~K4Zhmg3ئNmYdk[-5v6 >] @_F:R1S%i@ԏxNs}ᘜ-YbaZ9AL+c_"$gպYM+$'hhC +j31Mze }|'B○k_SE)^ +"VcPɓ%1լ@&bZsݡZ( np?`@x{8Q'AP4XQ/<m];s$Vo@,+/Б +]B\4ɎFCԠOV#>v#Ao1@ʰiNz@ %OGArH>OjX}`6Ȭt'|>yQ7֗0Z9a :% KW愔 yRx+] /XQC8JL4bh9}ǪCհ?̙ 3+G+N˫>.o [03̠Z:h +Y-w>\ @bUP6^vGLȈl$kraA꺖:x?T(Kȉn$]*v@is&.FR}Hp~ͮ9"ܞu҄ efbF&4(lNk4Ex37 1u +) WFvQ+o11Vhȍ8f5'^.@Quǩ196&!C3i8l򸃟@8t?xqޕ|:{(aI̠ߍ>!٩'bw22 %g`  Fژn1hȃFsW}_upgm hy3=~{/΋[YۚK񚹱7ǓJ h5ojRmB(Yy`ǥN5 Q0ۃmjG.TyijK 4r[Uo-k #3iU[̼>jIn| +p̯\@4ZSJ]_(RteZ822=S>X^yC*?}4^wO='2ouanS!PngiKhͬ}ϯ*]fA 4d֔aFlk3r=5S кO C{ [{+/˅2=xGwp PZ^ւ+sR = +\/f??i+kx܀¶LfydYǞЙaZ?~QFDM"'ݥ@# w\-itľ4`^wX'2~\X\ `m0ԶC}ːS/A@U$hTG#X{ooCr sbZ  fi1 +Z!rHY~/L;Q50?)iSTuxj4 ԂBlxKW]ֵ "֣ט5׵{j&U2-k +hh֎E*-YMv\ 6DNL=!!XaTpdf|iOqX +1:i]ǔ5lm<o1 +lO h&F1_+)AίejDy7|{-EKm 2%a1ZdcI̦2YЃr`Hզ% y Ƭ 9 'bl'k{==T;uML6Xg9X+ %r*oп&L8ZF.d ncbʴyfnq!:ExU UvCD*DOhzrΠ-s]r|-E;51tI? F;l5a}vljN.+lIڵgO1h! 8'htE*X4Rb}usKs٦ {NҚlDaC~Y"_ e۠[rF"/!suDOV`$F͕E@8r\ E|;/$(^U4z`~{CAkj,oƁI@kCT@!R̋Gc#^? , 6{-RrocuZ֍u|bpίfMDϩ[уX2L +}$8q"o_ 4@3BҺ@GY3TC})>`(&S`E^/j븳os +jA:uy8k +H\otf~eZ ; 4>{IZts5rL;MLm&4x9u{yݓʰ]KHǾl+R @$}fgUY$ʉB*iKEtskD`4;f zw7F!zfȍ a kUX +y.C6v)_ApG; @ǜO0f:p""7a2] +럎>K_žKWݟ#1CsQZ 6YF t$ۺ8}u?Rкx U۱{š{;; IC Wh%~2*TW4^\DG˜.1IL5׊VQXHB#c댍C \ƢHFq ElO^R?n/o7~`ȩ6}Q!cAo."eLLg`[G QZQG$/z+S\I+ҟͲ +5Rߨ.%O=jgS˱AU}mpvI:j8{52aMR(}),ÛK7by f4<8|&W],64t.4sEͩKG㊐h}C QH~\<VmVٗ*X c=v W25tE<l巟'5t&V?׀T]Lc7p{c3`߱nԌ~B } !(] @ӇpP{b$D^߹'io|]£w6|#vZ Uo@#nē?|zdU=y/1' +G4@m+veЬ(>ȃqTAH7B0b+t D@F(YS,3&Ii +RaN5=Ykn_Hw.jTI{(\KY\w[#A8P;ibJM~gy6Q$@g\VsK58;'`1SZ)CJj!Hǵ&P})^%z[:>Yz(N0kFJ>~ Q6 -PlmjQ|##1= $RϮZX@6?Z&+5'kEȀS#55vMoРۃ rոIFAPx,>d DfwhԮ 6KCr-r҉pDZDuuE^];5Z~@ 8:V!Lh y >2|)فaXMZʌr\Celɠ9Z{Ja8/+CZ;(88:|aR? tf3||=\И!okK3N,i0ZfWUanL]V@iEş:lGWm8NΑ!-!蹤4N)`vvY -}zOb_!b>tݍC}-gSa?*] *HیV/^cK+^ߔwg^c|186~\^o%;xgdۦ|NhМ=t,Tx@Xޞkmc àFw` E{і蕎ϻ E7 ! ޾}6ZwH"ڜ,3t}d" g"## u +E9u:녡"}$fhKDSH@OcJ_Lhg }e7-C6l7o}sjqhkϺF~N'̬|-.م lWA:ț4rX vx=!d-a.޻:Ձpyye&CQߟ6ми@B ,KsSk3CT+lnvaILԋSw`)z\˪j_a?B@:2 MNy +a;VBJm#8;M Z+r tNބZ2yck]e\xkwL.!@lbB[z:FiO7$W3/懶* {nCZkJ{q&nj9V0wa<~D%9HnY;r!t,v'gfH? ;q?<hpTBǹ&?rqup6Uk} b qQ$ooz9tߖl#pn,V[l#K0b[^xev8} _B>1m <ĹwQ<x(E:B_^f!QpoIڨWRIo@x1B~:u"6D4δ"G\EP&Uw;"%]@%5>  ]wX^WhҊrd;庚 +(_1b?BA9x8xuU]>m]+m`J{ael,etɵxsZ8/B+B X)w)mF{wc( /UՍhIɩ)͗ǠѦrg-EF`=GqN]ltyI/xi=/gŊ1Ϸ~4|Rh7xa[_oٮP"sRU/vde?.^YN©CPrtVy>v ֍<ͲΡoj޲j`aGdjOdv~#Z{f>[킙PW' N}Y!n16fAQ*:B}V^}h^V9k3P%) TBS 2' +k!fܓCHXm `ϧw$h-6IZkHd3yP6.жy;y{YȵA|q81U +9z*qH섽\Z2O1opٙHHi6>>+#{D?M0r~^ΆmHEQܨ -tt:AY9Dޙz!X3AR6"PvWr+:eq::A ZjcV&=Z%.C ;c4/pbTy&Bm†s$J7Kce~ٕ= CnwTBֳ>0ѭtމhO*:9HD̀q7j{sm{ &""DIL]|( 2w% P+u}kĹm]Qtv.~[ <7Tb_h%CyմrA B$?_鳅D"(0%Vd['(5$0ꅖ0ޱ糛O>Db*7\Qgd4Kzҟ _׃dURa݉9G2\Ď+-4{lE,M5-ӥy$a~fr%3E=V?F^dp77Za +2o+yeT) D.P{@yF*QFAFg7 @9ڵc=d7?ܿ +_laR Y;{֚ɗzh,*{m7h$C"9rFpT/ݽ9Csrۉ1x<}h\u3bX.Y2eh[`%&$Je<ҽrq.Kn,Ѕ Gfvrie:8;=}6 y4.aҧtL , u#X XnYS͇C@9BlR +:='s6]fΈO5 57RV#.!]VL@pp!XJ[5,a؉i&<Ft6t,_\~tbݦ1͇xR%q"IlpRQ;Jy<{YmZ +1S}RУxt7\鯳7imjZD xN+*i[~]q;=pb;nfjߓ-.{Mz$Luͯ=\tbV4hv7A4d)NR/Srn|f% , +EfR1Vc=4qsd2'=IR\a0{åb&/D!Ӓ'+Ye&YK+X7܈ʼn7GcGfub&y )z'R,{?ݙ·uNwI".%}YЛБw-[!+?f>rqN)AQ~ P#/ @ ݴjG|ӿz^\T +lpL7EK|:dq`/k4ra'lb&9m'rzɡD)!=.A 4keƒ+h8x(Yk?VtJw~ɧyv N۴,ݦoqjgŀm_Q6n ^|OtaXkz%dI+B=7˗-ϋWmGOϼ?:ZhnRd%A|&K N喝L5ۙ:wWGh,ٵk[E-}ńN|_{R:=:>A :LGOa<*Q' +l 0ˣ?^DFx\ًm{v0lSh6h6h}:M{0/2!t-Ѕ_. Y_hwk{1XiOFo >YzVڮЅOϯ+!ckv>|st5F N_CNJ#҄QwQoێ8u@|YEE҅M>kt18Ɨ.̕tv*P!Dft6``>QcU@簑|6HQt¹Q<6 P2gI> y!B%  SATk6|JH&Z$'?)rN?>up$qɶx|Sf#'LVRN${}-u(3H'#N@Ssh!!"e@m| %#sO|x|P"~s @^O_^JyWkW@OmlN8Q0ЈЉn9?v|]g[ Ob:$iQKJ3h|2a_Hzp2\rHd4K$XWv(z4[xY\; +6}̳QyjoEqZ7gNhٮewAZӋ @SSHѶj}t +\u{宓Ԃз KBKzgOj"+]F5_inhNh$Z㒀@eqj&;C,{CmZB6 +ڮ=0dk\౹ZpFag6F@gW".7]oI Y|O&Zy'f9Fӗ%ފUCFntKж{a]qbf< 4D QKjܡ65A $jTmqvp~tSd ) Z<s}‹KXi/Qa$?e%DŚo1P- + +ԜSPpVp&S +HY)~dP!'RȺCvP4|/lh:E@adHݽ{n#:.zǏW.`'/ųw) bs`н @ϥ8W?}獀x{)Yb#; +Y@wfYQ-'3:AZƯ0$9bSqwYg]B?bռ"i2[Dʇʊp%IYOl +Qkܰk9jY3a[7*r8zN 4=hr@}oc -Y8 [s.g&yɵhFUb~kmqz#랻ŒHt3& e\4@CS!~% KzX0}NAm;GH6S{Yre \G"KnZ4inet *FwNE*N)E[r5r/@̜( 8$c-dĦ<$~U8v008Q"޴Hܰ} +ʇ=/v Gd OZhӧ,Ŗ pGi>jXC*.l[h< H@m` [#4/z#pEQqHu +h:Ѷлr#@xp=ɇ yUIs)$-^WMAcŌ&ךƻM)%]VZ86TM8x* d/YVy +`YO, G5B5>^Obp&3wpJV;P; +4E~X]sqR@pE>7+'+s9hPũ* N&}ۏwFW̮'a]9rp̄fa.K-<;6,ӘNȬ7qg>õ +Z +HR& + [TR4 +Zc@n ?1|ècseZ= HOzjkXc{k3H9Y[Eߌ'?~>q +NUŶ];^Ep ҂?_ܙ4:kHh=AA>LԞ4 +!8#Ѝ+Srct +$u)qC?>Z"k?0=Y-xgW|#vL\eb$m0[wJs#X tz$JROR@YDnG$jǶSnndjPIž=_7L˰ktXRVVI`On7'?H? Q5uf- $bkfG#Ac~öQFFFMX)6`1 l:nn*霆 ,m0Uw~ItG m{mVdg 4&4Ҭ;C%Y~+ck!I\ΰ?mJh ~ea@fd ӏO23/0zU2J;M~.pg ۉŽ =SUmݟ ̢(gd6xʥ7|zao:wM}b|wϪ] ZRN,p=96فlFր3_ )Ϧfj<-:@׍ $t!s5 +g + +02Ό<3.6eW@ghr@?2@KQOTtZ>zJK !Ȓ)dy\L3.FΗ(6 qd] s) d4h- ] }FeepYAÕ <[pe@_Ak!9D+&AcC?|}lc ،:p44{$8Oy%3ऒgo>:)q(g2}fe QVAFHO淎)RV# @SbL4kggYlwd?,nBhL5\zrgǿu#w7jq{1>LΌ6})DϕmURl$ QT8O(>)kyQ87<ۑjMj~Vpb9&[Wvztc *&+}4;Sa.izBCTmgzO5@?c>Z\y8/iloӐAX8r4E0'%/N.uOSY@3HFċL7B(Ɍ6JBGK}-Z[/b fm͂av/m95r]4X&P[a{7'ZKHp0mXKœ~#tlE*)\_={d;&SlyKuߔ2tqp9BizR2hO{x FLg Xr2} `Og`,Fkg<#v΀},j9Εe֪ Ñȸ8&Ȣm1 _L#'sɧ< a;TdVǩsK:37?}J]`-Lۋ9|dhĵND?qB=qO:o]cgg$ux nj¯G}r<~xRC@٦d4SxtF8 L&޺ ѺFL~uRu>\rY2nþYF wHx"/`@cO~ՑFyF gns?60kQfzP^=aaIP'X @L{oh,<J؜# qRXAY mR^Bڂރu`N,=&,7cGŀFIDEz^=Κ3nO 8qv]Z-I__e&oDE+ p^ z6bI1W!/DFo󋏞gB1w@FP7FHϯv,, Ya;{_ ȃшlc듮BJl_^w=Фݐ :,T0ʮP5x22W9m2Ǝ3_jn9h}tЁG=:29zTU&%ذ\g~dZIy&j 4dʯ Ea 49evX @ 3ԸVe*CvݩCJvX(9FUHc􅌨aH)pb +kKpT&fFXa$d0Y?<s bṯPeR@zXmFY=rƀ>t\rBH{؛C04o49Ȁ'8@96Db|6M>Bs8#(}2_ưOtݝ@pdӨ|RO@i\) PzYɞl}mvἆRC)vk%DuS~:?| z[U8(M{}kGň =BT @&1O@^I}XV5R;|#Eg:aNý{l\}c^vw華k;d!46Vz%#L4NTQ6Τ8lL #Eٍ>Y DHU;5ClH68'>C'-P8ȄQҐBE5σOԃd[Ɓ9=4Yt:*nG|ٱ8:&&ZuDAzcLLqDD,.@¬G (pfnA\L\յ;K^~#ii\ϲOlDOWg传 }& -D썾;| (Vb%ݍ&5,dHDݗz{JЉPm|#9~kP b?V:m`H շr* #_.j~J9AH\>vljs|r7/#:y>jA'(+5X.Ö+h$: zeƤE4';13 IR8c04O vt^߻ȎkZPwM3YcW1퐠>]C(D&)"`b6#+B4= ʳ^m/BѾja{O}6M@68/4d hZNIHɔy#ynMû"y;,O(4}4r'  +vGCg\_iTeeCy5fuq({gwr6 \:m`z=+H+ZT!hA1_ӦfNh7:U$oИ5= !Dk8m~H^Z8\w)x4r5N0mh—#LӰ[7KS@W٭M|'7| k֤饽/ :yN2m@l}%8Tmf b^IeBNz7gWbhm@ϯj k(}t,ϕJ?ye#-|SL;(T" `\ײ.\7bu.'ueY.:Bgy֪߲Xu'ϡ9FrܩRC`tW.Q}li#tr(ы|@׃NtLzF4oǒKkڬ1OH^A7C=c䱤ŏG~uNk +>, J76zZt^JPt1$l7r8|Pjp ^B @))IoZ@ѥ\uM1 @Cs$f[B}ISW.&u^PTi'fţ/mu=\N0, 9hԦMֲnzYѶf,3MK5M[S|}`~2UqrOEjiⵐִ'Scd|׆zFT:8OuuaJ>QWh`T;kRlCs[`qa2}72 $8k<?Եg1k6DZc÷wg1R T=C̝~LT]4^&5ζH.ֲ9]jJ*1hL[G՞X]`Ho}1mVn57i)|Gṑ]s_}oC~1eDVu9ciJS[zeP8i"juT]2Ͳ ;vhqJ1D}=]CBAÕITm?|r3-ީH4A D~LDŋ0{bf>YGj:Y4JI. =!J#DjUwKZk, t!rCJ ]%{RY'^@;AH5GfЕW Qipݣ}7yzkSaK2՜Mp@) tQ hn|'aBw~!qrT?_5>ta.=f<\FHPe[i\>0{kNT00ﲩ$Gp@ؐl -يV2"?A♎)A`|pqq 8RZ~ LֶW>qtUXe'k AЗ.QW:{R/ũ/Q-#M==>FtO&ݗDPg(XeFFȽPJspHkCɏ5<ͬ ^j=E+$\Xh[PW0oxx^^wXƲѶ:V?Qf U۷}>BN{ [xs> mwF,[l A7qN@McH +x/s)uܙRAFig tldcwvl,A$NM={@\ds iՑ$lsGjL/ͯlʾQմ^,F܅P_G&Wڮ"H_Le;FJ};ut+GM"$ pQܛި tD=/Q)K?} G,%BsCǤh aw|I@ .ܐu},4q5^v8ѬE;`a1@gT7<̮mmuxnK;FIuXƅ:0#}ΣuAXmAN5F)eO|fv!o1;Sҡ;RGW#D_;B?Axhr@JOW@XLgZjz +İy\:/G/ӏβ:#2:qlk'\gEȻR1諚Bg3xUUbȦ0uoFKDz$E\awec@Nv,V|Q^yRlџG$@>A,I>)+%nvx _-P`kNWXT'eQ?~P$ޛ9P@F|Cp#$Qgn_ Z}qOoϯIY/{vHM`}06TЍd:7ڬm:tc8BP\@gYc%uT0[N$Uu-Y ,8`@cGg5p@-79itv98բ=d_!X v'9z-ro@OfbhmI{hFQ .Ȩ5 +KQAg {)E?mPH?5G$7*`sop +}F8)uKAgl+cR ?ݪ 7ܠ3^+@m+Y#QvR+@4]9p]: βv 4-]the~] 42s&Tg2RBź2{7hN4`XD2i# yP'U2h#}&,i d3b +^ +G#h3@avÇT%b$q*~8z [YDo:hD"uYN8}ٵf""-YM'3C(tB未 +p&Vc ,yC߻O* 'J dy$^Ș8U%v&6o(hW}_)+;O37 +k8x,0Mñ/khl_I -']sVӳD̂@XxPURbߌqŌ*_8(k +2_@pCUʨPmgHtE)ZyY]uί(i wt=4>)lTg"ȚmIB{>E +_yǣrUѮyXcc;ظ@ .'.4w46CwIzeyuN 'u iCEhXd:00PcӚmT g/n]ytwlP[/Dlg$QL9DA+J.6jjq1!#^4, C 6fWkmb/ȑW1xRU^#ә /lk,Np{#u\o?]MQhI A6`DI>·A!p˲eQ$B"Z<;>[}1=3T ~OUNImrdǏ'z(0e{Z@e +?ī* a~(S6g%2>_9Hw.QCU0)U5.]~i^0Ab˸y~Pwqrҵe=y:L xƟM[Z~v9lWNB#pGfƃ5-ᶠ3cC*0BXݮB&RvMræpKS1Fg4aUO/SgA5w/צt֯NژXs{HiڏNYܮH`tGxw޸A6䀚95RsT4h 4k1h]=OZ)KQ/5 (_ʞ]BDI]0BJQ+i.%@,>WOym mL\:SYvF5F素NὋn>#?XеoƉmPa?^7ι7הXxfofe9ΤB٠z:m` +B (ObAfnNQ)f%횙/n'}ikdPnNf%OlYNCZԃb҇.t~HbHK@ں2;ߌkl'od%C3ѭc {h)S}k_0TJu`«n_KT{n&}w?6޳e)dOw{8&{Y"J@%SJ^$]KD ]wαQϤj5ӗ|U UIb=#0Q34lY JYRxk~p݊N܅2%NFR4=ah-A:36$8ȝB*MZ7B(Gv Rykd^wj-k@2X +2ujI%8v]v.ЩsWbdҫ-.bُ'I]$^uI P%ȣ[Dd'>` ]} GҔɰU VBHrRN>XoW|\I.t&3IqSqL +2TXkv$m +`z\P=;˿D^Rz.>l*!L.A$bМK/ is?束ɧ(>Bp4r#^HBPu&L +3Oְ2xBW[ժ`bE3ۿݩG :[FQA-Gț/z"Uhaʺγ?]5+ҏ8!x4et&Nzr_kO.{m6L<44*X%y 4Χc\>;z!iM/}ZZK) nVʞ(^xw|6h{>O0V75on`e.BiFNފ^c Pcڪ> #7NvS+ >oa>0'#tސ8NMl)IֈR {v'>mCA7G4 i1YS0CHlj@M²nέ* zĽ](6MceSBg.!I&xD[Hݱ0P%_,-.F'kFYry ?V8*q`&UTsZвBb p>`f6 խ)dtdOqFbf⢦icBDGa~Ƀ$J ^p] 1@p{i,Q^);oVrj Lf [8aÎ;.=,d(mڕ$K `&W^0̌NEc($afUM +GMM9XM6 +f,_ȶ΂f?NޮDV|Бӥ)ôZ-0YWl+0fY$z2GEZ7A%>jJɹ1+"nҰ[$yNjByHn׭M'9H!E hSf5]42JNMIB|v$8ԫ\)x)lnMZ6rSD/j#Ҭ @tڇfI%('/П,+&.7F4ً{ODoS|bkoSq 2r\=M jv +l^jPۏq^yݪ'FwsvS)Κjl(o]4EMdPgQfawȎ nO!8E9@v6Sg#aXãM]!:ȩsc'>`Pһ`TLJ{[nO0}i6=/T>ct&j +BGQ֔F{rWs~ܯt2O*R]sIZ@Xh:\mEgDJh “ Set:JSSMf3봐??:?n8Ed/iTw [ +~۳'[GW2M @B3#ɱz YQ67{`dsRU/b Q6ƹe ΖR +Ӵjj\6HsUrSә|o?m{į"Aޚoi̝,0W]"qz㥤h1r^ K ɭp|C֩ҟaޣ in;!IPգ{j;e25.=hjßo$~rO{OҦRTҢ13 L|Llr0P"@ @KZ@ :)q]CS: Mg[>OBtyF~jpm%=ċ^T Ŕ @<G6J ܔY[S ԺR&-: OG#x#3O-CZFh%w/~Rw1]D Cߌ&!o_۲BK .}$^wױ\&,$|#'Wڗݺ72l9?gE_ 2kmP2.6i<if5Fr齓SR#dd@j?jbf +_=<Lg+v8S +_7{eA4xuoGG7+3̞>uzQb.1樮Q֠-7S[ye-j M>W @qf4OH-]eU4P@?=)u?,RP„ ()D1"rTۧʔh*MO\9B'W]O4Ek j mK R-}=2kʅوE 2ZjXd&22?M9!f6ԟC4_w]۶@ϘOӻG`?}mҒF^K&¸>k0oۡ#jJL h2 mH/Sat$_Vmm>E*\)lƟicL7IEox?@t;T^N8C$uʪ摠 "k']Fw4ى#ԞESEd-X5h2l7p_2+by& +tfu['&PF +b򴠔.6.6<74gGu<\=InoS;\X;܏gZw# ҄Lg 4;΁9H/ +y2Rok_V:аϳCՂŮ貲:+YaU(SðS U+59,O֤}gc5xM}]ioZfg Y*fl֐\Az hW~sL&c8u3ecQ!.d}(tqTmW =j=XKWA 8?O\KQ +q+X6P=iU +y*ew|A+?7A(8 A07B;<7F03.x1DZp9]wujWpFlKdzc/Q| q0es2ь=idWR̦ċ 4 nl3c5~"ReF:_@!h7I9#A!קk!8 gx8jE1lӇ fR&3p D8I6+JPD(B1n(5$Z@/p3ޞh@AW:CvHtƩ5v___Ԧ#mZ]^y4E$צ;i?n<1qhg{l|m1SMk" &'4[4~(dRf]O ỾƗh-5?-1Җ#4=!s@'C;!< *x +f{&iu`Z@ >/Filter /FlateDecode /Height 469 /Subtype /Image /Width 1920 /Length 198709 >> +stream +x{%]wq_Fڅ)l=u њ  h ,1!d 5x%$KȋͮXlaGxgBfx1=F*tW?f+39{~'7Q+oޓ'O̬<)`VV;;;w܁C/v<(;Fj!AœbXվ3s] Xj_O-"j&1f_| {HIji|X޻WK_~/uVbsA,<5St H񥬥O,աj<5r(nzM4ӗs!b!"ia]HڗڻVmRPңMϪYVcC0j^[8ZX[|t009 +9h fޅƉ9JR+xɶ%p2yKS87/zD, + >ݾ}OyG]ԨX9RDcZiUv2?JX,k%)о$NbPC8ݗ|֗K, +3'j!MK : f=2wQ)[hB?uv@Th({jf-CNnh`bFlvWB`,z=!V;y[/3uӅ=}j3,S ,N̫-yH:H +Z3 ~Y*FJoccF*RD4kUu-,U)~+Bg?9"uo:|sy +@,@E: +4sfY&%0fy03L@瞎N>Fz 𲂪1^&;LA>P? -j݆IǮ{QGk^ r;vHY6Lcg댖! eNf#%'m!X["Z YJݮClyfXkEb ) O" 0nP<ư 5=#-Ld cP q`yAN4%`,)B22#}fV}Oװ:w@wk&( ^(*;a$MN v v:Z#XKbJ*bTٙbZmUv]u$FZFb3[(TPC@76(@1L̚ 2k +^!"TV <w: wS/13||>/X˚о,tRI(xWq +ᮬJ:`rLueJLXkC}$YŚFlfUG"Z YJݮ+*B5ZȐXPhjRiYfX,Xݻ3+%)tB[[g)[yߙ`@wE0ZnllpeBJRD4kUuiŖgbͧ~@)*Ϡ# +?n} 􅹍)M%=IKB4,/!'". #9-6CԸ0ϚڃEd%vQa f]캒e`N95&B7@ }< a8,gvlQ~}CJu:ŚGNx+c&kU)ڪ;-,rt&~yhh 2ht|7/ki̔r| ,0Ou!^f!wbnoDξX! , ġΎQ teWԿAq? +a;o3\:M3+;!ǖ9}a/,Vh>ShjRY`X,Uןo՟( MCO$yr$\;huD`^;;c98B{ӈ4s;]%&j# P9;'({Hv0]:^\r+<j]+ OȻtrj^` +$ bPMb,T[ [lq]C6;akP1ݪ\3fmaCH [NŚGѝNCWbZmUv]<~b婻w/\b$ Nkn0ZDTܕdd4o5H]c}qM^x}yY!};qsϾL\@}=뒏\ X9e~VO4.v!C-(J. k$ iIm7Vg3҃4gb| @5)1֑B@l4 X*VhʩRD4kUuJj![Y,UFg^V9Dh̶Zj9xH*TbbF3@&\F@|G-[IA]u + ɂ503h0/@yJp dlj,j!ЃjA70zIƏl]̀4v=V=%5]yNdDR,,ֵD]{kJa,>Ł:OYm3r2|@Eo鷕5[ߏSCVK"Z YJݮ dX, ut$]iZv Άzvje2oRfyUAA,>4/B٣p~ MhThX=346kn>VrZX,̕Y>5bZmUvbXoo=#!"^z@ AvH-MaCgwȌ00zdrtd.]2 3.@8$j87+.O5*"J]Oy$WMv֣=9Oh?8N7 5Ez#cVWZVG7%<¦ΨVnN P{WrW'/Š}ң=P9A ARA'ma)v;Y{Gb+4kuU)ڪ:bX{@C3tM"5|Y b[(4ZXPaLw'l$E`ҖucF~7P-6ELC4Аܔ$UbA4yd԰kfAT+f5ջӇ6[H+4إ!ZZso22纭=虻` {wN496ՐTX$q(rNPЁЎEhuύ  {h!CbʨRD4kUuO5,okxxhi͐:6ddp!H`4i3d.;ﳍP#sѷsoxҟ] RL)4.h +0ZO, X iٱg`LZ:iX: +I0yj6ؒZ#Gn aa#xj[$>'zj_xOtf؀L/ fCL|T/OmVbX̻ UOϹeShjR}v( Ab*"@ǦЂp nh|–`.VC²N 71 f66 4-w0€@4Lp$4-B[ڐqd4JL1g)C -pj eFU@~hg%f"ܰmbo]bcnf |=[{6 5=6RS3i ?$/#vxW:C® SkQMKFG˷M eF[3̉|X(X57[(X,V +ZrUh1f*uN,8&ZЭڜ <bLlhéA mz齢0NgXzA/miLXRHXpk+qYdbbJ  B"0ǖ;D(m qau|LȤL%0d\ +R Rdk(/uyodMj4c5uBJ-ЬVn*iyV_, +my%:~S]o]elPvO#V@c}?)<Pπ$!}c@ۮjV!t ۳-b Az!i@$ e<}O@#KiAČ{K)ڟ=\ @,3q3؄_,lT5c3ldku)xb(|衆ͤLd}8p=&48LJ.j@ òc?$WO,<={h%5wT:u= +5Zlf-*E@V[]HB}vŲXJ)x)|N=|TYݸ3iar@ C&K +j+ 4l +;K,!5f=( ᘬqj⁆h'<l<pgIXg~}}R\[hX|eA'I u@{փ $:o[dfelֳޗ 6@gp% [+4h/ؖ4Y8^3I4hPuٌYb#N,Ch祴% ݰkLpz_|@ۜq!4*4a;$zlv$w>-z,,|ZLXRhjRkWDŖgUAvt[/ZTq]{jFT,hdbe +CKk|8A5.vE c5Baq3h +q4rvУC|Y0]G=Q?vV-t;_^ܷ 7!o+剞äi05DCf6(#Ȁvr'w`[p YƘ\xƜn4^ #^hl6hli.-,dWZVnd`+ +hAeQc=nα *R7>@R_J5-j9 O)&+.òHeu܇kZ(X,VY<bZmUvdXLg39+n_qgZŜ-d[Vollk֞:DK0fpbR *^dgٽK({r`8xh I2$6#s>^ߺubt0L첯׌lŒcNHhH.v` *೰-؍V8{@w>tlESjiFAl@2@|/yK#F]k"%Ei1zₐ]uȅ-z8,k*;;;NڬV4ko۷o<79*Zfߠ 5odfL;hLyv=bH)W{^D4 hP= +CC^gچt&[iFހ)v)&S5X@cugi5?׆g<q\DtTvA Ku ]MyGx˜o:Z} +;o4k/oW bsg+{Apކz)ugnצ t,n򺢙ŽLu(Ś!8=b&)7I3y["`ZCze0Vj ؓhA +M.>*E !0"E>;R[. p @ Sbf a|{{;]?Bh4knבgufS;QX,֪h23M{&n_[(ƖcK#=Dٯ^zo3ŽL/3c2QW_1LәzOC1(Öİ nG.0̣4# _h7Ti謿(y}%j"OYXpii v@Y:pV]Y,lgS +͚*hjkܮlyfXh23M{W9نg*Q}yONy:y9T-t[Y<5nc6敼w̭Z+4Ǩkan8<wG0gJLO)=kT=Ec!s__P3Sna)væOalF'k?f@{'bPlfAhhjkoW5N ~bF*wѕߟ6AfѣX=|G'N:gHe?kbHР ɦ_.zP.1,<9H%ci46(3OP vGڳKx N{P0jg1ل0#D).~``Ɖ57; bAyFF kiՉXbZmʖgŚzE Wo_߾{:qYvzOΰÊv~߿wVb[5[,UFpL'o32vKPTh,):'NjRT+hE"i\ _ +]H;uHt(\gh L!T]̯!Sųfp\N |IB~6_ |#b:N +l65*ЊZUނlyfX 4TY[W^~7Z`#8Y;<Xxe,RgeH.1!mʸAH y "%IhA܀i4, HblD=z&W=5Ah\CNGb|YMŰC8ݐk, = dMn޴XU[Y{#Zӈ4k*kI˳4`X }ɭ'8Hx旧gϠZr&x^2R:Ο+% +?OpچO ?~N̺yd':3*z@vD4? + HZ5XmӡQf`¸)å̈pF@6:3ݯA`}Wh H^"gaƀq}=*cs_u !8q¿(1,kuYVh4Z51fv-cy ŚFݻ3骚)/]~z[N﷝yxK.WNCajrqxZOyJ2WW㺕ϳz4"18|5 DV'!dOo xـLY5zq<@Y 9@tPĈՎ2sӣ$ph_R ~T'?J4'zZ~5C1fvLJNV-,5+EW>o=53N}V-^?{k:}=־kʽ\[A +re ]E{*=o#SqXx HT@1:fT8E!gCؠgp@G7Ngc; :y!te֭ 0WD4>ehdH 2 ((81k clJ 3tCÎ6>'LIʳBoll{XZZbZm-Y,kΚ UL-x7~sN6n_KSvlZvoa~¬Ԑf6êXAI?%C< O147E"Kfnˀ@t+jXK`|\u@wU_ +6M8wxȦC5Gk<Hۀ [P߯:sbbUGSNӡ+>k\-!;1fve3b-D*?HUR[W>ISl2O7}`JS.MXxCXky~]Β7vqB:Zz`Y/sU^C Ь2ܮlyfXjwm˩=h=0إ'CkNiz9g|lcgqaHtb+!P |իt ܍iuC f5:Y^`j"=)9wȲdOGmp2Uhvt;"cԆ'=tg + 7ʼnNVdo=rٜ-:h{{q1`24kuYIa3bOm}V$֗qSZ-Lc޼| ә&G 7we 3bA5iw[ٹ-ȸ4t^!]`-A/.f{TO 0fK /:4D/q(-'!~l 0Kb3عIUfD?klH4~zq%&V#[7N*1&n˵k矘XV#l3 `42ZʖgZE +)/^z߾V Eӱg~nz4a}=+큐e(J0D,kJz~oiUFkf!]/m/T+1Wd  +H^nx=(k*BilABû(] +q%R] +p[2ԃhܗh<~Ӝ#b+4k1fVFs]o߾=4aX, #_ދD7O(r"N38y34ii9)NӹC{J1 %M@Yo !ˉMUP͵4َa /&cFL*RОًg9}}bV\yNF kZve3b-"cFW/^[_ Q1FXF3?w?`__WWq&`)2aIR ѐBIomJc[uHs`<М9jg_8ԞH)5w]P\ C TzA]ƈPCˌ|(@C֜zhi6 +'~N>0S2`zKDtTvi'N*,ӕ_AiK1X}" G1&CW ѧf;3a=х׈iB>~AdX줭Tc9bbv}v(EAϳ/bF +7PV- i=/^xa.boWGdh2q)›LBucS(I0Rk), +h)0a!W5<9E5 ŋԱ|?y~]jj B<6,:m pcc+@ YoNs([Y,kIԻX O7Y̒zhy<.0ChSj&m2wO=wo] +B6AwDh8@gƷuV!+bJDöyNg_Ghv֏=Sqn 6ְBqkj3Uӡ{G3O8i2l + !Ȃg !RA"aDLlBS;>:298$z/L]iふB7<*Œ1ziĜYذ@@gЎi쨮6 xVŁsx`7ypb(qQn642Z*Y,kz& k^D4bI@njz1b>M a@m;c^X|l4,7a`%T@Ǝ>! FF <ӁDE\) |ehvatʇK p6 qٙ򈠂̜h1>ƨc#0ٵO>U1',h5"ˠ'Y,kԻ:s)Gϲ@!厬׽LDTpF;d=mS ?|lG8$:} 5pS@|쯠=ž`sFJRoA8,`D:U/⦝ܟ|],`a4%TгC^x\S[YtdZ)I nxM=/aBiMjhX@ sX`pFpÑ'=e9&hxGJS@D+3dABrVVqe/*,98H 6 7}Hb1sMAmL;IZiUqN2aXUSEʄ*.,h,J[Y,kuOEjpe_*ZO4pg Տ8b$x5YֹX4CXs&}9ptn^c?MÚA00\3Xbc.Vá&0:03p't6C8X~wwqaհm ȦѾ54@ ?bgXO8$1Ԇ!N~ܩ*}38P D?S й.ctIa=&ڳ&hN(LmwZOP"/0hw~vWhϱ#7*i- k4^05b8p^~id[AL #.l4牖R0 8_l:9!X})B@X++[Y,kߨLDŽ)?H: u0 +ĐDӸ!w Vʞ<{,@AHk/ qƍF-,Y.rF 0iu,@;^ F?lN$!i3LQ7lG{h՘Uw}? ϡL"o А "¾#5~:ٳ wach , a% GeP۰qm3X0N8MYB`pՕ G` FآmS:>2dž:YS9\Xq-2'.z,kg8RbbܮlyfX}eO KB/L9ϴAxq%ڢQ 6:K{{#b{ALњ:֘bbJ,Z!ܮ#-J';[Y,kşNگ5!Jj^DBsn<0Ȭ8|s LeR8Ưy/Jĵ#wA}ͱu +lk(4$_Q/X0ZSgfgA42 ^Q b6.S_iotSpJ)!sr@;uz]qʄUM0/kfade`>[` TA;3{t4R`pG6Brq@c3n0t'S\e߰cK)ά(H`\Qw9@gxc"h$}5@Z":z||G= +ʳ5ZȐXshkeyb04БiO)Nd*HH?߄屾/ѭ"EgD$G^@5C՚:1ZHz,-G8Z<[^PlJ͓ %0r 59 "[x.(lEOaҐp^ +F?sгFf5n XԑD ݞ~YvǒhXP+4 !i* mA.|Qv֯nK +'LN=JvB7E51fVF~L<75@bXyz|yݫ) H"!V:,:p +Я>L3ba,b +9N +-] edCij3 Ea.`:)ǂjhLؠXN(\4D;\FXvNm^Sq$h=Ӣ]k;;Z1eŶ*42Uwرcg7bD6=kz';]0?!cS=Y;3Onii$Japm6lcXElbb-^yP3ckbXעA{3Я==,ns@V31m^-1VPr/('@ksqUlLqہ3h+壴'vjl2̣p4LNKLAw S +kpzq"^#uDLDϱf2i #|B +@QΞ8ۋ#?c#G2$֬Z-bq_nWŪ ZV Dm*h͋f߅)4-M gRQ w+Cr@a9tɤ J $q2xCDix^A_|9-Z06?~2Gejv4\TK +@Æh O] yE{䘆1L?GfzQ;&;'^p{So7ߵQX^wqVa.ZrUh1f-LYUveX*kРՍy4:O}{ .s|ol$2RKDp)ʛvyRhACh +!CqA5uF;/@ӥh:H#:SgAGi0 @CE'}efI#k;ibw@ec:C&$T߾^kadג #ezŋJ-Ьh˳Jݮ,Ue-^@xx6w۹I[i$ 'j_e/lH73a˩d!V AaDa D*V)k衭ou8:&8 5rO )hdzj_=='')" 30qNch<@_FMug9g}gOg鷍՞àY9HVWh֞h,ώ*uX,Ve РߝhcV#N>d|' {eΘuDf@$uScce { 4L/NXγlD3CEoR):67Yaهa 2N4 +]ؘ4`-@]ȝO\vLK@XePzmMm[Йfs僆!׭:҈\]|xlȌO&]Bp$+o.h_f4"ҍ@ m w7Բcv6I@ đ Bi)5Z!n&Sv+q[,3 +#j/" . Mdf$H|N`jy!AP\QX  <{|aw B/_k[_̬xlo.# N? 6dX㊭ЫJ-ЬhngG]Y,Zhr!,굿~T'4gա3F3?wt˿QZ͢vSqwn!* | )&hk!mT1nllpe…RD4祿I1/˳Jݮ,UM-OBBb< g~RtPH_tZh=U]ENWx'}lR;J̎qXS45)E1 Oo*/z;y=;y}DZ }k||O^Wߋ@x68E)0y](oa,s +ǪTu +c=[!L魀R:LA|R>Su8;.lGH +gł a/¦EV3VqG,㬜!C6}d +G+?͐1A^,VuT?m:]ɕ A"Z YeTەbW/}- Ip4)v!DF&]/2v +iJ|MmJe|?~xh@ C2iƊ ͌PU4Fjhm}ޚ(,LOPP0e0U^xkdlJI0>j$ +<OK qu_2BR[.KHt(ӂ;%ߐh85vx4hZ;d2t:y§Fv9kV(5VScce:]zL΢pxOŚ@l^BUh1fj9-ώ*uX,V5u0_/%z`3 Nͤ<$ŗ3hjC {dX9Uo7)XȴD~,mʕOEDp&%װdIѱa<H,G;`zuׄ|/o5lankdcp],Mzl ^8|< +aӚ-HŌ)Jzսp/e'F)KH A'>"NFxpfL RLAgw cGGP̩Ћﵯd6?m&gYj>b2[UveX +xh&uhr_էkI0G8#u">\?vv&9_@( x +enG0z]!VB +td?|}9AhI>pda@*jֻβN6jjG=.iRyQM1dxa)9 c0"M2/ЪkAD2i٬ 4 03T/qBghN MO`* Y_`&}-㇥ .lj 0n*~ RՄtKox§ɒg^`3ژzD):YbUa+BT)zX˳Jݮ,UAݽֳIa)`ͺV~ڳ_͖W՚,seFb6|ǹ7O)6VA/ /3lY/"eߠ6N—v2vPcF:1:XjCi6Ldx}ߘF)ά(Q;ysnZn6-`C4론\8ũ:Ө:r|/!s"=qW!e0KfM[}ƅ4./:˙Ł xBF`tb` +)'@ Nƀ`\F%'cN3ͭkheb/?HťYe[D"Z YZ+dyvTەb*-ۯUH+j5#~ˁ˴Vhj)jJ矘߯^zo3pW@x@άH4>:/]}]o@3ؓ㤼۠15# :6 Ntm \!/\<Nx( 9 9kh}bsqZڡAgګ qBmS  ^Ʃ>eVd5{&XI2033Zm; w=Rya@LvQN Rw}AGӃw]LO Z5k wG@0),֒(O1oUh1 _Coh*Jݮ,UA<}t jyD`iܹg>`B 8=Y&E~_씇6O:k! sLc'N_Śf$ F965c@Ǹ1 \4H)(e" @ tĄoDGb ^gvWu18Y}crDCDRk7]`R)Of#C9}2e&$kF( ޞ:m|:0'Ҝn &BClNJYOblc]1IZzҙ9=σx,9sdH7[ 2%ha yYkyVŪRDtEgG]Y,jn^|w`wbJD5Vh@l R#3Q MuN\p>O!pϾ͂/AaVHma|С0a)-R龭L)Q蒖6 CLqi3aL`"[XHP0H`BȾal^텦o* 'iOHa>К=g[L'A58{YXYprbsa&Ḃ .~s) O&Dͯ3X32zav3bM<:th!C*E@WN#?^}UsTR+bUMg_d?-ghaMБnˮ5D chaڢ=S9qoX< +/$,B 5 vG޻u4SDy#_ SnC 7{b$@!D{=hZ?؟NF4AC{hoE*tuvǫ@[2x^O{Gq@LlDtI2 `e] l"5M@# + [ 8wj×v~BMy(BGBcC +H|4xzTq${d߿0Z@ߎQ^xJ$˾73u_?]HBx4tF$ҥ! ݖ1)Ƣs,D@uSCt:3 Eb?+R'~3NhYHX@gzC濎(Zp4 6+#b +2@p="wFj=h){]8+"NL҂h|fVyPFtbg)^^,w H˦B-wGT˫P5._=/fr(z7z}$ʕ&'S69g`!Iг!tm<=Ǒ}ΚC;W@dLy#kIYUdn`w4GLl3 +qmbdlyF & Oqt9Xis̐/\77Xq (1 KČ=FcK` "ƌ /)IC 8&$wDa@ !vYtHgh-^[mG9-U %mCܹJHOaKFckJjkkk;ݸhy_Kw*U(-?{~νO{w=q~Є~]jdVl؏\0v=!몇uK0hq[< +<7Hr6Ι}K7eu e$Qbv(5;fsLd02_R#&&Uk7&|Cڃ)Ѱ\S0С5SX4\@ӎcClv-4_ߵW&LʒU&^]SHe +WM0K| +Qzv{fEoEc4C9[w_^ɶ0~AG_e dVW6e4>RhX yۿ);c kVPDṃBݮ^^^^׸QdI7!g>{:S/0-kgP-K'#Q`Z´MYlt7b'^ &r5Ƒ0gYX*`g)_X0,+*LBݵIhjqu%;m р)^d:dsj\=SK䘰2>Z[o_J4^ no|ܿջC~*S옫rg`1dB\ORe'CƒzHQS;n{yy-Bfsss[B-9M]U B&~]H;{j/qqM n̈HT TlccNFd%`o7xG!^Tutb J :/-7@{YU5Yݔ+h2 cZ4h>v)5dEѵJVw]IC(9>Bj0hBh֮qa4mF1O9.ެ /t:WȜ}@ y70FҨz T{ e^ws 8yseYM["."iʫWF0Q&xL pReW/:/%o +E<^j < ɗG#׾doL~ķ9wyBJFVx{^^^ T"j$hytwPs 4Q- +uzyyyG_8EՅsO\xzQͭ-W\Hw +h"UJ 9HfFmGU^MQ~[TR͑ZDK{PT49kh2/'&'( .Ed4Yi:1lj$X3n|`žX6B>)i}?rE`>$ī>R< t^9 ?WX?ۡPTIJGλZAֺrVJ#GI*zY-PWq-* o޼=^5B̊ݖI zk`s:"$wߕepcvoyy%rhd;?AGǫvl o넢I9SS]0!l؝&uj1؜ytǀf7A#6odx21:[tdteCN>61\$-PB +Ct| vWl6|GXyT(uƍ&(m}bG=-]8}<+{ ;?cht@Kaw&Si@/ w+7sw4WluDIª5zKbiݐ0Y +a CxIh9Ye=**D%\`c0BAܘ܁AMJ@ظ%&tw7-Im0)|Rމ\#F뷙⍁RM=>[ )@痏aV*zwݍ7->O] +>Ql i >B6čj @p[+9e\{ .J(KtMuS]QaJ}8^BΑ4׻rV<I"wPFZtͲ ɯٳTT"vR8Z@oДY.鮔|a 񢅣~p [#-!hx?v4O!}ݽƅ9@*G/Ϳ_//)͂yh!CZBhy=CLyrv*./zi^8ĕq)K5eOruEօry-L⸪C7QGWd=EIP2Sm`{Et@ݩYkswęx0Ulw}Eo8DTpFi23J1DASm/;}s1t&0>V.r..Xp%' ` (/s0ͭ( ✽e7z&JEߞ[ZX9sv_W6N|Ck`Q@{yT5͸zmmVP3/087v*WBRg|nZsx$dEj,@Xs>Kąkڐcэ4E dbFzy>nO RHl9R=ɻIΊ +|WHvG;5 I"F$uK@RS S18;60ha`Z@hi?GCbqh7"fTYY}T=;-kwS8v:C"Z@OS<v*w^߳k'=@3aMu]DH+"Y4vJni'pg5Yw:MUՓ3΀>UgF.ʕދ4@; +Xn[FTj +@ƘCa+"L?ݞYjJ_C?Z}Y4zJaurm#/߹u%ͨ&mݢ=a(vnRȑ#Ec"Z@OG(v*n>W4x\:{q#x6ʢZ.*. UW +,.CTqIS+Mp~ha\>c>Zƒ) SVf#p15y; VT_@sjdbJD0ߺ)rh.f&m-Ht`BJ\i۶,ϊ.d1HQ}&~}D[;>rw)>2J?.w//9nnn6MବPD4,oy +uzyyyAX^)T +١cQDf׺pl0hpӖ d@( &E(l4LޣZ5 zr+aju0p91W,%c %]5~pk@j0,̸θ@/B6ܠhi@;д qcxA\ƑxVꉌ#<37bcM A Uy+4Wc[D]K_'PmM[6;j\="Z},L zI|sqTDO1 ^GS{­6XaϼF3  .+R&Ĥ zx +p@ψAV1֖6R}EVHf{,e,e=@ܕUG&6Z"%2q^5"`m ¶@N;><!(Df">pѵGO7M3MT@ NsM|bQ>˫8Jt +](t^yrP׎Wc+ןX.ZiUP(a5@. y}-TT/@# R vy3ldnL6y] u %VoΊwR]8 +j;Ӷ-U3A-w9΄eE߆mׁH)3ڟ@g۟i_׻5 Ϩ}Gȉ2]zx%,6U]O-v ^^^T۽t,[+zZUR9*/TnW////#!l7+f_rtGPI\EXCcS1{߳]?<ͳ,Շ ~TIJWhp +" 9J\@}]ݖ(6pxsvԷs3tO @T2I A 8P1b!^p[ތ@TrR_}fƖ'j,CA^ad'ڄ1j F_֟:q6O<#Yм* DԴfmUoh{L$Xu,zGLe #Cx5Q ]Hfz+}pRAw3Ivt/o },ƞa U=@պuy3cy"|_TH0R?ҽ?~#"`#@0p@˖ ӞO>˫JZȐB--Q]v_1/m F ;F@Wh 8N&})1t>Q42d< _P) mS86:@sj0$JouR[zS5(.↹,NU@dqG/nBwP%>ԏ1n_x" FF847]r^FR1IpK+&}hzb^_F;C5HPʨX4Zlںw{.dXcVQN}/C A+'O>1c +fBjEjv*H_6z%j|'$8 H6l{G]G8zŸ/`s#IKjnjq#v5%pOԁtlc4b6vD@\3U C)* sgJ}ɝ]4> 89绐ѧLwv}h pM/\ V@c" +NHxKx +_ b|&|pEuqv('.(^ȾG0O=tۼq'ؠ3Ĉ\<\ RGק;cP7@Rtȑ +E + +XwSnW///,~㐂sa w"#_3n +T!`~g L|0'16AܻnGh|=Kϔ>SV2$sep +<51v߅I ѡ7e30>ưlB6O*-E\NW4?]QN~wLD8(s4:vy d, "]=0:(VM)"qP5v?Ka 4QfZW,^I; k.)H/=<@s+Z?ǧl&kГ э% =EkD\t)^p@ByǫPҨ/}Cۤ$ |ɓ:0>JqF\$6=V%mB1Yz꣧>U3h'9CupV"g@z}Q;ޅã@S7R$el~7hJ̠fLlX.8"g.ߙ'V;Wc9iքI C1J>[SGːf葈k0nK/NWA9-dXQflK\0DK <%CPy\w08[h;M9۟pL|ȧUoj."e<@Kt}a3(hv3/@ύG<N?ݫNo~~ęշQu;69HzN.;i嵓Ѕ"Z; @< x[w +uzyyy-&ի 6Y KtH{HFdz %{yP`پw[PK<I10mGN:=.>5DcSwyH (*G-d]/hǪY3Ў!.?;epS7}R@Kf5UTYVn5'X<%d`-Y@"_`Bh*H>e3 eEc}ߴGdmhi|N8qvڃ.l>2TK-z' wgijl>{`!uw(yDmň?<ּv~nlST(s<S]V_a zN@+i|+;!-P#@?y_XHרG'hnAT~dc';Li +ZgVeGi:q@'8kLV0!{?rȔJ&8KCJIj';^_7n:lѭߒa]uDc.v4f[c@ցrȋ)xgw8$:`: >.0h͕&=N-*q'Euvd@Q\;&+Y𰩜q'&l䰺G|kq3<m$ [*c^i|R$gGo]1VBs6Қ稼Bݮ^^^^˦yC=FÜ"96D못Ku,y/x_MG7+&(]$P`uh [DBZ ʫu23B4 +E1g/Qky<ҿm\4]˳RSQz޸BF R{BaZS8)Uaarg 렔p-te1 +6M0-c@F:wAZH7転SS0!BO-Ymj,hSTNtj<`|1 ZqkT e0LvhJ&8[?C~O?+eu;=BX+SW=ʍ\tr#p=Sy\~?хsO\xzF݀r+ W:ˢ'beanne6v 63DqjkJ/=)ḠU![ֶ PDk[补>cTkZk!K_SɋÅl675j_Ԗc=2;Hl!s q +P{ VeԱ<;x7U=/Xyv6ZP%:iuTB%PĄt,@U6dht瞹@Ⱥ>]HFeto|V8Ǎlgw +Q|u4SOÓ읗WAhN.B+Bݮ^^^^ L6.o~[":xmS\{δB~L"49XL&W#t4wg;<U3&WA.+j4ߑ+A=R q.zt@NA @) J0seBܻϝxUt`< &T˲ ʈh t 36m%cúŷl!  ohخ%K?5t냠"ߣ:z%e΂SrLj&xz @^}p*={jLO„.3U6Gf^{*{oOŝI`P@G*d\ + gyrȑQm1TfVixsaUkW>?T:?s7~pΝ:RS] rݎYxb.wx4}$ސKA=lLI\H.$4FX b2\ ѭ;2uDR%*I%pW d!M55,c!lPSC\,N`ȩv|ť0 gq%h!:"9p/Kk.ZR=F^;U]校gե;{Z['?;]8.h,Ctl؏[پioTl0Mܽ(b|Y$@Ե|%K0R5B*ӡؘӎJX^2~՜V몬]V@L`"TQW@SH#.L!K=/2|!mMu@I!VNN7yQ9TYQŽd>shILޟ=ph #m,0hمHlg_MWX?w}wW9a#onfo)#4߇[\m5W2DgHX?tԧ퇗׀K.+.!E,Z.=|v +uzyyyT q7ꇎԜ;}.s\e!Fv :g>PTDt4R<hb( !Ak@;iv6'|$K/S2\fpvn1zKџh7̢|r`h< 3h'T&Q5e +WbyC1SgQ9 [C O 쏚Id] +Oq +ao20lʨr-Š(, z[=-}eOL҂Uwn fqKGgt=paJ]S֖(h- SnW/// :ʰa ||^*jp`Ƞ`x$K%6fVP^WEh@(6޴rƍTub^"ڝsC1#ƧGWl.2x-͒)%b88g1:@thN99D1|`8+<ɇ ʅ?ݪsP5&POw|B// VBhoyP]} \:xmyl67٣ `@؅hyb.y)oJN8R@Oc*iʁiہiP~=!_v:-mF dJ 2Vh,ؐ%\ /salJl. Lu` GN$1V8S[k 1w>MQ3sc֮2d8A"10Q[mYڞ\ +&jYF* eOQzU'ƅsO\xznՙp3C5~ZȐ +EG׶VnW///iIs6Z <45>bߺB@rWEl$!P5K,j +3ua/&<*xn0) @ǣGc@@p:^^^SrZ EGvWnW///Ơ iyvt'?ܺv>хb@³# +4lYQPSN u~;:nr2WMu`{"sL7'%RfG_YfN hG2F!BlNΝuTQXo42D9>* +_R5.խ@;^WP'ڟil෠4W{]n,O g~S]'C{I,y :1wY4x_~$;I_IT?tԧ+>I$/]C=fNU)@>&xS1.Ě q,M1GuEwue;2F7oTvrпzr[ ~4M]t`%̎'i*H*CE^^@NZuJjtIjP*pk0 @mY݂?cjOHteӅeкjCŭ.cSxy+POH=:j569Kͭz_gD_΢"Z35vʯ<%Wx;;@>72Tz)OܗasCK:=&kws0 +P!${@'!u!!LѱmΩ:HJMeu4%1<K!Δ=҂y/{HCT?}ͩb~g82=˃m2W8bt1 e)$Ag|p3&`J:#%yFi~w*1 +2.r~6cv/ 4rП&<<*FMt!uvht/A +̝@sgB/sFhkvL;ИyD=;)rꃣ99͍ӓ)*oCѿ|njnVBh}r6*P˳RYnn<}+PIˉ{u]kgܬX G!Oz2(Yb +EePziɰIp .hp 7Kt#٧]z6Kwv=s0JNø1TKqa4endh1JM +ǖna>v0~ތ Mw!$M=M!>G(ى^iBTw:]5EWuִQ-+&ܘ(yNƙkn1c'~vGG=_䡍7F C˩o+Vh//Ktcj>ޝB65[y$v +}BIIOUeSQv 1Kf!'G{>S?-r]ҁa8!ѳ8%a12IqY[2^[#]kf>&kgT DWZ}#7@[ +5uQOV^~zv*?MP Vm^j{,[|KV nh;#zz)ܝ[pRʸ:^#id"/+M9ܹL5Jo[2ktcGd. @jns6p'?*Zo/QI| ]*>-U4]/B-6gŪPWѴ#-ώK +CMgS?Jt,Ҹg#y1F +tCAК҉BH u'Q u#P%,P}T@ z-p0g'jOn1eΦlhZ70{7\ 8yszq(ɵ= It=#K^$}btdRY,["](5wbR!v@#&<טhLhbHle`.aaݯ12'N2h'$^D9\NyYwdV:R!֓{3ϟz#8Ga?-j53 //)* g? +ERt~zv*7[^?>,U6nFUXo(: +H/"I @;$hGlb#T_wo+\0K{V#U!8ۚg*%Jp#߶ZZ"LﶤAWv0c:rΛ+;cNg;<'"]Dkįߞ|4^@W<}!pE5^inuͧL$uƶʾ~s*CR=I\C|N"JQ?=t\6Z"Űʵ W5.$yNC4ns97}x uֺwGDFGit_ ~%dXXS5!Pmu$hݜyItɏT?D/knuO k{P׎Wj-s@FL&htI#tXYZYSǨO-,O&:ѝ*}W 'AwvN0e4IG 'EuzTN@mmEDm-mȂo,n&HkI4 M=ldԸ}eG;yzl=ӟz$3F9ӻz5 BLM@4*HC8 +ioԞO4wY00Wtb0ك:d?9Dp%\iXsB6(#$7~m6g^x7iR "6K73;QT@r{HWp677gT +PDk @{˳vTnW//<vѵ>[)g=7d`Y/9VaK,ţ{:lV ; ["sk>xcc_i4xŖk!@d"“"mم1sӂG -ʂHqcIt4ŁԻf3OM"ﳣEh@QD\?xOLxϞ鑶Bs>Pd46Qy' ]lǞ-TЂj;q ȾP)*~va_d흗NAE<tTz&#WHe/nwdZKZH t[xV}Q{d<Xf,&T$1\cЭXֳH}ʧhn39CgأZڏ<7~$_2T*dCfbnsWw*>GVh//i?"Z~{*嵓<Һp;+X.H(]g ũ6٫a0;~j1. +pHze +-'BsApV3,M*ӲVaN݊-Jhc:0!?J\"cɅ_(uYQDyM8~n#e;0Z/#^Gw6T/8q%˷d%Ow8JTba*k6k 9Kќ(dhi!#š&ͤ4ƗAdzLWW[k{Wtl +SOʕ*wAECYzyyy^ +PD+@럻55 +uzyy4eg1$4 a!`@%>˾YOHUl b܉@W=cH"|\?8Ρɧk׿H)WAf%ۄ`:ֳմ1V)UZF]Roӵ.c +,G1" @y[n!4T|h1ɪ?#|HAtt]悭.O)yQ rɬի3LCEd9|[ir"-, j'Sxۯ@?KJGZv<>AQG5kz7H2+\5E+t_^N]9~]7.!4Йv@thd~A!j8A~-X$4Y3Z*Bak@؎8^xwՔ; +ϧwDP h =5<hqOp$_1|i:O`Pvs$M%R`!7E?Mlc'9KJ5h\:_6C8>z%FḀ>*5h3:xTBYiɥ.0a<ٙ"=9ގڞ/ + +NĀ#Bu?1R7~^h +X T]8E(13]^!LB{yyGi\/B>ޑBݮ^^^QC-Ϣ^?>{7QD +bZ0ou8d۟Qܬ*-mGGNܾ?GQcGeȹD+rV/,ǙDHm@|ЄYE&t?3V +- o 9zHW&,Z(%,vUnW//"L!̶tݻlED>xc#@KM`+n&0&Ȇa|{1T8 +LBPY=q)zyyye t gmm-_^[]\<.kO/kOqD"V/7U_;+Q?ErTi&`XWQKt@gu &M9`(\![ ]vg8fN5^0Iߌ!(xYCnJVUE1! +eIh̴ڃ Kp[IvN?iL#=CwQFH5]%~ W(VnW//<;\Zm7hZr]8ƕtX9nܜ $rhBy–+~->Tj˃$Ef3 ųiK(z19 ѴN"ȲvDyHNqʼXZmu'.OKXuې,\$Ѵ@hi!ڶEuqrDވ}7~{HH; @@yC{6[Y̭ЭA5E dS ݣM}`Fȩ. +57Z +PDhBݮ^^^&oyD 5Z;vN~heĨԟ=c|*{I)B,0 cm%66X<)2 C4"`ڒ6D, $X\5&Gv2a3)|Chz`ds6 +2?ai,]fyH^ `=@"h}v$W(qp憬(=9[@/*~dnR$|t:O?SScm_K>ηS8"]Ѐ iCy +E<*@<_/ӗ}rѣv ¸1n$j +F^,X8-g|Jem9HB!D9gw?Pg?wh{nɲqKÓ,iA` +D NV?ԇ KKȓ5a2-s -HjYRs|ALO}t@sDeh~ܬzD#?L ZX'mxz}N2OxѮaQ /^w0j׵mrK1QȗIJF`~= k+l3O@!e2bcnO &~O\zyyy4RV[[[_8"Z@{mov-g-i_EbZY}f.hyk2:c@sj +&3!q4f١CE}"xMV2x>K b͈g]9~0t]jS߄j @+ SM11GX MmMYipv +Z,")9! L9hs=^ s*40e ;}ރ ??y♱wvFBd5X*l@sUt[ +-,q-lhNNJyF!O +3:"#zyyyM +45;hy׌ T}򵍧=y\?xO̢o+|-g "g)C!C2P5-W<`MJ%<Z @IZ)6!,Uw]WR.'փ^ ]6슩=7>D + i^ƐqMK5.L]g//{<סma5ƙ/Y D@GOΙ[2xr99!Co\$ 7~{x{77@_U-15Y,)l(3ʉfifkVV!HׄJzaDh-+oy.NʢG1'ퟛEo]Y- !&z~&/\6Eqsst3OYPZ2  \WF6 Qp\ {Tpt yL4ɏF/{0B {WH3gYMSxÌ!'mc>uwVh}6?6{P$ftdO({v8梘9I"V,Y݅HRh|$-ZC~}cM{1biH|1N%dT0Q sO@zyyyMEfsss\vjݻw׮];hy״-TZYfFԛ)҆k(ʗTx.25܋.s@7DHu; fX>/@S{|%fժjd|8sjTt] _7e4!Gsń(ٖH4heNY  +B~5BZ2=]߮^Z@3ԅ STaae~겊& 3"+Gb'䉁qg#ܣ:|Kw*!$v,u8k`Ŀkrp]v]wޣGl^^^ Yoyw-zӌ=So3= YmkM=Ķ@+ + qSpMu ltWl6fjޣҐ"8F#{SV.+* #vJ"Y" mJ^,N{_ݯ~mT1?ȿץ .q/Kaclfq;}td 2[g?p-saf7[j9r:;1#[`H=T:UY5>u؊y -fSFbH'/"r.O'@s7atiG."ڛ +;>ưA`"TޓxK,g 'zhcaftw(c(7hlDs# l.Ն37EϽwW7g{4Vf3yN[_ؙ=SW\u]jBګ˫yEt?|.Ӂ}6zi"3 ({JEt*CQ QHe +NԝwGŦ"," Stf$Oɢ;LqJW> նaXY@| NjFH:ăζͱ;6@ݷȻdX}lX]yYeiY "9y똩e?q3̈́X?3,80F`k%w1gz|m4 2)|#̦Ͼwn`uT T+^!L+/FWWz[͍7.hOo8@{[@{yyQrt:|H+G"{zc/]Ҳ{857mhmnRlzIl=KVzkcn%qԺ9dABэ @! ѡ@jNImXM%h/V n6#  CBϹ?seP4w:=xKnܣ>hli15hRG;vaiLSfq8xQDvLW81SA{tƂ8GZ㜗&l^w67XiD×Y|u qH~u&zyy-E Zɿ }vګ˫@zkuɩjg]{Tෞw߿jۜV-5dvS \,vm \"YtnkS=Iob’:wP2|}K>muHo1?aq2`Fz༑3Vs;YPq@* tTAD~4{qZ&snP[UQfngz=3$ ãCBYߑMcYYܬ,qši͜C+|6-'kaS@Y q~7-6RǶ +Zat$֛'ћrЇuX3+;O?%I&7;zJhIΰn8@{[@{yye*Fs D]z]kp#`Jtdܔ&AJ. @Wh[Ϋ}j6a8/>P|!h,4C@\ѩ8~`pwF=:pbP F䖕XY+< A"|U +h4G#E4Hϼ'| wTĖgmfpB4#鈦0f$ &RMkV4fst:Ez']eѥD6'09QJnW$oKr>ߙ'2| +~_h.-+XmfXYZlpmc@@ːhyzgB羕"] mM ?,~}?tcazFay?&X^zu;L_o8@{[@{yyAe,u\ޣJlCr@" X@~韭tg~Q c=Bc~>ɭj:U*!)[3/5i|Fq3E7P@s4U@'8ޫ, Kǽn~)/]Ώv3 o97JpD2_%UVջVvX?@A˰BwkUtvFˉx`8\EgE?>zyd2=, +ɩ >u&zyy-E~xUoynhyV}-+>~_ė)a*m +c+&NHƉĄG#BB;Zˋ7կf*K9q:£0FǤUmD=OӮ[9B(0Qzi[S1н,~ZQl2S~N@L1ʎnWэp&/EC{t-Jvȕ`T33J-2w);'%%N\;+n/mX:^\|&;wc T&(yD)俙>k.A \!<; 񀐲UhN33T~Uc:RFvK61A)lxBHNں7~hٽ09U^VrIft:rbn8@{[@{yP]&-W^o罝k@sS ) L] +7Wse&G+)N l~B(Rn'6 vߦa$dcy̥dyڊ +YA-a3k)hW> Atޅq1$Fq24@2Vd0!v +M=Ngɂ U@Llg@3 Ȝ :ia8Ľ].d{UUk ӕp ɞ @<1:*9Y^J0H\tA(An P);А<8Ze@yu8n=7%/ωƝ;teJh{ewbL@[ +hzh/}7ovHy3${N]d*|'Rc.]ye +[@)Iy@!0ǣ;*V }}b-A 鮓oj_鉋G׻At`S2[fdLohڎэ#ds`<;D Q&f*ol^'aAQJ,7S`Z d(b`Z^pem쀎J8ĀcbbOJ{Fкĩ\,\Dk:9p[;%{"[Sާ2"C-K8 5v NpN@ĕ )9Vݱй#+S\ᴺwSN͊*Pv&zyy-E<֊p<o}×kjv?wKv;D//hNw^^^^VIsUMW>(HPVp Μ ?2g_tUԤe@Rpfߴ ǐCkC5P5VՈnΜNs`pl|7a1E3bCSe# +,d]b,eHbOO j4CuF$?]+h+} "31'1 %wH0^.>+שJh|.\̓E ϱYj@wf͋TA8$]kgfR r^ޔ4],T%VMK25'zGy})R휉^^^KQ%D.7-j ͛ŖU_]ċVLa@2o,75/G{#\u>{ӥg0(O8$7t0۝{İnX(ɹiJs1Z&_iZk8-π`Fpp1Ž#lVG=*Sε(#v4V$wyz`gǪ&p2:4v,Wbh z6.@τtR(-Vwh'ǼFj4)5gЏ}k yR T"%T!}'Jɉ}"f=ഖboͻ?y,%//USUD7-%|5&rFhYu_\MY\LAkfp| y^Rɘo0讈Z] 5,Ɗ&gxcI/Gɦ58ǶW ++w1i4Sf5Zyl10#<%"fD3SK θi2Vb Q"$s8Ox1c$?tf#Z`˗G+V t#@3D. 7TU(+Qd&ř34X̐^ 4V"ݠ;ޝw46%Kt8;5W[~ߛ?ZI{NbM;߭v{YZUKWWW] z) DjV6@: jM!)k|f 4safBX4Dd2s{mz+=qSI @g2e 4 9vbA]0T4l:s8u-S7I'NV{DVW[v]|W +fR B̔%oЙ-k8Yc5^Œ}K {8qeꉋzc]A^`' ^-PS2JbX^f>+CWBaS(xD{#sn2i٘#}x64p^IxD5вY^qn&W*㢋Z(D|{Se.P^i:2kqduO?>+E\s 䱓4nﵸK bÑ"dևM;DAEVöˀ;wEd5׃U=Լ`zstOƂM;iE]sN<0=Γov-WɯN#'Y{GVWתiY#z] G 򓖷v2gE`Zl%Jߣ6m9}}S5V@+zwbvVNf9'gqؚ""e4Y)DQq9zLo1޲LJ5 eoKRK'pCZ"V:@_i3 +YY-G2 Mǩ:Һo )lAԩDoE64 +ӨNo:Kd75?4Q'`)"t3 3عDuxh 3'Ԃ{fVә)3-W[53.pF#2#f3r`WZA+П{nwg03v`:"' g ) \МAס|(nI 4'L5 / eI$l0e)&k-=}Nt_^40=1{{tAQNO@'MU[wcӗ2&_a.z@)RhP37pFʨԽNL;8PphFư!+t[KnTWЫbF93~D.@g<8uԹm+oW M Zsګkt͉6iZ5=w/^~6 r, ٔΜت켕M淀8I6D6hG'f:GqbnXT; _Hr԰!=/J^@'w*s~4톊8yHrt4x)R'WBj!T9ad):jgW5eqX 0@sG['!Zn`;'>r[ Y#=Sfb!f(*)4~HZ3īl2N_ +kMN9ux⹱t #37&<2UFOb4Yq[&m)9% +[6aCOA#g!c)yu^G(I6\lq{[Q3k)Z$Z hzh/(:_}i%dz^d΋7myɟZ|t_\[v/Fr27t>C[gg^v +S@&E Xed17 !_kf35@A?D9Pe o%v9F@g~ `$Z*}V6gf|內aݫ/CLɭ\xxΘ_h{!Ura]q]'G3'r϶)M䴦'ϴb }Ln- Y&G#Ͱ8o6fG e)&L:{@wV*13s̔% 35V$'O{K축Vi)]ZL{ګkZqs /^`<~ܾ?N~~]UqvGGV/GUz⸡3m,̋/JqHˠ`!@yJN"fN4ouKl6#O eBfiLށ c*~55*z*sZ65tN|!G +ZVɕKSs9@1tƁ ဂ>ogyhө&tL HΫ趏 5NOzݼQvs:N6L\k1Z +Z hzh/(~Bs K/^G;OhtВgyg<ϠWn^,_Μ>|??eQY @^Kڙ3q hb^9@|RGĶ5K $y(݇tTîjrLY2jX2Db@i?*8ʢLTrxvМvV,;v@\mP?9R}搓zUM̻AcÆ11 1M =OS,Nmmra"=V3\惃#}ɓ]Y,# U%gS.䪝;?za} UcuPK'ZxUo-rg7P"'"g`2s66?߽W>/}vٽX669⧞X)63L$hUP,HUa3#{<2MЙv*٥{I-6gDb?/7T8&mǸ QSǑЄ6 )K7I'N^^^kEbn8@{[+rzyx<=޸PrC{<=w/^~xٽX~myG/ +SFz  .4W |gN. ֟y$s:;&$I'M[qI֕"m6|t1C;R6/x;( d2,ƕ`mMb1N^VaÂtL[P2@ZmӋ).SdϯHPA``7w#odlYc$$:e qd [tB="e=ÅG-9Fo`@ebY:iJA 8OM;V7 :uuyoZ)7ꭕ\꥚Z.?KLHc7|U'εeb%t{mm gIMZ\-MY@e@%}PQ%l~řUG8@ACHgΌ͑g1ytڿ ڲ"&"ux酢 vq 5#20IIbϻPσ8~ kwt%FoY0o8`eReflo@.Z ?]Gec S_ȧWfPN;Ouٽs%_z1^^^Dkn8@{[+xzyP]0(jYM˳KOGɟ?^Z%u_[f[6@ ` \Ie`/p@MID@qȻj0F5q&F }zkPC9~"" f[ȕ; Te\2u'o@#ܥ6 ++ᬔ Ǵ'u4{@4KY <&j3}@'O[sZqyJ-L/! "ЀU !.μvd'q!+9̔)_ Owo?x"gZ?ڽD+n|ګZk5,R-MK7}{=dNݹ'S yPhKh_x-W̿8m*QXlV6*~\癎!&YW&,%?pFlh4^-X58Ajسά˜70h )A 6ܹI/%9n6ĉ"wFb5|ʲ?RW;wͽE 5/ HiN^~8 WF-kKx6$ +ؖ*i27B+@ǁq >Ф &S>^,N +ϴD^*_^^7ovHy3$ON]dѭ_̼7A/Xx{_M=2Qn{;Â^y쉋ov{݆"0 JPlY$B^ +lĪjluXǷ3 f.2H<Nv`Ğ4M:~#h[eEJũ2@#ۋ_ɧ>Lh_sLd S "@ca e S`DFR1;D8cg6w$$"tgʔIpg4;śMg6vc8}3ҷ]jn>eb3!-K^^^3kʼnV7\}fy!Yʛ~¿bf4[R7|gh! yt L٫O@ﺞV0?&+5P&sL!g|Ya?l nFXpƮБЎ`Z$3P5wI7vJxHI} Aͼno|Ӣ[#uME9} '5@3;vu@hD~sHtd052Jɤ/U3vfp4Ie,ұUa#:#=3Y!8Rj%.{Zk!v&&?z5jA:No8@{[\H'H+@"{U?C}}~.Rr鳗#@ 9[;J(xef}?fyP_PFRfTn@aU $Th^"FV`l,YW⌛tZG 9ѱxp\9.sF3GjhQ#9$|)fny:v24$`3!f~imVpsZi'=d1h5~J{ihD&x - ȁ16 V0ph}CLhb[>-7"Yv`rդڃ:E:[;۲өs?eMk.ZOՅhUbګު<~b=޸0g#y*D=s\H``*W$t:}Ϝ׭ͩg<&p3g%4$$t 9I5Y%*yJ̀y*ȩqҶlXV[qX-X!h_,)i298YEL.mb %Eu^8 C|%^QvVCdhN\Iߴh>7 ^#,4øX"'*+#2 (9 d/v$Txo{Hn&=.(]ÁQќgL k ô}L*=JTw-n'N_^^kz9o8@{[\N 2دg΋~*iʛ>?q14&Q)32iG0 #c/ZVq^ЧϽ֙ieM!yClhW!S LTZIpv=Ӕ` k'0&`Zv&NH_`•׽W5 A]&8YFQzN:\sp3xTgdq?[2A;#J b><h 3< ̈&J ʃ472NJ-*hԔѽ+Ndw ig@9 za23DQ䆗м!2)ZMdǕ&덑DVIM X FEZ6&soji\๖3oSu:М&ed+RT[6 <2i!b-Kz]^w|߹^,YyAz+׊Dk6+^VM/W/ ?{|)…_qB $(BJm>1ψsD$rfւ oɔ{N?ퟙY&ռܺHLQ9 xMFTkN8AGEjrb>ĻpKج$j|b,1AmDi&փz@Le@c#Ngt83HzoU55wSr̝;*ׂ0"yzz^(D@k#x +̚?b%9s+@#1^iIm +td`1UnS}k D͛n@o;ܙdk"8FWqG2u_<(Qu`sXv/VBɯW _^^C%Z3X={zyͦ5_VCHh_:jM}hz֗TZ[˳կ+lЗ"\^q;O^YoXD覎t!k,T6jɏаⵉ.NMڠSQ]g_L[6@SiZ(Vl SqMMPFLgE!ipdM ,K* (,AlqyU6}h3y8,nu0(6ENV +j\ +ȲO1vJxC"t"{MU^iq + W +=h2MǹHw@Jo FE43}˗ +3 Eci|)jʭe6EKi"{a˜ux @tY3oj[}@p}Jl-61MBҍKWfҠ +Whp.;36B *D҂N:ڥljVjVQ@2B|)va#;=],?'h7 =sŖ4"fgֽ=)nZM;B :@~p&.0AI]/ +qh٪*I-A0MKI/40^68 +vd_6W#h.[ViIǴ!)З#CG@f]{'=)1 9Ё-N^N;_v{Yb'5 +W.W//͛7'ZۤEjzw;6G% +F <X<}?x]t׮< +0*T )F쏦G)td:Q!zeDo}kvjqhvHeV/IvoT~XV=: 7~ks,kFFdј2k=CV6[`#![.w=~+ @w#3e-Lx-k *&QP|*G# +p\hʞ6z΅]lWxo G`t(yL;5U0 YҠ;&[Yrxpe4[gf(ewtBI)=Z!.<0;T} #reeEhY7jg/3{;k̥!uxMD2vB|K&V9S@_ 7m0N^Dӧ]$' 8}(R"úYQNUh;+1/9e5^Z,r8eXFcNs|kYvʴ oi)3z WǷΟ$D%w|˫ҺIr& +Z%H[=굆JnR n٫K u~E6H 6˴NWKܵN?Y/}_v^Pl"vr% t,f[QQsDy6[ nC4%тKݣtiMnH;;񋟾tM푷Q /3"8sj|$fjN3Me:Kikdf4F'^J87afRY lg͒ԣbSthNhd8Fg"'(3l.oФ<z` Fkڨú,ޟٲ7֕y6pNc +7" ճbZvQDW+`擓gI{tA^ }F!؉f2fE!Hq xA{xt@虿2tJ4j27]M:{߹ݗU`0H~;;?7tWiګگך[G\s&R(@ #%=J$̭O=_/ŸW7#@72_K>G^9jRe4u'ڟ!yfZrfg?xy+FY8yw&t/Y(>9hX%5Plv8Z[qM"@s@F@cXhဘxlϥuZ6>u4'1O0?l?Gr7ﺡ6=뎟btq)epƓe,s:u֧p셮]~ғt&ʈ̀p8nO9Z ?DxdMFֺ8""sx˷lٛ6g{y}'^Kᰟk7Jec%ũa"N,ơm%90&ִ [mI18u2IsCmS>OtIF8-f+;]ղK:NF]2L 3『0ȯXw=Rǎ-l:@/7A;Y4.#ͤqhտJ%F'=>ú[HL<9ِo)3,QiO0}{"N2gFϽi^^KVW>WMDv,oy.f<}3-UG߿y1V.KO[R̡A*-4bnLwfaYi.)6^?][C.sYN)ЦBiHF<{ҲzKcD\}B`F*MP7 D0oH01< +JB葵--w3yN5-J8<Xŵypxϐ0X0\$Q@g@#CʟW] =lؓP>Qq2ZIA@AٔJeFtJ'{iijSGc~Dd h/{8q=㕩<+RVZ+WVW V˧p.]+L-1IJyK5TE`>1q[Kaӟ?μwl)ڥ?~Ӫ$2ixShR)m$ЁMR{c jz|@wР}H,;Ơ"vȌs:ZZ9$EryЙhx`6s[N _Kz~OpF½ƱLB(V@v= +ۍ9et D)M^Ցb7b \=N[ z^ܡӴ gv#xܙj4ɬP[ IFbJQݧ o>{+CN'YB'?zZ+WVW--ϕꅏtK X=VVo|ق穴A}F!-̧̏t7?X zuI!RALL&ChzkAyQLfX,7)0bR@@U3 F ;#zQAa1mh<[協ٙ':fp@uXeٜx>nRy&;j2`JtAZD@3wfHڜiH G+KkqJ tD#dGtrw+ @g}#9M=$Y"ͅ8 ڔšlr^cMNp +x$t*KWp g,6-FG:^%*@#BV>y@s&9}ǗWԲǩ:A JF,ceF:0Uet󺚖Ϫ\ D" t4}mk-(4&Fw+wVbI]AآtSBoC{WقSRtbe<}NMe,Kgd|$Ms?,LqO q2h+VviىZv&VĬ姱WB#i;+O/'vӑkVDhzk.WU-ZmyaE` J"$Shɧ %ԖM[. +Na ^kDUObc+m&nvj1xΡ9ʠA2!p: )ke*%Xp2T1[W؍Us b42D#ȆurF&^lFF2` +ZxhcV- +Xgnqg8P\3rK0s=u.*B{y-FkE[{hs1S?Э +W]76tmPHt2U#:e4{ĵ 4 `Ѡ"NuSuPrsxRO\ ؙu4? Yƒʎ%Mr*ݞ/6xI#jr8 q 6hSi4b|#+tdyng]0]XbtU<#zwQ{:'[CKf'6xe 1i-c)j +h4,gkKܱb4σ>ߍ=V/W+z{WZ+WV-ϋwE@Wk'z-Gi VO2sVΊژay=, Ry[hY˨F|otqJ5dFOd̈]e1نesNBwPzEZqMs`s9_b3xQM -]]p?mteheϜ@i@sZtUj!Nv8N"ua(ll|@u3Z]Q*SR%% 'hF a|na672GG/õe40HBjtC;Hq'N?P~&*ON~w{+Z+WVfNO^{-81./}nײx/.. ="8EyK(Ɉd $ L 1FNک:'r_;#1;WìȎƆA:jVU-m&=LhdG;B]kWYv/VZg;Lm)qbZVB޶Zrtht,e$B*=q67F=#2KAɀ1^f|qg@NNeV7 %9xӲŤQHL1]5sM)I^ +FӍ%If"&L߳O/$^:P =lj/)N|CyBf^v&/Q +~YWJpFlh>[2W/hxV֪̕4ZƷFNV@V֒LU0pg3NyA^HYywMt.yyګZkJBs ]z]k ^P.|+֥"R7έ7~1QfIV pRs+Wm'dz/$"ew#8sh{t Qk oTQ3$U* +)de1B=9؀잉 1t8vxnJH.^`b/5ܹK$VhUS;f̠JmhhN5RF(9=?|~6ȾC:e⤗(" TmtDa& @lZp4c+7nebfgt/JD9[lܜO/dr<8]Z$.ɩBn4$|#9p@20= L=O3!`O=.w(f0'έHPeS)yjnY%GI#a8yyVvGaF ++- Jޙu!ʑ ,g4mN-d$Ϝ-{8iv Ͽ2>9)]t=6=lA?4ʲSP u4P,)@<[;Z -lm(o(QQʙSP2~m)^[Z-ꭵ\Te,>mcZJ4c_/Hk~jsH>m!$w Zd1,5Â%QuyKu'۷@6& mvN t#bB![Pc 9?}hnu^̊<92&qB:~qT'tX"pǾWqGӢ+9)kY[~?,PV4=/o0 2 egjݞv@̍th}11\'riQjˌ`l-܎ï!Z*@;^i rs=uv{ͥ$gb[ĉޣ5֊hyUoR!] Ȋ»^w .[O鷞(1Wݠ0ieRz̅(/X\53 +_2y +iۤg#{ۑ%*@݂2c#@#:P/f]Pmqhy!E vԎq@hi|8`cW M\q"Op@ݘK_f߁-)p uz1 Ei 8<<fV>d^60]nqx}:wkBuX3C]3/YH>X\u*{0ezw_kZګZիZ+@C>t;O>[@;.NcM<7N"_НVPbAm6 na]@0ȴ Sf>9mcqز1R0fBlC4`3,2u Hc eHdJu@}, +N}9:àYj-M;|rBNޱ $knl NQ條-X(-0c~Giil|Z!4<МT^u: ά蒔:oNx =ي[[笂Vy~*{H?3V2mZP+t$3$qF2ɲ*G?\pd⵰}=l9P`Ctm `,g̬9sG{\}ӝnSP!!Zƫ`hW@wf̧eGEQU L_:@#]r]-3'c*SKaǞ YW8@7 2xpr@*UJ>5R:S׻J~R%?;}<^^%VDhzk.W9-5!=~p呧.J +T@Mn}yc\wWᦂJi:!, Q 3ga'k*mf+ AH%>cp׹%ha= A8ʃIl.i3\dJ9E!m0&- ljv/z`Pt+->>]&F:h҂Qe3wNmCݱ`ec1:=R "yDRQT!Zc^F?æȖ7g`z?Qp_Q&㹁NVJ̫[6Tuhs[z\y?k֊hyUo5P-5 OK'Aw|$ZGoܹM̆M+/hk: A30+sq%gS  tI=Bu mM?,Ggp첲4%:pޱd6"k9e6 *<(5?X U +j-"4v8 e`c.#6(G% (5eoc jy+"ycÀTCT1&hF9/2S %h7tty;A`K nG|!zu@󀇦a2"q4`.S~0=WMΜ{J~j]z=^^Z+WV״j!=G: sH XkP̈́8o)П!Hͽp"V^wL'beFB8U:CfpsD@ݔǶOߩjm pkŠ۱u +73NO5i8N|\u+nA<MWr0p#-[(MR-ԅ1 T'*hnX5Xy~٥hb8^S|\ϰ)L*:;4?lEIJtf4xt=-8dž6DY[4lʞ*b 00'€'<Ͷ/紴^}f]X_ӽVDhzk.WJfHΖv^y!=@À`M+g;s~I{JbWV ~侟w@S~I(a=s E8va h h99TfEb̛ iXOZgqbs w&dѐt=ɐ<>)[6fb7zօamJSp4nX8 D3fAy:wUo@ ;YQOG=<_]P%LR-s@63  ]Fi\5Ee3- +4ϩ8+yMRW򁖁n <3r28*h)%lN[;b-wKM~js9Mv +&Fx @CϽeb^^VDhzk.W7.<.!9/nZ53}\ aLVϔ,әFahSjF~=~Z3V?vZxUv  +6F@cr*r@Gz75Ιv_MNIN<hC"#|7ʫk")m )h" +0][e*1|,[W۲oj<1FVu9\kG=6UU,@3Vℜ4"4$ZLӊ.&e=|Sk=pH;~ /#0:n+/Z-ꭵ\*iy>~* Aɺ|߹>Zݝʿ$[ N~ +46C3v(:vF5$YFfSdfxH4d +1v?zoտ^iy!VC@>B8\"օ}*4ٜn$[mL'@。-&3m=v"ۖ~˝- <$HNW\c}hcpg2_"o!%:@ssߌ?*#;Rm =ЁΔM6Вwy[}Hs;H,YRv7'm9prsXX5P"9K`XH!Y6b81$6F61HXiX{jO[]ݷ?oϑ}z1mv2,+Hn~mH ȍٔl=9 -6'lh!v$Ȍ0Gj֜M!/к XHY"-ߎtpu Np{3.jJx+~`ޭJzyQ+E50י slRG>sWz-zóC Mj۽ vs9Q9Ya""g27'u]B$$%>jz̻xF9.[, /'ցf݂$ԂGq6Ve[,{]]8ڶ~dIx:]1% O 9nQ1POIz8uUtЁEq?pq i$MEt0&`ɸgQ8?rlH@ mt:w/Av9& +Mi zkN׬i*"us{tfϮ &V^@U#tvզxmTeŬj$`! {_1Q_zO~G8:^9 '&h.q}??x'wDB{ykR\pC/?ZT. Q7S<}O>3/}uxeZxHei wfj7P4[r.l 96i?B3hXAQaFoTRr=ۏy.7~a4`t0lz "zk)\o3 Ju4nd024ڳ4%Q&X+#<[ܸ'QU]li9hfV TKK7r.]IވI[taʂWrG_&%S)Y\@]k2aR9+ 2aYc%J1CӮ|CYذ!%X6Vh 9a@&5RJaǁҎYуn^ͬWh<^p=ΛVJ+Eֶ,[o)䁘}NmG0)~r;N)'o!+ZIz+.W=K*h Qٜ01dtd# Lܵiǂ5ӕL &KY6%'jC[ڝ gx7s5f 蓺rS2h-KV\C/N0gmKu< 04H.4BRDVmi̖i$i>xF?7@igDޭA3O qnIsD䐒 ,}.*I־u@/ʓ7>J큡I+D`**Vh//bDhJ]^_?ϝZ7 +V)H1 Q7+RZN.\3 M)d'4=E5lbBzo{M'wӼh.MVhyZu+c%ef}OR[:a0YŽiiPmy3{~S=(hY5_!`%NjtajMltiV6BykIu0fa "c4hCn.G:_"`ÄR0nZ[v_{? b`8ouhJr=f|52d6ziI}[:M\fTTɎ*ʁ۱h D%[qh^ Giʁ 3ِ 'Ӎؑ.,a/as; w9@.z:]`˽</X}8W;1ueQ%=io;yIXy 'S5҆UpICD@8g/\ƺe%)+k=5,"D 7` +a e=7j)[H;jQy(BC1ҙkg/|Cg2\ T):RF +@DaEQA&Cʒ\o{Lդ| ֘O/R2m6>82#&u +I\qE΂ rM(;ÙџxC2U,ep|_4|ɻ v/8u}WYɳ-!/@nj-\PQr=赼w&aD*=Bٷg6GvGn-D3c?rjGopllR3iFpH}ZuAѡڌ =^GAeWnkBۼ'5Sm5D Xo޹{TOIkRDhJ]IHyt:E+ZDl܅ +E›LS324@ľX#Wgxr d&C 1nk06OvOLp.ӧ5<[&I?2X{4  h<{ Kfru $q%awIDFy GN;P' :BKۜe~q1>g(>qT98ihL3VXz^w=pxgOOPgh3z +rf0衹F`L۠Ij8>AYo H֍й),M 9T^HF8e=M *hRrԧsXu@^I2?7 EБsuS>SC_5k(I0OZmϞ 3 +dXWlmDsE+@$*m;T Z He1G7ʫ>4Hw6TLTA4P~mXoc7 `||ǥVhyZu1?,*yUMi\e 1)׶K4"3[Ph'In} H_prr: 9"ݶaƲB'IfYbWjoŽ;N 9 ?xݟܳH$,H|Ɍ; ~[Uɂ]Ï9cXMz}"]Fyd;1];^ r5 +dwY4Rm &SƻNVQl-Gnz'^|R0@~:Eݒzvr.Cm)- FCt|V{AЩ?s5dtYf=:v/a)E[v>Xa  jY14F=skR45̅U15l9VPbN՛'Gm"ȱ^R+EVQjPv[ggP p!} Vv4 <hd=2qxiFn +_E-Cɨ3gD[SйD,/Rzr'&nx1 4M n=Gv6{- .d+z+>J-[+u.X^Z!}}_9͗OvyG;T)K]3(A2%,c6,6bH2]v;NYۏ wvrL1b1Dxgg4( +M좙+ 2Wȣd 3-u.iɭa}G)x-Z:2a2XK]\L nu^!sHAkH I`yvcjʹpn*I4.:8ubhF=Y-l3Bk4GPoPGv]he] Z@ ȋ9}өA0eGgِ -4PD䡄oz1سnn!ĉpV<:'6 amjH\Qp熬,=N-SuU=v?; IB2d +K@ ŅF]MrLh itL}Ѡ*j$`.Q]^chب[XFjf'Ȃi^C7u8>pW5&fm7 1Y h?5^9dЮ;ْ&q;@>{8}?,ol9x[Ҫ=yb +j*/=j^˭\M5A-8?pow+&ً?[~[k|ӟxg&8v:F&y{ͽZ_{? WÄͼ8ڶgEl`Y*s5  n +vٺYݴi!쾜z\ڞ]٨E uYs kp+CvܩCͪfeAUTzb|[MLy]1 a4r{I(>x$UwRAn}q ˨$1#tb=ژ"F.c ,8r9pq32BGsڡX lA{߹φxo/zqo涿7&MJkRDhJ]#T,<-^#iG'x7λ{Unցuq/?ӿǍFcHOIp?ܼ?~>tQFM8צ1kRϪ1id= fL9̀ĕE Y@;zr}R9m'0:Hɏ zQ^cѾz4Cͪگ=/5{ %Upf=Ƈi :>rxcK%֜73q Wh|/Хpzu7] v_ VD5;ZwЛ,6zl8;;Pr!6@~5`y<9J{gGGM,rǎ^K"Z@{-VrkzZ +U'o'݊ =ɳy-LVO} 7p L[x 7ħsy+CgBm=FЊaй 5N'LC\O*kkf05+JC'o/Sh^?XK(!L-}<\-=ŲsEpTou* ~/_ xfOEhm|^۪nQ +WzdԎ l=7mWʵaM'XC}}Tݑ6DRt Ƕ"^a\tx`Tw+Iz 1:XK^[41>"_\_Qc:Rّ UAZ>m`N#_;R}޾}鉡56˘ ŏ/^t:zZFkR5w~Պe!?C{7A9_>^038y^vo=:S8EB„eDs4rG#r" ~LtWjK94cjE=FV$[ff-bl%4lHkܟ%nZDf1VtV""VWJ:XLoj/뗂fʫc9bYШhD?h^$zˀG or{jo4wW$EHwh3k=d:.F#`CA< 7gИ1A܎$a>wHl _I-ˊC9md[OF?ņ ~˔PifK~Gݺ-S:ovR<|+?=L[ +RDhJ]<{F/^:yba3$%Ћo7y.|l{t"fVH@.B8%% `MJ{iͫԒL$b so + +/@, cZ;0HHtP1+&[kIgg Ȝkcm\:xTS"/8 ήƾmځ|Mq@&vtOM +LnїŜt~$$W2Uy,*];rPEX|6䝵l-|`CJ}[l0V)TZzMqa[d?=bq?VswS3xIoM5CWo+r+bl oMtCx%H7j!R2C4D6um5kjaXe +fBRѬ4a Noڡ@;oV6k0ݮ{Гt4i-MΑa|oFiUrW N.j # ԣ=chD'=+@s&`싆*Q5ƖUa.'&CzBQo31ccHtFdrw lȬ@&kСlh +;Im´U=m A95Y5kecSy봽B{"4BU@YpTaBMA#D F06\oߔIh@$W@G6k9ôu9^Sժ|_"["͆l98!7ؐ,>*|0vP;u1ZE}e4'd@U#y<UMiڕ7koZ[Y>go?4^ +Z)rk.ש*mkzZ +R!Jo~kf;x(Wuo?;/d?8Uݵ+ VE(UEY~-1l׭֨X FL. Z%"Tw|!\2(! Ӧ2Nͧ 摶M957L#Ngp̈́ 2zTEv +NAMj +ЀߚcczD1Xv漰Զ ~@bOͱ +f8@3)kgtv,/Oֱ$h|dC@ψ~N-T*e/ٷZf +R ?rkO'3ACS~3Bi^˭\P˳H5/}_z܇݊JZ:9O^H+ڭWwoƈ)Os5Q=*` 0/MAE}?NzSg/|Cgޭ?۵j8!azH5dy[u̓,S)%$z= S#Jb+WB@CP +C]Xܔcy~ۃpk'8b,<@7-Y|naBn9Ʀsp }v6BǨT| (u3ҝLK$B?I5ݯޭh㉂[v(kN玅quckFY짶kP\W/F"_tIIKr+۶i7/~dZ6Oyb:};GֵvP +Z)rk.Q-^K3e8 buۯtwjrk6oWH3#k-5tU+GNjg2\VH_D6OOdS … ʄYkZ)rk.T#oyZ +}}ўJ [nϽ?g0).O߰Y)GӹO.ݲ=g5=h0mۦf ,6&Q.Nbpew&g#Sgڗn 8ֽy.|LomݓpDT{@ėXhRS8r]381)<"QUj@#Ȯ|5(,>,  +NzI,N7I_[;~g# Fip\;%A^jC4Τ+/9@ikW4R:+a' Ksct3to:X-9u+ꅃˊM2 fx< =Do!L"oO&n8'|*ך@ Jtd8)!*wN6{[%.{=˪' 3sz 2 5.Q9_(" ڏ$bvL֎!bJow0(~K:Y%ڙފkj0Dic \mPS ]Y- ZڜuId3ae(pF:n~`̷@u]!0ˣIt:U' +bgudQ;w P|P3010|#wIĒΔsS;f*ʒ*Wh]ͣ!Mm!~.vB7jǓ#=:-m*t^W(zL3C~;K"#{AQZ`bXvgcGne.NhT:R!>чѨH|lX$q:M[{_ mN#_;VLE<;tg}&K:VhJ-[+uju:EE+Ŀ>ՠ nn4 :8uxý-0=tfƦ=s4_rT+ wf5hH"MήLU4#>?kb|ȕX>Y4lے讐h HPl~WD6ez/"mt-zO[,ٲ ~*PU:1ԱcԏCWQEͨߓ31%f q $X sܡhxIwAz Tp۶NPaeZ4{F.p6*`Dy#jw}i5lhF?6;;^_^P7/5KVbp9ybrz+u&7@ m#|$VhEJ-[+uʖg_`kY2U\ ?ΛO6*ډ\e.Y[Yl9\ jӬ{%(+.׼՚zM8ywyf:z/ ?x5e=tNRr^oTp}Ega(j$J-[sz˗/[!ӟm a}oWǿz6ҤYi$;pRql_<09ّB鹸@}ߋlhCpI˚tNe&jрȤAZ0@ Mb],xEM̽45bHON~b8MNCKnޯ9TJk$C(W!l3F6$@ ط-uD麺q8[P>6`G&K}dA2jN4Z E`bKO@r8X s@( 3m1fE{rLXFR0"}nyN)ǚՅQ%@uȽFpD+C#íɋ[0˙:A; vm'W%ٱ~h q8@(턬yhsd@u60Z1#dh-^WowҠ1pIs{Ap=?u`s%R8\Vh]růXN@-^˫a59D:g[Ho7ڍMc#-YiL526OM,@FV@|3+@=sxYpкa3q'`~dmւI)pˆM'vL;<(1"f5k##I4^y 'O⚢񧜈fxh4YiE$'qM0Ϸ%KC(S-Jyf +3c4-s*1Mm-gy[@u2#Yu"fuuS, jJ3҆@bWQbrHMaMU.YQS\B{0XutNis.m`v+h +}Ͷ sU3s?:f0mr$AJG`H jqW0t71V-I>inyս?;MXW.=ŏoU#>!(So? &\}-.#c^˭}|^^_:;p"rV: OF4Ȃ4+@Y)r#*$z)̞Dۮ7b0hGU= >׍d|N{522Ж2IC FMFLSݨ5>Б \g{!V/vX$hQ +Miu-m8`zp:ͮ tn ڎO +XnfA-v +nU5A :)k8_+"7Ukrk#q@ט[/tu. +EL[hEbiAmn8 .>EvėSpyѝ!B\xHTj͹\%.khdWj@[Q/7:r[g0 h!t{Ŭ:69k=!m|f0q}'3tUԽ6po_=b I9u϶Z!1W' ~Cb*f^x qgmȉf?_x }Lk.WoyZ=/?waRQLڥGT&H>@XЌ6:r8Ww&jws:FDj|wEު.69fTTQJWG_ +mSߘF2{rZidkp@xRֱ.>=QNh'9Bn,5Xc.ڈw:3Cơl3cPFw4l㏜ͭ< :Vl }Fu޼c >n9C;XS:nfo'W-*2y+הVПyK|}ڶg)q8ǮY*~0pc^~"ZCrk\C-ϱs?^c]w.R'cd +S-äB]0*M۰&|+ ikGwN!wUc4&b@@+3ȂׄOYG|{_1\kC2)6CM3u`j,3Wseẃw r:_XtA@w4-ϹU3)6dG]EpQ~ıwX"eR9ׇ8JB`_is80QDh @xR•PUsF3g=hZM5s]6<\w{rr=uvyBg,CH# uQ÷йbH!/fr~!y{IMJ \BL$h($7-)_ۆku3LA:T@ECH?=I2!?}_vSj+?kS8"s0Ѫ.[K}z˳*k}񓏾GB)D3e fD?w*F8 wl`C+S"ٯ1Aco)ۦs/)؍% +̓2ܑ|li"A"YTQ{z妠nҀ^|*;d(#mc˥ OѲ(L d^{Բhւ_UO>ŽlM<˵\:@H@衪P6!-2%dL 枲j 4=ЂYijYdTQ5*~С/f?uZlE0 i43Fv;<Qzn"bh-{$PvlN:zԠh7'^RK]"!ܑ64'7JgyslcsuY,;+z'Z^˭\{VgG{\ ]`@O!Tzg_*gmi^h#B*qk:C uu;Lvv>J+n%nCOڰ1hW`A%G]hn~a|v#~p@sֹLDQ[wǹX, ^)MWle6xI)WdGo jK8u{_?` 4_7uz]Lg-w&f¶U[vD;#KzCZ4벇8@sM+`Ԇ`Ľ&?"BZλz6АO(RNzcxZX5 yZ˵9 Zem/~ѷe׭c.fi@C1|s?d[.,aЦAL f'Lӹy#dP-'~g@g՚+(㐵Ytֆ8ב ۙ4_HFKI!%$Y(9,3% In${$wNrYіh?Xjr$o,4 4l$'^h,}(Z^LB l]aF- rgd,*}]&' :u7]Mz;v5!YǏAK3"Cw-: krK>rK'X]t˭GrN3 6_lw˥~oUF*[sVHztQ+C `#ܞ^rNLEZ|j=)Ȉzm3B^,R0  +6;Dė|9"Tps0dV|ը:.I#l` RFHFP~1wKG=f(K5F@g٠aہ9Bl7=hȧp]p![?{Uh/W ~r~P՗3gw.o҄5hu郭r"`&#a)joX0PţI Wl()5EzM{i@f dIQ6SYkr:S!&7DEoSVqJz;FWs}С8hT%MxZK)›' v4|8aat3$)SwB@qTZҖKa;@Yf@|@@6T V8$kfs0ɚ-"6"% YJ0oq]TjS ;[},t*BZ-OjDkk5[gxsw+7Oy՗/m>g?4VW3~~+2b ȴAk0ŕ !{!o99|+uќʂAD*yYUux4d$t6؊1 u "s{v@RT=Vql#q% +3rhR aF} +g$57ery-iֺ6%fl 5=P.Zw /Vk.*ck(o[@{y-fz˳G޺ݹ8VIYpz:Ϝ/NE0љ QY(OcfÎ"iK|Myw I' *+10\]cM}\GBgwT)4`p$,.Ϩ6 "mH1ï_&V% Imrۦ 朏O-撉XbW R|]mI(4L讀_19CF4/wذ7irѧxNmf r$\h 5(VQg;Fn@/O[QZ40>벫C +J̌ƻI’h$R99BtyF8Td|DsNED*T8Ƕ+"H1Sc@WW;h.MZ +y4-^^G{݄j1*B[_?-_:OExpo'scAt4T;8@;dfdw7y$Z=%DBrq jF%u8 mhrF)Ƶܯkq\i +H %Ͼ[QE12ۊHZwTZŻLyt]|,] V#)ia(Swm(q@71`%FV/:$>Paqa mth]عrµa6۴E>6,vz~T5Q+:b"@%lh1>DҼ݁),pκn3Zh>oVk!=:ŋV譭Vk3ۼQ@{y-fs`<{yUv'}[1-`U 6Z[ox;?>@es.QԞ^`Y8 ƚz$M^DTQ%nIv*PњCq&igGmcfKt'Ă}ɩhqDAcJ xMX_qȭL#VDf7A&4J;Lx!:(:~k;{5t[˶f k6׈w8~]Wތk,vNnh)1E9ٕ~F;OFZ1f7z|g$8+gP(Zt׹>lIt2Lv664KcI4LybĐhWl z:kf6o1WWye>zTּSͫH@{y-zz˳4ܹϞ~׼[1- jB#:?TwRhX/{V"fTQ6ʪz<]9 ƱcǼkKh/є.סx_V+w"Z)}]1|ޚЏ=/rK7z??](zRyc ;8D.g84c7B _T?s>ru%Bt}'D;xlC"b|HZ0/WСPcTW +0ƍ7{!Xn:(o[t B=T)kмc={*-BX"TH¥x= ΫtbЌc.Ku6f-P@ M[_=/ϱt!8f~P[t8Ih'>^% (~Yal EEWi-x @C>zlz/v:;ؼy4-^^3'݊ ͓'~pޭմ+yzfbQ蘝ۖ &dۊ@\6y*r͈@AYB,; F  )νw%0A ΁p&^ߗ]M?IM{X6 -D; Y3p-ewca.Q+Ž @Z[Q? WB@]Eء[[ +ki4@s +5%}OwMW{{K:E}$?W:K +N.s*I,a2/f_ _6&̘Nю%.mkƊ,B1rwdB}S^dE/dI$θ 52@7Ot`e4s+СkA+.i!aoi6gyw$ 35X֮џEzvNg\tGk6Zc@id@Ifۊ9NP&] FJFfeBm-"wFh&4,MnJINQ]Ꚑh sE qZvlmw(`=lq8H?vcWDtk0w˔o_!=)y+WV@{y-F\1XR`bqH/i}]f*O՛'݊T75Q݉ödV:_N@-CWD,>WY{֖;tdE"" gH_`{ W8%X@C!Рľ &^r)VPGWٔzX1+wN$4Vp*6^W4:˔,H> 5mZu-,a m,lTMab)=. /P:9X@\5ֲm-cMؖwޱܹ7%@yRƋxwQk[ Jf H2 @Zgb݁D-ָ6 Xy!a{ӌxF[H~$0n4lt]޼c.ދ I +}X4&yW@{y-_>mkܹ?Xn:q[ȩ@ؖѽo6 %_utß8%sKUTIbf(HK#ВyZ C0 d  Rg,IRrgM-+N7f=ƒXz?u\cڢiC6jm3@f`M-:uA)KJF&5T?:̈Z79T@g +6=;&+;hĹd&tHAͲӜ!2ʀxk#@֕lNUWH"gDc|S ?@cz]y@anr˭ctBH[o]{:+k"MK3h\ٺ]yr?Cm:ŋV譭V5VyE@{y-^Pܹ%[E/\G YɜtL:yt`G}F No#5;fړէi׊ EЭ ,u8`кw=&vgsrF"u ]m%tOk64\hc!21^eR]Bbh6/i(Phpyept 7y Y{P |kfa~&u +:ֹ+&dH\k +@G2>@g;|^ PiBadXGq,:ٹ:bć^XmTڰ-& 8u)kg3CJ+%^|eS5f[n}-'^?]E | ^^^K[P=+/`7A~D|yɓw?8$zWkx3([U +V_T??Ϝ4'mc|h WSiTT*E{pj/:9?и@^:vױeX"@ޚ9AΔXt$ *Sk3n gs;2z24#NyKV6l!u&a|40n;U⬷l2x V&{ ɮ|gU,Kj =`6fxl1b!%0^6fb=;a^=!,K,̌GݲluK֣KjuW<7Օr;+>"EÞ4e@pCES^ ayf-3z/vZs%J_f|I0DtUW]F,nPfR2O0>g1^ bEX9NZFjȫ%q H8>_Mz?#hi`w@x w_q_'@HHޛRȑ#=nI\EOסgE9W+v#@Ǔ?wE7*px&pFTㆱ{qK`E9=/_xr-rI}Q^ec>W$IOO;+.n@u*IГr +#Y8JTKߊ@+A]9#5ӕ[[I;i_H‚pgk@0Dɦ٤[w\Fm@3 z1󘝇U@z&9teSgIWtI|:1ϱ j?=,Ѩ1=k2蹭 :ȕ@MS+.yF=9aL-#5dtETk*W r`ڻa xAnϨLXz16 Zˑ4mAape/Vv[㿰膌ׯZ%%f9[F9Ε늑<]k+NqE'M@@F gtk.^( Y/?ݹcoEeIL:P9,x>~;O[6}OS7׸DF N RutR!^%9puĮiH6D7uUU.9]uɯɈw$W Zi79~F5j +lhA L ";NjFnߢx +); m?xQaZd4.GWL(C%Ө&B݈аu V,<ѷiHwUU HE]' SZ.y`(Iho7t/\2DO~޷pvKO~>\=G*U֯-rK5*V5{ԮV]@ʵe/Mҹs綶J@S^kc\|={=GV>,scf\~iЉJO"j؏2.kFz̟?g*(Sin;)yt2XpaVmO n_ lԵоڟym- +M zſ?MOv?|nB?Umıgs]v<0%YҤ\3Rsq`{3X,^}]w"Z+WLz{M~Sk桻w8ק~c)p')y#CHG` +!xl#vTғ^6\J?nDB  蔐QTxmcA>hq5IWP(fՠV1LZ(,ғSX>J;2/F䜁l1 B:lςp)vq07jVT('(bou| xe1L'3"y#~C*ӜufYՕԵkt5{t$&ASĹb<.=Ҳ*A4 Y ;2ϧMmEW:MPZ\,IJKVyVJEkI)sg~WltQ0ݽf yۏ N=^ nkѸ2$Ch[o +.lK?p@׏f9rEԴNQ+޻F9Εk(uEEgIݧkXuǂ])5 2PNmZdSVMN@h# XA@NL׿įOaL=>%B&&eG<3?Unxܿ)ضzn@`Gtsce֮"yK yXD\e1;#uAN`Jxi| ]p<ʑ.*x, ] +6cHF:3ʃ,èpTW+qrʡdF:9gJdmpmmqEu=]'p)Vhpv>ýíKFI73 <<@JCk}.: Y&JaG=\ԕލhHQYL FO9$#5WpZZ%TSƟk>A~PҚ @s @TSwhG~d wWHa[_㿰FB܅/7߶ϟoz^gS ]7WѤnڊܢF*kf7+SR[wr+dyf8㊌wvKj[N|UUn;ݮ\i߫;I h&z*MaY6[5=!qeVqڤ{+jKLOQ` T !i`C ڜ?Pj\;Vh׿ }vBv!+Hv wv}4`p|'sŚpdG'nך8pX`𞱣|U$Q$EF,H0>7sz[sV'zˀk]C +)4#eA3:43g yN$Ns,FQ8uڣ4iid+476_!.?e;{L݄sQ,LR9U]~^y2p~FC)[{Jؑ6ھx܆je!?yavJ. x_j'z.{ +h=OLD7]*}&&/l;ƨg; 47#pbh[[MbK[͗7KO>W^W !ʥp7[p/DH^P򍥦:左r $Rtȑ2ᕮ@ʵ0([y#MXV.隋u/}ⷣ?&=yޛ=*$}JWutRh4еq=obcCM )pu)N从{`6zjOݧ4GsxjFg=gU/C\s٪?dR67ۮ`r=.cX +@Ps /( Z@j*.csEV;BPb|hB$9]4hduy c ?N!qsKα~yOZʄ@KErkhhFuN\ӟyg-\feWd;UC4@xtI +xEk6⁐JFZn@:;CDuDEAFiO7ct|VSAѕBoKD6EXPdg]%:'e&+;싢1EWqțvDoOcq̚+2#6F&]ZqVIgb+8Cb8eH2gpb4&dE],x&B@,1 @.4gmUsfIvatf@)^6'}DpJgG&O۳u>cpH.3gG1 3j xWHT /̑A#onQ{Jp.2-{r%~ڲ\Xң36t1O%e>O4r71 84xǦ1KqsO|܋*wQ}42)ҴBd~A;#! Wn}Z*\ ֨gOKuR>fɧ{ϑ߳Jӓ'?q!M}!PS)ÈK6QB6*eTު <Oi  +pol<1b&iUF1_x夋+:>0+9`v;TolkaƋ@KdoD7b.M_y | dВ%k at~|EW6tgb[ĹLF Mu)$q3TtYN/ }WIMߺ+ +&a7e +$m7+$.ȾBvQuhm.,,J8!{c?F~.Ɉ|D4͸Avw̳*Qߊг$B`jiǧ&,B8E1#typ>' LR-谌E*<8Vj*ӬKe%ċx|ϵ@%u%ZԧyDE\eͮO}񫿑JC*>MEO +XY Wl66V+WKErkaiN\2 +-EUSyNS@2@`NhӓaUĩ87D!A%c^X>W[p7d#<24sExlHu|ZvT*Dx=ѼR8pKt1|bל쉭y4qRBM3'83>%7Tx8̛1D3E*-D.?fn'h,۴`FD-^^\Qu]XV*Lgg"̂/P@lD .RtA}`.;b%t9@"thaT҂j8P΀^3_ v( -Zz[} B~J Hi1d#ђ駉4vJ^D ?Ƙy +F5tc5v] & 8d[Y^$N~FJ}wh{f~ +ҳ#_KuEtk / +! Itנ@3 e /WS\ 'pe&4:E*k bޣ\Jr:L_#r/(BXr0~tEjH׋:&Ê}?xXr 86^hWKaI\. Wk\fS D}o=0s /[hSƟΨnG%\AZ*\&[\Ւ&HRˬۣfsчI@_YH㕑 K:EK>ACo8~[Glco˅sa>Qwq|Q\k]V CK݁@stL1h49Ss8-ct:t7ր"ԾN# X3&;GTHQ,pm뿚qmUxjf2ϴ%%I4,1,wn]xhp(QqEuaGV ZK^ӊۀ~5x%t;Z{WD{W@Ҝ)vwly]}GB\b3(;UQxKj@j\sSGTX`\^ۿ 6F) +KgR .w2MP[P-A `rl]*[N l5[ZWu&黮!\anyҙ[gS7t*+3蝦 +}EkVsP<{Zu_KOsFP>w:u%o`Gv} +3 +DQ.@UgS^|hs!5rQq#0eayrVєj9[^YFϟ7Ӂ[p/$FM{>nXV1=r#(ǰ2 +bgƝ"_5>0_ ]21Sɒ@|d#G8s 3tae]Uc͆:t@@=F 0hiHuAY3VNN׵êRRk 4k[ +oxGdW$<؊׌njl8S4 +3z/sgf[Fϡ7"JN @CAd +f띿 !2o!<'~893}t-Mz5'l0 ̣%f2kx Jqxl*cSw)C Z5-4*+:Uzj{T*9r&JR@H-V3-麜z{I搛w}fssѭj9/co e'rD&|Lŀ{#>CK/(҈б#Ƴ?Cl$Fj +fboF9-zr^<`mh dR0V=BWEvã hƮ׶8ڌ$* :8:SܹV1eI8cōZ@zLi0dΚ + =h5}/j ^5)Cy$qk#,*p{-yD2DWuF"oYh@7UCV 6]ankȾ1?y{o+-= +A_o57/:;_nwssl7s+R@SY,s-麜$_. 3wijg_s^AZ% ű_틧Q(@'3S-tQyC"IL,PF,G>Pu0JWTWFsz7{[):(Bm5`"k-12f# +J0|)d9{B)#ˉ⢍~fxGcso/VE#Az A~Е&Q"6G3p[NQCm4WDŽ<ѽAȎsSF#HB'UlU +eW׭Lޜ1qqr|U/sUϤ hnh3zSjnݝy[NMj|sE(,[wh:hU˶giN%ӟyg&;~zO߳V\o8~[ħ6{}\};`:9"ZIJd Mr,IOh/XSͩWF +Obi'*TM+@dE)IɼD-%FQ+}㳓ԸhԞH eŦG煏2Cr\.Jl"C-pTIל;(F3<%ž@oK$g9pʱę90O2Vlr\CdIYb.ټD@yX]'L+ +-߅@oe9ojlprucq0&܌6Mbn~_HGݡKĐ\3P hfGxܤXh +nyyߚx+M%׵\+By+Hnwcc#Z0B-t,Zu uiڄo=ynuѷsǟ<(Ut{˨F-b9v ܰzuhoF14ܔ5ӺyRzqޏI2Ic4bE&_ɼU5: s9# =AV䔏ZM/4[ۺ%B dqt/TNVJh}JDwt@SdLG^@K0=& Grc͡0耞.Mj'/Ş&)%4Y"'bel +BK\ђˑP[ZchZH: +~G_iX`0hNn| ?kў8# ++ v[^;NZkgg:auA;DՕ$z["Z95DC-V.+R˦s/>jI7cpol<6%JU]:y([/3ZoF~< 3fau]U{Ȫbf9]BbӒLh Э9aO=\nMd3DP>d3-. 2"{ kuF 0q$AIzQhLFf6M';K&HWJh4; +ETK)!a[~n]ܢgExZ:]CJB0Iڟ>P汩43h:j|{M) +] +0g=iɸ6yE82+AF.;!i + ;8X A+̡\GQ].h0)Z~ԧ?%z%_ʟ8V蝩"Z9ΕiyTiRyTɏo}hѭs~䃗D)lgzKvɗjN)Al->Śn@Z0ciQ?ݶeTRqTȑ=j_/jOW9֘ڃحƜ9Z@04-P/DR謚j>$:Im$Y fOrfvlS hӅ}+6a7 +P.):)#Evv+#ElRc J6wn̋f#3v(h?* 8ӊu50ʲB1I/.C^G[c,ȻxHZhg5Y g=5M$ZCe'~^?34oEҟYHXLk OE"hJ"<H iR"Z9#TܙgOKu.R~P*__8[1s@sqVTW5E\\!m]ЇLs4% +e5 78+h+j=WVP*+_io$E?̡5U Me@S`_0dm?,;WQ ˆ̗ +JWgmfRu9 8Z`7hp}%E +3"pv[-ѪN횈6|]u ~HtIs,e4ap\ #m17A-ыjxE@g}@7pZ-;sHfۃ*0.srXb~IBz!hutVgPA㪾=n8z7G[<{ϑ߳VGfsss3j^__jjjVsm늰<{Zu4 (OZ}{V\< kQ/}`ze*rwߌ2_Z5H>.`eB zz-AB5cMUxg ̤$م(0PhC=Έ@̹pO#-3/V9pXڐ<hO@9@Ir;ToxC Кsz ,jٵty]oB>j1Tb]U$rWR[fV -(Jh ;_Q@}:h@vcLGHmqM.fɝ.*Eƛ)b%J?CEYR2K +~꤉ױY(_=O>zSrE'wt/Q G^ъ%?;,h:W {i&gBVγUYTRǗΟR 1~wz ~ڃiBvp"ظ}/F ]7]wwVnwfp:=S aH$׶'n*OӡmO_}j vo=wQcP9qвq!إf#Z qJumQ8'TeRe", 4;%>WK 6F :&yrD&e/ +=T h0h`\~Xt }e(vOXh,HzǎOGO}ƣ*Z=?Lj{T*9rd' v_-RJ<{Zu4 (OᘿGgѭpkgY;@WC4BD)ChM0BW2 C R"3ōs4qf2sj^wqwͫf\szfaj75a}+/P0h*E0]P ą‹ms +6 }YgWUB)<|K8sԖ[Qc{jQ63 +>ɻeARlmbU芒kier&kAWu:f‹k1 "ipj4IH̝]*Nh|ƙϚi&kJ1RmՔM6+!`q#ް}d#{Ku 5%AFƔf6Gs%2Yf#qyܨg\3BTԍ)׊|jd+.0 k-GQX<@ٙs0qQI@˶WE.B]TmERШOXpk[pQ!׳vL 'R8de®+Ǧ^EX%Ufؔ폮nqfR@3US84nhaNْm + IxF†C^ǼnP nyvN}(7, LyM>ӹRsgnR؈V&̭гR@/… iNь7~:u/}X%-2X ϲ~ur\iF`៨ЕyfgM0[ &*.9+1Ѵ4)^U$O~zST‘Q ;jXaS%"9 ƞ2rv1OQT@Ļ Tm&lb4d n |5b^fJj+]!6*(j/ghžX`bQbF<4xtWPR8@l-[Okw +e +w81G?WȩmyXsIv.:`ٲM`dy0qbwB.QCYc<+.'H8l:-G2]G[X2H ;AeoPT 2Meގ4Eeuw܊Zm}}Jq(^qZ*].\D,gyThvPW?g=_9$Ne_KqiE8FIAZ}F +ȴ2?1DIѫ ?NP֬@rL+2c~ p@#CM5#pq\ CPXsKgP!8U_3Bz,$T^ޱr*EW +p4su%,)j8+"^o(:D 0h?~@ ͫ_1Ll[ք\e !FWe3Ut^Mk'>SקߚogѡÏK2>F4X^0˦~asCtRAIe`4?̲GmKevzqMp6#<>zSPֽ`A9]ˇJV9kVwvA,ZuI4 (UzMPh h3Ι0J7^N~Xj=u?bq JE6YFI5܌&N`'L.d{8%6x+zT 6r"0 7l)ńⲍW`|.ڃE?zw~ɨWe'i@#qlr}tne8/C*@˄$ (8]ۉQ +TbaX618IM5/ KI-2.BAV\dKqr]?q7y3hݢ/$f6;yP"]͂68͠YƋc#0.kHÌOl( k39JВ;s9n_:j M TUmh]͹dBkvJBIH i.R@6z˳:]D3߀y?MtMG&iƴn͹:pCoK/EBKW ^H-t +0J9Y +v@}!#Y UNÕ 9L,95%vNyv;w^gBҡ`K畏L>xK I@#E4peA0n l16jlzUԱQNc֒?{m7s Ɩ1}Lvxȳƻ~ymYn9lnnnFZmQ}Z*ݣ%<{Zu4 (sSA$|\%DY!١먟%.M 3hٻiNm|SO͍ZUj*R,&b5WT dF>mGmjӑ9V}<]Vl3 +Ck;R.0` ۡ)̀v(<0nRmnҁY}uK3-e +#Rf>EDK 0z939ňxi茒:{3fA<ٞ s 8l9{]0-#e yKF\ GBuLY$ݘ   )s0 2[E6BHstЈ,*v +\ N] ;7|%+vk];Ǚ1WwsX?3Y&;of)zLSU'!سʵv%VZhP˳iNesO|܋z)yŌ酳:=O +.?=z0 +@b4@3fJ627 >==(ˣ%Yۢ m<C[{) ϴR l+Vn8͏МBd'itPH\rPFݣ*n^)^Vtc$' ]ASV̝v2y@ؚi0'ӜO +~t7{9فyE"[g$Dc;Q5H $2tRɆj hiMѦG0:z&hC)Zڤ {]uykK Pf p 踺e|Ƶ;]{Y"y;D"hB%ij6xKXІْЊ%2%W"d%(Gz]fi눜 V!=?hZ=:1$>f|uQL0QHew1X۳~P}N' +@o2.7 $Rtȑ]欥"Z9gOKu.N>N۳^J=7x'N~V-Ͻp\jHZAaWG rvب &HqI+9#,ocޕyfc>}j+!G>x05 +p[`M8K.iG4 tUXiJ#5F8M&Vh`z&QNp8>[Fz\s *:ݬ}EG@.rMu%A g2!u^#\q{_U'x9UxCyon:cFT2gj +~J[¨د.CqdH?eO2:Jg4^Cyu+|xm*[ǖL`] +s,q.e7BAFvGEG;6e;V]f9PU.ӿtvwtɒ^7^tv}M?)2hs;rnN}ލVB>ptv[~3ws]vfS iZ*+R.\jy٪hN]o@y +|O<K eȆTbܥ +Ey=L54#))!2fU蚳 ;n[|C ͞@39zT)֮5.jFhFcqL"L#2ֹM5mkK8鼖*9-Lڒ +s`Xb/V!$۟*[䀖kԚ,mvYg@:j n谡Cg>a1}]q X":`QD?s.5R\O;pve e^ +" f$'t}(bU\R]3;v 홂9[zFMzIaәwꚈ "\`nUW(N(uY{4p?.V @w6Fر;\\}[Ox4˔{db'q Fm-;uu&xt@R)ˤ += -R^OӟoXzͱ=wm}'^8% 7/{ JRvQxЪ8cGwQZe^G9%QܒOFVp m {_[0MvM2ИqY'5(Y "5$fOmg1gUW,Ŝ.fÐZ /U*( _ĒhDXNE&Ƨ2Zl&TGjB+ ΌEpD^Aׂq@Fqt@c&Kqo Kɪ +ЃM462)'4f84g.(&m^B9ӤFs=O6EYW'<ҪMbR|#K{f&igCW3rfp,錶qA !GV1<}p3x[ U>TN @aiLn\QU76Z;\l|8bo3]t +]+QO|$eVS0+6,;e憽ɑI`+P{.aG}y¥Q؈V&\6 5E-!<{Cj<[TSƹ'hѫ*|F{M +Y9Q;2 eYcV.{ʒϥY\( [,~  =jY m;+4383:qؕ @tTRI fsuuJQN@h/ u6HdVi||`@$ZtDTYx.gl?Gטm +N_6=GD +4D6V5K4F@GC9ݣR\S~ J*!^+A͘XRxA:$ʢʱHq{@PLFKCfgȾ?5fJ0ǖOaALI/BQ\v~}x3g 9b|,2A3 mǎ=0TSN)G=` Ю>.M8=׺ii\ġ]\ uMuG1*#ZQUx~:cByz#_sFs/h՝!*YOAzT-Vny:]wۣS3(pZ$ʢw}k{x}Ti602^Y_a4[{vЬx\*r'dFݠ1{ +hGJ@} + (#)_فIH1hn ]G3aIa] Oˢ:YxEd3N@ӊ\Il>\s }!S=O.wi;aWG,zm!K4ymW漑)(9r,+a?Vjɣyʨ-OåAƹ+e]穦>NE')"GıRtK79&]nǏJ)Ր-.a1X0; dXsxRVcؙgVn8^kƏc@a=&$PnhzʞzN^B˳:]w{®LRق8ß ^Λ<zb/q=V1a">b/k'N禳BG2^EQjMd}kŲW>J%@ltxޢG_lLytIeמ^t*a?HWݣw6Fu/7&s喂 pW 8eN~X*lښƺ]:(JVG$twM"ar vDȑ ("t+J9F9&y$߀ta! +*T'LP_Ky>%1lvߣĀ$H6Rϝ$pg~5ނ]&y` Wi׽*?;~jvk?GO: 0ap~g3CD@`=kHYwZLKgX8nV?dm.e{ӌ|{%H.h2mg +k᩸JUpz921<&FIX9 lcqZl3%K1E,qG2h,R07VL RÞ hNFʄ>J8]\(]z6ȓ(ttnHhP +~Ĩ45US.rV~f|fZ{F ]IaN%#~ &y(X,4XJ@{x?2uKڃGafM訄Elra'*vm[!Cj6Q+zV[T -NQs>!:]wC?hn*q$=UgSnb%>J<6wwK g?1f_ђć= +DƨGM0!saLϼј?h> Ĝ67}n=M9ϟwJ.c(Vnyę5a9gl^Hxg[dZ;3/-聵p]а-]Xjxg0A9@g@yAo^z`:i3>T=nKv?_S ,utp6[Q93TeB6E͵//X" =\a"yMD^Q]dxSV*9BXJfC?!JoaПΞ+8߄u0` {fP抉(/]6_;}AO֡y#-yϝ]wyUK!Wuztj?MeҩO=h)oe?Qޭ8n-ԙ䖂qcu5}qKYjp71|y['R@/X8W.#VnyNR[_^0Cef7|TCҒ' oɋfR<'<'g4Wn@lUf++G+R#)*u92 ˬ _d* 3ߡDʈ@櫿…;>t&<*9Zx?KV" Gu<#yьk'?/񟱌@-ϱ;HB1 Șiot\37J_pVe.(Ǥ[nP\刹xGovdJc蓏|b3>3K$"枴cMݯYwA] iYPX B {-#L D +[@{gjv4j%7T*`3^j"!j\8 hh5b +:-QH^lrxy@C 2U#J&_m@{A G`3Q+rhrYGC(eEWՆ.]V!a3#i%tAlYr4W;[W<YOp[9׈4xM+Dv|+t{p 4e (,3Gs`@dCna;axF*|l}DObu\6IP=CVgPiPB\"+7>Vѿ8؆G%v靆*P-LЄChJXˑl`(f$}[ԋey]}^|FS9qC'4'*jERہA3չa"ԕ#L1%n,s ӝcgP#ѴhHb'Sl qMp|aVߠxK䞡+VZ[YpD:_Or^$1pEHfaP2{cݴgC4ΊQdPf%B9j[`T 1MG$53,*D^z4.ƁZr|G& ~xʊon|˧pMwi살;A'WTIZ/R@PyZu݂-It{#SmJFb54')by{2|Z8[ijhrF=n ^ʱ08Gy1/ PO.-5z5$";iWPJ'T^3[F~|4eOۯ'9e. oX^AI@w ։;7"c,%hæ=85XΑG/.3 G]YOnYgCXa]g8 uhZV`OS1Dөj`oW.ZfL^CxOw"#NLxd/\3uNQ Q< `Lo1ˈ vw`A~I5jf2{/Ft$@cm,e5nu5P ? n~1GT}co7j=+BR@DC-jyjWjN*CȨ!c3 g]t+8\yĖC[=1Yy}?9gTE @K xlV ˚HN;)l@m6}[LN(b}j+sF @@ĖD3#6*"o:Vu"EEB{r\`J;Poy`ʄ:tթjrtuxךkˣ g LDdD4{=ӈ$g5茖U 229:@jv8-wg: jWW"]z&+cRඦraAQE/t1B%Vy譈\h{IZ89.Cf?\n-H[%)Ҫ7Q߆A4ǁ%;lU2bBmFww(F20G>87ֵ*͵%% &vBvq]tSɀ (8YS V]VFO)3;Diב\v.Q CS2m`\pi4L&POz^F`rL9г,uR:ps"'YFkAӚ笫[kG+ɯy&-D- RRc@O]YhYAkvóNh⛖2DC-C'$UF 0F* @zVYsmU>EvO&ÉS>qJ/7BN ,ӢF4[) 96tRm@ʇ=?̠VftP[nx73R멍ǾtSX:zzF@婆+ǹͥ"Z9M8UR + ⴱ/ܶRR Y䢛`įkS"=?oOw?{o%uވܫzj[ԭ]wc9,cx393<s1 66y3o`b q Y-fU,ں$U%޽?W_X2rϪieFEF܈jѝQhV@*<=x/0/IF+AHPe938ӱ?1z۷9BgQ:c)?ˆINg5ZeI%@x) V&os0'rL,.Xۢ_|FiuaBPUٰk>kcq;C0 o;!!j2TX2U%!BZz`RNoN:GAÓPJ + Ʒ,K{k-FsJ Z{"Iʯ9ZQ !с9Nj8 0] S#Њ:v+;!Y3h5JgGGsM g݊P@Lϰ̸~dlY۠ĸLPОt1:̉F9P=3R)"6$-"U&-K.ȡҔjlTMJo5`lҺڴ !n=Cy|N-!KG gxaD7(wMDG>rW2)@^$:Se*ʉ87jyQ}!f- rvH]ݢvȩ+m;9fk{tӊp-P)h8.g1x_A'k/ mB|dJy,-9- aʼcIRV/ފdA-?#edy81粲粨$q'22J 9Riu:qPDsm1U'8rlّL1[ +jy^X,.|STYGOt9 vCtE'u4#ʴ tdUXDǞoL2 +}Q +O=gQܙ_E@ !P2Q؋:4ӡ>@w` 3>'lPߒf"\hX~ipv4KoC~0Ew.7T;c]v>|uo7nEv>-g-T\ޘBOPcǫGGNɬ[1cm{ƻ;OOCAxCU4ZhrBQ&1>3~[jGšќ@#8[Wuz1ѳ NE2'l٘D+kv換dqDçkU $ )(q N$xXZ{U !\M} +چAWtb#Cnurgޜ0l욟2۳1vsS Le:1}0] ߨP/b@ow9m40z +\y1.Wz'^MژK:w"u&w\( +B@o+r콳n̄ڃ+7ǻF}@|#aD~K@rSF_L?U/Q}_RT +1{#&=vˋx hOBXЫ6b͏xΜ2ɶ-yա7$y-=;@vAC?/NhyޱE`4&4/GE`qhpg]Rl?zⴍ!;TcnNӻK_!о=AQCY`yI +./n(h+>Ӊwa٢ dOEs'NҕP:1黮>z븖԰~E9QTѵV"Z96BuP.S{h֭V=F}sp?̺3Nz x, +OAp@[D Gr@#]P"MdtJՂUTǺ_=A'R8c G/gVTT/[wdM)}5;nimGV͆h;M,@hI4:aCF鿝,ƭ[3ѱ)ϱ[z4 >[V=#^@ 9sC9?J=}qƶ ^=}W~ƫIcLR9m.J@ jr@<Nkfx%HTx&"]L͉PuP]*1T:csB&}-2=YP4 %{Kp?q\#)z4&MT E@]:]w!1OX>ix7WǻUPT*.09FvSY ȇ^bxC/* }_K)h6^LP`bH`c,yzuwp +UO:/!ʒY%,n ˁmF9ú 9>$ڷ ms2@z/JM-Ah q؉1\C8s4"VEJ?P0Ϣ8OY^Z/ .g_(ҫ~W6!wxQ1&Ah}B̺*骲e&g;<`SL}*K>mAckw/U&н ^T cwhC5 NZȸTbu73t_<\]Kw{~ʍnH zuuZpjւh}(7HI3/^i*Zui~??ʹU@0?~/#w+Zҥa֛>h&|]gʎOGX +e $"vS5|:rLND91nK1_$hY/ +ʬԢ"xnmAٛ"Vt3.z1ݱ`[-Q7L^jB]LV7):#u=+R93Mm*)@T0#(/R<jchP_ >.E{[D5XS[b]T@ h-ZXfpil|DLhh9̉$^b/ڵ{ɹmVWk/ls=vMs},}ޤ^vnH]X3.Z,[wteh(1.m6uqn ]a mE/5nޢvE4y (1>(4j~TXNI>Xqj+49'wvJsƒ +sPYp4 юV8TS3߬|+Anǫ6B ]ǿm-ʵtL,G E@7Ki*Zu/g݄u3ƥ'~?Q ;v-D`/{^|qFEM*SFB?-QNhSf3Gq@ysCȚ QYmJBFdֱWNCz k@`bx<r/5z3:*0"^{yqio>"rPpeQGs9йbp (a;z1QZ4)A<̝T/pj۫=c܍*Qݱ!HZ|Sڔ#=۔n<.I i {Hf4Z\Mq[nrX{R +f9^:_@>)O{Wnzū~|ʵn766]c](tFs^`pjNݤί=sn<z,fHLpBHP˷ ;rcoƵ;OWXq؏V#~ťb:|mcVN>Q1E$(?@љny& :]w!tsͺ;^kcܡ>;,Y]ގ5\kO{\k´/Z^a<"CqP8c:ECtRG ++E,FPzYpޭRp&;pruoiB˟8A+I6F9@ o@ZڙMlb}᧛Zr"ttfNrjAUM˙zw(hN3z[zޫ(+dd +BtP/iG*ߡ!Ɩ"f͉9}8hTwz1x\蛎2gv_N?͉.}A.g:uE}H Q^eurEnף w4[(4:F[wtM +P^p,C{0 X֞H4Xүz- +=?TqOoи?tqcapmz]Sx.G]"ѵ'C%Y8 >՘p,@,Fas:PTy]-׼Ȣ5i C }g@1|qIx^)0W3QoxI؜h@lZ)!Nc.jz&%bC 2h"RkK3]OJIQ |Qru/M^Iۻii84HAk`,K`e aq-E:iy $b ;A͆\c"ڛ ?{;?Y<9͗޵#aJO])eW[ +oM -QAZ=?:+7\dV;-=:/0Zu7{Sv֭p!>ت?mhSԱwC,E nMIkrЩN@+d4yG(NځQI;i:A*^UU%1 \~sb :3>Ī,(z-N2}/x݇Ja:b.`~s4ho&>7MNuUoAa;62h9`4~ `+x 5.y!h`- `*͠Yz7{D#g̊L36s.`Ե<Éw?7k2݋d6Y{:wԱ +[A!)&"x:VDI}Ͽ=rW+MV"Z;@BIտ9sXf}a$N$Cf:( C +Kފ ZoĿMcI^d+[ 9{XTl4jYX*qF3o*MIlħm)W&Kf ۤz=o!)H Az:PVB!E(=o!B1薵qK9"Ψ1he=NʳpivJFU+ZV̖DeGC;.0A0/oW(IȰ+%C)@MS+* ~q{Pif9:UovP&m)jE]cMZ$[={})hhzm?ܙ?;Rо*䰣jrZTVD|<UO}<(PNϝ&@o/ j1t ۯ>+ʕkh%9PfҤPDkK-kٿ}K&gx˛!](8Q(/ef]d [FNLX~-F_0(M2at7>Q +8rCbO4Sb_J@*5LOت,: CȜf@ O|;:+ Y,؝جUNfnAԩ # әhau@o`0U 6c*Bz=+$eLrP<+:pu=o5h=&V?e¶[12:j?+QzknFNBRw UK&AEt)/ .Qң^9rtX|l%졖@)mڹȏLrƹOT˟,Mt%7"d"!M'AǮOF~VK=9V5X \yEpoC#>moк2 w㺂| FAIC, s$+i-̟ڞ+7dg"WhlllDЫjuVH EvkyV[D u=sG3r]5ȼlOO9gX擣kDg]c >ѝGa +`Gyw0]A;rt@sau*øe4Dc fcQYD6Qy@z?P ͤ_1ՠP9f+lV#;>jSpPv^i&$PG҅I3T+\uh]<;#Vhm<gjYE#=@;nj3h,XIC =֭뎽co͸ex]@Th4ɠRkhXBYubLCd!˘1w@TeyډyM:՛l[ J\摡)MhLwbëuvoeձ#!c@ayzlsuFJ@+]BKɲ!Gr8_:3UMbv2eqLjP3%2(<&.0ƨrr hlqգ ~ U}+5x4}Zx5AuI%L쫨QWK+PS18T|-ҵSh!TL^Qh7MZ/AW9+:˻Sp@~OulyW XW\W{ˈwX 5zsc3|QhBȐXph.y .LC9ijG׿#C\F3X,9rdΝ EvGR_s4V-k{C\lw(ZjwL:R*Ӈl/ՏQc*eol[e%L[Yél# yc-$lhUz(Bkzoro +scږMDnrzljQIo8IAgH>a@3mY/[0;_q>q!17&Gf1]B UQZ`ki놜@ {3[`;@?j6P 4h5yFj>s^Wf#MmR&e4A%z:k ({U{Yp[%4m`M +-4pP9i'%yH8!̵3gXxPh 'd] +y/?WS0"h MICç,AR 0K!;Jʐ΁t(<^m{^6PJn!Xn,fE64hF`8G="PRu{P~pP)=s(*4vd QOor\!T7=8'Q<ɇ96]䤏)#{ly6pИ 휝uYֽq-_5,zIp@dBM1ZZ4Hw~tf |gg!:h >W6*ISpEޖ}[). u2ct0K9fuRhE32VKQvys:9ѹH"̕mn(bV]~svy 3*v꡷QVgfcY:*a2FFR#EQ4T"~]l[ rco;\&vL8Յ"ZssAP{Nm)/GJt|ĶVp9 +-19~|юuL`q+;l|V@c &Y7rhzeq{8N1H'OAA!xĢLVWc?|.6ΧP! +SZ^H{fS;*!Fl1ózGQ, e +_:l +y L\%3u;s3&fK5P8# Đ!:r%'=&<@Q"JNn Zz>eVE[)pI^%+ Rh;/m/M4J"Ӎ<9QmHzEY_k-3K +KnQ[1vD^[Пotzq#z\ J4djsht@RW{Q.ʩ +`(go~w>K*j;^J}Ҵ,S5ӀԸZvZ3%o0~w񿎲Z.(LBƠf ,Xʜ"'չmsWEOR<5Q%Ū~6[]++By@s yժ?jx[xVqC;a+!I7؍vN']r'~bW|٪&"᭎hQ0 +ҹ,tFN(Nm4"~KP+J >YA@k^VND|ة7D X~fWq ZW{r/es Wcj8' +|F:y kvRxR9 5^{ _{a)W2 Y@YR]Y_Cm?kb.kolg!V%r aڣm; bS}02AXͨ9<"~qj%ɨuԕµCr%sĻ}~RZuw{hl(Թlw4knDt$=)9R/t5l}}c I``CfyJ ŕGJᖹIٞ-D:u'~xuAC ZxwZ9IW[tӗņ,`H|ɉQilh.baPx7')ie-o- Iʣmh¡7 %pBd^)*|omXp`H'Wy_FPP,vdccD/ewd%KVR-q V] +zEveߦ/h-VQzSֽz推tU²jAC6ʏ[gC]wfMnC0E)(5Y%{7?O :|-n@)hSQ?/*jLYyG?@;ȸEm(3ܯ 2t5ދF[ 2d CkK^-_?ukgv0h& :+1/c¹OvnYQX\$x4&9Z(53Us(Ƽeˊ7w4ZVR"TWD#}~HYnWԞ5,{ +pOE@ w\m Gݤd#A=˓ /齷DW6 hD+t8S Q\㈡0=켑nFaEKqP7pZq ,EUؓ?0=.[}.Vj mڴݢA$ p*ڢ1^,OgچWj E~HRRľU?jWDĜT}+Q HA*[P[5Te&c 6DLQ)jc]?͹EԝVs*"umW\W{ˠkd}8w+L!˗wt!c(ƺ.j?[{.0UEFccc#j^]]V'K"Zr{Vnyźtx˶SX}-]eqN] O}s?2,\B3=[y#`Gvpz}}4̾;)'A%P|.D~D*ZQIڋݦJtmT+:Pm"{Gef\-eXꠕ^e,kYV˪ +uSHBǺ_P sn=eXAHz*MY/jjחTq\q + XN^A-jEN>7?LE3n I#ƔljnPUUYЖ6Ԙy{ bOUn5yECGl6 t~{teKVy GHs{$HM6ifq#6B3.5o[+t'`Unw*\S]R.W (x˱fNBDEr@) FpA|Q:7,Ѽ^ YPKl)9W,!Vסk ZF^|1FPMFw^-[*)NZIyeh\(A>wD9Tj8pL퀑_9#m- yËd \AG;zM +@ٸw!$$Y?**qӗuoi,k Dg?tvG7t/|йa/JnPo~ݠ}pXe{2VێW?*CpJp待^^ҍu%1Ѝ=u4/ u,f'&.+ u]dO;H0uJ j"7@'Ht6Bn꡷AޙzmW@א,Qes'co;oZ\3X,9rdV@S9pz􁟽t~l~ie]@83hE9Ӄk}}\s/&󎆱 `6+TO'Ze w=1p}QQ%b>Z6VKZhN",h&e:pJ8,JZo$֯O=(h6à5G{]C]xIj/^%$1qˆ!%P4mMX)m@GjJ-6xo9HÞ$Z(;1Yp@7:IIXofH6OD\!礡 +ό@E*A_\.:ep\4,ƥE8vi~KVBva+*k]Y}ш}ldepLK2ܺWvi 2m ̀68?a e>x ׼qq &snCĻ$+cz#Z$p4/k8Oϒ-%)v4_0*aЭިI hdz{Zj _fߢЎlɤ0`Ac%hqcJ^m_⚁zEQ9l 45<&ɶ3d!{/)@0E !=D&{&F:K[tz8%I>VG UNJgV)6>i9駽'QNI{h[TW-6`Pa$סjQ)Ǻ_hg<] {E*&_0%S22=s-zU`kIlF51\Pr4:GΐVhnsR-/h;Wxc4fSF `UxZ-7D{_+1}S[& +]Y +"e堝N2f5LT_JK9' ~W7rh԰!<>kkDqϖ[1<q@#잁2engb}//a +Qj:R Y (wDss32[dA.฾{q8*Sogc:N{؞]AdAu2֯ځ<y2ۓAa艑LPi!Xu^uk{Kphk?UBdwHt']YMYrͿfZ]]]e6YGG_WݭKz ڕUݧNנӸ:C>nB榩y^wWWЀe["1fH⁾>f)ZFptmxVw;1SΩUIt {0Ś:iH +| +KCBG3-mPUF̛Jf]clqhGlRޣZ8Jp;eQp,D~]:uQ4 XW_-kNm +ȞG1JVrWбqrl,ɹrxt:I+Vs4h/ۜJ=[_+(xR%@+D[v<]^,Lc$<[޶Z;>T=޽;lW$Yr +-ϹƮ!ϐ_Z9ucߙF3,S1^Ė['|fI48 q$wž iyvXl# %lc'y azu/*>ht$y4Uj4*zmN?7O| W1'xu_[?{Ϭ[UGƛw֭Iz}}t֭Sx7{pwc(To[2 K°2SSu LtNM6 T'T֛֒\5=4>4v7;$RQ94;*Iv$ܵ &g{{+9eh8#[VhF*R C6&9&6A̜=nɣeMX+aEDqzz ;BЫ^q?ӭ iEeQyП fv^<-GB+P`Xd3N",+A)42Gf#M *td p6@#+96cZt:>M#Grj9%4Ya~$kqL`4Uil<U/^z+ ^lYa߁Ho±(JUVb4̳1[MA1VusY99ׂ_dQA̒ f9Ņ1@3[؛G/=oʋuwyr\]ticujụvr-)`kb;K8_uGs7OZ.>}wZVnwnTx駳F6 +ssjwn՟ˢR䲁4?I Ea[7OTR;3uzjPM}Q `Px!"Q:gBQ +Oc*^G0˻CR `A̔X@nK1O=CngwEh r.ap1*=TʉZV؝QqJ+Bfg*Lg;[*>bN(n/dztLӍį+=FMTy +sYu8sQٷf{= 6!ExP29DѠ tQ3 أZ)3cW\#>J!\† JQ] pxkfss;+[Wы7G\}y6ڽEG2w/^^6Ua0.&zW|^uY7d{51$X:+bVnyVT1<皜h9p\yrYv?{s q~^z}ЌFnxʁgxDFYl^4{׊P V֤:eSX5V0v | A@>@6{C'q 5;6kOe¯0A׽" #熏JTJxu4,.R=PH4H1hm̗PlB|g@4D^6g@$8@ PZz/Wk"~p0w;vrPi }?>!'B;M_@6Er̼ӄ?L c2'hsa X*KY{o9y[7~R {;F^smpRGxk>hT0µ+^.϶םG}O>k:KAO|0r]gob+GFU&Tȱ[lYG>"鬙jAmQ!Vftw<(B{Tɭؿb$]:@`eBo=>A ;dECyt_y3T'|ERx~avy%l^]ofǫ0Q0Oh|gٺ7{D,Kh)@{"Hh=ۓ}p@E9e @36Et7Jm4 M7!Aqz䅾8̸; -C<;-/݀êO;B@TS8Ԟ )׾e:BY(ؽH5Eoqʍ>n~5.ok7 *=Jz|8γhcy ]XbVk5e1/XfcJX +]h\ONK XkyWɝ+ Nb[H֥FO5 @?\M*b ex6td=gRBNPhp@gq:jH qF)3\xz=fձbe̫N=pA{yʘR,g\0t;Yei1Jc:7/PQ`lEEsj/ϳaxD(LQ|4}rfɲ_%sA:-XgM<>pW +g:|ol$yF۳taKX,ʩzʒv @>T[cw֍rk_Zh~`&a##TlwXQz|HR)X>hIH1o +~+TrPYj=t`aE(!0hEc;@̠Tf':@1r;Q]?;Tᬝ4oun@n3 ^YrKy0bw~Q17p^<Ѫ7: +YAՓ4[5uvΫO7=EI9ƆTI PwgB sTm:=ٳՠZ?{$4":-'~0c g?{MBwHFnqwR}ѥOF: *#J>9/F=9}]~}I?8s(:JB Ez;ժwMi{|t]}yrY}z78{8exӾ*5/|PaAJ-~[*8OZHR?=xhb7  +HAu] [aؐ7hL/ҪǵF5QĥOU~"K-!]h=1 ++8)Ю!ztr=o/D~ oys#>v:^ CN^| S5ծ'^}t=i}ЁR# +8Yc`SK65-wq%4^:}iziQ1Us\{`@kgWdBw!(K|Hy]֦ˑqdY~omrgC{x>[˾{VX:?=g!eD8 2JoUvWd=ZWWWI,><<'gh7zf{rMMb\{]ol˝ :r+Og֭;5IQc@Ԙw,'W V5j-Pu8ķπ[l߁G كM*4 $roUX=x>1EL@wm6Z'ԞTòܨ*!lb5;(:H pSl0&\0H3Ohɏ(* 7A[o>%/ޢV˖A@pN#vtgNƯ:z{fz a+σ8v.bȑ#}+zjן}om9-_I'45 (O}߃j-#־MuCv@7=-GA<(r +c\ڐbshÝT J=V.B$n-G=FcC &˪]k855:xn{qH稺*MAyP֡7$v %bv=z2 ׈D@Txܶ|QfRBeMX#%/@8Rp>5"֧/> w"g9#H, +d㤮ح͋hT.ѵã$vek Udk9{x+'N`u/ ྡྷ[ +c^s6-A&h}_w[|&0^?X HF7p[3FG_'~߫Z(W9;WMdQT}oT#Yfa}JFH6B4 k!a(%4;;V҈p +&"1 Aa{۵ߖeVEkfTN3vFٟ +tY]qūߧtrMM߀ʵ76Cj=Я{DjfkLf|X.7~ +_+ ~>OV1jaU@7'R<(I~v:Y-ganL`tк1ůh?s{.ҒkZ\<4vӭX6ۛ)9}?ֽ4gE6/mPWn t2Jz~sD@s®i"6nk&ڰB#6˒4}8qފj CG| 4sN,uQ0zo/W)GdĎ1JOw&+E# )=Xq𷣀wzqԯOt QG^pg)2a::}-WO=o@%{{zQEanQV.톛KsG(>=1LxJ{VXybH;$0Dr'c JU'0hvs,O,]Ox+:On vyi~7UR#23]: ($u1k#c0TmZJa3C4RdFCV}Nq^4ۣ9, Z.'B }mi$W_gAϱ۬^j?O/)Sփ"&FNǾWrD#Sn.^IoNi-h{t9 (e¥7}jY0 +GخM`[,%p,Zs8S$D -yg йlAmtɫoI_ȧOŧe_Rǀmex6q^Ee@@`d޲ywi]P{8+,YZ(yLKC]PnމjʄIV@OOWՃL1o@%{~bȪq;Qd]}hݮczPŽj?G&ΘR$/?mp̌FsݾM(E@4[?v-up]ٖjt_¯-@KwB[br혢.(D?85@0Z@>;wD%Y+tsKkOkW\O={޹UnS8Afdl+cPl_9IƟ:tTfrÉmX_<}i<1c!gp[ b\Ҋ2 Ļyu<䖭bR qҎWh<3m?NA?ph2q;3d3LH_?Jx*Mʄ<.5X@s`, EВz+gby +Ӊ@;1,gS1Zh,-mA. <zg{NՐ +D.{!"v:*2y62e΃U6 _ HkM_Q{S:Xb<:q[죥uorc/+hs㢖`1hw9x04VhYTd`,Os8wl;@ QGcHHKٸ{8qoa֊٫ Gxm+, x>s2p> r6W Up_ARAFW`.a=,i,֔JWΕ%y)w)q<0Sr'PJ89E^/2@#.mc+Y O Lǧf$L%lx4 4>4@G3sm-DӂGUh~6S2?mi|+lZ,5lXE15Y{3AbBEeǻ_7\5a`wcFJb٠О~q犻{V-_J$hB_"׊#+y7k3-_@u%%HOn` kf-bbߐ%XG3.-KUN5 'ZQM>)){pgdwձUsyMgWO8DAv3׾&-'{#Aˁ&e(wgf]&>Q꼨PXf!¶l8fL!i*g[? 8 +\{m[]tC>,*;]Fccc#j^]]V9?C zk,YT93:{?-hyt7F'S:#>C؈4鉯<Ϩ?.ÂLaz_X\@I8Y|hyXZx!I2nj= y{(ˎԖ|^@>!\` +d_@~Y}tVD)7m׫g 3~Nv4v AG9e 2u ڸ +vIV{òuj[V[@g4fib`t#]Y<]r;OW%ODI+Φ8 !滚bаfF@ȟz˟c|Uk<?zd'Y[rgHBiQ QAMAXyz 2C][o{n2ls޽?0:hM:`3tnVjΒ6܃v 'a }]!&Zy 5(=Px,9ΆYPCzD(", oݗ.c}7g6iUZSi26]4`nsEmcmf YGŀ9[JlP9I )r5wGJWQ5O>Du@@/4 I>K Gg}e)(,賦dw9I/'[8۱᮳ +L4Ј? 94rIrVpL@Gs!ˆ`/OyUX>t2<^S=9I Duɕ ex](dʇ͙O@!fo:c hmq}܂(k0JbMRmN'uR +-)@RUK!NPp_Jy@s,A8uTV5O^___XXعs猀>N_Y ^3xsIؾoWRGwEDwjqkn bn%̌3]MdeJcX]6(zlSh t {HݢY|ph&mmpʒqƉ4bTјOo,w<$-ktq{Чs˒~t4v3z?/N @g9m@/V@팃:sa{]뗀v}Xp6js~΢g.S$\rrGzjޱkf `,W.Pr-ݢDZyk6*V!3\nk/vM?Hprڤ*f|Ms֡]RMv|If$ XY\ΙAЯ$WKΘdvhoXG@G)iޒCStb:6B7NяJeI6Fg. ӧ/\`'Zbs_|ÃS0~?Ҫ>R-7G[ޯL m~/*`RY@O +Wk/bRqә,JL?F? RIHbg*Jbw8›\^ټ}v[y䑣kRҪSfVE岗4:rH)57h>n|t.x VIzPOwg:#jѱ17g*!&냀VY1B,XG̛13+`u牨EQEsP*!лU +K"!ykU=s>E̪ Ihm%,!5Vj*(ov3ju3:Q:jeŘO7 2F?W܁fJ4Vh hI1KNk/}ݛn~w-裿eKFuPX@^5l>=aI˲2 ;7vG()p3Qb@(òM9!3G+t? ycnd$Utq1.އ=߫[H}6mN&t6u5Ub$|(b J/` 4D>^#%ɜ)rFjvj"J&Zj跜TnsQus͸XH l\Zp39'֫>Fg/g g]$ui{Opr46j!0X9]hLv%qu'`gԙMƽ.uV,2phfRDHoyƔIjXcEIai2sΐӤJ9{$рHG o%qÁW\^^U_~CX^ jy3;_7s4 |0~رcL@ݻ\./--qS0nzT[/#VByJ3|;S5b [B@#vKyc6C'N I5$,9Ŭ r*efHZz>kWHƋ9c+d߾eFT?+Β-% +53e&*X:&;K}vg֡/=Y X@"JmM@C+ 耒r: vbh.ln - 1/Ų7ڌs%r3[@O+A@w?˓~Ц[J<)ᮀvx ]9ȶr9&{9E\Ӧfr hS΋w)+A@2K.(0nUi. +hQ )1.pR8E_EϨUe8p8` +Zwz' `'> z*󘁍7&Aj>\"*vM'pB7;2ଆu1m/N=.a2&% ts4G.'BOlĩ v8 =X4ϕ$e#3v%p" +lVuw./bqqOGW&˦sXTo:Rw'\o[,d`̅cbeeͦk A@ۅBMv¸ ;[,ñÿE?cR@7rdj9ca#Uxh{-+vxm?=3! Ϟ|#K jSb{r?,ehܖ~R .n^ 0K +| Ӷ3^| )V5ߐ7ZFD@+r 0q 켳i90*BIqt/I,YTBsQŎF'ez$9 +B젒HBZl?]WڅhgM)*0T_X% ۞ɫZgp^=u"(w&:jkgUU4YrW/>b+y_[N>" s@#G{25Y&zYeП镀vaZ@h@fѺԐK}k?EI8;GƜeAy +[EhNn:9ۣdtr;z:Ǿ!瓊 $2 x(duY$!TRhS3n94vG 9a(f GIm8UE#-'qgGxIA@c 4D)_qeNT.KbЪ/xzpQУ9gN:z…g2 &LnCX adOŞk޵뚿72g5}Gk|ѶS+ GϱAGFP&zu^)[0 +jPfKVgi`׷ՎT1cij h6I(։ hE"Xve |Fs+=b:@(2c?īЮyK:=}fR_+uʠEOHD#WgR;Gݷ߰5gkfֹct/Vӆ{nL7 ǶĩSΟ?o ;w- +KKKhͩƆЧ?;q_$x?jW.rpKNL%ucEC +(pO-[jǞV~ЕV7':0A1T+u1uzH 蒘(%( a m4NۥׇTo~=ʡi7DA5,D˩&r%7R'ȴ2AiY*@蝲2(Y )o^4esIW3RWȼGbMWsjS橋z>ei410L5Yf{aKe>ًF rSWWH9aXID&S{I\[pP4m3j1{<{7&W+ևzWfYiS4Z$j˨s~0gpfAW`ɶ: +PF$W`Y:`T@Jdy EsY4 ~yVFׄTi[4%g #\j1ܠLͮsffa^k28Q){őPύ ǶЊ+,VWWmzzW0ʚ=Iy,:Y> u\8 +^8q#e9^9J.obf=^?^흚Į 3: w!pzJhL~Cv|tknG:%Z "0gͺr[/ h7j;23t9}ӛ>y-1t{D%SYN=ɟ.fm>l]tSC|He@.&^5>&fY >B}6BPvvՆ$%C-t"qں]^rB*X1}P!8hx>+f>T4K}DP<WsN.jgJ6 ӄ=KvZ g&ژthc @ʨcW1WOQ!ZtvbVd& r8bZbJo"h{K{B iU4xMLUn=Kg[MjIs& ci^O`EsFƖ`aJWlC@lX^ 9kJvLC;ɬ+Js~ +_'_ \VnxmjҢsmPq] &w6M 9!S`%+: :Ews_Zg{kY7~ f8%G!eeUXĖDʀܺKv͊K2z?ݥ6hNp8kt׆xf1=< ˦+lD[ Zo(b<$ͰN'ܯ ~@o| J/4S;hy1nÉ4ˋF)@;&bW/ō/#f.Q.4 V똕 G@45w&W0R!3ئU- +pN,_}h ci }^(4VqDaX;+ fT駂 +Wgg\^-8+䟲sEK@۷rUi&,#!kʃƮw2:gn 8{LCNNs6p-I-V!Jx@-OYZȋ&"p<#M1ѿyg/=R `±K@O +=>NgiI նt0BH ?K}J]u\8R ǀΙ ;IbغݦGO~.wv>;<яOAc9q,oᮛfÁ +[ͰsPt+]P3p=YsTB Z AiEg3}I4CdѠ7t8 +tāyc:Q:eA@3ՒF}kn=QfRhER蕕\uc"_:q@A̲u>ZYKk5É0@3qc?t-^O^~ݓEqtXY{pa?~?Vi#ň}`۬|>{ gЃQ +l J=ƚP@}G@޽)aJkg L'ոj % h)zHdݲ cNUFC酙"hKºӃkc- < oeEt3uBc/$+4% f9!bEװ@<0\Iܗm/կ\sfSǻ[Vyj,B*N`<) 6-ym6JFAhpg,0L@KQy߀ВHS$ ܀ħ'Uo^%\nI.:'b؁ֹOOG +H‰c4H:`G&% 0T,q<3UO3_n l( h\+E|(GIWCQܠBt?h +ȎNsb}i/~8۞pw._1h VA Rrl7ZR1+?҉:LM뭚3i=ׂA?xw^yx(E] xR^z?塕/=㩕"N*Fn +"EURUfO4HϹj` ҁv+i{Y( +Y#m,eJ8uH {酓h[!tbmV>爛_s\D)%sgv +8-! *fY{/dńϓ2ZAsHh n:Ƽv\-gwpYG{"S̄M|!|fITVg2& Kʑt5Ӿ?{?n)ЭLd'{@8 >{q #: P؎`ot6::Mbܻgw2ۯvg^%;3*>' Y+-[X)(1EwZ6>ۗq٘ҙqagt0sfJ@C +=&+> +"(\~v~̅c1,1'^t--m,Oo>]qC١_9˹HüΟ[(K2Fh*Ɓήb\GKL'NmAnAk5j:2 Fydjqs$EgvTS\|$M%-0&Cv3.ܔÞv?銌1n-ڙ 6BFZ%KwFXa47/GQ;𮥙 tc,8IWaȨLYqvIYS~50R{7#6e>{l MۼU8h7?M)#{Hӓtewס,}naNQd;f_\vDeDaRX7eiRBb7 E9Hx*o鋒mY4%rF(waY$j٘ ĆIZH Ack5pF>Y[(Qu@4WG@_QaiZ-{N :?jgG}Sҭ([9ChpҔ2m8"X) K4-63sAӯtN9 +a62Hg>Hȓyơ5 h,37i{4HO}Y8GBBg. hV]Rhce=NK^lu5] CRq蓁l7fyǃgO>ؑMg&]xfkPo:]Wf[[Q7P')J_十l/5dž? ԋKW@cR;UZg Ce1ظB D˜lIA4nuf#8:Fvp*4fiz%M.,jH@(%4Ԃg>*T27Ĕ{f=5UG@#;hv`NjÒ+!"u/l/Sl@*@BaԳn2൥_tv+ٛZ/tI@/p 4pO}7*a yg^5qVI4l 긓 ]`$5mf =v 5%FR}>}s *#Ç\A,x̨zvA4JV +L8?>0fL!=_V'*X0e>򋫵۹nhP38m#rf'n-F5u7Q^g$C%$/1Aک !tq m~f- su"t?R +"wg찃2N?.@dhUE^{ l%*jF' +v;o;;&\xwv*M LCI-^P*yrxOvo M@+B4g&9=,,@O3Z 't-kot-X%Cz}w۾rl:_4ь@5º=o(eǀ}І% [6G:R(Fw3Us7@ L"g\g:U\S2-)/ >0`_] D!E* y %˜W@v|BFyfƐ2j#U- )G^D2ѥxphcL.>$:&jQV$D3U'-JK]68πҘVItmϪS];oEU'&@<- MS#$-lQn>NǴD3={go-ћZWπX^Dd3,Jˑ&*!ٱhꗘшėt@LOF6v[`$0!s[ oR)QI$s(.&ZڮiPvxmAh` IGN@pL-@yc'N>8Z /쮛^O']./͛Z|i?tXnS0GձT>gz[ u_38k9<@C``S$WL?I%^ouϥk%(dKm\n䚒;'c`\$_] f%s26~GE +eC^@l5tg +k pF).|*z${:{K"bY[&c9Jh&$u/$/5UESq$OA.(b)ˌ9'C#|Sj?OhD r\n? ly=ۀ^ѕtI sp9JzQRM6!s(7NG: r'ޖ[~@6Db۳Yp /5U-GW d+f #{n=#/#NblnP y[QL,EGV"LWm08H +m˩:|S(9=6 kXdG! @=)p\:l[3Ztq=.NV/G+ LA1 +W⚐qjiP*Q3u^75tEgjZaeRߚC\2+^2'$xm]0riM"AcD@/%*rY~M8w4-t5BCpH"&Q&նTOkg/ˎQ&~tvvK@+"|nWET/"'|#s2@0N43ld43 g/}|&cY-h t]=ʓjW"hS'puoq);eSe븕qN-h1!!-Vw$KIu:jΛf;t5RB6X= +dġ;z%S[ n]tIM?W1V%c@%짿R^z]a<':N>W8i`^EEufy_Efk Ph\.2D +=Zzz:1% 'm0nR?0Z᱕/㿯sӕkL_W>DZ?V@: ݟA{Z$$ŔV4 +-$r~#]g&m2(糐 kKǍƢ)_mU&G|@aۤ"[fnj '8GnܛqYۥz㰤ܘ]/T'} ]QW3¨Fv؋ޥm߬& +aZ{zcQVžm9b8 VIÀO*+a!z[ZMӒVJX襐G'-tL21쥰g.,袥[GK~2SNH@ZB푴bH)5DLsޥkMBWUӌa׊ϧIyV{2!@+͚6)v%()ϯ>4] hWF~ InZZigAGl}aO>nw.V. Q59&bvs4֞ǻl{t!>;*Pe+3V+v ItY^*W'8Vw5kZҰHQðsn39Pt5{J?wM6kv1]o\οI&[eї6 m\ܟ-)U j.#frcu/tӦӇ:YXc)tR yV-b:oC^LֹmHnwX"9 z,~sY 뤩4ʷQˎb4cnQIM=* +G7hZ0mQ%~ m ++8軛$?pc:-k|ck+9=_c}_&cʋY3sÄk o(tpͺ??x}jio%!wCXĆlK^E! f3h\h̬4o)> '2-.5S \v(fb(9O k{;lvȃ$ +]P h'teRp:I-83.:D ,ո$&sMW B@4g+ e\+N\OD T=wS$4[+1QO9b͑-19y;2ǒY"UO@WU@tZAGUɁ95Uq4]@#%}>_0iG˶/@;]@}e+vnE<lC ;L< $И鯩"Hy7P+z`d=:ۦUBI@3>Ы⍾R է[&,Hdy(=,'k-tiC?ѫ(7e<ȑ!r)7t82m S +=Zz̅c0U,\exCXnPtuBeT_ .{L8lY,  r@K Qm`$5O߽uJ8niaWt߲bKG?s'.)e<<_V,eDXL@++2ݿ 4J@ڽ0Vn!΂nL.|֓<|T7St_ ,|B+ (ӎ\)eD}i*V=}lcהto_^9P")HZMw@+hXڤZVo&aawɑЕBg\`34XLN쥄us=5Sy/[y qȮ7 U<gZaiwɠo{TL]j.l1z!Jfƿ}[Q3ܝm\A|1J]:6W + z.An}dZ4̦STwL3z_uٝ=Vyѫ(y4=)iLW 0"Z%Kwu0BzZ]? Ic<{N!)=['O>Y3 ƀo[']xޣ1,ѻgO\j~zCmsOHYY RT: hI.Wt)}V v2l*aq2x42{V|_u[Rܗ f&tsq.l\ B2Ij-q@*F1ɑzf rP+g310M)tRKUp̙Рg6S2zڸBJ=[t>:'};3hr0nF.3[EGNlYﻉHwwq4jV#t IKpoGRPT d[N=$b@@K2)#;.7; bLmD,O:Ѓԩ]ԯ63┞{Q󐧇 h`hX` &")lcM<&D$vT6&rwE Wcn0^.q`ܳ =yUiUxnЧ&sr3@~b[tDeLhߑ-^Feg9n`t4:**=VW^9N7S06LUB`p~Q}Px:-9a!9 q腎=7q˿RCo( 4:"J}>\8N>* d4M7lדsRvz'j[  t)JdLqRS 8׿[گ~[kD@/ySTA@ g7G6,hhYÕ`V#ɛTʞ?C~~L;> ] @JTq tICWhq<>DC# DWn1tQV1=8$(!&O/׆&Hkr=N7pәdng,كNNEӨtPN I;r["4NoWKpij H}P/7k{6DgLn&$TO*:w&7M##CkXK u+b!ͣY`^.jV}[>:mӋNς7iXN.-*6p3PYDx\/54} aRTtY6}挌W)uX]XO@/uh&5:5!=~h`f=m?:'!3އ~V=UY]Q$ 냻"աHUp!7 c{ìՕ/% m p)a.[jģDÙjthQ[H~vւ>5h eL  ^6]Nޞ+_\[Zu8磛Mkռ :=k1)􆷢!k'=5:eYkO;gEfdžvĽFg6h`, +4 @3#)%=́bc]Y?%mc( ڞ|y@j'?~[/v{t=٢[rcWWpߡr\gtJLm&TrtCxRk%j́$y3%r[mxqw@lwȽ?Zg/FdZI@3Cbr@a΅ȇSޘ)/2v8]֤K3fޙYx^#P4"c`cy%^أtzq6j!K +hI@eI7mR{Ŵ[.hs@GT JBXH`D +FG''L j#' +m׷H# +Ϙ~opxQe7Ao8&4Uij;>GQ\"NZ [Zn'RۮUM#7:Z; (h̾hCLq;,Jڝiqi2>_&DG}w +Iy;y/6P(@A@@O5  +`4$6P0&'c 7t2~θnʧEHv$-wlWt `B_O3 ЊpZMzT ==X9Ӈ?:'ݣ# ې= +KI̬NwsCl.$S>K'̂Y4-ʡ᷏H% +Oq*3bܓ욛Z/F DX.gp yJ/倀̰h󥠴~H +5#"i -i[d[l\ǹ']@Wܾ8Qt2q*fYcxnkiݱ}hH3kGw_ `iV!OMj2`:kYMc՚5('o/YJz[$UrfHGE@O@OaV0 +_~Wx+ ɇtοm6gzHO1b&G氢9~e, uS?g(X^s˿ٷ>.o]3&1|N?\*888?* r3A. lYyXŬ_<'c6T o<*wQtP~p4W-څo.}mP{W4e?CX!e_)`Y 3;N] vT4]& C("Os<}RC2;3]8Ghh4 aƙUA@s+FXvDf邝ҟF;8lRjzڤZ?t#$7 37x\>J%R"@/!v3p,͊ҳ"'Dۧw}vl6M>ü 3IHz%7b h?M96;C`JМOi"1fp uZsu:g[u'flq}"Umngs4r+#*5SZ]dMPC +5`99줹#R˺vX +Kticƒ,9 ;=2%/nxŀNugINj_м+0%T;rB2f r @͉!SեT3r!0Z4r0bK{Rct-fc&;_YYf&zT #)B(}Z5C82=8GuA\0#t'Q>\$Of޹ͬt=L@G->+啤HW+.k4l<ԧxګګ]oL]l߬5ΪN}.kkN^ $[4vQH<N+#!\=D+ڎ!8 qFK@a~( +窪џmhuG#AWR +W.+ M;NJ.PWXDox:GRVR6.i@,Xv_N m|rPga&(A=@ڟ=kK}츅Adbm/ۗ͑tv3,8&Z=ݶE>m PDv5wO#[һ 16=E9Cv"/dmƋWeCӗr pdDTX$g`}RkD@2saK#)SL>/Filter /FlateDecode /Height 468 /Subtype /Image /Width 1920 /Length 144826 >> +stream +xW}yoyO,de%vz?3 fsr!Nذ9d™ٙp 16YpB$dXl6&X;^H mYݒ%u{{Uw_U_~S^խ[>J_~7}g}ʕ+}5\wucE$[Q~$e[Q- R(P)(Oգ/_>'r[cad 42WU۱'ļL$oݯG>>U }ӶI&eQ[LD'[FzC%3 }V2C6g W)G*}+,g/ +ҟpg{W{Yl $4jf3~5άH,g(%8O/TkY]9DtNyzL4p[8:ߝ%ZXm&0wS~n߻zE_\{~Yl T 4`0;2gx,یBݠ@(@ $)F*^xO&Gb~ߛx + ꮀYsst"wWFL`sB^JpQ~2cw#Vن~J1qr8磉\hl! _[g;~|›@@@3wgs;7Ȧ6 61R%N|j-0u#d̺v[9A@5O#NLet O>4}s۳AA؀! &5\<5 1qg4$GB6@}vS5sOgѹW,*i<:uZ;lX6@t)|l)O/֯,B#nٹ} +[%Z g|[1 aL**F@At-j~ۍ֟Hs|\)pMM#Gv:{XC0sGW=~Dճ@@h"Yj仄UfIS̹uH^W@Sңҏԙ!ߞS/eN3<%:>Kn|Jʣݯfۿ~+qeWtW@/p~-ru@&\7wӈlgϟxT=w~@ճ@@h"^BtCН]2, 8o" +h|k2N-jc*J]5HUgUMI^G/s-`uʠe~:JssvN'ϥgn248]T?=/L$@LNUt-raq֭k^#g/Y z[hMq9<'>B؊/9.-2#tg:R)aï5$)PܞYA*rV"W: їvkڵ9]tz  0v6\?fgJ[=Lv>8LLpCou-!u@@@&r®^NS.]4AxI*|LP[ V[dbut;MnG8ӵ]4+f._v[@#М tn))fE욇|GJ?70+~`*sZ6yJݲq;ԥ=?~*;6]]c?& 4&'T2ܹ!sq&\gZi'sz5)m_G&vX/i\vr72mOX˚9Le9myw;[;(n s$ɲN:S7w7u;zcꎍOxs7z[sVl @@@G^WMw9PF^7*&|m%t1lqݫ[_H&ydhxOq=UNSG .;:/:9җIgŜwrlGtHX|'kr$S*D +3'ZQ #|7~`OT=-4$_m|Wq9̊YLJfgE&a!~_}%,EZ1Bb#;p꫶_1m++)~zJhiS>3tNv0vY]p^@SjS^Ѯ["a+1W,[51ow-8hwW3ճ+_ + &:p᧪Ŗd7"YJh * _ +#s.!Re'Bzm44y]% jk_{J12WaTE M}IA9[0E5L~8b>υ{/ϏO%l&h]]Ubx'2Љ36L Tk.īodB9l[ T twUrA-hUX]c-]i#/6Xf6EB9^6Rfb>?țQ㠧opUbquN}B %gŀES=d۔-އu{ b /D?Tɥ٫Rbr-%vEFórGAvVk+.;47Ʒ߶QOۿ,ľ0?l: %" /nzMOC _.Y~9w@"$ :[O/\M-6$F@#6@@@Gg>d%X@H=rwε'5͉NGr29yX7Nr8ި'H_:qLzuX li5׎}l .^uGϹ_ZƐ1F@)nѱ5"Sz=@'F&b(m +@k$h`p%կl%E}vVDet; +@rܴ↰Uz,q_XS>[X\65yxֳq&Lo"nXk#`>>wASͽfnЃKRvÙV T tĝj_W$]諰GF@s^#/!\/o?Z_E53ƾ!'^'`7W2Mŋ,ŷAl2g) +hj̧8sY@SYXX1jy]1j# vM+**緂Zc/3b}D*{\n]s)[_@ϼ[whmd]%R~ K4 pMzEi%h~K~H"aќku3dbaGV@L44Zl7X@73{,y仃@@m.扟ғ# +Cy/*O;GcPڔ!R~([91Ͳ=W..(CM kkkW,`Ϟ=bsiƺ?8ĉh8DH+ *3zfnJް!4l!:nνtU^bNLxy)@ā +h^KݮgDwF'ALL@SۆYP.Ӵq*;|×E +`j1ȳեG;g6rg\N7rAF2 Tve"6kC l"=DA@SyŮE[F":F\*}KٻK5L^س4ґ&[g+y{l%ʋgaRc{ 1&(;1H#,?7UzȳV\7ca9x#a bn.}qԇ˦MϏ.7o$-g7Qe3n)Rk+&0KEM1DDyzJ1Hbaq(MYX1 E]" D,7-l6"&[F{f+W5Z?X,6)*f; Kwº0+lšelU?z +h˦q*6b,P>eT][^蝇0ѝt8`}<F:Yf6 +uyAzg%}1uZ: 4DRnZG\9Y٤يO *rcW&e.JDvVK㕭͡ӻ_\6(cK<Є0{g.Yf[ZѬkg]sbF Kz~鱷Ot7 TvЗF=}>Vo$,۶YjYZF)Q +)=yf..֗+N kir\ +\@b ;D3ժs8i`9kpvNW h{EЙ4كn%&YMj)Os2ʩz]/Uuu#Z]p‘gK>wU]}#YlF Tvavt' h, &EWd%tb9AK.~Wdcѭ1ωi:VU1Y.9 +]EV{,;kY;7eĮL7x m- eVF$5 h\n @5rCTmL`e;o_w3GsL:`P?P,6*f[ hD+Ym,Fjt.vfCP~TisEב;%[YI@^Ȫ*>Y]Ќ qQD(4 BgJ@{ӳv[9st즳 ̞nd[ iƱӦ4ՉPѶ}k2hX9r?x]iuy쩏,=Z,I"z"h1k$,Kihn!Ume( AVZ*^жI(#vEfmh)\Եmm(l=aW3 d\A*,M(:mZIN<F@{йdtl̅En-2awfy;O$g3xL@o]&&P9coV+1$rџkȦ@l?"L~V DHHl5'; X)hvn3rju N@S9[v^*'4lWbIšt.S..6fv"avхj>Rf[@ϲa.X@g]"z+{^ա.%ҹ-ͮyŋkn߇a|b)мl,䞅nzFh]tY&`V69\ +g6Ԝd4#e +Ea䴼vrj9nO0ikG@g`Mȼ:9QiQb)qܱT^{DwB. J.VdF^w}Ns+_ʃg)(@o]v.~ ;n9Ǚ3kHjhW@T=M4&Z}>qOKߊ`tERpV;#[$[^ko[m)+p٣f~7M;GR4/T}%'!#1]2q$;D$rLLNF[@.f@{d:m1N}|[J +b ezmm튥AP/A,>{s rV*.M_Cbν9@3t@@"OnoA [&*U59n,6\!D[w!T@4_K6%u-hTgWLwNkKvg]0nz]517G=e +Ysv3\+K^8$dƬF,eM% G M>ܤuХ@@m!SxѪ69s=믅U@.<6_3_ƎmGUZKZvqd m0uht$Y@mi8e]C1w\ν!a + ;*hƺͭ +iek\l]a4k|ν욛mFPY7J؊Ϝؕ<*S hдǷ#yU/x=,9(݋;їZ@@m!o0/L4;^"{9LY5giZ돝*H㒀z;[/XJ1nbe:FVQZTyTmtNك~P@hͬ]ڪ,0.x磵Ւ, USɚדnf >dJ@窢ck,4j:[v_`?cչ#}y b_@׿A\]'e6s +<=[NGV>qV=GBFVKE e1{vmcyJS4z~86t½CJ4/G]CK,vr 5R~ya'B7~֭&j%'{:?'ZmyMS3?ƊAsaYz'{aq&6# +]'A +ۻU{v̽ +h3+o=,Qޕ LwcԳrC7oat=bd%y盫7utng1 ك4ojz@ۿL 7wyaF5D].-}ܿA/u* +Mh*|~+[M)ipEq#%5it>젹 %LJ}cs T̔ 7 p^koyPi-͸st_Q@^8m9_y >"7VDn$5r[ tTmt70[ߵ=`{Fs2gUL1!LWdhœKB(Lͩ٬߃93^-5o֌{lZO[$. b[@'GUm|j^soyI +貤su8w==ս߸qBU(Ϙ8x\|S\\K []zv֯T'@cБ.%PDZz{9sGhŋ׍!šPz#z=2'2!7'f13){?nlc^}+/ڶgO|oq8?>%P롋*mG8LBbgm:Q$v̽#S4b~8 +lF:gVoN{NvBlKIT@ۏ̨\{Cv[Cl%(Cc#*2mD~4&⃩fސpȳFo;siKN?PVQ"G8%0 ve7@rA(w2@@i_yh<=)/ ZY+UO/_]n 1N8ڔldUѮ&m^M/QSR=IZ U*~_xg㑛"0ir*.>@4t#tЌgROCr$)[{oxϞsg?3>4SSfDjzGth3z ]0Z~c h^J0+}O#3eN+[KYdΚ:DgV4 e:=̅Xzeo3%M,f m7ܤ[>:Xs^ޠƏޏ4wzl@O鉖{W{tOb9wKK_ҁQ&$5rc 2 bV@^Ml\ 4dp;7DoOOn%QccRuH8b2,M &ۧ @>L9hsq-U- #ZeF(Ig97Dnνt+II 'qͽ8F۳TFn&탆qϷV/Tri~ӹ@ܰxώ#cj +P1*(&V;[磙Bo~ ӵdѧntnжߒsxRcrB}nI|Ryn N:SYGGم>8:K1qT{u̢i䗽lL4 ha˴[̂!?Pt+II4OH(a;~|›{P@/^p,<݇~hLmy T + [S!$WT=I>gYP1S)MoKa.yW}+ =%_&;O &}nU<77*䪍ȩ}@X h}fyFE#='pZ +:DL84AZ`|í+xi.-}YLUOa bS@ݿWHb9{[ńasGŦ@LN6=E*]-}OI2hA.OGφ+~iln&eЉOfХ=@'A*}wE͙H_QOV?S34s|O L 7Z#۵V@t]!kv39MR8\ Y|_m~naꁀޞ@@_:.:qeI?e!\c8V sH"FZ3`k^en)憍Ҩ+ݫmSE{X<~b&e£qݳ.&i,3|3 F@3U{kʄ91#絋 4Gnz +cۮ[Yl + T hu˰lՄt^'=yɋ =K1 }#DQ f鵈4 +]f;mH@uZr,}&znzuʃ׎yvwdOj +C?ȕ> +?w;K[;~|›4|zc:xUbS bP@!͇Ғ [!d>' DɶEK.펒v@+O$]дY?ᯚmCҥK $I@_&A\UvE35]YyޣbSGitB2YlPߠdTnM!1:DyNz u}@@tUbrܸxOճ@@)O_|*8KEԿaN#^X%a,sTƙ9 wtgS`q JkZkrMm("7osSr 5 ⁥r6[)z@ܕzpW40+sƙ'FW|QݠBjrz.N?|WppmlhW&';:wE;ť/m_|˧+@L~5y#6i: +h?2K̸s1LZPoD@ 6DVHf~$por f9ۛlM4uq anXz $C^uF%i|zoM>4KFqE[#M_4%PFע&(baEpiΗ.[04ZI=BN㚅u©v|8Ri# *5ܤ3 teuVsؗ쩻N|]rk6ٶ:gOD@?{3ϝ m7=kM!1:2{"z.#w_P-Ł?vmUϥz T̴ o<m83 >@&|skq6}G"@hv +tVB׼K FQy+]e !嘥m(3jo,p,Lզ'S̕mqve>=+P@NHg뤡9;=FNgeqwO7W $Xpj{V=*'k +Io-,UeGѓ1Ep.ܺW@@iO_|fK]{7"q"BaVBȖ[+* +VTe(/ɥ[ܼ4tYv9l:II9u i?KΕ\5:bZd6sٵâv;uNu郠%mk>cq.a}csZ=1z +CG~臫K,/ӧO#I#T9#?Fg9%w_ݠkm! T̔ hSvn d%ޱsCqNnn'l0 &X0vcy^XZnjv7Tz٧Idm&-tvºz5r8s5Gay4wMBW(|~zEz|JEҩu$=FO|owwGўVXغZ)YcW=*p3!%ŸQ?3oЬ>ѭ#WPeN(=٦{X?>2lh3m׌g VٕhGn/XV-Fs-zό차A{a45,'KŁoУ/YszZ5R&IjpDsq\&ɇ|tnMu#'e@vߵc#{ >:޵=a^pK@H\^k4wV=Xx.q>K_?2[$n#f0*Rܨ3MR[@̿,Qݢ٭/QM@L^;gcAV^vu"I\Z e &oz9,Š\Fq@^*PoH/h}##*r6GNo2)tbk,U̹rښkϪH^@ z]wpM=痾·掾(++k׮4zH՟{V;jډ_l^LO7>%۸!|il{3pnp+sD~a&}Yzf~5{ r>R@LV>xF\C(bi.@'R9Vz6, +=x9TAJI+z_2‰Ow{X% bc}B.Ko/%87sd9ytKx߻̽T +J +P+tu+Y<Ҟvc!ksG|_Փ'Nz^s6D /dFv%Őõ?h*]ϮAk>` * KJm; bJ@!͇8೭NN-s(#IqYv.%#f"Jbݪ6-&]5\*K8 袗ǕRỂ9_S?R"YX[=mBl [/__,tlDIU?fa2I 2mPYeK*2g:CoHMv6(s\ȜxlݡoϘȀC@3*fW>?z'f EA@/W-' Z߲ \̃clIskbm xb:;:F:$ݚIwK7V}}WG@߽3:{W7J._>!"`atd{!T*gOާLQFR*y "+eW@s.5zdZ*H6,v$sstjHr98cnM*f)^;7/EZjnF.UJiXti`<4~e݈1 / tW:m;JKǫ9ܽ zCx䗇;W ֮Kћ?|:ib"~#f<hf17w;a3$*ceP&e`7Z0+򑬰N3qnMg>ޔh #Ja?- 4.ww̖ +.E>{x\|m1Eu{N<:fƑl]/:&)_㌲č~)ӁIw]}EWQI6+̥u~#+0q~7܃\ƺ4dm \ż +=w/PSKM㜀6L-m6HU덖3Jy6Ds{]1 OM*fzϫ'?1c-GG&lk>4&94lo믳<2x)/֍5o9oXbP.tvuf^bhWK ^.- HH⇼F9׿!lI@[?TocfNptf~ю&&y'n: W@&$ݷDg-gȫkW8J;Xҕe7ڬߝ-:дK(S-ohb:`R# ֕oЇk۠A4_}nh)@Ln~YFR'*mTnO2r]׳ШK~7y^;lVtN Huu]wDf5BwCWwkp@*+WfMfj egXEY%Sܕ4KIXv,Nc$cOpPFhdbFh N>,ZtMDqqE⚹,,=ĀS4ȏۖWٕ>Л8[)t[wAH=o{ +%B /ItfN:ۮٱłii*vKQt3Ԙ]4YcRj9Mqלv9{CuCœ 8;I[@S1tQUqvEc=ZI=_D3)c^Ptйt hϬA72gw/cd0t \hs bI@{^{1eW+'(Ĵގtl"GC̪.51u7 T^1dbԞ xC-O_pzm>Y~WraRΪ69?FK:라aX}suMCԹ62܌;_f% 4nZ@@on=1}KEe@@wgĬv˫#S5YE&N ow0V^qK!<믾P*;{>?ąųOvNY5GN/)Qv1=ܘkd M{eTªdA/9.o3"r4u o9)cnz bJ@ %$I|J7GQlJh&Lih~KXLcRoMՆЁwʵ℈g1/TH˝ WXҪ!b3 _AdB8/5oM|ER[=/h= /6fjun,C/q',nKm'TGC޷"3gYT5s/YXYT4,u]MRˠ),LѳզIjQ68e^_&R^v *j"rB̓[[ꗛF@KZ\Q\ڭa㬏IGuk8.mVS)LSm_B@,!N<\X=BRkY3/tN +/i S@-]풓̍^6ӿUϢz !Tx {PEqHQhPW0,EinAR<yF4gd]{N}1GUdڮC)\`CeOB.~u)-p29.6iNRO[FmȬXW +e-ejCyxvmj2뙚 _n9AYnseڅʦEg=4lx{:? s[3'ﻲDճZ}K_,*@L|2>Iw&x2{6ƪLlVύ e]=Fi#–3op0ץB}5].}ge&{|?W!]W7멒7Db_-*C4\32!6,7pzh͋gXqֵ&&o#~Rp3F@pN@*]H@ǧ JO?ǁ{gYO57q-[*@L>xNJ7S{+ҷ(4vL[+eNvɕACY6<1 hbV\z&+lt1ڬv:.-2)Nլ5gk +24s|9!yj~8$~y2.@k^^?;܉^.-bF O82sK}.M@#?1- \X|5s/z: b@@N+Yjn' eZiVb̖qLw}[^vnSOfM*Ud3XS5n XJ1`P~)ݫ'ƙv͞Hj-:4߂2YlLZ?.=7}ynʣs8.3yCh3ǜj.z`nYf>K=ȱ{ wyVzP1S 'Tt{]iph:!|q| rmċ˝[& ldcʚsnƚQX֧. ޶bI(׌6wU2ōy?[0.+ȃNMmJmP5A7 Xϊ^}~\./P}=zP8j8WvǕp{nz9L7^St@Ln<+ MKzW$2Dw&lxQV'읭W)AvX1ZJm4Tʈ̵~ v6"tH璀UmԲNH]K# YuP)I;ar$ U0`!ZiNtEz-ezfEZQv@=t|<.qf㩕r_TQ-G.YLgDl~o ^֪S *f hzy'{Уb]T;I:jz?+rAgzMMc%I@SVpa9L.]ύZSxV6Y@띱8 +MΗY4sJi?dl! Khv4DgYt= ϽE%M7N\wbډ5t> o]/wud_TQTݾwх3 hN!hj(5ŻW5@@./D?WBWkt.RizG (,FGdfJ`9 fZڀne@45DN@EY(p+мse3'σsxIֶ.9=l4MCz.[{yEڭq*[Ro{U *OhBн[8v5_$?{*(+D˄lZСң DIasZɄpi8s[>ӆWZSRnJ_,0FC k%'sG`x\8ZdzB?LzٙXpt^PNl\jzumճ Ҧ~wm_Nhou|'O#{qS9vX倀P1[]@G?/=< ckQ55-aGsV$XJӛė-M\3i`#p6x(}Dy.MڗugZ,zܪ,x}Qsn9LPpdj=\VF;?Ч;Յ8q҈g7*h{:񰾿LZCJ-I5ʖZ !>(>hW@'RJSÍՁP1}rEʹDrp"Jz&rTe9U$f#!F q Qd0MGeH&"!r~!s'瞪vϿ˷~;|V7l|X"oC(|!-6by4,bIuF熀2d3>]._1Į6*#2NO(`ΝY +,$e>)U҅.oYTZsR.F'nIGVϨkz3&   ZL O6D,B{q-6s;x-ʆaX9V7|Kܶ>f׌} 2#`:.2ɠfNK'"/DqCT,ц'^a `xB\Os/J^j;F+8xܹz]ym`Ď}H; +h?xFϿdț@@c>W_zX˯jZ͈!C-˸ítT^!NQbŽܖJ: +b(=M h   h$+e6Yݨ4+do%[V@;.WivfR3lc ԉ/Ai3YfБfZ c0Љ GuZj ">l?@ܫwHCǤԖ.یMěYT +&QNpxgpv?2v,lYU:{s.\nqd]=G)&3vh3hZ=<#'ڙH@AAA-te~g1I١t{bIgcOYoy7F}\?2Pv/e'2q/6ЭОb@4V:)'yxB/+~=uȰ߁ȳWVݜX)h{s蜗nt*WM=k[={~h'WzW֠Q :md;\VgOʢ9Ğ~_{x_E70$f Seq|@   h1m-)z8;\:owׄt8 CIH$TF;2>rD7wMۡ~%$   M;~z7hBr?q< PIr} bȐw+7&chňJEJųO$. ű"; +踔4RQc/q'D"1T!n +!ni؂>Zwȇ<*ьv={/bJ(>Fv;KQղ|Se#:ԙ1,׳!MAAAγW˛v:Y['JNKh] W멀.ZBjtD>)/eeYj-D6qVq#e}9N}*8o~rdqJZY?dKu݈^ h uٯOJl[؎mrtUrH Ͼ wmٛrcbw/WPTuS`<|2YfZq"Sd #О +h\S}PW@cՆ>4z5 GoCH3>nC[Hy+Y; 9T3jeDWҐk΅,x hg `}5ZĴqg~[P!@)}˔*pp@   h1+WX4ҭ'&tq}תO%9@; q[.tzқ3j:c@=p5 }3溳X.t=ê_qƄ3O}/ٱLqA-^|KjT-(boݸbJN^-s-wM~Վ&   ZL[ 5ҼS./pˬH0WIsCFq0ԆԎk`H}ejz{iGJQ>umpxdy4e:/G;g˓7%{ R>#7*%-F'UKpZi̠wnJ@c2. }\%!_@/fnC4q}nkFHR hXB/~Yv/[lbي7xavqyot!XJsf>Zo,_'! Z d47u 6Α Ag:xV1 A-þj /{ mgc!:`4AAAA4vP\R@cnUFGv3h2f8Fs,ڠߨa9ǁOI9 7ڗyyk-1B=F`{cZP&rpY17,n(JD e9F!7 viRcc},Fw6Ig,;7 z :+ \C-g3G쭟:t%3yu<6t$=%Y` ś/-9շ֦}U鎦.rH@AAA-}>kاSIb Ƿ-)dհ4ŜTYM>l)-KlƏ6b h|j^Q#dw<<׻?, =/]SC CGk!άL4Ws`u-b ts߹S@⎄zrJi)}# Yw60Bf!͔9j< L(Mx/*zmHώkgަ/Ro4`xk@   h1.-`Ay?b !,Uϡ!:O=쬛eG3u^?a?3 NTc[r|o1W,h|ؼFΊW 4s7V74,Y !NR:X=OuqxEOrlq;rX ftpJ@ghGg, +|L}04(NX +q)Kv|\+'#h\az3 h   h6+w-?)lȾpFO} ǷVUhgs-QpuױWmYNn\! 4$px@gCJ<R|w.|&ƐU{*f)tOtND O^nmm5/Q;K'Czf +팲] JL]m(HG%3^-0>r + @>~Yώex^Y4AAADLdTS?煼,TfwPy7@4*9L1G<Dz]qّu(ZOUtȺ/ d&$m'd{:+r?8 loL+dD6rNj*k/&8b2eG#K6H͔vŇ06| \/y3@    M + ^%a%])^%v=41UYb h^ZK +!cFfhAݺP6uk.;>ڕgH@Aq2Ktixk>~Yms`%գK3"2ɸܟŻ=vN #7X9-Ov}!]3&fy`S71s^&   ZL +5+*4ި 5I7\Z< +U Ş%luh3d8=mgq8PXH]`)Y%d㳥/TpqzKuX 5lv)L:Jıy61GÁe1TCmFW~xqS][zvd׎}RInYxz+Ҫ gЅM?UAAADiS{-P{RrP߮y%&\\c02q=:ǒ+kE.Łnjn#1-vhfJp;%#_WD\yvq["3t@(~ Sߘlmv /+/TIgc+H@]`x+?#hۈ$1fʢ*?iڦU/>{^!~~OxMC/ܧO&   ZL +]ˏnΉ d{ْi0vj)&R> +YcO%݄ TM!bHŴεj<qQϽ"pN]\#jcsճscۅz˗3vCGޭ.q%rQ+zyݯč.?;#n]<m +t̓ǎ_4AAAD!])H[]P¥f= +y:Ka *l3(kzxdq4Zg/-ZπPC>ZlK-vPZd|!1YƫWϒnmy8;U,ÏV!v%e4Cf9@~{U9S|s:heg|Tsi$   ӎo‰@ؖsMd0ÀVNǐ)FhŌXh+,ﻝ怮wOϮp⼑ \N+Cjސ#7kn#wƱP Jvxn<]~W 18-S!MAAAvk5DVk* 'T1#M4tY@$U\Sֻ8`O=АtVmIg 1hAfXWsn]T8L[F6ڟ=g9hfgY G)j>X)ȫs7}&ճg9ӏ( S`K>C8\OE8G8h_k,$   CZe3om-qd&e(8Tp1 Z5Xq]8V) + 8[DѼW@C/ٱwd4ccۋW}zVϢjq3Om,lvkĭJt=<CYY=D 61y&3z6t +AAADiGݻfY{ENU,hl92ˬ h+S +_IBD +hH )9$[+5͘PV˶& +ktX 59`XtiyA[8`=jZ4ZIüy6ov=ӃF+gd_6~q|zuֈJ_Fɸ' +Lt'2~uYy}i/xXLm9$   ӎzsv<ӄUX1 1SB +o|.α$[ܓZV\z֓Ψ±ă)Ja8 hiM^i@"ƢRVX#lmߨ6Ol,*CfLVϨ?ٲC1;.x[Ktnt۠q zgoW u/eAu8dy#v64AAA[>S7n|rye3g7nv_~gwY(lN&'OofϞ6avЯjN W:맕+@&P Kb2&G@aQ@O C@@c, kl0%uޙiƟAyۛ"<쎱Xv I7.zwLgQ)(Fc.7z\^oJtApW#&8Y ^Ӿ) f 8Um1!4vi|êj RwLhqV˿~o'MAAѦ_;X| Jfܹs9;&'/??%v6mG9tҎzp8҆ȱ$zay^`QBИ&6P׃k[V?3XPl {kt=Ig}zv#nAUP ǁjspMIjp&ńݍwtZ܍pY|s6=_v2k?\ns_-^^C}&e:= %]i' z!)Éi?o2h1񂜉++uT;?#^A h    ?\]]]_?ZVI׮]o}'D"}N2dH̡ Zp @}#V6K~%8&LnBuGfRE%t-ZZCK f0XZwq(qd _G*8ИG +Kchw랽q˦Up;|[Vc[x7PVw.L]tmmy 8ly +ėeO7hܔ:~)+;2p1 +e4smC %މ;~9!x!Pb{FM J%[Ŝ&  h#<ϻnuv9saҤIukkƄ -[6gΜ:Ўv?}RP7 V0N O!{; vUbѨ`F&W4+ +ZKD.лuppW7άo? 40^W5O;R[*v1-=r4:+$͜V7 +hqC.zZ; +5I1kFgT.&>$wF,Nnhy./t[||.C7˰'ipb7IpLkeSZ:sϫEk H@AAl߾SO*qoƚg}>X_~3H;v:߽wͲF%,Ty= &7\.p)?} E}q3Q(ʼnJKޠBevsX(`uEbKrrgs׼o~j\v+F(gM-y Qvqbߍ +.PݿxA#0LfҼovvYsu?MV' \0DȂ)+ sFY]XR'}wQ^ESZδ4;R@yOh9^%^L +tJ@s&  hlr 'lܸ_FgΜYñz~~UW]uуޡބ:n?= @׸0yfA6`,yY2Ԓ `;.| %OU5뻨`dзI,qi@]IѕyYgp8ӊ{kʠ 1=umn۱$׳ű'ZP{w=$\dP@ÍSz| /k[8E\(C 6Fwa}q;/!VSZ!Zf]N#'|R;2 ^Y&  ]ٹs? ;v6leYvzo֭%FQL.'qN8qbȐ![NLkH$z!RښнkW3Bܺ xch8@46"l@0 KU+r)ciVld65b:nJci Z2æv]@Mؾ1 +N*ȇO-'B\̹f H>l< bF߱Vzd=}P9k,~GN9~ߩk|J~]_<)ۂ8 j.@@'|J7c׳.HUËY:n7tpxx\CuHUpmC   vO|G#6m9sᇇ<XlYwwwsxiϝwyU?s9\̷r˼y*k~hɒ%ַRW^tiOOO/| YT2A@ U{_(_/ ؏l%,-ᕔxLJQbYv=Mހrt + \l]VJMuj5*ViU%fW̱T%B,דW'e[N,wv :3 #-6(BPa1Fv,0_p< hH{Q|Ėήϻi(VFySkfAE6X .X_T[ݴX. 6`UC>I5>~e@@]ܓiL5B(|#H +suP?tAAAׯ?#+,o|򓟬p3<7Mxz뭷V2UW] }ɒ%]vY%#o?vжm׿+i;kXȇC W]d{c0Q5J+D[X6‡܉[/\H%3UP:Ə_,_M.d%4%$5沍 mb Y"'eY.@\Vyj;a;y8I'+bb!=lY8n-]+NKDLD4|uGMɎ.~8kA]<D.ŇSƅ%|@?1~54~ePj]}tߚJ8ϥRqҸ|&  [\8{9c#0o~SVn߾~w>o}ƌwqmW?Og?]ybۖBvwƇX`W! f[r UqgqtʸZ.MԲ2[n10;ԤGUֻZ6(5lZXZe<܃yY<)+(fMr%h%GpѢE۶m3W!4£vigyf%w,0;% &:u:T2~aOvۆM̌5m Ո `'Ow[x̬d9 _W҂ppF}G姎}DAoX4AAAΝ;;p\~1/'F۶׬YSb%_җٳg0kkbO81nD{ l|/_$t%&*UÅ|1ALWku#]/M@M @ЈySO\/4Ml=>ߍ> @"{ (|] +R[K+pSܐc*lhx + +) 1Q@Yda~^XOw9yYȋ+䒞vvTMô/T@@; YOwЮgw^>ؚGkD-x?5 Ń(LьW C[׵ Lfo-AAA?.RcqV\YyA\/~C9$ .;46~˗/m/GY4m'{\fdLwα$2M/eSDpԦ?mk0u%2@EQYOe|ۙ~ po/и?}`.T[@@_fy"QS;ؖP7lHXahPٍ3 ,J +[,˅kUQmeYb3SP372K Ap#th;J{G|V Pit't@J@cGY;I:oCxA!K5 k Na_H@AAA DN!.æ׿xOf'*җ z#CrY|ٖ+]@b>F,mm[(cReO. (>4*l@ф8rq.{Fb0&N!>>uZ.OA +>z3Z>stN5v8VhWt씏$<`i&[Cqޱڛg'/1lS*y{4H@AA6ٳg޼yFm?pu)?^\r-bl<_4NYe[w8!Q-joF G)lCL=uUղ`ᕙLS0-4AAAm8 c3=\cm_Jbgy悑?_XرƖJ:,-U,혺bBX@uU~پ%r$u+8:3ڐniUg szJ">F +h\{ptaĘb⾜G e,p mC6f´D6bDC3 VĉFdLtAUq|> QǁiP i+X COwQ1G~"oz GH-h02gy#jZ h   چ8O?3,4iҊ+voŋ3U'a%㗾*ChwIN)- ́+!=G 7QۈSLW`I:ik{d1PoǸqqC=1% lh28)t%!L bofzX̲/=~|rf͚et.%K^r] K h@TK ?kr93 +!=y[-:A@* Qh|)fe hp:f5>W4T #ՐF U:*,$|#Z~$|0a} c[.JWxű ##S}}hWuYIJ;^C2إewkeEú|R:sv,Os +AQgFVϥ᐀&  =K-Y.ׯ?묳׿V;mۧrʙgY>8QxCC ij>[6л_nk³Riulqm,eWK޼ʁ&pFfWV@EjH:4t[ŴA,v;UL|֗TA,h'ïYC^y`hVr¸U4denz ' |7%Ư73gi}ֿ ?p}OZ=C   k_]wel/{9sr-]5\}_Z2=|!C?U'5n*-\;h2նLRf0`T} .+qA] BY_U) bژax>zuuUk'H)HM_|*/$n{xbUW-I~O 6{ ̖Ɖ))T߿Q-COwQzy#5܂o{I ڧ#Kܰ2t~a@ R@8/lt h   ڃO>66^tE_mO'Ldɒ;o;6WXr=SBXKK.[TgMV6M.?5b&IfJ@YŶf-%S J@cC@h+LC ]Lg G39$ՀWs3$519h9yGj袩w[&)j h   ڃ?駟666_׷tvvuY'xb-[\q{o??G/o(Oz'oy?t@7@Yv\a5-̂:pOlË5@@71f~.VS~9]f; 8e܂n+wZ\5wkc~qVrRG} E3f4AAA ,رcG}Mvu~ xw_xᅮa&NbŊ8t=o_Z4e+|]FPͫ0=?n(! +A lhFl鱂V 9p5!Ѱ%R@jO 8 j_;^i (̓aK5 wz/p`bKv}\,ǁ/8Q~ō9G?uyt  r9rS@>cGLlر| +7" + o k*k*KOuG+UhhxAkN4 MAAD{PV@O6g?ȑ#+3prOӑQi^ٳSθ`9)ހd5kQbQ~"HB􄤥N@.Xɬ2}،8b4D3aKBto5!59`Mt_ ;G&0g{fоz +^Ϻj-> EOw߮O~o3~&^2 ^nwfF}ٴ޻؇^12%6%#{Zu;S72:]hCAs¼Vu[໽82-aAAAW;l䊂ɓ'?Dv@g2/՞=L̙SЕ#\䦮Q }A`,~<r!BÂF_% /&A4;sv 'T@%wF0a˖/6WnNudQY.B:s1y8~+l-(_d#kCS]4kz|CtҚ:ir=e5Я,?E-vvA:c⻳gLwiDs PP^vTݑE   b@PZ@_qp-弞}ذaC8{WtMZpgqFx?>th-o E@~_A)f$2,*['g;'Pi_h]Ӫ?4/ƊdР%[,L ZF%Y.iuO"{9Jb(uU]Ҹ7n:FtwC\yK<RE⬂3~L*mn3USthVs=7o⋍m?s5tz&"{\^٠K5}fϦY)k.AB9'>Q_Iw@ +ZL @ׇm2󮆷&=U2%6bx6bГf~ywȏyGXhfşqH˿'mkP܁5;'_|k OauH 0X'^A@ljfW"9v~@ _NP/T|s7W{A   ओNZzuC^z>Gv]C5ϙ3"w}9 sϿkbD=mA6E@k1VJdJT=4M@bHJEzAvP͑V,jtІBYiYO4:F6'ԫ?쾩m g^|Ps5G>sJG+ wWڴF[h_9D;c/#Njwg1M@n֑?)}G(|{W؂Șwk9S]4^ʼnl\^a=B}13h֫\vl7{&? կ0 (b/ÜA-ŧ4AAAW+#§m?#Çg>06Ƶj-]Oz޶d7޿TK\ c +zsn%Rc^ C2-aNV[l0,m Zj0 F9LFQ[`Lcp8kE"j1mXIWHxm Ϫl˥GqmFGkl^aAԺ*~'<"ڿઃo'+J@fوFZ.=pb$cE߫,X]5Х Ax~`gYps鎚|AWfPz2nZW& +hG寡QY.p/T>l{̋&  =8?.x=ȓqB0k֬]wݑGYLN?ƣ:kDښnkV\Q5@P`U~mtwÆEU\.~ +pD@;LGFe9,D3:NkM@ܩHD:\/z++.9+N3g-jF +ݚTsdc3n,<7+*1NA Ϡ;!̓q4@3e6m߯pHt4K]4Fc bo?}P +wOElr*Xˠ^z:xL_[K`;̌hP'y@)6-g'٧wj׭}yd$  h~_/]4ST4Z3gΜ8<{|>ols-Do9@-t~Uy4#nfͨtY)&\ :nupbi&`ݍV"ءB^bچ7Gf?W] =-Vc%lI@OnLwq|K=^,hGU:Vs䜟rM|[l) O$H +|yn|~[ur>\Xǘn6ttUDf+/"nL:jLP]V@n"+6\KXw-פ-XH@AAM*򒂥SWV@@suWW^tG]h9 @WR[ 'cEM?,! yN eG74&u}5 ~CwdF b}/&MAAD{W|qq};ߩs-[D7Gv@ ;_W2zzzϟ~7gN[/| G>C D3,ۙ#["B\ƇB~ KA13w88z"%&+udqG +roޱ'a3o&׊Lv$v%Wo( ٓ(c%ZICMⶣ˸ghEN /GRc'[R=,UVʾgJtfA=S(-_ RmGd wMzt5G@oW_RӻOp@_6`p)mCx?z1t}*Iȡ auS|xM y>t h   چ?/ȫW>餓iӦ?7ilz䑺?n-?Çglܸ:3wҴYsu{e}]zvTۭ-j+jAWqw7ljO<+ +âgUamNxϼS߄̲̆jfSc=2 U)49?)E+pL(# M #p5,h9rdS[>hw<"ĺķVZO2"R杋7K!YyjI)O ztïd氛'6Yp4he"NC2^ DL lÉQ?s:~x$  h'>xSO9r\ڵk-+@='W^=f̘q~G5\wvY}ɸ7xr 5MMXfCנ:(Xkzd  |&! LT2 #3o9k\3P? 7^"1(|_1Jm'b1v6dv*zP:P!b1lڇGWL j7dCĸ)ǽeq՜D//;_g]9{/Ud4i`3ƙh9e;(L[o4-q@(-ne'& {ۇgF|:  h' /XWu.ҟgo{w!˚{5O㤓NZzCЕW^Yek0B>qď~͏B޶d7FԂ{ E3V[@laEE]T"ۘѕQܹvj$ͦi}α`7O;RLܗ!RC;Inzx^y`AՕxiM28F1S +ZI!W@4OiHm12h1m|֑U:|HF鐯j|.`e* ZH`Zoщuh<~f^:`#HjƫM +~mh ? +0d7?I!Ǎ;ϞZ15<3ryokdX&  mxWwvigyf=#wq>#. +tꩧw36s1˖-m\nܹc6)Kq#8wߛn u՗W- 唙.V<Z84q@H3' /aV^f#\O=HmTJntsѪ9J|d&.x /u؇!ap:0 +~4.*cDprP{ؤWj`̔AO`L Wę[u@FBZHóN6^= U8~VaGCrnj:@:S@ՆZ8ڃ;}=]g~S<Ϭu͇1}߇WzIC<6Ȱ69vƒ ]@ a \)T^՗QeYPY +h/±9%~D/;3}A~RAVo 4zWuM~*gœ{m54w׾^o[3xfB ~n8a)gC @2Z_iZbT}g83P٨ɟ^͟GkGMLJ1I@AANe].6.Y1?56&'xJY`'?֏8nѪ! x7A^Q9yTşZ'T1 70z؛7:U`~qP-/Y?{ogGU}Sw֝ ͖$`Ȩ#Π \(ΛgẈà;#ŒAc0D! t:[u߾VsoO-}o8T=u~S"?W33M5/A3}͈z^D. e7+3@ㄣ6fb`.",|r( ՠ0~v^/jC{SČhЙjs^ha+Bck׃eC;~w$3_yO]h ^H yu5B)³l,,$xY٨/. ni;D:/0sYdޠ8jycBp%+M¸EsO.WhV ԉ-][ӡ8/PTiic34@5hp:ïB'~@&5gܢ1\FVnm,u3s ,땪 DgfHG=zkTz4z.zjo+Km$_%Q}pG͏rZa:G} t֩|azvP3XQÛ{h[ԯS!7F] Y,bX, PòHz{SO_dI7n|\wN>70TA' +xCϬɒV"s-\5rTnr !dvUd0c 2@Zh&'9}g:CaAoTK࿈!^̬瀮^@E@{~䂛* >eJ_v\u=n8 k R~DQ4$f.9.Ir]qFL1y4оa +{6ڔmڃi2%k8U Tϖʃ-I⨄JQF;a?(Xq!HOm_0QW~kW4#,<3\ kf+ Y,bX, ?~xn[(O~.+o$]zO?\~wP*/"[$Vk֬ 2yw}TЃϬy,]ު `VXN$+פl!!qNqϝ)Z{N#'AC8No"Y1@#8RXB&ݔ5}03.O ;%`AcE23fG/ɩ2")ba5رV8DY/sr: E5^\W#O0Hm`xuZBhL.$c(K2}Kox3H]7/l_~ЫbbX,bpJV>O,HhwJviIFAI>uZp~$c޽{ժU6l ǯ2a۾wd@k+W +Yy/\Hj]?ax!ZhD>xREIim @/bkQ9(ʯ(S1ft%@Bc=C* YLՑH Ȯ A `J +Hi'<#qV&@Uo>|E~rj݉׏ϴiAe~\!M DuEʺšuM;kWʏK ؟߸];k?tabX,bND}pYguw\r%Q>sǷnk6O=PO^{'>񉞞_~/bT*/Zh& +\.oWy*'P45͵0a#F7~uLA]j'tZ$Ъ :G4AVH,5V„YF qՆ tNۆ(Vqؘ5"C2YvVB+#O%-iBw'^ Ae(LC/s&f[<}ClV֤[jl+~ܧhbX,uBjhhOOw`oy[.%K!z׮]O?P1hڐ<׮w_~9(޽{7l?7xc]'޽nV&l3t\V,w}Mlzh bpB)KvfjzF;e>A,oek\ށ<1R- ,j$N!JeNxRr;/fa,.5`tAhayIp̺NѯF(|G3Wq @ \QͦA`.K{2.y}o?${Gw׻VuZBz=&*9Jcu⿘7glxW P7V~?-"8bX,bڿu]_NeS>ԩ^?#G̶k7)2_zX; +@Y^3֎/`K'8'@FZR[)1t[ݏ=#tiHbte=ZWgL ʮŎm-|?uB£.O2{@㻚 |pRs9 6ʹJj#ڃڮ6JG 4-)#]DFiKzBSw$&h6ǩag@vZSe܇r-ge6>3+1>77w;bbX,b:pM7ݴyZd7ӧ7oۿ˿ɠkꫯ^fM*q~qBw<4.*<jZlgG_N3d%rgȯhoi7Hn&yVܜkC^]FX']4~buoZ肇%RoSJf +bΆ5Ҡʄ2" M]O&;? +D 0'W) &~Q7Ŵ|KoVֻu[U]bX,bNx~sJaNmwygWWW3 zkhsBg>UQV~M2P3U:vMTW]yE.^ؕ_B $t`HHubjrݔ$*"dDYi4IecPFt@593YpNM ORѭ s lhlLgHhV& +ߠㅃfX,bX(=#w|2їK,y׻wJP;wַP(l<wy{D P+t3q`L2xOO*. n޷mt.WS/$ )QhxKp,?Z$4BQ:b윂i0 +& 4 +@v[_$,D}/@:,4sCr鬑5Zg~. QNR4'x튿~Շ goYGR'(EebX,b^a/nݺoڴittԶm)e.;8e˖XBM0F׮]_jO?KF&9S0=˗wy:Ӛ5kqͻL8a:幧.<޿3NFuФǂ/#| F;:*d,`P:4H1BQ̈Ԟޜ|[CǦ5v@X,bX,)5o?ݘgrm]CjFrgsqX žxt.xNg7N + ,mpVG45(s?zQ0 (\xqfP% څ1m;9Xx@tXȱm\SxPoF F‡> yeر2,o ޵>:oq. +*U&e_o 6bR_? Y,bX,լv} 7+&BVK +.*NCs5 3IK>8}ȾOg/:#2=,HԆ>.TF[AK~A RpLҭz<iؐa z?iFP&쌢wY[0lJl2Tf#ttTB5,2/YSqPf*˯roM^|u0-; \9>P7BSk)qL[QBovnwKCۿ7p ζ,|a)+/*g&y t\oX4bX,bZʄJ_|ի-y&-φ=Yr˳q؆JqB+ٮYjzou|Z>f*ʛ\)mToՂyD +m{U+50?Zj^S HeAӀ} 2irq4F +Y>7PK=,hpEzu"tfqX%amz=j@Cʁ ܈HaGQx6Ζ۩lƚ螞+t>L +BwfgQ%is:^% O0=s +{k3,x}7^ڎ dǤpw@ `X,bX,Vke?Šo_|q߾}qn@YIMԱD/=V5>υiA|>Wő!s31Q1͔u0MOlh@%oE}"mSp\I |,1i V=0 F6C;!Qa{AXDSLEM]O&7;~򛝏0Վh8ԿF"3+P5P339ޛF +D#JQ2mR](<""/Y^5y$q˜w~Nu4 EmF:! /z_Te3zY죭ڴՏ6_` +GTuP>RhbX,b\6lXjU +z/hVx߽Gti' b(rJU֒k>]8N֏5L| ALYϘ X*XE bȅ+ ":9*Yh$r)PuF;6y%ULhlR@K][o("#VV5)j콹Fs~_arΪ_S3 hIϽ$[~`~",$kYupZa/^` GFDA􋇘0Q[< C2 +'TNk-\: ށ#5ZKޣۢ-匞sV,U27_k`gCfbX,bXqQ:4.'tRg}?߆qQX/!:{^Ew졧>5rY۫V Hm>r!c_H/tθ04[4"CXFSvj+bdqC@F tE#y 4| +Cb]ǚU={O a Ve9cgkdf]@rՖgY@3H5_c!>h 98',LL"Zgrc/q(,xHtw~^%x냿uwݹ7ZQ6}0fX,bX,8j͚58yw}X0!t*:餓8xڃϘ7c+;aaGS̽b[`3_VCmjYdj;0Hΰ,XI s:B9KG 3^ա-=gT('5\0w4М/ (ֹ^h\=-ɮ. +w0.^PNE.}ݿ$**碰)"kF4P]QNש +!ApN )Z?4HjQ0xF*i.k2&Z?+. +)eQ]AtJ;7WyXq/Jsƹ޷-W? {K_r¡}?u|^{0wr,bX,_޽{ժU6l :@-φtww7fΜhD*Qg,Zwܫ/ye۾{xۃfR,-B 5R\ؠ"U F%y:#[htU&y1XIXPVG6O9?A} 3ӮoxQm.`L qI&@!; #۫йSe+1U9goZӸnVi]%!|-nj+*,+ȜQ6Q: L(@æUӔw"ݚ +8ԪLU$o(6L{Pg2"D\v=`鴢ʴ_WhG ]Hyro=)?. ^ayLhbX,b*z͚5:?z,i9>{Uf"PMLe ,9Kn>r=큣۾B ,ȋShv +~3\.!a>BM 5 +_y1ZaTt9inI\MG+I$*D@H[WwHLLw,&䷍/s[)z"^~^K.ޅ5W7HuYMK]P tNvFvn nJ˸DGi &lC#Xƽ|wJǻ뫗)e(͡c|P{M1cCx[Ю Xq3{NyB*tnE{zzy62fX,bX,h7pC2!K)xZj<;);S-'|k-Vz6AMzN X3>Aش`(zɰh򅠙ftЪ%7x40Y'C߷ TDa4cc@ܙ1)%H zDdv[&Q1p_ɞ7;~򛝏  CtNu )x]/w3V+*<.$!G8,`0 $M*@"p嗳]`36.jzi82u:#G["z`҈r6Ǣ ixf@63񄕱tןq@>4tA+$xs$88gے(ZXS3^l ^߫%/YS o*}qVjs1%u5W`,4E@f <ݑm Dt}UiBmd%i:"pB@[ @g +lh>-| [yv"8 H$٫hFXޜF" Om1jhY?."6x4.tI~t0:J!+`(Bgp;zoG*5IkTP4]h!]o,tUpGEFh.Fhu_z>v Y@Y..ht4L7~=.{$/Z,]<0@JFm{G1ʃN,M= !,A}8eт?IwR0tқOiMk Y,bX,EY_W}_P˳q;@jd@S|+5 85 Z3XF:*_\^ٷEp 'QFQNgznV<Dhtat-n43xP-3 +sےHη4+L%-ȴO=kHV1MY GKtThSt`, uAg5Ve0[iM5";ȯX9ߌ~aKy^5ۂ ! ]V@7u8 +7* kCzNi]+"pzL=Hlh HZ艹 +nZ'M[V/9`R~9p{P 71͒z1Ãտ5Cu.b/Z(Og=Vw٫8V~GEYǣ#@.5 4ȲH8ZXzȯƉޝX;P5V_MY7oO*=»GN*t>qByh5T1>.KXq'M_|UzǛ40xaƄI8%KPDjRz2B=p@nͺpm,GuK@rb"m@C3L.=g_[q`*Zu;*wқcoG@X,bX,ڽ{U6lEo;cJ5~4`/ SgQԢoNrSGEʼn(6G(cMUPN +2?$s=.8ذ'HhPϴY(4t&t\VMug;=pW1C3fX,bX,VZj 9¬1kl k/3_9޿6jruCvq9+~›A:h)mw34-=4fcit +S4h 5;~" 4#'J@SiHF"@vS8 !K +*ZO`@q.{,l,O(f/`cУaHFUӥ:5Yښꅋ3iA $_8xz+hA*Rd=S3u&.\S\Z{*CCCD_6UM!¸aiVο;F۾wxۃʍjw xډ-6+ .ԾJ-gu\ڃYaK%!E5Fl01U0i@cvw@K<<g8W5Ѐ_MMG2А]4Yf]Ųxj 9]{P-\0E(7Ξ2`AKts4Xv֔aPC6w.2B*#CcƖ?T%Apsӧ!jy6ί'^E@?ÅC'%,bX,j:@o_~QO|x CJ@n԰Jwh嗌fQ23v ڢig=Umdn>e:k$ %jAۉ֤1j4Fs@PC5 8&~ +h ߀nF:䧧wew+e=-sbt\_%gASkҎKٮ7 ?Ťm=l}VpI[W >Յ /Nq4bX,bګÇ6xWKjXlgh}.U̧qQ.('H5 #Z-9`U˧< +Ȣ@ 2CjY5!9CR!T $X0tawЬ*jhQ/lh>1 ?<V7EbR8 :Ϟgȝq"y/Fu͵tʻ}-vbNПG_LƄ/ՂYG0;yG [8B?|Oց~~]ԻAj0fX,bX,Vՙp֒&kXK?}FȾ'nb wL@neF!B^s-tB˭PGeBm}x;'lȟj@F@4YӞ̍GQ:4CTC/\F8hIV; E ' +ƋF4NF3G装oH_mo&:Vo^l?=ɯٌö$U6= hO=ūV p 4bX,b.С*NuE+eh߀딤<.gchK^8塶sЎ B >,dЬ֋ t}; JDaWwBANKgNX;u\w K#q  & qɔbcgQm\W\?C_lOS9N ˺LtcoxTgC;ʋrj*zwۻeV8V~.6G~RW}}| Y,bX,fu&>jIWIy)Дhr9bjunJ[8H422jB?Q[5&U4٩h6ẽg\KŅkK!L#'JAV,9)#!:h5z䒰vXS zًhHwA. XP )h/_|>iFt ϶Nn+ V>Dc{Z~~h3զ|#* +{zwJITGW~5m<3Qk=nT|bX,bXmVg_;xKj@l_е<9BIHGʌ!DDF9$.{=7y yFE;9Jg3m0VENul9Uʳ1E,tt#B꿅 +FDuҷB3,A1@<լX]3YSwcq)?!I ʨ` Vm.[{Noy\ EˮVWGє(>sS 7IoM9ƀAl{XQ/'inMzK6᦯Kާ>3zh3aaq1BF9<'2z @Fmj>ͣ:$gcz3ײw4lA[?5c/M i1C8adݚV!y @1٘6+УkcE7\] CN]𶾾?cAWOBOn|`QEz!5ݣh\2;SzWizn;.@E"CY >#'l5 Ux-K!\կ=nq.bX,bXmhC%YPph.qAoYZlGI~]Vy|9!W"υ xMߒK@'Km>`K0e@2u3r3_OnJ/YSFdHDud1 4YDX@g*uh2mwXpz]m 7jȶ@쌜M&{Ly>UGyDROLw*0XSPPdOK/Q+|+ת?m)2]6L(#sh3 xС4p䨨 ʹ4Xձ(MrF׵iun%Zh9Jxd.H -NRkj?HҒ*yޅ˖}XgoZEM^:GOs*OQ` tkHpw︙g4T ޻7/p3-Nx\T7R[!8y*Sfӯّ࿬$=JWgbX,bX6tiduhhUDK?}tTRf]VƄPrrZ`]{eY,D@34px=ǫJ*n&z{ؗW|wprGdvsTES͆6fcsLfD/P r?Lt0շ.e>~:q&qIr"ViMĸ +e HǗ~>j2,a-J !Nl(݉)=golS廧ý(]4bX,bڬÇ6xWhx9AEwL]hڃE]LsA +$NJҀW 6B Ex1Fmo Ng&@3ԨB vP[T#ED&L6G!;:I2N,p22 {= VVkjxs7;~򛝏]ڑZЍ}YD)?f'fflk`D;}&|;ATy"y3]]3" o Z~g kZ S1׶ hWʌğ\IOP@4@CA\ mѪjf1A]rMVaOx@X,bX,@wۿ mPCcd(p1=Դ?+w~* n޷3E]r0=h& (iaYϴR%@4J-;4jzh A (qSOBn¨!@:`-У25`u3Kqޞڀ~" U&^4\kફhw +*貾+,)n\{0U1[/f >ᒆ  1wk. 24 R^O7ʻA S6vκ^OY+.=g5XaRiQ)F*]c[8q#C0fX,bX,VՁz{&+ z zz 8?M2]Rԯ?FHiw*#4= @#_}/?qݖKFfdx!Y Lg}Llhh9$d194 ]fOg8>5H5gx@dxԌCa1Q3r9: VgvHfϷLPMW\yS=KhR<\ 1@%v,ws|sL? T +8GΥ/ز +_0hNFgjRˆV +2syQ\sa91]Dh}wK^@/g(VOnQFl̂szw~1؀4bX,bڬ[&F@CJCTih1"DgPמ_#v?qKYHGJLuHAI |n0ә:Qg,h%64V#ÅHM)&0 +i46Kyc}C4JƊHݶZm^wkAu^ݾc~M3fX,bX,V{ՙ$hZ1m g}Fp4Ag]驽bzBf +77""gC.g*G͸ hXvtL upEqmoDs\3x4x` ց ]:Lf$ @P3:D諜}g+no$X+K"@9 z?#mK', +mAI FSʭdj[j^ja.J nFɆGω5:vm?LS9‚xmO%jXdږU+v͊i6jM&o̽<;k[$ +M"hr:cP/f#g@T碢6As@A/Cyak!5Rm@)L-J-15/دVZu Ŏ@QgukTAgUNm&blsѲco‘`b/- 8^g=&2FdZ]N H8|m`Wl!XcPjsP`z Pwwh4h55YY11PF4.Z8 +] F{"&A`lV[!ٮ[~R~[/;@V ]yUsw Y+hbX,bYkb֫TCnƏxWұ؆x3~t3 koG&7Dm +TwVҪeSzhZhApb\^" %N R(pP  Ș1ڭ)8uQdՎmEbӰL&M"+bl޹#ZϺ|b/]ۥt)@+{~rXQ8Ss=H +=R3AjI;P5(TnZV[@ ,6F3-6 åա-5hTʛdq@ âϩm\W P/4bX,bڬЂlB*bpI3~~.Hv|u{#7FZj:aL+{]M 4+ EA:4τ:t< VV;Ѵ >a$+pISpրJ^I2ܒw4q2S /^LMi暔  ,@CFLl >plo1yAȻg^!n-bo("|gPp' q;RSISGĬg\w6!R ~g#4BX@l4 %iʙJoI>i`S]DsΡ_@X,bX,4=;SQ XbK DIZ3\vn{]?1я@R-=GsUDspL098$jL^AE:bʉCvوEu ,bPu厤 ]P1c?8 +@p ?djzTSD]}| o d势{ϴ-O=t1앉 5Ǡ.m"qbzFԒ _Sg/hƠ 1_H$uFa@j27" AF/>%5q>笺?pf/kW hbX,bYmܱC[~X W[15o|}mF^h#b{ȷF4GQ0C6f6oTͺI6-ҳW f3-}K\뒹inoT~KB+- +G3:h㒨kI& +m (j Z})59 x'44O jn|~l[`L4f)(|мdvՕ.:)䍜)Mh0x4T=ѠM5o?& +NݿOվU+hbX,bY8?Wڨ(wei-X|Ӭ7>y;krD/XG@Er#5ތhTJ3$!5?7 Jq\|^AIY dEwMQ횦Q;>n+|иu;# VVhZO:.pF&# *1C8SIXVwA]tv%|lVF}$Wpm@_xtπVZ}@׌?U8E%[*M*Ku\_&}tʷïv&Clhw A5RuU3DG ץl@a|`bX,bXo>WZQRk**#ӹj#಴t3(RF!c .^'H<]1,C5cBS3l\P3R5 C48PPa ІyT;3IycD#tc-1hF_ +1pvO‹}L$ЍٟAl?<"RXl0r. qlhLhvp]Հgh +Aod;}_ڞ}-@X,bX,(=]o3F:[Jug.]yOՃHTt@7 +4"ipto:^BTq1-{(Pm p1cE Dg@_!!XjaL4\]Xh.KGj0-6`"(:&:=$<ΎξB%dl6M4=)TEMأx ܳ,W$nhW~kWC۾kABg"gofQ`bA.f,CqjhM0W~5I3>ǒ崴P5hbX,b] Q6KRYs.[rSN{::`[y  zg 6fP .uf:\3#^z|ҷ]{g̅'  Y,bX,vu7C3kJ^*.}J#q%6Guq@ +y#hU.k2%6B7h4X!3P9}ՎjGg +gWcayI6Iu\_LMwot9ܥMCi͡|䞳|ah罛5f`bX,bXndCҲt3y}o?$xgqS}Tf+|v.]Xat@λ^wT/BP\ ?AF'YҐn42CN4_B~[Ipm@Ĩ Vvl9t:7j'i-?0d齣:'MH9)NHgbX,bXhr=PhKrՔJlڑ1C|S  I@fN/i x0g8a*,K0.f1XX 8Vj71:Զl o#+JҲ^zwfϭv\eY]c#n+,%'# Cea< FgbX,bX6sCnWoL޷XTI9-)aoW4i_,h0,W/]7YC -eV( Q1hږ k@SE!ZØ@yQ*]shbX,bYk ޘF嘕/Q3^~JCx4fX=,M +J)rd5thϵ*-Q@opW/!.kG|Gg]{;:#i ӠJlF2=`uSM-.Pm$}h ݜјdwBcۢUGKmzaqvxW|j.{a0 0 0 L#O3 yba)]W)\W{%7tiH!C+-}br&~93j#ngU2::Cqr*BۑO ˆ +Ugj4򮱡v^S,v{o':b'!%]J6'~%pqYY=%6Wƒsbg+ۦ/Áw=\}G>x閪y|Bhn).{O&CFдNËt:#p˘x 0 0 0t<c_<3['<@h2׾Wy{ ugOm:B0YLG)YQАG13|ё''@ ST@'ϚY՝So*ƯeԓB?Z9mIHq4mr4݄go}"E~с;cn=\fKCc#QAnf [ʯ^P̊ +u&: h=z#ำй=&aWgO6;_GW#ǽK2hOB +tsBwmB=%MhuS{u τo ‘} k>rFJT} +:ϭ\Z"{K[{]w叝) +ΗT2Xf!~ %"k@fzOK`0 0 0 LK@lIN#1UDGثX~job[6yHvz\hKv6T\V@ бC +=& \;>m܋[1;1x#Im {?&gecEMʘɮ1Y% ~#%蕟rG +n: C;xs^}An&]ؓ _|O)O.#L]P4(c1L.h|3;k4Dkp3 0 0 0̔<_΃-:Ջq蓘9b_jhlUډ(q^5渿jI hps~) B*ê[$Q'te0Cڃ T Т?#xg:֘ io%iQxɥ>"EY]ݴ#:WL@>Q i*lO*:!&T$Γ +yMJӰV8,yޖ% nF*6*9n<ޛor%~2֐!VFC4އUeio&40 0 0 3e64anov^Fdk~qWܸC-:KߎmbϡSe,R%ϴ <ќzR*ШPZWz iW(VR;iN6~ +3jAuvWHTOԝ,qNnXcQV@_36u5mF '.tT/KD~W@O憺*W=s@Lj+93Ɵ@iPU +Sb/16`Ax4l)`2D  +/?ZާR@n:`:i bbXxY@3 0 0 0SfKK?yTb3T¢_ⲠDG`W9K߶a^EDu4.LM6P@V@Rh<JR,h:DJ@NRni,ChkDZd { c@a͡PW@WU^Q;^Y^S'N"We oA;.'d7T>G;g)ab_ߑQz[/*Q)s>N6!3o@.ۊaIftyߖ^$,WHMknjVɨqC6гmXOӏq`/)7\:CK3[ς$r _.ܠ.:TX' haaaflxxGB?)~WyPt+pD'aɳ ΢_@P4{RqdqĤ =a d=!g*Iѱ~J&OOfN7eI1) +Xnxg#4Ն +i[ w~}IV2jc7 ;ѭ)9klm]]t/JRQ6T*R쬧ËЕtl^*dW>D@wD^/ !zߚv4ȏ30ܰznRNn ^Lsh٠6y>2ȝ>oxvϷ?}|tE۹zl/)#iN8|EǼP]13􂴜^/b4Z88MꭊSV vʹ#=d G3v""R#qԟuMTL;::s f 07Gm7 +WZ3m4WߑZe +v,LuXMv#>afaaa&Gœ_)u(=zW@&h0QE{tPK>e(1=E>A> 7<Ӎ}ح>KDs͆ ^_l[-#,V;ڋipPd[yZUu+Mi_:J:Ay[{u}bNu2 D ]> ؗ1L lb=oS]ԓ8ENhSAq'ȈB4BOb닕:Ϯ Q#%1ݱ\ٽZYzΙ`YCM +cwƫo E]wc0;/33*C+MD~Jnm +DHA h:=iV3^cɫE馍-on:⌀GSZu5CEЇ>-O.#C1v ,aaaIgd$t[_V$⃖VO<~R;khx'_:#8h0jTɳu;Dj+1j??%PNTvP@/`g4TL:),X'!cP.I4ܸ?[(FJp-b37կ[YY/W̋q9^(XO +̻4?IBՋ]dL/)9 ?tpe P1&Tw3VsxDX#y-6>EJ@ +s$)iH4]f9Yѧ݌Fʮ+6BV@7 5$@"G +:gIvS'&u6<+2xڛ[ +06]}t0(SwLB=c]j ?.k?>` +sk\~Wrкaaa$_ЗmVtXL2TB=Wapi?wF:I7] OhCtqJg*%,rtfEũt +2KE2=4aSΓѿ <2qEܬ$%cbe5֯z2Ydaq FȣX@Cz׻*N:?t;~HYt+oL)pnjOx6?G$64:q&c- RTRи`UdODѴy-llKD7^u+ou~~`: + 0 0 0 2h뫯kӰk4*2L>ƙ0){Lkucֳ3 +4ml2Ds^cٜORI6gnUIJJKf_d]h!x~w ^l'zhCam rm/>=WGy\$AbAHWE <@Ul,)izaLlB!s4.4/76_LoB0`6($CϬWͤ`b=- +s3G8v ,aaaٓ-B@@YN*5i,+5aqisGۤKA;+t6GcOB_PI3?MSָ$Nm +hD$딩-XI7 fAWݔ~#+÷L6h8j""JZW?'OĘCVu.i7փUQyJdaJ{+P)o+ه"k*/ߍc,p0-=")"eV= =Wghx7Qb#8г?sf}|tV{ۻ"}n0eJ85:8_,Rc"8B!~+m@xK]>GC3Lɏ o;hzU=1}`0 0 0 \l'ΞObq Ř SFIOi-EO)ߪ[(gv<,Nb`XnƼSW<輽-t,,`jVu"۩ےX oq uuW4[4`g,鶽,GаQ8 +!gh};j!>@J{TR M/x֛1Л +t#F70M7(__t4 i]w[-݈aaa27_2a|cDTP'gm=q +0,<, +o^".yhQ6Fq_z)LM0DQOQqyJI@ 8)vj4[It@Iq.А!+Y9^Z,2m |كjt_1ivr`cWd7+oٰ`")?r?j a_g[-=_]خe*; haaaf8𷯽M_@?vܰKNJՈN׾GyM>g{.]l}]M]Iliw04F )25O:i!18C6D)Yۢҙ;([6 gp{5T@7[,DvGK%Oq9@ww&pʘz;[~/):N?RaB՗}1Q6m~ޚO:U,aaa)=(}c1)S{^ơ΃D@:VƃPm* G.^\j)?Ô& 352oCEX/3؇b>=>s:䠿]` SoC hPɸNzw%Xg4z^=|z.Z}>oS)B}~_|l_7u~]lG6*3'ffaaa#]?9T_a |N,UI3?Ҧz6-Nhw%P=XظἕHmGF%"TA"3ޡ= bY4rV`Xj j;u>N'aX{7w|`9}40 0 0 3e#pG="#Ӓ#J5=* ;}4AbA(n9.z`GGNYpo{jZ݌Cô44zFZG>W@Wr3@Rjq +"3b|)γ iME+g݀?*u;]B}z+>M?^_TfD:goƖB7ZD_VnVK7syӽMaaa2T@yyק/>>}j߱:J&>Y#{?\]M9]]+UZ& +Lg4ly% +-7UKCJ.s٦/W>"e9cKC͊k _/ +ПVE /zCݤ1y8 ЁX@3 0 0 0S +׽7>=ٱ}WGSKFc: ѶU`hF,(gC_Y:VhMb5SV$;>*.p4ႭI "bA~ԭ]aՆEyW=4J6O333kS &w}!5;YS^lPnaQ9䲁=g9Y +e}8W[~ >>u Ŭ^ƭ럋/"> +hC"0v-_V@!ڱC̸򕢿pЛ40 0 0 Yp_p;ٹc + ;pbW1wuJ.)|  +*SOS*gnC_]: 6j/7Zcv^ rGzE&vLqw.E[^'h#J(2ypV6z XcG@c85ٖlǙw3lY%]K@)H'OG "g~ewTmZY_K|a#8E: [D6WDs9ݪ@KC'>D /< haaafP7~̵׽׿c +|ɯV/TdTFhq} Ɇ +˟yM>ԁ9__85aP=M+K +tAѵw>T@g#ip kV4j&T띆1gaoRnv|4`5xٞ-ч?tiБ>DeYဢJtq*"2;wyl}rឳA$d9 :A=>8yB%jӮqzALۥXJ2="yl#CQ@T{@ p^|7qIV3,ЎruZR`L]|>?t}|Ai +h׻rQ֜2G>޶О'7ql +h}V_/Ӵ#|x5yM_~~ phRyb vJdJ ,aaa)+;~c +owu2"4^")~A)J2/K=笀 +hRSS`}"=Q >./j  c* +Lۅ_ȩ[K$=ث<_a!P |jnFKq >{i ggj.hDO*Բoқ͊q^>RImӂ;n=V- a?T@3m.σn[1IZoN/[; }c[D"d4сO-Z?D}6{a+"ilWSaaa2_ĩ>Yr1WV˰FD)n$/h!3j$9\5v/,{跨 ]o .faaa#+/?|ޗwY|R|hj NkG1M#EJ4*6k+K{Y>܁9{}\9jaZ='yȩ.<4|kM#>HPqv4-̤@hVNJfzDB~Ma[Ugҫg DwDG1;:oZ $z_p5U&=] 5mK&*e2<ʋi=gׄ:"ut<LO?j@57)I,ڸ=OhIzgN >UA"m?Gq?{U?$tbЙ0s~g`;܄ 0 0 0I '|{>l>&hdUƴ yuߍ_5Cڤ'1J4[É4 4U0?hl +J +hJ`3+{S24xp'XhwhFuB +~?'0$3Y7oy.XˤD߀M۴ e⚱A0^8+Ǣfg JEi9=c.'H!pgkU)/$_z<+\ZVLr5]r^nˮ*z^2V6. +f㍆@?rQX#qAG,S\5_ ܱwcHgza A@cDdh׾{_s" /"΄+"S/nUg haaaf8wo߾=.8W$ozaxka:>c*8Zot^wG]oM?"}' 4[ fnЮh1<4/j*4j&Aea76:>:6(N3zjgZҙ6c$dcόtP@.-lH+S8)ofY֦k.(j_(y(B΍26c9=[1]!sNZ׵k\!,)s{_5}Zxwd7phA/!":CI {M#^PEY9#-KBw) 1.<0ßF +E+@w/x-#}]cDaŪPO@X 0 0 0̔q|m{r,>~'O'ւ}4ڥٰ'ŕ;o<$O:mhAӭNFj4jNlз3`QX._$S3U))P4S B Z:%yEC%Dڶ!22Nn3@4dC_^}ڻ{,Ur[T`~DB;ZѯN>m|᷄ʛg|yDP9C;]R"-Ly# YfhIM+Y:/- RP"gOO6)"v#ϟͷڧ~~}tFgG %ݶg_=Ҹb0 0 0 LG@ߡ_\ 8ч?ٰ8tF,eb-cȂ,?2n4($*iA4EьTzhQ@;Y0*cA w FD46Mљ'd@Fs0wIOh&g=1N⋒ +=ܲitUD?@xa| v36(A"dX oMd;:  / 9}g9wƵa +m[V-d-v̛]꡾8"i$6]ꑝ2m{kxR- ^7fЁNlwB*wmG'v Wٰ&:4ב>-IeѻzO haaaf:k>owunlX7b4 fs| }B{ۮٹw[4 ͞K(yUqJiuJdRΕ~aul0-vPQbqRð17Jdp`(h͜M.`gKLū2\F[qonڻICr$c̐b$DR63|a>" 5C;΢wxQZ@($HI hy#۶1h{@A2[ i=t];,#&Cq矿o]viV@+Sdm$&C[ՙGaaa2i^\z%ZÎ#巖V:hAz S lԇ8ww<=̌-INuJL37hA=s)u6z} 3f_nXPsr@~q&fE+EFo`Es f +@`Oy՛1ͯO϶ӧfk=4‹穢Sitz鞊8"B+7{*GG* +[RzAN(<~,wTjҞ.oVIA6'`ڧiZښqzò[(i9&,E5z iMgIl%(>>4D0.1< )P!0a0 0 0 L<}uo(DZag8V +^99}h->I#:L.QY$׉H h;Z$~9x_3دs4~MzUQ Uq)e/DZ qn\`=ūr(+i?)‡\;o]mZf[UL}3ޖyNd8zZh>#RYŒVZ +h\Q U>Ab!Z2T"#[~?O{IңΧszfb0 0 0 L~rOn,R}D6DVAZ(e8.>5r$ f'h3AVpz:\`cʭ#Ӛ;`jHfuɪnH7B\E!L,em[e!Aa niqD4暕2l66`!_ ~P_D6pF[%2F"cހSG,G@P)@r x͹ U 9(k ;jX)iB)K$rCd頶2t0-;Rtsvw6;WkGQ|'ſ^_ haaaf F9;X,OOklHb~Me{IS_â紀Tu27ɭDe=$9},P6T{N@jRe# lUI4 Nb^E>ijڸaK{TXn"L15(k[=Z~B90a͞񷆃7бw'c+s#?ơC|;Ư +oS䤇A[LTK/n1kbZؔ :W{Qz|v9h mn884/Ywhu +NQ]QL l40 0 0 3ezq~[xd}tsG[rIEmduC Ν{_mZ{N-#5T83NQpFDͧYϙQz5z"Jk1yQ!TL7֋NLLpr3|lQ-*$6y2/94mSs;+i>L.;/9*y MĘCS,vPюRGR:nr۷:C;naOl:[Ò3"_@7Dض؍6'g*aдWv, d$Z>-#??_ 0 0 0̔)зyY@?~Ou' ČB)׽LuIN,srᳲ=O{:3N"%` t-+ٯl0sP@+Ϊi4wd0 ۪'2 Oͪ>*~Y Z.MekNJLcI+6Y^5"%\ mũFyzsRfNAvɧ.FgB$&]愎gG@+#sm8TU+MRSO~Ba(O#w+:faaaLZ@7[羶׿׽xhyQzb@|Alk/kvO,gKodPM* 3) Hi?-'Dm B#삙͝)D"DP@;j:οb 9Q!wBca4 kN30H:DX +gDz%͒zz'qNBI/V~@ȪX@3 0 0 0S&S@?X?jwY +*4],H $E(͎uѰ-D@$bv0MaF o3=eq\ +ё<mio[HE3 p 愭UIz\Zk'^t,+eE+Thio.=]9,VHhu^aʆS, Ds9ʔ?sB7h19ՅŅ40 0 0 3e +y_Xh}x;>:yu[1M?wݺgZ<3?H/P}%4.xCc<\Pr${s\ό +D9W6"]LU'$iX_ tfe~j,I^t+VM .b$ֈۤ=|iHO?iB*S]F@.k2XJOkg%aCpt`"JohAʢ;Y:;(!Z_C bj~IDVaaa2Ʌ:yo~`Q@cM] |> n@@F2]:fL;S*FA@WC2J^N!3׈F{n%ZVLk[atrV '1彖}JHX!9L,hF:,.TL;f-&L@hqGC4,;_oư +SO dey3rVčck>RJn̲ osl:pff; n1U: Ӻ3l~:9;dO,aaa)S,7_&?ӧU5g ׽0m˗Le$iw&̣Uþ=ژvx Q|QWa{3^TBuR :!z^вb["A_h +NR +li#qN64Jr鈤;TQvh ߂ײuUg޽Z ؖ`(sB+hX1vOgFfoB&ho~:311ΎvZ,ڙ8AbY}?3?ԪX@3 0 0 0S&S@/.=/X{~~Mw/; UϾ-eulKv{'Z(dn4ٛH1S +*[1"̍pj=kE L4"46C3E6yCv(]X5aʕDmYNw\$QvE<}Msz,ͮjVT@ R? 37muMX%+O5 JҬ|ncGiEbi +28m^USA@PD[Ή_NdGaaa2: Ym<5/GVx;>"-+2ہqF}wb3H]0 ҇fs`)5E9f +6"HYT"P kA"c1# \<\ use.94)}U̕9Z :;k\|,&[D@;eNN{'U]z2%!CrֺDm[zutW_-f&DiEY:{[ۼq(Gm6n>/':m )V~P(pyfaaaLvmvAWֱw|NRZFYx=o~Ax ; d!~.zVN3f9&g[dhcq\0C5 l4d@1fPz+j3,a* (&BT@5]EC 4 g'qhӇ,UIrf$H$mqfNY$/)SDm4 1 a i_i>^nZsȟ/h()hgQ_eQ;.fi[5bjPQ}VU\G8U,aaa))5[i7qU@;R1]fXPd>ڻvr*:;a[k40$!װ=n l2z[3 ``=1ٷ@2>pgӇȉ+49+6 W֊aRq2#}Ccq́Pο[u[%Ux vluwW }z;4: !u;CH9/ZiN98cұiD@ҥ` ~/¨%t  Z (yl|(r4Ծ8:Ιqy[t ytmT8,zeYÔhSUd htv6d_"v%}ߊޞz{SN&CxXέ\>P̷#(kB]0aH>+I3}5Y@3 0 0 0S&O@<|H9 + OCgv +}&VcEV55;_o+W%YxgN݇.Za;A(4+3gwi TwgO+ж9i5[+ #z=G[ _!o(¯hA69SXێyFk h6H!^/;U5h/ +hT̙ ht_ +鸝ݓ31y*{CVepۂ ?#p5D/T}} ա^VڤՁPػ??x3TrPQ)wo"T^UoHtBSUfe<y~8 -1 +nA5+aaa'/=G^@ =Q,4pRX1reeVIF;yS8Я-猶lgOw@x(88/.hm&zR8yy̙I[=hcN7T,/UaKZ8z1ji]U @?;P:ۢ N@l u`&,O./ 9>\4 T6eG0BڸP\={m|2Оmd&;l ^fva4\f'쳢 +AMTJsK?#EK +/l +:Nj4ds?Ia0 0 0 L<l/̋A@Ȉ ѷ -Lge/QLI@_\:oS?9Xʊyǃ9}c7ܚ1PgtLR;Г93P¯Xݙ9@UܔyJ@1bjb +r i31ym(b3FC;kze<#Te^V١hDrg7W&A~g !JEv/oncaLpxڟnψƒwIcB]5dZ~Z@FNZ""u%4ڤdsaaa:etA hڷaS"aue =i3i;[f+:T:[> w|h k8Y$CM0~`CZtY6>c[YQl724xUyUؾ Eߦ,U^'~.[[*:to%qHZRv6jJ*靟ʹ/sqknyM7۶10&T@CGhM~w =[Cfe^TEyJlEbJєP$>7|,#X@3 0 0 0S'O@kǕV/5/a>a]23+kQz^s ShAH䠭Na"A۶t۞a޿V<m l%%VˊPQRLeyDK6CdUMm#^}q{]?/,-[pcJVS5 Q;>82=NBgJƫO6 C4p`PyБ*W|PYq3R tN4y@Gfi긟VMe;yfdsþwpʹE~ݐENogL$P8/"u4T]! haaaf}C:S}S<& 4QzB3 +hA 'Z,WwH:ȾJSܱq iWM4Jp6ơJQ@{6,UlW9'Te뺲ds Ȭxh?n 96%(Nrk,)W=ṁ;OF +ۋ7[T3;rMwhnT%uV@T L؀uQY~vL/a2_ Q/G@8L.a=ݚXS"PVps;㕼C3L BG39*Y|kK%Јہ4g83 q U/o*ls5c6!Llu#3 38{q^B<};? +ʤzʄ9u M8 lvc@a\I5lb!p#3}z:@@"׊׉gazgfaaaL>K|=/X +&͟V  "ѻ 柞_Nhs摖hIMI3ͷ'*J^5|afnvڈ9E~K2cOr&THF濖*G +gcoMji^XzGb GѢ)&(p4̆QT$-$Yt`"q(?+ꉳ5L1p{A,w:}*^!hUOd5=m0(Pn tNG@Kxhpg] oU?BlE9 A 9D <036IUБ|f3* +nq4\X ݘĤ>gԖjf:ͅ!z絿Om4_q$&rfaaa )=疿o_?q*`> `KKXk6OgNL'bJ@3e;ɾL*͂*  @7w{+?iA;$[̫ІH4\ Mr ӗ7*CJFTexX! ,aaa ӗN@%#h=nvrEF~sȋ^UE\ G6V*5tḞZfFdR*(QaS Vح*>ӱ4뇯KVnK*R,HR2z߶+74|-ggJ}m=)'͡(73a tp^%4+lщUr~Ap0h4 eDtS^NtY!'b<:{n40 0 0 3Y£up%@I(vߌu <A!N0G@Y^ +Ұ٠3$XK&LQC,]"{؂%(-S8l_{h_>з29qaZa;@hӧdi(G\og!S1 丬Z$YQLj8c4L:7DWYJ8\ڐaw5}RrPVdnblUЄhz0En$ 4#7 o0Y Ϲ8~z ɶ^C^*faaa C: w8q* qM*.מt(1b5bKD)~J.05DU+S/pV܀jP +o֛3-5D3`t/*jʵ!"*POe'cL"/l(~K9/'ʈЁpȕA&&Pdp؛Tw q%Y1Νt# w|{TNJ}' J3h'W@S덍 ƀ +}=ǏgJJ)JZ?Caaa0 +riOq><{σ}ade36t: ;*yhgBbb8-K&$bs{(ynNܐ>1b"/\`7ڲE YSxxi1x~?rk haaaf he/තdqC?<{(-zB=cЍ}|XvQ~hdFH 㽢6`DUZaSU{jo!hr)nX .vSދ:f3q[X4n*S_`6Iɰ &zRhZ鬈kMWkp89p;Gle3]9gi`4t$%DĿ,75mqDams3]2} +h-{^yN ]Et݆2h#e h>LGϾ=>,gZ_<6P՜//,aaa& +inQl _pQ0U e*l /gnb[G<+1>T94:^":G^]@oUW^u=A4Dpk~k?12Fjl=K5<+TM#u#"hWhJg|wiM|hتOKfn}B-<#As7B҉$ +~\آZh9@ΒI "']'xz%{-z43TC6'%ؕ!zh\)temQ/ypvUn/NX(,aaa gXȠ7\'0Y\@}Gꤒz-iT mE(8=w/E_6>(n"ږ*E Ύ!А!:ES/utև]aJK=-nX@4R)hͧPznOAp wWnU8JG=gCV t  Y +ڶs+g +|Bx܆u +h@k,O1ͥ  +ddbt h \sη+'1 +h; =@}:?COz_US,aaafuVޫ.}?pw1 u eama?kSճ=p1bPK4LOT]Q]tNߗδW]A0%!oijoh n7:+վ[UKG_e 8 wRkaQ M%ɒRBshEξDsiTt#.$![Iyl644F`qcfZq}t65^m'[c6cT"x[O,48K{HT7C^jv&LgAxM_{ޘOj/*x{85QX@3 0 0 0fU=wwD#e9wYЏ}~<`tjmDTEUVu_3(,YZ!(u ՜Hƪ; +&qUb|Bh6%1;IKy^$RizۘWsgs z^H-E-m#QV+C + +hV:cmǝ\~O9DM9`0 lV%@;G;MhCưlj]X K28荫|K}ϛ+IH (nϢP@:3j8dw!xn!\by|qzTkfaaa&̪z1{ճ ]7-xh<`Q{|Oe%>56=Ӷ^tK>8Qiy#.";mH2^b/dn4@0վxWk 9I%19Q=ESF9*K'xDUhQ_SאSQQsDתNh F*xb ˸ݎLhp}1[ v#>MABd+m3Gq50V^!o(uͲS$-,S aNc{NZ4.O!^W˺zOtF>IG6 + haaaf*1H("wGj?3ϯwgt3_ofTдj/ qϴ+|Kc䬸lKUM+g0,?)+09شcWƞi;&1gYѫ:lX)d6 +薵FlrҦO +.mwQFmPXylQ(I)4jа |5J!W3@Е:$<qa䶸^}6LzxBdtw gyT7{>]40Ƙ  8 cʜa0 0 0 LUrcm|Y[/|/"{4'-wQlr7qUAysGg"pyk !:ٜ{"8ZfXu]'_lB>*6v`#} U` +giޱ3r3g낥U]$>[N攓l +L,=T`6Q(U20hG1pR " ɰ3|#(z0=Nˌ#A^dC-{?$5{-BMrěK")vVykv}˽9@ߧQoO|HbIDцϰfaaa&Lݝ7_|BƲӇUK|crZU+¶*876D^~C*΁}z`W2j -[h5ku*G'';;WLM(mAߖ0qۇ0sØ-7)anɴvªLPX, X^geu踣@0PV@Z`@,#hA(&W(fи)'!@@2U]dx0լ<4u듨xH /Z_RL:qN>o_hINs*ˢT+pXz<rtA=MY@3 0 0 0}SI[/|o=WcSp* +?1U=k!'_@B%A} +@Xn$' ՄXLq1UCւI2/CcQ@tRMm^mֳ9ˎi۰sIP|ӓwQAӏV|SҞ,j:eiUl%|}y|H0錳4{yh/18.>\KCɯh{33҅ҽ,g +69ĭK jӢZ8/sfNŬOZ>3aaa0Eo#  Do봀~bq]>[O_N4h'HW#ЙT7DMlR" +W^$N/Evgkje$MQWX ^J7K7HLoKQ@KlFm`25˸ZG1 [ "壝hX[AZ9 +w;{ 2)+"0^2K9i<-Meh`$<e +Ua1G@O9Hy5|98 *Sù}40 0 0 3a蹅Gus(e`0U-/=:-SNSAiPX'kNg]w'/? GgC_mtË5[!MU? IY:%ˣRYDvH9 ++: uA~A*dmS-hZal6!΢[4SqT46?wɤ +cL47?HI}^B96ׅ +̆)?EѓmPdpp< +}x?^kBN?.^{c +︪S}"9],cxYSN h,o;v#X@3 0 0 0^nqRzX}kDJ@?!mʄU]]QΫZge|VaA:9gn;Z|aX\x䁝7@TwSvm}v\/K]wZNM@oT,J$e/ {#dа!l6H2Z])n1]Ǡ!$A8HtO hǽiH@MZhr%mV%S%[$қx^3ӽۈk^ˤG +,+yf4S*l5m__T w: +y&Bφpl4 +<7C'ax440 0 0 3a + +XZfhzg\E I)_r6 C7iroWJiAªۯIhБgc>iK CffȐl vl*,RԭL$*O5C AC9@vL̳g6:DNg`99+*ƒ,)*+1L@6"S9Wd&r\ u3bC0@ź¹@#ii:e&)\{E^iQ:ov >}:yKDéAiB+q,] 0 0 0̄)"5u^a%Y`s yϾl1o>}jInb^{҅%]U]br޷L`a@9 A0uH^&,aaa SP@?|Mh&C</nIO*W4&[z +!jJ;?w-XsQ)+J@ksQ$ %%APm*нJKEͯrü1b%hL*")X_w %h\6Ϩ>j)Gޫ EZ Qv\vLE 愂T1z3c +Ή/N\KدDfL(r^ IGliIY:MJ+= qgUNJs1 P^`S)0Q5}J2e5U`ReCK%ir\'3NQ@@A4ܒ)% "Ag0 0 0 Lz1۽oi{@j*ZXl#tyۯoǚ{i bmN b HL + Om/%D {oYݚ\M2/G]v3LҘa][Ctu"РSx3%+wbHp <2c3#)|N=gyqWKm^D sc{j +h }qLtlᵴvBUMd2t d(*9[PFJ%Ꝭ0pTC9Mfaaa&LAҷoK1ځ^ ;0c$Qx]q[УIt.ؐT%m1E$}xjï&6^aQy5f@!'$ǵO%Id9Tӧ F'B>s2OΔXH+w_tZ>|dzͽu nxB iWP͇,Ib QЁQ3~ӪtXmj)s;*eUQYښeU2!2I UЪCahӞ̙!ØL 0 0 0̄).uŽ}UZ۽@N<&@1yg ҋsT@?O65N +2݆)ILu}z/b Bie.w\6*-lLH֣VaY乡O_yRh I +h'Zzet04uDoMnsD cOClpNmɑo* 4ۄG^W^8 +{Ã,pHgƣ/t Zi!9><@%?5MdC{|8iB%uch(H%QK5-B} mJ7A㻪-fl6"4rjFv1/+ +Q>8p|M28YOedv&ڿ"8 [1#D0R$˞K˛!/#>T|AJ1XޣCА\azeۡi`/_:ֲp݃rӺuO}{S򬀶ps0 S_"TY =׶I4tt4,aaaS\@?]3;f&ZblJB)㚿s8_j18[ vN +8wh&. dT^nQMDnqHNtF(cZVn,Cd*L#mt]dͭyItfmg5PVAg_#xc_m&|VOc=N5ˀzc9ad7):~;:߉kӓ22d +]m^ Gԑ{'eTWa%Ͼ}Z%Jb4ox+&oQ +Y/߰>zZwF@Ӫx&! 0 0 0̄)./>z׮OW3I?>?/g7L#Amia mU:U·zIe $K:w/J@E4=XjfqѴG΋s2o4f., ߖ*SgwEDC7*1"Njz-Rbj&]x{p4^0 {oxc< );/>"8M'h߬JIF2ڤ6=x *kY_ +u7)3j$wb0Z^%g3򨨉40 0 0 3a hWN7*ȅ7?-;w&Q9%  +i>yN1--Bv% +h(P +Y`ĨvI-4v~?u̫4<,SL@C&>'{ӧ#VsYxlJV&IpHؘ=:TիHAtH[+6c/*᪩i-=F&y8Ntg⩝$ qNpZ-eA+C!ћvOolh* +D>o֗GLgS^u]AߗE0-XVQ +hD}-7A"6orVwt=!\R&C9^%dR& 0 0 0K@{ͳ{3߂V0B][7 Njx9TT 24YUT:i}`-dN)2}تZ8HڶJޔSd=*,Oy"Ӵ{N  Yvg5`*vǠξЇk9`Pk5B߲b,1 x'M E +8YT@CPO k \|&{-Me h8;N}t@s'SŦmTE$JmᗒpIYTCfgMqWqƶz[=nm3OX@3 0 0 0/?|Kgc?7pc +=߼~ =V@ R9A8jz%i1&24.P! +hb*+%i ɳ%"&z^VN{%x>tq}ڶBvΫnȡ:p /1 %CΔ.iZY&?,˒s)l !)y aT@S rv7MQe +hDנiT Q: "EAvz$:i*_Vcj}z ЖPM.?[|דK2XQc4,aaa ӗ~p#-8yjpC%l k?*G!sТf*z +h(dXX-B^$eDe^Cdà{0-UgSfBivü;ܢZ6I/kIq=V9pB.iYz<(^Y@Z5.s ӹ&Ђ|0Zs7ݲ_'r\֎{5醢ʀ3$Е; )T@ C,^X4]yS +9-LT-7lh](OcKI;"aStv ;:!{$^(yn)^B ,1uֹ`0 0 0 L{)t|r"+"ڴnuFdPEP>wy"#]]Q9E2UM4-iڤ!R#0*%XF+I E4U6:$:%käpndBcT,NBLzXS+ŒYVJ;89WiШJʤOW#Zi2e"၀!N4GSk-M{u@&*Fmm3T[&tl#7;Ggob*ЫzzYTz5GY@3 0 0 0/Ԙ?Ԏ Sݩ=c=6 m'-.@|82CATFn,>*T]'1BaS)fyPܩh>'^t ۅ@F3-]֥?MӈXG"8-FE6Uf L@끽v%wfE&YJhw_7po\9NY'z¶MGeIi- A1%KƀN4>Zػr#ay#HJb뵃D=FCGuғPZ Gg* V@ڝiq8h 0 0 0̄K@k*-,=k?C4~(՚׫.}Nd0s G*д9dUqw}t,8t(iF5¡̑M> 6lJ+Pi !ݴ 5z4"_J"kШ3 FnRիft87=paaa0 +oԱ=8Y~-)=]̺hZb`u*acc5bJڃɪ +C"F\5OFhl-s̸ܰ eX\GIcF(a[xM(`Ch5`콗hn$ +GBxfFJRJSJ}L80\Xu'q󐿒 9dqWt&B4zoJ陙P,5PŌL +AE4,_Qhtߐ;0_rL/݄P+yH._(W iAVFBaaa0C +hZ9pF,&9P +W5xyBv"Mrp0@9¤S6Qt 7Jڬ[9n` (sn$+UҊHC*Z3sodk)ZП mI8$ 'ۙntz8YȪiXpde:|5o MXS阗ru8;x3˲i{j@qxLHK]^ +e>2EpțZ 4Fs8&rfE +_IDyb +hAi4tќOfhWn,%ݐfaaa&L?xlgEmiR^'ias3=9\>{e ӽ &ܫ We4 +GdkpbߨQ!HdΎevԖ:}cӜPDmJ*Czz̀ &: B&8썺 ^^3c +-Ewz$4&TޖI&w.Y S@ؘVqNa'Ù?k3i~ч>oe_97c6J1*:SHOB0H7lޙDнbA,aaa ӯ~bq]>@GՎ"@ bzᆵe2%RT#:9{-q + O)=mr`uU3v%lbd^#췈lQ-h6ks0n / |S:nQƏJgZ 򰻜;ͽ$&Jj%:LU@S#*L-_/ivܫ93tz;Rxv?HhK" m4-ylND2DBwD\z;^Jr袀e]̿5ʯP3Yԛ#Qqfaaa&Lz1 'C Ǭ?}@)#Fڦuw9\>MvAՈdB5S1(ɳ.9 +U$s%bKń蒊h6f_VtZEfȁ:CheN3=`rD 'ڙM?hqA"oڮ +hlp+ Yt ̘LC}̓+D +a*I +Za>,SU{\ZP쑿*t~jD@_2'" AmWm_;Ԭ9+-p +}P`4V׬Ffqm G.۰ AC}ci64|M,W닕Y1:h1Z zIY:&kpH_\-nSѮs}$[)I+sGW芈>'M2K( +VI0ٷ롋*|ƋL]5?)({0HY@3 0 0 0_-R}Xt\j2$b +h{'v߿|* +{bNAʖqUq=r'k*ڪhfwj҆HP')X 띳T."Ahذ"wS0N/nKq,\Ac\8}F֌QD2pLE'-!֥^ѰD<\>2ZꍹDؔL6Jy޸7 eqZ3λtj(Ņ<ٜ^ 9YC3cXhbfB%)5Wb1 +S:LJ9\vޥ4 +fUMgpPJ~8*n +i_J= / , +h}0\?eZ}C.!y >2 . @gBZ݋Hl2<,_PyUǽE4ߣ~2Ak haaaf >~b̵NNtk;ު3+h$ ЗxsιjE2I~ mț!sڲGEZ0a Ht*M.,F iHiPDV3c`?Ծ斌%u BP@c {VCcֳ/b_)w~hi4.h M\/gX +:ģMYAYA3;<_eVnŋ{Jqě^n%IYb`oe87^OIY| MH'-ުZ~+ݚxsJ&1%kVhb{Jkg*lGi}I/fhP̎v& Q@@;3{PPL{a9,H947V9dZR7ye+A~}%cDN̑4>MR^Yv +̇ŏGZ79 {cYG7r[+faaahQ!3l4fqMG5Si"wN'xXVnL&ہ8I4(?J8ED/ԶxyAS^5-) dy%~]Ѵ +Fz1T ++6\R[ ز+u`bec3@ϦX,U/V\I%LO)-K-" ѵ9QVE6US%T@6K,iGT@"ci%[8\jg2:wth'Cy7m{U_Grތތ 0 0 0̄Y-Mϱ%"NJ)甐>U맠Wa`V3Г go՗cVWoԌ fJ[Us"G@;ИЙљQȘkmŦ?–}rӄh&f`3SpU"K@Q@Ig?gI*iFGa`%㣝t+} ht*=-Jڴ %N6t:*ncZ@_18-K?fV_nB}DO[N;kL:J_$п&oo=ƛF".&w#o<&geP#Z.Z"]40 0 0|СvRt]:D@sn|*m2 Z> ^uù(ES^UFZv(^&aW˂"# LžI.=^{^ImR *~~t\ a>sO=FȃUHH6~zzJ UVhjX>6[A93 MԹc Z[۴˪4610Pmj cz Nf0 0 0F~;1+wu]#7׾v$( ,ǃw}_]zk&={| eU6g +h ip!TR!SYEOSq~PϙVȳFj\ǪA miۍ"rΚ u" . `Y4XFPM0tp+R$ VIă7 +k.܀ }N`}}ZHӲtěιTd *$A* }*BN[ZBnӓ5iw{dxE9`򘜉mj6{` ο),aa٨'>1/} 7|ywejj*}?я~+#|ы^7, 裋{o_y٤b87IZ(=aٗ6;lhSNhXMgy۩Rv ox-5!A6E^ icӊyJ E̫£ӢA֍Bb8֘3^ Ԙ 4m-a*69V/j@ތ^6th>3M^^usΐlT)ӑ>m{YS_q[w hS欄/͑:RD?\Kx<01,1Y"GݲpGX@3 0 0 QЇ>t뭷iwo]x<֑#Gn/˙- v1' fy!jR B+)aM^/taZ 9Y-X/9cM4$0vO}83S6d($pCK7D"!@smxXZ\&)VNKu^n3Ԧ6mD~!mx;QXaL2_Jd +fs*v~?~u3IxOiÞ_ԓ4,~WuTus0 LT<38?D?W-4Z8c%ǼҾݷX{,aa٨\>|7 `,//_wuǎK7xT|'OL;;G +v3^u|59t7\N`4^  @ ~nt tǤBYT@Fu8TTUk0 iRNR~;2k }_Sna,bQ3)C6X^WDO@HՔNFv9D. k͹\@e"m9jKԫB D ;˴mvUd-VǯzrJ*Ad=닀DL\YhH(Hq=ϰGzr:qۥ%+K-"e# +.vX@3 0 0 !/xA:G?ѦMl7|g>7'aozӛ;~\ #mןY[вQs;~{cPo}?PrsL eʎө[-"% I/&-,ݴԢwT.P}Y@g 0➯Pz+vE⤇趭lt e9L=ΰ/:A6{@%`3hfRiOtegloaqj*o.ZQI4V@'E_69+#}e{-I(h{n,"h*}8HJRIG2tJiNoJHI([I7B=^eAV *Creb^ +:'@+-Z8$*nYDBX򰘞e|_ g4d +չy@So?we haaa6(G_ř~ 㗿׽u7tSkk6\sMzmy{~QnЧ' "hZ[髱qTr=9XM_8Z J +h'д hoasJ3QXT0F!u4v*kU|~Ъm߮-FM] m_Ihu2#L އK2X!@O۪bs~tao#6j+/  +ݮqӺ` DG(t恔Ju[pC5c X|MqA'%>76ns*h3Jdz)=L 3>% hT}HтU0P~UF-[[ {Qyb5,uEF~`0 0 0K.I/e_뗿eg泞lz_/zы[Fac_Y+3Ƈem[W[K5Iy=SHQ hZN+>J]x +b~V(JK4!S/; 6@e& tSvR@7c3*ie +VCt}A޺"4Q+mBcЯ g . elc AF@"%հ kSl3 +nwn&}P@7}1BCP$g֠77%2= D#jIEM/8ZoP$;{JU}2X*]7n-L_ %|/=fviKl̽˳Ǫÿj9qx[ .aaaǁ:gw ꪫ]}x_>|ounw?{@%`*L[K^NR%Mp΅@C_8pI l4hbϊVȳi+N }>0fMtM:6#u֦\0n&*SۍIP +յK2WC;{j#d &&!@û-#nUE/\ʜ1[ vV%BpP]&2Ӓg!h,bZlDh8fHEUѝ?t h)Au~\ʒd4SqfMm[JI +5TPEv.)un-.8RfoV&q‘ haaa6wygɮe}5I2OO_ )sOfz>qiBbd[BhVΓxnF=M;0eORM~А!E6ǭ(P3 S50:q^XWknh gf5$cZߴӄPgr>sł C2-@} 2zfqHR a1x4gEC5$cv/o&>m@ +EgZޠtq+Nt=(y֯8_=_t?}ݾbg4n(&СдդH0SKHxB,aaaǍ7~֙]z [oЇ>}?qT(LWϐzܽ ҖjR2-DG[Z9u%(Fg>.4r֏ߏRű5P + 㛱R:1^ԫh>ֵB9噀MfC8eet[n\N h'>ΨAqV ㆲn)k2 !&CZ@g>$QκdgeR~  Ƀde$eja٩.'9#>`XHP's93t-cs'67Z0~Ii4F/wȈY" ں:^׈ *N_k@h 0 0 l0otfӧO~wF^CZ+_W\MGQtٟ~w[3~n!׼^@7-Cfb@M4Uf+!$cY^gr:@( OWU~^{msPIش5{ =PӢ ^'Qyh/Ѱi}f߻V:SM4 }˯Jf.$]FMa3}9/Ǵ ѡ9Q,Z.qoye8^"{x8ѣbIhP̴Tuu9wа@ }\L/ʊӪS AX q +hLɰ6M@@tXͯq4P040 0 0馛~ȑ#/~1 ~~KOzJjkz2?կ~ՙy}J2>4ȏf~ 1B1UQ-[Mzgpd KZ/LhHĴl]5ˍo +YVtUĜ:j%2TRVղ G-kA[;M⩬ҧU޶DvKŦ+qV$#$%ԭN;Z*3`n1*zu9MC9.q^\3$(}"b+=wB[p +Č^=.82'& }Gx]uS2\&bd3I M.nN%_Gɿ/ +he5?1,aa`};7|ݻ?TϔZ|o}koOpWu}cO̜83 G9[#D@7%(zCt 7 n;s:9=_7hԘ|QVkի |1%h,KRF+^bĘʫ R!A#Ix" ( +r[׽Ng/t>} ]]+j8ctH CIޣGVZ 3evSAo0\D$iZ'AUlDx~LiAe*8;-Y"\27r*&!)mюWfZ;?=[pNFV=-c;^"@33T%ϨzCκ:Yz#kӫD:qƪP }4d^Qg*UEKbk_|JMD"H$D"2~ѸQU'xw˂?0w;oTs#zݽwY2ŕI2< 08~ʳW H8b< ek u3P(㋆%gmQ:9jQc3:@cD^n7eCP]yQA +z!)'gp>F'ANxa&T5e4;1 Da\x:~~Ff17\\-6@}C{>yf&IZy嵱틡 A2 i68!b"Ӳ;`hg=2Ww`kL`>f5 hPh$D"H$i4)}uC}qOOl׿J|Μ97|Ӳ0 ~Gua`^k/4Et.V+79zEaeCYQ@E{ZX1h:PSR2\U"# + CYnNN Xhڇ T܏ھ{޵h!Iff2 VMja߯Z"U#vmG(:e͡oSĎ#vu%&M"H$D"F^|ŋ/~O0Gw߸{k ],Y+Z*Tc&zu S5B β'WT sg Mw A5+ʤ"$Έ9&q4W\f0+L7{!4y]pG5?#獏lUi"F*8,W-Gf /WPЀ}Srn8 ɰbOe|_\B0KKZc# +^l}jҸZ{*W؁ },:)ȔD@z.j7m{nf=>6bX;kO6I$D"H$hR5nܸSO=N:ƏoY6lx~}s%U+yȞ{tȯSI5M9/ :U4,@3(3[p3Z ~401\d`tQ[e>C׳1Z;þ04ttP-RYReBؽ0}Lq'nkPExb㺙Gx!UqBt1Ղ3Az.$u1}?;iZc/!M"H$D"FfϞOD}z^z~ >v]wŷ~֭`/ 7tzձcOgy?q}ɒ%'NTMt_+a +k% +`y8κٽh\q+‰C~np¬KY(yA1,218ȅS~_TcU?g[aUZzZ (hYgА1:ֿ_45<-R5BN#dz'?.N(rFb(w'JKREPwܹ6x'&M<ʂ Ɩ+V$9t?/|S5r!a 4SEH#qֱccŭ;:6>B3 +0OVf@ISFL {B?2T +_ܷڪgG-<U⁲; cC]-ia{ֳqwS[@ɡO@h|Fcs|ȳ͈"4`;RVN.|'D=y3ң$5ᮑ}v3/*4)0ײ vD)Ůψ.}.'/|Dm3^xv4D"H$D5r]wɡYf͜9͛~thܹ>jF=F#B4I,ϭJrZ^}Mrcys[4D"H$D5Z~9S,f̋/l0t~D{ɓ']s +@'C8< ?ktr˳%om\b4 +T3o)D1B9oaQju[HK2DbMa`Ø2L3:@s&h$)3epkYy #U:}hT 2 "/#7H`͛Yk.^4 u 0k" |Owj1;*5bxČ\P)M[FhD"H$4-[֯_[om۶-?rgyfh3n`{h믿>a#<2eʔoL +@WT*2n!`Yjرh ~-lu=4RVޚT 83 ++PC0,U4/@X|")!xFcA7`.);䚻9fv6b=P1L mk -k%%\ #B<#Y[AO4JЮ228JjzM+{[GĎ=SĎbcWaB΍3{ng$D"H$铮 ^}W^yŲFr-X"K.5kVW_mm3dj +@WT_-φ6}o>y^ΒQ[5aïbl&o=WR;B]X+Џ +!ZV{A $ +yYV:PXh׳`` ֡<$0,vid@:MZ&iQZy4F.~hH7]{LO)ClhOw-v"i(>%L}M'RxMUUU!LS.;yfxeN @H$D"HO\򗿼cǎGϟ:uѸ`뮻hm{͚5'˃ZSSS7jY1S=tgggN)jl6pbVc碅Q 1eI|_!wWb"3+xط<= ou(y1 Jh֎UCy4nS ׈љ~Ƙ{9-^WTtFc4~܏hNpë,&7*#h~Qj[ shQ#=4l<;_PY@^lZp$I$D"H$T k /49s7^vm#YxW^l_fm7tٷjTC 1_kTVgC;^yUuUX/[qHnߓP? +@AlƖzE_O Wڨofàc\l/S]vYpUVe2*GRW{uê;x|op혪+rn ǁ!tޓ۹9t'P R +@{ *cadF|9(,@7FOA#mBIXlj ZFE0PGBVȂ7*"*H4ZUmƲڌB[} 4X!"+3)6$ +R3::_SY(͇htU[)Džj~ɳ?^l Lqo|oۼ?a)-1T ,I$D"H$i'tRNm4.[K. n3r!U믟?---+VFV pB0SB*I&TBsL$|깹oAlqH 7xaxkE+0Z HJPȠЙ@)0x:4"^Nɘ-,XУGAdyhsVaP %a3ݱpE@POO/[ I.gwoڐ qyeX4ni3 >"V9&]6#/SDHzX#}!pr\0+CD"H$D"<ybhWh\z7`B)vEꪫ-Zd4q/FV tkk_ӗ䵕7 oP쬓ِ +3gL.?rAS}n3.>M/ƅP6EP15J0VѨLdN$Ũx!&) 7FEE&JKT9\]'! f^&('*ՎLl/`X "c|-u:E<eέw6ccCUm }Y_hv=A|\٠HɵgX-IQphD"H$D*|__x/[hG}tSOr3g|駍P#ޤv,vX'MpRw˳\ݠ&KSnea(ǣ\jxx +`F;8%<43-Da~\#/F 2$Wrc2*taͮU1Ͱz4s7^zg{Bhכgbk:@WҧB! ]^@ z^ {r~=J> ߴ$D"H$TR_o~]tK/d4k/FVmtw $hm񛍔вu^[Toīg{bg5w@!*`Pp*ԕ :ü>f- +@L{AM? +%{y5=)կ4k^{m_3˞ƊZVɱTHq*?dA<nZQ27LGw_.^)E=g3$5G3 CKQИ׏Jl*AGK03T7VRavԞc*ClG=P(Ť7E7Kmů=o Ԥ'ݧw[@nP 3@:ͩW`}^bՐwa)5DjNg܀ 0)vl=@}+XO=k{)4f }yO5'K(e¯5hwq+/KWo{ųw nDY51j.޳&H$D"HT|c„ 6W:;;/ۣLϿqƽ cٲe\rI_nk㿄;sϝ5kVwut3&hgP]0,jy6-\Wdz++Hs65 xV$e4Ы4S L·Z +@CԲ\ D #k*!)pЏЬGvMz88a9l[z@c4\=a3+8Fۇsf8}}uKy19̫ F +uOC2ƞsnaFhV5425:=-n G%{G) [|Ͼo57i~Zԫ}78&Ƞs6o4d!ǜl8&Ŏ6b:x eT9s0sF\[yn+;I$D"H$hђ%KnݺuӦMr =qWeQo>}z}Ŋ\pA}pq=~Fc{{!YV[l9S`y̙# k_]bn(|o_|\=,φ^x?WA^53\\eԪp +ܑX@Ll.j*p:TѮ}b4s!C}#P +xUVdR=bgE?!;%=S@Q)2_ hI\#WILИѯRr|˰s +FfmU14~~jZ Ϊ-|VKv3u3BI@2B{`g;co/Up +}z R8}hG?C Z +R7O[ }ۄ4D"H$D5ZxW^l~o}o{7ؾhѢ:*1 k/yYg y?/_n4s9rː,+#z7tSL"@o|gʻu[#Gߴ_BKgggN)j9l6+Ӑj?q"L5LQI84I`4蔊@xܐfܣZ :̔2 wV ~p'BqI%jICJa9+_*nu̅F= #9BRψZo'cBրU}h݅?T84`Vb> Vh[(l`@W1!l1?zy93 gj2J|}|W @H$D"Hѡ?Q1鬳Zn}[oNhjk˖--2Ǐ?q5]]ֆ BGd!ﯛϊF=$YI$D"H$PX~flao{?tA{u BA҂wrС1`FPyˣΡ OTp@%vMU9:iMD"H$D"^ak /rwBϟ:uj^]]]|9{7SN9{Boj˖-s1NY!ZLg*nFld  Rfǜ-0Lm떭Rнi"Jc1=s,Hb6,ҸJ ŞY"TzZt!^c`;#`ej4jWI@oME$FiR]PO/1x+d?Sss:AQr{T!W#FӲ¨hmNWb):0B{?ke҉U&h*gbfTi=![znp=uNbjQ?dez@H$D"HQ|p޼y."V{!E?f>IKD~{.WHQI4[k\Ų㽏y 7{]𡭪z;Q]R5og_=̑TsyV0 HD>t;fUԬr:^?uz˜%M"H$D"FO8`?~W]uUӧO +~t}|+ 7ܐ|v:waO0aҥO[l袋zcz 4 +ecK.I>,F=w[8C1 Aጆ"~r&d#}_6pzA9nC鹲|99n=&Rʢ/'o?O(lGFxb#Y8L.p30iA*y$iup[6Xcju/ڟKVйߧ  f)9wO2"95I5ָEB) "[Q')3I$D"H$h-r~Ti۷_pN/?曧O* +=s:1zh f`| Z |6ԃ)0a ăkoȖgC=.]9F`YE !h6X60uƉ1!ic3QU)(.:>)R**ޯƹ%{XjAJW+ 0G]:Ȳ(gG)hoKbF@JOh(hօlt󔼯 DmN N"DQ/0]֦_rOM}Cy|a(ö?O)œn(I$D"H$hRWW駟{OrA3g,YN7Џ0Yf-_<Gx$cr{nmU' [$ lX Ǐ<ޑ/+@$lpp3BLiVt43VO4ht)|m}bI ~U#;pm *혈8W\5^kdC!T~ +FwWޏ߀{?@wIE`)Eq{fbtZhfH 쵍72lڟ4# aH܀e^"@W\WBAm\ *Q8YhA1:ZI8Q|tB?æ`B$D"H$i'ˣ>=3̙I=wG}4;oQ~իW_q^#۶.\8iҤè +]'L7_tQlcO_ e?6 Ic kf_hh͆3A2f5H)G-GvTeݤ>ژ@c7@] ]y] Ʃ +u4kLNJ)N՘ +cFfQyh; :Lco`kVTuap9 +@m66DfS2%dcdCQZM\_QPu=|vo-x\x=A|<䮆A:;Q: +endstream endobj 517 0 obj <>/Filter /FlateDecode /Height 469 /Subtype /Image /Width 1920 /Length 38666 >> +stream +x \u/:U՝J,`\FEA1 +>.̠Ax]+[D1, *`X8,! T/#K\C]H:өTjU<@t+ϡI'7А rl6 t4 t54|J<'Gs(|gm<]D 'g  <4@GMYy <=@ !*@@̹l6;e9S]54\Qy6!N <}E 0s*@D.=7A@ 0 -VCNn `@ʳi*ϡIT@4 0Khm<`B <H )+ϡ!g@K`N  h<t lvL&]64Tb$zS6)kvC&Zϝ@_@=E`@=bƍ###cА3@b9>@*eYgyK tgn!F+g ho=s=\.LRg=Y{^{?c{}_~m -ZƝ@WSy h='|xmg}… g/K/̳ /6<4nSN9eddd/򗿼N;x|>}o6>7ͳYԔА3@w@[o=gV7tkf '-;g?7-KAWPyah+=o'>?]lK^  + 6?۟|foʁnSԗf.Ye-=~jppt]'NYyΔurW>~x/zы:/ +k~3s̙g9zw\×{UVw_f͚o\d7MgҫT>^zE];SNlvʕ֭k7?-dxx?^Ҋ+>Mާ>S/G?6[LYy^xq& ;+2rHvʕ'tR+{ 3C=/oq3g?__by +0 F###Q *}E tk_\s05r\6l@@n;c_>CfڵkWZU]O?}ۈ~oj.p '|ׄ9UCᓆ7<@;x{S} 5k֜q_'fz衇7_?׼fۈ{W\qEkv*N tl6g>73Xsιꪫj.w}릛n:Sk.R{wnslqB[<0h~ccc5\p3Xy=\g}֮];ɻ^tⷿ_3wC[x3@y… 򓟄ZٹG}Yg5?q7 NKPw}|;oŊYf`shhhHI.suםyW\yI'MkSO=n~WtA/~Mj.a~Gy'>Y Sy]@_O\8uq/'yc>g}˿[??[n׽/0%gN tϮ;_~/zы\[nYreÔsXlRe]vaMѓG>o|3aT#h+tIg2|y{d7n޼K.z14Qn;c_>C>쫯ol+CClvsg4::zqq _u]WXq.[lᕍ7u]wy7O6|/)?o>.2/ۿ!N򗿜PM@*򓟼+ڲZg6} rk׮]jU_:0-lv LfqY'w@@mݺuxs} _]w]1~˖-ֻ.K/bd4q=,ZhӇ6n822>6!А3sA t 6|_~w~᭿sϭ188x}`5x׿o޳_b9>+h[  _\.7˥k38xE+7}W_}u6+⠃l6 | үO>ys*cccSyG?㔣:kة<0 swp 7onj&Y|_:hv. +x7u5[%/y?vaO׀fiAb!}wkdd}{?|w՗%_W L&sN5 x_^UCͦШ<;4Mz7OkO~KGy'>fo /\l!wW\YL쥢i*N ts9窫;i֬nL«ϮJ~_M})_pٯOWSy}m>J⊙Mꪫ9yM75|ڵkWZUjx㍧vZ_Wלt)g/w\p?ެ}7|_,X`ۈi3e9444 %ƫ^?5~Nj-o___|^X[o=_t錷i8cdg2E Ã>|G}Yg5~53̽[}ww'ݺO?믯otl6;e9S]t/| |+gu]wg_^\w}oK^r''t{.Y< @O@/^zu```7W7˔o'6#/~Q,WfޚxL&>vrWh;4MѮȅBa}5;+VG[b[bgy1regGoᆚ;wٖ8pꩧxꩧ^җ_U+lv tzhhH Cwv뮻ڲ~k8x:sj.> [O~fɭ__r} gg}W_]sqppkO#8wog>3e]5wuG3^D%K|k_ Ʋf7<Ы@w+?_nr?zh. oxCBpkg>7yxw\|[rx)^29dɒ%Gq*tXyO:14n???|n8jk9N~Psq^x0::8\e=va5Ug/f'<@?@aƍ/yKz街_~,?So馚tK& rW}53̺u,X0=Y3ΨJι}GUg&Z&'SO=u衇n޼.~q+%mlFg?QGUxǹ6lp?5s~3{ͪ't|Π_Jx៻|h <@7袋.mOonqoyժU {7ϑ{o{×Zɠïro7x# vGghg4e֭[wG7{C={IVxG?~[ju]?uY^{m×}mHw}~RԚ5k^9zqK,׾>Ʋ4Vy@ݧix_ +_}{߻|~ӟ>[[G} .<#=ЗN?[nhX|vi{ZY~U W_oU9 +U`@Wj6 ^* +`j3۵Z:'>qG{;e=Yzu*:m~>d¶T׮]ӟ4zl@<@ .vw|}gҥK?~Y<tnQGugfsYNejժkFϏ8{lv ᲙL&|@wK򕯴8dvm4yYzW)lu]Z*ʕ+g+Vy&z 믿&{}Gh{WkNҨXtQGw- xg +:?SyWt:=44 $zʃ>x]w?T*500po]vYlف:|8e-tqvjx3̅s 4Ԭ +}I'5ˠg@}|>hѢZH+g-hfU+Wq57,wÆ ZHtBW\,4s*η>ӫ mJ +CWϠ,Y}r2atVT*{W;H[/NG~իWW"HɄSГw6lӻ,}.2_X|$_X-1:=2-TkItuozۢ+V(6[^s1<*<=eK*k/Ь\C @4;0z)1 +<(n&~OApE.|×`ԷeWB~ւiv2a~^m +As c0}{f?m!4ְ +y^wꩧ_@)H2x@@/i{幆4B\pAVV7۷X|;Sөz?a*5fݺuVBW-m@\n+n?=`ʳϬ\C @֯_jժuE?o`hb&sc'6~1. $hׂ@j܇6@3t +R/s |2TF1(7 ̘  W QN]߹0: \0oͩAxl}oJx` 9`pLN@砘m GT!4],ű=b.=lV(>'N~AMYyE <7# f~62|`"Pql`률\0(tb'ҏB).+6eK`o$Sݡt-v@3t?.d&2rx"=Vj&׋(q. P1פU FOXp3[E N^yΔurWK @}+?~/Pb2F5G׷oȂE7 1ЫUC*# f>1cT-41@M ƻvw=0{є瑑f7hd2c'wE P'FC]M[>:BR\.t: zhF @&Bw*ϓ0U08̇ B0m ̇ca>Sy hb&+dthT{ <1)+ϡtA." f2O@GyB幇 ̟Бvw=l6;e9S]Fhb&5]l9 ! f1N 8:ldd$t: z䮘;hb&cWsWŽm8:Co dNL @`lӹOA/s\R *ytխA쎊xRy<]hWP +KS8Jyi36MU*̘ ,SA*_SL.%8-/E֩[rMm\҅t4WGJS.AwA+3X/ "EݐNAϝ]D @`xòbD1HpJu!:*MWBP.1 +sj5&r 4r{.kn:t<QLI @`gEs6*Iqdk^\V +DDU0:KVjQM@9,D+9]L۠Lr#Wn`4| `w.DʝA*#'&rT +Υ:R$=쉺t%քhGyƚ!s3sD @=olß)= ѸH92.:b&8Gt0Kt)w.fXN+uuZu-j\rOܲ5yG9tg {̍^m#r3X=C#*,ѓrEz"qRgR g8XU]>We5}xpѩmUC*̆ {^£3xc0P +KG ++(҅sx='hXBPQ!g&a~Sy&Fhb&m +'Ѩq*41@b'_.f"H.]ӺwARy'u BHq.جNTy'SJ'&-v(ЙgI V*941@ѧ?|lrܦ&$R/Jgϥeّf7DS3L'w& f4aYqDX +o%YrXZt`:C3T@3tOKynO%ۼJqu@0h.|կN1բ<5x;rhst4蹓x G2%RRK%l{Z.YyJ5P|9l#ORXh\7.$%v4NkA {Onѧ>X +s5Yp.9Qm$c(Prx[!h@oPWKry$HX{=kG:oZ.QN]/|F:1k0>4TSNr!(n;po|fS קEP *P! f3)MזB|i+趆t>ȋaQlHP7>ЅNץi˯0]hb&=8x<ע&w1%QW:%eV֕#s$(׮- +,Bq`nY*CTaL{6_Zv \.W:Qd\]l@WKm uv'֫Zbjޡ $ fos,J9Q @R|.VQy%k^Ҽt޾eFiw_w׀^.جRy) 䆯}jxEM]#s[mQhONl;j##fs-w0DݟTLcFPnx(SΗCᨏ\@ + 8* ׈"ęL9?9ue@HpUtgvk'^&=wrWLcjDbk+ol(DAy0蚲s݊hsEP|mj-n sJ @=f5~PjQ=\_jz5u fr\4 t:]A@3tٴ~iWLJt.)բie^U'9`0<;`B @н$?'ESd)hNcu`4ܣ>.885]x' f^vv+'η:eAjEk g {6'KIDamݒG۾& @3t/ZQs*5whtfPt3541@?\?.FuTa@3t/ٴ~i[hOܡ#lv 2L]hb&џS}a|AnHѠN +! f1ԅO6]S}Ѯ?{lʳa@3t}CkE-'AjwAI+g6`@3tcq2\ZppܻkQ9>ix3ghb&/{ ` Ӌ{}LdžЃMOܡNV<Ua@3to _;dgv&] g=hb& M׎f{0R/'qE  ]5c>ՐKGRw KyqR\5Wjs.<&q եguQxl=PA)ONLz<6⦻%ɡM=NhF @. *MH&֟#KyqQrXyDW  <{А G-JU]^ pt[Ԓnؒ/ѓJ9Yht2@WH=xP{[Ǐ3eQ9>ixC^ʝ6ys41@wᇞ}[Jݸ/7ܒ. -à+It%lF+ytmCW>:.=''<`+S _/Kי 63S9upJ}%ݲ9Ќ Z~󝣿o+| 3|GN:X=1#RQ]t$ FP{Y֟#K_h W5cHܻ蜁O{޴'o=vQ@3tw90s⦻ڲTy_In-KS@3tGrO{̼,ńzf"h_UL$/K?+m[hN @]*}ܻb"$2]\|`?W9br+'o.;w:D24wb@ 41@wkwiϼ \. znvC:=N{+`땠T!E-OշדTR@A1L{~<[;-o Koh<{Qܻ{QpLCsQ-V{|c3kΥ,& *= sX _:ޜ,l_~_ ؟>{zMܻ舨`[NP;|mV*0m^,(DsTp.Rjsr<ѥp9(VR8Q +˩tPÂ%}o{A@3tyUqb.meppTe \ٮO*ϡI\#wT>ȧJ?RМ,&ǷVb"|O=)3:*T҉rZ]/ܗ$ f.CQs)`bCT' p~m  6b49T,sZtu9zi9U/2 XHgBN~V1Q*LŠTN=/9e9.طj'#hWuVʫ6 Q~c* (+%Ab  kQ\8>.ܶ꥚VD]L$sfzquúfHr<Pv"G9O>:ȥbt`R;Y(] o|v9?JlN!5ay[rR}ftG'$SV#Js>8״9ձ{w'Eyު<@ŒhQA<8Dm5YjuĨA]I̠D7Fq DԨ(݈:rmz[u]}v7) U4S>,] S'7Keajű#(535$vɸwQ-@]7:5tNDr=x7sJ 4 t h,M~Qk; ] 마YdUbie)31tWqP,u1%|4iRЛhŊ}ٻᄏqd2iZ"ks/_c/ٶm[| '?lt `߸PE^5pܻZɲj%Vl?ȩYPVlfji uGhRA !L6‹׿>/~[o~wĉ{ZamYA=iM=[Hd*;11K) -sf2ɾҲ} }/nDm +h5@Ϝ9{1͐Z[[g̘1|ukiNr迡PD۽yM=ѯRX-^<s9'Ak3|eZ&ОGY%:b1,'Nd:-x<4"Q[bQR@MN+:z, LU}W9G%N nT;?3:oͭ!_~O=5ԯ_#:״\#_s |wqG45079`O"^L2Qh,rg="'ph{E{ڰP%aq`fxpbbd&Nm%LY,.ډ?vea=.'ԩZ<6UhC]A.9C gio^Νc^z/?x`9sf{{o^(`ڂ&ZZMg h8)j +[n9G|t˕rjq{~J!1UK̊(vX #D@g:9Ng۶${4e!L'V!(p.䒿nsqk' 瞋-*lW}QGσ>9k蚐hAu6Ж*c w[Ut53 cƍֆ}feE}W 2Or{qiZ'T"eЦ N +ӊM+C4P:)'BE\N;> T Idiq!m۶;nڵΝ;dȐf?~/뮻 +ߢX5l04}ziVUt2 wrq߮,rόS)d+=5a:侸7P@@Co{w8㌛o9Fl$] رc;::|m *N?R5ijK\T LszHUhT?P:;;=؞ox}5iC ~rJt'?y|G}̙3!g@2+Ngw[eyK^rw +E@h;h1Yh:L +!(h?Ϟ~ɓǏlQg͚5vB'SO*ٺ:^%2]w4NufVLhZmx3TR+Cd5s Sv}{N\-\AܸYڷlB9OA :=smEyW.&~bn]}cܻ!(h[Ǐ嗃Ŕ?nGy7Դrʂ/^[N?bf{1 b .^iK}M{:c + +IVz/}뭓T-"vR1wBmk +cx7Ӱ@@ڸqw`ׯ_W_}UU +C]r<3T8NTIиQ3FbSz1t7%Sl᥼P~;aS:L D5W\$FHRhC8q_^=[ZZVXQJt?y_@.Ul Pӳrh39(DI:g_Wtn@@:c>Sߠi/.Rwq{`!\he]7nNRgɏ\ꖓߪRi,UЖ~KM7oܵ~J3(*'C%;MB|22 +C fgyfp|رf*~ٳgO:7i{3<ӟ48oիmܸuRE sϯ-)|vwjt\LG̊@Jy8%[oTyQv@oKW3sPoB =Μ9SL O>o޼*8{i3pɳwc暗 +ĻZA}&;X(H^RfKM )aȚ_ +M|8B[s؃S. j/Rl? +0ܒˮf~ЕeYFڲeo/RIXpW\wU t0x t]獞˸ϯep.)X(ay =h"Km_)fOhjZ.ѾxunٚIۏ$[;23;5޽#NjIݚʋ/x饗%\b,riӦ=裾>},_șhKKr`ͬ>RS&ˊm-ijK Yj¦Ky ɲmX@BQd6d:t26.5w/iN")vEGowP-vjV2r^Y>(z4 PW&O<O?>d+W~#(rk' sZgߎ=528K3-BƽZ7K+"Vvd%P+qT$ZT4;Y6jj69i]lmuqU69Jˀ~PJƻ}EЕGT/XT$aÆʯ*hҤI=o裏9sf3W3мf?%>ɷQV[M,B |Q6[WM}G^]DZ+ZC?n:-N 72v`J/vOh6ytgi'"v:eEPֆeWpz~@ PB~~p|ĉ_~y :{zz|rKhet^8wy'8x79s5k:=ɿŲ^ܫN/s5gШnڃ<=H;\k @t˄h~m[4REyugw]~}xEW "vK_-ǯ~|08`pq-]7X84ھ="gf @WsɳXy/ +%Ă఺`0ݷ.ϣt4~l: ƩJȗ(_J5"vce'ΥY7#X4T˟9Ah'pG}lkk{JW_=w\`26o|!}wG3sVU%2hK}Ϯu;7wRaEaxT0]*Fl]pZp8kMT$K1nDxmy/V:tPȡs +ʩ2t.7P'֭[zq㮿Ү裏N67د_^{i_|K/48o̜ٜ9sO=.|d 4?]0O\{^ +ʑVH&Y)n,Us {Zʺ-}4x!X;C9vވJ,!5> +XV@U tvӕ;T7rgN80u\ V{zIx!:3? w3fLiZ|g_d.Rfo~߿K/TYutt;?4iR,t}еUc|vzUY(^H%zr8뎥7P026h)pu-J`: !ROm[+UduwѴ ˲>`;{^^xK, |wqGsfg6}ѣGoŠz ]uuuFϕU^tij-ntqo8;`]8:XV$]Y qa z0s믿^FW\q… }{TQz9NPڎCH)tm#z Ԣ\P,'KrC< hT +ͣTnj/{C60D]x%n@} Jr蜸7?(Qe_֫}YDF,[G?馛rg'tW_}s=-*Z碣cܸq`Kk.גg@z>ṴcܜsEk% %@ + :OEY])*yX,ʓYj!]w&wݞ$^h3J5Gi.Yr6EiQ1c:;;}G}t~n~)o_O9bRhA*-y޴5?*̲)Nʊʼ}nyrRj cgT4I]>O<ٱܯ9aMм}@~@XtW:'B~l_*_>.Zp8"]@) G9 gСCgq7\֥WX0\2[^veK, ϛ7[,T%Kk" F<邕/y+'(J쐴Rd7Я!k1AIT w\>'jLB@]ygq6 KM9{tz_f#mia LE^R;gSF"> t4jm"oPv;1]@opQE {З~\}QŰ+W+?K=C )FU +=iҤf@Wiɳ'y+,Xu Xݱ1хThh'>v[pH}}3D/1+>,^zqOt' {/XtܹsC /,׎dvʔ)Rӧ=$KTgq.GsKKKI+Ħ嬤4T)J;BdM<܊f;{1 vY(+6D`ph}FT:7L)+SM:P +;`XpU&oL͞={ԩg}f63ܼyst]4CN<3fnw%Z +]vU@Wyɳ,s=i巟 V԰>;ũI-oKF*NCP i,:rP+6}<>Q'2)Vi?kjԩSgϞU5ӱi%bŊ.(k??k hkk{ᇋ3gN넁}s?Vttt7.x2aayɳ~zAuT7@i/믿ooٲ%LB>hРaÆ~x`;-PT)4Ϡ*X]C fW/BOo_+\lABôшԛfHw~b*fD_Vvq+cq/\n ++$ˢ\xq_m^IuS~BPB;Zl Vmɳ,J^@,߻ro1F:zWE +PZHrqoAt.Zu'UN6)y4/NR=ARx@'v:*h(JT)Ir̠@Iɳyy)(BcqJOgw*Ec֬=l%v}PkOof#jLs+9ɸ7Ѡqaep\iIR+=ED_iYGCw(sPsiooBO>}љ-GOgʗOwOA]8. A,}<jZzJˀ҈6-:!%PQ+TT԰D-*eGLs}FMG~4Fh)t.8J@89]a'ۅtwjTR4M^naeYchjD{d_o{&}~rȨsU3rRU,狆B_PND ~JLtVAg :o?xJ=؎:$-[;Se---9򚼺u,3O^_B A_?v%ɂ(#AdګF43mЉ^:4. 7%(ζU3z:r\ -FIRtT҉iPվI~9msPbSLYt<oO?t(w޾KeHڰ5]TʷXQKĒalb! ;P_BӢvZY*$rBz ɞ%(r틂oT8T@gY N& -.,Gݻ~[A97z.Topyu̲PCJmdCMZk~ݠFzʢ)a#ɣZDUi֖J-_ymf2Zl'%g}GC~ÛRL:JgNʥcܸq }yл+oQs fQp n~x yհ@_ M Kme2<@@e.@g9͛7+N37Q7o`NRś$}r ]6@+U [隅D3R +Lx Tl_fF`WRT )擤Y@K󰥝:I:n_ +2+taZ)4TBT)IB_G9^rx޷nKU'{ˍƛ6uJqΧh{/XCk-+[beeӊ)%ڍٽk!iE&ЍݡǦўNs1U8KNwW-'Mx9 ώ&qbe1k"fuJ+]RلpXB :u'Ѿ^DͣgFU+J\- +,)v{=E7 w0)/GOhsݥRGg$bjt{G +$jq\J +4&؎CйoN'dlCͦPL1HynMXh/w?==JqNcѳ׋-SKU0+&KN=WMVn88MEL,Vfuzn5PL+Ӭثy\R2MEE94U6YKmJRb:T ]6жTjB݄:uW ^C_ѦwYN>GкA^,8&4 GV-ǓkF('_<6CT;x)V +moObs}Rפ5}kVX9#4U6б< ! @;#吂i%o 5edk@'"a11%VzpRZqwEqVIT7gyu7q(ۃĻW-9f7NVE k-0 w`So{h@c)yA 1CA @x?}v_X_ׂ@oZx52XIJS'SVfӼPh;3:\[p =P_J ᭁZFJ=cnoԫN"u}HGĽZj] %> f3Hhf-f fиO?%N)IM`)+ :z}΂NrP\8,D7/r6OxHE}tZ8xS៤ [YQnKh +{hSY5U:s$qaeܻ67nrD]`+R@@@g %@kf~Ge@?꼗ൽƊ IȔ` 7CTI-8|jF̼+|v[^Zn2`c mv Y'SVЩz41ĽpUXb:T5, E@WO_=śKvtM^ +4Cd@?~{@{׉C `WnK-7MS%^My;fCw*C(E"%9{V{3zreqX?]-c;[M{*<0 9]yJ*4 tiF"Emh/K ^"d:)|y a=9E,yqh$b6"NVy-I+Nm-+v#o9[Jsk9WLW%'rsa%ϕ9`0 f/SǼU$ȼ +_&ǵ 1י }R8dYlIS;K}Ay9m?rMXBx3-ٿw'L"C!{uk_';{j80xmB 1C|]T٦zZ`TbTL, ;}}9;o8-d NQtwv.e߫rk~S5RUr_#t[+Eeʶj)B^l^Pm%> fC@TTj E,Fx,wՊN) "p ojH>t_b%O[g\E;C6,:0R饥Gm\ !U.,5ߤ_6H}Μ;¯t$^|TtV^[3:J^ԫD)An{O)P[WTXX +Q+Mu[N*V< !?R3n>]=-\88lx'q0b[CJy )HO(҆W.LnI1B{@,Q.B, hJ;K;]< !ns@ s(1N5mZ :-6IMEb*t& Gڿ7D=wQ-:*YIj(O.=t}=$I1 Ǚ[KzƍKy疖,#3A8-pIJwgiɩR.uGɼC#ouƨ2`tskZt[WPJT5{ouy@:_ؼ./[Fj?=Λcpj_+(^มJ";@7BɳhJ8<\tp:Rqc{sGGvY%k7Tw:Uw65ۙ(4 +?0" xn%*њʛr4+[ؙ? m[ϙKKs}wbڧ':V:FͯeD ϏQܶVڴ4Xa$4(&rsNM{5ՃkiQaQߨ.xO zM1USȦY|?52ϠC@@@TBe!蒡D)gszH}ֆƲYd+Ma$j_9/xkiZZ>af1L]ˢIjlx_2e׫NS#2_;B0 3>>PvM퓔βۈZ @5 eYZB|1vE{eELM*Dd,E,$ʐגrP͜hSTڋ{E8p~UY'stY 5vz!Izfe.y4 YHvkyp{#дХ *Y=|Y8?Zr2'U +/_7̄zHEu\8װfRm.gܙޔ@3F-chy|Fgˮ+̢GӼlF)%<!!YkUvKW秱߼@t.[^QC Z*xvsq#GZOO{FsY*_-<)%_tx-p-)W;PvU6c5;mt#T" ՠkˬQ4 xv^.X;JS:Y)7H4z/١%gm_(N +ef6%?{ Y#cꦽn!3OII\&WRh;Xjͳ\hK[% +ӖӔw#.|O Er;9+3в%gk=;f=~-3@M7]7~b߃*z`tsG>/Filter /FlateDecode /Height 468 /Subtype /Image /Width 1920 /Length 76744 >> +stream +xy%}woUgzfzpHHIq(H)E;aD{89:9OcǖsHl䈿.MդH + 'zbm/aas?UTz!:Q;vg_[[[__ŕ>#p#o]BH+@LmƐlQ Eرz?8ӏ`n̞NEUz!ء25ץ ]n=Oǚd|I:zwX eB +%2o$Swd'hdf O@'5wr˷hq"=uʉw ǯbCf.o$U̫eaW/=_^b +[~޽^B$ogE;zjhvnB]N-ƕEf[JtexJwCG D1gb +hJe?,JEJzM/6mOy0hި8IdtiBuM5>zj*yNJc{TN7 5eK3':<mJE2 +N]wG!i$_TKkmE@(sc7RH|O>˜<_>k+++@@ 6\@@gh렝Rhry:PRTZINM Y"Ւ.τrF,jD^aL$ҳ@Ml-֛j   ϳk|~q~녀JB h*@aC}(iU1)ShtK}ʤ2^^-lSj1EzSM[~)z{;ye._i4-?녀)쌢رct&jgot,Cw [2_l-76'ٗwkxɉS\ȅrDP:NŞHżm5e3@=^QBrֳ9oOm_;_}cyv'Rq.]wwW#I~שׂ8DeKNzn>.Z(mHMN_mrcI %k"^(萼vC] ԙ[he;ة6j.m7ֿqGgµg__7pO7o_o^I /jgG +%;-ӑ?>nBb\vCa/$:j3WNFmQ,${W./^{T-loJ ot&B I+!7Eٺ`16A%<>i>3Zsc})lٕndjY@Dr)I Z-Ck:LD@JK; 8fI$T{r'"X@o3a^N`#+g=|G?VԄGzEj,jg. + E:2B4YQ+dEPXm'+ĴMQdZ2ۆ! ̩WkgI$)*_9 h +sZM&S8u/:M)\9TGk6${?1>#wo&B/; \&M1n!T^LwrI%6A ٬3,p{CክQ!37sκ%J%WPI晩2X@hQ:2)޺#⾢-~á0E:$Ct? +}ޠ|tjU/onk}/{_9ZzeeݮN  -ӆ)bc] .dzqFO c z[M٪h9uHK [,c5j)SIzntS79SsMp!YzUtH9Y)hzI)8줣:<59zE9=uޒq*9=o{_7${̾//_lO'[w fM +C_MeGfgEǎ+L Ԏ'~yApWI yH%ru[47l u>O#3-òUuƀ32[ewte]6E9\FvlՐFރPB9N ũNrZ)^ 5 1ѷԛ.#tu/L# ;XR\cF +T˯L*$gf[i=÷w{!m6d^xw}mu;%) ? រm77I}綥@zq|2k V?%K\t`O@+Q :롳| + H=] +H3Fk 0iԻFW&Nڒ&~RM]wInx'u@]ѕ6Wfq(F3p/p.*nnWKSp:Om;6A%|->: MEh5o;;7j?>j7&f8=[p_6Rs2 h~%~W5 : +LLXR +  Ԏpbt0)͹bG?15v*a}l6qa|Fኔ9>/JEVVN[{;~{L-^x\źj1\jZ})O n;TG+0rIz]7FT#_77JXZYObw5D8Q;Ӑo+ht\Csk9WP`Lڦ2 +ԍ&AdCz|[$IVWW K! H(,yA $i$N742QtKĤ np3'Hbf9t&4/YU4q] +)dGlEt6!uVx- +!,q8|gT0Z8k%q-12uʉ\cQ3:.w/phw_@1+b\AC5dʗKWPX@o&D v~dsUgf\IM?t T +M/jg$41AzCHR4kӖ:DO bt9):S2hٙ)fwF͜42/H3BBi4P/T)Lt;Sg$TKfO|,jR-CcmcLB3FO Kȗ +a^LSIQ9jCr\ +μ PX*&P;}ҴE){6z"_%"|C7p.!Cҙ^{s4IS`yi O32fpŵ-HRhhvFˍY@ O[W̒:*Y$C><L~tyKYZxf6!hgL:t B1M:"Zt;}=-%v?y(,O&HVK)z\Tzf5 hp/nfL=ndLMWtLГMHۮ$>\rh6u+dSaݏֻ}3S z)ptǾuw<M}ht 5T +0L>C󏅵cЯ90ߛ4dp3M˧ju#EJ#YUgUmF6R/1oE͹jѵ +ImK).9\X,jybRZjۣOTsëW,8|53P‚R[MtCC[m/YKa,՚drZW nR*ot-Ja2m{%?Thv\x͡d78+++ BV@}4\i/I)N2ӜT)gf LFFUs!dOa/;<-gNɮ%;)b4luh<+il|sxxu +t~u{tsTV.×$Aa)tE _B@u0T#L9%+Kj6tN_@&S2dljҬwsi݉3:2:3Sjaa4ǜk ƗvV/\ӭLv-yNA9ͥt\lkrm^yN6s^By{IzR@ȩb\dd7ts6{(4W4stD,i1b2'j-]8.<զk箱ٔIC7.Cib[N|halR5oS>f@ŋѣG)+ՆY0jp'"+(\rfwB}ZjA.t tihkӅuD,v&ZCc[yIPjoFyTKېM +)f|t1J h^D +Wt9:Cl`0ha`M N@Q9άnjIIfd6ok l{ ?zwٙkJd0b\+NJʪЁ0I}ŋa.,,y*Xe Y`n:;ȕ8 /HOf.{]4ȏ,FDFr3$b,1)i:8QȖxR$H)c*T൴m6oI}GP-[JNKO*`Is^ڹ|(f:"QBR2W^uZ5e$;S3m$"`M?rD.6?t&y=0:XeљBi< hԚS/4pOB,Ғ[&2+A?=Gj.d+_-Oy9k_FЁ@a&ɖgFQnbu  rk` HKϢ)♣֡VdSB\=я_JΐpQ/붿~?UX A9M/;2#(:v{hw-\U##%#;"鋐ı#l9QZlD1k*yݽV&Aj#̏tiWιzpI1SM Eܪn]e!-g~wN@Su34JE?fzqr4AԾj_HGk67$ zgs]>Y(?—./^A9ڐ$Q + Ta_ IyyBUHNRŸJ'l_>\ʱP\ζ(!S-C{*2': U@k[;|\M\ZBvHsDsCz\>'-(e״s^uLⅴ{Uac'+.vԍ9u}?P>bwܯu`& ht>n0B: ydN{~p4t&T rBY@{մ3vw$x_@S<{:FOŅTLگj7##gLk&iHUq)^ ![Q{Huq#񯟼ޮa?5}N&$Y]]w&\^^6wi M"m[0'")e=gHjPmZ8GTDPY]|NߤO[jEZf>~9)t$9K*+ON%Tg6^!sf|o&XNڔoYp3CGn}[뗿WgȚwqO^l+ńRcǎX"pqm)4 +UX́E- hitZRn5T h4>xjxFH@{b%Z/ti=Re=Ba]d(y3Ogj6(B Wړ9x_f=uJ˛ Qg_w{‘ji^oC4(&Re.-ѸU$ +92p4g7S h"It J؏ι 9IMօ=tjm1oFvڰʮ Q$eCg;a`PY!Z ~ tuщx&Y m|u}讗?վǿO^~o;;.p PΎ ʙ)\L}b+X=O*źj.C',,u`$M+N"#IIEtGE P^(2Nup˪s:9h6(~wj W|~rFK&~h-@츀YUuJU=MJ!2"Ne07$ulʔPgӫluXa ]|,̴u-xCDm҅Eh.ºhZ<5 +JޔOHií5w}1Ht{hn& )淺MfUwΨD[W|'⤥ 9hN z"%G^l%Z[^oaZH +)tt\%T)ˢ)Rrwj9rE +h+clhM]I4D41H6N^V#^o8to /_]:#lb{y\y'(m'O=P,3/:@@IuYYZw$h5[:8ùH<̬ dT(#h}p5U:SA􆈨;w\`YFU@ 5vec[fO4%t]k}ŧN|S|cTh󶓛"'ieG|%A ڙQ@o'!̹>Sp83ziIl^W6jj|Zڦ=~{+.l/ + 3-m*6Wmg;LEs6Uz|4.J⮎_OLt7Ύ SA4ot>P?j˙H1;}ߍhPhvfT;i@rf&C̜EOTR89e3`}.h +s: d%M5 +#6hn8L :lHGuխ.⭹9?٦0h +NLǥ$/N>dCouWdK&%Ǧnteڧf%ԉ +S^:Ϝڻ16 + }49'6]cXg-4P;3 +I1;H+(u3*gt.МZٌlzթ̀w9|(+\¦|QA%ME mKh7G:3p :;۵PAҲU6/9B<ԅA_խn~7:qriW<]j9P,~ucIb\l>2{::2J@44P; h?|9p%,&KW1:MMerR VB&:i¡kZx^/\l]5ԇ7L:JLF\u>no"gMIgD44P;3 + Pr2_&>ԍHTXzO^hi-٭$EB!φnsGTKvO " n0|dقG:"hND!ԙЇKM.,0t jHH/؆j>gTZ(HJb0Ͷy3Z(-ߔ<Ձjg.&TV*=1&mOmr=u[C:ojND`0c쨀W/lRKf~vZi+8,6PH䦸LSv{kT3AR<-nF@/WѼK(˪s:98̱DJ-0W?=5-|O b-qt`!OjZ8j纀g־>6}UaN@`*gVVԚ_бMc4MW!kpGpv3b&7P]sz4 0:;1gd]4Z"6YTߪ«o',h<$:*P7No4ѥ~!Da<6nwu}UAD: mD蕠"77rE|>&}j~Gb>~$#锜 `* ڹ.|lEWx +B6Y:}쏤E9$G! hP6UVl0զ?_a]#3ש ZPˢ~z@ Z9= +Gk1%6KZ,ܿ.jGQmzߎLΧ H?m8Qa U)exC5}+6ҽBA +hv hja_)c36+A8oݤCnSMtn˦effC3' +1Wh!&ƖkT!Ւ6J]' ~sp҃0gMu i/@8 6L7Wdr&9pY͞1b~Mbx>C^z :Ks.p  +ȩMe˾Vn<\epG^|'Mv_FU6}_%v;?y4gtm,9غfl4)u`]5)UI-*cgS-P5/u@hK3̕H+[A,ƅ2}*2R}mN: sᰟ6#&!~u}ֶJ>z@4 +hv h?9h8J"eW&ˑW[m2#Δ!.{:B4#N@2:R5*ͱfs9fU~uKF]RNŦnj +"u~m*KP5/uUwZ˹[eߺS_TNھuuY,n6Dj7x~j߇F)z(g?~;}@ijg$I%Eu/)"o]،&!ݜjLnFbʌ➝GD9e4iHy2"螊JZ VL@7B]M'7}p9̛:B7,z4]y pyHW<_[wbM.X%.ӃgйI@4hvzW"H)^wҐ2/\.wB0+Ui$w8$ns_^m(sE| r3iGUzAuZ~F7TJ}Rqԉ/|/3 ԎO??qpN]'yh#qGvsOTu oS+9zyuf/ԗΊ$9r4 /z(zMw hk jm&zᑥ'G.vqkR2ffY9h$lN˜"mua73+֜y[ +TC3Lbנ(#G-3oj +-O:P^Rm'3'tEtX:J3槀Q!xЁ=[}Y95g<SÑ5s +hmt(5 h6tO +7lѶ&Uc 9}kj4Bs*4jdg>8r Sڝ+}^ mFW_Hulr?JTU6_Ov)3 Ԏ۟&}B +o!]SEyT +90ss@J̨xTl6˦`6װ ޼%b_E +}c+oAln@GTTlFB,!U%Wt&16]j 'Veq *dr*^У(g3 }S +&B>ǎw*`'R8wNp Ԏ~ڦl3mWŜ0Om3: +9*ߨ<,Crku^Y8T@%NK¥컄XMЅd`n3wm԰.]yx7+ӣ nPUf*9y\6#B!4?r(-HUJl{Ho|Es[hv/|V{b;mUlh%F^)ǃ3 h2W]vYI@gR|.,m uvy̟N0|&͟qnWKgN[v$Kd4 >B0hm@G,)lJ6$I"˫́Qg +poYWICSc\QA܂Zԝax 4P;V@V%}o8GZPi[9몪.C92\VTwHH*rx>%Lm4(g~.9ѹ+@G樍̀Ḽfnkn^WM*X&m6(a/vtNs5CH1+= 3_43 hQ3 +y|˻=?u׼4P;V@k,fŷf-6B MW5S8 ݚT+qfPZ&:4Ji"o^xp1,\a wXO[2a<, /j#3 ͆rVlPF:neF7|No9I(TD+_"i*On j|uf%ʓ7Om|rR-y +ܚ@@cE6z%{l:hҲ,`r҅y4> '=CiGY`%ѡ_\HWʵf@ut9CI(a626~6H*M6;9X#o;na=E@ m[BX@})'Z9&q5m`{-J}}+g?'eX*G?Z˒ 4P;V@ttZ#2uKNtSpd s^}&]u YzA?UD/~ؚQȽs/o)]y%H +=.#-J8́PM$;*uT k{.[T73 dM?}9C'- mt)7}3ɍwAB=6ͫީ5@{?w +-4P;V@"8JL$4'c hQd\ $d{ b=5$iEܤO" [tDTM$qa %KC.||mȲEp9sڑߑ1_ O{Ɩ+N2ʱ,?vN1TQ̽Gn]_^<˯t H@8;{~4P;V@ƤusKSUnk̏r0/r-\ +G/T6lD?y}xqs`jv$U %1?p=p H@kjTwD ~Ys?G!i:A,mq- uH3Zڹmt;߽Te 7'%L \ n.vDB8f3/ܮx@/b0<18 0wRiy{]"h!$=MJ7}.-ܼ@@3uٓp3ۓ5ToQXV0=IkW/&uԢM6ٕ\M;kN@~%~T>#c& +B;.E1Ut~f2Mφ!ۗ]/hqqqyΜ))G3hvFzowql_G~E 94_5:T@mן' MՌ3_l,^N쉪7.p-(- +Wp( +b2<)޷:* +j)_U|WgK-q?t_[j纀>{b*.m546TK}N@\ \t)Ӻl26Nj9بr3zS!O VRT/mZ-Ff 5dVa =܄TyM3[WeZZ~-/_ 5K +G] jgWҚX [;Z]֑:?'fUP=dMy}Q H @c( [:l@PgkE.ZdQ]EHVPFǺjn艍v-PF_G0BR%VXt} +hs9Աqq~WQv[|-)IZ)tF3 ڑ7 EpRqj8[҅RBSϷ+|&Jeڟj'vf..4(Laezx,HhpWXRڊʹuz0][wx,pz@Y@{.*.lZ6:189=WOmSwO~E/̌T +78>wpǎl 4P;'X>$Es*Jd8(i*IM0,ڌl 9<-ofaJw4ڜ\# |&9,~ +IH@;)8ݽ0>]+ ˞sK3mJNcwF[7zl9*a26\%$?xR[-O՞V=1o3}ԍLBF$tC7]o[4WO+·uHr^Ɯ8 vTlzQuO'S8R-z +=X rdxi^Z{e{5A$M(mI-;DԞqG1Om!{*Jݷ MDpbptiß>]nQQ;vLN Ԏ'~iqj/3gN ݤl  +eKw ca$}__G(-u._;y-)_AR' *X-KZkSad@衸nUsC_bk 6egT{͋G)"f,˾ ;T]d-\)Zwj +θ.nۋ0w&FC GP-!M{`=48C8LU4M#iD +i\kJ,]R#/L) h,%=798n>pRe?хt_N|m\la(|T9bΥ73X.s6.ć7>T}Bs@@ctK b{::+u#22Btؖԍ93}hX]9bΑP$(lr9hܮ2d?#4D7 89'^g,)#<Ue4҆vy9BahN`g*U5lش-7sXp|?@Vtݣߙ4ohťuH'{U<_w|< 3aaN`ިBqS4؈%ni6 iizv8m֗JWT>&P + @@@cza\۲4 둥d*FN]c@A3A,¶SA 2(Oh՟ Ȗ˰\^f?/d\F-xѳaWZHYCtmF@\ 'WkX4'ٿyA2ԑlڕtKb:_ zI@ll[d4g'_G^6z1ܚ@@cϢSSmFG&; 趌pY6cԉpB:W]a>-jiyf9)iab\aM F\F-U\^E<9ꅫ@ѥWl +~18?\iR聥G6͸MRzsq^g bЉe=i7Fm޷bKrG.ֆch13{!TH iϠ4{ڬc1>;zd^+++t)jg$;N1uFUl&`qv+Uƀf#v&M&;1N+sl(J`Mˣ"W"MmB~(6ضSG\*48~H96J"LKLQJi{:N1s5d)a5TZNlk4TPFlЧd9Ӵid<~COLKw|Iφ?}ѻyFB#jgn^L3#ե1`[$ޙC-/ʮ[Ns rHμN$-e+ 辭hk.yt,cCLU?*V:j켖t/Ƌ`MTl>w<}:U +*.EG +~CJ0l;op3'4U7gtҷ9Y}5js99 _Q([=+P5leGfgEǎCgBnZH@_] +[ ;h/(X9EI4S͡CR5 |MUk5]&!jJ^y&i'S[ ] +E.=KFcañ^'ki68 tVЏ*KGYt[UM+^cP7IhU[FhovG +I}'J4P;# +ݱQ,Sjgv]̬iñ.nX㾐]ᯐD֜hCX伒rМ=ݳI eU%] Ai1/< $NJR8lO, +3jD.Fz wTl.˅D`6wRCԮD/)NZ8 lΒy%]Yz:/s\&1zVmPMyы?+߿LLRhʁjg$ N@k!Wc1`@ ˓gƷ|BX@OR rМ""Dt.c%]R# :/ S^}:ηٕMכ1sE/ .NjLKq4tUީ+]p_-2~bIj'^OLbOL4%ldB]Hs¾psBivb+pwgkPtF쐀&$Y]]w&D)4jg^wZꉉ5<.?WC8`aUmi2m+9!taP:_LzN},ū]'@J7A6T;cI.Uk`(u#H_ $f]:fdSpal)u\ }Lr6 +)ưo9g[̹3ÃfȺlb.瓯#/z<33zٱsayznق&< RV.#ߏ&J b܈oc|휹AVTG9,mTenꀻ;>?XH٪TX +=.={(Lb\*N;v{m޸}>31ΌcضW*)y6K +Jt^϶K^K֒E: +O?q5zyyyqq:@@s]@7EJuقrض$%SqpUf MC O7SM(Z[*J\P.##}-rڷ)qО <, +h\.ͱEs,aEMLpf _]y |$US9Cc7G>m6S8M8tǖ oIȣwuPBPhv h}=vgtPisj9bYIKתQV+_@ofǥt#Oǒ WZ>?[ZIAuRRs;t7hO:J}g`nŘV:Åta]h Y hPJ '9Ub죅kQH{pDRjj69|Z2;љIDpR܋LǶ7iK&G!|HRZ +L|dbPGQ,uODU%s*mlqa8De%aЗe5΁3GS 5G?)fUR6 +zdcg  ڹt-"5ˁM`"߾\!uۛgatѕC2T^<785iCƃKV92c= V:q-DBF<}Mж1$$iT\WJSG3̘|ϋ^?XlrّىRh )І`IDJ:іrK^"h_Ʀ+JR!IWKbE-zn÷zcI@sx ]SGጹY'喘aU %8W9$O T 8w`PTl|pgū~╯kiԙVb}g݃;sNw 0$ $(R%MQZ˒%/mYJZZ&ڤNUWĻIʱl^ފ+&Ж(ɖ$%Ye)`ܾsoAjԷo߾v__}PA;1NJ4C3?/*oPyU$}t5E䝋!5-dz=0e}(*E}e&C8pJTX( +hVT=&}E/( {l5j-//# + nB .ϛf&$bZ03j!1M8+/IGވ|q-[s{3M<݇N[\nuqd&JA#?Vy؋_aۙMPzf>8t>&zᆳөlsQh@@3\@_25883s ցQ{Bވ%ِy}h9ơ5 47r&t1WҸBˡjPQ{-kmnjʁrᒬOݷweK}Y4P;tg̡=_ThE){*_txҲ _P Yi e1F+ygy&]|x11^ʝnK n'ĩQ+H7cSC9Ki&ξ.4]]]-G[~ +Z2>狙܈& }emW(7pۍ${Gdr/1q[&8pagԀL~p;Ï +dG-;l`7?~=heٍ{st9vu8O<Ʉ>2xzRJ =[9PB~|`5;8KڟQptYV~,Uv{eǸ],vnOs +hibM={;ngfY:2<3ڞky:> 51$%J1+l(sQ}%/9bx SڭGo"vB gFK:*MBobzЙvW7^ɎsL'D^=ﺽscree<QhpC ζ.W_25S ˍL &tؼAYM$\73G%A@.j"p{&F~SsG𞳁\3-)94m5婢g*r\M:KYM"МWV睍=->K-zQPǖk>=a;)>ٜWK~ ;Կτruu5MND 4P;;4A76LckS_LsM7X1(ûX<$]w/o '#i )+7\9r4[3c@Ӌ Mt?koN-~O|e A1-:XFA^7i/vlnƙ2Qb t.l b|cGc޳+_FE<$f}d #;G]ƒ U/&FP0vC7D۝ơd9ݰAe fP skef~?0(4MMCa.&?nx< WtѱuL5[ywdS)sB&LO_O[3~l5I +-Qʠ{wYK~.p?.4 ;36Rf\1-zkz(k}Ie"p[ <ϳ)zy& 4P;%^;Қ! +Mr;8C-f|`H\!gie כ5 +h.Si5u0/v1|ޢH̴\LJc'dtEKbcwn8`v WW?翳LtN=gqE5\}^޾Lt9rmY_u3j2! 5ux5Hr0NRɚ b Ȥ Is >BEUM)UZ.D8vO1< .-+wgƖIU\R;J=޳=!!S4(O|eąMzNh(`ty(5 -Ӡ(P]e/2uwЩ(,+ikd,g'b/ߋ[TEXM@gm`dV(48 @@3A@K#^R##rh7a. GMuҬ6>%䯋:};A5$(>|l__DJ ΍1{'Wҥ\'P]lN-l絧A5t>&u^m0LtoYKDF~klj޾b>ڜ(gQHFdxr&z"]8 NF{Y_uÀ(48@@3tQUl쒧pP\o|JxΈGspTALJPp +gg?:k3ev#Je˂ͷb600l q\?/l/tL0:mL_BۋHN7wsSД;B2S*u LDTs%OPӟ{u{gbTzɳ/K  myI.I`GE1qC +8p@9>N(2AX[[+F#4‚t|\)}z <>P؞R@ò/m(th:|r~\"M$/Tm44,+$2we#$]S??p]Ituu^^^njP@LgԡKCn(* "nysVY +CøކkЬPpaOR>X0+Կa߷SIkf ygB뙇 r?}Ӽ0pq(]N SN{%C䜢a\akwó- X2k4yaQb= Yi<˩'>[ G!>/]Qdokw[˩nFQhvjЁYve֞9溜GtG( #7ѫHs$n'B"zCE؝'Np{;ӼX~BqrU?D!h;;< n\iJKكZU= .șh*o巾S0{vq|IL&{4P;%^$@S2J@+Aj:DpNNZ߈|FXAz]ygn}}N/bJSi?U^tMBS +&\,PA]ป> +Me{5ol;\O4'D3OCSGOafo9/}* yM>&CJiq'`_jgެf~D;ꒉPPޞ%ZlD5Al5W_6o|uӟڙN.ؗCbj3ߒkn$L匦Ynk8,- +/'4ÐLQ@N=g)Jy2!`πjgF'3裸n7p4+xN]7H@_Tjt .=h]١g~O-~3akQdʠfDӈH:e! ~<8{0'䩋OՍ\S%i.+usQQh@7@@3Y@[`){IŸ +1ށPVzcV†n4BpU)#~ك6|wTh4N-4~/ OIZHm>/W^jmwDh']Vʼn0.SA+ƋVj_ȫ﹯n*4P;S Rf =ēH9_G.X('8 y2$۩\{{ԙLzͧyf" dE#nPí_SI"è*x%Db7:Q"U|;~mQT7K}Yjg*}F+~hr3枕[-ȥM5lCǏ?ƾ2Lݮ.8x_t|qBz`#+4t94++x4b뉙&M /䇯mmfַ|ovr(4&]yp4'vPX8昶Pcb$U~ȧi@:7-?WІ g +rvY@۝k3j8{pa::ܘB|kCШ4P;S K6GQo-=A ŝ΍H%C1E4<Лګތ`v#{>}W{Qde]$X˺QfgX_@&oei #)k{]{v" + jtgT&ZM42F:5vCRGӈNe=ϕn/N[ݭSoJV| Ok[B UݜCcNƗ:zgs\GoƸ!|o󀀔ruu5MNDA@@stPt8rohrp!|ݳ0r(4Ak3=͝6jUvh~ +zꏾfbN*NnFy~A:$_HOT8 şF"dc#ߎ 3j2aZ^^F4P;N@kXu+xIOƐ Qktq^$S7ΉZ{7tl~$]J,3!i_3md?`zob|M-MWUվ (7 hL QQ%Ͼ, @@tjb3uh|4"⦖ wnaO-FX$#rEF1Up1_殬C"tL(A'ƍ# =KSdbQcҷΌ+ͰzKh{;:8h㻼}.f1p7Htuu^^^nZ*p] O??f&j{8cL1Eu76c/s88ęVMd5D/,5]7vϚ\=+h ~ h7h5oK7uwig6yno ^/u;4^W~[\*Ư\utߦQc.14 +:Phv?3wqLn-MupE֘Q4xXY=#9>&(j;"xpDv{LGǨw̢6u"k5%y"LnoAi86m\ޙ !-~$7}Ȝa:fz4y$&j?ٟXȝ횘V G9ܮNbwA%l aJ%񟖆UVװgbgOuFِOktr#sJw'b?/jz^+KZ [e{Fi^aKgKL miw" + fgdcf$:rtM|F>rҍĜ*nÞPΐSk&ʁܐG #qR~\K}fgv%Qn {$U7 ;}-^>0t=A&_v#_Z{ۑ4:i½Qh0'@2}35@Z1ЙqUz׏Kbf:mf{}9m(]=ƭM]؍iv{`Z"!ʞ>L~!;s9߈3̙zzG}F~ 3N>^@_'_}ƾ<&ޗc ^*~IV0ڍ{}0R'" + gg? 7/(F3']dgWꤜFd&{}\bg?2; {̄aҩ m&W_HaU ڰkd7gXޗW6y0x{ idrvhʗ #x$.-}[O-4Gs_>y_|)~3 Wj0MGtEvC@ +{Hdo<6j7Wc9JHw{}=ُc̫tG}E@ȁLtZ `Jdv +hm\ׅ߻[ATmMs-(t?Ӌ[:+uPP2 h?OLB2b&?gi`0ڡEnH+=}"ԀPښ5+h:G'!]c}D+njٔ^o*f!>f;տe* +eΧV +lqZ8h̩V Ȩ(g_8@l hN1tg\m\ A&Re3—ңԼ1mݣ M #-n +U`e +VB[4iCV4ttMߡQ.?}iLd|̾]jd{F Pn={Әn| ;3|Ce,ɋgT|vG!oc woL$Mrzyyї@ ζf +yzA@om=뺵;Ty2T63/|$AfAz:D~! hH\ˇ'6>żwlN{ I@ӑ!; )K:Hz.&\Qm5D,q9*1V@όu_@ -DԿ@2H%$CV޲-Ә% +s1?D4bCШe ڹ&3&W[&nqikz&jXA}ycsŶf9i\sB`"8Mf= +hȃIMTh+.}Z.M .]ix1=-mΣֹ.솧>}ͷ_G.9x$=z63\ֳMލ'a|v^O?ix;&=;8>y$&A6\ضe$m/{&~Ua^gR? _ +nݰK4sc `~ |.B}ShT5qZO0!K:Ĩ +mD~g5he +|gvZF 4~`ߖS\_nxS;lgVZ1&H00JxO_Y%r*R4M;hv'i Ӱgaz41YHxy7$x{ $\m9s iဪ4 0>$=J !Fͼ}OMY1 + +3}yNENk>v(wok+ unvB4l窞7p/~c( +0+2<[cy*hXuFa-mg΍"@x5Qh ]`f(t-H#^!ActlE_[D܄Is - iV="R S@(:~}rvZFXyؓre(K@37/O\L^ 8qܗo„?zٟ?s@!N?O4rI<܎U8~Ud:nLQQ{_J'ħ,RʕdBDor 'mqzX)Tm1$!6ƹ&iMd%+K>$7*3"B\zJ.b9VF(R6ܛmdwş.:p}ctG㏡:`;OXƔAӭ Zod捞J!whr QQ%Ͼ, ;@BۍPڟ7HtDF)6f,\v ]O_@T,~uR?o`]^qdGd!&@ҧjp7usC7>$^f3RSnHc lϊ}MZ'dO&^ + @L%kw$:Cސpe30:d.Yb􀀶/$ɪ<4#}@tc{mCfޔ\Y@z9#O}KVPv0I? [.6^Z6m2A%ϭ(sۧ2AFT3}1?tYv9x @x}: o6 ڙW@WH1σ`Zp6Fyœ 蠛iOqP4tu㢜ӱv-i4 lr):rvowM5^o.; PھvUA f[+(O:\BםmDIݴ*粒E2eP}14 +Ʉ7@&S5TTF0 Y2媍~9C94HLavYu~C@ i7/1ӑdj5x^@~˧L'/̃҈x;̩xK !s?J12he(s1Blӟ6 #9qSIK[+o~k9 =;Ij:T<&s]&\žL| $7];+lመ^6u//Jy1׍ѳ-!S=s]L*tEZlNsd=PM]BޙW\Wg=7 ! o/N"w+Dͼ3es[cM{:К<`_5Qhvf҈~? W=3D@ss3S ǚ\ <Ӯlh3==ó?_Od7*smoDfb +Pޙ=1{tjcT͹v2m(v=Mh\pcY8CXiD< qȘoVT6_OQ [27*@&-ȏRjG0s M ~-Ls ńrq883gu\#Z#v]ڽ oUC'!FWl8i=NyިH빥a,a(&7m^Vx=_6B&5,Ëi&BF> C yͼO&#?Gn׿+ـjgVGgtX™I"~tGSFh%// |)DM.psWMۓ@t̅,ݭ{ʃv7~ O&+ODr9Trn. DٮnHZQFZrv!vm6*m`}7ͼO *>aq__{ۛ7K}Y= !%u$ΙEC+qMоms?8W`_1kjuTc{q̴%$$-ҽZPqJhDY:kn\ cdR΂k*&M>Q2[2>mzEvjT~_(Htuu^^^npo !{&^Suèh?:Qڵs̩gc4yd*UA3 譼s7H?-2+ڙSBj I50p)"P-PV)LѬN +2Wdo]vX(yW3(48n0 !S/o$= 4y(ǥIU3'1r& r s-X;[Ba1@ p鷿nE<'LI~L*VQa4+n%^boSӯCSq1m97?vkQ}ɓ'1>øe9s\a}MM|VΑÝu1NhI'^U˪C=kN{( 䯎6aWe57oxZlNx//kgfk털,mTΎQ1@"d dsPÖ]8+N0m-߹; zAJiq'7@z7M#adu7@0m?s}Ee*Bwk%S=.8i_B繜ɪmڮg?^K+OQvR +tWfp&;w™N80P\sx xT:2*P 3;yCTc FM&DzB˗+SDLۇqHLE-xYQouA{|(v%fQ@C!]dhs*vRf3_QM@nCF/Cy8$ sE%U5[K1"=p=QwvZLzlQJy?7 RʕdBD_ ڹ&%=sf:.$=VЖo# y$m@V^F;cA73&c{YhDM.Rm׍֠Jvq +l?>o?䧿xi~ +<1=+]a (2ҥ g&s5'_oԳtp0* +ٗ% +@@tˋ-ݓk&(tf"8utmr†nVx0y~:99˒hk"(\P3C)j&87JJsw~]=Lk}~؞ߛt9ՠhS@_Xlt'{&N-T s4]]]-G[-|+ ڹ&7ͶKʙ˟.gb㔴4g>k_T+Lɍs1ӊqm(eʶ1yTItbgWK5MO0N\LxHn9wcnh9gNb.sոNgڠv?4ߍ={와ny•nR|r,}o݃(48 q[EoZ<&Rwxn&(eݺ:, $nW{m۾z4hk38v)M:1_L5A0g,)CMO67z}L ?UO]:O>ts)~j{aߕnMڵ hmdx-| EGkcP h@{vq|IL&<@@ttu>崣K.L20?84kpfVF4ÞI:<$ːxu$LCmŮ#n6|sęMO6GEj{@*,Lw} +wZj?mX\ǂk NFʮjH@ruu5MND8@8ڍ"MW\ +yqX|5}#{7{M.\ׇwK?⡽!LY'PQvvL~\pvUk99 К >N[YO:wlaC'}=U$buˎ.]$BkmtUoȳ1q-hPddV('i0,PM]$5cI!iN- 3fo&}k(Ms CV:* hJU:y|4@k&^!Ի"I:Ko]43١LNWAgL2^@?~}t7C1K+gm徢rXv4:nFgy\o;J_GéNoPp=#\YY)O&D ԎЬ<W-/{&(;<s53vMbߨ/&vFMk#r%L& 26 +)4]йwUdó'l,U0_z암&_GN&ey_@ *߰|-bU[ҏ?ӗ }*f8r̵w$|ӽC،\G+g7õlR6uv @QB/yeI`(@l $̏ 5KծI\F~4@qn3O@˵7ݔY*øB:} LR\ 4Bu _UV.tmRvAG4Йщ\VnwMʯ>UoS1xfDۜN[~29*L$>tVn4FE[-4 ڙJ@GN(nœYtE5S32 $.&S?t~Fʥeu37-Z;B :dBcʝ]2fbvagB,nKg5![&(D g?pϩK#BkGhֻ"Т3diNo+tfd:i$egA@k7MК4@pş]ŵN*/K~'>UFʧӶ NN0Ŗ=Ђ+͋'*OLϺg`g'Odt S_ѭEhwE-qײ4+T*%*vRT>W?֎̵ݩ#-)zVh~9;^" e6"#agw h{n?i]όm@G@n0ِ4'_Qad1_~Ұ7ZG&X6^[$]蝯qUFJ\'Ʉ4P; hUt.CUrY!O] V˝{:Mj!K"ؾ)Ljtxm0Ίq_ o [Pr@N"W֙lne / MpgYA>~go]L0 +c M pXA7wMry&bkܪ~78_0B4 ڙY@U_T v $C8W6+Me2e2zw7$FCJ:S\ Ny7zL2.U@鎺5 n?ÑzMJ/'tnStwB}RSwqdMEYt7M%{׉PW^) +A5FM&Dz_jg6 _=%8J@O l*hj`)d6MhQ} hVZ,8{wڇ~wYass徎c4o6;z4M3piitkHS>MԆgskOI+.`FM&lZˈB%@TЖsP$Cз@ wy,sHRԺ(۟g'uHaS-;\~ڇbdkej=nqhU2~W7P K.;]оBc'ք_1mg1^Ix{O Δˣ+ ٞ|0P Q4P; +hA8DAwLbr%8PM3 6 UQ Э0UL} t{fzI3ݍ}<zpw~Q{d_eSvkRGE)ϩ[b &,XH/lV@Qhq@TB@+P\y c"۾zh2ZAđ + ij@_m鑓[(\Qn1IX~&4(kw{#n\ݰ#4! ~`k:iFyku"랁qѕc> ϻ?ǟ|K*po3Ʈ0C]|O%;tGDafUO؊ ^I*N7^4H)WWW4-DzjF")V.8uOQoAEip A@W>/a  s͙WC kN\Wf"gk29RY@YVBW57-ڷfGe};IVO}f_My Q  ڹ&ѰH(q4 MF< ,M!b4{uCjGG=孭FU@?7^2_ykW?ϬϹ-ao+Jht?!ޑ¬k:J?Y_@+++ɄB 4P;t +$KL4ԓW9-'i\!L-ldrVxL>x6,n03[I??ϬtUmӆ rOulsey!tmL 3ةמ U>3* + OZ#@\Щf +AC|uQq7}XA)_ ?_ f:i71NνG"g8J:_|n{ %CC깫 H"ż]2~ma:߻[>{ +л +4P;N%s7#+0Źh!ٵ!gppX D@=K שFfzS'm!+:!厶 %}-N1ރ;jq|Slg?xϩ|?_~ɰBsq+]y@ Ʉ$ң]:b^q3Rvψ -?R4M;4P;Or~_ĢR?ƭЍ6#7oCg&f:ʕ;HϊǜɎ*)}aˈڻkZsR[[_aІew5 /.G񹈫} +-}gR4+(dɄ;t=r)[&xgS gΏ܌Ljhv?nG䙉F &N\.Y5ewDQ +]H@St&[i8)|cĩ3ћa(v7OӾ{1T@sfφh**Q؝'*v)Jy2!S Ԏ1סθsJ@}T3.Y<5I+/܈P^27^A( 輕f\^wκJa&7yh 'i+ApFE<hv>+Iǀ-M#d;S3M)nqy ƃ|!=A[QtmOb_+}vx3Ջ{ +6_|k>zkg]xɋQ>Zц_]0pP1t[ _3\%?4MWWWQV_:@@ÿӿ{I#۞F ő#1k:]1W*#/sb"&ױfjv/Og5,Ң)^ɹ +%w>Q'/4D5k¬/zC/Ly‡n932FQ1hvĢr@9 l mw^Q-3a(Ɛ+D̜̕_Ss8'o%{E)'_^Y x?~Śo/=_zK@Z8R{ܹ-I@# ;=;8>y$&jgn\1 . -85euݐp["7UվfNq:[ h鱵d +Cq;ދȣ>YJd,&MuY)Jn˒%ckXxYX`a #[Z3]x<xdKc˴({&ikEv{<%GUfFc{WQyF855=~> +6@g.<j\E5y~QԈ_RuY gإFjewb/@,2QXyF[@+oqDK"KEo窚kjYƝ!ŶC@SNBhb'1]ZsO}upCk{,ycN +#@dy>nQQ (]a]*9݂/ϽXCaHNW(ٱL(Rիs<۸:{-ᶳk= C=/,62e"3>] Z‘8⪔"dOPM/3ͤ+}/ >7`RLQ4@ІECCMڍyk6bŔ +Am*}Mo]bkMS C /͘/9"_͹ 1'v3Heϟx:] @!趪/"nܤt +@lݶ?Fs~ꥵodHa2!a1 +ttxo|0Qv^mUF33xr&@[ej"ߋ2.$&#+QſD1WԼĄRqoљ@g37r9!RFǭO: woʺcwM)>q_eGз-|냏ڍ B̻߂BA P:( +CB}Eϥs-U9ىǓC 5`NvOpe~[ol7Ge7 sդt(v&ԹOb9yΗ}|[2&|@-a ǃQzsl5Y-x_8|i/^bҞϿo?>vQ޶Nt'o tݯa)eY*B_CKێ\GԺ3Sv5Tab}hmz4M =YKO:eD^6K8~ǃ_Px*uUSP ZJvVh4zG (ʕf\=u]]7a\MF\S'\hxcit8CKUgHô5.% %Щ87ѳ%'E6%ٖ/V}alͺs̏'/Iw%ߎ}ʾAEn(>|KT-O9{nCNOwwXO}c(t_}GMJnG@tȯ~DKOFQ>ms AH)FF@nx!(P/ ~Wt8,+0S^eXnΰ0&IfزzxH9Aڃ9CFG.o"{[~c*>祿Woejϰߝr}8SmbB +Gu)p/w1}̚TAO??hJD~סq~G7q G݇oaRʕޕ oQh+!P J)N G\o2-U890l_bwT,0tvG M׆PAlW"ވejS~bTLoDvsBTE#=9 [/uin&O)*Ņ$:]Ӽ<~79q Go⧎Lvh-5@KMD4EáCMIgů ú$nq澡$uk(JOswa8L +"Q_FqmHa:jYio4Mj'\?#[Fɍ@n/g +S+ >\>2É[8 og FvL!(]4žYeG*asC TLs=Jrt53,3no'‰fs_{Yʄ{c4@\+e֊ yG (tHLtSTԢ4Qq.> WҬ;|5z 4MU"ٶ 5p&A>[k8䓷-ݵY'>ЉS#FBnA]:zO{wgLXחv(4hҹ+stU}$z +YpU3!e/ )HΝ9Bv7-嘠>*瘫F̴t{wx {YMcݘ%[F>S|k͵|d?v]C گ‰~Y!'G@ln@ +4;|16WF7 +C9aԵ( +3@_julƸ3Ey쭵~h{n Wkٱx:,ώ?z> ^V4 +=EPg4@x0>'R +Tc-{fE) Yglͺ!f@_ M!ZڞVJWj~_,8<]jT&`?DGum3uFLG? +GZFOA?;s!]Jsj"bk]y^#Q0Fߐ k:>TkAљG +EʭjڸZ6/o10&_Ss@FRF;~_C}'mS=]b4@:44̙LhNMTv6 MJw4ax9(Z*l fs-v~YiM9SZ>Fi4g0{ +Eʭjg~R#۳?CS鹟~Cg?_,ؽf (]'Йg2e +i8nׅAuR@SIyY.n{Iߥ .E(}Lҕ 탴]6)hJv#];F֜q gZV V +sU;rYXNm}EДAQh@SlLuSUl`h{ j<ܥիr^JE ھ=zM/%gٗ\=pjpmGT ʹxdyߓ?qW,K/~WϽJ!h;WOU0`QḣΔ,t3fJ*fS]n2s[. -Xk , nBm7871j7<}"Zk)%XE+KO=4YjXp])Xq/6П%*Ș`ZV߼~T5.+m6vѽK.bdORwzS^[]OvB#(5/Q#X#[%朽,3O%ή9]p}o3lݓ>[@Xd.5>E]oNL4M%ωe~B6gR˔xDh:=>k +;4hҍ@"XQ/9$} ;001QzvМZT"1>~Wy҄:5Χ4+0JU}Egbڶ;Gƥ}mZCmص×9gH;?t1 @jJ*BFU1j7零$<ԥ@/̝QM)NMt19Pɥ"u+2p<]UB0ӯ@Xx#TXP0 hڶxŠ__&F7nuSlNPT}gKҺJ,E}f4@ )p@V6SǚPvpņE\a s'?'[pm*}e3@Qh/?eDjDoc1T.lMɾ0{pdo!|uG؇U,'n[ǜWM*EFoS 1 j^$s" ~7}(\M̺sӬ;LytGvQf4@f@S1=CB(M}EM C/{rΩ[OZ"fu#.U3K׫Dhjޠ$5ݚgr'~OoQ`q[f#td:wM47ͺ4=,>2?܇>2`j3!&[2!hҕ@&(/P̺- +妮F[)اnfCCXx0I^kz 3jRY/U==QiZ'5\`rS£3ZH(J|/vC(55W)&t4V Ee4@JjflNE!T.P/m\˙}9~#2Za'GbzCWl$݅cR:us$5W٭@Xw/~w%I&>aP_z;ƽ +V ]4h4@f@SL ivq*WY*~֝ +fW>t}ʆM@S6jBr`гM=S| ݅)2hʆ~/*#9vzT(4hҕ@[tah5[[2ДSWF}P2;j|GM(ֆ+KYPpm/v9=:G\qܳALj ^?.B}q=/gIJ[6 +toȅu*CstW~U_61-1Gs; +zta5a^N>V,k?o0@瞑q'G޼8Mcuu[ w~{ocW;ݷ*>uЊMU[qI.6w=S(L+ +4kB}9.d_ic F3?"qmi@3\JOP UWg^]_+VhB/--Ϗth\ &&{>WDǫrW; нFGځ7/>w~L[䧎޿#zFQ8@nS61a=t@ J!na#+Jgi CD=e.|m] O2Ǣ+(\bMR˜6@S>ܥvE_䧰!^vq<ʄJ)^7 +S!Llc趎r$4L}ͅ\B\MסZ鱗%\_sוw{3nyI8RƫmӘI͌@o +9_z_=W?a@H)Fr4@6hDbaOͣ:;l_HuSSiZ0uQXC#eBs^UMVVԆ+U6DȞYطY0m$U~ߜ]Y{s?sԳ'}f-`?W (YʄB#(F4f7hg-0s|2b%Td,S +  "TAa k=t16BiQ6$tkD\EOF-(b0yF!yu}od۳[o]LH)WVVzW&`4@:4?3Roh懣QPmn6Ьg .\pj:USFvAڣ:(XhZ'4M@3gv|*&>\A'WTkߏnXRFj;F@ss<>h懣4@ۍ=趉S][VtYq⺪Sܜ{"KtIs7xi8;_|_<_v A:&"+ȊV&KKKQh@sfkirg[0[MK325.2@nF~J4&*[L-J e&d08;9>۸t!h=PFD;s8TP~xQإ++++fG@OSk@YGeLl5^n+:%ݞZnD;頮O_O; j5Q襥A Pt_ڈSGX0bZ5UK6 o#39-\W Bp=A+;L16ez6=AsCvrh?aCC?ͅz2~ @9}G8nQ+#hRL@.6%MUin!heDb>v#҈r\S uĸ1*fkUxz)@}*jSNaй2Sf+@_^v˗7L7a17+2ɗ!H]nrjݚ3͖ڞU֕^T(r.vtRcmq 9dϾ^!njXp@ʜ[0~; GǽqH)Fբ/_^__haa[oE 0i*1&--u7>!!6ud_U:T:s>qNj9g@?r7ܛ[)t~&a.eJU Avnz00 +M4ܿ=;K +`0Uxɗ!hïnp fj>$u\K箖FowB) ܇ٜ㭺&[O?ofFh:+<=Ҿҭ΍nla}?2QRʕ .z~~[nY\\jc`3 Wd'W&"eStqP-Fh-kyC+8\3UJP֙f5W}o+6X5C~cȆ`,E4toUas@68fgg8 c.iHY@/4SKגWsnq7zy Z]7Z;X5z޶:h"\YY];cߢUf@_S])gn(4Uj = f#Ml_(MLqsź Ӆd=춽(3ڏT y_-?V:ZGE"^ێPL@[nVh;㥥z}Ќ9!fGQsɺcm +Oy]}[i?^h&O(kyPnۗ"\K盪cCEZW3-uUmsAU+bdG7Or%:uhd]!5XnhżӼa_t6a2lʇ>Mh4[ AgC1(ufmK 8[2Z4BZ-˖'vCZęh5Ws1t51 l*%aYBKu W !2 >aIð!]`JϥkS\N~͡y!l`ȭ xnvږ_ħR6V} +0X4Z SsfԾbcxM(;f.PV.e.G܇>WO i"4ԞB\mFKړ؟!en*l:|4ZK>У Af2 +wSg~<:? +ZF4 'nບiHul\;vE[WUV d>֝dӞA=t̙aރf"reН䰤aXnЩhX;dh\jf3CЃǟyRkE6czG>V^JS_ٜ ۪¹ LHд!Vj 7N{m$b/;"DBAs8ᩩę^ڢ%u|%]nj6QEx[Og5П>v?Y4 +M4F (~;pj{jQ0̞`ʄTƙ"s䠢ܙR@ {Ŋ"WxJ$!fʦCLOq%z5עFV?'4u yRn&ZPFGg?};?}Hc0 + !(u5rԣ6/{?jt[Uuqĵ11h趮R|)D.({0r +C&c܏׺4Eɡw7>θ) +z?֬TG_Pt_E!|Jk'瞨EЖJ9žsX<-U]S';L+RgƖRSHh#ۼ=Eӫj@<}u&mUĹ&w6[1۷ӧ;ϾܺwO^k *"v+[؍ǫ>2Vh4zGu(p#@ P:@}*:m[u=RGq>U(ۥ'|C- Y4>sIsaoD> p@֎ !Wkj),97xK3r{x@ ;{X7=̟?sr){pi" c_9y(; +:hvgF(R՘XkgF `yk=ӊ,a8rhFko6L4S %,[gXݿy/74wˏ>mmFA3sp,;>{_vq n@JW@S +iaqg4(9{z4uUXk@5הD3S<8@tfڨL-ZhJ g҂pk \7>޼N zuG/{JMP<&G9V\ݗhZNBܘ@08-nJZ䦉)_\W@KI㯪Qn%} 74tnfl7;]yWvl_?μC}o?ӸL۹Qh\?j$m|xṉ##oLQh hД,T566(U uz=M@hiظy_=k/MT-Xhd^k뽷 /h۾ltjq;ȱO8T(Ao+ʅt3 i8;"jAZ ՍŻt,*?ywЬ,{]ʩU4 +T%7`\J7Z,{Z/TH93@7e}MYZ7U?g*3}ۥ+'J90 + (LhunBijGVE 7 -UlQz6;~|vc*KYC[`ׯ_o4q///ceB4@f@@kiUn$[&ib\/d1ՕNM} +vп)wgkFE+%BdJǏ޿qY:17V8jìt)ص|5_t[NkA8>gػ/n4{.~JQh4@\q]Ǎ:4ҕuU͔ڈpi|zX"=93Rºj@O-31$yh;S&ޱYEm% 4@\͙ }{N6$:z{3(i|s*ln247)L؟q*vF3:sFi.f~~;=KvsVj4KKKz} +B P:@3A;ֱf:5ۛ0se*W -T Q54g^^_m9.k{6Wlom>{{&۽G9K#~܎Qh4@:4gyƟ?rCW\N7ø+v$"J3}MI7. +)>}k'sMU SFnN:=`7yRvxqO{ărm3#^ngX`@ PN|]Z~0hMZ%FiOFUoavc.SB-TLtU ^Lt­::tXGHOc@ĽGxǑRvo /^RFj;2!΁t4tk0l;GjD0n':@_JȘ)J p=N2e +Oh#%Ђ+CʈаKh6×oYwYuP2nF\e($7BmK^^o>_)(>6?gՌH)WVVzW&(4B PtHLd cakʋH25UKLl92˔;g/gN9hDZu }X2XOyt38o4iw*|)7F?fPl]@罼/} aOɷ?gV&KKKJ7<(Yn(6DۇaDO@sfvYSv!NM}2aA7W)hM2!t> 6Z\iT8g:7\F?=3{c7ןi\F7=wlM +Fv)dc +- ;uq)i鸨#5UGj@l* +Úܴg܏C>3\HcO7u|~Oy=掠vV(>m-ܰ@nƥ[fǾFۇ-\њvz릮PH](#y_fErg ա-`%/Kt3(}vl҂#:}g{ʓjF(R~C;hҍ@WRX19Ss5mptULtLC#}ժ\d"4P#_B@O,a+oNGEso9]SШJJ7Rm1g*}ԄԆdcT ř #WjZpmOHsUqi{(ÐXG3owhFK'e:}eU/3eL0kJ7RE@sfB44pV)LpG\Iw)SiroZm$z(bO+5IK717/󜰷H)F(4@ Phݠ $08Rf +14 +Ԉr.5tX>`B Cztv&z3?㋵Y_v;Bl=;T $L04c(t5MZk+бÙ\c6ڸ7H)WVVzW&(4 (\].Q2=qisp8ƥtuUgŁrNA&TYf&zR۳,b%`o2Uח0 + P.sa^٠U~7*M] 'Dд/Oeu-Yf;n9Н3EJ&5s͓^0 2Se3w +'G*B͕ p<7y^Q޶ރt_vc.\s}3R7bO̷e2٫Oyw!р ZF; +T pA P:cGJK(qqIKy\mdCІmdB"k%ߐLhOM(48Jt3g҅iZ8 !njjfxw2˶v=P}'_k(?ZθƳvq &t.~R^rSIt[W1 4+^Pv1<? +sy~I)F(44@UJVheĺҾڢD!C~ SLІ_?uK heBBL4@:2@h\(wZo{K,{nTEoW!N߹t,pÓRLQhq!(bg5̍|-d[hKCnA&6&d)6") #B P:'L6`Miw]n廞)vgоCw q +Ft +c]ՔBQ/4\OY+ʿAO~m{2/Y(Ao[n `A P:n9S7tElE G[W]ق qmKuT*@ΦuW ㋥fP; +To hҹ6.1_I5-;$?B]mԾR3hg; `L}GQ0hҹ/˯+egJӾS3|}-6#E NL{Xr;8^^^ʄ@_|_vAK ]/lXp6_mn>Y;YO*oz❷cLQh@sfb.Cܬ OMlmwNG2ᄆq{\b+i"Vdas4,y;s?[g]2`H)WVVzW&(4@t.~eyɧ6eFpqm K[-0> (#79@+-"?Y^̈y΍wh{'{rTPMskS5Fsnȕr؇1h暃&z/u Hu\sޏ+:v;2}tso]>3аcB-B/--+B Pp_<7Pt( !\f>\ۇA Wٝ5gDǩMq[=e!i2ۇTӡCӣfS3>fr~Y(4h@n#_|=pg{ʠi9L 3J:JT,v-NX: C&ǭnQ͵0Byw!ŀjxyy+t?ʽ"c.{аNuVgg +iqBZuu0I=V cO"#S"{G$(J0Gw2`;66c3S}^RNwmMuWOGR}TH^4] 3wm[+fNRvHcņjz:.#ߎ +s pͮM\̩'NdFl6)ƁF @p/<ԛ,=>"K;oBH@3n +?pP(VWW'R +}\_|~VEe9m.\eXhmoha@wN(hB`97z[OB 3FlR +zC_z5;ZKM-c9b5VHa6fXJnD$k~?Kn 4m 3\ү~S|)Ɗy'TYǥ2VJa4Gy9s*.bC5ŏ{p@+^#u !,gCt_G6jzCg;oF=H:&{ͷoC`zFL  +iRfh?NXkP%629RE'{yzv3^FvF/M\/vuDhlh)48@ }Nw5N07XhDje+]5;q3nqe-WYLj1{z糡/7\q<]CHLwZЮ*ڽW5Ih&C)vEJ@ܶ:ʳ/g#)O&OpƊs]C(V,ĪuBo|? ;_ :p}9&BNdBJ@g~_xy5EmCS_ eؕZ䏴 U']7H}l-gͽ"hh 4dBJWnHD/<=.H*+ed\lZPzG1ٳOK +H/[Z{=x[룍1opqԕB Rh2h@yG]&)s9VVNi#t^vHlj˜كȾu$ջqÎRh7}mP6.(ϣr+.NltysݘAWmDٻo>sY82Js{H8nHOq٢T]HIu}VtKܹȦƿqݧټXqmE4i^̇N.- 8"4mۃfإ=8n:ZE u1w(yQl][Y$*EXAqWwhk>{pFL 3v7<~~QEeYYi\hFGyNeEX] n+L4fp{o p4*IZ-&b~nx_ /}GX@H+nJs"(1]{a=]@-rُ<́#B)n4-/R +" 7['ȮX_ ׅ6ZxA*7(M+2dkCv"Kmg}ٚy xn=ZZ]]LH)4# tw c\AWh_ ZEiuqP]3@O] &ٹ2~RhAS +P63OX[˜!rvp YNoRCX+dBZNMzX9pQ +y# 0t>Gy\EHaunء2K@kIYk ,gظdzB`ԕB/p@ܨ^󿖑6Nڵ"hkEQ^l5K*RAtgřuEоy޺ƪij2@H?~&{zyyyiii +4 +/\|gc7[wzK3V +Wbfh{m}Fl>ͥ^c3(tnT'cuB +PW',|yGԟCM\^ uSl@Bo\  q5yYB`rJݮ,2#@ܨ:sͿ/Z^Ly@so=@|B'odo`V~9L L&Dh!ܳO/퍏cc9r@6c1O cW=.q.\W>3P:0؟rEJ1/]γ۫vAνo=ΙX侸V-ӲйrRj924.a!o)vEJQA @p;=JSf@Bce1/m+e\CmE̹8vT#zL ɄFlR +9!>~ZfX5I,X!L}o=kquPۈ^\96<7^=2f!p (VWW?ˋB# ?9Bc2b->f'z6е0lynZ9ʃf:WJU/V]>"&G])rnO 4M@'R Ţ{%>p6u*~{7Z;ϺDJg i,n6Ƭ(h!ȓ+ie1vELl#1I@'\uccq#݁zAsv\ 9op RhT@=瞽pBξFy] 'Fܬc4'*jgo-62v7qrqPQ^;, `*IZ-&5ssd?˄- +:>)LOѾ%6r^Ɗ@ǥ*l9f6OOo{08ДRkkkE1" z_~eXLR^, +p8ő],>v􂝡 t96qu|F4pP + h9>~Z,FQ\,Q@gkE<^]we-n:s#Ol+#[>}(o B&w>GZDfhcnys +i >BM7V}Ϲg/\%1seξ_ +]%,jU1/H嫧>~!ҦTW +ۓG¼@XCϽLuD:vAp>ЗBlE"eW([hXp@[dG44M`)tl4{Th+~_Sߣ})tG/5Ry#|? G3'~h nCKiq(@XK=!2ZJ;.m9[V ]8*7 96+ԡ4pD*IZ-&7V'Gn;(_ #ĺhTDֽI߰¦#GZ||[Rn鶉B&7V9tqnl;34+rdl?F}w.>F)!F @p{¥j2"+QΗ0Ƀ",?g}Ph/8rR )>n^~ܯg.wc\R?..ڍuˆ34 3FlR +}@@ܸw^]3υq)?GI5⁏く8(>dn{=;юEЕgk]mv+Pm# #~wv1̶Rܞ<F @p+2oOh9tzM/<u$B W-E;g!i,n6Fc +" qhe= 6Ke rga\MW9;0K̲'dh)48h 񟞻Veߞ065\iԥss|(U/6a?30\e1IVd&Ͻh`gUF-F'fWQjcYp;  RJ4MˋB7A}ڧ> =g" ٺO]FUjGtn[-4Pn2!4M@}'.6;&X4o\c6q$Zh[j_fgnFSJN&z" G~YQnS +X*mb_YԂ5}+g""whAϭK[Π@G])Ϡ)on:v@RhccW%tl#&6ºJbo//2o4M@dޓb~4#m\Q&G.qYsFZhUWo9oT])rnO nkWjv-7DJDFʷJ훣|`/cƶ@WN(t4mۃfh]]C @p__?m6~ZW,:b1u9̓^']AICKiDZO@dzzmYroltܺ¢2zoZ$Ib2" ̱9߻R)N38_mhxtٵ\&֯RniZ^zo@CػA|`zCrٷFkmNrø==`ɄBh8ŕ/}K5tXY.cqr|a'/,$w/|kORjuuup2!>h8Ϋ~Ym11CxhE:|GC3JK;h4MQW +Mnk|ەrdEml싣G8WlTrr]WN,2һDaQ +nze={On׏IcGD>b.xThҭev@ٓr.-quU;n:>]d>qQxE/"6y]sv\>rU4$Wo1'ٓ`}bl4n4>h @G6&kϚ}v IRhY|Z40upx;}CO_:I/j+wF5;⯚=A @p_ŕoE>/Filter /FlateDecode /Height 469 /Subtype /Image /Width 1920 /Length 135012 >> +stream +xk%u߷OUWzQ0`@aH""RҊ#/&/rl !~"%ZPVJDQX^( AA`03=szݺiqVz܋_oohF +euj5_C=ptz^|3`fbQ!Urp`7}4~{Yh p=s]}ʼXM|7;:7'tM/|VuL-o5̯.y1s?k;8~Z4N_EcFD8+< cy ķYMW +^ӲL}4GM뮎*R`T/~<ߞX__q-۷[o]jAAAᝌj. gyVC +t[tot)@]*Eqs2ؿ˛'t3Q*zN~pNgݜDS,s#h?{i``VQЗgM#FVɔ +h?\LІ$'mJ>l ִ}Ը +,P@І2u wkQ沩m:vaS^  I瞎x#f&>dhAAAAX:3h jPKKBTK7_ +f71$Q[bM4w)X)3ь r,x+RP2ERKed択?խut:4 +詂{^{t. :n;Q6^u2׮5l+=`t=vYeW莅׽G6l}^?q~ ز宙1Tfy7!qoɕά:6?_>v|{#ZAAA :W<{ x4zm !T攍U`=V=ο\/t 6 +FSLarqK}҃h +hR$DM{$XiӾ] +zWUg7pzt턪י\9 unw'@8 /_o(j| KQTMl^]97cR[.5W5X@A 1}F:PUyeic)ł\CFVm|=.7XEHNzle*hUE(>)\j VkVUX |_ 'd갶m̾\lhsH.qVDz&{pۑ̶eAAAT@ZURMXB&|n|MDD<U 3Mh%f['Eglmi3j@@EPUW;wٴ!P1:+sew+gϚc'X^ÙcB%ҁBuYCu.֜ DOйs r7ye ^rSs8ri)e + c^/o +TD h*VL2:9#wRCm#.#,ιu?co%8 ۏ~;>3!ZAAA TFzR؂] +sHD =G#'2E6l0,n(̸7Ծ\ 4_9Źa4sȽ$Z R8ͽ8EZCч]GslVyPVØ+&H!m>F@S\3`ddUV: +PMYDwj"Z ++ͥr&ط-\CXٱ +2OH'٫6_xMojo.Q?\7ŊcE"9+<%R6V@+\;+Yy}P)g =~a,E    ,q#e\]^.`g?nB|& +#cs-g3Yks%xJmJ1LM0/7'Y@lq1΀Mj98+V +G +kO.Q\ +]d=uvvXL☫Ŝ\d=Oj~1b3 袪1CD5Z`6o !c0c +G8 +N(Җ rMl>slZ# mt+8wd{<ĝw<1FK'3}6ұ^׍%7B +c.ߩ*s/4RD@   Q~m`f.7NIAmAtJd|m$>\ ⻾qtfRɱV/Y3,IXac; 恉JlBrE.x)fsJIa}Peo^i#;|*L9M| f|MZ=ObUQAF?pT2 +h!EZ4' 6[N +{i5:l;7VO}fަxN˾;,WPZא5S/vB4;*u %{ 51*+ΖwU+ C ZWUt2#R'=@[wyd)!sTM~WrF @<ׂbRD@   ž%/i!0%u6`xů/R%#B뎳 ٵ2i!x^,$V\:m*m7ښyXқb>`ylYBG'树WL&&^4Ć d ,ev( /b, hp. +f<_o\us +,LY&"?/;PsPm~yl{qw-mw6 `ZXqø0 +ʘn_;HGuT@JgeyC͉| +Hvķ?](E ]Pkӆ>RI)X&6off$2eql 6U+۽G~-   KGo5_Ƒ}CxǶ|8KMT0e:7_YJ)g/Уy$h*O& l1<:0,)t>3!f[ +iP9#wuLR3 h6rg`ޤgȴlAi.2jZyCʂ=Lo0 fܾ}F@(P5ΗHk(s;T 'eiv3π6g 8ᵻ͍Yv$ϩ~E']6U4`??^|"AAAa[*h,A%@fڿQ_G=e=馎Vq_aH)?}~@I4Sl Ӆy-|OMφs1& om2wu`EI4Gn,! jH،︒火 +eTD}VV~vG8rڬiL*}sj+ce9! h/N"lW@z# +t%Lc}͔Ds^HsYz=n{H.|\H^:lY}Yr?gï2Υ6% h1y(1P%+cE1Q:|gKSSCPᄀJ)¿@J[؁j={B`ooM Lx. ZAAAv"St>n|99xZs&C9fX1TSl @xnI/ +nJXߏ׈VnX5r^d8fY^dg-7斆|fGN]Fe?>S 簃IA0h/R_ 'd5AI#[3z0gǿ|h9-   KG/OΤ;l%S#*k:ڧƽ[+ʖ!oRhJzj:-@8u5t%]>陦Gp.EHQ)4Uhbpgc3_ q~"hQ`~Mպz wp'nϟ/v!/ꡪ䢀W}C#`{Pe45* n p!v;fMi4aPs t|_'؆T\}}6XP4mݯ8.fӫn3fI=4 b_@SN>+|neگ\.>懻 [Xdw}ZM?[~}]8w~gpmӚ]-   o?J4+??~ ڧ~c:\-Q@wfM谥هze曻ůK7~j)&q +O!8#r52W=aJ3seι~`etg6C1B/|+g5d͑ +)i~ːz{!"gMe-ٷ_N5f]tn hUo1{)v($!$sM 5Y\Lf3]*g?YP&y%NzEf`_y༚Lw[n@`*p֓ޟ4/CYLBwc"}SU5ݪ̕?7{ɛSslƗéĀv]SDbg7wsu8]@58ycNkە3SC +0<))D{c$N3/m~Ȣ?hR:/Z_:׽GJFKo)_ F0gĹhAAAA؛L~.z1 cVTkQb[( +K;*iA%X@fز8u!4@x9R/TޘZBr4,}zN@9Vk 6FC@ għzm((i_Y:vV Ǒ,9M:mR@"k~,t!7NqS {OPj ɪ| V$^uVx2PдAk7.3<7д]򚪳 ̟x-._ +Tv?'Gc9!$!P?Ϻ~eG N-C    ,?=IMgǫ$n!xZHDw06$met R0ҁRzm-~w'wt|rEuaZ k:|P5'd:p~?Sݮ.]gsa%sT0|} ``r`r/[CdWهӢ.*ϡqt/kʟRHB1Z3_Ac9415 riټp2;iӃL@#]]G8-!ʥ,1n>B2JK?|+7<{ދv=\F    ,+;C˅CP$ڶjC uHn@jTx 0vuҍů/ƺ^WAb?a?a2x UX=x: d#zgEf.;EޕJN?Wb1C\c;\?CJ(}b.S!_t=a~j>.ZAAAs|:_CmHFh( ݢ?jp f* +߁8Rsa-blHd ¢Kʎw5v`kC:wQ@ĴdޚsSz D[Lޙl66R]Lx?c}ʨoh AnGY" ཈U.R쯶~9PBˑ-ny5GEpӑ(.x.TذH/?,A~'<Hl-HsڼK#H96 u_LW`zqͅCK^]es~A{PuNw4 CEhX_5o +h:Ŝz2Xj7o 9Z= xAg|2k<wS19ҭkw=4)Z ;sn;E6-ZAAAΜuJ2Gm!u@RL88ߔv^ ǠN@OlAkPC$, " C7z3C6O _"+^.dO9>/#[k<{*kzܙC/}}jKH5 +hU-7?kï$)c,3PH]#:-cdo(Mjo?"-   Kg4Ñ 6>9n7]f>jj !lCAQ VaM%Iܧ: mбmQ8f1M h_3giDõbln`&;P$FQ`^%j&Ej@|\TdhNFw~k>~srfb9Cf hK͡2ݲF/Cx8($9B+7{2:yO6N_]:"½ +7'474Ț c:ۋlZ    ,:t_(=hI@Y+J8sSx!:TAwNX +M TŜٞ~38J.BJNx)hmKlɺF=ӂytiKeSEXSCJ!Y7?ȻLЭis)DA/GΥ$Ҧ@}16RvQ3G9 @B\նCb[GҭW~[[*z=rׁ:6 F?UkHͻ~*Lxb$0R: RTj@UCVG()'ڏSc̉nX&l>f[MӚ*ECw?zMV҄agz7W=Nyȕ:7ְcz'J hӅ ?(E    ,{p Y,Fn%LN <|v\/5JЖZRhK8/-mŐ2:R ?{1\t['Xby !.h~=jK*懾stW'Ԑ +$s*5wls^4^@S18-=5[_͗_v38xV1v~/c^;5-   Kg!}n< ܖTr6<SCd0 qnkZOen뼆cƏMLؘ>N>3>mJ tjxw'jH5e-8Uڷ +* \C_7ΕEpMTwH1qU(;kmUx#}gl!}`-?r$W_ku>Wj}ZU3D5g/! ǟ:v{*ZAAAΜp`l8"+}B})ڿfu쑧wxU'D)&@P΄jYdQ7guGE¼;d 7 +^DzB]xo G:8uf2t}ٯq-߭βe6$Đ*fAh}]BzYQ@w݂hAAAAk,$۶vǗ^o! v_ShHUL~(lTClK{X~UR&wYn o+U^4}ǗԹf~Q05*B6t)\Vsyts OrW9cG?5NUQ#9r3xdw(b5j}aC$ˀ'd&.y;xb=-   Kgk!, 7vBR5~*Kw)YΫ޺*[BTJ?_#n6idgE0Q:S/bm[@͙WT1F:MTvb)#F0/ܭ]&ȡ'b&tTMҙn!ieM*C>#͸Cu~oҷxg9K eah=jiւ"!b)4xМ +-ZAAAW@G!,-'3-C՘U˞Rc*:ٳ=,4}Fж>Aո` 2zbm[mw9V[*BY٨bRizbIh~=ީxNֶ;bpG_XsgJH:o]tO>ޥ:N)tkZv]l4W@s4>aSЂ   t毀&/}eYSxrb=KBe; Zlaסu&طB䵶k1e6+k,3=_Ny$pÕPo܋M \ªNᝆ9HU"G2Z?/޺vB;0ɛ'N<ժw۶Z z}gOfIDžW%C% V\-ZAAA U@ !/kOP-[՘!v V‰p21eCΔlңtdPC@s-Py(ZfˬL=g>dܥ^:+ff -=T    ,940󟀵MXN 8Am4vRYH$Ԍ!0k4%!ᲺՓH:kf/;R}[ڿ;;m6U"S3 fJtQ5m!Jכ9}~ȳ `6'jr{:캸Z;_zHRz< 3Xl.]@ ?U=s934 h4њ~4n Uʽ+ZAAAs +sZ}a3M9ںF(&e%T,*2Nlߪ"Fb ]0뿤z6jnFdʨ& +h+ r[ڿ'0G& CԂdj!*;0FPگX—[Z@/`R܊!}(S[o+}Y5a]H IX.iqw*5g@$s\gz}D-̴y&94l0URq: 1c^;8-   Kgu*/'2[@@Uze_;LT1PzXGoPo\P3c/:@EݹAԓKF1[z;!O<7 h?,kO@+wJ8dؚ諪(5ǭ?uxY?EAAA3]@'"yMhw|K<Ѡs,`U&&dʕ$ eRd6}EbR(sSEgE-J5.U@* +i&zj=|ܝ\}ޤl:ŬӄYfͯ?00WIބ/cqc.;;qJ45F\K2G]e>5 zjuԅ/V8eF.jntoy1z^;N~`?+]։Y hk[*2*!A    )U@!$OLə{ #巸6lpNy>nLukBySUUqO1U-   ;@#ݷF/!K *{~dY:aP|l1Ew"s\<V[c*ɐf> g ˫Ã1΄$/UF}[#YϾژ˷- +k +Z!pXg#8`nAťAVi95?9%~*t h>89HwPB.^>,fA;B;G +~}?zJÚ^X̽}6U.k3eZ!3U]2>ăo9P6^Kl2T!cTFN9Ї}v .:t$f_lm/{lcgg`ޝ7rZAAA 4jBQi;~/¡>,(zY*I,#(ٙ6ob JCxtnWa@-EYPʾ6nm7йnfprTR\ vX@veś +, + ρAŝ >~<4bH.z9\ Px4$[X+lku355d P޴^M}Nɭ[Ah5ǧ^ Šмi+V@CqlktZ~sa+L/ +>yH@~A̘Pۯ܄{~O-}$wK 3!,o-Ђ   PO#=r`JXI1 +|8 p{4ejLbhk`4&z,;Qr}aFmoЬ+^edI@Uxndv;'_|?Զ^9q]Xc^o.),ZAAAuvZ$7YMɊҰ?C ׇ;'gM7 Tw\UFHbJmké:Th$S:Źm;.8;7U@knVYG%˪sYuY@/ns:'KiN<__%.*q'4iΉ t(bTA= +Ͷ"i3R*`εb^-|6Ut!Xc[Uԣ^fʮ *sE6'_̹TnbrL [إgA+hiCcNxGr; (S"EJ[). *p].MJ_u%tS'y7vN@3Kefk3;s|P    ,?Xd.c8p{6 B=Zh7pbSU49fδf`+䄍-hW + ݡ'X< hZo mTǷb[L&}Ns}?Y*Z:qp۵,mp'CT!M 1   T2Wtޣ:h[ꝩS=(}Z=!y'[ž4;%սtWL^(iMA/\ȢWG[y#Dt;m?ksI@tӑ&rJΜM5F}l.>8Qin]Yz@yh?R}7vsmxČ9T}XicB;eIƖ\ʵhY1b_@cyB+瞫k6/j5 %- u y$7}#rum +MPuۉ6Bӎ_]8Me`=[J\q]Y,r'967>۷AAAwG݇FO Wۛ t +j #8l& MgSEr`j`!g69MpY nC@ͯP̘5Q&z&mݟ\>X{av*89.#7* fⰎ^X#U"sֳ_L6_L@hBsk˹,vbG(Ao~f$jƀ O(sHeW \N aM/GtCM擀掂c-%kۣZ 5V@gA|H[w΅P ;I,:bzЛ/۝rd/qF:v wy{??ZAAAϒim0e%K01CmCiŜM'g܍Ne{H4HZ9 й SIU'Q@lXs =_O= BLZt%idMf5H93)'lpֳ_̛*ILhDnrj{JkJgް%i[K'm2g?4;k*&3ߏ` !C](H9 2EBsoRB|ߑ|G{)+jt7ݵ )n{=ޘW@Ơwoÿ3J<`}#N{Q.>D/kw?p96'ZAAAԶ{S-7E oma\,I|? 綄S ]=Crp`SE䝷T&T:JGv@@dGV΍X \W9<Ӣyd5hOa{yepb*O?\|Gn]8ʕ~WAFЙQ[Uid^5{dVG:,ÞХmI@sG +R/7u9R~uA4cĜfEOP48f3ɹ`xB7}[~}kon'}5~_( uoy쑯ͱYՍ3džAAAᝃo'eSp`c Ǔ3a/RxXڜԻ(UU2̜ +_UDwJԃzM1V,~fU4xJ{2ޙW ,&s)4W:sPW ^93˴"l?\]sph7Tk=+DwuÙ\9mLPƷ>Tf7mt^+IZ뚋bm9;!SHXCBrڞ\Pp3_^WȚC5ڱRG>9dtܟGOw D@   [1?CS 1 I{u!כa/p*ؿ5-9z0̋( FV3eT,*lc/KG67y4>x^3Wc*:g \M;D& +LtP 1ew1 Pm}Pzele:nXNƖC9pFsty7dDzu>U9fjH2A#stXSo(دα:SIg +*q0[G~7{8hAAAAX:ІaPKsQ7!°]ͽz!~,.`zIR8z烕%$}\[' +薶G*ͧ颀6#уvr1\\,QB/ 8FsĐsAtsU:_BK8TyTՉS2nil. /4nZ3Q``JЧ#;3W7^xczs!v!?uxY?%ZAAA)ؿ 1:-&4w#{K^j Vo,r]^ e;k۲jHPk‡,+Bf$WJh* `/I +Tq0iaog.9S S.A=$&`TQސj{0~5U@WFfyuԾ8.jH hnXt +$=5ڮ%1\n>zQVhz}+ӹQpOGz.X@W}t iP"i Y7eݤ(!uA\جͬ\OpL1G<8L23O;tdhIZ^ÝG'fLov#nBAAAi,M@_%!*X&:*@$>^|<9 ٳhᡖM'fbLqf-=O׸ɵoX޾z>65t.KOjӟ`i?k$*ȃs,7.4ߖQ~de\x1%赵[0hBe,{GS\uTl{!Btulߤ|=4ƽІwߏ^spK]В!   MXބh5n lCma},yR&Gx)<8+aIA}/< ûCǮ [ +Q%1T)p#esKX]·,9Nj@)3 eRA\ fS_"Β7ŷyUV"MF5IgmlΙrs" sn֕ي&J)k}wzosՍdvѬ$5תZ=Ҭ +hAAAAX:KЛ70)[Wߗ^ك5ss*ؿUKx98`fK[)-,6 =` Hm5A=n:Kxʜ+Km`Zc5mHVWsԇDftpM~auU@ Gy4/iPdhAyR-`ꡀ&7sճd>YyçnwPBa2 +1\lZ@SN4ULO$]QT{q/WSI&KwG@:S|||Gh1}OH@FN$/ty}+ެ:<\h|-خp.um)(RI:ױ8=`l HZA5mx[@SA@\q4|Ы>: tbo9a_Jo^A3!V+Υ$BM4j\κwR-   Kg9 8| Fu iAzZmHڐnBTL!͂7Ut:gQn+'\ SB omt[+Gsg`u:ϦS:-Ћ._ԽƂE3 hn Ηt +h(Vp!0ik0_sf;e&neiV掰6  }k#t~e:0Ǐ6$lQyZsIpG?[iZAAA*c^נCEC{0@o +r}WS6` K=:(.O|k9cV*DΟӱ-} ӥt*I@_zEY@yGnUB&`3(?zQYL@X@bk,im f Nj{˧gMV_+37 f7] X(D VL#`p{?lgc>Lj$Cu$Lt5c 4 hli % sSǎ~j]k.ϟ{D@   T&c^Ջ҆$e AGv ق(_L^?]V0_|V S2A*{`y8RhN>n} bcjIZP r*Ѓϑ!~:4*EiN=.jztvj7Ć\O &Ө{N@sL 'J輦Wh&X*i/#=౿x~ cH:fMj {mjTTN:H@}CHtim5 +S'yi   d!2Duh(FtB&:O&K/b4z+ m +?`ÂY$z/6}?<S "x%8XE]}tQؾŋ*svme8'9A(p;λ4WɜMl =S{:iy橗vst />#Iwr_'gqNWl0`4+b (?A PSGŸf0+l oֳҽ2Ӯ5=s#3\AAAޙ,$Y&-N/|ˌlC2*ߎ k3++HhSW[=i﬑G7U\ޛz [nV*%oXޥR*UI4^ -o:,A'ft/ԅɵ̷ڇY߼5smf}mSجsGqȹsϼקK8U6G)DeO K5_;Z.j%ߋ}]w?TX1-쨀~3\AAAޙ,Z61l.4E+?W=5J.M``I:ACGy;ge7T4ѕ/|~t$祘WUݐ{w>݊bls]ubLƞ\fL'17߻9n,U@]@ߩ+6[)~1xj*:Xq{o 2Xݫ9oіNhiCx_1YxLw?3ΔA/ksIBv&'4epyTWD'G=3>(ԂT :웺/PzC kuꠣheLOܳSXx W"IgpzcxBl7x6En5'F㻒+{V92g]]C?gpw9&o]U18\lVb9{L ̈WoY}#5gC}3kkwт    03 @lw~B".ύ1>'1cyu\/|f9cG?| 9]Ђ   /h9ZVrC[R} pzH@lf?s%G12R}=v0ilo]8h +R7TpX. +}O\C37NΜWF +|6 +h*K =PM/s]'i_rk&siQ@s!sBSya+dTMSEٱK]aC&7XKgrrӠ6\[]2r*K5(w5[Mo5 ey_jƬ +.G0)m:,#}gϧ| +   ;<3؎#eTf?~ |8!/E߻A}vwϧj{^xhV+4hւ~8.7kIĩpo'?\V Mr DbjW͆zsoM߮ft{:gڪ#CuSՓvo.hu*F zG| +WNAAAw2T c~az?p$)\gXiMAZIp8+LyJWT Vd9Ub&K})؟RhsqZ + +cl7ҞVFVq[u,"I02hB]` ^p +?)#nNfȅEͱv;%T6)qI +YҺ;DKgb堻`ФSJIBiQ`:6:U%<3eߞ^?:i9'd~螌39t,j~ .fZ!߁h,̀:k[hLP\SK򃻙ő=WgAι(} R(䚑3&4o}(s+ύ.weռ_mǭ#^ۋm,OlݟE_vÒeaDgԣkw5D@}xǎ<2LAAAᝉ/~ 1qdGlTq6 RvM+H_k>KNp?}٩OsGV@gY +ZͶڟsN0dc'}CMSg b'Cnb3s}uPs4ͫZ%=Q/ѳ#t'OP8y,YUmܾ,}Л*[_3~m=z,>B`~\`Nĵo,]@qE@   B3&4U7W .pz,IpsڶZ7POvBQ'uOk!J[n>mm4WY(:yj}CMs\vm*w6 zZKP3LCTv!nx0L@W"h|c/j$2LZ9Z9͹t h1\,\m;erYnXoH֓^u #hQ_~l2Vd@L޹ D[9dUf@>CB'nbK5tRa?~Ïwś/[Qh:{iuy_DUX +$II) EJmMZvݒx-/=n˖nMڲ=f<}|dk朞6m5e=5)fLZD D@R "{2"22r*wHX^,8\f뚍tAAAAR?'plCXPALU* +*f2Կ [m@|6}~Q⟹ `>]>g[^mQ2\kMzO!Uf־5 .n k>:+23\%FOfBTTc %Ma:S=//ïq6ݛy]n;Mϴ߯vߡej\15)l+aӘ7_M'D ~:sLAj"aG^7yRy_USJYŦxT=pnװV_rhtNzθt,4> FDms7'cb-U >unM9ȱc^Z>uFypwXɅ'M7~P    +&Dk%/}1h.bBx.h^n_<&.fV-6l9XcV(ܦU@g;R4HS(GBd2WLи<~1AC-fr/;#1޵tdɅo<]w|j1   ՌДAZyXMV .OÎP@Caml`1l~)qv ,}7 +hp s4>ܴ06˕bK)^(0dașn7#y)\67S1jQY \)mtt8 +h9dbUTB(ytN<>4/A:U܃3mu#/*Ѷ6]qt*ٯ Z˙kTs_^UU_jmO1ۏQ@m:I3Asz]O~r􉓏|S;uK0O3ߥ,4v{%.Y}z1   L_@k1eV ;C Y_aΖM..Vſ x6+@~x +唏h Hm-SG+(;Ts5Ͱaqc)!dBކ/N"t]4:5sM ( ZܴcR۩#wa +a b_v!\Q)ɜ1,ЙnpFJdpP@ޥ +F?Ӓ=!y+]A"W4qU3P 6Թ1v >]fIodsNhA 'K8ll ǠN)`4QGs6enPv#݃IBxwv$^a)Z.=n;MOdjCQQs̵<'`WWдxH^@bnq3%u +96jG>M|R8̾dxOqK%G +O8hAAAA(c8rwd|/?MeHܣrVT{]KRӍOnm/lTP~-pwb4y3<#G?*<՘IW>W BIff(߸OAAAE@w!xB"֕el.zrY*t +'f̃ǃڵKuɅW'sׄTl#jXױ_H` y>\~$}خ;š#8(mP߫Tݿo}u̔Csε1d(8r,oCk Ky]*X3#ORPx³AZV=F'/?,Xoޘ[=x/=rYhg,9R@+?X{AAAwwnJsůG0=nNz<.2t&ca2j4E7p΀85;7!IQkS;eM_+=IVu=TLE5ۤZfN`j9]^40>:U|g]?dyg]lk^A SY.^WX?uKme]VI\hGFND57~;X{ c h٨h3\֗9{~vsb#9޻Ը{AAAh7@YҕE3\ֵ-{<9y&\mzL{Eҫ#Ud|{trĜJp5f9}4*WTDڂ\nPTBTP3S Kܿ]?W8qǫ4 (:;ku%u&fxO]԰8GBrA*捬#oa7}o}׆V>8_Jp!mWXU7?k-#+'N>r~_cZAAAr%k"e::dz'Kcc1PUq,MHt"w+N 3:rA35f:lFbU&}R=ԔV@3xbGz?$܁%<M&4%Y@*c:sAN8*$EyX'θfP c}3C-߼v8G2VK6ҭ{طXAAAy gU hՍm)tW|!Xx~ h"9l!hkYe9MưЏN虀Q]=JgM_qO*zVƄSKf6Ў=ȿn~桂RmH,R_<:D@8T*Tj.-*Dcߏ߲!xO-ص%.~O=!\eGvwUO~~ǎ[spvAAAA`%[.zW]T/նнn5\ٮa<oہpW*l T6%"P2z\&(|`aKRtMٸF/gu33V +oayѴ@ktݼsr_ٳtSΖ#~/,Ǜ8V㞐T*N\V8oNEDtIGuݿ UÏ~-w|L3CAAAAu=|PEO# o(F<]ya~4o> bnI+(t#Җd Cy#JHR.x+#W@Sy/N hͶ3,?|w6)r~o<`?!ڔB?Q@+ҤY2I"Z*l.?QX@W~iAAAAH1K;Py +ںA5Ti[W7%[+m!ə=,uٲ +&oB:@_F|o|07:tšMM9@o KkG[BߊWKT16H +'ԛA(^7}t}ot~6Ajq*.i;*&-u;~UK7N>qǞߏ<'    ̫:$]OowHl6NۮTw,ܖsk.e桛nCu}cV4ȁ-\G~>7Zt8>8MtMt/>6ywBT_1yFE[Q'|OwqTAAAr%ͿҲzy^}jCB҅VjH&6$O T}w^EhlIfhCWm$²T3zq{r +i;-UxXL8v[Sҟ7q_1bSZ[`N ,*T- ж hͪ޳te7!xOOb&xtݜ1*ni0ҷAs sC-HٍPBc<@@ܾ TAAAff)#(?'ZAAAe KLл%1v`O¾dI h`^3Gv/{X:Gq!|;aⰌ)Ŵ Vf_ ڄ*g)U :FY3~_]Z3W(9ƙ46KRiǎak?WtSٽ@2Ң~N~yu"fQ}LU"ع&z{}o=;Z?d\:|_]l 9{禎I4Wl4Pյn7|{/0ݓ>v??ãAAAT@ǃ:HTL>1u2mBC +z9aU/xޖ%u6lZE)oe^pvl~HWυ[G*J^ NZ 7j0nծ5L@mF*-/5m_嶪{##[bvM}r4^Vzh_FDB\d&e +QL<|_Uk#O޶'n1G=cՏy\m.F!~)\|!؜n<կ\`G7KofxP   p0NP +g]ZYd_167 hL`LDb$'^؆ +>$9Wڗ~qJj +jpj5ZXB.LVZ8LJ]ssj(eء;w/Rrt]GU9, u*Ü^ż;NeF=}ۡ¼< +?$6Kg6AAA++ d+ZY&%"TՉ V;ewٺ]?yNa2H#϶)y6\̒sV@2 #!Ǹ;nIqa6S g":-jvi/ŗ`tz[r^ld7bfL\zeY>%oPY+3tG.ΤP}}ei\xssc|>Xt>|ccpqаKDž`sWNI2ߗZ1yhAAAA_5Og׃B + =LݜNn{$2#eU3Ɏ&IϘJAN4d^YT_RAm陸wki9Ɯtsi㬆'HGY0z}vY@x67+f=;.}A{Yi~QUG8*EBO WGk~ρ9    \P묀&l^Ngm::]PA74z^ߖ|>X@qfK (eXXZuygaMfy\"?Rx?}fhXz-"\Q_=^ KVnR3Xɛ^\$gU! +薉M.՗/r%eoSʨfwB*Ul'=~& a4e~0J ]''̼0ҹAhUnD}s9hAAAA {TFV +t8-[Oܯ"4-|^7}y}P\9s04Hp@G*]ϡ5(JdN fLbvIm lmި 4Va=LxUk>-haVO]p{Xlo8lLih(-ߐ,֫tzz%E3b4etPf4oZ *|^:v,6t>StnTۜ]wA`aH>c:cEūH53 $rɳ,)=XF,Wne͛?? Ï>t1z|Wϥ`p>чO;?,4v[QAAAaWhZ{h@ºeH}6a-mEkK'om`˒dY@ӏm nc?eKzC?`7݄oI@\5Uas5-|Cpt #i-gíUx!oe4Fs2dtv[Ap}jb_fGaGܑݡ;Y'3~߃E!9S(G<|͂kpmWQ+_@fmL.(̰ +z f]sү4d%Qx\$moI{2cXmXq+Yf_lgq&%: TߤG,}9 #E6Kc?J5$Aq: +_v~Kj`ɭaЏӀiINo XV/}hct(Qz߻Gg> cT*'kC8*1й?~s}r   puЩg"՞G-UL/=\Ӆp;t?h^zdaf2AKߖ7)P<5K2+rGt<l0Az9RFHb4GM`3Vna\/sS~O|9攀f1͝ Y;”MKR}+V&~CVf)kHŰzzg2ݼ$u +~A$8|S=1~p j^X f`;X7_1=!,s,7dmgm4QR\ל |4oo s!;q<}7qy(B hڣddCSO~{AAAɰڏhV{ (Sȧ$hWK,]s/A^LF(syݢ "Y@ӎ*w#[|\]_wbd}^n\J@ovUL/>{ᛣ!'i~QP2SPOmdӋQiZJfn9`*8UF@-0?L-_s x{g> 8t>3s!, +h:;}=    \ l3DIʋ M5tAz^7&оÅ9yg,UC>zѾj9_aN8JF^#˟0KT\s;u!O@x%vْ'!71QGs6X +Qӯiܨ0>Rs h^ϭ{6Ezʑ&k~KĖxti#V2avgDmg0a*c2.Y/wuZQf8}X .S=-yVtFŝ8?bT)pR5ǭO@d=~l7O6rv\y0AB O~]    LЀ5΀%7Mi5K`dipJ/ޟ7ۡ' FS)==% +Z(ȈqeI=6q\^XOègh#h^sj+tPkbn^}}\ g̖Y~cC[qI.s%V,SW:.O@ . z0ξMH1WP/ j0*}xZ8qf +r]Z_6ћU{K| ă} 9FͫPqXZ@ssB hO@`&ǃhɳ.~9 M#WY_T={S3}H c9{~vsa +   UJ_@7Qd3Q190! )$.w<tnݸ[ã>= v_ +PNg27*ʡ%WcPEW5t"^`,=l<5!#}SCp]s.~t5b +S^ϕqC$+X|%r}bNk~y3TRsi6rA嗚e\isͥ |Pnn<;*N/Mke*gͪ 5*_UmԵl"83 m[[]l7oЧڥN9Y~rO Te'+RPa1YMO'ӌPAAAf:Δl}4*#?k;tg8n,O@ž~)G.l`oӲkƙ~ĐsBG+,;Ex v(;Sܿ.s*T:a ܌#jjlۚو-'Kh4.+R{=?g׼G?[}HNRqq͹fjHeu nxZ HheUMSMlYb+w HA>G^m h)8gͧ;M(s:{ܹcӌPAAAf8$]6L7W|:~ly.BlRL :c +ؗԩɆoj%u\@{T:S|ǂgwD"Uo!KjpTr{=.h#OCuaZZZ],7lO:n N𞡚n|p?QL&́m-שb%]0scRburb6A6bqB_@*smɔ^DWWeݴe< vUZP94G0xo ڃpؓ+|n1̕CGzCl>=p d 3w}L '_--   &(@qӃygGNjo`):L[ +/A-Gbow$gwΜbX c뉧/h"jL~1r7GmpJ59P_<[2"zf^I +h>~Z;;1#1'yzնgS%3sΛ@p. +jZҿ*fo)1JcPZ7.>tbWTj\%լo*u&DN~:pvtiXޯFIv,$e3ǞqMH ow{L00AAAA\=dXw&/L h&^BIXB5!`| QFfŰ%{TrB?6k6`Bn[~Fru5f,`l$| ~xoMRT;2 g,DC %Uj\>wiD8ι I@2,gRӅhi\4d.uPX#*J.NT`~4TF"~M?\YmG?+~P>|2qIX@//h$_@gd^D@   ¤S+i9>3l~VTX8ydnpaKASE=HW(Qw `zUPc:>TRM1Jk2 G:IЙ'9yAY 4:ySI@ɝ``gMفK2ܨӡnND*/겪/II n cX\}}ks@@OPEk&c^ +9\r^V&aMߥ_@?uo3/𳋍n\AAAb=W'URApd:ceVxQ A7U߅,tIV_TV‹-~p5ќ1L@Sm56'=t'g9t:´"YIhr:X0IFW\ +=z˙]ʀ<39\'CxhskKS|dY@G [wߵ4 Ci WqNGW +]XdS8X@w8'Taq,    ++j +M%> K(.3[Q@tԕ4N2+6Y@B3w;$8$_Z:}1(i遼ΘDy/Nh* 0.}JW,J$x^V +~nB_pDžoPf:K> p;JJD6&)3A ,IXЂ   0 !liTg;?>s~؟6 i?gc.;N.璪\eWj[t2pZL`vYas \ ]g-7-{-ч:P%shupJ?i&$1Щ"hЏ}9p羏YAAAANRR +Xue> 6\td *2WU/YW5a +Kj?RE$g1Pr1z} UY^VfunžZTlthjǍ&z2X(v8SCMd}>o}8|knij!_:f9cM E$s0c0\AAAXWⅠѣ]H h(JzC\AzMG +e/c^/޺sꑧ'RQIVW5m1{IJzhEz'?lД?]zX{7g.M" aRhs͵ m +{*0RS `;W- (O=hM~j'>"AAAA(5jmѩ +/+Šq&hn(/PcH@_\I_Th͊Zo73>!$ oHK_@ϛ٧K!G=ݮy]q0. *8*3y]SbNwIָׁ~3ed;Ý(X +~O +蟴br㞻O=<`/tL-   S2 +u}ɅPkuGp_Uc֍H>)}+A\Skߣ/Ji2Al6t>:A:(,S~I5fS8"P 띳.Xf +h×L}n +rrssJ#Ss9fHt?9m +   |'Y=>̪5˥s+r<ܲɁ{|em2$_/ +Zvo.:xX\oNj:`!+NC/':e)Bظ)ϸb]F݂pIA_{sg/xutV[B/s +Rb>̝I5c!,@O?O|,    #8̿oJ.c(HjATVLyK%U3Q>=rP<m~UW[[ͲV-ydq.<}OESGu0XT"o2KA +Gv*eEUU?ܦ a.'MYg_h]9t>4v8Mt9`!añhB뾃vAAAa:e#>[0lޏUlV +K=|b6!uzj;`|j"s] $ +$%eqɾ],(arM˷C2T5%oTڤ4 Wopdk}]Pl0Ο9[~]8vpNAa%]0ÿMw6*zr\b9}?91   XSU(2:BePŢ,+qac|eU4n, +F $0/ui VXHamOhL%34b!vfK?l_Iy/;^>-MAg/9}_,/꥛O7u̅pl44_Y&Nm{x    <4%oV@#:لs[d {Ղ5M'J+~BV{}v&кW N@+"7rzpdoTKOJ 9ꛡz4u6: fk Am) w%/*Lg&L,AbZa~; gb4_b$Ӏ >X)&'V>o6^O0Zӱka)nGX^@W )hQiˏ~>Q{h[N=4zIs IϮ8o;g؂   p2>^|ƚDTS` h+%{FjaG^;pzCJ_If0v,pF5#+y{V1}7` 4^Wި*5Hڀe\O{n s:4Y"m}M#vi8fCAÜs[>z@'Ѷ8H@W޹o}<?ˇ7P +MVIڧ&8],r-   S2MƙǠ]frl~ +C0vÖkӥt31aK1ֹ2^њ@|e}.W'(etx'`_ZNš7Vq'^;R/gp"g PX/CmnPTRbcm~7QϞoҡm]J)m̠0zp!m_IT_:vQԇu   p%23m͋<Ơv%7%W +3Y~ +rPUCo{uNSEQ-pRX1:dk7iZ s005^}ߎ27~~%m/Nduޙ z5k<2+mV|iR(컹<-2]si %U:mzo]KARv~h/]tL;3? &`*;I@%arg̕ؽt    \F@ǘ@XAyCr%jd +h: v2S3 h^4o=#' +7olMeq%Ex¬#<υ[@#/8Bok܆qihcALT9xuoӗC4PO@‘ &ڠ# #:iujYtF +h*O.FotxF/Tù yS KQc~wo9lAAAA"! 䔟b1l`'Tc^/n8[L#w\Z.8=MbU⸃5ȴ hBVArsÂjys. lsU^x ߜ򡑀~ +FWo5vH@s$stB~4[:O#eZƤ^5 54iо|cִy4ҩ;mQX] u`KzLCva[jЇ/ 6,UB |Üݖ4}f /=`6R@SL7r ?$cj9p˵u܂   p%R$) 8[XJtVՂp4UCcM^ze(4< ͋(EԜҲ~4 tqNsNf;К ²x Йk\(C3RF*ӛ i@pA%ߑ9yq'tSd_@2fDG:ty 0(V@9 \:o\fޱZ,|Kp4WS3 @rK}iX4PdZXG[UjX˫Bm͗fgJ65uD-UF@ߟ`gɗG^֍=?-}_Mۻ[q^ûwԂ   pR$25g\*T̒+7LZV')NJ@`}uK+VWw6 +hALjҙz;sKY,lɹֵ[6+',_ /FJ疍1i71ҘDM%Wmfl]*oEsDn{XS 3x Y.(&GO5H̛t2/ OfK3q&rf6\96n +h~*pJ%ͧ&{b m5[gkVYWZ᧡#"}QN&.>s0ъX_׃ly?W) scC>[V0D^RfՉ@i|#GT3O@?It0KM%- 9I>?mި\xѸۤ[=o[?4áΜyg pٛ|0R4!R~ʶw5Ђ   0=V@wI.k\BrKvPDy_+A9p{ 3/ᔜ_ T&<wSZo~*iUy6F~+kZ'Ц0(TD0<._Jgzם +a#|XŢ!L\0(͛a^]ɋQ +_L8+WLPDhi O3$\m2x6Vvkk"\ 9vt2Z3M+q.tA2˒l9愜  &W$"A4 ϔ^нJ瑝 ' MeNIwm7ov#=+s߁Gz"e2Gsif纥W    L+PB}7X"z67'}mrMzaetN@e&:FaMf68ʃ y "M &:ۆop?'kX@sk,@7 +)߇lUyqW$BT*cCl6Z@fla-Ĺi>vX[MЕ~9&xbsM @™'ћL@L Iavh@XX@wuK41%./a~yyw.F    LW&p[ +% +4/iI"U) sĔb(޾_ ZJ2{O;6И_Rs +mop7mdRR5Shc7N)VQQ_YTbR3xN&Tv176:ڶUf?-f:l3t 4~ bnl +VIY]᭺onظ*ctPw1q.s3F)/L|BfR'\Yဳne-g . +h1.3kY"kz[lYZZlHGı׈ qZR%[8Kq~Y2W    L7\;?PU} f;˽;:Qoz*V@Am }Ŝ`U' a~3`HZӪb$5 WOS48j,:Z?n..ly j混3Q+yMq_@3~5ݱJӼ 9kISI`;6djn#bafEmszak^\T5-jA SX ;ycϰb|yޙeq K)^<0ɥUH@wl%ƴ]]6xW@@O[L#ɿH@hV_VJ{n7܇09<=u跗^=A߽-   Bßw8TP-^m3 h&򰕼^X(:`QPJwgN*T ?0N- Es +%bsj/sq`4g+#$~W@.s8TnxZe@zrX+4o/K_=Uc'fXF:m B!Q +Tʪϖ +TS\q!$)ЀޙQ {{ARt_m}.E?uͭ"3$%hZ=|+"W!DoB\ZW)ͳ)yJ9Ka.|x*笕{ͫpu[nAAAulM.y2p}ReY+<l[&F0sAֲt,Jޙl{ϕe1Ut Ԭ&.A8lmA}w7Qr09~S,~4 h}ngl#ki`Vekc(c0<K*5̃6/y)HnM}M\#䍺ˀ]kr:tHT"eI!sHqxUU^P %gaOk_ׯ}MlR/ _n?Y .4pP٣NR\SAAAr @5Cm+vm={,]jyހ'pbU,uzg-GEO`jl72m+P/y9ӒvL{!rQlJɵU)gv;optYl<c̲1nꨭ*AM}[By慹/*JQFG9SWI6 &sTF)q(pȔH}GI_@dV3a)6ڦ c1;Rg2Iff hʃnaƲSpu~t9ۦ~c2 h@D6U@ +h9S;xn-/II6?jj![Q@Q*'K0+ZJIMlmC3 -Q]|… uAoR;={5kG,KB˫A ! }uWAAA0 skoI3਍^\~Srnýx:\fu.4Gp: +NӰt j?<;?U_|9#Ƶ,G:k!v&` +Wӥ޾Xlb`Ek͛T.8oHt!4SFȕb}+,VZCQA*odni h?JkNp^R^fUUSMB,֦~IU/jEt7\{]?xД2o<%\fcK@ ͉,;v_%JsB2rD.޲T6;1hޗZtz׮]FcτY+GRh6\N[Ȧ:hAAAAkzܞ<|p*hs# +㰥;Y ($͵DLl'CΏkzAl=Z;]3ALc>or>Ӭh>L(_Ω +?2ٛ57a_Ka0z>2FMQ3D{[C3nn)qg=:0 ǧ(ԍӏAAA2/}O|bQZ{s^O="H$C]9p~0 :U뢄-wVk fgҮgjAV*̪gduܹͅS;R63N?Qdh'bֶev ]MoYqF. 7+ݻ73q7v.g϶cߠR>̰:wFbs&>^lЂ   0#%S8,gNKU6zEqK@!lds"7|GC0$;]̓澅e%*26_7ꢜŨ w$ + +fzZ&%@k;j^+Hͩe(8QI%ݟ^*03B!I%-   e.= *Z?):o(m9^=P!vǪ㺰 +$964x:ݼtmEGׁw-#k`UɈrqtNH bUB6߇T>׿+(N:L3o xpGЂ   0"M.ߞ}԰ mޚC{:>qfw0-*ی\zfN]Zo60Wg!XgXƜpHTH}=A +TΪ' JCT(G~ҸV +h4vڵ>_ZL:{:hAAAAsЯ+I綪BZTW6/ msË!:hNT1 ׯddL_F~l48̛ܲ6?˧IdlotAVu]'K Z`%U\|zycn?5?>{2=]:pݎҏ"AAAa&E@M.K.2Ϯ ++ӎ +BB9Voְ[^7t͘חcsX +'h_ǙTȦ-o@ԓ6t}4Q\k55!v 84yc4B'e@wvL8ξEW^@7vfB/!l

@.ZѨoͮ32D:9*]jTlk"[L\FBzoڼ=s/ЧOnWWY0?CAЂ   V"em;TaIdtrLt.y&(탤q_ކZJ"}إ@Ӿȧ6gMӺtT:?DZS>|]͡턉+_sN4M +h^p#YtZnRM=3,,]mw}"k(,^i ?80] +}Ђ   V"2pTz*jx33"q&jhWc Vn% '/1炣d4)G'rr*@ٻ? ' 3w:*+2C?˸E]f&C - ++ե7b .L`fMxA ~ma5mGfbEKLxw8L(|ƫAAAgz4PaG=:dtB2H V@|rU)TR*&tٯǣT +htJ:)e7(NaϩyZZi|ae4&J+D_\ I><%ݬLX0|KjFTs0p\Pk.z~Cwo=2q+*ܣqeu"w\k7;E@   rY~ن-=Z3Y(g l.Sonzl9517׏=w7'^C)/Ǒ{z=3=}hAAAAX.'t VHIB44 L +,ihTβLLG}Com +=2<HSؤl~)uĤɞO<}l%W>I6:+>os?_o +8xb3KϚcҥ|sУfv^o9Ђ   t/_wRr' r*;AXfVҾ̈́ELGgvmVc֔3j2Um mqm+?'^uR)n@$Z^YnKἳv9㙭 4jqO@hDڬWWfV(bnZ4Pp)hיy#B~.鼳޳za> JjSp yEׂ)KI^^́Ev+TҙnO>x)}_7WW܏$6SءBK~#-   e{or) (M;-Vˢa6a3!4b:5' CjFh(#j[ZaǞ{,x~0JMFLGAFl"S|]>(1u:CX9M8x tPzfYk;gtZi? Щ> bkj+Du3nȜ ͜} +{xwX2js٘K+3嚚ؿy-3euh5j>jVp˘o/mmmKO>n׊>FzQurzB4sCp;pwAAAu@M5l,j!:{-lWo6;b3=Ώ@,G}=s>ջ47HD)wh>5 g4\zpjYNO#1#Sm=VCe]h o2NB1΀&궙_U5z/|ձ*))z!ѣb~O ֚ #"'q!xӕgD6Yu~>.E%V|v:T@jkiGEQ۸/%hxqx6̦֔le>wp.z qy{7,{Ul;2(ܜ3}EZς bV\=3k宫dbG܏?~hhAAAAX:{_k*:ojOclӶc':d4al3#OFCPbqZ9B:ٯhc غ +Xlec弈.v>p욣T=j|ɉǂ h4*ͻPt`a!(?.rvoN8P|ܐs] +SzPͧҼ #A MiGDTpv;ixKd ϕNa.{:.ȝ"؇(*(ӗh(Juy[S@##?YV,Qzq̻*)_\W^ѫv&,k#xwv>NRR=7 hߥi {y> hr۬e ._E`2qe]B9eqCnAAAk:쨘SSf-fBJQXU>I0/itÕ*[/hlȋ446ܘuHʻ2ryin1W7,3} +1s[ZY[v7S|R(;󃡹bG^IcP4 +IR+FUu+-|+'4i\Y:b:ׅ7Tß%bd:xfq=8ūoBX EY7gr)@ +Qw垻>gTx}{&cٖew^"JլL[>jGz m zR +G?wek +B|K$8t $Ђ   ȧaL/:rʵ49ܟX=o}|;YA@̜uй. 2#椅ja*ؐz|'=e摄cyY?xNU6]^DDp4MYS)D44:rT[j;#`hW4W(@Z_IF@sKCOj":2]pn /R$,*nFF_ ~Rbrڎa?Ut/Z6IQfy;((-Va؏6v\4J4$Tu>h(*8)Tו<wDBR:}p\)V'T +GO~;_"e6~s"AAAau V/Ԉ2Ѕ t0N}ޚ:s>PlbLB +hFF2lM.iJE6\${m²ڂ\JJMysjjAFNA)0Ծ&g +s929螝߼ `ԢyAuq!=8Mq@?>tGIt'/t_iWڕU5W0'u3ḱѤ>,KlŠ9+HvW:*>D.,VaFZd4_8#qGdV!qg>-Y#fZnQ Mo>ܡJYgšЈk<K_>FKu1,Ѕ#L<)I    G~wG#ho`L0t!3 FLHeO;M@F/7~M_d8# DMh@;p(+F҈E]g1}A/5[wZ2#j:t>u\x5 dI_ϕņ_W/N)+|*}zp_G_@Pv(,T 9q'lG`uĜr3ҟҔ 4纰XufD6<(pܘs +5/"̦G^;(- efA#oί/;8g*ʍ3<>ؖB/^4uJ]1N( +)mzID:3jN@H"AAAa?鎊Y7,? z-[:dZzdh{0Z:+:9}T ~u6w7(zHr1,߆ FbӔF9'+ˀC:6:^AvZ +#2TÀm:]I̽&/8st9'Bq8{f]WVf.f+k!\.T#~{%wϺK\,̵NKY5;=LU5 +9Q=#}?d QOohABb(0޸ mYBOS5~19O}a;ẓ2ЁD@    + h$8Ӛmeu oPN@#c׆zN}c.J`k~4LgZЙ3sqrnly K$ eL49), ߘY(`('/лs+|:s6] 9XP+&sG +k +Vܾ2>Xkj""6sҏ}ˎ\8+#g1wQ0,b( h<)448-z5ħxp0:ǂ/xp`gCgzŝ6p/n}=_pleRha!~ZgMn8pƫu'Z    ,ӏ|z]\n + j5TL'vumme?@O<4Sinղ g>dtԕ_ +e M\;5ŘBj"ZZ]/Pf"z>"9˅qiM.[NqCB| +ug69f_uP JG=s.ܦNL_4i P1Z0pOqq+9x.\5]]35Wsyu& +4lp \WU6D 3+5#ܡ: R G~~a}Ou'"\V?u܁D@    + hwVۮF\HY"X@+2^~Q +Œ-+X;ϟ'3S haߤgrٲQS5.5͞|+>$-\X C \}}Uq,4UOE^X,Y.]@]WϤmpq?>!c*s2/j~.o/Kn~-7/n´_܁D@    +P?//j}4b.%f&V=2P&Ѿ:j\ +ZL aW)U7/ hgp5 Uu!!!{<3x"3q%j_@=0q䊾͋?9Fl;2(4_~o./$ZAAAV[TMR>T& Gte1Ϋ+%5Dw$GUS|B )Sg#Йʜ.s -͜άҶS՘@MPJmǫg܎}C{i3Gm$dUƪ:Gx\FͷF/M [zr9&JmQF=mtN7F4p hr[[[D_ +=a}IkI    +TYOܩoܧMS[ANL%NI_:fj|ZUC@wU7٥fNHkj,Nz8]qz'E|̰z)[S!W%Rۋ؅aNJÎT@rڗ kDN +hh$b.T7lUo9q u&D)s!,~"AAAa5Sf} _>7(z"8VQY/Q׃CDa/5sy @UWQ:' h3} _@ЛmPr2/#bh͘Y +s s ~Ly-c%atnuH3AT대FC7Teve=k1F{|ba q_x1ߙPG?eKĬ+I    e +m#S_hyT@:w _"q9mTudێ{8cPkHmx~T@=LxkqM5Qے^|k 8S̙*;^:»4yq4Ɵ9-a3ھ6T(/Jw}ssԐ2I    e +֫h繾l̴TFJ/I_yt}UuHI5suԦOHሔM.M8jsxƝv@rSb.͜ű-gyP<,~|*4c>rS%+8VWs?ڳgw!&_ +Օ38$@H"AAAa,S@?<z05\zWYP{^)v6~Ʋ/83 O $Ig33N'%ccV+sKühFtz_QfNSq3OzzL+_xbvH &Ђ   )NP9a'15.A=A't7r5##n lfq1uNesJ4 hs۞)ZL>duh:Z1ZhA%. z[Tl39]X=LӴƜKr0pӔ69,l uHrA2wnal^3x_p$ZAAAV2w'O%M@stJJ9: 983㾲2L鹷frݞ1GGiv̘+D*J9pe~tf.yC9N]RGxTfUlġ_z[C@SZ +@gI    e +w%OAV*ڀ\ϲnvNϨ[/׻*-,}I=EN`tKiBDmt]3^aW^ ,Y-z@i,U]W SHa\Rs~?6=S&䢙1%owsyZ}43gf +Wh/s@#"AAAa,M@ҽI{vTLAdU5VB\sU0Gj汍uO2'e?熄3`sPQ]Q9m.*sN&C\:+Zy!8ʱ}EԜ9߇J|$ } o~̇3E@   Y~f}+i9w] 'rBgx]yi^/:ʟ&iRAN 9(=}C]gDqiqM5^`R#V+-o؋0ںPh` +D0չD>X2~y6ڿ}7dӸ^|(hAAAAX:KЯ;K4DƜ4|t`6'I}Yf͕p~l!AS'.y2+"T*hU`ߚAA`6/xYvU4C\JOA?=7sn,Fڹ=`F4G usjm:f['x㋬rwK߷3ģ"AAAa,M@j} z1ou09Ls拝ynFX#A6{xp59q4hdWpe mɚfz Qlbxa>]fDh#/c,AJ +hCG#`2wt*օ~ tLj~U? {Z١t=uNG胟:6فD@    +XW_zmXgMV*Th+Nݳff*c+ȡrg\i[箜Lv4crp5Cs*l@+gntU)(oPjC]r8^Ka4ngpT)W?^l{bVs؇o]@燎6g-*>ws(]7ɇ~-?hAAAAX:/׻ghPbeU{2&aq0WI]+c=W]QE!ѼȡJ +nм>ך:v?G=CcMYb>3XjfN h?m|/Mg|MB-讇qCp}7k|qD@   Y~kvEV.&5㉡F4iw5?!Gy'=!E^z@}W{* {7u +X\Hُ0+NNghAũڅP냅1f#un#Dp(;}G\\v]v02(n:Lۇڏ'W(R_s +TǦ?y7.ɵ R\i~Cgr$ZAAAV[ HTe*ȤpN@CC`6^jt>ؼ* Ґl)4]bwYẨ:T}v6S毫bNLnz=M]--L3xۭH@U_7P܏92iݜQ&cwY@(<,({:d{cZ}B澑6\>D@    +X~grvi2L G~ +Y3Lll3(l(#)l={!U5]5*ȭl +rթ.\ZAvog~({tiIWΈ9J+A0ymc[Bu9|Nnβ> Lzns]u) <0/л +@4#>,b:I3+e=˅ͷ +ߙrOR9P=S'?|gAL1 '}f +I    oI.50#(sOT@#RgCBDvi˨{PV%m!WzM +(0RTo%k($z8JNF.Z@i3P@f?'dz:#1Bl=/X]MӞ7'Mw|0kQ\9}6/%JWi ]ac;ϙ)]`@@F6De)_~a^~<[({z͸Tzl_M"AAAa,G@ x +ho'eΘg,GЋy4gIC@E~*! E3LiDovR{[^ +x:t.O|Rj?__y[yۖ>b3DU" &Ђ    h.+yoSk#.t3WOD#TnVԆ_fAʛr _+S[gtAh) +tKm2GÙ@\ДtnYkhla8LxK`V@,!rZpjV؜ѳm6fU]&DVQ*\gSF6DXhW,.t4ӵ"Hsh]6f]۪9,y*8ww?gl O@M/; Bu3}}كo ?~t1r_~Bw!$ZAAAV@V@6Ne$f˜}8oh(= +hq2М1(\@HTsg?0|Ç]6ƉgDf_Tkj7KF/ڮ )UB N>-:5T//eVZL)c,mHZs9^; +rF<)V+k mfgӖ3ߥ ]ՈTGٶjN]?kSJuhVq#n/]{:/t-  +@^*ͱZ.b "W@@O>{1ubtPVtnꍻ=EY T\7BPHE4AAAy7t:S@7\Z.  ~!'5p!Ni;z΢=Pf術VUb;+ w#'3Tdx.tբK0n,getkEOֲ\٢4y9Y9$Hv- ?&/ p|}iFiMrG~(K +bTohAAAAX'E_t)U !%e^l^79WZfiU^S(м2^DGc<6A}i6yj?N 'YRLg; k5z!TNsTb+;,6݃Dos~1y ±W74C^p z>3߲~"TD@   #<ߠU= +N\%'O̹r72@& nQ{+dRI1fJӵD2UQ*/溮NvUԣ|sFLW4lx襂nfZnS|K&tG9{U@g!AFG9c)d4Ӧ4~FG; 4hV̶ xyjgr=N?Gx O)mZi\KThEdђ]#g̑aҕ4|ŋ/1r{hĬ"#4'.r5/h{AoЙj/>/O>k3AAA~_C-o _~qG>v/rE[ b"'w|%8Gj@@׃nhlZyNbb$庖ں9(NngP[1#DF / 2elPdH bm,97Pld8qhsH_w.}B&c/> hs٥9sgq ןk@y׼…-AZfU_@#æn( MD")5A"AAAaz3lyxTw +@ Eo hz6yWW:&ah֚жYy~H49"=ux лT7Y~ugڻ9QBGKr8#O#̕H Vf0 *Y!9v5ڜa^'Y^v\ӌt|Й̹ڵM/(|uDWTOw}X@C +%u[6gdu{H@c=E(\6oRiJূ [:t_fww9s3x~(:AAA3!Ѣo'3φ37+>1&oa銚ÔVSfn6`fxF_ZIMi/K: $)T7P1ېj) j6ez? Ѕʯk.t C+7vsr787D)I9P Av>)\ƀkwnGzyepl5@О'wf )5SgNhX/(3t==JSY0tdj@4S5j\yQY?toڼo܌:=wDEG(G    ,+8 +A4jzoC97q̫{2K\T r2cD5 h'b=PM[[m#ELF<N뚉R NvFsd$!56т]0m<7p6jRx5Pj0 +٬޺Q=jg冊Wf8j_ ,~R%4y˲GCQ(v͋4ƞS~B[oWf*f'yu$c2:@s#ڄgw1pș KE@   ұƙr-D&yKmQ2s!XA h;3fh4 6kzNF\@SIA/n-+4y,Q=tA>+l茀Fl w7TueTnh=jge®vo.18/RfA M8v-м6|d| +k~JjGW[jס?v]Z{뱺UG۲RhЂ   t(iz[?CW]_w%Of,U:~FQhkdf*<S'SiF1=ؠj3GaA?йt[j%o[DF?нagCwуtΘأ膊vXm^ U{Dd#8s\S ?5 'azHexFy3Gې rZH#М KfNs tLm:6mxO?}zt.{x~l8)"AAAaX_l6S\Q^}} Zp yWXHZfJ%T SO3 3k ރ #@e9D79MU@ +pe$W-cfQݤdSwC*2hGmdauaC:Ԩt|oNf|:j7߭φy6﫳[p #31㭭^ojE~? AAA`4~F"J% ԓ1/W,ȫ[>SV_f+GsD:.ZҘlgJ>֧L9fC#QNǾ.&kA zE/6X93rcE A]g0qs b$;f,T+VS XLBhN2+hPrSg|7o1ߐ^q~m!C    ,X@{rFo܏֗=(\pjл ]S- 31lQƤ.y*0[)hC5u]z$r\5w% hF9$ W=0kKjʖ>.yüH-%p~Q?ڏ`)~BTISꬫw5[ԾH*u.|:>^g[g7RVe&72q|ELx0 _򗋀AAA 蹹Ooݭ[.a?Tnݗٜ0Vo~\^*9<%]FT{pC.fO$_FשK ֬Ξ\\13JD5a;N@#7yȹ g5?18]3$5^z!ķTyY +f̟~'O7^ޕ}/67qwRhhL?yk^(^.   B +7_m&5c +Ьo5˪}>X(a:[ THeC}1𧔱Ce՚mFsUkR4~88_`eⲘɧsL_8lmkzڟh2SAJ1߇4(ᄂoAAAe C[G/gp}ςYCt;X7#RkN@O* hPzgбlFUu@_$a]q|"~,yJa5M9i*i ~3WIc)3WZx<Ϩ#z ߸'~"kڻOETxkZOO=ԅ vmmI+7sDAAA^,*߮Y1 emEX蚛VQhh{Mg+:fiv7#fkvj<;ã4ܷ MFLG&Z;4O*hjF!U@v#gPOKU]M?O@s)46V5knܳtPN@-YRGMuh!~^qُy"k_^|Bz#wn|L nmm]tˣш!ӧO   KESd0C_^h97d +$zU :cmA 홶zز6Nazs$wĄ3UZ.XD@wUqn]?= +"9/*0+~ZP(/x3&:b*Y!Z-'Jv}D^FF@%rm^l;2sJ)    dQ}"g\X "hhQN.wU-bA':1L-]5fGJEzZK`^ݮW5nBs)c)"AA&gV}BUXW̹ +X@#|4K>|B@hM]w'b +. nuԕC:I((uӅluml]Gͫt0ReoTh-5zfx>9n%"h {7{o +hC/^4ZAAA감~~5] )QqRR Bg=5d_@}/!42x`f7#J}zs֥Hb7WEnviujwXp"JStMۥY$:c`]D:U-+fdV`Y;BыF42[s zLpp~!݃"r4H96aFrCE7nhɇX/PE̽QsN7~{ z?ߩ?=3'V&GRvmfRhAAAA(C#]Y_zuGǨk.ݒW-3-r<8!]d5^/ `$k!oM׃tDIBbjmxas]̪xm$hal/hZ+a/d1# k3˪Ug{H0Og5s{{'jݕjhrnL *D|?O2KWNBwK2myz1w2C){.*[ h oC- { +h!\ಚa}1G)^ +4y(p+Ɖ_g]nh2o{# +@ y; Lq~OG\܄y ͕CVE5_a + ٍ +[CkJttU6Njn q׵"$ٴzlǾ'xbJ̙Ri7<.j[siF//N7ӯRsXۈCNEB Vsgkhw- à8>ĉ[#A33zñAAAVE}Aga ;x}14 uEaX4r3\-BGh-|2bzh%Pأ:vЉj|$[uwNb& (p&A@-ٸi[,YU\q8';w]t04P:SPBm[AVvA\ݮz3zϔ_3c2%{|59AݩcskӱB+$Hf綄DMtTM-+hu'|6f_3vkR돜yn~yz~w +렗biMi)t\|ӂ   pR*L|~/B jZ鎕KƵ{ +khDpš`se:33gb'8ӊu]jA8NZ.pDXg`lxR7O3-jcWI4/z"5w`#9QsZXjO㩃{K[էJ=jt>iʾGWz\funuuFMg4gtD;/=VN.ņ*s:9z̥9ey}?8\]Ӌ}w'o03 hDZt AAA +ԇ~YW谩0;?kVNS +iHgΒEq4+6hQ7!D-2S&ЈC +h5ÂJmSu//%ՎR%DöMLCBs7 +Zdh;cTQK&ldLGAr98ʠrL?'kYdd 2 UZbtf|G"~F A\3ߠF_ԥ#6DKZ1@s[knh\6) zkFj>8{7]֚Ђ    T'3]'~ W!~2`~3CH^hnI Q6O-Kwcsn`qTXcp1c4dKS&O>82G8v"g29+ͳA[w(hvm( +fu6=mXx4Y"ꚱ]N\\ ^*0DTCg՚N=A!Kxgn݇[&Rʣ2*5bi +_̸e q] ~wϭnB"AAAa{D٦s~ɳW hLA+iz:JrFKKdmx6M +hre.'& l; )K 6DZzb]6@;9K!R;}98*`6hj5dcҽhJdi˫55Nb]ר0ruM+>Δ]GJw24oFsULK@㩌3j}4K\v>93C  +!ʗ"k ρhhh<3oѱiauڍ;?qPhAAAAX:V@:jټh[dT|&+5֞t>uaʦ2SXIs4q4B44SaLTXViGOo[6u^7ǽ +uȌ@ /ӺWg6h% w e {j~saа4Y׌gLFfjTc$bѾS)ruA\aW.O%Վݓװwٰ6;I?afa[F{AwˇmB:8/Φr Ka/ש9Ƶ1%5[7_7μ{ s ZAAA5 Iׯv]zlWF0YKI,#qE*hD01m̔IȲ,۰;BBVg5Ϊ+Pg5kfmS>VA@+O)c4F?MԻj)+5*tt/+i(GsrD>\ՑI +l1~s-uUxZ hЉ=V@?y^O(_yk}0xsZ+S෨]g:yR}ͿX\ ejh.#ᴙiN0"AAAa&!^xH +c +^/Eח3ɚh& X@.Ȧx2.Pw +e%س 7^]{R@sFGh?&EX;G65eP$y^/0q=?35?JF#_@a< 2jDȔ8;tD/~q,1~{QhsȪ#Pj]ϳ ove=ߢC$Kzklt4v=B[8{f#&ͧދ]Hzrsf6t{9rW_Lvg)ڍ;?q0+"AAAaXo2ƹI@iqd": EOxvچPY:$ ȮA^ :ϰO/Fs8G~,gAMa"LI8F1r&7Lte~An \3y a.&Al ǐ(\̽UE`VU\ +WU:('_ޤmW͓"v/d95ˆ>wY[XH@S\+󩘵}~eֲ/.f[ O!N/keuPE{7&[y6=Vono Np+Z1)J)4Ղ&y`w󄀷ivdhf$+۪~s?B@@3%#"IɳH[/~ ]6lן/ !ΕԇMps}lyuX24p"Dm39ʮSEYQȆֶw&1V^@xT k.,G? ʔR8頨=!"%rWQ(2Z!.zfg'ՁYI, I\Ek}]w_ʎ,8yƜmbE GǾ#}}>>qρkglލ&Zרo;@g +bdۏ qI@'3UvLgeo>]huthNsAv)\y]z.\#3Mb4ԺyČ涺9?씯|\r!OEsJj|% z*.Or"{4СnwOs\Y+)tP8ȥvy^rg&Gn;]{*nCU>ܮvڛ"x,9G=hrD@sny#O$UCҢ Z&U$Y4JϿLrt}6?4/hhu:+y^Lp)U(v1V).6ʣ._p3U2+OVy=ř +\zN;ie06O}'4޼teFHAQ{{♙_cG{[pץ +"%Y8 ykf@'R1r(htf-N ă %F3f P\Փ/~[;|] ֙ ~KBSQc"B }.WS,bZ4GEFv)kU@55u>.Eay_¯3#Y_J7HC.,+K9(\@8VCy$H OYڌ0'M;kKi9;[rl{޵를G* m7t_'q.i!nu(:W꟧~[CFן ΔnηҫӐk$3Z Og3p/ef$Bx67=yù ˳&X:o-&즗Jݫ*[pk3|o];jۜ>ϸ]m}4<)ȥO# +73/9ʲ\hksb4+h4W^ױLH^f497DW.Gs4@Y 7?ܺ YR@N\ K qq(hokR5 +koR=DZX([76,ƙ4媺^.QoCͬsM7b! @Y@O\M#r)'blh٫΁e=KGLŵ%(W,UeV@ V`ƿJimی[~rVZgI=}Iu ۆS̋h"W`mn]#4^t7uͻ?C'@4MGS^|/U&hy#-mou^~C<*28gвܟ ΕȦ?DB4i_7W.-oZn] +@,)^D|W [*|Aكӣn^ִUƓᾋt4Б\(,,m7iJ hrEwjѳ{F5rH4sX psY@W2W@;W_|U7d7o, |'>|Kv4:u^ r8Yݼ&B'xgE8B|fCP~Ţzˆ2.yfb+ hs =6dxUvRDahhi/P8zbN5$YJW43 fN O@/a6u:2Ji⡣.:=@,#淚9r!c~ZojCJevzތEu=W-‘iWԁEQDBHEw\-A"C +w;کz^L@5-heJCr;˒R8#Koi4:7 d S2\ K=$yqBEYeC[Vѳ/5+|p*SF6OHHQ`>#\4<n9M 葎"cv =.orhC[;.VeԵ9QAcp'( tbY-nZlaꝢ$OҫVZgv0]l56,[ʘ]",3̒7SH~ShJ)cU)4gvoRc=xXG6lج9fe49]nmL~w-tWUgv,w\rYtnyn9Vm 2Qp]#kt*1gI(3F~&#˹Z;a*! +9,__DP.dV u}C<++ߊכ]TkEatclp".DxfGu\LAJݺya&ܱjTt¦*vUg)\(hŒQ< 7>W 2}t=UJi@U{k|>QU%cUdb'= ?5t+]sU^b,͖p)u'lp|^KEI1ܟf| c7K#!k68K@bi +yGstf|n_qe-7ssJo\nu@,#ܢFJkN(fJTn*yx?^#uu=ŘiA4󙩉ڠIupPrTop+$\q1=&H?BO`Y(ds{lS)p:8|t1W@S\͑Мo틉۾hT .Pp-ULQV]?w#ݏrZgQujHXYYFjP3HN%Ĵ\Ȑe'ņEY߭.X|7 ips 9ZSuuxf mII آzW鹽+ +6hm *䌪9?,mbr:|q]$\LigdK/V+j6}KSSd]H഍捨<'2y::^HGmms0huПP/35ceՙoLmPEVgqѸ}a Gr +!FcX@3 h s?.]_rƠ= YX@KQ繾5%ꖑdR\n2ja; h.p͊y_">(s9*wAٯ3mD4:E9QJimNSb{F_j[Hgph,{5oS8S}-+ڏQaF&PjNg7`ws6NXds춖*x3g=aX@?Y?45H&5GEwlR8j*a =z3huV(-ae&,*#`?В-9^Yʴ ;n>zb%јsEXuh7b/몮.]oE,u;+CP ?Kc[@h2Ht-)݃[ <["͋ |7NܗLМuuQHGy)4: w RӮe \Ѕ%,uoqq4d7e"ys:v<2Ķ]vޙnϵ3RhFN͓gmu;y=AjXʎqɌ̐Bsz}or0W0qΜQu!dk\fىvQm|a9vhQafT Ff\iNTQ TC^93:^Flc,牋ޢE*5viz:$zQ+tip 5M(>#^݄AC  Kg(i'ն-)V@ RYG6Cn\ii쬥o!{ނRh̶<` 8}6{@~tLjU~jzL- 3,Y@AmN3 +m'JwthVzZ@she޾lyx!f\KI%Kقr^>%0. +qؓS)ƦhSxzN@s:"w7-WyobRkw,.&d]3!D*u\A Y@@uUcc4Zh\̡LAIX y9:D?+{m[yd4oSNOhҙ4O w_m'~yڮ$n":2Ϫ,ck\LU +fe[BL `Н/9N>BmS3۹ug+.h 4:uگ4:IujQ\td.iΒQpօ Wl^|/& MykN@ V^A?W] 蚼\U#uhDE?+ /͵B t|br/b.XA&,sF?JH$ʒ@y=8(ռ})ݍd+&]eK%{8-+[?Y _UM .SKz~7g vݕj`&?'P6eÐ轩Rg +h tt࠸ټXSɶ9?)F@@co먧&njIu`n鹔N+E[i~^͵]G +'ל6sgS\(~Ԇ}tk\o5M˰tm&%|!.@nA=^Tr;m]|K˦ Y1mx"+ERskA?X#sX: +VV\YNYJGAм? k`B ܱ#"jp$Z/cvHYp|՘†ŷN[HfM*w4Nlm' ͻnN<Қ39ZB**O[d=مSa^~ /v~DJ\F?/4g_" lϕSƔ b+y09q򎂾 K3ke%{VUO h9Qf A+SdK[S8̿Nn4\]>pi{A&?\)9QZh(YwuY.mu/tOqW;Qu*o'4̃O=~û=@fJ1r.ܻU TZq׉$Cݟ! yYF*ɀ.:{ЋFD@o!P\ ᶊw6dn _U'xSt-zT.\ z&69PN@;N@9厂XvÉ,hă(~3R,,F[ 5Wwi~YkY@stuy6u`Ghd*G&W{=$K0;y.\N1^B@kpet%{?$}Cw7HGůc?rڪZZG}f_lb=5PyuB+;.Tʵ!:.#Y +R-]ڕBKvhx<W{ԑs-dCZリ.4],;;tG雵zn}j,9P Zه"yh}sFrefρ=ʅձ4*T|Ø齢وcϰD? +hD|yp_)'.^aXr. Z.5BpMYk7WSQ>:N (8}.fZh/;Mj]ykvu]Šڲ *lvVE銀hм6Ѣ);As -5 E@t7YYeSGk*e*WmwWJ@d@IY@ 3`kv=.F.$opF!XCFJ-k-HNMJ"%,7ͦb7U)iޗQX׬r .u.]zknEl'9'fk_N9XPi~;?p6U]9̅$R"CiyP)%sfwdrS~0Sx)rz Wtà7]zYnwoWW=bؚLHZ2WR)B871 *(w?%j}\! )zI27teڊ׮¬zoѣcʫk1#gD? ~Ҵ}3-WgO˕e}nj hRq4h|Y/]r'S@3j]r[c:0w>[j>Ϧ,λXGOF'6H(i .Yf+]ƛdeH-xʃiW# +[b=|M{y/#ݨ]̃4@@@>M*tMHb+\5굷ka0, |_(ΤG?$cbYR˟RLy=Ƥ*6jfEu$%QҮ6t좯M-'(=KXeLY@kGv@ΓΓo'oHE)=Dra5+rQl/]YNY5jʜǒ +hRzr("(:/ߦHI\U]vX ywQ)E3rv>\_y5%R;yG7?@L@ŶzW,O]/xg/ QI@SY)?ed'Eju +mY%:mm;uU: н$@_t}UJTgk; + zt`/P\eYMJr4M7]MYЉα*WT鍰zPTW})W̍\~??&*;tu\Hs۝jv!;8ݾ0vzR@6U@lT=NؤN!cThnBhv*F .빒w\E ^ZmJo{aw)愅1]m/R\ OUC:/N%Gbj~.ku p&<`@ GmdnT(}T95kXC +z<*,f&CToL a6߮6Y@ٴJmN몿b8!}9T7EyLoy{?OҊ:sP? +h\}q@`e~Tt9 \ҥwZ@LB}|GpI\ +%m r/)|L.!=~9:xUuצ/pmzϡI~tTF? ]1)c!X6+Y:s9AQJˡs1:s]МByd: >ү%uPfNtY$`k+ČgM8Ijެ 'a8s(pb *;y7/r~Tes;kx T]؃O- +X)@LС4?oVާ}dEƹ#B1=z(5u`CuF: \By趘U, U32Z +J@ +^kYXGwvTwB|wU~ ʺ*hYdt`<9FgosSЍ n!L 0 _UOG=J3rtMtz^:2yzxu*ZB@]}U߫}^_sR:/ur\tpVe"}Tm?]|wLW[6tG +#z{USꋩ +Ya ~K>%<'kSMKB B_U  cMU:t$fmo0Čpƅ:RȶsΩA$?eq+ӧ'fݱc>{"6ףـԪsoOWa/m{EXV@G..X@th# ݃C8hj#C wD[_\n_M<;:;B7wt=t;c:kg'>yu.f" *1:< Z?u3Glc^/#b}M_oSj& =(I)al;S? \,\@KLyҒ +D i}^:2f#+ NQ@|:w:qŏ7P@/ߨT_NxLkRu{^RU}p.1~<4B6΋h؊p #sx>:k LqЅ͏vN<bߟ:$.r# +UU:w(\tͩ`~+ |]g$Ox1;Q/qз/"X@t Rީ6Y@7x])5b덄@9As˟.FusxH!ŏ`!UT",Q\Ug`bnz*5wHƮ c{.[?2s*2*~Bi ̊T߫VԓlyZ}QTfq-Wk΅prYQILni{񗛹_ˎkB*1G]؃O-"X)@, =8q +??O퍝"t/)x7)fo`ûia`p3l-jZ[rvm.ǧlj[ { sفIM2 jP@sx=ͬ8h2tk2}If\ݡ4*.ȃ"-a?p9ǟ%h'/WZGV2v]),٬A_bqaK_ln{ic.=g@rEraaQ]܄k #.| 1^K.z Ow^XW٭sOBc]!isWF3+_?c8 +H-sepPhRN4%- Jrv"`?{Gn_5@@d}^&#m&.9xQ]ؼ +)qDaUV6^W`V{;A74lՑs}tm^9>|//k@:R*~}ZáΣ# 4Nl™rPOX),yb?f8sq 뒕9 +QgpJ>L;HGz NS=Ɏj|]X.ל8Z^Kr N@GK h__VZ}Bs-EeF;sr&t˫&ϜR@oIsGeN-W)93Y.K6'W5a3::yDvgz O(OЖ|lDњqIҋ<ck NS} +^e40r/șm +3+2ąHy9XzW\5a٬"/D_ŘP@sRv\2Ӱ`/co ϲ0W._Ӡ6Ed~j*.|U22wXe|X/PY̳79uO\2>1^?NJ'_rT/QoK-B(MiF".4ro[hE@@T@߫?sc1Fyo}ן_^O(7g#W_i6[s5;yo4.}VNƢs'[BWi]\49Gj|?ma(u|mF*]՜%֬+#-=379=+4o6A|쿞kT#/rӣԼ͊$$ZͩFd+RWArYrNum]?vm i*Pޮ.3Gc +Y@~Aφ_cؾ1- 6SlZ>3$OD.惜<$Z>f^5-WIS%=4%3?mO +f v4:M[5X eO>Ay0v!"yEӴh&&˥~UY_|9dhGc*i(BƆr +&w/~\Z_?dC4̡zBU%BmkH3eH=]sp/>snR碲5z*, z2nnx\@ZHe8xև~-(G\M|mO%5@ g-&LB!կhu&է$΍LB4?.C/omHJ_"ďG|٬vHW9 Hk6ו{W;-b \ފyLH$_r!ȎjTl 躑7?,I\>F0-Fb%Wҗ&~C>~访w8J~:G143\PLA@?2.Gw;6Q M}W>W8@4Џ3%jnje?^#%m+Bo\s93q>6[2킀8!9\XjzLjN(CCwߐq)9JW+4KJ +h<`KVISɵilmtҍW2ܽS \U>1!yNeXi2ުy.eW#Mfrlv[~on%:Ef hAʥg^RkM(zm-7djȼ~{|^L,4:S:*TuTůwfb?^#q"e9keܱ)$ɎR\UsmX i(bL2QAZ$)JwnRg7y6r~ *TQ/g攌-e\GgC:0_UժlfWeZ9=(_Q A4?+g0WB~:9d*x?q7~;xw. Og솮؅PYoZ;'m1[QEst'g롟xc{1] @u%?Dy#gDY +&씹!MɘМI/ ׁ-Z::){Vzy|VMı慸la-WG+t>Gש ՠ-VAٜ&1 S2m!ˢ~03x[mYjb B+Sċ;衕-p><;Qimϼ] t)AʥD_WQm~|9dbR͊i't + Y@onhxc@?ZgG@)q,A4+1YS^I9}+FRW,%Ң$ 묃\@Gv8M^[;K8y{YІ Ꜥw91s]mèT}hήQpV3s3wt6~hjǓ㇝*h{vPۀ*=_.ug񺩣YnnY]rÎr 豎:>ҟs4U|څmϬS,i'QX8P+uG} 4:;zm!jיP$F`wQ\q, Fz.XۦQ̥YTupE'FKxH׆LhctZRDh%CxeΙ=.Uy¯S:hl55P˅Õ +UA攌$~9}ʙ#IjG^[e[GUwzFM-N-f_?}_Wv՘_q@n +̍ʿKz>X3K@ehut.fŶ-(eMNru$/r,"x#Ԣ}-!R-5B:{!Y-ZiWE+]'.2L*v͜U/)+$m+{*#9%"e=Y"e_܀y=rj;HмĉN'irwG,(5,A?07Mݝ5rPg?N}??m|~ ޽7C;j~#%/Ni<˳}W=U@ͬIm0h^uQu~MKdOJZ- +9YwK 6PKm좓#2r/ /-SjNf^)kWe+r9ub-c4>-WU*-DgHX3yCUPrerl庈4Zi=Vyx`?!yWד0r4rCNILs+zlC!4Ro뙩[7\Qy{y̼{uts_\=oK@SVQ7M +:G:*|lmAt ܷ@@#72 tJoU=WK:3M h~Kr˨Fd$nn)ɑZ^8|_ҽ,ѼE$\U7-pMM(vgqR@'6o!;ǕՓ6ǙrP~rZBd1KjS2RF.we.g<8keмwjƓ|V^oD4}P(nrol>cglúb\âBfW2s粀]?y[ h/~g)Zeƅt +pRn`W*Yhu&ڊHR?8PPtY/Jߢ#10 +slhX-ӹX֗6-wkfI׹ʕTJbYWTfhuq^ЮCK73~.;zYm0Vr'f#hu&:ֶq af 葎T:KzQ|.9vQH%f*X6\F- ~.ۻI9{Ci{ʘr-- ]\ +\ +ڪm,uЅQ>3%KH%DVДGRM̮'lrVbu=q~9)SUejӨKF +9悷) h)O?ft}+mX:m7T +r;Q)͙I$Rh#vTEnu/wZv욶]2R͠~h)m^ƛ ]TA:s~g-. +\,\)w 񈜀x@żpR]*t^,򌎱8D"mx> }{h: ֙)W57 ЇxمR)n^/"n7t9ΣZ ++cw%WV +袀9=*.Ұ ƹ,&_sh'`ȹT}fyz)f>'֋]ĹL ܜ4IrDq]ޤZq2cr܍plr4;H"9l7u嫹FscЋ%u6޶hu(3=#.3?]"z4x\qJݫϙ+]Y"mjM (zr:y}XIӌN}S*-SlIQ%sتICK9E7=?>?>U +}k gǜD,.aK {6f:ֹw]Ѝyᗱ\g5Z"iThޝ_!p@@c0}kW! +5^i_.=;^_kܤ~cnteYh]tZZs.$<D%P +Ehpup5JGf hrqE7OpaW=om-De#osϓtަ5 Sn(I)tO6h8y5eU(&K"UB7!?h޹Z7@gYTSUDp4gn S-C|q,ri?Ï&/B,±IRd.~{s=߾f*,С 蘂Kl/+}B3C4hEX~r Z~ 'ͺ=[n;S2Jr\zp-#}򞷖ѵѥy셖綍RbOWO:4m+r&/5s8$BG!puDH f>膜jR~bW=@먏/_|DY&yB+ïdBMF_Wy4G<,؇p *cBJ̐떊 +șV5=:hJ06}J̒rb)??g~ԕjV,;% -L6v1;$nzxPqY@^27$lzW:IhJ۷'SsYa2G8;ۗZ@%9 +6fu7d¥ o!KkA@*:s,$X d4:sյov( l7soJjL +4-D&3i"Рy4J|̯!,P.\9c5I-Eǩ|so՗u1 \px&c0>|b3w|~h9١Θ+X@w(krmfk,Nc)ɒZݘ&V +7^uBfbWvDybpwEi?H,;ւNu{:o:zxG+z̯r h9Gl+'ǹu!n p|9}*uM4:s7grQCLAlkwu8}7MyAԾN7t;4for̪ckg^K[4w Љ G=5Zߤ(lVnFNe*Uɾf5w{6ow+Kˢ hW%ҜX _]?7|Ix} +HcL|k*\?gZ6X5@ ν5SgǶz"clKՈŒGj==tHHv~׍s]t;鹫D!jYg k"pKUAb?i¹A 7HPD/ +!,FG ' TwYc~?q[( w# uo͑@maOq=KzTVj5ԝJͿw?Sx jS[I4%4)iTN%bu3y”hmZ$5FŮl|i=fr3U!dmMDKD@(j+#w^qsh?uhAc^k9e;kie(H`Af o" ֙#?}= e+D E@K36l)j=h34rR!!*Wվޛ7Խߎ_2=m$3ukV[?ee>U4 u+u8lP pHGAIf?~^3'9z.Gî.e%qCWDM]O{Tv<`aS}s)4o" i*%P<ي,՝lY+˟~}YofohNS^VK< $UK(rd\5WWq Lv=zBLwr Dqs=^@t`M׳4N]?gj:z-=t!=0w;ۀpN97^[y 诧G++4D#h:=ۢvc +:yq`yigָpUݵ[U.Yi/EZʙy]۱mMF(n>brEKQ1.f]9/˫#]xEwz, t2RzpO)Dluhވ/q^yɑ+|{dR:{o7/_y|"W{7&wEc^6'wj.H7d .o. ֩зХ,spfg+85=lD+?Ez*YXZiDKsυ}ȪSD8[t};W1%|]"d!rr/q5WG=бWbtKE(hn40\1`Wʙ +ΉM]+8:=»W+˿_r=]$_1 +'*zKYbD4:u{sҚmtsy A~-4,cUbE@s4ՐnQu[w]חwyqé7}\ &w,1'YRs]Hj&y}DQ-l{An-<HmK=*vpX,w8L|qinrwm 0al=Y Rӝ{#Q?5rY:9-={&iKuf\#h:E6l'Z]`)k%?8iHy:8=(*ű$o䢊{vUO hq ʅTˋ}"Yz+ɝF>.!h,{iއPՈ5gU'_M꘹ (tɹk.uI8orQv*0͚[F ŃQ"{=^ao]fJ"hu:h6K@o^h#9@?wK_Ǜdߛk0z/UeqUFL7 o: ֱzV{so5p%~Q,\؂${P. YsTFJ[NUO>eή?/SĘEb1<]>i~CHrfyL}~*|1q9'>rB$p\}7׼^J*WњќVtּ)QՅc{5m/ĂRF]] w; Pۃ:GV4O~73~m|g!]Wv:A2c#yONo<\9NVv_]N{.9o?siI< #$jhuNt=|zr-q kA@`e،(pҰP-Wr캷kvRǏ7&l +'H\.3}rfK>r{ޙA6FIt(8뒎3~~׏mwF$E+ :p:l0eDQK!6$~,pљ(ms^.:Pw^o+3gl;*MȢHkGNOaý)6)={@3j} {di]眸f=;RE. A]чgԝeUwQٝ]FyvUgw, ͺtݕMuwUWeUevefDƹ//8Dĉy)-#O[rJ|be4Q 2yЌ9OzK5Ljio Ća=!~ wW1q]@Ռ;6:ly{ΚM +>AFJRwV.r6K<@+ Dٳك4o;;#z67{KvF6̛d +nZϖ>wpz{碏n7hnzot/zj[ &ǣc{IؚE +Ccu[}֟nU mu #;H|b.! +@S/b_H> +kb%_ipwΣP@Z٥mDɓMpoa\.g r~6th(drV7>*x ya +_DN.0^y5w#GS❲}K!TkA?f{NG7lRcQ}*NR dRqO4M a'c }LajY,;粀nYںd:Rz !TZ +h`?N*3?hhnɀ0\O1;S'FF@]IYcB [;(gM:n^S+AD*3R9!S8Z'%J=)ڌvh`lC=?/wzqEN+q /Nv|[ouZ ;V EߥI7LobC4D_8@@cVRXIjTug{s{}z^*:GZ&ll&J*5lG4(i!)lSqFR>[Rcl\=7$A Z~2nڪl &HJZ/~x"J +XtF:0N容I~$J-dtfcGs<*SoFag+a׿aS3QR@k>u +⒓jZ@ϩWE>~1V8@@#NRD"d}>b])]7i;jڞbF@7D0Ok=+UtL\'-((m)r+8#[\ro.4rrwwEl6 /wv.DK[2.[M!mSbT5GŠ3DڛV<` Quwu4]e +sLÆɀӷ#=lWV"O|gj[ jym_n}:Z.>7(@WI@o%%兝vɽ>bjV@"hBt!{̺ K˧R-g[\'=L4clF#J[6B w5 ҟInr SsH9߼¡imxfM>∞W9LAbҤ-} +}܇Ա /Os2iKϞԽ7En7P#O{K NςZU>yGxP z,>Zf}.L\*GZ2:RF۪v 4Iމ|(]G9~+^[uߪo5}vn +? &һ=kq" +wJe{5Sl"9Na;h:d@rjŘDi$=#=kbL4 !U@Ie+MWc?W_s+{;gIWT}rÒzZ_苪RN@ T;/XMCJ/<Ͽ8]ytk0g3:_lC>(ʣNښJL'UpOBLڅ4_No{XhI݄|=1AJ_lTraϮ/oj>3\:Mj{1&L\9͑pV}NHQ}p*G|~Uq|~<3|М_vʄyJjcQ1d۶Y &:O&,R9*z4h[Ӳ=c%[>jrQ[4;ak*{܅@EN:oj5/KSY8&uiN֔QG|\#t +4h { ={GYO,|Zoyp,3h~5$űE.!܅-O`xɡ }כ:vDhr[cc$RޫM1&OZbP'jrd(4uYb!yp4.B7KEzs.]ХTb\Y[6hiY[nԗ2lbʋUASFv'uB^IwZr~maoͭ.'(֗K2=ԂgZVnq +DwDв;ԫ53 JO`efg]zH||]o\ ʑ?ku7R{.cW8n>umuԹAZ9.e 9MD"'L7v P=)=g<ʅ&a3˛/>Uml4VI@gT]AѸo*%Myủz)^X(~~˯ &$]GxzС PYf/6D=/'+\Zya;}膱#@_ss}o}4P9]6ꍵ/Ȑ׆>p!b +RF/u|-cw{욢H@L|YC3۶ʦU8| +M2/2=!~ssё;| ?4 tlvgӒLүNJVU + P/(tOx cCIPL扂P [ުO`O3_)c 8@@#=5 2|KXH[50ٴor8K#gBeº:7M6m񥷻4q;FQߔfK}06{{R-vr nlB~wr\67|_s+{wAlEڝM|}hz>]IwJaEmzOEh7e 7Of^!`3ܶlk97:@Ħf.y[ +V[`Q( 5N/yvI6TX2L@ UN .¡\Q(34No‰+gz39͗8x`a+c0W֐o.(*eZkHU=q&udM5G% ?:4ny%+_P{S*vO@>Pd +pK }bgd?hS 'Xw1Ұf#MSDF@L\aut'OZ2 ?I*H@~gMtk\YFDHu¹Ԥ7E-30Mʹ9:N]+!.Ķ[Hr5iHy +q3i KIkػ{n;hrb\sUSFѾ2mѮlqVvIד^M%e򵑕dXIn\"{P10)^&.i'޹pr%'| a;;*ȷyԽܚZʯ}C-׳m +4|:bfRz[O7i6(t̐#5bL;@vvEYOX|*#Mb}4P9F@o&ǢO? !;I/#VaB9N弲>T}"nQC5ðF|8p)뮰j# 26UN--U˯)ݛJ0Q7}s ~ڽ\rez6M9ȼ)iP["40 ΛvY sPĐGZ4NҹyhZ8z_SҒp/++o*Hy׻K+8w_ +T홎*qmCI꼭VRStf9Ǚү bؚ?pLA޳&1~9vi:EWvkjU2*D2VSW7g3o|[ɕ]՗,va]ـBwQ]A(B<)ֿSCK2*7|x-@SCum۴fS/)}\ {ғJ\.ġUyqf@f.J`og=I?': ޞ6lh)˴B6! +Xj\a%hX&Jo]/y.ϭ?R4BXH5&["-e>IIvt$5ss|c/xtg @Cu=g߱:[20U4T̑d7ٮf20cAc8h^+e{g5DQX:~Z+Ӽܒaɏ j]ǭͷ|ˇvW@ wE@&2U+wG^+M?L'@|D #~Lx8>QvXz_xp8U߀*/ o:~5a%W 7.gև瓷ἇnv|}P-lI9غ +٩UQyՅsbl Lg!j4.vϾH!C {?7z_o?yj<[?Q!p<~+ |6 b[T_>e:6ƟAu[OG1N9V5+_7~ؖT4g#dnp`y*6Ÿ֔QX@?@DtןceCָ+dPm,Y Ǟ4IgZ)ptDoo|aUuaYҖR8q)ЅN9SSibtмg7욀v 78\{S٦!\<"B"a/kn}ũ[}:"nމdI*/Qozd=e}ST hg \uת\1=L@p`w*/7cqZt_'8/pbKEIڰS̤I3 e&LZ*3[.4oQvސ4㎶ӰG/D9B5,LP&ӷvf6j]1V -a7o&1j3M4mVLENVz~Y:ouL,}W|wJnl`; ^Ϛn!ck+9NLtl(|wZșo<^9C;@@=?sxgSƤi!d^FX bzW"]z 9nH䑆VB5 N6;sm45MHס11pgtG5n%vfvk3sߤ+;M cf,aN@U@%OoNC k66k;_M+c7gs(uGIj{l}_Z۴0I@\Txd{F{A);7&}}ݘ@{u^-7Nή&K\MR8#vS"-t.izR3yM%3'̡iVXL;vۉNO|@$m*M|-aF5Ku~ |2nOapmh6o5[c/vn;ww6ffYM9N}}5j6c`r<ٿb\v=-:Ӈ'OMʟѷɶ̽jv|܅w5/>RU!`*/5QЮ-tsGMfe ivJ2c i idtlc,. #N-r.LGs w3]Q@o>H )I{x-"\@5C V|2bw&żj-/ɤcbn|DِqvCg+Sm[QG*<}CwUs#;)YlgN)5W޿}=1M{dmӟ8j VrU#zY!=,y&i|%}m'n{mQˮ hrvcMevvۢ-yP'f7"M旗"msk(h*փ I+~lE.{Fif,%E;m|޲Mt_Hh7Xa(C[4lG dmeķK7x[JgΐWp磔+h:D3_]R'b%;'z I`۽AIjzX^{K{hX.wGe).E +} Q{,\Lv2_3r=GP1@'#W35iΔbwD-ls'}ڜI@JQJ6:'V+41 h*kF#5mN4W-M" l3gse(Ѽ%2iW~`㒀}w*ڛv DO@2?wQmllA(tx!69o<4.;]RS da=H=Ne(-tDzI@S"zadk̹#;kn~4S +h.ES4e{ҍfֱMp-[n”pB.DsCdQן1%Y[ C/"Pm/ʐ^M/X@SW2ub U㣻i\z3mrw~9MѶyrY5/H@Sz5Zr +;םDoOe!>r/ZOtUz?UkLAΐ44P;y1YxM~fn(Af>.ܴ9zٖ5X++ [*ڶGHin(S-Յs pW*ۣx3  BMa -4I햊´#Ik$P@sޙu4?j."L9膨mɚ>!՛|FPk=]sb!ʡ2h2˼iMSЬ)C{'n洹d5%ʩj?+o^z)=ťf(Nc!Tk1 +Y4溌Tn'o?yjs|_r_^ƽb˪+~7 -aN⿿7:M\ZZB` TNG¥%o륵s@$R D39Bk\QS#8kWUR [" ZMb@'|?S1qKS'dwht+D;~&[I "0򌀮˸Δ^! GL5}n(mtHFd(R}¾TR-ټUЮW}(9604eDN^P諚Zw!".?}r{H~[-V*MJj}>O =Bпq?'ovWWWQ襥f*p0' б+SsKtl#+EdTXHkV#MYoҵ/xTضل7Mmym +މ\CLQI`tpUֻirbMPʕwCH)07ZJsz(tc6t6o ^­tmĸy[;\gMNY@'IE6#m7H71S@_UjaS5 ۨ皩rkq|xI<59 ӟ|dm%; d'ms *TW=z-Q+%TULo nQv9L*g`3Ivr;Uogeۢ=Smtfna,Mfu^=bnaxLWmX5DgQ&#_tI4)ܰrp;am] +h`Z(HbyM̨P.{K՞TVA(Ԯ9aU}[Wњ=NRqI+@H|_/'IH^_i.ThK+qZOx8}uA?s?賦މ@@ T@tG՞-./KwnaKE}wI/[(!7cBnyZ" +RaMbs}N,(ˎl+[ւs>T qLʸa3.IOZo(2p"gFAj^Rl;1zMĞTmLVυχG|+@Hʟ7L:䔹#EX+ +٩D_/XBۮ_МT5}scF~ޟ>ޜ5E o@@3/=dFGs #i"#tnm }Cᯈ~qp>k uR\2?\´qORX7(ta}ibRwErnW_j~ܠ\%]%Qr ćAbP@?;~9_qK^[G}?YreS^M5tѡ5<[Rz΄yC}IdXof3l2a\ZZBz T΀VJ~w +hM۴v -=6[;(RMk)\ Β$^l-t*ܿ]sͅ41+c^M7ڕWvjd٣%*0 0r/! ݵ>+IAuxvI%o D K6UmA67]cm ϡ?77ޟzy@@#5'9-\]shUD)T<6 $hk?âwBts[г8ψ5څf~9GY2:ZNsJ'Ŏn)?L? -UiJ*j mK/{շ?|&.\e\Aw:D뫭 Q3ntUD[2T8/@HuMG8,7=}/?e͇1, +}R@@3 "En8޹CRf<59|r7+O@jdҰGB}e:QG3Š `3 h5xZ@nwuu5^ZZj68"(4P9 "^nCffyB u[}SC]kZP)ٻƆ]eGAfDvsJbb^3ɑ¯k&dm$T-48~k+[ʜz-v.}?ԛ4LTMٽ[iyQhz{I:w5!7=SFQDZ@@#c!Q٭}s gn(za]%[vѭf*e$q]T.r}K]p#ī6 +I[8IMX͕q2 Py_\ξʟm3+zsʕ;RdtO&Y//ڶY_+w* Yt8O +;o{Öa͒Y2&>@@hFu2) +ό֣*y|Q6DVY!kn:YGYt.&%[82 O'K+qke{{g]]m"hO\;C + C[ܰ+'|_$$2޴ \ -VL)"{D$QvB @h. hr7{|vy\?fV>+xҺJxa$d0[6d/g=D[qZ+v5 +Tž 旓 j1}J'zƞr{jGO湋3<¢QmM~>!p57+u$) hQ4P9;ZwܨfEЕ3,4w!*䷨edIë/ɰ:[ mk9Ήvw}yۛB4d9gT)X{4L@׬&b%WŧtrwB_c$L:<% +)T +79GI^_D%K1:Y,0:QA[FpVsFnϦxػ+y.tq0Z{IH5t-G\x&=I|?z.oZ$MN'7<3q{y!ri{x?q%Az*GgȄwxWLD'<ωNS=o ! %XHXW17@H,0c,\P jٓSfc@&2nzQSD F -v%In Ϸҙݔt~P+ kߞZ*JH@†CQ5rt?" +uJB@`fLWU[/oNCtCF#$;I9~o;yGkOUpϕ?e/E5ePN|l M.1KKKfsՆ#dZOx\6,-5ϢXa֯Mg[DO +qS. #BSZe>ԛAXOs]܂ݚ2 BF +Hzd{ңPxÔO )pRws+}lAIR5;:%b֎б<;;nSw_rY5Gђy r C߯~gMqj)BcN@@ct]ơe$;HHmu l6LJ/-xme4uI@z #*Qgቶ!taR +db)s&7q_cߍ51$vyݵ!# A#ͳ!QfR{\NԼ(k^9?Ѕё~> +:V5 G_UbC6D"ɤ;xMЛKԧ:(Z]]vBDzSFdgQ 3",*#6YN:e 2mB?fe2 3)iʑM@ +(ݳMmn誨_p+;Ҵ4Tiޖ~[EnSҚh4E5f][J~} mJIIUm*oRX1'2&{+RtOPm/cu$R9xщϼ?~Y߮ +h)>ffeoCD7h3a  +hr[:M-vd/&LdHS䎹##6T5ЙvRhyc۞ރa]}rYgZ|Ěh@H! '}Bm[2RK_(wt=kQp F@5_îf~Nl8+%& ߮Ig7v"7ѝ UPW&R)/.FU-27{SΙ?P>pS}Ŝ+!t3iKT_/8Γ(Ο?L(@@c4ߛͺkF.5b 2-ቅ䣩ӛ榧I@gj:Xr34dici|V-됃N4XM!57ȭ2jJj"ᆍHȞ4_/qplE`M4o{Uէ4_'t}vm&>YszBq ǶMmHh==ch1/{I(T%w=  h &ߣk`KT-.Y@QhrЈBO 4P9F@VmP"56=#A%$Ejy9M ecG4l|#> G&HCV`1dfͽU|N,L(o9Bšh%j2&E/5 !juaS5[ +h}0{#^~^NؖQG 2*)ux<9y/iKFʏPy5п]mzwx+Cub#Zڝo;#մ +N8"#춭p,Jl[t~anRSbqMȺ$7˧PM\sOzt͹:Z;<ɶ}AZ߾UU,7Gw. wvgmQDۦoЈ]сx\a$&Y(M, d􌪯$GF g}z˸|B>4h J$پce~/ }"Z{G7,`vpO= -g9Z B)h 1طzQ+c &a "dT8TSVtt.>-Ӄ_rhR"v`V:w d;jqIxZLoKv"-NG>+KAw3R@҅66E!jzf6 +*qM؃wߺ7L†#R}Y5&٢I)Գ<_Pyuo$5#w"oKN|%/У] {}N= mԉ9rj> +lr]@@c7ˍRe=5+G@%T)dnOR C86Y+5Yixi#?0﬇}ytt$J^Vw-̯~qLtCȐ82ZY*|D55nڸB-+t}&^!!Y_H@Zp~β3eҳMU|2Y=OWM顿 un +ըwe#;c?^2p,ߜz(s0 +:I*/^Yv.efvڝbfdbM77{4LwZampP@oQ^ج4OQ{P[kVȶD]2b^vj neVh#EK7m\&n~f9wOnvq ڄ؜=Ƹub%O' Zֻx[_:9z}\'yKu1$MH4γ _ q΁Ě%0eL&,4P9}}Dn_';mIR{62Ͷno,ߙf̝nh +)#f&SV#qYUD/hκK˺Κ6+PϨ:_LhbLb?K^CM.f~8Go!mS_"}p gй"k +Y]wݱ#'NPߟXx ?)%T&D+?` MzWrCkߠיun:~ջT}[2Γ/X!v(VWWݮQ@@eW7ٖNju4yE*VfuwzSԨOk{X_!-JnmќyM#AyDWlPT;ByaUgE 3V>A6}`M5s)Tx^avVn5C fz +nbL-AiZ:h\D% 3И⺌)?1}G@Yp{!g+_ =%/z҉".u}cW=ձxw!N#^*|ssS'ܾ 偀*/=3{@I +nHP+v !GmՎMo +f_tīLۼ;w;:fISzV}Io\P-}GؗOR!j26c&OR5u[V_JoFQ4pwPaFkUx@4 _Ir*c ' +DZ4*;O~}cDM@{WcP 1/Ҝo+2, +}Բ'?*/ˊ/nzV(U5EuՔqVVƫ噚7(L/B'")f[**h);Q^XSr#qwU'ž|uU$۸aJ'T@&s27op >КHz4Iӆyx>Ux"94Ѷ–>eL +"呀'_t3/yѤǝCkN4IZi4dJWxM+aaSFWI{?VQ襥fy*gtam(&be#֫᪚ rdd8Ӭh^3 +h_31WU}KTS>OJ@WXK=U'žlm۲lﲕ dRؤ;l*ӽ{o[L޼ԪK9v˪:0 +:#}nwC\g=[0lVfnBcpmeh׌2޶=[ǪjŶBVŢnP D}pzCpG܋pz&{{"gM'L!kj%淈|&z4}Z-LjH)L:Vz@@?Y!wm!g+_$2xz$5nPg'm[yU c^ݷ^ɞf, `yy|2!4P9F@Dt yFXqmHpVڵ۬i n,)ǥiDie17V^v|vcKxrfNqfvٮ.G +V$*d{Nys7cK/Dg(@+[_'ۭIOxjZ{gM +x'.-'MM|; +lpP/-~o|s?Ej;0Qhhr>${ɎSPl̚Tii:1|J ױemD!h)y0 4E +cvXjՠe>`!"<*Tw'2s8YcciwXؿӤzhdlJy7 {g)ޙ6 @kd(Ο?L*a[~zm0ZPpZv*kfZZ֟s$ c[e(t婋3z?:"aM(Bt0Qİiki"9-ԻPm1xa,#+a'awiVM3ubeNPOGgR ̇N,ya65!P-CsgyIIȘ$;8wC/ԟ3Lj>qD}??XB;}0޻VSwPKvp>jٓSe 1Y3y,:ͦ#i( *#1HN\naVw~ФgLz +z18KX@OQQSeVy|{j\q~ǩ[>zg%<Nή}xVг:;}r܇G&B@cm޺"N;їW'&&,Fi6r; jCb}}Y5ύ9e3=n=>Z؁_P DZذhol_4 +w-O*.v>;s/Euw;證|t[me7>wg~(B3q@@cx{%yMAڴPh=Ub") iy"ehDtwrLA!(CT7s&ZL±NNyP Eʋ4~n˰]?N(,vcՓUj/Bб7T+YR^UH":AZw9 qaan[nGOx,gbT@'4upCd'm8,<_ۉtdNc% 8_x˞G}x]_POR֗_.L~ ({]>f5 (Z]]vk8 +  T|ge#c#R.*ʸ->±iL_PW)M*yv@,Q|wA|@ygW@-yDrx=Jސr@&Z*M>x';b Bж3T]|7U=300dص?kg~P6l.--]cQhhrc?&Ok.>)sbzM=,S8ð!:MgInj˞ s8mfGSUAo ޸-nx4>j ^H?vU0B+g]X+KnDI)R7{QM|̟_+3e6r%i21_o[M2Z_Fyؓ-1cdك/>*X\)_,Sۭ +h0„OIߩ5Ԧg<@&pP>jٓShr?_ہ455 S}}a3>ޛ'0ͧ'w7MkAw L/.UQnWz'u*6F:uOLI5)gb@@"iyfN +XXI}/\� ~൳Fz쯞]m/>zҬɄTA;zMhDod1, +}Ž:*G/ + +updsCj&B,V49XWdy\s1W!z{Vv!O (ސ4ŴyfLpOUa}}h/\D7 +-i~6Z*?SW"#1<;N;gbwſ._yI.K{@7GfW{J(44P9["JLz1,͡zkn+?ޤ5l_r1JjjCwSb٧@'4*DVz1KđWaےluyT;.3MGFJR=Bᓤt{+ B&*n`ܗV43 +hmhh4h/)?/]:>g}uRGZES捾WU4nh^¸ky߿yuϏ dBhrOϛ" +]eyS^*p+mEۼA}ƫBTUЅY]fdHSUmZD>ͽ[ rkzʓ~ ٔ&Iס(.R })SR-lfUU,>+7eԱ_PxsVpd(oo7Jϖ/'?>WR}5%SҐopG_Q>Г !ʑ悌6TtU!#p]7y[pvZ/R-LѱaBiWYi>X 5'60/z\nWD.pC՛2 +ޭ d;#h)%Y@s_1GS5TH[']7u(kIlr d2BkM3+ȩsҸ4t,v K$5@fX@$7W]8k5KfBC@#_Am +h*)&\5*04'NVl=#-W󼂫? 4DȭJ}>\vA@sp6/wn" dB<6"^rLV@wEԔz"<;+TՏf GˣiF@H~yd~=?r75_r}?m{g#Gq񪞏ƞ87 8F H>Ds n9DP(+{7JUTwGo=&`tg#TDGPqOơ:#Șŗ]~1,Id§. +  4k %Vnpav\;siH2#uH+өl]KJnE^lzxm[XYU/c>Ύ +~nւ7H*[ABZBuqk)i.޲!n[4Xh:QvǹVa ET; {ldfJܘ迾\Brg;пVhԶpлshtR(Bٖ#)LFG*!"?`/ݸcdQ3Ù2S I@?vdFVp_ z*+VElPTѵ27k U]*IUK<#2:"=Tzl౭Fqsr\S4Bb\.&QtVk-568076]uNO| 2q4k6;>MT@LjczfC74M3ZS%0VbYS PO@_Ջq0j(448&-8#X, ;1$Y3e.I@sw3:s*k h햼~j̖-fZmi)yg݁HX=~pɣM#UD;dt_454i3`QSQoԛJMtqVfI-^A7B$̝^)w پِ Կb Rp4px)mC@7EU,iu ƙ%6 ,[kz Ԝ4?숬%5oAB*;U2s[rV4j7+MJ䰶7/"C}$J2џȭb;xWNk,gО.BOi%^#`v:;ϱz~(0k6:嵝^}{'"Kʆrk>k?2wѳfҿA|Oo*>oo/΅w8ޟX7w_D ;@J5_yoJR0/FGQW>@%3!q+83ke͆%t47;9r~4\9QrY?81*oB\Ar nY6i4K,m 9 f/}wRx`(]9Qk^LqSѢ0=PSǖ}Ɂ:Pj 뀭c֬lR>0QrFʩ<ѷS%' +IV'ֱjB_gxnoݼ["cN,Cs+EҙZ嶄[A^|IZǢ]z.]RK_iBC@ (,MIqfev,kN]Kƪo>9L}2t'r--ߒ4H, ly WdZ]bWT]>Vz:.3#ѡǢ#yN"ꁌ]9F/ʊRW36sf:J|TI͍dxc{A2:Bvt0oTs?=;] *G?m z>a (Ɵ_<‡/C9xO L 4ΜR2!b2e&M%5 \G/ᚎȊQ% Ԓmb SVU5keRW,otmPL{*zecn^^OPKO$hsZN[mAe}#ehPХ&B>]$sb>o+r} x["7~-qKm;i";yO@oTshHq)_,_:UF9"PJYsK.U$IrppbɄ@ _;b,8^±iיkhJh3[ӱr*[PgۗsʩXSg.+ҶTT!\4 \Gтqv.nKFQ@SrCʡs<[^m9u^خ֋s~cD-~5hZ |mx-"|) +-tbM:*)u6d{2IXocV@F;FI6m̵p䬽a$(yޡqĸOZJQ+4wJgBg6OoUs/~S^T|πb|"4-J?vϠoyZ=.USj5.yf $Iܽ{8ps@^D'[V$y.ܒQ:X*UL^Afr[xY]5wtT vNX>XuD_eRrrNgBv֙:ˠ-:T$ $_!ܛA)ڱ&K6ke hj!ɪWw%l/oPQ61ɺ FNt]_Ot/ߨ.gJ~!5eҞ&:5C?37xWOؙD}كW4p2&zhģ@ҤtK-N +mɨ$j2ȴ%=yL6عsy~f0;km~UX @6m~bA ;XX^cmKa ȇ;h7F\iܛAp`jtD,m7wQ@S[K7&AI8EB-&Y6XT*s针Uog7~*[> D I&/h:YGvK} Y E +^Nga'Pllh:Z8 +{iU;tCʥ- $UM[v!}<&V8IllD@sz{^Ֆ;u|Cվ qYӏGa s$ r#in>mqɸCoiuʕ9Cq9UdYޏLU'N h#>z%Ҵ|{xy3 I៭|FswI|w9kn|ݕ?%h(9Y΀z e@ څ[2oIyƢR-LryaclacWVq=ʙ.߫#BRyZ4`Ďml5X]HxOACp/FUಅf&dLiV.spcR453p h֊|׃Rs:օn3c32_KUٽe۲enGGdx};^68%Q'U 4Ny*RW?V?3$DIbOAtk:(]~TڵpW}: y=~ϱbz67J&Hstvc[!19e.v~J4ұks54436g*H+=Lx32UsׅΥg(O?̵o^WX'L 4NX,.v$sH405-,v=w)3Hѷ[2KTkOu4;_jZ3'K}ӲbPF\1UP#{Z$݄,{m~68p- XmC_]}2ǟ:sT(R>no]Ӑ$~9 +  4̵ +endstream endobj 514 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ԣ4pQ@PEQEQGz(& +PҥZS$tRv+'#Sv!ԵWYңRQYIEŢ,J(\Z)(pƥZSƷ3-65c0iʟ-Mhz{QMQ1 +}*J6V"(.QE QEp(\)M:4Th8B|5E0kJO2*l1 + +ьb5§ԍp o}Q^qQ@Q@Q@Q@Bz}ZS1^ǾH [2J7NjH84jհ rb!S~X%z%+=(((өiՄ6MoNnob:j&ƺq⢋5-eWYPVQE +( +(Q@-%,IKV4R:-5WVE%/j֓)pk?g=Lu?i|-L +)(> Zݱ]ql tP F^>o/yGIEWϟFQERREP0((&ƫޮfgz}F+ev<猣}e<_[ +((( -ukº +u{d_?J# 6)waEWcָQEX.QEŠ(¸TmJcU~)̉V)$k&6\s^]SWSQEHTu%Fz\m{T֯aAQ\&R οEV,e'VumAsU.E@QEQE(&ƴc[2=-ܬh k;p5g`)*)CReCWi"fAEWY5CV, +ʻ93l:X2Q^)Q@Q@Š('ݧR74]2( ( 1>Wd] +6(QEh?^lK*;0L(;B((((jjOZSƷ6JZ +(*_j +~ ڠҬ: E%-yRREPEPEPEPEPPT]?ίGEd*P1[Nj&鹕SRȻ[ڄM蔚^ԔV& %J(-%-%q{QIE E%X.ɾ>/ܫĈ)s%qT#_:;ɳւR +((((QE*){TtU"Ȩ8)Wސ֥0\(((((! Hi}U Z Vf̨=JFzLZ(#JZ@QI@ EPEPQ?ީj):֐ʯ%#r[#W1*$V@C/zLu=QhEPE"Vst-Q`QީSQZ]"j Vw:iEQRXQEQEQEQEQEQERJQIQEH2T"t"E4wBi5fr(ne̫1k`8s(8UuhWA^nGh +(c۸QEp)(VŢ,;IEXWE22-OǸ]=^*k갲禟VQ +((( RᏢֽf ĭ_/cQEpEPEPEPL~kOc**?^.}AOYbaJHɢ$I>tJku&M隬iSd_,C{sW*lCcJ3\*ջ!ßSWkL^E(((( +KQ֮UFIFkcsueOC]TWI E%v3")&P1ڎ6-\9 +*95ˋvμTYŢ@\Z(ڐMci(% dr} jYP]?E'z;U؋iiQ`,2jUOY*aQXIE -%Ţ)E'z 0%G/AWί + tX㸹ii.5S*ڷWqjͿ?ZVT)WJdW ڃIEqhøP))ELZJ)) RvZ)(pIiԏM\tfs1I SQLJC%LTISAf֌y1QE +( +(Q@QH(('4k}Uɖz(JW8Җ^IE RR PJ)ŢAqi}u5᪎,Iځ]v8n)Êd +]=f"Q^y(KIEp( -%Š(.Bxi}euGdpI0 UEl3:VSoaW+SGV6QErEP +(QE( +dUȩX(9Uڪ3ZF6R~bIEsIE-֊Ʒ$+(cuߵJdڜ#} GJ+)AKIE+RQEqhŢ, +ZJ(\Z(—%\њJ( +h.?:WDYx#qyzx?nV>cֶ+%zQ l(P(((((kڎoj:tKR_БYֶ/uB cZ,Wncj%Q^QEH6*\1*2Fur}-qlOPZ {Xs֔ϧ.J1^BIE`t\Z)(.- +CN +Zk}KHzkre#hNkUHSҙso +歀tWzqKҥjWt~5v +W-ԎǙXn1}MKHQBQEHhی@Luj (Ō~G}RQ^i EQERQ@\Zd>v;SX:(1eHfEmIzfQElsQ@J>2t5u(嚴V f֬c1H/yQEyQEQEQEQEBxi}etdqMZL(d(~ZilsVZQZQ@- jz~ϫҚ +(5 +( +( +(Q@2OO4" + +( +x$U|wfUvBUȸ~NN'dVvQEvQ@Q@Q@Q@Q@Q@(h(@aJc5pjJ3IEic+ڒ(\(,+QaZ)(pҚJ .QE1{SKl?x}uMj(8Š((0)(() @2Q]5CS}:fuz( +( +( +( +( +(#I: +!> Vd:|YR}MI6z8uM!h(JZ((tө&[2*)(Ẁ +k:(Š((iITwKIEeckQNHQ~ +(Q@Q@Q@Q@Q@Q@Q@- Ƃ3FiXaEP~FlV5oKOlְ+rsaٳ[~TtŻ1Zד6"G."Ev(pQEŠ( +))i= GRTu3B9t.k>8 +R8iB1yJSS} +Z# Aڬ^ 8J*Sw_ZmX_T$[8YQE(⼓ьb5IҖ6},UAER(((((Vi+d<Փ1EI/ܨҺ`ۊCJLZ)(5Fd26}j:^W>z( U`=MjVt3 TW/^QEzAEPEPEPHthB{QIڌIqj ٨f kK14gqiiiX.6_PʟA]40`=Mjd3'ִH/vLu ŢIEqhP1hd:N]NJR*gp5Zfַ(waqhh=h\ +}61N6Zɞ4AKIEIŢIE!Z)(W;@4QLLEOZ8.-qMA'ߩ)z֗gSa^I9uʌNٱǥ'c_ZCE zZm- PƘRQJqhQEtƷJ;(Zk}ZCBOTGEV8QEQIEJ JZ(()(rƢ[1zOE!GpŢ +IE( E'zZ(fŤr}Iޕh]➕fbU#_c_:0c褢,wZZm-ŠJ(-RQ`Sҋ))h2OQv[ +(1,EbH R=X+E!hhJZ(pGjUR%JdQAEt$5%2/OI&z4(5 +( +(9iS-㨢( +(1hqi(Q@Q@\(E%(0SҒ"dQ@EIAEQ`ﶕ}T=optdb۸{y]^Ju z`T؆"O:ʎl+SAETQ@Q@Q@ IEQETg*6ƴmT/KQI onj9̅2)WL_+MoUfcUǩ栚=BxUb&ntcf42}[783B^!wJ(Ţ +)(RS7Sk;SLGMW5\kTrWZQ[*EW5]^ªىEVփ3`MhU+!v[C+R +(lv(, +(Š(p(OR))_J[2*9IMe \Y^(Ä(*YamI ξօQc*pc ZŠ(C((QIE (5騪fsV(*HjA7J֗eW#+ +ZJU`=1t/-WzEPEPER)QEQE1Jt|k;#ZIQL*Z_WOD2\~Tb>#L?QEsEPEPEPEPIEqs旵6IQHaERRFk{\ZJLњ,bҚ,QIG+=i=(E{IAMȦ*xA7jkvxQEuQ@Q@Q@/zJ)ڊ( (~QԓuuGO] +,]1duaV(;(((((= CS~u9LӗZŚ( +(Q@Q@RxR7JZ e}nt5袊#oi)[J[RݓJu +ZzӊH(C +( +( +rӗL.ES )QEQEQEQEQEQERQH.JzUzKRi-QRPV\W֥PұEvi5yy`EV Z (\(, +(Š(w +( +(Fz?ZUFr)}qTW"++\G*yFPT 9E_UZAV,e'Uzd9s٦^KtQEyQEQEQEQEQE2N{V@jz_[S欽єQEtP>l)H fR\U!^6!ޤ{ J!EV&EPEPEPEPR}m>^;4 +FM-%R3ej(n ;RGˊ?vXKIErŠ(.QEqh)2>ETf– +(AE% +KIE;Ť +(PJ)IK@Q@ƞfBu4uTQE̹՚2!iF\3 DyŢ)(((((()ڟM~Q܊ Mihl[59Mfx0nATuUYEщޮݱ5F-F LVDԴ(-P1h E% Z( +)(QԍME[CcݍIL|49kCEWQ9CN+rVV!ESmjj!jJƣ7PQEQ@Q@Q@ER (-;摎0e+;QEQ@EQE!N¸RRpŢ4 ^Hj8#qi>0j +(%] +i5KIEAbIEQE-Z)(w%P /5\՗U5mb}X-ާZgejh(((QEQEQE +_STR?ʷGS[X5bWWft"Z(D(((M2غ{EVF[6)v0$(|߅iaMj߸tUEvQ@Q@Q@¤Z}D)QHQ@Pn-%VaESQEQEQEQEQEŤ=((WNhh,)ҝH)-IڊIEqi(QE!bQE!Q@5u53،Ԉ0=F$ +eB7|d]GTTv}pOE42|)סMGQ^$5)QVxmzLuWzIE-PIE-(JZ֙[S\e :+U9ں^JZ8)(9$Z|~FfA].sZEW}QEQEQEQEQECPV9n( HQT}ơ W +()4OmC} 0z +ZJ+=uZ)(;EPEPEPEPQKT]?ίȨ]'Ph+ֻ֓ū6pjZa .iiuŢԇqh%qhPh((?JV5^)lsVQ[J,E-4p)GZtťbQސ`J)Z(qh EP0(zSi[%iǃ;4N5LZ)(a܎((AEPEPEP}5xZ\<:H5 MP̪֔aEV#OJuc-ΈlQEIAES)QE(@QH(nZcE.5nq%SzɝBIEAŢIEqh\Z((4I]m1=RS%\>$gSd&@1n>#_i_H >J+︴Q@\ZJ(.-P;O*:FŠ(5:TG4rpOݱ/>J+#IEqh\Z)(.(O/Z}D6E%%IE +J)Z(AERQ@-% +IEJ(h)JZCMn'QEQRJQIhƒҊ) eQZEPEPEP +( +( +( +CҖsNzRVT7#ҦJ3})|LUMG'(i٤nAGGs78VfیΟZҬGN^0+B((aEPEPEPQ5%FzmIEmcw֌evGThi3%V&sv47 %%>fb}k'j,j_ +{J(\QEXwE%Ţ@\Z)(T }[Rs1 qreR=tR٣ڌQZ)s*i-̣THU=dn(0B(aEP(Ţp™/ܧ_dg(3EP4ʒo>vCXu_R0= NnŢ+J(i(J)Xw)(`KJpS]jU涥mN2E>9Գ)sFE+E m}.amlKEVKIE(M%Z;Q@ @qhZVQIE"RgLI[sH9HpjZj(袊JZC@4 +Zm- 0E'z).)“krZ(W l%%-&xI:: +ZnPhpQ`J(\)i(LZ=W"x8zTrsYWf%%HɰYf\zږ®a@Q\gz((C +(Q@KQ%D.5S Hz S$MkHe .\=8U +((((EIL^[SZ)(4OZJu4uӑ0]B(4 +( +( +(zөޝYsh| hAEP i(iE%%\(-PKIEJ(hEP;M4aM +[QTeqh)=GQIEAŢZ0JbJZ((EPEPEP:RE"ŽQ@`IRN1+~uzwI?8ɡ_>n;䎼yiQEu((,;Q@\(, +(£Tṕ]b2(BTu,ݪ*𣎢QE2b9s-zd(+։f(4B(((((V2J 5]c[QݘV + +|Tb*6<(JZ((()ZCB^;WaIKILQTڊ'5O&Wk:0E-rW +(PhQEQEQEQE~s"֔ݝ̪+ ڀSnYXqѿ +>2 jun9j$GzQڀQGj(A@\Z(PEPEPOi(ca܎(EH:Y椬 g),ir<4+k\Z)(AKIEQE-:?LK*%qj9:O2N7x%9~ވZZ(ΐ(Z( +)(OM)lT5$ihKc;DzEgScJ{EVFG%&x+vvNAiDAd:(Š(((C*-`ΥS>'AUɟ4QEls ԴӪ&#ZjAETQ@Q@Q@^jDvJ)XPJ(RQ@ IEQEz)k'((J(,Z((4 +( +(((aEPERqMrzQL@I@E㨢(C)[%iQE +)(BIE- (((QI E% Z("U: l=wa_㗾f#%61_:gD4Aފ(.EP +(RQ@\)i(.-Liԇ&ZQEu7*~ZUS=Nz((T@.!*݅Q\`QE ((((ESdMitL + +nԔ~W?Er]b5U(ˉ# bEvQ@Q@Q@Q@Q@Q@ + +8|L(`u2Mm5^ۣtj:hZ)(MEZ))hZ(Q@Q@(IKIQRPS$OݪaQI[I@@ E%-QIKH(`)ucqRmQZ=:Tt%)})(lkq'!9i S(QE-JtT50=fmn:hq0ZpRJk0)QEQEQEQETTՕCz]E5n2OL$Q"}ڎ):{EVFEPEPEQJ:"NfU4-P(bE+t-QE ((($(tVL[Q@–-%P0((QEŠ(cJZ(ŠNPES&IKIMR=M((((((FjJ +((QH)j B(b7Jm8Gc)QIT@RQ@ E%-Q`RRBh{ E%-QE<=+B8Նvlƫ +Z((((((()( +U8jHJ#+cEv֕RMnXibSJˡ &y2/֮89}خRIEgcK(Ţ,IE%;bӗ2ML*QEbtQ@P9"*u\K[+#{Q@Q@Q@ IE(NQEp*QEIAESQEQEQE;QEdop(Jb +CKM=*"OAҝLr'z3E"-%P +(\(IERR֤4ڴc-ŢbJ(å- KPS(PIQDaEUQEQEQEQE-Ri;j&LpZM/Ahj({Vj)ڋ~hT8Qޒ,M,AE E%Ţ,E%IK@A 5:*"3(kI3Ũnt$Դ0ܤTB\LҤyˢjJ&?JUG,jpW~ՠQE`tQ@(aEP +(w4Q@\(9S]݅RS$x4R4ܶ9 *UXOZC:(s((((((lpzt78I3>!i#f4*lUŨ{Եu6aiiIݎ*(((ERze=:R}%V& +( qҨ<(C +( +( +QE*ƷEVG@QEQ@(UŠ( (JZZ(i=ERw +("SXӍ1E:>QJSܺO +((QEQEQE +ZJ(4QEYQE(8RE:EQE"i֪$MQEUQEŠ(¸QE +(QEҒU#9n-%-&8E%%Mq7J2 +C(((((PEP͟ju J(C3foΣUbkآ\$VtzV=M\5~6wQQIڊIE-PIEqh(("S)u=Ba֢u*pjE2sY£ޥ$BxiezQr{nVEW}| tQH(kq{ޒEޒX.-QHJ-QHaEP14F0EVFj s ǟJHu {xݨQYػڊJ)XwpQ` +ZA֊Ţta(( HW.j?4T:J3Jø:e:N+C 8tq{ҚhKEQގ E%!EP1M2vZAhg'QEh@S:'AW2ذ*>gZ,:J( +(((֤RV3QPPRPN)3N¸zHihQE)(ԔXWHh`CErDE{1(֌L[QRf,+AIE; +ES-(a*EHtTOcJ[+#pqh (4SQEPhQES6z{%VGEƒEpJ`(KH:R)lv\(p(•zRaqQEflQEQ@Tg>ZDƣ>j%¥攞EZJ(.QERQ@\Z))hREv2QEɸQE:ӪYqZ);RԚ4SZw&{ EV!EPEPEPEP0)Xii;zJ\ө҆-QPjPzQA@=QIKZQIE;Ţ,(0((((E-%&jJ)3EWOup3~u^ޝN66~x~DEԵ'vAERRQHw(QEZ)(aZ)(øJ(G7Zt'֒_R ڀ{Vcˎ# 3Ebt\Ϝ`݌5VfjL/tmGc[X) IEqݨE(t`Xw(H4MnaQEjdH-5:S';QSa-CST-&QIEmc+IE% +)XwJ)X.-QHa@km+}MɽB($*&!iI$*z~ez QJ +( +((Ez +Z{-(aE&i)+:Ӎ2I%Q@Q@MQHzҎNO)=&J:Ef4+)RP )W֋bIE >-B>)RPj .-&h4&KMR`)3Ԕ+h +iңL.AњJ(QILBhN) !IEýS)/JaJRظn-VfQE0 +(Kc_6+hsR Jvк/QQEbt%P )–IKHaMnaUțZJ(3QE +ESS),1ii(5=(@EVEPEPEPEP(=(n-ނQIE]nM^44KIEfjRR1֒Vc nQILWJZ0JIEqh((QړJ(-Q`MgUʂEHڄߣ0F^ZQIE31}(IEQIE1hqhIKEEc-4t4^RQEpqa+59uڳqqBk +FHūQY(Z)(aKIE J(h%au4;ڊJZC +(>:t[[2*(`(((i( @IE8tV*㩏ڜ 2N{QIEkc+CIQ/Z~k9M"E%bOZNpܙ2(B(ZJ(%;iiZZLh4Q[SHAQ%E[@:3Vj8`}e]j!QEf1)i;LRvBIJ(QڃH:\QSQE! <D3Ԕ&yҒ})( +|{S2ٕ.i;IXX)(uu}&h4) ZJ( )(QEzӭ> +((S)ݨhq`i(Q@Q@Q@H*:t=Š(5 +( +J(K`:}GޟJC +J(aEPEPO)ҦF(KQN¸QE%2F7ZJSEl9*HGOEOOEqi( IE)i(RRi:UfŢJ1h4va\)2)Ka--%vmV +(4+KMhZ)(Z(#RZOa( u>AKYQ@ zm9SkHc=Š(@QE ( +(bQE E% 1i-5з =i֟C^ER():u5SS +S((((()i(wj((qvLժElVefэetQE'j1h֊(Q@ +(((((Zc6(>e)敇qi;Q( JƛkZ) h))GJ, E 1h(Q֘xө- ^QKQ4\X%TXh`QI@p*CPJ:9-0zQIPj-bRQE:FaETQE1%leV-ŧGZtg穒ЪnDQ\hQEQEQEQEstUEM/j D\SIE(L/zqz+;\(CzJzVQE1-%RQ@ E%XwM=ii8OA(+Q@)J+;:J;S)ҙWQEdPIEŢ(QEQES Oꢉ4:Q$(ii(5LZFJ2 h-ţ%X.-%Q`lQE Ť,AKHaEP03Fi(ø4R\pIS5T~!KX(P(QE +(P((\Z)3J*lU”u 0ӗ2/QQEfh% Oi>2(d-%QE +J(i}iQ`E&h6jCU3 +(3 +tE< + )3-dhih= q=1 +( +( + P){RQړCPEVAE*:{VAS~APTПwEW9AEPE')֙NN-i(4V66 +QA!Җ/izSkI/pJ(bj-+RQa\Z %,vSOqEnJhLj()*lip&EMŠ(AEPEPƝMOKX=QHaES 9zSiV^)Q@((EIQ%g3j{QRXQE%pJd1R'(*?1cgI}%V(݅QL(u*1֤6 +(RX(štөҪ;'(9B>I4MEW*=Š(H){RPŠ(AEQa#tҵ%\v2ES$(-%S֒CIIEVfERƷZJV[Kp)(((QLNӉ3 +(3Lњ,:RKPS(COgPZ)(3Q@(IE+EXwJZCS6;LhQz( +( +)((((QE ARR1╵ij@xRDBEH - QE%ns E'j)RP(hAK@QH(G?--5SKPoAҩJ:ѭ 乢(ad#ڎ3(\Z)-RR(aER([NJ B%RQ@tJkA:%I@ae1J(i(Sh EP)-5Si(3 +(45鴭֒$'QӢ?=)ōnME%%r1{IE0)Sӽ2 LwEV&E %U$"9:t=M1:~fMHzI\مQLAEPEPS/ L: +Ρҳ4CI,+4PjtQM_N{ +(QG0ԔX.)E&hLtR/:E%ŤvbRHh^ДETQLJ(-S=z4O6 +;EIw +(!Hh= 4R?j/tƋ(:Š (֟L^ni (PQE%4QQWGRP:9-rP( +usZzwW +(ڒMR +((M=M%hzIE +ESJ֒❉LZ(jm9Sj㱔 +(()RQދzSiҙU*Š(4էT=bJ*,]ŦLnQ"QE2 +)(¸QE +( +( +Pi(?jm+"3)Vz{ n>J++\uR*Siug+COV-ӱ7M))X./zZozZniiQE +kSTw&[ N^rGqf+3[IE6țJxkls=@qs@IKEQIE⎴R\QE uø)-16?1a(,grZZjub6AER= CZ{IEJ(RJ(hP:Ұ\Z(T5S=iM2;QED9&Bu%h0) ?Zmn1{QLAEPGPIJiXwiPRJ( !S@5PzJ-)6nN A%)+!ԔQ\QE +( +ztSӠGqƎVv.ESR) 4l~cKݯtnOE7 +; +;Ӱ-'z(`Q`LjTCvQQb-%SRSMFziG%JH;i4I s֊J)ZJ(BQJ:2aҊ(s()(4 +E?8SAJݚ&IXٰ4QUbnQEQE9;ޟXsxlQE"P+LiqZK *|?|+jf4袒끢)QE{ޝQ-͡RwIWAS +IQ7571(L( .iy₁IJ*K[MSMJ*[QTEŢPzqQEjsQ@4 +QE16k}Tv&ʏ:jRwW +(FMڨD +( Z))h((қNnڸe7Q@!E&ha\pN׭IQ$iQE&:r'A,cq(bRQJøP))h\Z);QEqhCh' jb:s@4XW%4RJ(vTj:Op* +(Q@-%)s%)s+2zJ5PD͋N^P~aV IKMmqh29:)vVEUQEQEQEQE-(Jø<+C1Ҟ)Җ,}.5/zs( Š(JZ((QKMi%kIAHM %v.KKޒ_J))iXwMc +) BJZ(@QE-FO֤TQZؐ 1QEnPV#߬Hf1k"&o#+:پ^WE`)vi(HGReDZ)(CA4) %,~RhIڔWFEU()(IQީ+)i (AaIh4Ŧ-Io@Ra??S*xtߺ%QPPQEQGzN%*[RPh=+ +3&ya\ %U DG֤5?6}X-ިh:BJ(i(BGjJv JZj}ZoRRQE1G'j}F S*Aҡík%t`$X+ +(LBIފ;Қ:Rl;Q@Š(kaUQIZXűhrHOGKPFp⧮z;(?p)E%(Y3h(=)"ިJ()ݥni(1l(p(QE%0Tr S) ? a5i3PR +JSq"aEUQ@-%H)i n%jzE% +(uy椩paKIEAb_:((((((\K)h2J+S)- EbѺcGzV*tU)j*T(0( S-QHaEPEP~ҙWJ:QTA%-%KJ\I:Tu#QfU7w-6(I@EuX.-iXaEPz)(0IjMǡӪ5RVsZRJ* +FM>j2mQ[X()i(aQIJ(ޤFy2l(b +k +u1UEj 4E;sjQE#S)MGZb%*u@)%(EZ);P + SU#t5\ QEBBi);Q[x51ܞW+]ۥ3~R@?s]Y|R+3(b +( +t>eD^4QE +cS\ch܂GҖ6 +(@w!hǧާi±\Iڊ) ()~ZqIVZ'T]>-GK`w]wFyE'Ze>>2بHh4VESPhjW?)kzkC +RE"})OJ嶧]jJ)؛E%QL WZAR;[Qށ%)HMD5-@zښ«3J̴+[\EOH (MŠ(!- )k'ж +)(@\(b騪GkUQEhdQE*0Պj9ýд:QE%<ҊcMTVEV!E qi(IEqM%STOCQ755W,#ޥ`Tq}ڒ)E%(z5\ QEdQ@Q@P0oL?Je\E%U)-5UGpCh԰P# g^enM+1oH )ŠBhNzILjJzԕ)QP04f)?ju1֐ZE%$E-6?)kKVjMEX.QE +(Nev +(H&ZJv&ruiMjD~՚ViV[JJ(((ze>>3بn> 'cckI+RdQL-yK1ݭ-2#NY/yqz )QEQE/j 踴v(5UQEjdZSƴՙ't(((7 +( +(Lle,M[hr() gpJ)W +bTzʲMޱ(W!ޅp4u AQR eUAڊ( (JĨZoMTdG5owRvkv-E%n-,J^Xw4M%=Q[ +(Q@ O_QOOJKA?4^7LZJ(2:(=h`(JZ( +(sM~Ejz +S(N/Z}g-cRP*,iqj6ƤuTJJ %kcťqhJZ@ +(cSi[Jld +(Ju1&YsH(W=MIQ?ުԙJ+[\Z)(`RJŢVŢ) (kIZzUXEER/J +Z(4S[-!i2CEmcQLBIE+ҀJ!Hv)2(Š(BS>kH-@#jVW\vJ+2SRTm֮ -Q`J( ERڛNn;Š(:jhԻ "@p+V骟c#׻&y~ȏ[-:)+[HhpӰ$}**>詞qQEbhQE%!4I ֙J4Ա ֟QAԵQ{) B-i(;Ҏ~ܒ((T-Tk9?x\QEhfYS(~-qM{wJQIJ: IE%qi( +(HWƛ])hI=XQEDQ@K:#L˧+M +( +(vHi5G EUQERva\^QL~SPԲ}ڊ)jQpuLubL=(s)-!BRmQZQ@Q@ +) +ߺ6JJZ)3AQa\Jzru4IhzQEwCM7SH+e(%V&)(KEqh07ާdjJZi4֖2fya\rQRQ4i:JZ*7*Jd3a +( +^ԔP1{Қm- ;QIGjVQIAHdg%F-)(a\r*%RfԸ=QI)j RS$*3eQ[Q@-%RQ@ E%-+IޖCL4Q[Q@='JRZ/RJ)Ʒ +(QAEn`QEQEQEwu1RG(mRvH IEU)>ޮ:3T]UΪԤ{RQX/jcuSZw( +( +( +QIKIcu+d$(`%1釭TJQEhYq+7]q7v=Wa^^)ޡcjGց3z+{ŋB&5]1:xRQ +(QQIEKH)k7H(Ԁ(**X(Dw*(+[ Hh%M(`QEJ: +(B(((4QWax J EZAV#}UW:{EjQE1Q@JtTU*ظn-wYXLIT + i(bX:SW-UTߺ+2Š(AJz:{!%bRR=*:|z]0ZzU؋~KP@~b=j䪭3QY*/ZOaQEQEHM4 <)){WU;Qa\)s%+h{j]LCSN=lz\u%Wbi(nI9$)))(.QE +JSIT-GO)-iD\SکUcZκ3\3աW!ܘ-!7AIAlaqh E%-!5:皨LރM(LE%(>6~ւORPhIJ+ )E'aKR27Mڙ[GcnQEQEP0mPR CUMFQEjdQE(ORM(.:'Jw5rّEQEQEQEQE(41M% i[QB:(1 +(4Yjf*#C:RJ?:+ao +(8B(+1Q@'j(kvEm(~hŠ(J(*QC%QX!%UdQ[c7T4QJh6EHL(bTQYLETZ(!)tntQEt +}~j+裳84QEdh%QLARGED.Gj(=i{QEEU@zQEuEPZE_tuPـǩ@/J(-Ţ+3P)*9:QE\7"tQ](vҊ(&%!hC?ZEˈۅXQErS+HeSEV( +( +;QEQE1 Hh%+*[QQSf4X)hD(culd +(Q@jQEiu:+C ((MohHz +uW,:QE%ttQZcQV@QE +;E (PL4QZc)%QV@QESE)l88uE6AERz(p(((}h(iQE8A-EQEv)KaqiGj(QEHȨ0 +( +( +( +(H=QEPhRwQVKKEj +(1Ev"[QTHQEQEQE:(1)MVEP^Ev)Ih2J(DQE4А((QE5 +P +()*㱬66h3 ?Т%h|H(3O +endstream endobj 513 0 obj <>/Filter /FlateDecode /Height 469 /Subtype /Image /Width 1920 /Length 435675 >> +stream +xi,IvgŒwj*VW&9MhP0=$0(q*}ЏF$AgWA 6bRuk_efDcu;y| ̈[}P}ǟ;Q x0啯qU[81-Л? TUB6eU "SNhAG206exUa4Qf.yGLK24pG2$h#^L<]_Ĕ͟¶t)Ncn"9wGy3 +;#{^03)_z߉E=-%==[rO/mXf᧍fLcFAA@4&h/*4A[Mͫ8 Ƚ{m;6Bk(Jqr L*(^C:*T7d'~8 MYrUDF9-=cA5+rVi1lj1mTXfiG/Vsfi-B3i"2m^p4_~ ++qsh//}شJwi8,pe;cN7e ʯc'.eQ&~"J"|LO+9cEEe-#tŤOteh"Yeo]J{.if̗fKb$ݗ((⠠xhNPoD{u +/ cͽ:6}/m W>*GGE6اȖ9s5=zN52N#1wߵ0srGEY!O|T]=K0k.Z3ef)c%Lڗ1|m~%Uq[W4ឰu*,yI1 ӽ(eha:cʢZE;ZqY7$O~<x5]WْT1tufY@^(([ rۮM FC`c{C:r|#>z;NޣψsC -~4v i1jͶ?-Bt D[[1٣,/"i(l gI->Fՠ6%:de> o偔عrUx& +| |K~U>p}P:vP|hV#zm}/P`߄'M݇o䀉~e&Lc +SʛE?33~^ۈ`jIy}liK, _柈~Z#i~\uc,MhŅmMVYI~0F}tz?zũbMM|u34ӯ3hgr@FKѩy4]頳Ko+WN] Y8RExQ}ls5ݮ@`eրOUgeLcI:z1VON,>(OԱF,C~VepMG@&2"dӂmP֖4Yuv}j7]vK\lmZz<ɟxiOU, + +lP0ܐC47+m[ U(C޴}3~q9Gisr |tqz<|:b~xpAضVn҄md2Gf6t6hy0_ǟ8Wi YFG-,_[۫_VuM ϊ, P[q-Y:=z=*{‡&h][~Bz# 7"bki"ozSCO=ttT{ќez#/qMq.ql;,?.PFa(f|x7~ ~/Mfʺ19uߵ#HOp!YL,Cbϭbन[5Ӻ4Gӭ}.#-MHGi\EG&znw3̯=.#\[*) 9ц, UkOrֲ xGE[zUgͨl ?:>/)W}thn*+Y_o/\œ.Ə6u +{DB+:B-MLhl5in 򖦜.`Zy17*矧7׾4Grդ7K\l<-_W2 +@,e*s=A&@Kko;&Ɵ\@(߄8 .Ζ{ ܺ}*@RWlSٸZz ߆WT7KղCTB 9iDW!IPz_{g{|TQQ~3~oL\'~,>F7ά1]Zl/2wlc6yRm^G>= 2@g@ӷ{sL &#K yzWY;C31WeZIpJq]֕SWtLku! Z31F~m`WYhf8,f i1paLoQhzЭX doвG +ʝCbf[5L;go00 )Xj`ӷFO:bRwB8v,E += +3®0fd )d i:mk8{h[)y7I/jj-!l]H' +=ʴAdo_}K1_'AK{ǫkП/,҇[#t-\HfŪTbe4r ۻ\ Z$<^xj|L@KS0 ]_F&E KƓ^n50|Ŝ88}"$T㥫G'jN vV'C2BQ[?į2k({dE} +|9N[>]Do{?\sK{*]ME]3PfR^t rZˠV.)&ln9ItZfAfڰZs|tCr]sksd U$]L^l'V)>9>h~8%,7)ܟ.$ .oVSx$c`ip~BJ6口K[Ymx|̜+Siw8,"J6tȆ_[e.h%DYqk{Ĺ˩50\l렛!#KTLz$T|<Jz"S;Y/lIjńLL2K3"e;utX6z@ WAGPkr|&.< apc"Ժ@ވEBmxBppBW4ЂQro= 3 U+O_o 8$ö8&:1oPYiju'O%=]1YvIF2eJ688N9r %h E3@ Jk]l_Q@G$ 7LE;rf_+g0ƥz4 H@/Ee4{X4ZwMt+ YcVX}`VA%.t4Ec]A;˲qОíN,8<}jEaR @cwR>Tݮp@g% 9Ox<+cLPJ0\q2֧p԰jDPdG3kcsCX#n@3SƃJ$Bʘ,@7z@yȹ=s:cQBtߘ?X C +a`#An&< +U<ϲ.<+, .Qt-,IKҷfoЄ:="k @Ktr(Lȉ=;A9!2K#9{aq[^C+*P{(rFw@%eטGi=1WPZ@<7n @k1NH vEղzZ/z 8>7C5rͪZApVM] 1vV Ј'QB(Kr-h?#ũ=}4Bts/AܣH@uyxzZ|sq],Cʨ yS] M]e@D@"~h[t^d6egSxY~O2Rم7Gɇ-6SIu&DlBbZ =jpBO5Hz徺̇oaW> QYա_n.;ڛM[݁q94('zJ]q7k7g FhtNE2BKPFߋ_܍"ˋ-6~~q-4xVXh1\PThB֜:렞.k*cB-2Ψ\=whWы=A4GfZSH{Ak,,=m ь]֣Tljq[QD{7=f=%;_Z|n!nї+_UF^KljmZ.?1*[4=yS%eKA8F+?ߝ``@ I;1O@W@ER61I&; t;3QW Y;AB38Yek"φ0ɳ4-@P=.ɰGTa9nڝӅd TuwЯ6)*ɔ},g @79@=BǞev6_N}+<% &Vuъ[z]Sij|X¥74g_XKz={=z$l.j%^7@.יғ!1vw]<5zv%1L|˸)Jh݌&^ɤ[]Lkg-)"4VJZBDmpM=D冬: Mmqbў`}$o +,EAD7CP ĩÍ/4M$)Е3868NJ7:*GnPBQiq< I* nFɜ0:,3,@ +6Cv!vzYyj܆54'Ӌ\nlP+dpaZO"zz ]BScXǐ!4[hCta/aЋ2lq =WRh܉hZ@ׯ逽}MÚ83Vl~Sч$Ev)Wf/ae5:i! e&+Cˏ ʴuS]۵B%ЈWTD 3l)\fڡ+<T'i`t+t/̨>#@a ꧪh[.if?nkUdqvYgv~ZA+\ : "Fo,G8C1q5M%ZЄeYG<_<7*e]MD0rcQa`3w2Yۥ{{ cmm[OG1V/T Ho5H(?Qq|[ߔ̸͞Kۆ3 "DŽ6Cl-KzC0`z6yyU)IUMtƦ(Yugz=⼮#7͋Ū[0c=Jц]-ShY(!wh@/J=sO탶w'OHat@s32gVUotexnzd!A,v'jVjkY ++TPn@cC ŅTh}0m\Ӗ!֦gNh?@N +vRqiwg ʤlݚPQcϠaN-.6yK +-e *T/]K%hd\k bEf{gwDrFOj;ٵok%vN:Tqw٪ai%jure  +qsHh$E<~l@8u2f'`h.{g<`͚Rh$ظ61To 4 Ͳ qUP# +r8` NwmZZ6#4gٴt楅"jz7Ux6S98Y|(%.ڳ|_i}زpXtވ"o@D,YSCyQZ:-\~ɟK{swM *tkNt~|֞`kfwl#7AY3}dlto\Kk=ifi嘳\v^?7Hh+?N e]A7`[fm(N5lC}N,w@5=ș<훲 - Zl~PګP~CơbY.=0=.\Zjڸ颵^^B̉ (ʯ4poNAu0Kd҆q/l M(`^+2F=A4r(ؒY*#VW)MavY榝K0]pKae˸EWkY['NHD˃B?` OɭiPiLk N˘9aʴp/Mד%ﺑ6a ڃS_{3v`>_ ⳼FD>1+/%ؕ.ֹ87ݱV +'C?UZhA~y#]аl8<`CCg |9rx@ OCM<+_v@f X4 पuqGtht0!R1O %atlF + :vx%H)X6Nsz_SgDJmWV@aU|ʮ2qnO +9;8QX%#? #*.BZX:p -Aw^rF6\bhܥ57.1' 4醍ev6 骁W0;{ q`p[LȘBqFֲs EА<74f %%㴑FTNv2Ŝ3hEE)]AN48*e?~?~]n0{TLotvH:ו{͸,'z-Jޔf/L*8/c+Qc6{J*xrH4@TDø&Dٲ@ PS~>a4J:Pfo~8cqSfxjf X|L$^}N՝hWnpHzLv OQSq^9 h4X7KS@Kb 0EhH.P%.h"P]JָyF%#2?aP;?g(ɄȡsA䆩քo%lKffJZ$ϴ/k.0SOzI7nX`໫TE1ct%NSg@ǵFk]o";h+w!60p [sADJfJA~mwedl^sO{\%!buPYf,@GΈLe+(C6+iTP0}ck'ƒeSg.TH+6 ԵF[i W_A/whQg0hh`&l7GF*s,K~YDK#?ʭn2Dqcҫ4oEj5ε\~XIw[Lc/ܲisj&9 @$rfc#304|6qvhiK1gy=RU+rͲ#̄[N2ĈSٝV*IS9g !C[::~{A׿-vKtCz&'T(+2kΞ hݤz;@ d1@+ja[r9_fwcdކkYI2*lhlHqO'Q&z?vP zZ4w?F00<}2`!~ y ㈳( Zqirഔvs˞ +37&VA f= ˹Mi1A@<09q6#QUW.`@J1w6L m@א:%*imGj|lY1#ʼn3ƟeTO0_PC{VV݈훪eR@h8@a7Cۣۤ9L 2 5d8 ¬r5h&f&.Dk' z$yCK9iF1h-뚺3s @LpCk4FwhÖ2Z$g퉒ŝ܎t%j^h<,:$gWhl+j<ы!Mx7g0v\9)hɢPt̆pH 59u +;+y~+:q,yP[NÃz4M^ M|]}wc7!ζ1UJoćWԐAA[D[h,vi䨡ZT҆g$C<=$KK@hG(z[StO.f] @KeVZL}u/\eeAɭتe#xr`Q5Lpl#WY)Yj[*xHani{ko랐@Ie}*=U>.F:zumqt. q>b%,XS,p +-{3*Zaq ƩǴH̫x5Թ%@ìi0Evψ/;#e +b^a⩟$†,8j*_.%ϒP~x,V3Ocm˺m&pMwhdC R@S n|xzSxl)>OoR _ٌS@Fk9P|6 +1G=[V@fhM3jQg;¼@oуׄK-ƏHKVLVJ?F?eD:$^Έ'͜e{*?`mʳ2>'0d|Ҧ{}#y1&/UZ 8<-Zoz_UP!WO0&\5}B)@ +=axGskY2'e4voعH)H@o2ʤ>? ?OŦSKEKF5QKV95M(da{\=vO҉46]O$V}TIɔsֵ9 u}ѳlkŖyI;G4T#XEENZ#$j<;Ƀ}YNZa])@DnЭZzhD/G3ek +tN'-{hmICMD"m4?9$'V;Y cZBɖԯ/f ?/=,\ehKBIc80̓<WŞ~n!o?&QCv`!ܹ3b +'⺚wݜWjņwbC,΃pn/o@u΂]iw\^@L6462[e-3"='^HfhDן%`輞eVk30Іi# eκ[q8&;|>.'`wg4@Lp@#?LfcVWmAPWM܃:hfz]tOw!UYBw emj H 1dGltЭ6r_\Ƽ~5>4$7~ ‘V9JxF+;X' ,3 wD$SO7=#<Yp-qя.Gzg? g/c0JlMcSPk~22Ephol!gyb7 /GcpD=wVm빢f-mPWhWP9@: 9_NT\|F"!k OF G꾹S)hD{Jg a妤 FeuմQvId,y3Ll'umܘ/4b^&w_WLBl:8P,-\oe(,CWn~.ch+v$(!/h" ZrF@k F8 <`xE7pl Ө36|Al +=췸M Rc{rqoKn6tZ?|P96g%=]~ቩ螄/vm k774i86NkϬ֝}FON)ybDKHEF靍Ђ9 Ge-X6 +UecQА# :#O{ 5ভeeP +2Y1ӫ%)\8q^vVt.腽?U hΖYdžt&Y"ѻb7ߦo>e ֲ] J,@{畇O,1=y0.>4ݎ\n蜳HG4smqx=4 wЦ3l"hRVɑ%ŝQK vֲЯ/:5ٯDe-K~ew?sD|G\8N9`)EٶiZ@D0DˎZ7G nc+O-sBwhy/_b-MGO7t@xɦe?p9$qƟ.Ŝga4d3| -6M,J_oL& 8yИ"ML7ɯ$:*׺CG!2)Fdg,Ѫo"o..~_Z-ɛBk΂ԁ1h2U)_@ۆ+krc7pw_s>I/J-,t{q@x0f@i%ŭz#X:*T!ox^&KRШ8^bү71vхAa/V 4X+"~Bۂ^R{Z@k3U:%O.I%jA1AyzxRkbK$4g iofFVoZxW|9xh aӡGnGS#M(؜4,cjhCj2TWK>wyޘFOhe}hcDsqeabk? ؅E«EzZYĂTzl8d*na4(tX{h Ӧږ?5B- +s)hH.K@G,pSp$2fWu_yw*[pP)Du-;Am (Y8OUMcBRk :hs@tpn`G6zVx4gXld=NDХ" Lwtz3/G$McF(݄̀o$O#揩@X4eȒ&j%dSF;ZrW8m;Yif>"r _S F/i/Ǧ!ƒD{Uh.\ !N?˱;jO{gza +Ҿ(<5>FhAjӪ(3O/θ+T=B=})ЙS4NFP:3LY:3af"l+n/m*x{8rdo}%_l[1-+h汙D\pBFk!~7|}s{@Z]r=s7eY\{*YRH42zSQESG4MAfŸR.͢ VNáJ/>ߝst'OizL% k P/z D Ǻ8֖_О:_<)N8oA^[\`N4qH@ufK A•3ʖ7=.uq^U4n*U8G+#ps Ϗl֝#_3Kf8v̥6*P(ˬ@c0{>4mڤGCii{cҢ\zs8gezf}vΘDC͉ͣ6m`rc_VΣXܳ/l8NJjXs`+vC6^1Bɲ%"RʵbS5ƕ8ڻ,22TT:H#65ȁhCжq^ 0* MkQtJ=0}T廒Hi_2P9X+aub: F?Lg9,5`h-bI&7`U0Lsd/9ǣzop56`ud,^z`rIό#2_CuJjN4J0|Pmj܇T 4l HOB盆7Z nB_sq fmZW" +]@ՠ8Ƭqڤ;wLq8-8M|:׀]8^9_RӕD˟e>؁؋SD`ϳldK!]"8=@Ck+ C*lk8i 9m^3h;fBB^C̦sԟWQǺ;#$ bI)*_Z4a-|}"(z@P{ϲ}Y>ˠ\'Z2vESڎoe B3}aٴFj MYyدq|ҋN=(XsD2sGE9EA4Lv~NE. ƺk50lI2 +hhhJt*%L\Zv:A%3Jmѭ ɪ%[ChCȖ(⒍iVr +hYj ' [dkm+Me~ ȣ#CHX0=c:2X![mozi@ /sհ}(i'n ȫ@F ϊtLN׊ҐNO+%N"2nj]k&ٟF_'͠[3jOg,(H10Mj=J 9m&'%PBX sFJNZ8)tہAgWfkzpcGTD6̗(g<~Lh=_[sp{ڬmhk}#>BS_4 NCpϕi]*F E&eVn~΁CmvK$rXL;x_72g-u`,*'fb͠[ѝՐuaTL@cg*=<>Ooci Mm.U5#p~iN֩ +F|`ao|e/)_NONg 6b=$r Fv$. ם|':z7~sz^gwKta>` ע1D`h$ Z>Ajj 3d|MYO9Qh_d*Zo5ͽ`T!6,˟=' а6qckz1)3`Vn"X@Trt??ǻы&BmϬ XQ>cXn\; ua֊kYg?1@K`TA V% Xc`9I9h @XzYMw4LC,lw @=|,?1krL|N 6mچ2Zm+S|DиIE. C +h><]VH^rBhIu 0@96Ҽv\ENSt%_fg:k6-,ŝr,dOa! Pcz/l•01}N5#ΒP FQ)%jpsJGp=9g¤-9pLprO \eZe'5G, El|@_{ϳܨohOLvXם#q/~y-Y3Z͝ JasvjjT֤x$\{ׁ=gl3kck[9JQ60m:N2j{aă0GZ ΒYtw C< =ݎSS?eyCzڤ,(hQBY Q@ۤ&` m9,EJm}:# ^yeriڮ9%#mFF۠Һ\$%=W;'矵l b)/{-R[ym +{u)@ +hkP+qOFɮ,6d F=1@/ >[D":4C1FUB y(ݺǏ돊´h]sx`9fAMYӗtVK^`&Yψ#d_t[?oBu%IgT(ɚYLP B=9d] %":QhwTS_ `7Ea3{WAK OSшW$oOz!4 6NOBF+S>(Z1mNqp}W=0P5u݉gґ|_G VGxVT0F˷Ju`/γV9 ? x6}YБ}Fb].,8"l?8UZ'$l%? uw7Y&+cJ̞ C>>VYq ЩU\P@?U,Z42%t:P?₵C|qtr~4lp纉e,8ezg?*vQ$Hf(u0G# :cOpg{0UVV׺5o"Ԫ}aePӒw7n.058sҫLRh,.Xw('TUR*?YU6җٝ ID;!_ɴJ4C#us%V?J5/a9j0ԡ["@5F[ӳ[KxSaK9V:(BwwsY^ ɞ!!u)=S py]yZuc۸ѝIFD6( D*5 ÂzὨAqMq%UZ.d( r!sEeB}iH5VtZ|8uEPo7q1]+xыS:3h2,G8$^{p xy kt_iPk@A:F ӳ +uZDT<ʮ*z`\_^'ތ_}7y{Z/9Z +]4?˓.1@sY18,2ºP +؛E&W68QAtx-AfCB.4'BoNM-*ybg?n9;/ɤڪܡNWqu.Cv%n@kMN@J%-|;yJpdΖ?Lh1i]8 +O441L,#h%SMzZfjA '#M? +;$C= +ZǗu7 LҜi ={+$"LF{&_+-qm_&9`-.MaZ?Z$R5zn_tybX}h$a6CuMd]yi;G Sc؄,˧B])dI`&:B=fߴ7Y<z@ m4kD'{koE%,ʵ%#EePZ9bVֲUAP?PA&g S7_W?'.@B\4[ŋC*QCjMG_:YӢb6NjfМGZ{Q:f\!=ڽ<t>o<+D= 2h $<#uhX*>ƫ0KBHYyIkBDܶ +'} +~kJmM¡ m滰hqW^svsA^U1^'2}uwzG7WBK99mz=P\wWٝ}6BOS8KkW@g,pќϠldkƦ:F/.!gɠceHFSo'0s^A>u3,"rq?UZm@6pTLx~ԃG="^#L}dVжIkQ$($Ȑm:Pam@F \T~7J$%A3Fr.qNA;kwS v=SZOMr]Q9")&I]~֤Ah Jޗ[we2m#| Z'lq@a1s%!L ]'OW(wI\u `RwЖl,M- OΗiu52|_{V^&ԿoF1kb[3i]rL<]6 {ArT KO'EX ljA^TC|)k q { }X\M/ȊK 7M]ۅC8a4jIv6҇Dx|]q8!ZՏLs+:@:yF(|VmVү DKX j5Лn&1M[=8cWZE߻ i4"Χ׃ 1Tm +?77=b:Smh1dиŇVeS +͵qLKԎ0P>#kHm{z0 8kgëWdHEJQ,knY9&qf8aC_g׺t(k!Qt0-ݽ,CBËF=eU"E2l-h*W%>R1/D(Mm'Wg WR֘}4e289娈F\\)~eUcM+EA3z]dٛbZWҤSyknqѓNjQFL ,ܚ6]bZ4P^⹂Yy?~[RxY?n˹u*12an+Uܣ7k(z֭hAzg!Jj9f/;Z)NC:=f Zv4ޗ ޱMl\X8,_d7]?8Wh-c*0B 'Mˎ&\k: !ޅ]a`F~)u>Dlآf|[!^@˽z4掭Bv"k%}6\}|URit:kQxsG:2z20 +W^ƽpq3}O7V (~Z5~]}ͤڋV0cL.)tn+o4'Q +?;c=o[|\W9t]A.nTӠJ ـ8R2\}z-C4kt !?[Ŷzuh p鑈J= n--GZXh#ni}r{!;}Fhc,zJowkX{(-+N 5ӏNƹaC#X$@xkлF/~{Gs@y|\Q.4AEh(~УjڧO~|o./ qX%?aZn?ȲP3r^Z +q0ZJaTihUI +Q}Wgo.:u@ ì~$oi׺˚ߔ2EsjOBa۔K(zCD@:2A޾ڌ`#Aiz)V>./ʍVʀ thqg7_ّ@w olw-v->@^ oxQv iЕKTgflnD?x!,}SCh^]4t3#tRr0k<ΫP.m$ +tʨ9JWql6N718,Ɵ7zZ{&( %7bɟNօ"{Yh5xC òW:z'yy% ߥ6Gxe4 +Wsat{Q:J8 ?*~Zsjm `c:h9g!vI 0@kgd;G{<`,F[կ׶-F^DiPU1$I`8lM;i"bA%#fv '8EB_FO-蜌`#\+.uoti_}uq!yQ£ԹCdtunI-]1$;:8Q4XA6h-+͙h4Xh-q0uN<^Pi-jFOcM,3+kQ5/NbN҅^?\|u@khBpH_=Q䢏b+Eyꪞ3V.RhcUFXKΞTd,ĦbT_{@H4@XHZ5ʊakf]g.M`n5\^݀?f|%n*oikhpړFvW-!&?{o#I]|Ȍܳ+[uMR9E$@# ,^.=h0o,@ΐՕUY۪{7pSٵ{ʎO+h})3rEI΂ٙ]gLKT[C[dTM#(@v~ob3g}ݝ^o%+8 O;FT:t(Ų wirM$Y `>#zeA5yGh,( +hhXmp +O-ę9pV޼LjS NQN\T՚Rl~ز ]Au?3 k~> k3x@✞іNe34`ق$x/cl rSގؕQԏSEK={\0xnj7n,dL_brtJ߿'LByEDuKA_e[3y2v $%[\2% M>{9;эZ<@g )vbeH -YX=\mՕ=$^*LR:/)^ȕypDt1h0Ƒn7`Hd>?rx4/} Ȣeh/U)]lZ$4_N,yFm>`o\\B*q5<`}U+sh$[\2]d8˜`fu3C5',DՐih5 +=<jM)Ǖ,&)ޅ y}=rB-)SC5edz+C姖B"K|LGC.Lb7Q[(7?Lw^#|'ʗ@Z ݳbdI TL2G8֐ Hw|.{q@`ڮWoh&|JH<MZ|,8h9/U[Ǟߐ}~:j`L'C?:_{:>콺, w<#Hfd(폳ߛ< J/b{O|%hF/<(7@KiypMgE}(Q4-d}wƷ~zRhfJ-{zl$M-Ͻ )h{D "$n..fK+|S}mu+ Njѝ∬r7hqƨ7h3*Ys~$ pR(7\#<8f%CE7 2nxlR#϶{ve.Mts.=b_paR[~6|>L<͐6k_b 5V=1U~&"4h$xH5t6n_[ U]qBz-6&,!eI)+Wqzmj)>r20-P3;VCFx]&m^ςW#i`4T' +@eY?MraAR~L͚t+2[y@gj4uD'DS*{`*^-2@g7+&gVpr֘!DpRw'8d@{Ol2(Î-c%"@wL.E*b7#Ǖbv~hI-9mziG^n(`5UC[!)ДA?<_xKGiAL%j!!M67d;?ސH`S9c@{4U.w1^Rw(p`Ԧi_aT4A4x@.7}r>%[-W ++$N(T1Ә )Xp8efg@O78s ` +N#f8( @{^k)zn'{6lE`6JMΧDӧi/[d0a eG<`h 뚻_11&Y·yCjǙZZ:0ج؃jjZ3 .mp=S'qm*wf!DU95$Q*~_}W%H17jVrD sK4Q~C[v@%qv¬CQ#N Ox兀ӆ)*o?ϽU/>F\ŽlI>膘UʕժC)J+|XSȞmOyeS*,'&X4sׇj5p0\8u%nLYK.N +S̜gj +AlEvRxW1toLٚZ_IIRp9+Yz%/.{Yeo-`2Qʐ4-sԼ{#FH%EdB3paU:[AI%o;6c7_mmg!s@I9qgtV[!X8^2Fqz<sp3_} Yp[:1|6YAbMթ +'yYbBK/^W$d^ffZKxA݃j?a$>^8丬lЬtFͲ8!{}F/ ͜\l?=.>뻏\}x8L%m}j(xxūc47U@YB2AYDQU :>b|XD[wxa!VtRUͣy{R4NY*k:P@͇q%WCt7t?VTJ\_V{{t'xKtP[0Fyanb!4AR&O^Mc**!-WʮgҼ^il + er0Ɖ\'sh h nur ̋Yнj0_/rmQPuPd7s<RޫBPKǏG穓Ƿ:hc 0ס'Đu , (#+[vBn>$" :em m޿.3bRGY* ~A44\0G0g +S5 {4g  I}6"^( DSKZHooξ&RWqGs@#r4Vzǎ#CuƉsZ*b"Hã=.n1v.Sb,!he|KalCDX}У`҃dڥL39 + aˀF>)rURzstJc+BVV2~=mKeeAc䈗%P3 % L?b:\T?yLg۝AY\w{O|D?dlDЅuNX@'>~6xrsFuLj2+q~;±?z 5I3s!OdO[vuPq_]X%2`RYNmôik3 Vʕt +Dr`U\k&NV@&>ZLWSxK>ϖ?/ @+q*=ݯx*~޿tli 8(rhV<) +k/eػw=icA-/'6?aiq9Tfdr*R!]h᫈ +X"+s2Vs-y/u\?}:%hE@n3{iY+S;hE-娥ϼM46'$P;?|ˁ_iCL`O5FאsqDb0n2E{%7+|4*G2V2TQYy '@YkGZ~ؙ̕I\'a]7WV4:zm}Ξ+jqv#yf;3Q9Cw?!M=.:^;D8oJ9Rx!q?:ݒ06d<4HLoqv6sВ/We*[6|u\)1rh +wHٳ}:14舳J}z5V $:. +L4=ؚ }|F}SÒ2gAlv6=I8]I J;sXȲ a~ +Q c[ը]r#^nb:n!JvU>{̈ME!q602YQ3GS!J%Țr VB6Pvy+i_NP_Y@#%Pia8c@m@ LT|Cf޳!f?4.D_ԧ'4ׁlhgrLnDeO8ZtrnaMWOyMGS+ގֺׂ:t_7wr(RSFSW.&/.:2x<X#+uz\P jx\S?#t8R!Do@FJ+&;W0;1#!ʵ< U‘>N{<: k_Dn߲sLNLUwuI{y7--'d/ʦ>ibvW3[rh*xfLƼN,2SCf&Pel=;ɵTRWܥ/LJSV͂LrMLmP&J4Vfxn<;/eĦy#0[fqGd;>;uNxT; RvhɪYK_rh AK^dw*.i5[c^]NVOOz;~_~AU *uͣi%5jΡaa]gVz{2c`|kֹȕN6М#)$& xreG,o&a ;Kxd']0 +NR[=Hؕti,7 Ʒc~w"urwJ- bJTuY{}Q;1^h;q: x-zwA(Xɥ .| +IEe :5eA1f-Rb Th9AF[{wr7idz2FkpҀWxV(Ӭ,8'YO?Gt3#SèZ/ͬfwh"l7 ?賂`B4mиa%vVZ Ȭ\ +Nra9/%ؔ<݂&Q&HKjFM}:l7wΙ:Aѧl 9OO>1H{ eBi'p{z`1]}pTx,mhI:GaСSF:%sɵ#&z/CwW3>\gWkUROס_ȕS8ŕCUZa#n} E+kȌ.H`_tϑgô}h',k+s l fZx7l9 +doo+إ@E_NL @z`U&s^2veY?RtT}_ O^~PtXGèPfPɳs־OKJMwG~ ^-&e0ɀΑ 6^Z)tوwȑCͪi*^:o6$9uO-6%שcn3Ǩq)tZǫiWBT=o-QO%2#~;5G2_A#?La -!z4SF,o8ޝ.J 7xzq XYf>)[<6s;Kb\sFl4cl  <87H4P*?HӍ=8W2e.nDFOM\cu5:J*X$4꽸>wEj*@S-BlNJĬa9D;Tpb +Gvu|bm##+)1; +lQRY݂3mhf5YF:2oz5&G骶Dw^7ay)Zs QlP iMbl܆~O=~Yl?R۠^Ao{1E> $heET:]Lf_J $ZIƝoGnuh)੿wVh7Ձֵ)Wh>i1HS UC h⼄\Z5ok%$:gŽli)?]b7XIA .\HfyH$' +O/-u %DV ÇmL=̰y|})m=^I[ -L4bl'BJc4@IC}82 y!m]l)_A@+;t0ٗ}smn1t-$O\r ,iJ5oI"$+mqj6^ 1tK@Uɟ$4:fMJg*G3'?VJ\9wT흸lQ8^n_ZcռЭ_Yol J[)yVc!ג2X-Ch%X6`x{w+m4-E-DYO(k;lZ!y`NJPg v6AB-4$?8 8* +嬀̺(HV-LڵVΑ<]xp?<(%eۏy@ (tOG^>4GiQe +CwOvQ>R#=Tі>?xyU(UKE:(ֆiRt7f^#+<Vo;`Y{ڮ?}3̍*M%hD3$AAoa-82Cj]+ {ߕˠ_VPc%ʝ]bR @O+ @3hHLޱV 1 +zצGҘfUWPNx)2@99CRZBOs +:L͎tS=϶_d~UVth`@*JCe?@sg~6T=N/46 7&-0YSs1*u%7wj6Wlk?W֋⩍W6N8Bo Ge~%I^ylZN2y np~ufn+F)x|  CY !yfT[sUd :~r9ڧe>*1}bt!DdYPstpUi,H}Jn!SAyYYXL6^{H$ Y?F3b +b^%R[ƍ zE&8#WuOYiǵԝ;@[,S"b6mV= )s5I^PQXvj^:ev@ajRl NcX_<Y?F}忾!XZ cYE@4zL9Ky5- 9, L=z e4 g(`4+/'n[<{ *K}j/(ugR7+U՜`z,98Q;4rCuÕj&yCIA^)&2,0V7%mմm:X[IBpQ0m~BʦQc*=cÈeR(=r8`¿q/e(GW;ߐv_hgQFg%#z^ &| ʾ Z*O8Н "8+;??.f]hn(!D-z' f0H&{[{?ۯW#/-1fnDt' + SGɆc[uCY߹i${ywQ 6Bmn(S]Bp<w/,7|q334Mbfm$dXM[LhjV1UHLz#/'әB ^`N?,m&`^[P%2v*Lhy![y c{e! 9B ^6|F@Î#n25"Jg F`fpU'7XpasO}cbLbb8rI%Xճ{g [EJ[]faf! ;Mu(߫&ICs4izU>B>TV@<ba4݂#;2ZY3heM<ف`=͐IZ0TxAYE3ֳ`_:F^2]Z #>5Ot}/F'Cw!|&mv0ԭѤ~M*1,=O|.-T:K(>ޚ>ft`XVMɽcxTIJHzS:rTm18@@cˑIMw$NzL!̿Uۀb}9_rR܌!bc`@#tМQkI R >zd%5F )fь!gsgFncY +Mg/~kJZP<E~;}h|u"kUzL/C NƲoY\7ox<q΂Y^æ z!qރDCc03P4Ƨ1YѺ6x/x7R顊(;3Ng)R (HGV.@E[qcÃcAWsT +eQ-,PhY-Gڱ?Iɳ~Р& +h Ǧ* |Z/Xa`YkLw+l ?a\_}HaYt Ğ[, C4it T n{1l9F +mv$xn%dqɽ//3ij+=W1Solfz K3C~3hY44WT`Knx\Uk& JSYm9a':7QD&Zv`e %nB'G +$u"zFxHjt +'#4Ԭt.mХ݇U2jkK5'>>r-ʖ]^OF? !eE:60ȭ +覍C,Ń_G¿@3Zv/&KA1ySc3n $Su> +5UDl.Ґ03ϠJL@g#V`40YQ.ķK]Ԇϒ pZ $WD:/ډ +m2I֟f6^q=h^ʳ=!,$% NI?쫬79Y 4 79HL 4T%lk: Q@o2V'ٕҿ9AӖc5B zlmsLYH{=3q斶f_$ igެH=my}N/~O-m< +>K% k +gDi쬊^By)RBI(9ޜ$ +\k5o q^)^zc7|BEe1C:eе[qD+ԏ7v9Z˽lx?Tr8cz>н6(j/Eǐ eD;KubhEb%1֩z恐!uiQ g6%W;ӉکtD+9KRBl7Pu0ty])zaA2LTʊ%6Tjb`/ҙujPÝw'$iQ[>`Be +?hUzRJ?Q:RP V}R{q.[D5oXm0m|uOd$}a>@$"lޙylBBĽt(Ъ%Q71Jgρzh;;hr0 tov$7` %F%}{oT{ȎtM5{VpHREoPW!Ts!εe)/%]6jw)z[Q6PK, 9]'/hcB#=FgOz֬c!f,4AG@̂}z#d,^}~o(CFdţ3ѕ.*CXY$ X̎! WBpzF!6X/N=?J2nzlOqƣ M~-e|'0jSIvn0Ii>cBiWMIxc.vg'CyKcYeVX+ P27-*x9" 8Y]@GZkT?B0 \o.,}w7l.ȸE>eotuۋm|y 7^w. +Zwߥ3qV@e +w}7Q4rM3"Ooil +o1}G[~ !JviWqݝM`ᇥCuϸӦz^є$Sbi.M0R'/a{A\YCZ~Pu9l,sEȔiv(,<^,A>be k=XhOD7ґB]Pĭp3I'|ļb @y=h)W=OEVٺ9]NtwK/QǡWG@)CYGX? EgZ^ϬkNiyP_4_e3nܥ3߷*a`b"UgLQ{0O<~zB(})cJ NRn |M,)K%6죂q_Bo 4sw4#GX? qnsJg=iU65-_d׎m[NIv{ IR7cIOA=}!?< fʻttM /2MzQt78t~\knlT!j,vB Ѥ~>tH.Qz*BzY_:kwh|8wR-(hZpV2_zk,Kg3dvdqhʟX-4'еѢt GeS$q3` +& ăl} {y$v\9͠NLҳ[}͒ RP:a@;: Y0ɋu5@ÛfTc~L?6*1\]XoeX^cYy)ăՔ1ݣ$T4YTwdõ yS#iqFnHbO*bz؂12vx4JurvN-Ùh~TB9ir{-iS?&Iv:1'ޏ@qޓ9$H3ơ]b*$ B~W+A";tlaT\Д((|6Ic>m/G>"Ȼ@~쇨,҈'vް.zߌg^N98h_ozޔlNNl\{;n~;+א pSie4oG{;ʪh^ 0˗>(BY: }DS7kSpnJL;Bn7<ԝ*.2/gĩiWrz!MZ \snaToFjdt?:0ɬ>UB w1C:J݈޵أ; 1fC9[~-쨖o8"d*<3AEQeW7WƭeEp);Da +h%*;U㷛7X#1q0Si)Խ44+KSnqcׂE $8P8!dVO/ZpUa\ru`y/kd/{=w =Yr7Zߤ?5\ЦCB3jAi Ch(cyQ@n0.^t#Q+cyؐmR>5 (܌¯T3pfw)N(Qo _ PyMŞ@ +^e@ ~4VЇETke4,bt =ӏ/!QƐ?F+ yqY"&lլZY) z@ +hdѮ?bH\;dhdeNֱۿvRE7*NDج٩izfc _Qma=$h^,ooHl}'eTh.`,$F@EXgR֥aV;s4sX@yej3sm]n,D2韏-.ךWt!eN1C22'lGw)MJs%hM-T+g^)jDž£zWt5Ʒ/FI9VD 2>#P 9꠲_`4R +Fٲ z/e=F^%tDgrh%扄blg[B_mEF^6*,VO:f'/Iӕ3hĝh5cET#A.-̥qKG#YҘ~a8LiGWƒ +hHrjY +F<>LrSeg)ƪz2M8)!L.4,Sd+׭Ɓ@*+QFc& ѢYr2?UYfbEdnIɺfe4;oplk=zg>(zK_?ghY3@Q^-!8$nh2hG(<%giC@;c[Esoe +|8 g˒seoFoegY3b"DdMqi_"B.՞R˨26L[ ؑ|&ڪt]Ņ?&K8yz)p+A;HW)q*f{$<$RڛG&IO$B=Z/@s6@K3h +#?i KFdޛlYrqgwF5 181"KGhV+k +aQ~8[r?*foS7oe6\^ɩ kOxKo*i}b=;'٫+TЄ +1d0ɣKKOu9Kѫi1~ܙ'ݒAe|._'`+¦pn2 +Zx:r?sj=On*+^*pƁ7/yX j/7 +757FYa-ϵ'wi <$ k8 +\k 0y>д%A -4b.1܏+&TI',۸x tfuJŜ@BYY5hfUKY4±al-SaxrȨМuk&$&;r hb ,X)4~ͩQKLf"C|̔-%DFkY7g ^JGݲ]umHߘ;} c[ ԑWZK\'FIwj] H+|Z0*6Ýg$Z,gC} ~2RYJ (4]<0%k7p±u8E`Mdz4tP{0O~-:rЉۦ43B2^/I|i?3> ':]s=chsE!x x1Tq<,ʉEڐ[&Je4BI$^Qj2͕HڲoR_?M67Sc %[:5T#xK%n?yCY3\#+;]OdgcڕO0wv~k!v8/7dW gI(ƪlM%f1ÒB ْތ9u4zo]Sfg LfVVѧѽ޺ϴ;X_10X]ɮVy^jFR 36w EzG; c#4" N靧ʄ󬉤YCO<ˡFktzqеȌI9B_Nz04z9j@]BT٩Bo)wb.N + @e4 x4'fx):nR+^;W) Rr6Fd-򏆝 +35K%i;uM-_fߐ;GM¦=~3`G?M`T0`ܢ NМRϖ5`'<'fNzuA8xvf*z^f}eA#}N@IӜ=N(o5\30# U2&R;fa2h.X @zt(QPdAP|r1!ay,Ȍ4)lEcbP|_5(a9GR*mܱu:&^e>RnrX_pQJs +jvRv^Mhgj#P&dt r36XT[;D%8 yr ٩AmϢ,OͬNO ?<.%U hbh~lJW"vJɳTFcM#GàUc o֜,>Int}WE_V^2~pZVO}9PU,f]umz?Y9S毬HS* G߈˚|D!,; +h.H>ӚzJO T4WV<3Jn]W âl@·_9ݦ}?*x0ƔlJթb5kNM?%7s!bMJYzk@<,fX$:܇$7I#^欈?1i3,=/&sKSkmט"MEP0\4yW4=rgK[40ޢȈꞽnTZš#fSp#{Y8MF +tW"6z7Q:F27Q.ᒅHDwovy#\8${9gvo%N`YiW2$(!_8ڢ򌈞/\z ~.EC8PFK %4l8_Yע_L<*;{W-JsyTvagQ&μ^:j@Kzf*_F[;eSfLJ4"Lyf'S;j|\\yVЮFs]w3RLwY +32e=:35f&S2 e-Ds9NspݞDJv)L}?6 @?@>aԢ:Rkvtna22QQjէ^ obd8wCW$"iF-m` )y葖3.jEt9,8XHXtl'G'%'zg%pd 茱`XF&r9!$zK8Ɓ9P@JՐlpejz -]lBePVjAsBjmdHy8\M#D +ť"2#Gjrt;ޥ* T+cq1Pе|7ҹs|"Cv:Z7hCťDu< <8)͚ K8Y"MűfRl./1w,xG GF=׳ 4씒-"MR}<2*uwrSiQ!Bgt_)3ҤR1k}ޕ%EM|UDL#$Xt׸{Ċx&Ѷp^#詚oPPcK0g/Uz,R KeD!>鯹bgֱ%t[r}]N ?cϵRn-1:2|)ܤgG|9WVR㕃Ehv\c\4x)>FhޟOwJ^Szs |\KnfMpԽu"hJФvYYe4o&|eߚW@Å#&B3VNq1l> ޾ϕ5jg٥/-hi.=N/| 3aIy&'2jhMjܐz D2A%J:}/'&.<KQc 4(BB +PTѤ+QvG8,87o FQU+ @'Je?VO{eQ RqT`^}ZtUz\N3#H +hX7=NpNa.g,@{%Qiݜ5;EM&{#3KG+!> ~%teB?G?5 Ug=*JYnoM{QڱivwX]/ZA't|?<4h<G%yg|/˼(_ISGd׎7Aw1_qo2*1uen;s0fid͞G?hͧ]vXxuIiַtelo_pPOZnx_ }*BVrF\?#"h0k@ " )?_"4(Mb[7W ;phM` :ϻ1> KW{>s 7}T=-=޲6;U&3# Y1fgvvA5hC:wZIl + ֘S#M_3ֿ͇z־ӏޏ#JiRYn0-Ѣg tB]\dIbGM:r5w 瞧UGa +ij<*;G˕۶"V\z%teh.N2!:a)h1g+)Vh93_$W>hV͂M&ԊqKLU:rĚ~(̴Ո=-1IKժui_ +~)? m_3oV4iOr3,Q \F'I{d3*Q,dy&۟ܒ4TM8=Ɏ^D &Ze1E'.!95/>TI&rx5M]~YKIJc{{8o$ ybiFm!A i$yi O9M]ANͲ.1{WZ`r9CҎ%FdbHGƹ}' zNmJ2S; |k4 +6Հtu=Ke6Ojʟs5xB'

XF c5%̸&V: 㧣 hND4)lf/ea*r{8`@|GE|Hy >yOЦD + μ/Pf˟kOvy^qG/,p̣llƏcK71qlp,aa +j/?PXv8I2.5[;x:l\m_Y0 Ư43r-vU d+P~zEF3,}7Q?>'w?-ogYi:^\NECbm ?e}2Aψإ[K9 : }b@?R[UInږbD "Zer}ccbOwc'nh\Y,~QrardՖP  J50H#Edg/[Ax'6,|eVNP]"!4hJU߄c;R0"e%1#>4X 4[oF|hϳ6B5RXFa _&h)j@+aeGYG[~hlԲihhw4+Iˈ߃iяH\>\fտd[WSEy>_6齇tS iC#PO5ڷ9:9zVgn`k]|턦^pJg)mFUqn7޸ƴg2T "{qEՓRu7"3p]%'U.>RVPA4ClHAH9Qf3MR*\^ Er\ey4~Ze(M}MF8?ͷ +hvl3hgrhK2`N=ޓxq~(RVRDtM/5pZ”QF&GK}+ F1[U+*j([9Vjз/jpt ji }8+0v V'#G.!tg* jF4&q4{IKD[eUunIl# HF=i@|y= =Bi!H^]UYYoዹ-|vGdvT%-lswkw=B."vq'pDc[ )X):r!ha|[\b7&Z80٩k;9 MBRb/t&?GW?b.i_m/ɧ⧗Mz~x{w%ڏ*_/dyc E+G"8Heo۫@րz`Cr3k\8qLdz|mC9$.xСXuv +0LJ~e+Ae T:5: +ɢXosBnG]0y{*?gԅ6)=ck%iK8c,Q +C?X\Yj% p`I5h(YCٰaCC~VǷqiz3Ftˏ 76X&5ەI8ZDW_=hֈ}/+7,%W9C=QPYj#;YW8ngf@Sᗥ\vfj{ ޻Xi\Ouݔ=UU6z{q+;qvV\| >(lM[4rP7Z[.&9a7?ou;Ygϥ:;C}T,l ŏ\(ٙ`^ui;*o)]V¸6gMa]BzVmy׳Fl2H\ʟ1InM//w =a.9Lq7)7 (cu%|Vt2XzLcɝqGؚ1hht׀^k:`];FiQ!L&obWѧ."_;VxeM+pwwiqpߥ ɶ*3U޽i\F3̻@Vb]JeՊ%=rKR*|!$Aboh]%^8k2+Chtu_z!4971Vd+؏/nN"\eJ X/ɊgJe`3Za=¶0kf,ρ7ICnZ4H@#4S{pJ{kMlTolʻ5|A=d{ gg*PpUG'Ut :6Y͜SuNn)t{kq+;T 8`adʢGrY5Q !nM;k3G +7j[/<,ᅮ^ᚭ[cl¼)}rp&0k`vIj&Q%n@{eO(H|Yh9Q/ą`,#q{, (HwUݼy:pDa*.z_m?N.`"`d6jв%n ZuR#]tiǢGȁt^7*. тlFf{Y'W8x| t&}xT_PT@\Qdc7Nc0 i1DѮ88±^/N{Hdrp60+zaLZ\_ F%Վ|\TSX>諏-P*敹@˾Q}ĥ}7ǜK!JԈ70^ŭX afp5L#4]+rD">C@O*^p|n:):2IDe_3oou9[W +Nn +Pê"*$ ;L0؋#-?fi BuҲBfE3f嬿iвBRM7CVv]a٬Q:˨4sdӱJ;$|sDe~~ާyǠ-@3Ke;PbFO`җ^k[?Wq]uSy +JA I4IJ\.9x5~8(4g>g+_ ~9xb ~LQYbe^{ +DȮC ӻ  *&ǟR$>fP$lsVpR藴_!^eV!@ 'zttHPW:ЗB!ծa;R^2j4"ʪk{reV,gƎ*b#/ϧהtW1 2[m@} ll\3qvB&tЀ84I~FJ & a6=3guP5Mοr +1 nkm5h ]%g2ܰҙ4+Z*ia DX¹]gb;>=Ԥ4Y0 \TG~%ƳQF"{ ͯ<7nu3bnOjLsȂ w y oOi(0zsgG4 VBpdN2aJgIӒUa#F@˫ϭcbs`k&2o>,BIjjy+~Zz}SE&aE' wiM2]8 &o>B_?7@o9 /e<cV:V!`g`Hבhu#Ó>+{+ܗNuZ=F+F@? _P Y/€L@Ir6:W{l|ތ1j-y-m %"X?$M}]cۜj?P߹रѥ"vVz2c]M}r)ySvM}jڏR]RC `@jߌVdzުD<泶Enóu +٬Z42rb jQy UKe~ze3U.u؊-,Q\ʱQf˻e)4/X!FS]߲#ʩVBoۤcQ&m8!7_2񳩨VNi1V"+TTtߌ<߱)KA2yy?J 243EUG*R4m $1dU34;jHC> yZ#yM po{FE>jzE=x ^5v!A[{E~_;84;^{q>1:AQN'/@7=6VJ5R^~ G}=s.<ɇ(h1sUT n3Z[^C0-~U;OL !<D_ +>+Rgg_UL51IXB%ul0ݎKqM^o/&^,3ڐXӨ9 y쿡V|DvYY5+rɂ"֯υWrbtf/EN.ۍ/`s^xU.7l֡vΥFj5",ʱU2ϛ&An!T&h]^Юpz4\+e L\SZI䞘)sͲ03h9d9-Aczaܹfqh8W# ?{YmƥZVf@(^?H )@ͤQm<6zLz"+1s:B#ϲ62sgqTejcLlehGn2jWH^9Yi6*Y` e2gyk(hi[*"z~×:UY;~~.Knf/N'( "&Lè][MW>M$ ^H[VoCOr?ٙs8oeLψKLsvUu6pdCV1sB=TVso9y1X ڤ,taNlqsҵTԎzО?lz&8 n,B1".n|6ާΦ镏">28w\Td>f_L4}f5"K +2SMC,9¿C^lXϧW_UbRc3`q{dfTj %t3tRFfj'_-V +*6)g{-:ШP\ZS02zn̗ZV8 R+M<q, ϰA\_T+}zGggKn&y@SEt@Ԙ/@w9_ԿۚNTSٙ4F=?;ymA7o2!=+C%#[[=zV2HI9XفkpZZmH(5cю%Hb kE#zVXSJ-=w=1Hʶ|YEhxtS +6Ʀ ;s+Q3<4ЈYiVdF+`!]/4kHsd,hWu6Z4VOWC2<\\.I&1TCek1~>2zUSO~2X/~Yo".TzCrg\ {\{zxj`C$U{!XOMRV˱գR|ޙ' 84]s BS֮?]=*fYVb*%vF}O?N)Fly~Ty]B +tL++4Sqs{꘮OWDwnW-uNA,Ŧ ,PAwfgt.o;a9$ oM\PְdibǼةI $F *Y yt|&~|)XGٱwt}\dꞓlaF3O]nlt́fxikj(yQxtJqtw ߈'98{0;L 2lY%;6v0Q8D3hG[Ic([uƶ9"V~A(9 !s5dMO*o=^L v0+`|-zjfqܹinZr x{ไlU$. +kQm^ ~L@JQ L%\@;3]))a2iumQãO#7Jq:\-R g6$7[OTO͍` +@QhOp\ Yi=du>A%]SNJ +gӖ$C}vD%?Z'+'tsl/I#C->Ѓ @AxS o=tGOQ@ҧ@Ysa;ɟ"5 +m$\=Uեݟz1Sԉ/k iJq4% '״Gҷûj`e3qDSPCxqMJSfmlyB8w8.jF)aD7]nbK:2m 4,tY >gl'i l ۙ+ 'F`R@(0U++A?P!C/9fI.&x'&q|z֎3+vv>=Kv_9 +C^p~HFк#.tj淲k% "v]A[Κ UepznZg%jE@0N +Nn)xzT6+hcKSf۽e%?zNb(!τcޢ 6;lH !5ĝEC@+TuBvfz. 2H<:ڜ?+R]\c[o"q:$2߳S(ods%oLW/~s+!Ł^MJ[*cSϊx'fpdGM,mIjgѦyŞ^DB8:pDS }\,s89oG'1TY?l-ݰ}ۛܘ]:H(ծ8zJΣ9;U4kmp'{Csu=vDc}, %:&Cr +n:V@zF<9bwc G/{+zmJ.NOCMg絏ߏ߯U.U6eZ72f, +z+pGjn~@O#n8;Zvp&/9*b}>)D´FHiSE޻4(Fp;>OfW⬾,4|5똡P?0G=[*GJ'9XT`ѴWLZ*,_o2hC^(ItoIY> q`ܵD t]MFJ 7*ַ46`9[8'av '!uHY\s곞;d! !^aЈ0:; b)_nqYL53ЯG)Pk +f!sBMM",2Pzqz/0*i-EޣȈUc%!|:ӸVrxQzː +h.;o34xs7֯aMޟ_%k0-.tː{ vN^*܊z=2v@tȨm9hĤZLVmqCΦdQڼDor=>&Ӯ ЭERYU 9c!V H +W:Tdivtcj~5)! 6e@;M+Kׇ(P26:sФP\M~1=(]O϶}y'@<#$UYwtZg@"OCqT=xz&X򱾸·+"ֳF!͠,!Ί@+1aOrAK0[g8hZ +r薐d1(@Le3!Y8m)DnYak[I 2FqrfRj4l.LA`"YJXh<^hZ|xMpt 1yzE~`2v~Su 2r`XV+spBWrVyىS5i@Ik7ʜyꨶq.<:-DUc=q@ة +8*GS+Y\P7 +h(9GMYs;og.c$ԻPz+;ЅHrE͏$S3=7 zf@DXJ{4 +)17<.бYe۟ϐwD T_ԫ]HR{8f'9PnZ +x^ UCƆը;] }#-~(]8W[шYLnv :#HJRhr5Y1TلTU+h}gL#zjU +cap/fQ[G4w OY>pah)yVֶ +^[Cu?#2hu{r/7Fܗr)VB NͮR-w "t_> _m\4J'Q1@1:}Js?_W)mvOu;Qj̆ nXJj7Q_%xζTju]""i^NTt(OF8;=MfAh#?)* +x4 s_9C 2>^EBwT)2 Tz'I;Z׆jLе+C£6LYjHäXp?鍍N̟rWh(v}BqCǥŞuezJ=X%.Gs}?Z95TƤUA~y>s-f39 +úLD65h w.q0Ǐ&sS^V;Vǯ@Н[EcݷRh}%f( @1}I.0oHiglߌaYð. ՎSJ^2 7jO VoB .xӽ3MvmunZ*3 Z;=8Yѯ^*'eD{j "뿟\փ#tI`ᣞ;q3ԩo ף{#cUt|5Etnv !=7xyw]\{~aT8ylgʯh X{*c׸eC7GT"/MKkMlx+8Vxoj4/W@KQsnz$z*$rQ{pJ]'}gr]l_7/r9fJ0ZM5e3h.*du!04Rg f=Yd(poM/w7(1XqnA@ӷ__Ž1vL^C$Vc# ` +f;Ϸ)9YtQˣG[2Z]jbj;V3st{IYY0?1@mcgDn[M:m#Cou79?C1И5{ϦPtTγѫO\xX ݿO ^b3hǘwZk?.ZE&2߃ m];`?zɿpIYTdW,0ڭ ЋP =yUQ3ϬhV'a3̂Z6}?ޟ(rHUڿLqhAƿ8̼ƜY "ij5R|+Vpt5e)gbwGjs!*U9j37g,8"bKejJ%QwelquӼDOq$G9<I_Lra#_7;o˯G\+ac쫲 OH.SoY1htUUsI.l#O=u'b6AܗrVp3j j@Äŕm]|=>ezuz)Ʌl \GZjb%ƑmA5Tp#Azr$hR0\fAfe&Y 'j-x֦͊LvդZm`> sf)5R(o\ iާQO%'Iick&R'c{)ӽ-STOFL^0rbӽ'1mK-:Htr k`*~iƨyylT E2C.&/@!]Uş2TZR-M$LrRO<žV +ѧ)+Gy 4Аҧ%$@ŔR#{3JLt@,fE OFa6q4kñOE&-pvn\ڱ4~vO'&o^^8c(3sf̅4Qx{T=UV@3az)P%/@)cP{jG*ԫmurcR @NgX [f72u1V З3~OwPnv€3t͗q]ͣG:_¤X8he%@{V[}7"7K~f/jm 4ge.L-NϬW*vt=?qjz?nb^@¾ƺa& +D,ׯiނ$έ=m޶Ia +v_Rsr3f2>Q- tpg114G+g͵~Qr|ݣGTpW_mY9i=df`<SFlqh $&أXzBy3V3m[{ 5x|N`.-(xqn9KLYgg[ǠCF!qn-whV|m6,?*. 藥!VrI:4+ ~3h'ӈL91dy5BTc0* %זQPiDg} +5NPd^VpD:;JF4 IϷΎEl!6n~;?W nkGsQEl(ok  +)2[XRU܁dwt'39uݑs2:wץ9%ޭ_oE RcY Yn0yyLgF[}χ@;jz{H:K?" Ym` S[ +taDOt苍M3f*Cٯ@7)߫PC=Ɗ\T~C*:, HY +6ycSvt@^+en-`fʋ,,F'$Lahi ]X6ِ!UahΊ8D젇;;w˳u=@#hLy`$xarMyxhA:3WdztN0G=7g>29,K3{Fug1GQteF0K޵Y_܍t +`PlQG|z4g/mQl@!Afl.-hk89`5>^m-+eB] }ca++9C + HDt[~ w! +٬QuC@ fZröx׆~~$lZl[ +y7xCçzl@W$q^/- 9Eܲ9릫JJ]r +y!bރ`z=HHEX57Bc}tv4^^(!f0m v*Se'@բ4פw +Zx9;fO4ۋԔZ50# % zDV'`@N~Ar)ѣlo[!sgl/kT/BgS6vujz,#$ϩa)5/ato$zeZWstjZuȪ$`jU %eͅ2Jg`)tٱoMỳ$ҩg0M2g(+`Zбʙ; s3 +@ fֵF8`Hf# HzR@wGj +ۓtɼ Q]wģIdr:9fr2@;%DiΗhp@;'иuQ]i~JaJ B9bjufԖh*4:(>{t*"6Re},u3V+$g7 u_{BqNx89VUtGZt<=V:;gC*7Wx7YEo0d_r7铎$ J}[2a Q֒*:tKԂʷ%Y:Њ@nO1˨|'Y_*Ju|_Rh 31O{SrSrծ<㲌p9ͯyJgxROO x;Z<愊f?[m"'x)FR"2R +ug&2g[QI>ȯpi(1Fy3*uƟ y(y<=)* ,lٳ &3eU1 > =?ht;t>ڑݫ$fn"GC>-l~T3v$}Qe-j{\ȇ^!&P[X",m e  ^M!.F[Iՠ< p=MZ@V*x1i+1 @od]Ua ,rݳF]䆞mE?^\v zJ*1"Err/ +CN&D70T01Z.;zW]AsVR?%)L_=ۿ_@sUأqԜsi|vF<ނ|˲$2 % {vkdsri-,?m]̲}ZJjdj;8پ-0V Z |˽0~mx^Chbqp~&lёymϒ3N fI΢< ;.l^ݐ +J$8sOCǃQ],Ƈ~٥n%4xL $쿡D E*v <ag\ km4p,pRKv{<;fzJTUccз7w':l +hÝI <>4gYMa +w^.Y Li:c,nZO%+a.VDI&coߩtY߶KO[FsH /=Su=F 2 HWBtz~G܌,qvRSG'}:+-~<659Dw|[OS3b4[gpA!M%J[>6磰gC&Tw_%xBEY-3d"~2ݻ/": X:t@ CTGy YrS@Bcʔ$ j+p\ߎ>.l- a8!5Mc(cVgSRf5~ Jf-u RjDn +c*05'=l0࿱>&A_H|ڷ>)9ӻ ,=:@Oh6VזξP1w9qeCkԍ=vGJE-#H ׊xxHM^X翙FׅO* ,2b1맅f-`ey㬩ݩmzǷItp6赧ػ8;WH]Bcxy0`:Yp4)s\u~26=@JHQ;Y,0`|y?}Xk[ tP2b.b3@y&(y^-I +弓\`Jӷ B"+~z**raw+tO9=YхYݔrtk u +Ⱥ,D(k$Vŗܕ52~>IaK[){`Ȁ̷@MzF_`R4 b*ȡ>' 3N.ol*M+z}kf="' vJH6"E@xf;I?$l+=7$VC1.LARgf +1X.4 Y G*[ /Sr@\׏s`t@x"qXD7 |l ipxnLto꿡thmtgEpcNU%8}Z.7{?9:*K]/縱0 nN.zQ_HEUڹhݑz+~ڜ .+EU hCˢUj7ZP3ӨFZh;$iVzfO9\כ648Sîn` HEqrqUR=Js /c.G`d؁8/GbX6tIrJK̅$f If.8Hyk4x1hfZ#W&z;%|.kq>a@(m9\; +rÖCthCstvl[`X/o?6_uت`׉XE{ ga8|!nj&z?̪(\T<8 tnܬqY^:üWuI/j4Lc0H*n}gbohVg-N gp1>ֵyP'$ @c?{[/5o jtբ]CU@ QBDO178g>R+ HY!22[!_@c ʴYKm@fe&DK7R$Gf^ <$|Mvɤ /Utnaߨ:M|wNU ̑gZ]!9; h GT (gR[Lh i @wb#J mӊͱ 1s%nvɫ&\a;S.\OtU H"yM[S.Y:G4uU[ų*tF-6ib>O5 x3| V JtGI΂'?_C~:@׎y\Tmiy`zZ>Qr,9}f˜gã?CN)VZr0ui1359%>3q}4{Zgj.G$˙ջ?G,w554{Vp%5eD1Z Sм0Ij9{}㵄gpOKKaZ _-ghKMi[k4 +p~؁ؑj</jz3j Pf\idg 9 KkQYkoa&ޤä_R96铍pz.}}`?OL??xjr:tu>t*;h88+YzC[q09V L#WQs'j0Vf48=3*w/( +Ѹ2W[R Y;-Z$: @o\;!ZҌ@ 0.N +%d{rz0%al.[Y)3tqJ"MU 6zC43LosOO;|^>7[lƥW^4ҕ*VJˡ-OQOK g>o(GS8ghLP63U4K0mM>4V@ ecކRޗЫªzҿ>C.ȘO+(Aui l%f 뚻h|}r|hl;q+"ndtה^u8vL6(; \8#ߛ^u&'($bѺ*kg?޹4B@o6NLNhftBeW)cry7'6B>Vh Kɮkw3 +hߠ{pkQ_!놲@V-Ტy[(HeͰXfSUZci$]kZ]=1CMķ=5q~tY5<ӷG{tl*$'f*IVvhV%LA ;*p\Z|ԗ"aE9\(E2B4)ZWк~8=\Kה"((+*ˣkS}OӡHzWaڋ_V @,y)a`! Ԇ RP-\VеױĚX xY: -v9'!C_TFW1#٬0'Uq|K)4o7x>ÌW@yEFFŅ06Ffkb i.[P=R(=9}fбAZtpll(f8nO8~r-P^]4qJ.YG4+oڻ }9JciWPj^ÂJ1p\%x(d p硗i`@3{q!ZYJ +9آSJ[Oܪ.ε!2Gf׾C)Vĸ e?]pky`eWCqCrBeo濺m'b)]Vk*̫"B}+">*o< uGZvrfύ*.T "Z:h_04Y6fvZ2 Ԫ]#[?6*Iz5L((xIT7b@Kո>_-o:t1Wi. ~:iل1Zl^xzN_F!U WcyxY ,ᷰ~f=Qo h3F҉a:,Vo qD}6T3t1[S|} }楟ʅWwNCw9 ]FFGMV㲅_CY?Yp(J <&lرChY;Quмj uLJ(/{N~-޴DӨ<0{z*"GEb }G[Rh.'2ukۼڐfh`4Ƌ]b:J(|C@7ƕf o JJ}4 +hЙI`>n"8x^1"a2% 84i!SС&4Va$`hUl<꿁`̍XWڽI Ay;je0+ G4wЬUr _C 6Q˂'(~vښS^qMņ\~ts<7Ԣ_);Y뿁QK8e;;w-`328B5<;Z88h+(D̛_Wm_=Wl)H}ل<"YjHtj[ E=~lYc3lUWvAsHLMٌ6H~oz!Oؼ +fla{>ۛtSGhzfߗCݥ4)7fr8 ߴlJX̖By79D?u:LFNQv|Y߲~s~ﻵ:)z0ɅGU̎XEC̹ 5W9B@3b;dyg.$ۿ@ +R0FPܯ>}oLT\ǏI +elAZFb3\ Lr c(DI5hrg抒HpV18׎壊MZExJ⃣kpȬaB Yjɲ-nD/ތ*r|gFo97JűtM'<_b_j?/"k╢\Xn9s;QN1Ղˬ߂&&idHR+EqH 'IHvl8?$* )hInxIJg@K5 lUJ׹(C Y/tQ*Lۡ!ɇ#bj@7f 4{:T 1k#1 (S=7D}Z9@&` -=!o Uߖ+Jnn9V%5v ]80q7ã#V-jVǥuu^f%,٘ͮ~կl{q+"t{s1}ј0e\'%g{uCAҙ@~u}~%^l4)-S{EЖmHT<ז#}Ip+:>c~gXWuż7;{?yhA)X @; B} N{>T76&^q1:?]R*Ű}0 {d,6z$hf vH?b;+>GKg%?8YLf~'0YqdBuhc te_=%Nd`}@h `9r7@293cе$HG`aáw'14dLMIi@` 9ChL̈=hjjc LAr.'(쿡:hy&AE—S ?;>'?_ dP yeAKM6[ _şxMY' +f#h?ZL'7xz?zDSc32:.8xP0Yf@w3ۜ ]ߊ:iztC0$ .?8ͣ|5<~R cnxkd4 Y.-;jHgvQy'sS97z6%S{H/KqA+xdk.и<[uϺ9;%*5@:9 +|Ky}syxN. +63&b҉\,;\|F{t nN7gx} 2Qh+AE~th2U+^#2.?gwwOҮr/]l8у\HΆғwwSwNřyW;@fAO_x>Hj8Y *3SHag{ +ʎTݴtؘoH Xh=$9rWZGz:!mf15 kU>Zf'k +'XWqި?'_n_D<6/%Y{d/X"m`eX[ +F8HYC]{,CEɩ(הZJb+6V '?v.rij +[KUcШP`Y=*j'W` BiZcnJ)ԼZuvh}V%~or0GэV0h[nS86pFJtՍd2et:re9$9N@(ي3;ߑIUbM PpxԞF=[[XJb +OʲqOkqx̔`֨(fM'1Iif"fd ?dt#9+J {Ue9BQ .(0h m'/y"G#Mrr`%fPac·o=B즏/GaFի/Mw '~N!Wr>YKXl>WC;lفu@36!)~@#`Wǽ{龥<oվ׾9Y heKhU GX͉\;S%0z>)12AC^ +^u9!4q}M/dz eAe Њ $8RYm>2>̺V}邧8Lw^oO.G܏f~;пoҝT%sÓ5+ӕjʠK$0/bNs7oiE"i*7NmtY6,I^2G^6}ێst= ɹpԶi僕r+k0extXʲAO,t>t +6]6Z"+]\/ +[;Ѣ7Vh4)mφ~+PSMJ2PZ=3q|?1==mrMG'"\z+L&ed@4Ts)@x4;4NʊP/0Yp&SRZ6s@)OLAC6\0DbxZs-ЁyF[r/-mT[$TٺO:Ee}MOa894ٟ.t|S e[4`뾅x3]IyBЅVlJ +RNyoPӳg|h?fR &Ti]^HL8O^|Aoo1 Ȟ!^}?|6h`qg<$@_ 7@=q(\;Ղ+O~܃t(9ZQJ|Aqɺc@V)ğGE.2u{K/c`,s㢈x½EG4|cSlfsc +gM}-wE;VNGW_[՞^0}O?Oc`0{U-مnov7$I,3\9 lI{ ֱ[9Ъ"+*kENΠhMNBKQ^NAQ$7Pt+j1*m.Ъjd˲%8 h2_~ sա"ƒo>ވVb)˯ tf>B_<>=FY'/8_VNl0;Uo+"Q 'cz,*uZS`CMVGϦg}8P;@c=|v`*HSu`gn;G`\-iOѲ jh-7//}1%#L@+"pCDغ@_6eo$On߈ZՆWWƐ-JA 4(j=ũ]y:l: H;|~ ++"yQr ̤^z@s8YU$qq!,ՀC37-$tbtzYUdqr +{PNN$X(>prނNE@O68'X7-ݒd`&(wQe/2Sܣcm12YMGya)ynPV]5Soߣ~1륿9Bie+"aGg JfͧMV w ٨0ڤffJAG1壍} ZF==[f1ǰV˞ ˒TrA#sFؐY + ͇!8?bx~+3vԭqD9>>HڰJ jS.鯵(AdƙJq@w$iUv3FYYp\; +il EJqH_?\Xz[^+F]lv`aI=cof*XYGW"-߲t{nЩ`M60moؒAE ]|-̺'gj#LD3V y(*h!VOrhދ~NT/)@0մ,C:}"%Uh}r&Iydy&">v32nv :@^$urxh . +3ijc/D` +'=@믺9@gMJ_o~|ɲbp=ߧ';q_(StDf`󑩴ieMhϟ-~oʚgJьu(PC3c*M?Rة| ۗfc1/uut]rBGQyj(e(ij'/g"ٴr8%NH-( +6auR bYJh 7 +h7e(d>A!~LC˷R7#(V+]ٛ t @e)j-;J]<%Is/߻}4v濁hw8fT%N4 +&W{**CrC筷h -bmX&fA-)U?Eޛ]tFJ.;%H>N~pRtLyց+AL*uI3&`87FQm?oSa`82я()qSrA}#{?O{ `jLϔjj s]%ѵ/fUva\eNY?lp,}#0;lypS-E|Nwn%gC qi+@>7WGf\Z +M\__⒀H 48Κ> ySP`1) =b Qi8nwUjp꿡;@y#ib:_UZr b襻ڶ f((E =xk0r5#hI-:~ +?7U7K0W!49D7.cs#`e:4CrћOЏ˚K7tN=ՙ +e+ R`R'lr,zt<E_]޻վg~1\NJWy!J,&vC+ 4Z dFQem>*yd&`]1ZV*T<\+MMbh*P&vLu_ooV;P$P9)w/x GvJzsl1a]#@'4IAz4iNFu:~X?GbڴJ8Gg2䃏my7D-}oΗbtEˀ1[oZt>ysɕBZE3?b.o0p{u_`[Mf+e~:% ^&yirˍHXs <*> ]DE96էq%M5_)d"e/* yșʪw '[&CJH@k^g3,oȟ,{;{j.}s8LbVM*k=.wUJHMP4qh'd+k6HwD]"6]jKZfIɭJzzH-g4 + x2/!3 堅9XOÿڬјpYdq櫜,^\9 +苖UW]GO.iMEhEaNmB{̓{Q2#iF !UeQ]h^GHT^;MPlϪRxPrQѳ[5@{8 +lYՖGdӬRF )U-ɜ +@g_rYNW1ykC [nwH.yA@Z-2zdT;EU|%;gR;yCL'4L +ֽ_&O^"u%Uw4hg| 4kޑ +@sVOB{ч#2YtۼB1:a|F,)yФ3):?$.8i*جkpM=}cB` eOٽY~Fx!B9ݝ;N K?t}X^{4FV<~|yT@3~ZŪt5q@}ª2%jG0G,;so/~-m;^ ޛ\E%4c5*ϵ`HL)W-'`bDY'4/NJp֣A`wrdFs 8TQ\&1y7f?;kxt k͋2qr(z B:V T l x[ԬXڐ{PEuf%fd0N)L379TFc5izt-*?DH,|!jY=aPh% +Uq +/3^_ۖRA|!As2aVSjw ;`qKls3hq'F/Wm[V3WH}8 7.<3h}ھ NIQJ3sF\z/PPλ/o4hEX72'ʖ'Vڏ]q-?0=Ⱥ55{wuoD❞mhjq.vK5CvTbw>kf&0$2[0[T*~e @*1!Q[S$kxY9oe'،Cɩt{Pc;$8CJ:e91?6ߛs5 Y9 b'y}X>;>iȚ-Me8Q:cL|/\ϱs3\8<ܙM¯{e*=3lX ts,@76 Ѿܫ>=Sa7ԐZ>T.{nwRJ=NI᭏yM^SO 7ɇ@sidGXoWJM"-hf0kYAL粇̠T`=o},_9YLž݃rENJFGZ;f%,fD\6k|Z[ٻMh,0E]YNB!?9?n@xJ1#X cI,_p~P?]鄨YiejT9pv3OI>Ɇ).`Sij6*rx@-vKGd'f?#_ΧZF×.kظA|4Hgs-^,qΧ@SBX D~}xyѩ6k&1"k'rzA/Y6+tr5]?xT&L d6"h#}^"9^ t#ypvF~ws$`l3,U1lB20 +JFsok)|Z9s&!<Ⱥ,ZVZ%6|Uv0 u}3>lhTne'+ݘ i6q؛leZ( +k S2DaOT)<}r#>ꋀVzZUUTQde,Ú!붲`,_\}Q`H :R1D0![y OI8fdPل\7Hh*1,IUC9Ƅ.@(5c^س䄤qn1LM I%f:kfO0$q u +w$r#^KҹsẼp+x+GJ T FϭN |,ΩNXY&c zU \ 3cSbrebF>]#Y +hp.EZ7S+gʡ7/1|$  ךzvp:#@!6JHs{so sH?I <>RAau4j!=?~q㆚@! ^RaD"i!<*7;,Tw)J\*#-Y0 +\f,A3+7vrzh8U|WjRUn+4x(wȜO 9y$K29XFZd%^yo1/7W֯pE.[DL Y3}Sbk6F G6Ue@J4_FecbsQ3KD>*CA_뿌Ob]7TBhWJfb8Ra_%rJ~A{o mcئkjAVJԴ0UtPT! +bJ#s&e󍆄@g hpgnagܢ.5^jrA )i6O\,Z/iQ;`?3I wGVIo T]`EPe]t޲71.q~Vvt$x {ch\u`cCpflO(޼/&Z-Hk̟kuDaZ>}t +'eȪOo!@7˟x*"ÐL*RH}.<#S1g_+ܸ@P3apR$U +rS@rs|-О0 Y5\ô{72vݪ2 bz>)G˖UY5}ޣ,?ֹBgݲSӝΘi P+;nO6dšh5@s柏ViQ ݰa/%񥣼SV47hƟd;}&o;zlrJL y +!-[mD׾9Ǝ6$6,1Rr_qyXRT~hey0 +`2`LV6(t'3&Ӻ^`v:R!H4d4L6vߎ/>h4Y zV^ٰjղXs,&ϭS\e,'+j;OT<>hSC)k J9G4+<:bPGKKhٹ![!Ȑ3N? 肇m -?uf.7sep|`$?_{?oKX, aC;Nk֍"L)MrOD~륇Tm?7!_5Xr`_bu, M.b/(8FtUcrj_dݠ>Ș[^P[kYbR;d[/vU):o ŇP=j$aBYu'pN3OG௄|s |M~A1uOTt`f]fvP^facq +^ f/ꌩOk@T8.(dN;L1 _1:W&ʭSeuT`2p-'z7r +>SS4h;n_3JG{ǡQlK꿾6oQi22Ε(JA k?W?c):0ꗑ +*80ܳ\t,&25#Ӏ8Ur.{>yr vfYAfQyޣHԬ2B!tL#Or&*"_JSC*r4K"R EË4%Ȟy, ZS?XX I-/tߛه&]XД7_Ae]2^Ƽ8DL10nhTn>smh<>O~'Xh.R b̝lE/{>5`z=w!{4+'Ca\t8BN M@çpNBJBⰨZl3&oxOI_C(伫C@& ѭnWGCmEd 9SAU=sxCOstFò"8n +h}.ߣ)1MuN=Ãg"nNjt<7_*b|٢iZj|e?c4!}-Ƽ #kx_X*7(Iʔhc{ᠬh%be C{Sj]fTݍA֯ľ[^4ӏT<λ?wB ͸5`Ƣ'7!}oB=;hX7)uuqDo:lv&V 5:sž!(y:qپ7Bx@Yz=Y+^ɅA%<:*~;Hd:iIw@O⨎7 ƹ^>Pq4'>K0 ag0,ɧx9⫶e*ˎ5o &騎UtWھ9YGeϓ|@$hs?\mCNNʾ7=BjhQxd^@{.mc5p}Bt?"'4ĵ$t wls,B v<7@;<O,FHhspLT3Ozv^39A0ď1S +1NԺpq$/BާV, ͨ]Lb[YE^:wF%ik&  c\-^Nnr(xt@F˝LFR2=皨kKGY|^o3 1Ԭ^M#fXMZY*f@glf5}4HJ=d)e:};sQ SȮ%ֿ7=nN[MJN,1W6^ Yه/U8ohF)Wo{k`B{rpm e;}sS@cC z4eWb;`nHo8E +(y}&8C]ȮU8 I0(6x!C@e Դ*STS]LvzD:k}e;7\uAqL.L`/"}z-GiUN\Fm{Uzhzt7Bϵ9b4wEU w.]S:| t+7Áp2D EEdj/>L |E֓=ѹ ػ2X8@󞝗_j =8 +^/}ƃĝcU~g:*ˣ=ۿws0?4o=J7+7~_w򡚮~ `fmpJd5_of5-L .Zt)!Ӭ9$qVK3nf4_*((`hGsz7Q~|B>ԎD}i@̠ߍ|0$,}*hU3w%hcG#'☂*ԵWN}?@J@}"1sSJ/e\Q:svHg=|۝*JxԎ%YqIvm¾2>Iz4נSYhi<F@L_??S}J|7'%h%UKDTDF9kդOߙYը :ObxW}[By~:xDJt_a-Aݤ~jV{S}@4GyK܌7G^)Nӵzo< +\!(3c`c=YiKrk')@Y Oqfohޏ|)Xm@Y,!tmNA5-l8{hۿ@=9RUre4ho}R~P\8$h֑sEQR~>Īc vHc3S[K)h$=g}3e3p+tZ+7` B0Jg;v'&ET&@(rNj=:e^pc?_ފ.f v4|cfhډaNzE;S@^hY]5p` mJУMR{ +Y="&Ye48>[^&;/1#12:CNV֝cn;[nXVv; =r[4/4k)BH +Wnt=7&2]lP3}Kk̼W|o.;q'3@ \\{ehӀ&˟?t@,s":J5Hԛeԇ: +m+NRP<DUeY1;o.57\4LAu. T#Os) +f"Rq ڄf ح 5J>˔1 ɪй*h@ʍ.8}Q 4)ru 5?skΝ9V(EXdlnX*֪D ) ;:kLgi礙݋ VV0ƍ _4uO<@}{+13ƾrhφFjr|Hg-47 p&|;w0>/nV8GFg!/w!C\vpL6f\(3?wΖUBQzloTNȮ}q=O IMxAt/Wۯ&Ĉ+ZRA#6WF0 00Y_YK+6n!uҶyv9Na;P@v{o|n@%68flt-sGn57`´{T"˪R 켁f +eMpVTz8?QxYV4#.!.NUV=7}? r *[莱A-.Ҭ޹ -Ї)<(4fKe+Qtn{J/ MWjӷL3;3'K3ЅS2#Le$fL@M)N𵍳:nr.=Z, tPd~n:5ٽogj1`]h HRǍf3»ѹ *Sv<+OtY z}&#є=w^܍ߥ+de3JH7ӝ;&:f{ @ss@DQ7W-%ܿԙYBq/C|ᗊj~z͡꼩5G5 +_̩O`z|pz2N\t7+9uCԗ:>ʻT~4Qy8ٺ_MhRn"A?46Ӄpeʶ*Lì{cby5ДH΁1=ˊ*)cbXo$4dFLѯ囥.M>~{sٮv- + L3 AzJ/+w";dHRsߥFRSA$)mhչNe`vˬG!|csW῁ދ5k!V +@opnbi唳g ]p] N\[ ޢ|+Cuߏ вg 3hS +qh.E}igkZ &|fv?1p0d +kXhj J5a2,HDxm|i]g0B +h܀oRwf0+02Zc܅0n`JZ (4ˍ}"tD*ɼR +9υ p. 3J(iÅ?B]Ѱd!q^4S]ٌ[duAipoq|f&:۽ +7U2Rf +8 +J+UK,1ksmg ܹ|qIsS~=xEE$EKiIza:s{G8'jILV^WՅ uN\;?|#itRc$fSDs +f\/un=L=!OС_UBC1K@Q;Y<"e(|Y^RUk6.v5lEbQgh}G԰ix%r̈́:D4P47{o%qe)&5L$ڮ g :L: OVN/o +7FWe1Ъ`(m<00&S*Y7hpӦѫ lr }ފ.N" 7"yq +l@ÀkJ)Mlt >! +DNLjcV)\XGFTĝIlp޾ؽ[vW +E8ٚҥZ͡@;^6! +߾Jޞz^7_~.A:o[T}΃w!N3~3ˌ;V5l^iËڛ.e,9JR\겟K~zRq+ynƍd%y[*V.+h){}֡'@G[2tfwez 4uϒ^cnu~7~Ǻp+cf䢒޵Z=+fکaF#GuGnF 4+@'^iaiw= 4EBШfh={CFt /gã+:x1KY)4*T|CIc rL3ñ>Rhɧ{$<5b_*(=o3^$be퉲OܧRJsuFvc:Qck8`:5s)+G +hĹΘ-k@-e4Do#A٣͉lhZb8M +o$ۜj.˷UA)¥gdpVhARk_|o<C!\RE=@/G&o X-q[oPήk_xKxP +|GJ7D.PЇ*tAJӕt.R_DWr!-KGb GjUP4w +kC8;%[g7` +@/i*$L9-V;{_1_Ü/-@iGY|]Qp=ru]3Dc0Δ?ۏlV>3ÒѨ7NgBDL~,.&Nj2;42F* Z,kލN@W:/YsJ2% V5-UR-vː‚?N{s +TED3]8hIcmssKG(:L0ܫIR  +7.ingLozJe~،/N%=ΝsQDZP.] _KX - +\5Jc6`npXMzDB윏mN:>yllxҘvH(56+7l|גn)բ>ܝ@$Wb0冝T.Ҏ!yk,SB\Ov(TB[U=4G[zԉ )]xHsH=?)u^4 8bEe8/l$ h6RhQdv gފf IT} + D ǏZJLd0]7< =L^tk3T#ʨoSJ7hGP D:B]>tɎe:/NL{J1e糅4S6]Rzw 斵CW+Ko~#NFm)3<4Xv YCd^h~)+h"hϠxTÑ<=#gsMPau u#,J("•+Y{K-C;1%' C* ?rcz)6:$~j@#='χ6{gJA tB [ʟxD1ņ Cja3rtl8 :%YrE3@!gܠ 뉬Ohˢ+w[s⭣aKUgϫë,Y9DHÕh.5q9׮ݚ=ؼݡ60yty\0ŊܒY_1؇Y|͝7Zk6Ы 6[^zsJ{# DDA 缁nG!vU>$hڰܩrVX~ͧiekZb@hMcRvنu; QPs鳳!p<|T)DR^'G&W)N3?+;wcc:bsc1!1F:O.0"l̼Xl.OL7m_2ӊY)/ajT42 d=8'½%}nӅ,і=y|~CQ& THN)q.&=m'w Yq~~#뚇f"cpepA6.G?ٿqgDJ-C*r&3F#gd3=@/Ś#"싳yI{f^aT43e5C7/-; G úc zGSyRtKv s΄9{:KHAud /.ߐyr}eɥ|۽|oUnGPEbEfGEMK=L:nH~;]?S[:.XR 7R!aLqZ4jӇמ{ X fÀXut3:ƘS9 ^Z <@B&l86 2x"ח 6g!vyg6+#ۇ{sqhW=dNGPDr! TAӁ=׿] m{o|i9h@"-HJ +һ +ԨWO.@Ǣc%0MvYw,wW g=ΎsRk~Y 8xc?p8"hNît?߻KӁK0 y1=NHsz(@#(M-e1 + ERY ͍?;P ؝<U{?[쿑S _=ҿ͝:/mg=يk&[~$өgzqL&k?6 z0qGHo4tͶᐻOA+pTJ\Crv@uc@?2:-eh!üf*ޜ]O/1FA GOvg}]r,+p-qfl<3S5k䙴^:;-K @ڴ3hYoyhC1NC+?/4;Hh*} JwΖW1A:d|s]wo5~e*%JLy=Wp47h/iA* `2 aFk;5z!]-8-s=κXgC;Ĉ cTFO\Z?&/{/nDNO1o ~]84 +Y<۔^PD͗b ҉pi0rfY Opl4QKxA043Il76ശVV5J' @qe(c l8ЌU޿ 43Z5! Ž+M]4Rqǿ~g6)b!JXs4 o=fؒ3 +/< 6`Ǿ,*nV@#y_u_wHm!U.hPJP#"C36ͬ +k~_9)_꽵ڙtƍl{/uFLSghYZc&22ЎF6!qb8%Jn2=V'(>sͫ\_X ,nY~pSyu~U'X2[ ēڇ˽{CP} +䶔~Ր.턧t-=pc@cz}iT.CS4)QNYNM +Ɔ|h4AEsybz;elgV^ q7脌 +_z_}ȅcJ/ލYDϏ6±E8R.'8Z\T,6:W2c @3wfP%[/τ'7]Ag@{֑t6a2F#V\Wx.h<>.u/u)]ZoMz +x%>+j+u6gKɳQ@G!ӅA 윭Ch>]}#9׃?;[n-5/woxA06>/t~~䙫ܑCczBƘţ.ϤՆ,x䅒8yyz +H38<+$v>Lr9ac BSGD:)jhFfH|| +|Ļ7gY,~ډw({k# + wY,մ$Ox8<GRJ.R/Y77-4UHO; +7v8ãI+0U@E뭫]%e1/[u8nw +b|XC-A80Hshohu?ĜYgA9-]2xQ ?yc~/˽gl@H C6_pjR}osIk_7Jf>Z *lə,t"iެG0djh.a疨 l= ͊~S@ca+m6G_uD}yQ]8JevMHֻ>M*"[!lo$, U41 G%C-̵n8yޒ<^r);)Ϊ,@E!g(RE`4OK}`\:H%(;AK,q1I1Lo5:+IZtt5b8qڦ/g$SSkM4zT>k2E8/D<#U!RV9 ̗\lH^Zs _eKӔYj5-I+R2Vq~R\y!Le\6|z<;v/<# + ጼ30g\xi|2;8azh&oo(!i:zd4o5ѣg{G#Vj C9E@/7/o~X}R*LCLX-{äջpօo>0N~abإ'X3)H<."1ʗ s֕.̕NNӕol||Pd /˿3>?Go~W&_f}sv4 :<Dwh%c[UwMؙkpK?eG⍂5g"Ma;'\f_p Ҩ1ÎJťLyHd1p whtfl%ZTWVZ8T Ÿlg>eU:7iQq^%z\rl#%5 =./TÒ ;Zt`.y@;-ZMk[{J2gi-w^0k.her8a^#oU[P hT -w^Q|oC/Fb䅠\K6 3m`#^91}}3V:WrbR1$Y3:|`qߎe.Y lӈ%(gO=s/unˍq^wa!i/˥tӦb~849byK=J7>}ڛN!ҕ6Re5\pHOܶ?q+3g;.Xq#[v7iP5G|o^vhP@Y?UZX._5t*\w ;2'XglAJI4\@{/7*Xl,+bvx2w0lmzvJcYfЄ{o`=g"^WS7΃Yp'ic-mPH 3A#"OA9n?ֿ{948X?ٙ*p@}5"68̈Pqg虅 !Ė'PyYJY 9@j?!CqN ])ٸˤܰ+s[1P)] +c⨨*36]z>ZZm7cB&ΎHTXJ.@!p2VOee8:ob}䅽CΝ<1` &K<1ytƂ3{/}}&y9տ.@Y葨-6@:KS ` 0c/ +Ӌw۠jeXSz36n~)y4waBF+A?NBܔLϸn!@3枥ru*F~=6Scxn)Ma;A/U~k sW@f 4$)dk3>ʻRcʩ ((ø!v*C9@~ƅeS꫼ôm˹[^E)^J7EnOi +h_boRyqA2IR +[?s2&hE= 6Z5\EobO4@3捡g7y z15G[C†?~-mo +ВrQVD+ wKjpHIxCeK6Mqڱ0J뭟N|:Lo'zʮ'>Lܸ-}:.4].wLk5愡S9$.y<%j@>OH4VѼ%w%VE̔6N& +F`'g‡垳S(g83/R59Cl@L c[YYGV2q p( +П42IO<ɐ|ˏ$|D;.fc 2)]=85 yK6j@@RsHbẄ:\aKng 5]`VP3U3*X] +YfҦC 17Ĺ4 K2nV2VQ)0&\ ZGy@S-cZÐp6->\ N5{7Cl4I,"%Rz!SwL8=RLſzq }9i@C,+xhG+A7#=K3$Yշ膩QV~ ONb@\$ajNtc$6UǻK\} ?C $֖'bֳ+=Rdn:Y ؙ)04Bu'x:NN~OYw;pHJS@G5OWO0&]՜$Vœ 'd$7#ܷ'~ߏobڲEpOvg00 >uۈcTcj̿J!3;^7.^քancm7XwssMi.xv v|V7 :!# }eEJ2X,(W-׃b7t"yMFGl$+vt C4k\= +1՗X5~uT_&cB_Lnq&2]leoga)ݡMԅ S@EjlУN)˨JhDJ>796wa?tAExLn,8RhN +U@O,r?-c}s8 RXxI QAZ!~bZ_w8=Ӽ뮂85!/4C烬+i54:lӁI1($e1 J f`k뛚twݷ,UEw>Sna~ 3VӅoSi@,fܬ,eBƟL*4Zz:h-tL?xoxNn>T!eIFee5|Q/ݻ\k7+cL=R@C5p؀׳^Ѓ4Szw[f@[-ZP+<άV66)foNz>fw{k^zvZs=3,;?nˬ5GSG{ף#;i|~WVKf(?;%ɹiF[Tl +2.=^*-=u}#.=;M_0Rܐ>&fAJ[aFV6O[XP/%a?h(QǏozlqd̰"h.N tۃDKɳ"0R:r`M4΄_CB kO[w_.PPD&ӿPn:Ez+"z9:@sC{7&v~ ?3wgZsEn˗@q >={נH)U4-8^ʮc Q"]by5΁4+9s=7Ƒ #&TSçx'^j 'Zp@__<^ɬ4nR)*ptN^Q2 #><";H.JWFNd$laHj3%ItC3;|mPvHڅo >qG]hT3=ogn`f&y3v\H[m@eCAyrR\zfΥK X,4`bLiJVf #Ȩg#%n|#W+7R، IrU%ʮ7Ftah٭,0!EfSp\ol0+MlL:;p%G&貏-%H6au1x{WpP{*g7㩳"tVxQV۠'{K+S5؅(+ =6d*l">}kbumcdMK^ By?؆PbjѶOI%V%</; +^`֌u\^ds_vp$^2AG!<:A  'kނDޯ?Y z@+&\KF%Y1㲉;d/}/ZÑbVɒ GVQ%ijߕ* V \8xMW΅G<ƃdAe!DZH4ik4$hfh*}fRI$q͌hleY|=O?=fzޣ6bfQ/rM +t3)b`S+6>F%9Q[CR`-:X~KDϏbLYOK]T?7d*-p5|lQA*i%GT-cPLYh"ەޞj65nњQ֔=*0N;X`{8Yh4mrdq}S?S[oA +{ro >RkJaXanXQ)n v.IUinQdsW+H:C1cStWdHǶݓ vTU5V5;Z/j,NRlX6C +Ua3w^#j!.{#n >^?J!@ nfM]˝yP0YCA?y6J~_=>ߣ?K٬; QҀ Y=E׺\x~Ys]8O:cS8t3Hg}#@;Nd$JNy[Y j)cϛg|PqyMOuaC%68;%Y~cgF2 p9{ΓC˽%9]q}r8O3QofK <ދL1Eq_M>tbέ ƅ#63]lsΎ!Cuύhvm |ds(uxҼ}KKj:9'98Lza`z۷]e蜍; +%ȅü /?e.os?3eh٤rmUfBf=L ͊` +0f~/h.+s +} +\ H~<ee͖#0ۊ}s(OnR6YftĬGfg  +ٱV[N:h8c6c<.u:v֬VtJg}@X8;ʺ@glzVQ o]='-+tDUrFo斐'Y02TʗbRi?^M 3U;Jt{2Er9|}F82RIinsìnr_r + $^/Lf~8۟af#b3pipfp>5tSf]^*0&hl%|X9@m}=(ꚳyԴc F9G[ܮɠF#̟\eP @ހ@pgq̚@7?;_f|OpW 68\3*_zk8Uֿ_r@f8ZUqj]c? 4㫁2ї:p584*װGXxQZp Xq%h, w \lE ++nrF~_" Js3 Rswl̺X}U_*))}#g0YfKл'w(B83Ki93N\Ǥ'-9G$li#j6z)_QtOSÝZ.+GIwu 8N;LurË"m:5脦 +Jc-GGƫ/rh|(o[z],c6 k GR΃ +36g㐎[ c6"4+Y+LQ@6X.OeնI_Tvm%kЕ"h.8LVwt9[)MVHDll +/iNw3'ԷY;/zqT]PgC\i@7M{~|{zVZs( +& +s|VlRVmQѳJfN}|dȚj);[).[s4uQ*T0Zlݣ9kdX3 $J^IZzz,yHfGܿT$ȞF3tË1ksh=˔Pn7b8RLz9;OL߬,kDP@e4Z1ਹ|OefgLc\Pp7z8c@_/2wQR8"kYeQUhe2hCcf+BOxxg?mk4绷~9|̠%q =k ͨ[9 `QV1s@~ +KٺJ?D73Mϫs ++"a:# 1fR,ca@;<[:IIH'KB-YӐxe$ raa{7?0Btx&kWƟ&O)mJ0lYSv (@k& +a<߽^ʤXݍ2<3{-r2-$z~{dt H3fÝ_aIiU#k_Bj3ӈ%fXL=Sm5r{`IEL6**.[ވ.\pf0- +GE螟J u{pJ&'7.m]*;t_~zn^ b`4y1!1O؀찳P/d:/.-$htA;0rP{l(ɣں W)G?DVb/@3,erҼpV@s{NI/]Y+#fep\'˕J|Xl!Y{ +f)U̍UUuaL l5}H"B4qv^: s y}&}F V`|tNgBlRhYuv6Zw`BAPFٱ2V^@7[Rl/~_5]bå4ˏOOL}ì;>&Yg qxT+L)\czw9x}%Yvj9垛˼C]OI[~Y`hHEM|L>{IZB+<߻1*'x&;kQ4 &h^ T:7{֭4YdzgzIh HĀ !_WQ<0:ma;Ov: zԻb3垑^%hHSy\pEOUr|ƉiuA7wܟXi]= qVD6 g߽>Z=W()ЁBo[.8Q=4W;E@vY\c +{iЎeae y/Sb0d8[6n8]bgK(_Gڷ2ǫ,̄ܘal~wBctɍ04Ӯq ++~W1J9 $:)okFI*(ݳ~El$rhS+7:4e NR iخ̓h.VV#2G rRvU4p9Y:K/w?_hZfvzUf4/0<qdg^y `H?꽜tե"B@7r{*Wq¢^i-<WɰUTeJ&*ًeQv?z-vw9qu=<o\OVtf ʅa7: +.L@:n0|m7tA<*f{:;NAw}P Bͼo80iU0yO̵`Apˌ~ϹI"[ +Mܮ0" EF/ko- A}?2JHүb#5YV8Q$pjxfժO!ӡэ +\; @y`l+XTAN䉕k=o+Km#*H g-(JWd1ۗǞ_gX 4$ O21椇$7e#sN@uretU χb(096%R`C wq߈s0C_ASwVD=斆$h ˽% 1cHK17JVk/̀NևrTVLE՟&z5O:9!x wO!e} w A ]Rvd +r:X5/2!-0!i $졊̈́bȲ ++p$-eh14:d~CqU7P|3}K0 +kW a!(s$x^)/޼^$n.f3TC",IDNghz|;XB|N˫\4kXM +wB<8 戋ͤ+yS?lZ>#AP=|s>xBŭK.LS᦭ U !hx?r%^`SX +zA)8mzL35xq.NOPjAeќ%~ˤM;;uӱ2Wzճn"!ik d!LRR$Y匀z3svtԁD:hE|K Tuk sn<,bLLKoa}#6Gkh7nV/:keP`RL/~>~yͽ9HG|v*=7ZNݫ%&h S[:\٣>Xfzѯ4nh(@^Xzkࢇ׹*x:T*P +@ɥjbx75(H2uq}M%kS8q]po#~Y>aVUbEkȲ68GB°$-5AE_es%\9j D}dw\G?L(T)͊9l!m_ @9Ơ9\3TQH΍N,~fH]7|}먷gfޤ1c~'z]d" _JNMV{? 竨`j^XCͩvsrF;!FI"Ʉޕ5oXz2N(:2#0?1 @c02l/ŋG,äK!0+ș(~=*U; +E>=J_a~/P/ԌX5fL,Jռ-EEIfvz/~KmO. taBX<ފhFQ*ZMZLіDMڭdh ?VER>#s'n}=z @6$͎N!Wc.yc*o UvtN!oV"[iۼ/g@l;D̫P)YOK8{Jf:L䓸͠ĕ{Z4d;{eL 2^`sBMLRB ixfh{Fiini0F.m&̞ɦyhE4a ITi IW9ӒڈIŋ +$љXХ$5k̴s6 hE*A'ȥ!V|քśHRrh6aRbx= zmK9\joj fN )m`<ߺSݷMM]UW^V:qz9Qe~{fr3؇pWc;hLKRYwhh sTH+yON59Eg 7:88!JۦrtrOl-}A_ Lת][9b k&@m5}]'Zs^tsP%3y搐+l5 @smT2!AY=IfC~/mZ =H8f{Q @Ő!:ʩS\V8r4 SV⨢mVVk n9ⵝstI DXI +$,MAyMYV}9MyB9wU48F,Xܤ"\{^s@c_so ^J]\ZQOe2f}co޳[B ohrH^ l&NVМOrKIp(U\d{I<֞K_HIY4;;)I0f)'?VtGI3/@:gtj93' s}MW9@[M]BIcޕ>t Rlhy1Tǹc3b)$18]b|cɜ?eS0{C4ziKUJyj fҽBE.]r\3O/7r@AQ_+6V0 xrpXgoakF 6TӤq}MԫE?ӹHk +`1hȵBAOܪ_Dy>3 soI.P~OK0X:~ RXYlqL[%s:2dKMEx?tqij;F|cl)ɺjLO -&)k#m<NK4b fi(n>5" "9H7=yhi5>+'gHKC(roolpV)\qslD0۬k%D&?A_7U 0! +s@`5ͥ"ܘ1M :Ǧmg5xwZ)Mb`2 3-NɨPj=KKC!3DVk,c[hZƌ,u@~nmom4B_m=&ҿ([t4dh2B#b#J X00mO+6~Qaģ*@;$Z5)~$Byы^fU(qIN k +ŞRoZדA&>Ac+i")z +%]= +vAnsӟxGFf ;"λήb*,iR}.:"hۢ-E gp-/ٻ?[[?(o2G(kMQ: +ֶLC}sS>7+$x!]z$*!o4BuyttX+dR.sz@<Ս $61Ч9Ѿ%`/@ +?׌X[ܙ7|KEzHy_MhK%FvB&Iltt Q)7.H<^{u8A3sVo9ݚ[F *llR+9hBM2fhR>>V 5u1aI-󾄾{'zlPWg(dnImX7c(5:hA՘Zŀ%3#&4<+9[B5t u4sϨzqeYQ`%f7GڤVԔ+xЂ @ne!.ao- ځ`t̓ع XX yjҴPU,S? 3!4D1"B+wkxhb>­{y3ü|ėxC?_kRΜeKjNW@ h}_;B[>Gk%?${[*N6['M߉כ;GTԛ(B2^>eMBK Qi9yX_ˣ#2"ojTWE(ıu=Ȫ8-ahRA㌅YAP-T4ИbX7 JG"M<8uTmq2m74}n)O܂ HP3sB-Nm~sD~&Re ϢI '@ p,=;T`#Y&'9?:ӝ%ЗѣP^f^` 6 a8Ki% %VT]sh @˃"o7(4)S?QҺEszdΣMr>#'SqopH@YMWi&ZҸ f ݟ3??2Ԍ lkkyq{ k6ċ0Lup.a R_;;G ~k/Vū]3_k'(ٰ`Nu8*ǦhE{c2u@:]$v1P&\i(CyuC}ϟ]QZA܉u0A2$8$'ZJm\̓ţaӮh#snc1")3K țjІ\+\{rXDKBxg9)o +fErMUХ%=(04 \Ȭ=jw$ٙdDZbwL߱*BS)x\RsE9[\> +@#>|V4\& -Z 5 V#Ԗ$46Z}52zSȋ&tznW8orFϵN'!jJ׫vs*MN5MUŬeo%So<;Kٕ2?ї[_,Riw}˙$JhKłOz>R򮢑Bt_/8#qRɟ mL;UxLԆ]62z_j{+MGθW2<|J>rpC9T>%&#9UͰ%ҨJ%o{ƶ|YlЀC*'IEǭ; R[ +h)Ϳ>X~,sX684 o @1w) a, "e쒖EyJ̀yNGZMdZʂ Ċ-G~dvsZ( XI#~,__yِjPAC@nˋS2cE$% xKa1ww2.<%z=S9lh7.>}~o/iK}?<տh'IU&D.nX*m + :6y~09M"g !<@t_jM)ό2[m[[_lpUO *n߮^&70t;:ĔRN#AXz>q4ixY$Zi.HG(#ֲNR/+r&'+y[Q2}czrE};|qdڹA52#|f( k5E51T7՘;X0e 2|D"[Te )mu#vU@`ww Nѣr[C +3c6z3 5h`!9+✱"R)ГAuX=ājo{q9JZo +$a+lq[ TM,E8 ի(4j4d0Ď]bJ=]n7\]b.2Bv`kYr7L׽$87 *e19NqIwp_@BU:@dr|47ԋihT=OT\*BĤǥ{gyrMKݪjk +h mBE$hYf]5+53 yotSZiÓn8"h8-4εsM|P8Bs4Vøsu)9&h!ӡ4M'$N JjƝ9a9bn2&( jyz=TwsUoͬtv5JthzY 3;,a!,Et&, y*0aU ho=V.tg'̙+@0AƋ^ͺ%ҟDmӅbƶz]8^ZiHy:7hryLVs({ 7Utɽmx" ɩ6wU_O]tLr/p=ZL*9#b-V >Iwߨ:J'M$'&RYaws "V`AEq[iV">za @<ȗ坉7m5YR9$.c?&{IΘ)!T !$̿pT)P?? L=tm^s.<!ufc'XdJqf}Ƽf>3Wl9q J9ɏJM*ݸ>dpzh Gf7Ojpl,DKs0aY~dt8_ꄚ'VBt`a`T@ںH7?7݁? ce*ݵ@{- sH>K b={aCUY?ívK%.Фt4 `p3r<$g9W6=ѲT D F6AL>pD,#$S|MS:{7f +# N .1Tbf[1PPet0gu0nZ抒l}^j=}7" ϨB}wTR/qN/K@3$6Uxfx{} +}G[(q7$ӥyESmPa0`@녧:7?ݭDv,sX"g-~4b*%zoD}Nb6:w{Hn̿(NG6ro&>@٩7a"hrKCwvgK/w\@8CȧD.̇DgUXRpOJm?ڤ]{N;f;Lp*ɵ*e_Rgq__15y;/b29oe%g1N®m'!1Q8h(tG Άu܆!QA1t% 뒟O>6lƘV90}D/w6i0$uX #4H r1,P/YluO^2ovpVyᏥ]'RG) -g%KSǧgT +j^QZ W|疭q"\$|'ZT X']nh347̳8G(Ֆqgxh'K_!![wTe\9/ZM9(&8kܡKO+dpܝ?:I9"$g%e=28ٻW#䤚Έ0L: ^hgfCjn鶀lP@vJ@FOͰU;[y=drG @2G'W"kU‡(mJ%Z%P]Ɲc i&2XJ8 K*蝨&%- M82ah5I!Ǻ5P('YK:}WGwT>|o똮Pq>SPh3Cyz*0X'⅕XWƞ1r9t@,.iWG&h%Ռpe>A^h8GKwtBnJF|rhp7ߍx#L#Ϯ~aA* +O'YTe1Z#^ӤH[#%VDbR!>cAA7U\#Q +!Uor RRDڔ*xYlBvôuTr8xB@tвK9Ѥ +5&fh(c,Zǐ$|`hh +x13uc>Ji84# +7lʵd3C)"8ve@]ti(hQ1^ q%f)r6|5ݏM:$+f,#R,FKd@s^eѥUͲ90Zf`Cgop vFc40p>UKsv!yjinxT0c0,4TM[Ȼ5byJs%aOj E7-_xF{ Ń,}+}}:?;g~/"L3xY]x9 @;| +[aj&z0mF@{1=64Ks6鼚oDZk5mr.&FH}XGȲ|NvfD\sFF;9-m:)tc`iq*G$YIi%)r| "o-!k,39aJE}@k nglρILmQr`s/N6.M!]TVezЏwonʐe%8D+wbݎ7>٭=3Q7R +B.4g&"9Ub4dL +D `Z޳)̤g&$2]Bk6Z뿴`6tJ]Hwޱ>d_y7.p\RqYdBY-ÙBky2-fX[[\@!L)!w@\V4'Uk-G?S|s:dʤ0߇#纸[#CJPAV6;q5#q%~@WM0>C`%cWuon`e">;b2.Щ)$$l3ICIHS+W)ٲb,Iƿ>:ʌ}PTFƌ#[x4f +6Y}30 pV:ifwynHϢ1g0Wv">/X'dHG Ղe[} Ihɳ" =ht(vh6dn2ghΒA:Q~;u+tn8`:Ȏ9@}k1HEhU@u[=yoxeG<浐҈(kP_3_NUekg/^]ݐFX (Y e)e:斌dq*}½pŒ^ _?ܻy%s{ [ 1FG[AS]K_5tZo Հ;5LIn4r/5@,C̞(:AwBҞS`1LfdfIK +EaJl_uۿ3wV +UE⸀ȕcZ[8XW!t\ 㼚 T%/lb&3bS?}*jdߣL;򰳴4Hz=yRY rRNzTMSߠt;dz+mr p'iC4/Glx4Qe4eFnh+6Hx*WPd衿?ܽ|ܯ/l̹QHnv zY4ʤxh5FHgB 1| δ;E#Ν'KxkX{6"N4  +<(@R8I˟n!r4w 4J|(n˩1-3* 4h8o{{C??>qeIx`3Em] +6K?;#:Jj ֬ Rn +?1ٍ~q,>nvȠ$H``k&"QmjpW>u3i`CTPY1r,VK^Tu3ruWB)"a#>;Q1gKo16dhN^@ J6֧OۣG%#Owk iEh[Nc,wަO<2ƍn!']ĸimʫ NmX +P%5•,E\v@sNj|KϢ=XRԷ8b*@uw\ 31欷G>Ÿ@DHFފ YL<@z⚋:wIytL h3v Θ@+5'xumf#YF|:? m 1,ƢPV4ע +I<Ӄ +M@-vA ?yPS"(ݕ2a)(>.hksNYe0pMCJl6 +ǜXR~Qz&ȴW5m]{0^~T]@ڹK#zt\0u|75BSUUCc.ŠK@w[Rs`J.ր r`^HK#4 JUN Vؤph~irr7HB,@cHNDR"-[r7Mfz mQQvj}PWݲeTݳ~EQtDLI5:VSt،J.=1٧S1>lBH']ǘ8#3DetCrV?7DLoӧ%kkoס~F[EHd= f*9, ]ZJa`@0"y2 oepsC_]=)^$gpKsG-Xea1h:-kiAKpNrgXɛ,B'OX_j7Kv/ߩoa#d0Ĕ@x|stW>w5QRQfNFno,U$$E4]y=LNn5Gm_|Ma3WW ) f +%g3I] .zW/P<*Œг>CGw LLl^$r$(Q0*d3s,Y[\.};2},ň}ǁ7Y ц/jk=,bvvY0Wл;h\d.8 XYӷzғ@sVeMMG96MN+܃`Z@8XHd qDʁfXH2$h.|w>iڥ Qѥ+@3]{?_,J/GrVDzGB.s; cde$82j`V/TJsghYʁ N"` T !$P[jc;}De0g̊G/P;|'%l}ʠzTN6ʑ4(0uv,.n97ЁCso W3iĠL|c%a*IDu`@NiWqh,L7CF=ša蛬q oXҕ+iItZ0sӟ<5pcwN*T8@m[ }[F ?*Ft|`Xd%Ȳ}a'Ug|dh2KahXVe鱓VXB"V::?#ͮ~bzYQ/؀,1b'k g q=j‚8a?.IU6i=s⏭^ׯS: J"QZ^ONs#2+7`c3@(PCLLdI{daܖ2 C?DlYE[7tg R(L3Mzf1ݟ~4?o8D\>W`w;Qe$QnTT']H4pRXjh|])@E-l8Tl"3LYPuOKڊeH?w,lT+rl)s/t|TQ>7 FA okqfZ.,F-*}D1A% E g&sxiú"^q7& #"#"E&Ȇ%a(prweܹh6>+hnmG%-Q*N.Jcx%Z^UHL$nOݛݯ~b|14wuEh^yu%gӊxzR+păKE<l opZ.I6WC~Tt/}BB(ӢRqr_WGv7ӻҷJzZTBae 6VyX|d $hGat3Tg5Ý'HaܹFHZօ d&uM8CWӕhLwQg mJ|gĦjhf/w˵QQ +@˙>=nbM]Y@^5&,LLTb85Mu%j)C*/Og妔'w/Oowtl@[F̪ jR➧Fcn2XRqhMKnJT TmsainT8{Y!ЄVt!^v5k^M!1;TS5r0P4X .!!|/p LOo\XϘc^9#3U2-iO`Utwz 5IwLCCX 9X\ۢBҥF)SGMON(ziE~b]o6*4IB)xCkN}恑26чͰnMs扛k( X3X<8'}54/JK_a&", +bPGXJ0; dKdc2.<~ʫB^_e7۷ok4tQstczoOhO:3-iԥ5b0tB7?vf=ƒg$:=W2ЈgW.=׾7awf+WACro^d"HEeI~Mu=B/y>eQ*3OngfxhZ4Mg)`pԅtUMzܽ/GoT!-V}m;{hi&Ia;-Z`+?c)ܡ>'hsK*hs&`E]3$3:PyxKg.Iy~Yg!̉RBzg3 |zc77eh&\O_KV-\!&] +qf)G˽1-^\u(qpLuJTrtn M!Ul?ؔg2ep +̊?PaJ Sw;mEuK ߋg,%1JZM+b&zBqnZ%&f&DtoS2.R hV0.v6 C)Α_A,*hze=<}ՉAU>LEXTؗ?g6U]9X, B¯Y!n0",UW%m ]qKM|ԙ jzt|CK27ݬT횿u8bJz+ @i']=3=i_:sA&2?^@+():&-{u:fh$WzYu,n$+0s/*c`FYPZ^lgH, Xư^>oNow +<™}YVҘkd7$z'l%Oˍ3+n- +hyg(moy2E[҇uۣuIY2:IV2[hǝ d3P Am @K`)Ɍ,qLAKhS$ +Q{Rn1#WrȌv&13=X'es'C5m8+W@O9SC_Ò9[xQ܊} $vf U5Q/m?S f 7j,N(,9[ÌBsܙEe@*Z:&`^.,c@Ϸ޹Q e^IV,k-\NTq?'XȻ$_`.iWSvetf#}5=Q8+=j?h7w . eݾbKZ &u$&o_LΖo,7dMG*h+\L];[ʿ஌H5<5:FY^ Z'~JSRX \o&vVN"zM?v&4*cJ>?;],+>>SSFcسAǽftLTJ( u&E!βROVe3azgw~QV@bt@L{ࢪLE DsLiԃȋ$ wWP_'7y9̪4˱rhFo [`&jh5-ES.?ڹnuٜ58$Xrʒalo8"VhxIgYr bq4DOlY\7ʫm$AG9&ŅMs(nm+T)chF-:;BszL>)ݼo17RʔMAdO L$,26fazglϢKxܐ9Uyyֿy@-q{xx@I zw\ 䀆Ϲh8 +%7,5OWSD󗋇iWsB&V.FK85 sH6w`1\ + +uJy9=F.R_:o ΀)7vs"n?.7$Dl,nQ,5&B y*u̵@ BIJ01g<D&kF u8&2^OW>@g '[izz^ЗQoJYjX; m337)*5/ +9Ji x菭4N{],8ə D,CH4DU8N5Ё +mhno$ħSO"xnnnp 鍹/G'vO1 +Qz~_|IgEdoZADf1!!M׹fĬoFkf=C7Kf5LC Rr|2&:{FKt~J8ኚP +Y _68^ `!lP~vxb;u= (`@+Х>&p\7l,13 +!a\,s ׌K@6u+'Hekvכ(dOg<'FzeO%= +ȰUUSY2~[>si@5y&3߉߾.0͸4@ w>t֝xAJL]ba(M# RE0r؄HBB[hi\pWS]UtoxH( j29liB[TZ\ SY1`S- @Ӝn LkŌ!J @{&5(7Q݀[; }*duќ +=ܧN@7 kbrt ~t=}8)0|DM4mX.*!gJ5Jb=A[*qU AWzN:qtP"ΥJ ?l9z7DBog\gɀV&l[JOoF*sf hL4lw#N逈iR t{h$wf5i~t_mJw`Vڗ>E%DžtZ;!ЫN6`q+m=00``J;Wqmz@_Ȳɹ)AxtK@| +M/հ",SX0,J0kݚHM0T>iq3<-.bL,8o&G> 8Ags6_GfXz'Ғ&Œq#'ߘl7U(KrFI +r-_T7?+x ZaR1 ˊo˙;J fĿQғlj$ÚaMY|>;LFE+4/PH&v4Vq乥, Э p3(>&cؔ󾕫> ?ܤWlPKZ/<9'%܄q`3dk ! zelXs"MhƵq;OR{8ݦkјcidrlVn6@:mcq?O}7N`ƷDOwo0tnE+yVJ Vv:ho$PBjQ0 +EmB_%E6{ߠ>8pW2 =(O Jc͙`t`4T搿ho4% \ &ɭ۾ +Ar3Z2F$ {U>(7%&fIV9K]("EJf𨜸QVD3]J.qUhvrga2hԌS[-khTR)4[]*Ʒ 2(Zde{XȔϏH*MͶėCע8:2AALqIpi`BjcVlQS<۹VsR`QO;DGb'=2vvN*B  bsʫTx#h&>H<:N e*<*PC7?_f{zzGSD{t+ilm`قy: 1<3)Ǫ@[/H^jE =;r͗=ri*p,DI#K))>o:ӕXxE @Á 93Z7VqJ?`LrxKrqDDU5ցRe)m#U8>ވʭWgDEgemR=#ε`3NSC:> GUTɨw;a2c%ĻGGV^yAM2 <(M`|9ϐՋY@l)M9J]:0I{R_gB 4l1:n|5xhh ]|? Ke.5Wuf4Q~s}F~-4GyY.T bi_@19'[$& H$MC*|#= Y"!2$M(FD4[!7T:_;n_a%d'h\X΢V%3cbXَ@3Z@+h/Uf48۰*{MѝAϠo4Ɂmh5q& ;QoD7WZ Ԓ?0e ~7ZLtT^r,_Pk"f +KdFFKIu/Y ^q"Mw 2̄e !wݸw&8nXV,Q~GkзJ/l./ 9 q`r3W-Yc(!UiJZ$O $lRPXr2' +Ԑi-@tvj96Yw"39,觕y=@عZGƃx)yn^qpz7vc)9xS% 1ѯRc8(Өnq0x}!]v!3,݆~u @o`(@,~PɱiЈZ~VEss}Uz'i_ v47?ؽAWճԆOro"!98x~]-\:c3B'H [CSGv~MM8roN&a.2k!;$*HygߏVEIUeQu7M,=. * j @B18u,VqE4A Yύ4Ꭿ[f#[e&4zdckFghH͂Uќ H7mNC?\?Nc?ج m>Wr/@F6_NT2xdY_|(;!fX"1q.c@1an BJ ~k؛6'tAA]/(L֖i%-ͅl[HNf:@YFV!3$ks`EQI 9RxT'wl_RhCEU.E,_X8dܙBj5bkti}^goE3JZu bŀN#\J'SbK]:w^q@aNB /]qK^(E!+ +…k[HM6NDMsN@G׊I`9[Y:{.ʋ~==:4! @vnQuiK?-j,#1|Rb:K [9U2ȡr4FQ*}5o/8Fʋo;1 Ns\KW9O;0rI&ugǦOK@LU7.Ÿo.+.דzc榚{KE^k|{eޅ*͗pA -b_:k~GV/La"2rGZm2~Gct`c?c8NKϪ@Cۧ^ {R}2 DZ*'U\ 4 ;oIe&1f@GrKTbU`+EVAVC%kܳ>^??}022p9,K[OIВ, vRpw떎c說ڟp7j⬸S?b N*BfU++1 +dm @3 %t+ ޱzfc@} P%:5GK:b̶F`sз~;;ʺjY@Z?݅GSX\T4~8bot_@+A{\&|Y2] m$ӿ8fE>cdvbeZ9VZ&9ߎYtкt4q% #~sx.d7hCW wbuU2wQ9զD%. 5@sQDi%P4=v +*4>Ѿ5v`B 7b[{,ᏈXmk-#e~8=:J]4Hsu0U?͒!% sĂ>۹wv%7<\!\21uf ޤT!Zţ28qc qY1{e(7EJoekMK{vᛊ1{N pxnRd܋NMQK ^Eށ?jޞ8>cZUZmos-]?k3uil)ioRIӈo ^x`7.}!^y:x`=^_j|.R*<}CWz'- QmGp^6tN nPcɬd1$M\Űy5?GĜ9) f<gU\C!ʡcl׼=xL5iK6E7rЪ…)0,+"#ښ&[0=#rPHiAg4*!2|8ӒƆ| YЖedjD§}7?yɦ3dserrFR 3gEDf|?IJ &hOwl7jWX&2CRae -pg0cS[!E183njZ!x|>3I(ϰ aFK^0 KA2Щ[$ @GxWFf\ƭgFq^vk+^$n<fR[e3 &k5BcFIe<3MdUM +0]oGUmwF6+5b ;}#ꢒ㚼hҠH7r:_!"qrɴ&SOpxSsI67qiiʭ +57TwaXQ5oPkJy< (VrKi9PcϽ!!y{t"rBQ@-OW!)vJEGհ,7-wrן\c.վd4I[)11 @|Z1Dˆ ZE(a  [#CYb44vdւisydWVxxQboǠ997z4!(ONA>E9xC)؃ԟ~K^z}͝% +Td kl鑑OhnXn&]SW ޙqݠn^'@<2Λѱzz +[CXϺM||ܺ; 4KEȴU䲻4p!QMEg~ɥ苉YY;Y"//u'<. /%)p|R:^^RڧA2+*ݹRhC3f(J,<'^V @{O\bֽ7%%y+'7ti8M3#@g΂ìS_]8P#. 5a[/)/n_dz| J|u1{np6>;G 7BK䎴E! Uy4 iC݌K_{4vE)LLSAgxq/I.X.i uiwb@]VA5B?̂Xh3bؠ2yTFEF˕Uet=ePo+*Ũwdod{#Ǔ2Rh(T{3^C9h6k> 7ȟ@#8kI}ݭnGUzP躰z^MS4*[wBadɟ7Md"y%:ZOqr8@]7/y5?&tbV}g+G֐x`z{,O t#>棴`iUfd;'|wg7g=rbܚax=+Ǻ\%Mi KmqQD64>ݹn:Z}gO玭+4SG㍬|Z}Dg{h`_)OA ("e*ȓ6!NRCtP# S` _g%J :KxC wbS'0nP3e$̎;ḳ^OVw+?hEm Lzt̸o\ 'J 2̑tSJ~wi$8l@e y^UVznչ`\TXYZwRxFVL'7n.u';nRk|u1BT$ eBQU +ɘ. xAHn7활_ae) KKe8[4_(_ wS#\~tu1sԓЍƉ8C:z_xwv;ݸl+Btaa κލݙc^Պ٥jگ*]6!=ЦC>d`ֈR rC0~?D@j U VSb(ȿć5yU%!W%3_e>eֆ$E'z}GR^$|09=21G1:xj/}K3j|Ar7HЙ +@^n ;ё.Jٲ.T:YUZ24A}!| @[Z/=K#qǏM'a),K(|.o N Ǽuo-χ2znϒyPf 菱vOI.y5"bjz~,+Q~r?䀦$Z xC PGiغqbϴxئn1ZH1ԡ䠃5d@ߨF<U`Pq:Dɫ@r^,nz |(0vX1ިSJ-n0\`7>QǍ6De"EhB1cgL ܐ2J4tY6VXk3k]k +vV;RiYꦝN^q /}2#|ɾ- %4<<LjIa=-FbjSWϯ&ԅO+dW!ko=\τZ~}13BxQ@*"UD-LYoz׮Tn}@Dk\%l{C$׿|:Qdw^a4o(a+1{ͅҙW[*?GfJtBډ#T˿#0\[B蔨>q?Nɒ@ݘ[7DjJ4LMSGy,x:W Y%] K LOl]IPFwsDsgܞL7j#l|NShGd>.{'BӬbml2Wa2@?ŝ&AL +hМXw`D?5훌#uQ`.&˺Lnݦ;GPհɊ7@D'g3"=TV>Z8bhXy?&kDVgKyomy.uӷ~-=(Zϖz՘L#@6~=ed)#x}_Zb'^.~HL$SdYy _DtγhV^Q'p0DX,u1 +SɚJ&~XTVh$Mpdz_f#KҺkYR E%eQOC~[zL^Udӣ7 KA'S~af27M@+&Ǧ걶Z7Tf%yVԕ +[9,mI$dzgp=6-/S7MMmc 3Ū +u'qrpug9)I3#pJMՉ5%?u@qϸy/)M@ t/!HQjkDYٴj_|Tf!Euҧ|Шg9nC4$"%_ɡe]' },!bB3 3~Pvw;8Dqs)~8Hz;\1+2ҙW ^':MzQ v*?mBr6x艇|pc|bwljy1 +hUm. QwOeJ^ rlnx11.fhGj\si;^_:SR-W;~SC0Wx\'s#PiýIǨL!h:j,CAkRJY<.f45 SGy|N_ɟ>5E"$ρgn2h,Py3bK?zNt{UhE]9+>֙7!+% W \"LA-)jԱgm{oHB%XF+4̣h hsrWEm'-2 +`Yf\I!4^41vݬ U^" ( ;u13]@CGV̗ e}YF%k># )U)}*" fsChKS{h|*(s8d5FRAlі ̈y>ᗩeB }tkіִe%<}܉7E;0jzmtDs +,m ~͒-.PIR`?Oz%:ibܯ.=f ~.L堵Ь8\mPPd +B}<'ęYŬoZL3`=@!~Ј+G*/3)J2-,lQGo86Сr_sW,X@VJ5 9~5{Kywfn%h"T^C*ДsĮ$%o]w`,ESs7ڮίa a@Zn|HЅr-#dn:?q) UMd|5,5/@ߌn3j=v*SU1!ŭ<1&:EFp;fΰ a=n\oUޱ rSxki^3fR )G7^ ti.AsLR@'%bAC.9,Aeo u֥e.J 3EUk }4< ^ kU)kf&\O;pU3J +IO}20ڥtحX=KbNp Sr+4 70 <ٽ~TGșTk3X&2ܠRA|.I?VlWִ񲋔k+nMwy zff{䭬78ͭ6%֗fZcyCW + +glܶczO I1@;_x}m]U|#92%\f=#ZZr P8d]wfR#wy#ˎ^+@Keo܏78zh#y=G3ApXE忁8.:k>Wmy.'YcE/x~{cAo}u6Wy%#cPsQ}=>J0.^/queVFL3?@+Vl' HJcZ0ˡ `,²ozlӡ*];ze]İhr9v$T#ԯK^4+S*5bc | fgޣpst!vN5mh[SKOfB b^mI[,XWZj_ }kؠͲR 2i.VhOW.>bau9 ϊ|1'n@t6y8 + +ea9 G2D{œ+4w+cΤeޑԼ2q)/{Be }r_>63* FјAX )h˚f͖ڸQ Lϊnm!NSk;?lqV%~3Х${]BDZ +f :l}_Z+"׺7`+QҿJ?hnc2}vA'*vvW7 @VMBu$?OƋ_| 5wxAd6 F~dS*u|jK2 x>4q4*tHHGe 9W2a"=֗6.aԼDdpfh9Se{aemyW4d;Qإ8H@7ֈpkNLkzhq +kJ +Dxh@Й>>Ѱf6텁:ČCBhWY*w@8bVFv]k2s>3_awKt,~Mvpؼ'6qZ<8G~UJ V)^2R:{d|uøMO{;9gw<`yULBm&WgItAZm AУU@i(DWLԐt}9$e6i1F֐cJOWG\WMl]DRFM"LriQ\+l/l^8@0|X},4`a+Әe{~@zIZ欭HRZgLɨM$_->hY1s3- vzidK2ڐZw_4R`y|d/iHgfJ*0,u~t.`AFOӽ烻_]yV{^]¨"1|-8w +g+IXV#TE!ZgP+zfhvbs_ovq\iX 'yYez Y鹹WW$.#@q5otPh ۬>Tv{aq)/PD܊·$g+Q +|*yӈG{cDco:w`K_ύ@C% H +j ;֝h +2Pj@X=vx6a,.*XفORA$x2"~y{6/> OދZ=au|A3K~|Eѝ$p6N=]"_%qY:PV{CByc]+ +O3T h cJYam`3z' ;L)ةr\ь[Fizxܼې'[d m^b7xS֗ffB gEK,StѬޔU[2*S*e7B\j :;ʨvw v#<&Z5-$$+=gshVR~Pƺ]8N~SjTpmNɅ-%_ t5T*O,~+J ^7pc?l&ލ]|;颳٧a=oa$]8,_13eǃN3~hJ.ά}S*,xs&?Ha{a .Y?cl\׋j:&J+K8FmX3@bEueny<2̎*/GcI v :hu0?6sytW_!LRs,uԥkrp(;xt6]XBS[iT ^UIxteDI!Uڅ7$ئ܍ +qʗ*qa>vt ,s]d0 +o;qXda7h!4*̣:#Xo{[όg\v<]ϣKʿFt C9|?/;TynqaCQ3 0KqvtKc]Hm򮎔j%`;&"\qDjʍyViT* @_ 5`h]W[&/VuӪ_bk + @͍C9Xs*el{AYh jVMo8aY׬R'KZhkS2G۷㭎CR)7 e]fna|haeް{vRhP*5 HDih7@!&q8֙^z7МX[ %hQQo +%@UtqB5㌀iR0R܊y, ~ O/t,8E&jL"Zf,}4{Ue$'TQ> +6|8^{Meg7nvOa$Q?X_`~b0UU)~ NGIz&q[sRT^hVL2thEM*K`ָhAMK| 3#^B/oj5rNJN}诶yAͩKɈpƤ Q93N*e;um8W%lzLU +'3G|*t2XِZ>Fۦh/>'?2NPE֦Zjэ3#V#KM(4z$6c,שjїc&:Q(tcuvGznG[Iw?xv.N,>^hIΈ~lN@35EJ]!V KÉs"W +ϱ4kX.8n7[T1}ԫ9F8w5oo~7:.+zBL/@aW%JC:k#3sXDo]c>KjhɎR홯G4z`urI\爵OߥNq)c爼pe~ Ȇ3ɀZAһ/Jusڂ;sB/lWjT 9گemG[<ڔU7(acv?7>Ere"sߒ`I MVqBbVK'bӅ#24t%Q0X:^gR,AМMƦҩYJc`TUqy[C;N:ÖO^sx{1_4!yЃ`?A?JO1tЪY><'y~*.tbZeavӼ̘xѫ Pl19+͂6]ҏJG&8R7ڧ#(|<( ։X[_$@eeh@g3ajW@5pŸvttIJJ,LJ0].L>Djry˰4;'b3<{^ 'yoVeu<8ZBϊ;N*Y"l2Kꮩ+G@5˟C-Ş}Z*"P? s/IqʊW Aɑ݌qG^ +o!#lD/)&6L/9_8jhD \1WnI/r~l+"nIdn HL0X22ӗr.k/ +_l5BPdӎBz +e GG%3@Ai+4э`nOoKF,Kj\ȵ@˅66:K6&F^}X̝+$OhU2Ԗg}a% Gix-?;t~Q;&4*OLcWEhJïmoSkK`=گt,|rG2]h #}cxKWVRCI 7pJ! tS<ҍ3fhTal߲3:ML s;~n?1qytNw74>[m3b2Yn 7#Bش Q}Tc/xB:{d-:!|r/4 O`4!Luo +$mg(Q/~Hys\U1%UUL+"D.ϯՅ蛼3#dtZ# }l qfpq2EL)h h]!#(Ldg|ވ"<6y*4 +?z}<t2 ( ]vmxlJ3%[ 0Zh5¦C!0 WͲ _!P+3ǵ[E8OEƦGT~cW=:5h878;zq.6G69!@2G^ToXh/8-VBa%6 G 6:ӭEF&RMZQ 1t=ݼmV8o|5ղfyk4Da%1)ff4S3##NM_N}#u$d2HJɣ$dΒs}.В!6† Z`W)Tؕj[mM[ƙVtP:m #bbc̶Kp=d 茄Qy̸!0<<ތ( GωFY^"̼kpX )nHIpfҌ (hX('(*ˑSm4S8}Cie%}0AetU DД \% )t]/$G*N]a1VfJ^`k&so_ \nG@*zQ"?/uVd}N ߭UAx1ZcAx y"f0ZXԞ؍pc7ƻ،ppF%(X']As{^yki|phI򖡁cH3|eqB&Y]zɢ|,3gR-huhx.rDs_ۼ.[wg6@ +h*67Y&H-pBLMe9]i*^M9sɛ3fk'0NKBU +%1&n#ȓfsU83v{6^i u +3wO*i bBc1F4@6^lŴez_{~+ĝ>M;.8ӫ_ͮ5|5C9N|u{wioP|-1 ClY=4 3p_ T؃vֿډw7?*AR n0 hm`#yӽn*9HT:ii=8hyŲE_Qz]pdE4Q2Cd}o@caaґC憟塒lBjxKJ,}00ֵI2@jk_]Fv Ib8hɝLzg;2~3WƏOÞLߙՆ-)eXBLi GnoS`-p2k&c? &y8&b^ܸ==R%Nu'М7W,/i U>ZlJT 471ͳ%!1Zjhx?۲j8{>WUW{Ɵ(F +`]Tsqpc3fxP/A]!9L=nxZͭ;0ٱDRX0d%85XWlaq><[ `gU(@l'ػ˾UJyt498Ȓ+*>]VF xnfR#dhinj,aI]G~{tDbVytjjXEny=U@{ʙ@s[Ua!"xuN# 7Ȯ'Bמu쏶Yշ y&Im]8^ܾf+<&>5E,nu7zwUɞf2U4:;\ƒ'[Vi8e0 D#X#34wTWjw#7F4@?a!Aڽ͈x 5ZIdG1& 6,b;f系 dvL, hCǿnU$D9vkX- c12ڷVshW2VtgT_Qtc[x+:'@~EVCcE3%[/E7t&Z_+C)R_7gW]$K+Ge۸չArú 5hYZ6w%ط[=/>VAKۧ%d&sQrd4܁xMe-9>*5忡fh|4C1eeGKuw^3{ǽŕ/JvFm:78Ũpaͻn +$ӂhCQ3s5<;U}hc`M>~NhzrIQBNz`HGPIA4Ԙz8J;KO3m}0GѲ&!p4C#$@#f܏7nE[ly!,:yqfLX^k@ScrYa i3.h +mOx0`1-̻M _182]07rImY +e~*Sr;+hOǖ򈴞~aQH{7fleBm ,虙f7{GVohAkr2`ߘu*%>T> %!c\/;_>9l+sA]qXLʟ]=|$U΄kvvP }eCԍB #es+2G gʟ`v28YV#DQe!fFX<D.̝v4rig$PLy"l6k6eȄe^6o\ +i݌GԬj\3l\Zme38Jhy)Fj}c_UEFQ_7kH9ޡoƺıg#Fipmx*InFZW3P 'fC继pCjb4N%m'UOTVVGh4|y-^Y|wvMBr uft Gjïv?ϔ=揦*5\}MBꙮV$)ǪzvV$ F 7-mt͈,f<ʠ\zwdf;>oWݍn!2qHl2/:nfCehE,pxnݻl5r-!ȰccCzJ釹4^Y/ \gnZvFJcbӈݭ#7#Ձ[ x73: fdfglQ׏i/F3@aag߀$Yi28$YQ%͸2=B] +YzhAnZqi(wJ\1-?J-7Tb6se(Қf|[{𹺿&yyJy\y|wç[z$K+r7ϽX"i>i=M͌4F26Hi|xf݀6dn#Ŧۇ=qoq Cb,5ʲ5c)eIDxzt,gFh&:4e x>KW1>t.g<Ѿē@[6HR}{{Zzj(4\!`OӋI*E{f"pJ1z %1l- 5 `K3wg)-ZhsM.@}ux=Ykƽ )M7 +|k ug ƙ)KU|JnRf獴zz +Y/,]8}? 1m=l2닝D4$DRre" D:4;rTJFC(y`?pf0eWbvWK]j?UαCjh=ͤ-QSGul8^{>ʝ ?tw^F82j>cnڂ S~`if_s687/.;ʰ!n`i}t\ 网K2ܿhG5 I6Gy18D7k}?r75Gj㪚RYBrB.ӡaL0Y"8>?#Gusk&^H7[gt>:B3`EKFlbH30tbͦ*[I2!_ۧzƼt/gY w3䒗u |hBSˏ\ ,wS|UFeU}w*Ӥ1:??8M{ËQˢqҹ{j@TˑC3 %WlAmu21˪_wfBq^3# 7="(Mđ!uѹ1b3@؛|h?l""g)Dz,*:.1'd&f}\+[P|@ƛU s=?޾rIɕwP53>z('g 4u#oM&! ARl})! +4uzow<<ۙJfИ_j' D~|oN.]""}Ƅz_KLĠl MS.Jd0~3}YMRtո\imݕ&Ixx~r } ~dEċ|&CS}XDHmkѝ +p +7]c8o{0U=M16 3w&f+\6_K/va!Oeǰpp U Ln!@hm)fލmJсmY +f:g@7ܢNF@Oe.fhRĘA @-gƘQg`(zU=M3VY}搎fdbK5ʨ>B=u9oyZmT 5*NISAX½>)P5$?73a16 ፎݍ{ 4U|HNbF/nR(y`hpLpǦm @Gt' iyl}񪷚: >¯L]!tF%GY*̪d |nć +PL[Y9ui]zC60Z^q^8u3 }r^d  %tp˘ `W#GefsTn+ 0?->r&-2:y0Ƅ{b{TzqU\Z]ũ뜣g*:PO +&yG dY |7𓋧㣾_pkXϥ{ҡꚒg9LpOyG|gʷQ( VܤK@0/{A̝1[TF+FNUQi)JS+thUP攐z388o+uZ;w(L '{.cryn1扭,t:% QRXYd!J.p1={qz!o[6|XsWKri(>,[T5jdt + UY"h}*SߡzNФg(3:Qb F}ajha`r;L&J B[F_޸Nv\ U^2w#+^N~V{h<4zUd U裤k|]c--~=Ȧ +k ?):"eoȣD+G>*YrCG]Yl;.Xci0c|Vumfrq0\s-wyb?7wqo +Q\uPQN~V~sS1ƹa12T~-=>QHr@A=1@d(ĂfA-`d?Mi:˻UJ mwbE4vF:FC Љgtff FU}Gn㺿Atܙ/Cg')F,s˨ ǫEtuИM;5ꌧyN@G4,V fP=+:zzXXtCz5G*Ncympݬ\9R(m9rp@7>kpMQ+s enyT#i$OSK$+y[uŶXd RVKD +LUMSs0;k+rdy; E8"]bћg(9QzL돗?>XuZW'\x!*~4^UX6̝YYZ2-]i v/*bTjvHi=(e68r'qc1+Iq4ȉ*4$}f\ur2a$\&e DЊnm`J P΍~{',vI\1TLYGlJp` k]-kf˯cM`p/jF?w\ŸOojUq/z \7# ܂jӻddƹqlj19AX=';nD W(T 7~zSZȨ &517.6lUcxiGgZpHUfn2$HIBgt-â'İ`ɑqGʖ ښ_]4*=: CyG ֚|r*/ќv4: +:tDi*<׿L33gfM7UZhR%=W@| ʺғr;_7v03 @Ը3+u IY!Nzyg(s)}_ytJ|>xt68Rka҅#3K O8l7,H4q$ЌU 2fa i}9l!L6)K}w&Oo/%=qc-uf̙@s8U- WCW哓>]8(b.L,uy.n|/qw VQBϘ/Yzut:eʼnBDxz{qyqs0U75?~yBH2R_z4J,H8L}VI/ ˖s ;["ɣ6>NcV"jW"iCliU؈Cw1wqSEDJUvY\ٰh>^w >]h߁:2DB60Aȳ"BVFOoa {Wo Q% [ȟ08= =ʩexYx [Jg%V%q.$?\`낚Yg4 5io{;AU GBq;:nYv iɖ@ x:精 :M1ϝ@.4f|ILw^&ѵZGW%ᴍnh^?sN6񂴊FU]!$@΍Wjl^wWflqj9g޾+F!3cr[3xUYo۬:blJh"dp->ػD]Ua5S6@\[2ovS56\Lm#uG +9h'dՎI + 8U$; g׬ +4w0;uc@2T!Ip,raU%6%xoOcTOzMcm2 c3щ͒zl2TFW~g{3ګ}WE?*:Yu\.㍻ydL_$6677{ 1ń԰4Рò:,)]YUh;"n90e>mI- ߉ Xp<6о?`1S7G{cjIоcTћAg[~i8 gD R5V%_~7[ƈ#ǫ'W%vST)T/]rKLZz"Ϲz,XV$|(Dמ +bXx21SaA4ceFQe$_Vzw]L9(;͘$̫`f(kGV3e73wYU.޾O:hݓף Vw;> Jf*xfVVe 4B#t@T%5>Rd=otEz.$ZMH;nyݑ1pBV8Zu2CXNÞESϥe T6Xy?Rgt ɂCɁy~EZ;ܘp~#ٔD^~1 KI$1xO;zZ~H&>{BIOX3r~3ҸmKhqoh.?ٻT瑢j|- Nl@ BN?yHᒕ65hݬo F({=ʹ#hfqdk؏:j{Zcm$4hv"]l$wm}yNb%4h}к-JYV0ek\᳡: Hj3C%P.#ٴ?dDXVF}uq7/d2`k#;o;w| 'OhpjI桵qjW/ҟϗ+]9'WOw\kUG@-1<<@9Ъf׉R +t IbU,c*.'ۨ=8M>Klڧ/. +.'OLhHtr3 XMhTO/Ʃ-KRnMplu,r2Wæp4!x0ڙJp` QuS.V2ҝſ+uaR"=Oxj +@'X8o8I׽_7:LmQ?םRօQT{/:{8 5S %rά$d),8"tAiO?`oNbIka[@{47͠'gR…[ET \wa|ν@Wu8aB1775dEId‹c#yPXJ9]^zv2HT/<̣O4-L8~va![ núeW#Ĕ.ՌiK@lV^@:.âGeY?JAec]Y{?'xtNJ`('r)3sg,{yT2h0޸ +n8?{Su +M:r9sW +30C[('RO`gM$IN#:(Qf: xKRd+0BKLHKbm?P?"\q$f03=G=}TuU׺O[ozyTU ^ǩ?/(0{qM#A1;y4#oG)V0刨z5:uplv:'Xryb@!h2 #`h8 vVAM)D4e/ Z$Vx>չ}1Ʌx>y#fi %ԅz'g"pkҫ{ISg%WvG"J]^Vft\e4IdVqхò+0k;sX r~bȝi*/,Nӿ艬MitzVF$mwVO/碮HG:,f=O!,}傪kq3^TbUc`!YpxdB̵ q^8,3فYy9ݸ$wvIb,@#pnU9ydRg`Ҫ643yI nni>=3<TWڠ3qOǧOs3EzjKf~f.Rgԧ9Rc[̕|zäsmX:+45\]I/Mgp{ٙs4tEˡU@}<]3';q9]/Ca5D89?[6GV7#@KCaǠU7S1o!@Ǚ~7!` oʟMʂ{7NfoF5pdpaN[ +FSGi^TBnBZkaD E?u%Rh @ZcF(Ӽ s`!g LsS7@I:v$[8= G+ 44鳆o;~$OlGoVh}?iQ]sDwԢ);M[ lfh~\4&"o}8)cq4cT3BGv7 Wdk7Em!"WWm,H }$x] Х8&fŴã%.ja;띕Uv7'LAU"hяh|ѯ+ut1{K/sb$!j1ӼmX aFsm#~PAymbyBh4qGqG3%Fn OoOP_$H7[I*T3tI713G"6ph_iYE^ܻ7~d//企SyI? M  +r3n}.PlÇ&Lfm2hR%E^ mf@@n#FxeiZٖ9лIʨ)?Yhi1Wr*~u܊>"舔a:ԚȘ Rg{PX:評VJq,T^:#gĝJ-~ڏlC]SĎtX!=4d\@i%7 @x=X?Z}Su1M46 <2fVJgU!n^ &87w~wI C8UcMk& B\aIv֌WY!dګ/~p$YA_p?1^N8^  + ЛG{o¤ #+ 9 :3K'{!IhthwDa_C) Δv@ӱ_]ߦ@6AxL~QwϹ)3)5~y[ %fXg=dr!roJ{H 5@_1 ϭ-$f + pɤHsjN{8|h 47}'TF;~r*}xp`m[7*䂲'<6.ŌgK''ai-Czp*D$~| ?% o+c4aeRl +lX8`%xW:{j3q~d r"6#ޱP D GN|İ,Fyd|cۙ&F<k0ʦٔe<+J6EIqB?МcP_F\ў| p>K턟7H7䓝7WS3clWYd$ѥ=΋<K''aU]UC5 3Iܜ}?v<+խsw fK ed)ye{wԺshGC2|"ua Glօ*y6ϲCx1T7,oOmxd¯ƹ _2^ZGRe D:>Cy΋ss}^o>Ui W|&ѾX rQ"he^㘑!wL\ܛ.G*.Zs h:p9Ck9=&Y+HRQ% 3JIRNd8_-8TxP]J&Ìw[b): 58 gMyY@chhu]M=-4{iHKhڧ9Ռc$V_!ٝ_Szp5RQIG/;P0e8L:WG#UQq+MɆ*lpyUAesG+q< _vJ5gϨ;øN~$ƹϲM6KR:G?q^@,H1=Σ#رٴ:gi>'jffVE~}o#8[Y13/-xT}cV5!w58.oQ;qp|ZO♃,}6c09䍤،Fm1-@Y* [I8Ü#D sVCj<1y&P9c!ݸkۚS7s3tBTLэr4Cm9=,{H9JnNz7n4y{p@DZi;e:-C +2aIe<0%4F !["S:g_FX}2K|+lTŜ&桠`PiN]bI|L`3|eBJdH6hÒg Dfo. +P2 44Duq= =eUN~nirU2!|NmTv91v *5pq +eJTː˪LFh?#<~ Cuzh hƻχf5c,(+;{@hNQP6_3672U,52DZ,: ~R>.4i9δfBӚf<&٫g>s.>v9:f6Js\8$E蚕mҶӲdWs1Ώe@X[:,[e$em AEk{q%!th>I> 1F[iԏZ`tljXn ^=YE<-'11VХ hBSrVDskOc=Vh/eМ4ƌgF$;Sk}?Pսh +C*)pfOg "F1c| ,T}2'$7}J[|L{?qQ]j? f^rQkL#ߥOK/ժ 9Jo II+ q Y%ͅAk6|$ ]e5l@ZE4 2Q7n:+p{`qEsѴg_T8Q8`=rVoqyRLT$ڕo|gYTZ[9#K9u +|k:A$7S2"Hr}/3 4[@wJtAfȿm9/3wX[ͿHxk)8Jئ+t.Cz3s-7;\!SF4RtwRd?X݁R&U0,AV:ll5Z{qq\ *~jo;=4 +:"U# Xaܓ:GWDgc2Uc$r,0L*m fznyeԧ˨jsHKb䤻mdXus&0ǧxwVj'x[ Nc51Bk%y<DlOtRVUk>>}f)R.oMѪ'?{g:pupZ A2{u~bvs ke[BPYnM`8;F0?ާ ܫκJK^qҺS}'/lQв&PFsyɣ=a ՗8;:J}yW]7@R%eJjy`K-ޤ;!G~[?@Va|oO!XrmDrt8hEJe:t,:Ծ!9DAs?h%ޭ +Ply"!^~';Z;<@ׄtXQwxd& DY:"PofAoR۰KXuX ύA'4?nfۦIX.:Pfsfyqkyp<-U i6J@W?j\Fj,Jw{T+n24w=9UzM͕"kvx ԫ3WevUy`̂4#QQ +̈́n3<豆 N=xؖnwo4Nj(mW.S`rVc3{ԘD^v X3;o&J _G,UV,Bn|tHLIDЊ,[zqd29k럳oPbN碀^AbS%'RS@WvD:c`#m-8Yߕ5iiS CD4UV8t9\h KA'G50Fk ")|3;h2`'A91*yg"c 9dn @N@7 N8=[w쥝pHGx3Z3kL}x"rv)K6tk9H˟QC(Wrؘʕg@/s+j)hRu;{9ggzo=v6 +R+F`"AZT߈UVYWԏݘ~!zh?{~XP3aں12ϒ ;kȭ G)<ſoL$ h sjfe4thP>ٟ&5b @a;6>0>י:_ h5OdIQ}dfv M,·,~iUKc<, D蘙@-}M5`MO-"i`*Y?p`Gś<ȂY+D*>w\=V+&-JB#( xoXp'V^\pPyup:4_b0Bh&U=.(&f]/~~~93L-QbW jj7@c=ĘfT7HtR`=3I.4a`fe\v2fP4 b̲ϥЉY +];h% & vtC*4RS9PFҘ^bmY2K_}K{0$˒PgBҩWl<һ3m[WsCUyUx^Eb/*kmἅ}yPh#5%yz_onvj~w;2B@np J3rL;xÿޤؙgʩ?,?$ SCe3t+V`[FZ߲֯;^F(i3> 5գPM4&G&-jrR+II*,v"G.=O~ y5>"UfU7t* {ʵ{^_ b_t񈼆phILK +Xxy8b敞K.#dr<#Cb҄zPš,bv4"vSgVs-O1tϨo±IpJ*oڦɬ 3(H MnknFL}j,Y^8I òR9 +iuB3ʘY:ęZ~rrH-5b?&IW6 :_\Bߦr +Sav}JW.%c^?{M +h?+w j4Yʳ3*jvM#i,X,\f5.Y{Ťm-l3"1xԵMo ۂD՜`UwD=Hf&ei/#2 S hf`LTx04y $!d21Gh/G|:`jє/6JD/}W}kČ's*!p.`:h|4rƏlm~ݸ>7Wz4u~Mҳ&Ξ1Rڼ,> o^s 6 2.?j"Yf D(aT\̻gdeH{h'xd&V^aV˟u5]o8˙_UD1#&Wnt}/yő0Eyّyk ?}H֬#fUyA2 zG*X@02+D{շ3( lݳGJJ^/Q _ݰ^Ý1#ɘȍM}qW0 8>ǠV VQtxs{5Eڱo4c@a)680f|r@9ITC 7&V@(7sęr =$0:xce33蔀 Z [i''Vn24ƫ<yQ[Ь ~LI4FXv/F譚ܣ~~+x +@[ B#ԣwڵXd|v瓟3e ,<'13"`LvM Ziww{& Bk{3 f.0hi]a1MgG3M eY3LlhTq`8T6Uv(OcښVaۏfc6@O,0 3=zNjh}7YЎeލ4+tDO(hD YTa`@~hZo4ѵq{3_ @ٖaih.&yХ2||o5:;k~*k%76sn\L[ S+Z&Y:H*%YV9cTXpcW@>u(j.sB C{iwmjMvci2+|B aFk:Vh(!R>K4CH5xzZCz P2aO>>>Ӯ"]17c-!0eSƔѼÆG^53N8`&vDgЪ DžݵYq@BiG + sJtM*ո Û/v'|P}%0Lإ~0%@t +"hT: R*#(ݟY 4,˜q%޼h˷hc3LHe=q2.^s-?}fN ̮8\3 6քx!:pE^W3s:`R_?afh89#SƹJgb#j` =!N ^֍ O Cwf +L[Xok8Q/i-:T +@SBnFiDLCB۪!LH μ-*QUGY1n$0*Ҋ>y6:x{geN_}Ǟ2u=ܹ72~Y xrH +>3兌j3vudB~ʣ~ .v +qL"12zKQ[+-p5";j\5sxdVw9gBMw˦@;XsN?Z3@gyO>=WNs ǁ uɶzVzUѱk$&gBޜMo, ̛+2`QmVUiJ'g4 SvlN%J_|<{[g1^ +6O] , rYǛ$wɝPQX}u݋:Y\Uu?m5źY#b}lUĹ\/DJh}0n7= 0SwB4}fecnX68rbߧ~:$^bsZ jLE}|['Vؕs襺bl _WuNLLwTD3GE^zhJyC d<$( c>vK@ƀkͥ#q&K|9 ?!w_͎3 e);$Fآrr[ziX'_b* {;VƑ_EI;_Z=vo}+ |u ETpZG7*~.NtG>~ /F۸qI_?*,8v??/{s<1+ff8O4~ 'rI.01Ӎjzagp_{c˄*Ҽ +HvK =]u(Fޙ4#`h0 [d=D +謹N$ejX2y+jc3; +蘄{l\tÁu[S9F[@+bAԘ&D'U-vX06B*e1ްd[q4S41Iדui2uȟX3)ޱv=CPR=L2iQ܏| ]:_ol>ΰ au?s aābD㈑15z +4;^T54b7ת1j286ej*2=MslQnRp `d2k{VxXCvc̻}H;/yo#ʄ3OiL.S@ +FёQ/WT$5PX;-bpێw>t Ѷ#2OCV|,8̤;3~oпŔDFa3}hlV:w{ڵX|b3xʛ1%fI# +Ɖ\/#27.O2jjb +5\mAg݌j"6vDhZ8f&ԌY=0wjegm 8<ܭ3U )]Q3v/DՇ/ dWÑK/$YyG-f2ںƃWghQ.( ))p6Bt%Jj@gBd-u9" {:7۹9sAiyr8MO?ԾQfB|:jqLSI!˩]`Q`c͙26,FL/G*x^y4K K>*Ru7<{ gԧWJ+; x!>m7j陶^o.ӌ Ί6~&h[3#@֧@< ]R#U``Ph˰rZ v> hQ%uɷ<LҪ& 2ZYw l+up=[ȣg~Q] !@?ͩmw?};Ѷ  2XkCc#ŽMtПg,G/]KkQU$cPk^DJ;<RӰZ,Zэ)BFu,^]݉Eoذi`L.ÝII# }ApYlfyK޸aWmt hUC4+y> 季OP@Atm~)B$.gd8 +q7܈Fv i?Jv>FN<rheEH6H1&hi,#6֙uH# oW$@ܯ.?\9Fsh)^H4}’ӽ ĝxfgo¨Q XNe#9:}Ӛmg{lyrTfzHOn_~gxc|fzn+vd)qi<<~Lwj_/FzrS!JxN='& M""eL ݆a m4M5"@[nz'ݸN#OxWfȯm3 =Ko hP 8i n.2AgHRٌPCKG&k2sirboqT*b5ml]t@Kej@d-kQgK+U9D3Vl7hj)X* +TR)Bƛ-,gb:l6 +ȝr++%3v!bӽha/;ƛ#7SPiS?@B  ȢC?pY=1y4,5I<~vNma~u0: lHw ԉ2 M*x` 4@{qtkW=,x?Y{aş.ũīdliKbmR${{)_>fk7 fo~L8;&Nw|*A!̰V`UXV{2Yi1PFvFMovK"Tmu@5R$u.Y]$' +hJ@{vĞ/# ŬGVs'ƙ7;?#9;Gf"}εQ~}[Het.YL8rL q[^Ε>9x#Fl :^Y +ոҹtZAc~p)dW*avb`F ybu$5Yd$7c8]6ȿ(i?}֮n]VzS#GS%s@,g2&%L<9+vVvfuj>@3FBj)Uj9%G-ݻ탥tZ){7"b A٣CYgv8Jdc.혱wПDх^7;Zu=ys؞ZKٝO~TVҭiq<G[fU[A +=BVgpM[%ʂE}|z//(}?:^ʷhc;%hí74 ͳ&4e٧[n5+bl ^úfqf]ãE[jK)dKco6H:f.YBiWx"6 ݻ:AhhTІUYL 9@sZ)A.9 $38ر6Q92ӵTm}uZzg@$ywxcp.P4dzvS^ (- nfO2/h|/Xm1dX8e9(ef )v+G^kI=̲б4@G[ +Gt +ugf3i4rMOdm/퓹pD + mYJOw7]JJduk԰Γ +ZUa{Y +h)y(g.x~6MA%pƐT|bĥ7=f6A7@s +Aɚyes |Pfz^݉( +@;b@85cTZ4F(?%!OdMsd f07ftr_ dah4G.SP&'%YDq>#3t6j9.(3CKߵv[2nx C 7 ˒#.9)z$|Q3zqꞜa3'_: :5og|ڵX|٭Ǫw/to_\ieЖ&+tڰbofGh;f>aڴ|f:-I.0v) فbL {X߻3Ƿb^eX= N,{fnrfiv, eȊTLYRk 2AB]T% caah[ +TxWyF&l̥bNFKV+}T~(XC-% {[dYFG7ySut]he UЊ"ԄdS0kPGk5@XSvk[#G/w(lr4 ݙ'O}5{tZeՋ9 -ǯc-s1_ݮe 3LmvA,4'huv[6!g N՗)hk?ZMmW)M.0:/Q:sjj%ws,R=3~f2N w,1vᤀdT"=FNjuJȢ}c{>5ij@p-Eik,_|gZY;ËT=v*!4`|8. (5h|\ m?Ҹy HG_(d}~̝@ 0_fбͪ:vŗ@7?#d[r<2tuAC I@3~ӐyVoV؍VĽ$ нD^Ueطbg,oPqoF麟t˟:) ! z6T="j_RFf,,FDZji,;<)fbDԯ%Sxڠj#&Z9>f&%sYe#v3WQ]fTCC,v(3VI+44N>72[TpmGqzDobo}z>N, +2v +D3y K2H?O"άzq&OGG8 ';׮"S-Z/r&ON6X-rQ"]xYZIͿG1o'WWfa3Zࡑ @;goM@6ggU\{O÷4xʑH|Y̌ 7 cGYsx1IоwI +͓nSz9@r}Y.GmC,N0HrAtJzJ7۔ndSfBZi٭zr펽9\UHY:g 6Rz,dʑS1F\m+̑~jK ͻϭ6l`-= 4xoip71ԟ+_T:h8͜焳Aҹ7ZOaBܙz:`ܤ<)^}˝]=%}&WuK@q4v+O!th^w$~ JPQ܄ 8Z^)TDK|@+ 1p0=^ch.90Fpg$SđVRQ5(:4ˮ澵2VנɧS/f/*+/h5B>< :C͐0 _6+ٯq#x;g=Ft{766Xo~[y5[jHavB2:(Gui|+sgжLbLU:'+Sz qry}m\Ag6,R&?pwGSE_R,x.8\7l۵o /TNwI xrB5n9e 3J.BSC-?U +h +ozxPOnqzS9:tm@$Ȼ9.xNx?y K>tWcXSo_> ^ i^ F׵g1m IVw~(4ՔsŽhh8mͅYbv$d!NҍR2YSD}c"#μnϜS1FT\Х B5p:~ڙڙ^9IeHɳ5[Ua)??\U~N0Z 3٥&[M!#U&Зn!~ӏ9Dwd ;_|b 9>y\oGbF0?NIeOak/=8xpoGx㖾 ČɚQ + *鸿tJ6o.Nhl: H'eqW8W!yZGxo1z ^Fʣ֚1țm +v*@ QЎfj<[z* n50 +踕 OEOn ѿu3XGv`sx@?I\c7t0%?ɵ r1NLvְ[H{cZ\^Ay}x+ M;40ӱZD⟮#oQ iv8C^ ++S4F\?H8G3]@KJ U@`G;3G=vqDU533Z5-ԃW|LÊΡ; *A>rjJbpm\M +qC +kuHO]U֬]`{yìS?3̝_۽w :UIY@ ܑADVe}@, o#(#Mr`,aHeh-?<mL 4l7-8ՊzCސ7* 8Mz?k]Jz]sd/#uHJ @2Y|efYy t`j\7G)Q }s-3 [9)C|HbO`eV9ؼ@sAy6>j>e +O,z^GVօk1 "tf62'dAd|*)/h)ƾ +_Oӱw~hq!tBGݢZ xrZE# DGTf&4sӋ G/vzYLtriF0h^^WG /TZojL"] 8T\pRyNf*u>?ԽN [dJJ2&fn$Iҝ#Ì|ylɣr2MjDW^PUbqC d56aSt :?qL4?>ڪ;U?੧ׯ4|9 ΖˊG`z8`C~8(2hRpӘ ,gi>n験m1V'tZ Lp/RxhehšDJE$Z%K.6^ ; }}S4([RY ]m#R:bk{Ks8![Ȱgɷpڇg(]ΧN*0qwop2ӟ̥&!U_ +9hx3Z3ڨ71z2dK9>Etj9F`S<y17ܶ7l]TFc 6fּI >6!o|6/W᳏f`!҈rb직C YC\W^#ȓ-eD|Ou/ 5EC%\ժ z.$Ybh. \J3}J&G@ߔESOl8tHfG `#w3^JhŪ }{ٰ]>AuetAҫ$W'8ĹazcJsKBs= e/Zel|uQ,+B)³{tp9 &Lm'蚱BɋB{oJc?~OabFAwuӷxO +#E#)-h*㓥@x44Q# 9s`XMVA8tIC 7ү3_cgfL7*~%Wg)nnIX놾:# /~o "j=m[V$㵃}?5.IN PwAo]%%qffy 34'E@3y;SU +,yPЅc}ФQP951J :UڬihmP:f4˱S4Fz#ތӔ5h-)vK0Cі]dȼ|i:ZOn22{b>hbF 0mK4&HL + A 4`WE8,YnʲW~}qinKF@mA`/XBCm^RheeRʟ%$g-B$bwɃVGU6l=DFL 6 k_{*hJ79o`ݢ@=k<(QN ^m*]4[m(?OېBqb(~1{R%geeX+ heuӃqv؛ܼVP6>R4K.BK҄tIi Ž56;JQ*|Qm!/%|ᰱZ ё~&Mb=6u}j +1kwW}c~$P"ЧrvE- ~n`fy?{o-uyވ^UIrIf$Kq8  n3mly솆ƌf^{Nx_3g,2^X[UITj꽗νo/y#"3ryyqcX7( U:rR}֚^RYKU `qiB @-;;#1~8( I8 2YJ!4~78-2B:OWL8ݍ5OyW9}nzə;NDH4x?Xɧ_#Vf,$u<f^aaB?7;~-ELskr2Ix0uib:t +G!ֵ]QN{q-S \N)Ǭb c\`>LSmpC_5 e2s_<z5YZTp|}KUxe(q(Ktɘ f<Ӑ?/<{qBy4ڏa{}%Cqum +bګڂʐJ#4<5cwy\}@o޲bX +WZ`^itev +'{ЛځxƭkM7e6esщE3J3$d-4Z%z=vj70!I\b~WlMMLxO׆8yM2[F…)OѾ\|rx((3{ʅA(t1}v:g2A=p[._YA4d*m +fIb*QF#w ͳchvr׍ q_g}ΑV:= C9fЛqcJK)=,kom^\d2jIqĹNZ.~7^te滦nHcx72gR Q0 +V1ehh_T ^Ꮮ#w׺R{,<]x @C\WU_wr̆j<+ҹC_@6ƴBgS[ hy%85^̛/˟/ItD_6֙d*-X=IfZW;5Ȗ׻u"l:{[k}B/!!& @W[ E@Wqh\9e(u_lt/OKOXEH}:S @8p +lW/#/?V_WԒїY/q%fHq-a"n%]l4̒Ș^K5LWE"eBB\yw| +Y2.S;:y__.^i67{X(V)2c2xbۏ=?>~\KˍPN׃`>=ֽP!2fe~@YJ,%x*rζNQ ƜB Twԯky^w-83jܝWEƲ"hr 3RrR@Yũj=ya^w] ,t2 #)%8* X6pŚDj6T8{@!@נ WL)FɅpJtp.([Woܰ5%a9:Ge@7L]h@SMej@j i]t7rbмi謍7qq?;I߻h̟/жtIr E' fvPq F_qLhz0m+)KαsZ> +*r8dӘHy9uePHkF3b5+Λȸ#{\s$~d0&'QRحsn{ +8ʥ}}[`0٠K#L)i*g+Ɨ1 sQ9ΌK4y $ry0ԁLrt\tLZ<ֽ lDY> @`אk|+'63y*3z+j>כ5Ә!?2vjz҅UE%:c4;[3.C( ܐ4So+&"nQ-CBj@g޽3%,5FMMF.\毾f#!>ϻ5ɡr1X f86^*aO^``eJ ]wj]&[냓 J37oC*4fE0?~"@-p@믤\4zUxS2)810ȴ_D a#b2A_u{*3I3d4j9yU\*[ XIVܺௌ<"[Ώ\lHe&Ό@9ţ H~$ 6_g: dgKM 33L]w=>F<֓꼹[Mj97jd3n`B&4 }:kz\%c!edْ sO h:"%T=ch4Ƣ#y7[:z&%~{e Dliwf `gznk) +ϋ/M3 F_&=ـA^fw.C5dx1ΡH4Ц[2Nއ:6v Ռ[殠SڂVtʮuȼ5 _Q>|@ґHZ|eQ J ݕ9*w-6`|9攊qh350wW YJm+?_7Q667Qt,D6]JSJ c uj}1P֋ճV7T=㥘 W1ؕ :6^쫠Vگaᾛ)z0!2etX.0{I5$ξc/<({{/G4'0p'˖ s6^;!I:?jXT9 5um1?_NeG>}=omtB~L_ u0w.Ǯ&L]F"daҶL@],6 [v]{iĩy߉MQs:CJY@'4ng X[DQU=+j\9bF"o]t :n˄IE.C$Q8N;uZY1 6-M' "'wc@ +/g,B}u@19wqxrfc8 +͢Ԕ5(Qю3 F;xWS݇&9Cg<Gk18-6MLV>lG`aHmXjHhmt(cb,n!-Ƿo۝&*;yR[H@-ԷT&}pKFBjшjezB-s:m+W\2"uDx@GSsfQ^;)[hxNĻɣ?c78CR:\} cfwޓ/X}X}coY`,n@'Z{мUK} 3ӗ} u2I/_X1bD?|GN4pP~@,e K4np^4KOFWȀA>ːL\oHol)!{? 4N!>=[j4L`z4 ZτzawV^l[/l nKBRcwFw$Rh`)4!uNd54:Q3hJ>ںֵ}#>[}~>돆ͤ¨ǁp[!X zw(wh\Qk(.DNo~a @[؆T isqkj4"0vH} ϣ$;)ЯY|f}͚61R2(ĜR7̨|RR5CU - U^cC1FAVGn?Kn:+h8d-]͸IU_S-#_|z5*n#ҝo}1ò[y tȮZͽ #>bj׿f\:ct0Vl&c p\$nengRoӃAs篕mY5N-@B!77%n6xbw?uk'gVBS!,hu<P7g|ڞ i$4{y<#R^-Eq,-^W¯[3]RyoMk~4BghY?:qˊ;zitIU KIK옕 ]1MB$SFquW!g$Y chX?2NIĀf3O@8L]Jc 3e7"䨇o'<ZǹΑNd]\Oe@SЀ}s.gDuz#²V}O<0_N)Fwhh+6-_$H#cm4c'6^O\#}uvǔhx*Q۰&( bf4fkCֵUm o+1#e"63)E }(e..P ziaQWڮzNá +2`W?KĄѐ&&gl^s/9qX d;Awn:ce裙q)E8R1.擀_s[WI66}_#hZm~ [̟l0L,8 +?Nå$2RW4p@Db "ѪYhRI-FA!-8jaZ_ո8xxWڂa5 F*5hN6;u0VYêkWf%w/jVKl ߒDBQtOp<]ԇj{2"N9[%B݉jqw`xZhy?+]Bq.[l@;4@‘OPjVɢB%/c㷒 kU=9ςyvL kJ蕋 $ /\Sܲ<,]o{{- Y?GiEc {~8'.g4y쥪j޴/e,-0b<]22 +;7c i_!}3>ӹf&sA}-`QN(z֙zV%HpQ$pePd$}q{>bFZdBN5 @#?Gn@cILI44xc^̑jky bh +_{ $Zs@hhB* +hZe:_;iDZ銅|{,U,ύVN-|1@ VdD f@ C⸹WC2b{O<ݞC '$1XRf*+yfYõ`j׽G;W:!Jkl-?+e +-28믵e{̗y{dQ,bD*? z?6I$Vِ+CAN +0M_*В;CSK K#3ESv1@ +m֫wcY.%3gއhUPޡ2+?ܝmqfB2ϭq*XK "栥úc$q&3IuhY-Jj9,`$sF{k ]i=B<}Ss+ + @wsO ե2}[ņj<Ac"M$oW^,֢sђhᙔ˱y/IQ~DB׍H=Wf(/ a cw[Lwh{ߴ5S~m iJy;uCDITDV }E,|6H3Ρ] H\06fUD"nt_A2S%R}=nuӫ?v99Agh*3 01[V0 C?̭JΠ3_gG FiQWTM7VԼ4w@?:~o^k}໚潪s3E?nA @'f~^sp;`S#!=f$#?yYE'WSgFh9r !F +L +͒jr s$ t9JxR?!⚿x/f[RxO=px,2%ţkGXq lL9V Zgoe)4>9D5nt +sj)G*&HwG:DP|9jhH4pU1`z,12 ݷ\ Ay$q! @C'6 cU·+k3j؜w_ib:uP"EJ=msPBB& +`_E%aE@w[RtU- Ka8 oT[[ڤ£>o4<[%FZ%{4#zÃZ.2o0븭ux,iF߻ EjKB&+f`~?ӲYn{u?U&ag>-'YV8 Lq( & 3e)4KBAe4>JPƌpg?;Qo{j)ub-Zۣ3&6ݭE %_r@Y +P9$0z{sgj_'*'m9!?WTCIם xƆj<(k7m#CɳEf kSlۊ,̛*MXO$V:u c68em΂ yOU7:AmkTiN$P%* e˗^u i5Ha)0LCv ,PqzBﺞ4gl1 2FyǸ.U@2ڋusLnyq|xOފt8T:CD #/S(9\e4)bX4fB!fy 6!\cm\DBTfG:'UBRf5cD'ĂQOӳVQH` 'Atʚѣ)9:O)q3" 4 5uǜuК"|4x4L1%cq2qCvc[}qzUw"d)C/:PI )tlPdZԋqHo:$k] 8Mvw]S&v sB25.< ST1x7#\؜w_w3I~x^Z5կ[aREc})wjЅÿ1= ujs`pv +33,VYBKi6B@#58m MCi}xt s׋3'?9))esQeVԅ,ؐ[g@'npH0rt{$5yQYe[fWneyD? @󡧱4zd^{v`W6[8B`h鉟tgkb=i> s$3{FHW +/6~yx卌Ǽ{ :IIYЙ荸Dxz;=[7z bSн&F/wjrOjqgb2)H0 +c0 ,t%w EAIu=7V2l~>_5 yaRƊm⚎ cx-[ALq ] %FK_uib-M^Cr$ӛQ,YY3б`&ĹI6vz ɨh O, -vA1%5ٯ\Q=hgr6( IC_> WBj{zɂ]8^57vV|?(Q2"6͇jz|q.$R'>#)r 'dm*3 +N(Š9ϔΙAGbCr +@s3~ . z>Vv=- G#bpC||` 37ݒxÛ`/'~Ur_8P"09/C +T2WmXH{ Ɨ#Q@tf :u_ܺ(pKj4olP:}̈3*Wm1w G BХeZF`VN՛b+~V~ [)}ӑN$?<,\(+hXه =`/YxZ97]=2kh@Agzn-٤ +עy&^MgJgеqI⬲F,@si>h +wծg[L(_ GPEhvmag >_w]b>;!~k5OGѽ{j"TSAʭ !7BfIpldiU@cT!UQ1.z0tP,МXU#Xw^uo^ާiX;{>2ӈ ×c7oatZ}adla|kę4b@g&[U W,s{y3u$0w9Њj445c>1<8S~^ׅCQC'D/8g=?$@ %wLrO浤fYQ=Pޱp&hYdG/뢀,h29$ev̕#cT#ٺфLBf聺SXR +(V#['^"R"735ѫp`BhpHaP̚E9;QVbŲݱ$qмbK @rxKq$sNDW3=N +C_95^eZUE/'o?sT=@qY4%v&ed%Q?.4o$ڣgt/Z?9Rqӻj :KWEs/o9ytSQ@%eS~#%K-UƂC&XH ,HtHc7l0V@{*d!æS[$.ͬwN(-7Ӝs/N]Y]*ut#k ID*WWb,IQy[4:ػE , h^U`3veXkx{RG?/MSBx!\+;VߘǶXo(##ϿF!6_ (+ 1eye+oK1+cd˚c{[> j\N1Y}XPfe*zmou24e?K2 @[^ϩy hJztk'[Ѯ0L?jT1wf ' ަzfjh4m@1Yf]rF0;ze˚92d֬؟8emrw3?:/c4/%lws<,Fa +,4u +efNs46dسw%yZ +eBm8xx7Tq p'' ;{gIجP|ۼ_dWL3jOzKʼ8ȊYpø7p:bMB@%so:?Hhbli%5Bdw ]x<2n_52' a)bw5_]=3 + *yl+"ٶ9_}i/<_|eWQ$@׽`y +^m 7`CwL,.'хZnvܖ?ina)ڀypA2,3@6-B\i I)x}' ըuAIN V#QIFx&]ݚhR,QyyU Zr-ceSet^%A- ,㚵Rn0\ $RTa&I[d"KmY7mD Uv_%{KL^ƉƝd5M ai!<{P~4bd& h޴\}ǺU\o66jUKI<8lp W"Z|ZB< _O{{H9oT,77E]yH=p3ޝk%żx_6Q8QVd2:ߥtI}ʔ2GRl̻dJn}V!mbFC& e1g40)#vwhSe79%:rh&qv0yB[YqmMq3hse6 I]Q22w?F 3,`d^i @Xޡ9Nw>p6i Z(qXj-+eF Ī.eɜEY~#@sRU%%ˬhmWeg~ç:o)._y,#WOO;CšG>޻r +Xy;'a&?#poy7nċQ% +L{qWXB7q0lyva8Vo&·|-|-^5nv'UdK2`!/9 ygx>r}kte<$S"D'*=c*=kJQvUu/TCVh96KsagGOxZF2?͘?ЁʵbTG,73X '=.ӜlKb 1+wD[N,p +!C&{\KhO@Ҽvkkd{ Ah~S$ZZm}%Z#Z!7Г~ 7:? @s[ɲڐIt +3{!⣅l ܓ#nG/v#i&>ֹ杗^OGG.6Äɿ@woT \ o:U/6P.UE'yVI1N)w]\R`a"_ӠmqATdul'ľj(i2 ]U, +xA;cW +w +֏86*UcPfڼ9/vn9;!^o\_hv@;ʹ,4DɎ#M:.\ e?S:[jH,<}0hz9b&Hl=nxi92'93\&9+K`n= & A{y/,ujw şSӔ[,ݐ{@X{#i2wɤO.Cb2賎L"Q,1D@!G%ڒ2#k-C*R1 xC"ԅ{ Hp!dlb5 +zwꆐO9/`{mYFX /T D6ݾ\8Ye +ev*D\Bl2-7USZ*&@$Fk^z8c-Y!5G@Ԃ%QE F/M B6g#}{+pX֗,MZmPK-r!^һiW?zsvf'>ʴo}78>wM^~=TI38]_[fo3-svcU&K$2vRn4%k0^BJܠSY? S.f kJ::qǵ*.͍,*@[-둭e/cV P7PV( ɇ4V{@ +[ HqódBk=-LVx/Vc#:/@#T&R0IEd.οqཆ']JRc= +CgxIޥyz%Շ62Ͱ:W5J{]uMCqE35HQ9AUSvJ~ + +ʜ_n8%v2+1O8zUhBӥH + 4\8"nDO_ϋf>MZH-ӼA=Ms.'s~xܵf rNT +hJ{?佭:m\O]6GfdivyĬ?ʫшB_|5dn7,JމgG0g-[XLMJuݫA`4(ArV􉁪0jFknxb+Le]}wV6:IKՆ4ӐZη9NܵZYpR݊o5{a^VkTNлV%P~?l"46iϭ4ޫ9!ߏF& Jb5VF(?0ȘHMaߤ%Kf](mTzEΐdH6#UnU>rm{z1AΤХ1r1sf1eq/؍z2K @e?YUx.%J6 zl֊ )Vp\D̞LhSʑZj_o7RaJ؛#7)adDgDM'F9e'y4 +Qυ%[k}:%]:Nw ^ XH/B# _g.̬QH94»NֿyF'\fyGG{%&:ŔBvwܸ/cdy00 3bWjySQՙg~}W/qUZbbiMnaI$)/#0NζXrY!vVuD?a] s No% @ Ǻ(VcŒ5D#˅5r-aٷv۵%)U3 !^(JoF0~?s~O̰2ݖwgqJhbE"K U;FdIHhf |#vܦq]H*ޕ-XL#6?>1.ch|,7S8_cT )WR k:@q;bG[X@vh%v҆%Y;q$_mipMcIGh,5˫:B5&vG#`ag^>;U譒ftK1hae O@585O7?v8)VRy<.j<ٹZ5^p1IsXmXh z-'hh˲h,8VWἯLvWwzƪYXg`$Zw Y46'9h b@( +*l0I@o~;b {ns M @ e:0DLڰ U@zaxqH~d r AN] aXb]]񮡣~S'Ե/%:$6 FShIt>X=K@ uŒ1pqsD.Spc4]5 4 +/ӝ\s*xS裥-aavvƵvGeIN8,1̇?dWytW40 ( 9/]g3VM758Et”p7HZY"h)dT }?1{+6v;zC@Ia7Uila7#tMc@ֹ6$zToS!LxZZ8)OH̏r746dEH&0Mf7iwXYk偓zq||T5 ִ] +.*ZG&zIyN$q{CcI @o塒6$ uQ ZW3Ш y p$ǜ^okYb:7^w{Rq3,qL;skiYfϬBɳj0K~rCPsC*1UTja9Nfx6hd#@3egeVCxwзn4bz}#?1p%.~ԯLz1ɣ4e X +֭҆u * b$=z ?=GIkb/ߍY}2ngFB6Jb!y/N^ܠXd)U2 /2-J.LXjǻVQ\cw[?3ZsSЈ1%;V*FGymBZa0$_f?LCzll`%3j'"kS&X [U@øP֥};r.2gP ^ /JHuHch+$]zԾ2&Wa,5J7m#=Y?VGhLK*=\`gއ{oOPq lѼ獢4;Pi(SZ? iၞL wh9g7ܸ g|4Ĭ,s 1bdQc^ejpؐT>4q) Ay3Zz$(~T覽>7Y簾t,z/ܼGO\;Ret-v3]uBc}yԜP?ud6VcbPY"zP*ќ9uI#w76mtI{MHc6nPYE'jz-qHbv9ա59ЙrO0Ҿvbdɔ@3?JiXlAyHT0Ny[?+T 'F;5TqdU&e\8N(7rgL'WZufqgrcSOصatƹanH=J+-o?ѽR]@Z}+ h!G##LJĝ1гu{U/=Mį8_]vz$ۭ@Ҋl *HۍeLܙe'IJYR넀ޚ #"Lm5 eޙ@e VcXnH4ُ?}{nګ `lphHE~drL.[)ẹ4 4ܸjdwq1;g%y4sZW[A3c庢lˤ^p?h9sH@Z?Fx"^}(|fY ~/҅!S+0:mJ?4ީ:!=֋c@O{N ࣅ-m}9 dׇ[RjKN֠rI'A;X@#^ռ&_~i`ffv,CA+Yv1P==~_x'ϻ.{}xbk?'EV@݌02:gPE +[, +Y( =8|mwVyvxم`bO_^m~u9PЊq܋N3K^f`KlL57XWgdb}-F8X=+~bPJk,Լb~?uֲ6Jпrhs1\q +tW1",N[qrk$i5̍YR7u BP )+5OPG,|f9P/Uk}Tc_PK7I 1ϑHZ·$ȥƙ(@H2+yݻCY5{Z}9,\gJN+ngX#B=J}k}LO`^*ў7Rɱ>x,qxl]Pt/XC݋u;$ jT8IXw3F]H3qc;jbp:͌YkliQ1f5Q? ՘s:#;1ca1NQ(N!Y}m؛W9oDD?xC3j4d2/F+R NЌb[vFlCk d|T㚜MӔGI=i%scݸRLbz9v)=9Ѹ3eo+oT)gEϟy5~(XLZH3旣yE/qS-B}Vq'j^L?OOC{`eltAA gȟ͒+/r[+􇬯7@ +3fb2{eba,د$SQɛM9HUf#Ʀ-,t3Dyn|zcH#NByBĹΑ.%DwN&B]HpY 1J[g @ˏ`^gIm7xhp'/o|sc~ԸY1gGNj[W/=\vg{;@[ !Ò<[W9`)Ɇ;Wt^I TNl[%PҊ!ri2*c20 ʥ-Vri5:0d8v]:ކ@K3":Q|nj)kaYqL=oϒ<s ;/,@fCi]+ 2ܾll1wQ=esu{ѵ O 6bd$v|OS|{y +e޴Oe"'.K[B3'z2> +$)~e)aD2"-3CH4 3U?D~w,pw@HczMU'l8ᐁ>7Ʃț*X +ı+'iLNd@-Ie %8lxij'0`S;3C co2R;iԑCeHZת/^LԍFF\7;詑u*{Q}YFv$.'Ig<2- kZE-|SaӏH遬؊l؋|z~G6G~|KqJ_HGHUH_3r)yucKHƏO^'>=u=tXn%dszlz2ą#"R'$GIG. N n"V sVrm@@]oFZ ^mZ]h8Lu-(?ʟL"d}8{-Cc'>ÃC%H ޒ}g5eJniulwR%ַ+^]Y>r׆x3R + 't&H2K -~ +KUBê, p#/cuѫ[/$:xyY΄ϩ[qy} d-l +VA~5X,q3g2Oӄpx>_#٤,t3%&dˠ>1Br0P[k̟wc*< G~C~Țx3n nucyLNj/=Ú*5tG@DL {JBͬq1Jj̗e֝sB7nI-w8}chJfܓ[N *'Fqkq0,QIk>e\-X +v̛@9 +FIIf]0>p3!Vs5p +i5U2K!:*TPwC5NVZZ(NtySlnmo = a 7O|;^G?櫜41d+̨g*bпWTL@Y9)aZ~Dz=9zmC)[ᶡ9re cwыSwU/M1g ztK_!V -!ښo0cYzG:YGFUiCmr+!eLs?'34M~$*/ahv]\ړwP\V*g4I1qpzhb^^=u7O<6,VyKsr + B>>E,o[ٷՁ#,;7GL]e@G:BH=Ifyr@1zol P ۛZ?oI@~fqi.8UK*,Kդ0#u׵,*W ޜ..4uqs5vdEFntV0! Prqe>9 5olE[VhQR!E߸;*hVi8;­kgQe>qoz-`,XeӜ}J f&D&]TqV |ɕ'JWЊ%^G`0dQϼ_ +P>76CwG72?1rӯ u AU2ΩoXg-[EtjIU#$_s;nd ,ȵwIM2oi #l'dnlT>~갽$yMHsc qtI֪msNhh @%6G@s!<1-,J0k&9l6ilO!IzF&dFa_Q7mz*ma,h_b*ފǓ3D@Z-ae2ўyFVA-z=9$04>x O=$Y B!z0z3c +_ֿ7 Zwu;E!aPg^^{ *bru7mlE{|c,3fܬDVܨ@br_ *Y5D$N|;^Cwn۱=E tWGHm7+%ѐIz@霐pSu~W+dL&@Ր3݅D2-<$,n IE|7Pap~g~a] X +2}\zF֒gUciL)ѵpoƅm܁q eK/*hr4iyG0|Mgү4aϷt=ݽ|ҡ,Nc9Z ) FYOmkdzўTkR4s;m_8\YG+^[aDcw۔c-tz׼;&U[6/;o X2gbL.Y Uɩ o.c-Ҧn2NcaQ!φ '%eko;X|^J>n +쩀Zw%Ϻ3lzЩ~s/<;(t֝gӈG⽖;V]gmiANThΫnnsDL6Z?UGAv(/2]UQ\16꼜\ +\v(_˕-g3_sN k~f[nLzf>;C)kWlOn'`kT~>:okkv_$t}yylR`pފGOf_+cG{<+|tOS㠞:cʿ_$@] HZ?pwEz1I՝oM'K0_C=TLp%;){ FE {>9 KF+iBnO$u)h6$Z=W]6 suKr}#{ootl ݛX>Uy5xiLaK.=pe۝-}`Za-^l0QPp%-hI*Yhh_ȕ |wx}ugb@iV-GEv\KYM%5U&]{uzWO8ّ>ۉșw,<]'+'ZE P‰Й?vB tup3 ٜNDQIn'X n +s8#~9xMV?p#hAl">NtX 1;%Tܹ#]e@ hT)^HOĆBٔ~Y6KTcҚ؃Itl߻nA} `mkhrz\ێ$OtMw@4aH+Hy44{I[ +3{ȡ4)6]\&{+C͇Fʼ+I@EUpsq]8l'</=vEf ԯ1qgrC=,= @hk_-3^^P6'Ky7gdN6+y9 +L +@gϚO|">݈2T3˺C4X̍M⬾(> *}E;xZdɏRgQC?jؠ't0@hG\+s6V9yUW7*Ů%j%.\CU[2qЛ swٻ-#gɣG Ym![Mfey+؁84ᏹ&V cD88pFkjn]@I 31Ȧ'rS`Oek o 0elqUc&ˮsV&7_FђWZ&6r0HSs?>> _EaIZx7w]hcd}49T -3S,ȶʰԺ(C٠Z]t嘎Z +@C"%> 2Pǝ#ΉSN; E.y"`+俁h'n/[ZY_^Zz=sz·3N6tveLJ40)$}'(@_8'Tq)АVV\vlUԿ?t ՟_ӕS&A%g6؊jlF3+9x>*NI$? *yʢIbZ\BWu,I GLIWOvs'ВG'gqtDԃ&6@vV4^>UbsuC +^<4rXi#t0W@z73wٹFb"УZNC)t[ --R }HE8[̹:]+%'ؘX6fŰ:HSxq}ދ54eSDo)+9ʘnuɾ!szX-KE@]3hXk~ki\,Ln*ԩz_恝WdWV U/D2Oh2Nh.Y"n]z&yA"Лd̪!@,8G . 3FQ, VV a:YR; /tT{9C.oEGi`O>BB>C2G?`cVCI dM}Z|]тu@͸©YԜ;#9Q:#Cь8>>O#,U.xJG~B2U9BSH͔3Ǡ692. Wc.:#an"#>YI _~tBiTho;j?S;ld4#c# \v*ͦIt ⢶x@ =5Cvl> ܅ru[R7(k:%7% +^ɃIKpfBSlF=;iZ>D޿p{;sfm(Ŕ.{[b:mhla}ǞWvCHn^lǸ3a 3\]NQ.;耤mUJ'l"! u2'?*%+NsBכp6P9d =}7ؼW)9^FH?2w^8"$@yZy&  !'u {G`3mЦټH^ͻx,A{TQ]MGب)< (vς}oti i7{okvt{U cl=1@'Y.{q@%M8gbm؜Kq:zWOO8X6гgdԶ .o$ 85:-&ДcWgvul߸(E7-'uUIV@dUH@F<)@A G 7w4o!+L\Tm9q $:AfON#:6CgU&#P!,hj**3hR.FjvO D" Z0/vN\UxsdSrd%5ZsI4ڿZX^EMs =(d{j͸RשnŸo_VD%-_&뿁Ⱥp I2sͤg(lk-lod ٯepZI -/]5שb@g/k]W9)E`=.*|]1rqm3K~O=CQpީIN'ģc# +tGؚy+"u ZXϵ3˝V2x+)֛Jm܁wǦU9k{\#@A&lH&P;3/z/iُ9Aa֫"qOOZ+Ƒtӽ;L.gb"[KP/ק:f2Y +̐ĺ_:5J㉉Hed;-+S%]ב/-uϲHZ}^ B[_Y]& D{rg=~EZnњ\k@'k# __6huҊpހ Ϲ3|V{C62tEmXЫVxtAAR1]8,7CCf_v#F"J!郼:Ә֓iݯ=/Knk@RTi<zd s7Ė/lOXM,.)g/7wsʹMB=0h3W0T8 + 宭?ΞH +o/:=F@G܅Z*AپY.+E3j +;f!4Y7":W]h&d"I#bWe *fmH֙LŴjS*tY$*lA&^#q#D-FS[:ksӢ@CR]k]Z^_C;$+QMKQkkf2D"of^angs7L~ j~ j(5&Z1??~(K]1Y eQ=(] +f-7ȵC/GZjBoYX ݴ%vf<80J|ہ9Y +m%DIu="gZg!;JMhǭ,qf4D6͠'^-Ro-D\ m.tf`/zN3 !>;idxe|b@ىm*][4G;w>wy%' \f{ìcYP/r~V:-r+tӋP +I,z;ڿ-1~8h +S6 +_ṛVTlp"姒"ЬPdm:&6%HUBy"jfű5DV`=,ֈSa, +9S2񮅯8Ej 3ZOI@RESGJY Aj vow]/ Fے]YxBP*hyf(mzCXk> dɯodYh4O c/+y^ ucv:McP8pḣr̭ 2q|czn&&_8r4⤅Ε?k}El=]&$vgԈ4Zwf]DOߔcm674gʝo ΞH @@"p0qE0RiyUI\z clzrtnpN 03`$+\̑X,u=j3ʈ:#HV]hU )QacVX@b ēH]G jJ芴x ͧY@rf "h4aِwFӡ=l6͍SWUI,MnycߊNgo]dՔHy ٨PIHu)VV?wtp"hnGOu(z(9B +C4̀ZKе3Ψw[~sƗnXT@kS +mzq4}A? qԙj:3_Iᰈ3KK\R /JK\@7H!H3k+Lw*ʸSk#shcJ?x${In["ĩo 1ᏃǬ ,:0n fk=;|7->,fpf5l]c F̭1N5?>xo@, jݽD6ޠ6 +g4}= Rt"/]9^wCt Sc@9Lq[&= e4qU޹@mwO;/ė!pUD7Ї ҃Z3gڑ{HJsR.u]r88N7LicDA+KK6.FN M6phoFF?A:eΩs fCPffa@+)IKE~IhǕJ1a.N_Eōoh3iY[" ǮS~ׇs:݄l\@qКHM'7-QW<:K: XXpX21݇$-KKճȡ"*6~VU8#T]:r#k*=a]tlԂT%U˭0۰"sg/_͝Dӻ']vj @CqnWe?a @3EfB|D^C 77*iOJɤzX抚*xU㩎p"ӭMW~v~Hlc%aDͩ[۬K`,t2z" IncҺon00q́kvwg-2 _f>_DniT$+^7ttF~:F&qfte|4ʛ@s8,o @[c2m}߽?ߧl6Tuz:!i$3=$!Ī߷xqJalhJ۲&& Ѧ4hALOcf@'[:mlFvriu#߲׳Ida7tbN=$*Y9ޯ7o,f$aztd0-z%M]$b ﭾϾ~qJ9ꄵc;NeI01i}Qu?HpO(7ih]Kjrv|' t ĵ@ YҀh5;O?^k|z2|S7k%<k Q<[1D7w3 C: +ÀBzF_Ff?u4 +2: u +ǹO+%C'[4*~p 3o[.GRW̶>иٙmh.Yc_qwqP@רݻؑl yi/M|f*օT9{{q+&oGݧ!lu ߀SOzlR84Nv歌Q=apXQM vƿU@t+ʙFگ*5IJ+Qkh]G%SqlU)7u(K{uR7U)<^ٱMjܣ͡ѫ|)޾pxŨCQ>[KPI;ZGF&h$]Qx1fЦWژ-7:sIZm(0 +VF?ڀِ96]*y&ΆkoBW.p~J{֣֒S6[ODh`eh])ggp#9!C]$*C&ɦ SN> M%G6,5L6x?bl"zދw7 {=T]> R(hwze/F29KO/lϏRdN_Uʹvڥ=yˇ٫a0 !n{yrX^MVNoEy0_h5bׅ39VN 1.xUX&Aބ$.!b3 3&.pg/HrzSaT}^\_ +{⦅ +Bd4SMa! rUjX< ]h}2b6 S;34:0h.3BLʥq%MxqhEGP'luX⳵ώ63r(U䶛Uxpœ<-vմ^et8I)1G!Z}usoOcf':=.tqk"sI$.k0@k%f@q2y*GS/ْsz_x}m[!3VċkǯUɯ*swBTC̒uQ1o+Ad~Tuht4Ki㐙u'9Μ3,wV[Sm0ѣS (PAFQu/eܴzq>ּEk]4EI.x0bƆrl(dߝT@̯Qi5WXRrBw-|S{>3"btcS4&;uq6X<,1G.Y{qX9L[XRJz}?WlvXm:ֹW 2[@# ̿d֑ +{P7/1Wh wqk-I!U3GX-4TrvEYh%vm:KWe:jvy/?:5Ȟ)+<>|uj.ّZG0?H?9% A|Y.h8?`d[.$![(.vb=tH4۝շyݟn@Ϛ04 _@L$ ^ } 3NIw{/⢬=oO5t 7ߎFU[-L=1csߩoe :`B.긭Db#᧪ԩHGOgVGERFg:X80pӢ۴~.DL%$G@+dgǮN s>yջ3bT ۺMJS8̝] tc%/X7kYlΖЬk6+OaF\QM q|{ʲObZZ76m%td,;x>r%oߍͨvCUAL 5r!0|>N伢zM2[?w=Se;nW +Z3}Gys/X{)fdrd'/'UN0f`cй"#m{PdXЈ7xuʌ͠qQ\cɒhQ~ϳ+|vc2D/T6Z +;N=S5zhQklVrs7f7h+s g{4#'))ffh6`3IĄU +# pg,nDy:F)U77KSFg{֢:is6\!xG:w:G#ϻMYpN\kD$Z;RX\ U +>{{dw~t7A]n DդRhE-/3c :y+۸m}#xxcL}M$cSn+okp@&פεV9j$чI<>3ZڤqOƋoўj^ͽF@sA6@_ [ 9X08ZvM`OVYˣsh95`WNڝ4sc[ GÕ;NL(:- + ?iυXϙ_75{گS $6Zao=z{d7~Xlhk,^@zO|XqZ[[ ~iVkk#WjIwi} lkxo&vv%H6C tMIHeg;U[y{= ଧw]mwʵSp7oaQM'ԷoPPzvoi$\Z6c<$ZdBfUa3b33Ĝa4G@ODiۉ +h鿑u1o)> &˖K"6Cn@^e!4' ]$Q-,=d=%_^><s%|IWXgeC>}?&{}Yl0s+f] n% ;6 f$ɵ 'p;F uo7zqV8hܹ]Ј7o~0_|E0zGCj@zLMZhIշ.'Af{EH'fy"sޡ2 `Z$rgؖX2 X[H2fƍ'I:0Bdne4W6 ".w9jkl9P7E:>iz^{P|[c, M]vpপU#+b)dLUӻ봔;̫1[j>Um(uV+V{sU0xn lhCbE?ӗ)WܩCҝdL\8D~܈[aVǺu@I*?,bT? qҝ$ou +k }4^<& ܎$I/g?v*#\>-G{tdR1bGޡӠ9NU;PPXWd|RR :NƠk-f nx.6'B3gC6.d8IG< 7J}cdH"Җ8#{16rǔ)ښLd1a9Zio6ְ&kVUЂ17ng?.\ +L^\>,[L"l9sפAxi1^V!"^Z4\Hi{q[qj~s?S`C׃|u@3Ocyx^˽>:. ٫mmSgӨ>~כ7)0SaZ6ܗ 8$܏c ^ :P-G\=r,ktoV;Dd5щRyD+t+rr0֖bjf, >52v{PjX)dӎ 5Xsg @'8 +hY[][a!kXpG n%VfZ8w:؅'/;PZr#C6IL: a@06͇6K1b]gt3FbNcGpE$wh}`R&tgn:A h>j9r( ){ɪ)wΜ~uyZ/ʥ=t/C'$k^ƠB>4DQ@В]֞.WL-|٨~W.Pْ+1xfBWDI=:*4R,ꭝS?h Z}nD'Cyf5bt6A!)揦%tn`خ gڻ}MW>PMY>LAo@#QU=hņNaf Jˮp`22hNT~(5nG_0B;l^&Y6gZ$= qGI7;IYv:ګl_`"uחt+y|E.hƧ{S6_4t87gk^yj%΄[ b&X돇t$Z5;{. $~ nqq,\_=+!\`:2s:KPh[1wҴ*hgXs0nш\Sܞvh ,"j8(YyF:ϖo10\pQRmXh̄nA +n+X,ltt6Dj}[/@8T‰@#.(!=p<}=\^Uu^=W-S' Kr0w1X[| +Emdc3"+?t;ĆL+y,;p2嵿gt'V9W SeǢ[F hurɇ$ڍsGm_@I+, 3>B]jg)fi6( +^.8}jgw6ỉJ2yQ~q?.}nEV؄ +\VN\B_UVZ"\em봹fX)f 8C[KFkR:šyi𖕧`q_@u|qB_x.t~ 3~śWv{oOi ^;Tޖo .A1s:ْq)=9AټtAw Qō-.?%ψH8?*O]%7|DJRV5onjX2뛎ᴢ~oKgTVJwy-rb)LĻ0W8z(Er9Q + +(Xth^ @x5'fC6B83aq,⌏jZȪjukf-hT5Iṛ?&OAßG]ĩǏTϥRe{ѶOli.u|t&`\qIDcgİF3h\jډt$@x=S'y@T‰@#h&VS"L%u^\zɿ:kfn?q6ւTt1cƶ9a_ooh?%=rLO'.s~ !]de݉*`/]?N^_;{}m{oYY>yfJ+_Z_.-cG@@|7^ꮺ 30QَЬπI9L PYM@ :j{?!.Ȅ^i\52)4zR'&aqk:[U@ChPꖞMo-kjU_V OVג +d}EJ_nhoBqpѷ, ZnIvu/G+e |s_1BfqM#V4Po !^2PLM' ˓Ʃzg O#Lmiӂ,hRkTQDkO% 9|3.h.>A@#xP@k=8t237,GvPD +'Rh&"48V4SpR, I! tB/b?2w7|b"@{cl~u\F4&ڱW:+|=sW4õn^7[WMW[NhFVk4# 8cXv?g 9OC'CssP"w;[K-2^_X E#&f%^Ј{atA؎+gڻ"|PT:QD ƯO$:~k }vuj`c",f q%^I=2kl?24@a.Ô}oNbo>w+86;be[427tV6a-9qz^n!nn\5֯ +RciX +9-枕)аYQ~S|m3Q#\MQ2Ϊ|.>f 2\ X= 4k"sjg8I'zAo B[X׷éz65 mj!Tߐ\PE _/P-6A|q3AOc炌tn|l<ev^0V?IK}3rlՃ~u90bwΝ$w KA]^%@߾xx%ap`&Fw5EDt'%QMг4L/z6ZY@TB1Q(ungىO>!s ^etzZG3y+~gB:t?jbjwf!Is4;ݼݛӜ/2]ai?`ZM>,Z +"i:}ТϹ˚qtrX"d֭k^glHtoU{a?8Y-7TՙwoMf0GvmqgJk R_+wÝgH!VEVolvWgfӢj+W}m+P%u wI\^=NkFj.~U_8wt/f'K7?ڹ^ڣWNNuVDh/!9)ViBUqG^[G"GŸZ{EGS1Xw2N M@ r:7.Ct[MD5Vf"ݡ{KZ qDdIj{o 9mg( d-(y;EjrURx\܈l-7r+m|ָǔ@j$$Z;'8 _6ΒT!*˚ArB\ t|h>~3' gC`Ųh/RhG..@ȡSeCA<X3*5F&ɒ X4LxZ{f_?fnv|˟E@_[=?,@WsdUFy`| ?M4nL^ wi,S^ɲţ۫3#5.=[ ̗Ҫ_١G6IR~1s҄q +ICv= D"sHwMa7ܲwbLq_x}m}iۜF(amfOCfG[ҿ| 5qITqzP-oЪ*\apޖe_DƦXg.rܙ +ؐY>kUUfm4;I' rEDUo +8Dw% +BuWDwFR:/XlAS"fhKdyFo:]Ʒj/8[hcWȋSof«sQ{0Nlh/@=]u@sq ok~!|Ƀ*sf^& K}mz=~&P6>i9wEZ{-*َ}U*k+:ϏKA#㼹mo(.+򤜠g*nͤ.HL$zVNK<6ZtN6@Md=Ql{;V۝>uF zM^`[ь+eraYN)*(7vFRLarnRjGEI6MgS- +M70;XE5v r?yq9] aK!iI-Afy31<*X;Σ J퐝Gefz+r@j(fS/qPo %V͛[ʀf2tc/ϗ˅^ o: _iXWа~Fq4EJy+q#}޽ppn&G wve}-@M0oP>*?R@P2YB 5iY 3VF#Ux+ڴQ:e4|6U%n]3iGvlSDOH^7;ah2:]gjF0EI6¤5;C(ɗ5٥sWxnΣ捌H\?C V/hrX!͸b-&j'!,聆fړ`nc;,\Bݿ﯅e¹l̚'D/qV欓@3YE6ӅCb4O*F(ep| ͘]F C]y${[i- G! j֌v^?c1ZgbPY + pu3 +kCl-B1%s4½ ?0Y]_>`6 ژX6/5LWUˬL{)wvCiu;m7.y8hDZ?hj̵c,BZ$ryU,U]GYVo4´~C*'\}| ψ3BmH1 +u+-d^돗/uV=QADx&2Vmd11<Nj񌳰T'UvȀP.lF,m-ՉD@Ķ_'*l@ ճňٲEXN(YalHՏG;^4ƆLXJtb@c6Iq4E4>ReG py98Ht{/BmvIA +&:T[jip߳ :ʔǤ 7a 56/[G+PR5k\_zq)=\5E6~nTl˽tmFɒ喬O*X)hf3?Xghc@)uaԎ~h@yMS?nq +h5GZG'aA+&pbY~N; :l.KLKWKK4Œ*L[{c3m&a!şO\X3݌}#B'WpP)72v{1ǒZӢg#@ ׊jpCݼ\_I~F̔tNe5< }tմ:qϼQ #3PGG5[\ӧ2\'f`:a.iIvZ^<͠W%z1Hئ0٫.A3 zD77sh=NWhm^z4{&86mb\3/[`Ʒla;{3LP"]\D^BXM9r +D64fyd" U#BVFfAda>0liveOzezTG "'@sf_f/ϐBjVNҐGfrii͡lz7ɧ^:eh//I`vn#b7&I׈ 7_iʮ?+*k`L(yPƝsQ@Oݚr[*Pv6%Yxs("TwMGBPs"?R.;7Ӥ&^A{D.)hS+Dԙjr?5($ǧC*c 1DK23˙53eədj^ڐZ IwIc6`y44rqV x[z_M8Fu!@=;6E z(F1%c@{j?iun +aIguu*k/h;PgNYmc:80'KXRΣ*XFy̗ qFCɜ٪MG.*^f`娮aωVQ1ٓO1OL&g*lָRMRhTN6h&H:H"N:T`3"^+;zGɛ^E4ý듊Sk!g/ëocs35042v_{N\`ڄYufZWK1gy1=[@j>O&$:vJFڦ<)yV,GExE2~?f_rL͎(.Q h<8#b &f9%6- +nϔKNS +l.$dh&6}tYfmRZh+VX#q"Y mS۷2$zygTg3L'k17T'jWXL8ũ4mL{}^}@{?к)N'@¢58 +h4LCݤ4{V8tSԲ hm 1o~Woʎ̫r뒍.fNͦ^֙9+z}D d*亨4RNU&V8w\y2~  +n{ECp33 LG)vhLLVo0=82Py: M]h3|ͣ1ro8@RGbGrtʼnylOi *S[\Y}t2wn<:ژmO5v52J1;wjrj/uuĜ'ݥl›lZhf:uf8SkRp Ь +L7ұZ~/iћPZ,uw*4GrϼvŕS΍s +(m]_ !a2fd͠'sIW| +Y쓟65"U4s=hh.}MZ@ָG3M,6Ty݉[+9u8BN +=IB5;"[..f`QEБ~3lcām2LDܓ1Wr_9^A`lby;d+_sChϾyA=B30&F>Z4D[FĐ4WN@=?1( !J-LVuat;MU}ci80J8 :L*0KP_ÖBnt:uː^me!qcޗq sYV!%>/:. +PIghR,9$mLk c=d|=6S*^f""u(=Rd>ֹ58GdeP JH5@{kq:*y>&fTmhK|8rL7[?i~g֯:Bϭ[*Nz龨~9QrmM  %F|GVP2ft6Z!]sNP_xm sD.GF8)'yCt47D'5st/K-H6"I!MYLM0rgO=@zDڤ9b[r1ef,~Ǯc + Mʝ|X+_Wu -I6ϾL-x l4SBugNT~+O0X ܜ)JFU !j@)<.% 꿟>/unlh) W)RF@5&0 dqkz bG[Ys7p$OgZqw(WQ2ڭ btdvѧÃ`3L SfZ +m7sB6G[ڤ^oE]k]}]${5͸Ԟ,5 &P:ڿ_H9ޠÉ>F qt[ +hzyY'۪ FB4N*il.h6MHh11N>R+ =-WkN@t)RfV̘`"D'oOL8Ud"ĐZRu]/6(<8+(m‹ja5²1MV3Zm ͵ՂJc>-Ă*vϪLC  +@s]`z ,~:}6.ƴ[E F&àNqgլN~t"t$x3h{^[KqљV]dzg4`pYk<%;4.6R#B,vnLy'VW;JS[|mLb̓rWˎnc *i9wf6:<]rYgFQU& ՛ĩy"FȆ iu#rJ#=hdA|,}糿. j/Y +5^H_f+3q ,0Mk`/T[WfkO7JihI"m~#RhH2uH\]t>َ2^4[?[^к]tq&bkˣy[&?z"n@XrrqbمvBp1N3L/llh$ZZvG92.+Z$r@NEIuV\m}߸:NQp{E&Cjw܇49PٸnXހ1qiWxky7*]=&;ҔJ\->0h5f_|D@vIbTfl + |hjeȨȇ~AB(Z]D=7Ith;^MFߊfU0c\C f0*1eu 暛Ѯ'iW}Xޠs"įXt̏dWRc I瘫vofZ=-Fc&>w +LzGˠBcvCY 1|zsWǝNz =i6B}ZշoɈуbP iD; +h0xtE%{'oxA=H~+귅:Dǻu x\R3u̙Z(p +ԛoe&!s~b\Ȁx L`͜Мij43Nȕ'W 쐉ŚF 8DKG%:8 ` G @3nF?C$w’ Ag4!b<Gۜp"Als/אPӲ@[Ct@C(~ǩe4|]&U<}lVAhГJ?hNOE,wtΔXSzz{>?!~K\VAʩJ38 lfύysh}t~NJ*;rvhw>c1bdAf` g,ZI' uڍZq@WEA݌r Ɇ4!)n[ka0(!!}}O{oDuM5qQGsT};Z(ll&d +-F+7y ʟy+u]Kh.`$ԃ$q¥`>Nre +ș֘sfP]6^f`m~44G>oyAn?`7Rtoa'22!|'j6ZK?CD5έ.r]Uk^P*bVZfa3 i|Ps5t⊾9yVçd#M:Ѵ457xS`pGG];otޙ7e9s%jZ-e.2Z^DȨUc~T8C XF7ێJ|N9L籯tGr}l󢷖vq‘c1aHF/&:Y~T^{:dl̂Y 7hP' m78<#2n޷HV[d -Yް1Knh@ `[fi Ɔvwϙ> fzl9clz30mIϲe-OzIzzwom}_EF.{I,722+3+3ē6 kr?b-$T9[;J}͠>,<>?_疪7ZC]KN4V0Zyџ=/Ps +lynlH̕f?7ǡkS/N΋\9ddtBIlb +Ьwx4gs]SvZ77yQ>0f{̩nD3q3jTjO~%:."]:e`4˫ @ʖSHfL*&1yf&0*$$7jv܄fV3vl +1$dwyoҔ\8d4$f }zᛅ>&1}qEK'7ltzT2Kaq%['Z7)1\ۺr[PP1JU fNNE(IAF>zG0vjzKkgLę6^-3?4ck ++!IDd.k+.j\FHд.0/\^lABl}gKH}D,O0O,z"z;3}I6Ol~'(b5qQbKÿ:ƫ4a+bn0DN<,:p cM ,fk'2\Hvz:Z>f=2cs= %s9a瓅~&z l}84WM_%ܠ m=cH+ +7#.c.HY̛4nXjn eu|_)~+0|$ SKd\<ٟzƹt٨*L9!)zVdLnO?Qvf>4iџ>MGE-Ftlp:K~۝őQBA$G̎/40E߿DaL50Í[EtNT;^w/e<)tp@3P. +s"g>>t_[;'tأ2NUOCŝ-Wh}:qЦF\GgHdGY -DηWbcAJ# +'egAsfI@XmHySPU{mfCd tPU%_0_j <zs8Ւ:-&ؤ^f*S, ˃/@s'ˎ)gV͕t~2zfOL2`GܲpLctp(m7(*pKbXg 34q6g(+}W:)eAD[ڲzR cU\M% #L@Z@&t{z6 4o92_Gu@+9qρ +h"@ΝY~" +h}e={ߖ;2\9<;f6=F%@[jF^zUs qɗ:* +響nfJC@Xe-ܒ Y"m.:UWeurڭ&z}u, m5Q9Lg,lsѢ~C&>.ɘ/J±$ U!f"zJ#KD+V Ġ}LuSni0mQQᠿũ-;l &{ŊHJ^Xs71i٤2HBZ&mɟy$62UFj&TDZ=,AOM l΁2%K40$}e"IQH]iWP36 C(g>yQdxV4&#bꏺ6ѦFF˦;H,9yTOG+.2d고jV_j/oӜb<r܄Mu850%u.awpnsjfdwk=X9POkذLtĞߠA`3 vˎ.d:—^͵'^%:;K ߫zACM?x=Y O$} ;y6:u@6͹ݒHG>6zo00]E5ߓ",$כ M#0^E pp=-jQfd =к3$1r f#p;Rw.)sb@GEl.ݦHU! :D/ e< ˱l;;;!퍣]%δx&x=85}hY m֬ҽ ^$fnf܆[pJ^ddA + =lY@J}!_"b3p +0jeP$K '*dqCAT$wF$-ߔGT΢nlz%k _9`jaN%ZcB9" 2[GB!Wb2kFޖ/жF<ȜC"d#$h^gX!=u'fNRGm6ILlf/yCh&aPf2_?WLhK̻Ȯڔ}ߩ/\5 Z(,k$ט882bs}QПṴL$Z$<Y+̀n'>y^6944lWaDl~44/ ANн$htKtueB/7*uvt]dDϗy|8ZǘO.˪)7#W2JTVqV&Xd xV!A BjQC7f͔{Pfš^窹(N,_fitº~^dw0E50B#,ohlJaى'۽` F(,<|OZ@so0`mLgtq3W1Ÿ) Lfs$):oy27(Gg7gacBi W 8R`&?H_ٙK6;ĸL-: }IM~X> 3!-o._]4n|%~{!_o&Ν$ }d,[@o)qux.k+ugOHJG*it3X 0 Wf-5&L*1./]|IY8M⢜AΑ8(L8I,8޼$‘Δte]@s%>Kty< 1_۸b )ɗwCT&rf -rL߃X\Z=Ԇ;ČgBf&kz +S>z]S&-` ͹*\ELQGfA$ TNJ-Zr&4W+W Ujx~q9XVL4Owy,\LJL˵Iնy_^S;2m9 rtח@oR|^tkM:'35~Qe6Д0w:#qm1d<np < 7u|X,9^͠dLt3J`@1zջhG5W\mk&ث5iYkZS<@2¹1Ѱ]ă},d L)w78 z>atI> H3?MyR@ju27E!MM4dņJ S'42{Ff ϸ=*S. +ׯus=4ʼ>:)f¡4z:]"!´FTIZh9ƻMqH|8iYOϪo,Mk; z˂m-KA 5 TϤtff W ~a~s vQ`t9&y +#_4ƉɏHZ$'3nX)re\Xo]f2}1-ļri}^)2QY铑^?ś:~ +>)țT6pp4 :ŘBkݷ<Ĉ^S;6OTnc9Eh "L~'!,4cTT~^c&ނ lGɠ9-I"i bǐZ^*57vidА@n h#s=]VF ZjcA,M|5ܩyۗ!B_/' w'9EdԦr+_LqP 5/ME:)t Q1}~b"ϵ`#?&M6IMj4]J +!ӆ{~xLlR 3Ȝ#'hNӃjpިWW2lBSOmA[: 5C߯~ΎbJ$J>󩡎yzb7 +f$ڷ䷬w$5:O(F+Pz 6!lu^SIEG-'h;Qtgep$Aa1Jr?`iՠU$/?\_3zȹ`;1`P. [54$ѵa:9[E(@E}-΋:)^X68pe,OF"/1sh VO3J&zj3RL0a6*Nlnݹ4諗еOȫa+|_af[ϣD¨zNVt?ް1eNtA2Ow}鿋8+k&i c>@ Z7u**d64hvވӛBLc&I #&eMv:=vcb<9:MX3Gurs:V_y;STr|sճU +oRLz`lRdfά.tOOy,zfy@ ++i=t#;MqYcZI7]}l$XRh~&XV@pfw͏>qpo1g;ǯE3{;FGi<odbdžhj^1|!l}_y>, 859Eͣ?sd'焘4aY*),띅,;EVDf Ad4&&tF=k4HK ctnpmʓ}=aJ ez5fWYz uz59> -zWTu4\cBzg9\3 w4.0w}@ ٣sDD9G &6ViCnTIhXytvgKo~= +sWɦp-+OxS.>Z3SÐW$G KМ܏/'XVI@QILc&FlPZoE*}z M7$}@3'ifb$a6 |YBPtd\)y& 9UIWejaclK08?$YA%J|wU7ZN/z1&YOJt0Z!gLuk +U#9`I|e) +h0p+zojQ8SJ̬l1$ 1GGQ6$mPG%n;{/8# XdjW-["AVIA|l@) R@VhEaсϨ):bdLмO5s@KFM?]]x(O;Np+M ^OMfY~ҝ~B*  +{;?j'7C \#cdA=LjCf"(̠st%c5~?jAyK +puY,eis>H(ʦ~Ie`J S%} szj[WE XHtY Pj,h=۽6K'z . Y4!injvrXL- s(: t;[ʑb<{V Z_L9=c+|w(@9=4 V@Ĝ@Ѹ(`?6?y h #f/3f't ~ )dɩaðzhne,y+yQ, ׌9 arP(Oxq L'zf;\"̌}G{T9eWmbUc0hN !>n/Ec0#Ni v2кn'Osדr%A~A]6deI|0:Ҽ@Bc|s a 64Cm\;{` tc +9oxf4,(8Mo}W/G&  >k˜Ӏ@C=7QyzcbV % t ʌ!Rz/t9L Fӆ76N~şP~D2kn8ig ǃH4~:A,[^t&F5慔0ta|d.Hb e uiZ?a0yqHL@sH^cб5GqUr3R|#!w_8a2(r멳TMLL4E rX=X_Q|q,kmZJ"6H@+l$v2*f΅B'3yd!$>s_>ahsKH#1D]\=:BfձJ'/Vvȁ%sgs6G 2nzSMDr!p$YyT_IC Zis}zgPfQ 6h>66MM9 MGi#&'4lk6g>۽ƞxE]dvj%eR%@QKfXUSތM>!4cKjŽQC_MxԂ-&pQ(Y2#dn$>EU\O*iK.͑]ol3 p)',zKT`0+0[E/WZyx==4g98)*:&~*z{y]|&%BE tmJ덳'w/ S_+'j\%;Bu0S3D-#f?y| ypzĔH+Ѧ%066s&1ɵ6p(A;~ӛ7|vScA,#;b+nF?)Zpfi=5wAy'xGYw`juP/]w-鷯Ba4 抹0}2V29#66dhQHhSf˓xLkd3$[3+}!rZ@%;qO?q  ̋k3f6Y+KG0lVrB*ui@Hy/`.-wv:#sNYMF P4{n^Q'j.֍.O8#߰@ < 5֍lK\J.L!.fK6(s!LI\?] +S̆YnJdqaAuyl%Sv64- tf~¸X̃QG=dmh&hĜlArfAЦ3gFĢ0:o:HfЍjxp`WQG"(g3P+:S*N[jn].+ܼ%'G!R Ȣ^gYNW3U(Nk`\sqj99Vnaߐ_'@zXl a=|`P'd,ڦS7EHÀ3EAgB`nsuF?;0&JS.mJ;61U sSyG6.S Y_][ *gT۸݆3 ݆Cgћ\8T:ųHKe_r=|ksko$sGՉ8mJ g_ N|]™X`q JVѦ#)7=;wVlq K}WM'Jde#;oD0~+9m0:.~OLJqp`u7@iLs__z &\XsNz+4P'@ 5dĒs7"3a$>vFM>P'yB73]aZ 㬃,NѸ6 /MsBMCx~  +sN-$zW,#c=l4Jak0%UI\Z?f&DCG _6h dW +Se PwgeY4̚brfP`L~i:r̄ZT K]>V) 5KE:׀Dz9X~q eHb 5uLNQ2-0%hv4;x/5[,*ƃEaBa6k-*\&t?W7J)o=q:{&n䠎G'6VFO8OS7K+ܯ9045&~8bQ'o[vMrcQq'PSegCŘbjpw2g)4`_ +F/4Mz vz$ܯ]dU@ЙФM4kވyNYy)^h"_HZ^S©hXЌ3Ͽr# '=T2\4i2/+P6M'e,Kz9m#UBo_~jحݢU#UIrp[ @ Dvc#A"OKf&\ne&34W`AOv%$h<@b(t>}~t*53}.t?Է.鄎uX [DZ&V Ž%ω - Ą&檬et,;KDǑp/W n;:6 ]1t ]3ld)la}C}f9!u?nhVԸxn^PRzbt7p@+D.N1N 'գ%B.m9Ռ'avO z\-H7IEƫޤAJj4q\t<*!n%TC Qipᮚmf=Llnj9(BAz[}]ElX,0ɜ F _.s4ckȟ(e'c2ub7=O;9ŭ({- i2B!fvVi13EWMIAhCʠF#L;.C΂CnUd TN(v[s EWջ[җ d wGgH0?͏f^:thZ΀]$k;"!8CmRe"H'3Dawww=dl! i$Z9~m3R޵cWs]C62 +Ҥr Z Q0&B9AVT~;Ns [Dd,D"?UlQ)B0|pú a,a^Q2l< a?r+xsÂ=u#UZHxfuԹ`To a|$r"045Y +]tФVȎ_ nI $"D.LvkIU&&s@G!˘@A]p+@\f 'S>}8{ U]px(kWZn ND* +qn 7u$ VVC7uRP7i-l.͉;뒴~Vdƈ8ޙYޅApㄊ^ +wC? F5tK R3qa3EL,xQ#ۅxx.^ڥa3@oFU u? <=O&ӜI?t Ɇ2\nfmzwUX' +P&[ +)ܵոӒ$w=ՉNsm4afzB+L3h]'=:Zž_W +$(SMli9r&bjtȑ*bǬt67'ύc[Qt|FjTo=#eO #Lk, RF,dN˖'$YIaAM/iqho/̏ruv,scSsmK0S$]'Jd;gh.90b< | e4qau ҶO JuHeL>_`D#5֘S)aU-OѓG*BqӢ/3ZaPw _}MYmѶahd*\! 74,ty2By;Qnι3*ë>˦WB=&MY4OȲ.%!dYdcaqaM6F"r;|R4kk9wǮrOFss'=!k@uN}rfb:giMn_0aK䷓>OZi@ =:BGxH4۽@nGAk˖8ys͑cJ +)=_i l}ogs7ȑ=˜PQX?RdJME6nc'#m]EP4 76Og1TzEWQ?}E u^Ꮤ'>7*.6}6s^6VcΙ^Y__V)Y5,漈ݥ''RU s۵1'f#z}ʚC(;/ͦƿXkAjB7`maWǙЌ)SN' @#h;ӂ)|'cek^.%gAtuoFMe/6]\6@ʩ#@.{J#lM0@ݬjbOMBŇ$QA?;пW2T%a4ED1јdCտ'킡y!\{A5gXkOHXS9ΐc]a?xݶKG]cA%C#2k|܁Y&F:nZL *tGBv!-' ^yș?)m" F>K=vfMp*pr c;5H3dMsIӗ By>܊ %ߋ\}̆>99O&cpKL*@^u[Z#@⸆bW @a[9ə^@v&![E˜MG=wHU:hpLpGБ Y+Fg)GyeG;#/ڃ\Uu⹑=r0#6xTdcl8ي4s\̝x柊 joțP?yJ+Dǹ7՜aKH(ĸf7LqϿ0& k%<,fpcAɱ>S\TacJ )po]=sNl!MU3>8[>-T9G5V8A-pOgqC+\;Y[DYqKs_v_Bhh @+݇B]EyoKw-M"Y3hHhDK+ݚ/M kjw hVK\]tYCm}Eٚv]6~@3n}X"DmbV1X6l&ߠx #3E_ߑ6}fU+,va^ȵ( +}RAO^SX=Tm!l57#'C`1]Jڀ*a.; omCZL=…Ϊo U1/0>vM~u_CC86ll2%L[{/F=|k0Zk:0Adt}Mg6 fhB=v \5$Un̅GiS̅b,JIqKR1VұuZoTS,lj$ZBxnъ[y`g3"_llWr,&/V +B'X}7g3Or>:X,5o`} vFJqo' oX98JlIxmideţs%Vvi/c/[4b`LCZ?SGÜ_G^&o!MUځ8l,*q&q2α/2T=Q;Ls, t_lΎ4oP=ۢq'^utͤ=3Gx:@ی#X L|/Hg=t7|Nд>P񨳉/5Q\Uu( cwomm5/ q01 8/my]d^ l'wsؚC͙L A6fs/$f钠}Ѷ^Ca/t =l<0G Є4 r[* >7\H{vhZvP1BQ0TľyX!,+b (#@}x5o1.;RhrpPL8C_m οwhfr*qh1=b:^q9,)=CN o'iOϨ(6YQI\D@owG*za[dx&iEΚVȝ8\!!sց=hw z\R^VlI[Q裩ˠЯ;6p@I@Xce{IlAhLӾG}d3/&X[}?f =OtUQ𥨱rw_c^]oxf3&nϝ͗O1cm@n@RE%w|]"͹V +,(!fpBk=hs" 1$ѥzܾ>9*n߹'zp +1'w@ra1 7XplЗ7݌0wRbn}7$_KHћoLGt9D4dK)u S&̍c^;Ox )M_,MZWa\NLO Ĭ*[Vm\=,|f\t$_xKph2i6}-gŦmHr32nHdOր;SA}`K)`dM 4X\$5hՆ g l5)c$'4֋{Y3Vau[{2\˓QM78)6@tWTr w 9Xݏ=} g-j O_f x)<`/~tdˌS%.X%85ΖAg .<~n),-̯ێ)(w&qA@F3 a}"V>l@?fs#"/~ʮ4z]nI>y3 &y2::pY xxe R2$Q:gjzU]Y]s~v8U1AGۣ)=' +P\-mXvHmթN*+q)[1qt6iȰ.v +|9U}ER3>>Vdwd!Ǧ2n/q]% ]pTFg:,8^%)U2&&t؅tvmqv,,|!Z?4C-%`=}f/ڳrqCy,y^G)nEh(wgnѪ@ɞp"|P[^Y3N趯Wvp)}hE&&pxq@4 g3"6(yޯ5'u6c(m @'l ^Tl*ܺ%nV( 2ҡNT/8+j'&u>a3n4?Ԥ_ P3DQGE"^Oyn#!U␪o~u[ˉ6Ƨ{TϵFoSt6@WaSAi2lV|_1Fucc5ED/1!M{ :E5%e~g_P3**-Ns={krW+7Dc`qzN54vqВbmjCÈPj4^'e!P>hp6< 6w΋>6:i[M'UQ_7SvEotK)̠iŬYٚXM_M}G5yHD2d,d`%zn[_at|{/nלgsV O\ k@sIs n0F]n%ߢY ]@4ONu+qBGtC&)@U70`E5ti@H6x uG]iOz|yqNBnqp6vNShhL +.wRnhUH""ݙ̶<b Pν'`̲u +fڊdؤ6x{nC=);%Mje +[mc]<䉞W7G[lu;0졳\ llA7&=#%ЄE^L +{06.X'=ڙF8:q?r/a3D3URu7(~3xF7GJ=1cz)?ʓlZ5/>iɡ*^{o|VR"]k-ǒ(v$F|vܞ\ }j-!EI/u8ěnǣj )IN)P+dB?#fB*j9A]lo򙝟Gc_5:t|H+:^TD:ahox2q"!˹T-HO=VF|H;$\ڄ+޻>fvp$C9Q|L|xJdUuB[{?Q ו`DRe220}{tpA$-D(z#+K>XIll% +hA|' $$J*hD[ƫ2LưaB:3ڄYYtQs`k{.N{!ι3< ".X] &WeQgEw)(!s#+ +kf䏸O*&L7=Nw/Ș6wę;'sHuқB"x"ڱqouG* .خ!5%3̋YlZjJgs@uiU候4Gb:B+J}>*W<7|tiBڴ࿒9{m$L.T hh6n2[h 4A8S +6RMGN"OS¢h8bp}nWpegZf8k] VO]>T8Y@YnvJVs E! Qb,R'"\N*i?ec'cYнlFН @]XHlTP }]IX=HULm]^1Lxϱӽix"R_3sE3CEZMkI1څ֖NXGהwcI"1+\sϥuOoA0ËX-_̝B/yhO;`:`5̋Фf(x:+eCxN@:w<߬h NޝGpvudX&5*,Hl 3^D5:?@N.YNi؅4:z&> z`m43KDw|йNd|4K2(((Ng> +'|=и4:O%>00l#8΅ep2r<.oaBuIԟ9¶ˁ ^O;74vw;qVUI)'(`pi._QX]@ 0“׉KʟMkhghX@@Edl0uń|޻=a!GfR;Շ*l>'e>>[Y ;ܡj=y1x"48\iy '(ji,!sT]>7Ylt4^<=TUYnj np@.48uR^ka{1)MƬq7tS A:?Z芦!(4[wl2ˍsf Bܠs22 +y]pnXh{\J萭= l>wN3xٴyȡ :.`1'!aH>dI :541`iǴK^ԙȅצ;$3unEZ u8,bu%+h2#pO$3BgЭ K@{=Dq2FOiˎ~#yz(:k"qtbMqS @߬bLY%kٲoahag./{3?akPNwE5QKQCkzmj En͟>I18 ЁMf\ULq9_".~P>FBѩmoB.o(f(H*@Գ C >,M{< qEA{qcduwA/b8._t;s-Dx&Z:6ZyJХW]v"DHtfi3s.L HF[aJgZGgctìجL'.I7_uKS ILf6rΨ5m+ѕR'CLY/C>_Gbд=ξ[10<.;rGMdCrsojmVGUN&SɃM㝕9fe`=t+a/ LzKgO> `2>[ +/z8Fj=Z%Օ y蓋I!v8>1ϯtŷ# 'őz:;WC"&NvIbT*op SWswj).2&N8vU0%~^KQ;.CV: N!9T;,SI+[ghwB2IϴZBlaL74 Nt?rg-Bhq}B3Q},FN[ds$X4\M&贴G]hʮSF$@C +L%إW/L*.gBǔ +nX<²،Z3+zhw7Z3ik^])Ou\k:>Q.vjX +}w񇗿:^vNДp +i @OZz%(Db.hfۢl Nԝ޾[v[wIUk3ek!rU 7G{}ouY{Y B!k'YiF]R3G7׉u1KNz=IUpNp4墽z22z/ a׵>Ѧ3h7&Gv%(o(^ n4WL,ݥvؐhkVXm/lp7"ڣK. GwusMIDx)[!OM*Rh\ SG5gWcXL +@nm\txW~"ۑt/B~h TFhYs4#w $X=ӎ"tfgڷ\*T+Ypp%l:G|?:őLlԯG:*аg]Ey)NtVPk͉]Nq:2$lLy$ˬ&p|z&LcȔ<3&̂h2;ېY6h9D^Jl 6m-zr%awjhQ 2ݼHzF]2rgHtT409u\ol!@_zG>|LurQ;ϼ?ieM+ήѬa(yq&ӛL@߰r0>sfʉ*a4_ E"h1w lů__˶j<)l +2N!ސ>g3`h6XI 5i>GQ^!W[y$PX^/tѶE֏ɩ~c^fl%=,hU]3XQV9[4_^1t6H: +s@zGŮv~bM0݌HnccIX%Ϫ#;XZJM&m20D<8ccZ%|Y!8+ t 266h!2 kJ.C܋sDfyn0VЧ9_9t05Hh5oKgd5z`Q͕ty&Ljhh"Qp`M +*7rh[lMFyloa#+u4v i}2:k ,, HM=$]ΛVGvhq9h=jf9@K|ПzdtW|~‰ݞ=u};X$7<*^p'v2iPcZsX<@ Tꖀ>C8FWj0~!"Lm P,|XL +d[IsVO| M7=z=9[>*,^w`9ub@uFT%,XUzgL|_ksȩU)}WQus@3eXd`) /caXf)Qq > m\CiJd]Y8;3V"[1,_}<!Y`?᬴o:8p~D֗Fx,'Џw<4/|F?i5S?D e, 4y5[p4!] HxywDe>Φ4$9D{i1X$ύ.gHǙT\LӞpE"nכG3يS3鵓ΰq ,|gR'˝0g,mt߹߷7rS?h>X $f585Y"6t$f{ֻ/Yt8e($˰m͗>!S% טy>~&z>T@}}7|@G; gEMc(1/hXr$y)y604Ad:tfBM7Mhiz^_+:s*:_WLR/46lwo14j/KDT pApdwZBYbxn0qNuD>DZWZ'=r:B Oi I@o4pfpa…mNn@ƨD(O(=~.āӚdƝ+gξyt`oplp3@S&,; \ @sNJ*pτL>͌;@Fͽ@93SVōZ }KA7-~C~T5>zT>FD .v!i TS]11wP-Πa]gU_.ej54ڙ#8tnϕYNHhnh' t!KL,A3 TЬ0_wf']r`-`&^rlS KnFQ*Zk@<8;cT1H[yfx=WNl] j g]_xgu#1J{(K7"3R[wUBB3Ӳ ~@(bv࢒"aTwշ:'ϖ)҂CtOR^3L܌saefT%BMGė)-!|J{q[+QoՉaaJrgk/yat 'd[9,֌#7Em< 9A۠5u%\vbO>Wp]b3ZVL `'7 tIȦ3uH1Y~v335OZ3Ǡy^8gNl0s 1w1\׳R_8_z&FlFw}b,'7ni?V-, "'P w)^ +3~&h}t{A8Wap|2P 6]Ҵ gEY +$nrmpj3җ,U{q{hx"fJ*kfy"xJEBtUSRR"#<ѯg/};XNsYbVZ[E;*vԙ9g#wT+SY QPr>ʙ)Gfj|9b :C)r|k1h!n̰^QDSőwmfyT)3P+)\"f\KqW;t.-z.~CIzr%V1RI_ܑ%/Յ˲4Uhr.=o MG'Z >-(Цu.Kiv[@++Ȝ[yrEF %adH'd3IVfTPk^u>ĚD#L=5G-䍅-]v߽`$ `%XےYMhTZo?EpG6 Kgf0H C&Z>s?%^eT.P[@@͔eVFLrB?+C C]N`By7yRI0@6x#uNۭb@ˋ&/F 1^ADuy}mwnnEPD˯1g43 +\ĪټG*k~ȑp~iF7x9=y60z(HqNfVC0_(F iY\jHpX_} +#z9;sL`=^'vIJSta NP8`2O"#8MX9~Lܹ:_*UDL,Kt֯eodkKUȃ*%l!=}_nٍ%"t +ƴe3)<`)."iFH{ fsp]VfB;8'$e'9ي h*';f[b&aNw&A>߼iwr#_ٱ4()'J8u)A3@fhx:H4woP+x sP3n\N}#ܦ>ّEjEvxT.x`D;7!4I|\;|?Bɬums Zg)EH*jV\!>F/#B)A.af!',9NF99*/,$* MM6xԁޅ(6u`V@I"XoU݊qZTkH*lפb[3]s8XMh>bYS)aZrao\ 0M$MfHM/@{8p\33RaP%U8`\(984 Ml^_r|ez32n\<r:Q<\p@ΜvCUh%IYL-Ljڊ3dg[|Jim@Lھ]ɧ?MgO}b5ksQj2K3v?ƛp5q8{cGw^{& C3Ωܙ nz^e0H&v v% N{gYK'k&Wh?ާ{wޟ+*:Ή\q@5ǂLm2Y3~RQRaW4y&[EŝlK-g[zvذ=*O035m鹑5ւ^aW @p9Is/d]Tgk+wǺi!OGAjUV>psO|Y۩bL=57. }KYXV'x,ϒe3 D:llp6)Y H4Ҩ#˥H:GwEmZ;ѹVj Gyz}Ys95nzJ {rP#-|h`Ȼi sC¸l]h] ;H[ 8&rAt"\%|?.ș+h,ļU+\ɍC%N8Y,eQ 3j)q4 I\@`4v;aB9fOظ;xs2˵|S}8؜s@ +n_O"T#9mvM?,hBabtu.0ma:=XrxAXbC,F|r}_ +Kd4QuErCtgNT0@G0pHwbx R~>a*20Ls@(ƒFV(T'2 [j @FH)>%un}c:V`56Z}jeՆNVe|[`fi3h2(kJ>GN-:f2(鶸]9՚wz\ Re ^,ᕾ|Hakfd 6":ֶr _;uvcpL\0ɇ2W@MYx w3{Fj#5H+G!Ga ;O_D_jdJ.1Zp( {gLiQoÊ}er&p|%M#hk w6GF茘dAb@ftʼn@nN8yͰrj̀E?.[6^AD4.$ ״Y Zm쒃0ٞPYwpU Ȕ5H3Ut/H{8#F54#cSҌx8dy^#bop]? qbp5dH^3kli %3}<( C2)1FLimDrS&ZKOu0_V}mP(6T9L32[0۪0֙m ] VX ,~D|LBr=3%/N8˕`aFP}^4)mg A_Vh0ǫAjUdʖ%qx vJā`Pߊ@̼'bmo7/~16km 9dB{nͷ9,l-} JT6KfwSMQeooT?C+`% : +t⾩4{k }[ 1v+ '.=#N? +#tH{%^FЙf+!eapD߾sZSȱ攄"׃Ki)- +dc|t'3?w${A D !r a4?MhS۴97:[ lcwȏ3@32ۚLr45=fpu[QhrFEF;ן9 4hMlqaM}w#E g/{լxDAٕmk#8+ yI 63(,lg8?C#D:7hmIA6z06/=e+>.EU&L̄j\ob:fIe)zWxj N#xNMԌQ + 9,]<Uw4^ +t!0+ʘ3ssrEePM9A@݀Lё%ϖ˴-8cL+cquX26 ϴ!ʤ=/k·WNGs%CGV\\1,羅?WlWy|hS6Yqsk\!Gqo;b{wBǢ{ַ_^x]fӖ^'[0˴I쌊15'L8/&3fűw*lkb2 +OPAʠ;UZ¾{T/5}N  o{ch{;7lf7;J9\hJ4s%D8 ,Lr`"U"; S94)Շ_sl1s0<ѡ"g 48{'FѲFy݂^^U̠K%ҟwYBL^@ޟJAv}S G +Ym$s#Lsg3rֽUe8x./A jbCQ,]կd/}8h/!2ƅpag h{Lk)!G쥞ؽ "Ҹ{hy}c}10ИC pjX`W<7iDٴ".fRhpҊ>j$m=eG80$*c2"Lf(_%_WTC@"6G~t0L!!4B0JchV#%dwLuT_48 i29DʟAw,NRR5ӂe- <0M6.ywi&F y+/4en &]7tSRSQ!HǵtGswT%F'@jY~ŭk@~RhӱH򭬃Uk3/ɏN!\_h6йkgiZjbJaͷ֟46d-SEB sd=^8&6Xg_ѯ@_ѵk!LNM߯خOΫ\û&i3 QrЈuJGg&<+X}60 :#vXN)e_VDq)sBQ;\if:~`z~xQJ8f&B9mqE8[?M-穎{$yC)B2yX.5t DKM :\^c ŤlsȁS_+0?G`K0ω>^*Ftk2_]q^ ċ)Ȟ+!l# + @5>. ģ/LYX,o<7/Z\2供ęi\NRƕ~54%N.zq[Ke>;.lܒ mev]&xϭރQ1{Mۺ@cſJ1&-3sO4VrjZym4Q7"}X- U?d/8P5f{M}k""g iT4FaVuߪ Y(,NTI]Vf؏֦ts|sWsWPW:vU[BM{Wka2~g*O5솻qL7%B$w Y 6͠Vd *UʰNPB52V+ YN(lƇhc7`q"JR~4\w .-I=Z& l4 4dʼn҅^c(Q!qgԓ֘Φ8{șY r `/EWB"nY{ t)3B S:u'o2| ؉)"tF%2ʱ4*P3 P纺<"Պ-f;*6F!~+;7Hʚ Y0!I- %yGm !Dح̵vo rBmoTAwIPcHnʒieVr&GrA+(Ǜ$j~.~ +1Jᢢ 4Qs\Yw7tfk?|8?3¯rӓjLYلڜ? TsWϼzo`Zs_=(b'5]J.rͳ_Pҳ+93&.ܮ{Ѕ,+1 cyN5QZ-"c)6"Qt( Hk&VpnyTZ.+Zqs#H\r^Hz/#h UzUZh˟.sC5V6O=6mDOxrCVNч"F\(@+F8$p506&v<_l1+m\j2}а o\ЌwS?wpoycoꛇiܟ>VqwJd +#J\wOF*QBq `fQ-`NarZmk ]/_8ġ0f]+HBy'-- wӹ`BbFbm^$3ht||r/~BXmqf}C:s:Qh1L*'`!ꗡV_MpAJ7-$'Zǜ#ګŗtv2rs0lюQvBbv +,+&љK@=Pn>ɭvviU] qж +‰kw4 Ǜ5=wӯږϊ_r[6dd|OYG6L7ȵ #Զv7LlcPiX&n +SM NU`cWH_;TΤM9r0CUCw6Ti+ްhuyX|Z?)7Ih[,{h @.KL+ƐWK3Wv(=wbwoD}OcDIBӼlc 1>JF\mmV8}2)V"N=t,֗^4uR6 CNA3C+71%Ъi9B웹箅?JA+59Y:LfՖ9wmL~e@k*&2t0O-ߣjpyg5):'@mAV/Y9ggA+ N5iXk . 9jP +h 7DG׋r)9,^9ZPU˞5&A_\W~]v٤.v<h@Ɏ܅c4sQ~S-D?Rw[>M{a?` f~鲙SMJVUۀ'5m&>+{fBRWe+ܓHtQ߉(vGx@Zue.[mA]<ԾA[eboj-'lǵfFk וg߱:U:#?Ntyu5n4V&2\ @S+i紡"uhL<17)QK@-8R] ĦkW)hd4UDpQn,r|fpKatkXFk%{0s X=5F +d׎/&{8y6f*uF)W Z9r^/k,|IDUs$ZtQ@2,D^άCXuֲ[?[2ln>@L[J!` axL M +c~c?#A'_0MYeE(2LG MΖP N~eOy!ke[fBrK#_>ZN^B{,vv' \bV8>jB]qHhj%'ҝ ɳY>Sf +ꜬC5@}q* K.AgA$4 /1<5 rc>>#}*GZ#N_!zDVF0UDŠX4VyVDf]ѷmSsJ%z]Jlޢ`&z';̼&qS8,[8. j.WHГ&@G\XR@8h_3sf<<l_zb;2q0I+h~5Ep}OW9_fHS0b.Н㫳ܻ8琡3NY}(y%)K23J ˑB~sVg(*:78`lwy. 1[gh -J?WcI/'ͧ=cSCTi"ixb8"Lk6MW^TU @ӡk2`$htTMA=4E8ϞgnUr='_/V,GKX'O Xf7`B,i!ob۔Sl}EBU^)t}2$S}Vkqh4 =ӗ|}X̒N٨83atkedO)Zzb̼DD@3 F@Նik3q&N d* +Qϱ14 +@rD1NR|pG28J9 ?>E8!fhT='ZKIŬ8wr,N7MD +@yk@r>6gJY :sBQd \kGFSzO6F +=BE|ɾ3t~_*%Kl!q{'|FVIDt2Z AS"{TpkfNo_,fSҾRi_1yuZAø1 _/xu>SгrDܙ4i'Z;%:NK@# +޼k}͜ zUO qm't;'hg@  .CgjPJ/>^@U:#?^?ގn}opdLIw#l@Uw͏ktG,ƣ֋q$;nsA* V_Yޒ<f`!#򑍌k(]Mv}ڢ98p32ElaoUp[&gP(GxK|q:PU 3>G\g-1HɦƺS016=xCy64n]fŔz/Is|p[j8,"c[e`uY逛&]V-uQOlI,gI8|k(^"Hw"܌9ďhjV4i #vks=>I&¨AIQLfŊDI9Y9hL<.IU+кع'}KتKEOAgV:{u0*lj~v5F*B@+54s4R;kiR]3xs7`h-@sRjQOjZ&>'hM܉Xpn;V-?;~lu]3 \Oc/@L%r|Q|ǔFܛ[V)y)>]Tk<pDk.開%In[[{r\8ȲJ 7+ֳV/Mg9(HEɌz26X.1e_ AdꭣydV+\[ҁZвй`B0%)& :WwիHxqtDn'ȟU^hENx؝zT/0~p5!ζPo;&Q- (=d}KZ}nPn +'xkZ! @QǍ=ďYsJ"1n ѦѦ\,9i(7%yT+&܌vQMgc''`lw>Ā*y|͐gғЗb5\L.̽.䌎j<,[h +&ohg@?#GJ:4^ Է8OQszEة?=}8J3X^Z4$9Nj~Er-`֋kpr-: ,9BT{1|MDī6?^+CS#X[E.4 y4y583 |D"a?ݏ1lƿ~:HQl>:Q|Y[4ZbxCcB +t#AV=՝p4V|,84Y 3 7}ۙ ! ,@m +?.+*эk: NүXdJ]&Z1>wkb 6LZ şX瘛/h/9Q70yR+rmf8:7L-Sa*Qѿ{?tC3F|!PU4KAJWx: dZ>c.-K1r tPIxYa Һ_Psn#}ٟ*jh+rRQEd&OFi܂:*^==f*k + N\?ޢ̏˓mؕz Xݺȓ"g9 +E5 W nhUټ9Qryܣ,a-ڊʰ>~p5tdY~R@m2`ZV6S<_%\ 5zb{blx[ʹ[nE4VQfz#W6Ǯ6+GE۠48L3jf~5]s'0`lw8 ,r$3_xv.y>5/~Yj/dNnG+o'+2yUg6RCfq<Pl޻ǾGy@)hc<gwEL|rFY!Hz~ymEV?֭J^ǣcQ]/}{ -:7ࠁ\ށHsb klM}7._企bm>Ftel=@˕'NK!Uװ3oh2"cd(}ZhS |3R𱓱DL2V.?uɡ3l7dmhh\+l@'0fBK zFse>UA6 Y8O2wG$ܹ*IѦ#-b/0k @jog5}^xY^& _N8/0i!֦d/ ʫ,ãq^>v&AҹA_ 1U \}v(6P`.dܣ$pfdeˉGma=ii YU5f wS?-]&[~ +Nd\ov_|W24BwӨ4:sngFQ4"^ZUyy1[p7FcW.rccg_dnC O)bɍc4c l3jIra"1>w-$d, +Oi-Bd"覈@?|R̘!/n efY J'j܆D׊I hQ upsj#Grx@\#NVMuʌ2LTg +ޔ|xpJ܃iQ L)@? ~Țk,Le-;bc J +I!6q1wQ?ADFhg` @4gV ZWH0,8°waL`ž{Zj Vf)d4αpgAuFiL yy bZƩ~,SA=S;Wu{:1 E=ct~B夁>T'iJ + c3 D%}k*&TkjlcieQ=1`KljNlw}~=X#mcg`1DZ+0}U=~ bh6Pۿ[&"!Ȧ9.X˩#R L,.[けAG a@9_K2N"_bAW':?ݟͨ"T{2+C-OhTEJgKTH`Z [TXmїNܝha[w໧Ob8.*WRE)9'_YX+w r1 ΈF̬4ƙx0X!f/ASpѵp" =޵xO] ; +E'@W!R=+ ٺu +,ōG7ޒxsZbSu+Ks85>cتWċ+}`0َ|4E^2h8h(t/bHkJAxOS3i,meE4E1L- TԫDTj&fIA企hB3'HV@;WHu@WKNS* ISIS07>ǿ 4™2L'/e wtox Bq6瓴&Ε?VbT"Χxj:o0f(<] _7}_C7i722YIp N֛n\m:qGpWuũbi㒋Gp@[=@eά@'fFDns+ܺ&f= $=3Ư"5 NUCּE({$:h|ӟf +'96xG{Cǡg 4u܃QbXDE=hItKswp2C7aCv,r$8r7de40ckx*oϢ/@Ha}n.,4(l9?w!uA\wIƒ'O@syUCFdVkLpi9AFCn# 4d_phw?]8R0tM [X3m:%f>:DhBʹ4VϪ9Yv%F=3UUp{uC #{.=sGX8n #}ڐ%j}<@XȆЌV^$j$(~ӭDZoX= +EUtF-g"xJI?39rd7Ђd-Ny߉vL`.ワpu4{Ih@/kL 3[%*&w_G3eOv& >g1ȌSmQzė; Mkl&聁!Xgۣq <-[@v^E-lLF/ dSCt  }1zGW2m{FI*C`Ӿuvyc <'4I|&Z`u"2׹ +Ao\"fqΈ[{>U"Q@|P@Do閁@O' `yzw+>:&My'2D yc WhXyn쟦H- +0 +~/^N_tӝp'SeAsYv~pOlܺfW|]g 6=-'@\<|T8 )5ЗQљ~&02Jt!5tnvے-[э;5C3d$h!4qA O }Dzmp[GGiE?㚧R$\8Y*QrauR![>O*}EwaV1Qa@+ 9t6/B?aJkXTC脕GVz_:"1\8݂̐FiQ柏Vgi>Sڴ3cTz-70& +@o u3tXzvjGE3_Y'㙳bzZ>797.,D=`Y>6f^]U񰓅ErRq`٠~$grF%ןt' א`3m1k>g/8 L38Qd6t.&'D&‫veSZezt&lhБkaĹ5>bqqtK5 +Ě  "{(LheٺŬSN_Pj=:s5h*X%^7[YhJn[ghE@Fdo0zn,(%#CJnLs{e`k 1|KJg۟'L*y91\%Hm>gɚ-G껐cزta}3*wJ9+~iԵ^x-"U?=*zP95UdZ$ @ #AsA+c1h\Q6^=]ѡ>n#1b#/IT7qFLVA bY@\/Ӹg|yoQO,r=;2yr&D =o4", rN;h*L?8,C7V<2r8hDW~Ќ= wP6(`'C#q+'W7ᰱ2b{£bD@͞rܐ J=||2Oh0oIl,1Gʏs1V׏jh@j<lԯב4WsBv 4pt@#2~:b E 'ί6 6 ږyF}O=M7DlNDo!W* =ޭR8GlDCgj§ډҙ(sM""ݪEm≫D#_休[^G X¬`Ч YCk=WL?$PjF^TO*[lY };c +jRh@fx@,ؙVE0,MLIVc;m5}fscikQ[U)L-S9)aAah,`ia J|x3>0a;hN 9ݫpz_~UOo`h /Y?WէL*:r4 kSo[sJg=h,·1Y;^bb>ϋؑYPqBC|^NV2h+&@9j;Bah hj\" .4g \yS*}!rICxsJ851 qHٔ > IA2^ ]MzuYej6DB3L3Enq0^@lG\52 :te9~`3d|)U 'tq輁<5%p>u\gSۚŞS kog0ʺ@jǛZ~Q͍ҽ+WEg6@zw-pd-3V*-Z +mJſUMF6ȋC NU0y{?tCbzF&1|5aeЍfܖ|7xZ'kpЏk*B \+##Vu<+mzg@cOf`aC߿S/tZ[rz<>ujO JڢIAS:5FesΎj$D $v6--jQOjh\JmT`o%ܜ6Z~(!@XLW=s3}MMM4Bt;mBAlg4O0;B5tLj܈ tf`W-`"g sT[4pg'ӑm/H+<<~s*6\a:i3HVLƋád9 ILfܹA `AP:1nCa:r YF۳4u0k -sSt+ߌ]gk_k,Іu'4 MAѧ:}|pBud \[20#LRd,uէ 3$?t72~&~@^@Ogl{T5b,X93<7־&_Z7n1Ҝ 𽁄/2{wbC??/zq4E"h:3 +%庪}YE>@,=O lGBm^f3 +YΩ>=WC)isC6 X V5/jx؉!5f_ӓLgc5zUHMvԞb;6nh1Z χ/||ww6{pBL'b 1FE DQ͍e=&p yF7q>fi||/܁#ЗWSF~5G.;3dNEpQTP;m k x-BVl%W":_o>sDOGkO ܚ1-jSyj4M3L,DkafB5%y5:u 3$^'5X!<FP5;43"Q3&$e4FuϋWx-Kѕp89%tw@_>v՟d% +a6]E'hF"}M7r\/~=xs8#{>zRƍd =f7~ѯdvX:+NSQaז˛"qO[[o7z;Qߍk+ȲU*w`1`OMT?:qt vʗQG3=)rqe|j]<* ʓr`@9IO9j[\3ChPZE{Qy2!˻fNf˟CN鯊?/^ZHG1~9ʌED3БX =?Q+2>[[G4iXbCC(~~Sm{hqa.{Z?n2P<oW'H05ѣg1rx,#:d@9xvOQϜG#p+kpd 8$h.^槛,j1o$r*4YaT)\Qhll#;HT\> b߸| ̀F֩rǡc%Z %'ԐZ@O~BunDve Wk\Y"1jAKAZb O<=r5kܟ-H#)XZt-w4VM4r~{:=˽RiMDxy7c>—nh`=d'N#O)[D^&V^uTؖ5G֩\W s%X\6&vVBKVdދ zli

^>_OA=3hR +cіar]>s@Jbs JsşdBWCTAO%L*u&@D縪o] tGq ۪͋4@\ 6.Qv-8{,|-QG 5w|Mc78q] rhw.fS&Қ +Wr@6o$nL<欅xȹILu*)b6īe6ΈiC8ΑPB-NX #ވҞwO~B c} 1r1?dŵUչ^Rdn4&~l'^{ݷtoZz,va~dd8M ;3 1Ӛ98QdA0ZpJ"@ӯٿ;:YR W4Ba^6"~xC %~fΙf`n>nc7z.Ж2cV[}s48u ? mѳ@q"yfi ӻ>RuD`w1=ܾ)*b|EURzb2;<ۻNn ՚_̅x]U_hH[iU]]37cZEe[EJ#qG,LfQ5L3C+7`mb9GD?o`gj]uz1ZnԸ؝C bpw[^zhy9)Z)u1Ƙ:=Q1{C'!,G=ҫi f݆ؕ|/ )mWp5Fb֎ 3WE+Y@lWڙbЗ H 6@g3l(d<賣oe;dh֌ntYf걂fֶM[vBrp},fݜ-Q2̃g~=Pv4sBoQ}Y,uq6& .4~کj6t\tV r<oj!4i~\{:V@o ?i 0y+jZq煿<:LBs{۷~=Co {xӿz4\?;}7r|Z"ݚfy +?<Uhd`Px+p;{|ȏgesDs^w+@-}Wʰ`z).> y.LHtL pG'"R#Z +M!yEyLm:9w_FjR( h\Sj' O\V5VE'(;X@^+kѡ c$zVlF9>ՙT0J&u~oh4Y&m̥%[(z/x¡3Wth]8@oM^\}8\$ц:5ƣNXhu^`{#^8ɧNm|\`Bk}f]Bn.KsquSŽGy:p $Sz oplf> +я$nf Բh1 5ɖaSefÐlN}k +#OL `l fCWdsB˖vuZ}@ &'rCbQ(yn@;vZ~FwL>f2C +t,ޕRUW97&6!h_)r=@`䜫z7:8fCd xODGŽO"浏(WMuA]^;خO ?vN4O~n-7X +?uO]z 9t˙Zu;a|04IkɻR XFQ4\u{GnWpZJ* /Ђ$,vDXSx: ŨVdPTOkໃlAh⯃޽t7¦ʉ/?ŝI@sF#G/Qg]-:ߵj}yw:D4*^

ګΘ3PRcUÝ<Gu{5dK}rO[@3{;˨݌RKT^$`Yrìnp-?nZL}UɊ:FC-5)N+dP)~}.uiJf>0o]㓖n*xn(2 L7f#'\9(\yܵ\O*h2ḽ>8/O8Z*iB%OI|k_!M$e%FkD4vw}^tS6tcvnt'F3l6r*YʖY[v 5٢\:Z-v p9h~6ȟǷX&twJv[k"w z}?/Sף`^|0pe j*a(9̆h +#@K_PVӗɜg!OWzF쫐ZUubNuzA]{(z%^?D>Ioc1erO!"5=wh|}-hS VL&!/"y4Xu١~[V]B ѳ~C8l0DH%e%Y*,yFmClG~à>0V7˗n>IwyS4hq 'Qkf 3>U}o*-6t `@b*R@&<._@iPD+D6tͳ˚ RO"ƫ@e'aǜ%O -.zO!L%]8xt(q޶|eY77rv1= xWхIkG1 o:!)MݡgɸLK>WSQu̝CX1ЋY^Dv,!*}EL;j/zU)sCUN" @rO!Ɨ{8n: Đhjk+&pqIbۘJJ*n$ \ LfK -r4M'шTPTpa;w}~,3[A̱ ?bsodZ +9k^3׃b܀eꅛZMxtv͵bg_l7.u灺Ijį_ů]3`SV/-1|@sMBIh^KlI^q9&$W)Ú^n9&Þ[QFڴ6js;1#}x}<ʊKONhU w՞3 ^.eNRe>Po7ӝu$h;2jw |A#HjX +@Ö.~ Ch M?3竷o[JvpU4}fo4a} _տɯE;Ƭ; Ğ@ *(s +K (9Z8r𥈷|c9(G]Dǘ03B`kQAUh#}.~pl#mRqѸ`teu|@ lrn,x^T:K wSJ @+[@_'_}p;6Wid0p`#vXc,Âeĸ3QE?&y}nrL9<,y=A44w]@,>Z}c\1j_ YVHZ Ƃ.Qa A{.Z`a 9Y`jA*J5.[*^U%Ƒmg0=sٿx?˂yԉ3 gPf>Of/k[;Wh@^uՐIuelt[^k4w[y gǓ^)}PlRʛ~b@? Pi< ybgz[{..!XMS_ցQY Y~4rQi@8X@;ygNFi^@Ǟ!}4 \;y'Dg$X [o. }! ti +fUfW 'y[lCدRz-W럿)__QG\JDA:EYJ]3D+z6lˁWqT91btVp;NC_Wzg|b{]-^h$[#DŽ/؆El nyEoMGfKYmNgɲ,p2V ?lV[cq Ko,7S¤XNbZly\39͎kVzl{wk+49jlNgneUbRl"#v rd +vpfhĀAY79z&-`QMfGɢ${o/t8EnVx}7z @K (LkeO1sݣL. ZJ<3-P:Vy S ³M/6o7*fYxI*6 ^rg!. ԉ /x@A@E &!9VoߍB!J8>ߤcH"dx'jGɧm$k Uy< Gv .TOc3fP֦ATnTgGr{ZTtS荟'ivXNo`RDek s[=$flRhd ^0SjQe[tՊźn&]qUBNj12G]!m/U6Di:l_@ϹhK{dXДmIjc@ al%E{&mhE2AmsDi?q{14!0}̯Mvۇs_4 ԟyhXsLE4GN@[NYmG[s"6ɫ6 -ae-M'A +u;+v7O^,@_OؙG @#lqX +h^gǺu_+# ~ 3h±#.zr͘!;Z.~CՂԫӒC*7aS31^H@d٬#{KT[O׫hW<{Qh;uH"'A>#e]GF9 8eGV t "wpY9_;8]JȆ|!DoӃZ [5 +Nhtێ516ŗ%\Zͥ@3h4 /Oӊ^#ٟ⠌4wtx)˂{ˢGGzeWd7*vJ-n|FμI[ hy.)qu5:}vq6I`ň!qpP4ekfAӂt'Jd0Rpw!SU_ Y@aHflNVArZ _;`w֍ dꨋO}<٤̲UI#V*y EֻH^{ʖJ:4`0bFZ8)JT KKC} _'u~z/<哫v䢬J+:QW\LD +YHVzP{y+J6v?n_<%e… BloxEo/tfCΤ~);SU-wȋb. Yv=cB>:vyĝER"5ZvyM /WHl {w]+}[]A})jZ$`޴{dnţd>!/Xᚄ j1roɳHVb]͘&OÑ<׺m$; = +q;x=˨򠎦N0@7#^ٲTgRxے ZIiy|oLI3j7{YGGRo]ɌY1%3 IxzZM4\T(6,ڈ fVCwbfzzbeBj.fPbJò+"sNMzy88#wިuOzEr馤 YڍJ1]"27[Q8Oݻ-6$~'—MU#/;~c^8iXFcA+xɨBډ +jC~cvqߝe kUcbRĺ?)MIijlt?9F+|,U|JKJ.Nq0G#H7eN_g}E+[P]|/gH#| '(+8T,cg5u ZY+t_Ab&\16+AiXرxtG}b7ݔ": !} +9h'Q(}1Z5]s\&#P⌡VʌR<3l\VG ' ϫV/Ζq%/06 Ro sQ7#qs%䌘2@#ZϔYK}-8U7A|NhB%M5evoOu + X6/) u&sAwXdH}nѳ&2-OVha9B,6N֐WQ8/E]}[p@AEo|  +~EzhT68aC9 uy$OεZңl%p9!~Cq0nnȑYKmTxw&l$-K[|W4^B)o4%4{{m8VDyC) N?8j!Za(-̩`V9k/cf;~uwݥ2?8a؋Xq4Zv=.iyNad7x{IjLZ^EF;U.) s!>K"S`W u7 7rykoj,A h\Cu8sH*;T*ID*Lyo_4(7@+Q+Y:j79A +A~n.{r.r*, 6>1>w/?ov +SzYAtvJv7z;^f9Fug]߮RPf>\J; o-3[7v 7[o˺mMޔa>cdV{O{~^_%+vpnI/mId5bǔwSy]oA,kH\Ѣ63M51٥TE>1lP=;g+#|•N4hHrsпaZ@ Ek?b={Kbs>ޖp(Ld^>}idzE aHVTT)}0zpvq"'W HeYh"a 4,g Sao^-Q,{e(8Zf]-;6_?@X]E7u%V8lOJxкE_Z2w`/H-W7#g(2~!iaG{.TcH1ewBTLtK4Jnrzylӑ.L`Wg\&xҁFl{4=ct^WuA?XsLH,dkL-eRY\`$f0^+6Oب^fXkOW}}p+З4Yf<S‘5٨y-3fN5fevQHՁ;0LϼavЦt]O>]JcSDëhejE6L'֓ϴnں]h` a.fÌ "h7hO&}=/@E/Xw̖hV%ӻ;('ah.6vou[NM}X]/tZZIԊ?+'rb/4O[n;ܦYJ [n7x:_f]5;ZYMGت%:Ndk/obX?1qH@Z ]?Z[jSnq-uթWxIvFV6jRP1D c?@Uu\ODW7}=ri]%ղYhmCȖ{^*^{\`h2R5cpFs:(.NJp=H$׏+wQSl9Y,1hV4w{ f332=HtI@Y4̰K{/}ah=(9ey%/q$3 j/2e|/`F-]_o,Ҿ,ر(υY(z/#y>q4tSlQW矨iFk]k.Yl9jCˇg40.*x="8O t 8'''߻Nnd8߉_^R\6P1sp%Mu2_''%~n2y}_En}c{G>9j4{qT#$BǪE~5D/7ҐYiR?n6ew EfkQw}ܿ~e'^Tͪ¦9yILAe^ FFg$d⌁R-k}LOm̕T#)\p/'&} VOgZ8;hy#ƒn"W/ߵ/AcOspWjN0zu_Zy2dvRZye;_S +NQЅ' @٬̰$Yn7AE0T LIn1֬w_,/D53V ˜cU-60i'BH/"Nn|-UŁS:0YYHA9] [% $mpXY2v3:p0/hStx:ݣof)&NW[Cnv_W~6-,b Α[ОeF9O]wݾ(Bڞ2z!%NSdΫEpW%?]h^t-puU'L"6zvͫ5`lNC߯7ÚQ^M2 y_0WJh` }Xj`vqU4`YOӿ|E:IoWwqn較??='M/7't ݸqSN59C.n ]{@軌иò3,8/ãKv}tc?@Zz<2|+нs-υ>|$G&TԨM=&w|zNhU(!ӝNW0w& mzX5 M5f+8zxpy&smDA~f*.@mj-ey?Q{['!4i@|ThiGY…I7 s}faC+= +8 Y4E:zaTR3LdԒa{34Y˅U*+}ӷxhAsb.>;/)L*:12tÔ 2lňh~UڿJPgIщO RYZ?hRF+YA)l|02|kAw3v +s{;? x]i. &,>ZDkώS$(l' Q2פeJU`#iUаWEZ|{/lj b{ҜK#Vp nɕ4k8_ֹ5n9!'T\{hT&n'y2ۋSH0NC8YIɳdLP sXM*QhC#ϓ܊3GL`0/Ifʷ<1 ե>X;6[) '쾇Di4)y=L@'Ѯ'@߻[ˎfѬrʲEȰj]-(`2.c+eaz˳UheN-{fy`%y&QџTY[x#^Au?ѯ~ïAQSN# u ӸMX w>Ӈmt͓ ɳ'ώ 4h9m-;e8qF= ZuӞq]t[:^߮}<­,2uEK [}('gÞi!m =?/ѡ+ $iքcΊʢ^mQNI\ +.{E'(5%3?a@DǖBʴ4>%ϭmrjDj:f{h=@X%IDͭySB:/Q@T e]2aZl R:ydOqHe wCf:z̭)yxEv,O*l|,~L.4A?C \wKld$iHm4=Bi eDrAx@h>;LCf54-[ӭ)Gn Ua:sDQwg0W_F +[3D=N;kR+]taAZfwͥ.ԝ-_W/~G[v}e;!tP7+mVvQ?^?Ǟ_4h鶁.^zs7~l|9mo-Wu +XtloP9gM@E˷k<4KEYQgRk+sw[2bH4A9&r=a{Bw#g +@-tC6=_S}K>S&ilqh>sQPześ@r +HjN`Q,pl"*qZz<`Ӌx|LAq5أCrz_#&,mT>ʪ^x:O>PeEw/3%iip}+bdh Q$Kpkq@Vjr͋׆~.@V&yrvxڤ_nfj~c$Z0Ma? G)wcf{ڸT5)q[ʒ۽1hMI27V5(?q,k/oFޣ[t27 p/ d`^ 6{=2Vλlhga_"MdQ$Zed Q~z94(VuzW619 +OB//hJ!O%$U{;r,n jC}\q8h7AtHf>I@.e ަ-~ݾh_Gf +UseI5B +m)M- +?=ux ]7ƒ?映(3;{;i.W.r@xqt\b\Re~s;$*ɥOt!tQj.1 7faV d'ր8IX8o0Pnݸ׳XHdT{8DT8!"xj,-fU?Xm=d& lvJCꞥ~Qj#3FS?7okB@E88`4ɨ[u WqX;od| nTt~8, w? +z`bV@vb_3h[ +pت]Nf޽=V!:.|hзwgX߂A tqvsx*ȟW$z?^q ;w*"+4ЋPDޗc-p0J%x 蓻ζ2E2{lx~tj}| \y.dQSfC9 +ysbszʄ6 m 0,6K]Fij@;dRѕߛ> G^!lf?6J5O7o_| +ߟ.dF􆦃Hmn=E{sS;GS_߰ZO.,ϊ;o<}@tX.v4GEH.[MThۚ҂L}|zJXF̎ƂeQ4o?ȅ\%0 Jm_ -P}O◗YX(s8()$$txK@4I6μ[x!+ \8|lx7~M' hLD<:惧w\Wz&w8n> kWc٪egY+T[Zjt˼T- 6xn8 y@Ai6xOwt7b'*g>7 k=#\7~IwQj҆4d8nd+JbT7=z.=@GK.їY)Iz;h>c7)D ;I@+[mw6xD,OǑgggKwl,;E2UL=O:D{/NhX f0 XZ^+F[3rb)jsCm[74ښClZ”=㚸dDzy{kryi~s"{=U -TTVls C?JX1B[@? c 7؄fm&D猬re/lpAg2jY8 FW-Bhc&W. +>GŪM|lNKsGhO: 'ax&K#N]U {jdvkI]/t_lOrgyG 墂[|Hgw_ڻyO4ae ScQHS>\,v̈*Ms[ze$x4Օj9na@68[?.k 3hy_gR3N GsS80@qy2:KȈ[<et"%g3Ao嚩(h7Gq +,KFVhx;oM\fNb <=7nxB%=@+mytYyhoyD`+cŞ춒i4j:5uF{aVR@VH9&Q._vY,z@C`$E[&*Ɇ@>!G%d<]`l9Μ<t郃nԚ(/h<^@3S/{~5Z'S,ف^z9~P,[?ٔrI:] @/ה $ω)?X)$keDI%84JT@a)SRQ-5kRH4K5l@x76|j9l~1>V 0Ï/_{ +I/pUF$ΞHQ'Hu <[?v [NاD RKkWdg+ >w+!^DFT埸zgJTM)SI7wd_4@"f ڑ + +ækD!K0 +kgZ̨,MlZ V}H`z(;GWΆ`MHk +n|G#'e +AJ@E233hT'tP؇_b$$g)҄-mYB[$En-z{nZTe9q^FƷ[JP ba kHU3φEzkQ0CPh/{iW]EYg@0bPs8'[4~|+qmhzms(g4_GΠ0tA +Wg, +~vcȹ \ 6nєATHcWH9Ϭ443c4U.5gv#U{$ZfوfcK&E/6qߐg_˻X(Yms`A +0\`f/_vоs߸7 دG?Vh/ݟ/Dϙyt"L4EΣg.L +hf8>њ -E +#^g8yJ]y9\T@:筅ǥm ܼyRp7nZ/dm&\dvI3etw>pz~{}/̊׎ W9NkI !iÞ}J*GEEC젲z.ozE4zBGȵB(Gns|'ڎs ++4: 1T{L͚wbkzn0 +hDƱ": ק~EHcrX(%\6WF:0ZVq qt0K.kmdƘX okоzwoN exvr 4˝|7*0Bab+W)L">[YaG#ƕQy³/[_+9S1ZgSomPge7ڬ co yβK''5<яIh tV4ˡIqVy`ڑ*^Q'zfX1dC@}ELa¦yM!lp2-T%ۢcNV|:I;ǠٴƷ[A">XGǖC"5ކlu.psYUT@ `/׳0K41 /R?_95:oĉGs37 "VQU9/s;S-ٔ6L%&o t8퇋Jn7>s\}X`g) HPĊ"h8aW6 AXo?sn9>>n<[GogGgzdh#(D-&iO;rh|mx"`]FZsջZe= iʟ=)YC9HQ퀷2k~ZNz] uPG3/UX)Xʃb)>Ìٳwǽyt[5VJDQLvZSgQ|uNV R1P):InATx"otm)U-H~:|LOrcrJ)Y 4&&ܲARSO~)*Q߅+oy'et9,T6UWeQzu $&-:;A? 3 nqlPUl ҰQ&T ZmLhьm՟ +-V-Zڔ~+N*W`8-o]"+ +rJ9Ϣk<#a\NF!~{(q/@@NgpMx wz)d?)O~w+}෾sUG/= 24LpL&(*v#;ԭGy^R͗gwIZ@c:XZvH4:3/@w[kŪnkw{->p*}>~|8He U[=I+F3H!\gʹu%%cUת:"?8 +psha8@[ }o`ߴڿ 'l'ՓDJ"}s4 +/sOgڠbnxKꖜQ8~5VYkHoo?ʤaljV{懜cs"29?f@W 7OAMn]C1cҥ{gbY\86)-V<`e򄲞UqF-@.lfWys}N4V[ &i$fmA332t3+dU& le~ϖ-6~qEe8dR<90)i@*iK +'~)HJ1&U)¸1,gAbg 4^@;pzWTͽNGYo^Cv̬wVnl r1w.`tvk_ OVX@GA?xz.(Dspȉ +( +@gFU.;/d^ݔw okepx,̈?PqCd@ +yo`4[ c࿁RqTil1j-F/֢j{܋ܽr]Y<mezeX FrKU a}XR +dDݳ: +.:ō~:Q9aEnWJ+r4da%/w7'r!"݉j̓Gf"^~ U/NqF&jX`Pbx4ݰOQarпP+:W8LOO,⹯lLQ0\(6sח6]Zk@,4ldfi2z T1*G+͝E8ۆPWN> NЁ[]8S%GxOY8eD<:IvCD?( uBzaeN{*/ q D Zr74yta)AxM^ʓe O5J`wlcYpg+S!< @,$8z#$9=`Eڒ"]ˋg uf 7k"DuXP9Box&!Sgo`ůcy}Gr6X*$Hw1 +rۆcאye-70̚<UAvIdrgiӃc4A7C1TLˏi!zy)-3h#]32恠9%ţ9@0B}_UWh~oyuqd@RbZZ (d!ma3(i8Y kSm}vA׉Ƌ1 Aҿ =3}B-Ag%Sk6ۓ; GL@fD#>{D|S{OW&'͒H EuE9ja P鷢lyzPp>- %Z0f30KmJ:Z.]xPeEy@d]dCLodd٢@[YbKzOm6LYf6,vՓznt)gJb&:XE ӊO(Co_YlTN\#{tO8+hFMzT Qd8qZ2)lrq .ɟ@hyT<|՗C+29\%]C}?b$5To4R?R{Ƀ[*!d$T9.KR-\ɚQ찚!V4:lwe_4YSvêFt[β>h,#YY USF{Ӥ.[@~kHLcKeMreک#7qWn}Mn#U`U+̼w @@3+ђ<.\.3hN*|qML[%yVz׹қ~hŋk~7n^ +0{+v' +!)(Ɠi<@_4A՝8Oe y4>:J״ +HN=J$-~d鉔s!%Y_b$_8Io7 z%> u5Jm-ǺsYW sVRNW0iA?dj\0aV|9BT}fk +@Kay:IB~!e5X8;O' `<8b(ծ>tفT/_ +2Ƒz-e𐷛e*}/P&dfaiFi2X$c7\եb׷o\Gat6C꠩=hSuJG{'`б!q| +E ٴqϙ~uH kɷ҅C*+o4L*qVv!⃙]dӡf<&~e>ZmQ^SW#t@89T~$] G QWA8߽GZYD^0끪b+~?Ɲ7}،ߝ"Dwdx* 6#l ɯ,G9x84-h + u{c]cg>e]xFEFmjeTke4h\5/L"Ѕ2@cKkRQA `yΓ!B=Y +rQ?O،JŻB"5+)Ɇ4zFwU沛 zZ~ה?ƙ)  +PX_X Y8MF=,Q9B|A\WUX>L9qqh6fHKP;7dtw_ģy<$:78.WIqkpn~0a2nY W|Nm@ QOZ4@%[m2 (G P;x1[~sWk2wT5t[hj@ s! &U<$r}Фr9nw q,&~tf!Pwu{SO~\BK̝-Y4uj̹0/Um:4о-7_ܼ4T4pC9^h.e +h>~"6̢9Zotmt'''|h?/Nh4G.6IH3Ƞ\A .oA:+FYG`.߶k[fcg_k"dHٓMqB3I}  Q'U{KL +$mO% +q~ڍoբ9&Gnƒt=ǎNj$;o #\&\)v&z XJ%iN5\`_?<YIr֍x3SJgp DD5;i,> lZz~R=M{#5 ]d G崋4nk"h.h д2^;p; Oipx~F8 +$&]S9!N>rVm~uҝfyЈYn⽓dTfLBfk .bI^!m!5"F0d5 ׯs$vDIq=UeOuU9N\$=|Hs_w[ +4rԻus%뮍I!!V NP%'j(Ś4!fI|}I.QT[h@ }Zr dB'SlnMiVև`yqRYuDٯj^9ꉵ FsywXshG4 +u! :ŋ[ݼVvߋKē@8Y=UjIPKKt* QCD鬸 J:Dͳ4yqМ "j'Ɣ<4P٤+\9Hoʄ:J:hɚ àT,C{iTn),'h+rca^RN=fP:Li!zMI_^8K@Y|QxP01 ku3:haKsJ* Q@BS (;Π<`-$gUnRĝ]7#t Yt?>z9}{"r78|ID~U߲T/onX~pN8D,-G"hVi +C/b [hј9Mdx]Z9{`u:b=ir @{=JT&v*͚1,>{+Rڡkb%wp?IS0 Dg4h{j4X.Ivlm[?`` dAЌ$!@m_]piςGBW*?Z g E<'XfPmNJ纐m c!ϻxzw(ʭq@N"P0~ueţ @ vY8R!2ABk k&I6ؽ]9OxI"@[@2=+N2 Uƺjp0ڱ@6dASziBE{N +Ěnz"V/D2kn(T(/$7qV4a\,W/1B$vh;UaԏIݦ\i5 @ӽy4ePp*K6 Z >RyT 7h7$cf2FΣN,膑x%54ҒL5 #\^/<F}4Ѧx.9)E0fк,ֈyBMB@u[Y!\'0bsK4yg rכg(7}Folγ-C ƕ[C+de uALDh'=^v]yƶB gxYWɟ! NOqTѰTʟW-z>W_iXQ];wiKގl=?VBf4*Ӄ(.8l봧yɴϪW -x:$' +(jZzؠ;iט{yЊ-]\=nqz8]_н֍je\4%6́onc9N2[ZARSyaF4RyrkL)aa4=#z~zo.mj,UJߏg>D&Ɖ+MDI8޳ +~2uqx4Ēp +u?wN{YXf3,4 |`F/(Hp:SZ}Y^䒑{1]3nA3:;#YZˇҮI,2U@b0tټ59豍GKv2}(7tе (]hpAp̠sD;MGRphb5hGǐn#UC5)0 _oɑcDtP +M)dQBiyRKi`shq עQnUN\}BfkGC|׏X3ɸRTjzeh`uݓ~L5dn@҆*37Jjks/9F#l@3wD!\^7IQo_?@ qoClF욏\Gޞ$~YtI+EOwQ\,[|dYy>@7v;1-lirkD][:ڪ2pxec}^^갲!980żl pl p Z]*Okt4Aj +M[.։zJ])h7'(0"*!V~ @gOI@?!nv<HBmQ^/ܶ/?~޾nk, vRkyx6!PǦ+6bɒoE0d0I=S呀7W{ +Y++ǯk9n/yJf,%t\%X}<&a`DY> .o[?A FYRCPPG^1vԛ/) =h9NdD"pIٶu.N@ֹ A\8,}h1m\HaTZ#s.|~.nG}ew, ;urh p{^sB&^P֡qgK>l9Gh}{CefnYv"b&Aţz@}VsZEqq𖁹WO߿]&$s/G%U}(lN +z.IKe/#FZmՔ끣ZB;l쁛1Cm|$G!tL+^4 Us0WM3].ڼk{6mbg#B @s Z_<.hI!Їo6lUTm]Y3@[}4[^2rPA);׷VxQ Rl؈=ka+'Xo!U{Yb\Tmtp+ں$l&@[ oxXY PHKV]hZ/2_W7Bώ&w+~)Br9hHoC,cA0 <4݄7#oZPEQY!]3zpl+JTq_nFG׍vu,i!uUE,lJTp3c@%-'4Pxplĕ'o-TGX]s Z~^U>H勇IZlibe0GU:$ V~@/ew(" +OڻXQ=`/O VlѴ>,Po+RopÄՌQqT1²l?EpUqBW)T]q{p q}+/T(lZ6qe&P .rLD%י~Z+Ã#SV d09`1K-RǘyWh{M0ҭЂq9qU9ƅzXFyr嘫H?U@tYhF@ݚL[Mm0Oq U(sbƐCCUZh-s(o_ڷ~ *ޙ_!\\EMg-\%&G8 TB">gjCMnk "dwoV$h ?h!fZ'GlB.huA=`:i՚vᨲlg3UFM&Ů<]Ϝ7<S(RMjۂLb,_2֠7_gjR1%V–%' |/X + *3KxK"3Ay}Q,!5IWq^e&)Xd@qş5lw)sr`~0L%\TRFXoT6sàڃj0ԍ,dlAQe0>->[R,_@u_3+ua霾\Ge:6XKPh\GaAဘEXEK U-x BOefx/f +*ЦBtэ1G ۰px=v'l8ܟ2Pp$Bj}N\\W{a$} ۱&G5J!,\^g&miEC F:P(n<S;ȝqIy߂M2hK+WpV)6,ggrc.TfVS~S%S,TvzOb<*1s}&$ds͒-,: +a4ޛ5Z٬M:Q?xzLߺHo8ZVɯCu&fmzYKmR>9V^7b<RbZ2 1i 34VBaX?9 gPm`[Au 3{uMV:c]A E<]A C~ Z p 7F/g,_pq:h3HYЋm֫Ox*Mhq4SBqUB9e`aUq0fcIОrneh؊/JقXEZqܺ\qdXLQg4&8y''s,WmX(kldj{e꼻ėә+0݆fp9a6F8 'aҵ6 uC!e +܌EI#;6۾IԘ`kb,9h#]PY3BB'RLCpRny RHl"BFдz>< ^tmX4@қ sіY\K]NY.!4N26Xf~LDUC^] +<[oqĽ i&&$yrPA,Fp:ֻ(* U)l`ˎ|,ţ9 k@xm? FP7<鱗1}F(f;(mH#թ:|8 )Y=խh$@k}uuqR@J^0v}os=}Oƣ&37  +9yA6\=dHsz/Dqe^[w?~>9Q%V|Wzqisbpg.:i[Ԋ1he4lzwҽ0hB}eh09qz{plI PeM!^}qaæ@3NSq.N݌FF3F.~&~[n!;.ʰX|YeHk )w{Y~bsuQ_D%?tMj& gYSs +TNi$Co=DﹺzaeEʼVܹ,7c3o԰IzQn1VSh䁵~jqA_a6J{NU>7dk,p!5u +S5V%K:D[dlqi&Yx/{/r!=\ |m Ox|?}p`|EJm]&0gpt6ZTQ < zXf,Y[ڔV5DX +q2$$Y7&4mF./yqJ-|v@QZ\G>:%Eg2by ne6z q[V<tM&E) xֈid|fctց˘@r7~ Q~}ohɮ-.&L$o=ҺI9ev18cIO |2=p0Idw@(@=Ҳae4:[ϛ|(8}3pp W9 y𺮨D|Oس~~VR* `N/ĹJ4vh~^v̌0/eq ?%[g=* +q7'] =: =NWlyQMYdT& & n>MFuql_jˊ]ؤ>>}Z^I\!rU8Ǔ@=pgy ln&J\9j7Ho- i)-K& jRTA4@v P2Ad6S4U=u6hEQ~tpKv}j/9W^BFM:)ЦnYHje|^]YBp%`T:5G\ ӭnU @{"hѶb,/NG`lNTt2ޙߴ@:Hﳀ\ ǣzs7>*܁G@Vy4^_4`^Yϓ/$ Ty5t _MbB/5ZZJ +8o;l5ʱ4W{ҽ.+"Щ`txm3K—!u'-m*Kf3GX)3Rzd1/ZePL=#PYBsY? J֛ɿӃ\>TG%L:'-l!z$ǩ%h\<>4t^:uJq"'@CBDjغ}9rPi@^lZbPj1sfޗ?5-lɟ?|K064+v:㣡9ǘl yjwkHkz}ͲeSx X|gh/֪QJ_س功)<U5u4֦cZne)UB5_HQ>w3'U۟Dd|IzWW&.B/$%k\#bSF^8)iZJx3Ak(a=cV +:,sT ɞy꧅5#J+&^_f창V.N^x&=r̐C #K\cAVp5R\75U;C[#K,bXl|H{f ;4HXѾcjH9~ U#9irgT@c6}VxM"Hjg-x̯S +43kuYgAQ>Yf[rp@͒,##Ӳ|bI8μkBhIfTځ;[go$.1-W2+q'B>>~nU豫 Q%hHlMKSfOzCS[[XH^'k~xSGRoQEʍXE)I޼NM!SF^#OlR4G,YF6)DT5DzuVA6t*0dP- VG*ΫYn2:|( `}kibwOd +I'( CmAU9ȩdBZsp3&gA-JT=L4H}@zX)}E&OWlϑ/OzUksCi (G h+n5 +iMMNctoR.8!%gM]?4s6L]i赀!b=qgJiplR5tЕ C>< +ZTVgW!W4mH`y >6~a4AY4zt%[Dzp +!~iR[qhMuXEpՠ +f +ۄ$P >wk@o)lW<t/xIHKC6lNzE,mQ +d"7!_^$}jE|-1*/yr'̆ &Ӯ-kUl 3I-֙jo;ާ*)Ѧ{&El/.y̻N-@* =Ʈ;ˉ3mx&Vg9nG?}^/Z_^ߑ/T4&3t[X\Jt7C9 yY1sq:NKjdm:?3MiG\B?^V*@96 8-jP2pH*VKYhˍ򚻘jc?Q2V#DǨ׎KV:' T^>#S.by:(kP:]\) (󚳖S$bZ=v0gN?_ @G'pv^Ap*`Dŝ7uRpgۻH;ݟ BR:\:`]y~^ )mxqT~jTڹpW tG?|uC'h*KfA+W:`>ݨ,52o n +AZ܉ ۊlC*/xe9haG O~RM(?7pZ<2 m +y̓h]*<H#?䵟pOkʐFJm8&]Vԫ壧*\bw#O42aRh"щa] )Y^蓀ۖ!w`+12V gq_K(3'dIkR5qot?>@= w]$m0,}FJ0hr8^f4/*b0J T SHkʶ|T@:[x=|{UM7:? B~ ڃF7v4edMz^o49'KYFOV7T{0Jq|}SYxS.mdI*^_y֭q\}֭[ޤ.B{'R!C IҙM7^7vO/\NCܘ"RSSIp62AjA&ELE,\HceM g{R~ вcG&U.9w&shlfCv]vIg_}$?/dgxDsn*R/ W{iP 2EIrRLZnЇ]^Kf,t  vKQX0ί:rlNu05#NMPD!8)Os`z{}x|std-TX ȱ( D9/VɜQRgy-Qx0K9k)Q %: d\_L%P6˭Q@5YzHW3 # ;-9l/>4ztV7>zzhR/)BH3' x3hz2@/E piPe]|H[Wύ L`7@SgIFX,U9L=a ay≊>8PPaڂ %M=tᘔV[146(!ل4΢(yt)h%IB2yfi<܆\ew1g Zк2}.nO~tap(pC^k`d" +ҕ;ˆRj؍\'ts]q.zh}(hUp(z+/~3jNS`[9ǫUJ"Ŧ3u^}V%7t!b +Vʡ=i=R4sgO3pww,O ,# ?(@_J)֣&049o4(  @CÓÛGy mΣÊᴼ%x[ ; 8dU}\tR5V +{ŋmHh]51b΋_)se`-hU<ͩj#7sYʓ=Qd1Ɖ?;H2A|P@(gգY^6ۭ`_2)NU | 7XUV 7Hj<=8F& )IDk҅Ksd%L.Qx^QS2*# r%li-u` ^N*- -IYYИ.?&7:cUGON q-ţ.V. 5 ](XЎw԰'%T5Ǜ dϺmx=tA +,;,`6ou)u7`!܄构pһc%6 !4[sJXC&Zjw_8=\Ls'I_C/խ]{OG= +;g#3-:pE[t2.B$t$'']@̠Dy@ v%;"ۛ6ܜ]>wQ9ou|Gd{Z$RqtACnnn斃tw^h.|@r+>@3|AUvM?`j5/yAouUނdpLWmiq2KK~{LxSǷݾUa,+΄1'S1Dzg4@S S@)ɍZ P¹lGtlʲC̠1oDzdVMЗf$ZReGbN6=%6i0*ze\wB,N^"ҳI~V=Z\ P'dB}ju&!-77Z7hFmX9OhJ{AVFyob9d@h,6Tw3ō=QlahX\h(9l/&/2A4VjϒQLU:h|-[ ,2# +g+4J-Qs3&(NAfԷ$UZuD0ȯ2qv* ]y @Pr_^97W:5$vX}Zx4u2u'W#nvX4znf(g]t FF7;W r2T t6vd84NkN`]LN{yMP.ٳKyM_r 6GRyYAsxJU. v/Vk(՛/l k\x\$@yæ^oy_7o`\B^]?KvA7nx]Ww|BJeP0x4WM⸛ 𓏳~@>_*Ѣ|K ҄|- L1 lHH>M֞T~0<[!Wcm.۪> +:Tc ˆԮm@; n}D7@XWgw)]<Ӑ+a=㒆!hOfخG,ϣ UM +Kb @W'p{mX +q1ʗM=V}V1*Xh /Y0#F-WkL ȍiJǣjbO[ZHnk34<ۼ&(AgMw œGqE*n _TцUzkqƷm"hV6dؐBBzM¤MA1 +GZ&p{]_vX @Fҭ_sam}>hx l-A4h`.Vem̥tMy% %s%` +@{6;*#_W !6.y<dL>TX +l'@:Q|+S:-9FAvz6sٺ(`m]*t֙3>x nht?EyM2N:YaneȮC]\Pո+ ;wl nz#:/7j{Ϯc%;S~ypH%R)-Xf`ˉa[`!YDq`A` "8 +"0]^$vǦ8eF$ٔH-֐<ܹ~;9թGWwWj]]]]N9}6]Jg[ns7A +&~΃u3c2w* h8uW|o*M gE gsM 3ڒ |ص@*F+? BŤ}(5xwvnkga -}&mjwr/Fb^Ulrg0DҬ@Q{hrq?usM<p@mI*((9*W.6[gܠA)?grjӨ?\,U&J8Qe}Wɟ1 ^|lu\x[hL> 10e +#alA!.|SsgCHVz4oaP5EL_ %\]1m:paFHn~+ThC_@ +!Т1?q ڦpClp&zovϛ@~4\G +?Le.M ͜DIF;A~=yύFZFq'nJtIw"֤z$Inva(#.TICFʜrSLR@NBP9EEq_𙿅1,IhFx,,gضERE+9XNj= _~V:G|! />藿l&t&ν_< (FE)40V +&u_H`k&o.MF^IN8iFI|l1IX6)^ϟ@s.J]Ȭikt +@.jy8T$G5w$ʖ"B@ Aƌf#%YP>vûyc9hx4۹|u1[rL3vP\$b(!0vKUώ(ХlkQ*4d z\p彴o]_ o4To Pt (A$`B*мO2ܴ[qÕV(s歸cE.it@p\@p+𤮓F3 @çX@/8Z@=aPh\O~a9#_7F@cf/2Xud L@œ[ JnȆ9 +y338ˬ|) ;b _]wȇ*.̓.ŠObޅ$xvHnH3PL4V Ά>: W&t!3qg'w˹+$31I!yΈFV758zv TVq$RR6=sxRQUʟcb.Y +Ծ LtEu^z^Vh[?%byykA3ѧ3 Q}4"64ɪw/zm"3rC-\Ž9ψ|eNFA4|JN J4ИB>nW; + )h0ŵh:(Zf.+hL3Xa!vxt׆_Ya! &Kφ"#ϝm|SLB y<cQBl#7Ԋ&n4k=4*C +U:e{!zH,=0>P>CXJ, myu|.O>ey]W VDn ?mYVݍ༁4X*_\dgG|سᅻ"9 s~):a,"L..gqHƊIbֱsRAU*[E[ +Y wfJ5JH\ : `ߜąÆ+,412`/54Lalcώpt1mH@S7Uvt3[J agPO(٢W[̖ʟYEEn}i%^=!;"wm F@LxoPaJW@WC{gIhk 6P^W-_(%d?t85?'8Oew˲׃gDg׶onc>M~ +7+8lO.c 25lgCM{S8^oITE_ZG=y 0Cel%/P٨ŽRq@Ä-X|` :l u(m'FG4 e)i' I|{vGW<|DiMTPȸd.ϲn6K]٦j9Qr6ݩۙyՉ@]Koa  +hm*4 +@S+?ЯuL^ȻbUD;An޺D\mQO.-u g?@:?$wjS"s5_S}g֬ͩUs7 !Lnva̋{Ms*)M`X @-.O~ozYparfNs37u"ܚmpg0,Ʋi=V yLi3و(]"sR4:>o@C2h"v'psõyA- t$E ̦X'ur=+h~8dEG}[,T nQL^ + ]sQ ϖX.J|kg\AGvo멊_( d$f҈YA - ѯ`S wrN haOï˷+h#`p +F0+N$3D6c!b@тE'guO>:o҈ctVtE[ +;@Ɍ-QZ2DpEfshdlѧZ +YGt4sgJs:hMy/y +-e>HN+H|GʢTbpAiAKn^,Bgv*A/6h$빐_L*F5$ezHukEbOT ml^Lr?&0$F*oH@OjaznʤbbY͘eRymg(,rgLų>͟/n+ +-kxavb"ٝ9Ik2?3QxOoߵM% ЀU4X٨tSMî9m)/D6V&+C7D[vlnȱ.[7.hyӚ{Vk}tֳo@<ʭVJMopI&.0z{dz:ћ?bw/çHi٥*Aqt*+P +ǽ('`&\ ++a7|-⃇U@~t71!=eé.qdJMN1(&v|Ov2BUw`5t:ؽ@ wf--_9+!ь|N8^xE17bCGWdfbؙ,ձXi ѮNEMgMIX@o, AʥBS j,sx;8?Ӯ~뚥%یE˯" X~==GCYv +6;{t7((d,#v"5-K_/ܢA4P7jXW5,GA4~ +zRJFc +fΝ`z| +83oJ#㪴`_4.-+Z]+u|0fcӸG1":DƘR8J&ص#@3|LmL!F*kB֓P`_6a$T3\쀱Vw9uvNX 561?۴'q}QUЏ=GƫZ<3y74!8Ut>}0o〼"0yb&.SA]X%Ul+x)i+tf2fjvpHM%ENCX +op2@ sGZf19rzux%*z@-iJB!38b: |s5UU?hS^>)e3F]0t-oM9ʟSYq/\`-ৌh Ki: z +(c"8ӨyA~@7X(vZ< 464a@kxRM*z,%37g,m>LjR͎@wE7q+g)Ţg&w;Chy|ZP/J݌/ JEkkAۍs|: :j +J@?bJg 띍#/-k;qDj{>[>(Pi->KrUUZ4aU&WkJJ4?RE4)3 $beOqo8(^@[B[B$rdb,c*ǚ\8rz>#p+d>5iQZn .uVTem$Q~zc 2LÎi0g 䋤cQ85wseK@bg,=*'66_YO@wUl?|2uʏ΁?+Pei2#4CLpMBLOf5cMB$5#.fy$RD5RC;E-3Y.n[a $wzm#\5DмՈlZs UA!IoM/2bG:R^+ +4S yG+X4F$ě Vݙ/6nb ӏ~ՃàѺJzh'Ws/#sW>a,t]ʕ+BeF\/sh]t[OjZ} E?rlK-&$?n3aI )6 RBq=ne~Dl:žv)>[͏ +߻U/DS=Lύ!.rpbC>ӳðؠ.!#o׷sbN7CHhj+exF+x֠A ʈ Hِlt%wngeνhdG׳L"Q* g4 :E!ж!maoE 3׎y-Li%f:9ԂZe񀍀gnSA- AXꂬ y-3۩@@ĭrJD?%q(Q:PlIv:08@4Q;oڡQ ͶXkR-/y4&/%v䙲fțNĬcX-=?EvcV]0Ŋdů:({\ ٨ ~Q={v ,'M7"ti+IDEDE0K;w`=fV3dz0v=' + -tt[i\ ZCb8vta& + +c˦4*cحzEA9 uFA): Jܟθ$' sjV4BGZ]Vh&])ZˈT׸sI_4FҘ崜`-_*SpQwi3}'Vg(@Yiq X$?G ctj6KՙZzy 8^RQNɄ@Ch1šq.M _nuHU}\A- ^@{1 _'U>~5i:Mia?W3U'3-t4R胃,H6 =1L8DžƯCFPNh NZg@[7~+j+NK68b ӧ yytG5@!_*(=NGPYǙ0pų.'Odע>Jo[Ճ/Lw ˍ>n{]Ϻ솅U74Lk^h4$TB` cNB6wg6VQp0 _RKAt:\83"|A&-@Cj'Eq6 k9*n)Mwʜ-/c)7#_fR d2e@ @m|P\d ct gpc{4-w^Etr:J(! O˥)-H8MiV$ {7gKSQ(syu!,uJ!Z?S XU+q;- i 9Е$Z4#!y64VYh solHIG&.;a"̛<_Bǽ{+xf3ctG3t SC`D CB-q']#Khjo ƅ7NiLVNAq5~l#;`O Ѓ6ĸM8v54<)*V8o1N]h4j0'h gq = xr7:? RƊ#,ϝI6I0A+4?q-9iVس܇AB×W=t:pYç>'Xri(rn[/UJEY~fCǞrZvq+F%@xvwΛ^xnҍ7Aoa=:g+UePOT ʄg.nWn3W~ ĵn^~뷿SVn@$Վ$<: +& `] "鉬I-sk"A `z>~8ݟf`QXoVgNڅ"3?(wB#g4(` +~PO;eЏ +V Z1lcUi= _!I^MMo|׳|˛:X8U}゜5Y%OkYW\DTO=(H U#Z=fe1ɔHoU4ZBS+V5+KѶ|%=((*th]jC߈h"$όí[T#*̓_G抣">Ǒ :xm%y6Y3dNDKMhP20cl۾||[Z7 >[}Naۢz49pF`>LqxO4(vрz;l2FD[-g̤ZN][3c|И7 4 R2,hx:=KW2>*w}2ЉUhbSM,4lTJwG1N# '1Rܠ#<IE"U4N l2YSJ 1dP*g + 'B Jp  ظJ¶xa`K4$ϙݳvQHQr\eKOV~jaYVfr1J:Bw) B~7$C0k +GȐ\\D +Y4LP~P6U +x'ӽT)RlP*$SP:5չ0Fux@hkJ-+>  ZcИ0di(KD3ٝSO彂h~閼d^(v0+ju``T-fe[Wbfw fE4CAa L^ +xd 9"D)zCǞV{ݚOa G8mIRtzr +=qا|Dr @C" Q=Lyz S4rY"۪hv@?{@ۅ|9`ߥSw3( =ِc\S ~T3FERxJ؝R:_^l(@1b‘!s ~ԣ@T=ͤ @TP۲'?.Z3@kQ1mt[Q8@g\ah<`L94SU:*>d3([7p%X 7y_(D{uәCjMRgXXSb`s49U!Rq&yF|+ЪLV~]@Ou'Ѩ[$N~"⪀)F޲n{~aƂz:Wesr ,&t <~5$Q' vr2^wLN8ohޔP5zgl)诂g: +E0 1/t;:o@f>H[vKP9*hTVY?-&Y^JzcYJkYsl62s(6AhFΆiYKeVPI-U gsb;)M?Xjxs:s/:}ND%M9JZrƞ-ee M KЯM|rS.y3BKH<%rr(wlL'}@f">pnK9aj\_"Wvn.fo*7HvcQPY?R;36[%5,9JUBvڼ!yq)VNC(Bj,dvI"7;T yICG*qm$JQmIa#k.WgA5ha}V Hٍs[ax +l=J*kt3WۼnpUz]i$"7o<&wXBN|h*[D;M:wmIU?`]!L6$*3:rP<Ϳu3lq0$3v")Z@IkF@?x'A\ȗcmikKDb&DF#-]6:y(yv<il +ntNh]uc;xӧ_3T dLrd:Ë#=?%*qo;b@5B%X5TSz@Sӷ*tU,qnp\WIh tJIt+莰%vb: +Ӱ4@39٠YM9xҗz!,q9;_ o+wa캎s*K)*IM9KFag,DLSنiSZ\Cvt)^:M$3HaR 5ckX%e!-2-M7Z{JU\ڴ+j"ޡ ]8rfY[h9o4阠 474VE)4rf%52hv`es#M?z>4!d9?Y?=:wzc'Ԭh\ocӫr{y#D3LfÆq>*|~0+(9q4ِzn%mhx3=rͧ +')d}'?k}^c?xc`Pw^+.OaEYY1*^y쁅c\Gp +Bo}\ v߿vޘZ޹y5xnw:4')8L% :u4 +mVoUz-5'0Ysg7Nkk%zFt[mng5'JغXUk,p]b@1"V+мZ6sd<lonȤb X>^Vg+=l0)39JΆAeamb(+Q1+Q }jUyA G+Sv]h]?27OwA'KDﲨg^?7(2kB$YĸNvYI0>nH͈pki&;V0-2@dQ6nj*_z0m|t鹳Gvn$)PܹE$1[ޜ!s4A!nDQа*sZ+& :fǛχ|H_jҷ$|`žhk8y4w!@3"Mp~0K 1@[yQc:V].xwC>th cҙ.gnaUXC6;}~(ɤx4~<'ʊzkz)}N$4xNV̥B4%ṳs;%@4Xt>4UCq7 ѣ,R-1 (: Y|x\ohc wa`~[y>{4%@憚h3DB+LB14#sSF^ut:M澻gNԝI%N<2R~<h+_!Ռ43XРtY~z5gG@=gRt~=rCȗn^>[׮4}@C]lqmHJA3)2 %v7 U oe|vޤZg"3v/ia9 3P3mÕ)+>P*M BOY?Cnjd=}[5AE2s:| x1h0fvǷxՔsi5\eTn1x{jlDϠFo$bGKu23.A;u1OE! 4>?j#YVwug:N$4 +תPR׃vn7Yv c4YDj>;avA3W 4@ftKB 8:()# o"IpdFh:4=M8A uDzpþUTn<Pb3νPYH\8Y@ޠNHYN,:WAscnU4\IZxb2iE6 ܢ9T8NRKh;ʯJ}[S6s_O*rpa_>.K|LLwK !EИ*ҢCN4fMZXٍmUB7F?_8S.Fw#V5|(p2n6!UEC,yQ`~1 XiDb]WyoKˆ4X|@G9, [m U8 ƎBpte. Ű*Ul7 A4zk5E_+ +aP뇃Sw^FJ i-pݷeubb,rnwkv@RWj ebHmZ OHq;AGGwn\}g7 $O>ỏtO_py`M]~`S`R@jZ{_4XG t&n@;Zud7,Ǟ g0܀%KPuisI(Dajwp` LDuHtU1+ ʳ2#х9w 13=Ry_I43'G4uo@vpI) d3&bQWhWfCex@+%RMG>K/NuFmXݙsXQt}:bjMtguA?J FftG@ +3-,zV=ppbJu]8 +9KNejSt\W#bqHȟhj" +u"y6vg.d@hKy@{ᩪoR"Ch 4xC.r a܀\"u(Ь7Eʆ|?{oDQm1Lt[Zh 4bd9z u(d8rFޡd +@E@S4Af&YeN߲KC_}՛t(]Uh5keŖFlE7 6F]*=}@do]'>c9䎖H7c4&M} ;K*Rv ]?dBz!~]qu¢F%C0* -92 >cY#"cw -[Aۏm5DWLwZH7NM4}ۿб@/vcҜ=!h HsNvJiA\PWlMmQH +͗q!tE4:oTU@-XB/3Ț4r('vbhbS+y&zwQ4H6b#@$@ 3UpP hϿp&{p[X:LO@¥EJZ:ʢʥZi$peI$\beyj f>-;eﱚN|";V¹U3%['8O>FL"W̤IeV'E3;[ +I֜թ&b[0Z\n>_ВM.O~gZKEcmMDk:x坴]ճ$‡ !@!~JvFs4ӎ4q,d!"M׷G.Y]n#Y.L{WeaA + {_}V]׽rr~%? p>::ێc-G71tvf!k}˯[.r 4[+ر(lE`b҃Qz2U|Œ:&1>m {/`A ,ƖX6]) ZpP XHSŤmʠV3p*u[-߈yqXbŃ x3Z +;ֈɆ,}qp6\\qf#k+V^S7x+e &ko{)6j?8g4"s̃ܙߌ +RcJ,kˆWLRѴ ,:3{\r'us%;0Ipg:vcW4¡Ձԙ2DSg4k0ٓI먏 +SE~|`FjCyA44X=jseϒrKBhPi5mjYA@kOǶ72ē9t9o`ju_}ed:8A-VhM,Ι._ vBW20Z?醸oX=mӚ aIW@pc~r7c|^=i&RYL^Έtki\vݨQ㌍Ck`h>:%jh&\=Sh0!GryQ40<1嚙ɲZ`tJ; rJ} 韆4 ; xF.'cG +@ӢĚjd<ݔ\ +uڄ씉 hD8 $l 1 OGumfSAOt]:P :@MJA + BEQ]L8JȄR#΢!@ruK4P\'Llfl1C}|v3 ='c~GQZgs6c{rj2c5+鶨fY[y{bhӗ^6bХܥC3tWF`pShRѫ@3 &Ƚcb?.[$,$龍I;[(0s&bMzoM$ +.3v`3a^T{N&URhon0F`^9h#*QgPK|ud-+l% l[h(d58gm) D-7l4`cm~MlPz?B 9m@1}=jEز y'&Xszf䵷GG|VJ`=MvD4chO>Tn}>]7h<9 M&Xn\O%8֑ʖ  9k'<5G,R|gW i!@lo?uH+n0P +Hf/,5RܴROyI Ke5L)nqL[~p/[e(- +([@g~?VL!T5 5D.)DVs&ʩ[XԈn\uAOŠ O3Z@ }m'lQswr<8 OV [v E1Ьvм׳('%9?182n z(}r:ɏ|%k @=R84wi%Ұb9}`݄*Vk)6HRN@Zwj;~;!."@Kgr+/xs nhh\Ƣ=qƔB%J\PT򮈘fТP0"Z;[hF[nǾ{tI#J[z]C@ Ӝl9"H%ZΚ8Wr7>/;=yqAt6R]Ft[8a,q R-b9GWJA41f` 3; +@ ^8HJ4 e,d*5+,=l8MS`)J&:#DSI߶zt H:SWw8F k blIjl@ fЈZ+} +%4 }eI4_V]N5ZpuQ h svxsT*iy786$A!He^se +zhL0 L)l7S$\9Q|\2tURbь<>/⚵{p4K>PöJO[%Ļ횶ex i -\øuƆd_".+ƽhxyC?ζg&m +5PH7-ol==!o's59]?VؤؠO^_{xx[0BRrdG5Gyh~nP>nGWw ]w>=w}16>\90zj>j%-K6\UX7t8+ +Xn!抴˅aPcGF@Gx֩ݛvO;o@WzqJG:bâ7E3+hKj#8:{iZ^i"/ͺkc}UWBm@IsL^ +]siE| gN+ĵC}kEɳ6JӺ+so;ka3T:߃E%uUxSwRy[>JUJHky)i1>x .U&IwXf mh-f2 [ʋc.v%XUm\on9b x-Qlc^ڗ֚ElԗE]8cA4רؙŽXUmx4r%f+'RZ̶/tQSL ৥عx@hC˃hK4[V@K^l9v 3-9K4@kۼݳrh@'G 7tjB@ˏ@ #m9q5t{hxV;YHGN⯻v/h)5k}gPE91'vX٘ +hyR5@-jnV , "p.\4~yiT:~䭢FLeMR5賵F蒰m MΊ[ʲ1>^{WY̅zR s%v~ hpg!rKkE"<`Ͷ4$Vt +`jPN|F@}뷰ǫnL+|6qzZ,/нڜAG`fZ0oVk);={0=NqDN/'k 36$V!/ѺN̥VRKh0YӞ0^x3 YRECgN#K:f-AE kHjqb, ;?Ǽ}htRJg +||܊EAt /D%YH`e)~;EqČfWhRpL@K%xeAnk̊YCL>0ַYED:Y 4xt J窀(+}|BtҎ.F`/HDKS5_ gK&ڀt O#jv -Y;`ğ>0h*"ſHB睍]1s+XU7&~Ʋ) +cp7l _; {oG+ {Aֽo/x~?Au*3-T>"ˆ^N}<DIhSg}v9lvppP +r Eclm2 Wj`U=$=+Oכg=pTyqDsI0';r4jNs$ܫvP#q3>#SBЅ)AIR^u[Ң78HԂ%"G~>ſ"s9 FZ>53,;{]ՙfʘIw:dSgPGPA/@O$ y# m@ELSҙigW\/3VUoUN@2@32eUD欨sh"h)@;1]ԌA~_ʼn%-85% 9tPCTGR#9W4< h?C&(6H-K6+jK1 37BK eGHOq~] +(qk@2]r@xIc6ͭ-(z@2Kܠ@Y@]Sclsv> h~m+2.@ /0Q"H]N@дU6uTpX4eZ.$`CE1&U::u$*6^r!OLm'uLL:0]k).#yQNs: B\6chM)tӮtU48(C+-pP3n[c<::ar.PΦ{7n!F@F="hU4RU ++Ns@ FX;ݩݺ 8"+3>V:6דis-佡ȅN,Ӱn@|2VUZG,hhZ-cֹxO*SʠsIQbn#|j/K|[h4 +܇2t;'_4D smݪb+~= )4e р>@r$4 +W xڑ: +@) DAtډg]>qE+#`#yqЮ-_ư37z`Y[s=x =a=Q@E.ͅ +m5 +`ˏSLEplI*=Zr߈96}~p̰[oF@=g4:;kKhsI"ٝ%Npwʰ!1 cJHkHy :mB'R:xFNf۪*3+jtdZՖ_پsPm+Z#sDB-?K@si#Jmw2{]A + )pZS@gvS@/zn#(?(`aX놼uepww&!H1ǺR +͏ $Y1LąBSQ5ƪ¡ oAEC_̍zi-C :>f^!/l 9)X#ճ>:3a[By jeQNJQZ@ i +Q$r38:~N*sStÅd} ]%(OgGxQ*۞2&bY9 +SCY~artsԚEĢRX%A/szàv@ Yo7=HgHG&Qxv)^`ag-Xs{)[1⃯, +)v_C5[h@ڽt+i^oKFv^uܗ_R-9@)tiFQN8;-c%FTId,5hvv69{C;™iKWP@ShPvﳵ| gwergX`jBi30nd,6}hOhT=jcI~̵>rJY7?<ܖiO%Z{0{`8zFܥLm@>vL{&7 C,.;^/xbBX2 VhyM(QKJ[iakzyfZl0qYo\h'c.ix |HɇLB׊bA-)| qf"sWD @n+J\ZjƲ `"hT>R:pwOF,N8O/|asv Fj/P@ vqo,aJzTLubg9Qovw1˹f/eWxl;^ǷYke<I@PUZ OCʂF Jo1e V3IL-DjNlT BQ<,I#+pa֔54_:<RQ'{4}9 fDD B\jf0.O꿟+?iel +U@تjy$z:[G/y?K^Ӄ]hElg ߾ozQr (-@ӻ3p@Ul6F~k=X^M)(\ؠr~]1 ++c1=4T*t T;YLmÆ_;O$[ {hoϝY-uXrC"XF,3mhxLF:^`S zqZ=9ذL L;ʺ;;<r!Q[ٖ Ob77Pc+h +Y5sxPZqzT 9Iav,N8rP/߉DղD9M?@$P8dw>uZUټ(rRmȖ)k`U +_PxW5]fwgJhxizoړbs=aHF)DQPϿ0<)1g;K&(Z7}t]V_(-Ǥ+<,SA` 2gSf:~  ru5<3 IHyhАImS&L)lzbw9~_;͖ +yAyB θ\ +yG<]:elCwˊwA3c?)a/+ǕŁbrY=z d6PEɟ6 s ,68gsϔ) j y-0bc;ed=IOV.@Pa>C^FsuS||Ҏ۪X8ڊFH;a!]Nxn>vK׍_x\׶?|\Okqu4@v@cPm#凞΅+WQ*^Ԏc]zt7?=Kw_c#emV g_˷OWg*9ƶ딭0 OPUP$d,#ΔG4 +2*$G%S8O^-б6W @Dt'4wFwAi, s(Ba*LG@h&~Kҳduwdm>ZFgj_X i8H8SqFO+J0g+쑴MawѲ9207ɳQzHuo s25t!7$7,"-E=e),/qG}ǚȝ sZX }|A!4 6 7uwrEc`}+ +QF@&EjD/oő[vêfzWv#yPv(my Tz@˺1 xyʰ>aJ"A׻?3yaܘ^(HHd-3*R,jZ}?#KǂFp8w#Q2k_>@dstURN[Eh#dSyvxmmO6V`zqc~3Keo)3Qz͹2I|Rq4>L\Ek=13 t64 !JYÂZbxnFх=o6vmOe[m%^q)G&V;J,KKAxhaP@h(hVL!i~8e'v + ]5q;2j вZHh(<^ȋO.DP G٣TB̛R7JڠR)ttQţUC,_'*`;[oY7O{^=X@|B09ݘ~xzj :xf|7 ~fܯ4$-`z?<ҭ4xş INrgVAU;M0N1 +^o?(F6Ug,=Xި5~L.>3M-~羼ӳ'[DF C#ωXrak˻V"U='Z[RJ8)˼t XPqiya}(.-StZ-nOhF0[;UAF8:Cl{nMHL5r\ݕ u0Q~Es"}f@GB3h{v F cתFUxi WeˡM`0 +}aÚ@Z=hJ Xa}! } [ +&q0.4QRMk~VAړn)@E?- etq[! ( E"J'{$'Ƴ6TcvW[-au3@qe@cᄎpl]8\(F}df\Z-0= +FlsF h@mpX;z6d ~0٣IU^͢B ȫה-a7]@{A `@SHI5L(5Y%؍ EP~{>liԝ5{ $'iVas(JIÙRvCh):)=} Bk#XiP*e +䏐e׳]GnuQ%|ӓ6F_' hb +sᎹ0_8 Su$u:wk[0p:02,co4\/@>D9#P(#$ZH#e>_' k jatqgn|7KgZUB;7޳7'0ysv h@:mA#Y6D͆蕾< Ma@c݉B2Y3naBJGO޻Krw'{[ja$xlA,hL 3k<1`a^u13@`Gd11m`lI6`PKj~\ss䣲~긪ʪM$*AC1k"oA_HhiA 4;*NH43u cJB3fAEQ^ZƖ 2C?8:!mS8`SY:VFJY.vS:ht6<3 Bc΍#׸&R%x,n`2)ҳ> +"WTmFno+ )lTԗr2#hoCHb7nax,X]mpZR=gD=??7.y ^ڶHOw1_oKkL5bE;f–9ç_x;趻od*."ݵ77/ç w2D|XC;V_գb %.Ȃ~', P_A4씒z?c 盅B5 dx` 4LKBx_qjڿc=7h(> + +l FWS;ycv,3Y$:Zi0T| +A }tJ&U? RM.'fv~;[ }]mC=fLSBLqQft0"w\YĞ-/ECGֽEEl:/:m~x@3WtƊ4Mkqj*!EńraVC:tVLp<[RZoīoi DWL>SMEz~ym+ϙpt֡e5pfwA=TN$s4~PRr\OXԠ#U4 [Lmf:!.E0f f8;`p-igͮM@ٕg`hp^3zE9ӂhЍ̠JiHٺO-'SQ0Tn]alwUgMGc/-t]u|K=~i}̈́lnuks,굓wiKEc wo} KAK4pwT cb://~".q(D&B|Yf(ڎKH%}K'_{1L௸ UƏQE4w[Vw H ^kv 8: ܺ-M@}wM A ^ O R̲oY3&Mc’X́:!ӥ$fR~`]A5tM|=@|޺#L@7V J +AbMe1\8]{ߋ͕N~#lyk0V 0i>^LJA:(!)Hݥ8G=I-yU +s# ?4L鹬s\0‹E_ihf*&Mhƃ 2k M :pgDXTsHJ@[QHgx-ۿa+CF_x?љ6TI㫹"h0\> r٪ǹ*)GH2*J^_#|,lN;jˈ0}6* :Lhh~qMv{^#&tc`FiT;T'F>@]"A܀X36L[,kkn8gG"0gl Zo,W?H>q g4 +QU"=_^+ +m>o/j#./":r{q@n8Lfh?Fz4l ٰ{"h-2_=Iq_h~ .,Lw|z}zӋ-wO\ԭ!o{QE\%ơHG?~s`윸uoG%pY=sn=˭y75k/oхö'Ȕe4i7g_S @1 wt Q;ܵH#'qHڻq;\2(hsbG8Awђ6G@S' #4Nu2#X!, ){8?bL*]-(- y64XDTpƟ.lL7]\G~ӿbn5Gr3?, hoh:hbY;MҐY5z'S4>qJ6i-,Sb]^(!O98ϢsQ@ +Ӑ%}*]*2R&mYOIM彃iZxqQH״R,=!@[^7'EWda.h*Qh94bٌ;@égwH. SY-wpjrq/+{BX}`43ٲ~8JO{u0NW g4LvBqmj"h|;gm'>P +!w2mAԾ2MxaoPJ|~h㛑 jqppeLp0" 1,FXw`^^1&:y>H]HKnCF5 [a3(eKl5 6Lr +Y5;ʭ6j=Eϵ7^FOXT4 :eazf60uCv]֖U7w{+[*U:Q)oźEg:üHCY>Tu0gvfi@X+Ld}e*~;bHQ q[y'$!T}Ao_" 3dXa];1;:KiꚊȂ. d)-=pdeH{~x]}t~ `?ߣK +kTnj!?y XNEE8Q75T&6->sG% 9nH5yK`pEeJ(2A_Y8hB!P2%g截j"3TE^'Aƃ>t.CNE  a&]]bQqwgCkдSGPuk!KkBDCTC:QqC9;lVK b;Wm1D B#&<-T }[G-/TQÆxo:tNsYg%"0rdD/11 wlv:lnG)j$}xX5 DWg_ _hp +Q!A+%7gG9;Y43>6da0{ $6[ʿO ;d@yL< Бtmvw-:U:ZQ ֊ⱳ}7 'tRwER&=j]n2}- +?h +' +@ nr)Crā@G +: s,y{݊'R0PhxÐ"sZ9oL@{ `bSBi G#NO@kdn5`z@D%x}qI~GƃtgCu N +_]_]Pۃgêc1C^\z'Mrq.E}֟<^;}? u~.%Ev 5mJԊ# FL~+ձ".g&gTJ̡鰜Ppv& +*]p**VvaqA;OD/@VVYevP\R|8D AJ Et`1 i@'[ozmQzz G'A,8c`*׻rtTt@3'4ЈЫb\K:WLc* +N:oX0 `1N}6D2h V{ C-ʙ :*#,Y1r?Nj +E,-g ;hrVZeͽX1_%XѡV^LOrlRh:e<3h>$bY@wI}P#jݟ1$C.1>x0͂3 5Zæ0!o!T#~(DM0PcBogV*P +tQix׮#pI >_ sX?{1&ʫpq}/~Mמ e ]=uT f}{mמǧB@5 ^,>^'kܑsv!ic왕dVE*gIS~^hV;39:ڕW>J(H-@3-UMK|Pfhd|Tǎhˢ^J6A"]ѠuMj0cYro6NlV|P9lY-c MHY^=.-cwG@įl7CͰVˢs~yYLLI@' f@ѵTǑA; qb(hY=}fZ֠łݵ77D[ꦀJCГv*sm vFR/G3hy]'Rh$h# lmt\%0`QZWut.RH6KOcop^lӢXs1ze /WO xjltys*ٳ ^Y-/<ޑK:olj5t.&h9k[h-J~׈0 @IF3рDcyJ D$m(j(A#}}M(y6"nN +(y$K:R8o@XWğFF@wIbӄP?]5 +h~緪ӹja}wm6bjH4h,I#gD{-|VX7 GO('t;@j)7:j58[SKwYqy+V?Γ^<ŧ\?ݙ 6;JP>-U#}g@M>/}FAlll)2Y 5>7aqKճKބNGXb|J4;0S.61AW?C:{/2r}ǻqb!YYn+ٌCb77v%4_;LRH PmOe ohq[^GD;U1w^릋HE93`5ā9o]=F诋əXA{J:z ǮV:$)Ж)G +K=z)f }tT8hNcZ-XFwZ疒e׉ˍF1"_0,'d5U82kǟh/iT=ҏ; yEl\֯PFt^0]o.m6[ͭ9ڮr_Gס3([v0h h)N2ll߁/#f"ʟ78;48zzwmSWr3m E5A wF𲌁M4t,?Z(n\B~yrN $bxerč)g) +#P_h7lfsz.XoX6&t +ܞk{uB +C:#oP*P tq.C nB"Z W qȄƠdiЖ}hVIzoVjQLf ["SNEą'v18h:: -աzC Z#;pq#XPhgzP)` gp7x4аpBm3"[ϧq^axnqߟBC4ч]mHߗ.7u +dU Ia4.C+?B5РbΩyAti;4dL3kQ`W{Mqho*lP7IV$N3L(2[+0gV_\6RB;=WY ˍ@3/AAR}ޟJC$ f% Lz@íi|UgH_|Z.Zo۷=k5FOUq*֡rQ טdj??z(6]@Jf0HgU%'*V) H&,cfY#MBP= jzhT؃Y sK-GoG!j=g[ RВ [SZl\p⒉`fx`\Ab|Z~ka?>]uG'sUD^} +}~Sv0g \+oв`nAQ= #/LqB@QHg}L !,-8?, |4nv?p|[,a,F4#+|t|_* +D.N.LVgN!*S{5;D}6ka Hw1KnwdzA\%:{ͩ&ڡpd1qnUfm5h|S+Y.j,ir(n9[akVbIjJՆظzn~v1} CkzI#97P/MÍG ݍf轼9^@m| X]eIq *3tJ(̐I4h /a'&r,k` % +K~ƧzKvl6tX8{xo@|>{h]#$2xKOP?X-xoqyXlfR׻z[qwdW˺p`@MܹYAWEȈJ}cu^%A+7J oƯt a PԂu8)AmqSI)C> :\z7n=p`h@ Z`,A+"/'<ގA:8?E?O2荕vW+7\r Enb +h(CU>tadIxʦ6F]$\UVe`|LdZu/(A5r 3VlеϏ#C=kety N*'SGKą^ b/ZݎA12S~;^sunnUO<.yj\;*8oDMx/d 4ų$4%KM2sP="`>n i=(qνQN^C$_qI{gYcB@ziɱ,+Z^c{@T9164tЭ\m)sTOUHZ^ʾc@opןV Ț;4`GV=0$p0HEr ,NV$@e ȜNDAI#'HI m j;2HZP@(mvc'ҕnOb-OnOAPk,=G妤>X9: 3--ka?T\ mGNdKbJ8E>e(qG~ +@+@8ڞTK54S|%Ϲ=toqCl['2AhoYO~O:3Љ 4 |*Ndkdmmt|3;FO~\OOyPF;}%ב-Ө@Ab6й1)t if׻zϯ  yXg}/YQ anDt.5XE ni-}!g9i$ re:L@b@%9"]ցc +;.`p5P@H.NCzf @/QYeC M#x*̰8M厫c!ejrB7z{qkGE%&vëlPXjOjJh(#'`!Lx@"'T[*_5̝S:b$^[.;bi`Tu[D#W@S ,u̧ ֒|=@gZرZ޽s_uߥGJ ~DE (.Iͨn.盕cz@HtXHb$RD@ \hz.ϔxjJ)^tW"SI0 \+ +*РЛB7hr* ;XbT`^ ufYL%jHH +$paBMH i + ~cZZ|9hZ_4*D:b`y' A 7X4h0%h1/`T:e"2sH4)hi5~Ho bF16+@VFC27)jM4Sg˥WLt۽g㥪'!H4h`@okAEe4j#@ۑoPeЌ&ڑeQCA~yE37.|IG7oWƎ/쥔.0Q|}_vӂ9b.TR|. (34_heY@Fn?~|r)t=]] ]Ġ U(sIS%n2[SOt{TϹ+(p QԈ/;7`@ʵč*T_Hm_mЉG*SV1m@W0סYl~;OSo!M l~X(c(J#wmﲯəSj7cy {04,̙똹lRΩ9zܾ_DY H )t&$뒤0x\oI:!fZFZJ.; j=СT4ȓg?tR$DmGT\s=ÒĠ* 5iے9a `ΗŅ+deo;<40)x!Rֲ=xZRZZ+T?K'=x L+CSzsF1b6%Fˊw-+*I%4)Kȟ6 D5{utHpQs $4qY\Ufj ]KۆRP Ӳ~P@ҭn 6By:FeĔ4ThZ@WӅ2 +@T=ɷFNwm oZzXܟb) rU?% eV RohDXA2C7] A]SZ4+[ +@Dz*XȦUjkmu%qd7J@%\_es.X: s*G yGFCiɳi~,)jPQexf% ֯'~^/4-evXdhߍn?r4jXN׬bB'-LQ(&f,~A21ˊ+zSo~䋗zꪟ%αxe\:?X*3 !?dBqq!ݒ9C+y46\3q(٘/l}dЫkxqpL]#eSzVR,̝H0gД_W\h% z BK,5"dufY5IۭBa \X:U~e^)Fe_dq3DƝʳkdaċ|px12s ˜5gXpWp6f@(UXnE/!釤?Mff64gд`7-qnv!#j![<jЀ~Ex )4B lNFpu*}9q!YmњI.u2ҸY] + +kr#1SU\5' }3;tgI"߅ZN &~<)d+{3o,E׋owo0Vrؚ :L^zqFIWd4>7 b'oyBpL{oƯ?{p#qY2FF(cuvS& HGސFBf?9LMkF>pğ-;t@$;C(AEWq36:!d.do.2&{Hq94SR]2*#-œgm%R_(ۿhq%l}<)# (GU":^фT#Uv*aZHHdL!oi¸ZX 嘡@Ch`-Q@Ӳ--W)P%Tu0viU6.yQݑm;u|2D DÀ5gQ$t BРz63~lٛK,fTc' +[=61hZ ÈYSyƱ+;h +^h +zs8"-1b'E"~mmˮ"оk,unt Hy[?!}!+ &ha >&|iʶ%YMQ)sв}wCD<-Snܵ@u6(Kȿ/%VPNobB E9<4Y?w7,>Ku kZG\nFיBnjן +u|iSTi姖ew"k!rvEHzc6vPmfA&( s)j5%1cP8Eʎ.pJm_SZWÂ|1eف ϞosÄ)SM(FY @K/M3i Atx!;T@~]Ӗb:5GV~ӨXf(m%y&bYP{HJhu~sҷ6/-8^vRo+{]Z%r\8heHYLg˗۫W?3蛊7766RǏ@{έ?k ]1vV{zV9(XY*X'̷Ex#_ݖk趻~ c0T`ZkƆ)"D*Ra6@ 9wMvhEND +ҖN:/˩yIf0g+A$ͱig} tpfxTh=-s'EUWr\KdGɸƒ 6X9IiKl_:$&wv +bH⎗PN%($aE昴c|n$qN5>;ůu*paZ 1 T̞'DyWWnRmY|~Mжy%G,j8k!ͩy0kh~i G~Ma*!pdȦgZ,0t)h!G[`2AqV_֠)jC[BhZri+%QV0ԦahM3|(H?MAm,JA3>ݵ USyk2,\yRΰB?lR46|!f9P=WӑV#k[5eޛev&'@Z kN67LK ːɡ(#ӷ-؈@ +sD< Ժ7, Bǀ566z\UTxc۽oSWbV{Zpr2*EyTac, ߒ$rh|,-̘`K +h- EM˟cqO@SL)s@\=dv!- 1s#`]: TwTlG/2 x6(f +2tŝN(fV@N(f>,#wCU_wK?~y}|hq᠁"B Mkg[+ŗ4 ^)tI7 !.OV_}?ׅsaYWݷ?<;usdΌpg>7ѻn%1'~o;+"NXh$ԚpNkH;a"isbVgJ%W3Y35ayl ]d3m, OzPhPw]~XԯR3r"KgV0tD-$H4{E.vr+f +:d, N9u3MQ!lۢȪԐbV,k[ +v|3FRt㸅:fjB c٬Ô9Tr +s=YhO K<1 ncɒ(&YiEן&ma РZ @\A Iv-aiȍ,4i 9xnKmrAܨw:^v;C?ky)h+&" =tێg#+A[ +Sn nlA\l֗U= lmyO;LMzEɓYڄ?7j (46:d#~)X:&ρMuV?jJX0m@wj7͓Rz`Xv*jxs~X\kUg NQOX)4z /8 FW;6?5|(df[tmcT!;Dfc$VY>f@+6=\{A!H,)ghx!"g0K4JSaX4̚.ȍ@f޹RvRS +]p`B9;mS:KI 4Dz0naDN?rƧz;ݙ;mw|h8wy?yjzhI};G_^,G}ll0!@ChfXL]_~={Ө[P^HcSd4#=mzhKh:_ è=YWc`_&MS3(#rY~7M7--ebR>t#uB"fFjy4d2.Sz2O9Hݨr HhRo&v P-8냁f(ΒhH/ufa)e!QI9Tb!d9Q\\ WDk'Y +رEm._J)zRLir4"ƖMAB%\ (.K?Жy,̙kr*N)Kh|0;iy@@4ӮUs$'] .v+>tȯmiQ3hZcDͶ.>`Z:HMB_MoLZcr@Ӣٔ$zL& 9Q{qn 7ȣqe{P\H +/}1e +Zl -pټ7>@Y%@#DZ?.Z;u5,z((~=1ُ=VYJD y'?zi@lU°:I-+K&2KU!2X-Il?ŦSrh)BqD4эa<5ꮗ @Lz3HRz7ox$U\8xC؟u8sP:\w9r뙕[jr]FZp*Ky|yO_xgǨ[@ca\'!h I.㟹g6SWajTIהlnP(ތ R͗?zq9s@KnJ5?з-r2KKhb)nX7NXR9rh0.1>L#˔ )3 `ց2/3%}Fиy1eu +6uy/hiRUVGh<"$PlMb&W(V2 $(ün?9O%Ϯz7tXul9 J510-ԑ@?h#ngawQ@ɐ4R*s$E ҋ#.]c<45>72W^]'ٛ[sg꼁#7V$#ΩZj@$ɹ +$GNdh8j4=w~`~Ə^:w8c`>@\#7F74? N._jʔ@;<_C u_i .7?3 +@c;j基udjjjve{h4m TSFH4ȾYdUd+ L馜0vp4]R҅ {ie^,#ڑϠ~d8Q!YYOnQiݸ]! wXT*(mU XF?aJkd"fTP+0ىgG93F@'ar/Vrxn57\8BfM@bCA~od;^;KtIxۭvbPRyg8`oZf+*.rD*?ub_.W~wT?3yٵ~m{ORKy[Y;O")Sߡo@Wh/oCl-O~ėVOo'HtMPJ7xgoGs5 Wa^yFYaA,! l%FT+xUܑ ަ44#.ҿЂ犠 #赫hU|#Ô Mb(=YW{OG̺cq85%ᲭH}A1?av{+XځT9jChia¤͎%*&V[N90N8,@x@'GtȬuV@V9b:ƴZgmnPOCKdeܑ+T{y#Hm=F`z+%yT;z!qSLtu%&r/v o Qy;OAt42+A͔Igwf9=l@?L BZ24WȍIDhƖ篭t*ɚ^(ꨫSc=AذeN.Fťx|#"mh̍˓/a5ރg?394ll:Fٺ4 +T' vwWXs6|~*$oznFtIsyjˍY 9*U|rBqb["α~JՑ ;۽aˇ̳^X e,$z6\v0׵PlA_"o,a pxH#ގ&KE,CAcBlID>Ylk&ڎSPG@߼ﱤ$93&:r6Nߝ^Ϣk78p6y7 ְyC_J2 ܳwZew}s/XpL¯*Nϟ}+^n?ok[wNCe +xwu}܍?]οnSA$Rhw_ݺtn9Xշ|y3'g՗A\M7qέ ?㷜[S=4[_7;[ν;yCZgDƎIFU;UWhё#"Gewx +DGY,v8TQ@h4 JpXMm6k56੖o\gs,~X`Yo;Z曁YW%weZ")m%ҏxdahߵtC2%Jsht(^,JJ5pVlgZ=p̠=Q Ӹ 3!gY O<7![u ܅5h 0-akכ +x#LIFxZ6&e&,?hEL u۔,@͊/,{ZQRK a Ph.Ζ"]?I o*5Y~u\Te3ZMAgvL!ش26 m@_ 0rŀ^9(CX]:NÛ[ڨ2;} |;['L3DQgK7hg .CB&q,̀1..#hqT_Ḛ~<֘K^`2Ls^tbVZ-lBcU^BEf1ɖ}PD.x|i K8H ;˱L 6VwgpvtA|kΒ[uKЅCsۘ^Hh~Q=^).) +PPY4o\7y<ղ3 xzkQ~D *yUA-7yU&*6_&\g7[WT1~#_|3$}z9jpn{W$])P~>`@;&ISRC!䐗4e%Jg9#GL +ͺfAWt>>u#E[-m%@FmY=$./G>!ѓsGpi9+\/rœA0&UCJT&@(4?J4E,qw|=K3; P=S 4׿sC7 jA?? +W'<_:gVn^w~1"+WtazO>tܥ+Jp^b~$+^{܃?{s:\_> ̯ޱY߽Sッ1ueﭹh\Fs=ұdgLN Pe`ZL6$2!ߵ6-PJ):~FG|賸 k3 -qG `- S:1g$†x=G2+͍Ml 蹾} j`BY +}1)bDNbPhK>0y# A+v1G'OSzPZOQH!=hXI ~"jfڑC%=@QV&}WZMZVw7_-,Iklly\L@`5^T $5_kSPF{gZEy2'(tb1.І$ : ġ]]^BJq FFVf{R2kr;a +;ԗRAЮc@G2loРXNl"s~iDq_s8#y3&dX:+_ ;7 75Ͳc@<4—鏥61 +UJn\1gV5f + ]_]!/iR}_jx]+x)]F&> їBǏgЇ~kO.׮~J~dӎ*kzY7Mge4>X %a6rgh^s :VF3лCmZo` pEುFHD 76 #^KXD%dأB+K,q1OK\` ;ʡXВMJp [TbL*P0RR[ +vTE !"f\=M*pJ ЪzMlVeAmCmI+b+tGԼq '%z,NA'\jliHkq4:>D/nwTmRX܏XCrr8qil\믂OK;$z!kbD.g\QYaÊ D ְѦKf 񻱊Ӿ 띮f(FXN7%%'F9TdIiI:؟дE5FRsUңpmUVlߌdGcfC.йC2!nߴ BE2'gnF]]\k?F14fMziJVϴW2|.+tB<*dj{ +;hX{ T:.2Jر꼟n_ا%82bgj"#D DY8A$?Ӄ|jCXz|ZKRn%g;Z'I 2(P)YR,G|ow7- @Gma_ȾX=4`.O2e%B8+g7"sl~ )zb~PC<߸ûw[O^yϟCH->phž_{~lsW_u20Oݯ ^@{r4?copF!o-Ͷ* 3" #+Ζ~5P3xw'@6G ]'>hP3!6˯&%>·=o +@3͝c"|FMZ\3U mkwT]|ohpPZGcrHʻ|ssOB}@a(|7:umĩb鰤{T:kTs TN tNn+RM9kv+_h_* +$a@ځbg`œ{`v ʦ$ h2^s_Ʌ]1yl X hc!/0tsqk[̷([r@OӮ;kVЖEKEq_zj .v6ȵ@p5paV LьlЧq:OY~x4ܤ}RagKS]}L9:(tj+x)44Z\r28*8l~ 5tļpb/%{ -͂ Ñ&fIbA./Zsh45[J:ٺҾp8z63<|KFgVfFքo{He<^wr}'Q]DڛP~ +*~S&W94&Aʟ0a}??{fC ?{~{{N٩:Eэi}jh@K0?@]DԠKN*FY.|c(Jn19vd 7gWTbVs{Tέ78nGѳrޢQTjSg^`g[A8R@%ج4C=vDa*'n-T:zN^ўL$nk$M5 ~AqI ZA@[y|.G*ڋEZ4FyâoPXT\]"/]WʘqA#z Z:d o+#vj$ KC>ZРj/&sQ$Ɲ $rӓ%Nɢydd} +&;425zu7ʆȎZd&z-+Il/Ψ+O#MsY= [az"/L;;&a^{q;;8Y-?P@g1\; D@}4^oIm2t/34QF3sЧ@z.'OH-<rGFV5x଱լ ɟe7ULM/d c6h+EBIG1 +h8 9#]-74䏃[۷ł-@gu(XY_nUu:vg7<0GVωCVmjHPEWgSPV#+ߦK۫y&~80o@L({_ڛ1mKҟ:R:K?tOMwhc'861_T |M%mw| u|FxlvFi5F) +]V@nID1MWv=5L[ނGY~Zтg$%mS9l)f,ڌ3V :RzN[e%{ƷXי&R.,f谱)6ŲêJ6(gگQ*G0vínTnPWL'6E5ٸpKL .R,yh^Khuqck;#Hb}?r-Z#2V#7yBy48SCXUϸ cYKk) :eٛeCt+RmȜ))?_tBBU7^ЪRK]D%$cdhFH +!pyO 9<@O߱}mpDm^JbLy?h #J;;:٬s#ҟ<Հhog* iA|w~o].5K=;+*X_[׏nd$QrV82!Z5 yآ9p"j"Q|/Poş?!=oyOe.#o@<{0BLjU|]d@zQ -}ѝN<[( @wPx(FNͷCT?rӆVࢾ0Qpw%*_5p:Sw43,%h/rOn]TsS݋3lFnfg^' f-C3]i5-]:IFAnP;G]bIFIq]F9AC)6[ + @`@=t}*. p7NLEw׮ +EHm@.D%V@i%v:&؊ujaԝ38Yo[]鬦rB-] u 4`7{R +מ*l)k ej'KЋ9z0iDcБ,O86,[ @B=ө>: +ˊ#!2nz_E?Slw'<3^vCmD%iܹw|=K^<駞;8ݙ['Pb3uިUkwcltE3 p)ou5 [(u|ܲgõɇWAVp{_Zд`-sG  />GAv6ݑs'vdi6ތ-15 jQI~ XIh|#:qg@X%9yy A-o6efh2 R=fE;X2քㄩtNTl%΂9NZmL @cٽpadGyUЍǓh`nPsy4䱣fô@gNV+F,H4t6\SdBi%-:1{ [l6oȚ&:P( a}M5Įk%亊g\#sRͨ P-m +kڑnk G Mc?3 0?-=@r/@JW,f襅kv%9CЗ|=~g-Rd hYa5}gJ~!ZŝCiAD@]Vzfy%Wuyo.o-UE%@d[2ƶz˩k=eyţ_ >a!iZ4j>*DZ\[gh޻tmwqƭ.T&P[b &#hbA3f |4 Xm"P{0 qVusbgĕ.O-mq7>hGݵ:V։i}xl}{/#J ҂#ͮA/%(rcVGKKnֲ~^>%D[oBtf<դ_̾Xވc.=q%XyKE`oo@c52AkzfE +@|h:rtzV&8:,UŸT|ɳ<-Y~Ï_~yp6?rǞX + ʎCvhmk@Cy4t-ˮ$[AU u7֑2(I6҂3L*>MNNޜ*f &^(*$J`x~ |׽{1?ugbӯR_^|c~˺dxK#?{j({SҀK`4P%~c_EE<ћ' /;fl2A?}-:^3xݢhBqя+~7C[ ]zHM-CLSN\w#A{1+Aðg bdt'|+H:@hs~I~!CPZ*%9: ʹD.jRB`|@LE@]-GeÍ3v&+H%Tmr*͹/Z\R ߊc-&P:IUA ^ڨOGX6'+F +>8c#擧;\̮5Oy 徚1 +TBrӵ 'L6jb}-̬rJR *ZS]3tkY0CMBM$CL<.6[aӰe~@+tJ4,V-SA/19:`/l';cLN~Iuxey5J9 5|x_aneZ'L`h +֦6@ FmA3R.۔3O Lc-]j13HXC@AS5g,VmFWCk +W3՝t|0FU洒)6E7ԭ@\⧞vWQmݥ3FNfQÍ2󛿺|0Lύ[-:Zm0 + SNF }BNgqdODUL'O%PS.Z[X }kۏ` 'n >wS avŐ N!bn>CP45rX%WC?8u` @+݊ҥ?3;;ocniL^Yh-"h(++^8aozSLM3זq;;ć A-}?T(4e~y-L%uɰ^rY!gӊ]"\.n'QJ@nrѱkG8_[g8* E tWLG&\yq(i^P\~=5:Hco4 :@sZl'ᲽP>PaP + +#ѝOT?EJGYl\/nUM5^ zK}-"VN#ݳZSvR\le*eba.b-ge +ZXs?؞Ƴ:3Y*8P8g{;I zmapBe ցS*gHA:mhZ{R[MZ.հd X^cSUC.'5l Vl׊:P"S;tĞd)iΣMAJUhiU P:Mt+;;=UL)']h!h9_uhlq&Ag2D_CdsWTRFF't5z0⁹SG}Vn'~U{NjM:́aKÈuV C}I@V>h7XDD4]וv0,=mJ[t@We`j4b/ACx^#O^n1SA47czt,|)^Q쫿yM;}}hܹy,|xo]{›z0G AA_~OO_U5,m툺ph!.4Ƽ$h{'۹6u QCg8lqx/wʓ-nr..'/q=oFͱDXnIK9j3貚ڀYIT]h),6@yL_vż4^Pe4h5X}ģkƴ˂%5 }.ƨB]hK3 ehǖѲҹ"Dk-]}( +5QAkG@F8UM#uёXfU}E]rT-_,dД,]Y?p&iq +%>sEȇ w9̾Vo*midz(=ZA *;D{4[^84 G"XrlTXo0/n @3}?q{=%7-l'oGQwm&jJL\cڲm22):0gGeb~jR7SsغIp7#ҹ2C1q+v]@-EN'8:]eͱ5ȭS?76E g7dI:h{ToP S8Uރ3%54ZnAP:r'i9NΑ5`쏇`LV4Oq΅Jjn0';f*4r:3Jcj#Ն1hlIoWlQ$|w_ry%=XCo3GO?\ytxY/=RŎOӯ=d6y o>c9*O?8ݸ]Ip5y*@q o.޴*6X» t*sFFULDL1=[}*ŢlqBIywtQ@Em iAA/Z%@ػo/GqgS mKJwE(Cxr0MS>; ׻{v~]/Doso~T‡>-gz4uXL Q ie4H_+wӿ}l̈́fJ/FޟN^O /W͛7\w#߾Bױ.m:y\Z{bqܯ1zU]e-ɾxie:mH4jq5S|5֏jV6dViQv>ϲ+* +ׅmdd2zÕWJȢiQhp@pFNC& Y:5w:ɴUypj{ X@:<.8QGYf+tW' wuK$}a(0M9lz73U(E'= -yݥBkζzǯYysMKGlhvd1uң߉SՎ,$%4ȫmWg*$ɥS8ٔYs",S@["VX6RԿ{{9Q]Ac"ܙ _ƀ~zNԑeg='@HMq1PJ)V DԳƕbq3\`k2B +bȁ݃(3'nW\+ o@{jMbc(oh31㑬*;X^bK;TVY2Y8c&ffTh4HQE;vٱJQ= T,y@3gN J³lzk?=MxqWWd⼿]h@/CYCmho)?_9xmh]u3`aڪ޵ +3>#y8&tbIJ.͹j +_t|n5rr@΋xƜX0h\D}4fhX%`VLGa{ IKö@Y61Bv[t -{q ։~lx.WǸ@3uӬ2%jx(X> K8lS6Y'ȷm62QRC3hq- ʄ=T,V@: 1 o%\L6*fKVY4۝i!zefnTtsT `F9G*T +@;Nf'l0DgK\%y^2N+NGlDИ^@Ӻf Q]if̀yHt#6B3:mvb/fLN2ֿd&8h㵧 ǮhPf!c쌎jfͩH{`lQ.Q+o@HU.‘p7մ>+6 +7+0ãsvFwa{+5?/=Iq[@#6Wj-Z=] FOl?vߙϔ檀_#UhB;4}fҠTzr1.~Z:P??ww uTnٰށtNoyR kh34lB gֆk6 [W'u+vk RhHOSuHMmrt*3 il]ngLrZ4Օ2_~jԅ*z@՝Mizh0f \ +K0,\%KUĒBSL?L٨Jtez Se)[Fc&@K_}!%e}e._TWȒ0~ zG%UeJETxJG>悫FJut. 8;\gԣIyfYM'[AI~`cjh>;WU9yn(鉓 +LO"u:[r tKɲP=6D|Dc٠5Ns +hZs[Tب~:4?wJ쏦WY̵8/ ?"AR5"Υ L*M]ll53 ҏﹽ~[&V^)h4gUhPnz<1v W;nu ̷Ps.IG:yf:u+c~+zP{1C_lcYF#9bЛt͔ G)f7%FU/ĊjNв0G1@R*/gg6'"'.?[* @<\)^g=v+D-G"4 eo?y~xP׽] ȟex[ɖ'iHEoA;LgƓTB#\̨'{i{|’yjXӰޅ)ҽ%5eK=[UK|׍ݖ$@%ЫV`KU視1-R/ +F(i bqLY6@(!1hX 'cGï;U<4Sc HnVJ.΋aޛGBZL(ӸH. @YybibΊ +ڂhyŦn}mag]`lU ʤԓWz|km Qgu*4>y|7>yCwͮ @I42mzVi3I~:fSܬ2SV0$\6 3#}K3)4VЁn) +s}6>j=W@Ksui6s ;`VyRәAYFuÆM*;ahqWvY/4bF10bijeYG,4+)4STǓt*KO3@D>o oW|cgsqE#4:Vv%3:f #7s>7YCFK@ka#5nFBŤ3xwhT32"3y䪺:e:O z'dP@D(5Fˁt^#&L&!wF Gn=DÇ_Cgy`quoZHmtM%n@+8Egc E=N=X.뉺P(Raz1I쩻`kw@gWzk + yR) *?UlpN&9GAث+ʜMc?Z%3ѰŃdB'ngJFa%@]Y5:[512*)T@'׫9&=c5JBZ 2 +k21A7!bkWmRݘ𕣬m3 G޿Tݸғe5FHu,3-'֍J˖i}>[hRfX1,c'o|_{nikbw暯߹goٓ^"^xh{_;0We{"0Т3><^ӈ;J + Ą;DovdƯh7W/2X]xj0;TI[$3,ea23@< T1G喆&-|"j/X1@[ eEӸ[76;@ȫ4oT 92J%v2S1%sq,K_x-# Cޒ #:I4e)-`;%d*XG)RdU+Yw"c!):Ukĉ+tF-Q{21aSY +v.@_ufD܍X&.B#W vsYj@)nx4`kI<;8hP:ohmC[0 +ڎe5z3r`иw])d}-zm]Π3Fz}V/[|a @FV>\0@a +\I+Р,NPTN .k[AMhLme9h.:b o Pw\ΎL酈J\q#uN. ()l:Lye,K=9} h*@(5sˋfXn3Py~ +I?t; TuCI+TxoO G ޒeBYUhB)^] Х"3ڨGmRi1^u4`b5t_08lз4rC~9? +>Mu)I8@d8D +4B57Y|溸wW&;Ӗ6ʂw%Ld|J'@O}g7L O@WEQͣW +-:*"l2nTsEG*5I`neCWc>f&Gj|V09ޗJm,#ˋrgN䃧b9v)*w"7=0@}?({ +ȠO,y2mkyl©7:l_Q*iq" 7{bbDuwlڈcA->_N,?o~W֞@UЊ+F7x̫s=#[vG]3Ү@g6еq3hsnL衾gnx˫[yc=U x'_Ҹk3zAQ3r`YuR(zcV`U̎OJǵ\&RL9fi(84YTE*Ug̓&6 +k|+uJ{szb_TٽM -)fy֣tn?1Y5#gg8k{TV(Y_0L٢SI7l,R9z^rZs ; 6w~9h!ʲfSlP[Bf?xByǩi.L +*0sݍN gЯ#jGlr@LȾ΅#0QiV79dƕRT? hV5 U'#^QG뷙͍k. PG=ٽAW@P䙺m +E@Cp4|"F\Uq@ɛ :hIJ|j(Kh~6<)Hݛuŕ"n(T<`z15 ";aȋ"r @$Z F̘ ͥ!2lec#Q7pQdgsCWR`*3-VN$`q)EN +Rr&8i}Xv h jŨ~Q͔Zm$V} +2u &7/VFtLxɋg\*v$~ cYL7Qw*KDUS*!fS@ghQTG9AZΤ.e?930Ж䙊q"N;L(#`=-|vML:-GeBm.z_tS~{1+h~oƛOx/{/}sX )Op sgTRŠk$W<| ТG*{ݢ;8 +}σ!N(;H`HԚ<^)f0}jM) z*Y "4ŦW6Jxn5kk)TNjJiTШFWhGX +3Uݜtq7 (BK"+qVl[Lm. ͝g\  &gҾY)fp؞G!>x%99O ωO&OvٝG,q$ 9޾0O +闖=@*4+~}x韹_x_ N[;wHsTAt[Zm>"N7%KDh~ *|fJu5йn^ce;Qy Vj*Պ-k1 0uω+JVSH"xaT@-+pC f(O%:jrZA @ޘ;dK|.d23'Zh @+TY'*R*et"8ZǛxYrF3ıʋrVDά1 ָnҋHRf%`h +h:\ iÓ4 e1N滪)fq7ͣ1r"[2ljNG<*Ӥu(@'Q Dz>Tٗyn)ͣOO3 ⹑dҺ4w?"hFc n,8^Yv(}w C`TF`  @*|<1BǷp<7/EZ fIJh0}."fj]q-h4swvᔦ ̿V:U]0II={no<,!3f&%^ꎇܹDzv'ͯt3u 6C{uM&.hhO}NeuX 8l4h!m$Nkuf 큗l.vp ˙,Kjjjl%NMgȽD hk\!NռKk`ߋC.Ud>(?F4>\M ֆԑ~v<!=_`+9W}`;3y@,@hUpgBЍl7E|a<<bȅ&r5ֳLϲ633wmGΜvV|ʨўŠS-xGCqҢ*3HZQ/TtܓJOk!15ːV~ȝM@@b&ݯҞ͋^$.[oedY\_ mFm0E)4bI^R m`rǞ4jp^ӽ#Ϻ`W49MC3 9F s3%JTYMLvi$ E-+8[\n%_n//ްSLI4[–8>#G xai]ہ.=LU`Fh0!+ q.`茲eЁ wx4$DtOc`!A5[Vn5DW7JyҀ%ЪrYulEs@& @׌Mٷ4ՓmQ!YvzDw:+;(&6p/^/e}!XuqҁU,e_Hxir09m:P + ű8NLOMyFiKQfitI:\6rrg蔣4ָjS)5=' H'vڥxhB8"OwtAg3\P&5*Z iyw +spJoQ󍏟{{niqև!@ȼi hGs` !~'bMlgV/<3!.9^Ϯl ߪ?-)denS2~?r4!\[6n΃&82`ԅ9n/QfC(Ȏ#ML3fW\NM?F8ǀ#QsWg9\ҢlySsKl4,l(dee} +,;)7194SsRV2Vv^C X{08[}o3VTN)Y95іn2aW[д`nSh,VZTL*ސ +^x@Fb9#SLKj mp>eK@3 fl˾õe!,,~(O`3eEYƝ1^3T-*tШƷTui3J R9`i_3WEeS'(qKqyhVCuW1 .Dy6laUӍwx<3ܰ]4>4I=JG[2ygߕ2g"ebgSr˳F: v7[z@c.> +w.h25 5c/= *_4v<3h˅8Cp{ӋAf(f*_UU$b@ mu0WB%P=[.ۘ1®-}92.ɹݱ̣:%-Ƒ~@s̲/,T5!#hR%m[JΜ@JՓZ8y)-gk,oVIQ 2gyFгSv'%PƊDx +)rѹ#?G7 8r[.,۫l"ʸhb!$:r,ô_:Ś#jLE/eT\$yttSe ^Fݖ3Ah2U<{/}ݣHyC< +YNsJ+bG:gg [-]{;  o@v7>ǼƮ|NXu fDJ^q <buO#LykXqƎ?v#wdZ dԬaq_qfn<<;XpsƝɅ1Ub|]K2UG}=!Ϩt- ̸/CEi 3)V", po +~n$\8tDr[gCV/&_3SYmPX*:@]/kI?م:뷁ƠNLQ N'Ͻ~҅-%"~o*?~im'\s+5rۨmێށHR2teZF jb5ѐl9+l9,=vgv*#lh Zܚ8 4-g82]O,8l:1#L#OME +U8/;Ȕ- 7)zil94\ECwms0{/[e;N0/ d;f4Tfxv$"*YR{[3Et{ Nq+E[yɴ/ʏ0b'ϋ= Ɓbg!7cwQXiByg +j׃*h;.)p͜!U>3nТ)C=vdw]3\ﻑGa?.6C @S|ɪ(Pg^h03fЦCOt6PXPF/?!sC}Äơz:ٲBgKk4kE<*#]>YJ2z e҈½M6Zh4W]k+ dygy#uuЪ-T dʂ<pyV&],s`123b>{;<#9Hl\^^ +hwqucl:n,3hϔn6o[fWȅ-:ޟa[n=˾44G`ĶZbR]"%Цvps1Ӥ.Db9JAJ.$tGp-ܽ"MpHI^jԌhFrGSmӋuG%\ +57h{M,DY:Ien>Vl$Ӓ*7=ы(7[mPbbQڲ8h3Xe@92`fQ-ô)VB߫ T5σNz%F @9;rЪb4pz=LY?#"\-TU[-1”q-\$^}I΄藫W;6& '"C8dđuUע5Ό{K2(.$G6j0ڦ]RP^[Ӆ5=ꠛu!faT uҔtM\݊7ne^\u8@,xб7v r +@Pn#޶{Hh+G~s/RuY_۬O P.i3Yf~Wǎ!8Vm$5+зvhW͔|k?T"b9<9BsiX&mdyU.[sMpRѼFӬ@+#|ŕd+\[Ap@|YZh>zswuE Khe,g?;>Y|RvQ=c}N0-YHtYWM7pN)噁{CmsY$H湡.(nch{, _'!ljiq`,*##pڃI5 8[Gaf $>ۘXr\z0m][P&qRj\3Qj}y4} q$&v~t@/{,09_XB[j K/Dp o /x=cbI"P6=Iwj•٤KnR b@[9RV5XOoE)n\=$rig4r(rk +K |s]4+h˅EϣXy ~;k07bW}]QyB<0EIҽ%Gh%vm652 /Kh4FʢnL"hxn#>7n8OkEe1{TXCH59Mg%p@:[_Od9:Z]ab=jcU?ʑfADc%¸+nF~2X +5X@v\\Kq[ +;3c x%SR[sXf,E,ܛ5 ʥgH%зQcf˞JOM*؜uD"Q^h6 7U3[eklmT BAɪ r tPiNOﲵ c/J2ntT`KԬӠ(1&n:&.PDӦFy%.9XYyЛW|Tk=dRS@'Ҽ8&'v~:auiJGi߸ @L;7ց2z ڂchOAc$ !d"hk¦1^'/线7k@3TH~Q$+T1A3(p.2#V4SJ| fc"~4|ۢ}$wWpB"~C yyquS;pI{pg JCb#>=Dz)nqRt^6W\j +}g3)!ȝ H3tHso-M<#?]\Awau1t-\8T=4mg9(˓XZ㗍K7 VCCANȍ;Wqm9bK\1౓j#FӺd+6r$czlSɆ<4=H.G +2M%17uuX +ChɩDNB\4q +zB@ J\Ͱ2h*vf +9-։g& .*!3%ڠķ? +xYOv +:R}T~R0/̏/}r;W D-q=BWB1E-GJJ/%pE̕SWlreiYR|9N?7,K'Q4;Md0hVM[,eV[tqa_W= @Ku%vX@< 3Oe`zb*yŏWM`VOt`Q#ɭTW܈ᛉoH4cX8I[p,o9䧧pl4,->{#j— +d[MR5 M1Q+h~YGRIizFBYiM1܀BV6BY^}?J 㽝l[x-q7*0:S ok>7C8\2Lre+cRn*z9ScX% hQs!~/%ŔUvg(e-}Qsؗ%5b>`* VB4C|"ZzS`Sk[VoƟqr 42+6T;keqlYrFe64XJ'ϔcZ׍@[v*uQ7-ǤP +Ќe@ fJ/9A{5ՠ{C9SK5[_ǀ2q5ړƓb}a>݁ WF7kxk +)͛AJ4 <B'U]",`O4Ty] +@IyoWk%ٶU4$N3cl@cSbF52Y **KKA=!0'N͓oPwNpf$_2zJxp[8Ll[ϱ͜v:(S3.@cq<7 ̒K0S}j2<)%\%GzYz )hfYCؼ\Y]~R{ c47Up(t/:uę)#49;؛ύZiMjj@sK +0}N8)4)3rjx=gC OF紊 t +EZfՙx3K +34,eP^(Gp 3d;i_1#Q:HT:-ۄ%EqVv#`ͭEjS؈QMW` Ýxd:9v(vfyT=|鹖:qJz3hI^صR^#\.*ͧxLz:23hS +Xzk77tl9ﰕSpz fJH\U*h>K?R*a,YoJBc]驽g[I9vS(ϥe Ksb9IJhHKiFs엇{ (ݜ8ͫr/@ts˯4NiYàjԦ\k^/ZG-Os(TɎREm,2YkV-|x# ڞ"1@3#vfj + /AtLˋQ7 Eg4jTڊ ;FiVD<<'lW9$N'_QSTc]4ƯWsW{zWwy|u|*U_(Y4Dc^Uz/;,l@ =gR2{mlXȣ;9S{!әUPU>(@Pٳ`] HϦ,m4%s)whK5Z|#y +=λ0ka '~r!ĤulRy?n 6V͗gNHhX)ęX U2u9A+V_FعkeYc+a9e@,L%"V#N-xVp E-^nCҪ*-' +-3+hq^] uÐ +P=#qA+B]?}4S.[ѵg{IY۵~o/z"֎C7lw0Ȕ-@7mt0a@3GrN,u@'|:[^ӆ_xCJ?$57sfA]8ڤ+8sFF+Q 4( -=krN($Do@3y=#nx0]bt0B?nINSȟR[&E 9щӠKj5%"x%9SZJS# 9b9ūh1M:LA4xA誔# WXL)[3})BĔI+cڦf#F)4֏ +9ɳX'>%Z>lƫ!}f6IJip)f91Wؘ7]JBvG*$X#+5)c^u Se< vX&z|ZjAYo77G鱡N\oo֪ChJ9{Prpy,Иo$`nK72̜3KT,O2=Рq<72.{i7-(? ƒN,-rXn t"YU%g}GdG*3 +I>h+ExWWr㲁sIw^ vy˝bԘ&!?r&5?Ơa茈g̰X>1wcl,Mw~fd38{ +D◹2`kृ{͛>=x-`<߷v?|Kꬥw"6jdk6 +mTdf4j&[A}yVڬ`PtF [r6$HME+nЙbgԅ#ۑ:A5lƪ7A+w HԛdA, w5+qg螰*fh +b$ *oG Yf}!~~5OyU>nzIghWdO.V^'DoF* Lz8H*#%'U])V])M.I?_/`s` tc`hӁ SZ 34JpS{pT̘c?hx@WʊjT9A#*.(LA$iAZӉo;E%a +`E2FّP^Yt3t :emKy0Kf+(RWdL{n.N*~-g0" f4{YpgǾr2_ј75Pe!qS>cn +5 x|N?YE cv +x SYhvE#/H4>W +Y Y +h0{ |(YMyjtw&'N1=Bhȉ3n>*@3  q]'i35qHmIK힩@{>,;GjAnc;h:g +0DsdzlO¾;{/<%R=yuMB6-gAD-h`SoMKվ Gs#eyX x?Oғ ٚYCHcR꫾3:oyn鲷I3՗O{ןb[s#gܞEhm U> Sua%TZiw3_@-mFxwyZ 8!J [G ٥6.dE!ECE3R, ie#89v(<+ý15]m8[GNT\^\v3 Ό76?$to~  _R|ԜDD G|m/O /W[V@NO [6Ostx /nޜbI[GȌZ܉%IxT xx\tcS{t+&ц$4K@鸡1@%`BYG2ʼnq VFkK=V4l6--t !huA{Ö*{M"voSc\[(Gjԩ@uK)-E0=עFVPYsd`ZwRr hKWE`&WrK+o- 󖛪tL@,-Zg 2F_CX6!qRmM6氬ӤK*ۨ:h-4<5!g z8@cq.wxߠlW.h3d/%^! t{-a9g2$\$GBCt#%&X!ij& +o3/)}|ɏƑ) +-ʐYaBUw<#2۷l>M[llZ=6m`ְdI^ȚjbxwL.^,3lcmZ`/e-K"DzF"9ݔb}̌qdddVVUfUYYYUwT 8 "RR{d\R5ԩ_{ſ}/"o^[ }QƵ4?7r88H{ï杹¨=TS|eW2Sy%oiclhFL<;Od7kb'+MYwk8$:Y>gy֜e- *ѮF;X: `c+ͪFvm-6i7ݚ鞨@g4ʖY ft>6Lw?8; /ЪNGp nʁ gfD fPYA,@>6tDp|nC1qo8]pn&YPإe#{`RLIkH%4y +?"QxT dơyt N(si+K=[1ehv$(F$]:R}w#2(릺5AbsbDQ}'zcbpb78r͆ N̔-ǝ #i Rd +1+R[24}274iD ;-M f(ݽԗX*& :хmCW,e\PKd˄(,.r:Mj "l "%8@of\8cTKC⶧A Ωyn6(/CߚI Bϲ +&0( Dʋ,Et_EzI% +6%zUV]58 TƧ*NGh?g\DThGT N@x~^||w|͋;)Sr 3˻{ !@]@˵i0a @qRyr1}+ic8+Ϟ;*U xa1^{Z{ݾV0.)GW8*&d>:6'` dZp [.1\?7Q[>#Mmt1wLl4 +POghGD!AGNҰF1-ȜqW +9nNq$DEM7p~Nab(!-K5(;| w҅\Ɇ^3@O +XW|Hla4Z*Z ' ދN AhMV4ZD[|*P-PhHZ12 є%Σ4Fw?đ[O)t28~Ϸ>x~? y 63"WԹg q?ys4O>ʢC'/87yh%C!py4 V{rmca5܋oȞ;V^L1ʌK@ %eVK&WɷҴqfVxX٨CCg,tͪlΜBY.חS"5{5U("$R-ܞ3-\#We,pMNZ#9d͔;Sڢ!*N005l`4o0^)l,WF<j_lo|,O%hIU?ޮ\s3r2aCq?M F% Y/k 8 ]kfguۀ%N&wsR[XjFs2wYƘ~P rO)/7Ws6Ӹ{ch~puj*LKDfMXz=4^Ôhrę:Z- 3WCݝM5y h`ԴxCvRywЧ=O6EAdFQ9!ٙ 5ܾwBIzP ڒ(KaVmC T(pОX^fݤ 4j06Wpۋ];[@t3=PnigynԩCX ?hzKEB,a:8狂,1^kK-dzgOxn[Z]"h+4N=]sx02]xDK]-+{~4w^A.F3Nߨ~NN~T1kJ]}_wuY"z'Oo3;gV?{dz UlgR={z&K-*XNnƹY&pT9 +tp]ɝ!R WW0$U [p4`yV;$9R#v#Wi5gZbBi&eЎَNs@r;0͸]lۙu۠y!/Qؚiqՙ/]U + v`EЬ-b g'Fkx.z\=w1}T6-児~8 uqC9yO4!e D /O +)taZ4E@3P +.U#V +.YhpVY(-x@GU @ &!ăʅ['HB2lpbdz`8P_P>R*:<ܲx(&/5x~I$͠tfRSk"^o,絙xX| /<t^djh14#F^u9_!}8vAhƫңb+ߏ'1ۀxIf?W>ܨ]-\VTO +)SGŏ~yb^^:=~V>9Ъn\h +MrbzNP6٠U^FXCCԽxBYu tƂw%c<:oD0DX=Ha<7 צ oOzŁV + _GGG2d93@ +@,n!ZaH!l#kPpZF~[wحEP-hė֨;uWh'3Nɛ~JҎFQ03[0)řcoY Fl;(H"$t5_:@YOĤ,irƲ>Z!D}t<>W:B@Aڔ>3O0M)ö,wLr`i\ܷYi_nC4<`$[WUQ QP]U'j"h4I:/] ܠ:n\|M5@qmx28@E=%xP}vt8ـwl2_'m~YjEB(ծ/' 1! =7|j EE띉d٩K{2ƣl3 N +Uǽ>o:aU]_M:Pz?J9i?=-7Bh9tO^uDЏ8h쎯=Ej7lx]h_-]XG +ăګ@aϽS+ +={ 6˙O]<w D遳%F=^̌Xj|ۘԟ_͞:&fF_n&LJTfDB=H82t\p퉛\H܅@=JSa~ 50WVy7uT_ƪgqS?=+\$ +J'G,֒WJ)IρIL& nxr?٨O=/u6@SgPOr\Hq`I1-F#-tk +0ܘJ42=TePsYAh6H5V"z\ +W Ļb.SΊ bkyGp\ w[hG9Ddžc#%B,/pF a&eεQxQ,Hbܢ5˦˝pr>8MSu +MM6hBd_qկ޺ou6>W:B>!?=,O !n:MC45^XYINT/f4 ;uv +@1B94.9ɵPIEetzs 8-D4ΫC״t9ܠwU"`5 ̴DG:u\.yemZ&ێ'o@^l3v(T/P+כd.XL, T"}uʣ} =1ָ*EtM=8;A3}C+Ǐ͢ڙBeu$T;f4gɎ+/7!wq+}˱_[^'h|6j g˸AU?B|Ep'irB ~qS?Y=<+{ehjgQN"b'_?./fj[{rnV&5hV@j\LD y3ݦv +gj(=:K8 #s݅)fi`F2m q*^uFe@w:-x(VEL/:A&xz^g}65Vږ@kWl:ޠ=G8ʶYߢS± +ʪ}Tm 8~n3#zkDЅUbvʾyQ$OmV_4SU/,{}|(mǝh *(s=%śרe8+i]Ywm.Vh[CL>%c1.|/v7jm̕ګ3IH{)tgLgVz:l̟虭YzfJ KN6'ah$Mq @$`$'(>oh~o6 PP :izڎW:AeK?1#gsNQK& +6H+Ӗo +:kb̠!% 0<}2]Tpw|B<7h86;?r5D0z1@W";n|#;Dx߾%ճ r:9ajgI -t})qݦCU,a|Bg0߆\G^z&S> +M^LVýNBsrgmzf\v'ގ?հ#T9+]?^/ߐ;ZZ/GdpNt U<)F \$DgZM+hF0w3K?^L6mdqW7S^*Ng; xg0Rl\[d/ph8yHǚsS>0g0F˅+1SZ>^"@ +gp#Mh= i 2}* +Ea8xpM/v\^ y,8A7\.ngis x9$1{y Š9ǔq-H3Bpԉ?;-6(ަ9 b7F)vUHzt#Yt&G4sYZ-q7ps:.:0(]˭zXI@s0:zq8R>STorZ?0Cn;vN2nwԫsP7@n(F.PDa n4Pi Y {`Н05M\`/LՍTt|0rW7P˥)꿾[Û~U⹁^҅svWHx[;@{>Ooă`.s1INůT{:sm ;zvM{4$Deta/ W^ @1rT%y59¸ vZ-qjީ`} J陫@ ;K踓@3>o[-SF" +3mGőv`K;,7Av<=RH$_Old@j1:s۩q\T-R#684),l9ѧlgY M ywd0.e}6!O"=bZ>MD<#f̠|*w/v~Rp]vyzC' @Ka^E>V4[LL2c$7̩'S;Ld| AqӰ\>M +; EHhw7JVaA y7q#n2+[^NkVPWAtc.,og#˰\^XM5ΐnjjT yaʁ6^*L0eMΆ)(Fpf0sUx6 yeL^G|[+ iuL)>s`14t0,>.RurV#*z7zвۻUO?:q$rw9s\8 -73 9dX_2p(g#vs8J8*i:hQnz/,1Q& ,ٔ>v V{bd= VȅJe J0<蘀܍7ylD .5Sȯ"0AMӚ# s;4;bim5wUOqdT@B4|1w̺E6[L h M[+0Fc IMٷ@ +-G|TeYɳdB͝YQ}{ @![NFt,H +FnʝZ?;{ǩ:x@nxLffʲm 8Dz9?hWao==y_lL-&.^oPSRbPMPNAЪN),k\1'3gy5qts`ViPF%yC>c<PxEt2ܮYʻN!ƒyv#Y:Jd̙1!s&dFRxvt{ kSbUrсJJʚKFP?p*f8C9PWqtaLT h7ʮ}k,nRlYڷVz [!xРIXM6^Hʁ 7<|j\L%YB8'u[lp(.2BL^o|h=Y +jy(ə>zӶxx.7ΰ9Vy`4;|&Z1*"$riXY^tU ǿ9ƓńpocQ7t 1h=qn7fZ'Tf@ fcy\}\ʥ'NB!w0D e$JNQ}EiD t9;s+9Jf+o fg!,do^WFc/,Ipqk+:yxt5B3LYs~DC|, jtwC=KwJ-Fʷ^夿Pk"Gܬ$QI޲R9?y\kE '8q@ +ofJ_TP#hFhxps-8֪KgJ\q?y_4S١u/gww~ gs#O҃r̩kB@Oȸ-U(Z"kd͚Ag *d(l3[g>Mx`3vfspD&h{TVw_` +\~xީf LoYtq8'\klwVaZ}ٱK},!o:8Xէѯr@G1mlh`I˯'F^|! +P30͒/4',ngDtgv*6#^4D*6,!sI{^H89l.4R >n⍌@SX+0j M8ȥ4$8 R0扲 4Ri gFM/h^oB-}7͍a1z3ԫ\AksjG`)+*"=+3T1w5$%Kgìw#Ujdzl.}Ӡ,O'/(hū,8Zд/Y"dzչ[94^MA. mj\ya79x(At‚6;"P +7Gt\$j0ڒ)J{6s4զ,}з )YN+.lNe#wFb 7M~X4f9y;S!'n()W#ј eͳfL $ћ`a~6/EmܢngN2iP d_SeRhf{) ;@fZ +b>GwbCӟ<ƟWu>6n7l> (G8Z:L:KF; Ρ%jC{Sw,Q(͖ @7hh/5=XH4)hj3Vx,Xw',C`EJ9OByzɜϰh:Ql@maԪÔ +/弡m:H +tejL=5G֖ 5?&n*2wƊyG3V1@SKhFӭi-;|T%1^Ζ=<56+n]%lՁ^>%a;w$: ЌOq݋E8lq7s(rgJ0ۆf&d\ +"f tUnh/ՃX*jf֑C_xt^Qhvl s6TIS|.ap:xr(8י#)m+&1BST1~6$ʥVfvm$!vp0" +81@Ơ(h9v@#sm9CA/65Vz cih!n:YvbӤ@NI*Cf{X<VܶQ(tgR-/ߣF8g\Iv4 ނ}ttf(qF3] +qԚe-hd35 G@.ާQWtG\̓ pNS'ߺt"7_';)o;( _~W迹z1#YwBKd$_kK|'([K7֮`}˿o`|u +od騍>p\+7)U]|:v&L# U=4hM3룗Яo|qsٲвsSx{' +4$їtZ[-:I0GL;+s4VFM#h20ZLq@ +;"ΒB-4 $.2j ai4Ι_G*>_<F)]ar|m&"$JP b)q#&&Gz |ČnI. p4ޠ<' -R'*V9?` ˙I,XxBH=1[U!.hvBw:4tTyg~FD7. %9o8.p͆{G@#FmtfK21#T]ñgB8 ~H4KEZUDBs|4L+Ym}n-apWPnfRD?xSaEuLM@N >yiwr8$zְt  ~/µ}E.sMf g`ӼvsjCz>.n5F*%rg/@;АHZE?ͯ ?V0fK0SV$G%p9JQRcn1vLl>IzCF,خRx%t9Kf0&Ж)sgX?2.qМSDaxhm`h6> f'wQ4[W>Ѻhha(Q+ [X΅ʟ*wDYܪiuTh|dn;=oYJ<9Eql~=X}WGK.*cQht reagPdӑ<`38r`;Hz{_~|ioDT%"-ӌ5jޮ Jǂ>SQ B3+Qw q|eB4yN2Z*ɤrz$fQlsf MѰU4q=IfآJүC$ډ3ںeO2܌qg̀@t@< /kj4dD7XV {=n{!BUk$N  e>jt/Nt^ԅo n"Yy@x ݃jP7tȾHv:YȈU + Z^s0Y(SHkWV3Wh k'ED kEhݷ5uGD#(FϪVPC> \=zS+ha4.a>ln9MO~JyЯu aֹ~ W#A>uqT.HRT. SDb]'F?v9#ZGfQC"rYX=k:w=O^o z*_ySs~ @gC@Nq4~DuRɜl2ƺ 7N$F~ңO񛋾wG[e)/Ɯ2t1($rh&t4±C^s4ƨs^iEZy-6=ߗ77ҳKu(h9oؚmNSEgF +d5# \lܾ:յ&f0CtxO;PkI)f,- 4`SYw<3fQZ|6ˇ:tshV8+ iTԗk6T +c0|62|oY5oO{tEРvF@fOfଵd<`g,;QJ#@{E{b9[|eoǡlJ@J}WhJq6!O3a3^mRd?*CNj@+4g@ysNz3[;ROn4աݳgbv9DO ~ O$ɯXU4 Vo`Gf@sh*v6c3A[3C3ƪt쬎; vwKe~~Ե @c "_eaՖKGvZlvdb6f|ԩrFˣ|8 J3| L/XƇ_kow,w6DX~b=>N쎯=_aF`'K?^:#Y :&_D` ļ0j{\kفqcXKhWTFQ@}oެ`>wwlSmW :CX[m4|<X8SPFMytfzrS(uД8{6)Qr#I8{\& :rViAj,],xv-fJا6Ph=>MY^2xNS4irhɫmkؖ'h&'-g)\?XqbuZnހ@hӁk6>ؚ7Cthi +9Mo͂@=#|fxva&y Qhq+fAcZ#W($z NXoYW=$eǽ. 6yYy6Э[pQn趁ݝ3-%YtC]?Qlsxw}bE:ikt8,t L!h-`0 ꕙGOH"[h M鰃KYk C+`tU 8K8 @; kD{[-HΓfZkF7/)yb~{e6$eBDfoz~/ݼ3=-EJjKk{!40W.\V`G0}b*ղ\ FjyrbbH/pj ԯ?׏9=zZ,jw~js| zOd΅("@`d;`Ł$f4~3H635mz:X9gwPG-Z43kLA@& ZB|)hlչ}k4Fs72gJǣN|vo +k Otba(.(K#qBIZN#{AtgyD"h,N&exjo&'w&j 7L.8SMH + V>e3?\W ƎFJnOOVqϭOXͬ(LBFa%vusVE`"v$ +@3Luw-3Drz=+59:I#0 +R\Riύ9EƛJϖ z B2CЍ@/tqً)iy[(t_)N4ܧ(WQdڢ~)B=QmȬ':*f⌢fJАp9"2=zj`:p?taN2>lԙ:>xN}gXj|.ezvb{|"[D#W+f5eƪЈA^N_Yh5`W_0 N +y:\E "SyqЩtέO@jT(tyDv6QneGb':h@G0AjG^Z v*3!B*Эt$iTJm&g93:llmv\ j6eݟ@on%@R@Z g;p*=X_a4j@):u̹hԁhf.|VDIGInz*YvfaSo 8{Y3XKf|sBk[ +p0Zb!f3.kZ+4ՇݻHc=E"VA 7WXjusEi0mQ"kw$D_<7{~q3D`Mxn];۴)tʸ)~"w"9N t16^1P%-D!ixwcso38qo5 qvsw~o|㟽2,qN|>.-~ ̴mąq3d|gqg :ag2FC\x +&rsN9>ޅUV+t9ߐ+ +h0.˶sT{iܭ B90k$/˾kl;z2# a F3zntIDD*3'Z'a@3mӱM3Pm'*ݛ%_nt,Ob 5g+dr5yr!tOidkzKDs|T N¢-O4 +g-KAN~VgjU'Ns(rF5Esi "@g)+hT8hvhF10ʝJm.i +@ pL],5g96 |}'[]4rDۢ3&e`F @j:+vv@3 ;SP&ǼdЉ@g)ʳwޗj>=K۳*/qO7<0ipqt~:b-Es(rr :;{.RkhM" +X-}V;\V~Q§yf*9]ip!GDx8G<, f;iK H(M@VL˿^nۦǞyJ~Q]~z5~t7w8|qՂǛo0V7?bbX/~uߩ[.WW |j>G̈MkFqOm~SlOen㭻p[Ǚ|@KJ4f,+N˩zjh+ +Rz9%B@,wwz|{qN/aXV慜7-!)?5A7kro2pgtę٪@Y )vk1W& +{(=LUpC^If2!TCfb$z!@#_ +.):"g  ^lZ lxZ %qN^(n$O)$H7GQ8ԋd +(kEέ>;3,&{_Zs9b(m)}P +@. n(pZ$8S\sY1+{ =+s_Cf g?e;, vEq|&xAS+ x8ZM >jMp3},ha%~Sj z}K>t!/+O]zu&\/pY:k& :]U T.%VyW''I-XP2n5IWf')=iyPbȾ//9GywW. 6#Oً?]~?ԳOjNk케ɚAPZh[BS;Vl씱z˱&\)oF Бr 2"  e|*[0hNV#&_MhhYpPu(/`j I[ӞYj;2kjql+9 tR4N'r'u3s$AÕk_n5 zR`ŅŭI+~9 : 9ΡB<{_8箼0 '[|@3L0BM;<޵U Ď;sf + l՜qjzyQ@/zm1W7 zw, ^gg߆}=4ϕ"{beMϢ`,4ȵҌy QMYNO'w'*Q]@O(TMN iA7&*O jylsi-?&߼OF&F cdU⛁6EW۽)3Xkg 6meAer! Jhyo!}뮸e7Xc;8(W'y3]Zs0s1+4)zw{hx}(S5-yjﶓw^Md3hpK +p/АLL2^t9+h9AO"u*pS +eiI=3sa,G+  u䜠׫)*RV +h8aZZFAp CK +w=m)K2FC=o:zzrt{ s X3wX!NՈ51()Tp~UhGW] *Fif9Q$M,fJY;ǝ:Z>wq{_šwӏٷ;Cgp|sR'yS=z?||#u7:g?g|aF r .Mdw{ƘW&ɗl%R0cs;yQF}sۙIJ{fr=X2i|< F`Sh[L-8 tt%Y/W` 6󺦣G`Fbƛי!oajŸhCȖO:$YQ,&k>>pDr5)CH虥" \5rJͿPiX [@Du^}8µB:I/b&KkW/̈́;%]N:lvp ltd dud~VFR7Т5NϽ6? 'xBA4,#2F]Ђf {3S)#.M$Fծ.S.}#'km"ܾwk*zO }fdSe!$9^!oPQA٪)*>8[gP4dYyt h-!gy0q< i9(J?C7ITZ_掞#3kW玛Z0V>#Yz;4VU@Xn̫)l|&SR ΏM@pn0WLG\`1!8CNSjFH4<5c(V(pa_igiG7hx'NDW Lwa"Eϯ;yoLc\wsG   z@g?ֆ%eē/S-$^/5:jZg{gֱOU}1]R /?+_BO_(7 d7an UP+/faa,8Ǧ&C˦wB} 3 uv?ԥBhs]8, pt^e-Lz"ڤ8T *At:}ѝT#3uf֬~A2A3k'$&eggۣٱ. St}@k +sE&8ӭJL_)\zf^5>&5&w.޵.4^:PC diE^3uyv!P:G"ijL,Tmc +a4|7GɁ~|rfwVEہ&E,#6L^QL"d}OFGe~G.ED@Al@SZI.Al._+8\l;31VТ,qRW\mP@Z;`x-R=)lf>U>8~ʙ~g?xД,2:#1 t&|Lc>ipZā݆Z⟉MSXbLfh鱴g-~.>wqKO(|J\_A/җ[=gzp٣ 8=vY]M|-@ۿW>껥]ÔJ3 65V +aǦl7&dK`:*ǿ>0+4p$- +:@0Tg!fk-Be7c3nr.g;b|7c;'j +SMBk6RΈYm+Vhfu12p^ 3TfMZBӅJ;5#R5P啵΄eN>AiP0;%S14;DQ F1׿#eF^'Z.j=Z K3:iu@k:ZY v :i``ѹoL=A_Vgzȴm8$?F4hڱ~^>3ARΎ2V9jǮ`A/n}j$n +ʅ㏿Q ױA G]6֠eLPpPxuha'͇&eӣFk6 3iWtt7B5i*~.L=ݞn1 +jlb(MJy^rKx\&fkhSZwK|:U@Zj .]^'aq2RG]|;ZNOs4Wͮ@hh4Z]Ќ8CbCʇeמnPmY @f֯We 8r-̎9'fwC$g7IȍO\rFk [7FY9dܱt#>RHCW9"Q}=8T*뤣{I蜃Ujzm:HƝez/Ů>+HلnIw0Y!t5I!WX-OݲTz@@++*[dN:h&a'\щ064EP54NvvOlƒ=m#Ad9~g붡E317ߞ.W,tp TOh1\YN*$(rf +CAmT | @SFGDr'phձ{|xu; 1ld~izw|w/<[~ޟXe uTm&$T_{?~u0 dMi}$ wYfXhXrXy~[9ni=Z_~Vu6t +Z yPy4c-@T]~_,Lf}i,H4dxȈ֬or—- \=M^4:p@eJ}fp/w{m:7hk:]߷Spq \+etO^"8|3{KQ(bF|e\Gh?TRsMUUmg"yFO(}%fXZ `Ʈ>-Ԓ?COF#̓/rїC? &~TltZd3^j>6Am?`,/`rRi'dG{&<ȫV! ,Wt@$Ǽ(֡K/=O~pOӇ@W>#Ug7~͍lm?</K{k4* cZ`H?O.wxm ;%.J>ˑOsχ]ѭ}D[އI|(ayo rt$<н<]Yo&a༁/{ߞEo\3L)&Yh@ [Y5`U!3>3xEЖ jGn?Kr?U#̖9 a0u+@G3uZ=!\sfٴΏ8 }&^X'ϯ 2S4:& 4˴V!\#(HZd,t&hznPjǫg]>.>AR],Ь )2@ۓ8 )b|y PWB&v I"dG93%] +}*$n8ΚU}a/kvUqpLA;4¬enOкW͙W5=7]&髉6aO3Y^M<77]U γCޙd\,h-pmy,ǖsDtZ{95g/tQR["BtzI3BkҀ,1rN1 mN +7:AJ_vК {he1/u̷n?tΨq/⹆$Kڢ9cZo3ЃGWˍ~nIfϽRgzȦx9!] ^Q=vY$_B @3-̠eOA}97?rշ)Ϙw? տE}޲6?W/f,1ۋYL·N?/=u%;O>ӔCF.Ks?[0WdHHrsu >= j[zUʠ(z]}-+Z@3vP5~/S@7JVASceER4tb̾7\(h5 +;p#gQ0:-T= c8Q fuƪ4DnNVKX o0pdw1 t gEg"ym&Ȭ%eEvV //&|Zri@\Ft]gΖ-6wJ<9 + +)e/L*F0vZqiɎje@cd4s~ ]+m01MM;}|6(#VZntP^dwnXY .fӽ2#m 阳e)wfbf)ЙUpUta,r2Uj!*4&!f~D=`yϲJ,Ī;XЩ"#.jLbpz|j6U1PPѤO|ijGK;v +R@WO'>fϷn9:#R{ =AxqvϦza\|_iۿޛ&ĥWro|<|8~/~  P^ڟ7'___/X 5ًǫ?p8__ג{RiԎpsjs;Bg{a.?{"zT@*}=pkK"k*}e˦1Uy߰æS9#(V`Ce\g g^yXb@Щ′Nn1=`@5VFY GEXZ'y9>/uИ{F=>k-nH+"􎉢aj  ׏vDZ7O40pZ8 7JАx^(= +&]s_3誏JZph?4rf9N$ +RY#zB(שWt_qoXg+;NļtqhpGɞp莆1_nܤ+YC#Y@=S9 @hM]&8E&gH5LHL~ e% t$"tɉC?q3B,)4s$KNO5 y]-6tG@X@g38FoF7FLg UlN>h +lFG=U9!ҚS2DQ]T]/+ @'=fF.]cBAVi,/(Ds:-Gt==Ll9Fз}nN4jA1 tr~Lu<MUAy5dAzv0Y"1Ƞu?geJ 3-cD2I¶Y(9wYH SzH4peV%&dn ׊Tʯ@g;Ԏdhm7һjALeUF3z@:eAu!]< g +ge?]ͫ+n~D+!%8="]Ր-N]:{W؞s֡3h"0Lwo?ZfؗhbhBu@:5~ߜbitO.w}&ᮚ8YVx#X4{~yx'=:ڟ=~עqI0. }-D|VsEux:L;}o}&q#9,44ݴLjvƢW@xT"e"0 ۜG8Y#[Q4PZ=LDQ,bsSx70koc+wN 4'eɄ۾brŔf8GɌJ2ްb˳# @IwSNaY5̛>u|=Y`mxF3dLGV أH.k&ytV.XLio:z7dY$g}`FBπIsډz% S?0TwݘgC%,*Z!Z7;զP>aTY>h3>N[+ 1CW(+f~&N4):;q2t5tB6!a!WYZ+o z&jpwk!Σ7Sdt~ѫ7#pKkZBw<"&ر鷿D7_͢>'>Mh"羷5 r}6հl`d=S(<eRHYrE gX[x+z+L _xzϷY:q<,߀4pVshBF"ICwFb 4iw̾aypDMTh~츎2ȸgMXKo tdcC|8Ⳁ8[[@S$~ͯ͡p"(dgА!‰ #~{ޓ/,!in 329bME ]!ګkcy$#}g8q +av)^^k|S :V ǩZPNj +菞=xb@2z"O=˨GlˋɮCJ,I ];5Mh6@%dڨtE{|+ttG>⃧^9I\|ܝ&Ҁmu%zGkmBhw=]<޹w;^_זoCxZ_yKϾ#zǑgƇWFڅ@,)z%e㑆 2E_Y>r0d} 3H?2`g8N1#VnlɌ`Qֿq=00IfpGt n & X7r@g$MHf:[KH'|ؼ:Q;ŢNpۓ@B9 +\e$=%G7,i`z[ %7<{6R=shSu.Еԉ6GA9)MhЀcЌ+C3&l`3D#Ά.#uk4qe0, $\t/GeH(Z6lRY0ſrE hp<<ɣYT0j#v:|L*PCI oGw# +}:^>Jh /.`Lo=,0DYQ-4H8P~$ydde=a?E/ 6jG`3vFpHhoHՑɓWyE!t@)Z'}A{p GF= +Va8'f)i9SU$U`$@hMU\r4S灧*nU{MbmAz[w*,{ܥŝst;*Σ ^ċ/׉6w`q%2NOh]йA=5fWoZ6ٗ9[(.dgF2ӌ] Z5wΦ)cA@]Kx g1$N9\x÷`hZd`57O%'_t!Orc=1IwMhJWY6|7$96<`8 3dv[35g0qXQ:c[0&?Z\IIVVg ] +o,Z(xMLI}3kM\) zcSq]˅'>?,o} ԗXf$HDRcTaD'4!0[=wwEGj[xJdXya'T9]Y`?> +.m:l#_W$ Z9i-^&> +fg[.L1 u79A߻|w Va9#;+*>I>M@) -s N8WBh&:^@DK. ͒S'l1Ny#\U)"rg`z;htCd5<,4 =#<ꢪM sa@3,rn{BQ H,PrSYw6^*1Яh.4B!-umYOfaz=wֵeS꓇e7v/\__b'-&h$% )XBJSƀ{bo@r]qFiLbGoZuvo޺G]Og|3hEcWShf̓CjAK D ŊU68"лyZ*1IQtwQ+QI8d\TO)3&a0h>й!>`g t*ʜh6GAKXyaDaZvb\)`Z~+g}A8}}]ٷM 9yҾ]M*G+xge"MA8ʥxԠ.^[)`tܲhC7D3PfB"bunھ!3e@đh@T~hzF) ?4n]8PŮEn'1=%J>g +t#J iI:1Xu| V);tpɷ9hk)|jW ̗p2tOٿvRzԄ()ԱR4+F!0S"wBi$J9)]j x|qa@K?H*Tb+<?xL~Y;2w7;/aǵh0tG)¾sZPs/-k[-65ڟI@74(1\>w.>&Ӛ&hY4Y/JZ2lB&7~^j>e +:x0> S*?(ІzR?;[moB HJvͦk3C'ƒe ++#,؆hv-A":;^-ȏ4)dgw;2p/ iYC6>Ur?|K,$qAa`nUi&do|\X)>SAs,Gw$΂;GZFR;<շ0A t=wv⋄ +IgqS1[CIz%o丽D8Rbިqg^. W .~6~g +#&)KA&&I, Tmj*2[m\M2sC}1 c`XͫL0Fg,Љg"ɻ2U +Ƈh +ώ zAfH NۓKGQ+Ug`gmJW{ M8 欙 'nto~I1@ϕ[޷/4f.:U4ar&b\0%h~z<퇃Ͼ.g3_t_Q ?m:BC4sWAF9<ʽϼ/ ~yr~oRm?r^;-.WwvpIІgŲ"8H2cM:Qh88]B3qˑ6V.o@쯧Hs%bkn^0;]l~/JF]N0=SxgX fPNۆ>7 +GCw8mx/ֱu)^,~5<;a,t)3H eBv@gwBwfXP~PVY|e51EX)K +Ry\Zc u 9vODŽ ;c:@g[Sp7iՑ7L>$f䀥qg?pLs?tebjЁbD_:@cg;Ej⫕~G2 x<Ħ}&~t-2:itx$)+.CX:1;#``"GSSDK2~ٵ+ZOU72 ȚQE8J^\=hVAQ1sC|@qB쭶c7쵬9uuL,<)ndXh(&GVr @ÍP×֍,nPwZҊo+ʪWe)k&h9{Fэ*OᴫiY,~Kh}&:+92ɻX3=~t UGw`(^LE{jÿߺ:3zJJDU72BʻZ4@;ro{=ed Ӣ$|> 7kϾm;C?ڨ7{x\Ų&cޛ GO{)a!*FaHWE9O@M͋K!G;S1.ֈu3_^H'S_YeٟAUJ$4oEEqe`r"%b4*YƣNh":ĄP'[f֞)ͻKq9d^azL܂w0x9TREçex=GN8'y4g/EEI)Q/ߛ͢B|(.z.t"EtP;:P踽oLd%GPhR-iCe$bCT5ϗVLtkԚ{JCocb~g'fh9":*s!Zڤ"88xpieM-sCzXt$+}9!4A㤖nN0q*V ❎XYZE.b@$/_W ](N(3ޅСh + bA득ɆGt+`c'?|8@?/8AC3svЏZ>qw뗞@S{e wd2C.{>Ȋ 5VKg<"?Gsg5[ \݆N9d@b'OLhQtQ=v4nѤ9Dtv_Ȑ?v{  +4e\+{}wO%?\4ڟjmS E< #h3 +.l`>HO(nm[ڳ528C塍ӈ;-F>{h9<0pa]@Ch~Yyi A6Qp=Lf=z.ku5]7dN]llavƝB3t+sm E5s+(טHZ5,"D4jΌ-˚ft?1dܻN8ZT "Z7>' =!ζuЭ9xB:e"@|#'#/J=c=$*2AGbކqKD([\_v|_lgpk4rQ& FÕZ6mY^1lQY*U08ށXa/VV8wFG%=s>bثj(62_0;ɝ}:V=21iU&r۩>oLFXUt餘‘~\V| vW<҈@&ލh&>M?5ҳ5Ut,Vc1T )}F4A焔%5G\ 煸NXu[w!Z=w%)Lh&Pػ`B< P|zb6,((s+:+Y4,-h=R{鮶E$r侮K| f:D&Z2*0k3f\ސAH̔yA3۴wX90N*1dLQ cKFljN7]o6-_ Mj`RWv6LKfb +?LАJ{I 7T65b4o&tƼ{}a&f劊s0 3t>YKfiF4:y~g}o$<M:}}"w]{]Gj(%t +'&j l֓%, $拡9{'h6S_hkm1 du.,Nw<*v縝*of5A/w܉.'dXh0oK9 +@8#W˰!pmgdK e4'=-,l,G֬p$rR }&@o]htڨE.߻qL;IFi‐h,WxChgDL+ lzq&l2d#ޠBe/,N4tgby.qTmu-geh< +@#U_Ӽ2DW$p#q7>;V5s] +L#<ѳ*İQ#z4нh3f|Gm肏Z\R簽06ūQ%3"/&hk9yG0fEZY(Xnpdq.&4!$sO~ +Z3C{=h8[};^tN6Kw<򜾤"fWAphEЭtJ)̪ͫݟľZKL/<{{ioXҳk)Prvd}ŦS@71\òs;N,$^YJy %xoi_EYf+7*n`XaUWIҲ ?»SQ8Xvi5ó4D'ti$&CBG?H[*Ly*] /UmYYe:F:m#VN;r%t+QzKθE V6+fsBGDbGKGئJ<],}uP7h?vFxBmJ:F+/ =?G}'<Ћt_= DY͸< HD8`@G dZ!n aB tz$\LA/*LvY0Kz`d>n4Y.ƿjǖ6Cohr7B~dYw=B]2A g :ɓBMffn5,q-JXEm0 Uw#ܻYD+?+4;@i|oMS.MϭYXlV\ZXiѭ߀;oDXFȆ@ݥHmـyE +uX Cgp$t;^l}/K,],lT=,9SlD>uID e *XfJYϤJw}eq*vC.(N!H9PghfHZ-Jt.nP7ݨG pX-Q>wx> _xj]/gQv#F++N9O)te:Q!=3uГ.#|ŚGFexw!SB Ų#}P b)zA*L"٘n$='QuS3{ZnOи#- Z0#j1S5h>Gcse,tn UXEGDFȋ^t6 +/('opJ2]Mԗ?\^3S&E*@9Pg;K$Q1І\P-IufgqBX,D:@2Bձb636,pD^>\LkXhu{/Gi8әN;@&3 gH`ʊf)wC^K ҄*L -nAhewg&|CEsX\o3ϑШhݼa:͉t2.za%Ϲ/OGYXEq@!I?xog:9#qFV!Q)Fb!i;4Ggk͔n8)05\$;aNU$Hcg9T-v-C3Ӳ@s +B \L m6ndҝJkT2LU~x{Ϝ8?~LLѿy˞9tpx{,NcI5UP/ޥ ׳:zէ>Ut4;,>1 D:)'N왒OVy7k V Qf|0Uwu߱>">̴cdZ' Jr>e6EXj >3[γX(utHqQ[ɉ-*49d% +P3"5HR-2jZџU.CztZnֈvK$J֓4bg4t\-sCMUxW6Z|CӢIx"ܙ6$S4>|ٌ~vq+tL UB~*:&a/}!M fL4 (H9japKϪ `Qqj'Os|c@6>"%jν+g3@~Ϯs_2,.M+9&Cy78;9}dy4{#{oY\(? &4]0-LZs-/e/1(Gw=nȝӮluƣyw_fs>Aدogm>18fFHviyCAiՊ8Z,(EqU袊D$ȉ/ h3Ep﮿#0;W(Jmh=#̋X{/p:Pa$#nkT 4l,+C Yxv bۻh7 6X;OBH!R<c#zOl_#ᑯ)N{qZ: {h_DZqN \ּ+5 ]O:㱊b Jm5ZqneyXZ+S Pkg"GtimijrN5,Eb~4ڡ1ho)B҈ߊ3*EȬ,4.#9D򜼫#-EQ^˒{ pmYCiUv(ok;#Gݖ7c=j* +(ŽɭT3c!9¬N0쟀q0x }Nⷋ@=u +0cs0 'gg⃐UJ NXufǟ8g#sn͓{=v!Qێ,2=`hH5"lSoZ\eLaێRx X\>7 ϮS4;b(>*I%@͜f;ɾGذBp4̒/x:-է l;Yr*z1=l7+SyeWЄ{~wxkom_6-ag6P:eS=4AmjA 5A$t軀%VAx`ͼt&{V B+O@=8tFUZ*Se 2Ml]q/4$BO8@khI5˳k#E&9fo~,=wEcWȗ{Z94{_i!Ly*Ǯ$VfrN++Zm ̎0>{ )'K8D^@͜ T)Q.wv('^?~Ϫ(K$:4'TbN =Y>/ ] M)LV)ǒDax}kR=^'b?0&eMڨsh|F棰a Zx SgB +ta*.urMQbÔ9kGcs(z =n5\)TF{~9 r:?LW7Dh +VJk`/tRWs w{ OKD"ChL" 9*;+‘?AaJd뭙GmXdy2mAU q5:oXWF{D&{<'3ShpVD97K\IՠqJUtW3p$ZeXP׃~Bf?clηr:>/]pl6ޮӪ6{4?f/6&v+ ċ/G=ϻ.S"sÐ QC1.ޕl]= vLw ɶg±-&h g_6QjЅK6I +sS=GO9'_:ċ%g\.88nal}7=]Z4p tCh#*[S䊊 +q䔁v_MώEHKQe-+$~֜sha!&;`Ѯ ]dz;vbfsI42\Wb +h]cYa7X=n +9 :p&ߕ%I6̜H/t^DZ8&\$ WuM/'1==Y=WukSF=cFVS3%^z]B9YbڃwT4Bew1G/tPlY@ZuHzIiy$}g%4v8^v<ЙNfy2O|ʼn7HĮ "$9I֋ $k U`fE2p nTPh4dq@^ThZfUf5IxqxilʂXOh<3V5BƻG U(sZh(#;mʋF#Z+᢮0tG]`:-Z2giٰ<[Z}5 3n"ChB!=|c7;AH쟗,rsljټ,HUl,&R^d=Ftk@}]K2K[R p6cwkibX92r{D3v +6~x`ZѸ4$TP<6hx12 +-, S8 + +5ݜ:g1FUݎR>FyJ"llT D|d0\QbiϞN u{삱|Vh4As/^ '^obo-zcv}\_rl{oT@};Nw m9-vp|k<q3o +UhoUD9 +3c69|]o!"2m@WW}pቻ2v7^M\s;'7 U>P"91@Wh^[DpdI;w&ijߍ2j@n#F ANe=ڰ<aDy颣^9U:G Y'6;Glx֓7t` Q S:j,681V4,<.h_8YxШ@:FY y R۠3z^(KIs(j@ LF89p(m$˳@R8E7,ifdi(6mX F{Ao2XxoߜۇXQ v9ܟM?铧zAvF Ȇi;(;KA u\ܗtjiAXHZHcLb/tޕû:lg2L;Aښ|hQ<`_=3qŮ^{2 +=_r2NOS$2 &shl`m2BPU#BW$[LY;99U8Zo]>̎)++`Dn x06u4Dne7I9tb}ɥpHs㰳n"87$Zu J"3$DBC{fYmu03)-FNR(0!0t2/׊sS +!bRDWF{?MDȉ3 t㙶mI_dƀ;#H52GFskZݥVaRc[C0ur1/,3S\ 𺗣00VPrYx6:%(48:bpa:+jh-s ק2=ߓY@A"hߙܰ[9jžq#^y#Jh0W?ӝr J[pƿNc @c^uPUt%9Zq_"eZ@S[9BYw@P :&A6: v)h8 7 &q0_"~Xѭ~YG?)+4ii龡-=]$S&W>DWxyeg*_9N?9D0[e֏ep8Ż5&ojVQ+gkftϰV#$t]'ߥ_"n,ι!;m|pO=+O}6 rE}[̾rZŧ9Q(^h5^E3"D4D +G}ꗮ'7s%R$*/q̍4_.P ZS|衋}S[c"kѢ}&詂ӹDs`ҁ\wA7?P(vckE};|{ (v +j'O !dێ,i_]zvŏڈXx=wVܷ?ɳ1|shOC2ung +-Wx_)^I" Z˅Z5!7.s?2A;0!E5W7Tuxz n]R|:?=A1UMD%гQ=@7C\]s ިL0[s&:Kk}#V[MأI=oh2//`\G"Xc(ɏScsJ +wF-_VEyЕ!`I I3>ֈ.te Ө:D'[t5]o)FMZt;{!VبM:r.x1{.?Ӊ JH;>ydx=9<~hpM3 Ώ'hjir -iLm:֫!5ӷ+T6t a7(NJ#ɆA8vƢNka +GD w'7AM{0S(4ه@[e8-Z-jq>鬹jSw6.)BD7EpN[f$p5V?b ]م4ܪ?(Q3e'2x8:@en8۹\:T{ +nSt I9srL bL;W +2kOkDA`$LL,?hP`ե/<'d8o;Ԅ Z+~-wTٱg_W}M;U6un797 >~Wo|`h6qʑ5\p }[wۻćaZ?|?6%$J7L@L.Q:y#:kڃ,Mf72iA>|@ .$6RiKNfa|Aް(<+[L: D!F :(~M'087L $N%MU<dt|.`lA|WjBל4؟ZGfI.'8"CDS%w7BHub%+:n92.s}Bn/(櫍*LrCSz?4_7i,kY~NnH6 +q&B2r zAL@cFHCoA<#F$ Uzssӛ>eAE/w~y3J&u I?^%bd(BiOCbvͧrm} Q2x#g+9,=O*e%d \NGr$( =7HW^H_:"24RF?t1!k22${ll|7b˸"}#K'>RKXaG+ DZ[C6ܠ{Sx:ee3ge+^._֬c+! +Lx-?K:u +rfH3b#SQ1]@Mpip:N}gJ6VhzF?&C{Nfu3$"J@673Я/Ju,0@K{c3duEބ|FSh;C7="+k>)<C4%櫦5_b 戅NiS0:u%YhBs5hpNfc c]xNDNCdwRK<'wX̣R\ݡ Gc.m:m:+tBy:/[8?Y38BD޳y˞* ?z])՞TiqXYo 5-(u٫Qi,0-^q봲RtfRg(k/MU>!u +@$: [V1o"d8{ qSMN#b<}1$>ڒ<]f#0Ԓ7&680 jNXA]`uG?:YL81|• ZӸI8g7zt@ 00o2gЄmzb1AG4SVtPx5g{͆6lBG' uͬ敘^&.b'!NJ(*c5c#ؒߓlz|>aeOs`Jh(اҝeРu7W@z|=1!8`eXS#<];^Aʇؙg5{Zpյgh- >'7k?* ++Xu)_ٓ?)S\Z٬ g0  +!".vUɳ_"N.@qWC7aD +n>M+Ĕй)h'=Ux -t{ k*& a2:H$a=|Dx.nb5z8n !rdgkV +[tַo9-g*sHy&kĖ|VwNdcs}?K,-do +z7C?s9bz`Fu8P+V-03As b7ͻrfhZsjOɚ1UiyEbKŜ39y7o_>Hb`?AJ #5ǬB3 +4rqj@" +WDN DU 1C_/ IQo,ਨH%~G0m?~D 9O_% !T@b/ə^M BTQJGCo4,#UP88<'WԌI謡( <¡rJhhu|B +UthЙ[q;Lw_葥[:k˯=7StL_zRG}ͣ﮸ٺd:7籿ƻuٟw?/R|eήO=-[QBkmGӮ^ːn9ޕGx}Dr_yKϾ{T_q/2* L%;^k(GZ:ޱco_?H{MOٜq+W ؛KF#}F'o[+J޽fOGf<1O~AOB٣1\pפw@O'99Js., t9*YC-2yvz9x6c_FؚDIz q9zM4-xo;RlqgD)<UN^f܎Ѿtr]fW!c~EkPU< :Lԕظl!ŔAD +7;QTp.@G Y_rG j@Se7kdql]b5cmq-ny4_-jC;0#Юޜ|SYP? #:кRiE ^FNUTDGD^s1ů-9lkqU FjY:ǡH0w!* EZzλLhZ+buK7Bm  1bt)^C>NLtJoj)Ex|oݝoӊK|DgDu?d#wtj٬!#[ivd9}xsxW4@p}`qz]қ ߾x 4O[9B*M43A, Yfot&`ÒI5O J<+nfd"eտ뾯]8yq;5F;Gd.#k n:  &hAjyQ5P\HYq h֦LrR56G}Ud!DA%bBZY֜'2T ,=d fc;I{:7Qܯ.}Ĺb +2Ov=#G~ٹPnSz酿 /{ N Nt:7~QxKh]7p o(^~Ѩ0pP5ԉ;EW&ȨԟZ _xz~;S'CcE&uy1U/1 vC/< CD'A-w̸GSG~s5eyq,ɕt3`]ZuIIٍ%F@v;AvS;a=Kn i!>tèL/hEűr ؙhOJW>%عysȏUkЂ$^ WĝХ '˳XhPhX?\ g_Rf_qgIEя$sQ$?wb5YhdC\@ã .`?T>^h3 Z9IhdU,"@9#tx;Dj%m7H"ӣ6ewzYUOn$>w|*"27CxNiaiU@شआⲱﯽΧ0t#Q#ΪC+90Ɲa/z cSq䈑eLf96 ho1uV0uJh +I:acuJ>IM/E*?pk%-LI6*z] q M]:kiN톊~S U2Oy/ʘij/}+} n71\=vd8vVqqaG:cz= Ң ~A9qSN|M3^L+цe3^ Q%@)T7jBKല AF4[L 9Ah{UmƥzA`E*4j՝5͚2uS|v&h-Bϸ]cmfu VggZqc.>y2bF%EPM2Ѭ;(Wȉwˆɩ-W!tz,ՁK #Ѻ/ʪmK"QQW Wy}嶓fp{+upuvרLBc RƔ@.e.f7fW~Cﮰ>5ʌclh:=@@:&*K9q<ɗTLYheӉ[VxcV*!쀑-d.7V4'\ D ~8r)n݉KI4[C$@e+ tIW09;  +oQV/O5n7&V-"4+4z4*-#b68Ct*X0f']5&5c!mC0p)0CK"Tke:(땘mtCy1Љ¡%s3 "HA:FTFsTas)PVԛJvtǜ)gF@[ Zp&ta p\MaYlhYK05 SBE:qszq_^>ot൵$H6A77=]i+kd!zk}f,!$1MFa; o-nl?:{`󇶋 4߆rX6lCP"&7[ +Lkt:COɖPc)JrYAʜ3}'ӽ nTVL`_xNI4@fC +턭[,%ѬӥjrXhQFrZm(u#ސ.MWl1Hf[Ixc!+KnfމGHc64n*H$:p->"L2"^29eKVt|h" הoFi\ux8s %?^V>(:CBd4xt,'mZ}*cڶ/8ЧHG !GS]4943%1mB4B뮈<ڳ΅_3c +P` o6VoВSEW)PK3+724CO M@9SNlBqL6ЁXVcnHhij f1) S8JbKgL@ (WZ) h&ꃞpY^cYݍ97|qh"Un )i;cbY9txIk[=n@m-Cz2p71ГT dg} FŶZy i׸ ZU\Fjx#C64ɲl$zZĂiJ#-~xKZI74 +`4bDVWQdVTd譱Ԃѫٕ74i,ѶZRn Vg}Ƨ-skZ 侅f| NgIg*Ϥ)^fy*ZD-mCwԚaWHbsA(Hm7 ۷{5 ~n7Ŭ#HU\u1}KfUQ+EѱLg/J<0Ĥ=%5D+cL/ؠ=(&Y\h/#!lHߴ +~,01(h SFS耞]2Mf9< kxh1{h ѵvC/KV'41=$^Aɲ*6FB3 pv ; dU85nmȓ؟wQdd䓹hIX]JbX +~՛jIq@HfqȦ'rgD~4(3za}4<6 oĂGKz]#/~x@Uܱ@ODPPbC݁e&xq3>@ÍrL x g#趘VS풋wsRe svyA*0羿;^ɛfr|cbe/Ο1w]}agn춝[+Mǖ_zx|;A{GޟqUM&~z-m᯾E_B(?7tvB n .X0_mL=5 VnO)>*EŅq:yG$Q BiP֚H41{Ie!W}8 +mِ9$ԙ:h͚{:'9)Ѓ3q3ِ@>V2G&FJsZa \V?qH4{Gi.N &2l:t9j~j}4 +aIO/|B(h*Č9Hء:6H((Z/N=uMz=hV k$_oFb9i'6X՗=rk_/yǾ5 K2zQw悳ۯ|E]\2kw bG࿰[/=eIx:Vdf>~R+szLTY?xiIɒw<%v## h瞸F@%i:RV3=N٥ɒ.T=]\#@_<>xEYavj jP.+10}"i6\3.oտ-h1hmkh+LדaqnK9:]v:BNLsAS5hRc0-o$c:(ӧ2#g,i@Wdg+-y461FV%;H៣,<%-з B)ζ:\s ro +V^ei݈A}!s%=3hB Gp= !f7{kO +zO1V"3"qqaԿ~"cJ ~)#9ſ$~[^!b{h9UBv#^\,I'n) "e2."mP_s qbOi[%Zu ÷Wq&Ud0v+m(30@2 ^h'xGu.ݷS-tZjG4Z2]U_rR +W~->r@kfgTdЊY_Ҳ.a +Ԛm9&P!9˯%3Q64c<93QDimay)0sg sK8w܃F2م;w+Վ܋A8][{:c-{=ۯ|iB1AR9,̾(C?Dߺg Ώ=߱&sBL -lB!_wumhBƲ|hZ,jegD(7w=ЩckUO+; t3W&0jqv +P\&&O.F]:_/qLRGZI'P ڟ(myb2鏛KR:_;}fTa4$DBZ|i z~,N]* J1cSIV6CmZ4,&,E(&b[+1|[nn \Zȡih'QP$4_Yԝ9 +Ma1>\{2Bj @#VO\钨6vh%0rMLʼn:4ΣÙ?p !(=-?fFc[i#" +@[ Z fZ iU;s^'"!]Udt*+2=Ϸ +/4| tUBg*k]hZOhE)=YvY9H{9ry]N,t;7΢꫍hK@߸\;#YLOMq}cд@ g5S KwFoNP¶P$\xz\Î󕖈0 ^r#N+6BY$][mBĘi#Hqfd`ԫ<հu9'sO D̤E/8 崢;6bg_#tMu£:/@CrjF.)3vͺ׳ ޑ ]!+vپCWFC9rV[cϽD;{KvI *1{?ϨFa\xG!M4PM4ֽ3900)>ǗEKF@1%YӋ~;OțZ.=O?1zh*~ Q(Fwz9 TV‘[/dq":YAga؜Bs5+715|ؙZr[uF*oPJ5t2mhbjNxSst-C%l0|j Φk{<YscCŸAJ°k<@)DP3֖HHYfrt ^$sO#)=:9/V&lNAsG +hx B㔴(Lv@V\6L4ی40D-TA2x2L>t/ S5К{Z%uLMzqinXlĞzX\<D۩,H#YK7$K4^ެٽK.*-H",@5C4:Xm(%h*oAВ83BMKhrb>J3AoYN-*?Zq+-u/ :G|뿂#G/~<0>mj{T>>ݪPŏJ͏нWk9P|LtR7>+DHKМ¤Pe aJVL$)Z'Y=#k܎;b(!IVSe q֐T ۲0}hٔ D̾T=db"d vTc+ehإ4|u^&恊"0bAectHSu3>5 $X f 8JaM\ +TP}诈s,%Uү,k&!ԚcX6L1 fdat:Ǐ?gZ6<s4B(3ߌBe-`F@- [ [ me1 +T=F#vRF$%Q9§DNH֚ٚY5 ꞓGiAo}FVs綣*R9VkLE=Κ!:&H00=3)^8k7To&IMۀg+y֗u},xYvf[>4&s'"%-()Sc-#FSx޷G/)9"* 0I0O EabɣAD)|_|lhw嗟o޹&Yp !14] "woΌ`JlM^q>|lYmM{ܽ,53A~yP3&X^F/|Ka4ezGk5LK[6 Ч{=d:]R$tc/[b4,'Bcc 4>Kq(9}?p -C4 1/lkRyݽ|hZE"J,TњZ 9Sa'_eCcP49ǡv,g;}}QF"&Xh]2,ep![3Ku҂a8nc,ň3nxa j]ehxPH噄>C:uz*׺TݨU[]0U0w\k ҸRh#=g_u :u,g)7+og{}KSc/{õ &# 5 u|jRfN^3[ZH!nl+L:1PPWr?|с!낛j>q<7 ~/#%w/G/S|DآN8<p0w{&bG'O_~Ԫ\"6irr+ &jȦauǧyOI4聃8J٭YP94\&4ZV):mYI_3(Vf0G7!:\z顫uRtmOjx4v{h4F0QĞjBF=@O dM}/H6A +e`fM5WRn !Xt Aco 7QYi0rp<Dzٿn5W\v-L *n3WĖqe)+4 tHԨ*[+SwFtH=z KhQa yyu6YA-DU!E!P,SP=E44X@˱ m}(2ءߵ]`jמg\OG1KC%t@9r҂`lL].]N4#vW<0YANJ 9J3gnjITwZ8_- eKha+q?<~"@e@_ +SfX|^RC ́UjC;D;J!C7 +\Kʍz|ޝ1ňqi.kEK(yOlt9hsVqbט]2' eA1%J-M諗m@4:aA!,$,>\ N-wGcA4A + 1$)a @q/ͅIw>zVr.Ӯy uy_ojEGtZm/ƍz߲ O~ ?d'tV%|ǫ{+[#~xd$u&&=}4P}]~k_]m}Hquo̗qtIF_.SAh'%D8`FIxWV5<<ڧ+RLqv=e{}2kC˺vҨgwf q7Zw>v|Eh@5Xc\Z.ooyN@R}5<<Ϩ,o׷E7`RM* $q~nִtM-X2Nvhʅ@pꢃVOuϼ~Q4j2 !$;V¹`,WQ2 =of8I<]R=Nѵ64"Y _z81Ռe=*,sLVvd Ba詑 `y +l5;^g[z"Ԁԧ{*Ɖh5L6>a; ݝƌ) q!,@@x$Ƶ(|ZϜZ3X]P\FOU>$V KyO@t4Mj_^fLcx|@92Q xt^V'yEV(#fs-%b&5B!\:C:Y{;*q\T/սXz*}B"iӰ| `vlaVXaBIh5x +9o޹19]RH[о?sKe~;|/]ۦ_-Po@;|HHvP,uCgF4bo\aJI0?::阳׳?{.׻O`FozezXG%(zk4 Yz4>ѷk ѲZyCKMV+/2do-!$*[]0[0[ˬ^6 I(Gw)p.x)L ]"fC1|iUKQ-AHp8ۤ jA2%Q)>$PaaP:;jD_"7d@n-ц&2lfWZuWV9 8U7_#z":H*6)ì A^qT2Jƿ 0@#5LfQœ|w;;A-tDo* +4V +᳀#{H ZXnL@s1jfD|{jdy6 h4) f4Ww :vp$CZO}1kZ=%d{' ++*Ai%S?6OR[[Vu_@'GvY/._g Oyoe`]D]z_I0jфx-Sn N~j=I\뒿jc#K4aUWw|z/~ |Z ^.}ه'f@g 0Jw[G&o(w +b?p$dBB x4xB1At!#pn=ۛnQ^^5(c0*,f3jz@S:I'a|/-*:HEݴ7ͷWcˇ1c|aГШ"$z|ЏGdŏٮɤp _j&?|wN_W+G + Y%O{=~Zi9F{ـU:tX,j)qAb8hsBĸ' D;}Ӯct`=> tANBFRʦYkYڳyY.j w[c8==p^ +H7ъbM[YL =X ;LC0d;Zt̕,1p 'Af4cTZugI)};GæjF'v8 +{gWV>3/Cʛs{nٞ䮼$(4*MN7hMjWm`gVM/o~T&l*DF FckNߦY:j&OCNj!ЪbA' 6j|xVqW R*)Ȱ8kJ@svien`>@l[ZenvmZ_ ۳o 4a3bN /sJʖG6r7NX4ga#O-yg!Ƚ +Hn( vȱBֹDGZ}2~Lo۹僗. Ӌ{ᛕ;AZǘD4j`E*^w޴2ԘS|ÝQǖ~1exv +?[pl1ٿmo {̙M|3ޙqD fY;++? vjJ=T +Biם5DK@ {w@#rf!Z*@᪵-ge"sdꊔ ՔZ?ûR+ xpٌ@C w@!L^-9; l7hFWa 2-'?6]8;; 1 qE1rSRckN$E(qƷ!,qWcb^kS9Hγ9{مv钂x%^I]?Eb,X[X#tL(&H h,^Bb$_˦@^OR41DMXFA A $w_N[fuM2Y%f%:dNaqv[YPسzyr::nyfI(mqcNgrӉs% ÿT$z_)ž&# ofFsX85Af378P.86輊s$@-d%.ޟn<\s6>++@mH<}}/^|wX7Jh~^MQC) =øKϚr]4AWΠ@$Cm>1IOvZ9zꇿvg;?{dmx_dF qɱY1d5>kX~ C.W#:wRRsLjZϲu5l^I/,[iӣ }m&) +Ψ=n5sB'$8Z)@ĂuSH оn +ɒE#j*dlFٙJgYrdr |RkpG/fq8;I& @CrE2WW&B77VMOBg~Piisn+bUH(ƨ -E40Ja/j`NQcyv wI; +WH=KdyAW삷tߵg~C.e=%T@NH kt^Wǘ^3hG(֦s\.n_V멏v1gR3&c%U8.mdi} CyV44PYp+1eaqJ.,'gs)R`9`_9潧6{e W.\㐐Y$)mYWM[t#7@W +q +K?]'Oy;k׌4E4. OkP35Z#dJX}/=?3>_ ++R3~TЏ4> `IШ^SGnB'Y<w|/Z~j~:3wwִ&CJu]btީ4Z]}A#E[qiˆ CNv۶]d }`!!jiGM@E|yQL(a>:5l: Xc9SY5ZNzg93T%;kH)#8$֋b@&=(+J%+a`zϐ1 #, ͣأ + +[j[*giӵSnghFj&V!gG?dfv ήGחY< ~Jl7۟${eEt}}y(ι^L|Ý܋islOܠ<Iko4ZFDĉ/O1t*i} n=9Zq@úX֧P !}Z 0nϊ+Qڈ4֗D +ȯtm^a3aX}#Iu\8hrad72ړlL+Ar?:UU.do]~~õsw`,D9sy!"cT힯}*C?zP/<:f>:?yj5i@WoBK]?xChr+2oIޯ ~ᖹG)=VS?bʛu+vR-Uhb觮MtYx_b3{`DMJM~4{tVp;BQ0$#__C%#H"g ̱e?4{ jC@gS~@=a~ BgЄݥ0=0=7&]z/mS+Bo 7=y>q1+Yg/r# ΕϽԏ`%&hA4XhPb`e]BPt}dHx@]%+C;\m_)GPrc^Y4# %1Jet$k9aAmzk&X}R, [`lcK -—7;LH,bl:!\A<ȯm SII!{J\zizՀ*gSsWqD,]"t,D&FݩY]v=#'?A J9pGm<i]EgHS0H, v.yiC)@3³`+@S0[4(r]sغh +^b9ȈөX >w'1-&/cTk4;hҺ#BK>[41~yWG#r5ޮP K;W!_+RSE5a)T]|W }u A$$0ʈO& qpl,q& +U@ak4)fU`Y + 6*Xϟy3@&;O +C6нX|BO/G3=bY@OtS1G:C'Y`:@=V'Gqϸ&~6 @[fb4Ճ1!Qp! ݼ7 E<+K320@;bnN?'?mjŰ(k?-U#FٛubV9wUCxhTp/AU&= g$2ʬ:2bv34tf3A dh_g ҹn38#Gdڦʇ>3}^ж/Jܑ,A)M@B] (=H!術SR8#@OA74ol@(lԐ3:q]լrdaLwnjy׺f+e$jizw8 24\^ @{}Q3cʞDɄU XEy41aE1(EDc[_d|~X~aj.Fҗ̥߈R+:y޼s ߬1niO/oٯ~ܱPP[n!chSGq ZOvwq8_<"ǰ^=ޑ4=_t^\ػ[-GޟOO])/h/cshfoo_\e=om&Hln(\_x~J&ˎ x.)XpÈ;)BGUH#V. ཧ$%mXP+Yxvڭb4@gI;}3RK!}U_r4"_-]ւpqA]ovj +%j1!@SfJ%?YԮ6Jk3٭[0GOޮW2:W ֒=4*$@Ќ,%jT y6rcF(q۫S +.n yu+綘+=r S+HdweیMkqX)eʢ?y;&ƗiE=WSls{eҁ1~," +"$t`,A.pjS8&'О-Km;9FC50c +r1(n0eWL=Ӏ< +}Ѿa2EnѪ쒅m"&3*Mb?VYf~6NI˄jiKA{Kk4<=Thiƙv)7 + +G 2h^Gi;j-㎁Nv·w|`ܟ 6]蛆ʫؠ% Owl@gԥ;fKMߺgfE0L@eFB4RF;?5/?+ǚWN@Bu06xBBoZ]" D8\4xן$-$!hn} Z+^Sh*%K̺V 2.40Dj"]UNV+Xjz\$U 4$oW32PӺzt6$[ dlA=aUʽG-ϚђwJ[:ŒVj~lVm~̻v)@(`xU-E+fVFl6}`vcU8B/Ʊ zP&0`04 Q-@޼sFΚ|s ӂ-L{Ł9TWMm=`r_<| > Qa۞>1|l9xu|y9Q`d\Fȣ~@~Hfh,kv欭Y +#>~%  #sz b4,pf{ٯ@8\W}sl1p}Ucǹ)nv[fsX41o㥾]"&?]s{κ5Z<FH"昗x]o3u@^t{׌3FUthʯ-P]dWG@XpO +X_@J/\VN^N笎jt>xQ-O-had:(NhV-P:Yњ7>?v+VS|FJf&fUxͭa +b|C8a]|e+ m oN-aJ3)"LZc9(wujˍQYy В8cʳLҰ~Iؗ׬Ts GXHMDA3EQ _ٺ4TVky+%1ltVetPɦߐ )Am~CE EQ=,3.tv*aO*/ &jjͬkM䝯mkk]!ЈC7u,+,q`fմnOZ!٣Rzy,7RV#*Y-v=טH-7Jh5@'E1 BO4 ԍl\_з?Op da>ǖ/< NuoOhшyEIo#Kf~%u~bPO +`a= /h~Co^:)WT)wbaLOC-oleʲDk[fq}1$AA05f)28|&H):Hc#NЖ84۪@tYMZR +;>c,ÿ- QfD9SSk# /"3,aת,"ӽqVֳrYm s3)c-4LVPh${D4n%x48KQM3%ß-ehd}f^cAkv hy|ňnֵ-[}yI=+o.C<-qŧJTM9 +'aS2{"J08#qVOiLRi\dҜ(t֔,{XhoLdh:jhyoײnC>6cŀ\rP[ʼn-0w oE1p̝ũjr$ը3J i!'G}T` 7ӊtT<.(p'S ]h 2sp_MciiR? ]m1%N*' +m녗?M{o!:ʋj4\r9:ȴiQa44?%;t [ _Tcna CtOwݯY:optqE +GRo2́e2rlUc0G*Ͻth 0e~rgԜ*$㍭ TղljE6״;81SC4uڵn-U OD8s#j%kBx;z5Xy :5jN.Qc׏jN mȂϝs|.e3, Je*曚5YN,ߙJpZ]ʼ}B=oײJ褽!|(Lyޮn0= OǷl@C[%ߨy5(d";FmD1ϴr(-^(30DY:l +0XY[ Twy '#`D3D1j`:_( L?=olmӫ^PnazJuwctlCYTDgFwM{+p+W1w]?~: B[A.)HGX0gw]?91м59.Wnp~c{woNG>"aS8@+|PWR^lJ-k'@2VtFƥ6e3owk5@F3p]qLu1w{N#!"ZB綫1 +aY=X +1n@盠S7@%khΰR?]fw4f=@{}VQ!Le9KdΖ@ +<I@cMmˏ\QZop N蠊hu׷@ jTA74<%iuI=f=#%ŗkgȽ-ӳ]a1ĻoɒAY,6`fȎ.3Dk' R8T•3-|42FiXLijh`w~_=t<Ց + w ts4\Ԙ8{Sl \:"e8H/rj`\šý6DaB*0Mv:3a$f k{dbҳ;+1)[/[:MADz|??WR$wɡ\-c>}yc9K}o +7on~zDS8guN"l;FԼ^'2Mh!ь¦Yfqu_牭NVOfhbF8P"1am-R6Rg7A(eud+~F :fy&UfF%LD˙%q5ä P#mu%3~j[i08_/tT69MjI9}ӮݻRvfM<ƭp /‹FkrNK+˃瞨ڭ" 3?CCu.avN[&vg™|V'$MƒsULjLCŲS : ~&!g`fR*ы]g=6-;7 +7xUSn~z&h|.AIt tj@mS}ï&]}@7?vx#`4Ǟ[:C>ɿK8NlZ։')`r۞xaữ2S8FlmWR2O/>#Ź\/9qW|>Fנbt-<׷pmFʼnjo死թ^mӄh ͻ?:|z〻.X2\[@Sk( 9j$ΧϦcVLcL{)xpe1=6-sSz2s$0^5NJQPaV2@G%0e"Y9"g.I+} ["Xw8Ò1c6Kӑю2J7Sﵰi-?SkU]8El^ܖ1R;lWS gُ$Dxj(--"a櫃'm-FFl~XV nCbkA-AΡm[INYPv^!*p#U3~4th99Vw|LЛ(1 F4:__i5Q@_kQltN\ydoYpkˢ){_:cFlTPi<ډ}@5eRiH#504T<ʢ[>t.vNJ=^<Ȉm&E'a&Z)»oHVE/+XVn~맓$ed+o4dU_~TgHHՌo 4O^Co48cW^xMKA3§I la: Z+6ڦN /L&fU`lpEbὰf1\`ynE+VK݈?Ŗ8w%h@ɶ1bnPdgʠ +a7 w +[HKۈj$lN,H#!f#YԦm\2 +HYE-^@gʔ&hO#<Uo{f)~htaƟ•,S+NaDxX(p U@mܶoD3)~R8A^1Ũ0@*US{+T' xEwzc_V?ezOsN/׵ב;cF,8[5#hs`|Ck/4䤉f!M!yt{@hw/S8vulr "?C#a iVI)B`p(9vW8T FGooYF5%t}>5dY5E:K]=߿-2DƊ,a=KmQ64JDsR̐EVUnatwdz4ػ"w^Vf 2|GU)wV7rέ09 {N݇ ӳw+^%hI> |_y}k_]e +Hp%ʢwG$9]Nbto]TZCgVol㶝[0=n2T0' em.W^xO* A%4i^%fmvXӮ{CΝt]z$i ̚=PS׮Md3hٷ -b 2 It`mEj$dn4ҁU#cÏ*hJS@[*K!U@Xϐ!N!8N9t4B>Q80S*z+ShP G)(_OBVB'}/fh>U 2%|t#hp*&oL,h9D\ +32hZͻB6B}0_<5Auϼ~Vܰ Z"r}ތQ +E4kNԖ9Zy!؊C]-, 0NPU.m#)%)%Ձ#:TQRx~sgֹt^  Y+xp+ZQoe׌Tڠ̜CiX-TNrS6iNy6Wm6d5'xŊykBUl)-#I u7n+\;8^ mjr0qdZ*{8ַΔ?vZ3fő2>xܧ^띏;R^/o`(Y~hB9*u|GcvLzRy_;>0 +kb'3z~΅1C?i\fPTM f#Ep䮽gFΐ쌱 t"2 +Q h +Є"U[ʔ5Q8Vղ4~ސ5"SE$ 6f+pg +˻v[]-;@;~ә0 [3/K!VCd~4hk'q ˴$ۮ1,[dh8i7ݸƺuZׄZaO4Rg:xR<#z2КUKyNuuXym@: +G#fF ״ KhJ5{ub)/UQԪs "`!@zQ-=lNc3a4-n.Ny`e E%Uqj3e3' і \r `9'mS8,#)nPly{o~J 2`zek¼%H3mЋ|n>~] .q+ew-SFFdgGP8jXr gL~$2Dcws.SLP;Ț9+tVkkYhv5D=yA +3{|1}(+({ a@,]zaatxPWYVBqlE,֡Oo; +\:vo]*=ym{쿮~KCd¿oz\/t +}Nd/|SZM;v~Nww/U @u?qK&v_0|B3G4n`nw+U/K޴/*r'X;R +U*=GS+D J˟)QxJ]c0lhp{[]q?-a tؾՑ9`).Rf:pkHur> Ӈ+7~w4=\La,شNj\-Ec>"O~r뾿es3YduiwÏY-Ν5UTU#M@ˣYzֈ3>ûɈ9 +I Z(VP98Hp5l {w۟uXD-'.äYT\O +B YmvK?}5>4L]!_jqՃS#g#ycC?i|]89XԊųSZ7>oiS=z ^ HW<YO`bO[U! +,ceXD+::7_;~o=8.OuA +F@ۢ?~d#Jɀ +\^u )yXh~4sG߶5O}Xoj\;dwkmzR_1ޯ&@3>w7t;6ϒ n7Xf*5VoL]5ou(Pg% Iʲ|8'=|wZ18k/׎B5Ds6P.NasZaI(2j-8h 5mnY{d8eJ9hV,LT,}ַL//*oiV8',oN#Ք3&ͷܳowHS7ya4l#K=^ Rrp/$`EY)<BB_0 ;gX kvS(QR&k6aP~BIa> /;i-y?=k+!-?n߱qqd >_(7X4,%ޠ?}_ٟ o&ΨVz}GvfYfCg$OPVEO<ضQ4Zo7Ön>õ=nC;Z4faH}Q$Ctò}{*hrU(3Qfc+n6%bf]^B@{Tгfye-0s +zNg8'#  >Ot"4yDМ&zlŕR7,g2֖HU ;ƾyJ| 24ɕ~0ˎ(GߺodV ky1Rix!];qLz> k6T?xRXFv@)^U SOǩ!FSWJl~~/3i{@7*o|3_-gKQPi,[2 z6?shy9]>œ87 7-qUC߬} Ay4EA鐐I?iYn[AJ@OzZͷN:С![aO:fCB3Dp:- hQpQ cUFiz*@;/yy*4CC'qXJ + 2G9a8k˸dTw\xʍeԸ/!yʓVNb4P89e<#2G +1]CAۮt;8f˪k^q(2J9k/CQ_c3MYm&mD$4xvG^:bk6y>ІFX4@f*Zg۟ e4Ò=GOm>~O1= bPvF P +%%^fqh3 ߂\ٰX/z 2HiBi :ApRªPk޳Cg3hwr +<ؒG<' 6/}qM(y }Qc#X}=K!S@::5[*@CYܬIV9}XTp :̵ +/*l"r}̕@I&MyU&4o09ˈOvS9"; :Z? i\fy<\m^WYX?qn~@S˳iify?)VfyNb~s~v:4~o`UY5+b-:0`9+Tv<[[+M7|D@ D{*o>pe%yҏhD=(5ԧ~@#+G ®m-ӣ]z(L4 mWG/BKТm߅Tu0C2\֔?ÉMӟ}7/)QuI贷=)ZKs)@u&x녠Y3KB94mp(UֳQ:moU7 nj#F$MS^Y2mVFY`˝ƣCȍX5z 5g"MK:*j, "\GZ,BB0͔!R$4Q98KI"Qw󽬍x1e澦o|I`3ƟXDhÞUX)Qq&vhr7,,sĿAUΌ+V'^Ӛ%h|ӺdV` +}fZ<4)a"j Wd<]skp_#}J<[C". ȲhD̚:jZ\Wll%:G,* yr{FnU B +G`1~iO7O4ȷfù#$&hij.MˤŸmO.wTZ A`Y9xt2ȶ?5 d +=SRH.3SUNJ|>h'KD'_ $ N*vL軮y7q,pGƶ}t'*9VKlʰ?ӟwJϨ/}o}?Ojkhi~ZV6nL9ozXe*j[M<Ǫʲ£ƈsvY ݅RB4>RnD4 ^!ˣը= +/}:Kb{wK>YkW̱ΔrϋaX~_vdEXS[|F,vPiDV~`fߨsW9*Sep_ьОLN7v 30#8d%dŨo:EIG5\Ivįlw.-'kV59ZLFhzYoNoY^RS;vLh0O_F6 m;LÈί4Lv?( 3tji|A3K5+k(d$Z^h+@ہiZXӡ ڗ#I!肨Y@,fV2нk[Ϳ4 +VDU\3WӍc9A<]5i؆?]S++OFOJ/~o9<9M^j?M,dk94(- 3lM?GO=M"P +`ӧjY||mL,@I¿&<*@?اO.+tx_wEVV;yTo|)_|lf_ݿ5lqz}gD/m]?Os]@#mOhgG2>dgNתiLtbF" c̯6#g\;eu2p%0R$"t~8^j16"Ut^,L Q+mf%'K@4JZH8 kpt$ZjU?10ūbcV/(EOd͢ ExT*Ɓdp$_>AWPv#7Tgm*giu- S2@'f\̊:  +t~p[1`o:dH`QZ}inc8j+FP%q0|Y[C%lO82U5˲3+@ 4LvhmmUCiY!iƥY$~NЁ YCMcB~ ME:bq*{:p[ q_hѝ7, +5CtX vK݆@#q.ߧ?z gI#g; pě$9nQCoY9+MI4TGRLN qdg|du[B _*#|g e D4ThZ~pt5޻P^.+3(Ûr&F/ffp$v-^W߃g6h?y8 ?-YFևWS?һ?Z gzI4}P;K߆lx!P[F b!fO AЎFjh*Z*w<={-.dpߋf=+QuFoc'!RfϬZ[YG\U*|(@$%2Pbθ2|U9ĝ={#t,ܪjsF8X7ƠZB=FX0"Y3 ^mO(34TJjC0i{,~@kwͳf‰Xhlgy88; +5$*3TXwͮV_c_&. +*1N-`fp6y)-qShd†г[/2d c3ٸ$C4CiOm$كjVlFyC4=">-#h ֛6|K'}= Ju1_ǖ?Y:~醥L&A_×ln7~oep [9^?Y`'O4O/\ZWosC +%ǖerw,Gm W V|6 xܣw>c~z6~}T!jH;yܕ9j鄪G#vUYj[P{Ds4x +C3xN6#LB}K3 Z$nlDIDq_y$Bj@ BB]yXV%Tu~_y Tp=ƶeIxߺl9c*1ՋZcUBsg[G'!, +,iMސU,*X&`R+SPTdN=>\[ = +g ƾg8]gWP:jdVNg0Gȭ(`r&!$jn4!<* ́6Lϲ]]<ӗXяgNGx`]{n׼tuĞ|br- H4jP+#tF/3Hhz׌fҝ,y@vDP5ϏrXuRz ҽEi-?p|ڏ=o;cXN%ϗLY#E[<_G } Y W"fG8{*kO+-@A/׾vǡ MB$h}8h͋GU7IS;>~g)Џ_c2|IsgeE +ĕѯ"=z)t{49w ';㟝?~NsE.i:?2!9fy'0>Q%hԾJ*u!Ǣ'm_1s^"gR$Q-Qg7)uwEyCI`NQh@(.?=f8at)3 4 %@Mhd:cOM tn#l9W.Y5& ɹTN4? (9n6$·|iv Weatjq +ʐ +!5n%X ORzp@Qᚘt^SɩU1V!4 |N0,f(kbH4Ǘ hCFl8kaMp .4Q<h3Qž*h;4-噾~3AgWC[7~2?C8gUYmy^Q3 gXzv5-oww`ESG$CT" +|˶J5%r5 ŝKtb!F k^= :WD{ (vHYw+͠V[FB#:_T!(9*# : + Oh:p7 -9mvX,ȯ5@h: Y[H߳bm“|膎_m/W9KX?!ql!(L0͐%dC3B#ȻGXg,#@ku5C'w$hZ5,-q@e0cXTo:_]=X#8E+raZR6߳@@։)"`>+@VovV҅\u<|W ?wXjm>y!>914CE7*1CAa?T_v~^=zϨ/>7]Ûo?rr>l{ς=2zq|@'n\vݲghdgO[q2:MsYY̬kyU9 -&#.zxN,XY';|^yhfqQzqlV<|$z?T4HD}4hYz>Y\uF,;r21ԐxStUZ/!!)%Ƃ,L㺲̠=ϷY<A򙹐KdEx3-;f aL|$Jڭj?M~c߼beb"anU!#-YϘΧta$@3@3WM:.Ԗ7~OWPD92L2e @'J+fić:M|WZFa\f@49)d:ˌ,7Q+ JYtGk;M1/Yo_Ix-X箛{` of@"4j)RpJ׌@h&J ԓx!sNPP[2 T\脧?{Vq}9}jOoA ݾ;6s 3# ИHq7O4h4&o.m3U>pUm=㈄-E ;QT5BE+XDޚwv߀jq+@O@L+חsٞ83YT$h{D"hTce)w`LjZ>n[vCHC8(1\O -gЊM+ 31  +yr|:}Rhd4-д!͏d|wsSf@(7SvFDFۑo +șltDۍf)R0ِ%2͐Nm@ N r[-t`ed9bEoaj􄴁e4G\ζ-SЌ,Lyhg5u ~KRNhB] + +ߐw:];ﱝg -)z,Ck)RU poE𨓗Np,BY~߱Þ7'~p 3øX=qA1(MyO޳P_įcK:F><&}g̯|A|y$ִW2VܻpOy}_מzG3/= J^>k7/J{wZS. 6u7[lmm$ +`hO:7Kvr+ϫja/8;fL. !#(fH=Ξ::,U&?=?SSwFkq_sz&Ja=[#hm l#hȈNW^?7~l깁Ѩ;~zkj @Ln Ӗ¡d@J/zeOwd}`tL?!9oU>wgF@?Y1zat%KxQp(xf uCß\6Pz @ (,E@@8A҂>I`B:pFnLvAhųUP2wlrR-9 gJ2{8!t?F# Օi:y7OȔ~.WFNdʩ/bG~]8^asd9r{k?ot-gS1vwjA f(\?7) CVgqԱڹw߶.(qie%d󗜛YGglANJ4THL᧊; "=P @kuѦ>t6l0ȧ wqׅ~ +@&>yU;o(>3 "CpY@^|%䄷xed&o^yp5)F;ш혮'Zu@7,ϭ;Zs4krAg7/aeohLy4  =Wb>l.ޡRQe>:QF`f2#Y"ƑeG(%߱LjYlZ!ROx:#cPhPMx1El)OU +ǰ{AAk1/??1_&l]8?p3[JD/5@yO<]m>4;\3^/07]K2h^9/ݻ/{ԝK z viLX`GTYװ!voߊNVr +k[>khO,ovs[h IH=h7=HZ>k1>Jk~><<k|7S< -yC[w +?qeQ@%^Dӻ]gMwe;} +8m4аSQ8c R594sm\N*yqkE9\̓вcU#~[y4@9§u.y`ʐ.z姟O[Zw!MRx %Nz& bhVrir;rXX~׫6T:8 14]Q8r4])G]0*V)Ѕ& Ń8R} " +zt@ݾcc)} g' +-@.,\n7oغt1=au̝e`h*5")-#]a‘ +K8b7bep}bOeC׳-gp͕2#yо@`y׬/zףg_A2ՉSZl =vp +͙>Vn %GPNg*,^h^/'2Gа%_4dC{ Q m \nmDKHĨDAo4a7cN 5MϲxC,_h-Lò=r9/rDz{Ӽ`-^3+d5AC0]M> #0ƊV1g_ϯf֞7QZ~z9IJLpOUR`NchL2DѺp E^j(aꞅ +J!9jj_u0(M{몝]88 h4 ̓ONf&H} +F [ hHLc}iVJV4p@u u24wË3tf3k_iJ*@K|l8c܇?>&=zZK(kSvO.9g -U*+;t-@RhJ<.))Jrb;c@Q0R!칳=Ko+n]C3Hw֑loO/=%G0ʒ&!i0Dێ$FhĸXũmȣa%JkgzN4T 3S(|n=-c>@_+ '>l E4GXE+ďJgm';.#NpڌwM˟0 f2̝ŧRj$&2hN: /]\id|Z }Dߍ O^dCkf@['3ځqI7W K-WLG2z#pTQ&rD_ZviINZUym/ø@k)ϑ>s]LuqͧUfȘ4^ȀLY/Ci{y噥4'gpMdNU+_xr37Km\C|cGb"hiVlo_V_u8aӫO47t~2`f@cBeTLCHG8u7g-ekJ˧j8}cGء|{>+])j/f#:>xG@+<|+O~y ):T3h8 O~\'=  p3A4:;~gm|y:Q%t_pV [xr3[쁮g*@gј*`Tp<1%L{-W?v6_S4-Nkc!ܹt{Q幭<5;J2{;_# !ٖ vmLShܙrjt旭;k A.pVu4{[tX. qUG&AL_jE81;`)@;9==z8J꠫/+IN|x/hgdҳEASu~it9g Cvօ'NpЪo򚓾pEq#;H*߷ȐKDڅx s`3[ct_m3E85q@' +PPP`r旦cAۜ ݃; ]$~RD-e9_ǚ Yʓ_NCg`Fs> i]z"owO\ >hm$8RG!?=vǡR*C @gJ rVXgڝVvB21SpGeiCt@q<ӳ=6mv+3_sL򍦟s<puw#:B2X!GMxj|w96T4:' jc,sjUÅXCcF_>61h_,`nl[ tmIZu=0 +zO{֫:j*!90 w(ad+lP3qkcKQnEigeh^y2ӔYgvrK&1Q|gr߾OGw}ǦWҎ/}&Isvjd'$3[o߱ګvh Ϭ/Hwb *^{5Xa*{bG߶ZOUnEZ:f4׵{Jur~x=~2atP +(!>`,4s5}>zke.SGiF\pǞ=+#?n!7;K˷\ŔmGpqR+VӘY4 {b|I1K,ߌI0*&> )5R[c~\,շ-M]Ϯ;H!y`4a4WFB$afHXՄ\^ |Ә£Gmh~ +ҬQ1h>3CT|/Wc;R 4Jo 5WX?;N/Jט]7ٓj h-$Re3.@OxөA:#'.ۓ@=za5L -ui6vP B/34#; h h|6s90 @vQ>*h(ĉ ^79N7ӏq؟7lyݡ7Nf( C_z +'gzNs=n.7ah8<8gMqZhXoRp@DN.R뤽04w6iLu N`<1 *ۀXw/MǑ!)5D ne>kІShzuqJu+3pΰ+]/[ߙ{b #L=ӇʁȝqSHlCZӃzd4-#^)M)lq\Ӵ*IE :i֣5FJ/oYd9ejŽ@ ՝ũ @ @!zO?o9]N5éJИi T Ԙ^◒PTՀ&od8^2 v#TkEkȽCKhҺBMDd31@{ߑU9Gտqr6ǝ>JtZ|Y<z8}s1ޅw] |k+&p1jܒTo=meXz;/f, +)-kU>2M>Cq^>Lp@ [1Ԟo>=׃J㻶U6,8nEӧ~\c;0 X}HA&Z`v^KfJNqr'O(Q*a襙=S0刯GY'[?b9f79V2'M#)S.0Cu3}7ʐ桎k-NrF.낻49yyθ[ۆj*&b@/)ΩwsΞ !dE>$:ڏ9Q}q.OYωЭΨ@<ꟼϠOk4).8Oa`Bܴ`s31[Dqh>45;ߍw)}HPz7?J$c#Y/O B_z]^K*[2ǖu\Py(mȊ[a6V#O;8MX\}Ȗ<QT L38k:q6T @_q# e!Z)ؔ&r,|%o)pɑ$7R5 |)U@"ْ9L8NZ@WLt˞( +ړڎqgcG9"/)&h:?CTsiSG#Nᾝ:Hqscۜ"+SGtܑF +QPrȿau nC$-jx4ȝ1U>ñþgv;VoɪJ8Chcc>$!Z>*ogM)#%]f—SJH)9E+7OF CvKSqY x-Va` L,+(4ZM{nVaFJKǒs,Eah\pj[N ֮K^wQt[cz'y7hZ1OCh,桎[Uij;s-/ϛ F\W؊ѬZ8cM#D"L>[}pL"thZJ;%ʆ+r=#k.s~\Wjz48^'"(K ʊ7JLx'gQP|xӰ'ܶ5vmz5DGkeyt!h'3|S +*C'/~o9=> }4c;0| Q$Zއ՘< +/>Oe8kQϮx|MAe':J[7I'AYm>]2`^ݶ{A>!$m#L *6g&N\Ht}^iGTd+l5 #/̭d$霒#'s؇KZ O4pDg]M3ԜZZSF+Wꕞ(jcvmlo! <%GH@kY VdOzLfXqcHkVk8KD.yrLzBM@et@k2|[->ۼ}J+Bm/9y a͢E z%o&,F~0]z}rh[GD4k=jadewN4>~3uJ_cgo9g ϓIE +c*E)DLgr7< $:OAy/=XhFMH[>!X#k@Nh +;ڸ~U@6[;.=7_Җ-,~-,ryh0QF5K+ek97H,QbT,:hʚMɠ0rlj@ l+Vk \ &]h~6Q!f44 8FN4j[eRy.?/H~;k7i\w/Wlb +jEshb*2@gy͈ɲmo֫% X;bU@?u :g@÷LzKpv3h2=UJoU^5[pIJ"6 Jw3'/>7a |hhyFc#H4טN v_Zh5+saxncyS [[R@C-Əg=&۶I{yq&[es0:8,=E nBiT:g,EZLMY+fɧ@Ve9 ,JSOuFenw_aX W[~зT׫m.% ޮ䍸hȸevLD+:Y1>1]:,VKKxL'ܳPɰu^91 ct[ϽؤZ4n7^_ha(}HKwm~h2L>|F ǗGЛ@oDJ\KZ1zh oQ ގ YD!X}+լZe}EԆH|A +P@orƄ)K?+i 5u@;zF@s೎n64+(u9taF_mXa^r-/ tFUuYa6,S!əf́ # q,zL;fO: R5h)4Kj4 ϙvZF`jv$_y@igoqY:“?x,*]za:"׀= 'yts8onLCGO avh"Q@;K|3[s=eyzXpO|)Xg^qXFЧ (z51J?vϜ_lz=`#㇀޺O%uOt:)7?OJo? ^n4~Zy#EcR;ou()(2d?VvH`Yl;.o4L/SZ4(|y|x"CCbOzt 49b<Ӹg4A|W\I1D16/{$6\1f@~aOHq$*8h"R{$JtSWϵzН}~2_Y,[ X0ỉ:(hceR$scbJiKqXYRP ^&t˂VTfmˆf-gĶ,z'ZT ؍&!GN1>j哷#e;er T wH'i8ɚ2R7'(q+-ƕgz : qf"4_̩͝RU +I =vCw|]-1(~uK>zjE-?~dWЙw|yqG4r1-̇'W2?uͻ.w:1 -@üU+3[ MMA(D`zBeςwsł8V`HNi/M$z;&hݳ3-W܁ KͶL ;lףU:pL)96ZiHhGhp/„x]}͐,.,q)Z-CG^jm LCR#W#,CŒ"eu5=|bf5/ +Yr“Lǽ@+C4@Ku ۪8:$vKDƀa7AX,-Y2t!_- +8"S•+2R/u>wA^v$ot5c +t-uT_x%iۀ!(=U4ih*H~t"G~KlVDqkRiN;~3'Kx>u2!oECc>4= OРa4 Rld5!~7ri72>7xNr-_yO<]^TlY̵kWc+7P$(\X&h`.)HW24$,kِ'i_0|:n6*6hR4 N)(Uȧ,O ^ji4\z$,ρ)5lO,O\apt_# yWM- OC? +@{*N`Hv:~}iF&l7L;&@^x#jΌfɤd9np^HXgW=+5{~EdmcaKZ_ԍu@A@x2MLp9n@?V<:pЪ'8ke4 gc\{ocԩt-߯S(Lݰ{v>4U?'ܤcO7|G8MCeu!qo_dmeYniח5az|8]nCgV}ڟ>)b;&}&#X+ibJB`'Z-+Rxt\|o>,kQa#7Fز惞;0o5WfF@'&8Sz ~=B3ߒCϖvH8 Ѳ|BN O2ZyREm5 =E>~%g2TNw- _{ބh_069P/YH\Α$- +N;'UavGBVjh' :vVYDFA,lR7@o]7]õh4!C Kzፎi<s$%7:Z7=񍞨r`MVq:qnfl RLF% Б +'QuFڃ$s^cBv +H|nc8I#":ޥ=ҀKʣki9F%XzKe&@ Qp#wN35}ym`pRBzPGdQ}s׆vS &Jexaj_"g6o'Kat,"&oZ%H3MkG.k-qU:4cN]E+Pt-49;ta_%L?Ξķ~\9ş係G'7'VchיtBGɽo_'u$Y߭o +G~lR֚D'=ا8Cɱ/KZh~E9n =!zF].|( ԚĤfDZF"uLgssSGՇS42,&dyAP $:vQK46fC(Wg岵9 +L!3?ҁ|wuX J`er"@[.JUhFe;=SpxFvwmaO Вgc4ȑA&UIZ[in&=I(Z;o1L?/@km2]ÓP]5fѢ6ѣKn mx)sWڥoe jZVs`I$A4Sz©@fNn&?h;niVVy>q1GRzЎJ3 #Yذd;t6}.Y#7>or_D cu>nj ^a.<@'n֕/7-ʚ]5҅pIwǭ[p`,MӾ$Ƥ #qRk~f~FR.Fc.ʍ|։$T CiЁӬ[s7{-7m^B ;y/mBhE7hkA+*t}ϫծ@o7:4YơhOO>]ptSJNt +:rEaL݋w;0^)qI c~nϠ+?>Cߺo]4h8fkϩ鉁nkZʲ=/)jxqM+@@OL'|M{UYI߂X{i|ˆ$z67FYqЉdRzW&u9ȊsVaS  `HZ e 6`[X`h8V]/E4-Co_Z9LK[+6!;ϟ۹x.>_~dمB1YwsZAL +/`}irUfЖX&reԖUd$lda:Fԟ7zsF5Twu_>uȫ0?F+9|[.y-F}qz1>M3GvY!ҽjƯґW5> U@r{J1ѵta_e\|ab_a~4UܙDc}61)?g^qdAhvh]_L +RkI>?8rGj_c8=u缎#?JXjRwsN% {h9wףKzY:[؁21`̄{''13DnL&K.@e&yNb,Y#gwU}kף翴kWWbq|s|"L@ ;jlN-GY(9ҚqIs:Hp0\$mn WGs9Sr&pA驜 gS +b"cR'rgX)p q u<)Q^? CQ/\1TPűoKp3:SeƐh@Vɛc!A4; :%9]jK)-uUJNZ}1gA5+*lu)u|wf.Y7¿MdqHyE=iWH;Tv[ЉK_1*jyŪ]h;jxCG G{l|TTn$_^]ͥ lqzoxOw%E/]/i+x3~8 [wq;sDAw<骹" ++"LkJo#EI5 Qh}˚_ػi+]nE! +eƖX E tZ)*/dt)Yy&8vk[9GO?u.%Zo'R}oŪ/p Зa55u-t|0/j^j, +f{L"fqEF-S3 RνK >xۯm)֙.9¡<jwJH932 9J+grtw +(`WĤ` o-ԪV+BBa +6=p +uvX@JFl-RfY3tt 5Cѫ>!p-: @fC2F4 ś6v-&? ڳB agQp2p[e/}B)`Ƈص}AN>[Tmc?ٵAO>'L;uA%àa [@.bo߽}_cp :EAŠ\R޲bW?w`"b\V+ٟWDHݥ)eTt"nw^+t,&!-kVt3g@d “s3=xAi!lF{UU;66t89T˻jzZEL%h6B7X eUt1T& +xhՍV%|+D`䁤(4gVCe]JJ>cxe#l}44S0Ŧ_HDԹ䶜9IHz],zo^z7P-:&lhT^L_#.AAUsq|յ/([YQz[ CB !4>G6p܆^ĘϱytR0D;.:mNO'魟;}dC)&B ~79=|ZMQ|RuYT) VMIJ^*瀦jz )2OAMEg|<a:h,cZK|Og$:ghĂ8q3AsbSEz ҏwj|߁x +ۗ3l$ݟ?5}/WZˇO^s*O]jsۿkS^4o OtKfd*W H1T:Pذd-ō8nwhhfdv=P +3`Nq8K6RKS`Bcc#y4<+:蕘IJ0zCOάm6ćlgw$Yȝ1_6g~OYd8Cgn4)}qApLH8/̣@fNhNx@S]qcsc>GE UeohfV`4mW\OݘivϑW}czh!f ٘W@C=!.%%AUV9"׻_0 Y^.o~Q>5]+ӛ;n[-; Q)%tT#ˊ>u‚h$PCEؠ_ӌpF=zLL]Z³™B9T E0 J*5M) r~K֨0!ku@*@{;ޓYݦs_7\b4f,o8ln"EA[lgݱ' z9UQ;c Jb?ƴ(kfMriqM@C]+f"Bw]mk=~EP] 3 9 M +UC'/!ta^nv<\G۠4TI]d{8Zc@c1\~nW"NZAJeFF(C~%;Sql+*9]Lo5O!s +TAK*Мp]h2T?crhcA+c[.W15uH}}R8De!11Pm~3ѣBI-KVm:SZ75S#ؽ@VѰ$Bzzλd|#o2Z:p;m61h6uC՝ ug|w41sd%,ԉ@vs쫂J ^J,tmfĢ24GW 7AHݞEYb?Ce3MzS8ꭦۗ}NI֢MUˢ͙'r}om>kg8E,ժ%ِ ٗk$@sCֹY5ח/vc6/P!h߆  +.-sѬ+^lп=W]yE<MBC5L5[#6hSܵ]g@c7?;'K:8 +BO/>B|+4{G}W(SL/}+Ajo7tW7ˡ;DqdM?|kG +)FgВT?ot#ϝP;h;=cnƦPͱFR`Y'rE?_⴫UUoX`jj ,JQ$ tºw~m~~GC%@f[aw`S+*„X>W,7m8+h{h2FTv)~:/۷Xf[Aq.mRsk؀X$` *m Ku!lTʧ ixS@!v#)Q^6 e]7h!^B/Yj+_c0N""h0t&t[2T@-JLAK h:!p0unǥ 'QVИDL+}%4?]8v^իe(6T]Gk,L'0k+v?Y<4owӉAat(]q K#tœ hF?ߘ=M{nO7 B4fû^r5PSM+Y񅸀{gL(&< }[$ h>|xÖobs^dD}}ED}9oՒ `NЖrT&w+Ic@F?:tfdHٜcү<"g6ٳyHaF3l'))#)#ѕ?x^~Ds-N1ЬX؟DY͌,:fӠòL2T%};Vi4]f%tzytͥuYk~5mW'MGNJ-(=JdS%,}o#=C7lwb%ua7uƍK?UM o27fk Q!k6V>z/|h y\@3iRkKHYPmPeIUY]Jusm"09+ܣʾ:Greƚ1չ@Q]$&.z.eg*~b1r0Dg9$,ZË1r@GlU8[&l5ϊع`Sڱykm@H5b_U1cmQ;1~ &6/f?=;OB˿s#0nި,Z274=@w/6uBοn׎lE;G..a |/0,c3k[9zZ`_aҝNu |Vղ{jikbPtuv֏ꦷ0p`T0*̃Fz%`jxAE$bN24oq  _aʹ_?"1s +Ϥ RһY6)'?{M!h: FO;C}w<~>CR~EcN)a [tUr2]),zKIzql΋3إVʶn5Uh%^YMzYh#;F3n܆rF"Dœ_zn%E8 + u52jcwܖFo ˡ%}F[g^=3EC6ex=ˊ.iN,ߔzSĬṡPPͳ-R:0XIWUر}'Ѓ`zy^2\@4zdI-mφr1h"E"E-Fm~it}?fBvDt[M( +1ӄX1cQoLzͰWyGr /kS8#7HO:uBO@7zfF ]{D8뮰5Fr3f`kZkpǴ k5\q}H~9[j^i.ܘ6,SM+C{'bJLkK?s0@ [aP/I`L4=:Z0*K|Ġ Gv{ס,q.}(Mwo()|ͽ\' wB}|~ři~#87'CEP]xnhK5Y^#LV+EfjytOvOyITy%颿"0xڟ](]TƐ C;vsD d}WHJ:+Z#ᅝXz KV*j.2Jf ]Uk,});u_S66鷾zW>z|Q4trgp1Mr!]s0BTYPMZCiit8PwZ~b,?465u!&)u<6% + +Ӂ.E߄|.^z ey@x̰3h?#zni`^)gjr^!|̍je7n4뻬.(.1aBa E$#y8Œoj~vLlYp"2ex$,pS"t[0V9($ѻDu{lgh1շIȠPC[ͮN=F +$\2_h?{;',_|z4=K<|UҐ\Ǟ$CjSH3ݓ`߶12M M \Ш-ʸZ|I4 QfXY]o˿tc5/eDڬOM6ٯÀ4w%3/W8/Rٯ > @#tzjެVW"NR]?݊_ŦS}F('|d/]L p vPk+.vT?d\9n&>9{VwCllǮzh 60EfN .֔ ZЃVe% R<4h1R,(ΞZЖ pDhuNV/Fs_Hg)sZ;3܍@Xm6TЇY,r.Rm&hז4a_+AOp^*K`:nf=+>KqW+Т1rSX #>|ދꛣN4n;s)+AKo=| t<{XLݺ3|0*O~8+?UKjA 8'ž}}Oǧ&o3u=NUNW |7c$i;6o +z·$g%j}{S:ހ,Z\~4l󩅹Qp[,ЁYhS'ʭUNLhէ%wˏ=Sʮv <䷖.a#tFjfD6j19@\JZI`k]_hMWQ[uF rBB([ #Ƨ"Z~Qhx#-Vu[j׻ֺ}`GHh%& `͙}iKkJS +ub^&Ya8ҕfJT:_.@Z-Qϔn?b芣v8TWGT$h+ iϮixqs@w`ך{$f.q +"8Jm=^+Y4>7{]$EAHʮҕ|uW\7`P0SCh8qv^fk唚 @Ky%7IsڒhmOSH`:UesMzwӫbV ds7 $@ 6LkDΎg5v ߿맺zױ+pg;cRiݓRnI0(Xd.hDŽԦzZAkFi5S# Z+bp5Z%X^y'14w,Ow:tb|hVPmF$5A۟aj͆Rý 4d ڪ2qzl]JM@a`xU Kvv([|$ r#T:|xb,A ¶&lǦ8 vjjiĹZ$(6>M@P9 Whc_fNo]ey:mw}uq셎Vc76_Jo bz w(1>z>,~PwjjFcC +trY|HCKž.;PjK?I ~JcA GAZmy?xONjv#{-'DG6i=~)+D^(yz3;gyaqx9@x}˚|=RqAIТJi˒Lat"wC+@b[ܳwS^kQ) NpNxIij;$WJi>m"^.RIxa۶-~/ôX`{ڿQ:G +~~﷋Q-^yzo)mp%kz/g-kpx͐ȡZ-ڿ?F3`kǠ=$V de:$DR炫S)TOgQfΰD9W0/Ǹr|?]dh)P v-ԌE,1C;)<(s 9-3u.HCd#Iu2@drd 5昖,bܳ}t*v-Vs LHpKx hvg 1EmoIo 7^liL5ҷ\2qIߠ=$hHS؄'Tнh4?  `@ n:v9cae<h@MgP2FE0zץU"񃁏OκʂtYIXK`gz vbfҮK۾HqlvҢ`Zk|O`tr qn)ho7l#I5@WM%k , + +bI[waw?pe*̟dt7w 51*ɯ1\L{礅fЋsцʒhΨB}fLOH+ ;']JQ^l9##hûN=~00=5^kRF\t +/ǾQ3$D҄{qf9s?,$ڟoB?W.: +@b8Q+VKt(Y2P5 ![O~?cYW_xY"==k=>D%-Xf@"3P=<4OvxIƄ| ۓn]s _0M6hhfS^Msa:TFU~CZafE߄j> I@gkǗ?=(Jii%dcFMufiX_HeqЈ9JRA;QZsFݩ2_b$G k7_sLKjoèk-.Bęgk0d{ZkiYr!M$eqO$` Rf?y~g@{3}gLڊQ-C\d$A¡DбHR7]<^(a6X `Tʿ#zPu$>JY:yYgj͆cB&AϓB qa m}ܭWZįP6^͜NZYM }=M M,ÎEAAbtu ӕ4?zzfLk$Adh0 +h\Xώe}9,a4" v5Y*:j#V"O,Փs3=ȠvsJC FL(xAϤx:KօN޴I6۶=^Y\%!i$@Bv޳gDT ړW$˷B++!e&T'gI@r˅÷tUo RAt,fG?Էc edooЮ`|AB[ @J8:<ǫ8gg@ñ5/<)Nc?Z:RC+(2sx1YEbtj/l:# +d,}{J%MIuAP] tv }BKO,lI9b@a#D(x4 +o4n ZG Rb Ot3>'^8͜`.Ǿ?w3 莤JTmiݶeͪ-hG&JOz^+eо"!PzBK^fA}g5NgVʶ͓^n~,F]*jv&aΒ$_Dx̼RtPi[D*_dyPLqX(DtՄLsϯbP5W4t&wJ+,^x !cRD_ꝓe@%EZ0" _WtM¶3JCYQ8gzrn' *Lu3g?m˚7QQ!£ENYǛܑs"l3] e(@!u8nE~ /Řiq~^oZywQD߸ˏ9zbG/A\u;BWvSwhX%g 6kec-♺ +}UoJDz1A].4U|" A)^(+\hqhUma4A^XVvmyqV53hͱGyƆ'Ң1#NNU]@ƪnK z/*Pچ(Bٙ%eH`R4<*]Ss l(o rPo*#Eܬt,@ &=2->+h⟴Ňyh7o~.7RM0The[ܨ +‘% Z7ߍrAAwED{ trV4]@e#$=iG߼o#g.Luq D=ä_H^I?Q%֬V2Ng1Ywl:qt3rv +REл7'?ʪzC'fہ;):@*HH8{;Pv_!kR}a0?6t3g[YDhx*@KG3K BvCfO=ʩS6M ?BwtI9E^f2F2y1<-;Kh$"7mS\lg(7uZ.:^]VHv]hwV?zaƼfʸI( +f,*(%r<]kg$/W]93r97Q~xQb HG>8~:$U!= +I.-F v4hni*WH`B.oE!D< @ϗݓoXy0cI7 /BmKi,tF\REyf*Ʀع"ͮ8[v޺ӈuϝJLg5z_ ̻c> W?N $b"< JB6Ѳ9/\g~&aDE`KzpRbe9 +i޺axGyoɳ{e&3g4#HucJ"Thr'ր"n)xV:1FԺ0_ͅūCR?nʒOlT(^hݱGZ Lqϐ Y +jRxՇUK?߳gg_׏sGI*C=gway4>CE+6ՇN֣W. /ԣo>:ct&x̩)JDɱI TT.nĖlhgf`A9AWhR,/k'feԋI֛'/tw^ׂ@/k@&{C {c 3LZ+km@gL-Mij/z;2'|I,)@C3񣢉o^C{r+l_uU0 t-Q7ZbgIzQfnЇM%ÂXL8 Fm)V%ꨚ XQ/qhL!ZbͪngwN/?N|a5:Y55u-; +~䟹P@ah孌.*Zf不IomG|O(d,C7"ᔦAMP^:esskݒMЪM[ ;P/y@l.E9g1ںɳB +oB~NAF3͜0t6Tw^ gKc5F5vgnc0hw: H`t$=l|VXY:n!xۺ1ZF4cAL➛zQ1ӌ]V o̶CX[{@ +u#ϝH!>5=)FV1tג +@у%Vb +4tոXTt%E[s31KJ ڞ@>Q[kcg +bΤ( FTTr-U^@ V̺ۿ3Ukq3Fz?:Uƥ1"!X 1mfv뢊g:O1³e˩]n嘘L!sXCInNRGLwndY+K&,8`͢! MнsޗfJ;H 37Lٜ.8:$0Y[F$Vd %@{qϣ4gv0ɮ]^,˳v4i,N$ 'f 1ݺH~JrFՔ2z ͒:Atc97]:fVSn`zWh/-v)4sRL +M^aKBBԪ;\ڲ0m֪+B̮KǦ O؀9Gұ:Pª+ Y!hUȌ%gTG4VIe R&>vG\]j2f|l1И!A(G[xď};^L`ߢ|;M ,BSwv [+Jf|y|7ϞoGbNuQ}󱯈s + +@BLЃ 0Dc6 m[-{+>|Q;aK,}bvnya Gn n'qz,ѿ#G$^g} U̍3fv&g+kl<3>ր8l+<^?U Oջ3A":/MZ. a Y o?ca"F5[T]R MX<\ 4&r`A$% +֙-Ŝ͉ɟڜɒd&OC9ڠ ˇE3ӫn4JuM2vcH!"@;FK+٪g:M$G#J~:5>%J]sjPQ&6|$zJ|9F#Uq'@0,b3&&gp6N?yLh6!X<,D;_PFqŠlBwgVHGh]/8hƒYN,$XAyP;Jh8_ޮk{+`ؠKML8W1SA +ﱑ;5$e4;*yY(0g ڢS ֐U"{'rx|g5N$H{/ <ѝN+JZ|3Uziv/KPi +b!ZBkT׿V9YBGTL#>Əw*]%ɶ,GpR²PM7喡K fȉD PsF*%4V4]r?w*n!ȣ6j0}Ο†=Z1;,O6V\NArEK[.bg@RFvbF;w۟<=q%36*xL/3^F5hkl;0J9aU3p +vJ-*JatH!=މߥ,pKP*w_ix",&bG* +f,Nȧ\dW]8!;\]q#1R2ץhN >l_a9R3f/~n $^A^1R.C4ɛon,h!vAvUl +9tS3Fp \Ԏ(S U8 ;ig:o/N^_hI:4("fG8A3fj4Vq+W: CED'_[j Q;Rmܑ?NSnAAQUm3`߼bH Ri1+6I K[@ R;hZ{Y>yB ܅Zcg@ Wpe.9?~Rv&wݰ?mGΝ+*|__W$&n:n`"+ h-G GCXja$;Dx[ ӚĜIpqCwVRvp83[VB[<DH /lu1C.4~=iU2v OՠbK^F9Po +F^cԋmS1Yn膬t{Ek(z#h]W5jwM?@k|MW7&#f#LIeASk-#F?6?\cXjK# &i,pD!cMwAOR,Qc:^iZ% T],'ų@1͢Y__1=BJ̄ZZtM22eqh1bAXJ`,k @oW̴.X5f!$2ۺCe=XB20yh\/)Fg7s앱 _`<C0&4P> /(`&N}v_Y?.[vb[IcuOjkH̦@|% Z /u6wтȦCy-hHТbs][n/8эc4<7ϟ0hM_ Fa3W{w3b;LdYAs:{C<47_ ii_ؑI6/o^ m:U^SfuR8"N4g>h3@B$|!-6C^Pg aWF9#Q,OZazR3f}"miv.H*u~օiƖ@{=#!A ƥ BhGqFёD$G'kxU( tzA)mV|T/ ͹}辷Ntrc6%T=i-?[r+í)fqSlbwDѨBQJ-[U/C3{pw+f^ JOW ڪֹ-1)M"V2V H8\*]Zuym2hV5[0r(K{x\h2l.oOZyL$Efڿc/Sl;uSZR86j&ӎTd>l0mQXPժsLɋ$? Dq(< #wPfw_8i<#SgtpXY +Ԍj%o7ĞZ ӲX5cpHW_yEgSi&xYN//[m|5֞;u}Wb\15Qxs 3OՌB$(Ks4ѽ{~{8%_Xgt"ʝA+D?atW?p I' >ĬȠiga>@Ai5ږ>v-EW0#K߿@-E}rZ^*.{z?׋EIJa۷~ow;ck׾ž+ᑎ ( &Ŧm03بНEb:l[ӿW\x~l񌢏J ڵME]U2EQ]ᘎ$t(X̵Ֆ5; zx`H% 'G9dʮ F]_rǽ5U`UXp-ah-8i7I9yHhe(fS8zl("T)PKl@nF=7V˒;\yvmS!7DAxKb8gqp3>t.ëʁ,;ZjboSuc +-@Muy?$\mUam^5s*˟RA=ԛmfC< ,!NĞZM :|۲6mt1!ʖo,bQyH_2gB/0?yV6}*7$gP +T,j' [*t*vlt&-k;cŹ=57Ka1W.rs`}=tuxHzPm7FVILgV{xD:@}&GCN=ݔ2?}_ΟKw^/U|x7Hpzـ1T1.ᣤd lDr,T+NA6"kjJez D}@-;Us&q,E#qZk7Ի}VO/֖n1dqα +^hF3tu .Ys;x7셒Awa%*q"ϲ +xCsjixI& ]Sb9lj!k^QО"c&̦jvbao7_[&J 9ˇ]'85T 5agΔ9R}+ &ċ(Ṗ}ә\iZ%ihO(p3 뺥гܶ_>kQOٷ}^褧+H 2 Rt&8%:zL{?ʐX/Y<@׳eRhwlG_]W+M)ͫ~?tf{ۖ5tU("OZyG}K(Ek:ѱBMœaTzP-#g79< r#HA~Cnr?p&xa@i|؟! 0oh뚚([U)Pd 1H+aT.4m2zԢIlRFwӋf"Avܹ?J}FsoZ zϧhe2Di5e;ϼ=~k0/;'1 بjQ/aΨy Q)ccw (%A+,s9LX6v"àP| 4.%CѶC˷?^^b{PHbX҂Q +@r2D-fVvk%,2fBGs!fU L,7/ Ή{@lKCY<۬ E/NV/wZϼe~EAPcA@.M)%< As.gQj|z0zOn,^~:oA#o,KJ.VliNt~p*s{: tHyPva&vD$',bu7H(bt4BN/4$he0cw\7p}#a\R8o`|NW0A%o"R8 ꍿ?ӕCN +ӵ+4Ī)BbVhq"v,ه1m-HGߐ&3opo=vUbܓZ;.W.HC&ycP?({s:]Qsq +a10.,τhfS+T_^n)R9ZkK:vs\3LZdds\q>IY3ڟB{K#FR&:EY6485!hJ"&B׳%`hiH;IURX +ܬꡞVe$ +Sn# +C4Cf̶I47Zyqu/>Szq[yg2BCzKcX1a#ihE5kס{|O#Ϟ9b?&hxi˥~qkyT_lm/iSބb!EXd-221Th]8Eu΄=jg"p.҉"tIYrB wse E1mz߾Au`4 +-E'@^9E?~Fog<KsB<,f/5cI@8Xۧx$_@܌w>}^[4ƒtb4^̍iL_mY9Y^4+$-bܐL6g;]Iu\-bBPvj$;aًZFeY9N=5k9*(G,+ZMSsAItiSn~pW<yÂαrzbg), 4~5RL Klu; ]ԣShg@;O3^h3 +IJko 0m[Ї7E-N.)-ߖVGͤ1=)ҀWgO`tATG,\L{^9e_Dc3ˈSdFcGl&M8up&a}k +*~b*}N3|}QKߠ;*zY$O;d?{֕Yx콑>v;H4LbyWyŏ~uP5r-g I/Vhg 8xӇb%.Tc&%dlmaj*ζFsҵy:Us٤צK8\6vJK8g҂|8%|$K]cpXN/wV}Uiβ +TJzǝan\5ox#{>-$L/@͎6]_}R#S]fo_ޑ.J+ '|TCБ@D-j%YI" 6(wZ&I{~yܜjw0\745]bmٲ]'Foe -tr[{٬cz\0jNk.Ϭ[͓ ݬ0DH+ͭ5٪dV4J#>W̮T6 ~no qc/4vlW &l7.UI 3DA&f_HXa.fgRyE3@%l*hP)HOL#M :{'uh}QP 4=#|;|W7ڊ~hybG [>{:eY2 +X3mA;'K_zzrs=(C|` 9G]\w}j޹|;]?>/ />ţߞ)6s[Z吺~ +i+ + FZaoQTv_bo,U^2K^ii#QC-sNd"yn9Qj_x~l^\ڼر՜!9):VP P^̿KL15m"3es@W8N\ YOrs탪`ǸiӃ2o-Co*Ef, 5a?rzږ'zj*]6l[j7¿VMI!XvoD쁈lddmQ$M~1LH+JVb\O YS#˺JWǫ I:$`>d={ 柆mh./H%Uِx4mw=?{޵>ԕ}jx B^uyWZ(ĪVG㴘,.Cp+ nڰj/~h;o8wHq#֗pt-F';hqܳwSN~ƣs>g?zFB'zq7Љ.E:ˈ"2s|dj,Iw_wJmb?C&RX%1_H+beEW/U+@Ջ[/C)- ˶N\cijp빍gdl٭ۙk+^c5sּ֫X~q ~<>6ŪW9j`jF8Z_uLs񖴟 Tz_ޟЬ9t\O3Xz<ԜZ!.g"di, +Z{ ZԹ[#iSJkl Umr~beGaG&p 3don(eƔl,S3xe4@!6EbD%.3MNg @qX?ܿe55@<''ES3i$YSLJw +_xهb26cѹ_qt7e_om\¾=U$ fDK=|yТm :7L-3/=vRGT(n +~)ƣ<4 &Ȑ +-SN||PռYժrXiPҐ7G@Y +;?Oe8 @E;M~}(ܓs3Ϡ;@廉?.fg/?o;q1ye ʍFy4}H'f! ^ћqد^kf*2VLo܊g*2 fRz__yE~DOxySY޹&cؙ1Zy&h 9`5\FS7Cә)Ŷ7:*lF b0, +qwhۛZ@gE]NCw>ؙ Ŭ +Dlz˖SY-|RMg4C <& Yl>٤l6sha5~,Q/jKs8#k=e('ԩ[S^3&irH4aZe>9Tk|"z"3H.z)hafٝOuJ_?k۷'Q藭W͏hY +lBkK95ڢi[؇j[ժ^{S5ONҿ[Gvљ"c_FxzxÖo3MǮN'&~=K;KӋ}.hfJKMh>Ew: aj,M9׮^`}LVSFf}/}WsbWz'^?6V G[b^jx빩d4e4ˣxd +0A ZXf"m˭>~V.mɬ]q!] ,]:c}^i. Jbrj%$@C4hhiL#N.),cm?(alqy [ X8=Z=@#^Lk3H$ΰTH vLJWݓrvi3@fgLᨴ%;jX8L+658MAxY|"@$ut$l2p#f,>+ ^4`υV:aAOmwlš &*;F'XQʆR :b?|V MϷ=%I‘ +'MohPޠ?Xe,Uy A{zVޜ3Kȣ UV ^hSH9YO;#}'ᰅo,6u#鿾Q /<~ሏ*=FV$~sN1՝ :{N!tˣ/I)^->t4g/>άt;e5} KZo]{zuOό I^MZQ)hIQe(wv0U5B͒=ZP^ 9ρ8cf~I$DD}<1Wl&af3{nUi4UjN5gB-B@lݚr)Pr>Jͮ4ꓯ"_S*e7w:|S9Ȇ: C:%xqE#\yBG|뛏\2ZL4N/wGE$}ٙ]ӱ;\&YCvFF +?US8xN\[Ip +NUf ܮnZJϝ[@8ƗM; aopj@Kt{ +&q<;n`\k.dȳp rxpඝCWIJ†̓~b\Ʌ;?g]11(i.0z$£7 G&׆U38=~Yw~d4JIx^@Xfؐ6y|Y歏::Z[4s1!Z֝h2 et_\63Kp|Lz? ξ󗹑 e E裧 +<2hAK@~ڵGY,%rd0_0SULJY(Skr8KUWK!@!85%G|8g@ ɽ>u@D #rI_m+ȟaeоRȒ~ih*3ZG 4 +h/ c$7~=%ɻi1KC4ZL-G,%Ѥ 1õnj~YĹzR*cM4}yoyU7顝Ue@2$єs0h +l P{f e;2%mA3& YWa< ,I6Jov"75}9]#"u4\[t.d;ڏY:miԸD~T(i)B>w7%]g'Bh2a/U͇2gӯ +6]MniU~y4oy֌c)DҸyU'Y҉fv92bh[(wfYNVrEHh7Ád +out/E{ &VubJQ +%fmCAaf>M>`ْYzwVYkzeX2ڙk,՞Pi@`k@ӳ4[HoyƇF|(lY|2 +@۬RAs C6,3k70#?e]uM[,;; h̫7~ke`H.S߸cȺ VlD,áɼj6 6/ _QH0V{wd"hhn$0JsUAB! "sKWp^ +vϣ%Pm&4=k0}_5pdǻ%a;9cٓuJ!{ n% bW䓵 6{ 8hWGv`X~ɼe\j7KvO~ `0Yg'o7XQ.ڈ:+Ő4nF.3BzZvd:YN` 3D3[\_6 K 鴡F!m-REأ塦W ˭y*ڟ%فhotuXD5Q:ʧcaN:O9MY;]7*dd):FV.hӀl ~,-?Z9`a_mh |RW+M8-Fccws FC4DzwoFU!QM?+1h6HS!Ygw0h4}68=8y}6_Ga3@ܲWڰ*B2ehKY!56(tsܱ%wPx4*jg+q^bMBAm k +4IIh` {Vл,.%!8L[dY֛;7ɗ=`4%Ǐs1VU -}^:.(؟6eO}>s芁0zeO?Ã[}WEѡh;%<7ATZ_'My 퉞y8eᕩܻ%|!3jݧLR{Cq@hx";-7` +뒆x FnYmef5fVA +|SЌ/y", ͣmd޻t_&OXHYY& o +ъp!LI&؜mEM2Ʉ8-Sw7DC:Stq %I=4:nf* +J.%7eht]\L9mX&,<M'Ad&|u`a5.hF\fVUtOWŪ0ք +Ċv)S#[*zFvOF׎~vx{B,hr<163UNM%DZ0N@4>j;MBF96Y*,>BIIZF ^!t'_JQׄ; 17 .t_A_ 3 CL>䔩=$/۵_ t#p=Vm+7#^qE}գ?2;_z|=0`CpW2gˣO˅[=`LbwM oe= l:ȗkׯ82j@_kOnkŨϗ$ǩXhy!+H3/,w+[ݺ0 Zϟ<<x}wRQ#@PHA^}\eB3L B}0md6 :# ة1_w"\^NWPX\|gmY`#u&ҦXv)>,gӃ`;?ngz,n`յ4C ~TAy9J+gt@àg߇Იᵩ5SuFl.4O/6s ˚y_Ȁ^JNVrRY2ChFB_q`F0]OU.X}zg (3+r"_#fI@Ƶz;C&⁂ΡYsޠݲ.=`}vfNٱKgV +-SO#P{RFm׬ mj SZmWt+˪U` 4jc + EAFdeH @1#\g:\8 4՛g/X- Xtj! |ëڍ1|\U:M,yaOO3wJ7\tnszak,TP0N; 𰴨4iдaCp$vͅKfYRk{$WӐq睻vC>`AtGWՓo +& S75u2]Ne &O_'&0D:=Ȁ ݑ'k,GɥpDnf,á3` m}g/N(ݝhH\~vtj{&7 ~%J$jsu뗟]f4_~];<P~~xp+Fat"w|ieTza%PH|o$ּ5o%5 Sx{%azmg/}Oac]!Ar}r1 |z K4竷^}>G&{3+3VR&d'm*J-0쓤IYU7@((DM0ofp=oda./x$;FtoPr4yEXH;7.RPWp!A#sr==%d[S#)v8;A#XCvK}oݛi1 hdz͕C3krg3jJ=˫:V!9304A3W? %@ 'gwUdP̧/3&rCG{4Y*/+2< `ZNQcbm2]L$QVE6[2 5sQnEɇ?o*6mf_@9 & +/rt¾a(> p-fB!tI1mwennT;S¾.Ks Iur9`NAj3zS-,1-e݋f|o\G/&RNTIؠ@|}ШϠHؼZ}l5hh]wQ;DCs@~- L`n=1)d賯C`~ےhLۏܧjB1ЂK6Dz=Džm{5/}1N4c4DioDMz!zz/պ79n1^j0$(!/II0i0Fs+`oܒ oNŲ*ߐjM0O0L`Wi*:SɗJ\0Its,Lfꞇ$Hсi䩁ɡWmO6K &h7H(9sl֜CA|BAءRn40C3jlʸ'0cx/ld)dōit+NwyɃ$v;ߝA?%ђ :ynY*y4:%z8B ض7==\0-զw[HH?R{߻ ڃ6@񃭯3HX—?K&^хXb?A&x#бDpGc(B lI īnFcFD庪 $ m2'ȁ~שg_=׀KIsXAo}pfG(rsش@5V05WcKxardLݾk0 :RytT~YK1K)B2eɅ|hY0D0 |GX[t(<Q;3ploLt3 C +}གྷ;j͈z;}wr:f?qq,TEQE/Y}  /;uCf=GTiemB|WRh̽.a1м_ B|Ti(SuEƐBn2>ԙ;u IC?!ݹuaZ3-n@ XVPQYxkhUveKKaL[ՇM.¶itMB!uf50FY嘥I;8 `zvQVГ@GZUkS'VbK:)B^Ag{}20cBV-[.H~SPo'ӕ;W݁_h +4jaǑ鍸ވWJlνׄ 9D1 Pn=ET䵡|6 X"Fω|><A.ݸTXwrbC22g(7;,.hpf=Rh?-Kn=W7>O]$g4nBd0\0H@D1#/;, mea4fP8O+5hFpsh4(RP~0dAͻa~aXڸ7MЍ"cyH|B: KZ +M^ZV ,%@7ݽ}TGƢ//uFf^u,ekDl 5Ng;f<[tZv99HF:wvIza;Xоi<(je֙Zw& tЍFm2^3zD=71hL}mv 1JT' +؎_.olC.\29phkUT) ]aèZGVb^Gdn +B @CS:h ?rޱ hȏRjPI9 +FPf6`2ӫ4(K?#> i_6jAKg4{40 n hh*;O;n s>k鰧9c8 ZIdgk(ɯ[hKZWu|mf'a\@`Q)zmkbWHH?sznn=̷!5iwN͒=+JqQ:o=8.Tj2ݖsP K41h/h|DFi]d?lQMg[U|Z/iZ@ÔO]%A(UkS1VbhSxC[iiaqEՌ^\bKdp_C.]!)ݵYip`pU@c;›)N TUn"k&'sut! ߹j| +FQQ|F];:6c  ى#/;$L%N<005ŌϾ"?:$^|h6wƮ=Ft:%,| @lsB`>⸲ZxwK~/}u>~ŧ_bt&.1~ c!wq+#&жoMf!ڻ#WN@R߹9-hP&|i1 :AÏ6Z*3ffCQ4KtUTN9Cn ny Dze;Ѥ9|Pl0_V",td˗!Ќw>2kw%ZzT+VVj.1z!QHe@c P|EcL]Mux † uAR9!ɴȭgnҦ5K1i# +tMLإ(> U)8>@}Q<@C=˫-Lpaª^$V2t5_XA+jvi[Pj8F FJgP><tk5u7@!uTr5g,\HɎa8 /, #T*<`hi E''/Ը3ב7zOJ*ELlGfzTz\Ƈt\zD I Z;/mǿ|`9sƐ dĉ6odWoCt7C/qך/}1~[10;v5<->wo"qX訴;fn콸o[r^563uL`_wmdm_ RPj+Jrlǡ:$iitshX70$7-9$+4V-7)Hs'O7U(` +`dƨ D|x(ْ7kRG+ q-xjFd}t+ 4v%paK @gm9f[G@ϐLCZ2_qN4u+ +͞U`JFmKfW2ܳW,l^rM&d٢!Cf=OfڊÔ bS!\Jj߷u!Ĕp1327D *fG]Pac?WnzCc/z,(U v&TX@;/C,t umw/Jn3.a^cU S᳛B6ŏq)T*/.m4p5=tWYJ qZB|WJ|g ̉&p~YG櫡b|ed7*ВfWk@\S̯@Ȟދ2IxHj&g͕/x'0ƱQd&jDڮ6;oqW(?ȤD[g7hAƾ}}rH)T>Kb"͟ػfj pWҀXL#Q v@G2Fo٠uy/#V%Ie6==ߊzMoҕϽ^l.8Y~Qlx,J3 +9U+QO\n%m9;(g>R#kl&_BixleKk(<&L4KSX46]|9! 'Ԓ-&~6 ʹ UQ,xVL[\mV~gK 1\~­sn&P[3w r9漜L gVP&l[65#< жqd֕_f'(g%@fa]Y^H֑KzૠD,Ъe6f`yz"KWQuG)(mZ^X6򅍾KB*bDИM\78GӇcQF!4ws#3u&VG +ut6AWOՃ[+Χ(AHe}v%1>pl/?"rMnp@Jr3ܧϪt٘= 'kۙeID HoR=B x/ z x>mܺshOBg<>k{{_GD7nwڻ#O&M78y}9;6@Gߘ(^ +t0&ɭ&aCuylTx{97?qѧO'JaIvg\m_\DϑVˍMEf85+f!kRЯ؜s'QR8bT5?ԖϥY@65*ҮfEt=elKc*9&@&|//dLdBm3\0`5okɌ0\2qWNd- z^z%~zUWHޞVfQxmٟ%6(  }򖳑1Y`iFID|;Ʈ/WA\bued3M='TС@)zEIvڴl cyMޤUMt= Wqf9=RŹ^COP?hq ^-h+BHӼܛ3A~9|-V1ĬN1sW|UƄMahD{A6zm͗掌:~EdCU7(K]͓rY+4 +mۘX޴L[Reˊmc\ [W4m.pe2$9Բ.# +e; ++eUtag]asמk%Юl%&Hx '<$|f݅7}5?wB4FƕݟǷ'4,v ~F +vGO5wJ^_j8<+u{9sbt~x:lFimGG F|$/O.Kڱ @ zBBOEQȠ%y w˾CW$^,%O9P+$%  jOWh6hQfI2>wl8f% +l󕻟dg5vi Ԍ93GN6_Mցr_ie[^f%o0e[<5i. RRQ#ٰm#rfĸ@k)fuǎ  +saK5hP*PߙHskt*k+qc2 ^MF_|=d&#]w{t^guGz7uSdV]U*-]ME/q(JB]{ oH~Q0k;+Q͚Q2 iosp^[\k|nNvE_ȑ%x[6)9PHwhys49d4|"+f7qr7Xkq$ĥ„GU_kK%WXB'C +lĒ?X +c@O_:[[}lNy`8_߷nX[M-jzCn<L*Bpܛsp0 RFM.?!@zy4W͗F;p;j--uz$#ĕM܄`  |̋%zCt!|A5c/eqT:7x5JonC5FڐqƠolгBx"_q*8VB~"}OZ 5&'g +&0Ej5ey?q:K5mKTbI"nF@LX}lM͔;ˌA{4NYV 숼0ڊs@gm9dt_6:h(!]mBC=[2W}>5r-@䨡6{u )H !|H kmzE-6ؖX҄ȷkպym;壉L=)F3YfҚH!я6094pbҿo6) vȖ +=zr4$().&΋@5ߓ+ߐB-;oYj!aKG׫{o5O\#%!7zKolCEs +!@BGB·M3阗efq&1R7JȬB-瓿Ṃ| Y^!+X4K5'F c +ZgpkBg1RiPg4oǨe%Oj%2R)KZeIgZ;0b`LU9&h%߶l~[XenT0a \Fx46`k@kghEacuAI)*ULdޔ͕ckf}(Inim% "N6qIttv`16o8|nݿo `M>5Qbۥ9OmȲMZʬ|Jg@KwF-7Zhp%$>J4^7R{7Ⱦ)!pѳ rc$ާ|UqHŸ?}vA\]غDw 뗓<(nur̋GF(=mY苨=^9㒿pm#ؙhԑWP&WK7-s#Go :H]lCy D[d&OFNï}ڴAMGdXuBLn91E46 +K$Fh0YTմLLٶ?،;W۶*&Yiɴ[ʃbS]JpT>\+E|.!dt~zy3o¤E"oi7\{)gc8,+VXK2ԭ djdha(1gw_sY@,vP4jTm1NZ\E(TőBZo2)iȊZ'S"Lt`m扳>>[QUoV^YCrhmq| (ǣ@#n@Y@c$D3i@K, ڤ?|`azE60md[Ҷ7&SF<]2n|q]>%'!5, %7\G "h9+;'l$|6 X䋡BǞ΋/l{񂤄qs: Gs$v2@F"~(۟Pљr16DDϸqphFpfk4^f½׭m6vhX M^GpHY!^jpGg K@ϋzF*V +TB[~ɽ9D-괴"+'3KcrдlSafdq݃e]$ZmQ4I6,9Ecln5kuRC,,;k 5gCY@#2kj%I[a3?P\(Łˬz%Ƃ˪7WnrM2 ,hF|ڒ7O8,xAXs$aLnJӠ)LiBO(h%cXl!~VT=էYja\ʪF2V9 ~F_h[2>T.LyY]aPZPr6 i }$, (2^L ܛ?nԙ#Kb+ +!H 1[!T%oz5k I(.ڟc(R|71Qn< x[FT}fv竷Жxߥ +rC's7쾋cЂMm7μ:GsGO ~&tcY @D!U RΡ=f= ~g\}Clsra{4^f5?y?+rcwliO %tC?n8-TV,6}kBmJ\w~!ѷw=4R -߹"} Ҧ1ߛ2hhUSU gҍ_,ïkg3pgKs⃛$jYI̒aоYbM.YX*#ha_KِM/ yޫo;>)1A2m+ǔ.t0n3l]PkGş r=Q$0hr#!b/'{&h?۶2[+2^~|{롑9&r0k=Ѵ&E+,)rڟ-& UiD&ZV*l<݊Y6u(Yj2ҟaM2)TCCTYF}[i^c(ѴՍalh͎T AkGOo0z3ZBr-l1?IKuFcHtD5!i)Tl4gkr uJ-gkRː# <}&M7?롣`z6c>_ZfhЖV'68ACOPhRas6 h]Sfgސ2ysuekZyǣ#HHo"&96T ,nnu.4^HiS/e{ve#!586g<#'K+5n|F#9i@ vsоIQ&q/aske /}NtwG$X7 Ng?&8m^~vߎXVTIg0z>~(~V97@&dVCgz27` צ#kHM#'߬xf곯_d[U7 7?˝耇@7ɉ'r^]X;/y H5 +K4s%]go}kPu0q1?{; &#Ny6uV|))kJK?P398_;2rC )!9vhΏC'/h\"__][vlIHhTq<(@'= LАjC@ЫO`͟82ۄ!KBpacn +6=$z(}_<n`mfK]h?N>BгVE+`P(?(\\H!m<]ypn5.}[1[{~,צ: fAo6 + jBgHőT%u{hwR݂:$ +V7+&%i0dϪ7n @?}8_`o _Ml`j k|RJ\FuK#Qא+_}@f4F&O.`'WB(}ܴ,ńb/ېek5r#y;W_j9n Lzo.iH}KZwyrx L{V/'ra^'A`54I, 5JAm~ٙ=l 6T1#>amXAa|6obw/4Ntzko̙Uy([ZR8T]Z' @58uCD6 MÝŌyE2]%5)JBt͒t᩠YF̐RYfZqxtF3oF!V,;W|2xfTde&:Y&v cװ.]k| *q% +0 ٰ,3԰fJCdKfV-kF~eM5Mwƫ +78yt[Kϙ@怦5vx7Lu٦)$xb|[D YC/t+I_==|MB%l6iM+pwA;LvuI7{H0 ]ӂLua.>h4EMoJh*_vAh!W>N;@e{.:EvFg4_%]-wwF#@w:ޓ|y4W*r(/igf~_;+J,(tW;:_49T] +|c8@I`h_,+~Zl.)6A 䎈-3 +%yzBߒ‚wZg7PPriWps}~*Yzifɱ-o+6 ?s~UM-,Ko=+qMBѺ e<Xea,.$pGmRRI=rLn L&O/+Um0.-PTZPԡJ$⋽:>r:R nZXeyS]W8$`ԿT-@@#kLլ6mi8I} +YP\_й-YIJ>UWgw_f:q^f7*N.w5*H>@B 5/gӠ +}+H4pL}3=A親 9Y$@׫8!$o ӷTUn؊ zE{0לif Um$%K2=Nl/%{YS[^DdKPIX¶̚j7@Ct_s Lht <:]^LvXF5ʦRp˄ +:9π[;2"AGp_PxbZҏsEuq1zU|Բ~ -"A0 +t^u %ꤹk/=ƲbXnW? +endstream endobj 506 0 obj <> +stream +xy$}ױϜQS}Nw!Dp-wfBb2#@H@00 e +7ٗ_/;/yz:43]]]3ۿg={{moxt%I7}ÏJNfOfV++wt<#_(ONOsr''ţQ8]t+nVWxghTP0~~NϑGޛU^:#󑟟eݘo,Nhɉ?Yo\U絃8=0|WDË1/,V:Y̝>w +T|(؈p~ U|ބ%DJ`1kgrr>UA\0.wb^SS1RXGg \_|9_JNDlj$K`96]uzr⼩xkmv2zrNW*\U.SeEF2eiM8~%]~ىRIpb: 7.y`ZLw뭞k^"{yrr!^{ "Kׄ%a W_//%_#%mҌ7j^G֢ca 7M`}=SLx;sgzPuoaF'o.KW_U J> +ǠN` 㕓=-$H-n8L7-hĮM-Ur]Vѵ49 ]_W}׼m~צlɑ[Ojv"ot5g{E\: UdCQne=? w}~oߔ#&h%a-~.}~b(:]%_)GnGoge|L}$h?7M KO8ͱuqSOsy;Jw\X]>[^[ZݯC|:a~RoIm3&8T׌Ci@i܏Lwe}gw6Hk~YZ^oZ.4 pw,a?&%f zXZ.2vPd;wΩ|~]ŊZm<τTou˛̫`Ku~~gk +n6+XykDy>On՝`)Wo? O.Fl[UqUz@5u.}[-1ѻZlgYt#[jg2n^yBvRI=9 w ff8o^|GĩyM `huAyUm:뇖kFs}3Vǔ3np}yߜlJ4Ϣ]>GjEcvcʵqX,b&'uVK0! 8ٌěq6bmo^g-(EDu+~['tZ-oAM.p?,RNi?Ǧq%uTq+1V6uV寪[PέqUصn,7w-?v[w"386~ccm!_u3eGXR&2[gxduL_."׺}\߷]} Kf8+>kWҪ&aͼ1 g Nbը⪃Oz22..^J1|W) ^C}4ٌՍ>IA%ߠOlձK~P1^^2p+mC.?^oCús%׭No֎wp>}SmoR ܶYB>hmO[{َ~n8gicO|qCx"H%<(Ҋ85B,ϛ wmJ_|q^3X~m_|%`WEGo\~-<}mbnb3~瑔+%O4:URLt'mWm1G䯶5tl|s!Ǘ^_KRxm>t4.lǟ= ӪO .wW_^tP|e<;5:.op}Q߷_s%V3Rx\:ny0>sg.o߾Eس,ڊ_|`V7_ɓX o~O~N)=YZ,qӓVsv8rݕ#)VLWϢjM&g(!~I8G,7M+_FU]|Mq.3wϴfܾs;5aX**zO*īr7GbqSCZ| )_eKwN_e {{_/ A 给ng2m''y-=9#_E^jjO n g}ܯ&K_?ԓz~X{$ü* 5n߾8^p6ݵ޽`ut]^o#Wf!~o*;YJ=og)sScylN%:ހg5jW?++z/uQ⪧UCp|WF7|a"~wpuNhơ:!Q̰!\m[g{Df]srTIr.ui?VeX~Б:NdڥɜfzG+Wo_(##"0e_xk?~ma;.D7 ?~U+Ҭ< ij-S-1*_em_?_+-b5 Bzur%tkȞ}kbz!hCU\8,K`قc;~҉!3ʋkx,p|.+7gFאU],֒ \na>j;LU(puʕM]$` @3O`5m!v+f9C.0N%p8HE?} pspޫ!R2,>ʰv}2%pf"8{b \Tu^/E\}0;FڎCNJ`N$f|b< _zPַ&ajYabWȌ?1Dь#WCBtipMg8QN +I^y1Z1E콎-Vw9 XW7fqQĺvg' *^I|{2a=L3|ptT<ؔi l:L{ {v,"/3hN.4ˊFܜ>;#fcQB 9Cw2lۣ膟h"OXֻFOg0۟ m!:ثa 46gWfW՛:{c~՞h%a |MuAfSӓd-㭣:]* %z9srFKG%a WTiƱ$Եb18} +k;c|UaRZmdi}@+g.)?ߛ/(jJ%9ʫODYkXj;*yJ X-HsnxW^u78; zOZ-_WWR62zPJ#g^Bۼ*Oy`˕Xk,朳"Y ~{Dl!by.8cLiR6 7fvM ~Xlv{1~ە׽Zk-Tw/X}h7 8^hc;%q>*W ,rƋ7VAe;H*re = UT{_P;G$Ԍ#vWZfbWi^ 3$] vnj_Osr: |_hcH[98͖ڥvttqM[(IY!Rf3frOr8~=\#nsVδR8xo8hfJ|dWH ݌AF-NB !7(jø:Mxg=̒ExK7_apLw"FM8LI"t d&3ա®2,x0F`.+eq西FkH8rķ°5<4Gc<݌CTn ^g_lʫVK1 ewnseKn1.iRG"qdA' *61+OLĭ$ʻbƫ#c=/l'|})%޴7W,DRL^ClTZ~VC7*z[ydtg>tٿ5ŵo:_`w ^vi rYNpylH⫈eD>ؤG8꣪ eX`=2 Nd"7b9\ܾ4Е } +fRqR3l&~y8~(BE* uD1 +v"Eẫ8({?8 b6xbN|vt3jwf7tbu a@T%pp^|&eOr'݅ʹ9L RsJ]ExnxHbXZTÛzh%L3NfZa +p\NJW+ +XQ{)L3csg*|΍ z5{6#IDqСM?FI6zkm8iεGlNU Eb.QgnRqT9epsro4P:frי GysL1ex۵q̩*2~_n_ v+ ,[>̆.16$5@`Ǭ8]eڶ8WaYSXBSM>R <YHkb6vWIx+ONNOs1tlˬ/`us8fVqCХحr'B8ёj;2ܯKq]{eaU?J;>XFh&mUy/Ft"uE .m 5gfrY \@W8GQ-֢$"la\e,M/TP]^(]lv[ u lIW?놟tmXڀ䪇/+X<xIXԔU4JW^8YDtۉ^~nxH}N$e3~ 'O60+uWc{>6afftgY&Wl>9n!fK%p'<GO6kۊgW 8iYUheyuvjU3zdߌo2O +UgŞ&EjWtl}#-eӌ_xPz?t~ⰄBJyMGi?N+G>W?q"`,_v\gCaT&V+EiwTDDrh\?W^6.%k6YSYϏ٤V;4J3DWuQ-b|_?^bNTݏrNۉ#`HpXN(+;Z:ӿW7>.Տ~χ_^[*{]?-]cj3jwi>X>Z`yM!2oG{+諯~gӌT;P * \3罒,D,Wӏt-(.K`Ubӱ*qEfwUm''O݌U77fI`__z$Z_YI8У+o_D/V~hŝ`=c5%I gHtt\W5lX+N/tp²I!,::9դpx4{it[9WM6ok^ lKeXCWKL=^Qxrrr;9) + +ESק. ՇX+%XslJZVKfs"LӓfK_=Qf?V˺^l=ݛ$0{i1 'KZ#-?Tv78;+BSr-()'?)2OFDe l; lX%>o!~sH Hny'T8j7>Jy.JA űXyf"vkr9ξixt/iVAupC K0utYC\p||IOGS;d4 {ocǜYeՈCS*_z4Wi; yyl;s}/V_D;Snm +2fb\^5iƱVnI0bT:9)M_ \X$NQ ^% $߲nQrCn1ueΝ 6'pHt}UT ,w[_u7,~uٚ; .2B짜ؘfL. 짳 6mfs~?1]W|7GZ9AA <7]k WݜY%_ykH}mS wzi6paH~I O߮[y~؜p*߂ՇX ؠ'K8(V}D:]7PM뫣8oSU_/\*g-[OrsbQWkⶼ`cv"?{]mU6GѤI9Z-a4nQkȽgA f*wfXPeZH,^`9GY Gbuv_Ϛ:5@wc(߮3+DJԿs&ǜ+EU9)X̛ƒ#Yaj1/(#%F67DWɸh¡% XG*>ʓ6̦g1.3_9Ռc\?JA u;'~dh;6m/>Np'Rt \&Sr1GE'm^fXƯz$t6GVr`n?_9F ,nT4[&\]q^_ep^ڌWJ$T0tN #}Z|f/5W}oq,7~拺Q\Qt4kvos+r߯1~orc>G׶\1h +2 8b5F+~W_Ƕ d࣓\K]I0y\X 8笛q۳o|RIYE} @z,q_WAz<0, +]+iW?=p1w"U^oֽ2~-/D'N"8yYG (?8 F3+(Q sJ:Q(. _pA˯U"Q_x^ُ2B֋uN:Pbp _׋nơщ?&9ks՗ =yſ^9mt}N)$u}\,,pqb3lGBw7Ռì-%pAY7+}7X{8f_ŵƱ˲Qo;NN6%puXF[T?:Ѩ'RD즃2N{fro00$nt$)ӸțSpބ8~8z#SFF^I?.d'(fU/{]X+߳dKHXwo%;ʃ ^74Vr|2`ewp}Oo+8s^GD\rϟ_?#?6^YzA<Up9_BDz^ &+ + f_hé Lf? +|U VDVQ ԨK@[E3dp8J_qlRUV> +˰q75[=*`Q.؏Wf[ 怙\~;zj <ѿ u 85 \h"?N]7KZ}쟵Il6mQk.o7=~5y1zԿ"w"})ϰwiƶAZќ$t+V*Կ"a\yy#H?g:jOc+NJ/+dSaZMn=;i0 TҺGmVۂ젅f}bլ[\]0ߌc^ьC&c pyr~ؼ]5iƱ ~qX?k.c`wDrsyX_gM5X4vUԱr7o=U潻0\+N KXW"K q%p]4?J`eX5чC?-G<,B3q` qH-$o!wi1J~T/;fq̭x(F ?k˧1 4݉$G\aߌCl_ֿL4㈮%sxC_|2v%p_# +v"Z5:@~`*,+qr،x,%|J5gj!.>#]O?]S^k!Wj(O %s9gR7񫩝_wSpLıw"V_4Ya |sOW J3>%pDhb'ψf]ql3ZW{AG(x%DVTgAT\_tj3(uU'B~/f?)9 0`[fsܐq6˜__(?s70 BtO嬞` 󼭙Axlw,u}AЌZ7~Fݿ"GX ~"n?yJ#[ɠ`j K`u8X{Uq7t\Va |_yT\&͢V \_X˰d+%fVT \S`5KHAnҌCy\35h_z+/i zq<__x4`}HjyRou<2ʋԾ$/_TyG%Ok/?P%;]c}pkKzf_e?JGYm py8JяX`J`%0/ )SkA |MyEX$Ƣ4 11hf>f$ϢI)i/oRqqDN3F3R@3@3R`މD @h@h@ +h@h@ +b4CpY73p6q'`w"U`'% E ~"v KC ,_zY k^KA)^?xX`f`qm 6cҌ#`%pN J#qQ G_-s~ڏy> ys;'آ\}4`'ܘ]p \/{2J_l J_H~ vl.?}$O|/|.k۾~&.xs~*.o% }M +endstream endobj 534 0 obj [/Indexed /DeviceRGB 255 (\)\)\)&&&AAAL;8,iֳϪÃvLJߺԗкYn˂ܬݰ-Gc$<<L:VrN***290{l///cXEEE:::```eLIII2777{{{TTTvvv>>>sssqqq֓[[[ⰰyyy111́ddd@@@KKKfffmmmiiiQQQ333^^^PPPCCCҷӮӥ׼ǐez_obӸ}NNN{p@FPK3SlfNgyTJ_DYCŜ^{'86,\)\\U*t\(JEBSQNk0\)nd]Ŷș˝YgUЯ ̨;Wr@ےpƹ+Dwp~"6:HdwUc 5p~t,\rv\(FWWW)] endobj 505 0 obj <>/Filter /FlateDecode /Height 469 /Subtype /Image /Width 1920 /Length 54898 >> +stream +x xTս= `& &0K +R+%?/TH+O*V=zVl_[XSXTP(ȥT&L $dBf25f%s{zkY{yw~uW^-\s͢Ez{sss{{6A Gaxo@fԼhėsz[_)=9!n\Uq#Jg]luݣsRb;۔lϬG㳉Oڛ :7?~s)h'X8^vBrrW@2j_e(%w^@K ¦JxZ@{ٻsrK^XAA S[=s|6xY,(V@g͟.?ePd@gd8hYtO~ ޥ}9JzgǞۑcW݁:p_o9eTz~SDJg1^л7?͟v;7"XH2zvݑ.nCӑ_VaC 9V9|0mĬ+yAsh[輣]@;6]&6{_3 Go Z-pVI;mÅs)~ӣoLE 4(yQ5ŝѮCYm!j,u"f]Gު"hG'Xܓ㗥н` tp+2V}A|M^Yu՟+14b@;;"5_V_ +m(9Vz릵kfuY]g-N['{m;&Phj\b?P!XH< .gd5ol:eD u&4V[,t6PN[VF7N'7>l,eo_vy%j@ +4r@:BYcĵ6o,AF}q 9J0SID2Vc;zRЁA0wVKEQDznQ=u  +4rЀnw%ΠT +H6׺/ˤ8̦CoVRT:@ȝ5 MxL=*b`1h<:Tm!rNx:Z}+YBO?Mw_etx<09NzhYQr:1,W5ŝS6-@%jˎN ~''Y'hԠ;;~[|t≳I'F:1q@@,G v{"]p8\.%76mCu}89$I@\'*@&] ]qMMGOhyV%vsϸ5o\ +4r@,b<`g Ixuw`'oM s/D/ϋB`9h +Jo?>9gŮғ{֧ˋ;P!Xg*gkGW8']Z|-q1;*7ܻ>P!XYp\<Ӟ ɨoY4qt 07=r鳭G`*X`1h@H w4.mO~R ߦ8uЊ_yKB`9hv[ J宀k96`%~в؃ u8]9+@gu(yf/쿱DN T#ƀE3ۏU8eQv;m>CļZ[9P!XP%tT +*"6}wI~2Ǟz'ײs(qC;h1pP d?}It F!{n(2s;sG\E.Ȕ}'w]C^~ 7V#@x"]p8\.%@Xkg& {m=6^}ל8QQrl@843+1Dbg풽w@24%@xh՟>Út/sY\Y+vֵ88r;s8r@9F2io +4rJ^W6zt%@:=PWރծнȱYډ4ljlv@ +mm6NP{%|B 4I%ςrc&֜C(OU4GvmO]ÍȆ4 +^@-Xڬ[=t/05ζ:P @@,GK36 8QLeIm>I :"k[-- jv,˙LA_kK=v%z+d@+@#ɒgA ^@3ŸC(t94؝9ir ҁNd'xl0N9>~9HZ-oo}t9D 156'ui@,G E3B!(OD}_їBk +eH}ع/VN@('j{l:.4V#Ff ¶>I0>V}2Y-$:;jR`u<0NZ}оI?@{`4V#FAJ/=9,m2V;o\F-WS c (`t Fdh`9h~KE3}B!Ӥ~[=Y<:"Qh@GOGɹsB7.~% Yޜ`-h-J.XJȶsHh@$Yk$4bH7<œCb kl@,GA3! Km[op7V#F:p<;R+;kUm}qw[h%Z!X@tCv{o|h`9hXߒgt:c*w $v>0y~d@+@#(y!4\'rzRz-^<3 +4rH uxԯPrQ @+s 9;*w]\rɯD 4LE3$Yb)l/~@+@$^W6zt%baqhmAi?9l|ט +4rЈ%R,e^b)>_=gdamFym_t-ʘ +4rЈ] R X6+U6%'8zlJON^=9]7Osz+PrLoU5V (w߱c8//'?wܹs}]msss<̑#GVVV@~[,\.J笕}bX +W]eO=9\Nl;~~5u2B `Xbł ԧLX(;+={L %D+!T{1|9Rkc|}9(X>)N"K)=C!0@|'W^y#G?p8o|/>裟gRF %S N<5E1{'S@KtNс&6I%ҁv>KqE@~<ȓO>46|nݺdq8?%v)!~KAN¡m6豝";vZ +^:[o,;8ZsI5FP7m@z=<:ol}k,+4dLA=Q S,ۡ~sG$6j7]]]{K/2CO~L>niiK??s?ʚ~o1tꫯ~Ga b^vS k@GͲZ√8tw($؅#2o(2ݱc~_7z93#-zÆ ַB?TVV&%K/^,++{_F!Y'gY#.IC:v|3ur;dg}WUkkkϟ_QQ|G7d}=ZJ79rW_}5<8cƌ+W)3Z6(y5b‘~oH?x?6Pd/9r?<}W^y:ݿo|Oxͫg +~wygkfLD3.ߐ <Ф%h^8q~3yt]]W\:O\z饉)nw ә]@z2 G7,@Ti˕Б:5/]t ,__usf%hQ 0 Gx_j/,ŋ@36|-7袋ٟƂ VX2dȶmے\9@[v{"]t:es*w. P-ۿrWnb 4glnݺ;3t/Ke}Qݤxw\9@%`[6xCr̴i~5Ƌ6<{Ņ@36~饗ο;V^:tIrEJbb({-uVXsdV8vIJGxÙ+.{7t~Ϟ=ld/w]v%~z"NK1H nh:"?Ƞ|3rvǧQ\d?c{엿nҨ.{GәŇR@H j@~w^?>cƌDqw&,YZNztA7U<@>k@~Bee~u]k׮ɇz(ɕn'(C6zN?z\I8t5N @ϝ;w˖-ICb{7&r:4%@3<_|Ed29r%\inbGs(JY@3<~xdqq͛[Pz7n[r)ɬݖ-[-Z4yd c,y <x_:iӦSO=55KM1bÆ ٯӧAYY5\3|I^vS d?螞??Y~/}K)|͛6mM^}Տ؂]]]\p'jGP]];P1@R@3#^bł tNs˖-yyy ,jժ{G7i7olj膆^x!TBgM-K$H<hόȑ#SL|sI`|+nrK.Mphhh;wxN: mP hd?3h;\nnrĈb2???^y?^zi[GRhAZ +4%DG @o۶_zW|0uZZZfȑ#_}dvKJ31X@~&J0kޱcG>(^eۺukK?Og͚;0)ΠߒgrQ D @ܹsa_%>v7mҸq֬YzŋB/Zh+#hJH4g^-w}?|ؗ}ݑ~/UV}o/aKhǑt%  @v L ;vW裆l( [lNX +n^,t:c7 @~fJ-oݯ/~/@N&4:MhJ04엂Z A~a{:_ ܒΝz2aЖnr(y ^_jh%zſo3bĈӧO7v?fT +@p*@~) իTԪ8㌯7p<0S[ +Z\/~wwC@)|>oo744رf~G>LRYYiN;7NYcɳ qE Hի/^Z +Ʉ)^^L G HJRq@S UO Xxqh;K)y򧿂(T@P]]ed, (y$a#ha"L8yEE*6$=vx:th(y ghΝz2aRdhoÇ|>tgLY E*;B3h---ǎgYO fT +=kF+GohOZ,Y_hb)1^5Ç=z^uEMWHȆWNS7O 0իueeeK @dɳ<:i|QǐO:g­ O FRh]F +4 ѕ< ު"gqbى݅`Rh5h#xwc1@, EvhhoM`gJY\b #pi~ G13uTU2=7t#XnݿT,YWX9bR 7!@`m緛_׾' +dc*rH 4Irݞ uV.3Xrei~xphɤ%b`,A 4 [fz+< tAK9$X}^}u}ASwnO\1T_P_8`qt,{ChY#ˇ=iCgGcg&9X3~V谯=x+bgqw9=$`1h@&Jqqcg{CgnmijEX4|xS4b oɳ kM|eBMswwaJ 4 #Cem}Zښwwi)/Y2r F,XF 4 *y"2~n4Un,Yrn%ϑ8bW6X.%U~.>9 # tt:ţy{H t5<5ʼM:[{eU>%X&ҡYIGcgM[j;;ԙycƋS6ӺiM 4by<"Cƾ[A3~Vh#Y\ X`3_{ x ˠSӈWO]s&J 4 ^t邔0hRm? ,(fћw"g) +-8#|tXNMs,w?}kMCoC&WBds&ZP#@:0 /qi~&Fi]۷lv#$ƨg] CRC{H,ozy4zaƯ{VFЛlڿ^C#D"3( WMG"嚪qZ'3+M+9%E&K7/Q3 +s!4bPdu[ƊaO^T[pXх#t +4rkm5YgCӑ[7pƦ/fj= !j̝2./hu y]|2i{4bEak3sVŢy%:jmL߸Sf߷Ut]X_oh̞c=P0*=}rB 4 dm.nٻpwrpll`ɳN}{] jCwMw!/ӵ6ϚU V@++kmch@"I-ykܥރ󺶷ێoiey8 :[{Ȃ|~0baE,m=s^F 4 4r6}kmxaf@m,˳7tW;N$y MGjvOo4HY,_֚# y:tB 4 JUC3^|H Mh3hyZk慻;ԙi%C{".߰Zb*m֥O|tB 4d= t tG1^.!' -yjr!{%az62d=䔑]z4dH}qȓU$I$bgK\_ukwT[p@4dKu'mmiyK$h؃QYٷ~ͺdpШm4/]C?L|$KZu ,[{h+U1g­$X |dCRcg}$zrՅCiĜXU1?+l;+%#IjYegr]|29&5h1fDY-5jybsmDU]wtiiĞG+nm&3@ lڿ^+GL9nv+ #,`H櫒]8J ;;b! {%֑IƦ#;ۏZDcmwyoaThF ˤ̷ /O-NFA`gm)@xٕ#&{wW+)yxt]|29.rϛRJh =CkȧT9Ccgo_i~#3r{̵-5~pL@u߯p+ #tvms!3Eo-gs&j`߇==ݥ4<7E%sGTPM[jJoɺK1mֵWGمC֗*^I 4xOk.߱LFJ2ظ=x<v!4VB%ϲ*mƍoݟ:jQ9$X,8yv2FrWQUQ SH4]PJZ-h !sg*>&WYym'%$&X aI+Cە.td6BUFTZ| Ⳉ;+ *=oMKFX,VK^@@b|*y9[c8L1K<Ҽ;#ˢ* exZ JRiuƐ}ʸYn8netUگY;lC6d?%C"i1M V S`1hYϒ6QʊǐQf<'FGړǴ#;/F2kCkzAcx<_sEK\9b:yIC 4#^xb"g IWsgH 4K~Q4vW Ň%:ݽRI;?9}1h}︧YKC ?5KG09((>gPAS'C˚tk3hmMIv6WedWhL%fg6w{jvcmswwM8S>aj'fWFqƍݞjaJ_$]X|wӺ|2X[]Qe&:@HKN %p`7oxYOjWpCeTJ>-,>AͣKYF 9MN64_Vzg;/+@,F <8l+9r:]ڰ/ƌ/yw,YgxꨪW@ܹf Id%rX%їA;u2ԟ)4앭/K59"|h! F"6 t؃T+uDžmn` R܂CFϭo?usXAph wiW-nW|ڴ-Ie宊c +n}Ӗm-Mvƌ!@0Pfwo6.ZjvRCKr2nm~!gj赻W.ǦA:oA`#4)y{H9uВ&W%jm_{9M6.OqO.-֪ 7խjiҠSMA 1sl3oR# $$X@XpuH\.gy{HM-M7oQT 1u)1pnH=-vƹtG&Mul$RX|D+^czM/1Y!X@Ԓ[n=5<7Ϊ\^TV^˖J0U6:VQh;T8slo!N]n{ƹ(?cK7ٴWmlݏ: }#/\'Ư5vcmWV.JERSJ  jE⩣L:nﶅ3Rvyw~Ҹn:SX|Mj'!rj Z{hD?x_{^e%:oxQ fUi3 ͋<m {`hѓ7.вfxHYmTh]gc#*~/ܬmC!Rɳl6mxs(م4c%_.7{ћwyS ?ݮqwPfS:wZ1XEGœ *_S|. #wTƸ4Vm2WXUalgaI~쩏~ts +_]®oH~M-h(QK%~u[j2OP NͦCOyMC v4C^)f}qt2] 1uTk_W ^#xOҴ]`ҭYG *^Y{hW8slWʟxh3νӍ߬͠"gJ>~i|fh)Wۯ֐:k9% բoSf{who}_ ϞؠS \? OV~J#߬+Oʋ ,tfB4roɳNcg^%@Xhh^kϵ3<hϒ'>5눱jVYʋ_\5 `1h`0EcgM[jIc3Yggձ7V_xu BjﶅZ|ʅgxIݟۻnk]}.9C 4dYoƉ5DNBjP8ihɶ&c]Ԟ@@k8ϒ6|Q]8I7mʟۻƾS F@4L:/c~}J .Zb` =/]8dwk.h_ +_Z?Y=I 4}n9׾[8P@iu:6J,sKt.>5ڞ†A;kc>}mySʼnOq>F䭯7@YCWk|5r>[c4~)ڮbFھJ:[ #cxt'l~[[~+ͦ-=&4@|eTEm㝟@_ܨ3?ՐZ/U1g­~] ⷼUhY!X\k;G_?F{j>+@rH8B i-rGcԈmMV.>t%lZj ɐct@2~U^ =4_/'U|Cӑӑ?{wUydHOL&_"&YuZԖ"U)WW]V[c+z]ۀuwQRJA-4  ؒ1'&&0!#77Lfeɼ|۵ !H '6<,rffDi?YrdW"<4鳔^'R)}BDj{Ff?8SJ_ʚ}inv5sM4 4@Boe?jxHixu3?8x4>Ͷ5 ޑ]Z6gp-JpE5^@vbƼU(+R lh7֔!!pXG5jkjw+jÃm95kvd٨W烊x{vgWWA[Ӷv6+\_L} eZJ?-`Oe-7~hhgoYTwˡMMۼ⚄N_=Ԍ +3T<{̎ѥT:Dִ4-"!ϊk)ҝ?y~4YA@@8ʘ#Lfffg=!X'[;|&q|xK V)~mq}M>9VP>m+M iDO߈Q?+vBȳMse-2rvf4Z'G53:j Z=yϜ,dϋ2цOo#)@H}o?CEalvqy٥gpYi_NgLtYv]%4) kznXfx7Ak7d }e)qoh +rWC]D 6C `2 y֣ _-}sKfL^vS M{Btq]v^YvǝajMN=҂sJͫCgDuN>W,Sa}K>gd1~XYbɸy7{;iœoTlz]}:y.ƍݙ@Cj\Y130˦C0khE]Riv>vw,j }+Ōy+_>1Օ#%}f{TO agKwķ @_0=տ ! 5>{]IGEȳޙ@[)GS(mAfŕ.OK? Wg;eI>uܠ,;oR@Vjպэj;7kzŸ`?8+Ќ?/rffqp$o(j.)Wf,044Dl{|į?9mj76jk}CgjzʔOf5׉a'@Dj3,g +iÚx) +usW}Iﱭi[_11}КkE7V5H[Ys_\ !0^ym2gHEǞ4sMf5י7yAkWMFl0g=+wjkxfm➄9,7}>rhmOseϮ)eM>>^~F^)+#4 4đg2|kU6{ +Us}Cg?cOx)KY_DT鮗`4дhhX_zKslOŌy; qZw;,_P>&P0+p7+BI4m8VmsMmnf|Ł:+2ykҲ3>zfMard?+* +@H2>=>z6@?yAmJu P1jI2ۧǽƶȳǟ+bsЄ23<pŠ9ܼw+>aYv ={{@h#Bݺg0rWo+]Gs tG|إy'j7Ͻt˞4`4Xwķ, A޵0@@$=;w uS!qܻ]էzNC؋ڃtK|{ע,(oܻ߻,](oj#!ҹwb.j TȍyLTf+67Uъ0o1w==RwORj@@5>G=6ٕ+wNӤh >\hڐx&52wu(`T?1{YC>/`O#5iOW $-^?̯>CEal@msgl[&4噝I7b$TOmD]CSوhBږ2fk +)H:3!QMmgy3q# +@GF 6C 9kth;,dW)5{2ӘK<%42SSV\s| Eմ)65fZm?+q !q!9LLu DތaFM#myce H[2!hhH\CCC;;)ty_d3DC\pt6*51Ӌ;QJݓBX?q}W;w-Ͳ4 4$!jX~Gf6ê4 %%%ީˀz)Hu^~[;Օ8}#DTp|Jl5s/Ϙgj(ۺ,px]w.EȮZsf',×$$f- EeQ|9Օ٣?@-Z|tFV_ۼ E;|M'!h;ݲ 4 48ٳCGΣi$)W;.hcs[Ӷ3j],`V2d{_\ذc0i<*No}W7t;,;mD9l㨑td33 lWhkv>Lu?cٽ;jTm4tVphO㲫>a2 hV7$>[ ܆vw7ow]<7hEI#!31kliD tO),㡳0At- VvɞSz~ L#!#e䙡G\u!Qﳢ1 M -.Nhj_}`=33 K,%±_=" 5x efe--(~|hv`30w&]} sY(zb5`GSwf9lOŌyLqLIM&lOJ y>yDX +f1wNh|G9|rrɓ?OΚ5$/o<g@Ø5`MMz|UQ'gWA:gd;hy]67"w "H4{ := ?я?D-)))7o]q杘!=jyn`ͬ _{Rߴ'@ϾYz(.?hRaqTyM%m)bI'~[5s3T:wK >2&MϮseyg_p!x)g|sȬiXa84Jk͙5YηV<;Kꤜ/'}¬U;N>NWSݹ:=L셱|Jv)=u5F]a6} M 9h .\v2r'|_JAq̬C1@7m!鵕[$|L#n=܊X^NOb,RG{{ޓ&]r&coS-ބV d/ zUH\R /ש .xpM)))[lkM;_A=1#}Cg%wje/0 qZzmKFp9d 8z8:3i~Zq:#8hYLBVO1lh߲u~,;򗑴hCyUB^uUUUU/>۶mIQ37|sIzB 9kqηU}䙡~>8l^-%T\a(8-eiAEKTLLf𰲴es@NOfI״q?mG_4@Ν;/|?iٲe?я&Okkkot=2]5/Ə#..2.x}?Ϙ*S!!]ZrpTp7a˦.HYb4oHu禺r мZY>ӻF\u'{{y&hLJ/ʛ( GѼ L9A 0uuu-ZhppPꫯ~ג<λ{wzO=ѳLǫgOxwJ#1,bזCUi#>޴WC?Εupઃ$?4<)wIR& bw}O@66m'5s`11\7yS.?btp_ݣ*]!h8ۿ~3;wΙ3'CNNN~뭷O)&O4b@7%\H)`9c'@gb]c|i]{OHJ/DdK+ٛ>KZ ̠ ךqGb%@k³yլ-Qb}waΞ2R.̵7s^=d(S>D/9%G4@<WO?tG>?ڷ,qȬ-rff-g\>[tj[ӶR42h{7Bl:3xICЇk+j{  5XXy!a΂~;K(ǁ1GSr"o92T/;:p7HБg 1m48aetp?ڋW.T\[[iuJZ1:ݤd?کܢ@J5UoQj'yS(hni?9Ӹ(gMi@;ar~9z۶mfoO>}7oݺkt8k,Z:*^$z4K.>B^&pyA;=7GۇAХ^&iﭬ9A_Bpxt>V4kS,@ o(CggO_B 7Gy$c.YOf7͇z( ЉȌz{E =7;Vnu䐆߯ |Dt05"N|\ f ȣ-$LkƟomG+޼!xZ4Ebφ~R晙\ٴbz/oܸs\܇}_~eW_}5c& D |_yMFߝ'_vB<9qpYa;YGiK9餿Ԯcf3@+M@ e@iܷw1^ZPƸOI?ps }Fj0'BgP9~QDv+Zp{jZ!Nzg_vՏ+ t<7A,☀#"q5pǚ꟠mW {M@@b Uɢ޵+=@3\77:*z9gq9r]B=_5%eF@,d3vyixQss3#;h' 7k }nYOyĘ# lY ִ{7I%Mti4ORΗXϛsS]9Eek;wF +oٳJyVz7~ʢOނ h; hd+ ݻW[nyC><<|5\pA?eˌ@;SY}%]`fZQ3k2#Ϣl-=Z/f+\_dڑIK +ךzw1@ihB1y-^?,țXA{=fVN@*Rg f4; @Hn&O;կ~'yD_ =u@M0d]y.u8qULHtƼUٞ +gFZކ`[!C#n:TɌzO;]y@|sqqK&(o7J~rﭫQ3;/VLч 6.\AO~K<ի~mg} CZT}%46ϞöS C+]<@,ߘY8͕%=!R't0Ih^2hM yQoL.kV`,$)d@zo+aiAQ|Ѹoo >M~5&ey/,6,:*<}_,?R@*\SsuuM7d_Zꫯ츄^q+7կSQZ0!г'>򯦧L&fuY10ҶO"X}fЗG: )К Y{{+kNJONX'~5wkhqESEM_i/4@~w}~Fl{W4;LR__oN.etRl\SsӍI cm233]*NI4PiSWhm/ʹ:EX_QH@b) + &~g4@Bv@\Ç?x>O?3! t]fe)BkN4G):%Mt)~5 _F?b2JXX{6JSݹE evL$ gC=׼zj;g'=Օc_[VFk=yhzMi'ȶvYiҌ͘IW.XL@橧z5;e-Bohh0Xc!CFv@?&gMɽq;M=pxr,u$b'%]utbT$b]kQqZtmnڌdЊ +g޺~UG^3A W^yLNN>v7C:tv?3!FC׆?wsW)03臑Wм4WaPd⸮&ĥy0 Sn jM }K3V \Ӹ@w_AF^3A ۷WUUcǎ}{ǎKNN6~|gB=&Z]0ȳ+[0:SGuՉ# 14G) G+x1,aSwA%%[lgER/z6Њ*eZѿa +S\kU}I)hڵ롇?rHZ?5uڱ@㨑J?xCgd;pv]Q68ff mYW0]{[tkэfϊ.!TԸvp(gkkw9V mmM?hؼ;V(Eݽ{3 |ڵ/5;{p@9~Rev3|uow&&NN#Ckƥ=#5m>&f`w8M3> zR(ǝN/V^g$k[jBgКٌgEHWd@ȫ@$ƿ/~Q^^n<ȯ~+ιsر 4#%h=4կ td{* +a:G7i>na׌y+eo(w>H[7לyVFb"@+Rҷ[_PA _s5?nfjjj4;+++}YGv2 @ze*z64LJ;ڽۺZ&KYYWsF;{O( =EZ^Eek$=L\YaԥW)e P?p~8;<+=?@keČ Ŵh4@"*))1Wz'xl"yV,YJ9?.Rݹ1m/A뻼3<xvB5cުlODRr'5aUJO(gMiK35sMJy4YÊ+4;!w}#; ( wyLDGV0m7,&l+C~դe7mm߲u~Uz wq(V֜:ߐX` =ïf뮻N[h#;܄ +%+:ԡy@)#Օ.I[&dh 9oj4W+exyO]M}W;mm~i?2țRϊQt:|+%<b_rڵYYY0rwygժU:3߰aÃ>h]D0AhF-[` "7FE!5͙fdC$m1chŸtP6;g‡X(ud Z8uG|:54";sGV1@msMc[#H ׿u溺__5;1A" .\~}A  =h<;d1 w :]CNFGPqJ:ՕEdu`s:oZWCSi(q~er5NxwJ9M yCФ?!fD);ӟ ;ɻ sQڣN鮗)uP<^'> L-^.-lcˡMg<^}}W<ѶǝF3E-=gpYi2RgUMerh +u(;ܽKFms hx||뭷4;/^OwO!Y/B8g# =u)HZ|2WT:ȫJFgi!]K$gBKUٞ +fgŜEZ6w +%./РDxQvYOi]6 [l;}UMa7dMYC+X!D W^yt\uuuiiaO8m۶}LNN>p섫|F + + +֯_pBW4nh; J,rh Fd=N@%lԞpx3f_ A[SwoYTF/ҚeKu鮗1gI Zp+L!h/\pqo?zfM7T]])FWzgŝVq#eГR2Sݹg31lf2WC# tR|hMDyFi>Z˞k[ZammͯZ֙Ϡ[GDt8 w[b(2 h>|;B[4s|ZΝc Ϸb +ʄ&B'D=44D3f1l=F Q:gEmK߿5 9;sJC'[loc-fV#Tʠ@裏!t?|;---/%''o۶X((… ׯ_/wtw;rȤ_kV YI4~0n@-fsH:SnOIt@yff!jAF Zo-(2)blL{牭E4!Ν[O>n_jEE_?yd_9L{fq,vfrYr֘2hNҞ(׻D2kzNb9!г|}A DuuuUUUQ/\@[9kf/3gl{r8(paĜfؽu5*{Lv-j'U:3pffmtpp;|C?>))iɟ'믿3G ,vsҏ+w:w6vua\lI13_5NӦ{׊ZVuVrQX*'ۛA Þ!o[&JL:h>q?"gzNsx2>ml״B72F q|+VЯL(#rbXŚkIʠ4MѳwmT7oѫlrK7,~k?ZܯI/ev!chD'VM󩞦ilvIyjȿ7/kv,)u>/ѱ~;cbK +fcvpx$˦p4/(4eQB@;dY1P%3g[EamHo')S] V2gthČsS[6M͞k| +Eg]R?59?2}`ۆޜhJeu #TѼ#ii'>N~%{8o+5F# B?cfh!#UPG 8Ϡigl>~ۙ +wP̣.ֆ,Gcڇhet[vhr8PCX!Vt!X%&d&l+MMqOI$Ѵlmi95Pkrg֕855; iꪪׯ_pa@ !oX#znw\CɁaZmb<'}bg"ZcUM?i+Du/{i=6.>I[Σ3v6\!vSit8ф<O3sSl%FO4)BB@ 2\a$jii/L ) Y,5~Z>Tm[piAq9wIRZkN +҂0BV=՘f/747S/3hyR)?8neB(ttYぁS=*i?4\q*6#8h-g޼1qg@H#>N@O*d(飛ؓeOg[mbg0^6gL׆K,3O4O@|>ߊ++Q/vϞ= |՜%1o>u/m.3um_4L1tGIl0aZQTy72ZJ=qtF)ްaC:7䍥$<5mknmSk<}LC'oFTn09ߡyÖCNx5;gߌC  7 +M_@SrLJGٙ_%CF5:#ج^+'zFG1Z|M +Mx;Tu{m4,|f{+[6@uBs_>W |:;;@x{6HakΕݾ5#:M@k7K;J`Qh2h3Ǔ3ƶzeo [*,a#AH=1!m߾}Æ QhRYY~W?##rhnrY? +J@+m ed^2EiYC SݹH MIC0t]vmMK4Ww,x|}l/Y/ND h!8:\rgˍ=z9WEP,ݰ&A 67 +]ZZSOFߡ6M?[)pʝϔ/27HTqsg7Ÿ2:|h|RZY=ݚg~>vIWٶǝު cRKy44εͻ5310HL)t"|NoyxN4fÆ ://oŊ_ÍBKjmAS -_03]9)Z>QQa3w2\MP17]Q^jotmsSWZwz5t0#?B!Ҙf _wďmۄG;&reBx܅~JvKOt (J1뫤JfЧz[mW}Y#,LȳGe]6Iد'c'g33L} G/x<-%?#a?4Wɣ;>ыf@ͶoK_|] > +6Ν; sK̹ߒ::hA% A./Z&I^Z}V0#Ѝt8̨>^,Y>;SY|ңL?DŽ5|iA҂B'эm 5Eh$0e72oB&ŶhpvQ衡?>:[-ڙ\q}oz牭fж:njKٞ +bXeВo>Mg~|&yM.FwGfۆA45wk6,;oiA҂"#J$,᪓$TO`ZͣA>;|Mi/ej4hP@l62 +M UpˏN>=5'IwδysrrrNm;$9^`m=uă{ib78$-32rjDiUS##-=ʩ$e&]&%JJ*g;'i^^!#Wg33 7E3qSKaLT .)JkAٮSjiFBϚhґH02m􌮨iҚZ[F|O!g|UUUuuu8Fí@O[4 +jPԕ=3ocK -hC6ظ]<'zvq84.Fg?˺mENF1ty4{͜PΚ}T#{Ǯ48[bwF0LĖS=ޝ'Li +CS*]JO#2Z 95taU1Q<{9pH>7PKt׾>mI?y{"5Mj$)v@}[Yv%7$;C n3螞#LfffFFFJJfmsMc[C8 ^ty RLӶߠ …>SmP<2rJiKfϤ$?b ĥyw:yb+*1<~o]fgb748]]]]UU~ٰaC#P0ӟڎ^*BQh%Od0g>X-wB1cp9syt-_efКx(_\srƼUٞ#?KesJGj&EuX4TaANYvbaevnh nZb.]FCCCmmm1h"lˈhڑvCVqR̔II ##A?'Lt';s2猬C(eIƟ)}VZ'#JsȖHog//7MC[VZb#~1g4$p4SOKp^E:S1%2CqF/(hzRR}(ɓr҃ >Ѓkb\GbeY}Q]Zju0sنeߚRLh )\Y bq״q?:48۷oohUVV~ߎi9@ ٩q\Ə',Rn3$˖ /]Xͯ穣,HV-k}ˡM8")l߲u.`Ef4YWr҂"WZ}}8QItms ³aٙܲg;ԩg[M(s8/"4~!GSo6 G''eO7ȩ h:)ifj PL Sba4i[wm=ߨ }gudwegA]G⺎D[AW$I@+ʁ#Ԙ!LJ9)X*}&J<1N@x0 &?,đT?WVz@G۟y,&\9[/rҳ.[s3n̆35.x,'lc7ܺAqe.-(4?AzJ]y#y(Y0hM=͕p35O`f1tc9j>ݠJ? +~p1 2!rrrrLQ"|)@ 54:(Wsi;, f@ǽ@eʄ/&hF5c쫯ʒ~/! w!̀3Ju{o tF9(-0˳Ȍ~!w {6{nj_7Ԟ޽g7o6f7΋@EyogК򍌬⢲5r8'VFgGF~!VFR̔j7$@33歊#zۿq9v1ʞDTҶeDϼ.mgdǴ p01}L-#gM` 5o;|M Ep4鼹h +MeyS%m4Τp}3hv/ CBg w}_MuΘҤRT16X[,&aRLv.ʣ>~{1+4/yb/U7.o|Ry]{w֙ k=&B0 K_B-U]&JG&^JV#1bt3]u*5:Uv#vtQjL";b'1yQO_yα ߏ{|Bq*}">\VcĞ~VJ9Fn~_3~@:SwLs̉Y{hQ4zy*=M1d !}6|jm1]i.3MSVnWfDй E@:l@7@FBٿ~3\PsV)hvVuMwnEYKJ9,P\MEw>gr㍒?M4HÑ2;X,YL}VOW,vqն7ݲ֍?h>97+7'n/F@w7<.wU{ +(/*zk h: +-FXɓ׌ov&h OFJvn---===FCP,wf2a`(jFݛx6m)t$;?K .N[ky>E<>9m#0.֬g\F쳡zЊu|iy]1y"\E4B &yfyN&GiBOV$ +(>l E508W7`Zyfw)6CW } +%\ 2wzlbVb¹UKd糟m74?>sSW5 ֩+#qd>>}(~oUp@@F +q9?O6 +;`ۚSb[mUV'XIQUhNK,Vv4) to(7_9č~8eHv*\4sτqKAQO4O FԿ>i{#˂|Tncv9Cg9uꔬ WlB祻z)˪8J24S 'W$Pđ={RzKo(hóf'n91k3Ą5Sz: ʠr?7{!|#c*W=>+ z*42 fhghhH7O=r쇲]j[G &uOv.f؆Yd{y+6bj/;CЊ: :!MR>ψ,3r ؿxN֑ڠߨȢYPC˳AږrhV|~ NM>TF&4O>z?tS~AJtE V{y.ܛd%FcE͠].nYO֚c?I3+4^PewZ Zlg[I,#KD+ޥy8L@@*}}}7s2>f|e's}]r뾢Ңeb\.&!tZ;"ADK-D oP-V'K6O]y h VY}rӑ s7%l{Z \Qh\lH.)_ +X,VWUz1t}d['6~M~W*jF8U Ol&hƟqЋB <.)/j@w{w4wcymؑ6j:ѕngѱ~&k%К]]]G@ܓud +b3GW' E_w4)ۛ$&r ~vŐM) ^yg:\6 AWr[ ȉ#ߕ*U!gq_Ӷ5ŗ#:;/~ǟ\x^ħ) H`hhhFnwOOOKK///GтꚄ,VX#dG6XMgŘ4<>zA'!$6U'A ^>~׈7yS\pG>naWwtohƟ_𿤴#KO*jF.hB˭^^^VܙI(DkaFI=Lx?3Oii )u f ^1`YL<ɿ( eTp{UԽ`D[lo {N׾\Pxr:,z,_Y6no@ Jooo|>udДA(";Re}<^(sЙ\{mbd韏6 *]'9oϊϊ)+*?u}$1Rrھg6#>mɹ⛝ٞ>)ϞL<#Hyz߷ɮ99#{J;TZ&bY@duvvƯL(q2Qhe٤3fg5Vk>o~k>Sn.zp;8)uAЋ/dwl歁չ5Q"Аii$[PGj\w;>{45AIXFQe/0:Ƣy5Ct7s0^&5?aȝ#N;%_#A7N6BVtxhC _V;.LY]A@pZnr _pBojM"1 h`xpre=Ҫ5I(veJ}b Ə<:7ϺwCĩ[shve.f40V{a%4;[>Q"B] @+ot쎓tdXRGJ@H_vO:eʄfs\s%"q!5ŬXSYMU얆ջFEtb9vzXݾnNL h=mL4<.Qp,:'1tYQǟ+^~|Y˾~!$@wmtdI^ |>344$(8?3>&O8gE}X9ѹQo~_} 7sӠ4m= ?O9t*Ň 7V~z:2arMx? 9/N6bo%(?+:Tč@+@.Up@3O _-9$[ЄQhJA&L/7 ]gӠlFr;w]̩gI&ЊPɠ-)w>dZMs7chWug?:[k +|;v>x{*vd}:ޟhл+h|>_gggʄGcX(v\6MC@N7:;_@ -H(vq(jPl($_ R*mf-.Ả7>&<]?Jb>iK0<] @7վr\R 09mvJ4hBSm(48C^nhݐN[iCeAXqIeΤ9:EfT6˴xЄKJ٭CvV(Wnc3!N82n꙰wLJWw>zV Tz*hB09G-E?ve}4F1a:X,XEcl#Ԍ28SݎG-G1tᩴ6CJ{hWV Myw"G!qZg~8!gSІ2MTc=+*!,L9o‘\"Ah63WNch3ѹ &}1y[ZB(Ys&kV8>9c idky>vmSх?zUu~LG.LV7F5>3 @7v:uʸ rtB(eN3 W]+ l]:14}0m^BRP}n\ +x{G\z ߉ӑD.L]3؞jg=5JF#0x3G/V?BxF%SхAVġA&<}{%Yh9lرcfb)n4<,zsIY&? ѴA0(w40J**)3 +%م?3}9nx]'#>\đ j|34} 4@%꒸2a(bt|_JV{y!-ZPMuфWߖu2hE}i'v5T6 +G|7W.N@k^D֑ |>q>xjt/YǗ4@26 +X[;U@d2>>M_:IEȠ9zj {F㻞skMqo4o Bˠ@䑄W&\ů1J-<# #ie#Ciڥ㫥74=igN#{6hr||_;Zn>!/y%1.(}b鏥h_ǡ:bmf6rY, Aizô6qwp14I!tVoOKCe k9^ 2eUv~Έ99:91#Aq\ʷQhy*\dMEf灊y6F@d+lh:6~Mq^᣶3F";Uٝ6D|tq %`*BQItڤ>u0-)nIH.~&fͳFGMyָ4<>zQYI*k1 O{O-;8*otC  | 3^~S}.)k>.//v+-t:KJd.OĻ"2 l(uꔸ2fA "X,6_UxmyV6:kX5[s2Z,iY$|u^n9GҩW2[s Myf^r45룟[*0(9? hhF8rAG%֬L86E ).ђ҇2P(ĝF);{4M7IF^ӬYӔ d<;ʦ`fv1Dc5υ쉅yҲ\|Vm"c40{8&N@}sglw]d*=;9h2Q|bG[=%RN4QN<_ #7F" $ʄ(h`xpKB7 i(/)YyE*pE͋ +tz߷i0]=n4the}MEӟO>1$\p_˅?RLSX^^ViXnF1.sD~ad# 5CS8IOnY,>#1%TnN{.xn9=;/#xWy4}mn)V)@ `Of端|G}Y!^6K5[[9m[~ڈB Q\5QD!c/sϝzsZ.s"lIV)iv=~ZTh4p0y)Lh +P0MSF1nIii +endstream endobj 504 0 obj <> +stream +x'G3m13D q&%!:3aQ+*7D ¡B=ŋEW5^t*]7=S5=]=//g0LZoV_6oU=bsrpHqw~ک/?~sʿx _f-0EͬjGfvȵ7}Hz|MS3/H?Ͻ&N߹5~ o_|.izf]UfZ%pl|mJ_ک}%pEN馛r/?e^pT*_VhPnIƭKD,zhak=*ozĭQ \gC< b+dD%p9)g/?s|%!+Uw%Rf+av~5ˍ-\$'R*}HG˛qCN _PJ_:@f^-,;3.}hᑑiiz67o2C tw߳jh5k.7hM&se}:mib֘NRF< td+$g6Wy,48}.}&@~blI{pb8-[<08~N ҟ/^)qhk6Ulhl`|OAl-ĭԔ*[ ;m4:Ȗ57ݺ-V"ͫ6[CQT~JIl lGw;7l{d{C$ q,--n8L)):̣}`wX;R)R ^ sZ3`LI3yw4<:#SiV|4Nד~pƺfbOѳWB t%pA| M& FZw"{#x-'R-7N$/ߧptױbɊ;j(ffsXሐpiKh2 tx8vW;ᔪ7D%*LGNOt(}p=Z]u&xƺZf(~yGυoQdaM&2r$\+~ڗ~yكwy]Uhh%R&w5:T9^zgi/޾I Iw՗\Sn1z,W:ЙpaZO=}{h(r8JMGQ[v@aЙNӾhK~ѱ_s8.0%äە4㨠l%›?oNKL5D%p9蹹0=)i2YÏ̗ՃhxsfouW"eE>ίDZ8$+}J_ ʖŏ^ed?o?&i2 t{O&8H+GHߌcspO>NZ tϊXӞɟ?r|z+eM&˾S t +w'=?u-%}Js +W }zok?sе-}p5#OEkGGϩS/Ns]7u3.ƗKNxD>~׶vl8fϽO>uG t-U@Ɠ~zp۫5;mrknJ_=w|p8L%q' J_M&nuwW6ml%RYVxGŶT܌cn&dZ(if+JiP_U +%eK|YۼmcGE+ҷdij?]zC+qեޯJC@/_~ۜy*?5EUkpQ{,0Wc_{ ;GXtt"|.mM/ǽJf\@TV]H*#Gxœ#C=KniDů~E2-fcW ^*<6}BGIoH;#7J`z&Aà]N +7C_ef)}8>ңd CO +9gKmס/ +;q!/[2XH7Y;sG'7$i@+oRc%tKgsF'&ϿHTD ?X9e˔|+޲DM=`驂˧J9_#dZ\K@ L;ZtsOP-+}+ng/$(3W ь.X6+fފT LpVMמ7Ќ4v4~/0-m +֌=__+iAyDAŕ}RV"MvN:_kiAYO ,5K L +\Pq­tɼ~ޕd y"dUφNvRzgMРU*QGg_hgE{d,^A~^@@>߷0 4/LÖ !$j<0 ߛiwwϟ%?O@ÊnL|F֪ݟ/4l/)AC OИYg{s/0ZtC{8y;Us/0nMM"i:Ӆx9iSwr0}}<V"l d25WBC¿!On;qJp2/LՓ_Ǣ C'–'.L):qJr _ yNԌ ~@M^f] 9gњ_"j_Ar>9ë+j}x +`m 􋵾E'=~ɭsα5F/N^>K{ ƶ֚}"X_@XWg/}-)%7ג-_-M_]ql-id|冢i=̆Yxڃk+h[OoXk/mv<3Y}WH`& +-~N^@f]UW}X)xiw;q0# m|q+ w{Pi] +)Ci V{ +&:!n 7W4V9}0:-c8+i:{(:x@N^1v5hub'+iZ~#bEWg/}- 6=0ySb<ZW_]PАfԿv_̖/7=my2M4߷Z;p/Lq<Л֝߹Q~Ue雳o,[yoW^lo]Ias4(`^L{c{G~+kovG@/y%[S{wP)UAuᣇ,Te"zjHۿz>i<o_9[o+ahgRƊtF@O:ʾ} ?6 +-u,) ^>>^^^VVV999444bbb```KKK777111...ձֽsssب@@@dddքxxxLLL·}}}̏iii333PPPmmmͳatttf]9WWWfffFߺåϘLJޜӸÃը˝ˡ˔ȳϪ۶ǐЎTTTŝѬCCCYYY===hhh)] endobj 503 0 obj <>/Filter /FlateDecode /Height 351 /Subtype /Image /Width 1920 /Length 83932 >> +stream +x l\uH34iNE2IXc}o5N#/qoj@ U!cm@J.g3~(T-0r"֦BRXi$҈oޚ4K|̙9{sfgG3gΜCo!L^x't:{xt[Cӏv9ڵksssl\bE}}}2,wۗ)|{sChL]\GX>~~ᑿeUԕyO74}1 V7;[VO֓73;9:_Vv7tTV|͎56n.Kݻ}VQ..2>4=6aMkX)njosCӗ'uM_]zW7$==085&kTy.~&i O>ڍ8/g ئzҝA'ڋoDX!o #t[;:}S`X[WKY?nU\-?yWGM8;}dlvO[뢺@e۸ 'ԥs4_xjMvG'ZlҚRԬڦEaqTC+C`GZ)Uu۬'?7ZP\`(4iPFgXд U/i:g9v7G%4k!BssKC7* `msc*RQ̜)_u 歋 Y& + +`5oykE);GRE*{â[VOLiR+؍|N2g +ۮ]q8;=3GXJ4,&;,y[Th*bΗկT}J9<5~l2=#(eNy#빒u꾯8h?>CNPWƇH ۯS:iBgOd>W\65ahijhZ]v*ï LT=ZH7GMc;F_aNdvт4 ZxPx}fϰy}um />yqZX.ղ/C`wOfy+]ZK +A +p&(*1 , + -(\B+!4VX;$icy6#@+m0nܭXҤBa8(Ggާ#;L-t7,Y&n$߶YӴ֏ؼ̜AIl"kW鞑@((db*>sMWNIuR9>3ج kmNÿ6FʈP>9ÇxՊZVç5xSG}%EA.oP'et| +-?ӫ#$Zկp7[š7GxcfSD24h>+UqqgiZRL}Y>6!;+tpyS>Ti%[=X Zl޽tRdzzZy@_G%݁K.hlQcȱUDJ41i*Z@g4v%.g+!4P>:suU$my=Ti2\7{np0UJ2Ԋ\Iv )5hI}l+Ct" WƇF6pDt7 -+9ߐnO&4[gO^'fּ1!;!41 +X2$3}Syxt 1yԕy8![ +]*BDUu>P`L٬YX?V˳j=,y`h] }\丧b,ԠGDV}Ř(ѼWNk?81w>̑2Z]~ōFRgzJwF6 -a<)UZa )`T`P"zHi* p"˼=8%=ӢD}K.j{KwjRJ Bמ !fB2q7pvՌ :2NQ(Q0|!&m;D[#c^VhZDXh'B1X zqB|xj +[B?R[3Eqkc)q(̅#*"0/TJ,IK20>hCt}t\-֣9m-5H+oO;W[?^ůYhZ1!IPAv۫ZX7 %TUdv`Ud5ctMlt{#'Aps+z M-@<5.721D +!nЉ# + -H/HBb8/Ia`;_zzn=eݵbH!~$iCNJt6Y~D"w;Q6bcPC;7z܆q*{Ne"P.L:ї sE.Cc o :QwI(DwILZ{Yxѕ hX(5$hȐ Ӆ5+x|qbnA>>Ѳ!D؊]{wE.Cc*a.w?sܬզ $O=Zm,φJ!100OV5$o[w6'>; +?9L.sMk$KAx'FAHb[ZT\kq\H.kf~Z*nf$"uE6>_/z{ݍ6L GJG5;tT\P*&F KvǧOkYY [4Zg* <=~ zA t:}cy6#@㠐 >x\\5#cnJvm Gn#8PzAx.xCAV0ی]h1h j&qxf\Di%@sk*Ǟۃ;B/Y{t5:ڷs4 ИQ8\b25*E9nDU+x? 8_VßoMʿB@i7KgBb")!Gt^O߹tgGKȳiU(?wL +mǿ N|Ziy6 #@M,sȑ# +ǦfF..2W޴3jS)eQTAA+rh8=/b?L +5/IGnRྼ4JB00|ӢL sg KS, x(r> k_ּ#ɻ?`#TLXJmC!VDz.esQ~hU:NïA uJ@(:{)m@?{", бRҠuHp@ +jp0J[qEKߐSj-%A#Mfi>GqXCH7gC:rZvrOJ4eAmr8 4oوa GACw$lC@Z,ӦooIh9T.@#gU1Ju,]uΐVw3Q?]P[[RcM3f[:?@ K +7qj62TFp*<5g.p>خS eܿ5DO;$(p$KgG<=;Ԡ+u3Hja +HpOfy\Y cy66a!ܼ^ySܹ^]N˾"cʝ5 c/0X#vJƉdMy1 U{QeeU=qَfٍϰV@¯/ c6c.z3KJ5(mok][˭IxmV܀ԚEg R+.xADkBa-/4!#Tji5G,T0y:+%CO5 $@åiM@93jZDŽC)a)P4h^')`LB{coP A˳*1tĸ&uuuz&?,Z%q'T*_h)?U/=)ZFS_H&BWJ'kuB%n+wGͨMW\lJGg`z4I7*חL!qpP~E2Dۣ9AUeum <,7Kњ%ߚQͧ 7NQ& mP6C,|H}`p +xoT)4Zњphs:禪qG>#YngG0ϝVdV Z`P2KX=`|ޏnϹ/cy6T.FJ!, _*_]2uW Z Hk j?R.Bw7BIo0$=Ժpe }eDA6aقv%",a:m ӺVTMwtg$R;%+d .c'.+٧aߚl][L`3kBQ:׼œޮII֔ f [p Кs?8hhELjB_0Tb{ ]=Ew|ZVux]K̽5R{ɭnIHL&Z˳lF Am¥Ʊ?iQ&D)/N̋oD Ӗ.paut'ThieGӚ- BJ4* Ӗ<ͺ*~"4/B/٠\ҊI>!`:|QZ.F,pU(iFљg.+ JT=9 X~o17y._>rhk%z;Se0бqS ǫqԍDC;_ڢɝjؐ"Y,؍N }?> qF 3 su +V%iԣḁ2itFGn EA#'-xԩ+  +Oci ө#78tcPxD|r;buك ZoU٠*}6PXX_h][CAC ѪDRxhePV Ti@RcBs@hh8uD`4.)nmJNL6,;>kU/w4(׸ -{ׯZ` F)\9o^d-֥&Mg>űʳ& O$4 ׇ)񪂪`u(XD -LFI[hc.+qL%LSe𷧤+XM1n3!b,CW4RA'$49zzђZI[35!k >`o$M[hSyƓw4Hw3߯&$ø=vST O,a I>蟜=ײ{>CZpV TU|q^p_ʃP7x^N8{ޛaybdz{{GFFJKEpvv}QYyT'B_Ԑ2x>47n() zעé +ha%÷F[}A +ǖUKԺʵr35F +TQ, +<`)RB xב< +Mۡ942.Vg +QuKߢ&iAeSj;Pj:M>J*7A +!%D93_x/^yS/Dt.ʰרָY _ /*ԍ˳!:ָ]&Vh>TVa]ڀptQz7x;k+5#7Fi}~/&n|בtw0"j͡kXt"+dʜ.=W NƦ0R,o#e}M*EpJH婂TM/S1 __R[8khc`btXB gp&6 +; ݍEw2x`0K>ئ#̝k7|(BZP!DȓJ78U4&e:{4V݉+jy;wOC@΀ͳL&An/0gChK޽{ 0hjIyҪ|:|JtRk Zyʹ q1wr>׮jDA_w{MkW}<-4h98\،ZXDU!}03vSE-1[JiOSb-t⦐a喝mM3 +~l+-A/GAj0Е.JYD* + +std@kߐ#iHM=?-l9!ZZ_fh9jc^VbCϚ̞;< DBw^UE2  -ͻ}3@yZ+:4fggMؽ54"k hy)9c,φc +m8kWܸۇe7b2Gq]%IdgB̙BQ&O|+^]3z:"8m)ӓc_rm Atp4hvėIƒQ1XhQo[nzG[rN #d!F_Vya5&LQ[!Јlb?Lf{ &'kv7>U܉]znMhRR3?9yz KsCQݺ7w~Yp(,ۮ{.\D"Dx8œXwsx{>P)"핆%Srm렒Ɯd*J$\۟Η(v-Hc Ef̙{εւ |B#a\և>6~U9絷BMU4 D +~:.tQN Tn(T}JѓDg֍4Hjo`!VUnZ#yUzZtKnj>S/UA/$ t%N#ol i{Д`q) T5붷VDkZowu?+ɢ%x޸}F[udaQi|BShY|G %ݘXܠ&۱,,ܧَkQ3~cy6#@W*a\+.{g{m@Jap!)>HBhEAsgfKϰfݭ;eXE ͝?mO m̟RҴ*]Y{ *CjhZ31# ?n`=EP<`(Ek4ڥᲆ(XOm:HqƋ+phsBBBo >1#rug=;i#ӱS!15Y>Y\dvlvfߙ޾uB:"v(H:cvsc4uLz U7+XZWޔ:'LP˳B1teOםk8&huJ677/m ?=&oF Eu0); !L"_} 1͘!D +yǣZtʤɧpg(W$²;!>N>EL+gA1zb yZXWz.oQto-61IؒbuF1z2;fh\ $-g*QېRTT>g-Ph\)?J\+ާ6g{jҳo4$@r I.xPz S!>ŲM_f4UTUB~+Iȗag :dennWv/g3W?}nt}Ka1g E-wygWzE`+Ǻ|Ž=גM +k׮r92]}TS8Bm&ie-InhO^ƛ`MIv4q>{5p#%oB̡ n% uD Z!ށ!ƚzY\h0?*˳\a3gxtl(%h 5chA, FbD#KQ7EBgO^|kl*'kؒkR,lx@AïѸKc/@\Aco~< [$@rJZ]~[c +-m@&GAWޔN|noZ#l cy6TF +=`?n}#G(LQk<_-Wagin2GGݾo%. i +vIU*wKO+YU=T\ RıBRҩ<,Ź I]euci:*1]<6>l2*W;6{:}PH}/LoWtaZv>' ianj75]f<1=Ebv|ܜ {Gol!4qv[u^յgϞݻMPzd2{fo}/0 +OOO/ QgnؽQ%1nЀq|'u Kǰ&~5!xнx5P>=у3ma +A FT79nV! 1\CBmGۤ89  +Uh( ,ft|">m{C:&/x +/r@vn{ kW5Bl!lt :ƜhSqN`v\+VxO^/߉oFNJ/0gC%bVd뻶V튜H$RTQ+̥^5p,417Y-GƎ?&X #Yr\1o{z>z(c`۟U&j}yٓٱcJMo<58 vh(x@`C% jnUc]LƠF#[f_uNZ1EdeEAe@Y!ٜJjsyzaslNt@׌eZ8nٟ9ZngAhgd2t:}cy6T"FB +-%u7㵵ʰBK3I&UA5 ݎ A +s!MţIV՛ҟ )BQk>=nʆ+ѭJ%ʘ 8B3RBAnP];Z + i#=#T*6 + +Vt".{ _l#AWvYS:|e|+*+{,AZvk~BR>{8*ˎTh$qCzs&x^My޳g„U!d]د_ U.^,ou?yWR1%gdU- h~~\.xv@_,Bt*?'h{3p&(pdgz=eUES3P*(Lw7yfXz eHrד/;M0* y8sVtN2뫝T*i9 + Y^ tȎp2񮨪=)ջSи㯤< 7][:cy6iHoo/Zkx\r*YvO5ڭ5?C ڗ<|UORs2gq.@ӾmjgISLsIY@ +bz#A4\bA%ɌOmJkRvª^PG, ТAhX[U‹K~sTz, +uq9`o8/}b;MnsF˶B< T'Y%K/UF4s0gCa*RsmzEvdB{SvV+3W?xE4Y!T; h̜ykepq\_o`jg + tt/m MZ+SY5О&z`!)EZX9n-٢]t˪:XP) ǩ9`2f\e L#PƍhhC"M D bؐ -Z TQ"fUU40[/d@#{Uk/Ge |i@~#:B ,nV g >hAil>, ܵd͟]5vb"]$Owٽ]\t0s#Yu\}mJqLZ7<ƅ\'+,9tNTQMFH#-< r|K+ѓ1+×*Jmyၨ*CQn9 MHz4XqLr7T"$ChK>-آʽxqFIz!a7> *cʹ9\і^E +hu@~Sau gRk<7gCccJhV^^)h۬x3Zm o.>6=S~C4S~4oHR'@kJݱ"/_y2nyHKK,(Y⺭). 8ܤgPt +3J3Uڰ℃3&C茆 V0|m2FWbVQgA hc Z7{c!Cӟ,"-@Zk\__reW/E;5l0 F^^ZZ +dZ[s=$҉J-P6%Tn&+:h֘B™eR׻~+Lf;]9]<61>Y~{{]ԛwtÛR<0g HcDpCG]Q&IӡIGg.ѣ|`X!rL;!%ia%N1vq{6G$ +:s$=ӼRXVj)Z#ЍV׶~+>%@vUㅩ\~cm"naws9PZh^0B_|ի7tS]]7]__H$౼_MF < p+%Sw +kavl ++E;o/Q R+&B M.EŃ(XwIi_.>>@f!a[OD ?m2̌A/Z_NwpQw9U = BA2P8E2lnꓡᨃ̕yxLyAm6b65&i'\//0[ݐ'GR*JMҴEa_EqnDȌҔL Q!tt@ =GrJoJDgP< z9vA#Gh ‚`%AB$[ER (AJU;?hQ(7>ZpP 9%4 q.?08g|/869¾7=(!J'em6R=Pӝ4:Ggp-MCA+tN#=2tL+[ 3W9nEJO#_J*( +r)8tx h m􁺳x!\k]u|Yx tR8*R/V:Lεk0ϝ;\[oE kP  {;oPqzd+Q> =k\}V8k ye| +3n?v,pԮjq_М o.F 8Ϟȏ<>|Nҝ95ywu(BZHsJ0S5yy5BaЍ96@~  +*O9g }hs"vp)([SJvD=Q^Ih"*)b"o?G3 Y8g|M%5MFE5U0 5VZXNa8օ _|ҥKzj)áY.;޶X zYfc__Oq%קRjOvYRaM<]x~He1"נaK!򃚶G7jP!@<̛O~'kؒgOfOoM>emL &¾o8_^;j}36& |4FiƄ!+)% 8F]و[QwFA-VD!SU PG0 .T-6ϲVЄۘLl[KX 7ZTtgҳ(,CkM9"U[HaGx d}nyvdŊD"˩:MlK[~w/8N8pX ah|+4O+;!1=̙iƦ/GAlbм[k# ??BO'1z}5Y>Y+±ђR|<*g¨> k8VVar ?\MWl9'lqUTPxǘf$m zd~"}y^[D쪴J붨JSop\Ğ9.ʏ=Q,mz߶F/(GȱlQB(R}i +[;֚F7,'8l/+YXsCn"i4%`m-(2hsV Gp{)1!zj5hKҢ*"Ԕ(JtHbXcԠCB6:up9|C(VAfqpSNf?w٢تOtT f Gn|ď +ZG?Gtܜ"G:&SWo@ aboLXMTa!SeIJuLݍ]6Ӣ6C:AYqҳ2;V+Ri{ [FyUf;8/# ibFW_>;vE4:40ZenzoSd2g_}lb\Qäm np~Kէ=~ORDc7t׳RI\_y8Unݡ[Kqo>W, +^KhWޅj Mw +"je!@`h쑖G)ΕrSN%Ih_`93c\q5"q'Z8mo*Ψ>1baiӥ +ӘT& +rӝժEGϻX*^S#ԗ=KVubn%t% ^51A>i8_G: ZE:r Ec:p%Y&l0WX9rD^BZ(=#X +g +^㵫RJN\ȝ;z[<\CˎDgBa @ʚi%ZW g>Gc, +"<C&U:S{PuPCTx7sVRSe;{ +ϭ؁Ц2JtΤPWe& rsFTiף/ +1#HVOV_> ܛ6 jХL sڔz}%9ZpӵoP,v`(#@loo_ +=;;JG̓OvnD +&C#dUǚDcL9|ϢZCWިVLQJ$CY~^35h,HpoЉV6 'o&hɑ(bDql)̾5,gx3Ԣ`8]H!-bfff߾}E_~cy6І"d2{+*BS{[ #ca Kahƅ>--B=!o[+ѹifQSU~'z76TA(p f{ + H-L~GZp&g /O k)Kw7eTb4\Bݒ e/,4g/m< Ynh>#c5UUqO%C';nJܹ(<166{C2gAF6 +W\8Y&?|l +MB z[dzݺ2R@ +‰f:rv&˘AϪhC, Y P%@?v*p9B3)&+_>YxVl?K*[_vf54PH07$ljަ^&Ñ*QI)Xv;\zMHE%zG͟hn7?bt:} 0 1/Vh^Ep +.nAi&Tl)=-Z3E!!: =47k}hUy.0&hO}$WGvYLpb?%r@ u'f37؟==6qؕhd?B"RAdYM28[Sf`0>GbYX dgu+Ѵpz'MT`0\(C#m,;n.7#t+ #@JJ}wnTYԬ|o*<6}n-kl:(RbO)}=ovD& >,~Z9VGIV:1qSYz_>ɬɚu[-txK[t:)ɊpY`Ձ8/r@dvj/tXc6 pBq,,,zA+p?:]lU݅-CU*눡 Eʫ/Q]g\v-92'_x/HV PeBOKUxFFF^xᅁwN]]] L#@J. +jhvW-|+RT"P)e[qKt$Ka3M%ci +W+ٟUIT}/z;fxGMSTR{>q=y}um >?f=y1aewxINRСis>J}jVnz"nh( jjT4g4h7_"&}sNx%BjEoU$\ϰ>ΦtWh,v0>y3`?"6@yXQbß9b* echC9HVh]W|wþ {>ײ@T8*I@SҜ2%*KTRΔLtj+<W#R~dvLJB):c{ꒊ +NZyQֵ5!rYybFj/[n.HFUNq!pn6M\^pOd[;ee +"sÞ513]xI-wÞ;61;8x1w^gݠdg}z|W,WhBE <ǭkr=܉ Ov7*) =yѮDupB'E?>cm>`rS\ +,`g|(^$jЋۮO^2y/8`sѭ }/H}\tl]}B6'=qYPJ+V 쉂$yM!*ųr5袖g LC3/q _?ytͩxk=1q@<;@jCyp5;;-Ʉ +-yuI}f"U+mHѨBsJARfd}wTyꃛĕ$r:7&;&5cZʘVtNt>9`.E?[t-܃2 ~gG,b=ZԠ`N&bA wT%e?T*Ti:V,GKQ:6DU@p_921:2qpk4=Æm+Tz`0rٖgI-8܈ǭ0d2';$Z2J(]7ܻw/ -M 0!8 "BkDljAW JmpZއ^5Bɻ?<#"… _zUٟGo8B4 +!@:]86~OW>خ$==08EOѾ647Ks5|"9x*{T§25.Fό?g]Wx x 2KBe"sS0%п<ϵǻ`g mLR[lӝAT+4h<l]7_w.\tEa+e4i\,_FTl\~~ƞt\Rd gwWJ^04yC +`΢PWF8gC71!Q»}㖚[{גb +<ޖgLyAvT -54aZ eY徎Ɗl+(=ϑj>6_Z%- +8)axҮVzs'| z8VA !f-љa,(ZCJXNj +nC4+65ow?>8:$8<9[}ԣ<򮠈 +֕Xlc \_O>[jV£X~$}OK]ٍ~V9rT&4ڠpБT&F{Cw'Id#_ ӆFK0;1ϔ֕>(V|ǝ}/Lo3[(pZ?׍OZh=*!)|}-Ƀ6,@H=yw^N0Q1v=z N:~ +nH [E:<љKt~Q[3 Aˆ.6<^O/:aa[C%g``7ހGAq$ +m08bhvZH+WXZeB^*)Mb +hYۖ*;E^s7ƯfƠDW8& G$ADuh+%W*p ǧb @YtRv7>U+V2ψB3?>C) +n.R)Z + + XiI: ̭gidū-;uҿy F֣ckyvmk`0! {l.+÷B%y!O(hӅiaq. +>wB-4hu+#ףO]4Iw~7_JUP-J (@S/48ݨwM…"8xdS}=Ȼ +p~m뷪tF4%eBpZkΡ;p|g +E7p qDPyVc~L'r˳{G(7"ІXnVheZ:vI,mҧK +nHK< ǡN"FRt͒MH4ѡJ +Wފ3߰kM&x&rgJpnIz5cϟ.O >9J^LiI,8{E>h6s4Kv9d5dV^(<\Xm'> Մ޴DCGATrgC58oF6J8pW& +-A4IέX%\54{f(ԣۯ/ĕ7^c 7-g jmN-/ +j*_a*|M +'~HcfD=}~Y< +-Lf?e@#oM>Ӣ86>Ԅg w_|Rhҧe>#RNVYP{VhCЫg J'4 -q08}cd{CH7 \Z2t|Ib44p_+%m +m0ahCظ vuut&T*n.̎Ag(̷տ~?Eg_7s3VUtJґlHqs/-jWXzjLЄj}m뷔HZخLEҡ]%)|àC֠I}Fv7꫅ +q_G3p.g1Lˁ‰GUQ̎5s %b {ZԂMS K 6H++KL]ש\>\=45iy~[ X](w֣{>'ȩI *솛~A3F6D?:4 h1BAHcr4T&s_U茆eLhLnπƼzo7}!:RI\Vbe\>Y3`>xsk~ЫgxdP@AP0HH{cSJ~MVy pK쟝CoJR +Vd\;v\UpRq• 2|7{D/,ԧ X\8ZF/ॣn/Hoo]Ҙg0#@"m`ZoV8eem|`=EWn6a˕f-bV՝rE%?q~B^ Mk,!hUyN!BYX3chl-c2hBF!, -I}5 B5V72^~ɻ:PP4$Vฌ&hU4(*>9ttcD$ npS~F6;9>Kg4=󶆦ຳZ(P8]Xh)1iG s< H[hڀ)2W GţjvTm-y[ٝ(ڭЩTET0i}faee⚶3ˮ>0h2%ʸu)&-0ḮF߄-A/g1gKojCaΡW9% <)"c jā }:U=g ,WwQPBIEyl>2AKY +h)E$EҠ;J;"8%Ij.J*fggY PƛKeMGeyΈd_#GIm7bhCH_~'#&ݦ;65o+\PVhCy@פ:_LwV}4nHI"ouWƇl8$X.@+]a2$CJ4yxO)p`wn3ߥJQ)]mDECAOದ:&ZuOlTvԝ_Y@Y}zX: P) M\1Zm3yL[ (Li:ZŠgXz,^ZG;wddz`0!._oOKuU5$C]Z'k!osss*d03vSnmkTU[Ot5!i!%-_$Y +6ݥRVT N`мn{[F֚YX> 61OҎ'B4E`{a %(J$\ԵKI,c +{&|?z-lM{L"tgu=SXЖ%i\Z,$FWPc{nxÃӴW /ljz \QUov4pLv+*P(DCByoӲB:UuЏ<=6tבґϺOfϼ2>Gq<`yU1oTH(8sE0?(1)GIpIZXD`Z`{pFija6x xt{AWWמ={v,P>r2޽{ "oX;3$+4$X n-QQ~ij1ZAgݝ^7:,@q)ϚBup!ډNdṂY;߿5 +s+ٓ\R2@)?K|U$"86 l37q04uPOV8`T8=(:Dq% :u%Sp|*u䘆XRp]PGݬeO2B3DcO4Y/](m4CψA? J%qA_5 j I9d , +*ѓ2/;D;B/c(gΗԶRf/u)/Χ)g;R)B%HZLzYVTyFTqYH0p֝ +5h?btFi+BQAT_1se}V/%԰8XÎAn/HXΖg7ڰ 1! 'OSTR?H$RBDA>nѴgE,G.iJ;Bs2*ﳄZ\K.]AU%Va)3aO2%M\>]̅fX޾z2X׺&љxTS%; Nmɧ_p^.k7FާQU(TU]̳iWա;;Bb4@7t4:O+\6d4Fh(jy`={?nqF6T%F6{]|x6B|BbΔWPzY!Iϴ?54A7M_r5T%7r8]211wuTЬnw45P`IPq3aખ&XMOjU 'l5%jh|0pojJt"&8vԠ@QteWxxKv&RQm #@_wAjЎsR;dpDUڴtX]Ϣ01 ~ ZxVf|aWu'QJ*(mu+Q؂}}Е \VjǖsoPgVt>{ +#3cpk֑/ +$2MZuSQ!K?w*C4RZA> H:)a,A+]]]Gp PY\9lh$X ed$ a; K|'mDL $Mvo\Ʋةcm4ho$)Ps\yAc񼻧}gN%W*K\W]{4OV;MuncU78͡F@U>+1OK,˳)0PP1>+>}ݩß-SnI@t^aQsP'\S}Kl25@Q^XOe!! Ry[_[NvGK5 +  Sت1qCwwķ'پ$ca)XDgJYܔt'T.T"M/VXGٓu>Y VZ QouP1bD+uW8ܢBQ|Bquf Z:ʉ2i.GX\OZ5#X{]]fV +1€ \Y?TYJw~vvVZ T*|f8%/K/ Q:f?mN8!a*mrЄA3`d[yQ$VR-Z5t%$UehI޼O齛ܰ#8}KYX6 +J0Y, " +ym:%g.@񡞧ƅX[ϝ[lh( Fg3q G:4 ZW5<&wO9zk{˳`bm<oY}]MЈ[>\Z6yq8!T\&ӴX*N 1gAI6:He-+޾tཌྷ!o |Hɴ$a|M84W^ryVı }O zv{7ݖgaE@˳`Ї +e$~#UHJ777ã6G$H.2Qh-USұ'zP.i dݓz,eoL@24çB/>?:u0wxCˬȾԲmu+mN+RG,.(@#7Ρs xnA>6>97Y9m%|hۡ~ +K}nY&@zКl:X &CSSyQ`O@Ѿg˳`#@*H{PV[Z\Bԝ[X2[J/OKe e#t;VciYt҈^ c5Hŏo +Vӥc8KAL]}̬"U#UhDV$iaQF߄DO{^# +JNq*v<ϞoMt~|FpԚ`4'owӚ =6sR1 +NgAZ^4TD^~SX)ewX <<hayjswGzJ jcx+B$Up/Ur]$R>ڀK)Fik7H$z?]@˳`Vm&w^)Jڵk(l"\^Lb0/čQ CQ"sOi"L6haEAts0UK<[ǵ S(cl U)%!7a4@SA;=-"Wgn8=no>.8=Vԑ+rU3r}e--!.&8u|0_!p/s X72kkᱽne[8B?7[jVE[jU)0An/4t`0І*m 5h}Vs/fE*~2s NL~t6 npu2]Ӗv7݌u|%>|ftp&g =OM24.`Bx|=\-TT T?9 +Hgr܅ӵQMպ[w4w~YɻkR3c=EesV6=ߒCAZ"(oҾp\^zQInV(@֯}]ˎ0:0h8'~f?<;; 詾~,&m`0 ՆjOY9B_nHĔ!1Z! +b" C1vwéCڬ!_U$iTaEgD, +gʋpLЪR&}fIӓ.;FLZdm278j7J'f\zΉTcij}ˌv{+xACˎ0eh^VT^6h:rP݆4dYnyPx H,X CPn +:QQb|K6=j]bE*J$?@%$m MtWu$r/eGP װi啕3JF_0Tm{m=)=UyŠDtg}}b1Նz C')eʗ΅ԡ]c> &p!ٟ^1Ṅ?ӫr<7"_' etCSo,!PG{ȑVzgh1@[aÇWǺܬDl_*<0Ҧ h9M3 J. +cS3G'A?W$Ywҽ2> ^gZ;}?~٧fiA S8bΡ\G{K[Lk~ր#FRAU/;B@{;xT g7̅܋W_pS/C˸e,vlX C`hCwޑ;1K}Q.U1;;뗭Z0>khw75iKبlj>5 O]70ˈ3͑|U~a%G$1+.q/+5.w_exœ?)/U4@q̥]Coq#FR s߱3whN FBeٚ ]p-K+\"mޯr% 4Z].klO",)  &i7$Y\xT c.Ɔ0Y,U 8bYJި]ո + 0wf&RiP>A: Fpkg$qcX#{~Q"y8@˳`PmXFz޽ʄ~8=?1y% +-iаVhI3Lhw1w?PH-}_: G&RSVhBYm.As"0TiCpFg{UOMt=K4.١Sc4|RNnuQ1Dae$+['|dY(V/~Դ_k%L 2ϒ9+oękknE'oX=}.V LbB8W^~1S:LΙ797CQ.~gyߡ W<3 ͌QF% , M$ƙzIJPWGQ&mIDhD%NXt:k}ԤGgB W=}= mN[I8~Y6Ɏ5[_}QH!@Ɗ7WH"|8ʂ{[7چ˺.BTƵuo)^TPY}F/j4-80oXX]PɬV[:A3d&`Ӵ644XЍ55JSSWGp8lB@ g 3\{^,6(_0kQUI-ćzP"hTmy:lnߙOY,=:3 +w1BINNN:8$m}+L:"I0/԰   φmw$wﱕ(F&GzƪZ]mm5ϢԬj)Zne؟5.k_keU8S[Bs虞h[eu:{Ӵ@]c&hB_\V~g̦&<3 ͌ulG)C?,ZZh7ODɎ(tF5GKu8=()"-$ƈB-Ӣrwԣi%b{bN|$g1Xϻtoѯ\8Ѩ;ëU 35iYS2:fm+ܠ6]8ӗ?ߵs,)sp^ԝ_eM(@9[eP,΂h%#(:>54h.+>Q~o}ﶶflyf& `ab455Yg9GzݷLǏ/))IatNp٪?ngLpsZy0G73rF& ~*"XO{$Uڼ*Uoib I7b10K+2>YL'-(F ]-{pNsZ\ sC(,VhJhg=Jm1ӯ3S ,ѱ#> p +K$noo=q0~V,^[F߉̛}g[IpAa Y|o,Wb삆N8FD(7CnkI"[9RHĺ3 r"+*@SI1 QYy՝$i\@;?Dz{XcYIԣ ?ZS}H + [Avǟ곈h-#@k܃sP̿⑧ +,&i[}ƘLh-jl=<{|hu^91$7o*^傇4 Ntr{c+s$:m3|1ҽR(f) +`30 >RES}Xfh,[/(5A) nkeBCQ%sO:^=L͔&ARJ %)϶>S|$JcVb'}F_ύц` X-JLTܒ ԆV)Eҝ3+!x~z2̦}҉R}#pwyyPƮdN=Em}QR8B{DQ/-*D{ehٺ/=[ʿ}. zv-/j9 O-/3,@}}=[bXfkjjU5 ߁ڈ/:caq 9mFPjё 3ͭVU"%ց .^mܼ֞؇ f2"N"6jSzΚQ86"tHa(:#\D3֞+vaȁ&Iwp N]B0Uhݍ.4AS۩|iIR}O N @t7zble-0HpC1)w0 0HVhDyjubxY{LgL[X|!j`NSG#:zyCUulEZnO}p7wp#ɀ)X\~yt֊^(=/{A,F Q!Vx3CqDjCC"ω#ЉN2^Ň-G)iڟvvna- hlӚN`b(#9Pwƒ6*rOn|B{>M-F4FZEj}Oޣ8&cTILY=Y )m" + jyƔ皚0 x !z4 _لq C੍0e h0C}]rbBnNmaibh?fmх_3%|6C͝v,hУ"I҆N+y'o^z\PA>zT^H.Vy1Co1Z-28n[l(I{vx@Ȱ+EALǑKӆ؟[_ІYOlbQglW,h%h4m,!f@'ha30-,@3贶644XЍ +/.,5sσ:3-e|&͉E mQO~Eђ o8,{Ah/]x xudd%tAjâV^ͳ+vY^>|c\wfnÔ#}SOIN23FLJ$Sq}%Ⴣ6KP8}E _eGCz:6݂Jh©;9P`V{ڃ"'[Kݿ*˳DcIܼk.uw}%vef,4$7Vh*s=#`a˝<8yD GJ=(4 tT0@ 9J PQHg pzDCGzC=al젏|9D`-:\3n¨ /vBߟ5UצkjzNJsF:f3jM=&ght8Kœ4IȧFw3 z3!, {hy5 O΀6hchT˳a

zC_Hoط[~zIό7aoG56/\4| O! o.'+&L= O}! o.?cřC]>ṧ>ᇘ3G4<ׇ4tq>^r}DÛPixPA(4< {#~*ro~Hà +BG?AܫPُhU +BCTAU:FAPh> CT}! *~7APixPA(P> A|.@DûP> A|N@Hà +BQ! 4DQcTATg 4< h> ixPA(1P>k rЕ70~o牷/ gt~ݝG>-g~|c{/}߃|g; MHy'N>3 !|^@<!|V@@C;fw)Rg3{) 1!s)c;ǐN> !|@O:6Ǵ|jyE cZ>6Bǖ]A-oб?c{P˛+tlj1 +[ZE]cHSPAWhiC:GUY1-o*EDGUҹA-bZ~3ZU)J'RN.jyT(_JQ: rAWd];w'_:>Ӱ~+nn:gy0O=yo?}͗nnO敟`6 <h61騂h6`: `h67`: h67`:z xk07.LG IJ9.C5fs:J ͇xk0tp@4i2`674|@@4i2Ph6dAl>dr4i2?4xLnfs\=]%Ù}$s{هNnhvHy'4;Rɭ)xf1!3Ĕw1cLyR])^xfC;>!WNgvR=)Nfwr}@C;>!{.;R})nxf1!3Ĕw1cLyR-)FxfC;]?!ܴNnݏ`7ozRS8?юnsMU-pFs L/K?ǥFamRmss^8???_޴џ//dӿ/z;?S;_/|_={ } ~]w}Ͼ_}߿t~_S?w>}/ɷ'_~IõX/>:G {}? /+/O}[Wo} zW_oyw}Ʊ{ݟy}˾o7ݿqm_?m w?>O9^~?Ϋ@XVe-Xz_0ݏ5s\x. ܺ}g>|q筛~?Mޯp֥;>p~ķƎq}oڲ/}eWs7ݽiBc;h "*36z.3?`?q\9w0iS +֟ğ?O)XRp QZg)S[m6oӾ{ \~͟s=v7>xew1~LGzr?/vNkʓb75~Uݻٯ{ޟ=;luwO=?Y7MϚ>mK_i)4x:Tqg7;=~㎵{&EL|#~rd?_).mjӮ:S*K{&g"v9,8Kn=!;"uOg~L}-rśD$m^MM6uB?7UM{_]yd p^7N_7dwot۵0X8hvx2-f҇ڞ4 {ʯ姾vĂo|n o\og>}mOaߎSNعS?tCe5].ϼsŋt !Dly9N{3~dcQ)P9Uu^͂m/u51 ֬x9ZsP%X|uRO{ ~ˬ9P+qM`8 :6ĪDuPkIx#AF V^pFh2n!{ELw̍F5=4TSSs+^x`$ *vLIƪXL6dpWGS_{;ڶF&hvp"]A25P/zex[VlꚌ5SWm$$SOq5^0(TUT7tVTaAPW +m4 BUMFm5kv^i#,i eIM8í|] K#؜}ӫ6Sq Tjon?wqq[q+fSVB͖LxQP<&,4(0N0B+B [6E*ԨzeAFZ0BldEXL$,lg΋llmX +.T;/ +s`fв54Ea&ۇ$x2pl4ωCm)'*j_V:zz] +ۄ`zÀHj&sj%x-Pis5P5hVH5+ +ngX 6 $d2p!SZW4[p^aPa:R(T +F2b.Ra&c6\ؑf"4%h6EVU"XG#Qh##ߒ"`4h8/ +UXAQC} ZCc +kUt0oM,*6Mi*"1D;lK ihsVGcܔNP7daFS#Ƅ\ɨ5WH5 +=I^KpԊFa i7L$@P{[e"Z78eQ-.piןY]O JgFLRC =\HHJ ̈>?>-2JqLVt8wjTKuKWEAoِ9CiOR>һ~H'O .?YLu~kZNcmѣty BH1u㬤V:Ӆa&?JX ]> atܩVnLo eMhr#zЂ~"<^V#znKR'Omji``LaLQM‚)d!ΌyL{ }pDfJ'UzűpiLOZ{{V>w=ncorD4>}~c:X*Bi@c:Jg'^eI~htzbP"V :mo_ANtۗ0d l|!DaCV <]>ҙ! "¹1k/*<E6$bQ#iuO~07G:jխAqɎzhLAѵN"Pmͤy?4WA@ CF/Z{NW|w(+/\z+Fd?LSGcђ_}]3~cɏttRc,ѽt1jwrc:;C&g#D+ Vzr΢$ cMcG@Y42z+^Q1rtΟO0?Az_╞hnΟ]Fm/D"╞̔ω]?(obu~5[ HY]|Cg藺2nzS|ZjB +ڂVSB:7P ŪtWAa|\" U +G: d@P¼M!!۸xi6c4Q 3SVaTaraYqam +dltF4B⮅G IWG8Gt8*.nZ$P.[Zx{Z3canV4Lۊ8"a9ԇAEުH +t^gItNb?{|~KB <%B*$aa&a>@⮅Gz(넰0G Ӛ73]g#ȄU + 9C!㒠*n"QoUcY+ 4 hQKVDW[݊;aVxfD\X4BX^BڑQWjTX dZ5EAϧolVkf18Ϋa<xdz +3QUvN\vĆ +!.waw-`qFuYo0$;ð +/TJTɀɓ1nJ1DgJ6N1~Ϥ) bޞ3F{+jYԀCN4!xvO5:)qo!| 'c.2$'`@OmT*a ,tΐ՘Wbu9"aa էe 8Bx%Cmv1q"WiM%C8gF=ĽJ>rvTa`yjtJ:RG >p_v`GsыV =WkRC`s5f+U ^d^ߺYPD3+oW%3(Qcc_ +hZ>фO$Q}> +b> 9P\4:aF ++ $;z 1JG5J5,)SׯVh` (7,xmzmq ,L3Yخ + ++ S5C^ +HfP4V q o ދHKR^lURrX\fxkdV\pV&YfWI&7 }KOxĆv* _%xi]D9oDlY̡*U!_ 5e$xiDУct ++ Th1(Q8ըdd#_ki{2ZTN$٨L + 7YugZoX롬s7$ +[7՜LW &| +z*ĉ!t6B,ͨyۦ\$dT'TL$LhD3f>qͬNqNZ-| 5UA z3i5sʲ0MR ћHe%J&tzj96j_GavIJ% [%3X'9q\3ze1U0fRf;U2,) wBQKYa#b"v͐qf ^z][ћHeyJ&̢587|oHP;͜E&TY%Udݸ7{o*YJB(INh,JUgޑfde #UCDafH!/S j?ghaʄ #4^ked>+fQجT x!I Yexa3W֭ӽ(b 2P:i ++5^=z皱0//(Y/X{=Pe$`kskdeoHPIEse x*կP4n)%4ˢ7]F<^^sܽA2U0aWjEozYnwU۷֫ x*uCьDx~!!(>ž{25^x܋Xq Zv#-6T0f&.ieeQk_ac0YTB(ͨ%%4I0/A+>^ x*A0fԽL/lV: uU6KJ4#)aJ tS6[k>bI0(>e3U/S% JjͲV7㭛Ŭ6!^LJw&q#3VNbQ8YK^'%w8U 4!*QX8K^'%w(Q7Uʘ0af"%6PuRr&MiLV0RQ'?vyJ&ԢuEr [22XG!AŝsA7uRrݠYk&̤ͬ TRQDa*T'yLЊf +` &poտv +"'uݴ s?)N/Ҵv7<++}7%G3sOn=o/~j&͝m|d+Ο+Mu{| Ww7w/^=3޸c-;|@دի[v!+. j&΍G |(#l2qӰ?,ZorSN@3SO +J+E/d\'>N0a-|lΣ7|{es;i~ɅK6m?;n6藽yN~Z /ذpov g#VΕ3+O߸c2y[6,Q_W}ҀOхGQ?m05 `L(&lic|5و}=ԋNXyJKR=h˝|ɯ[vf'z?/'*9I!7^t'7_Mkáգ3]@HbmYk"UѺbg/~"8Ӳg.,ֳ͌9 ^\/N3^ +5#Wo?jAFɇCƵx( 1 u?yMzi{.!Z\PT0^SEv :I~ >a6n\a֡!gum+b+\zxY YO-̮(6%|^`?q9d՟K/?sv(nk+  ." +endstream endobj 539 0 obj <> endobj 540 0 obj <>/Filter /CCITTFaxDecode /Height 132 /ImageMask true /Subtype /Image /Width 272 /Length 645 >> +stream +& V ,XG j `4G 8d0˃ \8d2܃qZx0hppd01l4Ia^B0jl0 m 6vh}0Xm  +`f`t 0_Vh" Ka؄mC0r ' c_~c mn;A49~\|o{?zcށa>/wzpEG "֟տA8K0{~^U_o..lz"+#r1 ,281MSˌW欇G_$Oeİ(u\3!|f_]m7Oh;l<}.ˍ$ +;Dqa[OxА\Un߿ ~܃[pfO"-ȷ P"<j˄S03Vw8 vڅ<-׷|lu۾Jv -nz3"wm%},Fwv>05MUBM (PBP +endstream endobj 538 0 obj <> endobj 543 0 obj <> endobj 544 0 obj <> endobj 545 0 obj <> +stream +xTQHSQν]HQkpFѰڤpȮئʠBB_E z5K_|"_z.) +$ + +\܍/ыg30{0ѡឣp'3s֗ץ1<&͖dz+h~=QɗTnOgs{C4=Wl|.'=a9x6U͏1r3 +Vzz*y,BK@\KƖ{hXW<~%X z$UR."9XrX…dA;O ٣[eȎ ”i$.tS0Ia0(@nɾhR̚{5 =bFcjk&eiEgV4t݋1(mt;VXM-VDP0"?;N;jqRL"2\~!ܚކvM{Q}]81Z鱿 Xd=_}~xμ/o {E #n +endstream endobj 542 0 obj <> endobj 547 0 obj <> +stream +x]An0E7&dѪj{cD,b,B}g>.c]//<~_ɫ)cFNKS\ x ϯ|}voG7 xCqN|/!SI*_(4ܑjK@u0}" @ hL;B4M{Bi4 H4TLՃ)_A׶PmFGSmHoZ /a[.>\SF1 +endstream endobj 546 0 obj <> endobj 548 0 obj <> +stream +x8kxE'(1>߀ctYau{~bY$^Az&wﻟ}ΩsNW ~FC^OJVsir{FGeғ ۟brjkoJ `TD""v;i=G.^2<>@OݼN" }+h@AbԶdpNo[6g8[&·|qcThM n>ʊ݃% p5g5 pX{Mo\?aaPH!k=C& ۡDH48i+R -|WA-QW½뙈?G&!@$Gɸ8H*TAʰzRAxvodANQK5A#C {9-E[~#Po,9dB[h(G@m`9<#?Ij)dl A:]a-lͨ IRNZ+MCbT'E +]EQ@i`%|-8u I)#UdyC'R'3ŰX<ְ;z4VD[y$d96XMЁЉۋ=!'$&c$FPFr5@Z2(yki-3,BrIU꧇hoհel^ggd@Z ۄGUx_8# !Da ՆiZ֨m:NG66B6[VFV襯 ŸP88\D ${a. +' @8L>B-Ct LOz~;1DղkNjeb;*-0R  d02~a Ap.{&b&~x|nj ;$ wE@[(a#-&ײ&2,$i6=ˮ-Փ < +7',H{:Mݚ@Aw.+D!t,=$D0Y2Vj9`%ǎc|5Ĝp|$@l&! =KFdZ1$AKV]O5gF9ػ3@10)WJK&NP?>o\n3{올̌(=}dڈԔ$51!>b2EF%(0J F⵫^UȔN}هW#j1ݫȅT#K#WnFoW;ӍղǮz[;q8p&ڮF[MUrUsdn#M4aKm~bLՔ)Q*5EQj.2j| TÓ&QRuCJgTIgc_ՁuF-s<,N[/..W8ky}]>=ǃk\1>YߏVm#7zǭkµ +,pF!Wʭ7zqoRUʱ?%E>{lPSez?gJV)9~%lXL`#*zhMoyv%.|zjo$nuīI4 !8K];HK9W lo1A! &KmTHU(d_"@+6_h>GK0mPL9_6?Lv va4 JL6+dS\wOfSBh{g=%Q'(u#~S3^h +0άFSh2sB{/3~'c^̐,4#*hB&̈́%Ċnz]yyt?m,F+R]YoSnϰ*H*HKM_d{ljEQ,F%@>9H:sy9E,:IN3C-%fc1i4 FH`Lh*Nn m##jimC%U7Am]= H$z(W5jgW&I;kU~OH*݄6 Gݝqݽ9uuEyRydKɔ꟨'9_umLwIKۀNɱ:6)MRVy<′n\ӌū޷5I]hI=߾f\*r_'ȫ9BnjzRQ#==PG{]d |lα'8vpr9vpuJαfzL"q/O6Yߘ2G^.0aoq4Nʭȭ$tNAR2Gj/5H2#"W6e2@R͢j^P0]?.q(lZ0$Y2 5iID&hJ$4H63]u泮 ]A/'X ";;|A{ kO'ce^<+&FLDZK-V8ލNL-Rb)1@־ؗq7JKqb$Yl?8u35 _."o'3,|gfM-\$>v[~pi-d#˗_*yJ{C㢅>,T=|m >]Ǒ=v%/P$! ͸"J7\~k? 6qogy)\-h#r"+  [E! hyiӃVUB`x/T&o}w2lv׷r%qp^R\Fle=OY48BpfM`@bSTdX)1QkK⡡˶28p|*,* 1T)_w\ld':[:,{U[3}ٛ|;4@MPġy"}Ht _J2,}$&fRH:B} "s_2rOs@^[?%KPq]Bw]B?'LUc !b䍽Z1cwTqjؒa`AY}P߇Y_O+acM([A)2$&Y8'N̢oʼneWfcm-"lUT?rB֘5"uӬ;䕌NH[B ЇUՅEGv)CM`?Gp[̈A̓8&@o(}iVfVO~]z(_IGsPApI +sL$%i zq3o74ؓyHl̐,hq(ZNٰ4HλLuhwHxѩRבֿ~\<@ +( e]'kxWH;0:2=|NZtkEkp*@[q= ^+||ereH ILXg(S2c)t +:/^3/`P l C2@Si-K?!ig촐 aow ŀ{z/o+{.#}{n ?N^_Ax^} Tx^]xC =ХCkV-n\r3_tbEi.wh7tmh\/W N C +\*dcrRX=2g1cB}7ĺ1蹩?? ѴdFvMcO֎Z +endstream endobj 541 0 obj <> endobj 236 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Pp + +endstream endobj 234 0 obj <>>> endobj 549 0 obj <>/Filter /FlateDecode /Length 3614 >> +stream +x[[]WigSiDbnI_ZhI:X5SR[3H^_)R,}"EZ|i +P"o/V|QDZ9'gӗm}f`/w_71ƆU|d]-86XlkƘM[VkQXejiA76K4La j=3"sqQ(bΰ`6k/%Eԅ0^KJ9_S5>Ȼozhˍ˫煮{NGUM^wW}O$Sϧ=UKs'YZ|UB`ǘ ix- Aě𢖢pPY8\ Umж\8J 7V)0!wP +@4c3g!m$ގ&b"(O:o\~15D?7u:`?{GWm7XdS髩(ȗz2Y|9TjRw!HǑ؆@JC:Q$ c~W[>\oyFg}DA6ߚU԰﯉oR۾Yo'zq!9,VZ8D_,4ѤݲON\iݏ=JOⅎO}Pkk"DjmcSLS ]7v#8ihHe))TnW)KFL`]0=`Ȏ8JZYsvLB" Bҳ{I\V9gz'ќv*.ums\lQSpDB=FC:'t̥XQȼn J޽Z-C@aLy0Z +m:VMxC +p|T_8͖w84/4R"nj4"nH:!0%d}gHWxO\[m*n^ 6FRlg8xU8VVcC$d..s.s f@fXŌUVT'" 3j]PUHe3Ci,C*I[ (ݬ+@aHPV*X` {i^B-hh&,&k++9ͼPEd_5p /l 4Tl`Si"}K.y65B6Jmy |[Vm} +ڛC% %!Ȁl-Tz@`5-DljcAAh;Q&H=L5=LsLc,,JfW# [ڏE^_ %\ +"(hK7"@3̴hB~H0s ˀEƁ XHvGluk;` {uqcm7HsY7m]ڑ):12]YGBߣLw4%D]H4b=%b|<ߚNl¨$#wt#[2鰹IG8uMcLcI|\qir * +B)jX~]O~$-| ƨ*m1\ b;SD,͔/ > +>ߋ;\`rD.$:s}OFߛS]mJD`Y_(O~=/OME+Ef24?@J8̦h0Sת\LYvT\~޸`agM@ +oJ,껎Dc7gvE9W1uܱ[ ?HX!"գS/g~|8= ԕ#)D4'Pnpu@7)]$Ο2k?m|5~\KW#O+ȽIP"|9k+ˍuǐ- ߸eqSϥJtI[l9 Z(u-[mNMڡ;l4mPغI.Ote8rTyPwI|+/ąms=PPύˋs FnжaF +Sf0e bfsbG12d-޶5l^美E>#i4n|u1t.(bHh .1BJQ[AAr-SLغĚgu.Ljҍޕ8rA\QTw{5KIsv?| NNAy;\fQ@"Q>mfsWQqt6%}]lغ<6(uG#;Fo|lZHk9>֗0'k'鄟So/$$kB>OІXT"C\bf8tjGQIFkwQDVG9 wB麹oϬqQsVKO0&zI'`^ [DQzhZ5gAB/B1iKC0c,\l֋E,v]ј&BZ-6Qq[\ +<#Ѽ\`5bI>ql &EC_c{-̮3P\&g!#emf)ц^DAԩBFSvo/iiÌmb^[ NH4@SloF @JGuM8&%TWE6*S$`Ě<}-:@qJpЋV[OʍzhE> endobj 232 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*45Wp + +endstream endobj 230 0 obj <>>> endobj 551 0 obj <>/Filter /FlateDecode /Length 6150 >> +stream +x]K%Y{ȃ_gd'9ǓS ĞYX6^  3'BY@$"+6"*B.4b , bĊ BH,>s(37_qkڛ~oٷߗqƭīϤhuqv}!lߞI/f޸F[syx.?S?MQ8 .v_m,L-RB6jS)aUOu0䅅lrz5&?~cΕ?~ +㡟Z aۍ1cD@?Gm+ VHmlr$bX_"9! =(uHHR?RǭV5Sy'=$`< 0 epqo F0XbM2]P%mKZ~w]*GJ5~ D"h| iLLPZ|d0k>e7 tR(wyU&*)Q۬HQu16M~,"vL Lgqt#PN&Y(;p80,X:p6t 86`zW~_^@̣~<\p;.*l{pBV7U,=YYɶ^ʸtb0nx hX Mɘ^^o0FƄ8Ȕ,FP TWu +FE'Hw%4" L& +$1Wj>:zN`')w+R^&5Oʥ\'Fj򐬄$zHKdajMmYf{P"vؐF}jy%RH#kkh若8,$9lɞWMRLMk:p\ϯ8W"DtUDTYaϸ$ԂsNyKܴϸ=LbZCڶ²2rfJ4]^dݿ>7/E dgw0k(Q5 Wcx֏ r2Es(L ۤ1!w +E\ykmbcjumD)/`j^z-6HLgx]*[H˸D|'IX}$[E2 aAl>&eps8Xw0R' +R*c̐^@nq9c9b蜺5,Bo7M"AI=^k!ğIąz"gn6p+BcLPt,OذqmChkֹ4ؖ2) R)O亳kשxSۜ"iNۚԝPnMm1xf74>jv6Lkvl]ٙ@njTKLYuOB2p1ך]m+2j m6!4.Lkw[0e.|_჆˜e RlW5&JV1xzdo7:CF4 fm4^b[RVʺJ"؏x C/SGcFքb|D+~| o&!s3ƫ#Ԙ6tRńn-eE NyMvJS|R"ev^ɐQlDN00ރLs-L +rJ0Z4`tLyldȋ~o +tXNC*:HOy])`3MvojDʵ]3N2-O9ԍ +y EÙ& YC| \ }?q=,EjXޱ%w\o#[3Grs Qz2=zW+/ ̊ƯLV6~1llirEw5~u+M?~,JAJH'fN +vz:4QnOQfڙ\T[r֕5`ۼWL(}+ r8-^6xF21f\i-m .$Y^ "\: F) C̱z삑KaZ'VB5xMQ$HkDXX!RE='Tk#< +ݖs,%{Ru72bYN{lj0:+j8ZKk=q֎?a\/T4NO)ZiSiQi9A;cil b3J{TQ|okF4_ݦჅ0X4;)bD?4'J?K=A8UWņ;Bf5;@_ܩ΃.ܶ[Rr]jfmJ%}h|v% ;L-&@F>1e3[{ ¨b& y1fZUaxnRQssR/?-n6ܓsԲuZ¯K]yyM]$qL¨Z+E_xgmNkD 0uG5H[F:+Xms29੩Cͦ hSI״)WjU&?<&i5 4b=m®z)q +%L;2rwW$\\mo{6.DlU:B3z ㌞Q'yU#Ol1$Z f`,6{ k읕}N2AFnSNb1@}wLFYnZy*u=i6iԵI- .7ۗ[ܔ^5&,а]Y;g[CI> +2:O4Fg7ҩUL+ y\L 7R +x׏d9v;,tzN[LJ&aVs%Nh23_B=dxGozd,*.}Z0DGKLJ +'=+-Zp +ǩ2%SYXV ٴF3RBsf *z[rH< .Cyctt j떩i`Y@|22C1RzeY°rQ9_r'l(76j܀[=,:26zѓv~}H\czBʘtk蹇wVt=hntwRז?bYh]:֮Ϸ:; +y6*uA jƚf 3+ÎxC4kƬKLv^TcX⽭V]ݘ.O4jA֕?)*lv%ˑJّ M`*c,Y,"t,i)w܀7+t@QY^k Ԋq[ Bxv=T3tc6tQoM̹[>\MݳG1ŵIˀl* 3Z#jˁd3qXO-)sox&3m ȓ(c +xVOgV$Rz|ea= &rƬG{ \!,/3," \ɄtzMc^xp35s<"Oً(o+UŐZE1N-baYҰ +Xn*E:73*նs=[~0͸.]ڌ |0ȍDuƳ2_8q[I"4F$C%J2&o˥rφf,š-7:ҶɰޞOt]O]EoX H +endstream endobj 552 0 obj <> endobj 228 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*45Sp + +endstream endobj 226 0 obj <>>> endobj 553 0 obj <>/Filter /FlateDecode /Length 4156 >> +stream +x[[N̉fMb҉Q/Q$D iVHVKJ)> P"*^P>}Z>A(Z{mvdpmqx`:|`! FkIÈv>]^vaFBWS8>h9ޔYϭǪvk)"X|m>-<ێp +)yUwOqsjk%T $534+t8ة@HֽKih%2'qUn~+٫uNSoan` ++mXBh,1.@%7)#i9M[((W`f%r1܌l@F&L^o 7.&! k3_3o9'3Ƌwwg2`!/y7 C**Q ;]`L/@o |0v#&.P/Чơn*paYq8[_H1vzC \;8*`Š.YȹvsZ(+vyn?/dr_qJu!H$ ~ +jt9NNb}<@)q]|9&SDǮcD=gƉ.Gx'}Q@NI* +݅kyI\s \VH$t;w~r3'g? bUA:ޙ2A7,LW{l1R)Bf@L5qR̎x|7Qn۲p$iҚy;4mUйIZ@UnUxee8QJ:? .`Xv SY +ABB=BT%Y(퍀 p߱_AnpXjCy02ÖF8Ltv+xjXcڌN}G0 &a]|sx1TKl/FawejUuVfC@xK!y\ӷXmyiESO^罀pcr 3q|.Lɰ8&FHԄ6 +x^:Tjx]ii; BR(X+7;^`!hF 7z␟JƃWiN(nD=y'C56 [>Z@㉾FJJksyR^ԋjO_Kzj0Q9L6;4>΢O5 ^y4Pav8YgȧGDUֈK5iS~9y`]~w|,ѯr],n4![{7Alp};?˒xO֜}~Ђ;Zɧ/QA%!ݸ"pڏUMyW8ɘ9;KiF1qyx61ˌnGxIx}ny~1ެq9A d~]X +Iy bLwQ'=qwCI)z7.hc,ɆQ_A? +|'C0OKxK@,$>FІ0j CtBAU*ŕ4DHl<١V* XfwQFJ{|>'9~t +4)mNXa!W5 ESSz|!~J_sja>D!jI +HD>rQ0㇪}>s-ܧ`FtE`!h͙¶Lw&RYVP=PIFᎪX%-hEܨB;!"`#3$+sӜxհ\B IJ]$sVi/ftZIŠ-pS#/Zkgs%tkod~ +5.nEF1FX-nD@lw)PaXhYdY xfQ!DH T&lLGM--ȳqZ‰DL5kY5qH?9TS|՜m\HS? \jYTV21B @5`P, !CmĚ=;L]J oZ)Cw۵WjZ"H}^mo7`בL +X4 +2L}LG5oxbcژI/4ƈ| (n2F4p( 2KG|[dCeCtBLsgY3+gsÄӧܑn];!02wW%߱+)e +T!'$0~a-DJ2NSֵ" Wrq KL7@ : @N/wa8Wd7J 2K17?Ue]ckCMvA٦ W5 r*P.^cgpPx: 6ac8B>ֱXX7'xNdm3ȐqXQ+c܊p5i 3 +]R(@4%Px (5~ }FA3Ɠ(!OhzĽc\Jdl|vh}` RfIq(o^/qt)ϏN3e-?Xr(1Q5z?D]D#Sx_%759e,h\9ss:3E$iZj`UX5$K=l񘜸k8*iEj Jxo;Pj6><4VIiSjjg#N 63NM;Tf G#3ډmB6jֲ0f7PzT=E!\o(LlҷqjF2P]lc^`{ĝyT'-JAHi8;K(upX)*l %Pp)n>F8/!d +endstream endobj 554 0 obj <> endobj 555 0 obj <> endobj 557 0 obj <> +stream +x]1 E{N T4qhLcL&B`>)3ݿdM=8H* ΰKF¿hj]MP=ůSy!!ZsVbpI20:ˎعđT~{r# {`#sZcww>h|] +endstream endobj 556 0 obj <> endobj 558 0 obj <> +stream +xTMlE~$co7];qH]B nD*!*(V6)51% A + UpT)lTsȁBp!Qfט~ f|y3;@@anva8 V:X)Umݱ@ +ϯA_C×(S[E3wμpΣ˥O/| Ѹo [71ר߷\Y[o?ufudeIWJU]$4O*妿WW]uIeճ+WBQ! Qr03V^[PHC\qz|5zLUuj`'QhѴ:m|15vxN˥%OX#NkjBqNJ#-X ó8c:9GT&犏B􈦩S͹qtV8l,b`-na^̏^fikuXvY0M:3R7p8QxtBpCBB A  ();? sy"6Â4e$1.B"23n I7$ k~Λd`:RdOP)-y.(z[vI!)$Gy\K`@by,+NgPB320z=0]F"Ql v~b~ V3@ޅ2q>R#=w텯5٢ܫ~{ĎAsr}w^s)7nu2ۦ󷷘=SٷG։ܭ}XccQX0hyVi blh@ E:P`7cْ5R;MjW0 [~.(*\ 9\9l_?}'\M6^} 8~%_% +endstream endobj 224 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*45Up + +endstream endobj 222 0 obj <>>> endobj 559 0 obj <>/Filter /FlateDecode /Length 16540 >> +stream +x}]ou\7Uv|=r\߿JFI]Y&JA7"%1RPJy<<"!^@/  BTOsf5k})] +/^_~]o]|BsΧxK_Jq4ˇ߼G!ח裹|A>~|=|KBP8S5 tkOΑrUGR?1hy֣Oz%p͛+!t/]=GgQ›h;>| @^z`9e]Iu& 흗 yz|u@@իS_BO;3:* 3pՃxJ{xzKǿ;KҚ}}i~受_}/w7bij L! K.WFLy6GWՠetR{=ÔÚ 0. 6jo/?ڋVS^G _[M=o\|ьʣo}E k\_>Q#PtMiyqiz_ ߦ`^}H:aQ;-c;aGVNC"QȽ0FI0ڋkQ?jp 2`/DQbga!:Oe`Anq t@xXۡF^'k +p ~\EP` PMD@̸ +5%\id<RI:.QmqE.d$R(iyt(. Ao0۱#0\\"ݳEc ݤU<9jU6E`8| ,oNfPr?Q9--)5L mԾgyqnfx)M)@_iԻq' TQq@t#xa94!Z"?ab40΢c(>""=8ʀ# S-R13?WBȑ L +Kq 2K4Jwvz88hkG5@1>0YC#(f i7-N7yq 'vp܁#a8B]9=V#a90Hi0m ? 8 (kPO GYOyBEyPڍG;Jq W<ռ$Y +q~A`<,+P2yR,Do<?p@ϢȐKy"TÜb pxAM < +@<NY"z,qItPOt7 $ODj"8XbGC5ID%%P6HQV,x/!TPԹLt"1x>bxyC-::щ` *LG%SfTPCpEwTTܙ gܦbQрӓ"ZO6mɳq2xTLk tm%5]=ˋq&4/#Vk/#VTNPوIt7˻aڀщe[GdώXʹN(V,Qi_Qb6As28Ŋ8L+x?mRc&mRYXmXBa Ӽ8%Ap@3=#G KPjmXcGmR5rpl#X;8:(G)bcvDuP'jc:(;Aq܈ŽuP 8X)ÎuXYk nXE٣'jc:(μhÎu 8`΢XEqӖSuPgy:(<ۿ[$8\"c1&g^M"IWs8.'^M8pc&qEsMñՄ~0: Cڧ/%5!ӳD >tJc$ uL9E9 uOJjJNT< u8vC[!R <8 +Ԁrd7MR eeʎQ`yӚ[SP1R8T jivAA8%ɠc~d°^d0=8%Չn^)N.ODq؞)N)=bu(1LHn +0)~h8K:SQ#8)?Î8)]ÙQQgGPrb:bFQ9Da(yb"GqŽ8ű#GL(9b"GpjKLk%GP?S8+=18+=1#8j'&Ǎ({D~a\iYk ~⬵7GPj5Gp?Sg^OaNnEa8?Î[pf gvN5_Y#85Gp?S g"p!?i_πI3$DH?#3tV?^FA *c(+g5޵2׻F6TVQ'[aHH%9`04HsiFrdE.-׭o\|~ j\/-$iu< a98+L>+ V-cȧDa^ (6|x"" 8\;&4a#8`/  8zc$\PCȠܳ&ƀ# AGY@p,\Q~09BG8= G^W9(e;1Z<3#_YId?ʠ%,8,,x"7 8hg|&q`A%ϖG%19[1W7]L⠚p=ID?[n^MDZ-ZbR0GZ_ty&BLEj!JaHZ!3L{:Xq{lf]ttW +H1NP1R3 BEHO[\ĝmNXV<݃U)m/>CHm b᜷ѾBj?&b9%b85y̢)g*㮧R53u4;`Ҁ#ٙG|D(0&qD=(fQRR=typRF9(gj'bBpPT€7BYԢ'G)J[%8 :Dq`cl8O|Cl'LAKnEF8`rCHp- " jrsܨ%dðitۼ|o:pspVlN9Xxg pe|>}$㦶/Dl"Zws6) YV{db5y< kN=i@Èp +|vx6 +nYoJUowB۶F +5m3M]rTa3p"TNN!(`2~p_4W!Q4c=7%?|̾ (&iGE3?Ff#8Mi8 Gs4c|Nj8!8-7%ᨰ i )(+ wG b Pf<ԡyBđ'6uBvF0LᫌhLiQ@v vƀwƀ#( 姿JGZBqvh Պ#-# kP&WqE8d(LC=I(=zB'bD51]{8QOĈjbĨ'b@51B \qR$wOlp<x@4[x<7iጚ"zTUg"Kx$89tYa1. ר"=Fϑp[jJUCiED0=!Ј;R}}TrmI*%0T@:l; +eiw +`r+mMj`j>1tL[8NdH҄T"=و!Z1‡rJŤnG7ݰA_3M0i%kԶW̬څGVG{ s_( ԎV܊f_SIJ.02ڞ +VǯlWf!acV㮬ƙJd4$HL7xTʁ4p^%]3줅 $kcb[|c̈|sK#ؚ cFýc^4ꖝ6%%oGoZYm%׈Y ŰE 1ʠz!7+gV= +530"YL8Ӹ3BKz7 ZQ [uk"A!f1☞xIU R^ށE)ZٙBƩZڰMj7 rL/8&6nF֥T7*TO$:D%&hoSz&NYmtC*Lw7Qx{U?uvwW'鷳r4YJ/no0GlьrF9 IjQO^լH݈PR)ׁWj-]L[aXHtݚHve&,}/𽼄 +Bz?g 2ُc]rg +F 0& 9Qj]RFwLu+cF9ɵ0`JDC\ &L¨~#cIA*D.0") 2+b$2VHz;2]w[l~Ŗ L<#Uϙxڰ3hyw73<,<+77` +&.'cRb(ù1%w`8Ֆex_4Q5u:[a-:|.ld' +/ |knM$&ބ&c'g1'K9!pr%tM'N|N |?oR .}M`*(!Mu t% d rU:R*n32 Z.92 .NY L5xfr:ֵӧ9[Asl #'Ə6';4SO˶^\цS&q˾xmcN7g7\G7Tu`gf r,p&'8_My7aLT/JtL^\J7 A1.&P.Q\LWLDasA1i \.Ohn*-aμaXg׷n+]~MJbz IߠY^YW=rWMygyq-=o&!~.ijbI̧D(:o9-jJN ?;50H`:ڴwØ|.Z_ʃh!qa3 9zb4p҆$}țׯHs&+;ϚP,kI  +ddʳw[Q )a40b +1arLGN3H w=/A]E1 EvBRY @0#,(]<zR]Y }2HaAJbG6aAFp" qAbk9#˭llV`G<:pX"*dz3LBf5l]5hf38>ph̥N ;cT}N{;AbG7\EMM"= wWf:v:' Y' FQlux)^[q?=d)jV:8} TɷAV.ju xH^f>W6{%6tEbH}$`+$dd"@d6t(lO^ì$|6t(_G#ٖw2&G;6t&d aFz٦{^B!PcWi3*Ts}R&k@ՈD!iOw(Jac{@ίtZ?AfᙶY2!0,!#UWEb|oZm=Axu6x 錭H-.-"Φ}Ǥq%ҍʸdd4&.fl1+SV7z:abӥqiP=;o8,o8)\Zkiz,͸ s`v-_۟@6f}qYt:&? B*܂/Lux$US2UCO(V L(4B3J#j jwTd"{|;EƨY!:Ύ;EFzLbвJ4g 00q6oW&_EJm lB9<,&~rx7%T3_%jnA-AJ)r2e@ANQw@b?p IH({ әׯFK)x̰ V.^⺩(t@&l@2b@6rT0FnЄ˜XnqT +$øq_~9Fr jbJ졼[ 7|M4VǛgZIcї 2vz9?JЄIvԄU!V^#@=0gvl O0DQCjdL-@a< /|At=3td/u p#x^LaĬ(6k@`,!8"⨴SLV13w˚g.7w?wc]ڑ{Ɛ$]iVWh#Bx,ի:B +fJO(#o13oXg]aO S`g64۹\} [KsOA7Q3>nDpi3IH͑?sjqޑ7s$nXXq0cnn--]y.2~XFqW룳HݕLxfi`պtTn }OG_Ȁ+X22H&UO +,d / 2? Ǖt=Uaz!QB2 +@:<"1X2gM}?C ,/ oN:"ߩ:4txٚ[cZZq4;IHq +<CŬFxvth2CJW5Jb &j{TH+"&J<7ۣ @x{xEXՀ}ma/@)P= vn}2bXhESG$@1!vf}1 + `g7 iz$2;~bf<3|- ,Iժ::s|테BxbYkBʥf +B y-tFoRN߃f7q2i2ʕcR$hʡ仳FI7@JEvR5sz ȱs 5wz (11;:kl? ҝJL^n'%.aSLF|?7\:I܍wZIUE̋_o5i@EE#@0Np2dE< lZ (+IE< T>E$;]j5'|%Yr8(Y EQQ@–$-t,Q%AVxN4fv +)v +}P*)X%4y;=di{t)hd=2 ɱd)hdP-L,n"NBkVd2(#={ ?ATs 5 dm H TwnM,϶mH{m7 H{T  ђMaoM ~tڛki@F +vuԡ̅В >:ng%v`:۠LM +z# [Ē/M-v ^=̷l(݉sZH(ٍ2ā"dT1Db*~^*qxotf +9dT]!F:""ə];rgklF +lݥ˯m䓻 gnȁ7M̯iܘ[Px[4,U*3j1ѫRrL]ު'a{ =DLW(X,,"d2!R?r& wʰ\[1jl?dMaTf`X< t @耆39xD"UF.s +%Oug2[ʎ],InnM$eg,;b;c3iyK34yn'L. <s@5ۺR9P.> n.t( R^M%@Ba.jӝh*ozBTHà'ݡ8v,ѕc^2Ż#25STrkn 9lʍurcY1Dϓ?#7qsb#v| ̦9+ջo|Sig +I:1+ 2U:]`]FjO=58JNc%\i&MKF6!fmM雘- ++I(( t5r)M0ى;ˇH[SrmqM)  +?2gTP!ѭO0(|>3^ez`5XZdXRڀ&mq( ;6ׯt5L h-E91~wS5J,;t%9zbr>'oMp+d:3jb2xgJz'g \X`پ0jq+KTI̦MSIS۰Xdz7MsK(K( +]dlO3E~"{nj |)q=U,SgM_W^'DY%]uO,].bN7V[)iκi{^XuEHy:ژ:C z]D~W=we.x)O= tA+k G!$vC\tC @ٗ?seJn.ZB>C8{ CF\BN\4]&L"AK^Mgn $%>[Z +}/ކ5!L@d"Y<'.ZasP(S@h(ab1@ iH |FIm9Y.(ܐr +Z^ߺ|MET@5d&Tf!]jUHa,j\?StRS71Wm+9YvY| +$cY;\jq4y;+R|O5)""fw,@NDs@n@mzv "pL;7p{S(pM +h}7VP)`\!(rE:9)'^,gQ [CJjWp zÏ+5?)퉕?d_ $H8t*Jir_3!D:O3S3G#gx$hdvA,>h;GsA>KW:,(+ O[d<̓U~_7K^{/b@/y4zPN{%~[Ow-(:Ek_i87n6|=7|=wްЙČ`1G:,*XE@i:H/Cl{X\q-u@1n%R><{O}?Y}5ms"|"vS;g=葯QD<lˋlƑ9)s]y' +4Ό5&s0 2HE/4J+7$u :Ϟ7/-\X4qfnAHYV-Ȧ+4ko֟-~__?I^$3~y|ߴ΃: >l`Gn,n#$oԭ< +nԝ_GGAQN}Ci`Ӡ ɤYDΫ. W@CTRHh ?hA?{qYiso^#VJ9Ɓ/iYA:O/~=h Qq!Ng$_ZJhog S.3mdd||PRM@[~CP^|5og~_9ԛسg74˴};_ #Qd֗W}?k?}J(~~29CeH<;?0?.|إh׊QU!f^k~_mmW G J.t?aB6Oۻ&ݧ_hAPQ.#.ķo 0gнZkaah@Pf,264;Sd.ST3dAE?vvpg#﹕?0t[Qg g.$^jSWm{{\n{%%3ʢ3xc="Q)yj"]O$ׅwoNy]~-+ N]Gc'vIg y~ +ؕĹ!;;*(ikie4iMvd^8C{z6~⿗ye.]I6`k X .TZbm 6PO6:9Bie!D@W!|oߦ0q`0E\|Ք}yiѹ8iCڪ+#Ŝ~b-F0l ؊Mi"+fh&$&g׀pSMQyI698גZ5n>q5BWhDsq[V[qS<0ϘvDާZдB&Y(T>Oin_gVS*֣nB91OwO߽mOZT>7SAHg 1NJN,.5悹R +endstream endobj 220 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*45Qp + +endstream endobj 218 0 obj <>>> endobj 560 0 obj <>/Filter /FlateDecode /Length 58481 >> +stream +x˯o[v@9)"L9Nb89|?`JX{FS.KGi )m@|koCs7]o=1J{osym7yѵ3J}Gaz-o?kY7Ϳ$}@:eh{o[ͧ_73n'nj7׺|߿OEhik 竨v~RG~cq/?G}ܯGj,ݟ,/[{3[EjٸhMֿߗ\L3#?ySMM 7߿>쿿5b_쿲?BLB=.S<\-{K_GI^[|sTsg9V?Vn Ǵ2-!]D>_׿G|m }_[=@,}Կ> +C#r/G˗~*wo>_yx_!3s~?G?߼͉#bgS +HS`o#Od=l۟E?TTo3|¬w(?u=^AkA+o e5z(y?W+$W4IuW|7>BLu?v?T+!a;;= k=o]kJdz'ԔQuҬJG"Wo4]zUi+h;rJKsDT +4osj#vq+׫f:J{z=nj*z%򪿐=oĵǟ`oO:uk?!70ӼH;iq*#X؟*E +} LJSozyv_yt{|1Nלv;c]#V=ꑮx^}O۟~-5jf*Vǫ<㊴]BY'9Heoi[d,xV+K.:ʔQF.ж#̸}r9ho\er|N&bPĠV7yPDTǡ젪ӉDp7A <P/H h0:`ϣ\%p׭N'(Rg?tWiӹ21 /War䚪:4JXO> 0}Al A׸ &dK3 hLu$fD|Naƶֆ6v:R8YEYl ":w7ZqYyc0RԴcV06 G;RHata|?"Q緐|:y i5:Zu :z\t'E'j@|AH +&eijh:NǍP[4wAXqHFBK@"TV Ǔ詂]J:q%m,mVBXUSCJ͸9*3<)Q 6{RQLŢ 4bR͖tBR`&XgA,;B A)?0 ;W+& +:v~2wĦ[ < +rʒÉ%RR 6WAL-Ĵg yGi4J͚fD&'CL#Ĵ9p58 +?}D:JĴCLP:.*ĴY!+4eDSĪ:H wĠF 3i +~N#lx#(:@ciJ`w:7zoB-H Rh `_CưCX[ƛpkxAid(3V­!Y)ƍ,pܭbap>#(Wvma[9ak2l `3l i#ڃ5g:EY^g,+G>U - +rNw xQ3d'SכJXf[AE"Ѳ]M  x~~,%+B:+m)nҗKɗ=6sz +Uǎں^Ձ fh[gtdذ^zTF 5󀥳=8|{OK3 @(ؖCЦ'2B$@aq@eY(˄ gf8NeQG&AlyF ~jjSpTYc]9 _ NXkvUj%LJCO$JLՂ`I;xy.!!Ok/0`1& ~ ʵgX3ڦEbCh Hv ;utm} ~:Iz|FғyC,{&,}m4:6[\p\F5Lԛ(5`5gcBqNh2i:3^-A`c¨'WM7 TVyW(lS .3`>la,^q ?W!igifDi*be5znNس׽=jz=3Tvx3zpth{\ء; @Vf.{I(V ֏5s Ec Ba6iga:Hsmq/+H^LJ 5ZPx&3@l#}{X%'Q[bA7^}#;8)X@zXaƉaL3T 곏rd)XlxT)r5O{lKiVn_=D;Hm}p,Τ`?1ʔu:Fص@>~a Jg-4ԅzCհc!}u(LgRIa갅 dݮ +*]uj tYpp\`FRu@:`H?kZRG(xVFHЋc(߫ՠZu ^zA5.~qVz^BPVj~@#;L(3XAqz&nv#Zbg ª?pͣnCu:by$ _3 5PÌ*ZmZPFdxMH#<-g/8~2X+.`R^pk Aw7lRر-a;pT&/xt#_!%c=M hA-v}6L`*w'_^VPol% $X" +2ZQOֱ63J JE@ +`8#a#89Y;4E&—ײW"?KA g4f` +ag:b\}C6:6W-cP#W yRam:ƀq#8 4#pdͰ+p)wףc\/nա3dzS*'6L`qP}`` fZ?c6w#UK}Œ:y5WȰ<2| f; '\Oy6:+"5 f5f16ݢψg@8y5܉r=Y O.ocX`j+"Do Dcy.X8Q\LEhoB>xӁm\;#X;hVZq}"PQ x 'd]P gݲ'? f0rW vҒ' 44ҩc\/bX6AҮ/L@ +[fEJ2W@؝ ^~*]Uu*킚 +RDh4 s70>ZM-BCST>Zp]r;@5+hkipu䴼̛TU`'fy@͔JSфpcl@{UhiL)a 膆Vj735Š,zfuSY{\/ Fg +ͩɫ(SYsbQcGDpΤ?x=m{z*SO K@y:+ 0ä7a2f qWk +ìlueE歵s&AxU2/1<3><eq%DV&VK."+Ϻ"]ϭRӔ+V&Y|ӤGzsIJ܈gH'R8ƈLAmWnec0T0nhӟ<00a2y&LJ4df% + f% 3HWj+F8K9Bus$C<EYIqљMS_ڙT&i*XíSJ( +C;z~>? P۰i6]//vi-S2;"zn`eM3Klpl[0+[aǶjfDn(64I;,*]=@A dI +#<+w5(s8 Lj~~ ]@U0ؖaB_YQ 5\ʉY|9̚>]s#.v>`Wsᓼj4Ne>bB̍ vzw<5m;tp[Վtgm FmF:T(fX8sMDȑ^.aP8W,P[Sڵ nDӨ5am>괥Das2iaF:d ؅B_ضuLSȑ,^e31M˚qV]Wd8MA z36qd׀..b[Q#ك De)1U~1&LLbGay睽a8/g @3:_ 7+/r^A րhN4 mN<:U%y':p2 /yʟ3jSUq^~[/S!n^ +oE.:R\[GBr@4.U~镌{ٌmL︜~pK0Yb!P` ha?bW 3r:cZѾz.`{Œ, b6ML, 6yp3jA KLROr5!k5`Td< x>ff"jqlƂm,x6dԡQX޶`LaY`5-`Y$r0Y`A\98hSn.wj &R8ɫ[֎D`8Q(@ '`hkҜer ] ,`, mZ$ҌNv3\xz,<%XƪرÌDQH /ܭQeRV#l8@y%`A1NH]nM[S5capk֓=tk!`A T 5@f fl+gt'բNkG]6P5WFnj'oUBuf͙NQVƭ)~Mh,M!;ކBt5vԭO^؆ P,7w`[IR$ +M| ij V0_ZSx` cMFtU,k%<զ@I+ X.fIdIp][#Kn)a1dͬ4./$ +YSWrnNu_§/mBv) RsNnuͫ&WeB[x5H! m FfVc08g4sMD +ًJ0('?׻̪utC[$!4όN'aqf 30(؅B_\jS +Y.y`qr޸+LVNGT@*XL0Zカ mF2@-bxSAsy=#ء6&8#ԟr`okhR"-A@r<-ԃKPf Đ3X*u8Ejq:%J`E& AF3l􁅑4B)Sk| +-}5xvE:JF- X򘒅fh Dz_tECP ;ɤ_ʸI\qb0IfwW@VGur5L|Yr5?f>픍:zavP63=Sh ,Y 9o|iۉ޶`LaY`5 +j YpjhoJ W2“elwrlrWGju^yӬhL/8/uZA[8dWO>˚3G^:ͳAܠ豇5B_GQ3RU͏b[1PH!Qچ]$Q8pF=j#d*q"K!TqjGB#_Do55NAL&j% ÄKYSOi`#f ::XppQa)؟(PV#}* FPC i?*.(Gi>h=nFxM7lk8WH%U#n3nέ΢/7*1DC- }|=6Jb@se1ӊ@t1+%it*Iˠٙa@F:D3s5^B ,[%)9!d yL zەFgPʃ@Үg1 Mf\V@clPoHrFF_}v5uٝEKԬv?P(wftrWKsAtߜpGI%C]3cbG[D_59ް{ V:+M]s;%@1 Vm+v :=Թغ#΋ZXN &_tu@"\d75~.tJ(BN鮠L,=,&.ˠk~.n4}ϧ+RBasD|W?R=r 4/a3WVD6@oj"Y cmWİb[=NRA.ݶ]ǜu*> 'QAH+N o'/.U{ p;Uб}:B +炻VqtMP.y*]. +ֻSy!nabw*ۨ$/N .}{^qf;w`'hSLrktjziÿ<,ĪZh5x`4u܀h4;WJZ +FMK`4-i)MKh V;٭ipöb@-Πס?IH-eS]TLrs"i~ xi^#С֗t$ڛ,s*NppF6xlt왺[+nA?^Wf ՜ ?˛F%M9wڮ8n<~r:oS_tW9MkZt|[ֳo+[ +[ncρf/6yջu>f}X/kK4{X:|lN46+̴n5xvk%AbaZs"Z_;laЪZqx:UO3 +N RrK2U`WAxX0,f'ZVb8W#@Z*#u̅56CR8<a'ZT/V3wr~f@z^3/ft"?Ho +2V!uНW/(uW{P]vffX"r=@Y턷6[, >,xĂ gS=alBbmĂIJ58YpWSJddm~t3}u@P Jݾ:BzƪGS}!p|ClwU*eEl*eg{W3=eoRvv2(;-JٮV>DقjԩH&:ʰ +Oڙ220gX|XZVʰVTʰVWΰfKnԓaɁrֺ^ kӫ?`w7"(4㟏:,@stC +afzsĀ6yآmNŒ:3:;#?+ЦSűDxCԧd +%UEVbuͥInEº{ ND=NKzf_)$86~HYGik"ӆ 0n@2 +"HG%49Ky֠yAXuܨlWU;4ɠ]z=s3pѠ-)Jk-(a6%(GA3*i7~κ! u3+;Qj]&:TŲvRaa9!Ҍ:NHLkт0O.JS-g./YͯTWx1}W}m?*>s髭p7_{~ =)#8G> +[> ?_>?{}B>/T* $Lx oeTw<%m;t6FhE~m F7!}Ɔ'"N#C!gIHD8`A9 oj;H4b{ +:;mk8 +>KZZ4vT>RhF纡D* +x60}'wgn,~ۄ} MQ D(Na +uQiÌyՄi:U=W/m@CX$Ӄr]zOG]&I/AY;Dv{kؖMDfu(>̹ +(Pfܾ)$geX`h0clHT>LYm8jБPQmAKs\q?LL)ku剀Bb{et hyhcڜzġ8QhMU` J(Qg>cs٘F3]n +`>cZ:8 ţ\WL +HyH&X, { y5XzbdDHtFidѲt*i;mk8 mNJ uCTX(g>B + I?m7nձ{P|2BI:, XϚ 'I.ۊ }`YX SU=$`T\tNxmsPݑdTw\'tCr6."d.aƍtpC[@" rзNH^9Sg +.X!)P Ia!4%M9T3jVQgpf:DV(G'hK[:u,ǂ|P *`Ѳ?t*5h34PD]Pf +x` (G +3׼dr<;Sq<+z_H~lH`Ie7\4yg$VHQ&Aۆ36џe<52. `ql6`! 0*?ZI";&I"r\ CUjE~A7d@vlcU4/T`&QYV)y-|3J"$gd'#J}C2ڗx {Hx`J"Vr J.XEQNԿ+~L4] 3LtL-K3fX= IqA[+00cQ!\ gIJt6z,+%fvD}ڄɫjsgZQm{պGRNc/@/۴t4ȑ-(`'r䤟.L7` +o ^Pt\hkŒW )и7rVz B.Lڟ`b!1ЁQjC+Y-Tra qGV۞`Q{g;(PV GؖG ll +:="=d>H>`YQu`CJoK0NV=$"ȡ]dΆ *f,mV-υ4 8ix*-dRlZ'aت3Jy*@GvbGe4H=$m eVls ks @r*BU?m#@mdY<|T`jC`9|g"d("xφ6" %;I +0cpgN(רjk(~ 2SyB vlرDlGV){'$Y& z4F;;Т44Mj-hSh-^L|anj v+lav3KVUX3v+#9h.3}nυ}Aޜ+Ps/.PPo+Yt2tYWnCSg^K]C4x S]0 Ht8P(4C l[/\5OTm*Fpaޙ!8,QY\ر "%e`g`KaVCF}W^S\Ei[^ (}}X %v4$Mɴh2 Wkf2 '58x~eӼNKY܍ n5G6x+3KîA+%m9ڝ2I0}1sXti +-+e +^M+zQQi|N Dc6ﭭ!va~+%邅K8 BTe";pzfKh0>kFq>BG]$+ZI1$V/| ЙHDwdj# +t$ܨ^A7nT/QX.GLY@)E)Z*`Kf1j.j@ +)lZ H^X-QV :/ 72gdr +a[Q TʟTT2*UѸ.PNF}@} ߠ35.wEg2`.*m;]O[3M/+oZ\;:t{[=+2vf/ ^PPPt4 pW-8ܠsbsRzP_t)2a̪u*Y#w"9VY@1`ϔX:mͦ +ٛ)Peqa*qvT{պkj +noK+75hKF蚦%-N`eYb7o:s&X]F[ d=odZEc)NL"wyS_ 4Q=2t '8rY?TKg6 b?hq[_DU3yCDzX9 .P@ԁXlFZ zJʴ3Y>RyOV A0؏ƷNk6d#BZ$yplE)wz`s⺅[A x\ 0 _1x\"FD#=g%flC^?H&9VXi(X<$Kze˛e?eeh~p kz,lP~@@$xlzeN1k]#_$qD`Vcpx2fح3vxX:D89尮] FAIVoawDFJhl`D4OȃL㡃Lmj;i 8mYNrLT;żd0(|ۄw +' ϱ@Lcybb-N>iG.7^6;ȎnScw `iEvBޗ?2J> ;Zư()7dRr U@xW0͓xwb[=$wFIBށ7z_=}iw$yC^ӟ[@ <ɾhCĠ*յ@29uD8՘#)+zcOΝn۹_֮ul[C\wjvB }ϹB)!0PuŲɨa36H.!ߵa'L Eg FZT:JA +8kJ$70as$t:lZyUU@Vmk5fyAUa_E{N +"t5 (TsMhufUS8+[cljmg4-ht3aƎjKDhQ5P_֚ C>(l CP@ܐ=Tt P +ĎB?3״JrpN#!ZبHڳYk̕V_ B3t5* W>#^dJ,eb drd9~6MN'W*Yf(D7 + /k6(צޗB"ϖYVqF}$bn6.JxqN+,u:ѐAXxܠL!R)3v\>rtpy1T}!vI4Y@; ^ņaD@COQ./1w|LABR;Ds/UtƁۖigK=kaڪ( +\Aw/Oj[^:%§/mw95%; <_I%4,/ѥUN}(juFUg5=":O6`T^aƂO l\j*Cerw'GDBm56PVb( t4ruYV_ 8DԬӍD;w )Haƚ!50.:ѓ~## +N6Ty6R{.|K'O +y>e;8Anmx派zw:}4kIr(; \ OnSy+PkR-P"۵NCS =9Xб!nN<2jNjUp̵{m 0cNb4:JARgtj&p +u0s6>D~zj%(8ܻ@()]Dor͟t08t5E\x+ +O)5 =Ter: +tF-uTdu߂;l ZlzzƎj{]j YFYh+B`3:ht;T,T81@42ϸ=%xmFha~@Y}daZ1d- Y<}u:Hs P!3RQ[Q 3=ѡB9VeKLoW1klkN.6tsz3vq.;O,f]^Dǂ"ꇯ~kQĦ${؋Ka0E> i g=.1: +:JQQx9V<ʏU +αҐ! 2kv^C$Vm\ n~ܯ{Pz0x ZX js&[uʷOlU04gU!~^7ZfaNIF)j<_֮յ kumLNV'L?8aOO4#af55j,q,Zmԡc Ē u9XpS !8pF3p%%r0Yӷ-àp>a72,rR<J4lA`3mɪ2UejTAV,*RX5*h#H&e-U&p\($K/p5-^@7vPHֲyLs [;Z` 5fjAzhtnMŗH@/s +qF3NnMtCtBGha'5W_VE c<#'Vzʙ[Smk؅` +ܚft+@V(G)]!˕nPZ8+860coZ@GwV|4Jk1k1ZzC5==+3DqƊf X-vD,dj\;ZZk ˀ + +U 5 +oDR?Aieh'@=ťQ>x^H +Z ~ڰ#qBc@#CՒMdHGYQ< +`  `YJExQXUU`Z:ڥs Rnälu ^!^~숇Ytח5VHǙNJ/Z#mDf"RgjfUe> }}f/F/H, +5 +%~6 <ҟ +GN>f]6k-6A|auGQ(?Pw<%t4;4J䈋 D&Qz$#h#r]r%$Uuz `c9f1( f@{6 l@3 D{/x,S*@;{A s7iYmʬeЌNǑt҃Cv6(DuDx:=|s}mYd*@ؚQ3H: BdKǂbN֣s V#Hm"yX⥸esd4&d=j׬I-1NNRb$4"M/EьV0Ieb''J +\۞S6إ"[@_YgV @J VZQgT'䠄a[#v֖qK[9l5MEFU)EmZ[C-ǖ@d79l$'fDeB*SЍdI ьek|J +I+x&<./LQb0=]ZC 6;hM(NfV`J¤݈ڬ}6=;j0#q3.W'"Ўe iw-x\ZfiTGFawϊ'q슖eh$nq`ۺ3d^3v-1\jvϜ^W(a"YUqORo}9\pIo3+3_Dqw (ЬMHPbpՐ!C@^ϑZܞ* {AB ,K&r3z n'zˊn pDÀ%䔺z~Ԡr ܋{VO +-χ-x'448+px+0oi=7q!k}Wm܃\rV, &m/Tl‡zy(;C7Ҁ.!= _Z$¼ :5%$%7nq}p&3B q\ݱ *YG@$GϏ7:hԏs ,yOp0l͜@e@׬nKgpL3 +Ks׼$J3쥁h䉊dw >RL!+բo- ʴ W&pxmKBȲ#wEkaQ\%WO F'`4D6[KpD z~vYWs((1KNF GA Zo0hgW$Dz#4Lj,V]6TDsH)Qgm:;`` %{a]M +běɪH2ޖcԒAQ2ï̕Y>)Hˠ Ginᄉ4벷iAa m f!bYi!x h D+ju|ܣuئ2ÊmvEN꘥Pv8IHVNC d⛸Xv_ + g 9mS6? Y ~dD!,\,,`  ⱆ B8#FGF6س+(a)k_On7Q[z A;u[[(eD: dTW0М?RXKf' t5~ː= ruһv P5|z[?c%z w[_JώԺѐY{ekԊWfG(n' '`S.Nn\Һ1f$cF:7/ΛTZp[ !!;DoFވ +Fuv)ދ^v{0O_1氟s͏yl9KLnGyZ+u{U\k!}AՂ8'=9<^6@^f۪qN[6u;ݔ?IgӢqcOfjyndsdا3.ӗI>{mE>} 9&+LA*jL>H!ݶi$}UUvM*7+df[u,Ҽ赔Ecpw;67;7>\pg|, }\Fc,zŹqH]_{ 1>K1#Ci jy$zneDyz`;I[ֹ6m zlt߫ta7sALcW ` Yotb5vka,Ve%l z+Ӵ#cȨdWޙ>@oPpA6ٕhK^V;7vj^jck -7HʾFU#J)KT7Fb3Ig^f_4*JS.k7ڇ8Y=K6H`NfHʾaa.;HvDJT  Zu}@BFZ,_{َ:GҝIM:io3sw'DĔd,L PW +23̆_6bCrduņd\ņd]G#|`ޅW>1צ-! Jn4CZcg|ދ i:ka4;+/r=8wK&is͹{:O@y:|jMZ~I3/] KS'>Cvu<7ۭsO/0_h_ܽl?kq;8FVww#~W.v%pw= +V>8Yh%_f*OA.N#:K筜L싿 ߈<,.8Wp$;8;UyG9&CѽT;vw}9GמtcvV}gr3Ͽ@$,(8;/yM+<>Ĭ8;{.[WN3g[]윝=YlHNg瘗t;Gŷ.Ig/Ks튳' 7:7̒n(zgg/{yމUٗK78;J>,قDJvvC\-}YYJv́ԒduP Ju(ڭNW +hq@z9Y]+U8YGUܸe|<|m"8drd$ c8Y`eV' mf{mq҅ :lFᚓudNau} ~q{慶// ?ua ;]ty5 J*wYq* +js*?B/3 ޖS?j]Eʛ~+4|Zk7uDW+Wqw?+ : u2B?ZoR7Hqc7Y~n<$ չkؑOsBVy~`x +6_]SWxnL|%ƔOl7л?[a׿~~S@z+/#! + +lI_BՉkT7mVLNPEJYj)YU桯~#_WZGJPA_!z8Hh,~!tĈ$y10mu1Oj)>HOBɌʬ̞ ::A(7vyJL` hm92&w_ 'y,@!;~lDx݀boX:!5+bȌ]%o+\WHDK, n*78#,n ;UbwmA͂(IU+ymGL_bnJhsޭdw(;Z +8M# ,nFP㛮=Ù:s+@f #ݑ\wDQ@m` '@0 Hp x=t"N&09!hWK? y1DAo vl[tnffn(J5–XP";T,|~ļA Vt`L+yo]PRoˌsNtN[ )oo]ךKl[OZ=;^Bg.岲{a/Uܣ])=a0eonB?[yF6rD[QMv?[OFbS3OTKA!!&nxQo=)0ޑf{B롭hB\gqlFFF{DvEYi=gD?.P97&z\^ݶ6$zf'MW:-H'Ybk@t8 t0NzNM\IO8l%o^i0|\zzFQeOuja^u< +қL356;n\+#{Aff@8*,dS%cV+\Uz MP)O;v aL`G+E6$筆;l \ȹ8W* J:O5(}3LmfAlNͧnPjEiw,V'\wVMw֩mVj/T+,ʊu5T:HEW G&FZe1/}Aw\h@"@FC=q=={9p\ +ereD{[fT 8] DM%s*5 5 z$2G*dTA9l erd]<>w=O)yO){CuA{<`T)}Ϋg5B#<7~` +m@IX\Q;\ަ.`$’jz<ޭ +W +޽*u=Q^B@gճia]bPmG[pUiĆthVCL\ieku#q +=HxTXd$pcU%jL= w&ZY;pSR>|wIkNLjMD,؉Blh|& _B#X,$ʵlmC`4nH2|sbXbWM;7ha?ά1AD؉57Xbmjd׶?Ya9#׻~wmt#2?e`0C2C: +=CC +ПzNm)lzQ20~QF<lueTU+ S#Th.ب#dkYn@{ 㹬Xʫ=OԽBX\FFMuh'WlmæVvS-@Gl DXU``ہٶ TlK 6cw k6@gj=[5z FώB^`UN7a - lM&Sb@8 '0?.GVhuw_`8/%:,NDAOfRWy;Q77zv1E3(&"FAf3{zk;@386Kn@#, 5FgUh=P{BVPx% l+U̖uݼ6X7gFl4&l00T ȑ-A +|BOT/6X6M"nz {9(&,T/3X!uwmft!Y) +4Y='<<AxpGUAXE&Vm8(@(FU <0 +" Q= + `& cfH~)>PimB? 2:Ƚ**suzD+[_m<.͡6` \&ЈOlȈa_^0FMۇil-u +:)͈~\qB`%(/fT *'lXQUҩZ) C EdW;ZlQ=+ZP"erd#m e:,~Jن7VIu~ ].رT[f[r<*Ff2+̴^L!vll^sZjT9_:V1!.) m$]*]1Ďu'|)o#ٌa:6EŴ1'= +{k ? $!Dp M. ]3{Oo*@sIyú"yƖøq'0چvlQ-n8 #2'02vǶ;Ɵ1`16w8oJ 7~y[lqw4`eJ qg;u#';/ޒN]iQiQ԰"v>0 0n8,'qxI;[b [~0ꬉWy![̮'~Xo +w, <JhZ࿌!޽aA >tW8 h;d^UT#FろTFW` +:0aJ@m7zM'/P`4vI2"p&ert׉I RD,؉B2":tBf8 k: x!ζ+бkqW#g$Y/'h Ր8;N:P#[@K@N 'Uf$` 6b$`?|8 (#V$`$?_!VQ%cEP8PϘ\Nƌ{}L1ֿ0[xl3-:CO%m pV{Å+NGMq T;Z$⎐*-e#\ +$Vh%QV U DŽgRƛOnQdu-EQ *BW w%=0]/hK&X+*X!`04TpnIutLlP;(㊂@qlaŦoTl-L= r'hIg:'? r|p¨u/-sw4p$wp(ie6G(؇8!iC2@mT9\ 5`O;l>8*S`.'gؚޚ\scvL;a j:#FX*65l-HeP +؃Nۊ]p8nHm7H^ mVP̀LwӶ +!Wvti  ( wd(&$:ZzJʁ>i0mcs̈́U 7=,*㠥wi>+]3Ӷ'2E}hLxH{NH+9'*cNT~݈ܽn7_Ȇ#oiifV.| &8>HɛS]B=0oVh]]ūA8Zd5C `qp)޵('aͦ8It>Iu9ܠ:^a}w7mt/kua<fFNRL|\,?Ð|4#gm4=^w7*q"~f[@y +fDa`AS6n7t{/ 99d'aJ |ӞH c˼7={ |rPn*a:_@X}'Fٺ @Gp ?B+mdvThGЎvd5B8&'z=o5=R?Ge<-"mlXj|&/maL孬zU-lx|)kU#N1w?31L"L*/U 6`T 6٨VPx% YU3km̹]ŷkol *2VVܧ^ Xȑ]c+XSxm]:QaN&ڮ^me/_a> aI ($ +yu;`)5Uy3[kY[ ѱ䪎#d6uCCyM6tyyQ8p+ hrk gB*λ`8hy֪˫Œ蚉H4_$#*TTYX@(mgVDOK2⋪N*?W^!4 L?|,'SL"; :DoHBqpD6᪓ l0ұ wA\pg3H(GT΍y[,eyU o%1Ȉ/rљ3@ z<+Mnk(Q38_TuP/qJWbjXOPbrd (b5$Hkcň7 yv">ڈ LOBpsql d YQV!Ǩ8.P`W9XW` +h)Q}RUi}`M80B寬'uVI\ 6drJ YRS)4x#pa脙Z%P&V0_($ˈ.ν] *M`9D܉+\wy8Mk48qUH~0- gQ-&Ƅq@ AK58W[NtDW$p'񓪒ND̝ JBk`BjY?!,ȃ1_uj9J^+Њ2\4kC#(;NѶič}夎vR1 D1^Q\`ۚߥTQQ* { +RYIhSD #R pNQa91"C(d øV3s4okm.-6v#6%E( %$`BՋ\mpdGZ߫(".O)JO :nC0˩iz5UVIիkJl'} *Za[@#Ţ٪ow]:ƀYF_E8q6 @\erR9\ա9́W`mW` +hmJ2]ӁD>b1vbV*e/T*klІ@^`&*J 8ذaR'lVKY\xR6D$G[6 + dpkkM\s]Œ?RYz5xĐV}# \i z0p +#m[ \`D +9z] ֧ FkpВ[sjƿ*]3n%MD[m~@_C1U, wkk}ʟY?!`:@#Z,jߋ7SfCuOR'|wuZuJhdWaf>gĝPTw+}/n4_g6DRiR.ʺRџR3Cjv +ȁglPr$e #}PF]ͷ?/f(gc`t0〒9k$tLVs@b0XՏW W` +PؗN$9F$c*e/T>_%MI\l9F: {Rs(40x `ہäNجU*v&Ow`sbh`h\@ Q's5q"3R"l3;gCSCrUc}γx{| K ql%.? jݝ J.'!J c.mT܈%wl/]62PXmUTg7'r#XѱFx\Px% *Yc:]HJ6ܮZ%:̶P++*KZ4{!a5vo,\;_q +^ +`R'l +c"ONuyb_@̃$pk.=+a\ sZ +[=4+W 1B;TB#0ӈg*\q[OA "SMu?WNtDW$2[B_C1IÝFDv:fVDOX2":D0bW^ŨlO: +Se[m˓j̦Q;5VheeuY*QZ 6 +t'V+8cS 4$%R`ZƶB.,"(P,ᤀnK{q/Ż5pŭX^TQ;Q7v\:ЩNZCV'M$wԌ6lD{TNCoVNG!k޶#[a6Q+x{ht%+#vj1+o۟* H#Tz_z {RF;8j{S=ɩ ՝[7`)QӋ..0)ɨMCNCݫثÇ^v`:4.C FH@L;z%*!'#9-fOZWJZ4i?C7z#QaIKԒ&QY \q2ą@z1_ 1|uI7[<:>1X|:U8v̧fQZ *SwPY~FH.-A̢aUi6dNfvc}$bwbjhIJ3TQ-AW +)lN* ů.  jal6A#Iʑ VP&Gnh-N:InLrtdt7#'EPrgO*iHN(~f0 ݿZnZ Wf1|n.N͔Wx"1Z:7v8VĕD@yd4ݼ|pMS(i%)=jTr:mڄ1)葓NչLmRJq0 d $|@Ѭ-Y<軮AZU͐ODݏZQiHVZ] FaGf|ibanգ/w(Qy*YJRAQO"$h5-w2$(+Tx|qZNb C/H ];.AIӯlHja'4/#pd_06h~O1gx 4tJr:Xgý؏q;2`h"UO#a/:}x6U3ʅF%-¨T[g lO 7PaOk[!uqiX9ִ` KH٧A!N6^O0a乃'I:o4'[]%jDvLxIJٔ֎XƂ vCp;-8IĎJ:KjwF'!xwdݟuf)%z+#^l{ Vhً; :eJ6}$)Ӽ#/?VW!yOf.Gc^ykGBS{fn~)o>iSuS2UT4i/{[L-6 fyLVkosO򅧼)=3awn^7?7N •#.) WGҋJP}K}cA]C{.7Bɿܦ#)$V[-?"M&Ɠ-Mf"«$ײ*'f~z$oeFSXZPJĆ/Rƚ]_c2r٪hWY姛F &GtsHoy+#L=MTJyW{۪v]o[$H"'Z%֋89ծ7?#3ɝ֎t޶zJF nY ϲUphYM,%0UWr]ԝ:=duf Ko:F{PoϢ׃$PQ+IBch,4%$Z'*yW>/GB0T\s(\wQΡp_k+AKCay40䢡&nnP6;Ph%҉z, tUͥo5zsixW-IRN&Ր//EϤ*$^ހ[e[HtNYT8>#ȝZ".x^C8dVB>L1֪QK r~V1>I iB#uRj1׭%bϯ#BC] n A1=<1v龡oش[׈?]ϑ̧pӦG^TH| [q|<:-!\+]Z3(~YYBչ +\!qH~8_x kJ\zt-dQr纕HܲTÔR8|[)a-'sH3VJicT-Bn"fܩʷ;_wBEgբYw+I[Kc݂UBӶj{H2-frmx6s-Ӟ[JDԨu݁#)`Q#xE!hOG⡧F_fϽn\:c7LVHu5}PLE+TS,Ӈ4$YJwnTr[8)͆uS8:W*G?:?U$9]F\e7"r$E=B(=F2t$U52 +?&|OLo=Ėt}zng]P컁‹T8[!?m}|d%}/bY2U/nT2}M~:{dSUIύnDP8L~}3YR8^û}QEk QS412`,R BOםebVp4ğP4\¿E3UF5 +WEdי9}}\g0=ItVZONrquV*Rny\k,7sO9H>kdytl{tw2կĐ/uR t'lEWhm o % yR[Wj;en/%*w-%,kS$COSmݢDfJ)K2YUiZ% ~!)HʥQꙴ1+Ng?E[U$iKL;ETk=YC:m5IkEi3MDlNuYj 2-V l +8|+mndpbyv\t;+ם +fZI%K9HOHEqAR鲐?M ;mib\ѵ0[i?45n[贗Vp=fH'W"aZOCǪ<_>g/ڡ\aؤ]?GÓ^r']ڤIA':^&O&5IxA^L!P`bmodv<2AK;^ `!Cݠf^LoҿeJ)ixɘ`OweE{yБUt‹KY~|_5^/Tbp?1*:KVw = #@Z7n4cKAlasaD=ޏ HOl5fPfo1U,E0^+aڊӔMW!] :J^USh׍JOoCΎdN@t$//e;Lܬ_.BZi\;4g޵;!0DE@d̀T{zCXMDS>sBWxۈA u|5RǙ;a"-G#~QtV߭+ +say0}EZjIt>,qAkJ*=NlմYC rKx3 jPnxi5[ +#[A5!ypG(&~oo]: +}dRwlFgUN;FȩpM;t]>K=v}- ZVXA_Mon b?ᠵԯ Z7L 5ԯ# Zmк JrƆ4X < ++WuaĎ 8NwF{ +9~moW&8ryQmmW` +hyF߭QUe$`9:<}FQlOW9g$EsOerBbˀE 7}WAlP@\cKk5V||^&K0tӛ19col  +U{lC°؃*i=`m4mZ"|mqb&I&Lk"/p}ЛY`yNJV`DjjB>l*4Nnm{"HʒwDF(XvWcFB"o #3amb: BiA85nμs=E,0bi`rAJbìdq:$#GhuNK @Jrt%D{AΕOϳ}AJ G":=HtpmM&;8 9 +thd8!u92` +#]z 2k4^Fx"yaݠ8S?zIМFxOm>dܵ@[۩up;Q[raT4OW ]a/* *{4|ȈZd6jHpՙie SQVVA*T1+/WW`CQӃDpw@ j6" /Z +vУS gt%k5rh.W*<@t@t`CfD:B`U=@8[@Gށ D `k8Wj]{&ALD?lfuFjD $La6^)Ŏ + +_u:FXvO^aM +#*4PGs: S2)ͧ#gOEXc`_! &0pUT:dB;/+86iդpΓ,nе 4"TLckp odnEsǨtbXf6i +6b2WrG&B}N~4;nꯟ?%ܸr,Z/1}s~/Lfu~ ,ʩ>ns^C&-* mĶbD,18y4[֜LõA{8`JW`ԠPsǎm~y[m{A qc:l\YVF~Հ4UgGJ#zS3`9'M鏶d DX#ʾ#("Am $|d2l 9u@~K}R +lt|S>e(;;íDh3}lpGYAи0JMlOX,YQV/X}!^K#=ݑnvNX)A=J`@(tCb+ePQUW|xi)J~K5#~8ׄ|F' 5S>Y),8V|GpaA65Ml&Vؖ̃Dx7 _ׁ/H߰򓄇`/X6k"I3y؋`rDLj㗎kUI%H(VԳFk@^X/،0l`BG I6O_pF\#!:>ONAA/,4^tMNf8ap>_ذ=G[Xض|>,^p(ոKF⃽{J?DmjA2erMا^*KD`SC{=W eƅ`anĬf͂%ZX+US޿qC pcjCvl(tRfpNI~\ց#W /0&8X9b~]n…|tӃDlAKv-]wY|T9⠬sb7xAnC!v:~! pNrJe6[LcXxv::9O7:\V)R pN`k 1 a"W {ժӃDp"rL6O4Tm֝+N'{mTQZl7|8Ux0UDž ,'u4akE) +p_RR nT$lm!;r40|OR ˫Vhر.ulHI+ 2S+ wકk)X N*) +-½1̱bETfU`UN#9'u4<0bp]e`T]kNJ- Q8@d8+#z. ]jUSƪUA9P'sMsSQlimaﱙMY'7ft ~lUmO\y*M&E,1ć7߷q(PO +/.O^i$>\ ++`jDZ$J`((|{ +`up@'QF5CN0ZuӁO=0){f`^E4'+:Cr=1dOtp' dY[g;A X=ZXZ;.-}@{auY. ‚z(yMYjSP3[1u=\k͉븐zC\`Ѐٰ:m>0Fy=тP/ĵޅz<0!paOS-y5Q +>o2 ~GXB @1g P ZEr3{0; M'*& fKߌ #y>'ՍAUȐ懲y$K:fNr~@m*ȣ9"ۃL :%;.%$ ?NGe T0kˇO2x}Gx}F0PY``|p^Ga ݟTܚ "JN<'cf\ zmAAg6H[ +K6 lDQkUc%bI>DHȓcD8> +* ,+6 *_p`O?YVBkW_j> +jm`"\$óM`nK +ur:C|`?wpCŏh@*8aX:ݍִSNɆY +z]ƃ_6m1[A +ݠRR: uFw5a_ *!~))3*dhY[QHp4mu:b<[6ULck֑jM>;WVwXq67:N4 +T+r#amUuENF{ h~iXQ[Qܶ NnlLIoz[m#5l{ E˄ɝt^63U 3*{:/ߙwMPPFwNom8GThm30 (g2ĎB +ΫD{,M`VxƇw"Z9 _D:ya'9mDĮt2VPye6) ++/_ +;量Hi(,E^0`İ/Jq0"Pǁwc쪑yq&"QUҩ +Jܹ3gE4C`&:{b(zn1N@*?J.'y6O?'kfĈ(16iu+^[s.N9![7tp[ n}\4S[s +@4]vjr3Npk%:öUOrV!pyen- Є^!`q*) +(,Qw\u,`hF~H1mxU/iĆH{?j_ɮa[t49kboOs} < a-liDtP' viAs'ё*׃5opt՘qHDV[ +ߵ0-g6&scwu?2Wb'Ɯ{,'; +wحB: ꮀiBZnjKl Kٞ +t!5-^=XO.}ڭ9+&|boƲ2}A_Uqy69J +WQ+F+nH %&99׻fي̢)spOVAgPqĐ +f+>.4F"2㜹bDPfɉ4 +Pg2ČBTAQs)r:5YGa/%&ND 4x3Nq%:öUOql6+XI 8%#:2drq܋ +I Z|IkmUc?? +(6hzl)~hmb6M rņz2L1'YY E4Qxźa0UIlik +UE*čVkI_F E9#R6C6؊["LI[aörp%e' Y`ܶ::Jr=*Nd[кڭ"םDI޷:zDG~83-с[gmUT?Èg0nqD@ \HpY"?-N*qk378 +mD +7 lI6Bhx (F5T~o| +X"udrKqp Ch;4qa_H_Ŷp/@"#跍?gdEx5q+y i7=Y5`!$ͷƨT$Xnͥ\(p@8'Ҩ@taV@QqZ8hħ&5- h + D:Fp.Z$5~o2$X& +KFSQ-N'>uaPzs-Dӈl fU^㰂cjvX/%W 3f7EVY;;ZD*P( Zml ۲`C99uFLU|ݏvZ@C;noe_%Hm%8q9A@(띳mec!+V<,=P|(@3 tOZ<28L'qmdyulAI#ƍ^dWвo`oF6Ё6)HH[Ƃ +9rHw;7"VJW[j;6A)>'c`SOP=Zb2DY4f; 0Z>ց"D`jTj5ۿ.{O:jU"Iqk_IJC@"NMi^?ðQ 䳮  uH\FPiG~Ɣ2h[8D`6>N@=OPŤKv$=F\y.[u}&%?U>I6 +,w--05T4:>|^fdʘ5 ,4ˊ[NF%B[|vC/mb]^p>i&` 5fP4(+G4:tr7L>jiܘ_r{qeؓ"3FX=1f,lN')%W-=%IqX;Gs$1Ȃx^ibN) v `;V-F`F\gOI6p' sfC%ȁ}ЙJ$AoLI*cElehɃ> tS{&P~^ +a:#̂w-V |` H­6PIg|T2|C[҉i&|1jWq0QuuI^apB|IZhU\5u,J(j\{y +Z+WK|ҎVՊQ%G䳎Bum8H'ׂUƢciق݁FFݡD;ui1O Au k8G *[Zvu1~!6 +$vs2I@) +  h {hĊ=,X# +H@3A_{7+>UUy*-ngVY h/VJ[pA IVy;YY&| &%e\@ClBe\pE9=R\jbZeS  Ype]ewUNf YsơL-СשUS+aWa8ܓ_FvyrF5ږrISݖM'Qf +oܽ1;LCES]v{ *-h;qE{ 24*y6~Ҿ81ck +0dS t< waEe+ "DCLw\Q,JkF>J,NН|13Fe[%-[Iص\XN3Hr2Hj6u~ګS?^Ɲz*( :ʰi["Q/ʆӎA&vUj׌KEmCK\^aǣ5EwAֈt)ƋXWĒ/oMNju Jp`I&,[]A0 L8uic`u7bw|-/JFNP т‚V 50%OTs7nYå)Dj +$:H@ EQ-WNb{!Ѳ1:2f0c%&uA]{D%5#ڧ삞akbZD%Hm#hy!45?Ezs tCn{QvVvގ_ + z2XpbШ؜\zk?G e "MAR: @f Tp!x +)k0WRB@ +!`!(X( +۽A##<4q@%,Я#Og:^2H5Oa}FQl7 +p̚T%P8Q=\ kaδ[ [̗D ) Vv/ċ:Oi !&^h\aT )+=I$ГTTL㬬j +J1& 8ml($>fMiYI!hf:ZY"/8jC 9)m@X\u+|-„u^>,ݵsZС.v/:Hϑk**n˛aI^aF.jIr]H7i 7p?;w߽H~vW&褸8*qQW&Gz%`On+Ub{`-6}bS<+n$@qW*yeN$dX<[9sWSG@WEA :j` E;_GB@"*jE +H|LP vhT)sl-CaO(:137"ƄleDYjod@UʐRTIH%n('R$fwsOIW sJQ.2(W w3Y9 T&b2f2HW\2UwS@5;Wutpcn_@sdִq[`AKzD'K;ml)ݪxUr@&w\#lWL$l{5ܠtysFe始-*w +E΄UY*"t*a׫b9s׫u&]V/k=WE.cqMO0kߥ#!qBtiLW)AgBlI<ÈU: +L43݉ C2P|K0$EbpܼBLᬹd:m6/m}!x,3'pf%I caD9a"7q(idHK'W/7aՙ!'͐,LIk^:b8,j8kֺ`24 ZYl0+!`|~7at`wܜZچVlN&g/G8"ƒnDCVz^ň#׫F9TL"tdTYsEتMHQ(%6wi4D]u7Up\r6Ey۫L^P~w NM"0Vt;+eRIs/NrJ3 +z%*T;lEe r)J((|MOW!,%f8dU#\# F:4SH@ r-eP莲W_NK6gEAx Nds$s"0pLJvX cNw~ N Xr +/;ueNAxs1..5HtxԂƭ 9sŐx\cY+k7USΫh{.쳙ȭJMls23u4wwpOT.ey(-''ӥVe1 մXYM?HOZ{.N1;I-k +LX{Z{1x0_&Ij2D0W |ק.}bUg5Ьoæ0o;3 b^s aӵ&NW 9*ߧ +L x +LkV$H \(H,t%K{0P;AP5ft>b؉^  +UY<LJ,Uw1OR}VkQYb16%!S"lX#(JsƮ]_R:x3sSW}:cE&"_փtl @=c^܃ ĥc1?\Xgl,A +ŠG-ENQEp̴&%u)^JpձF>^G!Cqw_̐I(AgL)`uD'p8A@ҁdELl@:X`؀)ls<3 (f6څ`ƴ f'DbT={4T1ZUjwph# `ᅤX`4\iEj! Cn25^ˊKуE0NX9+k-k;`dB99$ 1h]h%R6bm)h?9' 3c0K}b##[ +F6t}D$`GA3.&Ȫ\[e趓4V%ZIXCE D .+xC4Fx"5aw =-4yo'g<zi*Q Z 4) I1:O.Z>b,hYkB:Kg CTM"S 1;qr;hLGP&+ xhVxg0 T.,Bxб+ ʥe_lj1ؤ`ҙcǜzĘџ3Bh22t! BEPwHֻEdžŤ ԇ5: bL[ ,*EE:y,@/'`f{lX$-șq܊ B0 8Z/ʤ{eҝ&k8l<\L:Ba\@BBrFBYW'6Q_m( iA\Ą[pQ\,1mUƂuBf@MQ-]c6"O5QTgPF{l^ 2 PVx '=X0cZia ixJ"]-o&&1 &!)f5 cY[ŒՃ~Hf(Y+ 866̘0cmX[D&9<$m@A%_@W2# +}*2߃R}PHO;}0>-8,12_`J,J10`,9BZ·*c.9Ч%~Bh"#^mht (W`&%EdiZe|>KH͂ TA'%=+{p>3>%>b8ɀ &t͌1 bfI Xbڂ: y;AbX<"X"Ҩԙ")@I:*ex{P"#,iEA=Vn-.qI5pbZO]*i`'ıX^x´,x<E +g]N$@鐹(X W;K`H"@z(2gD[9UWT}LJX?Vִ&QY(5%;"x0 \p9ZZ9-cZ5f9+5J-,)i %!N NT ȽzRQGb)h Tv.5pé7pZ(6X`N2q6l#j G~/De-DU(.c7x̝'`Fn<5cbO.i(XB[Kx•hŒ7LHMM(Gwt_v*rvdm~/k"fXF]E`QږXBڧu9>Z^/C=Ȅ>u^jIkj\p)%,CRd hVDqdrтc8 {|P0 FNE߉T,yQބ+ͱ("'%B'p9'8i +U 2YËI]{]J M) 3Eƌ3J F, la + uMut$xc+#G.^/([(nj="K3[EN.{ \`97U +ށa.3A+nfn%Js2X3_")ȖgC Db1IwT6 }kwT`GR-]شE5?xto]f[箥qw.̮٭`~k[..z{xMڽs#hbp3-`~jqkx?˾>hj*M}cܮ{o_>{uJ_~^kMH^$Oݷ$z|5ͫ{uCy +v3_ǿ#y?;I"#y~dgKj#?3t9}QC8o=LAkJC&V|^~WRQi]RE4)\SX Wr#U){"Y&k2t˟w~|{;|$ǻ/ǫgD~R住&]~_~"?߅߿&~*~R]ҳ-[+%aߖ_'w&w١.XaF}ϮԭǤ;+O|?W{c?s=8DLyi2nU;~~V$ջ1׼/U7__V(U;δ𝋷^Y8_#MY~H>WvcrmoӇY]ާiz{z)_oa ߔ6\M}Tm8ܧ|r™'wniwq *QOJwxj7^j`j hF#5%Ir+,6$lz%4}&ߖ&g.6DB|k! +h>8]!åt}aU]Oz"V%]q?HBmNZs U1Q{b{Ŕh%kV^ܢWJ2Mtty$s($b}E{eJȗrh.}Q~$}A)b?hUO9a-hJvR$k=QRdžM`gR6h +7(a"0~JQ lqa(=8«*fS.՗U{U]P6o~y%8KD+ǿ,ɯxEѽ~uto)da#Է~㧑on=e$~fAv:gp=u-hFe +_/C[Z}2o~*.m(#{-kGnF^Ğ3NfH=5s_x)%5(hqDrxfӑqLY{_fp ޜtx.(.NNIyoRߺ{&$W;j+}:SkoZ\/<,u :>&^{9chΩ:D Ȟ8ar} +n=Gn?n?)~ͧ:s#?;tOd;}Iƾ|UZn[5B&4 oZ뱸%X`i=e[`^?[UAO.]SRɝEh0зfd?&Ց;Ʊп?NJ݅-Yg7|'yT̷$ѽ#\?%uS\B?# '1PǾLbJExB((# #ݖƻߴҏj>3H+x~0? :Stx;1a{ +xO7E{NGG(xݛctqLNe̪2Ŵ2mrlcC>,|1 q-D=t+,904870d|RZ$+羽ۣIt^~ҠBt1{A?M^]ٶ4f ۫ٻfGS+~fu8$K~CWMНB[3{B/n{OaL|Jo[<eLDJP'"^/MDB'8qu<19k>l4MD:3?YD3ZK&%zNcOp<hӉI|#JĜz8~T>Jxmp GBsÈ[4m '}oZ?~_?6} ,o-)\f\uu^[2m?;+>:!yCα΋=ywQr yu/)"G;ԼKGͧ^l YJ-? ni{с[kgXk=. Zk=$bIQ3˟g\<*yYOΞ>,^jyDAG%W[f_U%gXklZkRӯ52CNJ#0U=UCw}{R?u856Sw6g)_yj glLGhN:fԓ m9]o1T@4)"7~ -?D =`Ɇr.)Sȅc>4?Ң57غy9Vlm31fvuZ8M-8kv,`yMƍYXF^r霎PdϢSWC:x4WoQ]s^mּGKg\>`ҘL50i a- IsMxG/lhLdx#@ʛ|<} +endstream endobj 216 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*45Vp + +endstream endobj 214 0 obj <>>> endobj 561 0 obj <>/Filter /FlateDecode /Length 55090 >> +stream +xݪn͒&T.ЩjCˤltLPƦA]2l,VC/S/ +#/ALj'9Y_~6O1޿y._z./oO/WOTחqtU\˗1yҫ~4֗z{T?nոnUsjl^rjZiIE*f"RQo>^י~|˟R>zY4>KZO_ӗIsҧ?Co?BO?z|ikO>>__iQ,]Ͽn_V?eA*#??=_/s:?oM'??/Y1W_&R]>«c?==yϵUuƺ?v)n{ Ght=7r^kkhWsנˑ{[s.χ5.sHXfp׫2]]PN+\Vu\\eWŵ;u U[=NV4jZqwŽ`3RgA#Cӟ[a-r;<ɔn9n»wP]&of2Vv:=Rq{4BݣZ١Qല#amv|УqsRabm/6et=l,CO(>wE m;7UK#XXe DwŶASLM:gK~0kZH=nN[q75E+m-i{*8lf"h|>Z8[UF td#|U"a[pSkd'6w1kp92ڲ}girKL1y%$_an[iU0QMz=Vzu{EҪO豙"iJb+PVf p#xPh zGSOm໗@;v)ISR0\B'Zd\Fr: =VezMǁN1I#.#.$#.0J2݈(=fԻIJՠGM";.&HcxA:R @Tj`"%4zꃲ:qN,m]A!w/x2)zXZB@ L@_c8f+#{*{<@IsG8ƣlXI[.c7މ)foGvj0l/`LzQ~NkK}˿>Ot.lPd/9f\.a58+Id21εJRn5P| B"+wazB 0S<[waFZAS߅' +f80F›BF(NP]e SYb8w' = DEqbX\1f#N쉵 +jVRYPV=j<50襓lU +07&Zx 'xԯ0W\0P8s^#*ю0Mձf>nf[ }@>ɸm%&VDd3p#[/A xwK +.EO9=ʌgK[Zf +&zIF`!l'K48I(24u)1F=98"yx-?.DU"yAwHPT/0Dػ+5~uXMt$H]9Mp1нBNGM(^+h꼅4j}N,vp ƣUbC!yWHvçnB;D:^ Z p Anл% +; QkomTƑ=q[ +ʳh/N$-`&k1n5H/13K1d1Q89"cLV7`::j*`I^2%wŲAGxi 8tu 7xw/ÁvSfc7/N}"׭ =w`w>"j`yꍼ|ǺbFXpskd_m 'ܘAI1=[@?,1@(vG2!ki"N9 $D-D;8"(JAP@@GPSōأ  PE ~(xf``bEIs5J>g3vzB-~ PZ;z)F=92IOI>jxtSICmQ4qUA6=5sx.PqWW6JIˇ[-3-M qCE ^"SH}S[`c1m@NN8f +)zئ)mX}t،I3@`dc-!̡c)]Ͱ X^8bҗTU;  &[k բ +Z)@['T}IxE0 V#9cy쁇t?q:+ (j18kt]qbVy 8~)BGxF,t:E#{ ذq#|e|KƠ)ݲa>qBxoJ{pBOHH.4x(+?Wnƨ98wYհwY/~} ^Ch9-+2e~(cMDw'i268b0w{euЗ9m0M,u[Mݝ~\[\6MPߋ`1;WF2wmÝ~ yԫN_Aݍ !Ҧ&sT9Þ݉Tn+H:0Ā [p;N>UFk!kMm{`z\S)eg^iJB( +vCXx,fq;n c}B|5cS *>EQƊc;5# V}CHPzLmLaRq)L{<# aqU6Q?f jåtb4B| +aJnz6 *n` ^wن[xܳbNiVZ -6iXVl} *Mz_O>c۽3~a +fӫf~ NaDzԪ{ zE+²:G⎹,3?*xgtf6 o8PBXbn89<˼Gp؀KvGq{F]nx``Q/5~4pR?oZ} ͡KXFN&xh,CA² SMS\o +XU):] +ҍGEbKvC+8,V/2SyOND1,`O@Z+{jj&~_әTjF&~X mOm5eOu&nȁ#?[T82m/"쭗>xA"ǁHlL;+p> FX sD]J, o_Wzs^l]`[xmq"+wAXe5 +}x: ~7c5$( p' ˂M;~ML6q:{0vq|=Ȥ̓nn whZYGda5$ +}VT|ei+؋߆l6\#^q82@fvOu"AQ]Ո#OOK^\U0uݽ&{\EZWkZbb".<Ҵ.;nX8N*=+ں=BXYo.vR]m9P3pmh˵EJ+YLCK +k*69=ia܋Ʀ*:NScog/+r1u/-0l칆w;4{Db0R#ab☥!SÝT]OP#, R5t+myGE/T8$),̶p[]$ctnXs>+ )A}q^ouv=g +k`!Ug=5k{{1aKp;h4m1< Ŋd]J*b%Gf$O* gn6%ߖOǞ6N0(lߏ~cl~V [x +U[ +=7Y/[ :nn4gK֊ #M'L@_Z +=Y[䠭 +t%7pf x ZB70,meg˭eũ97ѕ(c3X+N,]CMa<'zQ}N +_KgNq঴:^&ê6bEtQU9@ѵ*XN]TZsR`yن w@ډ@l$Y$X|)г:()V6H-ZjQã믠h+V + eO+CٳyW؟Jjpf^|Dެa$T0fI8|5 <д0y}H%`gki-2>byn P5t=rlC/5 OCQ_E l2W4)(0h"HT23*j4R9px8=_UV (WD;/`;pw2qGDݑl=ӹ$z(xU α+am\˓Cۛ9jh8md;@rwv"*R/kw3j=*ZUO^3q;oCΰN~o_\{LVםZq+6e?yF0d.0xAvPSऊۙn2&[x׺ 6/J7QFf[,}d~_bwlSi¿4\c?jƋ x&p6'JkaY#3U̵BP§9c9_{ax|?m MmuC'=rĉZf!VeXן0 UcBqR]K-"J$"Z5I`[g`[킒`XI !/OuY׻]s߫aT&B}' .- [)+ZGS1=$)VuZ+>zqN +~d] )X$8,ՓRqVq5I\uE֫޿ JZdn&fYI.LuzZP#Ib^ge%r6fB,)dPo][HWB= S452{C!:uT6ẙdn=m%e%D[g-lf2 %P +bkVEHrL"m + OI${ $2k|l`;s8$=-֊2(,Eg+2dqIrH5_2q)5.KBQkoS[ʢw3u&Ik2;DXf,BHIDl(4wuttRX)&as{t&8|#va^úzvtR𢺶$Y=p!=Co,NՃHurVK}:h3"BjR@Z +yr;[Zf *e5| +GT:QT94|PP׉~m`]̮?tJ8_e"NF0gD*`4^ܵ U-&>\)88ݖTb3DlYGRgc(V%Na'յ|Ww澡s uk!gʴv- U^c6~o!-*$Z,NQlROIT9WLhwZWJTh֔[Sn=[:ZRZlᢦ%ck6ym (AU-3{n +q#J&δyʶxxs_VpKEh**Oփ̒Y4Тŭ."M8,v>tyn._Oy^˥3}cϿ|.IwOB/Գ;K3ۍ7,cíԑG.CI|* hްlU;k)/;H!=+,h,,XdAK },im7;q#yCU>M.qT ԂsANeV["=ٲsw`;?GKb-yn ΩS9Y o(W4iʂNJr9K7deu5loDZwfB}0qVʂڶR4P]MLbAmdA,}f"HgRA֖UScbM ͂AŠU.` e(XcȹG@% +UjTBE<R%GAJU}"6\`[Z?(}AuQ9j鐞c=iu1++Uծtb,~5(YT{֮Hy[)I(ҳ9OTG[V]Qϊq)KTr̶sV*Ac)Wq 5"Cѭu6*7Y oP{ҳvyXeYgfEd] ?rmr4+ta nsqANw;+1j[t$=x,!h([42PbT0JWiJW8h2%72[7AUakg~ Jw_[M.Li+<CvLt5T$Ԙ}ҕl56? H't6ӑlpd= p::<׊?\~;?":W&~*\YD9ߐpo"ܓ!D udj !t4 N(Mmjj袴XMQIJo%jOYؼZܠ=6/TNӟAoAHif5xy域^>y ]6&Ar88/i(kXT^N֕e3˸rk+|˧݄5^n' v<^Txyw/o:˗U kg^^k +/#jWy=Q^g˘^Ξۤ/_F% Jx0- kܘrSCxy7TlT[2l5򺍈Dj˫1oNӅ.q[e:G˽˭ruFR^˭r)/7d^n.F>[V^^ -1DȖq,Db[zV7S"nDm Iy1Dr.WhrPKڣt/B66o!me]e=˷jpT/#B/2F(/YWao44ζcD+>y?vm, 3O?)4BmfܳÕ{Iefg ^gQʟ>`&XʂB].2L Y8eNG%gNo=+)7g`NRNoĜlŜ+4.j c ,!}gx]pzpzWC8}q _$f>@nIP|WHJg8{P|Y(,tVo:&̗2~/oxW+hPʂ̒+h@ٻo$/0ŇnBP|/<8L%D\ -f77k +w;)p(_N@7 2~Q""?BWJ +FiIs_~ϲ o0/Ş̉FhL#80G0ô?ؒGD;`3δߞ(Gxwp L-Pi?R僴i?$i?FĴKәil:Lri]7,Y,Ⱦ5δ?vdW.ô*/dilgLc1´|jK&?졃y~D{3;X""ڻ2'bFe[=DŽ2R;/!L#1k0G8'0a%$}ޙM9p[amW) vV֠Bhۊ~; aI3|VJ +χO'X{~ +ظC)Ϗo 4ޕ|,<߹[yw%<߿d-|gV_]Q|JxSA<ߩ{$?)_BݒBmJ(eI;Ybo?:ކLL>J7YGW&2gAͮLKw ]Ema~ +&eςɻ w(L:i}kN{s+RwԒJW7/eῙ(>(:+Z%<+!(G$L>dLQ!ݻfYJvއ/K{[CސCP \aFՓ9&sJArPGr7~9O 9)@ٸ,l⪲q6n6S>$l<~r'(6rZ)9wvZ5\!Y"sBGWLwdYPN‡LtJΝ +9/39% j<)գ1Ge&ۓLnDGxOtV2I;/Fֽ+WY$ : uL}xAWYFCGGcsbk +WYGW$R= +W@!\=L\=|dD)p uRRwBM ; J{bLNph\,\= suA _ɺ%; <'\u' asoW$N\yC2/7IH]r +/}σ[_ s_?ߵu W!7)WW|+E_%P-YOt7I:} lvc _N"@o/(\1rүYPM:QοJ.u{w}߱oeriG۟!v5_|c@25 ,M8| X^@LY~^冷ڒ6e#卆'1(b@Rn4yGЄʻeVRA2f)6Fݫ>iCIsjvccY6=u$S[v\i A_vnߞv,KjxZ#OyWZN.TrkSGb,,Sq,M]rhɪ#hv[yq x1>@3W}5>'*f8hig@&D~܉H~'ǠbH"]qfiU-C r v̩;,hI +@ (b"bJ^sQMtߨ=^."*JT"Ao(+F[ӓ\I-dQ:L! Ś+6l*-pEp{͝f!GgvW`4t@Nw~߹W$ordwz9eg-3XbṽT mG^=UR4j4"Ruؾ?Ipr;ߟ'E7Oȷ +Oڨb:+A~+Av}d( %dA>smRr+ )OLm)kVy Q Pz=#`֛)dpFUi4u* ʜN ;TzýeB}W`"so4=(ו=/8-yARiP$7ˡx^!P8<'pB +qyO۔EqPt=s:l5s1p]vm\:=4FmjD?104OlJʰV{L'yLl&V6"[ڸa7 +p$-`\|::^һ1$ !]$>wڶ%I[$ JI?Ine%6e/9{zRN|NHSs!jt!Yw*ϖ!j]G,H +-$z&,<(K:C:4~)0ZPcVȒ5Yux6ido6nM=Y tF&5+0EͰ|*ݳ iWp;5gk{ggHA,kzl jz +c4ztJOIbBҜ"wҹ5b%[c(Cv*~#=*s0QF;Y ꫣtk!k +O&:7ٳ#Nb{'JSpvDe\{RXCznhϓ| 9ÕA!8}d槴{P6IB[@F,i.)+II9Ø"ɏ`)4WISVK$f6)Opf $9 t)2$ x}- Ӧ@.7q/I5=rIog2bf`f>v | (WR[+.:f=B`Z`q(a`n8#P-0cr`h;Y`Z2 f$fP#]?vo*|-CQo=| (~@ J 5Q+ۨVuk V `gVUA{ MZ" %鸡U=٣6QYXf9w^` cIBͭ 0mNv34`͕ݟdC̟ KAOP.2W*D˒O^vt43b_? H=.=Z+9Pڔ<3BџD'TIpm?#Xse.&-6VHPBt3_oRuWXֱ5Wv{ʄXZh>čd.N89DŻׅu +Dϕ2k@ {>AZ4wGo=ܠG_#,F5ȄQ +fԔ9$K i24cfefd.p&&<ʵU $K><[F5SaS2ZK%(e +mjت&*B4iثc%ݠfc#zHi}- &puwVؑRG熭h + `ZͰfp`1{Pl7. ;Ѱt3DRdѰc?ڪDӨzT4U`8,x7Co^g׀'F^nހג!lx͋ξ '[_ +b+`9AvG5C*pX"8#).X"d +$@_B;"*_Ar5N +RV&"xx >+I@*y^\*PM Rg9r_V%|&x{P7.:^Oa/~?=}~"n5׹[/AWmzr-9&~6?ro>_/ Ͽ_X|㯿?/iڗx?|`~۶{6ͫ'y\??s1֏{f!I#^sˏ)`Z\oyWftߝi|_.7je9ls N"rUԲ<ד :?=NNm:8U1hcjE{p+]c hV\ud ?:!Pe,;PM@~uHPUp@D FǝLB V@y7ڣDjY c@#G +'ޥz~ױbNJ<̨F8cʆۮ#Ox=Ŷ_lt"`|Qm1E0)ayzv~?5ǺMF_@4LPYnsK+t3I=RBC(Dɣ> ,rjʔ@1&PUoe_ .*yT g@ىu!N5 |Fl؍F_8yg1P;@ء~X~PGrs +eԹN N=-&U#:t}ra;W!b 0kh^{G0]Pv`H ^?.9O90v\{τ0v&3SH x#g:Ja#A[x61NaL1A;VaLaiAa c'Map`=V +c ȭ=ncgo4ΆhtGMZ QZF~F"F)q +I;)A/fzXQ ]`A{daz=zK:#ymE[o56fA`#(HBG|pO={ ҩ9 4nAY/ЪvecdQ8=*1yueBȎW2ε伡/k.}u"G+ז!8qf}TF!C؅ v[Y-d $RVm 6| R<®ÿk'6:b;r8jաG;⏵qvXyǂ;J̉Quq:.n:mUlw;Y(`V 5P`+Y%K?wscn"̲ ʀf+ =p8ӫ:bŅJy̏putٗ,iyZWDWʬ>CT NiJAr*&j} +{ diG-"1nEhsnJm:+y'.vdB:FP2yAe%@SDz{̓ squ2rk5r#Ӄ+.4xu_8 lv=vv>P_"SћA{쥳8"\eϞ~vkV5Ot#0رb'Ҕ/C`p,1 7II#hZH x:Vֱhǁl +BGˬ,ؾ.s *H0m--pmi(^9RM +'_># 6ẻ΄ +K6x7ֲ>-}Wf3 ϟ/toȼ*>GV6cO,-f¬cxɽV'xH; 8-xQ v>ux!f,d8u>7(=wRz$8us?Tb%`>9Yq惓Oy7cFo豣<.5`<tFk`[`)@{R0# n#yv,&ّ=v`, `j !ZETq`XHBH2Saa[{{qBf9K-IR?8ڒd2E@P0m1S5v:0cST@>kzvFfWxJHl!Q߄$[Xɀ[ˀ !!N"&B'rB*W-qH.8|ǘ*'ܥc*S+셷\ 2"(cIk ]"xWeEߞT~BV]%"2pŀjIh S+s?n:dzhbf+ =3^!b6wfpu\x8r>J*3԰,XZxk84\ ٪ I_0`WkGDp%7|ln=u*<%+V#hU`N +BG`\*F6l]#cbB4@@jXtM..Д\Ҫ TPMiȸ=j +=`؍F_tك7Z]a㲱?T{ӌM6B UŒ(v@ +78&+p.|sȆ}H4{ +@nj fj]9@͖>r\뒠Ⴜώ\{ʹiC4P%|1;c!L<]84# f`lαiDr{DE( a̗ +m.ub2wWMb7t(KN +xNXƃ{+p̗M3A}y2Utя郙så~C+J CvNApՖ?ݘ yWmEpcŠE@kɬ#<9l8U9C9ztK᱊࠻Q,.̃i=ҾA"RG>xEF=G%q&tҜk3k/3h]RBJf3jaXxFͭc4U>߸c7&1=;D=wC +Дv#<$b=+5M($="Hv&kHg5zxқ'/ސQ@Bilc:{M6q@[ +=n-'eOyT"͢~*XYVF7`$SiF +OOdh@'yU}l}@;=x2Pbn7q{(CxA²NXGwK̒MX[&_ D[- tC\'bߙ%LU&FUˏ)rM>N?kA);ˑ+\VLRTƒY0._G2xa ^yE@wEXTx0hHȧ=㻕YܑNb]?5U4fG6Vig < f zN?+*jW0GL%Su<0OXREIBW07W[A˝s %{*34,rZҲ!c&t E:s|M|Dfq[҄4z ,"&WigiblDĨNv/|uDZ@Al؂Fc/ɗ$|F9 $_d4w;`{+캆Vx{N5~Gx0+v *`W_ m6%y?3 (Cu +"8 ǏWň+ ;۫fk>u'_v s,,wRkb+B²|sզ!JN&qU +v $# ׻z7{ܾ8yLGݎ/ L+1o A\Y3(&7 xc Zr] }`16YkǬ&? 5qWygҀEpwu#12- +Lˮ u #%qJ17z}W8)r58ԕ+@?$vybmpU@CM)X|P6cs*+) X p.9䰖 + XlNg6hmxAHD.}2F>{t)skbțic=:Thxo.dD7\Rw! K) k{Eh8_w\up* upn4b-Z@)* ?LIcXtw1q?b҇uգ Hm{96 2l:1gyPxQ^(FFП +B!yNc:͵eHM&Tb8"G!o|dVԓS|i)i1GyTR^'Zyh>F=;@r>O\QKO;W|<ōR6z /t݀`pouٻ|E 7Mp᮪6%] a_Iw;i3"N[;rҢN?ՎK7u>PSDS=?gX9sQƿ fpF>)g|"SlZ˽g½fGŠ<t {:#|z*BndK1\JQ= R +\@['hDQIRR7,Zv:j)"wt7@EtS>p:~ת+V\2Cȣ͑KiZ>n#YqKfn/qoeȳ@7ˌM0$3 fT& H՛R PLԥ'pb-{.zroڞAP"hdLQ'Zyh>D=oy3'wo|A.;U.Cl=Nm0&U_L&(@bSejRtNÛX߈pvD4'#^"VN1Tt@!'k oa޿RmU@;$"6N%l-Z@M#R4ӛpQUPI^b)|jk7)mo޽4p-)"cBC#{<,O.Cpԙ6"wn@HHo~Ц9z'h@DCOs= ̂N'(S4<*W)PԪkD.1\q1.͕ѩhL+A+dw?P3jTM=Mۻ2gՀ@)36mB>@(+JKދ1\Xucu23~'zp2SD2ˢ?75Dg#zUKD(oTT-t@N6oho887vw|w)Cf7[G8b~EC fHCI.]$e1]pڍ|({;+*yI:Q>6{qțnv8N 8p깹f5@lsxesň'UB\?ִ3e +q@#bpL5R:T_޹":os$%S} "1G;V#hד,is'ͷ<*W)ԪkDuEv)]S/@(("Ɔ6#ăizQNz'I_Pc\=z{N+!\n z=sS{fڈ?̻)b~Ea Q3Ci{Ļz1Nl9 NJmqMƈ*mT.N\T!mpq\tfIx%KzХ3+,c +ͭEo}>\;- Ne#rb߸~z7'[clWMd,+[9O7М ߄| n@{]N5u#m#bFPdӴ]hÂcf^ER%f F`lD7\ᢗhM7o)&A&hY[&z2𕢎ݱlLTǍ?lbMMNQr)[#05ňWUm0AUPZ+Si\WKMO wy"cm@d^nfd`fH4yH:`躟ɟ:`w:gFx2]PT:) +/| .Pl'vRONQh3<*?JR6͇cub]+S=B%WlJL;REL⍎Գ8E|w`Xn; RGTJ퉸mF$wbizQNtM2!mוp%=TF` xf*|ksDܩaRB]P" +w/qexyIxN2gQyN^!eyTAc#|CWpTsίwurSltW;`!۰m;˱|,O65wSqF׭i/b\?AN֖׭׭;}2ڌE;ߊK*s/iԓjYl8crQ&i󎙱Hj#c8ؖ{8%3-љ Jp) Zb#l%+ Fq,46_@Ub-jdZT[)Nzv8#T\FC^P(A kCdNtrr,Ea}ԦXÇڛ ditM)va][ȣE%ԝ&ˇc,"v/6|_Dl_Dȏ Zõ03]Jb@#)jCb?rQ<1 +zr2@; G%qrQɞ\j5zE|&*vsB|; \B6_h]J2 h6}8ӱKRb#E],?|0RmʥVmhEuEXucu?=@ڈ.^`R\XnE!+_)Bڌwο/"PTXDME҉p%=TF`xf EwD:\(gp.xڈyBLI&YTF&SgUN57<=](dK ^^P=d7R:pcg4 ]MDx2N3[X=< rl9=aw;f'[@1nUG#[2ab>1gw–C5( 0:YW>m-yVOu*q1_%*Lvљ*"V¦-wȄ&ޚ|l#\Kl&oh[جiEq/F'W 㸥js#N˱ȴS ^Y$UA*6EpO*wo| aݘ¾-,i d6ٙ?9⚤)xyHޘX&8ӧ7bn`4}[Xkp_na}B¾NkZ )#Mo09`|=5e=f5;V(\G2oyfas)c~~z RKޏՖyp塑7b& D⭼Y |x-~s3o翍, +7rqĔqxWlgMb-*;8 stVJ!]f %o*ɭ@ ApX q.ft)kdwʳ3g?셲dOw(nyfV 7/ B`h'}zEc(RXPz4jyrl1%\oG~>XkGR\Lg:nmw*w{~b\O%WX#7* +vOú$L+42z_P=OR^>&Tvmu]3jH-wexz;&̅ + +Grbk}F0[jFރw'dЃOB"E%,[/Ʃw4[ $ b!DNSt.ueQd\#F1y"宖 ܩsz颎o!ENםr$r&SSNAH#9Tdg;} '+#ivhQI;d\7Oַo}a}L,!"/A:H&4=7<kH)$=j !;uxNj&k&5f\k%D$x A1;I#jw2m393) $֣wl qNjॵ8s{x=`NqVhT-Qo1j&9t8='﯅e`+lq 䢳wALb܃F7ekѢ[& T81 H0t1OZKE1\/=@ZODz^> _B7|>fwMa<^, W@h +h ,hlZ]Fw]eU?Z_]o}?۷uu2AZj|#{gJNJ.:d˽qhjFTl ϔf )n).j83UхUuE6B䊖"$G !m)y^RDkBv"evu/@E:&x=mnޑB?yfU5Y= |, 3΀|U_tmchߪѾ@r쌅OzX 5Ye%{yFX,ջcsU7@Zin_A6hm-8o.J +pk*<OEs w/.Ssƒ>7+6'RY=r5~@n)V9lg!_gRnݩ&nŃntX]zR7{n7ZlW"*NWdy~N7vTz(ދ*'.f6l)Kn%RLFJ/HM[ӷ*r 7Y4yHi5}l_/6$UHK;dZylAjoKH~EHsv}PmS98Wn\V[iIdZW[&r5.LTN[7՛ v C^"MdU1 B޳fkqr3Ub&nx"j4(z\s,,))5U>jT1ub.]qdA]:waAX ^%Mc, E<}FZpEn57~+W3r8w(v]sΰFILi="H;BGDN^YݔG')O0 +>&E{Ra^!oW`|+y=fB{m`z bg{}TQE>澍\7j΢ݼc=WU[']M2V2M5+]&T]]Iq$Y{q/bTۜy!φˀl3 d4}H'HKq:}'>]0RUt=>U="ʡ +v"gB1[=A2(1_ +PhPhF UBoP R(t^@( +E= +L;NWv)JIiPTUB6U(B jgP(pbB+B:3P +Q(4 +8@!+0B +E$܆BנPt Auq\A/P(}BV( + + +Fm PMaP(% +Q + ؠPBj Ph2BQ"B *zg(t^nUl +`IGB$ +AB슪ӇA3( JPh(*ǐQGE] "i(_"p0dj6覆ʠbE6d̐рzRdt^@>$Ajv40憛"|p튛^;-nΘE7t`ienhnM;b0tU񌆛@FՁDy7ph)ع}:P@XJ*74P;J[Jj3-PUu(1N*P@)?J +z5 RрBIgEF +TR^ AF+: +2:Kh슌I@(!xz# >!Om^EF`"d ߊ@F)97Dx'RѷPHP $5FܦFF i it )*j̴P@ZD(F[D(F;)pl ))IT|GT͎Vk/g> TTc%pS8 )EI:}ۑIMHz#DNZ(I)"T9HEbhUay@E$ MAR.0DI1 $ uq\jV }I#luC`-^4Do}0ƋAJ(6" $!++0Ӈ@F,^4`PI'p"fŋ"hEE`Z(+Q B@𡁤 RAR@N/0NXEŋxQ n/ +,$g i^Z( i +b?@҆*H"Uag ) 3 ZIIi )f> +NARlQGY>bᣁjh>(>Q">"X(GQ^ ^ 4|ش>Q ŕcbQQ >>G1Ro \5}P )|ITK߷eKG$Œ@ҀA$a )$xQULIk$ @RJ$i%͒GI"Xq  syύUT4jNZI5e`j/:""TART@THx@@5|4 ^y0S8';|y}3LQMZuzbtΫĕ@'5|4"~3)LOfzf*f +0Ӏ#3ź0ӎit3L;jC1S itP̍FpB_0$3c)vILspi nb>2̔Z)P1Sgf)+fZԻu)fZ#t^\9)uN[,rK[ņF4Ś54{ 3I5)|k +bMQ튙ށ*L6;\ ܳÎ56) 3L ;Ś,ٰXSZ)s5 RcMQ5I5E#=u)iXg-59,͋SFϱXSDZipu) bM~5ӗ0S[;1kvjǚ-bM-XS%[)ZbMbMQ5E ji9eB6vM BEA-ǚb +cCAvV BubCc45ds-ЭB*laHog5A BP6aSXG*J=5MQ=opBŭm@T + ԊX'KڵUISE> 5)(`: ,@S`YGMyKk@SVh@V-=pAM1n8 4 RASJ:M#HU-=aiW4 Uz,9&j*;$َ364V;4N5U86"KuBc()p2CI}:FQ8UPF@h6JFIAfrHJW( %E %i()K:FQX 3BFIm()EJJg%E謡Aj'bV[r67J<7TuFIѾFd;٧ JuPR+CIтT}FIQWF¢HَhTȕ s16,7' EGRX>7)N~54?o>qP+As9Xt`,a8h8hD +dpАUE|ڕ R=8("nrL8(NO cS4@DA^AG_]fyh( ݰ(Jd(p_ET*B  +")E-v40TE¢@_E;jN D "`Qd`QpâM#T(Wv>+,\, +L`1R LеXJ:8(^v(kEX(z{1t8F,Z9sh1.D6u>X(-X4ɱXD@ D νnR'X>#  {/l'06>9!Au3!|C@I}W0x4)\]bTsOȀÁ> +D XY>#vrw +|Ի`ex'L1D|ㇷ%>Ɓ ҀO*2D n84E>O~' (>; +|T33d\m3N+ +|43PR\ +rp>qbG#Vࠪ(Ŏ")>CVMJT&on4ǎb1ވ᠘ tꍤEj(iP/5)jbGd +|F!!qp}0po5a' lOL' W7vitF|0?z'HK`#4U~8eging[;vm!+HhדknSW~?KvK ^|8?O=/Ɏn$#w>?fӋGhxl ߶nd[?KvatvWXYZ+ZQ7)0I~?K·cF5+W?ɟEMd;7[>6FV>K? ~NdH_}>?Kҍ'GkoUm?G?ʟE;E7JuO(=<l-8I,-XbEps'?Kv1+- ?{a|6Ghb"|=xQcag.|g:Ϛ-Ң.@蘠+nqQ,-ux}(?YZ?%|unjwŋG@؏?ȟ_F~Y +̌O~Y,-ʫ +~h'&~ 'gkxaDޣY?5i?ɟ_NC'f~v;;i?ɟ_ƶJ-dgiѮo|G6G?ʟE{eHc1z?gho.M.*;]c|ZҢ]/+15?Zk$z7*>cGwgiѮ:P]@ڕ?k7*I,Ư 3h5k|qGhG{[Əܷ~?Kv>Q;$̈́_1ޫ]h )T5]ɻ8ʟ_AHp:o|G7?0YoY/o^p7 +(~y$~Ha&ZY-]N|oc i`5~p~a' k6uv9 *vYZw_/ֽH7YZ aeuƇgf|giѮX۵~7>f|Z/N,_yp>f)w?Kv=>u#v$>~A,-5އ{GY,-5`<]C!K_\YZ]Hn iB̌Ң}^Ң/|uȳL7yVGh#2H;YZ۩P{7^w?K$;.te>Q,--ucq獏>m|BȏgiѮM``;ʟ_~;j|Gk_'h2n N5i;ʟEO?4;NGKGr}LݍUҢnto{$zp?jNj^+Nj(w9_'nʏ_W?ȟEK|l~Ң]o]7_?|]6YZ? s + $&>YZ8+|ʾOG4Y,- v댏~c|ugh׋%VJƧYKͽ)$>Q,K\e-Qv̯$:&|5/ˎ̏Y,-mԍ]?nY,-5AZd/Үu'~#'hcȻ^q_4\J~?Kv"B:&bWHǍ? ~Bq}w|c_,%ygb?YZזQbyYZ,~Ƨ~?Kv )Ln:= i?ɟEnNNk擝?ʟ_~k_Qut%bg׾gFİ6,e|*Q,kV}J{#JJ^Q,'gaEFvQ,noR2;+;bgHZd_Fe9˟E]-W+ENm~v?ɟEޥo,v} $>nK~iPqǘi?Kv)wS?x?Kv 1bW~l~Fԏ?ȟEyQhe>$vo(nGʨ:<ʟEȈwNڕҢ}i^rdB>Q,YUĈ3|GhOQ|>STY,-5NOW|ܴ/rLx^}z+;i?ɟ_~kfGoc^gg_;v+$r_9ү}'^:ϯ|Bgdy;GG:qM@giѮwb['Ǣ#O3Q,-ZxrXU*ğU/Žr-4ލk|Gh~dKm|Bgi.Q`$pYZ7}Y Sa^g]Ң2sH +?"giѮMUҎ;1>6Gk*o!+~Y/jڏ34Ң]VZz$JO2Gh1㔏h}w$v?Kv Joߍ_3YZwN2z'$&eF~?Kvth3_OQ,-5XsZcV6gi[ץI#ʇ51EOgdO5n>TY,-Kh~uއ#ʧҢ]/yn^h ?#zQ,-5 + qQ>ɣ>ʟEEeˢ2$>$ٝoQ1ލf??Kq='(~WK.cۜ/!rN{oz?K +ip}?_II,- i"=~p~$zmC'ߨJ-$:&P7bF}+~?YZs|}/vČmY%ٹ`Gh?-~[~?KvtFVc|# MI,-ګ/쉃@ 7͏sghKZE+.TYZC(jNDTʯ=/YZsԨ}/gm~xVghxǬ5̓]NJ~?KZz˟E `Wh:q,e|giѮ1*̏8YZ[Xlo>Ghp91|(w?Kn!KPOgiѮ/E{oϽ$~ijw5d>YZK8pD71"Ÿcv?K?{aͯYZw/y]^Ɵ2čgkz}X?8g闿5>7ݟ?˟_ :f`'-cW,^OBKJ(2&*ήowfOljԳYZk{GȩZoA,-YoHC⼙=ʟE]r?s~?Kv _Q>vЍOgK#;1Cш3~|qGh`xFv'(,vw'ƏU~ gho511YZK8NQݒNa稍OgiѮ'p12P;ɟEF}7i׻Чg'gd0,ɼƧүmL]Uw?KvVƏ=YZȻpv7~|mgin/L"wnN9Ң]"Va> =8ʟE4qz>Z5겥 I,@}Cu*XVGhH TIlqc3~ܪt?Kz:L_+(iw?Kv @Tfi)mW.Y,-ڻ11Ճ͏>BOgi.!\r$0/zo5?K$;=zzoO(~Gָp kcqB,~꘣1̍8c2>qG˟p;ƴ3>VbƧuQ,-{)+/ޑ{Ni笌99ʟE_8_ "߮įU/Ɏ-B8#ޫ6?Y,-5!wzr :,b؛am6>,, ֮$ 6bH蔇"Y,-)]:=~Qk{Ư~?Kx{7ipf>YZ{>?K$;vۈv7z?YZ6iWGho9wFzԼuYZ i5̬$''h(W.ɑLkYZEkҾi?ɟE BE sxVgu?K$;tE;Q6ƧwgiѮvEڕ2?YZȻMnht?ȟE>y?_3?pYZk4u{7eM5?Kv{k\+.5?KviBZ}v}C̿&i?ɟ_VU}( "7f>uGh+U HqwՃYZD]j3lK'(t'|*]oSOgiN{ +_ s1hW6ygiѮ 3iv'COgi06?l؃>˟E;]s(|}F.c3.I,-6M>v,폞1>iuRfwo]qG[K0G }(8c2>qGhK^?3?n8˟E^d8;99˟E{h~HBsQ,-%#(kG}?KvV pJX#N_Ogi$Lk~z?OgdgpxއGIYZ:o [gwq?K.Mb/r[ӾQ,-[9—1q,c|ƧY(tRN$~?ɟEFebOi+Dgi.]2&nƟOv(~IvρK 7vq +,Fz_*d|*Q,-% оזwa(pдҢ]/2 isH{[I~OOgi>8pJ zaGhos|nYZ*Ѩ8X)pڣY%ّ +تG sXO(w@\׸KmҢ]|5>lҢ U>@V'[w?Kv},7cˮȽ'hקt}|Cڕ$zm0|_)m~>˟_Bm[ZIm?ʳYZk8@_m,?5i?ɟED ꃴ+?ZNҢ]V'+l~֝Ң}6?{ghJ7lGl~/Ɏ;2&'hd{rr?K$;j1Qo|Gh2e uG1~xghKR[O|jYZjN.[IugQT'h(ܩa~ڵj$w ߧjt1>nM2~TYZk*Im}xY,-e+k>?K$;Nۼn]Ң]NJ\L{Ytei=ʟEkK7>Y,-eL,b,?OYZ˘ݽoSA5?Ң]^{w4chXEҢ]Ni;wfqӷijY%)&c![JEQ,-%7:=E-4ޏgi.8862Dh k9ʟE^KHYZV,Q,-'~%^~N(zɓlkX-(?TYZ]ȝݵInmV~?K$;O t[}uʏuY,-M住Ңݶ.2nO1OfYZm2v&j$zc4V]2c/rL|BgiѮj~ {?K' .wT'KKɯ3><3_w?Kv0}8?rs~?K׷?]۷2uvݰ۸hkZnns;+C{@љ {g*Sd}.)iλ0 +XZ*X*TbeF{Y\l, )j,N/GQ)OI518 +RJEzkIx^Wˍ5~"5C^"tmI +?^g-7}1ꐔ ^8T*r<Vn5 ouX뭺`S]BIjmv<*PC%j8vG^H;jٰ!cC%8MꋆUv}bGr3HHJyPCO8j_Wh`z3T29~UlWyP*^S< [jL%Գ)C/uPg(\bs" +H=_!)+eǏ(ÎLGCxш[AvU0!Qsj kqPu83xAmp0}NAoޫ"E`n~ Tf^"s!/Gލ7}v7鍴q^;q]PW7QWt$n`S~4u nao.>c}X(*R?N<_o軃}îCb[㞵ٴQt-(7?+HqXriRJM1 Գ^&+w\P}7؍<8ݤQ2v+ V1CHz\K}q֍ظAzK}-h'6c=$VhvX?=[9W8(H\F^_v|P Gn#78]g`0 9;(;4B.qZ~"/G +N5}񱺗SMR^zD*u'ƹYxƁF PF1 uhn٭HYhkpC4fZ0؟ɻZKR>`%rMG B=0YP^(؃@JxHƢNZ4Ii/={ݨ8Jfu!:DRN 5H$FL~F V6'd(}&L1m3{3dŨNԕvz8:='`Z $7yGddOOʌ &$b2WV$c%u0@zWEvU6oVL:YZ{1 33orO%i)[dIĀ\?SIdg:o/zk_n.H]~ yy$~:j{8rI'yl]EX.@[;Țym""obj:RT´91Ӈ/Vk@dgړ9TC@U]T;Hw|J JNdț>M@ci! J'H<_yVXM&N%߉"ɤ|QԌE?lcd2"2ט7~#RΈ(-.\3f5P'1. ^_$sa&Â0%4 Ԇbоbb+Fo69ť) +6)'$Wҷ6@lurOes^g;r[&bȲm|[d:qQO6֕R\lWנ>8?dc |]+5ҟAa.Z;Eo*/?-*"[kˉc|jb%{(Gm\%񮝓5>c9@k;[I]f# t'$wOؤɵn6mИWXJnݘ(Ƿ=$I++M`B^/;o}4 `axc?u=ClY4J:=WR] DXSgªůˌRmN͙G +'H޾ DIzUrVުs~~#`{Ŗ,Xbu?bK?m `-Ps  J Wd2}&BgzDD)!];eA()##u=POrte%k}AFW&K&[Αϝ>T3L>"E "[& ܣ:s"F{3YNčm!sk?n>~i {ԱZDnZ.Tä_+FZV 2+_vJU "tM3Z! SvҮdƯHT\3I&VFRSoT&24I#ʼ b} >T_]urĔܓJCCv4 &޼tVl\4&3 ?c!U+)Jzbx %z~Kj^h|Drd\ۨT!J4L✯MtД =Un2( +VR@E:)́dO?)ZgPDf72&5im9y3>>x4a+:xx;Bѐ}H'D5:Oс {Vfwdc17/{DMIrL-%+:~hOjepFKZ -*ݛ_ݙPm26x2 ]-Pn vi7Q0Ke!2u<R-M8" +H7&J^l_8^`ETEt)kZi$5G[Ւ 崗} R7%j̝JZgI&iDDq dXx#K u'۱F/Ê5ĠW? aSI ';t1c(DdK&H)&GQ3 eQJXR5J;&HR.jAr H|aoCId|L/HT_WkHjȊz̞?$gR{KuEܴMF/j_hdsShAͤfK&fXщ+6!> EOK;n_ݎ^n곗V$gTEo`;{:SNU2@~IiT{_gcHlO'p_b9ojWڶV2\+b7E0D#"-ưģ;3 {)E?/F&2).ϊ WmDZN9Ἢjw^KADZz܄m9ًOF0ktZRkn%HUW͕'BAM+3Ds"*I!F +(}X;: oh/~'RU@D +OtAownL%TE{\? ޏ Ŀ{%i 8L;U{<κL[%`<%?)](3:#'h!dMT$>[](0b[;juM b1oD,c +yFL|L ޜKD)q}&(Ȉ 3oDV}c6 "~'"uUT/lE{x*5NAXpxi_ЧK4dˣ2Kb˦l7' į?@fo$\λddJvl9\ef]WaxDzm t]> a /Bw_y11*Z[+4WQ:GvkΨxGڅ]xunʞSavբ[jYv?I'(w/S3\VgtE^V^8Vy\XnM r;d5"6Jzdh$5"}mWO &oDZb1JB01`\꽫 NegǶXLegyK N1€TGh>& BQ:O{ۡNNCӏ-TODo,nI4,ÎCVߝS> +.b>n%\š3Wi-ԢH5UQFB6FKTݺ%F/t!U=<K>n&BYc h~8["7]sidf9P1*9~#;kD9l2Rw#z wZ"|"Z7^o~zNz#ևܱ[L?A#F[ɖȕY_PDrDunS7 g-  cLįcmrF%r''YkXb;8 f%.dg!j7A^vK3a\b%;; }V,]& }[Np>B@5Ne"}q5Lf[݊XU`tQƔLIH"rM\yBڄCLw ^OX8y]x͚Mz#cvADv-][xx"ȝ!!0REĆ$ƤGx^d_bљ4DNGIg %iu" S" +O FLՌP+R%]Вy꧓`D$>/):m#ƿ^89(Qn>5Nx)w+iA5릃5dk=}i}A&2w]_vTȐ L odkLOĕk#=ctiAntI}">&m[؆V** `M1Nu5VZL౨h.&Jp3lcݪiGXFiJ45U.l4ǝjzԳ! Jw[g4Z~G+U^%M$ #[@6 8^wfc7IHa,h:&7En0*)PΦC`7&YBͼtK`qFZ-c5Ś`,F-cJ,?w$*60@'H.Ca,@+(hRW,ssdɖ>n%W<)nE\ژHJ0V;~%ċ\QWv# +_I'%FAr^+$LrQ}"^afrSCDCo{ph{wT6W+ucS:T[)*$(@ S&~;2.0MOʼn噋jF2qlG +ّטf_{gM93* A*͑剌ɇV-ON˃6ƇMHV7LqT*$)_h')>y/H3`A'*)4jmjۚ m;nh.693ޓ,L:R&3ڣʕ &S7i5-ٵȞזSɨiמ{PD'vI=9ɛ[S(HNr%X{6*OpR0ku|Yw֧ISkv e'.r,!Q0IliO7j}Xl1Ol>>+M쩄I?+(>/LNIw9[IfM{k@?oF724xwpVJ$2b"J~M:J#( 4]Sxj? Z^Sdi)v-T@հG0Z#A+գ.,/QVX y-m{}͝O-[Vۆ@+Wl_bu-Ũ +jۃ<^[jNbŸG鱄eLrmf"I_jK"_^udz{{ƞyՕߙYFkRJ'9^bjR-pTeeQ@ n {ZDbȉS2p `x$ME0-eGDp?UyWnx2xī~%aM){5T!F3ER^orgE9J#$b!h+̣;lqj7+nN`f c,lDTEL;ז- (iͲ:,n6I"G`]X_ r%Tô,xZrq::)lY.n +ffY00p̤#n{Ng@x/q+SSR6Fʗi0+Fp@PKaZ11VDKX ]Gʓ:ޛk %^r6)a QKLSW-+À:2"ZIЊ(b8 G+h'the2̣V6Ppe2̡WXWbwdQU)xYL:t@s"3Du@V6i8h@è~ h7DK"̸QZB~9u`jo +N5Z4RR@zT oxqXCtBpzX3&"DkD5rf6JUOf01{B7Bo[8sɎf+6j¸Kja殮HL5G)_ RǸeK}A:;\ '}>~I)Bt|=c4M cDB%䃮oNjtRc$`^ Z;oVxp8FB~azEjquC3\z] qlM6KTw 7ق[9u-5D}cuF;h/Q `nԋ +nOj$hV9W8nR\S~qO\&@һy8}3?2ՇI?r{m$Ja{.sw~} Alt1}0N[ MO:֠dƐݥCH%;0)=0^ƸIyIsתz$jM>Tޭ$'=tJ 4jUC/6\H]o5U-]:Or7FC_O]wfDy%7ixWIpOXiq' w3.{ǹ"##ч-[Fmŵ0лNɢ[54'иŒ,]kflgr™-.ѡ{Isz9P/|Ƥ,k!> qTenŝU=<.͇XC ޙ8?sN:J +I>9JkdA˸ܻ n"g ó4~s%VS<%". >жڻ޶0Bm2`[P +ZVgyԮ|>M(É8q▉[W5KVpzP'Ar +^[YI=}b]Qnv=1@4 P0>xXKyXcUK<ܻgR,ޢJ @ӦŃ93aWBg$S@BHs,݁ͧ=k|?H"T?I5?mxr׻5fs: +&4WJkn Z6/Йlb]OVfaNtxzʋu\W~_ZMhxzex_8/voG?BhmwG wD E* 0z)s% .TfXUǫKʊ}lD.b +endstream endobj 212 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*45Rp + +endstream endobj 210 0 obj <>>> endobj 562 0 obj <>/Filter /FlateDecode /Length 23866 >> +stream +x]̧Iv]μ^yYfiϮo_?]'kVZɑ-duv<,ݣxf!HAB _ ($Xe> \Y $Dzw~zNA:uΩSNz߹wqGO~osWǽ߾Pojmߏg&:U9#ԾrZ7{ux:q38jce{Qzjqg j&޸/: p7_u歍oj+]~ rMiWכ8ZO?}1 +Xk_M=^?`vj Tě>rK§//!C{~Ko\w?{W?/|j*~?ҿВ_D[*tW^){!nҽ:r;߼zQqL{߄zdp~ԁԑ ŢgOfS(Lb-{q0zHX5ڬ\3c91fN5NkK''o϶5}꿦Qa,9XXΒG*憲mCqeGs-@EG*8+Õ잊{ @P(#WoHr||t2P8 g<0EgyH4P8J!cs&d@2Jqk12!=ТL㣩)i@]U +`bYA*GgEp{Sb뮬moANmk7_$9@ >&̞IqTjjg? w 7CBqB!fQwxNG#i8mt] sه0ŲNmRBaE<9H*iM:Υ&ބٕ@ $]a*Fgw2'ZSO6_;e6Dkc%>ћfle6n]. eECE +a*˾,] L`ȅEK$/i=!{ґEiDD8aQB:jҵ[Fk0ٗmm2N&/؜ܢʻEIDUH4 +I_H +a PSXQ)řQlqvQnm=$Ol+*eTct|Y-syкҜ-@FֶxMA^9>EI4|wGv;#j +PPm;nLݶDmtՏ\ڗ-2Awt3EiF2-2^9>z2a0o`?D'|& lRфh>u4ע:0;auepOŔ]oӑv?e7:#:^9>KEclp#8݄6 >EqxGzeZ'lݕJ}k%9o1OZQA^9>.kMYC6:l ,֓kkۄZB (@!4Q&4*WǬwgY,eho6)EU6Sy([I2̣ +S$؊1Av +c\myUU} hmP'6sC˗&_M٥EusAu0=\u@wV*RҳMM`+pWYum,`|i/sL(Aݫ~k*j.ZJ ʢwh<`+b5lb3>ұ#gx+EoAm^qpT3ݱ-ܲ%#nbNh5Ahޠe,QШjՊح8meoY訛L.qrS 6/ƺ%bͱ3/X)û.S"$-ʊsX[[ $=ӫYۨsKAyxjlk}"ܔ.d|B³TAf&0Kb+/;Vv npN٧ +)h _`!sUlh:8+Nhsj3IT)Խ9tFuf"G|𩣹ݪc}?RyV^k[6.JFF=<ӇiH9:s A ͌M5nDW3c|Jv&*̘l8\p: ͌|# A.NcMaxص!xMHoL$-fm'@(fGG5;kt#+<%;d7=`-J}]EbJtDe~`Y`"IZlQ[ Q`n99:Bsn;,m&ӬӬYOQޱ#7Vn]#SKTRJu.:..G +n ֐|J]U= !]Eg7գM>V_w@}79;r݈HWQa!؛u +xD**~B#丩;УM' +Wksj>6a'UO /󄍭cx6 [;PFslRAP&_&mFڴg`{6U-nCU y3hNTԶqsV]& (6 3Y-Z*2Ԓ4b`Bp—0p8s޹բMW2n!ϐ=v&H>HjoCp-9b~,\:,GoNf.D'O)_mctNfkxф$F=권NAeԍ -0Yb b vϽ[ Lrv]M18=˺)j(qˢclE.Pɷk,a-cx56klp lz@`S'Q S-]%\U[R+BQWb1Ol*pg{P 6e9XP8\T  ✯q;;ѝOༀOhֽZ%$)6ngқ_t7Q*F_U21T]oӑv?U7y)WI48> vv^:(GwIZ侀Ld=ng5PG.Ock1; (:V]^ n^}Yigin|BVpΞ5uoksGsroB ꂾft2K{R<VfBTR\-ZwмqmuqN6c@S.唳˴Ǟ7Cދm'!~]nA[C.amc#w<cx!EHp.Iw'^)llD`eO{N&UZ<_zև3M%7xA8\Y!+UB!˜ l^4:OG_qK|&EMF;|Ennӳmt'OĵzSTosםjn݇jwlGJo?o?ˇql-UQ%6HOSu.!tW$d1mgueyyuglu}w6Eu8*tkݩsIQH2p{uMQEpY4VRh#{:](-{cB;jMv'ڥ}Eկ켒჏Lf|Tr~7eoEK>xNB06p[FDyk,, 86vxWd*ZQ tV _%Z[9}lgބdzw#^e&ĵL+ToµN3EO>KW k6bbb^ ,DžI4 ;)Mmu xףF6 jcj|aS# W`6Ȼa¡A5`c$*T FV##Yԫ;M!ZJ$Jk$--nQ#,yaMl2Ѩ| 9Gf0qHIXu\[d \EH6vSҭHAܞTd߂0{+=] SE z 2|¶ҲœٔH ;ϑ:I$O@sŖzK8m&wh Ku4uY }B:; g[gCD!@0&PVuW1HLDɓnAh,%xs.݂0_hlp zvߣy(3W@/4Q%Npʧ[L5RZ!Qxmxy${/[4#T3xUŗ @#rT:'Qm2ylXvʉLҼ=էJ l)ڈOs\A~Btmtnps߆[5!XBepb1{d|~׮"Rl?5(x2"! WFoI>E{T,Q;UV)Sù HeFCXk&_5s*!Or凂b{V4u-rV7,<ՂkFV$ц#&,(̬Nj8\Ïm4_zÓ\C0kH'eW\ܪkq)DO8eGZ< "XukTt,k#\M1 T58 ~Sg9|YOc#.@cg˂i]ީ%ڵr4|aAиɁ¨hą"pf@1U f>6z2 Dބ5"+;(h]Tʢ52;;vp %1:*mlݏtq<9&V݄eQМq ;A*. Ңq;P7}V * O[, F_lmMNС2>;in~  3.!@ (LScX(^TLaHtFvjOްY"X@/Ob-ڨ!M+G9c}r֞SZp iyNzu6Yy8gWӽ#ħ@Zݜ.k9kO:dY!A]] u6p^1 ]7uJ;Χ3ցDz UV}g@Y[S\ W|>O8M}UFHbeQ?|P`$'){E<礍l>݈ŗ9qo1 NyGЍLWq#lnE\ts#/6:c@A)k@ҁe@hᚧh5OIvE+DUE ,} G@>)AX'Oa˕J?`P7ugBˆvZˮ7x4H+&[ݨGvpzѵ #hR\CP+Iq1Q2m趏2؂Hذ1Тz 8v|t 5䀏߷\ }96C_goVtb~96_c3;]7yJKHZ/GENzđ;`,3nK =2yl>g4P^xc.B$6>%/bg[]+ +ڲ,Z#j],̷xl]m L@ pdb֖(A*#آnz^Õgcy32|P4S`aJ#kKiY~.wS+kNG# leokfI(nnn67fG0/CgUL%sz'˩VTf"lk@T:LI70{EoC}0F{ȳM-sn5;{]ok\Gzc~€⭏/0־Kq@%OI-jPEN`ղz0Xj  hBJ#كV+[„O,5_5m&FI[bܸUyqOTA+6_ +C!QJ:XǂW,͵h9*!uD0@0@exQS5oz &T/ uak+ltWC2'7+vFކ[WG5U쇓 #hljֳؚ=[Itx>:?ᶻ"\ [Z9 ӻBiQG=~:>4|r.%.acG#▆O_c(Pkme +epOaڵ+ K ؊덇_˾[YHcvpn>NW yyx֙X'<6?@A +hY-u ;ZUTLeJ-/Ph2 oJ &t/5!thciO D<df5`>w#\z!܀ H?@& ΟLeۀ0-S;NuS+H^˴V ei6YhĬbQg +enSDp$Jr-nyZoBK3dVZ|¦vm!T 3vuPSe}PNCx'{j^f:6|l;-` &Z6|{E 1"yf.]!$]}ض^l."fZ L7,"O6sX4љګU|*SM^p߶;P6@0 +#7Yt +عa;FVr6p01z'RṮ Moٗ AܣpSbt T(k&. +4NpߚUWb@ܣ<Ǿ2e|٪B${Ps tĭ(HX|yݸ`|LUG!c<{hFZЃ@ԪkS[o~v~8`lr`U,φgCRj%H% \{ѷeβC#:jKJ<N\/ +xdR;gd:xԭE@5ɬcANA?)(C+n _;гe\#]4NxsKQ:,87P\Ϸq +T%6BǑuPEnb1'6z}l6 }ê(2Cnsq13X.zUm\նfJ*f_1v">=%Ѕܜ.(ѥn$e5I~;@$Z`perF}u<%ilS܄m0tZRbr:FS<>8pυ#s#{(>֥rnXGJ,c%)~9.6ezB$QE#4 X^d #܍P)P|%pf+i8IR]\*JID +aCQ L+t@K30FbU+Frr +hγm~ Xɣ+vYz\c[U&[No۶Z1vT=*]b: 0oM}z, @>V0MQ;0:יdCz\|Ii8fn",: %Kga8V\l۔ph Ɨ񩯇Y.Z[ % =^5s0(nHy @ѩsئqU[n"-wlUBevY#Tq, )QticlW=T5wr +݃ ej)ur ]DT[VeOD +fS5FvhZ)&*o %w2I sĠL=2,R`] "bߤL'kF&r2aEuuK{FtiQަ܂iU!% +tYm jrnjY3]3K]P3lּOYG౗ʵ(&_Z3֧ +v1htPYȔ5).0GCcpl300ZPV(.ɞK3j|mE;‹fPx7Ѓ¨nж }HP-ubJR$k rKvP\.x +R&2";<\'\,-[ش6<ځ扴Lr%UV'w}}7^ܐ"hdA"~ U` K%Ȗ%F+=eA$%2c]r|Ă__]RF)l2]!6$lQB[f-WrR>8(TvT>#I ++8(Ȧy2'KTE~Btld,qEPK2RjP,h'\M[/uݞG:d)Ju,T +F-E$[F2Fs\pdt'qIBCK-aiA;^ɖJa~Ȝ D +Yבv$+E}R*WIϙR+O$<[ZyWFphYCx?UijCK1B]+ZB`cv3B^kp'N즭zn*8  +Ɂ -1kDC͜0Z {1H)W`kV%rɷruFN%'a"CX +WG4ިV@ՍdWic%ϙZ'$'Rާt֦0u6‚H%>Jn(2J'&-EJXȸ + +@䏲eȷiQ:{"UHZEJhS"[k:7ZiFR $JvDB1ɶr>+ٜ +&H_TÛtҗ^?fg&\zEnUykc53K8/ކiDK柊 *-A>ؔ* gҌ7BtS^A*&;W$=Lj ]'b:*L2[G #R86ZK$2J&W#\[?F;`][Ncaeܝ0XQMY lDZFS1%id@U|)͘ڲ$ec& 0{ 3g`UV +ݭ)!;R'B$22tNXRVgH)zWmUJ%$ȄޢzSRS#a6 ~1hF-I״2Ue`e|d)~|HuBԫv#qTf09gHy-(^U, +_2W** qkShPE: $F/O_q6awT1u "dAjuQp,Y2PRr+$`#7;rL+ }+5 8+6.^sksR+ʸfC5ΔQ;97mįV6ɥWؽ `5V6eh/WɆ *s~G?Q4[vW3o}ۗI*)~z 7T kgfX1|E3keeDVrDhH2"Tc9"B&PQUS_UuW.TAt"A>#BU-ED/,IBR4_]ܷչc!Kf8 P+D\̠b+?BRmeQP +8bt:tɧ.vI2tv@ ,EZ" @3͎Ϯ)uy?lʽBzA$_h)]2I(42PD3'$Пd-Oy#Ͳ{ˈUɇ|VB᪜Z4%=!+VTز* >Ǝgϲ2NytIZY%+C=͟=e5E8b8S/8HcgYX*#ꉯNßNX=>pTIg1AR9eS73 9%lޕ4 7$YɄYf&UpKlo-K! 孼Zo#cs3V7YGT 7M(H2G0{Rb[ +7zK87Y>t !Ҍ3\*đX6S^f"R4i" R%g|ӹ%_לWO(;‘JXI|7\HbP\Sr:6SRL}^A'`B5BZ7%-9K1;[:Xg1šIʦ PZ$9 + ly߬-C42 +, Pmy߬#j^%ŖKK߆gpSeF#\|3)ߌu6Ɯ,qV?KӤgdu|ph) +YfD0"v-"EvDt=B(heq\rߚ,Jޑ#g(N dđl"JǼ2R#V?S$Fo$"eȃb %KXIX67@JJs,a%JnѲ)[6FI`*I:#;q$5rۊ8:8R\qosŷoEh+]^2K& 抽dQrvުsBHS"gp;}8^kϽd^=XU>V2skuDewu 83a~;65kOr y0I@@[A,p'l*tn٧ +d#]m'FxSPrVx03%&/WE)4}8CKq%-#h&#%29xh329̢Ɉس'R{V+y3}K]+gqrgM!V@D7cI[h^ўibYYC)\nMAkJԂ, ;m'yl Tݱ;$w!6ځps>%õL8Z9m;Mn%R6`RxA,$[g?#rsBGnp{?cKrYK^Aew5Pd&A LS _R-R/; +_S $^22IDC;{+" kdئY5*KyԖ宫µy Pe,fPcnE8{+P}3T-*}V{.MА>ƞՑJ %?i +!|EhB|QАQ!JPӱજRdԦ VyI,]P:\7n#:|Rb;W Ygr8+Mɦe}uBD؍7E*K[ nidWQo2"#=.^UK%TR$RTbDX #cH> mSDz*sp}M J"ۄ؇Қ# nxKCE|$$ q) t!HXpWp-"I'+ۈN5CuI`.F e`, byLZR3E-KhH"IURߌWf\kGjͲd˨@!\a +1d\k^ItuD0ȴψ2x ģՂ]ӂ8R檁L"K̦5C gljЬ2 U1C9Ggfꋼ:nqLWKN(IJ$Jm25JBd+ꌰRqN= +67RQ2 2BXI}đt}: rәڎi6Vii)unNHU LN:*p)?|$ +:p^gu~ I+BĽ\#z "=ᬲBRzSz:rGRO*|ܧct>]WLg*au_k>!3 t2U*'5ҍuMn³2 .1e4h%+w* ]IQ&R +L6Rp덁knZ7Z9oi,lxb7qkQtfkUnM!˕QY!l; m!WiT )Dr'CFJǛ\(;EcuݽfgJ'bAk(U LuKy)f,m7 bA֯5t3ȽmG,mXJ #3"+7R}⺙HiChF2>/xWE:VN~pGCU.P*MWZBW|=;^|FhH 1}|{I3!>g:JҌHBRزDP )0U6$UTA҉C" /cxHaplׅ֭85Qf"@JE8WqVđJfe(,fwV!~[~VđeZktTdEJ0!GB!2D'+H4G wTđ2#Wđ8Cc8m{EgYE+Gt+GY [ +J NFVFhB%#UB|ekp9!>=CXO*BCF,W +PH>T~0niB: YsL>Z.# PIJb +DM+E'pNr* jĂWq{G}ysM+=*$ikiceD{TI>.-'%|u =@ך2(2+zfSp=K"J] UXR+bAVfYG,iGt 6V^57`u7-4e-c*Ux'rC^Ė|o<| fyU#D|.礳7j{EBhq-CNHY^ʈe-g)f%rĂ8$D[egV]yE,H-!bAElݪڍXPQ"{ZFfyt"TtpJ"D"bA UѽE^~WQxy⪚uN9^a -4{?qzu39z#/g1*UB~{u3^T`*$;ˎ UCAHrR):ۈz#+XY~,\y#WID Rk +Rw&XX}mHsHLHQ"DGo2CY*G`Z +UaGo!e:5k9t#$!TҌXAav "'?UP!߆$B})1ܪSxLC<\;u!M*c`ЭmAFI^, FiST)# buiH $/HK1a)shn1$/h(^ p&ᝡ:Ә&D?Km&Tmͯ-*aTN34G[ўȋm Ln+/2+c|dOPw [`|hT*p>^=,&´BraAKV2u"Q3hP \X`vEy !=¡NV>InO`UTПY7\iKTM4)@C no4"p ўϮI;ghQ2NEٷωY<%~!bC!b p=K!{onZCy63!)I2 gh/-o' !: \^9[SG$Ng d#9yM4IіpZ!DS1HM"6"6jlr.^f϶"eȱ)W[@9[: }}Q9|#6 !]ap!Dc0#VdA PFE>>$b!?nm+⩲V$ϖ 9bG՟y5$7$Pϡ+JMs^w ++Z~pl"b6DlxҪUU:H2je op3EgM\\SdpuD^-OL"6YŹ$9) 9ʫ#s˕*VK1>$ck)k) +uM>7n!_-|CAN,3.f>_\EyQ|"F>V|8Y9k˰y޿^*锏 .#FEA=6:v P*FGI5]iYpDB?%lgW5FF_c:WZ<'EqV:⍸qe1ʳqHidW ̃-z;HH>7$#y7QmO 5>zc=vB*˂VݫZߤJXwHrun܋ku8ʐ79rRj8갩Hyeݬ՗Yl:6v! cCC>M¥OZ1MwFOq]Ap^tbzLYT2$TR~H !2(, [@sr +W+vVPd*Y9o{(s,$Ҏ74h[ZI4`L>l_,lqOl2L0杛߹xT`M+7ƽgi7vom^GOW?}͹c0P^f̩'W/[W?n֋XyJƧFLOz6O?nzt3jK?ȳ|kgm5\87vG[쟽`ܔ\BcEۙߧߐo +zwndC7=zJ3Lqa} y{ןC/|Z/۟_]÷߰(/od_:KTQYJIqIZ;$R;jZ59dVpL?s3y޷/P\ܽwänIbN4}_̥bڲgy?fgyO}L#9i1Z)YJS'uxjϙ"̜&/<0??M]eʰ߿/9ymY2g^9>)Ol6s5_ɮ<[ _ۧ_G0\ ƞf䞻L_THkӆ~Kt8\Br=GWNO5)s8mqSK9;O*?)ǛFV9^qmw\֖:w'~~~M:O߿ij'5Pkރx,ms]܇Y1_/n\̶j8=-:sb؀ۗݟ %Se8Ubxnj/IcGZy\ek/Y4/_}4?5Fvd?_)R3CgtտuM~.UߧSglcv~o[-K~-y=ۿPC:`>v;Է޸|od,Փ$&sIzjt<|w<6^og uz'^W_&-e{4?7l*쒿_{vQLO|}߿kw/Ŋd/:3w>7س4G{j~ R˺χ6L6sᅲ +qmm^'9^֟__ߦ"qu#hKnߜ)7:B:Nߧw.&?u5.QxY~O{M}1ٖv7εk8#w;)}>WUyЊYNmGe<'e%g/%|Eik:Èѷt\uzQ{Puޕ$ɘx}y&nM~lvY0.3R472A(:omy.\_HԈ8]4JyW){|M|%̂'q3'3%|O'P67@{ yk|=~&lq$vzs f+x'snX_8#1|'-wc.AioZNGK'Kw~ӏ}) ]&eNI9-f~RʘGx^h{Ai&O pf [ӽ=/rhűۙemFvj%W=ILۈ9Ӽ5u}E L=7D#20 ʺ_haMޤͥ3>Ba3*}@b+|Ĵ%uڵ"%z /#ēw~C'F~fRܙ X4̰! ͌̌H g|_3C2st.pJ%c~95D>aOs۝}>q^5nFy9wzckC}U}j j!>`zFظ?ՐxsnxEjǞ=Ou}֟hpVW# ~ +X;x_sD_I#<?[? r]>qI,m^mOsaVO3Q÷~'.42lo9pqٓt?{zܜoO513kkE̚[3`XG;</?3ĿGgc_ioٯ8ߧ8⠘Nq8H5=ѯ$ӓ򿠫˯cuzKY::l*rw\$sqk'?gd~.R/DZoKOu#>ग़>]¼ws4_RmqIzMv W_q?ݭ8ݔ9i)/]8|3sdc4g\0ec@- @H<\Ћ l (壺rNC kGb \>VP>.2v0Eo4!sebc k.u&0{ݤ铴XVҏ|mïρHc[eǖo7^ _nS\@Lg}tq9.Y[O;ƝSz.2p锓9G8ss~x'o=meTU;ܘi;[|2Ϝ[?eg;.;w[gS$:jDW.e~jRҥo3ޥtxg%ki${2u|^ޖ_w}oA+ չ;mݥ +鯜Y|\^t +';j;/ѼT$Hߞp$sߧB~*N 1 dEwۗj^^{F.ǟ߼ PVo!?~rJ|;waO]֍7}kSHs8n F ŭyh9=6nc pֿ.'OYȥ;B^.ۜ}m6Nkȗa -1og RBZW|ϳ|ތh6zy[Oo=~wS3 ls> +stream +x+*45Tp +x +endstream endobj 206 0 obj <>>> endobj 563 0 obj <>/Filter /FlateDecode /Length 78578 >> +stream +xߪgKr&&1|a㋡\|a1Hu`.Ժ*j.P_?Oa_T |>4Է332eDd\2??//߼KKߟ|W]P>o_RUگ5?>ڻ=sN ='6GSii3w\k}<_?/&n|=g?zk?X_c~c;k_?ݡulsmO_SOTky]T󯯏uQO~h?No,?}}>>7?'>_?+?=~.O1Mˉ_^1އڮY?^~/ڹM>U_>>V}+w?$R?&u=՛n +߽{i\hm> +ʹ{oOhEz鷢iO@OyY{o08OȨA[QaJDFEKgzP +mRUhԕ)1C&Փ24XW/b^PthjE9Зʠ|BL+ +sc$S63=t֦ۨk']ںN'ѳb;+]GdNR_;HoЄGOHU_gfCAUjN:ڹGx:hiI +9rJmlF:*"Ë>D94/m%<1""IYAפ-dAvS?A(6 @:[ӵ|4aOGܦR7oBQųC. "a*{B0bpͧ8q'\*S.ʫzn3w Q#;EY\ +I +l;M_klFc7Gwxmϩ4G3B 4UШR;E7ΦA8gA Aڮ "nat% hGhi#Pm *4mG}{qH,:^L'&*9tjD-`t_vSaB(w`f. Իn(\[&ڸfewЋ)&[PͽdF`}u 8=gF2h쩹z:`p{^%F5s݀kFt%NYf(iu]\*Q|~xVk(^B:Gw(BlEaT`z#jj sxln9F\Oln?gz@:.+eUVբBU7\m)HEZgsR@f=Ǟ{.TPOk?&xt"^Ƕ8x|.JSOGj݀>rSZdmMOn݀m\>m3NI(ē &'p鬆SXA +%6 آsSFqŀEQ(Ҁ[GP h+ܱDJ;QTȔPd~"%ڶlS.O L3ԙ ngAq J2R]td[|rCn쵻%긳y̿2vKR&Hid(n`NjRKy9ғM5 it\7Pte iCI#`ۗ^}zlw8A, +cPƨͦg|# a( j#bpLbtZ`8 +SpRg)Br{ԣ#+v$d'if|@WGyT { r(C>{,[^NnKrG8U+ow/> a綖.DO#bHɫAcd]փyDUu4[~ yl1nPБvB2d#$RP[%v}U>aV:яQt]/!ހ.*7[|N6ǔ`Mm[hłYpH ְP@.1EF4셄Z,}ȶ7:7J+% 1l۹ 6Y'5y(ԳF(e12eq\pQ~ޠWɊ9$lFG +F(8KEe֢ iCIetEz|CH_oq/=(tNL6 i {4ce.V:>{`SQ<֮9c}L;l?L1ne&()ůކ*ޑ"hQhG0(Bj7JXңx1 ՋfxJmnY=esb9"^YGt|q7P˃vbݬ0pܦY* ՟eHVDuiA8 x|xz0n7)ቋ J,YO/_^&=nYyPHߛ GA@{Q Egwd!R>x yQ HξVonѢM}s8o.~3N{/&G[t(YJMO7Yxb4] +9(\o; +_6=CoFMGr7䯛/<-,9tAhidOGE]8^g6kprq^.nK-OPlXV^RNMnȊc[) lړ'wSA)DAQ(zTߑ-)Zzb;&f8(]pZ[g70R5E@7m6B)o6DhYSy|wCJw ;j~ٛmK%::S͉CC7$ V> G">tda|Y;FqamؿWo@ـ+ލ(BCɦs0Qq\v\ l-.NW,cTAѥ{tu8X{Ǘ2{]- +tg +'(u=>b%`tFoM}=#=I6:=tHⱇ^{K9L 0=һevevѹ2KP:lNL$d]ڨtczSy苁XO1J;lj"=>tQgQ;|Z \,{_Gk47t@gށܩӔB +)ϜQ;qn` +>mKpХz9ʋ_A-< +qdb*^A>S8ʸA٥m TsK5 ziBmc'"'씩7|M%׭GV8O*n k(}I13"{ |lleמ,vY +5kˮ=n +fb#pE5ӑr6Y )Mz96,"&i M 7n-`myBapNIQnV2>,&-)&Rs-pŹ,F5 NhlxH4=]v]5#tq=YbFQf vsINIɚ8uPt&l)DFT?&9$[#67tzPSĤWI%%l:3١u\v{M4GiCj*`Sۗaozu-4| Ie7BR {ʞ;\ҦIӷKL 4Vhk A^3N*LM"lep FSc!pV8e2Rz۲hլwjזp&!j\ +\fXm5.vʼn|} oų^*RPJ9\ve6`Y ѫ5ġnd2LwLX|<ٱd+c-5̨-gtr8d7BUITz]C'y`Zp49 &x:+jI qk'߯$_)aD trۗ@kЃw[@,6 **^ @ k44@5e=忁%4@-Fd2AA[;AVlW#16Cgpe~WeN9X\21#lA,& "X4mz+`->~)Q޷;@@׀&/MY.\").6|u7b@3۝E2pyWAHe\K8:hɯl4!81#|dBs& *ZPs''I؞"%qg!q ,+4`st*%C_WHmlCpLBq?ŗL+ YO`O Mzi/_mKׅ/P:6mE^pqKhF)kn .0Z=3d{ ع-):Z6q43\LRc4RUyg0<7wLqâvc?R8G5QQB?m|X#ZaӂZ_`Y[8YI}s3˽Pk/mFn3akgp厕Lф1! |a_ R4206XJ +lQs-nM*W'tӍ&4j՗B_LKh`.JjM2WNm7{qgpAP9ʳ]qxqJ6e*g~g;O2!1+ᢶi#IJHM?ao1Z|0* uM m3t%j{_W7CRkbob=P>Ra;/x,Hes һ02,)| hJD\ (*4;`@JV1#\7U)kgsF2 +4s +Sjl*r@1"̒FNQןQ>4-Lm=!o$kYI#q< +b%LD +sRCH>"3@3(zEחV(AD"ihQHYMsa 1oE!fh䰮HF`'YWHհ +)OA(V giRJO6E>i>6|(j"0UhJQ-P<6ը~Jꧼv{!)^&{-lTہ= b+ޅv4;yCjp#w!)濁D{ Whc)fc<RB OC fDj()Q!o+DtjC%=cwepqStAu6SB:TYpR;eZu1zއ6D1Td]:]&OKImX bS=D mTiU#tmv3HQ;)\TN.N^m6Sԇ6Љ۞7氠jܺy kHIx}NdJU'PWz^:݁ж O)Aq=;mɭ2AzatMgMQ">5Nlj$Z$|, aĠsOt=nDd+StmvtQ*SIS l'F;ubw@M_dwR +} kTƶ4jÈ0pc7v R\D1 +m r ;W(mFPSBM/Q ]֝Ϛ;8Fټ 3b[(Jb 0y9Zö~KneSR6}0hPD[AAVr$L˂6)o@WAյ=jx^ xpD:1qJ˷n`W5 8hLQ.f |jQEH-5rXWIVؔޠ'ϑa&qtN%~p a] %Tre +Bt}+sU_xx0QԦl( +c5˶S{;cЭmb7 * +kޠŒNOReSC?e4JcOI:wLm I<`;Л͖@sw (ԯwBhVJY&/dwR +}Yqsw876}c0xqG,WT>G&5Jr]UBgsfGX9x/~wA>g-f܋NK eus ^P~㘈\*-lAK[wh%D1M %d;R sivגm!Fxu b_HӇT6[TZ)v:hhoYFH{"y ׀c'w}h($)4ءNxF`pOPxqG$΁&TmY'"NmoS7%t6E%B30|9`gt +^{,3_A8(V$ZŮ2jɳl?!VORt|dm-HG\*pmю)IN>vJ;Z,JE֪W𸪗VQK{}S*t:1? xBLBKHH/@T8MQYyq%mxR")Dq6$L5[2p )!ZsEQ:Ijl]Q}H)jN! cg{wC֋y4SwB@v"g{dALTF?8b剁|}qWhSOGmyO_A I )Vk z>c`{5h4n1bs +zS7wLm`pt6'- qY::Q#H F'jd`.B+#rH&ԠP*Y,biIU3U)*ƑTuim&y)jɳb`Wz< +-@Kl: {/=hub/*E{[mFI8q|%()\P.R8+@NJ56 O'vU¢LMzlSٔEJQDW8-+XrjJO6٦E^dH%xq^ Ǯ?oc@+(EH@;r}sS^ް1Z!N7@ D6Ȃ(\Fj ZR⎫řyRO V9. cڠuCz76~šP?V\03EvәΣ2Ŷi6 C/R:%zs-PgҌ#-j;v)@mMV +F1Fu~u"ySҊm/KO EQ;S{͒U? BDR_<uۄ[S/&8Yʖٴmc?cwklShoSGWi됶:XVƌ\V|ϚФŽ M8ՊQC^Γ,]1\^ ^Ip-ΜN@_'O?vw NxHrԉ!`p +}l zE) +͝qy".2㷍u +;ۯ!}C4Zǫ":=C)@O޶ Hc"DatZ +K.N:8l%z +9oOW*=xM6Yd +VW? N+ΰt]X5$:)ԥ7k,39ic>yR-9|> ')U}2b AbF'j19*WpfB[]r(UXݡ.ɢk*@L罥`"낾EBq"D ӑ܎z$P :69 +·)tG/_CJ(]y*R/hrX2;D<01.tQ_ PB1(3* =fW8c|L`A^ + |TG-4\*> b9n6bone@Tގ޲WN>׼U׊'%P)=O.m9ԉcH%L;Iрsȉj_>tvNz( `T!k>fϤ+EҕBsM%ޯNBd[.H cNoT߱X, G(3Yʻ*vL//fg;y=׳e3$~>َ7+]0v}Ѷ L Vmt_el~ZZ0KVg}(sި#Aݫ,˽AgX3,U!X@ҬžL(}GwV"Ə?4Ÿ7yjE ϠU+%:*D!sGz)աwd^ pcEUF6c_4a[wuՕ@!tǩ.mK] B,_{cAi ʶX#+X#=еe5 ]Vh^[f,Xd0 [u ?<ﵳbSܧ3ͭytϣgZ[]x6;Utv,ށӃoJ + \x* ϕ`ɭJvD)ÅIo`A@9 `97Ƚ.23>+beIaOglX/Z8|3UB+\hdѫ;|uŘvG_ytϣ{}ݔ%W@w#|ߋ+o3vwWD \+g%Juh0Gm]MNy[UHȾ\a5:ztԇiVU:>)[hqޅNL!^wJH\>#BP'sn[eٷ4Qh4J$(^<3vճG(q{l.EQ;]!B[3ywobq5Kw lƻd],W  +!-o-== =Zf7,R_T{W&n8 |(zCAK 6W2N YEDLEp~QިLޯ*Vq'%̳թ37_vP818y@"3ػ'ZG\xHm56_,5p^2Y](L ^C;Mz)kp0LDw\Sic,%ogH\m'J6㒓Iƭ(}nQ_^JK"(5Xb6˸k3ctvKu_'TEdFQ=S^ʇۇӗ6/;j!O Jgt%=CpҦ=M;Œꇈ{}ήϫ?PNh;.q Q^Å9BSK˧نg2eK5\zj]e7@Y Aʮ`lw-"HS̝U|oOIۼ[8[[.9VŃW__ؾ#oqE?`{mTsZL&uge?;L  ק}Л^pY5>ZŠ1Vt8>tΠU+`U`rgT.򞒴q:*fˠ,n+қ+U/Kfoh͑n("cl Ef!U^K["p3f{T߀sw[G@N?r1\nY/uv{>wG/=N@gI[eY@X[GkTuU+&.a/s y sgg0ʥpҒz-nȋ.:7P,\.AuTP֟p ii":_ 7UjV[g+zXC?0Q*CճKswH͖4xIh]ٔ3wf㤱}Uvj-a&֕zjK&܁P 7~'׭z4K׮Jj:Dy+Wg )Kdp6lLѺrg5 +^I1 (gɰʶl:kx0c&k)m;Re9{=we&u 9t,tP_0Vtao~j3ͫ6r6&RY>3+&aO{iC;LJt(Fyg_#=ZUϖ~z,tȰѪja5إ7j<믆VY6I< Py bcS8i~NcΔ5ςβR#gEnj -TRWůkf 2XLzן^D&Mvۏ`5WR{ߙcOoO16*@먉A@sBdZ8w&uVU`pfR35'DyZO0)g.s8lͬHtOpsdXZLF&5}Ksh:2[i% elG.V]E̯k A0V+9 p~+  I9Lp;G +UNI}pZqW jtP_ˀܭeDz{^]_x֝;)Ru% 5tW>- -!&~^K";  (jjЅ֙)A}⣰E@;7ZQQmYߨ$^%C> +V;'ɇlC Y_ȧp +)؆+C{ lgɰ0;R5kTo/d$\]2'~D_AGhmn-Dp-N){SטZg7lu$]z +\.xV=_ 5h"!ZԃPۡv5 +[NVi=Ձ]Uu}9"Q\A+lHn?aH?$?w])t7n[)Žv|- U#5MApE +(0ڻhrg5OdDd-С| 9A] ?PHa$ +RHcU/ +Clɘ*1b +eFT݂Sclj^UF㬀.u;S^1,j+HLY5 ]oC}&XV+M-MYtxya,} [ +Ծ)0^|RK@ +?} hDe?P7Z( +$oVP;X커ywI\Ȼ*@ S+J9K)|"۰BjoMzΰ킬Jk=z.*gn e,cSX1<}NP' H_pB}O +:zM=K=4l^$w@J ]qC(<$msSol]Fyڝfjh'*nv]h[VLquLZZkL+FXFy-2vb(:Ch9NF FY6x"NUn>-WѪj37XAv?N7e7QQ!':dvY|`c4V e+Y3}L~VrZu>Cc +8 Q &zXU)1+>rÞxl5={pCEP P:1 UOJ6tc-4M"NJ<8Ϛpf#qiqshmֿtu ym籺y\3e߽rS[fȾi*ЋJdcuP e&r67 &ZlGIP fLV>zc[hځ1i,wO- ԙw)S+dL=}9дR'&ktc KPq~5mPQtktm.nM=^:Fzn!t1VbT] +KWNuΆfYazItK vjs@0)vKsy̽U|;ڙ+sWأ|9+mг}~䴯yt`5[]XGEwϫvFoUdElGI1tRؑVs}0`O+|.|p w|O o;13W%R}r6GK"=C V څX;unsu._7p%p~svCrhfM6|sR-nVb7]cXtK :>ց-se;6L8i5{萟pP;>q hώs +Ʀ'K۝ =`'z2zj3ߐ-'Dv c5"u.>ZROgp֥~׺sWz' VN>a_sǤ;.-/Qtu]n 3>_]zU=%FU+5*[ˊOۊOhC~}h-BπՀ'sH3MCޡq*>;x` լ|eMm'hOAʞ£U/{lPAcqhth]D﬏&g #WM<@PZX5`w!Y󍅥%O/߾{OM`Ç@>lD"R{7|{XyYATҷ.}\?`P*ju :A/ gKS<6B@eo ,B86Nmw{QUQK^b\}Y/} {M? +xi -f\j=:*T":J÷gmm>A D:Op1[MZ5*ad 'Flb5<8OGvp2Z0E\cYaQp:\SF@;Be + +xɌW7sjrٖɾ4$! @١ +٩/@1ie w3 q@KjjzII"9˓Ʀ_$"=p)Ձ9}ٕ1.3TS#<ǠXg4BcEC1uʅ[=͒K@hDߍbnvSW@ݿ5V [ ϶Yk0ں +훯k +5)*VPkoz k돇aeR\bk԰[g;tVɊYWgTtWJ: +wbT=h=> mMt߬sj>'ek@R00XMC>^cp)F6ErmiGI9 f9p3q(OZ_wn㽏^_/B<υ_~{}9^I]y?}7?x(A9U"os}>{ϽEې鿓z=_g%<6{Ǚ/~8_o]##1Ld%h1ǭ)Y/SϩSa=Ods`ң=o /? ٥qxSy$/Coup' oos*䖀*-_srٛ(:>pc{R I븟\MsmӨ:sP=8 +G_FA2RlЈ]xi(ޤ$IL.yvjآemPn-֩AQ..M3jD =-55cK˨0GcTnb=>z6GeO/s@UUǀf8 +\ϓl=mvG:z +ˈ8cU Vl9(nNZ}IAq1pmPIJ  υO iO#-SH3PB#v@ +p=Ɩܫ0r>b *( + cݩq)˓ř$Z`ՔQށa{˸}FzA,]r1mصq"ܹi[0 *b }=O-aϧ<"\MDU> #(SRQfvEлZY@mu3tuc5lkDi݁tܖcWADHL@ wj$(2&_<mFб IO)(slx\A2u xD(>厴rT=E 6V_mـai^S0B* bJޑu)6M&z. xl+o ٶN]nwt<gҨsg +yeKvRE!F@Lz| +Y0!rG7!k2MB9ֲ ;)\(+hflL;EIls# +Yvը|b5-#VSM9To}k/T=XO{r*-S#|~>5:Esס p#\gb\}z!{2Y?[1|X16oA4. "=wS SC9AD< DmcxmUag#ޱx5/g2=ƉXd[sa8(RiSXDv竆OALS,SБmDFg˝A>vF4hLL(beky`j"#ܦ5C &9'2Y6xDvVV?KHRM+=c{)QAR>lwخ-~2Ӈ=)E/|O0 G^ꤶVhT[dGƿ2ɔKF$] .4Ιv?-bwRz!0Ӯu6yl/X sIR +s:5S7(;7#+>8,Eʒ0-ykik$$?dWijﳱ}854k7TBWpLLж虠] +|Bf)˷ԫD68#I[/6Bų|T M6-_B'_`hN2"1>APTT?|CVɌ"#2Gm}}NR J֊d տ˶yP"[2S8.QXJlc G5mqRGQav>2cgh]R2;;"0(XsT(_W*buBWg}57̾ZPUiKBGj\lp9޲.~WN;QQF!>QHԴP>\WGY]yYV"U)5*k'kԽJ12C@]bL;NJQfe +Yk$uٴcG/|d0j/{A/W@L/8Yx\-r\mZH+KKOsf2sw߯W|me`"ٚHkl~ 8QfkqL=Oi-_Wʗ/ay)p61JqHgs;,6ؚ`-z;Sܛf;<olg7+'=>1 LWWlĴqQIe + +/Qŏ G#GkpanԶهkl'Nb7&%7HWmLE?l|`]{D Q`}zk^hT:=/lI{#\+ңx1ɠM ŮG&=0@-+X5UaC h=(챝G ) +1#S\ieǞ )< i1?Z4 *'^*N> H^H #UEp.(_C(ߕRq (_psƫ֩PFYKg z3Ì,],kĶ)CeGdp fǔq[A^,HHh #O"Q-|/Ŷ i)Np^#xvcg*,O}HH7"UntUNp85 &3IP?T%Hkд;p$tqkR|1nD#7=i7"4ahDʚ۬thLA찭?[نͨ]uETypʀO}M1S40[%=JjK`&mxuDd4 pmr=%J9{mUƶ47cEBlF\|fGc+hrxsbs[XR+q[qĭ~̐ϴU " fd,Iݹ!Z¦mUfU^FLFSDVБl +ou6\ü,O;zJSob2ߨ2h`I#uEz|*`!Ҥ^Z渮 p}b}b6=̴Mr8h+]b8HG98,mZ;x4H[zG +cТe y3ʹh9W~4cўվ=δC]=m=4^tw8߀:>6Bߨ:H%ZTd́ (lO1qpdSsRDg hn=7ݳ\^>I޴ Yvp9{k @$Jo[4 O*(Τ zIpFk/bml:v#0UJT' On"oRwټRn1:%#[rd5L,U'P;a|= Gsӡ|փ^|? k +"Am^ܶu6w9Rt:εJ2}8I|x'(th2f]:EKM7Zc8zv)Pz+ŨNTn8N^013SBkMsoդGXS{8};&OCXNZ:FKj*aFU8xq[%\_N5i רtːB^;);w(SƩ[L?Z}} ۝#nIv>@p\$>#~W)d_d_3ɾh5Q%EZ +R{)_gXn\Kw-1Wib& drP6El d`PCQDʴʇjxlqM5G>b>Vq12 + Őzd]\ݡ#ܲ:x3- hQE6[Y̴S]&Oy==((H&Cj-ٴ28=Z.b&FgmO3&坪 pq!ΧB0Ag{~kHK#w)֓v7\.r.ov5"/Vw:ZD1븲7(o3t b<S\S!x|@WGYpRh I;?&S)U pSh[gmj}3Ԗ@\1eDjMJFmo|f7`mӊ|':fyz3i&SoBl$F:p9Euh +|yR욤 #T(:}W DXUJr8CcEq>j q2<=Q큍hWNg> +EQLmF=j$}|be$!*ɺ"=Fd*jKr";iDCye̓Lmzi(\E1(F==((H&#l٦x;BYSV;ऎR[eJ 6}p"R M `fpp "%圐;F};Jߊ=bD+w} lަ.]Ow`VKHg5cf!U8m,nc"#smcȱM^GFL0br^IrNhy&kdsTpMSy! ^q#-MV+;y@Ap"G(eh@ftf,Y\x)]QvO< +2 + (ْM?DΒ> +)`>& iM2!ڦ\ODj Pl\ܶb*otGQtbcP6.}h + 6ʋZK>xj|^tN<Ym}e{PRwϖ̯'(Q4UuBi&OrRIZR⎛)-n7 +P10bK-x Ɩ;TڜwT^">E\3:J^2 +Uy(}M +PSGIw/n⛩LxȖ +2Ș4Nb9uϪ|T9ͣNOXۂgQ\=wT 2W AGZA~~Sv+N SXJ1pꈧ7T//Qx(Q؈?KgkQeG`mu/P:Ͷy\̿-I +idH^\Pt;ByqmbZ@0-6JJ6a2\KܖaSTmd_ 0`\ $ ]F]#䭳4(~riFOEEQZR30SuwcD#ӏ|d x:r0xY|<@c-m1'e:xR61m<ҁ~ +ZAT&$пr~#wk[t"|A!+}Y2*q[߲"?qJCW~\|<89?A]l:!۔k+[cvX q[>C,Dqvɔt5 s^YGZ(r Qc;#6m)+ӸGvZQG82WǰMX:ec/pe'A4 XN\0o#MU18`R߽yx ']edkQcҜX^ nޟ*HAm1Lvz)keߙF# +ZXli"FodB /1DՏi'E@P3_5]+ZluN ?ff旙uDz0}F82+HNCM@OMb8@Q4ﴌlk{^1d*QȏJw}͐W-ӊj!cXÒ;8& OV }AЊ/`=T~fjiqY/?'CٟU3^21:&lWo{[J4.|őeL1)&G1r?kT@$Ot +ts87Rw xR4H*#[;3TMb앱Pg&t\qi qdmFe٪-G:0\i0F&$п;/\ZWt`g"2H?cya+:` 7HvŕΎ?e&~wQV+(Dسnt(o.ir]Snlʢ)2$6[ަ)pt8U#*\% +8uT2j[~EXt56hBٜL̕15"o Cm<워C]-([_ sx?ylMe4>gCT_޳L2m,&*xrE9;u7@*4JY 6>@n2߅-!ϗs|%/ՂlP弃[47#ܡaee 7m˹e'SKI^eͥ|.a,`8 ߺ`t-md7]ҢŠA8SE%%']Cy2W6%Ļ>(\!Anq. .3^!qr1Tvvպ໷/ 8h姀?yE;(5dd!A71g";' |w'jR ?4bwdYT~Ƅỷ'O+vVu1a&~sf_E0%  +JzX{c6anN,s +C_0C{Ġkp4Rw~(YUm] Y<_9./"tf|,n}͈C7Mq:#u?rnk#̰&^'Ӊ W9kZ{b"_]wΗͭiF 6.mJ3߭;;@? Ssa@_dBd p~pkE_|IwEiB"(%=){$!式3W ;Yt>jLr`2 +/Qg@H6h>YVw\y'Ⱦ@hJ߮ݬa׽Jk>wfۚ6|/z—6,3w|ᮆl#TCoF Pm4 }:&W10E3EV220VI +z :ȝ6f;KYZ;z:4X[̩;}=ծkr%]!ЗG(ii~6>&P'|.S|)/X|4LL!=,~ !N\%I?$``|qǰܖ"=D$uzyEԬt*q{آ rꦭ ^9;ijkkdW!=1K(-M76InY5U`b&'%(&ϯp߼wOaG=7|q&hjeaO@}3/$E˗6PѮzn U FDr+}*{WcL_]~n G!pF<0}G=&wJE g7>cBPf$QR{ άG9|w' + Ypv3FW+i DF +;PJs9~<2kbފrHg\3v%11EAD&#`պvm!wD/(Fh$p+a~c@ _Y;*$dJdLdg  MbC7~`h_qW}?h#r- JQ `įYϖe~",rX=oWU%x,~wE6E ߎ!l{ڐLWDB5ۋ‘H +o$û|Fm-A# pd´@y96>0XBNFe Kyӆ_Ú*<C$6-K`2ځ$ǼUdz6U&J}$2i +IgVv:*٪yjgf|4W82lM%4]Yʼns ,3f=En~hI-n Wq#9b#5UQ@O?/AIRfX~C|,K__÷@ߣpuhr孞Ds z ||pN[|M[OǍI=5MM +DzjH =zƎ:fmԁo@~+"MG6?GFl +'(_ׁo n} #F4K$ 9kM" vqJexk-*o||~2. xMp'8"rvR'49<2KO<n?g8:l H{~~qq®o# Բa僪ȇ q8 +E@27V̀ eW{XǽX-ngy9;kjfzF#`$hl(Ø:S2ޅh +'`KC$jI)d>Z +ɥ 82xl>Jx +O)jՐ~gc'cQ n>p+Yy!-aE@Ha|tAa<83ʺ3̕{p#7ut!(ve,X] 6QXQxZ҈>Bbip Um܉-f U>p'fgM=-Wn_*n_h&O-/p5<3h '=ДoQ)5)JJ}2L|.¯+wx+x%W|xfEc'85y,&5{hZ]U$>*[<64}G^ `g܁g~=tjx O`38bX eFA@!Lh Ydi.3 ؙR %usa۰*~x!r1.fl&7`H.AHܶ. 6Ma+1)PI!G(< @0Da;u`,!"j --'жil47&S )=Z M*я7WF@ e3kSK h<3J{Vo(mZ[-C") dpvdFl~/J t1 +7W|-3P}`ONj6fE#E  +QNO͛傻%Tx/ "QvGu3A쬩8; ܩ؂!O~|Ӷt]C(͊fA8_Yl)aC*M raDNR@a hQ:3WAIF M?P{$5A[N{[hh##w#܅mGR<^A"UxF˓=RwD]xuQt)(aruᎯ#BGw59 p*J}&D\%a?7IzCCqn=-.qS鎨 %;.e DN{a )`#0oB D0o[OLUWv d!d =Q;88EהaqQ͡0 P#rY7uB n9O963Hf8 361G -+LFȲX­[g @4 fâ3TUs1~4@a- +B ~X3T$ʍԛl_xE[\|LZKɠZ!V3hbGO< 8Ӈ@hdԨ˰ 2g@p ,FU NH$BpN24({jo C#< +J)yxl\ J +:G;d ;<g[JE{ӥa uX!`{$7ޔ?lco؁TP=޼QG5pfe;`W,7@`y/wS}UN0=JJ_%bV;*ȪOPlp&X5p/pϔeW(޵;FZ֮$^v%A <5ɊfeW=J-)  g%H^xbB~,<147d +7J,OV#\Yva[P}MZ--\X`}!U@ R +x nXx",p$b®.-)p@`ӥm嬃uwc&8uH|Jž]ᔝžn[ +8g5^cَ^&.$,^.$(TxVee(mrĶ5(®e7JuGl/PZnH/M-y=ga&|>H)`RAۭi |aeΌɟg 0ܚ{a( +aLDBbCG}Y4%!pDHBAi,@p>@:hw0kf,XŹ'`l7(D*oҗA\ap[% }f*.Á\8Җ_o=Èo[K__ꟷo?_ ._i6?ls!m6;(IeCbKG"O,_g񟿼IOà 0 $ ę5r4:X|uWêb# S.'Zw>9o_˙׏+w_^Ę {/`:h*:8?!pEo|›!uBzhzo"4X:aƗ/]w; 0^f9eHrZYÓ7ه;;kɓr6@ptw9}~+ gY%1lM,m ֦L+N𽛠I/Xۤ K :1R-\2o[ֵyI/ +\*w8'p+jF0j YTuM_} ?;< ͘R1$ lĺAXxI6dpaseLːD;C^}vj`(lB_/x':؄?.b.(mvk",o| &Y*6Anf|O;#OxF0.JvlT2j5Ë́G)kgRSOCXu1"I+aֹWHp膫߅)D田 EʊQOxI$kc|߽- 5"}`#Pܱ/s˾kA5(e.븼!rLp9 'fF(acxu 4QxۂgQ/ e?h'J*i;hM:o_jsi;=h/p/Ŀ>[}{y/}׿|Ly/}_/?eko7Yg_>g3w/O#?N -_i~!W7?/2.귝G Xdq9>r9O z?$+8ڌ?B'(9߾~ ݏzܐvXϣ&֓5fp=9_z~ %zUyҼ"z3{xnנařʶ|jjWDoKXƥ+ZQ7T^ r /|T \jbUD阝"-m8lJG#ɊJo A#ӏ|dh1FF3]$P_W ;x/ޞy'к};'QVIn\]W;Mt*)Xв2C&xRŲ̟Sd9xSE2WO#n#-dcpB-_;%>EN@hpi5QtнCc/"fMˋ :'g825͵%wDr!FMÙQ@RI&Sza) UV2ofϏi9mK|xa"9sy6CPFlW A}\!v}e2Y iuIוjU`7liِFJ-~e?2n]O # V-275Z<2.'R~1lkttH˶V0"u:O 脇+q͛aO7IqŅ&o33\+ ŏp1-Z`:=c|pIP"')I[]zJ4N`-ƨ#Awh V躕JSUR6|5<WV:VO4.-ƨ{ Gҧ=?vmx*[Z_64]v,H"^WlLaUON}Juu.4{*T]Z6Ѣv--- +ro; mFJzQ goK+.mqە'KiuM.d[t-KArR6\L:7ls!eVLޫk<0 Uvo0E{Kl_4ܿEJeW-I6_n\:s ʚHk$+v(?BWZQ)i+#KtS >w B` ~dfYoShd{u{{ld- eȌorI1&˝Ӣ/c8ٯ_Kg4wKu)+TR +eOW%1$v*_Y^YR TA+J}+-ƨ*yWGl~e$fAM;3>3c2}FTW`J*i]b#_*q:.hQ1\UYbwp^ p.-9}u,Yx{;x031 ^!߽naf2(l3XǻnO{KYexOspҤm rC;lKW)ah\x&w4/XV!"sŊR}How/pCo\:SfoʦTm^4<ٶtb8et 84 |lTZ^. ,[Z6á7ޕ'C,u2;sK+#Sα.zE~ +Ա +_{Њl:]EQ:wC{ \XvWP5±vZ7ʼn.d3KXo8h>8"1=D K MYmKo+ ͺ_%-r Z˵\n/y78Cph,ucF+PVbBGK⊧ daPy*a^ ]/ W5j\yHc~[%CDG{">ڣR7{59lh0ژ/bvM.hdE-b!#ӥgOSQBRx9J9<-ceҿ,m8ooΑf,4'%N@W8xmG-MLs*G֔nF]zS3Ѹпl?iKu'>Bb,%vYLF/0=Kܜ.{ Ha-R+{],٥%څ'㫖t.5eߺ%=ޜ#J|^ #<9 ^CI~5H59}hn)kb,U?, j("WeI1օ#U[h+S-7MD}*3 2Y!_j-\Xשut{WoցJof_27UKD+$v+2rLz] K( +j6“-ΟUkl-CcȦ#pie钓pp^  / ^| xDž`]#[4S<Y4`s.Dr C[)0>[]t6c' g8]}g/J(~5HĘU+W}KNK +%NWeIږķGH)^E:[hӲe9w|mJtDۥP( !xΥx][boƨq*Cv +Hzj9GJDa {/ku "%V}N_%-ʅjj*$_a^7~8\(rH!?j?}a<='8/ ]xd!k8C'ڡWPf[YS;(( |ngM9ṱUjwnUV㭉Fy4+-ƨ +ˉ5*MCMAPKm+”K}HrLnɥeV,Mv_9B:OVn1jt8}븱W=EBJW  \Ż7CMZȁ;%NvqTlh50 {/n]x FM_1z.9Ɋ#!r* qo;P jN֤q~%|W:{ڤDX۔(2 ΁iєΖt u1DcoS^S/3 :`GlJAT}M,]WmZV32> ffq_]0Zo3%5u!Lqw\&V\Kpz#g4ؤxs/39b};ҿ}Ȕ?Ûj bwߐၼ+>$186A@j@rt59}wf¯1u߁(G]L>% tÇ%-$-+r(6 Ֆ!TV[f ]2TQWs9qgr O$ dG{{r*QfqҔ#ژMCR? ^!찮C0m+y>V!^)1pUd +T[p]J-#N8N_@8~a ;kI7{தw9㌿ La,uB+uu0:بK@e TSe,]Rk$0wln'p8ɿ@p[VʄAtPm]P׵0Շ= p¿\X+߮HR 9(_廒jm"3damZیN 1DFPk[[ZÑp%#`5zQK1yDwjmM|C&=F +sG#3JiŻ+XWvD /l?CgO -0ƚ|zeM*59~`5sdw +Yۛ(C#&7ɷ%&*WY5aCGJƉeS+NTLkrĪt-|57:; hwEڨ2Td}yskr)۲&tըiG^Դ&k~v #]qbDQvF _yWAZ=.g `C'K B˖߿%߽^艕>rƲȠP =e9a~+6YyKZy)dĎЏ2`eCo2T0hfS{m.o7UWo "|}tm]?bUvX ԣ(_, C_Xtty2cY0 \S BmC&G'ɓ@X2FH3b"g,eU*; he1>V6ǬNNN>?cbji' ܯ?,]9]Yg_F۰~@ebWmEϦu;soɏ= 0 EY-C pmbYWc˄uavV E'Ǩ3 +>0aw~yXNLCS=>rAh1f)]&iU![uI1M`ٱMXi?[W:z+Gcm +GZU1[+"qU#(wn`5r2D?"eQѱ.%:m"W= #,!& +F@2}b@5kK+X~޺1k3<Ȇ/OCa3fSY;>u`"tanN:qpmOt0P!͏0`n0{<[ tfo=qz8Mx*uZKҏ,gg @ "}Q^[ Twpc|LO Dtm@}]ʦ}г rpu~u̟@ثI*ro=|*FU:\31*kU0 i|/*t4?#Dq"&+͊HVtƥQe'-"#˷?$U`+hW!I_ /xIzE7,ϧ\ xR~]\.@\Y67z=W@lo(e*xyd6떽90.wmis>қQ2އt|75A6ٱvDx=Ϡ| ߇dqBivH9vA ;0fxG M"^uy^-MM30@NxãJo=SP|7BubnQsN,zs yYbu-hȞ\.JU'n=K[(-J+KOSo WE v ?lrYJg]92qDtUu(ۄ/9Tvƭy8w_ּOúU ֍.菷mxQ;\s+z'e?|HC`)w@fE}L)i?MJE"HʮVԕbO@)'[81ۧ|BE? Fe,jι8w ,$bπ=̀˱m 6:u0F9@.Mۙ,_B19WpD Lߑߜh1lХg ,KRotn25x$8̇Lc +AS W+fVCq('W|xq05[ w#y&*'ü!,WIMxs 0"K_C|AבQh)djYl1H{VXsȪCJGe$pX-͝0 +i#žm&vkbJ^M/eOL+Zu˟r#7 V%ɡl7b;2 +(wbPKIեRϱʏwԈXrq #{:j"Eˇ)`E S;#Ϥq/a Ƕ*a޹ej@hyR"5ɛ]P'jiMϤ>Ϗ4P]_CTCkID-}Vl}1 i;vlb>& r-aY 0:yb?;#٭:F (~O?x'E{H"P*) 7jvBӲĻ ns)neT[%gchػ%Dp +1a M@x#31[L&}Q&C`LL ,R}C zCrxO+f+x5[[h^IXRlbFrqLeejaKN-dۅ#|^&Jgyz׹6g;)=e\H"Ԫ6aI[0tޠZ5A14U@r8H+wgm6-6qW꾉iM(ȆxTS"d$^^Π|R F̗eӤ,,>Ds %&#O򀐹@^$^&3UB1ZU{wWY^JFxgkS.]ۉM pwv֋7kM #m0d`zY(]¢SLXSeE9ZEyY4pz×B'!d$!C.G u_vq)`Tu8K<eǭ+}qjQw_wB&wM%Xb2|GWhP#%}iz/QG8S|l:dt#556/7/m_ǣH?S@#$אJ٢P-z\Aqf0! Wt_[ ݁qJ&0ñ2't +ű[SOHsovIIXo'X6*߁SX04):یS(m׻鐯[O_(_ׯ_EmGiJRB͟3-SܽD*FE?AbYъO9X@+g֧tѶ_5ZYQM2euג2k:Q#-|cy<Y۲ +p0B$5YvV)y#3Of> hĽTfLŴ]q [SKoEtƿ]Ӱ:W^b] ~(D4%,IR2Hڸ䜳ʠl(Ul< mGhɞ쩔f1˵2+M,)uWl'ICq`N܊}7n8慕Tg1VHhxt]qw"M H9Q0ίuz8בhzn*aa JvaAAdj6k' =PԟaDP u"@z}3y>%:&#~-u z&1L : Z*oP +Dώ8|f0ON•XK߿%,,*[Z r޹ʫ3p-*-C%8y*X'u~-T +kCJQxJyClhNNŸ@" \})-wva][Ό5LN6< =Y`eB=ݙ9(ͼz3ީ%<5f>c,!)Ó +{j?xE>$ ?k$mlj'Nc 4;[} m9!HO/ ?%_~F Xӽt0J1RzuKsSFa D+9 n6?fo} ʝ_||*`M$'*Cr܊~ Z&U2=XO}ROyn +pOPڋm?R{m{4o82t{x: ^kx~g3?|p&na<8`nMN^? 7oXk]n~-q821Z +z忭KA~ rbS|GV~<,[^hk𝉆xhk܏>ѰאR\XɊ|[vR[1ϒRQ oTO*ۙ)2pP`hƫgJڋ \%g Pa5wepZan + +:`nd2`R6.יBXs&}83 +ٲ gSϟ/0ҩ{/qNu w5xo?̉R0GJg*ڤ + +1$W|}?v ϵQ@4̎v.嚇K*WsuO <\z|[X+. ryWKl +?:+.Sh>ԣ*ݹM٥tz#n^? roI)Tҕ$k;NRnQ˚]xc`beǦv\l;nxyUT\S),rz_`==rR!Lh|[.붔jo5ˤ~W+8ֵ;pyn/9[:WOGx\ZCY9޳Z6p?g"oqKJOGd*23q) J3Lָ\?{'. ~3ܼu 8'qA p->gN/[>PKwj±e\jvjzՁm$pb}k_}TT|RSJ$O3U##;fP Q6R8y@0Һa0cT$ x3%'Ml(#)!>jJIGgiSU3Y+7r]S;nAF>=^.1Qd`̐@̂Wa( +iBXhcRrD8se0'JӥBDnH* xKRV1U`t\cRNJQ'"f|`OI`H*n;oǍC/Ws+FOWFUvI .TlׯXR\JJ!.|.=ą;/4x<YTz ZaŃ1p( xE¾LNwn +Wբ߾qp+FlRaҙ xEeǾ,:F,F'c ˤ%n̞hFLyI.y k2 >"M\O΋;/`;M2[;SSx2弄5Tgυe 71+p&Բ{.JX:^Om0d6rYC5 ndjujSejb?_#_s*o|gU*;ͧ8^Gf!%dKx{.8+RYf!4ȗcBˎ~U&*땛CO Hpg`h,D{%?dyPoDS2%ʼn_o|k˷|[,;\|j1ʗ{ɫz#eSZyIَP*_VY*TV~ݽBr1',<Mh=J.R +u(BUCz*5NExVVd U#I{_I:}ED +W)M(hJxp}(rc}9 z+Z2Iu#JWȝZʳ78aG$kDeQkT{A o+oiJtdy$8,&Y⯳zIʳ+ିhj剖#ZxA,IփPyOKb( ]rjFpk녲C(zeY!{Uo'%בP Y/0IN +yᯧJ%֝wu0FGWHpd=0%ZdMW(M*_jO ^SMXBO֓|RiYeAOOq ,\QpcUn,pYV^:"Wmj 'RǮ^X*JJƬ-Y*ו_H2"W D*c܍ +|j Cj'N֯9[;a]{ co <w)*SDn]wΠ뢩CZYa~G |Ϟ^+ #:p1gie,|`1$%c x+egWBxu]ZBdrW8<DB +cÉp^_~- +RyUH%&| }Y#axٲ#C|2\~:+3"c%` +xʯUOk|4o^n؄,YW*ZYѬP!evmψ,͇kfټQȕ=܏@&-T=Wa{*lϺeq֏&\k,|7YZJ>+R+. PRpKGCQG>kYf ۳es!߂H8G} +g˄valB2DrG;x%us0"ϾCJBa{VfsRU}^[iu֖Ͼ|jk7sbDK*G"T{n<˳iZso-NCק_{tī}k ?¯œ|vҲ0Ưœ +sNZ.)"4wPYjbv4%~ڑHlڲreՆhzD hTY!,$+9 +`$=SNY2ٗ [uOY<򑖃# βWo>+ GOUȕ}%eMєB8zYuҲ06+_Vڲ0vƯT R|{rpe,+K‡ʊ!w.UV|)[V|PYga+oߟo,{gyϿ_o;[m|kkƛb$>o[nxlhSgN4t.JےMo S:_˷.1%-o|fJ/Qk#ߔ[]TD_و*B4ҼOh}hΪRv}\?~}!߰[FKSI._ފ߉ԗ¤j][XoT0=`qs:R&.|e bS^˲]6cs|V̱+DĀ0+Usƻy' 1W=-&|pOǵ?[>Y}}KO]X*;=dVDBՄ"+f wta5 ڤ>rI*Gc9DPy¼rΥۋnwnM㷯 u&݋# ,)@9 +5}5Z xU؝QL?#[1VH^Vcџ3|q(Lt*U5O*7hT`nEART$_V +c#D+A]hX%_rܹ+kx xzN*p6*ѦrW~ׄNۄ [gzdon7l, &(C$Mܒwy?,z-!~Zu{'X-h37~:Ԑ.Ey4Y_KP k7Pـ*lzo +ͨ7ʻ̍?y+>AУ[7  W>teu_ۈ۸c3Gme6t7b&*bIh IFqE ]oj s6nM>H^yvd `g\BH6p8#Hy~R{<~`8I~|ndk`F|lyKnH\O 'гn2VڐEzj8E#(=#S2h S+GUґᐃdb#:g @kX6Snb_2~:t036yJ0ȅIa[u:66r K(q_Ef+̓╒5$1C;x+Z\Al-7A]WN[qc?@=:eAS:z/j qWC5a*D_Q*-7 y u*t;oH-H̜a|%Å˷? x{Y_Zy&[/?o_?-o6wVYo߾ow'v埸- /x +fC\?;wF/sO3ۿ?Cz7Me?)ڼ?{og[r;zGݮ']IPpb;B;[<9J-QO,(~;T- uCA(闧|d^UyWGYn++fUF.F0d : Nov]@2a2nx.SUt#ѻGO E>'ޖXL[ +4:1jΩ +(>TC5Fo A5mC[=byKwnysnp&Do+rDkѢ~; [jXF}x-96OT6?T )LHmVl]mSiE!W47ѢkQ6fF^ =:<;Cav}s|ϗjNTz-rP}-Ք[+W˼q=Y'!y^ 8bw̕Yem/4Ue QL'1~xz|Ny9  noJ2{aUqt1[?Xturd V]=[=T}h1-ªvamnjtK>nA 5 +'m=ō9'GIIj&cc;pR}@\_ ͐ OVD({>Nplt b +ck0pF7k@FG{j=|Ѳ& mn?)](@ŘۓC?a"wQ.1|"80" +QӯF&-Q4&w\no "=7[T{K:;:8K=z/d]26t}*㨥S4G+M + ~% \/rS}@n'w{.@X3+ `~bCzpr'ws炓;81>6], (<[G^M*~oFF 6Q:y$ӧ̐\01VΫ/}L?Փ11۹72=z{ݧxK]bseǻx[Ēlxfo&|]@E5FjJQ=}òI8@ \qdaOi7/K?c BA!oz~T칍-W߇'ǵW;'\)LMzR{ɪƧUb HU1Ozy} n6KމfӢtĄ:Ed(I;R.@Ns5mOU] '9!old\Xu676 S2ϥ6`MN0aOly9m:df\ntO0Vh[n3M:T! ^MIH=E&'L]>\VįNӕjO*atv?c'1♍8bOgŌ>7=A({'EBAt~"xfÚd>JEv.i r㜦u )6r{j>~oDoca]x0rNDWNk W8RDI(CCko!{x5<|[ AFBCk0jJGC!<ࡍA9wu^!|`@Cn$:*‰2/*Z> g<5Yoa|!2wV@bxET3 ߚdUz&v੒4z̽ h<_Ԟ-1YO^}$뭚gY(^2wp$?Uj _n$:z&;7{cGS9EO1YOp^}&#{ScJj|c(1%5Ji0bJܥFKmrW~ןgb0+T^ʞݬZV==nTLk[@x.z`(FQL 7bӍDGEX5K@o1Y}T${h/-9]ﱇe¿}ov5̆4՟scPDZo.-t`a;nI,+ʻ.~6\4l vpb.` snhbٰe0Uqzv4CB݆kCeTTVY΂P f9,)bJrb f9,e@NQb!-ȿp]wP + Q#Z<[GPb3;Z,1ˁ2?MW@t}jIW6 Ô&aʁ~n&\ 0E)b)&#ݻИaHIEtf S΄0Es/1Sd3.9}A_`)gZ!L1ƒp#Lp9'CpikVI8tncnn+]X).-k{!.1}jj /Yv[M#y`>OKC9adAS-aʁVӍD D>'OhYܒe@xMB(aʅiyUEU(K8 ۅBbἢRhsHBZ\$-_ .%[o8F\{hlEG6G7լoB}e/GsMb0㳪D5.mk}ӍDG7&MQ?,I=@!t>7y`moz^c(C7hP~u u`GT SmgY~L,~."M^R䶹|u"c&G +d;|rAMTئBO: _ր'` T4 8~|3J5}5iSTHn wC"ଢ଼lܧtr'L#=T +iD9D SR9iӅop5 aҟcI~09*#9'*S-}œiy6!/NҾkZU2<\1\z4޺1k4S:Fi@6"jUwj4X#:Hu7M( <&Hݼ|iBT zZ_]ܚn-DFwH6d?" +Л/ zؠedNo$C!-TQ"jZdr%O!K2|@ْ!=i&HtF3ªi$=Zv]Aw%B &`OOTuR2oQwLJ$3i*_7c3$ycjN:{s6:ƜUA@ʲd(t[^ ]D^G;Lm`@hBY[X%aT`Y +BJ4 !F +yV-iRĐ %6 iJyO +MsDجČۜEOT0%"0ljⶭ?bO{ b-^AT@*[vGBdԐZHiulV#O$jcCK>BH.BѪkߜY0q| +4l1X0s~߬S}Q2v SƮ( ߭N6,åUNN+a@Qýu/*]*p h1_Cp +bvdp`6Z#t7u\kaGh{Yd<- +!6}iڗ؛llɵO}Pz1=hJxE'}˒*߫2p=6slVA/-.O͇X;9fz$Y.@]$aݠŝ5NiqGtA7LGWr2U1xɳĞV$v,5ZD{r+H 2$G)_rⲷQ*O+{ptO[x;v[iHS-SJiEbwY G  |^٪j&%ecE_ԥRKbWЮy%t([FG]n9qNQb|%G>}[K }: ]ӓGLŭAS}fJxJF]ܗ]+H/~6fmohc OjŁP&z٦C`y2 ;8VŠ2Q +f"`W)cID=-)vߛh{Ao,oR2@P҈3HI2[D~[X'jwdGٮ #: Om lm(PqR@ͯ)\F*r8/XP%$vC@O9(7z[m C~"_3us=Wb[cB B'jfc,ĝ\%t~23ᩧ@ +V87szOC4epaUʵf2v OF?AXmFb܄k,"6Y>NiqJt^h lԳI2$VER7HBm37a0u:4`o)I0Z f~r/зdC2VQxTy2u/k_l.v%ܺ\U"?N!gC` ,lxE:n"n+>8rPZ=[xhG7q>  WѼ/Xlu<-_,\Q8 m!L!F*xP}PsAb6<fٿAM \+!-u~Q +;t'$# \tS0"I ,z[oƐ-CV6E&?- +ǖ&[)x6C떀ŵQG7d +rrpԂh5`S%OVZzHǭ4^vmeG^4[D}ǖ%~ SҐ2?uN/o7F٢Df4~t: +7b.cƖ'B>-';bK,՟[ZƖgj(eB䊾7ؙ=G1w䉓q%  u'xĽdsu_7Hpta +L>؁?n)[=P~"Vԉyr?QfǻrK&<6NJִPb`4Rǝ#\20{:p$G<<8l!L!层*0[|.>ŜMEܙ4]))igZ IXqep0HhUH?WF%5|s%J=a (|@>ZIZQD&[.x%rCUS6jE3g$dOzqo r؁v}ǻrK)y_;.JKZ?L3 ĜZ;#lK4d?6`=h toB9@a\6*p-mC@F#='Ǹm5B'{X %8 y+|JF- +G|墬`I5+c'2} 5C鉼<ҌIߞO$f_9.Qj8"_ځRX(beKosC׾TP+BN9md \UBUJQ4WX7k9NGmYnef7:?t0)O(%q txiEH p@~!OƓ\vxM. =Ӏ2и2TLAT'dkye&pa$b^=81c<^{ox;v[iH0ʨ :m րi(#~:U@'Zi13˜Ӹ.%l]L, +^ +h>#TF}CX!s 8ci&k/Hw;;Њ| 28N)̼Oq"S<R fpg'0+SʪX~%ʟ-ڜ#eAGY>_'4ܾ|Z@9N3OFzP1CJdS$4 "1"IǨ4_@Q>ƝOHPdp__C) +r -C`5D3Vm_Ox)~ZX$z XF}*Q}Wt gA r}q&0*]RV+doTUs'5 -^dE:n"n+8t ,꣚ӠE'3-Tu@/soS2Ŏ!vPQa'QvSnc:a\.q”ZW>Ϣ"tA؍yFN0k|]ExOWH eUwIW N9 } )w> T}Q+t'28a}tasG0NQo!k%Pn_{ +[Z泜 #dN2iބ_ pSf' USqpJMPEn>Ǘ7oc OuY>Zt"vlW +MNðROx g{45+1,f4Ljfx |Җ$yjgbX# 9_y"%@UmT:xsOPys?R1CD;d6vsgGMH5zRN0F/??i8LDd0M;T5&iЕʨr2) /Eh(ݹ4r. ȨOFǮ]щˏ['oɱjRApaKpet3GMjHBgw5dS=`\ H'%2Ԋ'yȃ0+ JNqHVW,n2 YyIQJ#j4It =q YIᾲAj`-稸GPJxJE&+еW/s(-"3$j%8["ש> Ң*4K!ʥГP<gɦtjIun5 +вGe;cO6V=wqP)LgWZȣt#!M$<W Wؕي-(b vRԁtI&!-FazzNЩ`k/E}@ZЫ0\@4$~pRp*"е %w^ISZJHGe\v7$P Zl@ V&Ȓ)@|P*`-j1fɀ"E {)eۂr>s~\IczLHx|ndda2PHރ#lY3J%&a~hDAЈ4~r'`=R]wJUWp +!DWvؿ9_a&狜gs)+- Bp'Nur4L8ωhwnIGՔ޾#a|ݥ L; U[1.e. +1-&"*0fy@=cG!j9J5(ٻ p^J4AaLoby ɂ ~{X&>?`|;ll `Q$wZSEnp溕B9e@oe@ +Q,4QZ@ouCUⓑK p]qݔFXГʯ0Ƹ?{?o >*. _h W8­O̜1~g@ /G*zHo-9: +Cq 3P7N}M^Є#nBDUf79MNuǝLr|=yՍ9=B[SG^}8xGE#˜>y%%M~Kߘ18<'0BR_Uo|_u !yC("r{&DI񁇿 LӀpdՠrKNL2RjFSŽ,i,&Goit\8*i2Hneوͻ!"TTi `wrK)ɵOS'LM})dj3'bJP+}%dD)YvEŖ +5_V,fʗq+憏.poNtB6\̖cO预9L>=ӫ>i7%u&nӣ>X?M)yuQ+'0+h~s,H#п &Xs뺙Xq\/Sk"n!:ɛir)<ꕡ0r%Pˍ GDWޖԗ5l=8Ӕ[i%)>=ӣ>?~:Sg/n]ѿB +V52VlXyk*Z ,)? >,8(%F@$Y1Ld"^yݷ$u^q":$JY v?7۠7d:;|+Ji3wz6L!̕)N&;"tɾ>le3͞ǁu[2v +?fΞę6 lЈ j1b/8Ms\FJ!_fz +)dBPe{`쥓^! * +2)`7tUَ^WH3+Yݵ4l1!BR/7n'MLbΫa3>2vˑ{r ]V4J_-pqQnCxPl-M'B O_)@u׼4b:HskT|O،"- s=E"-YzA. Ed }N8*>@f*?AmcF2оAW3#ގ' ״3' A9섗 qfg ~d]M8WyMU7u!^\w) ޢmGLܢHNJd8 ԟR&$;ơ_\f7[?}/Cby|̼;IѤ(zsɘZGs/mIӾOm}o(fE]J^cr}.5{["Qo}뙮v♥9B<%oj§+W0j +nijѲ_aȭݽ\o[|}?J^ߥ;'hI})z 1-ѥ_%tR .EjI[j>ٿI +e%USz]-H;Q2m)2͒mziJ6Mܮ1 폰UTCa(4^ j-F8͵6enS E.黹ǀc_bSZݛPL9ѦonS^93Rg|Tt;7.?fKDa tE9JV豫?ʫC+vGPj +֢7FvZjo0gBhX}.ԺYBo;6?*Hy%枏ZP2=)sڎ2'Oev=2nʜw*s +̩'g2C eV§{`3M8Po7hgz48Y@:zsd7ote6NKq7PMzAʂp{}a{(7 _s`&T_K\n%Yλ 'qC`%iqH*3`s~fX*-XlivKNs g-Xdv-hrJe5bb'+jv_,2=n<0uI5 xuQ'?њ!ox\EP]*E^|,nţFBnΛ Ɩۣȝ7~[;i74\jGF{b̓/drZb-<+yX%ǣrъ{|f<*]w w~ÝXu"^w{=~Y`M4C^Y!Z.ahOwͅZۭz4]=*[Uf`O6U9}h~~[-3욝CEU]eeqβu#5"A>&J'6rY,9xY7;:AMl uE7x, +8~K< +8QSǣ((~ SiCN%ÝL +CR>Z[.>8si.IrlXfyQ&,ܣ'Chwu*^ѹ"3㺊lVq`@]c6L"Sr,2w4TFW^h~ *ئNU4&R:i4FeT71R9i4o c +,J=byMk +mn(jg +~#)JH4 +7JD7=ǢXݜ9T:ن>Q|¢>z-S5mM5| ؃"t> QyWQdګ^WEcڏE0c;1_΀z +Rxh;*Q_O MS_P~فh?p垆)=i?J@CW%f=ևxy9/)ضKj";-&ؚ]n0<0#U⡘>XPa%U[EZf2hmtfJ7ɠށL .n3YKZf2c&'Nm 3wEf,R؄]DuG"3RJP9v2|û2L8i[gw}T2G6CnjB&ÃW~8` qކ˵C8$U|Qg>3,VbJ4mRw}|oVMq/}!7U4;3Ĥ(r;p< }xYt(_rQ?dJL y>SÛ:!zL:x]}S8t__+oDM$ﻏ1+{މWY[lg5+qYxxqY +x8 鼏Y7(Ǭ6dV:4y?h3?Iw5Ýn+BKx}w &<^6x`;߳S[[n+rmEfl%PbxtlEL3Λl9mbz wa4`kf +hf ,J"1{*>wj!i־Yf`J;0Lޢy]).EMs-rS4yӾl-Ayy@Yn + MAEa + ɷMA6䨷@qk@J +Ķ !-<( AނWŰ_J}lDxlR$"ۃﺩg5L]Orp$ S,.O eZiǶY}|:xp?C44Շ>(Ji4ƫ h4+[)4>C:6YNuj<ώ}M1}v,nj3{2} g;&LЇD|A^g{9f"S{>YZ˳>)햍vS`V,ބQzL9]:|0$Es}c&4y_\eY7Uf-E&oK|>Ef8Z\h,3m>h}=X;G-Gr#*0Pd>_"ޕ}IԾ'I"e!r9Be#[kjbGmA0>'Ts\b7<ɟP<'eɆY(16rȫs$-3Вths8UUmm}} @Ȭ<ՎwFT83>hf"kMU GNpB<=wn;19B'&]#Nf'8 Tf? Ŕ72'F](A5C瓎S+M5X/*.. +&oy6-+P fThUK.l?rC.DA*N B"Kad⵭Cm^շL|FfvZZvj-u; gY%XT4/OQnU'FiX4%P]v+Q%|F-k˹4%+MJ*_eQ$ګD'^,On}Ւ/KHUu蘪ƒ&[:`T25UeYPe"U>>Ui s:Λ̢lu^ɲĂxs4M>?U~44oy~XKJ4z@>NhfBWLٿ)懕tr,O<ײZs\ZbJt.SrxβdJE2%X_) 'Bw(B{`,OX]w+s׉y{2⭙rYSUn[re.jEv|ckr|SRm?l!ooYZ}kr8a%Ʊ%To,2 W{m?Z>W-9$ rEnB%0IoK~y!/R u-IPnjh9{,8E^ Awg5F>]FX?ͫ/,ԉmŽeYg<79UD[Y28ӵ7T骽ǒJ-W0ǒ@exH\^l9 VOI>'QF3G3wه`i|X뚎XyMLJo]⛒`bEPd:|'6,z\Ǘq_vu|ڶ[vl/Ux-& +m>MryqB¤Z(,"Wa k}C> U9]y7/n}T%ZL-,ETX\Kj*#~mjykɯR?vV>ea2WkfLoҩ"31,orvѷHɶM,/xvu(WTjW43[Rc[3Y2'śh-Ֆ[d')^ͲqȤV \@$ah. 2d')Q4SDVC,|]?ʼnbPwĿw.Nw?U=d,?챛'KKlwZeȜ.-]KYDpfvp=u[=,|̣'U&ԝ3a/s_]%9a%Zlp{t1Z 89"x^^eq'vO s]%w1.Ycl^kUzs?-fW VT) Y!/ 89gZ%q|N}?e|SV!W,ڮIv]Zc:,8l.C늛c|<0Z.m|q͍əins>zw~z\Ozm r[MpuCDZcՊGll,nQIp"*5$Z;m(dVs۵2Nh+*籫bB+fRz܉םx;wzp涪o\}T/r W_(r SA~ӓ*tn)yz]c,cYY5?1]k~6ڇ^+!X*^3Ucviy;Gugumpޝר,~4&˵+EfhSh7iڶ KD;,:W[KCWLc +c׀bakE -8U4kې%)Ue1 QۖfLu=/_*>=UX.ms5)/_nKZ Y8k2 jy44ޖWxeIxI۶RˌwmCn"(clrn>9&ц\x]DgRZf뱇[G [jU9w]gW5V𡈊 >9_Q1]t&ˎe?*9P1 =W$hZ` Q-/=f$`̇ BxǒMÔ\Kqk{>7\ۡk{nLt>u/ۏm $]˿;rڡ;[& +Qcuc?w^4z+=c yw<ɲ;,$c//HFʼqev>o ?Wve!<-n|\^t WqW9,kЧ!˕~[Fm+%`)urFzH*YFdptr,]b/fv[1t;fv<EPd)vؼa[ ɗDް4[SoZ|Lᡒy/ya3sOV`%b*z<>"wvL:& wPd* P˽cCz<fBZϸP ˽{nwYrOI +oK&zȽ~wC=X!4/yu3vx4tf=[vwvN$QEy{[-b'zb'g!':{b^ {^k"{ hz4E yz>jპַ@gz_Qm|xEf RLoi}Ɪ&Ef R»g۪xLE`F"bYxhyXekx^^o ]ch{=jLW|sǷ*o넷DE1B p ďjE^uggEmO"_mOã(2=u}ȂL +Ll}AJml+ڑoi|~b +Kb_VG~F{&m"W}q<V{B ֊~1WE4W}y0i:ه>Oxf_tE< 8J8ttov'A[B+ݧD_C'2h»9zz+<< +6[8'(2B]~^t3ω?hF_I@YN >;R)dCIؘHb I9ʯ'I}/4B9o1gf:̇{& <]>AW*#ș F! cɄnE +THF*'_ |x.H_IF*/bS#F^A +dVpےMxal xFrTB#Tդ7'n)H1) $4|"EsyLV>V9A0"8GA ?} )-9z5*Ex +P__JSC8' T[0 GЗ[0F;܂ f-8܂)T"mЬ TW %S yC5h K!Ocy.J!yеG^;R N u8\AOacO.V*rKޤsծMw!OpC6#!u 4C OJli2 E)Z[5k^ZJ +UMS MZW ?-?!ͥw$I_lK ]'qi`CbalZ{<3,'@KzMۧ[\sFn{q+<'=/\9Rzxu-tt=Gu-CSak^u}uYO:W<]w~u}ܢ Ev/u}1PZqazzՁ'^qsC؈PQoA0kՈ2}ߺh} sJ,EQ4w-$^#FЯOv9%F:'Z܊˾?9;/MbNhpFQX:Wy}ܪfǭ91e'/rW s"1Un' ,ENs#ܷQTR*Rl{`wziqz](d7eMC4a \U{PjQj=w}U5, U^ݭW4vhxaKmwߝ -'V1_^a WA: +Z75tyM`з!n0`ՋVƠECi3.:^ d1F{nlR mcDn`O|BӂNPG"քQ(f)eW.T//Pj Ҥ/59[f{ ;W3e8:hh|*[ixģGoop0G܂TsYyxm>;lѨك> pGpQDy_팺޺{kgY[vmoi8Pt1Nc9vOGCm&:kP#"x59Fm~@-m*O8IQEDVV^|7|X#۩doᖏ@]v9ɭ8d]Gk8dxE}xcGNFnƎChpccM;f**f]؆\aV)2i4 ݣBeo2J,UcۓRLQӽ{>rKIgI3䶵b)g4.)a -pUƴyݟ}O€IU?rQz]3ͥ°% 3F[hԏ(/a5@n +v7 pm|YpSjM2఍ C o( Ь=w_ZC^Dɖ [D_`?zp٪ *O3Z8FnUYg+Jս;}J@t)Uxn!6@rXN k O ~6U:gx}rztm_#(Moj{jLv\3:p( 8EuBs9 ˓Uda^,cXCvbHR/axxU?n\,feqe1ԫVI|0Ϗ:n7 ֗,w>.Oܚ輪o>~ǹ䜩wcqr6o?p2>H6V݌sԶI-лfz/~ʦ*oz]ʛ~fvW߽f[.Xw$۹ƅ?xCܬ6ⰳ.\ol +endstream endobj 204 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*45Pp +q +endstream endobj 202 0 obj <>>> endobj 564 0 obj <>/Filter /FlateDecode /Length 67261 >> +stream +xKϯYvdn_06oڗ>N -Y6NIrH蜲Q*eȈo` )BCV&o (C.ݧvTwyeڿSzN)?/~7o/oy<1&_?T*Tz{QX?>}F}gΥc9sk/ϽgW|KJϣ]}}Η?>d>}>_~x.{ O=1J{^\*/g9f~$]WQ^}Pn~Ͻ)Ҿ wz^>so=_?4V)X/ooYOaK[;_ kt.m?Gcʇ/~ ):s}C<{?E}D\z#5s#wk//ri֜mM(s>UdR:ꏾ଩ ,{ f6}Iܷɚ󭙹W[{k?R9Ysz6Z_}W*i?JS-/oɡ§ }?q|]8/o>hGpC߹z5KyF.Ql$>{>}7Ẏٙٸ*1Ϭdc94?> +ЎM}Q֚V+ۿ;-[m-dqZq*>\$>CЙڻf{ }BbW?#_;+:;~' +tjeYSg͢{U! gN%Ɩo)~OxqZf}>O|/ߗ{?3plAI4|Ic V+zoۿ,E;P +u_g_k'{W-mRINO1,GyQ \,CϳV[^%J9ҬW(lHijxnm<{s~oEw˸;M5Ofc2fW[;y?ホO +]{=nF=%?7&&n[)k} 1${N_ۉtmˑ|$&$?}%ij)2(Ni}X?R|G;Žn=XNж] H}_yw>O#լ}Bb-dD{Ey o!#bt^ExѪM53J&3X˜q]R/''G/&>_N\ndR8őgSo30mDw9Ky|V1WlKwo/?Jv0GjL_yuh#SK[ח^io ȭ?ƣ4_rnt\ ݺGJe9~3Ͻ^<V 8\ ȣߏ}}?>A5EK*ɕ??io* |oop"N$vsam?{#NXF?ISqS_}{](.t5.v>wsD??ʖRe}oѿXS۟\Rcls堝j9h+ ? +{hk?{F}G&N3 + +W_|s_F?"ٟ?iw:i]~_9?J_nqߗ??oR)cY2߱D?Dno\4lZ㏅S U? &~Kx68H`̡9L6Q^~f_TLe` ꮾ2u">*=UcAUl־Ο.8SL9c=k*z}{j$"P;.n?^8Cn.BwqKӑG_?B_<=>34~s:;+wi._'}і8n,?\ˠ;&1&Pb_; +&sGT\';uTqEe1Ӟ[y7_}O9<t*Ei郳׿&y~j#KOgݥo%|1эmt2F"skTG: }4pئ?Eb=ѼV<=Oaeܣ*yM0Wʱy[hZI an|#ŕQIۍk :"W )7iy9D +µLV@LJj ]k<|mkRxkMWO'bC+rS pcw]~7kI}5ܣH૾xcmr,Q6VbD =&, l YP̘[/*hFu{sb-B o^W CK u+v:ҍ;Z׎:WTJGmT)X;CyasFڣ^r>R"^w NfEX1e3?c;SL1T_2=N<ՕS5c-!Ij%')=y[U#kh,!Ðzӕy ݕQoaD5feB72Ov]|[wv +l -𵓛 o1ZW27bJ  !4vhJp'#^ 3^PDthmWO_'vJ';Fd9\=JR00]B"k;\+G7(U  k{->ǝ"CêW2 94*1>ϖ%CzB/,ĕISi_2CW s4mkz+<=_WXYתk W:ihnMg Œ!p&5>IXRT_2=Nn%\# rAgBSgz4w BX8;C:4{l&r?[F&$$SkMqq/(# ,D'#wk$=eAJT?mF>$:R$pR}Xѫ +p[ɬLմd^-p{ +X2 W;{CyaslOzUhƑp|񑼚NzM,jr[l.Mj7p +O8WS_2=Nn se>ծ}_oٽ!ܫ) TޣhD~QZCy V%:\k kt$Z{tjQ9ƶz#<5.hF vc7beփh] Iƶ6 +.Noehf62|+Td-V„vmԸl!JǼ;#ӣ-qiQU#klO\y(=.(%I8u($!+pBp, +W_I(cb=# BUa7\ ȍ/$6lǧ=tM<%&!-=3uC)% wx$=H0f:&x !+o+qWY,Q"GuR=^o)췪|ᲧB`BZx..>Oa4C*L4;tGkWЖp\Du߬#!XTvcsGdEHXS MCd#[e'i%nt_1Gx=B?#|PhK +ײ!Nxh#0tx]oavNӮ>اpD;L3e)CRז<1$GcBX!wB*\5G',Ą`)_g(O֍|9CoIJf$ƃ$3Ӊˢ c۷+ٮԇ(:Rݞ`Z$̯2Z*;O\Ջ^MrVuEɞHHd9M쌳Ps=SBs֯mQ2s qt]iV~>KPb&$^pc`Nket#Z"T!,@E~)2ޤOp89Sǵ$,WU6_CHs21K{,B: ⾍$%ov_t'_zi3]b+ܓL0e!lb\# +5̳khBнsFNSLˮIKIX- +#؃8#z ?ۇ_i#B;5|$:)G +zԉeV'mH8[.ZÄS\ +w ޾$$GHyřuzEƯ(6Jlκ xxSh? 5k_$S&h81DS"Yɀx +u18хȯԸ{$"»ZQe%-p[i7}6#>k%^dO,Ж &kݳ^+01Ǚ`qp冧#鮍K>G!q-Uf7 q58v#QthV5!b 9 +#^F_ՙ9c6U东#q3!o ۻH k5kIa\BJ46^ +9BmF(8P 3,6[>ȯdk-bڍ٠OE„")xN4#]c PB=?N|<@Y' AA +Q_i4,&ېW 76[l,0}G(']xOdXTv0(ޮ͎)>ceÃw7]+" BMBhZ #z䤱|EOd qb!/DTүk*z =(98qchZxܢ||כ*ol~TɑU d2gWA\W+P7"K3mI6~7[~ $gaY̠!,#8(Z_Ey̠pH(DjsTXܶl"~"=>Wg~T#]<X.\j-t r3I&($B8={Gz#c0d'Ɋb\ƝLvD\JgyUV @fS>'< tuc.TK>l4%ROKW&zbP N;UhFu5g'0l1x &#<.y",b3'wڊOv ;3-T떫L3USE3%tm5Yq<R_H}95"].UɐؕRߍܥ~ٮ.ڈfOv#]ļoZGEp#nK"d~N65xRx!*O~[9X9W#$ژ6G!1V[Ȏ +|Is:Qm!pNG$Lb&`7{U;Nڳ)gLYaC\+TX5KiwoS<)k%=+Ó୚)dٞ*+&xů@qN|h!bsb\{1D5Zw+Ԯx"B+S-a~X׍3(cDM-xSUTEViժHȣ*N[9) ƚLj2 뮨>f2wrl)۵tԣn0%l3^ Sc1[ njH*~OMF{ђl\NuN2BX,@Sm'G@_^J8зz<е;ɱC{$xP͡RDrzrIS@( +.{Ԍ\Zy݈) {\ƄpnYNB3( %WZQǼiA(ካ#,hG18i^lyE,(\(#?AS)}YJ -tY"|xc% @-"qlF_^ }7 >LdY,=8^sj,zJ_,%ya0$*b+Y6Ebqe٢jv'<=VrWϔў[2_m3aAH`S(vE36$n|cմƻHy% 3[ĕf '!v h"I^Db<~3J~,;ԧT!<&R\ir +DZn9>.bƦwvۉ\$Eo2&5f=fXZ* G=^y]B뢙?ڤ}fAfgIo;]NX`kLx tbk'=PכhF#^ l=2[ˌܵߤZVf*Z-Tnw MרD*TF2t-dl͢ìk>ow;_"ݨ'fvyU&1HMŹI0۵"Ѯ4d@Uek fD,#A@iIBq^\udɜNFf>Nو(LzG5֎ïugbO>vS/B4cTI裺1n>#Ϝ/s aWfV̯;W +S^-LykȬ7%kÈOڲ~kc(6j 2ѯถUGVVPRvrkl=9JH7{nZYN;gu3ACF4v$3''"W}cBf<ϱZq4?_q7FZ BYOgerYŁ;[%Z$m4VĄy E[GZ? f4ZJЧT\ecIf(=C PꏅS'W d #ِ`5HxVKf>bZ2\ȳzP;µ"7Xļot'M).3HH2o۫tXAe@ieBEbCoğ4)4,w; 3{~2]A#, y)p~oD2dVq7S//ýzPvXU : ; l%d&6Լ +6)<tl:w<O"k S.A9ʅf0m'9L$(|v5I9%BHs٥17o@[ ~OHU)-Xv{zkl9 ~OKk3/MY%XQw7AzQ.]F/x#9 ЌCI=# Q2WS+핊HQ-$jc@;|6w$b1@2ØɆ1SoG6R znxօ~;AS?V#{3 #z?]ܝWk2R-]o]o> 9T@/_\̓X(H!l}Sx1< v~oi=kTjȀ ,Iܐ3 O<ϝ%\EqM_)I I16F[5opZk)fXh&6A !0־.HQ+h4|$ []46BxҌ O7lY:rb&܌=lf/״{Kv/5״{]i{ڦ-^IKHaVo^JpmY'hlv(:7b["e$]>LBvIՕ\l/ d <ާȄ \( +{&1&뻠 }bukyq } ϑaݱw5[&lw@mr_-2_%]ıC(F|"b5)n NWH7hU9SwX&+/Yj7L~/MX#iV+ n]?!M86$d*hp((+ "_7z1ZdQfҧEM| }rEn$K D&kXQ¡&}V[=xQrp0sy.S( (O7m i>qzVMZ}yLnҷNS;Ҥi=nIϙ)=iʌג1z/Ƀ<7֙ߪti\kiQIdJSIϕʠqf#ֻZKfFt̫LrҴ3+÷M-W#:NS۹iP榓Y,kIG'4O*tSPNYÖE4O. g_<1KG14;MI/x뜎gAP~:RY@Җ.r^\:M k}Y轉?خ8Oi?>5E<֫Vqe2 Q6#0Ny i Xb9~$ˈ'~.l#X$}k:KUEE|tZJ k)=~Kµ38;(~=6r7;v:ɬ:䦦vJaVS; <;Trn0phbi- p͍w[8v55wOtVS#G5CpYK#z=6"$M^Kp?>l1]>l!IT8]lIYar^lx9 ++jߔ}OG.pN@9˕:5t\S+`U_CF-}>Ve寒Hc,:-uaX ;%ޒߐmR9o顩Tp0Sg[g*[: +]-D7)Sηh @EϦD;ٰj0xZ0ӄ4>M<8הCi?~4o_SI}RTa|ZeOjb1kT?MMܽӠe6555=Tﴨ͇SW`ӄ^5;e'`bm%CSJp6IViSM՛1T ~ b=pnM[39d%dru+n߅;k5#V%dn6StIMQ%(dnOi榛J@vZ&M +nAN+8Xt;MՇ +ĄxuòJ?v9/O44-&8OkpINMCm5<$=t_& S!OݻIBŷ[W{ӝ&1y>Uo~OY87ֽsimIBwdsqT׍Jy[;lxIZc^I5Y@zվ#T*`QKUvL1l2)~ StQHTwIngRinBHɣQIF:eMw鵫%֎}MљS{ u+h0z@TNflu.Q8KV;BD]WӮ .r[]Nm\eIt?.M*̋J[Ө5-`Y [K4y[5kcg\VXԭ@lR[N ]*mSΞ*kZOM[mk宜;.Msѓ;SE]J`++ԥoѳZU9+ee +Exw)TuI%v XsS2hY N[ V Wa:&Uh0y*}TVVӷnFFR\L&y8UHƀ#RtJHNh9‚}`4}MR]\.o08HfR& پ0R\L\ZMR2gA9o7͂r^hB9/#7d1{D6x&co=YMsᡦSx.BBKrci &Bs& ]kI*sMǎ(*olEqe*`~TQN_ІՒNhOޢm[2Iu pZF˃ǏHZf%cVIh6a!)$[#W*=eoW՝{p TB_=hݹ[0:0}W4k55`[SY]vajήMlu[vCeu9hTCP54MD5t fk^nkj2so[[RA{H!^ZkCc˗ +*$}3A!¶c9EwuwVOYB),QP%.pnG7l9[Cvk03N, ­VߋCiiT0gl4i X^P9[:TZ&jT1gM [Fsziy>/Z}jj]tYFUteL kI{O,5ӱ4ӤݔQ=A`WO4*TGZ֢$]CA wr:6*BK 7Bfmixjė /u5 9K K[,kT[SFo 0ܨܾj:6ԅ4z Y"2FuI55zYv5z[2=%+RQ)] iRbMU|Ŏo`~DMEACxQ]2?#/p4zY9_QOFUFQIB,Ppa*̅<5o[S4#q[Zl];nmQ '?M؎Q]P,)/&x|N[PX$O&EA_Ҥ!tûmZ[T‹q O)[g8 A>vY|WLGL5&6ЁY@9k:|IMܶLgӄ? +gPG_Z5 +/t7~ekgOCB)0%@bPpN"N_8j^u]FUp1EF¸̶ +#Eʸ p߆g=e^6`[mAkmz  M([NJ<\'ug )ā |i6z~(&c0:LZ-EwLp؄jXz vbcd ~g'>m,CFtڞ&㈼Q\4c!|.L8n7yNAŖv@{W3[@zɀy8nTao%V^ZU-`6̳y@4i|C6}ύmvvl0H<;(mTMp +ų6s71ij6w5'X +4' 8 )HuΥ<~XbA9pؼSyhl^ <¥ؼyIoy$*Z]Bp8 мy$? *ڸ[-{{'BBKor`xima5<ps7 +\#AEV[v^("ToVPwBU>Vͯbm'dLmEԅع3wA-t.hZmFιao 7DZVV#؍dZBڋ6s +]/@2+dη 9tmᤵmm@mȹQ\HJ-~ljm+b3{H6sĜo6s[#8~׺'LzJMb;4'EIi, cEc MGV&5VsrJ6(/IG:否v•`f@p3k.p\Ws;؄JmB8hzu^[tmZLֱ#Yd-ץy +[kkXIqFUY4 ((׹o MjIi}nH" G`uҶ$eS3p +j(9 8ENEk@ak3oV"T֍7acLļ]Ğ}Mh8f{|n't 83{:nsӂ8&@NSZV*Cް poVO7g=2*eܛŎN5kJ(nMvz8C7L7g7c +pou6;Em>:DdZI]ufUnhtrm$ 2fH/@1Q~٬, l,bz YQ#őlXDBn. X^[s"=QP +l#Z=nVdupIp+lv+lfj QaR֣^Pxoc>Ao VS/o7{p¿ +ț +Ⱥ?M +[x +1)@,d{I w)4~XJqFPoqJrh=vE%ɂ'v+>~[ǏRDZXf9brWQW#E P΃PNS H;T)x2#^8 >4w0 ah49 ah:&w#V 'o$|7Ϧ&o. [l0k@'5ZMւZjjLV%/l%@@~FEfa-6=[?ղY5[bBPDpu^X™^3.OoZ 9u +pҤ;w @8JҰxC+:Y-v/ TBg.H0{Kײo- l'pw5@'DpG,.F:bh@l cy >(Ah βn?>`M;ϩ7Pp̀%(8:/sS@]o@ޜ3@ 6>aG$ [h"3vKhXؗnZJ6pq/ ].ORC[ro VB*"zoR.5k`ջ-l exFRAoHq#)LHɑ3Hau#vRA/^`FHj$,S;Mre$gG[#gՈ#F~Pu\0ȎG ;ApvҖL@oGrӑ~4VֽHGy`]҄ 6MAkׇfiRn"rݜOh7+q v-Ϋ{tԞfБc8rIU06u*Mbě?f#w)fmӧtNY +aJVڦtyP1kA=YAk8&m2s`P4uMɍY 0k"Gf-&fed`l?|^ AsPM֛S5;yՇ4ٞ\*vG-6 eQGQGAm=)l~[jt[ڣfQZ +X +"3.&WU5$e7p(lm. dv`f&S=ue}O//l!IVϔ}1Ŧ%\q7eNDM`Gm14FM +/^xP̤*m2[$+ߩB9jzmUTU\Kuq<4UanA Uan; jFU&,̥4Yj4D>x4<hwr7\xA8aa)-7۩UFS^YLrf[v ȿı0:nnI]nvJ4:n[x؄];v 􆢽O~U{M7Ch>`sSM]7J%-Sw.)@l?: s97vmvvLݦO.YMӬ C5 Kg ;]$m1%]*8B-@i^En/ZC$,0[* 霩p:+8G8;OӅTYkP]61FAưB?R\Z[Hy:7/C0t'2nIw'P ݙ:|P >"NGH"&q#SAuҗ~.,f;%D8L\'@uc7'@uVG:O'PuvB0&>Cgu1hggc6;󛰷Z!+H;۱>"Ύp?hS(n + `RYƬJޠN`\aM9=uDW},qv1ƽ7hmcWptv9tt]\h2>(gxcZ&v vchכfr 8;9$K?0g0̱BXyF\(bKv ;˞w:`vגkp+Ґ@ʨڽt)4])ҮxM/'uiƶB[t{)YΣV,X:*d҅| +2UM`>Z"Uڱ Q'emp:+1v7 r4z;gE:f'WH9O6pq-ŹsA8ەj9?| >S-ngRՄ=8L {y=82 9t7SF&#sPp) (8 ΄OYi&I΄OYix&L^j "UoȢ!řz3$'؛e3fLYx _:po&G:f%Imq$X8,\`pp 2>gG3+IEjIĘK- +u KnRդJ9MK&g֯Ypfg 6;5 ~3fV5{ynU4)< .ޤ/;0噁O3̊O3afS3RS|ߴf ̚'9?@W5{sO?`,ɀZ pkxilUtHWf14nf_+L;fͲh50\i,&`%6c, $qC-ݲ4mgl8~H>u8b6WZ >˄- +\;Tnrݘ6hG䠘4M=fMHOȸge1&Ue5A}`[j8P3+MbEjUpdI) -̇YcjV6[$١*iv= 7,9j4I" լ@<"Ҽ0DIo| umD]Mؽj5eV(QHJf؄"2.@ <6Og*͊ *mS.$6v5 MP<$ȓzj6|RـSh ꦵ̍OĈvX.ՀT3,l@Yg6 ,? ilêZсpCޫMzz`in:mٖ!Q s 4+h͠h=ݠh6Ua1Gb%lsUM;3hN1x i(d%R""A㉱3ɪ?^Ɖ`T-@c +95y!rʘm.rIj+lȑ/RES1mB!;;HL#ɟfo4&l۾Eyc?O>=,&7H w2C.0Rd,J5 ]H#1̈́Y5 fɮ܊+n;ȭaZJ?K:j +seMV [l*7x-v`gq`FA,AUkֺHm17ٗ^èc(skqk@Lyi8σd[0A0Yp(;pdbJD̚u&禸C' #X[gdkfI7j> ȍ\!KL#RF' ];1"Hr3’%G^fBvpsV:J0Cҍ]gHyq<\%kA?X_]~& jWIɁ2'`fRRtm:RrLD-l-!ZU+EbsT &ztuK>6R璢#dQ৸x0ʻΓ])(kJLGna +}Iit&o=JϩrǠ] :g wO_#)~q6B{~ NU>~Ï_ܫ+tyy:M:q؄ >;_}EU#^}PGsoܫo}+Ez7Į`?W-/U>k?nQ`Y>e K1q$۟Ӧ:Ӧ?kK2j:<=w鶻ߖ>Olnpc@EX߯V>ꃸz[uHh)6)κ +R~<CPEFϴ nXՏʶ)sgȉzf<nT9N3^FVSxGV<=OOʨǰj8B0^>Igcl3RWbm/6i&Wҹ$N-'m71T]WCAD`,`z+21Ee^Wki#n.4*3Z4 oLTL>)Y$P1~H۴56Ek5~;^Ky8ǬZZQHt2LJ ݸT"i9#b4f"wR:dцD 3xqkmE;Y-~DU%]= Gs27Pts1#; H*+\>Gr?k﮳َd9cK(e6:y']Tc*$ qY_TC2N?&qg0oZ#fxq}F}.IlIY&vDpq ܟO/sE';=7npxJ"MЎW2N_I8!G3 (+p12&Lm1zfֿjE>t%r ppjJj;]@_Z 7J1&vzi@ +AKh<z61 B_md=$VIR!@BH4n{M`ŋ$BYD'cz Q^x<?[Ix<y(׋Nc:$3V My^QqhU + H1ogzQB\x1cmx'NedDc2&J< B=D?Ls2 jӐɏ72EPw("ag&+7d RdvlF:^<|_q +C&ߔxk ^D[9M:|XxTwm_['HI2t +l=WW}1+FǼq4+I"՝|%w2`>񵲚[hcƾV/b<=t8&=$}ΫR㪄?bnf~JĎ%yw@HF yT Q.E +z5CSqԌ1gՏhtT} u<$n&޾ YR$=%_3#iaEѣU9ZCv3ifVNb:΢Fp8>re,GE#Xtb.^[r*gH_0_`G; dO:0/;\ȑp 0>㋃7SSl< GzL)_0eU~zŔr׌$^  =Fj!JaJϬz"Sy* }v?kz}j_igpIR! |ȑxld6i4 +%-g23dٔ_MٴiF}1Õh9SulڼRَL; 2h!j6i p'rHYn˯|͚M9 u/NZ1ؕdܴrDۘG `.'y_ 繘iK03VV;)T*8?B5D_ͻHy̪1࢕@_f 7Iy(׋%_r=va]n]֦g_VCIhM\ƋvO[2ʔг/Ns"f$jGC 6)gFvW`Tf +p쮇4uu&WU`Z)c;*0pŴc,Gl4H޼˭gm׳M_]i3Ʊ3̮=iHcZeK63(.T ~LDJL>Ta=rYu0bSf(K G'ْ־YS<-}l:/pUMgmΆ \:`ZrKzNmV.Kg޴y#o?"˫ b3N~E9]ɭWxwG; g`kK2p]t*L.hAjdRй16ZhlJ/i֦NIzE'{] NVf +4]kXɥ̝@ڇy@~ ]rUTj_Do?B@بPvz}uӪ}4#W$8cPBeս*ƍ^o.t K[9w +! κP8@aľ>7߮he) As~ɳ#b?l\#}}Kͷ5=kpG x>c`o`cT{oXu@# ٙ̿]_~L|׫#XNoQn׋#8Y w) +/t > [F}<->8hBvZ/Lc:lK^0c5߁'^^i+ ,+:jFO:Nb=`m':DNt5m1l^YTN׫SoCQA}t:Y.VmzF>n: +g: Ř[)P1ՒA \m՝lumugg{lͯ<%'}x1/8_]>NäR)v Q;@egTz: +(0SYi5+ 0tU-2Q^:O^WkRʋ\xߤ JUI@u`aaAԬkӭ JJwr6;A3{7+ss=\s }@p+g1f3 ;y`p4^קid& ?8GՐM[2YW`~IG_$n>a}nX3M4 +fcCKZAJ^j@+a)$7 y~7p@5N(TmgG>ɍ%ќ tLcIӝ9A[f;+b>s&yGS?,C<ѹ~X ($j.~6P(1 OYǿkGŪ;\"H~KZ +Eߨ.g9^9vW9zS^U%9;L}0rz=6ZPb VH7S0t&2Wghp/ 9.YA/_%;5k(b~@R[2 Lée #2qܜR~h^`RA?\; ,*,'U/s93idx-~OD6Z-Њ4L,aF=h87ׯbմYINW9ѫExH"s?O礉fN KQLΓ;+ ᜛ ŁNXq ?$%7J-~T 8hɵ8BA,gΆ۔;b'_E@# +R0ۓլ'bAlw/x00U,5="U1Yw 1\t zF@" ֯9P١Hѓ!Hg:Q x!h@ ~8<a%%Lx% 2/b_O1v=nD F\d&G3`0 =㾇En J`:Dl@Ãe3.p9Lw|%z7)<^lO.CYvc\!D$VR*K䉰ABA,DX3NSd +aީg|n^qnbѣT"mc$񌒜U(Zǰ' + cNWnIB@Wk~e=J) hd:@~`gmV&uB# #I`.;M2jWIT>I_\ɂ7%\s-d@=] wpnU>L3sDq[8IMd {F8N` 8O?OBO0_7 ꄸ/E+tjlgp # ֚~'2q!XKHq(=@qcFKF%&@q +\l(%F3`10?zEn h=5xbX.;r+^j<='V1fyJSiҾsaIAW+2TgE/>Icv"'w jDĐ $V<] ♑;ՃJNs%*)5& 쇨S, v%ZH<1,]i> NA8Վd-:^P[݌N"@hR۫$q:]F>k|3^3pm|5iI pp~$5 5x2pBz3@I,;OKDQ(iW븈ڱ+b6 2ߥeq{YFRz(5BYQLzq3FY-S6>=pg0$E:FD +e{ȭ+nSN W~磕K\/H)WqMDi+Z8.^DGgPNRuy'QgpdNq?<Fw@@yU+3Q p;;QT#b%,Lz@(,નB"MO,zr(%M,X9F+H̛J5@7vj[c.X ĔM٩LQ.:dBQ5 +Y!>\=lrF>+\0[@z^msl5i"\-FJt3l&Ist6?\ Lwy3U]#Bhr@Dk8N }qGjDd񢘤L̀Ignr fFs3FD(\ +d/~;5蟓?$3O_gꭂB}I) CWbZ *6YIzHk] 6 Cz=ENIW }zGU%_.+ (bZUAeݷA>T.5TieBp$\5 L^-z\)R qx!;3z-$]D.V!sҪM(ruS?;^.S ~OWtdJtcs̴ر|6\Œ_@&c!+dp!8Id4 rHxSEv!ܐ* .[ly)) ^Ȋ@sQnhbυfϯwnR;wH8E5.3@VaL /IHU${B(ToeT2HzD!Igb BލJ||'=R"',bk ef:'" -;+],#2 q dQ6V mUh\W'̠7- ק_N_KJ[G4[ˏ{N¡U*6@eşrIq0-0Zza.:7H +%H0ʍR#aJM^ 78cp +`R*=zN(K-IbALp4ޯ{nk=&~)=ToZQu`F57ԬYsxSPdxYn P+iPmnQK*0T)̧{/r 'y/1_03T//|%M_I“'eAB6kGO`vȍSL50Wsg"5UWGL-C$YNg5:^ ti$ ͑!5b 99`$d'C>7ڇ>>%#{#P(!7W/xY9ZIlI# +Nߍ$u"E)% +O"0D"e 賖=>0ĻW)'JeKLRfL|.`]/f(PۡޛP A̡&6v< B;HA<Aҋt/;; E=oߊ|Y6oEcsYV\1ױ귗Կ+mߪ|(iڬikM^1;'ަ&0_M~ܥ`wU_߶6HoM(ք(:p*z Ʊ"O-}6ܟ-o^鹛Y5E +"X ?fM:οzq䶮^ٔa-øڪ5oE):mM/z5:버s3-D~{l<耯0׷mW$|~gt±75f.$2+[MCZ?Qe7F$ӋܐL`P{&JƘ/B>ŮA_ǚմT6|&'):@_ʆ?Wedղ?<&R>}SSD6H̤&Lߠ*?&-A_-g{) [͌Kii+T{7tZގwC5OR[iZ/FkUxWxN +6Y6 eby0l 0tf(;[ ei:f(޾\ ׁ0V3#vecWىY_v\nvqG%"6!H$FS +I6CO옆V G5x .5iwSܧSz>74Dk~i{@SU 7X47Q}cXڠo i}=7$5 viܟh$#-㨄:Uwm~͒m WGdό Wg@4Օ_TW2BNe;J:!gnㅞr1yoor2Y#EEkݎ5SݫUw<11'uI3rT\hrmnˍErz@.\[qxǤUdyqnŭ+_ru WMCbWo7?k- a5Wo}Qui\%u%*޽MrȰ{V5MPHLMQ۴]Xu>dm22z:/wmc;퀔 vCЗ[ VVm:nvs6!В_oqC0w\XLmH”WӆRBMnjXZmq6꫋LmS6q)Ꞿ6ۀՍCK]šuzmr{Z̹ _tewE +T@ix&8\=qs\ nߪjijHY(,Wu]nmpz$h~ !|Hɷ\QTҪCD^'x$hA}loAan|_pzM`_`h\lP35d!l|V kFUZx"SE|}JCYpkQ\_' +{ aCwibm*=E~1_7aQ7,wLJpؗKݤ\N?Mb<1N><头t#uC%A +N$G&$vVW,-{nQ q68hr68 $s\wvwĹ5kX#-Eés2K2S1>XSӚ +*wcs9|ٓ仱9PH=&q6aHdU\|Wi\J("w%4o.wc1,?}h6j&yw *lH堸ĻA,z@ra_/,'A@=u>/Q|#[zcyTy2jW1'p EGTJc&yx |=ʋH"|{vKܹw)Iī`Ѐ}ZɺI@*I} u$Nu$Ql~mךyُ4BqP +Xn2C(Iw%lU1kQ"ʏ6ɺ,F+Iw C:$=PTs;V{ -n2!9[XZ>e8NSrϕy-Obn_:VbRajL"q>'$+l>nptR 9E&J»Hʟ Hҫ_TD$ŀMG觹 {${O#8_Jy]e"_Iݫ_۲}̽U 0c74 Iݏuw?X5t= B&]9{oT=F cxb$|27]u%:]jjU2ʴm.9| fOw uIkץKrAӓ]rCOv7]? %g^ :wGeUlK~B,e˻-(1al_tUGO1ȦUCcp]#tvQOA؊pi{}NdEx/ӵ_d1ZR9l/r;L%'o8m "i%)o:A{An%]iO LYXv~s-_MRU +][ `3JY !i Rhq~]ͺcڥO!ΟJHj\~3J~xɵÒU+˭^'~կPK.v,TCy_br߽8.ӷ1b/ԱrWKt_h} `(&yHNc!Ps\}d^RgS^ۗr)t_yVw/#?$tsw{C-O}&W䟤M޽Oܦs! QgI.u vi(kG}PEi{ +"YcN5wCsr!Ҿ;а-Hyx_}TpDM;FAUy|~P55' TEK~xxU/L6tIS$V#a"%n&GO1ڢ?z=5|Rn=|?aOFq ;ʿX:E>ok{Կ[MIr>0D]RXwɯ_0_]9A2nux-o̹iT'tmBnzb4(hLTam܆j 6TOZLwriSe} ߮QMh/ +^_S>l3k2 療_@F@u}3ܗWuIzI}v5Xi`$>B_Xfƻ:B_^ۏ*>[&s$B5\7 { MTu.A`T喷 ]˕7Z)^66}[mqu.rc3R}y^ֺvɗO|).uzx/'{coE2o/xko@wGjb{KU95|σnaܨ{*{r"tBw(qE'; +"#it .. @d%ny QIrؑzAh(QzuǾ1].uO#ۨ+Wz2~/NE +LӃza<N>*O^'qJ,pr2\A_='bA"׾c_V]F!UkOw+1*B˃ҽw-'IzU3"tP[)@- bNsӾKʼ {*U +0 +6 GݽmB:>KlBDTooM@q; 4<ل}h6P]aSbi%MIUzƆ$`2Q&ĮxrK!tstj /韹{ŰMj Y(ӋdZ{sO-Y$5 +ŝ:q{ͧBt b ';M!: GD_H$ PfWU­ҐK3o {9D=/z|Qg<ސ|.lCq0U*ɯR`b)j.[ +CCm-PA)r\[;{qXWTvtP͇sZj |Q>s+U9Xݹ.*k6P}>e]} ~^f!dyz #@Q)%Pں8r,8n"ڐ̺Iq0$nI?jB.A*R]'Ơ͏&{hّ͙lêU"~0"n_ =iNݒRz,2po!؊f TQ'C4Ѥn +\]$*jbyt;MYUڡ xa T *_q$(*ޏRvR6TFʦ + F,|YWVvOX\02wmY |GmFVuk[(z"5*}HZi3jn,VT+20MZG`d]d0x(-!Y{8@ctT6}Ta,Qƴ+^IF^y{Q*^r's+.pl;:%#oT50P_G(is(Wj+U|u#k e@?e*)zU~܄rS~`%e9U,?@7y/"ÂIV\ +D7R@jDb]ejuW>6\i>Q 'c60e%o>*yDa_:OI[1ZD_|I[F l9ZLi +1Qٗ<}EyjdQff^Ή#:B3_Wۄ*>/x[p{+D_T+*rײ|l`O;L'H~ྃ1MBd 6@~PM#'i{[ e{)zMU'?RO+u{!Utfu3IAQ{^pC櫟@+Tjx |eVfȑI-Fg`I%wt 6.Y$wo+=$$BE_H\SǙQ[Cvr;ll7>@k!; Ѯޙ( <%n[xHisnqN߅U>OT*뱵}p,ru:flm^晱Kg,lkm¼~|~HFe^TmV$m&J4\Je5PE^]dەraqPUZx^@I;<ސ-wi%ZtlyjҮKԟ >RDE5~/\\Eo68~S%9e&M}ɭဲ|'P5=.5Aa_Dwx]\WkyHu}jOQG_sb-+]Жte}V~h|bo+E$zm tS3{|PÇpR/-(2?nB}~ŅTol>ZhO0T.@immvtF~5V.c3 %RwϳN8r9gJfwe).з6?ڶaXfEV{qu6/Cl}/5fCmͶ"X d-`oW͆ʘ WEp6\ˊpI jw|E6vx/1x/⽔Ďjd@Hɳ{^l^#0oK5(NjĐ=FΎrB:.Ջɷxi!zSfw9Ez-A+\0BX͎kbqSE:ً5]SwܲٽF/q^ڈ[pmf/mx.7_BMq͞(q:sj/9⚽G\99P7p +t>#n Zn\esj/=Py5{dtܳ6nJ/={€g/v={ρ* Df/ر f/V1u{h"s]3NćaB&O\sO*r7q^JD5Zp̩Eyqj`θS/iuzN'nK(U z*H9")MȹGt0q^rzzG4Ch+Qg9q^XUyL\`s.•zs))CӜQZPaązp+. oB=,V\aB V_…z]iPRB=n="_QGM>/V+k`V\(ˋ(mܹPkUxٕ_G-Q,ܠ%s zԄC8h6bsx.ܠB]^ + z y+=0nЋp]^֪;G]F]JF].vA_+T%s8Ve8VnwleĵQQs{^ zB#&sxqeܸA/ uy|Qg5o|WM"TӠe./R[v(W+/g|++(<(ryp^v\G}VmHA]a=ODw6aip-HƜY9/Eu$ߖGk3oZߖw5qenຼL\tKo˰b.M yԨ&ܐ̓7Q̓K$Q',s5/*r׃E%4et FO r5jwEփ["b=D/*rP=Pr! +°Tsܠ+V.HA!\1/~`=(&7JփҸ׃K\{=( Eвܢ'b4F!\îǯыz=|ޮ@{' VMzaNVyMUzXĽrUzv(`Up^X#yܤEo(+B{B8Ŗ*c[}܇'YUpYwH! +ࢴk/,*iM*^*\yC +Jȭx܏/..RҫxІQp(ú}U܏m -Q/ƼTb*nKVܐ*6U[shCEE]VE\XUqO^BVE\dcV=y[sQIoZZCrѪ(ߥYwI@z~=WEy:(7WJrh(/YE@6!ч2PSwE\Zp3^v3j1jKp3^ո'Z<J>p5y5\.XͫLޱ&O9a\Kq"HZ tqu5K݂97]MzXrX߄V>/Xm}^|ڎ5J۟tV;p]nz\tEwZq;nDꨏ.MwG\܌:n$(K5:"ޢ|&#:n#T{a:J":n(}(}sqpYEzg]\&:.]ݯ@^pqokNMM @՛ +~kr:)4/:5pi]\N W(3ekҺt?k: +QC;Pˢ5pm]9j b#fVk-ғktE~ \H1vJpH$ ҎTE}J8,D[]\YMGsIo1(&H Y{օ&OEvi͸3k.rsk-`kUvjZDžf[{"xbgDV=AOT2S1 X [S]aguvCd&Қ~l56% ~7 mUMLEoէL%o(Fg|t9  9̨?'ʘ<*,VDE9$#_<9 k*0;E#& ( +XLƞ|1 %}10/6I|g"{?;l __+cycy /8~ ϯ~KHIH}uwyb}ZIɿO?%VtFDπ~_B}ou~{~<zwJ_79]2oo{7;q89%9P$qX{ڛ$"^Y[$/㖿!+:f> m뗗>S[_P` Yx'̴8G(‹Wm!xxqNz:j=N-c8._{2ZPDZC3PA_PMmBZDZ=Wo-|6BƋs3%Zqw-x(8*嫘HVV7ъ(D;jmh33@gap}/dln~V&Ph9ptL]cr1Ng."4d)"nc'x!){:&QTRZ7|R)Vi$>$3>lh>!y´5[%^LWcQ̓~#0zug!@}2􆭎MC՘N&?կ/?d0*0N`24Og+D Lt7xl['N)g{ѣY`^LZs2@ei5"lDǝ"Sie% PP<уf1ʫL 﫼o)`)/YkuRԽ@@pc6O()VNRzm0q0=#ͺOHLU ddlAM&C>|t҅~zcFHGzg6[^eM{ H o-NŪ)YgHlGU}=jvWgzAꌴ!gSnwWxܾra=|ҧ]y^d|MRX) ]!m},ko00{M1":j̲(a(,C2Y$҃b +1_ifWY<%f:?hx*ȑ!w +RN|&  t+ȐA3 ǔAnC&U{ld 2WR=kDV"Z]UNW솑3x8)`|xUg_AbSgU!k³Fr>ھzlM@$<FK~oQ$v5?I?>-g5-;p>FyDy#N ˔U03P[C+/Ft`)yz6wq8=xJNO&f.`Dr Ӓ\w8 %~h_JϭJJ: ] ?# +]: sM^ 3|YgQhݸ}t=,f1lA'ݹu;wj1فg7|E yOop<T/f +I~o+2{<_lQ~+m2ϳiFΙ11c p&&w1@Ϥ p*ϟ [qM7!3UES3q<) YbIMw2STRv~>VkjZQex1)_d&i'ȓͲ6=,46>䧙r2oP +1;Tг$ &bN C+_wHP+(fGIO|Zg,CwU. 0/@0g6fN_3Cm,'X:zPz8׳rb"KWUy+_(`j%3?d:Ysm9+mJ9JsH/!/6RJE^E/HZ^Im iIǸq%{Gx"}+KFNڬW3221Hr*3F#q7#}3ZkzgVz}Hg'bzUoU1 5}Ik εYd4ߒn6U*\⺟ko ObS6xzi H;0'A|[EBF?xXk_=r&GUk-uuq쒉8ltSԀ1f GnըG{(&wp>iKDREIlA:oI &oxD!l|m g$͵(6Ȣ󁗎ɋLoxVhBV{Y(vDw&Φˍw{[@̓_@SʞD^[*0:f26R-+GX\Byv/{7MXZ3:_t6)YJtp07O= ǮJth\_ܲ)ճts?⮱׬ jjw +}fԽA&-[kЪWTt!`rF/,%q +|еrVgaNq{%S%?0q& ԛ-l JAh \:/!ˀ#L'@ǧP쑁2xzdYQc^d2o<&j$Jd2=TV`<?r6"]ZwlNM)ٸޜ%z_kmwP6"_l +m辠xzCU?V= j˼YwecppZNBit SnwT F|>@mE)$t{honT[ApLxtx qP[}{`{F+ R%YCc}mSQr\ zBj 2i(/Q?v{ZTZbBPbmדq TΥ .UxZAe`7DTy C~;ݬﺾJ +տCKOEg qx+: +1@YHFyR?ݢ;8. 21 zK$7 J:ОAKqQɢ>1':w@c[ jk!0Ƒ$36z+jOd\}&対-n &6 g=ڊA A +K.Jna+|`yX-귟` 9Sɮ4*+]|G}31nCJr{L ;W Ē-V_NÅDzwV^PFai#$LZup +F!% Ε88i=u[埚m ÕvIbA-\594.1lUjIgE^<1p?O֎ؒ:b=#|Q* Ʀ¡Ĺ'F4[F/abI2lAZ( P=b=.( lͫ%v3(>oFK,LGb_\"6PFo̭>y:qǶmsźª7Y ހ.;`+'8< z0ўq>v˿:H%.v>tpH[UnKӇ8v0 3NNT>aF\[>il -wӾƦ9 Qu0 q&= +ɣFEG[7CO-_3lN%n5X*8;ӸMz %RC}+.mC"APWF +&@D^W1IVQ[>hϸ:mС + CeVo2L h2ulQqAt%5/fai[ݣNJa޲[i=WԏX%9VCeS7X JR;z&@DR (1KǔKg͈Fα+AJ߭e#WcJ +1,Uu +f-хj3gq՞ZCj6PLPƹĹD9 NUqNxt_\o hQSȡ1,9a]6H\NˑzCDtNEˤOk1=i5<ߞ6ZO*qqmgZu8cP_Q? hz9^ O rmG疸B0< +^&08+87(|,cD_G`rSgȾkH7)dN4nCEtD_ +.αPY6 +B +U&"ЈnV|\Ԗtfm`\Q{Em0L(pz/jI6b~x_{ĺs4c/({IYy'vO<uIƕmD-DiWeWJj@dDc!" 4wO}(V/%lP V0) ZXw[b{.1:Y8B4vb rAFzD`O2V[*+sx}eBB6>f SV@^9.`!n_vث l l؊>| cCdz1p H{gjp:F@Z6sOm#+G7pcð43ZvAD%AݹW|S[)L4 #m +}TږA#ѿ: zR>WԏnR3> 4#g%(13qQZyTcF +[{1O `o*|l ֠Y$[eI~vt- #H\ͬ?'nv"|r*؜W5K_8BkpIMR2I d3ńA*L&u3%r;ӓ+3uT+(l*W[CI6aIiخ\b'tT:JVwRs_O*]vs&m3kAI*Ru 4 )Y +Xǔ^HCu$^6H+:HDjuSRP܏aXnFLwB5+Mj}9w +K'toښ9qͶ@-oGy|j{mF@8lVڼGWԏa܀t3b[Ǭ jtslu;ӉKGczҤFCioɓJ\-sA@h/n)Z}j1}Èjrl4M&g4tw3" +O+\bTq\.`u 掸Y4rAEXB-OX4e!> h%k8TAv:-ݍ ++q`vKNP\*MCn1bL]w3L&OvWd_cQb#+SWs#&q)^O$[6{*U}U(f8]O`90k $k#𫧅s݃ʿ +95TM5poܓf S1ƦW=dMEovJn!0ezp[JM^bVI[;X+1F-C؆Q`GyQ%P8cէ6CcsSBTzΝ[}^@m1 z2a>6:+fAh/nJVO1}Þ%n%^Nf qsDn0#¨0%J}A2RQ=ȧ! bv8M;](8RlvdrF_6rZ`=XPCi  vhX]DfI*L;dOW;jۋG{%N SDD|6_4B/ndE nKE%nsh3N*a mǜ }i+t8kIsOS#WY㼺a +1bLB5&h0y&K֘'J$Stva +BN@N ++d; +:d +B~ gfX0%XL_jT"D4/}N1%S>]2`W#uLA S@Hd +S}W3;ƭMo«R }A83۴/ e̹@GpOxj3_Qmbܾff.6 ++d;gjf="1m7-ѹlLSm1:;w:2/+J <' \7ҦW l>Jm @G_2>=~ 7:Fvoc(> k4GE۟)r& X _ǹes.60jldc Ss3`ǹI40[lYI bӢʭ/~D#*.4:rpV}VۇBYvѿFnEڹW glsNjp ERDO'( yYKS??kFV}U%qk%ai'YWnØnDIF{l do-vn;%_pn b[dnr(8ۆse+K +4^f}-1fDq| 1w ۿ{}Dne=C#z'B)u[Fnu4P"L֌k?FHO-Ⱥ֤.ZAIw x0rkШ}y;V}BwDS[ٝG@0cYra0AY[!P|T#~:^c\=[{Υf(;'K"QM3dz zfD/&{ 4B3JaBR=B1X/XN̜㎈RΜ0AଝD|Z_ q`T_T_r` F'JNv68}vGe +gU:]/bp`9#f=gV\;ͦ9 $j(sih AaZT\lQa4a_FgD+#53Y%Œ/#3xp|af +`;H?lͫ3XL<^8۪ϟ

q~Ca:Rɔv +C>32ށr0|E=ܔe:4èd:q/ 5=d:RXNux`&UbWs%ь0-Ho ( JH"0W"rFX +Um0U}؞|"]pU}Yqk:elo4\0u^7o: wԻpU|tg(44>*~jٹyQػ"ș"FȹR| `A~}+vyo pyQ VwRyFk* ZK u{+)oQ;s D-g>ͩih$pm= Yóc[M +6xB yRQS /i_cOJ&۱oҼju/j%}vfy1¤П$GCgkvn0Ƽ{v +\QגtwA-{ +=vo0W,$u݅ /\}&ֱ"&>D/_Y`T0# /y^~abwe>J*ILl0ђ +Pӌ3a5^ #S5$%OiY}·UIŋ6;%^(i0G Hw@ͦS%bZv5)5SV, #IH6( fC.QogL1OMk禞1gI +.s9>("~ f53d0J 43 >sE2g h3yN^:Vf>q >$%l_J@IDJ2?7 р,~3w94{ +Pyoo[j~a<ORA#E,,}d jӹ%`0ƨ GcOB?n4V*'&,yh}d}b@#UҀ",l!$)1kxGh==>>6/_hat޺x3 +Dj#̷96i5C]W]j>H;⺆9OjY X3%u Agַu3M7 6GjWH]Qowt;lWL ]j; G YQ4gN,b~FWϖ4F\,t3ݳ n9FsV7n%'IuE$-[|2L'ha̼.X96L^>Rlnwu;z %CUZgx38ʢ#,fx-`Oz\ԫV]F2 `}_3 wxëzcͤ'W5,2/mc?:BvZn%' .@kY/ވr x8gx 3gh0g|9n+đS@7hYxo=,p!,wwg fw2vK}L7Q\7zZ]=5msW 24f9/_左&g@XslW#xO-!d3c|gH3MFFuJJ] + է0O7~2`RDh)Dpg%/L +;%FlƏV=ZpjI[<.qy9$㋨PmAb%u] +s{4akshT fgήHvlxHWή0G/IEV=Gozco-I +[ nw{^=3nxi2xzЌG;ngʮ!qv^x2/ nŕgQa0 +߀Hߡ-Q84bhO#y/Ǩ0F*qPޭF2}11Fb"Fs#!I!HMcuyv1cTb@XLc?s`䳖ήaq2EI9]aᬥB ,%B̟ZK5äqV|)& ) ēz +)p|29UzCC%hG!GD>V7mǜI1":v&ט]9ʝWzW2p|2&ܥeڣy ݊ok2 WzR٧:4*̥xHBWWhñdQ''W^:;+캕G||r,z cM>2 +E_ _Zia *]cn{i;z^Ո=OVmzܛṴpXݮ|;#zC^ŽC"v$}wV=zgdt>zS3y% %:!tQa!θX+RE| +,NNy +[00Jpu<גӔn +\QN yYxiJ+ATC>(O O +x{YV'{;.^ȣ=5TK.6lQa;}'~;$G2d7HMEje۫Hm{(Q&R.&q2i§E\p#0Ey@5Ћ]+ws3L΅h\aY+Ԝ3uIigJ3擦z)՝EjgNzzHOhϒp9 "TtO"=Jkz3Y8>Ƨ'"a`Ա)r@ܷAIga`1 +Ica`nt-MB^HZ0XEy4aDŤ9ZҼ0z2 Gb'eSm,4exd4ged4%Q>zNԨwX7W7ypr+'My8^/e3VTIa$r(pě'tFr~mGGW|d>d.V7[+Tde+ˈH\> %|d(nWe1܇ID1[0^bP-:uy?kdkU1[gт[Zy{N󄟑-ՉӔ;t]v| f כ 0Oh0>8Mx3Գz2[t",T=j1/ ,F'}4Uskdc3UfWqjKG"7,_ vw\ P/W \U\Vjdzp|/DVp;7i(ĈwVOvy~z{e~~ ^)`8{upumksd3J!}S.KUxբW{ĻVs=Nxv_ݯvPuAxRyhT_[v_/뉼2/^Z.n~a֝HN+Uof%u9hP(}]ohݬG'P~#˩>tm2՟^8wVrs}mJKHoj R}1IfX7`BdŶ( cנ{43{#1^@$9:#sqs%7zNS[`j\N7}ń à K\eYwʙe-O[V_udz.&>͹Uܴq[8gN[c]!ZK?5%_HC/Tκ w!2';"6Rh=`H]ˤ\bfVW8䌦PH O_9Fጆ^J~/Das!D'5.%#fon}EA^Rߔ5xT4޵6e!V0<# nhv<-3vN`p882'W~[g/qpM{|׸/E~zה+6_? +}y-ek}՟^q?|\ǿ?_ +(x>iWuqG׈kI?> +stream +x+*4Tp + +endstream endobj 198 0 obj <>>> endobj 565 0 obj <>/Filter /FlateDecode /Length 4926 >> +stream +x]˯%Yx-'^L&O Y8#17+X7+u_J|4fr~b^ŧx += {wq\H+0^cX,ac6`yWRcW.JoV`'XP ]YL=j8,-q274)+)tPp1_}`c¥נ ~w(i {p*ֳٚkUfEKwR^.x0Q`򒩤|U˧IjE evT.k/E*e3jKX*G`~zқ\ w%MQ, K+8 4ZhXNUƫhc֡9.DPe +^ 9(U*n88p 0hkY^P$WԧP-4Ǔ8ĕŲB$5%O#E[bkؚ!s( ޛ-Hf52>~ &  ֋][]ab`S;ōSguD:ORkp咁V  8ũns}dI,"`CrP +NS7[p<\rVM +00ĖV(*V1.բҔZ-n̆à2_{7 +;ö_, fB%چ,<3fN 3xd x_. dMxe0ŕ8Fu{#:8#bɇ;0XBr Qx.!(4*?4Xuf\.NBOFs4 {vF&=fM8dQc5j {{#-.ΦEb9Q>POܫK>(2 b &m<%j +855oŦa~JC϶ؼxb?ʭ7N.йxcBbN S )MҜF73X&-V껒L/>a~%qa#\\?:ڃ'4$KF#%8;`JGߛ z@艿4BԀZb@Sr#[=5!o@==1 荩 ZԄrwOCG $0? cГh&2 eʐ8|eZQm2?SD : <+u(BAoPk#arVh> neHr;W0WI@Ə1~"RX'L>?'&}>'濊 =A|$/;,l Hz8V|wB".oM%pK VĈ:D( +% TNzH'.;:f,`~MsJp,>iS׀ey{C&CH^!Ścɝ +-=Ԗ/ީ'1&?SoR{ڕpS/ +HWXxrRVC]<ZʵZ!;JvŃ17ab)&z"UHd/a引 JF lHSW*6w]mGX!4nu-m;0Za#t~"b^~z?wN.pUM~w4tkm$*j ZsձzJ cD:kp(#H(34`TUc1DW TOH-8EYdQfUҙ!hWm&Eq,hXWF!B []鐮x- .󠴨lAV70"=sQAv:£m#' <) VmVtAlI~V4e +Qm(J1ڊrVRWj-1tDŽ"o9 +Wo'%]T%>qf! 2܊Y3~Ď+?k61I6O,Q1!lKd9 E]T@&HYN$=F_2D#LzOAR/p^4W3,R-IIۧ+p+y_`jV>fA{N 3a2sB$l]R +O,`6O;f5|0Q)@OiWJ+IV't@ܓj[V5 5ͦ&kfX01KSvM7ԋ5}t4L{-~y:hl~t΃юgG׮?ZCwntѵSJTy0ѓcFw ")vwR^+|s uӻcHb3ϼ fMdM3ǫ7Cb[fR>+)hgiTѯ 0U>fj_<'$?z<>C7E`HΠB/O0CQSrRU%3*7VZSU?b렼+޽+x$,-ns)/PH6Gc&cy(G>,zq霝-w;y]V-1C)E(!%)ݘ|,LS?u]C#W&"Eq/gjۢA,2CY|&4x^#@(enp/Kfɏ%잤8H2G9qnAj.'I;h2Nljj 'dkRjq( ljS_RH,,i<jdxyj+ Muff=`Qk/  +kg+&kF/|#x*1s҅_]}kt٧-NzWlor#+ոRQȍAnN=9swv*T5Ld +dBE*[UYỵy5wg;;4y@>[Ǹdr1 VTdk5'z6t羅V*Zf{;_9x>Qp>ȇV[A^`͗y9SuݑXmh>M365AOB1]1a \v6;`Y^h˨Њ0YZZ-O?X +endstream endobj 196 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Pp + +endstream endobj 194 0 obj <>>> endobj 566 0 obj <>/Filter /FlateDecode /Length 3722 >> +stream +x[ͫ]WO׫MhӒxLksk6Pj̓V/<HGH9q I"u ؙ BǕss}ٟk>~k훻 iIo?m:k[Moan}yiSm86|w1+٫*Kl^ovCDX圠U3#2seLJE2bt֣eek em볶ڇ7:ݭ:X05R7qL'{}^[m{3 +u*LDګTNm7X6q+!vMDoQD++ gr2iHGj7\{~T9O+_ w_tO+7u̸riY}g__cE9>E;L\НW6\k1^|4{[% V2]FQ!xq GCZ+@~܈c)<$79yJn%Lf$zaA ,dz{^0YhiRgt*$EG:褕MADI=p hñFg\aũr2_ vPnRp)2azT[0eHl%[O~O:;x,)(҂P2w* n{Cllpi60;pǁ-xLAY+ Yp(B  fP5 ح'ʄ18lMlD=7Jj @ +DKo&O+c:n坔o؊ȴ019) ]8$|~*<ޑE'3յ^gkzuqj!j(%/x;};Y-&@h6PxnA9!@&u:0\Gn~]5\Y;n,_nj;,j YohLk.I (<.Ӥd"xGy8)𹈞I`.qi~ZgzD]ӆa<fi0?oKw'36e谅t2Mg.'. +6XxId#i{@лQoU=K+x0!4%Dc1z( abpqE)G>@F9(g$6H,D=!zC.p0e)'t{Levpr hq+^ ./2#F +O]D6w:a+#*~ sP.q ^3NrzG*,FŔ@br|d> 1c5pw%v㧋Ռsb EO{KϬ+Fٞ\ yIA +6RC-vWB+@lj ȁl+EUʰx25K8H+g#90e*R!r`9eY(AR]JIHP١i[Gh߇7jS%!m% +A" <өAi,&z,L rLx|u7[EV?'nbnXUꦴ/ Ee\RI ih. 3,\BAB8+ +э?U:nG5Ytr>PI$=}}z F[oq5{02{4.Iϊ 4hl\$Ҽ>ZfV*d+JEVvVIi F*D|6}u1)8]C rƀrؤW9R 4Byb|l8*J?(l^ύ>̕pNP|};%J͠C{X1W~j|T,~Ԑ_Tq盥]ZcIǗ"s7LR7d~ t@i}"`tPMGP4"8WQ5ajCj@= +}$sƂ* + QYPp R;QFֆ$$Z4n)C ?Z$zͩ}uN'IMH =aYr( +c[1 +!ޡ)V'CU;F%-T+ !M?Z"9Վ'XWk!xC`ϤqTP +e CFDD[`T"mvvaEM+}QSC.jF""r#uZ#T[Z9\jOڀPܭSSJ95K ˟?Q" (uS&-qCPDeU︻KEVVjg}4?-!L9v}(NUHŨn(U[H~3\js8@7/cp?E١%Yi*b$A?ӦeD1)3\"ֹNeEFjz6T8ptwؼ aܢS\ԡo@pL^vIޒZgX +MŔJ(D| 9Թ䋁JURސo#\-!" +sd b7q}N.ύkkNBM,b\F0с}AGjj{e{_-P=rcvsd 7p@ OZ==rT5RƢʖCfHVgDX>'9JkCСj~ه8he'ܯ4 +6ڄPjGcێr)xdB|1+Me $v!5I1EKGj{bH@E a+5͖$qt ʚ! +{\r^mÏd- +8| h$e@8(wK@ϵH +endstream endobj 192 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*41Wp + +endstream endobj 190 0 obj <>>> endobj 567 0 obj <>/Filter /FlateDecode /Length 4098 >> +stream +xmW5iwMh>kdM}ӹ3M&Ӥ@ЖcЊQDĖV-! *-X?GJAXϹo=g潷yy睹3}={:ɳ&9 ~%ȓG'NOYkc'=ap3ml>>!<ϕNVNm>oIVQH|+ʲ̭ _^UY)kVBix_sഎh oK:zx<Ϭ}cK]d5- xӤ[mgK[6+Tz"5,L3i--!3 Φ6v։4|JJͶZmYԎV[eEb Dh=2y^mȢ!#ir_]fFaٹUOEy¯|&#шy7w^O+"x\\2{]^tQDyݹ}(DHeE[j ?LJ%X&E w܀:Y2YZKm`Jx +]Pf?@63\A׼yG'5p*Q%O)(CM)Gnزd$zڶ.@7QدvvRE_VƟwP$צŏ}"4ՓҠeeB6^K/e IqmzlVX( _׵c2E܌ߎFlQ]v|؍ Y*NᩙUf q+aq:d}ycm-&Dˆ gR L V-aeѯ Pi:!ӑ"EhۓM{4$= ؇Q]f~s5ݾ2_{WSY%li- +\ C +"~ͯ^{Dp~뾀|Ϸ5 +G~ON~ ^u< + +&,®]$|̼Kxw>G9βqZCU90qxǑ.ބ{Ǚt\s` -9-LW2wz`.\6Cc0gB{cئ%Cyo"u.uƋEv~lZ;"jL6s! q==&C/Dzb!qb?uMp1=ĴEJM4)OqAÚ,hmfh-H{X']x't{3|5@`pw q,-%̀XM|%"p_;̿wӏ36G `6 +=w;dx ԯ,cc7ՀUێdvkKfa#z ֹSeƴLO#(]қf<^Z z_+Kfiy9A7B4en _V eAR K571ZS]օr{Dzwf;VPcWo!V02 +Y\ LHՇ Z=e54;S&R,j/Ԗ `ߩ$y_x&c8Oo IcO̎J  `>]N}3Ks&a8YIo]ot==́aI7~6@+rmlOm$p$\ ,t)P6*'Oj(tڈ:3cM揢߱^O.T,B*_褵hNeȂr-_5|w)w *\ \l.J4,$y;;!0RNmUtrr(M?ߠ D:s g[)q-l #~z RDTKP(?N\ ci&Q'l{'k&7XK7 7Fr/1,46bm䈒r_mH r1LJkV:3WP} +p} wu2ctf(k?CX"#Zxuj ˖fl*;vd19$̕&CFj əOGWC?e:l?M;({G p~%]$n_WGYj  EG2oF^K85@a8 `%*Utb^Ӏ#,UƹwrӞm(BRK:#XFIzQpD L> a +6H}lz}c~ +W%[U  ٹFUӫ$I/!2Ę4` YVw`#@=gmu?K>8 gpsE[.WBz6xtnC0M)sW zbjl /lm0 ,}($s ρ/2js%WWGTG0^H0*Ifsl]rrS+܍oWQ:t,ً9 ީ51.NXt 蠪;$>o8nb R :>n ~Dgt +endstream endobj 568 0 obj <> endobj 188 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*41Sp + +endstream endobj 186 0 obj <>>> endobj 569 0 obj <>/Filter /FlateDecode /Length 6337 >> +stream +x\{Uř+S.ܙA=w}ppG YF !@)5@x(b}vܖ~.)e\23b}vRjM +~v骔] 8vP;k3óKק,-t-QlE +Nf.c66l(|"Y(X˭ʙ9k%~kM50%YiWJ眂 -]\^\ªX#Aۚ˳2kvΦyjryZpa[٠+JT[.80\)x>Q!RSt̜KH8AC~+.\۵6_jA!c*riMNܥ3~MWu:=jҶa)'C^[C?I,M-Iempd8dWV]FQf=`s鎘FF\FVV`LD`>.<9Y+ޔ nJQma0,9x8D@")KB0IBIV +fks(O豙Y<+ccz 3+^QoJ9kPc8eL><)%tXe*<)zbc;ćj8 lHNED\Ty0o\:jg5)XsZMJ܂7bwyդ0!Im_ryȰ.'0^L+tl10;1z]865>#z+:=)]Wk r6Q2G@c躺[d׺~F^aO5^^颦u +|bSga8!\$N`[uŏc;45y{:3\>ũ(%JE؂8R .ėK0TeؗE!2NƔx1,݋\x yjXT.>+.]\sVvScj/ —%_t`6>d-}\.˴LԻL*`0H/䎤ftO: S@6Z^n] 9 +I7{e,if~Z.O d;y 4er|Jó PT><ørx0=I~|֙40fђXJq t>:98T`;@Rk Q*oQ*VV$z-0{6 Nl"+oxɶ\)P%8<6JSc4-Ӊ\F#ܪC; +ԉvMOPx3yWk~dlTKQf%12S&1ku%2gl klʃ!<]V{\hf4=s[i'48PcajF ubli%b@#nPD@,, xQ"?g4%\PT76sfyl_I{qq+\ufH6ңd2V\?ZKTr|JJ!EFg&ћIt'amND]75*JlRIvB +h$X!@U爢sขSa@%adLjgYU*iLX"!l/ vx&Zc Pz :Y9Sj񠺫)Rď +M\G4T(T@îIDUJ['k#T!~G鍁XJUL>:F2cHpz=ծe3'#4=LAQ7}ZR|M<0 C6:9T'ۊj=EFqEP\Hn0WQtNUrSzb bL\bcn,Gi>:(|V[Mws|. ++ c[RKgt:)B6ҧ-\5D[H&M G4%׬Wf`p룚ڱGMqG's +PPԿ{w``яjcyr<^"9|[ûCC\OǃN+,xǫ!V^=dnT;@q=@5VKY<‰ 2OA F.腣&SץVLŜ}8?׵8Q +h\WǼc({ƈgtG3zFʲ7 hvڄ݇QP*cZ>̂QM\-b~)ruAȂhGYA]Qz2DeT&Ȩ̄=%*ELQ2G10+C~w/̕W*e]^v._(Qz\ULJT.^9uø?hp]2\gTt3[1#VYVV7z 3XQ03[yfJ(c> R 2mNcls`[[dCd5٣f[$Rr--H 1l{4ƶ0f+Nclsa۾v13?~\KaK(a'U$ [!Z1RH]5{tUE2l=*+Zv *&G-UK !A+QI>1ZvM=c[ls1ɀ0hm`;S?Q SϮ؂z-+*#`4f6캨MExS(nAxͿ<׃M`1>+8>\8հl/L5,^FTbN54/STâbqd[mTC 뾸~h3~jqso>/ϝ.y:Y_{Ⱦ>ۭ-UGpCT<ޚ{;S<1zd̓O}]kΗf@"t5=rdovM.{_*vٗNVB=]Ϭ6o,&x/[_z3TQ4lZj=g!kw.Se[*ɧwM/Z[/%kv ,޳ٓ+'z v4ק3?]qŝx{δ/zfN= :r}C]Vב5{:LҒw=\=o6){KϚ[w_=Ov]GWV&?RbDSeqox0F DTjM^:xM.GHifU}?~cBhOiUbq oT9nfF[֬1}p͉S]Ʀ'ok^^CWșSNM;󚖪ǷվGtZA\Gt$JҎBD꿵ML+Y_lRߗ]NϼHϚ0r}^Ÿ'ZOL]mG[Ou=sӞ۽ɮJ7ux[_)ES@5*~T>ԎLEW]{'NJtվi}ئ_0J"i{jt7z՗׃O]ٵ[?>!#/$'D8$0~H +c ZxW!܋I GUz6}mgiƖJ9swjcd'Iv>\snrDzde򪉇ZZ֦ѥ?:ؑ7{6wX[Nnߖ( EZo3әh2Ǧ+n^p4{D=lW&e=Lrw'kckiRuWoAߴRs{scq=2Nm%([a:\ϭ{~SZr϶掦mbGvBfj_[ioް\<6eqOIم&fv㽧k$k>y`}=L>&ѾWzdW2B8qf +N7hۯix?ԃ92̌hv>{"d'~ۇk0PH{4X^G0>?}/Zߛɫ֏k5vϟ 6j4YA^8yk0`<.fwxqo.Pdz**Xq.RBĠj"jxAK9ep &5Val<eyp+W3{a^sS`& aE&+!)ErU7a-#ac +Ip^b"a0|gȦBfo- &!` w2ɘGhzkNE#Xy A%/tS=33đQ* \~CK"@𥇑?rHx(9 1;? N +endstream endobj 572 0 obj <> endobj 575 0 obj <>/Filter /FlateDecode /Height 50 /Subtype /Image /Width 50 /Length 74 >> +stream +x1 04䂣Q9_ׁ]-QKD-QKD-QKD-QKD-QKD-QK 3 +endstream endobj 574 0 obj <>/Filter /FlateDecode /Height 50 /Subtype /Image /Width 52 /Length 74 >> +stream +x1 04v䁣Q9ׁM9UNST9UNST9UNST9UNST9UNST9UNS,3 +endstream endobj 573 0 obj <>/Filter /FlateDecode /Height 50 /Subtype /Image /Width 47 /Length 70 >> +stream +xΡ 0hyXXkcm6Xkcm6Xkcm6.3 +endstream endobj 571 0 obj <> endobj 579 0 obj <>>>/TilingType 1 /Type /Pattern /XStep 47 /YStep 50 /Length 68 >> +stream +x330S0A#9 00366R0E + +y\P cj],c 20Wp +B +endstream endobj 578 0 obj <>>>/TilingType 1 /Type /Pattern /XStep 50 /YStep 50 /Length 63 >> +stream +x330S0A#9 İ06366E + +y\Pcj]ddi$ +endstream endobj 577 0 obj <>>>/TilingType 1 /Type /Pattern /XStep 52 /YStep 50 /Length 74 >> +stream +x330S0A#9 İ03333Q06366R(JUW*JUBdA,AF +.\@φ +endstream endobj 576 0 obj <>>>/TilingType 1 /Type /Pattern /XStep 47 /YStep 50 /Length 68 >> +stream +x330S0A#9 00366R0E + +y\P cj],c 20Wp +B +endstream endobj 570 0 obj <> endobj 580 0 obj [/Pattern ] endobj 184 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*41Up + +endstream endobj 182 0 obj <>>> endobj 581 0 obj <>/Filter /FlateDecode /Length 6383 >> +stream +x|=yҪ:[y]|{yK'wv;?qwX ;3Xi蝷wMt/a.NZ==q>6 stM ;&S;/qZJ)V:LwZVC4^{bG[f(q:+mwpZߪO5Q/?po=^^oW?ɰg a#Եѫ#$X*d.?y"XC&aԣ+SO1ݩ)Tc=1Oi=vwF&#cN1~}|9vLz唭C'M/{;[B&mqgiO\]^HWѩ."#(/Ō{9>S(T\C`#1Tƃu +Qb{ +\}{(>;Z#U|%"EMsF&N`_A!|߰VTx0Zx dE ! +G)F7xEŷV݄C-`@WO%.6uȺt}Y)9le;Ev410 +W&u{P4zT% <6M8jSN5 a3Zpt :@eNt!/q[yuhV8 "WU=mK0x[jp"66^   4Xu qg= kp;@"bĄQ-ل2 +q)`V 62ˉ'Ag@Bu) D 0*Gh D>'$]?ί\=PϹw)!x[uWn1SY =Z ! ;nz:G?6?M` +Flb^a!Lo U +Dӿ/[yușwW![@Ȱ]nGEptpGSOGSЦ%ob20?2B -d(C㍦DCUezݛzw(ʡk's"vR(S(02ܺ7`ZqfaBWOٱ?DԻCDAT߹=(ܱK@H0`,8BZD$B/aIMi >J Llr+N3)}ۭ}fS񊉆JRFf.1CeH vɋ c_^%;Koʅ3|bxU20?=TQ +WtRO}=ʇv}-""2i0Ed\u#X30ɠ>-CbS7+=zgIP!Eo1ha~Wsk*%5' /f6xpx&phMv~sf <ɧHz`v-S>oWmϷH~m=xj+)^0/wGٳʀ +`KY$hxpDz0;'xMG9㺏Qu8۝ +)F㝉 ~ ʚ%֋M0U3|UWGh֊"FޘpCv2fE<2R`m0t6_8~d ) +P+?W|2ڟ|B(*c_j:aZӭZy燭.x)cP Q߷ݫ"@_}_|oܣA~v6v`Jy`wؗADB@^ kAϗvmeuuK;ci~\)8þz Dv5 Ve;Mm@818BOw`tܡ5Rxm7>pHPүl깊K{Aڔ(ZSZ0 Sj/Rj']p S5BjvZ[K~[oVn:ueo`n/ H|a/*}gS53Qq12ƊguU*jf4+NZUڭIƌ[o$lZxAq:W98-=[,m}+|-K9L$8'<$g1rM߆*.cBs,Ba<;-؁-;O`C,ڟ{T`◮2VDNj ,q U,eيJQf1oPQ, T"\ /1cGnaTYb;V$Ø}&dN -ӆ,;s͢J;U3iV-XN>aL>yP=.T:EKNǴPTVn@#ZuxUJ@g V|[#82'׶`1Q&fԝzB'clj1L nj Xnъ16`A)Qj&1Kso1fɘ j ջ<#,>UfJTM~[%i\[#8, +52S5@FF況"; T`jfh6V Ø=u`jḑb`΢J3TЬjf0fAvx+/.ڪؼPK$=TsjUKiI.ˡB[t(uօܦI RpW3)Gl{6vgokI%lvhzL3A xo4j5^A0CShʹFbg7%Ր5)?U :xyJT9Cl*\T0CXQfq!S9t F1$"=L,Xx(yBˠ1Kt4#,X|ZO 8V,mdmAy98iպ5X,N41tC1`,v}a┫ Ɔ&2@5.N `8JaT͂A +ЊMhGpYƭzS?qq:7'@3bQ L'rkNG &SMhQMl0'#b@뎀yEl7"ʮ0 <0%i oNɉ9:Wo: ,\K4`qJyfъiGpYm|{+ncn>/ͯ/f=7Ѧ4ĠR)̓3ܜBNG_Fb #n΂ W6Kt̕kj!PuU7\U9-JJ(B+:v+}G`1#'5T-Ab`38AfRN @U3;V$;,dkO9[8ةph +h/J7aGrME +vfҬ ZZv+}X' jB6~m6'WsVK92iA + @ +և"@GV#f oۊX[C8,cBɃ:h8ةmlkؖ2kದjfh6V2Øȉ:8ةp$@c& lؑ*w*K-ey1InJu'BMإ}]3ؗG0{w}<{vxtA^1_//%Ba T}|OvA]>\u>=t{5t_`( ʄϩ Jz#_yUJ#9rWkBzDE{S9OE [Xd̯s(Wag1|~T߁*p@eQߘ+6iPco8^^;)GrGqepU_}tZQ^ h=@i^͓=t(jIKVH7}(HL }A8#'T-T :EAZ|r-,~nd׸k> q{uZb.0>'.ELVi%tẀ󠿴ƢTobXA9዇* Š`V+"utwb67<Ҿd8>*VܐKw,oT=_XаqX$5jn>?wIJв.m+_tiNHWET-tGEWKA(Qb;7̢ c|#안f(y%bQVu6?FAZC,"T|{\ f_J">Uz)m~5> &jk\3"sԷ#ƧʫC|@Vljj([gߟ 7MF "f#T*vg^Wvj,jȧ:"Frc 0sY/Л 7&=Z +(R+5>Jj[ +endstream endobj 180 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*41Qp + +endstream endobj 178 0 obj <>>> endobj 582 0 obj <>/Filter /FlateDecode /Length 4878 >> +stream +x<[]U=vfn*8N^?kVbJ$DmD"T"QR~TG +QHE!џD!*Uxg̽wδYh S +.ǯ>WFks>nPRƺ8HB-45co\Q#76&W*}¯DcN,>Z6g+`yJk  ]ʟN^n39NMuzV—9?zk}sfZ}h`lMU)\HjTL;/qJ)VژLuZ nC4^Gju_X!:pGmXoOJll}[jm_6?QKܻ?I# Yl[:\L/ !̰mɥs +o,vcxG/"XCh&scWF{+w`BT +c:8c{)l}'U XlmZk3擯")S# ca +HGC툈rٶ4kiYS`0@ J0SZm.n 8ɖĴ4!73ɱΎ19;Cs2ʂ;rhkZYAϡ[8DS*ChOค5?)HeeՑҠ b.~L7jQ0ҮX2bcy?yޡlBߧ2:3ey׺vU&-MQ.XmGVjGJ; 4'iH~!jaʴBj R$|$rhcI$FmZyF&&4:R~i>4gh7ʫ7h3ƼMcQ;pPpҫߥI_RQVFWZj?ԎHuJl~*rsst+igj#7=jGªlZ?xUj~Jv +ha,#sfisUϟ򉿧Aj?d)j?T.˰⋈dĨѵoV١ןiI苵Ovm6Psg[7&]X3l?wC*cP>^_ccH~L1żg +u"yd~6_ij +?c+CW-8~qB0HQ[)]vVb~AlM;0֙~԰Fo,ao o\ zJعao&TAGY#RpڳKj;%ñUf'.O)8G{p AʒĀN8t 5"a 6bY蝈 V~+1x1ڎw4,ܵW iyR*730AFmOyC1W"JR҃ Rɛ T?A)NDίT|TT>>quq}r8o;.݂X 9Z*}8?L:2T:&Eͅa-xVq=*Y ym 66+ r4,xJpDGK<͕0}buG6V;8 yz~|6pgBtdgK@ö#̝hݐc%!cRwG~6w,t!, }8Q:8Q'}{79xw;3٬mZ^#,;j{Bm:qWvzm" +?]ͻ4PMiWU_h^[ KLݑ3X&TU0@H5=JU'KU)S5M˓ RH4 +4M+fWPK{|ad[7Fj,}z_^iy*^1$ȧy]/xƱA걽uma/0ciZU+U/3)|ަJ$Uuh~*0 Wm0eB + LJ_£|qLKAY]YD/vRG5.$ڹ!`5e`hjj*W*\_u+ZKx8IX=dz3mҌ$,[&~)ڿ"{Î3hUoû'oÜ+PWqS=Fe~G 36)!N|* C턑WUuȥ_g@{gŐ{ +.~io  "AK'\~#s*{Z! `q +26hNm;KF$TF-R251qLk%*7[L +#Ca5IR +"Fbo,ށ|J7㥱6: h3㴀A!vcls +l)!ܚ׹ +K|m,$5i>[Ec >x`?iµBĚ q!<k ^O1~ +٠a=*XA*րfDׁ^A$!/F=`!?󁟴b/1u3RF$.~Jd"$?WS1( +bdd.)T;k0@yacL> +stream +x+*41Vp +~ +endstream endobj 174 0 obj <>>> endobj 583 0 obj <>/Filter /FlateDecode /Length 4751 >> +stream +x\o]u]i5FeIJr[]?qv5*GhECE͆iBHT4m [(PCBIIqϙ;},sf93gX̀_J\Z>e6xyhuh퀳Zi/-1&yz*SK3XZp:s{{όH4cXY{upVVA0/kkNy]_roKo,_,i.^n)^ϼb%Jnqr)_{+_cQW?: +˜9|i7B^ˁ@fnsE *jnj(ڀldC1T006X3= ko"{jm0c6yqU=I|C\ڊɡ퇺 +Ʃnl 4N}kPwc`g8Foɓ|.z`Z+ sg> 阾ZL(~#WlXRnԵ4={1c Y.7 ^2ٞc52sg>tAv]o4v]y_3u1A=})X'Usμ量4H/ƸZtƍ{f,7ɍru߫=]PYy?{l!Tpy IjATJx#փ:]b;%}BkDq˘0*ƁQ\qbR~f)Hx{K7m}&! !4**zJ)&YAeo,RОR;qoF·'ZzyҺc'~T%}3Ea<,yrHG"SSE?){V uFinDE`?7#m)'T/?.TF\io۬:SO:MыÆg +<>\r.xb!aՀ~-VX"uvz#媪'Ӗ+-yt>/# K'KZUc$}߬p;SCWk>@ )anrѕB$Ew]HAxXd=8j^܂X% k_*T}bp*èT{BB=LyF8!D 4I#8^)גw2{|[|`BҴxW9`,4ϛ%~yV%jJmSN]Kkz)}lz#sU·xJ}mϸqw} 32/Z)Mhkn5[9a㩞J)gX h\cl?Q'ʘM@Ic1R/;-u"fӜa>̦٧ꚋLq (!H~o])msKiSr8b.lk8͘au|+nUр*F- >v7Nז߃30"(x*iOx_c(+SlQ"$0X[dB$THLYHJ +B1fR6cpVHi˜{Im&!ItLR 6{5H1? b$fWkEwרj1,c¤+גVƹeW +lFpEMzk7ۍ7Qy@lPXX  -Z#jAzN')̣ Rfq @LJlI4s5hf9츑Nڧ pTتj4Տ+ BJoX:UC@&Sv8B>J/uN&6%+6 +;ؘaT4x@Ggy8rGI#2xG~[0Z]SN0ޒZZ’!HeZþ +(֠dVe͔QޥZuqHy,kZʜ:2X_#/ qltdű֐ N֬a"R$]&+-@8݁[ H΂wuJ`;J>hšG +]!l5gUß䮤&62wshid+ftx h)j|+,a*ž@`kŃZ{^ʨ1}=)3~S8!PlrPDP%I@63E˜ (Yy.UM5W [f徕:[/ZX䣝3<6Sm&O07>$o[趙jV@JNɷp-l>&ƍ1j;Kyos ,㧩 oY9a rJvڃxq 4. }ZGy\opKi|vH40]y8!-xT%(]VwG%f,J8՛ekY)fS^e%ߣ$>FMׂAK1ڐ|Դ-XG\ + EآnWL5|\sթKM)O+5uZhXHl_iR>p*(<2 +&L?TڬY}k n}N + C7So>> +stream +x+*41Rp +w +endstream endobj 170 0 obj <>>> endobj 584 0 obj <>/Filter /FlateDecode /Length 1928 >> +stream +xY͏UمVen`ABFl"  "kxēW  ( /pd<t՛y p_U•їm޹4/\ɞ[fJ^1&yv-/ɬ2+zLT˜a+̈:J]M:ҹ &J貙g KF:?t|滂󫧧.\imv4N +42SZ#MxѕJ*-;gO2{ _5쩢Ko|j:s€^L|m9?]sKչ|F⃟;_pT7#9YpXq! `?3^ֹt$(Ȝ+aoG`m ղRMs1Bi_oYiE ퟅ BDyv2%tVo\Y]9 Ü?q(/~rx^] ~X8\/* zxArD0\:/OJ =ѯQ6 u @j3'@u Tq)m]z#{AzW( u0V/˧qggehƻR($9Hq-܁07w !w3@r ru[qq?8~+y<~"< P#/Zu(]?x%Uȵt + +245OiyuC0YXrGΚGɥ|\88>O&X#RlB֪ Rt H<9coMB6-\~Mܑv|\hYBFO^?J8=ģ +, -m\̜'P=啹ȯ 6Mc/z㖬;]G*z|]BMq)C|\43^Vw042hLH@9f#\^{hA/+6RQFucCC٬ DhF.c+XvQtL<@uuo@cuBu_d:E0~M/% =.pՄLMX)M|rĪ >RGS'S(RՐfU= V"PLZ$PI; *M*%`YF9tP]'q(UUnECp"r9#Dp4rK{I+Rud<׊ޘCd]7Rq|znW{ l| xTAe*iY+cYQ ki.5VIS=Z +",* #eѯpX4+-@W(>JfU{/2Tq& =:?X_&?\-:ZXE 1靖31tf$ZH!^B" r$ +HahU8Y~}7{XbhUa{Wk$ͤCwRG߃B/V6΅? uyGFzPX,z۶Py>%EjlEpYA//\tئ~£s^jLźC_>i\ =[S9c +tá=jB)lE'w-!*N@#W}夗u=Q+ +o$͓?(tY +endstream endobj 168 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*41Tp +p +endstream endobj 166 0 obj <>>> endobj 585 0 obj <>/Filter /FlateDecode /Length 6013 >> +stream +x]MeU6Ҷ{09‰dYBGrĴD F(deXeXy,!EB" ,,v6E$$Ă 9uoUSE׻~uTխyo/ymŻ{ymx |Z\־^+^/xkK}||`&b4S딒"_a'iKzv߀2Ne[+ Ϯ:rƻ߹M\{Qc+z喏'Vf~Ȯc`yՑZ۠Kʄ8> Z%t//jVGibZ/p8>,Zyl2zV1[nJdï[^Qm}._/YˇƅG2̝ ^tkLjI56$ZgMJH>|^D96ڤV؇Jk^{}x)BSZmc&ӻxjzl+opgjGRSpo8g568FM|XK)˯u~M9;j;  MG v []m3k82̺n^bWWFv>iѢƕ᳼\'ʡZMg7';'"N<#\c @tσTبڮ $ĨLC.j/3jWGk_ר c#.~Kj,~Ck#)Bk?f,uwʑ'h?6 o-h]|WVX.ni'̠5Uxq)QwŤ5 WW}MCH!$CfoJ_wV>z?mןkxLbϜ3rVo^4ŌZא}{i뽯7Zv}}ʘΌ'剺VF[>y>Y9^jxj24HVB3B{zfgWG\[acĜܘhg<Nkyel&K].0*?ZI+K,ɸ}#fCΆ<.?)B)YG~Ž޸qi[^<[e Ck:0D8]$'~chbB[ZV{mLDFDu~0ÀG8|h0ns@~lK_Z ϶25?l;qn(X .4 - ȘX%{ﴖPtQ]G_f]RVՑ6.OJ&Ǝ'ڼgѤ(Wtk-*oc7O)eOszr6M :W؝7RKu_18,ƿS;(/ʖB(J]hp&J6?ƇWZ0{ZdQ m6ǭ|hQo}1;_U*EH5ػ߰n^"s]n +ZF`͐>l󞕯ㅠ\eRk)Wͷ]h$ԭ1P508C 6CAjd ; _لV>bICD ^EO<>BO0Ҿ(b Vt{Lƌ}lV%v}ͲlM4"r_^"5 979R5Fh OXK=x08-jx*v|_=WM^2W] [ǎW5uxy?Ċ3:v3lPRfE}#gҡΆ#Jw. QO@oI]M5dBnacYx,KEmYN³erO,<׃-rvgc!|anKCo:J_qhͦCk6;m +{!)iw|6oN>6 +avR3=#g0{9>UhΗ+1nu#eUQm`:ʁ]ؚVF6"6m6;A۱F.$3:|/ńJ|`m;{k]ªsMF݉B-nHoi9 y/-',*+zkjaLJP[5˜lëTn+(\+.4%V1>׺/u^a/qm'] ;/wr%!uxp'WLc }IB7V{J9\k#h\y+-VI<7:x:|׶Ç$*v`^#cR}񶳼U!ݏ8wC#? :@ tC#:A@u<:Ј j--3h0.e# FᧉG[!Xh5} M7RMM?懱i(e/bEM7O<+ZKIG9 y] m SwMl.TkB"n;e]hmx( 6<؂7b'/uxީtx]F$+xk%s37vr+t^kCxŬ$T9vx8b |I vxއo{o;ڙJmdWh%&?o?Y:ՄV-,jlqA7we~t >iCMJaMvY$F16*nC}?[F\PnH-BLIm/Tk+ y,35VYUG Laާ'znLec$wrylvWk;u r-Aux޻ox^'5<xk$:x;|]Zu<8W⼛Cr];;a\*!tx+λɭ_qL.Ww⼙\8&ׂy7+Λrfr⼛< +yOCaeGLh63-3٢WJr3S? %4s|UaC foӞԦhvoFMZGN =Zx]fOjtAC^9ېK%zmTjpn{ᣮxkԪ\Y8ޥBn;Kcw txB+Aw2<ɽW Or:וY޿=Nr;|]V[8,V'y'9[F$A,10{Nb??;<AVow#c+óh?O+Óv%٣ۺ2TË/$QήW 9&\ll|b@۴kV't`Qy=!ִo{fKR,möQ~3a?'z Spmr7N4UolNB}V5sfU'h^ڛWIebic|EVĹP6ڮ~>䬶ϩ50ODҮ.Ӈ'a5'P'Xz9ɓ䥼r><5JM^&9yj)>-&]mh^ILYٚ gNߦЌg+s@XMxzBs= mq(0>|q[SSP%\ +%+Az4DYQA4 leyDYԨ:""}n;ԁSN! B80 7x0=;M^KO 0ſIӾ)mͤ7yw'v&O33m3vv `֝:˃ \o=G1G!vK@C6l +  7A[k3'Mgƴ<:sMǾ[y;bf_'_J;j_L_//lӇ8aQ +POR(Xf +(ƙ< Y?jב :\&|=TZB[')cK4}sܕ.Qgiqi5&y,kgW)vj9kZ*E3n7߿A92Gs0٧Wftl7t<2I|Ը|wь'Q4З+_/b?>fgo|#SOI=_c++k_jzRw'(O*#yq$?]y#[,}NqlXu{5*1}~2!2+^oY/%oaa|re6=;{'Fߛp +endstream endobj 164 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*41Pp +i +endstream endobj 162 0 obj <>>> endobj 586 0 obj <>/Filter /FlateDecode /Length 26460 >> +stream +x˯Kzԁn_v8 n_ݐ_D/2F>GrҢGfnc$ RFH``d!,1BbUWk}nq}UszwC _/vUW{}kSt+p_jwU!ȵb>~z:~ɛ`7Kl9ghIۍr_v|W}Qo3ޏqW,t_ +6Jw__|gj򟼉}8|}&!}}suh2|ٟ_7o}-e׿62zw_ +)|3|?繮Xc}l,?ϿZJ_շ^.ܖߵYw9S>1c Oy[c_'R^_| ~*3z.yハkî1w["5Zlw/.)/E.*qd.),31y-WoMw+q'Ull(y7=mze nz϶e8+-Awp#2BO[^hp-P7]iyeNĢ^Q9{XvMwEI.^(5](1%J*$-{["p%$ѥDt> |DcSK"!?/.RDՖG* 6uV^ϐ9B;S/=aw8ӥӅ4vP^*]4jlSEemwߤ4̺۟W0w`&X쭩 Oڌ]1cv2]1 +t͠ZRJf4Z L#uZuF(bu׾D|| d%h K`0.hPu Iiby G6؞3>ң9pPl%dHT#.fQDah9Z 9bdYh@UfŴGb;fv=[YiЪ\VM_5i]g0 9&X4 8)2XJ`Ʋhe(~T e +bM +Z 9#@zaÛ*Ԋebu-zB,[8PaZґ~V6$t5s$w s$,S_8lk2XzQ,># N*> +<>*,Ýtz,ށ d؁H5(&8֤L}mS&:ő|Ze$` Z+ +p>-r>t4uy""!G)q"b 6Cn|aG! U_H/!Hbe& p<M A9бvw@vꏢ*SVge*#Ps{ k7#9 |9A Bӆ`1YT]`w/UZ/')-ЭϽJEѭ+Fj [L;x2(Ĩ\O vR4ݗ $ؠc2-\ +PFCFq`ou+AA +PA@C)c|? 1cxa[-Y<ї +p1CYNѶIűxy6aQéIP)m#~5:B})(HmS=JPQ QlbBI ƈ/,_1b:3wGM>EeF\֙,a+Hrٗĉ1 E[b||Gw h~Rգz|ء&7V<32-VJ*PAQ˩** w_ֳљ|˫2}$.*1U%"5SɎ4LbnJ "Jm%TyT*ף/vtV X ϭlb<4aP3՗*6S8 S2n0)Rk*:+qqg3(x6 n7(Kvr{_Sd'{[tj ʜ޵#RxYv +*f +%/,* 2 v/8TU"S-D&3tV&~dpJKn:MRYZH1h=|G4wRu\2: CSXFR +*֘DrF8'%߁d1G{Kcqqt]4S7Ly·r]m FVt$"x8 -E#{KTtNƮ)AkE)rhZwe ˚c%jS\V[Qk{L P $'4h抠\*bv0Xau6Qs:|=)| $Q@7cKͼQaVK(c`Y>6YJ,Vu@l4)}>|ЊޫGj3wBw<tSʩV&lkZG;T F2bTL,[zuZi'ZV8l,vsF: 'X%tz+r 1a@2E$F_  y4:/eIkԯi a^.^UDF7J@fE:93&SVe8L8Q'nE:#רٷpB{eRmVݣ)bBEkWN<*%PNQʺop^(k A y>V|fG5WO@FeЁ^,XvM0=#'Tb7sOʶZE?^Z M8M#Ӄ"ňdP׃)pC?Z|Fvl ^=p`Xp b)">|X횫!f~oz\[٣7I@cRuT=P\O2Dl3.JYE@ѣ%lǪDu8ND/jNDI r&J$gH@fK9kZ\,g2UN|Y.UI}4RB-K wL)}Ӕ!4! Ems#W٦fOpHR@a~4gJQ d>):B:Z;dT1:6~R{?Z?]>V. 2A`{XK0~tlwߠ=:Ec;` +MJ@*s O(Rrq U;`ؽ3` Co{&JU Pj̭\̺.49;0||ov&Yan*=Roʕ/1UjYJ Bb(Q$0f&e,;@h^!X4( +F{3w"ֻ=xPY通f1Lgoa& F>#P >lPC5QY>EB3xتe̍xPai v-cQ d身ɠVVU<)2l>>e8WhTP(a"5c:0%3K:ۀ-ec8 pQ1>2eMCe (QMc8IgHr0QWP331K(ol*0$z3pHf>0X#cOq"8-FM&ge4:~]gҩ-*+Xc te U\6 UMJcP]{6s\LeέbYa0E A>F>\ט 3421;(v VV *mnrA22K)aB8 <^K~f'1a]f#3|G2' Aa5'_-C$dX|.A2g8|@v|=|"@+#T1HTI*JQkHlMb01pR ͠QXuN(%$wn`ƛ +؀-(p* øG +9C 3,pjRBYRzז֣L!7<RU9L֧&PxQ`f0mSS P9H@~BOHsxf@d^V, V]+@v"p3En5R,8-LVv,wfsjTe[>d%HdN03/(P2SUQ蛨 @5()!$ElU \A2JFWbF!@dfS-+T.3Xq\ e6jzv= |&:b>Wkʩ7WXOdN`$:s{-K(pZdnQ1ሣ"2oznEy-)C78l QUw*3QŅ" +@L "C(qӉnʻ5qEͭHG].j[D=m?:^9(j~^&'CB-6< +Uz25(yL`~"ƳU]!E rذlcȣY@ff SH%(sZ6\-: @~l)M[1Y +1uiDM#g4X ydN3`zy52mAK;K(J2^[ +a!s%%~ɵAaPf)?S ((=1M[Dfwت=}*"aluh♶e-y  _ vPkS4mTU#Uy#D8Yñ32 mi)I9XLzB[3|EQl(:URCKQsA++Htj`RgXZ kvό ;Yē$8(dR(Fs%4G,S~grJh[j'A4YzhL&|#2&!u&D +fX#UT#ZzD(wEAJ%z؁]+d@0& +0a9?7ǒ-1 ,T&%vv|8`%A=`;EQUO֣(8ñh5#@o#\K7H eGR e 'ci ȱXrBB Y;-@GHA$3 +z +jsL2Q+UViʢy}Ła +9c(V*L9yNzb%cT!~ qq-"]0ʧpo!->e<8i=c94gXL7+/g5<"\b b[ /A?+vq.%lIv%pnB@EBz<ʻ%K:!(Nұ +%76OˊLuie f,;rjjt!2. +aScNJ}4xŋX^ \U!ڳ +:H!@ah/(\.|Q;4-RA{)%/ɭ{ᥘAtC-B-IGcxzb=LܓvLAՊ x Ȯ:+ޞ0cA1e 1)f,:Vd%SWF=[-NJzG1N +3PW<QdmIפР/ŕF35؊1x.횣N,~DP ,K,Nb3ʳ5%{2ޠGbFfUDUlxhJ2-~jZPAbHКk/D>+C:K>KJ>U]+PH{TmUSAXQ&hUA5)|00 +J$퐺&HA]ebAK /v-L5s tDs uNRP+@YVȁ'pSBԦtzoQ5I.i R[aVtux ,VrY&`#1W:@AMo v^k+0uyP NHtw9Wc}sxj^.5tt_cBQe:E 'E`S +1t h5Aq6AE`<2gf:YTv1]U>~d,W0{4@)0k섢vڔ@N1lbyPX4@)PV)C&4 +_-g^٧JLbv-'@LXE󯂾|̣yl-]ǤfM6M4G̿)ܛh_=U]c骊uūD~xlaf*S,CQ:Bçf| +b ccb*=dL<>TWGKv{R3I=$}C:}F ^2s}V n0cYd&0߻Y1cA1"bڀۍx,X^8ؓ-+ȩhnPN8{PrVc|00aW-$tI_7Q\~F01u(AA@MkGP9Q 3gDTP!TVŚPjse<[*kXXkeZtP z 8V +5S@'jd48=֘>Җ %DU$5W`L}RVcv4CR=Vte[̓b-x6H[dzi%xlnY`M'IFĮa{ +*Ĉ(XR z -\DT +GC(zE%-UWGH[rPPJq`R,.47 tH=V1 %huWJ-x hKJ.ZI˪{lb#|S 6@vJ]Ҽ .3}RVLyic"0W׆.Nk+ڱ oI.A tO\Bt+>:QN$tddvN 4*Lf0|Ժt-[oP,8}IH$K%ZKeFWЭbH!8)5 ˽zi61JAF/;C +bW?7"O֏kXj8E;$Q5\=[YCRlMy ̅"*l#vlC(UNסUk V'^ǯ(E zaΣEY2f.NQ3+QSb#UޟȎ'ͲF1Ǟ/8Pd+t"i,zi:!Kb'k[S(N i^$<˒l@AoT?H6!D=B:M!N rG$xKʌc/bNM6p`4-:%51@o1^(C:M%M (֗!04H .'vr,bn͘.~b_} 入ӤL>JB!@yK5V\2^;%=B:Ϳ&|D fY\XZU SfG]@[d^tj!fi,17drĮ2 0Xn%>Ϳf8l +qtBiZ&QI[N[Ui%|H=397V lz[BNlU TS! ĪRſ P?0%hc8!O֘KxBk:W r[?mp95EW#uM7gfrvB'cJrquT?=$ +fo/eGkq2L;<鎬I&/3jidrJͷF + +'Hɤq2 Rђ3Nrg:2Pǩg6e[z덯M~(@ѥM +(ob>ڧ},!1sE2PVCL1"AkT6da|ОG]@# uz)"$ +JP0rN=qgeLgTzeiSI@4wQ=be[um`oc +0*/a@ѥ +9R~e v9Hyc&|~Iu㍧u7m@o 01LJW]ylAkr3-AB du+*(^˻IW@(ʢEmkJ :'Ś7aXXO(*뤣Tu)nуy .o%rxFK]^c`hvgKZCMzᩞP/Ѳ^aM(|(Z2M?Cj V:zV8 x9 _՘ vBFQaTuͧ5$ZQbv'(kZbK[5>\.hFwI`M*}/d>a9T1aY/$!+uA"|Mʋ* U#M7 !49S4ujbNĄϹLʟL= g2 +Ljl⯸ɘ)yQ CQOaN~f.Iu8 XU/UFe܆DhF1 㛳g s5a |b'- 2΋OLS<}^@ (6&`1Ed\@G0" NW + tn*&& V ZM3zb_45MLH#ߜJ"I"dw-ߵӗ6c9!W# ʽX!޼;#̇|,y e[ "dPJ*@}nRgHF]|{Ro(9&~h-#NmҹU.@1MU I)h =z*܃_@Ѥ˩M +4XIa +iǩNbYh,<@~Bͭ҄T:XQ=VRXZVo3僁Pg$OJl +4Ri*]TJ*|~TeYnQb#*E/iTZn*j'6c%]1<2 JS)u=l@WGHr +KlhN|8)]%Q +0m*i^ #&|̣y,hAt]j@T +4XA*M%@mI3c:3x,S4N6Hr +K:'c9]1<234&8 +(/z v2s|;P@F>ԥehV 7 t9a#P*Kuy._Kbs谢|aDU!{#/d*G2Z/D;ݚVhj@<34C1qMڸK*a(UdHŵfrӫhhR Z!] [Օ?"- ͰU5GS@dAq +VK]%@5[M93yed\h +@bE1,&UUa8||q.G[pʍgmF#zoexm|ÇTdSP oNқaFx4 L*"/\+G?j8NXl :HE)!bǡt61P"R*ӞG)PU>)gIYFFuiP4gF{ÞУђRH"N}[ yE +}*DHM)˙Z<(@R +^}p)װ7RAy/s+RgHF]-_T}`}Doﴁ~]1Ͱh ԛ>LV2|}"]zO  \(l9)|h)X+ڇn;J])mb1OV!:E/M| GX{YMЪb[ C@#uu|:^R +"]W)(9vZ\3MhY3b_i^ +PVU;)|S6@vJ]R +్,$|6O+m(9`vm$MZݿ{+e=@^N8GHAjj@Re麪%(mfז=F p6n>DݿӦ汍Q:'Ł|SS~{@vw{,mWCϾv\\* OȞ" DhŽ1"hKy(jll1 +Tgf:@WXabc)PxQi+Q p6n%>ͿӦ5Ml51@o1D0jJ6O vP,zle㳐bf2|V*DUxt\+{NkU#3V#x,㑡ϭjt.5lz]ci +ص4Q\cR*a*<6׸tZ.@&&X[HF]jm@WGK> b +cz(z4t .y *Xlرώ}r6:2QPw\h>]Tx>(@لj:-2pGeTh]L<2fw\D}˰E"O*Vb0̂ ޔ3a LVl" S m:1ANg{9]G&  vŊe.B0CRI(6^\ץ=Ή{7 $$ ю#d;3:5/O' Mdn@?7$`C9դ/0}Q(s)ѩ A,9%%PU~^u|p$A>+F( z: t>T,rfr6%vo)w{ +|m3fpObc6d*>*˷UoZ*i5~ ʡ[eoDE)0@Or51(/TY^bM6^bmH((#͔Z |2='Sz,\Mf:hBea*7OR9pUL[0|~&lz^@ G}k:u͢hz,7"tIDzXB5)pcb<96a9~w #zNjֱk9α`baLHp"C>2YmYMS$stb䁄^QD˰;訳^@s|=˛}3&2zGT"h;Įa%i|e]LKʳ{eTǃ[INE_U V0aC֓L!$Z.V蜁 cYE.|n"I;ml53=-OF0MiGcHyrȓQ;iR >)d:-OŖ'1@L̺-t˱s1Tdt0x΀P1HSlb8g0AbC+#+.d$H cB_%xU vjUYt G) Q;yc?W ce!W-RʒY<#d T8^B78-9|xzAB J57Ǡy6#eJg\œ+20UKEZ>@&ѧMw4M賻+I:1!;J|%M#;WkwzaϗV81dmH=f /A=%܌ka1?xL<U %Z偺ܦK$}-P˂b3;iEցy_El>2Lx(RSX ^Ua~UGw%"|wLǁP='E'8er\rR="Vx^E[XUeAAd7>6|~E@-iCRA׊0 {-aW,IH"Jޢ/=3'i\Dˮ2̺raF,12$#0Q J|E+:Ϯ`;:Dq$+ TL 8 S,D*5P9L?BH6"d#¥,'E c>+"3󞠟!K`R XFt^.-UG^#;80@ қ !Fgt͓Bq v7ȱFK ֳuk-U :cLy$=z +h6Hup~ʜ +!rc [Ua?/Kг{nL 'lUkS 0s9gYvE v"Ve*(rgwh9 tWyTr(Or]N|/M|%xn*V򩽊F{kl`qRV|ݔⱤיsvST ` +( a9f_<RbkWɕd?*'?LH;0fV&}s'T)*]w{V`P-|m4ݢ?:y0Na@| # f9⹓*w81: &@m; `TΥLϱ\n  OY^;;zvBH`Kx(*PŲ8(v^V(دPR]6ߡW9aJ/`REֈ}p8 aK2ڪ1:yS`g[1(\e.FHQű9{?vW%ߦkO~Sw[Cwӫ-p?p {H' daZKPw~ +@_ p6Sl&ֆh]Zm M+ۯY[vm߷k|00*1lS'jd@;*Ӯb;&A# vQiXIy+`2b(j ntw}(Њ1uFL* \Z$# 5moG9m,@ 2Pr;;-NW,0sEjm`@KoQhdabdzΪ`ׯ AGF{`&H{2&à t( f-qD +& +.]ϡ2GFʲrS<,Q~jt5C=I3Umͷ?z%IkG4,$ 0=kVZd}-GEJtl+j&|5 ?b6:Y2NJGYPq6<-%ɷLDx!*<ֲ)3Ğ&ʆD/P҉Pf|81)O>ZZ 4noҚM!62.-Pdz"p֌c<(&T ̤ >7?d;iD  +-pU\ ;Q%o`E$͔K:k c3 +&+?1zʼnTf;l;?5,Y Ы3Р +s2 )HoM‡rLݬQ{n0eb}ZeTYd#P/DMX bL{L8ZְU;) +]X A9-K^=R=W貹.U؊Nv +staL f=@,w >ZTr.+0jql]C"z5VS"<(Cә:Y'#;(2+rЉ-ٔQNAYOЊms쑬71 ag;,Ʀm!Yc7L +['MЌ z|CnԫWD̘lI>ld -R ڂ>:Ե|urmA;(R0qi0U#+Пb@HÉ"9^T5ЫRu2e-eEm)Pn4 `  +WmO1NRa+NA``<2J!uC=rL*ltX.e4`1Ty@J& F'U$(fj9/m:2j S޼w#T,Cΰd6M+#ĴǬ*[L㭚ŴZu +V+ĴZVeE1BfHŴZV-i{nzz;8)ZҐ*7ρm Ag*CKGLk%!v/U8mL4MPLӽwts&`-AhFw9H %UӪi E*:T;hUdq4{a6WuE!}D21Ql"yGM$P)> v.`dP&Q}/&Q"whY}`Ee ¸2PQ<%ycKP+׳mnJFӐKr a㼍+r ֳ2Ov'!sx gj{;zLiӥwJcou: ?<ǯ~)__ 9M~Ņ+/k||~WZ9f_Ͻ cA^tG3W1_Лy!ǿ{ +xMgoYRW~y +c}k~?߿Ǭ*nM}oގGo}׿YMsﯿfn)A!\n?'y/ +5 +K/4ZTh?.+==?..) +;uq͕wiW7+Q]o)\UZ~oϿOOϿ?S7hQ`:M\_v-kjO_ͭs[zg4EпA^2 ]zW +-_'D}QeɅ"idpI7o}v7)1ϟeO\woRvn5\ +\˧N9B׻.%ZMxqyixJ PaE~ lkI!߱dǽ‹%;W)8#t{?p;lj7Me XxυZ}mϷev_u?=O 6$3LV޷]#2ݜ"~ۛWˎqlGŅfyƩ[X>z]Gr%[H2>Awuۯ o @s~y_\wk=g%,ͬLk,=;9{vҿWDaP__MsyKZ!5ȓ)O3;=fRd)+źbZX*X[;] EW_?__L x{5ԻtK~_nz(O =|3fwx0mBvv(z }lO}eEPʾnɿgfPrBRE}J{ \^Kcg}Td~8}enB(LkLhﳑf/EKsK.Z+ uXE/h >[ F 8 TAPhksVB N',ZYPfw^$:n% 4:k;tMf~hJhA~oJNۘ[ 9@rpPk{zZˡ[mgM)~k k/=. +al_h[7k|S}IAY'FۯϏ[Ujk ߶Jhgz= Ű]FBuM!jyG/7[機֤4nyzD7{k֨pJF+% |u[ZޯxΚ@n6پmtʚ?ʭA-5S37&yf5S}$*ZrJߡ,5yZȭ>rp_{lo獄zVj9 ZL{coVDؗoquFZ؊/K&pu?kI_~U?%jy =^gg<|t^\'N_#R?=v{;iq}Ǖ Ae^$_]Rp_#p\٥19wgD~bRӣI×ySK'FE?OW ro6-9=c}0y[>t[RVyz eA +eT,MGX*}/ZkTNB+d_uBa-irOW{PBq\5ByHh@hO:a\u:c)پ"5^Bkp}E^'}/*}/ٯ4wb}wt}oCv mhsNn|~׼a-Zh;WoqM kr֯B^5Bi9~ ڍ/ɓ7@hM!ͦ#坘v RrR_S8Zh/Z3H<% k +e[KzfUeGeϪµ 3{Xӏmлejyʊr7kr}”acP`KBxv_'@:Gq[J;qۓ=`OgF/[+)g?=O%yqM:LrݸFkصG{ЈiٯjP">:mu>X +>ŶH,v(Qom:9]3:kQN_7ȍy@$-%]Q:+vat}V qtVDY,8tj WgN:+0]+it>ݧщ7N^v)tZ#蔼+Hg-it~}F~>r{ƱfU(/\42kyXOsTw*+7IV/F_ ͉5-t[CZ|hZ/k|KJg&pԾ?:y~~|1W3=bXzt+Z6^Zw iJCce_ W.묗tpeW(G6trhlr4-ھ163/=^ Z-n7Y/~jyzk 9d!!kW,X#ς՝3,YaDkW/HBָsBaR]!= n8 ,,ҳ`N薳`N΂΂9!; n9 ,,`N薳`@H΂΂9; n9 ,,`N膳`@Gς΂9!; n9 ,,`@熳`N΂9[΂!= n8 ,,ҳ`@膳`N΂΂!= n8 ,,ҳ`@膳`N΂9[΂!9 tn9 t,,`N薳`@H΂ς9; tn9 ,,ҳ`N疳`@Gς΂!? n9 ,,ӱ`N疳`@Hς9[΂9!; γ`ς՝ɴN^~Q/(XVN_l U|G1%wy~a']IF Ӯ? e8 +J [u 3# am?-ˣ|,C+t^Ž>KĶ_#:+~,/ƶ k;h Sה>TB7v׿Ί^fMTi-}mΦB'48tv$GeEuzI^\W5M,X=|'0Xʿ6[qzܬ.}2__L'a"42Kw}-󞺯'kxY QKn?!51wiu4|MB/7yq&B/^OH(II+/$MܞҲS]3 X}>Zd,<;&gX/v1?FX4GH㐖 +Ňab8Lm6 /xZkhV#\`I5)m{uFp5/Vgzc[.|p $F!}.mc%I*+Z7ځCo-2SzQ*|v2buh]'/4 ]Ҝ MŒ*SuAфD0+eH&^Ml!"!_OĹ!Z: ZC8Th~U+ĘNP\0bWdT٠H' Ⱦ|Q\SOo g-U/Xlek| +2p$G1C=d1#qf +*ˏ~M+. T.m#@C'%N#'̓rkhIILG$ ۍ[%DQ8Ͼs܆{ +O2%β1l±ip<T{7FkAwxXb/q#^er1B~r1bԊsr LOԬA.p  +endstream endobj 587 0 obj <> endobj 588 0 obj <>/Filter /FlateDecode /Height 578 /Subtype /Image /Width 29 /Length 1160 >> +stream +xeWwlݽ[vꌩ3Θ`(  =s_/3Gch(>WzUo/bCޮAyoxzUoc}W^66v˫[E{GPo]ꭅ5c˫*[z+چXo-e-e6˫[zUo#- 7_^ֳ<؛[zsUo-͆Y57W^V ؛^zӪzUo%M)7[^$؛Xօzս7Ɩޘy7F"Q&ްZЊzCUop~ cyͨV 9MO^݈z}`wVWzf֣^ {^WVzaS꽒RzYjk_^^LdP]=/zm*Q{&W{YU뵌*GwUy$5(C$L^)EF )W{ Y ֫ +WzX"ԻO^ݻ׿zw]wO>zCս[rQOֻ#nrWg nwk]']뒉z\c3P*'yջj:]q.wLCURTԻ2]|).W .&XIws>,}&βW3O'Qt;d;b}NS^NE-Y?bPx y;<~mzM^~iz~az?~f!~jz?1 Gg W{?4`z?zW{=zw޷޷FodX{oɫ @zwWwݔW{_z_z_هnW/nF/lzɋnWmDn@ltW{:zZz\*> }|5ֻ>Y^}t*]zW8ȫXwwֻN^.9zalYSw ~kzYɫ޹wmzgɫޙw nzɫީwq;ـN:*z' YwI +endstream endobj 160 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Tp + +endstream endobj 158 0 obj <>>> endobj 589 0 obj <>/Filter /FlateDecode /Length 81229 >> +stream +x˫Kv&-Y1-Kڑ>GݪZXR6u/(Aף>4{w7$'f`0 '2X /d' z~jyt…ZZj[}?~??]eU5jCJd}G~(~Ծ7o~݌ٜVdf}hGo>5s/=Ԋ~(cɛwE}7?_?4_},=7*ͷ0F/_yUy_2l[S cSuy''oZֹ?\j>o]򛿦\wι>OyiWIO~QHl?u⿈???-o_P+o~x6Jl/p9hC9rOU_}U ڈެDmKe4W~|)a7ٿBJWc }l=A۸Z2non;]&(S?[Dxa.9^y~m6._GyZǸ |9| b,upMSs_=)פ_~ _c' +㡏yU^dI[=;k;O/g߿.7mN_6knkcML'o\ꣿov;~BĿ)~Mj6=6f/dN}1)nuryѧ +_+*ƈ/v%5pR˵ȹ{};_Xn`8+Ŀ?1۟Ŀ篃Fh(Hd+;ϭtꩯ2z+_`svR߿9Q_iUht7S+t^R]͙r=].DF5j +8?s]r[=6; eu2Ҽ辶#+\+{x7mܔ]KtώWߝ==OyӹꢼݯoIkltz5J?cv(^Z檅~YåtWYZt^R{c]&Sͦ1YKolAD pI7 h5ѭ2Rv +/g_5 ?jm q 㰐k!y[2s;t- l{o}ڮYiWޮwDU`)~GX+3)V]y7[n|Z"N 8|9nQ+5β/.<'㭖p\7>G}ryQzC0ŝ N{ ~|zT^~DA&wxUb ث' ݂^ 0$&d)9↫a>:Wp'C\ڏTʃBci,,Qt҆{V:|8jhb>]~YH{6)vG )@ +zkvŎeCF.]mUPbNJMif`W8`CrVINhuh&b!wE20l4DBtL2U\?OEYkZz8'h{\Q\.jI.V .f0bqݷMcIXSX kt[§;SfE$N*\ۋ>µ_BqQAR?eSL](]lV4K P=8,sN|,+o2=U+KV.k ?;~i5gi+ڟ=+e\/{x;6Yɡ8N6,;@9+f,c^a>h+X\UJDXwuhCQP=E + "Kb΄Ycf0'#WIx(Bpk*fm V9sN,c끘0S,zhi%N:ZuPe"SxvxYEX&Qs:cp=Mm DӬ(U5re=%@.HnU +tBHy۷le5 ŗp?]!W@x C.@8 D7WNgی\d5wB@Ê\И7GaqO*0;#嬬5l{v&d(mTzdmxK}[F`wtUWRJ+]G_Mb3zEc]*0 H\]аXqM/Ё`G: ye%3+rZ+Sd4-GefǠtH`V Beˡ(la]Ni %\#|*0װ t0;AY d  +̈jfXF$ʅE# Չt r|aViP5!8l<0QD3*lTĠ>T +*8k&4 U93\SMG]x舙Ŝtս:G.y*ݕ?"mefzhuh ipDh_XN,PuX.2E>5,#π^ 5%upE4͖a3JlŲCbkۓW(+O5gvT,kg'd4`diɓ˺S4}p>h m֎g qE'l_^tJѮڶ]3kX[PF!Nh=6P{85 9^Tb5ӲZwj]-Jy7x?[AIxGA`bpevgrLn$y22[l}hY,M êX`d;2, `IɰNBL+%%<)'5KAWդu8نMlߨrFqpUk7%0&}D*dH8ޜC&Yb ]FF +0lSZɲ~Mڡqtw_>y^XVd'^lܥPZRvZ3,i;<)(i.IGԳ $MԁwF2AWX]6 aY MG [f/JO`8<-?ҶD.LM&+kM ςK]W6%ak}gp >* +U@=ሶ:\ +@L\ +,Kjp`攵V`NG;+Orod^E0=mܦ Ov }~30 ua{].0oy;ƻ7.A@v>>, +&ʅNa2*^zE6B{ +C< $Z*bIEaJ2|KC7*g˷Q]^50 +5}D +.,]kŋ"(+ت6>+e chAȭd <PVqT, GwQ|4Xv+&MPQ.K%u4V݁kX֪CeAa@c$ cXD[01?24,pP񓘮BvDɡPH0x4`wTx>RP+8AJ/ `_. 솖tƥ`Y&if(isY5t#GkPY܌@l1nP.JվmLs}B٦[m(#.s 1Fb)x{ s\^V+p#(gEpENM@;PZ: + od PyY ѕ$wBmlPS!,Em+V]F0K*6R +9⹀{ ԸaC*HƢeL*хYB5g^^e`U[2pLbC]+ 7QV>% +Z_s' -PAYC-œ2f(nU`)pյЧ&ėY5^k2y̹';#=پscε0Ɯk aH'%7KT|r}+zB%tאV_uu?`v⶟HkF\;5mж'UVϗ- 6"Qb^Q)N ueU[1.+l6" +]\0"zGy͞G-b[%0nqVlXǚ,|/@\%DLJ8q?m{G؄\f%3B0 <vmTb4'yEV}q5脻ᳶ{Nك<83S#g*b_]vdk%7 mܐlck[A"27#ޜd` (HLۈ(lcFl:H7n{f[">ЈȌ[jT|C!2$ hkGϱ鬝؏μ2p ^zۓTEh9b34Ҧ)X[Y3+S ^h>@ 05Mc5-@u`@! :bN C}N_Z)79[kHv[@XAX h_XMcXf2<1=S}_W,;N{J]9;[~渐u>.{W>[sZֵˋBƑrFPD8nW )07kgFM"li8NJΝ_Zүvr\_`W6@v+ .3U+SDPE9`̹}B6 h0dպqơ>o 4K3HԎ[TO:پ! 5qK +9:yTa{L'bŲfrN+c)F򦤄U\iǮEĞ*Rl6!UGuV!cOӡb TRG{Z(qL߳0g0v\BfZ6L\6-)="&.M*{Fe[E)_^mXV6Gv3tⲊd,`r movOfꡥlBڲ,&O +K@ɩ lLyl3(jU@jmu_%xf`'xnQRqOۑyܐJ<u̼+2C!pDXVC%y@v]=f=Ǣ;̎i"4ϳ}幩Z[bTxjZC'M<#2T9FvcF "6S2ϐS 5fxGV46LAz4m%h}NXDp <# `x=)5 ޹%A[;[h7xbesm/.hޗ+Ff a_Ѣdžէ@ph*mfr8B0˶oewwz  2N+rU †eh.#ֿ؎c_ţqW`{n'hJS@iۜ` tF)6eLzҴ|mٺl/2!ݍub-3kmqG_z(bPV~j>Pp[ 2|2%ñ3q9APU;Ś^}ޟY`4ÙuK:a DTWա'Qu9[F>4<8aVBy ^o#؝ؑ.TݳQ81waR8`@L]m.per AxZvMB!H`KXP^,E?SY:+|lOBuȲzUH)I)+xY(@B/GkV4~x'aǼt|DRiQXx;2AJ*$x,,nX, :bI~|z5t8|8b~2~>~qxvOe*}eоW%>~hEJ݀M'0LJ@@T {+]}pZ.B>pF р8{.d=Y@Z.d.|WXֱUw%(t`)^8(gY2Z 08X'` hGZCU6bѾU'J(SR%N1fhF,e ,MF u4# gKsyޭ0f m2=TVݧ[= nMrM9L`R;|2'ne +, ӕeS"By]t"$*&i1j` J7ۿY^Y\[L\~ &gdV@VM׹(GbP:w Dԁe:$mVA(PɌsJ=ʑi3 +V,, +av=jTuW:]H2*Ml%`vi/lyCm%H:"`.0d/LW:"ĠoBf !""F$ |BxbY#<1DNEcb(K!V^PkМ \g_O w6Uk5K =DJhOi4#+ #Ūǟ;FBRΤGZFS&+z'zd6s#~ +BI˪{ "|:D/2V%LQъ|mN V>_Zփ3ѹ\9>C4`@ bC'A#*d"ԆGA9N&UlU#E7:ڡ|J?cp]Q"4+A9)?hzbqAZ64rlMBUX)e%(تEhfÌVY;(@V GyCe$ϳCk F'}?/(W ;~ toD/!_P0;(V0ݭ2ĺlf(:Ȣ W$,KHFP +vT:9L":d߼ t-Pqg:f:h(ǁDѐd4JV0#;Eev*O p*lONQoN#%mST!NJ5`nep"Kӕ,H +l%cWfciZ٭!VGjlf<hR;78"~mz٫$,B[ {"xGC +[~ <A֏> /0:f~\7HEYy{(Dxʝg9ع^[vg\- fX/gҩ=6Dۏq"K/+1 쑯,䢓 hdh˭!+z+@ųa}wa U|Q8&woR菭|FOVֽ@ p@yw;m3ehg׳~'ڗ:D;2vv\(sj-1㤕_\ #=iKX{%߽:r8qN@xmHngcVNBXpwW8j=zm ''pVuEN-bz>@ A}' ]#HAbW%̆F>kC/Rbˢ_Ml'wIg亢DjYXN܈釳&;^9dW`D+g~Kؐ% !6Rht|c>!TqlHuG9,߿58ezi\AMKiޖ +rʯDr+z#8={&$#l\ww'12hs "lK$ +)h4=(Y2=b3|JOJşqСFR2W^Y֏1PpUtGn(9F3ݰr 7z?m-g a8c)=L)&[E F:jS&+#[l-P~*I!<@2dqԩ2о&WjE-,`U>k'hfqŒVW\ яVQnrFDL u†jh_<کSK9˲2;Aǭ +byS&+|'puSkO*ٯ*@ fhrs|rhYnA W_a~`%3*. Xz~VaRТ ʐ>(!:ߤnR +,K,BڠnY*&&y._vL)WtBվ<# G`Xw ĕXuTT/a +> X +!qyB]HIZT?GG€A ^Y):+ n HDh_` + n!2VDGIVihO@(=!H͠J\Op>f n̉}P7{ZjFﯗ,>A ,ceph(]yIK\E %L%H1@e/cɞ٭FeL*х[Id[C[]Dv`{lΊy+%/S 1e'ȟ;qCt"Ɇ2c:ӏ^a&GB pu%KiMupbNAKC# >F  9Gc,YXgLߜ[I$ b0ԩ.Rͧi]UၘFpGu`٨j̣GF+3qV8 \"|c,4f|٪ 9dlIܚ]NC)f+JЌ9./j~3h659W*S8(X4B&+$avm+ߠ (!V 326krWX -7 ǃRÊ;n&何NЎt;;%hNim @܃Uri#Ҫ(V|2)z\9h| bX̏.<s8)eQ id:dʈRa.oS]NZmۣ*cl}!<(]9ҧ;g,j `#J.,_q;b9P@G`yI$[ќl2qb(a-S̱p+(A+:z,&u$RX//@*Q03e$.v#7 3I`Ǝa0Tb VlL*54gGSL;i>a +x$ e_gR2nʬ=.i&[Ontt:=q>(T z:`U-2[>0('pV +F:@eCRfz!2DͻjS8zzh:N}nʏ@ucVEj4Cӯb=gϫ%sHٕ|zPU5L hT3EH%0na(KxUo}}xhRk~1*&r>h頑כY%R`P~v/v v_8p9-)DѰjf=FrƎkB;,/w(! V{(rOc`Ps=bar&NdxɅ{YЪDom04^ɧ%qj ʨ8'p`ـ-o;W(KŽO& +dCi'.V%k,irNㅢouCmth+c=Vw+E#~E]ʌeݙM-%m#:b|d3IF$!nKc{nD+NL{F:ɲWlЪInN'Y%8=#Q/lhA;8LqȔ|xt{&<)@Om;󖯡Wyc$&d)9OEv^l0_Hw/A=*R@߾(^{o_zF[ٯFݵNNoɩGӒ?l&(-98#2Y+Ǚ@F9Щ dt>",;VÝaU#aRIZF"trtx[,'5`'1)dY,'cyl!7$eKr=FZl XGŎe$#G#XbXK(CU6~XB/T9pgTw<[QҐɁS{Y7;p;Og,!OJI5 PUQpt6A_vmGlh{, ix]hLn좏Թ<tPȓ":e6p-PaKN9ch'y_PְU 9u챟= +,ñ.RVd=c1+zуTSӊ0%*3 +GE[ZՆ18$A+iFaY[@#?ӝm@(I@HNI @!Do0l9B, +K+d +vD5~H~Pг|"R1C.eLL_i~AyAh `Q<tY=0drďs!r4AR(;֡1ױq.m@ggN"ζ't^)SU $`ELu%3&\[+ zjdck.+Jei]J<@v +l2KX MѤc?%8*YBR|wXL 7(WWի3)÷#\ۯ"Kb@ȗxlAj:KB]k Uu&=Q+RK@^VO)6U`j(+QI]Il4Kfk`=N,8 .kcd^t$M{fiH_ sD@VNW?bgayhPCPFĒz̦z̥]u(kJfzt+X; ]# +rf-Q]l`4HXǂX~%2l֣'6hZzjMjMwW Sh m3Fe8 ٩ՐAGSN ,4Z6˹/Ge횯 CWAEYk8D49 U+-T +zmMSA9lۍ +.%9AؽZ'͚0j݀N`9/%J +Ӭ!oIC ˈuɴjTM:^8&ʴx")!r1ao’Vg,A)2@wYۗr1l嘹j#ʟjYEN-(Db@q"=e8!=?P~qCr(FA1TH<qu}GKkJ? `YZ:ܞ^XZacԮ=2uZzö0u&(Z&z2Y YҪɁa4N&d'=!Dx3hQ{w1lVM`֔c]r -㯜E"V{űأ_tD>TH33F&rc܁e 4cϡo-нBqj (gEOy5p2Nr$O>OBy[0t1:4*:Q`S5254[ t;S +BhRm1 ^ʥb? QOrhVGL ]ie!H] SUkn+\ ѐqO[jj[}SuI= \rf:z,ztH阧`' +}"g3\CPl~yv(5(`nƺo5|7| 6گzcWI6{HR%~prlAviNtCuL Yq'3E#ZGhfE5r"pPz_UJ+-|:4e~-v@sFGj]1 =za40b)`Ի7Eti]?eQKwGT~ȟ }Rzz3_U-}#ݹٝ=I]eWu mJzAhCe:tiqC :JV5=26 ϭ31.(9}#J ^&K 1dv/p,=`?9DOe RY+B&gņecę,3Afa(٣@sF2r!Ɍ{.a>{bj%<ѡ]>'ͦ"EafZȦd~,|c]@8>3՘3wL 5t +SR5ָ "KGtCL{/K,=( TR38Ή/UguU'.}Z!7l8l`|eS0݄V9 q̌c1 pB(؍ÆWh^JOTNz] Z*bH&eҧ8tr3x*>&M>$^ AJI`0)!8c&q`E"K0 E/a>+ |76 &O?]ݡ䭜˝|?U5e?>o~61aOT?ipyo7?o~xӻ]-:8r_5Ĺ;>C6he٥_i }YWYzH%.jPe8{xYכWǼJW\}cܭ6nm'nwk oSCZdO[oώGҴQkLQ;-զ}Rz[wm%^e_[~J/ꋄoԯՂR\Ex /b=/("CD[ xe5ZnuySv_6RQn)b9~-fݪ򻶚 i5a 7o63)V*?J4ق-lv[X/.[#}q~'Hv&V=5bm-VBnݶ̰{{%S]mCw~54@p,9Iի<;]씪}=-x,&}ë=e=xr;6Ku$W`GXaW^a=^¨< +!Pz} +Ya˿ V8Q8fs}pۣwb +@iˇ񁌦+qנ`W zV7Z`J+]1 D@+CwA²ÝB@8a')$#o#_У +ֈ 8hT&4lNATo`pHhEy:B`6숇/lÎ~OK 9z'9os: O,<+((g*6 3@p ,By6YfiF_G_a7<HXՐ ߘ毱ͶD +܈qÈbdHh,U_B*_>hC3T8PKp db(kgoE99jLo}&TU:s +|.u tU^+ U3ަ*9FH2p`Y 9z` CQvzVј3#ъ :܄A.R);GŔP7нLP"* +n}v}}ll,5jj\p:©¦hL٣]󔰰rM?ˬUrxա۸^8=7%`uav\<Zv+hNچba/{ +{U cQ Y 7W<쨾L},ڒW֑ETBA $'K0㖃Yڶ˾eTY +@`/xsDndv(T3`p|2sVx4E)PC^hE[>BlXjxemI427l_NNY +hN!|dc8 رhlXC MlߨH|4+HаD-m <ÛsS:KlYq4@- +r }662XMK6Db ˾s/159M'149֊hyp@ +bd|Vba-/w3m"c3GG4n=\؃=@؎p L(I0̭ +t7/!Љ%` DG!Д[&I +Xʄd 'caar#^ k} 3j"- x4h\S<@k0hꃱd+VDatV[{͢ .8v + +9#"͡C;oNSț'##P8*waX^V,L/d2emҳHa߭5/hGh9%3a9p>#ܲdm/OwhQ(r2v]lC(sz PT(ù|M0Y2-ٹ FePI Xe\k_l&9:X1"X# +I聃V2 MT:TWQeNrXda݃8;3}fK`,GP99:!-o9ޘa81b+gj4y .>fAAE!O5PNi{D=Rd` q4$%دK~lEǾgL_9F+{HϺ$á/I: +tKZuwgo0@ǡ}3+4-$ $a&xHu3wN[j&E^kBZco?˥?ktB; $ WEt+vq>z Iqد7@8Z -* D@!{4 2 +(Dr::bxa|{ 9GVr0Rp=fXٙY0\z5iV z[9nBP2H Օ+AT + +M+&^A(atT/T: K +pPE臀$g<:T5JC3!gud 4O}#.끿Bg)a;;!~@}lc+={(J sƮNƎbq DRckBdA5fvP; 7PYcder_쁎\,Z +Rݕ VG{wMKL(KiJ@b V֚!Jl dJ1 +([X?@ y]rd\  x"S(l w"԰*D-ZZ5)R 9;=Ѝ03^̫b\ƺYD, uU%N +#{hs] ,L8d)R{_2dF@qYfɒyI0J[9«YdaB!۔ |/eNE#) l> 3UЯG]>!\[N~V^reux; +c{{ Wy(˃X{;t +_*?$AYw'9} &W, N@8= .u(.n  шbOt}?"\nSg(6k _xD'h6 (qWЊX!2 +ku= cr%cBZz[$s3=TZU_wH;[& + Էx*Y)hGgb i]]ADz6R Wil' /5Τ΢YIāA UU,VG;Os@lQ+ CE\]B2靂GCb׫Ǎ 0X/opکXu3X_1K@"IN ά3E R6@vώ(l* i-v Ad0{BkSӣvWikhΉI\vX嫝os|*"6ܙ{QF]@ޣɠ35ne7\+]=^uZ^lM>6K/}B$"rDڸu3xJ0<0 CF+L-RJbLaG)%+SxvZ]{Yxawr}tXꑝ3p4jÄxUN,G8 90TwHUeǣĒ٣ǵbFyX䭥XUEv1v\<[Xv+hr(Pz*uZFQ5J9Lgןn,ʲ;ʔߒY7QFļs^&vaHi*^==z#Jx8؂2 Z0K(F@*(㋮LS|B$|@Zn1J@fMkhcPUYTvFiD1d@IZ[ qނ f/e)cYa%⌍*(-9'/*VFMwq%??~vj`E b /EfBOѣ61 ta^ѝZ40ߜżk<L,xU+vzhW޵7u^7iik'z`|{uRhJ1Z%^_{9 +H&=Km (O`>PJ~86T>rjXߩnY\}7)B1Z/ϧ9=k7`vByp$p8ɡٹ(y-L2/ e[^wkj,bHN WuPZ'9'&~6,@OmPd'!"FCeƜrU,INN~\G%F`ozZf8lѯg<Б|Jż ]=Ih'Oz?e3f٣s>_NKd#ŒXQF.kױ#U ؖlx_ ",:F>p20@@ne3)D 8{H 䘓;혓1H#,>bjb TnE³ +4%S4pkG$ss:υZ"kIP Ξ+_,be>IP~;eq`̛!sݹ!czн1熐gF`B5zXGĆZe +%ռDl.S_fEz9ߊɍT,? n0B9fP+1Qe>@(&O GȻaq\BS;^ +/R (u%%X]_i5xQW ++x2qs0HaVw< {oMԢb,N&J"jv 9XXϳ>Fmq]vCϓzBhݮ۵6AMf1x鲯嬄a_ad.HR,vq]_|)ͧh#i4'ND`DG "N +ӱ`m?DUGN ӮF s#uԫ?6f)$0!=08omXѕFedp_ Qia /8wBN5@av-/"?!Q7YZ# Xr x5Bsh`F`Z˩+-]KN#F$󫬏^֢/Xpp@M-[՗ŖIfs)[R%^˶sZg\̍:VX*6S-x:`:(i&+EPi?ðW{VG#Xi n. 5!۰`a 6,3Իb=ot +EcőN'j +N($+"h:Ap8-~6o7R>g"dVcR@褙sN D +R5WH),sygwqlEVΛlL#h +bsULT93CbB+ZDf5xq9't.[(Yx.QN%ů) ^$$29N!7@IJ13Ə5plQ¥o:N?Ey9W+,; gS1e=U1`p/8j7*tya岫|7Q3OfPo1{L)N\ijuj:jeefPqf:ȼ +4Ytţ]d>ɘ2iF&鬳:bz 9:n کgVA@}ì 6 A+hϠsß L*OW"ܑ0_~/IgHZ OR}c%r;/C<7 *(\}#8^y'y~y(Cyo)ݐi&v23yH9S/ˀmH$-jsU/ iXkPh.ɽ$F<.wM- +Q24kx-4߫t 5 Hǫ6h*m0JAۮVIíB^B/{ȈV o7M/ȍpAk~z3bf#aQ?lkԃ%2H,G@lr1lM2+[jt>i@0ИȽ0P ;5Mn59_N#:|b 1`eӆpG)zm6VQydi"ɋ ʋTM;l`vaI.X:U rT<[ +RZٍLڣ_ާԦ8xѧl=Я|8!_K+LzQ 5fY%eLgls(~?LӞxby܂t,}U딮w0P1X` +lh`FFr&3wFfp^4;h7n r17Ce'pfkT]~*meda97Yv4 ٓljC=_5/1C%a^A*@vS +5\&|%ᑌsV\=AH2xǠrzD Y%7 6%b׸:0{%)y&ȋ([}3lp+Zq25{@(O޵=KߋdEr|^j4K>{nZI/ɇ|J !m dϠW.冃ȔE t1WqRe׮`?%lj-F m 7aN{䃛7={Z=<%I89ێ'jv][+/#qg.مHG)fz`%bIzsF4 rE@ݑ-k-.6:]I*l 鏲ɭ"63nM(#=e"9z!,vc +" ^P%( U,;2/mnDm/cǽ=hd\,x'bϥP1KWI0@ + Zx})[}3lS+{ԫ^ _F&=ҨEZ*\{P+Kq~d Ĥ컾-r&&#Cƻi\$UF^2OC07sD̯&wЯESw0ߕ ~3F?{:)F;d>7FI'M + qI{eX׃y0K)*)&5C^)T jǑ< pSA\Bj#_VUNɊ䨛M9O. Nl }bAmNBٗ0*mf2y}ac nS~^&`eC"RG[g,7c$NIv)wGk^H1|c"8뾑<^MUScX3o{#jϏ8:nxɱ,!:(K*S S ",oCl& ( 6ePYV135UTV\4<CdCMxx3$_A  v9;i< +Z[ V]=iPC8z.%7<5YV햣X9dG0QHk>{qN!*{9n[ H$*+Z'Y|a35/q&ķ /8$?l^jlD>%[|c!R?$"SHk ꗌ%}em1hWJtprZ]VS@WEBPdybh^=B:ȷx 豖kQhPbH>VXe%wQe[ź7Ŝ<j(LX};(BJX ohQk{5E (j|ZCZɆb'"{̔M%O`TRI*nX ͠8mpRƧJi&_2 &8 +j +=ʒ?ad])4 Mv5'S'G)Ɖm E!$<^d 站nLx/'!رcE#GT,A7J z>x /j=}M3yJ VJNadczfȤ %v_Qd`5/QN7zދaΜ,Sy}i9[5 g@^B?=ƨgtcyIGY5e̐{uhvI*׌!A2Wr%Zh[;]N-<-ם|,$ >8 +qCo£S41jIPD6ˊ *gӵMgd)W!&V`V #.vUN_mL{OCɳD4:I'ECo4Yk +B:Y1Q\dErU .{t0;0^!Ǔ ( +*_.ݠA'0*v?$\f3)'p{£ N9_v$s?!#hI չj6CFa&@Ȅ"$FI$. +e +d$ge[t Q7D>Q7H+$+&j\ +M 89\%ٜ6L D~D2WNiJ26*ܪ=B7ɧJYGY"H8?_Z"\KmgPbV8EG2dr]Fad]|2[{/d\f3)/ݺ'%#(d ; aR)Uh,YK늕h+V1fX%,G"K b%ᑍb%y"[+V"ڦXɀ)V2`#W$B"e.V2/-$b%ٗ]<=EnËH)ޕb%yg6J-)V7!Xxb%FӥBz+QrV M!lӯk Ci mrPtFcx1HB9[j8AR"eZLXw($C<#$aX3*iPj[H* \nd!r>(0Z{|@ $~qtrT+f3Jav)4s"w*z>6Qw JB4ge%lO>6Rm5w+f0>''_&Se +0IgI+B=`+vKP)ZXՑ4YN{i2^$z=[yenܰ|xG(95xy9'F8 38V>)9Y8(4QRWk\p/ َR>Qy#H\k, ; RڝS2hO Ƽ#HMf J +-g4769ɛQ}Q +32q#dmxSB emC+ɶE!/GeΣBoVG1j,+cdۺ?=m&6WIbZo܂,tiթ ]!e*k%QfV(`%#dUNɊ6yCD|j:k .ݛ,δBcZ[=})5={N_HӬnUcMDÀPh?k+UWzQ+5>CփGX0iL}ɭdb"[` ]Zu1kKvy3k6r? =LX95m,/jn9i!Y-{EMAw}ri^h &œcSW QHS̴&⼬k딈TVˇLvnqƀ_[iDKV֑&<̯R'쭴Kte2*k^#"xl6D*7X4[Eη#q%6,q)fÑ>ĵr,, ?k bJk&Nœ #~'VO9֐0Z2qEAv\IuxhQ0Mn rEC :0^2xrT+*kNԉ@52pk"e°i&h1!ʚ`+(Vx\_@I5lrcɤUò,&NNu1 x ~qzrG'TISxUxAK;Q5.F!oc~kWjtd}:NYׂu+I=Z4H~\c;΀r44YZszAMdnz-S!LLSefdaAiZL >{P+T\1U Gf""}H*hb2Rmtiɿ|I~54o>|cy[EҴ^p-1i+ +"1>SGT!?19e[t(!IPF#` 5oIp"8ȬLEQ,׏ z#c +L9yy*I1$ėEU{QO$n +Z.ȉ yu]gLDZAnp\2NΰJ-V7^D"DM x܋߃F&=Y<]V=i 4U<`'bZZ\gRjN]MjIKfr,րPdJ^^$+e]dVD/ϔKtLMyhF"գd2 +}|(m\$Q#.QJnǖ6(ZI +c=OArԌJY,X>n-d|H34721=H3&0mЎ+h¦P,,WRrڤ #HF qn| 'ձXI/#NЕu['s_$jOħ +QF#Ɍmy{trkLZ͠ªeҪd/̤M <9VqD/cW4AA4}RxnAg(o<)|VUA eݼ2yҎRv# Bny "裵bn&!rwɳ.DW{mHvl~`jˡܬudk'nuyMKY+'*fU^yDKNUNñs*IPrNa!}h$Zu(\d=.!UV=l&&5y({: +NW+:W cz(O|*S[`EiuXc.&w` y`7}ц U].ާ'PbG^cfMB ,m3핧(0Pc< @'iOɗgFYtq~sdFm.LX,Sibc. -8S?Vy>P#w߂h %#Wv#7Y$vbL91wE?*^v2A0!akSj? Cג{.U{.U}bh7"MkaOb~7XG=0sZA271+4wV\G+&e4A<$wl6 +/07@]_d7)(Ōƥ]-keBろ a҅":ۢ3P>}hc;_.i)y/gIu!Lp;= /SQ.uV%Sw;W`|(*Т効hvfʉFQvᕜj-dS6I \:U ^EnM`O`j=#PP|}.W)Vh`.ӓ>!\@(GP|]uR! } _ik mHG(|Բ.xUwzD5w(mݰ9ŦVIԋ)_`Ma 7ZU/:{bOj$$2/:@F-ƟUU±'|VP%\"6#_7)v>5|f I۠Ѥf0*| ;! zhF)+[j -|:3VS+^Ym6 mm)s+<ƼHjZ bҷRhĉ ]xMeQ0A+PҨï7R8Qii.{.LZAig7K]xXgAzr;=nxWiGѮ3e9tZ@OFPҜnQ'ufxTEo]>O{8)ysq 3O#0W_ruSbйji7 FLW,Uvz'W[~w0"Ty{3um>hcoԔҧGèid%m:epNJnE`;9s|7CIwl`rc_QE?͜ +HØ%v5h57F`|G4scH(HXp0 +Vb#P V,vP-vhv['j +J<7;O[)`_͊T=υvi,[w$]O,99)l)&X@j[7L1r-h]05Je;W'XX)1YK^+&ʹ;i@}ӯM6V;0 1$rWlۓ0Säl#g.`L\T0Ӯ\Y(mҒP @&PWY"zQb:2SF6)~ϘР%b@[X$gTOS#q&S7V Hx#|MPJe#QvF0ƈwಱZ"}lf*$LI cHY&"g򢟟`TfU`+Sjf䫑+ կ jXU_EZ||q rӋR#~':X*g P+˾tC] TezB쒌 ӼPU`]D#W֠:o+:Qr^04oɲw)0{'p"kD'\7k"95c3!oz/xӛhm^UxZWjd`jGmU,}MJ;/A (w"Hm1-wكMv.1 %k `oh՘*63JM;TaN"Qi'Ze#upఆ,.pzɠ+] u悘qj4PHxm\ӵ :]>Oc@G4 4&+qҕiF,״$,֊+ZZDGHݎxqV|*-enUh'/1\3OM>vQ,ϬM#HEkE k&켄?}ZjڭSuI|OFG̎JX;kl=ٛ kD=֣ڎAXՙ6րRO=a`L5.VX?O@Xt WAxOGR#z٩'-Le, a6kIKoTL)MZ1MTL鞙N|M;Z9f-?o +^Ui@}S)ЀGlXGg3WmᬙNd|@$l +>Vzt/W3--LNl!vJ85ŏLO&v e:d8B$ :juI_t; .Ϳ? NϿ=\O-+ۗ_#uԏ޾cwĿ.+g<|,K>ȗ|W/Z_]o/U#n)j^>."9Eܰh?-ݬ77Ut_Ib,^lyّ:dNZ@bnID1=*\֩V/ Ԛ_΢,h{SN܀en%sVoEL4V\"r-r;{@=+6}*|joE`bK, +v^ob5:o@fjƖb.'&NT!$%ǐ=DlW&`'.%]D]TK'Ge0ߍ\YĦτ}N'@W,7d2s0XsW t9ֺeW>|W6 O|)o$]T`Jyl{͠}/ֽ +sxS唍-LQ +9Ow[=;,).z[]7|睫}יl,j5uq*'Mr(P6I><ׄ^q% U@AhB7Rc9\^*/CouVR~chb25_b>F׵;io[wUN;oj+dB/eW =.^+oXvab)uU\qpb!5k쫢 ,+.-6r<VV1Ex@0YYN:31BeGGV{*LPjjl(t{i!YݧT?Ug7jԑ#PU~$u0mɏ +ŧ,_^3D.8 +Ŝxakx.<2=u#Jk%prFZ;:SVGϪpsfO[$n_od&پ{4~r("?[K]!VݽQ#9}=d.1_HeNoܾ>ٶu=T9soFgaiUCv=4?kLM(rW9aOTC}^I_g k/b{ܦq0ǚiQN-JH_K]sCQLvO)}N>s:|yɹSݖ2 +Z]mB +< aK2<,1Œ!(4>s+EsEv"}JG$_&t+EFQv㥾5=ҧXI0ΙP֟tGHq|gNgJeJ{sE#g#}LY.cb"jsr)Dʟ3?*?{=枊.E6>GgӫZ>5_f\Vgz<}3*O6E?1O A ݟ3A~߳hJ  Dx\a @7[9>`T+`߀k 2u-]5fZ W;*J_~VK5p|M`a!1RL~:R=3^˹3,@ [_?rk AQ9NP%k`a,(9GDt!r jTjj Me~\vzU*Q+VqjѪER5@ jݨ~k eG͟;(-݈֣r̒l)x<{U3J~WWrEG'; a l6 85W{A{'/(-̪jpe6&(wI\byJ`ͬ3p#efv^ | u8i?੸D(j^. ޝ[&?bXT=N6Vة5I22/,-[@׺WK'|.OQ5 +m'+TF0qqXR3af0' fLӥɆs{spBD5_+5HbXצsk\kpYa3S-,*&z’Xb2E) Ue%nѭX=F:)ZNvrWgI"ڪUrd0=pczD|3u7V,'쫏磵p +ujrPXjZi?PkeSGu0W`TL&/%]fR]*F(DCgc#27&ۡ (yVH(d#f >-+|v*se> l>38Q[XN7 :-̹x˴{y*X7Za7-_Ǣɭ&G- lk_-1uE=)5ÄwaD-w.=ZLNBU|)jJy:hħx-B>p_\S +W M@JokJ1UQgh}LІgru^m Vkߴ ڒgg:Eb]&fC.C: ` a*ZTlIJe9)%h3u\I~>vj6cd'my$yJ.`@z,k$"8.e+}9_ЇF ۟?s tq2زjq/R# Ur&8¨JZJxc8^ȊAêd +]̮'8b헉.}KfBa?oi hn +}Ύ҄2Z-SG.͠s&ܙ C6Ƽ_a!Ek!,ث^<`Ymk" jkv &kg@CQ,&pB]bͺ  ͹A'Pb]YfHgu!vUuc^dMw*D$t4W$lR4KxI͗ED"ʼ, $J7 J*\Y?0K{#\&5ڮ!uRDK}[J]N-;bFMcΠ31ߝ1o0b j"Mc +Tf#MHB8c؃#Iw*epZ8aW_}f@#Fi7ꁷNVVo+lelV6ذF6Qi|8vAcxX ˰*%!.êc /3 .rV cH{Ӄ67;Ϥa +SK ڤ z%3Bkp&\.\g5b y,Ueԡg=HWlQjb{[|Nd=XU1v\'Psʏó ˅Bf @'%72ie7W' &]KJ'>tDxs%PG2v%`7#~,I٥N=mC>#ln7-i)SzT'.{ ןs=$p2ݥC9DWΗOWnwdza.:3`|^@y$!U>ף|GY+PΔ NȠGU%R?o8@kDPRad)LuX1BpZǎʈtzs 7ު,iޣMeŊel>AP*ekIZW=z3.9`90Oe)h [ȸG V{c a:K*wO,e0- +X?AMu]W,Rѧ1D!x(fEQJL۶UwsOW\am!;5yֶK<,Y` Qvk?z.3yHw,vwơs,m,e1.,'q$] <#Tt 픏Zƻ֥\M^27vn7v_ߙ~V1|SiEh߳ +Dr 98ql?ws2}VV0C'VK_>=+ф+WT_0T93M1PundZqV^:!6ۣneo"͠9lcAE9-秇1kKN|'E#L^l ?A .:Y\p ǬX 0dh 4 A]:-8iRuۻ8wzs*$νic8|@CNZ3$,ORʌekLqB63d}pq +QI0/kqoS! NzaaLْzte8H;3$ b3lhgN1.a(8N2y)B&]"DLH%ȷR@|`T2}ZL W*݀t14K7mcsdRt$~(,7]))cy2AMWP +3BKAj5GO+'ο $@sy<^Qj{ J,@jIlXb$JɭfSq62u'^\;b [!km'!|˟pAզIg^;W8He[>FDp8=6=uUG(yؚ r,^Y5%(ۧ</* )/(56. գݛeep u0p2P?FyȺInxCfw -a"Sn^nsElOTl^,+lO79XpYۑJZG޼x_o)j7r#|xqm]+$f.^UXi!)_|NXbsc};m:, dB1l,;R=x8S3w   +c&9*0F!+A.|UKz}c)[jJpyW %A® D̡$Xͻ@o0zT.Kꦦ171~|uh0⌅*^\)ջ90V9aRz6հT8;4+iyËѣ#/pwÁߋ_t } r<<,c.%?b}v5N?s}$Gjltf&j)#8dc'~/_OGWKTYqzY΅HpA,ʲy8(NȒr +#*'aqes y%Ê* ++K\ϴ3=UqzҺOd.ϏZg}&lTPg}Ѵ+j#@}/<XqIg-4?dV̲L  569&t=yb3 +9ID9rX1 +]bO79}C+b9+Y)'؅ H8d (-f:_R"bI&_߽;NCw֣hA8X@+vtT4~l]謢qU2߾aJ"Nى2B?`:ql"=EZa2s :h`,#y+H&KO45!ˌr_p GazIt +1|^ƌ#a/'E$ʂajCV]w$\RohS6'>Z'p93%#\^uQ}$o# Y{ෘ)ĨO+j~D^[GAjNnO=te+]ȨuT5H{e=ȗM ]s%[/@&ܧqD?Cw^VnU7F-.(;Qumd#IOfa@$V\ՁT!{+»:ԫz@{PEZ-<$+K:}6<lV\=@ש  EJlkԋ%2/Y-2o_tvp]xᮠUn6D=}Axj*[j=nVq:q7WF.`+b_bsn-7 >e +g(+Z 5iI<7v!u> SR`N`Bp%w"&.&9U"&b%.X?|E;Gi]Z5X פ wL^Mѣy41EVkb./*uչpnu?e %STV\_+O6VTU@@Hy[vSskoS`2ii$ dxn\$Q‚ NUr'+F\s]R m1Fx"wC7vI{+YC3^AfWn\)0䂀X}rVbR-܀CʣXҨUYW+A\ $ 1F-\"eErpb貍FP6o[` ]VD=7WjNrUcU +UnU^+"т] X-t1F]Ba#I y3KcBz%"ND<zþlOb{+'Q2P|c' YOרK5Q,vVQ N#ȼs\\`:-b:*=}Afƴ˫5Uúz5* >xd}]NivXyP^~Н0mPV 4(gDz,]ʣ[<e[v8Qq.lר'KdHN"ImI"c3ЫRpWq1أboIQ&Ta!W8'EZ_䡑^V4G?5҆=ijt܀?NDDr#6.(/Zf+Zقr]_ t{HY f<=ܟ7 n!Ey}U$Ofgn.ەH "3 DJ%}}(ղCtتfn[Lc5i{`<hyE4 12iFVU]ѱOq_=ՐbY-[LcóQ` ; c V3@PUMACetH((˨ +@4CEN>$+#b!@z#Sկ×~Mޥ{w7jp{d=hDDF/OԸ̥oZVVc4 n4e*6L?[A%B&9"j_xl ep jL'QRW5 CmexNJ =#փg6[h>iб`+0/k\/ַvYW,V.G"b!AA"h+!5i^ p 4b2,iH,$FӏQݡHmpv<%NX#:⪪ +qCNȂG!c)+n%uJ.F{h S?mI:]$+#. +`-xQY dB{83՟`T-Cs$&`2\"@_^hn,I! |(IzX[q6 F_D ~Ā[>G@ hBO,އ̒*Τ%.DF6{dF7<WTqu}n-B&O*ˇAaϕ a7?߻|x*0&%-3 +*r|Q ycLxe*1c0 +楎gQҠOD%!JWdjhVKIR/~~T!at\@8xY3*]GsiohJ#La.jԣ,>\D\FO[g$KdYnY#(Tih,@~eAǚ`Yݴ8@ţEt,XT[g$g"Y_CZ. =כ~ӣU#55"lH{ @i {mnGq/mcD>D^Y,+#azz7h; +_2\TǞS{xE3K9TSb5Ct,s~=pLH\C"9Fanvݹ8xSNtMEG3 +VH0>,¨:@1r#e[ӜEh<h3F{zD."oxZq4yQUxB%^7.^T= +=~}mz$[R dCJ/ʙt7&uȓVwȆI%H4b24n< 8 / oKtN:bBʹ˺!G2x M,GfGט_t:6ڋ:GyϿ q-vI:]$+c"8Ez@-EQYDNJ jo`TNdȍa&8,)\1vcDp&L3T#q#81m:+Tb$ʅͭ䌈!:I4CE푸,ŲZ-چDYh!QYFǍ8cN1 M {2D@_#qɊh[G54B tNU~Ra4"Ŝ"աJe)T\GV;Qh!@4AK.BL2l|tm_(A94Q͚- "Z`]; h|?:-nrЯ.INx, vw#4O$W%ˊh,V\NP)6IܬǷMSD tUP=tJ#,V\Q:iH,F;|D!+pNm $-VUVb4Q(hW# v%ea_2Z֩l[Dp{dX* +AdErha0->/z_ +%.Ww|Ph5T_uXƿyIq3,PCn~f~Zou %ʇRan*jz<$F)lۑ,"qKBa +M r +{ T_ABKC~,(Ⱘjj _3a`MC|Fa=bө ʤL/ @}4Bǯ(\ejOi, ݴ0mDY@ +7VH oc{~-sf5_pDb둾"RF㓲. KHQDbrhHb-P]x|Q)#X"5*=>\q>qZ%)B$u`z#mʖ ⌇_:褜>)nzAWv5` q-+{IC0wLcbǮ/ߴoVMvemP+uTQ7淦7=,r +Wl$/ݘ\"pmY/ zlF +3rKJ`=q#*V#Q^cb,'[#(A{7å`;|KVx(alφin=~6^' +AM+f@ޢ٨ fLNKob+W&T,9x vme=ho\MXpSnqV{!:I4CEɎ\obY }"OC 5Yx= Ō;qSn )ψƇt51x{3,ŷUx8B߇dEr C yjy L!CDm5i7OOȯ =w+7uƃr7|MnuSht\@4 +toH\O$k"7N<uks ]Y^[uè4q[Jf`I˞þva ^  J%Y%BB"rp9rd!EBXv!0U݋nKŤʠj jaZː:lx4$r>zZ9R `8І'i9H@EAmeE^=qB:X e[1$zѱOq +H\obY#c0f! N-Я,6ޜBF4Et \=)^".#g:Jh +va6bܠ©}7U +j=Y oΔNrCx{!U|5-oJ_مfʆ?p +߷/ID).h_. +$xiOПi>nԮKJ&V:f]DMm-j`Zۑi$%v)3<+2MK,5ـڕ)R_ +ܝ˜MJ0>-Or?*QpS=)}%RqnrSf;exs7=ƴdʦ24q.,=AN-zgUZx7e/Ion{*,?άxxfz>]χ(v.v&LKf7h2vAKAX]GT`LAUemNid"|UjJiS>A7<]_:xMďHdHE .ժ#ѫm3\H|[Ias)C\6uQiCai(["-ap &O +V%[ m&Cq5AٽyW%?Ȓ$(>^q潖B[7.0]N*r@|pA' XSh!0œCe$KW:d98qۉmCyٝĻnԄ:V"i5.(.B$L`0v - ~0z[ +Jm>:"+$DPΖ RPݽ vJߓ1z ߺ^m''KΩ%*ʶu_`vW')r/MA^Ƒm ;ý0xOvRSD!ӳ2?qzw1_(\\qsELCڿoN#~߇ YRPs=eд$t0pGKj +}5ғ'+:|#'8OcGkWH@!|ŭat_38͜yJ@aS,h~i 7.Nw'ƻ{Aɐkg@LȱS=uV:j9/j6Vo +b? a/ !LJUQVV#Fzع}=[z m 2ع+RaW g9dhӈ:GPYaF=WLrGX_ʀ\3Z)Ihz@BWwVlji?3sYzpFΟn9#& s٪< ~V0K +܉GgGzTm\vdh7U=l'QTXK}>Z*| F&V2hx7kv;[z4 qtÆ.^a7l̶VNڊz]Q@'ՇCTT&;u1qeneu1 a S Cd7:\Bc\(kQb70OҀF+LJ&9ʃхB +W8+%^'a=IxЍȫv`B^PVq[qaо@\S\k⴫sqyjMM[0\1k9"xf* + +uyu/M5r4oz8u3Qzn/d]_e,:4  y54 +XY1%h{+ g0.OУ70諃wAWT =viy-m94NAKE1;6CHg8/ + ^-e8"AT`ʐ֓(B(ob-" a"D`;jc|!ߣ%bGfX'_RwufHϗ;Q2g.6 ~mo*+|'aayYGH,9zܗZ?@/JI2hClZF!Kpz7)NI2{ffInL/\b̔0Yht#(;Z͜М2(F׍FaQ.e+;-xيYIrM OȋN糐JX a_q̚|D^`l&1; 2y4; țV=UlR0͎`S@M!Ce9|xC!:=1$SW;;A&?} $<9ڤn# 38P8n|<(]v/w"s؉߇_F9h5)o.ICY|"-Iq[Ry+=DE +aw Fթ9K ,Ͳ"92}8:@L.NhؼD{]]J:}]}V'/ +OўAt<鰠+#>IXb~0hqV_q^N;Km+0yzI#kz"]|ZC 2c;~`;֎!-Htx:8|#hBر5xqڋRf BWxZ'_^r)/h@zY){dġmc;M}h6ov1x;:"'ޥ8z*bq|AIHwΖB7GGƽ\m0FΞ PǴ\^_?^U/˶w[ookwmg)ǐv-_w ^|w{ۀ=5 + +qB2eP:x1RX T0Qý~_t\@4 +tg!J\ȥ#dErxH>58k~垛rXqӰ +hˮ޺K hY͝=Fe[͑z\Fo+ v5lfK"9EOKPk=#_ߕV1-1 牔$tB} u&)10Tع[.+`h˶;Njm:%#>؇2Nv. vD - }_k+枃PFlǹhv b],Rc@ "-4U8[1וG;1暹4֝Q]"l#۲*%ݓH:d!xUJx | &0K#F)^'YE 80>Izbڊ6 "ҏ9o=KXUAǪ2nsyء:uBn{nyD`4nT\P<_p4S+EM%dj{m!4{}+֢S;wlih'|!SAS+ z^+l 6&7׮v5n+_Y>.qT!N9>m@Z CܝEUNrq4/̌@=dP_#"~$Dכ4sؚOg i4C1/=/֨H"Vt-I,i ~d W;^~/W/ vBf&<`{}cpV2!\GLNfzEi7!.Iqw[bvp~&܂=<1E`8|wXySr= F4DBk>1|ǕO@.A'a%\Z%_z=ClT6x8ZBrgʥeÔCD\mąt%& N|7|T0zݿ̝['w&dfz_.W_>UZ?Z[.}o^!x ,y/CǏO?cޏ6G7I=be#5짂|`)yMj~pDlk-.L/_QR΋gez-?6cq?vyq7_Y[UeЗ>WO][h/y{۩Z~DK]ѷe7Tz-e^ +^q/JS"bQwU^W1~F]aZVO%_v-QkO- Å'agxb8-Y*'柴"5W}-qH۰ N=Gԙu?O{EZg44kP)!_o[+o{ <_?fϼB2wMD]}ݰ 1nL~cߖ/YJAaHָzb|-ʣ%zkp|.<F_S\gQӏWE%ty-ല+Voo x<4ΰ~F Y7jV&*S y`f>ֽ's0)çb`?oJS![PmegbtzK0}"Yixopꗘ%] 6w +O.Y ꤒ u !=_n4qro e,~(d[K;V'PzݛP{n_c|R0"U.t3؈346"ۍLJf96DX3C5/۫15Hw-YC.VU.Vuh%!Zl +̥Evl= 9BWlLFo$MEy`FEU%0B~ ccQOĨG) j>p/W>0?콌f`=(dRuYxD#<ܒ_flh姆^ڳ*س8W]Gl~&TqX,ˀZ̨8#"&?(NQ%9}=r>jgAh@O8%j/0HfI7; +[ -6*]uQOÿ(' _KHRP߬ѯj;T4q/3X`P)X* L|1l(2{: ʢE̩BVO4, (V@ (?5f5^5eظKWf[*ĵmaƏ:)l0enoF9ٳhUZMsLdQ ١ߍiu/J@֑387RSu:';~Ȋe7dTL.K x*su+nQ<Āo?h@AS*ENas)8PhՓ_adpǧbNeK!NMV߭lde[}{`+{j6 =leOe23UtU?lIH64 J2NaK+Q!xYKvIZlJ|&(|U5=6 Ӻf03鄛>^^_`zVݎ,nW)6.K,ׂd (ouxT])~+pt!&ƣn`y*ߘ @sf5a-Tv&R%n*aGwvw8`}x}RʫIc~{j鶨pP(.MHosd眅*k̅Y*FזB^ܨXDIC r +c҅ MWTsѾ6a rr!:5'ILmVDt-m]З3pJfL9Oӎ(ᑷZYӘg4ޅaW??8hG`A:Iщd[aq h xo-[%{{H9̟n/?ZE\$#!D{t<.'|U@El.|hѣBeNsx*vw?p)G;#QprH߀|mAѕ!KVÌN>ktхTț-E:z|0wa{؋rS +Vu#Gg+%BX D*q+YwEeWJU{Ҩ%t0$X6[dmdhPֹl|CN+61h4s5V{,LDn"e_WPǠ\b#,CwZB +, %maY:pyƼyܶv_NZcި}=Mym[nGtKXNJO^VwU0sÔq /R|o`l:$kU: Uns%S >t~{^_YxD7v:cJjmzl/;}5 ;G;mϼ# `;e%^|!p${ Xxr;07O` `< vx=^"BJ~b($D'2*iƔU/|B*B~>,R'F9,t@eIF-BESoȃB֗{?yaNy8+aVwkẍ́O=*xX2c-my1 YpAdq-rÝ\f {ZG27]j{.\pYPL- h +B ]$[VAqp_0sn7gLVP<+.( hA+N$sҳC^edː!Ɔ&3='CK_&^ZlyeYFe vʯ~ߔ V{lFkk3j +7QᤜF/{?(SN~M+ri{I*t(x9?l?rĒy:%؇]xhhl`?.0~}p*ь4U) n?/SeZVPU(zFK|uaK);lmKTÏo돨 c}.sz'4u֛;:% n^b.d9k!P 8YOf-H.)3C2БቮtA$9l؆/("q$PX]4D={ӫH+QUO(Usb1 8N$bMowiܶoԸP;.Xu@Q.t3`iF[*id2MPO6l"p9xbhM/XG!!9Uv;[Hyn&'ZPȨbW{?=6tB ++*$Uh+[jOVW7 V":lDpP6HD~@i*w +Y|CB/v2-@8N&O8h#(I^FIҺO\Wܡ?rm^_MbvT)/a!}L~YMX!EʹɎm5%3 +_p%Ȗ +7qJ]Ap.p}WB}+9[laO͆św~R΀n0[NR}Эj<.Y޶R3XUP.{;c[UbI̜d;CPbMD-QOtcNK"/ܘU<[Y\v4E|/M+]K;T߁;<@ o^;yG(_MJww7km3Vv|a;S8k%X(㍍|)eBI/wTd^ə:RC=y2k؇ɿ4}>~_ * Ā}h%=h߳}+ʣecq>~1УbE=^@#}"d{sw^R{>}&wo]]tP{]YCsAݷY|h>p0zU3qvZbpM7WԔƄf?d-[48ϒ +v*$\ݟ2 |Bh,'#_Ŵib6>) 6e +)Lgdy +\+ *kJDۉ$ӒaDGm$tHI]C#qNILov&=,WjqT:3hȫPYVkǛf^FY#fxԫX%0vwU7w>c!%bs7_y4D\[DGE}WipQ>A6k*4:+yw1>3mqɧa +u_ KH vhiY[P +Z#')X @@O,+U9Vv||sZn,=OѲNӪ,lq]jmv>Dfvz}ieOXIzPb~$ut'I6\bÉ62̆ǰ/lO0ưXDSdzhssggg$O!lD,,Vrɺ8у%1,VG:Ftk*;a+a=Y!E=}HV|TA22(IܫKnCTV*a|IBwPbڪl3*)>P'qs8A PZ_@ puйd4HU|M6Zt "P}l!9JzFrJqcE-+NO̡8)2&e {wfʷ;M'LɷBhQ([k|7^P2|O/ft`C3 g$IG-ij(IS/L}d( +ɔ>,0xBp-皦,nEyahfUW0{Lャ +QN>8#seò"9JWR;Tn^x܋` }xD{uS[)o2C_Q$ؖ~FTUB"9FlhǶsT-c`sP=<7ܓM!{!g~j.f"@_F 6d;9-h@G2dQ p3 QuЮ&7rwj~ڃE/ojY/U/Hg'Z2'P";XH'( H MOx&hT=#)  r +;%PSPk|4 +j"kp'cS*1X3V_fT:beQ 1O- ڠg xYͫ7 ~ _QI^VW86 1K1׃%Ɋɖ:I4F>jTDwL㊤_-]Hߣ`O"hY('Ѡm-(<$ +ƕΜM^Wu4贐HhN#GNBq'᝞Пd#@hŞe"oJh2FF58,Vz$KdHhb;;y 9*A e6z#==YuʑbX2ڹM{EDfolسeErD@sR tjkzkjhrz" ) zB þt4=8T`6BH=ECthTvՓ{|`~`-T>$b%]z +gm>k6 o$XE,Vz}-GJ$]q'*o% Y!݅,Vz2ZHޤMrb!]6a%3+  ia_:ٞa(іeP3Rgh$!"H\B,-ֈv5<7ɺXUdq zbUmcؗu:((;XwQϢўCt2De_ +\VOcSUNGPanչGFC>6$t7\r*1>OOR>ɡ:1#c6&kso *ד 嚑V"N') AUw|4'9A69!'$):w?z"f9ոt-K^=@Z$9:4f:6h|ЏMȡc="!&2Nc}ުKHD7Kg$}0I3D ~ڞv~GY_Ԫu :ytZm2O( ާBDۿWSQ$yMޑzЋ7q3<8꾬r3YIA ~ѱWq1x#?XnDEZYk7KgrC${4-AG@UT&5!lG tP(Ԫc''j Xb[eVn%Y|nuI +l݄-2a4w$O>9"sC}J|SvsݞUӝ;UR_`TeكJC\lx^IvU3 z&IDee3ܹ?4diSgFf,M(CCIjܤv}HPz[^ sLDbc4<\1>T<~C%+>C}NfABds{ ]|R{=u?6őq>ooHvO( oҘI-[]}-'0ҧk+Lz2ZHI584L{ u'ΟdU9󳝠$4s(#R6ϓtlF4t^ָUr ,X;9\BH'htϨlr* }X!5s 4b e[zd :f84J`tXcbGʙԤQ`rJ+њy`rhY~-',ij&gaXx+ vJlfG)Y,1^ =La,z='hiudm0B#:lj1Oa:,Vz$KdHq,VA/H*эȆGXuꑆYbEQ.lWkYx; Vӿ^_tq,VP)ݏI9yʩe~~oc~ԇkVxUfگ;1$8щqJWl㛑ӼMs`-ݜ/s2b@wıwlg_;(hDR* +;* +[ _eUh&ΨC$D`)ԁ !팛kҡ,Mhj_l4P+ .r xʽÿֲ7tY++֓kNC6@#MdgTWeoqE-Wc"g!k7!S|ϳԝ[>h-fHƭ3!dD\_3.}1{ZdY1l Z9LoҤIZMyyƳd,AqgOV  KzM L l!A\:v9aYwoUnC9= ={b{mg3Jx 3FBҖ1K}6gBe>`s 1-6t:Oya .A # +L,`X miGiQ87JW~N@`fp`0W:N2 La1G3/gb7G{V91ywV69ӋNjwA nnUɈT :w+M1`xq +C"OADXIHH-v\oq{![LF砮QEBLS9+GKfz.?QZ.IceuJCwtR'a w`bEPk‰/- tYJ`eX,58^s0vmF0eChm0?j#_F02H`bHt#P!k6jF0e#6z7D`EFo#h`F`g"2m0 W0(XU1P!f  E5q$|zuCrgz){l 7eIJ)Bq^S9cSY%תL;罐9 ,ֶ~&4؞tqhc[c؀F63eD$|76 Ob>Ḷ=N`3v]_B >U rN {S% +a71 9rmXnȸeSZ -Z^ah"g< HCZ3R#1+B)ebtNqFEw&4:͵̆&*t)ghnnl8c'( q^'Ia{SlD哝~FzrUv\'S^~/iq eED~i'1&YA_)clNٯWӵP0eK*6olK('ؤԲxJe OM93*uԘP˱0v?sWjmX=A{K-r=&Ra%bu&|e Js_SCk@ZC}ƫg1Ԝ='Mj.U;X;Mj2zPN4$nCjL1SP@alC)/<`-lTx5(%u@?YE2*a TgM^V>WZZeuIh)첹^!za {(ݢ֑dKIy1>ɈD@ +&~g4VC ;d+I2ާY--C)E1JPb)ֳH8DQ4c0XBpzLK-OpM )Ӯ+g(G_JLyXP-4Ljt苷7x!ԣ|bП3KA 0Y q^NҧõE6}6(r(`Z>K;z7?$q:>w_|Q_z~}?=^tvjz} ϧ~`NFtGᢎئDE4#rf{[VHPOJR0$wCoBƂR H;5`<24Yc&,52.]* \tVaLkW 1Pߧ)6iKtո꒮|p>ֺxdh/jզtz|6, ۫mߓkJnMhtJ).Jv4{00;ca@HQ# صRJ!'itEQQm:pՐ[kt$׾΂1޴چug5c:^( hQ#[&6<2crL{G/߻/J xeJ_Dym/ǟ;;;,_0qhzlȗP e,#h::9 ^!Lm&R4ts35Mt35嚢=&*f1.Zx4A[V/"|[]v Q.2CI-t|AXkF松Y'cdzwe 5^[৏Fg%FW5 4MɁ&b֮!!F5:xѣxBf ѝ^zD6,Let%$\3J0'-ujX"ݔwgtѳu*e*z4ڍ_聁]B,0 .OXZ(n;#`A>x[6+ƠZW bsx>ig#0[Al50(vWnjzǼuM30^#Љ" ζV: 2WFszi^ j$qjnw0Zw{ m~FV"I֎8ZK覻f}MW񴆥]c-@&A(!͛+$_jT4kyua۸f +B8F>ss+C\H9ڔ<sZL DDF~Ө P2 57=t69 keۜO{@=5A'gٔQ84~ܢ'M즰Mf{S JHr ~3@#ls=!]M5Eu= eUp_xQc5`ivpd va@ø>2)z Z:]T*P*}F6ia O"ajkGj xdhwR +>ۧ⳺ n>m0`mPF@Lvr(>bi;oadn  r1ב>@$ ]*Rgi>SF(.#jNG x e!6ZXV͒[%yTHJ< _Ls35't Jdd1J ~Ld4zӰ|9h[`gwI<-E%Q9T`9?WrkfY[8obm(KRm]5q>VLj"EIxC\GG8bb%t{G&/2GM,;v */\7[hG smNDNɺpbBMsDPhDvIbÎ~>b[hvO'0pA y i4;pg)0h"͞IH" :;j!$$.v(ņ.#jNwD] +CJ(\?,_8uQaGhE~"%}=sV$S v1Wq/8 5U~%p. #};Oʈϫ:(-l^Ѝw>?.>6D?Ii1h ?>̾ǰd]y:뻇?ϻ/<=5~*Or:yɕ?T^XAMxh.?j6k.7s3:z?/E9؛XV;_=~O#~\V;Oǩ|mVz~m=IUu)mmҮ|v[Yo% {;~8ul2_veWg +endstream endobj 156 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Pp + +endstream endobj 154 0 obj <>>> endobj 590 0 obj <>/Filter /FlateDecode /Length 19636 >> +stream +x˯YzdU8q\N9sk{/㤃 ],ұ9-+i 3`GGHE! %eĬ"H@^{Ug:ߺz{[C +_~IΓ?֩ ~o~um^xBȑk_sigw7Kl9ghIۍr]v|Oڌc=Kfo|2u@Z~gY,ڿ7>x/? mwZӟ{{o=מ,=ٻ:8|z,!_5:hcswu-ȩ_2z緟³ +)>EeO9uMf?1/?O/*)_vCgo=UL-ݿj~{O>|McJ3]t5ul/>{,H?ROCKt{:eyA;ԼC\>0_f]b+fE/tw&h?Evv_%Klj} NVc}_]E פv??´ʒk%X/%}Qn%QcLGar,L4eqRA/D?wwb(Mʼn=YGԽL~_s_CX= h'Sol#G:tOد!\H9rH~EO&-wH}M @'؝[Ի^w ~#S_{풶 jr}@&}⻟"[{NʪL9hsp>{J9b;ҵOƥx9}|[W{vkk}(mG|4<)=-K2Xz%P]1Z,Xb+f ,V{VqSKA:)Qea@pfrjm 烁PV{Qoj&8@V K^%7Y??z8:BŚF3~j'?Y|peuL}ɜ,(ebJ&Z =#=67Vűge#4o5bvJm`Pbq{Q5a9 yubZGHZp2;Ԫgq 4Ss">:(c1`TQk\U F=ڨ) +丽M;-24H^86WDb\\:X*P+tJj@s TbŮ&M*c&~Tl2>Lalx'?\e95@Nr$I]<ߦ:k8*XS<2lXQF]Tq!2RE.z$[Hnu֒AЉ"'4 x􊍻!@3\,'' @4/ ^J/[0>)EU=ⲱM֘tHԆNHٳn!W/7SQ4XJ '\ s^Bɼ_BK2\ixi0⓪k2/aVX %Ln,#ecឆ֥݄'IfY VN0u5I[8e +łz+0;}s9&9 RdZ k*䋖UlU ,P4qgWJ`CA^ɝPg;@PE4ړHTYŊe@H!=ݗq$w\hE7L1> U +Y`k;4W|u{=f-'^jj 4a%tS 4" ԊiXW(9ZF>*JU8yNNgt6Og'HĹ +Fē̳C+}9`)e'ñ.R2RVchvՑŔPZ.eb0HbDTT%|T#2u"3 t1#j)eW,G%6E#‡N;46W%< +/(p0il(G)C}™a yD}d V#/攅80-NR +ڠ=meu:bh o64UJi -D4>jQ;5 r$\e.%mC-h9A/TP`AZkJK r Td^.[!5܂اh(TUT A9*RPgi >csSX`S!K$8] #]_䖲4Z ޘ\ x9|Vv}g:!jo .0pH8tEaVփoQ]B=j|z YYGʈT^{nB?Ʃ,u3fY<យ9A7\|) +H( ˛؊k] +4%1܄^9*ѵ Cas3)X9á}7sxNȜ8HGN乤eL&Qm>Oy|0Je JH(+t-vԠ,h=p<_yq ܣ͘E10vjWe}0*Z"jrܫE^n^tC (8 ʏt5b EtϽS*(Vy2lT#=XW-M+/4ϩj˺S &awG!\st# PBMA9aYA *c+Xv~vNBBOI𶕊<5d2سspg6] b-(XбLoEE6/<1Z]aZ5Çg( .5U@pBan,MK8!Vq0W!`Cwo\PT@LO},cP'pz:< "zD8C]"=(N.eY X-0)|{=@>1' +a M ;31ce|4-*b+PQ@,:vTxjsչa5^U.GwJj?dYʒ7|# 7Gaҭ`-iQ^ipU x CBq$BUVĔ˱qCSAy}dmҠ\7ݠװg1pyZ{L/l Xکo,P|R滪@" y=SCPK|OfUl+WНsAO$!9=ŗ>%abfЊXUnalbc"zta S*F)s 4U;YrW$5Vj#B'x#\Ln (p<,dMV1j.TU-sSy_Ry? q3!"]u ظe& 7n]su'`܇MI#d"W1$NW۳TZ9Qinۍ@uhV$0I1XKkCR<汸 +C*g#5^KW#3(pk8ى}ayLw#VJ#SuȴwE2.e4q68G=9M +#i,mzcf, +yr[=ci9KK N[\.@]ҪkQajtgJh)v'awGIZ { ,=_{kk2ΰ%+x&C6,RdL6IDpiWmQQgbQuLWT#GJ^q'͐Y<0as.qR7FdgBމ!%5?<ki<$^u”VW 7p&rKܜk 7K'8|1m~yeWlep*܄@M5>sn 5qx "jen 귂}QCIpdW&+r&ȗaC<&DR)NŬJrܤn%S*pZWt+Dڭ4ޤ-Y& +Z>_ hn"C/lC*&X/#Nb& I` 7A{Ԟm0l+ip3 E>bep3-iCkL4\6p-nF VZi q3 bXǖ[Sy2P@Np'&)WIJ<9&p33?qzU9܌HYE8]aC7*Jn Qv6p3r2 +s3+uYCr{Q [Fq3-ɆͰ0(nFJBܓD(| +G4^&I ̭MMNT+=`GaVɷ^.i|Ƴ?&Cl<0,_b60^dNx`7D'<ѻ+{a&} r 7rX}^„GBHЏbz 3[ ˼6G]1BJ:1gp`xC$Y<6x❻X+xGfY4a0Qg tEX'@'# 'fek8jc2}ywE)2nU;i"쫖ls +>IuڕK2AeKTFz8+6e%0@ZR͗5&VH$lC戆2X\vNxA67 +P'Lj[9@I𡅞w[2pUtȗdcSG #<c'@)a˳fhrҐm/<Xy,3nD|)_zyz7|AWQ@bϰ'+&Ɖ{%"%bwhu> + $/X3GM>,QMu?~TQ[EPq[R&2 ĺgx[8 +˝^ $¯QC){wE-CYA;n(ԑ`3 r 7?TfN SC- rrA,aB^ +H֓,IKdэ>+m1ܲ)*75Hn w< [n) \rUZ~,( qE!H::Z)5R$%%*{/+Yq[@cG!p-ӢBlTMt%A*">A*B6Z.K$hfaP8B;$lΜk>=a-U }TlV?0Gг50o mã 8ek-c:t:tPoq'=;ؗͩأAuht\GXdSbǀ%kzvo?puu| hʯ%LfŇXnGR'Y3q&zsNg&+Ν6l_` +Ѓ+ԚeJߺڊ=vxd(s+^e8FMW +#}Qv:Lb_-`mIIv2J%BVS,)ّnK^F׸eEmJO.XE+&j> dr4oG4ZO,(XN̆S(T_^|<-2m"Y< bS +l@& !̅3:VɘcؽjL3+{(x.c1$àPqJ.&olBICW NjrP婋(BBGL[ jUcq|:ϑp:x˺fr8-d +v =, £.܏MinG葠Rb2ze|<${B93buf eJ JK jfn DszmT=),[eB $pD }헕b_no/P4i! FakOJ(܆Ѿ=$wuUw[>|b!Cp+7J[-Tp^V),IIi qHo -P4Tq@ 7&5A<* e?|"} +t td)$X,xiL}'bIUUUݖbYG +Xp@ndF@_.I5r8BX;J5Hug#ZUmo%~8?n h2x#M~A5d+(=!Pɸ@QKeGj}e:d>[&!R|Li+͍j@SZ5"beav!H+L_?*hLqMT婓=j` ,q}d{uE63f xfݽ/K7x'ü,(kڊ2FyAydhK]IGM9E5d5ќeAKVzuw߲Wh,As-}N t +X+[[Qb=R: K1`j#}D4@̢[Lͦ>=11-]aޛi&fܘ`]x %N#Tr8:-4^n|.gܸYҹX[Ee Sg-П$vVۦ b- +{Ҧ.N]U| +c`)4(Pmr#<U|kèVGMHUȌf3ꬽ .ԧ5; G2N>2H/}hc e=cw{aeT +]J1dJw#L]n;l*5 a;z%Gw nӃўi=٢IY0 G'KG0T6K +Ye\LMgM^W1='8sF;5uIL4nScj]|SF`hz3J2}#r& lߐN>}@ZN1Q9GSe&BR TYet^[b.$B|&N+HG:k[Cu` jג; j>$YY=Uv6@_lg3G(aB'_KliY=tw[cQhY|R{F5H#OStZu 7'v,Q6bU;G ?QI@P ]pj:#^VԶ|iA>ɰ rk8IKoR$LMb</H^mP(ū-C1ȮaD?oG,aL51jeQ ea&lf:y(nӃM4߈gŦp'65~ hG=4ɣᜳ2i#P*vbg@YYYg{E O%G@` S6NCדdWjbt .L:FֶpV<@/%&>4!H`i<pGŻ{)4a>5 XhM2֙e}e$Sq>B~Ƌ@9i\IwOS moAHnNlNvS4fO qJlBX+Vm%>-W*Dq.hj0ee@c82jc!IVPx,Ux9x bE\ +^ӧ^{B>%2i4t# +g~W9"'Ce~0N}Cʝ2 mUDCh +!!p$>~+$ئ &&Vt1W P]v4|KXnɤvHfqe 5]S?F =y.HA'$B%@9_5@(!= =6?`;ZYnuH"҃@T;JNdm&"lX16qz?ЉP9 +ΰ gÏ$ڽ :Z.hrM0av^/UC7p\ܕOH~YAz<$皭M$box0s^~H5f3&2[pzm' +_߯bhpX -ifB7T\"b@a&-oQS!ۈ( +-/䖇xa +y>MSEU&b0_CD+bc^v}ڥq5%XmPעT҇jb^r\qnm薗6njBM0I1m4%!pT>uV$AE_~R;Mw{C\m%lll7}8Nw 2^vGRF`V=Lau&`<$l AIR⍪̻$R e7Zl){)H l'+^C<h~d%@pՊӯ+UNK)hx'MQqҐK]X5WD5)/Њ{.<6W ?|"}Vˊ +l7fR*3Lh7G}H"5:[XA;5WeN\s Վ&9 'm*xt ɋ#Ԉd_(wV/mW݄kS',9Z_oheCP.x㹺%@$c_5 i""8']/Qenjce G.45>O~Ֆ[l.h"XYV|гdPe5H +ѭ\¬q302 ح=XFS uSԐI hRF- VR}C[DV&rMȂn' —Qz.C|+J}ųU 9X@)l)5<*=x0[28j0{QwoemWYi=*~{x/g4C1:|$#L"ڛV g*#%lZECջKtྜྷ7ama tiC@yumL_5sQ9]On\NRjwMf |wW[}>ZDikyRmH?Ӛ^D= ]a4SMeVkNjto#Fk%+i3 Xk&UsGk_5Qg#-_?f_5Qgo'h _RL3SjMcJu90*MzVټNkR?UxiK wLӚ?Hg.ETK?|Dݿė)O4D5ZA Rk?j;FMzK-w#iMS<%B{._PD=u;k_ZRu 'hM9˰אNњsRcX.qv"*" ::P~"4hs&G /$ :Xk&qYRkb~s4U.9k&{1 k9S/=_5Q@{Nj[;yk&.k?k9FM]Aj}VETjuZu^uY5=Fk<,w>PeZ:Gu+ZpFl'**(}qٿ[`ua}8_t\>_LưkE{Lz?#HG/NJz=tg{auBT8'pِv&[!ljXy8̣m}ȟ(;0wfiˠ h6 Pe%Ğ +e܄^9dJC0j+p[o#G?dN.N ѳO !P2|/21+>S#۔]Y<^*-w]lEY0&3؟N0QL'*2roZfL@,Bu v߃#5c XbƉlt"ãdVY Dil69=U$V:z(bܻ>=Zh`NzS/td6qD۵e%@C68 SV2iåa*?F ?%˭1XTg.ޗe2OS>稡sq|e؊[w }"QRWh!,xT}Nꏾdp 2=hTYtqz|.թD=?DRyM ӥIDT 4XV pA P>OA+r6}Q~qO2p3]q"+&ȑ>?FR pL/E*RF#H0ȋkzjwdZ`KI)}ٌ tJҴ }?Џr.~[%V8IDrDC"M22<3#͚Rك=hK+Y\i|0'R:eCGWK'#+hHRaү~LRa `5ceJF{$#˪ɼ$[8 +!Iä[>?,SNg5ɥ2y){:D.>7ɠu^ɐԯ͂v*0cY`Q3a۩rxngxe mJ~.UUngW#Y}J^F* spUcC;5|,6W6KMJ̹­DɥF@'^a[EmUУBM|Xؠa#]ГG;yl} %RL>/uewD^/n]6̺2vyf;e84^vY+-軙el>KфNaԊ' +S̭v/gPnvk@ŭ싾y'eZ']N.j]UF5>Ko9TIed]hsi~a` +P?܈YHS,-4GX Ö`8CDkBY u@.NAL(,Xӈ `{%^ 8ag'-3*zOPM1 ֳiymWP\|>6gVRafV%)(v'# +&C^]`*zN!vo,ۆ~D2 {>rtTF }~'?ZRrk篗}(mMm ^ IXR\?|P{HwxͰ:5YcПggd37d#jY]"dwPx;{SMdt=t8w>W{{<&g-WPJgӯ=)n2Lgk~Zraۛg!HR[D‰NyiJ~pm_:f'q]GC8p>w +b?)a-tX,6ij)}uLP}C޾K ^ ^%9Ѓ/6V˸EV~LYW(BIQSP. ~ve=;h# ǓE_X^m>"xRF|LEX+*+w4Hb{c!ݕjgOqGYa#oX~=XrI'o?%3uO9_p2/ZswF{HK &[N^;}r>kZ_6.n\njuNй +$˒U|vgv*;tkm\b!)^uʟG9so}3)_3]GYzݓ}8\_iiiܶ\8}jٮu^vۊ}ld1\3yOڬK)cޡ<,׵ݥA,)EC'mRbco=}LxD1vk0iò72vfz;EG3RxK.Ch6Qᓉo3;QcʣfZ<.SRUq74.꭪@iBL`v|aȎ1u3J{ he:K8 s,K%Jw7۵8K6YE> ~E8?#.a+~cbKn_Px;_H{]J啛!Ӑ5L.(?R:lc>Bnw&VL!ÙBN! )H!MLB.;9Y)2vS}Ѭipbo~WMT:&S)S8S&8)SFyϘxG$L=JƤ<ݲre3Zo)tꏰ@PB+K8n(#r݆t<БuC]JEr= =)z󎓢G*߇7c"({xuyNYhn*;JO1Ǟi~fj۽͌GʦƫԠGUejc}??~qZ㣪Aw%OŎҾRGRǸ%;y7jDt8O(mܾev]!ΫLnωZ?B>ؘ=~Y~C `c>;GE쏪yxc/K,k]7cm5P(5;iMHOsfJ;B:!ilU%;1z= +G|͇[>{9- AA)Sʏ9~ou2IKvm̈́?|LO/9Lgw~|3[Ւ"=NT70߶#Ib'FiG#( ˽ nWܩ}fe;//%Nۧ Wc_=6ZE$ӎ :LpWNNܠOB\m,2Uͤ +endstream endobj 152 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*46Wp + +endstream endobj 150 0 obj <>>> endobj 591 0 obj <>/Filter /FlateDecode /Length 26938 >> +stream +xMnKvnݖNIԮ][dYd%nK/J+   )K01GH  +ϳ{>=VU_]oLoR{_/z^拿bkoZk]/ʷϪ[7?|I)~^?~oDz<6F7qQ|ގKo?roJǾroϽvǛ4g_7m-W_䱷Oozo{{g^G;3?Hozz:a}j; ᫿?/xSKǫ_:_o:=u>՟{NR^yeﯾz,Y ĺW_}ON?*yso-(/^|}*S>=RqOk_Ky9J~3G˔o~w-BpO3)?~Sdn̙fwb&~we&W?O_ٟ,~e^yN|xioS)/~şy؞:mo:7پ&jک}˱rdhb=iLc8?O ?O |<: }^O92ȯ}c3~Na.d?zA~nivsУޜ[ۛ Wٍkw CՏu?X'GLtVW$2Ib?>v/{~>4_wdgx|F))#ϰY/SW>z.b8iNl䟑nB_GTOg:}^ڞz;k+VToĘ?TQ#;~pV+}f\UZ%ЗYY'Džgй$cmM +Y#Ծj_lKΩϋs4W?%8y&M-vfϤdgt#MĽ|"|!;߇AHvԌx"Xχ$"$N̈|>$yIfC>'̆<$3!InBIZω$ ̈+^%Y237'8Ӹc{boҴޗܤ(~-} ?$}Iv.ag${Em{/yGLlɀ36 2Z"ywG#W_w~m~3c?_?9\;4YSoQOr.NZg:)\Kϟ'Hl3ܥ>~=d.9;4_ ɘird~A? a}>AW_d:S))<)5NߧD{)i=L ?=T_*?0;~I2Ӹu0j'L-S;QigghM%wQ/dyD&kכ'sܴl}`OCMş PHdO_Cw)`CVVǾ,CbӐ=Usafק¥SċW}s)5z|.=1R=\T;Dc9a'DMD}*P?'OW@ص&=w'. !V]|O/|gb*W*T(mK~Oty+Oh]#Dxܷ<ϥbsa/?7t]SA׾PĞ1 >:'RqUYWփz:/aug;VO4e?e{x"75#} Hy}M^yv;}_'r TԼ>T<{eyjvA3t3>JyKNxϷMO9z[4"}.{Z{Gלc'˺+ϗ٘iY=dc(-MoYzgP<0ϛgyj:9#ԧ7O{xj)x1sۡOͶkcn͎=5۞Ƀv%M 3=Jlن0( g5:M6'mxĠϾ=}t}cվS˂#U)<=V[% iοV;fUlEmJE*_UCU6 V{֟e;j֒i2g-=nr2؟i[2;Z&#h&v>vGZtk%jO܆LI;$KZSo|<oN~=ue?R3)2wDpV<,)Ǭ 6{VThYJ[k4 -a'fɔFHQvxjJ$ChThSiԳ7pdFG/*|D]~X(A`@g|CKߖZe.etί9-қYf`@0F&-ƨ7if^5ِh!^C(4B-B$ž {N +׽QX zzꆄhoKA\*Dx!F|WhxDU#m2p$GcB BO 6˧Hưf X~j<9xl~1RD|°gtpV܏Pʮ:( 2À[)\ܛ66TlΠw.X ̊}PYohk=So +*cjJ+dxȋN>ǧڞ*pE݂,!BA9[~8ËĨ͊-"n6k"Jɧ0̭ Fn#}QߎqxNS${24д ј xRs0_ !I ++| .J  ~D0* 9u; +as>[/jA[̚s8Κ[gO('QLب[6+:hZQQbC&fL69%+A}XG}Dvb2Op!1dd'5 ɒ :W, ȚY8bhm8-LRGNH|ꠧ;&ΙO!-#4XզtE2l`siQ,FhoF4GD7 +#Zo\2͗WHP{M!]L'X@{p5| 57dkFha-"夽al`K ,k㝢3NzV/f{XoXsuZ9hLVwX>"6űxYO`&ѶYۉ`l^ ΣprK *.*5&jK*wiI3 r +2WPMD$9/0Z1 (|˳ Xm#}~kIZ\` 7_I:eFT(W{l3?[M'vTa(ej~N c ,d3"RUR3na%j rG<N/PeB$dvM-, <BׅFO,֘9yǴshWݻJ'sƌY1{v0(p2j6U um0e;%;/rTέ{RDɥN_g7+Na7=NB.?4#U 9lL):@HiN9[MiAJGaj)NVUg䦥vil1RqWƅ`y&&ء eXD45Q:q- +kXI~=Vؗʡ]3+6Onawph^%,`|:.d 7Ry>7Y5X)'?x5;N@%GC"hFJ4`+00Ql~-tvi"+pl"U6 Y`bfuج`TF*(=ph<=F* !I$\J L:f3$,Ě9n [c +i,B&@щ0 CZ Q)"GW֡V7P+(0GAg0bXI^O>P® P`^@CxX`~ l&[^+j8T U}a>'+y3fG%D(Cw gc<~^-k^{tja7Ϧfˡnk $&g2L m#K>Z +C 2h/[(vZ&g1VUtKca6y@D|bֻmH7u]-`^e.D.fJba +`šml'Fw٤4"mk >Vѷ,wEc\^=# PQ om]v2 +uLtPcV H>ڌ&f +A:Ay O(c +) T71.Gkf;w7>RVS_&8Ixn[E +Jm[Amn0fEeqb֠-S hPa˾gZ]Ң{V',e#7^a+O3GEyFi}0X&5Ko/d~αXNʔB04i#eEF Cs=8\n1]ذͺP9u,9wY!|c *hR9\*Rvz*2z˜Zl+%I=\&WT܁斉-";ΐSl?)`_*)Na+u[iZjT:XJ +9W H=g{et a4$"O[zs%D\9ljS+«+yeuQ2M z3r2+ +B;U(y% kݖ Rf}L.0V {vav;L6_e6I>ϊۯb 4%(=W\&;5bʢC\(' +=Eqh!Ocst.Rb @څοR#^cطhXBtJ<I M#Ӧ*mٴ'OkjoVLt[4sۖb#]e'!Le(JZEB[l@Dl p4;-Pac!)3 +} +lrtQX,79˒-V?BEAr Cl N6 8ӧ*Fedo2}Fh(h1"9q}B JQFX{+T hApVmЕGtXL2y{ WTfl:'ԥbݨU@Ί2%iBޖK3䐘a% aw9AYجl:,gtL/JnCTa,Qذr$TTh)%coc([t0cGT}hѠA?搛ټ WDXKe[ԹiHt7g% +;'/pNd\1rAx!8ZuQ1wT;0x~8CDW;s=ׂЙF#X$D vD;p uU`,DWRzt;3xa(RR.4ϰB5n;`R< ò$>A䊻Q;,'zjk,OJOܵ(pf6{ $Y5 + +Q6E3ѡ `6}uF4B7:}EٔlRRAT2~.{*M!z 4bE[UHX$G xJ fuĚէ\S%V)ɮS}_a9`PX1e]iezaq]3X AB6P}DI d.7-nzu:2FfErp_l͚at +]#=@ 6ҢwjzK#x[ܨb DOy_ǶۇGΓ#SvͲ#<m/X64:И)>`< V. ȄA +^e@yD#K,3m65P.>7<O4;_~5 q7qΊ|{Q .0* $P +zzbB]c+C4|x.%fg\!%<@D(+$S V]%,Rsz#;h +bb܈`6 + +,rr%.fndaOi_]4̚vz~,-K@(F-kHYKߊ5HFyR-3b]fY#g 7 +GmU]̊e_H.S70|JaZaD@DrĞ;*//'ݪb4\d΂苶wX:Ej4@^$hx 28}-8'LfZhy_lm#B =:X9YXӥ6n@˃ؓc2laׅᾖTP7Wp1#<:> +XTUZ=ڛgKFX]6Y lj0<"%IDV,Sl vz!/ +Q)j:e=FMAF>HRd .-_4Ƕh>1EiPo +u,`me%y~:7^Vx?YB"Dl|5"VAu l xA714 [)SeiB, !G:f P9K:&bǾ`?.0*c[ݚe,Ul0`H5k$~aͯU(~e|X!G:9adi+[]d? - lҴX,giTV3=%K7jD &XuB?h Fiz L "ށǻ&>+[C!U:eBGb| ٱ" 4% s̛YWKq=va60PG6\{X:/F!=|H@T J)☻XƝ{`TVn:d\ KEO}ømB[  HUXA2ۙyY/FOkn@s+@t+ +=R N,n=Α8@$$"ǒ9 +DPQ!Ş!{k +ǞQn@҃8"m wWt=7*Ii\@unQ憦*_ч "P® Lc+H8+q7#p.D]FBOc[ MrpMgѧGkDAN g[]XI0_WcQ2<ps@tM7 sJ и>:m߶o[Ƿa|JXI9%܄1aSaUEױïdqIޟ8q(ˍv6%*d,Ө U,=v%\OЗpKաM E ֢74:RKlb ZҪQ&O`F2;c٠46Lk4jqˑ}3QgElu1P85CzEe2Nģ7b)}prbk G,q :8b(bB{  H8T3X(䧇eepȼQߕ%7{ 3--B&gLu¸qW>aFS{FDTBCAm[eo7tP/-ή9ZEYs` +ިÝﮐf[{W4dPƢe[1c@ބ®&q%CJQo%~c8Ә;4m/ԵЦi# +D$ [Pѻe{d+wAdXCw`I+XƊlF?Un8y|RIVAn&4za|\D@VYi,iWy}67&883r=Q ^`e?؀0Jδ5ΘLVƒGz$X//܃9|r̠e3+fU)nؔ;De`lK0e5w%W4+V&4RԷR& +ƠxfnӀeށ,dl|0)]ݎ,<Lm$Zc@Qք]@ljn +)A\pvg$<@x79H܁\/pP7 hi!(Zt4rw_84Q`ޤ&P玳Aa c[M q')Azn@Hu +O( P{G#X +١fTs̵ -0۠\+GC8,".9n +e +w^xb WEm 1+az}IS.&G&NgXn-Un攊\ +RM;YS95s_㬶(> ' ; +̓J'{ ʹ+}6S.k#E83mi ?}}}tg4TUU&H uɣ(o3%te@hYmaOn@0찦T][ܛ uGVQD)d)zV[r@ |aXP"iPDKAr eNq~l`$Z^Zl Q3]r2ڈ#yE|,CiKWY^ \P)~ ,k{#a49a玄4_,8Br^ ',|bjLz3xt F>5.kT R3- |}%.|NբW׋?e Zc 0/h~z[cVʑ%ZVFlgԄWkA.آlSymQ|"An-@ENcZ]^gO p1snUS"Oϓ! +0Җ@D-xE w-fz[ȹ +>OˑPYMWg)-LHv|[<w>U>CAB|aHpbWПͩOwcn+r8\eg%KJOlpz7 x +ҕ"|uȂ;ތpyc.iK|4݊{>oe^xţL@IG@$4`ZlQ&3\ ~U**\*aѢGke(܋t (Եbndhg#3sҦsdV5Qɭ ^`o0^`+ktA\pJK!<@x<_Ä́8.%y+u܁3}}iCZOq>X\%#zCa*7ܵ +Z1QY7 xzd1nks;{u;W J"s€8HUe-:bMWhD KOͧ8.zw(`pl1-3JIh=dJOyL)3aBI5,tGXqD0q`_a4" H @unQOc GAw1>t`RQq!ږG p n * ~OJ|Ә;`ٵ{7)$=}(IK!a6Ae0H,qi{6L<5(:"PH!c - F:rҁ'+(P]ʍz5Ǹb?2>8:rr(|+"?;#0U +};_&M8KuaSҠ D},)C1(wz(T V]be1{GC"XԻd$tC'393l0$ΨOY׸0XľE bſ;}`.3 ϣ(1BTBd{ vY +y"H +r&q4 ?] ܶ[܎-nmf0t8=Gis!6L\^Oф;LGOP@7"Xó +Ơ/ r>أ|hЁ1&>$?6PZ|hj:ٟ)H^onw mV7 4[|JHarrA,ƣh1]bCKB*īi9s)Kqg1.HʠB2%PtGB萺uc:#z[A ܹnqxġJir4oٔ--`5XFulJJB/Sɲ ɂCQ8 +@K_[lOR^bzWf6s2qÞaD7s4XYCxZB@%&6:؇>tҽscH8.*!Z=N@{Oo8KQRYjuSU)83Wu[;Xj؁#ba-bbdFLW0+6B]h10pe;?%äZt`A#k]Kr: HmcЕF^ U$B,V,+`x +3D2Y~&Ct'AǨSXtWv$' e) w.FGbPbOwa(?E rdҍ 88ty bfbכĎFݼ,(1QeakXXg>%DnA0R[5 ܅9^'|[+͎} +I/̒4_=hr۹[Ja & N9-mjfԎSV3Qn@,qDAgp,Lr30;|,`v\{ c~e[Y2sF* ]bVH7o4v,Rn * ԍZ=iTSb\0+ܛ(,TF+;D:tǁǁK&Fp,: 4<\_QɺtbkPMu|;GjE4[IS%e]-DsH P}o͊Y7>8$s bQ^Gsg.,H1]H&{zl`E4} r1L)B~nқUAgP׊܈$^G>>{:Bz$Z;/'Tzspl!r);HRlraHtzӛuS#G}aC!꜈V.~qAay H`s@"ۋT*6Ügl(tY+*\qH0lGB~it- ^{Pع3"^t4ˢ{+5:GK.%4SU - ¼e[ԉOj!*k& {,*/p~ݛB`,{<dnx=A,˫Ak)7 b?߁Ю?ɳ0b +}[MhS5nRBma)Ι/K21֝\X7EiX gu%4־ ы11V))R*Ja s:ȼ:KeGbz&:]}1jV8">ױܫש8pש,Tk\TυOǗ8pÉup!ש]WX >B[ ;(7`I# +*V\|שt};2.`{Y㲖OG(DK4d'l+a1hc<Ń|paI0F},ptS }B+ĉ>Đ* ST\ +{)5WieV),7zJHt~ȣt`d|?O}3]:1`Y{UzlU7QV\!F<2b cu N1H>{\|?c +\KˬLןjiFvU|=X@,Am;NNmRu,|fmD.ȶP{ic`gv;!;]9XW b$pq`7 1$d߱Qt}P⇺^aAWO nmѭ]|=p|I` .eO ϒ.ZW4CݏINhf2ɏSUq$!s~@**\*z}zoy0g7@x~ (Ե˒c7 ~iopYe\~ɸ#?!na./p@7h .P5|xBmAZWFBOc[ !ѐj =o7ux]gPLI6")gC[ތ!(O[@⭆ @XW^yH5d (/݀B甒N/D;~_u|#MUHq%XM'=7ɉ],OFվbRy+/A!G +Rs5 -XtdOBRnQ{+ 8|!W*8l'5\N[; +И{jnaT[3Xk=;iܠ7^J(f85:ȃ- (TcAOwTYtR솕7Z +HܭVp:(G:ti0enuP64G]4ށ> * +$|3|`0GYpÌb?X'^*o5SEaV0z=ڤy FC:K HFitq{<Ό$ хiӠOp* c' g>Y}ҕ F\0k(Ia,\56u%/xQU223b#"С t +|uSQKx%DU(_}}˼fME`J +wҪZrun7J538AL%gpa,7|XcNbMTV =%yLc >"i)sn _P~l\ 3D8A^XeMǍ[2@E~8tDQ]7TnF} b@a& rd nu9>)5l eq]"+(*3G@J .xolv-.DFBOc[ cWzDerW`*O"4 jDFtDq$^a;0c[[:c!4pƩE.\w C&ds$ˁ%>VE$IgL5q{X6a yS0Z6".ڥ݁ʄ5gKxAl +cGjReăȮ +N@>#P *x†FADE ΁8_,'[cS5Qt.LBZv|#2?e0xC,uA^qa2caNZrjd21|B3]DeY޻W6+%̊ml0·C"ܐMr+ZM-8|һm 6~mtmP(Ԑy; vpcTqGڨ,\57_ NY@#j I3z8Qy(rSڶֶ啺[mtm >b#@z* `;"Ak)WREmb\.p +9">0h̡3ҠDÀ+D}aXgu٩qpHP9gƑ;'ܹF˕ M[ӥ~~QތCgg{"=Pɔ L4Ǒe+i4-Tloch +;RF@4(n)As-ZW ObITe_@Ye-c6NN@n¾+J LgGvژ }[jwd#8)hO>O\c ˭7-^[Ȗ݌Α`7eS)}~UzS=imz{H|Qb+/ u(˅ʋ(G cQPW'/*od}3"&;xtsm6yTV=#&쮩RS^fP8Hj>\&ۢ]1L-n *c F+!8i"= uQL +" h5υMKl'{elTi3otib`[l<<KDFn^hT,{*mpPI@rTN]e$w_K6 (~PL@6SX̓ԣEVM P| AQPbKa\rи/`Lt@X.anzN0]}E/LkcB|iwbq A7 >:{]`T8x-F{4rCC(+=nTDh<jHE88.0*c[[{c!t]C1\u aea|5N:/8f:CQ*l4)0sbR}H +Ҷ[f>Y{ 'eYdXS%.b!njO;jD|\-JR 7,ϯQ4XJRa%q)TWg>ZT}\tAFt݉W Pxڅ7ŪVmz QOAG{KI bF~GlocH8D (QqpY +pTvb +'v<k@gJ0]jG?# *;GqWf/E-+G܃Pc)ָpQkst5iDGrCK X VZB\MDx!ZL&o}t+(]><$%J iL~ *Bc0~s' lsʔKEpMD)݊| 7p)>eH ]%#GkK-nJ,.*36й, lIOp* czORIOCld˘DV$X]9٩\ŧCk:wb|lm(T[5OD_oejoI+!*e/-2hЬF{yq _aj-B*ܶhTX-J$uw`hQ WXn~9]5|L:ť)'8m>WzHGF{$v?;Xkxsi(Rs M<ؑG};qWFeq'40@xsiQ\ZK7K*ӕέQa ;ܽe-9z\gn>f3+Dz0;D|W0|-.V._e +㢥(`P>2z~eOίt|kV$4nDd%VɎXm{bޅH@d.˙{|;0GμŮ +="rQ&WnCNj]ADzSV0pUM?]@yAFLYXCP5`, F4-,x73yZGv2x*ӷΧYz//A_dAhcBk$>7|8S {`WfbwrgǭRُb ~Fg "CoY +I X34Zn`XմDSMVl[LPh)'" q@JK(Oaڗs>ŋ|A7]`TE.rE FމW-j[S=l^(ʱ#|O։"*SF@K +|9 UcӶ4njXK4רM1XP5hQwaer"9+`w#7FD'i}k{(ƇKePWwaw0sbԶTlK +cyBO|4WZF5r DcV[l㋇S/BdhHmGz zF&~tr1@~VR{erX*mQҫʧr5(H` Tٹ +q_|4.~7%\~ʞџ{"ŸGV#(oqem%I$Scsq>|Q^K/_y^ VlO&E@.*얊67'}ў{չJ𔮳TG  ٳ>֑/uT<;yE[Ԃ077CϚnaXV8 y{ Ku|f)kPm /avC2A(xD( odBdlQZdrT&?̍ch+,De|dQy @HkS+Ρ)b El34lCۼfAE +0 +( $5c8.Xo{4ӟ: ӯr#S9' 䜬w!/ RKz3|`"`fN`C3R` +!E +-R#}v ݔԨ:ȴjYIJ0ס7FXBodeY!rp0g(F0 /PU +Miu`\* U2d@ͧH;`mSHzY6%>5]] T|vYJQajፎDi qpbp[H^H@ N⭮0\`zcpԢ]`/O|!elwʭEݶВ +CVlN +Ҳ\,ЋAre df w2@9ɹc/|!޶{+9,ŧ X+ٛgk!qqpaS+BLHIxSڃ&[nRqQZ>`&YI>1!$]CO$"3wڙ?נcbĹZrNf_lg`@:DN (dy _(nJ _SpP1-k2Ah@6X[=u*G9YOݠ ]j]EvXZly67kybտ:4KR!)7Ⱦ$sl+ǻ&nU޸^S@s>t~fD@QN*oQ3N]EDpiLB8|#\ERq_?(y +endstream endobj 148 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*46Sp + +endstream endobj 146 0 obj <>>> endobj 592 0 obj <>/Filter /FlateDecode /Length 4924 >> +stream +x\_eY̹;!3{o̝;NbO&ggqh##f534/7A HP,>зBZg{7!߬|~߿־oX̌~ߘݼ ]qV+mkfIqkifV7v+~WpÜ8{fDT;ms. XL0Q+E]`ftG uu{s_ŵ W4W6NFziduu.jk4B++)SNj6ֵk\u־Su9Z)wR +յ.;s.5eaQs]|X||rg?!%df{kØg+khL‹Zs57L5>|B^K+U:3b96¡h`f MuD>I.ao +ca[{V͸=^Kb2V2,ۼ4MhByV3J]/tm y(C@Pj6sǒдYu:;v/_IFO|a@~75͵Ͷzj>+yoIJD)y_ fJܑrƴU8mJj~s3VW]K +c.[K_ͺ|Y_7'%ػlw (!hq"4خdQAwskiT8Q-6oI4y--^9@8ZА.w zn У2h ˄Utn0b|!ֳ`:@bIF$EiDRQ +"" )#"_1nL ,l%6AxZ;>h`qldKٹN)ӱPM#QIosiq#aᐰW:0Z#.1ǃ%(swK-[e2}e'sc/u`ÒQ]6@!݅28ȥ*v6qsB30єlgd,%V B vܣdM!b8c0rVռi `|=V.Y.9@q#x  i R +E,kf0^̂PA!Cd~8!PbӴ/Z";&*8aga5eX cB+bSV4F)eu/dr,N_YLO\t]r%}qзr15sI#f,MPɢȊ I0g@y,m$%1 ]@M,!eX VԸwc kh:"hʀNT&=QҘ͋AuMsOsdx$Y +UYCoDO AtEM6;*) M: xAsk4UrY#sltAHkٶ7ld]8eUZ`})k%oOLJAk네,"8MMnO"Ý~d煪I#&ӗ 8$UP{al7Kx y+NTՀgD'J&uLx0ah1>[I};Kl&G <`ռ[abipAP8)˞ӎyk9$J婇i; +i/41t QH _2ch&ym*{D }~76il =ٿi{UC:PPАI_I:ri{!ґ~#!5,e>~ _{}i^țyug?|5ui{3-ʂ4ff5V19'mxn7.Ht7pF]^P6s@^=:_Xs;g7>רxrY{:F0I&X)S'ep'qC|'SILo~ цp^5=лrY+\!2$UUy:C)Yٌ|}rԈl;G]װ$%V:2 +7ffHiDqy[u@;P 3fr?\Egp1<ݰF]AʫMN>GXAGR3۵>$B:i z&)[1}fXC̞H V6.T||aRӟܖAner +(9 /F5Yfz>I7^.c1Xp~`0RI}fCpѢim=n3FfSBv_"PPvX% rRټPʰ' cI(] #Ѭ1(l<3| D+V=ۙX(l6MYXt)`[iaAs8hRBQ,@~ǽ![g^>k7#ԋ1E_N9槎cyƕZ?~-(\nU;3R%W ݡ5OnkCX7w} o㚬~  Gngrk 'Q[QoU\sơ rbVgab>kIcmfplLup lNBt|PGZ9:~'LU2U4U4O@tvn7޺O0w!若cr, +f-2k"K_wt-?MA.m3ĭ}8: +x[ ׉iyU@sE ˖!젖' 8?W`"l+i%K1:ޫQAo Ư{Iyd A's`AH29-~!#* >zEnj5ԐnEg΃pӋԋ_§^w""I]|EOԱׅզiFi[ͤ.SJ?t +#/hETTm9T +0 ) +oN9혋^ +ތh¿Fe<,Ѥ3aSUSɤ*"> +stream +x+*46Up + +endstream endobj 142 0 obj <>>> endobj 593 0 obj <>/Filter /FlateDecode /Length 3424 >> +stream +x]G5*MR5&_-m'f1lQhm$lY-AA>K}hQy(gZA%Pf̷ݻEB933T $Go Xuyp}Mka_ZYRn+Z_1&yG]q[i* ~uPf +Nas{όHjuoƵ8m'n`U6;/tJ^za~p~~ܮ̅kMo kzL/O4HS e뼲O6CJ˝u"`QgyoepзZ)}F?By1 ~ zq.0B'>nz>O'oL!%d͈<>xfaNŅ4GKL‹Vʹ}[l +Ch[;a}kp<pVT1JU)piLm dV7a*$WתkKU &Zt*k`?/V{8 qېnS8z*SP:8-zX?V^|'ЊDG^B/ep򫻊9pz. :ن Jx<ڙ]IY[{a߳=8|@_L0nb-1F`h{CbqFCIáI dyV YlݼQpLCU-ak |< .O1u/J_76S_PjOaVbgV@lcM_A=Er! yn#ʼn˴6\$%S9@V +h(t`@׋3md +Y8?K#^33(dX@j*>7{(oнaȣ}ͮ+#3k1,xvN7ETZ+i +G6ihK8)\' $u.DxSC; t,kո:ǽˣ}X;KMON +xfuy80Ut8g.b#\\y9.eyg&rffy¤]rG7qy'JQ:HuA r\fitO<&!8-%1g\U00b +4 %P*Mh){dO%[ _.,b/n; iN4.Xz;PY_D`yqj)DB#ri >́NVCC !O".HDЩނiP4( 9w'czKB%6N2)NŽ`p9ۤs=R1wQp/M^ϫ`Vp<'k3rlSVv6;VE-vx ܜw7JR{P)pxۋ2"vod  >♽N#n&@~-&Ͷ]-&ʴ܌2`Ѿjp{?cvVN1x>s*997F0|%w]{!K00$< :D'|&  M!J&Ѵo~z;OzW1( +וk +x !/.5`d#Q<ՒD`# +$$V.^V~ AfD}FCXa& ~[rX/r!LpPp',5X/+E)C E+֮^a?5? G/ωfTwܮ /YOXZ3蘙8f`q^OUH҉`aYij P Xdah1ӂoKUK4&$ǿLw~HGW0?DYRi6}?&YhYY%_>9Qt~v,uAvh`"> |v?C:Ӻ%r"q +,2!l5%NFp#[)֜_-RRjo|PśaȭCӞ#ptMpYC),xGɔ6Hz?(LJ.0o3CmŘ9>3'_cL0fL3cȯFM0#l6ޭaά0$xI_'-dp;'*Sj7 bEreI8:1 10.8I^Z̀>MbanhH`ͯB\M:{.j{rνV`q66S Hdv֥lV&M +px_RP6#.4PJ +!S{]ĩn 2g]Z.Kr}= +28Vum(Ij(&FLܫp5D8րؔqzV3 ׮Ƶy&㙒O |_ju Tf(K?ho;= y!sIIÛTJŰ 3`.|J MRP@Hj|c? )%\1[ }j1MTNxh)Knhb6 3^c2`) va(PpuLY$jLJJ0S\qҌ6̫WnWXp;N98VE?NԮCpƉC2\Qdz"o1[``yo'F% D<Vp ?KE7I( +TEQj0YJ@$Vk׽$/4JN1_dyo8"]քu޼a#@dzc}[eUh~ Ri8U~b(ǟSEc +endstream endobj 140 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*46Qp +} +endstream endobj 138 0 obj <>>> endobj 594 0 obj <>/Filter /FlateDecode /Length 3875 >> +stream +x[U@/=%^>ޚ)=~?D-U +x#&=4%jaMJ011IL$&~@y-]g^T +f2js;cSn +c (:mY^0$/θ4U[?7x<\?Di3#yN5o|6s-l & +购q Fqɯ?<|Co?مȅ+LkCV' fzid( +k4Ñ,WVRp +i>φº +-X{aB.}z8VoK)t[gCt1j懆ŔK Oڄ^Η/6$^\^}>f>~3z)uCJ› 9>aNƅ4l4&E!E\ S德 G +ChoY`- .`{fjE ++2PX#\ߌ*encÒNu"gOJ#;F7"o}#s +""˯i]XDp"̸6=9ϵ@xӏVvyN?@OFx| '!ߣoߢ\~!E` qasQb}QX@ Zj_~bh 鳨pLPXl3ӫ@bw{t){5O_i4&M:#\Fm0 dAa԰hX-jxWh )<\DFGDnNp;pkBFy ږ^oo~zOVrkBRA6A%1oAe1Am +1 a!h՞"W9$&D( :ҍѢ4fpdpa}/?gSb>|Wҭ4WorRt v0\"7ܬ({Ɏ̶%0r2+Vc]srG?em&CU~AbhOp^k&\T[J&(iO&(Ƴ ʣL3 ˙iBr&8VrkW~U +D_n'?4 )AM&Tn~q)ؙJ{2(PGR( GMlObj.nO\I.CxRM O1!5h'i-%{ClUR&SPfDPZIʈfl̬n4 K`H ,ѵLjUPbݣAE.<ʺ;޺O_ΛPгrv. \ xt)ޞ`];T\NA2$6+UOҜ (F| +.CEB1D+0lj(t0Wf)@tLB#$  Y:D߂p'= MeAF乃f+F-:h1$Na ̄b 8S|Q7-]uK#4Gcw.ņSqǷ>Ǐ^ G[Fxi41m?}'p#uCM0xF ^<Y P9s$2 5agP6@v?\+NK NYl9QyQ5!䄣j|bX +I5jRTè%͂Kʅz Vsmb$[~QijHM$[,b-ZӚE= 5yQI6B.'EE"2kw"HRC5P85'HC0KMiKzC.JnrWq&#M&DלaeDgID#lדY<ߡǫImjb]W<o{vz=U[0pk}"kK JM ;ޭe:]! %1 +B7{s.TVI&֝Qd3,+R g9B687#) +Qdԓ'kuˊn"fTLĸ4[NЕ05Ruorr#jfމ.1',6@5{ kfW6wc}4%-"Snޠ0$wKda +إ8M꽖ߴF_>:­M,] Ql']n&o'zϋip} +^;G>:=>OwQD +e*vI-*r  0B fп'o$w`΄Wuzi2.UU | M;I'D'ըiy~BX\:`$Rf`4VMwW/ӊf':&5=1wT40]'̣qr;%m#B} @5NmՃ~JvE;VӃgR],oAyqp\ &`NAAK#N(O._ЎAmVS&lXZPAanӮxj9Ԣ8E!o憌PT4TLfcJDL">4ݽOhͲ9"9MIgLԈ>bD׶-9,P IӔMZ|N弄g(LHOP{Iq(ǶMq ԧUN$-zµHiÖ'p` x6;;PVL[ sU|bŔ)Dfg3tu\CCȒ4$V PIDž#gHIly XG )±@]|d +tL*)g_XAFyxoʂ)γ2p/0rkp0sڢw42Y${N:,}{poNp&(iDyXő/zͽ0_G 1CJV6RuF߅m6 +(,;e\fo>B7vtﶣxm ǍZB}^.< +D“u<a*Mڰ 9 K5 s"0l3f +OeSykp2` 51i"IL =]Y̼ ѕr@H#Ap(~Pc Av|H" #ۦVw~E8b|I~+Pu;Lx_˘cGbR\9/}8eHŮ$YȬ*2[\4/A7 <(WبUрe%Պ 2Ě5yeZe[]bE"Vͬ:&ڇ-}ApWOɝ0줗KtaDsopi m*qZz']={Z+B).FAb­kqybW9T46*.z>W )Zx~yjȠJ%'tS%EyC*W}j58Y8'9-K ^H6jk0igcn6CڔyqJh9ärHmnIJ ~~^wɘ'/~lK0vCAY+xo-H8wa +endstream endobj 136 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*46Vp +v +endstream endobj 134 0 obj <>>> endobj 595 0 obj <>/Filter /FlateDecode /Length 7170 >> +stream +x]K%yYLݪ?W7cf¿W.}߿6^%n:cclrS͍/]cL fc ʥ-?9x-&mΉp̈tS.;5vsLtJΟNK01J}Oxz{;W'O%.\giٱ8i^N/>FûWVv{I˝NX7>$ \O2\y;7>N+%R)z>3|AJkOs.5ߺس7xMF~/r՟-H y3o\z{6\H1^cst$8qT/]Wv{!Vj{׹ pՅ4|uVl,ݠ'Z; *ww1J6ɘ,!\}Yw4=]7?w"!.sc!U 9c2W<L"6!'kmBtG;&!oĘon7]Y!T'*fpr4z+R;'bcnPg s;UDX}ٽ >t$=U[?+Lz$7W3 +ذj&L0LHD>q9P<:g! +l/bş`?G-/3Bg>Xu=BLRD5˻oq@9@r{[}o.)&c3΋ؼ:e]ٹ0*R4ȭ>ۃ8b +6_Gz7˜M~ 03`rwxP΂s$P w 4PX*fQ&W:`bB `` ,M+ Jmt ҳ+ +,6wUeR tb*UNrFJ ң92t 'rSLm-78#es)ˉ9~O*X)a9E-%n#4ܯ#vbD8la2X(բCNI:!I' 9:uOru¡ [CR9r4\X0"&$Lw^KA*) +(ВhlpA5Si-@;ۣDĀ9d0zA+lhtf:_nS2+&^dnPtCxxba F,66ZBܩA$|~=^WqyXbAI!~-Rq1bSL)l\7I"C̰?*YƱHsUy}:?Qwg+XEӥt//GRac?O`h;i;po}80B;%(D1#2#o !wT X0LdK~)kXa_1a@gHPW +&S0Gi%Cx@pAѫs 1W.I.1VfL- c/ƀHc:uq|CzKts1o~/7A73A + }Q>w2i++B@@##|/3E)V"|c(< +tdPsJ't H$xAR,J,A` FKp)ãTz3^We +2c|uAu:a\CVX /Cb+_( kVK +f}J$sGt@b} G`ЪT@A"P`cX`I?7RwfC6:d s($~e%Jq~mL!h S +aDݨ&qj${82n{6PeT0U),Az8lE TKNPe·{ʌT4U|*̈́ʬ43UU.ZAESUPe`sP*ڏq +( +T2/̀J$5jR*%nQt[dɛAA +>i'OPVQ -1ᓊ%F(I[}1arQKMb?M[B&AXL+qk+CL;_ (D(A' ds kӨ"r7HEfD-)CkvʠC"a ]F>ֹ=~V~:\rm9m?H^$r17Ĕ+wKsyB$ĕTLU)WTe8j62X@ԩDsȎ8'@"~y.OȋV_8FZ@v';E `OVr4'cm@PW>A'n%(GIąte}NVSBTK܄6zqPMBOįOI⑌I Sk*rȃ39R+̲P9 Utd6u 26Hv|XOW:n Yߓ+ZR /rD *Zz*g)jMSQLgպVt6ketE4Mt&[MQhIlIɐ(a|.vyk`"SCNBŚwVN#D3!T=CDR2|ek2\3pPf +KH +\X \q.sfVf˜E.(| 4~.(ܗHp!rf_p eRsgp2p6W\7̀KfCfkWnc勌'^&>p5\QϸU3@Z6sjEg3YWX!ղ9g}Lf*{f3%${䉲גg3ه9'{̝QN(gΝͼ%κ` +4=;X)9=3s*w"7ʻD\2wұ/14U،Cn} o#F^YԹYYQ]8RV.ER 6|ƨ9!eVб&aE; bFa&${DaXaL᛬X͛1$B}I@ -0Dz<}ՐWgW +ԃTɣ>> P>g@mc]](KQ644THX K,o[%u`tO=c-Qn&fgp[KmyEڀ[g*vzރ[fnJp+CLC ]hѱ'Z+̈́ƐH~}⏦gfD_b=ySG +c@X$`=yS+]S]X65)J] ü׉0c,cRCUX;U޿닧f*Xhĝ,(<*ԧz7s'>Ɇ*&냭`XTP$|5bWjeuX+}8{; 6|B6XcK+CjS73[ z9"_G}qs0mڈRf-O[ _ A*~ c{QbX3lհ@}GkؾG*ؾI&lO\tlL5g€g !bfP az0`^Qf +K00 Q\]sP\C3VS9\>z* + +^F +9ʸPT+fE8(if!(|=ǥn|D=Xb)p Yh jTJc҄Դ׾/6SbM%Aaw` #X::|RCG& ѓORvGd}2.V?B䳗"P޶Tt5fw˅jB:-H P'Z&4E<]ILA=PnGlPғ5,&?F{k =oF =~o&"F3hkat +Rj}ˤ g{(%Z9GKfJY/!~U +br1 'nj/;Mڜ9hV+ґCjwتT +V +xJ!UxJACo])dkB3هJaVX)֕Y*fJ*TJRh椩R:i_ cdM0iW۩+zh)lg%loli=loe uۛŴgbZۛ>Y#la{-yc؎JV7ݛG@ҳ4oSԐt0t5L"戤Ok+Z<#iM@34 +Af_$=+~G廮{P ﺒ>>G;7ЄQl13!5 g?vZ +ZjB}e<^ؘWfUyKCdTk EX bWfq|/[[TIgx+?EtnsαW}ˎu4*HmVsR3j^B;]@Ώ4d`uT~ϡɖ+7 JG\C=y4Eug}QYg~w9(ΙbeϼxYR_WԳ;Zbe;HφW!O>k~D~ ^N#VU次2)ёF g; 'iPtS IOOdYbsV}khkІ?P{?\:?m?u8.^tMO_?Km1gC~ /gh&24xCާ?T?k>8dn? a> f/b,wXFk=#p>΋'-./}|{;,}N~'йKנww3B+lnzW3ܩʴя* ,FeACu&ː_t㩛[GCH3w{+?N_;9}u؟lq$$ϱ7}Ut{G1FDod +  >$t?' +$Ự}BQ{Ӷquv |Sx G'b{!-^ #|{8L)`m56Ov;yVBC0;I% @Vg]3vs'$|SSq=i\G'PH\QDvjhGv*8#m$>!7~]S/r+dh4}Q̡e,$0A1aJUI?)SC)ݩ(#Ű YD 4.lǭZ{0$~d3ly%ĨBGɽg:?e +endstream endobj 132 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*46Rp +o +endstream endobj 130 0 obj <>>> endobj 596 0 obj <>/Filter /FlateDecode /Length 8774 >> +stream +x}[ȭudXcɺؒeIۖ\//Q#q~MuLlkđ;mBJ !~ +[hyJ$@Ck(Դ J.f~A9fYf͚52Wf1ie=K.9ڋ{;Gb͂çi 8~ mDQ݃09^_؋fxUN>bᅕu>XR koUP]u ]RL@I}y}ףczKwtf0Vd.%Ox~w_T/LK_|i_QqQ]qR(v`/(v(cY?} 2ؿ}y++'~SYhXƀ+Tkx WWPc^=#}&Do1XK,=ݚ: RoDu[FV%.!{*\ \)kv&H*XK^8qv{"VpzEiM`$0V \̹2CIyɘѪ 6*e;061boRGtH+M㍓]f3s[(lh(%zV|rэ4^Xke'?bhE:AAuٌV D!xE1FfZi`!jqU^l`d*#9tZ)GHb6jmY':٭Iz mrdFM@'hJQ3&5bya0XK, >P';U`"먕wy`dWnuL49>I] M  F|z|tUbl/2踎Z02/roRtp+M#KQMn)J`{SV9fUWފƈ/[JVal +SuDGkid>>hc*`[ZhEG1 'nY>Vm1ƾ VVFfQz_TγaLM}A]Xhg|.h7:lEP;SA‹-^xWCo +U4deTmI\ԑA>uyk +Um2eOMw®R' A4վ4m!c.~5U& ~qE88}~&BS…2+`V$l4m8Zڹ9ݖٛ dEb{&].jKQy!3612R&1MdHy~ mk qSmzrl: {ۘf̔ boL (׻6jeyjs-2ɮdLԯ Q8ʪVC2($I-RMmE7o$Q(iͤzLcΥL$kTSw(k'ঙU)LdP' =^n[Hu̅Lޯ8y~ %B#@EH!"LXDK1\knن vfH@D!ܳqAs' Du7bLS-ūG[r0b=vC@nS ::jxdaY֩OS/Nt:f_kJf6+g70(CCTnBјMb=vCs:5[ ےЋe K򎦸ε&!Ϙm@BdTu A6qF惶6ܲ9F7"QEoÄ9Lj`Ahvbڐddnޖё%k$PB3xl2 2l2եۅeuFecfi*m}gq0mbYu^u^u^u^e^mnlK^SEZ__hz:X_iK 2||M;ϏوOڸ0jҶd>uQ$֓d \qq?'`e:V |8lF@Z][i)4 !8}vy409;:a/tQb1 &s#0v"Eji$!]@Zh>4NRuEj@l4q]d ktp+M#3&f;>aڂl nZҪpN|uyl&L u #"꘎J>>ol=NxC;J gNZբk]omaK.f&PIg +4N8=WT hُZN7k]@E2[G19E9{ 56x>7m;չ>Җ L gOLW]L G&4f:!+ +,rW|VS@NlZ4kF\&̜頢dHy~ %Bk_Jz^셌ڨ㝾:T&koZ׬C&Z>2&Sڪ4as*`q0Ms/KlBݴ Y0̵46qE0&GEiH@[h|\r2{0i(tee'mm1[3[3Umקv+L"2=W>Rgllgb~5UA?`ZW?ϲT'ϕR_'V E֊C #0(61F cȫ&dW,FNՖ ف(!RNBEQ^ sYGj w6Nr*ʷYByK[N0X[Ջ2%bS@fʯSUVKӑcrŸX-qă2JJ.WX5-U +~i=u.KNa]#^glt]i rX`ۤ'^v.qtK9+>7 +ojnvFP tx9px] +m3t*H_xtx)4Ě!9؀AjBର8+,ͪ'j +a)~v<^:zNғׯR^gFۧirԌ\ڀF&F_yueTWAJLwG͖W2(1n5n{!P[O?u壺SMuuhoߩ{3*^i>sa1֯(} Tny>+/eD}Cd|~ssCiZygOo~%gAnsݼ5.~d6F&5rGѭR.Ҧoimݯ wj*~;kͷNӪdol%lsMm |[n:2 +:</a +pusUP ^lzm=-K2EUWb߾bHc?]o<%}r}]N]GtsW`_pa]vT1dM.蕮2IJ8yuÍѼM &S oS]0XrSZ2J8d;L`&җ$Uw ؄x.wB=L  +"ݳ_RPv#hW9AT:ՠvh[R᣷0#T Cԉ޽ae"ԽT\&\}"*u._ >?t +C19v;aꥬ5GGrbWp#6+$:g7XCUJvيRf3GǕeq;nV}}7tvw|=19m+ǩů79L|nWpqwbbaOl\ݰ]ՙàd@<.zW=\>蔉ry]?>ʵI>&*ac@rNv5ѹ}$N< c0 +~,a00:D3ڸ:~kE *۶a>?t WSAţWi#p8TE1{d4FQXʎI3yj%=& Xlun0׎;_S#vd7-̓:6]rtaSLϞ[`s<nxhqy 8QlYY /A8`?9޿:P>SxIZ}YvO~T jtqJ.`NHxPy+gϏ~o<_xFg>yV;Inah,O݋T 챮n?(џJ Qxy<&gL/x̙Bw)Mpr+'3I1>5o|y5#c#^aN`0agZQ2L9HV_T pRF}iN+0CwϣRAAB: yF;[)G0чFSq"'m>Kmn8wCfK;| ,^k kŘJ@?Eg>7By x@ɠրA|$=CxŧgtN:J*rDY?{b^RQ8S:EtjwyN~H/kYVx +.˿_i#]kZD ciק9C8HIcUA*.S)ӳH^;PRZ⨽-kRR_VcKkkֵ:|o숲SxT{L&u_nό>sǭ6T.XxE-n1 ]Q3XMϢKǶ=hG?~Mikk}΃yKԐvK/tIu2?+s \to;ٿr> E+tC_ns8<=_Z"F0w*Vǵw[un?6Q\V2?@|ۄ["c 6a@aQB&'(L?u5G1e\:wŎT9S͠V]"z;Zx[F[;B EgK~|TOъu5b$C4%i6 iJq):xVr(947zÿJ,;tU4U LcqL)$:i!1VbP{*0fIQ}ټDO]1ٶ T039/މ gC2:K?d[8`G3e;`*&.!񄠦F.zBOksVzx+?voGso0.Ak-4XR`B)~5dÜ<"mE Rgz)]N*xc|=z3^y]FJW|z0ߙƻFCziP?]ඪ[PthH9Fde0yevU,hoOyqա3eR3I`GxL \^רtufۨlcQPqA *hOv!Ͽ`A; 6UO?vu[\?d0fyH VmQ.$]cҺ~=Wg{ -w>jh:t$BO7\]fxonU_;48Lj۠% ߏi~ufCa׺\mmġ踐#m]`Y;'qM r ;[X_=LuQ<[u'ܲ'ۢ2}:ޱX% \4R/`f+}+6Ef׊o -^C ik\#It?)!p +`pWQSrC_MHNӖ[~ MB?nl'-z?"#h$"SZvan}K3e [N"fLVT9搐zfq['I +endstream endobj 597 0 obj <> endobj 128 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*46Tp +h +endstream endobj 126 0 obj <>>> endobj 598 0 obj <>/Filter /FlateDecode /Length 5258 >> +stream +x\[%Ux.>sl= }{n~ 9$xkdX`q`GxP!@YC!(J%"!o H<ߪZO>{odYӻjZ_U~w!:{g/+bws>۟{g[*B΄]Q8/v o;<:Z޺M)ԝ[o7GwJؾ_ȇ&u1>禆Q3ʄ尹tm*#|sB~c*YdcKѹvyb:v,[݅h'贗fT>FEu?QI>k\sC/[m ߞ]>tB晲g!)U;{yzaR??GuVX>*JnƗn/a!vE@UQ]:!6\磹MZ k3 hl,Fyw! 7`FC~[aCH:2p,[iiڤH}xV} }|{g6:d,)8ٴO&]J1غ6:1`A cE(JeӺV^A*P0lb/T?0g euWT]4%-luC9$ iFMMJ ;!ʇ֚л݋=*OjkgV +K`ƎLύЙBaIMH@jb kͮHbF;G-rl.a6Q4&驁"߭7 y.:,Zi0j)̊tdW6K1Ϝ#RwV|LYZN:&u1 }jD%P@BC 7-4Gh>paTgTqR<: 7 +r1x&0ِ*C:CxI:!u^h)LQjh\ +{1YչeЍd~ф:Tjν>b?"RBjۺ$9HmpԠN45#vAΆ@ +p$o$$Lz G X YU-bȇNfS }ԕB 6LH߫8ۥmCshˀG(Ӝ~|a7|wg@M36w0v0V[gDm_}89=!. aKKګJ1.n xM>u;)l]Vg]dKO}8Besv{EO߭/Vm?BstI{eAa(#@-Çc\K0>=F>Dp-)Xύ|s{x%3{֞0f܂tjO.ٚqrDEPT5Th{OH+RaS82$ter +Ι`[f`+Pi9CcP7}= +x7d 1m&̮"jj4[+ZmΰJhA[@V܁l~G9@YY +[jF؆RpNuٖfK "NF[[檬L@®tN3ku/oiEJ9 GDTso +7iI,PB#H*"%|J}dTN`t+=X +5$cXG@PXP9(6mV6 J2˰ƧyC O' A;B~Y$S]|0@F ;x<[_W(; NlcY0e'R7|U3=6SKA OV:tŭTEy~bɽjwCG݋0-CTRyq)Et3-ܜ>Aԓ*AU3$ +X8aӊJ%*'JPi(m7( +x;;iFbWsZ +X@m]O0 z)ψ5gYf l*@zr>IJik`<\}s "@n!e_YBNO *U*K Dl|T.sOЄG3jMr,RU[nB:PkNMN>XZ]wUܽ;U\QeSE=06ՍkT>1Z>c{ -UylFb]*|,5dj)jf_)&^j}~:(>eeXaqlDAsبJl Cب(E"pQhW(YOXhTUɡ1!aT9ub?j5JJIJjؔ "p j,n>0Ǡ* ]X --@0]s{K*#'N3e1-qDbR*0'D5'(a ,/CX&lm!8 +kyVHR1,G +[3tQ\ݢ` ׀R~q!ǭ⸲}(ݡFPC;qĽ0W28Ͼҥ#:7 &]d,3HY,mk}afr) +eS$e*a2; ET9V4б4]V@-\q_ >. 4nh;_e2nPJ%1Tu1- +$C~3H!1Q8'LSoeʣSE̤8M.UZgt xngڰ:jPub;^"l/]IEiW|`Rql HSRvD0O73Z9+1F\#8EUSG58ܹ]:_H!u[avڥHTLR{u׎ra6aV5bb3wvM2J^.`+Hͳbp1L`[?f&=SR 5Q )rʛBx(d&b0bڀn-;6A2n+ +}ISw$en/ЩEHq}׸Eb^nQVOԤ/o#@+R_&Buȷ:teԗ],_Klg^+Ю +*@nZ6?a]3EB"De%1Zg&]e6i5 ĕIO +.%vw R[pjhu!B3(t=tx],oaLC3]wW3FMձM|`ZÓۖRBy<(}:b;9;<˒q>t>S,C j^[0P`QTf,.Rtfkٳ6_[|$bR[Y)And!ϔNx*|/#))’Pw.m9!\;*:kj -DGJRw~YQ9,RӋ".˫rJwWJ#>|#MlXmxl7o>/|K7Yϵ籟k_Nב\ ov + 0ϲHʒ?S>\}h(Ų?-؝qN=]eXXV;QtIQizRy?ԗǞFk(o.~pf0t.*. +#%|lg&*K_+WYw 1 iϕ_`.&0hg 3ISnc8:_ϿΟ?_{>|}~/GU{F_9,.+k;]u|PztQyp23}_Y)?qY|>nO#%%S&+p+/EzbgK3Yo];l_3'PsLA/O#[vLP'r=':RqO|lӿ_1ЊNd~;d~L{-oo0Tᕽ}ߘC- _yWTZ?#zt1Yv",#?Z +endstream endobj 599 0 obj <> endobj 124 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*46Pp +a + +endstream endobj 122 0 obj <>>> endobj 600 0 obj <>/Filter /FlateDecode /Length 6768 >> +stream +x]fWU/vμ5Ty}O`KRBwЙLK4Ɩ` H 7;0\y&z$.w;J,io Ww\*f.zG4vֆ徍_֭%dM\>߶WI)8]}cUVB:\x/o0w7O:7D2MJyQJʸ%yPgI鸾'4ߏ'~Л Fe'/}bOV@"V}n4M6dSm^YtQLMo_tfLS +L#4A$96qM:"SɱIcVllB;QɯvӸ>iVqZFѓV߿qs9HS4_`cBMw7s&ΐOvK^@qM::Mh;oh7eZ}utz~v ?4͟dB"e ڐ lgB.%MNb!TϹƺ] $WJnm)hзO(\l,Sd)oaM&fd$ h~3IVq7zstI*-ǶDpPt&qM&UU/>V7$0R`yB'$/|M`f{?#ԏpK'[}BRx[[E"%+$IF[9khSFN \D'Ӯ{9>}м?{$#4G~Ӕ#-7DW.=E0Y?Z*{Mq!d 0*ewțÿ,u7hSΊs2̋z*i4P5?cܽ_Q26}ZsPVTQfy}`K1z]PK]vgktvh̲iTǿ>hwG/.< mݩYeE +?~:#n\S}~Bȃ`Ԯ՟ KWO?tN + g>+EɬBwEm#0I38yF%C]#\qӫ\% 1$w\:6$Ai$>4]#ONOQ5!U_;4;#!>.`^x喣McdfQOAd1jy8 +@\:x81,L{~1!Nܲf5L_l jH?ճx@Эz'/'?6OGRRDyݕWhVRNs+ϭ>ze D)(^.zTu۩:ox7dzqޤ|23b;P5`Ƹ5673< 13/Mk_BXZlϙl,4Ƽ֍g ~MđircsX-ck 8V֚3( j*)NBmvtOT{FsTH=;2;eļB[0TdBNGmFvNms`hšchMn44UK`RkC&+g2(^tLyp !yHL-rؗ2-E6QALVF%^e קRfMsǑ2;b⍟.);߰1Π]iOԭ.wZHd]=9,iŴM0ZG?U'PjtfߣO\n,j?/78ȧ-PKA9~k#tSxLx/0(Njk{u{Z+ej헜FrkDĎ=X&9Z/%0\@N#Wȵ|/ 2.syO7# +9fE="RMF\~ycWz4xc f Tmf +[7j(:u<%R(i@2 +ctfdCB0Z&f]cm:S$^q#zѠ +YRuC 4^#ЃpGTFMV}# +UAY ,5v1TYI0!bvf_Xi݇lKoifFB*~a< 솎YИ-*ش⇒Px$(36(G? Tlokh>EqPӆ\q]cjbA8&^q0WH6#< A[4RO\䢼L w@&HǾ X.NCC'3I@DόT@wBP47c74R_^DGo<J& FMFI  HEռPJU>J=2Es5L%&bج@6RA9n`7Z܌%}kSƖY8E_F u줢&ڀ{i⣞QzGQt'y +eAyYTE0^P3w$ywQXA ,. ƵY*6Ђm=<} +kB֧BFOA9̌T@`7ZWawDM!wGf};5rQKRR> 7;+TS'똞(Ǟ"u9I_>F+ ǰ'1^ֳ'jP#n9Ԃ s!qdLXI ҚJoƱ ї|;EŔWGqC ]=|:/̶8xE>D/9Ot ʳ3[o5~#O]*!ƞX$L'0rפֿ,4u,7Ȣl_y<ùǾ$'1ӗ sZϽGRǣ'\`#ũmޔeWȹڌ"VR8j~FgÇM&eYC/XqBxR88dQL  *p˃B0 + Ta^> _b8h,2áqYd >R ŗLt[ץ+i]=urYexȞVsOc΋W44o0qeqt)+d$vtG w>W߷~NqϙH QXK9V-TίaԊiXAiVaq\dr="(eP +GU;v$o?٧yvʹ-> +b>ǤiQ[[W[NIKǷ0JNi8 ƈjaڶs LʡÍ)42ƚI0~ff[ϸrg>$B3GDƆfC2p0Y6H9X|:.x^J~JQ Բsi +/AJh"Ƶ9 +]k5ZM9"qB)6F5[ĥ?n\Ҕ8}W_{V8)S}}Oڳ|da6uz:s^ݳ1xYٽYDT;jn +*yf~ۅw9,O ]1RZZ_:dOM} T'i$P9Kd|YYjd:,U\y숽UgV1^fc3a3ӕ:Х;k;3Pi2mwN\O 㾞R0F$mp`PfG{_PR0H +=PA+}DŽ/FOE1U#cӗ7b$jp8mKxxy6Srq~v=|婜yodℑE> o4!{V<;c!mϼPa4l̤_R&Weڙα|B}tڷ9ś~Hxu9ՠ6@R-28Ⱥ)Pg>q}S~|cюkԏ\GA3:̶& +endstream endobj 120 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Tp + +endstream endobj 118 0 obj <>>> endobj 601 0 obj <>/Filter /FlateDecode /Length 4702 >> +stream +x\[]EnzΑPZ(]@[r(*iՓh<!HALT$`0>&^B&_|`֚k g֬Y3_g6VabOlkj?ƪ\1y}r[qhSm޷؊[HSYek5mÏDF0n޻Vo_Fim#16 F,MO!퀭#xe=ݛwN)d4#8%Gcl֦~hhFq!|]Ƞn)Bg*Q]'w\~ΫZ'}w{vu9q D}cT}loD 8T"JX1nէW~-wP>ܽ|>Zl J͵k\9Wq! `x.wM`r)Vۮ҃w]>QYoFsXQY# JJ! +-͊5]ꠎLBʔ͛e>fDپ Ed;~ӾOd&$Fէ^ $ mC86/AMJ4HNFװAd,G:2X 0vʺ @ba_ݖXk,9Q>,wժ>e2*SUXJ`A:%nqFAgn +n=:2gP3pkDx݋fRf҂w%k{WD$ C~(\éӿ;"3L.ŸgGo??[,A7Ŀ-]K 0w^^l]~d`lJGl_6z8b4o{"p1kr'sg#s;q+@t~WG6,f + 9 (&txEי *HrN"ohsd4Mpi"^[\1$&V$C `WX1 +c+BxN¶-gd< Ayn3YI)eTA*/ =X ^}2?d.vҙ +kbţ~-\Uڳ +V +8m-ъk]RtHš+I5@ƭ@z-ʐRkH2Uu +-uclƩzf@L܂z,$D+ + +nrs-CheD}Mi4`͹ಚ_rY-y 1Գr24)+^hQa3&XDBwe>b +!{;ɪ iѮbDϷ"9r|ߜg~}ae~8J$ 2myyJS&89a|vN2N!fwE%mRDLVm V rqЩct/сQu҄BfϗϣNz#み2 I VX +a{]YFyAB#.jG!P?A\ "ʍ*<:<PNOY4Ҩ=Do|Bʏ*~9g S+}{m|~p~q W@REY:$ydmX@p~96[bV3Q:f"= 1t9 (RCR(*y;le"!;kkm0K3[&%[b 5~h- |QVSˠ- ˅A-1S$Аo2B-JH[Ď(`NJ xBSy/ +Rra箭znf +XTNqAU<ŅNX5+SVSp\,b\o:0Zp {`cKjzQSMGڷH1sx! 5LDq.fr +di`9TykU!`Mbᑻ{';ߨ`5uhttu6Jp^Q]l|cFΏm ;ɱVrq@A)X3 9mkquxWtEhR|?v^c1+OՕz1P-K[t.aA[,w!tJ!eR2:#2$^[}0YB( OyL @.V ÒHc8PDlV]b+"AXIX0p%LtG8)&hܴc M[0&Ne!L=)Ƞ(x. +_x8&%.|AMCWI}!ЈjV+xdJ! 3uj i(֖5*\ujjV{[ +ћhїnYiN)L%UV~W+JBݑN`/Ғ+?@s~!H!K$3jN׽)0ʔrȭ}i [J.@^̺"7~͑Lq6:Z?+ywK[ @ PN%po U8U߳+AaQ8y8|s$OI0aHX|N> +z]O owt9W nx@q…|lcQ>ܐПs/oar?Z8ݓx8 ~:\&=FWr +oimv#^̑t cXxHn#nS|aǹ|'aC3q؛%-Il`38]|BCO_M/HN6iH0ON>?m?Q+y1/ +Xg> nhtJ/A~KGMr^hO6Ac?zxTu #\~GEra4U^SWٳ1~|j0•,ow>3G߻:co?CŽk_BBc}sjC `Oھo87YG:oZ.0ibzӨ + ןc*Rs)NW`/MăD$^ Tjؠw_( +/jm냼kL6 C_S܆ d\ +4pu͉Cp<)9`4G^78L@Y?sSL-YTp,W5WϘJin A)5 )+yL-ȆFH]4R&"" >ݔʙ>1<6W{!}_03:X@ +endstream endobj 116 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Pp + +endstream endobj 114 0 obj <>>> endobj 602 0 obj <>/Filter /FlateDecode /Length 5539 >> +stream +x<[]uս,U +v,[}$y?Jm"ծpV`]MXE)LWH3(.IuIhK?G),g~ +5gf9gB޳ޯ9w10_}{ߴoΝn:c ho7/\6u4a^8w4V;-ݝ\`'vv?Lk;)P9ax?bs~ +ŵnGO?&co\yfN!;-I))U{f2՝vZhmNo).o/Evxʻmw5W[j{'к4 DT_ +c*cR_RS[eBLrbDtc7@ƹ`@-*d +Piݞ,f6s?6 면)#qA% +%ٽ>¬{ztneϼF^(gɋ~2->yˋOS]//>F2OX@`\?rB%eǿ Ąm)c_) υ Mi<"6ЏZ_W˘ݻ?*/^yx[ebS\{¨1޾Ub-=iTdyBuԆ8s'3dU;z`ӫm8h 晿I֏HB( qG6~c_:{av{y~_Kj,D#'#݅|$: sr1փ +hF'4(cSEl6Alk^IR;:cF+/ߗyPKPf_-F+]9wy CBT)/† MMK L"Qm N?%/NP*%QHEʋӿAه +sNԞ&95iPf7v:$^O~?#?dž OSzySSysg!v*{g~VRف|_bLLZERgʺES5t\;gr 7x+a O!"J5BcL7C 6Ir'qeg03C2hLFF )MZ3Q!:%yr LeM6. ]xR-,ŅAVd(YE1r$ل(Y:, *a_ԪWSQzsDXZ1'cr&^[H*2^%:P([Ѳ@UK0h¿Fm ڀhS +8ɳeI/"ҕAw0k kӓNE(CC{f9ttH=J -PLRZYZH,!kf +>b;>$"pF:$;D2$ B Zt\B}.c8ZŋszUʂW+GE$*nIPMb" +ni1$_ωZ"U)n(Ö 86T8 f,h#RQ>z^]6#9l9%QpgeKI/ p\@+VK͘Yic+(1s. !Tz~Y4PՈ,&„"Wt~0Tyf{P74V !%К\L%ĆmU +iiC,@0ZVӮ|kU޽7iYܹW~.  @=A I3p:|D5.ĉ2_ + ș< {o2FCvKvʺ4K>C3[;ya+y0![;5>28= *1 gۛ +0py +$4&gsЯ&S00NvSTm@v:FEJ;ZG>Vf')E#8MIJf^8%: : Q;;t"%`b 8.P>JNr;7+˂  "k[x B bMPg*Whc +ou.Bb^6SqLLFC2 +M̀ +x + kS#c, \sCbE91c.BziGI >7f@m 0Tm(`Ź@= #$P#0F pI=sI3,LY}4 VQDa<8 60Gpҩt_"g%S mqqQsUI//1ň + ֥R +.s"\ z ~o?m( Z l%l`{H,D-ʁ;:ŐF H +OksNxㆺR /HZ)cCSHL-g41 ‡+U( _e=4FD34y lRU|ysTh\Y99aX%0 x P ٴ~VYYNCi*X3TTe5{%g.M"H}A7YUQVD +aL=cs?t!~OhDtQ.ֵӫ SL*$eS70]ճG=΢J=t4 L`#L^YPxKXJK qdO/K)d'^It_i2/@ϖ?,ُ+Bc|\70@;% +>.x¿2 z5(),A4!<00ނ*BeAh__`R ~ xFTi4Jό`i1Pw#W=Y+UZdfm'j8 Dޓ>FbtkeCf^4)A3!W!:{Hɹ;@ˣuB01˄8&kVAJ8M{E'0񝶊Ol*ٞinN,zXCaZѓ)p*Uf琓ܵO/`KRR-7xVLTVJu]јz4wNDwe + +֮d0و]Zrה'qt +1,.Gi/3I/k@A.H!ߧ~&F.UsOd]zdYvx`#ܬH,ecrQ ~4˷1^"X}r@Y0E8$zW1)rŲCZy1 uLWW}Ð7s͠X&(Ź"dBL +T/r F bzXmbpysRv7l Žnc3#ocsWng +,ci4+uUxNy`Mn,&X$4 `G)/TH`6֭UvtrB}\ebEb?0NU+dx+$bP`. %SSi pjN+cBXRKTKt7aX [e}Q5BM~xo|srz W*YZUeJ*ɫ +&'FFSql ~ +endstream endobj 112 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*42Wp + +endstream endobj 110 0 obj <>>> endobj 603 0 obj <>/Filter /FlateDecode /Length 6050 >> +stream +x=[]QN{ۗ;qN>vz?4C(i,j\rQ-!P"BT*@ +j%J Ho ̬sF={cּ̬uRf:+n~3&n~ic>_y;{rq6h]&JĶ|?_˳װ8modX;HJ-FS!`26 P3o|{ssc +9h)MLNIَWN3;hA8gmAq!|̈́Ƞ4N3Uw/q^Y_+z<DZt8.@*?2sEVup1n#o?/ީZ9&,๋or\Dž4K0ߖj +/@:nBݼ8NvXtóu*(Mڬ\ Vtqs?AΊcxlHSR_$/Tĉ7 uBK0;mB2aT_jvG7BP,2垌v4H=[w%{ptzoNOWE<ՐOW _b-mfO +ƺwȘ$Y^0yA VѼ!!2K߇ϜA sKb?Z#vSq6$ǟ[BtߏȅJ,f:Dt7nJgTTo09 YZZu݋: '44{ t +AJ=d?[|]xPgD,dI@I:P/@?!kd!01P=k*NKH]~I^B- GTlshE?Zz_f=g>VS1sZ$>wkOuNֺP)ft2ʊ(#}36။}|ͷ3:<Ǟz  +^jC7{ + + 뼒̍p֩j b $d!J5<ϔF"iET FB-0c`<7{mgmNj]d-:ƦZY[ l{m`Q!,i053֑\ h,)'rܽvΖ7 ) +~cXMz—]<<n..%v͆ $3 +$Aӻ;fծi6/koIJ8laP謁Ȳn 6Y澭Dp G= D1ƬgzۺcD߹θYfY׼)F#o>1`=}b370 :Ʋb ? 4 E t4h:p(!v}4k5|6#Qk̽݅ēf_sfvq?WsypSO6O[*4[XTjXG[.ogJ1<Z=NK 2Ư/ӄ;$" 9Z'?fC +gLɏ{䘋9,ԄAZ|o._<,I&ԤǒBJ_d_U?-=4/Ϛ=8b.C$7QNxǨ[TK5R)ᯑVX+e( /xK^c]Yly>n7$˳_h=kwe;i Fv,8P̤K!& ,gR,T3jRnC+s diݟ +[8i$l r۰xtL$7]$v-$=+k[&1eL\G⃁Tyڮ: s\o wb U-K#4\c(C?rai#^:=8~i"GlO] :`MLs ئstϕZk[ޏ KT~ *?c8\/O8֊@0s\@(ǧV z\G5l xxza3lԧ6v +^PL jKf C\Tǵu@+U+IU+*pӨB ay +qPV&o( q8+˄*dpyc5I ao@x K|\n`jjՐ@rel&lh׊a,X7^]F~m1x1k5ЫKVZGb/UdЃ1bMOρ{Qw_eEYXMT$0JS =#8ܧKC^ܒyif˸H@jmX '^ヒUBlg}%9]'I@&+팭d;#ɈFR .aʈ? o-9$ $d3u (dg\$!XFf[a*@h"1\ٴ3 (q1x-Yl/i2 ٌRz vW2.ʈjl).ni $S .z%7dKMȖtli6 !X~eϘ m.g*WZ-S=:-y}'fIʊ@*F^60-n;̗@@’A"P&`\=\R "Z}B}M0nz+kZX;RT3%إ`7/2^)4[ +F֢^q7jNrBV$$H"ht#.-0c-/`sh4ۛ5u|!'B Ǵ/U7aI7q7=|n"@`fEpQ +E!hSD#eYNT_$ʪ= +6*̃t30XUJ M&![PJspݐ> endobj 605 0 obj <> endobj 606 0 obj <> +stream +x]M ԪLmbԍ Q/@( o/Pt$|Fh +endstream endobj 108 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*42Sp + +endstream endobj 106 0 obj <>>> endobj 607 0 obj <>/Filter /FlateDecode /Length 3851 >> +stream +xk^Eu[.>` R^˝LD +n iM0v + +FL$Є&$!Dh@ϙ;s~_Ӥ;3sfk̜ﱢ]4/6P +\ c64 }֒)"//:XȸBi_cM.j%Tm\&NZQLR]M[WsW7XIVF٭M[|!57ߎtqNr٥_YR5cE ayye!eyUe'emiRzar~_[idFԺj LZ[0.4RB)>Y&wlfh˹ESGs*OSZ*b`v?aF?+k`u qlm{. q?Q?M!ЗElC!%s`M Zoq#P5Nj+U ycJ,lVÕ[ Lφ`R +gޏZDgC[gbxj[B32eՊI97ph鶟͖ u3`>[M-$ naGJz|~|tS_8<7;_FCs=IVb؞2ڀ n(BHkFa8 pf|򆷲 1$Ķ87>oR?[JpKqpO㸧D|S/qH/INٌ_d 2pɷ;ќ&Dʸ(e/T)oA"õ,oX=˝WIGņ7 ?4R6e,/o"Ɂ 8QX:M,pO&"Z{ShՄ*"",.R_R: ;r7;\~'p8>)냖9\ZƚbL?[wČ}P 2}͍Fq݇ dUj":u:cYkV8xG]ytSR&ptB@$LV'{Tsig͸֚f<?_o*o72t"^ɐ-oP_~JPmyҹko݄!bonXKcv{)q>= II*ꥮ0P'jZ|tX:}Qj˛P?;:Yh! XۑѮx@vI f +YyeS 5]+Ie]$-}tg ȏ<&9#dtԗ-}&e1_Gc v +jW>Dtvj{?_'~E `O4IUuA O9~j;HnoJǎƒ: |O$ny죭4<)aΣV{O+;!A*d>RZG_) +:c̔Ugv6—aX&>Ç1Np~]]1z<UW3s; DLtӹN$Z= j +%8pT 8bN7R=GG)݋oθf6#K:%̋i|be 7u"mN@`` Qi%ly殩$I ,/4m@3@p0-KH,adt#" +W 7W%p ]Ex%LYA x!+T!s Ӌ13T61Ќ% q--Hx"B_#m13 \MT͌Q `钁RS;:ZXkgǘ@5wO$'hXT#BK^] aLu{5 +0(ky߅ k =majY.P'kG;rj68 +$X"?5 HG.'1Aon9sNPn;M:MF[h#:]ז,1yLyVL`ж~Bc}Sc,]F@;3 +2^.8;v7Y+,ѧѷXBn0K?J@m-漼d̉2ۑZ34|*x(֊hPh0DwWޓ0'$vn`VLjfKA }EeA˹fٌU?X$зs,"Jd|㇈8qC)=.i@p KƔ}M˫PP8~7yxZ@#*ʱ#@y+[g>x*,w~&#i~L<q 76`ZKXXjJ)`S'JT #Vx k/7=MʂW6yC-z蕖D,,oҒ𞿝6rr^]vۡN lH'E,"y ߧ!> +stream +x+*42Up +| +endstream endobj 102 0 obj <>>> endobj 608 0 obj <>/Filter /FlateDecode /Length 1457 >> +stream +xX]hEN"&15 l3TGcDBK傅 6) +U|''Q|Q胠B}E +Ut̜'!3;sf|g|23޳/=y\RTc}rݟo*W <QLS5׽Z pÈy ƁDM80.!!tB)xAkc4g<~[k(4$q]ȉ5lץs$>3Fyg^4_, a`YHYhz=.Q,y2Ru}"ϲK&`o6eӠouYa K1WT,M"L,׸uuDC/`, +,!jj^He漯$TtLGDqQD{j<\3M.Ir 1\ɑ*EuV+F݉VtY2Q$HdƠuL(QYQv*gk U"Q0bI PL~7i J@BA+"b TID^YÕ ]1^JXp J[pxO8xg2|F)\cۘ uzun]kcBn';Dw;E-9p +`r'?E`xfTڤ +>k[X]`ru(xpG6Xtka>K^xM崈c57́)JI.$H2t0(56Yd0,v-\Y'y +gϑC6HϾ9X +}  4mv (.\'![vH?^ǶeThEZuol{vK|@#> +-=wtT~ 2Q~jX[ìe } +endstream endobj 100 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*42Qp +u +endstream endobj 98 0 obj <>>> endobj 609 0 obj <>/Filter /FlateDecode /Length 3512 >> +stream +x[m^En]JK)m߶o۽s)-MZKԤFTi` (1b DcQLL 1J(ƏJP4$s39}4cg̝3993]~@p{o}x26yפJ4M_;?IN~QqX<;&=5OҠ&yқ;qESP!Uu^{OcDU@Ӳ"PęE{]2,?ż7n~7m X?\G2֏/90?ylRyWa*?EJ[ߒ"繯 OVm  \1Q'4H-9d^r.O3a^248C.WcLY'_3F2 #jϪ/m:Xw[(T<fV܌B8aB~9nlj)CEf;w#e<'"rhY~Ƿ4ˬGqSLFXo~ +kl I>smUFޥI7~[l 9tBk T ?W>ԓ7w6ΪkAݼ/cU^()MV~Vk'*˽%4("AYQ*d" R~F0" n~aWfQ]A֒4v9L41v[;ịܙ[5SQ̦_E"Sח9`t Ay;OVMGԙ;Mg Q/;^lk !۷Ѳ 5DFV5LƠjd_C-z#s(@7pGc&7v( }BLS; #L'҇x iDxp!?pkkI!L1֙SeIjM_P +\HLvgYJ;\  1?5a Zw +&l6^%' _yOǸN}zz`4+gһ9ywulezڟU\&`eM5]t@1ڊ G]\;c_w`?7eŶZ1)$=,$ze܎bdܞ(>+2-3f$Xۖ*SLKtLާ,Wh*/* *Lu)I_&"]DW%r^p;`XJUoK}i͹?]P~czvQgLX=)kdVpP/.ߌj,nl#ϫuu-L%IWPrX-ݶY]7#\%Qx/B;sX3` |$w`'zk#Q6BEblEbk&FNP4,3w`|-6 +˒niڈ}Sn\.??%KI;vL@FG2Zlx*)nnRƝƘD{YV*'P,kHRrOlܟĴRsM;]f22HЦM;m)d~orLG[-p@@oIiͪ;VL;.mݐXL@ǨWs(&Үv₆>c F4ҷ7N! ED6 WCnTzIa"r[ $ys+zg`Bm@]aIJt:8 1Ҟ##a <ě7i-p 둒vQI2ݐZr/X X.r, k˄ J!G; niʴy۷|X +&1-` /0iHk+5o@״Cv=rN 2%"ҕrI&V޿]b1FL! A_Župo137P&^ʨu>ӰqHd\&^*4{@7A^4J/(o+Mm8쇘4eP$t:Gm"#xc\~`h-G +Y[ +g`v fK= Gs;u wTUtf(k#n/Cr;8~f,A)ӎȒRw^lja[}z1AO06mT38.dANJ/BnuQ;VoNǃ"R] ށ\Tr*< ǖXv4zEktĉZ3B; nȨ,k1j\ϑn>ᾃgvuZ +? .sFMV} {t.UYdokfI2T#.,Ǻ}[Np=>U7tǚta <煿Dwkq\+|+[񀫇AC3 (oՕ8_"لQRūdd2~LFSyA#B ghݧYgBV~]kKFP5 yܙ'|V%[.c|P~?j$ FOM78vçDJξ:5_} R3 ̢b*?)k)W|F2Mtml \?-%H/ 1V[јi"]I\N̏xɑ؄FfWAc2p,ט{M/5Y:_ꔗTM[%Ѐ%lk";B%}T>ZxE$> +stream +x+*42Vp +n +endstream endobj 94 0 obj <>>> endobj 610 0 obj <>/Filter /FlateDecode /Length 3531 >> +stream +x[]USЙP:)\98ᣭJ05c@; "򰤍 (1|@ 5C1# ~HQSqs{sϹck^,T7np멱k>w3u{T) z{pP,Uw,J^vQP]-? [8xXD3D>3VN\V8P੒,%dH`f,}7 h\&(Mt9wN\a0ZyE<O@rVYvbh)KtP)+3H xƎ1iLqX*Jݥn_ڹ堰1)S-'1de#O6CgI3MW JYqߙe8XK ;c&6*Yjn/`0'`0Xa~$?+$H@g9tb[NoRr[2Z'8,:_qrť'W[ebϬ#&&r$@K d]wD$iJl=޴f +*ttlmaL㦇%Y&MYi,Yg֧(Дis"!6;in| Xr6"=24Mo>\vLDA̘A4h$ I2yY!5SZ mtWFL׼c2 vfrKI=eB1ӛ~cl~$a/ ^ť(zȨ7K?:>.'gUcw2. >B%~!BKj*mxQħg42(Xsl/[IjF + ̺G`+VmeA ̕88w7kS#lf~(o;V׿BLH&OxXܦ`}'].}OX[1t@ȊSuƠi1:HdaСU4-ZyW2ȅY_'[#X +2,VK" X8Hٖ9K7m h@ a XG#DUw:KmY0|;IJf +a>8}r*fE̪UJd҈dz!_ 4; RaB}ԑFM~AYe :H$CLњ:@E M}`R%_[_VNd7s~Yl~7JMXI՟rX TD*') XWN>ڲm1$Гj!"LKG.xIFp"*irETW\"=v?U +n?08#ﴸM_nE(Hyyք `N5'd* qQ[R.fU([c'*- +/&!%X ;po9;"#WF˨E40δ5]*Ôb #5W(c5Gc#DY©NƿV4T L7Z?]#o>r;!3!Bz%ZN١Ea5=㋽Ud%H(٠;eEѲ^ʏGFv. 1e +x˴F(իCu%‹T$GPLt͹|DzPKnYc%J(WH* )9|y),1 >LK¹ n PQ&itdΊ􎼶*qޤ+ 7@HHӧC,ZFjJ|u__Fŗ#>bOj~=IB9Qsɯi&)ʍO?@>f-3H*渞fyRl'(TX+ft}R %$#1?A]NQR3:WjL+mag֞M`%vP>L;[|Z8{n]T9K}UR]#}lKBHme +ZῘNjőnVK Ir%/~p g=_"7|Z.Fzj={ $_P8T^U~@=l_Pj?(cn]Η{|?"`S`/~7}AǓX~TG(<͍[b<)}*0Ci^ Xx_,AQ+w\un%^VvzpR⪭wuN Xʇh.7ڑa&mcBɦ=Q`wkiUʓ@ViΗ-teW:U/$PDdͱb*ޮ%W55y2{(=啭9t); #]`R7z9m) ]4~oG \ 6nQ(EfBҿ"K:C ^.uN:ȉQr,?09H{ؾ" *诣0wc <Pg1Cy2AZ?1V0zaEW8ʮX\)UpwTR0Q,|n GQPEfs!\E[,M\'*cr +8kQ>˱xWXyxz#0ɷ8Liqfyrq٤^j˴'7=),E^,ps"O%i:+KgI~ 8ITJˬqoEa^>_ D w^yq!}s,J)| b/m̂}`DkQ_j|6[0_1Rⓗz},qu^}=w-y}bzoշY˼cck" +endstream endobj 92 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*42Rp +g +endstream endobj 90 0 obj <>>> endobj 611 0 obj <>/Filter /FlateDecode /Length 4393 >> +stream +x;m]Qv]Gq鋓9}! ǥMݐ$M(VRUBE/DD(Aj_P# +R*3sfλ{koj5̙3( -~?e1~zeJ眯8sw^ҏ(_в(CF5cDzrvco[.ehԥr`R+L;@ҳN#Kiu3`ظ2@BKN`Ϧc߭+!}Xj-64[4s2']2rlտ<5| + =A˰U2&9sqeij,vcS.a*QV\Ů6I 25GK!p`5l\&h{&6g RX]E ؽgTr+q'}=Nyy G͵80H_ZNrN Q*!*ֈR"!|j^.]2+Asl).k$ĉ^vPmWٙwxd w孅yfpq 5jC][>y/Q?fSlWSP >5kJID5^IӹR.,J+?R9U |sH[ *4Z _@8$@",N_LaG +}b:F &m~-*&@M%ي1hx#S.lVid{1pѣF۪5ra4hdq ^YFt@Wc2k2bmj;x (W;2m%%Q"L2eSb*m5%5f=Ź\N&v/߱vcb;`OKKg vrg~AqzIn7ut|S4\>^Hl\[sI#d~ݜj||zq'p[ll^ԁ3N:1g>{BϾ7q%3v]exs9ӉDTg>tǩ=q /@.ɐ+6ַ_scgYƕ{fa:0 bTB8O( ,2˵ml~\~qs K4#E D K>J$8D_-gDxe>_l 8 ~X0x;Y"1%Ҙ60]eD9һ 7ߡ"U,|=C> Nq{lO"$gr]-_5N_rZ ]}5ĵ|Ũr궓Z-2Cz:z Zz_bt$^L&54ߣ\|K~/MϤiϟUTqYǁf\"˲t@(t‰G[ضٻCp`̭EOF1sR aS׹ ƜOp7RV_G +AqQswh`ƅR̙ղf})նϭ*C[D-zx8hh|NfhNT$"1yD 1֕WYKS,j?}=EW_a΄$[,TRuo僗`MAqlnu1bZ+Q3k! 9=\'BV: ON{ B}, A&!RbM9%>``WX +{:ݟAP!VU/qڒh|7dVoؓ)[d6.QHCG<վ #3.'@"'[X?[ZObrMi*YȈtx8eSVn~WCnuPsxw>[vR&BjLL'hBRY4/<4pP5 bmAԖ- ܂h%P'uHJ p$WOM`|WVLv5t՛ǺOUWO`YkѢcfV*!D!kAȖՂ3Hқ>R,G+ Z\x-Hzj4L][]Hy +^4NQ !3=?42;KnrG:cOK[}L'!7+>7Aa}g{rwT>ksߤW>=h@*;a\3 yW mN}lY% p["ʣ\ߤ*WNGSe;U +9Wn]'Úoh]}aQʪVI4E{lڣxNms:RHTYa5N &UiF|oM/^C=[E:8Va\ꬃ4NtN# +·8]j\&Io0Ky/d#V/3TQ?3na8XD(Swh;^UR< wu:(cXV(v۟Jf_hmc2E8֥o-:CAVy9UIYvrwXÉ?}yp'eNP&wiD.m${ݝ|1{\Ɵa=gwqb|,K~&am"FMg`U=lsWw8X$)KϕFM_5|ҺV>{ uC&'V9^e`ݮ6&fdJ3(Ies"8dx3?`kHz켤WHDTz&GĥG`{b{UYKY uC֮-`l;R@i[+gxdAX +endstream endobj 88 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*42Tp +` + +endstream endobj 86 0 obj <>>> endobj 612 0 obj <>/Filter /FlateDecode /Length 2363 >> +stream +x[]Wuaf.i$L LIُQGӖ+UsH""P +VJE~-֯"XZRP}:}C>r^ks\$Qjg#_# }"!0}l4D4z&ZkNs܈(0Ind<ΘC",4DGQ B|R`$h"8Xp2L/&x|3J{핷;=s r^%ʜ@T^yףo{ܾx޸izjt<ׇF6( T%b}}•e$, XD)SM`R )7,OSیT)eYӑGMxsUAF +!{?ӡM K;&)@6M0Oe< +LU"ѕʔ2My#4 ~x_X!ߡ%7x*!őփ7#شG[@r;{bU\ɇPj! 9b~6Dc7sXD6\E Ӻ 5`5g8|7{O m~-`CG4ˈe5fLTO#W0J>$c`ixѪ| GM!NxX]+lms|I|:tLFhUk&l-#" GO>}d abn\WE"/`-px>.̾}&!>S;fX3c8⏣h瞀:@U+YGy/XElL2hUTnx;؁g*o"Y}Jv}ħR}0tRy^X;FH년˚mz-l< PI8d E8D}V՜X}ŤM\QM,я,}6?gNێ }]huUQ.Ehj$mTwÄ1ӳPbi",VL&CI WY٧+D\eIfvЩ2] 4iB $sĴYvnН$L&uDž4uKiD'Kd3O63!|(. J3 ;ʋqƤRuV^d5/*Z4ڟ˵' 6Ky K+9{<䮝wŞY|rzJ [2mf;]PHU9 X.poY.fTH-?IaWف҄/> 4ἓj[:Z۾7{l‘V.e~jۭW+g`)/yYq4<Z[.y> endobj 625 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?S"ӶjMP"-m sSc)RN"((KpЦN +3\fԧ(HE%-PIEҊLSP@Q@(4B)I4 =q&3OU>=EpZ&Tq_#^"͠}sAZ$\.Y~m-BsS)\ehIvsRb7mCIdpiH)qMZ3MnWᥜڽXjE%QEWIϳaҨZCQSIDSuĊ{Lު)F{0qPޙ=Z3@Ľ~>`RP+`r~֟ n:qIFjfHiQ(r\M2 TQhLi*UҦ[ |S@ǠybF?z*Zl0`>.FW`?{>?m.aɏJ@r7_8WURR ڞZW@u7PRRњLRZ(!Q@70F}5ێ*Cb鮑f# +td|ԾF1PheMhBXd1V(u8NGG'.Ijbn8S$U2UR11O +j3K@)i--JCE.(Ri4C@ +)i#6(􃎔(&4Z&^8]΀$'MS(=M1fV +GAE0!S%~K3JM@ wS PNj3o'X3He~v30Q`-j#.Zz6jTyWrs4Y u5Gj3@WSJ>} a+?ASk-^? +|ԀpZQNhw-L 8@-4`v2*#G4s:y .fGȩ)i(Q4C ޜ&3Hуڀ1naP"b^ROS5*(Dj(Ou~AeG S|gT*B3@3E1[4E: TSHR7ADOݚ;4Ӆg4TLzPY{ H4EW3{) +c ;5\)h%Q@ IKHhiY"{QڀS4J.3Iuhs@KMɠE 4c4p)<$ +ܢS@Iɏʘ6dP-*`>/?J4O.Y"]Q@Q4 |מGrM>FcϰFK $c4E@)qN4@(Q@ CƤniI4&4fM&!n/hjg(go.qLfȤn-׿4d~*ʢP\D6kF~M*^n (Qǔ&%rGnasQy"=7Rij,SL +z@' ;;܍ M3ӣlsjik-Fg>4 'BWV0F8sXXQ~Jb&<{ W ңV#3VZP)\v 9X(;p1GzLHcQ@ Ei + +Gz()PQEQKH( +( +CKI@RQ-&h٦i4ALlƘjPۇZJx;Jit +[=*e\yj)m!QI 5 va֚US_;4٨J#4Z;9SeozUU_&^#GbHD;qNi83x4N= W@֗%d&EbjzLE7vv6rVkE{k 8t5sH >P0߾:4S7R恋E%Rfi Q@hh3G4QI@s@ LI@ Lf@ EPRSi1NQK1@ F)qKmPQKE%PbRh +( +((R@)i( +(P)# *JZ 5*>֤7 +shR☎ iaKM: +iRsc)JA*pENp5J)XwJr(R +Q@ 4mQ@Zc.MIA +GZHg?uՖnXuRVղ(EP{Խ{bڰXIgpQ t=u3fZ14Aiyc[d+hkFЮoTx*j+iVxaPPie ЭH i:P - 4f4P1sM-%fJ\fbZn)qEQE%QE%JP)€R0I@P!hEPQKE%-PEPEQ@ IKF(N&(Z(@hHE6RĥbQ@((E%- +( +(4P27֢,~ujPI&{ԪYd?*^y-i.hsKM'$"u-P %MI@9fZ( +ZL@EcDFUX0 SfTD;P1!ށ''҃@M3P OE*2>0LsQ4^hӃUR]<$Vh|L -!!9;nE?]SҤY2h٤5;Sg4@i1J .(8RZjQNc;'J3IHi ]ԙќSR);Qdfl*S y\BfX +aGSS-Jje$(h<#DzxeAU +ѱWg>Vcj=ӏ/j8sKM4iA4R@4xV9fo,xJM0 R ⑜<('@MXnGH- ?RjA@NzSŲIh4F8u1vhQycu53 +9~i UG*jvOZM9(#qQ1JFf|qV.\΀~az2LIrVzD*s#4ߊQ}ȑO9p ă%ϭZH-V3JR17jƪ8P>RRRR@S(!Udk@:(抍Ri9RcQNt-Q@ Hii( J--QKHLif3&)hQKE +J(P27h&(O-EFj\ +L +4KRmfӶ +6 +`7}8=!ޘQJI)TIIKڊJ)i(RE%%:!3KIZ)i(RKI@Ȟ åW!?R2( +3)ր-MW(4PE)if*0z4%~u?f)#%`r \Iʌ7R'z65L5osZqL&hRaOFi ÎG]14% 2;ԁU))?3KQ)E-J(AZ-SR@IF(t[׭N@2@ 8OPS@TJ1iJQȠ ACy)",s8sJW4b +u!IfQ6@H2l01hά3pYGf  +Rbzu\pđbRvqH`x\J;IRi(KAJ474@4n 3In3`dIP7?>)а瞕 GF2zS"JZAQ{gO'uBbegu0XQ<wFTM@n: qU\ ’O;ԁE3̑Z*7P9U$b".fn$s9R+dGL j8STNM"I@)qJ)q@ "SF()@bn)@ +(BM8S9)uIN4JJZ(bP(Fi)1@&h.(6(h((RQE +()i()tT*ҤIt:XFc|;SHFրE- JPi@PG +u"sO +:LQE) P04fQ@p|ՌPE-!4Mfi SubNֶAIV9dib}q; 9v 8$7b+2[OZ;jJ*@sXvՊP9CV*RKHEflNhi4 Rw@RRъ))hR((J8QIK@SXPn$ҁvh Kf()hKERQERQ@ KIE4Q@(M4:4f4fMJZ)(9@*i Y-J( KBi)ԔQI@Z(JJZ(EP撊!*ZJSmEH칪q@K3@QH IK@K֒PYj5hl3@k7jF[GJ=J9 զ+[݉0 WU d|؊@=&3Upe|-@Gr*cIH +#OIGzG:H4ꭒdKI@9(((sJ)LI(Q@u*r:zUB3@ +C"-:7J -6hԄR@dTezAɎ JcSdȠ 5R>@ih(-Q2sizPHу@KLAғ4M&h48L)8RR&i s@QLx1=3BI3R*J(ڤHM )N3'FP7UZa.*A%iT^z]iQǽURHE-Si4߭0M~=(F-U-1>W pMZ[XeQ[*tC(Xʊ5^A'ޭGla@X@+RP) MR@Q((Hin4 +v( +)3IZBhӱ@ Q@.)h@(t4hIɣ9j\PjERR()&1N#.~)E)PbR@(JZ(ZREPEPCE!wP$v{h +QKI3@ +i)3Iu&is@3OE&)K("RpB@Ij;<@jEZ~(O&4RPnl&5exKln]$^z'X9*v?O^ n\)<.`JJdLBԘȨ +j`xfy#)dJ9@8E? 8ݜTJQU&0x\a :è?Z͚kbZ2]GoJ{I3RaކgJҊ`ÃI(@r*@u!R26@z'* +if+$8#VQ}EY}(-R@QL@)i(R)JȪ̆6R`ZjE:'<@\ER3K@@oNZAPh 5Ń+PQ+)ZiwሩDn\N LV!4 +lF h aKxy}ݴ6SLSH>00 48/T ?hbƽ +D;TPjnNE-Q@Q@SsKZNQ@ xRRIZ()h1O)ؤRfZ3MnfK(1F)h@Q@ )hPH9)Q@Z((-R@f4 +J9fJ(h4IJ1@ (J:`&(KEQEiPbnihK@2UemVW>㨠 +ӊZ4M&h4 V[Z'V5jEp&z?#c!]+UoOdA;V;&28lnC SV>EfpV#cu"7 +@*5>FJSڧSu'zZJ.hQKILMfni ILњZ3M-!LiʦiP"Bj|rdT΁5P{SlQjQHB@8SHiippjJ`4iƚhZJ(ZZm-:Lњ-% )hEP!i(RQE4Q@ Gz(p@Ţ(P(QEҴZӁaLf :Z(1E- +J)3@ŤRҁF()@Q@ --QIK@ĢPRbE&) -!Ҋ)(jŒɑ-lSȦƣ {(FtcIktCVŢN\cXچ%-x+D,ڵYc `H ro+ru^8aS(iwSn+`*y#c4R295*qڬi\@jRr?MI@9%((Rv)(QJhIu!@ d=頑֦+h4j&R:R#vhAȡ[E @֤$QLZ)QES(QE-RQE&hii(( +(NKH)h((BqPRMEހ%j=n 34fFj=nd4Ѻ3IfRod57PuG&3QnH4fFj= 3K5;4)Ө0 +^.)u⬕`i-p٧5fS +"i (f@(lV! Q(dtUm6#nPEUVw|uy,'/J\mxAr vwvi( :6h њZ3n)iԔRPQERQZJZJb4RQ@-%-C*RTfu*r(FP 9S#RR(7E*a4fZ E aMdSEs'#5dV5PSUHhϨLԆ4nT3L3J~~ud[xP*PQ%$w9w{ +-#q\5dHhN)=袀 +(!4f4)3J/JZ`&(4(4)i((RsN(AIEQE-&) SaGJ"p5@tNE;m4y8Ө85{tn_$vjJulDÇӰEtVsA\fV]O9.NiN'@sW@fNw; eCQӋf 3Hhhi +3I֝0jLR# N;P11E-%! EPPd>-A`դl&# sP&84 j~i)i(CM4E4S)RPE@EvLњu&h4Z(aE((P)(P1h%QEQE-Q@ E%Q@g +-DIf4ihsIEP((: %QEQ@7up8ր%4Ҋ(fPQE6P!P`*N tG8zK`$9 NJ։F#bM$ҰrOkzefi +6je -%Q@)RPJZ` +()-f(sE ((#4,Sl))|)݂E7``Q@ ()PvJ6 +u-3``R{>CQS &HcFq@e?>-$` +0(R +u04QE1@FUZ7$d]*gJ6j6)d٠ YWTNZ))iQE ) +斖<~Je#Vd=|*$ULۛױjE(aSn.>PZQ\Itx5 +j@i }R@-.)5njCWr((9bN⒔(R⒁-%ZB3KE+1|Z"2t Dc>LВޥ4 _׊x4o3zQ 1@fP\RP1SsK@5 ǎTCҝ$axiaM«@l _oX7sɫqJq@LTM-@ҏZ<'4֟4O'Q.O-fiU%#5 oZ`-ӊ9,Zl̇oip', z1KRcv>Pi. rt#sVSlfzW]|X\jѹՠ6 I~x0pl2m<8]$aT3s9Ux2;ZnI o/$Һ`Y:5؉8V-ln5y^d +IV m~Xǭ'46TF̉zWB W.q-h$˛c~Fw2@e\cNV❜d WL楡(@ GZ(d26c 4)x>0lWLprQ&hQE +(Ũ\L o4sBI'cVqQ@Vpj܇ڞ@ +񎢣84;04nMKLS((bIK@43KEsFl pOZT jMw+nq"5V7!@J:15r;^\,csRC)*wn"0XϏIXnoSVh|QJv#XzNN47PH@-f04-4Z 4(sBr)kfn~qsڒak ʏJ,ԂOZLeOMxMn4EQEQ@Q@-%\Q@ PK§5$uJThQE%Q@-QE-( +PKK@ (1K)h1F)sFh1E@&-Hi)H(R + PK2Zsj8v(U8 ~iE(Z\P!.\RKEQERE0S(QE-%QKI@Š(AEPEP04Rf4)3EA@yQnh4\JU ) ՂT +u!k-0SAPeR-` jŰbN)úɦގv?kp%Ed=iu[pNbsVwHq$>ct8⶝.;jFJJzӃTNqҐ6h?M3T,I4 %& UW5JZ^)3xnjAҡu`;\Uv5r{2ɐzѿ5]Ln4RZ(4Q@qU2>" A,["Gȩ11RT񊶭@hiNIJhPRQ@4QE )sIK@4 E (( Z( +( +LQK@(\I(h(QE +(QEJCK 4RES1h~sM+>@ JJ)qI@EZk aȧRqe4ov{'|pkau scw)*&=AV3PEr0=\Je{ک:d`iƨL$RsVCT h4QdTҐSOFۊ* ةf-P (QEPEP!h("ZV1ҐPHFih7LO=*1\x5GP sNRKL(RE%S( +(4Sw Қճ@h&I;S03I) 2ZJhlRBRZ6SI@)(sE%1i .hJ()(Rh)[$ +pE7481h)(!ERSh KJZRR@]d?.HtR1>()q@8RRIKEihPiiRZ3@`y V]qW2拁-$ ݌KMQE-PEQE%1 KIE-%PERRPKIE +ZJQ@ŠZa4IL'4d.iM/C@ + !nqHM\P@/JLRfZBT.!9+<2(r* z'Y ;yd;I8W)-/sSW O\%{?QVT RA)ȥ(wR(GftȠ -@"hJZ(QER&hfJ(RPh҆ zVȝ1_X !ǞGZT,Qn"4@Ú)6ZJP( +QE-0 +dO'wP!MIMQ-8SNEQERR1i(AER)QE +(E-)3A8HM&h9fiAC \hE14ZSdw4uޙ<Ӹp]m6Ԃp 69kJ{iܴdu88=)Zi2VhQQ+SH:f@UYa 85r45adRI~4o+zPsU52(QE&hRf +KE"1Ҍ*z(u +֣1zq@ J DC + cM* @ J)Ԇ6R(4)h@ R -:Mq)h H XS:}0 +S42) B959qPXzUI&TM ڲH2-5 Y~/!9SVlax5R b})xI(0%G 4iiiZiQ@ /z)@E%(AE-%-!ZaވGW 1A@"L@QI@ +(4M4Q@(4 KE&(-&hh4'(J\RqJ1KIE-Q@-%)4n>&)h((RQLbI(h- +( +(i3E(aE-RbLRE mRim%.ih(CfM4IM(ũ Syib<ҁK3i4zъ-.*LJLPLjB(Wfjj2(bƙ2hÊɻz3QIsLjTpȪzUA9BB{襏ak\O HL.BxʓW"IIYݰ >C}̀ /298xX d⫠Нc4&3 p*kuEN8aQdMNaN(FjxqN"xBR*&'9FE 'ii8SʼnTḫnj51XNҠd)ڕ$Y4@(RU`jLS,\NRqDApjP7(M#ڐe[HFE R1☩+}59^2֜S#T=.zS\9!#03U66EI%▀ +()R +3LQH(Ě|E +(NQ@ aUۉ=Z5ZaP1jAP50Ev R@ Z(4Z\њ)(b E%- +( +)(b(KIKLaEQE0 +ZJZC +( +( +JZ()E%--S 攊LPҊJZ-- b(4PM>AU䘫~w4"Ԓip@i &sN&)1@\PqF)ԙQAEZCIFhNL`M&k6)( ŏudPxS<ȼFֲupThY]@|r9ĕn! >9Y$6@'a<0ւOϒN Zr uA<}Z;*gxɠdH#c/"C@?g%NE4 +5&3JVpi CM5!h)”!Z32j8&=d` dl@|Ԡ|`j.hM҅昉b +ZZ(Sl5ɎE$O@(4@DE`--(zFi(.h6 +(RQZ))h) )(h)i((P Q@Q@%PRREPEPEPQKHhE)iKH)h(-4iq@ĥQڃ@ŠJ(ePhNE=Z" ?4FiziAg4SsFhii-R\;NgAѽkz<&&G2Z˶L{ݰ<C:K?B ՆR[)IOB:cWfV;+T٭X85 Xw, B Hfi\8*jRjPRRi +@>hR((T*zFS+T.[#9 !2]}ڲ C),zRfKQO4Z(HȨbD| J47nj3ҁU7CR@(OQEQEF>[Smv)9bCAwAp&sHNi)Rm4(͔1!4R S" +Z((p)9jT*j@ viGњK3QF~ij<ѺQLF}nDIuQERR04(KH("KHE-I^)cW6桖V*:H &!(i))L +@QEPi$!}ޜ󭂴@Aqy +ZɫRJ +dM^ܞ:W:(%NkZ)jùppTPhHJҀ)a*HJ˚"&"U|„jTIEPE((bRABE0Rb(4P)(&qRSH ЌӅy5Y b RS)QK+pJ@ۺQ@\ן]+YTkЦ :?PkXͭ.o,[,H#xa-"A{Xp4F:TRRHM-&(O(--\Ph4sKfi2hJP .(jB֤('ZLъ1@h(1E-% +(Q@ E-QEJZ))hQ@QH())P1h@QEQERQ@ EQEPERQL4QH"\#fdPE~5i =j<8jg"i- -) @E-1Q@ŠLњOL֌PRbJ@)qEb.h4fiUnb UHsPmqX\Gakx@4g4L.a؊Uu +wsJE-=I^z Z-1M?4QE4@ 3H< +i$rUPȹ5%SSVȠ9faL0 ьPQV49{YP|ϭaZwF7]cqmQ)Z},qksKCLpÊ~jF(4y?94ќR+PUdnhi15(H:7Np4QAZ(Y +*4ΤS +P2|҃P$eTF2EH (4D jElҐ FS(Z*0اQKE1*rk +'ޤ I" P`x5Y$% ;4RRPEPKIQ 3FiP0ɥ< +hq@bM A9Bu4R(&Fh@ BHPW" IU9|Ph)(hJ(hE%- +(@G/*j8FI't҃@ ER(((4@L +2EF8n* @\֝Qҝz9PQ@ HhF((EU@V( 4#7Un+FHFEgXOUt]\:`B6qW i44PjH*eaHd@aK/jc(4+L8 +cj1[4j'NE*@[4F("Z@4B=)ƓAN F(IE)hZ(J2<`(!hrE@ihTWJ`rJcrGJ*)Sp[iVZ(RPZ(E>*;ST̹Uk.1Q@XS sC)1 + -B_ Ҟq@ +E ȅXdu%08-VM3P.ݔ5et.Y чjj lSx޸+ӯ0 cnjEsط+Y4t"Ni iLQʸP&h0E6!٤6 4QJ`-f)sM-%(P(JZ`%-!1ԄQEE.(S(QE-PIE-%PE%EQE-%-:mRL@R!(aEPEPEPE%RRPKII@ J(Rh&hSqN4i8 +AN4hMaE-V.wcZHZW܎ Toά-4ө (4QL)@"{Tf zw\W rd0ꦏzu 1+eNխ@ODKyV⒚ .hu RudjT4ݴ\iԆ E +(( Ju +(QHh9[*69z(%!QE(@-fJ)Z))h)sEQAfAK@ E%.iPjsռhHP D5]Ƞ 斪0a3WWoGi3t= +PhDa9T4 +P*lcU+V5p"J:R"bP1R*S0Q@&34ԝj+#Ʋ.vb8CLOzo1iH1ʑڴ,/[JGO:э cZFk6&eUrZ4bxŊ*en(J)J E(cM4LfQH)SP)iqHBmR +Bh&hf)hPFh0P)E +JSILE4p(RfRf(J(hJ(((J)hJ- QN4QEZ(R@ JZZ(4 2 + QE%-PRREP(Zi@ii@ PEP#"R恕'= +x{wVȧg"+Յl:()(sKMC4i* YG<S(XGVLo-_gu`ǼRPզKC-5e|ҴnTޛ@o<m.@ \?#(4N2TPVDPUU NR +Zq@4Z(Q@-PBaR* +ìeH@NB N@sKPhSsKZCKHh@^D*rnFz"?Z6iG,Fj5lӳ@f IE ɡriRq4@)*qڤ @RBi(2>EH3J:.( +ZJQ@% q@P!i(3P覡: +ZJ((4u5RG(dOaU3HD +.6b}8SfPHHzPE%-QE Q@ Hii)RR fP4){P 4Ljpj`dk0'eWI=~w + r:םJc%aUJj[ŧz֌GVfD洑5LR +ZRf<}44Ӹ8prNi)Pvp EPEPIKEZZm-J)h!(Q@((J)i(C(QE ((((JQIJ(hJZJQ@-%QE4COZiHdԙȤS\&=$jh99@ x.*zcs@!-o^ _NRub'ʊ@ih 'Jq@ )8PKIK@EW/"H~ֱY#~aGG*D] yn$Ҟj\Ux: J+2\j7j^V"% *)vPf( P[Ib-!\RSC@ KE CHh=i(iiNR +Z(ZJ)ihf1EQE-PEQE-%QKE%PQK(ZJ(->n7P!i(&hh1S3FhSsFhSsKZ1I3@4)7QZ &hQJ3KIE-%-74;4Q@ +)i(ъ4&$M4E 0}j)uTO4AOsD>RQE&i\R@hCNJ ;e ~ih*az\Sһ&PFo->n5iїcyyE5_؛|Mn> r 6T)sTIh*<x54HcqM84Y֣V*pjh@j1jd|SA@4B)hhRRQ@RQ@fsEbPhsQ=%!W(z5DN(Yi6ij0iӳ@1X`ө+ЏSHQP#P 4Ss!Rfvh'JC@ sJ("!3Fi)E)(AlQHynɩR i +jJalS>KZ)rKI@Q@AV{Tp-i  +3IEIE (-PicZC@P0(RQZ))s@Q(xw)Ss#s֦W ޜ Vx6Vf$ +RtR 4J 0E&ih4uc-JE4${3YۓZSJiǍ&WbVydW*b3Mt1Ov.(Ƨ1 &Jʞl$*V1NjjS 1]J>F)|}.#fʑ֦{9ǭm)yn8>ָh$J(3{ȓ(F<X "JH j[\,#`m :SOJ ;4f4њm-!sE0iwRJi4@ +(04R␂( %-(SH)h( +( +ZJZ( QHZFi3L&h&h)(.i3F(4RnhɧQ@  9v)q@sG4Zg4sO!II@h-j^(wQAQ@nn jzoF > vzvp"17.isU8ORM '6Z`.i(PfJC P!E.i F)3KHqFhQni QSҵz3DNh>MIZ D-(QLc3.hAN3@+PhR2DJs\ŦĝצMuBS$cqީ13td +r$+wk*keOeP[NRBeXv5VuT-n*"J)3@4;4uǏ"l{10R +TE! E.)Z%wP!h- hҊTlԸ@vqMh +NV .)Ai+S\S7SLY8o΀,R``i٠C\P11KIK@(=()204rhȤ +x(43sIFR&EDu"z0 +p9mH9((&ZJc5 +٠ (AHyJ" +Z)(PMRE%-QI@ 3IE-4f4 uӨQIE- +( +ZJZ))i(QEZ V܎ GCWH3@ IsR$dr6 \8"@4PuGSP!i1K(RRR@QH5`iZ`gj>WdڊHC +wN+`WR@GZ=V^ B<'(!OB9jIJø852S :PCH)i(f)hQ@ +(4m.)bM4){sK`-B)斁 eM`%Ɖp*_8#FZ@N'^<]֞øyݙ6C Qt +TܵoH֞*+*0}>i%-4SNPJ\[JQ@ K@Z)RREPEbRI@ +M4f.(bE4GZyK@ Gz(AE-%fZ744b KKE%PQE%.hZJ( +)(  R@QL"S3@fzTңO^(r.EIHFh=?w9W{7neH)iRwNOESh +(Bhi3ILKQF(48-@ +NJZM0wOGz@I>.j,AzL(&"\t=%&X+Ӱ#Dg1gWEo&ϭs֘W+q1$U.nr%N_Q4r Y5E +Q֚RL(⒗1&zSSc`is.)@ )h +ZJ(qE(AEQE +ZJJњ)(iš)€ +)i(Pi)h^p(婤H)q@6SF( +u%.(ZLEPEP))hILBQE!E%-%-RQ@ E%-RQviiRQ@ E+-!4^hi"jV曌@ +a}QKM4f%- )@\RSiiP@-Roq*n^D0i^)CEN9BhZܦA.@) -%m--ZHh)Z,zq'd\[("EutxT֩2Z9l#)+z`QqV35&qҥCIIKM4QI(QE%-%-%QH)RE +(%-&(F))s@ KHhZ(Zi3@b(yb֧SZ{Fx(`iI$#VQ +ybCCR4RtZh4"4P"Hh&\-lWLe#X^#(I R5zHU$RL +endstream endobj 624 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b9攓DX}}iCI4xȦ`žG4/~#4A8!4z҃xMc/ F_zi=AYXi"㊑ ۓ5YHGtNN-u\ށ5Dpտɾ!l 5 QlXCW@FE+?*9@>VCU#o'Jp40S Tr(zTC +RiZCMjyP[iTsIH +rW&j`2K@m( O )e}!Y^;uakZywafR1L,) ( +{[(E,(zqQ[*d| S +`Z`N9JP3AjMg8;43I&8H 59}Z恎E*TP!-4^u4m4RRSSih4fs@&qM݊i΀$M&M/H R2Za(fzs_UOtss؟`6OJ[~EO+9-k<gU =rh*FHݰ85 S$CFsYk[r:*~᫉2\kV淶Qp*Gj8 +R8 +M)M9MM)2;PF=߃M$7ZZB݅Y`)F@Zh8>uG4qʛ$"SX,O`})..qN+Y8h+Fh5B$}i iP3Er9DyqabpWɆSGaR +IjY aD7K `#ҡBt +8%Ԫ1PZڥ,2\5?ZQ@4}#Ҝi4 +QJ/Jk#gAu4qQÿxTm/JxKh4&h&iN)曀2'!aSPEB]$s-wS+j f6oA= pGri5 +M>$284b1ǭFϖqi[UTlr3QlҤ-pqքQ8*lYS"SVeq֡FRhڰǭ7 ihc@vM9Tc`LLQ␷)jfiJuWmXO-Ov?Ҁ+' +2Omáœ!a[K[hd!@1s +->Pb43ٸ*Yn3 0k"Q HV@B1hSLU 1V) (#YM ;E%qM(SiE  I@788czTب_@٧U0ܞXee[45%-( +((FiP@RQ@ E%Z)3I@ )(RP(h +(((Q)ihRfJ( &dO5x)x +ZP(4N4N +(%I@@hP1 &)M4 ݪՒH2xuP)Ci}Rxrt5 (*޵uڂrPzb.*8NE)1CE<,Z?lR=\'^iTC)40zuh"dT 4.)ؤVR@Ⴞ\ +X$Pg=yxM +C52I'vɻ +hAP6 8B H>((&@К"0it₢c=i ( +I"!X`wʻOZ4Lݸҁց +p枩D\ }P!xMPqZaژg 4;}*kcGzx@ +n0iޙ8'&3m8#D.WI +1HBAsp^ #1)@= +dRiJZ zP74T3+134 PcCMHS s9ps֙.c$c(QZȪﻃWzG=yIJܢTԂŞ圜jJMMQ4.5 $8ǥT2V/MRUy.:ziyIuk. k?S[:n-XK)̞_L+ + +ct3!q+>>ZC +C0'NU\VYR 2ő⯯LeV:%- }i13( +dӤSWKF)@◵2)1?FE0c +.sV (: +"qU)hSE( -V_%^\6#5[=K,)= F2OS!5" Hdu)xcHT +2{R3@M4t@^#14A_$ԀJIhZ T;@cDBjEɩUh6jb֘P`fR,t[=EHi\ +bހzPLjq4#ip C#Vkcϙ*)Fr*]2j6ӚȓYEsz?s cΘ6}zT'խ$y8Š/ K/7w.}ZҶ/qnh\,݇Z|Zy2yi9v)osvWipxm[URpzbf(M-L +ij4:'4h4j"o&Bb,4̣I5'' '{N'I4p)KbZe\ ׊NZ +95M=4ՎVFBf4?AH-B)8!KJ@8dpN2UKlQm'4m&9庶-䷦ Ld1jD53@;RPcޛt9 N(@N @Sg=i-'Z)(҃HbQN(ᩤA8f~@ z<ӨsKfi=iY 1~ZS ,~3֐"M/"@ +g)m= v1F]>6ܙҀ"Ȧ&D=)KګGz`J͔#֠NԇFzjGbxPL bUe@ +I̓3E' MV5>q"s. ⧢KIEQK@ KE&hhJ(h +Li(h4њfPhR +u%Q@Q(4( +( +ZJ(i)hKHhӅQZLR2"ESx,N$O[19$A8V q }h.i4\IH --PLKUG O@ɪ`m>89QIpxbM 8/TiAD=jU[4 ,>Ү#4#NqjhuSU#h@- iEE֞cVqYi,/{g:-BX[lÏ\Qaç, L>R <  -@CNE9e !M -.)1KEQEQERPE7h +()q@)hZJ)i)hZJZ(( %QEQER@SE(&8f4iӘ`9 Ӆ tRiKBhuSz~3ޚځRFht,(1gh<ޔ*\S9/W)HINqcꖭ4%kGw>Fe&3ow$g4mXH +k^#Z,$] ҀbN.W#ђ'=+&7 +Mؤ[UڪoqMO1\ГQ2Q뚥+nFH6PA`.QMjdfx*包yhb.f4H^qZCĸ +Lhs֬F8VCHBG:A8<Hks@OZ1Hͷhu\h2 p 55BU\98FI@Zv4Ҥ,$*l +E)iQCHO\I`-!4ih34@inPҌ d]4(83#U_6V>L s(E$sQN=?ZQ-;O|*^]I1=>mV>?ܸ[[BA, I92Fjꀣ +0(@fmy@ x^<nW@yF( BAVvZL13HM 34O0XSKrH2ƨ~ASHp d5m?<]p>ipY+6'x奙ySA@2$lr{izVfbA뚜6NhαIcq$cY0Y ʈ>T rYu. +)#v$#H2ϊ3w$ޤ ](!f}i`j6CEC-?np_8Kq,Ė9451,9;I@q@N#'I4)>B3iVbhx4hi8t!;ҚL +)(!I.i4(&i 恎4> +BA7<048M74PIR3S&i^x*'Z88ý8AqʁO-Q(FP +#59d@u4P_9 7qL5zm\) `PsL9|=&3<3ZhP`fVsҘrq;6(hCΩc]Xa@zQɦ+־晞f=ZP[AjSMJM6@ G!(5sj -N84dӱPUS1RbQEQHM0ӊry-F3NQ3F -%.()1E(RTrD9-%RV@EL5 sKUVRXSSI\SdLXEk0 +sBfIi[ߣN{iEXdFr3X0^%%[ZQ]`RW.O*F08DmB7bhZ1@ +J( +)(4fJ)ZCE&hiE&is@-4RQ@ B)hNQO((@fQ@ KIK@ EPE--%Q@!Pb +ZJ( Q@ E%bqEmRG0)X%n"9#9^G9'd4@AK(Po?QP"G.)ŧc4࢔-GʕV(\STSS3\H6A4Ini&:L!p;)#MyBz`w]‹%E5NMRgc4WhUv}J[Rو'?Wjz(A2MS}c-(Vn:|#oRqN K{q!D P-:*uf/ Nw^ݒsyfɷ27ZQ@Ub&h} 4)J5sK@44!43"TN%-H&5 4VkjZdzT\\)T1. 7E*6F2MR>E8D7(^7FTr²:v8E@BSm8i29{#V 9U-pE_E!qRRhf;p3Hϰ{ҳZdmL*9Pud|ǥ>4:i"${%pYzv4qMgQ&~nCu $U8VY@ZRZ 2[5T٬DPph)eT&# +4A Z(e=hhNhHr?ZWj9,j\7|R@*=)ɤ8ȠR>Ag5@#~]b,˴v1*9!w@r #! D/RSsB&nHrj6 Б&wsW 6EG5T'sYyC Ps֦ DO϶Z.>StH3֜Xca.U.<ȧq5b0Fښc+6u1U`UqISGN :RQ@ M`IvO4ļk.knxf @0p=4X >73 Rc Znxgq[G4Z.:uOa d"_GSTr=0sr;w֜m +V;}B*xJs{1$JBlǜ1rp+N > yvьt;rj)hQG\e)R>: %fFd⇑UYn# +ic%!8뚢.62izd}H_Q@YQޗ+2_,H52;^[AI=Bpeg2!fAsWU6\q⋁V1iI)Rbi\>(RXU#׊U@ AqN1tȑUGmg>aYq׭R rx,#xTݍ?pi'%y#cwBjP*6c:rjh)2hPQ5\KTi,=j&jT &t&,FE<:Ӿi<d/ASH1&FK7։FZ6 =j!#0g^MJS"LvH|&">b։R<ӏ *9cP1 2BYWsIE'FO(4  iUMr)zY$[E!9 LO)QҜ)Z-@.>z P"B y4wR@HZFyjijaozgҘMMo]\TmqW#p$m(eq1Qǯ@`@4ŷ% 4Ua; P)h( +=;IERQ@ IFh1@tR("qjzqZuФOb !l!=X%+99c5i(#4RQE&(zѴzR1@܎£ OAA8 AN +(;RB2:ӤB`VR}ELg4T{vbE>x# >L% к@TP+ +r㩩(401@-(<@>fIT02拁g5 b/g*ŦǮOJhTnlVc֪E L5دJӷW@1\"Y3ޤ"d1ά9TxCr85bj#vhii“RQQ@ Eb3Fh3KLQ@&)h4) -R@f)( +ZJ(4QERREPKIK@(aE%-QEQEQI@ EPEPHC +VXAܾ:J^ J@5#<Ren_J9J --Q@RPIE.h%RRPњJ\P(-bE0T3'VAT[e~Fi Sa *JuX;#UgIlWS`Rf此a3KQHL`HⱣSRpƷsLtV bntWkJ((&p=M5eJ@sKC@)i( E%-0 +C-2Ax<-WL7Z0QFsEE#`y̥j(9 @F)s@VrMH4NǥjfR\LS\d*<ҎE)#<AR@ 3Sv|CSwqMyO;)2@ҡ-rqIWyJKs 9«~]O5@xLHs?#PAQ'z=2~g>$1F0((.9.&lDqyy[,}+]NjB3(״shX(hPqLosZsV2c5nL 'QEQrMDw\ ޥUUzՔPHFK( w +qa2#Q*Uz,Kz@A%}F)."W5F@)MN 9,Qgր +!naShRlhgL`SiM>ǭ1׽(MDlԋҀi$I4ɠ jhҎNӈG 9pұ=OJW04L\ңJj2DteH{zUUP9Qd:{R =M_lb̤(HVnOjH#ށNz8BhEb9)'˒k<=H\`K=j67HGo+nOZR5Z$sWo%洠Эr]Er9XV qKxcHcڜbyyt;ZkNЪnݎxt=i a7qp)RI $f]<{o3:Ns{T3 ss@knUP[#;a@-.}E*94<Ax֪ &.4AmX5amT*/s0i0ҕ@hj!Gzh/枥r(4֜G2M4I HcZi} QI$i =sGқGQO= /DhP>QVׁP7q@HPiOJFӨq +\Se/;<@qTml\VK +`TK6Qƚ`}cL6qL(p &*P*йFsOt^:N0i' +6ZgÖ yi m8N'sQ4\L:qҜ) \k@f9K RޚZ:!ۨ$b-.Fj\AV9ԉ:ʸɕyc=ÃKG5oxA":IG(qMYpE `4j3OWq@␊47(u%%:(1HE:C*H$(5NFjhpAxzz}Jh(J)h((S1E-QK@PEPKIE-%-%QK@(aERP b%'#VhS $gELA$+=L>VeMd ֐5;4&m}hdW0z)^c⍇\Rbb=@A3EPnB&)jEvi1@i֓k/NhzgzuSO4ր0y9ZiMcZ|:{QE3N,;WAU)8j'ge51#Pn1M5^[0ƙt2椶ӡR`9QDsbcZfqju``P+Z_1I.Arød4Ċl @I&ނ*3@,M74h擿": +]ijᵈL7qj= wЀ˳|]r]3Qc,rsKJ+ z =Bf ֢lTcqߚh\T eqHc.GJFE)#h`GN>_4 mTTLp8Q)@fj6F'pJS03vZ*+1n 7jnj#9VRcLإ$5RN*) .nG4I\,ۍT5\rjOLw]R,ǩ (? +.;͐[u<>* _]1Sƻ p@UF+'l~yգ-c-3p?*ڣ4\ +mS)fHiǭ4=(BTyn旃@FxɤiE;*6|s@[NP;Ej(l&5QIr)ZM h$pi櫠0)3L191!g4`)8Pkon) OHGcPA&ڮ5npE=!9Rh-r>`q뚖[YI5 +79*[{{ U`iA2ǜsң9MyZR0(Χ&:KB +A֗bNSQ4iJj63O'րOqISYgNi€ 5(Leހ'~is3<cQ(l`W;ɜ bIOsgZ+o%XȠ Ѱk>@ntҩǗs/h,~cNL* >%7Ҙ90A4# +SԪ`2=3Nq@ )*'=3R)?f9U-SNzS8WҗQ@)\ zpheyP)Nzfʦ|bQ,8?=;R@3$$۽]i0Z"^+SEBJiڛ=h qJ#[8#PE)QINqLn*r)z-`TrΑ),zvRj@,)ҘnΡ[R5f8@p#fEb85d"ph sNBUr3M9֖i)<)2,}jQ #?"7G4qŸƕ"}r(EG?7 KH 5Mf͚O4\eH'ګ+a {SEW(>g'ڙ1l5s'F)sƜM0p@# 9b84Q\Tq y1H9cG9u4Ӻ +LFh 9'Z 4`(P1{8 JËbǺ[֕F(>fSjł?1f]i"5gӷ5^T b2lR yϽjE em ܃+PqL |2̲ e9KJ.Cȧ;+`Z -!]S ZHfy>Y'9(J(-- +1Kӭ!a@8RC}kZ#VY 3\)7fE:J3@ ERQE-1%QIE-%-ъJ)qKm( +Z(E(R*qTIqsQBq2ࣽ ?+`1O&4ӍCRޘ&ƛ:џi{K4y{Ӳ:TI%EUdH92IBN*7Ft[sGY+t`G#J=jqԅsNlBjHҹ< +2&cԛZlAc@s֠5!40c>2C)@,gc@ +fQSG F `G R}GJֳl5i7~cHb4w!cFbz3Wa/$` +y~k8~L}bmKb q& YVڑy!#9+fY|9`2jLsMTUbʠ1i4a4HE4"s#:+lXwwlҴ7~k>HYI(>jlSg:`j @bOpvP VȧT;Z3"VȦҫ`}q֞ ZZJZZJ)hh#pHzQ㕠 ÚZ g9 +JPhqN4 +(F(4E +()q@ KEQFi NPM&qKHM8uD*JSQLdtNTG]x Ӹת*z)|ǸdbGZj"&1͕q>U{k{ՐARdRb<:CḩP3Fiq@(drjiPzVI$|֑e*pSjb=EFj'\r*Z(AIY#5 +YxdT(#MKjӨ((( +(((RE!Z%PQE()i(Z))h(QEQE-%REP!(-P aEP!4a IE0*L*ƔK X1Vi"v)_1@(+)QE@G"ERaT'd;ة3Ld;Ye5 rIn`GtdoQNa8#V([4B+)٤/<)dN Vhd+ ֞PPt = +֥ JZ(RP?KLQZ:AKJ@! ҂}4R(RRIQKN@sIzbROZp#QJG41J)G4!TW@ms+r+nx ((qtq]5\t2dhc5 :<{RV*m8Lݚ !'j֤SGLw&#ڭc@ w(cVаZ $ +. Zl=*h[~3[AUG +3APG'ǥZ4q}jCIHPHjc7͎59&)gڴ«I(g#TֆR)N#"4fRJUXYXTSM ꦣ@S@JF'Q2~Q`B!jw@3F=1LgUęI qJ9wriCb'bғ@pئaM4JRbv"Pǵ#7ҖnHM1S 桑71$ *3"Ses@ GiC( Qf,'NjBT֗?:ӋAN%G rj@7`"cuZ!V!(mb>8}cqV"F(Պ%9cɫa{RXE=CҤd7JntJiV=O +kO6piylI;PI~i lZҶuZ# VFY6I֘9lt+ҫ@a ֚E8uF2> 4QKE +QMLt 4E(KLӢ 9C qnwL NJ98`j>FhLӁP $M-0 +M)q@ 1KI\QBƓ@4Q@Q@ Hj斣9$]@F$g֝N 1@ 1NiRPKM()QEQE +LR@ KE%-&P3Hh(ii(B@f +2O Z).h%ZJ)(&(KZZm--(E-0 +(%h49@XtڬmeT1,B~5xJwxPc٭+MN7zVrXQXZH2C#4qήj\\^Kf9{VHnyCj"EHuu2%|Ԡo<3@)@ EĮ9%Iy,3<j -Ԝ M4sS@4F)E!%-ҁ W9^*! +I1BZW 9>TzP\T`PQKI@EQEPh(@(`)i)h(AEPES +( EP0(J(h ((-P1h(BbjbeJWLdSW N*hYH X+N4OVHA{Vt~ӵmLdW!#ݪҥx=g\iP?=W )?B?VLRx Fd 8hջT{ +tSPFh'<042 G%N}zZX)Eh@RM:J /iP0z\A@Ly4 bvc4ݜ4x^) +恑$ch <(4j:p !AB.(TuXDrqW2Bs_zs-9.kUkkNJˍ;/j`1(y֌vXVR˞-\KF=3[f1ҬGli\F$z{7cW"ҏR?:@JvhU(QڭEBڤ +;RRLE&hPi(1F)N)@mҠt4\P@H#"S>OǽcMv*@ G9@\P`YqV 8Nߥ[GD֪OAUY ojb@[I݆fH *C+P٨/3'fd; fdlEp<{SU'6SKLCH*F9zS4Q֐ ڒ( z{zj9ց!b=+QnYqV3DDONjf>7zH"F #?Z@\ <_9)~rMN Hw{i\y .W>Ƒ8j(A=h3z,r.{2yNT84s4zuJyliKq4=2 8ix15@3SZ Թ1?*zTdԍҡjj<┚jS9$S|hzyr(r*'43ށ}VeN}6NY)8nn{PsKUcmnȠ4OMa@2nw6sU⑆E2{5hZϵҖEfo{yvʞ[U +kqY^ӎ@Ê@F IG<^-5["O*E|1A4Z.h#4Zk| WGhk5FjYR +W֭/J`8 +R@'P(z@r(5.hWJp1IZ1K@v(bQEQI@Pi4@4(-%RERRI@P0&hJ1K@ 4 +u&(RR@*oLS +Yh@"eV0PL P$M@-Q-Q@Q@ EEn3`(bbQL!ԴZUSq@i@4DG""n-⺏dɟ~Ɱlnl=itdt%HM1vb d˽#2'r9Tyd:!Ӳ`t)CFk: `>aW0R23_J`j~nj5.E_C#֥G?f("n(QEQFhRf M#4QL5 B +CKI@ĤQE +Z(Q@ IEQE +JZ((()i)iQEQEQE)i)haE-QE-QEQE +(Q@(QE(`&)J(DPpknj0PXqE@2M,jA?4QE2RQ@Y[|YclSJEq*N͚mG/F5rH  fiYr{R̗6x߇_ZoF.yQ`5(D )-/@; БQH:piO4Pc\S`6ڝތu3=i05.;HB P8 S*ΊE$Qh0Zvh3֔)1??-Ȥ# S P!GJ^iӨ4x +zɰs޺B\۱I63 ?Wdu^.vo<YH7]x pzugn̙ӰߟZ.`7T>\2K3̐ܓZh䌐IiSʞN01^G5L+VȈJxAEdv#:ڨW1F)\H#_J}͢)IZNf7vh2FPl ݊Js9qO ,+&j1Hep#CК@=搱}*վ-+ +[pX[CGV8Hr3wEmH8)q>GN3nڝe-1OԌ\Eè5S*Ռw,\Z0Րo)hWↂ\- rqJ5*jFWaNEF:T[Y:r(zZdO)RN"4ӅQE0 QEQE%Q@ IKE%P!( +( +))iRRPIK@%-(ZJ)hQKE%Q@Q@Š((()h)hZ(QEQE(@S(0Ñm6djQ1Sxfq f! ֋ ҍi5D!ns@)hHx IJ=i@E/JozZtR @ )[ғ[kpޕd04!CP=ij5J9Z( Wr>eҠ s+>8 %+1N=ŐNhҢEFH# Uޙ2[54= ̖QՆ?k[]+-Ŭw*CzV5͵՜шUmuD-bX KVVSRƩIUl$Tr(ii1@SE +Z)h())R +ZJ( +ZJ(QZJ-Q@QL(QK@ E-PREQERfMJn7PuM-H$K4Ѻ4n (nuE3uԴԻԔ@ť4Z)3E! E%Z( +( +JZJLfуRQ@&S49dS0{P+OU :9pTE0p2)D*)SSH6Z94RF(sKiJ*RHH? L Eaj / +xíL:PqHqN#/7,>pJeD\B:51&.[5F6<0V@=i>B)xRSVy1֮ٴ8MZw%D✠q +dUi05nJ +?.e&Fj[wsjzԲ`jF$RI0SOZ@L5:ɏZ L )8):Ek3ٱ!<㊹q'T`fW)NIq(K+j}{v All)37Qx昹njcuӚg֘)Mr)SbM=ۊ0'Fހ,0[5PGX@-C'4h>;fFM((DžJF* 2(is@4&qHd:2OJ6ɦ"POsMx`]]Cq\'Z*sFc3] @}+R"')!.{m,@Wk +AKJc6' a }?#Z q*(R.;'b3HSIZQM<.Uv5Yph =@jGf7K)3FhsKL4@Q@4RQ@ HihQ\RsFhhJ3@ IFh1@ J~( $zHd"nU@I i 1=ZJ;1iө1@ \bE6 jAx4҂i3FhVRFfO58f]܁L B1ږ(0I#YA2 ?jMh.CV;ƠHO{KVjH7tGcf?Z:2(Rh%%-PIK@hE +(F(ĤRPQKEy1@ J`%U 5']I?_ ?*bE +)ERPF( +(4QM-(h4ZCHMu4f(H ( +HpixnnxRN1) 4%LPE&)hSeIa`rv,Ufd=Jx|Bi"O@ @R@ " A{#r+SCp ZT,8j"UVPi(\*lьKGrکkIvJtZ{ta0R&/WPkv%:9"k;ds4UHnC XWH(-ZJR()iiE'Z1@ IEAKH)(h4 Z(QKE0Z(( +3M-Fh٤&PBiqF(95&(3Z3miP6RJ((NQS(E:nFNG=J(?,z6{EQEKE!+ 4qTW@{Sd}(#g#ր9EN;13⺭} ˃\fÓޚh+&F犼bI[T™}*DU#J)μp(El*@ FNH4֌K~} 4i{QLQKE +)(IiR@()P1N448lTfKJi? ֗<↠zR`/ NRJ2Aiޙ{7"3ր'U3U揸5,.CcLiX`UV>S=d"!*kt9u9MRT {R[(RȠ"7PbO@ PQE--RJZ(3@IEJZQL4ESYwc1OF 披\*7K<;'PY\̯O\m%)Af %;QKEQE0K@ KIE8Ze8@ADwn^ YE58 $jxnQ$AȤ1:RF(AS@RQ(PM%QQAFh&i4Pz&)hi4P!J+Xa +ifh,['7x,3W:`5}ʽO#a%u\Ą89{{zh._I 4((܇ڭSH $5E@G4S?9BQK(RHJZ`--%-h"hw) +)j%|ԀM;4 V5J!=Js@bh4J( +(bIE!Q@ E%--%PKE ())h( EPEQE! n 1'ޥsj8FL :R( E-%QLAE-R@ EPEPQITP2A$g1GsU*7\`ijE$G(An@8?3GZRi;ґYs@9斔"&IqH4<Ҍs:J:SO^R +Z)HO(np9'J֚݊ksK(9 +3)}iNJ;ffNӊX󜞔A^)zpPifqF1@D/&f2R|1\f{S@\g]\Nq\%J1B4s:RƝ}E!H*,SDG&~du*`ސ)#.{R4H 8sLNS@zv(- + 1hB)3aJ 撀JZQE0Lju1!c@l"4h,`yH(f ()4\wݟcMaJHqL`R)7REt>aE>~P!nUX@EQEAN9Sc9^i n)qN)1Me#bϭ>vw}j-$i\Y>t9>,ɳK 'F&_zz2G~ RL58I'%#RGhZI/)RDf[D7#=3Wa2G*gkiL (=3JL"v)R'9Ԗ˄=j概L +Q۞n('*JN8sK4L=hϽ9'3M&4h2M&4hsA4I&Bi Mf7u4@ߊBsL*w7tQz ֵs4v(x|?o 6;P,0Xcji_fk(]h'|-j C܎jhB.)TFh4 +\њ(bJZ(J)qKm)1@&)iq@ E-mRS5l)ignH- +2)sL )3M=)Bvh +Zh(1E-((@-((J)i 0Ԕ2Ѷ?)ȡP@ E-!4R)JJ\fNM<(0!N;ғMR +(sIZ4`4E06ihDvbE#k5 tTie`0kV) *I kX ǽA(=BdS"|~)T֓ 4S"h +QIJ(E:KbLњ)3E%.i( +(=(hjU9QKEQE%Rf((-R@ Қ}P +0=)RP(hE%uRJZ))RQF()h-%-h1iH +r@UAG)G5hj)"Jb )3S#ސњ3F(h%4RK@ Ehbn(:-%-bPfit ))s@l"uk>X&9ڷEG${&e8Ҏ`{e֟/5$Ri0ѫKY]w "dP9@{TPbyZQ2g<6i[,yآZ(@RRILbQ@ +i +1jlSYBEH@:5Vȩ#WHx) SP(&)iiJ)hbQE(bQE-PIE(RE +))hRQLBE% #M>QL8Oƅc1R{ǭǭI*=֍~h3p>}n3Qǭ$on~i3MFh٣4ԛ?4nL N3QI +P M(֒R(HO@SJR@ J(NƒޝsI@(NC 4w4`" Ұc3J9.xqL @ +FnE+6V@ +=)vQǐ0}jV)TGzh9'Ͼ)ycdU=Jn4Ќ{W!ր<"T=Et$氵h~˩J3mi:d +P1Җ2G+ TTdTZb)I҂92)j0hxȧM<{мRQzfT/V G1i sE0is@&uRQO6.(EZc|4Q#o4)HuJ)w-ӎƜĜc wҕNE +9@ ~ D"0㊈|P9C7a5c'J\#3AL wʄ$qR )r̩z11?+'ڙR>F-[+H>X;(X#oJy @)Q\Q!j`=Tpy+KJt{XȽqRL[꤯8hϩf=@ne@jlUf9yv=VJOB95 )aDհyTlV$clVj#Z!Z"Ď:z +*PSQ>E=EIDi8) %.8ba ,HM&i 9giH́ց * `a斣n Rf!lP⫛ɥ2q@wRRG P!KR vpi7* <=g 8ʄf覧\ǭuٰ)Q@ttQ(LcB^S]"J ?w4>Bj=ԻIK@ŠBhP- +(RRQ@ )3FhhQ@PQELIJ(sFi)3@ +i4&m&&)b(2ivK3@RSsFi(: (4QI@Q@-%- +ZJ3LZ M!ja4斒hiz4j# OARb Ԝӂӱ@m&(њ\њnih4 +Z(\qU(: 1\^icr:IHiEI1L EEbڐUWPˑT M12b5 sWA&[]w@t?{ЮHYG5k!Hȑ*AQ2ȥ @QҀsK@ MҌihsKIL٣49CI@P@E&(=)i)^x2jXhRFtb⩍ў2I@J)h(Z)(;zb3ހE%4>lHM!ɦcx-64:өRZn(-(%.hP!h(FhaFi(Z))s@2*SZ c֧VTRŸqQǹJA\P3Fiq@ .)h(hJZ(4=*|fO4RPbPf)@* Wd՚01NaI--KozW吐GsZw6Q[U\Ena_5ϓ=O{WmU׭ |UxVSb(4PjZF3@CRf5 VP"ij5(904QE%8RQ@.h4)h B 41i\1Qj2 (lP7<5)Ph<5Fc87qSƀ,N|ԁ)-Q@Ģ%Q@ĥ(()hRLaEP (A3MҤ#ҏ-})P1.Nl_Ju nFN55GJ6 +} nFN!E:nMdKHh 'U9PiO + 0(4ƀj1NHE;(sE-RPڊC!t-&i1֖hT=iOZ10I04 dRJCތbGzqǁږ>E5~R{f ~:Ql@h4LSYi n 5ɴz8>ѦM2q2يH@|H}ӌXZ=@; btdQ!0={R?Zq=[GzQ) +fFuH?2/>n)HjG4q*Pv1Q ⥐旭"`4}0Ӳ(ii8 m9=_WT*Uz@5Ct 悠c"W<51NR`uB <5>h4(%QE-PEP (RE +Jk0^0IMbqQyO͑@LYt4C +( Q@Q@PREQE0 +kKQLZRTqr!a ?e+A58W>C)sN(⬁ݽ@RRS()1N4 + PhӨ4ZLPK;RCK@qH6x R ?:GYOSmMuȠ cij%ly^?:FzЇ8CJޞrpH@ +@'okMFDafFhise wE\- ]n=)1l +eT BuR*!R.K0h&\08)r(4t94JVHsHjDlAh98~2)үޚ+90MO^i\i>֞e恊i8= *!րRYhSF!3NB+dzǁR(09HhЀRb)sIiJ(&h4i@P)آE@j=j&(:;v X2X+mrt*(*OjsX:l/1LhHNAdM;P:ѸԦYr* K c-dۿnW5Y\Nw)n+nZq_ɀ/MiZhJ Bzi6]ZthڿK(ҢŭtQߊv9Q.34}@mAT֍FڪU@AMm3dW_XW3sBA ,/Z|2 U jopXܭź>2\5ߋyLz lb*T`E++H`4*5$pj@s@SBcB-8 R8c38'4)J)qN%&)qJ#p(6*3),G4'.iKZ^);4vN9.(8 +uݴ(43I@&h44PJZ))bIO!)MP:Ӷb$Z%b +jI + Wo0GaS2#@dc0 .j XiumGii(&h-;4f44 +J3-0\HhisM QZLQKE%% +)E1KJZ(8fwnrEI$a#t B +Za`N4" `YR_{UԐǟO&]} dmk\ )sU"0*FIE&hxRQ@d>"IR.r8 X9NjTp4RR%Q@-%u +1KE#dDWX'\1NqަV0:wԀHTR@APNbYE#Gj@BAR +pSijp{QZ%-R(QE(41u"0=L`QH^pbxWRn PK-(PG#4 + +geN)ՐRæ)@{҆d xP E K@Q@(`-Q@RMWdv)ҝ@ tWR) A0V! }N4$oJ:if4s@ (:)qEbqOn))ҚisHx@|4sFih)ڝ\PZsO!2fM46i4~~PAH'6jB>lJ1#m +s0GJO׽PխѦ%dUr)J*z(mOz9δt:MfUH:J֐P+Rnh3 \r1,` cZE>0cF sH>{{ 1ei>Ztc<sA ԯ&F֔!=8G5Ϛqҭ,8R,C>X8h mDD)B@zb5#?Z#Yʹ{{i6Ky=(lZHrm'`g$?ȡ>fmP} .""(`U=xzZ,HpO^kX2$T\Ʃy?fa*iwݾa׈ qoc.{/BtdUE5osE+搻Sc-]Z=Gr@7A<:*}җ2 ZӃĿp+v&;bZXTpIKWcQڝILf3@(5"<) qM!)m~cϥ0&vk6]IԊϻ :Lxđa1e#ˋbyB Yc :f`Gs:)=Eji)rFېQ\ r+zkg'n) zT42*>T@)fPx&hM0wZc@NZ~h +PI*Ն\~G>ai6EH -(R(Q(aIERQ@ 4O4RI@i)h Q\Rn)qHH()[d"a=EFhI:P*vj210j4D9њxfh8i4f@ ( +3E3E%QAJZ(S@ NQEf)iQE0LKP @&i(ъ3Fhi 6J"N+Hh'L+6eЊ44#%$;Z҂q.vYclO֫qjPhhLLu>)MӽKZ" SzsNqOZCIKE(PRI@Q@Q@Ť))i -S(P(BQ)  +QIFhM%Z(J)h@(KIQ@-PQE (JZC@QH)hAEPH)hSJ֖@(P@iSz硦pTԸ L0?BPOqO80[ hc4T@:QE +J(KIK@-%P)S!@(N)]sVHE掦M +8Pri@ +E4'"@ \ihԘ(z +?) p)] L +L3fO|5" ɧ +Nb QZ( 4ӉџjqN>ȥ@-! S =h%!5ɤ̍8HM06z]Zgw"%T4)3LAWyq(A5(4LKS @fNM0Df@L sP4u{wF+e18~ g%=LEԿ1H'ڣSc_AIs7BՆ_@(JZZFv4ۼՏuhAs](ȊAKr1h2 ܞ+F tb0).`m6>kB8@ +KIɅ A4jF!1@\RJNM&4sL-@-Eր#rJ#CJ?Y{">b3iųM K7fG5B>x"y"f2)BwrENk#î9-Ys(A(# 3ֺ-.Z5U\跀1aZ.XȻU@#ΨsC"5Z̻r8=qUʬ ;\6:0٥g[ޣ + KC$NaMeE@F0@piE@x> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?^))@;&x KzwQ.Zy޹o]YЎ H'ީFav1[Ggֹ-*J< =)0 5$HG‡4sOZai:p{;wT) fOJUoJq4)r)P!GZC֝H}()A 4L('4i =)|ISs/Z\Iޓv}hn1q>ր .NxZTN6" WT&W4ݝs] ro +{;V2 thGs@yv*ԡcr 'lLc³x瀩M(e4q"O"=3}>¡[sS1'5?Q&5,}h$WE>1@M=֧ 5,*&j;h V5>&})sӜ\<Ӂ%jq\P1@ +&gڒڌ +S@ +8~~6ޑMH"F2zw*-ńmoZ|@BNI4iع dxD,A v m Ibc'ded : qYY@TIe"Q)OOj *xȮ@N:RJSnl-KMRJZS@4RzHf@h-&i3HM?4f&) ѸI3LpIԡt +Rg5NiRCi1t\kEk-ǣUY/1H> 9}u˦<]7lH&>MӍ m8J;QE%-(Eފ(()hRPJ(4hi(Q@RPEQEQEQEQE +JZJ(CIJhRRPRRA֎ +;zh#/jJHҊSҀh){P:P-R=iրGj /jA@J(h;ih)h(((R@:QE-%-PEPEQEQEQE((((QE-RPKE%-%-%-E%-%-%QEQ@^ H'j3g?G!ohWj^Ab-ԁTTԀTR+@PM\T VVS84jpj44i +( +JZ(:mJ@- %---%ZZJZLRF9(&ЎZߘ@S@r:z9Cm=pŀp9. D9P|'>+K؋ m 7s:ԶokTi3Y22`ϓq5.iI)њvh&hԔ4 +( +( +(i 8M%Q@RRii((EPERHQ@ Ⓤ RQ-SKQu-3}FqQ +M8R$cfiXQnd [i !zC%Uy\"za,ǽ!4)dyv4uWVlVcW:dDKl&NZOBk\*ђ/OG8Ԁ4QK((Gz3@z1E-%-%QE(AF}(@4JSF(ZAK@ A +(4 (Q@Š((((RR@ EP)M%%J)hGz(@Jh;R;Qڐ(-@GjJց@@zZ;zhKGjAE-Q@PQKEQEQER@ E-QEQEQERR Q@Q@Q@Q@(aEP (P(4PRg()sEg);ih4QI@RײlzH?pD ]pfXa|p@4.M@*[nTKH$SMh CS})AS+$j> 0.꒿520,U`#jP`58SL hN3Fhiъ@3SF(((Q@䞂S̹1ڿ5?dҦ=ZAGָE" g]7-;gs̼+Yf1ֻcCE>H(aE%QE% 撖 )(-Q@-%ZZ(IE-4CEb E;PQF()h)h +ZLњZ)7SKPFiKD[B٠d7T{7P7Tdn 7RR@7QFu[ $gHf(`KG$W`}ĚLWMw?OZ3MdӍ1@4fIތffLEOG͎)NўPiqJp(GSɥ@):ӻSM Zu<7qQ9L-LMf$M-LM&0M.Z @ۜw94gZ׷g|AZv\hέZFﲠX>JeCF2~hE q(T@(EPERQ@4Q@!4]"^jjJ΋)ᕀ*r +*j3}3o@8cAjijV}`[KxF*1(onjƛ/jmw#~ɴ>ҩޛ)9 +N 4 g颊x{Rfdghi +z9" #(ǽ!POZiL;S + +6K@L7jSIւi0֏9zCL5!r)'3 nls5Tc$ERO59$椖oHSv}E갎>ɬZq/ҨhZ)(PQEQE +Z( ((bHiQIK@`-Q@ E- \RM&)1AjB3L7u$&4ԙfئ搚~L3I~i7SsM&$HZ-I$&{7݊}&0GI"mrM-0R74s@4`CSZ OJi944҃GOJ|kHQsҜҕAߚ^\)曜f&h~k#:T#[|Z` ?΀8~w~?O[{nЍpLr]׆ol &8ɥ$iR14RcL6F`Qh@h4L(=:I 478;!nM4*6jARnߊnqր%M'r[.<*Z$`=4Dsf>·b`LosW㷊1@? +".¨=ryx9R}mԅ8'W^ q.O c7p @1m;4 04S|ؑNUS@)qKI(J)M%Q@%-% +(P P04K4=g4f&쑏Ώ4b4y aLuAP!7(44i(aixspn(zwҚ@@ʋN W=\i{0/ў(fVXLz0ڊQLn=Rdv<85ncc1>>R(diM#?vT(OҐ0eGZJ&*U2NԖQqh׀C ԛ -D[rp JbHzVwޠJM<F)\,6V$yo"l|ԉIr3i0?4,bLkkzX \>{džC{qZ2NԦ|/ji)M%-))h€$'5aWne^j:4 !gφ%[sz+KxD}@RXNjC ҟuZk܌gVsFh@^ +q4Rs@4EIkQH)h"t{<ݧ*fi۪6W#L>bc4fY}x5"= ))i3@ II\JZZLP)i( 敔HA]_(r҉dS&G01@l=qGjORDH%b(hiOr(^IZPFNqi `^0;1(6ʓwpkv`H MСK'ߍt֭@ N K@i gLg֓4RhqM@ Z;R1ɤR4P۟ZL7u(4ie<*ZL׊b2meUTd냸{4r8JP~1jBiiK49w4#JXdijC%ғ5_̥,OzW j'lLZHs48@<7qM)0D@OZKAM rƒBu 85F @ni6u#J޴ @8S(4 ~h4x4f(ҊAE-RҊJQE-)sMfm(1h +Q֓4>EZQV\j5zl2sR +l1IhL \N<8{=kFIjSPҥ %) QE-%(QK(( +(hZJzPhP01Eh-% +tZ( +( +((aEPEP (( +( +( +( +(bQKEQEQEQEQEQEQEQEQEQEQEQEQERQ@-%-QI@RRPKIAR +\@-&ha@ZNQE%v)i;RR&(8RR1-0BhZ!8TZG4$a?*"Y:=rKnp1K+06\@(?7z#|[$}VVJ@"QN&9O0t4xgf5*E1enigU@XZ㑏5*ĿuMP(&)ԄPWFt>* `3Տ _Gy.i&Ԏ# +z({iw JnjH[ 8j(y?i [khOSmR#(.F))qN$Pb@"I曚ij8ni Rn&ZBhI5ni7za~(\~ijB٧`.Ȩ3N8Z7S;($ %!ԙB▚3E:;RPњ %:SI`R&=iҗsA&j\fA4␚\晚\=)  (Ii{晚3Hf⛚i4i Oݨ5;uGI@= ߽BO4hbߝA62T14,YDR=Ep_=WG9?55 \#?uzWK'N2S`d<sJ ,_Pեc r3Ra@yvI!Lu8K;fp}9[W6_W>+:M*H˨?֝ƌ6B?vS1Y+{-s^'HT7 NG!Z)3Fhh4PERi()QMfQL(&\Ph;ъv(7ZJ))h%(QJP:OI7PRS3j犄Z$|L^(aԅcO9'֝(ݳ +G4[i<̳+IavZ%&*{S@t6RNHf)z \ +P)J4!8I)L)*4yZuQ֫Kz nIHk9Q2M;(!L7 ׬w$L}L?3&v5 jjdӇd4of-oґ*4^p*e8S,5伢>=[+z5*So4r򨩣d֪0R@[Faz՘#E`H(1 ݶ924,*M=TNۓ @ `Jʮ }^nr[JO1y $Î}:W!8=)3S@sg JA 撜 ԍCNh1E ;?gA)]:{p7B: lsM<<Ԍ`LҘ/jcɠ ԋ}Qhl $E4 +^wXRd( ;pۓ@#+@I=*,ns +wʧո^GT#Dc I'=Rd] zSIyWpljBU] +ÔVu"l !l nR"Lc*)#4 +xy@8T9x5aNEWSհi Iޑyh4K 9P:HaފJpi:w +;E 6Y$h +h2G%9z11sZ:#m՛#˩H?5sHqՈT*b*@JiSMu u +((4Rv&PGJQA4(@4(QE( w(Z  +(bQGz(((((((((((((((JZ))hQE!-QEQE%-%Q(4QJZJ)3@ҁ +(i R)hi PE4u摎Qީ_gߵI$nB̪Cϔ1|qSgr>ft_bh@ʊ2Xf{5\رHuEDF}M)484V_IK@QZ(1v).hbRRNZ 4 :SFM?szΓ'WIs[5TK,Qd5jdK:m5bӽԫ(6]ozMFƹ]OAI J& iX`sQɀ*0w!:G̍VXc@FLT}[4RݨLl'84 x)Ҏ N`u. '"T@@_I S9 LVrٔFkl(qةkT%rj)(+vi3I3HbMZiH OҘC) 2p1WZw j( :1)8 EsI8SzT&*`C.}T€2+0}#]1ښj@db)N[g +`Q@qy?SSv¶| 򊍣$( eJTZšc⬗P@;P@0hEQ4 lԠcP"S,jAzߊ`=TX$"sTʜrF(\qRn#PXO֪aqݩƫ#y ++œ{i>,85,IjvͲ:+szWR1bOVʐ60 .BjU9Ȭ)'|rfMNaI <9lց_Bj zGv^ ӝy4 +\{T]82,ҊR8J\v䨝_z8 ,ғUJHۥ Vs:! jN}YyWzH3-9l25hj`n*cLA֜j@CIZ(Z((-KE%RQER +Z^)(QE(PJ))hRR@@Q@aI %(aE.i(4QK@E- J(3@Q@Q@Q@Q@Q@ IEQEQEQEQEQEQE +()(hZ(Q@ IE!4QE.(RPEh=h@ @.hi(#:Ϋ*9 y..h`[iz>{1ؿS$'@>q4}$zWUxb}U8TQ@4hPqIN%%( +Z(iåR @u! oA~WGtb ?_\ +gMhtPwלSPTVdM6?Sh/RЭowisLh&Miz&&b'-M/P^%2S ,ܚL&7~j"x)yjLH )ݲZIL> QQr 6isMfI@ E%-QE.( њJR@ ER\$EI*@cQ0 z⬒8i9HH & J7㱣6)@u%sjC (*: +pzPA>#.)2Vz@Pk7TmLքsZX̐3hniPG9&Eu5}u휊Ҥ +F;c6Qb~NL˜未zϭ!p֤RTi-ɧ0~MHp)<AS`❐)2 8@A&Hr(NҐ3@9)zP/x<*Ü=E4` P" ci0EX4x^z"GPN#QדM gQxt]'sG9M&"YS +~ u>?ڤ0\8_l)䊉# ?AJq\zF~U(3"Q'5s&SS,hu@F)E)B +Pi(%-!4f"h٤4RLQQE'J\i;PF)ZZJu7@GS@QE!8 3H:P-gAs{F[G-?aj:l+OH+hdbH'J`mA)ibOCqIQAwqq~5>)SQ'GGzqT/K~~ #2>H˲%|{wP85 ⢸}i5 3z@R3eqF(tm3P9(jG +@4(^iR`~ vs҅@Jx)M.isLuwğ`B s#mϪT/ƑhbtKyˢe!"Y&jGj@MFƓu0|wg+>)HhL +)@!֤sJ -&yw +oJ a iY=:py%qoz[n wqM0 o[4!Tj:}̃>iӭkã+[Ȍi\v9;{h:EOnhX͋HO Q$j? +4@KFi !24"2c@tNTP1sR@ E.(H +(KERRhhL@ĭ֢0s4Pa3ċԩ2CO*j>&*&NNICpA;6|W4 Saum j8jXfua"qLMƮ=;+&2m2ZVt*}Fr #ļ`6-e8i*It&i3LpÑM A@KZ`4Z)1K@`QE +J() -`RRE 1F(u֓8V$pTڬNASڔdR $A( +sOpZAȧžx.898=,x \挃Q@ Bͽ`WҌt4|AFQi'ڶc%W7h?0; `$j@SA6y&O<6($gQۭ&X?*sgsN jr{ԻLJ$J94;QKHHȠr}ifiLΞiJ攞)x)Ulu'4b~iT-=(X6r/',`#ր`)R2IcpL}(B_L4`޽SPGHz AE.Kr(7'zӉhqiTBlYO6Dxo67P1]Pi{=YpS^NI튡J͑dj\Qq԰7H߽k n{VLr%F#ث#4{rت}6j_/oZڑ^#@GQߔTxM #wy߬`v$I4rС>9n@F+hQ6r + 4=uғ41λ<,az\w"!՜ewZn<J 5=㚂3Ut.(X֓84QM0)8\qhJl +\E.hEW= 0,gZji4Q@4M8%3 2) њ:4f +9:r3ޕbi%=lVl}Ji?RE ++!5 +yn "jGORm8MQ3@h)(h((APIN%K@KHhԝh%-((:R!(4Q@Ţ(@ KE;RQ@ IEQ(Pih(4QEQE@Q@i{b-%(sK@Z(IKI@-!8@5ܠx徔xSwu&Y$mBiiH=ΫW{*4eoh!}W\H8hHs$GzqcD9HO(֊; wZj|u0/ZA@ KIZ))M%((4Pi3@KN +pQ@ +)@hM 4L&$̣(4h2pFg6:5A# +1qMKD:c[V"U 2+WPk2{O6BfzQX(VWUN>h>R!i3Q4RӀXچ[*COVѦ@=ݕśqr WA5:VE 5s L'29 *27B~{RvO5YE>;#V; +*x!v4= FM9W/R{&N( !Pњm vk[k{5_>:kq2/ xzB5煰~#<t3V/ɧL5#MJM4}%45@ +ܭWYb3[o1P D`"}hc֊Bi3@ Nf ) <RsK@-ޓ4i &}}iI4RwrGJvsM<) 74E4:h٣57{@<)=雨`qHXT{7 +Oa@@n*3 +gju!qZ"hB٤<EYOjG4eE2wM/ه+O.V1Z)\,`C\:#۽^ICϹ,RqEI4P>R@—4hP4zrH$y՘tn OkQJMWxYy=)rҀ-\Tj*r)F(((QILfP4PIZ)q-#֜+ϥJFj T"&ZV1cN[0*}Өhh=E-RQ@ E%(#4Q@w+yx5Mm k)F4z'm{H"C Lu =gOĴ пȠ %*~X>^fN9?zXF8,%Er )Τ(ۨF isH3J -RQKE%bZ`&)qKE&(-3Fi) 9SLPA#qJqIЊrXJ}jyjUns@ 2E@Ox=h E2ȫ;=)B(0HɧTeinn3WLk5vN$u% +Sr=k} dRc,?#=i>\{S4#?N9U#"zuR›50qKzLjiNA8 +"`A;Ooz2(ciYTtPE yhւANhLq(U95{RA榕K9w>5#ҬGz[RqC(SJWq&G3Oހ"U0zyXn»e,SCC?! ]MDR*H7SPRV[4*1bN)rzTd[#@#(R;ӷbԣ9#ށKjLvzũ8Spb =AQwAACsJ+iCS9&PHE +UVD@gTD8f2Tj JLDԸ8![&(LBy&-I,h47O2M<%!v4rP(TzV;جHSMNq'ԥCUmU0 V3[Pͮv\V j@CM4McRER:QHhQF(4Pi)M&(RR@IZ( +Z(h)i>PE!4RQ@ QFh3@(Z)3K@- zCE--%RR@Q@RzKH84P(; (M2(h5U"06e +XzLIRx-?})€-5¯qT |9 #ڜpbԚUTaTC%)߯^m$$0fPer'է+2Ҩ*rWҭHcu>F8'oXH9 kTEDUœ +.\s#;+B+h!G|T1M41i P)(ZJZ(A@P:)PF(#(a3RR%rӵ'$X.}!PzU~5&jx@QhjZZJJZ@QE&(-% +JZ()h +(AF(֍\aiPFd9>Β?I#H25%5QS;F3֝@Q@ +(@(1E-hdNG>՟*i.*Ō# [ pho ]FͶs8s@U2#;VQq[ * g\hcU3mYc>jWl' fA(;%sZp8;~L@嗂)%: K}-0])?4h&Pf4m[>gS})\Us?c2ϽUi1RۆO!m08 +z=j@PeLMYy8 fi>SfGZ +P᫡&lfIlR6x=k=Hޗ[k Ә`B4O`?w +~)g9Q3@Q,cm0~K&vx=(POBvsR31߽0;sIBzӂ#A3!Ҁ$ 1]Ғ5cnGZhM~4m"^6ph?/^:;H晃L@ 4=ȧMJ\TQH{a8>@D&8`5$fvS twVfo3 0p@kq޹KyLn+zmsh{ e^E#MCLyjf3L9b1LA +hb)g08PjE5YF9ݏ4oJ$`9L W<>>zRNjU5R +x+ZLR)S6S4J9cN"{\YtE⁕ҊF4!(}S :уLm8 !hR(iQJ(@eÈʔY?(g_ΫxKڤK8r _=ג  ipq@ +5-p9=:T/S!uQ@;Ƞ4ќ!sZhPKIEILERPFi(E.hh^;R44f(<&i4њfh@&i4RS sM)8M/@Q7&-Li0*(p*rg'%2dTp^OmWbѤθw(H49vځ`3ZZ)%ɟ7U袎!T&]}Kqz4t{(msF(Zu#>jʪ¨S4Cdד@&U|OJO5a()N8 q֣֋$v֪$]jF;#4Ф(cRY-=*G/Gl/-q+}jF I$=sVT;).I*{{ +*dz +b.+sS)FH(HӨi 5`znP2@`zO4 { +){oݹk[gFF]*":_z`pà OB f Ri`犈>n SwLƓw!S :!3QbMY[k8OP$nj2uƣq H,&?,eGUtWf`+kwu(a*Pf%E4f"Ԙ4f)qKH((Q@Q@f4fsIIK@Q@ IsޝE7o9QEQEQK@ F)hPQE(I@ EPIKE0Z()hQ@ E3E(uŏ&^IH)Hsޢ1ȟwUSSt44r9ٴ#;gqxsk8(?:жb~`A|# 2=֏o6^!I򧠋jL2 .^9RŪ227TX.kA s.N0}9OԀp%.hf))i(М R$UJހ?B^ԣ= +iSM+O%y@݀P;ɋ&y4Y[Wr[ +FH)bDAFrMet@9^+L0gqhۡag“֮.! +z zf{0*"+'i N &9@€#o-I0'=eH?yM7nǡLHWu,4V,*u/s)/gRGM$P!BMɓLFKg"lPXSȼOS)Ryx( rC$gߞjO3wCJwZg\SZFROJf㞢~aUXǓ `❒@9$ 35ݳZܥqp1ҀR9Z?R)c㡠esUԂ85pH96D/`6tfB6|"Z`h=AT/;m3L='ޑsMA[ +طeiӆ(\EQ棃Q?(/?:pHPyEfEˆhE! ]Ɯʤ#+vɭLeY'? 춤Eqvss۷HUl#QQף +ŊKc8@VhgjP]T !U&$sVPT3P!4P![#K3@NRNɖ0$j٤ jZMũfT2CrGֳʹbޤ~5P s 9j5Euo5ex#!fN(zC$8T@뺷k֘~w$hE6>+41LW)^f4U=QU10q4RRQ +QIJ)ÜHM)IBsP3M&yi 8\N.jirܫrv- +iZC81 2jXn׊!T*zJ㱃<#;U hf42(!vŠS=iI.bL0F6Y[zNFi3N3A¸;ԸF'5P9Pֳ'>d@@gCvhx5(}zԎh6s@#:-ƀ%XZ1F(ZJJ)h1)h4fi$x, W>5!-Q(H +镣=*&hI@ť EPE-RPE%-))(9TQ/ ۪Z(((((((uZ)h)h +( +)3FhAS"!l|J(4P(梞9 `:df%bMmb`v}3/n7;d:v;~?:dt]sҩɦONѠN5o.m'?]Q@>qJ, rjSHb>g8iHҫcG#4ˏJn[jހ4Ni޳؞&-LorHsiLS6)Mr)HI˶ȠKl5p ;צ+&خ2B@2)92{S8UPnOjS88Zi`)ZoFW4.0Ol?^;hR9ai\s@ +FFrqFԑVG]!{=V?>ouP]m͞FJV[t(Ӕ5J)t5mސ*SQ6 +0R9b4歑Lhw幫@8Q5L(h@Q(-vQZ)3FhqFxC@ PsA494/jLIvh M8L7Rހ$-M-G@-F*)9zijb&ɨS@zw<b+%S`SUdc (<7oƴ!-\P8`AlT皴53L$AG G\og U +4hj-8 +ZnRFi :hqQ '185 0Z{aGJ`;c'e*H ."[QҨ*f#=i3JI*[8O3;O5Bs@$sӷ)P=(F)=I墟,#ƽ4yڀ"d)8zjkIXBiLbb#ҲNju -sdZT>pۙ\wz9n:UiE!05 +[5i܆cˣ;d~m̈́U3?x*9Yl{$(4'=4}ѻջ]I'£ +敀Bi< ҢձPs,eAtA_dM|4BE;;e!˂?9-`ڀ*4dӰM-#>TY\} -5ns֪U5j]:ZLbAǭ<ԌxQڀְu<#"OJ +ven#1^qk,NtRO>R*"nԘIi) 74vh74b["ҡ-`M'RRR@f)њm-Rf +ZJZJ1KE%Q@-%-QEQEQER +((hGZL@ (cu!5֝IJ(4b J-4 +\R@RRRH43QNILjPЌ|D wE&d֝\ okʷaնq +`{8'ϙ{q7pN>ϽHk&m&Vu^؟ Q`)>$&}飓JA!$mnޕ&AM0KLS !CivrNJ\@9>vQR7@)0 .9wLf{f 8SOz^zoŒⰵ}+@o[Nkl:VP3U$˜ '=D*=*F# RAsJ:S&FzTM\l!1BN;ϓ@EԠb1R@ MTr5u `=87AJ9bz*0 n9N@GҜLc zѱqW=A%f'*4H]!Fyg}(Y;f48hC3URq&P)h)bnH@"M7w͊}4G+m\RLV4Pf}FUɩf^~zp:F 6s2{DI]ݳG8G*\E9( dkqO!9S$N|>ؠ +=*3T1923q@?74ըٱ.3@*'yMhʪ;R:E--@@!5'2Br^R'uӱN8XOZ|U=1|*DJ~73%yfO;F19'ppң=U؇+ +S:5ψ \4.{8#xOF U:i!F&jo&H 2{s$WysQY[$UfAm~3R1ɦ:)ŒQ@b8@)9Zjb/ǥ&tr9Q;ɑ1LF`ybTlԠ+W9b.X 4 pJpM>^Ev}<=b5 1# H 7u&ri vFi=qM'qP=82,SLbALCPXZm\)Xá'2H*.0y5jy +@>Akon?u:0bǣ1h#EFi\vERQ@P1i( +)(J(ii(4b49)c$w/THhVfPUmW&*sʟzGE,̻d\՝%6nOF5GNeEzc`F;W^{MSP0Yas&MӌѸBPfy, 6R{*( ;5 >ƛ_q@ +Z\%QK@ E.)) i ɜ>bETI$COIpiƮ0E<qǰcq5%  RJ)hR(1KERQ@ EPEPEPERQ@Q@Q@Q@RPE%--6:foF"}Ӛ4u +?8e*j`Ҳ+ *NGKEBdd~4(4)3K@SON(&5 P)8<zdLRK@ ̊ H5n4*V$z_8 MdydH4i̅mQJ#$SD+B=ifG908 +Eґ!CdҲA4.MF>M=oo(i/0%RI늯{ޥB> c\t5_7楳 1|N @wU-:O0`jm" `+8>;1*DIU Sb0lo3pg4;$.}Rbv +NGZ2qSd*{t%m uHh6N嶊pNjUQϭ;J`JB6ӷqE&ր#R[4p~cqiʘ<"~Nn(1֝lE!|F֩rf5ƱrO&6]){AcMkw$--8N=MJ1;u-~r~crj 2d\j#PhZPb@r:RI3m aKV;#sOC/kUd~kOѤW\y +kdzU6Lpi(UgaVl?SE̊>bSV<;hA?-wk3n+`R&ރ@ RiKIK@QIK@hwQ@Jp &(QFi3@hGji`(ݨy(hLA5JK蓹oF.fLLW@SZU_U&N~5"XǜsĤsQTNGZH"@IQ\6NKd}z@ۖ1S?4b&)hSHiE/jNwZC@ IҔ +J-斀@hSS0 pRP(4RQ@-6494L)4Fh搚\Ik(ũ7f.HFj"ۅ4B^d SZOzefHdu\gI]5y;b+b4X s.zUyILUog_+? ] o#F!R+m3}GOm +xz]tKrr*;{XQp(Cc@P1 +{U>]8%L(=,qQ4 GP Zʣ4͑5NڛcZ3UځDv8 +|%9 5=5W9 PjQ!^cހ'-F8R)aȧ@_Ҭ:*|R 8=(F$gcjX +̤CSSJ֜i3@=-z7UδtcQ)'O$p4x#hGL\dP<>ABp 0֐tP~=aA@ +Ai-$A@ +5]J T j8)A5`=[V]><>Eaڹ80`Îzl(x,ԬFyVOݐy"zz7ivyg2.IV~UFW#Yc*^ O3*7lU4;F=3]FpS4>fPE~<ѫ ,j$T_@1R1<Qp(6G&oFV9w=0-Xz\ܰc`Ljj,;z%򨾤-WG=p+dXW*Ei1%^:5B*{ץs9V͔ bM&2Rg&cJZnihhapzP)@XE)ӱQHCM4Hh6^* ztH +m85TKv +{,n!zڌ=do˜g^#ej\Tm:R*"Ӗ59f>P(31EH(]~y>iV!9հ(|H 11J(@N}ihIK@EI@ zP -iԜzP!;RR( :Q֊ZhPI\P3MIHM4fM&yJi8!nin 7Rn|w4jFf_n*װ~y}9?TTM؊6|❀3TR\* V8S;UV=sSǡJ-EI5(?A袠:ӝoRkjD.BքVxaluK]zgʭAd,ɮaJ"o8NjVȇ@*J]sҬPj𴤁L2@bj/6F=p(8#8j:$PƹlzT~c7;oZP63Oq A' (2*uGs`L2f99) ea @ i/'qVMЌqQ 1N\q@ D ~eR&#lۂs;i5̹ ɥ2PTu*W Y`FA:;P(BZʃ@ QEZ)3E)(4,ACT^mPt*I(LFR]M bu z.Ԓ {q@Z +7O@50- +{VB]K 2>ʲAzV)ئ+dfi \RPN)@ IEmRbJQKIE-QE- +(Q@RPi)h(( +(ZJ))iq@ E-PQEQEQKE%-PRr)Pn*vfc?0=EZ +O8݃jL棒s\ޣ1}ӑ@3K%5(u# =bZHRO?Y!M*LR▀ER8@޴u$jEv=zT@i}(NqPsRP4֢f< +k!E0I:sP0 sP8)9zd9L7# }i@(TԀ +q1# o?wN2W+ʼnP9M46+vԝ۶g`Ҁ-y5[vLq}3t4$z9y +6n3b!Cs~$dQX@zئyk5ϽħɨM!4Ҟ;5YDMYNi34Qٺ +@pOZQz.M;@k3qL2>>SV0*ո@#%tcVQ@ j4rNq@EHI#Uר99Fb9 }kHF + cX\ jV b&ISw*J{q8&V;f"j&n)TC$@zqOXR4mjhf_EJW +Jty^*) M)`UH<m>ZR Q,v uP2@C0@QZ={HRe!r*QҪ!Vc)ؤ ';l+9JM)4 m(EQ@ +ZQIZ)2(=E5GSKȓ 9/ڈ葓us!c=s@3ȨdD5lbM 0y4l߫ f'Ry"q@R<(2[O&wNi48b+)L3#"4S-?^PiZ_jNiM%AK@hҊ1@!!qKGj%- B)i( 7KIGjZLM4^gf4f3@ -@&5FM@1sQ̣֘ qQ6$K91D/̾H1ma-;z,Ψ2=XK[BoU|83'+JFc`sy{rH$tMX]"Sj>UUsv9p5 GZh(j9'U•p3QYHM[!#Z%"ƪɨF +K}+XG +{4h,oH$(C561EZ@F7yڔ,j3^ZHe#T;hY6Ȼ\= &Tr-@4["@ƅ,iܑTSK1qEQJdUdny9.ǽ4zP)h|N=hZ97 E3~E4'@ZyKPR擶h4 +\sE M 4PHM7}G1AKHtb֤4AAs~hњZPxZ5.xc9|f@i3AeM\.sA Umyh{ZՇN}W,)by{]:=sڃG;qep7H$֦f4BJ>x⸌«Y[؇227G0rZZ(X!UԌ{Sc.W.6JZeQ OثԴ;R9`X0!()(h4ZLQ@h4b\Q@Ģ55ZKRtLAZ +U0jڜ JǑxQZ3LQE%-PER4RPEb +J\QJQF(-RcFII@Cƈ0v6Lx@ +=)@OJJZ\SR@ H!zӨ ?|*M4`T2G0*ʯʰ" #W ۫3o#>TP@#fd},K+ 8_fa9GOFuq7aS9՞h˜nz9Eb=)X ԙnV*GJC$S +u%&)PqF)PhbJ( +)3E.i3E%-S g}A RKJZ((JZ1K@ E-%QEQE%-PEQEQEQEQEPu +rjET}L+t4o>ڀ$r^(ZZh4QEs +1J}@4u$Ϩ&QӰb{Pl);8Q){΂/&"ny)qN)-ަRI/~k RL OSQ9Izb;NiX;/5ޢ"pp75e8T`kX.*gpL v2k>i\ZiaMY@GP#BNM>uLz<@rēցK#8qt&4"[B-0x r v@jAL#PhqQ'^(2*71 *H1֯:I1)Ӆ1L4&SRqR)֭t6b؏Χ޷b2-p4ԠA \L[ITl۴cqh alI[&i0w4@R@4 vsG|R^D~Lic&s?‚/0J 1yr7}egl(1wrh +b{*.5QGHSh1␱3PJa%Ͻ4 HzM'z(&}isLf(RiFeҀ,qTg&Ē}5IBϲKб;dE$,rҬ9n`!Vxtp*q}q-ltV,cj5r\4G\VLROF EQ:ہUizTIN.#08X3@.2Iy Ҫ\tZi.84ۏpEAwC<=(I\sYW>棸ڐ gv#SA$a4{gr\TCm,G$_/co옍sڮy,GX : +NM#H̒Dgw<2ӂ>F>sCx9%dMX>٨í!ɠ [f0?:=@oJs_TdR.)23NLAHM p3QUXup؊P٢R?! \%1$(L4X4 M7P Rq@&yEzP4MRnh h&њ`+) Vj89 ␜TY(4ޕjB.c1LZd$@VdU@I?jpjH=b0SjH@h@ E4mf/% +cu;_Xz(m[ivcL;yz[hsD#ߟ]OA1L$rZDCL3^Zq EǠf㰻.L48nii u4Rf )(-&h%.h%\ъ@)&)hZ)3EJZ( EPES+!-`zc9F RREPE-R@ E-JJZ3I@h&)h(Q@QEI()QEQL +vB@Q=iĀG!,SޮpafVϨ asOdV%RLGhh*rUY]0$ + k⳧FbTloQZZfDU.Qm¤wTOA#*E=@yRkfïuv ?{Ұwc<w+*GC@sEGoާ E%Q) PZ%b TRBsSRPL[bSSY7Ll +UHZx`i«?r(Y0"-QLW ӳ@ EPEPQERQ@ EPEPEPRI@ E%-%Q@ E%-QEQEQE +)i(lj[( +S''J%+b@#E\psJM3qOX +i)vC0u@Ga  3g9#ґsb4*N3^TFm "7 ʹk+PE?S]i1:)3!Rq\V|\sVP‘A!G֥Pu8j`H +AV 8v5ǘo´Ӷp+-*ASe HHu3q4B¡@}j_ Ps +G`Y{ܷM9cK})+(]"8#5쒜@^bM$2`(bIk41[<-L-MIcBTdHZIH[fh&iju1!''$6a0H(ُk.q, azB9 4ib}+1ۥkA6vâ_2":mᣳ72>a9c9t=9vc̻!b霕"Mp2epkRA5R)qqYf'ofFjȣ$dlC#9OqJz2EN !fW iIH3E%QER +(BZJ7cJ ;4JZ))i Rn4f @LR▀Z(J( 5 ГVwԆ_#O1@ (44REPRRRR@ E-% +(њ(Z "C*}3WH@ +I3+4ҳV[y#{tf iA`w*7ާD uن(i g.ކ< qfr>VшI>k92nŃIwȨcIޥ\ +"4Pb(4fQ( +(4QI( L (n)G=)4ϿKi\TRmPZ] 1NF⟁PFjPxW΁#0G*q]=O>k0j&Zt5V@3ֶtЪU֤`HDc!9(h=/jnq.}ME79')= & .x J:P 'z(uRL%QHAiBh&i4 Rũ7Te7P*UeE'B}^3C42P7cJ~-`MHNx\):*, 6Uv&3i[xjKs[lEŠ4X5[pDj{/\0<ӥu)nV0(6-b=k@ZVBbѸ +@m!qڙ'J Qdwd7M&R&`2@ȠM!$ +Ϸ"7iG̼ 啲GɹP$ +Y.8>a=NidPJG%.q:ǞhqN>09TM;4h ڞ:R☄QJE(P 9ے L1E0 +vh94zR) R#PM!l +/@椑GJ75vwoA֜MHzSe8ZjpI7z >sR0 hiztQ*/He&+8$nRz'- BxjjV#B簤sJe#m4Ɏ3LV}雹D饹n4J`TնuWNџQL Q+58`kbrѝڒğ#w٤e8әZCED@ZE4-4)HfLP5 SȤYCր,QLKu!PF.h +j&Tai#?0r (=RQnqO ր.frSS>LњZ( +ZJ(hJ)i(((((QEQEQIE((G +endstream endobj 622 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?W"U4H<cCeHi)f4Y ֢N8i&c֜M +px4ϐ7latHُwX!rkBl#lD4bi! (MIR@ /4 +1FhIJZ`QE%R@4撐ŒR(`zP!u vbEHԉ +|uGVOmʡ)jkk eόU82(Ql Mk@4 QIҔnu@vpkeLJ9i}3M9&CZcBIJcӊq4##R!欩qZr,tHrƞ= $*%NAV>l` ev$"jo,z{)1Z0s@ aNJ{.ᚏL5<*6@Z2(QJzSE!4C3]/zۋϸ)0fl:չ+Bf1M`gJo"g9EgSZ|l-VsHp4PRI@ E%RQZ)3E4f.h4f(Z)(- +ZJQ@)(QEQEP(h +JZ%(Q@ E.("@%-KE(J1N"%;bQh.(1F)ؠ +n)@;)qN.(P4 @b\RNGv)إ\SKP)إ3b +f)@bPqJ;PqF)إ6Kf)qN.(4jQvGx a7h ۇg4I}D1s2 +'>b9`({ +[6ﳕ$uDZe|IU$ +(QE-((IKފ(PIKE%Q@ IEQEP(( +ZJZ@4((4 +ZZLEQGcEhRQ@K@ H)hbҎPi R(@O8u=ihSE: +N{QI@Ji);-) AKEQގ)E%.hR +3H(ԧ6LNQJRQK@hN'm)H' +53ݯ&NT֠N2!'rgHc(~SVtA>@'ZCRmR)M 4($pf)i:RgzP(4~ij 1Ԫ3@E6I: +Js z9$cnڐMHHB J0I*3֐ HiOjN)E64=G^)zqB`J (hUƢxڦ-U M/jM*(J3Rbg +M9Zvr)\RQHۭݣCX$ozm%y [z!0\6Q0n8]&^٫B* +I1@LP74PE%--!4iأ `8撀niB▐!h#4P3#\> +X͎+?Lv"):kzاJhGEŗj’G5$G8p9l4R +(i) -%Rf@u@(`iԝi n)ih6Ehdq@zVuۿ>"<]&&_~-pqjl?HZ6ױ=kf)w 4 X䚦\gYO wr1QeOXRH.[Ҁ+:Y&,F c@VO4 +iSJ5)2~)j[pkq~ ڳ!h犣'@Vd].\v&#9ҡ?슡'5zĆ!8T  +(PQE +(bihhJ(QEAKIK@Q@ KE (SIE-)h( J.)@PQ\QJ1K()iqE%P)@hQLQN.)q@ "SF(< +6c1OPq@RP)أR\SF(R@ SF(m< +\q@P\SJ4 +1O K1O.( +~)q@ 6Ѷ1RmmP)iq@b)h{i#[Ŵ0<ֺv6TֹHa`~Ha5}$_1@Ӝw9{4Ҩ6u\U]."xI=Cf3+ k7H035?jXN1)`]ڀ+Qq _C^ի 8gjSuh +_j +d :"kXU}Rnekk9hشF pS8io ' *٣,a?[Y%IJ @s@yJF~ޜtE"v#}jIParhF'*)=OI=uy PЪ/d+Ow'Hs覓ɹq M36ۘ#1j?оU˞,8OLnmGwcH9j/F.beȎԶzة"ԮfDʂ6AXB;O8ㄨn7@) RsKIKLRRIKI@.(KEJ)i((-%-R@ EPR(R(((@(!QK(1@4vސh4hRJuffZ3IE.iiBhRRP:J(i)i (4u4Q4SiKMP(CE--74f Ei((((R +uZ( Pi{PigO,SQdҥZ*QҁJ?tխj6=Ό?^JC/gsɚEԏdSiK'M^(Z)E/ZF8uJE4vhFEw7iUy%(zR:R3j?,$JĝgV[|$l'4,&NM<ZQEP̋ZQA#8ιс܊ޒ N W!I `v^0sHF/"d5>t3rQ8B; 3'Gڥ7}󪳏:JZ)RRP(EP (QE-QEQK@ E-R@%-F)hQ\Q@ \RH\RR1K@ 1@ )qKn(;b1N +LQ~(4 +1N.(c1@ 1NRJ3bR❊\P1Kv\P?hvljvF*ēi#)Vt1<Am& #Al`SdWT$9 I$pĚ}"Qy<.FHlmm^6-#ɞlX՛q,L?p4: +Z(EZJ( A))M&)){RPF(4 (CERS(Z)( +( +(P(hh !4J@E <(@Q@ EQEQKڀSPHiM%ҎK@!%H)h( utҒHiރIA@ E%RfQKM-!E QH)h4cLP +ZZJ)iAj?ϵH44u/D5(ͳjm8!ϭV=*m<\a) ) 8NiOR +fqF:y9'9!0=í:xQ +vi Jzrh2iF84`⓽!@ iqm-<(#@ NZozr-K`}j)#} 1>=S )/P *})k۟ +uWUsJcsձJ1@;21XUO^0 +xbP4h$!ghg98=!zS y< +7qXc=υ\^Cb5b_F9+C}mprTsho yw;t:>ݣ<Ӈ)⛸gրRR) I-('(S(Z(!s TKώDyʋ4m納@1_pQm.Su_\WK %QM6isAfъc )q@(Ef4h4bё@ ir€=){sMSFXZxxu"uo!_+`tfJϽm#R=F+?j_+|U +$mH0ⓨD\6#%KRSNS@Ƒݨ% ;v␊)SKE.{RNfuI# +@sQq?V)erU _ZlpL(ʃR/g:!pOtG81 +)Xh@9D˃@ Q@#Ю,W\IRc$pI5"]ÀXR|3Mqjoq:1HGY3UYS$d/:| QE (QEbQE.)bZ\Q@ E +P(SF())b\R\Q1F)h&(\PqE;bRQ@)1O9))qN.(Tmm0ڀ ߃O~29-U$eQ؎"\i̷cRiʍr2A8P$Vl0elP5 -QLPh)(Q@Q@;PQF(`(()h +3EQ@PEE&ihZ))i(4hR +S@PK4@ +9:R(;QJ%-8sL=M4E)M78((-(ZSM4AE cRQE-%PZJ(h4 +(%- (c){PQGz(J@(paKIޖR)hRӅQ@ĥ@!M8}OJ*8 +t"U8&ؤ'` h[)P2*5RJb`)))ixGqORdfMߴ'bIyNlJn: RϞWGzP6:@=I(UHJPM-4 I^$ӱAZϽOoÓ_zZx2oG C>RO# C'FܙAhSokp1BI/z8)PM+Otx@AN"@(4@Mj%4}p9/VqP bԄfj6| +1xv|*ln4=C a#?$#`qL˖!r$3nmUw&vE5`ϿZc\8&oמH8U%?0ßΣ[cWFn&#f gmt6cB~ҙj]4h] !m#Z>؇L**Eaw +QȦ:՘,@MUkH>]۫VgV!߱>9K~"[L) )jm_E(?߭0/,l.1Q|KYcKEhCE +J aBTЈmc1ڝ%#_L@YHğzAzUx#FG@唶~}oUid}&:(JehCo׭>{'nT=O˜ +lsՉeGpccQ`AVUQ@S>rj)7Ҍ(`(J(h4Q@ E@Z %PhQERJ()i)h)E(@%-RRIE + R (QEPic(hvqIڒiwuPEv4RP0Z)i(E(4QE-%- @Z;RJZZJ(HLI@ +J; %(RrhS0Pi uK@t3SMЏ,@M(LBTfO@8)q@L$j6@iG&-8 ZZ(~M&9$`>Ҕt&& CsKښ"`i\MY)pFj "#OaQ0nlv4ƀ'RSޝ?44PsLɥZR JCFh wcqJCSGZH)E34hmd+`Xz7Gc4bL+vu3" ʰO^R`t8"sYZeݠ/VʨRTғH3QBhJPCyc@MG u7~zyz@4PfM7&BM4>qE!@l.ixP){ZN+&q־I6/t9ӤS~o Gc* COQv93bPqJ.)q@ bn)qKv))pi(?3.((4 +PRJ?m(Z)iq@ OJ0-.)Rm +m.f6ԛhLR@mR@Rm #KNL҅iBPF-;mJmCJm/5.P=SbK.(=i f)qObSF(1@cqKZ(R@ EQK@ĢJ)i(P0( +( +)hJ)h(Z((Z((J)h(kPKJZJ1E-%(@ EfTΙtojqQ_ \XP_̀kiEr=wG`:ĺxnkHD\\E8T/f"!gw?-~cj* Bs%-UD8ʚ8Jq1Im5sJG(YZjR/l 9ޜ۬&z ϶Uj7N V֗i`ʲ\ +"P#4CJtJ0=Ihy$ M#usL.O L 0$=H8]z4=@3-1KEg=T-_@,qX<6<@ZwnQ(4^ \ ]FSooSm:2(,]?^E4ɞKD ][j$U85@4`Ƙ YxSG<ݘ(l= T{s&2:U. &rU!w\o;)$,ȕ@T9bXuR@n s֠8NUpRX-B=)J)a@)i c֜MG4cr[ڧ, +wx!GpsH[Cw8qBwuTz{{ۚi':ӊ#Ly\sM+0)8Ns@{nd?J_@ `|G9\7qGJnth]—gGqdb ƀj1D$uA\}hSɠ@iBӇOz2(oF. X}ph4)E'lԵE|ӁPFja4II)9@;u'4Pri4SM:)S#P(/UޫBM=-{[dJI(F} +E{*gJĮkOO%}Q9+,G$0#SNvfM1Z@TqSb`ֻ9?z\nu9Tt{U5O9?^|ԘqJ;RF("1HKv)HJ?m.(hHbh |ÞƘ-%ecu/7 Cȩ,TIFFN 4hM;ʪ\DXZ!Fb,GgQ@$=u,67nvs!>RVNF9EӤA6a*-9PY}a ɌmnVyqPCjR1@ ((4 m4i)$'RT4 ;:h5## R*gʨP$#֦ +(آ*`*3pps EW7X#ld ӷ܏s@`:*n:}M#[~s ^ddkOESUVóƥ[d&45szGc*C6R5SJ2{Ec?&br=\4z?"q袔[z5k]laH$ OTGCp*Ѵ.W-jϣGu +}k7VmƹxlJ6bBjZЯ]5"KHR`m9TSJ.)q@)ъ-Q@EL$O5(, c"d4␠jcKdQ~?wy4ydQ}sa!)<˒~XP2~T|(vss]['tfՄ4j"P" gog5[>oJ4omTgҦj "A⿝7P0)Q@?SJ$PP(њqmԹbZb(&Ni`P*(X-Ac@gy-Īzfa^= =?wjEDޙ϶i ӗII8n;URFl pk5FRFx+[AI|gZ\'ޘmE^uR]-̡Z)bdi` +[ՠmݏ'ޑڸP=_gi,,7hS;zi."$;6m2'ñB9"9P,\bh{Z;ƒȪq 4$9(4}.iл(Gy=@ywTD44s֍٥LUQ)*ÜVF"G 9l\P֚"CVC5|C3NF*DR;[a4Ӏ5j+:\AtemDers'Sb֗~)telHQQxzr3P)BNI'49"*r0V[5\9 )Ta<1ii3J)RhP1h:J- 4Q) QE +ZJZZ))h4)RR&JZozu'zQ֊(QEf(ii(QE-/jAK@ EPhaE-%JJZ(4MweF6ۣ9VUI/;CTi~;fe]4rG W!bCH*OS]'r)^JL`C򩥎'T*yI)piLa4ybךR(OPB](@ jP)MzQޝE&)@ǥ-%-'J3M,e ~p94BݱM''=N?1ɣZQا}x"5(=]/TxsdH׬ů&H{W̍>00:CSB4HKL29"=i=-VHI4Whz3W8^(`:3hvQ 3TbQ{'\g%d8ԜR-3S1܁>To}8 ṢsJcQ+W>tc㷴(" l(R1E#ݻ pژzEHvwu}DaS .gr6"ŵth$Ja,~[xϽI&sǔ9GO"5@ZsqV~n314m݄7ԆfȁQj͙*"VؿvV2R4Q)xc@!b}!%1ҡJTi:=NGi:cIkmv0 #9N@ä03+DC/Pϴ"E<ђ(ASL8'@\M>TeMI +Ijcfzk%Q2n^*f—6Ca~"Hт'|H$Bք6>;Zb89A2MgzP Yi᪚˴FGH$(ZDSCE"ih)ZQAP))EJJJ^Ԃ J))@( P)QE% RJ(u6J()RR@ IޜE7( +(G4;PE9(@Q@QH4^P3!3@ !Qސ-f)NaN0 .iAQHvTYMUUUoUt6?M|jIʞS@hQFiWH#3&g&4fq@=*2o0c}M4zHME6G Ti@$p LSrI CdT-; +&n$t= Y\ +\܌B@=5ܶZfQPfDyq'^[p3~ sXl֯Ea@K"ݣI7rqZMmjH?ŷ?t[DI3kkjHu/ZY$ZЂbU}mrGe %[p b0q+fۦ; +/oxWYcf1uSBW8&7֥<Qiz\I `S֘E.ڂ<P9d$M: +~)\o'$΀$ G'$N|AiHS9S 3N,ǭ0=A7 h@\6ǡ=+?Y_Îk&C cQ +S J$@n(=Ya +~h ES +)9@2Dî1Zl@iEFM.HdM4ihIQ@ )G6sHM ZAK@Ťu)Pi) MKHh{R晞x Ӻ*iWXXի/l\wHܪf+%LX9Ȩ&qHfkkSO k]j8vk#,kOM6mI% # F*mFzR0j@f J-;mIQ\P@.)@ ǥ(R@  11@QLQ\R.)qK@ F)iq@ҁK:P0sKKiq@ .)hN(ZJCJi QE%PQKEZ(R@QK@ E-R@ KEQEQE-%PQKE%-PEPEPEPEPEPE-R@ E-R@ E-QEQEQEQEQEQERR@ E-QEQEQE%PQ@ +;Q@(R@akEX9*{~%QA GaG;}h$@(ic= :=om%SUus"Wy-lڏ>R61S]Uە{-fn(՛]J+#p``:+ g9WI{T3n*1"b籩HT5_rO[)cU[0RyvJz<(U<~Unm?#)bA=+I_€sHIIK +#M"݁=Ԣi61V`.- +%R1E摘NY-~H2}XRw1ڻUӮIYt#^r#DP9bֈ3$RO& ke!`=+HݰUUF4=u2riZX0(m+nrFy +iUs!n枙=Y1ʳ7, xdsZfu".}8t.:lYE(!ه9x۶!QEHCQ_1xKn\n^Epfe<ѻ)ehFezgQ&z׷D)ݽ`LOUѾ|ӳj@;D$c覃J (@ N)) JJZJ@!H)M'zu-%-ZJZ((RJ(`-%-y4S)hv +) 8RQ@(1KQK@4QK@ EQ@ +\RR@%78PR;P("@ KRP}g4P(c4Qvy]kP#)eƩO#9$)Zvs"=@Zt8"Q⺥o[ _sU|3hVE+㣵8/dE¬wl iv]^U %,L87Qs PO\iƪkfl]H65J2̱ME遯ii {?)]^wI|I 0] cҷ`="a&WcGx"8|g2qgy_w<tQJft"XKRO N6~j5p"b%qu!yg$LqʒB=Gr 3\$W<@SsOqHM?ms@"ids@zu7nH49ARxRYI)I9YT`6JEN~ƀhϥ(~4) URiGoqO 9ԖPь6}h<} /@ 'Tn:sS+SaFr`QWQڃ(}飺g +ܜWE)J@6Ozsg)4 Ppr:vb }&j<׽#=K @VbI@EBdt4@fxZO4z ) +(h)QJnyg*gP|CVԋC9ef\pTwfYI#29!{$ KqfS늂1z74E ,9y'|2|Ғ-2zr?{@R)i!i)@ -;b +և1AҴ7["sʥSbM%%Bh*)T ;5*hAA4wz sI=ހ4(AzP1!'RAL~4OsO.(=miҔB)('9ZQqڪImn&h: H:P܊C2OW t&8WBc4ЉX-u +r'uhyކ}qR1Fv)hpi{PLsO +hb.(P)6P1)h@QE( (RRQ@((EP!((%PQKE%PREQE +(bQKE%PREQE +(Q@Q@Q@Q@PREQEQEQEQEQEQEQEQE0 +( +( +( +( +( +( +(Q@Q@ E-%QEQGjAGzZ A@ KMZJp (m5??:)+g( ?oSֶn[#5qܙlW2iBJÈWfaWk07$={XOJxKu9,*["=jD0 +?zv֓1S@ 1MUMŗN<)ݚ_ =BԪm5az +mӖ|ź]#=O.9=ӫ(y +cu_jAo'񨷊my4 ~ 4嶕}h{q~ ya4G}7ϥ#ZYHh'0JzS[E82;Ӿ9A  Χt } !OiڜM 4Hқp)(NE9cZP}(3N +CIRDi JMg&n{$4lڙqA1\Ʊ g7s鮗nH=I$`@J K<ڶTW 1}hWF6zznZf0r 6)1Ӕ(Qg3QS UBXO598.j&M_`!jZ+[hcI|~^Ձʟj6Ub#?@M-_}v Uyei +N$1([dS0:ٴ,V2}("1sZYvF[00!v^c@m_bi [K)ϢҴŏMO|4J.(DHO$;/րmgY_RKL*$%Ē| +z ø4RBVS);1*֧Ʀtݖ*OmI: Pjz~4lɏNؕXwQNRV'E@79H{Hy늭yN0Aj)8bHiIEd wӟ #k(w)>\![|;x]>ƮFE \ҤTP%҉ Ckot) r74W)ҙ0Q5?z8IWp*TeI>dΌ[±4I s5j\ck1N.; iFP*3'vM-]%EU6 gB H`zѻisV& 8.$嶗PrTǽ0jwyJM4,;ymڀ!捻B>o4`ڮ%ԡQ&4hsU,i2hh}Ih?ZY%&Fr]ݪkipbvnG@ .J9X&B.!Urs)#ICrn35,e| {T$?2>q=mo9ZL=GԙYy֧KYV90K.E!4j-e!Bu%-%-RR)i(ZC@)CKHh (M4 +JQ@ ޔPhwISIE +( + PQE.(GJCKڐ1)sFi(MQH)i -EC-JAA +)qF(R#րcRO^ eSO+pu īc V|O\7}ʹ~B2)#̀ 2z^nI,lְQcˢ5 ~vIERk-> c 3WA})s ThSQsSE.f;xgL|$ V^:RɤE:PqK\Q@ 1KE&)1KEQK@ (:n)1ORO4T'n-*G4v Uy mJU;O][u$GoMfVAr$_ǯЧ#T'`n7=hW"2Gs֝Ҁvi֎-@) Tyޠ@ZAGQcPњ/*k\M]:ѼfmUjk-̟+eU,S~yp*[a~ffɞW?X7h sM7YT8H~؄OΔl6jU8)s0Bɘ`1RE + ğ(oZ wS]6rRC޺.^r8;QdbD'ְ4,b2>#}=HcI硤"ӊV]Ɏ⎪;4GE)9*!'pй=;Tq@m`PRъZJLR<@TC@\OBh* 3>9׮)6 +^a7Q^]>zһBxm~ObǙEŲɞ{{܅B&pr]=Lc$=@4~a׽7 L#=0y G +qߨiW D~*Uu%)m(rp49oJm06(@0BԄ\Iϥ4zS[Phx=j`j)E*6hZ3I)f4C@Zm4Q@KI@܃jt5==i07Y TQ2s\7xGLB#-=ZX~5YJ]?(`]4SHRR@ KEh(KF(K@ KEQ-!Q@ -%P : +(JZm-PEPEPEPEPEPEP0((((((Z`%RQE-Q@PIEJ(Q@Š((J(hJ(h +^RZ;RR@@Z( +((EP0((QEQE +( +JZJ(AGz )Hi{S(QHaJEaÅy msF3աLjUocQܙl+ u$4=aaRjY\8a40T0|p@*ülaVz}]Ljl5o2ّy5an#D#y )Z-e Jiңk})%# +EVZChIԂC4y`}Dyem̧TQތ +n($k*!ɩ~"Ѿ~t1W܀x@e+A+:zUL56eު1F*Y| c h1I&֑SzԒHJyeLR=0i$g8X$b3/nj5Ḿi47+,x9Z_֪SZF#ր/8R+sIKڛQ@Q@QHR +Z`(Z(-PbI@%)撀AQEv@Hh@ҚJ(4iE斀@Ӏm6S\©?AH`U4Bဎ=`~n݇4Q~cJc,w/ +Y K!˵# ֗2 +;il[$5oJ` ??һ0G>cCqtIE 6e>s֭:*nb(a1&M-% 1E +3E( KEQE-%-S(-Qu% Z(RHњZJ3E%%03I1@h +y5B9 ;XVnpD=+խ~٦]ϴXsl#[sN/fsq%; n_DGlUŰ\~?RjtH'ˍ=vf2E?H&v޶=i h$lʣ i\~S +KO^3h@ڝzsS`!@ڥXyN^)*k J@PrzPl3R95XP@ &Jq@=_ r1Nч+w89-ͣFN2ZDMluyijUrUe&,Zڴ~3R-̜-!opjZ&*DOS>3dy)t_SP>gR}Zw*Y'ݷO\SI +b7Rd[Qp}@r6 jRGer[t *ibB,:VA#~ZܼݡeOn}ErF),n Ĉz#Pq֩Y^ \;շ`y149>@jqiy}h1Zr3q׽(=Zz.jc1E\*ɸ:}h)A(sFirzQޅ8s@ g( (:P1BrSfhE9E!RZL0-4 fW j<ˊLYd xzsZJ8TWQzKs&++0/KHi`R +u RSH(Ew%KH)hJZ((3NR((hQ@(J(JPE-%QE +( +( +(RR@ E-Q@Q@ KE%-PQE +( +( +( +)(4RvPN +;h4)L(IA@@hH:T)=E +hHi{P:RAҁ@ +(P(((AEPEPEPEPEP0((B +;(@Խ4v:R +QҐuK@Qތހ0qT:n27r?Sʠxz u'>U g_CۡZяEwOMFȫR7yAH3o(.9*zGéV*9pMMXeI%lFS-ίqd +1J&+q@-"Op 5g"-LTUfc I $!\4o8P +kG/VE9UQJcƀ1/D ε"i Th#UnIy#t!GMc*%=)f|Ublpij=jx ";TsSh1@{b“iT2QYD2Lo؁TH~f&E3p}di,cAѠIV"@3,@i#wh^ݞ11j.ӢGwlۤ^#DQD399(bM aD$w9 SZAn@w$KeR3=6ҬŨ\Oi**cgos2'n4PҜ$8ti #q@nJqP'L0rӣx?3} ⫁K"T=ׂ)Vn|Ɔ}FTQ,D֣=*xfY (kwϝR{ +—jѶ![8g<UIa`%R@)9 <ϥN*SFx AۅV.< @˙˸f :LZ((4)?ZpZ@N"QGZ(KIN@hP1E%%;`%\ i? *bVFrJmSS>QK*1N}W5[:}d'վoWa@TG<^ OjEx#8#QFs#uX##z֡=wH:UNo٭ʆb{7jtp +䏗sUѷX/37{Tx H■_+b,K +K'H@=I4aE£k@Llm#Aƞ +u0+d?5?\gn>U(փ3XmlmcPi4aT4 &4bP( &i z{?#*v1i = ?fzpzM8hzUlcO3PnPs]% +?69G]$Uff`eSEʚgh'g #S@yU8cP}PneS)gB)B˜(,1Mgњi Ґ搶)$uo/mIHhtqS#TDdb\֘fŦ3E%&h&CEv4 iGP:Sg&EÕqVTR3:=瞵k-Ϯ1]eLp3T>`?+\(]-) ;%H H)i(i-QFhRAQ@ @ +LRh(Rv(-Q@ Ju JZ-)(Q@Q@Q@QLJZ(J(h +( +( +( +(bi ;P:P(@@ +ziZ /jJCҁҀGzAޏ=h4j;Qړ-ZJ)(h4/j'jQސGR)1ǨHv=(m(J:Ru^Qފ-Q@Q@((((((aEPQEAGzQIހKڐ)GZJZ` AKK(B} ƫműs*3Л6RP!)CIEf.P)9.g O2;ʻ +^ERDy -#4{1/Wg{_s,x~μ`xY[`;*sZ)"Z1Zv#r=5iWg#yTHO/܈RC/<>@^*&bx`O+4!?+8l$ZXUm̫io{m[c*5Nc4,=V" +2qUfF 8#lP.rK{bKccOҖ[H-[kz(K hHqC=j76@ X4ezdsL KXW'U; + #ޫ=&-y2bp=H\PO +F$LL7_j؝Ajw" vBXAWlh=$QI30 8 + +ig7Fcy.Z2T{Ef$chEy8 5Jiɠ;H'jҮYEc<2!I:$ +CwS׊@])mH5 rɡ5 hFCF?jH{IOu e6Za*ZNdA:unEdaن(E3M7m xd*H>}(;EqqYXs9[V\oJ@(^m5dUkYUV%-,dq]=O#63-3)}Y!۾:R5cYPWq4 +ۚBu"ҖQI9EZul*Xu( 2k"&'ȩ@:0WhtN6*á!88`T4/ddT4A#sGk1c p8WQRv5 2 /JcՍ[i0zӒ|֩S?5_ 8Uݴ2zzUa0jhހ$jӋqMHM-E.(p@< `U.f8 BW/.1sR03IuZ%_b{'F O۫Wy!UDf'hZSZV1EQ1Nɥ>SqQ&;3 y}[TA ͼh}BSW(-%RRJ)i)iQE(J)h)h(@S@)4њm4њJZ3EPEPKM)7PIfij4"!j0ɊFbgi(Ai0y?JBS +O52E-1}+GudaaLIɽ_w+!klLf:o62s6"CA4iȤ1@#42::NiH +v8cҕ 4zwd`Nւ/NJ]3Rs8 R;ѻQ&;@\9nih}' ;9⑇LvQހtƅ9%M#tp,FOR+ x7̀:< eIC{Sr'qw-npmt!Fb+u5O@rzӘޘ$i#9'48@T(㸩C}i .i\ԣ9Swxs8M yR(ܚp^)3M.`-%Lp|<.qXg8iv;8>ƀ#Lk9<TяJ&NV2:H=;wƐ +pQ\bwD dzWV[.>SB0t E);S\I]zci7 +1jm =j@ +T#ԁ&! pG$-9m@U9i9bVE_Ŗh?υN + @?:Z)nRip)i(ztviI1I4њSHM!4 4z5TcWbi3Mci4Z3M(<3HM5,[ s+NW7A߈AjP* PQZysZ]FsXSTfo+辵ʧhT(Ҁ3"rB܎bm!1[Cnhkcp +7b~-mf40ZV γ$Y$ vn"I AM,@j_A D `/51>H3zR?JkS *OBi28"<1R;G }h6@ÞiF2;LkD m4G rGNAkrK[yVqvnzR1ʐ}(RNQ ANk4ʤL&L\Q8Tf%@U{yn7* TeO,#5{YC)x ֣pw(Ȫ]{vRv\b)5L}dnL5v@g4 S\Q73X +04TtQHf~vR@ǨB!L Kk;֩M5n9 ]jSO"жqj=]zUJ\ُIW<&WF+"#ր#Fڛ1vi'4,IDU :ƺv\[jw$nkk<-&Vgkd21WB1Te۱Ҥx;պiW !Xxdȩ%<șH+@!X:1Nm Uw*]MY֝\\pMX]5[S,Z7H#,&8Fɤg-iͶř;Ějad1asC?ܵVh[bLyG&[[[ʹ'$-#@d gvi1 ;T9Ԁy84yni 򨃷cI$L1@r7@5 ;4;4Qvi(4QIK@%4 )(4RPM#tъJ4P(Fib(Riњi9l/vv@=cGL(=e MN +~j +3:9}tף<>HLǘ~wvx6dR91åE!QKHh(Z(R@ E-QE-()i;ъ1ERR@ E-QIE-RPEQEQE +( +( +( +( +(Q@RPEPEwAځGjA@ +:wuҐ(Ґݠ{Bz~ H~@=(v(M'S@7ޥjF†@A҃h( +( SE(4iO4;RWz~@nCҗiJQҐt(րQ@Ţ(QEQEQEQEQEQEQEQE ))i(h=hh@ڃKڀQE )i)h3KE'zcE$Baź𽔙{pb~kE>8FOKiH=ymy`=2?J7ˊܖB42ʊ=eNRg''LDbm:mzWcHA L8CBQ[ț.F*r`Ҟ NJilj况o%e׮>*,n(mo.9[n6A&<; :1M24@7KǦjScn@6#|ҢuCEXt e5*82֗G'YQARQ1SF&d(};U庋+}JO'Z@flj1 39͌UyЂ@6#CbKG$ >`{n(hPpG}B #vnԩo4CG=mV%*A@!*i纓H3/O4j8WӗP+jߚ@VU2}MIb]9uFiq<vN 8YCu4mrphy(yv3Ώo$,T'>\%sT概kgB !k婸q$b]?V0n +@R6|q֙0pos@ OJ]u~v>vGk1+ +T"'FHe]*H?o(& h5/ٛ,96dרMm]V_QG<ñxOU#՟+RQޢ5+$J\v3-=[ey>oi"K(vQKE+2hɢ (]Ē/.k¶7kr}9_ʷ;]xgPmG;<›ؿϷL]J \BqEkl gVͭD 8oʳ5o"ټcYw$Dߌ~Tu(qQk2,bC$j~[%\[y_Γ–hMHԣMQ(( RQ@ E%--Q)i3Fhi(E!8hPQK1@ K\RvEQ@ŠLњ@SI&3L-M@HMFZ^K'1X/M/U| e-FdKQy\Rc4Rx +\IA4yfJM04d@GM:-ĎEIkv5$_k쟥h}[[H#PiU1ɸI QH'i:Vrr+ы@^캤 *kpOQV5Lexk4M3ޤbn8KRWyJ# Ԛ˚k#=Z#Zuj̊9aRԙ&IrBg8ȦSYZxDJ'#N(LISg;9dt&x@Ș`tlr*(Ҭ9>9{0A?ZiXq@gxeHN@^W-Bj-*D~G].= GZ:ET CL rǞW+Ops]eʪs(`YU֔R' KzӇSIqڀ='k{@$JBOC(4 F{RH&07=Zly`sFOTg5} H/Lf$ݎ1FIɤ2C0Ri =hgғpED[" C@BqP9=h-@Kp~?W3 "~ T9'S2(h7ˑ֛"TE07B;)yzs >Ҭw:V2>ֹh\ `uI + )++NY'E!09@NT@q*8?Z3M3)i\њJ))sHfNaHhL@ M&Q@EbqR)Y5viv:P11E-% cV4hcGD) SHk29C5=k8`sZ,~Q1ZtmoUI5gv=P#eO) * H +Nii(iiQHhR())h)(hJSIK@ E-%)(i( +(Q@Q@Q@Q@((JZJ(E%w'z; !H(@Hu Gz Ґ(Oݡ~HvB"iߥsȦ!XH塺P>iN@}WoCP!Oݤv@@t -PAAb{څ@~_h V)XR)M!KڃҎ Qҁ@@@ +ZZ(EP (((QE((((PzA@-!E-%PRQI@ϵCDsQM:6MR;-4Ī`}7AV%%-% +ZJ3@ IFhC@ KM4)(IK@pU`zX-n<E4W<4`BϽ-nհ*qUGEmA'? +G8vl&MѯVQPvɪ5;h V +K"OSוVÞ)H=2IS@>szn^~4 7ÝҡXc‘'րh y˟Zr܀HZ7$_9"CsDwvΌ>ɴt +4|թ, HXd2TF}3AJ2:`S(@ djV,y8H?@R .=C ΣbNI5̽=1Hemku9j$y& C 8طv\[32V?wԓJyxB1jZ`ߣeUN@\bwy$1⢟Md(qD--ZEٛ"(]էsuc&|4\Sk>0ziG$/"P izh[OS<"5bsT?,y5Z"5>1MkxoJ#9̂ǜ(fHĞW5vzJ?צ 6cz*Rn4cu{ qO^ZTrn+#w_ڢ3 {XPn)4)4LfII3@ E74fE%-PEP(+}zΰ)5_]%%\id HۃStIk:;2~-׆u,np1C~u(d`5_xW*~09 4ޢX$EJ+M#mBa6?iXC ~*ZE"u 2A94Z))hQ@ IE.)Lњ1K3qN`44fBgz@KZHdd%1Jd4`Li*ƐE̦5r(Ͻ ffE.ih–KH!Fi4f3@ +M4ij69H +3M^)4Z9@)-hAc w3u;4n+YN|}JX#'9 lI]>tA] -ԃC]jvS00ސM \T)rrp1 ɩp\S@ fb1Jǖ>hȠzRcw&G5d⑀ +DO_tjgQZ@FE*j``j1ҡ2=4m`qY_½fO>(\45u9\~-~'=L mƞY#R2s+癐i);z;rѫ=@mb7'm%8P)Hz +vi(P(u +);REPEPHh4PIERF8J(ARJ( +( +(Q@Q@((J(RPEwu@ +ziZ /jJN֎whoHho@ /ݣ)_Bw_@~P> ҁhүzA?zZV~(uQ@Z)MN;P;wzT@=E)4;Pi{P:P:P:RK@Q@(QE((QE +( +( +( +( +JZ(QޖERR@ ފZJ(!dOrF) Htlؑ>3SC4#t?ʬUk14J)h(-S RfJZ(2EPl=Μ_G{ớtg;(*m(CwzH]D7MZr\O?{ Rf-hrtz•$VTeusVȳCi OFIa1O.[YX]2EwSʘuǨaX-JZLњRfvh3u&`IL7Rn 3Fj=KCd JizC'/L2T Mɒd!ziz4ȠNA4;RPdHh4њZZLPM&hŠnhݚC3Hhf4sHEPa&fK}&,^Pz85;8}huBZbbgQ=€,_¥U5N8!Z`^.iT^+'[HXAՀj"AП3瑓OTUGX0Nj=?HMS07߹P?٦f̳;1@VN|,E>ˊ>)v< +Z\j16I>R=ݸTAnOumr.pxlVqtYh8pѻ{kl8gx] OjIA d㑊7t#486ysci˞i6F3@4PM)?4no=hwH[ҏ+4lR +hg\JczRGhN(4i H .qZ]{\C'H1O "p>r8J3ڢ7qJQq$1܃NY]B|Oojݸ{u˪?McRjr0soHu&" ki,RAҺ;s +HQoPP?2㫚`--!4-.iPNӁRRf1HhQEC@ I)(q8w(9fCO- ST5J1tZjӽ bh.xV7tR¶5l;&r=Muna>"?s2MR'ܥ4m%-!Q@- J(sEP(4\@-%QJi(:hii)h((RQ@Q@Q@Q@Q@Q@%-%QE%Q@hS֎=hjZ /:Qځ);ҊN h4B?ޅ'zP1??(nJ/zTu4P @Kڀ8b +)@ъ1@1K@ ڔQځ@GP:zҚ;QڎԽ( +((AEP0(QE (((((QEQEQE +QIK@}J(9'U@2U-t5z&#rAb0*@5.ji04A@QM(J(Q@ KEQEQE(QE + \D=H}*\+xQv?土\sڹYhϡtɡ3{VK@a+ ٱW뜭s7'lM2Zh14Z`=&Y3Fv(/'7NGȊ5(l@$AK٢FI\Fi6?i Oހ,(1"b~Lh &GM1CdT|md.NJczU .sLOYyhPԟ'`O֑`C +1@UQzh6QjMp@8 2Uķp#"ٞ"w>Iii2ʙx5ZKs mK? :ɰD:z-<=zG6Ҹp^M9<8<dס* -Mh0.!8Ǣc-|?ݟ-X<!9A쫚KIS; ?jAeim$ +3SRi(4P0Ju%%3E%Rf((@QE0 +(@LQKI@)1KE0 +( +))h(46\Q@(f-&i &i;2ȡ=3FhtG-sk9ezҥs,J]9g5iRoc,"8t`7rXI[WjơM404?u&ꄽ&u!jQzd&d %JFIq403H Rnf⁋ny4vh43@4iCL4RQ@@ ڛJM!8AIBi&SE/Z@:f@AjnhIM&?\pre*/?R;bԆ2}+A1z +êB-G#ǑCPA8J(] ,Y +bƒE)P:qKB})E=Ifsޔy4MN7vhvisQp4sr)3).qQ@'&iRng˜ұɤh(W"tM Hs@zվ6ܯS?.s u9#Ix_f+F?u}ydPi PjsHNx>( )Ҕ +1)|RIa@9sPs*ƫK o|P0z7H=?%R ecM.S cTBd!t,G-Ts@8eM#*==Rp?3^F-&GiwЄ52p:QGsCl?;­Q/5pe#1O`$wii%mhCL +pg("0yh :TzE鵐<U[B:gRyr<3dB-Z@P(J3@8u\isH4f4PwZ1E!(=h)PC*qRⅠ R-<j[_ZԖѺ 8S{ӫQXZͻzZֆy29PC]g2/lֹ_bu/:IiM6?N4oZJ w4QEQސE'zQ@i(Pފ(=)(QEPEPEPEPEPEPEPQEQE%QE!4))i(uJ:wzҚ;P:;P:P(h  iҀ{пz{@*VGPzzP:R;P/zޥ^C֔zҚ'j;R ((vR(GZ;zh(((QE +(Q@Q@Š(((()h(((PAI@ +(@ۓAWcS!rdLE~ j͆T=<=Y RUCTpiA(4TyfE 4RRL +((&i3@ 3IEZmc48Y`2 ¾ь1\{b^V w)WPx &'[ˍ2N~0)ǽwZ,7T1VbY2kJ4X@bE+JZ) LQKE0RSJ@-PKIFhh +(bZ((Q@ E-% +)i(h4RR`QKJ1K\PbRb%E74fLRfMHZ  3Fj"`חW\+Ks\'.7dZkykYyzWchQ!635#d/M4SI,RhE 4Z8k~t +@< MIL (sJi'h&O8g3M\&i/jBi:iJ`4d4M45s֚M7u0&ߊ6zn!n3H KSK{U$}i$T~4 7gA'ڞַIvp:Vm5X+h(n%۴U4_xpjZ+8?(&@h +endstream endobj 621 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?cޕ4yc˟ cHXMҙ#F2ǭ0L3KSv1vWI"faQ.1Kj@Ld#elej֓~( m39vLO4EH$R'Xy4M9(iX n?+c^Ӝc'DIޘԆ4(juR'鶢^4J@ii)h3LQ@FE4SHi .)sAdg9SRwP@Z)i 1AA @"RJ(&QHhC@ E&h(-Q@iM%iiM&I1ڞj6ԆJI*,y"x)qMK+2>O5wa0L +AZxKYhzfsqy HtuPOӭt*s-T4ȘOf`(so?ΔMP_ h¬f#ո>" vGB"\ҋf[ LTEgqݓTa@FE|-@v^VfKtS}Mq'iԇ'c]zܹ C]&h" +hS7]G%yլњW>#tbFh叭4IJ\њJ3@ 3Mbњmf.i h%J(ii(Q@S'Z:PIIu恅(ĥ%RQ--%aEPEP њ(I3@ŢRh:L@ KMFi`:sKH4f.L4E!Gf3@ 0Bc1J +1ƅ(7O\Z.h%bGO-?κj3NV9i|( p̪?Zq\ۡX|7+.;p=ո[v#Cz~_5 +o1i EǜW(M0Z2zwsW.d {#/t[!O`w e(*{Usd Ԁ֟ԉ c" R^QQy!.qM)@.(1HR*8-J1z&N4$ +#4c"R0>6aבQ9wP"M7& RqzIk8?ZSq4`  !jBivMJf%#)0#ϧJ9' u"ؠ`f8'5. J@1oj8E Ҟ\&$ Ah"GrY͵7 ɍWiZE,lYAZd34+C7_ҹ[8[ǧۧ,kl. +)-dh-Z(bIK@Q@-%R +Z((hE%-- +u%PFi(RRfQEfJ(hPњJ(ii(Q@ KJ( ihi(4QA4RPKIE-RPIE-QFi)Q@ IEQERQ@Q@Q@Q@%-QEQIE-RPEPQE-JZJ(J(4ERQ@ EQEQERRHzZCҘ [ZYp߳}`jc NcCz2KT}>Z%y +i)JwoznyPHM@)M%)(ސ1;O-KA&y#@ +iݩhFiH :IIZCFi 4QFhh@ Fib9WIBi*@*Ds}P VI_ +4DN?JW khxw?2z9yfopZaA]rj˾~O>R}v +.8Yͦ+(@C`>1i\v8H?LZ8g yF]~2֓w+$Eո|ّ%g~WEL2 }oط5zs+xcԹ4&:)7Zfi3@}i3M4(sFi(bQ@ 3IHh٣4(IE.i3ERQ@Q@%QILBIKHaIKE%Q@ E:RS(1E-@ EQA-fJZ(((-'ZZ1@ I\QRPQK\PqF)آINQ bQIEIIK@ IJ((4b0h(sIZJ(QF(IEf(h!%-4f +*?wHJiPg;O*l[4@/$f0)NUҧhtj! Ԇ3Rc8 > +s*BÌBFM);)1.#?]|_pUOuW]VK+a IKE%b`4iM% %%-% PM4S%\uZ*)M%IBiv=(ecLǥ-̅2{ +Of1}wY` +xPi\4m  ;4(4IKE +(Z((*ŧʯV-N$aqNqfCqTzЙz5?r @gH㲃TsCJtPE0E.(%HMd +H⧆{|hMxU@K3brI=jEM(ɠEZ}5̰QIE)i(bIE-Q@(h()i3E-RQ@ E&hRPhQHh(h +ZJ(i(-%-RQL)QA +( +(-R(Z( +(QEQI@ +h(J(i(J3@ E%RQ@-%RQ@RPQ@Q@RPKIK@Q@Q@%PQEQEQފ(((@Q@-SR7U5o܁X::[0)нZjjTbQM4;4AE0 +\RERh4֝@ĥ( +(=( IAPh4sGzZCҘO4H3b4$i \].'}t=.&qiTJHt=0@i*iD? ΋XHfNY-9$>wJc\0m?R. +۲{R'ñ΍"~.#_A?[Z)s`~яBOIhQv;WKCnՉ:[G%>>W02ZMÚo4&hFsG4&h4Z\њ(((((QHM +)((ZJ)h)i)h E-fS3ER(JZJ(hLњZJ3E(JZ(R)1N4(`Q@ 1N&(zp1Hq担Š.KIϥShh's@?Z]H;r8~)1@ LPR((R .(4QLPE +\sE;4aEAAQ@d B>9H9"4z1BzP<1<}Cڢua@ sC׭WzRv`Rᘜ*4jқԫ +iv EҘ3S 4GPǽ8ɑI!8~i88&q=h1nzR*}ihPF8T<㎦s@`棑9o*O jLrԞDx@!KmN\ſsRh3֜y$ +>3րvޘܹ#+40(M)SNxl0IjPf )>9'*Ҹ͘w"0U*AsE5Y*pNqDfSH挚G:h'5v2L#Qڤ@㚄{U(V2KEa1KIKHbf@ +(4JZJ(sESh%E% ))EA)(QIFhh4fJ( +J)h((IK@Z))h4R(h-%f(ZJ(C@ E%fEQGz)i((Q@fJZ(LRQ@ IEQA(((hEPEQ@EKIE +Z(Q@) +;E +JZCҁ s?կXcknBfU\U~fgEUD 8!’`%(杚(J1A485/zu4u +)($bKh4BnyQ`8S ▌P\Z +6 +O2Md McHgSVڿ +Q\ڥ"2}GZ=C43ݛ#tgN*Pr}c3׊`\"R} ?y3ҚKwpaEhITb{O*k/}_x!=Ȥ '5\vvӉ1>a@Qݴ 2󩱑A)pi1@ E- m4PKIEJ(sFi)(ԔQ@ŤP 4Q(RQEQERRZ`RZJ)i((J)hPQEQHh4Sih)QEQEQEfJ(sE%(PiS 7JQ Lq*(NrW:Us3LE$}[QI_ڠ ?c\}Nj@Ƕ*/<QyQw-I6{mG&Jo^IMygYڃ^P=,93Hz3Eane'ԱX;9c+{$%O|SC'A@F8^.f@$>|kE&j2${P4Beq!C%^?4*M VsBEbXs{U]>yȮ[ZcQ*ˎ%}(Ɂi0%SDZiId/y5ڐr1Vw6M;͘LvҔ G昅''4{@XwQ.R;p8`xo(xD992gހ+ Xch8)LI lI4)”'<18Uɠ Ny#o~7u4q z2X50p?:bd԰\i*BriPo1#0&PEޫ s*A>9"\4aCI&EUIBP0=hH WyqRn ך(2&1Ңp7fjw4$朱af=( 9m4s.N9IOQipb"&mq@HjtG]& $rx4*N<ؤQJrU>F)pi(IJ3KI@ KIE +(J)h1(R@ EPERRPKIE-PIE-%PE%( %)6Q@Q@ HihbRcZZJ)hQZC@ @&%Rfh 3L1OelIgIBIiSK7q^s~] asno K9M-&(iE;cbZ)JJZJZCE)h%fJZ:Q@(i)i(ƒI@F)&݌jX)#قrJJyS5x#'u9fgte{H>#mN(֦^8暌#|bPc8*:Rcp*Ơ99)@)8PP_Ε- I1ՁӞEU +c-ǥ^U~U +n6jqj˿Jq'Tr1QjēۊUuRpS J40qS ObESl=qP2Tp=!+W; H8 /DdiP2F_{B#1[xq|^ $p)(&yi~U@8?tT- ;j"͂F!؁nqVPWIң ]I +57 E2INb[;U|hI1֛Q֠/iw mg'4$}(s@ַs[w+J{QEHQILfcS =v4(M'zSM3 UҚJ4@@4ʑf-!4v03@!ZP 6"LERLb(( +)qF(5ĀF RGR0C J'JtZG]tV:L^W88B+؈_61PIE(QE Z)(((P!h((Z( +(PJ)(Z))EQEIKHaES(h IGj(hZJL@ EPE!@QH(ZJ(Z)3E-P )iQERQ@ E%RfZJ((()(hޒJ(h( EPE% +ZNE% (QEQE +(@ E J( +(4S@Q@÷cE? ;x??:]m-rvdjU|UXgޭ>cҥM4thBnh44LϥJ0Oj_-& J 5'YPsP} )AigwM8=Ӻl@>:,}dR#+ȱ2PzB"ʋ +{g($]皡-v|_,U F̴ռ)w7<u~uIUqni(S?•R}xub\xRLJvbZ\4(O1tk4 Sdf餆27Zp9?J ERfI@IJ(G ! џjǭWSHG+ tY)lDlܼlI=^@$>GIRD'󧋂~+q@  Ľzepw&) Db)GcH 1z5s)r> D<EΥo)Xļt= +rbH׊Mc{ұcXK@\Dq$ =朳*wyU 9QS 9]ZhdمX.*<>x{d>&Ś)>\RP0 EPIE-RQIE(QNfQ@ )(%-KE&)qKE&())q@%.(QERQ@– +CKE E&("n)qKI@PEb(RPKfh!4K@Q~7S3E?4ng?4f)3E!P qPE-%%!bZv(61ERP1))آ +ZP(1IiԔPbZJ0LiQz/zi@+KrILTA@Ʃq;d2iE8_zbē֓{;r)Nwq@ Ҝ )^OJl@6z)CN4ڑQHd2 +$k60ltR-(QuqIy曊`&("@ LSF)R▀\RQK\P1֊\R'@ۭ&qҁ!)7A dS~O#WI!?ףWEssjI2/ߦRh))h)((Z)i)h(QEQEQE-Q@/jJZ))E +ZAK@ KIE:nihRJ(@RQ@ E%RQH(4RQL4RQH(ESIHQIFh +()RQ@ IERfQE&h(E-%QEQEQEQEQEQڊZ(4QEQE((ZJZJ@- +((P)QE-%- +JZ)QEQER10 +ZJZ(@ 藼*ͥ.Y9S&IO2jFT*-ۥ<V!a?;J4YCiYU~GXW+|C+}8EpvΦV;W7}sY; VNj1v\V\]cC*VFe" hɮe*N^*lPRuo{fv\mM@6:d昋?alvѡ9+N`?Λ*c6Kh4UX[c + ;^O\ɐ?jnVbx(bF^W_Tef*e-ae/Xle-o-Zup2)ԟP-J[1$ ta20a(泷nanXӒ+d_Wh(S7wQdKkzPw (("I "14LP!))أQ1HaE)h-%RQ@Q@(CE-% +Z((JZZ(((4Si( +ZJZ(@%-QEf!eW+-E  aO55Q@Q@Q@PFiqIJ(RъPbR@ J)i;(P(4P}`њ2K ޚ6vy1j}ٮasN'bmlqL ;Rycwz&9NHh v MUcC), ۜv]Q zyl2~TKRH,ߕ1V~.pCր&2c4ƛ'5!.j=i&ǖjx +g~ާ58ŕ+|ƀc֝h _4ђ3@ '1j02=F] DRo-Әh:#wlJM=\ۚv8l~mM9]s֜ ,FM2dW +p}j'nc1QNxK|4`SS4`sڔL=@!p b* N<)F$/Z D2z8TOZa ܥFъMXjbǏJR3~S֦"6 +qNu^ƣ49-$aYLpfzPk`QE50ԍޢ4RRPJSI@ IKE6z0ڣ~8FM7"jFKEDʒJ8HZZfij@\Rb sK@ QwZP)Q~)vdRbK".ڗmi^iاP1N.(IS9 2.S*a \Tl1=z7Қ@c{Ο cX,14޷|=e(Laih +(Z))h(Z( +ZJZ(-!(-%P1EP!hRJ(h)(Z(Q@JZRRE%-QI@ EPQEQK@((Q@-%QE)i)hRQEQފZ( +(QL(( Z)-%Pڊ(Z((-J)hH(Z(PRE +(RR@Q@(Q@P(h QKK@=5#Kf|;[C;E12ȑkŤR9e>Z@X<kg+t:m됲yӵk [9)f۲$BT^<:`cQڪEn9VfF{xT/~aֆ8e Lzy@FSZAM[\olT&-c"ROm[>в=^\:Ah2[Hw)ifX-ʞw*Ai9*GKʠ6w36sO)Mvr\1('#4<=,3Ƅv¦NdM>EoJ%` dSy$Nl)8, ,~^-^9k._N|$zV\wƘ0;lǽK)*JE%8RQҁRPLKESI@-%RRE +( "8&iqAjJ1HME&(4 JZJZB)S&(6HTzS0٩qF)ypC̴%]E/u++z9hnLH\aP{Pl~p?}*xzZbL> =2<8>Pȯwt5:^gd=vFCO,@m-z;?€:#Qt0{3=5a.ǭsqc>Edk:{j1C7O35{2*]EH.hW`yٸ{Vh)'Ncv%TSrlNDq$C@qF**ue)1Nn(:n(4))h\Q@ E-QES((%QEg(PJ)h(AKE%-%QEQEQA4PEPF9  ((CIN\Q@PRӨP)qI@ E)P)1KLQF(" +JZC@j`qAÚAnjS9lMYb9*"RdS +zz +.Cֆ\ +K< ׁSO +O[ːv{HH\rETH܌Ym`@Úc"@&(n8&(G1O"RN"L~Z+@R|) i\PMHE194${bKrkkÇW +9U0eBjkʆ)h4 +ZJZ))i(Z))i(hZ( +( +( +( +)hbbJZ%-f;4)(ha3E%-Q@Q@Q@P(i)i(h%QEQEQڒ(Q@Q@EQK@%PEQE-%R)hPEPIKE0 +(R@ KERQE( KEQEQE.()EQEQEQKEPEPE-()hE.);QF)q@YrеA7ZӇDYzĻb/(^B ^ l%ūZɒ'0F#f^Zs0)s~JUP?k $nw`$ffSwcSȧŦ開oUVH[e3c~d^9}ij0?֤E7XI^+^ J(ڠc?S幈&k$T:[- (;ՙuDcH{fkv GSX<0Ru4V? wukp[ywGjI3AArxfiV#3c8`S@of;H^9#%@=M]c㪸IHa# s@ᣴsѶZJdN%>-eب[U{Aj@)s}XV[k琿$ӥE䂽׿iѾ +S@ S-,gbݥl[RҬ@elv iFV8G#4GDGdMe"'y4#α3~{q@\~^*%93Xosh`K tάrFP0 n`Q$ğLc&` @#>X$pzE4=EFb]@Jb{Re +b0zgxFW,wx݃VީfU;٠A?wqP] uޱZTcH*A:2^ѫ[}jtPHAF~TKV=  HxFjEDZt5e.ސ"Iq=n ~SKӌp~Ҁ/EPC}in;]$P*ڥ Kf*sN ? +E"ʰaipi (((JJu!4QE(( E-%RPEPE@4R%`%R4 +ZJ3@EQQJ)i1K@ ER4RQ@ E%4RQ@h4({x֨LwEUl[Pt4IFK@H!PH!Ms8村JH8T*@zrB3FU64HAaǭ ҠN1v=&8 ;8>)A9X9v*5%qH\E)>xp| 5bU4(׊`H "sK@PXi})P:ҫZ8c U=R x 11} c׊=qQn3ǥN6sg{s1AZoB(*@BGă@ 9=qV`N^@ 3RB09s@UMޔE.!NplԑAQX@d qսj55sɍ1U0#)sҚsֆ 向(G8R RngVSh%߇' <k<ҙSnt'$ddDj9<)\qLRsS9Pv| 7Y1=1LL.W'kLl'0FIVlyUGq3LS@vށEң=jCQJJZ())i Q@iژiSpihWRRbC$/ydX梃 +4VN\i!jR)i0Fʗ`gfm?4@0ET|UpTscP(RbLRbIHJqE-")P$xf#P'MZaj58޵8}w8^Mix~{ +.qU{UzJZJZ(( +)h +ZJ(h(Q@ EPEPEPE%-QEQK@ E J)i(QEJZJZ%-PEPEPEPEPIEQE-Q@hJZ(()h((J)hE-%0 +JZ((( +JZ(ZJ)hQ@ZJ(4PhPE-Z))hZ1@ZJ1J(K@ N( Z`̇ЏKjC@O +h޻Ǯe˟]T_zb9i7ެ?,PiY4{zg":mhI+`" Li׮ab*g.$I5?5.y?izp78<\] **TMϛԥ.gրdd?gvbT$\y$TKX@bT'9n-D?qe!U/2Ys=1O9RPZ'&.aHcSfyYXշw|sK +ssI JCKE%-%/j3FhQI@ +(Ph-7p vuE--!Rih4-@ N4s@%8PE- +(CN!i\60E=4P20NT~ w9֖P}A'd?JiZiZ@?Źu'4dG^F8ud>wyG\Yp1"؜~ Qcm'ތh")zFwG/׃OK-U;bn<*}58!T(&)آZJJZ()(RQ@ E%(@ +ZJ)Q@RPIE-QHQERQ(L1hHhAE- (QKE%HX +is147RylJqK5m#'*W0l v84h=x9M~4_@G PɻJ zO?\.s4 "dժoO$ J9r >3clKRyv7%41|:0 !ڿ֯Cዶ#͚$ē] #50]Nv%6i 3W>?D0>y%oR%5/A@jP a}YZ[n4D{~Eul r]y.rjW7cnUJ)i)h((((1F(((h(!QE +(REP ( +((f (@(aE1@ KEQER) -Q@%-(E-R@Q@R)ihJ)hPEPRb E-()QK)RJZ)h((PRSF(1E--%PQ\Q@PQKEb@ )hRK@ J)q@ta?ҩx|N3-r|oPtWXHMBjK/#4R0ʒ?ZZikr k9EmٳЅc߷*vMĠ IȤ[[%per Y7gDQ-J5+"[י#kcF$,G10OF +*ñaWVv1ޞj0=ɠ [ 8zTR[)?0)18"2N6?˹`TMtp@Gx gQÃG,v͉2կDvF=hWu03+y3caUyL9 ZG -(&(CE8Xn-M"1G85CPcP$ +UyI m۸i h %-% &hi)i(iiv KEJ)M%0 +(E ֖ +JJL҃@ Hh4PRR)QE +Pi@ŤSIE +\R +p((hKH"BhPڒPbRH!4 o)̽ aFca&>Zp2?v>9?3nh^Q3)n& ȭր'Kzn6߭/sj-ߡV)ZU \Tt5ϭ*unyCRl@*}d%׽L> UA1ٹy+ѤqYsS-Tl^p2zg8ϥS[8?Z7Bz1ړ5E#UV쟍?7J y枷SU4P!( IKE +(bC +(Z(KE%QE!4\PbRњJ)hbQKABQI}i;T@Rf tH"c#!GSRWM(P:@.=((w#\ҖC¨K Ҁ94gu!znMW4qOlA#",𦤢0Aϵr UC 9$d3cC#H.[$c=*DR#ң21 3L uN8ҫe=#>hb>RzR {U7&(K0EWV +0ˆ1=1E:2֒Ixa(v#1^I4"朤 Z]RR:S4iWy~5fKZO [7!>4\x4o,q]zxK\͖2Zhm3Oٰ8ݻ'/dfN%a kBݢG{0ť]gb<9~ '|>{j58՛j\_ 1S V>'^]FC@}1R}a?>D8/hzYOMNN>iRn~'_{aɖB} +j(.O&@bS!֟pM@MԱ:/݂?S@8궋Cpj#C3eaW)ϭ;Żhtq(h\&B>Cb>BئG?SK򎟭Fi+qFnYIf79;V-)ynb{ E(9xoqO(Qd]>h?$=Ez3e.Hh@s-4OizV + P-74fafh)(RRm iM!a߭0T97H-Œ$#3Ԛ RL.=iwqH"h搫civqM(T95=A/Z`DFj7\Դ@XxRG&E9#4h CSJNMFi(2_iHppЃޭmRӜ*" փa!ڧ jOV %j^֩j +ZJZJ(Z))h@ EQER@RPIJ((i)i(QERR (QEZJ;Q@-%QE )i(BEQE(QE +(QEQEQER@ E-RRъZJ)qE%)Q@)Rъ\S(RH(bRb&(-%b@ E--bJ)hb@ E.(%.( +JZ\PQK1@(-bb +J^4bh 1Um#O'56<_OPz4]X1*ظATHYЖYI"(V3ԊYr`9뚧h@Ӝ7wrH*. BqimYnYs +b4iY៘Յ$pye5=?ҝ=[ yc* %R@l3@rB*QQ٤)P>R;gyf*v7BX؜Y3pihUa>) I' Iqn +1;SX\ݩo;jF@^S|ǻӚ8 VP|ڙ=H!{ 3 P+ uV,df|,Ճ40FJ@StVFݒ*ڄ5ڮ>H܉7kN(4!ly#ar)o 2+SmnKHv%6}dƒ.֓)0EdN#Tfn=Z?\ޖ =>Su{|; Z$MS@@<1 *\U;dxVK_pLrq-'y| N@ql"͹=>QTJ\Y?o?n&}f# &?* 8Y Ǽ_ȫ*0z`(RV.:ļb1kir}hs$! +Hė0=Aζx=y2/aEM*W?*qcgEcW6RytAh<d +!=JKP*2005HKěy9SyM5 A4NẕH'k;+HtV#M@oQmn(]g=-G.iM5A=)KbI=jM҇4h)CHP JTaHużW^GF+O>/]][GyAHi󬃨5d7seģGq[pNRd +VocU%&$kdӁ>98>29Զv_CW;vgU+6&7{5H;YKHJi! 4#ր4Rdzn %=VAl~#΀+=xEMs*gEgzMSܢjd"2ܳF?ƕ<#i_ +8j@Zuo,QP*[)"5Z~A32=v) f(4SXS GޝH޴@z⠕NhB)R`FED뚜B(]"LjGJ˃-IP#)QE!? yZُ)0*jY? +jZ3"ߕXNEǪTƠjm Ӿ剪u{Pڨ(4 +(J( +(({RRъJ( +( +ZJQ@Q@’QK@ĥQE(%PQZJ1E-% ))ihPRE +LsKE +1KE%PHE-E( F( -.(RHъLQuZ()hRRhQE(JSK@%--6(QF(bJ~) %-1KZoj)ihS@ .(-ZZJ)qF(KE(4@Qa(S[ ~=OoƦ75blQLu9@uo+A4n<5 ҥ][(@1ʓLY[ǑHcX _.D͊QySXSDsqQ$dx2 (#8?ʝkmh$G^K-<hRU),c{ΒJ3ypms#\ivGm$<n4)qL j wSVRRE[( STi35*q7}MM7PES"/EAQ@OOҠl$I(fkIqllc*ޕ&}A^>9Eh\ԁmXT7w1c55dܣ֜I1acb&<dJ8)j1*>v6iwzP15vwIBM)Z~q@"@=h@HXRbRc┚hF2E<#IԊ4ۿDYG&@ȮwROT8\RkK0j@3KQ8%E K# \Twcra=k4Z%]dzڀ/C X6XNa|u4.f !Iڐ:SKh 0@"SNsZL>x@>Rms(+DTWVKs WE# ]R.?RMY%%I w4.*-T/EASu# GjM͜i +96An=^V0C`ր!YTGz5sm5Ōz'QٻL +|JVB~:⪁Hc 9MSGh4 i4(b`c@=M+MJm3fTB)SM03RwJAeȨqL fUհjUphJkt?JPsMsC$/WV|R`6ASo7"?05}i'?i5/ғFb5h}㚥rT(4JJ)h@ PEP0ZJ)hBRR@RQE-%-PEPER@ )qK%bJEbv(:R@.(E%-P!(QKL E-QP)i)H KE.(Q@QK@ E-R +n)iqF((PbP-%-Qv)1@.)hbRJ\QE&)ih1EPIKE&)ih(PޒLRA(R)i)h4IE))p큎i$[y?3획&SYʽ= +ěldVA +`\J4WYecL_:^,IZ24;n5h70ܤjzR6/R4ȋ=NZcm_}s@H֔in <QeW`I ~]L>Ny PY"#ں21%sԛ|= eJͪ\ ?f3\ͤ[e?`{̋ǡԹ$4drj/Ҫy)?0GY\`)bO3˺Vu +;"inRI-s@YUd.sO!1gzɓL(}(nm44vڗ~:3N)y=+?s-U6+Cf}9%#VYpwƹfm7SxI!=Mtu yqݍRW@7S6sҟӭ-RsN Rp%.iyҊ@.( KBh2 h]{TGj`r.Ua'=kۂio<ה>r]y2qU4*S@LO4h#hCv)Oz)Dd}M'j Fzipih}ivԀP&LSSY(Tf9m(\S@\[ulcaކ-Z]ŵtn-ᇽ;9~[k"w‚FR`}2|fӔf K1@ J iNO o>`&(̓=v/R)IGl#OsoIGN~q83N)cgM54vj"pة B*0݌T恉E$_9@R2)LݴԒ恌VzRǞ^D504(!m@(%&)ԔPfc"DLCi(+gzZB4+LTN>|/@3\}E7H8c5 +O~>sZ7$}IK@ ERRPE-%PMQE-%bE%QE-R@ ){Q@ @Ph +)E-%%) ;ъZ(1F)hBR(aEQ@Z)J)ih1K(PQKF(ъJ)h +\PiqKZmb +JZ\PbZ((R1NPQK1@ K)qE 1@.(QE +JZ( +-%-Q@-w(QEQA +ZAK@Q@ JJ)i((Q@Q@E(1@/jLsK(na|:h;|[r?BDO0Œ{)k#%O-DPQ4N>oҍ*@%A @Q^SFVK\sR}rO 2MBYA75C%cԊRѯ"sM1UFV'm7 g 7#$AsOtGc./;l=bqSde/әmefifhَql-ZuI$V 5H' 2*6qOMKn2X/mlFF8I\ZRS󧶛z,oZPK qQq0?T[o3SU93i +?zZcGP/&٨XTvɫv7y?)p9OnశD=d:]>l=XV"MJHnLRfcWX#x΀.K`3 cO^ڬx%':4o\T-09c<Y؏SצN\FK>w4&8b +V{cH܅۹=hX +$C@y.Җk{=Oc +))hi(RR(( +))hi(4QEf +ZAK))M%QE +Z)-%-QEQK@Q@i8n(ih)h)i(bZ +m-HsE8QE! +)hh@%:@ Iފ)Z(EM9$<wGޜ 4QIHaKڒ +(I@ E +i(4@(4 + ֗4wj@RL&)Mn)EI)PL91lc #RLDW +Hk nR0sֲ Ƅ P1zMF'ȥ @!($|HS>jyš/ښ@7aQZh)Kژ !J{a94yۜЀ,,)*>s4!#4K481FӚ~x)E9".:P)):/LӁ!6Jڗ4 cҐ I7P& + ՒsF( vRj ==4 -lq= +@reR~ueGO[q;pJдg:$+8 S(" S41*2(:CF)|ZH"րgFRcz4n)|4ܚ3JT@ +H* 1v@V1*k*d=uF\Jc4`2sS&;-X-pA]1.(P;PG4aBUg[cm Z}s@.!T3mk-˞TRYڐ7\ԐohQApbHp=ͩG&?Е͏MWU$kƣjR낃*[MCH i鹳@449FO5 HpQ/2463E\$X{vbFq]B.9ܟvo](YǔvL$p6Q(0]8$VVk%)Mud=(>iUϩPmX,h48ij\\h-, v9N(Q@ J) CEPh +((h4RPE%-Q@ KE QIEAERQ@ E%-Ph);ZJ(()is@ŒRRR4Q@ +) PKI@PEMJJ Rъ`%-%lb@h!4@њJQ@P)h) @isM.hSh +CփI@ E%(H)s@ KH .(RLpc +SHuȨPc(}E*1O SAJ8WT3[0 v^27VP9,l0EI\v R)5pE8)O"4tJ>vBAT]tCPR ) 0i,3+(5kw$W)1>C tPQJ(!!4\RZLQZ(1J.iEekkRkkY%aXsOip٩%6!8H+d#15ӧch +{pZ,\G՘:R)h))ŒPRS(RPIN&(\Q@ E-LQKJ)R()hR@&)إ)iqF(R &(-.(bbKF(ъv(PQKE%8Z!4QZ1E)ԔPIEQE +ZJ3@Q@ +) P)i)h)i(Z)(Z)((h%'z((iiQJu J(4SQKI@RJZ(^b +JZ()h%-.(QE) +LR1ARPb@uu4'?U9'#i,j-Ge[}^i2;EKLGbowY[洉++c~hi@y$ Ӎ66ۡ5 "ՐVӯ[n8?QmP^uvQ*Yr;5@pZ!]|I2NƷ5 @+ .BeZɑщ9bj{[J]фqSmmF$tjè)"F@hI+^!cl#v1M.ȯ"9 ɪiWw* ;ceKNscLPLR Ul|Uom񵤟lQ;_-^,"UR95oe!o$dov؜:`E>ecC2Nm.s@ KIK@H`i){Shh /z(qJ(4P"(KA@hqQ5KQHccةp#}*e*P}DZ%3V]F9ZԲR,i qN4^nx!6$N$Ѷ3@K*7ُ~i& >jx8 P=(vS@ EJ)8w +Z3@ I4hAK@C@4IKހ.ԋ @~4"Eњjd2\P@*'ңa+uSJ7)m8 +j@&=*b(qF~F3HzP]F햌b|}*M$+><ȭRpx{T4Hr}@0IzKYVU * ՍH$RqpaP:P5 $t4K\%ȥ@Ss3@8L/@i0=MFXJ\Rړ:м#֬̑\M'ZQd8® ^KYի2FꛔD~[M[Zf-xJI@p:iJI(%;hQ@ QZ1@)1NKE4)4fGzm(4z8HZ}!X8ɮ$VfpPvZ9r`qڶc:cQy8җsW :ъ +o!?45!u~QY%* +S  <*(Ǥl~fԸ +PIX5aAۭb*i4(HcԊ;SӚ1zRgrMY9! X4\DžW1Dמ8S3d!4yJjp=Ȋw.ڑc4ZFPws*Sh۷Jc0h0i̸TH޴0<ԪT" %9OH9j H$u +Zh-˚}+w7h/ٺ R`E ۟SYW_뇥idm& 5Pmxtf<|¬QZwVe Z\SQ@(J)qKLQNLRS(ubs@ Q&(R@ KF)h(b%hPb(Q@0EQ@Q@(4QI@ @QERQ@ E%QEZ)((%--!JZ()iQ3EJQKIK@(Q@R(b +.(Q1K@bbR.((bb +JQF)q@ @SF(RJ.)@;bSKe.)qKn)qNP4Qh.( +P)q@ aL5}1"ڢհ5 q-jd\uEgE% qV Gl@@"D`022 2O0?٨3wtfS$SMM4[27iTۓDBV;E'biPCmk?jQ p +/qR+.Dv :@Ce|[GbRʌ#}(lCX3\FQIx>Ҋ(\IJ(JZ))h)i;@ IKI(ERb +)i(J)M%RQ@ EQE(Ewf4֓RP -vRm(b:֎J %.iE%&hԴis@4ZJ8QH)h +Ju4) +1@PisF9h()/j);h4h%-%-(&yc=(IHS&)qL4u +(EԹPiF=Hޢ:SHeuG0"p+ѭ-<ĺk7UZ6io#6E!4LnfUn@%9G40ti[4ZSHޔc4PHzfI4N\A#MnrTEys6)7ԏeg+K#0ac'dM0"$[ZܞZ{`W+jhF#O >Eo{vwBHW+J:2N({}A?2+Im2vHǯ 8W?JNo,MFn!9QS[K9\͋vPKxS1YFby54Ƅ0&-bdPG#F1@ MAٚO$ +؎$dD.Yky&bLM(Ojɣr!v{bCc.`4cc˗'Ukk!Y1Xܗo&NTejޝ fd̝O-H>G DmUb5˗U<ᚭ&%?o!mN)4}y=LR~c@I5QWN SbqГ 4ڝ DQ{\QKw(/r_i{Ml zZz??^t}pG@ 3o5.84J(ǭ7'b!\bCGjp*(09bc@#t4:T69v1Ktj`>SCRdPsIIږ5 +JQRiX&)ZS!ONT +LifHԊrȄCԟXAhӆk s|wAp֙YEsΞ=?"WG0ssV;IyU+Ik8"~(IE(H)s@f(EJZmQIE@E&hbw4Q@K- CIFhi(%--6-% (f EQERQ@ @PIEQE--%-%PEQK@)q@ QKF()qKE w7Q@bQmbLRKP(Qn(;@ @R@ P1K~(3RNG\SKf)qN(Q~)q@ Qf)qN.(Qn)qN.(;bS@QxbSF(R❊\P1F*LQf(< +\PN.(Rb1@ cO*-\ '-'gfN9#XKw%m5&pL$or8WL?6M 70Q@=+\c*&R=ITġ[3O4CYĵ df%TT+oo/l/"SH3:gJ.RmIA e9r3-7Eqz!OYN0ݛ)K[F2?ƀ'.ԑ;b網7JGvP sK< EiH>g1o"BYA^2+۫nL9 GĦ[+@#5 fhKDAs@OZ(Q@ +( Q@%-%RPEhQE +(%-PE +((QEQE)hE)Hh Q@ KHM'z}-4ZSJi;fEpE%Hih@ +hPGZ(4) h)&)h& +QҒ:H .h- <ROZm--QHbPEPZ()( +(/jQJ) Ata-F?:%ͫ*ޗ زsr3h?2zi9ހ! 5IP)HiOLޤ昣@iԔiHi9(M4@QGJih6hsL4@ӻQ^ئq(4 +endstream endobj 620 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R ?LcF1OT +8J4G֖1E{ڕJ88.=iHR tU1SFؾ(1P)|ZIS8H (D"NMWkIqȫ3ڳgiM^Be)%CCUjv#5֢/j9~T>{D??z4STT=׵\:?¨RQ`4&k㢩r''E6cLDlJv4 *S~ʄcj_u sFĬ?Sg|j\ 覵m5Yp;`rKV}MV~̿ub +ޫa@?68s@>aѴzM]dܵ0w+&6捵[ܞ§ؚ320i٧y?Zp*Ldev+V>-QpW]]=?F?N)NR?W 25nD84?HE _|i +_>kO/?J9@boc[oKy{q(CROP gwTL4DG2b€U0} TG/:ieRE*} #A\oNG˧ɟUźNkP=ԟt?B8_֫Mc#g#, +[p_Ě ף_ko[I0Jσ*zk7B:.4\g֚w1\],_v}*ZB()(PERZ))aRmE/JBZpSZQ~ R(iLS JB)Ԙk'f(gQZU{Ŕ; r)1&tI##+ +  }HqPhv7Y2Y9g"NYM#N* e2^c5)wT"i1)iq@ "yaS < iR2Op)F*E8"W5Ką@1j݁U|Jj0,~a9H2*#RR h58xI +*@})oşD/SZM* "*)ō3zR9,M0ȾeQހ*k:f}M,a@k Qi|iN[*#pLzUS<*CpZ@=ecTqLj&TL) @ 4IH)$Ӹ&GHiV>ȫor +R˷?fO?>\-Iqֳ?֒}ښe2g>{$u=J_@AК~ +.ND{b sҳ>ԃc_)~ E!{VGx.[<e9w *0N2!A2 $YHPIaT֩S8 )▊(~@ZVӡ`qLR#"]EtmqR`%Oʩ:AٍSP']Uu'''r1j~tjc=[ /f?L\b.牉C1N8(S IE<" +AOhG&)ri(S +HRlqF)Fړcr0L +;I@(QKI@ 4Mө))i((m%)4j)>(?ZJ%-&)J+*A<]Z? +`f8.~i-Êa1?8xԃLeޓT]7 g؟6c[pҮQKeq/#ydm8qV׶2 4#Yt +HSsTZQ4L4q( +C֖EQ@(֒)1v{*8PǴ%"?Xag18FuJz1E-% Q@RR(EQKRIEQ@ +((L)E%.( @'zZ(QH(QERQ@QA%((E(QER(;@ ERREZ)(Z))h(Ԕ)(hIE-%RJ(MPh +( +( +( +ZJZ %- )q@ E(@J)i QE-Q@-%-ҳ5b3v?{W*??ʰWַmOB$T>( +ANBpp[vKWmP~KTHfRPM-^RQGj()hPޒR޴Ը +t#zi<Æ\+ҲvCEm|Dm|EW=6/U├se,4,چrU#o6eW'f&ԹjB!oO1r;S'/#< !(v??*\(QGj'J2A㊈̞sMbr|֒?SIM;1{Hw,a"ʚnװ4Yù6>ϙ&G yWWLxwLس)w_WN协+h㵊(߮Wgiwd{VuYsJ}*QQGҤFb(zҚC@ +)i(@%-iy^K7>!)(E4SfR+=AzWRCFtez|>GPC?ֹt>qu+n?iS1y@0 <"nTJ*C)i:-TH3={~Z*Q/v`Ro\7rk~? !6;Yv ӓ\p}맲$m #917L "rœ4iE4L2q:Rm[ݽv+]YSM[ U?B!!dj uFGSӭalĞ95#Cd?=AQvF~Docv=&$,Pz͟z1$b|Myy(Uq=x&;^n3NkwS˚7sSnc8q]L+!d@dJdFuH4}&(Qa"@cTTm@ 4RcP23L4L"L@8SE=hfǠxf[&U)7Ŀʀ2E]mHTH !w֏7cT3IExi֩@X4ilQp,= Qpq3<[O<֞qvk[L?')!dPJfoZG 5B&Zvsң7zTj6 TMVWDy4ݾrs\KYw41cj

aZ]15d8,ՏJ*8H*;b3@!Bwq4@Š3K)(&Z\RQzoJ\za(TC@ +ppbRW'zč@~XW;ͼBLF5/huG]jrFy@0itH R`8SP1Դ +VȠ [7k..ni . +l\Bx Ee 3cE~_9<+ⳄVgsk{ydsO⹅9hd%?w0V4Bv$R>RIw3Ml#DkJ5NQLz$ik)YrX'lW)baxirMdN=Nkv*58zG )SBch-2DQ(RA@ 4ƩJ#P23LjmH$z=ziր5{SI'qҤ6vk +Pjg#Xxct,?BS*n]UYbZJ(IKI@Big&ji4@ +E'JZnxfE(QE))i)iƐ@6i %%-%%4өiM8_g4{LeQHzSxc.i Hu)(ELbSHݴIaZMI@ 4i`Z\S"EMiU: +ʵ]VtSM}itxW;jbGt歸B:? 4~QJj@J\QFi J1J9caRF(1)qI@ ڒZ@%( w(RQ@Q@Q@ KA +JZ1@ KIK@( +))hPIKEQE%-%-QKE%Q@Q@((ERIE(HRQEQERRRE%((@QE%-( +:@QEP(- KI@ HhKH)h4QEQڊ(h-QE-%E)h=x((PE-%glҴfx-aM7l?V$_{V4C=Bp@@jrߨ ӇKQCT\RK@ 1N7 +v('!R&(E/R͇$Ӈ +ZA)|O֥ ]&]E6ԅhG.1Lw"Fړm.)m&ڗmIҴ)qNsKbTRbM+REGj6Ƨ5RS(SS,[Vj>E4#srhV+]9<Ϲ#p{Cv翭!z.7M=mzZoZ.7>=E1'460>h,i,jzi5dҸX7֛=?4fxޟZinyC̱'sYg,X*H4(֖RxiI$GZꖵ\\7Er?nGD([B}> +JkS`bi +aXqQ #=iO4@5Tjz&J)(1ŠJZ`QE P>lƙ Ƞb+{K'f~"f|{RcGQBLS>qUI{%`3ȬSNh{j3ܞMEZ^~٭qV,E2H(@jʒ7zUQȻZUCZv2czUyqLmrZ<pk)NV~e۾:noC4?U8ЄcQE-2DhIN4PM0l3QSBED3TL) _=GRҢbrE=hFSF}#UjTzAցbRQCqQRT Sf򆍙EK]ԡ@#&y7W$RR`gր#yd@$sRQ:I@ ӏ"mH$*E_հb?_T)N)@QD(⭽Ws@-?0$ G,A9r~n*26aLTu)SK[rej(8N:Izj`5,}Uͳ|֘@b]i`q0VבP'w[0H.#&Z˕C)ֽqPĬ7R8&PaM(ʟZ' +yGE'-D զ XBO?BɓµV>; +6TB*S6}V (\v܁ZS=+GF?zc'; +Rq*r(EȤ1ֲz.6 ip;A{pOqI(XޚnX֏=1ְI>;hQޓ*:>X7Ii^ưE7Y&Gr6I" EZ2sP>R22)qRm6AQwz\PdQyb#"LPxPEDG41! a)(^ʣ($KVT;8L'-|1Q5'ƪpzP"ͤqr౽cn*Uү>?+šu?.p2nAHȻ+g݇֟`~4hOţ)xxga7xGԟ3}95()3ģ*_EV~qcM3V?,Qvt3ǭYO [H!tvrYLfpqڎf ndP@CtqrO,HY2O]Ԩ5-ܴخ|\.?¯h]\j6T.&h-7sh`d)9($NN|O3OTZ_:VZ2Pǂp5#^j7id^(tU +7ȫ!co=(Ѕz5d2ę"a\؇é\sci1֧SF? +i=$ :&#)s coҪQՅ';kwx#F@?AժPz-sK]AEPIECHiM6ZCHS() -!h4ii(4ʒ_j:P(zSi[nFjXŦJ8⍇OZc*ҁOJ1!ZѶ!F)Ɗf(;bJv)(auT}k +Sj0%O\f\Q*FXM7= J)H P)Q@);@ E:J)hQ@ EPIK((PIJh J1KފJZ((EPE(ii)hAҖ +ZJZ(4(((()h((QEQEQEQERQ@Q@袀 +( +(h +PR@ E( E(RE%RQ( (( +( E- (((QE%L +JZJ`G]L>CWjΐCM2; \M]$_@?J ǻT"!O)igM3X313y4)֍IP1&Mh%Jvii((J)E%=4 Z]E\S#Ѷ#Ti6xTiv{i6Իi6%hR #Ii ZiZm4@E4NVH1P?z} h)8PT)S 4Ӎ!R %14˚0 jDZoN1+ v}g]}ɗ}H֙=K +X3}s07uhK|YT<ճ֟H)(i55}G xlŬN<X"QQNQLBA +QM@ J(PrMu7 wmߘUZ$1#9د,qyNF:}6Q6nTi7V6M NpKe)vPM<)S5xZ)iyhQlAcHfֲ 'tֳF%wG۞EbQS64 [d\,Fn]$wi +Zej_Ms.*KdA +ڐW:X#@E۪H_4pϮ*?皃0QP"?yϵNB1F9ZmG}.dS1@iv3OER)CZZNTSDSMHSM0""AIs@3o֓f}jPb1FN,,J@<ܚaW=j;Zܟ$VUu`W"QJQpe{m}kV Xfr ʖ:;0AMHZ|0 \LC+KZ DVīڲtbK!ۺCz⬝b,FP3Dx(WsG@3K6nߟB)s '8ojS|Ee}"Z\ ]Իdǹgɪ^`U?Y#d :5YmvRb5'34gVVq;+2IM*o.f3ABN8*+4FO֕Yr~mSH=:k=֜ꪹ9ɨMȧ G.fD,ɨ q`JdV,( 20GP- 2 e" P2SW: +(4RQE0iƚi)((JCKHhӍ!M:GR#HaERdU衉Pb5?QT +ҏ4( +:"T/u% +Oa)vtѓ҂i(R?֮f\}@4LC4RPHisHhMcI@J(JAgV9@Ȫ*ʏLHn([cM&!}kҦC\=RDs +j(g*aޤd5$k?b1HRQKJJ)h11Gju%\Q))qE%PQK(((IKE ((KE%Q@/jJ((EQERRIJi(RPPh +( +( +( +(((( QE +( +ZJZ %)4QEQ)h(PIޖ(QHSE(RRR0(PEPRF(Ph +(I@Ţ(h4f(Fi(R +Z RPj3da]ڪdfPj.hA7f&_@) $RGJu8QH:RQE%QHh)F1Q\.Uh4`yY$C)f6?slqLW184y-@ 1MJME0)h4jaZ}>.;6J縠|zHb^Ƨ#~uēF݀d~Rv)/AJ? +K= ,U95+;r؜,342iVPKEe#}OZCQvJScꯟHN1_k<`S6+ ^?$ʸr?{srbEMC#}~UL_;6r ݏl:E}%$Ǡ'Tl!w`/P6엣-Go9X֪YrS|;jO')N{Ǹ@K"1ݿȭճg)?'@5?"O^aXgr/fJy+ր9V<o73~ZI=QțwcI?:RjI<~TK=fZQe(?_Y(G;)uoΚBsk Ho`INx۟z]`T !D9FzTw@  ႀAVF8Qj6NI{$ɚqQrpk;HOzT|Xt|P]mySӚ_f26эG"e߸ȵ8#Ε4ME\vEDNaZ_TYM +ƞ %,>S u#rsM>}VGTvD 3[®~>שW/[dS`s İ8E,Od: ?9)]x,@Ɯ5`~Oۊ7k]6zZi:Cn(l$/#'wRG<)һ!%pBB(71m~A瓕CS@ӮKu"y~~m?Oف&zI=E;QF}XWPױ +LEOKkXLJ/ph@H9r>~[ZL..Oc(ȂRqrHt։DLy[bM +B~C^tA2ž?Ɣ y@W1Ϲjp;cRwDzIs9bTcXg"s5*֋/Ay'ӑ߳CAӲ[rć@yW~YmSKNbIS/*4oPHƀ +Pmɦa)M^ +( +()zS %i@ 4h1Ma:@g5ERp (QHc= k;E(,hHsO.n]О>6Gfjk^OSN v΀fu?揄-~|`i` BvҾƮ4yTn\1M <3J4ILn{&74s@f4f4*u5c֯2@dJ)@d;GW5:tC\5HGIo⟸m3)IJh ɳWABWPMrKlխq ֻWHÜϵ +SH^٦zR)*lRn djca$L}QE=#IzƀE!y*{ j:D!Q3<կ.0>ImLvK}vTVIKc4 wn){(7B8`Ed@ lٿ#% Fqos. X;+݁X7Re Knnys W56?qv4X\ȂҟA?POzZm{OS F|Ed GM^#\ ,Q$jZ CUQLcoOxGCʚ n!1Ұ5DZXLS3d! Mr7: IJT7'̿٠u~TA\#;Hrsnv;_|n UZ]ҀԶ(ȕ!61k=(cmFhOxcȿRMdPk׭"_Nm`*)B}'޹8T}4\iԪ(icS-3Xb LćY?#zN+tSj:SYHԂN,"۷O lW>ΤrVaa6}\MP2`КI5C-vQ" dH=)KU3)Tsŏi1 dL*A/Vf?ZaQճTMv:sQ`.dw%vzI'd>Ӱ\U#/o?3yL3LO2S\iSMKBOk穣W5eǏA-y@5@ zQ`hݧp + U!¸tEoʚғqIN)sQ31N4<5"xrsOw$|@}RuX"/}T4}YZ0s7)ertr."?W?O>,?^iciEi Uc?-)]}#_ +ht4D%?*,t HЊCynd4 CH? +tS3}oB}>ܝrRdg4wLg?OI6Iw4\G'dǨYMZ`A^PՉ-v뺬Q@B< ]b.hr~GSG{=h\- +poʭvhv4+?*r؞?*;w(`CB>|#T)w1?*Kcm}jVQM ަRߝ^B.=?2~1&aMӌGޠ NZ!'R}^֪}*@dDeIȨ{@o-W88icc&l+ skRlO5糅[H*Gh@Kl]ջYHx>?w>I5UN*Mi[ao yɛ?H SL"αzҤ\02?|J6JW"^O_օ]#SqT(VqXg߽g)He!=΀6cxPDа mW J+}M-ݠ7Qq]+%pR.h1fEqڽdw +1s+Piȿr( qӏ€2?JL:E`WlZ9<}B?iфEXA]l0$OEM4D˖)K1moz֥8Nzlǭ̈t+v\q+a ]^Gˊ +L>m +Y6F%\;V]0aqՀfف~c*߄捋Z#'{yJ;Qf8_.2i6-O5@—Rp()SE }AҀ4(ԧۦO?J>]9Ϗ@Yq1vqcק*j|n= `[< ZY_= M_ٗӏGc>( Qƀ1@^DeEsL=lFc<34}hncj&,OUѲ-׵? ֬iFW&?[hSTtUc. i/ݱ8Ly1$Dq@\i𧋭Iupj6,?ҋLɬg!SjVԧZ[ušuᕘ)fW#>aZYj.AZi׭s~ikܷclP1K''R{Ƥ\9?U -ZjAK( eQp,b@N^yI=)֧2\q ڄ XPx?wҜ@p4HQʻRR:ǩ5T@.8#pI2MpZ@> +(A}QRO ֶwׅ9|pԐ{M21XBH* *0GEټu1j5qgET^G f l21 VǞOE&hZ2p}ɦl_ cQuh#6M]#{Y"=N",GS]J_zvt\,NϘXjYGrcQXXg6Ye0?OQ7rAű#'ci||\S޵FbR)S4mRPZm +m:@i)i 4^*T&PQE %38uc7TG4sR2lI[d?0'&*lGI¡mjtIO?Ɓ)p+1G܅ԁQplտ(ǵam焈~i^7FT(,tAIOUcW,ڕ LQ/2fX)\u"g}XhdrhFMD{6k(( I,c`?=kEh?ߐK|JKo%GwOM(uE슿DWk + [qF0ǷEk4P**r2S4Re }&(YZ~$k2IN +p@M@ N8S)QK@S5ikNӵKO&~O>@yQ@M4ME%Hhi)ƛ@ Hih4\*3\ f#Qx +'&ߑ TfxYc!\ٝrަ5im=3Jc7P?C\6J+֭ R1p3EltFŒXs0yin8FHceE݇ "e|VDWo#ҕgXUCz9:_t?\uKxԓT|`I@sP|J\cn-FD#{`9n$+<$uFe=53;yd rj8ɃQM4C7AIOyNAf=~b)q#d%sY2ɪ/vlR.OQ)ZcɬR4Vv\֪zJwZ4݈ ?ՖmC*5#FBL3Fm6E +=pjmi%̯@x!`(ȹO| Zd' a/t +1K ĐH"9QY>Cݩs9JꏟjQ + R>qm9y8]Hc57zrFisnYX0= M;YZaijMsw 3=3M@gpx+hZ3 /9yFAF=hbS|՛>,fC"fML.mJv*8EubQESjZC@ )){hA +< UZuҪ*YB5!7Z(2i AB3Χ`(ڛHjiq%`N"f?o# #?^eKYvWr#$P`7f__^Rai ?ޕE9b/wp#T|{?5|1svxʞZMk8 +6:3X*GQB Y䙿?"uS/Vza8u;;tvu I(%}:, P!s4*HƶI+9Fq!$:mͮ:٪)l b5bdO`~KA85%gcgLZjqh +'z_/Oۯeu WzNQuӪjGL3;1\ojC*kVBqnz5-g^PqQf9t}Jg)uw*"QXtˊ-O& skJؓ9̈֍M0/\S2y)6yɤy +$ vt"i3HqѧF?vG^in6)2'$5 b X Zx7`'2 Uv&( .)qK@ E-!)kZO*9@AVQb4dA(*3+Vu#+'$ZS+uIܾlipbc՛wh9Q vRҁ@ LP+B-IWj0Ԑ" 76?֩c6Im[E =prkB Bx${RXȤ2Q)qEs%?eVZHQJ)8RE8R +pKMQJ +Z(KIK@/Zҵ+9:ҴBkCS2)OASiJ\QGj1IJi:Hii(IE 4 +CKJDYf9Bv0a 1.'ƞ1 '7VRXvT,?95ku6&F<֠(p2N0E1~gm&/Sr>{SE9sީh-!\.Ys\m=zDcS+􀶗R+`r@G&z +asS탨87=Rpy;%| Sc]Q>X ךB#WcQdd&zgR b-#:w5.g,MY¨o4+~`H۲*5,8IȨ)&O*N$gw#`拱ܕ:8!sJyX SQ*GQ@<Ӿў8ҡ܌9j v=8q@|zc9Hs]ߞpZFAUVCɤi )\w585^='<)J@|aycQޔ JP?:tk@URqր+4l_¬y50Gy'WC OE G|z`"'SHp0sU9) ZhFG TpTٯB;Ť))(`%!J(@%!ZC@ ֊sRrRE#M5,Qi)ӏ4ihSF(6jk +`74J`(OBi3A&M)`RQ@ E%*WZ`6hhŹZ>eϩ\}=(f>ju?z?kAEKњi8H (72ZQL *v|!,FQd[7v`بTӓ!A?i6`|XLlQ(M8$v! g?[93NRRXE[I +,@'dKٹoҺ!fR ) B(b N)]Ոٹ{kA[Y޸L18?1XqX?tW6eϡ➾/7-4iZ 5rz T7;hܟ枺$MQOt7p3Uҵ5@/XP%]d#4NC?혨A֮3֑*;=3u#h q$Uyy5(C+*KOC̓7U"Ih dTI?Tmh]t5߰MM_Tutk:cqۓ :aҮWJJit}"=!!\s+[kZEQc+d:̇LmJ>7} R}ZeTҷWOj*fϓo}PO +Ygv?¦<چ>Z&+\sҡ7sxAq@"l#Wm +bW'_gP;;n$U _ps@Q]JVn>bkޮy\TotWM4X.m˘јs޳}TBG0H7(>¹x&5֬EA$dVO%oc{ ;.zQl? +I5B ܭd|U=fssJ}beh09 ^=MSnZ,-7JjLLO/,)=)\^H8SwYW!Zk"+-)j(TSoҿ9۰ <ӟ!+Pkc&3L)1RB#]*+ҥq\5 ?o +jwbh]J'J /-L3S=li^t_85NӚbQ,WRAWmxcMze,5%K0ހ*#ޜ޹JDG⥤0p=(qHaEPREQE%-&i@a pHϥ +_$c1ƀKd^Q#$=0`ݪUnAZ*pޢo5"Fp@!IPHhV7=Bz';H%ywGЎ=f \zԫ⮂P):p 4F9'8iZ pӊ/*T Bu"#ަRQ,.qK$i۩=$M?Q$ tvz*7+?rVFdN|~Qb})N5ۦ`Tyu"։m>F#YTԀaQֻ5F>R:Q7R}yO<|ei(+qTW3»Q OKJ\4v,5<-3 ƣ\WcoE:gHY{fI}Ԃ[ebTp t-bjZJ3T I@44mQ@ IKI@ҚJ@i@ 4p>ST5J +(ԱM4c:ԱJ lK(~h6iQi.F*&ҘA!isM8u0\4JM!(5U +})pӅMZn9]d9?kh#0KJEd81dG 5{}hWқQ?d SW4 +OD6=gQ,_ jAg<ֺa>H-M*L)j4m4ZQMbњAHhcH 4*AҚzP?SFG4@9Z( +ZJ(QEQE))h(QEQ()sE RJ`QHS))hQKE Z(1E-RR@ E-JZ(0 QKIHPEPEPQZJZ);h +(fEZJ(Z袁E%QIGj-Q@ĢEQEfJ QIZ( KIE@-%Z()i)s@Mi MiMcAPEƐ*mݳSbkt]H;ik +NEFQ*[򽨸XE߁Kdɏk)J㱜tcEǵiiaϦU  +@)<8ZeN = +c٠e9P@\ wo2 7$ISV=T{J=2zR,*>dP w)6MS{ +WkW+v]KS>?b y<8^,6 ?4 c<*>²?F0o𶑆c,6^ڑW ,P Ho/Z":*a\ƒB}i=\wCAy4X.ly7HHI;"{V1qO4NsD?58^i3?5O_JRa\/Q;leqs .v FOhqسgڜ}h&E7m K0g>u.=1F('roK!i y@O'jZJ`GE(@; +} QKF(PژM4 v f\MT*SUI'V֘.NHzPi(nB +p58ZT vB@"XzTf =;|OHMPTG=3[`unFƈQUҧNHx) +~:Ryvq=qlZfdzGI'CXUx<_zeRrX$xA0GS[`J6pi1UOTc@ޜܜc:\LEEoMڢ#dTBw4ZJ(RIu7R1K@%-ף3ʒG`^}ɎqEݰrk7Xb{I0WCdrAeN 8Էh#G>j#Z#6!M0(}v=Aq؍B'\Tnؤ͑[6oV>jzH͙PpG#5ZN + gMwBsȩEUs(lt:SdRcBR)(”Si˜ KIKHޝL'ZҴkFς)fw)jN%RRb +(ih4IJh2DdPr0&>\o';幦4pr3Wшw'=Z{x @7c9!99&9s>Cy㱞x 8a-NXr}i%T)u"̈_ve z"~28ܐG֜_$Ry%W,R + # US9Y +$V#A]38 ; )Nҹ-\Z'NJ쩟cX`zR(V994fQϩrY@oZKٱO( h0QȦuU!G>iIZ5=;u-I^iV#V~й `zfc,L[I-3+e01?–KikRsFRKWю+̸q0k4X.l=ԱGzoq1eosn,JۧqO'Eq&=3=aVEV?t~T5l,2^)4@ɕٛM3ҜF(MGՉq 78{(\q'Ho+v?<+}ƥ%;ȼ.>,!( +1IuJPbZ(()qIK@i)M%!EQ@%QK@)Zm.i(M8fsU~Y W.{%[H UU8US'<үZ()YC4>QN4-ek&Ze^G ojn*J(@vĘS2I֟ިGGZ +Wfk`5zS +U?"Յlbu0PTT!BՍ]NZD}P3IB~ZVY ӕyj5'mT"t7uJWGp?t8s|j;d4b3V Sո4 4C"iIR/>BZ IE-(QK@%-%*u4CtN"2*$ǐk\Ż·-dܱ:iP52 l? VP9i +TI&)hRb(=ܐbjڿ"qywN0O8kRY6 IGJ9>'K|uKt2(4GLR<=J✖cLii)iM@ KM +QKH) +ZJQ@)˜ KޛNZ>>iڄ&j~Z5sZU!4v`hEPhRJb +( +J) %QH(4fy@ԬZMl.iyc_zp64K‚>.j?}t2p\Lm9$>ְB07) VY[q=n$UMۈzr0aQd2lZUW/P&}EPfq@sH6< aiUc UsSH<۾av51ܐ}=Pzҙ9 3c߭G'QC2>wlt Dlnb}RBM!uҚHlF3ڔ;dبv$!mGEPDBYo5#?BI{Sj@叵*5/CYWf7`{zS)Ü.) jHBN?FF^\ 0cÑ0KJkq@3׽5LӳYAnzP Zq>vJ*Phih((1TjZQ9MLk>] +2q,jXs1j΄qq/8;3V)昙-R☆:o\VG0E*U$֌L qQ2LzSIYqX:UbktoObi1H\5z3I4bW35F6Յ|0"q43MƔ(J)i(QERPIQ@!4G)GX +Q]&238DkrLr|Zr)z=2i~לq`oyLS@ih r(iC tUVf923aG@)?:`bӜ`gvsnG&EUC-9&1BHPxZk89'7 ɭHsX%x*j0h}E%*]R3U\ykj;$E1AjUL ᓂsQJ`h%@ZBp*\gCWX2};f'H8 }I5R̘Ң,-SRRS) :6ZJJJZ)IN4i -hڀ#5քpyO֓RSL&YJI6܄Rͫ{A=LXV%|H\gV)2c"R8()zS[7?ZJ?EP 61sE%RQ@ E%{W#?Ps9O42px[ +kq>ЙwB8U#Kz⣿R4Ub`7uL Otp&?OjXJߥ]JlU4E*V< gҭ%Qtɽbj2Z#%Q "*"˱*1S⬂aұ|K{Vʞ8o8#&R+[[5jtysRLm\#HAVN+f?➯4 $'\m\ ͓~iq7l v:#RliX lN=jS("ѩ*ͳd0YlTLPqwa&]}O<Y1+ƴKH E'(R!i’PӅ%(ZгMZYv=A&l¤-:q!P % F(PQJi ) .) GQERBgw NdiN_gY3U-HuϭWGW9E_2 (DY9qE3ژdae4OA 3UrO9lN^mOϞ)<|E7ƤniX "9ҕo Uq:V@Zpɨ'<Q4x*zQd!yaJ%=1( +@)ā!!TX $|c W%zavz&"; Tiy֘ X<*.9j5?.O)oR~|&\1E?q=Ari$cp_&cJS`s@,DFhs.29Mgja)Ee*]sȪr1֫jb+!^{֒+B/ic! 㼉wwLS-GX4F /i.JV +O5dDQ(o%n'ҥY3x -\xnH$8ʶiV.C(+ɪ~! ?#V%0SPjHtc"@07V|9pOp8A^MkDa 2=障kwH3UblbͤTv&1XSQA(+cҭ[,E٩g0X4d@pT0.Z!$dʵ,sZӁM4K%Pi3T!GRtQKI@ KE4M=hZC@[@9AhDp=sp␙lbx.pe1#[$Q܊Ѷ5oGvT )8agB[fa V-*HT{-KJ2vMN}ԑVn p0:UGI̾RRdVK由F ♭\ȫY¹mRP#$<*\cvlzbmK A#c>+L{ =qX+] 6mQoj+ճiJ`6kSv *Ѱa˞ݮqF}i274fKHsFi(cJi5HVI(Xwgc ,mq"*A=*B%'e˰?/qP`Rb)˜)?4 +niEHJRgZ>/Ǿi'ڒxZ3I֔q@’P !bPh!(4JSI@!SMagpqhzy=Zp}sMi2%L +%du5b5p)l$ f7&P;To'ˀyE2E!}*QvsPށyX9րQ0r2*?-Hhdq(ڠv4\<4`aNEFp EڬcN:ZY2ja@F`@$ ] +9o !U! )ƒz=3g<{H^)Tc8QzhR R@[d$ SnM5׵3y'M,I"%#R MDJzVi2iVh'"goF:!`o651.6})Eg {Wa?_hOV-QLBQKIL4IJi(4Q@ ESM8@0At{|9 `j7RQғa<G-?(3JM4 4啣jjV9=M7)A@ZJ(M&j&Pp1dU=Kv(-/+lCSg|ziE+JEҲ8cME8T +2# #iA dt$.q +撤e2*P\5֥f4Tp4 !E\ %C@vH:ӚQlP+/T4\v-wu X@Su%#KlrCҐXˏTxi!e'ҧ<tQJr?:HQOoQVH-u'8*@sH +#ȇ>jky lѸHaSnȨ]N?ѿ8b&EHGH*jE49,u'5n2 ST#lUJ9OeOV.:)[(F3WN9'b3W#l( +pCj@`~Z,*zс L +Jz Sg8[[vӽj[Da nϵRlӊ4Й!($GJfS3NEZ:@!Pi)i (@85j1}JEuqz_US?W#8bjbry=Q +>H'"YZb VLjdEZ@F) PCUm-ee9)ZV!]i:niu;&K +Qʥ0rϛ<ǩ=t5\ϫ1nvGC*R;㚛{Si@`9Dl@Ko[]FTz5[vd>q԰,Z6oZIЊɤJE>c=ӺZS*[+ּRw i$QsGH/ 8 B'f(NM(P+֬'.qDv#dgȠFX:\4ڸM[ާ+q52 Q'$maWQ]bw8 +ʀ8<ԁui6|Im2")W9TiON5A¶,H}㱴%y:\y@98=)`ʊaNS-DAKYR1hRQ@ +)iSFi(vPIE8)(JJ~h\K@Zfis@&i3IHA4uvh恋@4Q@ E%Z)(@ E&h49Q3A4RPE%-fP4RfK())ZJ(LEfZ3IEQEQE%-%RQ@ J(KM((@ IEQEQE3E%-RRpњ~i 4J-%RJO#IHNJ2q[1Տw<#[0=R%NOǍVHLR 4N4)q@3@ A"-!@( %(4q1K@ J)h(@%!4IQ@RR 4Ӎ!RZ(PIKMM)F4F;Tw)j*pTJaBSh* <NI⧌3&V gOX\qG/6ݰ qUHާEHjՕjݫ T"cu&*6H4ed6 +۟RRH)o#?զԋQ +z"t5jݹa1U Nu?Zi*TҀ%SVUDVyvP-mmƴR]K;#=)FS@Ҙ5;Mk21X#=]q_t1THS6SԴir(i3I3@%4JLf(Z qIUhuFR`JS)$1F+V#1ȤC5٭ɓִ.Y%X0:X֎GXc9T*xFV݇:-O(ϢCvX}H]?B ;iE5H$1MIY%@g $щ3JE&?fvɷךliʕIlAGIlCRkKyhՈcN39;)B}Jv,.$_n/̿UW5wy:H98B.zqNs55sY:~RA$2W$!bަKX`+6 # IrTWAB; +_֑ѫ)hf=O&YH1Rflei7u$%E8Lcw +*%| P"]qɪ{SY8HXv4ù<6L 7JM& E&3Q8#Q4zȿ@hn*3.;f3&&J,>c')w0ȣT\>axO3b 0)lT +K¸1_xcL!M@2Y-~FoA բR@ )yi.:Qd℉؜=ϱ694, inHQ1n@_;p$F2zkq4u5 +y(ƕ{N` +X8梒 d¤>oΘgŽ;8OmʘIրe84Ո5+|@ +@A^M@XI4P,)y=)GP `@|pIސ(>4'#9W`bS|{P$a 8(BPA41#@IS r>O8:3S֜c@xbש2H,ii TZ+q隖5P fr +!@ +sME]?@it?#Z'4rs@$ +8͞n}=M1#OCKV`zo0qhJQ ϭT1B|?D=M*lTW;e OiM8 tF;nַ4J ckS[ؖ-QZJ(!JSI@%)=i -% +iRa7Jh=*|~ƈ%-%1S1L +i(=Mģ4a4@0P!S6 IKM'iuPK2}is@d ǽ:85(P@)h +(VUjDA)sHb&5:V]hLe`z"}V>\w14RSEr*tJ ;sKULTq7<:$49QNE&h1iA +(hE64RR +QIE 4RRI(RRE%PIE-.iP4 +\њJ(٣4Zvh74f3L.h٣4\74f&i3E0A43@ \A4vi3ILIJ`;4fKހE%4@ZJ)(hPIEQE'zZJZ())RQ@Q@%-%(ZJQ@-%(QE-%Pf(()i)EQI@ IKI@ IEQERQ@ L~k@?! ?j۵GP?=n?nXATcc1O8Č=($C֖ +1 +zQERh)IFh>QKM Z(S %-J)OJJZmP{)Rx())h %J(Rm-%L4t54T/֧jJ@QQ&S¯޳Q+SM Riš)€<\T Sր-DGzNjjH49؇a*52S$ +z9h*Ո1֫Z' { Mo)O +jP!že=ENjc06zZf14RR%5TԈ(Er~y3Vh[Pau` i3J!c&]>@G\sFjh4k[Nܨ +WAc6+e4Ku<ۊt%.;ROu ihv?sS)TU{ +\cX|mSMNuc8$WD\n>s"h'H9C^Vi3J,ctןΑrye'\D9KE'[њWV! +M[3@4i44&iwZ4PzC!Ϻ@+ɦIðqPY?¯px4K4Ey;Y;sK24$nHbњyPy0*q@;J3*U[6J݋ɏO: +bӭw٠ +Јjd֤##)_-ix݃%f\9QMStVn$n縸 L5րK?"IǟRZqHGw1NQSVޞ$㬲P#'gKXw`ԧQ/*AJ 5gز¦Y5˒[a6JF>j#?g>T9-X2OZC3bF:S- L˓RVzwQԂ}^I{Ru`qx(FWԚ$z 1,8r>P8sp*8O+qMlqޘ9,ryb9&J{n]RE`Ҙf 95UW-Z>ZO A +np"mqN]zeP4_ U6~SKfbԔHFIVi#ʫ[^c R$85&1Ljx)i)h( +h#U:f~Vh{S*V(:b N)2Zk*]i6YM1QڐP3O)yM1rMNvV|KO{/}JnkFJ9İ[?8bԔZ\SihERPhhRh\IFhԔf)E%.hisMLњ(hZ%Q@PZJ( +\Q@ EQE6uE.h%ERf4RQ\h4QE(4QILHif`-f)(I@ KIڊ);E-%PEQEQE0 +( +( +JZJZ)( +(((QEQEQIK@% +( +Fet=_[x;VS1[c,I^ޚ)z`D@4K֊Jp(#m!< +nx8bZ7PR4&h (CF) +n)€ +m)@R@ KIEQEPQE-RJ)M4ө#nMFWXJ ٤940ԔяA*aEJO1ZsYp?Vu1i SE&A$* +d ]HMg.j,*dSX>Iy [kT L(ªf4&I3E.M( }&(I +)nJ2iQ@ Ө&(.i3@QFh +ZJJbE%-P!h4PZJ)QJ:LIE.M(cMRK8eɥiT[t 0o4d[b ֥v9tOTfup%ߞ.Œ9c7R q֩ Dr8'D >`ǜ,Hp'I. $vvzK)N^>iٶB .G< ^`H|_qG9%nc'ц*OFS4\,sew"︙@ZI!}ym ^}OSd̰i@i,c2i呿\:rK*m瑱g3Glm:ZL!Qͺ&ج#Vsݢ.OB}YR 6ȻG˲қb8'1< bT 4=B"IʮP j#B<­٥ 7:du/!8-&L*-=&\z6cQ`@Ξ/ fureKά J!lԮP 裌v0-Ja %hh5l(V}܀g۴S|$ +endstream endobj 619 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?hDֈU$)&=5V+4yuTuQڐsSڿU5TN4rAUb0Ȩ]hb֭dsNS@dFRUay4DN>s@"QYRq\طn*ng/XBjZC3MKfhI3LL&40t Zv?ʹq]'`v )=)fG@Zs4{SMjlJ#X.djOVr1Ҡ6i\0Mi0JùcVGP _#*=ktV[HLn()0j˭Kb"(PO A4*==v+O.(ZM> QM$?b˓Uj_URОºk1>LtP(]UI85vb):աQ7%i)M%1%-% )8E-%-!cI"ĥH`j㩍ET8Q@{ZCHcGJoANIE޵fWY'j3(BdB5nbak5[?]vOKZծޤR74ڰtxnZ@ 4fM&h.i(!4 +3ILfi3@h%%;4ff4!4fFhsFisFh4њ`;4SsE LA4 3Hi3@&i3HM%%IJ(RQ@4PIE-P1hJ(hJ(SihRQ@Ţ-P1iiP E% Z)(Bhc4RQ@(f4P74f4f3M.h٣4њvisMf43M.h٣43M.h٣4њ~h74fsKvisL.h٥34fnhh&h&(ڀh`4NiOEp4o`}eoǬQʲiZw=zf1du$iz5F)QON xJ)( V-{~o +b')R +ZAҀ(IK@)(ZJJu7PzRRHhO$jLSi)OSIHBh&N94Q_Q@adP{%@3 dgTȖHCދG/d|9EeYhԜq.Do<. +_jdzZ3ČzPX%mMԌ N[V1ջս\ޣ#w?Ls rIIՖ$mrnçiXiC7$Q|Mű%!Nϭ0iژh %)cpgnX+jrZ`_ށ G c>iiu[47wB¡jN\S!ck1 ?!ojЙ s j[\H co%,\ (aY6C!<*]بD`2:4CFU@e&I} +]*UFkFr:NW8(loB}qSވ?\8;<è5nrGȮDAmZM͸tQu2%Nm +;[/sRe[߲ Lr-ԉǖW*=̽L#RJl\ihD:4SPLm%Q@ =iiJhh4Q@ I@foJS@h3@&h 1a15FMJj&ڣ5#S !$NM"6 TXC;H14`2WYDkVcq'k{uLqTר[J0⬒3IJE6 +SiӗLҀzP(=)Z}isHf4M94֍F$zH^*8c(cHfN?Zn*F3}i#ӈ(LbHE!M)K81Ve +l]uhgEnVb#Z(BbQARL6k.dY94=|I@?Ӆ7)W\gmz闠LP!uW֨5TsYjOJ4RS$ZCE!4Au!4!HiM!1(R?z5Ԇ8RAE%!4 Zri@ד#kVCЙ)W/^|t8?tI^_T44cַ?hRf4&sFhh43@&i& \sFiRi3ILILњ\f4Fic&i3@f4SsII3H!4II@ +O4fRi3Hi(Ҋh.x'j(sE7PEwaIZmE&hbIEJ(RQ@ E%RQ@ E%QEPIEJ(hE%ZZm--PIE-PihRQ@ E%)RQ@ KME%3M.hisMњnih٣4њvisMf4њvisL.h٥34f4\3KvisMivyny&)AgPh晚\f;4K`4 o|6G?J/VwW%V) +`q ˜y#M?ۏGJ8S4S!Q@"ݽk۟{V=j׶*:ꦁ IL5,*El5P&eDzV o\?d]<~oʸQҀi)RLӃbE$NݚPi5G + l+U_$g4 beuo4隽y qڤoCXbV*IbRSK+mEL*;1YCZ27ր!~Iq*i:T>g@pҘ +Z]V{u-\^P7ZN*'iJZJd!4Z % CHiOJCH)i)i CQ7)1AKHjZFbM@ ER#"d>՘Ni CEIJi)$j0Ƭ+wJCojJީ@4SWD<9p=oE i4hG3@4~i3M&hњnh44IZJ3I@ E%4RQ3E&hQIFhhQ@hZJ()sM- +))h;KILڒ4QH`hQEJ(hJ(hJ(hJ(hJ(h(-PIEJ(hZ)(Z)(QIE-PihhE6J(SihiiPFi(fih٣43M.h٣43M.h٠nh;43JM;43J ?4f .h҃L4 4K(7g:5 TS +cMU ܠ 9ft?')))xJ)( unqǃkL TPhBQAb(AER E@=) RR@dPzX@14J i Rs@ QE.Tbt~T*IecҁQ^dXW9ڎT>fsy7g2XaAPET@E zSV'0 NR Z Z6+y"+)+~^%{9b1Iio$d8s&I^KH2OJo}Rqe=C*R3yXZUAP'Gs+s=6Ơ4ӉyM'.ܼu +2q4mB$Ҳƶ\.Oڭ鐋 QR˴F3W$Ԡeڞq*y",c=jf{f5-{馆TT|c?LU(?uo MQrh|5jOPkRӠF)>طlIkx0"A&9QB8RR$Zs}*j +e(1l$L(#̈́ +H'j(%kD*͜A:v_JMݗ^qJ zzPh=(S6Phc!9 +)(OZBxOJ@13OjM0ӏZa@FjF!8)֛@ + +.n}z߅LfQ4ЙhS4$OQ#@<AN=(;Jf)€~)9iԂHbd*S#w N3CNZupC(5DUFj)$e<'\dSH>SL@0}(}*4y@Jk)5_{|u"K@)i*@JB)ԇ 9VҤ" *2LSCVTQn |e׊"`#5NA@ֆ&Sٶ˕=:8[5nՕ VP HOԮ~h(p +([ W+#T|~tE!(,Qni +TS]5nA+kH8U4|(`o@qȽPR?AfN7|4TJ@t6QJ) +pE 1KЊ?Zr* +P=X~Rk5kWPJSHh֘qYRpG&&j* q*wj8Z4 +WrsI@qQZr#N}#FA@MFjCLj@FiM4iƚh-r,NqZJ̸HSe7k]*9KXTn~ DjȻD"] ^FRO\V w7f5p㑚&L͛gi^c ,88^~ӵfwp9vZv+XߩvvTH߭%)4PRRGA) iIҩĉsYZz'+1}i UVZh!8}t~cJtV'#bmZ0ҦcRA\g_(] +":1?P24iڞi@+^BE>21񭦪~f&JԘɭK0kً=Eh9 5~Ui^wRI21R>iv)>˭Mezp Z(qL֥`VtG[nɕ\|RNzYU uC>ASՐ4IiwQކHhuPii)4I=i5TmO5Mju52j>R?ޠPkeGVOz#YFwzV j;R;B)TB@:@4xZpHb_L/{ ϛm̀?_t"??*~܌w5PRANOKH)hb1[t<k^ӥPIK@4P( +J(4IKE%! CIJzR@ 4TƤsEN56(Ԣ Oېk"ɒsĖ7+ˆ:[ ְt)湖H|CClĭ܌&mĹ##lfc+HKlW,!BP2C]hw$25Jm&EZ,5e죀6PsХ#h,ssV,4o*'z1^\v @40a#9zq:pMFiL5iiiƚi UIQ/))h(4Q@NiҲV4 ZqN)MP%%Q@4ӺitSPhR(ފQ`k#':U|֞f?Y4*ԋQHkMҺ8ӇLޮNeG0G]^j2>konՇkD򭡈tD UHh FLj0d ʰ3SǕr*-ɓP("Dȹ?ZxsҳeҤZT|in +[;֟Juס/*5Jg +E: +uߕ0TUun +Ӆ䇪>ǢPJUn[U ) da5v?LCS֒4ր9 ͸-QU9uD@ͧo:jC7*k1(UU%Ottl&ntHN8cƶ\?٠g,T9r2G +@ɧ\_%`!nAqҺ[ E\ yNNks (t#+Z%_@5 cG2~HrqM~W4M%-%2 +J)(hC +CE6 QHj): +(tHzQHzSN'J}!Q@ hYidfYh))`Uvw[s*ŗ|΢hБH cҺ#}1\ފq;Q]'X> 4QC֊8RERQZLڒњJ(E)4RShQI@-P!hJ:J(E%(4Z(Pi(( +)(BQEJ(hJ(hJ(hJ(h((()i(Z)(Z))h((((((hJ(h(Z)(J(ii(uPIE-4isL;4M)Gȵ7 +5o,,by *50>8#;sBLW-۷"+[r 3cQMѤBI.|/#d HTeִǤZ!er=LRveY1aNE2dӟi:P1R\JGER0kZFuV= 2 jD¬8XR Jn)@PF +kPC·لS5хՑ]?:As:m"ʞT$`1sE6֭n\U<п8Nt5}B!2ǽKc'UVH4 +(_su5pcVdTeWV AVu4(KkB.:DGCSynC̒1riqЁˉV @>%̷IWz0y1qa,gӏp8恋E%(ޝ@0 QC!L v<[?ΪZĎ3ր)J@M>zmMiSjR>85'Ґ )qޔ +105`S_Ϙ|¯CKHii(1(N9T(H*"IU&ހ4nAncOaC@ aU^jѨ]s@4+ma>+pǣ㓶\|A{V=jzPlMvZa͚}ZdJ0=1@(2z^MmCt)xLSB!cOicϽQ$&iQE%%- +(ĠGjCCM)*ZJ)ԀJCҖ:SNbZAK@ W#P"{3=!?b+QD#@hsЀ$$Ą9ٷZDք 1i{U[8X%Ҁ+`ت?ZwenFkc+ph1@^V`ԗ72&&槟V%R"n,G'Rl-9c)h3Б]=:V夁tV7[ mD**U:MA36[ U-UZsPS|ͷқREioHfSTL*f aPڢa@XSjCL" J(cP.H\9ٺтl(P[S"w6 $+&1KnlXdCc4/N^q)qfp%Pmfqy1AZD# Au$#h\_ҡҖ 0n{tHcw *=iXd hIV70i8QȞlܺxU؜:SzVTJN4ZΕpUs@R. M`f#Lgl} Yp6T4\nLw\߈tcǥ!cJxTyɠ jjV4YЃPGR\vCB2<#O^ت$ 0Ԇq`GiSӱ8xv88 q@4ixՊuj;@RS(QފQ֫jzP|V`1V5Vc 3/*HuMq'R R4CL4Okۉ+r =F)1IU>)0 ӏj—:C4E)4N~=!'tzr6ɪBmRH~N&Lqd IKI@Q@QHbQE%!EE Lz}1P1L f94 zSV@ E%- +aKTALnJMmxTL?)Op€9%ںXsg}tP23֓4QE(RRP1ii(QE +(PEPIK@PhR((QE +ZJZJ( + P (QE%-PKIE-Q@((aEP ((QEQEQE(PIE-Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@-%RREPEPKIE-QIE-4JZ8SE:4f(hN)hT>?v0@.7^ +d ӕ=j6=x:A24mgҫܨvf=i TRZ&w?tգ>#])ꞕk3[CyIɮiwM`Nv"uօ +'tMͼIi +Hڐc9Z-g4lmH|.)Hd 9dpj͓6Uk@E_LGqԞsҸ2]3ҬŶa+I+<'?+\G-#Bh}9NñjeWWn~2UOl4-?T+`u=\as]?S6}KaqE/H?ѠvƱ|O-ۓd7\Hٓf~Qkb)3g}vrqfbdoݔ''/tb+{RlR A=ǭIN4 gzJ) 0ZC@ J)){R4/Gjm%)@!&hwi< 8a4ySM4a4N4i @)7ݤCh~lި?Y5GH9mܫkBDUHu{C 4dbަ21~5Q!B7u#чRb+cjd$ΝštWzerAЙ=c+Ⱝu~[ke #͒BAM6X#2FԴQQGŠb =zulTWJ@XES)ii~SZUrJd5D3 + tۭJP2#M4M" Q@ Ljy i#,D~UCfd5 k\皬,ѯaܙ.s]DֶZ+' F][Nxh*+HeTG}s̄Tn-k4/Z}%$jΒ#1zE6?m ܢa3:u"1BFi51z܈SኛgNm"_$H +y >:.?2W dhG*xʘz뚩2w W HFEWtbH +S'Z }kReӓ@6RoҁN~Z6 5boCN,? +n٥Mi,}r{RSvQL0"jH~ZcUzC%oQR7ݠ{҅QM&'K)N1LV~Y>"<֓ &;UJ>@?v~-֦ v*Rcб&8_+$K ysk ڒ1Z'N( k +Ĉa8c?ilMF#%UhHx 7̪XJ1zU>ukdpy製5ZZڀ3e8-dYw{,!$UQ_2p&4U& *5\o=Z[sڮz`S п#< MYI|ƺ4a NbajrFqYI FOn(Ko'RrsQ5t?!N 14?{`!OЭ-* -+(PqTl}'@[sǩuGM3?u뎕 QEơ4of[jqji\)Ž*lM)HR +(RQE&1 JE HzRHd-MJ怢҅1I@)i)iUYRX3۩ +su4`Iի> OUXjhz`rk],GXf-tjp1@LQFh@ ER (QIK@%-%-Q@ IAPEPKI@PAPA@)QE +JZ(QEQ@QH(((((((( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(-%RQ@ E%RREP (QI@JZ3Km-.hPhQIEJ ͏T.r#,*]/Q? ѹߜt'Xnl}v:ؓ0OR5Py*t*tuk>bZE0/zIڎ(@ IKEQERQ@ IE/zCIK֊ozB)@ 4O4@df|棤SiԆRb +\REP(4iƘhiƚhM1*|>TpPE:֍ThЙ +ii-P)(iM LsJiNRR( _M?~Zo~fF,Ipv/,qoҢ1+h!ֻÃ~'Iy7P)djG1ߚ>۪9$K+5^ZrE; +f]`¡T̒G!瑃Ym#`'`Z,F|wYX5 LwxOLV7@=ZG-F΀}1M=jh,UL) )M444gzCAE%RqHzQEBiғ!i4 4i<ҷң=h12Dd,Ӳo$kSvܕ=:+ܤgCްE1[\A ^=,H;TT@j;y4&5A$W^QT=YhԔh:L:Vɫ:An)4 V̓\v +%嵅[ Cp?tީjk) h0l}qYL> +[Ɩ|flCIm+P+آ#,gWmӏ/n+]q. [>)GqUyZqPH3V"f&ժ#5k+J( $NɭU'\@05}CSno:J;U׎cLf 9j-WS9-J#'HjN%E V#!SzC"YM~~Y6T&ʜTiUh{[񦁎bR%ycҏ(Tإ LDbʫ"+B lci95nP@>05%H5 -g<"xI֠us8ǂ8]esn5i:.搚)NQ'1ځp@xcw֫'sM;}*"E!=)4֑OZ 3bJ@)M TQ@H8֮>ST1)-0n))(%-%-!4BGj) (4Q@Ji()RJ(jՇ٪gO?zӤL]ՇI%Z 3W0[F}9 #cN.b']^8M6E6Z(3KF(QEPE +))hE-%JZJZCE JZ()iPQEPIK@ IE%-PIE-((((((((((((((((((((((((((((((Z`QERQ@-%-%QES +))hvKIJ(A DPLj L[CɁPLVԟx6!?U/1TnN~T*t"Z}EeEֵm;PIJi(Qޓ(3@:EPIE(h=i3A<iqޚ})M6 b|ݷ Pl/Hx]XGb ]( 8TM(8[f~M88G:x94И9> +_b?!J,=B❎(8O kACg0*WĤG=]j9( +сS֦92{PS[_Қmڭ&A Uue +!(X9$VcĒDPJѷPkdu-~ t^028ThIF-(@N-1Y֦ h 6AN`qEQ"RRP1hhwƘŭb~ҳil0`G~*@*٩{܌~Rrjx [,M0I9 dTȖԩZ6`FQs2O4ΒM*co8D*xm:O6 =麅]܉M\$gi+{Gox̧%X_stWKn.sԲ&t ɰ05;WkcJB \© +iQ&tUom:$:Ϯjͷ(*=KObDȻ GnrzViBt*OZj"șiBDvUolHZ29B6.5TN04QLw(Rc@=( j+;z(6jC ] 1xH?jC͜C!#M062c#cw(fagEO8Oݦ2vCZ bxQѮWpJju))#?5+Pxw61nlfE1dcցZ)&})h]WI3&=2?œ1DiϦEZS!X.4 wFi֘iӅ41/5V\5TԱ_g8Yޤ3$MޥjFSdBhM4T[[pRwZm4ԾLZiP ր=&!&;tezajQiJ@'7 j٫0KSV,q8-jFo9MuYbvi@2+$$6ȎLֆQ8C֞:b-Ie!=(qP|h\r*) ӣliXdP"-*ZNNF+CP #;=qt/Rn|͛_)M]"D*70Y.Vyyb/ҶdЎqW"Awg(p8Ӛu+2k`a h¶x=QؒĒFy +7PTc 'NC֠^ +`t:yݦ1Egq%- +`Fu T\^3D#;acBQڟm\HuZ% jo].}RZRIu,ibh?Q%a'A ppYx=* ++gN9 +~tØ@p})Td!KRSU =8UQKI@ GjZCL)Oh=(HhQ@i)L4cT[MPoi mQ@j7cS%AF(QERހ0ǥG!!4QHhC + P1))M% +( +ZAK@OaCUŗ#ހ,Me>_irx7hgLV^pEj\s1->WZ#?WXtQa{uPKIE-RPEPERQ@P()RQ@ EPEPIJ()h( +( +()(((JZ((((((((h((((((((((((((((((((ZJ(J^Pi(RQ@RRJ(K@ EP( +u6A[^Pb?W̾Ϝ~h2+dxlz5ljfs +ۚٛaXڶf}XVԿ| tڤn$sW$}@EִJˋVQH (E1 4RJ\Fh()(4Qހ4M&~M Zgޜ}?\z_ہ؁Wȩ)޵!@ 4iK.J>(\R +m4ZNiƜOPHE< +1@j6Nh0RtQxS-FVYh0iѹS(aLH +:626QUkNdgk$T%- j* Ojn)5c9SM>]8樑(P1(R);–R))i;R4f.vV>d'@Lpair:^Np'?^iaj־^ ?U^ tXm\iMMjcށ9 v3А?ZWJGh_SIr*4NE>q 1RF.i-! +?֪իmUK)ݎbwE`PEkDEK)U34ؕbt'MIܮ}h *LU_*7LO R_-tcύA+Si[sv()2k{1+|8F= v,N: U2'zSzz(E6ZAH/og$m?±G?Zx1@&T`|S?*Aib*r#'m8,\sP\j݀vAjOI51G|\`H A&Uɨ%mQVH`{;.Ny zfP2ҳC^?:\߅eǺ +Z"XbY mDfm|H/iNր6#tir}haGEEt t k8;+n3Kk+}fІ@ڹb\^9Sz-[3zpgҭ#| VV7f,sw4 +sE1Vо8Ã@HBՕ{ypV(ÏL5s|MS[i$8\iZ\UmliqeX})YD|YXt,3z +Ers dt]W.A0>>Ht`)g='Yz?c=W\-U(>VnygҪH8PbEhQ zՏbOmHeL{3fPMV2@y9 ᾕ^nef̕赻bx8FMm +s:P\]V30VE&}<ƚkOU<.i ?r\>CM>IyS qk2F8>miUsc9Mb*F0wD$T?&)͞GM>g8QިxH +[$BUMv?.7oN[tJ޴imU5fFq4)iҚC N~@( %!4iӍ!i /JmQ@i8hNaM4gKZk>_i e%-%%1T~bj3֤4ր)i(1))M%!(QHaEPEPKIKڀ^Z eNXu$!kVnp{ɭ{\5(&8okuڢonWw~\!43SH8S#ۨ@}[H0ƛR嵐SZɤHv=j @w`*1c?.? *1OPQKE6i@?ԵTnKUAғ7 p KQ0RZ0!H9^i2Fw)\}kN2GvQX}ۆc|U6oZژrUozCiEwDJ#xpTCG'eA[90±Z 䅺jne1T.d1M*MF>RAi(ii ii(1Hii=i hD?C@Qv("bSF(Rb@SASF()M4NtiqV/ҩ*pT} +m>ur\e`~VW~\b tKQ11Qia- ޠ>Kjظ ҤTY3RLCҷ0{sH 8mH5 4IնzbWd9VU=i1ֳu1iVn0R3$;,֪ S*sNj-D)RbRP(4=Y +m:&HԧZ0aDhF sD⚋T*@aDGƶJbJ +zb2:Ui+yrV4Ӄ#& E9m-gke+ u[ HʭVOirL!ʒNPZLPCJi1@ &ҚC@ =ih=i()iޔP578v4WC#(1S5P9"aOM=hE:zR(%%-%!(C +JZJCIA?t_S@S}ꊥQP K? YucM8&a,mj.F.e]6ͪSꆥ M(RRPEPA@%-PEP@APh(hJZ()h(ZJ(PE(JZ(J( +(PKERQERPIE-Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@RPEQEQEQEQEPRPފ)h)i-%-%-QE%( +ZJ(4QE-%)i)hhJZ(\i(4kO$ܑ5[۱K55+=7`mk!9.mIsڱ|AmrFqsT"3LjB*5N^ukVru ^)i:=ii +( +)(њCE-%Qޖt5dUhxs*@KIHSu4iRxQM#P!— +(N"i*B)PiH1Z.>STR)1=68Tk3Q +C$^zۨ)֯[ON⚽)j!Q@õQH)S(84IKI@() -4k3Q(neTK )K@ uLm{2\2u4-H[ ":fȩSs]|45!@?^inrq~H{q>~o\@"E%4S(>HzPYW.?ԵT0|٩)2) ]W[a6qͲ|5e$8ӱ?!npA?cڜ[EU|xuf>-mUmEYT!)G)밈u W'8 +u| +ڜ,U+qɭ( +YX`d؟95`>:⤦U!u41 J@ꖯ͒8vj=Z1HcqF)أQv)q@ (P(RN@ 4O4WRڢ.$ v6HA:#~;ԏiyr8FSw2D:\\\%Oq+;nlnFHZ+nV*h&hcFF47ݦӘj(R4f)@ Hi޴Api;҃HnTATnTc +xsЬo=*@jSQ5XT*DSi撀E.(/ެY0S±V`9 +8D$ϭX4*yo$`cIGo~FiC.N^kSM@Z}6$\ +|HXmh1X ܈8 MF*9K !`dҺ=.#nqɬ]^I5X8KȒC5m/##9.SUv[xR4~Wp}y#rV 2 nj<^MW?CUVλnj{rH鬖- l6W@r R`5 =18jz-"f^Ճ,;nx>ƺu`:S&\d`S: ՛![`8\zC;T3( +w.Bґ[i6 R2H Xax9FM\C[`6@qO5/s* MI4j[ ml?Zϻn斤Ki]pA5'o3}‹Ȳʸ <DUD[Ïo S߽żqp7.&185iqod Uеkd%27pA 5IZԷf@jsNkPb :Җi^w PC.m FZJqU5>m[E_f^)1N1NQ~)1@ )qHҁAii +}@)}A@9/ ށOQt?B+* C]sW2AR%D*@qTI 7JixF8LN@E0f3ɦiiXTޡޥ*YͼgH QHj62ZjӍ4ERu!Ybv@ 3\ݤu)R VE'[JƵD3T. ~=jkp|:ӅH{wyGʧT:ݣLLHL֠tz9gޱA遽khز4zX<πF|N U\PX? GZ@@^ysq$4J\ f$ⷄGI.G$}%T@ k$m4S!$WE5FⰑ+$YOz!֮5dvF2I+}Zvc{%۷ +[Pv ]^2-n9s8WYE$ƩMp*ݽ)2jASZzvgOg5(cAR3\!f8P2MW1I5M7Lcw"(=M]0 n^;RڭFj\[Pڠ@ePP9k-#t hSlmSș4c;+g +wE8e+YiҢPLͣCx"NJ֞1MJfSsWJ9Ui8>حFժ2bc5Q$-UzՖ'h"ZQz+:0S Oěfpq05OL5%Uj +FInx&=~IU1x +G\B'vGzcpj|\[nqp)~yG *IA +( +CKILJiq@4AKEiƚhJJSҒuSW* ~@hJCҝMj)[ a7=S(P)hQE IN4 AK@PRR %))(haJxRSZo>NU? v5wN*SR45XcR7Vy&QԲ@JZ  ^Ԕ(R +Q(()hQ@-RPKIK(JZ((RP)i)ERPEPIZ(Q@ E-!(JZ(J)i(Z((((Q@ KE(@!b +("3ERJ\QLAEQE%-P QH(aE-Sih((Rb@QLRJ QEQEQE EPEPE-R@()hS% ]DN:-4o +;LkY:hF淓'շ-N!Y'N_hZDSj3O54NR^mUi1@mzOZE$ST)ihڒ +J;Rր4R M{PQH )4^M&H94$oVj<8>8aE-R@ 4RIB;Ӻя΀֞)--RP\Pii5WqVDJAP5[y9 ⨯AZ,Vx +4ciC;Phwj)%%:@ AI@KIH)hM4i +EB*YqPp +ud٫c5__Bć[ +_k25hv?~y^ +Л溔a +σkÊaO@ aL"5aya5HiH&VJ:UյV (?0y'Ff7DGO31ҭ\82DKN*EkXP)1`)5qs.w^>=?Q6dOܸmt"vJ%lK ig[D'!rh6ĒSǣ"y=J_;'6D(RK麣yN}qt e4:{F=9_d\e`ϻy$VG;b1Z0*5]C\)F|+)Rdp9ft4ƚJq@%T9 +j=7 +~)1@ KڗbQn)qK E(iO4@H>aM94@ +*TTU<v +z~5!܊}ok$B*&N)ij 9)Ҁޜ{֚:ӉR8ɧ) <CM&@;8n}#ޤ5=i1QOgnKtڤcQC"jfXP23HiSh(!4꒬[~?JÐryc-ã tsȭ Ѿ}0$^N+ m]c(;O5EwP̉~1L'4e#I?{yA5b Vy!G9%7Pl+ZMO-8]3rY!Xu{5>cQUb)3A4 ';0~V|I~0qKeÓ*eZ.q;Q]$sZY+;P#+"q\A#1d;¸ٺkciCYE^eEc |bSV翼@HYGl~U#+ 9855m!vMGb!OCڬ7<;7a("c/R5)mbchIZٝYx Ҭ]pO%&u|Wwl/F0rkz=&C>oSY,-bOO$@iү]a|v⢳k,;G MHfL`{@;N\5窖o* 9&{9vg˄Mdns5=\,i?Z7Lr7EŹi%\ӸX܌,>NzmPm&1֮m+ss^v)\4퉘t2uP)RafEH@ 4L4Q5TrjHaK@ܸl6*C"M2ZmnX] /x#"^{qr\4T`Ѷ>xջ:ص J/rQE A4T/,wnsYMgȆ|޹asBYf5,X{w +/WT͓pPI)M4қ$,rtO-"n(4bTɌcҩ5#C,U䎆B%X|Qv(bP!()h=(L4i֛@ +*x~s}]D'EU;'d#@g?T%5"|OMF9ohRI0)wWA҂x \H#LPA$q4\ 8ؑM3(8ϭ`ťܖَ[') I57~%5097EȴPN>Y1Ҭ>Gn+H88b Iqq N/Km +>]H8f^oArtdPI69vxⰞ ,z5oό;FUɱ&w`VgSf$g%ː9g=o'j)sDZ2mƢ1qRP1ֆ &*k.%_ hEEԝ*/JPB +((4a4M%8i(4IKI@ 5Z֭u3@ʴ +(0"@VGEo@TMc(0ӍM0isx4Йm+1 ΙyY1sN!MYvz;Ҹfizp1T( E%-%Ji ((EQڀ4VJZH>CjŁMKbz})5I>|!*}[`iڡe +TRQH(J(Q@RQ@%;((JZ(aGj(R))i(QJ((() -Rw)Z &y4QE-%Q@ +(E-@i(JZ())hJZQ@ ( +ZJZCERPIK@ E)i)hPR(JZ(@%-%-0 +(E- B;E(E-%QE%S)hŒQGzZ))h)qE!@ F(PQIK@ IKE:#˟\}:qY'&tU!zr~.WK8<Z}qCJ( +9EO(}EiKcҩ4i⣏Ԕ-'z?4PiGJK@zRSLrFisN=8@-PPzbAS'%|§PENhQIE/z PRE x +\SPALRS(ži8j늫*@\UKCWaoLetW iW I)SQE-(⒔Pi:RJQE%%:@ E- AE!4^~ M-C@ +)E ++?_~[U8"}w9;Vh_Y үkg= ?1z8-\rqZghmLpd`N>V4O5P 0Ԇ4L=)Ԁ_mc][*bZAKH隒*hDVʏ1ϭeBֶ1QID$+Zr2;k>/*vQ<"DtRQV@Q֊(`P`3mu,cs>Vee@&4Aݒ:kfR$^~FxO+7;?z3)I{Qųdjjh!qb~]|hĴ([DM8vǭClV%rh*)qF()h@ F)i(u41jCL4 ޙHaS5 Om7joZX$bi9L*+FagZѱ€7"ԣ/*QTH>PQޗk)jN?+cH\B`vkTֵɠeIJz@ǒA^5GWFj&mQ#4N4@ƓE E#ӣReicW@4Xz =jK $jR/mV&iq$UGq/hߙ'i cH +zݴ/ܠbHsZ:larxqUm!\ܣC +DAdH#;HԆZ{26aLsMjԭP (?Qɫ&-_4sH mъ,R^B wKZ IUhD%3ޘn48,\p5N7= \ԝxexr}k7qۗd;-g1v5hvLlQAk%gVԓMvNF铯ABr r|e_n%om'G8 YEM-9cާ:}pwMN֐|ī`sjdh"wZ@tPᱎr=cF$a"@ U/1cܓ@G} >_#ֶ2*'<_K%* ZuqJOJc +j5EMBVdEi(GԢ,.jJX]{PЪT +bRIN@HELREVuQxA}h +T1TDr*̀(JCKILiM% iOJJ)(Oe'sNujW%*JS֒ŠRQڐ`or*bՌH4$$W5{њ7ӊoC +@\JY&ۑHcݺC1^)Z2!r]g֝ÏQY}1h%() +J( +^ԔP0/?SR֩,?֑aiLh!/cM ƠvJ`kIҢ$GRIKER@(4 ) -b(RAEJ(Q@J)i(hJZ)(i(Q@R!(bE-%% +(Z(( +( ESE-J(1 PRъ)QA +)i(QERRъ`QGz(C +(QEQE +( +( +(-PEPE-Q@ E J(Q@ E-%QJ(%-Ph()h( +ZJZ))i( +(LRFywljd#A²en}?Toq!d:e?A]-:SvoH*}U1CJ)QKE"kUv"E OnȤƎL柨&ߡ:sZ#̲bH̺ZAd)Jto⌆M*6\i b?(]"' u5$:"OȽ07}NG5(#E?e3ǎAi 8MQ#j1¯U=kٍ@4EQV%"h#RO\b1O4CqF)ؤ"LSMAw#Ae$J+Zdb?.B[ Ĝ vI9]~6Rz9Fq޻K07j(āM '1V+&rZY#=jxc9>Lra1SA՘O+>¡o9LSR}k[Fl* Ef;JQo}%"?0@fRVI P}9'?f˪Kj!)ƟA@t汴˙BW&.)S@L+SM@6vӀ6FDVHa@\qLLjl&`i*4Ep9TDrIXCg=k +X0+j/*%5D{3 -iiiƛHJCҖ;S(Nj @hPQKIH4l1Y̧7R4@%z(M*<Ӿ(eQ` .Ы jvT +( +CKI@ E8+sN ѓ4i58,՜RSbSm?~&٦iK> :G9ܾB6|*>+ޠbQKI@-RQGz()hQJ((QEQ@( + %-%(()h +))hEPE QIK@Q@ EPEPE-%QEZJ((-JZJZ%-PKEQE( JZ(K(QKI@ŠZ((%KI@ EPGj(bRE%.( +)hRJZ)h +(G4P)i(JZJZ(Q@ +ZJ(YLjzU X.zЍt?=/_EtsX2SSS(*ECr+N۵fZҶTH1{BV,Pj&j8QRSQEKEcru9~SK_-[шUsI'&,; + W<BGV cQ?1Q&ai1 6iQH=WC1kfVv')hjKF9d`jZ_ +ЯL+/jaUИbqִxX,Ztr)3TfE'f$Oʏjį-5FWOO$f%T'٨b{b1.ݥPX{%"s lC#%~Tو1NXU~P? += 7Nܥ5|[(,Y?m rb\SQ\ +~#>$$z(c6r̓*ٷBQG^,U_X_dֵ)Ϛ_W@>X~cj=X˒[2;<cRْY8yJORŕɼl8"Sn|}1U楊fZxH5v9ROAK$`1H JaZEhƔVn汬8zR-;M!mmH1F(-NE5)9F iUn)M5š,2ȿ;c=3] 1Z6+`UDLv( 4qO)QE)M=h5 ܩQBQE7N xn&LR< ґIHcE:4PNJԌj3@- PM6iQ@Z\pGK4$fj89vXqր+Z8]IwmY08QWs[9UPZ(SD_/Үs 5GD?l=EWAL5#t@ EJ)h  +QIE-RQE-% +Z(@ E(JZ( +ZJ(hJ(KEQE +( +(GQ@Q@()h +( +((RPREQEQEQEP((()h(4Q@Q@QEQKE(aZ(KEQE(EPEPES) +(4S4Q@ KIK@bCIN4RF({RQKLPտ?oxQHv1M4#m42sڷ:\C })r@)P!œ))+Bz jhLԋԴ->Rg(i;@-wb=sRScA(441E/KK(zZJ3@&dџUH%!4f KMH4-f EffLf)4fJ  4O^U0kA׃T\x>xNҖ![ѩF>VQҤLEQI@%-%-ZJ( M4fNME-D*Yj!L +p@Q@+OLu k:O$kJ +-Z>X ]@+?ak @5FjCQ O4@ 4ƧcR+}*MR1M@-Q@^$"` j߰ s(œdBz To0&^~ZpY''n fAQHMG4bh$u"+|en==+8~Ϫ7RA*Hh6GZMWPy +<6T÷.  XTWvM*ui{SlNTؕѩ)G4E&(v("i1N"@iTQ4i4jf!ӥ)ũa?8": ;VN +sjij5 }bW' +gh FnzPƀ-< 6gPy47}#F87?C]h3‹a׬ S4}X4[Johl9 wHs?Y[=2>T +c*gqLub#$=(}E:AƤ4-Tf⮑T_? +LjyLjmR0ڐژiL4JiZ( +endstream endobj 618 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ha(BQv(L|O'=hU s׽ +0%4m4RPQKEE[SYotLidYb kx3UAY7ZZLST;le 8pz ִZ=mƲqZ;VE>Ʃ>{Y^ #GHOh6CQ PHIJF5 "32oub2B(J1bHկҘ +iҤڐΘMvc83oW*>!V8>6"FQVf%s*{W߶486.nGoEA ^?Quoi||U%tKќ5+/ANi#-i)02Mufj#$W#\zu^`t8=Fd9eG t}E`xIvʧ4 'ם|2uHL]CD=o.׫J5; +C;]bsV^;Kv4Ye}Ev"ׯ$ 41U1,^HiO\x㯖Kc2me#S,-|Cuw#{&kM smmoZ&p/=j)֫[𧑀I7`jmu6co5g>p8)3lf{Jhu[$aMAZr4 >Sr_yX 0k S H9wqr/%V7!ޞ*~un(8mj--㶁#B>aAMsXc?Wjc#Ye҉ֵeI;˩E$'iGXM(hVe5 k>2{b`dbf3B>SAk +ߚ[b~~YEjCbP}y0M )j:\AlxAmDk CSYw^uw iPdk:*JheSՙk +[ⷰFb7[BzṠttIigݷC] 5ٝ +ޭo-۩ dUVlkS)H +5#:I5cT6egjBHF?P֤[+vS1ݏ¹녟PUDhkzɜlRTvܕbI]@28^?AndN[YZjXBVE Bx-Y^ "m_au_Y$9ٶo\VPg?Jn arE]HŒ +FnWk8Q6YBM9~ \{J,I.MCe>Ij5LfI9JtpZV(J݈-rFEhJ)e+Z*4RRwEJ(bRPEPIKI@–@bc*Oi ~N9,_ZؿCY5rOcTh]v@\qz> `M8M%%)AEPEPKIK@QEv(((ZJZ((((((aEP ((QKI@EJ)i(h((AN((@QE0 +(zZ(AEPEPEPE-%QE-Q@-%-QEQE-%-QEQE-QEQE(AERQE( KE ((B +(Ť-PKJ(hJZ)i( ugW_::- 8 }[ !axMw,kw $w3+Xކ?c>"I {T)8j+"oʦV1@ MZIRր4#Y}kK1 4RR +ZQE&MZ(@@3EQE0 P\un:+J(}0*EQ"R +uPև۪Ժx!$`)E8j we5SE0NJ'z^Z4a{S 4ޠX_;-4sp3B˨sT,[>?xSO1R/Zh9_J´·`B9QJNL :Q@SC@ nE3c1M< +TPZ@7MZu uNޡhۥg|t7 R0٭ 6DS[X + )&/-"V鹋 czռ|tGOzLq0)F^HџCz~sj1HhcNb0L:!qU/3tAZϺdTQa6\;OCl%B:zV%jօ*9Bs8)N4@34|ZHE )’P"Xޜ~aX3MzTFlv)hJq4ԄSHcGJB8HEFi)M&) +`8uV@QK@ Hi{EDj'D]TMS0Țn+Tf"j-RRV +=W8tWK2.s)Š+bi_QޮZ\lDtXsLnE)K֡_*y5_8?H@QB +^)2=+ѕGHT?\<ʣַ g^RAݬ vةDžlV_@(HH=6kd䢓$a"-& Ώ36p:m6[TAEs8i8i9}AJZsfdz֫^Z&0.E@PZw6*έGkddg,8-i١oxK9icbrak*GoElV6[7sn|( ;{4I<<,,@cV`wrX2oG]˩qpTY,,1,zѠct|"9.qVlu8,e8 As@s3`aM6t2׊ڍ€<}:$SFS9$+R( ig)'kյ46%rAҰ].]gQCQL}{?J##ں<1*:_RHkQE\"*Z1SE8VeCobuaܼ9]phXjձBOdrG<֕{qL &iԔay}61+u`znIGT)3 !$%qԟhd/5(SEq1+x՟HCǞq֝kMvF9 \LIp~R3\ۙYۜih,y^++`]x#V+BBNGV}`bQg84&&|JnщZ_s̀ +/#&EUc=\ 85PG4M⧅Fz&XZԟP]BHU$V%U4EP~vA댞c5xdg;\$Ѱ*%GQ5 ʑ*!>SEfJenpk;bIZNM[*hE,p!5fQ$Զ63]N}uvbZpOsNٝ?ނN+eMe0ȆU!)aJ(4RRPQERQEQI@ IEQFh1*őH /26}i$7֣,q[nsbN8n]piM_z46;=;ǩwz2QC@HiJ(PEPERRPIE-Q@ KEQEw( +ZJ(h(EQE ( EP0(i( +(Q@PEPE%-0 +))iQE)RR +( +(QL(JZJZ(R@Q@ E-QJ(((QEQE +( +Z(@QEQE-Q@%-QEJZ((QEQEQEfz5j$ ?vS<(؊<&a]YWB4 @G֣7SRg94Ԭ"FTHcUj9qub6Z.jZZ@YvEj4wRL(Qފ@Q@GZ`(Q\ +u +R +Z 4өNHS@5t6*}c<5~\~QkSi4C +( +)EZzuM5M1sR*6ibƗ@'jk(#S@PP9 +*E.hRR) /ZCޘ jJ R'ZoJ 3R0#c}aĂt#\\]e,.Pw*?-H){SE8P0G0Ex.{r}본/&HR 8 {jL70975G8ZqmǨ F,Jgf[iS4yLz`R}S_!pMd-&t7XOg4+ VQ鲑 iJ̢ 9zsE:w簤j蟢ֱOcK$~U:^ ~%edn?٫:=XQ#|>t= v =b["yUNE]YQZ6w"I1gzF?AVQ(ݺ.()QE(4T7sh uިj |ϐ22=)޻K 9|i}-̙`F{UI}!۵=)}}#}|@I ۍ=cfHp +öկʤHkR\նgH4TkcsH=Z;uD=<*j3fRx'/KbE2X?@IYll=i!4Zg8Qp$tqHF!?aOc_LUFsF9OJɱE$r0s4(⒊`k]Vg_-h\:E/.5zݬW k7\lz krT)š)°fw/Bd5Yn>6Ο%bD׵!qI=8H*;HKtsc zɄxI㨭OMSKV^ &ڍn)5) 9_<.P9]\{mu4!#TU݌'ֻi筬F6mW5\wJ=k^٬TF{Rc0S=i۪dXT]^V8QW-$8G;mC [唬/lfqzvtHHX9Й;!FP5[YFsU=._!?q𦄬+ܦ|=6KhpA]KU#ޢ2n횾iiEQK"SlFCN-@m k5H %)EPzI@ +(IEJ(i(C +(/jJ%> q*5%[v:TXv/N# pv9AXxVgHCw⍹x"j\ +iZM?o4"4֥#f)iRzԆ=iV:(jCU2*@ѧP*pR +VHH2jA!_O|0 ^- +,"$z9KJɸ8D3LcU%v=T.Z(+Fܒ]k[Z5m9@>0qWb3Ub}(ثQҤ5IF_YS)(E +ztȬd[y4&mg(3֣jp< S[1:SLF8ѷUm]hZ{?^ۨHQYH1ϠN]*Dͧ0]{]}͌Oچ$tUȻF%[TN]"sO^0@_cM0g2z Ӈ(>,ҵ?(`ޡK^ǜ} $_:v)/+C1үo$m"KUy P zr}+5ij'dE6#Zq`U= j'Č1Yb =)0ğhA4 +˸yr( k3נFK!]|YҩUha4J(J@-%PIE%PIKHQ@Ÿ }j<ҧr1 T5==*,c+kL=OkkIl1?J3D=Fe"QQa'Fo/"RZC@RJZ)(EQEQKE%Q@J)i((QE +( +(RQ@QH( +( +(EQERRIKEQEQEQEQE-PEQEQEQEQEQ@ E%REPEPKIK@RQ@ EPKIEQE- +( +ZJZ((Z)( +( +( +( +( +(J)h;L4u4u6L:SgCT>?q\ɻ<"_ ȇa&JCĖV1_ɧiUi*9z>p}|C4:֐֭*rmE9kHiũ!#ڴnXL=Ncpث | (Wu1箎3]jɏmi&5WZxLCVMiݨ):zS1zP:(֊SI@Ӆ(RhR +Q@!=z'j&2#QJEF PxR4@m[icz n$ҟrztZ/zQKIJhJiF+M0(J؁3*v(,zxӕ3W}r=zt뵄Tgއ;<;x~@z{u/A;Ϧ9QnÖh +(:>}9QEU\λtjml(ݓ޺a76Eo .Zh +Nge +qIn$f? ++llyrW>#f=F*+H cR2m1nM\ѣpj+K*Y= + Р\j;?Ylں>?񫙜I"Efh7<\Οq}i\ ƥz?;NoV&)V. Zu Ҷ4ѲJqaY {R= kfJ!}ӱqQ˦ZrdziP2-"Htfmn[r)R>f4lwr+sclug>N"!pFu+u ;bIGaI6Hj6Hen.=+CȭGg|Rbf3 +=yuxHkB|Q"1y5UK`-*%=XI)&,ӃihmX]wiY@4<5.}3W-¾^D{!4J(h +)))RREf-%%- +)(N<xSi\j}O\Uzu=1UG Ƌ͛{fй|8S'A޹=HlէZtn!>iuy4E)hIKI@Q@REPEPE-(@RRI@ EZ( +(RQ@z( +( +( +( +((((RREQHcJZ(QEQE%-PJZJZJZ(JZ(( +))hK@ IE%-Q@ E%-QEQI@ E%( )h((J)i)h(( +( +( +( +LR@ +)&RGVڀrmI%u^#MCu4N~ҐޫV9xYC4>>²>AS攚C֊3KڛNL4P( +()RQE!4Q@ +)x8 +i;Ҋ 4ө"Tt@ +S֐Z6CuFcm^K%1TmOʿJ@tc>H}'zB+DS Hi@aaiM4u + A*F\ºC-s֟xWC ])lJ`rh0)-WTkyt s(-cPy< 4nҵ,,g]Ϩ 1F"Cj ZcF.J'rϧ?Ja׾ok@ fooIZ'dȤ3T?Vqeqv1MیcSl[0)$6ڜF !4 IIq4M%E'C@'帨ɠޘ i(UMFnPޚΫՅQiɦ⁗uj| +h-:IF1UxǦj(7>s#XAG6/''ڮRZ'R20qH ,1\H]B!lrU=fKs)2!cN:c~u*wʛOLSYq:HduXE$~u g?z˸̓ql:ΟШ:? +y[}H<9>{I@T=] XDƞcgOҴA%$Tr1收w,Vs/ ]Bx6sz⡏11$Jx|-`3~tn21;0<NӀǖOՍ$p}AIԇ8aiĖʡ>? 9  DԵO0H3NeRd'֬%$YE<㊥Cy\-891F ?JH6-z]S&v}0!xA톳㦳u tFhʢ E8KJiB;Uc֔j,N0,qYڢI"cW0U("v(Uϩ ;fb)lёʱk~ݚT155Fm*ns^+.fッ[>Ǡًڲ+ >ʪD"Z)@⒳,CIK޳f[淆v Xɩ/ boz:G\?lSY4 K- +,性VX֠ԣ[?!DX2,)Z7PoC[*k^É(:ĐUqOI&P{Jmܑr}jTD @THƟ݅!QI3QHvSmh\Ot=p`1# f4Y.f!` iq3vi+S1G Y O^kӓybh]NzfWqzVXkI+Y&=M&Gj7M apOZo +j$NjJLZiPEPEPE) (-!&hSXfEƬ\ Wc_j.;VSt] V_L8`cXJ?\v3+vE߽}F)09y8(0VV·Z45eF1#Zj|q98Re;GR܌MTT +pZqcZӇ)fJ*&=iT qޫܱeVԴȠ8ZT}k`9oje򔝫ҢLQ3+j+IcސJ&H&EAD]8'kCQmdy( Tm-Mъ6 !\{gX)hx̮+nxИwyA]]<%qޥOWv&|Q~☷1]$ H5y<֌ hi $ +bfMƿ}ʹ̔R vXF{P28lwEEr4 Oz2ۛ#2/M0;EAVR)v47_o.%Hg/ڴZwQSZ7S1ҜiW1y,(rQ5=lbKR*]"(([NVb_] +?U(SFӟ_£:#֒23?ۤ$bZiϨIK@>somM8e0 +xf,dY '8cRzn{R;6СRd=T\'V`՜eQj \QSCjdž8ҴlV͔6dvE %jf*ucoM +yO%xp8;SB)iwy'8GC +.JZ<ط55#5*_<ԩ@ +CJ)@ S5bCSժJCԪQZEb#FޤP!&SJmc8a$Sy~A@X~h!ji4fJ.i:z)3Ć53ۧCLJN ahg?J|C͏j#+ģ̿A_I;QGҔb9@iƁ  +( +(J(h()qE-R@-kRPP nъ/P;iN(s܎RN㭰?*A̎:w=H51F+8ky~i(d^X?I֞5#/ ;)1PC/ Ӆճ}ِ4&('_ΜG_΁J~(@ъySi(4QIE J(RfZ %RQ@ )3Fhh4KZJ3E-PIEJ3LHbIFh))i .i3E04f4PIE `-RRJ(hZQEJ(RfZ( IE )i()i(!hJ( +Z(J(i( :PjW>S]zـ5?] GH?էSM(OE!Cj5]~ՙU_Hf:VM14N +( ( %PQFh(ffɟ€*g4i€ dRKHh))$)i-WGKf?gZ=KPt޸>TRVs}5gW#jԍQFiiN4cP>}@XZANbwEHvxW@?v?#\Ds܃oiE)2>;o+r|:qHhL&iM!qiZmRQ7ZM@ S%9hOO ?#Rv˃ip?#nZ,nLxoB391[m+Rٴy%kSf:e\Eq8a<ZWExrkkyQBxkn'8-.v3'ZE89lUN}]kjMk[N+%z־05B*VD"}F@i)[4RƚiM40n>RC@i›N)֟>R@F*F#jg=FjF5"'hJ@֢URZ^ڷr? 2:bR恒GV֝Gֱc[Zw$SBf@1JM1 +x4Rw /'ПF4|h~aHgE)E-2CGsNoL4҃L8Z1HcrX?j3^SX) }MCq< 4عxakVw¶qIوWF8ϭ+%܃緅Fw5cÎr*6CY5gGLY ?OG'(њmd$VWL3ӓ@`tV>ri-o2R+&ME6ڭ+vZt8+LP܀;SCɱAnX!,FKSXajGK\ȒM'PM1>떤}@;1xI;N/ _ OR̗pZsHOAUHQ`fNPA^Ks!Hӌ4bxpRbgqg*ģ h,gbu,&%WEv\5\:z*v5x[p֞5Y`FQV3K4v +0LF:~T.~̦>rv";LJ~w?2}kc#Ps\|GmI|#Qw_[ցcaA}͎kOsESuF=R9y?(Z89RI̮XSu<幢մ)lYE?Y[9E>ƷVV(#/ʳe&PyAǖL?κ웬6taN ]98jk״;;-5\C&k&h5*zH Hh">zv)RS%( BӥY#bS$R0j&B)q N,USP&#=*6IVe#i +N(ILC@ HM!lTe!jc7t  N9CPb֎č5{C9s)k/4cQ`ƭAVChHgm K Cls +*SHbJZJb +ZJ3@ +h(E.i((+@ƫrP+H ?Z3ǢBǠ(cQq:8H|(&{,hOK4 +(F6ތӄбPbSE;݋G;{p"Qڗ_J~=4Ɩq|O'O[5 ҔԊvkZgYX ] _# 2]zǘ8p;L9qFRRP0J(sIEf4\MRfugf E%bFhњ;4SsFh3Mvh4ZZm.ifE6 )(!K@ KMCE74fڊLQM.ifKHQI1E%uZ;E-PIK@-%RQ@ E%-QEf(( +(Q@()) +4y?g:l'kF O|C ?_hUϓSM:HHhA%NDZеµWɶµZCRREJ:R((((4Q(E-6^SMP\rii;RHhRS'j(A?fYJҾtAf}ŤEd~Qg05~gA٠if#4S4M [?j32 mie-iH^"9Aȴ.i$ixKM9N,zHH' +xꭡ=u~Kv&RFpj!HҎ--ֵ+)kSO)֣zS1 ZpN!I@ښE 9jQCPfiƚh +m:)0S1Q@ M46=(jTmR5FS{Ӛ:#KMߍYg[69 08Rt4KE zVޝXֶ 4&mփҀsAIފN%Ō,{K T$OCWD ?Ψi;@@ONcy K%ƞLf98n![ۂT֯5JlН\UsԶR,)TڒA(H׃V9zF YJiihK)(RZ(Tgy3"jxjc)Ri 6iUqK 4(4 J)) @ +Ol3@ +Z(hoIHytϵW=*hlBzSWtN&|U3ҭ (&S^.QC;B?˟H?1, +QI@Z`-QH(EPKIE-8Si€+X֍U +X9?J U%VZƽΝqAUضR r}X*h~-1B_/On3it> KGV{cz֐ +6XLuw/ZKj#aA)7dsqVqǧ"6mv{-g|S +ư@:A7=OAXsL<حmBQ yZ̎講~EJZN--%-Qޖ@!(PeWN +@ Eӗ4ӇZRhK˵V/lgUPiXT&WJϗt@aa00 0Ӎ4M0'S@%Xi:a66z[^l&\կ؀mh /Oj +ܶ? +o+v)2xIiL&yn)%!hSWv@Dv7*OBr8Eqɨ"ePZ[:G903`~U97-+ +)i)E))E0EjZElc1jLnFH4uiZqs@‘ݩHFNҀ#"i()å (@RbLAEaڤ4@zHn)LjD֜rUtѢ#?6_{-`ąϣ89H4 FmhF3CsN[jO[Hx4GҝLCyE)ޔO]H:gj~q3_){Sb`;4N4@ZZ LVƠA[f5SQl `@,jf `W5aWjCi)ƚiQK@0a@`R0WC TQI +H컜ґM-SFbrJ }oksP6UȁM5JC!ګ\$=hV BO*#c4VWFԭ#$gvZ+JF+ЕSu7K{gsiҘ+VH´TiP!E~V@}GZɱϽ,Nmu7 "ƹ;AQD +osTM_{y5]j]L{c_*qI˱J=qVdٍZ?ZD>e7O;"F 5~?-ޫ?zSR2ڣh})#8Oq&AHfTW4mQ&v;l kz<Y|Uxe%9":T fA14ֻyZfm-y]HG0jy#YWk@2hڦb 1W,˖ +F?MO^)U ݴ +0U;nrh9.@'ڙ"9 ֆRP})".w) )*8 ,eEm}ڡ s,; vUQ 6+ 91ZZB5P+̰ܫibz! y P+l,T9v"dh:uZ whVS&T!kEYH7^mUm-sw)^ր\QJr dú sw"- +]"Dd Ґ..am㚈3:c:킌d{ּ'3ϷIjjېdG6JǺ6m#ЊߟJkO0֫UҊnyS$))i)(h4fЄ9JRi3HsM4f-4)l2h%(hPE.)hvߛ}bjƔUMqqF/!>i'{\~u7ɨ4#R(,F}*U?f%PQE--RE)(ii8S)GZ`-зk_lOL9P5rTS4v ǟ0Vl"Fxf$Ckh3)$ !](-N~E0)0pe@[bE ?YVM憙p4ˈf݌Vh8UmBBW;Lgi0f +74waE5sze]UXdjȭM[N'i1@U?uE8`րE.F@NiҊJ)hJ)hJ)i(i;EQK@ EP ZJ)h(QKE +( +ZJZ`QE!(QLAEPKIފZ\sE;4f3@f4њ8\3K@;4f3@f4晚\1٥R1hE&h-3-PfCLB ږ(AAfxFM4ycS < 4)M7WS\iX?7]5{9d3mtxͻlPݧbt4H 6xVb[ۃVjidR;P 0u@h'ҜGJiQV8Q@(~37NNRQaOf) jE֥M­ǛxppwZH}(oB=j V銶FMgOCIBvGa<<1Ul%ċ[BG3Ɠ)!Z TH5t10 Rb;CId{q/tgUIіžG֥bZ> dEzL^F 1^uqglr4HJ(HR`8VynLDbښ)֜i)SZLj`JCt2*)h4 +pxZ %)Cii)E/jm:jm@z #5t4 Sڙ@ֽm>:F*@QXևgNH53HKʖ1= #_^N{x }Jz!A&lRb~7u,}Hv0EiiC*05`PjմYW*UԴ0')ޫSN3YHhhݦgyV~DIp5*Ts܊k9s)ǧ21q4֚zӳMhP(uaI| +Ӛտ!E)T*7YEVj/CU!4O4HKENMoF!m{ +/;*5p=uBeJ`ⷴK$!TSqQxl4NpQWK8"C#֖-a O4iix M߳^5zxk*`"d2(<L}:_$ч/Z7P! +6ԡ!"ELL %j6ZaZiVJlFjݝkEHP9 #:VV {Qp2el2V=M@N 6`pj돽m-P&jCL4SqOa5G(#$Ӭ?2;Qpx~5i JPWN!(ZZ瘔-4i6~9{a!09明F_jH$SZ1L0Jԛ%0x2M&y4d0zTdT5 LiXjV4|oG5<+x0O46aV) mt _!"@0kZCzpKr#EEoc$pU5-5u3u2uM,_(*$^%7Jq߭ζ-Ǭ#&,Y79/&Qm681ֹj/\R0zhLƙyU!Z}5zShEQM'Ґ +N)H.ii⁎'1&Nh٤PIK@ KEJ!(iإ6,yR5q͓z Q,i;uMKbqz*~kv6WdKLЎXzEՁUOO9W)Sii .i( E%ZZm-Q@ E%QIu(4њ~j8oTd)ȩg`XC񦷇,q#֘4fyQ+a;њ)}T?J9QΟ >~ϛk9˶|Fa/ם u{}h"9_֚]`8qy9+.R}}y*$:M ~UWp>~Tʟʻ?*iHX?H=+0[w˼_Ƞ\wsG$\l,ۭ~U[8wFr[W'iqsNt{,4Dag8$~>.O귿,gA8hr[<]9xo1?{Lšt9@koҞ5=[#x}\-=+jJ—vuD5!.3ɊchwC!_ +ƞtu[O5i߁j㬋|vtt4`:olSy]1N +,>dnQX\?:_֋26(Jx֢a4ѧKYX'*vW(˴UQliE'@\M&j!<'<(\fއI2j=֌5}ր$hɠ 3F&u4dQ?4K"fhȠ 3Fi`Q}-2.h4gJ(sE%%:LL&i(n4)}(.O^Zu1~ rNJ?RäS-Oj+>l QI(ƨ^&dT?Z%ToH xVpVEQ[>QLii;LZ(EPEQAQE +G?)h7Z:E{ӖN_jsJiҐ3@\sg?VE(+bq0CZF~.fϨW?7 M4M4 Diizw +j`N^~Heo+9ºm({P!>Ԕf +ڃ>P5n>JhL +S֘ޓ?(1ޔ + D*T-HR OSZAJ(!u4*H@p?vէaL^J"KR?[Կ_? }G N>g|8ֈ(:d;5 hhaɃBW n:W_ )C)12ӲZbzy[#jƢjdڪs9(Üf<95d؈qRGXL%湏ts?´kƃ=8|Sn.40x=]F:S)ִ>5a0fAQ(JFjF)֞8ARPM4Hh9G eT) +)OZL@ +JZ) -!4MR!zv R&J P26jx+R"ݩ8"] +ipƯ@gѳp8]=˷I5/?Oee=T#>اv棶$ڡzTRvKh@zXzFLXP"sL9jDi iӍ6(M4kP`q,юuI`U5ol*aWyrR=眐 +bHn/Pȼ(""~+22TyX@ +d̦P"5*59P-7c0vA5¸=kӯ՜{d +z3E&i\fM"4PDR)S + iWP)eN*" /#`IKRvm@ + Ojqp5"Z5+{V [5Tw ^ay|V)0Ek[·VA$ n4_P\V {%R~^ htҤ*+S' XZ sBJqZՒ@:HQL&fĤ'TLPzi bEQ@ EP)P;&)ŒRGj)Mj<F$"X}~=*:}7`wBxǛ{rk'D8c.la pXz!{,th@Y2Ȏ# gH'ƭn;ȧmEW7Q*(cG=Z;Lj pE@'. +F..TgIE'Lh4o9ʌG-!&DsAÕGKZ&N(8pFi[og[ʜ"_үnSJpzUŒ4\v+kNLJ#);,G.=8րJz:sG>iOրFM7Z~M4hc]Zv7ho8I-bzx8t=CU)6\ .UZsO+ۃe?ZӾ젒y˴(BE-P!hHii u9MBz48@M?j?]eχ rZ+WYt31L +0\5E#ְe+&zS~}i\,t pDZYSW M*Z+8imlGV5VGb +h=h0E&hhi›ޗހ) PIڊZJ(֊J^v-6NPө$4SڔRqP3HөE*U E8-2qYV5c% G'V=>s֩\ Sj@w_6=h֘Lja58#jiim8w +_߅0S?׶itW[}b 31$э: +nć\m\QQҐ`6ۥ8P֚)OZi@ cPL PiGZNښ-ږjH9vt>kcB5*ԋQ-J[O9G|t;Zѽg`{Tsʣ2*b*H,sҁt]y蓟(rP5j,WkSKEugUFJV9mE"vq>)4Ʃ F###AӠkhc"Tg(cFrH?$.=K}ˌ24m ByZ-ݘoz̪D0P!ִ>ZV?xS@͵HG˓LD S")ڔPHiiJozktiqHA(S%8 +b +\ъC@ KMZiCQDTP "jVځ7Zhڙ ϟtޘ&tY r1IކCz:) +u%-9:Ν5kgN84J)HH){c!J94v?\_.p=$?κ\ Kjڨ* V3o/z_Z⎂JL;+WP_ee&^NeV0 zԍQCi )4JJSI@4ө@|xU"IwF"@`AɠEȸbR ]n3S5TK#T.h +} FEg9-ʸG<qHg`hU).if4f4fZi@ ր)8U\Uv]D&@5Uu5Yd\H !OMɎU)<ָ@sD^V%>X9z:K'ŪZ}jf1&kld_aMgy9ې(ְSBTh= 79#b!nޜzi!4Ƨ nci&h")Q\Q@)إ!&(m +ZJZ("SҀ4|A)֣yY?Z{}Tbu~2۸Ͻ1YΔ\~xgGхs:1H"gqVgiw H4ShQIE:Lњ-fJ(RQ@%c斀3xl23-#lۂ?j0ip V=ߊ|Vjh>$"6 i#d괃\GLH +"/ \,,[LnYʡU٭/4#HZ" +8KU- y?C]/GҢ +O:cLl|G\J֮\((O¦U[fASrGMHjCJ9$x"5kw*cqQiMgM'H 8.`B򬊼U4}69ܱ&Pm.hI'rMfMz։Q"kcM3i}i}iN=i\ғIKE8q\٭SJ>sS[TFq UU4έΙѳڞNFz4:SJ!Mc8mV.hD犁t% +QTfii4PSM8ۘ{T":Upra)O@Q-L4n*"PmfL;T!3չF3Hfݜ[(`jQ'fRf9l|pjio<=;d5.sUӕh6i}Ӎ4YH9 ޫI2C˃V^ʋ'",FA 熪aYaV: +im0j6ԆZ~Pq:}E[g[e"ZRIKEa>Oe/a$q.Ed0>&j8N4OZktHh"aR^ Ƞ +=XMFTXfqPY Lcր,2j[sUt7h8eŧ9a$UҮ3[ѹ_@MlP 0]hVc)'+:t[7z2hRj'h 92?*$H:PMw\c;kCNn8x`{MU %LˍaNzUb91VI#u!$R#M(btIK@l4OIVY)Xw*l&ڰ™CZ6Ը< + +C +)hRS((@ AOLTCJ=LO֩H?8S:}ֹ}kֹ=#> +EŁ+@tZ`H4RQ@h%h64fFi4\sIvhE64750ۨ3#4h.V%)RC  E +'TI{fË +3?03kY#Bq¸г3\8Aݪn#*]cN6h6ݲ?ټ$'xJ֩:.k=b{Y/4[l T[>.$Q<9,3\ҝ@ޤ3ek:DPG$ :4-׆l.<*}#OӼԖ`=O1L8IAM4)(8Q Rhps^m~V]rvO4uzu>500;MCPEkHw8umS}p?ƴu]& W3SpETZj. nԱ71zM +E@75zn̊Y0TޮxNM6FsTh5h-#>Ƙ`&¦l.Xa~Uo 68jŖbw4@t#!5##HG!@]hf Bny A@2ki >NK#I谂Q"b;,j`WU@[b}19Q8f4%YOQT3c<@񢺙*kfYѭuf*ZZVod<6.1 Q苩I"84Ś$g5ci8;9,u=8acIPj5|Ο@ΛK&߭m۴#`cYm+V]>8m"3֣ޤp)hƯXyD Xr[+KP(,# 'ޤmyAs1t) ֘UAh K'9 F=hJZRu=iH@s֚Zsփn9AghhNh9XfS2wR(ŸK)wqҀ47( JynzQc0=)wqҀzPdqM ׊r8aojRF(SC t03KM$g.FF(R3M`Jg.FiI=($P(7ppdQM)w +vVVh V+L \~W2Q?)JPR6RL)AJlZ_=j0S4L/;Zw@ T`p -3Phޚ .hSihœ 0S 4њqHhs d޹_W\|Tk6͟]Xgh*SsrCLbPSTH 'Z*tLFQZrmڶ`(nR P QKLaGzZ(R@ F(bRRthoE7 +hhPHzRJ) (}PM-4S~Gk;9#5eqHOEWrZà٠ 1B9ڀ"jFQFi@ 4V}TtM9'W/]>վȺIOQf@ɡ+r +ă?)JN){R`5M<s֚"jV +ZAN8S ڝH)M*ԑc'StԀ⛃(X Ҭ?-/ƫ!-J*%Eml|GiǤ չIJ1Pp*4fp*cT>˸R;].oA#FPsH*hqcSE;h4qM4|R;Rv NZhNZ`:ӇJkPsE&hkTmO4ƠPZn5<J@D >iGZtZY&)܏]u [yTB4 +:ƛڱVΝSmGLBt>JR{; ] +jozW4oCN=) sץ)#ځ1z5q|ր)IVWz3R=Fi aymA@4醀5dj@ N 85(j`KFjfkRQC!{V+r3YOhilzKiw2+ḿ5־kNkZmUd"50,+ N @ӃpԻUUHjUYWN\cF5P~&3V&7@I d>zm>tD?U"iƚiL4A8Zq}*}u`V} r-kT)P%>J2D"4[i6Ĵpާ_< *z2.uK)1#Hy 9عqw.6cs{hh,̊1ZƟeu!zϊo@*XOdMtX1~<#Sh? +kIi<GZmq5w^YO))bos<*+~ F W5MXMݛ1Hg@`81؅oP*]}'n)-$W0(r/mD*eySGaT*FTt|/nnxkMKQ#<^ dxO[1L>eZ,_hIDaXZgAU;/ۏ|U='UO/3fIi$\nͰW& v0' [>*[,Wݜ{biz5zS\q$5+wC7\bLڵ bZ`*Ν\acT4;mT֗u^ +`a*J:v\6RZ33BLٲxP}ܐA|7pȤ +iNqIFV GI+@hi>Z>Z\-\||!}h!q֐0 .h4fqBHqM*MYSsP[:SKqҍt+qҀF:SKsҍtRoj {SKR oj@PPsҗw"Xf# +0iUhw ,=)iK +qaF&FrQ})7/Ҁ}( Ҁ@ +=)w&M42g)dɠQ!)B(JJnR4(irf♔eh)AWE8JR) p4SA\iE0)E3=Ԅ;4E;fB?⬗"ع\+A9U?u6 3ϔ?rT5?H(SVZ=jTQHimV۵l~O˜-斁 4S'aNhA4BE9Sހ$JI +4Q=krncvkH +$-#ʃPh4QKM@R1M0\4P4 HiO sL VSVGK>[AX}֐OTG{{1TƦ ֘#F#jii 'zSM@?ן0SL2X? +t>Iɑhuoi ]Vf(h>m}XShE҆izPz:HG991j6@5FzԆi-H)NH=i€O|I8=aW$9MzR"ԫQ-J.nqZ?'Y>#WtV6iNjVGuIUo=3@ M\X-a1F O'CUl0E|85۾pk/,yc7 Ǔ#ϱ5cr&XjQʐ5ZM.2]Mh56dOdlēT̒c#'kf}Ƴe]i涆8guP XE5Xb-]$c&4qe R4l0pi´|CjmF|||:b iXYMhЍ9@ip 0#iրiƛހ + ކRn mQ@xS[;#h:(PCKHhjyQڡjiHޜFx֚zJ@A`CjdC-aBYaX/e#("_M +W)lgԊC +ӹ"]ط˪BHma @B98^i&`ghJ-\][Tk!c$7@`VW3ڱWFpc72ˈ۱ۧPLU+;Iɵ+I 77#4Zn9Ҏxր+X>ձV.3v@@ +aQ5!4N=iPh}4jpj585Hc85@,Hj0CIJq0ym"{ƢbT:3uYInRH'lrmƴģ`&=2JWmTTaNL3LXtg N 0, jPjpj5;u@n/Ph2n(sU&mJJU9$ᶶn`V(n\F; +zӍ6F5jp{9:4}sTf):!ujPghF}+N8ʑV*5=Ma5jC* ~|z?\w-Ahs*hHiwf8M_GȠ EeF#=1K<%!N}j^{ +C*8p*) \W%lj#޵P1H|@QetX鶪[ [rł“qyw7#~8`*,HvyZұ85! +ii0ў)3@ A44sA4ff4RQ@ )sM&hfLKfh?4g4M?u<Ѻ$&f3LCPMGu!n-L&h343Fh٣u34f3L3Fh۩3M&h3M&4fLFfhIn>њysIBh44iSsHM"E&E\\L2(rei2ehhhhhhsGG@Jvn( (4RqS`)(`bPiyAnE&~j [7qHOgPQBhÚ@yJHJHB1@"2(Čci"P4Af#4nFiI2܊\.V&V;+@+I)IL@R4S2;8;)@)ޓl@)AJhJ6P1ir)q)K)rx+PE4hPE7"H3Fy3Kh)iAJ 0KM!SAP3O&1@>S#\ϋ"+ZǒH ;Sְa}Y.\Cnmp؊POLP$OIGzZ IKI@44J妎2x` ={[AJsiU.5A!ϿMe!UJr&z++0*!@+]ZW#j 5kP0VOEbOXK; h욱#Gܚ`RŦ\6| Ll߱< +fE&{@N" gW~Tmp?W#@ &iY*32zSu3M9@2oLc⁎G?5sqH?Qހ9 Vf*[RF?B)<<ٵ4?xVͯRt M^@&7<ңbiI4iQɨZ@ҋXQ0ִlaYíhuFtR$gCZnri{Δ-!5c@ L9hL7ZJhZ(!RctۭHEF€#n T֡j6mHRa@5fկE!xA[&_X{+2ҹP--bv(j&)QWqP5XqU!4NmE-0鸠 `ӳQ3HCST@J݊])4i @Sbgy4޳DBs*7rsؚ¶|(3ޱe vqз~[]LE&> UI' <5W <5NN @7P[5v57SiJyMB<>lA/6\e Q @iԆ7=*12pU @Hx MV Bh =;Vcgt=: +Z@ZC@uO$fo~g3\DW{4Wnv2>nC*je~ZځQLPԸuNjC,ҩ+ 4'ңUǭI'OqC"#AVq@ gcڶ~pg)1l xl[y=+F=g'SKA8P{5jbt%s[BPޯ +nD8P +EW5bc>\%"QK@U89eup3֋)qI@1}5@4EHw)9QӨQE + bQS}(4?5g؟Zښ!4O4Ʀ#u%?*8]6 \IԊGi8M)4 ni -!FNM<(4\M4ozx4f HM&i ;4f3@ 3MCFi;4sFi3I@;4f3@Inh;44њ\њnh.h&i3@&i3Ivi3I3@ 3Mf4;4I )44P@PGq@ RqGQ'q@ -'q@ +qA'q@ (⁊^3JqIh888*4֘ iI曞iI(FxFi4Ris74@<Fy&M-(R +8qK)R`()F3M(hx)7ҜPKⓊ8/GI/-m'm/GI @;x! .%m&m7 Je/˚h K;iZ_b( (7QPy&:z(L=)AFi@3K`41LhA{ĿMsujc!oKf8a@ZD:`F=4ROOON~۵k=jكS--%v/+H, $"{[Γ0>Rh?a!G9MrMȯHyp}u#xf[SZ{RgJ{vFǫkNۡLc#LJ +:leoYzi[2[d95rEJZJqKIڀSH:Sށwp b]K1 6xvQlEH-,.gU؀/[0օȘ.i4pv gjv~ԽEJ)#cCA4\kӡְ89{S,ib1Q'7 +,SYswe8L44O+Ƞךu#<⯨P8P? +C(cIM^'i?8F}jcM +򂏷9yR\*:C$WGڹȾt:Aea':T6ݑ={h~mZaճi!3R!IԄRcbjڐiv@ +))-hQOzJt<ܠ4/.GTvFf +C$Zj%V59ֶ)>|9! 7a@|.?¤3{nnZ0!c[10ɦDo?5^A@$e 槅EGt9SIT&t62@QYQyR'br>5 +V\g +?Λ"IkF˭ghY}RmGҞy4؆V01A@@M4ө(%-!#RFc(=(!8 \LZtVcֶ9AI|xVŷ)X>q[LGv7t2W5́޽eʸ\ucΐz`Y "5`hO/9B֧b;N'R1PNFjSj2[~ճ LDi;@Γqit.tsfrÜ|?d ۊƂm̍%[vs9yg=kIioC/pGk z1Rܜ}ۻm/enZivvm8sb4SibZi maEZzu)f =9_RZu Ҋm(%8sHh=k"dkk~b9>S󹀣Rh:QZm@)PM!4Ji WZ>IqăQ$_|WAҹKȕ mLmծUƩ!{sUqH +fӠX5gF* r(4ҔHhxj L=iҝH)ئKAJh:Rg^)\r?::wƥu>ǭL*WjMb$ax 7ҁ[~d +aBtGG\=ERݭ?u;E̽=W@1r!1\WIXwZz?RʉKb!Gnk!7C[5iRl^۫ bh0rii"'b𦚲 +_Uq@ wGyd"24-rvnj۳,#EQ2P +ҳ³ 7 uBEhYRu\݄Zs)_21Җ846I@ Jh1LҚkt)H(< +zS=h†5EQKM@iiڢjڣ5! "&zsM@k AҩR .m:R0HTC׫ǽPfh +$7T[ @uGB)58?s`sӝ6/Ё;SM8 + PTN*cQTUiGZ 树x :!ϭo,/"[g^~T4È߽h3& 10J(EUZ+F~>v?thAua9ZC*)J)@(ċpցc3Z6ф2+ +-Jc2skva8+˴kV5[v2I9Sy`^\JGB'R{@5h+L9X) RfiABi )44443@ E74f4f3@ LQ\њJLII3@ 3M4vi3ILII3@ JLњ\њnh4fLFi4f44&FiPImQI(hJZ)(@Z)(Z)(Z)((hIE(Z)(J(iiRQ@ KMuPPE%)ZZZmZm-.)qMbSihإ2KMR)h +mޔnyihuNx"8( +)hԍFh4(E-!i{Tm@D#Tm@RR6w1@aݦ?ӗ:u Oyˌ^[r+f q4ji3FiњA/cH)CE7Q +P(t5R~WqUno=&2O)ԌCYZ|35k+Xx}ր3ڣj3@Jy*@m8ii@wSYJTƤYUnj{gCz8r8 (icʟJ̌z)CH*4p F*8Mo[UJ|55w^CLGʘ65#>3k ,Z(ZL@G99Y´mȬҀ!Vҝq,mͳ{@8t-P2 + zU\6R8RzUa#?Jbڞ2meeI'f ))€))E\[p=l[LDƊ4P@IJ 0JZ\H((i)i -L1M#MSa)H@%!SM%-'z(;^ }'M +Z:[oqX؝2mh.(ɴt +)W_R~KiwAg7jDa @3&;㊳~A-98I(c,ܷ1?$ORK{ZAYx,Uaڤ[R +F)yPSM8MA8-2#NQ^~^>bEil/⁚XAef[ `9"!b2cm?e1ցiz}pyH*X{H@72)DДdSQrzLOf<@>`ͧJ$-)5:SLCҗ70ژi(K@ +)hc%RG8~99~^]Fu~+[泏?ZC*KRjh8C[=:?Lk8ok,U_k=5OIkWL;>ˏP!>Hgk!A-jɢ+x~@dʞTQRr ОUW:yz)6be&K捀@oʲJ~r΃;qH˴inLwAS})e4PራP6Wm> R9f 6W?EbN@eJ鹹}Rp*jѪף/AO޲uekX5E QTME%@jwOZ0M8iQI@ +iLj +endstream endobj 617 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?\拖H0 Uit*p*#֫⧕D0*)>,Cs$MOj3.}Krb*K̛iҀ,Z*n"8}Ss@ Yr}*dQN~E0*}"tC<ʉkO"8" ;b}jjR5NL Pƨrj[$`u5$)@Q=+WҩU) +PinT9L \7mZEUVCMJ$P}Ee\-ls@Nr +_~E]aAOJWRk'P-XYa42:H2{`cfb6Fְ4ۋ`*z05-̫l +CL}I UGJЊA*nc=!bk cңLsITZtG\;gZ nXǒM1Nxjpz3@VN*dH5(j`i,(J$ e%YK'5:Kh5If`hpiJL T9,RJ 8>*l;L$ZMrӁbM"YjZEF@SH*2,daZw*#ZeYj+"4Z)V,Ҋ0Aޟ0L湟&{l#hy^V# +3\M5}y?/\O°1bxM5l\kfcR:+!ep0&tW@39Iњ +܃_?U{ gt$#srw5yZ vG~+vw$/N99yi% +m^ T<y +F2qQcuPysHEI<h4>ezF80G\|o#{>bnpÊz<51z%t$J޳6)bJ0=W'̉s84rqWl5[F+/m6&-Jmzd;jw 6U=u8n`Dr#F +}:pdd_JڰՃ(©2Z==FG"A\ƛ<@ dg+~3lIj6k[?I߭y!S20!A^̸=EyMF#y=_Y#L"4* +"aL""43@L5)`6u JiA@Vw_hXmuY5yDREl\~`474P2GaU*6J@B (j1M)3FhSsK@ EPEPEQKNUԸ +Z8SiE0jjY_ҫJp +)EPRHEWPTjG+@H*5`9c(N2h=izRE(HSM!4MaL +U%Vުސѵ³ӭhZ@q5z(SE(0RhiEPIE(S%ҚFiƙ08{Tf JGHh&<||UUf@*3c6jhOCUE9$ +1tvMq PHɤPo,y +=1.\9vC1A +h3J}jd +nSQڤ5P1iM!jO|Uކ]Ҁ3˿V|eiQB +{j]3B0'ɒ:j}k2)嶐s]NIi\+`+qp)# +qRCS=:m.h =GZ åRշWGJ%)RS@1Qa3(8g:\HILer֭#zptu'4N"4i)E*])z+5.7 +n7dt.e/Jj1ҤZC%ZdG^ჍYGtj=1zԏ֣j`0SiH5+Tm@Oja~S )sny +C +)MM@m5mCK+nv>Љq5&+M?8I4^*㚺Rz@Iw*ÀjxSPojkS醀iqLZ~h(=i'JRi4KMcJjĕ] TfscSj j@K}p |(q)Au~FzdST屃Q]62} Z{S!'Z({neq + 7qq]4q4kdzL5}Vӎqb; z1rzc|ѱ]c}`6)?;ހIpf%UǽXF9鵫HZCQ_/ց 8gw73>$'pjKzUg)\'&ZY۪}N+qpvЎM1@`f'ֻϟo@LNzi*5f᰸ +XeMaI6^ +0|ޫLTm`U$ȹ`=jfϥlQpw>* +2ޕVfmKsTGs@2̪=EtW**bH8iRXi 5p˗"~ J7*گt'[1TTqLP)%vj,҃EIp5i@ij,O PNTTRi -zȃ*=hŐszAIum_c'y588،z. y>3pMIsj内sZumosi |'nm4yF 3Xw~ʟ{]0o/Gvӷ>JH\& B$13@%LYS"z]Jyn(aHd5I S{V 51iq \*MIFK۱[ji- +Kԕu%Ow[L9Һ.7ҸKF:uxkY8V?ÚM>p!OoQN;R{ft1;.;x[*O*kV3BxTB)xqNc 1H)J˜EDE0a1sB]CAc5Pǽ=;TVYΠ^j֏$(1hJ(ii(CKL(-%-%Lњ)(RJi 48wjozqW&H +N4ƠzisL}1jA@Iޔ4SM4=:UV=jԝ곊C jԯL4tJuI!E$xG9, Q(@`QxϥYK+򡢺88FK`sH\ \+(uS #-0}+OR x -W?V}MaRq@cjQ'a44w}[Jxp늍Sޣ4M4JmJB1@A<sJ% o``xWu6 tq,Pk@#ҘƴuQ7&q!haE4/zYPvtr>ET7-WP.sM<⦃XY[t8H6OsP RN؈jV3W'UGO^:LUXW\>*Ιvɠ [Y*aU\5n!@*4t$U 9`fgƫ&})1S pE4 \IJ(i@<5Cޜ ;6iANR)pj40jdzK5.CÌxȑTr0 >@H)RZ +Sfi*Gң ))(Z(M48cPj!ҟ@+=W-ԫ/Q OWq+.;ԫ5g )-04Ġ泖^:ԋ5_N UlށwR@ˋ%Jz^CLY g jT\iS`zԛHj&ZqLa@Yj2e+@|Qz#DS +蘬H9¨5HڞLf~ [Iu d +=6F|9zm>T +vlڨDe I5wF&B-3OUl` 2cq:I- 4Y#3\^Liމ-{Y:Tb~}qC;2-֜8m/慿SWR2d®OAgϜ_ޮO&#;{@:YV j7*JxZ-8-EP9v`>*<GfKyZ)Pk +G'L6ZjɺE (YZC撴]Kv|Yץf1H"RRH▀SK@EPRE.}h}% Ҫ$WbƐ +)h)hZ((aEP !?9p )CH)z4LLCN+8&ھTҤnzvslVhNk8R"{W!(Ωxp }\5lƌuGm@kxtXOt?ʲ|;ε~?VWnIpj3Oq0`1nIԍL4 mR10]59.H +bSR +ZAK@ J&i@E~mc&5<ӳM<R\Mc')MSUNi:+dV-*%X犿ΛsyFJ[ci4 +*AQڤJ:Rf +M5i@=Vz*DjR uf= +Obknٮ>tۅC~J)- +**39=)SOtEs`! tL Λu\T⢻\\3?9M0WۥgiL0ց7zd$sPgz,x*48eRheϨf-"O*[@98R%ԧ }MuQ[[$3F}:{d0 + N uY檃4|SW Uǭ'Ҝx-Ā#>+9{cxbE-ةv_ƃosRHdUG3ګG֭E&6[8JwLjd +`J>H~Ps!5f< + 25,#&wI@A +BơAڝpbP"oh0i$>XQQq]POڪt8WJsҪ]>apsRw8֣ W@qLcij`S +ҸQ Қ)ҊbFMp4(0$KHuG\@|T94idS7U_2b&<KTSJԴPQSȦGE)`sEQEEJ?5hXOURŗDTCS&ypzd4|IOU-E{ib8Pcjŭu>U9Q[o02 [;}NC( GJňV/cK L]Inx>X~yN3/NB+V;p49WQR*kZp(.) +L X4\Mn#e"je5.vj6C`heMgm",m.HZEɌz^V.aYЏMCqxN>lz%6WIw'jڹ2As2GZ2@w1Gqr#Y8 il&qT.#k{١aʱRc@iHEH0ԄS2")RaȦO4LCj  O>9q@ IA S1PdhHcL~Tِ:vwLS@4w3DbTNрdFH +AҔPrMspǠ5p.@mݼ1r˄qZuDۣT[ޠHUxPB5_PfsA4Z0AR;Rt0 +JwlIIKIր 8 uxr1֮T9) ڏRE}) 1 ۊCKIހi/Z)i;Q@ CEQFs@ !R9˟$V?5Cwjy%m0R:4ښ|MZq}D|Vl1aI&lG>;eAUp5r=( +ӂ8AZfCaq1>fMj[jA( VgN=+5iǁL{UbqVoqUZ@;Uw1ƚh3IJi \zTv£,) :\q\ HF:F/@M0R֢!Ӿhf~ZP4N4LqNJ(ƚzRR6û[g,k"g4E(t=*drZ]B?'Ru *Lj@QI],r `Ir6RWA͘YR@i!=hS@FiI@Z4QS*!Ҩ/5ZՃU3=Mps]iEq^-Vc"+glG]!X>.MB7dր8ԋ֗ ԆOZgګ84lxEE9|UTp  +lcl͙OjT)1aQ_5nVs@"qWm!OR.Pn!NMnܿ́Q# Jz rvڇ5sU01YІ"}+F1TWs`P/Jm(CR@ F1RcBFE6)FO ˧7 YXZz(8T"v% uCYLߥdXϤ-yS@JȇXfugVT9ɤo#G*u<@PUҦSHdœ*5A43z +ެ@",8ɬ$UQE RQ7;moUG*R&kf[]*dR7-miqpOawlVǧ$wǂ XXl0ۈ|ۼa7q1 +r- Z£aR1 b8Ƞ4ԄS Fi_jKvc b:GN {W32m+E:2:U t%VHm`He'ՒOFR+1j6ts4G Qx6NfҦByzu\Mk#Eu#r9X)}){c@ŐEgr#Ҭr3ƘXسՓpp= rǸƌĺg䑌H:Zok4aJ/ QGiDHKV*p(x\TkS(4U8 r Cp=kauo_^9F5kQ8oNuB pj;1^q(5ΣT24O+bj/0gO3ԋmu֐OAiY-*LX<|PM0]JVf}+uoh*TU4=EoiݫRjv֦S0)ԔMM<{edΟ(H-W}y65q .SXD\40(cOS"B+vuIla\O|W,GIm9')UW9*1ITd*}k[* wA֧.+[*k2WPq5ˋS58Ȭ%GqJ*KRe_j`J֯7oMQ \rjUƫ8I )=gFfz6ML4L4ڤjG7QMEiq@ +))@DEmgֱ5lqiM&E0wjm%NP) ?ZqRLiԂ$*AQGҥL%!S[DՇ5@;&0}iM(f +eਮ¹ۮ."RJQ@œ))A_O>I1)!?>SU:UUaɦ?ZJy` u9fuɯQoL)#ڲ|LЧ?kV~[;.hχݤiG+IސqQtx[¢#~(qV刚X +*#,*rn LqI;ni(qۓI5rv`T6QyH޶O&TOZkњC/JL Ttf8\RdcrUrqW[ U5,hpR !)1 IKIH#iԔSR␭Cuw(hgv4@(Z`(AJ)(6Ni!҃Q3L CSQg\=N(piÚu(zb%HV^ei4Ң""EHPޝx1IRcҚsEQ@ HM4n~7Ty@nRObNǁ=6/i;svouSzԺ(V$c3=]\gzԯr$1 jEx v;D퓴R7H\Ԩ( ϰÏ6 R1Њd m\[ͻNRѯlS̒/U :IqeaT_ Z[=NH) 쬤qV.dxk,˲7Nxo彟C''5v;ıoc$X8Yd tCRhO*ڱU/n?OQ 5,SHRC"jaH@0ڦaQ@CNaMcBO#Z#5̣fQXK)ai1fҔQ͕f^O<62+4PÚb6o|cJ8^J/:{nWב[vW2kZ|F  Ƙyz6oZ ֽ.z&-đwG?Jൟ j3?2OL{T褏JmɍILD<-'^GSxoǞA5wKmOO+0ʟy-a+Wb9H*v;\@%s\̌,*oS֝6f!vv7UCLDS9Hϸn9[vƢe@AAzFiN)) Z)( +)( +ZJ)RR,Z{աU-lsLx +pCjFMXW&qW"H60jZeSȽxkJ}[un8Y$m\JZEUDjģS$pM>+xf?/UR_[SA8@B3n_ǚId])|elKk$kTԢ۹kvߏk-kOB8֭$V&?Zdj646R6HiPmQ5Jj6R5G9GHe +ZCQ(C::RX[VŊŷ[Vs4q1 F€.)qA))Aqi(cHE#u4Ӎ!^P)MI"QD{ԢP(KM4Ǫ֧z2Q5L qHښ~0 wXh}-j71z@F7hH0?G̤~r=V5 L[?: qfp*輴(ҝҩ;?cLRcҟHQ@[~Uxh[-kA8hFɿL% !c"?C@b뮼"Y6ލ\ubO ڐŃU9jhbj[QQQvy!R\ss!1Uyr}#0"l~UcFL_7m8-Lvj:fCeWmY6Z r/-BDc~**ž* +$R FiA sGz`4!ԔnADMH)R`6u!FRL҃@h@;Sh٢i{VAK@(/03LDYKzA\`N1A@jZ"Q9wÍx?f*G`@-!i!PT,PjMZI77I>U[XE8ր)3M IF8 +) flBɤ'8fV4qj#ZJ&02~tmxdA hr0:VfY:Wvm|gpWI.\ĚTW jYT/7">BCV틅HQZ8)a0$f9X'b}tG!'I"dm}=iv-&l7qW#&2O5,ڡ= V}Fbrz|qtKq\Ģg%ÃX|}Ja !i|[Ha云<R}nR+f #Z5)~a+,jx?4dT{EȡKE!sR6nFf!jdb`r1L/+|urA")&| bY]PCL 8X$k6Xdiǘ><RSOl]vu/pJF #CFqc=˸  +[X:Ʋdr=koK&Q^U5$7uhS4:F븏z&ٶsX t7IC'bXb +ԱҜ"ǥ[].iXF>[BYsH t$ӕǛY˜QIZ_6UI +zo#썌dP9/,nϖ.' Jb!m'K˳>j-c, +PEH1SM""""jDjcQ0FEli,“-dܔ=$ 4nj?4Pf=-<݋ 0 ~HP;P:|m7s૞X7v7T.at 'krO6Cg<"A[,оqܫ^} mk~ *`sW5ϫ mYN{m4L`$i$p %r5nS!I=\VQX +zn ^%5BkI .{>GڦЀXCw$vJtYHF>v<81>z q_۵RfyWt@sڙ >Z1#֪ks!AAXvX)RA8ϥ\R!u +(.i( !8{8qWӥ0%M@p +pR-D*2U5U*te*x=Spby#=QȧTڔ~Vxз*J)(RPhAE( %(%Ot1b,,@%_ARc֫{ɵ5=(PGz(v +)JZ*kAGT5-=iR{%~POR+)nހ5[w @4b ; -ʚIQyOGV K,b\8\kyiKmԚIl{+/O7PB"¦B9"t)֊.$C޵,HU!ԑVp$3ZF2JM7ޓ)b1Ni1O!Rъ@%4}&(SFL=i3D*mꬴIj'V`) ڀS2O4'jJ;Q@(-QHBI@QHh4f) -%%LJQ֦>SYb)q@(RQt@im2^zޚyXF3o?ajj7{@W5\UQ=#JiڐAMCqTơ5$#Is evwCԃ +?֊9s!@KZPy1ҲqZBM4M4(p~cW1!B +W-=j]EBQ,;졜uQRMF;IN>as+Fe&wT$}.`#pHV`΁p$|G+z?JA/$#J`z,Jz߈z,(,0rdd_zm]gygBrkJϞm{<\5{B?砪;;WjMUn$f$ԭP4c4Z3@F+TM@ 5'ҥ5Hfzө8RhE(R mavzB89{JiJ 0)A8s) =M 8M:.MڣS4)M4tjt#@ڢa5)!@w2()Ҷ4әS"|AƵ>?E (\ +Z((rBǭA zT +jr_(laUNJep`5.-=*ho*{6W%3@ y 3\皵gw;}7U1A ͩZS>s#`4@ՉiR +p)0*K֧J\P)H > ¤Ap㊐S@)Tqzd`'p=h=D5wd 24ejԖVq$QF"/mܳ2޵&c;A8:eۜM ܺ63OMFza3ݨ$s1ܓ+BF/?c]kcucU. +r})yZ@GϨk9IOp=)拁4nXxQqQ4a45ofz̑ub!jh= +ؑH"k +/C[R䏕pޯ\i)TcTݩ rʧbfoo.6>=Pmi'h +Fjԅ@@L:Ԋ3@^ ۚ%OZŖe<R? nd]< ,xy$27;#oɐID[fhuG$M2C4[_>XKkԑOLgްHqs'E{,kڒDU±RlaP +56(;Oz@Nu6h<Nn +kf3SYJDZ)HHf\HjqR1*qi+T2E\徕ڨXtCs4L U.6Ζ2c2%vnE]bAUl%fUR[k /',5XJ*TF+⋅Kt\}p}i~Ҹt]Z_Z.:!r:z<.ϭ/ޝD{>x}h±E<^p5 +F X` OQXHZ*(kQJEXҜɚߵ!n%'z);Q@)vIKHELR0M_?p&ƀKF)hPiM%(R +TPNAȣa;cl:Ӻ2mS>cTXUSd$;qTD *.*ԆhIQ_AO?-c"fQdkE?/QTVY:aV;UCIJi()(S-gHzP0ɩTqLRhVB:Ԩ(u#i7)h\c?"\]|cC0:Hi-0;)i1upgSa[%,NVݛ|1HJ#u~y>:UʃC>+Ү9L qѶ%qZwesH.?pQî At^/JNȎU)\9x5Y̼iSz`FiN=i #5TQi5AT1i:S KHbҊNPi;4<EmZghbɭ3c49ڦ#D^@ L#MshXhqI?5>U4dgrMOvgJrơR?Zb`5ԑDT Ҟ*54h844 4FNhfh hiis@(jfh0ihH):R0i):QE&x!E0 QKM4\Ѻ$K`4f .iRS&isKLB.j>@54C|ӃSI +hlSr=("Z[#V\0Lm#t^Y\eޡ_uXw6Z\gwjsrڭ1ªC:IjG)r(3n#snM <'pǂ.wwdy=iCyɢc1M佔3jޒx"E#GT`Y dl!i$/9!8=M.B )#44a 4|ueBriK1,Qy;k0!X]9E(֧qrƹZHOj& %=uúUͺJ0u^FkKal6`lTցmmuQ]JHץr#> 3|y99!1M"7!j"9ZGQ^Q^`ү){f1Ս)0$5 +Fi M Z\mBwzҺh+ O}e_?yRݺbX{Y<ѹ1;)ZEV@\d搎+.nZi|͹BdVm̂cz=m(jEnf\ոdAi{G!MxyS2LҶ8J+*푲UgPM +:̳IŤ\ S2nwrƫ7z0<4 z8ۚ"=iE0mҢ5+TmHژihoO5!7R)I@CN4RP +i)EE:L*ߥW8Q0~ PL)H +OL}^tޣ.4 gW8-@QցJ(qKH(bNM*[ڟPM@U`JIUZspTqH8Z6޺ɭa4x<JXѕLϸg#7K\T7@ͥ\)LAERA@P # P _<+*1uic(Kg8bQր'#Sݿ;jLqd"@'iUc=x5@U$UjB9F%ri +b8XcWx*͊8*w%Hf֋!amc$W1jz)>W1Kjg\uLĵ8,\1hޡAoC֨Mg +&qi{je.M:4h*Qp #9\z0uY7F RV6[F1"^?E_\*VMnY&Ì}0u*Pib) p4)E ڐL@ +)٦f4 vh!sKm.i4;4҃@杚4dsQJ J(4Թ +^昆)iJAGSKM@J)(hi)3hSzolkmM*@UP$6;Oì6vqYn""qUcC4@as2yĕa֟+;PS,UG$tjlXG&䌚.^UP~QɠBjͺVչ =*h1Lpx8OμA4E/"ˍ@6[ +Iɭ3ll09#Tk)r1isc&dC#4t}T71% ںYcWCN䴔KHbSiR3֡xP~SH `vB~^]2EW+]5%!@sή.k@xapjMb04gjKc>*xeʓW÷ࡾHrE;FFD$m^w[^SP 0k{NaʘVEѰ+Լ=c_ʡQ¹Qa}Sr+?,OPIXHԁ`k"ZzN|qQ/O1[M 1QU TdVwy* 4"hqLaW ʜ4L? +H%Q*E0ʟʢ'1U7- /u5LRY# [+M2CJ 2@vh74PFi(-4ZLQ3Hd5fґTE4=:H'j)oZb"|0̊Uw3+AY\X2 85TTGqPj{S%46GP;)vhJ@RmX+HS,)*}hM1VmW1Tmns7eV̊I $G}뚸mzPYe1I|5ys-@~xO֝y3q]sCfʔ1ԁWm7]+IS)@QRSM<4m4RPzP\)PXTH*tL~۵QJoLFU!m1 h@EP}hv +(ZJ`!IKM4(S5Lqm +1AM4RB*d GJrSE8u7ǦZwV]ڳ}i鼸 vTW50PhqUVbIր 4R5Fhii a?Jj;ƀ+ +?*1RF>`i ӆ]3T|B1q1WKĀ]ͧniElNZJiMr5RCvSB Sq@qOYpj hv;Yy &Al-+!4#m)GhpbI8ɠ6p*nRcH4:7 kU>}uڪ.g?JHl!*q$zU)5DW&%4G)`OjLu}&i#i0Ddpj&)ڀ!jFڐȚ=jFZ H51!MH KMNEP!E)4c~{@Yn5rjY9u"v}T{Xo:4I?Za4LE6PN) PҬ&vUVtFvVv8LISmSVI[^,Akk!Q[uW_z9Li=3\tW\[m|ֆTi)b;wkF{@,"rM^0A|4E 8y,/#<u»{ +Cʂ>̲.ÚBxa^h3)s_Ov%pǭ&{xzԟr=E.xj< ?Bl{Qj; +4UrߕF֗Q&ڀ""c~l? +a,?j-YSښ_Z}F5 i@x=i*PJ VZ4xW'!>vW'4#Z(1h()(h(2qS\S%dʘ幠D*UfCsL&niLsj)0=()SQE +pҊ--%((HN +zZkށW*6?}.]QT!m:P + +ؤ" +IF@C.6;qUUga"㸫jĬ=1ЀOcں?i3*?⹑αF9cՉ":r5Äc@ϵnLDRUY:թ*aQii aP~!Oh##Ԁ%L_'r՝/boZ?ʩS)֛m/nT!Jm)M@jj*Dyb☢5W@സrGJ`GvM_C_"3i˚;THkGm#ڻM9ŷ5ku/,w?Cf<~E>OiYE+ҭ-S` kmW[]IEityg;Ifc"ӖPRާ4B{m֤4֘ZTQ5D4cTmR5FMS"R)")GzqM +)i:% +ڱď[z}4 *&RHA$zqQ7Z`(Ҋ@xiGJi!Fx'nyRwc@ 4CELZxE !'Za2P53-@LMDԀB}*l-kb~$A"erwm\[q^j> r1N.(t'}HUڠ P+It'W77~Yb T +Y[xzKi5ENM?0:IsuF?%QRӎWH@Yv-(5iDM&zO0PR~觥̟v&9KEvըtB2 X oiVٳǩi`3V d>42_bLfȁ0>T6haJi0xƧt>16iΞ j))k +ZJ(g KKi4#R+iVp$jKg +s~.aڃM+\.rwgZlF\Z+a*1Hb`[CKtKfVmOYH4rԫQH*CRI) p4fK@iE4sEKi4ꎖLfP&i4iIK`:Q@\Ku9_4f-( pj`LzqApjx(9.)Rb#"b8bL)41F(SOZp( u*l_IUZo2EB:<@VY˱R)=j"4A4=3@"OX"ej_0,zVcC@ĜtDͶ?>y TWڳ +ۇĎI4V95\VȔ(2)(4Z)Ԇ#]G"42\ix|u(nc=MIE\MF Ƴ4:q$g +p*{ԫTX)Qu'`ړq۟LX.h*=EH5(ǘ TzEREN'֜$ +GE]g +]QqO((#M1JM'}(X`y ҵ n=),fn=)Eqp4f=S~1.*O2^1shN Sҧ{-åA#4z^D=iL%G"$0@~֢6Hyg#4hbf $ sJ$&&mD$4|ѲasKQPsKRdP hyY۱"(6Oh:{d}+RP3xfaTOX'`}q[ԴI3OVO ި܎} v}h}Pp=j/%cn;]MɠVT?<11sM+@!i\$c&N*)n +xz\i( @Y9lbJ[؊uy@a,.,\Ɂj+Jíi(22aDE&$SqRM"bOCO6Qƀ"*bh*AM [U1V4nZSjbA(u%QKL(4JJ^R( +:M[U6@4S)OƠ4}*֧Z\M運|?n* ?[WlxRVd%Tn[8?^NO@Hj֠z`FTQ zM8M!4ԚyL?rOU$|TbRwK835[?jm7֣H {Ǐ&iԀy"ׅVCMojiU&9.qT9&!=iQy=jHSqR֛ހ1KIPJxҦtd=Z0ܺ6u`]YLZĀp +Lh4r²|Y Q:7Nҗ/ڴ|CE含gP[8H(~H> + #;XV.W>+R@$Goo&#u5e-E,T}i1ޢaS5DB^nuڤjaR5F3MiƘ>!8SE8RZQJ)@#չ`pcښeDMK!Lf4 RLI!<1NJCIތ4w/z}1i0 +Z(AM4M=(6RBԆE%@3-@ jCLj@:սiwhIG5R5Be#jRґiJM +JGL-Z[ۙq^jqҨ~wҠg8iLLgN9B"/|j7pЯ=Y2+/4&I8]؍>-hHW;U!lef Qcn'ր4MʨzdVBL~b~mF-/Zgǣ! Z4D +4f FG@4+ { q=&455KuʷJ-f)cB֥\Vv:W0jF%QH4P1h%RQ@43M -`?4fE?kF) 䳑NB)EGݫ+@@;5"6J5Y{TMgָoNڷi[ j[`?u0FQp0ZZAȾ +.; G5l*ӿEcd5 6Oj.3,FZO8jdp zh2)@NE>BڜPR~IddS<?"1UiXRV526E;\qF)KQsFL.}@?4=Q*\@pXPE@ֶ { URm +GN?tBv \qL +GFu 8oI>4oZdB\;aCj +pmڡ{Kl׊-Ԅ) +\s9oʎ@Th`o +¡Oar5c>&?iX.p 6&q$p ,6)վTLgƤ!T"\Cԓph[C=F}v+QnqI yL~*hUFT€$Qu47p(i )i)h(QK@Q@#-:+@4_RJ?vi-6qs4Ȧ"-%PELQZ(1JWm^W.܊@ii7T.?j׏Z7'1@HM"FaM&pGLfn,_z91ہ,j%<@XnbR8x?]"f'7tIF<ǹV>Ydܭ8w*2]D-PN z&jasS !if>Mր))H 3jg֛/-)_7VL ZrM/Z@liWaixVBM4M4 jǭTn,cT`sS&1L 0(S*QSj0Eqֺ֢i |w +ѝ˴z"Asg,'rvp+efjpLddaRAxmΣ"͎j5TT:3AMt2q\=Y[溆;ugn_+ +Z8 j6RTFjcR{V:R~H--'zZ- K(4]kfǂ+#ȭЋ[֥nsQJ(;PM-Rv4i\PhM8RE.hߊxҤ:PM:GTORD ڡj@FM0{FW~8 +r:O )i)hџUҨ]" MoN~P^bCo*Jb*j:Ub/]]ͅv~_!}EږxǵHzfғ4i4Iӥ

FsZ)+Muʤ _f2!IQb*(QN1Tբ?%+ /Z.8w6)a`Z +85 XIS*)(ç=*eGSƨЊ5LظauN "Ai oMӷ[ubqf>0i G`6Qcm8ǵ;њt0J;Qp*旭MYU4 KLb4Q}@ E%!4ku)4@}i@,޴n=4PH[CP)P?+5xS\o X7iU$r>@E64$O[kҰ\㏆ X{M}S3}98=jpƕyi񌵬j,#e\TF8'tJ@>yf .^l[ TiϜۯ>(a^Y/-=uh .឴ v2x2?w;**a.h U6E^_^Ɗژ3J X:UMiv[?Jwf4IP|)TqX4|zR.hE.zӃޘQ)U5~- ,T~ЏVtÏUS]G) fO?Zb3[0(P=ZkuEڌ}G_H(D1 ƹNpG301R`jgh|Nea!D>QM 1|czՉ6[FR"Aw ցD¦aQ5HM""@L~jja@STTRœ:E8PY¬jb5Tqoס+6%SJQyJRQK@5V1nM4 %1(JCJx^@)jrKUdr4I^Z, vrk6%yIj٤bQE9~\OTZ斘 :& !S!P܍ьzԑݨ1!cPj{aa@&Pv].8Z}xC@5#9JtGU:y n<qT\_k.dl1ȩ&byZzu04f@瑚d:)BFE2 ~4X TTYw֟lѓ@Qۜ0RUTj?S*k!q@#pqR8 CuXR5ˑNJ'$BvV/,sڋoZ_\svn40cZw h_iPq޹ {ev;RRusҋdu1W%ѡnSet :.;A%H'5 U6*F6.]Hp-ul^@z=pɩpp{ԋF[nyc0⧉c=WZcjUThv^b"Z5)3ģc <(XKMfB R@Ɏ6qIYc]LEJջ}EhTV$~0=%=:x#-c=?@ E FKERlJLc4$~Y~4(Asp7OPRP:iTPU:J:ԫzHM+5r9$~ڷư4EmhhZ;[7M5l"iNSޝHVӽ 1ZPjᲓi ALԭ5c@ NaҌx`3S&~S֓*iSN@qQd4is@-243M.hrGsK(@n4g +`42#}ST٣4U AoҴsFi'܂ _ >JVhsO7Ud/;YX}k-Q#m.^p WrQ5v&#bɾ6QgUA? ĻrqɢsNtMk ?*- +hsWb +5-paY%?ާ`3mK&i&/j޿[{ }F ╬.YxPr)GFzVO fWu\(ZַJ?Զ~- TosaʢhORҶ~ $ņ)GP OEa[t>T!ǁQ?>+t@N QjSMObb9){NZ:P Ng5{Ti"i2 Ycjr5B-K4XO ~bX8HAJƼIu!1 w6fK`g0F26/x"|ad6+{p tTFLD}'eȭn5";:eOjo<P&A1 nOjaڣ=jFzaڤj12pij@RoZ(!m$qi2"ߝJ~ƃ!'{fj_sP7^(JZ.)QE v)PiH8Zgzf9 +Z-*0S1:i0zj'j@ԆFj7<ԍQ oi)Vq"z4>/RQt K@Ţ@GҳEh!S[4M= 1۴I85SJ,>LCq.OF#No|:kXۿJU,T\3S^@I)Jꑆ}iy]) *+/7(Cf4#րv=Xa'GAnHTuNaɢ?*cftKƺ3N4sü=?Үx'fGt`R [Mɐ[#YzqaaZ M\\)ZZ)bHOL^K 3%3@\ע+ +ZJZ(QE-撖tEIHʠ PKv)6J)(S.٢G5xN IkG16>WEE+7D3/TyF> 005hWK;rjy@zS+cXfҝ a"B+0u5cU+V0kG(F)1@ LS)QOHF(R`!(Z\f(sH %(fRfJ 74PKnx3LfMԙi£Ku<=Cp48`Ú)U"@ƬKUQT׊QJMU@W4ȷjd &):V f4tD; R[N* MK8AT +i] HŠR*Lbժ2cM! %-!4v)rJ6sKve +$Y&jbYf)4ri7,q94`>2 4Jm`tLYJG/ؤMt 0GJ,0M +fl+/P] +CqOzjţ43ސ|3[ìuo$1,11{t ғ`gM^Pyǔ@")Fw!E~T{Ų0j8JO= C⧁<ۜdtDJ=U+*+@RϮ*C'{&&<ՉFq1H9zn/)D\۶G"2=|$Ὅj S݌'ҫNq{f$Pl_D`¥?j)8ԓ5GQ[c拡'қdWh8܋挓It;9R>RnQ@E$$`MgHBB-{G-/"۪- YڇՄ9D# ,#9s`Z˰?#sTMӏQYƫPjpghfҥ]BR+cTc9E?[aU ǭE{*8cMN0䊲q7R<#KT+#FzӸXZ~ R v^ +-oneV̧*jFn#"- ?X.m RM;BLRQa[782}ZF_ΰ(ǹspn:O~Va}OOFt`lt4Kz:J^`j6T֞M˜RnR? F3ˢ_[|AZRH̬2 +QIfV^m@tDZbK␀^9O5hXs:SD1F EF#5TQ#5&+RMcMJ|>YI7h?QL 'қfS:~bj;ob! +M@~OTq7@@Ax]b GidAb:~tݙx9TPh?0 2Wim4_J|@O-SFS5<F87=6q$J^}TnSS?^>΀5W Lu8ѐzû8V.G$Pjp =uKfHAK,UϿme:AE ~:ߓoֹ[h'T#lG +.:uOgN2 rvnIɦ#K*8CNc3"A\d{qXUS)V<5/ ++q Ӡդ6|hXR#x=~5.DmXԇVsQQp٭_ΥYhAZ=J2$8;hH:ԓ$52,9[BhXJrSTܮ~uo; +1XQ3*iI1.+Xe.+fE_Pjvsd}ifn!~OY0"n=m4bғQ4iO?塥Sz_:j,Qv{ ƪXw- OPE UvѴg.y(7q"T1z0R silޕګgiq7s@3uiڗL:4>=S =E4jǙ KLE]ԹY 0a@Fj 4۵E3OhN81 &Q 4Pp>eXRZJ^WchvYWAk֓CL,߁洧 "Ik$.{CE\wj 6 ?ļ[UԜªFVJZJ`WjFڐm8iHKMK(LS׭0S 5tv^*?_*fxfGL N^N^]}+SjIT@Su84"p)3M£-L-@7xqTR)eߎ*Rcց5&$w~_'/5c4Y>~EΛw~V5sZZT5 C5L_Jqjk輋JQ 8?s1!QN]c5?Q I1(? +d 'o舒3!95Z]9[q:P#mi0@w.G YX8 E@QҒ.;74w4H))**+żolq@P*KKIԜJOӊ`g)rzM6GF?SR},c(uYU'+ecU;S!!oT_iI(N9\׏88㍌=AE КTgA?5^F85LO2v/,J RH49Q$*H!g$4kׇ[/.vz@&7 (5xs#WhpI)[pqҷWpf=R((((((+m^:  FBi6J)h(h((#M0U _tȏJS.=+;1(s g=! +x58x.ȭT8E{pi1!7323Qӥec~uwÁہ.}jC84X.gx$Rޏt\DpJqpFhw0?Ja\U !r(SQdR# bȥ hqML@E4LbKJ(sE%)PE%!4p*vNrM4!rjiN@B O -){I:GJnô1ֈ*R֩Xɻi4L!mO&cTKjg& \YU9&ުI5fsU5VRMFM2I&"g=(Snyf^2E_ Bl \dU@)8UXG*Ji=+4y !NC?T'б媾0L"љdɯH,"P+-Ck,l>6OIKHi%4KM4f@ E%RfZ)(QII@ KI3@ E&h:f1FhQ(9&@ \њaDOn'V 5r`P}F g@}+R,;T ;f?,~Q`̟ '͟¡ >[E+!3>BUAA'ڻh94r~B>ơ>'aE.p7IH_eJ.XmRHg#G"7Tv꜍fF9 ~)"U +L洟@\T-_p, .yӧ>£68J@"|1Q[!˞9UQzb"#|p1/nuIPr-EoNOsj]gCvs$8*{dӂA#$PH fqjS(R`p(TQ!q H5njcjF;#SLoʏnsi +<?Ҭo'ҫ#I(ʧ@ HPڟORd[(<O/f8 1L>-֥i?Pܜky:*+{RZxQZKp?W_.iC~@7 ',6?=A v{ +HGtE4<1/EĖ&ft$OI$b3֙{ͬGbJSx[sөꮞqqiOT@0)n?ޫ\}ˑj/ QBp fYǬg;=\V7o)*1WyBBF6Jp),z,*xWr˳O]R XҋǠݳ H}>зGƒYhXW5 z]>F.s4:1\7(x0tqpbVkthB?;)qYQk8%ˬb(RִSthbSD0EۗLSAaJnG>I@ (P~P̼7zf)hucE;@m\,\Dgb2*E4cD64J}i^E7g +S6`eER4P;(Lm!v\ +w< ցUx궣4cqW˚9s h[7f0lqe_Yo+{VJJ91+ l*bXcXuExؐ}*XP:%ou!m::\NZѺ:7MeM$ *h.P[MLڹȠ>̍-DB:w :;gU``jD性ߚGI{Ru*CV;V +Bzڡ(yyKW8Š@M,z 8*Y$JxA[(PI4+qYu9]֍ϧ!8%H݌v}V +jڮpc>=hmj*ZWgeN?֏Q!󞦹xLmO%]c'JSҡz N:h)Z:1M4SM ކq)i;` K@Z(iiEB+TL(@;&ڢjDԀԦ\j"h-.):R u8T&@7=ɤNOl0@(h6q])8Sz֢Y[EBSghO&O\=q@ J@1!=5b^f]8<5Yz*,p64O*JeœnVkSOݶ6Q#}0^\^19]پ:y.aʣͪڦ~bWIIIRRz +(hCjZ-pnHmKrkBTȁiثH@QLPP iաiYБT*ūzDiҞzM!ex~ѧ_!6pFz?&ϋH0{6+,3D&94$i@ +)i(RPZm--(3E%4Q@ E%fZ)(-6um-.h646@Fif\3K@ KMQMRRf4RfZJ3FhFiri(P +iD=cR>(#mn`EDmu~QJù& < ƶhv`?l]BK1E]EN?'t3cE.Q3^y +jhlr^ϭǜɥF2cT&FL2L<(ڧ)\<0#i 0މQ6׊9C#s(s^UuJ父 p>`4-.?O @A 3~4;;N22A+N?p*&ts@⚊Mn/TJj'ޠVh]$R̾j_m?*$yq!)ڊQ=5+[ΝbqITaPU^?Kg1in @A)-A?Z]4AI4F34˸1zKO9j'"22g:eķqA9%hJ?TN+u<*f(hk`eŬC6QԩuiPKl7(zz{=z̴Izsl{:`>.mPJNPAR?٨@KK!m~:Y|Gw Tzzǵmڊ-$--Bgw8*ݬbGQCLqG5CLAb۱To:R_€.JUH@#:-bISqEj36hY5P:u8jQ!|Ɲ +]N"0]IIzL Ƚ1E):vAsWY R=\\,v۷;xhH QMp%m&?.+Z+ҟ C/\tr)Bi +}jUlWCu.OR-zI"vcǽJ0c59y5y; kQ r1@Y_a}Fj-98mi \w RQKE +(P!)h(((pvCV@KE M=iMTҢ*z/jAK@z߶?_N⛭mRZ@m9늫UOU#`DIV@ڣ4L4a{S(e SE7HtJ:Rè$LAguu8 09N^O^ұⷣ=+ +݌ިBIҩZ!7$Z*LzRAڙޞii;1 "zQmxE]5i*_tVΧZxYU'-zWnulz@e=AtZO>H1VFoMR<| 4MAP?.MlT*Fy)6@f8e4Q@ V`b'Z^yqnq}Pk#Z69! T3VlZA'3FiQBE8æiA@M8^+ i0`Jph6ɩ]HN]P)5MO$Ԗ=$0;Rbi&e & wL9[^/,{?okyh=N(( +( +( +LR.:@ +s?E) +( +( +( +( MUwcS;nSDu ̊ɵM@Y`G+4}C'R|t;QH- u:Էq0˟i>ehS$#oX)EnDUVc \4Ni(1o/\]85u2+Ք}:5MgGڀ-E=szb+Vbچ@u٧涇Jǵa沎@V@UIn?Z>dVw-Q4Mq k< 2J0ȧfsWuE=*DXoE#F衔t#iV;sϸgՙ<2It*}զS`hU帀Fj\Fs+iGi-pѷEtE6ҮH!0:`KH ^\Pi4b4) .(IJ3KI@48];ԋ#AQ*5QDM +'Z^[#1;48c66IOsֆ+6i'YީI6jHIQi撊vsȠ *"jf*"QҥD7q(b IK@Š(0p`zUa@jWtHc[F*Fj6_u⡇ϽZrҁa@#Bﴣ\x{{NJ}(.vu!Ci)MQE%-!RRQ@ E%--PE +ZJ)h()i-RRi;E-J(hZJ(Z))h IE--%J(hPFifQvh%6vh3@43@њvh74@E:@h-4Q3@ GI\G4&?*3E!D=cSS4)T +Y޷OʡmNlkBV̗CU–D|5E G9QP7m?uR7nݑM@^ǟ%YT j^FM.Qc%CE>S^@=TšbOG(sXC +BO>ch + :ۯ(c̓q֔dBkJ1@4̎ Rskڟ3«?%( @B({WJ%B* +E +1iJ:+Y5/H} @ݍ!Ν'9I/Z:]ꏚ*..Ҁ l&s-TČ9QSH#h#RR9 6@M8@9nw>@9n0Ry@(_1Smxӎq҅`Pvg/iP +xr@h-}iOdGڒC8n(@ls@ vs CYt*{1@Aq46FҊ\ӁQzm+u4B +L}ihӷg4(A4ãpjT)#4&HSCJ26Z6L*74/95vA6OC)I5h€sq @zַ-!ʇ8'$bIM&P(!hEPKIEҚLSQE8Uk"}uA֥JJ( wl{s)m~]+or?? +j#}8 +*]3R5Fiyc eAuH +"u8uM@_Y6 +|Ƶu')֘: +rج+/+qcR:UvSxAߚ` a*5*PJs3ސ)O#8Q=Dǚa'mHO]?/O]_)? ~@J 櫸⥷IF"!"x?^U<<^v\uFW֐i?-s +>a6w݌¨׊}åjOֲZhn\`m\*H?BsnY@f9r sO3frKyu T)s1!s)$ɲ0]>"S+WƪyVphhӦ-/dXG +:S+|ɉEm & +i +cڻ+R٭yD̼$,TiL+4V.I\ud3m,߻{}*u{{5bbFǰ dVH0@3Q~j9&T +vzSZRhIBi3HcMcE4LI@4)(LLSJ? +xK@P1q]Yʑ=7kjs QqKl?z~ +!_ڒH)1̦+f'qkп~kzE۫Bވ3]? 6R?ZIZ9D((`5hɤ@z%QEQEQK@ E-JZ(kDOLU5ݤb8}>Xq ` b=>!$-^GͱNz2Ҝ] M3_?*ŏϭlMGˈKIKYe4.aSqKqqj6=f #%oQQ]# M9qr}X9oH}78jJkS1'_ Huv@vq\V3!I5Fm c^ⶆr0]*8+p/$}j`5蘤1ͣ PxmJ}@|Ǘ5OS7^+uQTmk uK9.(}Mjm_~U h- lxkgX&>=s(i7dMwK>qKD]> ${P9%GD$RRh1`yWR|:++z&i*e| +r{Rhlm< 'եp4S. MZ@jY>VP ޒI@-%- +;KL((EPAQ@ Gj(@^ ֫G֘R)q@ RRN*TU"P–f(;\>EGkIq'- 7 +zb'6;L5VÃUe@FjV &iƚhүq)@s() +S^Qk.Ǩ]w 4t})í1~hY +݌4"9*⩟5rN*P8F;ԔҚxijct6?GM'֚ym1A%N* *1NAJ,+CU {K\p?9)S6i ٳ|+ +OҸuhȹaO2'GCJn>o#SوŜkEϽAz {S嶨q\V;k2xvֵ,YSۥ]Rfٿqwʲ?Ҳ!'Eރ:"5[&@4!<֤KX +d'1i{SXֵFM>ctRQ@-%,zt +Œs[g4z-S8jbRRPHcNnJ +JaZ)=h0iRAJ(4M<ORD"jVF5u׃sSP6VdV!~L!Syb X!&,]Bu''Z7mdxgKC(F/+'`d؜쮨tNÒՏ4HhsK֘GL&)=h> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ꨢ9(EPEPEP (QEQEQ@Q@-%QKEQEQEQEQEQEQEQEQEQEQE){PI*r +A{ +x(()iQEQ@Q@Q@Q@-% +(f^EtZHO)swrݍw4bxJ q,tZ̗QRE*è5m&f) -0S@ +)ifh 4 uP;GZZii "zӍ%4SI@ I) iM0i@aad8SWZ#ikhTQXQխS@12pM2di/5MfҘtyWqYd̼dzVdUg* ZӠ,isÚKFHNĮ9$]FO8<)E74bS҃@GJJEoJ_j;>P1xUPf YVfSP!3A")dSOzpn 4D1@i3Ҟ#M4 je=N4CL4M4{TM l Y9 VqU\dR ,ZאA*CqNPPHTF$aNJ)(iE6(CH58 ҵ(}髊mbʑ\`N:R☦@F)@4dRNL;ҊAA})HEb?dlXlVM~ʵ9O})4!imb6iqF()-%(ȤKE')I@ 7րd[D(LwgLen+bҀQH*{IKSh<hhJZ`WYkVwZT`R R& +rhr@k׳?8TcS +Mԇ=4 ƁR-ҦrmՔr€#K^u,}tؗfoO@G{d >SREgrSz( FEL0(\NtS|=T,91?o+P'e +RN3Y +>5@hGbkI~PO뵮."Ǡ9VRL 6E5]eX# Ҥg-;ȍ0)fk-]`NYp@:1M wt +qQL(((AEP0ZJ(ZJ)i(Z(((((((((((CL'sҜƐr~0)h +())i)QE-%-PEPEPEPEPKIK@Q@ +*m~:0Vց/䰺0HsOCj?{DSZ[BMc8.,8U]1[JiLsvX]i/*+`GG(k=*9`5,Yd*5ZeEQ[ܴaq+IN5e]yy>lSgXVtV<9Z\  2VnmaG`I6j q@c.N+*\ +@.\4'R*R*e)T9+MsTpvAH)8ŠI"j +t2LnF(n)eӍ5>}(JVbsU+@,=ER +u RQ@P((I@ +)i)٠RE-(RMRf)(4CAKHhOii8m8PCL4M8 pJu$Ci&TR$"'9ڽwdaT%`Gթ6s*&eޙL^[e~ 0 g6-*iPJoOq}(Y@iޕ4ix44th%Jfp4u(4^N\L S@ =[րF:ɦ-qJ)H aPV~(Ji yiSHhiǥ4cu_l) `HYs&*d-Yoj*h ;g +\] 2CZu%PNP'?O[`5Sީ/jwBy{x`8N}hX`EIp${ԂU}.O=nzp}ia#h0Yi{RPk@Jӿ5 .]koLA(wR!H@#ր)(<@ 4>vIpwۭ0֚x֨jVZ~9G4 oVp}++j +stR7z\@4;4u +ptEM% +(-%^b@9q aPB)=(og5z5CK@_+N~vqK5,ZSs\Vm9)O#@QԆg֠5bn\3L4Biƛ@ ~j8~!G'r‹VP#\Bh?ZϠO+bY ֵlN lGҔLJƘN=LTni ɦ\˷z9$OZC-#𣠦,=v1rMMbQrZu@Ž)wHp8$θTޭO>ҟyHcHG֣$x}heED.<S.?tuzԭҺ)>$k_s md:o~ +Aj'@>x~`}&#>3 +TۥwgL +Ra""87Ji@qPN@恐40ۡjG/ǥRQ^2j)R +)8P!¦EKgjUY#d~!j6P{hRmDF**wIHeyj*ԕVo4 R6<ҺYbQ$Lc3VTQ <igيr#i_lT'wo`=w-VF=6Un [`9*ciQ0;VZ<9 tQ/\\ȧ1jR!&ldv"[LgijHX6Ȩ,9B*5ZNEZL}+A62+  W0hBަ˒).{Sbxv5gΒRGUL芀i-fAFhXGZ-U8m8&H3 S7b+BTW`p(PJ-ަZ&W(ր"D" {S(▚ -\S=MH:Jf*E0fQ@4Sր+\ dt5mFT+ެ/#=cVhV\ L9uk91+,_8 +1X%m`?pk.)P 8kd='& 4P0mIcJyXy!-C€)pIK@ ފJ( +AKL))hh\ӳL)4\PM PhPAf<*VLjy0 ԀQ@ihii)hޕ[it!v/*j?y7G,bu6;u.e zP %>h&#;>T\plw{G@{\Ɯr}]>~P*9`͓RH~t9J㱴ְ֤Ħ&>\V7ޥ[ǽsr;Ӆp-ҚxS5 ;ԋt}hX|Z_5}k]ZxqXާ/=ez.FsҳE{ԋv1֋hv #u [qN5(Eu5Jly oV#kXnj.(Si@Rf@tR8 RP I\P0KFyS[L2qKCs))3Iڔ[FG>Q4<\TZt)qٮFH~U4 Ӱ<+FoVnkJSs@rt4QHx4Jn\ՉfژjB))MJbb +wjUEKQ[Z^DGұ#[ZvC:h5,@ִju;(YML + րϚ#uI*T' *h&oD? Z<)`IwAPv܍ޔigT<m9gnބ?02NQH~SVIq'l55 Xj$RKQȦ/J8T{S֑pvѼFܑ~|WN\'6UuIF؂)cY&T"ݣE%ks\5g08ZW#>+whʁ jct9`0ct FLgTu0Ԇ"DjVR^xqTPHbw3 +pbz?LFŧݫVG Ҙ NG5<2C!A'J5 @UPONj FXRy\ӥcW}72 Gh3NO|j i$n(<* vZ$;*kj5=u4%{iD2eŴR=j*亱,n>;3g@2m.hԡM2"]ʝ՘9 k;4PZge5IKGqXvt%}EeMKBX9BMJ\ heId5V2`i.#nQ@C!OFii E%OZ/OIJ(iE!y$Df!484h9bw) +t|;hu`H=)kIHIψ,nl:14Wx)h YrQ?.:GiˬFƤq.#MZ#Tɩ۞ ssNt]$ +j}EqrFz. hGB(ELP +pg3Lg1gƗ >h5"zJ?. )֬,E5:iaKErEPIE0 +( +( +((((((((((ES(((( dzsu"s@(( +)(EPEQ@Q@Q@Q@Q@-%RI#F=}EZ?&ьNJfy'+IXdH5"*R +CPܨ +Z:{TQHXY]jvJp'֥j:UfZQ4Úe&)^j@SPb(!@R⁋NTӞL@qҥ@8i*.dlg@Un#UZY7>J@)mƓ5iÚ%.Lw}=8g_ShQJ))hh'5:@Jh"VqJ7*r +*R\Kڦ1vP2*1N(A &R9_1?WOkݫ:S$N5 +3L>t4fh 7i4Jfi(Q! C ħ֜'5W4Ep}iިNhzp>>eWdyJM =gUoV++j P#"n(RSH)E(ƐqJ( P)i(QEP0ފ(/Zx8yhNcWjnP1i)ޞisUj{ #յrwXΘzģ&!fv?R!L5@NfpEfZѲ8q@`Z)STph.kj^θ?:bQ)JUjΛ%P}V#>SWT $;/"F}h(6ta_j?f#'VC0X|A+_!ە5Mf/-tSG;Σ_(ONN4ċ7/I_ch?uRr#lGA¸Iԥo$luc,+Ԧ#w)&B)¸ʸIN#5@wYޱP!M4ҚCLCQC@H95uPM֘L4n }+<z'?J=`:4)B:qWץP?)Խ3A=<#dۊǚ5@皘 +?Z(5 2ըsh-m̮q]$ +"Q8UJqV`:i'~I@TR$T!J4PeOTeϵ]'p}V/Ebf(%&ip5r[ץvvRىݻԷ92˜nZhe}&dXZ[A-hC$YX޹[>&esj1@iQ~UFm PWDE7-1,jARRC+# CG($cc4@G< Е*&ں4>Y>%9*iѳb3Y 4 s@R/m?\Sݑ]/E0\޵հJ s[@7Y3ι~~RW<hyAK@EWsp~A(J)h)QKI@REREPEPREQEQEQK@ EPEPR@ EPESI:ƀ*ѿ_.UvX4km40+y~[IbyUx0+!LUJarMhHcrM4mV5wrv贳ڀ8эN55f1j +\)vѶ ! EJJZJ(%%(ZKu^1Vݫj_XǥmZީZT'O#N @ +`R)⒂h@Gz>bL4w`80S +0Iޟ'R) +=iI%ZO4Ά&JT1Ԣ1.![}QYl~sߚȱ85?܋+rwI)zژiL4iq'QaV.H5\PֶP+kK\M#?3Y\jCk2zlZVC #ҫNrIXO4p?woAkBpG忡_u4DKV8rjX_:6>֦D\ZEz5דuWE'ڸr#uzuG5ij6 8L:}o3󨓕"(3H|HV@?Q][KWƺ>hk&up!b]p-4</+aiseڟfʸW?%wfZjiZyPIѡf5=QOzYU'52j[ r>?Zڹ;Jt#V]GJD8(iBOUU9J)hCih +( +(%-Q@Q@Q@Q@QEQI@Q@-%-QI@Q@-p)4ȦBGjF>ZJ)h()RR@Q@Q@Q@Q@Q@-%-%Q@Q@ EP +篰yt)ֹ7sGq +M"ik#QsH4H(1) @ P4q@W&/)Rg5BXaLhWj%椒]FG+`TĞiԔzDU% +)BsN'4b;)i-%!QU$zQU$l9s)]SdfBzֆxm8?)+1QX)duu=P69OuXdRԘ%y(#`1܀:@ӊC%)dPTwDH1e?5q +zº%'$tb:߉Df!>g00\RڥO"FT*L,?ݮNK_\Cr]+"?5qR7i5u FTMޥjZFj3R5Di i=0~k1kH(à/Ji4CTu"u khe94Ox֫\ Ȟ +OI:D1ˌܕ?P2Iuv\eRij퉈03h"uq8SU)c`~RҁS3ILAP?1@hz}dfZaTG {Ƴp:et6eQ^qLA0)Ir@x8P*y>UAx3RXRj#v3V&7a}+3PcRk41i+0-A4Fh[M9ӡ]ڽO< ~~kxr-ۦ2("j&cf-uC mR%@AGqWr o Hۊ )<ӭ,dֶ,rqڪ"Ki<4']H*Z{}1ұ%[=14tocq +[3$Af &}I5JD8TU?&xp*HM$)JZ(ZJ)i()QEQ@Q@ ER(()iQEQE▣'94B`s@ EQ@%-QIKH((((((((Z((Y(ۀp:i#))WOna B1:ל[)lq4[BC C)JO~ +AWG55֎u-4qK{RIi N@u ө⹍~9%g=k5Έ'׵&4cPC14+;#S%ixҜ( +4;t@ +u&)hKMQI# +YI8JBW=OJtGAH~fɩq@)(QIK@ IKEPJ %)(E +(f%FJQRD:ԩHdO-i#VڀECM4hif 4Jp€"{k>x]Zs}\~U/́qaXTS )E6)?a]VrӋ}tx +_}}E[`jB MI LzT3TDVM+@u5IۏD-/"yݳrNU\W֚Vm2ՂZC+iR*"i -!SH$SqSMD +)PT0$QRZjE@JٷWXU!1qRcs@ +ojpBҊJQ@~jwjj4ԘUFSwJ1@ťR`)8/_ZeREv=&*#&Ǖ&;0@9ɤQ%u`~=6jI@34?uyR؋񎴊(ZF4}p@J(KM:AKڀ +3H)h  +(JS@EQERJ))J(;R))i(iiii>-GH()H H*5=iLL);S)zU.S +ZfkA'Mg֮?c=ă:SsKpSPihhJ(RQ@4K@6ǥDj6BRfC@MM8M G֤j#@vsi4*2E4GҡRQ@'fI𮛽4S<㧽ET3"biqKiqn=iqKF(bQZe4x(߄kGL ;RhzR{ZmP0M'ZaZ|JtIҀڗkqL4u/j@q@RTԴQXocG5kYa_@H+"OR5F*P5O%@m@ƚJZCHJ?rTtOT"uzf׭ku/q#ұ_ Nx<~U@*u >XVz*7O) 1ަ +J=jHQ*e9"QbX%%CzDVuPQri q'5NDg|w9lS) ˊE$U@EzUj-L +[|: +cv6ZGZ3(*;Hs1]q¹ O:2I6!AfÅo7st9K]΃l~,j ah-IȨڤqQ51DMHy@FCQ5DiH5FjCQ59wBN% hL@RN@ R'lHhe֭?ҪYV=t}Nb;Zx=[l,zf.EҠ.Q{V0=8ݓH ˻Lͽx5v=ұ5Z}i_M;IͧsREsh~@+cFMXX>~`0+ej"fyQmMWn'h g?|=.iGJ@)zP1.QI~*,P*T=NvL™ЊkCf*)c`3i6Ԍ`G)(ySTQʬ{TZXM 2T}ڃ p +hP{KPZZb +Q>%2\hJ$( O& SFEibV?^y8jg0^RM$ Q@XL䰩I |@Êi5T}ؚ=>#pȠgKx?Ҝj՛o^**CMji!(2)TEB5 E@LdSjR)T *R)P2 GI (Ej(bJSERQހ +( +NZh44V|;c5-ʊ4uNQ@/@*AQGM@β5/!ֶ>`<%krN,N{(Q\`cFVZbQWj@0i4v4kU*ֵ̟_sY V@^7a[~(-~ϖ@UN`d +azџJib+* 8 +h2VJsN )}Mi5F~ [vʕP\4@n݇桾sZX +o$TP)đ#5ף+T`B;W Nw;U.Q2(sxm׮8A*Kni]<1<>sAVЍqk: Ň_'`'jZQ@13OZoQNZu=O"NZiuꍑU?0+IҰ"sݓ`c#@Oq-^=Qu36qɬw*kNqT'L!E\dg@zT?e QJasyd$(g+NJ̓?%_a@PhMǿ #Rzf|2K {m eT Z\vZED=*6M4T1R26_5C'4sO2k<|q5^?5(S/YOXjXzULIڜM6_(_Ndiĕ{mݻՍ7{u|L=&X{`ndE N-)(i 4hsy-R桜nɤaSy sHm#"qPsg1"2x*3RQ8@yr%ut? VDdr3zU}Jֻ៊p6 ;]2!v5c Ac`ckfG fiVFY|)_]9l߅1AO`' So~Tg3Nv#zQ.Zi{sm TFB#A6qgjz.:BUyXaɓh9/Б[p@#TSDvKUⵏw)enXֹ^]<J &v(MӺ+iY*+h8Kk3[ԟnE n=r]H v܉B*ԙ.)n$Mr)Ս,cTbQ{Չ+R3C,p0*(i[0ibkVcYFzU%I +[rֶ4RXĩ 2Npi)鵡)\P!)c@1@- vwZoC;mz1N$P2h1F++Z1pBܞ\үidqdQE((JZJZJ(ZJZJZ(()h +((jk@2/Up8-d,prA'_T[)'W=HmsaQ+Mg6rQ ^smlzRM!i1RIKހ +QEPq"F1fL௱@ƵD)QɪQJzQLBb94R\ph1KGKP!{P~vSV4ZVK|sO8j>Ur2j6M2jR)PdS 0dT֬0\Rc aM"ši)GɚEO0Q/J(NS +Zڳ-bl}jNMNEDí N)Ҁ:Rh@RQހ4JZJ1AAIKGzN^i)ךp{z;ԷsQQC)q@ RJ>ZjQHdc7Vvd#@`8?A;?=؁@mL4) +&5X4:C@4!IǭTjOJ(ֵl~k):֝ۂhߊٟs+ VqK6!Hz +g4G,x;Z?\i5e5]O!cRZ(t0ֵ]x۱'ހ5Xd0/59RO)V *0cse8fe,?ckz%ۤL}vG"j`2*;!=؈?o\oc] +Bf ֧~ u"3Q֤5 +'ZjBƩƠDFiQQYdO'ր*ƆRfR +rwPM@vX*>˨SZNu>%akI&6qp ["'Ufϐ`  VRJLHmNjR2)P& +nd F3fj2ڥj?[U'Vz;*t?J(J)-]UK12Q}8@{~Eұ4 +,d)pqѩtZM` V4W0G(БB:ד7TM3ikGYC%KrՎ=M8@hGfJJ(ZrǽWZ14/IzRqMhDOoJj +ŒqK0)`,zTj8_*Zec{j +C<&_z9U#),jr+tLD=)a'hT +XTt5{UXǭYy1J דK"πz֪-Kݫ/U3L c֮N--Xa~ci7H4!u1QĹbY*u{o-Ocڐ K+Dިw"񏖵Iv6 ^>{ ِUblb3V~Z\|ǥ [eXȆ3#LO95^ xNWRgovZ%)]?1'iF%AN![9su%U'fjƯzn$X#'$"diZ#{. +ԯ_*3KHHUY<˄*{+q؆E@S4!=Lf;ڮ>ALKj|7O\ 7S. ?ƝcB֤PAbw +rұrKǧa@E9-M +O&DH++9 +{|" *¸?ֱ#*.Ɂ +^;ʲqA:`ߥEoMk;<'0:{;8ca* ,qT`*e<`*2ijLyFS R#Ap@Gҋ'['͋,w=sҝkkMJHxn\]9( +Z4ھ3MQTN)~s3K쾇Ej_.?fڟw}VІw(B.2enF{S Y3H:5gF**I ئ~Um:P8|c;}%=iJ(Q@ KEQERRPKIK@ E-QIEQ@Q@Q@Q@<\v;To1s2OQ]}Wl ԭ uaM\isӶD5BajkSܘ=Tg?%$cU)71~r|*P쥉 d-XئS4C֡*JӾUdHdUUaW353ǃ9Xʼ +~8nSt* +`ҽ881M{R#KQ @12RbƐHOJ&~\P[NTsO8c4sR*Ҫ⟊@)sF(bE(Q@ KIJ)RJQ@RRERRE IERQ@KZ\M(3E(AN/zCE襤IKI@6ozS@@H:R@85 iMJ +t$MLCHNZ`JMPr3XJ) cjP'f0?b36RQKE(@ Fi @4\sFh\ԔQ@hE@ oz !MG)CR'ݨ@QERR~շQ\yU>šQʡ PE1-%P))hh3n!O8p})F[Rz?ҕPUsW}ViSҀE0ԇaȦRL4TSB􀁩!CM4M4dp +Qq@ŧ +AJ(Np }[cuZڲ=4ޢ=MLLQ@4Phc@4g@Hy3@jCKA@ JE&()h\ȥTU59-!iM @RQǏJ +^Օ΀֬lۜI [?ͽ2 aZVA*'MFU7Ziƨ< !4roU* }*@ +Ҵ5Vހ-xكa6ܞ`FQW>B}L TqNaJuE8*Vu +"}j\LSJi jzTJ~( +:|Z8z3QA1QNU" AIR⁀b)`?1o`/WQIGs? +Lh)š*).6ۜY]wGj tGa)Й TLDlix50mQJƢc@50FƨHj3@8a?\w"cRcCiE 0NPҙO^g: +̴+O("k׏WC5sܫ?EC ȩDx#MpqҀ3kdÒ+x92|Ɛ rdsO~j&\tV!+qihTԫ1 gح~IhS˓*ފ?Vf=UIno.٥@V0ST5 qPL TFNJm@<ʷGfZ!ֽ62]ÑHl_mdbɤB@tE$?#e'R*f,}rڡF5jIBe 棫6"vNinMF(dh +`RъAN@ +)šǢz)ƤXe4H-=֕U W9K~[ّ`;K冱9rg"*z@7j?c.0늱c~:Jqo/JE4u +H*+=!*0 淝WJC˓jʶ9 KcÊ-gXd:S|ۜ +߀%Q STׁU[^\g2~hf<#KvRxnT@1}sPTI,?)rhӈi) Tf5u5@HyHiiVj S  p +hP}ڲŇV͗JhEQ7ZFi(H(E8tZ(QKE%%/zJ1I@))@jڠ@ ֓ڔT6=( u?Zxw[z?ҁ6=kkuϡ +y~JSRjja֪Z@Fj3R7ziƚhQxq*x/ Veić%0kZ F?#\9*HUO(@oF~QREE1B!|UwZa@t(ZZm! &+2!X`qY*GlƸ<tS9Or)i{HZv(OV8g+OWSdh{1\:c#`"=ygrjO?95GAz?\ :lIҠnbASjF5@ jVQ5F 0ML5#S 0wU֩\}!0'9ӖsJrZEekL +b#X>`k^J*0)Qҭ]?Zx [JAsPH71lu^N:S:@QtUƎ@ȂTL#SP"& qUs#Z7+f5ZLM4imwV4C?E 6jTN3ъKsu6jN`0)ҐdIUڥ&HjvOY\k^wb9fL2s.n$${!rziE{t@zQ-I@iݩZjA$:ig GL!5vf 1qFᚷuDr6Y>sL )}'o3c)O4b*圓R#IժZ`zF)pjy`&)@OMBFP+8&wq$m֌ϭF0h5+)X&0 !jq[RGjWtN@iTAޤ%o oI>t F+a\ nE(ӭ^!ǭgjw)$:h<9shFsVAb6k6g733Vo'Pionv$BS-ۯj>gj3!Gii%<>^/. OZ9fڀs7I{i\mqutb›PgT:זJ#C sԌNM9@4<~ *dTr#(KX$XPۭ70lcg8͞khɜ 3{(1W5[ >R7C y]ZBG53IFi7&dkgMBu }+qg閻#G't3GJ`Yn3VG*&`++Sb=ۿ2o,s\v],8*Y. ',z +glsw>Yi zm j!ojt0aFjҦ)\db1JR AZ.+U”lµm)T6+Vij"3gPU(=e=3LǵiQt°-gr(b()iu4RRQQ@ E;bQK\RRS)EP(F)QފZ))i)QE())h@(RQ@ J 6SE%-fJ3E%IE J(!4R4S–Z@#p$Բ}T qL 5ij'U@p)š)˜(=ڀ.Fxq*GLEui:ʑEJqC8觃LQ)h@iy@J ))hQ@ EJLњ\M%&hM% %Pi  E4@!Hj6@39*a*lK9Q1IED>Ml{q))8NR +y +!&Bh9J`hg5[mdSBdij4KE%J(KLQ@%(/J=w嗎6?\OB螴 Ӹ\݉{ZaRu!i4J + 8$iL40M8M2OMP-Xq)š)b(XzՏJƇcM|PZ[4)J\QӚAҔtK@I(4iQLAIEHSJUnNj +QҖ8yIޞƘEI&G$}jZ fxJ5Cm/]e(m$v*ifwST`16Rii !7%WB= h YZV?|RK@/i5JD#8~ȠW-~BZ}MPCʃV P&EHE0\R5iLqHE;sHdn0}`kg}Prz@V)b$ʞؤdɠEpCZ0) y2m55t=Tx@XKmY'Fiphd58sUԑ֤W qF)N7b)( &)hQE(`%RPњJZ%Q@((QEaE%QE%-%3E))hSiM%g)(T>Z^-P%*?6=֘qzU((UF C8S8SAN4R-MJV""TATpij)w+>jW5T*4PS84f .hԽ&)hKJ3E44RPEZJ 1ǭ4MFO4[P1 cȪC"͚ tސ 1ԓ@JZ4^ԅ"$#odj,ss˷; }iNbŠ)Qޓ(AJ((E#0U,)U9=6r\v'H-+(any5i~8Ϩ֊R3F(qM#}!j&ګV53Hc 6i?jU!Uq@H)E J)-KQ[[43AR5FxցHzњv)zRNE( KIK@šii MJ3LҭEsw*{W/p=O0ӏ4 棌TD0۫Fk,IO|84UJ*@i iSOִGZ͏jkMh)PiZ`Zӿ޷c#x (.Wu\~u>]\0OOY~'1!Q@BъP)qL⒜W*&wJOhgI UIuI["17 Ug/>-ćڪ'M+S\#0U䕛>4h2J@%:#?%f(SGzly =qN@Gp +5۬uhTңn"GEowK7˴tV]Vz +Y%qΣ>PHըU!^`L\dJn7H]4^KNyH !@zԊvMgnOp(sެrj"*eTbzU+5/pz + +|l#}k1I27JQ^8QmX@Tmw/퇩 n=fL!?PlлoZڳzm( 4шPAU/)4 v#4 ܒkUPXS1Z:%БM0:.!K VMl@*ҜTSVJSaܼUVJ_42B)R:""ԤSJ"#M""E0""V!Z."%FV*eij%FV1XE00U!"jLP9 $JhʎEkLdWaS;9jZm"\RiI - m>DˆÕhQM(4uRii &k2 ֜ f]p3@?vKD|ğJV1ș 5 q:wZcqYn~ojJM\٢z:mnbPQKE%Q@RQE-QEQEQ@zgPcMEPs$N+MX枍zV)nDNWiqJ-lTbbrF*][ܙVfgK\2C)b0Pi0d*\G%&}BDU+絙Q&%Jg>sYNVq5ۗC3:4[UJۗ85(ҡԣ`3r*ۉ9YvM8hwX%qF:֫ʍupF2W[kH>UPE1VGC Nz&-@3L;u>jZ5zo52Ì3ieiڜ.jSTx +C&4TYE HiiZ@QFiPf(AE Z( +JSғ--6Z(Q@ŠJZ(J(QE04RQ@HhɩJdcI@CpP~bjrjVj.ruҩZJjAQH(œ))zԋQhU<2LE9њ)[i1k*DPj^-6p4њ~h6<vj0i2LҊfis@ +i -%%!RPi)M% +JZJ(4RPiiƣ=iQ`:Ӏi@FLRq Rj= )E4SE MtwaW4p494"0醘`7(cP$(8|#ۘb81j*~czft4%!&csQOzOU-UjF0CN4Hq>Yj?)[8RAJ(–RKQZ5ޭ[!'Qnu(>b;@@T E%@ ސZ(:v(iWޚM9i vcUuoZ=hz4P( #`ev'-or@RC['1H?'Yxnzr[tPǻhi0*5Qթ}R6{S 700/Z*TeUִ,zJze?i>ǥtrBj +*շޠ bTpU 4֘imRJZ(4 1Ԕձ?ڐpwTߟfʤ=h)ZqZwjhP7%_ɿ06,d&s*ICLt/ :T2;G`z> +tQv?ʘUg2WU <~0MRcR#L4L4S H@ 5VevUe?ZCQ@@ O^rNVMk*YaaZU(h V +S1`ZCށR}_aTX쑞Ge͜@ 5J_ZzR@išNXZrNq@'S1\%Wj2&HPyԚUt|D-L:|#@c:8֧?5 }@)zVL͘C+x{8^C6Q''5 \Njo wHGaTb9mkY}^H)dqC +: (qRi6,$ttST 1Y4$rzw&Ag#8ڨ1TpbYo7P{*p_Uw¦}/"a?CZD:0"29[‘Mk"#= r76R6F~ꃊ#񃑌Q(&\f壚vx; s:@ۖ7+yVViEnƏz(#;4Siiit 3E0p4RZ() -!aފJ(RGjLhbE(Z) RQ@Q@z( +()(=iMJ} Bd?)8=&?-GNjJ`(1Vb*@j5x +h +dc)BI\]SA~U #!SMϳ_A@͹U~cSQLBJRi(ZiJM%!TmNlL&#jv^!4Ojii ij8q@Rp$VQY1}ղЀ'"zډҒZZQE(\QF(th4b NrWd*AJL +)-gBx XTZ@9Z̪a%R'̐;Mg4SSE(iGEgu V\CZ^0-Z Iַc+1Mo ʎhGϥq3cqh:ָvjS'f5.[+jÒ=MB!!J*zt貟z^qIs[ETiuLր9VoatGȟE*/RbcG2ɷ +kgo1!@ Gڥ8z +b#~ :ΐR'CQ*C:,LY#=jwi#5vهt`qr8twsSP"\Uvy Y$/XTǭW JjC2(@ M/Ҧj' (:ZypvF?}*ӒrŏznUvZ=E.\7!Ո$@bSqTs-nq*Y-֐bLA'mg%ӽ0"oy{%fDk2W;8 b1ް52:Y%[r"*_"WT's.FGaֲova֦ù5ͤGRT6F0sST) -OkYᇵ2F)a5se *zIYE*N XJ)i)(((()hNV ЃX:uށA|rjK RfL?R\hx&\+U1Uc1?#PG1ށMus +~|IlNqTMJ.)ˑy5H͕jh榌ph(A!53)h3֊JZ`-MPԱ5[ZTkO 4Qx4x +`4i2j ,WNjhH +ZhQLN2Fi>fJZC@ ERRC@ii@A3l@ñR Vb͋@IơhAVaP?_51V,M-((`$NQMa8hB.9Ÿd]1, +`}k>]:S`ț=xL}+@in9X-F&4*ӊ20)fMBњJ:P旵4R}K6oe!k:f0&>D7T hI&M04L&hIA4hjHƢc@0ӚƐ 4N4Hb + V@LPš)ݩ$zlʋVަQJ~TMZ ؊>L +Z^(LR@@7PP:u>R) 8PwpvɪƬrUs0(x=s=1G")dՅ*ixURq +@RY}1-Hs]%@Pa"*JHL +U*u43R5DzSM:i֩jGF0jQT_6Ogq1\pWQȵ?B'(>V𪢬۟PcoTWVUkSOJsuM@w+'Q{߽kqYZoji:t*jO9v4))P)RNl6{U)5?5ˤ񡌤)1X:ӇJqP"4'5xKʟ\=:)\~ttX>"_63/ +ܐaQ-XJی-S5DԀh6Hzg4dvY,~c+ +ZJZC +u6PGR +`c`cZZ&+7jV4@0SM4P1r~$PI8gͺYGڀ"Rc" )O)%9irD@ )t +T ֧jC"z*&^ZXˏ^=-ȞPI;u ݽ4asj{ +z +܏ɪo֐wI9L̵Gnp$ѓEC*Ъj\OqIEu"p+ّ8ִwh]pWZ \jv$!@j+b[<T4q<S`G{<@4P!Jif٠S2:SåM84|sz #&nZC4,g KqtQF~^i1)!?N!=ִ§v G(s ?θ+\a9\() Q֦"04juܛPӠD[qU,\sW`*[qL +ӶqON@,MYn|P弸=)sRH1}*(eF +)ne`R5Rf6|+ wzUp1>3*^C$ 琟zˁ@W۱=Mf2HZ +:UHA@h-O>}=Ɍ(-@yr8<\!#&EOS@3LaZ +d7k@jZG"2b-2ˁTCT"Ls֭=d$2@͔ާYTYK@iJiSPG8Pf@a1ӃTtf&OW٥ EՒY3TUA%KCx5.jR>)if 0izJfӈTl=!"%0[)QSLV*4*%DUqXSqM4▒ `D}lQI2M9uCRUʦ{F)cJfZ5Ukp᱌(((Z) +&Y#. cP NLYN1tb9R%h5`6,Cwlfdu++R窞 pkBU\j6q޹ /^[&>rSnXj]yHaM͟Zb_coܞ:Kd+G}Qg5)%8Tc#KfME\F3*u0\޸5v?@8/.i?#נfX4iњJ(J(SE8Sh3H(4f4?4fJ(i J(4RE֥4@f342jNQHt(lVjެP Z oFO9Nյst?P__X ii⳱P10)udpb`jFnq7ݭQmdְ9'kpqQ*6n$5=.fA^:C/ݛ68CT"Bi>z(4߲\ǪM@O=V2ﭤu*F5aRԓKPLM<j;֕"4:{ t$ttO|-FtKV9W?M!T*'\&ɢdM55nPIީ-ڭ5}s.s @0ҒGR? +aqHbqa0HA Wzށp8Si€%VQYQ[/)~1TM@ =sEQJ))€PhRRkR)J:Rc@4wҭ%(LoJp>J@)(uۮHNzwaj*q@T~t1؏W~cm(v@f[,{ok88ߝWͽ274lg s@Kun)mvrPj3*pV6wR'e@gjU5I@FiiiiRO&?~ \DUZԇS?V?+÷gW% IV-@zP3?htvvF7MNjN +QH:Ӈ4J\qE' ڲl?Zr:#L Ճ@ Ji;A`=@9G56Jخ1>} +CH2zTjDAjt5tZۭ{]?u){Fmۆ]zh$@i +H P !j4L4L4/V!隰zUkϺWZCuZ_J( 1~CЙRm=",RSm+@v*Mmd%} x\+Uj~H}^)`͂{g.))(AOZ`/4K@ 4֩ 1Uuչju4 Q1j@A!%x jc?ZN}HUAi{YRR ?ՊϫT5.))E16Wya-*2Zދ\zP0R<>*Ē\ˉɮ\ֻƲP?jVNiӅcqR +oq@7QHΣsS ޣlW&E#x􉟓"= FǥkK;䤀К 2ҨojC2ɭCJ4D2w@|*@^~+Fk9& s[CFOvs^tKy``RjD)qJ`kکS]7sQF*'nz +.\"`n:1\v!sT zՙdxEY|u5 +rrjհ̛EҶȱ +j[2G@aA2NJ12ǽR-NMM1p*uu4@2\{ՈжFIUa9m>6$ PvL^x5:mWЌvWeji56="Ƞc=j3]cu w>@1W HcX4M,3CSs] 9-8T`N3J 0\@i<"uI*<6(A%zZjE َ֬a$1c 5J8⡎YP(K#ӃTtL Spim^Y*jz&rlTY1R6(m :E4E2ӈ4%BV !q*6J*&ک14R#ڲQU\QN+M@BgOI@X#&#3nC:j;0񪋱WԳE5]XpidQ@ E-QEdK)h1]./%d#c^p>gM4oR7CXKs o3MC0hCsXڸ_Hc+R7 +괻Oxze}S6E湿qFδ|O+B)dv@3l$TPJlrq֞yH[,LJ;ZyzVRLylaGjhaV'o-pV@6ӸeS,KܓQo"FcAcHV]FXSW< y` pmR[h,*r[=?ZhMHn ~b8ulñ?ҥb˘-VAEPv5`ews^xn+8>[ ~Q5t\&J1FR2")mQ0E%;H;!P2MO8<%斀 -0\((QE(( +( +JZ(QEvQNEP"H@8S@9iKH)hhR q\ZC9J)r)w\1h4BE&hE-&h0 +))h%&h +)(@&hlilh6pee'Jj(H7gaV8TcV.y +Ҥ)E--%--Vևe'汫_BY!U]5dUi5Bhi)L(ҔRBLSZp@ $?5ePzVBYv|" hlZq3뚎 +X=ee ߝE֔ +`Y[Υz@Pvk03 5Jj~UyX Ao~y>جXw/>H0GC"x:f҆ ?Z,ohvN@5FO + ):j:o,9 ؗLzxb#]in梒p(\e<T['`"mQjY}YqӳЀ1ԇ)E%( u%-J)h0 +J(=)2iOZAր)Ԕ@ @4@'VSV}J\ )9<֤yD0+KSPr*U&~2\lk I ]Y4>e<7֙n|~e NtnsmQP]E2# V]rFkvx ><`f9Z^U?uqk,,dS +ejbrAiZ媓 +y[HϿpjw5!ځ4NBN V6*Vab +f Bi<LgojoHM`66LmId,k\%qӚdyA'#s֘ ^nN-֥scMXw< +gBӚojV֖mIbkN!Rbj1NZI#$өN=h= 8i9z3J@ZP)OAj(3qW6Hx)r0o<+k"nv[sN=(:3rݍA_fnY0A渨c+nAD9$ՈdM1Nj5ibw>})OSABǹ5M=*CdL}j SV.[lx{MP ێ{P\$EGR!M- +q= ! 2zYMXptP QZؼ켚ظ$/a@'vRpqWn!c MJgZֱQ>YM}8608I\0ƶr֢=SdPUgXb&E1L њƷ(U GJӎ)Fc04>v@N) 4j is@ZPؠ ?dԫ.(n;zH+ fijw>e'R9bњv4P 853 CS@Je!Z /5*KJùfhpiÚCE&)bIyPE:i)E&JaZ B⚐*75;-0Uɱh)5@)4h+jHJɱ>h uL4_VX$t5C@2;6Fz|M$u^78t3HN@0) ia]؎j̦ÀK kj?<N+f ط)*b.2kV=.K*}jH[e&iw98 ȇ +KvW҂sU^ML% +V0FH[ެ+:oƺyhP{UeV$mC:.dXзKRZ7@gtِ\ U^O7J ¬X=*|g&G5gO9֩=i)OZP3VdE4$sQGx5J̜P+#^qL xgQLV}*f/+#K)o3L""JsF+n"jaHڤQ0MFh +aS+5zer P5% w\8=hN e=WzuKIE;4SiE8QH(3EQEZJ(4Q@Q@ KE%%.h48T03QƼTq@ + AUlFUs4iE P- @'YSU!<եLxS))Zj1R-'JZiizT:yUc?!?5*!3JE!PԋQSS` +)@4@jj){ +ANih6Ws*ǵ576{1#ϿǬGfm9))E%ZJ(PqE:qKE +C!HsQJ\c>z8M@ʑ;NiZuژM8}Mn45J -AgW:(L5aހ,Zh4ޖHM h^jL -4R< +h45%}ZGՃU4GiIN4@ +:Ӗڜ(\KcX떮u&NZ&zbGސ+[˟]- +Ʒ+! EtaGD;~2H{)I4rPhZSҀJ)0M=)ʮu  +xm?ԋepNxNO[H}K#*HU;亪UK? ;p^+y:$Ȑ`;ˌ)~/Fˀֶ) 8[A\Zykܞ3H)Bū4|H3]/8y?r6%Ņ/;aWr!U~Dc*⨒t +GҩGךʢn}ޕr*hH T"DU Uw2z +&E@#nҀy&UR\|ɦΛG-D53*%A*<v⳧9SV_ 4X{֚V} UjӳPN1R WZu]ȘoQYSڳIhӽo<`rj&ˈV3sk0@̴ 949#xZ7# R.i$PPTpF\zUrhuzp .iXlT! tz.X5JPЕM;8ާKz]5Z8=њff4iA K%J{ ا4;@zԙ=dJfDi aZLbIH@FVH2Ӹ-[eYjEr)"M+N؇4Jjp4jN N$854wn{UKw%J;>6+G-TT1Ώpj-N; ]ܹڴ_ A&;bMosթpۅDybLwF@TBLſ +]A2+գ_~zllu'If.5A1>5 }*+Sy5k6|f "  |GLecd[e]á=떺ԮnbĞUNIXֹׯ%o'BK$U&jnQ#H&ئ)ԡmd8@ KMNkll5ayAU~K$_UT2d5I=&+Km.dzW- yj\2OQ޵) tQX_5tLAObT3 ߊ2{)sN Q@ HiHR–\Zi[0 4?ΚhnMR4N&hDWZ&YzW5?mJNt4|3ij3Y ' 9mzEp| 7棷"7~jT>]*Ph()OZJu%R^1q{nĨ}{MNk3KmR0X>$=J )Hi +u4S9~q2܏Wl-\T3\zo@œF)Hd0+! 3V/!)YE:GjUwB!aɨޥj2j3O4Ƥmޣ5#Tf#4jFQaP^ORRNRP:@@)EZ[qְFaF*r´07Zm&D4SӶ@Pd/җ6= K"y{U<Á@! s@sN1jAL)OJNPi:yxYZVz@WzgX?7UZgMLvLF\xcl@uiNSތ@Zm( taLNIV-l%*j ӽk +rX1ŧG(_ ^ Tϲ!nI( ]ϏJ;S.l>hsK`FP +qi@ ɧ% ךjB)Rtc^1횧hds 'J:4"hhbCO!ukqO5ז4g\=P|ug5+K@luImˣdq޹r檧C@ +endstream endobj 615 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(Ӑ)i(uEq;J8fWV0Ux>=ְ{ bR̠JC]OtfuM@CpZnL9o}[G݄yY&4i۬[4EGGa *isYM&n>\~+toiv 'y54g6YV@U0=A OªOu+S;,4]?w +[V袁\Z))hsL(R `zSw3.|?.1Yrx^ٝ;j2Dr(,EkOᛨ ޮ5$2D$RT5bEzJ*F\IMmWMy@AkV kð'Rd;&OL(c4bzvH~i@Ge$@+KL1 t^I2ēҫ0Q)F#U6VAufbIɮyH#JdfqҥI:R \5xo4qɕ?([r#B@@DRz=U9<Kat,c4&tG.|?ܶ|xcmd_i>n)H񪰮s^RjȻn4>Fz +xg~hw2>DUlp  t*3; + KE&ry.-m1S;,ךfQ'S*`c5P w9!^[4eW2U]E2HdjQJù(IڻOޕ]21ɻڀ.*3ŜHYNH1E8F(S۟E׋Θ;M4:qq'W k$@ --Y[ _ q׀ie5°P^Zu<֐>il#ai#LF A ƨiK'5.gU |gЉ䎩0֔zM6$Tp­UnO&dV{}J>"ڝTʯۃ+:<]&ChK{S WIsJ`cA *ޫ>0#(`]=u~ʃgʼ^4dlK|>.-ܚh0I #ޑ$glo[f/b*decִ*ʿ1#Z%RsQ6QT)GI^-90W+m;%$?)SޗG # hk?o75ρ$2#(~.*-0-ݿƙoHY@Ψh5{'5OP^܇x϶+Lkb@2J(^*CL"@hsm v4,Ju5:S6XQEQEQE%-QKEQI@ EPRE%PEPEPEPRE%PQEQEQEW]Sl?J6+ҜezW5Ht[tw +ŔsV*G֣;(%@)THiFGvjcޠUG0NG'R¹_ KֺYѮNMYU.5Ozg7SIb:k=iݪ h1%JGY$5]4P9xZxt$iԆ8x~*ӳ@TQZ%8u IHM&iq8S('P)4M 4%%ZLPI#SH? +QiqJ,Kڢ O@ +ia0j\SH1MpiPOQL҃L<p4ibژ GPh@iGPhL晚PhElT.*iArSre&"jp5jE4J 8PhqJ (5qN4(4CiӃPF`hA<\ٙ#g{W|!fq>"$tCn;u֝$s r+;uسrdhk~ossD:R9 pA̞k_\3.Tʙ$VE%0:-K$;&TlTL` ƪ9 +WY,+m\e4&$*S}]R~λO [ M5 5.8p}rskoVGpuڣ5 ziוAY+җs3 dd"HF+BvY13HD J El-Վjz-,NSRTIBA V<pտeتܮjVkاZ( +CN!Z?h7.X\N%.@/NjB -Mi jhFjt,ש!k[ҸCjNGxRƻrk +oQ(h@QK@ KEQEQ֊`ȍ 89=jjDN}گ{|4=_sW/y7+9MIute'\fV"2Ɠ5bgU$q*粊=5t_58"oCEM%WAPSX 5MUmH\iŏsX&P"Ej\M,ӗ&+$=4ni3AC&i3@ ExơB2ԂV3T{yn,Rׯd6En{N"66 \ +pt}CL#|P3\ՠˏ:flCE4z)}Е#:3*ApT@7?Jo'ӽ458FsW܄fzӸ5Vlګ]v !T2jŷ=x5Umֳl s㑘-s"mlݿdtdoxdQ+w@`֥~'?N_ACs#zoxTĺa'֡kCڰu&Hۣ.+ѻ#uSLcE6 V%d=1U)hX ǭtVߍ`CV6BDF N¡~h }G5S<՛Lzl,#cVhȧo$#RjcCwqWMZaynrj0JV0FܚۿdoGhF{ҸX{<]g̰M͔b54yֱ&Qn4Ôm|ac04M$V + S#gхy!9bXNbjDZZ{ٷ/vqɱT6>mXc˝2{"\Z^Vg >5M$vl;}+42yn[wV~e?3gU 'J x҄ OZ68 Y[^^?n+3 uaVͰOE(*EfRƉ)9ikDJZC +((( +( +( +( +(Z(((Z))h(((Z(Z(+nYdQوkӫur=%ojQ-¹?(E1q ̮23"<;hn- +F77z +6HRE hތWM\6p7PTw8֤+uꦚ@nm?Zs?f?ε{++ă$B j_? ?!Hksӛm=SעW۝1pAk)=Ţ%-RPQP\kyU=#0Q S\ߊm_!ssWm)P V/޸?MJ]NK)TaWu4bi M' ej JHPA=}A1t5[o򮾹  Z`) J)h(v+ +( +ZJ(h(@FܠK@ THV~яV[}Ԡ8e;8MZm+? +=~Փj'ʰ>Pv774lV6Us+?WDɇ;qW3M2i#&`L +&"EM1fe U.%-v& f4 rNLHQnx3ML .p4(lT_48jpnjx4.i3NNg4%-NS@ ֗QIJ:S(('zLqF)ԄPq@RJ R@z`q@ E 4SvԘDWSQO q@ 0sJ))4vi)h٧Q҃@Fi٦!٧Qp& Z\u)(5 =\Uq Rj"@j@xCSJx4i,`5Qm[hmAپz͉PT恜 s\L$`gVb%S*5u`iI Gah. a])B 2T}+"lh,(`p{D7ڽ ,3J[ޙ@^<rv>>C%T}N(Bا0IXVmg!1Jpx#^eS :S?x} u< +@kE@ frivtw-GmvM)cvv|1)LoO2FU7JC<=B 8Gmlg?S0Awʣ +AkK4l,橭ncԳ6鵺zW օ@Y^I(XԹ'FA@>ъ靰D@<[Otg-aS,q" =TfZ11*6OJA_j$*MFQ*xep"7\W iC*ujs':* +mѪv{-?ZQY-R沯}Zv7aŏRs@&iM6J;cc*$1Q3*;?ۈt8f' +ڨ 0@??\TԎwQE%1-%-Q@'Sku2co- +Yz*Fw+ˮy[l[]K#ɂ lԸu#8GmmTrH\ד8" 2Ok]Gi.>.hKJJ.O4.I'5M޲Q5K`Ve'֦QmS6SV%",z +44P=۹5a}Y2*M*.?RjiNi+spIMb WTiCnqB}h]\8-[+,ycސZ]@aXltL'1nk9Zf۝+C2/[Vh5?ըp}Jk`E4߃SE :_kHd-85lϧB4'6PcTpIYK#kdƘ+j$^}U5ڗIjGAoEǙW9W1ak'?#=)E 9; J,xݔU=qow}.Y>E?QC9S,OB$24s."n9uJ)oV+-&s+ Y-³n|?gq>>dyFzۏ ./zW,&Kށ!<A%`zzҏZb5P_5e.n)tqXD=uW'nhS Sa$l1^5x/8N=5 j6kBYK jX5,[^EQE +((()h(()h((Z( +( +JZ()hZ((((+5Ʃv?ֽ-}?stRA4R:/ +^|G@~B2E(+ ţ%IG5X+\t4H)xLHHӥO+!k3 Eꆲ7iC@8(C^1_@kЅpyT Lњɗ|GfRv*6NԬ+M⫗P~uBmjpwN@X.w7̊}3f\xC۶kys1&׭;w[sXs\+1w'>i֐R8&p4[ݤ!HֻaӤ{*Cv)++RCM jDaR0+GG9qfr$fvڑ=c\]wl}%_] QKE!Q@ E- +Z9((ZJZJZZJZ@8CU{nzPƌ?Z +SķF\m?D}y^0y0ƹ#;60MS 1X%(p3Ԛ:M3 `w=9I[f+BȋsoҡӭY<8P{lJ!,"=Q*J V1y( +@4pNM@-J(ԄQPs@Ģ4iڀp5iA札Lu qO Z@APf @Fh4Ҋx4-6 EPE-%/JC-q@4bE'J\u)AP J : ;R&LE4@E&*VZaeRSE.i(@8fhH 8i 4`"@iA@"lU\њb4\٬) ٪ " LDsNVדPʙR XiuK!QȬuky~꜏z.܌EdVC,6 qv)㠮JӤY"r2q]wX 9+ ӑ@ ztb|`W5v3G`j=98peg(|S]@bk:{wZ@_m֔ O +qk%2:A({ V F 4hԦ?*6}@;^O})X|.ɪ_,OkmVX=i2Hi#*G\[_J!4f[ryj@8HُaQ@3M91?V{P2DMaX`~czu% [4u:S&ҍ\Fij'&iҀ z(շҊX`mҦsQC)Ҝ :UGH )A+CIZeC\YGn8 x R-8*+QMM"+<|l$TO9-Wx *2sZX棖=ˑր1;p3#R +\R`:W?Ai iRT@F*bc~8]-\]Q`:89˔>Ue%S%HdM>%V%iX g;emc<3YdJLΠ֘Q< 2 +9@sOzѼ"$dƴ!x}jPwq\68o Tia61"?#Рq\[6OJ+xخĿ$=j枛 if+#V6k:R+JX胃ӫ.qVc[jJ*_zՄ6)E(@ GzJ\ pG\P(^{+iB +YJJV(&w1dAXuBP+@pyATZv zMΕer',64 *ض媄6NQh9z "9 #{k^ Paq zkOeLJ5{ܧ5#}AtcĠ(U26]b7G,+̆Tƌy4kT ӏQ+"ƽfqٴ^F^Oקx`a?yxFJuO~'hu}?t:4>F1M`nS Y28ânA EjhP8.d?t{⁲xeBvlMaj#ad:!Z?\^KkQI'.sXSIhX)qPi})=sUQp*xF 0-JƋ)ՉQE%(((((JZ(((((J(h(JZ((#_'?޸ ?E?Қ5<(قz0?κ +<&pnFz?κ:@eݢOT7+D`E[|õ +A49_$\|먮GgG󮺆BKM_XUwJGHgBv:ːO&$"/&kR3ځJ)E@+)G7V 3=Xq4$o+m a]}LLp+vv +9q^pҁ +{Vlg +ע }kJ\YWf$2ƝrP0ne{\ tqRƛOg H{tXCѶ5KnM5ɂ/@dGjE3ME+gC-ğ})ãP`(r77-s!v'>~ngڹ8{M0XIZ'bysMwgtng |Zq۰*1wlx ̓4_- ҙ +GC~Jy:κӋDxw/,Xj-W$\K˳ 4 * 4_I?Z@4fJZ\RvZCҒMUaT$-V$ 1@2 V'p5VA0b LҊ` :AFL?\:9Z T4N)sUyT*Ӆ5f0jjBRg^#dM UԁeiYbkM!Wv/m 8X&;~\ӉIi":Ԩ9"}+8،4Ĺz~F P=ңa8aQBtSZTbQEjdQE py_i׭08 }J;ب#5$3`n(tHbx9\QOަC 1CSS'R7+-4LY H42vz-@=W'4P< +YP%{SM'B\foo +hiX,UY>ՁsDcMQ=LfcnZKTtȕgK80TUy5qqXusY!'5ܒj2k6Z@M!4J@hhb05)(j뜚ˊZuXR]Gr=*O/#IaEYsQ`"Y*-B*H%O05FqXq޳d{yV|Lu6*lQSt(RyJMR +P!qS]MCS@{`l}U@f[S&P㧔?Čp(;.) RRmm)@XTjàZD⢚ r&N+vM=jsiFX^yqڣ0bZY'EIOPA°H3ǭW]/sT`Vl{9cEbg"5EF\b4݈8E;⁜~?SUS*V`>Veo/fZf 984жR;[j- 7EAɕ?p<'lBUXZJA*hF*6_:  +h6½>H@^ ge#YtN71,Gq]&́oqNRz;]Zhݤ\#lHeMiZV)Ӡ7Zӣm@ 0c\ݽZ?U9 B$X3zuF6h;:};9# m^xWP jR1 UV%%Sf=84*3"1БҶmn,IOT5ۻL'ʀ~2"]1=]2ZW=|@"41I`Re[ʥۻWRitds `l1vNqW'kJc{nd@w˵H@ ٿk9mܶZekKpɜҸX-2=v殕HJuCl!H)\RQHbQE-Q@Š((((JZ((JZ(((RRf`:Z@- (JZ(?c&!vxvۿ'2y#vB#]u AE-J]3WT<ߪH>L|S +|Of+-5TZ) 8,rL6sGmŽ0k.,hdvXqNiNrDxVBq}oBrjSNh:cB7QO^-ȲmIRp}򢎵 +z}Jrh??G$WSkE*a4h uHŢ()h9Z)+ +)i(h(ZJZZJ(}-`ɟJi8dV5)&>>#T5³MTޢR{cD9&Ž>i94p+&P\>5ߚO,`Y)/lgVC'*I$z SPxbJLQZ@%Ju%ZJ)4i:Q-(҃M.hӁF .h`SӁ,f5jPhPi~i٠ +viњvisM4PiRfP)hqE)@ (KILxjp5iA F (4 4Zc%MIV\TTEy(bKIE0\iAAON8Zhրa94x!٥K@TGz 9^ &jU&JZR$L;\m}B`_FxW8 č*(^Y$$=@iQyX8cs)nkiEk +`957n}rE!Pr0 ]Y/[P7ar:y@,PzM^sZVӞ\'V!#sS@2s*wc[7s*p1²R3${}ԦG*:/F:1) +ɭH8AM7HIfc\zԦhSRizDk\ǀ*5 =6GF̸Tɮ* zkZ\TJrǭ;ӳIL\Nmj9()=ɦ.h7H sؚ'ԕ;E8`/S@TK6ld5dP{Pi)&E%-]i1ޠjA֡j@Bj',*'VMnOLU7vU%-PNS6E,POiIHdeoF{m8W9Lpz5عp|Bsި¤ʤ0ac8^X2$TyK(2i p9XgjC;y# $C:2,#jbTTw.VH׸4oz{S Մ@T!^M6iB +:tr拀W9ELCښMKe&i4p@*W"|*qR@4efa02 +jE< +1Lb:SZޚ)_1KQ15xtqOl3<4NVm;RJùX0[+M)JrJiJRRri\U) tX.U"ϵ/Ov˟j,;ܑ⁋c=9뛫byOMRPfLPV\!i1O'G%!h>P: +mRM.@2U1sOV Mm*uZf8"*JA( +,;_;I\W#--X#,OU5Z BS05e@nP1uw^jIH uMZS+NcK_ԫ*7C\rȼsY鰟U[⫼39TE1&&T. +84cLJ0hx +٣zI$M)g ]4f'Eq(5Jm6): sZ͏c +#!+J_Oif6Ciynںր#!MЌWDַۿ9zz|clcGzж?NmUN8 d C[V+3(+ӇKm9;G5 $16iq@+Q5ݳyTd  1ĚhFA蠵\p|1>I$V/\`{)/z?hעZ* Q:}kBT SSM쮢ÏPϛi*cqQDIF_Z.2Z,Pj$r +g zx5ŴLs[%]Y1syW+Mk.3r?:[(IV^Vr1ӚF+Dek#FS *_]CY~5e4FY V,m-x +gfDH9#t6&Ѭ$l@>ՙq$yH>:ǿx.]H=q>Q705[QG([r>Ԯ S`4\IZ@-Q@ĥ +Z)( +(((((RP)Sii(1i)h(WCgٿuUxo)Ɗ;u8q6*P-QHzΓw\Uʫs&F<~ S8 +cf5'Fʻj%N ]S#d=6^W +a%tRL#=.ZGbO1ɢ(,[NIsdҐRzҊ1H`)ԀSP)E + N +.qV~5etk,ZeF+`xz;WWWXP#Fiƕ"~ty\,aR +{IL}#bݡ %銑9PUF +spF>aLC֬#zUaS1UȐحjm0C = ERRP=EWiQE(aEPKIK@Q@\v5\TȪ26PqdRn5\yEY,NMg&j)E|QV&Zz9u")~-TaoJ㵁bBpȜe]hpxs\q]A=sA4f3"JjZ3 gkKvRC)RTQ*G\Ve +E7f)I֜E ⒌@ƒIޖ:ҊJ(њJ@hRRҖ3@ PiNGp4 jp54SO @Ɂ5jp4xS;4J >34 +ZAZ(Z)bR4ShӁRx5 h|Qu!Zu&*"9DfR撥d@ &1F(ALE$ 0p5iA Ey4Y1PbKM`rdR~\Pj2hc0Mh\nl{+*фVD.NO@4ιz$ΪC.?5GӒ8r©Jۇ(eE[ Ȫzld|Ƶl'86b8&mg<(@[2\A rdp 6:tڋG{kj4ϕRM\mםJru^\a}88SE&) +L*F7PFQ'g#!Zс?nZw"\dI ʷ\z>;c +ּ`jqS/JB'VUpqO L "hTSHQڗ'ܪ1V_VzS5@i aJj3Hei͚hf\B( +JQHc&yFi)٠ T +`1U˚[|Ӹ+.)"M]"HN@"e"N@ot!=*YU0] l>aQ0pGzumK'Al$zWAv)U㑐kS +z"fͶj|̻_UW]; +(t=( u=g]\cNg!Rik">`RGzҙYXIݛ#$[pZP͘**I@񊑒NNAAޡIY@)I֤#qQ 5kN29 |y4'eI={ZK=8IG91·-Otѩ1RRԌJdʄn¤zNA(QERREP0WYFA*~;ee&lm`CE;]6SG'`Z^-ۜ2Hm +L+MT(€SxR0RRQZ +(F2+'oZPƛGKn c++-ȯE%a5ؼ\۵c*}c> csj1. TxB 1H bjNR("ZC@ E +Pi(hӅfp`P174PST]A pi`Pj.iEF ;4\gvh (IL IK@ E.);hQ@%-'z\EVa4`5.jJ@QMJ j7ZfJHj.jZ`2ޞE!3Iޒ GJ 0%`4vh4њ.iOjI`A+A4ZOMҀ+bS&((PH<;P1F)إG!8Q0럳c*W!=@?Ґi +ؤ0!M+S +0O*}hS uh4+ʦ:a즰Xw)4uJRhZ,pM[@5]֐}(Opjf:SYmd?CӊfG!Yoxgf|D껱,uMǞ))4أg4h<`@t4)(IiDUɠ^V$piR8XmDa5NM^KSQqԚ K.67QV_Z_0E[ eS ,2G⧇Q6p,ԥ]X&CiUQLhZn8nje# jw87  $V#VQl:DV^CJp# IAfQCL>>R.ܡR1h"oo}5&)@!1>be1SH i9ZmU$:05iѷDgKUxT8 U;Im~j+ǥQ'Zy%!ԌJQIK@ M6K@RAJ)(QEQEQE%-%-%-PIKERfRiQHi(Թf4?4N!-34iQHM i4fkŋCZ׬sb!jB78E^ol X[tLFQkڤtf6>Wj </aSR7jji9jz"iR +xQx4SLjm.i1&jE8Q\pzN`հVSjV 4N4HdmQ*VdP"SO--%Z  + :Phd3i|`=Pg|Bzʺ-,C *= FҝҔ$x5Ug`SsLC񚍖\4Fq4`_Y3R0CCHqA4- |̞Tsw7>OJiR@'=TR@MHiwb9*}k7w4RE!]YqV+YV`ƭl׭fjRʼ#Urd4Xnnm@5I4\,:GzDM!5# +))hQ@1JMO *`I7 ")iXS+}hHLAS !*`)*@)-.)@)J(h)S[kF>QDlGOPlRbzg%1.(&("ޛ׵&9 +_(ъv2h7dP€#X+F@}AZ0HeQ)uMIB9mH""HV"EDVtȫ2 Tl*j6P G5^AJ(?5"5v@X+U5AA bePc\ӴH^ RRT)4#7^+ <5]mժ!lrj>9>@Gj̎]O[~#"21W@$1U?Q#Ywg9\ү~;TpGZKi>+\votE63.#m[ryg( fl㒇TLsZUa_qRQdwH5xrM]X֨Lj6B̒U99$k#=kOF rZ,"M֣of3S֭K}:z *-gWo!T,R0v(=sV3[w\ꚡe1G'#=uZFIj8@# ֢Mɡ#Oc\<=imOl;'+AmGGQk;*P+fx441 +Z;AJ)(!(SsFhSsK@:JZQEQEQERP 4iM4fJ`Q@Z\ihԹњCi4&˟ȃZSW{LP3Ϡ'`Nʣy\ձ5b.31LE00)JE>PGn,Tnbp377%d>LyWAVvǙ0|Zy.y$7;cr> Zfz?5Pϭz\&PJدFӛ~lޱLh;'X5'3S|h1}lGQT%bz3E'z)RQ@ E%RRKIK@ J:iGZ@y AYua>TSV@\}E'nhz¶dd9]Ͼ+ߴ޴6ߍ2K'y<{8 +d(@;Ke`: +lه?=+fC +(9ZJ+((Z((ZJZ()i((QEQEQERQ@ E%--%PRBu(=}ڰgxW~@=yV1\#)Aj%#;np/ .+%%NY2GQ,lrCEJɊT6wzLRRC@RZJ NP1Ԕ(I0Te ˱攂I&+t۸䑣x`\EMp .+9& TLD&>sVc7 <µm"_y }^s-O-[U0MOAҵb\.)(;S4j74T-S5D M)k)ޜz@18R;bQpWV]ƹ֦84ܡ=#KW8[@Ҁ hCvPDY+J;ҧ +'gTSHFd;TĎw=aXn50t2I>;~uhkpy'itcyYwK@kQmFeq[)_C7ֵ+ibh:rGֵYVVC`?yոb$9]']ϲ%@̓|Xo-++وXWks]o #$#sEԟ+mr k/0e uv\"mj_1юej=݆uWz Qɭk0ma.ylj^ Ar~)f)*J5o5Mj4,=鈾ivz,dYV6eLi)jJ +( +(9(N0(()h)i(((()h(QEQEPREQE ч5}0$ QZIp׶rqYz*T5KEGjTc3d"VaȪmnCF)bbi1HbQE%.i3hBZJJ/J\RP!){PE/z\@f4҃@ 2x4j<҃@+Tj~4CSPF 8}(Z\ifQ@ E&iEњCIS4fF)Eө 4%.(EjZzY-@ @"E.i3@T+mSY2ojѻn #'i ȑÑRF76kr ^I59ˁVc*9af-"rثǁdrM\?*Ă#uC #۩O-HӂM3ڄp?FB*d#0hU0 z. &Ku8:ztFigg @Vޯ +b +}!'2IcI#yԚ|@l?Egi-c.⤯ ++zE1L a}܌Z4; )AZ@H <S :AJh֛\IEcTQ !n*&^40HiM41iƘ٠2> X Up4` +--%-IE#}]>'ASkoϘg>h  U#8ȩCUNUeqHd4斀 U/JM* \n*UfL!O51<Cȥ'M1^k֚@~REZ=EQD0N; +s:5=ɐiܗr@&M34HcF)=EP40$BiR:})UHUpҊJW^3Uf JøҧLAE(((CtzP'1EZ1jVY-'ozZ9J +=d=Rg\ǻ(a*=qXpTޟ"2)RS)( (;Rp4dH1M=LjU/U^ cRdZeDO}!R-DjU@FHomc:*ųn">jNi+ I +ZtڽúZ)bmuvP3*,@4GI`7LJ)=i^ %R]}j[^) ޫ,di҉v]6tp _k;.5]CyO5#iګQ#Cab?" Bi7Q\Ly_*ݻqIkLmA sG}mtIHj6qgtǽ-RD"9cT\c"( {@%!eQ`>^`D=fys72Lswp>򬋏\^O&\n&lz*sAAaGRPN$L5r{{uh+7 W= G g5\emiJei [IӤQz)WkK@ljN=c?Vb֎q'b:ZJ* +((z(ӌ(((ZJZJZ)(()i)h +( +)i(QEQEQEQEQE-#(a3E- 3#yPk Xr3TrBG5.)E#@Ɏ2۫`k @JYʶc@EfՋ#x1CHN*0Npi!hM4њJC@ Km--P3Mf 34٧LdӃT@Ӂ SṩPӳQ@NF ;43MIFhsA)43K@R`&yRSRO#iZ1Ai s58 =^f@M;wF\ ++sQPi4x5j7bMJ60UodTڛiҞ H,jC/ x-Z\+U3r1EMM2`ӭy$ LEȣڜsp , ޕupdb2WksֶUM>"~@vڤQޢ$His3;l\w4UyN>5* +E"ԂZ}(Ӆ8QAK@ GJ 0% p9@.iњ~y4 M.i qPNifM!ja 0AA''֧5 h`f\@^ѥu_m5B +d=?0;8j~i94BYIjupk?8$Rh5]&ȧ!"(T@r(5Yi!SOh"4sQ&H41^*6)s@G!/\RA]Ԉ5{c}) &Yk.}ihp)t@&<jqHCR:JbK@ E-6(iQE +ZJ(@%)4ZFRC@1epޫZ +jw 7ddh0Siu1HYpM,sK-+MV'EΣ\}:e?.{Y~!SY̤40Qʹ=I 9dZoXcZuN5wel3Ai*iAeznTK@jG:N5]Qp:X`7u0ʎpW($#J,Zw֫byN+K^jZA GA*5R=J7?wN3pqLɥwplqT$5=.,QFFΠw--fp;cm7dlr֝,~c ?NiQ˔9PH`i]-w\e2WƳyn: ~mSνr+ jU#'pzנlf-B63wJ!wsVMTҎ!{VD1)ɨxW'4"d^)V- n))٦f`>nh+IBi)%\њJ(٣4ZZZm- J)()QE%-PIE(((iGZm(@s|u˰ֺ +ik]V["q?tRRER~ɻW;]/y7\Ѡa]wt4\u~ ?_F[::ZJZ-$?e?rMwxg>O<+?/@ɦ֕ =y4٨ɢ)i))\v +Z) |QK9Q3aZV.H܂$[d:(专dv6p+VݭmP{ +cKkyɮEU 6ևZ( TD ~:WoqxנWA$\ӏ(?2xNGLtIUGjryƣn1e-%-ABRI@ EP=F)hӌJ( +( +Z(JZ((((((aKIK@QEQEQEQERR#"OjAfbG<dSh딜&kE93ՇC&xt+ hiZ3Q2&sJ]yw5{148CJM1})N!Q@T ֳWPx$c +f8ZE0E44(iRiKIA01/AH +týNgֳ@k%Ҟ 6XYJ,{mk4JGsR3ր'f\gu [ l +QU )U 3##,ʝO5$gZX$.2i%I'KHpM72=*Q* +V3&Ux)̸\|n"jmcLO\|xSHfg$rO40+[+HSV-0_Js5ekQ犅Ey¦I*=UՏ-RXd)Jn$c'ˎje]6FE1\x~W'( v1ޞ\!F &4M]$_Zpi nLS +:9)6)JEIv*#HZ'ޤ[SM/\Ƞg5I^*o*k&r+]~rF uQ)X-ۯsVƋЖ*:f)'g~2H@>{RfOI=S'Tu4:ΥAzթ54uPŋ{t'3dj!qZq.ky^UÏlAΣ@J$ 5-8Yh{o/ܕMAEkRB !3Hi3LQLњb((((h(`Q@ EQEQE(J((uu AZlM*du⑳j]X)i)RR3$֮RpI50x0ݯ뙮tDC3^ ?;rU칷a +ޜ9F(ݩ )I@E2FHP(4 +S@ ӺRӽ"pԄqM#oP.=k^<#LJֶnvBP1'7AqM<Iz(q;?;5O3Z]NB9D4{ Ipr(H8ۊ}>ssƩy(xJù$I'eJ9^[R*ay(tp wUFD"wS]_,*Azo\ +Asc"aNUIM*=E4qSm\xwb`w= R}2hXo`ES,Gd,e#SbίJγ8i 4Қi;hRցN4LPiq1Nn8@;qB)SjLR +B&mi*-_䰒A +/) + GPk%,qL繧[[dgUkV (N~f,[x.~nMXz,*b45z(R?N~剨-^I}ꥡ +߽vQIk;k=yEmjfZn()?:P=hSj}ʱzRبDye1&@ZCLPj*9TR( T+:t1m -tYzS?HܫZ-0@FGJúH! lӲ0W3޴icSL4-UnUmp0ցԺM$U66 +S5j+JE#I}wBu0n )[>xa޲yzVIc442d& PzҨ u9LjlvYv ?ueտhOFQ3I ]9h &EȼdwjCE݇VNFsVPB 2vZwfF# *BIʹtejw/Fo3O#Xɫ|W""aޝւ%=5z-~$Ez[G)r t82NjAXk&jVUhЊ\S(()RRъ`%%()(PEPEPEPEPEPފ(rY1i;u=U/m5({d@IJz@RΎA qàc:є¸[c0=kM]Ǭd* geKFj9wM"4 K Ҽ"J~5_8d@#qUz=g M6[8iCEc<` }hdK1n>?)aX(,Yc5h4zzM("qP aiqJ)@Toĩޥ|@S7]>uv7gkz q{ oio-uE˰ްYZec>kt3|9KXӢ-#nʧ&mGUʌZye5\TQK]g Q@Š(AEPEPREQEQERPEPE- JZ(((((()h)i)hQ@ Q +J>aϭ>fAl`"&h?{bOfg(\3-=Sڤz泦Qc(3T0qL"f +ڳjiiEhE-PFiPZ\Q@NGR 8S@O PN,UT@J Fp4h74V$b=E1?r&௵4:+Z/1;p$ʹ`:R(EZBl j@ j?p)YЯ˓@Ƙ@R(QR֐ +x)E'zQ@ #hXmԅ,yf䚉ϝT}֬d(ogPh8縬-E*9ɳgAQ[9S +QNKڀ(ӨisM +PisL-E%-Pފ I@ L)34gVi/Jp JJwlLe'ڒO3Y"9asNي O9"Pi S="JF)ZF=kFfbzm5l~Q@·NU)h5 \@:C]Xl<E!eE,ǁY-|4xn1Gqpe +bf".֩o,ٍ>[R2֜vG򌷩33`r{QbJwM@zGC~nycYi|rId_Q1:] cTt(ףG":J魭To1zUH'e\'}o-㘗(zZqq[\B{lƛQ0>pT#ՇjMEgK9-)@ vEuDv ɶ]pϊ헹b)vB)`RlG=xⓊSjb0) ?L 4;u8JGz4PfESIw-z|$ ?"xfZ]F&?ZA: pN@ȮQ&e<.0S jnbAh'7m;ƤWwPWa#}=qaS4u}M_PJp0i(F9pp_]@qkB/]GC)+Ėρ*2g7ܙs@ԯl%w$⸉mq$DkA9wF̯vk-,'քo˨]lxbBTC]u ))i((((((Z(9Oؓʩh+G|7Yz3cPw%94%-P_|?uEw$dMHz#P2J.Qy鰊*ͻ\)[a8&yX;Q@U8aKM,( 0vxsQ"#H Mº|%_r\zzY4,8*h7F'Wwc6[&Gr*G~;~U0/ۥkJ)4M@~4_fvdLZsm"ITAk!n5j:E篒ח3]ni^er+R!=昆 {i)1$RM<ȟ}FERR@']~_\HLA +aϩwmb* {9l2H(h]G(QE (QE +( +(%Q@Q@Q@Ţ(((((((((((h(IK@ 5ak:N%Ei)5qjNFEQiqkuw`JFֳ 3*FEn'"oԊ3(RbI dHRIIHҴ#E%%Q@-%JZZQM)A4 U4uf)Ad.hppiۨ}j%n)4fM@1NJ3L$ +#sVTDe'H;`%ag" LBMfL aNeƠ4͹⤊W#.;jWVXFchTmR sRsTtXD?s殏HSۑLG9s!Kj~&X^Kc6ǥAv6cX~hX_C}u`WiV##Y_\1_*QoT 4qTыQmn֩tQ`آ# +1eV3OJ|4j{UYtmg2,l@G T!cnQrq?oG$A@S[9DEt:k-F 2E5d~()h(J)h (.(;QQsgwm܉?t0M(oHZ嬎. 0=RWq P;w5o[ \¹[7:2(:p4rQ_uĄr< + +hyBqL7ZVZ Sʌv¶7Ұ +s^V3)J^ (Q|CxPhQ,v)Q޺m"]dw#&qi:fb` 4Q`4RP8SEHKE 5^jVvKUh- ,h~]V5$<wQvS,WS,qHU%`;4:Ka @ORL9?Hh Zv6RCm"j 7O[P#3T=To%3\Q +("TsLGEs EPE-%QE +( +( +(ZJ)i(-PEPEPEPEPEPEPE-%QE-QEQEQEQERQH؆Sxs֐r~N}5]I^sV%śÒzX89Qޥ2Ԛ8_U% J AǨy"*aұ $GLT%Nk^[pyNXHY4UFV.&(E%>f(#PQEJ(Rfhii ZZm--5hϽN =ZN @CSwsQ<KqQ(&jWOت6M1 cZEf皿 m`qZqpH뵳 HzOcqH sE @ KEQFhQ@ M/C{TaGQ(C4-0:RN94E#(h +u K@ IѳKHN($qZ>&Z:& i`*SL9-*{SIҗ0>NRIQڀ֊(4M4ȪSJ5M~\i1VxV^T(41N&MZ Z-(Rg4f;RPJ;ފ)i)AaIޖiSe +f)ij~)ojiȦ^AL^,-89

Mu ڂ+?P6=cǮOfPLE&):OFJE ϿHZ&(en^YJ 5cebaL +i`/4AiU^XG ɪ30@yk{NEpRr2Lմ9li:C9J`CVUr3R$``p.PGd_h~asߞ*El#u#sPIc(dWeҫzVmXPh"yKGZm%8JJ(JZ3IE;4KZ(f4Q@m\Ii A 5ۊlU94i*,-)GZ0SqϽ1P\ Lm=E*zۚVaڢ=hij2HVzT+֬:P"P8=(4Թ%Rdҫxr&hÓC+y!^s>$зzKh 4:`1P&N;T6a %QcTd}ڰ?0B+OOA%iMLzc@b.)8#֫ +#`d* j֐5)Ge-VZ4 aϦp+0e<}+#"tE901ށkJP•eF)!InSTVN_Z lqft?TR梆-@ĴMО t6 ek%coj7a߭sguҫnM兛ڠӋ0q8bmTxxۿ]ԤK?*T[jۆ@F;mRy~zD7+@V:yA)Xbg@W^a@*2i+Hw+VQs@\ 0.jY LN*_VA+ْ2ICMs*M1YuH %'~ ~TJ)9>R5":$E0hz@ fM4vp4,9KS `w@@4a5a/bӸXVu x5ϫR \G$q+ojOo#+^+#kBWKZa6O5P"'<z!P0&>=Mu~I.ܤg=2ۛIgVz]A SՎ`QNܩ5!>?Qj0#(J^u'^o +S[4DYo +)b5Yfg>m#7XuɧII5Ǎn,w3Z-k)6˴JV#ᕳ"z`[qwol3440'$(WQ|Q,ǁ\}<']HZ}G$qk]+l^O#ew/,{MQJXZ1E/jC*pSc4ɓyUL +Q(Y0(&4S9}tJQ@ IKHhsE4R0uBQNDE[8]fY 皉$qFYKSĻ 4Ob;4@é<JE">5*0*8M@8IcjN梙BV>\֬j8cTw*$P=2Gyl-]Y dBC)Z.a 4S!iA +ZhP!E- 4wSihhQ@ IڝIL )(IE-RPi 4Hii 0M4Lc@ƚaJm4֠t@]OSvIE +ZJZ))hZdpe@Zs׺$n:cȘ8`A5T4.;v*nZ)UIajܽȑI^:VRɊӖ߸RHY4QTg#.)R% vh1H@ 8e(撊LiM0C֒qI@8|Ӟ +',w8 81Yx5ACY_s)7tiƓBc5 Jb&M\sRiɭ4L#1Řڌ +l'oʺX¿%)Y>ρܑHiV obsA]yɆ$=Ȩf/F`bs?s&jwkWP/-h{=k%hsRqFHhRqH)Fh -՗=S4VO@O9K@!)N4qN;8p@⎇;Rua@w7VC%S6U/zط J'1qkA{(6;LE!&(bPڎRP1(▀M+qHz-ӚB(f5rJ>kVXZ^qO4@&9))LR;QڐA@KړRM/J=hPCpt4|Jv4p<qZCn Fz}ARQ@12k?a]Tzh8O]ƀ74g\cT9#WS@l +q R@4jL*6[DMa/ gO +}*!@Co?W޹~IZ\\!Ujֵƻq*z/+jX[6(l'()3B}0 +8m JՉHy[j }VP +I⤱*!OD4K1gf6{{RB 3L^T\u(3fK3=EuZ 0 [*Xps(cwcOVVkǡ3e ŀYWG(sz +HfY$*j)՚ cג}+M!HU)0MM@ uf"Fh㒼fTd9{i6PԀb3O +ȭ(S;LC|B6ʲf^֧k/%VSQmk#4wrEb h>ϨqE- K7HF< +$Y9^*S_ը>f ;gEN<#ֵ5ɸ@q}UFc̈́8$Ɓ GzC@fAғ4L& @c07_2ڀ4 h\ 7&dP’m\JkPV~aɦ";`q+(jrxƆGNC"/# ) ~]m'9']@"YErE-%0(QEQE +( +( +)i((((J(((((((((d44{ +r +u(Z(QEQEQERRʮdPa{>ܠVӱȭ J0 C$J+]Օdn\=w؎,I peS.&%i8 ](>( %-A8"4 3Q4`LNi1LV8G/N*OjDLOZbF_¤dx qT1X?;œyzFNXEK4 +i98NsHUƦG +SEjp8}L6hD`d4Gw@/5+BkƒV.6PzKNj7QցHC`f9D{T %j!FM25c~߳0H4ݒ +āV#9@6ջvcxw1sc8y3KgrRL(cDJ0”V)wou @Oa@ +p-!.iZAJ:P\sJ?4(IEZm-E +1E.hCN#4JCKC@ CHoz^i /ji4Q@ 4O44f5P"3H:ҵ7INM^ ixV[Guζ[ F2MVM%eU'w׊b4ޮ3Ƴͻz5AfJ8J7zfs(sNeǵ8`4<vj:\pq! [6㠈ȸolYڰV!{ +SBqALCM({}i(&u4("RҀ qG|P(%-'iOJC@ jN1\u +U??Z%S?|r_tV5ʏ QҢ&N(M){RR\P=(%Q@S@KM<TԯQ(U(QGKڀbot~a\Ҍ\??΁y5B1Z}€!5 Jj)OBN=ji:-Hi֘hi{?POyǕ +@Mޭ,DgV3*}i\U*!_ULճ+:Ɵ@3Y~)~xj@ E-% +rE<ոqH sNGHxո@74 %}9k ',A$ny\r\Bk=u,z5 |gs@[(^kn]< Ƚ9mcIcG81boLPlMӭ1\15k+KGU$w8"rM1 ֠oHbr <@,+ Zxq rF-b8~g1m+v3l?#\i8 +endstream endobj 614 0 obj <> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYP " + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?&)x9 5nS +p6LRrALd V}6j+@N}iO mԳշ`TvSmHo/zb-iK LOPU搵!"}*Ͷ&5R oZ`kYO5T71n٫7lZqϭ ,ڤ՝2ܯO?LՋQG3 ;TCu& T@ - +DS-2ǭR2\Al>M\vRQ3&v4|HLF&8/#2N$V7 HY"1njk}\Z_rB>Ԙي1LGCJ9E%-F{kXۨj0 %?3*5귓GғZ;ƥaNi*wm8YSɮvnIZְdFyMqʟk52?ZReS|@Ut⥔xgk/5kN??XTXS]CR>\%?ؾ1S1:#'Dn\b:)((* ʮU=[Ayxs]t?B>*IKHiGWBA'W^*J +jey'vBֹkP#›"L.y[>X)qJhuy+׮G q(¢^}_!XTν hZ()h)hRRii)iQIETȓ.]Kdo+NsR e;n^sJHVdsj {SHM=IJ}Gi(1z^ԙ7MS6zv,)eRQL VPU"Y~̟0bspޣA.yMqѷ5ܼ' QIKRPRPE-"?!\CJuOЅ`GGҩ5)3?VG_x5O}VG1rhuWG^-4ya~ +qJnXcUϩ[Uf!1 +c.v=M1጑d=U>+)JB87SRIl08"ʫjɱ_mc[SG1e] ;]^equD3Hf uC3w$\%u"E`,\ފVܶx |I(ќ +h4(QEQEQEPQKEQEQEQEQE))hR@ EPEPEPEPEPKEQE(QR$dFXSZqRU~Q<V|朤)H:PRE (()h +( +( +( +( +( +(JZ(((F2Vm w6ji߭WcS5r03L d`TX|WhF*͚as@ *jiW`9xo +i#j>{E$8 +u Dy5Q(K.v1GTw>j̘\ +ڼ`S,í5sVlhfemjs55ԀsPGDCQ[PM6gZmɦ};#)64(Wk,Yjc֡Np(.D{|!cڨ3y{Z|x*TUylu!rp+F|Or3YMn{Slp-@)$p9yw#"i։=HA-+5&tkr+mc :;zf EqNkMa\!Icq \s== He$zbUTw=(Xӵmq8q]u1嵷.Z eWcZci曊Mث6G6DZ5Nc8j0ȇP~~iORkj0zUlj1h W,3RZ;΍d@r -b]y#\3ɮOV1<cCA}ji+]fi-H'3ޣ!vo\lJd bqXM1e4TQHs#"pTT*bgg{hAOn?2ZսX5v.T[J?Gkmx<~EfhJTqqU'c%GJ 4Ƨa kg /C; +J((* ժ*4簟 +/cqq}} +#hIV2L}ޤ A^{l@C;?wFQ9k[VE$8v)Q'u4| kܑ?OU4Qe[[PnOV@JJZJ`QE- E%Wr3@ d +ϼ#1Ub}+YBI've˽JYgfM4JbJR ) 41C"R=.{s]VlR*6lºkk8޵`(Qp%Q@ EPQKEP;O.+Lc?ʹv'7z4F^//yɤ˽(; Tֈzz^H^X*{>.*bQ%eI7H6ҩT~Z`w -P.>ѧ{ +PPQERP oA3P}[L+!Bf?+'֋kcCαcƭ #B4uៗR\3U[&%sH8BYdC+K6ٝ#.3›jmɿZ|ֺMrC*JHF=2EwYjeb$CTX~ҳ@#tQq-vb Xj1hcWBo.d^?PcqgZf%}QLWIHM +@9LRO'&LnFrqO7MQ&1?c]P kREUV[EK[ěSرy?zej> WmCzkNa3Klg1ZcZǭ4&U%4uΔE4~hN-RQKE(()h((((aESQE(JZ(IKE%-PQKE%-PEPER={+HUkT=Yix*K +( +(( +(((((((((((w6*v&*e隙$.IjC@>.Uv +vޢ3q4 +h" *%݊`\qkm"8Wig)QE()h(((PEPEPES()hJZJ((A@QEQEQE +( +()(hE +(A&@"I+q]nHdrGjƦ*m#i$3rSorOSVon7AYrkB79ed>q3v Hdgs]]Iz>%@.):4@ <{[f%9#ߵ 853YAB +RW#ej%GbLwE((!((hzkTh ~6V< e{9I$nK'7hQ,Uy܂&A6 >P*XXS0*d`E*APEP +etamrHNjBlmvVdX\WSaw~^ٮGD?4vH=q]4fδ1"s.KMnxtwVֹq<Est59yɨCqY6]k*hg@5 ?1" 3W-~K[<VV]t't]Ӡ9*K~{US&q]EOZ$SEu93ֵ3-F~jTZJ# j}UbH׊}VqYBp@RcʱH>z@MjZTiIژgz-+jxwb,* 5[Q]q2Ev~tsd rvw9FHrqp@W@ě-w^5h~y {OG3Wt[ok69?ʨW#ҺZn_0;s֒IH)h(NӨh@XU[B+U<ޕ^3}= ׺+Q޹$|>Yf'&&Y4޴SHjƓ,FzZ64O֐(C גls{ +t;O0Uen*:Z ``R+b-@E֧(JZ(J)hRd+˵+Ci}4÷^\W- wq]e]oI4yi _h泫GD2UeU-uDM:34&hI\d}k2s ;앃(a#") (?B_Vm4uj?%sO1q*d|`?moO4uPY}LCd%¹=2Cn~W{kIGQ Ԙ&rI~$W3hBĤU^gS 4&$ =W[a]) +۞;X-c`X2kSyx?J#2#IwV\klު]+N{W=R#D3GLr'~xI@4N^qޓK >#NF3"P[0U|ѪݯSasb/uaVYPĚ`(NL">SlS{n5 傎j@]qd;CR!n[S TL(3278Oŵ+ҡinBkM !r9*@ȫ \>e,e+oNjЏE/˕{\.vl~YF1HdiD 4њmWJùqZV*KE&XHE5Zi a*R)R)*b)() +HDSN "ELE0;&1)UV!䡁Ul:($(()h1{? H;vOpZ, w9iN$7<|.S J8?"I--^ +^\](rsV^ ˌѵb pC&ڗ} [(QU#@:tL帔QEYQKE%QE-%Q@Q@Q@-PIKE%QE(J)h((J)i(J)hBQEQE-%Q@ IKI@ EPKIE!FeW.cgd/n`;TM]fbH]:; Kkiq}"dcW5sGirqu"t+[N-Md1,!J9 ~usj + IQ@((GEEDrGU'a5s}Ot[ +A垡51e ms9CQU,om;[ʳ1)h +$FA\g&#ҁsiƚkN[ =jX0usHdb>WbO^drŽ+˫%b}9&\{)֠tfi=h4sSqon>[Zϫ4K.[uzQ ҆]G<ҘJ}^$mB݆jƵo_^ds3YcpyRKĖXXv}$c\B!\^0~а湍~dPD1sVe+ZaW..Vn$8kDCHii 1 N^ڒ4/1RMB&='4VdlRXώO׵߅ai1T$V +L  ?6ok Lްtn5@mBrb! 8c5ds#~) E-%Q!EPEPIKE!)N((RE +(Q@((Z%-PEPEP!( E-%QER@ E-RH((VBVUkKSx--TQEQE%PQKEQEQE%-%-QEQE%-%-%PEPEPRI@-QE6)GzBئH*}*mݪi!iJ`9'4u1B"Z7Wf%QRri 0́֯@c&# +Q + ;P^B!?S7H=*@\ɸ: +k͚p=2zV>J-\GjLT#im͚\LB7-҅vB=j%L#V-bgbM;rXSZ'gڮUj~^i7HqH͟zq@z֎BGe.d#-BjRV6 +`:%nzjϲ3mlaϥEu&PDK|͵0^@=soVEM<) -vn*H6sSsUi41`aa#?xuWJ߲; RC< +w{{"CFCdzwxTMDS=%a޹=WA_Ϸ,c MjPkмZ*$ ;5"Jee# sE74ԴzZ**TV44`EBR(B*2*n()TSRM"""G51 *r)S򚝖eL#ԠU^kX˹رE5XuYQE)i){#Vm}- &-i>n54+{ӕo8G +۪Y{U.Jÿe rkө'aֶ5Ug=Q*Z68V=@z5*tQ*( (((Q@Q@P(()i)h)h EP (((QE())hJZ(((@-'lQ@CEKq1jbEXۏX7k~(>lB)i)E +1KI@_Q⨃кR('i0Fi1Te5QXBab)#Sj&܌A5E@pHlRkE6qLu!Z-oq%=+!EaOb_]CHZJZJGeE,(jVK0'Ҩ^jAXwZ,+7͐ +ɒvsL,M4 +bu +\RP1(- RMg +9-Q<|lJOllZJd:Hv3-l%pXCShҵGZPEE€:Z%-QE%Q@ EPREQE%-%-%Q@-PQKEq^6uҎ$]?ϵrƽ#vmP>xǘQyjE M]SU5V׵4&\'xҭ>ۨ<2ZNX؂?2KTmOC5oQH¨CW\,rsT:+3N:yCШ(Z( izj *}~\-A Ok>Z#?)U-u!# ?!5޼pO k%.$X&3sß]q>8mIf͏U uln\)6-b͑F@>_[?&foajHc~ӰQp?GQ ̫Bxbr+YV Z]|#ݍk[Nu/0"c wD$}q\$r2kײ4K:yܘA銨Z7KoܴuC\'pH*35j澚6X#Z9Sijo颔@]GMg6" +?'Vuct!JqܜREohlpb{Sl@5шZ%,hӉSCX*4p$rՇmhSPrƺKVvLL\S+.w'ҚEUQE%QEQESHQ@ m: .hh(((QE1QH((( )QEQEQEQEQKK%(I9KcHl\5^U]5n1YL#i)k2ĥ(((((JZ)(hJ(((JZJZJ( +Z( Q[8-4,E'Fg/)XjU(OS@bd\&sNv KgAzGQV~Ϛ{'EV#hMO2mǠ#nU=6\ Vytsu1-&e:Sd| +b2jph;j4ʾ=j]17piҞ"ppȋ"eƝE1ᕕ#ڱjD fFҽ Yzm~O jԻ5[]N H7'ZEXxqҺ\& Ca@@ \ <5EN'WU5"&mZUժEj<9"HEHE!1(00"L+SL"؍\@]֙2Uxj9Z-XZFڼuf,iEhgeOjؓ[ ;6Om4y|]Nb#q]\b: Wx: g5貺 + +[Z{f~ZF,~ní:lmaC8,='toAjG&?y?Oe!ho;MY [NB*Yz߃IxRxb+"?ʙ$^vYzl&ժidG*R0}M\'`}k.SNkđcCfUV&?3wi$?nV,W/ Tbҡ\ +Vl۱Ew<΁Fin2mjYX K}x<<@a sc޸m֮桁VIXggqۊq]}q-Rڴѧސ]%gDor 5Eq@Ѹ%gtAtZnb:}w_inb^D~"G8A/!(rƟ%q Joi3C +wc +?U(mL&YymٷHzRJ饤D@ D q6HpߕMr-A6&u5.#E<Fjku yOZ\DJkcք s?/kz`Os!c)* +JZ(((((b()v +6svP2NDhz)(AES)QE (((QEQEQK@ EP)Ia枱jDqQ)X*(5I!X< +(RRE%-%-%-QEQEQE%-QEQEQE%-%-QEQEQE%-PIE-QExQB6TM͚P"['Δg-V?OLRFKHH͐ MqoUlUTTFޯd+v[3"EVQ@((((J)h))h +)h( KIK@%-((J)i(J)hJZ))h(z} CZl{![aj& +i yG?REe_W1^i)EiƘh@W=р)kPVFkxlc=dږҳ08&kK6\!GC^Q[sd ֢PL3hޢԼ.Os1]/.bs)(2EQ@-%-C)VR0Esty1ҺGE +8Z+frO}h֓GՍӸRP2hZVȬR) [t[j2+9py#"6Gw|U;Vv}xcLCҟn\{fiFnA dCqS +VE?cjIޝg)Z7IkS]o8X?6"ϊ~͡Mǯq]oImh ?Ak mt_Ot"%8d$nZGf#0:6 cPAhG9^.@;Gc!cbK%rM&(1 \RP1qN4 +3M1 +9  r0X¥pLƺ3DK`$rM"bi,8yM:8#U +Ʊ((-J)h(h((J)h(J)h( +( +)hYG 2o_(ȁn?͡n`+Ÿ5^})1Z r*otg#TkqV}‡',P؊i Ȯz<i1=2%-%QE%-QE%REPIKE%)hbE)P">ґn1@iEQ@ EQERIRfcH@"jx +Y!Z55Q\gP'>)/Cu}C~ XMvX}E.PQ\^$`?{xRExa`=hcQT;[6ʠqWdԌu%R@ KER@#g48iIC_0w|Wȟ6W*Gl;S=n;Jz?@ 4[9;dzPNJ2wU^l +'| ++M@O50cPWbqVDPhm, \͊ЏģA3buJ qV-#fI +@1ޘ RJsQFV,j́W#@n ֠JYsE-ZPq7*# +w.[ +|ԋcIɧ>ZKd7kEQ޲6+;u4s=B͓C7xdr)Ui-Mb1>1VLb5YGDLLDi@Ӂ4iRQ@ QIQHM4Pt]BIn#A.N%E#yyzƒI25JVCL7hbp5ӊᵿ 21O=>IZ psW4Uk;/۸u>|Ԁ4r9u͍ƭ/ Jvif+T\xjM 2jvjjxjȦN@HRM"""EJE4a1)]5 VȨi +̕ [+Q&"169hC:H=ꃭF !ʚHWM泣E#^v% ˄>NJmIXdĊ&MTu?T1=p)ęEhfPQKEQEQEQEQKE%-PQJi(()h +(BRS((((((ZJ( +(((4PEPKIJ(GZ$s + j *%p܎>5GQzj#}JZNN4L :7lz#]u561hЀ()I^sNn0́ +kiWg.ka~Km)Sq*c5exX=ji:tƀ9MYWU'qXB9:%3M+ZFV!giy f6*1\,rn$tq%fMhfn-4RC)4SRR{DJ7VNWZ+ĪEp'Qqi0[k N+aJ3@ ?TVrW84"+Evkזt0CCW +SU x%h}&i)sIT)`x^^oDl|ScZsRb FGZh\ȠiIL`*@[hq@6m,(FXȑ+t>!e}+?KNFZb)$;kn`4B6Roֹn&TQ&{( +0)ءJ+!ʰ4RbihA݁@ +O4@<N*5\6Ȇ}ݖ=rD6 PZV1MOSm P*P +Z@R@Q@Q@Q@Q@Q@ KIK@Q@Q@Q@ KE%-Q@ KIK@ KEQEQERPEyƱjli[r50T@XzUXCj?xUDB؏(ώbiG|*NH?X5Keg"}piQ Pɽ +哊+ʰaNEvݔcFg?m@ݚCstHA`Z~뼒*v:8G'^4nk;`?.=K5PBe rZ6g SR1 қߋpa?i~AXZí\G `~14iA]gtEsZ }3h]*}Tn*M鳜ZTeP.֦K qsXJV8-!U%3Z3^tKwssVՠ-0&CbJłJ2O4 ] I+ufz3cA!&%<mGݗƀ'@ IV/ fK@`GΖl,$SZJ(((()( +ZJZ(())hH8@ZoJc- +(8HH,jEKaEKXW5l4.)RP"՚i\Nd0j0.)=A IE!hsOVi3E +Z(()(i(f +2@ Ee]VĮ;-s׾("DKӰIR$-#Qܚ˸9 +afyn. 2}DӰ5׋$<[ݹBrwNTgNhX|K)4{8 +.J SҸsOɧ+OSJ.i#Nڋg"=*C5p& +3jf2F{Ҩ)ic3AUF^1WO^- +\0((‡44LsbۯsRS +]&(fFp)5n%y[ K؂@ $ MM0'LɚVۚHFQJ٠9?3b&]$T>5^VPG^h'S[$PɹZ3ai!_-=j-crϊ7'O3Z##>Z p()x-S-hyqTlv qH>v0-ڧ*+s*֐ 0T L P ~\)jYlAEXӢ4AǁM&nib棙Ě3f1UӓVc x"%aW}^ Y& Nsր-ZxlUp4 AN斛ޗ4O'J4 }E9ZF)`<Լ;{ »7Vw!*iv]&P7׵b5YPLCSw5[YXv#Һ}7SR5Ɩ3bx5K:́2 =NJBkUcGXjtfXGQk;F E7I"+% Mj&*ZRPEPQKI@ZJ`QK@ E-RRPE-Q@Q@Q@Q@ EPEPEc|j جlgPҖGrSPZJJJgAR4NOk6[qqƫl7]{JЁhZ(h[k{`1f?uɞkHT/k44Ujݤ eө*b+K1XSTU؛ t[&e8VH9ץ1QXzf܈cjO +}LҫiC59(GLM4kb9r9T#T&RchUrl_f;]%7j +61RG#B#ҴSCc%cXj#q'keJBVNu?imRl>5{t[.}mzի#x\0PpEdZO3YP;Uq"hLY-$ֹ `k?TL&D^G 2#X7#֯C)sMtB桟*CQJxESx>b)qJ)TFO^EL9Ted +903u\݅-6i$I$f,IXSZݬڪ=(_{2ݢc3P-!zVTy|O;1͗FE[36̃#gNTn?2\GhRg;`^XEw+ڷI}MpVYTں);!|r璦"\>B25}j J~^x\`šCjı2>WSW)IuMАv7c'VMWp<Z绶V%qA#A#eKc!tOҭ5㫑ɮ{Óu=z*X¸/ MrbT 1/ޕ~d9}+/a0 Ys^+F=}ircC'Z"fkwVO/_aZr>(gm_b^@05VDqnQ~bkk5{>~O1;_6ѯt6$Wwk,aJ4͋Iɬa8v~?/*ߘ53nNUM_xz seTBH,v?0[r1uXG3"8 th "p)*’ +( +( +( +( +( +(Q@Q@Q@Š("}ӳHE'J>sLn`)1X +(0J+ Jэ* +((^g}*FU^i2up)Ao9`F LW5Nh4=)@ZA0xм*(MKQ4p!y\*湍OIdV]_m$ݩ+6a%mWn<\yy$)Na i@H8-=#,qWbft$QCaC[PX417S}KvrڭGfkIդ?“axM6V JurλhT?09/,r_O[QaЊi1[Q玕7F>^{K0u5Ǡi8T5;]&zbʪ bpЇj1Wt7L qW`P 3\wU#TSFXk4 mg]$V}[}?ZGuxةE4u>. bZdKmiQ@L PNC045<C)jJdSl) *b)P$Tl9(Z֭2L"JfJVU&&X +j dm^?VjLTr3ZJ(J)i((*2*FNZtLQWdABA=FM4u]NJǠzAsK"ke\21V8}9$皋jV%6ozy' +]PTkrX.`d>+(; +*;y㺄K R3RU%PQKF %R!(((ER((((Q@Q@QHu)Mk +ALv*;WRYҬjJgAPQIKHaM4iCN5K_λWZjWnxD61))h +(pE,z(ɤ:ٴ[yP RK.vf#`滽AM"M Je@з*Iͬs)˓{OmwۥŽc8o1uُO.: +#Q{~#akA 2HK±<3)qr?t!!jE? 'z+3Y]?ތV/EVz(8,VN-4Kϸz<.?Ud 8/ڬ]cEQM/y $ [8;.G-Dck?zJm41[kӜkwټa JZ*|?mm.0~99WS<־~xץ,f48hTINnڳ0(Z(((((QEQEQEQE +Z(BRN"|"=MdbP_^&3UhJl\w/ +ZjW9QEQE%-%-RRiL(SJ)i(g +2s\I.l hO-Ӱac8^B{Y呛=ś$ +bAO))깫tN#9>+ח|㪊CjK~mʻ ]\61j? +RCA, cZq[EGRE.Lb(()i((*_!Wꆳ E'.j]rF1Q@6fGҞ ''sՙсI\s6MFNM#p(i-|#mL +d j9u\VxCvh"%桎P ԀPiit ҃Jrj~jH"NBVENE4V"ENQ2)1(%Y"V-\d)+Qt+NfP T9mèTq7Kvi ։ɫSQEQE UO&MGoSX Uɬ]+:)ַmi(&Vi%&*(0Pi3RFL''4g)OC]LgxW%2*$ĐFOG4['-Z,.1{p~+rwqcQkģ-*d![S_q4zcnp\dnhz*1`Jg 9-)ZS}+^ᕛ%;QT\jLPHRRPE-%-%-%QK@ E-QEQK@ EPIEQE(w|֬{eTbQjajDvt’i?#j1]"Pvֺ)c=RJ(Z!y5x:Ӏr :n[tiƘk zJG9)wIZժc*xk.pS+5dc7QEYKIK@G<\Fc)(KS찳Iga :^Yo~#de*ikJ⦽|Ngf WRqX4ѵ-E7<յ!Ve>9) Gj `\кtE*Ty%ȡ$*75m eɂ)jOlEc)Un+wMt]ZH'N¹[Nf^$Rj::P6OTkb8Q팸Ti\sjv9'&?Ԁ!Z\El +Pii/ +c@ )ck&QOYʆg4GHUx^jb*˟z9!vBXM(+w`j8s#1TISL4]T{Z1܌ƶ XWi.Fr^zqƱR@H`(N)iRQ]㣝ڭUk-KVAQE-Q@ E-Q@Q@ E-QEQEQERQME 9&Ǩ[I!D:\ο/oncc+[W䑰ecZ0k,1 +,: ++>R8f\IU+%-&hbIE-Q@ KE%-Q@ \ߍG]h +^tˬLmeVM>)9qIR0 !u 6\Cӭ]5i& ,B§aQ0!m_kx / ot}P: T+Ī`7}j vx~=  zq&24]s~ڌVvSһ,AsM^Џ8#|70:}aUZj (QEw7ͿNj mS3AN{˴Wb uuI Λ^-yoܪvU}-}??b(# IYhnbErM]RJI`;A5=:tpF%~ ih&j$ql4N$Cids.Ԛm zQ֛NnFbQE((((J(QEQE-%-%-%-PIKI@-Rێ*{bAZ(J((((( +jiúB2;zm\[bOSM%q{#\yȠJ8L-;i[o4k[\eȶH#Dm5`QEH@)jF%-%-%-PEPRE%-PEPEPRE%Rt*Tl%?%QȫHYmc6Ò?W8 sU$vy;cԚ +8Y/Tw +P > AKY-Q@ E->*F0p(Rۡy3Sոbf#\Ubri㊍hc,+rj zhlB)^P{Fǵ]qx4&mSsR*08>&8 (KLx54i0jp54iXw&S1-X4´\0QSHHHdL*&ZE1*.UZҩ0(sR]I)#@VCW6%LRW= 5/VaZRtJDJlgnH@e* W-$b@fTZ΀ cv:sH*ޕklj_DؠZ'Z:tuUu( ÌT2F>};ri c+KHF e=<8KriW W]󠣰]`xaji"`*ZVw r+#δiHpphܚ,DV€ADq_{jJ2YhP2?ئ*nS5>f3\+n`KwQn PMX;U)Yi|XwRzRG<\Jm b\24g:s]1))h ĥQiOiTAI*RWB9ؔJZ(AEPIEI)"SSf0YO󮞔TԚe 'gErZsAS$G +Tgr;OsjAKVuꔘzlS4l1ҥgJ.Mbk +htmF5G?q6Ӕ[79iCEkg+-*ʻָA5ٞANpRQEA";&QRk-ZEPEPREQEQERRE%Q@PEgZ|dY"0]k23GVl{LE@b)SJ0ȟqʟj9:5q5̂i)c2taS Ѓ\RJW ոu٢sm +҇QQ>;)i`iԆ-P\?w WBM`xs#ve?9+Z K΅EdcB}ITϖ; =kcVe֙LF%(D85m&FJSZ[ogChLzTN*bUu L9_a ih/hb:h΅/_'*QGi:]uK?< !gct[3UaVjhv"rx_f((5_"X?5DۢFPkr&[CkbDki]ZªH"6qk322+fI>e]\ڞa}Uh}SϺa\QZlcu/?f5TI3GdYz=JPFX<]/X9shfFe[+|Ss+oN?`x!]S2H($/VKoqF +Lg= shT?^|)[ŧxy9=gx=ٞ7lLiҘ5Rc5x/ImmUz$SHGDy(_ڊD%-%)hQER@ E-Q@Q@RP!h(S Rf#'M>d J;AnjMU:5JE%-QEQI@ IEA=2ʫ@\߉e5K;~_ErVՎ ކU5 IJi[jq!71ޚ*&y$ljRɤH$qJYaT#ɭ'%p5xr+P]c;O!k8c8[Eg 0BWbzm?ιS֥ !^ݡ[{?S^~z&۴Hǣ0jڥQEQERPKEQEQERPU5VۧL}ZfTR@SWv͹27ZQg0L\cT7r15C5ߞqՓoi%ֻ;dHS=-T JZJZ(# +QRkdݒzTNq~^F(N[q ֣h;OtDNBSaM4٘FNMP)ޔU$-2=I;@F8Sz. AgFNMM9 $ 8'֭\>b +lQQL80$7>OASIjHǗ}EU5GSE("kdNm֞.;C4,4 +) !U$RI._-aմ3P@B欫HXu9 +Od0viGJC$SNS54NNV - 4S4vii 8` cJcWLԁ9:ILEiVIM)Q@)gNN 4Q}&)fTT|H@!&j@]Y` [-D <`8S4RLH 8p4Zp4)-KHEWeV +ei a1) "EUesVj6ZwMҡ`ARAydLM R^GL֚NEs'E:KbNֱoQQ[pCR0 ++'Xҭv5,ZÓY[h9ljrNӜT𸪬qYT] q$efךVNXýE4Tں XsMehh@Սh]evɎ[Fk VV4Oj\~Ӽڣ=+kO`m=Z9|3BAg~2ģ`=MID Pf =85MSC4J+)Fk+]ѕ}V'#"V揄L'9h_zZۮg/_X#?]5{%-% +( UӭZs򎃹J9>ɩ*5w4ƕ6pj9&rׂTpԎ=J=J! +6:Em\M]RY؃4"U*QObѲi޴r*Za\tثP#8l|r=sX"ɊƪP~y S>֚҃84ޛ/wNQH2p"O,\`GTiI%Š|($6sZv~T`: M\n bρҵFܯ4>td^#8SY stU%ԆW3zDAIw1$dO:w u?ʼ1Єj'>ƤAd|`mxx[Mvq:v&AN@–)R@ U=wXPZJ(hJZJZ(LIL4PRfќ MgXг\@ۭ~hKZVHRq\-̗Rٹj6,͹'ފ(+KGI5+GEohOSsLDG;ҕ-b[}a!qT̠!XۃFکm%8!Rm+_JFYh!ǥ_Z<+M vVSVUV JD2 4Xw;T! r@WS5Ipޡ׵iMGa# ޏ}n"Ĉt+?m::`h̰FZ>z[eݺHskJRN0H!ii +K\=#8"#L)a2ojR*@Ú68vRrH泼U"!LST)z +]FqvGZ4R:T 3WamGoƩ\!+A,jýs:~1MnZnC`YJ(])i6NI&G>4Ee`?Vs}Wœv'銫 +mFmwZR[f<Zؿ\I;qWg1G?aT:M=oI1S4=I10o5qpkf4!!3P> MP>YsNɘ`|J|#2.t%Cm:q|'\e?Ҭ\jΉn a Ƥ3C{L OԨ8iFum8T OMHZ M?CBEZ)#5PԟKvmԃP܈ϵ:oHRҊ`&)qKK@ 4IKI@)RPEP (QE))h)E!UɫQ*85mT +ri*)R&REQE%Q@ EPT/u[[1 \f8H./gbYY 0{VyC[v/AkamjEޞ4G-g˙t߻Zxnnf-[Rs3 )$KI8#vى-D2֕ƥ}zKhdrEɮ!i%voX5j{"oV"FKcw]jK[Y.(,ߥvV@)f4hj>եI9FMLjUSf+465.=a2{CWV`Sh +|MQ.,*rsOe-K +PzUEl +>eɬ>q68^kYtJ*x pi w>F֢!qHQGRc0.jE|P2vPEDcO4j<`՗Z4QE +m"@ jp8  Nw48x5xӁO \INd"Px˖+'.iӅ$3GDw2aۊF+- ώ*w|q MI7rP@Z{Z#n@;5YD+ s4qQ^ޥ^BvSM>h ֻGҸ):W{+z{mRֆBSn&[kYfoXX-f u A.YV94LSZΈ!3R%FMLcmZt[oh۸O5[@nøӿ^xVZM5QE%)hDirNs\<1UqJ?a] gB #r.X7{x=+P*j|hGcuaV })\v:mP*1Fѻ}g5RC $cf+ 'ڀ6\f=^KK%1'-?cu{TI\b-.>W(5gQOMJ3)swr`5v;ڑU WT!"c ”~IW]y0ORЧvCNFw2)#4x"4#RvyLtw8;[Y23aȦtRVv|%o-Z#>dyN{~5g;ɋ u hP To !*n=XN7qZ`;r'936qַh2|:TljSY^Q`N)>_|U(/]Do(@GPK6bVv"C +~}]OCHg 㫡.I̠{zss] AUMv5c䊆S֫1>^bfFqZwGpZA=i1 +ZC +( +(C_DFX?ZJZ(()ILRfv)1@4ij`;5[F^VXFY/GS\Fjf*Ӱ\|A- D:sֱy4cRi(RRWR~0f}Ҁ5(E1g-ά1 ˋK` qunsYjL0˂) 6dz;F +"OA.Z3C:7|op>.s1«q 4\+d SSFpr UqXohũ Ѷ%A84GU6>UµSQ\Ah2.շ5Elluw\6!a]CG?pvLh̢p椠9N 6P#cLr2zsW-$HCXS;ԤTl)LmloʩN!P?0sJ#SxtD:zĵ'jנh#r y{ + @hc 4pSȹ\3Nq̶x TgA4ЙyvcZz@#H?F~tM޹0}]9T$Ҷ < R< +]#`}_4j_#PgQ7 +qYz`\>H +Q'-?X'pcs ַl/6SINnb}/?m_Q_;V%N؁$5 cRצQMn *m0+3S3VI~WUP?jFOdg EQi~Uaҟ<>֯鰯Z+ 'O +H?sX6{BZKT:Ʈяihsj5AcͯэO@JbE6 +))(i( EPE(' T3L#; Si,7Qp)MIaz*NC$mXWrV2;-TQE%-%-%-%-%Q@11JԂuQaSQ@ܛ +(AIKIހ2yI@m)KC" ,} +XUK"!MlTKIKH(:2;>?JNkJҳָ^"[#]/[=5]giEaCawru,Z ץb9tn()(h +) $Yz͝! ò@X"S\f }O&nnbҹb}i.tڗAK5zW3qu=Fr}MW~)s@x`j֗c.rR.<oJ#<0h+H9YcʚF['Ɯ9 +hL4c*~z&b4QHaEPQKExe$Ms!G$K姽C+P! M''WsU RDTZf(M'tԳճ)I_PIM'qsՙHP$yj&'ji% +٩gl)H5}MNSXԮwaGZP%Yӭكs@}xƟ3g#657 Tgz<6M!HjjP(bSM(*p)shʶiPJԈh4C%i)AdӁH )1M !+L+SJb)Tii c-NE0Vdզ-*%*۩&"ǑKmu-v R^ym|r+f1eS+O3$}+7-2nM7!(m&KqP+ +'qR J8*.Uvk~3ӵoWw[XNwV4]:C}i:,R5e=%;C~*9RΔvJ魪 -vw!USHVC#]tlm# RbD-('j_G)?nec>/P- }Ps F@!!J l(w~iU5vv$c0{5qlV)5i9?Zv)r~#0|VkB?[!v+Ee^"g=}ABrxKX}~ҵI!WK^ +:& CV:]Z]CK1fHzU)18VtWEf@5 Cȶ~A]OEO(& HrOZY@j_HqZ$| jtXd8u--IjcV4v͂sµ3kS6u2&-ziP+#Q[n\[_70Ǥ'ѬwCI2ALSӀ|S/?5T +((ZCKHhk_Io]|ʶť3:#;[^kε{w\TqIʇ0Ӊ\2 + X^>ͬK)HO5؞++Jirs8ܮa-’D +QEuOmW#z-u+K/63H1Cظb8Zq\pqJ +`ֺ 'M,$ t5+Rp3g${V2)cKᇵ:ri Q))kPAT%윒#}JJMw@9EM841M^H'5šU#"ۉn?Z[X*3j%#6 O}гmpkK3cְph;8óJm]R +ڰV8uXX0 +>OWZgqhtHV,RflUnb ;NP+uPl#@(x&Hb]#b=+\J>zk qL"=x%Hob5wǒ= C_J+(' 'Usjf0Ma]C-`*  iޒ.I$zyg*Gk28LaVJ'#UzіPYұmQ~zןimŻpZI*FSQK@ UmVۿ4f +(Z(ZZ((4R3RX"RO[ZG/N: +zؒNU@IB$in$2Li)3JE%-RHrWL z)M:!~0Xy[AH ZP? H C\K$cki)\V:fqTY8X~?JʎףM=DD~ej܇WV²Ԛpp3L.s_:0ÜZҷ$R.FrqxVAe$:lTH;V./-t͎+F w5`@9~\,mF1ذ޲sj`2gb'a{{2>/7D\VL$ >7*%h !b5hVkV&# M"aR50 j+L}; +{{☊t}+4tkЍpqx@/ƌi,2ҳ!Z)67x4&Z!AFEF;41"#d\k졋*?^ p2O[&6T7k9Pҭ2R\M]ɱ+G"|WSd7a[Uo݀=鉝usuU vuOsZW|)7ӟXoK]n ?Sٵ`9֠qV5X2Fw +89) dЬ"մ8Y*z'*jє v4gU JsZҮ3cW1S@tqͻVǾjaIKILAEQEQJ4q֕ıGյ@Jd dbTҩΛ_Pʛ])mTU&: +ӘQIi64)RTRs2ZkQ!5LKT)&L.XKR1(Z(((()h +JZJ)שlPD6`jqA + rŸOttV.`$dR,z+̠}kS>ʲNBZpF t!"v<I[ T}RR ,d=DYzn{MWkH@#fR8Y岐 3ȮncqYΜ3*@"頺Uc(m+]}sۃMcgSLyeWkWk6kl+4;r 9kHƹh4XW.]jw`e`GJM 4i1}T 8&4 +ԘQjŃHSR3&* ޱP&p:@O?9-t~ +o_/Z+{M۵@_hb1s0=:w4tLэj?t![BE%-%-QExtڢMn )&~cޡfBG@ әhc,)j?ثhZYXOv@N, ɦ\G0Ug,M:Vɦ S҈sSQ. +`@-|x2٦8Q(H6\K#njh +[u,䞔p*(?z`6Wڸw5%!"Lj,n5h|@ 2@ bgvcyj︌PM9բ5n$i <&Mw5Ox xxRRK(h4@4<plT`ӻ"UlԊi*0qHjB(EJ)"x<vh(4jiᩀKM4Bih—4ӨW"a5|rO4\Fjp9˞0j`L)AqNIZ`4b43@4t-HS)ӕȧp,斢W<:SsKLQi(1Pij0i1HOR*r)hZV+H +-Y"+@j&ZPT<i6dj9T*cOn:V:`Hv$ +O3*l+}hX䣕'+pF~Z(Tice1Pj<@V,0w>]?LV|y}6yF v|F;PӞ4-ޣYQ47r5MXܩfۥ5oqjG-&}ߐ6s3. El d +S!q޶4Vޜm! 1y'ңq@/,uAγZ ,8 3M^Z%B f/љF +Gj$PJ_5B6JA\#dRp.&cpEBqT\x^o##ST.<=y&cJꭥջ֦Zߕ3&:{y sFQcT$wV5x5E2C\Ū`mXLɫ{EUȁT~T_^*J.FGB`k&];tsp9V4}#U`k~=OwLKRԬK.`:#":m<4O S.1ǭ*=)ξdEk&hg +\T׵0EIC) y)׵y]+Gn~g|WvZז8S=;PUFl ԋ5sذ.w E,5]lKXhm >KqJgcNM#F;X5kR?f!_$F2GR指Wsw,R}t&24 C=~Z\!ZnG_E)E@ J=OJ*t  }gP 6)Pe!c)@z~} "+YxsWu,#FGcFXpyL \&w* u`מXStohkdZMXeSQEQEU9&bQךyb@GSU#Cv&40O +: +QKH/4*[z?OV 4+wלT_afK At?S?Bfl]%_ TJNCc{685ZE +f)l=r$|uz*vwca'֞{U8*P$ ݅fhOtkI+Rs5Ijb2NE-5P"5@͊|?Z"w? 3rV:S\ :,Hv<pjP?٨@"CT8%ڲ6WsZpFCIk!\ { +I LbwRSxS1s)\h֨SWaVژ4ji$y\?麁T:L95,wVz.;u@W#מj:,%qv~(\*]SUhuUqIiyꗈH!+ ԥ+t KIEQ@Q@%^(Jy@+\ ܓ +B}jK|̉f֘NI4M4QH'jQ@%-QP)h]ҏv?5OoL44RP!'ZzBqs+ͤCKfh!.i@IPd&*T+0isLFwοWb[5φ:!Nd#|aK\GzipMki}Zdֵl #ZH˶] 2JX"kk.4`ͣ[LOe/TeRTؓȒ+*CFz1E- wRlU:&ү#FT*WqTU | +b36]cHkP*ףhg:\_Vf2[cEɭȢh$}<hLtu o]9}1h+R)᳂7(?  ΥwvG't5|1XOZ,dn^֬M4'n?u$T1u#ޭu~5Q>Y։ΈڐҎcC%YTvbj|i?sRgZJ+%>+[CI40# 甓!1QFz1y872}ڻi&'VR[f(r-ﱸAQ+9Q]y]ѸWc#vi?٫ %SQE +(Ê*%+܂8yY#"34B(RRԔQ@ )BI@-PTS!~-]-SQSجQHbRI@-%-RQ@-RQ@-PEPQKI@FIP:]L?)|V7|0/)M-%-! \\j`mg-S]u ;>Y䪤ҹ9dzV3܏fʼ͏Z:{+{3`ۭcH͝-%-HHe=p A5 +W?"JxTSȨqWrF)\, RqFO(Νk9 ?vcUʮ>3ds΁&@=7^ϧ8cҋ18g@ָO%=jx4 +V(``:Vf-1*+4[6*Hǥ4&YfdwZ5Vm\ULGA:Im/-f>A[U/qhC +( +(<(S榝6D1ObyCFjsM@]KxSRJ6F=j4b +y8%ybMK30)<6@ iI)[|ՙDPC-@i T,cIx0IRHϧjb5䐫 "/GlaF~WU[UEưc_gGWEN*ѬSTld[Lg]ۃt$+G',I%WG!]b?E)a\xg[HW?ɬ *g7:@\#os$-O7=u㶿H?Z_AN@3КL;WEjaQXb0nbTqЀ`tf8zDc4OʁE/j5M.kBPV_ +C6v$yf 4.1֐ "߶u:B@f@ȫ1E2U +IF@km=dUOm,/fɎvոO277B3]ٌ淺%MuexɊgGLl籹93)IꊃE0o 2n46dB\Mlt P0)3q[ H34mTXXaT` +ZELfYdP>l +i 0N Mq:Z,3t(`3Xdzet>O(1Yjhk-8H& ֞Z.?J qa.M `b]u:}ʹe ֭(nJI\Y-ms;3W$1*8="Q^ 7nզ.f~Ti_CqA Vuz8J4]GMi:kBx"mRLrW5\@BIkvhqZ'苨T65aH2"%Ăt.cd}ElF_KX,'Uo{{!ا߿rV3}UxZctď +t:֊( +w>SҬR2aa(V+ҳ=C—}1 +a,JsҪMD^"ɬhr#/>gNҮ?0 "n5 2SHu~f2(EzkGf>d:V90hB(vvhv%iڽS@wԠbR !iP QcGg$8bS?W+xm7q)9eϨMYc\Hq#4=SG_~QUb=9rhHBct 6Loa]٠x|e(XǘEs÷ +蛭^0Ots'Vhm Xi<'B)F gh?{, *b@WJ`Is֞j8g(JjjGJV͈H<3q +FUBLWV\cYOɢsc]Gx/..P:ؠbMA!>Zz~-Eq.o'6PklL[g9!rcOC̯Fr<8ar ǽ``&m#=3]Ƌcr8Cyj]WosfɁOn'u=IvG>זw3,SUBTҸXJjU#R N N4ej{]A'z;`Ո/ִ :e:V^:]0Nꑶ2*^Bp ~ո&@X09B-X|k?Z(صT`7Ƭ{ !.Ŏ5qR]>WĪg./ <)P"G)q⒕M4sJi {,$r;P#"R +ZQKE +jY!*`mwphCp~>6o.JVf4 !f3K~h31nNV5``INRRƗ78Cҹ96H+ALDn8IQS&.J@Kμ' q݋? 5j{r^$Z}~ce">Zc뚹o*4F}*jr.tE)>nX%1=pIiȖ! q*Z̰jaMX@Jү,#.} AsZDt0md*q60qRb2,3WTL?Zd߇)ڜ}=f + < VƊ1k1):?'^r1O!\k V<< UL]Ik.F@>~Y=7 =j3k%|nE8tJ9"AGS1"J@|`tMhӏJ} i@JSILAEP՘'PF2VYV.**N)i)h((()h +( +( +((((()h()h(p_Jv=#Ub>+?ÍUz>=RR$JL@^cq\WyP7[ȣf_C@ֶ|2<0 bo 5qPjQTK[ R(rZW)ڌ]9b8XOVBe1)X3mkU&_0#贄獂D{s;qg@^]TmnX$G4‘O|AjȄ3#NވZʴm`m*ߨiĐ)hk"vJVjYUA@:-y ;=#cڵE fSd8SJ,Z6ȩWQS))\ +ni8Tyc!'o(88Pd7M.֬7S!ZSZI?3*%9E 0AO31f̈́RCZi@SVvQ@(=`ĦoUuq&L'19h'NcSRLgB2[\(1íhH +V>$yiAqa1YsJ :;;Քn4-F݈X꦳΂_.dd~5m4N+ YJص5.Iޠy7!Gi0"**Fb:+?IbbG(-|[BP~泧m_4ReeIM;2]&3u>t,XTV!$sֵGO+=FeNjj8u'֮v4h=XWF 1oЮV UՆtkҁT'Ԋ>$[Ҹs v~9!bKR~(3`%5C8MFr>QS@ +9;W5*(UE + +u +( +( +Q@ )AҊ:h)\Աrzr޽,c מoj1Ct(HqZC?tP馗% (Z|TU+rhS7m0$i3Ywy<`UP=Ps!W4l=HR×>*9 ujV@>2 p*h$V_ƕskYK_JܠvoMm=4Q/v9t=s(-3ִu5Yi 1J&e\xJѣ'cz|'sLxk G͵ڭ++4XjL)t{OcU3$r^TͧZB}qJs.~? ; deO{:{IcRZFs{DϢ]`*M!pq%YS%Cv:Q5e#7$4M5a j>l"&Vz.M)!@cU O!o@TH+.S`+~K1p5Fe_hv;2qhQ>AU.#I=1Z\Sb$?jX`S}Oך?1P +QVt}cO? ֖cE1yo{]A^mN@Vӝq) vh6v3M4(4~isL.i8,ңbhϣL_?2z֟(xqIO[>1PZǠd=No\?|WSoUO^{ӪI2Hv1(kp׽sClPL*EZuW˛)LF;ZۺyA: n#ךƶ赮tb5fc[-KjjtO?ֲB?>(3+SpxU1ǖ~wP';**P@S#]"ɧe HNOJ+?Xm6)侥7$Qty #m?Zg96t#[[+òDiޚ [3}kh `iHR$J([ WR]'6(,JZ(((( +Z((JZJZJ( +Z((J( +Z)(i)h 8[L~tCZ؏\~ݦ);j +])jIB2-by:V.J}@Y S8T&m#Gqְ%'֔ +BR0 +p$8ԻV폇n`"_4f ɮ@rkB2 +¹ȩ̇兿*ЇB{~P8S/$Vͺ-[P2SA^Ʀ]"GkBAr閊r!\*Ae +8?]Ƨ* D;Ư6?IL5֦㶏8Ʈ}̓D~`K:+>=>8SYs[~#8qBmT♦ٛ۳l"[ywN@rA+'H]3akZ@QI@nt$~kNb7Z(s3uf19\\%q +ݾ۴vQ\|qԎA6lӴ.yǴb0Jv5+4IZ`Tӌ6f"`elԒ7ˏJ Z1x&= /NfظUsP +kœN$h]4d&NHbUm#S&vޛ48$!#T$5EHWl-ywP+n1*rN E4URɌU4Y*5"`8qNњx4p4J^P7<҃@ +083NE]-VaPRsK@(4E  8R@AG\MB&]3o53 +aHgxMRqkSIOx2YOYUV.Kqеnj-|#i4Afż"[bOSU3W-n_)=bW!25 Ԏ +X +#H&G\o5xQoE8gڹ|F; Pj nxh~edrd\~uLZ:|3Ν;+2]61=F|LR*lبFMX݁Qڠz +IsYAwh?N,ԹSg[%xaUW=]5/-AT])i +8BҪ8 x&2&\sUjq>#f u_SUEImz`j>6?g2k"nO*0EmLc袊))i(ZJZJ(jn?B:Unspq_AbcE!N +(k"88ǖ +kZ.RՇLGW ɖB p~*dט'H!wǠcsy<竹oִqfpzIsb}}ÃDMnɌ& Y h?Jdd=͚u=-Heė*YJjB%y%*bqS!k4KR$JdOV'3Y\BÖBU%.R5xӚ&#*2Ա\qMKPkC(jzZ&gfiǹFz$ ILC7zQB&ѓ}(aIE-( +ZJP(:l$Cdc\z1fƞ +rj)9ng![2ÉcirY.7sSV^Ts2 ,L +M*E!x Uo~FM:o=^g'\b~V"[Y?:,;e=*AkThSi mm6+Ҫ@5V}:\nR/J]^&3ǹnZ{OV)M[s]&T)]dVe{>i8´X|<"[jM0w$l?Hv;̧ jKfjWwbI2:s.c=Fu0-(lH<* `Sq=`9VnH @ԃB"J (gPi%X!*Su>Ҁ:ii)@BʠdSCdo^4m%ž0I?pz ݔT !W%MO9^Ǒ@)Hr!1TB(њV8@YP}j_R>n؝@ό5+b +'a/]Gy+OS#:FvcPT#4RڒU>_.FBC P[#VN6A\UmکjǶmģ=y4ЙXJ&@5..,ҝ댣O T~%]g q:y P~ִ/'#?4k5>S+vl;+2±&: N֌A÷ʵkC˜!zq㢺5 ZAdZ5WFeҭCj ɿ?UTuЅX[}t2(} k+#4،iiI>JIH܃yѩ;(8AZ:ëSafXsX4 $k|>X̷:A"}V_kNV#UEͳGGAٿtoֹA(>5 aa!(SsCjqV*qXKsh-QRPQEQERPEQEQ@Q@Q@Q@ KEQEQEQEQ@ E-QE1yO_\q[:|I IB7*7!=2I$/#QܚjP^}OXbg1:Z.`W((urX4=$<a[gZdYo<k]īR!iۛNhS뚅+t)F?J8-44E75f%ؙM>SG!ɨNi@g%n(ɩel.E#cIj!rp*J2jq$&}hdS>x/ZC@ 2ɩBsML{UN +ªT 49P{Hۉw@T +*E"!@)٨J >@sK@(Z(4CIKAP)ؠL\vcBXeu?V\ssN:ՇPAO^mӢCl?FLֺ}) ܳƓ[B>W=杵y|X9ֱ%'*A jGV^!9@~qz "\֚mUYy,h[vm*"&9][coႽ USW3TzTiP2*"X5a.,3Bʣ⨙w&&I & _ܥ$K-@aVUU(6'$=W;uvsxrQCk6l6 (t)=(z>BN#=EQ)rGqhKSOzZP/ iZ̧pxKOx-W0^تJ_0%#Z*˃XJ$SS%eZ]lq]%3+dg(ؚZJ(Z(TqYECրus^dZUR_-2JeϾSQC*x\in[9*0*KoB8XsX7sTTiwD`~C!OS gҁQ$Rj}њ@>ޖH*K|փ +0\+o#žYX =i搓Sܚ[;ce>P1JlۣϽRZݟLe!iuZV-}xa%OYV}688)sc5"8#G0X1LVJ^jWG4\V-[۽8:1 47SA +Uy7r*'Nzs@$U5r N.z75**P8 WAu 5K)'ֹ_( ¹apœ%a*9<f5r^&}Ұo!/#^_y}anm&Hq!RA̝YIBhiA,`.G\֌u}pR~)IhŃ qQp cրiTءab9c@ڧD6r¦Ji@f4K@PUFҷSINa4bS^wwsEZx,뷄B-4K4hǓ#U]b?LcuuuQx,7.,@ukk%ʀ1#&3`PGtAZ1GM5RǛph6*-Hhү̴gip"tR?A<5(S>ڞG֨FsgE]4s6mft^8_&ֹ@"]'1\Z<)>)p6ށ?:ҷS8/Tt?ʵ-ݡ{CK@84({Fe?ȭ q˝Q_t?ʘV+v? XV8X:!2k͵N8?i,kV#q5)gQ.C?Rp]L?t;k828RUsf>Sx׺cpu)Hܪ1M,$OsK._ ?j頼O)hW2Z%H'U`yՑ3qQlF,hm⮵g8`5Z֚ZR?7!W7ީ +#/O-_Tn_Ʋ>3MQQKt9 =56#d}+^!&ǘk{M^n?5Vk}PDvaGtʯҹ{IMtsE4Q@&*dL*AYE 4%Q@Q@Q@Q@ KE%-Q@Q@Q@ E-QER@ E-RPEQEQEQEDPQ\DY]E3\ +|U!=&67Ꚍztn}icH4D`j7]4zJV$y5I[,J)jp_NM2 +~+sI;dqy_YhV(>P߮*[)+Ě;"+E-Gnw[}TҤ{żClo] s.kqcV@)ʸ5x>~zlAE-% ((((3 oTg\WFZl\793Qdè9ME UY^ hkoӡ'`?JB$[IXWo5K2H]'$OI*#樓feoXk6'co[U/qhC? +endstream endobj 84 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*42Pp +Y +endstream endobj 82 0 obj <>>> endobj 626 0 obj <>/Filter /FlateDecode /Length 3370 >> +stream +x[k]E{{= [iqKKO{hK)`M 商% CIhL4?C# !ĄDbTш]5g9=m?ffYY3;&$#*!~8q<>I?ا*SJ% ?8Y4O(ɤJLk-X7ʸJrQ[:Oh4X:i1?Ltw?]Ьyƙ`vLa=fSL *yX:Z kBӅCk-EzWX/;-Gw_ss#7ەShM/xa^zݿ#!w. ALF(ճOEQ$qE3(-4{^ٙf`(20,֙P:OW]2]& QZ4#z,gIN͜Ռë$"gieD`CוЈC֮uO!qKQk,7*粄O]WQ ˚b9VǨuk9Ka0ZAkosn8d-ɐL*柮GE '_vլ6iiBA*0քh`=U3h!߀^{_Ö}h(Eo,Vy(VA 7²= I^63K.ig,8M3"R%0z*;E .2fCy%M:DN(-.yLpc p.A5 Z.a\²]XMƽWazc9]x +Vike׿PGҶ{AB'D\/#Xݫ)ON֣~P:ODԸ]'A]چvK8_~̔N\P<)ZH~=S1wŔwp{qL4o|jx󆯏9EpqӛxbߊqW| gO"ҟ{ƭ_ :̭t6*YV֪a۰F>5Nj +1Gp:x\~.۸x9)7κ:cęq+ +bf"sII*MWyA% qQUȉhwDw9 #a49 Pˤp kqÁ:=;sM V!4Qm>yhrѳLo*i.y=}5Ӻ@1Q:UY9+cΕ̃qhz(ESMQ#X1WT*ļ; +q :OVw}%y(p$DΠ21E͐3)g + shQ1` +@E2h\ ,dyAZee3hë#v#W>0R)ϥ 4ѲFQ,iy +. >?18TIQVcE>L9M%ޑ=g{P+37gkA/TthBxU0v4 6䂅=[BE0* Qɲ?Sk)nTA G=|\_1b`/T5&\S + p={1BVRO18oմbh +@yk+7b2Vf@G. t(,,X:=lD[Rct/1<}"a(܂/1mUdb\5fc{861U{ոY?i$1yo.-8ߡͰe:h Hcptm2 /lAt *1՟Nt|N&"]yiVn v;On8WR̽~_*@:]$6 \W[.J 9VEK?7/"/Nj߉ wמ2ukD@FJ^#[1yFZ;Z#zʱg5fY| ۂdzB:e&J#c݌7ȇ8a\ F+l:RE: C٨Q g%eDN`IlP:WEw"3qS~:5{IX_h +mQF4y8 +endstream endobj 80 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Tp + +endstream endobj 78 0 obj <>>> endobj 627 0 obj <>/Filter /FlateDecode /Length 3627 >> +stream +x[]UuFf TfrPmsP/ `$`f(N D?4 j5D!c1BMibD%{{)=4ukZk(EVt{2n=խD!K'恴YU\dwvB)ňͪZTdOvjq7\w"SE RJtn>WYPsե#X膨0 RVqj NpRU>\dR)8ce%c5E9@xl#?ʼɧg?o/|{ eylBs&,ce]dywt+VYE + ;iډ"0aY](MJc zZO^%_*Y_1w00H3dͯ~N)>6w 0ڐ.-qW0u]70$HqC~ѮRUZCde! {QSҎ F 6b&܀hGW:5 זH}X5[Bʡ,FL-!tD\ȷӲ4bH֯U; k䅼7,.cn%qR`[/Xcg%x:N7#7[C.0l\r8)F g9-Pd1(7t=zRzd$ +SbV>+8iWAX9xn]X3#u^ׄL +ڎ$MvLE^K&1@sOރK5F mĤAAD14p_]blN*GjT C68'VD*ؕT–Մ7oBpڒeYQݫ e +䫟A(U޿Ƿy}q~G:>mR>?tx1~_7LJgͯ)XJ*W&C+ګ-b`VJFT-Q>EmqEāB"T3D=X/#"};"݊ڒSx G.Ge曘DhK<"1D#Ls DwQQ޷Ͱ P[meDӱuWD _i@fgǖRc|Tl/\ӱx؞zZ\a3Glx}(U!_u"+;E:%Cogװ" a +%3d>!΢j{fUd Y rPmBXC8RK&^|M`> ͎y$rd4:O&hN֐z25,MK,{Ocb|X/5#'[V)NH)KsUe]:dǀz68KسgÍ]Vq(yK'pf$H$Dkjp6 #4wZFNIUBfYqUTVpQP.֬:5,k !!C7o0ل3 CCoĵ9R}YmX!ht0Zo3 H7T!u vJ;}Dq5H,8ee聥ABhmi}w 4Od y1}3Kpm4&/u!#[8Y7]/ 8޺e +q􀳮W#5 '&? Jd]&eu)-pڂGg]D.h9z%:FX[Z Bm> + {sp +S.r)J0.t%g',u9ѷn\_^Ѐp4k聥pF-+q)1kKvu/Ś$)ީ<~1gA=f>1bCyИ@ 豽(bJ8bmi}^g[s +SsU QcnpB$K]Y2@IYzYqB6`L/G,u+^E puNA).)#_;dl̞ $;vb.!h{Y ] ^s gy\DkK8i/N(i?ςnf7u.qglAm̂nfW qgJMLtDcMiݲHZd:-sB]RQ7ʍj|k)s'#G߅%}^ ZaOhVA|s[|`oNn"ذ[ KPV'-At$J߁vzY l-l)x`KA3z^&פkKA \+UX4jf ^s~F֯+ų>1J.?iw]O1ʔ{b5niY$ lfHݏɮ|vGf<.<Auu!)ͻI_n(O[ztUg!F!)~1tꩶ$'ًuix6y=k{vto,Bnob@LΠQBx{.?.[F?mD1>Kǐ B;&~rw55~z`Tb6WS?n]{p ||@go &=8a3sek^×iU>^⩜ 7bWL&'š?;a܄ %H-JHCAg2HXyJ;{G~/"Hӛ_ {e'oP O"y?1YU[]<&M? e^о穜oMiju> +stream +x+*4Pp + +endstream endobj 74 0 obj <>>> endobj 628 0 obj <>/Filter /FlateDecode /Length 3364 >> +stream +x[]_WҤfZk&Kٛ4.)AVȖm)"yR}D[(SAX s޻6wMBs=sf?WRB߶܊/HOIW:|E'׀UBҺb(cFռԮֶFc1,~GRJxtK2 ,8p݅*V W@Q?CQѧe*k4!Ri'K]hTk=uc +VYPJ' +x(U.1̭8z>HY +-)c-,L(%B ^X_(GW C-b(x H;[<hcm)Dp0ŊhD6fj +F)qaZubTþӚ@-mO\iRxg妝Tդ* {jg  #&ChWEǒr +ڴVǗfYY͉ޗ*.ٯTм)a*Bŷޡ⇾1(e1P=xd.g5=# Xe#:[ƵE{^.RAeؘ}*Y5Pw|!mӮ\[Py<Ȼ::IR^`m FXDqԜ/&˯&a usGEH}aBW Uxxj4cMuJT:j+W"H^7q{%-#…i3l;C{{MZz" +4 0w[S-hCNhڪZj50Pܰj0PۺZŷ߬=s; +Ł5 iG+z7tcٟ/Y* _J"CO$3NP#R''?K, '#S_pg6)Sb?Wo=S("&1đ;v8Fk z>[ľx E>`v4 .)1¢hQ noݮOG"}}tߣT=ñYNI3YT+;0/GuRۉ+Ծvb}O[Cࠜ4(QAllliWXJjš} W׹vI_a{/%emF& !_mL,ۣG=s 4P|)0`NOfXG~y76w0& `ayRMHLvanSJ[X;\7S_'D^*Ôޱ# .QRc͞Eb^vx=zӨk^fYpg?g4KV%'0 D0{e`7#!C5Jb|e1> +ſjf>ĬMA]`M'P]m3] {WJEq;]z{: NŒvݾ߬6W00x$'buqڧ +*i#[+Lb6&H IwX˿`B7~b0V{qI*1UYF?]W+AJ@!li@ R)p4a)-k5ָ¯uzn= A4nVuL +d{HC.%6`==;EZ \'>:}n* +ZZHMiLUOq)<|J ms`)e{}8u# qރ.Cf_/!K^Vz!nBr9hY*ȇ{NK/|'(05XoYzs<_g-S嫌u*.j\*&AOQa[qg7+Y{4;|ˍ+1+kS^Y- WVꠡ*Ut6"6ɯM~El+b_i/oŒ*|G9ßQxba$X滾-7i~EcMlTj?6V[瘍!:9fc3)G{+ۧUC9tdXu, 67uWTcjNvpۮ#j]P&5"lmENk˘Yt`vQU۰OsdjcVJ1ZŒU' gYWi.62NU|;dptQ:gk-N'7PFs?yoߌ*6sŹ+Yыs6 nTvUh [ UGɫ5sj]K 0!QT; zHS,q)}p4ps]%c#Zf': "ǭf4fz@LKV ćIjȘ׋BvOndu53aE68486xgwly"NS·PQQW&NEs@h" 3zf?S_ F$q#/ccY¶0>7?ec#n1'?lju5ݿ> endobj 72 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*44Wp + +endstream endobj 70 0 obj <>>> endobj 630 0 obj <>/Filter /FlateDecode /Length 3474 >> +stream +x[]]Eoa.ز nm8w;33gfNBeVK6֏ iB#kb0_,$&$$"41>!!9o9s>tg?~}TS6~`;eoO&BȒhvEd;KI.+N( +NcTDzf2Fh*GW9\R J(] Y5b Jrp8g;$4K4=o4%7LȸR2^g UA)JL0pnM UJ;yNa81XҶmt9sŒLP~.̭yA ќ:YuXAxBdS _#/?^[#ZFHB^ZèLև)r⡪-B4-lkes:LՠK׭к%4l!v@G5Ԧ5VIJ4c! 7J/\Aܼ/SJd tS^θHn"~g 4kR/~m?x@*l_M> OנeᄋzP{?BF~Y̒Egxa7`XN\4۴z]Ywsis)K;]fT%oמc[ޱ+S0'~Wy~3@&Ϯ`YyJ;< ' zǮ3&-Wz†̲U}ɤxEXY<\*5ѶK R;03ϴgO ֶhEPM/o,٪OFh!d 2^053KI^$Z(\ǧ,-BُV 6<_0"1"'֏1KT*r&n\Ǫ;':JMGb#vYqccwcccߵ9[^#ow+)yMJck3vÇCx}@u0:a?!} }@5lSnCz{8,}H5ʡ)QpYww; b' +;@`;fs-xס3)P/Ḅ:{s?zr*4@Żwea)EitB@o!~G d{3n4 Ǝ ;ohz<>ߝ =4w;)%4i/:٫>0]"f _"ΦȰ;B努?DGA \.ԲdvKA9(Luv/cg*s`$4sPm*Zov?d ?!HJssjì {`qbO܂!QgaF FѲJ1pcG!mq-Mb豋_c-Q[6Ƽp5i;54:&p:?t3:c_h:-P pAQ5alyp%/Ѫ0ta8Z(:0/ԒfA˯!UovX $z L>:&!(r(&!L0"a 04(iar8&(nh:4a8juM_ay|}Cu>:1Sqʷ>%< + ,41K} O C:& Jkʆo-K֬cFXt*=F-Xq5J+_! +y)ˢݠ):!iA9W +a͠[&EQsRV.s}Oez]5=?!}5{z t*e.}*nNL:WN-*phrgo>h,ĺ'a{Pw:mbpSƱ7M9'~`}4QL+"%ل 4tY!IfeU`z:Am 8L5 !asZWQGgpXp fc'wURs[Q%hJp8sO: FDTPE/#OTA'aRSo?v?k]i?rgLF!x +ƘV%J&Nm!hj#ӌRʒEP϶/иc +U8=ضQ#\Ս_s Er U\2C`g*vIjl]u0zUoS +&JJݺ$y=.jYrض9Ww?ǘw 57E?V)[;[aa';y,y8lx,U,gzAY.fM pȵA-WRӌ 3dD3ub,i}9v^)wzTWa7Sa[mGk''- ~է48e!姼G"']GaN}J42a-eL)5*'J\9t@$O.W@q[P +eTP 0'*E(|f.n_8R&P +%d`X5M& jێGPkv|9ţ(q氇~vh}+2Q&Qä߹evB9c1/'6N0Ұmw3 +y/Mpw "}JJ.TH2ֹ1? pגX9Xn,})ҡ>x +3Ж,cOBz۩q<9£yB: 6\3ES@f?YBswq! +I^~Lu!@071ZvX~7L#fmY-M3xU3a ~*p(2t3z1Я:ug)7o6ˁE0nNQ[~(}xsӷ_=3ov'翂|U8uj/P,Ɨx^:Pë"h|_ͯxt-t{0'xL[%X鬈 +xZ& U*)y*__R?ʂV +endstream endobj 68 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*44Sp +{ +endstream endobj 66 0 obj <>>> endobj 631 0 obj <>/Filter /FlateDecode /Length 3652 >> +stream +x[m]E.pݮe.m^=9gΜsT. 5XEK%$?!CI )1~AH&~hBĀ$Bu{̹gn3Ιyߙ{_3 +#Ռw캏eͻw7&Tʺ4,yosߪ*T5WEaQ2mY&IEV DZ>#qѠ 6`,Lb˲f*(QhJ4u8[[(}`e8 +"v<:vhL8TK[:->/¶ǡ2Z|q = +*y53as@84 +{^3@Ke0]$,T&mQEܓmoe#Pe>a6 +/;|+1aZ.7^ʷiK( +8gqG7A^o^`G/ndȃ@p8>~=ź5L.9b.J[2ۺ b?f?_gI%,ʁwʰT`)`֋P͓~w?m> d=c;[#-,Y;=`tu.{(7e” {Z͘Hs: +fnCy8CoJQ٧鶂{v$ E5ލu,@݅AuHP-Jk9ijNL%04ۍ ~ MOPY: T砢E$(!sG[dEi. SץjQU&y%e(%kaf* ^(HT0 $IꐈM$ Ռ`~C\W=_&h(;f_;nd-t퍓.l;?s3ok$\HdWE`WwB9IK1:/R }ެ㤰+ + cdc򼨛?QaEgg8b w[JI~J~JZ'R i4iwSJD_FBx$~qMx^V + ! '\aPfVBk*AYQ,$*Y6̂T +!ɳ-m3+qVM x}*1>l`:c;,BZ:ީzR}!1zRFi:@qe?.~m/cWr+x[}Cv'Ci]Q + ) "8Nl3vFp0tt +ldڜNL;9EGwS-t%e:_#J)EG LC4a@MN.S>:`J8 +'sj*8wKңA=dŻ&S6rQ#`Bw*_S{I&asf7'yYwWtx;ə93<* L9²z\taO9KPiw w] +MGE.H %s*EDjRSsVT(Ae >qf֥a1Z=A hYwOzПjt\&Gebګ,3cupݿ]>ʱJv|6;%5 H24߲?+ cK}/ēX % e'1ɾ&oQXR7X=VˑpS)2J~ĊA_G$%0s O߶ λ8H^+x{0:劀=߰Yvtu I )CP"g7Îv{@Z:ع ]$?o Xw3?NaD͝!9I֩no/ZuЀJRAdL;MJ9!l 㧡ϻN`Ҵ@׶4,xcܛM%0f8"yMuxv9≤=ļbeɾ]4OYU9P|>SSO}d{(+?<IȞW*L:Tբ +zf +?pn8mNbh0^9WGrABsjsjZ ]Zo6 +endstream endobj 64 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*44Up +t +endstream endobj 62 0 obj <>>> endobj 632 0 obj <>/Filter /FlateDecode /Length 3671 >> +stream +x[o]Ev1,k}w;s.h&Xe5F J4$bI  !b0~P$"[$h5&#Ě@4 3;ͼ:ܹs9;sfNFu㶻^';w~n<9~8B}ؾҪdEa*:wGaI\2 +DVzw~(1Ƒԓ~j/Q Fi<8#/m) kMU(;\aoi~Dƽ|`@4@գFy.xf_lU|Jzv'u3X*p~Wn?1hޣב>A#ίPǏo\]DcscWi*Qqv>UX{  )mWvyȓ(,2ɢJa8` *}h-ĸ l>·;85Xu,c6?%#ZYt +J(v#(i^_3Ɔm0 `@@ly3 Ӂz1љQ=@BeI5HãFV߆$E:=+MȆ EMZwly sB D*}: Nd?aG%v }| +F#}e\).cM BkO\5t4^;%Er&*c{N="8#QÞ,x # ~oe:~ ")e7'ai\HWc#2?/VBkICW\ykbͦu1lشՌion +iKǮ\ЀHVf1 1ud*r fA&$YX=?fR)d*䘀(rQpKӰ4yk h7WAPXb@G- pC$oH'`|jǟp=\K@U.Vvp FR4Rkڿ6n}y !tAY;=7-㒫"z[QåR[BT6cj!!'G~O$$y>A,xUr%aܜ H*ӻ}#UWq^dTb׌,6 +-U1$z0E)9cSa8g0]qPs6ꃹ0Ql_J[?{[o R - =Fo܂tj=u )X);7L'Oh/EMUX"Friw7)FEw[ tNK2;6mR< &żICZkqypǬtJ( nK$*@=dfc+{]B4ˑ;SPbcj('[ơL4kO>I “0R]ӠD6AwBA+nlm<0 +˶Qm$D>G-yLUԫe4ma>u]MGzˏP>Gwc(trǞ;CR&q5xu; IqБh-XIUcFTRŦZᵖ>U`Ubd(T-D.!牶H]F1[[7q q 8n!7;XݟEaƩ-d'YQ4q-^ٙ ]؍A̜9J wi: quOCB59ՄbݼnzARIM^'LԀ,M } n-y#Z2ٕ#CfW@؉uHFTiQFiv& AyaYM ̝|mt%&Vՙq(A*Nr./m'ۺⵁ[*"!T+esMkBfKr,Q +V9C / +bom\rؖ[X"~[0ۜOx˯41OώM dtg.AB2RX|a#P"xB.7|ٰ7TՍEse\k"c/#vcV*usY q +endstream endobj 60 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*44Qp +m +endstream endobj 58 0 obj <>>> endobj 633 0 obj <>/Filter /FlateDecode /Length 3844 >> +stream +x[_^EgaGڲՖvgk;3νL@&BRYc%6>>* D +j b0@ BbbĀ5`*ι?ۏv;3g9ϙ PwC&vܒtDؽ{ uð}Xw*XwLAe,veJwHӿc=1?ߟ;JIP Zt3rJF2*'4,A -%d#b^|y߀,]of_YSAI枹"JӮJ@uui.5qpEAiF6g@ΒE35D%i<C&V)֘}ֈTOC_g" 4oBgi?k }1{O'/BEGq/}~<`~@>x$3`tvY37 :S'qgw o`K,dwnvbnA@} +MJqok~v<ɏO/< `4,.́ FG8~;+ظGE<Kð¹/4Ntb 2{|])2ٻj[l2s=pw+qs~<^wޏoҷg9!3ReAhD o|mm>WoO"DFtީ:@ }{mMXqZ,b۳VH-&s"m*|<16SQdZwuXeDpējS sR+m <$؛+*'06:آ&c7 ;?2 1xG;(\Re* + -/fȧ Fq/}`}_+Ei -})qheo{& +zS}h s+TJ8 z5G3j*Y=Nv7~ AʹmÅXIfl']Z")JeEA{)c +#R CWW]7(붽i*1 +q[3߷:똇'8;>{ڏTy)\bS6Ri,vL}R{ʭ}+#M|UX"y.a&Glj HBЮsC;(m0v+4kдD%C%42~m@!'шhBP6'rҽJ"H-MXe6WZD  :՘ݻ:خ{3*2d*3e4QQ>ial0(߁N/hғޢ"g9c,?aIP2VoPԗ$$qh + {}ҷX5WE{+)43r |4%rKe5h۱ ʻ`aJ{5G.՗nّ\٢`q귛?`|6NAX #yW:tmf)˕ rW[=MյJNGIkz7͒eq(r-y,7iy-&~7h6~C^3aw+ Z'd.Ù."?wA+}DRmVʖ/3wBL4nL"G"} ::1~1`twbSY$pmH^'. Db)2̺εO: wOV"ӌKG{w? +8LٚThtGob9&c!s*7cj4.op2;\%(u77,m%ar6*pUZ߅T4MXB*'Ez|%bo{+s/jK-`Ae)gID4u:U1( h+2S\Zs xCo@،2I9Tט"Y82h">D0& +YAvK,mw] eQ-Y;}x+x\>L)`'v2LWEY,NR5G"OA +-q EyCsوsbm\8D>kj.WK{F MRNۚ)mr2V4:8AS[b$QfK_uPĐߞ.wYc}4_PzVDWolVj7/vR:3{\* J0l+e(i/_3V,F5ќ$[0RC3Md4tom&*APC* yHk{8 BJ8m 3AeJTg.UEy6hfw71`פ,$mWNAIsweV WOn7[dF4WXV!/-g1´B/B&̾AS洫.VOatjŧ^LS +c&2P*H&6mbEmUI1.r6ǩ?Nlbs{i0N'l6Ρq'5ho~֏S;Nevm)(;)? +8Χ8;J,N>KiYnjDL3j,˨Gv!Z N۱$PWRmj¬HH SaLefj"e + ++5m[)]Þ>4խLd%^śXDZ+Vnp?,݊> +stream +x+*44Vp +f +endstream endobj 54 0 obj <>>> endobj 634 0 obj <>/Filter /FlateDecode /Length 4279 >> +stream +x]UvKۭ҅_im{g܉m(-5kP +RC%$(O +( "Ք&i7>Ssfs3_[{ܟs9$Nl'?wx 'V6嘄Wg8(TWs;:Obc;yj̽ÑÏ4Lp VcSԪ%10w Tep$wa(/;Ir=k$v73|xXu6VŦcBsw]4.lǹX$EdN%vyhI>#"wiy8Iwp)R5RDEWS +[&(trD4|g( ?/.yFXh eߢ1{cbd ]i]9ɽ:e?IWs:~^H{5+&Ky1Ly\,YZ +,f];WةDh.4:umzh1V +7ۖe`<.R;c"J̹F 9@<,%`߄L.=+$~ +/LGLT )N<J0HGT-UkT4PQ?~CS`f%VC*2:&@֚hT) &Mtee{ą2~ĉOHq +MmMxLepk\e+]AZb[9Ѹv[y7;&[Y&Z׶'lWd&6Fv>Ƈ/Tnc@. Sܿm_} {y ԿiG9rD|-eXz>( VrᢩTRNUYŠ@W;:6tl.=1 k ~~QZ{ZO5rO=>čFNJWW,{NWE C0J`+3]5ňقl#㳌v[7 J܋K\F1bls<{p6"ragh*ؕDAEd6O*Ф%cljp57̰WbN?nG~tp0: c kq?!og +I0r.gG(bm-nU4t=w#W O7~Q ~i*BĨgNq% a,rv.v40LE]ii!*'7!:n$ YHwVA M,ʄlI)RX0`ln-hA뷢Ăt0 ~gC׍ڰ=cx *8^ +\x[X OA`%+B84AI5VܸR) $ќq(h`Io !IhBv͛6f.%hu-V"t@4(B +׻ %4]sDžo6*nٻht¨,./`ldҜkAGk/K:pt+6xͮJp0<!2F~ +ya! Ďm?SF@ཤYU.\JzZYBr$e-^KB{b"=cg"PoLoՈ@E jF9̅9|Z0$ ^QQHh|XEf*_REX*Zi:-wO% "^R2+z 5<1%ޓt^'S4EV8ֹɀ@jI/i`/nLX ZՊ4E[|ռXKMMp)Xp4MCq: R.(h 8.<"1GO僫[uCLb |,0="yY"5IJչOA"-Ȝu@Ӓ_J%4ZT}UT]"A5]LH9VtL'e0gA5RT&O GXђHȠ2< gjE.#B'wJoQDSi;4hc7f`܂O0rM )m"_'_eQan H(y 2:9?cy8jYBsd4f/k0,x +#E/xx-mC6O2hxa-y5t~GÜmU/OAB&v?k~eI*\f2prPS~A0pa'fg 6.6R/v=+IEcRX\;LN*O;2*Ab)w!#tl&. 꺤n]VEx "R]iefZ*w¸>XA@$$RKf@MsBbkه<] q>BZAlI%,j`:b0tZh, y픬铆4ɼyg"*IjU>$\NjتШ%!il(Уzf:βhiq|I8$ E=0#H~· P3Qcl" 2 47نJ d66%2/(bmqJHG9рDɿ@" = iAʙ5pYQP5evxEZl;o6ueiQm58QjܧږS(2\('|L. +F\s܏A Ϯ~yh/HD@sPS!`ŷSdAơK)q_!v|eP"ʇq,2{O1g3[qR ďrt>*3^j׽&*T6FF_0OlVdAth` M]4jq+I;~SzkLK5ҜR%xh͜:% + R+>yƻ@9AY4k9Rǩ#-B/ bP9 2hw)< ++Ft +82:1=9;J#L?B)Y蠊Y>\)(:m?VSCFe}ΨEVV{SZi !Ǚ h(5ԌBVcm_$T3|[K*n-ѐ,k&tOhpZx^HU:6 a1>w2ϫ(HP⃇Ef-37pp;O%hSbb}XwnJ;E2m1Gdsf_D+bSeG(}@tNx!' =VL%?lmJ)+W9ytfMtпN<b)oiЬaѮL_ E2p S CUTǪ+h7?#sGi%yoo,CȞ.N6N.` j$Pݧ`<?"Ook-ѽʟ?t +endstream endobj 52 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*44Rp +_ + +endstream endobj 50 0 obj <>>> endobj 635 0 obj <>/Filter /FlateDecode /Length 3916 >> +stream +x[k]Eptv[8w{83sΜ)ە]ZZPby4R4jDbb&0c`5~!41ŀAΜ{f7瞹{%au{g3L)|ʛ54oss}XU5MoIb)eJ;c4Obƛy;F"ZUDG46`5rh%X1Iu}tdT.肋Z$HIBXbSCfN,9>HY +6ѵF|R4TF-^v%`{#ʦgݨQ~3j-#y:ۮc67Py7*_Eu5Wx΍̫b&hH3]RTg94+ lKAT)GR[[){:{6KE,RlKڙ0{!H, +&WE%w +熴<(Ͷ$-Ş-C #DH^w~WTN<5i:}uFq[Z0S*WA)ױc>9 7j$ڤm2ezrRǨT^5Լt̼_ rk'ᓡUn [ct9{X-}F3jQX@i: Cώ?kP3Wchs٭R.TL~U|&]->R.}*٥Pl MȥuEc *텷$dUTg]Or%h0+/!}i0 ."IߨVxFMr!yzΠdi 5swИpLY,=2΄ +ji`\Y32U2ړ\]}ucF(gc,Bhf(/9*U_)1f5wsj`(\eEKxصk|d:a>Xó>/>.3b'@!aϺ!u]Ϧyg1m5t;5̊:DT(#DkO.X.ίiheb:1e{| Q_v +cs+ + Wb{J}ё)O)\Gh\@>|t|87(>"O$Nw:B{\h/> a z +cɋat6۸u#ўlFy"^)$uUd6%VClSZ +ݿTYwv&`hu8a=UR}m\DcQ :Բ­7V!I99N58Ҹ 2 _2 _( `M&sLЂ7o7k&hCw@igh}3R:%:/JϔbGIy!( P¯wPD kcnw4dyFvmSA\ +[!y.l &ESsFkڒ!1e^T1/ڢӾ3]\8RϽ8R_+u e_@́/:#4޳m&/4uϥQsQe̹<0D쭦=*PIh@?iK-` +alxdK@vC+(q3PӁ|\@_Jy~.hSv :xFrȳ 8+?{v2 `7%NԼ7u"CuJ;:[Ce5{q2'ҏO % +fʣǺ/V(iZHx:XWB1=vi!&ᩞCoե2_: e1@,2R΁&t*~wCܿY|Ev*޺婺zUM!Pч> +|<9t\I#~xݒM]='߃X~_Y mb,/O@G|6 j+bٵS'[74Ϊ-{9YS 's h1@[oc +0Q">;#"N2˯E +YTn ,42eCA]Y6>ecyB| +?b=,65k['q]/*V/7 +>5[z!krڰyec+z[f^~hzv8UmTme=j7 3LzA[ 3#=[znOxIs`o@kEGiAĆsJmId(TUhm*ne-df#_& \>@Ke>/+H \mn^)ܶ~J`edk7:^oӀ՘pKaƚy)s"ibb]df*#VRBA%['V{~c%̘E43|h ֧|k [~+u9;j*w:DSaef&n=ޝv!KO,a2eoJ7mbnFUY07nI;/=f^?"]_Uhr,0kvGGn +endstream endobj 48 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*44Tp +X +endstream endobj 46 0 obj <>>> endobj 636 0 obj <>/Filter /FlateDecode /Length 3458 >> +stream +x[]U0T:0ʫƛʹN՗Y#3֗m52x؏, hUu;WzQ_QAz֮u 8`j} d#ٱB[_ gpl!gfs5},ܸy^n];=t eAҠd^U1wfG =4|zpcSC=!9[Ho@꠹Ob +x>8]YCfiFB"2 `y'FICusI39£ɇ٦@SZ( Mʓ%Dh)EƮt[auYeYebt2xK[p{K&ҳRl:>3,Xa `p#7p+gBZkk;R8+W2L#]/?W&]KF +'L16Mzt6YA4H킾gٴZ!ZO9G9s8(LJ@V }6%‹Ԕ7&z{PU͊9TbK*  +*~񅞇N[S@+X3T mQ?Tj{JbjMg哿@wӀxVop +TY(3>35 ݝ+JHA?gmEOJt}ѻ`GEo]M9&KO뫥BG dU -54|>T{ .NiBҭ|*d#JJ& +i5)NT~so}jk4mO$-iE6;{7Kے]MۗIWJQ膺NS'Xg6+&:J\G/H\8A\T6:[MDAt|1vs{ i~]D'ݙs0]% ]zyN 4(np~vr"`kSj\Tq}=&,sf9ıѧ<[y1{\0[.$=O}wl뚮'{`rwR(5 G[3C 2My}r?hy +endstream endobj 44 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*44Pp +Q +endstream endobj 42 0 obj <>>> endobj 637 0 obj <>/Filter /FlateDecode /Length 4418 >> +stream +x\keqޕjYI&#WW{G"Kea@gc Ҙ1Oٱ@ Q"񯄄H 6$~AIOwW{Ν=ؘ0?:S03e>;~N?6΋;4󇟟kr;fkJľSaY#*vߙ $ .,N;dVHj;;{S(e7d=S9k՜Wvwpܔ ix#+;ϝV^5Lka +7;ksٙ[eL Ȅ]o@I\ ;(wpUq>]p< j0NeSzl79_h 9zfHjvB*>/}+?(/3K}>!dͲgKΗwnϕЂ.6/\q3wIX~eL$;{k*[iTV6q?=mJJ„ lØ.NB\> $˅gPnln*)-64 K_zE(me )0@'P5KUyo]jgL~|b.Yۡ9aqD΍=Rmfm:=\m9(Vq4ߞb!%؅ 4]e*(Y &j܀ʅ+8G˫lǾK[i| +-|O I<.νߤQUƜ.mYvC"ĤVzK#r!@E'LF/8fn௔ۿGsߣsAi[RmxbViu +ȝx4Vg͟>CZP"14E3p_$tsxl7Hù-Kr˟&g*kp2brLuuz+cv +&Vy T=} | :Z#Gc-Ӯ>IR*nix )ltÛ/)NJ@:U9= +#jkB3XTWGUBQ mRAt~Fy&+B/)^7/Vc5P?UЫ0i*q)!`F*]H=_`ocX*b Ks }ƅykުxQyÔkXhY)Vg/5ZGd-uL+;L[TL4W")9cw^}fru "#tə|6ic )u9#Y?&Y}x MQ!)rz+S[.-R]*,B +|HódX8ec;\oɠA{>@is +{3Ueigr> ǭMV>e]ŊV ({xSk֓+0%SR6)!(zIgU_F/?N +O[kEr,`|U^gpƐd0ե ZzDwtKojw #@[WK9rؖލ0u* vY dV܌*|kV +ƸUz* _vعR H|<(Ǹ1ůB\08(Ƹ&9fgM=,R۫~q Wj.݁;)8f]OwNy_Yan*C.?k1˒N"3aioB<& nqz_y ^<Xw][Drሚk^vv: +?KaUBm@*wB=B{tݕԒz`̴U?C8o F9e(:9.2 =`B{h\{#_% LQޣ ZCUr}Iz/=!W-z|%ѷ*wW} O^ ,Z=~xiEF4 gy!'p^hрݬ~u?_FEL/6#T +n%apD/ЇpJTT=xoYF:eD9Oy~A~s<ّ0k)7z'@۴, mRil]Z]ʲ$SپZz)P.AY=WlTnWi^_zUMYd^) 9»q#JlMB E;|-iҾV'*I*Ud{û/75$yo~whz]y0[7J+uSK =!Is991dؤd`=9?(>!<ۘ+ RtgN4R= +uzFN`F}|nS)5&*{ wl"}~;IZ`Or۟4iy2Tie]W +JȅtQ,Ϙh S )bj/D!BT?逿'1ic&C\z_u[~j Qؐ51kYG~Ϳe4xRC3TZ9@v vzd6ZRC,)A?r( }T~NɖPQ)|Pb+7īmI jmvw&J՗^ *,)Z-k(5TnT}9w UoQt'ZjRgw.zt;i7Z碁Wz)S=g$}ӹ_Z~ۥ-* !S P( y_My)z}! +endstream endobj 40 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*Tp + +endstream endobj 38 0 obj <>>> endobj 638 0 obj <>/Filter /FlateDecode /Length 4095 >> +stream +x]^EP +|]QJ4E(Yd4/5&/%  jԠbBBwfܟb39gΜ˘0w?tխfpGδhׯPneܷ2k؁0,z`?+- h$$.3 .rp{5j2)P~vм1\BdZ\VE#_؝+jk +V$kYY:UQ gr߻tߙUՃȸf +7kuјe(5-Fx~p\~[pUҙ0}t>39&ҹ㤳vEiҹltR\Q +\d5iW9:aMkvYd4Vp"8 к,|v j,ցuh&gpNMD9-df͌c )V ޞ57Vg-̬ F XP+ +vzjKm6XBXhq59% +Ta4TzqȂ)'mVHlHNf g\nXvmb3 4?c4E5~ˌ"SM}kvb1T0fɊrAw1S4ds)_х!gn]L23MNQ.`F\Qd74\B*CKDn%VͽJ:p4v;T-A sٵ&oG,uN:kW u2ο4I:ގӯ;.!Nvh8+N /"Tbv8kdԡ#`ȌO;;;8c[0*4g͠z'Ji1ב-Z%~xI2TTW'C`]D@+p+s/ܥ+{}H >1y` a^Q+_Zb5⤵e*G9ۿXcŏ +ȗ ;<2ݮ7Zs/Q(0OD]&a + +ů2do2 #Ho0L\$UL*{(]e*Eͦ)1{" y"R~#S/O{1dV%t*k#)e~=Xu4(ūՠB%m*m=.54)s5h 9@Nq>$,tJT#%x٧#r(%@>UKeIz'ZcsӷQNt p+X>9Ѻ@W}>8w}%cq؞#P/0xt0|H1{tb= uǔ$Z[w+qTqxby#f*[# qYȱ+W#)+*(;(?jqpeepMmBmo;'u(&E4u%^AP%aG/ (/;YPJOunG C!u9Otz3 >)<05; p{"t+l!1aj8 O?sk%b65}Hrh 霳6YNbuӤ'E;Y<5dI-*uB\K d/Ftkߥt{i4C㟃Doӌ|L4*?hrwP+e?'nHG_Adrmu-rZMV$IoDSo{32Sz>Cc{Kմ9P+abrx6$Na8*{N_i#`k+|v 9RӒ'^W$ wZwZ,K6z*0M݊ғ̋&~2sS6 #ysČ1Ӷ(TKqxo'I=TNxmHzd +K+4=trᙘp+3mt8_$zP떧*2oi3kt a=*7߸#sƢ?WRHķ"X}];h7X#qH?Ǥ\7@gZM!8{Eٙ}FN%`Ar6a/*#9Pwr-n*L/lV?QQU1OՋ *{k2CҶò3Τ+{ybEi%Kn\"9acJh`* +hoSҚ` Zar`~F&ЖN(t!YQcfJZ#p|kaX@%;^f3U[^% +. cd\)[#cRD,aK\cD=_ pP남xc`چ~K|-|tE;ܷ`G `/υ .,Xͩ=H _`vyf2&KamJdgX:Y +y(hP9,fݦLOCfC!E:,vT 95K%S-q5SqDk ᛈt12#oף~q b}Dv g@ƹQa$ e7:UPENL-dyHd-g7OIY039n=>c`XBd+끦 &4CJG{bkt(EdLL'jS5:&s Np&7biS.3v*S|#wڠ$+#j`dT(K^ $tAόd֣d5:zd,/`$G5ƾpuS9| +9| +9KVeXUcUXRng؆N#DH*n owATVAͪ~骿ZI:NJ?6XjS--~t,XNS5Zۡf.A+RJT5!U?llX(BHm_6lv$AKKKnQScͲ!;ocZZ}}kI6aa<Ы/iíܤR%rPnhwpǢM.se{]nq`%gsac و1rZ7Q-.t˵u/ dWQbXC#6Q2fJL`Qڔ,*ahA!VSI缗S#+%O~P.*#2wrn1Q_x@R~|X~Eeګ>UgJ525gN[stRZ,`6nx˴ZwU(cz(hXa +endstream endobj 36 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*Pp + +endstream endobj 34 0 obj <>>> endobj 639 0 obj <>/Filter /FlateDecode /Length 4430 >> +stream +x[{Ug 6}.ﹴ;̙ǙJifIZZdE%FJb  J4h `/$&hbB,T3$oܹw9|ǽlgw]uc:z<Ƀ$ɼͷ`Tk'nQԫ2o0eJF^&@:ǏoyV7roj +Ƥc4<1~*!deeRm+,Í-ڂϯg@l' yUa>8__)@Љ bj#J^ }UE犦CWt_8V~Y G뿇aڐ $牷1pL|5 o~4z[c&Yz[QA f0M$TߖGPz ,`x1K10xGc f~5\h%43nÊ͍L) o)CJܞZ݈s N$jWa=4@ݽ0 8,1 +v\f Vb_c(~P+]EB˯(Fg=_`sefLr25]q ~H+cBa`0Xjkj0c,:o8_ )edQFM&.jd͑#V: mjZ{`[X~NyE`o0%o-?BU.ؒv0bJ@\G~J`W3$$05TySY ²c жXm.: ΈpN@bjok,nG` @ G [l s%Dem [S y/>0;@,G*`1Ng8 .f 7f=1JPˬr5u#x`zbKXs ݖ߷EA[ăCy޻$#ny3Od`rFBj:%qT/ /#X2Q7NQH_q7t{& $AUFD}1kHd,K +0iMk^tUi%j;?ẑmzNSܠARl@BT9$ӕns4OOyuđSi,sNԣqһVKػ|!I?P.0fP|qhEBnZX+MHL/NCXN.\N>ye̼[Xmͧ:lr|> U. ?I=o{l[z=*}Uy&(,1*_LG3wS0X +a{Qg]E-|{v^Ҝx =$ݸ}D ]w4PʉIj:oa( P(ccK1 b߃qxMR1 k6眵C?Ț0Y_ViMֶLh+C >n3*.) ,wQ; +gȵ1OWy9X W`^H0N$FHg\S^5H,~ *xt\za>$- PF|%s(Yt7SfUrb +^/F.D&UN@)b5-xzNVy5VZ%1L7 +e.0*'| #:`$mAC܀EoϾW_0O 5P|Ya:X;GK8WmAO '40 7ѹi%W"M@ػKr{*[me.vDkQ 1ghđV13>Ag:,wg +JWV2cD! T̢hu2A_:F(Hnq=d4ṋ ǰa`%]1P ?d]ypڞюgyOV]_JFv6@j# AQ|8>Ol &h]Jz 'nR$ s]׶K+S#GQеJY7V# +$EQ\ϟk I{]p +e2 +=k4e mN'^)Տ>GRǶ,ZA)c,$3M&d6)4J̧b51LWb>f,Y{#,ѪksNl0O +3T cy*!gnGn6%#0tA"wzIvs"Sw//H.HR”6-qHLQv~gBQ\1C oe@mQmCDVr[2kA5kE".w)n++&V**b2me$VZb2vu4R{d&~܁m"? +ph-o5*jя4 gUqV~IH=aj}YHCaёd lxF>!VwWʢ?%~CuP:OCꡁ֟QgJm""̀q6qUʜvt: La}؃뛊2uY"%2JK_:p?dx)Gc`^:Q \y9#፦(s*uJm6 sYX[FEfxXBZ& +a2JJ3 )ÍN6>#]RF5MAr.׬`ySTW5p2_Ȭ.TzUKns)g*qccзᑇyMGdYu'0PG"Ù>ȲCy"|#б7c ;ϔf YwA.I9{8)*STkO*;ƭ*ub2Х0&94$ȧMvNjKmuZZU ZlPy ,k=!AڍwXZa7nү +@Bܖ.c)u`[%/K[-֒myjzβHݤ w24럯T|P$H1Sn3A%C̆HS\rC ?H1UZ&锑K0-IO4u!,a3n|t$:5mox +n(/˜w ƃjO}o痫P_1ӭ਋ĎL(W2ujZZ\ϲƑt6 +l?8٩ϨfsP,nBp"*WKZl:Z^Xkr~tI`m ujVfwڧtqj=4ũvw!f`Oʲ@awy<ಖ-dVeh h{_?˥J +endstream endobj 32 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*4Wp + +endstream endobj 30 0 obj <>>> endobj 640 0 obj <>/Filter /FlateDecode /Length 3810 >> +stream +xm]G5iwgHtwnm#w3XӦM6uHViY-OOP+GVAJ,R E UBs!#9Qqǣ;G?OtHvsCU ?z>cP(ɥZ+X1Mr2-o|Kzn(ю:sPi`Tᡮ<v> yxqFXHjsӲ=͠uSgjc"/gwoQX sTw6w{SJS̠睽I%[ !A{,k-ڤ6 Fm!+ +Jwiuny6YrnU"HLeB!CtXDheyu)0ec/.Xi#0Hph={A>r쾥XP954,#Z?Bn: aʁ;r;"64}=b}5pp"hx,|iBݱ?@B|6Z`,4JR)YBHH{ {nf' lX0@ƕ"1tUG)]~A@.ЄOD K]Z; k"f[*dH,,W"ȁv/hp2| ɫ)ƽ<w +[# 2⑁aqMp#VJw!vf-e3^*,쎡9|bNhLT{'ތ;/[%y$ȳό,&uYlB&r54e뾄Jh]E$y5YْzуWX׹F=y8sɘdE[P6a FSd,DnW +k86Vh{6ǂ88nutǚĔS*RzK; +%p@5#:z]hS8:C~D[}@ݛF76A.) xg*9+Jkb*_Z=bb$C'C@ 'D8y1УYk5z8HǙ`BPiEaY 2օW׉N(hq1)hqGrˁS0a.1\və$,ZMWmnE.=.~=R>8ύjbybq|s9rpl@`Q9g(jHc+p+CQ*L|6& 8X>c64ǚj]ˋK;2Xa~?ܴ _Xs +R]%%7XO}ք~" ͹8\'TekgNykg ,>QŷtHɞl;2'& A!>A2op[ Jt17ũsOd %R֙ɄTƄ`C2! # Ns] n߳%+.gP`6ҁTE@_g'4"CdP\f+k眎wXO%Q;%iW8fׯ|f+j+ !PjH'ev$SbAgUo87:Ӆw`6% +`RC-MnQ`f)xgTm-l%m FΕVRXx +LOm"ɉ& IeL&uDoDH%DizH!Hë![_ =k4em܏YutϫajI*lm6MTMtqI&d&Qɰva66n G5б k J:jCg.0v!@Z'$H !P;L'ȑd, aGDvohC7B`B{slܳ;^ܓ Û=>;$R}}KTI[qT +΋25j?̈8§iAYȆxFR&-0*ygt:`ʔ6kY><`P WfFqkIdI{)Irtql'{#dU2 +* +L.`<mCom0G#rO].6L=8a{6lDVdz|6ʽom-zp3'zf`-[17/82`0 +n8A+ X>S +%]h= ahm.Β%ތ^B^{q SzE?G +Hpʹ5r/UNdȟN ^-]<%5S"m&XG"Vhc8gK,nI~ˏ!=0q +endstream endobj 28 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*4Sp + +endstream endobj 26 0 obj <>>> endobj 641 0 obj <>/ExtGState<>/ProcSet [/PDF /Text /ImageB /ImageC /ImageI ] >>/Filter /FlateDecode /Length 2980 >> +stream +x]Mk$G 8cP)3xhككYf0rdutUDHQeFf>5ϟSñQ?k˷~tǾA1F5.@n4y|wͷLJ 6mWF7Z`\y_?k|#>t{}2n~||8Cs7Z /rFGɼw*z{_`ȯV~h>^f%Wv~^s=+QxPV\`'Ն=%&Vp5g̙pz324`[S*uǐe/$S%BkuǢ`ObVhkY0:vBZhKqZJLpmw AJ)m -J9} qd&ҶBS_R%0-[bzwpҽLMЉÿ-###[[^,;qa]Qºچҭ +XʨZ Y82^2)I3%w AJl^J}\ ZL&^*h:7hphڊVC+CZiQT˜|y͏Lt5i#3U (A)pʓV !Gh ԟ!Aƃa̓Ir )9/ ?0*UþH ]p{*ed}NB;옟ExSbd\p`kD@,FS)FX&/(a5"oNJ%w%DZ]RLm3.uW2Ԓ80yZ{P]Dm,uq4$"r(Y]"!QX=\ >Ilձ iDWFKlYEj@A/|}Ge^vGӺY[V=|Rcu 8ı,nq8^V S vaj)v=@0n(fW޷ +%c[R0X \V(=,f2 mr/k8oC:0g(glqPgVP4WŤSjVcXpZN{6cRXl[.-aj^$~l5¸eEmKh}+QK+K!upعX2`}*Wvm8gk +OIM U4ŗ0f%򱹲Wxavq4KsztCQ1K6*| )[HKKă,.D+GNbn{S7kG5֞jo<)ZAMI9_AKSbvD +y)fH4Y*%1/Ti{ {{[|OR4D{YR-"Fs%ar6+UU/S)YR5W%6zGj{Mjrn頬9ih)'bCR.<@gmđ1K#;bZ_81-Fsc`;4RvFUdzTuf# )ܳd.ZY jBzK|Zn J-k8BH-LMBc&W/}DnwAL])s4i->YV }[šhE)ܣe,.EkZ-#߀OZ+BGnh2!m$IkCY܈ִ1Hk=b2IФl-CR3r`!Z2z +v[A1nըt3o<ِVbe}#ņUb@TI/w b7J%s UB>ͱg0 ”X\VĂ[O= +endstream endobj 647 0 obj <> endobj 646 0 obj <> endobj 645 0 obj <> endobj 649 0 obj [274 ] endobj 648 0 obj <> endobj 650 0 obj <> +stream +x X$¾$ v,hAAEv "& +RMڪպܵ.AkZkuuj]k֝ޙJ<3s{9sΙw!pIBkT[qbt_]M,,$'bIaEQ l!-*-q>B]@|ތX { BH0.n#Kw-?!B}^]R^qi~,Վb҂je_##fʴg9@x_^u(n}B5[ eu9!|g+FEN$l9;CN.ץ‹'a&H:1‰ބX.;a\K`\GI 鶵_H'bAPu3a<"(!S,/$MDF*M}NB5;ѧiwa,9OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASA'?򮑆v_UȮT4 E&4X+DI6Y[|I\ 3 3gLV7uI'ԎW3rLEyYiQ# + uyÇ d HOKI4hĄ}bKJ+-fD)0 ⌆JA5 5+K#{; |-CM@- M HHΒsL%eʏh3 ,CRt{K mr$̈́ v"74p'!O)g@f b핞 1%-ZIy eegdP /ǛN&3yYz/+өY0bV{4.li#1rjVJ~Vzvŋ͍4w]2scM@lYp%Ԅq4g: ffgٛ..ekM94,L:c jK5φ͚e7,WK찦l(I3J-T]Zb*Q%ԦY; Tpf^RzLɂakܚ{`5iYl\ Ⱦ슐e $rM"Z7k\޴0 %`q/LLY!/W Q}>;-[6M"ޅ `%iMzrlHc\M#'u`6%טI[PHs5-ESPd<raz֊Vk-0Jb((ۋh uy2^Sؐk@Ne]]{`H,+V/4o[qPV_PKt4ϛC],W#+<*^AgY]\sL6O2xh8iiPht@>li>;e ^7PEx( + BE{_R-Id'pu㡻谭I^(Q{a5&v;edEZ-˸Jf!Mi!SAKo ~ +CyO +W +[pBR mED"c[d7O;&`q0k.faM%z#?4AJZN4 *tz=ښٲOеHd06+-8 Mv4mVaedCoKL v5ʶҦA~MܜmmZų!ij$YR뗼yӜZ5SȦ)kة\Q!ɍ +i}fJ0x=z6Ϻ]M$h/ a>`m^cՆ3g٦͏8`_w%zN>h9vp&Qhug^ʕmuƭ{u_gM+;R7@ ;t5^4oV'[5WɊaKn ^JƖPpNNbCdž;R.2*D>YxYQH [׻hL/yz2G0ל'l*̥; /?YUzm.]fkkrCmw!1sGR=NI`pJ^#糷 nҡLɆuǑ$ɀ@Bƞ`c'K11)L(  7MEGot8A!'IG@ +i!Kvs } +>mBoBMV(L:x{/HSt 4 w‡PjZ/ Zz`cϏv ~MmԤ8`e4IiR/. &Ip()(۽4ַRk񭓪}}^ +4(VH_v\ڳQ(^ a^Fi4Df{AuR`)#5J =<Ҁ.FiNC]KJK:NF3Pjz],씗5/3scc.\d;y;f8xg8j56 + ΰ" +8CfPa$V#VjTXd OW.j>IWhaY$Y4_,jysiYŦd5y$J4ێTmVSY27GI jVwL+j6^ݞ_Um6܅IhC$lS/mo] ~*2*H%Tʇ4rKP(QB*D(7J@I-WVæbH'BJi "Cd  ?D0o@E\H-w MęL0Uۍm.wyE>*a0Mm(2gFDKQ2*~6v%|bG)Z̯ho_I;U:EN]!aA.BjuM0Ox::PߐPPƀODķZԖMQ<7 ޽#"Ap9?Be9|f ^/OknN @+Nwp`*xqSl%;n]sKUΡ.A HHv+[=t$ZZ'.|++N-ۉ} ۽`h1!! + x;:)p  +ER8)Wp*ACޚ7uǟZ5ʝL-ߓLR΍zh'DVE>+.szRooO0.?5F$}{ ggS{~ P"^c}`ģ(c)(mhbpE71)KUu]H$jX1^Jٲ=Gwx91K=_Nx|xVS0"ÖvKO2cc5{[&n^V֐vg\!HV?yCi,t҃LBcƸؑ=u%=J橇4bt1k , +lFvIU0YB x0ED[5D/0nܸW]\8q[|H>J血;iݢ~ƲﭜgE_W zt~8NƽVy~IFQԴlKٹǤ߳\unaUZ3,F?oZb׭rO]=7'{|G$.Z]x*/:.F}K`|%_Nh_cԷOW$ 諨S5,8';$^~Ԕ/\}}Ċ/L|xvkóWaM{y o]ЊO7ܲin3ؑoC?#/3^sYZqQB \ $3mGf.;czg̰3(Kå"[]r\aYƂC[5<ݒ+o78SjuRVZ^OZSsٕZg‹[IW$ Ttd{ /|~ ^F: AE'~|XS岇!K_pp \3z)_ǻ.2omqsƠSf~dUs_Xf}it34)p81e߆KWoV] y߼IvҸWc(LeEm)FdT~o%~yX̆ONֿL +@X}y~8B#Cy!ABUp@XNDB u/õ#>p͢vu5pXd`\`# +ux2 p\`_ [N̍U;Ng邞ǨYhb?,y~>SDHw(K߈YW'afǎ.8nXJIڿlكK>î4jtWuŅ++{xӋzlZ8ZN*9F@ZC87C5o@Z&?#XoU\QL`! Bɤdǚ]Gԟ>8{;9+v|CZiMĐ}CX~l: >`Egnz͍༇mN|xU'/FyQ0J__H-/U\XVY^Y\]93V fweAdoWjvby,͕bޭI+%7F.vxg62?$ "}d,ὑ vo1~|}aY'6Uݴ}иm;rqk+2-"tae5#0V(5Uf9h稛e1bzzjؤ%u^6GܽjC+|vgB^7L=rڭ岀Vɟg9W7جͼآ0{iHTK{i~k,Pr9MG9}+ԛƔ.˽ou58j^̾R?:+2^\z>ENWn_ݸCJ{ۂy}SGeA{N^ʼw܇uqnG¼Orޥ3v.4%_Zޙi;gpSRW[=d¹G'V׆t;ke樢'xٟXUnk??8Trz˕'6N#WN2J{qei:m_~KckI^./Sق726C[atQ{jFwJ+M n{IbB_9-Ɍ-ߛq;c|+#b&got^ywlمצ/hvz4?l;U'Ȭڼ0"~_}G L[br36h˳޾vkSb-zҧ;bgC}]`˸_զ {T)vzO&9y-CxGdN_˯[׊g<26D+>vOZ1orQKS򢀃)7v]eQ'T5heաƙb ykqԃxU3i^w#{ ͡ζ~t^{Ԯ¬Wl8ymE’͑QowW-"9pg՗{Nɭ;^:%**uΘXw0 *:^֫n Sx-qxC+z}{]y}|T7P׿ۈwםwő{T x[V'Qѳj59۷=R͑.ܻu|^t6͛-W~i8`|Lɛ֎G;c;Ncm(k̙㽯#^|x靄V_m ~+{p}i U=7(_~M#r/yZUB 3ee:溰 +ғ K; 6x㕊dMS&f +;TVe1u~d? I;j/IQ>յEڊ^+t=EfѯfBըğ}&qCmC͒Zxȴg=\)vϭEq;|%oHuHzOȞߓie/*o]kԋ/FZ?ﰼX9ַי'JmB֭>kmW.4I [W /6|E^7jpnۛt; QcomcíI[VKcmǿce?`. +endstream endobj 644 0 obj <> endobj 652 0 obj [250 0 0 0 0 0 0 0 0 0 0 0 0 0 250 ] endobj 651 0 obj <> endobj 643 0 obj <> endobj 654 0 obj <> +stream +x}nc7 ~.]Ȣ48Ij Y+LY4IxtSp]n~vuy:v٭|8n_e{t.7O|~˗?䇷e=^[ e]n~sͿŀ;v^usr;f=z|lUêovov ~fM +d (&K"Z!4@&Y|/?kLdQP-uf5l)FC-  iP5BY( Uʔ64HkGg!$xք(! J3FjBPyxF#RuVA!{Oػ֕{Kꠞ@B{ ճiPBuK|=#/Pb59r x ++Ad''<@E@I'PGr`BR=xɄ<Ҥ.u%zKF%JA>OW** @kB9f ! +2UHlRg dg#=jiP>DQU%UJ$* d"zSFydȆ3Si@U ᜅsfyF 9-TX: wDzFYOC3Dx&I\4 3+xi.y.)YA;Jkq 2MiP~Q:o0;ĺAomskebVQY\] يgA;oMFsj^ ҫ[+ jԞnz4Վն^gbDbXOpx -ՐR N +]"%;p_(1*SQR(N'֗xH0P)J( et& _gp 8PC_ ;峝"NjAs3U̦0\-OUL0m])LSI)MguS-˂@ߟ-eXJS)!u>yGF10 +endstream endobj 653 0 obj [655 0 R ] endobj 655 0 obj <> endobj 658 0 obj [0 [1000 ] ] endobj 657 0 obj <> endobj 659 0 obj <> +stream +x\W}_UA\]-j+XԒ, Kؒ%–m9` X0‘e=&,3k8{سg9Zg3Uת^w! xԽblO~7Ȋ5g]_g>ncWg>޵};cE _yݵ9;KN\~_zcbϻ/q~s?B7|{on8߂ݗ_{Hv`G=Wܱut8Ot^[;.?v!$^k5/;4y`4.Fs8zd[уȘ~Gj8W?B~|7#z6γ ED0{Dz-+B(\"<=ӏ=ps|ag[G>`0 `0 ƛ#dzcsQO?Gj'> O{}S^Ow 8r:`0NX8`J3/OUΤ\̟kćz{Ʊd~?`0 q_9qers!` gzr,9u&2'oNkN>; Ʃ [c0lZ}xث/ `0N'w F8אD$Z<8~񁭟2s c5˞ȱ^`=92 k$c~Os10^;3n݁6`:`0 L畮kk/o`~ю/:gȘ9 O97?d0^.1 `0 `0 `0 1?`߃aI |-N߯g0 ƩNuh|sjfj$?0 8^`0 ƱL.2.`0 l`0 `0` +6:cx#=`I2 x)컠 `0Nu5N`0 `0 `0 `0 `0 `0 `0 I +-7 7~W>jަz=xz/C|Oե}mfA P +] ǗsS:>.nn>Oy.zo{~')bSv ޵b]/>wɕɉĂ'7qݵg~e?yt_վ bWAโdt`yQs]mAneNtϨ{p.3Sr@F_\d ;& t Q;828B@ ʲ.l_X<ɋ1jg6gٶpZ!ّߣ##?82r]hT@?kҔDՆXS-Q*VM|`˖c[DʓdMPAk"'8d)"lIYIJxOѨ`jߴh&(X m +hPƓuy0L1ޝ;e :F?.eB_\}}j`N#Es|:Ӟ,yd;(@xhF^ 퀐 q1}I٢TƵbAբ(eq-~ \~7nh׭bEst2jѾ[*6/-=D'RU:YѯS[,C 0FI&' Tj!T*5ûE׺q$s4dWF+̩]-yOĒu\y +’Uoagʢ"ZDR@GEb 4|8&[g+,_[,5]tJt.E꓿=>Q][*V1ڬN߿-jVׯoN,Cdz+Xf!QVey wi8Ozy-n-K$&$hZ&h|lR7tgK~}f1uJTb83Pb/HZ|W̩D\تjr,0|{dPS?T NMUsmq/-e,b% +m18M +dq[2\?>َ#SmJ0p_@Y_?nF#k=cqB~R,pD'û>**IbEd-QlxCEn\Β,Q /*; >o`eE3nj+)DŽClH"48rST-rd,VX1ě DV+f.E0wY!Ѫ!u)j%]cr)Jr&ohux,:\}63!4MiLC uJe(OVly'L #Z#UT: B[n9`XΝHD$6H*/4(K.q2Dɨ&^{+hi"x*EChΔ>a~T!V$hLJ/U=% +>ZEK3DE8SSViNQAC97`_'a(2(;s*qʝESSm'699ZF5:լS '_%CF͉PE2'9k{b ҨO}! H.R5Tj nB /U p1Q +7rxϥ@ gGTSY]}͐>)6TMI؉/*h2fi8s#ݗN6_qr\u,1_zjʜxܒ~[%Y;X$.C./xXH1i0eVނ@3͚mPM2)YfLmڿ?8e=6؏4Ew%2f!?ebOkU"ɔ-UJ[1C#2T5Ǖ4лڹ1:JJtrpT6/@qVPp0`"r\U,znulL̜p +XRux}rLU@Q=43D%- Ng bsʖ,!_хaxUPI8G8Km/k%%9NVaRUjԇ +Jn7kjͧRY(X;HEj mZHz8|paˆC!et%љ"Bp_ZVyNQB;ZV ba 43f+ شҴF-tE/lvQ-VYbxE[踚mhgUyfjTpf d +HetFyN^O6}7qb % С= +"*L40Xep#7j#)WvۡZz9D6I MGek6eJ!8\Hy0bZ@?o9zeN]Μzt^acT;?q#s1\5HK oRڽ,U@,Lqec1(`D ڿ8(@%T=LC hrTZMe&7^֥eT[Um#[;.V͚bi2qS-QKe/T4\1ZʪyQ/3ZJt#Ҿ}t:+͎VKҼ⻞(#y,fҎiv_Y+Gݣv^ș EՈr %|愺oJA$-YPU{{S@߆hڂhocΧV4gtI >ZzѰWlL-ū}԰_KZ*`/ЄvD]$xnZ +(*#yYJJ +o-=h2W\E1M-Ѷ͓8/]l7 Y :0m?Z ^Vbձ +:D*Q6[MA`2lx+{MVx*(Yۉ5']]T\+h mcMD䪴[OXO{QA/BAj^eAhpZ~D VDW9yNghs2`u'piJSFr9R{PGK| ݉mxw9]5PwMld$tKw4rMI'VÚk^Z71AL $z՛ZVJ4uLk K5g$:ߪjEBk;mń蚞c\=>>~{5#jV)NҝB8baf.Qn1LFT\N^ar n[4vKkvYJS;)^x-)1v[LW-\Ss<بk?Ֆ%y{S&ԝ\C$35ǎE`ɟB}*vᩕبyF߰AڵHS p\cZ10Utx ,Bzk.l_y [7R +w)O:'#<'GcYk"Yn'D^. (Pd孠9Q́rPBZ l<VBfQ8[qi뉖VT6rKkБcmu"Tr zx<ȥf 4L򏘍sj9 mlɔ%U F]#οҐqfut!i03 EN/j}F]nèUeA}c7 ih]0a!,x$0\3)/Ȥ֖v˾tymK av}QtJI*ns #7PY  GnI-F6AL->uuH 7|"e3z|*,YSc\x:PL}P4Oe? 9ܭ:!ݞVa%-rI'۸ |~jpx0CZ żU uUt!U~h;:kB[Y -KPz1 נnU{L%'`YN8eCy+ᅣw> ^:64K?#8jV]^ievƁ4Suj׫.~X5xGӑ}[%X-LZȩ*w5zV+ +.Np Ěl19O#v*u)#\ C_$2Vƒ M(X)ӜhPCK20+LA<NiF3 1UKpB;`x}\ٹMR݃٪"Cvxo *h-3G[?ɖ ""*B2m4/+aOKqb%L/NipY>W\fK#B__(5D5)Ԓ,Y8QJkxc9.`%tmF)vMmɻ.[z]e\wZvk*O8b>+r.ХYXt(Mzii){G(dkKdh`8)UqOjv\NLjwY .zLU)0Zk#rmm=t1[Fe-cR\\W1tzIRQ, 둮h:vlN6MPDm  q!B4ÏĴô4Ucaׯ?3xt& ᬠ7sI~a6-XSdz%:ܩX +QM,".sZ%$f[D i8n]00xg}l>.VMiM'׳1OJWTMZrs~:*ٽԔחޗ>S) Sʼn̒ksx**z3CrPu.0ZCsZ2\H ;Ha.=y+Z]\SZcɒgsr6m[@XYmJq7 ]4웛 3:{fw5G?98,Zhxс/[^K_wqƊi,xak΂Z''tލ2t(E@hxy(/xP +ЃqT_m] MOVgUZa/ kzp:"ސ.A4 +x3ȝ|i$u^geGUe]}TwON} HѐH )!Y,#Ȱ4AJ>dI)2m/X,aw|db@kb92Ky<ڪuj}ovR<_`㵃='G=o0kDgsufF7'RzX?y3u*n@@ܩ!P:3 unZ!W#+7pԑاV+*fyQQxS!,`RHsTS@ټ3I +F #齮l%,CFNfs_MC20KcJՐ6ˡrm *AB; Y}HWs! + 2 xָz^Q5[M>"Jc;izG _lNe?w:<;^9^`9ֆA4ltV!} ~Xa9"4tlvQ6b%LFu\}@"!@|u!8y`/\}F-߯uo}RVvbǻ3lUPN63B{FMLj +h zSg!,qԽxFY؅0;>;{z4ƚ况w+Uq{ tھJ3FY3X6|HԤnYn>1 gQY+Եk;Q̜[.#b =kQ^ft=~*Mtt:dNOO$ƉR^Jz >n/GSaQ'na7º +#6 <˃lXVpu#6z +WcdTݬrK+jp!&c/ύfz_Nvxw~ͅ/2g.,8If`>tUbOisaLkS(ep ޹Wy{*Mٛ#F5s^bd&[e+/~x&8'LsYdAjz +!Vi\kSCJv(sf%:»+D=m<\CG?9WxAZ H\"v߅,<_k'0Oǎ ^1^p9i^VM# ;LM"݀}JqM䫟mjUp׳N43[KjMpuyA\щn:wk_T~X1H̜@-i4؍(`=p[~'Hq98Rn\J'8g;)ƴ]V&Υ1ۧU9L+ u(Ն(*[u@at&S :f*E->[ښu7oaou>ΉxRFRk(˧Zqߥ󔜕xKe& lϽФYϣs<  vw3}A݊(d6Pۑeqnx$/\Y,Ios-Ss;)X-h]zJ.e箯h-cTy$<Cb#!`++s #g5?0ݗ '=S.'&qB̸\ty}~vB [hϬ/i/bu +N% h ^{]xj4w 'k8nɖdz.JoZ(Z;GT n0y}2[3"~yzt c1w ;vsbAJ 1Tj8Ž'"P%u@0^҉Nͻt̄+bV6V>V>8s_xS6gWB_:HmgI)&h؄3*Ө X[+fV ^  S w *#,(-dKmmKUJj*t١6^k3}i$ݕOw)% +?!?z3|dvӢa'#7:C>4K`gt߭l>NzH4n~œٟ.~> G=^lBe֢ҠXBOIAfΆ8Zz+k?jrH7exa'*&Gr<,G2j%vR1n +5m"e۟U-Uks UJh+ԷkS,Юu{PGMAEt}\nQ+JDԯ( :cLHcNGe>oEvXU你y$ͫVSCah2,f%QJL#O4ؼ Vmz3*UV~@*-^F&$m\IxOL}F*g0vv1-3M"<:sGiG /JC_OQČHN Np<1w8Do ԁZ4ԆOm36-a7Q_D}"Y|ߩ/{`kSQvJgKύ#qȣyJߚ&G%=h"5eYƖqD`_ A@h4h?pNh0 JqyP tÏ #rPiG:Hѿ5?/t+dzI?K }ӵXV)>m/&iu9wc[ZMc?W,q f<?œ׋a +*Oǘӊʼn VL%5 CQ<PA `3;BY^rxg7ohcbRVyxcvQ8nIJ_{W33[ZǏ+3 i}:x%:-0qY?Kx%Jq}u-jh_jgٔm_()=D?vttt6m'н@׿2B{H˃ C둷#$8\t<ؚJ&=y|< RVH35ur +<؞R6'|g}vR'>y4їnmT&^G^CS;A?kj|ʋ/񡋘UFDX~hay|{COw\Iw:z|RkIyx^fNǕ΃ +"N Es6 ^9Whpx@ޫZ/Ef*jwO_}}&ʱ=ĜQf>9{݄9ksgNGw(DXDù1nѻ.Jܠz}>ḳ#Uq*q$w灔?]dm+nu\oCX]9nr'@=2.r4slyny|sȯ +gTV$|mpt\'a\gnZtWăBu ` R;%Ι3g6.3ؙV]fζ\wD8͕L,p*zUgJB;*TEs:'oU6 ] 4u|R7sl/7~1I\ +TdTgE=D=PCn?2>y)vrgSgF{/62mQ53qJ%vӥsqIs++`#TAOľ%] xV9&nnŅr39{yb1wѩׂ/%9#!Ɯ9.,JF#k8V-#8i^H8@ޢ:JtePu:˝ $\݌hca5d.Q&cA`^*ʗZϼ]څw)Ax晃sIN1|ٵ,U.] +hS_Fq^ٻl9O=N=WBHr$5:~~bZ-i]G7iM4񻨌2QH]4?^}E?nk;duV>ȫ뺯~9$n>k"K̿lSkFU /I#}Dy+فGen[|\F̙@(ۃ¹D^}uN + 0ϺnItKu:4";* KO-jGfα9`B>2E'qgû. ?k:v8 !vdY$ޖypZ2Iġmyk_sub t\Z2˼ g>ڪZrg6~ִssQ)C}¥xeUuyS5]iWjbE.6+o4,jjQ(9vߢUzPWOVw^|VWQ02i&]ɻёE/2glIu 3WE=Ǒ ^^> +lrlQ 'UҠ)5׸Z68#k&DnC()؍}8y{`bJ Y^g, a:mx]w%e cفfF”EU[vc VGϠS܆qSg^hWQwՂU#\!ƬC]2l&&ځx3m:m)Dؖ DB-io +Ɏx F<2_2D D2Fhʧwwywhcgo"z;P4 UYRmS<$lMOc"AMBħ"C(] YX}{hnh"S HSEJU63NOL?5H N9q2&^(RǠO+á%& +owX;9(>;젫u݋<&sfkcՇ70nZ3jN\Σ<ؚ灾+=w랾fђp"6.j +gYUfJWc!n&!> {9EiG|/sN+0O$Pa/6O74xpCʩ`P^ +gDVyRFbGpd\˯ p\i0Zk8Lln27d`֠B_X/f=`u빕t"E;>~8bl}&#hp&#j_ +s:ևʽ\yoE}TVu'da4 N@˴CUYa1*LN\lE ׏0!wiunC'm fbXZMS#Kk"IBW +KuF^M_@zON1vOOOt<5nȚz\Yr_3;k\u~6`.bvY׉ryM}d^K,J`$sĺdp2 8JD`vܫD2U}Na*ͅґ;)q8W-2:Gۇ-Cuvc_hw,9:s̃(,@ėJ„$$$%@m+䙏ӹfT}Vϲ6aUhŁ_~;Ng98 +,b{w@3&9n,BfcI37;o8>{H['AD&I WpB#h8zpӋ6@AR(m?ޥR=hԥ@_K ϮdEvdr,KZMjݙٙQQuUhIp*cZz..%WSORLid?VxYɢcNs(5fκtkY Uk3<.14),I#.Q DE񶖱 :AGJ%5Em:=bJhLU{ɊQzJ*W>Pu(pbM%[tϲWN~Sq;qWēXp~k(SqaV)Q X^Eț kx4~:յBV:)J5JAp +.GYIa6$R8zbedv S#lyS0DuA&z\e}i ,y,4d SԈHzE$e~V}uir DC E(YWw {JIlLkզ-4}LͦϮw-u-_u\4n4MC>%\GeIE+"nTt{|\/)hi^svOO}Z6w4-xS4<\*#ډ!Ϣqw})hE0lջּ+T/6UeQhdД_ M՗M"h.sUAkꪏU>n}`fٞl]01%*8+oj2}MƘ QhʊhξQהr^ayݪ?w֭$"խOuWETʉ$!K4GiWVV]RrNJ {Dϔ>zflAHdkb{v}%#h"׌jLV&w1!N/ӼrUذ$3`h +>2]-M`7iff4u`7%j&Ó5FAl%˻0AdEzl6jT@Iղ4~Hsٷ/4jJ!u{ieڤz^mn9az$/ZM\Mf`l4V0S35uU^OKou_ז*#ӻ})Tr{%B +ZiP|n^Q^(naTu@].8]X7kZ.O`B[#ZE/,,#MĪ3}s|Ϋ]&g%wpn>KJH${ȥ +>w;^h0߃@1}/#@#Rju([4!DoQ!6Ҽ( +#ʴʽ2/ +/w5dF%;ÅIFwcy&`Uo(˔8^Q\[fԄEyU]Jք4n]Tv=<'lKt])i+kfzph1l91趺ǤM3zv$}>_ Vzjg&w|S~iJI7e"FCWV^5:l9)znժ*a%'n&z_#uW4!MZrrxD.5Jg35>0eS:1UPO?G6V rUH0ٲrV[Ċ*6P¯NrHoK+54=աx/YM]S\IqygCVo0h7ϸZ8CvV<:'Y2YgJLq<;fHiS"Ҿ˗պ8U X{Aq,*M^35TOj^CY^e3^٪hƹŮ,нh꫐q \ jK'{a,iW] zU)n(gkD~z%%R^QZ=̾YԷJ}I+H.:/U̳dcql,_SUIn>}斖*:ĈΕ6{ֳNzhgYIBMA/,ո0=d3(!ūep2EC7? fI(oׄHc(Fb⥱|>ϟJ +kE$SvǼvSVf~ϮNo`.12ib^ckjV`A_۠yO-v vQif&}.Jz%5M*w (H[`+A^TίeƳdU2¶M +ǗnFͪQbKsD-9'~Dי`6H 1`/QUbJ|mu_( fy3;Y1fғyDsJ[ywXKEcqdL9SN/|>W0+ YF^MS[^T ԄE a$$[f٥Kjj8\*g嗐[97# +5N;p^޸>c?o|3\pEI[e?v#iY.*8dWeq$U+Ȯ?V(T7&}NS0&z`u9R}A- Wd#ܒ_M!o=?M3Av4;mP*W&48 Z:r>Һ/-|'31j'_&w}r=>r:ݔ@0_kw3M`|{ӯpFI7>WHf4gW f6$|`tum[dvx!n)f$\p>%" +H)=do1H?A' D%y?R)a 3B"N!+H"\kO{M|4ߛ'K\p>%\`mҰ@f'bJX&a +?k=[7o9gђ3:%2{ڹu=i8q;_{Ks=oݵ3:q=k7lܱv϶ȮM`Bdƭnݹ<@"d.Ev}dJ6-d/vYD#"Hq{;ld"5D:%7^ICgF%==:kqG`ga /Hcȉ Ỻ_%# !U*=!kp?؟P9yE偢,{)X(dybǘiS97%҂w=9t0J}`sDϱ2ApUf*(@_uOPos3(5P:ǹ6CZ<"@jscVȯ&\;d򄽃^?M,I8ב̲ GI:(Y?B徂4^pYsf[T{Pey y~v䭛7 o=;_T͑:EC-gq--45 qk5|ĺ`.< sgpE.OcSקZZOdu(&@^8FN7CYkȉ:(H*!D aio*=!kp?؟P9yE偢,{)X(dybǘiS97%҂w=9t0J}`sDϱ2ApUf*(@_uOPos3(5P:ǹ6CZ<"@jscVȯ&\;d򄽃^?M,I8ב̲ GI:(Y?B徂4^pYsf[T{Pey y~v䭛7 o=;_T͑:EC-gq--45 q^ʢƚ^>b]0L@tr938W槱)S|-2: +S /n' ʡ,5[q^`M$~"0[Iõd 1[b>oL 3='nc@Qbǒ,wEiWݑ'3^{ bْt|}8͊p} U>"'ئ |2A=];;QzQ"yŽӕu)w9TB~6f'2ax~ &VBVM2mJ ;ۤ!-VG)9gk ؅0JnG兂c)`Llcܒ3.2+zR+ ly~[/֬Q \Y#=@ E/َ͙9v(鹴ލ3J1X;1̈ c!Z9< PFGg223(On +UB@8:%NȎ!2o3A~cjX9q{ ;dYc,.J<1G#\dȖG[(8hVlt0o`,996ey pع(@'#t= wv Kq<1+>o O5bn–AhVZ/d&Ui :MYq(8\Y6?.Qr=:,/Kpcb㖜v]ZY@fdd]#\z7i%fy:ȒYzo(ziv ȱCIϥnQrYA]EgFm3yf8ȉiw8x4:8;ŕi @x-| +6u+ o\VP?3@_eY&ra$"I%QDX(SDFRb9fLJ,V|f}GzFFEH$,Db=k}ZSxR~t{ 1b"}׆Gt65tDKj#td[o YGXꨦ{dyP 1gkDF91ԊyWHrР"h41[/uu{z7fS:)Jl#vH,A̎c[C_cssȓtMeN>qi,2UG)RL>^)"E>Y],=gi^,Ď D,14JĢOFwSV(' MkL֜{3RS'kfF=tD}s7z#F"gEnXHGz=++b<{ r eZK!12f&6r99>P]j|XkK"=XG}Hϋϓ9(?;F9dIϼ^(j2SbDZjQ3LM=&Fb0ێk|m+DoGqY:4(7):FE=b{I7+Vww{&zp{--Ei]KydIf?EN=ĭN\mO.m=7c{WHiXznhZg'ѥo>_k[WDGNspޚ"ٶmtDLOjzXt@˚Ik_q\ ^ :],%DdR@S+Y3%,! I+Yw@QQpţNsq*9tVٗJRWECr{=3Yl[hKѓC#fvܟ1D;wafjU`{_av9\%2}ލZF9Nv*,A{=_K?&Kv?aaN)> }EQ6On[~?ϟ#*VZq_˻OwB31d4& ^dcb%6e7KaE]3m3t= 򢽋Q_{xaFTN. t0lAy],Gd'ڬ44_ACo! = & y} I4o_|C8C޾v@ o3$gyPXǼdCd** Pv7z /&S6dgcwEisΆNnU! YeO՗ +C;e-vN W96a!8g<*8߱/꣐Ahހua;kAqy!HD$vAܓeQ,1{3لEk%E ^7_Am5 d| XِE>P}]VA2!rZlظ{\"9^>Qv_6: +3uNn/`ЄqeE|k0þj_cڶHm $:eYGTҳ{+6oljD*g*~ЀrCHWq8/!4c]r t[edccf?t#u푿>q:㑿푿q_EC3Cg@rrq3>}<3!! BvTbU Pg͉dh +j~Z/mfh˹b̛FVzMz t>OiiN?"F|(߼~D'n+fy.|9 y |B<U8!@{V>%]jglͬICrXi|LͲ*Un +{J5IeGf`K0/q}(Ect):O1DSCOkS:СH(vDO"_`x AXT_ɪGqx} +nuGzG .m`3 f~o[Aq{3𘂿C.M{'U+ClxA #͝Y䔐><7[CvsS&H]fG kG# x>>%X+Ou9H.C|^4E^A;4E5*i}?@>W$w.H{~d,2̹Td[b/Cُ"r`[T ;гAْ%?CDM8Օ_3yt3Tf\(?̲loZ4gKrH . QibgD0"."gX( mBǽq؉R\HoJf}j%xm49/W1~]"!:~XDoxnL䏳1 BR5o(,j=h + C0gCF ?W`pqCzǓ:YaZ@cu,3mz"t89Ř+Z +sioqzZ͂(/ݪj/fFφ;OF@#xGp9{}jw^Z6aPlS]P\ /O +/bg%v."y7by)f^y$dj Hc^>jw'/Ee, +SnFlݴܴ(oxY_/9Ϛay0V*]o[e C8h6u׀g{lm̛Tk%nRa/^A R_p.O+q:}swjNbijX˶I2(d[lkHoICx'w{G!#9#$ȳ jN6Ξb?'ҙD ,-/T/p#QɪG2-UKX&ࠬ-f}~;Ԣrg]:@o-7/_^Uy3`{p[$ YxԠ8,QgdJCl9EP(2GiyDnx,߱=p;DbW=pX%0q+gG$ + 2l^6h +>Ϫ{-6a ̛$У) RÃrj~S =fonB/T~_+<˱*!t u #dCldUce#ƈ^.w"U+u=du]pYЛ6 FxTi962c^J9##?"8Wt.W94Q9zUkߥ&~<`=H6"ù qy`ZFY+ JT;2T,p念EOҩQN~L{KF\ vcPUQ2y12%j¢~K?s "Ph!lbk>>rB`LeT۫Bum 'w!GP+ +)NNSr};M8 y^~>* d(9UΩ9p\5+ +[:{`aĿ[cazfVźlZwo_mMͽ|I| +$E$( /=$E  $HM@"_| +$EZ8E_$@2_G"<"e |(9/""/d"$H"/R@2_@2_$"$w"HօEb$H$E"&E(9$EbI|9/:/BDH@2_狄@_%/et.(KE"4|!/)"H拄&"H"㋤@_$O3/m&E`"H䋄"e|$E7"DH$E:N]$EH /dH@"_狔oEJ / |$M_ |dJ*H\@2_$j$H|<_|h!/"x>/8(6|HI|H#I|HZ +|l)xHxHS)xHN"7/a_$ H|_$F_||8$P"_$./R^#Eq| +$E"G$E.$Eb$H:/UG_%/+H@ / "S|QoLGu lC3ƍDR΀F\ eMz]Qo/ +`&U"4zd&7?6:atذǁ1: >dQ#$!$X:9MiF>hT +(!ЦE3#ZrI!x[s>R/ʇQY&>2Tۂ>rgmP$6mO3 O9#o&ݬd7=EKі '<=l*P綘0 +Ζ.2vօA7LڭB)Gy桞lsTj68*fl]Nj݁; 'niNjCy:NH 5㸦!w]f Mifߝ}tӕX(A+BI˴IR*j' ]T0E ldGܞ^(h{Al3qb\Jz໖-z;뢥􄢩#=As,R4 df#͗f5զnwWyO{!4Pi=o/8,&RrCx[o *G.q 3ND)lRĘ[+`[=Wq~xRx`Dh(F~}Ldϛx=HRՉu_Z#Wzm 8&4^% (zE5k=GEkU`ebfz cfݾBP>8rOFs] MpQmH9%D챦\L4 y,:ό둇fV6ʦ,\6O5`1 µe9B[jf +C&s2H80;@~ʶBt&!|ydژsz="wc )MgNt8p [Hhyvk452ċwn/X:QH 5͋&@JSÆ̾LcEOƏLӡ 8ۚȺB~p62S+N`:܁ ;T/o1P@K0Z{,KeH{;u\HԚeoڬ3A|=Gmv l gB mwB,b0b|m–)Ù_d)kغM+k0{} 5yߴkvӮt9 vulgjTDzfC8)[΄+˄8Zbt;RQ€8|v$#x-Z2u`.7 |n+c@5^ʱV!KF~z.}> K lf6#;\.ZVM 5&ds7-..-3E(~<H;2nߎ6qN5];Ŋ^Q7|Lck0YF>vxTBb̔1p=hR64K0P4pC$8ttC\@ ~vM7p_? -PXH@yܠwv)X4S7_zDog.hDfB8lP~hChCa-¿8$O n %K-\-n P"}NP\;+8g02&ZIypRiK}C6JF a +`yS0=iPB!ro ײR|Yc ggn43>u7vr6@M ^ : %!zk,_Ѵfsҫ&C lbɃ?py)8>7Đ^DEI7i^8nyɼ,҈oхM^m䈌 5K{FDqq4U!Gά>yЗSýUh4W/\ AK:o4pYVji¸j'I{$L8jf{pD%|x`B0.5; ӻt +ʨgd,UV8~|t? 1UD}oz&ۡ62`(+ڷ +uK/SL3[?Dj*#Oƭ;] +N66 6QNn֥cڔ#R`ysZt~/װ}&Ĥkp_yǷ,j "Jds`䐕 FQA)؛ϟ] nݕgA;|dPhdܶ%j7S?K y.7[O*b2zg0bwz̺BG,X` ^3& +ͲUjYb-wK5FWdS5KFf 3 ] +ɻx`g=4PͤtFJc H +[Nc Tl!(P*[NSBwHl!zƲRO)l!x)l84Ia ͙dPQ2[ѓIc +BN*['B +dP%h=l!@laVX6-T`l$-Bil!F*[zNe UHf Q(- Oc RB5]2[F#% B402$6-5kޖ +Nc %8R*[ Ma atPh<-t%ijR(-VJ=b4RB]il2d}%-ZJc qTRdPEdPcil:8RB%QHb ULf eP*[]"[FJPD0BFIlaGT&(RB,SBBBdIe E+B%5"B(- +$#-A4-Tq6-TjDHf [BRB9N +[xIc %`Ia щRBQդblHlL0)l!0Y2[fHc (il! +b4RB1N2["-(-3Oc 50Y:[Nc qldlU}B2~+<R Ī|򻕯TW+W*OW<[bVy| ̂t4*,StmZL;}_@{GgGEO~LKj]|=߬]mw}/_ҿӏA?O@GKMU~c[Gc{t t:~ o +endstream endobj 656 0 obj <> endobj 642 0 obj <> endobj 661 0 obj <> +stream +xuRn0>@BJI#qCb/)R1Ȑ_Kު%v<kOmfQ95GPODLW*h=߉LxqOwv`nV́;m3% P^(gڝW0w khIQ-[ wn%}w>),\rdOxxb].}FOJFPp pK ](peHPLfd-3,$St +"XI#ōWH[D !u&'Cd9!Ha؜qΝWGk]qаc+YlvT +endstream endobj 660 0 obj [662 0 R ] endobj 662 0 obj <> endobj 665 0 obj [0 [778 ] 3 [250 ] 11 [333 333 ] 16 [333 250 ] 19 [500 500 500 500 500 500 500 500 500 500 ] 36 [722 667 ] 42 [722 ] 47 [611 889 722 722 ] 53 [667 556 611 ] 57 [722 944 722 ] 72 [444 ] 76 [278 ] 81 [500 500 ] 86 [389 278 ] ] endobj 664 0 obj <> endobj 666 0 obj <> +stream +xz xTյ{sf&L2y539&/BHɓG!LĄg *Z%R2["*-֦rVk^w~هkk>CSfg3R\Oƶ?u/smj^}@Pyympw +[a䖥+o})%$~[?]g| ۷6#([?Blk]2 Qm} kX |mtA֪^0.VhðSyAq*a ]3&".1 +0A90yyaCh9DY7,DTb R& @Fn-U-2srǵK5PEFk$ bb _)Rx6D wI2f jF"C}c_.`gC'#O5 $j9Ёq}#4 ?PA5-"T^y ,n2HQ/FFH)#e2R +߶-b?2RFf!"`$o2RFH)#e2RFH)#e*lZYlan$Hl(2S`&|X"$AB)jt PXVi?q"I5 +4ATPDp0GFEXq:N38PP8jo}Կ˙6`9{y7?KJ٬JɸSX?:oTnNvV+#=-5ř,'9ĄX%&:n2B!:FF dVU7R x[nDFU ׎kuvfVSA i*W4wVR{S!dZoA>YP;^ii{^ZYz!rL cU5oCbBc*{(h h7VZ +n9+yNs82Yn\5T(WJ^:}_ ldwn +'k.&Q^ji무,fg&{ZRuu8:h1UWyM C.';y/|mxMb׵i_c^h'CZ=sngg5*LVUv4vyղζJy"ZH16l֣35aCx"{"ƎÒýayPmC#>0pAV#lG8  !a +ڹ "lGЅO" l?[wvB-'*}i,Gls5~)?4H#?.lszp{5[[9L +_Tr;B.NDĄnVgAtEw9duXѥssA@Ѻ:t:Y:Pgz%V"bW9ߋʿnb?D?Uwž4"%[V؂^kBZHÆW{u;76a֒0 !PDP f_rKi;kE!Dgy0U , ܨnkp1]CL:.WVζ3fc9Ma L}HRnW߯?RtZK]ʕiڤi-vH;4ԣowIoThӐҍI76Y&܍tML>TĖgDFb.AhJW$p\0䆡o5I2`ˀ-jBb;TG+aARU2tM'dG:Q%yJְِWh[i{)甴){YVWȑs9i9{lsl{5jלjZkkܺ^+7OINNycC]g "b} +O!)Ѐ bxzAlq~*5..xIr}U!E< w|}&jo.&ЀІ )6_sȈmm69l} + T lpDC1 dP]*.Qq6pa ?dH +MO'٩b/5<]jRjH/5h1R1T78Stq0Sapdzk*sLvxS+a0f(5=g2'8c +#莑ϡG">w _*!AIϽ}؞%F.JdN&.Dĉq{ ?G!Ij.2Qtn_f/s d<ܟ2Br/f$}Nnb;VNB2ܒ'7#?Թҗ{U 'Bʭ|0UE&jt8UFHR'oQgm_×cY\ll~@&^=峝ocd֟עxötu)9b;J(ŭrgtbgې,7g.s}V+nL mE'{F%)8Ɓ# 1EVM5R25+5Mٚi45Y&AFhM0m6DJZAKY%R2q"  jD9`֧DKxͬV(#ވjYkӽc]^rwt3$gbr8yٸ-uՑjo3T7ٽf:B-e^]b)^TU=3]bIQ}2Λ+jxz.Gi'uGZr:瓵uW 9j j5iReEORҐ 2+aPSXS9A5X4a< fzP Fu0c(sU2\gzcTIJsȜ:p8I:! ` P-'A6;~+#x[VXMv{ϼwXH45p8<;O46hYӬ̯5*rcE]k\3X;ϵ{\UsSsUO/#Sk{PV*<8G]Ymz8sX~'*y \UUEx:(B4,:G\?,2!;\.X*U\bŊVr!^ʢVųVY]U<uoǪR^Oiݽ>WCvSI!5=i{RWҡ$ n=>Kb0J,ꜫ?\j/@εU^[x%x330aD‡C?Ax sX˪,3ֹxұ܂~ 茹C!.ͳ )5ś@A3DW Em +X"h>`c%G+\+ +{ + 8@U6X +$rWn8\Sx7B /4p\`R3S]pЏ|^uNk7/l 7r#8N%bQհ9xB~}f2r>f'=1M-l>"!op~F/߽ |w+lka0H  ~8-A?fb7!LF1%, >'sꢿb#7,^o8yU| mU:} %(C+LY({q^8MI'ϱbn$ +) E 9 :8Kb+Dawip*Kd>m ~h0\hCxw<N:<% Eߦ@>g[p|M\e8*ƒtl'Mަu~ +E1X#E/y9Ђ;#$Q$du)ȶ  vlDwЧY31R6ձl'{VX.'McDBR!a %h_>alN^Ix@K16y$ϑI>O-%Vхt#>;i&=Y3~wೇaocqkMfIK.@l] +Ah&Ao3cg9 ISi-•t +BڊO]NW=A{Q&33'fF=~N72- +wWoEX){R/͒KHsEu5AՋwSt#[<&n"cnfw߉ yf'N- >ƪ׬̦Ill 9@ߧ_? Qd& gh++/:W_;sx=`w =䌸 +va M~[nZ!_&ފG7 >b2~]¬2IH7"r3%d@!nykoBHRhJYY4+Ϟ;XKع\p 4sZ%fHX~_[|K܂q˄ Pg#|jǐ}!>dɘ?)w=f4 sa51WOV? \UyPptX| ؃Q.܄qXp}s!cf^=v&Ϗׄzy̼qUē(x?M G7~̿>(Mb-|̱'>قy{I,g|~A{̝%7 +j·YX +EM`0:p V6|Ci'6-1> {5"Hbn\7Irodc$0GN6 =Q_< D+ XxIYBnt}} Kn("QpG࢝_TD# %›C(I1$XAWtcAQJwDG~Ha A(A{l3 3(f= @`RCkE9P2XbxT.Yy\, pt^tTq,ICZRjRleĖT[\sK8;uFYp|- zCO<6d Ut!C;Ad8y8ad A~bfRGTRo.20 ?5f?0nVeT/77/-Oɒv o_ J;;3&2xMN 5C9q[32;3x[s?=x"Z1Oă"院S tJIAtnc(}Ӆe].rWG1(jPqvuR{Fls|ZH>Q`%*)!%׎n :H".“^?yS ZF!rrR2@%3>.!.1ISbX›&60Eb-؛HQ) !(C 11כ2=:pLax~*褭+zv{xkM'6,}hY⊂ t92ezi C  +빯qARtgvNd(Ǣ~%Rx,ݖBW㫀V2SZ˸_, |DiC)P}fT rn`drvع.dY7o^_^$_\)ZVovr|$}czFh2Gݴ|l"u:i¨ݝDL\\c"iQnXE1- +"+Gt[3Q3 feveʈ=~P0x2%1o[DE*EY1 .Fo'[[nXZCY(Ybx:2 ?)%:JIn%]CVjcqz Mm̭v`bk vag{ڭ7xN DQ"*Nqp~Fjkx>_0݃aR]#b~fםQ_V:SLDQ5 <޺͊0&gy= 9 + +q$\8% 8 + ǰ ms˼{;i7HsbI?۰oղz}…k|6g9 +!_hBݡEʐ*}upJGǦ+S_h O&M>}F>C>qNԦ޴4ӹ$3MpO^!=iHTC^o( Ȣ;h7hq~|K2|L<᜻A /x\^2X?_j*IL 1 +RCv$;Aa))!\r&hĚCDBtRnx1$؀E=c/B5>EHz٧@=)!YMKqϝ)[voӻs[c cm]7اtMyEt}ݹgԑۼW&djI)cJCns}< [h1BA12H2BI.a:Q"BBAB x6RjB @ nIbJVBCcd"-Yu:##]OR,D=^F|5`dFI53̭V?6`IQ wAӥplv MhČ/˖(9\wH;zdt-{䋻[#xjx_#ր$* $.qQb.'l%h +hceXZ\vv?21#Q1He*3g "nw0XYA~pHqdM7c%ƱL#S7GLA|EgWL&j&''c7s﨡}}4f}e6i]" xc((d9]nNoKqxK#{6H3#/erFqyt^`tZ+墒J:av~$Fֳ1[&LY%fo-#bīҶ^ rk4tHBA OFw@a;l2͹fżm֘]Q.Otv +LF/KqU]#3ީHORӐɘ!LqMZrHJ7AR("|GICM$*i.u~G ϏH.M+vcKwܳ啅^{%^_5z✻6O#8 S}[$!*6_nSP<)sGAƉaŪ%"Еb /-0KA10* +De41*0/? a'5T?) E*t ,BogtL&1۵)lƾ\{Ι,ZG#i4h.Ҍ,ɱI6%CD  4 esre i˒N඄4p%CJ7>ϯ09Hs}}Ҳr;MY~48Pc0 ~>N}uH.ذz3f"J`qQRԐ^QZ Ɂ=҇lp as ùpN$Z,bY .M/*]K\ WM/+nNjb`[ݷ +[[{ ~Ei~jMY[*hiLa {0M78mwpHsxQG'*Fʶʱ +U?H Xu'AqłISdcySN"%84z +1 +91ucGl4#랈t&DZq5n-+˟YZ>o-(1V-]:P)6_O/55 >uymhiߖ^~g\ի:˴я>͟^頋$lGi`7J7߲!VZFgqkk=ﳷy% '% IRc90eC$bDOӂt]{~!a  @ +C*Fv Kٞ,X4Z3fǕo/uUW` ⩨CĢb ɍQdY o ΅9 wwF@d~a8<$O(m6w 8R;.1%>&oBv1B #M?I?|:iǚX^[zc'KGGG3Vu~uus+FE(VƵ}rPQxr<%1%)x3v$C%@ē>Zz#bBB`A`a> u.Ximh`SAL04d,mL~G@B2w\;pvH?x7r0B믫SQMOBLPȐS K*)@<*eP,i9[P"X4b:]l;GֽFĀ~יּ$_7t\&4/؇DIkߺd$ i~82PG#7%WE>xeʾ/I d'r;:07'ߢ6&Kb[/\]2i'&P"Y`}uWG;(ئo<0o{_vE#Flÿף`v5*'|R_ufKhH;GQ!v2E@!`ëjYy@١P 6~`W6υ"ʤ'b̫֨q%g?yC%|D)~sncg㉴ >^^*4gI3Z-ПC#'A|).݈È%,G}S%}!,0KWx{mK-jftkEYI^AiL&AӗD}hT͠j|⒀`΀#ʺ(i +L^[+<.-}> X>U'f}DzZJ$-YtY +U*z{Sg2bJZXo&6Iw?wۚv6Un-HqggcM_'Bퟧ]_xY:)(};_A5V526@i5?9$]_$ hr,KΰhԝzD=Fhk%N^p@h]Fф¤gJ"r4pXCx *I U#{U UFF;4X8#}SGN.}4K^K| 1Fqq俨OZmH&J?ja&N=ͧt؇c!];&2fmhtV@ !Hüųs?|A hάj ͙H%nر=n49qr;؇E8kZ +~Xf=^| 101Sbcra5kŗvFjk}XntQ, +38 F'/02 +La1PXA\+;s`:_Buj7ї}W8}wDhvd>ه@ekj_ +VP(T!C[A}lUt#o{UhzfBQ#:V2%ÈG1oSXHϛh}!grj5/ =򨰕^ceYca;úV PYG }8HR!u -0`{E av7xrrI|_+6d <)ݝ'd 偗A-тZՑ + ?V,쪸G6vOqF׍~>m|~MEl迍> o<;cp{vo ,zj#;Ƒ IU(ChJHIӴ ƀpGPPx"4ArKӈ`\ oޠInSc Jܞ~0x>x&be~,AZh՗&Ѭ ȇ _Tv1" 6*;ոCj܀D"r@i@!'Ǐ.3]LCn5CɄt<~h2p"_qNV0u +>NobdG2k^4lLR3;}=\ߚ^hX:0<~Gܩ֯FPG9!!}Dmz93V%PGV* +OJS g/7㨒I3f55O:B +r}.9Std 5AX,cY6zh8"|(52t?+N q>m[]5E%\[;n\?vx~G7?ߧ8^@S }P#qk溰@d6i=iǴdǢY%2*+_eYOх몞Z84L[e Q6w}deelV=} | ,l4rqKH+Z7pT+XCV-BGpF ;00DUXon]uGlGsR[)T;]wkۉSLAuAW&i=7@Yҡw^΃;r4jrޭ\<'w +NNӂ +Ըƨ`u +MJN⡐tC!ZRX M A +17 i頂gU dK@@*M[1<ҜS4hMPfbՖ  h.k9 B:Xz@/ 1pXpMQ.QTHm>3u(02aDW `lJs\҅>8̃.42xA i &bfuzenӁ9/ȧRZ6HHf>1'<s,S?ރ 9޸p`k'syyh;uK ]#n]jywYl4qIӚ) d2i .G=JN}3>s_t L?@:ggS)r0GYLi3v@JX4c I-pbfpl7ä㊄PB0텣H<s=^q $4w; h{E='wtH_ # &"+R#Q^yt*S(z +=0yx#5βGv#En1'S9M'SlV!r*2LR F^ւ> d4Iח'3t}:xōV(v7k;]9;RE9o=Qۖh .tKzީC wdzzBx߫jW^B4^w ar83vb&f4EO7SX xgٍ#an`xW^|t͛~, Tf˒sk #k5䆵NgoF$3Y4GԿ5C aQ I0= ^hJ1wS?vQ$*=MiQqQyGZ{ MG&EK@}PՏ6UfJ25GMef% LҥApAowуçoO¿a{m~ż:`CrB#9MӸ8MMsH8=Bͳ$|:> 5܋ϒl +uJ=Ѐ6L35-=&5ڸU;\/^~9es(u,}̚57 \K)Tc?WF_qbw?ى=5ڃ$%پ<~;L ៙C:ak$z['%ѕ.X 45ͺ^#ϬI6 +`YF<3clDWӁ%N잭Q3\X\j펀#!d泚[[%%W*mNHiW|5lq"Sw !BƟ} +9$2w4Q{p"˚hf)3Cɼ3I]=ftHE"l^6o6oJY'8ä{!,F>51, +x'ڒH•hbIǿG|{Ex @/wV.D U<4ܢ6@~W5A͚0gifV4 hv,`Md3i$!P'h EaQTDA`"*.V֮.bꮽ]׎]$`޻{|}f=w{I ">%B%p't+CP̩E ViK.!aI(t&lBo3xY?؉)JCCX,"eL001瘷&Wj(8/՚ƻ@{YGOBZWui8?427-7<қD$ tJRGQ4QêfX3 wLgbL]B߁,izwև=ćQ~J؀P;r==' c3xUܶ*z wm!Tk Ƿ`HO; k0o u`hmGF Ebzj𓵘 v3M/7o4NB<rr'Ɵ=tDeq9Q䍋8])ǽ.Wj=NـV kmz2®\(Cz̅̕! kebs A, li#! ; +r|,@J;~_m1Mr]<@Xxk5@H9˅37&sf+&y)>$KmGG'#aR[CҰ(V/4 )B W!u(w˱P<a0vcJ!]GH`Cy^M&ah)Va{KW7xFlAF|N9k^!G,~@. s+`'tяHd/ߧ$Wk{/ηٽ;őAq Ԟ0y;ŗ, 84&DL@Ms@^@UP^TwH(pΊDt9;I(&p&pg+r3MEKh.(eX,E3I(@OH%5v1YKt8t@󣒼Vhy1Tt8u Du +YR$u1Q"O5"BZlUn g9x~s?sgq`0}O'%554h5\\hSi_)t/pZ˂#]IwwSVCM% +zb֞LIA}|eHy=l1Fl9r +`7Ӓ"^}+7Lqy H0-@%d HdžEó?r +=k9U ̻䖛dp 7|x<>1 tҀ:m"DZ'77ap~f w{ ]81\Dl'>m4@AL' +U*TpM y5f>_"PZ'SSpjڦ[fuچ؀ 4dwn݂ǻVBƳmXi6/`m/ {7;lsKI$Rj؞ls:0Ї ~: I(BuKࣥ|8&]?ɿƧk+j2  +?yABzo2BNM(>p6K.1]Dg +zN4W*O\ki +}g"oHTe9)e"$Rc5U dW=p'rhDcT?$>Sv.đr! !0u\ [.)1ב*IC0P`D܋OlGUm4hE `| 55Xds`ô2̄LP"X,WYн` e>t-a!c)f li_0(i}._س%s.ן/)櫫E%1k1DfbXr=셟/Ԫ|7Sc0#%F\%eX}XRAkaXBPgKbqb>ObZhf~?Ͳ˟Z5tI +GLTb9}~Q> AaȄؤ[A[?2$'SbFm~ȐSs2zGk1e* E_iKBf%.B@g1uYXF pa_ h(0賊2XN>VmIKIl0>P(! x$샦Q!Ckt@PzT>4D>8'"LV_yy1P$!.(s |kFȷ7$ƒkj"òƂ.\v !l(^ތD+FRht1T+^mfT͜@qqIFOםmQdBJгTuxGk/g9wzm殚/kY m)sm[ٝ_m}(k+ywU-΃F.EIg6w~;= @ҬMnxx9q_Ha#kso7|U4uG89M8إ@$IۂZK]k)ѳjoV1 T  _2w?/i;}i_oK%˹~ UxW\75lN{}-ӇW>= 1Ŷ]2qMӢ!>f{zS|mg^vPn#Ż s׏UO^ ;{pꗷS:d he({wm=uP%"? +WF*KT@<(X}h}3;2gd(3pupO[CA~*`[ lx@`  ,IBwU)}Chq8A  mޭXծh66ŗN/]Oh'1br21*) si=3=*f=BdPJGKvQ&\p zr֤5"c6P%pJ@J` )ݒsNG„KvZvhpׇ\̞'ZPav{lCi∯'u,D>ߴrsd4*nOl:=-Ciʄmr~?aPp<]~ ~Pq2xXg+ BXhfPa`nG"byJwcӻRWtywldG u& lוkny]g$IiZ'7GԄՄXlM@D$ P@D0aX_$I >#r>alW~ OW a뙭G**a~s>ۗJ^t`GÖW%?6~?t,#ao ތ>*%&:'?Y. ֐%uײ2$OoĽZ{.wqN0W%z%nI>GlBRZd8,އK?v^/O,0.p!\_mh~:˜+Y#ϞqW[ɋ1M*=J0yȒ@VrNڽ8a}ˍ'zR^;k#O+vXe%ͳ7|y޸W[mDG CVk:Cĕ(;_jEJټkIBGvzVĦ˪Mq~˜mޟU?Ao%z0* >˴q,㔬F,_ߧps+ -5g}.۲񒾱hqĠ<]cf4-Пt$', 60/0C;BÃ)\α̞c&w :0lOf7EmClzRѾw/.?JvP<^R2Hde-_|v|ñ?\ʨn;0•1٭#vn\;`u%Υ!w{\|2{9{1W/]FHUe{I? ݒ__{MT O~r@֫}Nu=4{7,RƔ Mη~;eTl_ºuG\3HoE.5y<C +cJ_uq/WQ@$(oe55Z,j&t'&m)JJ?d1쥼a, ,e2TUwmiP.FJj=JagM*)5h K4PPd"KR'Mkd892yDsY} X浰^QGs;> |'t՛ȉ;[¯xhۜSͩOO$x}uĵ<i퍹M=t1{ΎsgNsW;nϴsUh/ Kߟ4cEX䥞ׇ+7+hT ;{7TLאNʺ;gpZ=Q>5eoʚHH6._8Vol.|䉗>MYFV\(kϿT\h)̏oVPx UɆoE"GƎpw1 Yoˆ{t-)tTRʭcwORu{.AҖ*}A I}|9NVԏE3mU +^1HrbCQa sv;}2y+EVSVpeA<[cW/;'؟zU!Mq=]AS:?{}wϴT"~n:5hcn1}*e﹚ql#uO}pSs琢^~]Ë/~}`kWTU= +endstream endobj 663 0 obj <> endobj 24 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*4Up +} +endstream endobj 22 0 obj <>>> endobj 667 0 obj <>/ExtGState<>/ProcSet [/PDF /Text /ImageB /ImageC /ImageI ] >>/Filter /FlateDecode /Length 4309 >> +stream +x]ۊ}]Jytuu-6^Y?,~Xz,|p^V)2;*bî̉8q950߯/bO^bюZ 1?wחEҍB [ rP^~ʌ 퇟~oor/?P26|-?  B|m*nWx ʂmc ç!@wsvtiggzb_CS'oae4 A9`Ԩqܙf~L +?Ѐ&$$s/y./i~(LKV^]{*xB 6G'mȂh`[@A*: +vSW8෸(&Qk+fxH&֍I@_E6gM_D]IIN-.;A*qqH0>"{M\@qyyGZ.ڌ^(.36F^.n[ZVfzӅ hEo=n0  smV-<w +o"!ֆ:j?qr7qdb;7[n+739^eeMkrC+v!7}v4׽,"z@&LIcJf xC&qANޚ?32]"y!MqqCct}n:}O5Fi.!B^nE 1 hJNCE`s 0MVs 挐Z)c dMX6Fh`1P\(.s + \lƸ^ ^kmCDPX'ơ}v&Qp['ac+6LAHh`3n$KHZCT[RbMO ]L:r4-4g`J?PF{\5) (DBW~D9[\yJ@$-{#1ށGg,aX֑3l!Vμ}!'L庀4-?=%KwGBJv~]@.ډKWWQ,psޱD `tD三[95iq7u4v߉ p/׷;UWXsե~v,F bӲiǸ +cq^85ras= X yq}x[E;[UFbweal;bq>״d{v:DT^Ni ts mk1_HÇ_HÐ'q8 &xE;#gB&["}H_D[1kkg90)9([._G/~a0.r5$TF#[CH"nX|(|x=pU( 9H`NFLf+ʥ(lBr DaL^>0 bV{=$99]K1,\56,KVz`-\ H0HvrB +޲mÌ ޺ށ'ž̅n{c}nw.@uH9maV2jU](| تvepջ˙Q#t,Kw%dzw&+$:zLArrz|G$I[DVl%a?RX6IG>MrN0TI*Q^ь$( Wn'5J= "T:Y>3sҗG=?1oG-*\JtiGJ0=8[U|-aS6aTDu`GtŬu:L aZٔ,_X9l2*Զ|}$:*04) 4XLwe|VF {3r.BiUIYŎK +m-ZF^5NMl`kbe#6``3kXٖW{ v4,":襴Ic ϐJ'.JjĦí&O7ST$* +-nWqifⅠZ-@śֿR*ۀܱyf}vlnݲBz@tX}a'KUL;XHtS: t͗?beWJEQl9;)XBVT-Qt9GW{ * eaԨ' hM\^;l> endobj 670 0 obj <> +stream +x]j0EY& mB^A~,]A, Y^;VB +2 wcln1Ao89jXY:T˔pl\?9fo|[ߣhCKC.A= zUM> endobj 674 0 obj [0 [1000 ] ] endobj 673 0 obj <> endobj 675 0 obj <> +stream +x}[}Gu|w}?|`1%$ mD,'QK*/UEjҗJ+Tmҋ}I%VDQVԝYkf'C}˚5k֬'!!?O>[!Lz/+K_9ZK_coW~7$w_>?{3??oE;wT>?_{5+/|>aї_+ɛwwŗ?N|K~7g_9R?N0rN_O>==B?x_x{QxUdy;$Tt~o'!ǓtbWoF8 MF:B$윜g'uGzw3~gg!~w3I%OQΧy7yfCv}jy:3y=o٥scϞuj;gK۹yb-}ouk/ewӽ8Y+ow#w'سwZ\Θ<N`:ߐ/)Ӹs7Y}NzOw=ڿ~Ϙx:*/tb:t5Lv>ί\wX?Χ3>+Cy\ߏ3+tKߵsוxx,ogO[cVOY>dmyڞ}O]?a^#9{ =?oefpΟK??Qz t^sk}3a}_-냌7Y\9o4g\g'yχ|!{>33}?ht޿`OؙiIkm;[Vm,vrx6OZ>#^Ùqpwt?NWw?r~mu}Z:}=&x~Di>R^7ڙI{'7e:nu~tnpw{{Nqn7ݗM'x4}7][1Ikǃ[v^-.iw?l7r>b8|֞w9;]OXXo=m=bOZϜs|?iﵲ7Y`yƮ48jxggǙdreyxitn:+o'/g:*<ޒ]p417=$ɺOOtULCߤS!TWU0,MzM:9MӑtLJt~$H5   +?4O:[mI'Jrvx"]><R%LjQT:HrGSȳKճVlzsɤ<%%< z!g'3 |TʯRߗot4=8OǝT>`_IoߔI\*§)ǘ{/0IN҃X~77ww%/'cjS ]ʗ!1CR,u G )IKK1I=PQ/{'ac4ܧu cJuKe2eNy:i"'ۜ GSY}z@ӧ댋%hK@.3I&]96鈂\˜\J Z NIFPFJ77mk.SVo%JԳIfut.E[ojf ZgmVo|XJ)닒]Õϳ|>hM#6)\EײC{_Xx]}|WZyOed՘8c6ݺ5Vk rFaVx1ʘdn+`^՗R8at0~->ߖ=Gl{Crώ.`?(Emz/s%gȽ6 ʡFœ7ڮo#.ӓ ۔\$Fcގvv# C+)\Zz*=fgKgL $TOjfAؖQG*[p^R%_ :(3Zӓ$-2;s6=݇j8^$qM,Y^oFs Mi;-p*y>;-|G{3\=K K+` +U4VFS-X)2]q=J[E[k\Ԯ^^8I'ID5%K*=ي"N+OU[S~h⢼]RFo$VFE#I>&inV1Iӥ} +uyz>p7FɃ\ޤ6͒)%r)?ۉ3*-2"}o zY'r'%fpi3ݒmH_.s9mRT)\(\ޟdBx^e+ysc+m_d:I$)6.Hؙr΍O/n'5/iCac'z"Ejd %(@:Ylj\읔(R+FÝ^4a:Ӽ:M"ؚ`'ҖQں>KR^F,#JRf'E5f2 j'(PFQPU#]Vj$$X]ӝer5 錪}t"8<j +ѭ鯊A |P\4L=ˑK[T.f;sV +ё}JFYp owM,5,WIϕ]Lq\C`TJ/<~ǂi7Ptmw\, hPn4(4b g,eρv6!\5bw{/ vP2ѠF:}Y^8hcUm߯kVϵs׉O5(k{r+>?S] W']K┟EK`:ʫ٫5;F-xy3:V4I/ZIQ [vNaiHmUr>+2uy-EjWA54@ә)n)_r]CZk*ݔlq l8Kߍ'z3J&|ĂM|ƒ-:P0ˢV ]R&Tr[ط02F.-Yb6:X_0eL2FNk3\Җ֡&eqm&!7nJm:;uݵI)Z[Ez`U;h'}}weF/uۀy6oOW}I|$՛'yZG<RvVn, z4WQF9QT>q@ToS4>knlB39f} q4^c0â|gwF`JV-röj)T}9Ttֽ5!K+i(Th +[IvSz5tAhM%5R)z ]p!ocxFm^(7\@ɹ9s,0)p'$ JJ#elVU~z\y /k;j>sVŠ+JhTl!-;/.BI}mT{?Ԃk!= &W=הCӲjNTT~D;@ +olzL9Z&|P_<~cm9()UvUiȻq)ǒ~S6FmXC%úCJ Lc^ @He^i^ݷ?VXF5]qZW܊J5k_[=H>-:ѲaԎHyp}۳܎}tu\3s*7Rȍ-yۘ^@'v~eߞV$X>jC|cFKDM_xiRM~437Elͽ+|\j Cߙ_h AWV戮d;M`^oEg>}nOM{=T{?9 +7Ϳ moMg0A1 VS=2곁|g!O FsoQ|}hKQklJ[_4::7=bFk?b|o魽6fd\Wks֊c`{idHe^98W?KSJ6os X"hm獰P.Aml/V--Q5^'6[pմcj_ϏUtC8`zRx@x#ɯTMh7y +)a-,_PէϛqGg@z㌺Wt#ˬG[%r.=_Y 9G4Wuu4kE~ (ck")LI 9ŚsY=h诩+`5-m|hKmQڂU7~v܎+P8#~$xl6%Q=-Wu3j˝p[֭Kؔt?s +5Mγ}Ŋ#?)ogTgO_j}M@<'q6Ac zx[rC{2kWu}GM(i?2K5O HpOT)+ÞMk/G>_чjӋU>x/cq]}57Ƹ͗zBlȞͩ5,ˡK oH`Z]ZUw{@Ueҽf|Ӽ\SU*w!Tmkzvb)DĬS6S qz~HI86T\3#8z$}7kS(/-gؘ^K-m usTS?.XV +m1|om`M͢ ךmܧ[hv-Xs!5d{(]"+BTϥX}J +Oq̂k܋alk-)HDm Y=+R^?=d-~".X0zSs_/;6=K/Ro,ŒӷI=/n]-XoDSYj9f1ZzS/k=8 ߘ' JzAFٔalM%wVէ5[c񫹯eڝiV XbI1z }CZWh ]6MU6u/luLu -%jz9ڏ [gv/&By ؁H睼Dyv="6 uw_1c9z:dp؞eدM@,3d(D[X !G{+|^N!JMz8턝ˇ1A餵a_{U9BuKvM~=9B@KuXحԯ#DҚj^M6/k-5~bk9XzAӡ T==!Qj8cSNvѹ̟:uv0^5׹Ee^Pn6M95n@5Tʌ'G+g4Zk}$קȻlmϚCwAwU(M \\rA/$1ܗ~oVѿšhNM"o_hllV!5*(Z#wm+CnXBwYrohi{xowoӖ7Nwd_~۶/S#T;hKVg@ə^AhѾ/R@tVWڞ쨇ՈX%ЗFTռ\y;qڟ9Qj1eCDEkpI;<;tKcަBYTz$ݨ7~*>YB- rjdߩ +}{x.݅yt?M-~;ɷ"4VFmeȅm~*=XM%uZ+2 FmIwwWӧCyֹqL%6x?\; aWJ?AVv}A,]+9vZc]Ub֡cf hIS$H*&U=RZY_[֋uI鏬A$ڸY0+ r 7V +Mql?j_s+;⻽=, -?|,O|}X PlSӀu8_N-ՙ4F$5=t(ưr0wD1vUX9uY9wg-Tgi#Tj#v;2NА/}t.ǣi+;5^qmgV=6ؼGm[ٍ[Xb?cP(}'Gm_$!Q 8,cgRv,y $ZR%L(G/}/f՘]:d~F®v YvpaV ڲ1c`h3YU~9tc/= ~ ]9Z.`MZE7 8`ï'G+ smk]Ӊj9_2ȹir===mBupP%e^u ;.B^3n uFX4œ~SGo+pjT`C^Vva`n2l Thyf:psE$Z'Dc+'١67AQ6fi@X('rn|j  !# Z:!gۿd0).'U^9_~iEx;} x[3vǁ-b8ÃI=3>ok,v!:r`$v1\hjJ?r|%p"=:=J[( ]?uTMWqzuFOۛǾt9X#0Xj@+(u|u.;F{c ,~{aOM 1z<\hҳ1Kt=)0O629-8Z?Mܵ7eX޳X~q)mBmQv-Q$Ǿbd06@.`OwS%<9zg01p"I%`z>WC,+?3wl_b<_j= |J̷evVXA -h8:׿F1^٢DA9WcXR|Oԣ~%h)SBTJ+%?;--GQ&<7]*!h!|}mmIE\cVr{qFՖ$lq5/hxҦMwp*PM#sTRm{4RsTƠf\[٧),#.Ga> OVP@kJʟf=7Bj:Zd,[1ztGF{P )Yqq b76KP0Zi* E# ߧRdd޵Q1"[M/r +:`nZNAԴ gb{2?1pݲkBOE@1նGІMۤ{(`Zqs !_kND)co("( ^]x`!A^~ڿ Ǫmj|7bu/B}`9N%ԇ (H ޚӽTG-%yPql .*@oQ+hܔd=KpSz6/L]z^@-u5ʕǀ5]p2G@hJ摃cV m;s~ԯ9 *ہ^fxIǢ}ӂ؄)x뺗Y|V}Ll|i6tHxuJ52)GRu5CJ kB ^v"%^ ]'9b c#Kݪto~J9èdx:̱oү1Bh9P,0%oŀf|_ۜ0}r9khK>p};F.۰nacuiЛn&Q!\h57: ;rr*,{*9,)j[abځ i+4sΒY +ֈ*y.Zeu&Iq.XP6".(oQi6?g64w){+<Lc*)eo.Բ C[J`>OTwЕ9E,h#W5O'_m`, }!<"Ծ =NqԚ>Sm6@E}1E L  9h4<~Hi7f +eTv6+O5_m c؆SsFn=v-qk[m2zX?B.PgX{52K#n\y +6p;f>z /!Ҝv4-c6nַ +7֭qڏֲt_CץxZt{ñ^؞͛U~" 9]]6hwtWdd}Dx!w;+\_~wÄWm?Zخmɓ keN뿖ᆵ_k{iӅr+Qs0oo I{!+ 9J꺰/N,Qxam+k 粷^vWk^K%Գڗ.$6rz/Eۋko-]{\ڤH^.%{₞U~fׄHEyP8VхD<+|M[[@n~/bh<`_(-AE0,nM/ed6_~1`'I߂T_b )΃"7,$[CM/c^T/mQ*S%W n DTos mK#-ݩwohJT[97qbs9dE^[} _-شh|qGWWlm$CKX&e"RljFGgUjjY_9X%5|]`(%#Rz[r F~Ss +ZMI{4;5#uO9V}_Z42uqt6{#uF0!I1~|= _[ruWbZPz 5*%~? w^+3\iO9L̾ +;A]k|G]mi hsLղH]]O2yՕ`Ԉe0Ho%bW<vԞitgN9!:7]m 1TlBo_ʻiWﹾ%5m7_6#Ey89h;^z!Vz'Z˾إ 1GN^[Swv4g+e5Yn}ab_rEX5f5N DW>W]!k+˾dEM~Qe:F-ú,I)tvqB;;_Aږw&(c!1ƃ=u< Qzu`Vn?S˖}RjECG]~Z u%wwkU})fx'R #޽圣{u!mΚ<Ϸh/9xׁjݕɉz'(uۭD#q4кٚEjR~JNP vCT%vFvmXXް5ӻ9mj +f*J^y2p#ܖB'ֲܲ+yZUmsQ5f?m??~{8#_ wjTyS,s\쵽H֠c;uV=ߙ+\|+tXlJrHc KɻxCFnE@ډeEWnmLn< w} n;nJzw`Mw;sV-g_,*?PYVξ/z)Yڽ 5"LۉJ)f}<H\rgRlr7v+JKѶXAihVKMuj-3XLQҭ|uKBaM[)6;]VKʎ;ZEB/c)^ە],PN@Leao"_g%&|ƥ/^_w!_Jh!c>rx<[4r21p*MO+ٜEeM;XtMB|J\KGi_K>_8iV~VFF@)_#e/=)" +8v(섾w4 7?|F15$ 缶g;jQn_telJt$ިsKqi|DZMxȞDn=(&+5 |$W]Ynj'ý\QWMrdk48'kVRa.|+Chho?rFYrus3νdh6]yg1Ǧ-ȜE8Kk7F)ܫIw{Vձ?pzo E@ ֨`b1KԨGXbhk4ƒvc%D=3goosi{̚5k֬]1z: #X۩x"*ndJ T.lt + qFۻs.wL K~)Ӹ<_SN"p*6Q Bo7%^˃ 9G Q+YX˅VF,D_F쁑! BЮT@S],hq7UƷ(ч&-JZ񧬔x|zxd.\יuwɚL$ 2jNVh ңB2pݯq6= Dh2.=}Ewj"l-J`pV`Vni +9B4ܳ۱fǞ'q|+G,ܜ 6q󪑣?5cJ=LysfL-9 ><%'#jH +%*.ܳI,kUZSNg"\VQr Ԗ;:9zLPkD/+o)R3^ȈeV9Fd\aUs 5F@HX;X+9m ãW[큊0%W!nU_=^;kh:@vmb5քRJx5y&SԻVr{ :*7D.k\y1e\QIl_Q!01$O4UtJ::n\tU +KRW@XR+|-ծX)¿bi T3%i]=ϝE zXxMj\]xJYHxrbt\ l$S jiuͿdG9Qob/Qj7LrgX^S0PrJ1+]1ؖ4;&N3 xUU_"X}eT27AZF(ucʀ-p#bg9׀i+j@޾eghJ|\\.&}O_2|]Z~wr_ RoNvgFfWG%EH r=kH=U|ɭhsY8 !Kn\qDGEyX@ˮ FFEXp ++W|~fAU`z+G'iTTޛC2GWM%_'^/K^G[W*uQbXb)B.$`5 +B+yIzк 99Lր;^Wʲʩ=55w@$6bWHwi8%A'¥d_I!ّz, c%jPbI#7n4sh1AxE- ҅x=[\U~+)nMGULGB5UPBO_ +F)0=+\ +-HB3B1)zOu/o 7ow؞&I(=( +=vl\  Jn^@Rڪ`kM *5 '58Lእ»o~GoCrJru9xı"K*t^ߓ+=,rD+8[ԍz|{ IxBNfs& ?ǡi^Юz'Ռi[yXū4n-?İ51s%Y𾕑kv<Vr*@{'kHXjKOxEAIfwXPZ$Vsѕיpu5Ҹ~rYß4A2$'lsY+ @4 Ǭ8g`JCw@f Ww`ש$[Rͅ$`z@dkr5xo,*׈B#:S[īhO%pD!XDP M])(34#ސEA$B5yjd#4xE.=йd?XW  +%YZW<SJA(3 TȓԂtd׍PÄA2FjW~j H4+Q/"^QgH=!x+<Oz/?Y;OG/_54Dmrdwƻ`eo %D돷|D|'N^"{3:W&"aW!wBNE>h0 +&]ABMn | ~UO,'O+26Nja?քqn,J;{t.Mj@tw\m#Gv`-7񜽐9\σԒ%jPh1Gv+I$xZ䋟. (Y +) (eBJ$|&duٚ>7jpf6|n݌Ͻyv3euŪ +u#oqAKLYh = +@:F]sF6Vi9DD:-HK ixr}^ǝEZ@$D(Wz#I'WH#:@,D貒j<#^Mծ_qnC3/Q'UґRP՘#g*ЊS=˟m'ԩ6#'+gMYqc% ԀǷW*OU!oFƒR8.Aύ-PD|3_ަ;Ǥ^8N~xY^@+K<K x]=W2O jng^?Sd@0#2tH Z-D.u΢ӁϦ`|^;EV)ǿNuIYj5X^ ^ X/`"@9up dMUat#Nr0(:Q8P!@7"A̯9Mȉ?z:  K$oüİE*p [C:ضM{R~`l.vPm"dr!?R"E"QsMT藥,K[aMC"Br,bR&p˃u#F%*a}`l 6Lls7'Zl!iAm 2ŨÏW*|||+gm6j55 F29[ kxx`bQz$Fk ) CA;?'gekasmO@@mն26 9#f]8bhQ)}4*ZdԉfEKl*w&SX\_/M2i&Md׬+2FEP(Lt*F#rSWmi6ZP+ZҬo{V T`Ckȡ3ϋlVs[!Y噣a2zFv6l,(I` K ?ZK EK((((((((((((((((((((((((((((((((((((((((((HEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA#n D}E@}-r%p4 ep9a*Tр ` qsn9s+8Qέ9-Q(%pk-CRӒSӒ{[ s&fg&fc3LX=z0{fjrJv=ә:35Ι3,!33+5=րqtL9ԞׅĤ%n2p4 }@H `߅_z<Ȇi`0%$%{%wKzA 2M񒡿7H9^0Z| ɅBw  DBaa?Hyfs2a^Y Fm:dSʂlvkt 0L0^KI-wS̶c3 +OYV:mMo#;/[kD>T}ztwf$8c%cR9a}:wy`y -tŌxN zök;Yx zS~?"b){2^udzNzŅ^`U,9ԌRV_'{&A/IEb8 +BWQ:kA66e +2ZĞDϻ>3Wy7Ņ֫LK"fWǵyyyx[3F몪 V`WII7,2f֣0kz8i ˜`Y2'sPBaÜ= ̲) Ƌ P-(NMJMLȆ#Qa/K6|kpXJ vD3ݵL# eOow5 +kԛT[ÝuƧ&ۥ%6pgꢂ({<)+Dg[hO*"7 ) W E"?aߨ`G[c_-ON[:WBM`?/?sQ+ǥGퟳQeʳamۿ7KCtJ#?w]7~sqW}jyC $ ̫O:=N kZhu%[׿Q|#=gڀ~ ֨eu-Sz?ܴ/s}|˯C[,P\?uD3wT_9}&K/N)`ilX;~ie*S&u&3I)5l`$l, Ӈs},K EfjHc"I N9BꆨJLt>FEj!Q0:6Pϖ%#@kF)왟UcI5]aG rTWz~1%way ׋{w8ijϴc->lS!tEY_6<-h˝;SnMؼ ;;y??%.ܣ|֯=?YhgyyE~}8˙Bm KstM_Թ3Ӷ>z|zaK2/pw۹ {eƇ w43wsqfkqQClzr!y)sHj\CR 94zL⚓5g?kVS.q)6Nds-h!s]=q3݅W b_?:7ʀOc[|b|jI6~}lh]MpuS^5cjAEeY6%;]17YwD9^m/=ڦw=?x~abSSV.-`QB<1-?8/p{fg}V΅6hWNe3ό-9"Nm07zqz1<%+DM) =(Ӣ&4}xjsaAƶ˱:uY=1513=+=)ԙ oZJz&}1yӳ9)险ٹ,yh8 C0q`£F9ej$֫β3^koov(fr{ӱ]/^>s`3->X?hKO~te|=4oy+z;JZ(%`k (k}[4r^:Vo7 ݋uKX_8d`ШwnxQgoeٚ۳{j 2sOD\U?:[-Sw'\7<;vy:S#v7ɣyYJ=noV0Jzž sl:U}y(c&bexӍL +`9;.E҂EL|CS3wgoK2__q*̽>0|_wj^e|w`o͚<{|<1'p[q#ƍ{ fG6'& Cv1uH=Nٸڑ9KLSkK_v~{i`Lbo>aw('̭{$[<ӑ}3y7V>ҬעMÆx 9oխGzDuڡZ6k}»ʌ˦,[]1 +!s3C ;>댗KjI >.C~!exH I(XYe03FPHȂlXBbC<<=m0]5{mBߺM݆`'|HgnQ`hYJ({7 s5kyҷD>QEXn8Z}+^-+;y-^׫<:aFοM)+LG|n}Mv݌|5QxD6φnhvVuo[Te{ܢ͇5!do-~=pt`β?5 ;W^yVruMOGtq{޾qWnu/546ݴŇRnKqC[Ƶ)4aʜS$QW%-8~5ŞжQ}ҏþ')-ՃP. /&/% 喨>:Mj[dvze j$TS]A\ǀhF1>ܺ5w1Xn %G_{s=:LAWz<@{dS۞WovůooI71 [ӏ+mz>>OBͺR>yq:7 +x5Z{ƣ_ޟyGsG⼫W69b~xe<=vy]aGg]_LJbyڔTc"杛Vw+5GX4fA&=|g&ٓc~s?0kt[V̔ܿQ@RȘ*o+t%O!}+ +Z{B+Gլ#U\Z2z?}1tuDDN;ܺ 6=K+KG}3q{:~D0gc V-<`1M"P4Ȍ.<1xpq蚜xVU/tݩO|[ÆK JURmf=ZdZ0͋GMzONV~CSІss Nh 4sDœBpF*_gfW&pn ,^ٯ:~p݇]6稦+R7C;?ܹBY?,8d0=qSQr$gɬMtݷ6!Rk_tigO=wkygE{*=~(G:)rD3uދeO+|m1LIa+f;b^?ng܆}Qvs_|ţwdRmw/ӻ罾q> }7q&hK>j޳N\oXveBnH6wE"` q@y1vqPr'gYF(9U}j^2|BۓWFoQVC2aP}99 A+W\'?–]0%5ٗs3ғ32Rr+sBH4Wq͹ͨ~?I-4je:M|pNIx5?8ێE3wOvUHΗS7ԙ|zi ]djҸ^:~xq+W7mدW\&e3M=ݶ4"Q+˂sԜ|6v y*]}9{㧹i=v<Nv_7:"<(o̴Vol7֠`Ru=;,ĭ+ kfKA#USZ^R٠Bk 0۝%B*DU@ Jq/CVv57Lphp 魠&_6Goyk] k~۟{vȥMoz}rz_:xkWqeӰ'uTeVW7hk|IO/鐑Y4/טz^^SLˤir-/9=~!avBON|R?6jΑjt/1 N}Գ<֛O\h?srݟ[l<|2r+24Y[Fbyiu6 %J>ַׂ5K:Yj>:{نgv wzlY_P 2 +endstream endobj 672 0 obj <> endobj 20 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*4Qp +v +endstream endobj 18 0 obj <>>> endobj 676 0 obj <>/Filter /FlateDecode /Length 2642 >> +stream +xZK%7e"3 QA!U-nMmOOHI;*/) ıˏc;@Uy}UaMO~| 3}6}w6ի@ĶUö:$i'njdY7;=:}r^j围vq[1\qiQ+cY,bZgL&܌B͏<O V1i'51÷ &Idg]q)k~ !<3Elp[Q`q=0njr% *mx1i>G+l+Ϳs4Es`Dm D=Oe*#%i$0j,OPL%q(mxlb ?OwƤi1zػCMu:ظh aQ*lɽC0z\$gD/sY<| {r-F2R%="FŏMst1nwC#AeZV/pq YNhUNxu~LJ?2:k#MZnJ\9ή, ɺe@LOp)8h n#1ʶ&zDIxJDHIT8:dzerz>K)}Y^L2 rl{|7h/f%tHLAPA\6xҽ,m꭭xK  u<!E9(rW!B1 a57Yf +8npP;6a6kMӠ?/D "ڀDܸ@f(M|"4I=39r*,hV<j I mB <ð/H|Jy`pvr1bBJ{ bޗ}pRzۧwR17Nc?{6R!' Wh@L>ױHN]o4g6nccQ8*Ny~t@|,]1g^`(Buw\l +JD\Pgf$DF#(X%"J&F"dm&&uzkdugA.m=󭰕ֳ5*eta sFi79 j(Ukc/\{#rEJٽJ׷p2b]X$o3i;{Za^tQ &1WҮKV9ǣfЈJ=94Aϻ*ew@:]\ч8.Mm *A)jߑHP5jؖ +jQx3ס&5SSOѰ'f"ֈ`]TyƯl=<έhuQOSn Bf.>>)OPQxhC\_82 +; +p:IUAfԈ r3@sZ|PV)/z&%8Cj xaffl/d+*/`|4:=7D^̜D:5RUْyĭ/L(I;ZoڧR6?cfDѷ;n ~jfh4$Q0Fr>ou(m0'ǠαV^OwiO뷮˺+^-Af$'><+vVCX:ZJLhKT|y _ѹkfx'B}0rF)͚V:5 n5I˔JHj ڊ ߆R[{WH +t8,^sN%x+E ö밆m6!IRTOcG=i$MHD*@?!F+ sd`ozT$Pv{q:)l .ƥRN–N҆`5`-Cf#_z)xp}_F)p1e1o߭?-W(-x^ʠ<{@w_7vEb!G5$-."Z*1+Ͽ`2^9o^6iG׋rPz潽t0L<9]M&)3>Z PS 4/0/&gX43(XQ|4ALkX8d=Yy[wrwPҟ/Q>d®fO B ]͚tM) > / \v-r>8m:vf*z7{.#H~_\2p_<|_(H +endstream endobj 678 0 obj <> endobj 681 0 obj <> endobj 683 0 obj <> +stream +xqEx'pL2H$yI$hۃ}֦ hTx-QO?_~oO?~?Ͽ~wO?pOߟ~_?Y?Zu5t+_cw7~X?u)ۻ;}eҋ!5IkE/'D +L eI2 SIcF$u$2悔Xto`,IϘ2)v&cU;~񍒨i#9uc>IuqnIuV( Z!?y\$uq)7Ij$\ ͇t+|ơIj aZop8 W@%/PZ%)C:M:ҋ%MDL [LҒ_)qhR (DMgH‰LFT(320MRM\2_P(*TNR*&T84镴ơIz|v'Ɖ'jR2B<MʒRGjqh+iCJt])#̷X;&|UUBIT_CT!̷}%Q' +ӆU?2veԽF3ՅZbUZ44IN,/̿2)ӆAGxmc +.Is%k :$cght6^12A6ՏW!*aZ3v6 $Ig׽m*842vj樚0G%U$WYbA(vg9j>$ڰp54I~u&Q!CTbs1IN% +0'm(樇sR{fT&iST4!h̳&ѣ_&OM8`7}&`΍x?wq@084hЖHH +5+iC&F;\vCd iliB/$s Q20WA;2\5MVp$djX'{dL`n/hKupߞȸRm#]qR&UIsDn&&ͮH$ʸ 0܃3C$g굻x[kzq86]&2s*)fNDqF$ax0?|Für_iC.qhW}{B/HФ$"u$]-QR&I84Iw|@0햄-dNtG_&uI/҇Dj{ W4i!M'Hؓb?*@*‰X_e~u)ϰb~aS/]>ݾ4i7I/2L`Lw;ѤKCK^d8M}an'q}$ [t-_&MLF_PƂyzeރqKVV/]84)HФԐX~Hk X~E~=Hl>|w􀑘á?;R_0OW8`Ƒ|dڲ]OSMTK|d4M)ʃy]JE&ImDsLTVP*W!yEea^ UăyB +ʼGtDh7Ŭ]%US*cqh*zbkb-yӽ YA›X볋g}$ͦ.84)H0+wnM&~'dg:$Jy_W vH; ̊6;üRy8LWy+Ww3b]qhRìmc8̻4I~}яUMbȓģkD4i/FM.jH&ļY)%xFVF_Y&ч +-^. +˥A`JrEݑ ^ݥ{*42H7Mi ˥b+[M"VM,CrW2ZT,\uD#,A#S}+۰2M*Șx+cq(L'M'*T844aQ8E=[p^܇}:)"MѶ|փ*[_RF!zDa? +XI*-6wÊ־/Ii$qh-34uD>Mh>֯nIr$[[Nd+㗳 **R1t¢]1+#My$!(FtwIXKY#->kb~byEhbl'{?tRѰdUdTt~=&X6M""㫌4&>ш%Р *X6XuRXBNgHơI5M~~A,r G&4XWUdI W\e4xEǂ!c%dKѦXXoDML)T-R;R4ǡI!L8)2zcG ?4K&x$>cafC,DM '좍C(#1:(Rgq%amMh-'rPyɉ C>e2|hpتJChRDF3kb1 +M7YTѝIfQWJUL"dD ,S$~W_X9i2_vGC6U"!,sߒ84b$? `YBbԂeiJBI,JxX -ŢeH;WyIJCȯXߐiڰ,5|qhQ˾dC.bQt1d#X#܉EBBB"! H]qXJ?1*֋svCcX/6,cH^jxN8 $RUNpz,9M84 +Kͤz[7aP RA:UP)6ȠyBpI:k%G d2*UѢШ{XX +&kP#`"VMBȻEh7bl킌/2zLW::QCL辔%6r`M`U'1[BzOr_5.84 o%ĚPX}xOך&<Mʒ84b +G9MXu[[G5M|]x>_1}k!8!V `-汋2M*8~^U*bCE֌X} og%_L$ݑva[ewk%f^U0=:"J$F84K$b}k`Q X +jm6N8kry֦y%X۫`BR8q38%~mb} Wb}=DȏHwvbo~#MՏ1q$#1(HS$dga6-YC=MqXK-s{wvǡIk].Vvѐ:R4ǡIS^5'X)N8M,'4}(cn>o̳r()C>M>$α 3)vbG.84 W;b]>v&鎾1'tC*P/FSbOpus;zp5262fe!_?f?*!Q_RjJEuUuOI 0n 0VWų1]q.<Mʒq.$l׭;W4(]}KVV-+hKh*Ms<˜ۥ1`&&էT'6Nptv +XAlbv5[}y")s1[cnOvO4_n&144cڋ"5IZZ-p$'Cx؂Mo~cк]yD9фxk*6;:8ʯHHڡ-H4%wcbKC-GsYl:_-щjz? ؊ ^M/y{ov +!{h=ďyCm+I5;KU^[S/A[-D$n-6EC:"ؚE?[ϸ5>d os nV]u6a2B*HIR&y&֔bǓc}:&ФR,&V?b.84IФ/2.2ФGM'UӽqWhRԗγ&D$߸q%C +8.84)#m +u=MH[[[||MJ84Jza z8RB%Ol'MTBŦxUOwbaSp&AEhMb);l36y'`}8ɡI:yZ;ԐN**6~UM~MpXS:8)vLeᗳ_WRed\$LYkQZ:UWeտYw-nߚ]?* [ 2~k>7ķȉ%g׷ȩQloaJ/ĞXbπ=.qhN<~N#xub7v"~zž^L.K,gXĮzM+[Ξl`jrV=M0YȸM@^^R4)K–K(#EeUϷ.v-EK-(45+~;VtG9E'\`/YNtpRDǼ$5I<NhVWM]-}&D`/ӛ\*:؋u7L7b/[xhW~\vǡI]&l`EBhR_pw+rثVDŮx~ZT5bvZ/`]Z[Mw<*[_qvT~¼&Q1]qh6]掰wq$/Pa-dvATM2ؒ-?L9 +[7*bخd~IzFW`s|BM_Zű&t}}ʸDZx9;!v!=/?_]?'~yW~/G +endstream endobj 682 0 obj <> endobj 685 0 obj <> endobj 687 0 obj <> +stream +xy$]'^}ef]YUYgfWUWwI}O%uK]:pZW&e$Ӳ$cY43Y2Ֆlxg-쎍g00L"ٕ/^xw~"PBJ%c}.?xۿw=w?wgvӧN8~۱n~X&44ݐoȬrmFzDž;/=RJF!CW/N-*nq;P;z"; 5venKs6uhmxMON7kի]#| 5 +[576 Ck@dJvܱC{/ӼtG֎Ckµ6]/3YFr!pA/6KbRjY1lݬý8rZ~k)]^~܅Or;|ڵq8wz j9J<9E3־t=%YvV`2):J.euN6{P +ve!;Z Pduϲ::SMLTM XI J 5i\u'~>{MMKYgE} /.c[x!LmnGۻL5ƍ b $4JDBRsZ\}(ܡyԾؽ CķN\n-@T]vq](֜cW!.ak]5*Vdlh͇mC[g C4(wy ^n>rh鑵KpyiCh*]! ^#wa4@R={vڵTh_| ԁWS#Gv\qvu#t"8@C@R.&9wC͇@4z ]]^+]] C̴mCr¡f.?k +ԡhyl}ZC<WZ&,وhT_uh~wu݇mEl&+BeB}cXX_n5샵5vm!B˗ЄH({Pq*jxu$qpztw =Z8g..^ZPz!¾%.4g KWklHnԻ9QPfpZåֺeWIE} mhec0|Ъ]]llgT=YJzI `yↀj5oppUj~#Tiŝ{2X{4FizC;*U0cxsĒDt7lTwӨ +uRd{:v}UWwSrnnZO?t2cI.N@mիhڮ=`m= +tr%%ЕhհCP7 ~>mN:ЛϗVw SQoy~::ΧkP:ߋ~sMs-5n3O6nuG#9oikYS(3ye[qg!^D>MEz~zY޼Ԇr ]!}x (ɵ~'HЩu<") O]!]vIG[zIJQgî›GnKjyͿ OT_?x g4bJ2\eI +(=KOdR]JJR{p=SG!9-(gEa ɝ=mOI,Tk+1YV=IܫЪ4p5IU%REUR|i燒0FJ>%=ׁJcF\\f#WdȇOh/ O^.{/ْO8%d|)lr:!A^{aTs@z +e8²ڨ5jv~RmEA9ե%~Jcd>Y.=c8ԜM,8FTyi騟Uy_w\Y T mIUxE)&AA1}!K"l u2 ~RDa1 +j|'0+PfPBnvIa-fXɱv~VHzT +M0m}"{d칰ӫ$W(̓ }2=El65Pmvx'ߛțT mq ݯ&a/5ʖ+JH%MxUȌkA<ٙ]p@D-ԧDysy"H5El1[1͐ P3#z$dAhP@`D lVsaxgX=mt{q0dES$Y,:(Bg=B~7OC0 j3XwUf;#"# H/D!|=@SFjc4Up;h;{=vBwS`'='&;;_ނ'do6Y9#l:vxS +bRM|Q*^ĉ{xHʥS6ўZ64@ RJ' >4!T%jhcubF ˧}G^|( _FR|(rAaoav&X4#U+ y7#.j+paOqD1 u\|8WE $#t*OUON0 J8 "q<Ǜh7w٭ :d9XVƁ{H!Y* ]6;ٞ}粊 +4.5@ڠN +CMa,@0TӇ 4eHɠ="UP@F>psffFĪH@p)v޼ +LiPGxlOGur2v6+H]pH%ȡ(+a Tqx(aO'v ZBs(Rey.TQo=c?;`˷}fnL_P*3cÅ]+34.E4<'D \t}re{33̷ϰ4DkLImfEOP@Lƻ.<$Ln0+̝ZNf, ;VPD}Il3(!E= g r QxJقpe>8+仩S|&@Q;( Hw;ۧ%g:2G0oZl+,VGc^OЄ/(y$Fte|#Jʺ)b&]x};_'wnLQ&fS_Qa9cfEeQ9U'؉!*qS3s4Ta (*?r?COUQ(^"ߨ7byj& \'sS@Ȉ5r#VU_=&3FoG&鴀jwge[zcP+`hQxXqU0:%C&oP__俚y$NjhuFa;ˢ< bYìVJkRQ5M/HqL  !kJűvYS]9ӞS5+@a'EvmVYU&aQbLXMj\+Y1ۃ14!,rdȩ[A[SuDԜ˻SRief13D%2uQФV Bj>0N Ds@kc6L;8iCi(G0ÅʍIt,CtvF-G|ѷ"Hz(ii, f)<,6N&1o=B:NAjuvz in]J+UEV[fz#+@@8J@.u`&r.nR#{(N2Xx%Sc=Um`nC{9QXypO@zcqgJ [2NI׳5Ml,3 y댸3},%L_NfHq}6X֑1gr̿A]=zf+Q4>FPFh'3@*ߘgόa缐Z+ '#Q n7d1RY^PdB̺R1}06%)4g#( +T{%YuE,*{ni^Lph(ai;ņ] CPݿ=]oe0˔畮SVdN%Jz@ǽ +C(t:[3Y^:e ;ͰC]]ሂ4ˌ/qNdˉX2'+H|"^ْ)ܝ8,<3Dkv;vLTX`ree |#H"/5~e]SIn0Yf-Ј2PQTl,NCEŘ} ,6u#l[7cpc^ʤ4Nޙ|AΑyd, fj6tW@t/ʁd~h CۂPDϼbcҧ?5Qs9#F:VCbjj(I$*7;ej VCiB0%(O +ZW!O2 lNԦYNIN$|Ts{MutV瓹Jwe]i * }whה&M$4YdΠ`'6J>Ybΰu)&tknRAoHȪp"/ml";|]"Kw|ѻ=3+:ϘI ifsWFztDl"&VipRif*J-XAB`Yklۚ)21oMc6RtQFi=0fd||c|UPI~vWÔikJUτtF5`Y!:譆tbV΄4JKx- +k3/|{Tm 0fQlr]&`{f_ce&4lcg pR1lMv@ctt`W-q9'j-O6ds.Fh7q4Y1%y  O4F )FkIQIBÝs)Xx Q$Yr(+UA:*Y55! ? o ~ +GUr  )9H:j* 'v.}G.Z:+8SJA$ : kj^FX$p6+ [l9ANPV- ҚMfVJqO{OXDN])upcptx@6w~{pU[@<0Pnn,Ҿ|7,a]L{jNFfӳ+؞9\XH(0Yyw)kܞ.YLY5qaw`dL.]H #qQ۩[eV`f0 # I eDoY]V5:qtq\b)W׍Bԧ@[-/a +lU_qPZVs?CLf9܍߹B6{pw31ɹ]&NEW ipMK7r-ٓ߶/=D>yw)%䯮"fGHM.-fJ>J{{TzWJg逰:ݞ麽Z]=~u[|??0U[_ +Vt>9.y622u xe >e˵Ѳ>`mVcg\;mkq o-苗`Ea U(E V$5[uPy)ACI%fXWesQ mk[mƙl ,J*/Z~ y l`%NCt.+(z[^`k_DV|F,@% GjӌcF$5PHz"VذB\tm tmhj=s4?zye;ɘ|kpi˦]o˪%tA8m?GgἮL f5OJ@543IcL 5/^ף(FD"|zY +483.V+Z+=1_T_ə75Ҍ> ЏsUGBUJ:lmk2 0Z<8PXQptG֎Z jӒF6WuUyV%;;lՓ X*oȞ'JiC z-\4K'7b0^eŞP :X*wz34鐷F]Y7w5qfPh{'Ud18JV5+mՓKS)A̸\*U M+ĕ `<:E\Zul>DRɡ~%_8A٭LM`/xH ,HrAπ(hM])oL_ MK BTbf+/We+5y!2Ѿ #zXbP/<Өl ?f1Su:( x efg~\':M|m`İMכl]m7+նj!jƳY}3k&W:/\Ȳ[mk~d͙{f;_;%7L[Ve]S= L ]lE=ԴMvkQ4YW`o ~Ci`׌W?b"I0[.ڐD&H<go^ypGLNSYJc< @|G4X,vyoqN0BYLIB,#)C蛯3[Y˦ئGsmE1EQ9+i:A,G%C JCsTZ`rv0=93#5:R=nܹbq +M$thݵr_[VR#NWv~7[ZEN(P܄)ńN-2&U8&0Y.{jp AWERe+YToBI SCM*'?o,y~(N-C +4}zA-Ө ,m_&%6,ęC/%4>\xx/nb%_ 5~E ece%y/ 7X^~Խ!حxxbp CSWW"o5ׄ3~WH_=ǡ$wSRb1__/1}35| +Ĝr9:wc~a\и Vd=<Ţʎ>Jyַٔ?kiiŞөKd?:-[Bp jI`U-< +yWmmj`~l+-_d-[ +ON |yCg SUD_o&\6׻onov{F#j/Ps`SӃRI;?ǖ c^/j>L)U5@պ^%7_yn_._{garۺ:2,>:`[nryg׸vֳuLFI⬮aYs+e狼[%Ǔ|b F:^ǟCdѧKq'˜^e ͟LmU2I-T}BYԍC-$L_:'r^2b7i,`T*%D-pUTwp0F/ +i'[f$2`w\قCycK[iLO79iu_8E$oCP]:ӡUJM[ԊE]u0!Zum`>(?e_)2Ho +cmY/U9%ӔphsF Q&K:u$Sx2oyIK,EpZ[Џ1Π?l +oGA;=~;莋,pp/}/晅xǴǼ?ZՀo'ρ]";gz=l[831 53A9G:m7 mR}hjk64VxEYK:xe(4us? ~Wb׌=6b.={O'e~܏X4ˋ2봠ީO̢.OAS1?бk +P~awȿRlRvak'/aܔON-%A0&Ӹ$w(9aes7Aio4 Eo7 KuyyO#-&Nv__d;OD_6߰C6FFH3zjm,x짬W};=(w:a@~P;/ry\ $}gJwt q!{ 5M]Kv ~Hh-_h5,%nbZ 0w5q1)WſoaL|jJ?| ƍ5 +$A%hS j8NA-`R.1&2.F`r~7y+ܻLcSuiF5>8J]]ja*e_0!H?2?Y!3iP\+KK)`ZjkKY/'&7wl%F1oNٷ BxC;pŻT #Wi# d\p-_2D68|TIMlAӼb +*#wwɗ~;hLT4ͨP0jvq1Jq$ș /" ƍ}oߋ/j)Ƽ˖rnym3 dS _*Y.?uΖ$u[}ҧEfF;fTU,,]|DK kkә8ዲHΉS)+]e3) w^^-S7@FJHR(Ԧ>/i>_fUj; o00>D Y*W$*?u징3< +7 泞lB^sW>vjy˿b%%WY;ssSÈ+ 3RMP*֔&kйn\Z5朝LX#I^ޖQ(І+86&y ~:_x\:4ށ/mx.oٚfSKg@$C︃?^G,* $-f@%|`R4BEȕ0ъVpySz@j8ӭyOOV> ϟf +RvN Z͏MJ_Wά:! s.S8 =tH2}nHiSOw$TC_6HWҤ A|ӉZi4"`&Ǟs,&;fk`F=Da}6^Mi;|&c]^y^PƬ͂:AMF>Y&r0[o¦BpqE_i4B7ٓ;ν%#=)MDfŝkMsx/|w;.>LzXkw۫'ek68PP%YRY]sGMdD'3t>r+9D\JWW[QV{L_FSF*o6,=0|#O0Fct#^!HURwR<]޴ƗMO. +/Y.sn{AkQTLOrKy4*qUϿ'_a4CiwR13q,q'* J/ 0`Sb2 uZrD܋G%.q[*.\|"Vv[11ufJÖ'DɅ szw +T^[ +eN-\p2ۉ.rHupi{rk + +'yp. &ګGY 8$k }0gi)6=a,qON6o mIt];@_A?F[o +Gw@$J>ʻ-n`Uab|Ҭ=D_O /[,.,A+88;;\Z53#ڜ@Q B[V? ~L4MV\E@ O=ְN 6gmߩR|cބhFx!H ; {yygң~'wbɅc4kVIˢ{%v%Y\p4jr @xz;6ioY6[Q =k/DJlۖߑx޾=q'}Ł KWhÈRw*4Ƣ(@HA^ &=7)(Lcfb䲴Ǭ2Ne2$KEΣVOZ/Ts}ۻhgˊ-su+?0[Dj6ޚܲ(ʀ#]ϐ|QOMꂩx8td{5Z^\,$h{dw~5MfVylÞf&4M&)-xJ ^\Mihe+9Bg|ڴhqhvwr%`@=ǘ1* TESjţiáB'ݣ + Q +OV|*!w8ūuBN> H6Nq i}o+T[rI÷\hȥ}3~R/v5AVqs'kY/kc$j1'"i4*\e7KTe\Z̟/a2*ԓ8L@%FUyٙ,p{nk.j?teL=@yw뱄/K)o@oӭ)zdJlYWk6P#wVW={+K3y$:b\+ooWD 5Ws`abT$q;kGK#{NzaC?\-ς}\uUBp?,5چ-:WTE̒(jcJ91A4>bsNYY0'W‡nӑCdNl;9r1TnLGcǁηBd GE %p``Ta`u;45K {uSuAYW^]ϻҊ"&<"/윮mŮ,}MФ@E\O\Bs/}PbՊ.M$cn 7 +.wImjƃPMCc1mBfǫ_Li+bDG} 6ј?=r%O.νpp/~gC&Vάq{!VƵ[cͰV^aXsWaWP&o6#L,f1(>J>{ \bwoOGt$360ڂMx5D'W=C ; UC +tY !}o >IR)"9-u6W}Z&szN <V1Co|Kl/A~q=k8v'N +6M_GU) 1^=;=$wHd4S{Rr@ +ⷂ6֑,Ġ8XݔF)wLpc]RJJ3jESOoJVs &7r/G5@gYSԋ r+"螃mgqeEwt銛fyLҖ{. [|A/{hG Weo\eСԵC~e5}ڥ7:J5FGwGV$Rcqa6q2cU vx&Ȝ{שχ +1oϛ(^Ur݈ AVp)G̓=9FVҢؒRozz9R]$.#42ޅJ{'JxX&j7_oYv {{޻ob7E(B +)"$e*SL)̬ڲ\rʻixcpmYal0p`q 9gfiΙsƘϙX +-R{~v=t4U} | m~ .%s_/h! b#7lGGBB <_FUϟ'N(vAT8z:_Xmw-۪Po'6`og aSrdo)ѧΗMc%9=}'/FNּ;xQ16 U`u}]n8~WM@syJntS4ʄ]YѹebXaV|;sEx`0Kn}ܲp,jahZ +^ol<}&֞ErR_pX3\ڴ4YSGќ +t9Yt+ Qy͉\9Ku5,b4~%ŢɩfA9^+4]MhX`T@cQHb1ZYfQiA=jU*U3>_R5CYոZ,~Bw#HTIfqrH=]w밒C{:cu*'s[iu7b+sۍȖI +bw5AfCSEZ)#-QAZ\}Y^er|6`,[MDs;M϶/_U\)pHq35h_Ȏ=EU?Y{͂=?h)ߜȮ\̚wU##X2%K1`Pv.gz~^ +켧[ZVBQ#1%P[yL2dl5^rB+Uou! E hP\4CݺuwwtHx?X;;_Ԝ,xs\,=Xv5cgT/+ؽ GE*ss -L]N@P-7mN̗ibP'2M7{mNb#T/i2+)D2A~voI/d/̧2(4kKR#|OKp~ /In<{̎4o8Y ZqЧ[YG`CfkE(iCD0Xi k*5Mc/jTti6 Q~_@ ]n8ZIteN4"_'1p)pre66X$4gI{j⇘E,97 ! jQ (0uqJTg3aDꇞEl'[y{g^ 0,ϫ.| ӟHeȰըiX26yN<>a'bs 5`C/i1s(ًt A+i* Lv-aVӠM')aTS?aWa{΁PSJb3lkK.4\bV˛KTKdiN pI[Sި"%ͥb dQ ]Ko*B{w_EB8fhSZ80@@ ɻb43|Y)7׿IPAMﻕ!mo@pKi<[ur2X;pM].;UMNEt 3! r9*$h/uvL.P%/YQ +&elL +wQgZ~@'#ޅ"aEܴ Uf^eK"UsryUcxpv_{Z'l(WOE".B֊;KȌq.+IfS?GLӲmjwvv~d= dqZj6["?U)Ӭ_Y)ed ˱ֱ[Фg;Q1MC1 hTqTu1󚨅Q3uE0>glHܿq֑+&cs\MV nPYY3H|e+a%iCHjmKrEl'O]]Ǣ8Ȣf2m?IIe-9hlʞ˕s}@A`k "6jۦZ* |{,=*2N랡J$ٿTHp--aG6ߍ֔H!-@ #[_QEV)w\HUmWjױ=dm>V%$N\̽L@NG6T|i\p`x2ѕy]64N6Ϳ1o7s޵eyAhi R}AtNăBP`uiMx\B>=IqxyEF^{nO@>΁t4MӦ?Ys Z~Oz;_ Z|X2|Di vA$]Kgro'v(I=:;{.L]B4"0O߻VϷV2}CI^hE*?/'LTfP7hAfV+zo%+p [z g|ݙv^~jg%fgsksoƠ׋o'q6AK,|™M8j_0~mzhQ5\U3Z:6dovNW~8bEoTlU/P榋e%ЍI ,Gs"OcJY.r{1Ia4Elgw;HZ7{x/^Ϸi0_&M3ꑗ;ȪnI+I[pvѹo~%u_ڊ^7=bA/aqpߎ:SD9|ݡ艜EJ˞CIM^˖|) mP^VuWWwk+v$U9jugؤEsLĶ?"M#"[sn/nXE]uB=-A?!&'fzo'yx25]Q}Ku~N w]R6G%+MROڔvAuh}U<Ʈ[׏y!$Oda^v°LaIH@9dc80lfݲq%^cfEGʍW}~€`$Ȱ/o,*kS5 6`֗9z8`3V1phFw0_IcqV€(j`1_>сx'+ |walUiw/{+uvkj좕 ˽y hd62s{UszX:)e ahn*לiHDC;R7Qن۵4!ޭWM3gvxik&O +!ܰtࢯma%fJ\7tƍ;bBS7ivL*)K{ʰTP3Ue"xy2o(H>cX*dž$Ѕ1QuK}j^x}Oc7 QrepllUNĺ `} U-O\pG"Ɗ9;&@5ا>O3k׸4z< ~^]Ǥwn.kW_&7?{Їox (zY=v`YO8y:>d>q71NZ#{hҬ.vtlFhC;Bn=Zۺ% Y5Yf2l=q%p)0WQ5 S+%yK@+ߵs'-qG nG.)LC dyMme=ݒYa,׳=M k6ѩv*`ZFwo~$)q!M%=/xatҥ͛d"M{ t,3OX'5dt$hUM-LMzÇ8Jr_{[!|P1p6U_."o]y~SpTR´wK/EWd|rۦ:qp̘2R|D/VoJ\\p \\biUI綅RF*+sk{;?~xPv֢n~{U` JEwfaV0b,;.UMN E?x[BoXZϒv ۑK.[GZHY_TkRwNd.l4IorZ0?#,7c:\ե {X y2e 32f[WhݠF7s+V$,t-nQ쨦09;,`Te IN4iiO:k|{Q)]vo4ʶYd1`5ő-̆ ;!chV*Z~Md#][,-΍dc|}]FiqxqД̪޾PC+Vլz}44"[ݵ&qjuAzODiNtsVrVvLj˹2m(\G&༮f&cm5yJuUn!n*(ΰ"Zm0;]ё05Vͬeˑc8 +>UlZ~OCc'ftCArהFiz  Kگ!7, z>q*k8>,SB9«#d~Rrh_WWrΆMgC:KDHïLV `9lL +Z!^>wo3*P;=؅=/7߀⽩/e:Z_ܮDC*Cu[ۄ$KL~;[E=^S ֚dE!!i c"Вʈ4VPTYԤTUU~Vkv1TKg bF{]w3@OalHoD")#3l,׭7Љb{14H%BK+#zt"^^jUǷUT*$!!eGF\9˵;um[ whIg +jU *$) +]4-0[UZm~R^@]@asC,EL$RQӨ ,="}hrU| y:e.C |QEehқg_ǍuXzd 08Ǣ{HGC(c`fjlsZ7F0 %pydدE U=}U__/C 2q"v?:/wX%k}|磢CFO{7^jLHYV0 +5SSjmvL۰ݞm{6_Y`R۱-c(9_\- +(92 UnV6DVy4u}.̿O'G՛6D`5dүCȪ=pwap4p*.7F>YH'_ILbz+"U0´ҸUqGzZ+`jVR[!jͼmQ7ޘ.X\Y7[07ghz9P8j[lmɠ)ݶa=m5QMDB+~#~kvȚ.xПң֎ /DA-x%uE`j%9:z q6>#7S^fW} +GgSo"*J傜m 66'Ά8pVkV`bG&εg}@y30U$i=j'mHIo^+:W]}w{vv.V'GS/I{g SJqvBX]"x..gJę0lO]ƈ`ytp+5'I|pPDE Q4Poivb` 35s>Υ(S2v=I︡"𝲑ծ5cI>3̤vaAEYC-^y+ wy%ZDZpZ+*iFTMXži27g: &/〙byd+FF;#:r}uV_3d¹M]O{(_F_G4.ZxK{Fl\bcdcM +" zcFٚUfDQA7FJ q}9ys +ip_` )v#Й-7d /UnӲ̸$7-R6=v`UBHƖ"*߀7E}ܓ;15axidXßá(ǵ?/b0 nMx=je{&yjǴLuts vgt4~m(aUU,Bz:ܰų-cÃMo]᧟3os]g@^֛mV8-ސOcפCOWLg bq3 Ε+XC.,uih_өIRV%y)fV&(@O,gϾz|\*2}ܪI`Љb;ܳŸ+:68|Mq;crdwd:PܪR&!yz2"-軒dȳϩ[3mDA6ROXtDXr/iջA؁ =v#UCiN.,IݴG@^Zֻr;thTcx1hFtI,pb_3q\.tZ5XuW_|PIUgN72 L:r7)g}]+h9+m%Z _i°mъOOz^t6Iq\tC~ _F%5N3} +J.r)#ZT ` &]uO PjkkDXm|RyBq1ǟ$ͼTdIm~1J|r1qdnN<Ko>Xߌ`e\C:&˗.l),K袇X}@#zK82fjJ R/~P_!SD1<v:&ٺ~YrMAʍ]^QYC8-b*tUj% /"(>ݐw)'ZCcۗ=i?%ryjY?Yp39,:1N?9uG2_-Ԭ!r"eĖ.\`1Hu̱օ-m*<#8h)|U@,P/ \^КWa LK|_`?<ikĒeqԬne{-z^ ;-bͲF"i=͐,(pvI뷅vز"9vmx혖 k3KL*: њ{ѝ ș#C V ']0yћ[|hzD}>ɥٷ + q1g KC=f %eG~:PΌG1`hj<ZUd4vDse%"׳H +ZWJ7>} 7M8=$AlY[[{̐0cb;^`s@!F M.LkÕJRadžEBkF;^'I=02r]CT%7|8dEѷCRܺ%]|;~_-&p<_>TgD񒽔O'c&f-'ɬoߗ|VJJ#W3+v)C5y찂&G&̌K"ݾ` E:4Ps4? jyah]6p5Xֶ$ZVy/TCFeKǸE^[)yCL#{yR]nU[[g2&Go=+R9mяy)~1/{ZY|d cMr(9A-߱Txf*hrƄW^E&PP8e|w`XeIa;.9r>ģnXR$LfRzCTetnۘd@y>u2Eo*~UWC"F9(Ȱg u_&[Y֢^);e0@ it$ɷGAL5|Ii6;d UMN*ZV=rjJ&i,%+rșbVN|Ŵ ;7[dƛ5%SVgcitklU-QGj8K;8>b`tjv C+dٶȎ=ۤRHjFu[ 4gbC+no2uθNXouΞtpU)+x,~Haܱ:޶5[P3O0hP1ٌ8>*3`7HY`Ư~ =)W*bgd2Mm9,$q&9[y62ekL6jUBnTg +_:`{_9<,dIٲ +V+x4=ѹ[>Rc򘣇)={НQhT+nIđgjM0omj0Yӻk=&O{QW 5=nձVmBp+gʙc4ai OHI:#kT(0,vke⺓N12; Jy y$)g||@f + 3kR*]bi'919g˲ҽЏu64L15 wagH^' N]- $;#D9'"Nz3of޼]eyoLwUjFBju#Zj$4 CK"@0~}}fwE 0,='7of̦TUYYY|K#)#?ȋ/L1*7*憎M0͞d'Bq U}o0{Q6,w2#)*6OvնD}1e5Mv4KU|(`HY IF5%5 JDS$2bHH:: CĀ)ũդNNonG,j:@h HºPvHAaa*)T0l +L|gt@3dU̇^*D2)>.٧,ȢIANJK~||~کkέw\:rҒO03l{8<ިnApYRo#p\Z91Qms,gM]&KC$y QϗO[,h$j#0" +m Rlj܋N1R$3f;#aGKIY-oHvo(=GJϝ~)sͫ<~ryU!ui}#lY}Aܞ2#P)",WFNEteUjz&U#X"#T*(c8+ C1Ei c +llD?݉5cUE$uOE ?,g4EKN0t4*QU#pc$?1UqA EDF#^n!ۙNж&j;A.m_5T"e`IX +_ͦAXMhVt\LIu^lزIUN5}Z IWP.bØKKv4M]0 vIwZI| +c6WEgr64U?w;]K FLx^.OO,8~ Ěha"ln#U~*娐^AOԬг{D-0lPlکtNp?0 +36JnWrm+= H(Ga}:gKxe 5~[ l"R \|O9#W$&H[2y=C2DݭqZY,JJT,NGꭝTR'ݘK: +>o8 Rm18}v 9(£ <(<"4SV˺ e{v&a])+Cbl%*{1]$YQNo~JNJg7[*ʟNѰ[rE bXHL;@/X}ؽ󭒚 mE[Igٿs;5kԿ,\!'X|ΜB +9٭Jai dL`Խ٣*4hpBѶUX*)o0?"^Ļ;DtF4x׉Z|89pylZy7\0LK7FsɢP6sǨ'>$#r{í|ȜpgRa]\<|-=7=˘A ۲An}d…$/`O>gɨ;^+w"Z%߷DY"k檽rcTfvFN /C`/!١$8]gP 4jpNT#g9y|?Xk 'GT1Ca'JlwKTIuU =Yv﹎`}Or *Xhlk\~6E:>ZH!rFR[>m,R@ &唄Ⅵ 2Wz +7;|WO;_,ׄ++tDy:F``D}!;sCsfKM"a_Hr. N'y8cwaF«)$?۶K?Ojjh&/ĘOuH늢ab)`DSӃ+3T +NtY]S£ oZxv1[^x•+|'?3Ka. Om.Rkǎ]߼ߓJssܚ*^uӃJY0 %ƐIY5I6aAaO!)0e5A:Ce` GTf?H!Ӧ&P#ޭt٠0TV9_e˷0uEC {M]9wKj_b>+l's9$u]ِ=5 k'*禧?~'El5py.NրeFE]m8z,s v +O dsGW8e1J[޴;E}]m"3f0?bqfc7J",'ە?nc?g<4OF7eP h~O08o"Eρ0j'p +F{&pP;u23[ rU'_rVr&_}NHLl4Ns"ݞqiO* +ydg6fjT Ja_:*k8dY#-bY544isg~{h$WH.ac(.<ȧdo^|ZbSצ/^tG13ZBgΨs+^

hssm-4;p]:los K8 *1RԇJX]yx%azV`h 5`XS1=dA >ddo +™=xiڱ5H{^]wg(Bws+M5lݨ^輌15滈#"]m~K,L-}/v橶rt@$8[DB+X#Ϊhh2gXYaI5]&%ӒH6 ؖJ$_󛂒Npb1H.$çnY/y8q)ZoLB<S5R,FtS'@2%dntt'LY=~%^`T5;yI_GvMO*%].<{"F<6 -o-bKM.:M-+Η.5@~\ABPɬU dH?I/lPoF;w 8?߻ S>hcӴ +mKdA0 g-vaVZX5{9/Dn8  +И}?Өilr v0=?;՘p:bEaɜNr g'DڸYdnnֲ~gNy$[b18Nۛw",E,0[r*]YڈA^kslnh3}Wʣ-}Ia 8`9ɠcww`\Րh ##& x3*!',č,D$+iDɂ.MٲgE +?j) \GJ3"~![.l;,-غ볅0(>@00 Txc0DK:-;\Z\cYЃ~7?G܎xDᜟ""fHC 'oLMMy!=fB`K2sj7:ܘrp>*!yEjʹOhٮ0Լ\-$U[:HpF֝]8}~X ã.yn_;r@aΨ,H,xC5]-hnS,juɠ&b(:MK*3/j-Og6zh8cEj dq>,P٧@R7UFDTؑaaA"Tl%fdY|Y\GYiW[܊ݵyfdbw,Xz f2I-p~=L,1I+lk뇨R>!mvB/~ѲEjȨ *u2 +n)tFaA29CfUp99㖜R"#J(fԜoK%("*N? ~m?3=yS675(3Omǰi]adGa{<Lm#T}3Oc' b7b5uX7AFvX4_t]Ƶ`hU״DCm8YW$uY>LP@}ND]yoV<(WŒ-dPU&!U(*!f9H!l,K싥}ރؑq6mNvucMzf/? ?LD+)U'#뿧,<0 (ҧ3+x!)t䜘qd,;SJ1~6ՉǬeLx

ͷ],, +_ PpP~6[-{\Ov.N#6W25)`q46E%F,yѬ 0PjQ5w&1YI:H"T1PC5P ` ,-\|}ψTYDOxM/I?[gaPuGt' {㔘@GQɚn .9){7n ^QFw=deoQ1_rm{Ϝ9v56_YĈa:D94ȬM|dS ^g=tEhYŨs` x`XJ:e'0cOJG|E<웾Ϋ0pC{_`ǃS4j5b) PpAXct M K4Zu|b]y,4,{H؀X^UN3ET + ejH]D̝:q+:vKZ$dN" Lq,9A Qq?4-;H%'9=0?˓a9rK+}4tiDj MƗA877ecC9PQՓ%r6+q<4xjKO'uС:jם@Rl7{eG+~*^-zNY.š%Yat ]Tг\&,"2ĖG.R[T 邮VYd㙊Yj/8H*كh7, مB*v7u6Taz"Lj{GC2q[3O DVEdouG}iI +Ut4M2\[|zYjT +ܸgF`܋en{tcٲ&3wǙNz1432 Ueqf.2PMΪpe-G'PH Ƿ۪#5 ,B^:0F =0{ Nmo2}a>huS臟g>~.)>23ð(6UH=DW-р7IMv-vOH9`~\fiO&6$Ǘv #]^lx#E*v^k +Z# +v_+I>_lS5j#ʉ.VV7°u6߆}zmmHYdPVc8?q%C>tGL1//2L2ݝq$V;j -M+0qYیGw,nL-!G{NռþNvkId# ~C?H4!uH)KH.2yj~qQ4?u=l0<ևcd+Rm6gO.g@>rZfkaZG촜Jt#q[Sv>'s 8Buȅ- +,$P37~x֕%\6В,~ҙ\ֱlmѪ6@8Kȶ%Y +oAՅ#_%l1PN4ij˛ͧhnk{CiūL;ӽ㗼h69u hK\NۚN5@ *Zq%{:3Oaj,dJitTS0JW in Cp(ah+<")*+U_]NZވ}KȇLT}yd9U|?2?^H_Md(X~ψf,nS yCSJ 9M3j馪vzpj#|Y85 ^ ~-N%¯-H ^6e#?6ΔS=Ӳ^JV u ɭ%Kn%gId:SǓz) Gܥ ]C1:\GF|K!sj uW} +J$:Z%(Ç2GK޻(z&̠Ȳ8?__3D$Ip: +da'3Vh7Ҷ(ZFMd-3&Yi.c&&V̀/ѫ./*ӨxS}Lg@ʉQ@qGf34Щ:!$C#%=/nŚm`\Tcz^eӓ@I-fjLܷP۰8N/u@^~&F,adVKL[nj*gSiGyMPB,9@v`PS^~KVCy1lhG#%{3 QpntJ ~E|\f0uPa,&?tN"qd=yy".Ϟ:[lJD)̲[bĹC &?ao'\!ޑUk7ښk7 \:5]- Su{`o9{:%b _F@f\hY z\;و}zֹz,ߣ +Wx?zI +igfNhnf6]Wsus9۶Folߥ5? 5'iOэLQ0kâp9_PDS_Vfp7KJ>B> TƦV[h ._b?Կ[L %akpȩsMӋ:59Nj1g,Q֎I]֊]sy;@j;}|:c &R@5lh14FY$P -;" IņKy BGDWURdPSS@9 +rIX$ 2ٸd<͆OUuט?"\ ׶^|Y9y}Jc+Cb/&DӜVe-=Qy8\3j^ܡULլ p4;!50;~WN0\<Μy+;ʇy>w4Ӗ 4p%wrn9pO{ X'*դn+ƒ|RXغljqY^\?|xkx{N|LkzXfq7t? R'2:"##i#gGa'`>Ld߽/ITrtXU5فTޭi9swR*L6y.q>1fW#uTlj;oZ@6D4 >2dޜs=CK ]ׁ* +f6 ʍ8{ʕ"Z[P +0{'N9ɝw\VGkbW 9vJKDh>n&m·>v#¯ _)OǷN‡N#~:~Pz+_ʫJ_~%Woݒ/IʯH^Hb+uj_Wץ7 +dz|w\4w쏇:=Z8`.r渄cNvҰ6m/gΏΝTEso7i`NT[.T]V>upr< Eym ;"]9!)0KX& +GWϬOٷ*;wp4 ,RU9Zd' X И+-11`*oC+|ns5[7-CƟ3Ǽ>Z,Bpx=3 +cE!zd|ݲk3V Ov/悠?H?cO+ES4Eٮhh +iy%v|>B'\QD*$7,AmJoz +q\dޤҕ1-ձ^y-̩)5]Wx N/-xZN%dVJtez?ߣQ*I8&+$1el, IE9) g~ٶ_aHus"S7 @5ܯ6 s>FoLX$y_/3v:m t KgǁgnwBmLjvL^_p6w؟u"K3̐'/GɯיCK~Dc>kyGWg%QkcpڲR]uzPcS8Nstn<ޏcG&+{/iIog>+e_#m^Y Uvci}1AG?dl ٤c`{!O>o+Z~*,tP|R>I~y5jп@/B뷺)YglU}NT.S &1Z-t ~W< y?o'Yb'mɟҿ M%BYufCig*YTp&;X6ZฺNn޽KN߸A*+o[Y[#LH wHdzGk]aytp|6 u38$][_L{b_sU> +,F>evnD)`]{nŐf *ebn»-ZdǪƾyejA*i |1 [SX,DՙD2SbK|1n̼ k@O3?Fc +]&c3:hj踀Q F7aBٸ;7Gtń% 3'c\(b*`G28pE#QV *.Ern00,dkvvzXWMVȈ\G߻Xngh^gGmu˜A:_}*{R ̙k(d|3v ;o# ,k75H,ោי>n{y&.j'rhѣjn% zqv(LJw `v:EXF.3FoFP ׋:YZORb;&r5Q`aYSv֦S]OՔe iȯrt*E7;9h,Pagpw+ͩ#uH \WCH6Y#6(3BAxHJWvI p+mQhڊ0j`R׭ڿS-oR8X|rI5"YhqYٚիZr e$mx6Rӫtݷ)I,{ Τ)QX2_MȀrU0z7ANd1 3?v*6+>F}1BӮI>nѢ2V]Y='!^q~~D%\oˇjɓϰU !st+;uulvs;5܄lwh6pԳ(-ɤ?aY/5Emb -| XڇR(R:]ܶﲯ˻f[|fE܂m. ͻ2 '(~5o&XU? ')],+ļ$#[V֥w3G e&H;vdsy/!W4%{PmFǧ#Lc,XdoG";5\5|PlIPӒܶB.#n{.:-΄Ujhݾȁ-4`3-!X0fYi1kS; Wmo&e U#a_!9.P.&aI? +x\\*ήfVzQtJz3t{6hGpP^~+>޵g'^wT};H?$tkGNWtِ@د_t 1qT]9*RJy/bآI4ۗ\0\^IG%ހy!Vcz O\\9]<_Ƨϝ:g6֏;f殪MZ} #;>+|wMhHd;v8# qF=nߡ4"eQj2dl8/r2 ʋL2`ύ.Exܹ[GG,#ݮ.A d 5G!_̸AYĊO̲m +|3D"&4WR/Kgij]:lr|Ipn_ {ayMOsڡTkjRsml=Ϥ"Ii=sI|y*.2 #4YZ-fKU[k(q"cy2)6 xL5HaXcVa`ΑpI +2AYd+6o0?FOi>]@7X\n%{߄/9;GvȁXg^O~9at + }#<6 Go+mY0]m 7Bvs|\q` +DD?gW/DCeK̀q\:H&&VI*NC %Cn1fvڌ#96N3 Y=cKKVNKaQeQ$2Dm{r~6FQ<<##kV˥nښb =C"Na,^& 183q=tٴח,omkKKnۓ;767NpoQ`’'z58QÌؙȨ>ǙOBT-f][6 x ON]#"iْ¹d۵j +-Sƿ>ք^ICN]#{[a=Q#,5A I߱cpHO1pR荳 Θ_HC=tට'syU|36Vҫ:fP[ºm,Z7~6rq$9SLEm-9BY4tN 2>( +>CQ4T5d.\a^Z-h V\FE7*3Tj#O3|Ef6&{ xŷHS˘::fؑf(bbyYi +RqNSCƭ/Vgg_:NgOlR +00|[O&$IYvYѳOW*K9-=P\r:%!oHwi졥;rɸV[1me$˨I2-G&IzWnb{,WG8-<õvUogfS7E8u {) :ƆK8)ܳj882%F |DfnVM"fyM_pe!Fx `ܹ؞B=CeD8|:-nUʠL.򋶮* e0]J QHKK%LE +5dM%W2dm &@:|M8[eO3;63}A.)fb=sO v1?CaqF+byƕΛC}[&LIcUKkE %ޛ#z=%Y(C)ܓEּT?L"8jKy[m6eWR8CMߡ~e3;<߰@x:]qNZZ)`'aMTxGX:jGKĽ.Jǭca\݀h+!J▁> tX$nη ,;gxJL'vܦJfmWʁOZY4%h^LiP J z+5leq#5ۆ je+jd5=G='&}w꽞p^/&L9}Q L*k/`l&b8 +]üEl*\~MSxD(U;|L{"ذ7b{E?^Y=ޭ@ODUtK8UCaVIƢѳ0$8 +1?ay] kH%owX3Xm2c.g6J9H*˞.@1P=ܿ)"]E5h]^%9=Nen)[CDy?(5 ղTalF#JWLLs+KG6(j [,(a!~&؜`̚l,KȻsL.a8٬\ +zKS);NDj靱fCKX4[ yBL>JJN܊fhYLUʵ*ѿaDf";hzMp| VuCS g@POXL~-d>A/1CI^I(HaZ'nrʨtuwuBgT#c'sKChS4MîjJrH o ;Mf[J,ӀL;g8>/LkR{cg8gY |]cLԍ +&T5pnY7f2zR^dWQ~j.i{7;瑨ӀR Lu-"-|e wFyd99iϹȀM-k,0=IK/ꪕ x,QhF~UkpL dYkr(rŋSS' |nĔA, &>rCQ۱2ݞ }F  +A =>%mn'h3u,؂UcH[?ښn81/Q>ghg(ڳg^ޥpkc2!U8Ǩ`RVav\(,sRFQ?xȃc_v5Wݔ⦦svIOuGQ?YTᵳtS!DY"K},R3 e=al)+V2j8omǷuz1@*~st%F]OMN"%88MigM 3 0eϬvhay7 kVQ̴ahԣii( + z +hʪ2EXfc,JfKG.|鞓pD2;p04S }6DY ++'!i#^c~gJ4+@a&̙S+s>|B]bӫ4ެnIaMo0 哆|f Vk섍++Wf,"įTu3R2T[8]nx( IG;Lnev||Bظ~}: SP/Ϩ2 JLWcץb#*y'6u]bK?9PӖjROgw.S +}^*L_UkKJ3k\ehuKJTe\v8:Z %DŽ ȡ[*b<{Ǐ+IߣʣX&k^hw"m2Pe?r+3Gp=u溗Uu^9X0ʫOCK7o=X=#bbQbB nrb*(Li +RΎ%:. (Z4>e|3 4X`gmlskZ_Hv_TEY~* D^\,?N^= 2X +?〛9^^[YY9.h/*tXqkՐ*D*Z͔W >u_I0@^?<ʲqw}o}}r***IU*J*rIdI^mH1m4^ЀM=3`ff?n̰43̜|qߒeLJUUV֍/ޚjwQ6h㳄N{Q%{fibRq3wl8 AWϘ>W)mJC" ||pŒNOmTCF!!oI*43L4lwg}n`(pX!jeep6reѽCi/nsIԿc^,;(z +5c^SbMvFН4W'gč;{k5r3 rXm.3KB䬣n552Mr$)\waq6+vt9yCfI{)Adt2Bf#8bje q12Ԉlb +`ڟwIʱdx+/aoKSK nf˓b˝Џ.]ܟ?87VW,/rø\:#O펻J!@GFI p!o Z MT: ?_)oG,4f,<. SebRhfx"4`S(*@ +񤐌;}'<8,GoGv&B=?o﵂sg հ hep6>\6[m̦ SSvXk9ͦes&zI Qܷڎm'n'uZ8e'lA{[H{vz5̟Z+pfW x53]YeL58Ɵak61W"3L+˄z,"=M.nP-E XU~o=, -5Ow$'=.g] kiTQ α $#rh~STA~D9Q!wݻo$\faVTfXYffu.Fy1a%8+KCȼHނ63Ǝ`^-;|M8@\kP2"S4=q~j5$ɪ^/\tčŚn+xZg} ѳ"u zHbTuՔգg[-&BVF{*=g][K]m,W#玅J8.LzlVa(XVG\/Kdy.q 3_?LQdvֱI"!D͢iؓN2>7<8j]rI"jzelT\Fݑ7irU>deݗ \c(s{3˼2GP + v("o: ihcQEL]5婲 +D#nz6v}-Bu&]nU%=#]ѝQ;׮Mi8.Jov"qv67?дV9UD >{"f&(O vfǢZ>Jc#eξ( +ޢ,YJ-"U*e2)x~x&'LjΪjo#Tu6/Ny2h3yH~|QW%⢐wsH Ok#L>pCAk,ye<~m2+˲CWr[p~\QRCf9{mVz=/a(4<NMM b3_UI{SB.mNE.ٶ.WkEa UiwMޡWkzϼK/)=@^T^| >ŵkfIX"tnSF`v^;NRٟ1@WÁ^73 WdS9BcA(cSmD rUp rt4 huGqlQ+k({Zי`C>Np6]7Nn)p;3chUZ<'#5-#Pn_&aX!xܠ\ͷ/s+eP "tSzzg^gmkkjˍ8g7Vѷv uή>Ҩa\kN-5)&>D|Ĩ\6 S`e P(Fc`5Q!妠!BKv!_+~ ưBoГ-f\cniiZ*;ӝF7>EhHbe:iUh$QdZ2gE7h,/ հb!q57(x gqdZR.%zfZ~^N]Vv&1;^2VV%SӌIg2d%4DYT-:l*2͏HzO&b9Ne +DŞ%lԶ=""`wS?rR "ѹК,,h.heiJ>ڧVKj"n#.9!!+TAч~&! 8RR"E-' +Eʹ!n} VHhtU!a3't=Ms]:S)eiD +kgsK.4'fƮ^M~Vq Խn*߭l9Ѱ=kp/&XxĚDj[#tf(9 qpVBE.jQQ7@hN$<|ӱG¹C(wHmWiEG*X ;:+%Kg.饥y[yliMM,=aZvxB[:iht#98c|z7n!QznGd?.7ƯZ9b^Vˆ #fZ:Abr`e~>'{&}Ua2 +UC4BbRdGmأ%qsqZWr.,/ :LEWR/k>VgPbtGIZIPeg8 ,G2@8E>Ư^䵝A2艥f}doNM'hqlk s[{>\.QF`6H[i{Q7Zu9*!R3+MKՓ`qq_iݴԜ00QIJ bTϣPgɊuM /Iԓ}̆Y:8ÖxrCP&r {)ܙeƽwsߣ-pm]8suꊄBQّa\@&JnR߃VpzӥQKR+V,-Q-qʹG^"kjJJ9['U샗.A y ]B#k4(hݛԍz*[xuOܵggb,P%U?2ـq^Ol|1|T>_m ۯTJ ɮo.!iWb/k4ҩoIWwgd$Y^XZhvvN1!v0{D{.x=vMUu?#Y]jh Ӧv2O?QqT?(,r(ј>K#MU)lm. ,U^ZuDUA@N dV(I1 +{e''kkIb x"kwĽxҷ,n|CAx6AG.2]OLep+؊i9O4^!U".MJ-TvW,0NFk92Ԗr2^Z\Xٹr6 W3 84F |ryp[ 6^ +_1bbl׸w5}KΕLAp{_pI H<)Q "DDVNTlSsr谖模.XxXyÈLܮcr'H`(N L?Io炀10)w/Ы@BOR㱾-.w;=O&1Ӿ ^#)]n(@.lew$v]nooߞk4m~"m2uohE䓆 + .wj0gZAIJDV-.2,gQGSOl_ 2\5\}5#k2ccg(AÏ9*FEՊL1l9&؅'C}^SSI?\JeM.z箝x1{kݳgw6޽DÛ0xw5BAvMषf JPp/|{6'PV4aJC@EYI=b>SէjTwHLVО&6 V`l1դ[BN8|lϼ]O2Wbz;mY:/"srE*f+dw]Xخ+Wx$1&=6snGڸh*?;ÛSܻ(V 6A<"Lmdv*GqlEU;Bn+5FűZS&Cc Z]-\e:z]1-:l߬XB|uѸ樗޸|Ν{5ذzdW}^«Wb P+$9}:K@ V5n!"z||m|3|.lXf1蚊6Y@aT_$> , m]^%1sͨe|~E K + -um,@+4u'%Rv}ܮoJuWm9"sN>D7'M{? HILi'jM!W$sq{3)n%p9?1<|$k1c-vCg=.7t/xKUʨSe[7uEYMΣ e>39 +S4b,sEK.8EK iI:+Ej{/ťBaƬZmfr~|XxxktxvpVWDS۬LvM)YD?ZB\ҏTedmpddgg½e+%8jࢻ,-ljjr} 붍uz4Qƽ%ְ5Vpr߬ӎ#|fڮuBN#=f? +i営Mb~{e;TϤ+uxcTʎ(fE.IRA~ch7XLG ֮2U.܏oyk B G43!2)d.iP&p)45*S?j1L^‡oNs8` +};"su'z~EhwCSb2f߸NTh1:~eqvbZ^d\Vp fǛԃ!C˺ O.mE_|BD))V^Zw,5Y=I 4>ܿKbM!,Э+sW&&gWW-JĹܴ5=t;#NNts׸fF V1XX:Y8b_"pP_h6'BhaX]E3Na%_^sӑVWtJ,q0Bv{FRF!"NwbQMO+kK;讵RyٿY{Pn:cfف7Êe~O/\-E#0ȧ} >91dKp{p2_AZÓxQīk]⦯4%cݳ.P+9DJ3]S6!6Zt<}pMw#UI- 7Fmea6qݥk?ab,ZbuBfՎuM#꫰+Yf/̚^hƘh}pg-Z7M-V#Q;4Hmv{ES[ g,9QlcϨXR* b:ck`'6B5e&7-,cT,H닋ֵɽ=X,[˧G l X-Am᧋OiWfƐuE5#݊"0TW>. .#W4\{)L9 +@ l&Uǘ^1U͍Y`|m2ҚYPDbR +M6m=%Ts?zGΟ׮\j6/_.v:̅ $r՚͂V8 鮓ԷCVo(7~d0ڇpЄE\8&C0w0E*JMY:+uz>sG}Vnxײڈ_ϊJW?-kj&={@tW_-U53Dl,#ICײd_~g{dw?\t bMY4D]x,AxR5KI4B-L/pLx< n=B?[ܑJYS} +\;n.ɾQ0SEZ)YM6Bv<ײ!DTܤ]siUErݔLוjeg~S<ZJnvSV"ǭҮ> y0-#W~~iYKa5U$t& vbc14n1xLݐ[3j5򓂓H1-<=;^NWŨ}H)D8o՜p+">ElǖMgD{Zؿ!= x;BHQt'AZ'UdM)+F BovxL/ȼ@ TK{R@Ic3B<~24 }.A`7<NtM.FWڢlJAxhP6ٱi^`sH9-\ٺ3kky<$ldͿO5'>\Xg_ط[l{3=}ƺ`Cͅ%)q9 *OL-6Ft1MH( Fe2 P+Zg(\ ]F3i$ĶL"TΤ\ o- [dI]7hoVHgtUEj,ؗy&wt|X\|ڦ>]NOxO#扨1o' M 6r3{Ĺ;VBBwwC*XOhsȽlC%OTdvX[ߪ.Ãqs)'-,7F8-NOf{BVVon^ku ̓P.>Y K.G҈D]VE0Epbvl~n'}ǠsԾ#kĚk_C4zdn{Lq]P!+P*54(Q;kVn T +6vx$= ݹg{/g~ݩ?=~鷾չW[~)p5N+v/4tJ]F=A[>/?P1L#krZa'鷐U7̜9PGB$|Cvqzz˚ɭnFYLboL5"fp-4 Ռ.13kCdX#=f2L +fFǠYof>\Hoy]Z)}ʙ4 *Ͽ|qae)MǺഋi_i{;#c ZwgӍt+;~Acc)R$:ZaM07vUKm=\H\ڭ%X30g|O#̍#z*T<+aдM#hibq lJ̫YAУ INgʔJ1HfFqX'x%kc*P U5Bt9ISE;4l+>,"oVPYoޮE (}=2ˀ[[sZ>ǜ49;ٍv܊=%ulsq}7/wgއG3;X2j@=Uy2Tٕ\TEߴpRVMS*ںqo)ϽgtSϙo +0f9Yl*[IQ=qo{"rnLᑌKOKvdJoaCn۟[Zfo]zs>3qgc7{[nUJ%?iN*{ d إ3H G1m C/#jO>xKN&Y.utٰ 1UkT_1VԬw"c w/8K2笮ot}lr7'2UY978ETHEmRs,64g.^ՐO2XmXS+iCǢn℡ʃ,*R!Kq$طOvNt(jˆ@u MJ_4E}WN.]{j1<7pyK4nf@̉-#_xStF9 3ʴ)~d,0nF6ecmjh[0[ ue\CMb2v䩥MKa*UYbykt'k_m*zkik3k3O{Lz;!=Hup b=5> nflV9'`T1$hƉ$ WF|{JbS}W"s_cp:uNQD%f}Mh`}`UƩTm.8A^Uc;'znt *{6ʅn(@^Ԝ,-K1 K-MDL#V)،Ks%Ϊ&X-ᅽ=\TܜH֥Kݑ>Ӷ@OOza48]uۮʯz#_Ƶ@aS̔C1_ɖ",wߗo؟8խιs}HSNUb?*/f@4q 76pC&Lӌ@Ye㾅L :Y&cBȉo=:#k{9MY +ԤlO FV 'y#ٶn_OD# ₟ !ix(l|^n,;MQEOc31 +@t,z(}SZ6AwkKSq+hMMaAdtjE? i,+Uaؘ +f'8)=xyl{h/r^ΗqEY/M55+X|*o̢2Z&Td-mC@@ӰaQ7L)浘 +CgSckkva~v6#eEenμz#oSp Y=gU\$e\h6[#TYT#-ASSg 'f]У-*ѽ$l-d$ (f,q +<#Ik<56SC+TPO}P5M-T.L(2 GLCvmGh?0?qqqbO;FdJ^5ukA=3ēf`{܍9)U+1PRS۾DTohy +=JTqBw\w*6{cY^dڲKp(gˈ +cXVQ|zJԶmLՂFTB8k<ꈰS<=Kp9,Ĩ:i)F1a #cRQ)XBO1fW'Mv W &8;6[JFABn][i6ߝ3˨֥VʠlV/O֡jDwh'+T:o75nX ^&+28(P_wmfO|cXࢅKˢ6ٷq{$P%V/Wu pѨJ һ3Fzݬf#^Y. _62V1eleT״0<,$V<_4cZ_חvwI]{ ?YQpc|`Tk(aNt +UMF*j0 y1'L5tX̖[.Z[^"[X*?=p̜xUS5V]Ćp:4.f+}nu+^_\N*VL'^we X:*ZnBuj]G8[-5b?+PK]_6M}6RŽr&SB?fKK+Ϙ($d]C2%A 뿢 DD>SM]tN\!â)ak(z# LJLcbb}fe {Pi1iQ*oȚ$Ka*;}GZa'WL 4㫶ӜX.f"U.vd'pd#:%OęYT<-#nZMn%nңaulέ--g&w&gg {lbB=Y?ypzG:jD͚%]d`O)U?0\!XR7?Ԣ;Rm4͸jzAr;0&-Ua +Ԫ +ͅ}ެ`aB!Jdp][1誖{ {>k%n-K6Xh6]NXd1tF7[54d.z_;hs'S%g~yٙqj ţb?J.?f8T^j%_*V#7RP6=U%vhi*cK%h[v{9 6^:c)qt9 ĽI7, ɢ6 mf!I0r`K.grYzwbW8n{cg\OKx3 +X‹P-~=0>*]̭k!D6c>(;8.LxAe^9BPtw,^J-[E, !S݊Zꂯ10 +H ' T4[e a26bJ!na$'>04oXDu뾼}4X܅;ٚ6|?QV&e_W7zRWr|`ՉJQ2sgs01Cݘ{w΃3& {1S`b A\@B#&feGuy7]vu Sr ٕ Z֦$YVqffeyP:V4b4aǟA JW.pc8>O| +Zm1Ђ*FNi4Fuvvv>. Tax(b +`[+ZsOt(_l3Ӗ^&zrB-#{ɖ-+001Q}.nN^nH,RŝXd^(uttut6. PO{P6]<=uZ~(bg1OyS*WQ9^J(SPLK ˨"Kc [ ;91oزrlTQtˉK|HNΣgMcRp-WKcFĹFk,S{"cdKԚ I% +P`7RUЦK=Wx هvfw98J5V. +\V6_:QrOHbOa^w6GFt5J̭ }?ܘ4ߦӺi:K]59vZz{<? :AkDu^KKKϵ4HNHb!+"vƑC]c=aJ˶YPWnÌҨQᆚgȷ?"2չk0.C΃ϛ$lO^{]3V "dg%ѪM}PN{I[73_0Pd2b+l%E.-s,/2DvPz- Bî\(}O@gY+;f~m͹|y|yL75,֟xqF{1YDx͂Qow4a=:/,+:됒PE=$y0YGL{#dV9ПFo;z +Am'4(hIУQĂ,R@)k +;ذT8Ѧb|g`6r^&~#ؑ N _40Ziiv*>8W. +Tqzӄ5Tp`;ƒX >j)BׄL|emd$H_$dϤ7L4WlAtE7ieJ70͵]4)v iI qsoVprsgy=V抴+Ctnz*]XF){ivO"D'R24h:F`M~B=ôùl2" , +Q_ž# go+2u4ʖb]|f]>\Ox!0bN?v阄ٱwq02 +gQxqOzடVŻݓ$oj 5ќ{z"vNnEO\\/<DޣѼ8 ٟ-+h+y)iÂѶ/hb:zr?)G#7*\J}TuYڕ~YE<\igqf.L$cSz0U6Ɯ\3)n(r#N*Mt?SM~++bZ5{ ' G-w#98JBmy`7k !: ,WVdDc5qa)cbܰâ'&1Y7R!)l O%X;;I$yBl +iq#3m(ju9g˩lvُeIQ/7iݻm 06lD/sGǗ/_W1rT) ƱuZ@1Cۜ԰3v6 BIGZ%\H*?K*:TQ^[`GW6*+quf,8W,ê+AqG/ ڔ/F :'s[o:W`}gɒ+u 9KH|WN&~] CZ*ꣲ Pڎ-U jm L)eSbnG(Vv|7K;f]03D?OC:&VpJo;OniOhOֵR[R>__ZJM3Z*̎gH-㬧Ԣ'?068zQ؍#{ >l>9V+1m`_4C"mf5^)Y":MsR@wN&AX% L DixᵀD%IW1!%*~2Hi(er%=^=6shٛ4!cJ߻XLNN={YDo+s_{Q޶?v8o:o*F[*: N7Ue\ ?uP߇B@ߊ\*U}rЉ T_xrC*|k!V,9(:`,l7z{Q.ǎ KU9vz'l^yp{k;;ۉBR"MQ]6޶ +UgzQo/{*T\ǜ(oq&C E4mroܥid2M)Zbt&3'ZoӳaOτ_L1AbnZ4)YIRdh" B7End}Piqr/MҗңWFK+J +]:g{ǗW5h}ݝ}ApX/)Hw߯zP:v%)^npV2̝2/Q$pbg|!I FMa+<)Sjv){sggV# ̝wa.UV58Hrb/$$crt_D#bcQk{cUIQ`h"g@y0S@,Ɓn8}DawTp;;ވAeNpX"bK0pL ȧ yĵ@Sa$qnNmH'iR5%Đe^vʶ VaaQ X1[0l򇳡`6z*ھ>u,J&x1/:#uCZȏ.̭V66$u&MØt-ssNE +-tҥFX`Ԧذpʷ4(eFfMS%,#r1U,9J&_4i$lb$ Sʸ~E-q+ʂ;rV&YrD`X(sZleXf{{?6scs4w~n3W0Asz~~\5Pׄ+q6\`!9cȳVp2F $#lK2?RٟBh>FyziL1V0`$L.\V0 lt!$Q0^7&ɴܟ$ +İ<ĮcޯW83g'WWD؅cSZDm:1&럑iQ֥郔8k \DV4&~K9Mg66ņ9W7\Ê +145u©Y0 c=om4y#YWEpO}/$KƢT_-\H8-b]_..8R!!MVK|'͜폙MiSVxsQUAv.d$qHݎ,0K\";ëȭȿn,,YWGyFIݮȆ?Qq~lƺr9ShT9QO.4( g(6#;򐼃"ӷ7sX 8!7<3 9llD-K9OO_s!jj#fGP~!Uy[I%%iKnfVv>̔2,؆:_sT3y^(qN*S\g*f8Lo$+?g"w؂:]ULMl2[Br LueE] A΋ﺉ5߇,\T-FXˋ1iYլR 9lOb(u] 'KS4RPq$g +xǛ5~XtBZûNf ݘڼ>nNUV1t !U\"ȉ^>^88'=n:'j?|>sGeSvx\Xͷ>i_6KL d5 ۊa\0]U2Cgl=bY'H KNRWsFL)Fwf)9&6sG%ŔUTEEL*C}l +nkȄG#7t' rC{ڛ;./3x3Li M/L.42x:P=F.LO_AGhG#tV)_QEKF.AO pW5њqE:M2}| +*ĸR:FsJH7 +lN+F͌a48rي].Uph ;I7^O_d'Mw镱lqg_?EN084լ:C3 v}\y{2mJ)Z-NQra ԛ@M2]3ܡɅضMUN+לaRG//S83^MOV㻎}ҍs&HI +r6Fk~XD[wye&^D@kԾ"ɔcm( 1韰BV䟝rt`gmUhv~~_֣5\BxJޒHas8eIz4_8֡3H`>u1%v=JU k;Ԇy0#drVh,SYZ H\UF/DP+zSBTZ5l:R-۱5S)&UU/90?A^6X*Hb$-A -(S_??w׿Q;Cs 'Nفg޷L?`'"X-úhJg(䚺D JiTkr)eӀD Η*BD;Kv(Q>,I^[l.5/FKt]pnG?wx2N|{℥DesV{ʼ^:r ^!ǒĘ,2f`l~{8BM KUϒB/{=H30u@=_HbO<%]ElTSͱtdQW/11m_Rǔa%X'N zoD317s ur__M,$ +KGhŨP9y2Eѡ^\9O&-2x<m6 +p+8u<,ӈĢ8|(z-B +f4pK0|6a|.H(_v?}_I}؝Ĵ%>qSZUTk4vܼ/w6/]zurg#sɽhxl_vi()l_!4 **,A#jsja2EF1FHQlh?J9^XBu$`U}̖`|R;% tuZ+wwoCLOOLNdEn5XnP!>y⋳ ;|_k?4%#+^9iu@ U{`ReNpHMJ![ +7x[Kt^mK>وOb9l&̚?  UL?,B2 ^Fj=>5ՆpvݥKkk IJ,iOiŽ''GM!Dhk+ p[w~Ks@h ee&z9:=mpؖv|dK|KnJ2T.АϓiH,oPy3+x {<}'lIWDzZ_yQh#t=~w{ϟh z5T1cMQu<9\LL{{4all-gS#X)aη2('ϊUK3WҾ.5f3EC!R}M=nƺb gQ]K G $*6<(.RMbIޢt UȈ{ȵR.1)E_n,n}+?IL{il{cMJWeKŞ/׬[V%#%^>n8BfSmB.Dg +>,TqjNYnܾDK9 + {)oG_'IҔtSd[JTeǙپ^^$itv"N8% x{j]kyկ[>C]QtQ4]^I<7ۮ<9XeK*[Q.by,%^]m^ZR31>lRTS L:!+83"6a"pEKҴ4hdWP*<]` htrf~GʐG>ܽ^|Q r詅xS:9un=;6G>.҇e>J*, c94,(Ʉ 8;RΊ!#CUEo zI\hpo#/V;ȠXurx P؞@xpZvQQ4bPym}qMZ&St Qםm+2}7h.A RsV ؈e붰⛺{5&\i0c('ƵH٦.)o$ۗXh-z1?ckTVo5-A?6a`VoF`tM 6@(ޞl7Q  Nݽ~ }r4Q8X%>`[zG ?wHw tkACUPV n̽ {}I^tK$|˷ +62d4%]srfy_q#̭d"q{90缦r{ӇDAm. R Md?N$'fsGuE=ʔtGn߻w4JٓGSomH=kbuYe֎-W0[nBQ 0&o#(c&|ǹ͎F,'Z#)4f&Хq|H,I -dXڡwkoLLLJLR`LRy$Τ?!}CzacexmY^s9`pڮm] O/S>҅ $+ۛlq$."a" Lvz2]1Fw+B ˥20anM*IȚ4]vtm%z1JDuZZe}94ySm0T^dv\ Z\gn]@̕J\_I2RZ 2+OI=t}A5p FKz;_ AfpWJһ|-_4%oJko05Uۯ|Tb5绊'}ފ/NB;߼}9ygz9^k8o 2">{*Q}O e/\tRoz.cxsc& +r)KLr߈w52IBٶL(3|}Za]9r3tD;n%z$[ Cw?D" '={]7ъ ЄADzXNئ9q/:$"y$??rq!L%.ypAFaF7vpfO"*ˑ l >΀#6׿Lkczp gj@qHEYGr'7&j%ȵ7 +ss֋+׮}(hi;޺'n]b*L*@d^@M\vBr L3b/T[Oz%R"B*WXjJh<»|q^s˙T4A~%5D[S W8euszbLӀ.bӯhiv:xagx/Y6h &^ 91t[9|Օ?\l/;Ͻ%)[CO g=JjpLƛ2uVZݛݼ]>οi:ڑJDk/oX;l:S9cp,Qmho+T L׹7&gNż +>%kd$ŝ()&slHC^6SXVQu4,@̶Ս_6 ,F578TeGsU 2*jL{~s0_-+Ǿ=V9"va=v^89X4}RYZSd0^{X5YT\"A #Xy ]:'mFĐaiG=j!K<6 ㊊k`q9^ [*8sBĨH@I^k6qmy\nVfj11໅j؆#]\twuFۻy3vemw7youѹɧ/YK\S+8c6;&sC&/ư|pEm o|^jq2͔"GFs"27m8|؞1 +ܳZBpë-xMLk@'MǙڝ^2+- +k؟7.^Bs*[9Znν--,Hݹ\Mo]{ Zz +Iᑷ؝i鍶(26'pJ?jw.}CXx`c˦/< A!ȋGL6?;F3sC.ӱ +Ba_%[g5}U-+!g;SeSa$eWro#]&D:/uN:8>󎽊aQG-𤷦&&n6͑[8<ܸq}4|kF#ڝ/?ӘxnMl$B0Sl2UbGI\u() :)VJJ1ܢ(z?uxDAX+z"Cl+D?"ҮTa]g +uuܜYXYy43ƧxXwÃMGhMvia!o'@/.^ =\&Cu2o *ܒӮGC{gOWSXLd+1 3NYZLb\ArN ,mMdֆq ذPQ'\Ä,Tyd"V_< +;7;1=iWڗ^nohBnozaM._=:zxkK{:|qخ_|e?DQz> o͛լH4wZ]{g/"dp.e4bTU-*ՖhvW'k4*Ɂg82f[.aZPKGbGB/1M GBqtLwtq i&JKַU8 Nǖ뻭ݭë˥ZPNp"_;۾C{t[=R4ҋr On?y/zVHk6u_p,(!D#9ZLbVUXzqo,2,Do+C 5l u 3s 5dpS'Aj\L.|=6PbmB.W>۩;b(!}^@r?q7_R立Z􃃽F޺qc+~TNË b zLsL>uּ}>GsR\6`߷(&iդCbQtS͊)˦0R[eةroMR7aNtxBQM!T^pq|?D&̤H65m SS9S4"zfעektU D3ID Z,&S1=U|ws;|ba჉܏|Fѳ<{w3;[ +FCE_ X}"t`Wc +3*Gk I::ÚIG`0m'(*JhmWHH g^~i1imi2 ɝ~waCyb HBƐ&VL5B +Os+Sc +9NSV\Y ^"hV=9p;rjHDSݢ]__cL?*t.ټ|ywÍ;GGwJu>].߉ l;ߺ;/^,iQ9Qmѝ9o]J7gN 9/チ-U!|R_3J_Y5y(0˱I } Y%ωn傜Ӂ+fky$qD-'3Ǚ^^# jJBEm)ij]X884[a\[mLZRbJ]7wY7C`LFwod]F5p}>; S^?[?ڟ\&@J:T~*h\`A9.p8QYnN;&*Gy-p-zbo]_(c{4b7<2uCVODWq)7LܳCHKe̬C,-«.~%{Μ#w$a1x؆ނI]ߕr Xz!ay鍍/kwo=3w~xyG7o~X?ʇ˪ڇ饥?|)gqՏ fΈ% yN=wh{;Id3o{vӭu,QBb~Jͷ +4`jl9YPQM6\sjAv3)z:xMd +XF7]+ߎ@FD68ah4hhmٓPEʧ]@T; /c\.8oOҐo(w%@no=a3}Txk߿LTEgnxo~d\{{_{26{/|L}3陀8Ggob1/@R7ds-0K9 ބ].ٹҖlQބݝ޾[ =g9?F -mXF\+ +2Xé=25[(]ҞN8UzZh+D9Yt=7U(fu@f0ŌQg~%qOv@bL"Rȳ0'|is5GFrbTVY'nHzgζ_ooU䵑 ˵ KI9MUlRIYhl7J@LaoBK~WWIlDM& G׽TgqF15/Q2Ŭby8s +[\! n֑"~>TNkAg+5FGZSeݧCӀZW?ͬV&S`pܨNsu}Cn,!^aXy}_Yy!Quqt:/ϔ_u)}PR:QDEjKL3G]88SBvTf- mFPxq;7?g ' {Li7+bî]^E͖j.J*[J9@5@ځx.AT w^WzVuP_Luz|4*>#5kgv֊ 5ˊ)) Lh*UpIzEi9ĺ2feekܽZIsv3Ez:DP=-;%ӈ \a4্ QMs="-*zVtv[͕Dfioeeː$::>oN'}ٞFyWnO@l!MfKJ.ZxA =}qv +v|ˮñ)^u;@Ռk)] eH X\$:8wh`!fj*-  E9viF%ղ?ܨbyac^jB:*V[fBy4 /HO[K|յh[/-qg\[%ׯ>~̱߅q*Olo}ɝ~CuWLZGCLˤ/:Y'xhڮqUA"'lXKM܊;dx7T 覮B1PrRTơWhz&P_C"0p _Yj +m3Uq +]iLRj&xI: ْ|6BQ|ܗnH;Svu؍v_ww#:͸Ԩ5L5NZ.$OܲvE>{2ڻK&wG-3w)j)ȳJ1l Dt3][[d!E7Uj`D^Zy[IpFƋ5^3~ap-s985j(֨q]\hչQSSA$H3%-soZ-T MuUAOI(ej#ڟ_ӑ3;t]%$9ҫ˟|İ}?'OZE,H4&XI}P+8|4뱺|%߶H46d$\56ZٕfmG +q8Qw[\E#e-L(wWS|(NYy;Y8xкlέ:̙**?=/g`yhdD>h6ƆL|^ԮɏߗbO=G'K^O5pP_14rChʜB]|37/} ?^,뙃+Sy&Wp~y)-vՏЧ}+a`0vsGإcUW}"Dv#wAbR!/65ďYIy< +7L*||Ҍ!_Ԃ<Ƴl8jr8ǪaXE3/̥*1ՙQ$2TBvJZ,PLRkb~-+zq Neb!NϥsQ: m}|Sښ[L/Vqrvraakoss>Rxo뽋ƯݑSs`bfK ޗTl)c!,[ttDb^-Nl˛y5٢ϰP[H8mTC6bbddfs) 4 u_zC/mM]׆.ߺ{͆o_>7jz'9лݹ:j){4:.( @YA|}(BM=ƪDׄE%TtM +NT}O7 tM 2~ A1O ? Gqv i +{~_ɻcds@ ,p|2*3IgƄ쬪K# +ݾi"{ % ^cpǐiNʆߒ\YAqGeǢ'ЊrC(llSU2FL 6hrĥM"-ߩ>+8Vۀ)f2/\0882cR(|`WI#cjT ?-BH{Aw+Ԕŀ4a/! ,@PԔ,*Kn _ 4巘2r7g*6ZQ(jI-NaK޽|aooWxW=xLmَvp```a0)KC3eEuK9 kJY#`唁wTw?oXPq-\//-.~,J, 4ZLZIJxn* NkS;搧$15LDIu'|͟Izʴ"s!IwK\c]jwUS9i[zLw?:y|5n9nf͑J9'=k\`JjX5 Okԫ'H +Z#JxaE?FΦH}nk5JX,t iE ƾ%FA:T{]l*jB$PQ2t_Z[;5zs{>οVxg=c'a\bKg,J' Nga!rԟ2֫񊙒2ggሢ#'+I82C-پJ o}Ū7(ʹ/&4ImymŖuT* e,陘K3OڈtnNw< .Yn#<5l\57ͷi97 6ЍFNqmb=Qk2zY4D sJ.}or`i +g3ENXB4!Xve#pS$༅3bTs}/~B>K};reaIh?Ն_n^fveivrɥnߛۓ}xmut<-9 Λ0g=FO H5U+CDD|;kH$&L( 5gfGG$O KRD]H4f|LЈZ!>2u1^dg?`iۧFϾU`>~>_-7a +T[$E IQe,Y,?&ys3$e2,rhvsQCoy``@[|ܣxjQN;򕨘pWl +XɌ)'3G2Y>VU]C(KpoTcڛb~oع^UӽX.++F][ { O7# J%ˉαve JE"MԬ[͞ [k֝؝#;wSȄRZ5Q6 +N-/#aQQL4 |2;ZB&N6[ Fega6XvmY";WfǩfɎhRgp8xrk"xcw/:2jYC9|S +S,v`E*4@X.i))SI)5]֝J7Xriw[{?wcawXKS g=/Qu,GE)55159aa,=jA0~9a0`Z`nh,vr6;ωd,l93_4܆$Ќ +ۆjqqe'3τ[d8 +'jG;k(:1XO2@/˿y +XH +ZVzY}Wlu#ʛKEٹwteP/ై0,m.bʔۛpiu7@}iceeR)uvOu28;ax /L4b4vuy_Ѡm|UTwB>_gղƂgR-h ҽ{J3P-#ӠuᶮF+j=hp"Vmp<یy +wyzt:w.pR;q=g&_me7z:)oc#G,ð䊰JBf&8ec}iÝU԰_Xt RcX,B̻V0B tRn{._٘ +4ۢ e03@WI&;H~c,pV^+p,sYY4eUf]b挙Ka\ʖwXrfd.]K$.04| V9鏇 'D*q5e-OtsP:a8_1whIˈNU>=UKE4UA*s0P$ ŕڋ%S.ٵmJrˍ"5ʂCَ*vș&Q70 BrFuE݁,8ʹʰ!@thsBqmg;s*L6 !frv`Mncdk=J0s:Ie_fA:&o DahEy4zԻ3?cƌ|߶hoM>׍ayg8ԡfIl$+`O!C5 40 g_N1=*\B0ݹ>>V+ u n(.!l,((ca|.WmĤX{(Q&ο#tp[ u]>MKɶ&0j3ijz./@qʭ^O<', +u,8m FDT 8Z알8ӧEk ^;k^W̕G /\ȔQ/_<{dGj5'<'ԙw`N}3pԔ<;ApVF7h4ڔҨ "&HWfel}6.$20\HBuZ)ɐu /HUGY;8J!|-f!oqA{:.O_ZZ +k>|bK[.7+72캪-9+AWFpyEb3WR9SH&&Upy* B\ݼlooLU.{cGc[Dǥbt('OqQIÅ1b@ `ICI$ )JK|nE*EN?7f1> 43i~|]RQd7mFrL~ZSl|:Ck'g<؍I&q=_ZNےViR2;:0ucCn;iH@s ׍ٳWIӔZP>ʓJvz=>>1:|r a[8Pn>S,꧇Ѱזv67uq+J]?&@Gzt&)":8>yt]>Q~XE#s-ŀv 4Ct 9$å:2`i-XN "LhEbqNCIā`hEfWh1/Ytc8/5eawɷYg oZz +}~9[y^[sƙZ}o:eupz':hBa}E'_|şgckm0i;j.tjT͞˾)Ir!OSA.;OTZUy&*Q(ЩD֭2maqpzk _*_] Y{)b%sa9sЌ龁A +}dW pn8ÈNzr|Ӗ0!}V KԩK/bٖW@h+||)ϼbW@0Q4VpQI w(]Jbh@d,"qA&t*:Y&aYV+ZQN4d$v>V4N)Z Kܽ nܧQ\8ev(0?&^oSd[CU:IdY fd낐-(2-F~##{b:O7aZ3g,[zV48+2?q`$B3ڿݹ7~Uy#,p8]40i&d>c(i=^Xh "8ӪmtssvKTfDDYw0UCM?DHTSU 颦rSW)~KIg]= sL'{_A:U]GQn)J.#r/WuHq"Є'Ad-"0U+"ȱ/6_̶t4[A 5%}y=n}!Riϛz}/37T.f3GC7TY/^uykw }Mo&OI6ecT'Fդ)/<.~<|9أ|ҝuQM2aT% 2ܧںs8&Y57J?H]]d^ L22:%hIMNGN7#o <ҍGfyR,t9.0]ܤf*ki3MO;i}23g?`0U1aiZheqH*D3rQyeמR@u&l%lCH#~=|Ѽ׬ptqҌha$/ ,o1] ģ4dO53=:=k?lۃ;x9XS1~~_=7g4j;xSGafz(uvMYOܲDLU^Y"L]W E?[" p˰BL2ɼ/Qe8}ЇÀ7gojfW68KϵPZ ,wD {[޲͍,CMX_0DCT.~OQյ;oY<CٙL0U-?X%u Pxy-şXBlKUuI, ٷ,`f`֌~aF&H&scs4Zud}i@oQgR(,Os,|%zg6Οׂ`_,ʉľ?b8>ԮŽ?Yy^YLl4,9؁'lD}Ia,Eع3>Zv?or[r `C>@:QD't'ۗDЕ/81ZΊBRXPo󒐘g?-vٲ"L!ch6H?\>~I!f\qjPL(뼹‚'xԝvҔXL+3~UWe ehO\`0Uҝ{!S1} #̾TnVmCy#voЇ]vu2ORpľbfaQ|!0gFUIxHEyp2sY<ÔE:efwr–4Lmu:ZD+R.gt^'ExG;ƃ#Wd}}vBgw'눛ήײ q1\ l_$)::;\dq1 +Qa,$'.dPɣ4 y}=uJXݘ3fѩc2uGu g0釃G?B;7@ 4Y~%Trx;8;Sy~,YMѝϘPɴ|f@\\K]2D>v- %?LMIH,)i EIXK G3Gg4_`Vԕ +孑sE :X3\WGi|RƐOk$]ldĩTu'ɛ5w?6Yo}H yZH#['=Tmm/}{ {ޫj.86tN@⹎5CnZ +]1D,\[^ˠ"t{NW/{.5m.|ʄAU̲eۀf w(&ҴW9O 554I<-6*#f':wL0KJa8OS5ÛGgm&uGc)j<Պ~Op])v9櫞5gq%!K)d.vK;l DF&c4-S/Refcʻb[g^C󎳶9^Kag o_ک>6E|Co6e;sdB|,_NZ"]Ȋe-f$,M2'8(D,^SioGҵ_JZ-rvm]˯hh'Bf<yޝ.}QZl5vn=^E Hv!rKcexpydR= qT VVW@qfC@8ӆh*>gjo5k$}MamPTR$i WV$߉da/nm*J&K34̘?x%WO$ QrQ[x?-1C1Py|\烏 :H4`kH nĒ.,+RK):Џ^wfxigRCBL58V*oKl K;61]|_[\ިpj<2`骃҉K&{i,TIzgU +O1y} Y&,zRXj3mWɮ(*5|v|Wf3pn2* &C%=1 * + +Khfs}̰dz h5+'!ry0JrLPLJT3Jem*2\'YWv}d,#tTJ-uՔfri#Wfn͢do,' CuorSN(sl7ȤHځ|䓈pPgΌ#1hK1#;a{; \݉ 㶎{ï9"Y(zjYVPB DЬ`` [\>CDn_ʹpv͐2HUI8 aj&aŅ!v^ +\@S & ÐE,mlB"Ԫl+{ &Ovy&hB9콃`A/LMm%Fx\>~^nCPu8D)w*ԈU8?Ε2g>Wk8wMFXjOm; oO6=Gplwϟ)suW\ ڨO.EQ/R +* +͘"e~9mB?-ɐ+y 0Qej|Z][.r4'J MFgZ:N%xDtn˔ e@ +l'1+j* SsPjN ::R(0+l4>E]bo*xKnx}\_°DU: :9` jR#9~tq T=~ܹgV\5x%c}0{W-nlȥZ('%Fı:Q<ꭘ2a, '{Rxdo`UvLG׾m~]x0=|6!?>y8Dk`}p}~ 1(7t)Xνkƚ]bك1}ٓg4"rVa3ddpZJqvGBy J9KWW:on{nՐj;pcgZ|>kk_WKS,uPݦDne [brVLYxv^, ԅ=rբ, X^\[X5ӜY>iKmjz2>zq3f%7_b̷G7u9". 4v'(Dz7>mfՑwu~Iʻ!6 i6*;xr|)+2k_e־ JHӭco=mXpٙ>JBf=QOd2篜OssMe3KSrP}ӭG<4ӧQMם 6(Tei^w8(JPҜ3aEQQd2dO>f|M,S)]8i2Uu_q^5fFirw$X 6(㘍#yo#wemb^[VΕTmL/3P~ETc$nf`0)s2I0i_h$T}ŀ9k5K t!1^P`q1L%y&}yJvE5\LC-6a'& U &Y-[ԕe:JP5]JtY h\q`7 +Q٥[tp١Nt8wbR3H٭f/73agy*; } էtb׿ҕU5ͼfj +O]>na]ZR89 MIU<օd>[^/BcLz U>ƒ<559 s}|>|M\~pmᜧZDwVaX^VZc6hE쥨)Z:j#&oBŰ mEk yEQՄd^QdVENӂY̡MSŘTV43h +7,qN%@]M+%g™RZss/.F>:ŽԎφL jÜ̗I &"ӿmt:i W=ѝ-^[4_9Gc8?A%Пr_bCCw*,6ܐՍz"(Iq^*, OplԮ(w+Wxe}ox,1/1- ޞ>h(~qk?|IS䪝 ,0Q#%Oks&KĤ44\h +axo 4Vu=Z%dG$.({(e,1U-L^ݬ0`j&ƞz/ _bJ&g7Pv. +nitGٳ5X*Ռ + גQ!u~,)gx"\x“GEd)G ,?+ &Y'c:4 7k_%ye}C)MJ$'Zq~:B>ng"d>?|1\08/Y"u&Nf* %sNkJ@,K0c5l&OR@geה N5L'=X1 +{)fԌmbb'=+X@hzЫ8s~A8?,a]_Ir涕_z}kkų(+'1=.ਗr@qyAjBݹi>$gF"|鍼K~IfϨVAg܇x"Z/'c';Q>4ꣾ{-<Ӱ䵛7reY Ԫѹ}9u=}\KGpP +'37V#c eE(eD]"ظM52)ϐp{00$~زUHѵk] 3ӿ[4$VtXWW<"s5Ydȡ$bbDSUK(ѡYV,w<1,P*E;i}'@#c +&_[ " j[orglB>^ NW1ypCTY`FJ`{ ZZ<+̴b,QF_\]] _@+I0=K1BPMM49%vֹ6J{;U:6FE&8-Im]g<ɞ.irssڟ{HODviil.rS\)ʫeFiq1q8nR^,*v£XI/'P_--;$nSfb$RM)c$Z!XT }<c$B.kK:ߔdNMʭVf6zͻzW v ݝxv|]M㠘y?}EPgpqXH֝(_iAB{P0 -l.߿h6ohCBDe/ +5ܔ+s?1?n΢OuUz[*1Lø}~BkͭA.[ w⼬"Qs#(\~͛F^ +0c-ONޱlH{l] j˗ZI*^cͳ5Xi?>0g|SnBΒߴQvsVy@0SJ_8{e{s{re=`_xQmD=) }e2{w\KqUޑs"-Wҝ!<CL#8 $ǾĎQH/Ul BXE|ӲDR`XH>ҥ )t2;LnK4McCSGH۫`jg]貨t_st;vޝ瞸uN1$իwH=?# %Mͩ%e6ϱ=ݑ.G ݤ čʙﷀ-g 1C $Lj=&lSMTD3źg(^g.9*>HuD\U4̓d)F!ʊjpEUM^W,15Td"ݚ3.aQc4Y7 c#aLegEs+qVFfEXyq|^Q9ƹ1,@?EK8^ͥTkȕP(kvpy Gf&>SYshKKXE +O26a/|NZdn~w{$jĂTY&H*HWM=Ӎtc4ܓ++{K{sZi'`Q.iBZN.O~f/*?_kuڏ2\4 +wEfomCZ +oEUD%xNFa`%"194Wes7[#.1T<@:R֔ 4,)=v;*l䥍jqܙj +6%rU9)1ͣ͹|̓gΟ9)-;wR_{ȿP=/(3]ޣ#B˧Jϔ",1ԣ ؆GAAbP$Ng;P/"Pn&Ϥ z!B:Tc1ͩQhz34 u՝y]REt)Tb/3#}؟$gJr2 TAӹpҙK׮]n*6f;t,ƹ)>tCyZ(.)oQ<3Z6l`3~L3,?ҫ.$Qqsފ't-nA$jmfdCBuqo +峒׳3pfigimً`l(˂|嗟‚",Y2ijTͪ -Ŵ2v4 K!;?*G{{l"A#x; 3Q=һ哰E2Ā0$|IIr{/ qZUPFO1{@R:`/m$ +?ۄCDm5"WhC@@\d{SGM]?I͑#?ń@U5˖9MJ7 uk4JSk &P˖e!ݯ,oq- "UC[| UsUwnu3veSFX6o|[_Е"21(u7(/It狜 JgU9$SD$3 w7xykwF+~״O\r^Oj4tjxAtǞݥPȃ A{l]HCї =lߩSm8XBO'e*شEElQ0 E .S p!?ieE¾W·c!@q1'XeKDuET*!S5Ou4I1qzO?Ag#'/,(SbMm^m6;xћ۫G~z0\4{nbd0* U ڊ+QIWޫޜ24qau7㻒&ZL- YTSc' |(igt|Ăv49z^q/,s; GFo1םk;1Yvا apf?GН'5{[T5mbًD/~lse,2vB2d~wsPŅId)g'Xv ],۰6N =޶Ϻ~>2N orc? ʒ_L @(+2~sBn1O,RRd2,D(6ˆMkH# zg)>EeR@1' 8#&wy j㶮߰aJvTIHSV +lȤ0t(l$Ժ,2o!BDA]SYm;9Rk U*g{6nY!L(1h%F6jj.[6n޸֧&y`b)Rڃ"vk̠$ wlUb@BⱹIDSϘx3Gl@ӢV,,S%7A9Uw5W& wpo-hnxg g)Vr/6 &-^^71% TG<ؚU{ԭ\m]<ޛd6UeO~[r_F 9S"و>{,1)1q۸sH69Tz>BsK^Tk&'WYktM61"RY×Id8ezS 17cQ"QZF$PǶ("W*אָ T( ٪LQ;Yb eZ +mu-_$g4±lL2-B+:*BtLSSeQd U!1 211UvJ4jf5^sl6WعЕhu4#fShdE?^*lFFP9$bbJf'WS0"8ugm1dŻ]`0/T +\-) *i5'}S(`'/M /$g$zsP_=yYS<׈ޣ&;= _LiukwAn"ChL?kӗΝ45$Yli?7U%M ;n~nӔ;}t1Kk <)3S8R_ = +_S!T`}}5#CB餉e dB zm?%5xOyxVOH'%b픁~D36zJrR+I'k:jƌ'_0\3BnQԣG0B<3PA"Sp;?nh`H + m!lmݹ)Տe?bUuZ;(`s#迧Mw f£%2N ă"02}F%31`d{׃=]B,\]vRgQ'y!4HSy %vØSs)aQ1EQ'UkdhwXصc=O6/0W0@D,ҝUL,Gb&EvZ EZ? PX2lV5*(yԫFprWV:΃+ 4ezob8o>-lKmHMףJf˺M"*RGi[_QHƱlVQ3HzDzEKMaa'a=[3zZׯltzoY_bbݺm\EuBAɉ'myo$E8y'6m8t5>ib /h}ٴbU?ͩ˦X`V4;*)+2-!"@?;@L_QvX~Ȟ#̺ﮪ 4} f0&:lX,ʔlYZrڻ,vҔd]7"1A*"{szubԇ +#8ԄSlGAD}jD]C^NB6Й̌ig,`w-6}m5Ҡ/3O=+ČK? q4@6߆3SGlNt1ay k㌀CZo`k`K/N0_99G7[hVHaeS1(`ZS',#/hd7 qUUKSIw|p,)dg9diH!Ɏa)#$=mh#u?2%n͔y.4Ur3Ȁ|ƸّdNޑrPS@(n2_|!;WɧsA. 8P3GO9aR35Wz?^|`5eG$0fU|S⠫CVFdEݏc'15A0Hc*LwoQoZ4 i {ļrb^4Z#pMC/qxËp)xRSl;5#^L}OP,!.0䧢bä|:PaC~Vvn,ݏd gj}&?m%(i+b]o5)3au\=pM廣sgM/:2g-}M|KIu*"*?Ɇ.h'NR_c6omg#JM.+[˭RsʎrUyFf/Օq#S)U͌g+e= V5/% J!~1O|њL::\ȁr0żp9zσ9ϯAg4oAΧRNhW8PT*r`*jg0bąt%H9{۞aoPM.Q;Hf~W _<\Q6G.W ##W㉉\=bK/5t; ѡ.aog ZS W6TS3Au>bqlH⼰N?FjE-쀉KLG >[.=@p7cU&.| D\+ҚU){=ey#gũXݪ&}}rRasJtwm;neA_D|)2xop9Sφ`1Dfq BрX|uXx*i ?4m| L @cW(A9ܜqs!f"[aŝ%J,q;=ٛ;J6z1Žkѭ6.Zsӓq+[ÇyOJ)|k& +2iuXwv+O,HE҂Ԧ41$n&KgLU7ʹ x"#b~נv>M7i|E3Mwr9Mt3a\Y.N31fNK^ 6>HWμL =NNoX8&g2'SyCaLj7/<oNi5:i/c9r3\zi:!6`@0ǒl&S叒 %dvECY:_:6 +CC ˗keEasJ%n++JgG?%\ł:t ïe[P3Y,xɆ7։!2Ǥia1R[dܼ8/9-4f1㓜Ɔvzst=#(DH\%?NvVn'QBEegyuE)ul1iI*#zT*Clu2pLoTIM`VJ0c(0!` ֋ڗU)4hB"(XUS0Tn؅Lڄf +r˿n֡( m1\y= `P.y+4=tI_]=-\ E=={9)))d{_g&Cz m]2T|_:i:fqF5F>Dd= u䰌WqB5asJnaY?fek,໚ 2hAeXUNw6d ioN;R>t_VwG9##jK1.RŗJ,- 3}]ޭ4%̚#tјU鉉٭cIWwNwϲ0+Fg%T'w;%S*a+*`޳V\m.( \mdhW:# +R^d7D) s) sތj4{oa$̟QO5`'W>! {8Ub=`\Et׀-!˂4f&3YeBB'0a9lnµ Sظ#m\@#]YoR.Qf6R(oӑBRs[!&rk{ cyݍNsoT V[~{67-k`&[fd*k1SjZZj˴p-;)\;EOKC4]UMVr'i=%RINTvn^D*bݾٜsBr7scb(,O\9 aYE~VF?xҐSEepo-lsلţA3Y/1vleY`8٥%/3jԐMGX@u^$\N|ٿ6=%N%K TwYߜ͡!5hV"uEI8v=4`y욖՗C t5ϓ`lx,"3%NѾܫ??]]xއjĒ{"ĞUs%O8Eـ+9w{8D!LW'jR.;YfS,G^17/HKw]Q db]qW򜜻p@{C|e4eҬy5뱕cvʅFKWæIzMשB~zֶI.^ղ߸g7M}|s♤<h[ ׎#ahl,[^VV>%k|Ƿ_V]"Omomg kwm]50N&S=*~Kg#«{Er֗mso*cԺꀴOqM34zY7Xۮ$d73:QXh1:Csa QmG-Lh dsCΨZC겇.871 9Uew]KjLkŻBy!D&3- }{;t'2uI)q}# ̜ڴl+E&'E.t 2 =S\ЁT,Ls/Km5B3ƌS8 +߻"~a$ؤ8eOۚ$ׅO`8fa(f+[I+5eRY1H6ukC#y +{}nPO&\lau1LZ^@4V#1E _xBdRgRv3v&t"9kL fc\ݯE3-5s⊜I+ lHk]FζзlGW/Rvء 6_]l%94dKī:yɍ;{ [ $B^.? miBk\DY:u Wc%7N)zT;/8GKQp"=Ԟ.GXp'#Q1UlYٵ"0$V`9a*2GФP,N):iv)WPg^ʠ^!g04'NCx*DfW;t1{ +oR&?MtbQ^A+{ STkQ GI1sW۱=)a+kWTӱ$7̲QWA6.Fe 4\M[<'hZO^ɭA<1fmz#UZ@K ꯗ#tJ^ + 4Mrd +/k,I?,n\U$۟V o?kQvÝ\t\7-jr8jr9-<@ ³78Bb=2'+Pw}y21uA) !-w(rPMe6E. ޤ$QcX|pL 'r/6wT9tgZu~ig>mYL>}LQmP'gqHwW>Z3Op[ʳ#aAxj^5HN@4*q>|ŗ+Z ]Ϙ% z8`jX $eZ^D6oɩþ \˪)mǽj@88 1/E:uUݤ(ei_741_8RGwpu'.7]5rw_^{b54Սӻtu'v<{6;,Aj3w[*BA]RȟQ"-WpZ":Ć НJ^*^pRއIf2P.N> %D"S) ?)0EEIϟƇBƸP= GBn/,ƐNn;VyV>P" ι6ʝ3! + `-ʴ> 'Sةj+֬ihSZ)2)Qyk%Oӏq 1eIYoK=6!o|y i:2A; A'<%]×庼Rjv-D&5*#JUpOʘ3o_xt]C n 3g#'.'&)TB:nMvX rZ7iPvm8-gnVdU;VSɈ>'1:17o&HÒKPD@I[8dz NhpNY 9~3%ii8xΖ)R}:7l7^.onjXQ5 v af_3l-W=|y܂px:pt2mFb9RW#J>clD(SU +f9!q:s|RT!ɲu?0xqȻx00-McQczd @\(TͮùR\)rȼ7RF Y22w+sa""ҟɌR\N=}[#ucr +ƫ/|dlZӛ̲X?&;P G挄 +%grh$NfjKYS+C-3ܧ Q&|BNT ic.^8nYtLZɍZ<YfL10uj-K[#_˜ 3#Ï`vԠpC<J%J$&xRHenca,跞;wNOeb3fQ/r0͛#u..RLA-D*[ӭ\BO:us;|qs myd2 SIډG3i))$Ie:wo,.(;eGy?q|5!HX +:` +{3lW5KMu0_QM[ P +&qF>x`=\f۫c~43U U!g嘥ʬ:-1Ƙ{PfŽ7d[4D'˨@ߢ؉ՈaYQ5,&d#8ȿ9a!i,0xB>;aé"_ DA VqR0 +]{&s[iom=ȗ0| ('pe)3`Y7)?{;$]yG_WeN_r=UJ5k t4UUIv5A|TABMK4Sbk;IPT<8JAnIzuQw+rgun<1y8L"G]Oċ")EAFG땕Jcy^ hq˧y֭GT[L[(l:-~INMLZre'"^G~:jb+آM'6ʔpP8c`K7sڲ Qw&HFQv+ʇetP^~uQ+wJZm35mڹ'-?gYKʂe=Ln:6n@uuTgp Ԙ[wf8EX8<(-L Y R= $-T CMA™/jy0w| 1g9A1qƚs(<L+>8]l9݁9\N]nW}1UOn|`5wΝsf&'R> ##NHi:-x %e)pk]||d"ف>0DN}2S/2 +0n ^'gLR2ΈV;E|y~ȱe3ƭeLB͒xl_4Mog-]KK!A-PoȵMz.qcիg2m̍5)!)Uܺ"]z6<vf6j +mmi"8ԔCkyE/v%V+ bJ77"K!fZŋ? #_.Ͱ YGjBJ[Yd/@ſY,j;ɷ]jYXI ` :K޲N-)dKryAUc12*wO(_TnmO}Ͽn֩Sمk ]}W>LiWkϽj;⭫wNA)Jݘ |_Pu] -S0( @: 2j6ɚ#O@̏,[6I! >=ہ6qft+ ͙e H2y μa1Ɲ 4vff1sDK'מbqWCM g;x^ړӶ;i0]*߮Yn0 0@I)n/״\wH߶ȽWWŖLNwO<{;d-3nk_50sLެכ3Yԟ${ΝI .X ܟgaē\K}O2]Ya u7 Z!8a6kW0zGjQ]zQʿ0WA]\>[-e2CXY"wrɇ.3s&YO29=^6&mG=TtWW3b ]-m۴>\:_|}kkk#e L 9u\NM~g[IsD f^f$LgI'o9a5!7tFff"etJ7"S + d_Kf7s_Y$C="-KINxg:Q)/ziWV%0>~(g/<4yv)kG5/}u:hBkr5ki6ad#a@ 8I^k8i``LE$RLͱәN{=j=ŵ0#0r΁04h#i_jz:[j#:ܘ*W"ˋP\95:71L#tcT(o*S>/Y%}zчzMe{{TTLC:qzt}sm݃J 8I}n+nnP["OF,/suH93/38lb[] TTGAd۠lP5YD"iK40+61/Pe td|à,m@Q]xTffD|O>N,!n h4XeIJP0ϒ`uFl_i~A'_^~jcC|0lzib >IgAM!"-".DMGV7aJ)n*D\cyzu ȑ:ʹk%rԹy "+?i21Iz;to?I3l)jiS^.O] ͂lD*X]qDWgb]fX-%[ b5bB!(}#}K0ZAT#?_ɭx«%ו{G_3ZwJ})oݿ^;sLURfDtXౣW=@ޡIqRCvgS?}L3(6xY5gKDG}x9܀*OP=Ku<5r+n|OSqaݟ|A5\8i+5D<ڲH>M=Di[h6 JG?hSҖ|Qf:[ՓɎ{W"" b{zb\1TMì2dCP,T!*p4 i*pwP3Rh[t*~mH&]Kx1*w嚼ǿPK\I =.;ʗgo|G;#7QLKg>Zuh=TG{kCJ;QѾ'L|*rGoi1,/Rqd 95 ;\fANŌ0G :gI[=g?/'!2"EC?>:CK M2+#@hmEj}r,Jjp<'^N^N$I'_ +'ݟI_W>|VyncS?PիV++~:RVU3N)V ,Q1Q-p+# P8 +t Ok*0k;sóN7ɪHlT Ɩj^N?#ZɌkt'VP;{ԪxKKroCN1%^'H>(J-oU7 IhzܧybOСKfddP,{\nq&%<6 HM&DCӳeYvdxNkYA8t< ;\(@M5ҩN'f/3bK-@lCu҇l)vӠMʦ ih`F\8ceV64tӂFyjqmAr} d]$6ST;8ύRmq[i>ύ̺V +/fkR-B +׋>GeW/IQME=RG))Nȋz4 +￶geéˮ\]1R7m 23ozV+5l}GӳeaoQ3iP}QMu_El|bKW]W06E1ۄS'`*L'{sYj1 9dd#EncFVP`ƂfԷߥ$ϫfpLދ,bl!mp߇nr +10GԬ +4% +,/լlO\DETgs,hEd޳-`PKMQ51Ѐ:X|Q5Pl/S)D4-MMIC^ɊtB#<i9AieO/YN]Ww |'f|G:UtݻJ~H~mW7Vk(GW4klGwKg$5 +oѡ 1<}ˣ9^LP3=Mx3j5$Kj72 jG֗K<8-Q]1UY&Kj1zԠ2`-<(W~?Zv<6u;/mz#55Vۙ0θ Lw>&:r[;:ཁϨ} 2xvOht-v4Ia\l^![^X6߇j.g,MF|2y=D|v%M޿d +09j#3޺;:^)ʪQD,'<ztYRJ2珒yEm[a+ۏZkkCS[c >h_٭l2L4דQ0 ex@hatd@j:R D(p0 `eS6.#-E WbdD g9 4)g*:N@m[V^J0"Ez`Xٮizm@y@ܬȊMw L1e⚠¯2LayYݪgI.JyMio~#xŗw^ܹx,@ X:{Lþ7Z#a/cgPmGq_N~KZ~} |8' ۄ꒥iPӾRaA-0lmGۄ),*=u +{&\H דѨ[Fb$|Tm eu`Q#dnHs? Ë́73ut`MqAuD QU i1I^MO ?^eY/ ҷ Jtɾ #-yoϿVxiןvNN +鉉n{;l07DUzP金s(= =ɷJAhsRt V>ҤʁCՊx{2áD +_LaO0z8tM9?C۷E0_% + {#X(qml&=ĵCj*!lR?UxM/%0(v's=uxvvPY[!t4?Ge>?V46ӿ ^!Xs"[ a !;=Hm35)}l@#E\PJjzZX DǓ<Ղu?EsC +3?MVp1A0SPs3K CY*'dj-Nvnwb& w7 fpCMO/*M +JV#`dq35{kg'Ƽ_UsecKAӜ]__\,CjiUSW0Xmu5bAҧ,gut tQ+R>-}2yGݻNr}f?E>u?6C#$G4HVfԟN7ոsV_d&Q2 +$Oϔ)dPܳ@Ҳ O[VRsyMn,A]=˒T8AK& !#t>%04pqF3eLV5ޚHH۽5WۍzArL_2~Xrx*,KD4xrYRTbʽBNLonV˪,LMU߯ۮĥ|KG6 os&! J[h4.YSjSwp9FHpmkkKhd/LӠV!ݐZ|~mE-;.^'ssiX>(ŚP_j6ò,jTdž_4dΩ!rӂi'^c=]r3WE|K8amkڔ26 vv-q 'DF'jOᆎizJn0?bkA#k;z@qܑ 3FQS% WJ Ny~HWi!SF"c4s5--M7 "5F.Y`Tb\΀!fq pa ؋p"PfH]7U 'wII9S2>KD$-Q2I%3I>|AyW*&3@>ɏ~ׯ\ܜ90|zaeehr谲,0{Wr+ÚCݼ~^qsZo*zp-ԈH[[ !J;Җsw;c@$NE y):iס>u^MX`;V+L4 tlݐmWq#4 p>3"jAlaa_ ۲5q-{2{Z8A7/ulXHfrw 5ӞUS~Tijk˳W͏~w{ƾ(c#_9Hz:쾒UuLiq@[j5ΏGw%zf2 +b`_0J*f欜=fKS!9O1IJJ{B쵸Aۈ/+T0v 뛾&dkamQg|2,KuS5*!Z)WΐW 0cBi#2 jZ|a'En&d"sl<~,*W:d>ÛWfkuyERKVKvح$fz}ukMNB1 g0 Yt}DwCϷOĖ}̯!~UdL&f}Dap96YezsV-gscGWVڳA) NhahϯWHJu{J]ٖOq?AYۤwPIxP2ٙ& z btw#Wt'Aƣo1$|zR qNKSߣYİ!e?qz'ScpnיmQxWRsb{ʵДE5?J>yŋ]Xj6lf[utLP Hx~_;|؊ǴwV@>tI"*3|m d%Ej* "~黴͐w91ֲ#hL?;BB( o +Na7ߍ8쉾+>y~swWOj雰 M#y|n';=sxJq?}IVZY;4˔'f(d/2 $+7X$y 6"S,)D5 2Ih"cETu"aB8#V/b5UQA֝Ut[,!9aTөK}?~-V7I_Odc^ͬO|D/cpƟ}N[;MxeFdǁ+Û +mrЯ_|Hvn#IR)S2ON_^LX޳sԹr~@?o{#2 _[y?__ܬu(Je>3P?B:ՓFq^7{NϹɀ^\SmJ057[iiɊsx~n# ; 8+̹HӖ+̕ɺVeļU,6ŕ[CXDARaq\8ޓη7ͮ'rȋ'G(u iD|5s|'Z3:uղ LC#?;W,{@Lr$Sk8Rf.ʭiM\V^ƥ +p.P'x&z'W&gfMMa}t?5xgbJ n$Xʶxg 6d?:%v*!4@ Cjl>V#9tJ)zH5lJ4mop⍁9 vwrcd⹑sU0,m]:{0 jpڗn]tӈ%_Ur,_YZ֨S(jEvOY%Ks?4Q\P6e/W@JxfaDuy~q[|4 J[4LC4KkLDSj.`?+tXuJ"rhl8C Q}j[XIC DA q y_O6D&b0o4h|7O5oV;9a\\Nom*NSCФs*5[ m+"{9g%Y6'ePf޷!û\ἃЈZ2TJ|4VKl6%ux OLGz}r\k]YYǾw0ܟ8G2K9yed&~621zRdٖ hSd@l.W)Tp#0?Y/*Yu5@H~yZ%1a,Xޝ1۽gVO++;_cjaZ'{:G\)ڶ?w!B +1+r|dZ +Br(*szDw?.t=mL^=SGRuQ<ُI"kS}!5[oP璺J ^g2LO6ףP, Η@ 3er +Q!u,:ƦaC&llonL~K>FL,,lnr@'W < 5m6TJP`3Pf֨.nxY]@`M4߷aɄ{:`ljIK_5O:T +fw +^Hͩ%J9W.\.PSe?!ĸ1ՎX\+n+_Ds\<| JD;p-=LM3=NbSjqdLg&ff:f^΋>|S^/Տzn#ITu]0Xg .&^ylV ݟ4^i#Lo?N)aVXV ,j9- ז&'\uz:9|<H30ڇf8m2kkPؘ@h~,xg݈RV2٤ +rzݐАp'4 (YJ3Cpyw@k=Zi7)9-wjs'W;b4wGF]ovܞ2l,5wTL+0zRti_asoNjɩxhR _%Ddfm2EpJLr.B|;xJ9xxH6`N/ ܔI$Tu޷v{IJϯ\O}N\Ʊ5Ak+&^(ѯ֧vʰt\4||ET@Z1190oڹg KL*jk X~Z;pwxLl1siglZVK>gc|Sf>fAB[R98O6L1k)[N<5Hocۢ?*L=kL~">;r\P8Xb 9ASכuDOR/KD[x8Mլ4j]nB{y1.aG̈ UhrH,$ I7@ 19+W%De}47UeN,S|:]7 KUk@-[U Pm& `hv䔪a2i_O5v;ߋֻ +K?"~{<5hwk)%b++k[᫝x=ʙ ˗JU\Y8K\I/f(Nyo0%Cco}2ЩU2~L]Qvtȷa9WC`,)b3S$CUZt}9Yt?%@q;;cLG%el3B,#yڐRazupU>B:gg‹|JB+d 瞫LΥr+<ԊũS,h4z5q]o:xT;_jkh{1]#bàS⼣JΦbHDS{p{:=l}I4DLfd ĺkaGL-&Uc1ȅIWOdzX L 8—Һ{[ooXǎwb^l{jϬb18P}8Nl=wD3YX ;  J%/~12mYaaAP&c"(9/%*xT۳/u*۪iQ9~Z!GQl7C|;|$Xa7_jPXev<&u J'[koP{:ch`3\UXN e-U`EϗG 72}̙3) +gχ}P/n1u5B)?aS۷g]E'y$b㢩茋Vo-c3ϊ`t~ϺXWP2/F6Yte$rPf%6iEF`"//pmg:lEt5Y^BG0qׯ0?+R, xUYhQѬx/w| uO;ONH(#lS=y$IhԐ s%>+ Cae'G/ _mY'()k9HT1 Ȗ2DSdN,,z^`)3k& ngYV\l֗_\;XZ$fŏ +ĒyRuri2JDNaGGG?T( +<uSPSQ櫎n޿p(b1+xٜX -i;0lCߍ-!G SŤnt-$Үۺg ?\o- dŕBimU'ǒa+ߗs v+`fk`MbOuSUi:1EU+rʙ;Ķ=}_W_3gtm\: έb(צem FuG&c 9E RT2 :byqUs@fk!6:Z'` $HugdN=éK@ZKm:"|,H b[},)+F-Ѳl<'y ƾ; 3A巇XqM?KG{aK"91-4H}o9Ϸ5ew6+6Y\dgYЋ0pyljeG>r]Y~ST+s NK۷JwDsT34lXE6 W!iLƟT˓֌q0=['0M܄琢L#uV|\mvgZ\vw΋<^J$6_܆ahRِƵ񑑍id4˵v[lR= kgTutks9MWoCRLQ fflVU9Œްe-70qHRLW4ѕSx`?2mݠyboK_7qGy`|&+˗@ ólzpvjO$8X`hP^U5d. #ލ7 q&ԼRU!Q%_\|7<:ox. m(`=ż-ۚԩYHO|o>eXtlLhKq՛\oG+ +y:=3/%7 ߀bW^t3\_]Un \>9cPA_"pgZkVF|_mdYKŐJŎR(el?Kmi[CX[7)BRrSw4S9+)2FlJ-9. MWSMyMtQa@ >/~?{YwඪzL--KIoR'1~m4u {]4 k_Mxtansp9Ry)VbߴdoKk~ Syg(ży4ek*H.Ԉ R9ׯxw)\̵rҦLnfwWV6e]ޜ>Y2XpgIj+#7wY>wEk؏yd0;nRQm +j2-|9nFĖ3fMt~Bn8E: iʉHijX@ՀLwW!) }^(Lh:9y5ٻ{wͫ 7ܹ*(o ^ (SŽxgVMi/=O<5^^ +)F +D 쁯"DIDkҏo$"BC_<^N8ogf=S64,/Pز4pܑyPpyHjE,P7K,_X(q\fLqO_z<*AЯ[o<'-~$} +`+Ohd7d-@ =Nmӵڙ35im}Q[k'0RR,g]7,DxӬ)XtոSu3˗ߩ칶\RRBTlNa{|9~ 1u2.33=cTqŤ}״eDssR>Z!h+FucCRrBwk¢j]uF +zէb\<&N2.ʶXR)cTAX\no9R1ʙ"u%+sJ݋ԽYp5]wϝۤn*`tG"Oq1#xhe=3HV6Cq0>pq5>#=N#J/Sr._Z6}1Ы%~%;ߙe5EfJY8c1F--}S->b}ІthT?*gBJh}ߒG7yc!X\Cs iyes_g.=iLWDԝ|tf-|*uY֚ڼc-_hN46{&vrh]ﻮ%?D4yu5=`Β&5LdaTcw{,M9ZƥXJl;iHOu=(I@BV5qº|܇KF %4+WLT_zZeP68sF9yzZv +״t5 4qՅ*ѰNݢpV[;W@O+#>R:rDw5xbZ9 +$! J/eZW)eǤ 93i UcKG,c6XDS)%wb Oza=0-.lx[_yox,[<^9+RK7oeA+d5;;xFUws|EOtz-'o G-ͷ$'᷐iшbF&' bGL'Jg#BKO^ST7K5ù{uđl7oJnNOK5Q>rU10DolfIYTV.H9 CL?I:UU]k)wpMn@hEZ=A~hK#p@bJ T8OH`5L4\)ZDKX˞Mْ,ʚe}EZ ~|:!&ˠbǵTeI;yߛ;wc'>!ۿ3+ɫ>#1~ߒƨ[mx|nhXJ|D-% e|w(ЅKk(U02(i_tQ^UEYDf2'vS"!-XOlҶ jR*a2Kj-.Iʩvnxzʶ呋G"He|J~U!>vX{Ax3fy{}o?~o^{x[;?.~v~(Z~j~>[7o}{ ۛaltyh S?8I'Ŀ>nJ1FPo[1-ܕ٥ܝfDX2M"_WJ%'Y*/(QvL=>b бȎ%A?jM-%hJ7QdZt^N[f8FҎz&]0+X3dN~(CX lrnYI"dLJ|2+\6DsnὄVb}^hjMѴarԑn"nF>ooXkbZ*fsrj6^_y +^!EˎLeD&cS%ߋo;1qvyyaAlLM̈r<1);` Ӹ &Hb!Zp1c#)Mmߖ)Q4_NY?ðשdggǼy E?rnypQʧ͝KSS33ϯOr?0@׽>El?@1\FXq9٘ 1IFsP5,$xv#C(vWJd Y#MFFMP"6<0 ]TX(b=;ikI_ 5^5^}+ )yaSx(rX~bWh݊yfN51<}V ~P0"qCh 4Ӱjw ߓʛ_|ӗӦƋfԈp0[!{MN>/_ĭiQc x"nqxP(NLR=I4: Dۥ>$>Ru`Zem`ʬfj`>$F 6U/֞D>K)` b6MfĔoEb58|FdHfph*[xgV#!qH1c}i:fRsqu=zS"Cd_`YȺ[qll?ܙlR+i|no'v ;]%{ϧw*cN&kBLk/ q/tj *T8QCp#l>#RHh!UEZʂ0kr& G-~QY6MT icH ws߿t" Ϯ'rZTikbitim͢*J*$ɩ1{~g{m'y>W`g@ +3/ +ߞ?I-T 5xng,c*ԨTԆᔜxkU#cԍ 1K? + +R_wW!;"WĞQ! FXkJ[n,&{^ݬ +_BLmT)ٞIYq"mUA)Bf^tx^/2U=w +vO9kϼɭyv;WxݭCzI'dzʕgGGֵlY-=W{;&~o> Ў` 1729pVc"lH 4bH ~/DQA|5| Э 8MG6 +&xPtrl(0*jY)=,ղ$6dSƼSI5&#@?BW5#wN|c!-D)$̕,ILt8J C̘)>s:Z:3Srrc}snk\j>.}90GH + i "^*x q>"jjKGDaEG}9$B '@8L>b ,! UWgG|şq=$66\]6`9'Mub +c~c q0%,;KkZZ yRE,w4G.w-k(.f0(^o8s-W@ߞ02xk2Y 21YoQ`wDQJfHTR*Ȼ*Zh`^&iuJe%(hN <8*4vmms[]l iΎszWԶgn'tcAz+[7[+&rIҐc};K ̈h28b^ԁS\b錑\JYA] |o;vD,2$Q1F99ʯxG+&_ЭjTFCT\_  *-TxzfE8$3E'dLFxBG-.6srRg} += wh%іB>qD2%ÞdT3=6ҵ&JƤdۚiu,8)bWB[dF)f(\BWDjM#LG$¼'8cReC(ɲk2 -w֑ VRc~_7 6b;ts?m?P[ HlY|"BTeqj+̰^|GWvKlxWFJVbŵ02:3 +}{mtdt NO?u|{S=DڜɰF3*#f cQEUuaFbu + +s8 o9L uyӗ!W&scm>{|Nb3hEUQ&4"d_RFΗ7)Fc5R2UjWm&OmGf{kT"^)a{̻zBP}%~otU(>xɺ^Rf^esiګ̏ģ6H??t +3QQ5-@#&>"3j2-&6ִ7 ݈)]f(zH&&jh,%j5DH5N-S|a9*E0Q9l9L[}!I+#t؟ +K%5C|Ô 7ozW^eg{yeq wT}cD+xނNI݃}G~C7΃ 0`|S⡭Q3%3NIu-)d~USAqs~T/-;[BQA$U5 ]ؐdCLA5 #Fi7sRi$M- :NEL҅LDt'?/xXH.ﹰ>$  =Afȃ |>5;̃̉eq8SƣjczK7vu\ΘJ+B]LMdFAl@%8W p 2 IN!cu؋Ԓ&#&0U\p:D53 +ܺrvo$@F@dul%5񪪻&Ė 2mdfX]*?=]1K-=9䥗}dCF@yaOO7]ٞO]q=]n#nN+jH%vˠ"U9'(r~:잋whWk՞o9ڿZd^7e3`).0&H t ss9pSڊ]ϜR6)Pş$;δIЧ} _3=ZZ=@vIN3EI pŤd.7$] sk"8#U8#J=ٖSI^%+p`*v!ީCxS8XK„X^Xz6}A3leyMư>[XGNUo$.=D/F}]ظ=j|zv掑i(x^ѲLwMc)1F8$DpKͯ R`4 g)뮊9j&u~r$.`Ŷj8<ȴr~PdCoWu wlJe*R8!ch(m]~7Zn opzg^n66G6#I<浝qP:[ʦǐUc?>;^ g2/A#?'`AMRx|̣-=[y8ZXbP2]P2,k +yǑ /J+!!P_> +J|d$F&[6"k2ve0^4(ƀ$;f"x", WQ^s^{^zڵ_{mHJ`C^zi|Pkxt49hhVi~gvQpezϐ ^Lۥa_{ﺈw*ś +goIX,:Teʖ#/{b=QutæhmFpB-halJ ̏Y3ˁ%EiS js*c7x%(fGk¬N:*S旗gm={/-zL#bHt?ۿzP#_OcNK=dk2Ha E3)C6#pw4[&6ƘǦ{*7yضJ-ir}yg>e`ݠLM\q +LXOf6TCXv ‡'_&#=ukkkF2!$g2Cמ\u y%>d`æHiɮڜyؾZsw;р{?#666n7{!!b?ϙ, _2"qb7dI1l*Y1d +'dtu`HVO]T~4'g{rmo`(GLe&.0llFL8FtY ӞK.`J;m~r%qe~~#szNq<7>=[ol?s7iF3y؉?U]18SNT;"ys Q^M(:/hzm<(6@Eap)y7 lN tVEԠHL,/UJ{|g%;R 28hzBgRՑHFgȠnfh >.ijh혙yn +ᇴ/DduhFcr|˟pbd::PRy^|3_q[hK;W3E68̧͖,1SƘL4 u-KYV30<uNMLD6T mF2Yr&ۺ" 1L)yOQT=Q1pU 4lhi9m[2+s9Ύ=zg޸/4jɍ텹|G"7O,iEZQ) +!B*N 1fd(Lo9~$oqwwre ?sp"Kaz5 ._iІ09x)W4ExV$Ms%(u0 K:KeU[mH24-D{&-[#ww=ozq8=|‚:.| ,u$ֽ7r!1N10H!2:+PW/-]xvo7\3gm8lل,v*&2Pu4StRqYYt Ɇɡhd:t,VEAEBbXH&sldXB r3gGm{Za +k;;Ѡ49g~O,.钍qwc+oVl@ɫF\eEɏ c|K=x؏){%fM-™0^3\f)bB~&ՊIYEϛiF-K pgNs-h{t@בVCڨcC6mSfjB:Z10Aeq/w6\\wBPEP)M+AXI f~']/S 4u&^akl;w,Syff %o!,g[:+F )*C# q+Wet0bk$1d~J @%j o`;nњ%cM#ɮ3x"m^ v$2V@e +ݤd7w6iDjh$Z("gFґF%9?>C $Pec)$.₈)sU0_ޓ0szrm!pf (m`6 AԖ6D<-+s]i]RBe~v.20L~21:1ryzyuٰiNkfDZho!@*⒰Cb4z3"˧'賂qv\ V"u1Zl Av@EDR0("XX]PĊb?BoӼ/mnoF]=ӡS43 iG~mj6|6>X6uTǑ_}D?j)YVM]U$B*D~: YY[yO!*0$Ƌs5JQ^O,{DܲW"]f 0)\ +e#܌zΨ4?P2ikW+{9ƽaұ":G#CDH2T oq22y؍y3YcYp PF+! Y};?KM~Q[˷ }<'Ldqׯ0W Ћ7D8œ8FD=(US>_6XaZ/靖6'qMkjY_-+SRYN0U&;}i>ǸLU&蔞ՅL،zќiBH( qn۶d<8mYX|ȿJ\D"TnlZg~mFWATBm "awk窧k׬w4}OEOv !F;Lde+V"ɘlTap=/L#GB?/*D1IaEuoli6(ZdnYnu}*ĄdmKȋNجX2V.Z`~HLe?}YUf,5% /DFjJ܉I1+JW0F6[׉đ4M_G$W~ư3紪vUƸg/I;oU;o_鬷k7u;k33w( =?} I ҫ'L53f +Hk$$c4[QnJpH>Е@d}CŌxR~KunI?)~k 2Q _zI;I&rx հHMk$L_U 1: +Ti+V~(Vi1>ǙXvêLZj.91FZ+AnEt 1Ϋ)O g}764%Bk|QWC9ٲa)%H Lœ& d3TZEe-݉$ZAsGK%.̤ Z.Rs)]]k]^[ۧSϏ+d6ON-&vL3O)-[TpbO0Ai̅uCe,g8ŋ;R Gz\VOD\ *b8{"ذ}FE*b@v ZSZ/nC)YVYbu8wqjr' OGt5k@8Yȕ/!DɔG-T Дᒶi 3t3WXU)MĮ<vJ.-_w]DET#kFu񞁺@J[  }Xx'̰!&8HRrzPnۛZjЧ[-05SBOP=DꝚiN"#BSR:Цmq2+?xgs羱k/jSB8"Q8%q),PўbsTy%yH~9PX{u}!> ݴ3 p|o(j#;m'> +گr_=+s[o1!bI= +DZUЦ -o +MlSp69nO,Vq֘r/4$4Ti + +-ܴVjxWMC&N@1d-e۝C1V yPB N*xrq X؇Urӥ%Ar X!Cɯ`[Rgz3ÍR{?YΨ]"P][Wa _US3;ڟiGu;dֹpL./ޅm0Q"#@D5lblM`'`b߇ؔ#th&QĊԩ8_ _ĜfmחF,0HG-]0l4k!Ϭp5aNзM̍[@˰ +rpT, +s&Jm!E$Kw\8QT*k<X(]\[Xf-DdIkO饓x "@e2LA*݁ĴUyZɌ%P#.3&"?MzXJ>߶AEHT@d76lk[ + -T| rE6FFn0W~rtzq À|QǛTtFےpvܮozZ͛흝#7qWWwY~޸ggرFhHa0U(l4v[)ClD5LIYZI}RO,ZSI`$,v@˜=V Ax[rUyl(2 CP&οP:WRglLI^˱vKLݮkSiisQ9yDxd'ln-}⮹= S#+ٙ 9#%IJd#;# L 9෈Lo[,in*g=&AUؐoT*{MJuaI=n剅{kiY-+-=FYsEP!FUKSZ=6;ڛ''>=Nx iZOM^?un$}꫑~`?ԇ.Q._1̮n:ʤ6\\3##+HF+՝b,wB^o5]w1mpD9j`}X)ȿ+9;tg1En/y= 6læ\LńJz0(0d%&CLJ>dC R+3dy`9o0vqh5Y[ao1=gr~ƹJhڹR.I]:}zm}nAֱ3n#㙰C 'vt$ >j ɫnYnˁV8U%`^`!]C FOE[8. fZEGvZf/(=ZmU8SCbXMrꥵ6ccV.3"nrYb/ ^mQOjtp:c5doXHIUm>ٽ׽pa+;..nʹ +ӹuhrgQD9ƫt'Ӫ<L.w% k DDZ]x0D/\{zmQqW )YObW4\GZekbS1UpM, +E ~o +r.N鍭1%j M{G.V'A0}tC?ߣ^ާnh6."2`pmE@KG܍HYqߴӇͨ1TaTq}OŰ((T kJ:4=Jd$jqx(Vv\Ԯh\]*\*;snnktR(I%2hW99]; }hh J +{NMK(oxzi֡voL޺mn|∸m\Yk )9_Ep@{$ +B'~A=~>>Tab0ʀ@!a^jJmD?О,mml#lץNxٝvʭٹQwOiȸwg8Yn9V8'kG5+f!%Ш8ItWjs4 !z$_j&+j|W8O]JAe?_K&3(aj^Y]Lu=cIZX{dVg՚XFpz&X +8Jx⣵DEgt]ҜsNr]һhs#k6u|E1@ʄ`%0B8TvhA\q\ʬăm)V5C@SH}Y[K)$^s}2x7I7+x| mgyܓ+3V:.̓ ՝#/ˡDzܗ쾊%tfG$rT?3b=P-Wʞ'\©cj? M\O&:"o5< +IOęJF=t";jY+8RrVx$U:ErVBS:1Y[UQKz*qf/h\][*Dlr3/)(>~vݴrZ/5f7a<`y\xqs ւL`}"}:HqNjԏrVGoiWgd|0O[OYfh!$vY!.v27qb`:#ndmmUَ#jլ!ȝӡJ][gVPi\wXp25m3_CVo߫<t1q v"C &8 K˽Q|W{U1Ԡ|}wꅨ{mT/ܭV^Z/]:Xmϡ\9BaG֘wFG1^I;j Th/EІD"[l.KM s/r"C}ۧW" ))қ=̜UOΨ-Y Nuȟ)$LdˮtpŪ$QD]V]B,,ʹLnC(d.N50ecyRT#;KXZ~C?^t_叟7,w[ +W/^,S\>qL#q>𞞉}=r3;Ja+ g +03TžSչ텦mX/9Dt0arۛL':dNlg6{1@ڸwJ:b0Ohb2R_&*äR(U{$|(2ב<Ѣj2&B3 $Cm%PyuF|Q>e@`\*#)u9 ,0{+/&e"ClJyzĩuO'`Z~°7u;"z[j+D-qNɬ8.ݺLn!T\7|*Ϥ@%YWy^(T7(D ͜kb' +f㩖my" D {^ +`;wڿզdM^&$_q;>t7?w85?W27n@n2aanfa~ܧ/|μ-1" 8q䤮nr^dԺ A-8& OWgZW_iy|Usl5p$ +EԜ׷~Z*^Q5H<ځ\*}dog ~iaqcHxZaazʑ؈iS{EHK;0u6-k~7{wx)t(uK=\gI?zʎI4=p‹G[|AA8Z'?l$3W U0vnR%% +^QmYMf‚IgrѕȠ,_`8Cqr )wėVQf;̸0ZȦ,qzv&e 2g.2v9"Z۟=IZa+K)QPL8‡KN<?Xj|_`xsW?qgef㇕b.=Ud[tcX2hovspF77-κ{VLY3Z53#ub2&iکɮ#\mR} iq9iÖ~@]+.HZjj1Feɽlrպc wdvg]{0{2t/Hz7H/' $P?Yd:ǿ17םIVȇus,߼uִJѥ2s7ݽgOo݊OW[[VUnʪ7!-@bcLnT>z$]k$d;)\gEog9jz(\~R j d핖;#$y>2ʋR`r*2$ e\5Z'3?ߛy4SaJ{Fو2:xݾ|.]_گ]7o_{4sr$8FI&Բ1{qz }lOS !ddӆ] mEJF̣,eTz0UNVPi#^=x'}|͡1!7S0(P>-zVvN̞!5vuEG:z$#xh ,U -WSr܎BPNNhShL-MYe%xZeAYq|:klRqୂ,aTYI[ jV%u@'p-M,ru1+77\}vn'O OtI{s>;OX3clCHSq1Zv#m\~BDtlzJL~O>_嶤EKr}fu +nzSI;oLb'vfU|ꭍ{{]YrLo=];q㎆SQ,GbU߭WΏ'ɺXef^<^י  9Ȝ5tS`Q u@Zo덜}+t4k'lEyJȜ"`"(f=1bkK9X[d8a'H +G״ՓqﮂU38*qcRCiwu?L-Z)LWWAqHIhV1AR j;BتV bq O~RWc!ͩ1YYewwB\VvDyjv~Ь[gOlvꌟ:ŹDLq0(xd|Pu5րG0k} )=5 2$twU$*QJF!luqoΥ((f^%~׶QZKOe_&щ++|O_2bv&eFsp^{Vrg+S;YNݧ{?E֢;17 Le`>>{gE"gJyT;y&+ o<4s@T(ȆQ@xHm$jJ̇Ё%ybFJd8U`Nctg2XŅDPzK ޫm *O<ܽVZZ=޵kWfn]b{[澛J{EQD8s*NMSxCӭ}-UxS{UWi(u%uϗiCX$RS{z XEHbРgK9̀t&6 8JQ0L9zAB5_?l\,Νe:v9xP%x؇ێf2TfG p52qvEۧN!0hd`J}-e tiGaђv>,q6keB'No{ HU@D0BܫV;ܔ:]VEH?#Bf3nQ/G&'W?Fp%3%aVxrĽV1HZ_ +Qcln|ki֖}HvnPzև:0?D(_/, 4??iЏN&.ڔ^Ova]NQ=h܇:B;oyu3T}dh^mhJ0Kqu'bԙ =#ubSKѦk*`Yi*F80c@_\*M }$r-7|Ϟ\C;PzoRb2 fAbPUڥڡyGmjҲL@֩uX_I`/VoӘOV$lM߱u,5?.៶k17az(D ]C`Jy7u}<ߙ3Cd|쐌!Myۻj@@&dLZ((bP, fE|'0 j +!.xFVrY!~"!`,U1H"3c 3/pj!< 8˟jķb[LXd^,OKTk9/(" $>Ŏj{Y"ܓ;n~C!s+rM.&"[µnwU~Дߨ,V jK9N#!Ͷ~PxV C1q)ZWUn-7z)In^_ i_a oT论3*U/Ǫ$%an06z $,BlLE5;zbj}jn3vmBn<}n*a%ǡ HS*y-rXs<q.S e:0Z{= ++Ju%] Hmedlw(.Kgs)Vt= VeX7$V"SB%Hn͗ /#e dU7=>`!ݞ9^q vƛWmRaO?|f}(ب;#Ri+cG rC%j;10*tXjFeG1}~f~~jClV 9`ʀ= z0uX {ډa]U3lLY`"aw >'_Π2M湞Х)oDŽ JY/ԕ$ΜS}gk%U ,"Y:n5ɖ7q,]Fꮰfa~遟ͯj|wz߯q5L~tt7ަ"xڳP8g$TW2>,Εh0%5<~cVc9&yQ2;al|5EM}Jweki|EZOA +ՙ%miyXXT3*Ư+] +X&=w>C`I}hC!p}=$ ec1H0+,~D|3-ȈNhhW* " Ulcp>`o88 \d~9sTe[Yw@4!ItOqw]j[ط؍Ldtd|K_Qm^[n{V3:*j3׶N][_/+Mdz?2^tZRVF&IƷcY,D6Ep] E5{Q4a$K+\ 6: l.zg{ +V!vXm>Ks2 ٳI.4gRJJG׆&+ɑs,D=,1#{ˌԆF@fjGQ HfTvb 2(}3 2 IP+~rpm˱lp+zz[3Htfj?'u%iMY0zf0OÞăACw=M)]҅' Q9&igC l[9,ۋ +8aʐXUw6*];@>Sdv\-Rio!|o{H}2e&f):%Lsg1*fVꊃJrEB9\St+e孬Tc$9C.)F:|I"ۓ/N?][ Zq߹ W|c1eG{BVej+M07]\@&n8]!:aF |y2^xKAsuR(et0T仔%{%2(VζlUsMh( }qU=.qvv MH _mp^#NXŜ1O*>mm7r{oWO$ݺ%q1=^"Kljxn6c2ט`KU6O@d>F.Uڏ.ی #XJQ'fB?#jƖMчGv}Sv,?5>V+L"4a(݂jH.֫9,\v컖lwL2Z`jϟ,n2cw6dg|UGpuQJ ϋJEr&H@TrkDV_1EeRPߣ>Bhfmsȼ^ :+F{yV-w [|{zg}kKwv/ܹ||\ܟ> utw mSPGzBR,J>~G@)L +]G@^TJٮ #Ԛ{M쇻oɌ_UnW+a0<]>!m$=$.EdE3 7K-u%NeڍבvK{]7}kg*?!9F:wS3yO={מxW?uzy\:ܝ79*6Dt#ΈZ. +O@2_vKRKRק Df!S&&'X<R+pq[] <[(j^t^l\|TE(A5a +)fGxB??GpFVGߗOEڃ =y8 7 J\^R<,yy$|Ǟ~0 ~$UIJ]UzOT)/24d0Ȁu7:ޖ@xpCJb&Sdnd;P?S8t8 +1kCŪuzƶ¥\el=u`ճ/-.jiwH])FiCZw3k%DƷӵP D>/n޿/_zĩSmK >wuD x&83++\Ԝ{KR*qr[~ٴ7&fR`!͈\+;k[X3!cD?8r.9İ^^ȳ*\JajHځVR.ņU]ړڳ |I/vJ{?/5{vy?O<\[ܹܸ}޽+W_ՙjt8.<FPil8Gڝv0>?+r@Ԅ[YEI9SK78E7NFh<}&K)T\7tG"._Oݕ]bPm>v52$aQfZX:6!cEM( BTeOMx6l@dicH62+o3>r!Q w e3|\2}%\h-D n!.bz-#W1bĔFlJԍm+Okxa= [O.7r}ɇ^{?Ê>1>G_|͝;G6{n7Պ@'c܀zc%OZ̩;ǡ68%Зh d/Y|{aa!\ Q ZiB`Fso=b<WX@"УЕ5m2a XOJeѸf+4aA1wMsQlC~7DUe  {.W1SXsҗ.^ԟ裯?Ozo^ԧK3 8P!.c&c<7RՎZ2{}zjSx.O,l`}MS/9c|Z]lAx`sMK;+AiZτ}U&ү[M2 /G"P7Ron垑^7VLXe,$9EAi;"SED15RՁ"عES2PO ٲ&D ;t-mN[y̿f+VF{l<+;7o^uԕ+p_5>6fV{zrQՃkjz:b{;7t^wT2,6頁 pr+'_Yaw I=!wtl_fyŦcv .2f6~ T:4yǫSP+YMYy\2C$zq,N (96dqQ_|gTFl5*m7=[[w8Gd?at)Ql{Gv)Gӂ?@GS!"Y=50QzCuw]UݸE|'MS9Aؚ48{: ww$F()s\=dR7,$0X>?GpB'1;A*uKKoe99ҫtв4)=eLKp>)kOzM8{xaυ巑X/:*Io _^ϭg_Xpt$v li P =ϬpoFUvZW'&|aoķW/W̞..n_+e2 }⻧{Gn;ޫNxn26x(#iyNbJe;nWًL@$Y`Dꗝh&f ]2_!t8]U:ch?FC2Bߒ7 IwŦʗΥssҎjYK;Kw!CIQu3k[']2t6a`Xp +.]V9KI6NIA==Byz[?W%=hKSbCR8t #7L=ZβV̍IlE|ͣd`S>|QO5OL6l8૯{v.}x3QT5=99ﱞ85-b}z(otݏu5{r}Ȟp>}Abu®*i*#,]*#\:W0S˃SV[>1 W)[fI`xչbObK+:9j䥉=$Şk\򛺇1S?/Ƀc'"kz4{[yZ4D?<#坝|ٓ'/]8SVYʅタ ]޾5ݷXNi_{m47w]`K^;/)]Ö2YH1ݚCpxߒ^g{~ƒa*pxӟ&xIg ]5ޖnxj݆"nlk6NZ3pd@.|N/[E +V0Iˢ1Uw-]s+ =O4$\&eߩjW1׻Y%G},,]N2蜛gm3>]p˞&"o O+eF)lY z>nd X[;`'kׅalΗ;Vg, +Ẓ6dggӄ-9 Sӎp +FK~MyK*?ÛWЇnK[sod +So૷ߩB߹}0.N&C=-ubݶ0aCR-Ea/e0b`f8(3g}tM"tCQFCvSK_ ʺf1aAᘦ(8еu4[DԚvO Z74 &cֵ37%&UO]45S$%HE&PNJ)s E + J9x)ۖl +i~pVrK+p:b4Xz^ytG Ly09| +fdD:3iJ,/NTH#!M +Жk?QHPnW-K+CGrNzb"\=ޯk{Q+3D?-cYŞv;xҷ| էc%.zy DtLON +s +Dz.FaJmV+T!@heeSq!"bOy)8aս0h͟cM iy_;?)&Eg J*|{io{cH;i!?$d! v-1LAՏP+ds2"B>%LyIE E=ɚ\5oJGfk5nܠr,*wʪOݾQPf7TRxy1t pЎfЇC+bkEzawr.=K8aeLu5QT QoEFy-Tk"GOBYVDtt~,LKL,HfwVxm+d;4I IG* u8$)#e1&Ff!lV1/]_$^)맕W%Ϝ޾thSqݾyxSu 5x+98Z:p3v"%H GVc*d3N:~@skZσhDŽf] *ySAM38i}Glӄx H7-RG*n;}Om@%M#&Z؄WK l X{9!3R[1%2g$Mޖ@Q buݺN/NmAgh^"OegՊ=Ћ3!CZmDa4S#snTmfEؑY;!&Qw"/r=lօXVe[mO E2̈́gT%3I sV[0 ra&? +5([(I˲!r{& .L4mTL,E3Ƒz_^]#`hNI5#X뒠FV{{g&@si^^XܱBjzufe;yXe/scrH>~WSZ_l߬mTZlJӆ mrUf8`]K7%F8Q[FIӃg, jPdĨ[誝1US6`K-No(B bZ~ةᚽ:4s9H6!p$$OX uH10dDm\jhYtCoN`ŅnQbgU˩CԚ~3ٍ-j>3mf*~L1m|PLBD>jxJngCr!f3CěҘnTMQQeI˅. Dƹ۠?X*¥X Kiܶl} Ø1Jv'W9O`+[Jm˙V/qMK]JJN<-P)5kh¹C1ྴ3RcN45vzS15.+mna<2 pD7{_c!ܾ2s'+3~LQ C"0 H$`PIb1GcyIA2>WK'[s ÁQFlŷ'$z1ưЌh({n'McfJ]͚c`ٿe}M‘53>dZ?9MNz7(w2j?SlWRʶq 7i06=(ǧ߯ͱr%?I]٣ h 2{;sbh^ +)<ɒlG}KgzЫm=8QD"kMyO`#D4Ņ݂bi&wgueI{ʃ`uu/|G7&gko֫/q棯W6V* —JrIM-^^!)'H(0 'Xjl_1mA6JHʇaS!OP#n/oyt8))j:,3FŸA)éqlGϠZNR*5UD% +"ZQ|KȰfc-lusGm] bmPͰ/cgTex5+sPrgp/ͷGUa<7[ל{/]y…9 S=܋/νɵg_ye{nwT>G8bGV28YV|4INOKIDvy8/n2| V"8ǩat:=<<[9 بGmmq,ͩSX3@d2'1sKM~L pSq+}2Iz+_%Aebto;^r7 ;Զ;Jg g7}wT%Gi2"~_ %\ÿ$D6#vg9,|퀸}V6j8$1ʻKj-Ǖ׶䇟/yi}?_k7Dz͛?/>~?|a߈ Qo;o؄uЍHNi黄,I¯$JƽD} ֵ\H ;?j`[SpW!Zxრ%;@_˴_7A~_rYx:^7-vS'Ҳʽ[,6Ϝ ^#;k$ +,5ACLcpcAвr*MA|)*3lZzdp1ap"jkx,ߍ}-i&cn:t +yDSCΤe%!S&M"֖8SUbʼnCfh/]FtX+AN <@!25+%2f/ 9MT*9nNJ;x${STɿo@cҚi.fpyl|?G>uq􈿀2aW-lE$r0EVb28NG},xgkt/VHqud_++OQ'ۊtvZ7ghjݟHxyZk~ SL&60*<('D)LҔz~_ +c3?,y#܌\ͼ.F+Y\\"3V;ZuU Tjg0V뫇!'3T#0G{T0G~'a=&Qs9fhw2Ɩ|[RS2o9?&pM!nMVޭIGI80LE ; ӜSqnϦ,({70<ƒ:UxU/EM8-զ=l&:$ G N[G/͘3,HfݱStRoj;_nTtz;٬MR g- 0S X]9Iۉ1/_$_ƌG0!MHOs5dR ]%Zu)5/OhO<5- Gm \ջ\"ޞݪjc np^< f&[\YZDz2P3&E!Z=~=t4>B["ھ$xhDhX1̹JȖ$]S9tĵQMF#ξmlMu3'*L`:h+bTҮ&Q]33! +_?o ݼɝMZ;>ZIbq;[ITgo WOD >K*j2`=i~31,w[)-48\ޑe;N.ZqUFV 8{ؚS6&rfcui1܈$h`e=ݻrɆ3"^"t59 "kx"~Ջ)ݳvIrVDuŁ㤾Fp |MiGooGݪrB>Ҝtr[S np b9(Rd)(Z!U,9j/UNM]Bjc^]BS'.\T3Hğ*W1.Ow\b*e\IVN~r%'5_GW7~|sqZ*u$ow7t7%}zv/sAB2QUMT r ͧ.Np>̯xkR8?Y ~;Xf;SIƚ+:W pWX <οGf>G !ayؑDn>M=)+>SF k6b(j_x;{&XJ5GC_gZ>bFyF\#$? 3f:_F0s\SL├X@~IG Ē.)AvG)}]ٙ_1597OBttHGx07#j lI-x]\q:Z_U5p~x$0%hOD#jHVK4EU"󰎈& +-?TY%"Yn$8k 넖 +{"|c[+ +uC^>@RN :Ο9 F-ۗP0]& i@ns`2ҟiUccۧՍ"-t?ݖwK`j!x5 3f$"6 X}sjxޕyՅOpլݲ|d1`cRil> ѹ*$Kk',i_ق@Bwj\mv:PvD٣ߖy cL\m5#0EE"2ui 1#4ӄOWtv{J:х˹%.u4ӟZv'2&*hB.µR$֔H ViS3++jZ~([G#ܘwٵismf(J I͉]%>Qws7]\EFhO5MIe7pڟ/>W7-899QtjvxvlVa~3EJsT$ڿH:y_ljaU'[ۚ.үfvf9_H5"+#N9)SP Q>RNPLZn@ TǽXι_̔&A@A0xivw$ " +pw&γ WF:^o9^tߝ#R_HZa^K )ʔxT#-d… rPBtA һ#ܬÑI*E63GB3FlMj8!1Ɩ#bέ +\ݼ+gi lA[͛.oѵˋqo=-T˵J!3q[Cy} sPu [JDܚ+ \ᖚ~6&!_=/YEiB\RL3j81iI5U+3d'`&1]Y~Ip}ĀsGd {]LF]Gg¯SqDk \FkG$ +۷;wF'Dgۨ=ew1R=G!ͷdyp&dhDJ5JY%ܡ4Q(̩;ܕMmVe Tmb:/I[fwMRᆵ^05fs|H:׮A;Wn+5n -Ь6 >p}Sⰰw槧ʔ^~m] +;A'tm(Dɡ,ݟ3߳ LǁݒeܫO^tdNjDceS|"2e:f29~Q;Jq=2\8.R+@FG>DٗǕ%J'o̟d(M*iV@+HU+F(n|,;1F` p^p}+C1ًv||2\d aZZN`(Y6=Q+$PؑnP3yZ͖RY̖c\;pfbġ rtkChY[osfZc7˅eCx8r pddH)*rSyAyjkaڱ6y[-j7f[9[S'йɥsztR\J5` lڏg0.X#c1:dZ?#0-ػFN?Dr i/`a'HsI$\TXOX[GD_Ŏ@;D 4h64"qnc7aQڈEv)&W 83]KM~% +\GYY ?;0X{ћ7Ʌ<|ի~d7Űt, c܀{069wwV[ʓ! ԙ8_44wBG%KhF2Zs' a`)TҠ ^Wک akxJ'6OmDUUubcV)-7 =BԲyJ 3!Ah M׈@L7w/8~IIv)D E.)oI6fSZT.kLQxS{].|eL d$HmYj5VԤ8|*v>6R diνz' {FJ:t*~z09*]@cH.2\̆7 3P _y(ezQMo1׍tCX1I455bcj:HAЫmAB:+[=8A喝`*e'G+-Ve›,^49=]'_ՒƽNu}~D &oK&`~"p/6֛$)RX:3HʉIl:~F$JLƖ$Lv[ ίV@|4:58uYj뭇,B7|̏ @O=f,Mb3 'b#=opűN +fe959/߻j5ҒOzXȊ23gf#G\xv\GQIfmw#%#YcDSpE + {%{+lF`yrg'y!S|#Ez|%oA/LQަZ5ÐXqeChf{FF)p~9ffz kyJi HqGz#b70#[P/^\{3wϜ\j}3#<ER$9gej9!ی%j^8`XpJ'Zy # XTvWB31'k66wQql{rs&p<:.8[\0Ōõf, oRdd )mp܌))J͟fu(ômȞv]|$F .b[QP~Ě泓ytMn)͞ݪg 76tVWЕMY]ݩrCʝfdPD&vA0!}a{Āzlh6&s,E9aY35QdFt30Z(QOemB9"I x08&7UzLd{6sBy{tIۢ~i0ڌ3O;Yڶ񌩥za ,ݶ/8 ooxyYI*}9Q*1䣲/64+RMJۃWw {=:$o,O IyVFuWK4m[(J,V\]=z3{>=f{ԇ|1@i/:KCW)^S &Ίxef݉fBg7^$GJOlշ{+/+(7]7}w^܄̢/曓h ~&wd`>ﭫLdcؕjPs⴪`l ) $WQ->/|4Oqb )jLt ik:$'4qڌџEvP>)\K 9*P(,Ovau?jI-QZoUݺ{t#ܡ9ɡM`P~fqc ARCBd7-1:Z^3gXE~!nq{yXv*KS`:xx7D5CۆC=kKE0+L7WL)8P#\vݑWU͏^[&(̕%E<3sebqSC880?>g+Ԝ_[Ⱦ*s AMwjVjhq+az>Wh^'@&5ldT9 i}Ӿe!3*tm yw岦z@2 r?nCqNTvq!,?z.xߞrUyQcg>VG돥{]N]Nxl3ta- -WScn#kԓ9CE,Y8'JEDa޳MhcibBL*Qe=khf+ y rsE]Bff?LWU@y'Cb@wX*QHNUZVƩ?_`me6~5?s/}ܓ>wL;WWc#~ߎ5lk4G*_59C-dt:ؽtsW墒%y&r/7uTlnk3XJ' 4⻲c&;b\RߤMxE3ruearMsܾ-r"^}M“/?y^,bC1 v`C# V@ 9j{qԞ7K[&fq!-2PGjP2"D!p BS9PGcӒ-g97ǜt6[>4Hp6ci3TE,YDEf}PN5qu[>.1u:`}eGOaQTGʳ[/|#ϾMmշz߇?058ة))w{_HAF4AaTZ(Wd:ݓ`ðB `-4k 3{ʥD:n>l|)& p=i'XO X˛pjɹHzNFWS5pڊ"0|16u%Oɳ ܋o%|Ng䳷Y o;+zQglƦ/+ F1XY˿I5F .ZLYfyk!듾||=`R~b4gy +gH4[ʍXU aw)V9 +:Qɻҗ6C}G19Ic\3u{@&h4$٪8B#o?2as3ФRoNuKGmꔜ Xa;o^Y9A7=x +GRUU_C|ΒNy +4#=-@ao +(4u;D°.lK`]C% 3 ᜧ+C{ 6aѕ6Y .rt.õ}Hޛ`P&>l¿##P?TqG|q[: i +U9>DUrY 73*; ©*DtNdG)0c@b&Or a3i!졍 %%2_sq?]]eSZ0uN|\&<`.~sP*z1LEѼYH$*̔zz'[,Zvv,Fe2[.^x7)6gǫ`Q]6|׋Mqˉ6!/q U,\2j,7kd+W2$?A  ԃRu&YHm-? e +tƸ%2֙'[`j-BKI֌G(Ik!|<-YUf:/ĐT*یiva/ExG(3]սgg>f\R$UTUU-Z-Gum6`ۘ&$!3@ G û7 Bロ*J-r[j묽Z5Mc">[9@5?%$30S}O1ɗ&Dfd?{KcI2D.$aEu,!aݣcn|/^"Q8Ssi DtŠ˲Rd,JS @T䷁22 |ƨq|А[^ u94 %^xM:΅!.y:ZcQ-KI0k4f}R< a hwxG%+6*ѽo{7fDH͙GL#~0viK15&9"6ɶ+N4V̲ 5Rwphْḻ`FJs3}Ÿ!a=ڹܴ/S>qj #fA"`Hw_}z" D;0\2[L`tZ<28)#a"^ i^ +WZ8 *?.TZiU]93#0%e ,vj̏(SBf/rvM[пҦoN3%İjwЇu & Ck(X!IH#tB_lKb Pww,/GQs,룛Ҭajc#P)Ye叙 (7"}zFnfֽdFAn'& ԈnvMbaNyRT$Zv+L.1/:Rn8GF~oU`d1(åqzsc))x@]Jɠʩ@"棜oU|3eܠNz [I{iSv5 0-_p5S93Yx^QHx!z,.GXl"D((\}Ff%Ҽp\qAXo 76gG%-IlCq>M񚖦u‡x%RE n|w_Lg]1S 9BqPK66Vfw4y2kaW%ǰ f dM֑Ӕ|~Sox7y&F\44G4Tj1h:ΊrCy}p>c'Lm14q:%vϋr:˗8zrRGp9Oog3[^}!O( eJZx q*QzI\7ʮm0e1 bac:,s̗,"' (Ody=iLښ1aMmGP~ _vh0=u}z69HJ9 jf5ʼnEe򪫑ۗ3Q:jǁ,MQ|椧YX(3 +}Ic]"ca2ў_(k.8 S ӧMw,N0(]WPljeƆN nvݾH3PIb/T3/R ,T1WRM 3]dq-b œE +Q 'qWD˭6rrY_Ds%c2JaX$`}t + .-_tiRfEKh7$ \cH{tQ/YOJS)Ue ʹ8 R$0ǜxf[N2 OEٱQşbGݤJ[tt1[ r"w5Rz(d%ChaGz0Ln.1#u{4=6N[[woҙ.RBՎuwno)Ͽ%;17 @㶎>ph} tV @"aM2SDs2R.ebWd "0gQ 4)އMG- Ës`O!-y.Uˇr.Be IDsܮs ^{V$qC)e$*9.D%-&V_j¬V7wnVؚo1RTo3ĖM{:@H4+mvh 3>o*hoTO槥t)n[b#aʜYUldDLJoIyʓ]m𸦈 KY`cP;HɱƯHpNNУ6M)MQuF#{l8.+J6]H0 .o=(3/̾Wʇ!lϸI$ZR,MBL@?NTH"-2o Fv"r[8ē,bd+ZV|3@bL*r a`F?H&P:͞/ _;΂!掙ƳG?`nYQ<eQ[I0刳0M2 )clw8Fv.4m)b#_w(NOf<.+H,C#8 1ZWE ù]=Æz,z 6LDžGx?KBM(Uua n]/f u]dyG9"z=ޘug"쫖a7ObO3{Y+c2%ffU&UiJXD1k,ʟgWS~ +}&!LH;W_ŀQyN-uNMIO=D9W(ԬZ,ޒnρyhktaRJ% :#}8{N0۩,!KӋi`U$dG(䚑TlxmΖm 6}|!xxTQK9ZgNss1BjTVCHR5_-:6?E)!HdV219 AJ2f"Z +fI>}gnڕ$HLNB5N™3!7:9܈0A0ӣ#3ч\`Z_P^,KƼTg>bRJHIX :g v*4SOKb8Z&YH_K@SfOlA[1 zd!G{4 ]oJ;K&vw'0r@7QrhvoJM;,_kF5$8&vxmR|x؆tcU}A<dAh: uǝײDJ&R:36XX+DQ$N_4$_Ij +~ƠAɤ\T4-_حGc͐|Pc KҨysTpK080vG<6'K3:_VyVfJ`L +!{utD qEeҡ~L@%LPRU bFɒL?7.,>DؗǶgq)q7KW%-uFv|FGgU[T8U9 /_zF+@G^k[^U))E =@py)Cݮ$W oaեy-,GOjpV50  9M}CrmvD&BR@'We0k&>4lgb{*QZ2=;/RW՞c(BY*tZsnl޺I!^N)L @R2 h>2Jd nbLy)6ه6IdǙoVWXJ'T \\VP}*Tr0x PnHLZ+d6rWi +͙aPu#Ґnio/y0ow4, uN;;cTPfkH C0d7;dJ{I}}}!8ʯ2#)8Eг5 [$ibI>t [|;' K1dėbT?f%]L5=lťfqlAٴCETp|YY[ k:>/M +X{KxDVn/^kܚ<}zfB.wWŽ[۷rԠo֬ndA٢0B.ס5/!'ق )&USCAq>kQbL- wP(*@L;N|gtfakQM M&{Sϔgux:U>W+yd\,c&C7CR\uRim_8}Tn<[2Dk⡮g$i:%;GM/n1vquk.߮0ͧXTǰ5etLORK_k#z)?LQJ\ :#7}u9 ANB6[OsW]. FxL[+¤pB2 ͫ&JW'7o_<[KS+ܥ%\|ҩXdNkC:ݟlG}KhrO] H Ll(C+1r^A` Pg$N\*M>x0ljN;FquՖUTDj8< ӵ?tS$~Y@g’ʔD1tW=WI|ݏN1CjM]C?`͛epGxLxE [N7_(սsu,g1qؕ+c 3Wu9Ä#"\n=ΕA6GGl_8|kФ ?~$#BXvVd!"*L٘Ŀ>lOhdf/<,:NC=yT._o&!kzXkW/fC5nrwO +%vx崘Rvs.#5n7jD4>8;]IKxA#ԇxC|3]zw?Dz'>rڵ zBΟXCa FQw"_=4oy>r`^!':=a&g~UkdMݴ :3ZϔsaQPӓ,uD];0)rO4K^ )o!sE=d-N5BDNavv,AJ)R0\P_YlS ,E4HBىyiVKfU,V'؊?ϳ<_w:q}?:kGwsW>g0ZڻXJUf'^'w^{ҏywv' i~ +H#W?8w:9~~V2س'qicfb>'N-ӥ6}Q@&br8;uJ˖Dm&i<2aU9R2^nM:}!)fɷ@$SoOF̞- +Oq!`N=Tw/Z?f<7/nn>zm+7_e qij'+6gs ;Gk^'ȩ쓾.T+l|\o!':b6:>o!|w[2ǰ5a3غw EFp~g6zX:%n;Z\5'PdZ +fM'gU>Y~YNbi% e*Ǚ6x-D d,a7!ƞrE7W;S;siֽh^8Z`p<7?ivVtܹ|lyG +2"JD ;~\60>^p:[ҙPr`|IN&y dU:RY CqT 9EILl=T%ȩtl#Bv qgY형Al*42IV!.TRyzo,ߔ& ~cy ?c3ډɭfsfݸ[Y\|ޝ[^9K/⋯}?W>)˯|kFlAq(T9rpPPW 3?h9GZs ֐( }eԁ賭-dj,囒坱F,ʿ u`qMs̄ $=t-T-` + IJO[WJ&^ +vLr;82 z6kҜK:KK,JQG!ci"yMELuY<PeEÊ)* 826YѢ(* 2T 8aONHR"V%y;T`64=g3 %D qԼn4e)tF4k" j0;UhԐY01I%u/ S ,&Jr̈́R/&0)JItzۖ"\>&DŘ7BDT<ɅH\Hg~G˷Y{^bX]paJN8f5:a5}* OW+U]٘5HCv(Ӯ*xh-GW Q &,c"H.NEEٞ#9aLqbS/at_@kM59j)!ƏcՎ.b zK[b#DX~}mڥͳb m^(/l i-zCa :R_puգ96fU[e-` +5L1ĔmT25Qjr.Q&Tr(c\YvY;RR;ؚEd&Jn@P+V sL˕ ̼0v"6~Yfꗄ'!Jn?RIȟ//ǟ}d_7l}k}|F/gk$8ԭ1G5:Qe9B._ |M/2d̄s 8LI@q.] @Q+A7®!)v+p RYj:'TOu{.%v +6 &R1>+ɺZaPb1ebgB4OD?ωӼwCaޒ Ԥb+A=njVCx7hEgB֮U*˓מ~zO޼@9Q||n#֣7f6#E\y^^y̼C׌װZ'&L4/' eGw8;20Her2-1)#%2[.3[qӇR0c욙,6VTݠj@,E c29}#;$,>IexEi#0U9~LDFΰ<;̔aDžXԣ||:%upfYMlfn4.&m[Cۦ mt>T}Iؤ L~Ly[>TR6uT됯ld-w- D0kNFϵgZ#ư&mal3kJsSVP.VdB1")KQ kA^ %H" CdnvOIi`(3ir@S<Ü1330L d1SqTֽ6o$'ӈvX0kжzdR J5[Nb"3[V bn!YBh+JC^>ފW1y^BN /A]z{P`n1YX`l2cҜCԐI.锥ԃ0@kBQz5X:&Zw +)OS+HݰU" +mS-*b\x㉙xù ?IRsGQU^]}Pl }F|% 1PV 4ÛKKuLefBhI=Ͽ0ѫ3]4^8\7TL3ח¥#=͇['2HA{|^11f!EYV YiHAgxl} XA2U>O !{ϛX{MGF#D;9&Fyq**1cI!ϗ3V"Q>z|~fozXkȗp1 sD_ ZrfE*fyQTks: u8THax/+UmBZp[ȩ,{ކuǑY0'Jߊ?}"|d䥷u9;(5(ݝTkj;:{8-+=Pzo'`ejFبo~驨,P2/lȕJL)R\ !h݇.A48VIɰ$da +u\5a8{0V3_˿pI6$!a3=MaI8!no6xMy[of!U$Z(_<]$tmHw>>IsCe iLj-Ba(e,s(.EZUb9'Y]AW<Dz_ TS rM@T`QD0Er>+mQ 3-%ĐdwtA'*jվDj~~٦`6Y9.g?}Ec!t۶WgtzZ(,.^rGlpV#PQ(z79jo9zQDC[J"'|r 1 TE['ޖ8!j:Nŏ&.|r~KVĢ=*u*PjvISDw{&N_ҋ"_YPlȧq<[p]]\jOhGtMJ<]b'';d v{?Έ(S#d6>pac104TL|(> gidy,1Wrs7B >D4m!YRך.5J":44m';;ܯE>-` +i{ -P٠Pl[C%ǿUÒbN}Sg z3z̑/f2j(X̲*Ks6gxc7*,L( 2z +@FT X<$Cs# yS0ʇ#bG>ۄ63>i#|a%'Ϟ>}!Ђ_ f>Z:̙%P%+Ms32kJtbDaWlehx}GOWJp.0NN:|;ĭ2Au8XԹ[u-Aa@x8Iݔgu5MxR5@" 3iqǭ)qA7mJRԄ5!µt샗fu7=Ek=ر }H`}d"L@"!2w(y+cgE).%鲈h%Y#9LhXv'\,V/kg Uq7"${)|#?qfI;dyb/erSnriNJm՝c~̶9(:{'t:s$9[vB s"]TQʑ _l|TrցtYa뷓kL@2Q.Ol |JZ͉쟠IJ0%̧jf{x8yhHX3Y!\eHvZrF8iH0 kއD3;Sm(]g'{_FDU Hkzc'YWI{N/֋Tm)0x\*e1ŢWh1"$mLLiB + lYtcq4G a 龝>Zs'ȫ d]("O[Jp)ӎ"J!˞\Ti9< Fr^r|zs!m'=;.)ncLG|$"\9>T[/זkz:(&0}鋯=Q[Y7ȡ=x I bO`/{p<)zٍ[ƼaҐ<`,ae:>H:TD&`sڡjSϢhRL3@bJyPaahv >GU+;Q8n?GjP`甮/ k¹[NN֣PHx]9`LYq)IsL|;6|)I4CxRyFm]gxq#pFĤLGDjF{;Tnf'3ÌVhcM?@.L̀A+:!C0t d1}EOe`߳q_31Τ|Jf-𧼒_NNN + +i~yPo g#ԝXQ\׼U6l2,5&X[u*3KWx*payH@2v Mr4ʹV: nB[TD7?KI_ xgrK%ɤ߅wml\u:Ricn4%ݻz{=Xm}!Z_Fh>b*U,&Q03|8M$WkZ%($iԜ1KI \K$G4xD&xφk؎;%)9TL9'u=e<9-OL*s" +ůM rcH`C[D),MLl:m;n?PpPQi `g(~x|2~I +Ic2R*)gtOfAR\ϓ䲔CIuDtf@Tvd* K)&%۝wD-аJ9J5S<$eES%~, +!co3\(X&׸<'ڥ Nͅv{ 3[[vU|4Wp=*Ё>i{0}xzuH)Gxp %ɁQ_rBAL]"yH@5v "`9ZP|\q"+icGNHIGkRP^hde)|X>[k=;1Lu'ӾB"]ߙre6WlH<\ܷ#D39"S\~eɚÒl1ȍX9llA@i(aB`޲d+`,VwPf uŬ76>?Sf?[yO+bzmd>Y_KkSg]G}glphx?Lc/S;㾤ϐ}E"\+J5`CVSGФF9!;:i3혏qw *Hʆ !%I^;>l/^x^:*;S9*yK} "Q#Ⳛga}ueV02 Uh[5B⦑Uuk%CTv`,.K!bBޔ.c K|~Z *s%Yǂ\FONfZ8r@4݌ EWLR&. +WZz]ׯݽvZgqͭǎ]qʵH#۷Í&#V/ё9=X2$}2!X o]6t,9rsFc^y_)~2A̽k&3n1$*C>{Zl43otU,8X)IMWT-+?`"vX2b`Mz=^W~Έq&g9zFDޕ/\Z^mX_^΋/K{b^ڻX[k\ޓZSA[{ mg_zLf<(vTڣVAˉ? SzB_.qb5 8OqR u\FL%2`w 5왩)E.S[Zb}T ;]}k]>kk&G +h⺆Ì}XOph&埢j ΰȼ(+//+v,J'e)E=#0$DHC4#xu@t汵qY + -6g{{{Ϩ-CY%?TD1D5# +@).Vv&"afΔ+A7P<|V%qz:?L.pԱ9l]P+A+͵< S4+`"bNNn;, >q[uUEZ4z["1 ' UUTSD 0omI=n`~-v0l9J)SR💕(6 _B 0z !k`:k,`k0i !{a)sϡ:@d_r8 +/ìZ PlcOc$>s9Qz}PUijBɊ1}"Id`= vgXw^6T!QlvMvLҩN9+Jʼn\!^8rNZF0bwpD|.ԠePaU4@Ҷ6 \_1oR).0izt:ٶNT?< +lPgVr@iQ( !Hpl=5"EnZ[=AsBӢsQYF00kej25Nlz攲N;3-)4۝] Ш_:_>5gfSl7DX@KPQIbhu.T'|ήg_RUh`fD|x. 9y.S**VF# f +;2W8m5wX@wxV9|MfIמVz<z.Wccg* |)?Z.(NF|߁ | JsEs7LWPB 9*-bU +u +~zGHEC9<\泳6G8+:WD"҂۪R%<hג^w)Ќ&44UWiS88j!>6`Vy(EKGP>A1X`́,By6K GHR-NR)/[>_F9W[$:R:*5V7xFhO7LYk+7`~XHkNmlTBNXt;TL+ґ?n%mb*JvBR '/&y g` 6M OX$.3x[hRJI98d8ee[ك2T7ÐK=D /Xh7-Iov&?*794YX7ZIBi *7 m8⮑k,PK˂kC}B˒DŔG~:q=b`rݘkgXxRNy#2N]%1`hټ2Xm,&۝TJ!av2T-9sŊ}nh]\?5 J߼p.dE^LU[Khwj̔Ȋ_[SfـDZҍ0jjӮLbYV`\e?A64,<%7Xi[&*4m%l ؒn  V% g+ >i8vp .[-8,omyƆwp%bw(9ZۆixIVWlOR7w;[z{ +0.3pzܶjxxSw{]Kd&Vm4m⶙l3w^ѮS?<ߚ՚[2<$+kOmz'$X0x8+*?[PFUT:ɊdTT^fT\Les"`ZjDEQۉzyÊbh /؜P+7]F>e\lXngI-`9]F.a]j ƽl3v5mojZ;PԴ P~E?``l2.;mɢE/kO($⮱QU1;vqc].S1oGu%b펞!0鈘45 iy oE0 +J[j(Dä^HX5D빯Rep^&xM0#5i[ъrG$~]'aZbf1ꪰG3nzJ9ȒZt<%t]t+--M I5Hނ9\55 h)Gpt.4ø GN.-:+Bpa%ۮ V?p̺V" +w\V$JnuI0!E+*x^6uSݫ6Wޮφ[?t z([SS]]\<|P]YIIPGwvr2Ep:t@!A#-7Y3 +azF}s3fiJ~#ʂm:XW wux +Gxf"uuR  u^j),@uuh MzXsZn&w + +L褄2iUW{/o<"Pev[Ȗ$Ã[cxHSSӰðSd@xfl)TpsgxMY\N 6KZ3w̾!IgiR Taؚ^n5"$kXɩ`Pe0_ u͎FU;qb*C=ۂdX,\U#=#(8,[AlyH̙Da OꑑA+K;=qEWMXB|q EІPpy~$ N +΅‚esm()XS [{NwfEUJa> z1JK!b(eZmx%ZQyZHAMq.b%V1Lɕq:7.`*+p{Eh筘RF4 +u<3GF,vl;ؤU56ʁp8-W/Y"VOKy3v[EL;e왫7o+8pQ8YdR6ur{{EZx?ʕO8aI~LqT-`WI?MHr +[NM1VSss~vxz7q +$lē,nҏ P{$X*X6n\RZf4ut;}ɒy>{y8&gS㦾U|m8(9j]&P/U@)#(}"/v c4#aI+6d;e32H[`s `xTZFK0ADGC`+!<#0u%0/ U&JDe$Re.,"eكa#S@y$f%KȥA1K#VVBpsA8_kO$b-aqKm({bl,;hg_YsoTvKr9,=p!pv$KhĕF)ɧ$Y0q`٘"`4F ֟M^kr'Oa*V5kP/ Y/+.{Xf`F|[蒙%hR'%zR"iӵXZnYG{r fC]pច #ŋ-A$͘8XZUg |`3#ؿDy:Ͱ)Z;%rVwݗC_6W9Ӫ.n|yד ߱k?ŜŠa׮OïJ_%4'c.4K0ifz4WMvl;ak&P h{ջryΝ u`YyY9Gn4zy`tgȂv˫׭+RΤ(c\m$ޗv9oW^uQaFS +h̎_됃eц@ mc'\֙^AI,LVo/t"敕X]"nucD$4rKU=+*N*>EVYBՔl7vL&oy +3g  +#Y0_@TGoڏfѕn08gm5-^d׬҆UTlٳ}^-Kws eYgunLnG4EH~'㲖H7^{sO2댝>՜Nj+v k5fz`N/jY Q]wfwWm#pu>9 ac 8s` +K⍭SO *\tB6NO0 oW%_ӽUxeor&qjnމvUVֶVeg:`yk +C&4Z] t\ _^ ~gv։UbykŇ/[&.xޡ۶ +ǕՉuӚt[bnײuWt!=Mu`uR\0hEuy'% *qY%4&+N+Is`"EY9DeRvH{.:9F`0bDWݍ$A$=A3h9Ǖ: +#pu~X܌GIX/ ԬfX{'y;4A^ +8>V&,eSA[h\G7ˆIq'7.w"Xں"`,1Raio3&9d"lapB,ef#5Wpve ^} Y1O?^И sp@ab1V1뼋xy[i %0Aɱm(58 緇8GK2IVyF9X@ O6<׏\k5nqi}s昣8C#zMeۺWlKݾ %ں.R6ArmhK|V%5*mBcauGKKKW>\J>eZlVN,2R/eIYCˏ~/Tzpjϟv}ݺlRAgjd=smHꌩE&m;ɶLG7+ ^bή6yZ2+_7 Jjb˂h]V`0Y6N(}tKJ8$VWhECg2\H 3=ex`v!bnAxX"UqVָȒ}OQ<8Mha6&VLm8eW-h J0Ӂ`HFFT8xƃ*N5ETF=etJvy;6ה{]Y(7hKoVbfkGGַeul|c2p-1ӎj3z}zob}m~;--8q@<,eTwݦ`rh_1ݘn|iC Y,hC +R"<>X!䦬v̮`4; FS^w _iMK6oL6GI1[B%Ɔy(ݹÆ]7w;# Uæ+&Ml+(M7JЄ!Z㼵E+ Zv&WjzUX̶U(r_$%3$dž҄PyvalVB!Bj%VVV㲘]%d N: -"2Tk G,#_ v@kΈM> )xϨ7?M[RSUk4!(CPrzLSP +@59@˫/c u{f> @=~҄ p$  +1'^7T +w,{XOwx6$^՝GڡYCiJI< [XߜmxM7zf6>1:f|r[\[c 4Iݙw5;&wVx +^E#@g$>N'۳Bs^hz{ +肇5E𺽸!K^Hs\֚\Ӊ>wx%7Wguw=}nwjW4\KPwQ^-^aGn]hwcٹwݒ[_#7?ܛݾ<{_}PsǙRj7O4ud[5j~ ?w,wy'{/}ĹcF##^}?u^=Gd|=d??>y蟟<'̞xp?ݜ'g0_wjݿ{*/`3Fp*猈]`O<,("kr0bS:eG|>{݉d>UJdJ8nɏs{a\[yW~Si|(SR59JN&WydV9Mnd>QuW/t IΌ'ND-鵶g-u8N-ݦbobt`ͦnkVʔI|T\/漑໙ͽhD "Jnպg,rj!ђ M,} e~V+_7/8kl魽d:yQ1m`ggQݦ6qtf^Cm%;3O;zvnל}Cqz^$:בޞ+}vͅ#Ww%\1僺Tdx&wWnNﳰٻtW]zիu_Pk.ڗt_0בKwS<}d*܍ i\ `RmA~n`_ީu&Ǒ,ÿs}suݯܹ" Rn f֥7{e[軓>;%w%y$cd{/2;ܝكue.Cw7da6{ߣ';ǟ=ɒD?۬yp?y=3`3ݹynT+؆{Wmy~sB{1~<;/Wx~Wg{}_d翯Xo +{uD`2M?ܞ޻g$-?IWrq{4zGWe} >E~ ;wZ&yԨ獘@~FN|d*9e@cgj=71ƹ7;{tۛxWe'x_aJKt5TY.[2[i8D+5֓sMmx_3fDno]ru/v*3׎{~և?.]#F1v֜{Uz{4ڻ"~=F^΅E.~4Kz#^?$.{(<3w]rPUK>פz /5>t>͡u_x 7ݐc÷$⁉qÝK2ipUFJr_nܺ(?86okWn?|͑ޝ}w̾y:6'&wS:tqij ir*tz@r?yrbC$( ÷?]G>c<^yb4O499=y@ٝܧ/‘LTraǽX8ė'?dJZQ8cScjy\:_/;J0Si* ?k2M*;MaɵԵꁓO'Z+5UYxkb]MG`_s!730Ͱ<61L/צvD;izCwѮwN] +~'sy&F.oEL&@\ˌܥs sˁ3+v+]"?WNN4Ƽltӓ Vg['] G}M0=Ļ/e Om)+ۓ掣l|mU~8ߟJv͏ ێLs;WMߵi?^,LLk+j@skj?yk;qp?{*1ӉgÁV&mM` XoC%gYzjG_U8g'Ox 5RlӓgVyWOnLQQ@L?&ӔTLE Z:9<=U4rũv@ִ'Ӕz0u4M1cd2M-Ϗ;N.L욟YO"P +ͬ+M&){L?sLߐC|0wEMיL'%wږvвMݪN_T5%OMu7L&i*cPjw'4;×ǚ'b|.D|htf(Fg_V]NrKi\;)FIO +s]n0]Zf3N.4vDsEEv $z;?|=[_X/7X_zE4N>wtje(/߫T4_aKkj>X|߀0OQݽ =9+<vs4N{k~Н"~Om~ûO7˩=ZC{D?g À +K8~u0Ͽq)n/oދoKCB; _;Wo,׺S{<нq4oyij81b2L&dG4_|/T8>Q }P2=/ +ɕS&nj0Y==杩53"ܗHh`q,yzWeT O[}|-}r9d2LSӊg'Ϊk*d2Mk) Gs!S6l@dJe&`9d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&d2L&ԀuA|B,$@AH4Cdu"G<Tx^|scǤ"I0}scI^[m +YXh*ȶ1:(l2ũCt=1L'y +ED2SZeid:5c( 6ǂߍ>|Lh+W g,X =lqo@8rgHcaBܿPh=FREz 1!Wo8_Gi i!F+c)%8׊.d,#OQ0i"s}_׉t, +-1=Mdˉ{,҅=]8#f3hΡgy]m$ҝ]9Dm1'|)B1'9Ӵ"UJbT6ݘgLThLVK=Ic<>=Ud~AC݂(' σG?%j#1}KG|*u'7'&9Kuսc^s)BZ Ŋ$kgZoϖG#SSϚOu_^7YGu"|KbG}lm.5}S_Z ^6jb"ϓZ&JZ~bEdG~rsS9⯄t-,ZHd93.Uȧ +h9GNO,^?cِ5h3{x]eH$!&Q=&"wٝNaĄ\(*iy.bOV̿g/6X֤LXji(u +=saIߔ'*CLd ;^]R1ia3$>铌^b[>Gƚo9Yn+HRDfz$l{ +I]SbsŽ';YRغR#pbbk5fLL=ur1]Ȝ'1iO {`geKL6yt[$+RP4]k 7&=սJG'1Qc+Z/zʡQ_.mMGX-X]txNF-5 5>Q#{:ȧ>ʌ5rw5ѥY2 hOv ŌӳtDydys33&/X6T`~lN>Sdj4ÌbDʳkX|ixckV{4;'<ӕ%=[{U }w=-qd@bjK:[es}VҥL| w"xOȷߌB"J]&+⯡ʰdKwB6Ih5L10>"癜}#۵3NY[sv38"Ddׂ0c|b> +stream +xVkdEg썃zBAºx Q&a1}&\1}ORC%SrsdovzmmGp;cF`ݐR^UZ]:RKڏ[ 8`]3Als#qC=/,zH"tb=E)CU +9-(g#R"4T=s!' u HI[9L;>j}ܷ)7UMMʯVG SiSaHK [9I#ns'9""w'v9_}iwekvt+H!Qx1iT:0Wec­UO(E0 +]=5uj]> endobj 680 0 obj <> endobj 689 0 obj <> +stream +x]n@ D +Ij^K-? K@ȂzcqWHu[q~{|1t;u[6"ʿ4M}Ԏq{kg,ԶG'ˣTkHL*Ր6Րm!۾RC2PCRXTCR^jHv!)nR5$evjH2.5$gV…-X߬`UfZj^܂U[`e1X/wY*y{7{sJ +V%ofH*y7V +V ^Z*ycDFWX}627">#C|#BvC|#B}67f6#Ōx3'#Efyߜ7EfN"/JȜ8_N|gdɄ$z.K]z,Q7}G\=oԺ۹v?A?i. +endstream endobj 688 0 obj <> endobj 690 0 obj <> +stream +xļy|T8~ιzg&$d%!! &H$ B "ᆸ .TKՂ]^ik[j5j"Jf~Ϲ3 }?7?s9LF:Ġ)%SH@vܫfڏC?5w?!l~W=zGHrŕC'} ;pj ̺ż ZqM~W+\:wv~PxG%WKȢK(?N'bB]M +sH-gpp!?t +Uԋ% ؁4 Ȏ8F1$ YCQn4=Bh2Vt7ځ/nD p.,4 ~Bh+ڎ#j,? /G3Ѓ ]<_h =G/6|}A˰q) sT/E?~IWHB88]dۇ>\ô!={n&k6³݌>>ϾƞkrtJ ^4\g:=f`x4 -~$މQ8>r!G/gڙǘ {oyM>O!?,S߂ڀ.mAG{wXKp<%›)& "ZoԒ d&|IN3jFdZk̯\ +s/r(N(#{8r s/* sh hJ +p00pnA=PtP$A9L[X{%P F |__OLVrW.4FCʏyV_~܋/ed Γ,<+d.?6 +.GHy"6uы{t7>>໵(qlrd iQ8J(<5)Sxb<'Ngoq59֍>C }0h{hy'έ`nƧH+.k)T~tգz8,G`׊ߣh3:XQy#ym6AǙIpA?yp5tZ{ +fXQ=gv|`;AIm\@ē +X|Sr/8|;]]qN7 s+-s^}E!I<p72VX8aWeԆ]t`  r&t`C~^A@r s<3M/G;A;ތrCqX +ճ= k}#/ 7v\eC-{&C `)ۙ_Pѧ> =Ϙ|=Yȼm` U +<)&w<.i Vbe/úhYoW32߰ҘӤMjөdEyY"^+Fb(۬(:F +eFeؾ`oƕӶ8:f7 d@H)B 5:b gLbO`pXw-r]`.t8q_cp:a=u6O]^5P@m.f,Wcx,j%w :vA&1`l "q̠!!66A|B4Û +hN_B{x݃zc>h_sc&7uo8wlp, M;v;yOגؾMcw'^=݃x=2@>UoQ`P%lZqmDf\.@8ru6M-ngvgmpS +8)/# ݣ7+Zݹyg Nk/9j0~>H Em@SXcܮ)/[%B +@g%4v4ǝAR23H3#tdݙ{b|A;ĶċĉSgt:6q;qyxٱbm͸IF܌< +L9,0mtk)d<+;(+=`E7*2G%o7>oyM ,flڤ>ol,hMƊ64%;P4?x{p= (VmSHft1p۴ oLϞ0u $ɽNWBQVs}>fIO((*H+?7F3,uX@!yZmZ YO9, :%aA9K{LW "JhbHMcd;:?k55)@i)ZfT ~C:H o4 #I)sMZBP,) +ŴN@a4dwhZZGK^ĚԪb\ +gDLWZޡUc +EQikH~H!}I7$-XEB iVOZݬ#` +0 +A} +}P ,XHJIJ &a:2C +JS@I V}~[A1cBe(^U"5$"[%_5H}*1Ci/szHݘ!9% +̿Q$=0$2ߢΔW1_ur,%H!N׌(_IPV WHD~~Λy J`FHA)WgJ8:\\00ӕ]1e먀|@"cT"beːM/MF][\efse Mf֘Z ԟͥotאX0 ͂xאސ2bfqdlXC/(VXCKB+4]ճL?3g +39s>5 'ՏJUb&˸)WfTjRJeD݉H2!=>%?mYW9IH &˙D)iAH,8)q +¹ZxZmk7@0UfHB:{ 评;A AZiÐDGrO9@WB O @2XGd4 +EkZYˮ +kT)KIhVAdu}~:ST]*FPT$?QJC!ҿ[nbib#אtO }is毛#t~9RIx3f8[b2k gL ۧ׬0IӥaM@Chvh55G5ܠץS+)(v(~eR٢7mB"h[ " ]rM 0n[ Q8!mH"hA_?[ ; Ka"aa7a|4|e>y\!5aF3C0, $%!oTn)yrl*)Og# +_Őӕj1H@bm!V0ٖi2 Ũ' `ERݐcr- y\-ζ!?.!qYr!% jzHl6pLFޔ%3 M,ٛ P  -Z̈́WrS9LK iDݿEE3UM&0t#_"I}ֽ==F!J/!C!s!ݽ!̐njH7)D/erӀ݀'p`Sua9*5ujZwnR"_t:og\`3' +;y!L2(̙{*b{a=RÚBgAe ,e"?d{>3ũj(Kh>~Gaz7⿢(ylfn* 8,cP<g2JkģP.`)3?E}&8uأ J)}^aXHğ f~)(JXxWje)` /ϨFQ}9/'q3T% ]:}=s34 +ebY''[Y{xL>SF ++:7ǽeE1z#aBx+yώ𣏕W|Y}E53L/?fy` ca0B`)x+mC׽DuIʗ7(()ǀ)QFAOiMy-y^+V\ \; ++8 +Pi[_H`D[v78CN,GDᆉ{SξMv5 +[9,{G!t|shfpя.?Z~+ު +^X~5N`i EC>4,VȈO_4%^0x|Iw< tW' $؃ Lk^_W( /Ǿ }#'^'Kp_ THddSHjpʠ1h@=,:`8 +6[eb,(q׋5V2 wy& |J\CitHHl +؀݄eK8%Ւ\Vݴ֍ݴO8M]G$%ohzRJ\ ;} \WwKD;<$JzMãVb:;#:焉/Q@bbΑeFF\aTc5r};*N6m* oTU:O{b,`f(PR*VfSuu5%ђ(("GʼvZ7kwNQ0Xl:(hZ6~oqm;\Kg5kZuhz'}c{,䤍&V;4# z/?5.mj{x\UC} s=/&%6H OSHB7N2[uβoAx*s[pIuN$KCxJʕa0nK/U}UE*x A/",FDhZײ +b# +p; f1'JD3栨2>8Ȃz,jK j 5Yi/~nDx[zRZS]W[NrmTVeņ{.`9}t+rꨳ>ጸ,3 ;r{=۞|Co +8=#_Ϲ2P5 `,U旐 ?/4KTI0{GDdOCBIo+T]F0`ӡĎ?- 3MH/5-oOoA% xִ5XN%ml6|*oeHl:e` |Bx2z3`*=$c@ɑe:*l^!s 5HhYW-eclaO `j5TS-Jf fLGmm]:'.>=Rі+0/\mE\eu}ό_@ES13 @G$`7,HN=diYSi 4B +j ^1HރȅxxZƫ +%>IϹtȒ%9A|?`>_͠ JRRJ`vW}T=e<8-qcCnBp"!NæpM39[e(2]āni;D}/ S$^&`MO̮O~!RѪzƿb?|m-:ƘA,Q"4,) [FYtKMIc?Ĩ`b%I%e@Eȩ/hlvl%ԩ&`H  Pi_.hL[\w]n8g7<#tE&* +R;1cXzzx~pV{X.a +O ($@ׄXfLU`h#֕%7GZɒ<:D([%]]a!89N9L2 $p0T$ #1C%*K\n@N آPE!KeƢ/I ҋ$_N!:iHd`=EMvJ;'zp *Yz"KgV/דk-{n+۾5Q5{tZnR.Aͯ_e1fGtf5Y, o[i#j[׎3a[VBSE/_s?B:l1CWЅ>fCUȒw^4.⢂PBX39kyz )GƸQQ& +SDCs蚃6砠2tư&oD`K%%x] )76(Pʼ֊e1˯ͪ?{s5qm1n#|*_ȒMҦ\:)lY^# jA*'G<: VcĨWR{5ȫ "FhJųHȒw%ʥݢSo໩⌚&0%1Bye;m S0pB)/>}Ѩht5xY E8x,7" )hYQk1whDWG\g8ܮ{(pgQs$]X [q mueSϰ= +ze|T@-Z\.ތVK9a58"U!duk%@G,aե,L(28*ιYFs-; kHb ø GʸU)~ +(۪iʶ NPHB^{aMnؠHl__^hڠx=`]-J65Ar&EmBfܼ߼p}|Be :K'9r[OW=~Wvd{unꨙ=n#=v񗭭_[e>Kn5b j*z[˶]x%ۇJJE5pHg9'qR)7]q#b ;K +IY֋PAϗ+2#1vy\^Dzq 98ZH럃]&s= +<ISJjZ/nrKtonx?㎤3I/xɵrOWar[}\RjK4ĝڃ4Wv:ÒdVGJxWjV`GDqύ.CٳۋQB6{dٹ7 0 S|aJ *>/( D1kj{k UٌV pBA((IP$r`1A,zczA0l p t'I00:*`ö&$ +I ""DQ)=[QABIsbgGH4h0YE ޯ,nx`{ʏTp=ǻ+J8>%W +^KH0TVQx*"%\aQWG!@;1tP/!%3bv(8[jJŶ{*HE=='F0LDcLMTAH(j(eHʊ$:4O,IpIE T~QNeʆPO٭eTȺ2]{ :;XHPJ-]l16ڭ#S.ks{ɦ/^kӻ6{p]m׆qɑrһ]:"/a4"=;gIZ1c&ŝRyP(:,KbҢocYTBUx7y2JStd +`@XgD5 ?f,Xba15vDP,&V%L (}N6Q4,7LQjSLL*(S]X L3*l֝+gȕ.lV..04HET'P]w%?67*zڍ!E+ܕ(lj 3}5oYz[\-m?lWڮ6,P.ЬҬ +`^aqu8To(5mn?xRKȻ z V13D7% c^{HLcBhF  ~q5 FWR!`$fsUZsV׼/Z- /bPUD%{/*٠%N5u_P@!!mЅhDqUĩ@\a#%aPʈVTE>(APġ.E!Rށ.= < +\Jn1Gؼ3H{(k,Cq#m=i3߿Z[GH(nu׍`M-Sizs|7Y-ՕF"?llTozNXڀ +ymij+bգ)vr zդv@-"-Z*ߵ>RYQU zqO-^VyVyoE<ۼ~3~a!L`DUP(o4TĢd[{Ԇp~x%qqCc?~CEੀʙw.?8b<,b^ [Tf~+k +; [{CHS>/7\|rLC`0A @ՠc1?$Nw\nOD"_\̸"] VydL`6*mkЍ;6+DFy!zmRqc\ChcypOx +ӽúD, +Ƙq#RC@1.褾Ų)&̛mH7t:hDbt70}=R\ - F[ [[{ޠ 8[ ._1@S2`a =s:9Sӄ}BDU.t9\DaЙ"'w[yP3jȱYm  Y"߳[cr_Wl15A dg V~ G[Ξ9)I0P5 + )STcj'[޿ܽ{~?Ξf+:\7K[U.F:\ùrO\OЧYB H5Rt2׃VD B=sCJB[½ʽ*t]hfߎ?$͒rEuP@狠e!(֊DDqOн.t"t2s4C'$F#,dU W&U0 +[Ý+B?g"ٴrjdOG5N]a 5,[]9i*n ,m T~C92qFc2KDDc̹hI9E[毲zs_]taeW]LHwO/|˧(#W]P.&+Ӯ^u-RyS[/]'NhJ Zz +ApU(! Dp +T*O  +^ftN~+D0S"ǥ_4]-vYAGӡ U)E(@nTHәݝ3;2C1{ %9m80=:kmTȨrϝ{{Ҡ釿QSKp=ގ\"N[Dq7ڟgn:N Ī괼ƫ :ᑲ;ZR1ITہ VNٝPsZyrNn9NiQ*T_>Z] @v|d +h%b3$^|Տhqgj2 +Q}koAPuA!y/{=3 +ܾ`L=Hg#1}"D:hSe&_+M]A Im['U5U-%=WMp*F4?U~EEBڬW)X|֑uEevjєԬTWz1T)!MC[;҃ikH(▫;W֫nv@XHpX2݀V-C˰ + ne*SRNkl_Xwan1o+] UJoĖH2ШR^p*1KiiL4$rpUj9Pw*XivF +1 "bzK13i~zW敪4eV5~4! B>X-7[䊡sGfc,r@ -\dFsx+d#sn!o½"*]u Vd;h=\伳'fPQḷ\Wj!wIIn0wW$7V".HVao+R-QE~ +p%h78EόUD"vd ![VNʠվr1c4IdNՃ.=ڂ2׍&7V֕OWkk$({6 psƶmy)(ž%gN6g lwJ)J}Gz+֑zm`]Zwuy<4BٱkJ] o75).w!,/4У+e$؄y{C,8?Qj"3%B؀АګoWP L 5 ʝ/4/Xc5j 5衚>צx]6v{U,jjkk^f?=U|YۺW42xb5YIaOu#NyPDX,(+mJ?>ftg?Ieᴆ*n$ Rf"55]VlǣXW%H]HRI%'q]\rӁr&:N$~ ^K1)`Ix$}K2rPp9%] ;Фoj^ i*:<:V g}AtOODj +GeYT.+*1* +Pm].Z.Ot|ce-Y]\n_jq{ ƒ +h,+h~U`mn'o׫ZvzmnkX!oL`c|CW6 +;3Gw=׷潛'lx(T'zRcz|UmɘI##k޶+kOO5{$2To8~ ?E f5C[pj17'T-竮TT/m5`~%-|şD[͈{#GqLXl>hjqƠH9[h)Uj; \tOJYX+ oJgq^y{ d;ybJMށUI ,@DBے>s졼ZFC_{;;U +_6nbU?׭Ʈ7_{=3'_t; +*+S@V:@V|uttmT##vw<\?,#J *h!ArW%L ++Dm82! ~dAh1BfG?#I(JT^$+XYQ8J* 1!d B 2g&! +Sp&D %(,b dHȢR8}$ٯ7IE~i}_zmM*i{`~aP*ҝ,Hw(ɢtcT၀"eK1~T$y+_^cL[₶*m Gdu=={WY6y;nzyk[k뉏z{7^R`YK^k-Lbf>4YU7VU0R%(x6ڲ85+, i5*cMrm  Jl{ԱX\PKhV +6RBQg*jkNG!r(J$($C'GXxg@+:u33ӳswszNJ{] " ! @ T qFv"q*ؤ BHhcʨ2ȱʱw~HJ>ut~}-d,k^UAaE'2_HyND<Ҁ^h?~vjcg߾i'W?'zǯZ욖#}G߹O.|$U1;dFhѸި`Χj!I6K0{$ xA%QT%r0f#jarґy؏KGZcg QyV@ARmmTIxPKt| ¼ !O\޼P_AQwqa^`@ڄ!!Ay`BJ[)W~x ߄92ygQo@,9t!z/' C`XdvDҐI3'Ct! zSKYS!J$j#b<_M ?U/} {WE#)|^ {fqrh҄#NzI0P?Z5IKXkM?R˖W/Ok/w:8\7ayKSjBsxcLJA =6MȻ*€2&.?`xLV02PotXPe-_6:! +vep&&n87Xg<kc^Ն+Xȷdb2!uKHD/J e۠(FǢn$2V}*\m5ry(b]ӭd|+zP>liuԞCO9G/4Q뚱l \qTm˯x41Uq\_pi# "~Y:銃%t-sme l=ñ&r2̷qL/xɕR_hbϭރ[oxxߙS+{&'Mܜw֝7=ڛLƯ$ۯi+{nk?g|ffw%W. yh!K3{U]<"M+ua&ɌjZ g](ZUZ91I7ȧY'd*TW*,3cG*(xŖL$nӮ: `g >3AvȲ9Ȋ%Ȓdл}Oq)#d޹2VLT@ E9F9H9Dykr LeKgq%;ϲLgN9G[ Mt,t_P #?s9j +(2K6xdYI&= Du07 Q"F豞Va:2˃9o^55} _tb$U.fzCh]vcGj4["zËM]Ӹxt;5.B<-AO&zEU䕢\@SDL4CRAM5|#R9a!y=N(\5mr 'Z (҅񔹀ܨ<$ 7IQmQb(5e3 + >fM^ǡ9*IhU_$z: n0lyl6!.z0[]h `pYz`tJ^Kjmbъ8$V$uXou/%OrV'j6Oj7k"HA4M?~{{V5w{kuD:5D+Q1d31i5/<ۯFPt7Q{T:"xDΐKɒڗJK,Njjv+)wjj/ԐRdii†-J_fbC#\_o.+c`ÍJRGcGǎ͍Y@Qr*2b!"2ЩkCLDP.G%QdT5J%!;N04H<Է dd+ѱYfLQBAotOݟJ<5M+5vxL3\.[rU#1e2L` +\CA1U\tU$+63jەUu$(0DA6vfMc4oNܘ&,D;۳4B_Ⱦ7 (ZK2"oϥs |e{`vDkloyd|ɧ&],ƺ#^+^[ْ(W"D +)Tn߰læ-?.5َ|`yV[t (HO04jѹQi451E|%ZU,a+ucʜf1* 9{a%PQuK xL<)q$*khw0;tSՋT"E3t"`̓ۋ/UdI ES2#xeQ] + LƆL@^&.| K2 jxvðD/r(TGRKu/։^!l6s 3gL3uhϘP말N] ҋgiߢñ)<  \MFp]$.^렅%^m#Ͼ1%j@ÛVfz7>sU_Ea=ځݗؿvE7g +CJ F0 +{ݝqad dl;3, uт-ld5fu -WR)Զ9gRL 2y~ʡhOχHծ=DrgzCܿf9NHi&*qdp\& GCQDre[^m,bu+ ((j d/ۡX NU9܍W>; vr´t0My۵[<tv³g3 ڪP74oKE3;ݳZ"%%30ƃ[_|xG|ۧFW[q1?AU` -Y2|7/ Y0ygQc|QӘb^%ʍܢKE|?Tdˣ1)aK Ϫ +UTo145OX!JhgM甘SBVd[_9d#YPAw+foJRYxH܌K-\nl¸iG + SIgM] EuR'B׵bYl 'l=0wfeW 6+&TmE3>?:\[rkIֶ^W 3ɖhؚk!2?6`7R"[8E~3fGo%[^JSOk翛_JV(J o0*D`b?Cp :bP 0Vpˡ0 %t7^5Syʥ:{%m$!3͐^En<e$nɛ@C)CAxEI TrDv'v|(bMO3lrpKo^תVʍ["b# +n$V V1"d+d rѼ|s? Ux% 8{pA뙀JW %jVs),ђb/Eu-m,Se.&qbӲ +hIHҷGn_[=x[닯?qk ʦÓO>homdu;vKbȸ0- (ii/,>ce8Ovgnl6bV`VX >YP>ҥ$+9߼DNfP.Pm')F}N KsTg%YV?_iGY{b~_,,>cJlG܎aG޵v񬥝}%" ~ݟ>kCa`4lo_ٙ$yL ,Jؓ>6|ц)JB:)+ؑɣd*C\nV*Q88P8qDbŎ#zG;zo8,r8ΝIUϩQ-OkyZ]/̏dn@ɛӰט[c4YcA$f +vuճ˳lDYa,᳙{-`șQ{QcõsԷv?f/ih -rEZvK}>BTDSˣ|>3x`V]q ⏖sGmlu-zG?vf=Nd0{IFoI/,Z}߆zV2<+6+ SW)3e6>lX-O.';7 +\-b$)#=(!-A3jh;5j*~_/֥g%]0pIԤ&5IMjRԤ&5IMjRԤ&5IMjRԤ&5IMjRԤ&%DV +`$#0[۴|Ȫuk;WL毝&zht[E[)d%-tp=F:$;ςLs Ջ!$s "ȫh mBF4Vuh-D+$ʣkej4jC((A~Ԃ(zQu# hP; +#@oB;1pshyw||uwݱ֡vDBm+\uyt~nm$NP> endobj 692 0 obj <> +stream +x]n0D +]C2pC3u=L ya=o[|ޖ>yeN>_wk}?8\N:/6oo}R{^׶鿥ʼnؚ[(`8z iJhK %B3B+S %~eB'ڥJ-VJO2 ,z\`]h茜 O8"eZ X ,ʜ3XxG],ޢ`Y V8X +8`a p&2i,Y /a8!3Yg,΢p&B@LBd#c^$i#^d,,^ G +8`e0Vp.@cqp.IIXY+ pR(fXL@nFu%L7j% 1J3e!!Ofi`YlYg:AB%+ R(r(^XV:׹Ǭ +X)KƬ|὘b 9s0BwR(΂D3- %x9u' ֢v~({eW K +ַ̧|[/z}R +endstream endobj 691 0 obj <> endobj 693 0 obj <> +stream +xyxT8.̾If'3Y&$!9YY$ /A6EBR +X' VU[Vlk]$ZK-f~3 K}}}3w!-A55)(B_+U6%7z]K -ZvmcBvT-+:,|eK?G *KWBi})BgrF绀PعnIGϬڎlc*u]6#ľu6DX{e]E|!'?F<^@(>JLK~ǯA5AGBAD.D/3hz U&t/@ ڂ_C +Z +b"Y0GEh= ,ԀFu!3tG$Rt +w9SH.{ge%_O 8#ُ@Cd@h;>2w h1zo#jGb7MD[r3m1 O=-L\o9e0-X:Ci ߇(&ZoB`.b23YjG0yaa4ߣs%!|7۰ t@qtąXeAhA`At7|#dZ2=dfXA3"@FmFn.EMXǻW8`- +A,CǀЋ_[op/7lCػK(a]3lp!2#4F_Jy>Y# h%`{{`O+8pd"y{C$M"9Pd&@ kƫWX^r@VѹA勵s?S#q]dC6+HDYԴz݌z@/>t 5w}?>_¯&~H)$5 ;ྗ%'Q']Bq&ϒO/Vᑜw(aO\ؗYo- CҝPq20 | +9!; +$L֐ɤ̆{YwYO6'$=5 ͣOB__s +rn>{{{uJ!+͓=#H\&o/oNTAZ} ]y4rJx@LFNz7 _^GKW5Gh=O=|]DI|G.qx.gq':ZCdl\:w+B 6|Do&1s;_Ud7jo* +rΡh_@jqZ2;hw.|iG?AӉ#Z<ԇGUER !2>+;KK0)t#83v%uLiu M~ijLboh6V*ft;*B@mM g$(Wiim}a&~m0W _߀?Ec/pű;:L wýBAt[Ԉ-q?kA淣rXB0 d'LLA"ܷ0A`Ma@GM +Z!Nޚ܍ڒ'hN [|>}Ox7) ؊O`idge[(--zEܦ3(I 494+x҃Uhe$萜Ӄ!rf#3.EA/ ^wᶀe+>l6X90lb=Ɓ6엉`L+z&灏"Z2jv)Xa+Zց]Y{{`s XH;oneCG|#` gG's L_O`^[W|??m.:g vlܰkuk;׬^re[m)VVL*X6aҒhQa ?/7 +f>r:6Ŝf2NQ +((.Pc\(0eJ+:㊊KݼW)zzb[ruoڀ7j]olXϐ{><୳p.Vyeo]{- ׯVjrQJ Y5b@W?T`)C,ue)=P[j +b4Xױ44p͒ +Ta jbri*۟{θ5KK;5hG ykc[/apcM+[κˊ;YWXcH&@0 s-1&}=v,PjW{c@u`ev@7fo y{6|JGٟzgo^-y!~~4^YvMIYa%bT wV=gѲwxW bKbʚ^ | +oꚎYP,KcX8a"+rI^8/$>h)+| "Z XϬTً;Xnvrf%}kkx{(b1EO/Mu+bӼ,0'0ka} s*_jT<RS@z6 +@ݪ)jƘ:HK*GT +wѥYY2 + `{cBTܢ>O^`OIF+ _]xUiz), {{UWՃx{{;ɞ=IisoW]S;[`+qY^n.G489&:W%n @2 i|sk GPu1_wY|R@{IM{uK5"$JղJVKD!wZ9B*/c$)0Z':!5QHHDZT8֛:E';kZr +@RcfQ5N,'DXԜ1cΖ㸧8)4{gdu=`|ϻy +/У]L^"I0.dP`!e,L'3RwZn)`4D ]zu0 ܓ&h +덭RP=K鋭v:[—tz{{%IOf{rgIq`%_ J/SK:1.tiu᫆sajdۉ4y[,xV307C]>)&Ut΁g Zޱ,;~J6M91 0,1XaPLu˘Y!R+A Z JE-fђ^f䴶^cwB/Pv+0%Z2+x;P Le(Qdy ʃkߺpBUy.rpXC# O qHR:]t5 ؝E?#(y܀!;P]=) Rw?!.=RO f]BCzѿDP鯠U +8W"2c-u"Tp:YC.@:8ag pHBFVCðC d5,OIE?G!CcwC0YzpGC PtC-o6}tÀ#T !B^ JbLoLA6  ZlE}mmmmc}ѭg+ +}T"t̷  x!P;A|Y6Bc%z=1V U"]>hs\R!BM2u٠Rj ]z%&AB-.(3Zud;mH-6>OPIi*W㞶rT8ڿO@< achP BA]Ƈ 38ty#d67B@4T-~BK.) Q7M4sӴOfBd*hW}J{JXͮhCZ.2HL)|گ}ii}I>BKҤXbOIqHT{/{ 0fʕf@y@.Hd@-p@yʀW .AAV2}t)0r'S 䲧jq\3($Y@MtI +HC8Q@ZT/0hls8볰P|O8y$׀8:pRFɍ+8<%Ry,g2Z|hnɭL/?140{&@8:xSgK{r`PrS2o޸S&1WQX>_>K>Qɽr)OSB(T +BDifVUL>XIy.'f aN5PظpC\n)i(meU;,$¸`]nqWK nY{c_́'Vd\i4V&Qh|YW^VWul_Ü恒rUĊ|2 dvutuu'IKZOIwlVom ItC,auC~<(u.uzN/੬ R2` +%ЍQ4Vqn@WAX/ i0' B ?.×rZPP'[y0'+aQ@ײ`ǟ.aG큺ec72wۿϣgKV?ƖjK%#Pۏm_".;-mij]? Vzhn`͏\ lǤfWㆦ~nYJZl>fY誐xd=)R[b@uL 5UU&`R֤cMM9N'F6QYV^mذamx&T7!VΨcu13|@f-lj;ĭ Zwk 4q`eV! P,*8y's$]-5͢|d]=˟)SoI5,j>.O7%pJ)Xq& veGIWQ&%n{(ZIiE!eeѽ>uL}F}VdgdgeC 2+DY]%ɔ{e{]ݥQSAUGԢI{6@`0ڴ! +rYGPRQ*j= |-M*?Z1[>  D!́C[o@x y4κ%$ FJ!XJ,Lu3SiyUҁʨJ:F ~!7xZD7xeư-,ވÐv6n ]k_o؄6l@@]@'v{lK.h@R/NН̸3#OiXr8y(E*9ȦC;Ag#%^EְEHLbrT y; +#~DXi'FւpA8R3 ACyD}XAY~ Xcv4Vu"nK ē_ R)G9%(肌 +}]Dt͜k9mOO&.κ&tuxΔa'l "1ēS9b @vMIR("BTo"Mɓ4O +O}2rRv\sR8<{2GA;@xx(uԫ8n9QՃQ"srx +3W|S:) b>ɏwEm|:[܅00 `nHPea7<, c` ,_l`$ `yPBl3S& +F K]*…'!71r&C y Րs*!WRP•!啹Ф,F 2k.V@.YfO旔|prtԁgL7$Z*DTDG!0@,)jYڪds9 !p;-I3Thf&sٞ^lRWIj4ڰIVQThILE3IHG9pJ,܏~8ut|}*d&a6 BZqDu!O=@6M^>4X,vm*l^KNO_pO.xslzAۖOaKMtUP^xw圆noY}ݼ؍[u/k꾶 oєkn}즺:9sVndB )9ܮe JڏM OM2,I{- #6y c22CD@܄lᲽ/n:0g-.8}qp)N^SIbKUêK&*#QL),2?TR,bRآL% / O/`/o:8gk/iX~O&u5/}LZI52iMwݡy`o^wqDx}}bd\i}t"%򴪴괚\Gn$Ǥum- 5[aݹfה}jOyPᩯ^5fW433\(S9OeVyƭrkJ/J7M1V$P##G@W\8R~K-e%Hk,0z Bm-t\X⇂zccnet3 3<%q~_^m3 [ٓHzFtkSv?hXp+/vVW83=\(j ye.١3Wgss'lgsGvF2#B6ΨIz{Irw sFq R@ ++@^p +:5OX,$HݓޓN8GT{mzY|T2FZgi 7N)2@F F4F(nQ%K%D[ѭAcZaYCi=ù=M&2MY-жg!tn/{\KKK("nx/g W11UɊa%]>+ d!ȷC&:`w425bYR,iSgDCb0xcH&m!dLbT VWU "M' i(Z"ͣDk h M#{4/vEiϱU0U +Zr1Hj0HE" Siɏ ~%P[@DzOgVkchTQH 1 U:A}`0ۂ1J3/f hD@?Ap;!b#2gX<2bY ] +BbdSAt̑BN͎~h'k:ZIK.62]m1҈$ IږLs>pop&tntG2&dՖL)&>x>ٗXO ߤ9V/_-vku!h%Lx *_!=^PgDI0ThE}h$߮߫szG.!(t|;y8<*G1/W(Tj$fK00\|E >ެjsx7 F{sn>vvIEnUOX"D6fs\>U\&z*,Ql4l4>~Hw/Xޱy澶cg6ʕU*Mʭ6B,v&ReV&ՕR)i*{XQQ#=6Sb;Eһ1Ѹ.Qd7LLM)墉}eG^>/N㯁oX:!ϓ79O 6)|e^8_cʑ~>%~^Q,sDHu9v [t;~ۋ:`oܽpɎŽZvfڏv +p%'oXMuƅ(<~S'j3] +R>0ޕUV]{[폱/@zPPIdX괢zrP*y4j-4ZN:E\&+4 +bi !5>(jy,S*d2i4i<QjROA %4Rb_=nI9z(r +.pZ +vZ9 u"/7L0H 3?̍:YZXz1 ZY\aUrV˱e1 aV +8=``zȦ%2Ż?{-Iicܴi ? v5r^omw咗<:ϻƹIzGʾP@X/tEe`5x}`Jp^r+CAg:RJM">ذprz}K%,$q "*'?K= +Hhe%^bMLTy-bz{ ╁cBd^͢fQ[g\\|k ;T޸wRW`T t 9Y]asS023+رYܸ.?`,hbw7|oz,ON@̀~{+a w9UnQ8(QhaY2lY6r7C!=w ZLA*DQѨ199}9C9\-%hB&5ELi$7ٲ/f߁~~2"JzvrG2HY *.Id6T@Z ȧ\*;ȯ]:_~EԱNBoqG;tWc&]Gc:ibcFic1n{5{W+jws`WkF~e\`B AmkP;Z4]DH9U<7^cӓ!15Ji,.94hrT)0OsHԶkWm2`5FZQK ρNIZ^\¿eDq|>5V4)oq'rM\sϒfO|㼤j.2[!, SVNݶGYC(Mƍ*+<(EFINOԕg!QޅK̍o^r䷃GPEADs2Eo{4=-PoI!AQ̗T/5ˑ +˴Į4k-6kw[;tO"DTPՆ\]VUdEhuMxkܭ=GޣpqO~n^>BOg>sXqEr2 MZ39),?#XbҺG,D /PXBĒ$,4P(U"ZZV| +:*ԤKI r` ~S}|\k1MY(7siŨbQa :wkP&g|pSƛ:Mc3zFsU1WIZLcA[䣿<0?뜿 n^tN]k;o M&oXs{^ұaa;5~scʂ LX op@=Ssw?Vr[mknn1]ݭդR*d +>˴䐜? +f6(* n 7CxQiLٱ2 +FxHl1'}C\6fD*e]e na̒2%82MH:CG[\z* US5@W r˃q:rJBչqWB ;OF9R3|*[~h_-ǯݗ~D[fRՖ=gl,ˉOĖWx~~.{K{i ]#6Kt\s5xb:{I8:7Eɻ=Dc!ədةTt @-f)JFLթ\5a| ̰e~:LRsܪaMә-Z`l*=J,uez㣾_:lGzt~2/KPQhVLJ2:պr/9}]G]_LmKЋ HjZ0"iqk>+d8 D CgL8E܇)b)G)ZH;~ +pHȹN9]:;6ygygY9bhYډ-}[EUj8 Nsq8BXjp NTCZ2yJ)T6rC`z43BY`N5B΅yz4.;'a AV'.zL)وB|DB|#JYlTj !=5Q@)''e:kxϗ,W:+jwE}#UT|r[v!}\~n3.q1XRL2~D0hgLY}[*-=a9%65;,On,[%4߾gvMawvu?}p55-M'?>!Û{2pH|8~+`|8qNWvϩԸ͕'\Z=S++@9M}%YFq _\ Qs}d q^4 `BO䭯}Q0<' u vѹBk[i&n;NKcKX2i.pdTݝHR"P0kj|~^nҚݫ+BS׫)4ry@pII +tm_v}U nRr(Nì r"ݐH4CA'N#qB(8>&j +RoD!t!N"n쎓ODW5.q^2AXbwM+rQ;y٪˷w^ [03gSb~Q{׷8N.RnXtziV*1 ҙ̝'Q: +5O{ļyhK=udz&d]'7fz +wA.ߗۆ$c ?B܇Q'~d!Zޅpo(Hg@3ݘ%2m;,W'ԯ(-cTk8*r!@DWqmFmp?F?ʹ  4]氧H~Q]ƴٶ0s1H(fu){Qopg +8n1zGƏ2މʽebYSvy{dl}˽1cCYnw){&֢{J_8̾@4Q.=ԟ=>7JY%%Jsvb&YpLYTgkTLmNrG9 {(Z(*UZC1Ⱇ\)se&YB> dˊʞo"V$}<+}7[H>vHp (rF%\rj HΨ}cHY6@ՍvAdP8[P5(CQZ 4ӑ>?.hIcϾkڍׯ_w_ro?@c~˿4gK^9h(sNe^U1AX`L$Oߕ|%G^U P+J}IZr!Us輠ŕ9#J=d߁#7&/Zڴs_S GՋv,;9/XXO; Z3N\a\^yˌ0 x0ʧ%72Fj + +<?bvTq,'qr!Uhj6N Ă4%{4#Pi ,ZDn֩K$?(ܺ^zsn0U}⇕ß\N<^śiA{H2eeҤCyXe!tRVfS93t4 +#M:*Sq}) !aq/;0f0[a|S;m^Yp:?ؓctD;O|cO|sS&G4}4=;o7#p֢v] o fasNaW~'(cMx7R<l,NKlYf3R88u@1FO{85dBEe +s{Y$`EBQ#TI2;wɄ) !!2OcuݭOi!9!r#\|hvon7o+J\ҔL!Ų`P3Ξ5 +#UYG$Zs#\>3=Z'#7&8YoAŶđEY4IhyɊ*c8.T)U?|*rǪooU.KQU"i4q +qX|~ 2d]=/R)4O<,!d1 +ff٢ gAeGl.{LF9~^:<&#D#:tnD#.%ш@!.Jg: §" #(]@Zv|H0qXB)w!fJdaQ&OhD>  W1jvȗ άRF +GNE憬ZK-[ $ui> zo|m-Y S@?ڸ?"I*>2YD +6-KKoPtYl7Ŭ1:`zZKM]wrOsCޮ>SJ(Œ~3A)Qj˲r.˯a[P1Cq荍Ftvc9[#(G%E'_jUySC(aBkM-Y;y  +%8/2 c|T{rAɤ2 ~za"zd fCT5[@b\(ԯl=*_zG~Z2( f+t{ >,{u;g#;*OltmڕW_>pkӶo29(sfmz8s_(X^ keGj5;=aC =g'& (O~q5XO~'YXb & X % +K<'?%&K*\r!@G*!4ՓPFF$TTY %. av^>z a]&<43M>K Kn>pG_qTP& J |׏j Ib@Ax0Hƴ-1lx ?wgb=j(Q:#n3.a oHP "LF)mHFpZٲJ3F d.e0c+أ8xF?8Hd((.I4K0ρ7AЏU2Zpkwey[1{^;T9Um" ^.d}`hZւcZ%(G aW\bW5nF3- |U?wWky͓sMi\z` ~okȧ7M&ȖKW*"lK<]^r8=;=UEZSh7Yt}7j>{;=I#inҌe侰!L +n9KrvIz@vs$-m=eiO)fI)[ +{qv_'#=i4=>LA}1Xk_?zX]@X:z:l1o8:x16,]r[> +d~e}3"TE Y,E@'$GXODOlU^1 +3Ze͜b +r2'FY D(S{ aف >ctM(}EEWf͐d92jyBYq.y'LFv.AKX`&tpTuuK535aQق`N+LVa`06 '.6%)O=vdW^<٪ZZK"8_`9gې^ +3_>v{0qzƤ? 7>=$\qRje7E?Teu(` –Aq` "{O ;D1Tkyh!%{yQO'iWlPT*DNj5^DJPadEal +=I^pӬ7@IjF%NlUX%10IR/zFq+VE|>?v ub"waD+{U.J NTAc渶!GRm-4hHNz@It$G<ۈM FX>\G>I)'Qz&3&ǟ1V~і}}Y˳ԶoQ֎~ܬ ~N(4 턟9 hgK hEo*1Uxků)šefW c4w ʸ-&[PAF. sz(ygg̽ř"!fdeNu-0C&^v6R`&ڄD:yxg{ww+yӻW>iu_4~Ҹ>{႟XƷS/|aϣ{be-K9nŃݕB&FFm}vH_~e= !WcDOߘ&1_KVkYt8KL|/Ԉ?[hà̅"H;CWiPL'].'sU^wYy=w >l|8rp׮xjb{3y5$(SZ#Fdgw_E;eC},[6V ʶͱ{NsؑsgNV +XI +7"pA/%&7+ i3([CaKʀʖPą}Ƣ0S +ťSO \Na$C@~W/ֶ 2y$mRW@h_G` +:1q(D>DaH'$Dz^ D^ 0VФG)=wAx!QW8ղYνe6kAD#6꣒&@U@m$91 A"lU6[gn<Ԩ+D o4|֏}コ+[(Ngnoz%v#hoO]ԣ=◳ +`$AJ]]^Zf6K=eVgY@zxF6h`48Z-14eݙyy]油ocLr|=@1X +ϫ,5/M13֥eA`EX#]~I%;-јTĨt}W£ŧ _Lwv\w`+%?X'@%?S<@BdqL)mazb#pّIeq:Bz>[6Vv >ܓϟEX]RQ?C4+"RLp1$gp8"" MM̉iŔh +c"#Zɸ1o)+VvhӐ3)IH)[-tLD/{Yjb5>=3ܷoz\,ph/tv'xp fvtEW~_豷Z_kcەoO,`|c<w7Fu::uC=%s\cIRթiծ-5ъ ؇ըDx]Lj ́&TX",vl a@X'8hq#ɓBo3L-Pj6w8is +>(չ3FY'Z9v6bsq;Ukh^df훯oNsqA5Ώδld\'`<{Bw=<|^Ed "ɺ+'nv%"D[-((dK% jxVcW- ʞP8Mv$x$ W*42h61WMU^EP/6L?Ys!ta"hqoqD)(ívh':n=p=:SbwgιHi+oT\q<P`õk%bQ-nJb94ưU5G |0|- eYwZQDiKzgx} OvQYkWUHǂ̯~ۯ>Pb́/Tl<+"1Rb V6HiQ) fÏX c5aiXi&QAo>/IZw{EKZSC(x:D~QwCNyu9ݳop:=MZ'\!5-톉nk{ )N7. :ujhV:%Tf2.Ʀ$t&]:CpxH %\^WE83Dق -8:Rf^}U'Yu)V r~vjsqs{Tt,IrN%A+XGn}ѥ&]]띢Su8;O;us9p2:a%P#493trHolNCk TplC8U U*V6:],GۮwƜbDQ|JaW*2;e(RFwFu\=z̙x3l-jB/+/8}hJa~٠>kL7%R[K؅ +Ry 66x7הap#ƫW׵oc۸mn,Yp7s?w=j|K/T|VY3g,1ԽS??4~PY~uSūKL<t)j=B24 nhD +i_*XVĞn1FvgeW"f 9^}uTVz >Y^lORrR4$q9Q-udAݪ:<ư>_@o0gC;|?χX(Khdd*h0_gK/qB hH`KĎdeB)EP5 !p#T)ިO]P':?Ȧ}6 79Ě!\lO$ڿ9;pW.82{4ELE=ҕ&d={]d ˑ>}\y;Ŋ3s|S[nyJ RVt'yK ++}HI)Ib;8O3qO< +v4{nx3LH'qZ-Чf>` l%<%XS)3g"O)|+ط/uPxU~Uau_Q>4AJ4 +XTzBbf 0O+c^s*0 2x" Vta4Г'LkÌOMyByF[!{Y/o7c\m+JBJAۄX0'XYΒ%ֺ2#J'g-t] aaI[ՔCQ + 0dծ.OxXV_] ȤV`^( x`j]V({TN}P !ƹIY#gi.q#AhA 3 c 6.T0F ml- h>DL땉k4G3MՈd+U]xaW5ta{⠫'9l$= +GxVjX mC2hhڞB2* <o&鱪a1W&Qͬx\0s +::!v(mg03/u+8;V6K\A0SkK[eK+. 08mB{q[v u˭0GUEBrn~#3΍a&πg O_unvXD:fm:'Bgz7@V +Wj -k~;m)=}{!Zd@=D8"3fZ+2-t9lLP?Zà|D o37!i%ŭv +!\nE*0%}|7U l\8rY3ӭ}m<c^/ WcYtZjXw6ziJ8 zKcVh MtVpw zҐީcC8@ S:,H\ $bt}xie/3|u(R:w%ކH5X +pZVyKM A]Ҫѷjx5E5Zvk@LFaB-[S8ܾvW? 4\Ͷ7h\C>V{԰rqhdNx-)Q݄M꨽:Y6,XCں %3;47k S#8rlġ.Ew7gk9~c1#6C(XiСU̒RFKfw"TD'UBћLx Ξw@G7^_|隊%S1hđ57L.| qc"^ȚˑpGɷ&UNjR~LP !A pYNN!eg2 +3p9 h73/$jYjN; o3Wa[Mon%HY^٭vyS@x\aXf\VYѹ{ټƫw2eq颂5jo|*W27MjJ&ȖA7lfbLNiIfiD%݁(bKm8stb9vT.1zo)@  +bDl2ƨ1j"c>(-jb'`YWP-qpG h E7$jMgZk1c#H0g_BW0W Öjbkr[[F|cՍ^>L^cՀeg hm@k=ZgZ$&`*׹wLŀ ኩ:o):?8!0j_d}o.'uN-Z-B-hǼͷR?յX*c{n'V /\׵m]u]W|[9n2 swGw88soC Cpuf$~t$".:,, tHd®w,*LP.2„7M& Jov͡a'czchHTfF N33-:D s3.~]+QF?wLVD4k~1na CJ&zsy~pw$}c6Fv!gI)50%t= $̣I3340㤐"N93Gz+V4kq >34k6wt&̕(+t@^hh+Ȅ1>gezggːA'Bu=5Bqz0[ɹDfs_﹁'Yɗ@{ꦿ-J?/OtwӇ+DFg3W,;^l9Q!*L li){^74+fsá,Gze֢c/H %=E"s@$57seOm^|5jjv AmMДr\9~w%pַ92, I{쓶I) j_]w?(gR}gSϞ +zX~|ph"DRHhhrN9t-+s~l{;xvUtO&omLdQ0 ip +<{N/5{[&U)dHr1uY̶C]pNya-X{PxQ81obaTΉ[ u `4i#͘-g 䜱q:^QذhMW-ѫ%{"}?zK|؏ GW)]M১P~w!Mk x΢ + N2n(\.D$06Q8‰pS8}| ~|s S2Th! +ǦvV5 7j+Ns49ܲ|98tic`]'E쁯,.b c1~::4iz" ?q4ÎiG!髺T_5H-X^X )&dt,&/i=yιE4+:t _ g07̏ۥ.CiO|E1?wSK58˾o!~S'Lg 8w;c(Ūٹùq:{7=R%2O)JU nupvѮ3."^ѕ̩X/A@BޒpD}ٻ@u~$ghC{GR6v6rk->"v<;Z+C9d:۝)_l7S <n84v͆rݾ<U3OMhrƥs\Wn/]KJXLY=`g9xDG;h6QVS ًSZg7G7~wvW+ңuEݔ{JQG+7tbMWq GGp \tGh < Dь vCOĠþ4Tk(k{bbX>qhCf"ӛ~о+!: Yб4.s,WѮYrIi>UV*죤lI5y +8P1*Ћ2"xQ6k]k-`]TBn-.)E RRk|mfh)A!~5Zab5`" [ޝtxIZV$ ]Iޤl*nR7E\ g47Yv?.&%Qϐrj#& D\7˪M TQ_&ktV=xp_#}M/AaLJl28?)dƴp49%j*J :O5.H+M,VBzi)<ފ=㭸W3u7[V^n ⱶR{\پx<K'+*p)`U>pqfJ}pmb[rXYZ+*@9L^XV.R"֡\?CxBW1JUC^@4ZD;}@l&u56Hf 6iZdlCCf6퀳T-]Y;Ьf>uɅKP7O^{ +m.gй|7Z(voyycQU^]::q:l +:y+CbKnybxǟm+FXZvci@lRx 6Q)%,a< {H}+Y0+Hq˃xG-a @CsHv5}RW' !;Dv՜&2 <@r& 9>$ +HD8nQRC01k|k5uΰpkkRKN[U[8 +$ <Juڢ#D,JDf )4h5~f` Xr shM9MpS;H`%s[½W͙x6&}:rc<W=Fa| `8k,IDlf(JHV@cWB4᪭pT[ E1ߩbFC΂f.eѺKg^H>\&\>ti]FvC:zfBc{-8]FA)'?iRf&aOGZ=.&InIa|,ߩ&sh1o*um @ q=r'`ì!ב96$9&icX,ߘ1!Z9]b'^_ + +sv|y>I>11SĪ{i#a1A 91\42c4;7Վi&x&p8:@R"x[[u#1Vo}y؜ +>%ZhRM]4L꡾J HT^*u&cJj*_GwyRFIitZI#Ma'D) r#4;PNB )ScSE#* ,ao' 9*==toR_c^_tO#4"r}9xQ@FcN>{?3SXAO ծQmGG#z `S LզݣɔK'N~PcMdZy YkⅬfuV̙HdiVAZ@{gh/L(}@r_է=2q:fٺLqڛֈA]Rۋ@mLW`pRV1O+k_әa (Oi H-pq~-?(O\B*)NIb`%DXM?'kNH Kfz{3&~wӆR+. Iy9JMNgzWwH̭uÙ6l0&$I;ZK,V+̘Z\x;@h #&mȪ)swr 6>s0.-bʂId__EƪlUk+rVsR~F((t7A521N$I'amt5SEK8;[3?DmA.78|{p1X{jQδ +>Bdr)E=l뭡Bj`4j3CY""XFChϊdSqla=7:9L,~O"m 6Є fVmdj9}$)~7He$Vxh1{=uO9S*-TMDZ)'q<:U)O FM&k Z94Lj_`)'q8jͭFZ7i6 D/! h&H~fr zx6mkW[:5~E~1Cʔ:Z:j1鑉ZܷGHPJϭl鬕T>vfe|$|xG'i܉3H]rNOZrv9l66C)6#ΡI~WP?Fԋ#.OmR,%k֪Zؿvk%%)5rYSZrhiRa 'ꨐ!׈-3&P{ٍ[v'/W2İϐ}>GV-HFNGB&vvnXq޹[hWʕ,e] +藓@X=k6},BzϾs+y$I D؃1AJ* թ@ Tcxe*dyؖ +e*Iu<K:?6oM`B>չJh-~q\Jaq`*=2Rb:oxaĨ#S W$#SF7>j"1 s=9Ίt;"n_wV, ̆y^{Om`ĺu+)ٽQZY5BꜧSkBGk~r"?9?E)S-"|ЬGр?>*Z$(DROL5ϣZm7 +ZpX=ϑ:;n<'l.-H4JdL~@I;5mYûHrxU)?9Ovɛ~r$S%dRX#RJvD(+|Kbe2\LVt9d,S,%}@iDG#bp$cO()t05s=L&SS4H )=#1.kn )Jeb:Vy[̯M4D~4/dg5P:oB8‚HT!\Gē)yj_e1.hvӷ3ی̺%kŹb]m‴>Gd \R/L +)3OQ-іJpj`noj;rF!4 Jjޕs6z>>΋?,c*2B@0@$C2LdfthNMa׫G_YTȵy7_K m ל?Rj.[F$eҏrfFIf?2Tdf,wά؟\bEeo2 zNcU`÷n pm +s6X)3j,t2%#D? )1/8<4LaÄa6Pĕ)+NAvB8[N;ݳjڂg&U +qSpm +,Ѣ]ߡ1|b3 bȱ$,:C#ۣM`4[iItJbjw 4*`^2gw$ ә;H@r-/DP,D/^=-EɲH |cJ"n,g}?P9w ,MR$G ! v${ے4)K3@8?k ĦE#g Xm;`PFdrd9VNcZu sTP@Rso$昢2UC饙 `` 19U{yhk6a̻#0ڑwX~%P]OyCEw/U揙2i%wCn9nyK*%>Ytě"1qEA0hdZA8 a8Aă^$8+Ο9wN\meNm3qm:q`[sDHѤuEQ`y[>s>6ޕiAyi΅"Eȼ='8[sˡ9W3t:}ywH>Wݕ;[j{~C%c?]S_t!|v-OA&2 m R6]s-` [:ɡ D ɁP%;%GdjOlMHЉ$'h$ aK 1GP}.>UCO $R"mRǿoD7L`0LY+[jmڬ*Z?pjnN .'H(}@b!06"@FM4 8dnfB6L4E'I,i帢SSOiɱfkSCf ;GŃ.2.CT/\G'5T :;Zu-k=>/Kz 72?-&:9R6L u;|ZdfٓԿ *1ΡD;v#H +6$mh|„'B֖HbeF(q|bČn +4L^Q/ElU;:4pZj`2B/ д, Ib^GKvBݪt40n PhYbZۼf >l! GIcr,z(Uc54V%ǠicqKQ3$ v^b9=_ffގ}7kk١sgwnz9ᝐ'|rf@MϐaGGG +FŌ9]o~s=#ߡR|)^0 dAr--Ȧxt.%$34I gC3O:'Ñ=9i2F6B/xnh{[RTIO*^F%jʒjb͢np WSjme­lAQ;UD_!YEğ9Z0k{UьnjA/F^,=jUjʗ8!soO91stgݨh".U䅧GMFP3,^7'/ߴf$tC!/ZY7vj .u%S%W|G/\rU]:]]?js49e :L3y͌ +l#L 8-k!(v  8ܽl\ǀ@&1ffx$rxцC 8ٳ{=U~TUW_gғރU;H 5-t0r`&t4l A(R4$#?s0v:՘zUv.]~-*vJ4Kg@ĢǮ5NrUpmя [cKھP)mYG00i`y?B>%oخ@e𿈬p-xt|Y=:QSM{x/,k0z]ޔudì~l+`Ln}6V9 kl.r<dc3ĝ}<ѱ2NMR~b{hվ®Q 3zV6ʰlQ2yRR[S͟+PH$pon;WLG)':mdWj;k[Keҷ^\q;:^ӓ\2ʎQY2St\JtK]'Q&KQ16$.RC2{ѽyF1b9h"UY@dn80+}ܤMa͂xgN)xAIMF|y>-dшQo{n$h-SX`!QZ8AiRetR:KS'I@+HO'b H: H)<2ψyϬ:H@G&(FdC:@(^|sXU_nst08`5OZ|u?8k8YȝOh Y@@8e=:h -5]rҴFuT+BƳKQw8eCf_ tKwͭ?N&|uڥ__lj6>1]Ay4cP#y4yd0^D ˌ?]puqWfoD'Zw: +*v#CĈDTf8_xLVyBawʪԵLNMBTވuNJu{LL׷g/ݷǿ9gg|_6ᇅaQ%1ZZ',8;EC-=[S)-ŴXQh\Դ mæȧ );NsI(y+OD ۽[Ue^gȁ JޖVsOxUUch|q )h83;oSEoe!. +a3'] /ͼG(Q"%>ڊItRF ڍrlr"(EVlxA%r7!^xwl +L#zPQZoh&јi{G!"1|% 9n債ժ!'F'4P4eP:á14f:YK-B q=1M%-9cڱLEw:HfdS6^ N ͺ fuzepޫ6^%!Ш IK'FH^BAlQ6BrϠ K/\1kKoPΡ 7qZΞ˵DG/1fENew +J"ɯȯJ*})q)m!rqK|>sG{PUd0KV7y{{'b#ޑZ^6Ӡ<|1--3#&'/&^L/7gadLF6fʞ>Í36vu{l[b[r0ֳ5Z4 ٣H,L.$j(o\\zdMLڙɤJ$Rfi6p +B"zU׫f1M0&#EЮr8 l(=?ȌJ*l<#U>Vebd/xVd4"% ^%8eD.PX č7 +@ A"(w&}&: ݗӻd3Sfe˄6FT(tץlG0Vlz .cZpњXϙ1mC\UTl ziGEdŸ8TΧ@ ".c^Aڮ[_$vcla' 2UDi2S5_ԅpAp(/>/>vVL8;:/d1=}nOSOOi袞JEuT?kFKKlܟķ1sMnZv+B۴am)laG 7ͪg$}Tn/gW5ꝾsR0]خ>1t1Q6kn0QkwC6 N8 H~9X=wE(a 6UURDW{@ +ʫV6:눺(q{\[~.md|YjqYͩ%.0|akx:h= ;fk;w8C{,ZTj=/ +45MOSz\p:3< pk>LpT._h5d2?p=t~i%d*iwZxW];rWmM==mۦ˽~̻^._]5km!oWjEʒ| 2|RY۾dfʳR %tV8|tXPi>!Ev\%EVbŅ/zki;N3<]f_Ŭbg6:"3"E'EIp8J-1-Z'%tF 8ʍL\e( ԮO2S>޳gXSy;'FN8<<)A5H>%eؔɖ̴*fqxf+3K<.l"QGyh'#Ʉ@H=,=nQymҜp_X[{Z-W3|]᛫oݺzb+_n&z1~"z!V-LwG,/2σ&~f7M 5m/ę2R{09Ce NvQOm/ #Cj8g^hSA9dB-N}d)^z׮իw=#\~_= |jk}Ǥ}6 ǧ8cB BJ$;dD<Ԕ}9FDDn-}qnq0gp`$G( @}H@<?/xE w/gz{o9kf8?4tO +s O1[7i6V_zЃ=AzЃ=AzЃ=AzЃnVz &&JI!#+DlV({U@.F>dGit-C3<yQQ -B +nD9t jF }UP+@qԃn@E$NԆ(&4ArԋnFZfzԏ2(*eQ7*)("@6tYq ",,[TBC+omB-hm@]h>qx<bÌ.`uχVHRF8;ZUF_@{nwf} •٠d@ H3c 7P0@y(JwB`*s9B@p` ``8qrht/lXs ~{Q=dWdM/c +±qd?D[  i./"?}p=CLk.\ 2ij^g@</VMSrH E0~[8 +xw:CZ!cu{WAn*0o:]tM4{2>xWuǁ9>:tСC:tСC:tСC:tСC:tСC:tСC:tСC0OAF?3aB^Z!uƬj<*}捕7 7x)-(@ +endstream endobj 677 0 obj <> endobj 694 0 obj <> endobj 16 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*4Vp +o +endstream endobj 14 0 obj <>>> endobj 695 0 obj <>/Filter /FlateDecode /Length 4421 >> +stream +xM%7Hpd%yo`$ NDB!%nTU&0r\UN4Ӝ̧onvֺ7շC mN6&\EГ=Yx'anV>gTZ?p%hY84\db "Wb(!Z^iI-5@Ek^+ | T<@ 鋶 "]D)'\G\ fPx<"%G,͜(KN"LA;|bR7Wѡ򪚥͇O$*?H#OB\ځ)B2X" Ua= +(pJkӧmr:unG$̀u,x;n^6RXg>ħ8(/pԎe$)·GK)/MƋR?h \C]'$6IpnQ_"أfQ%k#]A^D rCrhst3InA|HmQ@c/G)@Ngc_ur!!GEI%". z1uZUhLoE˱FThdc޼+b/tAS#%uΠ4hO0(@2A6E +<Ҭ-JlYǀeWF$s7YYt4QG;edy+y:=kw1Tk.H ˞]D>㽁, #`EM/gԤtI<yD;+~pp&L-l|{Sp\@ +Cm-]&.tZ +<'D`M7󂗘<;+^-ȓ ݳmj06jqP*Bs/Xtu= vϦELPJReb.jͤ+H@"m5'wv!|(q]NͦN.!-Vaq/" 1zeOu. {3O$uĮ>s;)$Wb@\FW|y}B-2y}]RmP}CU|DU?^k6&`O njGf*J5E6܎9MJQFl@E$}CV,.z! kw;m#2T{aEsS2Z׬ +cMj_h=[B`l}XQOJh~[%rd>3| Keؽ'; +B ?xinsNt0}ϫE. +'&"PHVTsHG}Qtn5 էH54 #}zk!1Z]5|At^0llݠ"Ǖ2N`GctAWq~M;Cbp>(YvwDsC:VaY)M˘ xWNzG&op?V9ĄN Bܹu#}$L0SUYBejHԀF8kϥǎ+j={W ~3w%ÑD:(S0˯09wڇ{y`9bC:ߢX}Mr;VкrE 1qɈ[~IM債Feqؖ䆘0@ɏE#g)4#^e^œ[`l7Dv 斐K.4g|7BA] {7 _|å.uIG8`7=8.(WګBB$\OmQ/[~W9fJ7r#p`Rz!'ᔯVud"Dl8,ȷ0x/RHe@S;_*eJA$wSuɢL tA8 +x| wF)9 }ӉYAإ$ubhT7.#hkEY4) ʚEIkh>fd +G]Ze0IH?#8vҘKc'Y #*>C-t9> DVD zKהd.R,ÞX32ݟSJ5u<fH2`FX `-!4RC)' 'nR2Җ]"m8jYDZ*-1 QJc: +m`b=lkCڋ֧KfMhIá94FF֩"FTAq0ftŷ.}2Iӿ-Ĺ!Hfe&}sM6)u6ݥ7UIr]2ll)I +Va+!3|0)灟wUj=8k;t! `%.Y1+HT3QoCSʃȀo! +΢(m +w(cR#"2avk,%(=%yڱJ7R"*Ks#H/iYhUIEꈪ 曡 ϳLvju0(jPB'\+DC\8}AnLI\,:D Et ;Uf[u$ܸ5}xnmYODlEv7E gB;,94hW +Tm|9Qw :eG: N:.|vp#r3)#Kp8#wORtaKhcç$Fy椗n*tdi.C/K{ZmB@ h:F6\ }_s>2=Q:K%S 2Th]MH%P=B}J)e5g*S"HOi-@=~Z.L6hCxu/vA&Q \k]+O75Ý6'FWnLcz-iP"6Gy1=p< nW\Y6.!n( N~m1J"<IkLZe'3 ,T"-c6S@ ^Dir8SfBĈC¾kĩtoܠOBýsiiN|#RDc*ݿs kcS.5L,l 7Qa8EeLr(kE2q'5#fM'7&-Mvuyx xb\%EJ,~lAuZKu:w]ji02ԋ h^£0ξhpSkʼn8_fR+"T怉$ cɌ 46 *2:9R5 =K0|<vOWDثR ݚWq ˷(t$q>6xr(oҵ? JWӜ x9h|ʡ+́Lxpf,|SlAhB\ȣOp6LI'0(%gwmn}Bƅ6փT}bqv"#; H MR狉nG|8>W8ݘu圽 ]^{'\'){}E:b^|lt̥ZP@ tX6w0{bFuWA#n}<7Z4W N8heTZIˎ ZiTspܹ4eBBKa@ufN(/v?>}Kye2QUގm&lBYљ]"p*shэ{Y^ٔJaBG>Td_9fh&O۸Ǔ7c\I[͒ +mNd?7CzOmar foPgT\{;5u˩\]#sk:]m2*էWA ;A'#6կOy u:

> +stream +x+*4Rp +h +endstream endobj 10 0 obj <>>> endobj 696 0 obj <>/Filter /FlateDecode /Length 3896 >> +stream +x[k]UnaX@ypmys))P2 +2`xڄ i`!`TL51B$% D??MHF4&DksZk߻̐bYk}s=Qe,q=כ]_w 702S~m4.4TYc(,"UۆMI0 .[iq)yy>AsZAOsU Lq#+ weQ;"$JaVECa!PĘ0Y7ݘ_ >^._D? ac\7Uh8πi\NlfG7=/qV0\-W* ndIRvʲfKGaDb:Et&REXۙvZ:p跼|}XC/ ט=FvĦ%ċKܴHi7)/n8Ǩ IG `>/.D &_bzIa!߹PNȖ'UwS-._7VX>}r[ِU\/`EJ_ވAfJeEAlԆctUCbOo,pbF" F_`z߯.U2XuҨ4aq,AmNVLs3WtߓL/?cf9rfodcᎭaR+3Z&;9s$@:ҿS0=K&̴ԫO9y!5HaJ1*I5la\il4yC+4VSEj(w4|9W/sET_Fo%ťY=#CIe維\%* 7[I +diST' >l[e fhh4b?"WrX04nvR2B +,T^:2Ҍ0iT&I$}*B I]}xH3=;'w-YZ.8kB $8wT@/sȺѧq6w uk .bpy;_.\ 1XgY1 CjpV1> "J H0٥:l vsIDy*G$,u\<`?t%I̦Lj@ěkC(1C9Ib [k@֛Cb@"PI +SH<ʀ.Ʀy\4 e~pk}L |/%.Ӆ`qPw4$>ҕ0ZBFDf/4f ;}1I8ēl|oTIL`qh`R:J<ˍ(rvV,G'n҉[/q~ hELGN%!:"˒C#^0 +f) .[3Aga'XK@blmd?)Sy b ?.9 b5* nQT#$KރCp"-6B1xnihrUwS[0n&@w5aй@0f@CrR,CE-sU fʯ%)q8 N!lCNqIm޷tB@baLp|B272?Xas*؞r_m2QQ_.;Xy8  TeBW|k#.uʇC޻[X' <%; OhggT}Oxe u9DWH3HBR7.d17A.}iN<;j83(CUhx& зk>wKőx^ݛ5SP&Uŭasӱ^bl/58B +78*'!tlu ĵU[*!H00v +ƳL#LhX/Lɑ6:c9, WeBUHhAJCUEPl1(iI3V:ci\q rh|m{iDF@qax"mkDcI l*ܷYwpƤԊ7in d71?,h`(+ul6F1hֽv^>*.|Q* Qtbi{iY$j]tq"PUVM=5@QTc6H蒈jx^TŽ:& |!ૻj*0ۋ)ͭZc;DݒAfs=GF"++ #+XrrRz˱n!YD3-ꟲLoKb~ZbYTp{zDz# U&;^c!g1'KVgCH"B'`VmVd!`1/Vj1b{YB:Z͓K{18#U]|C[;٫͡{2'cT +UU#U9!VZWXC+N {Z\ez)X3@FSBk`=3$U;[szי '5m2,YI 6~bL>ţD᭫Ϋ<|QeS}[e$vt$b۞Dl6<"D ^@3⯿ db[c EI];UJں^ +7,'0=wȯd5YC+Ճv{T9M<%|lwN\Z*web\/gUa 'P +endstream endobj 697 0 obj <> endobj 698 0 obj <> endobj 700 0 obj <> +stream +x]Kn7EZv槊$`pL)t {up33YbRx*RS $5GsN0 +Шcyۨ}aHp:}vq:nrꘙ*፤޼1s3̨cw隨 O "!5,1?ML4WyjYaL¹{Ʉcv4ݦZ=L;PaIoɘt2.Cc'MdÞ,خ)s{2A7ԮNF=L-a0yQgjQa}S* n0Y|4;1M&+G=L/S90 "ZJ=ܹ Tq [1} iF1٭(`9LKLcZ9zj̸/op}0拗q5f}fq! srs(ZX) kQ-/{D111~Q-XɭVsgɸU3a\q/zT8c1b͙eJ50b\r̨8V;E}H1gۧ(78pLX2W\&~FAZr8oڞ+Z=1Az +endstream endobj 699 0 obj <> endobj 701 0 obj <> endobj 703 0 obj <> +stream +xy,IU/1fDdF5׮ڻjOgsznnihQQAL^PPY{=eF3ϻȪ9}ΩY+#V["Ϋωǻt{Nq?s#=|{{}^zw;λ箻-kgwO.W?'v?ЋӎWz#^Ͽ .vyG7睏~8#sapȉɝҩ;Mm<ǽO@=g!|qg9,9o?+T_w>¿:Ѷ>Cyzvko:s15ustssՕ-"L~c3/6DAkfQ3 p|H9g}{9QOu'9s?+߾ի3w+{nԳ=쩳cO=u)F 4څ'AC.~ןG`uBW֗~"IinQw:t Bpmm +Kge NX͈^s{DX.7SjB^wv;-u`Z}fbBw"F&Ye$n,!n-/ne0l4{m"oj"Q2k@ZIyZ4%ad0aVA8UA2O[n[g%0[+o{[?;O߇?.}?W;/όF>Ҳ+̗V9Ϟ嚣GX<$lK}m&eSfkhuu "!;F +ЂA+Q?@d8[zĶQ'j PVT +U)K8KHy0OBQZL( naS7i ػQIw?PI0ݭy|X+w{(ꊹ"=ҭ4+w#슈2ul8CĺC6ۦ>~6 X1y'( yldep[L.bV;xtz J bNۮN +w2ܗ(aGQ(銇e0KXU35k0_i=$ {F8S`]ЮO<_^LF68_γ_ 2kc%jp2ߩc>":CfHcmk4ђre^~IXhLt:-:o Zxphs@`m0K_ P)}w_ +]"b$@8F0dQg QTtanwQ4N-j#M'ʺ9DxQƃ276oA=dOCNU+40O@ 6A!|1$PXA\s;K%x4h}gszS@ ̀:蜜fqnPua2W*0%_U/[اdfF*&.]wMܾǧw/ّ2{b'B0ѹØ| *=pVT=uSF5l<։\Y$eԓp ˮwLzD~Nw«pݜY-~UGA}ZVwv#^Yoyfkc'; ˯@s;31XNݐhFAgY􎨎h&/̅ihl\]HF4#z;d T}/݉[;XAq~$տ@δ4n/:36'K'E6!-hX#Ժy^sr&.v `i8V$=88:فHR.ŊVp` +,\:]Vq|[f^P=[-\8T(YTH=]xClh_p; <,B μ㹕bir:XN[d8<nܦA<9i3z CRԽфDB9j &3ˤk8T8;wZO#VeE6{mj5P4kB( +]Hw 6tml1 +_eD>d1oVuP2 9HOF&by4컒_#cɇ5\ScճF$XBn{'^ò[.ҲF`2^%)y;!>5oa[.=6wH{R# @k| }Ȇ٣Չ)U܌F ΋w&]$dJ Aܟ?PN򳌀vp)i(^ |hc +#6Y" J~/o's#ը3m߀"5 f&O"C0iClbWj-x$O>.SS҃ +<3W Ј.\H07V谩~yXpS;7oeYվa!gzcx/h?.ވgkS =e$>qQ=zQ K)ZY k#ii8|AHPv ދQ 0F.뤔ق!i"K+3S?l`Q"a[T^W8|JsT+${u!oo3OZ<*]Ld]o4 Kt*0 1#Iwhqu$ȴ5F(}>A"Ai-VMU5%{v'miyS曙2SLm?=N}{=u'K랡_Ñ;v'3vh7żZKemV>Eyt\[%ZEY/[y^v48`EST\^H }EDJua06Icq1Ȳ`NYoQq$<-) !(li~l؂&F\NB@laH' 8>@IRsM(瑛@ +'= +h ivW141BIӶR (nH\'J>^WSП~A(v:C_u"F賊4dW`uap4 +5b܉B|DTr\Q*젋P `a{enۜp +쎲eX{㉼86FQI|K9aލڅLy$E5iL1@Rs>ÆHKUV*$)Jc xcǵT>QBc6p +n #& 9>=,sԘVʤ0ǜ8OA\ڠ['H5!Qْ<:`BF)ɭDFA}KfH ?3A͠`?elWs:x@qat+X>a WDhm *J@o /ezd]~]~t/|ĩ_Rő^B|޻c*棨EvW3Q>9p\f鑹8$.ߎP=QU'NьY)3^Mz% Y2JҀ2o8*, @YF_ +ʻߋҠKXu;R݈hWޑi(b.&4ՄTEzkqzhbb&m\#*)C[nivO,Φ2&z䮗Z?/AmAhVYJ`ic;1+>-oAzZd̖ۧV7cэӑ-ƄsExL&ip,y!DiϺIuÀ+,lID?yr}s K&b3%2h4%tFwB뀒(^1lr smmK<ۑYjP`#C]qG8e>7U뤺( s!Fwo+!e|m5 񯢸bܶ GQk3lZB62: +"虔PNZ` +dr©Uj/Xq⪞jF6NV fH6vm$(OP}|}N un=1S S١Pu5)Wo/V#-iE-`5}[U)@G:0ou<8Ցg&±+IǠduALѹR&jݝ}^N)~Қ[֠|O߯h&WuA02_v(2<H-0iԄrR-JjυNbJߍJՉo 85bb8) vkn|zZH# "I3@m1妩ʔPtY( +#yym S? f*kBLZ κtB7!2~TǸ43Lۍt)>?Yrԓaϖﵷqsۇ@O]S7FyGyШN(vZ ._l hmH< \_Ddfu}Fxna}p8$#Ψpm[܋L/wv7ӳ?WWWp|,UGoiW-LLr?O֓)e4a4j߁bg˯pِƨJabcZ&f8qÛ^@p n1ބ +4wt DnMJPIHq12`IY`!ޟk^mϤiLH(7'80Ԝ}eU c I,ɒ52 "@{$U Z٦ץڛZ nÜԯvyE)s2(,HdSq9.0pOt b׺k]P|3C5dTaP *:ʵ8W؂^4f%plz z'\DR&izA"G(C^ҊF;1em! H̰1m]d$ c +1UD4]>V>wyofFo-#:lüzhb[ &`_uH,ySsNԮ^ckDv:N'ݛBHhHNd-,T[j[0Ֆ0!gSffb6ێ:ǠSn/Q9(eMJBӭ+kɩ&Ek'qeٓEq{Oܰ\]o]Akq5@Ұ6TK? n{w&M8^b +/'8 p#`zSU}sysGfgM)gβ'NDJ:g. 3[/QJ}"6xq8 V4n9DFk3L3ȟ3E+ dS@\Ȕs?mx?~yVkݿ ^\P?ydp{1߄'2xw)@_Om0I5 +i#CZQaTp]#C 7K2FuN0 +&O9ԤWWK t C;> "8~x zeHq 8KsflV2o'nMJMllIK˓J)<;xGHPOMZPT#DAGTGy_H=&WHnK(3/-0O=V% +"C0(익5A@#P/J3Huh{C欌 Dzٙ';$PGs;۴gmݠXJ\0zbl^QEe֟&*I\lDn'M8N{'?T<z#!5aa`ZB7Z|u]:р]@P% +Z&Q}͂ۍ= U93%kZf:85b{$F0*ؽ]H x1QTb|7?sw7bweYfCGi>*:/+rOM=.FV[.fL{b^C E0FsUloT!^\a-[Fy~n!gl@>.E?ЋdO*zؠrR7Ƙpઞ_IbMìX؉f98=Qbo1<5NpVbƱH]Pw1n+Y qFb[\ /T%܍4Sa2b) C/RGz +=K=B/mE.ehJ ip~dD?XktEV;UN![eQ:5ܾi<4Jnz9QOhB.#b^7˧|+nvsF(`-Yu=lKn8\p%XPx&y!<]ٙՂaY84Fv^ɥZh|6qU=jeEߜ`mDϕThҥ}B1J")DPqJ)çL,iw;\h![wҮ D~-O/؛]3s\ z{q[H.L|mcg2RT[ZԀtT|8J=)$8yliD"I}mؤ)mƦw +4oP9YuA$T\!+LM&>@@FpL@wL~dZ`M In˳ŠXr-6(,R^05e͵$Zjp:Qmަtɷ`"yc\up=L4k4~(.n1d Z*^V3ܝUc2j?-{,>.n\glYlĸc[!֡ x Ҳ!ޘܱ wrn+mQ4ɲbQL!F5v c "K1c%Iδ y:"䶨VSeK`.}o:,;N1,d*4.𮇳aN5&f +xcUs}7mLnOf 6$]:IL +}&2O>=/2OW᳔X.P(L+hQ@Kߪ#a&a4č4@3o.>?"~>8=AT3|; >ei|x"i304>AAI~trԫn}لc?N} eexz׻?G/g4דj@Uޞ$/} ܗ}#Y[sBq<Ѩ/ژnI}Bq!`4Bo=WsUi OG_ ~PX\?5e۴wtA2(c]tgnlQ .2"/ XL<#|$:ӿ,8'[AYVdh$|kqMVJsvAYxXfnVMçHB@ZX纱~*Z[/PrT)%Ж$k؋"m^wST#~¹Թҹlm OK;fȲd7j1S]tcC1!{.#DJ.х'2!(OI:esP1ńf0XX'_ߏSmx̮]WZiM%y>eW2ɘV[*=W143FQl%Ї͜^9- +.sCVh8uQ-F%tUNeqhx.Җ6 N-XkkHNW\6Y¹1&f7I&S\/C I42t|j >2n"ѭ'>Vѝ^i@ح7"ekNU~tZС|Dm`})h}UpE3<.}3 /̱҆{e)SsPG皰_MRǖDޠ.tKZ-=6 |B# &eӯxؿ +͑I/س ~ +ni{ݯ ezv>|qZh"<4̦, pؘĪҫB;{J p^+=v5 Բݹ XZFW_UmhbUT[p\ѮS$ʤgݣBjaaW`nFTSn0g8HA^&N^3wԢ{h_P3b;99 uS@&*[k `P1tVZ Rn5Ȧ+93 ?m1Pa2q c6OF9M{,X+(k~$)@$4h>F| 4n(-]i0)wZyz6t"=JǏ蚏GEg9=:eT +b_5,2u u +O"n}*r@xqjiU(qp<{ `sPvю83ӹpd59{&^5OݪzIbk]>hl_Spaڅ +RefeTF4>] VB,-= Jz{]2?Ch}%D^_Pv։勺Rg }w"|2. .+%%1Vt+jb^'=>5UyXӝyIfl/ۺOfo&3m!@J}0e@ iW(UReT+\).S2kz-S7t-y=Mf˗-hm(W{89 6WLA 1k} )vЮ{ Gy Y5Psr0/XͱUA\>ȭ6֍jǢ9ӘIk Wmԛq">"tlb°dTCs\5?L3hdY]ݡj]%x K1_RZ0l]㌙l~y5Ϧ:09Sܽ XeL"ĺ3N[,H=Z\q/[sޔLO&%$0E]K/E{vF0;㗄\/uc'c1&$|7c]yIsYVD\񿖋8q!TRkD1`f .z WprTH"ARIK Vڌ:jkj'86Wcm9GX 6fWo"yFi)9!C$9(M&F`IO] X"!{U-:g1,[dQ9c:c|μ^ TR3ߨx5R bNxg~X/6)k +=J}3'ǯUKUo7dV]Pf,&{P ƱKt݆g q~}x3zkȈ} !&ɗE Bo+pd+S38p߰)I %AF4=H>H&6\I@a#5uHc]3|"c,gR5!7 `c3 vIݮEnJ!]Fܚ +PYD,cܨq_wCdG G΀ш,ku(qoWu/Ggd#:=ER-/d`B7CEER B%5[k5 +}Kn?GkzեOtax%dr<\*MMWs :)g[ +8˦(@OGIl ;I]zgqͲ]<_UG\S{e[dN#QmG 5,|JCBu̡l\^)a[d MD)eל4FWF^L5]j9_*j4{X "\H@&pqTVSqy9:Fmg۲*x[ꝝngX[A]AnR-x$奤iҘj-cy-cIZxh ZNJ $2eVa\ϧpYxj 5Wc zkPWYKy-!zpo ]/>ԣ9`6*jNV\!{6Zঝ9.TX ;O+D"ٝSifW5 bfp`/NHbZUϺг7jl^}R.ed{*l[͸tlS(òێ=G+hjVx8*lj (m ] qMvb+uuiOTdy QW;a3\1j+vm[涾on>JJTtT|sS +B@i(rdba`IBb`o4AgpnikvhJ^|0.?3v!x1x8è@,vtQ789s@5\h&J>`-|4 +WiZoj^zB]-u/OW6!5pHV# +upz +58t(nٝ4b jag0 ]5l[V=%ْo|nF;tu?bwʫ=mCs.||bmcw4D rys {w{bx}bY:[͚oGPA~[v(nƼ=LvϢ0 +Ms&gGA5$bl|dzZW1~ξ m*XF׍,0S)D(uRcR6_UoFɤ3շ:ґVO/CK_J#Xei ciLÓ6!O#$dfs[]+0ҮlvF{qY^x4Ɍ@b*e]$[-_tZ=Q, lvm|[e318sϜ<)bʋ䵽{ +Vߕ+֋$ &4R%8)fmk6t0ƸZc;[m[A jG>|Ԅw|=#_\)jd3rUW@ߚs×(?G/qص:i# "P߱d>!yhlwdL'o8OOopx4YGNd>qǫM .<^Rk݊+bh-\#!rm] P}*&i 8Ah8D,j Bٍ#y< +jն6Z{\T g4Kp(VvE@ߚsy so9.;nG%:m7GXQ×xBx^7Np eyhf_1ڈۦKoy3*2BnFߺ4^ "˛@9Á(A-:neOg'~`D=\|/[LI`q"I,OҤc&uOjSS#r7b.?/ +v@v&M?oy`e~D4v{wS575mX1n'!TUMj<˄} %׵Qe_Im_UuVMد8#t'^&g Gp,+pāxHFi`K(g`h} i܃,;~}ޯǽhWEZ`!Y%!EX)X# H(\QPP1UH`)R&rpbv8>Yjfl͝{wsv~-{ ].RʫMz &?0k:z}N跼@V|ue(;:{;β< My}r}z‹0:chAx֠a3,B(VaY #$R"\G(QKh7?w-'X/< :.Z1i<rؼaru=SV=~Z5)ot5t/A?wRXgV~fK_NֳMgwuɭ>fMHM#WUuy9֑$Pt8P$aC4mRIOMs22AgЦ#e:aA) <ǎu&D^05b\ th >XK&jUSI}\\mr?|Jz'𲻓jz};C^YnW|Nh^- v5#9+S[#Mjn A"E}4\l;Pn㚫k瑐M +@xlo{ڞB0yM#4q٬@^ܙH ttlI0 $ٞh6ݜ.w3̉6H2T~Vy=w]ɕJ٣h}RF.WClJ䦗_tvlu۱oq|![ZaѤ5DvX1XǹWOHwF-G,bd< )Z=^&mrBUlh-2pAۏEUزi CàIH#W:W~RNL1,QG,KP%oṍ>ñO*?|L\hMtW`ΰXg}~z*@Jp@AЅԼbN2V7qOIp= sl!xYffWBcNbw8ܿv;jsʕuO*h[M0^!kQBuE?ߛ-ʭ2 u #ZAr.Q59aa}]zyE1vɯ(bnaG m̷J#H@[/uը=V/fec+{֩f^,a]O  ufl=ӺwU*`Gbhdx8Tʏ(Ps(:Nښ9b/NklJ/PSLae\3a-8U#Q)ݻZwye{Jo.hWog +53L~gb5DZ{{W?qդTZ(>&qaLʈ@FbptT!TB1S:bWC,^LHϨ\Lٶ'' N}5ʸy>WLi0]"65DKgaBUD2&IY!Y||ST-H/zbΐ]߈FZYvM^>YYZC+ +@RFmD^QV8JDPc>004kʓBջKpL>ai;k,VAN#v#G9~\G_]Vxhg;JG)2hZm^t񞌂˙Q\X\Zv,2zats,GV%6[!LO6-=yRԛt"1.kcnY’Ґ1t4Hm ]u {D:`6S0k0MKer*tb4%fY/3nu`@" jM҃%fvǕ :Ym2$ f?A8xAP ->Z0N*Q1t"a<o)˅w"p)ťtmQ\+﬙eh<ӌudq1@d+0$q'rFOZMl(b!Zw-EG9/ +e~>Z0I,Qp"R+MK0.Uqܲ,#Ys%*MLjo/9_;_ȽUSi# =j +m3$JnKAq2Z8lnc=*%wd-18D_,;9l[eє69?9$iHm]Ǖq +{s#{")o&^q椻樗3"BWkZdW#>~H {(7Ӻu*JKlHϧ9{|<̩꾒 'l~cXntCMyOr>6¢3,zŴ}XH +-dLzsZLWRSm;xn33wȒYʚIm5kQZѸΫ'3&˷vU*HXX/~u𖏁*#u-t +t5cҞ <⍨ZŸn}:NQpu䉐P.FXV9rX|nk1}G*\OzϤ<&ZKX<Ø18:.PN1U(:\rN*Y U*N\_og_QDY N,cu:CDZ?{B5pDg-[90HԒ 7"2q<&2&a?{>4C00Q Raqsqxث@9/x#:deW$i& β[PRDt#g-5 &RI$SE0tD5&0җgB| .,wim;*WW9]ye c[?7Z&[3ϢJhmf>P~}Kgzs<:B WSoBXϕ4Nꒈn諬j@NR*˚$Rϖa^kDfd`chAZ@{s9fDN0XtU u,A h +K6`@YU+cIJqK>G@d#_|/vjnNL" ޑ~EʂuT!%{?5A;-EtE]1!vN" tt 0k(:!' Jc80 +S{4}}@` ^[ ߬OK}駜iS + zӧS\Y.8DaR)gH\I~/+.xȨ"c:~Zy͜M\R+AߩLTg:mӯ|2[Vgv2Xw/JNƋ>xt韬78w\ ⱃGUuB_V7A 1Ai\.u/|27k9aJSڋ Z խB7$<` #%f39'< 1?hcAu;9$h@dbT)93))D+YҊon[RXxA8;׺1wU;a6\IOzQ߯47Yl#'}Ժ_: ӲD/C)iQ{,xM:ߡ`"*1*4;sf}MG&&~(E &qt .{jck[xAhaչ|Ieznv##=3ir:6b>uSWbzȎZ.+\*ER,6l1 '%!AKQq:4)?:./b~RxY@)t}f쐗V`$N3+fܑpq͈H(;Y ).S":He_(6ݘ+k>@EUHPEE}Ic@)&ȦJ0y}!e SM.BIw kE:㡚سO/֒.xq;̢8e:SKg%JI~eH=<ܮ!6S(]B'ffp 6UTc` \jBj#.)\(l.m.}f%Z333{G sסoD/X^[)$?-G`2gv7LGt:т8qMD8\mgͮ2PʣUM𾊅HNjF-"v|@h@sO0G+59T)!,+Ƈ=YrlȾ).[ZnpuRneK2IL0 +sl^ps)E$N±qʅXHv3.xrsTϪs٦XkStz͜>ڣb&TG2p&k\pY9J 'Q:xkScyLoNǪ2`7 5/<+‰JMPlMHױk}_:G"zbXG#:+{[6x_:kY3Ak3A +-zҫi9?퇑wb?8z.K"I_jO/EKKKX#]o` + +@ZR>AP&/ɅjlUr}+@yS߫2 ޓ W ӑ@tA'G܋"peDklbpF# +֜;,$ґZe)?SS}&/Hh)Ҵ'%ѣG+x4A/^_3wx͟%)h;k0E5vY*2ϡTڷkv-Oy"-xNu*)_uޚXɄW3/RK~+Jߟ'DHyhOᵂ?lߗ +`~JK/LYj&I4:xꐩI[n?~#5wZ#;5Y]眔^LF'GhT>+K⼱ǞiP Xc Bn-4a q +Chn"F- /:uAg#((*$"L{rw\T e 3|;k=ŋ r`J]qxރ@΅'-vAHn}3zU_YSXMICwʭ>GRo3sz5rn_aF osՀ=yQ$c\i:,^/Gu.!zݍoۥ*i"^`l&0}Q ry{Y.Kb}  #wZ5%1+~ݡIhILz:,y YW8yKyw`@iCzNFM m+́(| gp'o qp}(ƄR2o^8V7Y{ro>3-|LJ'tiO/yZs6DuĢ6ŏ*JThY {8e|;XoҎYY.s;w-[!}+ 4+:-{eڽ~. +BN8U}%ŪS7 Z9ǞRE TVQG}_1ƼD&)ẜ%A lqlοS,^IqďŻw"C'6 a,jfECt[#f|m/Z>rZb[ᚮ;U待*U_\Y֫ ٵ뀵aM$8+qބ(>l3h\X41RߧvcmG'C QƯ 9B?AE 'I Tˣ;( a_1;{W{70i |1U9k2*W]8<j5_`ZhVZy!írGXn:+uNbO 8x]kcg#[7̗7% ]# %̭˞ZC;/Gr~׋ r(U=tx<7 Òlkv/d k"Z>'/ 0\dY mn;?0 g^ +dϝF~6[CO] wS}a'QƘF?}p B?cs=>VмoCιi>O^`;' [g5SKϴr>l}fڑhk}Ϲ#;/ ; !cpa%_ ;=`0. +_6 kY|އ/{[.!`66v線afg ~]J}wv"f`0l.Wxn=_c:'y5Ma#ٸn0 `0 57 OzNb0\\{639WNg6Ol*?2 ۏ2 ?>7f05 ټvmϏ/%nua(|`0ڜ`06#`0 `0 `0 `0 `0 `0 `0 I*F:j0lGb`d6q؀n> +stream +xU;N0[rArV%w"ْ8 +'/ Ÿ>O&.ol`"h4Jlr4a3âS׺Oy‰y~z4WvѤcq~-╭摞<i|q]Ԧxe~7%Yn +bRa3> +stream +x+*4Tp +a +endstream endobj 6 0 obj <>>> endobj 704 0 obj <>/Font<>/ProcSet [/PDF /Text ] >>/Filter /FlateDecode /Length 2357 >> +stream +Hoƿ؏wLq87@0pw*@\_APhVn//Un=$]N{wF6_Ǯ9 oƿndZjy~=l>}_e9RX*%dN:P (39ѷ7{x^n?,C2i.,#YŮa˂Iʂ.Ney%2N +YTŲ&_FY-i4p uWV Ͳ?9ï̥]6L@?:sM H@v Xw-[.*oqa&cZxӷbc0z޻# Y|g6W>F'>#YFI\x> 6KEI>^yg!f)(i(~)S}IDﳌBq|"g%T,|jY!9dy>+9.:aqHUr#l!gPCV}Ne:!+9CpﳎCh}B[ug0r|Vr#(q"x6+1DC֥jͷY! +Jkq|l,}<+.HcS)֘[ 0tIȾ< +L~/W{ܻÞv{4{oSWrw[{~ؿMw/ƛտE;ƗOÍ~ |_4{FŤ H&fմ >4)9}7,1XFEqO}۱r?1.ȸuofX_Ƌwq͌~vSƒ "lZ{d%XFڎܝ4NHLD% S]4DfupK[͞S#EAE!HIyiNKmRuDW:DTm[Ku4R$\ &ۨ)ɷp2Ka`=h؆ebؾM/S噾K2w ;*.Y 5yh0> endobj 714 0 obj [500 0 0 0 0 0 0 0 500 500 0 500 0 500 500 0 500 500 500 500 500 500 500 500 500 500 500 0 0 0 0 0 0 500 500 500 0 500 500 500 0 500 0 500 500 500 500 500 500 0 500 500 500 0 500 500 500 500 0 0 0 0 0 0 0 0 0 0 0 500 500 500 500 500 0 0 0 0 500 500 0 0 500 500 500 0 0 0 500 500 ] endobj 713 0 obj <> endobj 715 0 obj <> +stream +x̝YmuOpsߝv{v<;cvbq7j (D %($d'x@2 HswV+{׮Zkժ5ժhSg>::M~7_F四/|_z轣kꍇ~QswOϿ?xh4O<_ԨwF}/~ۛkS^o|Ws{oFW_zk_||/,~Onx˯+w6>yϾoƿ҆zk_?6g+?W>Fձ?|/~~>֊^y?~V~kP)QFQ=ohF39jVxڨb[ oڕKKWTotpQ-a|׾_۔L6eSؔm4Mn&ߣMo2Q><)o:}My`S7eoS.ŵ֟K(y(VmM9bGRн Qj˛r8΂7^cVWMywmtS~lS>)77My|[T|M;/_fxƳ'7ݛMyϦ5ޔwnʟݔ7@<ױ}S^ +MyӦ<>)?0?) ~|vS~fS>)ݔٔ]67'Ѯy[.xq\'}#QDYZw%UNhx_}('dhd{[CѠ1O^xu.ǛMM)ܔ[r)ʗruScn+*ئLԺTY>ڔ/l}#n;|"h}:KqU|'x>^T :DT0My>{g7ދ܉R(7PQ9$Ku޿)/Zoo/E]Oj.V:x\q_W}z\lRQ׭[qIm+z*jj3?[]gQ.GyD;wX+w8>c~8c^Dy&p?ۇs+㾶]w4ɖ."lUr>*m^1?x(oB<<]Qcc뇂Gրu%1'xw <@|\_Ok13Żq})VܗU0*^]C<~>G:F'ٸXYv1g,sp3'W'_\Kq}o\r5`<jwj~'Sf|K#Rm{ ,,yQyzXzF +f(3\נ)~Ly\zyCyS .ή_:X ՟#~ҵYR|2g-{cYd_ck I>Xcܳ>A~&/K/+7G;8geٹe8&/ʐ9ޱxx/p9߄O(3C!nr9?̖Mp3w}s~ěO ?a:<?~xv΋im6V}^2{-WK+YrL5,ypݸK|Lg-{h<8}X捶3^fg[<#m.NxZl^\Eske56.Ja=C*~VlwIӲ.\wp-5O4LKcuM~]?{:V=* WJ ? Dh>,zFmү?֘/'^_^uߕ>W{9,,1-PWj eΑY(3 +*{3F=-}^]k:W~X}.yq)Fs{'{./Zk2#e}lF_]ԏ(k_?S>J򫹥o坨;6Wcz<:F]IyA>D^!$:(GF}keVfNqzeLE!N4~΁A8pmӚoO^>KseOw8 P+ox^GNdtNѸ*-m_PJO@HAS_/kDcIOu?y͐iEɲ|tvr:m mPg?\Ox@{+ut e[h%GhC[K>^оȗi>K//GE!p^Nsœvgzw#Cl֏qNݥc 6+̫ЦiO9",jh# Ma<-C;*:EOg]WGe86khO$Z/^~B?MıT 6-CK;,m;=Z+|8ڶ:Ky=YF uUoD[?9s9܈Qoiճ`^A+IZ]9>Jo95֊<3v\A^Xﶃ3m+pZl}OfW\jn򥾟o88,~NuWkXϹK#8C?5q>Ӳ=N4E2(_]2A#L&4n/\5f?/%e;KO9xOz8xʽ*F/aHed39,><;/D|?uԳR9(Cvcݸ mN6&"ݭ1eeܨcɟ˩e:X2ïy ?0efpx.}7+gVc%ݧJ#8y=Fgv/J·qڐI}M6ێK+gR~rchYx2/zʵ'sUֶgh#)_.NzSnjjxލMfq?+}1`OKZoiOY^+U;ϼ| tC.ewg-H0 z u/٤ KW;}jB:vqhZtG2_X|YzH4~Ʌ~Qߟ~@}{<h}nWsɏ +^ᗏ<-S2 fe8~}蟣c\ҷv6Yq1!|yax7'WӞ{s@P?Ks{SS2U`3y`sdDdNVRr2cd"|pZ5zfޝw^z: +D;N7jZvO$=+c5dumsq[k#?a{i^O>%9l*`g)(ZX^OS_ɣp4"g|'_??Ilj#ѹ6 Ccq[]Pv|<̴z']R,Q$hڧ|Uz֚㘸W印&Z}dnm=c_T ~"P<טg鷊;ȏp!pS[zwi}2\sӆdqqW^bz{fq} cn-o7 Y> "@rL0ཷnsG#.ӣ/عyWǛ͍9z6>N/ qv-;mag6N+jx񶮭.;?y2?'m8gKv-nn]fI>Oޚ,G&ϼҗ( .XtgMs3{4)|1FNKfW?{ˆv ܖ[Zۖ=q:g2:Ek᜸j,vZd6 \[k _ꙹJ'y)Ƶ<'Zw;Է폗>|cѧKx9Z.G;WQ_^ Ag&{1EᙁQ=Y7)͑%o5opq +:ynV)'`Ν~q +xxF{7sAZixBcX9xs ]sX\Q٦{YHfpO8]I-pƹo8im߭݁~ɪl%\->EQggA?}f{Ԟo-e#4nʔknϚgt7Ix|.Cs{K}e8G)MH_Ɇinrpy51:>{z;kŻn9\oYc5pvͩ2qN9l:ysQy%>FN6/CVs{dKtZ\ge&/x&.朸Mv(_c~qF:8^hjݺl\ʑ9o=x2ͱV#)'!s^NPݗ:nʎva)mj}0Otw ʯy^4>sXgfG]_88F/2<'䇲*o(?Muz&V77؞&Wپ6\LKwy)wam]|NiǿM)_vx`a<xlK{UfKo?wΓ9/|r#ɣx9lMY<ǹq\U.#drxmc*8>>l Ecbؿ>n]Za|%|B|%?P] +E. ߲>FUN I7m̮7rZf}#IFtL,` +=g<}X/~\SsR;~Ǭ±DCCs>Ny~K|Uzszq~I0~O=Bắ}p3;YLϕ|Nhۖhve(ߞ<@7+ñ'.τA'>I/GW_ ՗~b̰۩bEG9dHs,{kY$^ pl5l6K9!cYa\Dؤmk=ep.KqKs:ݗ6\g=8瓼x2\#|k>hWcuRl*ǿ,oED~q<^=\uϼ^x+kN]빵 gz /1KWiPZEetscca_C?r^0bZ^6g|H:M8HhG'26P]Ɵwϛ3%u.w ;Ƿ4|cɧ0d6ƆW:(eq_TwsmnWnz =nGWK֐'oJ1_^oس(wȳߔgbylpL@Y cr7[H[۞>_2.Z}ɹYϒt[L2d;\=^.ƠmGː,Vqvԡ޺oָvKI؍{sjCJ|ox4%\d1%2 + xנ +[{Dgy&e_JS2YI>̿ͬl%S[ZJ3Lω$sv$L2x>Sz<qeR]t_T$( 94oe0hZ;鮹fn6@v浄9EGi&ø63K\fEtU66+DU;_;z6b]pǽS?p,\{cdsoiWe8L2?Ll>gt=G&8lS\|2ٱ1S[{n~~}cv{6W<7*{Gy5hoJҚ~j8K7>A_{gc=>\e<糤OGfֺnK/b E[G?Le1Ɋx{WӲf or-yO1O2N`N6Y[_ksFIY[Eokޗt N&#>ʌ/p/{Su]j3+UhWmV$yCF.Ko]4Jo +Vt>n;ؒǻU} 1Or3y{Ẃo; ~vq₫ː8@[=kڞ޿ǞY9 ;)sZ$?;ѧv8F;OzC?LqP0 ҹO}rXG(қTO\:𩎿Kqw'O-UáNkNzx6F' ]WKs|{(_ 8ś)8KI'n~㋾@eEqVw }TDz,8C]]1 u1ugZoh+&v==|懝]2sž3GiWc@G=iks2ِr8mfCv]'oY<`-u/n<;Y&kL\22ChF˾jM2.\e#s__z1O QKO&Χj\+Fg,Ͽ#\+=lKy:gqZti]w14^r +OG~깿zPssv8AeeυP/:e7i?v.{M{u~|<~泊I]̬ߪlTV8%=e +uIOWևm?w곴:58_g&C]sCkh11F8/3C[;h7GKw\qHn{ۉgWk_[95sɺ/C:K.>5n0ؒem)g#hsRcǥϟ{qgvCq:{ePƝod{&-Im8MgkV,[|u{|O77< +0|ڨ=,mZ/v%ǂ^rl}9a½hҧpͬC.zהz=@[Ʋa`Z_ـw)Ofm*LuO<| IցLwZL`O-ݦfwކ15G LGL!;ɘeIsٻ]s˦4~gex6* YZ[׋^יZ`c r%&X6׺4{"9Kfm׍wx|";3oU5ig\Us|mIG\נXKtZ[4p `ɮI}m$k_>λh;<_{,ˍ+?C(y+ҪoysWpx'F#C;d9{٘IɅ -{fHڻ s](KG{ɮ_y[+8d^?#]:_ry?e#X/;A]>t՘tքtwO[4~an:8Dk)kVFv &\2]z{zθ~dgfv麘ٟIRgfScqeι5g|g>n_ҷ4-#.s=_p^W閎H&]Kw~߃tV}6+~Hgq.,S ~iRǤl[}* :o]q_s%흟 'e~R1:u%+nOY07gw2\C-{}k spf8LM2@olU ]kxr ^6N֋wEc]˳qY|8Op&YkI㴲yІ:?t= 9&m?0uk0x]/Gs#"Yޥ-YmC[Ҡfdq(J9 0yO bsܟzTx9܃-Q6 øBx5!2f sB)\^8OB{u{g8#w αn 'ך3|в%2H8)>KA˽瑩>vXwv:aF:ҟul1W2:݇b.hap Kи]D;{7U'Ug-xN̓[U|Uz-I|1>oe֙ +kh~g%WU?G[΁)[ىϙnpORοfo[߅gUZ8'Fi?2xn+=mӼҖ1oq<06`?[|oHq\f:s(8?”qwap/d!2)s:{N Kn);eHxs e+%cqV{\S>G|Q>8/GY$dCUi/_AAs/x02|_c^%x"3^en1Q*ޫ^i,;ވ}-_Ntv uϒGOxc?/CߣC1uOrg2<\m99'4c/񗿓G087\/{ڍ0Amivy }Xm壵; mQ;?~dxZX9R~s}FT'ЕomJO69ٟq]'?vViag.p^6l{سt/6z82-mtq0̓ے͹{'ie'ݻo"}Lޗ}7~k,fxyKWr'/]߲uV>}}?sE֡tp?e\|B+fX[4^&;8eW3!O]w\9=fepUv?vŇL2[l}јzSKyOEoƻV5ǙԼ߬lG>̋L˶bVemdK[凲{qd^f[ct8Nnb}|f8)fŇ=A +sЊ 7ڳ9tؙVzuj0qrUe֭[~TwWUW;N$Qj`v$:FGY;OǙF3"* +D]qv||c{;^;nq_Ue@ӠlW\V-+]CxAݧs:}2o@Ix~6Muz%тߞRҨ}>z^&8CG.(eJ6Sڧwǩ ʣ~/}J~gRG0ҨzhL=2rWzN|ToΩQM3}wWap7}+{WTېt +w8yJՂK߅sD)oZ;3--xOg(SZpփ~cUUBsj {J{ZBA߲wi˜R.u1лX fg/hEϢ>F'wSͭW=7t[Su{jMՈhiϏڒ*_Ptܞ K7ZWD +s73lT UY9Zj *P;'a-e<\Pioj {ss#*=ץ\幞.iOVgyC9'|nR>nr[=:\G>R) k|uުiMt+ЭͥQm^J˯ǵs}xhz)<.EK?-p4/<0}yCw\뤍w9*Kmy@9W<~}y^/Oŋ+}Jnpqn >fh{Q8uR +Lch!- ;CqIg&]lj34 {C$#',3Ϭ/a$߁C0ȅ{Rz,TzJ(LUaay̲-Car>Mƅ>Q{s+yP:a~7g)]QĻwEU_^vձmwMaR |xK0mntq>i; c7T\mtj{TxTOKR_oz5RV}9 ԾMB| F~:> ٔo@SmN 64!VyNwTOKvIwSʋ[է9Oq*OzZ tU_[ʼn.}W l3MO0}5Jm)TYAŃ;dS|R۴G6'r! .U9NS6KB{RdkBկMj*NV5uҲu[EݻQe'#P`k*CPӸJaAHM`CUx&WUٛ +MU~#ܩto˵.ZwHf9Z)g9+)/2QUuBX_*unz^'Qu^սy%%u~?WR7sC:A3$X563 {ۚ]e @7^uB&BDk0SY%]?_>xS),\d\UViR1aSmn7'v)  ҏ +sX2 +KS4^NsȖSuzg^R=&$86qE7k&~Wğ+@rs}2Y|e W^ƺ%y ]fCxU0Va=l [\" 1v,$2\-v;˱;BL]=+/^#neIB(Q`ƮI>v=;Ǝ=lٛAv=9v]`6KCK,yjLB<wRL la]ʛc<71Mlɑ3 fbikZxSm y.X/ +m-{46KJ-?~_q /ǟqd)r<#uـMQe"G~%eNG,;,4)1=0`YGޯi;ː=8aɾČ[ +N-L\ o3a#BoCyy& |&dpCl9ϯU +{1-9g8iI[&_@pBy 1o+ Ex->3P")t XWiO9ЇQ"Pp8=b~Jg9,m~,`Z{M!TbQk%y,pJ2c#$lݕu@@2yrq,Hʹu|4eH|erh DZA-iI.ѷ}/8'QfC48$BHrЕWJ8r6!9rqe_FOu7DEQG\ӑ3C9m#_`ffҒǒR<ȳPXr>L_IcB&&%E,2!!G"=%̸>hel8&CnW2OC\fx(k3y(3`dr',BzcMc i?ضR'z.y$zHUr]LrCD ijT.b~Ju7P!5ߞe +q$PBj/x&?CTD=)r7q,TO#g0?sdĴ)!%[(iB9dSXLR,CO%![ (juWŐI6&feꢅI#Vav^֧O̡ i3%+b_yB^X9dBT`M-zᄯ@')^V#mÀh]rMiJ1m@hS~)G~ԴdSkuS\!WӆOX7eGfǬ“rjl`FNP1H^5|; Ȣ&hZ $- $% $=]?5zFab.& +ѡdb<>ܹH^vL,kf?Skh# ,L)J IRBך؛s}r|YXsx9qe&#NNqeW0~s}L2a`d:VIFUnuչ)CrUʯi@Wڔudٌ>BBɒDZ^Yxn) E8Ձ7}/{ZAFJY`jqe[)(5cȟ1Q&1mL[f0'וLo%peQeq7o`iR~\%.^ ×>RʔL +>FnLd}*d ;,b?ܑep CꞪtS%GmxR@ːiF 2ѰK9~ +)k ++ޛ~=wuK OSeYNuP/O@&|!J/*T:cv@+fG|ε2_9Hr3P*i2LrwlS藤%RJ9/uedN {JRc.9I`h?gN8c> 4򁘸 :sat:Ld3#tV޷ R|OQ}$ Kb?Y`Bm8;:0OE -XRǯj(7l` ,\CjN+W1d9p.YkBG7ί<I* %\ɺY*2[ao&39b$&)ǢZܼN\9w%C.9i$Sf v>ϳՇw}2GŔ> ߃ZO i6lWчOC7I[JV:uOu $miU𬑃<iheq_Z ӽګS.usڋ3 pp8| @ <ʜ5KV*A=sVsi8TB'+.~`*@c%zy&Z xsEE_sl'n3ˆ!c1c:ipǙLg$tAaL6/Ee|l%Xf]m56.cۮؾGvxfE㟅nbwiYյ˴Nm6]Ucak?~D{B{1;2y ȏ#O?M0E_]ʅry<\)O'k˯)WbR WGpz8??\׆c_;ux᫆oG|龎e'}vS탵>U_kԾ]{581ƾ0Wcw3c>314buĿM,^fŚk>=ɏO~jɇ'7??|ϞzO泿W?/Kr/TyiK+W/^g 'mv0Z~2=yqȃZ_p!@\7(8T+sUD ppxc+8^vsv]p퓵;kW3#/!` +&>6񩉗W֔3G'p!}O<8|>Ҿ=<z;bËſ^ſ\_,~a6.]AZުmŗ_x/?/_ +"9H{{~~.{x艓O>'bOy~]>0zGό~~sG?6~?w~#=zo{wg#<75/MpȯG؇rӇv[0sY7Ɩ{}]wozs7\ݩk9yU'=:379|`s ۻ{ܹc۶^eyɳڂcon:nZlΪZ+e`br{}ˊJXhm3gRFZPؾ}ī}1'CȦ}S-u)1GQvb-0₆ئ?jHzR:eLVMoK!|9X>㱣pϾzFSV("=V*ӭl܊תGwMWZt({cLqR3 +a{N끶cԝ-izcsaM[fy#l3sg{(&`|Fi&ilLDy왨iP("4p߰c a5H"IwBʗŗrV\Z{0vzjEP! cSw 'tZy!re)@4Ҥ^\jl5NEVQ/V fh0 P.bkf[y nIӭu-[Ҭk Zu0۲7F?Rvȉ6W7{OV4vM]U<ќ[L+ZX\@ս bCJ| _VLˬe54/:S>(V!x Լ{z +m4g`l8ߜEC}Z d!Ιq̎NWCᴫ 'VwO WT79ҁ*cMAlr4P^C1M :W- ZiEG8MUZ[uL|٫^\Xr~Ob8=;EH$\ 婣@y8{j]_hpZwiHV˭<'f8qqKgHhx [3ǫl +s;b|Kk[04?ҊlWg$3DZ[+nVP$RC\@@#mZz>3_0?evbtd4oXl)T%s$l&4$ +Z5^H uQV=S]TXoEz.L>xm(NG^ *VdߔW-҄j+ +xEqwߪLt+ +0l' Т@*ȴDkqLBiu>SwL@kNWlME]q 'm85aybHNK*?N3|K|wغY?&jť/D=mC Պr \Un.z*-UhHXXu?Vuk+Q?T34zXՋ"Ҟ #/Ⴀ>&)`]T0qh .MŊ&HֺbyKϿA4y޼n1"?o]k͛3Sf<.Fw BLBN@<m GCݑ4g  %.޵)v388bjdxPkE)fԩ@mlY[P&{l$Gry1Vgfo+"-h.Xb z){#*/^ЌY Dj;$D& k·ZNt1é Lۀ9y9ҡFd\.M>]zFD^7.]U.kvKVK_Y/]yAviNJvirtzivihthe]\k.[v UOp_:(n]z-m}} &VY{5|.>pԏK;bX܈Q po@1aZ(3Z@]d[NpGLSḭ`;'huL擴~0#k+uVEDVh8>ѨGbКhl}aKwǙ㲝6K `|x>|}<z7_l]?TZP.m[<́66ɜUцQ@A uk/q4`C/ֻ4deV1xk 0_iY hx=@?Ni0y&'5ܻ^Og ==LO k'*Lvuk5k5G7lm&e:}6^E=󆦅|tnKtIPeL0aV9v {zoF3b lG`: ALg;uu=ƀt|n^r2!ńvR4*j<_3\?l={<ㄑ0 +}H~FӛͳN j`pLw(xF)<I`^LarRFf+ߗrN v*c/t{{{N0205z ɍd6L=04S|},nщ+9P>)hdAt6A.น5)T5F# Lu\ZZa`ZͶmmbMES!;4@08]r/˷t twg0=Jf` 7XV +^ +0 R.׫˶(_S~7Uַٛ +g6A<'a4p碇c̄Fuu x1C,鯱H<~$֓M{e ;Fc|7:x2YOX`-ȱv 5k83lǘ0'K @%,!r|smr +lpprtpN`orժ>=icBvq|]߶S(u嬦_0qDy)=픦[@*r,3]8_ >Q uF@յۅ@_ߌcHdl3H$i>؂&;KczT3#N k=4%Sُ6 +oO]F2%ѝB!flgMc8y~߹wr/w.I"%*qd+6,L7qlҊd7fpƖA[IVh҄ +ĶB-h>(*8ܹ82b+xt203̋1\h>\h:6%WAJ7"*Ql/(<'|dEp"0p' -WniKQuuq 6RZ C:>aKw]RP;`y'vbFl{/wPTu@m4݇#Zm³icY-)rxD+ntKTdN د>,c=#?NV NT3R@1hX1??Wyd?Çr@(ي_IhK38Qzgb^UYsɬd76P>(x`H3R?1.(wQ}KkHrGOQ }Q!k;84@#wtd:tFz+hȦ'; B\pc;x 3C6" $h<"qx E t/ĦDk qc'qJrhSxO.-ƽ:>8xM +6qMS*v| +ZQѵ]zZچYɽLfq\]'Xuh*dU9yd3$KˈT;J@qʌ6sfUf=fOK .Əǘ{bPh;Hd 5SNF/25fLye~F}ș3c`H)ϙx)rH6u!F$<4,hRZhuP]j*?B[^G%D4 AoԢ`-l^KP4j![t r lFc!tܥctgK&]BwSI7+63xq\!4D,%e0@$H +0 ,@ +%#݋f9G:/5+Iu#<ܢR& ZBbmJMW{8H*iʑ]oC+Ǔ6e-r(r,t- Ĺef++[yV.}Cp#ԃ*^9R +RMAznzثMDK_ఈD|7hK$o^ vu6b9[c=?Z<.hD%ggLbz떼9=s^_V +|icC(.Mq_+ ֫vЄ_=>FL +F@ +tG1GQg^>l-k~;yuuU"6>K:Tx. PCߛSM--[Щ+;Fԩ,PaE&Ȯ䅖U5%u+oh Y YUӼu;.ilY!?NLĢv۶qKRSTʞ.`k a;E-:xV>RQc'{B(^V۹1iyΒU{Kj)_#ڝM"GuA hhOUĊ!8>ϧ*ubQA#> IG8k2kCdwCޭjo.tnLb(J 3rwŸl7L~6-4 Xe(.rimk ]wVFWjaVcNmtr=rct~G;Dhj7J>`(%PRd}9cռP3H#A`yV4vWYNd!`R>6Da "+6flcޏҼs/W\>3sbt~etMoeX =Tg$&;dܺNA(qZ}^V,{ 5ޣobRtOBfQkh-W8PBj'QB*bXf -<Ԅ$DU8ݬp0Sh]P6R،  p~%)lv.Ib}Y"cwvr2XgzݚJ>'*z.dFYĆCJc)'ȸF]lirP`!)*%ԣ :Q?Jm"{AY4ё%QR$Gc˄$Qk"eD ߢ-/4S W<McC2n$9>}!π'0 i$MہYqY.\9#IOY#v~, =l=/ + +r +0P|v*^k2MCuɘD&j Sokp%s`}|h +g +I%1,^P?+e$>[fyA@0.Zd!k#tց%ϖ_{1BO@F˕/ucE VL|d<.[o +[l5ZtƁ8 @*R7՘0xH؎QS&pm2Y؜$sxJOȈxm41\BhЬAǭV8bZzH 3^b^b^>ĺuN^aR(uqaFؤhc$2Zb1*Y#M`Lvc*%IJyhy ?wj^n{<hT@uuW_iNE2nu. +s1bԅﬠ5JV9mbW' քd@ўdDW,2tWъRq)|Lϥ/N2M'iV6t/v+sr]xNs$ h0a@ãIN?s،mjҞSEެ>`PBܤTփ[l'6{!7XF5]Ok~>s t@j>cuEzjvbu7-G+/`lU+T3Rڰ +Iq[EZ5 +qeRyV#hqdu;7cE(FQdM1']\:QW|ZYmʵB!G)3.wE,h8K:΢jW!A+H6j&HCS)r ZQ`X:??hu%SM`]Cbj+,t"UQxNxgX0"^8es +XZs&N53篓DZTTN0k-:˿L+wYK.N\] +\ 2 Ӡ;U#T+sHL޸e*|hq*Ŕ^%HpR!,*Y1U +̪!33*~!*E}ؐظ`蔜EZ1riPNH>Xr+E<,j,eI|ԖO"(حK'4 cbG6XLrXR Jp Y%UCIؔvD-,г+, C/ +l5Dz'0Be\73;j;JEΔ*YJTZ>m(kEVُ={U4H<)?e y^bW#”8ɶN\!/G'?@k.\'d [qnr.h +SS/^yLmQaQYůxIjR&+T_}Ld 6ǘpDE` +`W+^FC XXa;ղP%: @L=Ը.KdEhCC +^BIvae +]GݍϚ,&"8~f̼y6ʘYg3odcm}wywjxE/w\S3IFҔu&_wyݨL2*,s :;=x{Q,GG=] S3<+0 f18~:\@b]yZ9"/NF1 ۟^S4%I^'¬f0mUej0Eg5kJ1]HmDGW}*bzխIaB)6[N ڪZd:L"eOb>+6.L\e{nvV]GgI {@uŧƩls|;q>!gLtɬԅ$صX/ +H)P[;֎5w<.L$8\,!ޱ|1NyCeuNv "탹+Ȳq̱=<;>Ӊ˲7g<<0ci{h_~ʊ峴lBV*2'_C Sĩi +BIy(4WGWOCCk֡hzG4:eY'_[錁i'>MӬ+4ɆшN;uTAt .υ:S2X8,jecƒ濵u1;c6e?pu 鳢"uB[w*{Z~rчA4m߮:VG쒽k(M6LZ:Z=,H4DUw,C[qq+ Bh~r7}t.EҌ2'}1&) ,ߤ_a_1qj9USep+qЅҡexI8rAO~g] u9^U2:=MW\_͍]54(DPl<+slj X{ t,y/:q*aוüF%. +'v6i`ĩ)$meFmf]rJ`x~f(g c3;5׽ +`|@(Ra;vi`[,֛dMPv$1 /R3#$ _<C2cGA@, ym y3|ݴ'1K򟧭h㧰]ߗ-EmsGسHqB|p%(~Wp/KΆw#a`ZưPֲh̐l"۞2%c Aܾpyʏn8r?;\>Ϝ'q7WVvݟIJovvv?ݿؕ-q~_p2r鐹:] +c +nZP͢}c:Z Ah x4b,ЂM=Bh=S8ឣy,s05 \'=̳1 wX' +#HhӨ]B;F掕;j|%f@{@ˢݢe`zV +Cy( QUaZb@QJL]m`v5 , ,3ܭq8FZ#7Tҝ“=6I>:kxs +& "}Ғ -7Vú?셲\9y}K>hvf?[I\+353`(瘜3֠)("?:|U:.Ԛ)Ke^A=)i`oY+5@ӼPhj%i KUc|`|6\Ås5W Z"^niQlKO۫Q6a6jL q֙}NiESqjꈡ/<1E2s5U H Gf>JÓ%Oc; +jx)L݈,>qK` R}[qY KU\Cק;`l=l!$)琚U剦+#e24ǩ+M웓'L }Kq/L'ygh3pW:c]t/詢_=@hQ&qW',WO3%2A,H[Vw\lE9"%)*_ CTV-;+{aa +a6NvضJ +:};O?:}OS;q,EkTMJiQdgu+9dЄ3V.%<^a{ǸvY j˺2d24UCgM!ZBa1ub` xݗc* z mz5HD!&jrQMS9 s~ênTJٓN GGi&zEgg12$[Z\;meܗ L:Yd6gthcbԓ60m~nD9\PT#5kEZ&&~zwk;KA$M +KU<s9F^Ɂ"10@.yHuA/6$pu,m|*Kꩧ@;_*7YLGU&Nm#tpŌogSH5lޑSk m0Lz2H9DC)@]98oΗ/6.AɑUyqD1qsL`>8ˆ@Uپ`@2xhD*l3N{'-GA#& * +ɫy$}2!d'>)A"6Ȇɶ8HA#.ǢȚyx4aeȬuOAm+0Q|~*n20O2, Ozw5d!B>/ NҴfNPYS19@cːMYv>}`-\r;gM҃>a>cxX3jH#F!Yee%1KEQ H0<ٓw;='UuCUxl# Bb`+b]+ +>"VIu?9MleVTL-{}$ TwWi,+gC؆όx˻Tt=VQ &Hu<" +XLL6nb& OW-/.5c0{Y滎n26otT[ӄ8!s.q4Vc;+5_\tBLEgyUydعȿ%Xpd'yaA~>\D #@ok h_/B07jQ,ǿE!o$ϑgsi`2=.yඒH/} sn;]̥d,v%Y`4oH,;77*gMU p4 x8moꞭ.N+g!ǟ?VIģ!Y̷/e^7A|V"ѷ6'vECsD5 (]@(ݗR QPlsKVMEhTF߀ ,qlmnhodWx%mFA% Rֈ="o6` , 7T۳q$)wgD&EI-z!V4 +xM~l1Š nl~skc~c _5F'_nxƖbesSrSO XfxO1(IL۹13›mK' bFQYj% nl}M5,{ܐA:ԓG2 ҝ`7 Zuc!t/ӋgղE`:.n%7݃xAz\ӟf=$"ӗq"BPnQ㸹yr?!0,^aLQhgG}Fw7 E(iFP`i:xNM5`,#ZD|>ھ/bIw°a<竗:yL&2PǴ¦:_,XFBJ6^aNo?;"1$0$G2;|ôѐ1#AS7Xuv,Js!j8o~ZePG +oǂmŀ0yEXD? +̋X|1} 8  I|2̗Y]U}VuU35=̠FHB7A- qƻb7̆6 6 -2X88 v#6D:gmMg;/N@6O +#[a|{Ê ٠R_v `oOU} Hw, +*AAìJ1ΣzT}iUR;y/?Ç5 D0~PO 1hS2&2ҮU0caHwF:$}n~(<%(i5 z)}w8kWypg>Ygn>+t[oqO?~3>>0i> 7].?~gw $LO.:yc\8g:kWHf|NDIӁkvrV%?|C^+~ٟ-͂.4o +i4%:t=bTH}SZ4}/W`-+͈"ݰ HiV=|2Jzk(8+ytӡNNFn\m;lWVg+@F|J&/oϻժ> +lu,W Q%be+x s}B |u'qVI S~)9h$&uQ$WtGpA:#D/dq+$ǭ>5;?e:< +jZ  +~1ojmv{+oVpv<,o<~?)jp(\?[J3#Gba˓EI3球Liů LR7?y0.|SMGZiJ4L_>l(Z\ @,o{`!Duj=4rR|jƉ4 |Eҡ~y3d^ՄP\m'42cJV2r#Ux =aK(Rŷ2I6եPATAaICa~Gѕ: W=!٬iIcua~'KhߧLq 3i}ȩ`/ HMpuLW|A(wٻ% +8 Xܴ;%^{,D= B#,ZU"+@,+8L!"#Kp&TƖinEe9uNfa,LFapݱ#}x1} ':ȴi?tFD~T׏¿mns?1,uf:ٜx"h;eO4wgU4z#Q#8q)(k(+!kBm'Sk_L˱5um:=+1;+n+Ӭӹz)[;V]RH/|Dwȴn?EqMR\X; ԛ2z/e)36e&X9Щa +v4[CX'B/pTY7YĭYp@l_w7qՄ‹TYRZRyG+ Nk{O,()@ކ~$Ѣ&G};0/G36oy7_iK!fA[ X,j\ߌM]o:ͫCITrMRn9RRblQF z|ո`oMH;"T> x:ez[|Ӓf(f +N2̻͡L!?KFUej5J^  f9˵H0}B_6;gXHpG0z֨Zv_Xfp"k>:M b%M/IDvdʺ~Q6B4o)?H %{'EDqؖ;*r#{NU|D/;NItLAhvQF>IGAp4W'% kvU+:;pP?5EqD̹w}D-Uy,jLyGMb|$CUl Ltf-.r+. ȖHԖl0[!p`ѣXȜ +YQ:WE{#)Hm";Ⴂ֢zAuii3KYsϧ%~6x Fz#,. E(VLYZAh]݄)qJ2̒+\?@dc^yyJ C%*?t{qaVOq(]+#$ '>ruu*n(F rxZ<< p -T*XI>re\UGU~|sS\R&[x,(V>JŔقN6} >7b56#q ],r/+`kkyI]M#e8*^Fl(A(g]*Jg 4p8ۖ-CVF@*V͇61荁l/CkBE0>7|K5.=dBy>Œ({7%Z,VR=oaMڎ|CsI0C,o(۩~|[pWF 1M^|VXa +UdBdY睏~p3xz[6,3Fh:NOD,ҸɁnWH U2jWȗJoC +SI=\<*G-qPCsޑXVp9Aጎ S*{b=u3pw ivrJ +ϹygѢUٗ)5ƴ؝q) E!#P;?h2:F F{*2l33;3bTLukۮAZ>*c5KLu뺹m1ꖢnT]-]-k 4ל648 }u +IWMQkfȕ&#HxR*?@]堺4w^c#B U8\0m;㫑kFIDfJ5xLc$j@WPl:U $Y2Xk-ڎ^LL%dW3dœ  +8bNz/fn*$gԒykNߑ +edXt$ LNtKO585HPA@éxʈ+]_ʡW8Cm +(X%l"XKu]>quuIyͣ⑽gO!$)3>dtc:雦[Od,#n!Aj:HՁMUER meIS1NteXˆ*l7elǹAvb˿[+$|_x2L7h8vGL;( y3uϩh@1ԡR/gC4 ߒ1dS@Mz_LQt͎,֕ ?H@s+ 76j5ֳ; +^N鸈qd~s\V#x3sdu'}iX@)#&}9Ejבg&{sb?WuM=u(Vp snkl+,vմm Bҍ1 }%5tbXA@ ׉}{>⸐sSS"H.#M(F=6' %7{Ǐpn?_^Zd/l )|8UN kw6SۂMܮ>*Þ(8GT +~rpeG!G {M ]'{wƟ.4&stE'zXcX!%+&kc^wEp v ˛AXR>*^Fnߑkh.i州6w*;%wY0LyEKOKJj&zR,1ʇ4O 0uIB=+yv5:ӛOk-jg}pq ӓt'uvҥaOA4?w; Bu` +Y +p Y&'Îա60hj[? RjHPE7U.UJ$RO?WFi@~(kUAvMy\G8<O}\/a\r$Yc3XEFs'i0fAsAl"/4%\l5%%ַa^wt]N\VX\8gP5N#Jc;&LO_ {-7Vo#T  +2&vaSÑ"{ޭ=o9_Uuojv%P .[( +ak2u 媱|WI?+LfcW,#`f3HAymWVzڟ]압@e=5_v휊E:aNJỏf}1er.R5[i{)}hgdTDD+[#Rۋ +GjSL^gʍYY4{1[;:S+;Uzj vvQ +GXYJj6w uɣ?2C'@[!X.UQMJ>BaUJB*hQM5N{L.[dΫL)nXƅoƐN{Q d@R3nCxzad&DD7$i+2_>껡K,/Y88rQ]%Qu;230I컐ObHoRb]V^ 9 *o*EI#1%2, ednNhk! y6 +rzw$].k )qHI"9t`EOZ8R5o\ d^*jChQXBߣ맋~26fRz32KMQSFqZK(Jj +n:["VqR 0s%fbRxHbc-Yt8 BUY֯KҨKܙX:޾$ûy XhZ5~.14I +FvCT!7O\5Ұ^1K)d,sDU.&ԍ"x{gMe'Œ,8J!|0hMˢ:Lwk"YbqCogN-x-+1W/d#(lN{Ke")~u+KC-ٟ7=iFb8jF%0 ElL}NqL9sJJv66f 2?8X/-VbUlaFyasul^U>ha5D]3 \h1<F9Մ|1F|1(h㒭zzyFK5Y i[2q7MYrD%*Mz=W]ߩ6t{ܤ]O\CcMMPklj;#TiG.5dͰ7 3o,IH,dr8șQ*;8"UԒ2=gxʼbζjm;p+@D<&i|7~Uܓ>{wm/WY3pAlo8nX8ӝͶyM]A+oSFkk F5O9FJPX$y\2u$ )PTakWwseHe&/@e4XhS`@ktQ$HÏEg8p;a)9kwhg DcGN-qXaMa"4(.Z?rۡv{AҾ "yڷ4y\s\ LMӊJ 2`9`o!>`>o֔j^vB?+)(Y@.:8*ҨZ}@TxzñͰIL$L!g-3Zlf|%=_%#H.,a __gK#i_Z#oy+2[:%-Ims]e,Wt$l3;n&ҼD+9{5D#ne&GH,IK3)"pN-KilWb?:x*칼 p;ɯ|`/bRUi(prfVWi$4gN{kSLA497 "FAݻw?e3cQiJL9|2p}v={~<0PZ`*k.ddjTX2VYN<>aǓb3 5`+(t_c pHEx |2馌pB,Kw-')^^R>iWa{&Vbq~D;צ+ɸ%Ryٞ|M{H*vbq~cQc0B6SKfq˞N$5U3tZ8Z3\nU\m+BmFT/3wqW"ҁ|iQqs$l +*wO%W\Sip[W`J( a/HVCSxrH )_A,[S۱ Jޠ3f:srdmnń`c>Ѥ;Uqpgd U hKQ!J9ɬ@2О04k +n]L-%'JWoТK%yzt,F A#!SƣGbkό|K CjkZHИg.ݪraEn;HLrbQ3NwM2Hy`U%ԃDO/yaG"W[)13t;w50w}[i*+r쐪jyW]Hek:x!qMإ Q[)D CzBт8@&?3̽ ~jkgw%Zg>ٹvkqzԷMmځK[;>wil¤׎O- +u]Uu )7PG XCu:#JmkFY*ؔmfY䁥HNrrRiXcxٴz*6p3|_jFRQNwy9މm:ѯt&gk=īC0c$I4z2rLYeto|!tl hwVlը[H1A7^qpߦ#uˉn0CZc9K˞JK ^˖|) mpc'+mKK[5ʕJ[Ali q5 Euʕrh+mK8=3$\{-ob;8!u+q5M8~G:AZxcUswIeI:ɰcW=LI>Npsҧ7wFO0e+ ٥.?|ïVMv>;}g? =ϰ^e#| >' OGG̦4N槕鰐{947A,ڐsSȭ''ֶa~gE~[ɞ[O 2%^ߍm7LK/%<׫(wbq bqJfURD܋lxn ] vXzk{B +gf1kbT@mkzp÷>8ՐM.Wf/gH]" }%CgJrW{ +| +P1p Da$co,?pm10n  2p."3=61"5lP9fLUsZl[ĕWK4*tn[(eB,=-&wgֽ{Zmk0zay9^^\#U^UQ}è=Y-O9rCr>|<Yܖw80XGŴNDT *cY< 1toV[BXT;`LrdpXE -TALEzL7 \גDd_25jA|p͕+$'6>$gᅲSRKR;w0 re4w|BtF֔#agx,;p'?FVmSx32 +jEŌU o:F|tG(U5/T&ȀY:<" t|8m%|Pl3L^,7]eMv8 {6/ȸj^J{c?sDs=fhozPeYܫ{ֻ|v{?n-Z[Yq*Qkk!XFAH2 VgBf)ʟT^PwUsGR]\P ť rwrCђ)Pe9%,G}F6 +WfUG+|kz`pe?&%X9EVVVݧJblV26EK3 גMj.1,-kT7 mWE]1O;, $_GJ[jO;DG;^:t8L5MZ-Ư|I @5T$I+6@T%cW8t\3 WÜf_V<,o(UYU/_9w> b7v2]L)U-&;)\XӂUqM,.@|~iL}/k%L=VT,'_@3 &8<iq7 6eY]QZk'{8HXHh6R#oIm9X$h9Au\,J/Ehzc\Q&q22WF_nbZdM!Ώ/-,pw#鍓|~'cuo? DmMKʓ%n̛ѵB1jZ[~OCc׬冪؍ K!7, x< CƨLp$/LeJeTԫ*[7t.*-z؇_,Ȟǀʴ`um .}XY):.9Ѿy j t%g,5Z! +6uXކhtcx'2Һ _4]㠻dff.e৳ԓn4(]:$!DSefM ۉpBΘ؊vAޭq?ِ9⒊=HQbyn}?8mz1+ #)="F҅Nh7Z]q)hB[!ɤ.` 0?AVIr$hŖ﷬;ռ..Rھ" +wNg"z(:"Wܯ^CTЫ>)$}EmMz Һ蒈MX.7X-L8(gU̇q: 9<}ɇe{rv}W:Zne% YL{E8\6&v8~6oew#ЇQ|ISް5 |ڳ+zlta7hfS.UhP(rͧPN:V<Ҽ uh%ю&*C3hF_y7 뾷|"A`2+{HτNQuJYpR7F0 .pydدE[Tu%c0(8V;;YA/6:<k6r>Gmdtʇ]}^w"0!eix0 +uKW1bkZmbTcݞm{6[YNy-s9_\*B&HK&aSs0vԦ~5q6d uJ/[n uxbl't=UqLհ=;\I&t^ނ j.ЭVK '&d6iv2-Y5GRm# +c4D^Gⶨ3|7 '˂s=.[23=[Oc  AEHӢtSV,*a$.(eY+ʎ<$IUlK˕J^^{:  f=_M}.*^X %H'3sDs;>wzkkNl:A@Yp +wP91HFꈘl5y*I|ojpԷ7TF^d&Uq0z{鿢o= c&6 +=ʥTәbZSt{WEML]$7u{g1ӕ-κŢ;Kڶ657;,1Л*W4Y!q֓#7-ˁjlQNU' 0B6dY>άOGw6VL$Kf + _WĀ{T,ns6ri!ixUwȿ bc?m9ᤍ8pB`Cl<*x۔r!O3͝~!4'$'SIֲ*:TNwFV +SYgnMrBPɂGw5*Ʀ;N[*7hcU_$[ŬTL)nh< YwCkZ)B)tAL<'m7swd'?gL(_MސR&lb iq1j̨Kĕp̃VȒ x*mzUf?'yӔ@$-f=wn[ +"n[g lJd4y 2~+A2HPeyq8{ScNلq:~JraB["#eT9 iW +ܮpccq, | t!ݘx[/T*SLJmlR"\i6NHthIu?Rƈb03f+3#1W. B?۩E=_\]*ulvkn îëxn݊r4=:ݐ8$; n,~sJ4}O=y͝3 ǍwtwJ# po`tD6w<Qk]&n'<839Ii0&&aD[RiqHb +#25;fMLV x6; ʔW#$WvNIϰ:*%A t9ݯ|`/%8@27Ð80z4`RR sɰtbҊR[sERT’KK ffGhK3{"l ۧC)ڮ뢈k +S) hqMړQ+ x) +](vPR/ 9e\x)uڗ-[{xFX'szU!vӅ[!ɬɀPlN*v\im! SX]ΕOF[C-A?_ + wULԄjڪ06u5hŽ'{kaj>`9̿j'3Bĸvqfsf:stL44И+^7cF(_3q]/,uR^6tq:Z)G/>('dd HURVJYl1kf%3[ + m-UQefyEbrj% $ɦIٚyKRV/'/9ǚ$LX2Z9a8Ѵh;]ޑ d I>_3ߨ"n8j9܋=N# u!)*Tɪ>~fݧHGBp|/G!j$ 7bٓxrK#:Mzg'誣\mr +,w>OXzD5OMcgƎc-XAcT`mgĜ 13]mYE>es({JANlԏm8^QUf|]_u;7 o1k|T_ed7V?Z>)ZbrO"\+SU3--4:؎c[RT_&6>eZoBc=zxLJI O1zᦽ:{ZTf9JBUr A~4b'$3hJhTK3/i~6+[\\gciKf}7P9 W89 {|!IL2^۳ٕԮ_0]7{212 |tc28Y׌-M|K @νC 4!s)3Go%zocVly6>@{R3LCq-H1L5&2;61[κG2rT|Tu +"-Ep)#YP^VLM6HڙJ%B3/nG2gE]N /jS ($ tItoLux❠D)}O:T_?'wܓ1=C8*nrkpӹdV`ͲSugnJlmqkხw]2- mL :>˘]0NeLd54?N,E&3 g[QR!u%/?AN8:U&HwQ9twf{dHG"U9x*Xݫi4QֿהG~ݶ "}ƊJ[j:]t!8|i[43,Q wR7D7ֽ-v.];-c)Hm#m +]r2,:D_ʶ%Ks!V wgG |M'JG$:)ILٮm+9Sܶ|Z̴TM EP:LaP(L뗅l.4DqhhJ˄%ea VhRt7FO={9+91K&IdDm -$ddM-"BO@L4;CJ=l`"=)Zs_€5s:(kRA?#ɉuu #)h]1ɻ^Ԓ?oӾ|glR͘3w[^:Y7oLN[Th8Vʉ!g'Ǐ7.4Tגƌ:1ITy0WHf497̅F|& t+ *ݶM˜'/9Pr h5qrc^*hn1u*u>uG^5+_Z]=P(nK3f/0{o8r6 JS%+e&4 vXFZh$@gf]ۤ/+Y7%9 n$\/%nt\I˦صLrp0Vi%P04Tp4@N07IdwYoa҆,_:u%߿w[ٖϝ“}pQXȢc7B6@6VB/U eQ̙Tx7<ۊQ6sY3%;h5^^$IR'C +3Mɔr9lcb(L?3TTH@;V9[GLøuD<.0WUeMzQNϷPe. *F?ɇ.,eJ*שּׂ-z?!B앲^C(Z3J;sI*O5dqp"5fP^܁J ""lVgkNp_%Cr<ɮ1C%_*j*ǟDS9q+խ˫X< e7*kA~9ZI0o:T]D5?}@*+粴Kylzyv^zRhO!Bۖ$Ďau[Y7rZҸfUj +_I>ws*6fk>Lu8'8;S$"ի aсӠu  G'Hʆʴ'Ҹ3qP2S7hۄXH0Dƾ#<&'K̰pP,5$ +"!|@1 +-n;5:wbGSҺK(mSEV4%W(4MX˪g#?d22SV RY $ ޣOD3$#?1W2 8<+^Lz +8g½{gf6~tҥ\}ԩ`38St$'fOCZF_ |8aPg (_H ;-&z#/._ا/\idqHYGT,cHvZI/LLUNT13] WjG*+wM?usgqzoy{{f陃ܺ nO+S.G=VO1M=IWMtab3A:YvǍ_&mr7^㙘&#nD +WsMsxZ5)Ҫi#d'e@(00Ɲ+s1)-牚AL e 7! M+˲#jM>*Ż|aP;y+7 k?$5E8LsSvb%5.te|d"S]KfL,J25t;IxA/M:g5䲂ݣV@2;C~t~IQ+6ErJ/'ˆc0 C;A~z01x.n4q).A8jnW~ a&kh|djOj^L5hG%SAH9pVVj*?Our$5HF3;Í'yܯju~~,n~4, hr/iH9 +}P>3 W/9mTTP5.oR/J>`Yݻy.Q4Rm;l%np[ ^K-Lk.JlZ?ҿ (8̸Z&ir]Tm.ce=t yMsBK+~6((tȻG^- zϺu^ĉx̷݉/_j(7:r!w\w>:H.d"SĒǤ4yg8r==xqkO`9@ ĚNԔ +U7e>jB,5SwtHL>ǽ-sOԌYSdAAn9^ W+˺fFfTRUJٺ!m5 q> VI͡Nsosw W. |JGV^]hQ V[KwR=ɖ3R0b +Ԧ +Qog\Vwu +7+aI9r92+H^^*h%D F&m&P̒ mۥ ˲bE +@Ϡr׏Ew1{>b4ѫVpۊ-=]<(MleBΉGN g=erԗ,q,gLY+eh|y.M Rm"KI%eofx iM-VO4$9ZbyhYTmO: }7̢IBvF4،9q\ y[1ӆrVE+"&cIk݀@ا +;UQXvAH0R){jstĭۡo~ Cv gCIq$J΁**gpn+F |1_`uh* QJ(9fi3|oltʆm/%)}u}Wy wcΪ6J!)s(pvk5"g4;lpV*԰hqZ`&/ʩzQtbY7=E/fiZ=ue]뭭Y)\#4T`ݵ%r8 )q6>;ы<"\9A!}iTvrt@⇞jj +Oƶ_gDTӔK Ӫ견ܖd w(R,1Qꝩ޿/8Uzm㗯^ݮ;ŅlT +[ ۫a&w?)Ki9NۘDoZ& ƫ +(MOJ#y">˶wo&oJ_s^.˺so(!*o(ሊTU[i0ijB5nneE Cq%^ +[xL*^^K%hl0빆gA$=RrdP0|AAbX'j~w⯂vQZ;gyN nz.<^G&8$t]}zޅ&*t&"A[pX'<+V8Zk(7mro +tEw|iPw9} Qf. +8x$-Bv~DtxɉL<ÛͪmȆ*l}IL@8-nNs?y*rYE:qM'WtPq]˞<%¯`'Ve~Fdy=is݃'ZcmHVu=-z +Sbbm*UՅj9ګqŬi:A6ԕŰ=z&H6Ӊ dwj2Q6l~@2l lJ)"4jmӢ}룪 V"}hwPT2 CnF11%ȕǮ7Ԯ,_rheo+uo(F6crF+\7 GF񸰲tS'jGM2T QFMo,.S,tpoңVp*B2F* c,<(P1"=a8A#i0CpfhVL3]Pp3;5D6m8ӮsTK-ۜ6;6˦iig9YX^:g +}=#wx& 7,m+I+7(Jk +ݳu&*i)8lx3;*]ݿ[8^މY<.hHu+j]# x}A!Mx:*aq;ϻwo=J)R X#C1< QzZ8V ~݆C52wDIxx AB2F̖]vիlB9ô l1A<_\Ja(Zk.&:=@LɌ&E5AB=iug>q7|%Iѐ<|Gh {m)4;_aq<q`e5);N%7'*fbO֎vՙ=;k4X)b+7J!~~( 9aaHn*g j-/YPX% tʦV.(PSVju + ;UgJ> aѼmà `Ow7{IXS~ w󖋣$BMnV<7I}h,6xHMIeŋvۻKuc&eTI*14_w\bK+ێs OTyi4u7e& W-Ij1b։#'^)Ꮈœ'6 0< +'E,Np!I 6sFu{iG[b1̵5TOa=4lP$B]PTHPjޫ;57=i؜7jIw= S٧셤o2>eؑ,a ҁZm%eY1`.,y6IRR[YmFCեsnWb!gA-L'џ rOlfl/5ejOqɒjgm6\ UVJѹv 7NEO8zCM5+_;sR& +L&85e\I=f<'w%"`IȪa\ԜoS,WxNx^ C~L_G]tI76tUQ֟޽OmI-iv->ڲZ~4|3ebjۊ]yQ ~~YfT2ÆLX^n"/v 5iɚXq%RuCTd,54pK… }:oC2pl*@QTH@PR]T! Y0*XMSec鶄}C#\qڴcn3?\ 3Fe)(SZ]y-?Sw4.(w|wc IđbڑР'J23bx񡏞qre,sEݒT(\ zhqU@"#  +5TJ'WSp|.zjmd[>__K򪔮3 PDZh=l%Z #) O{qA쩴d%{'FqbQbƘ"i2jAv`3P^ ]fl!tw'=?B-s/ *%Ě%X\=n0D6"WY9^%럱x*OFő ;x$A`?'4uTMTcBk3%ʊ=#$0)%USwȐy\b:A`Gz=vv򰵝sO噙.E#*aL{e*jRi/bSR؄!FF0,7S 񦤿jw[>Cd&,6(t0dÌLa8߉+hمBlv!e woM&Jbmdݏ C.+:6XXYs ,{}Ԗvm NB dٹ7jz Rd+b1pzɘy3ʖ-=Q݄[9M>0cS S#x$GqZcH(ѥlTԟ*sĞ?{=FMe^D&rk} Sc>c`oCױ{%NU>Gֈx~Dj\.-:Ac&jZeq+)Nx?gxy~Ip;v^'{u{醮X!L\V7k}莅ɟ3pgjk7yNaLc/74/!~?vzH)!.q-1y`(O2Σrc}2Rme]Ma4y8|⒟33nJWj8ٕFc%(ދcy")yNny=u&s I8C 8H1H~U'_e*qTQ+,}1ҩ8{ֱl4]h0qK EjےYry7HPnx~qq̈1[L$bMjozA`elnRLOg/yDmxs^ hKBVC}Wu@q*Zq9s3֣~n0O"s#MM'7R)nE{~mmE{G5a +G\ rhYn-~I.yF[>dN8w *>3`d\u.JGzj5""@> lj8Sh$*m@v˧l'Eq٫Uf%b3bud ӱfc݋ӽńy[ m8W7F1#vP$VOZ_E|A6 \[֟sxOƍ1OeeXbA[٬kx-YaqqXWݻM>u_Y/RX a2e ,?{c"WC[ɁұB>fn6Gldj#rL,lwR*'_Xꢴm"[/oEdX'eA +4'/}%B5<Ƨz䑶Z}R-iGׁ[#>Ő9] EGy߳b$ɲU"JhÇxG?]{dZ:Beo4Ԗk{M#Q N~QUcL"D?bxdxȞfKIM7JUϹkmZ3`8% DŽ+C#kaR(ǜەM+ i.͹0h_^󙼅mOFaBƼ8,"0x_ahrʕLv8]mG LhoNž^nn@SqߘuO0V:nnRQl;[,"(7A]M8L{n#ܛ3|K`#%IK>!oؽ`7b? &{1_Zrj1_ͣKR_ yI V-&kssL"IKM12lͭ<8\X.{˳i^=]31 c *_|u'ڰ brf9۪n; @\4.]h9C~<kw$:*Nxպ8ה~$d<'Dcm2TE AJ{۽>SMix겶B+6*eWN KoT{LR$1I]-I@ص8"-Xy Q]t7vOX1W|*3W$T +Dj~pOQ3L@~XY}<*0j"ѥudny|ٻsk4mijnvI9:`[<nMOyTai4 | PÿlYbSCYv9mZw-â8ùݐp* fƵpbza4M/O^&fޕ,*j[IY W!gOϑjO'o\ahJ*Cu]L*sܳ@?DEņO?+_3v2 (oY_l6p/%|\oe}{OR%KE~:1DzǑgT둳;]պwcX/ )V=v.:ǿa\ );asa yGVY;Np0tדN&w$i_Դބ] Ȫt&4vMEzBd+@ݹ(߰@z)aE﫫ۗj{2|z2@^WxIRB'ZI$a( +9m[['7ߍx sS (ST)(8Zse{T.( 7sϧo̗" +kpaץ;2fׯRv?s:bgD}ߌ*vt(FΡc4mN;;'Vvm錱 [TnsFy栱nK"E7ZMd$>h:sT _rQ>5qdO?y}KkvC& ;aUҠ%9UEEX/6rm*?q:%M +$ + nB&L+޺+f@r$p&ARcRƜJaw>'eP:8|xspk{9ӍSNP2wf +;}d7C;x0jmGjfGaqOd?п<&Q1P것%:P&k< ?L ^&Q<7HiAlKX'o:US͙<y@AcDm::pS8yf-7ɀRn;vwWW8)@f]o9Ν=u.[1«ًb`j:OϊAnȍ8*K*]Ȁ+8on<uNLV| E*f(Rpu jBxۯ![!{+<{|+D]tP%Tntjpi3Hmt=A*!_D7=n-8jydj}u8Fi2еî|L oFhgF %kD1p9ݓ\]PG{vBVc%ATju_Yt`q;U9InLXaXŮb$/m#&aVG d* Zm٩p^,TXo= ]`uqq~qC7BɲcqO>ih/p3׶ݴS8ھ6im۽mgo4)8^C΂1! +b$ Lhc%J1HEE=L?)\6ӭV-f?21BN(>鮮JNMEgL-@3-Va +3E .Y3jiL>x]Ӱ1\6eJU~ a"qchE(Rp7, _Z?g O%W8<LoHDJW4u${'& K9yKî(,zZ;?MMoa9 +̛')JTawGTErO`oq߁[s.iO헟]Z: ,L@# :s/Y0唦o*Aɟ1+k ZrNI3,N7؟(ݕaJ=,Hb YXJn%glۗ_2-C-`fݜQ7v@;ųr_!6M9I}r,/NljWQҡTgqĎLt,΄ڔl7 ?ڻam( w_5v?Bzm4 y|x>׍?bj_c3'w4, VS+fz?OKV"r@, ͙N#k*<{7?~"Xȧ8h0h6|e$LZrk1~ұdDIxTsrHwm>ثq _sOQje022! Je'y/B?ñ/WNAY )myq |4e!j:s=gݮWNw=>R"B0TGƽm/͑!^YM} OGZx>|<&(1|6;-d⎁C y-p Z*Q-u*t|W_L\$}Vm}7+/"{$-X4|1B0ԺNNR^$^Z=t:Ivg=8ϼ #[MшBY Xm*:)(ZM%" +?A^x?sPz5p\zxW޿EE#9߷HgզzX׶ztvS&jÀc%g_,}-U||ZiYu.*> v{Æ}Lkw˦#EU@vѤ޵MWlъ$;:)?B.U\x-ЙSWM2n$ C,5D55D0SİOb0_3oĴu-)yxBˤyl|ݦI:-;Ǜԁэ1X(vi{؀qZ@>xl.F"(daG<8銖&DY1ufdz~fh̤+^1GAenδ4O0a&E[;N͎;djÜ6@n?T =)@xQ$\3rL9ԟ T-|7Ar173Ԝa#14s +li2@^a-;<竜*E06vg"ftٞ˂bP [eN=7W-s,ACMϖmnxPCthVBB3Env1=L?XBa\.DOxnWԚMq='UaS_{;bc.FOxDp dB[O(>0loU_x?ï-:na. 7[!7j)2"j;R_Q!k Ü%S( f $5C:hܘS>XT{Ēv n)pe`ܿ.ݾ *v^{7~[~\@h$0^}Ȇn'<',۱N㘯I'-MClsMj2 y@| ++IP&!ܨ 轣"lj2˄AF q!h:Q Ri3,gnC+z">Ӳ̇$}ᾼ:u9$[Gw浸l}m7b67WWw^At66n6o>Wqazv^fL\/?Wl+Pi #G-mk溋]L #ZR a(:8J?v\L.Tyf˹7$P^y + "3q=Dq? _rZMtN.9"bEEsDoTEOM N2+L>Qa<~^P@3nLJ1غ+4w,|X[kU80W4J]4˜qDU6cqnSWT鸛{`{~&Ob:i8NXDUiPm8lW28$iaz9oaG1 D"Q/H8f.b*Ӏ ͟5jPnbiBH̲pFDBN4{ +*> ?Ɂp!wԚ +7}(9e)NSN-v\i{a*5MM:sYe&Vv.$&֧DɦY +`k^{p:[ G /`qHPM8pH{:rL溃dUM#ٵe&AmbV{,ԜTFMjyᖮKׯ_R°czybH! s{W Gοe>/磐7cUOQ'^_h4KJ]%#S. ,PbV\UꝚTx#JKl UjJKFNM-Xs=3nK_kQ˘o35;W6|A1)fFpb1yu%V4g9FAm·,%-:i0uGg6*$[>d( /'RZ 3YlN%.7>@n;((],Q/d/Ωfzn񒃢)Dgb47K!Jv<<|\wSmc`Oxʼn^sm(A6fak +ۂ|qbЉjTԪyKE _ sYOK| gpEzL"2U(H}p-x4,lψl5l;=ea mȉ{HC\,ȝQܐ}Lu}p^$LE~v.[,VzO01qZH <>[,m,])b.l2]uKd!Poqɽ5~$ {խ`R+Lsf2]qc¸ZL5۔05$8ߎvގk8m'$Ē;Vbm}kJ-_gjZ`Aղ am~8̕&,7Urplmz:hI{Y+8 11 q?P*Pl+)#u[WZ{^UMTTP:!-u1|cYRE>Er@3ͪucc?m2r:w)+8tcG˴Is =%ׅmӴĽzVK,mt]aZ"oY /^,u"  '@T2&K،0RR~,nꚪ$T.jv_:kK<[2.Q:N謓*hV}rrtLdN`- [&G}!jJʻLʈehz #S%EKBqz |lem(@2Eu!ijKujX2y7V2QR^D_ףBvs32=u4GxI=9D+׵Blri&v%L5|X0TɰXAжQ1#^W9v +\Ef:M US+#=ѾL*z.h +մ$++״k%˜)yʋXϙʵ&ډ|$3\։ZLz="x:w6mRN5R2-Tdf\<:Wwwb @C9K a j̣5>enqu}͒*cD&(_ph;љ_Zr;3U$Qm7m߾t޿02Ѳ2b;Ϧ0N~ϝ%44.aAAxi-K]zO^2c2msAQ +%Or jeJb.C6Z%Lfǔ`Ix)dܒc`K))kXflthDGnmq;۽zuQ+R>(AɎqufh1hvJq9a_Qc9'gx`/ ]xHPza'0Wp/A[tW6rӋveT +צco! ۡ0'0l`ha0M?(kH^H==چv35V"ՁIxaXB/f\Lj%VhIPsRkSϧ^^\(wg^~MA |0>鎵yKVgzd?_w{& I46MhPg"5L_4Z_s (7ͺֺ +|W ֺn1OjE8BM L&ڮ.Y+kƊݒa2\%k|\nV*o!a{DD4E;N{#j=G4aRqs6) $j%ohT)Wk۲[2" +NOm马F!A'B[*H>Lwv8ӣNPJ U. gc!0[^m0,RM!jgΥa6r5սCI/G܈SIȇ0zM鐪50>#J=;a#NUeTP02n]o;Gti'P'ɟSgٿi{ !WMk咩N=͆9Ld{߇2j. +ZVt`'5`l AӂAg`֓/yqRsLM9 +jm|O'y@$p]**3ŚM&ݵ9Q`OU\+c5!ȽJ~!-՚8A7U($D: tE1{4l]-rxnPb7HSP, )]OS0U0wQj1˞ pOBwA!Yิf܋1λ7wjdEQ0v#qqDt۝vJR[:3zN2pB2!͓VasCi.|_˶15Sk{sOl..Y ) Mڍ!A_H/x/&;FV}Pӱ$0I%DziU$R1CTcjackc[[FnQƕ)?z|-Ф*,Vʚy9dPHChBU]us# WڝV$&Ǝ=AÐs'mDRC n:)Q|/;6'zKQP8!#Nt,keyWged5%(.61)BK̴Y"T;cPP;-=E,ɾɂ[mQ-N!XV9搟g0HI/$#I)׮y߁B<'D\5wb+.r12Fı@;AАI~@zZ2q=䣰/C[1gjYj:֐'7{EM{XL4TTy f_[e)j=?A|Ow}ʢeo0M="'LjeQϺ ]\m!d v>/Ɗ^[tTj/@"&s u L!8)'=N C?ste75!:#U㖌bZE_\m_2iA?0@Zƨ:I@%5[ܵ+Ғ#iTy_NC&(.k6|d-ăLlҷJ$O*x,KzM$ |j^]hs>8Kg*^(ÎI'~80 SڗW+R`t-yLjZF?6P$2f[Sܸm?C 2?bTa4(^|u)xZ}} ճZ(ʩץb0^5S[v&'xN WD;U5~@BY7QPW~kA j?<@1=\ eBanc<̗i3o@ S^iHT"pǒ`Rf=T]D,eK-IQV$YU~d #Ztz=@;H2%TӃuf2-Gƞ1rU5hewr.P*.fYEӿTʼfj(e414G;9Xk>wMhyX3uCy vϖ۪臐pM|h+k=VuX`l0Eǀ_XUg@i˜%[boe *̳W ̂f0f[بt.!giT{~D:f𪭉Ư@<:ȡb"͋=ns3(ySL~O~joQ\Wt KZ7֞d|LCU7NO{2ʰsjE'y~܂gɭḏ 25Plз|J|S}zVmqND q)#%WffCg1dZ+++c "bˑVLyx'{d'҆iu)y +k_,П-@Fncq Yu>Dxih<1|e 5#CkF| hѶyT~$ź;]}zHJ\JKZ}ddgBlc›R +\der"HfۆZ _OKLjgWmy}3o {K1}>{׮g[p"bCEg3ZM0:y4ɟHxƨ ddk Z F )fQ- y,++."!e!-,~F5IyŵqǁL1f`fSgJNj)R;ӡÌ*E35-MaDФh0+`ԂˍZkze!cXJOb24^M=H=8]Ytigsfuf$}*q|?}遗0Aӛ?¾kdA*r^n |BS|;ֲ|Bb:+wG3tQfp}$y-3b*#rQ_켥T뽮qttCzQ3} mkwƵίǏ];v?S#}Չ[zj]i[FS[QԵ8b໣jmʰUC]B@d*}LujiZ~n^E NwȢlS͉^>ˎَ|W1z~0C^0Z8utU w l1v{L҈ELS4;P&gi:`<ӎ\2+grΗS NG :[TѐI=[s6\mCN-{5)&>DlwШ\6 SK`?&(F90뺨2KE c3c?>b +=)-l ]_l6fR^e~W;Ʒ{lQ$91X[[teyRptڢϕ-)-2LnL Ak<\ISIBH¶W\Ӳi4󓔝.[&t%93ՙrS++Sc%Kp-У /ό& Β&JHΉvZt$.DdnHSݣ1' 2(Cj۞1%ݔ{RN*ADc s1jn x>-gB<EHCH#B\E-QOAlsC_׿+^$Ki9*Nyit[)eIF*!ͥckvwO5'YU~9K{xxGF`Gqr5l_X-: nsfK8֕ݐUܯhoߵe9״RU&=<6Z 06 'zo/AhN$<|˱& spmӴ#*Xnuة#ΝŹ9jp{]_ +ix[J Bo󷥱v. U)Jb*AƗ[T,U 9#]{wOJ +4=?{ֽc,A\:Ù#BC,o_V%a70Q.:f;&nn~Sd] D+D?#*+UdcT96mPnj 7CL_0b[i: (g'֘V#RpdD>P.}__Ae=j4(E +^tk/MP% +f"CKYleݫXώ=鈔8o4"UCke<.qO V 13YL,*AD(zFf&e&Y#;RO/=YmEϩj/Q)lÉCTʳv$9 +rz_/T!,%8G'=T\DR`6c)ΪKΗ + JeOIw/ⴗ3jkf+#{!'3<<]jœ㚡o̢vGzU>L1l7Bj|J>`NzX+b3vȎWt6HE/dgCeRrf;VaZxH[:ih"9}>oƪEfaiZ?">e;,?ǹ\sO9f#e7~٥Ajq޹C8N%]nY5*D Q+mꥼɢ EXWɘ˕¡`yHj=tjJ̻.o,'(y9 ",_Q!"ɫ3f9|J]*W0Y DO40 |tŒ mB<İJo}qqǶۛZ,rkX5)T0pu[*{o!_D$j!U6 uz87I=/  嚸 J< +3jz\Q=>ܲ8^p̩{ ! K8܇IljR#KcJdE,[õ]_ZVSuEB!hi*̀@;%jɗ*߃Vpz|Ҵ%i OhH\qQ1i&ЃExH>i#6;&ƴhsuY Ab_i2tƜxep) ;JyO!RfZqrIvN^]7|uӦ'%E^m ۯҘJ_*=]ߜguY,2EIQ[mtkv}kI>_zy䢟#EY؛; S}wd*yM3OCrF:U G)cTB +@cCcŭ\o@Tę d=_LLËEI ONvֲC@*aCXޅW.omsf~ +ٯ =#w kp:Ej叛 +jYZf3YH4yK|ފ_Z;ŢVZq! +,Ē/(c9g<hOrJW[U: S +(Ks,@'sfYud>}͕ypӴ37V\C0FTP/Ub>4S"fj*<u") +U[G\ٶJvaKɥh%5 \9{Ν+\9{Kec6Y#Ak<:),PXM2ڿSDiM(mP(۠#qdy$%]_RK{7CT5Ϡ "ں 9[@TŎ"E&3Ϯ^.sK+bhE)$՝n_ut}“NmQtt;<=s?$m䥷r8lymohi|@'6H!zM"] qFu_hX^%$7cn(:*Ոc*%VYy'ϕ\h +Ǚk;%"< Lzn!Š0)za#{cy`M3Ds!yKv(8AbCNN`:T~+鿂IWsA@) S׻KWZ }(CQz<6E*r5vohSK=Y92]zJDȕBw+ە+N}e`WءAmC+"4RHuن,}xKR +3w-@IbBQ-i1E,@)ǶO.⊚Nnx͈S7^Pg=C*d!rj*FE´L,ڽEvԞP?| +IiC)b6Y?e/q᎓'ܵsX}npJ0$fs9pjyD^G|$ GaYф-Wܔ7۰3ngR%q$Wr3rX0!>\W\{: *?Ǵy;$<]%f'$[% N[NXU +{3)n5r~bBTLf#=σ>b7k{r-]9ETF5ۆeY4ocn.c~RK?12[δXVW +"[on.SZjQS49zt/ťBasjɹ[[,9R9_ӕ*fc)5'䖹qNS,cW'Gfv?m-`ѿ&-Vɧ'Z)ca۲p٨Z[l 8g__}|NۏH3vǹfZ&y$j(+_~EɸkB({!q$^gҨ*UQRl%;z`!}>yD/l9ۯAluC~8OBሼf&DF|N<Ofq \w +MG|/LTu5dq3zt9km|LMyuyǭ֛&q{5&]µdv⢉F=xb}iI`qݼ͙N^|98 +`K-N?} + C>Uo>&Zq qxdR&aw:^%t` tv?sluC@W8ڼ=;ٛXݯ% {_ޛoj.?'PڛcYAtp ̝G*L<0zaV~FR=ʀwZjk|-szȵ# 5X$e;a*;cH针8݉Ţb7=*k9[5K C [=tdGn_+R]}(S:"m1Asp2GPD5Xt/OsGZv}S /'kD@'b5 *UӞK? âcWO}w#UI9 +Fme~|;\K~Ș#X uX ͪ`0F~@A*Yj/O^'hlC( U NtES :EwˆC$WA+B1SL'&aN=P’l0 +R6N`UVlV<娬Ұ9)i[7ۏ1jzf2N34O5 +ljķ/^\X&ww .Iėn_'{F9rh Z#u ?=LsCzK"J̘j{ynTb;ftYݷքwBg^Y!軔)sh"Zz(+մ\W\ چM .(EYpi)&' _+wu~ޫ_b6szӳngRR*| b}[JF##$?t9W|VV='t-i'2rƝt^S< TRP ޭ4O6iȇR|T=;|j94 +&H/%kF;ȵlQ-1<7cFk.6WH$ufgg)J,w7{)k+1-ڱG`!a mm7˜΃͵Æk%^d:$vbB:ib8;̘)+OO +N"I l~6!grz*F Xg(֐X?RXV͉bnw ێXΓ]Ǖ :n®`Hx?J)RU 4d։}9~@(%t6Ա1W^8Ґ?8'PBtATwD4PNikzll~>nN€Kr%b:q$'Bۖ\鈲*ei[ }L n{!E1N©+[s牰Upzo.b0 fHq!'MB[c{/O * }v nF,1QTV=0^B2n W67rmZ{2VL8fhٚR əG#x3҆t1Ҧ$id\X +=o|!f>~]i8X%R8aO?vQrO۠vΐ=[ k %oo|c~CbGqm'1c3PZ{f٥ }ySLKXA!g4u_slˑ4$aYDa6xn܍ ^fgo~`L3JG} 9&~,Gy?_./o,,t|;>]NoF##CQQ_0BllNLeM'k# 5Dgws^voG/xC+ YczyO5;-.Ox(70.ַ*ةÃqSnKB#-̴ۻ쮫ӕ㛛N5wzP.>\KGҁ( a r3ԙApuc l^/Yٰ=mjF\iD9]1 >r?*M[I`l N>#c=vgx[|XsPԿic?8ו0|@ޓ3阡9P#XGqٶ&}m'SdYѝLnu3ʺ`6rPPʹD8dzhY]VdjkCd-#+IiL1ij1hnڟgUQؑn]gHŹOIT{ɹ2~wio)M ƺ i_i{Ù{MܫJ:!H_ǎFo:}-&;K3"ZYAMdRYtDOf@J/TAmQTDMumP \>ePuJcJ |+JzC1ui~ߤ2c;'KH22Ⱥ>9{sbbv$@bii^JZ+Zk","CvX#,"l)&)J+OGr(hA?tfN1ve|{/p~孭yV1/MOgw!\Z$PYpf˺,L/˕`5UP8efղyN]#kE3ר TtG@H,ˊ6 +nEbY3 !LoD5$puݘLJH>!=.*aAN痗O+[ӛM]ѣ{qɉ/oِnӸ\/^*9ѿ=>uH!<pec Ws%}r0'Lǩt:Jic#UI]3ʴ%Af,4np$h)*o8;GBdt=Ts tZ=RtqZ%d/bx]ydZo͵t}SX|nmӾN}. !G"iP#y5yRVW߲g!P1$UtUVZ%§r:'>!DcTc׉:in|6oҟ@LV)\ ۦSS +Uݾa]Uc7'' p *cz =(:kcYi7g\,eZdƜKj%+U)H +]TPݬ(-,XҹiAa`''N\Ck ~e;luT* OzJjj'"Ux*o=8:qvy@6 dk,䩁3%:D/iKϊ9${؀Bȿ96*|`}x:3sؾ樂}ʚ80΋1c;Ң Ѝv֖gfМ`͚tOk S~0/2QJ]Ia}&@F#O@l ̛2bm.4;:o Lk0bmۡsC?p0j.#VrJ8ކ_kfV&VRBRc^|p^ngA,.| \>zMkpʤ3I_nS8B-G'{~`8.ݿ7go /-(}?)I;҉tWz(=5.ә[d^lDi8؏ #?Yw_H7j~?Ϣ0ڄScpY)9iJ vʱ.~8,wH&8L*~l0=<7zX @0 ,57쮯f4[v|uYU +k𓖿[2l΁˚GjQܲѿu{^\`GXit_9¤6N7;/z9&YOAZN)21j ![@^{J%t{+o- _df_idKrYgsӹRi7{Ne9ᆊVP=[ʔ@ B2/2,J7} LLXS?ORqܪe=KN}L2e )A2" ]mS [Q'&zڀEo.g2sӒ4WZ[?b>9کB#cC?JYd+иlQ{%SܕMıls'p~lz+S!vT-%79M~‘%v=Yyu ٜ__^&{V\yp`jܸ_;s^vg:sva͒Cٌy2U?0<}@i>|y;XSP>*]^Nf=&O>Uw5 o&f%7)=hr/2WrMsf[ eۖ!d+piiu_B[: _(|bI|CD&^ᴄiZ|5{Q۹e\:W11n󑖟~`:.əiyO0bȝŴlX ekD4uM}5Pl./EGŘ:au}_DĖ] qAnq`{ZʿH/WRRb*iBH'=f]ℇ +>q\o.j6ZQUs2t(OHF(':JHK^?οjplVdsrbP2R>o*AT|ioo^ ܥsnSo0I;SKnF<`̭G}?ژ46ˎWdΐ;$`alFf,]92ΔX5cU=#9ڰ|SK}j;!3*y픣ĸ<-F4m (lU#+Sܕ[XT/:oW*n +$fM [?A +͙(A~(q *Zq-LvF*ߠZ=IB.WM@s׽{~fq,i3 x5"*zaXA:HUeE!(Ys m r9ca*^ڑ {뮯Lק܂5?Qҵ,CYW&u{eU4l[&q<5 qt:l uhO/@pن8 +D2D ͥ +:"Fj(eaAvQź +'XJhI71?chiϊll-C6:ˆWԱ#9&zJ VhMmtj,^;,,+ͫW\8s<~0c<>̶FcXvo_xGM#EG>|];otWf5=!p G,#\7 H{g">2l>ڪ.wLcwt2֑sI¨% Y8+!Xǎ58ы.XNx('*짰kJ^;}l95Xλؘt'"%bwY/<3_zV<崙bt8<.$7m'2&sv*zڃt=|9xq?K-xulypuC/1}r Y_#;*\N}`npr%_VQvVWt8N{(n|-X =[b6Ɔ)䊞e-YvC!tVA^!j]Sb(2Ulz;p6,XFЗvO_h waϕ(,3 +A}`灥q6"6y#C+*E <3R(6_=Ŭg +s]snHr_+`h*Y) AI"=/jUvƃ{Ц6 ҇aCcUHv~♑|*#|[MN3U^ kB_\AE]ij(S6FNyX M`#gjyvX+{!U4nU_ٱƲ#rb:^dO +"w$?QZ{]g x5cW՝ͫWo_jwWo./; c¬;*bE&s;yt|5A$%B4eT?T +kWކ/.o 2iM8H<,gPaq) 51 xtR>L[G;AL`OQ9?hE@L݃CLO G9`?؎eyME{WO+MLF咠QT2[q mb:ĬS +Pj7H^+تX#4Ӏ_v-=7eh\@K_u5\,NaMV,[5t+k[vvqnŋv'\rЈKA3Xʐop$=T48By cE߄<֘98JB=-5~  YCv0c$RƔۦnEOMk6wSs!-luS[ѣ5X;?J]؟Ҏt O}Pg|y|Iqf;+6yu#uIZd/ML\vqR{I-}^59yq׋~y6؞ϼ>l%ٜ+m} 6j!M,5!t'ws +6aLfh:Byx"A*VB#$@ůrfe@3 +1omr# ==ȶуѺZ,!cIҡyxxZg:}YY`+P}E0H㯽*o/k.+--tVVn +̝oӾ 쀋]W N~ +YSRB_ՙI;)` 'LQ$4#dz.Ê%m +=rDZk(t,(=۝]W>;8:ڻ(T%T{fPu`Շcq̹%-W l>I[v!P./ wm"lxO)1:ۓswв 5O˄_LYA2ܴhRH'Ndx$DDB7G7Q2,>Tv~O8<{䕞<]:ӏR1솧tc/!'='O^|;iMEj5vQA +f2U!lDrǎ'D-Dkeӳi1fmrm!rj_xlsU,*ˆ JF/:nJ7:}vl^yrz^]}R_^~_VaDz2ZOu2RF.늽{6.rߑޓnuo} W_6?acuw9{㾟s_3C=CgH!)%K6ٲ$'vZndAF" Z$Ei'M6IJHHk{gp(Ar{MZ߷Zz=^]m}%|ˏ-@hsusA`!Pɷ?1'#R*2#2A_|>:Ve [n.p}ՓD5'u8:jv#9W7#Q$ %$%DpqBoȴ!^űH*)jb%,!g.'4]\ZtBƥҧ\BYMH\(th'F>M +^\oȕu"ű-2oBd4|8m`:f@gLdY~U7Qy-:!TN60!C'^9|3Und/clRo8+hJo,k7-/ב;rWfQۙ<$b5<IaQZGUUW3t-h93au5jh^MeR8mQ/T#2>/xqM,357K/\Yͼ'L[M巔of~:կ2/bW^LOw:Y؝ݽ~=3tϗd>c=U8L4 pf7]ߠ4?ٻv0#BK&4&aCuLÙ3n-V?\1ݙ֐o(%caʵ3lj484uHrAj_ HA Lp҇^, M^lz-v9xԖ,T![m &%bʢhgeHL%8>Q>d ^ڞxHot-!#N)IaV9;0g3(| E0rd5'0f^ +I)JO>ޓ뱶,/.M.N>Փԟ4~bi8۝?\:edC2ד@r`7$s1m wI gui+԰;F込 ?,v5$-Zc3ќ#c{'U#&F>|FL]F& Q `$N-FHv8KW1򚑫&Q<)Hj$Q:-t 9림XKSK++ӠDDZ Gߧ(ԙuy2ʲY;Cu]*zet N=ײ\Jj)VM¢'-Vdz?GZL(T{i%qO#oז-zye$|ƥgܙ%ds $!aa1)jOfLl[ '&|bHvAF|=>^J7 WP.X.rQm({o&ҝ]"7/"$\%96;1\\i-k2E _V}.,ۏs/?X]~ W]\YL1A=dvJ?._JvoVːl#lW~z*+d#sn&$BĖ+U/_ t|KXc_R3sd(Oy} Qְ )&f9=:G8f2:k#渕00@ccͳ ­%RWqusq.MNSȟKNtoύV$ԕ;y4edL:Q׍7fF +a]&0Tg+FA{ $2SKZC4o_DykډJN4$>w,܁V̍)'X&XVS_s՜ehZ;>wg{3?(}ʒIdBZjZX\xl,:XX wPXeMU9s-db8EѴIW_p)̫ b@Eʂ \,핽s%h '=e<d,rS7)'nC>Tʪ*hP+YQCM`-^>i5kmOjpgv]>y;c? U}ǩF +#vUn{qvkG-oO/o M>R2̂('*FĮ߅f^)NG#u?t7rO;;@b ŴfN0P_u27З4/ڑOa,4I._="6ss;Dhc>@j9x(Tp-Ae+Ov;56&dwmlV@Catv0u?k9Ô:gM>[{w4,a!J6sRcև;avԱ1R79G1EdӤ~)D.nJ%nЂ.Z'VuD TU.h6ʼsy;& +.%3ț=M18*!m1)X[k^mbb\l?㹳4VӍA+NgE.lGY3oSU#p?u1>U\#SaXt~6oEo$YsCsABoY(k9nUdnȕKW,G*Ib<&hswpSk:*`J,|dĝ&jW &~D˕2(d,#_Pw +Lrq͚pZF~ω.`*3V6vղ+jxקT8RGI/mjW{;KZ3g ߞ51=ݢDڕ*Ov&;Ntf:Ks^ ᧯2Cxuɘ]t9tL͚Qy-)"\k2fua1*'NхآǢ=7Az1f3K#]]49fy-nc`)Mu2H)hfa~jgI^i1/U k,'uNvQ%)yqAyݐ +,Cљ5doؾ3֟A=4Wn] = +\uʅqLG1, +h9L8s\z5blcЯәY/H|S(0}F$3ҲLo!%id6'Bg$]Cyl!5]f<O9·̹锓+nN{BONXjӮFcͤ<[XC}cj]W#E[]VӶ^XYmqzpp@/;W͋EƩ0ޯgc' |J5+[́Ed('\B $[&cW8n o1GkĞד/flv\Gz'3gyL0u5%U~Aj/PtU9Y)#^pUm,6}2wwr>1ϟ0̳&{!ö́ n~"XFel[#9kv6s1<' ^oeyҘJ>1~6@ 3]_ZvrT\nYQzku5wXbRӧ7t-U>qqej$U)Qo^M_ǹ'UK*D'ZNNMB7Ob+DbFxyR}ŷB_z`3i+ ®{?|m{iEWzmMtW[ܼk9:&]&ڍrGwOGxP0E/6 Wӳ˜GS<Qh/5Fw|٢^ ** +QᏦlZ2KĹOEJ +<}F%O}"ӘmIM8$zѥ|t< +Z|kD'Sqyw_x\c:SuՓ 9Das`)]e"'e?ßNJFt^ia`hƑ<}E3Jalll7f}~񢟓]W[JUVǙJE>EFDŽCH)Do~F(H^0/-J Ω~6@ VX/CgFes!}א;l1A`>POi,+Ϭ*sGn<8(q\<*~ǡٳ b0iĕμ/xoh>`O1TV+Wd\$e񍴱Zba~&`GTE}#& {>7EXOc}ZQP:um,vZZ߽{4ΜKg/{!t97]%U*Z"حPx"T֪!Vl)ƑX#4` 93N%VlxZ@eY`#GGEj\_ҵ{wc33nv|stt? +_/w##?2_F] >b_qADd͓t5Ɨc &VB`/p9N4K7wX37L.okj>9Lq]6YǴ =[1]5zQA5bU=7ZRݢ<',ccg7?zL{%\lT<1;w]ҭbP?/1 ak3wF"fGXeMlbiTS|=6+O={!{ۓd7evp >T`Wi3q\ +9cUq݇$})jWy(9E::s!}y>{"H `%Y \Nu3)`G"#dR.˩i-_l_K%*F=DNG"b>7ɤ~xϕHtH8{tg(GO9Zk͏˴w\ֽEtkoc jt?f19x[420zR?Džu4PĆW.DvUJQ72&a3K: +P!.fqcZ m/n]19ɏQOs1%i1{! nO*R@y~m`c{fQv0;*˹> ϮWdAWu<%z}<~F]7}C 㧸V38TULtL%y;'!BsX_1GZ\Ո~VKb!,%0-()ֿm}#Gj*Sˉ@[֔-*p{k;:ٍ+׮logﯬyy|~y|j&=m>2qF'mIhBT`Zxi-Z@_݇`[~Z^b݁ gB B +yHEۮV|ƾ48:wr[Fw 44\$pf!gF"%3lɒ%Ke%q+UJ%4/rT*?RT*r_ʽ‘QEba99;ok¢ī&grWq4+V+'BwاΝ;qq^@sviPN9=.s€I +7~Oˠeo"6d 8m? w1w)>q-m;'ZIGPt¦NFba4ap.RsQ,씻`( JG%()H*!]"(m7E@N 2盨bOX0N;2p[PGfI//t/jQټpvBz45\ȡǸT/S=ijzuz:Y^Ff Q Q疤(2?Eq +=,܉dVj Gcަ9<"$CBύh +GrӎVqXn?O)*(?xy?& rG]M!jLƢEu ;{@MC勣gBi#`l['7PD6oi}ϖ*' ȖBk̜N*$bzاZʂTjҟRMU'5@a"z&3,KrvI'Uf "r* tL˕8U^Uihb #?6Sbdɹ<^^n g5{Buhoj\j>)a2[F܆ÀV𪡘/eN46b#(IY׊ՉF]d|(o#D-f)͂M_1]vO0CP>.AL&c =zo=ő.0t[Xخl7׷OOm؍~ΥKBh{pG}k"IH/<7,~q!g*/\> ~a6 d41&hh&.L1*[z^NpJZ҈M:-vr4Ѭ453S,NB\IV2Y%kA%Pgs,uflUG%^ӜSy60OSke" zS",_Dcڌbzh jS¢M0U>Uh*5~.&'4bz煛{ ڕ+ׯu˗߻37=O?;A{ӝ=`{7Qz(Kސj[=UNEGiGA E-T TTI}p۱YY70:ShyJkVOnƚ}?63A#гqMWkua`u$c3_ŽH( +e.* Q>WgO1!\f4$bY.u"Q9/90y1-EO5eo^D<S|D~*Nܼ}z۽j,6vv.WczrePfW?yˮIiFLMmo}I냴h8CabސݗDOsm%~ `!jǗFJzs؉%^/q4kP2 ]jdA"ώBrc}UtPlpSnp2M4I8Lޚ,TF Ďxn) '+~jpvTЎc.gy:ϸI^nKt,'7ΰN[vYjU't#&ƪxW.ܾvʕ'ַ_}s_7|X|(;++ϣןꃆx7E{;Mv_>fggxt?}&RۻG33ZlZ̃UcY=ETm^O2{U2l9<%QRX/JlC{#DJT˸.kÀ]""C)3rDk 95W޴5E 3œاk>P#ז<Ւ7:ʭ5>LA9'xv~ƙsvͧS~٣gOO{˓C=N0m6ta{Wydq-Acﲠn:gm9ʯs4*<)Ꜳ˾k"lB`55=HWL>9*g3 ,WS|SB +t+(bH*lq֡W-Z"йJNv8EQ6Cr5w]m6Q.ȕJ$M 7ܙ#*oM.[p^+ͤΖkk-AL6Z>/A]4Q5ϠD͘~S37<> +nOJuISNx:qy 1?u_ x%-hAhkd80}]" rϗ * vG+t7]WX(Dbe'5Fz6LlhPקe2VO&+UZTE/W+ݾyy2. +-`*30*M)J0ΨT5l 9i5]^$NBl&#}ryO&\W/g1$g}C,FU$f3UZ n;!۵)ʩ||q,<R?ӺT<vY%g^ѧΉJE$L*SrF'leM(BIcd6Ʊi#pdX]^.r(KثɆ= qc UxWcQbN@ PLI/b(J@ejC]t1MUfx>/Tkv.6u6U$inʐQ>[\$]ds> _3K|.*3[]UnjFk5yyllmM v& _'C-uFB d-rJb+gKE%fTFFĞqr˳&UH[̙̎+V#_\QRQ.K&'~vy6sy(,2T +gvRLKJoǗqV'>rڳ$RM}qae=OĢdd,& +5' \MVc_%4@O9MHn"2db%Ik_]_HY[M|f|ukNgiOS%,]_WAmI:K0ӝN:G9s[fujb91;mo|N'T:$/M /ḳ@59˵ +<^e]lpfn2{ש lM%&44=H1qtTQY׺F1K`6;HNQƔ.#%2ҿDe?0mg3-`*XQ[*/hU`ݑ ˿(-$MVKRY4;[;22-Թ^T_zJ|[a쾴b~ 7V]~y{$';yYA^~˻i7F:~q^l~e{Hja~D uFZ>G膁BfYԋdږvuE\)؀Y_#մ.!"PۙIñĆˉR1e@e6mEr@nB`ds3# O3L'*99/NMou0l3X*w˙ h-m..7K3G/=]O85A@ȐοNCIdd;b;aFhJ`A6nt:<)0+Q( uc/ AfDlG%v#e<-/ 'JHyQى\麭RZ垔Ob]{'^Pg'ۂ5 ͛_fn):ao~{ްǎl9O;vJ'RTvy= QedRTk"eFi+QJ*a,Ȯ%BϳT0炤]h 4&u +%-EJi%SNbX**rHu!!!%Pr>X0XW7urV%0Nq|.#qMτ{қd=uY޳g3znbzbnnzYl?]zW8ȿ_=cMg>p=8 zDhHBd##:FiDzb\L;%)^ꑮfmfߏoOn*| zIY3Tq!^ynD${SnzΧ( D"b[5)u>[3E$aǕ1V*A,|~O~CΣ'>4X0VF\k Md$GXv +֚eY,nkm6.j qe#? D]`-WfGg '.\r$##gٍCIG>!(.dKj/Q)[ă f +#3$"v(k6皐 /lmGf뎯z}4$(TRbTEh6&v$kc1O=A +bXu#h9AQd?^L`"Z @QY2({4)m8]!ʦ J}a("9aC,|7yںXߚ[[8F/4X!;=DzAol/יQsv#xiPIW "Oᠦmrvb.pH6N"'A2"vD46'cTUK+`*K:6%trWSO.ʮ-YA~GcmEͯnY'E.VVׯ;VU2zx6qԲϥ "^ߡ+V[9)fеNZA@%)i.oa˫Y/O}TT t?,qk:yΎ)?.NEJΈQMzLe(Fpy*=7j'nyt$M,P21_^Yqaϳu:c#Ygs~{eT̨d +¢8QbQžqpߦ8ˬ|yOֲkS-+n|BJt f&;*dL汦F^BZw8Ⱥ#"+&-̔t"3`ZB8Ю.`d8x:z5=ZgrZNT^+w\~KNI;G s?d{'ս};lG~GJW7ϫ%5圮Hxn|[w .UHBsE}ef@D.:QےY2n Wg.͙Ю4Guw +ǣK:aF(NRD BfNpEJ]tM"?*r6CK#% yc:GXr宙>?ҚfiM)R6Fʆ#^[ɕ$$H3DjN]HSOfH!:Ocq&Eo{͝;w6ϝ9ujSBhSܧ MَvvגǏb~ʋ{{;e66<+Ak oȫ{ +`F Y> g-VUv$QSmP /)A牳RLU B`Ңz^?%fKk(Q%M0dIM3"MV34!;ɧϹ|AؚCj|e@%Jjo]Vx,^gY0-2q[,ѰRoOLTׯ^pK3&]OzjQujD*} O)HĻ%NW ,)2 SvQ]i M¯* Kt3P U& ,N_QI v5ŲH$;KX"Ζ e3\啲7+"ԩb$vN7y*Ou0'L V +HS ,򾨲oxqn79AOE'sW=Þ vx X(5cubL6uw+,2`8O}r5-Oߋ=]ȫuA *#}'O|j#`>3g_Ż˚+_$P>'Ws{ڔ-ˠ6~*=`撁4ӷow%?T] #l,/u:Sxa݁%x-&`,GbUm5R`hMmC԰?li#d_IZ]7m:\"94$NFJeVlj0b~Muxkr đKx>'IP9ws hW.*:}Xc ua쭖 ;2Ҫח,>HUV ,"XZj*ى˵JT/#:0~7OKyL'"@>eL\=J٭zf*ZRWt .2UfuBs I֩--wބ<?V9ĞON؜fMu<ӵfӉ)s鏘)=z~EY%G' ]qQjpgg4s*kOu`<ŪS=LLXHH@Ujl/RF EIZ4z\P%U볳[kk˛"ؼf(ah]?nT!]#hN{Q ml߽oClңG\̔X8aIdc4EbzHPYWnhX/ZKOȳSF*Ero鋾SmW֫-PS㊘sZJJCK7|8@7p> Tw]E*-j˂s:H`ݽ(Ӧ࿍/> p5U+3OX駲v%[&*'0,k {fG{$׻%9h"V$f.H״uꡆ>Wp |dUۧ`m mbq%즐f~S7٩tC]@\6sEK}ęGv[>rfvl,c{^EbYl=x6f7پwnY;_F{4T50|=(F"˞]XWr<5J|6Sl[F8|ry33;)77΅]d(?ꥥry0\O©1,{yrpNwsw]uHZ,Ɣ' [1aAYfwf(nzb@U/eJ$%XYQH .f2AG(ϳUd2lg?|jAQv\XfƆ4Rn[%}eFJ vFuxO0CYN잊ply,^!9Aj))Yb54:_/˓F)֧)[8U6Sk2[n[1q+Mn++vZT-r lvk|*' 5AA +\^VkcM ~Ǜ@aQXۍz}|ܺ#+&0oǦr6|G\l[GI(;_f'윅tDm6eefj8K ]O#>;gf,0CXuIp-eaIJkgW~g4ZgWVζrD?`SuCyAu=y7.|:?h}>^ʄ,5)'kQlU>|Y4fZdB~2 +mmbD+ɞm ~?rD3YJmϜ}idY{}_"ދ}_3222rȌȥ2+*k^h* 44aY=,Ycɒ5^h/cdiɖ{_DdFfeٵwιwV򦝱xM9Re8ן}o/W]8d4L| 1q? >C L!eEzeCle%]k\Kv 5LP sa],]=U D8szX"ܚlo"fKz;Ă4RGtRu@e6gk +-tKt.dTZ./p5dJQEDX[ W/Yfruz_$d`5"Jjv_SDH&ҬǒN`q kQUhƢV+N + +C (.KAaǮL,;#XS'JPuL g0gug@x +-hJWt5?bЄ=m08n0nnyXG#H:K,) +x8*@ :٣6-,'Bʕuۣͷo4\77o[A^]gBXR:_E{9d]‰Wy2Iqy.0<0Ri]bw ߑ:@lu}pU`'9Cb טGbNKk +m ze:N+a$  SʓYy j4#F3-[Iq5N3>U1#Fݢ\޾v[O<팮\ + ߏׯE=d'jy5%l|3}"\؝:ZԔR{dCd$hAQd J4 [ DCUUN"^LR#2y-+_V@r2W$pPd"J&˲Mɸj<[ F# +Q|K/_J5E:uVAy;+(]KfZ 5^bx]΂'s9-GW'V%BGT߸צҎVVV "-̇ +bQ"r'`]6yC3 1+`J4ލ`y9vktMŴFΪIj͛(MRits:q1TX8i?M6<T7 tOqeKM.ɨЗ>K@B6 !K6/?/iTb|'L&,Ba'E:!t?je/I!=໡q"?>F#*U/ۂJ崔χBX醩cirկdIr ~E*կDE[Uq0~m5N"dMcr9z`egesSf/ngW>ˬTl;7y#z'"vk~#UF,6ʲvtd +ˁ5UZWj"T;"8ryN,# ++˺je_Q?:ǐ̷G`|:Zϻmg:zJg[_.}z|Tmbz4=s!`!cWߟ|c9֒jyя@=/~F PR{cP]h|AHUeۆ)I~R0KWWFʆnQ ֱ#(Y3Y4 « W3 SEuyaiTdq^'qKqf;sox/dGXkqa CZ+I @aE:pGRkXAII4{voaa9rA~鴈wHn~YeXsHu_ixV"9 aiol/]Hd4ʮ\. _ݦoVz[o796} +|-t47>ӥsqZ LēxUf9) tD |:0l?mdJN"Uce0V0#|s◵\NYrp0j!*W DLySdf֥Woww'\FG F/}p^|rNI6iC^KgF?އ&7 ( +in?y[dZXf<)փl^9Z#g@BuH@b#/Ȱv/cC%jUaFf0,7CŷOQF#x2䞭./4*e2e:Tɔ,bUo_QKk>Y#̬}.:x"~w.7}W%*d7L|+*t:b2A6+Zy JP8eΗH @0ijF'kEA~AA5x)A߲Eb]FV}U1Wxztį}6 ~䄸}({3- o^n*$,aUR9NoBI2T/dq^YI`x?UC46KA +GXM! 2lRMRl>Ѫbĕ( uBlLR1WYeVCziފ?T؂I6%5S}4oABYo9B_MR&;b'~:=RxVjzY>]<|wѮ +k5HWoכ$#{gzfs$Fߌ/Y /7xAIGKfIhfkܱ"(# \Kn&ThF6Lh(,k0%$$LXFªa2jS&' D*ViEccKQ +g)!9{|V|o&BdJn :ɤHA"Y(b,^a~^1zJ= ;Z겙o?_195#|(/% fP$)(OZ.6]ߐ͕b}GK4Qd!0 EIx5*)X‹߸QGHhHFV8FT3;ijLv{["N(0],~~ҋe#5}o']48;`"Xi9y / S.v/i eBI7U-.-0/RtSrd."ծB9CjAoS'!lhA]ƏIMtݴ~NzT,??t.gdWTd٬}(0orp]C6SigII|C6_CG lJ&Zj)*Fn.BFh˲6*jZ-('N8^,ث`V$%t9' |@39":9/5bGV"ے_Mݫ\!l&HZ1q(E\O>ڶ(ߧz蔛FJ޵q/fWhsL>{4m,|ڏCV Fj3vV<˔Ij:) rkP^Dn=kի.|m{{}epK\_79'q uN;rFgEt +/0 l  C[D`Xu:IHiK,[LUCdp)7 ;xd 1jh@Zw[50Ʋ@\N[!FQLuC)_i ed &N},Wz<7*ϕIWa~L*\WIz}Ih[y!e2kK_K"s3N@|R7H9#[o˨nM+UNΘ`u=Hx^{~[M/Tqi4BBsegD7NaVZwL$K&YN/:x]=M$92${' W|v̍1,ia ⧽+P^5!\Z'ӵe_VXFNaNܫңF!FG=8, bK|(jl#rا(ɴ +Lq ݥ}20 VF#/S|7JO5&a1P4X㌓M{;!'evqYq +bSG S/ +>N&@`aI@L01$D>D i 4 +g}<2Ud9Z?20dYIouCaG.׼QJ +MbRH8ކ9etZ< zUj-.30y{ڝ53a='&-Pn^Y=M3D !11sz-\G'ۆG{S ^ktږ3A)Z&,)|b+ *jV:raR9@E aᰔKDCh&,#*ւ_L;$|N?\)Q,d)6~mS4yP 9KZcдf9/Ն3p1(]79k5\I +H.iβl&z!](B1V (+ujm*2ut)[WW%y8kM-}_$h4s>j2X>:Pc'$"ChE=!HV>eTjc϶.\H1E^U&bd>l2o^S"bXFo0,˼,/!r"/bje +0z*l9YDZS˗#.8k0rHRԞl_a.#.xL?[-Dk DKٞ¬Ve[n"њ}pl+8阫=9_ ?>s1D/b}40G= qtIXs}s@2~Z{.b&QHql +2T<Χ|V`)`Mtw_:nnZq绪L~hu;`@-Ѵ?mvtj +G~3)5^H˚SHt^t*KUrϥK9 +}]], FUImMg람d4O%p]K@Gwe%%TK0MplxG?mndyJ&& ׀Xo,>$,4/aoߖ@TY(z eGt0)yNM)2@Z CPHFS2Hx-sbZ، q(Y'$#7&qkRHgTMz6c1=~ŪXDޱ=lMzsN1aZБn.mQ7l&<'+c]mMbRx$w9,FdBR\l!"1#WD%:mj%3j_̥as\ L9*ˣWWG>ڛ$N֔P ͑el,oL:]$c &6dsLbdL5G, 4JHj*Y,[Ae󎁌L;54Q[ lS@RqIo +$fXA!Qy+HߦXjS cyig*)Ҹ 2B2v;1124)@lt:_>V0@Ix\8r~:Y^KmkE'Zk^Ao5ϛx]ͮO߲s{CZ{Z6r' Q{yWd`M.%ZS7e?vH6$+B Ѱ/٩b!<{6S%nݽg^֕[ֳ8rj=8~ޛ5L߈ZN-,4x~2M\i8u=,(Ϫv_U$gP F)ma0|&>#72]Dr2g\aScdqFږ:`cw WCE]T$F$WhیG@i"'jNadZ$8 1bKE].xcg?6Z/;^^ ΕW)y|*/NM Q_ ~t`$O gKf!՗!lS(~+?u&qQ Fqhɍ KU&x2ukf!' ߙɀ'txLi8>7Z{dωR tE ћ]rrs xK1ܺbMl0 d'[ad%DDEV>\ `Wtt5`;2(03P`1)/ {޷}A7@wh,3pvr>)1IɴdɲKR,+.JdId;6+J0%۲d*/kv9R?ʽ(M*dq`@bys>؆8F"bUe;F"4sk{˻YVJ.7|*Z1VSlw<| v ݝx6ƺ!Z}%AQq xVB.e"+ +m ȷ;eQb L`nx[܇. N=06׷rKBDe)*pS}itgQwا*.H-UJ{*JNw?js$w.3I.$Ofg/]rO\N%*6~,Aho8PL{RthӛGLp$~͓m)g-F]@S0qR5ݙ +oS5`bfD_$Ř`pRʐkȒv]{{{r!*VMh,h;"W)+2XBv~"U8TWc2\;E%pGDuNf={pKƑ,߄\$ӰJ Crz/ZGwVf%CcyJ~0Mj!(L7Xۄ᱇kE_-ь2{.2PΆ‹eI/b*e˜&fJ|eiuV^|ej*/d P{e2ƏWG$4. H29_ R5R +Ϛs(rΕ CNMa{T p+06+UEd!WjS_~W9'=$sI/=^tT|oh| <?o={Z[kڭ]e{-`Yzw4tCjXhN:ֱgg)< Cɱ@MI^őKtnطh+ƶb(:=`GQ0Vl(L14_0tBւ +Y BķF],k T^CjȻ&y>A ي&T+]$Q/و`6ih r&/.Kr 7ByPӿ<g@R[ޭu+c~ *BWSv&k%· gtE_0N?tY&!5Ӿj{b +#*'m{?w1X˞>?HLc50Cxu0;@ 0"fͳ\,VQ%*7CZTҕՙ;3§XozCw3+i5 ɐU55V{RG)_\v,hgaYک 92: Į!,۞@7 YPS [S USZSlx1;p%E)э/.^ڳqAdywsmwe…MA7OhO1>c{3vTlڠA4ү {=ޱ?txͽN rc$5{!ޠ, 9~4L@5FY^AL놘S%5e=eҔ"a@ BC$_6d?m[F*3Xp֣?J,sƯs{ZPR-Y?늊\ S:N,pD7S`]&!`©Ze_#DH(Ȳc{+gg4Pj p2LR9۝JY2DOn_QoV]ؕ\ecέ[):M><Ƀ{yH)j'M2 ,$ OlUb@B⵹51F(@"D1XX L1+J&s2\ /]M.ro-hdk g)V,6+&f7+{t׆V*TJ¦p^x^^BsKVT3O,^UdQĦgWE.5ĘKe _!&mM*9@bnE$:ҭImQD,UU>Y_WًPdg23vJUt\eZ +mu-_$g4±msq 5!3˛3,/|t8-kwAj#|G':/Swm.O׍w!Fԣ;62)+ Î?N;?_tu`nbcǎe8} d^vB+:*B`oMEIYI4DTǬH/ KT{U +P3FӜ ]Iʪ*\G=b6TM1zM5-<1ӳ9\7M r{@f< m]ϝr!ɺfL};-(Q0\~~XXnˋMYXAMKv~ME{9fEcS+ +맱,c_6>tˬN#ӗM 3,Ҩׂ $PD{ꉲiG"VLNZ6& E%ꅞ$voi•j-h:3jƌ/o2\3u Wlh&;-[=Py Uyx+k$oUSf/Ȭws`ѝlQlVUweSnmÒfnGۀa_pSHUFq#} ~gU 2=X!|uWԻb:"9/&pi aç<=ϗ[bgKEو9Rub,n=eUkP`]<0v&YSA%ȕE + YdY꽠VBQf{ڋ>V(BynjR,|`E$6H6߈3Qoa(6\oaBӶ^T# WYdpf*9ǏoEo P3{MƐb>h_ю/2Âbz9y<#+'O<=)b2sU4A ;gR;i*WSeEIᄘr)B5CkjByԦL):!`l4^z'rO{wuϞj_]042 +yh+d>'p .!QEIQVQJM4ȷLaU}4= o\.33fs93ɛ恘pגa"yX? CR V +[I|SAO2ԚvLJrSeXHYS,b?S= KSI%Xd0"PxvqBkk:qc0!%b00ɜHR؉ρ]j:2֜MFmg% >緹ָv fau݄sT[-_0\4l0)7YfO +O o"C, +i7iC{ +^DҤ;s U#َXbx~1<*묶.TyQA`,ó݂&3'mW&\ZEP'n;Jyg[LϺcp1vqm#Ͳs{`a>d35Y:E*!WwHԽXd$܀~[mSm?IVE]K ,FkJz;yU HDA өZ5įXGU@rp+B{vNJx:ugxq>qz oPawãH" +c*B0ȁc =pQ c[up=~h'\/ya&JV:-d~).p\xiT?Dk~ +fY8CseNϬK~qpV]faVnLJ|lX,ձ$Yg7~sΘ$VJpذX[.F8,b>'JzX \:C4RξɕW-voolNIݤ @fX쯅?JR1wEM80UΛ]ʟ3T*ɤ) `VErإDiOѸR,Jnw|cCPT׍Ւ,3if;1|ȼgl;xʴj?E_dں(Q$27{jذX% k9݋]zss tribp:G*F!~";ɈEtI{fEḮsѻ7{C)#x$=R;r,\oyBUK J=)x,Jyl>9mt;c.Ӊ.J.QМV)YRy-2+2c\lSac}̑wR{vFpb+N(߳ڳR-"|%v_j2h R4Uoͩ<`-n`HѱKm %QN/o}(VxM}iLl^yN-SSU_M*I]7MiQo -{kN)MexyEk7[+緽N'Z[ \3&H9B,ng e)K4)yIbC.;f9G +pL*5mIxor$q )!wLuʼ^n֭ƙ3C׳'zclH|xSWy8|4J`ؒ_Ŧ9O<'E74aj+ .x6B{f7U0{teaDqrcK +-o=C=?{.#%VVJd%DozHEÊ(?>tٹ'c1wY@u]Ӽf*3^`w$uƐ3J08ly=w*3;{1 /r'x.V{%waKG.ka%todp$'1u=qS9l~2; 8xއgbƑ`:E^9c;? ,+9aG]]o +E>T6ɵh*!FB"E҉g釭2-DQDJdeX'mjUv\ĔiYoػ|~KagVM}r\ +e"uɸ<=hլ7e#fkl4[촞 + +_JmUv o3ݛa"iۤ]"$4Id +'OM}v&yu*@cR40(pDxZ-a2ID2琶խr\N(G]X% ]]v;R_د\=߳D,]4-Y R8 0eƓ>"ʼ.Xw,U1 "Z6ט'WWs4Zƽ22Gwdb6mrNhOng0%bE8mȫ!aZX2)@fd@ojRa=jE\dSJ.s C ;&[$bWKTLyƅa 9c\lG $q`/3A uKP\ A0P +c2qژ{aCH2 wd_;q$JjBc狞t28vT&JJ$9{pg{. 1]]x6/({|܅HJOg2뉦w.P ,fпЉd2?CQrA=E7Yf1M!k^-ߌVGwr빫zΨ+9-m{2iBtndӅɇN]9D3ZC}Î2p5QJaƝ0QQQdiP8VYf*z| };cء9y3ov![ВuMg[̉j (cUѭwvv@V9yf7Ax$Z=Ӓ<Ӗ= S|rVSt*czrT䉔:i$%v^mkD#YIcf Wz]4Hum_{c1`K- +6p9>:WFJcB<:sfW(xaae{T Lʉ fLcl<3󰁭i %͠E 3{.ԝt- u(H,b>9wp%UŻ.Wm!%'!U? jȖm뢸}vyBTm*'FJu(>}'Sn츏}UqU[#ҭaQ +@>G$pGCHD'3: YK_|X`0TcMnMAi/im;@&#!P.1SS#c8O &d;&.1[`1d֟0*L +}vyOljq@z>snmmE,NehF#nmYvqtxuޫS`ĵ\nQEk W5 g;W`8<ݬ&]ܭEs sEfQF׽pzMK)MtsMM"C88,ɒ^p +M%CqXgH UZ=1Og2k 3<txu HGů/Nr&l $]oŪ> FOF_4'mIՋj)1kx}?c B-{PV@) \)xu[ wk}Q( XtPjwZX|-܅|Sw'0x*cgau+Υ ygtVG&<'NØloV$qzf +cH8֛`i"Ìe8a}꫌`|v^ä}lQS:"5w)PДa3!>oe]:X%b+~&G1څQ>ySuaxgqJonIYpbzvzq1$Tx^#l '{wӷsQ񸚞Ig^Y?Mw/,lm~|60LV<}nӴ+R ê>zD_T̑) 9 U5!2ک0(4* k#ʷ})&*T={O*k*#|cޭzpmE+v񭩭 jCW\Nҧ&{)TB:vMZ]TJ +:!]H[g`RkD @1KpX(U)kjzFIv)I8IYI-"TxL2bΦKD܄ !F ` of6! aa~ e\ wݦ2{z 0`^#'ՀVŚ2gO-B mAtˮ<XɥGYQ$?o)OEkOPt6IJA18 +Ʋ%_1~3Y>/Qkz[ZN/l` +evcky.|̳ﯽ-̅^P[[ PJn_,M aK&[ f{UA_u}9+H5Oz$]T6H*Xb&U\d"@ۇjd""7R8W^w7flcXYrxV-*yIiܪd=i "Y) .3K`&M>dޙz- +49_?iܟx{-#>|kKkڰjҿ}`v=lN\Ϩv^roXz'w;K"J2/Ak*_9؏FF2y0YV`75fE{f(U +Hgy6iqGSI1.$IGI=`0L3A Ȅ3"Q蘇ubr,_}h?M_QܭrHP.2qj;x`>px.4SxW\vvv<^qvXĎ0l1?S!qrY*Ogr8kZos%I&1E1/(]4$jPXM𔇷fȽYBBÛ|W~>[cFY9*7?)*1F:͇Kw\X,>&P{\;C'1٣Ϡf`w\{Ha~T=A-[7Bty8Z +nYN]urP4A,ȐIW\6qF 6-霭TtXBJopuvVdu?F w?jr:]`'^`O/16<\X)/k5`Y{PFn$|a۷o>0nrH׾m v+ ^kiS.&$މH;$P 蚃 lQ4{B#>qF2d* 3 +eɛpzu2 3H$<^Axw፵+/\*յ充3%e_z;{ ڃʒG SNA)1Й- j=9[U*9g.kF#.f0Jk椅hpXR g9lxa) n4=R3~2: +tIa8rg2j*26֬Qs^_YR}]<ɬĤ.މg}޴^ܴ&ƬbT!'$ "E\\T6&ÎB8.su|$(WO[ @ [Ј1`)W+X3)5'TaZ=t_[vK7B.dP ئlբ s/cDddܴ(n +H8U۞hiL{@o Y.c+vlxm%͏m +S[bsmA6zB0K_'s#^: !5ª;;;/H2##1lMD|TF%Dj3K1ro^6PV/Dte1͘0Ew:lLKG7ϗHn3Fm[ա>.vf>87K{wvKG }?U<{j 'Rl;zk$_ò,=؍)~wU{|A3Hl`HR>3:Zح Ȃfi!#cZê:J͗Yvs*5Y|Y(B3ř{x?rZ&fW50yBjႮ7td +&^8߽{y+N5@&f6-Lا`ʈ;p5=larvk{Y)竅Bx&kXQo\,W2hvC˪谷Fd-d?[F]>۶e΂Ar16YO|[³M+Meysst cJ}ޫ߶{}ToCuHGq{E3mX\iki;ݦIoa|-G'4gŒ0΁X74q db5ý`X#uBI,X/]V: e{ ӆl.7I|i1 k#FD0dqeibę̑FWWrK5m3?#=d#%Xx- _Z ({M]cApsc^v[; zxtgw5}фڒF fö,U&L)m12Lbx&#uVIlQ)ؾ+մ^,$Ss0Jګfɮ݄"A +]ה1>rxonTXP\95 Z{뫘:O#%}M5G79:+gS_8w-svw7>?>*[N~n)(>Pz[ YGs[1lw;+U-x )5`j.'(Jg;~VJ.@-j99rg4 yEd/5{Me #-_,n!'3 +ԊE|^ >8@;*yb=D?e̳>~ \[T__1_͍c Q^ m=7xX=aSoy{ˡH:QoUG~oud_)\a[V(ٕ8_{%, mU-l(c +."rC{)w^=2.aO ;\aH꧉z0lO ~4vꚯy#R^#蚋$f8*pl R]^ҵz|xG|dMWc(Q;p+oywv/r}o-g=Pƒb΃ Z[T1!yEOzW]IT}yZ\RCxz$`ɢN>\Xk윝sJY"6V6#Fط05؟Ki8+R;&kEq{2du5/drSDW:)u &VMDgBQL5ˢ ,EBnn>T9W7[8."v'>- |Mk=[G˸$e7>UjyG=kV(.~駩N)obQPr/TiL4P6 Gjh*H +Sdǝ!1xiJ3QZ\.5A`Bt19,0[xEQ0-= bGy2EVK/)i\:a4n[W mݶkwb/Y2,r_%CexS¯×V|0XG)K/]x`vl Q}FtҴu^^^{/*>7vʔg@;\M5A~(0EAlinAa\Gp|j^LYLr@O!bES-Y +)3|tDYBI$k"uŽ)}5b~=?aw'/qWq'_2_>>tCoׯ,ևBeR|\v'lli,q1q-s=XAyxЏceڅE?[}`F4ĔL`۴;n G?R=0t:# Hm7+V)-v&*+:9\"hn`4b8O݈O8i⑑Ϋa;T~)5wIP"cV' M&|Ox:}5ѧ>%;N❍;D|m_t֭,-YQE2'zǒQF>%>Q%䍆yfE]^K8/jcmX,s+X  q!#%uZŐ.@ަ]Z,֊)>D"(o3t*n%M%z΅"\_da=P*{Z+D?ljznSvwirM͙5o- ~_|1gחTjSSKK9, '=ŤV: PʵW^<$~rn#phh#MU +|f@7P!(AAܨRn*R,L.sD3Sc ɱq0aɀ#a`dk@%c:e;KUujf,'ZiZ8gSd1B˜='mL,O|w VޢPㅝ-/J篕d*.eMMn~a2 ex_~>-?}*BR.mb`ϡj#P5+VrȅX!#H)K%,w7TTgfg *MeR9\\tf8֎8;vUc^8R:x#%ED! 6gwK^!-l8C۽/7+)aڧΗ33\ò8дj㜇"( +\’tljXmkl0s+ +dY,X^ltHy(``Y@#VNWp{X n,_ZMuhdBPTHܻ>|Ǐ|}*[= eAl _ ͖ll21d4e1@rp_PuA)5^qhYb:cV,`LDdu_cfNq<[e2OrT:˥$)e\lh^_ʟ#3)Kht>8mɾ.t=o$/;3p,+-G[ P'e8F/e8?x #_MZ<싶$^']|6bǢz +`l`]Kʮ2ۏ90fͼF(w9:gf_ތ-9} n;D/_3&Hȿģ8FX =elΊp^R%̈́;G{3eR^~V5pM;# wyZVj\IT(`)jv"4vЛtDo9_T9t(đF(|dNKKWn q1f<ݱY ~WzŜWˉpe 5aM')T(+SONM\i};s?U_vȐ$3lw|Oi+:#rZwxao%,[b1.gv6(2( 4﫠|k.xSsHm'J9h y69CS6|flkغ-:h@*?PcZ>yJ?xugß?* G3s~f8q-Y2h..ӳy3 \,^ p%Id} @_8516^d2 O +T;M-C -h7-I"v-Ą=Ue)8f[@Ktf1q]3Jڗ҉EiCRion6;[[Gnj>w0[;N'.8.2,gFqrN[ e9CCUuh;9@qe3`TZ<%ڲEjeC1*&Pdp6YuhĀ5ݵ8㺰j놶CKSπǃy}_%yj8jK Q6^gev 5 mwJW͊{y/Xܐϒs}13{8k4Zwlj 0HjY)e BNolc# BGcr] j燝srݳw͛\mnnȶ1^^=:r  h`~&6Ml8UO#0ݪSa{s3̻qwt1ͅK8زh[Tecɡ`TzQmhĺ\)Dji3֙4fX+CՀغ``tj{rMUwtS5iQ6-.>< RǬ}'n0v{p.sOO #d㽀бWI/)qrW7GV_dVeL13l!K1ߔ!dقǑt_ }ij EZUn߲䮌X^|6U/ g0K^N>`?%DuLx- TK-BkΓuv\!mܓ%xܥ?!G6g}fL1D`]u9#u7%Gř ]OS+3t S@N[0LiA$UYjJh?C1N UfLgA-% rOp輙< +=;%vi *W/qeVdPΔٖFIm\=I>|F-U3܇?<|쳟yڵ홹3덙qf{ItߓAøA\tpXsXrP{TlZnIYQL9NXDu'drKHL9젲ܚӒLdf4ZF룻y]ceMt);43/ƎJ녂ۦ&5<'3К*lQyP׳iK/Ti׵t7nOOXJ^nN{\yS{k ӯE}叽k7x槟z;_P[o]\k!n}=`ȍf՗F@tzFkpHnExph0Xڡk?]ꍏ +I` 9  ?í7gj햐 +>8se20gƜͤeU/@Ɖmx +܍ n *p0L/L;$\w&,ݲQ3U0,8^Ye aVƓ=q2-1걩Yx)Kq}*fR20|,H' xRVVkl>-OC)4eV wJօmcu18/{ɧ^q:{]P: wc, yg\ctKt@ 30M [_X.ru3M +|۶Mhrԝ< ܏۫m2CVzxVם4;aj"j0Õ[0 niZj{ϹIep*J͐bI`SOS`lxG evdf +J| +~@ΉqуG)Z&`5J6$dS9f:04fmٔEJ#$̝\>нFr :70(2K[qNd?~Cmf8=E"D4_\,cr'8nl>2c^ʕaXuըVZ~f/n ,w>SRp''ﲩ~7juJ:L+3 JOviAXhw۱iE\D9ƭa~?Z- +rИʼj %@Y<3=[s}?e7ϝY\z"WqL`:sete-IY)ʾ_OYһS{{/8tř$zސwNMNqV:~ ';/A{w ].2hT4VM idǹJuk9/P}-<$"5 mfqC/u#9/DĩEH]gf~)oM}3Sp 7o$Gk7T{y>ؑ a:iM_0<|qb;xvzqN7ڹ;\Y'wBw\wxh]ޞ-(Rpɜ? ozdvw!(0"j9*ߌWW q\*5no^yIJm˦DƾkxXS{ 2q%9Xٽ=|PgWm)VC˟t@UTr620MaxRb%UrZU:q¹[Ͽ}׮݊Q4cO=s9E?0Nph=vd褿4`-hq .qAZE*WFVګF|:іg)x IKͫ%X)rr}*ޟWͧI BW]*w U--C,uDe~cYϽGĒ4fYzeʌ#a_uO(c2S9{))oD2Ox,Fz*.x;nxk ~` +.sG<"D{N$<,Ɂb#!=r6f + ޵"Ã{eAߎj[B{H +d$to,KPLްɀNw}-dʛBS7!loraEuåo8tl0w׸wyԹOXMByiNpsrN,u]j4ux%KLfo* zEۓߖ@OZώ5=2INq3zTy߻3f,\s]yĝ&j; +}wow/]nT|@a( 9,pm1Cm:Bjzc(4#hMFgpb"VQ\nֺph0m˄LSṋmjw +5BOAlmkLp侉m1m4lYVaXݿO?^>L'&dz: +z>??>Yws}FqTryEJS5#3>ئf-CR g'pg|fÕ/D0n.d1{}dàWd]7&vnMĹkxai w6>M33yW~o0l0>uȾ,B#88 +^.l奲yy1;퓙DXrg\RH&N$G$R^;\@ɇJ~"qA.WE:Ky'O?Vb51W)׿r %8y og7xoq2 zΉ6蜄'tN89;`!+JsJڊ,4[km$ժΕ8; V}, ks9!Qc$,Op>B;-.~#>߷b/ژ`pw?.#a|?X&ZYQ)rTRz}5=8Orp4vMP#Es2)&TwWpݕ; Wp^)ВFU&/fJD&rd4k4@#w Hb}+Dmїn3k6%YGw?0 4\}~_is +s嵲Yu9keǏ8G\A̾#8( g딇[TY41C%b0H?u6m͔'YD*Kv$ 4&Şk>ڀkRv N/SJ}zO+饻A@hGf؈ǛeDTp"h7URC;CHM~f> +gNV2JMXP[husj,'\VKDtr]MB&iˡwd9`|i5cٸLw22!K5H1/.r>-O5ix}yɶpTB)(1`9sRL#} /bϋ2\ $:4 PGca XvT٦ϐ +QL%:3UXV.(Wҩ1VW7{➆ld{*ի{r{-qL\w{鞙c>vfbq,q$\%aPEHPЦC :HbOzBuY zrЙt΂t;ؙ]l}Ph6 +x0~R=f 9֠|#9OCvѠ@%HL% +iHt?e6>Z|[; H +yX,,Be<΅.u' +O R{*d\|\H+,˭\JX=U9K31$ur\Djǣk>Pߓ57)l :J/ۊ@2Lj b2#Zo3u5̴`";"&rEnP&|Px:Q)E[\r`q Gs gd#|1 =y77AemLWY+z5CL-Du6S5;@=Q'̵5#~j6Vžc P %W5?Q0")L R ;%y)z ffzUSywkktҲ8*k6gYj2O,&s-^ñzlX.\̺ru!$CKW-2!Tf]v Nq81aU' ~tcI|[PQ&jYG8sȺg_|b_`$ k뾮pـ"i9d]г@Wtl$w^NOܸvm26r#fX_/Ia6Kb?t N}dM#(:fvKCJqU )n9F2eGW\3NlRC7 f8Jܜ,jT$dVb !_V"M]]2t{a"//qmg:2׼Wz<҅sg._n^0GS|.DKգ2W,TSeY.K_OAмW gL|jy]愤H^ 3R2I$|UR*\G@4i8F0*$YTgI{x8b![LL *k_!CjqS%AdvgͲxr-\lv6N]~fezEl+^VX,P׭:++;qȣyX'~l7ēcu7W2\M3Wuh#W4֫Y_BH3bgq*NG+K`j3 ,c¡ +=ʍ +{J7;xVc_Z, +Cx?3_A-YS,Q5ϓ|| y}K1_\C^bNvsSK9e?jZ~zѽ5|j:.? €7bkzV{+z˼=Jl^?V킥y+$1u+`v<YWV1EE-rd5!+kԺZίkړr. V1 2-hIkbJ1 <~4d՜!#fwIA~wh's8qriHkyRG$ow_K"m1`8?wDJ-c"#Μ`> ~:fw 1,}u*eu gW H]ME. "LosydvuFG>r};H5TT+sn KScRM;]9c*5Yoߊg4kYU*悬a7m} 8H#'\Ei7j1~R-G}8==7;е#ΐ|:^ȋ(<stSZ)M;k-dDe #7m~5mEY0*|ZdId٪؟ +*)L†\#1Eq3.MYF|HeP+VSxf?@, LĴH±y,>: o4d獙ӧ /91 #8{x)+kg1 X{5IDU]Co04 o qO# + a|dp:늸(/f.iM3__tlin;>}m;nk,b^|5)Z"*j-LOKĔP:\F`(p(<+E[TpӗXB oի.ݸ77#9=x|**_$q,Ck. +itʏ>}mdr%UQw +DMf)a1~X,xۃ"!4ϠS:H-ƚaKMϋ]dC'J  30UV"H(qM*XEiPC~1cI +{zr㏓>vl˹NTRmaku]df'C-T\l-#7EIp<_ԈڢT|lU&XIɸGL0kN# |#BRn h8p@4Wbq-)~ώyTR˜jGjټb|OWЮ޸s Wղ.OH +{ⵞZ/ !hrA1P!%scװkaX=sWQ`PRݬ jc?bL# N_07w@cvγyL| (j$AȔn<""/Yl×7X(8,8E˘XuXbU+K􊎊OOr6P9SĎD}W-\@;u=b xs؉Sճ\].bgC#aiiԦS83=tq5># Or>J-t}ч+ίdhfMRyRb' #WBMRw\t[.?ϴ!]BLss᡼@m>XH${Be|2 ͉s/zCRn%mKmeu}IJ;0Ӟi'FcwCyѻQGH9& G*M'w'LG/zSzePR)Xz!'jiZIìUԣe~5҇p/I^ 7"%o4W(e\/ȲK|I,a^R޴ +ߤ6VM8.ml JjcnSr11$gf^{٧O\Mir;*Vg?4͛N}gk7gF8^y\X^ZȪ 6aAk*;h?N 9}2U=M~I7)&ؼALj>$v@,v$tx>;Rh@f; Yb*ey|˫ 8gQxrS57 { {JcgxYGNÛWoޔN9jI/oS*g&GDiċݩD=9K tv0K>5PǧrKуUDr`AlA[Pbj 9]j 9@z"PXQaR&"K]dաx3UGW)bi,u1Ȝ'c".7H:-GCjljllI@fv=jR._fznq-BIWx_8wTe>řʇ>t?Fbݭa:<t֨;]x|ohw0ߝYJ:c +BEYʥt݈\8CG+ lL߮Ś~Bנ*R5%~yړ\hz^QDO]ԩ&O#Ct_cj !-QIYHP-d(ahIqC_!T2P,cÓ \Hjž;|[&.G8TiWIv k/%5퇷|yv5˷{oo۲̨?ƓjFn;OBri:`g;D5ΤNدبtzcݡ>`daךiA?>$tTGYD7Q! oWLJ%'Y^5$V0\;df!:&b U6T#ߍ1F*ꦚNF""R}GG20 EG453&3NCKYa3,Я8T3DW#rnNLx4V>-ِ~5u ]e}^hjM!&k%Gۆ#{C>2w?MK_'h;Y|4 +uxM8O9`ys[><L, ?=)qԩ%\o͉!j?);`x TC@#e5 $%<Tϋ)@쵺<_.HVuݘo>fÒ=N&~}g~ }_)Hȱwk焋U5 VWg^:ݝN̝?1qBdg DkУqg;@W0l'g*, + <$1\fE9!p*ͱke~|\M^q3eLFdyb#]eizr6J>{SzM붰֝7!XT24ᎻaA#M'J/l_0ն Q9 Q*k{iEK% ;9m,!" f,dDC%T$r7Ae>U\Ô`QUà9.-9 $}?E@h ++m>YٝMHfH2©ԩ0YR8fȌuoHx"]xV *'SC+ShgEO.(b1oQbkƯ!Oa&MSG񢡹j'©PJÆiYm ifR%F]5 &5^5/JBzQX ,Ӛ,_hguYgB e܁KKQ}Ե=rԯUi[{wWkvxelḦ́}*ŮEJ~z"M51<} 鞇Bag_|vjLi۹Z TS~'W ӗ&'C3J8MK9яK!gm6|^<=}}Vw[-Q%0b㱇F81iC &aG2?HA`XRGH^ <0]>.` ,}QV +SK|O<*C0CKV.ў(EWԈn q2bP =/S$: *sh +[gZ`CkgtD] W62%px@!edZԆw73\[[R2@:.`J烽 +(1'TI*S1= iqZK ЌL%).'}2>0"…Ue¬@qxJrJfY#b6X&P,^u[}7Tb~~#ʉJQI:ŎromdĘ=j1Gy>] 'Bx3i× +gD//yi5u9!UU:?^7-5-UZgLul\Aj>ᇟUm La'H:![4Lޭ*Ӗ6,C…^1ORV/PGD֎; +*)}mx +9%FKLu#`"C w +9g/} ,ųG~y&,MEk `saa8+3#*m:QX@6?7}l:YUǘ&\iFB'g8Y&"J?p7MEo&l5 +lT85#Nm̬GnqW匥XXصX$NʍqvH+_-g=4nYĎȫ>^5NtZudMx40't";>^WJuMv jWTQ71}{g%[+A2q@=!/eO4B˗_+{V5TU]#Lɔ5A)E$#*sܖhO [( X WU\zNyPDi'|KזNP;-gWr<Ňidk6gJ +6ł0'9rޑ:E`RsbWANYetlWmW EW<,WKW>"1xWXm@FwjZp)$sBi8p;nCݮ"gݱvn]`w=tm@nuԅ'}8|^$a B%;ؘ6HiY9s.BYhR7g!k¶;,XS*esDru*qGZfT쫴U 9ʏ30Al 5B[fy> [czf"%XŤ/ux[?V*B#Tm!tM/\l¹rG>KԳg{YYd-ְqsHBcD +ɺmY $̫@\p*uS6vn"{|bȻ : +3)̂t}J&~Օ[g9g h;=xj惫;>x::Lk B+W.^lONZѵlQ- G=:T{;&p~o> /;<5Ł1$RF<7L9fK +WG5Ms,4%(:?M)S>+!{\S iC_0@ J3<(Q?k ^sZvD, ,JWU='~FئQ +q$*V@ +eh(1` cpV/Oq.U2Kksszn)w,967OBrdvFcY2q ^Q<+4"72¼iZOe;"oXtxZQx[r +}n|!*UIL4жT1E"|Li3 Y+3 Kk!n"| +0eb2F-Inxt+d0=r_h*trou#y}T_if"I#F+&Z:Jjֆcͽ= Ka|+B76oe1NٕS2,k"6֛c$ˮ{wߍ/׫RW0iz:ONwfv9;;; E 0 m $ldRDђM_s_K3[Usݞ؏?LRįOٳk/jSϞ:{p0s'àG<'/(O.QLo#[Qu帧F5O~%! ("|0~"#$b:ٮQ<>L8LWbyAoVQ ^ U}%Zw}.ܤR)iXdH:hV; +FϪ +}:nT|^or&{eDJ|F)^-֍&ǯE4H1EŦU;*vͻ/^tمekf}b8 +,۴Xf];6;<ّGMP6dcc2=9P n[Fy/JiSgu)H1d Y%k"I8/ a٪!3 `sIv$ɤ*o6ˉ0=<"9ls}tpzyC@2>yޭ^_wj8v޼9Lbe̟99^ ^Z8]AAn'-U ̻dM"fXYYF|Omɮ1`oRuRo^@(PQ<a3¶K*cle vBLn/\o=ŕ R=3Gذv,Hӳc5jO?u+ܸQ ƵF>R[9Z3L ?H!ezUUHȁGU"SgWԑmQM;Eam}Il4зgHU9p@m[ _b9sWd,Qxi{K:w;(N<9) %.^RŰ"J_`JCFQijMϿu޽wήӥZ-M{>AݶmJCq<-YYJ;::+sajqYt,GA`QES-f VS{r@OtylIwɣ^zi'xS U Ȍ܀a 3m3F=gp:[4Wld3{jj !ň<0gFH3<!7.2(VWʃ +Qe.LS,D:N!)/Qv1q.0GiSoN~}qZMjKS8{5إ8{8| )Q1C녏HSꉏEivlqn;Tz7by0*H#j-3oN H4Un`tmA5yvq8f _9=U#djMey(L]>]Hq']}ٳG-hQh:a4{3Iiu .|`܋=;<gĜb^:r0 kǁX `v72z`%Vqؑk"*rSFgWW.=Od@^-Mr@0 lq8K8WH%,N<Za6Yb y#i2ӟ(0NmY^^rR緞<1_~9QV 8M4sr{HzWp}(Ó: NyCSBp.)dQ b*G#/|#h,/FF}RUU@?'(ԣIKdd@ %D̋sʴtquˉMKbc ?`@}΅K *gz,ZK{.vkO>{ݜI8'''0Οv Jv?=4QjLj竇שWfD$$A L=nLuWBaD=9JP_ߖ|x{WixYaya,r$w,0s +54E@38 L8#C|NEɪ +jTeי*jhʺ6UK׷_Mw5cE[+^iM[wVUºxXj9Df.-R׀O,> i*}kx `e"pIlaV=jξC-z!r2o'@5kǠc . i t`QsK9Nec㳞[8M"U2Y;Ve;^ Ȇa.?ǐVӻHQD\6&DZAQzStU6Im6zE{_aVk{n c{ҥqP[PcˇAG\6#bB?b0[m/xs4`T|Cy4O{>x!32Kp3LWd  +jSMz$NMP $L!,.bݓjQD.*KRϡ&mB#NmF) 9&0oh-xp./o߼y筷}λ65{ .cѳgMi{T;2F' \N#)&G,)9=!.w'"_9*Ku"geeZQEnC32Xs) +ɬ{Nr;.ޅgEpFUrm ng,mA|DSx,ᵿ:6yݬ=iwXo7LoѺS=.XI; +AFsa%K>AḘoC2 ƿF& +y=„Eeι,[` ّ*aܑB+jgoz֗'w8JGN/ιIb<ȫ\-eˀ +58ZF0ﲵ@?[tý׮jݜcb.w}ukf3gN?І >QVj~}XQ{q` `y)ы0 d]%ޒQuUԬ%#HĽSCur\\dB'룤5̵E&#81EUDEU9yw3(v#Af|쮊F{Q] %߲4mi~KOѤpRquhS]ln[^QZ:>m^(,BrLޱ$H\\;^::"t8 +^pxY܍`U{ +_?_FͬIRږv^ӗۻY5٬lR,ow} T#etY +7OqQ4u|),ɡ5]܏$GAڏʢq[Rwɼj%SK 5؍Ha(#E㆛[pByjCJc=:R3 ^^MU{W=uNM2vqߡDt*IL $/K(;WR0uqSC}r*wg_^Y9ŋk/tP),,|^ܺxߏO0:ЊF:ص>h=2cSN>9jFy+kbU] p_C]Е#H *wt^.(9ukjP"pgcQ1c*ʯ^b:lp͖¬@98l쪏gY=GЎ3g&&gE%Cim6ML 785mrE.-sya|{`3S۲a4K*8nU^Sf'ƫʎXO6]w1L¯4d= MmX6 \fd:̝,.AMlEz%4MKPn!!㎭/=/Bʃ*"+9;idw޽^L'.]Z۞_]XWfQ5#p6QhY:ҌKp#ɀ?*iY\ءl3rLm9~PnR!һpw0(i6ʝVLy{7fڦ', .C$S@/0?l`KI{"%ͦC=ўgo0\X/,,M.Z ^'PͱdGJqVFԳ<ӋEyDeC~sa䎞^p ,R$5u|Ec2&àMX!x9rӄluq$Tg,fKsyRx6YcB%~7ikhlzr qU}W;Ơ,6NG_\:ط36RE}}ggdG՞HDta.wh=t$ΧQ6sc/IRp7\ץLF7cB'Z =\ $ɷeA:KxN@)6a;-wCf_]':l +SC.'jݩ }1m}=&-וf~g`dKMUcX.<~xAFt˱8/EM;[8{U;{~lx#̑~GWcwM"E⿈.eqߥds!['բ9sɬM0:mhN>* ň[@NkEXՋ! C&2@ Ⴝ߱^Vmٲ-̌䱺>Hڍ74x, 6]wt[Rn}kZ`lo]*N=MbZi!awڲǪRU}e-؜aԁwk1'2rEW#|+rg,̈́wck:6bږ<+둩eFí C;gACJ>zПr]A4]K?#Q!tnRsӌj^e2oLvN6v{l*Q +FkٿD 'p.48 w<0;zWKZ8>.ZXzU; \_Qtw07r.D:PƬW\4EpcVLCZlR؜( qJ"LYIP1 +1Mu"רw%x44 >v +:ᚭIv֊Rj|IYR=X.-gӎ4ƃ_)o]~Wy[z}qƲh0'Z^`5Z>9\625KTdy{B?Ctc鰬1ocNH&#K+K8&"BhfYy(? _ c#}D23!J*P~P1C)8~țc}Q E] +[]<60nU+o9 o %= +C]s< vܗ1R=o#DCڤkNQF +4 Je-.|^Z^0XT@~&, D+kGSqonm+AU]&a +J{c퓗_3fEtHYiz4Az&SfY,0#lGA.g%ƲR8ҧ;֗ebS LANDr +*2 څuĢ+ jf 3p$Q300 oc +J+~{}y]:V#{Kwj77ṋ9LLOL% C#4"˺Eٽi!3SLKICRI55 YQo8fnxXH*~YVxJYo v< [~xL82®|WyHvE nBVՆl˩NFⲌ DAtv_v^QwUޞRojGFяcFoGv,]LPFA }uWy76Lmغ;x/+ pVU8@*"oA Cn%Ėÿ2<{F'L8^Im];Ruv{:͍֖7>hzDN4O=RA~+PҖŠ+pyn9z- +Ri?lY)Eu8u#aYix`2|x lh׾nVZ mmM=V62r~ii.3w,<Gw移S"iǍvuqs*!,R-b76Mτe`\r'x* 9Z( ՔHBHN:Tj 6ی1Se~,\pca ad EܖPnN omm_srpjKJUw:0oG = r፟=d=ҭi&i03שf7Ù % +k#]V]3zPx2 &j"nPߗH8a~b'ѡSG1)}]&w +ܿVX^~7 %$ ~k!d̚Zgw2Ď뫫D. l5^COXwCpQM+vڀ'>?^{|{>é ߷몂6zxhH: v8gv**x~bt]s)BJIB#mb:k/EEdsQ]^e>A^ޜ)%C<8*)HȔu PmX⒯$'$pI H`@#BT 2_:7^f{%NײT Պ+;W1v* Ú(Ϝ:: ^lf8X㒖}n?dYSRIjV2ɨFXNOr%tW554:R_HkT-"csZČe*kBA=ғ) 4,Cs"EؐټZ9\2/ 鬘oXd4'0",GC3:ŐN׺Zx`^w׮NL\V;8Xyzҥ7n,-RI9Jʐ8,/t;>-&iG83< al|l¼e3@d'2bdXWrpSMT<2y{fHq>wRB-V]hMixהd Ou<wo]{Veyjj>wS}Mӊ.kPc')5q~9ȩ#^E! kcjlZײW ,Lǐ˽ͬ+|u!Tw|\Ω1SYD07t[T 쁭!;}'*V^LQGF%@zz#캊.i~ևV7'%~I<ܗj'.T>Lituڙa:FN_Nml8†칚pJQd(u Uc#pr '?4 &8傡K] +CL?މfW@kqY>Z`I$4EBx1X|-bMl}֋3bszTCrLPF0ěXIQ9L";W ڵQ*gSwX"(8Y#Ɉ s/1ힽ;.ڕ9l3lnΡhS01Nnauu̖\жXSG8[ߺАv3z"EoCAoT)/`BÂΚ8`8n.,;UTCΊC|TڛHQϊ۷m&+0[5seέh"{*)2yC**Q$JT Qe?g\Ř}H-䤕Z}nCl_\_ A%֩71\k^d3"[,ϕ?PRʬrAWp}yLq#jVeB5t3gj|#org gʏzAS `i5Z ʙlaxTw&aiˠM&l(qA.*nSlֿB(e"Gq#3fUX85֙yb^<$ V~Gí+%wZXΆr'+У n[9P塌tl59/ +O(Q P'TRwp9Dh$1fXUE֧H DR1Z3]^"5w*Q'-q +.)Wvf {vZkkRٕEQ~ӝQmmtw.Pbf r{;XQ^ p:W<;'CXxp*+ي}A f߲m8c(ޓ NX`զd8Um=^9yp(|:̥EYYheC_ +>d5&s_&wr6S*wg29Y'],Fata +XU6[[WMeo'&=`)'hm=r,ΝA%;ot"h3oګrnSN2>Νƚ" ))d 5D +!r| Cj8bX87,݌c?QW+*ʕxVUSfKl'7.^<[erz}mG zGp kONv xTUlG7k- +A, 8Oiw@N7Wj"!8h]5t<ʛʍkضWY9mɉ'G5kk)>{'S zw}WzJf/|Eɪ'|a籅++5_G[τ'6Ж=+l9pҥcSâM_Ȏ5}Iydů8uJ5k*bCX%i(Mj@v(OIVU1?W*h[^2Qm,U%KL9O($0];O3_H A,ιx%iVCV弄%&<M6 U1&:"X)"d7%e̾Զ_U<ם/}#_촶>rM3waK`orGr~YC?N!]3ۏ:5kI [qPO.o@(X8tb_lli,E+ +n`PAdcގm)4ᖊUͲ#:#ϧ Hk--ذp +eEhb X+.Nnmy`CPh^҆ȣ1rTm:,a(vB`㳒ul^<*E(i@/Bn`sL n:{iµa^OSeٺ-X3s_.);y抷ngnwBx°3ʿ:V})c X.{A#fDxegc׀wh&<AʣI9]|8v78Ay\ӳ0dRE&diĪYFNẆ(  +q^YfTϛeB[-F{~Lp`Um)K~KK«7̮cP>Dېa]FIrPbS9SoÜ)ϻ(n0i{י'I9e"NQH IVN(ml֊\J(?NnIE91qQl´{6veo 8xtk =^ : ۇܛqqq&\pǣ\mP.@=4%9t7Wnj"(A2^0-tK&& eBv~`Et5c{S4;'J=_94)rㆬ 1~ϡ6,Č0>Is'{R%6|%&CI/eL{uP;͊n"rab4 \=%XKpjvÈ\[G*ǧ. kԧKgY}<g(4|T򾋸AHV_iUy^Hi 5g2y'36x6!vkck.W'te$PaW8*(\AQA8Z'>$'vIĞ9[A7wU'cʒɬU JiP rd̀@E^DJ| + A)䰝!N@ |iփDEv@̛:-Ӏd0u+E}`moa~pR'%_\.S/9%qCŞ!2fe[AdAǼէ'\h9\tEnV)8!KDQ M>z+\.߾;[g; ~t |e6r)h玈葱SZ Vy#~iqq2zES*M̵(f^Qٴ,"u ~XڦO]"7:"txPx7o&Uȡ_V4IZsf[$Du;5 ׭ޥ kၳkfY[͖OUgZVGr `Bc;S ,{,ż:P-t ?15_IHf?& hy9O!u cjs= ?07_,qM| U+PEL'~E4Zc3FAw#,^q+wo}7Է~zK[[/]j;mM:0Q-ҡ9ZIFmr\{7u%xFccĞGk3, +vZC +>B#$/so$Mj1"<v;-^T[R/rz<޲IdiB'5 +#lB,.+jZ ,:^ރW® #I}Hd@j:zMʶE `*͠tL?*V%eȤ)q_T>,NvgwVce$na([񀢕($xu1|OSx^ ULՆ aRZб\s}P{Cer}W#k9掯&dPÝ, 1"ٿ(kd_^\(O^T.vkctη:̳cnYӌ7c ]Tǧ] Ps=?xɴ5Ee[zv:/Lu\L`2+Ly's{^ϳaX 큦Ҩd҅;~$ or|/ rz"PU1!cES;Fj>_ k|lށ&.gc4Ve ӵ&hoI M|EP \`#|P i}]_@6㾦)vvqWvA=,Ez1֭[p}s*»'#lmbP/6Խ8A9eo\4}ZM!25F7CtA7?Br Hc@X?ၶL-fGAGGbN o`TT% 27j'vnZ(W^[;Lp ]MfTX%n/SSk"=po{=14z~tX:hzV z!w>>b${p\pXрګB- 7ǼAF2>4pvU:Yο +Zfvha\!t=aZiSxS&T̨ xAlQ_RA ,P;U$OFYnE\Xe4&7 6,SSxod.L|8irƏbLmh3olYn aQS7Ssq^~*"-IǕO)S՝+e{楗./oQg޾Oz ccfrOѓuth"oQk<\&ߘ@tvi +Gt>Ǔ1?9mӱ17T5"]5\k:#YW =bj4tq71CE"ky 2KG:@>(5cψxپM?qՓIDYKis-[4-#iE#gK㺮}۽w tck, 46ApU))lkDٖM{,[Ld'8XdLԤRqeI츒Tg*,qOj~s_/hjlnHs=;~;~yZɨO +9{?enX(VrJIJ]\1 Q(E&>cI *wV7𜌟 fH@?OV0#~۵ 3655??<3 _@ʒT?Tf*:tAuW樺w, ]Ծa1+ڲ=$G7ݼڊu_*dp 9$OQix9|pj #DWgxK4kIf4qU|Vi4l]_ږuΕ&;,xs8~0˖-&|_^(>d;f46f3D͟NAm3?2 O|p>6,+WDJpv++Sg.Cöң_1𼥽Vdk۹w}߷E +![Gz o(U#HMjIgcFtD$K;s[.$(oa!LGKVY].1j&gޯj$aqXN>KOa' +Cjzd UJJgC ޕ@7ٞ@7PdO1C̀70Eتx$gLau°JeR5+?٬G\tl=;Rfd,zjƛ3HT3r> @9eT9)V +vn][ )pA#˝ХC'ztS EX(CqYvb9'X.W[uMcfHڅGlGL3VՉ^M STz/TJO)`p1&*̉[6/-Oc׮Š!0}j\Ai{yHXCwIx +9YujԔc͒(XLO,Jj&E҈ =^X0S0D,`z("Þ߉*RR'ͦ(OLkkcNEATRϊr QhvHU{vQ('GIE Cs~_qv](W;n%D3 fg+[y#-°0sZ\oD=>vcxVZ뗟xO=5{uP{ GsvjQ IsS%{6wK^F + R-Q~Z`> +nPѳqUi:) +PD93C-t+mx,Dri3\YEITBq1,ШUt[GX;Qbs`ckzG)r}Xvv##+#֥G!sa& IC8.=}!xU&=ػY q\G3?C+"Bx: &9NL7z߳%_weecdAޟ(b`N\ !,HBr63Į5ID鳌s4$>[/ʵӧgֶ66j"Z/up{*nb +C*!PgtdRM#^:>Dj,53 4>V$)nIqX?T[ Szw/›Hאn9/+1)4*YząfyAR9\IjL#<]VgiT(3 뫫dҨU*^Vhl1zW\gפQj^xZ#GR熣(A#L4V'-U"U߁rv}byY#6Pd[-1O`Q7y7(?l<.^Z?:']ḫ_|3o*_(1ݧ7PPNhaIU+^/Μ<-# + i#@nmEYasYͽ .ס`>Ī|EuFG}^u>Ӭ64ۙM| s鹮e9ݎ?Kxi*/)77'?p{cy{'Y#hxn=cϽۗbփ:Vt{UC%60cٜձ8@1pi ΁DZ,9j?_<"Kʹk%BGD:a)^tZ_\}i`fG:6yU!?F#isjVŰ_ΧRD  ]9i*wKFڍG ;+^V}xRpPscVg ~u~<ՇJʋq9N 9/Z^n'ibE#oeMrn57:^xpEYwf3R&+1,; cQgǑNǡa 1˾ܕZ-<\87>LUfgo_zɳgźx@;y)zi)mO aG,PYCK'-uCBJ'g٩>{uPICEx +9 #Щ߶|k\Rޔ$pQd R,RVܷ8@E-GEy]DyIy(Ϩd}kəߚzu!/nm;Jt ݇WKC1{"B$BHΐ2Ͱp^ iTV^B1j/&c&(5!S6T +Npnmp$6q0TEHKcq>J5융\=^;R݉8Ѭ/Br.x0_(f4 祉 ),5#湎s>wg#|죤\d|msB.#n';;8rl؉vLٿx_F HC +w"]2P[U'--*UTA"NǟJimo± +,pe4q^uw}3bȅm& N\̱pαt;R{b j[;=Ie #e^'gۼuw/ln2w.KF(^F?vl#w3oݾә+׮ܼ9}˗3ѷ3o?|i߷~^>x>4 R;=v|x+rxʁoqvˁqdM7?DGhQu3powΨAؽ(\C o`Qf\ )U:GlRUh Y\_`Ka2';l<64la:9*O,9]}*$~?faw4\,\0չYJK$S\ƘYn J7ci xa[ZrwO8q'zWw>݊ޝm4zُ?k[wL"<T![+G1}!N-͇J[SoqdZ\q#fvp& "MiK0#  +$1tH $Bnl1sV3R٩/RsE5 ibN w5ӎ(5C-y*S&u;˹u͕Lj֗s_zIϼZ'G.~j}⹉VKg1/a?4>4T'Lwmѝ6 uk.O >߻YCA ӂֈEP&$;•4fa&cfDW#|țlpG\wlL%0@R[&}H ITSl9@;,'DqL4h"rTS7Kl#†Y(|2565!Q7]2BA(10]KR%Q% ^ n=of站?#gϮ;v~>a=x)^$\j} 9?5c>vI~uv? |K7t @#wHFC(A޿l_|77 Ը"(|8 OK5-Ua}Tg,caS@5z5r">r]?3 ;3Af 5?3i'f [cq5(y WYW.U|ۮ;'/]m;+ӝ,t.pȶvgnQUbX7KgerN]¾ƾx@]bޕG- γÀ &?-,!/ N=ݠ:[Q7eW=( +/ūD NOY`\ƼIl!D4*!T\goֵTţM!cW|]uF84CjӫbYm-PuKrڋF1=n]aĹ6nf;92r<\3ZZsImBiGYK/7AMö`+W8XWiҗ%ثZҘ:В;RGNF]MxX0nٔ4Y)ưT8DV\ nX6 hgq4;0ܠ\ Ғ{ /`~j +@&8alNmvhkqml5굼}ϾљVtaBCY_vX/V%Ӄna﫯|r]uLTZ`6(<jN{dX$rU#}e|)xr#~dRQI\)t6d`_j=.qȢ];/:٩Q䢬`ʛXꅖxUH DRFԉ",/-( fRa7b3fi) ^ e7.땩ųn˻_uĐ]'[g0&,˸ˀ]c3 \: 6AXaP >zBM3b?+d֠B?jӶk]*(nP.'Xk*$0M.ph%f)doE| GirVyMIwGN/o8~|⋻v/^})9'ɃnޣOw!ka_z޲[1,]9:y[u4W9c$]A-\ jT]ԩ ]g *榅 ?p2|5?ڂ`W=մ#[wL{Ccy.?1=U;F C:8g~+_;ss+J0>rSTz7s羖{0zGndz-~}9^}׃2Hѫzڣo#~=q08ah|̟W\Q|P3{&VؔɆݸSn 1a(%ϛ_c+o䧔E<ڦ᪮f4>4'<А *!*SW)[9%eGԋmSv2O59INdҧx +n35^ESeDSv8][ևޞ!K=F DT/]y_R^q(WKsWJb5jP}h3>!`@s~Ȋf-Z8F,hS.%uʧ_W><Wn?~O{lq>_Wܸ_jW0Q!:g 9u`>m?^w>`;|,E33].e:(9: dj5a?箹\ _lWE]h~T(I,wf]̓bTcqD4hvE㮭[u ,[+RnYxRz?ۖjܪ07Ԛ{DtF4hpڇbٰ9tM9~^0Tģ ;Lvv[֤1Qc鈉LE^PDFVzmB3Grrj\HUw#qBvö|ɌGӥz=i1:洣#@uuDrxڬ'V10S}o-Sm>}.풪6/8GSͅnbutںjVQT^$yPt\ryijٹﯷLRsFv0B~k;oa3;²]=Ӡ+'qdžlwoҔX"9/E )F1L]'AՏPqRʡյ)#4/O?t(t?_ Al y*;kfnzH9cѪ$j) +D(+ͷwo\+kV|b|iӠw=Pٛ)L6do{pllu'՘W,YjHUP^k7^h>syndټsc})( X{:UNҐK;߀A/]&]R 4E51,(iV@E[m[(6ZaLo\e&`YE'!&Ssf|6Ca9fe^ zN^("؀tiyzE/ArX 5ět Pyjݯq<(Sf񩕕듓f3[.jZ%;W Tfs!l4l:i [8e6yEy$Ju(w"8:5_,2^9ԬIc\!xrOiy\ѵya@ufL%N)$G{+6w|T ǵ1 \^3 Ň5=yL' YkPS!sgAB5F +3Rtv"qJmrO> Lȶ-}yp\ywt~}`0`0\$@vy/%Ԯ]iŕ֒,GdK%rrX8J%eUْl9ep%UI%v슓lt \x}}}s4f;G]l\ӱVEKxeu\ <~-CTm~OjLX -El*WTˍ +O\UW:_?\V9ozy|࿏"6دxWT>8隦$ykӡ刘 &oJcގi6@ dIui$. F1?@`s9Oa2|uǗ"Q?M(/~ۦi,RKC7yqUi+-<˝T4IɃlP3vM8;#5fۧY(S֛Bjk^\x-M71i(e6(!Wo׈\ n_d^@Q|}wqHIWl>D!iώwʘ{.9Ԫ']k0Zj5ܱv@vLOvx+tnHb4|[F]čDD5v_'5>g xF&5pzy!z9K =xq "L!o^t97iz?ʩ*+8{+l}J9_y#\yi8An^woX^\^>W_?뛧zk + ~,|y8/4iY޽4]|?'M4CG{GN1'#GYFi8Rc>?3s(D~ i3܂H wQg.k'tpC°N\ G@ĄaŒs2ײU VD#^e'fo Lh7^uҜu+t. dePT<:TL /Q+/X\˝48Bzl?۽_ڥK= dB=xxިP[~ֻicPVgpyjVpXiYf"(z4L.ljz0!1¢dr$ORKir7E̫Өە$>λKR-#)?<.>,ä8K+ʼni'ѽXuy:6>~w| 4u:I[W>"AaALՏ`S_RX:<-C@XGʼ[z2Z*ePǪdy\?,meNIzx'|/)1PS_2*%W0GG}(y"% ߐ24̯] +wZu +n4C~ʉ ,LC`=*C# m)$ڧ Mh$5%ȒR5%ߖxCvstn +nm%q3商E|Pf<3-z^:,$:h`>,:ux+%7D^x^? qKa̠^]@d; I6DB\Ea:o֊~HY%sK\f7r}LrNLt"62f ' }B0B6MȜCsːZH~ֻveS.iO,56r"sGuo놾騀6EYV)-Of! b\YYe\22> >{vSvpQX<2"4@\%d~h9 đSCN:`B 37[oaϴv Tk C#CZ@e8C3k䲬N|HNKtHᣕ*a u8/E8Rլ@uLUFxo +K%Д*ԗ:RVH&bn0-=lhh|QѝQE`s +%a}?g?ݟ߫7~qr[c{ypGd-ѯI;-)C圌[;`;w[n 0i0n6gQ6jrۼ7e{}my5q歘㷅=Ŗ91WWV"揪>qN"LX޽}l:|)AEXFN_'ݰup W4[~S2*H=TOJo7A4P6i{72}5}-ۭ+g䳮xw6sq9fS-IO)s,A4u7a4\Kh!ql)(QI{63=[ K]hGC*@zi5Aw[;?ҳYTuB3z&hrgÂB IP<@݉e_ +ɺ-YYsE +p +V'+~UJBK?vqQMy.׃j߈Y\|'6 sOƋrSS 7wa翘C^:~.F3и];f;\5ë+T;ի0R t>$?pdy:`u mF$EGZժBf'D5`bMQg'|EY9(PyDJDm+1hlI8gK08#Bn^lIWmVt_ +_m +aȒV z1ڨ_KekS7N1{ 땑+X&|ye?V;<:!^ XLVcIST-Xk9ДɠȴYOR"zVjI,v?#jSj0}yC> % dLP/Z@)hnÑ=75{橦N%0;ϱDxܗ%mZpwuXa\v(B{xaof͔9,ictOH C{Y}ZwHq0(gגݝsֺ2QK.ff(>J`"DRAY|#LC奘H +" E L,/ġ`&ُBQ*έ"*fߕ3$ƆoAʕam!ٸeKw\[Ի|&SN^3qL[#y$OsPMu ZJDܚkUX~$dFB_ao=^!P}$4ŏa߀ʼm岪5,i'~e5 M%Ž8$W"nz E!&YF%<&ql^ޜ[ +[ah/>%Y9J smpr {37@c?ӋOʀcΩP{"'BZ5|9*`k i}plF@AMbSG66x):cP¶RN5dv^*9L+ښ@70,1[eu0B64°cxQ[Y[KAU7pxrtVpИ=]#,=3yܳ &`~2/=4?YⴽS,8%lJ8<ЄsM\8#k׮&ĶL|ɱ}x.ZstWr71T ǓI@ Q\ʮmj.;"ʾ*u֊s{wi"$ EESb5Wv}Oe'H_,Lz%bIWFcǒDaB{А")bSK ,$7aH@:4XBg68q_3BehF$3e"3#LLct~-SjbgISR"mFhddW1SʞƩMڷg) pac@QW6.Ks9*hj أX< A؄i,2~g,LvE:DJy%rku,+`q(BŊ;5d'ɓ 46A's"<`L0t')l-XjS3J5q ПfC +$Ma埗6Jv杛<^c)F=jBG`j+>BuZ:h)Kֆl79M`diwRKEQFZrl8m.7Ds؏uc9rJserLnrlF(]M쬪LTmX(zGYBt84Mm\5٦v*/7d(c3ĻLDE(lk5kTI-q}bwMHezJ垧Y^ s*/dQ0jm,Wp. ++i|fǏ#[m%x-ąyuG<_N+ԝ)W[3f<-G 1[zn.8q6=aU\WnjDYaw{X/L̨ieK0dRYO}_Ȟ)N:tV/|k#.hte$< F}U5bǵ\G.lzD tSx/]tHy+"v^6Iy90[rPĤm]\JbB51:ńvbӈj@oң|@V0EG7uE7 P@,Zh4$uqqJr.EKg|IļSX?1y2y"V͟z)u&7jO~:ңK<{e|Ff+gPws?44&T\I)x@Lo*{ù7޸|af}vyt΃j0}֣VS/=WLLS>:XA~폞D: &`DB2s츟p;LCxR|uҟfCnkVO'Z=*.ǡր I(غSZVt N#b^`g#CYi'i<%e!dbVҲuG?U-(.רCTfqfK~nw8­]L!ovU5#M#HiȱB:'dmD1MclbzYkZ6` ГZgY Gd<.7Fv[}yP.{Ϭx$yNXT;sqgg[<&+yL5g8* qrh X G∗QFW\}s^9+lo,d$"/e9h8+S 3R͛smfIK Cq-˛A% (Uj\X0Ȫ^WHZLj볮ns;LGPa+/Xswg{RRW~ޣʣc y{"^&[ژAdʸ+wiJ Q0)?UBFRO +a `PBgYcQFˮTd9Ic9u]]o wucr@ ԠX&硨]yƃif#cW-IӨ3q| X8jrN\USO[^t DUըN6|8%~ҚH7-6쩽w k^~I&WvW&)Z47ַvvJs}\ϕKlljZݒ{8u88!2Ta"GbQ ES%K +f``m;u2VH4y%?jzOgH~US}(o1J¦.xv`j TiCAL LؼckiCXj+!ӣu D>$^z\{xZWwwէOi0K7Qg7##@_ʷVD8\?RcJ}oD]hs +PuM҈;:(Z%57*ܮ )N**๘ +dfT;ePu2B(~gvrwZT_P=ne$JsMS{*̥^U"xVZL.z/_Z/d 3';8ۍh>JBa +D7AXl@?9[RgQmJ6+#s8Eܓ$JVmUZXF'u{Ex4 +ġ)ro/.~+cM}[{MW^@uvIi PfŰLJȴLNl'5кiFOM+T`%~P!j}ղPsN"'O/hLPp4׎Z>ea[Í'Oxj +26Rwo+oEH^[B-lY5_5|%EBoh[(my Y>T˃C];Z3>l=1Di/vruxƛI 'Ìa)621[kуHlj^qV};xrB?^|dz޿8]!My8?L,zlGFwd?da PS3uˤUU TMcsˠzem »e ʹ"i)t~ࠝ$[ʴN24w )Fky~*vmFn?"oWGJ)҂hl@ +DɃm]#CZ߻uU3*Vک;7r I6eB wt^ A1!PۘBZn3[פ 8|HqTyX8P@~E)?FO3n$:Wf^9F@̶5e>fمD9Ug@񎄟DVy)MTQ+UKM;̆3.LmN}T yTX5:9-oH\lPlUQ{* fO((irWx1vmllX1zWFa[S]N\)݀ʖM >'!%&H/Kf/fg߹ӧvYC;Yewvplą׏oRW1,U]hs2  +HASk9$i7[-IJ ş-B$ZN;axIry/?tk{Rsi1,&"1[@\M9+st5Cъ>e(fzԆ5rfƥA + Pі+ !2mVp12t S VE+0ZipmK`9~$싄H9oyDI!PnڬI(\$X3ZVƮ\%X2į}v~㭷^'̴Zͻ{\o?=8Nv`[9Ԥ:O̎h:BO`ǾO70 ^ #kJNB<^S.QnRWw)$כ Fa&-J@\K5C˝/YjU4.M^*a;MܻBh'`1I S$RӦ>ӝ(޴xGriοQo_۫ZN`ښSsS?80q +͙ݜc~۸#^fZmq̮Nv@@TU3"ښާ7 ө|{saNTYGkg]( DF/:wLw<6f<Hx}k7w?_g33/L >yrz5(.2 .[} ԇAw~l\h5x +7áZ08:5Ld eԔn^~ C%* Y+-+O_0a[t=0d{6ΩCt#rŃnm1{0(ꊗ믻(T$}G03fRi}+p0]°%'c)KY9u3Gow<O8|$i'jG@U:T_'8wAVPUv@Cu˂)u"hĤ& GCܪMgMjb- 0&T4у@ 8 ^V7aa],ibfr"`3z*m[X&Q8\RiGy7դ͜ijWK?QW|Jzٵh%f(%@3Z[nӫmns8=ox|Nu"kɃ2n,Vqh^BfUzֿ ۶FEnsy|Fˁ X˛K`fiF ;#چgv؆ڕ-ҹLh+d0*ʈ9oFOѳ #>۬Ϟ1N}vLp@Szwy鿌Q +]Zؤ*ZKxS]-H`,H_>3?@_x&ͤ{,/41Q1!tP,0.>H" ".SUۢ +=3 VG#黨ukvu9h +@n\&,;QjVE3vCA@YlB7!SlMr] +SXNSW#>-oYz>H\5%ԚDŋmYɾqz'ixUj/ 3& \yY,ϬiNIV;Po(][w[zVivW€T^4gMD. \b&ln 4$ԛS~Ґ?mUCkx"̻G81 SJWm $)9K:Ќ,zUpE!Ј0> :: B4:B#bg35&d\bfRn_dxyĸ%ڀg%/1-w!M'euzxmpRUq0A(_7 i;{ #P/PKa;=@a , lZ^f*D, +'_~8Yy3b$j誡!f֙)w&i]p&-m5%[R" TX[^6\Ju+3҉+%epB.R{ftgu #8*SHhᆏ(KY={}l\D}YR%W|<|-!<_$3I/-vg׮=o88hK1c* oBtb .XvJ/1ڦ$=,'ӎ~Zđ,T>l:qwnq=ip<%4_^LĤ>Q`:\T%uWIVBJLMP-! Z!CIS^lLe_BD_鈃iOJkΟo8Kz1?1[S;ؓu,_Dj+=yA,K!4dlPɯaCxfym)X&)M8fB[-)Mu2)OVUl8`1Z4 +'&(Mu-V~.h%WL1vv7+h8U3)Kݕ$ƧmClRT-C<39y7awLVl?G_`.N^ !f4o]R,<bpb|EZ  )Ĉ0E_*_̌ztX]l4Lha&e9RX|ϧOVRۋwPݱ^*67m2XNo /8ɱ"} Yz-5坱3"=euI&8䄖pFp4?RO#1Q:xcL /̂^ iHzfh S++H_|H;d[_ t$` ҈ɏ#|KjY:oeꦺ\_9KϞL*)Cx!#+ϱHDŽ`Zʘ9l +h 5-&ֈs)e|[\OaonP$4 +5-R@C~SPd mR>84˰H=Yk[fVw}jٜ[QJq,(ܜ'+Sz'F|$QrjGr(_ߝ 3Jev(ݝwqߢfD-5*u"c)J]4BzAfgy,It0?qڂePKbrdė3^xxΜ.>è`7a\:\bXbCc:4Ei:#k*tRǃ"Ld[, +c2 QbaVRLUg.7]?W#sK!&ɰ)`\fiw1:w=?<]#L|r>yD&jxtIh8t G)q~jwwW AnDt Q^l}|r +ЗGS*5Wӷ}>m OĘ5Y,YĠ3b&FtmP9ٍxIvn0C,{[ss?`x=aN-"\AЍ$1}D +eQ?ZKra9?^|.W9gIvұpDABt͜t>5 kiA¡2FU49$)F,Ho:(E^k7ǒ/Ka2)oݴE˭o'In)3鯛D[ ,2!` DeK4sV\ys,^BYZd Wt f"Q˫Z;hL1J!ǜ Z^5@:rc^2ğ(^* EBˢ%+6ɖFas-ʳGK^_P.Z覈`I }'PϜqv":;hVXM}aGhDv1:783+mlF=ԞnG}XRfV`zBն,x a2J=m0c BpXg.u!@?ܸn- Ș7A#G#TV/ W)ډ ,h^yȨyjq9$ޭF9=y HH4*E[ֿ c#;6+}_B8Ym2ZHFm=/ TvAAY_5=xY6dx!2H^&oUk$*vp?:e7/ WlnC00136ٓx &)SPƯ_؉&x.ad{ e˾A.nmQ M.JRu_M)9L+q-wB}&68KVDc՞p՘%^a&$Hq;XC]^NVpх5Kܜ{~_ y|1*B-䏯-;.ׄP*WgrxPjR Mq3!M\j! ʫ-U~Bqo*qB,喸:ބí2q`pյs۝dr흷ZϯnmMYI$^^{y[>x†{Ppzdl)b(d~ɓ/txWeSL'j'ţ: (O'CpRG)<Զն@"FTM_OQ R1e]W6˖+AO$qש+dPBz-.nrrN=UW@9ya9G_w4>wyΎW^qz݉$(=<AzN=ĝSj_׍ ~>6F}R$j"NLIQӜQs<;uQǼ)ā愭F,ڵ@RǖlТӛ#z}EyDDWݤE1|AcEÄo1[@KIc"( hti${T BCEN#i!^k69.".uo,o9<20S[PR0YR\ljxIVX"8[-H#P?Jd$_+eӋTR ':QJK%oJZ_O47C!s ݤ#TN&[:bmzOO⿱<5=}p\/@T7֧YP|Qj*dCB8#T +1!r5, l!9nFsBM0a~ WO:_# +pUCyC(?K;Udglfmnaѧ!>(ޮʁ۽-4~0ЧY 1߲'+ >2n Oeq$Y^꫔$4qcUj5yK`P5YJ +H)b>*aI+y^<) :*J8!I4RϨV-RhȃjF"YgiffΙ6o}.;w vGZwuvDaReJL Ѽ]>BpTh@>NJ}Xz'i W'K1S"x6%FxNĘܙ +fK -:amɿF]Ty|I\TeAcCBlQleulY`i0`gth:ὑu@v+ q!<(7jȚR +b'nMVԒ/lxR6 81 4(E5*%N,IHClʢl-%TDCLOYhn"$.Z:d1h'_LB^M)o @R2`^h3`jA\DAWkGx%j19if{6K +oՍ$TL$!eGuD'6 /5Ç^O\JX%$ w zPbW>u"M&XZij]b*wqF?1puRO0A +Lv{9^ֺGf/ԯTNC\BJVZ߶ luK; -H7d7i_wuز*3 cw ٨F;JtgR/MݐJBY);[d$0L*(/{멉c W*:O^]?2fnniӺX*N^:zt&f3?URXk쁩g(i:%;ܓMnQev7QMe f3F.Q4yaiŢǐ9n$OX։o5 +bnbQOyoFc ; P..NN#1ṷ=R,rzxq +­qgp7C +[/'G艣ӏߐŹƩ37lDG/oN5tt4c=pe;(tdz~-A_ [;9>viWBR;41U:S{a7W"4 q.*%Q<Yh1U󋋖yh."*<Y+qh' L+J%*T_S&Q +kN$,ɛ'(7' +FhYZUmwLlf^!LZZ`P{1D +ZfJ_b~z&Q}QʑMI0*:w;'>{_Lxw>2ѧn_zⵗD/]~{'T2;2ȇ DjK&{5ۍثn~k 9jz6pyNbJ bz`zˬX1[h>e[Aސnf=?NIX}#Q yy`g&GցoE"B@Ys6ͨq"5YsP 4ȹ>MF!@#n`7 S;krQ |y hYIޜXyz6Kyp8_x}}c ybHr}ܺvr2}z~uuc YɧV|W6.ǒG$sk57+0= C]wHvypWw,3i%=;|o6BTHdd y2¦/P!uG-G) )Y6PId$u"2qv8jKla2qChZ.wm͕R2?|gs>{hOs~V'޷>](nݍs<3_>?M'gckpџ[˧6F s#70ĕ=з⃍~.c@n1x]]̣nfJw2 60DFӺ!TĔ>/i0dRӪhhN1U]#m!ȦRuE4&aXNʢ`,C rxIu/##Ov +ئ.;N"XͫGI>* 5W1y ٶIEBQ +7,؄z.Miϕ˵x*ɤKq%\iڑ<taǚz\>e)v;2}*>bɸˆ7a"VSt a,L$./vGkBe29]\ZkښO0N7ͽA/@Эݞza׻A5a Lˆsi4ؾHC τnlj"0PQ}ۓl{2,Jc4 ǑI)cCUӐ.e纫 /{ +TV*o>tK o\r?>_y3xol 8avA){v?1BW 0 OY ZCe*: JH@3թ}II x-ؒF?' l2V$B@62o1?oзj#@RӡpR[`wh' 4$ij2Ldj]&`ǠUFix\gL5>%[h$4,܈ +viBzspϣ,ߎRӈsRh5,Bbbq4.j%n^paH"!뮻޽$J!WCO;P8fЄ w1!ߙwDՠ˼8PpU*g +4b axE($1su( J 6%5o^?|CŒAS^[ Ol?A58 M&BM}<)fC֙ $Lv + hZ\`tnsnl͵7n^߹y[bn4`tNavj4P?P@;Jؓchb8SfZ0\ˣ3M%x5u~<嬪7D!)uzk=S:Q^9b!cUh D~K +*$h(II 3d`Ҋ$E)zhJid1UC|1e +cHuhFu32afsnqŲ2 (q肳,D/ʨ-=4PGP^ѭVktޭ~!|MS|1mQlw C-":%,ZԴ_ +QجV@X̠%5kdTFfۙ$R+MF{Ҕx?z:%DKFP'"Y?pמu@h^sMoe)-(oqSAp*mU!2GU}>aԴBqX. +c2zBb@F1ҳhCzly )wR4I_(ɦLS&`XǾ) + Ǝ"ꅑgx)Ԣ 7Tc7>G-- +Dx֝BˮX{l-x:no}R-n^Y][SܣS +3~QpH V^S[zå杍:F|46Ƨ=1[ +3Qh6ǑБYf}ˈ2ѫ#BZRhj)SǪQ53h2$ɪNd(@t EibraFGVZq6i~"`K4a-&&cʡ馋{l +~޿Lh{쎎O]~Do_9Cn{;ӾUVqItV@1{߶)sl|@^i7Nm:G 2lejv,P9"QG%,%Bk2k,hT>j- U8R&u (˶@FD {rjXW(M"w44d6PH8C}|hNZY /& n֔ ehʈR\I%~& t"d2|>iQU%ruSigQ;M{P/IX srorov7v0}vC7oܘ{r?={Hcr…S\IOu~{!ݻ^zͧxa6~jjf;$;k .{'0_z֯5d K 6= Ue 9n9> I20Q!L~5(T(@77BRӥU1M\ݘ5jS g+AF3*r"db um6(qް0e֐2IYfB7=XbR޲<1 I3=zW~v\ܜUucbl.X}^Amww(^#%S&ԈдP +|=P`x,(_Xۦ]M[ْ_eh:p.␍/NoW8 n.ӟRmMi`cT>C+. ,U"հү~9uDm[kƧE)|br pfoOfi!{T(0}vW,{)dcCxV2۪ QVU1VDltS1 t{&)hh>2Zf# oJ 44}@}YT} Sw29g1Z;ɦ[E>G8l1ebť*c}3֋| #=AB5Lt'|5O6(}:^|'5J'(=Hl)TcX'O82 ҉3 +ї>NieWӿsJW3eV\[lV\m6ۜ{a;#+3Pj&`i@5 l } 憎p,E~1k!:@$#VO&D:T"GP=Wm2P%:b昩*@K,N}[->DQgR,K/iops +w{{̋UNO>k3WY$b/guN=TAu\CixL儖XT1XMPuAfH`=I $Xb2Z0-"+JXz,;[z>e#e^s؈5 eCϩmjgU:mp<-mZr.7;xykGثXl `JaCâirc؞_%*LROXOxa;$ ೭8d񆡊WV+ D6lO%'bxRIvL9kz<#dh棪bslb!1[k  +T\ ; կ|Az(Mj-LQ0f 6_hލ M8q{uaasyeeS+*Oݾ}84IKwOl ؠ}sdu}}{^F@wcg`V pf8p(n2P&-nM%)%;lIl#V$YRUC$%.R$KlIr\t}A4fk=lvMcϥ9(m4[aa $} P"TzŦqߣ^mk~K_fh0{َΛ.!p0;>RU?a97E>";Za/Bd"oMmSEkB6{R0b\憽*I<$N +dHϸ}giv j=/X_Yqvز*IF +򧖅\/'˭7Z|c8֟4M"YOl6?Lظf}0&L!~>MSk +OO f!0D`3xN'YM3Df29 ɣ UVg/屜'\ GoE|-F _xC*HK.[5SX֗[u)Z 'DkxGo 2K3BbKAm#Y""~DV-1;;\/Kj\sd2{ib*Dʩw^neU%Yo.ZṞj+rY$ W(2d09/I9rd2K '6FD)NS0NĎl꛵ 2oflr-Gp|iROO:^S})/g3<=̆h$;*+S\FEnT,ذ+fy}OWǃ#%χ$۽)b;w*XT'5 #ĺ Jy5&*#Oe`4Q--29*I=yS`@ʻ(RSʲ׽\,M>`0(8H4zcXs;X'lUsT|(8~ ++ W 9E B\ Ow\<5kƓJVK?Z>]=H'^*CvjZ*+::s {7?X^?]׻\q6ݩbֶũ%10fcw4q")N7GbYcȲVn}<"|\g:[l!X^|rq.'vlJyz7N7ῠmj0%ͧjf=:@<>Z+A(KAQNHi5'ᒮ YaFP^8y^R`(@t‚a.%aQPr*hXTqMTkJs) aGE"th'b)6*IX;N&ט<ݩMnN[ +{ +tGtnMNοa}hɂ}!(GgꔊS_bJbHk~PV ")DS).:##aUB(+tEHlX>X JPS^Y_c <=+~i)}Շ=wtn9>2٫<ڊCB42sAw 4KbCXXJ +`C 3>VŜwG w"r$jf5ݐcgMeW,EdZzVFu!Xyws`&%IdS!Q0iN'mrtum= +b3xvzSA˫ȢXQ- Wy4 lj C$GCz9N"!ia&}(S9}=.36i2SIF6t"aN%Ŵ.۩Iœi͙I5& )(7L6ʹjBIFL!?0en;=Ͻz^|.ܖ_xdܾTמKuim U sD} :p' iq{#k>zIқ15-6P"U1Tv?mjFcp`'O@*T8mu5B,nhKsϳq% lGB-JV-VYImW*Q*{WWTId4K9[r*I<ʵt]@?1ullZ塭+ŭ֌U5ZV*Dq}7"Ҍws~ +,x0+f6G$mnO]]d[@0)j8Fa EDTT#XQuhi)ǓrL)jm$k"u}]Dq? tOS~ED``Q/RFҕ~($Q4*EME9"X7L 3G[JK eG A B2˵'-C.U 3ܵ|`7jKsOaao.ߩٍSaTui#Ϝ;~?;w+N\,, G0 :"idj'v̗To :+Bƚ*h.ntgc#}լ&.yἻNXy$ +5% MVkXvS@~=ٳZVDl+"nҘ_LF^b!NDR.fw*&GV?3Ew 9%?۪N.wc$S?Hv;wtv9) +Qhj?L{aUHX\;4>DB@h $ӌ˗/?bԩyfϦPvOxMRmꂡ|VK6f,Gm,KM1mIFy6Ai_-fYv%`UTd80 Rlۚdޔ%jlSˉ[@p1#[bPUKP5윢l[t7$tb~~Yk?A2ch{Zx"1d6{1;v. ew6~<|\kxD+`m[h{eu ü E&ƿ2oıM唅ǔsbjJFs1Įkx,Kz6@5Ԟ-^o:Aφ\ڀ^nniݸѿb2e=o!1sgR617Ȗ޹vXW5r?}0NAh|,nHu;:G3:ٟQ\^^_G)ߙm(°YkvRМj} +S Q( ! հK$SlV^Oktp9s\gΉ٥R*-ϣ:⢿kh;`3{2LR! ? }Ed|4|:zuMYf0Lgoؖ w9jDJ YQX-IlE:| +7#gL+zRK._{Ǯ_[vVV]|hǯx굣H# Q/jX #˲v~kK^&%f;Nz%W]Y}4 |O_ѩ<7wwn?P@d%AamZi.7ĴgH :Nukؤp%Y)O]%Nb%!BⱺG씭 sFָ̮w "rxKk\Dzq쬭]lmh +,o +pJkcuPRʛNںhk8206Q@=nhr_N,x%&OI)|+v_7kzWYq٤ւb0EB qݽx؊s}P[ݵЊ), t,7tJ& )gѺp> '(L_n ư^c'$;})5˒ʨ(K62o$=́@٧S:wo#Acݾ|~l,|9<ֵAl3yj*Y٦iN%R"S*&ㆻ)+* +`Pxg/ f>̽ŽwK/^9v6^{koy;ގp{O팚T ׮.yWn~tb 8JrP%^COJ4rBTwoĶ~DJf%tZ;G;t }p߷LUÏ2h~9FN1LEނn!@X|T*Z!f_rgc^݇?>_} =uu}?;w[?wg!_̵ܼK/鶢~|w'?;9p$ZT)gpCu3esY# `xz>[ GEU"6`tM!Đw]bۀ9uya'*(aڴTo1 w[| ӏ LM%_-Fg#w]xm0'<.~{߻q({^+W"^{=Ͱzk~Td+4rDNHc_{,:V#\ZZ +A%I?Vl]QI5W٭c]e[v=UeեFJfM@ь"io.w)"j W*UO] PMCB7> +8 OVNFR0ĥRMԑ'Km@8^~:hEdv?wfbX+|ZI߽Cw%뭼*yOj2l%`]?x^D_m!otpЅR.:‰' `T{&%jwGXY`cm{e~&#vyQžD3, +,lrwXԀPzS33ZDRk\[سWf ۬ȚR|N qWijoքuOhIݚ=9+ZG=lW\ + ִ%O-RZ=A}-ʞ^͂=f;n=~S}0Љ#-c|󸇐M9=ung%4QU<8i43q؉-f+&Q+c%%zb.3 +w5{i +"3|5%VUxAR,׋Bh"QnAic|eg *̤n,J,fy52UW~׍5aAR͕ͮU(ttYnw&2&h쥇R GL-:JfuOLFwǂgyXlgWaj#nY5eē#X./&گ񺉱,a,i((K$d$1} lF77=.n7pk۞DU&!cІ5 4[J+rX3k\XoN--u: +DMZ':1ܿezSœLx$d8*2yg$VI4QoeޘDw_2Tu%!.ʔOAyګy3mOyLX%7Z+=H2MY]]X@ 2ޏ/@nre["_]Aml|NvS:e7VöF;>f8+He#bvhX*f{%2yRJ7^}UP` (?ivqd /:t08?UDosO1{8{fnVh6ħ7ag~hP7jy?<([LPB?əVz@i1M󷘘^=aj ^槳26 9-"|NtWgDC%f(urd$q͙D=Eg +,mQU׍_ ==}ن+·~Ydtݹ~ݻ/B0 C۰09$aD61q94Op_M%PryB:5UJ +;:@c>2X4X$?Z$pǰvkSiv~Oc +:oֈ2MAVB'Y0!Xsj;B +^^'78ɪ6~+QWVK"=?6F5`g>ϙQVvvn/-.n {wW۫ ryŃ&nMn&yt8Fw'w_ +&3wd-f^.h2WǟJjux]Gu 54T(bCVMIdp")*[Y7ᢸ(7b_F).;3hN)v= kCm= +qckzy/Ⱥ~vB Ν9s~ġ;v_WC <3lSOM +G4yc$i7~GLK>;,ֳb~,v`d?Y,g͌j/$ y\/q<={@k}B*[ASXܟ󇎳^Y3=@3G3gN(Ɓ?s޻97% !! G#䈀/@-ZR^K=(ERV-hZKRk}[?3awp7(nvy\Uʢpj2̗!"JԗJZA6JaԠF v))'J,w?폞&6"nbF Ed{9jUP]ȐBx3ԥU˜>UDzjCY}Vn|Y2{˥bTzTf''G[vм ⬘ cEW泜 6O\.=߹N,uU3Hf&-MWUSG!^czpQ䵝jzUM1&tPѷn.d⻲R4;Z[ )nH=쳤qH0ھcJ+-JΕ *i )|4WY?S@{摹N!Cȸ6=Zt=iF As،98Yk(i!YA.6J|!V &Q%( \\/]+{Dcm桃,+*ʖkai4ٲTAa2ǟQd-~6 fMd)Wh(ѵT8T' 5ꕼ٥αxxFLP0S2ӀhR1@i{ܢ4Dj?6/VH8v>f _22YdQIvE\%oxj`2%1@8 HDFc_;jY3hNj씅&$==;=} 2$݅(m2mOêgA%9> +p>}/^T:Z&L[WVڱvx6Æi!Nw4#l}1j6a 4ײ2tf-uw[uk([t!(#|06%?,/Oϗϟ?kIkkBoLv^Qz>c{".:% 9yފFVQW/eVeX\RRL 4Ɗtms&%Xm YN 4mO(̑z",H0! +Z&,c#b=LPσeq؉1G5 gGD?!X7sN*JWEEEc6Ed5,<YX"$XhT bYyi7>L'G9"JaViȪf ([hX@Ѧձ)̞6Ctێk]r]w`u+uײ[]&WS~uyF:.S[^QZPgqảiƚn} +D=T}iS7SPj("N8ŊsG$9>I@ !y&"* ZHIL=^8ކ"e:lqRI,QlKq$kMN"%Uu+ )S0IUd9#i.6c1l%0֩1º*}0’"XEA0׳00 _͠#Q_)N`%2~KsQqNANxv-+CXQ#QNQ܎c=:D +0'L Xv"Crx53gj$3Bcի $VBOY@HNa9\),)5TH,PmS6S>hzsjs+'L5TTj'M8lda;hPe|*_i0#ܿ#A\4Ӧh;rKHG3Ҏ,^]&TݏX;Ȫ4N geY'74WڶF1Khyhk>$fǐ,>{?8.T1|_ `5XցkMYCW.p)տ[f\P Vym-`ۖ/_%Ky^LZ9NJuZBTIvd1:vC\xT1>٬Ӆ +]ki9f*aM/U ,&kw(SuUAt[I6ح9`ІD4 3긗lÔ]^0e EzLjX5FE \8vyK3%""<6^(> +[pą8s#Ұ=K&ѫ(1X +9id +vRI8iQN ^3u/ocs\a#A [GļٌHio,="YRdOj?&epKlMi s֬[W_ ֗r}˲eG/*-8f̜9zZozqqm qJQS~cDiɅ;BJ iQt zM^TFkmyDQy-:۝,YN "Il +`(Ůh戽l`|M YriW? q +GѾ\Z5*+Ł08F$NW)Z[cβ*F"1mV:A;q +јvh&8y0z'h*^"i_]cZYHnF.,l$,P&kɏ pV;G:X QXk*`ts=ܤ_6;GK{˘-%ͣGozͅ[n mY23;{K-ölx4li. +X| 0n.5w*Ns狹<4 N[ +AJgQ5FE#դɾ Sm!t0ɢYYlC,-,gz +,u6yͮZ#W]0ƜڼIugd9+i:PCHEE`H0_8Q;"woqWht{3 UꢊRLtNW[GVMz!CR0'SSRïxV2Tۣ9c Giw)* N +dHBFSacU"A<\W/+/ fx90{WϞEf[o<ŭ#z8F6,EpɀXD-ӵ /QQYyh<#n_krdl|ʐ Tx|DiT07󩨛J+q0' +DD_fP+*@{U^&IB=,xԉ(9L98s2exʸ*#G:8 p@Y:q/_HI$+J*tr*⁥J^L052~A'6?峿ytU%mں.{2RjaG-'Non\]W< f7'Vr!WvGTLf";[z7n_x(ZzJYL]“N&y"]%TaŪWT]$(dˌXi(ŸCuu,/!.b.\0rQd q|X +GP*l hVBM+@(:j0:]$d9;,#}LD+ I=_i)Yi/iDMRfEZ]JI~G +Qff$7"WTtA:8g)>q$7cG\_GaCeW2)eE}(>Oۙ#kka~jm)Kpj3Rܜ$5WӑX@IVmWhw{۠Lj@YYq=%RE'IvKaD"|c++pPs` |'GߓEF"UWԎju8Cc(oI0#HšsJNmVTz7"Z^hom'w7%~;"- +ET)N +5A*H*V5 +?hF*-'l!EP"mBK'1 ^hv uP{C\H_^Rlˆ쯿z ,ig3`4pH9l} ڊ/N0ÆEU{> +gX/Sֿ:EZɶ|Pѿj ?[}sp3Aڡ!d[fi6~ />>ÍIO]\7g??zbocw>1|3iii>IG l)^/j ^İ ),v<ú=HF$d,sU-xҡ.ĀmEQIa<&xZ +b<`e{Z)cj^8``]P xe4{[p3<} 2 yC}r;aZİ"{+(x8Z%L÷0QC6g~ɬ0u$8Nwo>i.c86vJu1 cXD:)ս 1`-IIIW LޙI0n`CԔIII[;yi!ͦCZ@ccr VM#&;ߌ5̏ᑰY _6nZ@um!;îi2Oڂ:i!hsl/ ׶-~%tnhẊ8pl-#5[~ z>\ۍ|Zӵfjx~wFeֺĬf2n}aKwgh{k=m=s/߽ρMt 5ۼ?l˚/m{} jx(A_Ύ|y^#/;|mbyta~k{|͇n۳ұy'O6oΛaT鶞{fOE#o3Áa߇uA=PءhҽN2;Rb~tҁ5fG7G#}ws?/X}{vS~ cO5_=_v`lk9㷍fo +ݓIUS~ a;?n*ڻw'2R3+ު.7?#Ov6İx=Aۢ}P FϺ$O>aZçg/DA~ '5hl&3C{ tIWl[3\Z'o"zațg +ߟ0hQ3K}clpLgJ߸sۻ灼hu/PSGF^ҕ$s򿝔&C0t1܆g y S4cAJ&wK4| @KUX5Ϩ I=^k1b{O6]Pa&U5g27S_֘ԝVtm_~wqx4i *<_ڜ1IIWWZ] yKr͌o [laYКɧk?2,> %%>0>Űl|X9lE{wƥ:Vx7W䖠V 춠amS[ m!?j6]=ný-amT _6}sA6?$]Iщ{`٥eW?LJ껇NvlO=yw2 d}5ms^N0}M>m.޷R>÷a,7'K̓;g/:lLSg Ϟbފ$y;~8Ȍ`GfG;°LO7lMر^t~1.K^w|lv|{^3^}Nݯu,a7޿ޞ6p2NSݽ?x\ZNI̙7o/$u{KlKJ?ax~c5|}?}TDl7k`| $ߪ}:>gK +viGokߥV%&mqߤ lhΐ< Мigh+` #xÕtZϕ^Ź`UI\_uIXr2'fVC;]0&f GhSuôcmsf3}7-:МssLfsgfa~kM=pi-jh.G[ӿ[жؖf+%]nVVun⻱ݼ-1hF4mM>0a,IúmݻcUy ]kn}v;N΄mk޹C [¶/hǃ̓=1ۑwir _{gg}4@waKmoy׷_|N}";=]<{p=}6g$].4؝tqJJJz,C k5 Ć;|xqؕ}8a{Iû&=몤xζ(9φ_ siHy{i{eKmҥ$1)-v{ YZ&.091 +\+og͎hxWZȯO^emvrqfk {ICVua, {ߟwG9oV}kߝ}kDlfW׿l_c|oFlZ 9u8v y1>vx]#bϙӉck= GxeY_o~<8?7vUvƐ"vJ;hB{HHB$O[Nssn=ժUܵ8Qq&٫ujo*NԺykS{Ny^x&!@BF}>?y#-].Ƨ1'e0]G[¤t#vTuL]ۥܑd;Oŧ+IY50iM0# QSgq)R];unm"O6\YBٚ cW~_Űrdmv4͟U[La׾mw +j3&fC7#Ejطޥed12M`gSUm/ +a>u\g+L>&ُ8+|H:r_m"spuUƷa="3!|>zqfU}xp_}=rmnm &=\>'cɪ8O>X| +DLwU̱] sYxizw _}_&'2"srUtW=.|5+&}v׫}I7)[Wg9;0Lz*vp%|<TzxIggGχ"~4w^5;g7DB[/1wZ=ڥ?T/\^Ϥ? W, ]a_W9v D_#s_WMDA4 .Hp=J ܫZvz7=0N!i(<ӻOzg*=+:V{3$-4̣km!zmӻ#sa2 w3mkrugg7C462 +A0)0y-+'$ĉ>Oe)H'1=LOitUlJ+qKeQDr'ֲ M/)Ob{4:%^xXsPSYVV,Q~)0I[ 7(qOO,V-dIۤ}XLi:i>OO>i>䓦sRvY-]SeMuEv6q9V#YZk3.am+(wL.Sh р^WfvXv`N\,yUakdžtETӨrML ~šŨD+'?x9َ\F5ۣ +KQ OB,GηϴXv>NV6y.~乱qR T:9~GkK9{]~_:M #x^Nѭ{*3l+3ߝ#SlfV2ӡmv +SR+?huuUN]aSNǮ[ +endstream endobj 711 0 obj <> endobj 717 0 obj [250 0 0 0 0 1000 0 0 333 333 0 0 0 333 250 0 500 500 500 500 500 500 500 500 500 500 333 0 0 0 0 0 0 722 667 722 722 667 611 778 0 0 0 778 667 944 722 778 0 0 722 556 667 0 722 1000 722 0 0 0 0 0 0 0 0 500 556 444 556 444 333 500 556 278 0 0 278 833 556 500 0 0 444 389 333 556 0 0 0 500 ] endobj 716 0 obj <> endobj 710 0 obj <> endobj 719 0 obj [250 0 408 500 0 833 778 0 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 0 564 0 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 0 500 0 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 778 778 ] endobj 718 0 obj <> endobj 709 0 obj <> endobj 721 0 obj [500 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 500 500 500 500 500 500 500 500 0 0 0 0 0 0 0 0 0 500 500 0 0 0 0 500 0 0 0 0 500 500 0 0 0 0 0 500 500 0 500 0 500 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 500 0 0 0 0 500 500 0 0 0 500 500 ] endobj 720 0 obj <> endobj 722 0 obj <> +stream +x}[ȾYu9?;OqftFgG!&1iĒ biFD{ыB$Ar +m m. +- ^Is!N^ko}fl{k#'"2G?O>{_ԋ/?wE~S_cXU/ҋo_~_~]ۏ3/|~I"o\zp6ps/~_IS/|r~_= _}<~S/~K/yWRz^x3?U_O"?{K/@s~3/~#!ۤ?տ짾r/c{6#}'ߤD~.?_Xr<)RDyr*|3"kf 'gI߿?~w9'~=/`||Y cRN-}r>λt5T:{[p߽eX:w﻽:^~ap?qQO/^WC|&?{}W(^Ost֟=;ޮx=?{i3~~":?)Oa?>2gOc~Yu:^:7yέ&N ŸgoHxd=y?:׼=|>>8sݷΜ}~Kƞ65ev<ר/w +q}>~qWpfy| +Gy<<3~qG}Jί-OCK_Ol3DYBsK&?8c~dސ /;q뜼C˺]c5~}oxwO_s?8[KަsΛ##=OCoqXwxny'9>x4w9}7C[q<Ϟ:!<YGLu_|b𤧽eq8۽M;OA?Myn8x¯7??mz7:lwv&wo7/>z򠗛G??sbr{<^plAo-?o\܆:g-kNVo^.^mO;|^3' +Oﻼu~>zsX'ί}q3\w|r<^z=&ot~'yb$W!$r4)7=&zHO7KW]&vIwX(_6Iwq&&irSt$\~!|1W"&oAqM璦Ѥ#1H9ޔt/omy"]ZLS&LjQT:HrGS7KճVlznsɤ<.ϧKKy'Aч ?j`z}<^=`Wߐ%xwR)Jj~_o?O:W~Ny/Q[ |W~K&qcO_cJ\~ͽKWg^{,қܻtr}/'ާ/SCJSꅇ9$I/$ײ/=ŬLJE}zl >NcL8R[J-—/Sukk= ^>ӭ!]g\lRAV4*vR9l5JX3צu::F.aJr{.+cTL +cYGPFJ77mk.~Vo5WԅR*p(4)*u6^3`{oZTswџNsDyVZӨM +W]h!#,o>k>pm4td՘8cVNŻeyK4@<م'csl_V wc_t,‘t WhaT=Je;{?|vwb +Ѿ}3\;GWiNhuF05(8v }+u\8ܦ*ql5iv{h70ʅғ;i濭 s > WΓZYPz T +l˨#mszJYF'o6v:CnRiK:[O}XZ9]ڈ)u27c& lƮZK9ISGJ8KOB`- m }.9_-k|FL:WՄU e +*{#p̙tUݮIθFuhj_OIcJoqu,oDIyeTJO*EJGi|\fy4NqݤM[>VɷOyϔVl)$"]W=-I*PZj^7[M^Q>s٤btykڛԦhZ{ܦgvJnLѾ)ηTWn3gnmh_nr ץ֑hRR?w.9_ {헭{[u}sԱQ~USoSFinvs˰kMNrsGmCcczFGɅOq14`|R +콳UFqeﴜ ׅjGw0M5ig ӻcѬm[km-)eҶڮַQ֑v)MB0gM̊c)S(GQnVk5ŬX({Xլg3щl]$)R؈n]5|^k: k=r{mQ}b#sT|NF!6rO[{atV ow +Zkx_Z}nB)gӍ5fDZiγw*|(ޏE׆?zmq'PrN&Rl|JkaF opt!C- <ĠP9Fd}Se|wX˩ROwR.\ўtw/]S~)_jM^5 dLZXKz:dr.9,+ReϊLhOgYx&;hz!M +!勮\F{eV +giW-~\ÀvKM'v3J&|t#,Jʶhc ,ۨft|~ mK fos:naߚes\V NNcCdsOYT쵾9%mij2X6$ľqFӍbwsf>;\sw+iV9`y~_"cgtWh}K}6`^;p '뫡$u>PͳlN`K$MUZ9a[-,mr>9Vtֽ5!J;7^Xb$yp6kJ[RJ*xX{6 +lY(-pt |=8:ө;u<,ZL"3:7:szNj [b~وyZ2v.l>NsS3^qMdͪu.vjg1 !k\5UZ8:5ibtQW eef)1۠ Em$g(]_͜'@?8w SrsT7.u)WJ뢅+& wSm*`3ٷs)ޚk̯ 3msHiU] bQꂭcھtl=6ʃ^T̩hV +7 e +O9;t58x/טBA(Z#$LCP?^`흓;0ۏlrVw?7ץQ0SZtۈOh(q:tW둵u̪WZߪ'l!6*.GU^v.nڇR?ΛlF4Ki 7*kȑs_\+\ng}<;1kEx[Ǥc囍f1aoǭMVFb /Z||XP(F9 9( ]xO:z%6Ju9um15=G uH$u6F`NwwŢ!f29k2(4ܮm%Xx6^Qa9}>tHwNX:e/u,Q|xuЁ:Q|y͠ 'R~Sꏽ٣Q) t?FtÂzjVTj|^ ybSh74G0xT!5s5Oǂ4̍K +COcWM;(C/.x}gIh.}V!ՒPO5W5aߥ ,X64B·w&B. t%gpMoTʢsB\8^G|.918ГQE~OX`Ke|ed)PCgoA?'nziS5@'I O,oVq?Oo2zJhVL *l }i/T lђ+fҚaω6h#j>G]-Np8/>"rBhuizt82[ī!^"OX2,ek8M+}@3?eLXBMW(>c& Qsmɏ\ +#+Ry(GpT\b Ys&'څ̱Z`)A-܉\|`}gڊH:hף~)NbҶa3nLC3QjѾHYugU𲴣c+[`Ju ff܂ɹE(rx{;O`>! rH|쫞kJӨiqݖ8S.kP蔬=ߖVb&R&SUR`Wb;>k1c*leql;-l2V8ߺX7cWn1k4ɭ +̢F_y.]S} +{^knx֘`?(Y{_~Էub/Z;4nl.0؋g\듽՚M&~aOrl ǗyZ3RGey h0K/'?!ѵtyeMzw_k +3}?ѕ#c9ٸmՃRUhe0G#Qcf>6:jU)鎭XƱ3u'l,R<,;O[e!9ؖȳ?{cτs -ʚaii1'*G?" h7gp&_->X~vQv9()UQvQ.hȻ +)~U6N,dNޡD1r/^{w[J$ŲXG}UKc|xYj+}*#R.8U-܊K.P9j:־z{د|[t+=6el~1\ϳҷgb܎}t:gvâ5ndC+[FԽr]; +rlOOW>jC|c+FKDMMt)Z?9sp[lʠ5WZw1htї`=r [󱧶ԴN3[x ?tF ^ϴʍFO2x7 <{.`&y}v\0}(] Җg[ٔY&N荧~ۏ_[xbo/ ZhZ:oEc'4^2h})%BO9I#~+jC%h -eҪ6f mMUw\۞9gXj}G, .#Z:z&GkuW["QZǶ12*ZNbiYNLZ)R[BԈ X erVH"=(& +[U&Ч3}]GNڋ31PJzᵊ3w[.!C:x#6ȹ8z_ih/(HyIaԓjʫ?bG#qm_"О걀ı:aEe"YVSK; VF~.ھfI 1R5-u0Oq+k~Cמ?$ (Rπu.(hmFt9~gM:̗7@_ݎ6@WpN95=bܫNg0$C/K>^ebyF~\ރf Zʢ-/k +_ECh V)Vr;`B}Uf'99#HlJ艣 {"Zg;့ԭ[*jg#7'! GqRީ6ΞZ3+@<'q/lqCNƱP[##fk4@H%⚧hD(5-q +gˑ1W*_] "7XG\wc\KF=klV dTM HZ]/vQmv +RSfl;= ۺ_qk<"{fU*w] Ztlko7֊ j?e?RYglƧ@ʥ\rx#p#/m +g*F,q4NI +!W=vתP^(5czYWjiQM uT mm\U(/g>OyT=wuWǪ}dLhN|pmph5#ص`ͅgl퉴a07F]?pzm~p 4;MX`Ճ( kss #mҺlEV?5x {d]b=zĊs7`L+1{=3`ߔp? -" Đ_wvЗVlG_K+%X}JOq̂k܋alI5іԅHDm Y=+R^?#d][D]`n9aQQvm{Q6J])+9cj4F?I&x:ZF@1q"mcցqg:7L~UHg-bʞv5Y3>>'߳ 22ORJ+o!dhcX,6X.N؇|NZO%g9tO\[ڶ ɵ"ZRn%@q!J֢MmEYnIq`}M28ShOĨqZǴ32\/YsXl(+"jÓosj9^nPo)ݬJ=rZ(݁jԗ'G+g4zkc$QԧȻ|mϖvvUƙ( .B.ϸU栗^K7N_haM?,'֏&w(+6renʸ/ն+y +(D<7^+0e](;1Z-/뛂yp@X:}ᗽ`ض}AK<e_j8 %g>,{IbGǾNH}5[A^i{.QQK/y/vw +~7z9?ǗsYbQ7 jkpI;<;hS,@\F=n΁8~Y,9B-q=x"B߼O{ l!kֺBBGVG{X\%u. Qcv˶ZdZMsӱz|\8kfz+c3,Ũޭ+C}ؕO/3~A3ǎCkBcލZ%fj8լ-iJR`E0ǭs葲r_*^c{LKdj% N)Ay%dRmcQǚ[Q1gl[i=Ş~1GBob%ONpq^z3_iҫJ:Kz:t,ưr0wD1vUX9uy9w-TgiLj#v;2NА/ct.ǣi+;5^琏άz.6Gm[ݍXb?cX(}GPM$!Q 8cRvW]H|-J0f_rl= d~ [9y^&Ҭ"?0{to''/`k[Ӊj9ߤ2ȹsir=k==mtpP%eAuᅝ_bIBQ3n|:#, aNѩ]YZ }s`.cQoSz9goA{*ذ [0'Ziwn(~0UA#tu;F`f;(ZlY;MOE +8ATэ\M/kq\ y5k ]\%=,(v9J^ڊ6'/Mbg$hk8Ӷ[ gyx0iug&mJz]hG4:=z.c(:AM)QB+A 'ٻTW s 0v +C>RZ*ZcWaרi{8;.wu7uR h嶡Q 1XQ7ZBc7`Gi7Qd +ܴ>E N^PJ =GDރ*Dn#)b9Gg EVRЕ,R?s)BĨ؂h}K{_Zyc_12q06@.`OwS%<zg01p"I%`F>[+!9ecPC;NM诏z1`^_jY= |.J̷evVXA -h8:׿Fr]O٢DA9WcXRbOԣ~%h)3B_LJU(%?;--cGwQJLě]!h!bcmmIE\cVrqFՖ$lq-G/ hxѦMwp*PM#kT#ad=9 N?1h=V)g-8K1"Is&u (ki'FHmSg]Lw:&]^A~k4e`rjUg vcކ: fX42X}*;JF@VBMσ`,ky-we̾V QNVM^ މ;Vb{Ff+( -G+Ld\zo 3mxmЄMǒ fQ⎛㆘N|:f-J;gt:AlN `- : .c(vOfqwxCI:*Y)gj s}_B}+쌴_qi9=JuPRM%~0bRNUٟ |xtNٓWXzB_g\Ca\y ߔ9DSZwl?JX6ݙ[f~9ioFzZ8%M b#DzYbV}Ll|ˍiP6tHxuJ52)GQu%CJ kB Qv"%^]'9b%%~Q:7Xr%WaTRTxBWQNKE4j,Rb@H>6/mN?m9%]% \ߎK6sdjz]$F $J9| -bF 3a'xXa@Ne$4E^m+l]v h@ + @͜$hh8µ{1B8OEزds6)ck0=F -j4YFrL x52;\V u,el""xSk`| @EC1E/XMh}_rr? +45\3 mmW +oNP`_ ;6 +(9;!0q=5g.-gڮ9n)sA]gZ(:6D? y7RR"`im0֒^[80Or/puF,\Z%Q +юfq}Joc{kbt?Ӆr*Gb0J{Mɇrmx :`^>$qgFa,yxV)jAC&]UoKܣ!`߿cTʎc<<(k,k)բuKܾ㕵Gݗe)1p,-~:gjOwrUuU>DH/BwN_{ [>ݕ;]#?Y +@л~?{;aBګß~_l6Ʌ2_ksZ.^tjzy(z_yMKᅦЕwu]VgbQxm_k}WޞQ#uool5{.{XkPk_ʺȵ{^\{oZ{mحϵMF kץF`O\гoiQ^P22淍=ЈIqY} qѵȭ"6-? 8*V6~_DXF,n͠et6߈}1`gMe߂4_uAF!Rh:"6780a!pl2Z*~QylR߰r,q %Hӹfژ};ch[oN{$'ןUbʹc+˱g.2ڻAiJ,`v`UQ#^ݰ#IҗLr |m鋺Oq~oB=ЪՔp{oRn]制&y1:õ҅`**K\Cۆ8슯xldmۓE3-W"5v v> bvV1R#v_r")]v1{:ѝ;TwUg՛_mPHkO~| +;o씾w4+7?|G1a Hx?Ud-_ϠڟƸ}yұRx(:YQ5}zf=r*{P^N~ HܻɳOȇM𣁯n+8opڭd]VQi~h?rFmruswνdhȻtX^{M s\oe_>c皓RzTR%MLWDӐi>g-S+b%gcӍ*[Ks3D|%kqܩj+jC,O9=s1*MhR}̯5rcC,813y|Aǭ7sUp 0 iLFc£a7&4ˈRF~Y^#o 0\Mcz~\A56ܓλSLA~l1 Qˈ૴"6B&;e>۷XotL95VIPeR,ZΕXl$l6hط9-/erk1|w1"T2Z!-B|ƃzpD}@F,lpXsrH*x?B|AmeEra-mBᲶ2.=l#%hh-(-7T],\x$q݊\=dez n1?T +&ir'/0*ZƣCR>b.D.~j"1V2_{qntQ{t!v/}(\GOsF +zrHऺC-o{Dؖ< +''1* FMuϟ12|YyJFNexI;Kf~{&?2KQ7. Df<!Xu8VQ' Rxȥx~bq;g_MN]?0+g!+ʶ2gbe))x\gxn{Dʛkrw99}|xIy²/[5T,Dc3~9u +rt<D4.=}~d0Enעt-T ۙ(r1$=|<ko-e$ky!!+NEub]jyKiL>2YB"F4Ǩlٱ<gaZC4'v#],%S#44B M#erKeSW4#Ao<&ӈySnsQ糴 Hi3LQKdSA=N{Ċ-f{k'Q_iXObh5"I:Lxɞs3'ۓ>2Ya5 uRǯ)ilS!e>YyXںB"QKsxHé"|ONGU̜2^OA\O&".JG \OKr>3:ԷQQe;E|4Av~d.!>jQy!WyoW{NE*Ükϭq +>g<2ʰ!) %yCb])[>Ʃzoz0/cOǾso}ط8GWCG8z;88Z;Z=MGⓣ'O<'~O~ɇ|ɏ|;q}o=o:7~8ЖCˇMJŇCw>c|coxv<\r-\}>YoجPB~R%{ ss.yg峕i"jN p&є _Z͎Y ?g"AyW¿/ +W{2;kC1?E|(C_EP +4 4$[±|A:pW#oq3:xuMM`l26Gy; +wt9:,6\ |5z-6Ԕo+vY"3ж"^pk_|~T*C2:=LKuu!5TGm4~GOi[> "ъ`~7K~Z0laЖUPZn=m0.-@C6QճV觟`\ +T (pyyjq-6eI^ʡV 79WnЈlq4LZӳ~m{< K`E =1PZēuS W46I/uWŠid޶l )ƘZmlKh!ԋfYy?x\x!܀#pQD1ۋ` JE2S4/KuŎkr +f&Q{ @GW(.P" 81u}]6=]4MDՖ#^;vAZŢjzRkb\reL47nr6d 6=3g#=yiޫmCPڄ7yh%Rz$p =Ԯ/Vn לh^%kinn&/IVZy6CC-7D-e\EU(.-A7R7D-%ymQn=;~#?n˔_?aZ5\, 1I, + #121j%bҒogCz#@:x8pNfHs?Q-MǶ3MވU|U=qZ+0m]3J^?a>ܛ -|{{mQj ml(6Ϛlgϋq^BJ{ O1^J,ǵQEeWך愮?uaT$ +RY+;xzV+{CtDQtLëLI^o[I`]4x"u*q>܁בZu +:./,NH ϱzp]lZp5ċ +(8N6&eEn7P OB+ G8šEz=/i5=z7~^)kkaV[~Did6Lz~Xʆ$ꊪcG%uIG{Wm3Hh: .k[ۦ =^AAp#;;.%t}eėpt zПv,Ei8^QXR0NTQ!%Mv5vn;ڤY5sTMOZeQyUM:ZqGu +*uA PT$*Vt7R.MOp7)wy( +*!Pq.+ +V50wC`7(Zuq7µ(Z6Iջ.ŰExfhu 3Mo*,;_FnkgTÙTkr@3Or1p8b}f~~V4S/,-%sJJk%ŎX^vj5/uǰf F􁻼 >nyj" W*&_GzP`z #aDd.rAHv +3`ըid;굷mP39)Աmhx /i'o/]RreҔ$ ˂[^9y`h.4R;P"P/i?]L0J:JCۍvEݼnZ~jj&fxz UKw&]]Vŏ* +!ܽ^u.7(N;%a-OVTW1Vl˪&!l~b n#_MWΫT-U+#d7lVL4g>wv^}uE{Nľ$*kV"ǁb NG8삜s=K'Hpxo\` j4zcwCU_^tmyzxzv(06蚭ym?WmѤ(Μ](ݿh}EJgj> k}蓿BNR19 -#@/ipRzTLenzNa}l(֢{u-8'n+uǤ;jn>Kj~ՕvLeok9vJ3\8 +ڃ.`]:W_3`&dNÅtMbWn*TSHtŪ8vywx5A ALX0o/&LM*a#j7Z3JVLhdžnОf5u,$f%N8iKɛycnM558sŒ4#}mvYNyb=xs2m+Vvd6*;-ըi[#SvC Is1(I!Q/o +SQxbKf#鳆itFI̽Z⪒MxW=CWVݐC?h= )tiT%;`G:^h. z ,I|H~?lqaP%t7VB*XuӖA\Q6onZlcɲFŰ#I-!$`>5 ߦ׭%9ovIBZR1j^E{Uo͘8_bj|о"?\,UO$+fSS9kN2+RkIt[o}jUf㊂޵mq$$ T _cEX̦݀ K: mwm]AlCMCq1[)${4CeUw"אk^T}=ڬlh,=7M~k)b75MqdC– D郃5zmUa (-TWvM8&g- 2j#ێN%~o%XiÉWLM h'a^^<,~ܧc0drvf2k =Z\vR4*~gWBHA'*jؠ-ñFX "wV1dTTk۲ZC Д|Y2DͳeY48 *Mmt}p " ++Kj0+{`/3=5`J6&1=yəmg/nOk2t`f3bbgO"\ _\c/+5@= Ћˉ] P[t5 S-kikj2A_؛" p4y٣}u g]`Оd3\T4JiAXf4z@2Z+SՉ~(kq{*QaЋd5hÁ#:0SLUܤDKSeADQڧ| ( 0ےHnx]`P}QEØV^á sQ%42ShtjFr_6 {Xz/a O-EȌ%QGD㝟y]vjSm6 _ ڨ <(#bõ䘤'/=x q 67o*ӢƆdv96uAf霧{~XAɩ;Iᑞo}K^ؚMȕ?v1i!(X@~F\m%^ŷz E/˸_k ?9p9/ఈ;!IG Ì!V#Qt4_CP?"0Z* +4p1E"5|uŠpv ?GD@ R]F!#1$41#IB\+kzlୂyszu0n s$؎"lPUG9&·[bMapzSR< %@.Kk/;m=_1,/EReC$gaaAFlBժewq\q-Lk <{0WY 5c+Ek uNpOD3p tIwnVv[W5wB= w:*MO݄ڎP:*<\*EX$'D(>y~5ń~"W|E&-tEdt~̠U@krL)W佱ǗzjX!x ,ӽ}utޚ7SvhH&m(8hOѢkٺEgI[y&Cw΂ *J1 QOdŘI\y +ݭW J KAn1][];5y?}V1]IdEDU\N\:5V1mzL +m-?  x:''–yn+7mD$"] ~K%{Ͼs]{﷯yhlf4Z- $@,f ؆;lEPeK 6WH]%q僓 +l슱ߔ)s#;1kx_`vnDB;^ɣ΂^-ucVx#A7gFԯUYV!8lX7W:?߀/66؟28;HdOǺ0vS1irylǴ+nya.FY]W6~9l f;%Nl + h). 7\))<1f@ǃ.6Man[{فR@WՁ9-DDHvvv7<2=*G _5a5e u]c.))HƪTav:5NGFNM.`oWaF[ dAj NPS)@FW`&g.zU[f2NLi3M:%f[7yiO`OtˆTov2Ք"mE:`|(; +5?%(X{"HYb@GwM7KeDNn[hfT =qBId82Y38 ABᐠrz_ +z?]"O(/y]O9a}<}y`DU u1)%ZEQEtnn.l^=Ijë t|2;@3\BO^I=Ánnr?_^."2?!#:oY48 rzѵ̈́n 9/l q + (^}nvW~Zs8 ԁ@DfuXQB`( ¸LW,--}Qg4O{ +aI7|gs+u-5Q#`oWUsOy^Vfi]yaem~rx0) $hF5/QhIp=-Vʘ;sBdg~1)#t%9s+0WVAJ]ފO n@v DR.cnoHۺ6g *[XUkUg?nK4a +d%'p +l{zFZr/ vu*}u/۝_ؗ2u X=1u-{5ͯ&8ҳzU؍N'?[ˑI^S=4U=)28GE?KvC;ȸ{u gCmGG(ZK <Eh~p@mYQiBPb2WPKft@db:U@sm/똪A~1g*-26+;ښ y\lJCyך + pGoK=oSuyvP +VK8֜DÞvSc9i2{n{Ø&ѭqঙĿWe 1vJxnu&v3`FvnQn=bVL0*&>p6<{.ȑ /ns{y $n\-,Loãᢋ=:wݩ۶\Їure!aP"!.OJst8?#۠Km!Gus"l*&Ϝjv잦!vCc`r}݃99 \wXK Q0-s~VW +P0ga3e +>^UEy%8)Pv͟8ؿ|@խ7],]3 @7P&POtӥZO!at#"US_M9`PdP9dLL ?MfP]UW{ X/ gpW(!~ ,?(.'1>4JЧsTQ, :8d ې&FJZ[Ǵ$knhٓ+S^F> (B{ܻ,`8 f(ZWVr-0Br== "x_|ϰdvک8mw|kIJ%mp&G*&֑I#sT c`ԬF]gyFξ-7e-u'jfKJoU* +qr c.]a|!W2NiV"iUzpZ^BeT +o ]Q#c:K+T0x,Rmf*N9@Mbq|i#URYA/ ,'c0FR ?fd*'Qꃙ[ɴ7gABPj*ddL*1ui`EP~[QZAa? mjqSPA߂f:CR3Ņ]qt˷WW+2LOƘ H rb +㋁?6%,(!4.6,(pG^q' Cn 'ks0O.C*I&G뭃taҒ< (BLgYHy}w+Z{6Jz7#mat}av~\#k2 싔3* i& ?КT6N_3Tf :l6|y€y*-ފ[MH̥M(^fY$EDu?/xhxٜB,T.>um}K. Q9#qfn 劇 n14RE: *M]{&(Ǧw 'cOfx.eky9vZm_{ª=â%#\S *rE $V8'JMH@N'N)Kɑԥ LF6QQ$bz|=PJ:7;+' ;>="1k+ɲB^Fxuyab Nmx_\ISϩ`Oqyk&Ng ;%I +| GTbV3:,|: j@~*Qfᖏ}ρ;2RTHNc,Ru=Ub\GDWg뙠C֦Zsnl0k!\(UC Q?k*oOρ~C{_[w`cd>HP2V4R5ӄFiDHʅlgˇm+0&8>?D*l2kL{7 +@Vh)@& fuPOaLЅU7UǤfa:Izjo DfP'e?PA)X$.6YU)˰ȄU#H81u Í"a Q?i ]5;hRFSUQnq't[ÕSrT,͍])W&=tIzr sKOv"qkM2ڜdoC4bR~VO>< 5adN_J`mҊfEQ}XԨ00wd}}R1f*?j/yHΌ U" nJR`G'|Z%1[is2ck0!|bq%ݹE߷Vlֽ>_3InOf xp4t3-)'+6UI˫(LLQD`>3U5i0nFۜg`m_{~LjpQSt +qL$/e":uWP<>9˯cnU^'T /qB`%Imhe_vOS?Dœ S=?}K r!y}ɲWh=zAb9;P'O4jT}O'+Zt#B)i*>\߄b76džaKʾQwiY):وk#X +$=lt?ZeOB%R0&2鵵 +!(Ix(`0Sg7:DbPЍ./v~.:AQT*_ؿݝ8_sf*5:*<-cℙ`Yr!8m\41xZ! \!x˂(? QD>=R;TtӑRo [h,Nv*T(&÷#?-WGV-]#o؋hr,23d)m +. y @)w3,10RQ8<PGuu'y'VRcy.U%vJ ^ brkXKa +ȟ/uiS3(SۿKs7h=**};Y , b8$ @O _[2}i1ؗe~S{F|!=ڨ4귿@$ĴFO߾R-$v>%qfgZ[M/ͷ-@l9US`x^E T"(I$^Eh iRTN"1GGJc~)*cL2paݘZVƩNg0*(c qHM_] R$bx Oq33?0R RLaQG60LLLRq>#Dqix뽭g?Ը>?Y5B؍ N@͇Co9fHj;k*PL_ h~ 5YGœeO KR2w]wKݮd)*λī )iw}ŝJ9G/]mzLa97[佻V]mM&rNMm܏|Yq>Z4a)|ʇP%UvE1N)P{jYHl뻍q5YE5 kRJk7G}sFO$;Ejrv]Oz9\/FK`O7αwB0gT/ 4WG+,gfIGrrb(Y,7KF 'Z VMNR[N`i6۩7D(D(]ٵ֖jF1pp^͢JuQ/ݢu'qqx^24yW +Kۛ`4bCM"fFSk'LB>0t+NVPb=P=Xlʌz3!HǮS?35YE\hVP☦MOCzt8$pހYH=.%04w\km6"wܙd ^U]w:厳͜,lIJrJ:cπ5؆q?ٖc'gNq &+"* P["69uۚ<m5ۍy}c5&`ɮ?0SbdZ#dˀ!l; "$lS`0 Ùn+Ӆ폓ܣHAfB@Y\J$[י7l6%S&B7D8[nMV]qU~=.gͪkNt&ʎ#b$*^uuU_h2d(+93zʈy2!8K޽]_bC ngqu\!.^u/:#Q^S2Lx?.Ø3V +vps&֭鷹f[Qmc=UƄCd=xA,K41KV+}/z'jSX~C^bg?4}ߒ4vyG+$mgD;fJ8cYrcogm:Iޫ  Q2cÚ2-cuoJ['%tikr`СI,;7|upŴ\e󣋓|݊:((A4H^RB;:DE8ΆXrNtS J濘IOV<83`7ǵ* >5$j+ n':a"3 8I2(ш 1|~n$y'<}yegu߾޷[mg5٘M B A0 ,Y02 +XPa1ETM  1K#JR8.#o=Ry=o l:{UˉQ%x&`ِ^ݑzw`w2TX#bh2<HkDZ&GD9=>I*Ba 9ciU; %e="ZxKݵ@𱆇:x*` 6&|b(cRRJmvӺkwDj k '%ݶbu|+= 񶷃S( $M`5`0HX_K]nl(q*є8->=~q݋[/7?#xyȂ@wL0KFqYrsH /͛f; O]wZK#N*4mV۹O!vf{im3r?y  g  +ipzfkkmQEKݨqٶҼiFE{Oʓ +©,ſ}Q&M98?OtݩJqhý뙧 s.P3U73juZTSś8N% ^0HJE1X q'1;\6k;2EXXW+g!V|='5~v>CN;>k~JbvҷTcʃ +zs +Bv2x't%dC6iFN8:aDC</GֻKkʥU݆.` +`$2)}PkJeQ~RUvg t|3+9(Z=uWܯtcRID~#"4XGM_A@ yh{RYW|:kc"+g{`R,#ƢGZRLn:7h87nh &4U'QƔˮ^suCߙW==YmWgA4H6+Y5cپ'3)zf)j3Qnr^W`vN$8|e8 y&q^a4Ӯ";=$?x9_Z6Zu$!#t@6 G>,#K{HĪA;e#5T*_ƅvBá`rz%kcILM8YCq Mi>VG;}uQWKsnM!cܛ@?r΢]poDI}aUz8L[`,rO6;ܜw?{{>8?CoöB䵉ƍ< +ܝciՒ7]E& ;kpV^ Þ@".[̐c)J0q$s&B-y;K4˓4 AsK`r+I=g45!tڕRv#iHs{z. BbX[n/WgS S}Wj TUKj{ sY}_Uu'a+Qv ݾzB/xCeB8PF\9c0)}kD=^oҶ`i-\km{ߢ(nʼٜ݀poPPfprs,kq<<%~yMO* t8m[t1Jp-#gPGQvH"\OVe@e}dTrf#vzJ\y94NYk!>)0-!>'2UZ7j(ة{W6ѫ*p~&[hOmDʓ|'S\ Y plV])d ivph$`%4jtQ^M$yǐ65T4JJIV9 |:!+ʮ 7\i0Q2L4hpV$rmT++~|X~}Rx9=IFṓeNJ)ݿ|u+zA +̳TiCzv싕xeEA7JO̠ްQ)i&4yYov<d^L _D0lz))ar 6aYaNU]ϵo:w*; QVE郪r1SCؿ;'s?:%'wƧnvGQŋ(8yGT\4S,ṼՂ`^,\JP"k43R>ѥDglcf8|*0hX0"zԑ6m !$~B6z%1 DlF}̞ 'w1~RZtBѮMtGLpfd[L%G߃wN#N$` DinZ}ǣ>.}+;̌zuwhkG}P?]^P¶SO< Xf/FΡ]*u֠]6P'.pYt6'&lIuKZJK |Ap3*|"sj Gi4IxmcMgosnk}'CbaLd94B+Pj)=.u,6H- ӞۻO-J V,<ub?^>+9c>l5HqTQSs0˺uOo\"CgK ]١!{ Kh2%/oF@P]L6<8 2=?0e_=q]kL8 +O)F/zU`1Me2P ֚ ~ֵġMsі/11{d89QjeX&-r6{[eW-~RΈɳ£# }/Ry^HKAD2zgXQCtӡCҍWwT~^ +/Y*/6*PչɌ +].:1?6RhrhC[#`˧qUJS]źsiSЧ{uړS3/^u,Ŏқ CpM\lDD( Yr-$.qUqky# FG~sSېG8%Ű? pu~9 +lZm(94qMq۲djm08$nHJ˿].{@k*N 3ګly&]~^q C˂ 7(EիQmAnFhw%IQzw/4{pmbRe2 %rǸJ[C ?ƸJvqEvVf17Nr@-x .R+$K"^@wɷ֓󹀝sx5#]J2$?^xJW0c;ט:zB;0 @9U,UEO/e P! u˼\kE4IDy݇BfXj[$(q0Qk$M_'MM06+g3%&6밊L2T h@OxݪeuW Rfsuh'Tݵ߭}'Z/s.pZZ?Jar2<Ƶ q^ɂMP!%{aa|5NI,:p?0<ǑS0=_YSIlcf@ +C_7I|$,[sz/ad_sy_{00B`nJCISa]ӗ*4{ lib0&c>LU:=.WAx5|<ٲ`ӣPz)ٴ!^jE`!xsQ$6籽2eI:72t/7T6 JXUK9t)\$D`8PS=f@Iw,jE xӮqhka +uk h3R];|8W\ÄR^rv*9%-ʄ_B\ n)iJج +໵~;aYk +TdߥNL?IG< +%. _sSK@LIz!&}G৩b8D zLLm*E}Niz S%Su{C@n9B/Ehc6=u|im 4{;#eXodp|zwQbZ*3鴲۲mORTlbEEN7b4k*$Ɩ+i ԑ7;u_&)p5bMVׂ$˹׍RBI80R.-!oOuYqDȉ_Wek(03񱅏|)^g@Z0քM 0PMM7l ) fI'lOC+>okH~1.Lh/<]bݘ8\`RYX6p=\_ESR,~mܥ[ɫ%1+P|ڬ?b1papH+U0J१"L3CȽ]wZ9՝Nmvj;4T_Yz~kgsVb ~b"듈ev Qd)&fM -.i#&޸Fpȭ9zB+i=UifѼO^َ߼}9Mk0z!QR,RRTK)Jjʯ|^ ZXry/zB,:ACM]\. ızZI*zhra!hx9/wί*P!jjd2w5za|nOmzHh"OYV{ ԩSD +Fcd;IuQ!cok?vx8N/-mwm@h&ϵUCdw#`1iz"{+?3paqsQ%p//[//znrs6T*܎JX"~@6%˴UD^Hm +j>gg!>(<\bQx9 pE n~WȞK3'ȯZk$e1'eV1)fRdӤhA豧-M*CDRIzG 4ͻ͎7z˅Z 1qVŏjJtk>Ho!PIPTATbP `Xl"*Vοb*F=ONߓdvξM[k j|$=0vӗhmΟ-?,N_Ic}Fp'aإ,@ѕ@ +ɓ(D@b>W7SiI %%)1]ZFF4 KR$hnR JʉE%4,"DTgp$i2DdEV"$I6a,'-}D]UTT\TLXSPtyc 'fMH~49iEik)"G")&F % +RDHോ}"_\"߫WcB@KWnqy^}߻v^ ކ v~ kT.$"TI쟭fgz )HHiHf:2b$U(C.jPik-8rr +(3jI2mAԕeehؿ vȥ@8HPU$N2^LBLb4"%ElPTT?ڈCqSLGnuץ(.d(f~w;$]  zͽƾB62O~ƔRڃnG_SԿ,ESނn]<Go/|1@NJNoH㽁̨^!Y~/S (wə#>E~bWP 蓒 +M^CɦdkʪwMT2>H/ۨ|M繁*~~á@? T#꿆ʾOm~oCz\4;_aqOc|O 71Ԃ^<A=w }#3F._ןqp7!1I 7 /}/Lͺ0 A_%+4@Џ\?f[ +,[e"gXJzk*^lzPo0  HJ: ^[)vr=f?;}!f};#OAAAortPo98+uc_ YoԷA?FCAg<э{@A߃{uAߖJ              - !IXxiQ<=O||ddG?ב&"͎4I(, JHCGZD()B@nBXOKceHiHRT +B&x.2ՄJ OҢd0u ё& 哅]"BTďO ՉPŅ;EH4F$ !I LÍ~71Hx"!bR<~% @vF8$,KyL ,%q`%&BlK1CP\0GX& \d +x%euÐ0V1T [+,,l0'F. "dKl M/ƃQ`Vv&ǖs3:bx&^$o'Ŗ/45 `!|8|c<.^.>`)a68T<|6W^lX9-,`x euW;qpa#Y^|M)AK{A;n :r jؖ/M6|D|c#smA%YUtßxi;fr)k&x43yDt2~5-طo5x| 9;<,0-xS`uE!` +.(VF7'.8&8nNMfF[9*EpG6Jp3hi`}@tD<.,1?Bǫ>xCb:xA<cbbI(#0.'҈ r#xegn$ψ9<c9#ټuz*'XJTf\@% k@`4J?IQlz?"9(H(G5O=E`< +VUXA5F33Sr?&;A3?+y|1OږC"D9(bҨ3Tt \Jt@JċIMaG{ 6 ʠ#bx1,iTˤ2^ؘ:nP1e"6Pz?'"ccG1= jŲԒ)8JƋ1HC<Yzh_zcD\8tv`ihml6eirv`EysS"9(%\ +BO' dgSrgy nr*3F7'%{覍|vުV3쬧WΙXX}r8,UM 27ӱXOUdU &=Zv-7p[^Y8kO7yH3:cņ]791P4%<{k歕뎇+~M6}F)/[%㺽3rdūrfo2 &NZUSVaR%}H/| UU&IV ݋RQ9os8/Iq ބԴJBŋ^q&S^+,B} 4n5gXSc874eݹLcM"#\8nlHB0/޴k7b{߉QIP?Qp\R(T<tA+HLLngCXy&رHG# k%.<9Fʤ§6/dP 3 9ƶ/ݽ3mr_uW=2A~y'(^lK}i ='ʶJO;d>vSb-*DܾĒ.rεAf?ti[>ǓιrSIT} O[cFh3Ckサo4|`ٺyW-ӻEH߅Aգϕ9htoGIm(S?$5πskԦV|pȐXdvύ(V!\kb X +z !wDX X*ǘf(3+Ԛ2C A0{?z|I5 "ɮ[K7N;wջ^ޔs"#T`94/Ĺ&oRπB9u{XFo'' oO(=mDrE~΅nA7͔m +Rt&lJx4S7oM=4̤>IijBSb) ޝ_Dav{=lG얕]֨::9?C𕘻tO|SjnNxl/{.IbN+.63%.7}p1%t$pU9ԼA KBt6Z >Gj QQe/䰍-l,-̭X[BffD@:O%6E++=[*+? Pqx4cЈAŚo dZxd E(8WN UPq .?.Z&:U-yzeY/fܴo|Kģ;v}t_A("7J} @;W.ivt{n|Oћ'[̞iׇI;7]#}y(Yf^'iW,Ξ}d ]KS v5,^\EΕ>۲:u"ǃD_էd+l;x0wDlE*%OsZ'ǜ1EJKZ5\'jg>wGV5!x[Vug C*Xyl0kn[fjx~CFۆ7sP!5o_3;N<`Ezt䌔˞ay͒l)'+:{^Z*7nuQ&R;[zQpnmC!K992{oMڷ;ʫ|dF4=o;9K}n~ՏO`hJ-\bBPV RF?Ȥu5V ¦ b'hl9$ˍ%aB-Ps9As~g7F߹pFrMYkFi{nE%oSd(/B$Q%茭z)K^>-<'&kN`8gGCEna7:KIL 68NP9AKʱ_6F5t ẉkW-K4O,[<63w +{wL.csaec3*y{ggB͕֫ !]fݞS}(xXQ?u{iΪ2LͶ/[(Ru3k]xNf<qϘYX$O\w{; +gAi(H.wR3z$4 tfPl_;XA}8?~ŕV5y=f_@^?͍} #yn/bBv=\!UIb):ms r)2w֊:Q\5Ox'ۻnTQxck]hVBi `+kZ]|}7!%lo-u@@B?CvĄXNݜ,e|~T+IsW>z}8i 1yӸ:zS7LOscp i*-c-hľo.lK +YϺ>}+lbBک[R灏{&o޳z}W ~F][C5&軮̨;^_ozEnxQΉ/C;[GK\=&WQ3N[sy͉GT}o^-ؾCJtiDACs̰?M ,1M.I*&´V/[j$%G9&F_Tp/D~{خ^9|_Z#nkYg-9sue3.Pm0߫MT?m_ޣ¦1P۩Ӵ[37/^.<郛Rij_13s ֠EČ[#[U*|wW]^SﭒkVIڊf^ը0S}|ݮ6c'w+qK>cd=6FKfUSD6 nbGJݞ,NVT0ސKx +YwnhQ]WCS,(rA8AC0}ȇ 9%\1},7`ujs֬|5)U|;Du˓6NeôSnxQoDV탄*[IRjvxŸ?K1m"\tNBtR Ǹ{jN1Ӝh<Ù)7IEGO:ϐ?\;{w\ݿHNq,t4b%.|K+j-ihͱjEl4CCfgA}r S4 !HRn'l0.;.ʪ7*DirbXk]\YtjxX- 5~}}2/?]]*V4 /ߓ{Ys=cW{ {:^*ַhH,LQfun:Yci֕-?7>W.r|jkT@;_ +;i +endstream endobj 708 0 obj <> endobj 724 0 obj <> +stream +xˎ7~ +-{ '$ b.<[*˂^ծ6`A ƍ?ӫo/o~xw~||O{kë|zͷ7__?}՟_o|>}|o?OoۧvGWߪٟ߿۟wROa0o~y<}ߞy}{z{K(j^= >Sx3Լw6;@T@Ԅ+ ^" +Jb؁چg. 2sըUcrBeQF7WzK U1+ЉCsgbwK?bh@cъd?GgqNvhQ!9kuHjehՌ.Ŕ|.WPAC!XP}ww +uUЂCs9Pʧ$_7u>$,HML0 L%.'v*q>߳"3H~0 $jΏ7Ww 2,Pj.cȤK=LI ( CKi*K9> Fp@ӤF/Kb:CG! +%4/c"[lYU%[:]Щ`x\*dҝ쭐9 nZ,cЋr @gSu&TX; 78'e)@ ,@ݙ~dQEnqI%W2|r"pB`"T v9h(2~82,<GPq̥KK\ɻƻ%-q-Yg %PϱN0N`@z갨  d1qoVU!-ZN%21"/&괌gNN%:?N~$F֤%K}ׂù|a8x(܇\LjQU9*s,@1܅=Jѽ1h7u:AN,T(*4Me]]Ku.JC}_HM{ ۤ U BP3ScNF/(C6=O+_hje?p&zۨV*&u4ɲJW6Nyڱ5qjWj,9FP;F'h~+dSMG$-YP"lM|ɲl 9 ZA3 $hx-q,C`pN6hc BFQɤRҥt#  w(S@C6,K;pg.9̍*K +RT=PQō Rh2FS!: ;;Hn#(Ce KXBb)2oaJ& P}Fg]t[Bvv@EϏ@򖟛:^LCu^Su>&z;:ǍR1&R1U/4ApRej,1;MLcyTEPP5_S<!qSA)6C@>}*)H)ܮ)[A%?אDgtdz"6aA&,EAL7t8D ~vs7a6bwKc¸P-FBp{wTAAu.z.FD4}vvXϵ|e1v b+$IQP6bKbg~9|*Am:AML&H")mTAIE7KX:&k +~1A|=*ݺ R. l!R HQ(9F#G pfIgFGCAF(F#q H W ID2Tv&^ u'6g\ԝō-S6̞w\ +C*8K>nfl2bg{b3}ؙŞ,af geРz'xbQa4h58ݥG̔8el$K熱Dک) ׇ_[j@ }?Ɖl;ǒG/wX=RlԴ[B.7l@K77❼DMFpйFYjt mArFY(9uO;LBLZYq?=瓵d. V&u)8.ǾQ!%` +Fn~ iR0 7BS|)nĜWnDE;I-iPQiG5䨬#wvv!r(%!eM!Wc,t7B4ndX4iI3Lѫ^U͂5XK5}-!yR;>NjZ)"8uBevFRdi=mz_M+T\S68bF (E;jmh,#mD/?$x)[lTTu& "KZt &*9H99qJIC9Qtum3덴Izo%6FbPI5dĝ"ȁTJlbfG*Y,Z։G<{*:y GrY ZPI*l4 G}"QE\THjY%o#(3*&.A^E1-9vN#Dn$4 /Hܧ`U-Q}h-$o#ɩ)"YD(َ΄qخ߲ ^x^z;TܳHܳCRAA@ @0pPgYFENp܈>Y422;>SRӒ$;THI KTBQ luOFٔYي0>UK9A1eU,t Jqo.uPR)65Othh*F F2Ԕ:&5E4n'BM*-I]i*ڦ Y@ϐ38Vαup/FdA @ $)QK_5XQǗIi~NDzdP8f;!n,D +)|BM6`v<v^~0ϧr_7YLEbOI_==!&Á(8l\T6$7Ro6GY̭%B}!HM.xyF$Y⍥xq&t&k.*SZe(%n.] UhIl ߺ$ F-K_*r9q2b~\r.keseЀKeFŌfy$drҗ9svuQ!/;tY8NײN/~hwcU&RGgeY*^7vvMMܝM7!%Ўɉu984Js*r<;UGs1}s i;Ԝ̎*j笢"nA9AI0%lUs򟳮oD/:+vKaG.^J>CqK[p?oa'.9x;@P:OʫG'eP R[ eiZ Jo0>ASȃKg,^:,=z{ы͍"y'i%<{bnAq#6Jj&2{K H1UHur#ˊBlV!wJP*OyQePNES?U.,S*Ot_>> endobj 728 0 obj [0 [1000 ] 3 [500 ] 11 [500 500 ] 14 [500 ] 16 [500 500 500 500 500 500 500 500 500 500 500 500 500 500 ] 36 [500 500 500 ] 40 [500 500 500 ] 44 [500 ] 46 [500 500 500 500 500 500 ] 53 [500 500 500 ] 57 [500 500 500 500 ] 68 [500 ] 72 [500 500 500 500 500 ] 81 [500 500 500 ] 85 [500 500 500 ] 91 [500 500 ] 1068 [500 ] ] endobj 727 0 obj <> endobj 726 0 obj <> endobj 707 0 obj <> endobj 730 0 obj <> +stream +x}Nc9y,{廄|XECD(o?E#чu˛zz崻_qY^Nݲ~XǕaw}'=oϫ|r]z\|^_~/iz?|gy^׵ZޮTyYo~o_%58;헗v\ǧeuf̟rq2MOf͏U{~WjM) D 4ۙybks GPfD-y!Q> ~)g=Y'vuX5P\`l PB!ǧ@?ϸ/}I v ZM("2T5޵әwᅰ +endstream endobj 729 0 obj [731 0 R ] endobj 731 0 obj <> endobj 733 0 obj [0 [1000 ] 3 [500 ] 16 [500 ] 19 [500 500 500 500 500 500 500 500 ] 36 [500 500 ] 42 [500 ] 47 [500 500 ] 54 [500 500 ] 57 [500 ] 59 [500 ] 72 [500 ] 76 [500 ] 81 [500 500 ] 86 [500 500 ] ] endobj 732 0 obj <> endobj 706 0 obj <> endobj 705 0 obj <> endobj 4 0 obj << +/Filter/FlateDecode/Length 21 +>> +stream +x+*4Pp +Z +endstream endobj 313 0 obj <> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> stream xmZͮ$ ݏ,F6yH}R"E}#eO9P{G{\0Ƙ~/y~__}Wk?xڟ?=[]_u_=n=_§J4^?GmZD '6?ߚzq[>-DzIXHQM2h+X޸B6b7.׌B:hfg~.^7܁xDxSٝfry`@AkT 3#׿~z&Nv4^Z&ϧ?0$"e iOkuى-CwuLzÍӿ$K[=HG3hnQ "?? +Ý6 ^괍ɟj+h. +ܹZٹB _NHw<("wЕO*@(/yeT(n 1כx`)!MCϋs sL9fmr~]5\#j4C [7pO>) }3wP'C'O ]rUO{KzL`$/ ^' fGb7}FKZsD-s\з#=^܇|ZI꾱b1"{ܡv6'xhl6X㾶|%S/!OODݺ}~"^'.㠶`Wk bDuufØ*h@ihCM'ahf[VQvakF^\ ?`NC&mc>V A^A [tFLfB;:2Yk3Y);;B ٿ0t>Cʙ1n -1EN+d/4vp#RC%0$*?0x^"𭊻lq~b'"hZāc M-Om d} + rw.X$o/=Ӷ#Kw&|]wJ@Q$. +YfᏊ>qk܅1r=2)E݇D'k D>o- <~?}v lvWR#@v#V}%I?ƍ/^=*- ׆=VxEQB|%yI̠~8#VHmW@ihNob >W(P ^*ow`ۤ$n$( }'IzcDx.ʦ;>*z]q3 +ؤXWFawX 1q~Yy4jx= tT.ݻ{G$wЊȧJ?oQVx(sǍH@G>Xs"1Md[`αcCEQq< +b*(z_(GVF`++nQ}`կ_yF0鯉Oa/3+pѼ &.L߃}Xq8,V8CtZS#9 + O(Y ROւ/Cٯǚ&s8r=e]>;m];u 4'Fq^,^Igfi[#@6=QWo/քgHra?Zu7L4.7c>Z`Ҕ0q`ucrsyK$[fJ`x;'4nɑd?~ x(+O19cÀӀ0f?cØ0q=Ә0fOcjSc?!c489caLMcjScaӘW=|s~y+_+ߩRи%Р"7 +C_ltK+',&Fm>)?e Ozψ\o1J0ROΈ {Eλ4t6Jr!Ӑ3?4XL^]c |y&^`lz+RyRfdRFZ72ґtȢȕ LKj;K[5:aFD`5doo,2%m&f1a {d60 { Ơʘ\cD$~]ȆШf)LfbJ){ @>Ђ;;Hx&uu׹4ݫǓӷ,D;@"&5UƎXy;7'ߗïgPטo -c}}$ d7$hRgHCH8e"&l:$]9:9&<\w.1qwE[D=2A@,}Yc Y/ztGxSnq0Ohаɡa{%>Z?4V +٨S}hXסaаu=5/\Cf^ MOۡaR 95܇muha|7c Oj8p_~H}4b(|yhWW + Y_: +f}E'5:Ox .|_k$+s=eᡠ<K +q[|bX*Uk$ooECD +ge+*yj-oH (M2KQ )իaq \> endobj 734 0 obj <> endobj 2 0 obj <> endobj xref 0 735 +0000000000 65535 f +0008579106 00000 n +0008579823 00000 n +0000000016 00000 n +0008272345 00000 n +0008575176 00000 n +0007966764 00000 n +0000000139 00000 n +0007966673 00000 n +0008571246 00000 n +0007933482 00000 n +0000000251 00000 n +0007933390 00000 n +0008567315 00000 n +0007928674 00000 n +0000000366 00000 n +0007928582 00000 n +0008563384 00000 n +0007628164 00000 n +0000000481 00000 n +0007628072 00000 n +0008559453 00000 n +0007598645 00000 n +0000000608 00000 n +0007598553 00000 n +0008555522 00000 n +0007517173 00000 n +0000000735 00000 n +0007517081 00000 n +0008551591 00000 n +0007512976 00000 n +0000000850 00000 n +0007512884 00000 n +0008547660 00000 n +0007508159 00000 n +0000000965 00000 n +0007508067 00000 n +0008543729 00000 n +0007503677 00000 n +0000001080 00000 n +0007503585 00000 n +0008539798 00000 n +0007498872 00000 n +0000001195 00000 n +0007498779 00000 n +0008535867 00000 n +0007495025 00000 n +0000001310 00000 n +0007494932 00000 n +0008531936 00000 n +0007490720 00000 n +0000001425 00000 n +0007490627 00000 n +0008528005 00000 n +0007486052 00000 n +0000001540 00000 n +0007485959 00000 n +0008524074 00000 n +0007481819 00000 n +0000001655 00000 n +0007481726 00000 n +0008520143 00000 n +0007477759 00000 n +0000001770 00000 n +0007477666 00000 n +0008516212 00000 n +0007473718 00000 n +0000001885 00000 n +0007473625 00000 n +0008512281 00000 n +0007469855 00000 n +0000002000 00000 n +0007469762 00000 n +0008508350 00000 n +0007466042 00000 n +0000002115 00000 n +0007465949 00000 n +0008504419 00000 n +0007462026 00000 n +0000002230 00000 n +0007461933 00000 n +0008500488 00000 n +0007458267 00000 n +0000002345 00000 n +0007458174 00000 n +0008496557 00000 n +0006814347 00000 n +0000002460 00000 n +0006814254 00000 n +0008492626 00000 n +0006809565 00000 n +0000002575 00000 n +0006809472 00000 n +0008488695 00000 n +0006805645 00000 n +0000002690 00000 n +0006805552 00000 n +0008484764 00000 n +0006801744 00000 n +0000002805 00000 n +0006801650 00000 n +0008480832 00000 n +0006799896 00000 n +0000002923 00000 n +0006799802 00000 n +0008476900 00000 n +0006795654 00000 n +0000003042 00000 n +0006795560 00000 n +0008472968 00000 n +0006788662 00000 n +0000003161 00000 n +0006788568 00000 n +0008469036 00000 n +0006782732 00000 n +0000003280 00000 n +0006782638 00000 n +0008465104 00000 n +0006777639 00000 n +0000003399 00000 n +0006777545 00000 n +0008461172 00000 n +0006770480 00000 n +0000003518 00000 n +0006770386 00000 n +0008457240 00000 n +0006764727 00000 n +0000003637 00000 n +0006764633 00000 n +0008453308 00000 n +0006755472 00000 n +0000003756 00000 n +0006755378 00000 n +0008449376 00000 n +0006747911 00000 n +0000003875 00000 n +0006747817 00000 n +0008445444 00000 n +0006743645 00000 n +0000003994 00000 n +0006743551 00000 n +0008441512 00000 n +0006739830 00000 n +0000004113 00000 n +0006739736 00000 n +0008437580 00000 n +0006734515 00000 n +0000004232 00000 n +0006734421 00000 n +0008433648 00000 n +0006707185 00000 n +0000004351 00000 n +0006707091 00000 n +0008429716 00000 n +0006687157 00000 n +0000004470 00000 n +0006687063 00000 n +0008425784 00000 n +0006605511 00000 n +0000004589 00000 n +0006605417 00000 n +0008421852 00000 n +0006577228 00000 n +0000004708 00000 n +0006577134 00000 n +0008417920 00000 n +0006570824 00000 n +0000004827 00000 n +0006570730 00000 n +0008413988 00000 n +0006568505 00000 n +0000004946 00000 n +0006568411 00000 n +0008410056 00000 n +0006563363 00000 n +0000005065 00000 n +0006563269 00000 n +0008406124 00000 n +0006558094 00000 n +0000005184 00000 n +0006558000 00000 n +0008402192 00000 n +0006551320 00000 n +0000005303 00000 n +0006551226 00000 n +0008398260 00000 n +0006542058 00000 n +0000005422 00000 n +0006541964 00000 n +0008394328 00000 n +0006537468 00000 n +0000005541 00000 n +0006537374 00000 n +0008390396 00000 n +0006533355 00000 n +0000005660 00000 n +0006533261 00000 n +0008386464 00000 n +0006528038 00000 n +0000005779 00000 n +0006527944 00000 n +0008382532 00000 n +0006460385 00000 n +0000005898 00000 n +0006460291 00000 n +0008378600 00000 n +0006381415 00000 n +0000006017 00000 n +0006381321 00000 n +0008374668 00000 n +0006357157 00000 n +0000006136 00000 n +0006357063 00000 n +0008370736 00000 n +0006301675 00000 n +0000006255 00000 n +0006301581 00000 n +0008366804 00000 n +0006242802 00000 n +0000006374 00000 n +0006242708 00000 n +0008362872 00000 n +0006225870 00000 n +0000006493 00000 n +0006225776 00000 n +0008358940 00000 n +0006219444 00000 n +0000006612 00000 n +0006219350 00000 n +0008355008 00000 n +0006212800 00000 n +0000006731 00000 n +0006212706 00000 n +0008351076 00000 n +0006208680 00000 n +0000006850 00000 n +0006208586 00000 n +0008347144 00000 n +0005544858 00000 n +0000006969 00000 n +0005544764 00000 n +0008343212 00000 n +0001975839 00000 n +0000007088 00000 n +0001975745 00000 n +0008339280 00000 n +0001955490 00000 n +0000007207 00000 n +0001955396 00000 n +0008335348 00000 n +0000929026 00000 n +0000007326 00000 n +0000928932 00000 n +0008331416 00000 n +0000924105 00000 n +0000007445 00000 n +0000924011 00000 n +0008327484 00000 n +0000566518 00000 n +0000007564 00000 n +0000566424 00000 n +0008323552 00000 n +0000561668 00000 n +0000007683 00000 n +0000561574 00000 n +0008319620 00000 n +0000558311 00000 n +0000007802 00000 n +0000558217 00000 n +0008315688 00000 n +0000515338 00000 n +0000007921 00000 n +0000515244 00000 n +0008311756 00000 n +0000452970 00000 n +0000008040 00000 n +0000452876 00000 n +0008307824 00000 n +0000434022 00000 n +0000008159 00000 n +0000433928 00000 n +0008303892 00000 n +0000413257 00000 n +0000008278 00000 n +0000413163 00000 n +0008299960 00000 n +0000388484 00000 n +0000008397 00000 n +0000388390 00000 n +0008296028 00000 n +0000384469 00000 n +0000008516 00000 n +0000384375 00000 n +0008292096 00000 n +0000382033 00000 n +0000008635 00000 n +0000381939 00000 n +0008288164 00000 n +0000322517 00000 n +0000008754 00000 n +0000322423 00000 n +0008284232 00000 n +0000315715 00000 n +0000008873 00000 n +0000315621 00000 n +0008280300 00000 n +0000308640 00000 n +0000008992 00000 n +0000308546 00000 n +0008276368 00000 n +0000301848 00000 n +0000009111 00000 n +0000301754 00000 n +0008272436 00000 n +0000017342 00000 n +0000017266 00000 n +0000009230 00000 n +0000009331 00000 n +0000010108 00000 n +0000009445 00000 n +0000009835 00000 n +0000009565 00000 n +0000009703 00000 n +0000009994 00000 n +0000011437 00000 n +0000010257 00000 n +0000010381 00000 n +0000010778 00000 n +0000010518 00000 n +0000010652 00000 n +0000011177 00000 n +0000010951 00000 n +0000011071 00000 n +0000011336 00000 n +0000013165 00000 n +0000011618 00000 n +0000011733 00000 n +0000011876 00000 n +0000012362 00000 n +0000012005 00000 n +0000012134 00000 n +0000012253 00000 n +0000012893 00000 n +0000012526 00000 n +0000012649 00000 n +0000012788 00000 n +0000013063 00000 n +0000014961 00000 n +0000013774 00000 n +0000013367 00000 n +0000013502 00000 n +0000013641 00000 n +0000013938 00000 n +0000014283 00000 n +0000014055 00000 n +0000014174 00000 n +0000014683 00000 n +0000014449 00000 n +0000014578 00000 n +0000014859 00000 n +0000016619 00000 n +0000015399 00000 n +0000015175 00000 n +0000015294 00000 n +0000015818 00000 n +0000015557 00000 n +0000015689 00000 n +0000016291 00000 n +0000016028 00000 n +0000016160 00000 n +0000016517 00000 n +0000017016 00000 n +0000016807 00000 n +0000016918 00000 n +0000017173 00000 n +0000301698 00000 n +0000017406 00000 n +0000301618 00000 n +0000022516 00000 n +0000256209 00000 n +0000028764 00000 n +0000022577 00000 n +0000022974 00000 n +0000022739 00000 n +0000023178 00000 n +0000036318 00000 n +0000028939 00000 n +0000256130 00000 n +0000036820 00000 n +0000254993 00000 n +0000037038 00000 n +0000257547 00000 n +0000256761 00000 n +0000257768 00000 n +0000301652 00000 n +0000301912 00000 n +0000308704 00000 n +0000315779 00000 n +0000322581 00000 n +0000328440 00000 n +0000357453 00000 n +0000328526 00000 n +0000330193 00000 n +0000328701 00000 n +0000330545 00000 n +0000357043 00000 n +0000330763 00000 n +0000358380 00000 n +0000357841 00000 n +0000358606 00000 n +0000382097 00000 n +0000384533 00000 n +0000388548 00000 n +0000390864 00000 n +0000390926 00000 n +0000391803 00000 n +0000391294 00000 n +0000392034 00000 n +0000413321 00000 n +0000433841 00000 n +0000434086 00000 n +0000453034 00000 n +0000515402 00000 n +0000558142 00000 n +0000558375 00000 n +0000561526 00000 n +0000561732 00000 n +0000566351 00000 n +0000566582 00000 n +0000852738 00000 n +0000908786 00000 n +0000889838 00000 n +0000852802 00000 n +0000924169 00000 n +0000929090 00000 n +0001955220 00000 n +0000932583 00000 n +0001928127 00000 n +0001926267 00000 n +0001898008 00000 n +0001863928 00000 n +0001857619 00000 n +0001824606 00000 n +0001822653 00000 n +0001802976 00000 n +0001774469 00000 n +0001719984 00000 n +0001704931 00000 n +0001695849 00000 n +0001673500 00000 n +0001672279 00000 n +0001647168 00000 n +0001612534 00000 n +0001605393 00000 n +0001568318 00000 n +0001566942 00000 n +0001546066 00000 n +0001515686 00000 n +0001465332 00000 n +0001449212 00000 n +0001439580 00000 n +0001414231 00000 n +0001413007 00000 n +0001386213 00000 n +0001353765 00000 n +0001346626 00000 n +0001313708 00000 n +0001312377 00000 n +0001290261 00000 n +0001261714 00000 n +0001211145 00000 n +0001196087 00000 n +0001186171 00000 n +0001162814 00000 n +0001160865 00000 n +0001137653 00000 n +0001108109 00000 n +0001101013 00000 n +0001065152 00000 n +0001063113 00000 n +0001041093 00000 n +0001013155 00000 n +0000959181 00000 n +0000943879 00000 n +0000933277 00000 n +0000943049 00000 n +0000958351 00000 n +0001065055 00000 n +0001107279 00000 n +0001162720 00000 n +0001195257 00000 n +0001352935 00000 n +0001448382 00000 n +0001464502 00000 n +0001568224 00000 n +0001611704 00000 n +0001955554 00000 n +0001975903 00000 n +0005544630 00000 n +0002845420 00000 n +0005543778 00000 n +0005541341 00000 n +0005541104 00000 n +0005456957 00000 n +0005449434 00000 n +0005394321 00000 n +0005376047 00000 n +0004970588 00000 n +0004776434 00000 n +0004761722 00000 n +0004712565 00000 n +0004576376 00000 n +0004488180 00000 n +0004052289 00000 n +0004023160 00000 n +0003887932 00000 n +0003810973 00000 n +0003772092 00000 n +0003627050 00000 n +0003428125 00000 n +0003025548 00000 n +0003019813 00000 n +0002913542 00000 n +0002913304 00000 n +0002912372 00000 n +0002906246 00000 n +0002847478 00000 n +0002846701 00000 n +0002845848 00000 n +0002847384 00000 n +0002911556 00000 n +0002913210 00000 n +0003024732 00000 n +0004775618 00000 n +0005393494 00000 n +0005456136 00000 n +0005542957 00000 n +0005544922 00000 n +0006201697 00000 n +0006200812 00000 n +0006200848 00000 n +0006208518 00000 n +0006202992 00000 n +0006201826 00000 n +0006201977 00000 n +0006202197 00000 n +0006203558 00000 n +0006203228 00000 n +0006203772 00000 n +0006208744 00000 n +0006212591 00000 n +0006212864 00000 n +0006219247 00000 n +0006219508 00000 n +0006223897 00000 n +0006224026 00000 n +0006224466 00000 n +0006224207 00000 n +0006224680 00000 n +0006225934 00000 n +0006242866 00000 n +0006301739 00000 n +0006357221 00000 n +0006381479 00000 n +0006460449 00000 n +0006528102 00000 n +0006533419 00000 n +0006537532 00000 n +0006541863 00000 n +0006542122 00000 n +0006551160 00000 n +0006549657 00000 n +0006548754 00000 n +0006549380 00000 n +0006549099 00000 n +0006548818 00000 n +0006550804 00000 n +0006550442 00000 n +0006550091 00000 n +0006549735 00000 n +0006551196 00000 n +0006551384 00000 n +0006558158 00000 n +0006563427 00000 n +0006568569 00000 n +0006570888 00000 n +0006577292 00000 n +0006604011 00000 n +0006604047 00000 n +0006605575 00000 n +0006687221 00000 n +0006707249 00000 n +0006734579 00000 n +0006739894 00000 n +0006743709 00000 n +0006747975 00000 n +0006755536 00000 n +0006764543 00000 n +0006764791 00000 n +0006770282 00000 n +0006770544 00000 n +0006777703 00000 n +0006782796 00000 n +0006788726 00000 n +0006795009 00000 n +0006795096 00000 n +0006795282 00000 n +0006795718 00000 n +0006799960 00000 n +0006801807 00000 n +0006805708 00000 n +0006809628 00000 n +0006814410 00000 n +0006817031 00000 n +0007392243 00000 n +0007331805 00000 n +0007276993 00000 n +0007215360 00000 n +0007158683 00000 n +0007109979 00000 n +0007055865 00000 n +0007007807 00000 n +0006954370 00000 n +0006903666 00000 n +0006853936 00000 n +0006817221 00000 n +0007458330 00000 n +0007462089 00000 n +0007466105 00000 n +0007469702 00000 n +0007469918 00000 n +0007473781 00000 n +0007477822 00000 n +0007481882 00000 n +0007486115 00000 n +0007490783 00000 n +0007495088 00000 n +0007498934 00000 n +0007503739 00000 n +0007508221 00000 n +0007513038 00000 n +0007517235 00000 n +0007570344 00000 n +0007531313 00000 n +0007530817 00000 n +0007520664 00000 n +0007520607 00000 n +0007520550 00000 n +0007520885 00000 n +0007520860 00000 n +0007521153 00000 n +0007531060 00000 n +0007531005 00000 n +0007532595 00000 n +0007531470 00000 n +0007532624 00000 n +0007570271 00000 n +0007532841 00000 n +0007532810 00000 n +0007533120 00000 n +0007570907 00000 n +0007570493 00000 n +0007570936 00000 n +0007598480 00000 n +0007571357 00000 n +0007571114 00000 n +0007571629 00000 n +0007598707 00000 n +0007603363 00000 n +0007603836 00000 n +0007603520 00000 n +0007603865 00000 n +0007627999 00000 n +0007604082 00000 n +0007604051 00000 n +0007604361 00000 n +0007628226 00000 n +0007928502 00000 n +0007631101 00000 n +0007883093 00000 n +0007858607 00000 n +0007631162 00000 n +0007638716 00000 n +0007631337 00000 n +0007858528 00000 n +0007639218 00000 n +0007857391 00000 n +0007639436 00000 n +0007859534 00000 n +0007858995 00000 n +0007859760 00000 n +0007884431 00000 n +0007883645 00000 n +0007884652 00000 n +0007928536 00000 n +0007928736 00000 n +0007933544 00000 n +0007937673 00000 n +0007937746 00000 n +0007939413 00000 n +0007937921 00000 n +0007939765 00000 n +0007966263 00000 n +0007939983 00000 n +0007966825 00000 n +0008272282 00000 n +0008272225 00000 n +0008270141 00000 n +0008262541 00000 n +0008211916 00000 n +0008210881 00000 n +0008210130 00000 n +0007969523 00000 n +0007969997 00000 n +0007969698 00000 n +0007970264 00000 n +0008210623 00000 n +0008210314 00000 n +0008211665 00000 n +0008211058 00000 n +0008212332 00000 n +0008212091 00000 n +0008212599 00000 n +0008269258 00000 n +0008262686 00000 n +0008269287 00000 n +0008270068 00000 n +0008269801 00000 n +0008269461 00000 n +0008271547 00000 n +0008270286 00000 n +0008271576 00000 n +0008271958 00000 n +0008271750 00000 n +0008579755 00000 n +trailer +<<472f6d676b3c484d773958296676493f>]>> +startxref +8579951 +%%EOF +WebFastLoad \ No newline at end of file diff --git a/backend/apps/algorithms/algorithm/dataPrediction/__init__.py b/backend/apps/algorithms/algorithm/dataPrediction/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/__init__.py b/backend/apps/algorithms/algorithm/other/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/house_prices_predict/LR_model.pdparams b/backend/apps/algorithms/algorithm/other/house_prices_predict/LR_model.pdparams new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/house_prices_predict/__init__.py b/backend/apps/algorithms/algorithm/other/house_prices_predict/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/house_prices_predict/housing.data b/backend/apps/algorithms/algorithm/other/house_prices_predict/housing.data new file mode 100644 index 0000000..f83ac56 --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/house_prices_predict/housing.data @@ -0,0 +1,506 @@ + 0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.00 + 0.02731 0.00 7.070 0 0.4690 6.4210 78.90 4.9671 2 242.0 17.80 396.90 9.14 21.60 + 0.02729 0.00 7.070 0 0.4690 7.1850 61.10 4.9671 2 242.0 17.80 392.83 4.03 34.70 + 0.03237 0.00 2.180 0 0.4580 6.9980 45.80 6.0622 3 222.0 18.70 394.63 2.94 33.40 + 0.06905 0.00 2.180 0 0.4580 7.1470 54.20 6.0622 3 222.0 18.70 396.90 5.33 36.20 + 0.02985 0.00 2.180 0 0.4580 6.4300 58.70 6.0622 3 222.0 18.70 394.12 5.21 28.70 + 0.08829 12.50 7.870 0 0.5240 6.0120 66.60 5.5605 5 311.0 15.20 395.60 12.43 22.90 + 0.14455 12.50 7.870 0 0.5240 6.1720 96.10 5.9505 5 311.0 15.20 396.90 19.15 27.10 + 0.21124 12.50 7.870 0 0.5240 5.6310 100.00 6.0821 5 311.0 15.20 386.63 29.93 16.50 + 0.17004 12.50 7.870 0 0.5240 6.0040 85.90 6.5921 5 311.0 15.20 386.71 17.10 18.90 + 0.22489 12.50 7.870 0 0.5240 6.3770 94.30 6.3467 5 311.0 15.20 392.52 20.45 15.00 + 0.11747 12.50 7.870 0 0.5240 6.0090 82.90 6.2267 5 311.0 15.20 396.90 13.27 18.90 + 0.09378 12.50 7.870 0 0.5240 5.8890 39.00 5.4509 5 311.0 15.20 390.50 15.71 21.70 + 0.62976 0.00 8.140 0 0.5380 5.9490 61.80 4.7075 4 307.0 21.00 396.90 8.26 20.40 + 0.63796 0.00 8.140 0 0.5380 6.0960 84.50 4.4619 4 307.0 21.00 380.02 10.26 18.20 + 0.62739 0.00 8.140 0 0.5380 5.8340 56.50 4.4986 4 307.0 21.00 395.62 8.47 19.90 + 1.05393 0.00 8.140 0 0.5380 5.9350 29.30 4.4986 4 307.0 21.00 386.85 6.58 23.10 + 0.78420 0.00 8.140 0 0.5380 5.9900 81.70 4.2579 4 307.0 21.00 386.75 14.67 17.50 + 0.80271 0.00 8.140 0 0.5380 5.4560 36.60 3.7965 4 307.0 21.00 288.99 11.69 20.20 + 0.72580 0.00 8.140 0 0.5380 5.7270 69.50 3.7965 4 307.0 21.00 390.95 11.28 18.20 + 1.25179 0.00 8.140 0 0.5380 5.5700 98.10 3.7979 4 307.0 21.00 376.57 21.02 13.60 + 0.85204 0.00 8.140 0 0.5380 5.9650 89.20 4.0123 4 307.0 21.00 392.53 13.83 19.60 + 1.23247 0.00 8.140 0 0.5380 6.1420 91.70 3.9769 4 307.0 21.00 396.90 18.72 15.20 + 0.98843 0.00 8.140 0 0.5380 5.8130 100.00 4.0952 4 307.0 21.00 394.54 19.88 14.50 + 0.75026 0.00 8.140 0 0.5380 5.9240 94.10 4.3996 4 307.0 21.00 394.33 16.30 15.60 + 0.84054 0.00 8.140 0 0.5380 5.5990 85.70 4.4546 4 307.0 21.00 303.42 16.51 13.90 + 0.67191 0.00 8.140 0 0.5380 5.8130 90.30 4.6820 4 307.0 21.00 376.88 14.81 16.60 + 0.95577 0.00 8.140 0 0.5380 6.0470 88.80 4.4534 4 307.0 21.00 306.38 17.28 14.80 + 0.77299 0.00 8.140 0 0.5380 6.4950 94.40 4.4547 4 307.0 21.00 387.94 12.80 18.40 + 1.00245 0.00 8.140 0 0.5380 6.6740 87.30 4.2390 4 307.0 21.00 380.23 11.98 21.00 + 1.13081 0.00 8.140 0 0.5380 5.7130 94.10 4.2330 4 307.0 21.00 360.17 22.60 12.70 + 1.35472 0.00 8.140 0 0.5380 6.0720 100.00 4.1750 4 307.0 21.00 376.73 13.04 14.50 + 1.38799 0.00 8.140 0 0.5380 5.9500 82.00 3.9900 4 307.0 21.00 232.60 27.71 13.20 + 1.15172 0.00 8.140 0 0.5380 5.7010 95.00 3.7872 4 307.0 21.00 358.77 18.35 13.10 + 1.61282 0.00 8.140 0 0.5380 6.0960 96.90 3.7598 4 307.0 21.00 248.31 20.34 13.50 + 0.06417 0.00 5.960 0 0.4990 5.9330 68.20 3.3603 5 279.0 19.20 396.90 9.68 18.90 + 0.09744 0.00 5.960 0 0.4990 5.8410 61.40 3.3779 5 279.0 19.20 377.56 11.41 20.00 + 0.08014 0.00 5.960 0 0.4990 5.8500 41.50 3.9342 5 279.0 19.20 396.90 8.77 21.00 + 0.17505 0.00 5.960 0 0.4990 5.9660 30.20 3.8473 5 279.0 19.20 393.43 10.13 24.70 + 0.02763 75.00 2.950 0 0.4280 6.5950 21.80 5.4011 3 252.0 18.30 395.63 4.32 30.80 + 0.03359 75.00 2.950 0 0.4280 7.0240 15.80 5.4011 3 252.0 18.30 395.62 1.98 34.90 + 0.12744 0.00 6.910 0 0.4480 6.7700 2.90 5.7209 3 233.0 17.90 385.41 4.84 26.60 + 0.14150 0.00 6.910 0 0.4480 6.1690 6.60 5.7209 3 233.0 17.90 383.37 5.81 25.30 + 0.15936 0.00 6.910 0 0.4480 6.2110 6.50 5.7209 3 233.0 17.90 394.46 7.44 24.70 + 0.12269 0.00 6.910 0 0.4480 6.0690 40.00 5.7209 3 233.0 17.90 389.39 9.55 21.20 + 0.17142 0.00 6.910 0 0.4480 5.6820 33.80 5.1004 3 233.0 17.90 396.90 10.21 19.30 + 0.18836 0.00 6.910 0 0.4480 5.7860 33.30 5.1004 3 233.0 17.90 396.90 14.15 20.00 + 0.22927 0.00 6.910 0 0.4480 6.0300 85.50 5.6894 3 233.0 17.90 392.74 18.80 16.60 + 0.25387 0.00 6.910 0 0.4480 5.3990 95.30 5.8700 3 233.0 17.90 396.90 30.81 14.40 + 0.21977 0.00 6.910 0 0.4480 5.6020 62.00 6.0877 3 233.0 17.90 396.90 16.20 19.40 + 0.08873 21.00 5.640 0 0.4390 5.9630 45.70 6.8147 4 243.0 16.80 395.56 13.45 19.70 + 0.04337 21.00 5.640 0 0.4390 6.1150 63.00 6.8147 4 243.0 16.80 393.97 9.43 20.50 + 0.05360 21.00 5.640 0 0.4390 6.5110 21.10 6.8147 4 243.0 16.80 396.90 5.28 25.00 + 0.04981 21.00 5.640 0 0.4390 5.9980 21.40 6.8147 4 243.0 16.80 396.90 8.43 23.40 + 0.01360 75.00 4.000 0 0.4100 5.8880 47.60 7.3197 3 469.0 21.10 396.90 14.80 18.90 + 0.01311 90.00 1.220 0 0.4030 7.2490 21.90 8.6966 5 226.0 17.90 395.93 4.81 35.40 + 0.02055 85.00 0.740 0 0.4100 6.3830 35.70 9.1876 2 313.0 17.30 396.90 5.77 24.70 + 0.01432 100.00 1.320 0 0.4110 6.8160 40.50 8.3248 5 256.0 15.10 392.90 3.95 31.60 + 0.15445 25.00 5.130 0 0.4530 6.1450 29.20 7.8148 8 284.0 19.70 390.68 6.86 23.30 + 0.10328 25.00 5.130 0 0.4530 5.9270 47.20 6.9320 8 284.0 19.70 396.90 9.22 19.60 + 0.14932 25.00 5.130 0 0.4530 5.7410 66.20 7.2254 8 284.0 19.70 395.11 13.15 18.70 + 0.17171 25.00 5.130 0 0.4530 5.9660 93.40 6.8185 8 284.0 19.70 378.08 14.44 16.00 + 0.11027 25.00 5.130 0 0.4530 6.4560 67.80 7.2255 8 284.0 19.70 396.90 6.73 22.20 + 0.12650 25.00 5.130 0 0.4530 6.7620 43.40 7.9809 8 284.0 19.70 395.58 9.50 25.00 + 0.01951 17.50 1.380 0 0.4161 7.1040 59.50 9.2229 3 216.0 18.60 393.24 8.05 33.00 + 0.03584 80.00 3.370 0 0.3980 6.2900 17.80 6.6115 4 337.0 16.10 396.90 4.67 23.50 + 0.04379 80.00 3.370 0 0.3980 5.7870 31.10 6.6115 4 337.0 16.10 396.90 10.24 19.40 + 0.05789 12.50 6.070 0 0.4090 5.8780 21.40 6.4980 4 345.0 18.90 396.21 8.10 22.00 + 0.13554 12.50 6.070 0 0.4090 5.5940 36.80 6.4980 4 345.0 18.90 396.90 13.09 17.40 + 0.12816 12.50 6.070 0 0.4090 5.8850 33.00 6.4980 4 345.0 18.90 396.90 8.79 20.90 + 0.08826 0.00 10.810 0 0.4130 6.4170 6.60 5.2873 4 305.0 19.20 383.73 6.72 24.20 + 0.15876 0.00 10.810 0 0.4130 5.9610 17.50 5.2873 4 305.0 19.20 376.94 9.88 21.70 + 0.09164 0.00 10.810 0 0.4130 6.0650 7.80 5.2873 4 305.0 19.20 390.91 5.52 22.80 + 0.19539 0.00 10.810 0 0.4130 6.2450 6.20 5.2873 4 305.0 19.20 377.17 7.54 23.40 + 0.07896 0.00 12.830 0 0.4370 6.2730 6.00 4.2515 5 398.0 18.70 394.92 6.78 24.10 + 0.09512 0.00 12.830 0 0.4370 6.2860 45.00 4.5026 5 398.0 18.70 383.23 8.94 21.40 + 0.10153 0.00 12.830 0 0.4370 6.2790 74.50 4.0522 5 398.0 18.70 373.66 11.97 20.00 + 0.08707 0.00 12.830 0 0.4370 6.1400 45.80 4.0905 5 398.0 18.70 386.96 10.27 20.80 + 0.05646 0.00 12.830 0 0.4370 6.2320 53.70 5.0141 5 398.0 18.70 386.40 12.34 21.20 + 0.08387 0.00 12.830 0 0.4370 5.8740 36.60 4.5026 5 398.0 18.70 396.06 9.10 20.30 + 0.04113 25.00 4.860 0 0.4260 6.7270 33.50 5.4007 4 281.0 19.00 396.90 5.29 28.00 + 0.04462 25.00 4.860 0 0.4260 6.6190 70.40 5.4007 4 281.0 19.00 395.63 7.22 23.90 + 0.03659 25.00 4.860 0 0.4260 6.3020 32.20 5.4007 4 281.0 19.00 396.90 6.72 24.80 + 0.03551 25.00 4.860 0 0.4260 6.1670 46.70 5.4007 4 281.0 19.00 390.64 7.51 22.90 + 0.05059 0.00 4.490 0 0.4490 6.3890 48.00 4.7794 3 247.0 18.50 396.90 9.62 23.90 + 0.05735 0.00 4.490 0 0.4490 6.6300 56.10 4.4377 3 247.0 18.50 392.30 6.53 26.60 + 0.05188 0.00 4.490 0 0.4490 6.0150 45.10 4.4272 3 247.0 18.50 395.99 12.86 22.50 + 0.07151 0.00 4.490 0 0.4490 6.1210 56.80 3.7476 3 247.0 18.50 395.15 8.44 22.20 + 0.05660 0.00 3.410 0 0.4890 7.0070 86.30 3.4217 2 270.0 17.80 396.90 5.50 23.60 + 0.05302 0.00 3.410 0 0.4890 7.0790 63.10 3.4145 2 270.0 17.80 396.06 5.70 28.70 + 0.04684 0.00 3.410 0 0.4890 6.4170 66.10 3.0923 2 270.0 17.80 392.18 8.81 22.60 + 0.03932 0.00 3.410 0 0.4890 6.4050 73.90 3.0921 2 270.0 17.80 393.55 8.20 22.00 + 0.04203 28.00 15.040 0 0.4640 6.4420 53.60 3.6659 4 270.0 18.20 395.01 8.16 22.90 + 0.02875 28.00 15.040 0 0.4640 6.2110 28.90 3.6659 4 270.0 18.20 396.33 6.21 25.00 + 0.04294 28.00 15.040 0 0.4640 6.2490 77.30 3.6150 4 270.0 18.20 396.90 10.59 20.60 + 0.12204 0.00 2.890 0 0.4450 6.6250 57.80 3.4952 2 276.0 18.00 357.98 6.65 28.40 + 0.11504 0.00 2.890 0 0.4450 6.1630 69.60 3.4952 2 276.0 18.00 391.83 11.34 21.40 + 0.12083 0.00 2.890 0 0.4450 8.0690 76.00 3.4952 2 276.0 18.00 396.90 4.21 38.70 + 0.08187 0.00 2.890 0 0.4450 7.8200 36.90 3.4952 2 276.0 18.00 393.53 3.57 43.80 + 0.06860 0.00 2.890 0 0.4450 7.4160 62.50 3.4952 2 276.0 18.00 396.90 6.19 33.20 + 0.14866 0.00 8.560 0 0.5200 6.7270 79.90 2.7778 5 384.0 20.90 394.76 9.42 27.50 + 0.11432 0.00 8.560 0 0.5200 6.7810 71.30 2.8561 5 384.0 20.90 395.58 7.67 26.50 + 0.22876 0.00 8.560 0 0.5200 6.4050 85.40 2.7147 5 384.0 20.90 70.80 10.63 18.60 + 0.21161 0.00 8.560 0 0.5200 6.1370 87.40 2.7147 5 384.0 20.90 394.47 13.44 19.30 + 0.13960 0.00 8.560 0 0.5200 6.1670 90.00 2.4210 5 384.0 20.90 392.69 12.33 20.10 + 0.13262 0.00 8.560 0 0.5200 5.8510 96.70 2.1069 5 384.0 20.90 394.05 16.47 19.50 + 0.17120 0.00 8.560 0 0.5200 5.8360 91.90 2.2110 5 384.0 20.90 395.67 18.66 19.50 + 0.13117 0.00 8.560 0 0.5200 6.1270 85.20 2.1224 5 384.0 20.90 387.69 14.09 20.40 + 0.12802 0.00 8.560 0 0.5200 6.4740 97.10 2.4329 5 384.0 20.90 395.24 12.27 19.80 + 0.26363 0.00 8.560 0 0.5200 6.2290 91.20 2.5451 5 384.0 20.90 391.23 15.55 19.40 + 0.10793 0.00 8.560 0 0.5200 6.1950 54.40 2.7778 5 384.0 20.90 393.49 13.00 21.70 + 0.10084 0.00 10.010 0 0.5470 6.7150 81.60 2.6775 6 432.0 17.80 395.59 10.16 22.80 + 0.12329 0.00 10.010 0 0.5470 5.9130 92.90 2.3534 6 432.0 17.80 394.95 16.21 18.80 + 0.22212 0.00 10.010 0 0.5470 6.0920 95.40 2.5480 6 432.0 17.80 396.90 17.09 18.70 + 0.14231 0.00 10.010 0 0.5470 6.2540 84.20 2.2565 6 432.0 17.80 388.74 10.45 18.50 + 0.17134 0.00 10.010 0 0.5470 5.9280 88.20 2.4631 6 432.0 17.80 344.91 15.76 18.30 + 0.13158 0.00 10.010 0 0.5470 6.1760 72.50 2.7301 6 432.0 17.80 393.30 12.04 21.20 + 0.15098 0.00 10.010 0 0.5470 6.0210 82.60 2.7474 6 432.0 17.80 394.51 10.30 19.20 + 0.13058 0.00 10.010 0 0.5470 5.8720 73.10 2.4775 6 432.0 17.80 338.63 15.37 20.40 + 0.14476 0.00 10.010 0 0.5470 5.7310 65.20 2.7592 6 432.0 17.80 391.50 13.61 19.30 + 0.06899 0.00 25.650 0 0.5810 5.8700 69.70 2.2577 2 188.0 19.10 389.15 14.37 22.00 + 0.07165 0.00 25.650 0 0.5810 6.0040 84.10 2.1974 2 188.0 19.10 377.67 14.27 20.30 + 0.09299 0.00 25.650 0 0.5810 5.9610 92.90 2.0869 2 188.0 19.10 378.09 17.93 20.50 + 0.15038 0.00 25.650 0 0.5810 5.8560 97.00 1.9444 2 188.0 19.10 370.31 25.41 17.30 + 0.09849 0.00 25.650 0 0.5810 5.8790 95.80 2.0063 2 188.0 19.10 379.38 17.58 18.80 + 0.16902 0.00 25.650 0 0.5810 5.9860 88.40 1.9929 2 188.0 19.10 385.02 14.81 21.40 + 0.38735 0.00 25.650 0 0.5810 5.6130 95.60 1.7572 2 188.0 19.10 359.29 27.26 15.70 + 0.25915 0.00 21.890 0 0.6240 5.6930 96.00 1.7883 4 437.0 21.20 392.11 17.19 16.20 + 0.32543 0.00 21.890 0 0.6240 6.4310 98.80 1.8125 4 437.0 21.20 396.90 15.39 18.00 + 0.88125 0.00 21.890 0 0.6240 5.6370 94.70 1.9799 4 437.0 21.20 396.90 18.34 14.30 + 0.34006 0.00 21.890 0 0.6240 6.4580 98.90 2.1185 4 437.0 21.20 395.04 12.60 19.20 + 1.19294 0.00 21.890 0 0.6240 6.3260 97.70 2.2710 4 437.0 21.20 396.90 12.26 19.60 + 0.59005 0.00 21.890 0 0.6240 6.3720 97.90 2.3274 4 437.0 21.20 385.76 11.12 23.00 + 0.32982 0.00 21.890 0 0.6240 5.8220 95.40 2.4699 4 437.0 21.20 388.69 15.03 18.40 + 0.97617 0.00 21.890 0 0.6240 5.7570 98.40 2.3460 4 437.0 21.20 262.76 17.31 15.60 + 0.55778 0.00 21.890 0 0.6240 6.3350 98.20 2.1107 4 437.0 21.20 394.67 16.96 18.10 + 0.32264 0.00 21.890 0 0.6240 5.9420 93.50 1.9669 4 437.0 21.20 378.25 16.90 17.40 + 0.35233 0.00 21.890 0 0.6240 6.4540 98.40 1.8498 4 437.0 21.20 394.08 14.59 17.10 + 0.24980 0.00 21.890 0 0.6240 5.8570 98.20 1.6686 4 437.0 21.20 392.04 21.32 13.30 + 0.54452 0.00 21.890 0 0.6240 6.1510 97.90 1.6687 4 437.0 21.20 396.90 18.46 17.80 + 0.29090 0.00 21.890 0 0.6240 6.1740 93.60 1.6119 4 437.0 21.20 388.08 24.16 14.00 + 1.62864 0.00 21.890 0 0.6240 5.0190 100.00 1.4394 4 437.0 21.20 396.90 34.41 14.40 + 3.32105 0.00 19.580 1 0.8710 5.4030 100.00 1.3216 5 403.0 14.70 396.90 26.82 13.40 + 4.09740 0.00 19.580 0 0.8710 5.4680 100.00 1.4118 5 403.0 14.70 396.90 26.42 15.60 + 2.77974 0.00 19.580 0 0.8710 4.9030 97.80 1.3459 5 403.0 14.70 396.90 29.29 11.80 + 2.37934 0.00 19.580 0 0.8710 6.1300 100.00 1.4191 5 403.0 14.70 172.91 27.80 13.80 + 2.15505 0.00 19.580 0 0.8710 5.6280 100.00 1.5166 5 403.0 14.70 169.27 16.65 15.60 + 2.36862 0.00 19.580 0 0.8710 4.9260 95.70 1.4608 5 403.0 14.70 391.71 29.53 14.60 + 2.33099 0.00 19.580 0 0.8710 5.1860 93.80 1.5296 5 403.0 14.70 356.99 28.32 17.80 + 2.73397 0.00 19.580 0 0.8710 5.5970 94.90 1.5257 5 403.0 14.70 351.85 21.45 15.40 + 1.65660 0.00 19.580 0 0.8710 6.1220 97.30 1.6180 5 403.0 14.70 372.80 14.10 21.50 + 1.49632 0.00 19.580 0 0.8710 5.4040 100.00 1.5916 5 403.0 14.70 341.60 13.28 19.60 + 1.12658 0.00 19.580 1 0.8710 5.0120 88.00 1.6102 5 403.0 14.70 343.28 12.12 15.30 + 2.14918 0.00 19.580 0 0.8710 5.7090 98.50 1.6232 5 403.0 14.70 261.95 15.79 19.40 + 1.41385 0.00 19.580 1 0.8710 6.1290 96.00 1.7494 5 403.0 14.70 321.02 15.12 17.00 + 3.53501 0.00 19.580 1 0.8710 6.1520 82.60 1.7455 5 403.0 14.70 88.01 15.02 15.60 + 2.44668 0.00 19.580 0 0.8710 5.2720 94.00 1.7364 5 403.0 14.70 88.63 16.14 13.10 + 1.22358 0.00 19.580 0 0.6050 6.9430 97.40 1.8773 5 403.0 14.70 363.43 4.59 41.30 + 1.34284 0.00 19.580 0 0.6050 6.0660 100.00 1.7573 5 403.0 14.70 353.89 6.43 24.30 + 1.42502 0.00 19.580 0 0.8710 6.5100 100.00 1.7659 5 403.0 14.70 364.31 7.39 23.30 + 1.27346 0.00 19.580 1 0.6050 6.2500 92.60 1.7984 5 403.0 14.70 338.92 5.50 27.00 + 1.46336 0.00 19.580 0 0.6050 7.4890 90.80 1.9709 5 403.0 14.70 374.43 1.73 50.00 + 1.83377 0.00 19.580 1 0.6050 7.8020 98.20 2.0407 5 403.0 14.70 389.61 1.92 50.00 + 1.51902 0.00 19.580 1 0.6050 8.3750 93.90 2.1620 5 403.0 14.70 388.45 3.32 50.00 + 2.24236 0.00 19.580 0 0.6050 5.8540 91.80 2.4220 5 403.0 14.70 395.11 11.64 22.70 + 2.92400 0.00 19.580 0 0.6050 6.1010 93.00 2.2834 5 403.0 14.70 240.16 9.81 25.00 + 2.01019 0.00 19.580 0 0.6050 7.9290 96.20 2.0459 5 403.0 14.70 369.30 3.70 50.00 + 1.80028 0.00 19.580 0 0.6050 5.8770 79.20 2.4259 5 403.0 14.70 227.61 12.14 23.80 + 2.30040 0.00 19.580 0 0.6050 6.3190 96.10 2.1000 5 403.0 14.70 297.09 11.10 23.80 + 2.44953 0.00 19.580 0 0.6050 6.4020 95.20 2.2625 5 403.0 14.70 330.04 11.32 22.30 + 1.20742 0.00 19.580 0 0.6050 5.8750 94.60 2.4259 5 403.0 14.70 292.29 14.43 17.40 + 2.31390 0.00 19.580 0 0.6050 5.8800 97.30 2.3887 5 403.0 14.70 348.13 12.03 19.10 + 0.13914 0.00 4.050 0 0.5100 5.5720 88.50 2.5961 5 296.0 16.60 396.90 14.69 23.10 + 0.09178 0.00 4.050 0 0.5100 6.4160 84.10 2.6463 5 296.0 16.60 395.50 9.04 23.60 + 0.08447 0.00 4.050 0 0.5100 5.8590 68.70 2.7019 5 296.0 16.60 393.23 9.64 22.60 + 0.06664 0.00 4.050 0 0.5100 6.5460 33.10 3.1323 5 296.0 16.60 390.96 5.33 29.40 + 0.07022 0.00 4.050 0 0.5100 6.0200 47.20 3.5549 5 296.0 16.60 393.23 10.11 23.20 + 0.05425 0.00 4.050 0 0.5100 6.3150 73.40 3.3175 5 296.0 16.60 395.60 6.29 24.60 + 0.06642 0.00 4.050 0 0.5100 6.8600 74.40 2.9153 5 296.0 16.60 391.27 6.92 29.90 + 0.05780 0.00 2.460 0 0.4880 6.9800 58.40 2.8290 3 193.0 17.80 396.90 5.04 37.20 + 0.06588 0.00 2.460 0 0.4880 7.7650 83.30 2.7410 3 193.0 17.80 395.56 7.56 39.80 + 0.06888 0.00 2.460 0 0.4880 6.1440 62.20 2.5979 3 193.0 17.80 396.90 9.45 36.20 + 0.09103 0.00 2.460 0 0.4880 7.1550 92.20 2.7006 3 193.0 17.80 394.12 4.82 37.90 + 0.10008 0.00 2.460 0 0.4880 6.5630 95.60 2.8470 3 193.0 17.80 396.90 5.68 32.50 + 0.08308 0.00 2.460 0 0.4880 5.6040 89.80 2.9879 3 193.0 17.80 391.00 13.98 26.40 + 0.06047 0.00 2.460 0 0.4880 6.1530 68.80 3.2797 3 193.0 17.80 387.11 13.15 29.60 + 0.05602 0.00 2.460 0 0.4880 7.8310 53.60 3.1992 3 193.0 17.80 392.63 4.45 50.00 + 0.07875 45.00 3.440 0 0.4370 6.7820 41.10 3.7886 5 398.0 15.20 393.87 6.68 32.00 + 0.12579 45.00 3.440 0 0.4370 6.5560 29.10 4.5667 5 398.0 15.20 382.84 4.56 29.80 + 0.08370 45.00 3.440 0 0.4370 7.1850 38.90 4.5667 5 398.0 15.20 396.90 5.39 34.90 + 0.09068 45.00 3.440 0 0.4370 6.9510 21.50 6.4798 5 398.0 15.20 377.68 5.10 37.00 + 0.06911 45.00 3.440 0 0.4370 6.7390 30.80 6.4798 5 398.0 15.20 389.71 4.69 30.50 + 0.08664 45.00 3.440 0 0.4370 7.1780 26.30 6.4798 5 398.0 15.20 390.49 2.87 36.40 + 0.02187 60.00 2.930 0 0.4010 6.8000 9.90 6.2196 1 265.0 15.60 393.37 5.03 31.10 + 0.01439 60.00 2.930 0 0.4010 6.6040 18.80 6.2196 1 265.0 15.60 376.70 4.38 29.10 + 0.01381 80.00 0.460 0 0.4220 7.8750 32.00 5.6484 4 255.0 14.40 394.23 2.97 50.00 + 0.04011 80.00 1.520 0 0.4040 7.2870 34.10 7.3090 2 329.0 12.60 396.90 4.08 33.30 + 0.04666 80.00 1.520 0 0.4040 7.1070 36.60 7.3090 2 329.0 12.60 354.31 8.61 30.30 + 0.03768 80.00 1.520 0 0.4040 7.2740 38.30 7.3090 2 329.0 12.60 392.20 6.62 34.60 + 0.03150 95.00 1.470 0 0.4030 6.9750 15.30 7.6534 3 402.0 17.00 396.90 4.56 34.90 + 0.01778 95.00 1.470 0 0.4030 7.1350 13.90 7.6534 3 402.0 17.00 384.30 4.45 32.90 + 0.03445 82.50 2.030 0 0.4150 6.1620 38.40 6.2700 2 348.0 14.70 393.77 7.43 24.10 + 0.02177 82.50 2.030 0 0.4150 7.6100 15.70 6.2700 2 348.0 14.70 395.38 3.11 42.30 + 0.03510 95.00 2.680 0 0.4161 7.8530 33.20 5.1180 4 224.0 14.70 392.78 3.81 48.50 + 0.02009 95.00 2.680 0 0.4161 8.0340 31.90 5.1180 4 224.0 14.70 390.55 2.88 50.00 + 0.13642 0.00 10.590 0 0.4890 5.8910 22.30 3.9454 4 277.0 18.60 396.90 10.87 22.60 + 0.22969 0.00 10.590 0 0.4890 6.3260 52.50 4.3549 4 277.0 18.60 394.87 10.97 24.40 + 0.25199 0.00 10.590 0 0.4890 5.7830 72.70 4.3549 4 277.0 18.60 389.43 18.06 22.50 + 0.13587 0.00 10.590 1 0.4890 6.0640 59.10 4.2392 4 277.0 18.60 381.32 14.66 24.40 + 0.43571 0.00 10.590 1 0.4890 5.3440 100.00 3.8750 4 277.0 18.60 396.90 23.09 20.00 + 0.17446 0.00 10.590 1 0.4890 5.9600 92.10 3.8771 4 277.0 18.60 393.25 17.27 21.70 + 0.37578 0.00 10.590 1 0.4890 5.4040 88.60 3.6650 4 277.0 18.60 395.24 23.98 19.30 + 0.21719 0.00 10.590 1 0.4890 5.8070 53.80 3.6526 4 277.0 18.60 390.94 16.03 22.40 + 0.14052 0.00 10.590 0 0.4890 6.3750 32.30 3.9454 4 277.0 18.60 385.81 9.38 28.10 + 0.28955 0.00 10.590 0 0.4890 5.4120 9.80 3.5875 4 277.0 18.60 348.93 29.55 23.70 + 0.19802 0.00 10.590 0 0.4890 6.1820 42.40 3.9454 4 277.0 18.60 393.63 9.47 25.00 + 0.04560 0.00 13.890 1 0.5500 5.8880 56.00 3.1121 5 276.0 16.40 392.80 13.51 23.30 + 0.07013 0.00 13.890 0 0.5500 6.6420 85.10 3.4211 5 276.0 16.40 392.78 9.69 28.70 + 0.11069 0.00 13.890 1 0.5500 5.9510 93.80 2.8893 5 276.0 16.40 396.90 17.92 21.50 + 0.11425 0.00 13.890 1 0.5500 6.3730 92.40 3.3633 5 276.0 16.40 393.74 10.50 23.00 + 0.35809 0.00 6.200 1 0.5070 6.9510 88.50 2.8617 8 307.0 17.40 391.70 9.71 26.70 + 0.40771 0.00 6.200 1 0.5070 6.1640 91.30 3.0480 8 307.0 17.40 395.24 21.46 21.70 + 0.62356 0.00 6.200 1 0.5070 6.8790 77.70 3.2721 8 307.0 17.40 390.39 9.93 27.50 + 0.61470 0.00 6.200 0 0.5070 6.6180 80.80 3.2721 8 307.0 17.40 396.90 7.60 30.10 + 0.31533 0.00 6.200 0 0.5040 8.2660 78.30 2.8944 8 307.0 17.40 385.05 4.14 44.80 + 0.52693 0.00 6.200 0 0.5040 8.7250 83.00 2.8944 8 307.0 17.40 382.00 4.63 50.00 + 0.38214 0.00 6.200 0 0.5040 8.0400 86.50 3.2157 8 307.0 17.40 387.38 3.13 37.60 + 0.41238 0.00 6.200 0 0.5040 7.1630 79.90 3.2157 8 307.0 17.40 372.08 6.36 31.60 + 0.29819 0.00 6.200 0 0.5040 7.6860 17.00 3.3751 8 307.0 17.40 377.51 3.92 46.70 + 0.44178 0.00 6.200 0 0.5040 6.5520 21.40 3.3751 8 307.0 17.40 380.34 3.76 31.50 + 0.53700 0.00 6.200 0 0.5040 5.9810 68.10 3.6715 8 307.0 17.40 378.35 11.65 24.30 + 0.46296 0.00 6.200 0 0.5040 7.4120 76.90 3.6715 8 307.0 17.40 376.14 5.25 31.70 + 0.57529 0.00 6.200 0 0.5070 8.3370 73.30 3.8384 8 307.0 17.40 385.91 2.47 41.70 + 0.33147 0.00 6.200 0 0.5070 8.2470 70.40 3.6519 8 307.0 17.40 378.95 3.95 48.30 + 0.44791 0.00 6.200 1 0.5070 6.7260 66.50 3.6519 8 307.0 17.40 360.20 8.05 29.00 + 0.33045 0.00 6.200 0 0.5070 6.0860 61.50 3.6519 8 307.0 17.40 376.75 10.88 24.00 + 0.52058 0.00 6.200 1 0.5070 6.6310 76.50 4.1480 8 307.0 17.40 388.45 9.54 25.10 + 0.51183 0.00 6.200 0 0.5070 7.3580 71.60 4.1480 8 307.0 17.40 390.07 4.73 31.50 + 0.08244 30.00 4.930 0 0.4280 6.4810 18.50 6.1899 6 300.0 16.60 379.41 6.36 23.70 + 0.09252 30.00 4.930 0 0.4280 6.6060 42.20 6.1899 6 300.0 16.60 383.78 7.37 23.30 + 0.11329 30.00 4.930 0 0.4280 6.8970 54.30 6.3361 6 300.0 16.60 391.25 11.38 22.00 + 0.10612 30.00 4.930 0 0.4280 6.0950 65.10 6.3361 6 300.0 16.60 394.62 12.40 20.10 + 0.10290 30.00 4.930 0 0.4280 6.3580 52.90 7.0355 6 300.0 16.60 372.75 11.22 22.20 + 0.12757 30.00 4.930 0 0.4280 6.3930 7.80 7.0355 6 300.0 16.60 374.71 5.19 23.70 + 0.20608 22.00 5.860 0 0.4310 5.5930 76.50 7.9549 7 330.0 19.10 372.49 12.50 17.60 + 0.19133 22.00 5.860 0 0.4310 5.6050 70.20 7.9549 7 330.0 19.10 389.13 18.46 18.50 + 0.33983 22.00 5.860 0 0.4310 6.1080 34.90 8.0555 7 330.0 19.10 390.18 9.16 24.30 + 0.19657 22.00 5.860 0 0.4310 6.2260 79.20 8.0555 7 330.0 19.10 376.14 10.15 20.50 + 0.16439 22.00 5.860 0 0.4310 6.4330 49.10 7.8265 7 330.0 19.10 374.71 9.52 24.50 + 0.19073 22.00 5.860 0 0.4310 6.7180 17.50 7.8265 7 330.0 19.10 393.74 6.56 26.20 + 0.14030 22.00 5.860 0 0.4310 6.4870 13.00 7.3967 7 330.0 19.10 396.28 5.90 24.40 + 0.21409 22.00 5.860 0 0.4310 6.4380 8.90 7.3967 7 330.0 19.10 377.07 3.59 24.80 + 0.08221 22.00 5.860 0 0.4310 6.9570 6.80 8.9067 7 330.0 19.10 386.09 3.53 29.60 + 0.36894 22.00 5.860 0 0.4310 8.2590 8.40 8.9067 7 330.0 19.10 396.90 3.54 42.80 + 0.04819 80.00 3.640 0 0.3920 6.1080 32.00 9.2203 1 315.0 16.40 392.89 6.57 21.90 + 0.03548 80.00 3.640 0 0.3920 5.8760 19.10 9.2203 1 315.0 16.40 395.18 9.25 20.90 + 0.01538 90.00 3.750 0 0.3940 7.4540 34.20 6.3361 3 244.0 15.90 386.34 3.11 44.00 + 0.61154 20.00 3.970 0 0.6470 8.7040 86.90 1.8010 5 264.0 13.00 389.70 5.12 50.00 + 0.66351 20.00 3.970 0 0.6470 7.3330 100.00 1.8946 5 264.0 13.00 383.29 7.79 36.00 + 0.65665 20.00 3.970 0 0.6470 6.8420 100.00 2.0107 5 264.0 13.00 391.93 6.90 30.10 + 0.54011 20.00 3.970 0 0.6470 7.2030 81.80 2.1121 5 264.0 13.00 392.80 9.59 33.80 + 0.53412 20.00 3.970 0 0.6470 7.5200 89.40 2.1398 5 264.0 13.00 388.37 7.26 43.10 + 0.52014 20.00 3.970 0 0.6470 8.3980 91.50 2.2885 5 264.0 13.00 386.86 5.91 48.80 + 0.82526 20.00 3.970 0 0.6470 7.3270 94.50 2.0788 5 264.0 13.00 393.42 11.25 31.00 + 0.55007 20.00 3.970 0 0.6470 7.2060 91.60 1.9301 5 264.0 13.00 387.89 8.10 36.50 + 0.76162 20.00 3.970 0 0.6470 5.5600 62.80 1.9865 5 264.0 13.00 392.40 10.45 22.80 + 0.78570 20.00 3.970 0 0.6470 7.0140 84.60 2.1329 5 264.0 13.00 384.07 14.79 30.70 + 0.57834 20.00 3.970 0 0.5750 8.2970 67.00 2.4216 5 264.0 13.00 384.54 7.44 50.00 + 0.54050 20.00 3.970 0 0.5750 7.4700 52.60 2.8720 5 264.0 13.00 390.30 3.16 43.50 + 0.09065 20.00 6.960 1 0.4640 5.9200 61.50 3.9175 3 223.0 18.60 391.34 13.65 20.70 + 0.29916 20.00 6.960 0 0.4640 5.8560 42.10 4.4290 3 223.0 18.60 388.65 13.00 21.10 + 0.16211 20.00 6.960 0 0.4640 6.2400 16.30 4.4290 3 223.0 18.60 396.90 6.59 25.20 + 0.11460 20.00 6.960 0 0.4640 6.5380 58.70 3.9175 3 223.0 18.60 394.96 7.73 24.40 + 0.22188 20.00 6.960 1 0.4640 7.6910 51.80 4.3665 3 223.0 18.60 390.77 6.58 35.20 + 0.05644 40.00 6.410 1 0.4470 6.7580 32.90 4.0776 4 254.0 17.60 396.90 3.53 32.40 + 0.09604 40.00 6.410 0 0.4470 6.8540 42.80 4.2673 4 254.0 17.60 396.90 2.98 32.00 + 0.10469 40.00 6.410 1 0.4470 7.2670 49.00 4.7872 4 254.0 17.60 389.25 6.05 33.20 + 0.06127 40.00 6.410 1 0.4470 6.8260 27.60 4.8628 4 254.0 17.60 393.45 4.16 33.10 + 0.07978 40.00 6.410 0 0.4470 6.4820 32.10 4.1403 4 254.0 17.60 396.90 7.19 29.10 + 0.21038 20.00 3.330 0 0.4429 6.8120 32.20 4.1007 5 216.0 14.90 396.90 4.85 35.10 + 0.03578 20.00 3.330 0 0.4429 7.8200 64.50 4.6947 5 216.0 14.90 387.31 3.76 45.40 + 0.03705 20.00 3.330 0 0.4429 6.9680 37.20 5.2447 5 216.0 14.90 392.23 4.59 35.40 + 0.06129 20.00 3.330 1 0.4429 7.6450 49.70 5.2119 5 216.0 14.90 377.07 3.01 46.00 + 0.01501 90.00 1.210 1 0.4010 7.9230 24.80 5.8850 1 198.0 13.60 395.52 3.16 50.00 + 0.00906 90.00 2.970 0 0.4000 7.0880 20.80 7.3073 1 285.0 15.30 394.72 7.85 32.20 + 0.01096 55.00 2.250 0 0.3890 6.4530 31.90 7.3073 1 300.0 15.30 394.72 8.23 22.00 + 0.01965 80.00 1.760 0 0.3850 6.2300 31.50 9.0892 1 241.0 18.20 341.60 12.93 20.10 + 0.03871 52.50 5.320 0 0.4050 6.2090 31.30 7.3172 6 293.0 16.60 396.90 7.14 23.20 + 0.04590 52.50 5.320 0 0.4050 6.3150 45.60 7.3172 6 293.0 16.60 396.90 7.60 22.30 + 0.04297 52.50 5.320 0 0.4050 6.5650 22.90 7.3172 6 293.0 16.60 371.72 9.51 24.80 + 0.03502 80.00 4.950 0 0.4110 6.8610 27.90 5.1167 4 245.0 19.20 396.90 3.33 28.50 + 0.07886 80.00 4.950 0 0.4110 7.1480 27.70 5.1167 4 245.0 19.20 396.90 3.56 37.30 + 0.03615 80.00 4.950 0 0.4110 6.6300 23.40 5.1167 4 245.0 19.20 396.90 4.70 27.90 + 0.08265 0.00 13.920 0 0.4370 6.1270 18.40 5.5027 4 289.0 16.00 396.90 8.58 23.90 + 0.08199 0.00 13.920 0 0.4370 6.0090 42.30 5.5027 4 289.0 16.00 396.90 10.40 21.70 + 0.12932 0.00 13.920 0 0.4370 6.6780 31.10 5.9604 4 289.0 16.00 396.90 6.27 28.60 + 0.05372 0.00 13.920 0 0.4370 6.5490 51.00 5.9604 4 289.0 16.00 392.85 7.39 27.10 + 0.14103 0.00 13.920 0 0.4370 5.7900 58.00 6.3200 4 289.0 16.00 396.90 15.84 20.30 + 0.06466 70.00 2.240 0 0.4000 6.3450 20.10 7.8278 5 358.0 14.80 368.24 4.97 22.50 + 0.05561 70.00 2.240 0 0.4000 7.0410 10.00 7.8278 5 358.0 14.80 371.58 4.74 29.00 + 0.04417 70.00 2.240 0 0.4000 6.8710 47.40 7.8278 5 358.0 14.80 390.86 6.07 24.80 + 0.03537 34.00 6.090 0 0.4330 6.5900 40.40 5.4917 7 329.0 16.10 395.75 9.50 22.00 + 0.09266 34.00 6.090 0 0.4330 6.4950 18.40 5.4917 7 329.0 16.10 383.61 8.67 26.40 + 0.10000 34.00 6.090 0 0.4330 6.9820 17.70 5.4917 7 329.0 16.10 390.43 4.86 33.10 + 0.05515 33.00 2.180 0 0.4720 7.2360 41.10 4.0220 7 222.0 18.40 393.68 6.93 36.10 + 0.05479 33.00 2.180 0 0.4720 6.6160 58.10 3.3700 7 222.0 18.40 393.36 8.93 28.40 + 0.07503 33.00 2.180 0 0.4720 7.4200 71.90 3.0992 7 222.0 18.40 396.90 6.47 33.40 + 0.04932 33.00 2.180 0 0.4720 6.8490 70.30 3.1827 7 222.0 18.40 396.90 7.53 28.20 + 0.49298 0.00 9.900 0 0.5440 6.6350 82.50 3.3175 4 304.0 18.40 396.90 4.54 22.80 + 0.34940 0.00 9.900 0 0.5440 5.9720 76.70 3.1025 4 304.0 18.40 396.24 9.97 20.30 + 2.63548 0.00 9.900 0 0.5440 4.9730 37.80 2.5194 4 304.0 18.40 350.45 12.64 16.10 + 0.79041 0.00 9.900 0 0.5440 6.1220 52.80 2.6403 4 304.0 18.40 396.90 5.98 22.10 + 0.26169 0.00 9.900 0 0.5440 6.0230 90.40 2.8340 4 304.0 18.40 396.30 11.72 19.40 + 0.26938 0.00 9.900 0 0.5440 6.2660 82.80 3.2628 4 304.0 18.40 393.39 7.90 21.60 + 0.36920 0.00 9.900 0 0.5440 6.5670 87.30 3.6023 4 304.0 18.40 395.69 9.28 23.80 + 0.25356 0.00 9.900 0 0.5440 5.7050 77.70 3.9450 4 304.0 18.40 396.42 11.50 16.20 + 0.31827 0.00 9.900 0 0.5440 5.9140 83.20 3.9986 4 304.0 18.40 390.70 18.33 17.80 + 0.24522 0.00 9.900 0 0.5440 5.7820 71.70 4.0317 4 304.0 18.40 396.90 15.94 19.80 + 0.40202 0.00 9.900 0 0.5440 6.3820 67.20 3.5325 4 304.0 18.40 395.21 10.36 23.10 + 0.47547 0.00 9.900 0 0.5440 6.1130 58.80 4.0019 4 304.0 18.40 396.23 12.73 21.00 + 0.16760 0.00 7.380 0 0.4930 6.4260 52.30 4.5404 5 287.0 19.60 396.90 7.20 23.80 + 0.18159 0.00 7.380 0 0.4930 6.3760 54.30 4.5404 5 287.0 19.60 396.90 6.87 23.10 + 0.35114 0.00 7.380 0 0.4930 6.0410 49.90 4.7211 5 287.0 19.60 396.90 7.70 20.40 + 0.28392 0.00 7.380 0 0.4930 5.7080 74.30 4.7211 5 287.0 19.60 391.13 11.74 18.50 + 0.34109 0.00 7.380 0 0.4930 6.4150 40.10 4.7211 5 287.0 19.60 396.90 6.12 25.00 + 0.19186 0.00 7.380 0 0.4930 6.4310 14.70 5.4159 5 287.0 19.60 393.68 5.08 24.60 + 0.30347 0.00 7.380 0 0.4930 6.3120 28.90 5.4159 5 287.0 19.60 396.90 6.15 23.00 + 0.24103 0.00 7.380 0 0.4930 6.0830 43.70 5.4159 5 287.0 19.60 396.90 12.79 22.20 + 0.06617 0.00 3.240 0 0.4600 5.8680 25.80 5.2146 4 430.0 16.90 382.44 9.97 19.30 + 0.06724 0.00 3.240 0 0.4600 6.3330 17.20 5.2146 4 430.0 16.90 375.21 7.34 22.60 + 0.04544 0.00 3.240 0 0.4600 6.1440 32.20 5.8736 4 430.0 16.90 368.57 9.09 19.80 + 0.05023 35.00 6.060 0 0.4379 5.7060 28.40 6.6407 1 304.0 16.90 394.02 12.43 17.10 + 0.03466 35.00 6.060 0 0.4379 6.0310 23.30 6.6407 1 304.0 16.90 362.25 7.83 19.40 + 0.05083 0.00 5.190 0 0.5150 6.3160 38.10 6.4584 5 224.0 20.20 389.71 5.68 22.20 + 0.03738 0.00 5.190 0 0.5150 6.3100 38.50 6.4584 5 224.0 20.20 389.40 6.75 20.70 + 0.03961 0.00 5.190 0 0.5150 6.0370 34.50 5.9853 5 224.0 20.20 396.90 8.01 21.10 + 0.03427 0.00 5.190 0 0.5150 5.8690 46.30 5.2311 5 224.0 20.20 396.90 9.80 19.50 + 0.03041 0.00 5.190 0 0.5150 5.8950 59.60 5.6150 5 224.0 20.20 394.81 10.56 18.50 + 0.03306 0.00 5.190 0 0.5150 6.0590 37.30 4.8122 5 224.0 20.20 396.14 8.51 20.60 + 0.05497 0.00 5.190 0 0.5150 5.9850 45.40 4.8122 5 224.0 20.20 396.90 9.74 19.00 + 0.06151 0.00 5.190 0 0.5150 5.9680 58.50 4.8122 5 224.0 20.20 396.90 9.29 18.70 + 0.01301 35.00 1.520 0 0.4420 7.2410 49.30 7.0379 1 284.0 15.50 394.74 5.49 32.70 + 0.02498 0.00 1.890 0 0.5180 6.5400 59.70 6.2669 1 422.0 15.90 389.96 8.65 16.50 + 0.02543 55.00 3.780 0 0.4840 6.6960 56.40 5.7321 5 370.0 17.60 396.90 7.18 23.90 + 0.03049 55.00 3.780 0 0.4840 6.8740 28.10 6.4654 5 370.0 17.60 387.97 4.61 31.20 + 0.03113 0.00 4.390 0 0.4420 6.0140 48.50 8.0136 3 352.0 18.80 385.64 10.53 17.50 + 0.06162 0.00 4.390 0 0.4420 5.8980 52.30 8.0136 3 352.0 18.80 364.61 12.67 17.20 + 0.01870 85.00 4.150 0 0.4290 6.5160 27.70 8.5353 4 351.0 17.90 392.43 6.36 23.10 + 0.01501 80.00 2.010 0 0.4350 6.6350 29.70 8.3440 4 280.0 17.00 390.94 5.99 24.50 + 0.02899 40.00 1.250 0 0.4290 6.9390 34.50 8.7921 1 335.0 19.70 389.85 5.89 26.60 + 0.06211 40.00 1.250 0 0.4290 6.4900 44.40 8.7921 1 335.0 19.70 396.90 5.98 22.90 + 0.07950 60.00 1.690 0 0.4110 6.5790 35.90 10.7103 4 411.0 18.30 370.78 5.49 24.10 + 0.07244 60.00 1.690 0 0.4110 5.8840 18.50 10.7103 4 411.0 18.30 392.33 7.79 18.60 + 0.01709 90.00 2.020 0 0.4100 6.7280 36.10 12.1265 5 187.0 17.00 384.46 4.50 30.10 + 0.04301 80.00 1.910 0 0.4130 5.6630 21.90 10.5857 4 334.0 22.00 382.80 8.05 18.20 + 0.10659 80.00 1.910 0 0.4130 5.9360 19.50 10.5857 4 334.0 22.00 376.04 5.57 20.60 + 8.98296 0.00 18.100 1 0.7700 6.2120 97.40 2.1222 24 666.0 20.20 377.73 17.60 17.80 + 3.84970 0.00 18.100 1 0.7700 6.3950 91.00 2.5052 24 666.0 20.20 391.34 13.27 21.70 + 5.20177 0.00 18.100 1 0.7700 6.1270 83.40 2.7227 24 666.0 20.20 395.43 11.48 22.70 + 4.26131 0.00 18.100 0 0.7700 6.1120 81.30 2.5091 24 666.0 20.20 390.74 12.67 22.60 + 4.54192 0.00 18.100 0 0.7700 6.3980 88.00 2.5182 24 666.0 20.20 374.56 7.79 25.00 + 3.83684 0.00 18.100 0 0.7700 6.2510 91.10 2.2955 24 666.0 20.20 350.65 14.19 19.90 + 3.67822 0.00 18.100 0 0.7700 5.3620 96.20 2.1036 24 666.0 20.20 380.79 10.19 20.80 + 4.22239 0.00 18.100 1 0.7700 5.8030 89.00 1.9047 24 666.0 20.20 353.04 14.64 16.80 + 3.47428 0.00 18.100 1 0.7180 8.7800 82.90 1.9047 24 666.0 20.20 354.55 5.29 21.90 + 4.55587 0.00 18.100 0 0.7180 3.5610 87.90 1.6132 24 666.0 20.20 354.70 7.12 27.50 + 3.69695 0.00 18.100 0 0.7180 4.9630 91.40 1.7523 24 666.0 20.20 316.03 14.00 21.90 +13.52220 0.00 18.100 0 0.6310 3.8630 100.00 1.5106 24 666.0 20.20 131.42 13.33 23.10 + 4.89822 0.00 18.100 0 0.6310 4.9700 100.00 1.3325 24 666.0 20.20 375.52 3.26 50.00 + 5.66998 0.00 18.100 1 0.6310 6.6830 96.80 1.3567 24 666.0 20.20 375.33 3.73 50.00 + 6.53876 0.00 18.100 1 0.6310 7.0160 97.50 1.2024 24 666.0 20.20 392.05 2.96 50.00 + 9.23230 0.00 18.100 0 0.6310 6.2160 100.00 1.1691 24 666.0 20.20 366.15 9.53 50.00 + 8.26725 0.00 18.100 1 0.6680 5.8750 89.60 1.1296 24 666.0 20.20 347.88 8.88 50.00 +11.10810 0.00 18.100 0 0.6680 4.9060 100.00 1.1742 24 666.0 20.20 396.90 34.77 13.80 +18.49820 0.00 18.100 0 0.6680 4.1380 100.00 1.1370 24 666.0 20.20 396.90 37.97 13.80 +19.60910 0.00 18.100 0 0.6710 7.3130 97.90 1.3163 24 666.0 20.20 396.90 13.44 15.00 +15.28800 0.00 18.100 0 0.6710 6.6490 93.30 1.3449 24 666.0 20.20 363.02 23.24 13.90 + 9.82349 0.00 18.100 0 0.6710 6.7940 98.80 1.3580 24 666.0 20.20 396.90 21.24 13.30 +23.64820 0.00 18.100 0 0.6710 6.3800 96.20 1.3861 24 666.0 20.20 396.90 23.69 13.10 +17.86670 0.00 18.100 0 0.6710 6.2230 100.00 1.3861 24 666.0 20.20 393.74 21.78 10.20 +88.97620 0.00 18.100 0 0.6710 6.9680 91.90 1.4165 24 666.0 20.20 396.90 17.21 10.40 +15.87440 0.00 18.100 0 0.6710 6.5450 99.10 1.5192 24 666.0 20.20 396.90 21.08 10.90 + 9.18702 0.00 18.100 0 0.7000 5.5360 100.00 1.5804 24 666.0 20.20 396.90 23.60 11.30 + 7.99248 0.00 18.100 0 0.7000 5.5200 100.00 1.5331 24 666.0 20.20 396.90 24.56 12.30 +20.08490 0.00 18.100 0 0.7000 4.3680 91.20 1.4395 24 666.0 20.20 285.83 30.63 8.80 +16.81180 0.00 18.100 0 0.7000 5.2770 98.10 1.4261 24 666.0 20.20 396.90 30.81 7.20 +24.39380 0.00 18.100 0 0.7000 4.6520 100.00 1.4672 24 666.0 20.20 396.90 28.28 10.50 +22.59710 0.00 18.100 0 0.7000 5.0000 89.50 1.5184 24 666.0 20.20 396.90 31.99 7.40 +14.33370 0.00 18.100 0 0.7000 4.8800 100.00 1.5895 24 666.0 20.20 372.92 30.62 10.20 + 8.15174 0.00 18.100 0 0.7000 5.3900 98.90 1.7281 24 666.0 20.20 396.90 20.85 11.50 + 6.96215 0.00 18.100 0 0.7000 5.7130 97.00 1.9265 24 666.0 20.20 394.43 17.11 15.10 + 5.29305 0.00 18.100 0 0.7000 6.0510 82.50 2.1678 24 666.0 20.20 378.38 18.76 23.20 +11.57790 0.00 18.100 0 0.7000 5.0360 97.00 1.7700 24 666.0 20.20 396.90 25.68 9.70 + 8.64476 0.00 18.100 0 0.6930 6.1930 92.60 1.7912 24 666.0 20.20 396.90 15.17 13.80 +13.35980 0.00 18.100 0 0.6930 5.8870 94.70 1.7821 24 666.0 20.20 396.90 16.35 12.70 + 8.71675 0.00 18.100 0 0.6930 6.4710 98.80 1.7257 24 666.0 20.20 391.98 17.12 13.10 + 5.87205 0.00 18.100 0 0.6930 6.4050 96.00 1.6768 24 666.0 20.20 396.90 19.37 12.50 + 7.67202 0.00 18.100 0 0.6930 5.7470 98.90 1.6334 24 666.0 20.20 393.10 19.92 8.50 +38.35180 0.00 18.100 0 0.6930 5.4530 100.00 1.4896 24 666.0 20.20 396.90 30.59 5.00 + 9.91655 0.00 18.100 0 0.6930 5.8520 77.80 1.5004 24 666.0 20.20 338.16 29.97 6.30 +25.04610 0.00 18.100 0 0.6930 5.9870 100.00 1.5888 24 666.0 20.20 396.90 26.77 5.60 +14.23620 0.00 18.100 0 0.6930 6.3430 100.00 1.5741 24 666.0 20.20 396.90 20.32 7.20 + 9.59571 0.00 18.100 0 0.6930 6.4040 100.00 1.6390 24 666.0 20.20 376.11 20.31 12.10 +24.80170 0.00 18.100 0 0.6930 5.3490 96.00 1.7028 24 666.0 20.20 396.90 19.77 8.30 +41.52920 0.00 18.100 0 0.6930 5.5310 85.40 1.6074 24 666.0 20.20 329.46 27.38 8.50 +67.92080 0.00 18.100 0 0.6930 5.6830 100.00 1.4254 24 666.0 20.20 384.97 22.98 5.00 +20.71620 0.00 18.100 0 0.6590 4.1380 100.00 1.1781 24 666.0 20.20 370.22 23.34 11.90 +11.95110 0.00 18.100 0 0.6590 5.6080 100.00 1.2852 24 666.0 20.20 332.09 12.13 27.90 + 7.40389 0.00 18.100 0 0.5970 5.6170 97.90 1.4547 24 666.0 20.20 314.64 26.40 17.20 +14.43830 0.00 18.100 0 0.5970 6.8520 100.00 1.4655 24 666.0 20.20 179.36 19.78 27.50 +51.13580 0.00 18.100 0 0.5970 5.7570 100.00 1.4130 24 666.0 20.20 2.60 10.11 15.00 +14.05070 0.00 18.100 0 0.5970 6.6570 100.00 1.5275 24 666.0 20.20 35.05 21.22 17.20 +18.81100 0.00 18.100 0 0.5970 4.6280 100.00 1.5539 24 666.0 20.20 28.79 34.37 17.90 +28.65580 0.00 18.100 0 0.5970 5.1550 100.00 1.5894 24 666.0 20.20 210.97 20.08 16.30 +45.74610 0.00 18.100 0 0.6930 4.5190 100.00 1.6582 24 666.0 20.20 88.27 36.98 7.00 +18.08460 0.00 18.100 0 0.6790 6.4340 100.00 1.8347 24 666.0 20.20 27.25 29.05 7.20 +10.83420 0.00 18.100 0 0.6790 6.7820 90.80 1.8195 24 666.0 20.20 21.57 25.79 7.50 +25.94060 0.00 18.100 0 0.6790 5.3040 89.10 1.6475 24 666.0 20.20 127.36 26.64 10.40 +73.53410 0.00 18.100 0 0.6790 5.9570 100.00 1.8026 24 666.0 20.20 16.45 20.62 8.80 +11.81230 0.00 18.100 0 0.7180 6.8240 76.50 1.7940 24 666.0 20.20 48.45 22.74 8.40 +11.08740 0.00 18.100 0 0.7180 6.4110 100.00 1.8589 24 666.0 20.20 318.75 15.02 16.70 + 7.02259 0.00 18.100 0 0.7180 6.0060 95.30 1.8746 24 666.0 20.20 319.98 15.70 14.20 +12.04820 0.00 18.100 0 0.6140 5.6480 87.60 1.9512 24 666.0 20.20 291.55 14.10 20.80 + 7.05042 0.00 18.100 0 0.6140 6.1030 85.10 2.0218 24 666.0 20.20 2.52 23.29 13.40 + 8.79212 0.00 18.100 0 0.5840 5.5650 70.60 2.0635 24 666.0 20.20 3.65 17.16 11.70 +15.86030 0.00 18.100 0 0.6790 5.8960 95.40 1.9096 24 666.0 20.20 7.68 24.39 8.30 +12.24720 0.00 18.100 0 0.5840 5.8370 59.70 1.9976 24 666.0 20.20 24.65 15.69 10.20 +37.66190 0.00 18.100 0 0.6790 6.2020 78.70 1.8629 24 666.0 20.20 18.82 14.52 10.90 + 7.36711 0.00 18.100 0 0.6790 6.1930 78.10 1.9356 24 666.0 20.20 96.73 21.52 11.00 + 9.33889 0.00 18.100 0 0.6790 6.3800 95.60 1.9682 24 666.0 20.20 60.72 24.08 9.50 + 8.49213 0.00 18.100 0 0.5840 6.3480 86.10 2.0527 24 666.0 20.20 83.45 17.64 14.50 +10.06230 0.00 18.100 0 0.5840 6.8330 94.30 2.0882 24 666.0 20.20 81.33 19.69 14.10 + 6.44405 0.00 18.100 0 0.5840 6.4250 74.80 2.2004 24 666.0 20.20 97.95 12.03 16.10 + 5.58107 0.00 18.100 0 0.7130 6.4360 87.90 2.3158 24 666.0 20.20 100.19 16.22 14.30 +13.91340 0.00 18.100 0 0.7130 6.2080 95.00 2.2222 24 666.0 20.20 100.63 15.17 11.70 +11.16040 0.00 18.100 0 0.7400 6.6290 94.60 2.1247 24 666.0 20.20 109.85 23.27 13.40 +14.42080 0.00 18.100 0 0.7400 6.4610 93.30 2.0026 24 666.0 20.20 27.49 18.05 9.60 +15.17720 0.00 18.100 0 0.7400 6.1520 100.00 1.9142 24 666.0 20.20 9.32 26.45 8.70 +13.67810 0.00 18.100 0 0.7400 5.9350 87.90 1.8206 24 666.0 20.20 68.95 34.02 8.40 + 9.39063 0.00 18.100 0 0.7400 5.6270 93.90 1.8172 24 666.0 20.20 396.90 22.88 12.80 +22.05110 0.00 18.100 0 0.7400 5.8180 92.40 1.8662 24 666.0 20.20 391.45 22.11 10.50 + 9.72418 0.00 18.100 0 0.7400 6.4060 97.20 2.0651 24 666.0 20.20 385.96 19.52 17.10 + 5.66637 0.00 18.100 0 0.7400 6.2190 100.00 2.0048 24 666.0 20.20 395.69 16.59 18.40 + 9.96654 0.00 18.100 0 0.7400 6.4850 100.00 1.9784 24 666.0 20.20 386.73 18.85 15.40 +12.80230 0.00 18.100 0 0.7400 5.8540 96.60 1.8956 24 666.0 20.20 240.52 23.79 10.80 +10.67180 0.00 18.100 0 0.7400 6.4590 94.80 1.9879 24 666.0 20.20 43.06 23.98 11.80 + 6.28807 0.00 18.100 0 0.7400 6.3410 96.40 2.0720 24 666.0 20.20 318.01 17.79 14.90 + 9.92485 0.00 18.100 0 0.7400 6.2510 96.60 2.1980 24 666.0 20.20 388.52 16.44 12.60 + 9.32909 0.00 18.100 0 0.7130 6.1850 98.70 2.2616 24 666.0 20.20 396.90 18.13 14.10 + 7.52601 0.00 18.100 0 0.7130 6.4170 98.30 2.1850 24 666.0 20.20 304.21 19.31 13.00 + 6.71772 0.00 18.100 0 0.7130 6.7490 92.60 2.3236 24 666.0 20.20 0.32 17.44 13.40 + 5.44114 0.00 18.100 0 0.7130 6.6550 98.20 2.3552 24 666.0 20.20 355.29 17.73 15.20 + 5.09017 0.00 18.100 0 0.7130 6.2970 91.80 2.3682 24 666.0 20.20 385.09 17.27 16.10 + 8.24809 0.00 18.100 0 0.7130 7.3930 99.30 2.4527 24 666.0 20.20 375.87 16.74 17.80 + 9.51363 0.00 18.100 0 0.7130 6.7280 94.10 2.4961 24 666.0 20.20 6.68 18.71 14.90 + 4.75237 0.00 18.100 0 0.7130 6.5250 86.50 2.4358 24 666.0 20.20 50.92 18.13 14.10 + 4.66883 0.00 18.100 0 0.7130 5.9760 87.90 2.5806 24 666.0 20.20 10.48 19.01 12.70 + 8.20058 0.00 18.100 0 0.7130 5.9360 80.30 2.7792 24 666.0 20.20 3.50 16.94 13.50 + 7.75223 0.00 18.100 0 0.7130 6.3010 83.70 2.7831 24 666.0 20.20 272.21 16.23 14.90 + 6.80117 0.00 18.100 0 0.7130 6.0810 84.40 2.7175 24 666.0 20.20 396.90 14.70 20.00 + 4.81213 0.00 18.100 0 0.7130 6.7010 90.00 2.5975 24 666.0 20.20 255.23 16.42 16.40 + 3.69311 0.00 18.100 0 0.7130 6.3760 88.40 2.5671 24 666.0 20.20 391.43 14.65 17.70 + 6.65492 0.00 18.100 0 0.7130 6.3170 83.00 2.7344 24 666.0 20.20 396.90 13.99 19.50 + 5.82115 0.00 18.100 0 0.7130 6.5130 89.90 2.8016 24 666.0 20.20 393.82 10.29 20.20 + 7.83932 0.00 18.100 0 0.6550 6.2090 65.40 2.9634 24 666.0 20.20 396.90 13.22 21.40 + 3.16360 0.00 18.100 0 0.6550 5.7590 48.20 3.0665 24 666.0 20.20 334.40 14.13 19.90 + 3.77498 0.00 18.100 0 0.6550 5.9520 84.70 2.8715 24 666.0 20.20 22.01 17.15 19.00 + 4.42228 0.00 18.100 0 0.5840 6.0030 94.50 2.5403 24 666.0 20.20 331.29 21.32 19.10 +15.57570 0.00 18.100 0 0.5800 5.9260 71.00 2.9084 24 666.0 20.20 368.74 18.13 19.10 +13.07510 0.00 18.100 0 0.5800 5.7130 56.70 2.8237 24 666.0 20.20 396.90 14.76 20.10 + 4.34879 0.00 18.100 0 0.5800 6.1670 84.00 3.0334 24 666.0 20.20 396.90 16.29 19.90 + 4.03841 0.00 18.100 0 0.5320 6.2290 90.70 3.0993 24 666.0 20.20 395.33 12.87 19.60 + 3.56868 0.00 18.100 0 0.5800 6.4370 75.00 2.8965 24 666.0 20.20 393.37 14.36 23.20 + 4.64689 0.00 18.100 0 0.6140 6.9800 67.60 2.5329 24 666.0 20.20 374.68 11.66 29.80 + 8.05579 0.00 18.100 0 0.5840 5.4270 95.40 2.4298 24 666.0 20.20 352.58 18.14 13.80 + 6.39312 0.00 18.100 0 0.5840 6.1620 97.40 2.2060 24 666.0 20.20 302.76 24.10 13.30 + 4.87141 0.00 18.100 0 0.6140 6.4840 93.60 2.3053 24 666.0 20.20 396.21 18.68 16.70 +15.02340 0.00 18.100 0 0.6140 5.3040 97.30 2.1007 24 666.0 20.20 349.48 24.91 12.00 +10.23300 0.00 18.100 0 0.6140 6.1850 96.70 2.1705 24 666.0 20.20 379.70 18.03 14.60 +14.33370 0.00 18.100 0 0.6140 6.2290 88.00 1.9512 24 666.0 20.20 383.32 13.11 21.40 + 5.82401 0.00 18.100 0 0.5320 6.2420 64.70 3.4242 24 666.0 20.20 396.90 10.74 23.00 + 5.70818 0.00 18.100 0 0.5320 6.7500 74.90 3.3317 24 666.0 20.20 393.07 7.74 23.70 + 5.73116 0.00 18.100 0 0.5320 7.0610 77.00 3.4106 24 666.0 20.20 395.28 7.01 25.00 + 2.81838 0.00 18.100 0 0.5320 5.7620 40.30 4.0983 24 666.0 20.20 392.92 10.42 21.80 + 2.37857 0.00 18.100 0 0.5830 5.8710 41.90 3.7240 24 666.0 20.20 370.73 13.34 20.60 + 3.67367 0.00 18.100 0 0.5830 6.3120 51.90 3.9917 24 666.0 20.20 388.62 10.58 21.20 + 5.69175 0.00 18.100 0 0.5830 6.1140 79.80 3.5459 24 666.0 20.20 392.68 14.98 19.10 + 4.83567 0.00 18.100 0 0.5830 5.9050 53.20 3.1523 24 666.0 20.20 388.22 11.45 20.60 + 0.15086 0.00 27.740 0 0.6090 5.4540 92.70 1.8209 4 711.0 20.10 395.09 18.06 15.20 + 0.18337 0.00 27.740 0 0.6090 5.4140 98.30 1.7554 4 711.0 20.10 344.05 23.97 7.00 + 0.20746 0.00 27.740 0 0.6090 5.0930 98.00 1.8226 4 711.0 20.10 318.43 29.68 8.10 + 0.10574 0.00 27.740 0 0.6090 5.9830 98.80 1.8681 4 711.0 20.10 390.11 18.07 13.60 + 0.11132 0.00 27.740 0 0.6090 5.9830 83.50 2.1099 4 711.0 20.10 396.90 13.35 20.10 + 0.17331 0.00 9.690 0 0.5850 5.7070 54.00 2.3817 6 391.0 19.20 396.90 12.01 21.80 + 0.27957 0.00 9.690 0 0.5850 5.9260 42.60 2.3817 6 391.0 19.20 396.90 13.59 24.50 + 0.17899 0.00 9.690 0 0.5850 5.6700 28.80 2.7986 6 391.0 19.20 393.29 17.60 23.10 + 0.28960 0.00 9.690 0 0.5850 5.3900 72.90 2.7986 6 391.0 19.20 396.90 21.14 19.70 + 0.26838 0.00 9.690 0 0.5850 5.7940 70.60 2.8927 6 391.0 19.20 396.90 14.10 18.30 + 0.23912 0.00 9.690 0 0.5850 6.0190 65.30 2.4091 6 391.0 19.20 396.90 12.92 21.20 + 0.17783 0.00 9.690 0 0.5850 5.5690 73.50 2.3999 6 391.0 19.20 395.77 15.10 17.50 + 0.22438 0.00 9.690 0 0.5850 6.0270 79.70 2.4982 6 391.0 19.20 396.90 14.33 16.80 + 0.06263 0.00 11.930 0 0.5730 6.5930 69.10 2.4786 1 273.0 21.00 391.99 9.67 22.40 + 0.04527 0.00 11.930 0 0.5730 6.1200 76.70 2.2875 1 273.0 21.00 396.90 9.08 20.60 + 0.06076 0.00 11.930 0 0.5730 6.9760 91.00 2.1675 1 273.0 21.00 396.90 5.64 23.90 + 0.10959 0.00 11.930 0 0.5730 6.7940 89.30 2.3889 1 273.0 21.00 393.45 6.48 22.00 + 0.04741 0.00 11.930 0 0.5730 6.0300 80.80 2.5050 1 273.0 21.00 396.90 7.88 11.90 diff --git a/backend/apps/algorithms/algorithm/other/house_prices_predict/load_data.py b/backend/apps/algorithms/algorithm/other/house_prices_predict/load_data.py new file mode 100644 index 0000000..cbaa041 --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/house_prices_predict/load_data.py @@ -0,0 +1,45 @@ +import numpy as np + + +def load_data(): + # 从文件导入数据 + datafile = './housing.data' + data = np.fromfile(datafile, sep=' ', dtype=np.float32) + + # 每条数据包括14项,其中前面13项是影响因素,第14项是相应的房屋价格中位数 + feature_names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', \ + 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV'] + feature_num = len(feature_names) + + # 将原始数据进行Reshape,变成[N, 14]这样的形状 + data = data.reshape([data.shape[0] // feature_num, feature_num]) + + # 将原数据集拆分成训练集和测试集 + # 这里使用80%的数据做训练,20%的数据做测试 + # 测试集和训练集必须是没有交集的 + ratio = 0.8 + offset = int(data.shape[0] * ratio) + training_data = data[:offset] + + # 计算train数据集的最大值,最小值 + maximums, minimums = training_data.max(axis=0), training_data.min(axis=0) + + # 记录数据的归一化参数,在预测时对数据做归一化 + global max_values + global min_values + + max_values = maximums + min_values = minimums + + # 对数据进行归一化处理 + for i in range(feature_num): + data[:, i] = (data[:, i] - min_values[i]) / (maximums[i] - minimums[i]) + + # 训练集和测试集的划分比例 + training_data = data[:offset] + test_data = data[offset:] + return training_data, test_data,max_values,min_values +# 验证数据集读取程序的正确性 +training_data, test_data, max_values,min_values = load_data() +print(training_data.shape) +print(training_data[1,:]) \ No newline at end of file diff --git a/backend/apps/algorithms/algorithm/other/house_prices_predict/model_predict.py b/backend/apps/algorithms/algorithm/other/house_prices_predict/model_predict.py new file mode 100644 index 0000000..388208c --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/house_prices_predict/model_predict.py @@ -0,0 +1,36 @@ +import paddle +import numpy as np + +from .load_data import load_data +from .model_train import model + +# 加载数据 +training_data, test_data , max_values,min_values = load_data() + +def load_one_example(): + # 从上边已加载的测试集中,随机选择一条作为测试数据 + idx = np.random.randint(0, test_data.shape[0]) + idx = -10 + one_data, label = test_data[idx, :-1], test_data[idx, -1] + # 修改该条数据shape为[1,13] + one_data = one_data.reshape([1,-1]) + + return one_data, label + +# 参数为保存模型参数的文件地址 +model_dict = paddle.load('LR_model.pdparams') +model.load_dict(model_dict) +model.eval() + +# 参数为数据集的文件地址 +one_data, label = load_one_example() +# 将数据转为动态图的variable格式 +one_data = paddle.to_tensor(one_data) +predict = model(one_data) + +# 对结果做反归一化处理 +predict = predict * (max_values[-1] - min_values[-1]) + min_values[-1] +# 对label数据做反归一化处理 +label = label * (max_values[-1] - min_values[-1]) + min_values[-1] + +print("Inference result is {}, the corresponding label is {}".format(predict.numpy(), label)) diff --git a/backend/apps/algorithms/algorithm/other/house_prices_predict/model_train.py b/backend/apps/algorithms/algorithm/other/house_prices_predict/model_train.py new file mode 100644 index 0000000..30e833b --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/house_prices_predict/model_train.py @@ -0,0 +1,68 @@ +import paddle +from paddle.nn import Linear +import paddle.nn.functional as F +import numpy as np + +from .load_data import load_data + + +class Regressor(paddle.nn.Layer): + + # self代表类的实例自身 + def __init__(self): + # 初始化父类中的一些参数 + super(Regressor, self).__init__() + + # 定义一层全连接层,输入维度是13,输出维度是1 + self.fc = Linear(in_features=13, out_features=1) + + # 网络的前向计算 + def forward(self, inputs): + x = self.fc(inputs) + return x + +# 声明定义好的线性回归模型 +model = Regressor() +# 开启模型训练模式 +model.train() +# 加载数据 +training_data, test_data, max_values,min_values = load_data() +# 定义优化算法,使用随机梯度下降SGD +# 学习率设置为0.01 +opt = paddle.optimizer.SGD(learning_rate=0.01, parameters=model.parameters()) + +EPOCH_NUM = 10 # 设置外层循环次数 +BATCH_SIZE = 10 # 设置batch大小 + +# 定义外层循环 +for epoch_id in range(EPOCH_NUM): + # 在每轮迭代开始之前,将训练数据的顺序随机的打乱 + np.random.shuffle(training_data) + # 将训练数据进行拆分,每个batch包含10条数据 + mini_batches = [training_data[k:k + BATCH_SIZE] for k in range(0, len(training_data), BATCH_SIZE)] + # 定义内层循环 + for iter_id, mini_batch in enumerate(mini_batches): + x = np.array(mini_batch[:, :-1]) # 获得当前批次训练数据 + y = np.array(mini_batch[:, -1:]) # 获得当前批次训练标签(真实房价) + # 将numpy数据转为飞桨动态图tensor的格式 + house_features = paddle.to_tensor(x) + prices = paddle.to_tensor(y) + + # 前向计算 + predicts = model(house_features) + + # 计算损失 + loss = F.square_error_cost(predicts, label=prices) + avg_loss = paddle.mean(loss) + if iter_id % 20 == 0: + print("epoch: {}, iter: {}, loss is: {}".format(epoch_id, iter_id, avg_loss.numpy())) + + # 反向传播,计算每层参数的梯度值 + avg_loss.backward() + # 更新参数,根据设置好的学习率迭代一步 + opt.step() + # 清空梯度变量,以备下一轮计算 + opt.clear_grad() + +paddle.save(model.state_dict(), 'LR_model.pdparams') +print("模型保存成功,模型参数保存在LR_model.pdparams中") diff --git a/backend/apps/algorithms/algorithm/other/house_prices_predict/network.py b/backend/apps/algorithms/algorithm/other/house_prices_predict/network.py new file mode 100644 index 0000000..95cfa16 --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/house_prices_predict/network.py @@ -0,0 +1,106 @@ +import numpy as np +from matplotlib import pyplot as plt + +# 定义神经网络 +class Network(object): + def __init__(self, num_of_weights): + # 随机产生w的初始值 + # 为了保持程序每次运行结果的一致性,此处设置固定的随机数种子 + # np.random.seed(0) + self.w = np.random.randn(num_of_weights, 1) + self.b = 0. + + def forward(self, x): + z = np.dot(x, self.w) + self.b + return z + + def loss(self, z, y): + error = z - y + num_samples = error.shape[0] + cost = error * error + cost = np.sum(cost) / num_samples + return cost + + def gradient(self, x, y): + z = self.forward(x) + N = x.shape[0] + gradient_w = 1. / N * np.sum((z - y) * x, axis=0) + gradient_w = gradient_w[:, np.newaxis] + gradient_b = 1. / N * np.sum(z - y) + return gradient_w, gradient_b + + def update(self, gradient_w, gradient_b, eta=0.01): + self.w = self.w - eta * gradient_w + self.b = self.b - eta * gradient_b + + def train(self, training_data, num_epochs, batch_size=10, eta=0.01): + n = len(training_data) + losses = [] + for epoch_id in range(num_epochs): + # 在每轮迭代开始之前,将训练数据的顺序随机打乱 + # 然后再按每次取batch_size条数据的方式取出 + np.random.shuffle(training_data) + # 将训练数据进行拆分,每个mini_batch包含batch_size条的数据 + mini_batches = [training_data[k:k + batch_size] for k in range(0, n, batch_size)] + for iter_id, mini_batch in enumerate(mini_batches): + # print(self.w.shape) + # print(self.b) + x = mini_batch[:, :-1] + y = mini_batch[:, -1:] + a = self.forward(x) + loss = self.loss(a, y) + gradient_w, gradient_b = self.gradient(x, y) + self.update(gradient_w, gradient_b, eta) + losses.append(loss) + print('Epoch {:3d} / iter {:3d}, loss = {:.4f}'. + format(epoch_id, iter_id, loss)) + + return losses + +# 获取数据 +# 从文件导入数据 +datafile = './housing.data' +housing_data = np.fromfile(datafile, sep=' ') +feature_names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE','DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV'] +feature_num = len(feature_names) +# 将原始数据进行Reshape,变成[N, 14]这样的形状 +housing_data = housing_data.reshape([housing_data.shape[0] // feature_num, feature_num]) + +features_max = housing_data.max(axis=0) +features_min = housing_data.min(axis=0) +features_avg = housing_data.sum(axis=0) / housing_data.shape[0] +def feature_norm(input): + f_size = input.shape + output_features = np.zeros(f_size, np.float32) + for batch_id in range(f_size[0]): + for index in range(13): + output_features[batch_id][index] = (input[batch_id][index] - features_avg[index]) / (features_max[index] - features_min[index]) + return output_features + +# 只对属性进行归一化 +housing_features = feature_norm(housing_data[:, :13]) +# print(feature_trian.shape) +housing_data = np.c_[housing_features, housing_data[:, -1]].astype(np.float32) +# 拆分训练数据 +ratio = 0.8 +offset = int(housing_data.shape[0] * ratio) +train_data = housing_data[:offset] +test_data = housing_data[offset:] + +# train_data, test_data = load_data() +x = train_data[:, :-1] +y = train_data[:, -1:] + +# 创建网络 +net = Network(13) +# 启动训练 +losses = net.train(train_data, num_epochs=50, batch_size=100, eta=0.1) + +# 画出损失函数的变化趋势 +plot_x = np.arange(len(losses)) +plot_y = np.array(losses) +plt.plot(plot_x, plot_y) +plt.show() + +np.save('../w.npy', net.w) +np.save('../b.npy', net.b) \ No newline at end of file diff --git a/backend/apps/algorithms/algorithm/other/image_detection/GPU_test.py b/backend/apps/algorithms/algorithm/other/image_detection/GPU_test.py new file mode 100644 index 0000000..403dc20 --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/image_detection/GPU_test.py @@ -0,0 +1,3 @@ +import torch +print(torch.cuda.is_available()) # 输出 True 表示支持 GPU +print(torch.cuda.get_device_name(0)) # 检查 GPU 名称 diff --git a/backend/apps/algorithms/algorithm/other/image_detection/__init__.py b/backend/apps/algorithms/algorithm/other/image_detection/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/image_detection/download_dataset.py b/backend/apps/algorithms/algorithm/other/image_detection/download_dataset.py new file mode 100644 index 0000000..379858b --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/image_detection/download_dataset.py @@ -0,0 +1,68 @@ +import os +import requests +from pycocotools.coco import COCO + + +def download_coco_dataset(output_dir, category_names): + """ + 从 COCO 数据集中下载指定类别的图像。 + + :param output_dir: 图像保存的目标文件夹 + :param category_names: 需要下载的类别列表,例如 ['fish', 'carp', 'salmon'] + """ + # 创建输出目录 + os.makedirs(output_dir, exist_ok=True) + + # 加载 COCO 数据集注释文件 + annotation_file = 'D:/project_space/coco/annotations_trainval2017/annotations/instances_train2017.json' + coco = COCO(annotation_file) + + # 下载每个类别的图片 + for category_name in category_names: + print(f"Processing category: {category_name}") + + # 获取类别 ID + cat_ids = coco.getCatIds(catNms=[category_name]) + if not cat_ids: + print(f"Category '{category_name}' not found in COCO dataset.") + continue + + # 获取图像 ID + img_ids = coco.getImgIds(catIds=cat_ids) + print(f"Found {len(img_ids)} images for category '{category_name}'.") + img_ids=img_ids[:2050] + # 下载图像 + for img_id in img_ids: + img_info = coco.loadImgs(img_id)[0] + img_url = img_info['coco_url'] + img_filename = os.path.join(output_dir, img_info['file_name']) + + # 检查是否已下载 + if not os.path.exists(img_filename): + img_data = requests.get(img_url).content + with open(img_filename, 'wb') as f: + f.write(img_data) + print(f"Downloaded: {img_info['file_name']}") + + print("Download completed.") + + +# 加载 COCO 注释文件 +# annotation_file = 'D:/project_space/coco/annotations_trainval2017/annotations/instances_train2017.json' +# coco = COCO(annotation_file) +# +# # 获取所有类别的名称 +# categories = coco.loadCats(coco.getCatIds()) +# category_names = [cat['name'] for cat in categories] +# +# print("Available categories in COCO dataset:") +# print(category_names) +# ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush'] + +# 示例调用 +download_coco_dataset( + output_dir='D:/project_space/animal_dataset/cat', + # category_names=['cat', 'dog', 'cow', 'sheep','horse'] + category_names=['cat'] +) + diff --git a/backend/apps/algorithms/algorithm/other/image_detection/image_detection.py b/backend/apps/algorithms/algorithm/other/image_detection/image_detection.py new file mode 100644 index 0000000..6286799 --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/image_detection/image_detection.py @@ -0,0 +1,178 @@ +import base64 +import json +import os +import tempfile +import time +from datetime import datetime + +import cv2 +from django.shortcuts import render +from rest_framework import status +from rest_framework.decorators import api_view, parser_classes +from rest_framework.parsers import MultiPartParser +from rest_framework.response import Response +from ultralytics import YOLO + +from .status_dict import status_dict + + +def object_defect(img_url, model_name): + try: + + predict_model = YOLO(model_name) + predict_model.overrides = { + 'save_txt': False, + 'save_conf': False, + 'save_crop': False, + 'show': False, + 'conf': 0.2 + } + + results = predict_model.predict(source=img_url, save=False) + pred_result = [] + + for result in results: + for data in result.boxes.data: + name_key = int(data[5]) + code = result.names.get(name_key) + name = status_dict.get(code, code) + one_box = { + 'code': code, + 'name': name, + 'score': round(data[4].tolist(), 2), + 'x1': int(data[0]), + 'y1': int(data[1]), + 'x2': int(data[2]), + 'y2': int(data[3]) + } + pred_result.append(one_box) + + result_json = { + 'image': get_detection_image(img_url, pred_result), + 'obj_list': pred_result, + 'time': datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') + } + + return json.dumps(result_json) + except Exception as e: + log_str = f'发生错误: {e}' + print(log_str) + return '{}' + + +def get_detection_image(img_url, pred_result): + # 读取原始图像 + img = cv2.imread(img_url) + + # 预设颜色数组 + preset_colors = [ + (0, 0, 255), # 红色 + (20, 20, 255), + (20, 40, 255), + (0, 60, 255), + (0, 80, 255), + (0, 100, 255), + (0, 120, 255), + (0, 140, 255), + (0, 160, 255), + (0, 180, 255), + (0, 200, 255), + (0, 220, 255), + (0, 255, 255), + ] + + # 创建颜色映射表,将类别映射到颜色 + category_colors = {} + + for i, obj in enumerate(pred_result): + category = obj['code'] + + # 如果该类别还没有颜色,从预设数组中获取颜色 + if category not in category_colors: + category_colors[category] = get_preset_color(i, preset_colors) + + x1, y1, x2, y2 = obj['x1'], obj['y1'], obj['x2'], obj['y2'] + + # 使用映射表中的颜色 + color = category_colors[category] + cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) + + # 获取文本框的宽度 + font = cv2.FONT_HERSHEY_SIMPLEX # 选择一个合适的圆润字体,可以根据实际情况调整 + + text = f"{category}-{obj['score']}" + (text_width, _), _ = cv2.getTextSize(text, font, 0.5, 1) + # 文本框底色为颜色 + cv2.rectangle(img, (x1, y1 - 20), (x1 + text_width, y1), color, -1) + # 文本显示 + # 使用cv2的字体列表查看可用字体 + cv2.putText(img, text, (x1, y1 - 5), font, 0.5, (255, 255, 255), 1) + + # 将图像转换为base64 + _, img_encoded = cv2.imencode('.jpg', img) + img_base64 = base64.b64encode(img_encoded.tobytes()).decode('utf-8') + return img_base64 + +def get_preset_color(index, preset_colors): + # 从预设颜色数组中获取颜色,循环使用 + return preset_colors[index % len(preset_colors)] + + +def get_file_extension(filename): + # 获取文件后缀,如果不是支持的后缀,则使用默认 ".jpg" + _, file_extension = os.path.splitext(filename) + if file_extension.lower() in ['.jpg', '.png']: + return file_extension.lower() + else: + return '.jpg' # 默认后缀 + +@api_view(['POST']) +@parser_classes([MultiPartParser]) +def get_imagedetect_result(request): + # 检查请求中是否包含文件 + if 'image' not in request.data: + return Response({'error': 'No image file provided'}, status=status.HTTP_400_BAD_REQUEST) + + # 获取上传的图片文件 + image_file = request.data['image'] + + try: + # 创建临时文件,确保在with块结束时会自动删除 + with tempfile.NamedTemporaryFile(delete=False, suffix=get_file_extension(image_file.name)) as temp_file: + temp_file_path = temp_file.name + + # 将上传的图片内容写入临时文件 + temp_file.write(image_file.read()) + + # 获取检测类型 + detection_type = request.data['type'] + model_name = 'yolov8n' # 默认值 + + if detection_type == '01': + model_name = 'yolov8x' + elif detection_type == '02': + model_name = 'defect_detection' + elif detection_type == '03': + model_name = 'ryxw' + + current_dir = os.path.dirname(os.path.abspath(__file__)) + model_path = os.path.join(current_dir, "models", f"{model_name}.pt") + + # 进行图片检测 + result = object_defect(temp_file_path, model_path) + + # 返回检测结果 + return Response(result) + finally: + # 在finally块中确保删除临时文件,无论发生什么情况 + os.remove(temp_file_path) + + + +def detect_image_view(request): + return render(request, 'image_detect.html') + +if __name__ == '__main__': + img_url = 'D:/ImageDetect/dataset/ryxw20231117/train/images/08550f43-bc3a-4656-882a-023380d35b9b.jpg' + model_name = 'yolov8n' + object_defect(img_url, model_name) diff --git a/backend/apps/algorithms/algorithm/other/image_detection/model_export.py b/backend/apps/algorithms/algorithm/other/image_detection/model_export.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/image_detection/status_dict.py b/backend/apps/algorithms/algorithm/other/image_detection/status_dict.py new file mode 100644 index 0000000..345e62f --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/image_detection/status_dict.py @@ -0,0 +1,53 @@ +status_dict = { + "sly_dmyw": "渗漏油_地面油污", + "sly_bjbmyw": "渗漏油_部件表面油污", + "pzqcd": "膨胀器冲顶", + "jyhbx": "均压环变形", + "drqgd": "电容器鼓肚", + "jyz_pl": "绝缘子_破损", + "yxdgsg": "引线断股松股", + "jdyxxsd": "接地引下线松动", + "jsxs_ddjt": "金属锈蚀_导电接头", + "jsxs_ddyx": "金属锈蚀_导电引线", + "jsxs_jdyxx": "金属锈蚀_接地引下线", + "jsxs_ecjxh": "金属锈蚀_二次接线盒", + "hzyw": "设备烟火", + "bmwh": "表面污秽", + "ws_ywyc": "瓦斯油位异常", + "ws_ywzc": "瓦斯油位正常", + "yljdq_flow": "油流继电器_流动", + "yljdq_stop": "油流继电器_停止", + "fhz_f": "分合闸_分", + "fhz_h": "分合闸_合", + "fhz_ztyc": "分合闸_状态异常", + "hxq_gjbs": "呼吸器硅胶变色", + "hxq_gjzc": "呼吸器_硅胶正常", + "hxq_gjtps": "呼吸器_硅胶桶破损", + "hxq_yfps": "呼吸器油_封破损", + "ywzt_yfyc": "油位状态_油封异常", + "ywzt_yfzc": "油位状态_油封正常", + "bjzc": "表计正常", + "bj_wkps": "表计_外壳破损", + "bj_bpps": "表计_表盘破损", + "bj_bpmh": "表计_表盘模糊", + "bjdsyc_zz": "指针表表计读数异常", + "bjdsyc_sx": "数显表表计读数异常", + "gcc_mh": "观察窗_模糊", + "gcc_ps": "观察窗_破损", + "xmbhyc": "箱门闭合异常", + "xmbhzc": "箱门闭合正常", + "yw_nc": "异物_鸟巢", + "yw_gkxfw": "异物_挂空悬浮物", + "kgg_ybf": "开关柜_压板分", + "kgg_ybh": "开关柜_压板合", + "kk_f": "空开_分", + "kk_h": "空开_合", + "zsd_l": "指示灯_亮", + "zsd_m": "指示灯_灭", + "mbhp": "面板花屏", + "wcgz": "未穿工装", + "gzzc": "工装正常", + "wcaqm": "未穿安全帽", + "aqmzc": "安全帽正常", + "xy": "吸烟", +} diff --git a/backend/apps/algorithms/algorithm/other/image_detection/tensorflow.py b/backend/apps/algorithms/algorithm/other/image_detection/tensorflow.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/image_detection/yolo_detectimage.py b/backend/apps/algorithms/algorithm/other/image_detection/yolo_detectimage.py new file mode 100644 index 0000000..6f37a8c --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/image_detection/yolo_detectimage.py @@ -0,0 +1,127 @@ +import base64 +import json +import os +from datetime import datetime +import cv2 +from ultralytics import YOLO + + +class YoloDetector: + def __init__(self, model_path: str, image_path: str,category_names:str, conf_threshold: float = 0.2): + self.model_path = model_path + self.image_path = image_path + self.category_names=category_names; + self.conf_threshold = conf_threshold + self.model = YOLO(model_path) + self.model.overrides = { + 'save_txt': False, + 'save_conf': False, + 'save_crop': False, + 'show': False, + 'conf': self.conf_threshold + } + + def detect(self): + try: + # 进行检测 + results = self.model.predict(source=self.image_path, save=False) + pred_result = self.parse_detection_results(results) + + # 获取带标注的图像 + detection_image = self.get_detection_image(pred_result) + + result_json = { + 'image': detection_image, + 'obj_list': pred_result, + 'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S') + } + + return json.dumps(result_json) + + except Exception as e: + print(f"Error during detection: {e}") + return json.dumps({'error': str(e)}) + + def parse_detection_results(self, results): + pred_result = [] + for result in results: + for data in result.boxes.data: + name_key = int(data[5]) + code = result.names.get(name_key) + if code in category_names: + one_box = { + 'code': code, + 'score': round(data[4].tolist(), 2), + 'x1': int(data[0]), + 'y1': int(data[1]), + 'x2': int(data[2]), + 'y2': int(data[3]) + } + pred_result.append(one_box) + return pred_result + + def get_detection_image(self, pred_result): + img = cv2.imread(self.image_path) + + preset_colors = [ + (0, 0, 255), (20, 20, 255), (20, 40, 255), (0, 60, 255), (0, 80, 255), + (0, 100, 255), (0, 120, 255), (0, 140, 255), (0, 160, 255), (0, 180, 255), + (0, 200, 255), (0, 220, 255), (0, 255, 255), + ] + + category_colors = {} + for i, obj in enumerate(pred_result): + category = obj['code'] + if category not in category_colors: + category_colors[category] = self.get_preset_color(i, preset_colors) + + x1, y1, x2, y2 = obj['x1'], obj['y1'], obj['x2'], obj['y2'] + color = category_colors[category] + cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) + + font = cv2.FONT_HERSHEY_SIMPLEX + text = f"{category}-{obj['score']}" + (text_width, _), _ = cv2.getTextSize(text, font, 0.5, 1) + cv2.rectangle(img, (x1, y1 - 20), (x1 + text_width, y1), color, -1) + cv2.putText(img, text, (x1, y1 - 5), font, 0.5, (255, 255, 255), 1) + + _, img_encoded = cv2.imencode('.jpg', img) + img_base64 = base64.b64encode(img_encoded.tobytes()).decode('utf-8') + return img_base64 + + def get_preset_color(self, index, preset_colors): + return preset_colors[index % len(preset_colors)] + + +# __main__ 方法 +if __name__ == '__main__': + img_dir = 'D:/project_space/animal_dataset' + output_dir = 'D:/project_space/animal_detect' + model_path = '/yolo11x.pt' + category_names=['cat', 'dog', 'cow', 'sheep','horse'] + os.makedirs(output_dir, exist_ok=True) # 创建输出目录 + + # 遍历输入目录下的所有图片 + for img_name in os.listdir(img_dir): + img_path = os.path.join(img_dir, img_name) + if not img_name.lower().endswith(('.jpg', '.jpeg', '.png')): + continue # 跳过非图片文件 + + # 初始化检测器 + detector = YoloDetector(model_path=model_path, image_path=img_path,category_names=category_names) + + # 检测并获取结果 + result_json = detector.detect() + result_data = json.loads(result_json) + + # 保存检测结果图像 + if 'image' in result_data: + output_path = os.path.join(output_dir, img_name) + img_data = base64.b64decode(result_data['image']) # 解码 Base64 + with open(output_path, 'wb') as f: + f.write(img_data) + print(f"保存检测结果到: {output_path}") + else: + print(f"检测失败: {img_name}, 错误信息: {result_data.get('error', '未知错误')}") + + print("所有图片检测完成!") diff --git a/backend/apps/algorithms/algorithm/other/time_trend_forecast/__init__.py b/backend/apps/algorithms/algorithm/other/time_trend_forecast/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/other/time_trend_forecast/dataset/timeserise.csv b/backend/apps/algorithms/algorithm/other/time_trend_forecast/dataset/timeserise.csv new file mode 100644 index 0000000..d78cb7d --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/time_trend_forecast/dataset/timeserise.csv @@ -0,0 +1,145 @@ +X1,X2 +0,112.0,265.0 +1,118.0,288.0 +2,132.0,333.0 +3,129.0,337.0 +4,121.0,305.0 +5,135.0,242.0 +6,148.0,315.0 +7,148.0,386.0 +8,136.0,291.0 +9,119.0,300.0 +10,104.0,198.0 +11,118.0,228.0 +12,115.0,347.0 +13,126.0,327.0 +14,141.0,285.0 +15,135.0,268.0 +16,125.0,310.0 +17,149.0,234.0 +18,170.0,192.0 +19,170.0,303.0 +20,158.0,302.0 +21,133.0,217.0 +22,114.0,240.0 +23,140.0,287.0 +24,145.0,279.0 +25,150.0,289.0 +26,178.0,262.0 +27,163.0,244.0 +28,172.0,336.0 +29,178.0,249.0 +30,199.0,303.0 +31,199.0,330.0 +32,184.0,371.0 +33,162.0,221.0 +34,146.0,245.0 +35,166.0,236.0 +36,171.0,304.0 +37,180.0,251.0 +38,193.0,286.0 +39,181.0,191.0 +40,183.0,244.0 +41,218.0,228.0 +42,230.0,205.0 +43,242.0,338.0 +44,209.0,229.0 +45,191.0,234.0 +46,172.0,275.0 +47,194.0,269.0 +48,196.0,229.0 +49,196.0,310.0 +50,236.0,301.0 +51,235.0,347.0 +52,229.0,273.0 +53,243.0,215.0 +54,264.0,315.0 +55,272.0,239.0 +56,237.0,267.0 +57,211.0,293.0 +58,180.0,319.0 +59,201.0,309.0 +60,204.0,224.0 +61,188.0,409.0 +62,235.0,233.0 +63,227.0,309.0 +64,234.0,302.0 +65,264.0,399.0 +66,302.0,217.0 +67,293.0,264.0 +68,259.0,287.0 +69,229.0,258.0 +70,203.0,177.0 +71,229.0,263.0 +72,242.0,358.0 +73,233.0,307.0 +74,267.0,269.0 +75,269.0,318.0 +76,270.0,263.0 +77,315.0,273.0 +78,364.0,270.0 +79,347.0,342.0 +80,312.0,295.0 +81,274.0,347.0 +82,237.0,237.0 +83,278.0,258.0 +84,284.0,270.0 +85,277.0,361.0 +86,317.0,273.0 +87,313.0,351.0 +88,318.0,234.0 +89,374.0,377.0 +90,413.0,255.0 +91,405.0,338.0 +92,355.0,433.0 +93,306.0,297.0 +94,271.0,388.0 +95,306.0,330.0 +96,315.0,242.0 +97,301.0,286.0 +98,356.0,291.0 +99,348.0,207.0 +100,355.0,147.0 +101,422.0,188.0 +102,465.0,332.0 +103,467.0,347.0 +104,404.0,305.0 +105,347.0,358.0 +106,305.0,227.0 +107,336.0,296.0 +108,340.0,280.0 +109,318.0,307.0 +110,362.0,235.0 +111,348.0,294.0 +112,363.0,254.0 +113,435.0,263.0 +114,491.0,201.0 +115,505.0,193.0 +116,404.0,259.0 +117,359.0,347.0 +118,310.0,323.0 +119,337.0,276.0 +120,360.0,346.0 +121,342.0,216.0 +122,406.0,231.0 +123,396.0,220.0 +124,420.0,326.0 +125,472.0,232.0 +126,548.0,325.0 +127,559.0,324.0 +128,463.0,254.0 +129,407.0,223.0 +130,362.0,338.0 +131,405.0,333.0 +132,417.0,206.0 +133,391.0,248.0 +134,419.0,393.0 +135,461.0,227.0 +136,472.0,245.0 +137,535.0,268.0 +138,622.0,288.0 +139,606.0,201.0 +140,508.0,275.0 +141,461.0,349.0 +142,390.0,333.0 +143,432.0,339.0 diff --git a/backend/apps/algorithms/algorithm/other/time_trend_forecast/model_predict.py b/backend/apps/algorithms/algorithm/other/time_trend_forecast/model_predict.py new file mode 100644 index 0000000..7d8bd0a --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/time_trend_forecast/model_predict.py @@ -0,0 +1,94 @@ +import base64 +import io +import pickle + +import matplotlib + +matplotlib.rcParams['axes.unicode_minus']=False +import seaborn as sns +sns.set(font= "Kaiti",style="ticks",font_scale=1.4) +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.metrics import mean_absolute_error +## 忽略提醒 +import warnings +warnings.filterwarnings("ignore") + +def load_dataset(): + file_path = f'dataset/timeserise.csv' + df = pd.read_csv(file_path) + train = pd.DataFrame(df["X1"][0:120]) + test = pd.DataFrame(df["X1"][120:]) + all=df["X1"] + return train,test,all + +def preview_dataset(train,test): + ## 可视化出预测结果 + plt.figure(figsize=(14, 7)) + train["X1"].plot(figsize=(14, 7), label="训练数据") + test["X1"].plot(label="测试数据") + plt.legend() + plt.grid() + plt.title("某机场乘客流量变动趋势(训练和测试数据集[80:20])") + plt.show() + +def model_predict(train,test): + model_filename = f'models/trained_model.pkl' + with open(model_filename, 'rb') as model_file: + model = pickle.load(model_file) + + ## 可视化自动搜索参数获得的SARIMA(2, 0, 0)x(0, 1, 0, 12)对测试集进行预测 + pre, conf = model.predict(n_periods=24, alpha=0.05, + return_conf_int=True) + + ## 可视化SARIMAX(2, 0, 0)x(0, 1, 0, 12)的预测结果,整理数据 + y_hat = test.copy(deep=False) + y_hat["sarima_pre"] = pre + y_hat["sarima_pre_lower"] = conf[:, 0] + y_hat["sarima_pre_upper"] = conf[:, 1] + ## 可视化出预测结果 + plt.figure(figsize=(14, 7)) + train["X1"].plot(figsize=(14, 7), label="X1 train") + test["X1"].plot(label="X1 test") + y_hat["sarima_pre"].plot(style="g--o", lw=2, label="SARIMA") + ## 可视化出置信区间 + plt.fill_between(y_hat.index, y_hat["sarima_pre_lower"], + y_hat["sarima_pre_upper"], color='k', alpha=.15, + label="95%置信区间") + plt.legend() + plt.grid() + plt.title("某机场乘客流量变动趋势预测[测试集:20%]") + plt.show() + print("SARIMA模型预测的绝对值误差:",mean_absolute_error(test["X1"],y_hat["sarima_pre"])) + # 将图像捕获为内存中的二进制流 + # img_stream = io.BytesIO() + # plt.savefig(img_stream, format='png') + # img_stream.seek(0) + # # 将二进制流转换为base64编码 + # img_base64 = base64.b64encode(img_stream.read()).decode('utf-8') + # return img_base64 + return 0 + +# @api_view(['GET']) +# @parser_classes([MultiPartParser]) +# def get_timepredict_result(request): +# # 1、加载数据集 +# train, test, _ = load_dataset() +# # 2、调用模型进行预测 +# img_base64 = model_predict(train, test) +# result_json = { +# 'image': img_base64, +# 'time': datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') +# } +# return Response(json.dumps(result_json)) +# +# def time_predict_view(request): +# return render(request, 'time_predict.html') + +if __name__ == '__main__': + # 1、加载数据集 + train, test,_=load_dataset() + # 2、调用模型进行预测 + img_base64=model_predict(train,test) + print(img_base64) + diff --git a/backend/apps/algorithms/algorithm/other/time_trend_forecast/model_train.py b/backend/apps/algorithms/algorithm/other/time_trend_forecast/model_train.py new file mode 100644 index 0000000..4e8b86b --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/time_trend_forecast/model_train.py @@ -0,0 +1,87 @@ +import pickle + +import matplotlib +matplotlib.rcParams['axes.unicode_minus']=False +import seaborn as sns +sns.set(font= "Kaiti",style="ticks",font_scale=1.4) +import pandas as pd +import matplotlib.pyplot as plt +from statsmodels.tsa.stattools import * +import statsmodels.api as sm +import pmdarima as pm +## 忽略提醒 +import warnings +warnings.filterwarnings("ignore") + +def load_dataset(): + file_path = 'dataset/timeserise.csv' + df = pd.read_csv(file_path) + train = pd.DataFrame(df["X1"][0:120]) + test = pd.DataFrame(df["X1"][120:]) + all=df["X1"] + return train,test,all + +def preview_dataset(train,test): + ## 可视化出预测结果 + plt.figure(figsize=(14, 7)) + train["X1"].plot(figsize=(14, 7), label="训练数据") + test["X1"].plot(label="测试数据") + plt.legend() + plt.grid() + plt.title("某机场乘客流量变动趋势(训练和测试数据集[80:20])") + plt.show() + +def white_noise_test(series, lags): + LB = sm.stats.diagnostic.acorr_ljungbox(series, lags=lags, return_df=True) + print("序列检验结果:\n", LB) + +def time_series_decomposition(series, decomposition_type): + X1_decomp = pm.arima.decompose(series.values, decomposition_type, m=12) + ax = pm.utils.decomposed_plot(X1_decomp, figure_kwargs={"figsize": (10, 6)}, show=False) + ax[0].set_title(f"机场客流量数据季节性趋势模型分解[{decomposition_type}]") + plt.show() + +def difference_stationarity_test(series): + diff_series = series.diff().dropna() + dftest = adfuller(diff_series, autolag='BIC') + dfoutput = pd.Series(dftest[0:4], index=['adf', 'p-value', 'usedlag', 'Number of Observations Used']) + print("一阶差分单位根检验结果:\n", dfoutput) + + +def kpss_stationarity_test_diff(series_diff): + dfkpss = kpss(series_diff) + dfoutput = pd.Series(dfkpss[0:3], index=["kpss_stat", " p-value", " usedlag"]) + print("一阶差分KPSS检验结果:\n", dfoutput) + +def train_model(train): + ## 针对模型自动寻找合适的参数 + model = pm.auto_arima(train["X1"].values, + start_p=1, start_q=1, # p,q的开始值 + max_p=12, max_q=12, # 最大的p和q + test="kpss", # 使用kpss检验确定d + d=None, # 自动选择合适的d + m=12, # 序列的周期 + seasonal=True, # 有季节性趋势 + start_P=0, start_Q=0, # P,Q的开始值 + max_P=5, max_Q=5, # 最大的P和Q + D=None, # 自动选择合适的D + trace=True, error_action='ignore', + suppress_warnings=True, stepwise=True) + print(model.summary()) + # 将训练好的模型保存到文件 + model_filename= f'models/trained_model.pkl' + with open(model_filename, 'wb') as model_file: + pickle.dump(model, model_file) + return model + +if __name__ == '__main__': + # 1、加载数据集 + train, test,all=load_dataset() + # 2、预览数据集 + preview_dataset(train, test) + # 3、数据白噪声测试,是否自相关,如果不相关(无内在规律,则不能预测) + white_noise_test(all, lags=[4, 8, 16, 32,64,128]) + # 4、时间序列分解 + time_series_decomposition(all, "multiplicative") + # 5、训练模型,获取最优参数 + model=train_model(train) diff --git a/backend/apps/algorithms/algorithm/other/time_trend_forecast/models/trained_model.pkl b/backend/apps/algorithms/algorithm/other/time_trend_forecast/models/trained_model.pkl new file mode 100644 index 0000000..2c6ceb0 Binary files /dev/null and b/backend/apps/algorithms/algorithm/other/time_trend_forecast/models/trained_model.pkl differ diff --git a/backend/apps/algorithms/algorithm/other/time_trend_forecast/time_example.py b/backend/apps/algorithms/algorithm/other/time_trend_forecast/time_example.py new file mode 100644 index 0000000..fa24882 --- /dev/null +++ b/backend/apps/algorithms/algorithm/other/time_trend_forecast/time_example.py @@ -0,0 +1,176 @@ + +import matplotlib +matplotlib.rcParams['axes.unicode_minus']=False +import seaborn as sns +sns.set(font= "Kaiti",style="ticks",font_scale=1.4) +import pandas as pd +import matplotlib.pyplot as plt +from statsmodels.tsa.stattools import * +import statsmodels.api as sm +from statsmodels.graphics.tsaplots import plot_acf, plot_pacf +import pmdarima as pm +## 忽略提醒 +import warnings +warnings.filterwarnings("ignore") + + +## (1) 加载显示数据源,读取时间序列数据,该数据包含:X1为飞机乘客数据,X2为一组随机数据 +df = pd.read_csv('dataset/timeserise.csv') +## 查看数据的变化趋势 +# df.plot(kind = "line",figsize = (10,6)) +# plt.grid() +# plt.title("时序数据") +## plt.show() + +## (2)序列的白噪声检测 +## 该检验用来检查序列是否为随机序列,如果是随机序列,那它们的值之间没有任何关系 +## 使用LB检验来检验序列是否为白噪声,原假设为在延迟期数内序列之间相互独立。 +## 如果P值小于0.05,说明序列之间不独立,不是白噪声 +# lags = [4,8,16,32] +# LB = sm.stats.diagnostic.acorr_ljungbox(df["X1"],lags = lags,return_df = True) +# print("序列X1的检验结果:\n",LB) +# +# ## (3)序列的平稳性检测 +# # 序列的单位根检验,即检验序列的平稳性 +# dftest = adfuller(df["X1"],autolag='BIC') +# dfoutput = pd.Series(dftest[0:4], index=['adf','p-value','usedlag','Number of Observations Used']) +# print("X1单位根检验结果:\n",dfoutput) +# +# ## (4)一阶差分后的平稳性检测 +# ## 对X1进行一阶差分后的序列进行检验:一阶差分后 P值大于0.05, 小于0.1,可以认为其是平稳的 +# X1diff = df["X1"].diff().dropna() +# dftest = adfuller(X1diff,autolag='BIC') +# dfoutput = pd.Series(dftest[0:4], index=['adf','p-value','usedlag','Number of Observations Used']) +# print("X1一阶差分单位根检验结果:\n",dfoutput) +# +# +# ## (5)序列KPSS平稳性检测 +# ## KPSS检验的原假设为:序列x是平稳的。 +# +# ## 对序列X1使用KPSS检验平稳性 +# dfkpss = kpss(df["X1"]) +# dfoutput = pd.Series(dfkpss[0:3], index=["kpss_stat"," p-value"," usedlag"]) +# print("X1 KPSS检验结果:\n",dfoutput) +# ## 拒绝序列平稳的原假设 +# +# ## 对序列X1使用KPSS检验平稳性 +# dfkpss = kpss(X1diff) +# dfoutput = pd.Series(dfkpss[0:3], index=["kpss_stat"," p-value"," usedlag"]) +# print("X1一阶差分KPSS检验结果:\n",dfoutput) +# +# ## (6)检验ARIMA模型的参数d +# ## 序列KPSS平稳性检测 接受序列平稳的原假设 +# X1d = pm.arima.ndiffs(df["X1"], alpha=0.05, test="kpss", max_d=3) +# print("使用KPSS方法对序列X1的参数d取值进行预测,d = ",X1d) +# +# X1diffd = pm.arima.ndiffs(X1diff, alpha=0.05, test="kpss", max_d=3) +# print("使用KPSS方法对序列X1一阶差分后的参数d取值进行预测,d = ",X1diffd) +# +# +# ## (7)检验SARIMA模型的参数季节阶数D +# X1d = pm.arima.nsdiffs(df["X1"], 12, max_D=2) +# print("对序列X1的季节阶数D取值进行预测,D = ",X1d) +# +# X1diffd = pm.arima.nsdiffs(X1diff, 12, max_D=2) +# print("序列X1一阶差分后的季节阶数D取值进行预测,D = ",X1diffd) +# +# ## 对非随机序列X1进行自相关和偏相关分析可视化 +# fig = plt.figure(figsize=(16,5)) +# plt.subplot(1,3,1) +# plt.plot(df["X1"],"r-") +# plt.grid() +# plt.title("X1序列波动") +# ax = fig.add_subplot(1,3,2) +# plot_acf(df["X1"], lags=60,ax = ax) +# plt.grid() +# ax = fig.add_subplot(1,3,3) +# plot_pacf(df["X1"], lags=60,ax = ax) +# plt.ylim([-1,1]) +# plt.grid() +# plt.tight_layout() +# ## plt.show() +# +# ## 对非随机序列X1一阶差分后的序列进行自相关和偏相关分析可视化 +# fig = plt.figure(figsize=(16,5)) +# plt.subplot(1,3,1) +# plt.plot(X1diff,"r-") +# plt.grid() +# plt.title("X1序列一阶差分后波动") +# ax = fig.add_subplot(1,3,2) +# plot_acf(X1diff, lags=60,ax = ax) +# plt.grid() +# ax = fig.add_subplot(1,3,3) +# plot_pacf(X1diff, lags=60,ax = ax) +# plt.grid() +# plt.tight_layout() +# ## plt.show() +# +# ## 时间序列的分解 +# ## 通过观察序列X1,可以发现其既有上升的趋势,也有周期性的趋势,所以可以将该序列进行分解 +# ## 使用乘法模型分解结果(通常适用于有增长趋势的序列) +# X1decomp = pm.arima.decompose(df["X1"].values,"multiplicative", m=12) +# ## 可视化出分解的结果 +# ax = pm.utils.decomposed_plot(X1decomp,figure_kwargs = {"figsize": (10, 6)}, +# show=False) +# ax[0].set_title("乘法模型分解结果") +# ## plt.show() +# +# ## 使用加法模型分解结果(通常适用于平稳趋势的序列) +# X1decomp = pm.arima.decompose(X1diff.values,"additive", m=12) +# ## 可视化出分解的结果 +# ax = pm.utils.decomposed_plot(X1decomp,figure_kwargs = {"figsize": (10, 6)}, +# show=False) +# ax[0].set_title("加法模型分解结果") +# plt.show() + +## 使用可以拟合周期性的SARIMA模型进行建模 +## 数据准备 +## 对序列X1进行切分,后面的24个数据用于测试集 +train = pd.DataFrame(df["X1"][0:120]) +test = pd.DataFrame(df["X1"][120:]) +# ## 可视化切分后的数据 +# train["X1"].plot(figsize=(14,7), title= "乘客数量数据",label = "X1 train") +# test["X1"].plot(label = "X1 test") +# plt.legend() +# plt.grid() +# plt.show() + +## 针对模型自动寻找合适的参数 +model = pm.auto_arima(train["X1"].values, + start_p=1, start_q=1, # p,q的开始值 + max_p=12, max_q=12, # 最大的p和q + test="kpss", # 使用kpss检验确定d + d = None, # 自动选择合适的d + m=12, # 序列的周期 + seasonal=True, # 有季节性趋势 + start_P = 0,start_Q = 0, # P,Q的开始值 + max_P=5, max_Q=5, # 最大的P和Q + D = None, # 自动选择合适的D + trace=True,error_action='ignore', + suppress_warnings=True, stepwise=True) + +print(model.summary()) + +## 可视化自动搜索参数获得的SARIMA(2, 0, 0)x(0, 1, 0, 12)对测试集进行预测 +pre, conf = model.predict(n_periods=24, alpha=0.05, + return_conf_int=True) + +## 可视化SARIMAX(2, 0, 0)x(0, 1, 0, 12)的预测结果,整理数据 +y_hat = test.copy(deep = False) +y_hat["sarima_pre"] = pre +y_hat["sarima_pre_lower"] = conf[:,0] +y_hat["sarima_pre_upper"] = conf[:,1] +## 可视化出预测结果 +plt.figure(figsize=(14,7)) +train["X1"].plot(figsize=(14,7),label = "X1 train") +test["X1"].plot(label = "X1 test") +y_hat["sarima_pre"].plot(style="g--o", lw=2,label="SARIMA") +## 可视化出置信区间 +plt.fill_between(y_hat.index, y_hat["sarima_pre_lower"], + y_hat["sarima_pre_upper"],color='k',alpha=.15, + label = "95%置信区间") +plt.legend() +plt.grid() +plt.title("SARIMA(2,0,0)x(0,1,0,12)模型") +plt.show() + diff --git a/backend/apps/algorithms/algorithm/pytorch/DeeplabReporter.py b/backend/apps/algorithms/algorithm/pytorch/DeeplabReporter.py new file mode 100644 index 0000000..749a85f --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/DeeplabReporter.py @@ -0,0 +1,93 @@ +import base64 +import os +from datetime import datetime + + +class DeeplabReporter: + def __init__(self, project_path: str, train_name: str = "train_name"): + self.project_path = project_path + self.train_name = train_name + + @staticmethod + def image_to_base64(image_path: str) -> str: + if not os.path.exists(image_path): + return "" + with open(image_path, "rb") as f: + return base64.b64encode(f.read()).decode("utf-8") + + def generate_report( + self, + dataset_name: str, + model_name: str, + training_epochs: str, + training_duration: str, + num_classes: int, + best_val_loss: float, + image_urls: dict, + ): + html_template = """ + + + + + + 语义分割模型训练报告 + + + +

+

{{train_name}}-训练结果评估报告

+

1.训练摘要

+
报告标题:{{train_name}}
+
生成日期:{{report_date}}
+
模型名称:{{model_name}}
+
训练数据集:{{dataset_name}}
+
类别数:{{num_classes}}
+
训练轮次:{{training_epochs}}
+
训练时长:{{training_duration}}
+
最优验证损失:{{best_val_loss}}
+
+
+

2.训练结果图片

+
+

2.1 Loss 曲线

+ Loss 曲线 +
+
+
+

由系统自动生成 - 语义分割训练报告

+
+ + +""" + report_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + loss_graph_base64 = self.image_to_base64(image_urls.get("loss_graph", "")) if image_urls else "" + html_content = ( + html_template.replace("{{train_name}}", str(self.train_name)) + .replace("{{report_date}}", str(report_date)) + .replace("{{model_name}}", str(model_name)) + .replace("{{dataset_name}}", str(dataset_name)) + .replace("{{num_classes}}", str(num_classes)) + .replace("{{training_epochs}}", str(training_epochs)) + .replace("{{training_duration}}", str(training_duration)) + .replace("{{best_val_loss}}", str(best_val_loss)) + .replace("{{loss_graph_base64}}", loss_graph_base64) + ) + os.makedirs(self.project_path, exist_ok=True) + report_path = os.path.join(self.project_path, "train_report.html") + with open(report_path, "w", encoding="utf-8") as f: + f.write(html_content) + try: + os.chmod(report_path, 0o777) + except Exception: + pass + return report_path + diff --git a/backend/apps/algorithms/algorithm/pytorch/DeeplabTrainer.py b/backend/apps/algorithms/algorithm/pytorch/DeeplabTrainer.py new file mode 100644 index 0000000..05b87a7 --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/DeeplabTrainer.py @@ -0,0 +1,318 @@ +import argparse +import glob +import json +import os +import sys + +import numpy as np +import torch +import torch.nn as nn +from PIL import Image +from torch.utils.data import DataLoader, Dataset +from torchvision.models.segmentation import DeepLabV3_ResNet50_Weights, deeplabv3_resnet50 +from torchvision.transforms import functional as F + +current_dir = os.path.dirname(os.path.abspath(__file__)) +project_root = os.path.abspath(os.path.join(current_dir, "../../../../")) +def _setup_django(): + if project_root not in sys.path: + sys.path.append(project_root) + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") + import django + + django.setup() + from django.conf import settings + from django.shortcuts import get_object_or_404 + from django.utils.timezone import now + + from apps.core.models import AiAlgorithm, AiAlgorithmClass, AiAlgorithmTrainRecords + + return settings, get_object_or_404, now, AiAlgorithm, AiAlgorithmClass, AiAlgorithmTrainRecords + +try: + from .DeeplabReporter import DeeplabReporter +except Exception: + from apps.algorithms.algorithm.pytorch.DeeplabReporter import DeeplabReporter + + +def _emit(payload): + print(json.dumps(payload, ensure_ascii=False)) + + +class RoadSegDataset(Dataset): + def __init__(self, root, split="train", size=640): + self.root = root + self.split = split + self.size = int(size) if size else None + self.images_dir = os.path.join(root, "images", split) + self.masks_dir = os.path.join(root, "masks", split) + self.images = [] + for ext in ("*.jpg", "*.jpeg", "*.png", "*.bmp"): + self.images.extend(glob.glob(os.path.join(self.images_dir, ext))) + self.images = sorted(self.images) + + def __len__(self): + return len(self.images) + + def __getitem__(self, idx): + img_path = self.images[idx] + name = os.path.splitext(os.path.basename(img_path))[0] + mask_path = os.path.join(self.masks_dir, f"{name}.png") + img = Image.open(img_path).convert("RGB") + mask = Image.open(mask_path) + if self.size: + img = F.resize(img, [self.size, self.size]) + mask = F.resize(mask, [self.size, self.size], interpolation=F.InterpolationMode.NEAREST) + img_t = F.to_tensor(img) + mask_arr = np.array(mask, dtype=np.int64) + mask_t = torch.from_numpy(mask_arr).long() + return img_t, mask_t + + +def freeze_bn(module): + if isinstance(module, nn.BatchNorm2d): + module.eval() + module.requires_grad_(False) + + +def evaluate(model, loader, device, criterion): + model.eval() + total_loss = 0.0 + count = 0 + with torch.no_grad(): + for images, masks in loader: + images = images.to(device, non_blocking=True) + masks = masks.to(device, non_blocking=True) + outputs = model(images) + loss = criterion(outputs["out"], masks) + total_loss += float(loss.item()) + count += 1 + return total_loss / max(1, count) + + +def _save_loss_plot(out_path, train_losses, val_losses): + try: + import matplotlib.pyplot as plt + except Exception: + return False + x = list(range(1, len(train_losses) + 1)) + plt.figure(figsize=(10, 5)) + plt.plot(x, train_losses, label="train") + plt.plot(x, val_losses, label="val") + plt.xlabel("epoch") + plt.ylabel("loss") + plt.legend() + plt.tight_layout() + plt.savefig(out_path) + plt.close() + try: + os.chmod(out_path, 0o777) + except Exception: + pass + return True + + +def parse_args(): + p = argparse.ArgumentParser() + p.add_argument("--data", type=str, required=True) + p.add_argument("--project_path", type=str, required=True) + p.add_argument("--run_name", type=str, default="train") + p.add_argument("--epochs", type=int, default=50) + p.add_argument("--batch", type=int, default=4) + p.add_argument("--imgsz", type=int, default=640) + p.add_argument("--workers", type=int, default=4) + p.add_argument("--device", type=str, default="cpu") + p.add_argument("--lr_backbone", type=float, default=1e-4) + p.add_argument("--lr_head", type=float, default=1e-3) + p.add_argument("--weight_decay", type=float, default=1e-4) + p.add_argument("--trainid", type=str, default="0") + p.add_argument("--pretrained", type=str, default="1") + p.add_argument("--torch_home", type=str, default="") + p.add_argument("--pretrained_weights", type=str, default="") + return p.parse_args() + + +def main(): + try: + settings, get_object_or_404, now, AiAlgorithm, AiAlgorithmClass, AiAlgorithmTrainRecords = _setup_django() + args = parse_args() + if args.torch_home: + torch_home = os.path.abspath(os.path.expanduser(str(args.torch_home))) + os.makedirs(torch_home, exist_ok=True) + os.environ["TORCH_HOME"] = torch_home + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=args.trainid) + train_params = json.loads(ai_train.train_params) if ai_train.train_params else [] + train_labels = json.loads(ai_train.train_labels) if ai_train.train_labels else [] + + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join(filespace_root_path, ai_algorithm_class.classcode, ai_algorithm.algorithm_code, "trains", ai_train.train_code) + + run_name = args.run_name + project_path = args.project_path + weights_dir = os.path.join(project_path, run_name, "weights") + os.makedirs(weights_dir, exist_ok=True) + + label_map_path = os.path.join(args.data, "label_map.json") + if os.path.exists(label_map_path): + with open(label_map_path, "r", encoding="utf-8") as f: + label_map = json.loads(f.read()) + else: + label_map = {"background": 0} + idx = 1 + for it in train_labels: + lab = str(it.get("label") or "").strip() if isinstance(it, dict) else "" + if lab and lab not in label_map: + label_map[lab] = idx + idx += 1 + with open(label_map_path, "w", encoding="utf-8") as f: + f.write(json.dumps(label_map, ensure_ascii=False)) + num_classes = max(label_map.values()) + 1 if label_map else 2 + + device = torch.device(args.device if args.device != "0" else "cuda:0") + if str(args.device).lower() in ("cpu", "-1"): + device = torch.device("cpu") + if str(args.device).startswith("cuda"): + device = torch.device(args.device) + if str(args.device).isdigit(): + device = torch.device(f"cuda:{args.device}") if torch.cuda.is_available() else torch.device("cpu") + + train_start_time = now() + _emit({"type": "starttime", "text": f"|----------------------------训练开始时间:{train_start_time.strftime('%Y-%m-%d %H:%M:%S')}-------------------------------|"}) + + train_dataset = RoadSegDataset(args.data, split="train", size=args.imgsz) + val_dataset = RoadSegDataset(args.data, split="val", size=args.imgsz) + workers = int(args.workers) + if os.name == "nt" and workers > 0: + _emit({"type": "waiting", "text": f"检测到 Windows 环境,为避免 DataLoader 多进程卡死,将 workers 从 {workers} 调整为 0"}) + workers = 0 + _emit({"type": "waiting", "text": f"数据集加载完成:train={len(train_dataset)} val={len(val_dataset)} workers={workers}"}) + train_loader = DataLoader(train_dataset, batch_size=args.batch, shuffle=True, num_workers=workers, pin_memory=True, drop_last=False) + val_loader = DataLoader(val_dataset, batch_size=args.batch, shuffle=False, num_workers=workers, pin_memory=True, drop_last=False) + + pretrained_enabled = str(args.pretrained) not in ("0", "false", "False") + pretrained_weights_path = os.path.abspath(os.path.expanduser(str(args.pretrained_weights))) if args.pretrained_weights else "" + if pretrained_weights_path and os.path.isfile(pretrained_weights_path): + _emit({"type": "waiting", "text": f"使用本地预训练权重:{pretrained_weights_path}"}) + model = deeplabv3_resnet50(weights=None, aux_loss=True) + state = torch.load(pretrained_weights_path, map_location="cpu") + if isinstance(state, dict) and "state_dict" in state and isinstance(state["state_dict"], dict): + state = state["state_dict"] + missing_keys, unexpected_keys = model.load_state_dict(state, strict=False) + if missing_keys or unexpected_keys: + _emit( + { + "type": "waiting", + "text": f"预训练权重加载完成(strict=False),missing={len(missing_keys)} unexpected={len(unexpected_keys)}", + } + ) + else: + weights = DeepLabV3_ResNet50_Weights.COCO_WITH_VOC_LABELS_V1 if pretrained_enabled else None + if pretrained_enabled: + _emit({"type": "waiting", "text": f"使用 torchvision 预训练权重(缓存目录:{os.environ.get('TORCH_HOME') or '默认用户缓存目录'})"}) + model = deeplabv3_resnet50(weights=weights, aux_loss=True) + _emit({"type": "waiting", "text": "模型初始化完成,开始替换分类头"}) + model.classifier[4] = nn.Conv2d(in_channels=256, out_channels=num_classes, kernel_size=1) + model.aux_classifier[4] = nn.Conv2d(in_channels=256, out_channels=num_classes, kernel_size=1) + model.apply(freeze_bn) + model = model.to(device) + _emit({"type": "waiting", "text": f"模型已就绪,device={str(device)},num_classes={int(num_classes)}"}) + + criterion = nn.CrossEntropyLoss(ignore_index=255) + optimizer = torch.optim.AdamW( + [ + {"params": model.backbone.parameters(), "lr": float(args.lr_backbone)}, + {"params": model.classifier.parameters(), "lr": float(args.lr_head)}, + {"params": model.aux_classifier.parameters(), "lr": float(args.lr_head)}, + ], + weight_decay=float(args.weight_decay), + ) + + best_val_loss = float("inf") + train_losses = [] + val_losses = [] + + for epoch in range(int(args.epochs)): + model.train() + _emit({"type": "waiting", "text": f"[Epoch {epoch+1:03d}/{int(args.epochs)}] 开始训练"}) + total_loss = 0.0 + steps = 0 + for images, masks in train_loader: + images = images.to(device, non_blocking=True) + masks = masks.to(device, non_blocking=True) + outputs = model(images) + loss_main = criterion(outputs["out"], masks) + loss_aux = criterion(outputs["aux"], masks) + loss = loss_main + 0.4 * loss_aux + optimizer.zero_grad() + loss.backward() + optimizer.step() + total_loss += float(loss.item()) + steps += 1 + train_loss = total_loss / max(1, steps) + val_loss = evaluate(model, val_loader, device, criterion) + train_losses.append(train_loss) + val_losses.append(val_loss) + _emit({"type": "waiting", "text": f"[Epoch {epoch+1:03d}/{int(args.epochs)}] Train Loss: {train_loss:.6f} | Val Loss: {val_loss:.6f}"}) + if val_loss < best_val_loss: + best_val_loss = val_loss + best_path = os.path.join(weights_dir, "deeplab_best.pth") + torch.save(model.state_dict(), best_path) + try: + os.chmod(best_path, 0o777) + except Exception: + pass + + final_path = os.path.join(weights_dir, "deeplab_final.pth") + torch.save(model.state_dict(), final_path) + try: + os.chmod(final_path, 0o777) + except Exception: + pass + + plot_path = os.path.join(project_path, run_name, "results.png") + os.makedirs(os.path.dirname(plot_path), exist_ok=True) + _save_loss_plot(plot_path, train_losses, val_losses) + + train_end_time = now() + train_total_times = round((train_end_time - train_start_time).total_seconds() / 60, 1) + hours = int(train_total_times // 60) + minutes = int(train_total_times % 60) + + _emit({"type": "endtime", "text": f"| ----------------------------训练完成时间:{train_end_time.strftime('%Y-%m-%d %H:%M:%S')} - ------------------------------ |"}) + _emit({"type": "totaltime", "text": f"|-------------------------模型训练总耗时:{hours} 小时 {minutes} 分钟---------------------------------------|"}) + + model_filepath = os.path.join(project_path.replace(filespace_root_path, "")[1:], run_name, "weights").replace("\\", "/") + model_filename = "deeplab_best.pth" + + AiAlgorithmTrainRecords.objects.filter(id=args.trainid).update( + train_start_time=train_start_time, + train_end_time=train_end_time, + train_total_times=train_total_times, + model_createtime=train_end_time, + model_filepath=model_filepath, + model_filename=model_filename, + model_trainresult="模型训练完成!", + record_status="02", + ) + + reporter = DeeplabReporter(project_path=weights_dir, train_name=ai_train.train_title) + dataset_count = (json.loads(ai_train.custom2).get("dataset_count") if ai_train.custom2 else None) + dataset_name = f"{ai_train.custom1};训练样本总数:{dataset_count}" if dataset_count else str(ai_train.custom1 or "") + report_path = reporter.generate_report( + dataset_name=dataset_name, + model_name=os.path.join(model_filepath, model_filename).replace("\\", "/"), + training_epochs=f"{int(args.epochs)} 轮", + training_duration=f"{hours} 小时 {minutes} 分钟", + num_classes=int(num_classes), + best_val_loss=float(best_val_loss), + image_urls={"loss_graph": plot_path}, + ) + _emit({"type": "report", "text": f"模型训练完成,已生成训练报告:{report_path}"}) + except Exception as e: + _emit({"type": "error", "text": f"训练过程报错:{str(e)}"}) + + +if __name__ == "__main__": + main() diff --git a/backend/apps/algorithms/algorithm/pytorch/YoloDetector.py b/backend/apps/algorithms/algorithm/pytorch/YoloDetector.py new file mode 100644 index 0000000..91dc439 --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/YoloDetector.py @@ -0,0 +1,101 @@ +import base64 +import json +from datetime import datetime +import cv2 +from ultralytics import YOLO + +class YoloDetector: + def __init__(self, model_path: str, image_path: str,labels:str, conf_threshold: float = 0.2): + self.model_path = model_path + self.image_path = image_path + self.labels = labels + self.conf_threshold = conf_threshold + self.model = YOLO(model_path) + self.model.overrides = { + 'save_txt': False, + 'save_conf': False, + 'save_crop': False, + 'show': False, + 'conf': self.conf_threshold + } + + def detect(self): + try: + # 进行检测 + results = self.model.predict(source=self.image_path, save=False) + pred_result = self.parse_detection_results(results) + + # 获取带标注的图像 + detection_image = self.get_detection_image(pred_result) + + result_json = { + 'image': detection_image, + 'obj_list': pred_result, + 'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S') + } + + return json.dumps(result_json) + + except Exception as e: + print(f"Error during detection: {e}") + return json.dumps({'error': str(e)}) + + def parse_detection_results(self, results): + pred_result = [] + labels=json.loads(self.labels) + for result in results: + for data in result.boxes.data: + name_key = int(data[5]) + code = result.names.get(name_key) + name = next((item["name"] for item in labels if item["label"] == code), None) + one_box = { + 'code': code, + 'name': name, + 'score': round(data[4].tolist(), 2), + 'x1': int(data[0]), + 'y1': int(data[1]), + 'x2': int(data[2]), + 'y2': int(data[3]) + } + pred_result.append(one_box) + return pred_result + + def get_detection_image(self, pred_result): + img = cv2.imread(self.image_path) + + preset_colors = [ + (0, 0, 255), (20, 20, 255), (20, 40, 255), (0, 60, 255), (0, 80, 255), + (0, 100, 255), (0, 120, 255), (0, 140, 255), (0, 160, 255), (0, 180, 255), + (0, 200, 255), (0, 220, 255), (0, 255, 255), + ] + + category_colors = {} + for i, obj in enumerate(pred_result): + category = obj['code'] + if category not in category_colors: + category_colors[category] = self.get_preset_color(i, preset_colors) + + x1, y1, x2, y2 = obj['x1'], obj['y1'], obj['x2'], obj['y2'] + color = category_colors[category] + cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) + + font = cv2.FONT_HERSHEY_SIMPLEX + text = f"{category}-{obj['score']}" + (text_width, _), _ = cv2.getTextSize(text, font, 0.5, 1) + cv2.rectangle(img, (x1, y1 - 20), (x1 + text_width, y1), color, -1) + cv2.putText(img, text, (x1, y1 - 5), font, 0.5, (255, 255, 255), 1) + + _, img_encoded = cv2.imencode('.jpg', img) + img_base64 = base64.b64encode(img_encoded.tobytes()).decode('utf-8') + return img_base64 + + def get_preset_color(self, index, preset_colors): + return preset_colors[index % len(preset_colors)] + + +# Example usage for testing purposes +if __name__ == '__main__': + img_url = 'D:/project_space/01/002/datasets/00000005.jpg' + model_name = 'D:/python2023/DjangoFrameWork/industrial_prediction/yolo11x.pt' + detector = YoloDetector(model_path=model_name, image_path=img_url) + print(detector.detect()) diff --git a/backend/apps/algorithms/algorithm/pytorch/YoloParms.txt b/backend/apps/algorithms/algorithm/pytorch/YoloParms.txt new file mode 100644 index 0000000..79bb27f --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/YoloParms.txt @@ -0,0 +1,40 @@ +样本准备参数设置: +192.168.1.11:8080/prepare? +trainid=003_20241225_1356, +dataset=['http://192.168.1.16/image/01/003/datasets/003/',''], +train_labels={'sly_dmyw':'地面油污','sly_bjbmyw:'部件表面油污'}, +train_val='8:2' + +训练服务参数设置: +192.168.1.11:8080/train? +trainid=003_20241225_1356, +trainparams={ +"model":"yolo11n.pt", +"epochs":"100", +"batch":"16", +"imgsz":"640", +"workers":"8", +"device":"cpu", +}, +callparams={ +service="192.168.1.11:8000/train_callback", +trainid=003_20241225_1356, +file='result.zip' +reslut目录中包括:"best.pt","report.html" +} + +检测服务参数设置: +192.168.1.11:8080/detect? +images="" +return: result(JSON格式对象) + + +[ + {"param_order":1,"param_name":"model","param_desc":"预训练模型文件","param_type":"01","param_unit":"","param_range":"yolo11n.pt,yolo11m.pt,yolo11x.pt","default_values":"yolo11n.pt"}, + {"param_order":2,"param_name":"epochs","param_desc":"训练的总轮数","param_type":"03","param_unit":"轮","param_range":"1-500","default_values":"100"}, + {"param_order":3,"param_name":"batch","param_desc":"训练批量大小","param_type":"03","param_unit":"个","param_range":"1-200","default_values":"16"}, + {"param_order":4,"param_name":"imgsz","param_desc":"输入图像的尺寸","param_type":"03","param_unit":"","param_range":"50-1000","default_values":"640"}, + {"param_order":5,"param_name":"workers","param_desc":"数据加载的工作线程数","param_type":"03","param_unit":"个","param_range":"1-50","default_values":"8"}, + {"param_order":6,"param_name":"device","param_desc":"训练使用设备(cpu,0)","param_type":"01","param_unit":"","param_range":"cpu,0,1","default_values":"cpu"} +] + diff --git a/backend/apps/algorithms/algorithm/pytorch/YoloReporter.py b/backend/apps/algorithms/algorithm/pytorch/YoloReporter.py new file mode 100644 index 0000000..a6558d0 --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/YoloReporter.py @@ -0,0 +1,378 @@ +import os +import base64 +from datetime import datetime + +class YOLOReporter: + def __init__(self, project_path: str, train_name: str = "train_name"): + """ + YOLOReporter 初始化方法,仅保留生成报告所需的属性. + :param project_path: 项目保存路径 + :param train_name: 训练名称 + """ + self.project_path = project_path + self.train_name = train_name + + @staticmethod + def image_to_base64(image_path: str) -> str: + """ + 将图片文件转换为 Base64 编码字符串. + :param image_path: 图片文件路径 + :return: Base64 编码的字符串 + """ + if not os.path.exists(image_path): + return "" # 如果图片不存在,返回空字符串 + + with open(image_path, "rb") as image_file: + base64_str = base64.b64encode(image_file.read()).decode("utf-8") + return base64_str + + def generate_report(self, dataset_name: str, model_name: str, training_epochs: str, training_duration: str, metrics: list,overall_metrics:str, image_urls: dict): + """ + 生成训练 HTML 报告. + :param dataset_name: 数据集名称 + :param model_name: 模型名称 + :param training_duration: 训练时长 + :param metrics: 性能指标列表 + :param image_urls: 图片路径字典 + """ + # 根据 Fitness 值生成评价结果 + fitness = overall_metrics.get("fitness", 0.0) + if fitness >= 0.9: + fitness_evaluation = "非常优秀" + fitness_class = "fitness-very-good" + elif fitness >= 0.7: + fitness_evaluation = "优秀" + fitness_class = "fitness-good" + elif fitness >= 0.5: + fitness_evaluation = "良好" + fitness_class = "fitness-fair" + elif fitness >= 0.3: + fitness_evaluation = "一般" + fitness_class = "fitness-poor" + else: + fitness_evaluation = "较差" + fitness_class = "fitness-very-poor" + # HTML 模板 + html_template = """ + + + + + + 图像识别算法模型训练报告 + + + + +
+

{{train_name}}-训练结果评估报告

+

1.训练摘要

+

报告标题:{{train_name}}

+

生成日期:{{report_date}}

+

模型名称:{{model_name}}

+

训练数据集:{{dataset_name}}

+

训练轮次:{{training_epochs}};共计时长:{{training_duration}}

+

总体性能得分(Fitness): {{fitness}}

+

模型评价结果:{{fitness_evaluation}}

+
+
+

2.性能指标

+
+ + + + + + + + + + + {{metrics_rows}} + +
类别名称mAP@50-95效果级别
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mAP@50-95 区间效果级别说明
小于0.4一般需要优化,模型对目标的定位和分类精度较低,尤其是在更高 IoU 阈值下表现较差。
大于0.4小于0.5表现不错可以满足部分需求,但在复杂或高精度场景中可能不足。
大于0.5小于0.6良好能较好适应常规场景,模型具备一定的鲁棒性和精确度,定位能力较强。
大于0.6优秀模型表现非常出色,可胜任高精度检测任务,适用于要求严格的实际应用场景。
备注平均精度在 IoU 阈值从 50% 到 95%(步长为 5%)的评估结果,更严格地衡量模型在不同 IoU 标准下的综合性能。
+
+
+
+

3.训练结果图片

+
+

3.1 损失曲线图

+ 损失曲线图 +

损失曲线图反映了模型在训练过程中损失值的变化趋势。通常,损失值逐渐下降并趋于平稳,说明模型逐步收敛,性能提升。

+
+

3.2 精确率曲线

+ 精确率曲线 +

+ 精确率(Precision)表示预测为正类的样本中实际为正类的比例;该曲线显示模型在不同置信度阈值下的精确率 +

+
+

3.3 召回率曲线

+ 召回率曲线 +

+ 召回率(Recall)表示所有实际为正类的样本中成功预测为正类的比例。该曲线显示模型在不同置信度阈值下的召回率。 +

+
+

3.4 精确率-召回率曲线

+ 精确率-召回率曲线 +

+ 精确率-召回率曲线反映了模型在不同阈值下的平衡表现,理想情况下曲线越靠近右上角越好。 +

+
+

3.5 混淆矩阵

+ 混淆矩阵 +

+ 混淆矩阵用于展示模型预测结果的分类情况。对角线上的值表示正确预测的数量,非对角线上的值表示错误分类的数量。 + 理想情况下,混淆矩阵应接近对角矩阵,说明模型分类性能良好。 +

+
+
+
+

4.验证集-模型预测结果

+
+ {{val_images_rows}} +
+
+
+

5.模型总体性能

+
+

精确度(Precision): {{precision}},表示预测为正类的样本中实际为正类的比例,值越高说明模型预测的准确性越强。

+

召回率(Recall): {{recall}},表示所有实际为正类的样本中成功预测为正类的比例,值越高说明模型对正类样本的覆盖能力越强。

+

平均精度(mAP@50): {{mAP50}},在 IoU ≥ 50% 时的平均精度,衡量模型检测目标的能力。

+

平均精度(mAP@50-95): {{mAP50_95}},在 IoU 从 50% 到 95%(步长为 5%)的平均精度,反映模型在不同 IoU 阈值下的综合性能。

+

总体性能得分(Fitness): {{fitness}},综合精确率、召回率和 mAP 的加权得分,表示模型的总体性能。

+
+ 综合评价结果:{{fitness_evaluation}} +
+
+
+ + + """ + + # 生成性能指标表格行 + metrics_rows = "".join( + f"{metric['class']}{metric['name']}{metric['mAP50-95']:.4f}{metric['level']}" + for metric in metrics + ) + + val_images_rows="" + for image_file in image_urls["val_images_url_sorted"]: + image_base64=self.image_to_base64(image_file) + val_images_rows += f'推理图\n' + # 转换图片为 Base64 + loss_graph_base64 = self.image_to_base64(image_urls["loss_graph"]) + pr_curve_base64 = self.image_to_base64(image_urls["pr_curve"]) + confusion_matrix_base64 = self.image_to_base64(image_urls["confusion_matrix"]) + p_curve_base64 = self.image_to_base64(image_urls["p_curve"]) + r_curve_base64 = self.image_to_base64(image_urls["r_curve"]) + # 填充模板 + report_html = html_template.replace("{{report_date}}", datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + report_html = report_html.replace("{{train_name}}", self.train_name) + report_html = report_html.replace("{{model_name}}", model_name) # 默认模型名称 + report_html = report_html.replace("{{dataset_name}}", dataset_name) + report_html = report_html.replace("{{training_epochs}}", training_epochs) + report_html = report_html.replace("{{training_duration}}", training_duration) + report_html = report_html.replace("{{metrics_rows}}", metrics_rows) + report_html = report_html.replace("{{loss_graph_base64}}", loss_graph_base64) + report_html = report_html.replace("{{p_curve_base64}}", p_curve_base64) + report_html = report_html.replace("{{r_curve_base64}}", r_curve_base64) + report_html = report_html.replace("{{pr_curve_base64}}", pr_curve_base64) + report_html = report_html.replace("{{confusion_matrix_base64}}", confusion_matrix_base64) + report_html = report_html.replace("{{val_images_rows}}", val_images_rows) + # 填充总体性能指标 + report_html = report_html.replace("{{precision}}", str(overall_metrics.get("precision"))) + report_html = report_html.replace("{{recall}}", str(overall_metrics.get("recall"))) + report_html = report_html.replace("{{mAP50}}", str(overall_metrics.get("mAP50"))) + report_html = report_html.replace("{{mAP50_95}}", str(overall_metrics.get("mAP50-95"))) + report_html = report_html.replace("{{fitness}}", str(overall_metrics.get("fitness"))) + report_html = report_html.replace("{{fitness_evaluation}}", fitness_evaluation) + report_html = report_html.replace("{{fitness_class}}", fitness_class) + # 保存 HTML 文件 + output_html_path = os.path.join(self.project_path, "train_report.html") + with open(output_html_path, "w", encoding="utf-8") as f: + f.write(report_html) + # print(f"训练报告 HTML 已保存到 {output_html_path}") + + + +# 示例调用 +if __name__ == "__main__": + reporter = YOLOReporter( + project_path="D:/project_space/01/003/trains/003_20241219_2122/runs/train", + train_name="大模型训练" + ) + + # 生成报告 + reporter.generate_report( + dataset_name="COCO Dataset", + model_name="COCO Dataset", + training_duration="2 hours", + metrics=[ + {"class": "Person", "mAP50": 0.8234, "mAP50-95": 0.7234}, + {"class": "Car", "mAP50": 0.9123, "mAP50-95": 0.8231}, + ], + image_urls={ + "loss_graph": os.path.join(reporter.project_path, "results.png"), + "pr_curve": os.path.join(reporter.project_path, "PR_curve.png"), + "confusion_matrix": os.path.join(reporter.project_path, "confusion_matrix.png") + } + ) + diff --git a/backend/apps/algorithms/algorithm/pytorch/YoloSegTrainer.py b/backend/apps/algorithms/algorithm/pytorch/YoloSegTrainer.py new file mode 100644 index 0000000..f3896e2 --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/YoloSegTrainer.py @@ -0,0 +1,223 @@ +import glob +import json +import os +import sys + +import django +from django.conf import settings +from django.shortcuts import get_object_or_404 +from django.utils.timezone import now +from ultralytics import YOLO + +current_dir = os.path.dirname(os.path.abspath(__file__)) +project_root = os.path.abspath(os.path.join(current_dir, "../../../../")) +sys.path.append(project_root) +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") +django.setup() + +from apps.core.models import AiAlgorithm, AiAlgorithmClass, AiAlgorithmTrainRecords +try: + from .YoloReporter import YOLOReporter +except Exception: + from apps.algorithms.algorithm.pytorch.YoloReporter import YOLOReporter +import argparse + + +def _emit(payload): + print(json.dumps(payload, ensure_ascii=False)) + + +class YOLOSegTrainer: + def __init__(self, model_path: str, data_path: str, params: dict, project_path: str = None, run_name: str = "train"): + self.model_path = model_path + self.data_path = data_path + self.project_path = project_path or "./runs" + self.run_name = run_name + self.epochs = int(params.get("epochs", 200)) + self.batch_size = int(params.get("batch", 8)) + self.img_size = int(params.get("imgsz", 640)) + self.workers = int(params.get("workers", 4)) + self.device = str(params.get("device", "0")) + self.model = YOLO(model_path) + + def train(self): + os.makedirs(self.project_path, exist_ok=True) + results = self.model.train( + data=self.data_path, + project=self.project_path, + name=self.run_name, + epochs=self.epochs, + batch=self.batch_size, + imgsz=self.img_size, + workers=self.workers, + device=self.device, + task="segment", + ) + return results, self.project_path + + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument("--data", type=str, required=True) + parser.add_argument("--model", type=str, required=True) + parser.add_argument("--project_path", type=str, required=True) + parser.add_argument("--run_name", type=str, default="train") + parser.add_argument("--epochs", type=int, default=200) + parser.add_argument("--batch", type=int, default=8) + parser.add_argument("--imgsz", type=int, default=640) + parser.add_argument("--workers", type=int, default=4) + parser.add_argument("--device", type=str, default="0") + parser.add_argument("--trainid", type=str, required=True) + return parser.parse_args() + + +def _pick_metric(metrics, keys, default=0.0): + for key in keys: + value = metrics.get(key) + if value is not None: + try: + return float(value) + except Exception: + continue + return float(default) + + +def _resolve_model_path(model_arg: str): + model_arg = str(model_arg or "").strip() + if not model_arg: + return "yolo11n-seg.pt" + if model_arg.isdigit(): + raise ValueError(f"训练参数 model 异常,当前值为纯数字:{model_arg}") + if os.path.isabs(model_arg) and os.path.exists(model_arg): + return model_arg + if os.path.exists(model_arg): + return os.path.abspath(model_arg) + repo_candidate = os.path.join(project_root, model_arg) + if os.path.exists(repo_candidate): + return repo_candidate + return model_arg + + +def main(): + try: + args = parse_args() + if str(args.data).strip().isdigit(): + raise ValueError(f"训练参数 data 异常,当前值为纯数字:{args.data}") + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=args.trainid) + train_labels = json.loads(ai_train.train_labels) if ai_train.train_labels else [] + + train_start_time = now() + _emit({"type": "starttime", "text": f"|----------------------------训练开始时间:{train_start_time.strftime('%Y-%m-%d %H:%M:%S')}-------------------------------|"}) + + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join(filespace_root_path, ai_algorithm_class.classcode, ai_algorithm.algorithm_code, "trains", ai_train.train_code) + run_name = args.run_name + + resolved_model_path = _resolve_model_path(args.model) + _emit({"type": "waiting", "text": f"训练模型参数:{args.model} -> 实际加载:{resolved_model_path}"}) + _emit({"type": "waiting", "text": f"训练数据配置:{args.data}"}) + + params = { + "epochs": args.epochs, + "batch": args.batch, + "imgsz": args.imgsz, + "workers": args.workers, + "device": args.device, + } + trainer = YOLOSegTrainer( + model_path=resolved_model_path, + data_path=args.data, + params=params, + project_path=args.project_path, + run_name=run_name, + ) + results, project_path = trainer.train() + metrics = results.results_dict if hasattr(results, "results_dict") else {} + maps = list(results.maps) if getattr(results, "maps", None) is not None else [] + names = results.names if hasattr(results, "names") else {} + + train_end_time = now() + train_total_times = round((train_end_time - train_start_time).total_seconds() / 60, 1) + hours = int(train_total_times // 60) + minutes = int(train_total_times % 60) + + _emit({"type": "endtime", "text": f"| ----------------------------训练完成时间:{train_end_time.strftime('%Y-%m-%d %H:%M:%S')} - ------------------------------ |"}) + _emit({"type": "totaltime", "text": f"|-------------------------模型训练总耗时:{hours} 小时 {minutes} 分钟---------------------------------------|"}) + _emit({"type": "title", "text": "模型训练结果--分类汇总信息如下:"}) + + class_metrics_group = [] + for class_id, class_name in names.items(): + mAP50_95 = round(maps[int(class_id)] if len(maps) > int(class_id) else 0.0, 4) + if mAP50_95 < 0.4: + level = "一般" + elif 0.4 <= mAP50_95 < 0.5: + level = "表现不错" + elif 0.5 <= mAP50_95 < 0.6: + level = "良好" + else: + level = "优秀" + class_metrics = { + "class": class_name, + "name": next((item.get("name") for item in train_labels if isinstance(item, dict) and item.get("label") == class_name), None), + "mAP50-95": mAP50_95, + "level": level, + } + class_metrics_group.append(class_metrics) + _emit({"type": "info", "text": str(class_metrics)}) + + overall_metrics = { + "precision": round(_pick_metric(metrics, ["metrics/precision(M)", "metrics/precision(B)"]), 4), + "recall": round(_pick_metric(metrics, ["metrics/recall(M)", "metrics/recall(B)"]), 4), + "mAP50": round(_pick_metric(metrics, ["metrics/mAP50(M)", "metrics/mAP50(B)"]), 4), + "mAP50-95": round(_pick_metric(metrics, ["metrics/mAP50-95(M)", "metrics/mAP50-95(B)"]), 4), + "fitness": round(_pick_metric(metrics, ["fitness"]), 4), + } + _emit({"type": "title", "text": "模型训练结果--总体性能指标如下:"}) + _emit({"type": "info", "text": str(overall_metrics)}) + + model_filepath = os.path.join(project_path.replace(filespace_root_path, "")[1:], run_name, "weights").replace("\\", "/") + model_filename = "best.pt" + AiAlgorithmTrainRecords.objects.filter(id=args.trainid).update( + train_start_time=train_start_time, + train_end_time=train_end_time, + train_total_times=train_total_times, + model_createtime=train_end_time, + model_filepath=model_filepath, + model_filename=model_filename, + model_trainresult="模型训练完成!", + record_status="02", + ) + + reporter = YOLOReporter(project_path=os.path.join(project_path, run_name, "weights"), train_name=ai_train.train_title) + dataset_count = json.loads(ai_train.custom2).get("dataset_count") if ai_train.custom2 else None + train_images_url = glob.glob(os.path.join(project_path, run_name, "train_*.jpg")) + val_images_url = glob.glob(os.path.join(project_path, run_name, "val_*.jpg")) + train_images_url_sorted = sorted(train_images_url, key=lambda x: os.path.basename(x)) if train_images_url else [] + val_images_url_sorted = sorted(val_images_url, key=lambda x: os.path.basename(x)) if val_images_url else [] + + reporter.generate_report( + dataset_name=f"{ai_train.custom1};训练样本总数:{dataset_count}", + model_name=os.path.join(model_filepath, model_filename).replace("\\", "/"), + training_epochs=f"{args.epochs} 轮", + training_duration=f"{hours} 小时 {minutes} 分钟", + metrics=class_metrics_group, + overall_metrics=overall_metrics, + image_urls={ + "loss_graph": os.path.join(project_path, run_name, "results.png"), + "pr_curve": os.path.join(project_path, run_name, "PR_curve.png"), + "confusion_matrix": os.path.join(project_path, run_name, "confusion_matrix.png"), + "train_images_url_sorted": train_images_url_sorted, + "val_images_url_sorted": val_images_url_sorted, + "p_curve": os.path.join(project_path, run_name, "P_curve.png"), + "r_curve": os.path.join(project_path, run_name, "R_curve.png"), + }, + ) + _emit({"type": "report", "text": "模型训练完成,已生成训练报告,请查阅!"}) + except Exception as e: + _emit({"type": "error", "text": f"训练过程报错:{str(e)}"}) + + +if __name__ == "__main__": + main() diff --git a/backend/apps/algorithms/algorithm/pytorch/YoloTrainer.py b/backend/apps/algorithms/algorithm/pytorch/YoloTrainer.py new file mode 100644 index 0000000..ac8f4a8 --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/YoloTrainer.py @@ -0,0 +1,286 @@ +import glob +import os +import sys + +import django +current_dir = os.path.dirname(os.path.abspath(__file__)) + +# 设置 Django 设置模块 +# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "industrial_prediction.settings") +project_root = os.path.abspath(os.path.join(current_dir, "../../../../")) +sys.path.append(project_root) +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") + +# 启动 Django 环境 +django.setup() +from django.conf import settings +import argparse +import json +from flask import Flask, request, jsonify +from django.shortcuts import get_object_or_404 +from apps.core.models import AiAlgorithm, AiAlgorithmClass, AiAlgorithmTrainRecords +from ultralytics import YOLO +try: + from .YoloReporter import YOLOReporter +except Exception: + from apps.algorithms.algorithm.pytorch.YoloReporter import YOLOReporter +from django.utils.timezone import now +import os +try: + from apps.common.minio_client import minio_storage +except Exception: + from common.minio_client import minio_storage +app = Flask(__name__) +class YOLOTrainer: + def __init__(self, model_path: str, data_path: str, params: dict, project_path: str = None, run_name: str = "yolo_run"): + """ + YOLOTrainer 初始化方法. + :param model_path: 模型路径 (e.g., yolo11n.pt) + :param data_path: 数据配置文件路径 (e.g., yolo_config.yaml) + :param params: 训练参数字典,从 data_str 提取 (e.g., epochs, batch_size, img_size, device 等) + :param project_path: 项目保存路径 + :param run_name: 运行名称测试提交 + """ + self.model_path = model_path + self.data_path = data_path + self.project_path = project_path or f"./runs/train/{run_name}" + self.run_name = run_name + + # 从 params 中解析参数 + self.epochs = int(params.get("epochs", 3)) + self.batch_size = int(params.get("batch", 16)) + self.img_size = int(params.get("imgsz", 640)) + self.workers = int(params.get("workers", 8)) + self.device = params.get("device", "cpu") # 默认为 CPU + # 加载 YOLO 模型 + self.model = YOLO(model_path) + def train(self): + """ + 开始训练 YOLO 模型,使用初始化时指定的参数. + """ + # 确保项目路径存在 + os.makedirs(self.project_path, exist_ok=True) + + results = self.model.train( + data=self.data_path, + project=self.project_path, + name=self.run_name, + epochs=self.epochs, + batch=self.batch_size, + imgsz=self.img_size, + workers=self.workers, + device=self.device + + ) + return results,self.project_path + +def parse_args(): + """ + 解析命令行参数. + """ + parser = argparse.ArgumentParser(description="YOLOv8 Training Script") + + # 添加命令行参数 + parser.add_argument('--data', type=str, required=True, help="数据配置文件路径 (e.g., train.yaml)") + parser.add_argument('--model', type=str, required=True, help="YOLOv8 模型路径 (e.g., yolov8x.pt)") + parser.add_argument('--project_path', type=str, default=None, + help="训练结果保存路径 (默认为 './runs/train/{run_name}')") + parser.add_argument('--run_name', type=str, default="yolo_run", help="训练运行名称,默认为 'yolo_run'") + parser.add_argument('--epochs', type=int, default=200, help="训练轮数,默认为 200") + parser.add_argument('--batch', type=int, default=16, help="每批次的图片数量,默认为 16") + parser.add_argument('--imgsz', type=int, default=640, help="输入图像尺寸,默认为 640") + parser.add_argument('--workers', type=int, default=8, help="数据加载的线程数,默认为 8") + parser.add_argument('--device', type=str, default='cpu', help="训练设备,默认为 'cpu',例如 '0' 或 'cuda'") + parser.add_argument('--trainid', type=str, default='0', help="训练id,默认为 '0'") + # 解析命令行参数 + return parser.parse_args() + +def main(): + try: + # print('进入到main方法') + # 解析命令行参数 + args = parse_args() + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=args.trainid) + train_params = json.loads(ai_train.train_params) + train_labels = json.loads(ai_train.train_labels) + # 记录训练开始时间 + train_start_time = now() + # 发送训练开始的消息 + message = {'type': 'starttime', + 'text': f'|----------------------------训练开始时间:{train_start_time.strftime("%Y-%m-%d %H:%M:%S")}-------------------------------|'} + print(json.dumps(message, ensure_ascii=False)) + # 设置路径 + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join( + filespace_root_path, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + 'trains', + ai_train.train_code + ) + run_name = "train" + # 构建覆盖字典 + overrides = { + 'data': args.data, + 'model': args.model, + 'project_path': args.project_path, + 'run_name': args.run_name, + 'epochs': args.epochs, + 'batch': args.batch, + 'imgsz': args.imgsz, + 'workers': args.workers, + 'device': args.device + } + # 创建训练器并启动训练 + trainer = YOLOTrainer( + model_path=args.model, + data_path=args.data, + params=overrides, + project_path=args.project_path, + run_name=args.run_name + ) + # 执行训练并获取结果 + results, project_path = trainer.train() + # print('results.........',results) + metrics = results.results_dict + maps = results.maps + names = results.names + # 记录训练结束时间 + train_end_time = now() + train_total_times = round((train_end_time - train_start_time).total_seconds() / 60, 1) + hours = int(train_total_times // 60) + minutes = int(train_total_times % 60) + + # 更新训练记录 + message = {'type': 'endtime', + 'text': f'| ----------------------------训练完成时间:{train_end_time.strftime("%Y-%m-%d %H:%M:%S")} - ------------------------------ |'} + print(json.dumps(message, ensure_ascii=False)) + message = {'type': 'totaltime', + 'text': f'|-------------------------模型训练总耗时:{hours} 小时 {minutes} 分钟---------------------------------------|'} + print(json.dumps(message, ensure_ascii=False)) + # 分类汇总信息 + message = {'type': 'title', + 'text': '模型训练结果--分类汇总信息如下:'} + print(json.dumps(message, ensure_ascii=False)) + class_metrics_group = [] + for class_id, class_name in names.items(): + mAP50_95 = round(maps[int(class_id)] if len(maps) > 0 else 0.0, 4) + if mAP50_95 < 0.4: + level = "一般" + elif 0.4 <= mAP50_95 < 0.5: + level = "表现不错" + elif 0.5 <= mAP50_95 < 0.6: + level = "良好" + else: + level = "优秀" + class_metrics = { + "class": class_name, + "name": next((item['name'] for item in train_labels if item['label'] == class_name), None), + "mAP50-95": mAP50_95, # 如果 maps 为空,设置默认值为 0.0 + "level": level + } + class_metrics_group.append(class_metrics) + message = {'type': 'info', + 'text': str(class_metrics)} + print(json.dumps(message, ensure_ascii=False)) + # 总体性能指标 + overall_metrics = { + "precision": round(metrics['metrics/precision(B)'], 4), + "recall": round(metrics['metrics/recall(B)'], 4), + "mAP50": round(metrics['metrics/mAP50(B)'], 4), + "mAP50-95": round(metrics['metrics/mAP50-95(B)'], 4), + "fitness": round(metrics['fitness'], 4), + } + message = {'type': 'title', + 'text': '模型训练结果--总体性能指标如下:'} + print(json.dumps(message, ensure_ascii=False)) + message = {'type': 'info', + 'text': str(overall_metrics)} + print(json.dumps(message, ensure_ascii=False)) + model_filepath = os.path.join(project_path.replace(filespace_root_path, "")[1:], run_name, "weights").replace( + "\\", + "/") + model_filename = "best.pt" + + # 生成模型训练报告 + reporter = YOLOReporter( + project_path=os.path.join(project_path, run_name, 'weights'), + train_name=ai_train.train_title + ) + dataset_count = json.loads(ai_train.custom2).get('dataset_count') + train_images_url = glob.glob(os.path.join(project_path, run_name, 'train_*.jpg')) + val_images_url = glob.glob( + os.path.join(project_path, run_name, 'val_*.jpg')) + # 按文件名排序,如果文件列表为空,也会返回 [] + train_images_url_sorted = sorted(train_images_url, key=lambda x: os.path.basename(x)) if train_images_url else [] + val_images_url_sorted = sorted(val_images_url, key=lambda x: os.path.basename(x)) if val_images_url else [] + # 生成报告 + + reporter.generate_report( + dataset_name=f'{ai_train.custom1};训练样本总数:{dataset_count}', + model_name=os.path.join(model_filepath, model_filename).replace("\\", "/"), + training_epochs=f"{args.epochs} 轮", + training_duration=f"{hours} 小时 {minutes} 分钟", + metrics=class_metrics_group, + overall_metrics=overall_metrics, + image_urls={ + "loss_graph": os.path.join(project_path, run_name, "results.png"), + "pr_curve": os.path.join(project_path, run_name, "BoxPR_curve.png"), + "confusion_matrix": os.path.join(project_path, run_name, "confusion_matrix.png"), + "train_images_url_sorted": train_images_url_sorted, + "val_images_url_sorted": val_images_url_sorted, + "p_curve": os.path.join(project_path, run_name, "BoxP_curve.png"), + "r_curve": os.path.join(project_path, run_name, "BoxR_curve.png") + } + ) + + + # 上传模型文件和报告到 MinIO + try: + weights_path = os.path.join(project_path, run_name, 'weights') + model_file = os.path.join(weights_path, 'best.pt') + report_file = os.path.join(weights_path, 'train_report.html') + + minio_bucket = 'trained-model' + minio_prefix = ai_train.train_code + if os.path.exists(model_file): + minio_model_path = f'{minio_prefix}/best.pt' + minio_storage.upload_file(minio_bucket, minio_model_path, model_file) + message = {'type': 'info', 'text': f'模型文件 best.pt 已上传到 MinIO: {minio_bucket}/{minio_model_path}'} + print(json.dumps(message, ensure_ascii=False)) + + if os.path.exists(report_file): + minio_report_path = f'{minio_prefix}/train_report.html' + minio_storage.upload_file(minio_bucket, minio_report_path, report_file) + message = {'type': 'info', 'text': f'训练报告 train_report.html 已上传到 MinIO: {minio_bucket}/{minio_report_path}'} + print(json.dumps(message, ensure_ascii=False)) + + report_url = minio_storage.presign_get(minio_bucket, minio_report_path, expires=3600) + message = {'type': 'report', 'text': f'模型训练完成,已生成训练报告,请查阅!', 'bucket': minio_bucket, 'object_name': minio_report_path, 'url': report_url} + print(json.dumps(message, ensure_ascii=False)) + + except Exception as upload_error: + message = {'type': 'error', 'text': f'上传到 MinIO 失败: {str(upload_error)}'} + print(json.dumps(message, ensure_ascii=False)) + # 更新训练记录 + minio_model_path = f'{ai_train.train_code}/best.pt' + AiAlgorithmTrainRecords.objects.filter(id=args.trainid).update( + train_start_time=train_start_time, + train_end_time=train_end_time, + train_total_times=train_total_times, + model_createtime=train_end_time, + model_filename=model_filename, + model_filepath=weights_path.replace("\\", "/"), + model_bucketpath=minio_model_path, + report_bucketpath=minio_report_path, + model_trainresult="模型训练完成!", + record_status="02" + ) + except Exception as e: + print("训练过程报错",str(e)) + + +if __name__ == '__main__': + main() diff --git a/backend/apps/algorithms/algorithm/pytorch/__init__.py b/backend/apps/algorithms/algorithm/pytorch/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/algorithms/algorithm/pytorch/train.py b/backend/apps/algorithms/algorithm/pytorch/train.py new file mode 100644 index 0000000..047fecf --- /dev/null +++ b/backend/apps/algorithms/algorithm/pytorch/train.py @@ -0,0 +1,45 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +import argparse +import os + +from ultralytics.cfg import get_cfg +from ultralytics.models.yolo import detect +def test_detect(overrides): + # 创建 DetectionTrainer 实例并传入覆盖参数 + trainer = detect.DetectionTrainer(overrides=overrides) + if not os.path.isfile(overrides['model']): + raise FileNotFoundError(f"模型文件 {overrides['model']} 不存在!") + trainer.train() +def parse_args(): + """ + 解析命令行参数. + """ + parser = argparse.ArgumentParser(description="YOLOv8 Training Script") + # 添加命令行参数 + parser.add_argument('--data', type=str, required=True, help="数据配置文件路径 (e.g., train.yaml)") + parser.add_argument('--model', type=str, required=True, help="YOLOv8 模型路径 (e.g., yolov8x.pt)") + parser.add_argument('--imgsz', type=int, default=640, help="输入图像尺寸,默认为 640") + parser.add_argument('--epochs', type=int, default=200, help="训练轮数,默认为 200") + parser.add_argument('--device', type=str, default='0', help="设备编号,默认为 '0' (CUDA 设备)") + parser.add_argument('--pretrained', type=str, required=False, help="") + parser.add_argument('--workers', type=int, default=4, help="数据加载器的 worker 数量,默认为 4") + # 解析命令行参数 + return parser.parse_args() +if __name__ == '__main__': + # 解析命令行参数 + args = parse_args() + # 构建覆盖字典 + overrides = { + 'data': args.data, + 'model': args.model, + 'imgsz': args.imgsz, + 'batch':4, + 'epochs': args.epochs, + 'device': args.device, + 'workers': args.workers, + 'pretrained': args.pretrained + } + # 调用测试函数 + test_detect(overrides) + + diff --git a/backend/apps/algorithms/algorithm/tensorflow/SSDTrainer.py b/backend/apps/algorithms/algorithm/tensorflow/SSDTrainer.py new file mode 100644 index 0000000..c6d8147 --- /dev/null +++ b/backend/apps/algorithms/algorithm/tensorflow/SSDTrainer.py @@ -0,0 +1,52 @@ +import os +import tensorflow as tf +from object_detection.utils import config_util +from object_detection.protos import pipeline_pb2 +from google.protobuf import text_format +from object_detection import model_lib + + +def train_ssd_model(pipeline_config_path, model_dir, num_train_steps=200000, batch_size=24): + # 加载 pipeline.config 文件 + pipeline_config = pipeline_pb2.TrainEvalPipelineConfig() + with tf.io.gfile.GFile(pipeline_config_path, "r") as f: + proto_str = f.read() + text_format.Merge(proto_str, pipeline_config) + + # 更新训练参数 + pipeline_config.train_config.batch_size = batch_size + pipeline_config.train_config.num_steps = num_train_steps + + # 配置文件路径 + config = config_util.create_configs_from_pipeline_proto(pipeline_config) + + # 创建训练和评估的配置 + train_config = config['train_config'] + eval_config = config['eval_config'] + + # 创建训练模型 + model_config = config['model_config'] + model = model_lib.create_estimator_and_inputs(model_config, train_config, eval_config) + + # 配置训练和评估输入 + train_input_fn = model_lib.create_input_fn(config['train_input_config']) + eval_input_fn = model_lib.create_input_fn(config['eval_input_config']) + + # 执行训练 + model_lib.train_and_evaluate( + estimator=model, + train_input_fn=train_input_fn, + eval_input_fn=eval_input_fn, + train_steps=num_train_steps, + eval_steps=5000, # 你可以根据数据集大小调整评估步数 + ) + + +if __name__ == "__main__": + # 配置文件路径和模型存储路径 + current_dir = os.path.dirname(os.path.abspath(__file__)) + pipeline_config_path = os.path.join(current_dir, "models", "ssd_mobilenet", "pipeline.config") + model_dir = 'E:/yangben/tensorflowyangben/training' + + # 训练 SSD 模型 + train_ssd_model(pipeline_config_path, model_dir) diff --git a/backend/apps/algorithms/algorithm/tensorflow/TxtToTensorflow.py b/backend/apps/algorithms/algorithm/tensorflow/TxtToTensorflow.py new file mode 100644 index 0000000..838e527 --- /dev/null +++ b/backend/apps/algorithms/algorithm/tensorflow/TxtToTensorflow.py @@ -0,0 +1,103 @@ +# import tensorflows as tf +# from object_detection.utils import dataset_util +# import xml.etree.ElementTree as ET +# import os +# +# def create_example(image_path, xml_path): +# tree = ET.parse(xml_path) +# root = tree.getroot() +# +# filename = image_path.encode('utf8') +# with tf.io.gfile.GFile(image_path, 'rb') as fid: # 修改这里 +# encoded_image_data = fid.read() +# +# image_format = b'jpg' # or 'png', depending on your image format +# +# xmins = [] +# xmaxs = [] +# ymins = [] +# ymaxs = [] +# classes_text = [] +# classes = [] +# +# for obj in root.findall('object'): +# xmin = float(obj.find('bndbox/xmin').text) +# xmax = float(obj.find('bndbox/xmax').text) +# ymin = float(obj.find('bndbox/ymin').text) +# ymax = float(obj.find('bndbox/ymax').text) +# class_name = obj.find('name').text +# class_id = 1 # assuming single class or map class names to IDs +# +# xmins.append(xmin) +# xmaxs.append(xmax) +# ymins.append(ymin) +# ymaxs.append(ymax) +# classes_text.append(class_name.encode('utf8')) +# classes.append(class_id) +# +# example = tf.train.Example(features=tf.train.Features(feature={ +# 'image/encoded': dataset_util.bytes_feature(encoded_image_data), +# 'image/format': dataset_util.bytes_feature(image_format), +# 'image/object/bbox/xmin': dataset_util.float_list_feature(xmins), +# 'image/object/bbox/xmax': dataset_util.float_list_feature(xmaxs), +# 'image/object/bbox/ymin': dataset_util.float_list_feature(ymins), +# 'image/object/bbox/ymax': dataset_util.float_list_feature(ymaxs), +# 'image/object/class/text': dataset_util.bytes_list_feature(classes_text), +# 'image/object/class/label': dataset_util.int64_list_feature(classes), +# 'image/filename': dataset_util.bytes_feature(filename), +# })) +# return example +# +# def write_tfrecord(output_path, image_dir, xml_dir): +# writer = tf.io.TFRecordWriter(output_path) # tf.io.TFRecordWriter instead of tf.gfile.TFRecordWriter +# for xml_file in os.listdir(xml_dir): +# if xml_file.endswith('.xml'): +# image_path = os.path.join(image_dir, xml_file.replace('.xml', '.jpg')) # Assuming images are in JPG format +# xml_path = os.path.join(xml_dir, xml_file) +# tf_example = create_example(image_path, xml_path) +# writer.write(tf_example.SerializeToString()) +# writer.close() +# +# # Example usage: +# write_tfrecord(r'E:\yangben\tensorflowyangben\train.record', r'E:\yangben\tensorflowyangben\sly_dmyw', r'E:\yangben\tensorflowyangben\sly_dmyw') +# +from PIL import Image +import os +import numpy as np + + +def load_data(image_folder, annotations_file): + images = [] + labels = [] + for image_file in os.listdir(image_folder): + if image_file.endswith('.jpg'): + image_path = os.path.join(image_folder, image_file) + print(f"Loading image: {image_path}") # 调试输出 + + # 使用PIL打开图片 + try: + img = Image.open(image_path) + img = img.resize((300, 300)) # SSD要求输入尺寸为300x300 + img = np.array(img) + images.append(img) + except Exception as e: + print(f"Error loading image {image_path}: {e}") + continue + + # 处理标签文件 + label_file = image_file.replace('.jpg', '.txt') + label_path = os.path.join(annotations_file, label_file) + if os.path.exists(label_path): + with open(label_path, 'r') as f: + boxes = [] + for line in f: + data = line.strip().split() + x_min, y_min, x_max, y_max = map(float, data[:4]) + boxes.append([x_min, y_min, x_max, y_max]) + labels.append(boxes) + else: + print(f"Warning: Label file not found for {image_file}") + return np.array(images), np.array(labels) + + +load_data(r"E:\yangben\tensorflowyangben\sly_dmyw",r"E:\yangben\tensorflowyangben\sly_dmyw") \ No newline at end of file diff --git a/backend/apps/algorithms/apps.py b/backend/apps/algorithms/apps.py new file mode 100644 index 0000000..0b6fe37 --- /dev/null +++ b/backend/apps/algorithms/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class AlgorithmsConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.algorithms" + diff --git a/backend/apps/algorithms/assets/yolo标准数据集标签 b/backend/apps/algorithms/assets/yolo标准数据集标签 new file mode 100644 index 0000000..ee4d726 --- /dev/null +++ b/backend/apps/algorithms/assets/yolo标准数据集标签 @@ -0,0 +1,82 @@ +[ + {"label": "person", "name": "人"}, + {"label": "bicycle", "name": "自行车"}, + {"label": "car", "name": "汽车"}, + {"label": "motorcycle", "name": "摩托车"}, + {"label": "airplane", "name": "飞机"}, + {"label": "bus", "name": "公交车"}, + {"label": "train", "name": "火车"}, + {"label": "truck", "name": "卡车"}, + {"label": "boat", "name": "船"}, + {"label": "traffic light", "name": "交通信号灯"}, + {"label": "fire hydrant", "name": "消防栓"}, + {"label": "stop sign", "name": "停车标志"}, + {"label": "parking meter", "name": "停车收费表"}, + {"label": "bench", "name": "长椅"}, + {"label": "bird", "name": "鸟"}, + {"label": "cat", "name": "猫"}, + {"label": "dog", "name": "狗"}, + {"label": "horse", "name": "马"}, + {"label": "sheep", "name": "羊"}, + {"label": "cow", "name": "牛"}, + {"label": "elephant", "name": "大象"}, + {"label": "bear", "name": "熊"}, + {"label": "zebra", "name": "斑马"}, + {"label": "giraffe", "name": "长颈鹿"}, + {"label": "backpack", "name": "背包"}, + {"label": "umbrella", "name": "雨伞"}, + {"label": "handbag", "name": "手提包"}, + {"label": "tie", "name": "领带"}, + {"label": "suitcase", "name": "行李箱"}, + {"label": "frisbee", "name": "飞盘"}, + {"label": "skis", "name": "滑雪板"}, + {"label": "snowboard", "name": "单板滑雪板"}, + {"label": "sports ball", "name": "运动球"}, + {"label": "kite", "name": "风筝"}, + {"label": "baseball bat", "name": "棒球棒"}, + {"label": "baseball glove", "name": "棒球手套"}, + {"label": "skateboard", "name": "滑板"}, + {"label": "surfboard", "name": "冲浪板"}, + {"label": "tennis racket", "name": "网球拍"}, + {"label": "bottle", "name": "瓶子"}, + {"label": "wine glass", "name": "红酒杯"}, + {"label": "cup", "name": "杯子"}, + {"label": "fork", "name": "叉子"}, + {"label": "knife", "name": "刀"}, + {"label": "spoon", "name": "勺子"}, + {"label": "bowl", "name": "碗"}, + {"label": "banana", "name": "香蕉"}, + {"label": "apple", "name": "苹果"}, + {"label": "sandwich", "name": "三明治"}, + {"label": "orange", "name": "橙子"}, + {"label": "broccoli", "name": "西兰花"}, + {"label": "carrot", "name": "胡萝卜"}, + {"label": "hot dog", "name": "热狗"}, + {"label": "pizza", "name": "披萨"}, + {"label": "donut", "name": "甜甜圈"}, + {"label": "cake", "name": "蛋糕"}, + {"label": "chair", "name": "椅子"}, + {"label": "couch", "name": "沙发"}, + {"label": "potted plant", "name": "盆栽植物"}, + {"label": "bed", "name": "床"}, + {"label": "dining table", "name": "餐桌"}, + {"label": "toilet", "name": "马桶"}, + {"label": "tv", "name": "电视"}, + {"label": "laptop", "name": "笔记本电脑"}, + {"label": "mouse", "name": "鼠标"}, + {"label": "remote", "name": "遥控器"}, + {"label": "keyboard", "name": "键盘"}, + {"label": "cell phone", "name": "手机"}, + {"label": "microwave", "name": "微波炉"}, + {"label": "oven", "name": "烤箱"}, + {"label": "toaster", "name": "烤面包机"}, + {"label": "sink", "name": "水槽"}, + {"label": "refrigerator", "name": "冰箱"}, + {"label": "book", "name": "书"}, + {"label": "clock", "name": "时钟"}, + {"label": "vase", "name": "花瓶"}, + {"label": "scissors", "name": "剪刀"}, + {"label": "teddy bear", "name": "泰迪熊"}, + {"label": "hair drier", "name": "吹风机"}, + {"label": "toothbrush", "name": "牙刷"} +] diff --git a/backend/apps/algorithms/static/loading.gif b/backend/apps/algorithms/static/loading.gif new file mode 100644 index 0000000..557d599 Binary files /dev/null and b/backend/apps/algorithms/static/loading.gif differ diff --git a/backend/apps/algorithms/templates/image_detect.html b/backend/apps/algorithms/templates/image_detect.html new file mode 100644 index 0000000..d258f47 --- /dev/null +++ b/backend/apps/algorithms/templates/image_detect.html @@ -0,0 +1,160 @@ + + +{% load static %} + + + + AI图像检测 + + + + +

AI图像识别-对象检测

+ + + + + +
+ +
+
+ Modal Image +
+
+ +
+ + 图像识别检测中... +
+ + + + + diff --git a/backend/apps/algorithms/templates/time_predict.html b/backend/apps/algorithms/templates/time_predict.html new file mode 100644 index 0000000..b9b2f5b --- /dev/null +++ b/backend/apps/algorithms/templates/time_predict.html @@ -0,0 +1,57 @@ + + + + + + + API Result + + +

某机场乘客数量变化趋势预测

+ + +
+ + + + diff --git a/backend/apps/algorithms/templates/upload.html b/backend/apps/algorithms/templates/upload.html new file mode 100644 index 0000000..47c538a --- /dev/null +++ b/backend/apps/algorithms/templates/upload.html @@ -0,0 +1,86 @@ + + + + + + File Upload + + + + +

File Upload

+ +
+ + + +
+
+
+

+
+ + + + + diff --git a/backend/apps/algorithms/views/__init__.py b/backend/apps/algorithms/views/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/algorithms/views/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/algorithms/views/algorithm.py b/backend/apps/algorithms/views/algorithm.py new file mode 100644 index 0000000..66acce6 --- /dev/null +++ b/backend/apps/algorithms/views/algorithm.py @@ -0,0 +1,232 @@ +import json +import uuid +from datetime import datetime + +from django.db import connection, transaction +from django.db.models import CharField, Max +from django.db.models.functions import Cast +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import ( + AiAlgorithmCallLogSerializer, + AiAlgorithmEngineSerializer, + AiAlgorithmSerializer, +) +from apps.core.models import ( + AiAlgorithm, + AiAlgorithmCallLog, + AiAlgorithmEngine, + AiAlgorithmModels, + AiAlgorithmOutput, + AiAlgorithmParams, + AiAlgorithmTrainRecords, +) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_algorithm(request): + algorithm_code = request.GET.get("algorithm_code", None) + algorithm_name = request.GET.get("algorithm_name", None) + algorithm_class = request.GET.get("algorithm_class", None) + scenario = request.GET.get("scenario", None) + algorithm_type = request.GET.get("algorithm_type", None) + algorithm_status = request.GET.get("algorithm_status", None) + development_unit = request.GET.get("development_unit", None) + class_code = request.GET.get("class_code", None) + + page_size = request.GET.get("page_size", None) + filter_kwargs = {} + if algorithm_code: + filter_kwargs["algorithm_code__icontains"] = algorithm_code + if algorithm_name: + filter_kwargs["algorithm_name__icontains"] = algorithm_name + if algorithm_class: + filter_kwargs["algorithm_class__exact"] = algorithm_class + if scenario: + filter_kwargs["scenario__icontains"] = scenario + if algorithm_type: + filter_kwargs["algorithm_type__exact"] = algorithm_type + if algorithm_status: + filter_kwargs["algorithm_status__exact"] = algorithm_status + if development_unit: + filter_kwargs["development_unit__icontains"] = development_unit + if class_code: + filter_kwargs["labels__icontains"] = class_code + algorithms = AiAlgorithm.objects.filter(**filter_kwargs).order_by("algorithm_code") + + paginator = PageNumberPagination() + paginator.page_size = page_size or 10 + + result_page = paginator.paginate_queryset(algorithms, request) + serializer = AiAlgorithmSerializer(result_page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_algorithm_tree(request): + sql = """ + SELECT + a.id AS id, + a.classcode AS code, + a.classname AS name, + a.parentid AS parentid + FROM + ai_algorithm_class a + UNION + SELECT + b.id AS id, + b.algorithm_code AS code, + b.algorithm_name AS name, + b.algorithm_class AS parentid + FROM + ai_algorithm b + ORDER BY code + """ + + with connection.cursor() as cursor: + cursor.execute(sql) + result = cursor.fetchall() + + keys = ["id", "code", "name", "parentid"] + data = [dict(zip(keys, row)) for row in result] + return Response(data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_algorithm_list(request): + algorithm_code = request.GET.get("algorithm_code", None) + algorithm_name = request.GET.get("algorithm_name", None) + algorithm_class = request.GET.get("algorithm_class", None) + filter_kwargs = {} + if algorithm_code: + filter_kwargs["algorithm_code__icontains"] = algorithm_code + if algorithm_name: + filter_kwargs["algorithm_name__icontains"] = algorithm_name + if algorithm_class: + filter_kwargs["algorithm_class__exact"] = algorithm_class + algorithms = AiAlgorithm.objects.filter(**filter_kwargs).order_by( + "algorithm_class", "algorithm_code" + ) + serializer = AiAlgorithmSerializer(algorithms, many=True) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_algorithm_engines(request): + algorithmengines = AiAlgorithmEngine.objects.order_by("enginecode") + serializer = AiAlgorithmEngineSerializer(algorithmengines, many=True) + return Response(serializer.data) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def add_algorithm(request): + data = request.data + data["id"] = str(uuid.uuid4()) + data["creator"] = request.user.username if request.user.username else "creator" + data["create_time"] = datetime.now() + algorithm_class = data.get("algorithm_class") + algorithm_engine = data.get("algorithm_engine") + max_algorithm_code = AiAlgorithm.objects.filter(algorithm_class=algorithm_class).aggregate( + max_algorithm_code=Max(Cast("algorithm_code", CharField())) + ).get("max_algorithm_code") + max_algorithm_code = int(max_algorithm_code) if max_algorithm_code is not None else 0 + new_algorithm_code = f"{max_algorithm_code + 1:03}" + data["algorithm_code"] = new_algorithm_code + serializer = AiAlgorithmSerializer(data=data) + + if serializer.is_valid(): + serializer.save() + engine = get_object_or_404(AiAlgorithmEngine, id=algorithm_engine) + if engine.training_params_template: + try: + params = json.loads(engine.training_params_template) + params_to_save = [ + AiAlgorithmParams( + id=str(uuid.uuid4()), + algorithm_id=data["id"], + param_class="01", + param_order=param.get("param_order"), + param_name=param.get("param_name"), + param_desc=param.get("param_desc"), + param_type=param.get("param_type"), + param_unit=param.get("param_unit"), + param_range=param.get("param_range"), + default_values=param.get("default_values"), + description=param.get("description"), + ) + for param in params + ] + AiAlgorithmParams.objects.bulk_create(params_to_save) + except json.JSONDecodeError as e: + return Response( + {"error": f"Invalid JSON in training_params_template: {str(e)}"}, + status=status.HTTP_400_BAD_REQUEST, + ) + + return Response({"message": "Algorithm added successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_algorithm(request): + algorithm_id = request.GET.get("id", None) + algorithm = get_object_or_404(AiAlgorithm, id=algorithm_id) + serializer = AiAlgorithmSerializer(algorithm) + return Response(serializer.data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_algorithm(request): + data = request.data + algorithm = get_object_or_404(AiAlgorithm, id=data.get("id")) + serializer = AiAlgorithmSerializer(instance=algorithm, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "Algorithm updated successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def delete_algorithm(request): + algorithm = get_object_or_404(AiAlgorithm, id=request.GET.get("id")) + model_count = AiAlgorithmModels.objects.filter(algorithm_id=algorithm.id).count() + if model_count > 0: + return Response({"warn": "该算法已经绑定了模型,请先删除算法模型!"}, status=status.HTTP_400_BAD_REQUEST) + + train_count = AiAlgorithmTrainRecords.objects.filter(algorithm_id=algorithm.id).count() + if train_count > 0: + return Response( + {"warn": "该算法已经存在了模型训练记录,请先删除算法模型训练记录!"}, + status=status.HTTP_400_BAD_REQUEST, + ) + + try: + AiAlgorithmParams.objects.filter(algorithm_id=algorithm.id).delete() + AiAlgorithmOutput.objects.filter(algorithm_id=algorithm.id).delete() + algorithm.delete() + return Response({"message": "算法删除成功"}, status=status.HTTP_200_OK) + except Exception as e: + return Response({"error": f"算法删除失败: {str(e)}"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) diff --git a/backend/apps/algorithms/views/algorithm_calllog.py b/backend/apps/algorithms/views/algorithm_calllog.py new file mode 100644 index 0000000..a4d2731 --- /dev/null +++ b/backend/apps/algorithms/views/algorithm_calllog.py @@ -0,0 +1,77 @@ +import uuid +from datetime import datetime, timedelta + +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AiAlgorithmCallLogSerializer +from apps.core.models import AiAlgorithmCallLog + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def create_algorithm_call_log(request): + data = request.data + data["id"] = str(uuid.uuid4()) + data["log_time"] = datetime.now() + + serializer = AiAlgorithmCallLogSerializer(data=data, context={"request": request}) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "调用日志创建成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_algorithm_call_log(request): + log_id = request.GET.get("id", None) + log = get_object_or_404(AiAlgorithmCallLog, id=log_id) + serializer = AiAlgorithmCallLogSerializer(log) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_algorithm_call_logs(request): + algorithm_id = request.GET.get("algorithm_id", None) + object_code = request.GET.get("object_code", None) + caller = request.GET.get("caller", None) + + start_date = request.GET.get("start_date", None) + end_date = request.GET.get("end_date", None) + + filter_kwargs = {} + if algorithm_id: + filter_kwargs["algorithm_id"] = algorithm_id + if object_code: + filter_kwargs["object_code"] = object_code + if caller: + filter_kwargs["caller__icontains"] = caller + + if start_date and end_date: + start_datetime = datetime.strptime(start_date, "%Y-%m-%d") + end_datetime = datetime.strptime(end_date, "%Y-%m-%d") + timedelta(days=1) + filter_kwargs["log_time__range"] = (start_datetime, end_datetime) + + logs = AiAlgorithmCallLog.objects.filter(**filter_kwargs).order_by("-log_time") + + serializer = AiAlgorithmCallLogSerializer(logs, many=True) + return Response(serializer.data) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_algorithm_call_log(request): + log_id = request.GET.get("id", None) + log = get_object_or_404(AiAlgorithmCallLog, id=log_id) + log.delete() + return Response({"message": "调用日志删除成功"}) diff --git a/backend/apps/algorithms/views/algorithm_class.py b/backend/apps/algorithms/views/algorithm_class.py new file mode 100644 index 0000000..39fdd8a --- /dev/null +++ b/backend/apps/algorithms/views/algorithm_class.py @@ -0,0 +1,79 @@ +import uuid + +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AiAlgorithmClassSerializer +from apps.core.models import AiAlgorithmClass + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def create_algorithm_class(request): + data = request.data + data["id"] = str(uuid.uuid4()) + serializer = AiAlgorithmClassSerializer(data=data, context={"request": request}) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "算法创建成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_algorithm_class(request): + algorithm_id = request.GET.get("id", None) + algorithm = get_object_or_404(AiAlgorithmClass, id=algorithm_id) + serializer = AiAlgorithmClassSerializer(algorithm) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_algorithm_class(request): + classcode = request.GET.get("classcode", None) + classname = request.GET.get("classname", None) + + filter_kwargs = {} + if classcode: + filter_kwargs["classcode__icontains"] = classcode + if classname: + filter_kwargs["classname__icontains"] = classname + + algorithms = AiAlgorithmClass.objects.filter(**filter_kwargs).order_by("classcode") + serializer = AiAlgorithmClassSerializer(algorithms, many=True) + return Response(serializer.data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_algorithm_class(request): + data = request.data + algorithmclass = get_object_or_404(AiAlgorithmClass, id=data.get("id")) + serializer = AiAlgorithmClassSerializer(instance=algorithmclass, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "算法更新成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_algorithm_class(request): + algorithm_id = request.GET.get("id", None) + algorithm = get_object_or_404(AiAlgorithmClass, id=algorithm_id) + algorithm.delete() + return Response({"message": "算法删除成功"}) diff --git a/backend/apps/algorithms/views/algorithm_models.py b/backend/apps/algorithms/views/algorithm_models.py new file mode 100644 index 0000000..330962b --- /dev/null +++ b/backend/apps/algorithms/views/algorithm_models.py @@ -0,0 +1,637 @@ +import os +import re +import shutil +import subprocess +import sys +import tempfile +import uuid +from urllib.parse import quote +from datetime import datetime + +from django.core.exceptions import ObjectDoesNotExist +from django.db import transaction +from django.http import HttpResponse +from django.shortcuts import get_object_or_404 +from rest_framework.decorators import api_view, parser_classes, permission_classes +from rest_framework.parsers import MultiPartParser +from rest_framework.permissions import AllowAny, IsAuthenticated +from rest_framework.response import Response + +from django.conf import settings +from apps.common.serializers import AiAlgorithmModelsSerializer +from apps.core.models import AiAlgorithm, AiAlgorithmClass, AiAlgorithmModels +import yaml +try: + from apps.algorithms.algorithm.pytorch.YoloDetector import YoloDetector +except Exception: + YoloDetector = None + +from apps.training.views.algorithm_trainrecords import get_file_extension + + +def _convert_onnx_with_repo_ultralytics(src_file, onnx_file, imgsz=640): + repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../..")) + ultralytics_repo = os.path.join(repo_root, "ultralytics_yolo11") + if not os.path.isdir(ultralytics_repo): + raise FileNotFoundError(f"未找到仓库内 ultralytics_yolo11 目录:{ultralytics_repo}") + default_cfg_path = os.path.join(ultralytics_repo, "ultralytics", "cfg", "default.yaml") + if not os.path.exists(default_cfg_path): + raise FileNotFoundError(f"未找到 default.yaml:{default_cfg_path}") + with open(default_cfg_path, "r", encoding="utf-8") as f: + old_cfg_text = f.read() + cfg_data = yaml.safe_load(old_cfg_text) or {} + cfg_data["model"] = str(src_file).replace("\\", "/") + cfg_data["format"] = "rknn" + cfg_data["batch"] = 1 + cfg_data["imgsz"] = int(imgsz) + cfg_data["dynamic"] = False + with open(default_cfg_path, "w", encoding="utf-8") as f: + yaml.dump(cfg_data, f, allow_unicode=True, sort_keys=False) + env = os.environ.copy() + env["PYTHONPATH"] = ultralytics_repo + (os.pathsep + env["PYTHONPATH"] if env.get("PYTHONPATH") else "") + try: + process = subprocess.run( + [sys.executable, "ultralytics/engine/exporter.py"], + cwd=ultralytics_repo, + capture_output=True, + text=True, + encoding="utf-8", + errors="ignore", + env=env, + ) + finally: + with open(default_cfg_path, "w", encoding="utf-8") as f: + f.write(old_cfg_text) + if process.returncode != 0: + raise RuntimeError(process.stderr or process.stdout or "瑞芯微导出失败") + export_path = os.path.splitext(src_file)[0] + ".onnx" + if not os.path.exists(export_path): + raise FileNotFoundError(f"未找到导出的 ONNX 文件:{export_path}") + if os.path.abspath(export_path) != os.path.abspath(onnx_file): + shutil.copy2(export_path, onnx_file) + + +def _convert_onnx_with_env_ultralytics(src_file, onnx_file, algorithm_engine, onnx_type): + from ultralytics import YOLO + + model = YOLO(src_file) + export_kwargs = {"format": "onnx", "batch": 1, "imgsz": 640, "dynamic": False} + if str(onnx_type) == "huawei": + export_kwargs["opset"] = 12 + export_kwargs["simplify"] = False + export_path = str(model.export(**export_kwargs)) + if not os.path.isabs(export_path): + export_path = os.path.abspath(export_path) + if not os.path.exists(export_path): + raise FileNotFoundError(f"未找到导出的 ONNX 文件:{export_path}") + if os.path.abspath(export_path) != os.path.abspath(onnx_file): + shutil.copy2(export_path, onnx_file) + + +@api_view(["POST"]) +@parser_classes([MultiPartParser]) +@permission_classes([IsAuthenticated]) +def upload_algorithm_modelfile(request): + data = request.data + data["id"] = str(uuid.uuid4()) + data["upload_time"] = datetime.now() + data["model_createtime"] = datetime.now() + data["uploader"] = request.user.username if request.user and request.user.is_authenticated else '' + algorithm_id = data.get("algorithm_id") + algorithm_classid = data.get("algorithm_classid") + model_version = data.get("model_version") + + ai_algorithm = get_object_or_404(AiAlgorithm, id=algorithm_id) + algorithm_name = ai_algorithm.algorithm_name + + safe_algorithm_name = re.sub(r'[^\w\-]', '-', algorithm_name).strip('-') + if not safe_algorithm_name: + safe_algorithm_name = 'unknown' + + uploadfiles = request.FILES.getlist("uploadfile") + bucket_name = 'archived-model' + + try: + from apps.common.minio_client import minio_storage + except Exception: + from common.minio_client import minio_storage + + for uploadfile in uploadfiles: + name, extension = os.path.splitext(uploadfile.name) + new_file_name = f"model-{model_version}{extension}" + minio_object_path = f"{safe_algorithm_name}/{model_version}/{new_file_name}" + + minio_storage.upload_bytes( + bucket_name, + minio_object_path, + uploadfile.read(), + ) + + data["model_filename"] = new_file_name + data["model_filepath"] = minio_object_path + data["model_bucketpath"] = f"{bucket_name}/{minio_object_path}" + + data["model_status"] = "01" + serializer = AiAlgorithmModelsSerializer(data=data, context={"request": request}) + if serializer.is_valid(): + serializer.save() + return Response({"message": "模型创建成功"}) + return Response({"error": "无效的数据", "details": serializer.errors}, status=400) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_algorithm_model(request): + model_id = request.GET.get("id", None) + model = get_object_or_404(AiAlgorithmModels, id=model_id) + serializer = AiAlgorithmModelsSerializer(model) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_algorithm_model(request): + algorithm_id = request.GET.get("algorithm_id", None) + model_version = request.GET.get("model_version", None) + model_filename = request.GET.get("model_filename", None) + model_status = request.GET.get("model_status", None) + filter_kwargs = {} + if algorithm_id: + filter_kwargs["algorithm_id"] = algorithm_id + if model_version: + filter_kwargs["model_version"] = model_version + if model_status: + filter_kwargs["model_status"] = model_status + if model_filename: + filter_kwargs["model_filename__icontains"] = model_filename + + models = AiAlgorithmModels.objects.filter(**filter_kwargs).order_by("-is_using", "model_version") + + serializer = AiAlgorithmModelsSerializer(models, many=True) + data = serializer.data + + for item in data: + try: + algorithm = AiAlgorithm.objects.get(id=item.get('algorithm_id')) + item['algorithm_name'] = algorithm.algorithm_name + except ObjectDoesNotExist: + item['algorithm_name'] = '' + if item.get('onnx_bucketpath'): + item['onnx_name'] = item['onnx_bucketpath'].split("/")[-1] + else: + item['onnx_name'] = '' + + return Response(data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_algorithm_model(request): + data = request.data + model = get_object_or_404(AiAlgorithmModels, id=data.get("id")) + serializer = AiAlgorithmModelsSerializer(instance=model, data=data, partial=True) + if serializer.is_valid(): + serializer.save() + return Response({"message": "模型更新成功"}) + return Response({"error": "无效的数据", "details": serializer.errors}, status=400) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def set_algorithm_default_model(request): + data = request.data + current_model = get_object_or_404(AiAlgorithmModels, id=data.get("id")) + algorithm_id = current_model.algorithm_id + + with transaction.atomic(): + AiAlgorithmModels.objects.filter(algorithm_id=algorithm_id).exclude(id=current_model.id).update( + is_using="0" + ) + + AiAlgorithmModels.objects.filter(id=current_model.id).update(is_using="1") + + AiAlgorithm.objects.filter(id=algorithm_id).update( + link_model={ + "model_id": current_model.id, + "model_filename": current_model.model_filename, + "model_version": current_model.model_version, + "model_createtime": current_model.model_createtime.strftime("%Y-%m-%d") + if current_model.model_createtime + else None, + } + ) + + return Response({"message": "ok"}) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def issue_algorithm_model(request): + data = request.data + model_id = data.get("id") + if not model_id: + return Response({"error": "缺少参数:id"}, status=400) + current_model = get_object_or_404(AiAlgorithmModels, id=model_id) + algorithm_id = current_model.algorithm_id + with transaction.atomic(): + AiAlgorithmModels.objects.filter(algorithm_id=algorithm_id).exclude(id=current_model.id).update( + custom2="0" + ) + AiAlgorithmModels.objects.filter(id=current_model.id).update(custom2="1") + return Response({"message": "模型下发成功"}) + + +@api_view(["POST"]) +@permission_classes([AllowAny]) +def download_published_onnx_model(request): + data = request.data + algorithm_code = data.get("algorithm_code") + algorithm_engine = data.get("algorithm_engine") + onnx_type = str(data.get("onnx_type") or "").strip() + if not algorithm_code or not algorithm_engine: + return Response({"message": "缺少参数:algorithm_code 或 algorithm_engine"}, status=400) + if onnx_type and onnx_type not in {"general", "rockchip", "huawei"}: + return Response({"message": "参数无效:onnx_type"}, status=400) + + algorithm = ( + AiAlgorithm.objects.filter(algorithm_code=algorithm_code, algorithm_engine=algorithm_engine) + .order_by("create_time") + .first() + ) + if not algorithm: + return Response({"message": "算法不存在"}, status=404) + + model_filters = {"algorithm_id": algorithm.id, "custom2": "1"} + if onnx_type: + model_filters["custom3"] = onnx_type + published_model = AiAlgorithmModels.objects.filter(**model_filters).order_by("-upload_time").first() + if not published_model: + if onnx_type: + return Response({"message": f"算法未发布或未找到类型为 {onnx_type} 的ONNX模型"}, status=404) + return Response({"message": "算法未发布"}, status=404) + + onnx_value = str(published_model.custom1 or "").strip() + if not onnx_value: + return Response({"message": "算法未发布"}, status=404) + + root_path = settings.FILESPACE_ROOT_PATH + candidate_paths = [] + if os.path.isabs(onnx_value): + candidate_paths.append(onnx_value) + else: + candidate_paths.append(os.path.join(root_path, str(published_model.model_filepath or ""), onnx_value)) + candidate_paths.append(os.path.join(root_path, onnx_value)) + onnx_abs_path = next((p for p in candidate_paths if os.path.exists(p)), None) + if not onnx_abs_path: + return Response({"message": "ONNX模型文件不存在"}, status=404) + + with open(onnx_abs_path, "rb") as f: + payload = f.read() + response = HttpResponse(payload, content_type="application/octet-stream") + response["Content-Disposition"] = f'attachment; filename="{os.path.basename(onnx_abs_path)}"' + model_labels = str(published_model.model_labels or "") + response["X-Model-Labels"] = quote(model_labels, safe="") + response["X-Model-Labels-Encoding"] = "url" + return response + + +@api_view(["DELETE", "POST"]) +@permission_classes([IsAuthenticated]) +def delete_algorithm_model(request): + model_id = request.GET.get("id", None) + model = get_object_or_404(AiAlgorithmModels, id=model_id) + + try: + from apps.common.minio_client import minio_storage + except Exception: + from common.minio_client import minio_storage + + if model.model_bucketpath: + try: + parts = model.model_bucketpath.split('/') + bucket_name = parts[0] + object_name = '/'.join(parts[1:]) + minio_storage.delete_object(bucket_name, object_name) + except Exception: + pass + + if model.report_bucketpath: + try: + parts = model.report_bucketpath.split('/') + bucket_name = parts[0] + object_name = '/'.join(parts[1:]) + minio_storage.delete_object(bucket_name, object_name) + except Exception: + pass + + model.delete() + return Response({"message": "模型删除成功"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def export_algorithm_model(request): + model_id = request.GET.get("id", None) + if not model_id: + return Response({"message": "缺少参数:id"}, status=400) + + ai_model = get_object_or_404(AiAlgorithmModels, id=model_id) + + try: + from apps.common.minio_client import minio_storage + except Exception: + from common.minio_client import minio_storage + + model_bucketpath = ai_model.model_bucketpath + if model_bucketpath: + parts = model_bucketpath.split('/') + bucket_name = parts[0] + object_name = '/'.join(parts[1:]) + try: + response = minio_storage.client.get_object(bucket_name, object_name) + content = response.read() + response.close() + response.release_conn() + filename = ai_model.model_filename or f"model-{ai_model.model_version}.pt" + response = HttpResponse(content, content_type='application/octet-stream') + response['Content-Disposition'] = f'attachment; filename="{filename}"' + return response + except Exception as e: + return Response({"message": f"下载失败:{str(e)}"}, status=500) + + filespace_root_path = settings.FILESPACE_ROOT_PATH + src_file = os.path.join(filespace_root_path, str(ai_model.model_filepath or ""), ai_model.model_filename or "") + if os.path.exists(src_file): + with open(src_file, 'rb') as f: + content = f.read() + filename = ai_model.model_filename or f"model-{ai_model.model_version}.pt" + response = HttpResponse(content, content_type='application/octet-stream') + response['Content-Disposition'] = f'attachment; filename="{filename}"' + return response + + return Response({"message": "模型文件不存在"}, status=404) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def convert_algorithm_model_onnx(request): + data = request.data + model_id = data.get("id") + onnx_type = str(data.get("onnx_type") or "").strip() + if not model_id: + return Response({"message": "缺少参数:id"}, status=400) + if onnx_type not in {"general", "rockchip", "huawei"}: + return Response({"message": "缺少参数或参数无效:onnx_type"}, status=400) + ai_model = get_object_or_404(AiAlgorithmModels, id=model_id) + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_model.algorithm_id) + model_filename = str(ai_model.model_filename or "") + ext = os.path.splitext(model_filename)[1].lower() + if ext not in {".pt", ".pth"}: + return Response({"message": f"当前模型后缀不支持转换:{ext}"}, status=400) + + try: + from apps.common.minio_client import minio_storage + except Exception: + from common.minio_client import minio_storage + + model_bucketpath = ai_model.model_bucketpath + if not model_bucketpath: + return Response({"message": "模型文件未存储在MinIO中"}, status=400) + + parts = model_bucketpath.split('/') + bucket_name = parts[0] + model_object_name = '/'.join(parts[1:]) + + local_model_dir = os.path.join(settings.MODEL_ROOT_PATH, *parts[1:-1]).replace('\\', '/') + os.makedirs(local_model_dir, exist_ok=True) + + src_file = os.path.join(local_model_dir, model_filename).replace('\\', '/') + if not os.path.exists(src_file): + try: + minio_storage.download_file(bucket_name, model_object_name, src_file) + except Exception as e: + return Response({"message": f"从MinIO下载模型文件失败:{str(e)}"}, status=400) + + onnx_name = f"{os.path.splitext(model_filename)[0]}.onnx" + onnx_file = os.path.join(local_model_dir, onnx_name) + + try: + if onnx_type == "rockchip": + if ai_algorithm.algorithm_engine not in {"01", "04"}: + return Response({"message": "瑞芯微转换仅支持YOLO目标检测与YOLO-Seg分割模型"}, status=400) + _convert_onnx_with_repo_ultralytics(src_file, onnx_file, imgsz=640) + else: + if ai_algorithm.algorithm_engine not in {"01", "04"}: + return Response({"message": "通用/Huawei转换当前仅支持YOLO目标检测与YOLO-Seg分割模型"}, status=400) + _convert_onnx_with_env_ultralytics(src_file, onnx_file, ai_algorithm.algorithm_engine, onnx_type) + except Exception as e: + return Response({"message": f"模型转换失败:{str(e)}"}, status=400) + + if not os.path.exists(onnx_file): + return Response({"message": "模型转换失败:未生成ONNX文件"}, status=400) + + onnx_object_name = '/'.join(parts[1:-1] + [onnx_name]) + try: + minio_storage.upload_file(bucket_name, onnx_object_name, onnx_file) + except Exception as e: + return Response({"message": f"上传ONNX文件到MinIO失败:{str(e)}"}, status=400) + + onnx_bucketpath = f"{bucket_name}/{onnx_object_name}" + + AiAlgorithmModels.objects.filter(id=model_id).update( + custom1=onnx_name, + custom3=onnx_type, + onnx_bucketpath=onnx_bucketpath, + ) + return Response({"message": "模型转换成功", "onnx_name": onnx_name, "onnx_type": onnx_type, "onnx_bucketpath": onnx_bucketpath}) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +@parser_classes([MultiPartParser]) +def algorithm_model_predict(request): + try: + type = request.data.get("type", "1") + + if type == "1": + image_file = request.data.get("image") + if not image_file: + return Response({"error": "没有提供图像文件"}, status=400) + + with tempfile.NamedTemporaryFile(delete=False, suffix=get_file_extension(image_file.name)) as temp_file: + temp_file_path = temp_file.name + temp_file.write(image_file.read()) + image_url = temp_file_path + else: + filename = request.data.get("image_name", None) + if not filename: + return Response({"error": "没有提供图像文件名。"}, status=400) + image_url = os.path.join(settings.FILESPACE_ROOT_PATH, filename) + + model_id = request.data.get("id") + ai_model = get_object_or_404(AiAlgorithmModels, id=model_id) + + model_path = None + + if ai_model.model_bucketpath: + try: + from apps.common.minio_client import minio_storage + except Exception: + from common.minio_client import minio_storage + + parts = ai_model.model_bucketpath.split('/') + bucket_name = parts[0] + object_name = '/'.join(parts[1:]) + + local_model_dir = os.path.join(settings.MODEL_ROOT_PATH, parts[1], parts[2]) + os.makedirs(local_model_dir, exist_ok=True) + + model_filename = ai_model.model_filename + local_model_path = os.path.join(local_model_dir, model_filename) + + if not os.path.exists(local_model_path): + minio_storage.download_file(bucket_name, object_name, local_model_path) + + model_path = local_model_path + else: + filespace_root_path = settings.FILESPACE_ROOT_PATH + model_path = os.path.join(filespace_root_path, ai_model.model_filepath, ai_model.model_filename) + + if not model_path or not os.path.exists(model_path): + return Response({"error": "模型文件不存在"}, status=404) + + if YoloDetector is None: + return Response( + {"error": "算法依赖未安装,请先安装 requirements/algorithms.txt"}, + status=503, + ) + detector = YoloDetector(model_path=model_path, image_path=image_url, labels=ai_model.model_labels) + result = detector.detect() + + return Response(result) + except ObjectDoesNotExist: + return Response({"error": "未找到模型。"}, status=404) + except Exception as e: + import traceback + traceback.print_exc() + return Response({"error": str(e)}, status=500) + finally: + if "temp_file_path" in locals() and os.path.exists(temp_file_path): + os.remove(temp_file_path) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_algorithm_default_images(request): + model_id = request.GET.get("id", None) + model = get_object_or_404(AiAlgorithmModels, id=model_id) + image_path = os.path.join(settings.FILESPACE_ROOT_PATH, model.model_filepath, "images") + + try: + if not os.path.exists(image_path): + os.makedirs(image_path) + image_names = os.listdir(image_path) + imagenames = [] + temp = model.model_filepath + "/images/" + for image_name in image_names: + imagenames.append(temp + image_name) + except FileNotFoundError: + return Response({"error": "Images directory not found"}, status=404) + return Response(imagenames) + + +@api_view(["POST"]) +@parser_classes([MultiPartParser]) +@permission_classes([IsAuthenticated]) +def upload_predict_default_images(request): + data = request.data + model_id = data.get("id", None) + model = get_object_or_404(AiAlgorithmModels, id=model_id) + + uploadfiles = request.FILES.getlist("uploadfiles") + for uploadfile in uploadfiles: + file_path = os.path.join(settings.FILESPACE_ROOT_PATH, model.model_filepath, "images") + if not os.path.exists(file_path): + os.makedirs(file_path) + file_pathname = os.path.join(file_path, uploadfile.name) + with open(file_pathname, "wb") as file: + file.write(uploadfile.read()) + return Response({"message": "测试图片上传成功!"}) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def publish_model_to_terminals(request): + """将算法模型发布到智能终端 — 支持发布到多个终端 + + 请求体示例: + { + "model_id": "算法模型ID", + "terminal_ids": ["终端ID1", "终端ID2"] + } + """ + model_id = request.data.get("model_id") + raw_ids = request.data.get("terminal_ids", []) + + if not model_id: + return Response({"error": "缺少必要参数:model_id"}, status=400) + if not raw_ids: + return Response({"error": "缺少必要参数:terminal_ids"}, status=400) + + # 归一化 terminal_ids:支持 JSON 字符串或列表 + if isinstance(raw_ids, str): + import json as _json + try: + raw_ids = _json.loads(raw_ids) + except Exception: + raw_ids = [raw_ids] + terminal_ids = [tid for tid in raw_ids if tid] if isinstance(raw_ids, list) else [] + + if not terminal_ids: + return Response({"error": "terminal_ids 为空"}, status=400) + + # 查找算法模型 + ai_model = get_object_or_404(AiAlgorithmModels, id=model_id) + + # 查找目标终端 + from apps.core.models import AiSmartTerminal + terminals = AiSmartTerminal.objects.filter(id__in=terminal_ids) + if not terminals.exists(): + return Response({"error": "未找到匹配的终端设备"}, status=404) + + # 构造模型路径:取onnx_bucketpath + model_path = ai_model.onnx_bucketpath + model_name = model_path.split("/")[-1] + + # 批量更新终端 + publish_time = datetime.now() + publish_user = request.user.username + terminals.update( + model_id=str(ai_model.id), + model_name=model_name, + model_version=ai_model.model_version or "", + model_path=model_path, + model_publish_time=publish_time, + model_publish_user=publish_user, + ) + + from apps.common.serializers import AiSmartTerminalSerializer + updated = AiSmartTerminal.objects.filter(id__in=terminal_ids) + serializer = AiSmartTerminalSerializer(updated, many=True) + return Response({ + "published_count": len(terminal_ids), + "model_id": str(ai_model.id), + "model_version": ai_model.model_version, + "model_path": model_path, + "terminals": serializer.data, + }) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def delete_predict_default_image(request): + data = request.data + file_name = data.get("file_name", None) + file_pathname = os.path.join(settings.FILESPACE_ROOT_PATH, file_name) + os.remove(file_pathname) + return Response({"message": "模型缺省检测图片删除成功!"}) diff --git a/backend/apps/algorithms/views/algorithm_output.py b/backend/apps/algorithms/views/algorithm_output.py new file mode 100644 index 0000000..01d4c33 --- /dev/null +++ b/backend/apps/algorithms/views/algorithm_output.py @@ -0,0 +1,80 @@ +import uuid + +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AiAlgorithmOutputSerializer +from apps.core.models import AiAlgorithmOutput + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def create_algorithm_output(request): + data = request.data + data["id"] = str(uuid.uuid4()) + serializer = AiAlgorithmOutputSerializer(data=data, context={"request": request}) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "算法输出项创建成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_algorithm_output(request): + item_id = request.GET.get("id", None) + item = get_object_or_404(AiAlgorithmOutput, id=item_id) + serializer = AiAlgorithmOutputSerializer(item) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_algorithm_output(request): + algorithm_id = request.GET.get("algorithm_id", None) + item_name = request.GET.get("item_name", None) + + filter_kwargs = {} + if algorithm_id: + filter_kwargs["algorithm_id"] = algorithm_id + if item_name: + filter_kwargs["item_name__icontains"] = item_name + + items = AiAlgorithmOutput.objects.filter(**filter_kwargs).order_by("item_order") + + serializer = AiAlgorithmOutputSerializer(items, many=True) + return Response(serializer.data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_algorithm_output(request): + data = request.data + item = get_object_or_404(AiAlgorithmOutput, id=data.get("id")) + serializer = AiAlgorithmOutputSerializer(instance=item, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "算法输出项更新成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_algorithm_output(request): + item_id = request.GET.get("id", None) + item = get_object_or_404(AiAlgorithmOutput, id=item_id) + item.delete() + return Response({"message": "算法输出项删除成功"}) diff --git a/backend/apps/algorithms/views/algorithm_params.py b/backend/apps/algorithms/views/algorithm_params.py new file mode 100644 index 0000000..e6cdbfb --- /dev/null +++ b/backend/apps/algorithms/views/algorithm_params.py @@ -0,0 +1,83 @@ +import uuid + +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AiAlgorithmParamsSerializer +from apps.core.models import AiAlgorithmParams + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def create_algorithm_params(request): + data = request.data + data["id"] = str(uuid.uuid4()) + + serializer = AiAlgorithmParamsSerializer(data=data, context={"request": request}) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "算法参数创建成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_algorithm_params(request): + param_id = request.GET.get("id", None) + param = get_object_or_404(AiAlgorithmParams, id=param_id) + serializer = AiAlgorithmParamsSerializer(param) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_algorithm_params(request): + algorithm_id = request.GET.get("algorithm_id", None) + param_name = request.GET.get("param_name", None) + param_class = request.GET.get("param_class", None) + filter_kwargs = {} + if algorithm_id: + filter_kwargs["algorithm_id"] = algorithm_id + if param_class: + filter_kwargs["param_class"] = param_class + if param_name: + filter_kwargs["param_name__icontains"] = param_name + + params = AiAlgorithmParams.objects.filter(**filter_kwargs).order_by("param_order") + + serializer = AiAlgorithmParamsSerializer(params, many=True) + return Response(serializer.data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_algorithm_params(request): + data = request.data + param = get_object_or_404(AiAlgorithmParams, id=data.get("id")) + serializer = AiAlgorithmParamsSerializer(instance=param, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "算法参数更新成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_algorithm_params(request): + param_id = request.GET.get("id", None) + param = get_object_or_404(AiAlgorithmParams, id=param_id) + param.delete() + return Response({"message": "算法参数删除成功"}) diff --git a/backend/apps/annotation/__init__.py b/backend/apps/annotation/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/annotation/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/annotation/apps.py b/backend/apps/annotation/apps.py new file mode 100644 index 0000000..48ff711 --- /dev/null +++ b/backend/apps/annotation/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class AnnotationConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.annotation" + diff --git a/backend/apps/annotation/views/__init__.py b/backend/apps/annotation/views/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/annotation/views/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/annotation/views/annotate_team.py b/backend/apps/annotation/views/annotate_team.py new file mode 100644 index 0000000..0a68958 --- /dev/null +++ b/backend/apps/annotation/views/annotate_team.py @@ -0,0 +1,181 @@ +import uuid + +from django.db import transaction +from django.db.models import CharField, Max +from django.db.models.functions import Cast +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response +from rest_framework.utils import json + +from apps.common.serializers import AIAnnotateTeamMemberSerializer, AIAnnotateTeamSerializer +from apps.core.models import AIAnnotateTeam, AIAnnotateTeamMember + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def create_annotate_team(request): + data = request.data + data["id"] = str(uuid.uuid4()) + max_team_code = AIAnnotateTeam.objects.aggregate( + team_code=Max(Cast("team_code", CharField())) + ).get("team_code") + max_team_code = int(max_team_code) if max_team_code is not None else 0 + new_team_code = f"{max_team_code + 1:04}" + data["team_code"] = new_team_code + data["status"] = "01" + serializer = AIAnnotateTeamSerializer(data=data) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "团队创建成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def add_team_members(request): + data = request.data + team_id = data.get("team_id") + josn_str = data.get("team_members") + members = json.loads(josn_str) + + objects_to_save = [] + + for member in members: + if not AIAnnotateTeamMember.objects.filter( + team_id=team_id, member_account=member.get("member_account") + ).exists(): + member_obj = AIAnnotateTeamMember( + id=str(uuid.uuid4()), + team_id=team_id, + member_account=member.get("member_account"), + member_name=member.get("member_name"), + member_email=member.get("member_email"), + ) + objects_to_save.append(member_obj) + + AIAnnotateTeamMember.objects.bulk_create(objects_to_save) + return Response({"message": "团队成员添加成功"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_annotate_team(request): + team_id = request.GET.get("id", None) + team = get_object_or_404(AIAnnotateTeam, id=team_id) + serializer = AIAnnotateTeamSerializer(team) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_annotate_team(request): + team_code = request.GET.get("team_code", None) + team_name = request.GET.get("team_name", None) + organization = request.GET.get("organization", None) + page_size = request.GET.get("page_size", None) + filter_kwargs = {} + if team_code: + filter_kwargs["team_code__icontains"] = team_code + if team_name: + filter_kwargs["team_name__icontains"] = team_name + if organization: + filter_kwargs["organization"] = organization + + teams = AIAnnotateTeam.objects.filter(**filter_kwargs).order_by("team_code") + + paginator = PageNumberPagination() + paginator.page_size = page_size or 10 + result_page = paginator.paginate_queryset(teams, request) + serializer = AIAnnotateTeamSerializer(result_page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_team_members(request): + team_id = request.GET.get("team_id", None) + filter_kwargs = {} + if team_id: + filter_kwargs["team_id"] = team_id + + members = AIAnnotateTeamMember.objects.filter(**filter_kwargs).order_by( + "-member_role", "member_name" + ) + serializer = AIAnnotateTeamMemberSerializer(members, many=True) + return Response(serializer.data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_annotate_team(request): + data = request.data + team = get_object_or_404(AIAnnotateTeam, id=data.get("id")) + serializer = AIAnnotateTeamSerializer(instance=team, data=data, partial=True) + if serializer.is_valid(): + serializer.save() + return Response({"message": "团队更新成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def update_team_member(request): + data = request.data + team_member = get_object_or_404(AIAnnotateTeamMember, id=data.get("id")) + member_role = data.get("member_role") + if member_role == "leader": + AIAnnotateTeamMember.objects.filter(team_id=team_member.team_id).exclude( + id__in=team_member.id + ).update(member_role="labeler") + AIAnnotateTeam.objects.filter(id=team_member.team_id).update( + team_leader_id=team_member.member_account, + team_leader_name=team_member.member_name, + ) + serializer = AIAnnotateTeamMemberSerializer(instance=team_member, data=data, partial=True) + if serializer.is_valid(): + serializer.save() + return Response({"message": "团队成员更新成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_annotate_team(request): + team_id = request.GET.get("id", None) + team = get_object_or_404(AIAnnotateTeam, id=team_id) + team.delete() + return Response({"message": "团队删除成功"}) + + +@api_view(["DELETE"]) +def delete_team_members(request): + member_ids = request.GET.get("ids", None) + + if member_ids is None: + return Response({"message": "未选择成员ID"}, status=400) + + ids = [id for id in member_ids.split(",")] + if ids: + queryset = AIAnnotateTeamMember.objects.filter(id__in=ids) + queryset.delete() + + return Response({"message": "团队成员删除成功"}) diff --git a/backend/apps/cloud_terminal/__init__.py b/backend/apps/cloud_terminal/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/cloud_terminal/apps.py b/backend/apps/cloud_terminal/apps.py new file mode 100644 index 0000000..c2fd8e2 --- /dev/null +++ b/backend/apps/cloud_terminal/apps.py @@ -0,0 +1,19 @@ +import logging + +from django.apps import AppConfig + +logger = logging.getLogger(__name__) + + +class CloudTerminalConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.cloud_terminal" + verbose_name = "智能终端(云端孪生镜像)" + + def ready(self): + """Django 启动时自动注册离线检测定时任务(每30秒执行一次)""" + from .scheduler import start_offline_checker + try: + start_offline_checker() + except Exception: + logger.exception("启动离线检测调度器失败") diff --git a/backend/apps/cloud_terminal/consumers.py b/backend/apps/cloud_terminal/consumers.py new file mode 100644 index 0000000..84c45d9 --- /dev/null +++ b/backend/apps/cloud_terminal/consumers.py @@ -0,0 +1,26 @@ +"""智能终端状态 WebSocket 消费者 — 向前端推送终端上下线状态变化""" +import json + +from channels.generic.websocket import AsyncWebsocketConsumer + + +class TerminalStatusConsumer(AsyncWebsocketConsumer): + """终端状态消费者 + + WebSocket 路径: ws://host/ws/terminal_status/ + Channel Group: terminal_status + 消息类型: terminal.status + """ + + async def connect(self): + # 加入 terminal_status 广播组 + await self.channel_layer.group_add("terminal_status", self.channel_name) + await self.accept() + + async def disconnect(self, close_code): + # 离开 terminal_status 广播组 + await self.channel_layer.group_discard("terminal_status", self.channel_name) + + async def terminal_status(self, event): + """处理终端状态变化事件,转发给前端""" + await self.send(text_data=json.dumps(event["data"], ensure_ascii=False)) diff --git a/backend/apps/cloud_terminal/management/__init__.py b/backend/apps/cloud_terminal/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/cloud_terminal/management/commands/__init__.py b/backend/apps/cloud_terminal/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/apps/cloud_terminal/management/commands/check_terminal_offline.py b/backend/apps/cloud_terminal/management/commands/check_terminal_offline.py new file mode 100644 index 0000000..6616316 --- /dev/null +++ b/backend/apps/cloud_terminal/management/commands/check_terminal_offline.py @@ -0,0 +1,66 @@ +"""离线状态检测定时任务 +检测所有超时未发送心跳的终端,标记为离线,并通过 WebSocket 推送通知。 +""" +from datetime import timedelta + +from django.core.management.base import BaseCommand +from django.utils.timezone import now + +from apps.core.models import AiSmartTerminal + + +class Command(BaseCommand): + help = "检测超时心跳的终端并标记为离线" + + HEARTBEAT_TIMEOUT = timedelta(minutes=2) # 心跳超时阈值:5分钟 + + def handle(self, *args, **options): + threshold = now() - self.HEARTBEAT_TIMEOUT + + offline_terminals = AiSmartTerminal.objects.filter( + online_status=1, + last_heartbeat_time__isnull=False, + last_heartbeat_time__lt=threshold, + ) + + if not offline_terminals.exists(): + self.stdout.write("所有终端在线状态正常") + return + + offline_list = list(offline_terminals.values("stcd", "stnm")) + count = offline_terminals.update(online_status=0) + + self.stdout.write( + self.style.WARNING(f"标记 {count} 个终端为离线:") + ) + for t in offline_list: + self.stdout.write(f" - {t['stcd']} ({t['stnm']})") + + # WebSocket 推送离线通知 + self._push_offline_notification(offline_list, count) + + def _push_offline_notification(self, offline_list: list, count: int): + """通过 WebSocket 向前端推送离线通知""" + try: + from asgiref.sync import async_to_sync + from channels.layers import get_channel_layer + + channel_layer = get_channel_layer() + if channel_layer is None: + self.stdout.write("未检测到 Channel Layer,跳过 WebSocket 推送") + return + + async_to_sync(channel_layer.group_send)( + "terminal_status", + { + "type": "terminal.status", + "data": { + "event": "offline", + "count": count, + "terminals": offline_list, + }, + }, + ) + self.stdout.write(f"WebSocket 推送完成: {count} 个终端离线") + except Exception as e: + self.stdout.write(self.style.ERROR(f"WebSocket 推送失败: {e}")) diff --git a/backend/apps/cloud_terminal/scheduler.py b/backend/apps/cloud_terminal/scheduler.py new file mode 100644 index 0000000..29943a2 --- /dev/null +++ b/backend/apps/cloud_terminal/scheduler.py @@ -0,0 +1,79 @@ +"""离线检测定时调度器 + +使用 APScheduler 在 Django 进程中启动后台线程,每 30 秒检测一次终端心跳超时。 +""" +import logging + +from apscheduler.schedulers.background import BackgroundScheduler +from django.utils.timezone import now + +logger = logging.getLogger(__name__) + +CHECK_INTERVAL_SECONDS = 30 # 检测间隔:30 秒 + +_scheduler: BackgroundScheduler | None = None + + +def _check_offline_terminals(): + """检测超时心跳的终端(3 分钟内未心跳),标记为离线并推送 WebSocket 通知""" + from datetime import timedelta + + from apps.core.models import AiSmartTerminal + + HEARTBEAT_TIMEOUT = timedelta(minutes=3) + threshold = now() - HEARTBEAT_TIMEOUT + + offline_terminals = AiSmartTerminal.objects.filter( + online_status=1, + last_heartbeat_time__isnull=False, + last_heartbeat_time__lt=threshold, + ) + + if not offline_terminals.exists(): + return + + offline_list = list(offline_terminals.values("stcd", "stnm")) + count = offline_terminals.update(online_status=0) + + logger.warning("标记 %d 个终端为离线:", count) + for t in offline_list: + logger.warning(" - %s (%s)", t["stcd"], t["stnm"]) + + # WebSocket 推送离线通知 + try: + from asgiref.sync import async_to_sync + from channels.layers import get_channel_layer + + channel_layer = get_channel_layer() + if channel_layer is not None: + async_to_sync(channel_layer.group_send)( + "terminal_status", + { + "type": "terminal.status", + "data": { + "event": "offline", + "count": count, + "terminals": offline_list, + }, + }, + ) + except Exception: + logger.exception("WebSocket 推送失败") + + +def start_offline_checker(): + """启动离线检测后台调度器(仅在主进程中启动一次)""" + global _scheduler + if _scheduler is not None: + return # 已启动,避免重复 + + _scheduler = BackgroundScheduler(daemon=True) + _scheduler.add_job( + _check_offline_terminals, + "interval", + seconds=CHECK_INTERVAL_SECONDS, + id="check_terminal_offline", + replace_existing=True, + ) + _scheduler.start() + logger.info("离线检测调度器已启动,每 %d 秒检测一次", CHECK_INTERVAL_SECONDS) diff --git a/backend/apps/cloud_terminal/smart_terminal.py b/backend/apps/cloud_terminal/smart_terminal.py new file mode 100644 index 0000000..9072ef4 --- /dev/null +++ b/backend/apps/cloud_terminal/smart_terminal.py @@ -0,0 +1,461 @@ +"""智能终端(云端孪生镜像)— API 视图""" +import uuid +from datetime import datetime, timedelta + +from django.conf import settings +from django.db.models import Q +from django.http import FileResponse, JsonResponse, StreamingHttpResponse +from django.shortcuts import get_object_or_404 +from django.utils.timezone import now +from minio import Minio +from rest_framework import status +from rest_framework.authentication import BaseAuthentication +from rest_framework.decorators import api_view, authentication_classes, permission_classes +from rest_framework.exceptions import AuthenticationFailed +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import BasePermission, IsAuthenticated +from rest_framework.response import Response +from rest_framework_simplejwt.exceptions import InvalidToken, TokenError +from rest_framework_simplejwt.tokens import AccessToken + +from apps.common.serializers import AiSmartTerminalSerializer +from apps.core.models import AiSmartTerminal, AiAlgorithmModels + + +# ─── 设备认证 ────────────────────────────────────────────────────────── + +class EdgeDeviceAuthentication(BaseAuthentication): + """边缘设备 JWT Token 认证类 + + 验证 Token 中的 stcd 与请求中的 stcd 一致,确保设备只能操作自己的数据。 + """ + keyword = "Bearer" + + def authenticate(self, request): + auth_header = request.META.get("HTTP_AUTHORIZATION", "") + if not auth_header.startswith(self.keyword): + return None + + raw_token = auth_header[len(self.keyword):].strip() + try: + token = AccessToken(raw_token) + except (InvalidToken, TokenError) as e: + raise AuthenticationFailed(f"无效的认证令牌: {str(e)}") + + token_type = token.get("type") or token.get("sub") + if token_type != "device": + raise AuthenticationFailed("此令牌不是设备认证令牌") + + token_stcd = token.get("stcd") + if not token_stcd: + raise AuthenticationFailed("令牌中缺少设备编码(stcd)") + + # 验证请求中的 stcd 与 Token 中的一致 + request_stcd = ( + request.GET.get("stcd") + or (request.data.get("stcd") if hasattr(request, "data") else None) + ) + if request_stcd and token_stcd != request_stcd: + raise AuthenticationFailed("令牌中的设备编码与请求不匹配") + + terminal = AiSmartTerminal.objects.filter(stcd=token_stcd).first() + if terminal is None: + raise AuthenticationFailed(f"设备未注册: {token_stcd}") + + return (terminal, token) + + +class EdgeDevicePermission(BasePermission): + """边缘设备请求权限 — 仅允许通过 EdgeDeviceAuthentication 认证的请求""" + def has_permission(self, request, view): + return bool(request.user and isinstance(request.user, AiSmartTerminal)) + + +def _minio_client(): + return Minio( + settings.MINIO_ENDPOINT, + access_key=settings.MINIO_ACCESS_KEY, + secret_key=settings.MINIO_SECRET_KEY, + secure=settings.MINIO_SECURE, + ) + + +# ─── 设备认证 — Token 生成 ──────────────────────────────────────────── + +@api_view(["POST"]) +def terminal_device_auth(request): + """设备接入认证 — 生成边缘设备 JWT Token(有效期24小时)""" + stcd = str(request.data.get("stcd", "")).strip() + if not stcd: + return Response({"error": "缺少必要参数:stcd"}, status=status.HTTP_400_BAD_REQUEST) + + terminal = AiSmartTerminal.objects.filter(stcd=stcd).first() + if terminal is None: + return Response({"error": f"未找到终端:{stcd}"}, status=status.HTTP_404_NOT_FOUND) + + token = AccessToken() + token["stcd"] = stcd + token["type"] = "device" + token.set_exp(lifetime=timedelta(days=1)) + + return Response({ + "code": 200, + "data": { + "access_token": str(token), + "token_type": "bearer", + "expires_in": 86400, + "stcd": stcd, + "stnm": terminal.stnm or "", + } + }) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def create_smart_terminal(request): + """创建智能终端设备""" + data = request.data.copy() + stcd = data.get("stcd") + if stcd and AiSmartTerminal.objects.filter(stcd=stcd).exists(): + return Response({"error": f"终端编码 '{stcd}' 已存在"}, status=status.HTTP_400_BAD_REQUEST) + terminal_id = uuid.uuid4().hex + data["id"] = terminal_id + data["record_user"] = request.user.username + serializer = AiSmartTerminalSerializer(data=data) + if serializer.is_valid(): + serializer.save() + return Response(serializer.data, status=status.HTTP_201_CREATED) + return Response({"error": "无效数据", "details": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_smart_terminal(request): + """修改智能设备信息""" + terminal_id = request.data.get("id") + terminal = get_object_or_404(AiSmartTerminal, id=terminal_id) + # 不允许通过此接口修改模型发布字段和边缘同步字段 + _protected_fields = { + "model_id", "model_version", "model_path", + "model_publish_time", "model_publish_user", + "edge_model_version", "edge_update_time", + "last_heartbeat_time", "online_status", + } + update_data = {k: v for k, v in request.data.items() if k not in _protected_fields} + serializer = AiSmartTerminalSerializer(instance=terminal, data=update_data, partial=True) + if serializer.is_valid(): + serializer.save() + return Response(serializer.data) + return Response({"error": "无效数据", "details": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def publish_terminal_model(request): + """发布更新设备算法模型 — 将训练好的模型发布到一个或多个云端孪生设备 + 支持传 id(单个)或 ids(列表),如 {"ids":["id1","id2"],"model_id":"...","model_version":"v1","model_path":"..."} + """ + # 归一化:支持 id(单个)或 ids(列表) + raw_ids = request.data.get("ids", []) + single_id = request.data.get("id") + if single_id: + raw_ids = [single_id] + if isinstance(raw_ids, str): + import json as _json + try: + raw_ids = _json.loads(raw_ids) + except Exception: + raw_ids = [raw_ids] + ids = [tid for tid in raw_ids if tid] if isinstance(raw_ids, list) else [] + model_id = request.data.get("model_id") + # 查找算法模型 + ai_model = get_object_or_404(AiAlgorithmModels, id=model_id) + model_version = ai_model.model_version or "" + model_path = ai_model.onnx_bucketpath or ai_model.model_bucketpath + if not model_path: + return Response({"error": "模型文件未存储在MinIO中"}, status=status.HTTP_400_BAD_REQUEST) + model_name = model_path.split("/")[-1] + + if not ids: + return Response({"error": "缺少必要参数:id 或 ids"}, status=status.HTTP_400_BAD_REQUEST) + if not all([model_id, model_version, model_path]): + return Response({"error": "缺少必要参数:model_id, model_version, model_path"}, status=status.HTTP_400_BAD_REQUEST) + + terminals = AiSmartTerminal.objects.filter(id__in=ids) + if not terminals.exists(): + return Response({"error": "未找到匹配的终端设备"}, status=status.HTTP_404_NOT_FOUND) + + publish_time = now() + publish_user = request.user.username + terminals.update( + model_id=model_id, + model_version=model_version, + model_path=model_path, + model_name=model_name, + model_publish_time=publish_time, + model_publish_user=publish_user, + ) + updated = AiSmartTerminal.objects.filter(id__in=ids) + serializer = AiSmartTerminalSerializer(updated, many=True) + return Response({ + "published_count": len(ids), + "terminals": serializer.data, + }) + + +@api_view(["GET"]) +def search_smart_terminals(request): + """条件查询智能设备列表(无需登录,边缘端也要调用)""" + filter_kwargs = {} + stcd = request.GET.get("stcd", "") + stnm = request.GET.get("stnm", "") + sttp = request.GET.get("sttp", "") + model_name = request.GET.get("model_name", "") + online_status = request.GET.get("online_status", "") + usfl = request.GET.get("usfl", "") + is_deleted = request.GET.get("is_deleted", "0") + page_size = request.GET.get("page_size") or 10 + if stcd: + filter_kwargs["stcd__icontains"] = stcd + if stnm: + filter_kwargs["stnm__icontains"] = stnm + if sttp: + filter_kwargs["sttp"] = sttp + if model_name: + filter_kwargs["model_name__icontains"] = model_name + if online_status: + filter_kwargs["online_status"] = int(online_status) + if usfl: + filter_kwargs["usfl"] = int(usfl) + filter_kwargs["is_deleted"] = is_deleted + queryset = AiSmartTerminal.objects.filter(**filter_kwargs).order_by("order_index", "stcd") + paginator = PageNumberPagination() + paginator.page_size = page_size + page = paginator.paginate_queryset(queryset, request) + serializer = AiSmartTerminalSerializer(page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["PUT"]) +@authentication_classes([EdgeDeviceAuthentication]) +@permission_classes([EdgeDevicePermission]) +def update_terminal_heartbeat(request): + """更新设备在线状态(边缘上报心跳)— 使用设备 Token 认证""" + terminal = request.user # EdgeDeviceAuthentication 已将 terminal 注入为 request.user + if not isinstance(terminal, AiSmartTerminal): + return Response({"error": "设备认证失败"}, status=status.HTTP_401_UNAUTHORIZED) + + update_fields = ["last_heartbeat_time", "online_status"] + was_offline = terminal.online_status == 0 + terminal.last_heartbeat_time = now() + terminal.online_status = 1 + + # 首次接入:标记数据已接入 + if not terminal.dtin: + terminal.dtin = 1 + terminal.dtin_tm = now() + update_fields.extend(["dtin", "dtin_tm"]) + + terminal.save(update_fields=update_fields) + + # 终端从离线恢复上线时,通过 WebSocket 推送通知 + if was_offline: + _push_terminal_online_notification(terminal) + + return Response({ + "code": 200, + "data": { + "stcd": terminal.stcd, + "online_status": terminal.online_status, + "last_heartbeat_time": terminal.last_heartbeat_time, + } + }) + + +def _push_terminal_online_notification(terminal): + """通过 WebSocket 向前端推送终端上线通知""" + try: + from asgiref.sync import async_to_sync + from channels.layers import get_channel_layer + + channel_layer = get_channel_layer() + if channel_layer is not None: + async_to_sync(channel_layer.group_send)( + "terminal_status", + { + "type": "terminal.status", + "data": { + "event": "online", + "count": 1, + "terminals": [ + {"stcd": terminal.stcd, "stnm": terminal.stnm} + ], + }, + }, + ) + except Exception: + pass + + +# ─── 模型版本检查 ────────────────────────────────────────────────────── + +@api_view(["GET"]) +@authentication_classes([EdgeDeviceAuthentication]) +@permission_classes([EdgeDevicePermission]) +def check_terminal_model_version(request): + """检查云端模型版本 — 边缘端定时轮询是否有新版本模型""" + terminal = request.user + if not isinstance(terminal, AiSmartTerminal): + return Response({"error": "设备认证失败"}, status=status.HTTP_401_UNAUTHORIZED) + + if not terminal.model_id: + return Response({ + "code": 200, + "data": { + "having_newmodel": 0, + "model_version": "", + "sync_check_interval": terminal.sync_check_interval or 30, + } + }) + + ai_model = AiAlgorithmModels.objects.filter(id=terminal.model_id).first() + if ai_model is None: + return Response({ + "code": 200, + "data": { + "having_newmodel": 0, + "model_version": terminal.model_version or "", + "sync_check_interval": terminal.sync_check_interval or 30, + } + }) + + edge_version = request.GET.get("edge_version", "") + cloud_version = ai_model.model_version or "" + + having_newmodel = 0 + if not edge_version or edge_version != cloud_version: + having_newmodel = 1 + + result = { + "code": 200, + "data": { + "having_newmodel": having_newmodel, + "sync_check_interval": terminal.sync_check_interval or 30, + } + } + + if having_newmodel: + result["data"].update({ + "model_name": terminal.model_name or "", + "model_version": cloud_version, + "model_path": terminal.model_path or "", + "model_publish_time": terminal.model_publish_time.isoformat() if terminal.model_publish_time else "", + }) + else: + result["data"]["model_version"] = cloud_version + + return Response(result) + + +@api_view(["PUT"]) +@authentication_classes([EdgeDeviceAuthentication]) +@permission_classes([EdgeDevicePermission]) +def update_terminal_model_version(request): + """更新边缘端模型版本 — 边缘端下载新模型后回调,更新 edge_model_version 和 edge_update_time""" + terminal = request.user + if not isinstance(terminal, AiSmartTerminal): + return Response({"error": "设备认证失败"}, status=status.HTTP_401_UNAUTHORIZED) + + edge_model_version = str(request.data.get("edge_model_version", "")).strip() + if not edge_model_version: + return Response({"error": "缺少必要参数:edge_model_version"}, status=status.HTTP_400_BAD_REQUEST) + + terminal.edge_model_version = edge_model_version + terminal.edge_update_time = now() + terminal.save(update_fields=["edge_model_version", "edge_update_time"]) + + return Response({ + "code": 200, + "data": { + "stcd": terminal.stcd, + "edge_model_version": terminal.edge_model_version, + "edge_update_time": terminal.edge_update_time, + } + }) + + +# ─── 模型下载(流式) ────────────────────────────────────────────────── + +def _stream_object(response, chunk_size: int = 1024 * 1024): + try: + while True: + chunk = response.read(chunk_size) + if not chunk: + break + yield chunk + finally: + response.close() + response.release_conn() + + +def download_terminal_model(request): + """下载最新版本设备算法模型 — 边缘端在校验版本差异后,从此接口下载模型文件""" + stcd = str(request.GET.get("stcd") or "").strip() + model_format = request.GET.get("model_format") or request.GET.get("format", "onnx") + if not stcd: + return JsonResponse({"error": "缺少必要参数:stcd"}, status=status.HTTP_400_BAD_REQUEST) + terminal = AiSmartTerminal.objects.filter(stcd=stcd).first() + if terminal is None: + return JsonResponse({"error": f"未找到终端:{stcd}"}, status=status.HTTP_404_NOT_FOUND) + if not terminal.model_id: + return JsonResponse({"error": "该终端尚未发布模型"}, status=status.HTTP_404_NOT_FOUND) + + try: + from apps.common.minio_client import minio_storage + + ai_model = AiAlgorithmModels.objects.filter(id=terminal.model_id).first() + if ai_model is None: + return JsonResponse( + {"error": f"终端已绑定的模型不存在:{terminal.model_id}"}, + status=status.HTTP_404_NOT_FOUND, + ) + if model_format == "onnx": + model_path = ai_model.onnx_bucketpath + if not model_path: + return JsonResponse({"error": "该模型尚未转换为ONNX格式"}, status=status.HTTP_404_NOT_FOUND) + else: + model_path = ai_model.model_bucketpath + if not model_path: + return JsonResponse({"error": "该模型没有原始模型文件"}, status=status.HTTP_404_NOT_FOUND) + + parts = model_path.split('/') + if len(parts) < 2: + return JsonResponse({"error": f"模型存储路径无效:{model_path}"}, status=status.HTTP_400_BAD_REQUEST) + bucket_name = parts[0] + object_name = '/'.join(parts[1:]) + if not minio_storage.object_exists(bucket_name, object_name): + return JsonResponse( + {"error": f"MinIO中未找到模型文件:{bucket_name}/{object_name}"}, + status=status.HTTP_404_NOT_FOUND, + ) + + response = minio_storage.get_object(bucket_name, object_name) + content_type = "application/octet-stream" + filename = object_name.rsplit("/", 1)[-1] + stream = StreamingHttpResponse(_stream_object(response), content_type=content_type) + stream["Content-Disposition"] = f'attachment; filename="{filename}"' + return stream + except Exception as e: + return JsonResponse({"error": f"模型文件下载失败:{str(e)}"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_smart_terminal(request): + """删除智能设备""" + terminal_id = request.GET.get("id") + if not terminal_id: + return Response({"error": "缺少必要参数:id"}, status=status.HTTP_400_BAD_REQUEST) + terminal = get_object_or_404(AiSmartTerminal, id=terminal_id) + terminal.delete() + return Response({"message": "删除成功", "id": terminal_id}) diff --git a/backend/apps/common/__init__.py b/backend/apps/common/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/common/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/common/emailing.py b/backend/apps/common/emailing.py new file mode 100644 index 0000000..205104b --- /dev/null +++ b/backend/apps/common/emailing.py @@ -0,0 +1,27 @@ +import os +import smtplib +from email.header import Header +from email.mime.text import MIMEText + + +def send_email(subject, message, to_email): + smtp_server = os.getenv("SMTP_HOST") + smtp_port = int(os.getenv("SMTP_PORT", "25")) + smtp_user = os.getenv("SMTP_USER") + smtp_password = os.getenv("SMTP_PASSWORD") + + if not smtp_server or not smtp_user or not smtp_password: + raise ValueError("SMTP 配置缺失:需要 SMTP_HOST/SMTP_USER/SMTP_PASSWORD(可选 SMTP_PORT)") + + msg = MIMEText(message, "plain", "utf-8") + msg["From"] = Header(smtp_user) + msg["To"] = Header(to_email) + msg["Subject"] = Header(subject) + + server = smtplib.SMTP(smtp_server, smtp_port) + try: + server.login(smtp_user, smtp_password) + server.sendmail(smtp_user, [to_email], msg.as_string()) + finally: + server.quit() + diff --git a/backend/apps/common/minio_client.py b/backend/apps/common/minio_client.py new file mode 100644 index 0000000..a579e30 --- /dev/null +++ b/backend/apps/common/minio_client.py @@ -0,0 +1,303 @@ +""" +MinIO 对象存储客户端封装 +提供 bucket 管理、文件上传/下载/删除/预览等标准操作 +""" +import io +import uuid +from datetime import datetime, timedelta +from pathlib import Path +from typing import BinaryIO, Optional, Union + +from django.conf import settings +from minio import Minio +from minio.error import S3Error +from loguru import logger + + +class MinioStorage: + """MinIO 对象存储管理器""" + + def __init__(self): + self._client: Optional[Minio] = None + + @property + def client(self) -> Minio: + if self._client is None: + self._client = Minio( + endpoint=settings.MINIO_ENDPOINT, + access_key=settings.MINIO_ACCESS_KEY, + secret_key=settings.MINIO_SECRET_KEY, + secure=settings.MINIO_SECURE, + ) + return self._client + + # ── Bucket 管理 ────────────────────────────────────── + + def bucket_exists(self, bucket_name: str) -> bool: + """检查 bucket 是否存在""" + return self.client.bucket_exists(bucket_name) + + def create_bucket(self, bucket_name: str) -> bool: + """创建 bucket,已存在则跳过""" + if not self.bucket_exists(bucket_name): + self.client.make_bucket(bucket_name) + logger.info(f"MinIO bucket created: {bucket_name}") + return True + return False + + def list_buckets(self) -> list[str]: + """列出所有 bucket""" + return [b.name for b in self.client.list_buckets()] + + def remove_bucket(self, bucket_name: str) -> bool: + """删除空 bucket""" + if self.bucket_exists(bucket_name): + self.client.remove_bucket(bucket_name) + logger.info(f"MinIO bucket removed: {bucket_name}") + return True + return False + + # ── 对象管理 ──────────────────────────────────────── + + def list_objects( + self, bucket_name: str, prefix: str = "", recursive: bool = True + ) -> list[dict]: + """列出 bucket 中的对象 + + Returns: + [{name, size, last_modified, etag, content_type}, ...] + """ + objects = self.client.list_objects(bucket_name, prefix=prefix, recursive=recursive) + return [ + { + "name": obj.object_name, + "size": obj.size, + "last_modified": obj.last_modified.isoformat() if obj.last_modified else None, + "etag": obj.etag, + "content_type": obj.content_type, + "is_dir": obj.is_dir, + } + for obj in objects + ] + + def upload_file( + self, + bucket_name: str, + object_name: str, + file_path: Union[str, Path], + content_type: Optional[str] = None, + ) -> str: + """上传本地文件到 MinIO + + Returns: + object_name + """ + ensure_bucket(self, bucket_name) + self.client.fput_object( + bucket_name=bucket_name, + object_name=object_name, + file_path=str(file_path), + content_type=content_type, + ) + logger.info(f"MinIO upload: {bucket_name}/{object_name}") + return object_name + + def upload_bytes( + self, + bucket_name: str, + object_name: str, + data: Union[bytes, BinaryIO], + length: int = -1, + content_type: Optional[str] = None, + ) -> str: + """上传字节数据到 MinIO + + Returns: + object_name + """ + ensure_bucket(self, bucket_name) + + if isinstance(data, bytes): + stream = io.BytesIO(data) + actual_length = len(data) + else: + stream = data + actual_length = length + + self.client.put_object( + bucket_name=bucket_name, + object_name=object_name, + data=stream, + length=actual_length, + content_type=content_type, + ) + logger.info(f"MinIO upload bytes: {bucket_name}/{object_name}") + return object_name + + def upload_stream( + self, + bucket_name: str, + object_name: str, + data: BinaryIO, + length: int, + content_type: Optional[str] = None, + ) -> str: + """流式上传文件对象到 MinIO""" + ensure_bucket(self, bucket_name) + self.client.put_object( + bucket_name=bucket_name, + object_name=object_name, + data=data, + length=length, + content_type=content_type, + ) + logger.info(f"MinIO upload stream: {bucket_name}/{object_name}") + return object_name + + def download_file( + self, bucket_name: str, object_name: str, local_path: Union[str, Path] + ) -> str: + """下载对象到本地文件 + + Returns: + local_path + """ + self.client.fget_object(bucket_name, object_name, str(local_path)) + logger.info(f"MinIO download: {bucket_name}/{object_name} -> {local_path}") + return str(local_path) + + def download_bytes(self, bucket_name: str, object_name: str) -> bytes: + """下载对象为 bytes""" + response = self.client.get_object(bucket_name, object_name) + try: + return response.read() + finally: + response.close() + response.release_conn() + + def get_object(self, bucket_name: str, object_name: str): + """获取对象流响应,调用方负责关闭连接""" + return self.client.get_object(bucket_name, object_name) + + def get_object_info(self, bucket_name: str, object_name: str) -> dict: + """获取对象元信息""" + stat = self.client.stat_object(bucket_name, object_name) + return { + "name": stat.object_name, + "size": stat.size, + "etag": stat.etag, + "content_type": stat.content_type, + "last_modified": stat.last_modified.isoformat() if stat.last_modified else None, + } + + def object_exists(self, bucket_name: str, object_name: str) -> bool: + """检查对象是否存在""" + try: + self.client.stat_object(bucket_name, object_name) + return True + except S3Error: + return False + + def delete_object(self, bucket_name: str, object_name: str) -> bool: + """删除单个对象""" + self.client.remove_object(bucket_name, object_name) + logger.info(f"MinIO delete: {bucket_name}/{object_name}") + return True + + def delete_objects(self, bucket_name: str, object_names: list[str]) -> list[str]: + """批量删除对象""" + errors = [] + for name in object_names: + try: + self.client.remove_object(bucket_name, name) + except S3Error as e: + errors.append(name) + logger.error(f"MinIO delete error {bucket_name}/{name}: {e}") + logger.info(f"MinIO batch delete: {bucket_name}, {len(object_names) - len(errors)}/{len(object_names)}") + return errors + + # ── 预签名 URL ────────────────────────────────────── + + def presign_get( + self, + bucket_name: str, + object_name: str, + expires: int = 3600, + response_headers: Optional[dict] = None, + ) -> str: + """生成预签名下载 URL + + Args: + bucket_name: bucket 名称 + object_name: 对象路径 + expires: 过期时间(秒),默认 1 小时 + """ + presign_endpoint = getattr(settings, 'MINIO_PRESIGN_ENDPOINT', settings.MINIO_ENDPOINT) + + if presign_endpoint != settings.MINIO_ENDPOINT: + presign_client = Minio( + endpoint=presign_endpoint, + access_key=settings.MINIO_ACCESS_KEY, + secret_key=settings.MINIO_SECRET_KEY, + secure=settings.MINIO_SECURE, + ) + return presign_client.presigned_get_object( + bucket_name, + object_name, + expires=timedelta(seconds=expires), + response_headers=response_headers, + ) + + return self.client.presigned_get_object( + bucket_name, + object_name, + expires=timedelta(seconds=expires), + response_headers=response_headers, + ) + + def presign_upload( + self, bucket_name: str, object_name: str, expires: int = 3600 + ) -> str: + """生成预签名上传 URL""" + return self.client.presigned_put_object( + bucket_name, object_name, expires=timedelta(seconds=expires) + ) + + # ── 辅助方法 ──────────────────────────────────────── + + def generate_object_name(self, filename: str, prefix: str = "") -> str: + """生成唯一对象名,避免覆盖 + + Format: {prefix}/YYYY-MM-DD/{uuid}_{original_filename} + """ + date_str = datetime.now().strftime("%Y-%m-%d") + uid = uuid.uuid4().hex[:12] + safe_name = Path(filename).name + parts = [p for p in [prefix, date_str, f"{uid}_{safe_name}"] if p] + return "/".join(parts) + + def copy_object( + self, src_bucket: str, src_object: str, + dst_bucket: str, dst_object: str + ) -> str: + """复制对象(同 bucket 内或跨 bucket)""" + from minio.commonconfig import CopySource + + ensure_bucket(self, dst_bucket) + self.client.copy_object( + bucket_name=dst_bucket, + object_name=dst_object, + source=CopySource(src_bucket, src_object), + ) + logger.info(f"MinIO copy: {src_bucket}/{src_object} -> {dst_bucket}/{dst_object}") + return dst_object + + +def ensure_bucket(storage: MinioStorage, bucket_name: str): + """确保 bucket 存在""" + if not storage.bucket_exists(bucket_name): + storage.create_bucket(bucket_name) + + +# 全局单例 +minio_storage = MinioStorage() diff --git a/backend/apps/common/serializers.py b/backend/apps/common/serializers.py new file mode 100644 index 0000000..c0e58fe --- /dev/null +++ b/backend/apps/common/serializers.py @@ -0,0 +1,168 @@ +from rest_framework import serializers + +from apps.core.models import * + + +class AiAlgorithmClassSerializer(serializers.ModelSerializer): + class Meta: + model = AiAlgorithmClass + fields = "__all__" + + +class AiAlgorithmSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AiAlgorithm + fields = "__all__" + + +class AiAlgorithmEngineSerializer(serializers.ModelSerializer): + class Meta: + model = AiAlgorithmEngine + fields = "__all__" + + +class AiAlgorithmParamsSerializer(serializers.ModelSerializer): + class Meta: + model = AiAlgorithmParams + fields = "__all__" + + +class AiAlgorithmOutputSerializer(serializers.ModelSerializer): + class Meta: + model = AiAlgorithmOutput + fields = "__all__" + + +class AiAlgorithmModelsSerializer(serializers.ModelSerializer): + upload_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + model_createtime = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AiAlgorithmModels + fields = "__all__" + + +class AiDatasetSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AiDataset + fields = "__all__" + + +class AiDatasetSampleSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + annotation_content = serializers.SerializerMethodField() + + class Meta: + model = AiDatasetSample + fields = "__all__" + + def get_annotation_content(self, obj): + return obj.polygon or obj.rectangle or "" + + +class AIAnnotateTeamSerializer(serializers.ModelSerializer): + class Meta: + model = AIAnnotateTeam + fields = "__all__" + + +class AIAnnotateTeamMemberSerializer(serializers.ModelSerializer): + class Meta: + model = AIAnnotateTeamMember + fields = "__all__" + + +class AiAnnotateTaskSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AiAnnotateTask + fields = "__all__" + + +class AiAnnotateTaskSampleSerializer(serializers.ModelSerializer): + class Meta: + model = AiAnnotateTaskSample + fields = "__all__" + + +class AiTempFileSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AiTempFile + fields = "__all__" + + +class AiAlgorithmTrainRecordsSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AiAlgorithmTrainRecords + fields = "__all__" + + +class AiAlgorithmCallLogSerializer(serializers.ModelSerializer): + log_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AiAlgorithmCallLog + fields = "__all__" + + +class AuthOrganizationSerializer(serializers.ModelSerializer): + class Meta: + model = AuthOrganization + fields = "__all__" + + +class AuthPersonSerializer(serializers.ModelSerializer): + date_joined = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AuthPerson + fields = "__all__" + + +class AuthGroupSerializer(serializers.ModelSerializer): + class Meta: + model = AuthGroup + fields = "__all__" + + +class AIReliabilityObjectsSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AIReliabilityObjects + fields = "__all__" + + +class AIReliabilityObjectClassSerializer(serializers.ModelSerializer): + create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + + class Meta: + model = AIReliabilityObjectClass + fields = "__all__" + + +class AIReliabilityPlantSerializer(serializers.ModelSerializer): + class Meta: + model = AIReliabilityPlant + fields = "__all__" + + +class AiSmartTerminalSerializer(serializers.ModelSerializer): + record_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True) + model_publish_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True) + edge_update_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True) + last_heartbeat_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True) + dtin_tm = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True) + + class Meta: + model = AiSmartTerminal + fields = "__all__" diff --git a/backend/apps/common/utils/__init__.py b/backend/apps/common/utils/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/common/utils/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/common/utils/annotation_store.py b/backend/apps/common/utils/annotation_store.py new file mode 100644 index 0000000..00b4b0e --- /dev/null +++ b/backend/apps/common/utils/annotation_store.py @@ -0,0 +1,61 @@ +import json + +from django.db.models import TextField, Value +from django.db.models.functions import Coalesce + + +def _safe_json_loads(raw): + if raw in (None, ""): + return None + try: + return json.loads(raw) + except Exception: + return None + + +def is_polygon_annotation_content(content) -> bool: + parsed = _safe_json_loads(content) + if isinstance(parsed, dict): + if parsed.get("type") == "polygon": + return True + if isinstance(parsed.get("shapes"), list): + return True + if isinstance(parsed, list): + for item in parsed: + if not isinstance(item, dict): + continue + region = item.get("region") + if isinstance(region, list) and region and isinstance(region[0], (list, tuple)): + return True + return False + + +def split_dataset_sample_annotation_content(content): + raw = content or "" + if not raw: + return {"rectangle": None, "polygon": None} + if is_polygon_annotation_content(raw): + return {"rectangle": None, "polygon": raw} + return {"rectangle": raw, "polygon": None} + + +def get_dataset_sample_annotation_content(sample) -> str: + if sample is None: + return "" + polygon = getattr(sample, "polygon", None) + rectangle = getattr(sample, "rectangle", None) + return polygon or rectangle or "" + + +def get_dataset_sample_annotation_from_row(sample_row: dict) -> str: + if not isinstance(sample_row, dict): + return "" + return sample_row.get("polygon") or sample_row.get("rectangle") or sample_row.get("annotation_content") or "" + + +def annotate_queryset_with_annotation_content(queryset, alias: str = "annotation_content"): + return queryset.annotate( + **{ + alias: Coalesce("polygon", "rectangle", Value("", output_field=TextField()), output_field=TextField()), + } + ) diff --git a/backend/apps/common/utils/image_util.py b/backend/apps/common/utils/image_util.py new file mode 100644 index 0000000..bdea982 --- /dev/null +++ b/backend/apps/common/utils/image_util.py @@ -0,0 +1,20 @@ +import base64 +import io + +try: + import cv2 +except Exception: + cv2 = None +from PIL import Image + + +def get_image_base64(img_url): + if cv2 is not None: + img = cv2.imread(img_url) + _, img_encoded = cv2.imencode(".jpg", img) + return base64.b64encode(img_encoded.tobytes()).decode("utf-8") + image = Image.open(img_url).convert("RGB") + buf = io.BytesIO() + image.save(buf, format="JPEG") + return base64.b64encode(buf.getvalue()).decode("utf-8") + diff --git a/backend/apps/common/utils/permissions.py b/backend/apps/common/utils/permissions.py new file mode 100644 index 0000000..75ea735 --- /dev/null +++ b/backend/apps/common/utils/permissions.py @@ -0,0 +1,13 @@ +# -*- coding:utf-8 -*- +__author__ = "leo" + +from rest_framework import permissions + + +class IsOwnerOrReadOnly(permissions.BasePermission): + def has_object_permission(self, request, view, obj): + if request.method in permissions.SAFE_METHODS: + return True + + return obj.user == request.user + diff --git a/backend/apps/common/utils/snapImages.py b/backend/apps/common/utils/snapImages.py new file mode 100644 index 0000000..e979b61 --- /dev/null +++ b/backend/apps/common/utils/snapImages.py @@ -0,0 +1,52 @@ +import os +import re + +import requests +from bs4 import BeautifulSoup +from PIL import Image +from io import BytesIO + + +headers = { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" +} + +animal_names = ["猫", "狗", "cat", "dog"] + +save_dir = "D:/project_space/01/005/datasets/001/images" +if not os.path.exists(save_dir): + os.makedirs(save_dir) + + +def download_images(fish_name, num_images=5): + search_url = f"https://www.google.com/search?hl=zh-CN&tbm=isch&q={fish_name}" + + response = requests.get(search_url, headers=headers) + soup = BeautifulSoup(response.text, "html.parser") + img_tags = soup.find_all("img") + + img_urls = [] + + for img_tag in img_tags: + img_url = img_tag.get("src") + if img_url and img_url.startswith("http"): + img_urls.append(img_url) + if len(img_urls) >= num_images: + break + + for idx, img_url in enumerate(img_urls): + try: + img_data = requests.get(img_url).content + img_name = os.path.join(save_dir, f"{fish_name}_{idx + 1}.jpg") + with open(img_name, "wb") as f: + f.write(img_data) + print(f"下载成功:{img_name}") + except Exception as e: + print(f"下载失败:{e}") + + +for animal_name in animal_names: + download_images(animal_name, 200) + +print("所有图片下载完成!") + diff --git a/backend/apps/common/utils/watermarker.py b/backend/apps/common/utils/watermarker.py new file mode 100644 index 0000000..9a61f6a --- /dev/null +++ b/backend/apps/common/utils/watermarker.py @@ -0,0 +1,206 @@ +import enum +import math +import os +import textwrap +from typing import Union + +from PIL import Image, ImageChops, ImageDraw, ImageEnhance, ImageFont, ImageOps + + +class WatermarkerStyles(enum.Enum): + """水印样式""" + + STRIPED = 1 + CENTRAL = 2 + + +class Watermarker(object): + """图片水印工具""" + + django_support = False + + def __init__( + self, + image: Union[str, Image.Image], + text: str, + style: WatermarkerStyles.CENTRAL, + angle=25, + color="black", + font_file="汉仪旗黑.ttf", + font_height_crop=1.2, + opacity=0.15, + quality=100, + size=50, + space=100, + chars_per_line=10, + ): + if isinstance(image, str): + self.image_path = image + self.origin_image = Image.open(image) + elif isinstance(image, Image.Image): + self.origin_image = image + self.image_path = None + else: + raise ValueError("`image` 参数必须是图片路径或 PIL Image 对象") + self.text = text + self.style = style + self.angle = angle + self.color = color + + if self.django_support: + from django.conf import settings + + self.font_file = os.path.join(settings.BASE_DIR, "contrib", "image", "font", font_file) + else: + self.font_file = os.path.join(os.path.abspath("."), "font", font_file) + + self.font_height_crop = font_height_crop + self.opacity = opacity + self.quality = quality + self.size = size + self.space = space + self._result_image = None + self.chars_per_line = chars_per_line + + @staticmethod + def set_image_opacity(image: Image, opacity: float): + assert 0 <= opacity <= 1 + + alpha = image.split()[3] + alpha = ImageEnhance.Brightness(alpha).enhance(opacity) + image.putalpha(alpha) + return image + + @staticmethod + def crop_image_edge(image: Image): + bg = Image.new(mode="RGBA", size=image.size) + diff = ImageChops.difference(image, bg) + del bg + bbox = diff.getbbox() + if bbox: + return image.crop(bbox) + return image + + def _add_mark_striped(self): + origin_image = self.origin_image + origin_image = ImageOps.exif_transpose(origin_image) + + width = len(self.text) * self.size + height = round(self.size * self.font_height_crop) + + watermark_image = Image.new(mode="RGBA", size=(width, height)) + + draw_table = ImageDraw.Draw(im=watermark_image) + draw_table.text( + xy=(0, 0), + text=self.text, + fill=self.color, + font=ImageFont.truetype(self.font_file, size=self.size), + ) + del draw_table + + watermark_image = Watermarker.crop_image_edge(watermark_image) + + Watermarker.set_image_opacity(watermark_image, self.opacity) + + c = int( + math.sqrt( + origin_image.size[0] * origin_image.size[0] + origin_image.size[1] * origin_image.size[1] + ) + ) + + watermark_mask = Image.new(mode="RGBA", size=(c, c)) + + y, idx = 0, 0 + while y < c: + x = -int((watermark_image.size[0] + self.space) * 0.5 * idx) + idx = (idx + 1) % 2 + + while x < c: + watermark_mask.paste(watermark_image, (x, y)) + x = x + watermark_image.size[0] + self.space + y = y + watermark_image.size[1] + self.space + + watermark_mask = watermark_mask.rotate(self.angle) + + if origin_image.mode != "RGBA": + origin_image = origin_image.convert("RGBA") + origin_image.paste( + watermark_mask, + (int((origin_image.size[0] - c) / 2), int((origin_image.size[1] - c) / 2)), + mask=watermark_mask.split()[3], + ) + del watermark_mask + + return origin_image + + def _add_mark_central(self): + origin_image = self.origin_image + origin_image = ImageOps.exif_transpose(origin_image) + + text_lines = textwrap.wrap(self.text, width=self.chars_per_line) + text = "\n".join(text_lines) + + width = len(text) * self.size + height = round(self.size * self.font_height_crop * len(text_lines)) + + watermark_image = Image.new(mode="RGBA", size=(width, height)) + + draw_table = ImageDraw.Draw(im=watermark_image) + draw_table.text( + xy=(0, 0), + text=text, + fill=self.color, + font=ImageFont.truetype(self.font_file, size=self.size), + ) + del draw_table + + watermark_image = Watermarker.crop_image_edge(watermark_image) + + Watermarker.set_image_opacity(watermark_image, self.opacity) + + c = int( + math.sqrt( + origin_image.size[0] * origin_image.size[0] + origin_image.size[1] * origin_image.size[1] + ) + ) + watermark_mask = Image.new(mode="RGBA", size=(c, c)) + watermark_mask.paste( + watermark_image, + ( + int((watermark_mask.width - watermark_image.width) / 2), + int((watermark_mask.height - watermark_image.height) / 2), + ), + ) + watermark_mask = watermark_mask.rotate(self.angle) + + if origin_image.mode != "RGBA": + origin_image = origin_image.convert("RGBA") + + box = (int((origin_image.width - watermark_mask.width) / 2), int((origin_image.height - watermark_mask.height) / 2)) + origin_image.paste(watermark_mask, box, mask=watermark_mask.split()[3]) + + return origin_image + + @property + def image(self): + if not self._result_image: + if self.style == WatermarkerStyles.STRIPED: + self._result_image = self._add_mark_striped() + if self.style == WatermarkerStyles.CENTRAL: + self._result_image = self._add_mark_central() + return self._result_image + + def save(self, file_path: str, image_format: str = "png"): + with open(file_path, "wb") as f: + self.image.save(f, image_format) + + def show(self): + self.image.show() + + +if __name__ == "__main__": + Watermarker("path_to_image", "mark text", WatermarkerStyles.CENTRAL).show() + Watermarker("path_to_image", "mark text", WatermarkerStyles.CENTRAL).save("path_to_save") + image = Watermarker("path_to_image", "mark text", WatermarkerStyles.CENTRAL).image + diff --git a/backend/apps/common/utils/yunpian.py b/backend/apps/common/utils/yunpian.py new file mode 100644 index 0000000..5bf77ec --- /dev/null +++ b/backend/apps/common/utils/yunpian.py @@ -0,0 +1,30 @@ +# -*- coding:utf-8 -*- + +import json + +import requests + + +class YunPian: + """云片网短信验证""" + + def __init__(self, api_key): + self.api_key = api_key + self.single_send_url = "https://sms.yunpian.com/v2/sms/single_send.json" + + def send_sms(self, mobile, code): + params = { + "apikey": self.api_key, + "mobile": mobile, + "text": "云片网模板文件内容{code}".format(code=code), + } + + response = requests.post(self.single_send_url, data=params) + return_dict = json.loads(response.text) + return return_dict + + +if __name__ == "__main__": + yunpian = YunPian("云片网的api_key") + yunpian.send_sms("手机号码", "验证码") + diff --git a/backend/apps/common/views/minio_storage.py b/backend/apps/common/views/minio_storage.py new file mode 100644 index 0000000..ebdaade --- /dev/null +++ b/backend/apps/common/views/minio_storage.py @@ -0,0 +1,855 @@ +""" +MinIO 文件存储 REST API 接口 +提供标准的文件上传、下载、删除、预览、Bucket 管理等操作 +""" +import base64 +import mimetypes +import os +import posixpath +import zipfile +from pathlib import Path +from tempfile import NamedTemporaryFile +from urllib.parse import quote + +from django.conf import settings +from django.http import Http404, StreamingHttpResponse +from minio.error import S3Error +from rest_framework.decorators import api_view, parser_classes, permission_classes +from rest_framework.parsers import FormParser, JSONParser, MultiPartParser +from rest_framework.permissions import IsAuthenticated, AllowAny +from rest_framework.response import Response + +from apps.common.minio_client import ensure_bucket, minio_storage + +try: + import cv2 +except Exception: + cv2 = None + + +DEFAULT_BUCKET = settings.MINIO_DEFAULT_BUCKET +IMAGE_EXTENSIONS = { + ".jpg", + ".jpeg", + ".png", + ".bmp", + ".gif", + ".webp", + ".tif", + ".tiff", +} +VIDEO_EXTENSIONS = { + ".mp4", + ".avi", + ".mov", + ".mkv", + ".wmv", + ".flv", + ".mpeg", + ".mpg", + ".webm", +} + + +def _normalize_expires(value) -> int: + """标准化预签名过期时间,限制在 1 到 7 天之间。""" + try: + expires = int(value) + except (TypeError, ValueError): + raise ValueError("expires 必须是正整数") + + if expires <= 0: + raise ValueError("expires 必须大于 0") + return min(expires, 7 * 24 * 3600) + + +def _stream_object(response, chunk_size: int = 1024 * 1024): + """以分块方式转发 MinIO 对象流,避免整文件读入内存。""" + try: + while True: + chunk = response.read(chunk_size) + if not chunk: + break + yield chunk + finally: + response.close() + response.release_conn() + + +def _file_content_type(filename: str, fallback: str = "application/octet-stream") -> str: + return mimetypes.guess_type(filename)[0] or fallback + + +def _normalize_bool(value, default: bool = False) -> bool: + if value is None: + return default + if isinstance(value, bool): + return value + return str(value).strip().lower() in {"1", "true", "yes", "on"} + + +def _normalize_int(value, field_name: str, default=None, minimum: int | None = None) -> int: + if value in (None, ""): + if default is None: + raise ValueError(f"{field_name} 不能为空") + result = default + else: + try: + result = int(value) + except (TypeError, ValueError): + raise ValueError(f"{field_name} 必须是整数") + + if minimum is not None and result < minimum: + raise ValueError(f"{field_name} 必须大于等于 {minimum}") + return result + + +def _safe_join_prefix(prefix: str, name: str) -> str: + prefix = (prefix or "").strip().strip("/") + name = name.strip().lstrip("/") + return f"{prefix}/{name}" if prefix else name + + +def _safe_zip_object_name(prefix: str, member_name: str) -> str: + normalized = member_name.replace("\\", "/") + safe_parts = [] + for part in normalized.split("/"): + if not part or part in {".", ".."}: + continue + safe_parts.append(part) + if not safe_parts: + raise ValueError("ZIP 中存在非法文件路径") + return _safe_join_prefix(prefix, "/".join(safe_parts)) + + +def _iter_zip_upload_items(uploaded_file, prefix: str, allowed_extensions: set[str] | None = None): + with zipfile.ZipFile(uploaded_file) as zip_file: + for member in zip_file.infolist(): + if member.is_dir(): + continue + + filename = Path(member.filename).name + if not filename or filename.startswith("."): + continue + + ext = Path(filename).suffix.lower() + if allowed_extensions and ext not in allowed_extensions: + continue + + object_name = _safe_zip_object_name(prefix, member.filename) + with zip_file.open(member, "r") as file_obj: + yield { + "member_name": member.filename, + "object_name": object_name, + "size": member.file_size, + "content_type": _file_content_type(filename), + "stream": file_obj, + } + + +def _map_s3_error(exc: S3Error, default_message: str = "MinIO 操作失败"): + """将常见 MinIO 错误映射为更友好的 HTTP 响应。""" + error_code = getattr(exc, "code", "") or "" + status_code = 500 + message = default_message + + if error_code in {"NoSuchBucket"}: + status_code = 404 + message = "Bucket 不存在" + elif error_code in {"NoSuchKey", "NoSuchObject", "NoSuchVersion"}: + status_code = 404 + message = "文件不存在" + elif error_code in {"BucketAlreadyOwnedByYou", "BucketAlreadyExists"}: + status_code = 409 + message = "Bucket 已存在" + elif error_code in {"BucketNotEmpty"}: + status_code = 409 + message = "Bucket 非空,无法删除" + elif error_code in {"InvalidBucketName"}: + status_code = 400 + message = "Bucket 名称不合法" + elif error_code in {"AccessDenied"}: + status_code = 403 + message = "访问被拒绝" + + return Response( + {"code": status_code, "msg": message, "detail": str(exc)}, + status=status_code, + ) + + +# ── Bucket 管理 ────────────────────────────────────── + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def minio_bucket_create(request): + """创建 Bucket""" + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + try: + created = minio_storage.create_bucket(bucket_name) + except S3Error as exc: + return _map_s3_error(exc, "Bucket 创建失败") + return Response( + { + "code": 200, + "data": {"bucket_name": bucket_name, "created": created}, + "msg": "Bucket 已存在" if not created else "Bucket 创建成功", + } + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def minio_bucket_list(request): + """列出所有 Bucket""" + try: + buckets = minio_storage.list_buckets() + except S3Error as exc: + return _map_s3_error(exc, "Bucket 列表获取失败") + return Response({"code": 200, "data": buckets, "msg": "获取成功"}) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def minio_bucket_delete(request): + """删除 Bucket""" + bucket_name = request.data.get("bucket_name", "") + if not bucket_name: + return Response({"code": 400, "msg": "bucket_name 不能为空"}, status=400) + try: + removed = minio_storage.remove_bucket(bucket_name) + except S3Error as exc: + return _map_s3_error(exc, "Bucket 删除失败") + if removed: + return Response({"code": 200, "data": {"bucket_name": bucket_name}, "msg": "Bucket 已删除"}) + return Response({"code": 404, "msg": "Bucket 不存在"}, status=404) + + +# ── 文件上传 ───────────────────────────────────────── + + +@api_view(["POST"]) +@parser_classes([MultiPartParser, FormParser]) +@permission_classes([IsAuthenticated]) +def minio_file_upload(request): + """上传单个文件到 MinIO + + POST /server/minio/file/upload/ + FormData: + file: 文件 + bucket_name: Bucket 名称(可选,默认 DEFAULT_BUCKET) + prefix: 存储路径前缀(可选) + object_name: 指定对象名(可选,不传则自动生成) + + Returns: + {object_name, bucket_name, presigned_url, size, content_type} + """ + uploaded_file = request.FILES.get("file") + if not uploaded_file: + return Response({"code": 400, "msg": "缺少 file 字段"}, status=400) + + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + prefix = request.data.get("prefix", "") + custom_name = request.data.get("object_name", "") + + if custom_name: + object_name = custom_name + else: + object_name = minio_storage.generate_object_name(uploaded_file.name, prefix) + + content_type = uploaded_file.content_type or _file_content_type(uploaded_file.name) + try: + minio_storage.upload_stream( + bucket_name, + object_name, + uploaded_file.file, + uploaded_file.size, + content_type=content_type, + ) + presigned_url = minio_storage.presign_get( + bucket_name, object_name, settings.MINIO_PRESIGN_EXPIRES + ) + except S3Error as exc: + return _map_s3_error(exc, "文件上传失败") + + return Response( + { + "code": 200, + "data": { + "bucket_name": bucket_name, + "object_name": object_name, + "original_name": uploaded_file.name, + "size": uploaded_file.size, + "content_type": content_type, + "presigned_url": presigned_url, + }, + "msg": "上传成功", + } + ) + + +@api_view(["POST"]) +@parser_classes([MultiPartParser, FormParser]) +@permission_classes([IsAuthenticated]) +def minio_file_batch_upload(request): + """批量上传文件 + + POST /server/minio/files/upload/ + FormData: + files: 多文件 + bucket_name: Bucket 名称(可选) + prefix: 存储路径前缀(可选) + """ + files = request.FILES.getlist("files") + if not files: + return Response({"code": 400, "msg": "缺少 files 字段"}, status=400) + + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + prefix = request.data.get("prefix", "") + + results = [] + try: + for f in files: + object_name = minio_storage.generate_object_name(f.name, prefix) + content_type = f.content_type or _file_content_type(f.name) + minio_storage.upload_stream( + bucket_name, + object_name, + f.file, + f.size, + content_type=content_type, + ) + presigned_url = minio_storage.presign_get( + bucket_name, object_name, settings.MINIO_PRESIGN_EXPIRES + ) + results.append( + { + "object_name": object_name, + "original_name": f.name, + "size": f.size, + "content_type": content_type, + "presigned_url": presigned_url, + } + ) + except S3Error as exc: + return _map_s3_error(exc, "批量上传失败") + + return Response({"code": 200, "data": results, "msg": f"全部上传成功,共 {len(results)} 个文件"}) + + +@api_view(["POST"]) +@parser_classes([MultiPartParser, FormParser]) +@permission_classes([IsAuthenticated]) +def minio_zip_upload_extract(request): + """上传 ZIP 文件并自动解压批量入库。""" + uploaded_file = request.FILES.get("file") + if not uploaded_file: + return Response({"code": 400, "msg": "缺少 file 字段"}, status=400) + + if Path(uploaded_file.name).suffix.lower() != ".zip": + return Response({"code": 400, "msg": "仅支持上传 zip 文件"}, status=400) + + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + prefix = request.data.get("prefix", "") + images_only = _normalize_bool(request.data.get("images_only"), default=False) + + uploaded = [] + skipped = [] + try: + for item in _iter_zip_upload_items( + uploaded_file, + prefix, + allowed_extensions=IMAGE_EXTENSIONS if images_only else None, + ): + minio_storage.upload_stream( + bucket_name=bucket_name, + object_name=item["object_name"], + data=item["stream"], + length=item["size"], + content_type=item["content_type"], + ) + uploaded.append( + { + "source_name": item["member_name"], + "object_name": item["object_name"], + "size": item["size"], + "content_type": item["content_type"], + } + ) + except zipfile.BadZipFile: + return Response({"code": 400, "msg": "zip 文件格式无效或已损坏"}, status=400) + except ValueError as exc: + return Response({"code": 400, "msg": str(exc)}, status=400) + except S3Error as exc: + return _map_s3_error(exc, "ZIP 解压入库失败") + + if images_only: + try: + with zipfile.ZipFile(uploaded_file) as zip_file: + for member in zip_file.infolist(): + if member.is_dir(): + continue + filename = Path(member.filename).name + if not filename or filename.startswith("."): + continue + if Path(filename).suffix.lower() not in IMAGE_EXTENSIONS: + skipped.append(member.filename) + except zipfile.BadZipFile: + pass + + return Response( + { + "code": 200, + "data": { + "bucket_name": bucket_name, + "zip_name": uploaded_file.name, + "uploaded_count": len(uploaded), + "uploaded": uploaded, + "skipped": skipped, + }, + "msg": f"ZIP 解压入库成功,共上传 {len(uploaded)} 个文件", + } + ) + + +@api_view(["POST"]) +@parser_classes([MultiPartParser, FormParser]) +@permission_classes([IsAuthenticated]) +def minio_video_extract_frames(request): + """上传视频文件并按规则抽帧后存储到 MinIO。""" + if cv2 is None: + return Response({"code": 500, "msg": "opencv-python 未安装,无法处理视频"}, status=500) + + uploaded_file = request.FILES.get("file") + if not uploaded_file: + return Response({"code": 400, "msg": "缺少 file 字段"}, status=400) + + video_ext = Path(uploaded_file.name).suffix.lower() + if video_ext not in VIDEO_EXTENSIONS: + return Response({"code": 400, "msg": "不支持的视频格式"}, status=400) + + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + prefix = request.data.get("prefix", "") + image_format = (request.data.get("image_format", "jpg") or "jpg").lower().strip(".") + if image_format not in {"jpg", "jpeg", "png"}: + return Response({"code": 400, "msg": "image_format 仅支持 jpg/jpeg/png"}, status=400) + + try: + interval_seconds = _normalize_int( + request.data.get("interval_seconds"), + "interval_seconds", + default=1, + minimum=1, + ) + start_second = _normalize_int( + request.data.get("start_second"), + "start_second", + default=0, + minimum=0, + ) + max_frames = _normalize_int( + request.data.get("max_frames"), + "max_frames", + default=100, + minimum=1, + ) + except ValueError as exc: + return Response({"code": 400, "msg": str(exc)}, status=400) + + end_second_raw = request.data.get("end_second") + try: + end_second = ( + _normalize_int(end_second_raw, "end_second", minimum=0) if end_second_raw not in (None, "") else None + ) + except ValueError as exc: + return Response({"code": 400, "msg": str(exc)}, status=400) + + if end_second is not None and end_second < start_second: + return Response({"code": 400, "msg": "end_second 不能小于 start_second"}, status=400) + + temp_path = None + cap = None + try: + with NamedTemporaryFile(delete=False, suffix=video_ext) as temp_file: + for chunk in uploaded_file.chunks(): + temp_file.write(chunk) + temp_path = temp_file.name + + cap = cv2.VideoCapture(temp_path) + if not cap.isOpened(): + return Response({"code": 400, "msg": "视频文件无法打开"}, status=400) + + fps = cap.get(cv2.CAP_PROP_FPS) or 0 + if fps <= 0: + fps = 25.0 + + total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT) or 0) + duration_seconds = total_frames / fps if total_frames > 0 else 0 + + step_frames = max(int(round(interval_seconds * fps)), 1) + start_frame = int(round(start_second * fps)) + end_frame = int(round(end_second * fps)) if end_second is not None else total_frames + + cap.set(cv2.CAP_PROP_POS_FRAMES, start_frame) + current_frame = start_frame + extracted = [] + video_stem = Path(uploaded_file.name).stem + frame_prefix = _safe_join_prefix(prefix, f"{video_stem}_frames") + + while len(extracted) < max_frames: + ok, frame = cap.read() + if not ok: + break + + if end_frame and current_frame > end_frame: + break + + if (current_frame - start_frame) % step_frames == 0: + suffix = "jpg" if image_format == "jpeg" else image_format + encode_ext = ".jpg" if image_format in {"jpg", "jpeg"} else ".png" + ok_encode, encoded = cv2.imencode(encode_ext, frame) + if ok_encode: + frame_time = current_frame / fps + object_name = _safe_join_prefix( + frame_prefix, + f"frame_{len(extracted) + 1:05d}_{int(round(frame_time * 1000))}ms.{suffix}", + ) + minio_storage.upload_bytes( + bucket_name=bucket_name, + object_name=object_name, + data=encoded.tobytes(), + content_type=_file_content_type(f"frame.{suffix}"), + ) + extracted.append( + { + "object_name": object_name, + "frame_index": current_frame, + "time_second": round(frame_time, 3), + } + ) + current_frame += 1 + + except S3Error as exc: + return _map_s3_error(exc, "视频抽帧入库失败") + finally: + if cap is not None: + cap.release() + if temp_path and os.path.exists(temp_path): + os.unlink(temp_path) + + return Response( + { + "code": 200, + "data": { + "bucket_name": bucket_name, + "video_name": uploaded_file.name, + "fps": round(fps, 3), + "duration_seconds": round(duration_seconds, 3), + "interval_seconds": interval_seconds, + "start_second": start_second, + "end_second": end_second, + "max_frames": max_frames, + "extracted_count": len(extracted), + "extracted": extracted, + }, + "msg": f"视频抽帧入库成功,共生成 {len(extracted)} 张图片", + } + ) + + +@api_view(["POST"]) +@parser_classes([JSONParser]) +@permission_classes([IsAuthenticated]) +def minio_file_upload_bytes(request): + """上传 base64 编码的文件内容 + + POST /server/minio/file/upload-base64/ + Body: + { + "file_base64": "base64编码的文件内容", + "filename": "example.jpg", + "bucket_name": "ai-trainprediction", // 可选 + "prefix": "images" // 可选 + } + """ + file_base64 = request.data.get("file_base64", "") + filename = request.data.get("filename", "file.bin") + if not file_base64: + return Response({"code": 400, "msg": "缺少 file_base64 字段"}, status=400) + + try: + file_data = base64.b64decode(file_base64) + except Exception: + return Response({"code": 400, "msg": "file_base64 解码失败"}, status=400) + + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + prefix = request.data.get("prefix", "") + object_name = minio_storage.generate_object_name(filename, prefix) + + content_type = _file_content_type(filename) + try: + minio_storage.upload_bytes(bucket_name, object_name, file_data, content_type=content_type) + presigned_url = minio_storage.presign_get( + bucket_name, object_name, settings.MINIO_PRESIGN_EXPIRES + ) + except S3Error as exc: + return _map_s3_error(exc, "Base64 文件上传失败") + + return Response( + { + "code": 200, + "data": { + "bucket_name": bucket_name, + "object_name": object_name, + "original_name": filename, + "size": len(file_data), + "content_type": content_type, + "presigned_url": presigned_url, + }, + "msg": "上传成功", + } + ) + + +# ── 文件下载 ───────────────────────────────────────── + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def minio_file_download(request): + """下载文件(返回文件流) + + GET /server/minio/file/download/?bucket_name=xxx&object_name=xxx + """ + bucket_name = request.GET.get("bucket_name", DEFAULT_BUCKET) + object_name = request.GET.get("object_name", "") + if not object_name: + return Response({"code": 400, "msg": "缺少 object_name"}, status=400) + + filename = os.path.basename(object_name) + try: + info = minio_storage.get_object_info(bucket_name, object_name) + obj = minio_storage.get_object(bucket_name, object_name) + except S3Error: + raise Http404("文件不存在") + + response = StreamingHttpResponse( + _stream_object(obj), + content_type=info["content_type"] or _file_content_type(filename), + ) + response["Content-Disposition"] = ( + f'attachment; filename="{quote(filename)}"; ' + f"filename*=UTF-8''{quote(filename)}" + ) + response["Content-Length"] = str(info["size"]) + return response + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def minio_file_presign(request): + """获取文件预签名下载 URL + + GET /server/minio/file/presign/?bucket_name=xxx&object_name=xxx&expires=3600 + """ + bucket_name = request.GET.get("bucket_name", DEFAULT_BUCKET) + object_name = request.GET.get("object_name", "") + try: + expires = _normalize_expires( + request.GET.get("expires", settings.MINIO_PRESIGN_EXPIRES) + ) + except ValueError as exc: + return Response({"code": 400, "msg": str(exc)}, status=400) + + if not object_name: + return Response({"code": 400, "msg": "缺少 object_name"}, status=400) + + if not minio_storage.object_exists(bucket_name, object_name): + return Response({"code": 404, "msg": "文件不存在"}, status=404) + + try: + url = minio_storage.presign_get(bucket_name, object_name, expires) + except S3Error as exc: + return _map_s3_error(exc, "预签名下载地址生成失败") + return Response({"code": 200, "data": {"presigned_url": url, "expires_in": expires}, "msg": "获取成功"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def minio_file_presign_upload(request): + """获取文件预签名上传 URL""" + bucket_name = request.GET.get("bucket_name", DEFAULT_BUCKET) + object_name = request.GET.get("object_name", "") + if not object_name: + return Response({"code": 400, "msg": "缺少 object_name"}, status=400) + + try: + expires = _normalize_expires( + request.GET.get("expires", settings.MINIO_PRESIGN_EXPIRES) + ) + ensure_bucket(minio_storage, bucket_name) + url = minio_storage.presign_upload(bucket_name, object_name, expires) + except ValueError as exc: + return Response({"code": 400, "msg": str(exc)}, status=400) + except S3Error as exc: + return _map_s3_error(exc, "预签名上传地址生成失败") + + return Response( + {"code": 200, "data": {"presigned_url": url, "expires_in": expires}, "msg": "获取成功"} + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def minio_file_preview(request): + """预览文件(返回文件流用于浏览器直接显示) + + GET /server/minio/file/preview/?bucket_name=xxx&object_name=xxx + """ + bucket_name = request.GET.get("bucket_name", DEFAULT_BUCKET) + object_name = request.GET.get("object_name", "") + if not object_name: + return Response({"code": 400, "msg": "缺少 object_name"}, status=400) + + filename = os.path.basename(object_name) + try: + info = minio_storage.get_object_info(bucket_name, object_name) + obj = minio_storage.get_object(bucket_name, object_name) + except S3Error: + raise Http404("文件不存在") + + response = StreamingHttpResponse( + _stream_object(obj), + content_type=info["content_type"] or _file_content_type(filename), + ) + response["Content-Length"] = str(info["size"]) + response["Content-Disposition"] = f'inline; filename="{quote(filename)}"' + return response + + +# ── 文件信息 & 列表 ────────────────────────────────── + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def minio_file_info(request): + """获取文件元信息 + + GET /server/minio/file/info/?bucket_name=xxx&object_name=xxx + """ + bucket_name = request.GET.get("bucket_name", DEFAULT_BUCKET) + object_name = request.GET.get("object_name", "") + if not object_name: + return Response({"code": 400, "msg": "缺少 object_name"}, status=400) + + try: + info = minio_storage.get_object_info(bucket_name, object_name) + presigned_url = minio_storage.presign_get( + bucket_name, object_name, settings.MINIO_PRESIGN_EXPIRES + ) + except S3Error as exc: + return _map_s3_error(exc, "文件信息获取失败") + info["presigned_url"] = presigned_url + return Response({"code": 200, "data": info, "msg": "获取成功"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def minio_file_list(request): + """列出文件 + + GET /server/minio/files/?bucket_name=xxx&prefix=xxx + """ + bucket_name = request.GET.get("bucket_name", DEFAULT_BUCKET) + prefix = request.GET.get("prefix", "") + try: + objects = minio_storage.list_objects(bucket_name, prefix=prefix) + except S3Error as exc: + return _map_s3_error(exc, "文件列表获取失败") + return Response({"code": 200, "data": objects, "msg": f"共 {len(objects)} 个对象"}) + + +# ── 文件删除 ───────────────────────────────────────── + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def minio_file_delete(request): + """删除单个文件 + + DELETE /server/minio/file/delete/ + Body: {"bucket_name": "xxx", "object_name": "xxx"} + """ + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + object_name = request.data.get("object_name", "") + if not object_name: + return Response({"code": 400, "msg": "缺少 object_name"}, status=400) + + try: + minio_storage.delete_object(bucket_name, object_name) + except S3Error as exc: + return _map_s3_error(exc, "文件删除失败") + return Response({"code": 200, "data": {"object_name": object_name}, "msg": "删除成功"}) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def minio_file_batch_delete(request): + """批量删除文件 + + DELETE /server/minio/files/delete/ + Body: {"bucket_name": "xxx", "object_names": ["a.jpg", "b.png"]} + """ + bucket_name = request.data.get("bucket_name", DEFAULT_BUCKET) + object_names = request.data.get("object_names", []) + if not object_names: + return Response({"code": 400, "msg": "缺少 object_names"}, status=400) + + try: + errors = minio_storage.delete_objects(bucket_name, object_names) + except S3Error as exc: + return _map_s3_error(exc, "批量删除失败") + if errors: + return Response( + { + "code": 207, + "data": {"deleted": len(object_names) - len(errors), "errors": errors}, + "msg": f"部分删除,{len(errors)} 个失败", + }, + status=207, + ) + return Response( + {"code": 200, "data": {"deleted": len(object_names)}, "msg": "全部删除成功"} + ) + + +# ── 文件复制 ───────────────────────────────────────── + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def minio_file_copy(request): + """复制文件 + + POST /server/minio/file/copy/ + Body: { + "src_bucket": "xxx", + "src_object": "a.jpg", + "dst_bucket": "yyy", + "dst_object": "b.jpg" + } + """ + src_bucket = request.data.get("src_bucket", DEFAULT_BUCKET) + src_object = request.data.get("src_object", "") + dst_bucket = request.data.get("dst_bucket", DEFAULT_BUCKET) + dst_object = request.data.get("dst_object", "") + + if not src_object or not dst_object: + return Response({"code": 400, "msg": "src_object 和 dst_object 不能为空"}, status=400) + + try: + result = minio_storage.copy_object(src_bucket, src_object, dst_bucket, dst_object) + return Response({"code": 200, "data": {"object_name": result}, "msg": "复制成功"}) + except S3Error as exc: + return _map_s3_error(exc, "文件复制失败") diff --git a/backend/apps/datasets/__init__.py b/backend/apps/datasets/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/datasets/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/datasets/apps.py b/backend/apps/datasets/apps.py new file mode 100644 index 0000000..c47e1d4 --- /dev/null +++ b/backend/apps/datasets/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class DatasetsConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.datasets" + diff --git a/backend/apps/datasets/dataset_stats.py b/backend/apps/datasets/dataset_stats.py new file mode 100644 index 0000000..96e8022 --- /dev/null +++ b/backend/apps/datasets/dataset_stats.py @@ -0,0 +1,24 @@ +from django.db.models import Q + +from apps.core.models import AiDataset, AiDatasetSample + + +def get_dataset_sample_counters(dataset_id: str) -> tuple[int, int]: + queryset = AiDatasetSample.objects.filter(dataset_id=dataset_id) + total_count = queryset.count() + annotated_count = queryset.filter( + (Q(rectangle__isnull=False) & ~Q(rectangle="")) + | (Q(polygon__isnull=False) & ~Q(polygon="")) + ).count() + return total_count, annotated_count + + +def refresh_dataset_sample_counters(dataset_id: str) -> tuple[int, int]: + if not dataset_id: + return 0, 0 + total_count, annotated_count = get_dataset_sample_counters(dataset_id) + AiDataset.objects.filter(id=dataset_id).update( + dataset_count=total_count, + annotated_count=annotated_count, + ) + return total_count, annotated_count diff --git a/backend/apps/datasets/storage_service.py b/backend/apps/datasets/storage_service.py new file mode 100644 index 0000000..499f643 --- /dev/null +++ b/backend/apps/datasets/storage_service.py @@ -0,0 +1,502 @@ +import io +import mimetypes +import os +import uuid +import zipfile +from datetime import datetime +from tempfile import NamedTemporaryFile + +from django.conf import settings +from django.db.models import Max +from PIL import Image, UnidentifiedImageError + +from apps.common.minio_client import minio_storage +from apps.common.utils.annotation_store import split_dataset_sample_annotation_content +from apps.core.models import AiDatasetSample + +try: + import cv2 +except Exception: + cv2 = None + + +DATASET_BUCKET = "dataset" +TEMPFILE_BUCKET = "tempfile" +IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".bmp", ".gif", ".webp", ".tif", ".tiff"} +VIDEO_EXTENSIONS = {".mp4", ".avi", ".mov", ".mkv", ".wmv", ".flv", ".mpeg", ".mpg", ".webm"} +AUDIO_EXTENSIONS = {".mp3", ".wav", ".aac", ".m4a", ".flac", ".ogg"} +TEXT_EXTENSIONS = {".txt", ".csv", ".json", ".xml"} + + +def _local_sample_path(train_path: str,saved_path: str, saved_filename: str) -> str: + return os.path.join(train_path, saved_path, saved_filename).replace("\\", "/") + + +def _sample_object_name(saved_path: str, saved_filename: str) -> str: + return f"{str(saved_path or '').strip('/').replace('\\', '/')}/{saved_filename}".strip("/") + + +def _ensure_local_dir(saved_path: str) -> str: + local_dir = os.path.join(settings.FILESPACE_ROOT_PATH, saved_path).replace("\\", "/") + os.makedirs(local_dir, exist_ok=True) + return local_dir + + +def _write_local_file(saved_path: str, saved_filename: str, data: bytes) -> str: + local_dir = _ensure_local_dir(saved_path) + full_path = os.path.join(local_dir, saved_filename).replace("\\", "/") + with open(full_path, "wb") as f: + f.write(data) + return full_path + + +def _sidecar_filename(saved_filename: str, suffix: str) -> str: + stem = os.path.splitext(saved_filename)[0] + normalized_suffix = suffix if str(suffix).startswith(".") else f".{suffix}" + return f"{stem}{normalized_suffix}" + + +def sample_sidecar_names(saved_filename: str): + return [ + _sidecar_filename(saved_filename, ".xml"), + _sidecar_filename(saved_filename, ".json"), + ] + + +def _normalize_filesize(size_bytes: int) -> str: + try: + return str(min(max(int(size_bytes or 0), 0), 9999999999)) + except Exception: + return "0" + + +def _image_wh_from_bytes(data: bytes): + try: + with Image.open(io.BytesIO(data)) as img: + width, height = img.size + return f"{width}x{height}" + except UnidentifiedImageError: + return None + except Exception: + return None + + +def _extract_sample_index(saved_filename: str) -> int | None: + stem = os.path.splitext(os.path.basename(str(saved_filename or "")))[0] + tail = stem.rsplit("-", 1)[-1] + if tail.isdigit(): + return int(tail) + return None + + +def _next_sample_index(dataset_id: str) -> int: + max_saved_filename = AiDatasetSample.objects.filter(dataset_id=dataset_id).aggregate( + max_saved_filename=Max("saved_filename") + )["max_saved_filename"] + current_index = _extract_sample_index(max_saved_filename) + return (current_index or 0) + 1 + + +def _build_saved_filename(dataset, original_filename: str) -> str: + ext = os.path.splitext(original_filename or "")[1].lower() + index = _next_sample_index(dataset.id) + return f"{dataset.dataset_code}-{index:08}{ext}" + + +def detect_original_type(filename: str) -> str: + ext = os.path.splitext(filename or "")[1].lower() + if ext in IMAGE_EXTENSIONS: + return "01" + if ext in VIDEO_EXTENSIONS: + return "02" + if ext in AUDIO_EXTENSIONS: + return "03" + if ext == ".zip": + return "04" + if ext in TEXT_EXTENSIONS: + return "05" + return "99" + + +def dataset_type_accepts_extension(dataset_type: str, extension: str) -> bool: + ext = str(extension or "").lower() + if dataset_type == "02": + return ext in IMAGE_EXTENSIONS + if dataset_type == "03": + return ext in VIDEO_EXTENSIONS + if dataset_type == "04": + return ext in AUDIO_EXTENSIONS + if dataset_type == "05": + return ext in TEXT_EXTENSIONS + return ext in IMAGE_EXTENSIONS | VIDEO_EXTENSIONS | AUDIO_EXTENSIONS | TEXT_EXTENSIONS + + +def create_dataset_sample_record( + dataset, + original_filename: str, + saved_filename: str, + size_bytes: int, + annotation_content=None, + custom1=None, + custom2=None, + custom3=None, + status: str = "00", +): + annotation_fields = split_dataset_sample_annotation_content(annotation_content) + return AiDatasetSample.objects.create( + id=str(uuid.uuid4()), + dataset_id=dataset.id, + saved_path=dataset.dataset_path, + original_filename=original_filename, + saved_filename=saved_filename, + saved_filesize=_normalize_filesize(size_bytes), + rectangle=annotation_fields["rectangle"], + polygon=annotation_fields["polygon"], + status=status, + create_time=datetime.now(), + custom1=custom1, + custom2=custom2, + custom3=custom3, + ) + + +def save_bytes_to_dataset( + dataset, + original_filename: str, + data: bytes, + content_type: str | None = None, + annotation_content=None, + custom1=None, + custom2=None, + custom3=None, +): + saved_filename = _build_saved_filename(dataset, original_filename) + object_name = _sample_object_name(dataset.dataset_path, saved_filename) + actual_content_type = content_type or mimetypes.guess_type(original_filename)[0] or "application/octet-stream" + minio_storage.upload_bytes(DATASET_BUCKET, object_name, data, content_type=actual_content_type) + if custom1 is None and os.path.splitext(saved_filename)[1].lower() in IMAGE_EXTENSIONS: + custom1 = _image_wh_from_bytes(data) + sample = create_dataset_sample_record( + dataset=dataset, + original_filename=os.path.basename(original_filename), + saved_filename=saved_filename, + size_bytes=len(data), + annotation_content=annotation_content, + custom1=custom1, + custom2=custom2, + custom3=custom3, + ) + return sample + + +def save_uploaded_file_to_dataset(dataset, uploaded_file): + file_bytes = uploaded_file.read() + uploaded_file.seek(0) + return save_bytes_to_dataset( + dataset=dataset, + original_filename=uploaded_file.name, + data=file_bytes, + content_type=uploaded_file.content_type, + ) + + +def copy_minio_object_to_dataset( + dataset, + source_bucket: str, + source_object: str, + original_filename: str, + size_bytes: int | None = None, + custom2=None, + custom3=None, +): + saved_filename = _build_saved_filename(dataset, original_filename) + target_object = _sample_object_name(dataset.dataset_path, saved_filename) + minio_storage.copy_object(source_bucket, source_object, DATASET_BUCKET, target_object) + actual_size = size_bytes + if actual_size is None: + try: + actual_size = int(minio_storage.get_object_info(DATASET_BUCKET, target_object).get("size") or 0) + except Exception: + actual_size = 0 + custom1 = None + if os.path.splitext(saved_filename)[1].lower() in IMAGE_EXTENSIONS: + try: + custom1 = _image_wh_from_bytes(minio_storage.download_bytes(DATASET_BUCKET, target_object)) + except Exception: + custom1 = None + return create_dataset_sample_record( + dataset=dataset, + original_filename=os.path.basename(original_filename), + saved_filename=saved_filename, + size_bytes=actual_size or 0, + custom1=custom1, + custom2=custom2, + custom3=custom3, + ) + + +def dataset_sample_source_exists(dataset_id: str, source_marker: str | None) -> bool: + if not source_marker: + return False + return AiDatasetSample.objects.filter(dataset_id=dataset_id, custom2=source_marker).exists() + + +def copy_minio_object_to_dataset_result( + dataset, + source_bucket: str, + source_object: str, + original_filename: str, + size_bytes: int | None = None, + source_marker: str | None = None, + skip_existing: bool = False, +): + if skip_existing and dataset_sample_source_exists(dataset.id, source_marker): + return { + "imported": [], + "skipped": [{"name": os.path.basename(original_filename), "reason": "duplicate_source"}], + "failed": [], + } + sample = copy_minio_object_to_dataset( + dataset=dataset, + source_bucket=source_bucket, + source_object=source_object, + original_filename=original_filename, + size_bytes=size_bytes, + custom2=source_marker, + ) + return {"imported": [sample], "skipped": [], "failed": []} + + +def import_zip_bytes_to_dataset_result( + dataset, + zip_bytes: bytes, + source_marker_prefix: str | None = None, + skip_existing: bool = False, +): + imported = [] + skipped = [] + failed = [] + with zipfile.ZipFile(io.BytesIO(zip_bytes), "r") as zip_file: + for member in zip_file.infolist(): + if member.is_dir(): + continue + member_name = member.filename.replace("\\", "/") + filename = os.path.basename(member_name) + if not filename or filename.startswith("."): + continue + ext = os.path.splitext(filename)[1].lower() + if not dataset_type_accepts_extension(dataset.dataset_type, ext): + failed.append({"name": filename, "reason": "type_mismatch"}) + continue + source_marker = f"{source_marker_prefix}:zip:{member_name}" if source_marker_prefix else None + if skip_existing and dataset_sample_source_exists(dataset.id, source_marker): + skipped.append({"name": filename, "reason": "duplicate_source"}) + continue + try: + with zip_file.open(member, "r") as fp: + data = fp.read() + imported.append(save_bytes_to_dataset(dataset, filename, data, custom2=source_marker)) + except Exception as exc: + failed.append({"name": filename, "reason": str(exc)}) + return {"imported": imported, "skipped": skipped, "failed": failed} + + +def import_zip_bytes_to_dataset(dataset, zip_bytes: bytes, source_marker_prefix: str | None = None, skip_existing: bool = False): + result = import_zip_bytes_to_dataset_result( + dataset=dataset, + zip_bytes=zip_bytes, + source_marker_prefix=source_marker_prefix, + skip_existing=skip_existing, + ) + return result["imported"] + + +def extract_video_frames_to_dataset_result( + dataset, + video_bytes: bytes, + original_filename: str, + interval_seconds: int = 1, + max_frames: int = 200, + image_format: str = "jpg", + source_marker_prefix: str | None = None, + skip_existing: bool = False, +): + if cv2 is None: + raise RuntimeError("opencv-python 未安装,无法处理视频") + + video_ext = os.path.splitext(original_filename or "")[1].lower() or ".mp4" + temp_path = None + cap = None + imported = [] + skipped = [] + failed = [] + try: + with NamedTemporaryFile(delete=False, suffix=video_ext) as temp_file: + temp_file.write(video_bytes) + temp_path = temp_file.name + + cap = cv2.VideoCapture(temp_path) + if not cap.isOpened(): + raise RuntimeError("视频文件无法打开") + + fps = cap.get(cv2.CAP_PROP_FPS) or 25.0 + step_frames = max(int(round(interval_seconds * fps)), 1) + current_frame = 0 + video_stem = os.path.splitext(os.path.basename(original_filename))[0] + suffix = "jpg" if image_format == "jpeg" else image_format + encode_ext = ".jpg" if image_format in {"jpg", "jpeg"} else ".png" + + while len(imported) < max_frames: + ok, frame = cap.read() + if not ok: + break + if current_frame % step_frames == 0: + source_marker = ( + f"{source_marker_prefix}:frame:{current_frame:08}" + if source_marker_prefix + else None + ) + if skip_existing and dataset_sample_source_exists(dataset.id, source_marker): + skipped.append( + { + "name": f"{video_stem}_{current_frame:08}.{suffix}", + "reason": "duplicate_source", + } + ) + current_frame += 1 + continue + ok_encode, encoded = cv2.imencode(encode_ext, frame) + if ok_encode: + frame_name = f"{video_stem}_{current_frame:08}.{suffix}" + imported.append( + save_bytes_to_dataset( + dataset, + frame_name, + encoded.tobytes(), + custom2=source_marker, + ) + ) + else: + failed.append( + { + "name": f"{video_stem}_{current_frame:08}.{suffix}", + "reason": "frame_encode_failed", + } + ) + current_frame += 1 + finally: + if cap is not None: + cap.release() + if temp_path and os.path.exists(temp_path): + os.unlink(temp_path) + return {"imported": imported, "skipped": skipped, "failed": failed} + + +def extract_video_frames_to_dataset( + dataset, + video_bytes: bytes, + original_filename: str, + interval_seconds: int = 1, + max_frames: int = 200, + image_format: str = "jpg", + source_marker_prefix: str | None = None, + skip_existing: bool = False, +): + result = extract_video_frames_to_dataset_result( + dataset=dataset, + video_bytes=video_bytes, + original_filename=original_filename, + interval_seconds=interval_seconds, + max_frames=max_frames, + image_format=image_format, + source_marker_prefix=source_marker_prefix, + skip_existing=skip_existing, + ) + return result["imported"] + + +def ensure_sample_local_copy(train_path: str, saved_path: str, saved_filename: str): + local_path = _local_sample_path(train_path, saved_path, saved_filename) + if os.path.exists(local_path): + return local_path + object_name = _sample_object_name(saved_path, saved_filename) + _ensure_local_dir(saved_path) + minio_storage.download_file(DATASET_BUCKET, object_name, local_path) + return local_path + + +def ensure_sidecar_local_copy(saved_path: str, saved_filename: str, suffix: str): + sidecar_name = _sidecar_filename(saved_filename, suffix) + local_path = _local_sample_path(saved_path, sidecar_name) + if os.path.exists(local_path): + return local_path + object_name = _sample_object_name(saved_path, sidecar_name) + if not minio_storage.object_exists(DATASET_BUCKET, object_name): + return local_path + _ensure_local_dir(saved_path) + minio_storage.download_file(DATASET_BUCKET, object_name, local_path) + return local_path + + +def download_sidecar_bytes(saved_path: str, saved_filename: str, suffix: str): + sidecar_name = _sidecar_filename(saved_filename, suffix) + object_name = _sample_object_name(saved_path, sidecar_name) + try: + if minio_storage.object_exists(DATASET_BUCKET, object_name): + return minio_storage.download_bytes(DATASET_BUCKET, object_name) + except Exception: + pass + + local_path = _local_sample_path(saved_path, sidecar_name) + if os.path.exists(local_path) and os.path.isfile(local_path): + with open(local_path, "rb") as f: + return f.read() + return None + + +def download_sidecar_text(saved_path: str, saved_filename: str, suffix: str, encoding: str = "utf-8"): + data = download_sidecar_bytes(saved_path, saved_filename, suffix) + if data is None: + return None + return data.decode(encoding, errors="replace") + + +def upload_sidecar_bytes(saved_path: str, saved_filename: str, suffix: str, data: bytes, content_type: str | None = None): + sidecar_name = _sidecar_filename(saved_filename, suffix) + object_name = _sample_object_name(saved_path, sidecar_name) + actual_content_type = content_type or mimetypes.guess_type(sidecar_name)[0] or "application/octet-stream" + minio_storage.upload_bytes(DATASET_BUCKET, object_name, data, content_type=actual_content_type) + return sidecar_name + + +def upload_sidecar_text(saved_path: str, saved_filename: str, suffix: str, text: str, content_type: str | None = None): + actual_content_type = content_type + if actual_content_type is None and str(suffix).lower().endswith("json"): + actual_content_type = "application/json" + return upload_sidecar_bytes( + saved_path=saved_path, + saved_filename=saved_filename, + suffix=suffix, + data=(text or "").encode("utf-8"), + content_type=actual_content_type, + ) + + +def delete_sample_storage(saved_path: str, saved_filename: str): + candidates = [saved_filename] + sample_sidecar_names(saved_filename) + failed_objects = [] + for filename in candidates: + object_name = _sample_object_name(saved_path, filename) + try: + if minio_storage.object_exists(DATASET_BUCKET, object_name): + minio_storage.delete_object(DATASET_BUCKET, object_name) + except Exception: + failed_objects.append(object_name) + + local_path = os.path.join(settings.FILESPACE_ROOT_PATH, saved_path, filename).replace("\\", "/") + if os.path.exists(local_path) and os.path.isfile(local_path): + try: + os.remove(local_path) + except Exception: + pass + return failed_objects diff --git a/backend/apps/datasets/tests/__init__.py b/backend/apps/datasets/tests/__init__.py new file mode 100644 index 0000000..83ab76b --- /dev/null +++ b/backend/apps/datasets/tests/__init__.py @@ -0,0 +1 @@ +# 空文件 — 标记 tests 为 Python 包 diff --git a/backend/apps/datasets/tests/test_smart_terminal.py b/backend/apps/datasets/tests/test_smart_terminal.py new file mode 100644 index 0000000..67f76ba --- /dev/null +++ b/backend/apps/datasets/tests/test_smart_terminal.py @@ -0,0 +1,287 @@ +"""智能终端 API 接口测试""" +import uuid + +from django.contrib.auth import get_user_model +from django.db import connection +from django.test import TestCase +from rest_framework.test import APIClient + +from apps.core.models import AiSmartTerminal + +User = get_user_model() + + +# ---------- 5 条测试设备数据 ---------- +TEST_DEVICES = [ + { + "stcd": "ZD001", + "stnm": "碧水电站-鱼类识别AI盒子", + "sttp": "01", + "lgtd": 104.065800, + "lttd": 30.572800, + "elev": 512.500000, + "rstcd": "BS001", + "base_id": "YJ001", + "rvcd": "MJ001", + "aipz": '{"cpu":"ARM Cortex-A78","memory":"8GB","storage":"64GB"}', + "ipaddr": "192.168.1.101", + "usfl": 1, + "dtin": 1, + "mway": 1, + "sync_check_interval": 30, + }, + { + "stcd": "ZD002", + "stnm": "青湖-鸟类识别AI盒子", + "sttp": "02", + "lgtd": 104.125600, + "lttd": 30.681200, + "elev": 489.300000, + "rstcd": "QH002", + "base_id": "YJ001", + "rvcd": "MJ002", + "aipz": '{"cpu":"ARM Cortex-A78","memory":"4GB","storage":"32GB"}', + "ipaddr": "192.168.1.102", + "usfl": 1, + "dtin": 1, + "mway": 1, + "sync_check_interval": 60, + }, + { + "stcd": "ZD003", + "stnm": "卧龙自然保护区-野生动物识别AI盒子", + "sttp": "03", + "lgtd": 103.298400, + "lttd": 30.985600, + "elev": 1820.000000, + "rstcd": "WL003", + "base_id": "YJ002", + "rvcd": "MJ003", + "aipz": '{"cpu":"NVIDIA Jetson Orin","memory":"16GB","storage":"256GB"}', + "ipaddr": "192.168.2.101", + "usfl": 1, + "dtin": 0, + "mway": 2, + "sync_check_interval": 120, + }, + { + "stcd": "ZD004", + "stnm": "长江上游-鱼类分拣装置", + "sttp": "04", + "lgtd": 104.545200, + "lttd": 30.127800, + "elev": 345.000000, + "rstcd": "CJ004", + "base_id": "YJ003", + "rvcd": "CJ001", + "aipz": '{"cpu":"Intel i5-1135G7","memory":"8GB","storage":"128GB","grab_arm":true}', + "ipaddr": "192.168.3.201", + "usfl": 0, + "dtin": 0, + "mway": 0, + "sync_check_interval": None, + }, + { + "stcd": "ZD005", + "stnm": "洞庭湖-鸟类识别AI盒子", + "sttp": "02", + "lgtd": 112.946800, + "lttd": 29.358700, + "elev": 35.200000, + "rstcd": "DT005", + "base_id": "YJ004", + "rvcd": "CJ002", + "aipz": '{"cpu":"ARM Cortex-A78","memory":"8GB","storage":"64GB"}', + "ipaddr": "192.168.4.101", + "usfl": 1, + "dtin": 1, + "mway": 1, + "sync_check_interval": 45, + }, +] + + +class SmartTerminalAPITest(TestCase): + """智能终端 API 集成测试 — 覆盖全部 7 个接口""" + + @classmethod + def setUpTestData(cls): + """类级别:测试库建表 + 创建 admin 用户 + 插入 5 条测试设备""" + cls.base_url = "/server/terminal" + # Django 测试每次新建 test_ 库,需在测试库中建表 + with connection.schema_editor() as schema_editor: + schema_editor.create_model(AiSmartTerminal) + # 创建 admin 用户 + cls.admin_user = User.objects.create_user( + username="admin", password="123456", is_active=True, is_staff=True, + ) + # 通过 ORM 直接插入 5 条设备 + cls.created_ids = [] + for device in TEST_DEVICES: + obj = AiSmartTerminal.objects.create( + id=uuid.uuid4().hex, + record_user="admin", + **device, + ) + cls.created_ids.append(obj.id) + assert AiSmartTerminal.objects.filter(is_deleted=0).count() == 5 + + def setUp(self): + """每个测试用例前:用 admin 强制登录""" + self.client = APIClient() + self.client.force_login(self.admin_user) + + # ==================== 1. 创建 ==================== + def test_01_create_duplicate_stcd_should_reject(self): + """重复的 stcd 应被拒绝""" + resp = self.client.post(f"{self.base_url}/create/", { + "stcd": "ZD001", + "stnm": "重复设备", + "sttp": "01", + }, format="json") + self.assertEqual(resp.status_code, 400) + + # ==================== 2. 修改 ==================== + def test_02_update_terminal_info(self): + """修改设备基本信息""" + target = self.created_ids[0] + resp = self.client.put(f"{self.base_url}/update/", { + "id": target, + "stnm": "碧水电站-鱼类识别AI盒子(已升级)", + "sync_check_interval": 15, + }, format="json") + self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.data["stnm"], "碧水电站-鱼类识别AI盒子(已升级)") + + def test_03_update_protected_fields_should_be_ignored(self): + """修改受保护字段应被忽略""" + target = self.created_ids[0] + resp = self.client.put(f"{self.base_url}/update/", { + "id": target, + "model_version": "hacked_v99", + "online_status": 0, + }, format="json") + self.assertEqual(resp.status_code, 200) + # 受保护字段不应被修改 + self.assertIsNone(resp.data["model_version"]) + self.assertIsNone(resp.data["online_status"]) + + # ==================== 3. 发布模型 ==================== + def test_04_publish_model_to_single_terminal(self): + """发布模型到单个终端""" + target = self.created_ids[0] + resp = self.client.put(f"{self.base_url}/publishModel/", { + "id": target, + "model_id": "model_fish_v2", + "model_version": "v2.1.0", + "model_path": "models/fish_detect/v2.1.0/model.onnx", + }, format="json") + self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.data["published_count"], 1) + updated = AiSmartTerminal.objects.get(id=target) + self.assertEqual(updated.model_version, "v2.1.0") + self.assertIsNotNone(updated.model_publish_time) + + def test_05_publish_model_to_multiple_terminals(self): + """发布模型到多个终端""" + targets = self.created_ids[:3] + resp = self.client.put(f"{self.base_url}/publishModel/", { + "ids": targets, + "model_id": "model_bird_v1", + "model_version": "v1.5.0", + "model_path": "models/bird_detect/v1.5.0/model.onnx", + }, format="json") + self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.data["published_count"], 3) + for tid in targets: + t = AiSmartTerminal.objects.get(id=tid) + self.assertEqual(t.model_version, "v1.5.0") + + def test_06_publish_model_missing_params(self): + """发布模型缺少参数应报错""" + resp = self.client.put(f"{self.base_url}/publishModel/", { + "id": self.created_ids[0], + "model_id": "m1", + }, format="json") + self.assertEqual(resp.status_code, 400) + + # ==================== 4. 分页查询 ==================== + def test_07_search_all_returns_paginated(self): + """查询全部设备应返回分页数据""" + resp = self.client.get(f"{self.base_url}/list/") + self.assertEqual(resp.status_code, 200) + self.assertIn("count", resp.data) + self.assertIn("results", resp.data) + self.assertEqual(resp.data["count"], 5) + + def test_08_search_by_sttp(self): + """按终端分类过滤""" + resp = self.client.get(f"{self.base_url}/list/?sttp=02") + self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.data["count"], 2) # ZD002 + ZD005 + + def test_09_search_by_usfl(self): + """按启用状态过滤""" + resp = self.client.get(f"{self.base_url}/list/?usfl=0") + self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.data["count"], 1) # ZD004 + + def test_10_search_by_stnm_fuzzy(self): + """按终端名称模糊搜索""" + resp = self.client.get(f"{self.base_url}/list/?stnm=鱼类") + self.assertEqual(resp.status_code, 200) + self.assertGreaterEqual(resp.data["count"], 2) # ZD001 + ZD004 + + def test_11_pagination_page_size(self): + """自定义分页大小""" + resp = self.client.get(f"{self.base_url}/list/?page_size=2") + self.assertEqual(resp.status_code, 200) + self.assertEqual(len(resp.data["results"]), 2) + self.assertEqual(resp.data["count"], 5) + + # ==================== 5. 心跳上报 ==================== + def test_12_heartbeat_updates_online_status(self): + """心跳上报应更新在线状态和心跳时间""" + resp = self.client.put(f"{self.base_url}/heartbeat/", { + "stcd": "ZD001", + }, format="json") + self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.data["online_status"], 1) + self.assertIsNotNone(resp.data["last_heartbeat_time"]) + + def test_13_heartbeat_missing_stcd(self): + """心跳上报缺少 stcd 应报错""" + resp = self.client.put(f"{self.base_url}/heartbeat/", {}, format="json") + self.assertEqual(resp.status_code, 400) + + def test_14_heartbeat_unknown_stcd(self): + """心跳上报未知 stcd 应返回 404""" + resp = self.client.put(f"{self.base_url}/heartbeat/", { + "stcd": "UNKNOWN", + }, format="json") + self.assertEqual(resp.status_code, 404) + + # ==================== 6. 下载模型 ==================== + def test_15_download_model_no_model_published(self): + """未发布模型的终端下载应返回 404""" + resp = self.client.get(f"{self.base_url}/downloadModel/?stcd=ZD005") + self.assertEqual(resp.status_code, 404) + + def test_16_download_model_missing_stcd(self): + """下载模型缺少 stcd 应报错""" + resp = self.client.get(f"{self.base_url}/downloadModel/") + self.assertEqual(resp.status_code, 400) + + # ==================== 7. 逻辑删除 ==================== + def test_17_delete_soft(self): + """逻辑删除后 is_deleted 应为 1""" + target = self.created_ids[4] + resp = self.client.delete(f"{self.base_url}/delete/?id={target}") + self.assertEqual(resp.status_code, 200) + deleted = AiSmartTerminal.objects.get(id=target) + self.assertEqual(deleted.is_deleted, 1) + + def test_18_delete_missing_id(self): + """删除缺少 id 应报错""" + resp = self.client.delete(f"{self.base_url}/delete/") + self.assertEqual(resp.status_code, 400) diff --git a/backend/apps/datasets/views/__init__.py b/backend/apps/datasets/views/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/datasets/views/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/datasets/views/annotate_task.py b/backend/apps/datasets/views/annotate_task.py new file mode 100644 index 0000000..050799f --- /dev/null +++ b/backend/apps/datasets/views/annotate_task.py @@ -0,0 +1,500 @@ +from datetime import datetime +import concurrent.futures +import json +import os +import threading +import time +import uuid +from typing import Any, Dict, List, Optional + +import requests +from django.conf import settings +from django.db import connection, close_old_connections +from django.db.models import Case, Count, IntegerField, Sum, When +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AiAnnotateTaskSerializer +from apps.core.models import ( + AiAnnotateTask, + AiAnnotateTaskSample, + AiDatasetSample, + AIAnnotateTeam, +) + + +def _get_labels_json_from_task(task: AiAnnotateTask) -> str: + if not task.labels: + return "" + try: + items = json.loads(task.labels) + except Exception: + return "" + if not isinstance(items, list): + return "" + return task.labels + + +def _build_text_prompt_from_labels_json(labels_json: str) -> str: + if not labels_json: + return "" + try: + items = json.loads(labels_json) + except Exception: + return "" + if isinstance(items, dict): + items = [items] + if not isinstance(items, list): + return "" + labels: List[str] = [] + for it in items: + if isinstance(it, dict) and it.get("label"): + labels.append(str(it["label"]).strip()) + labels = [x for x in labels if x] + return ".".join(labels) if labels else "" + + +def _flatten_bbox_region(region: Any) -> Optional[List[float]]: + try: + if ( + isinstance(region, list) + and len(region) == 2 + and isinstance(region[0], list) + and isinstance(region[1], list) + and len(region[0]) == 2 + and len(region[1]) == 2 + ): + x1, y1 = float(region[0][0]), float(region[0][1]) + x2, y2 = float(region[1][0]), float(region[1][1]) + return [x1, y1, x2, y2] + except Exception: + return None + return None + + +def _is_int_one(value: Any) -> bool: + try: + return int(str(value).strip()) == 1 + except Exception: + return False + + +def _run_auto_annotate_task( + task_id: str, + label_content: str, + text_prompt: str, + req_type: int, + score_threshold: float, + timeout_sec: float, + max_workers: int, + infer_url: str, +) -> None: + close_old_connections() + + samples = list(AiAnnotateTaskSample.objects.filter(task_id=task_id, status="01")) + if not samples: + print(f"[auto-annotate] task_id={task_id} no samples with status=01") + close_old_connections() + return + + health_url = infer_url.rstrip("/infer").rstrip("/") + "/health" + try: + resp = requests.get(health_url, timeout=5) + if resp.status_code != 200: + print(f"[auto-annotate] task_id={task_id} health check failed: {resp.status_code}") + close_old_connections() + return + print(f"[auto-annotate] task_id={task_id} health check passed") + except Exception as e: + print(f"[auto-annotate] task_id={task_id} health check error: {e}") + close_old_connections() + return + + try: + from apps.common.minio_client import minio_storage + except Exception: + from common.minio_client import minio_storage + + def call_infer(sample: AiAnnotateTaskSample) -> tuple[str, Optional[str], Optional[str]]: + sample_path = sample.sample_path or "" + sample_name = sample.sample_name or "" + + if not sample_path or not sample_name: + return sample.id, None, "missing sample_path or sample_name" + + object_name = os.path.join(sample_path.lstrip("/"), sample_name).replace("\\", "/") + + try: + response = minio_storage.get_object("dataset", object_name) + image_data = response.read() + response.release_conn() + except Exception as e: + return sample.id, None, f"minio download error: {e}" + + try: + resp = requests.post( + infer_url, + files={ + "image_file": (sample_name, image_data, "image/jpeg"), + }, + data={ + "label_content": label_content, + "text_prompt": text_prompt, + "type": req_type, + "score_threshold": score_threshold, + }, + timeout=timeout_sec, + ) + except Exception as e: + return sample.id, None, str(e) + if resp.status_code != 200: + return sample.id, None, f"http {resp.status_code}: {resp.text[:300]}" + try: + result = resp.json() + except Exception: + return sample.id, None, f"invalid json: {resp.text[:300]}" + if not isinstance(result, list): + return sample.id, None, "invalid response: not list" + + normalized: List[Dict[str, Any]] = [] + for item in result: + if not isinstance(item, dict): + continue + if "label" not in item or "region" not in item: + continue + region = item.get("region") + if req_type == 0: + flat = _flatten_bbox_region(region) + if flat is None: + continue + out_region: Any = flat + else: + out_region = region + normalized.append( + { + "label": item.get("label"), + "name": item.get("name") or item.get("label"), + "color": item.get("color") or "red", + "region": out_region, + } + ) + return sample.id, json.dumps(normalized, ensure_ascii=False), None + + start_time = time.time() + results: List[tuple[str, Optional[str], Optional[str]]] = [] + with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor: + futures = [executor.submit(call_infer, s) for s in samples] + for fut in concurrent.futures.as_completed(futures): + results.append(fut.result()) + + ok_updates: List[AiAnnotateTaskSample] = [] + errors: List[Dict[str, Any]] = [] + now = datetime.now() + for sample_id, content, err in results: + if err or not content: + errors.append({"sample_id": sample_id, "error": err or "empty result"}) + continue + ok_updates.append( + AiAnnotateTaskSample( + id=sample_id, + annotation_content=content, + status="02", + annotation_time=now, + ) + ) + + if ok_updates: + AiAnnotateTaskSample.objects.bulk_update(ok_updates, fields=["annotation_content", "status", "annotation_time"]) + print( + f"[auto-annotate] task_id={task_id} success={len(ok_updates)} failed={len(errors)} " + f"elapsed={round(time.time() - start_time, 3)}s" + ) + if errors: + print(f"[auto-annotate] task_id={task_id} errors={json.dumps(errors, ensure_ascii=False)}") + close_old_connections() + + +@api_view(["POST"]) +def create_annotate_task(request): + data = request.data + data["id"] = str(uuid.uuid4()) + data["status"] = "01" + data["creator"] = request.user.username if request.user.username else "creator" + data["create_time"] = datetime.now() + if _is_int_one(data.get("task_type")): + if _is_int_one(data.get("region_type")): + data["annotate_type"] = "03" + else: + data["annotate_type"] = "01" + serializer = AiAnnotateTaskSerializer(data=data, context={"request": request}) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "任务创建成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def start_auto_annotate_task(request): + data = request.data + task_id = data.get("task_id") or data.get("id") + if not task_id: + return Response({"error": "缺少 task_id"}) + + task = get_object_or_404(AiAnnotateTask, id=task_id) + user = request.user.username or "creator" + + if not (task.task_team or task.task_leader): + return Response({"error": "未分配人员请进行分配"}) + + AiAnnotateTask.objects.filter(id=task_id).update(status="02", task_team=user, task_leader=user) + + label_content = _get_labels_json_from_task(task) + if not label_content: + return Response({"error": "任务未配置 labels 或 labels 格式非法"}) + + text_prompt = str(data.get("text_prompt") or data.get("prompt") or "").strip() + if not text_prompt: + text_prompt = _build_text_prompt_from_labels_json(label_content) + if not text_prompt: + return Response({"error": "缺少 text_prompt"}, status=status.HTTP_400_BAD_REQUEST) + + try: + req_type = int(data.get("type", int(task.region_type or "0"))) + except Exception: + req_type = int(task.region_type or "0") + + sample_count = AiAnnotateTaskSample.objects.filter(task_id=task_id).count() + if not sample_count: + return Response({"message": "当前任务没有样本", "success": 0, "failed": 0, "errors": []}) + + infer_url = getattr(settings, "ANNOTATION_SERVICE_INFER_URL", None) or "" + if not infer_url: + return Response({"error": "未配置 ANNOTATION_SERVICE_INFER_URL"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + score_threshold = float(getattr(settings, "AUTO_ANNOTATE_SCORE_THRESHOLD", 0.4)) + default_workers = int(getattr(settings, "AUTO_ANNOTATE_MAX_WORKERS", 2)) + max_workers = int(data.get("max_workers") or default_workers) + max_workers = max(1, min(32, max_workers)) + timeout_sec = float(data.get("timeout_sec") or 60) + t = threading.Thread( + target=_run_auto_annotate_task, + kwargs={ + "task_id": str(task_id), + "label_content": str(label_content), + "text_prompt": str(text_prompt), + "req_type": int(req_type), + "score_threshold": float(score_threshold), + "timeout_sec": float(timeout_sec), + "max_workers": int(max_workers), + "infer_url": str(infer_url), + }, + daemon=True, + ) + t.start() + return Response( + { + "message": "自动标注任务已后台启动", + "task_id": task_id, + "type": req_type, + "sample_count": sample_count, + "max_workers": max_workers, + "text_prompt": text_prompt, + "thread_name": t.name, + } + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_annotate_task(request): + task_id = request.GET.get("id", None) + task = get_object_or_404(AiAnnotateTask, id=task_id) + serializer = AiAnnotateTaskSerializer(task) + STATUSES = ["01", "02", "03", "04", "05", "06"] + sapmle_dict = {} + for status_code in STATUSES: + sapmle_dict[f"count_{status_code}"] = Sum( + Case(When(status=status_code, then=1), default=0, output_field=IntegerField()) + ) + sapmle_dict["total"] = Count("id") + task_status_counts = ( + AiAnnotateTaskSample.objects.values("task_id") + .annotate(**sapmle_dict) + .filter(task_id=task_id) + ) + serializer_data = serializer.data + serializer_data["task_status_counts"] = task_status_counts + return Response(serializer_data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_mytask_annotate_list(request): + executor = request.user.username + sql = """ + SELECT b.executor,a.task_name,a.task_type,a.region_type,a.id,a.status,TO_CHAR(a.create_time, 'YYYY-MM-DD') AS create_time, + COUNT(*) FILTER (WHERE b.status = '01') AS COUNT01, + COUNT(*) FILTER (WHERE b.status = '02') AS COUNT02, + COUNT(*) FILTER (WHERE b.status = '03') AS COUNT03, + COUNT(*) FILTER (WHERE b.status = '04') AS COUNT04, + COUNT(*) FILTER (WHERE b.status = '05') AS COUNT05, + COUNT(*) FILTER (WHERE b.status = '06') AS COUNT06, + COUNT(*) AS tota + FROM ai_annotate_task_sample b,ai_annotate_task a + WHERE a.id=b.task_id AND b.executor=%s and b.status in ('01','02','03','04','05','06') + GROUP BY b.executor,a.task_name,a.id,a.status,TO_CHAR(a.create_time, 'YYYY-MM-DD') + ORDER BY a.task_name + """ + with connection.cursor() as cursor: + cursor.execute(sql, [executor]) + result = cursor.fetchall() + keys = [ + "executor", + "task_name", + "task_type", + "region_type", + "id", + "status", + "create_time", + "COUNT01", + "COUNT02", + "COUNT03", + "COUNT04", + "COUNT05", + "COUNT06", + "total", + ] + data = [dict(zip(keys, row)) for row in result] + return Response(data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_mytask_audit_list(request): + executor = request.user.username + sql = """ + SELECT + b.executor, + a.task_name, + a.id, + a.status, + TO_CHAR(a.create_time, 'YYYY-MM-DD') AS create_time, + COUNT(*) FILTER (WHERE b.status = '01') AS COUNT01, + COUNT(*) FILTER (WHERE b.status = '02') AS COUNT02, + COUNT(*) FILTER (WHERE b.status = '03') AS COUNT03, + COUNT(*) FILTER (WHERE b.status = '04') AS COUNT04, + COUNT(*) FILTER (WHERE b.status = '05') AS COUNT05, + COUNT(*) FILTER (WHERE b.status = '06') AS COUNT06, + COUNT(*) AS total + FROM + ai_annotate_task_sample b, + ai_annotate_task a + WHERE + a.id=b.task_id AND a.task_leader=%s and b.status in ('01','02','03','04','05','06') + GROUP BY + b.executor, a.task_name, a.id, a.status, TO_CHAR(a.create_time, 'YYYY-MM-DD') + ORDER BY + a.task_name + """ + + with connection.cursor() as cursor: + cursor.execute(sql, [executor]) + result = cursor.fetchall() + + keys = [ + "executor", + "task_name", + "id", + "status", + "create_time", + "COUNT01", + "COUNT02", + "COUNT03", + "COUNT04", + "COUNT05", + "COUNT06", + "total", + ] + data = [dict(zip(keys, row)) for row in result] + return Response(data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_annotate_task(request): + data = request.data + task = get_object_or_404(AiAnnotateTask, id=data.get("id")) + task_type = data.get("task_type", task.task_type) + region_type = data.get("region_type", task.region_type) + if _is_int_one(task_type): + if _is_int_one(region_type): + data["annotate_type"] = "03" + else: + data["annotate_type"] = "01" + serializer = AiAnnotateTaskSerializer(instance=task, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "任务更新成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_annotate_task(request): + task_id = request.GET.get("id", None) + task = get_object_or_404(AiAnnotateTask, id=task_id) + task.delete() + return Response({"message": "任务删除成功"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_annotate_tasks(request): + algorithm_id = request.GET.get("algorithm_id", None) + status_code = request.GET.get("status", None) + custom1 = request.GET.get("custom1", None) + page_size = request.GET.get("page_size", 10) + filter_kwargs = {} + if algorithm_id: + filter_kwargs["algorithm_id"] = algorithm_id + if status_code: + filter_kwargs["status"] = status_code + if custom1: + filter_kwargs["custom1__contains"] = custom1 + + tasks = AiAnnotateTask.objects.filter(**filter_kwargs).order_by("task_name") + paginator = PageNumberPagination() + paginator.page_size = page_size + result_page = paginator.paginate_queryset(tasks, request) + serializer = AiAnnotateTaskSerializer(result_page, many=True) + + response_data = serializer.data + for task_data in response_data: + task_id = task_data["id"] + sample_count = AiAnnotateTaskSample.objects.filter(task_id=task_id).count() + audited_count = AiAnnotateTaskSample.objects.filter( + task_id=task_id, status__in=["04", "06"] + ).count() + + task_data["sample_count"] = sample_count + task_data["audited_count"] = audited_count + task_data["complete_percent"] = ( + round(audited_count / sample_count, 2) if sample_count != 0 else 0 + ) + + return paginator.get_paginated_response(response_data) diff --git a/backend/apps/datasets/views/annotate_task_sample.py b/backend/apps/datasets/views/annotate_task_sample.py new file mode 100644 index 0000000..be7f063 --- /dev/null +++ b/backend/apps/datasets/views/annotate_task_sample.py @@ -0,0 +1,586 @@ +import os +import uuid +from datetime import datetime +import xml.etree.ElementTree as ET + +from django.db import transaction +from django.db.models import Case, Count, IntegerField, Q, Sum, When +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response +from rest_framework.utils import json + +from apps.common.serializers import AiAnnotateTaskSampleSerializer +from apps.common.utils.annotation_store import ( + get_dataset_sample_annotation_content, + split_dataset_sample_annotation_content, +) +from apps.core.models import ( + AiAnnotateTask, + AiAnnotateTaskSample, + AiDatasetSample, +) +from apps.datasets.dataset_stats import refresh_dataset_sample_counters +from apps.datasets.storage_service import download_sidecar_text, upload_sidecar_bytes + +def _safe_split_wh(custom1): + try: + w_str, h_str = str(custom1).lower().split("x") + return int(w_str), int(h_str) + except Exception: + return None, None + + +def _extract_sample_index(saved_filename): + stem = os.path.splitext(os.path.basename(str(saved_filename or "")))[0] + tail = stem.rsplit("-", 1)[-1] + if tail.isdigit(): + return int(tail) + return None + + +def _get_dataset_sample_summary_status(dataset_sample, task_sample_statuses): + if dataset_sample.rectangle or dataset_sample.polygon or "06" in task_sample_statuses: + return "02" + if task_sample_statuses: + return "01" + return "00" + + +def _refresh_dataset_sample_status(sample_ids): + if not sample_ids: + return + sample_ids = list({sample_id for sample_id in sample_ids if sample_id}) + samples = list( + AiDatasetSample.objects.filter(id__in=sample_ids).only("id", "status", "rectangle", "polygon") + ) + if not samples: + return + task_sample_status_map = {} + for sample_id, status_code in AiAnnotateTaskSample.objects.filter(sample_id__in=sample_ids).values_list( + "sample_id", "status" + ): + task_sample_status_map.setdefault(sample_id, set()).add(status_code) + objects_to_update = [] + for sample in samples: + new_status = _get_dataset_sample_summary_status( + sample, task_sample_status_map.get(sample.id, set()) + ) + if sample.status != new_status: + objects_to_update.append(AiDatasetSample(id=sample.id, status=new_status)) + if objects_to_update: + AiDatasetSample.objects.bulk_update(objects_to_update, fields=["status"]) + + +def _normalize_polygon_points(region): + if not isinstance(region, list): + return [] + pts = [] + for p in region: + if not isinstance(p, (list, tuple)) or len(p) != 2: + continue + try: + x = float(p[0]) + y = float(p[1]) + except Exception: + continue + pts.append([x, y]) + return pts if len(pts) >= 3 else [] + + +def _shape_key(label, points): + try: + norm = [(round(float(x), 2), round(float(y), 2)) for x, y in points] + except Exception: + return None + return str(label), json.dumps(norm, separators=(",", ":"), ensure_ascii=False) + + +def _is_polygon_items(items): + if not isinstance(items, list): + return False + for it in items: + if not isinstance(it, dict): + continue + region = it.get("region") + if isinstance(region, list) and region and isinstance(region[0], (list, tuple)): + return True + return False + + +def _bbox_key(item): + try: + label = str(item.get("label")) + region = item.get("region") + if not isinstance(region, list) or len(region) != 4: + return None + vals = [round(float(x), 2) for x in region] + return label, json.dumps(vals, separators=(",", ":"), ensure_ascii=False) + except Exception: + return None + + + +def _shapes_from_items(items): + if not isinstance(items, list): + return [] + shapes = [] + for it in items: + if not isinstance(it, dict): + continue + label = it.get("label") + if not label: + continue + points = _normalize_polygon_points(it.get("region")) + if not points: + continue + shapes.append( + { + "label": str(label), + "points": points, + "group_id": None, + "shape_type": "polygon", + "flags": {}, + "mask": None, + } + ) + return shapes + + +def _shapes_from_labelme(labelme_obj): + if not isinstance(labelme_obj, dict): + return [] + shapes_obj = labelme_obj.get("shapes") + if not isinstance(shapes_obj, list): + return [] + shapes = [] + for sh in shapes_obj: + if not isinstance(sh, dict): + continue + if sh.get("shape_type") != "polygon": + continue + label = sh.get("label") + points = _normalize_polygon_points(sh.get("points")) + if not label or not points: + continue + shapes.append( + { + "label": str(label), + "points": points, + "group_id": None, + "shape_type": "polygon", + "flags": {}, + "mask": None, + } + ) + return shapes + + +def _load_polygon_shapes_from_dataset_sample(dataset_sample): + content = get_dataset_sample_annotation_content(dataset_sample) + if not content: + return [] + try: + parsed = json.loads(content) + except Exception: + return [] + if isinstance(parsed, dict) and parsed.get("type") == "polygon": + try: + json_text = download_sidecar_text(dataset_sample.saved_path, dataset_sample.saved_filename, ".json") + if not json_text: + return [] + labelme_obj = json.loads(json_text) + except Exception: + return [] + return _shapes_from_labelme(labelme_obj) + if isinstance(parsed, list): + return _shapes_from_items(parsed) + return [] + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def set_person_task(request): + data = request.data + task_id = data["task_id"] + task = AiAnnotateTask.objects.get(id=task_id) + dataset_id = task.dataset_id + status_code = data.get("status") + task_range = task.task_range + + query_condition = Q(dataset_id=dataset_id) + if status_code: + query_condition &= Q(status=status_code) + all_samples = list(AiDatasetSample.objects.filter(query_condition).order_by("saved_filename")) + existing_sample_ids = set( + AiAnnotateTaskSample.objects.filter(task_id=task_id).values_list("sample_id", flat=True) + ) + if existing_sample_ids: + all_samples = [sample for sample in all_samples if sample.id not in existing_sample_ids] + if task_range: + start, end = map(int, task_range.split("-")) + all_samples = [ + sample + for sample in all_samples + if (sample_index := _extract_sample_index(sample.saved_filename)) is not None + and start <= sample_index <= end + ] + all_samples_length = len(all_samples) + rule_type = data["rule_type"] + task_rules = json.loads(data["task_rules"]) + total_percent = 0 + last_person = "" + for key, value in task_rules.items(): + person = key + if rule_type == "percent": + percent = value + total_percent += percent + last_person = person + num_samples_to_assign = int(all_samples_length * percent / 100) + create_person_samples(task_id, person, all_samples[:num_samples_to_assign]) + all_samples = all_samples[num_samples_to_assign:] + elif rule_type == "number": + number = value + create_person_samples(task_id, person, all_samples[:number]) + all_samples = all_samples[number:] + elif rule_type == "range": + start, end = map(int, value.split("-")) + matching_samples = [ + sample + for sample in all_samples + if (sample_index := _extract_sample_index(sample.saved_filename)) is not None + and start <= sample_index <= end + ] + create_person_samples(task_id, person, matching_samples) + all_samples = list(set(all_samples) - set(matching_samples)) + + if rule_type == "percent": + remaining_samples = len(all_samples) + if total_percent == 100 and remaining_samples > 0: + create_person_samples(task_id, last_person, all_samples) + + return Response({"message": "人员标注任务分配成功"}) + + +@transaction.atomic +def create_person_samples(task_id, person, assigned_samples): + if not assigned_samples: + return + objects_to_save = [ + AiAnnotateTaskSample( + id=str(uuid.uuid4()), + task_id=task_id, + executor=person, + sample_id=sample.id, + sample_path=sample.saved_path, + sample_name=sample.saved_filename, + status="01", + custom1=sample.custom1, + ) + for sample in assigned_samples + ] + AiAnnotateTaskSample.objects.bulk_create(objects_to_save) + _refresh_dataset_sample_status([sample.id for sample in assigned_samples]) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def annotate_task_sample(request): + data = request.data + sample_id = data.get("id") + hard = data.get("hard") + task_sample = get_object_or_404(AiAnnotateTaskSample, id=sample_id) + AiAnnotateTaskSample.objects.filter(id=sample_id).update( + annotation_content=data.get("annotation_content"), + status="02", + hard=hard, + annotation_time=datetime.now(), + ) + _refresh_dataset_sample_status([task_sample.sample_id]) + return Response({"message": "ok"}) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def submit_task_samples(request): + data = request.data + task_id = data.get("task_id") + person = data.get("person") + ids = [id for id in data.get("ids", "").split(",") if id] + + queryset = AiAnnotateTaskSample.objects.filter(task_id=task_id, executor=person, status="02") + + if ids: + queryset = queryset.filter(id__in=ids) + + sample_ids = list(queryset.values_list("sample_id", flat=True)) + queryset.update(status="03") + _refresh_dataset_sample_status(sample_ids) + + return Response({"message": "ok"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_task_sample(request): + sample_id = request.GET.get("id", None) + sample = get_object_or_404(AiAnnotateTaskSample, id=sample_id) + serializer = AiAnnotateTaskSampleSerializer(sample) + return Response(serializer.data) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def audit_task_samples(request): + data = request.data + task_id = data.get("task_id") + person = request.user.username + feedback = data.get("feedback") + status_code = data.get("status") + ids = [id for id in data.get("ids", "").split(",") if id] + + queryset = AiAnnotateTaskSample.objects.filter(task_id=task_id, status="03") + + if ids: + queryset = queryset.filter(id__in=ids) + + if status_code == "04": + sample_ids = list(queryset.values_list("sample_id", flat=True)) + queryset.update(status="04", auditor=person) + _refresh_dataset_sample_status(sample_ids) + elif status_code == "05": + sample_ids = list(queryset.values_list("sample_id", flat=True)) + queryset.update(status="05", auditor=person, feedback=feedback) + _refresh_dataset_sample_status(sample_ids) + + return Response({"message": "ok"}) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def merge_sample_content(request): + try: + data = request.data + task_id = data.get("task_id") + if not task_id: + return Response({"error": "缺少 task_id"}, status=status.HTTP_400_BAD_REQUEST) + datasettask = AiAnnotateTask.objects.get(id=task_id) + executor = data.get("executor", None) + filter_kwargs = {"task_id": task_id} + if executor: + filter_kwargs["executor"] = executor + filter_kwargs["status"] = "04" + queryset = AiAnnotateTaskSample.objects.filter(**filter_kwargs) + samples = list(queryset) + sample_ids = [sample.sample_id for sample in samples] + with transaction.atomic(): + for sample in samples: + if sample.annotation_content: + person_items = json.loads(sample.annotation_content) + dataset_sample = AiDatasetSample.objects.get(id=sample.sample_id) + if datasettask.annotate_type == "03" or _is_polygon_items(person_items): + annotation_fields = split_dataset_sample_annotation_content(sample.annotation_content) + AiDatasetSample.objects.filter(id=sample.sample_id).update( + rectangle=annotation_fields["rectangle"], + polygon=annotation_fields["polygon"], + ) + else: + dataset_annotation = get_dataset_sample_annotation_content(dataset_sample) + dataset_items = json.loads(dataset_annotation) if dataset_annotation else [] + merged_data = person_items + dataset_items + unique_annotations = {} + for item in merged_data: + key = _bbox_key(item) + if not key: + continue + if key not in unique_annotations: + unique_annotations[key] = item + final_merged_data = list(unique_annotations.values()) + imgwidth, imgheight = _safe_split_wh(sample.custom1) + xml_bytes = _build_voc_xml_bytes( + final_merged_data, + sample.sample_path, + sample.sample_name, + imgwidth, + imgheight, + ) + upload_sidecar_bytes( + sample.sample_path, + sample.sample_name, + ".xml", + xml_bytes, + "application/xml", + ) + merged_json = json.dumps(final_merged_data, ensure_ascii=False) + annotation_fields = split_dataset_sample_annotation_content(merged_json) + AiDatasetSample.objects.filter(id=sample.sample_id).update( + rectangle=annotation_fields["rectangle"], + polygon=annotation_fields["polygon"], + ) + + queryset.update(status="06") + _refresh_dataset_sample_status(sample_ids) + refresh_dataset_sample_counters(datasettask.dataset_id) + sample_count = AiAnnotateTaskSample.objects.filter(task_id=task_id).count() + audited_count = AiAnnotateTaskSample.objects.filter( + task_id=task_id, status__in=["04", "06"] + ).count() + if sample_count == audited_count: + AiAnnotateTask.objects.filter(id=task_id).update(status="03") + return Response({"message": "任务样本成功合并到数据集中"}) + except Exception as e: + return Response( + {"error": "合并入库失败", "details": str(e)}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR, + ) + + +def _build_voc_xml_bytes(data, sample_path, filename, width, height): + normalized_path = str(sample_path or "").strip("/").replace("\\", "/") + image_path = f"{normalized_path}/{filename}" if normalized_path else filename + annotation = ET.Element("annotation") + + folder = ET.SubElement(annotation, "folder") + folder.text = normalized_path + + filename_elem = ET.SubElement(annotation, "filename") + filename_elem.text = filename + + path = ET.SubElement(annotation, "path") + path.text = image_path + + source = ET.SubElement(annotation, "source") + database = ET.SubElement(source, "database") + database.text = "Unknown" + + size = ET.SubElement(annotation, "size") + width_elem = ET.SubElement(size, "width") + width_elem.text = str(int(width) if width is not None else 0) + height_elem = ET.SubElement(size, "height") + height_elem.text = str(int(height) if height is not None else 0) + depth = ET.SubElement(size, "depth") + depth.text = "3" + + segmented = ET.SubElement(annotation, "segmented") + segmented.text = "0" + + for obj in data: + object_elem = ET.SubElement(annotation, "object") + + name = ET.SubElement(object_elem, "name") + name.text = obj["label"] + + pose = ET.SubElement(object_elem, "pose") + pose.text = "Unspecified" + + truncated = ET.SubElement(object_elem, "truncated") + truncated.text = "0" + + difficult = ET.SubElement(object_elem, "difficult") + difficult.text = "0" + + bndbox = ET.SubElement(object_elem, "bndbox") + + xmin, ymin, xmax, ymax = map(float, obj["region"]) + + xmin_elem = ET.SubElement(bndbox, "xmin") + xmin_elem.text = str(int(xmin)) + ymin_elem = ET.SubElement(bndbox, "ymin") + ymin_elem.text = str(int(ymin)) + xmax_elem = ET.SubElement(bndbox, "xmax") + xmax_elem.text = str(int(xmax)) + ymax_elem = ET.SubElement(bndbox, "ymax") + ymax_elem.text = str(int(ymax)) + + return ET.tostring(annotation, encoding="utf-8", xml_declaration=True) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def delete_task_samples(request): + data = request.data + task_id = data.get("task_id") + person = data.get("person") + ids = [id for id in data.get("ids", "").split(",") if id] + + try: + queryset = AiAnnotateTaskSample.objects.filter(task_id=task_id, executor=person) + if ids: + queryset = queryset.filter(id__in=ids) + samples = list(queryset) + except AiAnnotateTaskSample.DoesNotExist: + return Response({"message": "没有选择对应的样本数据!"}, status=status.HTTP_404_NOT_FOUND) + + with transaction.atomic(): + sample_ids = [sample.sample_id for sample in samples] + queryset.delete() + _refresh_dataset_sample_status(sample_ids) + + return Response({"message": "任务样本删除成功"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_task_samples(request): + task_id = request.GET.get("task_id", None) + executor = request.GET.get("executor", None) + status_code = request.GET.get("status", "") + status_in = status_code.split(",") if status_code else [] + sample_name = request.GET.get("sample_name", None) + is_hard = request.GET.get("hard", None) + page_size = request.GET.get("page_size", 10) + filter_kwargs = {} + if task_id: + filter_kwargs["task_id"] = task_id + if executor: + filter_kwargs["executor"] = executor + if status_code: + filter_kwargs["status__in"] = status_in + if sample_name: + filter_kwargs["sample_name__contains"] = sample_name + if is_hard: + filter_kwargs["hard"] = is_hard + + samples = AiAnnotateTaskSample.objects.filter(**filter_kwargs).order_by("sample_name") + paginator = PageNumberPagination() + paginator.page_size = page_size + result_page = paginator.paginate_queryset(samples, request) + formatted_samples = [] + for sample in result_page: + sample.annotation_time = ( + sample.annotation_time.strftime("%Y-%m-%d %H:%M:%S") + if sample.annotation_time + else None + ) + formatted_samples.append(sample) + serializer = AiAnnotateTaskSampleSerializer(formatted_samples, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def query_person_tasks(request): + task_id = request.GET.get("task_id", None) + STATUSES = ["01", "02", "03", "04", "05", "06"] + + annotate_dict = {} + for status_code in STATUSES: + annotate_dict[f"count_{status_code}"] = Sum( + Case(When(status=status_code, then=1), default=0, output_field=IntegerField()) + ) + + annotate_dict["total"] = Count("id") + + executor_status_counts = ( + AiAnnotateTaskSample.objects.values("executor") + .annotate(**annotate_dict) + .filter(task_id=task_id) + .order_by("executor") + ) + + return Response(executor_status_counts) diff --git a/backend/apps/datasets/views/dataset.py b/backend/apps/datasets/views/dataset.py new file mode 100644 index 0000000..80da989 --- /dev/null +++ b/backend/apps/datasets/views/dataset.py @@ -0,0 +1,1101 @@ +import json +import io +import logging +import os +import tarfile +import threading +import time +import uuid +import zipfile +from datetime import datetime +import xml.etree.ElementTree as ET +from typing import List + +from django.conf import settings +from django.db import close_old_connections, connection, transaction +from django.db.models import Case, Count, IntegerField, Max, Q, Sum, When +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, parser_classes, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.parsers import MultiPartParser +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AiDatasetSerializer, AiDatasetSampleSerializer +from apps.core.models import AiDataset +from apps.core.models import ( + AiAlgorithmTrainRecords, + AiDatasetSample, + AiAnnotateTask, + AiTempFile, +) +from apps.common.minio_client import minio_storage +from apps.common.utils.annotation_store import split_dataset_sample_annotation_content +from apps.datasets.dataset_stats import refresh_dataset_sample_counters +from apps.datasets.storage_service import ( + VIDEO_EXTENSIONS, + copy_minio_object_to_dataset_result, + copy_minio_object_to_dataset, + dataset_type_accepts_extension, + extract_video_frames_to_dataset_result, + extract_video_frames_to_dataset, + import_zip_bytes_to_dataset_result, + import_zip_bytes_to_dataset, + save_bytes_to_dataset, + upload_sidecar_bytes, +) + + +IMAGE_EXTENSIONS = ("jpg", "jpeg", "png", "bmp", "gif") +logger = logging.getLogger(__name__) + + +def _build_filespace_url(rel_path: str) -> str: + base = str(getattr(settings, "IMAGE_BASE_URL", "") or "").rstrip("/") + rel = str(rel_path or "").lstrip("/").replace("\\", "/") + return f"{base}/{rel}" if base else rel + + +def _strip_nginx_image_prefix(raw: str) -> str: + s = str(raw or "").strip().replace("\\", "/") + if not s: + return "" + if "://" not in s: + return s.lstrip("/") + try: + from urllib.parse import urlsplit + + parts = urlsplit(s) + path = (parts.path or "").lstrip("/") + except Exception: + idx = s.find("://") + path = s[idx + 3 :] + slash = path.find("/") + path = path[slash + 1 :] if slash >= 0 else "" + path = path.lstrip("/") + if path.startswith("image/"): + path = path[len("image/") :] + return path.lstrip("/") + + +def _videos_base_rel(videos_dir_rel: str) -> str: + s = str(videos_dir_rel or "").strip().strip("/").replace("\\", "/") + return f"{s}/" if s else "" + + +def _safe_load_json_list(raw: str) -> List[dict]: + if not raw: + return [] + s = str(raw).strip() + if not s.startswith("["): + return [] + try: + obj = json.loads(s) + except Exception: + return [] + if isinstance(obj, list): + return [x for x in obj if isinstance(x, dict)] + return [] + + +def _safe_load_json_value(raw, default): + if raw in (None, ""): + return default + if isinstance(raw, (dict, list)): + return raw + try: + return json.loads(raw) + except Exception: + return default + + +def _find_dataset_sample_for_xml(dataset_id: str, image_name: str, xml_name: str): + queryset = AiDatasetSample.objects.filter(dataset_id=dataset_id).order_by("-create_time") + candidates = [] + for name in (image_name, os.path.basename(image_name or ""), xml_name): + s = str(name or "").strip() + if s: + candidates.append(os.path.basename(s)) + + for candidate in candidates: + exact = queryset.filter(Q(original_filename=candidate) | Q(saved_filename=candidate)).first() + if exact: + return exact + + stems = {os.path.splitext(name)[0].lower() for name in candidates if name} + if not stems: + return None + + for sample in queryset: + original_stem = os.path.splitext(str(sample.original_filename or ""))[0].lower() + saved_stem = os.path.splitext(str(sample.saved_filename or ""))[0].lower() + if original_stem in stems or saved_stem in stems: + return sample + return None + + +def _parse_voc_xml_annotations(file_content: bytes, dataset_labels) -> tuple[str, list[dict]]: + root = ET.fromstring(file_content) + image_name = root.findtext("filename") or "" + label_config = _safe_load_json_value(dataset_labels, []) + label_map = {} + for label in label_config if isinstance(label_config, list) else []: + if not isinstance(label, dict): + continue + code = str(label.get("label") or "").strip() + name = str(label.get("name") or code).strip() + if code: + label_map[code] = { + "label": code, + "name": name or code, + "color": label.get("color") or "#409eff", + } + + result_list = [] + for obj in root.findall("object"): + obj_name = str(obj.findtext("name") or "").strip() + bndbox = obj.find("bndbox") + if not obj_name or bndbox is None: + continue + xmin = bndbox.findtext("xmin") + ymin = bndbox.findtext("ymin") + xmax = bndbox.findtext("xmax") + ymax = bndbox.findtext("ymax") + if None in {xmin, ymin, xmax, ymax}: + continue + matched_label = label_map.get( + obj_name, + {"label": obj_name, "name": obj_name, "color": "#409eff"}, + ) + result_list.append( + { + "label": matched_label["label"], + "name": matched_label["name"], + "color": matched_label["color"], + "region": [xmin, ymin, xmax, ymax], + } + ) + return image_name, result_list + + +def _load_temp_file_imported_dataset_ids(raw: str) -> list[str]: + return [item for item in str(raw or "").split(",") if item] + + +def _dump_temp_file_imported_dataset_ids(dataset_ids: list[str]) -> str: + return ",".join(dict.fromkeys([item for item in dataset_ids if item])) + + +def _compact_temp_import_summary(payload: dict, max_length: int = 1000) -> str: + candidate = dict(payload or {}) + for limit in (5, 3, 1, 0): + shrunk = dict(candidate) + if isinstance(shrunk.get("failures"), list): + failures = shrunk["failures"][:limit] + shrunk["failures"] = failures + shrunk["failures_truncated"] = len(candidate.get("failures", [])) > len(failures) + if isinstance(shrunk.get("duplicates"), list): + duplicates = shrunk["duplicates"][:limit] + shrunk["duplicates"] = duplicates + shrunk["duplicates_truncated"] = len(candidate.get("duplicates", [])) > len(duplicates) + text = json.dumps(shrunk, ensure_ascii=False, separators=(",", ":")) + if len(text) <= max_length: + return text + return json.dumps({"status": payload.get("status"), "message": payload.get("message")}, ensure_ascii=False)[:max_length] + + +def _normalize_temp_file_ids(data) -> list[str]: + raw_values = [] + if hasattr(data, "getlist"): + raw_values.extend(data.getlist("temp_file_ids")) + temp_file_ids = data.get("temp_file_ids") + if isinstance(temp_file_ids, (list, tuple)): + raw_values.extend(temp_file_ids) + elif temp_file_ids not in (None, ""): + raw_values.extend(str(temp_file_ids).split(",")) + temp_file_id = data.get("temp_file_id") + if temp_file_id not in (None, ""): + raw_values.append(temp_file_id) + + normalized = [] + seen = set() + for item in raw_values: + value = str(item or "").strip() + if not value or value in seen: + continue + normalized.append(value) + seen.add(value) + return normalized + + +def _import_single_temp_file_to_dataset(dataset: AiDataset, temp_file: AiTempFile, interval_seconds: int, max_frames: int) -> tuple[int, dict]: + dataset_id = str(dataset.id) + with transaction.atomic(): + bucket_name = temp_file.bucket_name or "tempfile" + object_name = temp_file.object_name + if not object_name: + return status.HTTP_400_BAD_REQUEST, {"error": "临时文件对象不存在"} + + info = minio_storage.get_object_info(bucket_name, object_name) + filename = temp_file.original_name or os.path.basename(object_name) + original_type = str(temp_file.original_type or "") + imported_dataset_ids = _load_temp_file_imported_dataset_ids(temp_file.custom3) + if dataset_id in imported_dataset_ids: + latest_summary = _safe_load_json_value(temp_file.custom2, {}) + return status.HTTP_409_CONFLICT, { + "error": "该临时文件已导入过当前数据集,无需重复导入", + "latest_import": latest_summary, + } + + source_marker_prefix = f"temp:{temp_file.id}" + result = {"imported": [], "skipped": [], "failed": []} + + if original_type == "04": + zip_bytes = minio_storage.download_bytes(bucket_name, object_name) + result = import_zip_bytes_to_dataset_result( + dataset=dataset, + zip_bytes=zip_bytes, + source_marker_prefix=source_marker_prefix, + skip_existing=True, + ) + elif dataset.dataset_type == "02" and original_type == "02": + video_bytes = minio_storage.download_bytes(bucket_name, object_name) + result = extract_video_frames_to_dataset_result( + dataset=dataset, + video_bytes=video_bytes, + original_filename=filename, + interval_seconds=interval_seconds, + max_frames=max_frames, + source_marker_prefix=source_marker_prefix, + skip_existing=True, + ) + else: + ext = os.path.splitext(filename)[1].lower() + if not dataset_type_accepts_extension(dataset.dataset_type, ext): + return status.HTTP_400_BAD_REQUEST, {"error": "临时文件类型与数据集类型不匹配"} + result = copy_minio_object_to_dataset_result( + dataset=dataset, + source_bucket=bucket_name, + source_object=object_name, + original_filename=filename, + size_bytes=info.get("size", 0), + source_marker=f"{source_marker_prefix}:object", + skip_existing=True, + ) + + imported_samples = result["imported"] + duplicate_items = result["skipped"] + failed_items = result["failed"] + imported_count = len(imported_samples) + duplicate_count = len(duplicate_items) + failed_count = len(failed_items) + + if imported_count > 0: + refresh_dataset_sample_counters(dataset_id) + + summary_status = "success" + if imported_count > 0 and failed_count > 0: + summary_status = "partial" + elif imported_count == 0 and duplicate_count > 0 and failed_count == 0: + summary_status = "duplicate" + elif imported_count == 0 and failed_count > 0: + summary_status = "failed" + + summary_payload = { + "status": summary_status, + "dataset_id": dataset_id, + "temp_file_id": temp_file.id, + "bucket_name": bucket_name, + "object_name": object_name, + "filename": filename, + "original_type": original_type, + "etag": info.get("etag"), + "imported_count": imported_count, + "duplicate_count": duplicate_count, + "failed_count": failed_count, + "duplicates": duplicate_items, + "failures": failed_items, + } + temp_file.custom1 = summary_status + temp_file.custom2 = _compact_temp_import_summary(summary_payload) + if imported_count > 0 and failed_count == 0: + imported_dataset_ids.append(dataset_id) + temp_file.custom3 = _dump_temp_file_imported_dataset_ids(imported_dataset_ids) + if imported_count > 0: + temp_file.status = "02" + temp_file.save(update_fields=["status", "custom1", "custom2", "custom3"]) + + if failed_items: + logger.warning("temp file import partial/failed: %s", summary_payload) + else: + logger.info("temp file import success: %s", summary_payload) + + if imported_count == 0 and duplicate_count > 0 and failed_count == 0: + return status.HTTP_409_CONFLICT, { + "message": "临时文件已导入过当前数据集,本次未新增样本", + "imported_count": 0, + "duplicate_count": duplicate_count, + "failed_count": 0, + "duplicates": duplicate_items, + "failures": [], + "sample_ids": [], + } + if imported_count == 0 and failed_count > 0: + return status.HTTP_400_BAD_REQUEST, { + "error": "未导入任何样本,请检查文件类型与数据集类型是否匹配", + "imported_count": 0, + "duplicate_count": duplicate_count, + "failed_count": failed_count, + "duplicates": duplicate_items, + "failures": failed_items, + "sample_ids": [], + } + + message = "临时文件导入数据集成功" + if failed_count > 0: + message = f"临时文件导入部分成功,成功{imported_count}条,失败{failed_count}条" + elif duplicate_count > 0: + message = f"临时文件导入完成,新增{imported_count}条,跳过重复{duplicate_count}条" + return status.HTTP_200_OK, { + "message": message, + "imported_count": imported_count, + "duplicate_count": duplicate_count, + "failed_count": failed_count, + "duplicates": duplicate_items, + "failures": failed_items, + "sample_ids": [sample.id for sample in imported_samples], + } + + +def _load_video_manifest(raw: str) -> tuple[str, List[dict]]: + if not raw: + return "", [] + s = str(raw).strip() + if not s: + return "", [] + if s.startswith("{"): + try: + obj = json.loads(s) + except Exception: + return "", [] + if not isinstance(obj, dict): + return "", [] + base = str(obj.get("b") or obj.get("base") or "") + items = obj.get("v") or obj.get("videos") or [] + if isinstance(items, list): + vids = [x for x in items if isinstance(x, dict)] + else: + vids = [] + return base, vids + if s.startswith("["): + try: + obj = json.loads(s) + except Exception: + return "", [] + if not isinstance(obj, list): + return "", [] + vids = [x for x in obj if isinstance(x, dict)] + return "", vids + return "", [] + + +def _dump_video_manifest(base_url: str, videos: List[dict], max_len: int = 1000) -> str: + b = str(base_url or "") + keep = list(videos or []) + while True: + payload = {"b": b, "v": keep} + s = json.dumps(payload, ensure_ascii=False, separators=(",", ":")) + if len(s) <= max_len: + return s + if len(keep) <= 1: + break + keep = keep[-max(1, len(keep) // 2) :] + payload = {"b": b, "v": keep} + s = json.dumps(payload, ensure_ascii=False, separators=(",", ":")) + if len(s) <= max_len: + return s + overhead = len(json.dumps({"b": "", "v": keep}, ensure_ascii=False, separators=(",", ":"))) + allow_b = max(0, max_len - overhead) + b2 = b[:allow_b] + return json.dumps({"b": b2, "v": keep}, ensure_ascii=False, separators=(",", ":")) + + +def _get_videos_dir_rel(dataset: AiDataset) -> str: + if dataset.custom3: + return dataset.custom3 + base_dir = os.path.dirname((dataset.original_file_path or "").rstrip("/\\")) + return os.path.join(base_dir, "video").replace("\\", "/") if base_dir else "" + + +def _build_dataset_root(dataset_code: str) -> str: + return str(dataset_code or "").strip().replace("\\", "/").strip("/") + + +def _build_dataset_paths(dataset_code: str) -> dict: + root = _build_dataset_root(dataset_code) + return { + "original_file_path": os.path.join(root, "file").replace("\\", "/"), + "dataset_path": os.path.join(root, "image").replace("\\", "/"), + "custom1": os.path.join(root, "image_mask").replace("\\", "/"), + "custom3": os.path.join(root, "video").replace("\\", "/"), + } + + +def _generate_next_dataset_code() -> str: + # Lock the dataset table so concurrent creates cannot generate the same code. + with connection.cursor() as cursor: + cursor.execute("LOCK TABLE ai_dataset IN EXCLUSIVE MODE") + cursor.execute( + """ + SELECT COALESCE(MAX(CAST(dataset_code AS INTEGER)), 0) + FROM ai_dataset + WHERE dataset_code ~ '^[0-9]+$' + """ + ) + next_index = int((cursor.fetchone() or [0])[0] or 0) + 1 + return f"{next_index:06d}" + + +def _ensure_video_storage(dataset: AiDataset) -> str: + videos_dir_rel = _get_videos_dir_rel(dataset) + if not videos_dir_rel: + return "" + if dataset.custom3 != videos_dir_rel: + dataset.custom3 = videos_dir_rel + dataset.save(update_fields=["custom3"]) + if not (dataset.custom2 or "").strip(): + dataset.custom2 = _dump_video_manifest(_videos_base_rel(videos_dir_rel), [], max_len=1000) + dataset.save(update_fields=["custom2"]) + return videos_dir_rel + + +def _extract_sample_index(saved_filename: str) -> int | None: + stem = os.path.splitext(os.path.basename(str(saved_filename or "")))[0] + tail = stem.rsplit("-", 1)[-1] + if tail.isdigit(): + return int(tail) + return None + + +def _next_sample_index(dataset_id: str) -> int: + max_saved_filename = AiDatasetSample.objects.filter(dataset_id=dataset_id).aggregate( + max_saved_filename=Max("saved_filename") + )["max_saved_filename"] + current_index = _extract_sample_index(max_saved_filename) + return (current_index or 0) + 1 + + +def _generate_images_from_videos(dataset_id: str, frame_interval: int) -> None: + close_old_connections() + try: + import cv2 + except Exception as e: + print(f"[video->images] cv2 not available: {e}") + close_old_connections() + return + + dataset = AiDataset.objects.filter(id=dataset_id).first() + if not dataset: + close_old_connections() + return + if dataset.custom2 and not str(dataset.custom2).strip().startswith(("[", "{")) and not dataset.custom3: + dataset.custom3 = str(dataset.custom2).strip() + dataset.custom2 = "" + dataset.save(update_fields=["custom2", "custom3"]) + + videos_dir_rel = _get_videos_dir_rel(dataset) + if not videos_dir_rel: + print(f"[video->images] dataset_id={dataset_id} no videos dir") + close_old_connections() + return + + interval = int(frame_interval) if int(frame_interval) > 0 else 1 + base_url = _videos_base_rel(videos_dir_rel) + _, raw_items = _load_video_manifest(dataset.custom2 or "") + videos: List[dict] = [] + for it in raw_items: + if not isinstance(it, dict): + continue + filename = it.get("f") or it.get("filename") + if not filename and it.get("url"): + filename = os.path.basename(str(it.get("url") or "")) + if not filename and it.get("rel_path"): + filename = os.path.basename(str(it.get("rel_path") or "")) + filename = str(filename or "").strip() + if not filename: + continue + g = it.get("g") + if g is None: + g = it.get("generated") + videos.append( + { + "f": filename, + "g": 1 if bool(g) else 0, + "t": it.get("t") or it.get("generated_at"), + "i": it.get("i") or it.get("frame_interval"), + "n": it.get("n") or it.get("generated_images"), + } + ) + pending = [v for v in videos if int(v.get("g") or 0) == 0] + if not pending: + print(f"[video->images] dataset_id={dataset_id} no pending videos") + close_old_connections() + return + + total_written = 0 + start = time.time() + + now_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + for v in pending: + filename = str(v.get("f") or "").strip() + if not filename: + continue + video_object_name = f"{str(videos_dir_rel).strip('/').replace('\\', '/')}/{filename}".strip("/") + if not minio_storage.object_exists("dataset", video_object_name): + print(f"[video->images] missing object: {video_object_name}") + continue + try: + video_bytes = minio_storage.download_bytes("dataset", video_object_name) + result = extract_video_frames_to_dataset_result( + dataset=dataset, + video_bytes=video_bytes, + original_filename=filename, + interval_seconds=interval, + source_marker_prefix=f"video:{dataset_id}:{filename}", + skip_existing=True, + ) + except Exception as exc: + print(f"[video->images] process failed: {video_object_name}, error={exc}") + continue + written_for_video = len(result.get("imported") or []) + total_written += written_for_video + v["g"] = 1 + v["t"] = now_str + v["i"] = interval + v["n"] = int(written_for_video) + + total_count, annotated_count = refresh_dataset_sample_counters(dataset_id) + dataset.dataset_count = total_count + dataset.annotated_count = annotated_count + dataset.custom2 = _dump_video_manifest(base_url, videos, max_len=1000) + dataset.save(update_fields=["dataset_count", "annotated_count", "custom2"]) + print(f"[video->images] dataset_id={dataset_id} frames={total_written} elapsed={round(time.time()-start,3)}s") + close_old_connections() + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def generate_dataset_images(request): + data = request.data + dataset_id = data.get("id") or data.get("dataset_id") + if not dataset_id: + return Response({"error": "缺少数据集 id"}, status=status.HTTP_400_BAD_REQUEST) + dataset = get_object_or_404(AiDataset, id=dataset_id) + if dataset.dataset_type != "03": + return Response({"error": "当前数据集不是视频类型"}, status=status.HTTP_400_BAD_REQUEST) + _, videos = _load_video_manifest(dataset.custom2 or "") + pending = [v for v in videos if not bool(v.get("g") or v.get("generated"))] + if not pending: + return Response({"message": "没有需要生成图片的视频", "dataset_id": dataset_id, "pending": 0}) + frame_interval = int(getattr(settings, "VIDEO_FRAME_INTERVAL", 30)) + t = threading.Thread( + target=_generate_images_from_videos, + kwargs={"dataset_id": str(dataset_id), "frame_interval": int(frame_interval)}, + daemon=True, + ) + t.start() + return Response( + { + "message": "生成图片任务已后台启动", + "dataset_id": dataset_id, + "frame_interval": frame_interval, + "pending": len(pending), + "thread_name": t.name, + } + ) + + +@api_view(["POST"]) +@parser_classes([MultiPartParser]) +@transaction.atomic +def upload_dataset_file(request): + data = request.data + dataset = AiDataset.objects.get(id=data.get("id")) + uploadfiles = request.FILES.getlist("uploadfiles[]") + dataset_type = str(data.get("dataset_type") or dataset.dataset_type or "") + if "uploadxml" not in data: + imported_count = 0 + uploadfilenames = [] + interval_seconds = int(data.get("interval_seconds") or 1) + max_frames = int(data.get("max_frames") or 200) + for uploadfile in uploadfiles: + filename = uploadfile.name + uploadfilenames.append(filename) + ext = os.path.splitext(filename)[1].lower() + file_bytes = uploadfile.read() + uploadfile.seek(0) + if ext == ".zip": + imported = import_zip_bytes_to_dataset(dataset, file_bytes) + imported_count += len(imported) + continue + if dataset_type == "02" and ext in VIDEO_EXTENSIONS: + imported = extract_video_frames_to_dataset( + dataset, + file_bytes, + filename, + interval_seconds=interval_seconds, + max_frames=max_frames, + ) + imported_count += len(imported) + continue + if dataset_type_accepts_extension(dataset_type, ext): + save_bytes_to_dataset( + dataset=dataset, + original_filename=filename, + data=file_bytes, + content_type=uploadfile.content_type, + ) + imported_count += 1 + + total_count, annotated_count = refresh_dataset_sample_counters(data.get("id")) + dataset.dataset_count = total_count + dataset.annotated_count = annotated_count + existing_original_names = dataset.original_file_name + joined_upload_names = ",".join(uploadfilenames) + dataset.original_file_name = ( + f"{existing_original_names},{joined_upload_names}" + if existing_original_names and joined_upload_names + else (existing_original_names or joined_upload_names) + ) + dataset.save(update_fields=["dataset_count", "annotated_count", "original_file_name"]) + return Response({"message": f"文件上传成功,共导入了{imported_count}条数据!"}) + + uploadfiles = request.FILES.getlist("uploadfiles[]") + dataset_type = str(data.get("dataset_type") or dataset.dataset_type or "") + uploadfilenames = [] + video_items: List[dict] = [] + videos_dir_rel = "" + videos_base_url = "" + if dataset_type == "03": + if dataset.custom2 and not str(dataset.custom2).strip().startswith(("[", "{")) and not dataset.custom3: + dataset.custom3 = str(dataset.custom2).strip() + dataset.custom2 = "" + dataset.save(update_fields=["custom2", "custom3"]) + videos_dir_rel = _ensure_video_storage(dataset) + videos_base_url = _videos_base_rel(videos_dir_rel) if videos_dir_rel else "" + base_existing, raw_items = _load_video_manifest(dataset.custom2 or "") + if base_existing: + videos_base_url = _strip_nginx_image_prefix(base_existing) + for it in raw_items: + if not isinstance(it, dict): + continue + filename = it.get("f") or it.get("filename") + if not filename and it.get("url"): + filename = os.path.basename(str(it.get("url") or "")) + if not filename and it.get("rel_path"): + filename = os.path.basename(str(it.get("rel_path") or "")) + filename = str(filename or "").strip() + if not filename: + continue + g = it.get("g") + if g is None: + g = it.get("generated") + video_items.append({"f": filename, "g": 1 if bool(g) else 0, "t": it.get("t") or it.get("generated_at")}) + + def save_single_xml_file(uploadfile): + file_content = uploadfile.read() + uploadfile.seek(0) + try: + image_name, result_list = _parse_voc_xml_annotations(file_content, dataset.dataset_labels) + except Exception as exc: + return { + "ok": False, + "name": uploadfile.name, + "reason": f"XML解析失败: {exc}", + } + + dataset_sample = _find_dataset_sample_for_xml(data.get("id"), image_name, uploadfile.name) + if dataset_sample is None: + return { + "ok": False, + "name": uploadfile.name, + "reason": "未找到对应样本", + } + + annotation_json = json.dumps(result_list, ensure_ascii=False) + annotation_fields = split_dataset_sample_annotation_content(annotation_json) + upload_sidecar_bytes( + dataset_sample.saved_path, + dataset_sample.saved_filename, + ".xml", + file_content, + "application/xml", + ) + AiDatasetSample.objects.filter(id=dataset_sample.id).update( + rectangle=annotation_fields["rectangle"], + polygon=annotation_fields["polygon"], + status="02", + ) + return { + "ok": True, + "name": uploadfile.name, + "sample_id": dataset_sample.id, + } + + def process_compressed_file(sourcename, source): + if not source: + return + source_name = os.path.basename(sourcename) + source_ext = os.path.splitext(source_name)[1].lower() + if dataset_type == "03" and source_ext in VIDEO_EXTENSIONS and videos_dir_rel: + object_name = f"{str(videos_dir_rel).strip('/').replace('\\', '/')}/{source_name}".strip("/") + content_type = "video/mp4" if source_ext == ".mp4" else None + minio_storage.upload_bytes("dataset", object_name, source.read(), content_type=content_type) + video_items.append({"f": source_name, "g": 0}) + return + save_bytes_to_dataset( + dataset=dataset, + original_filename=source_name, + data=source.read(), + ) + + allowed_file_types = ["jpg", "png", "bmp", "mp3", "mp4", "soud", "txt", "csv"] + file_count = 0 + if "uploadxml" in data: + failures = [] + updated_ids = [] + for uploadfile in uploadfiles: + resultxml = save_single_xml_file(uploadfile) + if resultxml and resultxml.get("ok"): + file_count += 1 + updated_ids.append(resultxml.get("sample_id")) + uploadfilenames.append(uploadfile.name) + else: + failures.append(resultxml or {"name": uploadfile.name, "reason": "处理失败"}) + response_message = f"xml文件上传完成,成功更新{file_count}条样本" + if failures: + response_message += f",失败{len(failures)}条" + return Response( + { + "message": response_message, + "updated_count": file_count, + "updated_sample_ids": updated_ids, + "failed_count": len(failures), + "failures": failures, + } + ) + for uploadfile in uploadfiles: + uploadfilenames.append(uploadfile.name) + file_bytes = uploadfile.read() + uploadfile.seek(0) + file_extension = os.path.splitext(uploadfile.name)[1].lower() + + if dataset_type != "01": + if file_extension == ".zip": + with zipfile.ZipFile(io.BytesIO(file_bytes), "r") as zip_file: + for file_info in zip_file.infolist(): + with zip_file.open(file_info.filename, "r", force_zip64=True) as source: + decoded_filename = source.name.encode("cp437").decode("gbk") + file_extension = decoded_filename.split(".")[-1].lower() + if file_extension in allowed_file_types: + file_count = file_count + 1 + process_compressed_file(decoded_filename, source) + elif file_extension == ".tar": + with tarfile.open(fileobj=io.BytesIO(file_bytes), mode="r:*") as tar_file: + for member in tar_file.getmembers(): + extracted = tar_file.extractfile(member) + if extracted is None: + continue + with extracted as source: + file_extension = member.name.split(".")[-1].lower() + if file_extension in allowed_file_types: + file_count = file_count + 1 + process_compressed_file(member.name, source) + else: + if file_extension.lstrip(".") in allowed_file_types: + file_count = file_count + 1 + if dataset_type == "03" and file_extension in VIDEO_EXTENSIONS and videos_dir_rel: + object_name = f"{str(videos_dir_rel).strip('/').replace('\\', '/')}/{uploadfile.name}".strip("/") + minio_storage.upload_bytes( + "dataset", + object_name, + file_bytes, + content_type=uploadfile.content_type or "application/octet-stream", + ) + video_items.append({"f": uploadfile.name, "g": 0}) + else: + save_bytes_to_dataset( + dataset=dataset, + original_filename=uploadfile.name, + data=file_bytes, + content_type=uploadfile.content_type, + ) + + total_count, annotated_count = refresh_dataset_sample_counters(data.get("id")) + dataset.dataset_count = total_count + dataset.annotated_count = annotated_count + existing_original_names = dataset.original_file_name + joined_upload_names = ",".join(uploadfilenames) + dataset.original_file_name = ( + f"{existing_original_names},{joined_upload_names}" if existing_original_names else joined_upload_names + ) + if dataset_type == "03": + dataset.custom2 = _dump_video_manifest(_strip_nginx_image_prefix(videos_base_url), video_items, max_len=1000) + dataset.save() + return Response({"message": f"文件上传成功,共上传了{file_count}条数据!"}) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def create_dataset(request): + data = request.data.copy() + data["id"] = str(uuid.uuid4()) + data["create_time"] = datetime.now() + data["status"] = "01" + data["creator"] = request.user.username or "creator" + new_dataset_code = _generate_next_dataset_code() + data["dataset_code"] = new_dataset_code + dataset_paths = _build_dataset_paths(new_dataset_code) + data["original_file_path"] = data.get("original_file_path") or dataset_paths["original_file_path"] + data["dataset_path"] = data.get("dataset_path") or dataset_paths["dataset_path"] + data["custom1"] = data.get("custom1") or dataset_paths["custom1"] + if data.get("dataset_type") == "03": + videos_rel = data.get("custom3") or dataset_paths["custom3"] + data["custom3"] = videos_rel + data["custom2"] = _dump_video_manifest(_videos_base_rel(videos_rel), [], max_len=1000) + serializer = AiDatasetSerializer(data=data, context={"request": request}) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "数据集创建成功"}) + return Response({"error": "无效的数据", "details": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_dataset(request): + dataset_id = request.GET.get("id", None) + dataset = get_object_or_404(AiDataset, id=dataset_id) + serializer = AiDatasetSerializer(dataset) + + STATUSES = ["00", "01", "02"] + sample_stats = {} + for status_code in STATUSES: + sample_stats[f"count_{status_code}"] = Sum( + Case(When(status=status_code, then=1), default=0, output_field=IntegerField()) + ) + + sample_stats["total"] = Count("id") + + dataset_status_counts = ( + AiDatasetSample.objects.values("dataset_id").annotate(**sample_stats).filter(dataset_id=dataset_id) + ) + serializer_data = serializer.data + serializer_data["dataset_status_counts"] = dataset_status_counts + return Response(serializer_data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_dataset(request): + data = request.data.copy() + dataset = get_object_or_404(AiDataset, id=data.get("id")) + data.pop("dataset_code", None) + serializer = AiDatasetSerializer(instance=dataset, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "数据集更新成功"}) + return Response({"error": "无效的数据", "details": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def delete_dataset(request): + dataset_id = request.GET.get("id", None) + if not dataset_id: + return Response({"error": "数据集 ID 不能为空"}, status=status.HTTP_400_BAD_REQUEST) + + task_count = AiAnnotateTask.objects.filter(dataset_id=dataset_id).count() + if task_count > 0: + return Response( + {"warn": "该数据集已经创建了样本标注任务,请先删除样本标注任务!"}, + status=status.HTTP_400_BAD_REQUEST, + ) + + train_count = AiAlgorithmTrainRecords.objects.filter(link_datasets__contains=dataset_id).count() + if train_count > 0: + return Response( + {"warn": "该数据集已经创建了算法训练任务,请先删除算法训练任务!"}, + status=status.HTTP_400_BAD_REQUEST, + ) + + try: + dataset = get_object_or_404(AiDataset, id=dataset_id) + AiDatasetSample.objects.filter(dataset_id=dataset_id).delete() + try: + objects = minio_storage.list_objects("dataset", prefix=dataset.dataset_path) + object_names = [obj["name"] for obj in objects if obj.get("name")] + if object_names: + minio_storage.delete_objects("dataset", object_names) + except Exception: + pass + dataset.delete() + return Response({"message": "数据集删除成功"}, status=status.HTTP_200_OK) + + except Exception as e: + return Response( + {"error": f"删除数据集失败: {str(e)}"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def delete_dataset_updatefile(request): + data = request.data + dataset = get_object_or_404(AiDataset, id=data.get("id")) + serializer = AiDatasetSerializer(instance=dataset, data=data, partial=True) + if serializer.is_valid(): + serializer.save() + return Response({"message": "上传数据文件删除成功"}) + return Response({"error": "无效的数据", "details": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_datasets(request): + dataset_code = request.GET.get("dataset_code", None) + dataset_name = request.GET.get("dataset_name", None) + features = request.GET.get("features", None) + dataset_type = request.GET.get("dataset_type", None) + creator = request.GET.get("creator", None) + page_size = request.GET.get("page_size", None) + filter_kwargs = {} + if dataset_code: + filter_kwargs["dataset_code__contains"] = dataset_code + if dataset_name: + filter_kwargs["dataset_name__contains"] = dataset_name + if dataset_type: + filter_kwargs["dataset_type"] = dataset_type + if features: + filter_kwargs["features__contains"] = features + if creator: + filter_kwargs["creator"] = creator + + datasets = AiDataset.objects.filter(**filter_kwargs).order_by("dataset_code") + paginator = PageNumberPagination() + paginator.page_size = page_size or 10 + result_page = paginator.paginate_queryset(datasets, request) + serializer = AiDatasetSerializer(result_page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_dataset_list(request): + datasets = AiDataset.objects.all().order_by("dataset_code") + serializer = AiDatasetSerializer(datasets, many=True) + return Response(serializer.data) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def import_dataset_from_temp_file(request): + data = request.data + dataset_id = data.get("dataset_id") + temp_file_ids = _normalize_temp_file_ids(data) + if not dataset_id or not temp_file_ids: + return Response({"error": "缺少 dataset_id 或 temp_file_id(s)"}, status=status.HTTP_400_BAD_REQUEST) + + dataset = get_object_or_404(AiDataset, id=dataset_id) + interval_seconds = int(data.get("interval_seconds") or 1) + max_frames = int(data.get("max_frames") or 200) + + if len(temp_file_ids) == 1: + temp_file = get_object_or_404(AiTempFile, id=temp_file_ids[0]) + status_code, payload = _import_single_temp_file_to_dataset(dataset, temp_file, interval_seconds, max_frames) + return Response(payload, status=status_code) + + summary_results = [] + total_imported_count = 0 + total_duplicate_count = 0 + total_failed_count = 0 + success_temp_file_count = 0 + duplicate_temp_file_count = 0 + failed_temp_file_count = 0 + + temp_files = {str(item.id): item for item in AiTempFile.objects.filter(id__in=temp_file_ids)} + for temp_file_id in temp_file_ids: + temp_file = temp_files.get(str(temp_file_id)) + if not temp_file: + payload = {"error": f"临时文件不存在: {temp_file_id}"} + status_code = status.HTTP_404_NOT_FOUND + else: + try: + status_code, payload = _import_single_temp_file_to_dataset(dataset, temp_file, interval_seconds, max_frames) + except Exception as exc: + logger.exception("batch temp file import failed: dataset=%s temp_file=%s", dataset.id, temp_file_id) + status_code = status.HTTP_500_INTERNAL_SERVER_ERROR + payload = {"error": f"导入失败:{exc}"} + + imported_count = int(payload.get("imported_count") or 0) + duplicate_count = int(payload.get("duplicate_count") or 0) + failed_count = int(payload.get("failed_count") or 0) + result_status = "failed" + if status_code == status.HTTP_200_OK and failed_count > 0: + result_status = "partial" + elif status_code == status.HTTP_200_OK: + result_status = "success" + elif status_code == status.HTTP_409_CONFLICT: + result_status = "duplicate" + + if result_status in ("success", "partial"): + success_temp_file_count += 1 + elif result_status == "duplicate": + duplicate_temp_file_count += 1 + else: + failed_temp_file_count += 1 + + total_imported_count += imported_count + total_duplicate_count += duplicate_count + total_failed_count += failed_count + summary_results.append( + { + "temp_file_id": temp_file_id, + "filename": getattr(temp_file, "original_name", "") if temp_file else "", + "status": result_status, + **payload, + } + ) + + if success_temp_file_count > 0: + message = ( + f"同步导入完成,成功处理{success_temp_file_count}个临时文件," + f"新增样本{total_imported_count}条,跳过重复{total_duplicate_count}条,失败{total_failed_count}条" + ) + response_status = status.HTTP_200_OK + elif duplicate_temp_file_count > 0 and failed_temp_file_count == 0: + message = "所选临时文件均已导入当前数据集,本次未新增样本" + response_status = status.HTTP_200_OK + else: + message = "同步导入失败,请检查临时文件类型与数据集类型是否匹配" + response_status = status.HTTP_400_BAD_REQUEST + + return Response( + { + "message": message, + "dataset_id": dataset.id, + "temp_file_count": len(temp_file_ids), + "success_temp_file_count": success_temp_file_count, + "duplicate_temp_file_count": duplicate_temp_file_count, + "failed_temp_file_count": failed_temp_file_count, + "imported_count": total_imported_count, + "duplicate_count": total_duplicate_count, + "failed_count": total_failed_count, + "results": summary_results, + }, + status=response_status, + ) diff --git a/backend/apps/datasets/views/dataset_sample.py b/backend/apps/datasets/views/dataset_sample.py new file mode 100644 index 0000000..a99eedc --- /dev/null +++ b/backend/apps/datasets/views/dataset_sample.py @@ -0,0 +1,217 @@ +import hashlib +import base64 +import mimetypes + +from django.db import transaction +from django.http import StreamingHttpResponse +from django.shortcuts import get_object_or_404, get_list_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AiDatasetSampleSerializer +from apps.common.minio_client import minio_storage +from apps.core.models import AiDataset, AiDatasetSample +from apps.common.utils.annotation_store import get_dataset_sample_annotation_content +from apps.datasets.dataset_stats import refresh_dataset_sample_counters +from apps.datasets.storage_service import DATASET_BUCKET, delete_sample_storage + +def _sample_object_name(sample: AiDatasetSample) -> str: + return f"{str(sample.saved_path or '').strip('/').replace('\\', '/')}/{sample.saved_filename}".strip("/") + + +def _stream_object(response, chunk_size: int = 1024 * 1024): + try: + while True: + chunk = response.read(chunk_size) + if not chunk: + break + yield chunk + finally: + response.close() + response.release_conn() + + +def _build_sample_stream_response(sample: AiDatasetSample, as_attachment: bool): + object_name = _sample_object_name(sample) + response = minio_storage.get_object(DATASET_BUCKET, object_name) + content_type = ( + mimetypes.guess_type(sample.original_filename or sample.saved_filename)[0] + or "application/octet-stream" + ) + filename = sample.original_filename or sample.saved_filename + stream = StreamingHttpResponse(_stream_object(response), content_type=content_type) + disposition = "attachment" if as_attachment else "inline" + stream["Content-Disposition"] = f'{disposition}; filename="{filename}"' + return stream + + +def _get_sample_md5(sample: AiDatasetSample) -> str | None: + object_name = _sample_object_name(sample) + try: + info = minio_storage.get_object_info(DATASET_BUCKET, object_name) + etag = str(info.get("etag") or "").strip('"') + if etag: + return etag + file_bytes = minio_storage.download_bytes(DATASET_BUCKET, object_name) + return hashlib.md5(file_bytes).hexdigest() + except Exception as e: + print(f"Error reading sample {sample.id} from MinIO: {e}") + return None + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_dataset_samples(request): + dataset_id = request.GET.get("dataset_id", None) + original_filename = request.GET.get("original_filename", None) + start_time = request.GET.get("start_time", None) + end_time = request.GET.get("end_time", None) + status = request.GET.get("status", None) + page_size = request.GET.get("page_size", None) + + filter_kwargs = {} + if dataset_id: + filter_kwargs["dataset_id"] = dataset_id + if original_filename: + filter_kwargs["original_filename__contains"] = original_filename + if start_time and end_time: + filter_kwargs["create_time__range"] = [start_time, end_time] + if start_time and end_time is None: + filter_kwargs["create_time__gte"] = start_time + if start_time is None and end_time: + filter_kwargs["create_time__lte"] = end_time + if status: + filter_kwargs["status"] = status + + samples = AiDatasetSample.objects.filter(**filter_kwargs).order_by("saved_filename") + + paginator = PageNumberPagination() + paginator.page_size = page_size or 10 + result_page = paginator.paginate_queryset(samples, request) + + serializer = AiDatasetSampleSerializer(result_page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def delete_invalid_samples(request): + dataset_id = request.GET.get("dataset_id", None) + sample_ids = request.GET.get("ids", None) + + if sample_ids is None: + return Response({"message": "未提供样本 IDs"}, status=400) + + sample_ids_list = [id for id in sample_ids.split(",")] + samples = get_list_or_404(AiDatasetSample, id__in=sample_ids_list) + + for sample in samples: + delete_sample_storage(sample.saved_path, sample.saved_filename) + sample.delete() + + refresh_dataset_sample_counters(dataset_id) + + return Response({"message": "无效样本删除成功!"}) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def delete_duplicate_samples(request): + dataset_id = request.GET.get("dataset_id", None) + if dataset_id is None: + return Response({"message": "未选择数据集"}, status=400) + + samples = AiDatasetSample.objects.filter(dataset_id=dataset_id).order_by("create_time", "id") + if not samples.exists(): + return Response({"message": "当前数据集没有样本,无需去重!"}) + + unique_images = {} + deleted_count = 0 + failed_samples = [] + for sample in samples: + md5_hash = _get_sample_md5(sample) + if not md5_hash: + failed_samples.append(sample.id) + continue + + if md5_hash in unique_images: + try: + failed_objects = delete_sample_storage(sample.saved_path, sample.saved_filename) + if failed_objects: + failed_samples.append(sample.id) + continue + sample.delete() + deleted_count += 1 + except Exception: + failed_samples.append(sample.id) + else: + unique_images[md5_hash] = sample.id + + refresh_dataset_sample_counters(dataset_id) + if failed_samples: + return Response( + { + "message": f'样本去重完成,共删除了"{deleted_count}"条重复数据,"{len(failed_samples)}"条样本处理失败!', + "failed_ids": failed_samples, + } + ) + return Response({"message": f'样本去重完成,共删除了"{deleted_count}"条重复数据!'}) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_dataset_sample(request): + data = request.data + sample = get_object_or_404(AiDatasetSample, id=data.get("id")) + serializer = AiDatasetSampleSerializer(instance=sample, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + refresh_dataset_sample_counters(sample.dataset_id) + return Response({"message": "样本更新成功"}) + + return Response( + {"error": "无效的数据", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_dataset_sample(request): + sample_id = request.GET.get("id", None) + sample = get_object_or_404(AiDatasetSample, id=sample_id) + object_name = _sample_object_name(sample) + file_bytes = minio_storage.download_bytes(DATASET_BUCKET, object_name) + content_type = ( + mimetypes.guess_type(sample.original_filename or sample.saved_filename)[0] + or "application/octet-stream" + ) + image_base64 = f"data:{content_type};base64,{base64.b64encode(file_bytes).decode('utf-8')}" + response_data = { + "id": sample.id, + "image_base64": image_base64, + "annotation_content": get_dataset_sample_annotation_content(sample), + } + return Response(response_data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def preview_dataset_sample(request): + sample_id = request.GET.get("id", None) + sample = get_object_or_404(AiDatasetSample, id=sample_id) + return _build_sample_stream_response(sample, as_attachment=False) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def download_dataset_sample(request): + sample_id = request.GET.get("id", None) + sample = get_object_or_404(AiDatasetSample, id=sample_id) + return _build_sample_stream_response(sample, as_attachment=True) diff --git a/backend/apps/datasets/views/temp_file.py b/backend/apps/datasets/views/temp_file.py new file mode 100644 index 0000000..5eb7212 --- /dev/null +++ b/backend/apps/datasets/views/temp_file.py @@ -0,0 +1,171 @@ +import mimetypes +import os +import uuid +from datetime import datetime + +from django.conf import settings +from django.shortcuts import get_object_or_404 +from django.http import StreamingHttpResponse +from rest_framework import status +from rest_framework.decorators import api_view, parser_classes, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.parsers import MultiPartParser +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.minio_client import minio_storage +from apps.common.serializers import AiTempFileSerializer +from apps.core.models import AiTempFile + + +TEMPFILE_BUCKET = "tempfile" +IMAGE_TYPES = {".jpg", ".jpeg", ".png", ".bmp", ".gif", ".webp", ".tif", ".tiff"} +VIDEO_TYPES = {".mp4", ".avi", ".mov", ".mkv", ".wmv", ".flv", ".mpeg", ".mpg", ".webm"} +AUDIO_TYPES = {".mp3", ".wav", ".aac", ".m4a", ".flac", ".ogg"} +TEXT_TYPES = {".txt", ".csv", ".json", ".xml"} + + +def _detect_original_type(filename: str) -> str: + ext = os.path.splitext(filename or "")[1].lower() + if ext in IMAGE_TYPES: + return "01" + if ext in VIDEO_TYPES: + return "02" + if ext in AUDIO_TYPES: + return "03" + if ext == ".zip": + return "04" + if ext in TEXT_TYPES: + return "05" + return "99" + + +def _stream_object(response, chunk_size: int = 1024 * 1024): + try: + while True: + chunk = response.read(chunk_size) + if not chunk: + break + yield chunk + finally: + response.close() + response.release_conn() + + +@api_view(["POST"]) +@parser_classes([MultiPartParser]) +@permission_classes([IsAuthenticated]) +def upload_temp_file(request): + uploaded_file = request.FILES.get("file") + if not uploaded_file: + return Response({"error": "缺少 file 字段"}, status=status.HTTP_400_BAD_REQUEST) + + file_id = str(uuid.uuid4()) + bucket_name = request.data.get("bucket_name") or TEMPFILE_BUCKET + prefix = request.data.get("prefix") or datetime.now().strftime("%Y-%m-%d") + object_name = request.data.get("object_name") or minio_storage.generate_object_name(uploaded_file.name, prefix) + content_type = uploaded_file.content_type or mimetypes.guess_type(uploaded_file.name)[0] or "application/octet-stream" + original_type = request.data.get("original_type") or _detect_original_type(uploaded_file.name) + + minio_storage.upload_stream( + bucket_name=bucket_name, + object_name=object_name, + data=uploaded_file.file, + length=uploaded_file.size, + content_type=content_type, + ) + + obj = AiTempFile.objects.create( + id=file_id, + original_path=request.data.get("original_path") or "", + original_name=uploaded_file.name, + original_type=original_type, + bucket_name=bucket_name, + object_name=object_name, + object_size=uploaded_file.size, + content_type=content_type, + status=request.data.get("status") or "01", + ) + serializer = AiTempFileSerializer(obj) + return Response({"message": "临时文件上传成功", "data": serializer.data}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def search_temp_files(request): + filter_kwargs = {} + original_name = request.GET.get("original_name") + original_type = request.GET.get("original_type") + status_code = request.GET.get("status") + page_size = request.GET.get("page_size") or 10 + + if original_name: + filter_kwargs["original_name__contains"] = original_name + if original_type: + filter_kwargs["original_type"] = original_type + if status_code: + filter_kwargs["status"] = status_code + + queryset = AiTempFile.objects.filter(**filter_kwargs).order_by("-create_time") + paginator = PageNumberPagination() + paginator.page_size = page_size + page = paginator.paginate_queryset(queryset, request) + serializer = AiTempFileSerializer(page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_temp_file(request): + temp_id = request.GET.get("id") + obj = get_object_or_404(AiTempFile, id=temp_id) + serializer = AiTempFileSerializer(obj) + return Response(serializer.data) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_temp_file(request): + data = request.data + obj = get_object_or_404(AiTempFile, id=data.get("id")) + serializer = AiTempFileSerializer(instance=obj, data=data, partial=True) + if serializer.is_valid(): + serializer.save() + return Response({"message": "临时文件更新成功"}) + return Response({"error": "无效的数据", "details": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_temp_file(request): + temp_id = request.GET.get("id") + obj = get_object_or_404(AiTempFile, id=temp_id) + if obj.bucket_name and obj.object_name: + minio_storage.delete_object(obj.bucket_name, obj.object_name) + obj.delete() + return Response({"message": "临时文件删除成功"}) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def download_temp_file(request): + temp_id = request.GET.get("id") + obj = get_object_or_404(AiTempFile, id=temp_id) + response = minio_storage.get_object(obj.bucket_name, obj.object_name) + content_type = obj.content_type or "application/octet-stream" + filename = obj.original_name or os.path.basename(obj.object_name or "") + stream = StreamingHttpResponse(_stream_object(response), content_type=content_type) + stream["Content-Disposition"] = f'attachment; filename="{filename}"' + return stream + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def preview_temp_file(request): + temp_id = request.GET.get("id") + obj = get_object_or_404(AiTempFile, id=temp_id) + response = minio_storage.get_object(obj.bucket_name, obj.object_name) + content_type = obj.content_type or "application/octet-stream" + stream = StreamingHttpResponse(_stream_object(response), content_type=content_type) + stream["Content-Disposition"] = "inline" + return stream diff --git a/backend/apps/iam/__init__.py b/backend/apps/iam/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/iam/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/iam/apps.py b/backend/apps/iam/apps.py new file mode 100644 index 0000000..b867ebf --- /dev/null +++ b/backend/apps/iam/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class IamConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.iam" + diff --git a/backend/apps/iam/views/__init__.py b/backend/apps/iam/views/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/iam/views/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/iam/views/group.py b/backend/apps/iam/views/group.py new file mode 100644 index 0000000..5850c79 --- /dev/null +++ b/backend/apps/iam/views/group.py @@ -0,0 +1,83 @@ +from django.db.models import Max +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AuthGroupSerializer +from apps.core.models import AuthGroup + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_group_list(request): + name = request.GET.get("name", None) + page_size = request.GET.get("page_size", None) + + filter_kwargs = {} + if name: + filter_kwargs["name"] = name + + groups = AuthGroup.objects.filter(**filter_kwargs).order_by("name") + + paginator = PageNumberPagination() + paginator.page_size = page_size or 10 + result_page = paginator.paginate_queryset(groups, request) + + serializer = AuthGroupSerializer(result_page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_group(request): + group_id = request.GET.get("id", None) + group = get_object_or_404(AuthGroup, id=group_id) + serializer = AuthGroupSerializer(group) + return Response(serializer.data) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def add_group(request): + data = request.data + max_id = AuthGroup.objects.aggregate(Max("id"))["id__max"] + data["id"] = (max_id + 1) if max_id is not None else 1 + serializer = AuthGroupSerializer(data=data) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "Group added successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_group(request): + data = request.data + group = get_object_or_404(AuthGroup, id=data.get("id")) + serializer = AuthGroupSerializer(instance=group, data=request.data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "Group updated successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_group(request): + group_id = request.GET.get("id", None) + group = get_object_or_404(AuthGroup, id=group_id) + group.delete() + return Response({"message": "Person deleted successfully"}) diff --git a/backend/apps/iam/views/organization.py b/backend/apps/iam/views/organization.py new file mode 100644 index 0000000..3f02847 --- /dev/null +++ b/backend/apps/iam/views/organization.py @@ -0,0 +1,71 @@ +import uuid + +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AuthOrganizationSerializer +from apps.core.models import AuthOrganization + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_organization_list(request): + organizations = AuthOrganization.objects.all() + serializer = AuthOrganizationSerializer(organizations, many=True) + return Response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_organization(request): + organization_id = request.GET.get("id", None) + organization = get_object_or_404(AuthOrganization, id=organization_id) + serializer = AuthOrganizationSerializer(organization) + return Response(serializer.data) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def add_organization(request): + data = request.data + data["id"] = str(uuid.uuid4()) + serializer = AuthOrganizationSerializer(data=request.data) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "Organization added successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_organization(request): + data = request.data + organization = get_object_or_404(AuthOrganization, id=data.get("id")) + serializer = AuthOrganizationSerializer( + instance=organization, data=request.data, partial=True + ) + if serializer.is_valid(): + serializer.save() + return Response({"message": "Organization updated successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_organization(request): + organization_id = request.GET.get("id", None) + organization = get_object_or_404(AuthOrganization, id=organization_id) + organization.delete() + return Response({"message": "Organization deleted successfully"}) diff --git a/backend/apps/iam/views/person.py b/backend/apps/iam/views/person.py new file mode 100644 index 0000000..6753ecc --- /dev/null +++ b/backend/apps/iam/views/person.py @@ -0,0 +1,127 @@ +import base64 +from datetime import datetime + +from django.conf import settings +from django.contrib.auth.hashers import make_password +from django.db.models import Max +from django.shortcuts import get_object_or_404 +from gmssl import sm4 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes +from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response + +from apps.common.serializers import AuthPersonSerializer +from apps.core.models import AIAnnotateTeamMember, AuthPerson + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def get_person_list(request): + organization_id = request.GET.get("organization_id", None) + team_id = request.GET.get("team_id", None) + username = request.GET.get("username", None) + last_name = request.GET.get("last_name", None) + page_size = request.GET.get("page_size", None) + + team_members = AIAnnotateTeamMember.objects.filter(team_id=team_id) + member_accounts = [team_member.member_account for team_member in team_members] + + filter_kwargs = {} + if organization_id: + filter_kwargs["organization_id"] = organization_id + if username: + filter_kwargs["username__icontains"] = username + if last_name: + filter_kwargs["last_name__icontains"] = last_name + + persons = AuthPerson.objects.filter(**filter_kwargs).order_by("id") + if member_accounts: + persons = persons.exclude(username__in=member_accounts) + + paginator = PageNumberPagination() + paginator.page_size = page_size or 10 + + result_page = paginator.paginate_queryset(persons, request) + serializer = AuthPersonSerializer(result_page, many=True) + return paginator.get_paginated_response(serializer.data) + + +@api_view(["GET"]) +@permission_classes([IsAuthenticated]) +def read_person(request): + person_id = request.GET.get("id", None) + person = get_object_or_404(AuthPerson, id=person_id) + serializer = AuthPersonSerializer(person) + return Response(serializer.data) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def add_person(request): + data = request.data + max_id = AuthPerson.objects.aggregate(Max("id"))["id__max"] + data["id"] = (max_id + 1) if max_id is not None else 1 + data["date_joined"] = datetime.now() + data["password"] = make_password("123456") + serializer = AuthPersonSerializer(data=data) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "Person added successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["PUT"]) +@permission_classes([IsAuthenticated]) +def update_person(request): + data = request.data + person = get_object_or_404(AuthPerson, id=data.get("id")) + serializer = AuthPersonSerializer(instance=person, data=request.data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({"message": "Person updated successfully"}) + + return Response( + {"error": "Invalid data", "details": serializer.errors}, + status=status.HTTP_400_BAD_REQUEST, + ) + + +@api_view(["DELETE"]) +@permission_classes([IsAuthenticated]) +def delete_person(request): + person_id = request.GET.get("id", None) + person = get_object_or_404(AuthPerson, id=person_id) + person.delete() + return Response({"message": "Person deleted successfully"}) + + +@api_view(["POST"]) +@permission_classes([IsAuthenticated]) +def update_password(request): + username = request.data.get("username") + encrypted_password = request.data.get("password") + + try: + password = decrypt_password( + encrypted_password, getattr(settings, "private_key", "") + ) + AuthPerson.objects.filter(username=username).update(password=make_password(password)) + return Response({"code": "0", "success": "用户密码修改成功!"}) + except Exception: + return Response({"code": "1", "error": "用户密码更新失败!"}) + + +def decrypt_password(encrypted_text, private_key): + cipher = sm4.CryptSM4() + cipher.set_key(private_key.encode(), True) + encrypted_bytes = base64.b64decode(encrypted_text) + decrypted_bytes = cipher.crypt_ecb(encrypted_bytes) + return decrypted_bytes.decode() diff --git a/backend/apps/iam/views/user.py b/backend/apps/iam/views/user.py new file mode 100644 index 0000000..5a0a104 --- /dev/null +++ b/backend/apps/iam/views/user.py @@ -0,0 +1,75 @@ +import base64 +import os + +from django.conf import settings +from django.contrib.auth import authenticate +from django.db.utils import OperationalError, ProgrammingError +from gmssl import sm4 +from rest_framework.response import Response +from rest_framework.views import APIView +from rest_framework_simplejwt.tokens import RefreshToken + + +class UserLoginView(APIView): + def post(self, request, *args, **kwargs): + if os.environ.get("DJANGO_LOGIN_BREAKPOINT", "").strip().lower() in { + "1", + "true", + "yes", + "y", + "on", + }: + breakpoint() + try: + username = request.data.get("username") + encrypted_password = request.data.get("password") + if not username or not encrypted_password: + return Response({"code": "1", "error": "用户名或密码不能为空"}) + + private_key = getattr(settings, "SM4_PRIVATE_KEY", getattr(settings, "private_key", "")) + if not private_key: + return Response({"code": "1", "error": "缺少加密密钥"}) + + try: + password = self.decrypt_password(encrypted_password, private_key) + except Exception: + return Response({"code": "1", "error": "密码解密失败"}) + + user = authenticate(request, username=username, password=password) + + if user is not None: + refresh = RefreshToken.for_user(user) + user_groups = [group.id for group in user.groups.all()] + return Response( + { + "access_token": str(refresh.access_token), + "refresh_token": str(refresh), + "user_id": user.id, + "username": user.username, + "email": user.email, + "groups": user_groups, + "is_superuser": user.is_superuser, + } + ) + + return Response({"code": "1", "error": "用户名或密码不正确,请检查并重试!"}) + except (OperationalError, ProgrammingError) as e: + payload = {"code": "1", "error": "数据库未就绪,请先执行 migrate 并检查 DB 配置"} + if settings.DEBUG: + payload["details"] = str(e) + return Response(payload) + except Exception as e: + payload = {"code": "1", "error": "登录服务异常"} + if settings.DEBUG: + payload["details"] = str(e) + return Response(payload) + + def decrypt_password(self, encrypted_text, private_key): + if not private_key or len(private_key) != 16: + raise ValueError("invalid sm4 key") + cipher = sm4.CryptSM4() + cipher.set_key(private_key.encode(), True) + + encrypted_bytes = base64.b64decode(encrypted_text) + decrypted_bytes = cipher.crypt_ecb(encrypted_bytes) + return decrypted_bytes.decode() diff --git a/backend/apps/training/__init__.py b/backend/apps/training/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/training/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/training/apps.py b/backend/apps/training/apps.py new file mode 100644 index 0000000..2b46536 --- /dev/null +++ b/backend/apps/training/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class TrainingConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.training" + diff --git a/backend/apps/training/consumers.py b/backend/apps/training/consumers.py new file mode 100644 index 0000000..da29b6f --- /dev/null +++ b/backend/apps/training/consumers.py @@ -0,0 +1,150 @@ +import asyncio +import json +import os + +from channels.db import database_sync_to_async +from channels.generic.websocket import AsyncWebsocketConsumer +from django.conf import settings + +from apps.core.models import AiAlgorithm, AiAlgorithmClass, AiAlgorithmTrainRecords + + +class TrainLogConsumer(AsyncWebsocketConsumer): + async def connect(self): + self.train_id = self.scope["url_route"]["kwargs"]["train_id"] + self.group_name = f"train_{self.train_id}" + await self.channel_layer.group_add(self.group_name, self.channel_name) + print(f"客户端[{self.train_id}],websocket连接服务器成功!") + await self.accept() + self._stop_event = asyncio.Event() + self._tail_task = asyncio.create_task(self._tail_train_log()) + + async def disconnect(self, close_code): + if hasattr(self, "_stop_event"): + self._stop_event.set() + if hasattr(self, "_tail_task"): + self._tail_task.cancel() + try: + await self._tail_task + except Exception: + pass + await self.channel_layer.group_discard(self.group_name, self.channel_name) + + async def receive(self, text_data): + pass + + async def send_log(self, event): + message = event["message"] + await self.send(text_data=message) + + @staticmethod + def _is_valid_json(text: str) -> bool: + try: + json.loads(text) + return True + except Exception: + return False + + async def _send_json(self, payload): + await self.send(text_data=json.dumps(payload, ensure_ascii=False)) + + @database_sync_to_async + def _resolve_log_file_path(self) -> str: + ai_train = AiAlgorithmTrainRecords.objects.get(id=self.train_id) + ai_algorithm = AiAlgorithm.objects.get(id=ai_train.algorithm_id) + ai_algorithm_class = AiAlgorithmClass.objects.get(id=ai_algorithm.algorithm_class) + run_name = "train" + flat_train_path = os.path.join(settings.FILESPACE_ROOT_PATH, ai_train.train_code) + nested_train_path = os.path.join( + settings.FILESPACE_ROOT_PATH, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + "trains", + ai_train.train_code, + ) + if getattr(ai_algorithm, "algorithm_engine", None) == "02": + candidates = [ + os.path.join(nested_train_path, "output", f"{run_name}.log"), + os.path.join(flat_train_path, "output", f"{run_name}.log"), + ] + elif getattr(ai_algorithm, "algorithm_engine", None) in {"03", "04"}: + candidates = [ + os.path.join(nested_train_path, "runs", f"{run_name}.log"), + os.path.join(flat_train_path, "runs", f"{run_name}.log"), + ] + else: + candidates = [ + os.path.join(flat_train_path, "runs", f"{run_name}.log"), + os.path.join(nested_train_path, "runs", f"{run_name}.log"), + ] + for path in candidates: + if os.path.exists(path): + return path + return candidates[0] + + async def _emit_log_lines(self, payload: bytes) -> None: + for raw_line in payload.splitlines(keepends=False): + line = raw_line.decode("utf-8", errors="ignore").strip() + if not line: + continue + if self._is_valid_json(line): + await self.send(text_data=line) + else: + await self._send_json({"type": "waiting", "text": line}) + + async def _tail_train_log(self) -> None: + try: + log_file_path = await self._resolve_log_file_path() + except Exception as e: + await self._send_json({"type": "error", "text": f"无法定位训练日志文件:{str(e)}"}) + return + + last_pos = 0 + buf = b"" + while not self._stop_event.is_set(): + if not os.path.exists(log_file_path): + last_pos = 0 + buf = b"" + await asyncio.sleep(0.5) + continue + + try: + current_size = os.path.getsize(log_file_path) + if current_size < last_pos: + last_pos = 0 + buf = b"" + if current_size == last_pos: + await asyncio.sleep(0.2) + continue + + with open(log_file_path, "rb") as f: + f.seek(last_pos) + chunk = f.read() + last_pos = f.tell() + + if not chunk: + await asyncio.sleep(0.2) + continue + + buf += chunk + normalized = buf.replace(b"\r\n", b"\n").replace(b"\r", b"\n") + if normalized.endswith(b"\n"): + completed = normalized + buf = b"" + else: + split_idx = normalized.rfind(b"\n") + if split_idx == -1: + buf = normalized + await asyncio.sleep(0.2) + continue + completed = normalized[: split_idx + 1] + buf = normalized[split_idx + 1 :] + + await self._emit_log_lines(completed) + await asyncio.sleep(0.05) + except asyncio.CancelledError: + return + except Exception as e: + await self._send_json({"type": "error", "text": f"训练日志读取失败:{str(e)}"}) + await asyncio.sleep(1.0) + diff --git a/backend/apps/training/views/__init__.py b/backend/apps/training/views/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/training/views/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/training/views/algorithm_trainrecords.py b/backend/apps/training/views/algorithm_trainrecords.py new file mode 100644 index 0000000..d754522 --- /dev/null +++ b/backend/apps/training/views/algorithm_trainrecords.py @@ -0,0 +1,2616 @@ +import os +import logging +import random +import re +import shutil +import signal +import subprocess +import sys +import tempfile +import threading +import time +import uuid +import zipfile +import base64 +from datetime import datetime +import xml.etree.ElementTree as ET +import requests +import yaml +import locale +from PIL import Image +try: + import cv2 +except Exception: + cv2 = None +from asgiref.sync import async_to_sync +from channels.layers import get_channel_layer +from django.db import transaction +from django.db.models import Max, CharField +from django.db.models.functions import Cast +from django.http import JsonResponse +from django.shortcuts import get_object_or_404 +from rest_framework import status +from rest_framework.decorators import api_view, permission_classes, parser_classes +from rest_framework.parsers import MultiPartParser, JSONParser, FormParser +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response +from rest_framework.utils import json + +from django.conf import settings +from apps.common.serializers import AiAlgorithmTrainRecordsSerializer +try: + from tqdm import tqdm +except Exception: + tqdm = None +try: + from apps.algorithms.algorithm.pytorch.YoloDetector import YoloDetector +except Exception: + YoloDetector = None +try: + from apps.algorithms.algorithm.DFINE.DfineDetector import DfineDetector +except Exception: + DfineDetector = None +try: + from ultralytics import YOLO +except Exception: + YOLO = None +from apps.core.models import ( + AiAlgorithm, + AiAlgorithmClass, + AiDataset, + AiAlgorithmModels, + AiAlgorithmParams, + AiAlgorithmTrainRecords, + AiDatasetSample, +) +from apps.common.utils.annotation_store import ( + annotate_queryset_with_annotation_content, + get_dataset_sample_annotation_from_row, +) +from apps.datasets.storage_service import ensure_sample_local_copy, ensure_sidecar_local_copy + +training_processes = {} +logger = logging.getLogger(__name__) + + +def _safe_rmtree(path: str): + if os.path.isdir(path): + shutil.rmtree(path, ignore_errors=True) + + +def _cleanup_current_training_workspace(train_path: str): + os.makedirs(train_path, exist_ok=True) + for subdir in ("train", "val", "images", "masks", "config", "runs", "output", "torch_cache"): + _safe_rmtree(os.path.join(train_path, subdir)) + for filename in ("label_map.json", "yolo_config.yaml"): + file_path = os.path.join(train_path, filename) + if os.path.isfile(file_path): + try: + os.remove(file_path) + except OSError: + pass + + +def _prune_training_cache(train_path: str): + train_root = os.path.dirname(train_path) + active_name = os.path.basename(train_path) + keep_latest = max(int(getattr(settings, "TRAIN_CACHE_KEEP_LATEST", 5) or 5), 1) + max_age_days = max(int(getattr(settings, "TRAIN_CACHE_MAX_AGE_DAYS", 7) or 7), 1) + now_ts = time.time() + if not os.path.isdir(train_root): + return + + candidates = [] + for name in os.listdir(train_root): + dir_path = os.path.join(train_root, name) + if not os.path.isdir(dir_path) or name == active_name: + continue + try: + mtime = os.path.getmtime(dir_path) + except OSError: + continue + candidates.append((name, dir_path, mtime)) + + candidates.sort(key=lambda item: item[2], reverse=True) + kept = 0 + for _, dir_path, mtime in candidates: + age_days = (now_ts - mtime) / 86400 + if kept < keep_latest and age_days <= max_age_days: + kept += 1 + continue + logger.info("remove expired training cache: %s", dir_path) + _safe_rmtree(dir_path) + + +def _subprocess_session_kwargs() -> dict: + if os.name == "nt": + return {"creationflags": getattr(subprocess, "CREATE_NEW_PROCESS_GROUP", 0)} + return {"start_new_session": True} + + +def _watch_training_process(train_id, process): + try: + process.wait() + except Exception: + pass + finally: + process_info = training_processes.get(train_id) + if process_info and process_info.get("process") is process: + training_processes.pop(train_id, None) + + +def _launch_training_process(train_id, command, log_file_path, env=None): + stop_event = threading.Event() + with open(log_file_path, "a", encoding="utf-8") as log_file: + process = subprocess.Popen( + command, + stdout=log_file, + stderr=subprocess.STDOUT, + env=env, + **_subprocess_session_kwargs(), + ) + training_processes[train_id] = { + "process": process, + "stop_event": stop_event, + } + threading.Thread( + target=_watch_training_process, + args=(train_id, process), + daemon=True, + ).start() + return stop_event, process + + +def _terminate_training_process(process): + if process is None or process.poll() is not None: + return + try: + if os.name == "nt": + subprocess.run( + ["taskkill", "/PID", str(process.pid), "/T", "/F"], + check=False, + capture_output=True, + text=True, + timeout=15, + ) + else: + os.killpg(os.getpgid(process.pid), signal.SIGTERM) + except Exception: + try: + process.terminate() + except Exception: + pass + try: + process.wait(timeout=15) + except subprocess.TimeoutExpired: + try: + if os.name == "nt": + subprocess.run( + ["taskkill", "/PID", str(process.pid), "/T", "/F"], + check=False, + capture_output=True, + text=True, + timeout=15, + ) + else: + os.killpg(os.getpgid(process.pid), signal.SIGKILL) + except Exception: + try: + process.kill() + except Exception: + pass + try: + process.wait(timeout=5) + except Exception: + pass + + +def _prepare_training_workspace(train_path: str): + _cleanup_current_training_workspace(train_path) + _prune_training_cache(train_path) + + +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def create_algorithm_train_record(request): + data = request.data + # 为 id 字段赋予新的 UUID 值 + data["id"] = str(uuid.uuid4()) + # 设置创建时间为当前时间 + data["create_time"] = datetime.now() + # 设置记录状态为初始创建-01 + data["record_status"] = "00" + # 生成训练标识号 + algorithm = get_object_or_404(AiAlgorithm, id=data.get("algorithm_id")) + current_date = datetime.now().strftime('%Y%m%d_%H%M') + # 获取 algorithm_code 并拼接到 train_code 中 + algorithm_code = algorithm.algorithm_code if algorithm.algorithm_code else "" + data["train_code"] = f"{algorithm_code}_{current_date}" + # 获取当前用户的用户名并赋值给 creator 字段 + data["creator"] = request.user.username + data["train_labels"]="0" + data["custom2"] = "0" + param_class = request.GET.get('param_class', None) + filter_kwargs = { + 'algorithm_id':data.get("algorithm_id"), + 'param_class':"01" + } + params = AiAlgorithmParams.objects.filter(**filter_kwargs).order_by('param_order') + data["train_params"] = json.dumps(list(params.values())) + serializer = AiAlgorithmTrainRecordsSerializer(data=data, context={'request': request}) + + if serializer.is_valid(): + serializer.save() + return Response({'message': '训练记录创建成功'}) + else: + return Response({'error': '无效的数据', 'details': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def copy_algorithm_train_record(request): + # request.data.get("id") + record_id = request.data.get('id', None) + # 获取原始训练记录 + original_record = get_object_or_404(AiAlgorithmTrainRecords, id=record_id) + # 构建新的数据字典 + data = { + "id": str(uuid.uuid4()), # 新的 UUID + "create_time": datetime.now(), # 当前时间 + "record_status": "00", # 初始状态 + "algorithm_id": original_record.algorithm_id, # 继承算法 ID + "algorithm_name":original_record.algorithm_name, + "train_title":original_record.train_title+"_copy", + "train_params":original_record.train_params, + "train_labels": original_record.train_labels, + "custom1": original_record.custom1, + "custom2": original_record.custom2, + } + # 获取算法信息 + algorithm = get_object_or_404(AiAlgorithm, id=original_record.algorithm_id) + algorithm_code = algorithm.algorithm_code if algorithm.algorithm_code else "" + current_date = datetime.now().strftime('%Y%m%d_%H%M') + data["train_code"] = f"{algorithm_code}_{current_date}" # 生成训练标识号 + # 设置创建者为当前用户 + data["creator"] = request.user.username + serializer = AiAlgorithmTrainRecordsSerializer(data=data, context={'request': request}) + + if serializer.is_valid(): + serializer.save() + return Response({'message': '训练记录复制成功!'}) + else: + return Response({'error': '无效的数据', 'details': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['GET']) +@permission_classes([IsAuthenticated]) +def read_algorithm_train_record(request): + record_id = request.GET.get('id', None) + record = get_object_or_404(AiAlgorithmTrainRecords, id=record_id) + serializer = AiAlgorithmTrainRecordsSerializer(record) + return Response(serializer.data) + +@api_view(['GET']) +@permission_classes([IsAuthenticated]) +def search_algorithm_train_records(request): + algorithm_id = request.GET.get('algorithm_id', None) + train_code = request.GET.get('train_code', None) + + filter_kwargs = {} + if algorithm_id: + filter_kwargs['algorithm_id'] = algorithm_id + if train_code: + filter_kwargs['train_code__contains'] = train_code + + records = AiAlgorithmTrainRecords.objects.filter(**filter_kwargs).order_by('create_time') + + serializer = AiAlgorithmTrainRecordsSerializer(records, many=True) + return Response(serializer.data) + + +@api_view(['PUT']) +@permission_classes([IsAuthenticated]) +def update_algorithm_train_record(request): + data = request.data + record = get_object_or_404(AiAlgorithmTrainRecords, id=data.get('id')) + serializer = AiAlgorithmTrainRecordsSerializer(instance=record, data=data, partial=True) + + if serializer.is_valid(): + serializer.save() + return Response({'message': '训练记录更新成功'}) + else: + return Response({'error': '无效的数据', 'details': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + + +@api_view(['DELETE']) +@permission_classes([IsAuthenticated]) +def delete_algorithm_train_record(request): + record_id = request.GET.get('id', None) + record = get_object_or_404(AiAlgorithmTrainRecords, id=record_id) + record.delete() + return Response({'message': '训练记录删除成功'}) + + +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def prepare_algorithm_train_dataset(request): + data = request.data + + # print('data........',data) + train_id = data.get('id') + link_datasets = data.get( + 'link_datasets') + train_labels = data.get( + 'train_labels') + train_val_info = data.get( + 'custom2') + annotate_type = str(data.get('annotate_type') or 'rectangle').strip().lower() + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + link_datasets=link_datasets, + train_labels=train_labels, + custom2=train_val_info, + custom1=data.get('custom1') + ) + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="0100" + ) + train_type=data.get('train_type') + #train_type:local为本地训练;remote为远程训练 + if train_type=='local': + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=data.get('algorithm_id')) + train_path = os.path.join(filespace_root_path,data.get('train_code')) + _prepare_training_workspace(train_path) + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + trainset_path=os.path.join(train_path, "train").replace("\\", "/"), + validationset_path=os.path.join(train_path, "val").replace("\\", "/"), + ) + + # 将 collect_train_dataset_samples 放到异步线程中执行 + def async_collect_train_dataset_samples(): + if ai_algorithm.algorithm_engine=='01': + isok = collect_train_dataset_samples( link_datasets, annotate_type, train_labels, train_val_info, train_path) + elif ai_algorithm.algorithm_engine=='02': + isok = collect_train_dataset_voctococo(link_datasets, train_labels, train_val_info, train_path) + elif ai_algorithm.algorithm_engine=='03': + isok = collect_train_dataset_segmentation(link_datasets, train_labels, train_val_info, train_path) + elif ai_algorithm.algorithm_engine=='04': + isok = collect_train_dataset_yoloseg(link_datasets, train_labels, train_val_info, train_path) + else: + isok = False + if isok: + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="01" # 样本准备完成 + ) + + # 创建并启动新线程 + threading.Thread(target=async_collect_train_dataset_samples).start() + return Response({'message': '训练样本数据准备中!'}) + else: + filespace_root_path = settings.IMAGE_BASE_URL + dataset_list = link_datasets.split(',') + dataset=[] + for dataset_id in dataset_list: + ai_algorithm_dataset = get_object_or_404(AiDataset, id=dataset_id) + dataset.append(filespace_root_path+ai_algorithm_dataset.dataset_path) + train_server="http://"+data.get('train_server')+"/prepare"#远程服务器地址 + train_code=data.get('train_code') + label_list = json.loads(train_labels) + # 动态提取 'label' 和 'name' 字段 + label_dict = {item.get('label'): item.get('name') for item in label_list} + custom2=json.loads(data.get('custom2')) + # 提取比例并拼接 + train_val = f"{custom2['proportion1']}:{custom2['proportion2']}" + prepare_back_url=settings.TASK_CALL_BACK_URL + "PrepareCallBack/" + payload = { + 'trainid': train_id, + 'train_code': train_code, + 'dataset': dataset, + 'train_val': train_val, + 'train_labels': json.dumps(label_dict), + 'prepare_back_url':prepare_back_url + } + # 发送 POST 请求到 train_server + try: + auth_header = request.headers.get('Authorization') + token = auth_header.split(' ')[1] if ' ' in auth_header else auth_header + headers = { + "Authorization": f"Bearer {token}", + 'Content-Type': 'application/json' + } + response = requests.post(train_server, json=payload,headers=headers) + # 检查响应状态 + if response.status_code == 200: + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="0100" # 样本准备中 + ) + return Response({'message': '训练样本数据准备中!'}) + else: + return Response({'message': '训练样本数据准备失败!'}) + except requests.exceptions.RequestException as e: + return Response({'message': '训练样本数据准备失败!'}) + +def _legacy_collect_train_dataset_samples(train_id, link_datasets, annotate_type, train_labels, train_val_info, train_path): + # 1. 解析link_datasets + dataset_ids = link_datasets.split(',') + + # 2. 查询AiDatasetSample + samples = annotate_queryset_with_annotation_content(AiDatasetSample.objects.filter( + status='02', + dataset_id__in=dataset_ids + )).values( + 'id', + 'saved_path', + 'saved_filename', + 'annotation_content' + ) + + # 3. 分割训练集和验证集 + total_samples = len(samples) + train_val = json.loads(train_val_info) + train_ratio = float(train_val.get("proportion1", 80)) / 100 + num_train = int(total_samples * train_ratio) + + # 随机打乱样本 + sample_list = list(samples) + random.shuffle(sample_list) + + train_samples = sample_list[:num_train] + val_samples = sample_list[num_train:] + + # 4. 创建目录结构 + train_images_dir = os.path.join(train_path, 'train', 'images') + train_labels_dir = os.path.join(train_path, 'train', 'labels') + val_images_dir = os.path.join(train_path, 'val', 'images') + val_labels_dir = os.path.join(train_path, 'val', 'labels') + + os.makedirs(train_images_dir, exist_ok=True) + os.makedirs(train_labels_dir, exist_ok=True) + os.makedirs(val_images_dir, exist_ok=True) + os.makedirs(val_labels_dir, exist_ok=True) + + # 5. 复制图片并生成标注文件 + def process_samples(samples, images_dir, labels_dir): + for sample in samples: + # 复制图片 + saved_path = sample['saved_path'] + saved_filename = sample['saved_filename'] + original_image_path = ensure_sample_local_copy(saved_path, saved_filename) + dest_image_path = os.path.join(images_dir, saved_filename) + shutil.copy2(original_image_path, dest_image_path) + + # 生成标注文件 + annotation_content = sample['annotation_content'] + create_annotation_txtfile( + image_path=images_dir, + label_path=labels_dir, + image_name=saved_filename, + classes=json.loads(train_labels), + annotation=json.loads(annotation_content) + ) + + # 处理训练集样本 + process_samples(train_samples, train_images_dir, train_labels_dir) + # 处理验证集样本 + process_samples(val_samples, val_images_dir, val_labels_dir) + # 生成yaml配置文件 + train_classes = [cls["label"] for cls in json.loads(train_labels)] + generate_yaml_config(train_path, train_classes) + # 处理完成,返回成功 + return True + + +def collect_train_dataset_samples(link_datasets, annotate_type, train_labels, train_val_info, train_path): + dataset_ids = [item for item in str(link_datasets or "").split(',') if item] + annotation_field = 'polygon' if str(annotate_type or '').strip().lower() == 'polygon' else 'rectangle' + + samples = list( + AiDatasetSample.objects.filter( + status='02', + dataset_id__in=dataset_ids + ).exclude( + **{f'{annotation_field}__isnull': True} + ).exclude( + **{annotation_field: ''} + ).values( + 'id', + 'saved_path', + 'saved_filename', + annotation_field + ) + ) + + train_val = json.loads(train_val_info) if train_val_info else {} + train_ratio = float(train_val.get("proportion1", 80)) / 100 + train_ratio = max(0.0, min(train_ratio, 1.0)) + + random.shuffle(samples) + num_train = int(len(samples) * train_ratio) + train_samples = samples[:num_train] + val_samples = samples[num_train:] + + train_images_dir = os.path.join(train_path, 'train', 'images') + train_labels_dir = os.path.join(train_path, 'train', 'labels') + val_images_dir = os.path.join(train_path, 'val', 'images') + val_labels_dir = os.path.join(train_path, 'val', 'labels') + + os.makedirs(train_images_dir, exist_ok=True) + os.makedirs(train_labels_dir, exist_ok=True) + os.makedirs(val_images_dir, exist_ok=True) + os.makedirs(val_labels_dir, exist_ok=True) + + def process_samples(split_samples, images_dir, labels_dir): + for sample in split_samples: + saved_path = sample.get('saved_path') + saved_filename = sample.get('saved_filename') + if not saved_path or not saved_filename: + continue + original_image_path = ensure_sample_local_copy(train_path, saved_path, saved_filename) + if not os.path.exists(original_image_path): + continue + + dest_image_path = os.path.join(images_dir, saved_filename) + shutil.copy2(original_image_path, dest_image_path) + + annotation_content = _resolve_training_annotation_content(sample, annotation_field) + annotations = _build_xml_annotations(annotation_content, annotation_field, dest_image_path) + create_annotation_txtfile( + image_path=images_dir, + label_path=labels_dir, + image_name=saved_filename, + classes=json.loads(train_labels), + annotation=annotations + ) + + process_samples(train_samples, train_images_dir, train_labels_dir) + process_samples(val_samples, val_images_dir, val_labels_dir) + + labels = json.loads(train_labels) if train_labels else [] + train_classes = [ + cls["label"] for cls in labels + if isinstance(cls, dict) and cls.get("label") + ] + generate_yaml_config(train_path, train_classes) + return True + +def collect_train_dataset_voctococo(link_datasets, train_labels, train_val_info, json_save_dir): + """ + 根据AiDatasetSample表和标签配置,生成COCO格式的json数据集。 + 不会复制图片,只生成coco.json,图片路径可自定义。 + """ + # 1. 解析数据集id + dataset_ids = link_datasets.split(',') + + # 2. 查询样本 + samples = annotate_queryset_with_annotation_content(AiDatasetSample.objects.filter( + status='02', + dataset_id__in=dataset_ids + )).values( + 'id', + 'saved_path', + 'saved_filename', + 'annotation_content' + ) + + # 3. 划分训练/验证集 + total_samples = len(samples) + train_val = json.loads(train_val_info) + train_ratio = float(train_val.get("proportion1", 80)) / 100 + num_train = int(total_samples * train_ratio) + + # 随机打乱 + sample_list = list(samples) + random.shuffle(sample_list) + train_samples = sample_list[:num_train] + val_samples = sample_list[num_train:] + train_images_dir = os.path.join(json_save_dir, 'train', 'images') + val_images_dir = os.path.join(json_save_dir, 'val', 'images') + output_dir = os.path.join(json_save_dir, 'output') + os.makedirs(output_dir, exist_ok=True) + os.makedirs(train_images_dir, exist_ok=True) + os.makedirs(val_images_dir, exist_ok=True) + # 4. 加载类别 + classes_info = json.loads(train_labels) # [{"id": 0, "label": "cat"}, ...] + CLASSES = [item["label"] for item in classes_info] + template_dir='../algorithm/DFINE/configs/dfine' + def samples_to_coco(samples,images_dir,coco_json_path): + images = [] + annotations = [] + image_id = 1 + annotation_id = 1 + for sample in tqdm(samples): + saved_path = sample['saved_path'] + saved_filename = sample['saved_filename'] + file_name = saved_filename + src_img_path = ensure_sample_local_copy(saved_path, saved_filename) + dst_img_path = os.path.join(images_dir, saved_filename) + + # 复制图片 + if not os.path.exists(dst_img_path): + shutil.copy2(src_img_path, dst_img_path) + + xml_name = os.path.splitext(saved_filename)[0] + '.xml' + xml_path = ensure_sidecar_local_copy(saved_path, saved_filename, ".xml") + if not os.path.exists(xml_path): + print(f"Warning: xml not found for {file_name}, skipped") + continue + try: + tree = ET.parse(xml_path) + root = tree.getroot() + size = root.find('size') + width = int(size.find('width').text) + height = int(size.find('height').text) + except Exception as e: + print(f"Error parsing {xml_path}: {e}") + continue + + images.append({ + "file_name": file_name, + "height": height, + "width": width, + "id": image_id + }) + + for obj in root.findall('object'): + name = obj.find('name').text + if name not in CLASSES: + continue + category_id = CLASSES.index(name) + 1 + bndbox = obj.find('bndbox') + xmin = int(float(bndbox.find('xmin').text)) + ymin = int(float(bndbox.find('ymin').text)) + xmax = int(float(bndbox.find('xmax').text)) + ymax = int(float(bndbox.find('ymax').text)) + w = xmax - xmin + h = ymax - ymin + annotations.append({ + "id": annotation_id, + "image_id": image_id, + "category_id": category_id, + "bbox": [xmin, ymin, w, h], + "area": w * h, + "iscrowd": 0, + "segmentation": [] + }) + annotation_id += 1 + + image_id += 1 + + # 类别 + categories = [] + for idx, name in enumerate(CLASSES): + categories.append({ + "id": idx + 1, + "name": name, + "supercategory": "none" + }) + + coco_format = { + "images": images, + "type": "instances", + "annotations": annotations, + "categories": categories + } + with open(coco_json_path, 'w', encoding='utf-8') as f: + json.dump(coco_format, f, ensure_ascii=False, indent=4) + print(f"保存COCO文件到: {coco_json_path}") + + def generate_dfine_config_files(json_save_dir, class_names): + script_dir = os.path.dirname(os.path.abspath(__file__)) + template_dir = os.path.join(script_dir, "..", "algorithm", "DFINE", "configs", "dfine") + coco_detection_template = os.path.join(script_dir, "..", "algorithm", "DFINE", "configs", "dataset", + "coco_detection.yml") + save_dir = os.path.join(json_save_dir, "config") + train_json = os.path.join(json_save_dir, "train", "train_coco.json") + val_json = os.path.join(json_save_dir, "val", "val_coco.json") + train_images = os.path.join(json_save_dir, "train", "images") + val_images = os.path.join(json_save_dir, "val", "images") + data_root = train_images + + # 1. 处理 coco_detection.yml + if os.path.exists(coco_detection_template): + with open(coco_detection_template, 'r', encoding='utf-8') as f: + coco_detection_data = yaml.safe_load(f) + + # 替换字段 + def replace_coco_detection_fields(d): + if isinstance(d, dict): + for k, v in d.items(): + if k == "num_classes": + d[k] = len(class_names) + elif k == "train_dataloader" and isinstance(v, dict): + dataset = v.get("dataset", {}) + if isinstance(dataset, dict): + dataset["img_folder"] = train_images + dataset["ann_file"] = train_json + elif k == "val_dataloader" and isinstance(v, dict): + dataset = v.get("dataset", {}) + if isinstance(dataset, dict): + dataset["img_folder"] = val_images + dataset["ann_file"] = val_json + elif k in ["classes", "class_names"]: + d[k] = class_names + else: + replace_coco_detection_fields(v) + elif isinstance(d, list): + for v in d: + replace_coco_detection_fields(v) + + replace_coco_detection_fields(coco_detection_data) + os.makedirs(save_dir, exist_ok=True) + coco_detection_save_path = os.path.join(save_dir, "coco_detection.yml") + with open(coco_detection_save_path, 'w', encoding='utf-8') as f: + yaml.dump(coco_detection_data, f, allow_unicode=True, sort_keys=False) + print(f"已生成新配置文件:{coco_detection_save_path}") + else: + print(f"模板文件不存在: {coco_detection_template}") + + # 2. 处理其余的 dfine_hgnetv2_*.yml + template_files = [ + "dfine_hgnetv2_l_coco.yml", + "dfine_hgnetv2_m_coco.yml", + "dfine_hgnetv2_n_coco.yml", + "dfine_hgnetv2_s_coco.yml", + "dfine_hgnetv2_x_coco.yml" + ] + for template_name in template_files: + template_path = os.path.join(template_dir, template_name) + if not os.path.exists(template_path): + print(f"模板文件不存在: {template_path}") + continue + with open(template_path, 'r', encoding='utf-8') as f: + yml_data = yaml.safe_load(f) + + # 替换__include__和output_dir + def replace_includes_and_output(d): + if isinstance(d, dict): + for k, v in d.items(): + if k == "__include__" and isinstance(v, list): + new_list = [] + for inc in v: + # 只替换coco_detection.yml的路径为本次生成的config/coco_detection.yml + if "coco_detection.yml" in inc: + new_list.append(os.path.join(save_dir, "coco_detection.yml")) + elif "runtime.yml" in inc: + new_list.append(os.path.join(script_dir, "..", "algorithm", "DFINE", "configs", "runtime.yml")) + elif "dataloader.yml" in inc: + new_list.append(os.path.join(script_dir, "..", "algorithm", "DFINE", "configs", "dfine","include", "dataloader.yml")) + elif "optimizer.yml" in inc: + new_list.append(os.path.join(script_dir, "..", "algorithm", "DFINE", "configs", "dfine","include", "optimizer.yml")) + elif "dfine_hgnetv2.yml" in inc: + new_list.append(os.path.join(script_dir, "..", "algorithm", "DFINE", "configs", "dfine","include", "dfine_hgnetv2.yml")) + else: + new_list.append(inc) + d[k] = new_list + elif k == "output_dir": + # 你可以自定义output_dir,建议放到当前config的output文件夹 + d[k] = os.path.join(json_save_dir, "output") + else: + replace_includes_and_output(v) + elif isinstance(d, list): + for v in d: + replace_includes_and_output(v) + + replace_includes_and_output(yml_data) + + save_path = os.path.join(save_dir, template_name) + with open(save_path, 'w', encoding='utf-8') as f: + yaml.dump(yml_data, f, allow_unicode=True, sort_keys=False) + print(f"已生成新配置文件:{save_path}") + + + os.makedirs(json_save_dir, exist_ok=True) + samples_to_coco(train_samples, os.path.join(json_save_dir,'train','images'),os.path.join(json_save_dir,'train', 'train_coco.json')) + samples_to_coco(val_samples, os.path.join(json_save_dir,'val','images'),os.path.join(json_save_dir,'val', 'val_coco.json')) + generate_dfine_config_files(json_save_dir,CLASSES) + print("COCO数据集json生成完毕,不拷贝图片") + return True + + +def collect_train_dataset_segmentation(link_datasets, train_labels, train_val_info, train_path): + import base64 + try: + import numpy as np + except Exception: + np = None + try: + import cv2 + except Exception: + cv2 = None + + if np is None or cv2 is None: + raise ImportError("语义分割样本准备需要安装 numpy 与 opencv-python") + + dataset_ids = link_datasets.split(',') + samples = annotate_queryset_with_annotation_content(AiDatasetSample.objects.filter( + status='02', + dataset_id__in=dataset_ids + )).values( + 'id', + 'saved_path', + 'saved_filename', + 'annotation_content' + ) + + total_samples = len(samples) + train_val = json.loads(train_val_info) + train_ratio = float(train_val.get("proportion1", 80)) / 100 + num_train = int(total_samples * train_ratio) + + sample_list = list(samples) + random.shuffle(sample_list) + train_samples = sample_list[:num_train] + val_samples = sample_list[num_train:] + + images_train_dir = os.path.join(train_path, 'images', 'train') + images_val_dir = os.path.join(train_path, 'images', 'val') + masks_train_dir = os.path.join(train_path, 'masks', 'train') + masks_val_dir = os.path.join(train_path, 'masks', 'val') + os.makedirs(images_train_dir, exist_ok=True) + os.makedirs(images_val_dir, exist_ok=True) + os.makedirs(masks_train_dir, exist_ok=True) + os.makedirs(masks_val_dir, exist_ok=True) + + labels = json.loads(train_labels) if train_labels else [] + labels = labels if isinstance(labels, list) else [] + label_map = {"background": 0} + next_id = 1 + for item in labels: + if not isinstance(item, dict): + continue + lab = str(item.get("label") or "").strip() + if not lab or lab in label_map: + continue + label_map[lab] = next_id + next_id += 1 + + with open(os.path.join(train_path, "label_map.json"), "w", encoding="utf-8") as f: + f.write(json.dumps(label_map, ensure_ascii=False)) + + def _load_annotation_json(sample_row): + content = get_dataset_sample_annotation_from_row(sample_row) + if content: + try: + parsed = json.loads(content) + except Exception: + parsed = None + if isinstance(parsed, dict) and parsed.get("type") == "polygon" and parsed.get("json_path"): + p = str(parsed.get("json_path")) + abs_p = os.path.join(settings.FILESPACE_ROOT_PATH, p) + if os.path.exists(abs_p): + with open(abs_p, "r", encoding="utf-8") as f: + return json.loads(f.read()) + saved_path = sample_row.get("saved_path") + saved_filename = sample_row.get("saved_filename") + if saved_path and saved_filename: + abs_p = ensure_sidecar_local_copy(saved_path, saved_filename, ".json") + if os.path.exists(abs_p): + with open(abs_p, "r", encoding="utf-8") as f: + return json.loads(f.read()) + return None + + def _shapes_from_annotation_obj(obj): + if not obj: + return [] + if isinstance(obj, dict) and isinstance(obj.get("shapes"), list): + return obj.get("shapes") or [] + if isinstance(obj, list): + shapes = [] + for it in obj: + if not isinstance(it, dict): + continue + label = it.get("label") + region = it.get("region") + if not label or not isinstance(region, list) or len(region) < 3: + continue + if region and isinstance(region[0], (list, tuple)): + points = [] + for p in region: + if not isinstance(p, (list, tuple)) or len(p) != 2: + continue + try: + points.append([float(p[0]), float(p[1])]) + except Exception: + continue + if len(points) >= 3: + shapes.append({"label": str(label), "points": points}) + return shapes + return [] + + def _ensure_image_data_for_output(annotation_obj, image_abs_path, image_name): + if not isinstance(annotation_obj, dict): + annotation_obj = { + "version": "5.11.2", + "flags": {}, + "shapes": [], + } + if "imageData" not in annotation_obj or not annotation_obj.get("imageData"): + with open(image_abs_path, "rb") as f: + annotation_obj["imageData"] = base64.b64encode(f.read()).decode("utf-8") + annotation_obj["imagePath"] = image_name + if "imageHeight" not in annotation_obj or "imageWidth" not in annotation_obj: + img = cv2.imread(image_abs_path) + if img is not None: + h, w = img.shape[:2] + annotation_obj["imageHeight"] = int(h) + annotation_obj["imageWidth"] = int(w) + return annotation_obj + + def _process(split_samples, images_dir, masks_dir): + iterator = tqdm(split_samples) if tqdm is not None else split_samples + for sample in iterator: + saved_path = sample.get('saved_path') + saved_filename = sample.get('saved_filename') + if not saved_path or not saved_filename: + continue + src_img = ensure_sample_local_copy(saved_path, saved_filename) + if not os.path.exists(src_img): + continue + dst_img = os.path.join(images_dir, saved_filename) + shutil.copy2(src_img, dst_img) + + ann_obj = _load_annotation_json(sample) + shapes = _shapes_from_annotation_obj(ann_obj) + + img = cv2.imread(dst_img) + if img is None: + continue + h, w = img.shape[:2] + mask = np.zeros((h, w), dtype=np.uint8) + for sh in shapes: + if not isinstance(sh, dict): + continue + label = sh.get("label") + if label not in label_map: + continue + points = sh.get("points") + if not isinstance(points, list) or len(points) < 3: + continue + pts = np.array(points, dtype=np.int32) + cv2.fillPoly(mask, [pts], int(label_map[label])) + stem = os.path.splitext(saved_filename)[0] + cv2.imwrite(os.path.join(masks_dir, f"{stem}.png"), mask) + + ann_out = _ensure_image_data_for_output(ann_obj, dst_img, saved_filename) + ann_out["shapes"] = [ + { + "label": str(sh.get("label")), + "points": sh.get("points"), + "group_id": None, + "shape_type": "polygon", + "flags": {}, + "mask": None, + } + for sh in shapes + if isinstance(sh, dict) and sh.get("label") and isinstance(sh.get("points"), list) + ] + with open(os.path.join(images_dir, f"{stem}.json"), "w", encoding="utf-8") as f: + f.write(json.dumps(ann_out, ensure_ascii=False)) + + _process(train_samples, images_train_dir, masks_train_dir) + _process(val_samples, images_val_dir, masks_val_dir) + return True + + +def collect_train_dataset_yoloseg(link_datasets, train_labels, train_val_info, train_path): + dataset_ids = link_datasets.split(',') + samples = annotate_queryset_with_annotation_content(AiDatasetSample.objects.filter( + status='02', + dataset_id__in=dataset_ids + )).values( + 'id', + 'saved_path', + 'saved_filename', + 'annotation_content' + ) + + total_samples = len(samples) + train_val = json.loads(train_val_info) + train_ratio = float(train_val.get("proportion1", 80)) / 100 + num_train = int(total_samples * train_ratio) + + sample_list = list(samples) + random.shuffle(sample_list) + train_samples = sample_list[:num_train] + val_samples = sample_list[num_train:] + + train_images_dir = os.path.join(train_path, 'train', 'images') + train_labels_dir = os.path.join(train_path, 'train', 'labels') + val_images_dir = os.path.join(train_path, 'val', 'images') + val_labels_dir = os.path.join(train_path, 'val', 'labels') + os.makedirs(train_images_dir, exist_ok=True) + os.makedirs(train_labels_dir, exist_ok=True) + os.makedirs(val_images_dir, exist_ok=True) + os.makedirs(val_labels_dir, exist_ok=True) + + classes = json.loads(train_labels) if train_labels else [] + classes = classes if isinstance(classes, list) else [] + class_to_index = {} + train_class_names = [] + for idx, item in enumerate(classes): + if not isinstance(item, dict): + continue + label = str(item.get("label") or "").strip() + if not label: + continue + class_to_index[label] = idx + train_class_names.append(label) + + def _load_annotation_json(sample_row): + content = get_dataset_sample_annotation_from_row(sample_row) + if content: + try: + parsed = json.loads(content) + except Exception: + parsed = None + if isinstance(parsed, dict) and parsed.get("type") == "polygon" and parsed.get("json_path"): + p = str(parsed.get("json_path")) + abs_p = os.path.join(settings.FILESPACE_ROOT_PATH, p) + if os.path.exists(abs_p): + with open(abs_p, "r", encoding="utf-8") as f: + return json.loads(f.read()) + if isinstance(parsed, list): + return parsed + if isinstance(parsed, dict) and isinstance(parsed.get("shapes"), list): + return parsed + saved_path = sample_row.get("saved_path") + saved_filename = sample_row.get("saved_filename") + if saved_path and saved_filename: + abs_p = ensure_sidecar_local_copy(saved_path, saved_filename, ".json") + if os.path.exists(abs_p): + with open(abs_p, "r", encoding="utf-8") as f: + return json.loads(f.read()) + return None + + def _shapes_from_annotation_obj(obj): + if not obj: + return [] + if isinstance(obj, dict) and isinstance(obj.get("shapes"), list): + return obj.get("shapes") or [] + if isinstance(obj, list): + shapes = [] + for it in obj: + if not isinstance(it, dict): + continue + label = it.get("label") + region = it.get("region") + if not label or not isinstance(region, list) or len(region) < 3: + continue + if region and isinstance(region[0], (list, tuple)): + points = [] + for p in region: + if not isinstance(p, (list, tuple)) or len(p) != 2: + continue + try: + points.append([float(p[0]), float(p[1])]) + except Exception: + continue + if len(points) >= 3: + shapes.append({"label": str(label), "points": points}) + return shapes + return [] + + def _process(split_samples, images_dir, labels_dir): + iterator = tqdm(split_samples) if tqdm is not None else split_samples + for sample in iterator: + saved_path = sample.get('saved_path') + saved_filename = sample.get('saved_filename') + if not saved_path or not saved_filename: + continue + src_img = ensure_sample_local_copy(saved_path, saved_filename) + if not os.path.exists(src_img): + continue + dst_img = os.path.join(images_dir, saved_filename) + shutil.copy2(src_img, dst_img) + + try: + with Image.open(dst_img) as img: + image_width, image_height = img.size + except Exception: + continue + if image_width <= 0 or image_height <= 0: + continue + + ann_obj = _load_annotation_json(sample) + shapes = _shapes_from_annotation_obj(ann_obj) + stem = os.path.splitext(saved_filename)[0] + txt_path = os.path.join(labels_dir, f"{stem}.txt") + lines = [] + for sh in shapes: + if not isinstance(sh, dict): + continue + label = str(sh.get("label") or "").strip() + if label not in class_to_index: + continue + points = sh.get("points") + if not isinstance(points, list) or len(points) < 3: + continue + normalized = [] + for point in points: + if not isinstance(point, (list, tuple)) or len(point) != 2: + continue + try: + x = float(point[0]) / float(image_width) + y = float(point[1]) / float(image_height) + except Exception: + continue + x = min(max(x, 0.0), 1.0) + y = min(max(y, 0.0), 1.0) + normalized.append(f"{x:.6f}") + normalized.append(f"{y:.6f}") + if len(normalized) < 6: + continue + lines.append(f"{class_to_index[label]} " + " ".join(normalized)) + + with open(txt_path, 'w', encoding='utf-8') as f: + if lines: + f.write("\n".join(lines) + "\n") + os.chmod(txt_path, 0o777) + + _process(train_samples, train_images_dir, train_labels_dir) + _process(val_samples, val_images_dir, val_labels_dir) + generate_yaml_config(train_path, train_class_names) + return True + +def create_annotation_txtfile(image_path: str, label_path: str, image_name: str, classes: list, annotation: list): + """ + 创建 YOLO 格式标注 .txt 文件,归一化为中心点坐标和宽高。 + 支持两种标注格式: + - region: [xmin, ymin, xmax, ymax](原始格式) + - xmin/ymin/xmax/ymax 独立字段(来自 _build_xml_annotations) + """ + image_path_full = os.path.join(image_path, image_name) + try: + with Image.open(image_path_full) as img: + image_width, image_height = img.size + except Exception as e: + print(f"无法打开图片 {image_name}: {e}") + return + + image_name_without_ext = os.path.splitext(image_name)[0] + txt_file_path = os.path.join(label_path, f"{image_name_without_ext}.txt") + + # 构建 label → index 映射 + label_to_index = { + item['label']: i + for i, item in enumerate(classes) + if isinstance(item, dict) and item.get('label') + } + + with open(txt_file_path, 'w') as file: + for annot in annotation or []: + label = annot.get('label', '') + class_index = label_to_index.get(label, -1) + if class_index == -1: + print(f"警告:没有找到类别 {label} 对应的索引!") + continue + + # 兼容两种坐标格式 + region = annot.get('region') + if region is not None and isinstance(region, (list, tuple)) and len(region) == 4: + x_min, y_min, x_max, y_max = map(float, region) + else: + x_min = float(annot.get('xmin', 0)) + y_min = float(annot.get('ymin', 0)) + x_max = float(annot.get('xmax', 0)) + y_max = float(annot.get('ymax', 0)) + + # 归一化坐标(中心点和宽高) + x_center = ((x_min + x_max) / 2) / image_width + y_center = ((y_min + y_max) / 2) / image_height + width = (x_max - x_min) / image_width + height = (y_max - y_min) / image_height + # 构建文件行 + line = f"{class_index} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}\n" + file.write(line) + os.chmod(txt_file_path, 0o777) + + +def _load_json_file(file_path: str): + try: + with open(file_path, "r", encoding="utf-8") as f: + return json.loads(f.read()) + except Exception: + return None + + +def _resolve_training_annotation_content(sample_row: dict, annotation_field: str): + raw = sample_row.get(annotation_field) + if not raw: + return None + try: + parsed = json.loads(raw) if isinstance(raw, str) else raw + except Exception: + return None + + if annotation_field == "polygon": + if isinstance(parsed, dict) and parsed.get("type") == "polygon" and parsed.get("json_path"): + json_path = os.path.join(settings.FILESPACE_ROOT_PATH, str(parsed.get("json_path"))) + loaded = _load_json_file(json_path) + if loaded is not None: + return loaded + if isinstance(parsed, dict) and parsed.get("shapes"): + return parsed + if isinstance(parsed, list): + return parsed + saved_path = sample_row.get("saved_path") + saved_filename = sample_row.get("saved_filename") + if saved_path and saved_filename: + sidecar_json = ensure_sidecar_local_copy(saved_path, saved_filename, ".json") + loaded = _load_json_file(sidecar_json) + if loaded is not None: + return loaded + return parsed + + +def _normalize_bbox(xmin, ymin, xmax, ymax, image_width, image_height): + try: + xmin = float(xmin) + ymin = float(ymin) + xmax = float(xmax) + ymax = float(ymax) + except Exception: + return None + + left = max(0.0, min(xmin, xmax)) + top = max(0.0, min(ymin, ymax)) + right = min(float(image_width), max(xmin, xmax)) + bottom = min(float(image_height), max(ymin, ymax)) + if right <= left or bottom <= top: + return None + return { + "xmin": int(round(left)), + "ymin": int(round(top)), + "xmax": int(round(right)), + "ymax": int(round(bottom)), + } + + +def _build_xml_annotations(annotation_content, annotation_field: str, image_path: str): + try: + with Image.open(image_path) as img: + image_width, image_height = img.size + except Exception: + return [] + + if not annotation_content: + return [] + + shapes = annotation_content.get("shapes") if isinstance(annotation_content, dict) else annotation_content + if not isinstance(shapes, list): + return [] + + annotations = [] + for item in shapes: + if not isinstance(item, dict): + continue + label = str(item.get("label") or "").strip() + if not label: + continue + + bbox = None + if annotation_field == "polygon": + points = item.get("points") + if points is None: + points = item.get("region") + if not isinstance(points, list) or len(points) < 3: + continue + xs = [] + ys = [] + for point in points: + if not isinstance(point, (list, tuple)) or len(point) < 2: + continue + try: + xs.append(float(point[0])) + ys.append(float(point[1])) + except Exception: + continue + if len(xs) < 3 or len(ys) < 3: + continue + bbox = _normalize_bbox(min(xs), min(ys), max(xs), max(ys), image_width, image_height) + else: + region = item.get("region") + if isinstance(region, list) and len(region) == 4 and not isinstance(region[0], (list, tuple)): + bbox = _normalize_bbox(region[0], region[1], region[2], region[3], image_width, image_height) + else: + points = item.get("points") + if isinstance(points, list) and len(points) >= 2: + p1 = points[0] + p2 = points[1] + if isinstance(p1, (list, tuple)) and isinstance(p2, (list, tuple)) and len(p1) >= 2 and len(p2) >= 2: + bbox = _normalize_bbox(p1[0], p1[1], p2[0], p2[1], image_width, image_height) + + if bbox is None: + continue + annotations.append({ + "label": label, + **bbox, + }) + return annotations + + +def create_annotation_xmlfile(image_path: str, label_path: str, image_name: str, annotation: list): + try: + with Image.open(image_path) as img: + image_width, image_height = img.size + image_depth = len(img.getbands()) + except Exception as e: + print(f"无法打开图片 {image_name}: {e}") + return + + root = ET.Element("annotation") + ET.SubElement(root, "folder").text = os.path.basename(os.path.dirname(image_path)) + ET.SubElement(root, "filename").text = image_name + ET.SubElement(root, "path").text = image_path.replace("\\", "/") + + source = ET.SubElement(root, "source") + ET.SubElement(source, "database").text = "Unknown" + + size = ET.SubElement(root, "size") + ET.SubElement(size, "width").text = str(image_width) + ET.SubElement(size, "height").text = str(image_height) + ET.SubElement(size, "depth").text = str(image_depth) + ET.SubElement(root, "segmented").text = "0" + + for annot in annotation or []: + obj = ET.SubElement(root, "object") + ET.SubElement(obj, "name").text = str(annot.get("label") or "") + ET.SubElement(obj, "pose").text = "Unspecified" + ET.SubElement(obj, "truncated").text = "0" + ET.SubElement(obj, "difficult").text = "0" + bndbox = ET.SubElement(obj, "bndbox") + ET.SubElement(bndbox, "xmin").text = str(int(annot.get("xmin", 0))) + ET.SubElement(bndbox, "ymin").text = str(int(annot.get("ymin", 0))) + ET.SubElement(bndbox, "xmax").text = str(int(annot.get("xmax", 0))) + ET.SubElement(bndbox, "ymax").text = str(int(annot.get("ymax", 0))) + + tree = ET.ElementTree(root) + try: + ET.indent(tree, space=" ") + except Exception: + pass + + image_name_without_ext = os.path.splitext(image_name)[0] + xml_file_path = os.path.join(label_path, f"{image_name_without_ext}.xml") + tree.write(xml_file_path, encoding="utf-8", xml_declaration=True) + os.chmod(xml_file_path, 0o777) + +def generate_yaml_config(train_path: str, train_classes: list): + config = { + "path": train_path.replace("\\", "/"), + "train": "train", + "val": "val", + "nc": len(train_classes), + "names": train_classes + } + yaml_file = os.path.join(train_path, "yolo_config.yaml") + with open(yaml_file, "w") as f: + yaml.dump(config, f, default_flow_style=False, allow_unicode=True) + os.chmod(yaml_file, 0o777) + return True + + +def _decode_log_bytes(data: bytes) -> str: + enc = locale.getpreferredencoding(False) or "utf-8" + try: + return data.decode(enc, errors="ignore") + except Exception: + return data.decode("utf-8", errors="ignore") + + +def send_to_websocket(channel_layer, group_name, message): + if isinstance(message, (dict, list)): + message = json.dumps(message,ensure_ascii=False) + async_to_sync(channel_layer.group_send)( + group_name, + {"type": "send_log", "message": message} + ) +def is_valid_json(line): + """ + 检查给定的字符串是否是有效的 JSON 格式。 + :param line: 字符串 + :return: 是否为有效的 JSON + """ + try: + json.loads(line) # 尝试解析字符串 + return True + except ValueError: + return False +def stream_old_logs_to_frontend(channel_layer, group_name, stop_event, log_file): + """ + 实时读取日志内容并发送到前端. + :param stop_event: 停止标志 + :param log_file: 日志文件路径 + """ + try: + with open(log_file, "rb") as f: + data = f.read() + if not data: + return + text = _decode_log_bytes(data) + for line in text.splitlines(): + line = line.strip() + if not line: + continue + if is_valid_json(line): + try: + send_to_websocket(channel_layer, group_name, line) + except Exception as e: + send_to_websocket(channel_layer, group_name, {"type": "error", "text": f"JSON 解析错误: {str(e)}"}) + else: + send_to_websocket(channel_layer, group_name, {"type": "waiting", "text": line}) + except FileNotFoundError: + # 日志文件尚未创建时的容错处理 + async_to_sync(channel_layer.group_send)( + group_name, + { + "type": "send_log", + "message": json.dumps( + {"type": "error", "text": "日志文件未找到,请稍后重试!"}, + ensure_ascii=False, + ), + }, + ) + except Exception as e: + async_to_sync(channel_layer.group_send)( + group_name, + { + "type": "send_log", + "message": json.dumps( + {"type": "error", "text": f"日志流式传输错误:{str(e)}"}, + ensure_ascii=False, + ), + }, + ) + +def stream_logs_to_frontend(channel_layer, group_name, stop_event, log_file): + """ + 实时读取日志内容并发送到前端. + :param channel_layer: 通道层实例 + :param group_name: 组名,用于分发消息 + :param stop_event: 停止标志 + :param log_file: 日志文件路径 + """ + try: + def _send_line(line_text: str): + line_text = (line_text or "").strip() + if not line_text: + return + if is_valid_json(line_text): + try: + send_to_websocket(channel_layer, group_name, line_text) + except Exception as e: + send_to_websocket(channel_layer, group_name, {"type": "error", "text": f"JSON 解析错误: {str(e)}"}) + else: + send_to_websocket(channel_layer, group_name, {"type": "waiting", "text": line_text}) + + with open(log_file, "rb") as f: + f.seek(0, os.SEEK_END) + buf = b"" + last_send_ts = 0.0 + while not stop_event.is_set(): + chunk = f.read(4096) + if not chunk: + time.sleep(0.2) + continue + buf += chunk + while True: + rn = buf.find(b"\r") + nn = buf.find(b"\n") + if rn == -1 and nn == -1: + break + if rn == -1: + cut = nn + delim = b"\n" + elif nn == -1: + cut = rn + delim = b"\r" + else: + cut = rn if rn < nn else nn + delim = b"\r" if rn < nn else b"\n" + raw = buf[:cut] + buf = buf[cut + 1 :] + if delim == b"\r" and buf.startswith(b"\n"): + buf = buf[1:] + if not raw: + continue + now_ts = time.time() + if now_ts - last_send_ts < 0.15: + continue + last_send_ts = now_ts + _send_line(_decode_log_bytes(raw)) + except FileNotFoundError: + # 日志文件尚未创建时的容错处理 + async_to_sync(channel_layer.group_send)( + group_name, + { + "type": "send_log", + "message": json.dumps( + {"type": "error", "text": "日志文件未找到,请稍后重试!"}, + ensure_ascii=False, + ), + }, + ) + except Exception as e: + async_to_sync(channel_layer.group_send)( + group_name, + { + "type": "send_log", + "message": json.dumps( + {"type": "error", "text": f"日志流式传输错误:{str(e)}"}, + ensure_ascii=False, + ), + }, + ) + +def remove_ansi_escape_sequences(log_line): + ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') + return ansi_escape.sub('', log_line) +#启动远程训练 +def train_remote_algorithm(train_id): + try: + # 获取训练记录 + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + train_params = json.loads(ai_train.train_params) + params = {item['param_name']: item['param_value'] for item in train_params} + task_call_back_url = settings.TASK_CALL_BACK_URL+"TrainCallBack/" + train_server = "http://"+ai_train.train_server+"/train" + payload = { + 'trainid': ai_train.id, + 'traincode': ai_train.train_code, + 'callparams': task_call_back_url, + 'trainparams': json.dumps(params), + 'train_labels':json.dumps(ai_train.train_labels), + 'train_title':ai_train.train_title, + 'custom2': ai_train.custom2, + 'custom1': ai_train.custom1 + } + headers = { + 'Content-Type': 'application/json' + } + response = requests.post(train_server, json=payload, headers=headers) + # 检查响应状态 + if response.status_code == 200: + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="0200" # 训练中 + ) + return Response({'message': '训练样本数据准备完成!'}) + else: + return Response({'message': '训练样本数据准备失败!'}) + + + except Exception as e: + print(e) + +def update_dfine_configs(config_dir, params): + """ + 自动修改config_dir下的coco_detection.yml和dfine_hgnetv2_x_coco.yml配置文件里的训练参数 + :param config_dir: 配置文件所在目录 + :param params: 训练参数字典,如 device/epochs/imgsz/stop_epoch/num_workers + """ + # coco_detection.yml + coco_file = os.path.join(config_dir, "coco_detection.yml") + if os.path.exists(coco_file): + with open(coco_file, 'r', encoding='utf-8') as f: + yml = yaml.safe_load(f) + # num_workers通常在train_dataloader/val_dataloader下 + for section in ["train_dataloader", "val_dataloader"]: + if section in yml: + if 'num_workers' in yml[section]: + yml[section]['num_workers'] = int(params.get('num_workers', yml[section]['num_workers'])) + with open(coco_file, 'w', encoding='utf-8') as f: + yaml.dump(yml, f, allow_unicode=True, sort_keys=False) + print(f"[修改配置] {coco_file} 完成") + + # dfine_hgnetv2_x_coco.yml + for name in os.listdir(config_dir): + if name.startswith("dfine_hgnetv2_") and name.endswith("_coco.yml"): + file_path = os.path.join(config_dir, name) + with open(file_path, 'r', encoding='utf-8') as f: + yml = yaml.safe_load(f) + # 常见训练参数 + if 'epochs' in params: + yml['epochs'] = int(params['epochs']) + if 'stop_epoch' in params: + yml['stop_epoch'] = int(params['stop_epoch']) + if 'imgsz' in params: + yml['imgsz'] = int(params['imgsz']) + if 'device' in params: + yml['device'] = params['device'] + # output_dir常常自定义,可用原有值或指定你的输出路径 + if 'output_dir' in yml and 'output_dir' in params: + yml['output_dir'] = params['output_dir'] + with open(file_path, 'w', encoding='utf-8') as f: + yaml.dump(yml, f, allow_unicode=True, sort_keys=False) + print(f"[修改配置] {file_path} 完成") +def train_algorithm_dfine(train_id): + """ + 训练DFINE模型(支持实时日志、WebSocket、日志目录、配置文件参数自动写入) + """ + try: + # 获取训练记录 + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + train_params = json.loads(ai_train.train_params) + params = {item['param_name']: item['param_value'] for item in train_params} + + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join( + filespace_root_path, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + 'trains', + ai_train.train_code + ) + # 配置文件路径 + config_dir = os.path.join(train_path, "config") + model_path = next((item['param_value'] for item in train_params if item['param_name'] == 'model'), None) + if not model_path: + raise ValueError("训练参数中缺少 'model' 字段,请检查训练配置!") + model_path = os.path.join(config_dir, model_path) + # 项目目录 + project_path = os.path.join(train_path, "output") + run_name = "train" + + # 确保训练目录存在且为空 + if os.path.exists(project_path): + shutil.rmtree(project_path) + os.makedirs(project_path, exist_ok=True) + print('日志目录', project_path) + log_file_path = os.path.join(project_path, f"{run_name}.log") + if os.path.exists(log_file_path): + os.remove(log_file_path) + with open(log_file_path, 'w', encoding='utf-8') as log_file: + log_file.write("") + os.chmod(log_file_path, 0o777) + + # ---------- 自动修改配置文件 ---------- + update_dfine_configs(config_dir, params) + # return Response({'message': '训练开始!'}) + # ---------- 组装D-FINE训练命令 ---------- + parent_dir = os.path.dirname(os.path.dirname(__file__)) + # 假设你用的是 train.py + train_script = os.path.join(parent_dir,'algorithm', 'DFINE', 'train.py') + command = [ + sys.executable, + train_script, + '-c', model_path, + '--device', params.get('device', 'cpu'), + '--seed', str(params.get('seed', 0)), + '--trainid', ai_train.id, + '--project_path', project_path, + ] + # # D-FINE通常主配置里控制epochs、imgsz等,如果需要命令行再带,也可加 + # if 'epochs' in params: + # command += ['--epochs', str(params['epochs'])] + # if 'imgsz' in params: + # command += ['--imgsz', str(params['imgsz'])] + # if 'stop_epoch' in params: + # command += ['--stop_epoch', str(params['stop_epoch'])] + # if 'num_workers' in params: + # command += ['--num_workers', str(params['num_workers'])] + + print("训练命令:", " ".join(command)) + + try: + # 执行训练脚本 + _launch_training_process(train_id, command, log_file_path) + except Exception as e: + print(f"Unexpected error: {e}") + except Exception as e: + print(e) + # send_to_websocket(channel_layer, group_name, f"Error: {str(e)}\n") +def train_algorithm(train_id): + """ + 训练算法模型。 + + 根据给定的训练ID,加载训练参数和数据集,然后启动训练过程。 + 训练过程中,通过WebSocket实时向前端发送训练日志和结果。 + 训练完成后,保存模型和训练结果,并生成训练报告。 + + 参数:startAlgorithmTrainstartAlgorithmTrain + - train_id: int, 训练记录的ID。 + + 返回值: + 无 + """ + try: + # 获取训练记录 + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + train_params = json.loads(ai_train.train_params) + params = {item['param_name']: item['param_value'] for item in train_params} + + # 设置路径 + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join( + filespace_root_path, + ai_train.train_code + ) + model_path = next((item['param_value'] for item in train_params if item['param_name'] == 'model'), "yolo11n.pt") + dataset_path = os.path.join(train_path, "yolo_config.yaml") + project_path = os.path.join(train_path, "runs") + run_name = "train" + + if model_path is None: + raise ValueError("训练参数中缺少 'model' 字段,请检查训练配置!") + + # 确保训练目录存在且为空 + if os.path.exists(project_path): + shutil.rmtree(project_path) + os.makedirs(project_path, exist_ok=True) + train_labels = json.loads(ai_train.train_labels) + print('日志目录',project_path) + log_file_path = os.path.join(project_path, f"{run_name}.log") + # 如果日志文件已存在,删除旧文件 + if os.path.exists(log_file_path): + os.remove(log_file_path) + + with open(log_file_path, 'w', encoding='utf-8') as log_file: + log_file.write("") + os.chmod(log_file_path, 0o777) + + from pathlib import Path + + apps_dir = Path(__file__).resolve().parents[2] + YoloTrainerUrl = str(apps_dir / "algorithms" / "algorithm" / "pytorch" / "YoloTrainer.py") + if not os.path.isfile(YoloTrainerUrl): + raise FileNotFoundError(f"YoloTrainer.py 不存在: {YoloTrainerUrl}") + command = [ + sys.executable, # 使用当前 Python 解释器 + "-u", + YoloTrainerUrl, # 训练脚本文件名 + '--model', model_path, + '--data', dataset_path, + '--project_path', project_path, + '--run_name', run_name, + '--epochs', str(params.get('epochs', 200)), + '--batch', str(params.get('batch', 8)), + '--imgsz', str(params.get('imgsz', 640)), + '--workers', str(params.get('workers', 4)), + '--device', params.get('device', 'cpu'), + '--trainid', ai_train.id + ] + + try: + ultralytics_config_dir = os.path.join(project_path, ".ultralytics") + os.makedirs(ultralytics_config_dir, exist_ok=True) + env = os.environ.copy() + env["YOLO_CONFIG_DIR"] = ultralytics_config_dir + _launch_training_process(train_id, command, log_file_path, env=env) + except Exception as e: + print(f"Unexpected error: {e}") + except Exception as e: + print(e) + # send_to_websocket(channel_layer, group_name, f"Error: {str(e)}\n") + + +def train_algorithm_yoloseg(train_id): + try: + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + train_params = json.loads(ai_train.train_params) + params = {item['param_name']: item['param_value'] for item in train_params} + + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join( + filespace_root_path, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + 'trains', + ai_train.train_code + ) + model_path = next((item['param_value'] for item in train_params if item['param_name'] == 'model'), None) + dataset_path = os.path.join(train_path, "yolo_config.yaml") + project_path = os.path.join(train_path, "runs") + run_name = "train" + + if model_path is None: + raise ValueError("训练参数中缺少 'model' 字段,请检查训练配置!") + + if os.path.exists(project_path): + shutil.rmtree(project_path) + os.makedirs(project_path, exist_ok=True) + log_file_path = os.path.join(project_path, f"{run_name}.log") + if os.path.exists(log_file_path): + os.remove(log_file_path) + with open(log_file_path, 'w', encoding='utf-8') as log_file: + log_file.write("") + os.chmod(log_file_path, 0o777) + + from pathlib import Path + apps_dir = Path(__file__).resolve().parents[2] + seg_trainer_path = str(apps_dir / "algorithms" / "algorithm" / "pytorch" / "YoloSegTrainer.py") + if not os.path.isfile(seg_trainer_path): + raise FileNotFoundError(f"YoloSegTrainer.py 不存在: {seg_trainer_path}") + + command = [ + sys.executable, + "-u", + seg_trainer_path, + '--model', model_path, + '--data', dataset_path, + '--project_path', project_path, + '--run_name', run_name, + '--epochs', str(params.get('epochs', 200)), + '--batch', str(params.get('batch', 8)), + '--imgsz', str(params.get('imgsz', 640)), + '--workers', str(params.get('workers', 4)), + '--device', params.get('device', '0'), + '--trainid', ai_train.id + ] + + try: + ultralytics_config_dir = os.path.join(project_path, ".ultralytics") + os.makedirs(ultralytics_config_dir, exist_ok=True) + env = os.environ.copy() + env["YOLO_CONFIG_DIR"] = ultralytics_config_dir + _launch_training_process(train_id, command, log_file_path, env=env) + except Exception as e: + print(f"Unexpected error: {e}") + except Exception as e: + print(e) + + +def train_algorithm_deeplab(train_id): + try: + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + train_params = json.loads(ai_train.train_params) + params = {item['param_name']: item['param_value'] for item in train_params} + + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join( + filespace_root_path, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + 'trains', + ai_train.train_code + ) + + dataset_path = train_path + project_path = os.path.join(train_path, "runs") + run_name = "train" + torch_home = params.get("torch_home") or os.path.join(train_path, "torch_cache") + pretrained = params.get("pretrained", "1") + pretrained_weights = params.get("pretrained_weights", "") + default_workers = 0 if os.name == "nt" else 4 + deeplab_workers = params.get("workers", default_workers) + + if os.path.exists(project_path): + shutil.rmtree(project_path) + os.makedirs(project_path, exist_ok=True) + os.makedirs(torch_home, exist_ok=True) + + log_file_path = os.path.join(project_path, f"{run_name}.log") + if os.path.exists(log_file_path): + os.remove(log_file_path) + with open(log_file_path, 'w', encoding='utf-8') as log_file: + log_file.write("") + os.chmod(log_file_path, 0o777) + + from pathlib import Path + apps_dir = Path(__file__).resolve().parents[2] + trainer_path = str(apps_dir / "algorithms" / "algorithm" / "pytorch" / "DeeplabTrainer.py") + if not os.path.isfile(trainer_path): + raise FileNotFoundError(f"DeeplabTrainer.py 不存在: {trainer_path}") + + if pretrained_weights and not os.path.isabs(str(pretrained_weights)): + pretrained_weights = os.path.join(train_path, str(pretrained_weights)) + + command = [ + sys.executable, + "-u", + trainer_path, + "--data", dataset_path, + "--project_path", project_path, + "--run_name", run_name, + "--epochs", str(params.get("epochs", 50)), + "--batch", str(params.get("batch", 4)), + "--imgsz", str(params.get("imgsz", 640)), + "--workers", str(deeplab_workers), + "--device", str(params.get("device", "cpu")), + "--lr_backbone", str(params.get("lr_backbone", 1e-4)), + "--lr_head", str(params.get("lr_head", 1e-3)), + "--weight_decay", str(params.get("weight_decay", 1e-4)), + "--pretrained", str(pretrained), + "--torch_home", str(torch_home), + "--trainid", ai_train.id, + ] + if pretrained_weights: + command += ["--pretrained_weights", str(pretrained_weights)] + + try: + env = os.environ.copy() + env["TORCH_HOME"] = str(torch_home) + _launch_training_process(train_id, command, log_file_path, env=env) + except Exception as e: + print(f"Unexpected error: {e}") + except Exception as e: + print(e) +#本地训练中方法 +def training_algorithm(train_id): + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + + train_path = os.path.join( + settings.FILESPACE_ROOT_PATH, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + "trains", + ai_train.train_code, + ) + run_name = "train" + if getattr(ai_algorithm, "algorithm_engine", None) == "02": + project_path = os.path.join(train_path, "output") + else: + project_path = os.path.join(train_path, "runs") + log_file_path = os.path.join(project_path, f"{run_name}.log") + + if not os.path.exists(log_file_path): + return + + channel_layer = get_channel_layer() + group_name = f"train_{train_id}" + + initial_size = os.path.getsize(log_file_path) + if initial_size <= 0: + return + + with open(log_file_path, "rb") as f: + buf = f.read(initial_size) + + for raw_line in buf.splitlines(): + line = _decode_log_bytes(raw_line).strip() + if not line: + continue + if is_valid_json(line): + send_to_websocket(channel_layer, group_name, line) + else: + send_to_websocket(channel_layer, group_name, {"type": "waiting", "text": line}) + +#远程训练中方法 +def training_remote_algorithm(train_id): + try: + # 获取训练记录 + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + train_params = json.loads(ai_train.train_params) + params = {item['param_name']: item['param_value'] for item in train_params} + task_call_back_url = settings.TASK_CALL_BACK_URL + train_server = "http://"+ai_train.train_server+"/training" + payload = { + 'trainid': ai_train.id, + 'traincode': ai_train.train_code + } + headers = { + 'Content-Type': 'application/json' + } + response = requests.post(train_server, json=payload, headers=headers) + # 检查响应状态 + if response.status_code == 200: + return Response({'message': '训练中!'}) + else: + return Response({'message': '训练失败!'}) + except Exception as e: + print(e) + + +# API 方法:启动训练 +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def start_algorithm_train(request): + try: + train_id = request.data.get('id') + if not train_id: + return Response({'error': '缺少参数:id'}, status=400) + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + process_info = training_processes.get(train_id) + if process_info and process_info.get("process") and process_info["process"].poll() is not None: + training_processes.pop(train_id, None) + process_info = None + # 如果已经处于训练中,则直接复用当前训练任务;日志回放由 websocket consumer 负责。 + if ai_train.record_status=="0200": + if process_info and process_info.get("process") and process_info["process"].poll() is None: + return Response({'message': '训练进行中!'}) + AiAlgorithmTrainRecords.objects.filter(id=train_id).update(record_status="01") + + # 更新训练记录 + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + model_trainresult="模型训练中!", + record_status="0200" + ) + if ai_train.train_type == "local": + # 创建线程并启动本地训练 + print('本地训练中') + if ai_algorithm.algorithm_engine=="01": + thread = threading.Thread(target=train_algorithm, args=(train_id,)) + thread.start() + elif ai_algorithm.algorithm_engine=="02": + thread = threading.Thread(target=train_algorithm_dfine, args=(train_id,)) + thread.start() + elif ai_algorithm.algorithm_engine=="03": + thread = threading.Thread(target=train_algorithm_deeplab, args=(train_id,)) + thread.start() + elif ai_algorithm.algorithm_engine=="04": + thread = threading.Thread(target=train_algorithm_yoloseg, args=(train_id,)) + thread.start() + else: + # 创建线程并启动远程训练 + if ai_algorithm.algorithm_engine == "01": + thread = threading.Thread(target=train_remote_algorithm, args=(train_id,)) + thread.start() + else: + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + model_trainresult="样本准备完成!", + record_status="01" + ) + return Response({'message': '当前类别的模型不支持远程训练!'}) + + return Response({'message': '训练启动成功!'}) + except Exception as e: + return Response({'error': '启动训练过程中发生错误', 'details': str(e)}, status=500) +def get_file_extension(filename): + _, file_extension = os.path.splitext(filename) + return file_extension.lower() if file_extension.lower() in ['.jpg', '.png'] else '.jpg' +# API 方法:启动训练 +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def close_train_model(request): + try: + train_id = request.query_params.get('train_id') + if not train_id: + return Response({'error': '缺少参数:id'}, status=400) + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + if ai_train.train_type=="local": + if train_id in training_processes: + process_info = training_processes[train_id] + process = process_info["process"] + stop_event=process_info["stop_event"] + stop_event.set() + _terminate_training_process(process) + # 清理训练进程记录 + training_processes.pop(train_id, None) + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="01" # 回滚到样本准备完成 + ) + return Response({'message': '训练记录终止成功!'}) + else: + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="01" # 回滚到样本准备完成 + ) + return Response({'message': '训练记录终止成功!'}) + else: + train_server = "http://" + ai_train.train_server + "/closetrain" + payload = { + 'trainid': ai_train.id, + 'traincode': ai_train.train_code + } + headers = { + 'Content-Type': 'application/json' + } + response = requests.post(train_server, json=payload, headers=headers) + # 检查响应状态 + if response.status_code == 200: + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="01" # 回滚到样本准备完成 + ) + return Response({'message': '训练记录终止成功!'}) + else: + return Response({'message': '训练记录终止失败!'}) + except Exception as e: + return Response({'error': '终止训练过程中发生错误', 'details': str(e)}, status=500) + +@api_view(['POST']) +@parser_classes([JSONParser, MultiPartParser, FormParser]) +def prepare_callback(request): + try: + # 获取 trainid 参数 + train_id = request.data.get('trainid') + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="01" # 修改成样本准备完成 + ) + return JsonResponse({"message": "File successfully uploaded and extracted"}, status=200) + except Exception as e: + return JsonResponse({"error": str(e)}, status=400) +# API 方法:远程训练回调方法 +@api_view(['POST']) +@parser_classes([MultiPartParser]) +def train_callback(request): + try: + # 获取 trainid 参数 + train_id = request.data.get('trainid') + file_data = request.data.get('file') + train_start_time=request.data.get('train_start_time') + train_end_time = request.data.get('train_end_time') + train_total_times = request.data.get('train_total_times') + # print(train_id) + # 获取训练记录 + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + train_params = json.loads(ai_train.train_params) + params = {item['param_name']: item['param_value'] for item in train_params} + + # 设置路径 + filespace_root_path = settings.FILESPACE_ROOT_PATH + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join( + filespace_root_path, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + 'trains', + ai_train.train_code + ) + model_path = next((item['param_value'] for item in train_params if item['param_name'] == 'model'), None) + dataset_path = os.path.join(train_path, "yolo_config.yaml") + project_path = os.path.join(train_path, "runs") + run_name = "train" + # 确保训练目录存在且为空 + if os.path.exists(project_path): + shutil.rmtree(project_path) + os.makedirs(project_path, exist_ok=True) + model_filepath = os.path.join(project_path.replace(filespace_root_path, "")[1:], run_name, "weights").replace( + "\\", "/") + model_filename = "best.pt" + # 更新训练记录 + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + train_start_time=datetime.strptime(train_start_time, '%Y-%m-%d %H-%M-%S'), + train_end_time=datetime.strptime(train_end_time, '%Y-%m-%d %H-%M-%S'), + train_total_times=float(train_total_times), + model_createtime=datetime.strptime(train_end_time, '%Y-%m-%d %H-%M-%S'), + model_filepath=model_filepath, + model_filename=model_filename, + model_trainresult="模型训练完成!", + record_status="02", + + ) + # 构造保存文件的路径 + save_path = os.path.join(project_path, run_name, 'weights', f"{train_id}.zip") + # 确保目录存在 + os.makedirs(os.path.dirname(save_path), exist_ok=True) + # 保存上传的zip文件 + with open(save_path, 'wb') as f: + for chunk in file_data.chunks(): + f.write(chunk) + with zipfile.ZipFile(save_path, 'r') as zip_ref: + zip_ref.extractall(os.path.join(project_path,run_name,'weights')) + + # 解压后删除原始的zip文件 + os.remove(save_path) + return JsonResponse({"message": "File successfully uploaded and extracted"}, status=200) + except Exception as e: + return JsonResponse({"error": str(e)}, status=400) +# API 方法:对象检测 +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +@parser_classes([MultiPartParser]) +def detect_image_object(request): + if 'image' not in request.data: + return Response({'error': 'No image file provided'}, status=status.HTTP_400_BAD_REQUEST) + image_file = request.data['image'] + train_id = request.data.get('id') + temp_file_path = None + try: + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + if ai_train.train_type == "local": + filespace_root_path = settings.FILESPACE_ROOT_PATH + + with tempfile.NamedTemporaryFile(delete=False, suffix=get_file_extension(image_file.name)) as temp_file: + temp_file_path = temp_file.name + temp_file.write(image_file.read()) + if ai_algorithm.algorithm_engine == '01': + model_path = os.path.join( + filespace_root_path, + ai_train.model_filepath, + ai_train.model_filename + ) + if YoloDetector is None: + return Response( + {"error": "算法依赖未安装,请先安装 requirements/algorithms.txt"}, + status=503, + ) + detector = YoloDetector(model_path=model_path, image_path=temp_file_path, labels=ai_train.train_labels) + result = detector.detect() + elif ai_algorithm.algorithm_engine == '02': + model_path = os.path.join( + ai_train.model_filepath, + ai_train.model_filename + ) + train_params = json.loads(ai_train.train_params) + + ai_algorithm = get_object_or_404(AiAlgorithm, id=ai_train.algorithm_id) + ai_algorithm_class = get_object_or_404(AiAlgorithmClass, id=ai_algorithm.algorithm_class) + train_path = os.path.join( + filespace_root_path, + ai_algorithm_class.classcode, + ai_algorithm.algorithm_code, + 'trains', + ai_train.train_code + ) + # 配置文件路径 + config_dir = os.path.join(train_path, "config") + config_yml_path = next((item['param_value'] for item in train_params if item['param_name'] == 'model'), None) + config_path = os.path.join(config_dir, config_yml_path) + if DfineDetector is None: + return Response( + {"error": "算法依赖未安装,请先安装 requirements/algorithms.txt"}, + status=503, + ) + detector = DfineDetector(config_path=config_path, model_path=model_path, label_map=ai_train.train_labels, device="cpu", score_thresh=0.1) + result = detector.detect(temp_file_path) + elif ai_algorithm.algorithm_engine == '04': + model_path = os.path.join( + filespace_root_path, + ai_train.model_filepath, + ai_train.model_filename + ) + if YOLO is None: + return Response( + {"error": "算法依赖未安装,请先安装 requirements/algorithms.txt"}, + status=503, + ) + if cv2 is None: + return Response( + {"error": "算法依赖未安装,请先安装 opencv-python"}, + status=503, + ) + model = YOLO(model_path) + outputs = model.predict(source=temp_file_path, save=False, conf=0.2) + labels = json.loads(ai_train.train_labels) if ai_train.train_labels else [] + pred_result = [] + detection_image = "" + for output in outputs: + plotted = output.plot() + if plotted is not None: + ok, img_encoded = cv2.imencode('.jpg', plotted) + if ok: + detection_image = base64.b64encode(img_encoded.tobytes()).decode('utf-8') + boxes_data = output.boxes.data.tolist() if getattr(output, "boxes", None) is not None else [] + polygons = output.masks.xy if getattr(output, "masks", None) is not None and getattr(output.masks, "xy", None) is not None else [] + for idx, data in enumerate(boxes_data): + name_key = int(data[5]) if len(data) > 5 else -1 + code = output.names.get(name_key) if isinstance(output.names, dict) else str(name_key) + name = next((item["name"] for item in labels if isinstance(item, dict) and item.get("label") == code), None) + poly_points = [] + if idx < len(polygons): + poly_points = [[float(p[0]), float(p[1])] for p in polygons[idx]] + one_box = { + 'code': code, + 'name': name, + 'score': round(float(data[4]), 2) if len(data) > 4 else 0.0, + 'x1': int(data[0]) if len(data) > 0 else 0, + 'y1': int(data[1]) if len(data) > 1 else 0, + 'x2': int(data[2]) if len(data) > 2 else 0, + 'y2': int(data[3]) if len(data) > 3 else 0, + 'polygon': poly_points, + } + pred_result.append(one_box) + result = json.dumps({ + 'image': detection_image, + 'obj_list': pred_result, + 'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S') + }, ensure_ascii=False) + else: + return Response({'message': f"当前引擎不支持在线推理:{ai_algorithm.algorithm_engine}"}, status=400) + return Response(result) + else: + detect_server = "http://" + ai_train.train_server + "/detect" + model_path = "/workspace/traindataset/" + ai_train.train_code + "/runoutput/train/weights/best.pt" + files = { + 'image': (image_file.name, image_file, image_file.content_type), + } + data = { + 'model_path': model_path, + 'train_labels': ai_train.train_labels, + } + response = requests.post(detect_server, files=files, data=data) + if response.status_code == 200: + result = response.json() + return Response(result) + else: + return Response({'message': '模型推理失败!', 'details': response.text}, status=400) + except Exception as e: + return Response({'message': '模型推理失败!', 'details': str(e)}, status=500) + finally: + if temp_file_path and os.path.exists(temp_file_path): + os.remove(temp_file_path) + + +def _read_train_param(train_params_text, key, default_value): + try: + params = json.loads(train_params_text) if train_params_text else [] + except Exception: + return default_value + if isinstance(params, dict): + return params.get(key, default_value) + if isinstance(params, list): + for item in params: + if not isinstance(item, dict): + continue + if str(item.get("param_name")) != str(key): + continue + value = item.get("param_value") + if value in (None, ""): + return default_value + return value + return default_value + + +def _archive_log(step, **kwargs): + payload = {"type": "archive", "step": str(step)} + payload.update(kwargs) + print(json.dumps(payload, ensure_ascii=False)) + + +def _infer_num_classes(train_labels_text): + try: + labels = json.loads(train_labels_text) if train_labels_text else [] + except Exception: + return 2 + if isinstance(labels, dict): + size = len(labels.keys()) + return max(2, int(size)) + if not isinstance(labels, list): + return 2 + label_names = set() + for item in labels: + if isinstance(item, dict): + name = str(item.get("label") or item.get("name") or "").strip() + if name: + label_names.add(name) + elif isinstance(item, str): + name = item.strip() + if name: + label_names.add(name) + return max(2, len(label_names) + 1) + + +def _export_onnx_from_pt(src_file, onnx_file, ai_train): + _archive_log("onnx_export_pt_start", src_file=src_file, onnx_file=onnx_file) + repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../..")) + ultralytics_repo = os.path.join(repo_root, "ultralytics_yolo11") + if not os.path.isdir(ultralytics_repo): + raise FileNotFoundError(f"未找到仓库内 ultralytics_yolo11 目录:{ultralytics_repo}") + imgsz = int(_read_train_param(ai_train.train_params, "imgsz", 640)) + default_cfg_path = os.path.join(ultralytics_repo, "ultralytics", "cfg", "default.yaml") + if not os.path.exists(default_cfg_path): + raise FileNotFoundError(f"未找到 default.yaml:{default_cfg_path}") + with open(default_cfg_path, "r", encoding="utf-8") as f: + old_cfg_text = f.read() + cfg_data = yaml.safe_load(old_cfg_text) or {} + cfg_data["model"] = str(src_file).replace("\\", "/") + cfg_data["format"] = "rknn" + cfg_data["batch"] = 1 + cfg_data["imgsz"] = int(imgsz) + cfg_data["dynamic"] = False + _archive_log("onnx_export_pt_cfg", model=cfg_data["model"], format=cfg_data["format"], batch=cfg_data["batch"], imgsz=cfg_data["imgsz"]) + with open(default_cfg_path, "w", encoding="utf-8") as f: + yaml.dump(cfg_data, f, allow_unicode=True, sort_keys=False) + env = os.environ.copy() + env["PYTHONPATH"] = ultralytics_repo + (os.pathsep + env["PYTHONPATH"] if env.get("PYTHONPATH") else "") + try: + process = subprocess.run( + [sys.executable, "ultralytics/engine/exporter.py"], + cwd=ultralytics_repo, + capture_output=True, + text=True, + encoding="utf-8", + errors="ignore", + env=env, + ) + finally: + with open(default_cfg_path, "w", encoding="utf-8") as f: + f.write(old_cfg_text) + stdout_text = process.stdout or "" + stderr_text = process.stderr or "" + _archive_log( + "onnx_export_pt_subprocess_done", + returncode=int(process.returncode), + stdout_tail=stdout_text[-600:], + stderr_tail=stderr_text[-600:], + ) + if process.returncode != 0: + raise RuntimeError(f"仓库版 ultralytics_yolo11 导出失败:{stderr_text or stdout_text}") + export_path = os.path.splitext(src_file)[0] + ".onnx" + if not os.path.isabs(export_path): + export_path = os.path.abspath(export_path) + _archive_log("onnx_export_pt_done", export_path=export_path) + if not os.path.exists(export_path): + raise FileNotFoundError(f"未找到导出的 ONNX 文件:{export_path}") + if os.path.abspath(export_path) != os.path.abspath(onnx_file): + shutil.copy2(export_path, onnx_file) + if not os.path.exists(onnx_file): + raise FileNotFoundError(f"未找到目标 ONNX 文件:{onnx_file}") + + +def _export_onnx_from_pth(src_file, onnx_file, ai_train): + import torch + import torch.nn as nn + from torchvision.models.segmentation import deeplabv3_resnet50 + + num_classes = _infer_num_classes(ai_train.train_labels) + imgsz = int(_read_train_param(ai_train.train_params, "imgsz", 640)) + _archive_log("onnx_export_pth_start", src_file=src_file, onnx_file=onnx_file, num_classes=num_classes, imgsz=imgsz) + model = deeplabv3_resnet50(weights=None, aux_loss=True) + model.classifier[4] = nn.Conv2d(in_channels=256, out_channels=num_classes, kernel_size=1) + model.aux_classifier[4] = nn.Conv2d(in_channels=256, out_channels=num_classes, kernel_size=1) + + try: + state = torch.load(src_file, map_location="cpu", weights_only=True) + except TypeError: + state = torch.load(src_file, map_location="cpu") + if isinstance(state, dict) and isinstance(state.get("state_dict"), dict): + state = state.get("state_dict") + missing_keys, unexpected_keys = model.load_state_dict(state, strict=False) + if missing_keys or unexpected_keys: + _archive_log( + "onnx_export_pth_weight_mismatch", + missing=int(len(missing_keys)), + unexpected=int(len(unexpected_keys)), + ) + raise RuntimeError( + f"pth 权重与导出模型结构不一致,missing={len(missing_keys)} unexpected={len(unexpected_keys)}" + ) + model.eval() + + class DeeplabExportWrapper(nn.Module): + def __init__(self, wrapped): + super().__init__() + self.wrapped = wrapped + + def forward(self, x): + out = self.wrapped(x) + return out["out"], out["aux"] + + wrapped_model = DeeplabExportWrapper(model).eval() + dummy_input = torch.randn(1, 3, imgsz, imgsz, dtype=torch.float32) + with torch.no_grad(): + _ = wrapped_model(dummy_input) + with torch.no_grad(): + torch.onnx.export( + wrapped_model, + dummy_input, + onnx_file, + opset_version=12, + input_names=["images"], + output_names=["out", "aux"], + do_constant_folding=True, + ) + try: + import onnx + + onnx_model = onnx.load(onnx_file) + onnx.checker.check_model(onnx_model) + except Exception as e: + raise RuntimeError(f"ONNX 校验失败:{str(e)}") + if not os.path.exists(onnx_file): + raise FileNotFoundError(f"未找到目标 ONNX 文件:{onnx_file}") + _archive_log("onnx_export_pth_done", onnx_file=onnx_file) + + +def _export_onnx_for_archive(src_file, onnx_file, ai_train): + ext = os.path.splitext(src_file)[1].lower() + _archive_log("onnx_export_dispatch", ext=ext, src_file=src_file) + if ext == ".pt": + _export_onnx_from_pt(src_file, onnx_file, ai_train) + elif ext == ".pth": + _export_onnx_from_pth(src_file, onnx_file, ai_train) + else: + raise ValueError(f"不支持的模型后缀:{ext}") + try: + os.chmod(onnx_file, 0o777) + except Exception: + pass + _archive_log("onnx_export_success", onnx_file=onnx_file) + return True + + +# API 方法:归档已训练完成的模型 +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +@transaction.atomic +def archive_train_model(request): + # 获取传递的训练记录 ID + train_id = request.data.get('id') + _archive_log("archive_start", train_id=train_id) + + # 获取训练记录对象 + ai_train = get_object_or_404(AiAlgorithmTrainRecords, id=train_id) + + # 根据算法 ID 获取相关算法模型记录 + algorithm_id = ai_train.algorithm_id + algorithm_name = ai_train.algorithm_name + + max_model_code = AiAlgorithmModels.objects.filter(algorithm_id=algorithm_id).aggregate( + max_model_code=Max(Cast("model_version", CharField())) + ).get("max_model_code") + # 转换为整数 + max_model_code = int(max_model_code) if max_model_code is not None else 0 + new_model_code = f"{max_model_code + 1:03}" + model_version = new_model_code + + try: + from apps.common.minio_client import minio_storage + except Exception: + from common.minio_client import minio_storage + + src_bucket = 'trained-model' + dst_bucket = 'archived-model' + + model_bucketpath = ai_train.model_bucketpath + report_bucketpath = ai_train.report_bucketpath + + if not model_bucketpath: + _archive_log("invalid_model_bucketpath", model_bucketpath=model_bucketpath) + return Response({'message': '训练记录中没有有效的模型文件存储路径'}, status=400) + + safe_algorithm_name = re.sub(r'[^\w\-]', '-', algorithm_name).strip('-') + if not safe_algorithm_name: + safe_algorithm_name = 'unknown' + + ext = os.path.splitext(ai_train.model_filename)[1] or ".pt" + new_model_name = f"model-{model_version}{ext}" + + dst_model_path = f"{safe_algorithm_name}/{model_version}/{new_model_name}" + dst_report_path = f"{safe_algorithm_name}/{model_version}/train_report.html" + + _archive_log("archive_paths", + src_bucket=src_bucket, + src_model=model_bucketpath, + src_report=report_bucketpath, + dst_bucket=dst_bucket, + dst_model=dst_model_path, + dst_report=dst_report_path) + + try: + minio_storage.copy_object(src_bucket, model_bucketpath, dst_bucket, dst_model_path) + _archive_log("archive_model_copied", dst_model=dst_model_path) + except Exception as e: + _archive_log("archive_model_copy_failed", error=str(e)) + return Response({'message': f"模型文件复制失败: {str(e)}"}, status=500) + + if report_bucketpath: + try: + minio_storage.copy_object(src_bucket, report_bucketpath, dst_bucket, dst_report_path) + _archive_log("archive_report_copied", dst_report=dst_report_path) + except Exception as e: + _archive_log("archive_report_copy_failed", error=str(e)) + + AiAlgorithmModels.objects.create( + id=str(uuid.uuid4()), + algorithm_id=algorithm_id, + model_version=model_version, + model_filename=new_model_name, + model_filepath=dst_model_path, + model_bucketpath=f"{dst_bucket}/{dst_model_path}", + report_bucketpath=f"{dst_bucket}/{dst_report_path}" if report_bucketpath else None, + model_labels=ai_train.train_labels, + model_createtime=ai_train.model_createtime, + evaluation_metrics=ai_train.evaluation_metrics, + evaluation_comments=ai_train.evaluation_comments, + description=f"{algorithm_name} 算法模型归档,版本 {model_version}", + model_status='02', + model_usednumber=0, + model_stars=None, + call_duration=None, + uploader=request.user.username if request.user.username else 'uploader', + upload_time=datetime.now(), + is_using=None, + custom1=None, + custom2=None, + custom3=None, + ) + _archive_log("archive_db_saved", model_version=model_version, model_filename=new_model_name) + + AiAlgorithmTrainRecords.objects.filter(id=train_id).update( + record_status="05" + ) + + return Response({'message': '训练记录更新成功,模型已归档'}) diff --git a/backend/config/__init__.py b/backend/config/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/config/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/config/api_urls.py b/backend/config/api_urls.py new file mode 100644 index 0000000..ef66053 --- /dev/null +++ b/backend/config/api_urls.py @@ -0,0 +1,338 @@ +from django.urls import path + +from apps.algorithms.views.algorithm import ( + add_algorithm, + delete_algorithm, + get_algorithm_engines, + get_algorithm_list, + get_algorithm_tree, + read_algorithm, + search_algorithm, + update_algorithm, +) +from apps.algorithms.views.algorithm_calllog import ( + create_algorithm_call_log, + delete_algorithm_call_log, + read_algorithm_call_log, + search_algorithm_call_logs, +) +from apps.algorithms.views.algorithm_class import ( + create_algorithm_class, + delete_algorithm_class, + read_algorithm_class, + search_algorithm_class, + update_algorithm_class, +) +from apps.algorithms.views.algorithm_models import ( + algorithm_model_predict, + convert_algorithm_model_onnx, + delete_algorithm_model, + delete_predict_default_image, + download_published_onnx_model, + export_algorithm_model, + get_algorithm_default_images, + issue_algorithm_model, + publish_model_to_terminals, + read_algorithm_model, + search_algorithm_model, + set_algorithm_default_model, + update_algorithm_model, + upload_algorithm_modelfile, + upload_predict_default_images, +) +from apps.algorithms.views.algorithm_output import ( + create_algorithm_output, + delete_algorithm_output, + read_algorithm_output, + search_algorithm_output, + update_algorithm_output, +) +from apps.algorithms.views.algorithm_params import ( + create_algorithm_params, + delete_algorithm_params, + read_algorithm_params, + search_algorithm_params, + update_algorithm_params, +) +from apps.annotation.views.annotate_team import ( + add_team_members, + create_annotate_team, + delete_annotate_team, + delete_team_members, + get_team_members, + read_annotate_team, + search_annotate_team, + update_annotate_team, + update_team_member, +) +from apps.datasets.views.dataset import ( + create_dataset, + delete_dataset, + delete_dataset_updatefile, + generate_dataset_images, + get_dataset_list, + import_dataset_from_temp_file, + read_dataset, + search_datasets, + update_dataset, + upload_dataset_file, +) +from apps.datasets.views.dataset_sample import ( + delete_duplicate_samples, + download_dataset_sample, + delete_invalid_samples, + preview_dataset_sample, + read_dataset_sample, + search_dataset_samples, + update_dataset_sample, +) +from apps.datasets.views.annotate_task import ( + create_annotate_task, + delete_annotate_task, + get_mytask_annotate_list, + get_mytask_audit_list, + read_annotate_task, + search_annotate_tasks, + start_auto_annotate_task, + update_annotate_task, +) +from apps.datasets.views.annotate_task_sample import ( + annotate_task_sample, + audit_task_samples, + delete_task_samples, + merge_sample_content, + query_person_tasks, + read_task_sample, + search_task_samples, + set_person_task, + submit_task_samples, +) +from apps.datasets.views.temp_file import ( + delete_temp_file, + download_temp_file, + preview_temp_file, + read_temp_file, + search_temp_files, + update_temp_file, + upload_temp_file, +) +from apps.cloud_terminal.smart_terminal import ( + check_terminal_model_version, + create_smart_terminal, + delete_smart_terminal, + download_terminal_model, + publish_terminal_model, + search_smart_terminals, + terminal_device_auth, + update_smart_terminal, + update_terminal_heartbeat, + update_terminal_model_version, +) +from apps.iam.views.organization import ( + add_organization, + delete_organization, + get_organization_list, + read_organization, + update_organization, +) +from apps.iam.views.person import ( + add_person, + delete_person, + get_person_list, + update_password, + update_person, +) +from apps.training.views.algorithm_trainrecords import ( + copy_algorithm_train_record, + create_algorithm_train_record, + delete_algorithm_train_record, + detect_image_object, + archive_train_model, + close_train_model, + prepare_algorithm_train_dataset, + read_algorithm_train_record, + search_algorithm_train_records, + start_algorithm_train, + train_callback, + prepare_callback, + update_algorithm_train_record, +) +from apps.common.views.minio_storage import ( + minio_bucket_create, + minio_bucket_delete, + minio_bucket_list, + minio_file_batch_delete, + minio_file_batch_upload, + minio_file_copy, + minio_file_delete, + minio_file_download, + minio_file_info, + minio_file_list, + minio_file_presign, + minio_file_presign_upload, + minio_file_preview, + minio_file_upload, + minio_file_upload_bytes, + minio_video_extract_frames, + minio_zip_upload_extract, +) + + +urlpatterns = [ + path("createAlgorithmClass/", create_algorithm_class, name="create_algorithm_class"), + path("queryAlgorithmClass/", search_algorithm_class, name="search_algorithm_class"), + path("readAlgorithmClass/", read_algorithm_class, name="read_algorithm_class"), + path("updateAlgorithmClass/", update_algorithm_class, name="update_algorithm_class"), + path("deleteAlgorithmClass/", delete_algorithm_class, name="delete_algorithm_class"), + path("addAlgorithm/", add_algorithm, name="create_algorithm"), + path("queryAlgorithm/", search_algorithm, name="search_algorithm"), + path("getAlgorithmList/", get_algorithm_list, name="get_algorithm_list"), + path("getAlgorithmTree/", get_algorithm_tree, name="get_algorithm_tree"), + path("readAlgorithm/", read_algorithm, name="read_algorithm"), + path("updateAlgorithm/", update_algorithm, name="update_algorithm"), + path("deleteAlgorithm/", delete_algorithm, name="delete_algorithm"), + path("getAlgorithmEngines/", get_algorithm_engines, name="get_algorithm_engines"), + path("addAlgorithmParam/", create_algorithm_params, name="create_algorithm_params"), + path("queryAlgorithmParam/", search_algorithm_params, name="search_algorithm_params"), + path("readAlgorithmParam/", read_algorithm_params, name="read_algorithm_params"), + path("updateAlgorithmParam/", update_algorithm_params, name="update_algorithm_params"), + path("deleteAlgorithmParam/", delete_algorithm_params, name="delete_algorithm_params"), + path("addAlgorithmOutput/", create_algorithm_output, name="create_algorithm_output"), + path("queryAlgorithmOutput/", search_algorithm_output, name="search_algorithm_output"), + path("readAlgorithmOutput/", read_algorithm_output, name="read_algorithm_output"), + path("updateAlgorithmOutput/", update_algorithm_output, name="update_algorithm_output"), + path("deleteAlgorithmOutput/", delete_algorithm_output, name="delete_algorithm_output"), + path("uploadAlgorithmModelFile/", upload_algorithm_modelfile, name="upload_algorithm_modelfile"), + path("queryAlgorithmModel/", search_algorithm_model, name="search_algorithm_model"), + path("readAlgorithmModel/", read_algorithm_model, name="read_algorithm_model"), + path("updateAlgorithmModel/", update_algorithm_model, name="update_algorithm_model"), + path("deleteAlgorithmModel/", delete_algorithm_model, name="delete_algorithm_model"), + path("setAlgorithmDefaultModel/", set_algorithm_default_model, name="set_algorithm_default_model"), + path("issueAlgorithmModel/", issue_algorithm_model, name="issue_algorithm_model"), + path("publishModelToTerminals/", publish_model_to_terminals, name="publish_model_to_terminals"), + path("convertAlgorithmModelOnnx/", convert_algorithm_model_onnx, name="convert_algorithm_model_onnx"), + path("downloadPublishedOnnxModel/", download_published_onnx_model, name="download_published_onnx_model"), + path("exportAlgorithmModel/", export_algorithm_model, name="export_algorithm_model"), + path("AlgorithmModelPredict/", algorithm_model_predict, name="algorithm_model_predict"), + path("getAlgorithmDefaultImages/", get_algorithm_default_images, name="get_algorithm_default_images"), + path( + "uploadPredictDefaultImages/", + upload_predict_default_images, + name="upload_predict_default_images", + ), + path( + "deletePredictDefaultImage/", + delete_predict_default_image, + name="delete_predict_default_image", + ), + path("createDataset/", create_dataset, name="create_dataset"), + path("uploadDatasetFile/", upload_dataset_file, name="upload_dataset_file"), + path("importFromTempFile/", import_dataset_from_temp_file, name="import_dataset_from_temp_file"), + path("generateDatasetImages/", generate_dataset_images, name="generate_dataset_images"), + path("queryDataset/", search_datasets, name="search_datasets"), + path("getDatasetList/", get_dataset_list, name="get_dataset_list"), + path("readDataset/", read_dataset, name="read_dataset"), + path("updateDataset/", update_dataset, name="update_datasets"), + path("deleteDataset/", delete_dataset, name="delete_datasets"), + path("deleteDatasetUpdatefile/", delete_dataset_updatefile, name="delete_dataset_updatefile"), + path("querysamples/", search_dataset_samples, name="search_dataset_samples"), + path("readDatasetSample/", read_dataset_sample, name="read_dataset_sample"), + path("previewDatasetSample/", preview_dataset_sample, name="preview_dataset_sample"), + path("downloadDatasetSample/", download_dataset_sample, name="download_dataset_sample"), + path("deleteInvalidSamples/", delete_invalid_samples, name="delete_invalid_samples"), + path("deleteDuplicateSamples/", delete_duplicate_samples, name="delete_duplicate_samples"), + path("addOrganization/", add_organization, name="add_organization"), + path("getOrganizationList/", get_organization_list, name="get_organization_list"), + path("readOrganization/", read_organization, name="read_organization"), + path("updateOrganization/", update_organization, name="update_organization"), + path("deleteOrganization/", delete_organization, name="delete_organization"), + path("addPerson/", add_person, name="add_person"), + path("getPersonList/", get_person_list, name="get_person_list"), + path("updatePerson/", update_person, name="update_person"), + path("deletePerson/", delete_person, name="delete_person"), + path("updatePassword/", update_password, name="update_password"), + path("createAnnotateTeam/", create_annotate_team, name="create_annotate_team"), + path("addTeamMembers/", add_team_members, name="add_team_members"), + path("searchAnnotateTeam/", search_annotate_team, name="search_annotate_team"), + path("readAnnotateTeam/", read_annotate_team, name="read_annotate_team"), + path("updateAnnotateTeam/", update_annotate_team, name="update_annotate_team"), + path("updateTeamMember/", update_team_member, name="update_team_member"), + path("deleteAnnotateTeam/", delete_annotate_team, name="delete_annotate_team"), + path("getTeamMembers/", get_team_members, name="get_team_members"), + path("deleteTeamMembers/", delete_team_members, name="delete_team_members"), + path("startAutoAnnotateTask/", start_auto_annotate_task, name="start_auto_annotate_task"), + path("getMytaskAnnotateList/", get_mytask_annotate_list, name="get_mytask_annotate_list"), + path("getMytaskAuditList/", get_mytask_audit_list, name="get_mytask_audit_list"), + path("setPersonTask/", set_person_task, name="set_person_task"), + path("deleteTaskSamples/", delete_task_samples, name="delete_task_samples"), + path("queryPersonTasks/", query_person_tasks, name="query_person_Tasks"), + path("queryTaskSamples/", search_task_samples, name="search_task_samples"), + path("readTaskSample/", read_task_sample, name="read_task_sample"), + path("annotateTaskSample/", annotate_task_sample, name="annotate_task_sample"), + path("submitTaskSamples/", submit_task_samples, name="submit_task_samples"), + path("auditTaskSamples/", audit_task_samples, name="audit_task_samples"), + path("mergeSampleContent/", merge_sample_content, name="merge_sample_content"), + path("uploadTempFile/", upload_temp_file, name="upload_temp_file"), + path("queryTempFiles/", search_temp_files, name="search_temp_files"), + path("readTempFile/", read_temp_file, name="read_temp_file"), + path("updateTempFile/", update_temp_file, name="update_temp_file"), + path("deleteTempFile/", delete_temp_file, name="delete_temp_file"), + path("downloadTempFile/", download_temp_file, name="download_temp_file"), + path("previewTempFile/", preview_temp_file, name="preview_temp_file"), + path("terminal/auth/", terminal_device_auth, name="terminal_device_auth"), + path("terminal/create/", create_smart_terminal, name="create_smart_terminal"), + path("terminal/update/", update_smart_terminal, name="update_smart_terminal"), + path("terminal/publishModel/", publish_terminal_model, name="publish_terminal_model"), + path("terminal/list/", search_smart_terminals, name="search_smart_terminals"), + path("terminal/heartbeat/", update_terminal_heartbeat, name="update_terminal_heartbeat"), + path("terminal/checkVersion/", check_terminal_model_version, name="check_terminal_model_version"), + path("terminal/downloadModel/", download_terminal_model, name="download_terminal_model"), + path("terminal/updateModelVersion/", update_terminal_model_version, name="update_terminal_model_version"), + path("terminal/delete/", delete_smart_terminal, name="delete_smart_terminal"), + path("annotateTask/create/", create_annotate_task, name="create_annotate_task"), + path("annotateTask/list/", search_annotate_tasks, name="search_annotate_tasks"), + path("annotateTask/read/", read_annotate_task, name="read_annotate_task"), + path("annotateTask/update/", update_annotate_task, name="update_annotate_task"), + path("annotateTask/delete/", delete_annotate_task, name="delete_annotate_task"), + path("annotateTask/assignSamples/", set_person_task, name="assign_annotate_task_samples"), + path("annotateTask/autoAnnotate/", start_auto_annotate_task, name="auto_annotate_task"), + path("annotateTask/submitAudit/", submit_task_samples, name="submit_annotate_task_samples"), + path("annotateTask/audit/", audit_task_samples, name="audit_annotate_task_samples"), + path("annotateTask/mergeToDataset/", merge_sample_content, name="merge_annotate_task_samples"), + path("addAlgorithmTrainRecord/", create_algorithm_train_record, name="create_algorithm_train_record"), + path("copyAlgorithmTrainRecord/", copy_algorithm_train_record, name="copy_algorithm_train_record"), + path("queryAlgorithmTrainRecords/", search_algorithm_train_records, name="search_algorithm_train_record"), + path("readAlgorithmTrainRecord/", read_algorithm_train_record, name="read_algorithm_train_record"), + path("updateAlgorithmTrainRecord/", update_algorithm_train_record, name="update_algorithm_train_record"), + path("deleteAlgorithmTrainRecord/", delete_algorithm_train_record, name="delete_algorithm_train_record"), + path( + "prepareAlgorithmTrainDataset/", + prepare_algorithm_train_dataset, + name="prepare_algorithm_train_dataset", + ), + path("startAlgorithmTrain/", start_algorithm_train, name="start_algorithm_train"), + path("TrainCallBack/", train_callback, name="train_callback"), + path("PrepareCallBack/", prepare_callback, name="prepare_callback"), + path("detectImageObject/", detect_image_object, name="detect_image_object"), + path("archiveTrainModel/", archive_train_model, name="archive_train_model"), + path("closeTrain/", close_train_model, name="close_train_model"), + + # ── MinIO 文件存储接口 ───────────────────────────── + path("minio/bucket/create/", minio_bucket_create, name="minio_bucket_create"), + path("minio/bucket/list/", minio_bucket_list, name="minio_bucket_list"), + path("minio/bucket/delete/", minio_bucket_delete, name="minio_bucket_delete"), + path("minio/file/upload/", minio_file_upload, name="minio_file_upload"), + path("minio/file/upload-base64/", minio_file_upload_bytes, name="minio_file_upload_base64"), + path("minio/files/upload/", minio_file_batch_upload, name="minio_file_batch_upload"), + path("minio/file/upload-zip/", minio_zip_upload_extract, name="minio_zip_upload_extract"), + path("minio/file/upload-video-frames/", minio_video_extract_frames, name="minio_video_extract_frames"), + path("minio/file/download/", minio_file_download, name="minio_file_download"), + path("minio/file/presign/", minio_file_presign, name="minio_file_presign"), + path("minio/file/presign-upload/", minio_file_presign_upload, name="minio_file_presign_upload"), + path("minio/file/preview/", minio_file_preview, name="minio_file_preview"), + path("minio/file/info/", minio_file_info, name="minio_file_info"), + path("minio/files/", minio_file_list, name="minio_file_list"), + path("minio/file/delete/", minio_file_delete, name="minio_file_delete"), + path("minio/files/delete/", minio_file_batch_delete, name="minio_file_batch_delete"), + path("minio/file/copy/", minio_file_copy, name="minio_file_copy"), +] diff --git a/backend/config/asgi.py b/backend/config/asgi.py new file mode 100644 index 0000000..51a6dbc --- /dev/null +++ b/backend/config/asgi.py @@ -0,0 +1,18 @@ +import os + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") + +from channels.auth import AuthMiddlewareStack +from channels.routing import ProtocolTypeRouter, URLRouter +from django.core.asgi import get_asgi_application + +django_asgi_app = get_asgi_application() + +from config.routing import websocket_urlpatterns + +application = ProtocolTypeRouter( + { + "http": django_asgi_app, + "websocket": AuthMiddlewareStack(URLRouter(websocket_urlpatterns)), + } +) diff --git a/backend/config/routing.py b/backend/config/routing.py new file mode 100644 index 0000000..c4d3d5b --- /dev/null +++ b/backend/config/routing.py @@ -0,0 +1,10 @@ +from django.urls import re_path + +from apps.cloud_terminal.consumers import TerminalStatusConsumer +from apps.training.consumers import TrainLogConsumer + +websocket_urlpatterns = [ + re_path(r"^ws/train_logs/(?P[a-zA-Z0-9-]+)/$", TrainLogConsumer.as_asgi(), name="train_log"), + re_path(r"^ws/terminal_status/$", TerminalStatusConsumer.as_asgi(), name="terminal_status"), +] + diff --git a/backend/config/settings/__init__.py b/backend/config/settings/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/config/settings/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/config/settings/base.py b/backend/config/settings/base.py new file mode 100644 index 0000000..d32fb7d --- /dev/null +++ b/backend/config/settings/base.py @@ -0,0 +1,244 @@ +import os +from datetime import timedelta +from pathlib import Path + + +def _env_bool(name: str, default: bool = False) -> bool: + raw = os.environ.get(name) + if raw is None: + return default + return raw.strip().lower() in {"1", "true", "yes", "y", "on"} + + +def _env_list(name: str, default: list[str] | None = None) -> list[str]: + raw = os.environ.get(name) + if raw is None: + return default or [] + return [part.strip() for part in raw.split(",") if part.strip()] + + +BASE_DIR = Path(__file__).resolve().parent.parent.parent +REPO_ROOT = BASE_DIR.parent + + +def _load_env_file(env_path: Path) -> None: + if not env_path.exists() or not env_path.is_file(): + return + for raw_line in env_path.read_text(encoding="utf-8").splitlines(): + line = raw_line.strip() + if not line or line.startswith("#") or "=" not in line: + continue + key, value = line.split("=", 1) + key = key.strip() + if not key or key in os.environ: + continue + value = value.strip().strip('"').strip("'") + os.environ[key] = value + + +_load_env_file(REPO_ROOT / ".env") + +SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "unsafe-dev-secret-key") +DEBUG = _env_bool("DJANGO_DEBUG", default=True) + +ALLOWED_HOSTS = _env_list("DJANGO_ALLOWED_HOSTS", default=["127.0.0.1","192.168.1.60", "192.168.1.93","localhost","192.168.1.174"]) +DATETIME_FORMAT = os.environ.get("DJANGO_DATETIME_FORMAT", "Y-m-d H:i:s") + +INSTALLED_APPS = [ + "simpleui", + "corsheaders", + "drf_yasg", + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "rest_framework", + "rest_framework_simplejwt", + "apps.iam", + "apps.datasets", + "apps.annotation", + "apps.algorithms", + "apps.training", + "apps.cloud_terminal.apps.CloudTerminalConfig", + "apps.core.apps.CoreConfig", + "channels", + "django_extensions", +] + +ASGI_APPLICATION = "config.asgi.application" +WSGI_APPLICATION = "config.wsgi.application" + +MIDDLEWARE = [ + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", + "corsheaders.middleware.CorsMiddleware", +] + +CORS_ALLOWED_ORIGINS = _env_list("DJANGO_CORS_ALLOWED_ORIGINS", default=[ + "http://127.0.0.1:3000", + "http://localhost:3000", + "http://192.168.1.60:3000", + "http://192.168.1.93:3000", + "ws://192.168.1.60:3000", + "ws://192.168.1.93:3000", + "ws://localhost:3000", +]) +CORS_ALLOW_ALL_ORIGINS = _env_bool("DJANGO_CORS_ALLOW_ALL_ORIGINS", default=False) +CSRF_TRUSTED_ORIGINS = _env_list("DJANGO_CSRF_TRUSTED_ORIGINS", default=[]) + +ROOT_URLCONF = "config.urls" + +FRONTEND_DIST_DIR = Path( + os.environ.get("FRONTEND_DIST_DIR", str(REPO_ROOT / "frontend" / "dist")) +) + +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [str(FRONTEND_DIST_DIR)], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + } +] + +REST_FRAMEWORK = { + "DEFAULT_RENDERER_CLASSES": [ + "rest_framework.renderers.JSONRenderer", + ], + "DEFAULT_PARSER_CLASSES": [ + "rest_framework.parsers.JSONParser", + ], + "DEFAULT_AUTHENTICATION_CLASSES": [ + "rest_framework_simplejwt.authentication.JWTAuthentication", + ], + "DEFAULT_PERMISSION_CLASSES": [ + "rest_framework.permissions.AllowAny", + ], + "DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination", + "PAGE_SIZE": int(os.environ.get("DJANGO_PAGE_SIZE", "10")), + "DEFAULT_SCHEMA_CLASS": "rest_framework.schemas.openapi.AutoSchema", + "DEFAULT_FILTER_BACKENDS": [ + "django_filters.rest_framework.DjangoFilterBackend", + ], + "DEFAULT_THROTTLE_RATES": { + "anon": None, + "user": None, + }, + "DEFAULT_THROTTLE_CLASSES": ( + "rest_framework.throttling.AnonRateThrottle", + "rest_framework.throttling.UserRateThrottle", + ), + "EXCEPTION_HANDLER": "rest_framework.views.exception_handler", + "DEFAULT_METADATA_CLASS": "rest_framework.metadata.SimpleMetadata", +} + +SIMPLE_JWT = { + "ACCESS_TOKEN_LIFETIME": timedelta( + minutes=int(os.environ.get("JWT_ACCESS_MINUTES", "60")) + ), + "REFRESH_TOKEN_LIFETIME": timedelta(days=int(os.environ.get("JWT_REFRESH_DAYS", "1"))), +} + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.postgresql", + "NAME": os.environ.get("DB_NAME", "ai-traindb") or "ai-traindb", + "USER": os.environ.get("DB_USER", "postgres") or "postgres", + "PASSWORD": os.environ.get("DB_PASSWORD", "Zhengsl321DSA") or "60edrhkdwa1ecd", + "HOST": os.environ.get("DB_HOST", "127.0.0.1") or "127.0.0.1", + "PORT": os.environ.get("DB_PORT", "5432") or "5432", + }, +} + +DB_ENGINE = os.environ.get("DB_ENGINE") +if DB_ENGINE: + if DB_ENGINE == "django.db.backends.sqlite3": + sqlite_name = os.environ.get("DB_NAME") or str(BASE_DIR / "db.sqlite3") + DATABASES = {"default": {"ENGINE": DB_ENGINE, "NAME": sqlite_name}} + else: + DATABASES["default"]["ENGINE"] = DB_ENGINE + +SM4_PRIVATE_KEY = os.environ.get("SM4_PRIVATE_KEY", "a8b502da70405867") +private_key = SM4_PRIVATE_KEY + +AUTH_PASSWORD_VALIDATORS = [ + { + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", + }, +] + +LANGUAGE_CODE = "zh-hans" +TIME_ZONE = "Asia/Shanghai" +USE_I18N = True +USE_TZ = True + +STATIC_URL = "/static/" +DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" +LOGOUT_REDIRECT_URL = "/account/login/" + +DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 1024 +FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 1024 + +MODEL_ROOT_PATH = str("D:/07_Temp/model_space") +FILESPACE_ROOT_PATH = str("D:/07_Temp/train_workspace") +TRAIN_LOG_DIR = os.environ.get("TRAIN_LOG_DIR", str(Path(FILESPACE_ROOT_PATH) / "log")) +MEDIA_URL = os.environ.get("MEDIA_URL", "/image/") +MEDIA_ROOT = os.environ.get("MEDIA_ROOT", FILESPACE_ROOT_PATH) + +TASK_CALL_BACK_URL = os.environ.get("TASK_CALL_BACK_URL", "http://localhost:8000/server/") +ANNOTATION_SERVICE_INFER_URL = os.environ.get( + "ANNOTATION_SERVICE_INFER_URL", + "http://172.16.31.195:8090/infer", +) +AUTO_ANNOTATE_MAX_WORKERS = int(os.environ.get("AUTO_ANNOTATE_MAX_WORKERS", "2")) +AUTO_ANNOTATE_SCORE_THRESHOLD = float(os.environ.get("AUTO_ANNOTATE_SCORE_THRESHOLD", "0.4")) +VIDEO_FRAME_INTERVAL = int(os.environ.get("VIDEO_FRAME_INTERVAL", "10")) + +DEFAULT_CHARSET = "UTF-8" + +REDIS_URL = os.environ.get("REDIS_URL") +if REDIS_URL: + CHANNEL_LAYERS = { + "default": { + "BACKEND": "channels_redis.core.RedisChannelLayer", + "CONFIG": {"hosts": [REDIS_URL]}, + } + } +else: + CHANNEL_LAYERS = { + "default": { + "BACKEND": "channels.layers.InMemoryChannelLayer", + } + } + +# ── MinIO 对象存储配置 ───────────────────────────── +MINIO_ENDPOINT = os.environ.get("MINIO_ENDPOINT", "127.0.0.1:9000") +MINIO_PRESIGN_ENDPOINT = os.environ.get("MINIO_PRESIGN_ENDPOINT","192.168.1.60:9000") +MINIO_ACCESS_KEY = os.environ.get("MINIO_ACCESS_KEY", "admin") +MINIO_SECRET_KEY = os.environ.get("MINIO_SECRET_KEY", "zhengsl2026") +MINIO_SECURE = _env_bool("MINIO_SECURE", default=False) +MINIO_DEFAULT_BUCKET = os.environ.get("MINIO_DEFAULT_BUCKET", "ai-trainprediction") +MINIO_PRESIGN_EXPIRES = int(os.environ.get("MINIO_PRESIGN_EXPIRES", "3600")) diff --git a/backend/config/settings/dev.py b/backend/config/settings/dev.py new file mode 100644 index 0000000..df7a47d --- /dev/null +++ b/backend/config/settings/dev.py @@ -0,0 +1,10 @@ +from .base import * + + +DEBUG = True + +CORS_ALLOWED_ORIGINS = CORS_ALLOWED_ORIGINS or [ + "http://localhost:3000", + "ws://localhost:3000", +] + diff --git a/backend/config/settings/prod.py b/backend/config/settings/prod.py new file mode 100644 index 0000000..4ed8f16 --- /dev/null +++ b/backend/config/settings/prod.py @@ -0,0 +1,5 @@ +from .base import * + + +DEBUG = False + diff --git a/backend/config/settings/table.sql b/backend/config/settings/table.sql new file mode 100644 index 0000000..75f7379 --- /dev/null +++ b/backend/config/settings/table.sql @@ -0,0 +1,842 @@ +-- DROP SCHEMA public; + +CREATE SCHEMA public AUTHORIZATION pg_database_owner; + +COMMENT ON SCHEMA public IS 'standard public schema'; + +-- DROP SEQUENCE public.auth_group_id_seq; + +CREATE SEQUENCE public.auth_group_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.auth_group_permissions_id_seq; + +CREATE SEQUENCE public.auth_group_permissions_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 9223372036854775807 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.auth_permission_id_seq; + +CREATE SEQUENCE public.auth_permission_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.auth_user_groups_id_seq; + +CREATE SEQUENCE public.auth_user_groups_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 9223372036854775807 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.auth_user_id_seq; + +CREATE SEQUENCE public.auth_user_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.auth_user_user_permissions_id_seq; + +CREATE SEQUENCE public.auth_user_user_permissions_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 9223372036854775807 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.django_admin_log_id_seq; + +CREATE SEQUENCE public.django_admin_log_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.django_content_type_id_seq; + +CREATE SEQUENCE public.django_content_type_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.django_migrations_id_seq; + +CREATE SEQUENCE public.django_migrations_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 9223372036854775807 + START 1 + CACHE 1 + NO CYCLE;-- public.ai_algorithm 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm; + +CREATE TABLE public.ai_algorithm ( + id varchar(40) NOT NULL, + algorithm_code varchar(20) NOT NULL, + algorithm_name varchar(200) NOT NULL, + algorithm_class varchar(40) NOT NULL, + description varchar(2000) NULL, + scenario varchar(2000) NULL, + algorithm_type varchar(2) NULL, + labels text NULL, + algorithm_status varchar(2) NULL, + development_unit varchar(200) NULL, + image text NULL, + creator varchar(20) NOT NULL, + create_time timestamptz NOT NULL, + link_model varchar(2000) NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + algorithm_engine varchar(40) NULL, + CONSTRAINT ai_algorithm_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_id_12ebb08a_like ON public.ai_algorithm USING btree (id varchar_pattern_ops); + + +-- public.ai_algorithm_call_log 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm_call_log; + +CREATE TABLE public.ai_algorithm_call_log ( + id varchar(40) NOT NULL, + algorithm_id varchar(40) NOT NULL, + algorithm_name varchar(40) NOT NULL, + model_id varchar(40) NOT NULL, + "Model_version" varchar(200) NOT NULL, + input_params text NOT NULL, + output_results text NULL, + run_times int4 NULL, + description varchar(2000) NULL, + caller varchar(20) NOT NULL, + log_time timestamptz NOT NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + evaluate_result varchar(1) NULL, + result_desc text NULL, + CONSTRAINT ai_algorithm_call_log_pkey PRIMARY KEY (id), + CONSTRAINT ai_algorithm_call_log_run_times_check CHECK ((run_times >= 0)) +); +CREATE INDEX ai_algorithm_call_log_id_e82865ff_like ON public.ai_algorithm_call_log USING btree (id varchar_pattern_ops); + + +-- public.ai_algorithm_class 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm_class; + +CREATE TABLE public.ai_algorithm_class ( + id varchar(40) NOT NULL, + classcode varchar(40) NOT NULL, + classname varchar(100) NOT NULL, + parentid varchar(40) NOT NULL, + description varchar(1000) NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_algorithm_class_classcode_key UNIQUE (classcode), + CONSTRAINT ai_algorithm_class_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_class_classcode_3793b613_like ON public.ai_algorithm_class USING btree (classcode varchar_pattern_ops); +CREATE INDEX ai_algorithm_class_id_0a2e4e7b_like ON public.ai_algorithm_class USING btree (id varchar_pattern_ops); + + +-- public.ai_algorithm_engine 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm_engine; + +CREATE TABLE public.ai_algorithm_engine ( + id varchar(40) NOT NULL, + enginecode varchar(40) NOT NULL, + enginename varchar(100) NOT NULL, + description varchar(1000) NULL, + training_params_template text NULL, + detect_params_template text NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_algorithm_engine_enginecode_key UNIQUE (enginecode), + CONSTRAINT ai_algorithm_engine_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_engine_enginecode_cfe9d88d_like ON public.ai_algorithm_engine USING btree (enginecode varchar_pattern_ops); +CREATE INDEX ai_algorithm_engine_id_eba66d96_like ON public.ai_algorithm_engine USING btree (id varchar_pattern_ops); + + +-- public.ai_algorithm_models 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm_models; + +CREATE TABLE public.ai_algorithm_models ( + id varchar(40) NOT NULL, + algorithm_id varchar(40) NOT NULL, + model_version varchar(20) NOT NULL, + model_filepath varchar(1000) NULL, + model_filename varchar(1000) NOT NULL, + model_labels text NULL, + model_createtime timestamptz NULL, + evaluation_metrics text NULL, + evaluation_comments text NULL, + description varchar(2000) NULL, + model_status varchar(2) NOT NULL, + model_stars varchar(2) NULL, + model_usednumber int4 NULL, + call_duration int2 NULL, + uploader varchar(20) NULL, + upload_time timestamptz NOT NULL, + is_using varchar(2) NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_algorithm_models_model_usednumber_check CHECK ((model_usednumber >= 0)), + CONSTRAINT ai_algorithm_models_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_models_id_3079f244_like ON public.ai_algorithm_models USING btree (id varchar_pattern_ops); + + +-- public.ai_algorithm_output 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm_output; + +CREATE TABLE public.ai_algorithm_output ( + id varchar(40) NOT NULL, + algorithm_id varchar(40) NOT NULL, + item_order int2 NOT NULL, + item_name varchar(200) NOT NULL, + item_desc varchar(200) NOT NULL, + item_type varchar(2) NOT NULL, + item_unit varchar(100) NULL, + item_range varchar(100) NULL, + description varchar(2000) NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_algorithm_output_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_output_id_ab741e12_like ON public.ai_algorithm_output USING btree (id varchar_pattern_ops); + + +-- public.ai_algorithm_params 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm_params; + +CREATE TABLE public.ai_algorithm_params ( + id varchar(40) NOT NULL, + algorithm_id varchar(40) NOT NULL, + param_class varchar(2) NULL, + param_order int2 NOT NULL, + param_name varchar(200) NOT NULL, + param_desc varchar(200) NOT NULL, + param_type varchar(2) NOT NULL, + param_unit varchar(100) NULL, + param_range varchar(2000) NULL, + default_values varchar(2000) NULL, + description varchar(2000) NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_algorithm_params_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_params_id_1389b87b_like ON public.ai_algorithm_params USING btree (id varchar_pattern_ops); + + +-- public.ai_algorithm_train_records 定义 + +-- Drop table + +-- DROP TABLE public.ai_algorithm_train_records; + +CREATE TABLE public.ai_algorithm_train_records ( + id varchar(40) NOT NULL, + algorithm_id varchar(40) NOT NULL, + algorithm_name varchar(200) NOT NULL, + train_code varchar(20) NOT NULL, + train_title varchar(200) NOT NULL, + train_start_time timestamptz NULL, + link_datasets varchar(400) NULL, + trainset_path varchar(400) NULL, + validationset_path varchar(400) NULL, + train_labels varchar(2000) NULL, + train_params text NULL, + train_total_times int4 NULL, + model_createtime timestamptz NULL, + model_trainresult text NULL, + model_filename varchar(200) NULL, + model_filepath varchar(400) NULL, + evaluation_metrics text NULL, + evaluation_comments text NULL, + record_status varchar(4) NOT NULL, + train_end_time timestamptz NULL, + creator varchar(20) NOT NULL, + create_time timestamptz NOT NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + train_server varchar(400) NULL, + train_type varchar(20) NOT NULL, + ws_server varchar(200) NULL, + CONSTRAINT ai_algorithm_train_records_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_train_records_id_d444e53a_like ON public.ai_algorithm_train_records USING btree (id varchar_pattern_ops); + + +-- public.ai_annotate_team 定义 + +-- Drop table + +-- DROP TABLE public.ai_annotate_team; + +CREATE TABLE public.ai_annotate_team ( + id varchar(40) NOT NULL, + team_code varchar(40) NOT NULL, + team_name varchar(200) NOT NULL, + team_leader_id varchar(40) NULL, + team_leader_name varchar(200) NULL, + description varchar(2000) NULL, + organization varchar(200) NULL, + features varchar(200) NULL, + status varchar(2) NOT NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_annotate_team_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_annotate_team_id_9f4d943a_like ON public.ai_annotate_team USING btree (id varchar_pattern_ops); + + +-- public.ai_annotate_team_member 定义 + +-- Drop table + +-- DROP TABLE public.ai_annotate_team_member; + +CREATE TABLE public.ai_annotate_team_member ( + id varchar(40) NOT NULL, + team_id varchar(40) NOT NULL, + member_account varchar(100) NOT NULL, + member_name varchar(40) NOT NULL, + member_role varchar(20) NOT NULL, + member_email varchar(200) NULL, + remark varchar(200) NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_annotate_team_member_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_annotate_team_member_id_e7dbf9c8_like ON public.ai_annotate_team_member USING btree (id varchar_pattern_ops); + + +-- public.ai_dataset 定义 + +-- Drop table + +-- DROP TABLE public.ai_dataset; + +CREATE TABLE public.ai_dataset ( + id varchar(40) NOT NULL, + dataset_code varchar(40) NOT NULL, -- 数据集编号 + dataset_name varchar(200) NOT NULL, -- 数据集名称 + description varchar(2000) NULL, -- 描述 + dataset_type varchar(2) NOT NULL, -- 类型 + features varchar(200) NULL, -- 特征 + original_file_path varchar(400) NULL, -- 原始文件目录 + original_file_name varchar(8000) NULL, -- 原始文件名称 + dataset_path varchar(400) NULL, -- 数据集存储路径 + dataset_count int4 NULL, -- 样本总数 + annotated_count int4 NOT NULL DEFAULT 0, -- 已标注样本总数 + dataset_labels varchar(2000) NULL, -- 数据集标签 + status varchar(2) NOT NULL, -- 数据集状态 + creator varchar(20) NOT NULL, + create_time timestamptz NOT NULL, + custom1 varchar(200) NULL, + custom3 varchar(200) NULL, + custom2 varchar(2000) NULL, + CONSTRAINT ai_algorithm_dataset_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_algorithm_dataset_id_2cef5ae1_like ON public.ai_dataset USING btree (id varchar_pattern_ops); + +-- Column comments + +COMMENT ON COLUMN public.ai_dataset.dataset_code IS '数据集编号'; +COMMENT ON COLUMN public.ai_dataset.dataset_name IS '数据集名称'; +COMMENT ON COLUMN public.ai_dataset.description IS '描述'; +COMMENT ON COLUMN public.ai_dataset.dataset_type IS '类型'; +COMMENT ON COLUMN public.ai_dataset.features IS '特征'; +COMMENT ON COLUMN public.ai_dataset.original_file_path IS '原始文件目录'; +COMMENT ON COLUMN public.ai_dataset.original_file_name IS '原始文件名称'; +COMMENT ON COLUMN public.ai_dataset.dataset_path IS '数据集存储路径'; +COMMENT ON COLUMN public.ai_dataset.dataset_count IS '样本总数'; +COMMENT ON COLUMN public.ai_dataset.annotated_count IS '已标注样本总数'; +COMMENT ON COLUMN public.ai_dataset.dataset_labels IS '数据集标签'; +COMMENT ON COLUMN public.ai_dataset.status IS '数据集状态'; + + +-- public.ai_dataset_sample 定义 + +-- Drop table + +-- DROP TABLE public.ai_dataset_sample; + +CREATE TABLE public.ai_dataset_sample ( + id varchar(40) NOT NULL, + dataset_id varchar(40) NOT NULL, + saved_path varchar(600) NOT NULL, + original_filename varchar(200) NOT NULL, + saved_filename varchar(200) NOT NULL, + saved_filesize varchar(10) NOT NULL, + rectangle varchar(2000) NULL, + polygon text NULL, + status varchar(2) NOT NULL, + create_time timestamptz NOT NULL, + custom1 varchar(200) NULL, + custom3 varchar(200) NULL, + custom2 varchar(1000) NULL, + CONSTRAINT ai_dataset_sample_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_dataset_sample_id_c8268768_like ON public.ai_dataset_sample USING btree (id varchar_pattern_ops); + + +-- public.ai_temp_file 定义 + +-- Drop table + +-- DROP TABLE public.ai_temp_file; + +CREATE TABLE public.ai_temp_file ( + id varchar(40) NOT NULL, + original_path varchar(600) NULL, -- 原始文件路径 + original_name varchar(200) NOT NULL, -- 原始文件名称 + original_type varchar(20) NOT NULL, -- 原始文件类型 + bucket_name varchar(200) NULL, -- minio-桶名称 + object_name varchar(200) NULL, -- 对象名称 + object_size int8 NULL, -- 对象大小 + content_type varchar(100) NULL, -- 对象类型 + status varchar(2) NOT NULL, -- 状态 + create_time timestamptz NOT NULL, + custom1 varchar(200) NULL, + custom3 varchar(200) NULL, + custom2 varchar(1000) NULL, + CONSTRAINT ai_temp_file_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_ai_temp_file_id_c8223412_like ON public.ai_temp_file USING btree (id varchar_pattern_ops); + +-- Column comments + +COMMENT ON COLUMN public.ai_temp_file.original_path IS '原始文件路径'; +COMMENT ON COLUMN public.ai_temp_file.original_name IS '原始文件名称'; +COMMENT ON COLUMN public.ai_temp_file.original_type IS '原始文件类型'; +COMMENT ON COLUMN public.ai_temp_file.bucket_name IS 'minio-桶名称'; +COMMENT ON COLUMN public.ai_temp_file.object_name IS '对象名称'; +COMMENT ON COLUMN public.ai_temp_file.object_size IS '对象大小'; +COMMENT ON COLUMN public.ai_temp_file.content_type IS '对象类型'; +COMMENT ON COLUMN public.ai_temp_file.status IS '状态'; + + +-- public.ai_annotate_task 定义 + +-- Drop table + +-- DROP TABLE public.ai_annotate_task; + +CREATE TABLE public.ai_annotate_task ( + id varchar(40) NOT NULL, + task_name varchar(200) NOT NULL, + annotate_type varchar(2) NOT NULL, + description varchar(2000) NULL, + dataset_id varchar(40) NOT NULL, + task_count int4 NULL, + task_range varchar(100) NULL, + task_type varchar(2) NULL, + region_type varchar(2) NULL, + labels varchar(2000) NULL, + work_type varchar(2) NOT NULL, + task_team varchar(40) NULL, + task_leader varchar(40) NULL, + status varchar(2) NOT NULL, + creator varchar(20) NOT NULL, + create_time timestamptz NOT NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_annotate_task_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_annotate_task_id_9f6b2fc0_like ON public.ai_annotate_task USING btree (id varchar_pattern_ops); + +-- public.ai_annotate_task_sample 定义 + +-- Drop table + +-- DROP TABLE public.ai_annotate_task_sample; + +CREATE TABLE public.ai_annotate_task_sample ( + id varchar(40) NOT NULL, + task_id varchar(40) NOT NULL, + executor varchar(100) NOT NULL, + sample_id varchar(40) NOT NULL, + sample_path varchar(600) NOT NULL, + sample_name varchar(200) NOT NULL, + hard varchar(2) NOT NULL, + annotation_content text NULL, + class_label varchar(200) NULL, + annotation_time timestamptz NULL, + status varchar(2) NOT NULL, + auditor varchar(20) NULL, + feedback varchar(400) NULL, + custom1 varchar(200) NULL, + custom2 varchar(200) NULL, + custom3 varchar(200) NULL, + CONSTRAINT ai_annotate_task_sample_pkey PRIMARY KEY (id) +); +CREATE INDEX ai_annotate_task_sample_id_3e6e0205_like ON public.ai_annotate_task_sample USING btree (id varchar_pattern_ops); + +-- ============================================================ +-- 智能终端数据表 (ai_smart_terminal) +-- 场景:云端孪生镜像 — 模型训练完成后发布到云端孪生设备, +-- 边缘端定期检测云端版本并下载更新,实现动态模型更新。 +-- 来源:Oracle SD_AIBOX_B_H(AI边缘计算盒子基本属性表) +-- 更新日期:2026-07-09 +-- ============================================================ + +-- public.ai_smart_terminal 定义 + +-- Drop table +-- DROP TABLE public.ai_smart_terminal; + +CREATE TABLE public.ai_smart_terminal ( + -- ======== 基本信息 ======== + id varchar(40) NOT NULL, -- 主键ID + stcd varchar(40) NOT NULL, -- 终端编码(与边缘实体设备一一对应) + stnm varchar(255) NOT NULL, -- 终端名称 + sttp varchar(2) NOT NULL, -- 终端分类:01=鱼类识别AI盒子 02=鸟类识别AI盒子 03=野生动物识别AI盒子 04=鱼类分拣装置 + order_index int4 NULL, -- 排序 + + -- ======== 位置信息 ======== + lgtd numeric(10,6) NULL, -- 经度(单位:°) + lttd numeric(10,6) NULL, -- 纬度(单位:°) + elev numeric(10,6) NULL, -- 高程(单位:m) + rstcd varchar(64) NULL, -- 所属电站编码 + base_id varchar(64) NULL, -- 所属水电基地编码 + hbrvcd varchar(64) NULL, -- 所属水电基地流域编码 + rvcd varchar(64) NULL, -- 所属流域编码 + + -- ======== 设备配置 ======== + aipz varchar(1000) NULL, -- AI盒子硬件/软件配置信息 + ipaddr varchar(512) NULL, -- 设备IP地址 + siminfo varchar(512) NULL, -- SIM卡信息 + lxr varchar(512) NULL, -- 联系人及联系电话 + purpose varchar(512) NULL, -- 用途说明 + + -- ======== 监测配置 ======== + stindx varchar(1000) NULL, -- 监测指标列表 + dtfrqcy int4 NULL, -- 数据采集频次(单位:min) + mway int2 NULL, -- 监测方式:0=人工监测 1=自动监测 2=混合监测 + + -- ======== 启用与接入状态 ======== + usfl int2 NULL, -- 是否启用:0=否 1=是 + dtin int2 NULL, -- 数据是否接入:0=未接入 1=已接入 + dtin_tm timestamptz NULL, -- 数据首次接入时间 + + -- ======== 云端孪生 — 模型发布 ======== + model_id varchar(40) NULL, -- 已部署模型ID(关联训练产出的模型记录) + model_version varchar(64) NULL, -- 已部署模型版本号 + model_path varchar(600) NULL, -- 模型文件存储路径(MinIO对象路径) + model_publish_time timestamptz NULL, -- 模型发布时间(发布到云端孪生设备的时间) + model_publish_user varchar(36) NULL, -- 模型发布人 + + -- ======== 边缘端 — 同步状态 ======== + edge_model_version varchar(64) NULL, -- 边缘端当前运行的模型版本 + edge_update_time timestamptz NULL, -- 边缘端最后一次模型更新时间 + last_heartbeat_time timestamptz NULL, -- 边缘端最后心跳时间 + online_status int2 NULL, -- 在线状态:0=离线 1=在线 + sync_check_interval int4 NULL, -- 同步检测间隔(单位:min,边缘端轮询云端孪生设备版本的时间间隔) + + -- ======== 运维记录 ======== + remark varchar(512) NULL, -- 备注 + record_user varchar(36) NULL, -- 创建人 + record_time timestamptz NOT NULL DEFAULT now(), -- 创建时间 + is_deleted int2 NOT NULL DEFAULT 0, -- 是否已删除:0=未删除 1=已删除 + + CONSTRAINT ai_smart_terminal_pkey PRIMARY KEY (id) +); + +CREATE INDEX ai_smart_terminal_id_idx ON public.ai_smart_terminal USING btree (id varchar_pattern_ops); +CREATE INDEX ai_smart_terminal_stcd_idx ON public.ai_smart_terminal USING btree (stcd); + +-- Column comments + +COMMENT ON TABLE public.ai_smart_terminal IS '智能终端数据表(云端孪生镜像)'; +COMMENT ON COLUMN public.ai_smart_terminal.id IS '主键ID'; +COMMENT ON COLUMN public.ai_smart_terminal.stcd IS '终端编码(与边缘实体设备一一对应)'; +COMMENT ON COLUMN public.ai_smart_terminal.stnm IS '终端名称'; +COMMENT ON COLUMN public.ai_smart_terminal.sttp IS '终端分类:01=鱼类识别AI盒子 02=鸟类识别AI盒子 03=野生动物识别AI盒子 04=鱼类分拣装置'; +COMMENT ON COLUMN public.ai_smart_terminal.order_index IS '排序'; +COMMENT ON COLUMN public.ai_smart_terminal.lgtd IS '经度(单位:°)'; +COMMENT ON COLUMN public.ai_smart_terminal.lttd IS '纬度(单位:°)'; +COMMENT ON COLUMN public.ai_smart_terminal.elev IS '高程(单位:m)'; +COMMENT ON COLUMN public.ai_smart_terminal.rstcd IS '所属电站编码'; +COMMENT ON COLUMN public.ai_smart_terminal.base_id IS '所属水电基地编码'; +COMMENT ON COLUMN public.ai_smart_terminal.hbrvcd IS '所属水电基地流域编码'; +COMMENT ON COLUMN public.ai_smart_terminal.rvcd IS '所属流域编码'; +COMMENT ON COLUMN public.ai_smart_terminal.aipz IS 'AI盒子硬件/软件配置信息'; +COMMENT ON COLUMN public.ai_smart_terminal.ipaddr IS '设备IP地址'; +COMMENT ON COLUMN public.ai_smart_terminal.siminfo IS 'SIM卡信息'; +COMMENT ON COLUMN public.ai_smart_terminal.lxr IS '联系人及联系电话'; +COMMENT ON COLUMN public.ai_smart_terminal.purpose IS '用途说明'; +COMMENT ON COLUMN public.ai_smart_terminal.stindx IS '监测指标列表'; +COMMENT ON COLUMN public.ai_smart_terminal.dtfrqcy IS '数据采集频次(单位:min)'; +COMMENT ON COLUMN public.ai_smart_terminal.mway IS '监测方式:0=人工监测 1=自动监测 2=混合监测'; +COMMENT ON COLUMN public.ai_smart_terminal.usfl IS '是否启用:0=否 1=是'; +COMMENT ON COLUMN public.ai_smart_terminal.dtin IS '数据是否接入:0=未接入 1=已接入'; +COMMENT ON COLUMN public.ai_smart_terminal.dtin_tm IS '数据首次接入时间'; +COMMENT ON COLUMN public.ai_smart_terminal.model_id IS '已部署模型ID(关联训练产出的模型记录)'; +COMMENT ON COLUMN public.ai_smart_terminal.model_version IS '已部署模型版本号'; +COMMENT ON COLUMN public.ai_smart_terminal.model_path IS '模型文件存储路径(MinIO对象路径)'; +COMMENT ON COLUMN public.ai_smart_terminal.model_publish_time IS '模型发布时间(发布到云端孪生设备的时间)'; +COMMENT ON COLUMN public.ai_smart_terminal.model_publish_user IS '模型发布人'; +COMMENT ON COLUMN public.ai_smart_terminal.edge_model_version IS '边缘端当前运行的模型版本'; +COMMENT ON COLUMN public.ai_smart_terminal.edge_update_time IS '边缘端最后一次模型更新时间'; +COMMENT ON COLUMN public.ai_smart_terminal.last_heartbeat_time IS '边缘端最后心跳时间'; +COMMENT ON COLUMN public.ai_smart_terminal.online_status IS '在线状态:0=离线 1=在线'; +COMMENT ON COLUMN public.ai_smart_terminal.sync_check_interval IS '同步检测间隔(单位:min,边缘端轮询云端孪生设备版本的时间间隔)'; +COMMENT ON COLUMN public.ai_smart_terminal.remark IS '备注'; +COMMENT ON COLUMN public.ai_smart_terminal.record_user IS '创建人'; +COMMENT ON COLUMN public.ai_smart_terminal.record_time IS '创建时间'; +COMMENT ON COLUMN public.ai_smart_terminal.is_deleted IS '是否已删除:0=未删除 1=已删除'; + + +-- public.auth_group 定义 + +-- Drop table + +-- DROP TABLE public.auth_group; + +CREATE TABLE public.auth_group ( + id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 NO CYCLE) NOT NULL, + "name" varchar(150) NOT NULL, + CONSTRAINT auth_group_name_key UNIQUE (name), + CONSTRAINT auth_group_pkey PRIMARY KEY (id) +); +CREATE INDEX auth_group_name_a6ea08ec_like ON public.auth_group USING btree (name varchar_pattern_ops); + + +-- public.auth_organization 定义 + +-- Drop table + +-- DROP TABLE public.auth_organization; + +CREATE TABLE public.auth_organization ( + id varchar(40) NOT NULL, + orgtype varchar(2) NOT NULL, + orgcode varchar(20) NOT NULL, + orgname varchar(100) NOT NULL, + parentid varchar(40) NULL, + isvalid varchar(2) NOT NULL, + description varchar(1000) NULL, + custom1 varchar(100) NULL, + custom2 varchar(100) NULL, + custom3 varchar(100) NULL, + CONSTRAINT auth_organization_pkey PRIMARY KEY (id) +); +CREATE INDEX auth_organization_id_c7e641af_like ON public.auth_organization USING btree (id varchar_pattern_ops); + + +-- public.auth_user 定义 + +-- Drop table + +-- DROP TABLE public.auth_user; + +CREATE TABLE public.auth_user ( + id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 NO CYCLE) NOT NULL, + "password" varchar(128) NOT NULL, + last_login timestamptz NULL, + is_superuser bool NOT NULL, + username varchar(150) NOT NULL, + first_name varchar(150) NOT NULL, + last_name varchar(150) NOT NULL, + email varchar(254) NOT NULL, + is_staff bool NOT NULL, + is_active bool NOT NULL, + date_joined timestamptz NOT NULL, + organization_id varchar(50) NULL, + CONSTRAINT auth_user_pkey PRIMARY KEY (id), + CONSTRAINT auth_user_username_key UNIQUE (username) +); +CREATE INDEX auth_user_username_6821ab7c_like ON public.auth_user USING btree (username varchar_pattern_ops); + + +-- public.django_content_type 定义 + +-- Drop table + +-- DROP TABLE public.django_content_type; + +CREATE TABLE public.django_content_type ( + id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 NO CYCLE) NOT NULL, + app_label varchar(100) NOT NULL, + model varchar(100) NOT NULL, + CONSTRAINT django_content_type_app_label_model_76bd3d3b_uniq UNIQUE (app_label, model), + CONSTRAINT django_content_type_pkey PRIMARY KEY (id) +); + + +-- public.django_migrations 定义 + +-- Drop table + +-- DROP TABLE public.django_migrations; + +CREATE TABLE public.django_migrations ( + id int8 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1 NO CYCLE) NOT NULL, + app varchar(255) NOT NULL, + "name" varchar(255) NOT NULL, + applied timestamptz NOT NULL, + CONSTRAINT django_migrations_pkey PRIMARY KEY (id) +); + + +-- public.django_session 定义 + +-- Drop table + +-- DROP TABLE public.django_session; + +CREATE TABLE public.django_session ( + session_key varchar(40) NOT NULL, + session_data text NOT NULL, + expire_date timestamptz NOT NULL, + CONSTRAINT django_session_pkey PRIMARY KEY (session_key) +); +CREATE INDEX django_session_expire_date_a5c62663 ON public.django_session USING btree (expire_date); +CREATE INDEX django_session_session_key_c0390e0f_like ON public.django_session USING btree (session_key varchar_pattern_ops); + + +-- public.auth_permission 定义 + +-- Drop table + +-- DROP TABLE public.auth_permission; + +CREATE TABLE public.auth_permission ( + id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 NO CYCLE) NOT NULL, + "name" varchar(255) NOT NULL, + content_type_id int4 NOT NULL, + codename varchar(100) NOT NULL, + CONSTRAINT auth_permission_content_type_id_codename_01ab375a_uniq UNIQUE (content_type_id, codename), + CONSTRAINT auth_permission_pkey PRIMARY KEY (id), + CONSTRAINT auth_permission_content_type_id_2f476e4b_fk_django_co FOREIGN KEY (content_type_id) REFERENCES public.django_content_type(id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX auth_permission_content_type_id_2f476e4b ON public.auth_permission USING btree (content_type_id); + + +-- public.auth_user_groups 定义 + +-- Drop table + +-- DROP TABLE public.auth_user_groups; + +CREATE TABLE public.auth_user_groups ( + id int8 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1 NO CYCLE) NOT NULL, + user_id int4 NOT NULL, + group_id int4 NOT NULL, + CONSTRAINT auth_user_groups_pkey PRIMARY KEY (id), + CONSTRAINT auth_user_groups_user_id_group_id_94350c0c_uniq UNIQUE (user_id, group_id), + CONSTRAINT auth_user_groups_group_id_97559544_fk_auth_group_id FOREIGN KEY (group_id) REFERENCES public.auth_group(id) DEFERRABLE INITIALLY DEFERRED, + CONSTRAINT auth_user_groups_user_id_6a12ed8b_fk_auth_user_id FOREIGN KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX auth_user_groups_group_id_97559544 ON public.auth_user_groups USING btree (group_id); +CREATE INDEX auth_user_groups_user_id_6a12ed8b ON public.auth_user_groups USING btree (user_id); + + +-- public.auth_user_user_permissions 定义 + +-- Drop table + +-- DROP TABLE public.auth_user_user_permissions; + +CREATE TABLE public.auth_user_user_permissions ( + id int8 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1 NO CYCLE) NOT NULL, + user_id int4 NOT NULL, + permission_id int4 NOT NULL, + CONSTRAINT auth_user_user_permissions_pkey PRIMARY KEY (id), + CONSTRAINT auth_user_user_permissions_user_id_permission_id_14a6b632_uniq UNIQUE (user_id, permission_id), + CONSTRAINT auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm FOREIGN KEY (permission_id) REFERENCES public.auth_permission(id) DEFERRABLE INITIALLY DEFERRED, + CONSTRAINT auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id FOREIGN KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX auth_user_user_permissions_permission_id_1fbb5f2c ON public.auth_user_user_permissions USING btree (permission_id); +CREATE INDEX auth_user_user_permissions_user_id_a95ead1b ON public.auth_user_user_permissions USING btree (user_id); + + +-- public.django_admin_log 定义 + +-- Drop table + +-- DROP TABLE public.django_admin_log; + +CREATE TABLE public.django_admin_log ( + id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 NO CYCLE) NOT NULL, + action_time timestamptz NOT NULL, + object_id text NULL, + object_repr varchar(200) NOT NULL, + action_flag int2 NOT NULL, + change_message text NOT NULL, + content_type_id int4 NULL, + user_id int4 NOT NULL, + CONSTRAINT django_admin_log_action_flag_check CHECK ((action_flag >= 0)), + CONSTRAINT django_admin_log_pkey PRIMARY KEY (id), + CONSTRAINT django_admin_log_content_type_id_c4bce8eb_fk_django_co FOREIGN KEY (content_type_id) REFERENCES public.django_content_type(id) DEFERRABLE INITIALLY DEFERRED, + CONSTRAINT django_admin_log_user_id_c564eba6_fk_auth_user_id FOREIGN KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX django_admin_log_content_type_id_c4bce8eb ON public.django_admin_log USING btree (content_type_id); +CREATE INDEX django_admin_log_user_id_c564eba6 ON public.django_admin_log USING btree (user_id); + + +-- public.auth_group_permissions 定义 + +-- Drop table + +-- DROP TABLE public.auth_group_permissions; + +CREATE TABLE public.auth_group_permissions ( + id int8 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1 NO CYCLE) NOT NULL, + group_id int4 NOT NULL, + permission_id int4 NOT NULL, + CONSTRAINT auth_group_permissions_group_id_permission_id_0cd325b0_uniq UNIQUE (group_id, permission_id), + CONSTRAINT auth_group_permissions_pkey PRIMARY KEY (id), + CONSTRAINT auth_group_permissio_permission_id_84c5c92e_fk_auth_perm FOREIGN KEY (permission_id) REFERENCES public.auth_permission(id) DEFERRABLE INITIALLY DEFERRED, + CONSTRAINT auth_group_permissions_group_id_b120cbf9_fk_auth_group_id FOREIGN KEY (group_id) REFERENCES public.auth_group(id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX auth_group_permissions_group_id_b120cbf9 ON public.auth_group_permissions USING btree (group_id); +CREATE INDEX auth_group_permissions_permission_id_84c5c92e ON public.auth_group_permissions USING btree (permission_id); diff --git a/backend/config/urls.py b/backend/config/urls.py new file mode 100644 index 0000000..84836c6 --- /dev/null +++ b/backend/config/urls.py @@ -0,0 +1,42 @@ +from django.contrib import admin +from django.urls import include, path, re_path +from django.conf import settings +from django.conf.urls.static import static +from drf_yasg import openapi +from drf_yasg.views import get_schema_view +from rest_framework import permissions +from rest_framework_simplejwt import views as JWTAuthenticationViews + +from apps.iam.views.user import UserLoginView + +schema_view = get_schema_view( + openapi.Info( + title="Your API", + default_version="v1", + description="Your API description", + terms_of_service="https://www.yourapp.com/terms/", + contact=openapi.Contact(email="contact@yourapp.com"), + license=openapi.License(name="Your License"), + ), + public=True, + permission_classes=(permissions.AllowAny,), +) + +urlpatterns = [ + path("admin/", admin.site.urls), + path("server/", include("config.api_urls")), + path("login/", UserLoginView.as_view(), name="user_login"), + path("api/token/", JWTAuthenticationViews.TokenObtainPairView.as_view(), name="get_token"), + path( + "api/token/refresh/", + JWTAuthenticationViews.TokenRefreshView.as_view(), + name="refresh_token", + ), + path("api/token/verify/", JWTAuthenticationViews.TokenVerifyView.as_view(), name="token_verify"), + re_path(r"^swagger(?P\.json|\.yaml)$", schema_view.without_ui(cache_timeout=0), name="schema-json"), + path("swagger/", schema_view.with_ui("swagger", cache_timeout=0), name="schema-swagger-ui"), + path("redoc/", schema_view.with_ui("redoc", cache_timeout=0), name="schema-redoc"), +] + +if settings.DEBUG: + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/backend/config/wsgi.py b/backend/config/wsgi.py new file mode 100644 index 0000000..93d9209 --- /dev/null +++ b/backend/config/wsgi.py @@ -0,0 +1,8 @@ +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") + +application = get_wsgi_application() + diff --git a/backend/font/汉仪旗黑.ttf b/backend/font/汉仪旗黑.ttf new file mode 100644 index 0000000..a237fa1 Binary files /dev/null and b/backend/font/汉仪旗黑.ttf differ diff --git a/backend/font/青鸟华光简琥珀.ttf b/backend/font/青鸟华光简琥珀.ttf new file mode 100644 index 0000000..e601675 Binary files /dev/null and b/backend/font/青鸟华光简琥珀.ttf differ diff --git a/backend/image_server.py b/backend/image_server.py new file mode 100644 index 0000000..fc5746b --- /dev/null +++ b/backend/image_server.py @@ -0,0 +1,346 @@ +""" +独立图片预览 HTTP 服务 +启动方式: python image_server.py [端口] +默认端口: 8080 +""" +import os +import sys +import json +import mimetypes +import http.server +from pathlib import Path +from urllib.parse import unquote, urlparse, parse_qs + +# 图片根目录(与 settings/base.py 中 FILESPACE_ROOT_PATH 默认值一致) +IMAGE_ROOT = Path(r"D:\00_Workspace\python\model_train\project_space") +IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp", ".tiff", ".tif"} + +BASE_DIR = Path(__file__).resolve().parent +TEMPLATE = r""" + + + + +图片预览 - {title} + + + +
+

图片预览服务

+ {breadcrumb} +
+
+
+ {body} +
+ +
独立图片预览服务 — 端口 {port}
+ + + +""" + + +def is_image(filename: str) -> bool: + return Path(filename).suffix.lower() in IMAGE_EXTENSIONS + + +def get_breadcrumb_html(relative_path: str) -> str: + """生成面包屑导航""" + if not relative_path or relative_path == ".": + return '根目录' + parts = relative_path.replace("\\", "/").strip("/").split("/") + links = ['根目录'] + accumulated = "" + for p in parts: + accumulated += "/" + p + links.append(f'{p}') + return " / ".join(links) + + +def get_parent_dir(relative_path: str) -> str: + if not relative_path or relative_path == ".": + return "" + parent = str(Path(relative_path).parent) + return "" if parent == "." else parent + + +def build_page_html(current_dir: str, view_mode: str, port: int) -> str: + root = IMAGE_ROOT + if current_dir: + scan_path = root / current_dir + else: + scan_path = root + + dir_param = f"dir={current_dir}&" if current_dir else "" + + if not scan_path.exists(): + body = f'
目录不存在: {scan_path}
' + return TEMPLATE.format( + title="目录不存在", + breadcrumb=get_breadcrumb_html(current_dir), + dir_param=dir_param, + body=body, + current_view=view_mode, + gallery_active="active" if view_mode != "list" else "", + list_active="active" if view_mode == "list" else "", + image_list="[]", + port=port, + ) + + folders = [] + images = [] + + try: + for entry in sorted(scan_path.iterdir(), key=lambda x: (not x.is_dir(), x.name.lower())): + if entry.name.startswith("."): + continue + if entry.is_dir(): + folders.append(entry.name) + elif is_image(entry.name): + images.append(entry.name) + except PermissionError: + pass + + body_parts = [] + + # 返回上级目录 + if current_dir and current_dir != ".": + parent = get_parent_dir(current_dir) + body_parts.append( + f'' + ) + + # 子目录 + if folders: + parts = [] + for f in folders: + sub_dir = f"{current_dir}/{f}".lstrip("/") if current_dir else f + parts.append( + f'' + f'📁{f}' + ) + body_parts.append(f'
{"".join(parts)}
') + + # 图片 + if images: + image_list_data = [] + for img in images: + if current_dir: + rel = f"{current_dir}/{img}".replace("\\", "/") + else: + rel = img + image_list_data.append({"name": img, "path": rel}) + + if view_mode == "list": + rows = [] + for i, img_info in enumerate(image_list_data): + rows.append( + f'{i+1}' + f'{img_info["name"]}' + f'预览' + ) + body_parts.append( + '' + '' + '' + '' + '' + "".join(rows) + "
#文件名操作
" + ) + else: + cards = [] + for i, img_info in enumerate(image_list_data): + cards.append( + f'
' + f'' + f'
{img_info["name"]}
' + f'
' + ) + body_parts.append(f'') + + body = "".join(body_parts) + return TEMPLATE.format( + title=current_dir or "根目录", + breadcrumb=get_breadcrumb_html(current_dir), + dir_param=dir_param, + body=body, + current_view=view_mode, + gallery_active="active" if view_mode != "list" else "", + list_active="active" if view_mode == "list" else "", + image_list=json.dumps(image_list_data), + port=port, + ) + else: + if folders: + body = "".join(body_parts) + else: + body_parts.append('
此目录下没有图片
') + body = "".join(body_parts) + return TEMPLATE.format( + title=current_dir or "根目录", + breadcrumb=get_breadcrumb_html(current_dir), + dir_param=dir_param, + body=body, + current_view=view_mode, + gallery_active="active" if view_mode != "list" else "", + list_active="active" if view_mode == "list" else "", + image_list="[]", + port=port, + ) + + +class ImagePreviewHandler(http.server.SimpleHTTPRequestHandler): + """自定义请求处理器""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, directory=str(BASE_DIR), **kwargs) + + def do_GET(self): + parsed = urlparse(self.path) + path = unquote(parsed.path) + params = parse_qs(parsed.query) + + # 根路径 → HTML 页面 + if path == "/": + current_dir = params.get("dir", [""])[0] + view_mode = params.get("view", ["gallery"])[0] + html = build_page_html(current_dir, view_mode, PORT) + self._respond_html(html) + return + + # /file/ 路径 → 返回实际图片文件 + if path.startswith("/file/"): + file_rel = path[len("/file/"):] + file_path = IMAGE_ROOT / file_rel + if file_path.exists() and file_path.is_file(): + self._serve_file(file_path) + else: + self.send_error(404, f"File not found: {file_rel}") + return + + # 其他路径 → 默认静态文件处理 + super().do_GET() + + def _respond_html(self, html: str): + data = html.encode("utf-8") + self.send_response(200) + self.send_header("Content-Type", "text/html; charset=utf-8") + self.send_header("Content-Length", str(len(data))) + self.send_header("Cache-Control", "no-cache") + self.end_headers() + self.wfile.write(data) + + def _serve_file(self, file_path: Path): + mime_type, _ = mimetypes.guess_type(str(file_path)) + if mime_type is None: + mime_type = "application/octet-stream" + file_size = file_path.stat().st_size + + self.send_response(200) + self.send_header("Content-Type", mime_type) + self.send_header("Content-Length", str(file_size)) + self.send_header("Cache-Control", "public, max-age=3600") + self.end_headers() + with open(file_path, "rb") as f: + self.wfile.write(f.read()) + + def log_message(self, format, *args): + print(f"[{self.log_date_time_string()}] {args[0]}") + + +def main(): + global PORT + PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8080 + + # 确保图片根目录存在 + if not IMAGE_ROOT.exists(): + os.makedirs(IMAGE_ROOT, exist_ok=True) + print(f"已创建目录: {IMAGE_ROOT}") + + server = http.server.HTTPServer(("0.0.0.0", PORT), ImagePreviewHandler) + print(f"=" * 55) + print(f" 图片预览服务已启动") + print(f" 图片根目录: {IMAGE_ROOT}") + print(f" 访问地址: http://localhost:{PORT}") + print(f" 按 Ctrl+C 停止服务") + print(f"=" * 55) + try: + server.serve_forever() + except KeyboardInterrupt: + print("\n服务已停止") + server.server_close() + + +if __name__ == "__main__": + main() diff --git a/backend/manage.py b/backend/manage.py new file mode 100644 index 0000000..29319d1 --- /dev/null +++ b/backend/manage.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") + if os.environ.get("DJANGO_MANAGE_BREAKPOINT", "").strip().lower() in { + "1", + "true", + "yes", + "y", + "on", + }: + breakpoint() + blocked_commands = { + "migrate", + "makemigrations", + "squashmigrations", + "sqlmigrate", + } + allow_migrations = os.environ.get("DJANGO_ALLOW_MIGRATIONS", "").strip().lower() in { + "1", + "true", + "yes", + "y", + "on", + } + if not allow_migrations and any(arg in blocked_commands for arg in sys.argv[1:]): + raise SystemExit( + "migrations 已禁用:禁止执行 migrate/makemigrations/squashmigrations/sqlmigrate。" + "如确需执行,请临时设置环境变量 DJANGO_ALLOW_MIGRATIONS=true。" + ) + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/backend/readme.txt b/backend/readme.txt new file mode 100644 index 0000000..59d9f9c --- /dev/null +++ b/backend/readme.txt @@ -0,0 +1,13 @@ +Python项目启动: +1、python manage.py runserver 0.0.0.0:8000(支持http) +2、uvicorn industrial_prediction.asgi:application --host 0.0.0.0 --port 8000 (支持websocket和http) + +公司101服务部署: +AI算法模型训练及部署管理平台 +公司内部地址:192.168.1.101:3000 +账号/密码:admin/123456 +后端程序地址:/thb-space/document/industrial_train_prediction/industrial_train_prediction +前端程序地址:/thb-space/document/industrial_train_prediction/dist +静态文件存放地址:/thb-space/document/industrial_train_prediction/image +后端docker容器:industrial_container +前端docker容器:nginx \ No newline at end of file diff --git a/backend/scripts/20260709_add_ai_dataset_annotated_count.sql b/backend/scripts/20260709_add_ai_dataset_annotated_count.sql new file mode 100644 index 0000000..b047bd8 --- /dev/null +++ b/backend/scripts/20260709_add_ai_dataset_annotated_count.sql @@ -0,0 +1,26 @@ +ALTER TABLE public.ai_dataset +ADD COLUMN IF NOT EXISTS annotated_count int4 NOT NULL DEFAULT 0; + +COMMENT ON COLUMN public.ai_dataset.annotated_count IS '已标注样本总数'; + +UPDATE public.ai_dataset AS d +SET + dataset_count = stats.dataset_count, + annotated_count = stats.annotated_count +FROM ( + SELECT + s.dataset_id, + COUNT(*) AS dataset_count, + COUNT(*) FILTER ( + WHERE COALESCE(NULLIF(s.rectangle, ''), NULLIF(s.polygon, '')) IS NOT NULL + ) AS annotated_count + FROM public.ai_dataset_sample AS s + GROUP BY s.dataset_id +) AS stats +WHERE d.id = stats.dataset_id; + +UPDATE public.ai_dataset +SET + dataset_count = COALESCE(dataset_count, 0), + annotated_count = COALESCE(annotated_count, 0) +WHERE dataset_count IS NULL OR annotated_count IS NULL; diff --git a/backend/scripts/20260709_add_ai_smart_terminal.sql b/backend/scripts/20260709_add_ai_smart_terminal.sql new file mode 100644 index 0000000..58d80dc --- /dev/null +++ b/backend/scripts/20260709_add_ai_smart_terminal.sql @@ -0,0 +1,113 @@ +-- ============================================================ +-- 智能终端数据表 (ai_smart_terminal) +-- 场景:云端孪生镜像 — 模型训练完成后发布到云端孪生设备, +-- 边缘端定期检测云端版本并下载更新,实现动态模型更新。 +-- 来源:Oracle SD_AIBOX_B_H(AI边缘计算盒子基本属性表) +-- 更新日期:2026-07-09 +-- ============================================================ + +-- public.ai_smart_terminal 定义 + +-- Drop table +-- DROP TABLE public.ai_smart_terminal; + +CREATE TABLE public.ai_smart_terminal ( + -- ======== 基本信息 ======== + id varchar(40) NOT NULL, -- 主键ID + stcd varchar(40) NOT NULL, -- 终端编码(与边缘实体设备一一对应) + stnm varchar(255) NOT NULL, -- 终端名称 + sttp varchar(2) NOT NULL, -- 终端分类:01=鱼类识别AI盒子 02=鸟类识别AI盒子 03=野生动物识别AI盒子 04=鱼类分拣装置 + order_index int4 NULL, -- 排序 + + -- ======== 位置信息 ======== + lgtd numeric(10,6) NULL, -- 经度(单位:°) + lttd numeric(10,6) NULL, -- 纬度(单位:°) + elev numeric(10,6) NULL, -- 高程(单位:m) + rstcd varchar(64) NULL, -- 所属电站编码 + base_id varchar(64) NULL, -- 所属水电基地编码 + hbrvcd varchar(64) NULL, -- 所属水电基地流域编码 + rvcd varchar(64) NULL, -- 所属流域编码 + + -- ======== 设备配置 ======== + aipz varchar(1000) NULL, -- AI盒子硬件/软件配置信息 + ipaddr varchar(512) NULL, -- 设备IP地址 + siminfo varchar(512) NULL, -- SIM卡信息 + lxr varchar(512) NULL, -- 联系人及联系电话 + purpose varchar(512) NULL, -- 用途说明 + + -- ======== 监测配置 ======== + stindx varchar(1000) NULL, -- 监测指标列表 + dtfrqcy int4 NULL, -- 数据采集频次(单位:min) + mway int2 NULL, -- 监测方式:0=人工监测 1=自动监测 2=混合监测 + + -- ======== 启用与接入状态 ======== + usfl int2 NULL, -- 是否启用:0=否 1=是 + dtin int2 NULL, -- 数据是否接入:0=未接入 1=已接入 + dtin_tm timestamptz NULL, -- 数据首次接入时间 + + -- ======== 云端孪生 — 模型发布 ======== + model_id varchar(40) NULL, -- 已部署模型ID(关联训练产出的模型记录) + model_version varchar(64) NULL, -- 已部署模型版本号 + model_path varchar(600) NULL, -- 模型文件存储路径(MinIO对象路径) + model_publish_time timestamptz NULL, -- 模型发布时间(发布到云端孪生设备的时间) + model_publish_user varchar(36) NULL, -- 模型发布人 + + -- ======== 边缘端 — 同步状态 ======== + edge_model_version varchar(64) NULL, -- 边缘端当前运行的模型版本 + edge_update_time timestamptz NULL, -- 边缘端最后一次模型更新时间 + last_heartbeat_time timestamptz NULL, -- 边缘端最后心跳时间 + online_status int2 NULL, -- 在线状态:0=离线 1=在线 + sync_check_interval int4 NULL, -- 同步检测间隔(单位:min,边缘端轮询云端孪生设备版本的时间间隔) + + -- ======== 运维记录 ======== + remark varchar(512) NULL, -- 备注 + record_user varchar(36) NULL, -- 创建人 + record_time timestamptz NOT NULL DEFAULT now(), -- 创建时间 + is_deleted int2 NOT NULL DEFAULT 0, -- 是否已删除:0=未删除 1=已删除 + + CONSTRAINT ai_smart_terminal_pkey PRIMARY KEY (id) +); + +CREATE INDEX ai_smart_terminal_id_idx ON public.ai_smart_terminal USING btree (id varchar_pattern_ops); +CREATE INDEX ai_smart_terminal_stcd_idx ON public.ai_smart_terminal USING btree (stcd); + +-- Column comments + +COMMENT ON TABLE public.ai_smart_terminal IS '智能终端数据表(云端孪生镜像)'; +COMMENT ON COLUMN public.ai_smart_terminal.id IS '主键ID'; +COMMENT ON COLUMN public.ai_smart_terminal.stcd IS '终端编码(与边缘实体设备一一对应)'; +COMMENT ON COLUMN public.ai_smart_terminal.stnm IS '终端名称'; +COMMENT ON COLUMN public.ai_smart_terminal.sttp IS '终端分类:01=鱼类识别AI盒子 02=鸟类识别AI盒子 03=野生动物识别AI盒子 04=鱼类分拣装置'; +COMMENT ON COLUMN public.ai_smart_terminal.order_index IS '排序'; +COMMENT ON COLUMN public.ai_smart_terminal.lgtd IS '经度(单位:°)'; +COMMENT ON COLUMN public.ai_smart_terminal.lttd IS '纬度(单位:°)'; +COMMENT ON COLUMN public.ai_smart_terminal.elev IS '高程(单位:m)'; +COMMENT ON COLUMN public.ai_smart_terminal.rstcd IS '所属电站编码'; +COMMENT ON COLUMN public.ai_smart_terminal.base_id IS '所属水电基地编码'; +COMMENT ON COLUMN public.ai_smart_terminal.hbrvcd IS '所属水电基地流域编码'; +COMMENT ON COLUMN public.ai_smart_terminal.rvcd IS '所属流域编码'; +COMMENT ON COLUMN public.ai_smart_terminal.aipz IS 'AI盒子硬件/软件配置信息'; +COMMENT ON COLUMN public.ai_smart_terminal.ipaddr IS '设备IP地址'; +COMMENT ON COLUMN public.ai_smart_terminal.siminfo IS 'SIM卡信息'; +COMMENT ON COLUMN public.ai_smart_terminal.lxr IS '联系人及联系电话'; +COMMENT ON COLUMN public.ai_smart_terminal.purpose IS '用途说明'; +COMMENT ON COLUMN public.ai_smart_terminal.stindx IS '监测指标列表'; +COMMENT ON COLUMN public.ai_smart_terminal.dtfrqcy IS '数据采集频次(单位:min)'; +COMMENT ON COLUMN public.ai_smart_terminal.mway IS '监测方式:0=人工监测 1=自动监测 2=混合监测'; +COMMENT ON COLUMN public.ai_smart_terminal.usfl IS '是否启用:0=否 1=是'; +COMMENT ON COLUMN public.ai_smart_terminal.dtin IS '数据是否接入:0=未接入 1=已接入'; +COMMENT ON COLUMN public.ai_smart_terminal.dtin_tm IS '数据首次接入时间'; +COMMENT ON COLUMN public.ai_smart_terminal.model_id IS '已部署模型ID(关联训练产出的模型记录)'; +COMMENT ON COLUMN public.ai_smart_terminal.model_version IS '已部署模型版本号'; +COMMENT ON COLUMN public.ai_smart_terminal.model_path IS '模型文件存储路径(MinIO对象路径)'; +COMMENT ON COLUMN public.ai_smart_terminal.model_publish_time IS '模型发布时间(发布到云端孪生设备的时间)'; +COMMENT ON COLUMN public.ai_smart_terminal.model_publish_user IS '模型发布人'; +COMMENT ON COLUMN public.ai_smart_terminal.edge_model_version IS '边缘端当前运行的模型版本'; +COMMENT ON COLUMN public.ai_smart_terminal.edge_update_time IS '边缘端最后一次模型更新时间'; +COMMENT ON COLUMN public.ai_smart_terminal.last_heartbeat_time IS '边缘端最后心跳时间'; +COMMENT ON COLUMN public.ai_smart_terminal.online_status IS '在线状态:0=离线 1=在线'; +COMMENT ON COLUMN public.ai_smart_terminal.sync_check_interval IS '同步检测间隔(单位:min,边缘端轮询云端孪生设备版本的时间间隔)'; +COMMENT ON COLUMN public.ai_smart_terminal.remark IS '备注'; +COMMENT ON COLUMN public.ai_smart_terminal.record_user IS '创建人'; +COMMENT ON COLUMN public.ai_smart_terminal.record_time IS '创建时间'; +COMMENT ON COLUMN public.ai_smart_terminal.is_deleted IS '是否已删除:0=未删除 1=已删除'; diff --git a/backend/scripts/test_mask_for_video.py b/backend/scripts/test_mask_for_video.py new file mode 100644 index 0000000..a98ee5f --- /dev/null +++ b/backend/scripts/test_mask_for_video.py @@ -0,0 +1,24 @@ +import os +import tempfile + +import django + + +def main(): + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") + django.setup() + from apps.datasets.views.dataset import _make_mask_file + + with tempfile.TemporaryDirectory() as tmp: + src = os.path.join(tmp, "1.mp4") + dst = os.path.join(tmp, "1_mask.mp4") + with open(src, "wb") as f: + f.write(b"not a real mp4") + _make_mask_file(src, dst) + assert os.path.exists(dst) + assert os.path.getsize(dst) == os.path.getsize(src) + print("ok") + + +if __name__ == "__main__": + main() diff --git a/backend/start_server.py b/backend/start_server.py new file mode 100644 index 0000000..bd0f605 --- /dev/null +++ b/backend/start_server.py @@ -0,0 +1,10 @@ +import os +import sys + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.dev") + +from daphne.cli import CommandLineInterface + +cli = CommandLineInterface() + +sys.exit(cli.run(["-b", "0.0.0.0", "-p", "8000", "config.asgi:application"])) \ No newline at end of file diff --git a/backend/yolo11n-seg.pt b/backend/yolo11n-seg.pt new file mode 100644 index 0000000..628f517 Binary files /dev/null and b/backend/yolo11n-seg.pt differ diff --git a/backend/yolo11n.pt b/backend/yolo11n.pt new file mode 100644 index 0000000..45b273b Binary files /dev/null and b/backend/yolo11n.pt differ diff --git a/docs/系统V2.0扩展需求.md b/docs/系统V2.0扩展需求.md new file mode 100644 index 0000000..4753840 --- /dev/null +++ b/docs/系统V2.0扩展需求.md @@ -0,0 +1,37 @@ +# AI算法模型训练及部署管理平台V2.0扩展需求 + +## 一、数据集管理 + +1、在数据集管理菜单中扩展二级菜单:(1)视频文件管理 (2)数据集管理 + +2、视频文件管理:(0)采用minio存储视频文件 (1)支持页面上传单个或者多个视频文件、 (2)支持视频压缩文件上传 (3)支持同步读取服务器上临时目录视频 + +3、数据集管理:(0)采用mini存储图片文件 (1)数据集与算法分离 (一个数据集可以为多个算法服务) (2) 上传数据集,支持从视频文件(库)中导入视频 (3)视频支持拆分为图片 (5)python支持http预览图片(内置服务) + +![image-20260706172644780](C:\Users\zheng\AppData\Roaming\Typora\typora-user-images\image-20260706172644780.png) + +## 二、数据标注管理 + +1、一种图片支持两类标注:(1)矩形框标注 (2) 多边形标注 ,保存到图片对应的两个字段中; + +![image-20260706170411899](C:\Users\zheng\AppData\Roaming\Typora\typora-user-images\image-20260706170411899.png) + + + +## 三、模型训练管理 + +1、关联数据集: 从目前的通过算法筛选数据集模式,改为弹出窗口,列表查询数据集,带入到训练数据集中。 + +![image-20260706165925940](C:\Users\zheng\AppData\Roaming\Typora\typora-user-images\image-20260706165925940.png) + +![image-20260706170030139](C:\Users\zheng\AppData\Roaming\Typora\typora-user-images\image-20260706170030139.png) + + + +## 四、模型部署管理 + +1、增加边缘设备管理菜单 (1)增、删、改、查,批量导入,接口同步 + +2、设备信息:编号,名称,公司、电站,业务(鱼类监测等),位置,照片,配置信息(IP,系统、内存、硬盘),算法模型(算法名称、模型版本、更新日期,更新状态) + +3、模型发布:(1)查询设备(可按模型类别检索) (2)发布模型 (3)更新模型 (4)查看状态(边缘和云端状态同步)(版本号,更新日期) \ No newline at end of file diff --git a/docs/系统技术方案说明.md b/docs/系统技术方案说明.md new file mode 100644 index 0000000..afdc2ea --- /dev/null +++ b/docs/系统技术方案说明.md @@ -0,0 +1,127 @@ +# AI 算法模型训练及部署管理平台 - 系统技术方案说明 + +## 1. 项目概述 + +本项目是一个集成的 AI 算法模型全生命周期管理平台,旨在提供从数据管理、标注、模型训练到在线预测的一站式解决方案。项目基于前后端分离架构,前端采用现代化的 Vue 3 技术栈,后端基于 Django 框架构建,支持 YOLO 和 D-FINE 等主流目标检测算法的训练与推理。 + +## 2. 系统架构 + +### 2.1 技术栈 + +**前端 (Frontend)** +- **框架**: Vue 3 (Composition API) +- **构建工具**: Vite 4 +- **UI 组件库**: Element Plus +- **状态管理**: Pinia +- **样式**: TailwindCSS + SCSS +- **路由**: Vue Router 4 +- **HTTP 客户端**: Axios +- **可视化**: ECharts +- **标注工具**: ailabel + +**后端 (Backend)** +- **框架**: Django 4.2.7 + Django REST Framework (DRF) +- **实时通信**: Django Channels (WebSocket) +- **数据库**: PostgreSQL (pgsqldb) +- **深度学习框架**: PyTorch (主要), Ultralytics (YOLO), PaddlePaddle (遗留/特定模块) +- **加密**: SM4 (国密算法) +- **任务调度**: Threading / Subprocess (当前实现), 可扩展 Celery + +**运行环境** +- **操作系统**: Windows (开发环境) / Linux (生产环境) +- **Python 版本**: 3.11 +- **依赖管理**: pip + virtualenv + +### 2.2 目录结构 + +``` +AI_TrainPrediction/ +├── backend/ # 后端项目根目录 +│ ├── apps/ # 业务应用模块 +│ │ ├── algorithms/ # 算法管理 (模型定义, 训练逻辑, 预测接口) +│ │ ├── annotation/ # 标注管理 +│ │ ├── common/ # 公共工具 (序列化, 权限, 文件处理) +│ │ ├── datasets/ # 数据集管理 +│ │ ├── iam/ # 身份认证与权限 (用户, 组织, 角色) +│ │ ├── core/ # 核心数据模型 (数据集, 样本, 模型, 训练任务) +│ │ └── training/ # 训练任务管理 (日志流, 进程控制) +│ ├── config/ # Django 配置 (settings, urls, asgi/wsgi) +│ ├── db/ # 数据库相关 +│ ├── enev/ # Python 虚拟环境 +│ └── manage.py # Django 管理脚本 +├── frontend/ # 前端项目根目录 +│ ├── src/ # 源代码 +│ ├── public/ # 静态资源 +│ └── vite.config.ts # Vite 配置 +├── requirements/ # Python 依赖清单 +└── tools/ # 辅助脚本 +``` + +## 3. 核心功能模块 + +### 3.1 身份认证与权限 (IAM) +- **JWT 认证**: 使用 `simplejwt` 实现基于 Token 的身份验证。 +- **SM4 加密**: 登录密码传输采用国密 SM4 算法加密,保障安全性。 +- **RBAC**: 基于 Django 内置的 Group 和 Permission 实现角色权限控制。 + +### 3.2 数据集管理 (Datasets) +- **多格式支持**: 支持图片上传、解压、预览。 +- **标注集成**: 集成 `ailabel` 前端库,支持在线标注并生成 XML/JSON 格式标注文件。 +- **样本管理**: `AiDatasetSample` 表记录样本状态、路径及标注内容。 + +### 3.3 算法与模型管理 (Algorithms) +- **算法引擎**: + - **01 (YOLO)**: 基于 Ultralytics 框架,支持 YOLOv8 等模型。 + - **02 (D-FINE)**: 基于 PyTorch 实现的改进版 RT-DETR。 +- **模型版本控制**: 自动生成版本号,支持模型归档、导出。 +- **配置文件生成**: 根据训练参数动态生成 `config.yaml` 或 `pipeline.config`。 + +### 3.4 模型训练 (Training) +- **异步训练**: 后端通过 `subprocess` 启动独立的训练进程,避免阻塞主线程。 +- **实时日志**: 利用 Django Channels + WebSocket 实现训练日志实时推送到前端展示。 +- **参数配置**: 支持自定义 Epochs, Batch Size, Learning Rate 等超参数。 +- **断点续训与终止**: 支持训练任务的中断与状态回滚。 + +### 3.5 在线预测 (Prediction) +- **即时推理**: 上传图片后,后端加载对应模型进行推理并返回标注后的图片或坐标数据。 +- **多模型支持**: 根据 `algorithm_engine` 自动选择 YOLO 或 D-FINE 推理器。 + +## 4. 关键代码逻辑说明 + +### 4.1 训练流程 +1. **创建记录**: `create_algorithm_train_record` 初始化训练任务。 +2. **数据准备**: `prepare_algorithm_train_dataset` 将数据集样本复制到训练目录,并生成 YOLO/COCO 格式标签。 +3. **启动训练**: `start_algorithm_train` 根据引擎类型 (`train_algorithm` 或 `train_algorithm_dfine`) 启动子进程。 +4. **日志流**: `stream_logs_to_frontend` 线程实时读取日志文件并通过 WebSocket 发送。 +5. **模型归档**: 训练完成后,`archive_train_model` 将最佳权重文件 (`best.pt`) 归档为新模型版本。 + +### 4.2 遗留与待优化项 (Refactoring Notes) +- **prediction_server_legacy**: 该应用名包含 "legacy",但实际上承载了所有核心 Models (`AiAlgorithm`, `AiAlgorithmTrainRecords` 等)。建议在未来重构中重命名为 `core` 或 `base`。 +- **冗余代码**: `backend/apps/algorithms/algorithm/` 下存在多个未使用的目录(如 `tensorflow`, `other`, `dataPrediction`),建议在确认无业务依赖后移除。 +- **配置管理**: 根目录下的 `settings.py` 为废弃文件,实际配置位于 `backend/config/settings/`。 + +## 5. 部署与环境 + +### 5.1 依赖安装 +```bash +cd backend +pip install -r ../requirements/all.txt +``` +*注意:需确保安装了正确版本的 `torch` 和 `ultralytics` 以支持 GPU 训练。* + +### 5.2 数据库配置 +修改 `backend/config/settings/base.py` 中的 `DATABASES` 配置以连接 PostgreSQL。 + +### 5.3 启动服务 +```bash +# 后端 +python manage.py runserver 0.0.0.0:8000 + +# 前端 +cd frontend +npm install +npm run dev +``` + +## 6. 总结 +本项目已完成从旧系统的核心功能迁移,后端服务稳定,能够支撑完整的 AI 模型训练与应用流程。通过引入 Django Channels 和现代化前端技术,提升了用户体验(如实时日志)。后续建议清理遗留代码并优化应用命名,以提升代码可维护性。 diff --git a/docs/边缘智能终端模型同步功能设计.md b/docs/边缘智能终端模型同步功能设计.md new file mode 100644 index 0000000..9d7f8a3 --- /dev/null +++ b/docs/边缘智能终端模型同步功能设计.md @@ -0,0 +1,928 @@ +# 边缘智能终端模型同步功能设计 + +## 一、概述 + +### 1.1 系统架构 + +``` +┌──────────────────────────────────────────────────────────────────┐ +│ 云端服务器 (Cloud) │ +│ ┌──────────┐ ┌────────────┐ ┌───────────┐ ┌──────────────┐ │ +│ │ 认证服务 │ │ 心跳服务 │ │ 版本管理 │ │ 模型下载服务 │ │ +│ │ (Token) │ │ (Heartbeat)│ │ (Version) │ │ (Download) │ │ +│ └────┬─────┘ └─────┬──────┘ └─────┬─────┘ └──────┬───────┘ │ +│ │ │ │ │ │ +│ ┌────┴──────────────┴───────────────┴───────────────┴──────┐ │ +│ │ REST API + WebSocket │ │ +│ └──────────────────────────┬───────────────────────────────┘ │ +│ │ │ +│ ┌──────────────────────────┴───────────────────────────────┐ │ +│ │ Django REST Framework + Channels (ASGI) │ │ +│ │ MinIO 对象存储 (archived-model / trained-model) │ │ +│ └──────────────────────────────────────────────────────────┘ │ +└──────────────────────────────────────────────────────────────────┘ + │ + HTTPS / WSS(公网/内网) + │ +┌─────────────────────────────┴────────────────────────────────────┐ +│ 边缘智能终端 (Edge Device) │ +│ ┌──────────┐ ┌────────────┐ ┌───────────┐ ┌──────────────┐ │ +│ │ Token管理 │ │ 心跳上报 │ │ 版本检查 │ │ 模型下载更新 │ │ +│ │ (每日刷新)│ │ (30s/次) │ │ (定时轮询) │ │ (差量更新) │ │ +│ └──────────┘ └────────────┘ └───────────┘ └──────────────┘ │ +│ │ +│ ┌──────────────────────────────────────────────────────────┐ │ +│ │ Edge Runtime (Python 模拟程序 / 边缘盒子固件) │ │ +│ │ 本地模型目录: /opt/edge/models/ │ │ +│ │ 本地配置目录: /opt/edge/config/ │ │ +│ └──────────────────────────────────────────────────────────┘ │ +└──────────────────────────────────────────────────────────────────┘ +``` + +### 1.2 核心数据模型 + +基于已有数据表 `ai_smart_terminal`,核心字段如下: + +| 字段 | 类型 | 说明 | +|------|------|------| +| `stcd` | CharField(40) | 终端唯一编码,边缘设备与云端一一对应 | +| `stnm` | CharField(255) | 终端名称 | +| `model_id` | CharField(40) | 已部署模型ID(关联 AiAlgorithmModels) | +| `model_name` | CharField(200) | 已部署模型文件名 | +| `model_version` | CharField(64) | 云端当前发布的模型版本 | +| `model_path` | CharField(600) | 模型文件 MinIO 存储路径 | +| `model_publish_time` | DateTimeField | 模型发布时间 | +| `edge_model_version` | CharField(64) | 边缘端当前运行的模型版本 | +| `edge_update_time` | DateTimeField | 边缘端最后一次模型更新时间 | +| `last_heartbeat_time` | DateTimeField | 边缘端最后心跳时间 | +| `online_status` | SmallIntegerField | 在线状态:0=离线 1=在线 | +| `sync_check_interval` | IntegerField | 同步检查间隔(单位:分钟) | + +--- + +## 二、云端服务功能设计 + +### 2.1 设备接入认证(Token 生成) + +**接口**: `POST /server/terminal/auth/` + +**功能说明**: +- 边缘设备使用设备编码(stcd)向云端申请认证 Token +- Token 有效期 1 天(24小时),基于 JWT 机制 +- Token 中携带 `stcd` ,区别于用户 Token + +**请求参数**: +```json +{ + "stcd": "DEVICE001" +} +``` + +**响应示例**: +```json +{ + "code": 200, + "data": { + "access_token": "eyJhbGciOiJIUzI1NiIs...", + "token_type": "bearer", + "expires_in": 86400, + "stcd": "DEVICE001" + } +} +``` + +**认证中间件**: +- 所有边缘设备 API 使用 `EdgeDeviceAuthentication` 认证类 +- 验证 Token 中的 `stcd` 与请求参数/URL 中的 `stcd` 一致 +- Token 过期返回 401,设备端触发重新认证流程 + +**JWT Token 生成逻辑**: +```python +from rest_framework_simplejwt.tokens import AccessToken +from datetime import timedelta + +def generate_device_token(stcd: str) -> str: + token = AccessToken() + token['stcd'] = stcd + token['type'] = 'device' + token.set_exp(lifetime=timedelta(days=1)) + return str(token) +``` + +### 2.2 心跳时间更新 + +**接口**: `PUT /server/terminal/heartbeat/`(已有,需增强认证) + +**功能说明**: +- 边缘设备定时调用(建议 30 秒/次) +- 更新 `last_heartbeat_time` 为当前时间 +- 更新 `online_status` 为 1(在线) +- 若设备首次接入,同时设置 `dtin=1` 和 `dtin_tm` + +**请求参数**: +```json +{ + "stcd": "DEVICE001" +} +``` + +**请求头**: +``` +Authorization: Bearer +``` + +**响应示例**: +```json +{ + "code": 200, + "data": { + "stcd": "DEVICE001", + "last_heartbeat_time": "2026-07-25T15:30:00Z", + "online_status": 1 + } +} +``` + +### 2.3 离线状态检测(定时任务) + +**实现方式**: Django Management Command + Celery Beat / APScheduler / 系统 Cron + +**执行频率**: 每 30 秒执行一次 + +**检测逻辑**: +1. 查询所有 `online_status=1` 且 `last_heartbeat_time` 不为空的终端 +2. 计算 `now() - last_heartbeat_time` +3. 若差值 > 5 分钟(300秒),则将 `online_status` 更新为 0 +4. 通过 WebSocket 向前端管理页面推送离线通知 + +**核心代码逻辑**: +```python +# management/commands/check_terminal_offline.py +from django.core.management.base import BaseCommand +from django.utils.timezone import now +from datetime import timedelta +from apps.core.models import AiSmartTerminal +from asgiref.sync import async_to_sync +from channels.layers import get_channel_layer + + +class Command(BaseCommand): + help = '检测超时心跳的终端并标记为离线' + + def handle(self, *args, **options): + threshold = now() - timedelta(minutes=5) + offline_terminals = AiSmartTerminal.objects.filter( + online_status=1, + last_heartbeat_time__lt=threshold, + ) + count = offline_terminals.update(online_status=0) + + if count > 0: + # WebSocket 推送离线通知到前端 + channel_layer = get_channel_layer() + offline_list = list( + offline_terminals.values('stcd', 'stnm') + ) + async_to_sync(channel_layer.group_send)( + "terminal_status", + { + "type": "terminal.status", + "data": { + "event": "offline", + "count": count, + "terminals": offline_list, + } + } + ) + self.stdout.write(f"标记 {count} 个终端为离线") +``` + +**WebSocket 前端订阅**: +- 前端管理页面连接 WebSocket: `ws://host/ws/terminal/status/` +- 收到 `online_status=0` 消息时,实时更新终端列表中的在线状态标识 +- 可触达前端消息提示(如 ElNotification) + +### 2.4 模型版本检查 + +**接口**: `GET /server/terminal/checkVersion/` + +**功能说明**: +- 边缘设备定期调用,检查云端是否有新版本模型 +- 对比 `edge_model_version`(边缘当前版本)与 `model_version`(云端发布版本) +- 返回是否需要更新 + +**请求参数**: +``` +GET /server/terminal/checkVersion/?stcd=DEVICE001&edge_version=v1.0 +``` + +**响应示例(有新版本)**: +```json +{ + "code": 200, + "data": { + "having_newmodel": 1, + "model_name": "model-001.onnx", + "model_version": "v2.0", + "model_publish_time": "2026-07-25T12:00:00Z", + "sync_check_interval": 30 + } +} +``` + +**响应示例(已是最新)**: +```json +{ + "code": 200, + "data": { + "having_newmodel": 0, + "model_version": "v1.0", + "sync_check_interval": 30 + } +} +``` + +**版本对比逻辑**: +- 若 `edge_model_version` 为空(首次同步),`having_newmodel=1` +- 若 `edge_model_version != model_version`,`having_newmodel=1` +- 若 `edge_model_version == model_version`,`having_newmodel=0` +- 返回 `sync_check_interval` 供边缘端动态调整检查频率 + +### 2.5 模型下载 + +**接口**: `GET /server/terminal/downloadModel/`(已有,需增强) + +**功能说明**: +- 边缘设备下载最新 ONNX 模型文件 +- 支持断点续传(通过 Range 请求头) +- 返回文件流,`Content-Disposition` 包含文件名 +- 下载完成后,边缘端调用回调接口更新 `edge_model_version` 和 `edge_update_time` + +**请求参数**: +``` +GET /server/terminal/downloadModel/?stcd=DEVICE001&format=onnx +``` + +**请求头**: +``` +Authorization: Bearer +Range: bytes=0-1048576 (可选,断点续传) +``` + +**响应**: +``` +HTTP/1.1 200 OK +Content-Type: application/octet-stream +Content-Disposition: attachment; filename="model-001.onnx" +Content-Length: 10485760 +``` + +**下载完成回调接口**: `PUT /server/terminal/updateModelVersion/` +```json +{ + "stcd": "DEVICE001", + "edge_model_version": "v2.0" +} +``` + +--- + +## 三、边缘设备端设计(模拟程序) + +### 3.1 目录结构 + +``` +edge_simulator/ +├── config/ +│ ├── config.json # 配置文件(设备编码、云端地址等) +│ └── token.json # 缓存的认证 Token +├── models/ # 模型存储目录 +│ ├── current/ # 当前运行模型 +│ └── backup/ # 历史版本备份 +├── logs/ +│ └── edge.log +├── main.py # 主入口,调度各模块 +├── auth.py # Token 管理与刷新 +├── heartbeat.py # 心跳上报模块 +├── version_check.py # 版本检查与下载 +└── requirements.txt +``` + +### 3.2 配置文件 (config/config.json) + +```json +{ + "stcd": "DEVICE001", + "cloud_base_url": "http://192.168.1.60:8000", + "heartbeat_interval_sec": 30, + "version_check_interval_min": null, + "model_dir": "./models/current", + "backup_dir": "./models/backup", + "token_file": "./config/token.json", + "log_level": "INFO", + "retry_count": 3, + "retry_delay_sec": 5 +} +``` + +### 3.3 模块详细设计 + +#### 3.3.1 Token 管理模块 (auth.py) + +**功能**: +- 每日定时获取新 Token(每天 00:00:00 执行) +- 首次启动时立即获取 Token +- 缓存 Token 到本地文件,记录过期时间 +- 每次 API 调用前检查 Token 是否有效 + +**流程**: + +``` +开始 + │ + ├── 检查本地 token.json 是否存在 + │ ├── 存在 → 检查是否过期 + │ │ ├── 未过期 → 直接使用 + │ │ └── 已过期 → 调用认证接口获取新 Token + │ └── 不存在 → 调用认证接口获取新 Token + │ + └── 保存 Token 到 token.json + └── 记录 expires_at 时间戳 +``` + +**token.json 格式**: +```json +{ + "access_token": "eyJhbGciOiJIUzI1NiIs...", + "token_type": "bearer", + "expires_at": "2026-07-26T00:00:00Z", + "stcd": "DEVICE001" +} +``` + +#### 3.3.2 心跳上报模块 (heartbeat.py) + +**功能**: +- 定时 30 秒调用云端心跳接口 +- 携带设备 Token 进行认证 +- 失败重试 3 次(间隔 2 秒) +- 记录心跳日志 + +**流程**: + +``` +定时触发 (每30秒) + │ + ├── 获取本地 Token + ├── PUT /server/terminal/heartbeat/ + │ Headers: Authorization: Bearer + │ Body: {"stcd": "DEVICE001"} + │ + ├── 响应码 = 200 → 成功,记录日志 + ├── 响应码 = 401 → Token 过期,触发 Token 刷新 → 重试 + ├── 响应码 = 其他 / 超时 → 重试(最多3次) + │ + └── 3次失败 → 记录错误日志,等待下次触发 +``` + +#### 3.3.3 版本检查与模型下载模块 (version_check.py) + +**功能**: +- 根据 `sync_check_interval` 定时检查云端模型版本 +- 若有新版本,下载模型文件到本地(支持断点续传) +- 验证下载文件的 MD5/SHA256 完整性 +- 备份旧版本模型 +- 更新 `edge_model_version` 到云端 + +**流程**: + +``` +定时触发 (根据 sync_check_interval,默认从云端获取) + │ + ├── 读取本地当前模型版本 (从本地 version.txt) + ├── GET /server/terminal/checkVersion/ + │ ?stcd=DEVICE001 + │ &edge_version=v1.0 + │ + ├── 响应 having_newmodel = 0 → 无更新,等待下次检查 + │ + ├── 响应 having_newmodel = 1 + │ │ + │ ├── 更新本地 sync_check_interval + │ │ + │ ├── 备份旧模型: models/current/ → models/backup/model-{version}/ + │ │ + │ ├── GET /server/terminal/downloadModel/ + │ │ ?stcd=DEVICE001 + │ │ &format=onnx + │ │ 支持断点续传 (Range 请求头) + │ │ + │ ├── 下载完成 → 验证文件完整性 + │ │ 验证方式: 响应头 X-File-SHA256 与实际文件对比 + │ │ + │ ├── 保存到 models/current/{model_filename} + │ ├── 更新本地 version.txt + │ │ + │ └── PUT /server/terminal/updateModelVersion/ + │ {"stcd": "DEVICE001", "edge_model_version": "v2.0"} + │ → 更新 edge_model_version 和 edge_update_time + │ + └── 记录更新日志 +``` + +#### 3.3.4 主调度程序 (main.py) + +```python +""" +边缘智能终端模拟程序 - 主入口 +""" +import json +import logging +import os +import signal +import sys +import threading +import time +from datetime import datetime + +import requests + + +class EdgeDeviceSimulator: + """边缘智能终端模拟器""" + + def __init__(self, config_path: str = "./config/config.json"): + self.config = self._load_config(config_path) + self.stcd = self.config["stcd"] + self.secret = self.config["secret"] + self.base_url = self.config["cloud_base_url"] + self.running = True + + self._setup_logging() + self._setup_signal_handlers() + + self.token = None + self.token_refreshed_at = None + + self.heartbeat_interval = self.config.get("heartbeat_interval_sec", 30) + self.version_check_interval = None # 从云端获取 + self.last_version_check = None + + # ── 配置与日志 ────────────────────────────── + + def _load_config(self, path: str) -> dict: + with open(path, "r", encoding="utf-8") as f: + return json.load(f) + + def _setup_logging(self): + logging.basicConfig( + level=getattr(logging, self.config.get("log_level", "INFO")), + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + logging.FileHandler("./logs/edge.log", encoding="utf-8"), + logging.StreamHandler(sys.stdout), + ], + ) + self.logger = logging.getLogger("EdgeDevice") + + def _setup_signal_handlers(self): + signal.signal(signal.SIGINT, self._graceful_shutdown) + signal.signal(signal.SIGTERM, self._graceful_shutdown) + + def _graceful_shutdown(self, signum, frame): + self.logger.info("收到退出信号,正在安全关闭...") + self.running = False + + # ── Token 管理 ─────────────────────────────── + + def _load_token_from_file(self) -> dict | None: + token_file = self.config["token_file"] + if not os.path.exists(token_file): + return None + with open(token_file, "r", encoding="utf-8") as f: + data = json.load(f) + expires_at = datetime.fromisoformat(data["expires_at"]) + if datetime.now() >= expires_at: + self.logger.info("本地 Token 已过期") + return None + return data + + def _save_token_to_file(self, token_data: dict): + with open(self.config["token_file"], "w", encoding="utf-8") as f: + json.dump(token_data, f, indent=2) + + def ensure_token(self) -> str: + """确保 Token 有效,过期则重新获取""" + token_data = self._load_token_from_file() + if token_data: + return token_data["access_token"] + + self.logger.info("获取新的设备 Token...") + resp = requests.post( + f"{self.base_url}/server/terminal/auth/", + json={"stcd": self.stcd, "secret": self.secret}, + timeout=10, + ) + resp.raise_for_status() + result = resp.json() + token_data = result["data"] + self._save_token_to_file(token_data) + self.logger.info(f"Token 获取成功, 有效期至 {token_data['expires_at']}") + return token_data["access_token"] + + # ── 心跳上报 ────────────────────────────────── + + def _send_heartbeat(self): + """发送一次心跳""" + try: + token = self.ensure_token() + resp = requests.put( + f"{self.base_url}/server/terminal/heartbeat/", + json={"stcd": self.stcd}, + headers={"Authorization": f"Bearer {token}"}, + timeout=5, + ) + if resp.status_code == 200: + self.logger.debug("心跳上报成功") + return True + elif resp.status_code == 401: + self.logger.warning("Token 认证失败,清除本地 Token 缓存") + os.remove(self.config["token_file"]) + else: + self.logger.warning(f"心跳上报失败: {resp.status_code}") + except requests.RequestException as e: + self.logger.error(f"心跳上报异常: {e}") + return False + + def _heartbeat_loop(self): + """心跳上报定时循环""" + self.logger.info(f"心跳上报模块启动, 间隔 {self.heartbeat_interval} 秒") + while self.running: + self._send_heartbeat() + time.sleep(self.heartbeat_interval) + + # ── 版本检查与模型更新 ───────────────────────── + + def _check_version(self) -> dict | None: + """检查云端模型版本""" + local_version = self._get_local_version() + try: + token = self.ensure_token() + resp = requests.get( + f"{self.base_url}/server/terminal/checkVersion/", + params={"stcd": self.stcd, "edge_version": local_version or ""}, + headers={"Authorization": f"Bearer {token}"}, + timeout=10, + ) + resp.raise_for_status() + return resp.json()["data"] + except requests.RequestException as e: + self.logger.error(f"版本检查失败: {e}") + return None + + def _get_local_version(self) -> str | None: + """获取本地当前运行的模型版本""" + version_file = os.path.join(self.config["model_dir"], "version.txt") + if os.path.exists(version_file): + with open(version_file, "r") as f: + return f.read().strip() + return None + + def _backup_current_model(self): + """备份当前模型""" + model_dir = self.config["model_dir"] + backup_dir = self.config["backup_dir"] + local_version = self._get_local_version() + if not os.path.exists(model_dir) or not local_version: + return + version_backup = os.path.join(backup_dir, f"model-{local_version}") + os.makedirs(version_backup, exist_ok=True) + for f in os.listdir(model_dir): + src = os.path.join(model_dir, f) + dst = os.path.join(version_backup, f) + if os.path.isfile(src): + import shutil + shutil.copy2(src, dst) + self.logger.info(f"旧模型已备份到 {version_backup}") + + def _download_model(self, model_name: str) -> str | None: + """下载模型文件,支持断点续传""" + model_dir = self.config["model_dir"] + os.makedirs(model_dir, exist_ok=True) + save_path = os.path.join(model_dir, model_name) + + try: + token = self.ensure_token() + url = f"{self.base_url}/server/terminal/downloadModel/" + params = {"stcd": self.stcd, "format": "onnx"} + headers = {"Authorization": f"Bearer {token}"} + + self.logger.info(f"开始下载模型: {model_name}") + resp = requests.get( + url, params=params, headers=headers, + stream=True, timeout=300, + ) + resp.raise_for_status() + + total_size = int(resp.headers.get("Content-Length", 0)) + downloaded = 0 + with open(save_path, "wb") as f: + for chunk in resp.iter_content(chunk_size=8192): + f.write(chunk) + downloaded += len(chunk) + if total_size: + progress = downloaded / total_size * 100 + if downloaded % (1024 * 1024 * 10) < 8192: # 每10MB打印 + self.logger.info( + f"下载进度: {progress:.1f}% " + f"({downloaded}/{total_size})" + ) + + self.logger.info(f"模型下载完成, 保存至 {save_path}") + return save_path + except Exception as e: + self.logger.error(f"模型下载失败: {e}") + return None + + def _update_edge_version(self, new_version: str): + """通知云端已更新到新版本""" + try: + token = self.ensure_token() + resp = requests.put( + f"{self.base_url}/server/terminal/updateModelVersion/", + json={"stcd": self.stcd, "edge_model_version": new_version}, + headers={"Authorization": f"Bearer {token}"}, + timeout=10, + ) + if resp.status_code == 200: + self.logger.info(f"边缘模型版本已更新: {new_version}") + return True + except Exception as e: + self.logger.error(f"云端版本更新通知失败: {e}") + return False + + def _version_check_loop(self): + """版本检查与更新定时循环""" + self.logger.info("版本检查模块启动") + while self.running: + result = self._check_version() + if result and result.get("having_newmodel") == 1: + model_name = result["model_name"] + new_version = result["model_version"] + self.logger.info(f"发现新版本: {new_version}, 模型: {model_name}") + + # 备份旧模型 + self._backup_current_model() + + # 下载新模型 + saved = self._download_model(model_name) + if saved: + # 更新本地版本记录 + version_file = os.path.join( + self.config["model_dir"], "version.txt" + ) + with open(version_file, "w") as f: + f.write(new_version) + + # 通知云端 + self._update_edge_version(new_version) + + # 更新检查间隔 + if result.get("sync_check_interval"): + self.version_check_interval = result["sync_check_interval"] + + # 等待下次检查 + interval = self.version_check_interval or 60 # 默认60分钟 + self.logger.debug(f"下次版本检查: {interval} 分钟后") + time.sleep(interval * 60) + + # ── 主入口 ──────────────────────────────────── + + def run(self): + """启动边缘模拟器""" + self.logger.info(f"边缘智能终端启动, stcd={self.stcd}") + self.logger.info(f"云端地址: {self.base_url}") + + # 启动心跳线程 + heartbeat_thread = threading.Thread( + target=self._heartbeat_loop, daemon=True, name="Heartbeat" + ) + heartbeat_thread.start() + + # 启动版本检查线程 + version_thread = threading.Thread( + target=self._version_check_loop, daemon=True, name="VersionCheck" + ) + version_thread.start() + + # 主线程等待 + try: + while self.running: + time.sleep(1) + except KeyboardInterrupt: + pass + + self.logger.info("边缘智能终端已安全退出") + + +if __name__ == "__main__": + simulator = EdgeDeviceSimulator() + simulator.run() +``` + +--- + +## 四、新增/修改 API 接口汇总 + +| 接口路径 | 方法 | 认证 | 说明 | 状态 | +|---------|------|------|------|------| +| `/server/terminal/auth/` | POST | 无(设备密钥认证) | 设备认证,获取 JWT Token | **新增** | +| `/server/terminal/heartbeat/` | PUT | 设备 Token | 更新心跳时间(已有,需增强认证) | **修改** | +| `/server/terminal/checkVersion/` | GET | 设备 Token | 检查云端模型版本 | **新增** | +| `/server/terminal/downloadModel/` | GET | 无历史遗留 | 下载模型文件(已有,需增强) | **修改** | +| `/server/terminal/updateModelVersion/` | PUT | 设备 Token | 更新边缘端模型版本 | **新增** | +| `ws://host/ws/terminal/status/` | WebSocket | 用户 Token | 推送终端在线状态变更 | **新增** | + +--- + +## 五、安全性设计 + +### 5.1 认证体系 + +``` +┌─────────────────────────────────────┐ +│ 双层 Token 体系 │ +├─────────────────────────────────────┤ +│ 用户 Token (user) │ +│ ├── 有效期: 60分钟 │ +│ ├── 用途: 前端管理页面操作 │ +│ └── sub: user │ +│ │ +│ 设备 Token (device) │ +│ ├── 有效期: 24小时 │ +│ ├── 用途: 边缘设备 API 调用 │ +│ ├── sub: edge_device │ +│ └── stcd: 设备编码 │ +└─────────────────────────────────────┘ +``` + +### 5.2 安全措施 + +1. **设备预置密钥**: 首次激活时下发唯一密钥,用于初始 Token 申请 +2. **Token 绑定设备**: Token 中携带 `stcd`,服务端验证请求中的 `stcd` 与 Token 一致 +3. **HTTPS 传输**: 生产环境强制 HTTPS,防止中间人攻击 +4. **请求频率限制**: 心跳接口限制 10次/分钟/设备,防止恶意刷接口 +5. **模型下载签名**: 可扩展为预签名 URL,限制下载有效期 + +--- + +## 六、部署与运维 + +### 6.1 云端定时任务配置 + +**方式一: Django Management Command + 系统 Cron** +```bash +# 每30秒执行一次离线检测 +* * * * * /path/to/python manage.py check_terminal_offline +* * * * * sleep 30 && /path/to/python manage.py check_terminal_offline +``` + +**方式二: Celery Beat(推荐)** +```python +# celery.py +app.conf.beat_schedule = { + 'check-terminal-offline': { + 'task': 'apps.datasets.tasks.check_terminal_offline', + 'schedule': 30.0, + }, +} +``` + +### 6.2 边缘模拟器部署 + +```bash +# 安装依赖 +pip install -r edge_simulator/requirements.txt + +# 运行模拟器(前台) +python edge_simulator/main.py + +# 运行模拟器(后台) +nohup python edge_simulator/main.py > /dev/null 2>&1 & +``` + +### 6.3 监控指标 + +| 指标 | 说明 | 告警阈值 | +|------|------|---------| +| 在线设备数 | online_status=1 的设备数 | 低于预期值的 80% | +| 离线设备数 | online_status=0 的设备数 | 超过预期值的 20% | +| 心跳延迟 | 心跳时间间隔 | 超过 60 秒 | +| 模型更新成功率 | 成功更新数/总更新数 | 低于 90% | +| Token 续期失败率 | Token 获取失败次数 | 连续 3 次失败 | + +--- + +## 七、时序图 + +### 7.1 Token 获取流程 + +``` +边缘设备 云端服务器 + │ │ + │ POST /server/terminal/auth/ │ + │ {"stcd":"DEVICE001","secret":"**"}│ + │ ─────────────────────────────> │ + │ │── 验证设备编码与密钥 + │ │── 生成JWT Token (24h) + │ 200 {access_token, ...} │ + │ <───────────────────────────── │ + │ │ + │── 保存Token到本地文件 │ +``` + +### 7.2 心跳 + 版本检查 + 模型更新完整流程 + +``` +边缘设备 云端服务器 前端管理页 + │ │ │ + │═══ 心跳循环 (30s/次) ═══════════│ │ + │ PUT /heartbeat/ [Token] │ │ + │ ─────────────────────────────> │── 更新 last_heartbeat_time │ + │ 200 OK │ │ + │ <───────────────────────────── │ │ + │ │ │ + │═══ 离线检测 (云端定时30s) ═══════│ │ + │ │── 检测超时5分钟的设备 │ + │ │── online_status → 0 │ + │ │── WebSocket推送 ───────────> │ + │ │ {"event":"offline", ...} │ + │ │ │── 更新UI + │ │ │ + │═══ 版本检查 (定时) ══════════════│ │ + │ GET /checkVersion/ │ │ + │ ─────────────────────────────> │── 对比 model_version │ + │ 200 {having_newmodel:1, ...} │ 与 edge_model_version │ + │ <───────────────────────────── │ │ + │ │ │ + │═══ 模型下载 ═════════════════════│ │ + │── 备份旧模型到 backup/ │ │ + │ │ │ + │ GET /downloadModel/ │ │ + │ ─────────────────────────────> │── 从MinIO获取模型文件 │ + │ 200 (文件流) │ │ + │ <───────────────────────────── │ │ + │── 保存到 models/current/ │ │ + │── 更新本地 version.txt │ │ + │ │ │ + │ PUT /updateModelVersion/ │ │ + │ ─────────────────────────────> │── 更新 edge_model_version │ + │ 200 OK │ │ + │ <───────────────────────────── │ │ +``` + +--- + +## 八、实施清单 + +### 云端新增开发项 + +- [ ] 新增 `EdgeDeviceAuthentication` 认证类 +- [ ] 新增 `POST /server/terminal/auth/` 设备认证接口 +- [ ] 新增 `GET /server/terminal/checkVersion/` 版本检查接口 +- [ ] 新增 `PUT /server/terminal/updateModelVersion/` 版本更新回调接口 +- [ ] 修改 `PUT /server/terminal/heartbeat/` 增加设备 Token 认证 +- [ ] 新增 `check_terminal_offline` 管理命令或 Celery 定时任务 +- [ ] 新增 WebSocket Consumer (`TerminalStatusConsumer`) 推送在线状态 +- [ ] 新增 `ws/terminal/status/` WebSocket 路由 +- [ ] 前端管理页面订阅 WebSocket,实时更新终端在线状态 + +### 边缘模拟器开发项 + +- [ ] 创建 `edge_simulator/` 目录结构 +- [ ] 实现 `auth.py` Token 管理模块 +- [ ] 实现 `heartbeat.py` 心跳上报模块 +- [ ] 实现 `version_check.py` 版本检查与下载模块 +- [ ] 实现 `main.py` 主调度程序 +- [ ] 编写 `requirements.txt` 依赖文件 +- [ ] 编写 Docker 部署配置(可选) + +--- + +## 九、行业最佳实践参考 + +1. **OTA 更新策略**(参考物联网 OTA 标准) + - 差量更新 vs 全量更新:当前采用全量下载,未来可扩展为增量更新 + - 灰度发布:支持按终端分类(sttp)或指定设备列表分批推送版本 + - 回滚机制:备份旧版本,支持云端指令触发回滚 + +2. **连接可靠性**(参考 MQTT/CoAP 协议设计) + - 断线重连:边缘端实现指数退避重连(1s → 2s → 4s → ... → max 60s) + - 离线缓存:心跳失败时的状态记录,恢复后补报 + - 连接池:单设备单连接,避免资源浪费 + +3. **安全性**(参考 IoT 安全最佳实践) + - 设备唯一身份:stcd + 预置密钥组成设备指纹 + - 通信加密:TLS 1.2+ + - 最小权限:设备 Token 仅能访问自己的数据和接口 + - 定期轮换密钥(可选扩展) diff --git a/frontend/.editorconfig b/frontend/.editorconfig new file mode 100644 index 0000000..3c3960b --- /dev/null +++ b/frontend/.editorconfig @@ -0,0 +1,15 @@ +# http://editorconfig.org + +root = true + +[*] # 表示所有文件适用 +charset = utf-8 # 设置文件字符集为 utf-8 +indent_style = space # 缩进风格(tab | space) +indent_size = 2 # 缩进大小 +end_of_line = lf # 控制换行类型(lf | cr | crlf) +trim_trailing_whitespace = true # 去除行首的任意空白字符 +insert_final_newline = true # 始终在文件末尾插入一个新行 + +[*.md] # 表示仅 md 文件适用以下规则 +max_line_length = off +trim_trailing_whitespace = false \ No newline at end of file diff --git a/frontend/.env.development b/frontend/.env.development new file mode 100644 index 0000000..8246661 --- /dev/null +++ b/frontend/.env.development @@ -0,0 +1,9 @@ +## 开发环境 + +# 变量必须以 VITE_ 为前缀才能暴露给外部读取 +NODE_ENV='development' + +VITE_APP_TITLE = 'AI算法模型训练及部署管理平台' +VITE_APP_PORT = 3000 +VITE_APP_BASE_API = '/dev-api' +VITE_WS_BASE_API = 'ws://localhost:8000' diff --git a/frontend/.env.production b/frontend/.env.production new file mode 100644 index 0000000..ba83075 --- /dev/null +++ b/frontend/.env.production @@ -0,0 +1,8 @@ +## 生产环境 +NODE_ENV='production' + +VITE_APP_TITLE = 'NewFrameWork2023-WEB' +VITE_APP_PORT = 3000 +VITE_APP_BASE_API = 'http://localhost:8000' +VITE_APP_BASE_IMG_API = 'http://localhost:3000/image/' +VITE_WS_BASE_API = 'ws://localhost:8000' diff --git a/frontend/.env.staging b/frontend/.env.staging new file mode 100644 index 0000000..c192ef8 --- /dev/null +++ b/frontend/.env.staging @@ -0,0 +1,6 @@ +## 模拟环境 +NODE_ENV='staging' + +VITE_APP_TITLE = 'NewFrameWork2023-WEB' +VITE_APP_PORT = 3000 +VITE_APP_BASE_API = '/prod--api' diff --git a/frontend/.eslintignore b/frontend/.eslintignore new file mode 100644 index 0000000..46d4b17 --- /dev/null +++ b/frontend/.eslintignore @@ -0,0 +1,16 @@ +*.sh +node_modules +*.md +*.woff +*.ttf +.vscode +.idea +dist +/public +/docs +.husky +.local +/bin +.eslintrc.js +prettier.config.js +src/assets \ No newline at end of file diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js new file mode 100644 index 0000000..d7878cc --- /dev/null +++ b/frontend/.eslintrc.js @@ -0,0 +1,32 @@ +module.exports = { + env: { + browser: true, + es2021: true, + node: true + }, + globals: { + defineProps: 'readonly', + defineEmits: 'readonly', + defineExpose: 'readonly', + DialogType: "readonly", + OptionType: "readonly", + }, + parser: 'vue-eslint-parser', + extends: [ + 'eslint:recommended', + 'plugin:vue/vue3-essential', + 'plugin:@typescript-eslint/recommended' + ], + parserOptions: { + ecmaVersion: 'latest', + parser: '@typescript-eslint/parser', + sourceType: 'module' + }, + plugins: ['vue', '@typescript-eslint'], + rules: { + 'vue/multi-word-component-names': 'off', + '@typescript-eslint/no-empty-function': 'off', // 关闭空方法检查 + '@typescript-eslint/no-explicit-any': 'off', // 关闭any类型的警告 + 'vue/no-v-model-argument': 'off' + } +}; diff --git a/frontend/.prettierignore b/frontend/.prettierignore new file mode 100644 index 0000000..d251d2e --- /dev/null +++ b/frontend/.prettierignore @@ -0,0 +1,9 @@ +/dist/* +.local +.output.js +/node_modules/** + +**/*.svg +**/*.sh + +/public/* \ No newline at end of file diff --git a/frontend/.prettierrc.js b/frontend/.prettierrc.js new file mode 100644 index 0000000..7a42426 --- /dev/null +++ b/frontend/.prettierrc.js @@ -0,0 +1,36 @@ +/** + * 代码格式化配置 + */ +module.exports = { + // 指定每个缩进级别的空格数 + tabWidth: 2, + // 使用制表符而不是空格缩进行 + useTabs: false, + // 在语句末尾打印分号 + semi: true, + // 使用单引号而不是双引号 + singleQuote: true, + // 更改引用对象属性的时间 可选值"" + quoteProps: 'as-needed', + // 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"",默认none + trailingComma: 'none', + // 在对象文字中的括号之间打印空格 + bracketSpacing: true, + // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x + arrowParens: 'avoid', + // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码 + rangeStart: 0, + rangeEnd: Infinity, + // 指定要使用的解析器,不需要写文件开头的 @prettier + requirePragma: false, + // 不需要自动在文件开头插入 @prettier + insertPragma: false, + // 换行设置 always\never\preserve + proseWrap: 'never', + // 指定HTML文件的全局空格敏感度 css\strict\ignore + htmlWhitespaceSensitivity: 'css', + // Vue文件脚本和样式标签缩进 + vueIndentScriptAndStyle: false, + // 换行符使用 lf 结尾是 可选值"" + endOfLine: 'lf' +}; diff --git a/frontend/LICENSE b/frontend/LICENSE new file mode 100644 index 0000000..2660254 --- /dev/null +++ b/frontend/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 有来开源组织 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..5b2bd1b --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,136 @@ +

+ + + + + + + + + + +

+

+在线预览 | 官方文档 +

+ +## 项目介绍 + +[vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin) 是基于 [vue-element-admin](https://gitee.com/panjiachen/vue-element-admin) 升级的 Vue3 版本后台管理前端解决方案;使用前端主流技术栈 Vue3 + Vite3 + TypeScript + Vue Router + Pinia + Volar + Element Plus 等;实现功能包括不限于动态权限路由、按钮权限控制、国际化、主题大小切换等;基于此模板开发了有来商城管理系统,也是有来开源组织的又一项开源力作。 + +## 项目优势 + +- 基于 vue-element-admin 升级的 Vue3 版本 ,极易上手,减少学习成本; +- 一套完整适配的微服务权限系统线上接口,企业级真实前后端接入场景,非 Mock 数据; +- 功能全面:国际化、动态路由、按钮权限、主题大小切换、Echart、wangEditor; +- TypeScript 全面支持,包括组件和 API 调用层面; +- 主流 Vue3 生态和前端技术栈,常用组件极简封装; +- 从 0 到 1 的项目文档支持 ([文档地址](https://www.cnblogs.com/haoxianrui/p/16090029.html)); + +## 技术栈 + +| 技术栈 | 描述 | 官网 | +| --- | --- | --- | +| Vue3 | 渐进式 JavaScript 框架 | https://v3.cn.vuejs.org/ | +| TypeScript | JavaScript 的一个超集 | https://www.tslang.cn/ | +| Vite | 前端开发与构建工具 | https://cn.vitejs.dev/ | +| Element Plus | 基于 Vue 3,面向设计师和开发者的组件库 | https://element-plus.gitee.io/zh-CN/ | +| Pinia | 新一代状态管理工具 | https://pinia.vuejs.org/ | +| Vue Router | Vue.js 的官方路由 | https://router.vuejs.org/zh/ | + +## 项目预览 + +在线预览: [vue3.youlai.tech](http://vue3.youlai.tech) + +| ![控制台](https://s2.loli.net/2022/12/09/34iklzLAnsIuXDh.png) | ![国际化](https://s2.loli.net/2022/04/07/lt6u2jMefpTJvkh.gif) | +| --- | --- | +| ![用户管理](https://s2.loli.net/2022/12/09/gjJibCaVP3Ysnoh.png) | ![角色管理](https://s2.loli.net/2022/12/09/xHoNctJj2hUfMO8.png) | +| ![菜单管理](https://s2.loli.net/2022/12/09/dah34MRfqiB2cez.png) |![富文本编辑器](https://s2.loli.net/2022/12/09/QzCDIwmqydtLPYr.png) | + +## 项目地址 + +| | Gitee | Github | +| --- | --- | --- | +| vue3-element-admin | [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin) | [vue3-element-admin](https://github.com/youlaitech/vue3-element-admin) | +| 后端工程(非必要) | [youlai_boot](https://gitee.com/youlaiorg/youlai-boot) | - | + +## 环境要求 + +- Node 环境 + + 版本:16+ + +- 开发工具 + + VSCode + +- 必装插件 + + - Vue Language Features (Volar) + - TypeScript Vue Plugin (Volar) + +## 项目启动 + +1. 安装依赖 + + ```bash + npm install + ``` +2. 启动运行 + + ```bash + npm run dev + ``` +3. 访问测试 + + 浏览器访问: [http://localhost:3000](http://localhost:3000) + +## 项目部署 + +- 本地打包 + + ``` + npm run build:prod + ``` + + 生成的静态文件位于项目根目录 `dist` 文件夹下 + +- 上传文件 + + 创建 `/mnt/nginx/html` 目录,将打包生成 `dist` 下的所有文件拷贝至此工作目录下 + +- nginx.cofig 配置 + + ``` + server { + listen 80; + server_name localhost; + + location / { + root /mnt/nginx/html; + index index.html index.htm; + } + + # 代理转发请求至网关,prod-api标识解决跨域,vapi.youlai.tech 线上接口地址,注意后面/ + location /prod-api/ { + proxy_pass http://vapi.youlai.tech/; + } + } + + ``` +## 本地接口 + +> 默认使用线上接口,如果你了解一点Java后端SpringBoot,可轻松搭建本地接口环境: + +1. 访问后端项目仓库地址:https://gitee.com/youlaiorg/youlai-boot.git + +2. 根据项目说明文档 [README.md](https://gitee.com/youlaiorg/youlai-boot#%E9%A1%B9%E7%9B%AE%E8%BF%90%E8%A1%8C) 完成数据库的创建和后端工程的启动; +3. 进入 [vite.config.ts](vite.config.ts) 文件修改代理线上接口地址 http://vapi.youlai.tech 为本地接口地址 http://localhost:8989 即可。 + + +## 联系信息 + +> 欢迎添加开发者微信,备注「有来」进群,备注「无回」参与开发 + +| ![郝先瑞](https://s2.loli.net/2022/04/06/yRx8uzj4emA5QVr.jpg) | ![张川](https://s2.loli.net/2022/04/06/cQihGv9uPsTjXk1.jpg) | +| --- | --- | diff --git a/frontend/commitlint.config.js b/frontend/commitlint.config.js new file mode 100644 index 0000000..efff054 --- /dev/null +++ b/frontend/commitlint.config.js @@ -0,0 +1,26 @@ +module.exports = { + // 继承的规则 + extends: ['@commitlint/config-conventional'], + // 定义规则类型 + rules: { + // type 类型定义,表示 git 提交的 type 必须在以下类型范围内 + 'type-enum': [ + 2, + 'always', + [ + 'feat', // 新功能 feature + 'fix', // 修复 bug + 'docs', // 文档注释 + 'style', // 代码格式(不影响代码运行的变动) + 'refactor', // 重构(既不增加新功能,也不是修复bug) + 'perf', // 性能优化 + 'test', // 增加测试 + 'chore', // 构建过程或辅助工具的变动 + 'revert', // 回退 + 'build' // 打包 + ] + ], + // subject 大小写不做校验 + 'subject-case': [0] + } +}; diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..6180e4b --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,16 @@ + + + + + + + + + + AI算法模型训练及部署管理平台 + + +
+ + + diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..677226a --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,68 @@ +{ + "name": "AI-算法模型训练及部署管理平台", + "version": "1.2.0", + "scripts": { + "dev": "vite serve --mode development", + "prod": "vue-tsc --noEmit && vite build --mode production", + "serve": "vite preview", + "lint": "eslint src/**/*.{ts,js,vue} --fix", + "prepare": "husky install || echo husky skipped", + "prettier": "prettier --write ." + }, + "dependencies": { + "@element-plus/icons-vue": "^2.0.10", + "@types/js-cookie": "^3.0.2", + "@vueuse/core": "^9.1.1", + "@wangeditor/editor": "^5.0.0", + "@wangeditor/editor-for-vue": "^5.1.10", + "ailabel": "^5.1.15", + "axios": "^1.2.0", + "better-scroll": "^2.4.2", + "default-passive-events": "^2.0.0", + "echarts": "^5.2.2", + "element-plus": "^2.2.27", + "gm-crypt": "^0.0.2", + "js-base64": "^3.7.5", + "js-cookie": "^3.0.1", + "jsencrypt": "^3.3.2", + "nprogress": "^0.2.0", + "path-browserify": "^1.0.1", + "path-to-regexp": "^6.2.0", + "pinia": "^2.0.12", + "screenfull": "^6.0.0", + "sortablejs": "^1.14.0", + "vue": "^3.2.40", + "vue-i18n": "^9.1.9", + "vue-router": "^4.1.6", + "vue3-image-preview": "^0.2.7", + "vuedraggable": "^4.1.0" + }, + "devDependencies": { + "@commitlint/cli": "^16.2.3", + "@commitlint/config-conventional": "^16.2.1", + "@types/node": "^22.15.21", + "@types/nprogress": "^0.2.0", + "@types/path-browserify": "^1.0.0", + "@typescript-eslint/eslint-plugin": "^5.19.0", + "@typescript-eslint/parser": "^5.19.0", + "@vitejs/plugin-vue": "^4.0.0", + "autoprefixer": "^10.4.13", + "eslint": "^8.14.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-vue": "^8.6.0", + "fast-glob": "^3.2.11", + "husky": "^7.0.4", + "postcss": "^8.4.20", + "prettier": "^2.6.2", + "sass": "^1.53.0", + "tailwindcss": "^3.2.4", + "typescript": "^4.7.4", + "vite": "^4.0.3", + "vite-plugin-svg-icons": "^2.0.1", + "vue-tsc": "^0.35.0" + }, + "repository": "https://gitee.com/youlaiorg/vue3-element-admin.git", + "author": "有来开源组织", + "license": "MIT" +} \ No newline at end of file diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/frontend/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/frontend/public/favicon.ico differ diff --git a/frontend/public/webconfig.js b/frontend/public/webconfig.js new file mode 100644 index 0000000..38d3af1 --- /dev/null +++ b/frontend/public/webconfig.js @@ -0,0 +1,5 @@ +window.webConfig = { + "VITE_APP_BASE_API": 'http://192.168.1.60:8000', + "VITE_APP_BASE_IMG_API": 'http://192.168.1.60:3000/image/', + "VITE_WS_BASE_API": 'ws://192.168.1.60:8000' +} diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..4724bea --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,28 @@ + + + + diff --git a/frontend/src/api/algorithm/index.ts b/frontend/src/api/algorithm/index.ts new file mode 100644 index 0000000..3fc9400 --- /dev/null +++ b/frontend/src/api/algorithm/index.ts @@ -0,0 +1,17 @@ +import request from '@/utils/request'; +// 查询算法分类 +export function queryAlgorithmClass(params: any) { + return request({ + url: '/server/queryAlgorithmClass/', + method: 'get', + params: params + }); +} +// 查询算法 +export function getAlgorithmList(params: any) { + return request({ + url: '/server/getAlgorithmList/', + method: 'get', + params: params + }); +} diff --git a/frontend/src/api/auth/index.ts b/frontend/src/api/auth/index.ts new file mode 100644 index 0000000..1340ef9 --- /dev/null +++ b/frontend/src/api/auth/index.ts @@ -0,0 +1,44 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { LoginData, TokenResult, VerifyCode } from './types'; + +/** + * + * @param data {LoginForm} + * @returns + */ +export function loginApi(data: LoginData): AxiosPromise { + return request({ + url: '/login/', + method: 'post', + data: data + }); +} +export function loginRefresh(data: any): AxiosPromise { + return request({ + url: '/api/token/refresh/', + method: 'post', + data: data + }); +} + + +/** + * 注销 + */ +export function logoutApi() { + return request({ + url: '/user/logout', + method: 'post' + }); +} + +/** + * 获取图片验证码 + */ +export function getCaptcha(): AxiosPromise { + return request({ + url: '/user/code?t=' + new Date().getTime().toString(), + method: 'get' + }); +} diff --git a/frontend/src/api/auth/types.ts b/frontend/src/api/auth/types.ts new file mode 100644 index 0000000..2831492 --- /dev/null +++ b/frontend/src/api/auth/types.ts @@ -0,0 +1,32 @@ +/** + * 登录数据类型 + */ +export interface LoginData { + username: string; + password: string; + /** + * 验证码Code + */ + //verifyCode: string; + /** + * 验证码Code服务端缓存key(UUID) + */ + // verifyCodeKey: string; +} + +/** + * Token响应类型 + */ +export interface TokenResult { + token: string; + refreshToken: string; + expires: number; +} + +/** + * 验证码类型 + */ +export interface VerifyCode { + verifyCodeImg: string; + verifyCodeKey: string; +} diff --git a/frontend/src/api/dataannotations/annotationtask/index.ts b/frontend/src/api/dataannotations/annotationtask/index.ts new file mode 100644 index 0000000..ca5248b --- /dev/null +++ b/frontend/src/api/dataannotations/annotationtask/index.ts @@ -0,0 +1,148 @@ +import request from '@/utils/request'; + +export function searchAnnotateTasks(params: any) { + return request({ + url: '/server/annotateTask/list/', + method: 'get', + params: params + }); +} + +export function getDatasetList(params: any) { + return request({ + url: '/server/getDatasetList/', + method: 'get', + params: params + }); +} +export function readDataset(params: any) { + return request({ + url: '/server/readDataset/', + method: 'get', + params: params + }); +} +export function getAlgorithmList(params: any) { + return request({ + url: '/server/getAlgorithmList/', + method: 'get', + params: params + }); +} +export function querysamples(params: any) { + return request({ + url: '/server/querysamples/', + method: 'get', + params: params + }); +} + +export function createAnnotateTask(params: any) { + return request({ + url: '/server/annotateTask/create/', + method: 'post', + data: params + }); +} +export function updateAnnotateTask(params: any) { + return request({ + url: '/server/annotateTask/update/', + method: 'PUT', + data: params + }); +} + +export function deleteAnnotateTask(params: any) { + return request({ + url: '/server/annotateTask/delete/?id=' + params, + method: 'DELETE' + }); +} + +export function readAnnotateTask(params: any) { + return request({ + url: '/server/annotateTask/read/', + method: 'get', + params: params + }); +} +export function queryTaskSamples(params: any) { + return request({ + url: '/server/queryTaskSamples/', + method: 'get', + params: params + }); +} + +export function mergeSampleContent(params: any) { + return request({ + url: '/server/mergeSampleContent/', + method: 'post', + data: params + }); +} +export function setPersonTask(params: any) { + return request({ + url: '/server/setPersonTask/', + method: 'post', + data: params + }); +} +export function queryPersonTasks(params: any) { + return request({ + url: '/server/queryPersonTasks/', + method: 'get', + params: params + }); +} + +export function getMytaskAnnotateList(params: any) { + return request({ + url: '/server/getMytaskAnnotateList/', + method: 'get', + params: params + }); +} +export function getMytaskAuditList(params: any) { + return request({ + url: '/server/getMytaskAuditList/', + method: 'get', + params: params + }); +} + +export function annotateTaskSample(params: any) { + return request({ + url: '/server/annotateTaskSample/', + method: 'post', + data: params + }); +} +export function readTaskSample(params: any) { + return request({ + url: '/server/readTaskSample/', + method: 'get', + params: params + }); +} +export function submitTaskSamples(params: any) { + return request({ + url: '/server/submitTaskSamples/', + method: 'post', + data: params + }); +} +export function auditTaskSamples(params: any) { + return request({ + url: '/server/auditTaskSamples/', + method: 'post', + data: params + }); +} +export function startAutoAnnotateTask(params: any) { + return request({ + url: '/server/startAutoAnnotateTask/', + method: 'post', + data: params + }); +} diff --git a/frontend/src/api/dataannotations/annotationteam/index.ts b/frontend/src/api/dataannotations/annotationteam/index.ts new file mode 100644 index 0000000..5959e1e --- /dev/null +++ b/frontend/src/api/dataannotations/annotationteam/index.ts @@ -0,0 +1,59 @@ +import request from '@/utils/request'; + +export function searchAnnotateTeam(params: any) { + return request({ + url: '/server/searchAnnotateTeam/', + method: 'get', + params: params + }); +} +export function add(params: any) { + return request({ + url: '/server/createAnnotateTeam/', + method: 'post', + data: params + }); +} +export function edit(params: any) { + return request({ + url: '/server/updateAnnotateTeam/', + method: 'PUT', + data: params + }); +} + +export function del(params: any) { + return request({ + url: '/server/deleteAnnotateTeam/?id=' + params, + method: 'DELETE' + }); +} + +export function addTeamMembers(params: any) { + return request({ + url: '/server/addTeamMembers/', + method: 'post', + data: params + }) +} +export function getTeamMembers(params: any) { + return request({ + url: '/server/getTeamMembers/', + method: 'get', + params: params + }); +} +export function updateTeamMember(params: any) { + return request({ + url: '/server/updateTeamMember/', + method: 'PUT', + data: params + }); +} + +export function deleteTeamMembers(params: any) { + return request({ + url: '/server/deleteTeamMembers/?ids=' + params, + method: 'DELETE' + }); +} \ No newline at end of file diff --git a/frontend/src/api/dataset/index.ts b/frontend/src/api/dataset/index.ts new file mode 100644 index 0000000..233f36c --- /dev/null +++ b/frontend/src/api/dataset/index.ts @@ -0,0 +1,95 @@ +import request from '@/utils/request'; + +export function queryDatasets(params: any) { + return request({ + url: '/server/queryDataset/', + method: 'get', + params: params + }); +} + +export function readDataset(params: any) { + return request({ + url: '/server/readDataset/', + method: 'get', + params: params + }); +} +export function getAlgorithmList(params: any) { + return request({ + url: '/server/getAlgorithmList/', + method: 'get', + params: params + }); +} +export function querysamples(params: any) { + return request({ + url: '/server/querysamples/', + method: 'get', + params: params + }); +} + +export function createDataset(params: any) { + return request({ + url: '/server/createDataset/', + method: 'post', + data: params + }); +} +export function updateDataset(params: any) { + return request({ + url: '/server/updateDataset/', + method: 'PUT', + data: params + }); +} + +export function deleteDataset(params: any) { + return request({ + url: '/server/deleteDataset/?id=' + params, + method: 'DELETE' + }); +} +export function deleteInvalidSamples(params: any) { + return request({ + url: '/server/deleteInvalidSamples/?ids=' + params.ids + '&dataset_id=' + params.dataset_id, + method: 'DELETE' + }); +} +export function deleteDuplicateSamples(params: any) { + return request({ + url: '/server/deleteDuplicateSamples/?dataset_id=' + params, + method: 'DELETE' + }); +} +export function deleteDatasetUpdatefile(params: any) { + return request({ + url: '/server/deleteDatasetUpdatefile/', + method: 'POST', + data: params + }); +} +export function readDatasetSample(params: any) { + return request({ + url: '/server/readDatasetSample/', + method: 'get', + params: params + }); +} + +export function generateDatasetImages(data: any) { + return request({ + url: '/server/generateDatasetImages/', + method: 'post', + data: data + }); +} + +export function importFromTempFile(data: any) { + return request({ + url: '/server/importFromTempFile/', + method: 'post', + data + }); +} diff --git a/frontend/src/api/define/index.ts b/frontend/src/api/define/index.ts new file mode 100644 index 0000000..336395f --- /dev/null +++ b/frontend/src/api/define/index.ts @@ -0,0 +1,145 @@ +import request from '@/utils/request'; +//新增算法分类 +export function createAlgorithmClass(data:any) { + return request({ + url: '/server/createAlgorithmClass/', + method: 'post', + data:data + }); +} +//修改算法分类 +export function updateAlgorithmClass(data:any) { + return request({ + url: '/server/updateAlgorithmClass/', + method: 'put', + data:data + }); + } +//查询算法分类 +export function queryAlgorithmClass() { + return request({ + url: '/server/queryAlgorithmClass/', + method: 'get', + }); + } +//删除算法分类 +export function deleteAlgorithmClass(id:any) { + return request({ + url: '/server/deleteAlgorithmClass/?id='+ id, + method: 'DELETE', + }); + } +//查询算法 +export function queryAlgorithm(data:any) { + return request({ + url: '/server/queryAlgorithm/', + method: 'get', + params:data + }); + } +//新增算法 +export function addAlgorithm(data:any) { + return request({ + url: '/server/addAlgorithm/', + method: 'post', + data:data + }); + } +//修改算法 +export function updateAlgorithm(data:any) { + return request({ + url: '/server/updateAlgorithm/', + method: 'put', + data:data + }); + } +//删除算法 +export function deleteAlgorithm(id:any) { + return request({ + url: '/server/deleteAlgorithm/?id='+ id, + method: 'DELETE', + }); +} +// 查询输入函数 +export function queryAlgorithmParam(data:any) { + return request({ + url: '/server/queryAlgorithmParam/', + method: 'get', + params:data + }); +} +//新增输入函数 +export function addAlgorithmParam(data:any) { + return request({ + url: '/server/addAlgorithmParam/', + method: 'post', + data:data + }); +} +//修改输入函数 +export function updateAlgorithmParam(data:any) { + return request({ + url: '/server/updateAlgorithmParam/', + method: 'put', + data:data + }); +} +//删除输入函数 +export function deleteAlgorithmParam(id:any) { + return request({ + url: '/server/deleteAlgorithmParam/?id='+ id, + method: 'DELETE', + }); +} + +// 查询输出函数 +export function queryAlgorithmOutput(data:any) { + return request({ + url: '/server/queryAlgorithmOutput/', + method: 'get', + params:data + }); +} +//新增输出函数 +export function addAlgorithmOutput(data:any) { + return request({ + url: '/server/addAlgorithmOutput/', + method: 'post', + data:data + }); +} +//修改输出函数 +export function updateAlgorithmOutput(data:any) { + return request({ + url: '/server/updateAlgorithmOutput/', + method: 'put', + data:data + }); +} +//删除输出函数 +export function deleteAlgorithmOutput(id:any) { + return request({ + url: '/server/deleteAlgorithmOutput/?id='+ id, + method: 'DELETE', + }); +} + + + +// 查询算法引擎 +export function getAlgorithmEngines(params:any) { + return request({ + url: '/server/getAlgorithmEngines/', + method: 'get', + params:params + }); +} + + +export function issueAlgorithmModel(data:any) { + return request({ + url: '/server/issueAlgorithmModel/', + method: 'post', + data:data + }); +} \ No newline at end of file diff --git a/frontend/src/api/dept/index.ts b/frontend/src/api/dept/index.ts new file mode 100644 index 0000000..4ab23f1 --- /dev/null +++ b/frontend/src/api/dept/index.ts @@ -0,0 +1,139 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DeptForm, DeptQuery, Dept } from './types'; + + +//获取组织架构 + +export function getTreelist(queryParams:any) { + return request({ + url: '/system/organization/getOrgTree', + method: 'POST', + params: queryParams + }); +} +//新增企业或部门 + +export function addTreelist(queryParams:any) { + return request({ + url: '/system/organization/addOrg', + method: 'POST', + data: queryParams + }); +} +// 修改企业部门 + +export function updataTreelist(queryParams:any) { + return request({ + url: '/system/organization/updateById', + method: 'POST', + data: queryParams + }); +} +//删除企业 +export function delTreelist(queryParams:any) { + return request({ + url: '/system/organization/deleteById', + method: 'POST', + params: queryParams + }); +} +//获取部门信息 +export function gettableData(queryParams:any) { + return request({ + url: '/system/organization/getOrganizationById', + method: 'POST', + params: queryParams + }); +} +//部门是否有效 +export function deptIsVaild(queryParams:any) { + return request({ + url: '/system/organization/setIsValid', + method: 'POST', + params: queryParams + }); +} + +//修改部门信息 +export function reviseDepartment(queryParams:any) { + return request({ + url: '/system/organization/updateById', + method: 'POST', + data: queryParams + }); +} + +/** + * 部门树形表格 + * + * @param queryParams + */ +export function listDepartments(queryParams?: DeptQuery): AxiosPromise { + return request({ + url: '/api/v1/dept', + method: 'get', + params: queryParams + }); +} + +/** + * 部门下拉列表 + */ +export function listDeptOptions(): AxiosPromise { + return request({ + url: '/api/v1/dept/options', + method: 'get' + }); +} + +/** + * 获取部门详情 + * + * @param id + */ +export function getDeptForm(id: string): AxiosPromise { + return request({ + url: '/api/v1/dept/' + id + '/form', + method: 'get' + }); +} + +/** + * 新增部门 + * + * @param data + */ +export function addDept(data: DeptForm) { + return request({ + url: '/api/v1/dept', + method: 'post', + data: data + }); +} + +/** + * 修改部门 + * + * @param id + * @param data + */ +export function updateDept(id: string, data: DeptForm) { + return request({ + url: '/api/v1/dept/' + id, + method: 'put', + data: data + }); +} + +/** + * 删除部门 + * + * @param ids + */ +export function deleteDept(ids: string) { + return request({ + url: '/api/v1/dept/' + ids, + method: 'delete' + }); +} diff --git a/frontend/src/api/dept/types.ts b/frontend/src/api/dept/types.ts new file mode 100644 index 0000000..b99f819 --- /dev/null +++ b/frontend/src/api/dept/types.ts @@ -0,0 +1,34 @@ +/** + * 部门查询参数 + */ +export interface DeptQuery { + keywords: string | undefined; + status: number | undefined; +} + +/** + * 部门类型 + */ +export interface Dept { + id: string; + name: string; + parentId: string; + treePath: string; + sort: number; + status: number; + leader?: string; + mobile?: string; + email?: string; + children: Dept[]; +} + +/** + * 部门表单类型 + */ +export interface DeptForm { + id?: string; + parentId: string; + name: string; + sort: number; + status: number; +} diff --git a/frontend/src/api/dict/index.ts b/frontend/src/api/dict/index.ts new file mode 100644 index 0000000..a7fe18b --- /dev/null +++ b/frontend/src/api/dict/index.ts @@ -0,0 +1,250 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { + DictQuery, + DictPageResult, + DictTypeForm, + DictItemQuery, + DictItemPageResult, + DictItemForm +} from './types'; +// 查询字典 +export function getTreelist(params:any) { + return request({ + url: '/system/dictionary/dictList', + method: 'get', + params: params + }); +} + +// 新增字典 +export function addDict(params:any) { + return request({ + url: '/system/dictionary/addDict', + method: 'post', + data: params + }); +} + +// 修改字典 +export function updateDict(params:any) { + return request({ + url: '/system/dictionary/updateDict', + method: 'post', + data: params + }); +} +// 删除字典 +export function deleteById(params:any) { + return request({ + url: '/system/dictionary/deleteById', + method: 'post', + params: params + }); +} +// 字典排序 +export function changeDictOrder(params:any) { + return request({ + url: '/system/dictionary/changeDictOrder', + method: 'post', + params: params + }); +} +// 查询字典项 +export function getDictItemById(params:any) { + return request({ + url: '/system/dictionaryItems/page', + method: 'get', + params: params + }); +} + +// 新增字典项 +export function addDictionaryItem(params:any) { + return request({ + url: '/system/dictionaryItems/addDictionaryItem', + method: 'post', + data: params + }); +} + +// 修改字典项 +export function updateDictionaryItem(params:any) { + return request({ + url: '/system/dictionaryItems/updateDictionaryItem', + method: 'post', + data: params + }); +} +// 删除字典项 +export function deleteDictItemById(params:any) { + return request({ + url: '/system/dictionaryItems/deleteDictItemById', + method: 'post', + params: params + }); +} +// 批量删除字典项 +export function deleteDictItemByIds(params:any) { + return request({ + url: '/system/dictionaryItems/deleteDictItemByIds', + method: 'post', + params: params + }); +} + +// 字典项排序 +export function changeItemOrder(params:any) { + return request({ + url: '/system/dictionaryItems/changeItemOrder', + method: 'post', + params: params + }); +} +/** + * 获取字典类型分页列表 + * + * @param queryParams + */ +export function listDictTypePages( + queryParams: DictQuery +): AxiosPromise { + return request({ + url: '/api/v1/dict/types/pages', + method: 'get', + params: queryParams + }); +} + +/** + * 获取字典类型表单数据 + * + * @param id + */ +export function getDictTypeForm(id: number): AxiosPromise { + return request({ + url: '/api/v1/dict/types/' + id + '/form', + method: 'get' + }); +} + +/** + * 新增字典类型 + * + * @param data + */ +export function addDictType(data: DictTypeForm) { + return request({ + url: '/api/v1/dict/types', + method: 'post', + data: data + }); +} + +/** + * 修改字典类型 + * + * @param id + * @param data + */ +export function updateDictType(id: number, data: DictTypeForm) { + return request({ + url: '/api/v1/dict/types/' + id, + method: 'put', + data: data + }); +} + +/** + * 删除字典类型 + */ +export function deleteDictTypes(ids: string) { + return request({ + url: '/api/v1/dict/types/' + ids, + method: 'delete' + }); +} + +/** + * 获取字典类型的数据项 + * + * @param typeCode 字典类型编码 + */ +export function getDictionaries(typeCode: string): AxiosPromise { + return request({ + url: '/api/v1/dict/types/' + typeCode + '/items', + method: 'get' + }); +} + +/** + * 获取字典项分页列表 + */ +export function listDictItemPages( + queryParams: DictItemQuery +): AxiosPromise { + return request({ + url: '/api/v1/dict/items/pages', + method: 'get', + params: queryParams + }); +} + +/** + * 获取字典数据项表单数据 + * + * @param id + */ +export function getDictItemData(id: number): AxiosPromise { + return request({ + url: '/api/v1/dict/items/' + id + '/form', + method: 'get' + }); +} + +/** + * 新增字典项 + * + * @param data + */ +export function saveDictItem(data: DictItemForm) { + return request({ + url: '/api/v1/dict/items', + method: 'post', + data: data + }); +} + +/** + * 修改字典项 + * + * @param id + * @param data + */ +export function updateDictItem(id: number, data: DictItemForm) { + return request({ + url: '/api/v1/dict/items/' + id, + method: 'put', + data: data + }); +} + +/** + * 批量删除字典数据项 + * + * @param ids 字典项ID,多个以英文逗号(,)分割 + */ +export function deleteDictItems(ids: string) { + return request({ + url: '/api/v1/dict/items/' + ids, + method: 'delete' + }); +} + +export function getDeviceByType(params: any) { + return request({ + url: '/system/dictionaryItems/getDeviceByType', + method: 'get', + params: params + }); +} \ No newline at end of file diff --git a/frontend/src/api/dict/types.ts b/frontend/src/api/dict/types.ts new file mode 100644 index 0000000..3e301f2 --- /dev/null +++ b/frontend/src/api/dict/types.ts @@ -0,0 +1,84 @@ +/** + * 字典查询参数 + */ +export interface DictQuery extends PageQuery { + /** + * 字典名称 + */ + name?: string; +} + +/** + * 字典类型 + */ +export interface Dict { + id: number; + code: string; + name: string; + status: number; + remark: string; +} + +/** + * 字典分页项类型声明 + */ +export type DictPageResult = PageResult; + +/** + * 字典表单类型声明 + */ +export interface DictTypeForm { + id: number | undefined; + name: string; + code: string; + status: number; + remark: string; +} + +/** + * 字典项查询参数类型声明 + */ +export interface DictItemQuery extends PageQuery { + /** + * 字典项名称 + */ + name?: string; + /** + * 字典类型编码 + */ + typeCode?: string; +} + +/** + * 字典数据项类型 + */ +export interface DictItem { + id: number; + name: string; + value: string; + typeCode: string; + sort: number; + status: number; + defaulted: number; + remark?: string; +} + +/** + * 字典分页项类型声明 + */ +export type DictItemPageResult = PageResult; + +/** + * 字典表单类型声明 + */ +export interface DictItemForm { + id?: number; + typeCode?: string; + typeName?: string; + name: string; + code: string; + value: string; + status: number; + sort: number; + remark: string; +} diff --git a/frontend/src/api/file/index.ts b/frontend/src/api/file/index.ts new file mode 100644 index 0000000..cb40026 --- /dev/null +++ b/frontend/src/api/file/index.ts @@ -0,0 +1,56 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { FileInfo } from './types'; + +/** + * 上传文件 + * + * @param file + */ +export function uploadFileApi(file: File): AxiosPromise { + const formData = new FormData(); + formData.append('file', file); + return request({ + url: '/api/v1/files', + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +} + +/** + * 删除文件 + * + * @param filePath 文件完整路径 + */ +export function deleteFileApi(filePath?: string) { + return request({ + url: '/api/v1/files', + method: 'delete', + params: { filePath: filePath } + }); +} + + +/** + * 上传文件 + * + * @param file + * @param id + */ + export function uploadRecord(data:any){ + const formData = new FormData(); + formData.append('id', data.id); + formData.append('file', data.file); + formData.append('evaluatea', data.evaluatea); + return request({ + url: '/modeltrain/trainrecord/uploadRecord', + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +} diff --git a/frontend/src/api/file/types.ts b/frontend/src/api/file/types.ts new file mode 100644 index 0000000..22b2be5 --- /dev/null +++ b/frontend/src/api/file/types.ts @@ -0,0 +1,7 @@ +/** + * 文件API类型声明 + */ +export interface FileInfo { + name: string; + url: string; +} diff --git a/frontend/src/api/maintenance/index.ts b/frontend/src/api/maintenance/index.ts new file mode 100644 index 0000000..4115f97 --- /dev/null +++ b/frontend/src/api/maintenance/index.ts @@ -0,0 +1,77 @@ + + +import request from '@/utils/request'; +//查询模型 +export function queryAlgorithmModel(params:any) { + return request({ + url: '/server/queryAlgorithmModel/', + method: 'get', + params:params + }); +} +//新增模型 +export function addAlgorithmModel(params:any) { + return request({ + url: '/server/addAlgorithmModel/', + method: 'post', + data:params + }); +} +//修改模型 +export function updateAlgorithmModel(data:any) { + return request({ + url: '/server/updateAlgorithmModel/', + method: 'put', + data:data + }); +} +//删除模型 +export function deleteDuplicateSamples(id:any) { + return request({ + url: '/server/deleteAlgorithmModel/?id='+ id, + method: 'DELETE', + }); +} +// 获取左侧树数据 +export function getAlgorithmTree() { + return request({ + url: '/server/getAlgorithmTree/', + method: 'get', + + }); +} +//上传文件 +export function uploadAlgorithmModelFile(params:any) { + return request({ + url: '/server/uploadAlgorithmModelFile/', + method: 'post', + data:params, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +} +//下载文件 +export function exportAlgorithmModel(id:any) { + return request({ + url: '/server/exportAlgorithmModel/?id='+ id, + method: 'get', + responseType: 'blob', + }); +} +//设置默认模型 +export function setAlgorithmDefaultModel(params:any) { + return request({ + url: '/server/setAlgorithmDefaultModel/', + method: 'post', + data:params, + }); +} + +export function convertAlgorithmModelOnnx(params:any) { + return request({ + url: '/server/convertAlgorithmModelOnnx/', + method: 'post', + data: params + }); +} diff --git a/frontend/src/api/menu/index.ts b/frontend/src/api/menu/index.ts new file mode 100644 index 0000000..fae4404 --- /dev/null +++ b/frontend/src/api/menu/index.ts @@ -0,0 +1,159 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { MenuQuery, Menu, Resource, MenuForm } from './types'; + +//获取菜单表格 +export function getdata(queryParams:any) { + return request({ + url: '/system/menu/getMenuButtonTree', + method: 'post', + params: queryParams + }); +} +//新增目录 +export function addmenu(queryParams:any) { + return request({ + url: '/system/menu/addMenu', + method: 'post', + data: queryParams + }); +} +//修改目录 +export function editmenu(queryParams:any) { + return request({ + url: '/system/menu/updateById', + method: 'post', + data: queryParams + }); +} +//删除 +export function deltmenu(queryParams:any) { + return request({ + url: '/system/menu/deleteById', + method: 'post', + params: queryParams + }); +} +//排序 +export function moveOrderno(params:any) { + return request({ + url: '/system/menu/changeMenuOrder', + method: 'post', + params: params + }); +} +//上传图标之前获取ID + +//上传单个图标 +export function uploadIcon (data:any) { + return request({ + headers: { + 'Content-Type': 'multipart/form-data' + }, + url: '/system/menu/uploadIcon', + method: 'POST', + data + }); +} +//删除单个图标 +export function moveIcon(params:any) { + return request({ + url: '/system/menu/deleteIcon', + method: 'post', + params: params + }); +} + + +/** + * 获取路由列表 + */ +export function listRoutes() { + return request({ + url: 'system/menu/treeRoutes', + method: 'get', + }); +} + +/** + * 获取菜单表格列表 + * + * @param queryParams + */ +export function listMenus(queryParams: MenuQuery): AxiosPromise { + return request({ + url: '/api/v1/menus', + method: 'get', + params: queryParams + }); +} + +/** + * 获取菜单下拉树形列表 + */ +export function listMenuOptions(): AxiosPromise { + return request({ + url: '/api/v1/menus/options', + method: 'get' + }); +} + +/** + * 获取资源(菜单+权限)树形列表 + */ +export function listResources(): AxiosPromise { + return request({ + url: '/api/v1/menus/resources', + method: 'get' + }); +} + +/** + * 获取菜单详情 + * @param id + */ +export function getMenuDetail(id: string): AxiosPromise { + return request({ + url: '/api/v1/menus/' + id, + method: 'get' + }); +} + +/** + * 添加菜单 + * + * @param data + */ +export function addMenu(data: MenuForm) { + return request({ + url: '/api/v1/menus', + method: 'post', + data: data + }); +} + +/** + * 修改菜单 + * + * @param id + * @param data + */ +export function updateMenu(id: string, data: MenuForm) { + return request({ + url: '/api/v1/menus/' + id, + method: 'put', + data: data + }); +} + +/** + * 批量删除菜单 + * + * @param ids 菜单ID,多个以英文逗号(,)分割 + */ +export function deleteMenus(ids: string) { + return request({ + url: '/api/v1/menus/' + ids, + method: 'delete' + }); +} diff --git a/frontend/src/api/menu/types.ts b/frontend/src/api/menu/types.ts new file mode 100644 index 0000000..8de7056 --- /dev/null +++ b/frontend/src/api/menu/types.ts @@ -0,0 +1,105 @@ +/** + * 菜单查询参数类型声明 + */ +export interface MenuQuery { + keywords?: string; +} + +/** + * 菜单分页列表项声明 + */ + +export interface Menu { + id?: number; + parentId: number; + type?: string | 'CATEGORY' | 'MENU' | 'EXTLINK'; + createTime: string; + updateTime: string; + name: string; + icon: string; + component: string; + sort: number; + visible: number; + children: Menu[]; +} + +/** + * 菜单表单类型声明 + */ +export interface MenuForm { + /** + * 菜单ID + */ + id?: string; + /** + * 父菜单ID + */ + parentId: string; + /** + * 菜单名称 + */ + name: string; + /** + * 菜单是否可见(1:是;0:否;) + */ + visible: number; + icon?: string; + /** + * 排序 + */ + sort: number; + /** + * 组件路径 + */ + component?: string; + /** + * 路由路径 + */ + path: string; + /** + * 跳转路由路径 + */ + redirect?: string; + + /** + * 菜单类型 + */ + type: string; + + /** + * 权限标识 + */ + perm?: string; +} + +/** + * 资源(菜单+权限)类型 + */ +export interface Resource { + /** + * 菜单值 + */ + value: string; + /** + * 菜单文本 + */ + label: string; + /** + * 子菜单 + */ + children: Resource[]; +} + +/** + * 权限类型 + */ +export interface Permission { + /** + * 权限值 + */ + value: string; + /** + * 权限文本 + */ + label: string; +} diff --git a/frontend/src/api/message/index.ts b/frontend/src/api/message/index.ts new file mode 100644 index 0000000..0280648 --- /dev/null +++ b/frontend/src/api/message/index.ts @@ -0,0 +1,28 @@ +import request from '@/utils/request'; + +export function getMessageList(params:any) { + return request({ + url: '/system/message/getMessageList', + method: 'get', + params + }); +} +export function setMessageStatus(data:any) { + return request({ + url: '/system/message/setMessageStatus?id=' + data, + method: 'post' + }); +} +export function setAllMessageStatus() { + return request({ + url: '/system/message/setAllMessageStatus', + method: 'post' + }); +} +export function deleteMessageById(data:any) { + return request({ + url: '/system/message/deleteMessageById?id=' + data, + method: 'post', + data + }); +} \ No newline at end of file diff --git a/frontend/src/api/minio/index.ts b/frontend/src/api/minio/index.ts new file mode 100644 index 0000000..01cf857 --- /dev/null +++ b/frontend/src/api/minio/index.ts @@ -0,0 +1,33 @@ +import request from '@/utils/request'; + +export function getMinioFilePresign(params: { + bucket_name: string; + object_name: string; + expires?: number; + response_content_type?: string; + response_content_disposition?: string; +}) { + return request({ + url: '/server/minio/file/presign/', + method: 'get', + params + }); +} + +export function getMinioFilePreviewUrl(bucket_name: string, object_name: string) { + return `/server/minio/file/preview/?bucket_name=${encodeURIComponent(bucket_name)}&object_name=${encodeURIComponent(object_name)}`; +} + +export async function getMinioReportPresign(bucket_name: string, object_name: string): Promise { + const res: any = await getMinioFilePresign({ + bucket_name, + object_name, + expires: 3600, + response_content_type: 'text/html; charset=utf-8', + response_content_disposition: 'inline' + }); + if (res.code === 200) { + return res.data.presigned_url; + } + throw new Error('获取预览链接失败'); +} diff --git a/frontend/src/api/modelbase/index.ts b/frontend/src/api/modelbase/index.ts new file mode 100644 index 0000000..90e03f6 --- /dev/null +++ b/frontend/src/api/modelbase/index.ts @@ -0,0 +1,26 @@ +import request from '@/utils/request'; +//算法调用日志 +export function queryAlgorithmCallLogs(data: any) { + return request({ + url: '/server/queryAlgorithmCallLogs/', + method: 'get', + params: data + }); +} +export function setAlgorithmDefaultModel(data: any) { + return request({ + url: '/server/setAlgorithmDefaultModel/', + method: 'get', + params: data, + // headers: { + // 'Content-Type': 'multipart/form-data' + // } + }); +} +export function publishModelToTerminals(data: any) { + return request({ + url: '/server/publishModelToTerminals/', + method: 'post', + data: data + }); +} \ No newline at end of file diff --git a/frontend/src/api/modeltraining/index.ts b/frontend/src/api/modeltraining/index.ts new file mode 100644 index 0000000..d4f1f73 --- /dev/null +++ b/frontend/src/api/modeltraining/index.ts @@ -0,0 +1,91 @@ +import request from '@/utils/request'; + +//获取表格内容 +export function queryAlgorithmTrainRecords(params: any) { + return request({ + url: '/server/queryAlgorithmTrainRecords/', + method: 'get', + params: params + }); + } + +export function add(data: any) { + return request({ + url: '/server/addAlgorithmTrainRecord/', + method: 'post', + data: data + }); +} + +export function edit(params: any) { + return request({ + url: '/server/updateAlgorithmTrainRecord/', + method: 'PUT', + data: params + }); + } + +//查询算法输入参数 +export function queryAlgorithmParam(params: any) { + return request({ + url: '/server/queryAlgorithmParam/', + method: 'get', + params: params + }); +} +export function del(id: any) { + return request({ + url: '/server/deleteAlgorithmTrainRecord/?id=' + id, + method: 'DELETE' + }); +} + +//开始训练 +export function startAlgorithmTrain(data: any) { + return request({ + url: '/server/startAlgorithmTrain/', + method: 'post', + data: data + }); +} + + +export function prepareAlgorithmTrainDataset(data: any) { + return request({ + url: '/server/prepareAlgorithmTrainDataset/', + method: 'post', + data: data + }); +} + +// 模型归档 +export function archiveTrainModel(data: any) { + return request({ + url: '/server/archiveTrainModel/', + method: 'post', + data: data + }); +} + + +// 复制模型训练 +export function copyAlgorithmTrainRecord(data: any) { + return request({ + url: '/server/copyAlgorithmTrainRecord/', + method: 'post', + data: data + }); +} + + +export function closeTrain(data: any) { + return request({ + url: '/server/closeTrain/', + method: 'post', + params: data + }); +} + + + + diff --git a/frontend/src/api/predictioneffect1/index.ts b/frontend/src/api/predictioneffect1/index.ts new file mode 100644 index 0000000..600bdda --- /dev/null +++ b/frontend/src/api/predictioneffect1/index.ts @@ -0,0 +1,65 @@ +import request from '@/utils/request'; +//开始检测 +export function queryAlgorithmCallLogs(data: any) { + return request({ + url: '/server/AlgorithmModelPredict/', + method: 'post', + data: data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +} +//进入页面获取数据 +export function getAlgorithmDefaultImages(data: any) { + return request({ + url: '/server/getAlgorithmDefaultImages/', + method: 'get', + params: data, + + }); +} +//上传轮播图片 +export function uploadPredictDefaultImages(data: any) { + return request({ + url: '/server/uploadPredictDefaultImages/', + method: 'post', + data: data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +} + +//开始检测 +export function detectImageObject(data: any) { + return request({ + url: '/server/detectImageObject/', + method: 'post', + data: data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +} + +//开始检测-模型维护 +export function AlgorithmModelPredict(data: any) { + return request({ + url: '/server/AlgorithmModelPredict/', + method: 'post', + data: data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +} + +//删除轮播图片 +export function deletePredictDefaultImage(data: any) { + return request({ + url: '/server/deletePredictDefaultImage/', + method: 'post', + data: data, + }); +} \ No newline at end of file diff --git a/frontend/src/api/record/index.ts b/frontend/src/api/record/index.ts new file mode 100644 index 0000000..9f263b1 --- /dev/null +++ b/frontend/src/api/record/index.ts @@ -0,0 +1,18 @@ +import request from '@/utils/request'; + +//获取所有角色 +export function getLogList(params:any){ + return request({ + url: '/system/log/getLogList' , + method: 'post', + params: params + }); +} +export function exportExcel(queryParams: any) { + return request({ + url: '/system/log/exportExcel', + method: 'get', + params: queryParams, + responseType: 'arraybuffer' + }); +} diff --git a/frontend/src/api/role/index.ts b/frontend/src/api/role/index.ts new file mode 100644 index 0000000..e6420bf --- /dev/null +++ b/frontend/src/api/role/index.ts @@ -0,0 +1,196 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { RoleQuery, RoleForm } from './types'; + +//获取所有角色 +export function listRolePages(queryParams:any){ + return request({ + url: '/system/role/list' , + method: 'post', + params:queryParams + }); +} +//角色是否有效 +export function isvaildTo(queryParams:any){ + return request({ + url: '/system/role/setIsvaild' , + method: 'post', + params:queryParams + }); +} +//新增角色 +export function addDept(queryParams:any){ + return request({ + url:'/system/role/addRole' , + method: 'post', + data: queryParams + }); +} +//更新角色信息 +export function renewDept (queryParams:any){ + return request({ + url:'/system/role/updateById' , + method: 'post', + data: queryParams + }); +} +//单个删除角色 +export function deleDept (queryParams:any){ + return request({ + url:'/system/role/deleteById' , + method: 'post', + params: queryParams + }); +} + +//获取分配权限 +export function assignmentPer (queryParams:any){ + return request({ + url:'/system/menu/permissionAssignment' , + method: 'post', + params: queryParams + }); +} +//发出分配权限 +export function setMenuById (queryParams:any){ + return request({ + url:'/system/role/setMenuById' , + method: 'post', + params: queryParams + }); +} +////获取组织范围 +export function setOrgscope (queryParams:any){ + return request({ + url:'/system/organization/getOrgScopeTree' , + method: 'post', + params: queryParams + }); +} +//修改组织范围 +export function postOrgscope (queryParams:any){ + return request({ + url:'/system/role/setOrgscope' , + method: 'post', + params: queryParams + }); +} + + +//删除角色 +// export function delDept(queryParams:any){ +// return request({ +// url:'/system/role/addRole' , +// method: 'post', +// data: queryParams +// }); +// } + +/** + * 获取角色分页数据 + * + * @param queryParam + */ +// export function listRolePages( +// queryParams?: RoleQuery +// ): AxiosPromise { +// return request({ +// url: '/system/role/list', +// method: 'post', +// params: queryParams +// }); +// } + +/** + * 获取角色下拉数据 + * + * @param queryParams + */ +export function listRoleOptions( + queryParams?: RoleQuery +): AxiosPromise { + return request({ + url: '/api/v1/roles/options', + method: 'get', + params: queryParams + }); +} + +/** + * 获取角色拥有的资源ID集合 + * + * @param queryParams + */ +export function getRoleMenuIds(roleId: string): AxiosPromise { + return request({ + url: '/api/v1/roles/' + roleId + '/menuIds', + method: 'get' + }); +} + +/** + * 修改角色资源权限 + * + * @param queryParams + */ +export function updateRoleMenus( + roleId: string, + data: number[] +): AxiosPromise { + return request({ + url: '/api/v1/roles/' + roleId + '/menus', + method: 'put', + data: data + }); +} + +/** + * 获取角色详情 + * + * @param id + */ +export function getRoleDetail(id: number): AxiosPromise { + return request({ + url: '/api/v1/roles/' + id, + method: 'get' + }); +} + +/** + * 添加角色 + * + * @param data + */ +export function addRole(data: RoleForm) { + return request({ + url: '/api/v1/roles', + method: 'post', + data: data + }); +} + +/** + * 更新角色 + * + * @param id + * @param data + */ +export function updateRole(id: number, data: RoleForm) { + return request({ + url: '/api/v1/roles/' + id, + method: 'put', + data: data + }); +} + +/** + * 批量删除角色,多个以英文逗号(,)分割 + * + * @param ids + */ +export function deleteRoles(ids: string) { + return request({ + url: '/api/v1/roles/' + ids, + method: 'delete' + }); +} diff --git a/frontend/src/api/role/types.ts b/frontend/src/api/role/types.ts new file mode 100644 index 0000000..4684c3b --- /dev/null +++ b/frontend/src/api/role/types.ts @@ -0,0 +1,40 @@ +/** + * 角色查询参数类型 + */ +export interface RoleQuery extends PageQuery { + keywords?: string; +} + +/** + * 角色分页列表项 + */ +export interface Role { + id: string; + name: string; + code: string; + sort: number; + status: number; + deleted: number; + menuIds?: any; + permissionIds?: any; +} + +/** + * 角色分页项类型 + */ +export type RolePageResult = PageResult; + +/** + * 角色表单 + */ +export interface RoleForm { + id?: number; + name: string; + code: string; + sort: number; + status: number; + /** + * 数据权限 + */ + dataScope: number; +} diff --git a/frontend/src/api/smartterminal/index.ts b/frontend/src/api/smartterminal/index.ts new file mode 100644 index 0000000..6d15664 --- /dev/null +++ b/frontend/src/api/smartterminal/index.ts @@ -0,0 +1,38 @@ +import request from '@/utils/request'; + +const BASE = '/server/terminal'; + +/** 创建智能终端设备 */ +export function createSmartTerminal(data: Record) { + return request({ url: `${BASE}/create/`, method: 'post', data }); +} + +/** 修改智能设备信息 */ +export function updateSmartTerminal(data: Record) { + return request({ url: `${BASE}/update/`, method: 'put', data }); +} + +/** 发布更新设备算法模型 */ +export function publishTerminalModel(data: Record) { + return request({ url: `${BASE}/publishModel/`, method: 'put', data }); +} + +/** 条件查询智能设备列表 */ +export function searchSmartTerminals(params: Record) { + return request({ url: `${BASE}/list/`, method: 'get', params }); +} + +/** 逻辑删除智能设备 */ +export function deleteSmartTerminal(id: string) { + return request({ url: `${BASE}/delete/`, method: 'delete', params: { id } }); +} + +/** 下载终端模型文件 */ +export function downloadTerminalModel(params: { stcd: string; model_format: 'onnx' | 'original' }) { + return request({ + url: `${BASE}/downloadModel/`, + method: 'get', + params, + responseType: 'blob' + }); +} diff --git a/frontend/src/api/taxkSetting/index.ts b/frontend/src/api/taxkSetting/index.ts new file mode 100644 index 0000000..28ec26d --- /dev/null +++ b/frontend/src/api/taxkSetting/index.ts @@ -0,0 +1,51 @@ +import request from '@/utils/request'; + +//获取表格内容 +export function getTaskList(params: any) { + return request({ + url: '/system/quartzjob/getQuartzJobList', + method: 'get', + params: params + }); +} +//新增表格内容 +export function addTaskList(params: any) { + return request({ + url: '/system/quartzjob/addQuartzJob', + method: 'post', + data: params + }); +} + +//删除定时任务 +export function delTaskList(params: any) { + return request({ + url: '/system/quartzjob/deleteQuartzJob', + method: 'post', + params: params + }); +} +//修改定时任务 +export function updataTaskList(params: any) { + return request({ + url: '/system/quartzjob/updateQuartzJob', + method: 'post', + data: params + }); +} +//定时任务是否有效 +export function setTaskList(params: any) { + return request({ + url: '/system/quartzjob/setQuartzStatus', + method: 'post', + params: params + }); +} +//拖拽 +export function changeItemOrder(params: any) { + return request({ + url: '/system/quartzjob/changeDictOrder', + method: 'post', + params: params + }); +} \ No newline at end of file diff --git a/frontend/src/api/tempfile/index.ts b/frontend/src/api/tempfile/index.ts new file mode 100644 index 0000000..a0df833 --- /dev/null +++ b/frontend/src/api/tempfile/index.ts @@ -0,0 +1,62 @@ +import request from '@/utils/request'; + +export function searchTempFiles(params: any) { + return request({ + url: '/server/queryTempFiles/', + method: 'get', + params + }); +} + +export function readTempFile(params: any) { + return request({ + url: '/server/readTempFile/', + method: 'get', + params + }); +} + +export function updateTempFile(data: any) { + return request({ + url: '/server/updateTempFile/', + method: 'put', + data + }); +} + +export function deleteTempFile(id: string) { + return request({ + url: '/server/deleteTempFile/?id=' + id, + method: 'delete' + }); +} + +export function uploadTempFile(data: FormData, onUploadProgress?: (event: any) => void) { + return request({ + url: '/server/uploadTempFile/', + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data' + }, + onUploadProgress + }); +} + +export function previewTempFile(params: any) { + return request({ + url: '/server/previewTempFile/', + method: 'get', + params, + responseType: 'blob' + }); +} + +export function downloadTempFile(params: any) { + return request({ + url: '/server/downloadTempFile/', + method: 'get', + params, + responseType: 'blob' + }); +} diff --git a/frontend/src/api/user/index.ts b/frontend/src/api/user/index.ts new file mode 100644 index 0000000..898fdb7 --- /dev/null +++ b/frontend/src/api/user/index.ts @@ -0,0 +1,65 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { UserForm, UserInfo, UserPageResult, UserQuery } from './types'; + +export function getOrganizationList() { + return request({ + url: '/server/getOrganizationList/', + method: 'get' + }); +} +export function add(params:any) { + return request({ + url: '/server/addOrganization/', + method: 'post', + data: params + }); +} +export function edit(params:any) { + return request({ + url: '/server/updateOrganization/', + method: 'PUT', + data: params + }); +} +export function del(params:any) { + return request({ + url: '/server/deleteOrganization/?id=' + params, + method: 'DELETE' + }); +} + +export function getPersonList(params:any) { + return request({ + url: '/server/getPersonList/', + method: 'get', + params: params + }); +} +export function addPerson(params:any) { + return request({ + url: '/server/addPerson/', + method: 'post', + data: params + }); +} +export function updatePerson(params:any) { + return request({ + url: '/server/updatePerson/', + method: 'PUT', + data: params + }); +} +export function deletePerson(params:any) { + return request({ + url: '/server/deletePerson/?id=' + params, + method: 'DELETE' + }); +} +export function updatePassword(params:any) { + return request({ + url: '/server/updatePassword/', + method: 'POST', + data: params + }); +} diff --git a/frontend/src/api/user/types.ts b/frontend/src/api/user/types.ts new file mode 100644 index 0000000..07b734b --- /dev/null +++ b/frontend/src/api/user/types.ts @@ -0,0 +1,67 @@ +/** + * 登录用户信息 + */ +export interface UserInfo { + permissions: string[]; + userInfo: any; + nickname: string; + avatar: string; + roles: string[]; + perms: string[]; +} + +/** + * 用户查询参数 + */ +export interface UserQuery extends PageQuery { + keywords: string; + status: number; + deptId: number; +} + +/** + * 用户分页列表项声明 + */ +export interface UserType { + id: string; + username: string; + nickname: string; + mobile: string; + gender: number; + avatar: string; + email: string; + status: number; + deptName: string; + roleNames: string; + createTime: string; +} + +/** + * 用户分页项类型声明 + */ +export type UserPageResult = PageResult; + +/** + * 用户表单类型声明 + */ +export interface UserForm { + id: number | undefined; + deptId: number; + username: string; + nickname: string; + password: string; + mobile: string; + email: string; + gender: number; + status: number; + remark: string; + roleIds: number[]; +} + +/** + * 用户导入表单类型声明 + */ +export interface UserImportData { + deptId: number; + roleIds: number[]; +} diff --git a/frontend/src/assets/401_images/401.gif b/frontend/src/assets/401_images/401.gif new file mode 100644 index 0000000..cd6e0d9 Binary files /dev/null and b/frontend/src/assets/401_images/401.gif differ diff --git a/frontend/src/assets/404_images/404.png b/frontend/src/assets/404_images/404.png new file mode 100644 index 0000000..3d8e230 Binary files /dev/null and b/frontend/src/assets/404_images/404.png differ diff --git a/frontend/src/assets/404_images/404_cloud.png b/frontend/src/assets/404_images/404_cloud.png new file mode 100644 index 0000000..c6281d0 Binary files /dev/null and b/frontend/src/assets/404_images/404_cloud.png differ diff --git a/frontend/src/assets/MenuIcon/bq_gb.png b/frontend/src/assets/MenuIcon/bq_gb.png new file mode 100644 index 0000000..092115b Binary files /dev/null and b/frontend/src/assets/MenuIcon/bq_gb.png differ diff --git a/frontend/src/assets/MenuIcon/bq_gb1.png b/frontend/src/assets/MenuIcon/bq_gb1.png new file mode 100644 index 0000000..fd22718 Binary files /dev/null and b/frontend/src/assets/MenuIcon/bq_gb1.png differ diff --git a/frontend/src/assets/MenuIcon/czan_xz.png b/frontend/src/assets/MenuIcon/czan_xz.png new file mode 100644 index 0000000..fe03405 Binary files /dev/null and b/frontend/src/assets/MenuIcon/czan_xz.png differ diff --git a/frontend/src/assets/MenuIcon/dh_jt.png b/frontend/src/assets/MenuIcon/dh_jt.png new file mode 100644 index 0000000..e1ace57 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_jt.png differ diff --git a/frontend/src/assets/MenuIcon/dh_jt1.png b/frontend/src/assets/MenuIcon/dh_jt1.png new file mode 100644 index 0000000..3055566 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_jt1.png differ diff --git a/frontend/src/assets/MenuIcon/dh_qy.png b/frontend/src/assets/MenuIcon/dh_qy.png new file mode 100644 index 0000000..e7e0563 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_qy.png differ diff --git a/frontend/src/assets/MenuIcon/dh_qy1.png b/frontend/src/assets/MenuIcon/dh_qy1.png new file mode 100644 index 0000000..85742ed Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_qy1.png differ diff --git a/frontend/src/assets/MenuIcon/dh_qz.png b/frontend/src/assets/MenuIcon/dh_qz.png new file mode 100644 index 0000000..54ce7e4 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_qz.png differ diff --git a/frontend/src/assets/MenuIcon/dh_qz1.png b/frontend/src/assets/MenuIcon/dh_qz1.png new file mode 100644 index 0000000..36632cd Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_qz1.png differ diff --git a/frontend/src/assets/MenuIcon/dh_sq.png b/frontend/src/assets/MenuIcon/dh_sq.png new file mode 100644 index 0000000..adf9805 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_sq.png differ diff --git a/frontend/src/assets/MenuIcon/dh_sq1.png b/frontend/src/assets/MenuIcon/dh_sq1.png new file mode 100644 index 0000000..57e1514 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_sq1.png differ diff --git a/frontend/src/assets/MenuIcon/dh_sy.png b/frontend/src/assets/MenuIcon/dh_sy.png new file mode 100644 index 0000000..248c590 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_sy.png differ diff --git a/frontend/src/assets/MenuIcon/dh_sy1.png b/frontend/src/assets/MenuIcon/dh_sy1.png new file mode 100644 index 0000000..d092df7 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_sy1.png differ diff --git a/frontend/src/assets/MenuIcon/dh_sz.png b/frontend/src/assets/MenuIcon/dh_sz.png new file mode 100644 index 0000000..5fc1f6f Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_sz.png differ diff --git a/frontend/src/assets/MenuIcon/dh_sz1.png b/frontend/src/assets/MenuIcon/dh_sz1.png new file mode 100644 index 0000000..1a13ddd Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_sz1.png differ diff --git a/frontend/src/assets/MenuIcon/dh_xm.png b/frontend/src/assets/MenuIcon/dh_xm.png new file mode 100644 index 0000000..a750b02 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_xm.png differ diff --git a/frontend/src/assets/MenuIcon/dh_xm1.png b/frontend/src/assets/MenuIcon/dh_xm1.png new file mode 100644 index 0000000..aead610 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_xm1.png differ diff --git a/frontend/src/assets/MenuIcon/dh_xx.png b/frontend/src/assets/MenuIcon/dh_xx.png new file mode 100644 index 0000000..1fb6180 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_xx.png differ diff --git a/frontend/src/assets/MenuIcon/dh_xx1.png b/frontend/src/assets/MenuIcon/dh_xx1.png new file mode 100644 index 0000000..535abe1 Binary files /dev/null and b/frontend/src/assets/MenuIcon/dh_xx1.png differ diff --git a/frontend/src/assets/MenuIcon/fz.png b/frontend/src/assets/MenuIcon/fz.png new file mode 100644 index 0000000..d052935 Binary files /dev/null and b/frontend/src/assets/MenuIcon/fz.png differ diff --git a/frontend/src/assets/MenuIcon/gb.png b/frontend/src/assets/MenuIcon/gb.png new file mode 100644 index 0000000..b276de2 Binary files /dev/null and b/frontend/src/assets/MenuIcon/gb.png differ diff --git a/frontend/src/assets/MenuIcon/grzx_tx.png b/frontend/src/assets/MenuIcon/grzx_tx.png new file mode 100644 index 0000000..0f21833 Binary files /dev/null and b/frontend/src/assets/MenuIcon/grzx_tx.png differ diff --git a/frontend/src/assets/MenuIcon/grzx_xg.png b/frontend/src/assets/MenuIcon/grzx_xg.png new file mode 100644 index 0000000..d6c8977 Binary files /dev/null and b/frontend/src/assets/MenuIcon/grzx_xg.png differ diff --git a/frontend/src/assets/MenuIcon/jscz_rl.png b/frontend/src/assets/MenuIcon/jscz_rl.png new file mode 100644 index 0000000..22a323d Binary files /dev/null and b/frontend/src/assets/MenuIcon/jscz_rl.png differ diff --git a/frontend/src/assets/MenuIcon/jscz_sc.png b/frontend/src/assets/MenuIcon/jscz_sc.png new file mode 100644 index 0000000..674cf09 Binary files /dev/null and b/frontend/src/assets/MenuIcon/jscz_sc.png differ diff --git a/frontend/src/assets/MenuIcon/jscz_sc1.png b/frontend/src/assets/MenuIcon/jscz_sc1.png new file mode 100644 index 0000000..cf2e0ca Binary files /dev/null and b/frontend/src/assets/MenuIcon/jscz_sc1.png differ diff --git a/frontend/src/assets/MenuIcon/jscz_scdc.png b/frontend/src/assets/MenuIcon/jscz_scdc.png new file mode 100644 index 0000000..f47a236 Binary files /dev/null and b/frontend/src/assets/MenuIcon/jscz_scdc.png differ diff --git a/frontend/src/assets/MenuIcon/jscz_xz.png b/frontend/src/assets/MenuIcon/jscz_xz.png new file mode 100644 index 0000000..8b2a892 Binary files /dev/null and b/frontend/src/assets/MenuIcon/jscz_xz.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_an.png b/frontend/src/assets/MenuIcon/lbcz_an.png new file mode 100644 index 0000000..3177faf Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_an.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_an1.png b/frontend/src/assets/MenuIcon/lbcz_an1.png new file mode 100644 index 0000000..81e544c Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_an1.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_cd.png b/frontend/src/assets/MenuIcon/lbcz_cd.png new file mode 100644 index 0000000..25b8ecc Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_cd.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_cd1.png b/frontend/src/assets/MenuIcon/lbcz_cd1.png new file mode 100644 index 0000000..19aaa85 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_cd1.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_czmm.png b/frontend/src/assets/MenuIcon/lbcz_czmm.png new file mode 100644 index 0000000..8f5b131 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_czmm.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_jt.png b/frontend/src/assets/MenuIcon/lbcz_jt.png new file mode 100644 index 0000000..68620fb Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_jt.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_jt1.png b/frontend/src/assets/MenuIcon/lbcz_jt1.png new file mode 100644 index 0000000..b36fe61 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_jt1.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_qx.png b/frontend/src/assets/MenuIcon/lbcz_qx.png new file mode 100644 index 0000000..dd4d05e Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_qx.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_sc.png b/frontend/src/assets/MenuIcon/lbcz_sc.png new file mode 100644 index 0000000..2ca9d72 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_sc.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_sc1.png b/frontend/src/assets/MenuIcon/lbcz_sc1.png new file mode 100644 index 0000000..c831998 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_sc1.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_sc2.png b/frontend/src/assets/MenuIcon/lbcz_sc2.png new file mode 100644 index 0000000..95ebdb6 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_sc2.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_td.png b/frontend/src/assets/MenuIcon/lbcz_td.png new file mode 100644 index 0000000..54ebc81 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_td.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_td1.png b/frontend/src/assets/MenuIcon/lbcz_td1.png new file mode 100644 index 0000000..3e5b329 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_td1.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_td2.png b/frontend/src/assets/MenuIcon/lbcz_td2.png new file mode 100644 index 0000000..6d0a88c Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_td2.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_xg.png b/frontend/src/assets/MenuIcon/lbcz_xg.png new file mode 100644 index 0000000..0533913 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_xg.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_xg1.png b/frontend/src/assets/MenuIcon/lbcz_xg1.png new file mode 100644 index 0000000..0548fbc Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_xg1.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_xg2.png b/frontend/src/assets/MenuIcon/lbcz_xg2.png new file mode 100644 index 0000000..ed5a146 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_xg2.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_zml.png b/frontend/src/assets/MenuIcon/lbcz_zml.png new file mode 100644 index 0000000..b352868 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_zml.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_zml1.png b/frontend/src/assets/MenuIcon/lbcz_zml1.png new file mode 100644 index 0000000..618b429 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_zml1.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_zyw.png b/frontend/src/assets/MenuIcon/lbcz_zyw.png new file mode 100644 index 0000000..76e14d1 Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_zyw.png differ diff --git a/frontend/src/assets/MenuIcon/lbcz_zz.png b/frontend/src/assets/MenuIcon/lbcz_zz.png new file mode 100644 index 0000000..36eb52a Binary files /dev/null and b/frontend/src/assets/MenuIcon/lbcz_zz.png differ diff --git a/frontend/src/assets/MenuIcon/pj.png b/frontend/src/assets/MenuIcon/pj.png new file mode 100644 index 0000000..b2f6195 Binary files /dev/null and b/frontend/src/assets/MenuIcon/pj.png differ diff --git a/frontend/src/assets/MenuIcon/shangchuan.png b/frontend/src/assets/MenuIcon/shangchuan.png new file mode 100644 index 0000000..04be7e6 Binary files /dev/null and b/frontend/src/assets/MenuIcon/shangchuan.png differ diff --git a/frontend/src/assets/MenuIcon/top_qp.png b/frontend/src/assets/MenuIcon/top_qp.png new file mode 100644 index 0000000..14ce318 Binary files /dev/null and b/frontend/src/assets/MenuIcon/top_qp.png differ diff --git a/frontend/src/assets/MenuIcon/top_qp1.png b/frontend/src/assets/MenuIcon/top_qp1.png new file mode 100644 index 0000000..dda0cc9 Binary files /dev/null and b/frontend/src/assets/MenuIcon/top_qp1.png differ diff --git a/frontend/src/assets/MenuIcon/top_ss.png b/frontend/src/assets/MenuIcon/top_ss.png new file mode 100644 index 0000000..f053c8b Binary files /dev/null and b/frontend/src/assets/MenuIcon/top_ss.png differ diff --git a/frontend/src/assets/MenuIcon/top_tx.png b/frontend/src/assets/MenuIcon/top_tx.png new file mode 100644 index 0000000..dc301d3 Binary files /dev/null and b/frontend/src/assets/MenuIcon/top_tx.png differ diff --git a/frontend/src/assets/MenuIcon/top_zh.png b/frontend/src/assets/MenuIcon/top_zh.png new file mode 100644 index 0000000..79f945d Binary files /dev/null and b/frontend/src/assets/MenuIcon/top_zh.png differ diff --git a/frontend/src/assets/MenuIcon/ts.png b/frontend/src/assets/MenuIcon/ts.png new file mode 100644 index 0000000..f5787ca Binary files /dev/null and b/frontend/src/assets/MenuIcon/ts.png differ diff --git a/frontend/src/assets/MenuIcon/u117_mouseOver.png b/frontend/src/assets/MenuIcon/u117_mouseOver.png new file mode 100644 index 0000000..1d65625 Binary files /dev/null and b/frontend/src/assets/MenuIcon/u117_mouseOver.png differ diff --git a/frontend/src/assets/MenuIcon/u119.png b/frontend/src/assets/MenuIcon/u119.png new file mode 100644 index 0000000..1520447 Binary files /dev/null and b/frontend/src/assets/MenuIcon/u119.png differ diff --git a/frontend/src/assets/MenuIcon/u241.png b/frontend/src/assets/MenuIcon/u241.png new file mode 100644 index 0000000..250a19f Binary files /dev/null and b/frontend/src/assets/MenuIcon/u241.png differ diff --git a/frontend/src/assets/MenuIcon/u343.png b/frontend/src/assets/MenuIcon/u343.png new file mode 100644 index 0000000..36eb52a Binary files /dev/null and b/frontend/src/assets/MenuIcon/u343.png differ diff --git a/frontend/src/assets/MenuIcon/u697.png b/frontend/src/assets/MenuIcon/u697.png new file mode 100644 index 0000000..e0b432b Binary files /dev/null and b/frontend/src/assets/MenuIcon/u697.png differ diff --git a/frontend/src/assets/MenuIcon/u81.png b/frontend/src/assets/MenuIcon/u81.png new file mode 100644 index 0000000..5fc1f6f Binary files /dev/null and b/frontend/src/assets/MenuIcon/u81.png differ diff --git a/frontend/src/assets/MenuIcon/xqing.png b/frontend/src/assets/MenuIcon/xqing.png new file mode 100644 index 0000000..d54255b Binary files /dev/null and b/frontend/src/assets/MenuIcon/xqing.png differ diff --git a/frontend/src/assets/algorithmimg/121.png b/frontend/src/assets/algorithmimg/121.png new file mode 100644 index 0000000..49b0c24 Binary files /dev/null and b/frontend/src/assets/algorithmimg/121.png differ diff --git a/frontend/src/assets/algorithmimg/122.png b/frontend/src/assets/algorithmimg/122.png new file mode 100644 index 0000000..ab2579d Binary files /dev/null and b/frontend/src/assets/algorithmimg/122.png differ diff --git a/frontend/src/assets/algorithmimg/u1206.png b/frontend/src/assets/algorithmimg/u1206.png new file mode 100644 index 0000000..ef66eed Binary files /dev/null and b/frontend/src/assets/algorithmimg/u1206.png differ diff --git a/frontend/src/assets/algorithmimg/u1236.png b/frontend/src/assets/algorithmimg/u1236.png new file mode 100644 index 0000000..f3f85b1 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u1236.png differ diff --git a/frontend/src/assets/algorithmimg/u12361.png b/frontend/src/assets/algorithmimg/u12361.png new file mode 100644 index 0000000..c7c522f Binary files /dev/null and b/frontend/src/assets/algorithmimg/u12361.png differ diff --git a/frontend/src/assets/algorithmimg/u148.png b/frontend/src/assets/algorithmimg/u148.png new file mode 100644 index 0000000..957d8ec Binary files /dev/null and b/frontend/src/assets/algorithmimg/u148.png differ diff --git a/frontend/src/assets/algorithmimg/u211.png b/frontend/src/assets/algorithmimg/u211.png new file mode 100644 index 0000000..bd9cd31 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u211.png differ diff --git a/frontend/src/assets/algorithmimg/u216.png b/frontend/src/assets/algorithmimg/u216.png new file mode 100644 index 0000000..0bf6a76 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u216.png differ diff --git a/frontend/src/assets/algorithmimg/u224.png b/frontend/src/assets/algorithmimg/u224.png new file mode 100644 index 0000000..eae9bca Binary files /dev/null and b/frontend/src/assets/algorithmimg/u224.png differ diff --git a/frontend/src/assets/algorithmimg/u227.png b/frontend/src/assets/algorithmimg/u227.png new file mode 100644 index 0000000..541f625 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u227.png differ diff --git a/frontend/src/assets/algorithmimg/u250.png b/frontend/src/assets/algorithmimg/u250.png new file mode 100644 index 0000000..bd3c96e Binary files /dev/null and b/frontend/src/assets/algorithmimg/u250.png differ diff --git a/frontend/src/assets/algorithmimg/u250_disabled.png b/frontend/src/assets/algorithmimg/u250_disabled.png new file mode 100644 index 0000000..82afc2d Binary files /dev/null and b/frontend/src/assets/algorithmimg/u250_disabled.png differ diff --git a/frontend/src/assets/algorithmimg/u252.png b/frontend/src/assets/algorithmimg/u252.png new file mode 100644 index 0000000..6fa8779 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u252.png differ diff --git a/frontend/src/assets/algorithmimg/u252_disabled.png b/frontend/src/assets/algorithmimg/u252_disabled.png new file mode 100644 index 0000000..9ba3c19 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u252_disabled.png differ diff --git a/frontend/src/assets/algorithmimg/u254.png b/frontend/src/assets/algorithmimg/u254.png new file mode 100644 index 0000000..daaca12 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u254.png differ diff --git a/frontend/src/assets/algorithmimg/u254_disabled.png b/frontend/src/assets/algorithmimg/u254_disabled.png new file mode 100644 index 0000000..f8ea589 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u254_disabled.png differ diff --git a/frontend/src/assets/algorithmimg/u257.png b/frontend/src/assets/algorithmimg/u257.png new file mode 100644 index 0000000..745dc9d Binary files /dev/null and b/frontend/src/assets/algorithmimg/u257.png differ diff --git a/frontend/src/assets/algorithmimg/u258.png b/frontend/src/assets/algorithmimg/u258.png new file mode 100644 index 0000000..9371c71 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u258.png differ diff --git a/frontend/src/assets/algorithmimg/u258_disabled.png b/frontend/src/assets/algorithmimg/u258_disabled.png new file mode 100644 index 0000000..770b8db Binary files /dev/null and b/frontend/src/assets/algorithmimg/u258_disabled.png differ diff --git a/frontend/src/assets/algorithmimg/u259.png b/frontend/src/assets/algorithmimg/u259.png new file mode 100644 index 0000000..f16617c Binary files /dev/null and b/frontend/src/assets/algorithmimg/u259.png differ diff --git a/frontend/src/assets/algorithmimg/u261.png b/frontend/src/assets/algorithmimg/u261.png new file mode 100644 index 0000000..f755974 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u261.png differ diff --git a/frontend/src/assets/algorithmimg/u262.png b/frontend/src/assets/algorithmimg/u262.png new file mode 100644 index 0000000..4a4efa1 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u262.png differ diff --git a/frontend/src/assets/algorithmimg/u262_disabled.png b/frontend/src/assets/algorithmimg/u262_disabled.png new file mode 100644 index 0000000..eacfdc6 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u262_disabled.png differ diff --git a/frontend/src/assets/algorithmimg/u264_mouseOver.png b/frontend/src/assets/algorithmimg/u264_mouseOver.png new file mode 100644 index 0000000..980cff9 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u264_mouseOver.png differ diff --git a/frontend/src/assets/algorithmimg/u264_selected.png b/frontend/src/assets/algorithmimg/u264_selected.png new file mode 100644 index 0000000..ebe1d7f Binary files /dev/null and b/frontend/src/assets/algorithmimg/u264_selected.png differ diff --git a/frontend/src/assets/algorithmimg/u265.png b/frontend/src/assets/algorithmimg/u265.png new file mode 100644 index 0000000..dd12c89 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u265.png differ diff --git a/frontend/src/assets/algorithmimg/u269.png b/frontend/src/assets/algorithmimg/u269.png new file mode 100644 index 0000000..93ae34c Binary files /dev/null and b/frontend/src/assets/algorithmimg/u269.png differ diff --git a/frontend/src/assets/algorithmimg/u273.png b/frontend/src/assets/algorithmimg/u273.png new file mode 100644 index 0000000..7a91459 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u273.png differ diff --git a/frontend/src/assets/algorithmimg/u285_disabled.png b/frontend/src/assets/algorithmimg/u285_disabled.png new file mode 100644 index 0000000..d8bbf63 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u285_disabled.png differ diff --git a/frontend/src/assets/algorithmimg/u289.png b/frontend/src/assets/algorithmimg/u289.png new file mode 100644 index 0000000..85c66ac Binary files /dev/null and b/frontend/src/assets/algorithmimg/u289.png differ diff --git a/frontend/src/assets/algorithmimg/u289_disabled.png b/frontend/src/assets/algorithmimg/u289_disabled.png new file mode 100644 index 0000000..db9bf62 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u289_disabled.png differ diff --git a/frontend/src/assets/algorithmimg/u293_mouseOver.png b/frontend/src/assets/algorithmimg/u293_mouseOver.png new file mode 100644 index 0000000..980cff9 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u293_mouseOver.png differ diff --git a/frontend/src/assets/algorithmimg/u315.png b/frontend/src/assets/algorithmimg/u315.png new file mode 100644 index 0000000..f03cb36 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u315.png differ diff --git a/frontend/src/assets/algorithmimg/u579.png b/frontend/src/assets/algorithmimg/u579.png new file mode 100644 index 0000000..fd727ae Binary files /dev/null and b/frontend/src/assets/algorithmimg/u579.png differ diff --git a/frontend/src/assets/algorithmimg/u629.png b/frontend/src/assets/algorithmimg/u629.png new file mode 100644 index 0000000..a88b175 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u629.png differ diff --git a/frontend/src/assets/algorithmimg/u719.png b/frontend/src/assets/algorithmimg/u719.png new file mode 100644 index 0000000..31a1c4f Binary files /dev/null and b/frontend/src/assets/algorithmimg/u719.png differ diff --git a/frontend/src/assets/algorithmimg/u736.png b/frontend/src/assets/algorithmimg/u736.png new file mode 100644 index 0000000..174c7d6 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u736.png differ diff --git a/frontend/src/assets/algorithmimg/u738.png b/frontend/src/assets/algorithmimg/u738.png new file mode 100644 index 0000000..12724c0 Binary files /dev/null and b/frontend/src/assets/algorithmimg/u738.png differ diff --git a/frontend/src/assets/bzimages/bz1-1.png b/frontend/src/assets/bzimages/bz1-1.png new file mode 100644 index 0000000..f91e2c4 Binary files /dev/null and b/frontend/src/assets/bzimages/bz1-1.png differ diff --git a/frontend/src/assets/bzimages/bz1-2.png b/frontend/src/assets/bzimages/bz1-2.png new file mode 100644 index 0000000..e513d05 Binary files /dev/null and b/frontend/src/assets/bzimages/bz1-2.png differ diff --git a/frontend/src/assets/bzimages/bz1.png b/frontend/src/assets/bzimages/bz1.png new file mode 100644 index 0000000..adac6d0 Binary files /dev/null and b/frontend/src/assets/bzimages/bz1.png differ diff --git a/frontend/src/assets/bzimages/bz2-1.png b/frontend/src/assets/bzimages/bz2-1.png new file mode 100644 index 0000000..b2fc250 Binary files /dev/null and b/frontend/src/assets/bzimages/bz2-1.png differ diff --git a/frontend/src/assets/bzimages/bz2-2.png b/frontend/src/assets/bzimages/bz2-2.png new file mode 100644 index 0000000..f06a5a8 Binary files /dev/null and b/frontend/src/assets/bzimages/bz2-2.png differ diff --git a/frontend/src/assets/bzimages/bz2.png b/frontend/src/assets/bzimages/bz2.png new file mode 100644 index 0000000..02cda40 Binary files /dev/null and b/frontend/src/assets/bzimages/bz2.png differ diff --git a/frontend/src/assets/bzimages/bz3-1.png b/frontend/src/assets/bzimages/bz3-1.png new file mode 100644 index 0000000..d7cb96b Binary files /dev/null and b/frontend/src/assets/bzimages/bz3-1.png differ diff --git a/frontend/src/assets/bzimages/bz3-2.png b/frontend/src/assets/bzimages/bz3-2.png new file mode 100644 index 0000000..56b01c4 Binary files /dev/null and b/frontend/src/assets/bzimages/bz3-2.png differ diff --git a/frontend/src/assets/bzimages/bz3.png b/frontend/src/assets/bzimages/bz3.png new file mode 100644 index 0000000..30ce1dc Binary files /dev/null and b/frontend/src/assets/bzimages/bz3.png differ diff --git a/frontend/src/assets/bzimages/bz4-1.png b/frontend/src/assets/bzimages/bz4-1.png new file mode 100644 index 0000000..219bbd7 Binary files /dev/null and b/frontend/src/assets/bzimages/bz4-1.png differ diff --git a/frontend/src/assets/bzimages/bz4-2.png b/frontend/src/assets/bzimages/bz4-2.png new file mode 100644 index 0000000..98ee0cb Binary files /dev/null and b/frontend/src/assets/bzimages/bz4-2.png differ diff --git a/frontend/src/assets/bzimages/bz4.png b/frontend/src/assets/bzimages/bz4.png new file mode 100644 index 0000000..d2a9be1 Binary files /dev/null and b/frontend/src/assets/bzimages/bz4.png differ diff --git a/frontend/src/assets/bzimages/bz5-1.png b/frontend/src/assets/bzimages/bz5-1.png new file mode 100644 index 0000000..32e0ebc Binary files /dev/null and b/frontend/src/assets/bzimages/bz5-1.png differ diff --git a/frontend/src/assets/bzimages/bz5-2.png b/frontend/src/assets/bzimages/bz5-2.png new file mode 100644 index 0000000..73ae5c8 Binary files /dev/null and b/frontend/src/assets/bzimages/bz5-2.png differ diff --git a/frontend/src/assets/bzimages/bz5.png b/frontend/src/assets/bzimages/bz5.png new file mode 100644 index 0000000..f5ea288 Binary files /dev/null and b/frontend/src/assets/bzimages/bz5.png differ diff --git a/frontend/src/assets/bzimages/bz6-1.png b/frontend/src/assets/bzimages/bz6-1.png new file mode 100644 index 0000000..1a49cf9 Binary files /dev/null and b/frontend/src/assets/bzimages/bz6-1.png differ diff --git a/frontend/src/assets/bzimages/bz6-2.png b/frontend/src/assets/bzimages/bz6-2.png new file mode 100644 index 0000000..a34062e Binary files /dev/null and b/frontend/src/assets/bzimages/bz6-2.png differ diff --git a/frontend/src/assets/bzimages/bz6.png b/frontend/src/assets/bzimages/bz6.png new file mode 100644 index 0000000..80ada35 Binary files /dev/null and b/frontend/src/assets/bzimages/bz6.png differ diff --git a/frontend/src/assets/bzimages/bz7-1.png b/frontend/src/assets/bzimages/bz7-1.png new file mode 100644 index 0000000..336f2c6 Binary files /dev/null and b/frontend/src/assets/bzimages/bz7-1.png differ diff --git a/frontend/src/assets/bzimages/bz7-2.png b/frontend/src/assets/bzimages/bz7-2.png new file mode 100644 index 0000000..fbac702 Binary files /dev/null and b/frontend/src/assets/bzimages/bz7-2.png differ diff --git a/frontend/src/assets/bzimages/bz7.png b/frontend/src/assets/bzimages/bz7.png new file mode 100644 index 0000000..c95661c Binary files /dev/null and b/frontend/src/assets/bzimages/bz7.png differ diff --git a/frontend/src/assets/bzimages/bz8-1.png b/frontend/src/assets/bzimages/bz8-1.png new file mode 100644 index 0000000..b45e6e5 Binary files /dev/null and b/frontend/src/assets/bzimages/bz8-1.png differ diff --git a/frontend/src/assets/bzimages/bz8-2.png b/frontend/src/assets/bzimages/bz8-2.png new file mode 100644 index 0000000..c7277af Binary files /dev/null and b/frontend/src/assets/bzimages/bz8-2.png differ diff --git a/frontend/src/assets/bzimages/bz8.png b/frontend/src/assets/bzimages/bz8.png new file mode 100644 index 0000000..b16c0f8 Binary files /dev/null and b/frontend/src/assets/bzimages/bz8.png differ diff --git a/frontend/src/assets/bzimages/del.png b/frontend/src/assets/bzimages/del.png new file mode 100644 index 0000000..798e495 Binary files /dev/null and b/frontend/src/assets/bzimages/del.png differ diff --git a/frontend/src/assets/bzimages/delhover.png b/frontend/src/assets/bzimages/delhover.png new file mode 100644 index 0000000..4b6f7a1 Binary files /dev/null and b/frontend/src/assets/bzimages/delhover.png differ diff --git a/frontend/src/assets/bzimages/dimensionreturn.png b/frontend/src/assets/bzimages/dimensionreturn.png new file mode 100644 index 0000000..fd727ae Binary files /dev/null and b/frontend/src/assets/bzimages/dimensionreturn.png differ diff --git a/frontend/src/assets/bzimages/hidden.png b/frontend/src/assets/bzimages/hidden.png new file mode 100644 index 0000000..f60a59a Binary files /dev/null and b/frontend/src/assets/bzimages/hidden.png differ diff --git a/frontend/src/assets/bzimages/hiddenselect.png b/frontend/src/assets/bzimages/hiddenselect.png new file mode 100644 index 0000000..9f1114d Binary files /dev/null and b/frontend/src/assets/bzimages/hiddenselect.png differ diff --git a/frontend/src/assets/bzimages/kjj.png b/frontend/src/assets/bzimages/kjj.png new file mode 100644 index 0000000..7dd25f9 Binary files /dev/null and b/frontend/src/assets/bzimages/kjj.png differ diff --git a/frontend/src/assets/bzimages/kjj2.png b/frontend/src/assets/bzimages/kjj2.png new file mode 100644 index 0000000..1694ef4 Binary files /dev/null and b/frontend/src/assets/bzimages/kjj2.png differ diff --git a/frontend/src/assets/bzimages/kjjhover.png b/frontend/src/assets/bzimages/kjjhover.png new file mode 100644 index 0000000..db02e13 Binary files /dev/null and b/frontend/src/assets/bzimages/kjjhover.png differ diff --git a/frontend/src/assets/bzimages/select-check.png b/frontend/src/assets/bzimages/select-check.png new file mode 100644 index 0000000..3f7cb3e Binary files /dev/null and b/frontend/src/assets/bzimages/select-check.png differ diff --git a/frontend/src/assets/bzimages/select.png b/frontend/src/assets/bzimages/select.png new file mode 100644 index 0000000..b7fe397 Binary files /dev/null and b/frontend/src/assets/bzimages/select.png differ diff --git a/frontend/src/assets/bzimages/show.png b/frontend/src/assets/bzimages/show.png new file mode 100644 index 0000000..c2dad4e Binary files /dev/null and b/frontend/src/assets/bzimages/show.png differ diff --git a/frontend/src/assets/bzimages/showselect.png b/frontend/src/assets/bzimages/showselect.png new file mode 100644 index 0000000..1dfceb8 Binary files /dev/null and b/frontend/src/assets/bzimages/showselect.png differ diff --git a/frontend/src/assets/ceshi.png b/frontend/src/assets/ceshi.png new file mode 100644 index 0000000..7bab8ea Binary files /dev/null and b/frontend/src/assets/ceshi.png differ diff --git a/frontend/src/assets/homepage/home1.png b/frontend/src/assets/homepage/home1.png new file mode 100644 index 0000000..be33572 Binary files /dev/null and b/frontend/src/assets/homepage/home1.png differ diff --git a/frontend/src/assets/homepage/home2.png b/frontend/src/assets/homepage/home2.png new file mode 100644 index 0000000..19d9b7a Binary files /dev/null and b/frontend/src/assets/homepage/home2.png differ diff --git a/frontend/src/assets/homepage/home3.png b/frontend/src/assets/homepage/home3.png new file mode 100644 index 0000000..39208ca Binary files /dev/null and b/frontend/src/assets/homepage/home3.png differ diff --git a/frontend/src/assets/homepage/home4.png b/frontend/src/assets/homepage/home4.png new file mode 100644 index 0000000..f6da4c9 Binary files /dev/null and b/frontend/src/assets/homepage/home4.png differ diff --git a/frontend/src/assets/homepage/home5.png b/frontend/src/assets/homepage/home5.png new file mode 100644 index 0000000..7350547 Binary files /dev/null and b/frontend/src/assets/homepage/home5.png differ diff --git a/frontend/src/assets/homepage/home6.png b/frontend/src/assets/homepage/home6.png new file mode 100644 index 0000000..2737981 Binary files /dev/null and b/frontend/src/assets/homepage/home6.png differ diff --git a/frontend/src/assets/homepage/peeling1.png b/frontend/src/assets/homepage/peeling1.png new file mode 100644 index 0000000..0a2c08c Binary files /dev/null and b/frontend/src/assets/homepage/peeling1.png differ diff --git a/frontend/src/assets/homepage/peeling2.png b/frontend/src/assets/homepage/peeling2.png new file mode 100644 index 0000000..e4b73f2 Binary files /dev/null and b/frontend/src/assets/homepage/peeling2.png differ diff --git a/frontend/src/assets/icons/advert.svg b/frontend/src/assets/icons/advert.svg new file mode 100644 index 0000000..5adcf43 --- /dev/null +++ b/frontend/src/assets/icons/advert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/brand.svg b/frontend/src/assets/icons/brand.svg new file mode 100644 index 0000000..e4b7cee --- /dev/null +++ b/frontend/src/assets/icons/brand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/bug.svg b/frontend/src/assets/icons/bug.svg new file mode 100644 index 0000000..05a150d --- /dev/null +++ b/frontend/src/assets/icons/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/cascader.svg b/frontend/src/assets/icons/cascader.svg new file mode 100644 index 0000000..e256024 --- /dev/null +++ b/frontend/src/assets/icons/cascader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/chart.svg b/frontend/src/assets/icons/chart.svg new file mode 100644 index 0000000..27728fb --- /dev/null +++ b/frontend/src/assets/icons/chart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/client.svg b/frontend/src/assets/icons/client.svg new file mode 100644 index 0000000..ad4bc15 --- /dev/null +++ b/frontend/src/assets/icons/client.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/close.svg b/frontend/src/assets/icons/close.svg new file mode 100644 index 0000000..5b5057f --- /dev/null +++ b/frontend/src/assets/icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/close_all.svg b/frontend/src/assets/icons/close_all.svg new file mode 100644 index 0000000..aa13cd7 --- /dev/null +++ b/frontend/src/assets/icons/close_all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/close_left.svg b/frontend/src/assets/icons/close_left.svg new file mode 100644 index 0000000..e5708ea --- /dev/null +++ b/frontend/src/assets/icons/close_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/close_other.svg b/frontend/src/assets/icons/close_other.svg new file mode 100644 index 0000000..212e6c2 --- /dev/null +++ b/frontend/src/assets/icons/close_other.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/assets/icons/close_right.svg b/frontend/src/assets/icons/close_right.svg new file mode 100644 index 0000000..14d3cf3 --- /dev/null +++ b/frontend/src/assets/icons/close_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/coupon.svg b/frontend/src/assets/icons/coupon.svg new file mode 100644 index 0000000..2f952b2 --- /dev/null +++ b/frontend/src/assets/icons/coupon.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/assets/icons/dashboard.svg b/frontend/src/assets/icons/dashboard.svg new file mode 100644 index 0000000..5317d37 --- /dev/null +++ b/frontend/src/assets/icons/dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/dict.svg b/frontend/src/assets/icons/dict.svg new file mode 100644 index 0000000..22a8278 --- /dev/null +++ b/frontend/src/assets/icons/dict.svg @@ -0,0 +1,18 @@ + + + + + + + diff --git a/frontend/src/assets/icons/dict_item.svg b/frontend/src/assets/icons/dict_item.svg new file mode 100644 index 0000000..903109a --- /dev/null +++ b/frontend/src/assets/icons/dict_item.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/frontend/src/assets/icons/download.svg b/frontend/src/assets/icons/download.svg new file mode 100644 index 0000000..c896951 --- /dev/null +++ b/frontend/src/assets/icons/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/drag.svg b/frontend/src/assets/icons/drag.svg new file mode 100644 index 0000000..4185d3c --- /dev/null +++ b/frontend/src/assets/icons/drag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/edit.svg b/frontend/src/assets/icons/edit.svg new file mode 100644 index 0000000..d26101f --- /dev/null +++ b/frontend/src/assets/icons/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/exit-fullscreen.svg b/frontend/src/assets/icons/exit-fullscreen.svg new file mode 100644 index 0000000..485c128 --- /dev/null +++ b/frontend/src/assets/icons/exit-fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/eye-open.svg b/frontend/src/assets/icons/eye-open.svg new file mode 100644 index 0000000..88dcc98 --- /dev/null +++ b/frontend/src/assets/icons/eye-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/eye.svg b/frontend/src/assets/icons/eye.svg new file mode 100644 index 0000000..16ed2d8 --- /dev/null +++ b/frontend/src/assets/icons/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/fullscreen.svg b/frontend/src/assets/icons/fullscreen.svg new file mode 100644 index 0000000..0e86b6f --- /dev/null +++ b/frontend/src/assets/icons/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/github.svg b/frontend/src/assets/icons/github.svg new file mode 100644 index 0000000..db0a0d4 --- /dev/null +++ b/frontend/src/assets/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/goods-list.svg b/frontend/src/assets/icons/goods-list.svg new file mode 100644 index 0000000..fcb971e --- /dev/null +++ b/frontend/src/assets/icons/goods-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/goods.svg b/frontend/src/assets/icons/goods.svg new file mode 100644 index 0000000..60c1c73 --- /dev/null +++ b/frontend/src/assets/icons/goods.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/guide.svg b/frontend/src/assets/icons/guide.svg new file mode 100644 index 0000000..b271001 --- /dev/null +++ b/frontend/src/assets/icons/guide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/homepage.svg b/frontend/src/assets/icons/homepage.svg new file mode 100644 index 0000000..48f4e24 --- /dev/null +++ b/frontend/src/assets/icons/homepage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/lab.svg b/frontend/src/assets/icons/lab.svg new file mode 100644 index 0000000..d4d60aa --- /dev/null +++ b/frontend/src/assets/icons/lab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/language.svg b/frontend/src/assets/icons/language.svg new file mode 100644 index 0000000..0082b57 --- /dev/null +++ b/frontend/src/assets/icons/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/link.svg b/frontend/src/assets/icons/link.svg new file mode 100644 index 0000000..d3f9e5a --- /dev/null +++ b/frontend/src/assets/icons/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/locationIcon.png b/frontend/src/assets/icons/locationIcon.png new file mode 100644 index 0000000..fc01013 Binary files /dev/null and b/frontend/src/assets/icons/locationIcon.png differ diff --git a/frontend/src/assets/icons/menu.svg b/frontend/src/assets/icons/menu.svg new file mode 100644 index 0000000..92c364c --- /dev/null +++ b/frontend/src/assets/icons/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/message.svg b/frontend/src/assets/icons/message.svg new file mode 100644 index 0000000..ea1ddef --- /dev/null +++ b/frontend/src/assets/icons/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/money.svg b/frontend/src/assets/icons/money.svg new file mode 100644 index 0000000..60f7acf --- /dev/null +++ b/frontend/src/assets/icons/money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/monitor.svg b/frontend/src/assets/icons/monitor.svg new file mode 100644 index 0000000..bc308cb --- /dev/null +++ b/frontend/src/assets/icons/monitor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/nested.svg b/frontend/src/assets/icons/nested.svg new file mode 100644 index 0000000..06713a8 --- /dev/null +++ b/frontend/src/assets/icons/nested.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/number.svg b/frontend/src/assets/icons/number.svg new file mode 100644 index 0000000..ad5ce9a --- /dev/null +++ b/frontend/src/assets/icons/number.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/order.svg b/frontend/src/assets/icons/order.svg new file mode 100644 index 0000000..8f2107e --- /dev/null +++ b/frontend/src/assets/icons/order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/password.svg b/frontend/src/assets/icons/password.svg new file mode 100644 index 0000000..6c64def --- /dev/null +++ b/frontend/src/assets/icons/password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/peoples.svg b/frontend/src/assets/icons/peoples.svg new file mode 100644 index 0000000..383b82d --- /dev/null +++ b/frontend/src/assets/icons/peoples.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/perm.svg b/frontend/src/assets/icons/perm.svg new file mode 100644 index 0000000..b38d065 --- /dev/null +++ b/frontend/src/assets/icons/perm.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/assets/icons/publish.svg b/frontend/src/assets/icons/publish.svg new file mode 100644 index 0000000..e9b489c --- /dev/null +++ b/frontend/src/assets/icons/publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/qq.svg b/frontend/src/assets/icons/qq.svg new file mode 100644 index 0000000..98da395 --- /dev/null +++ b/frontend/src/assets/icons/qq.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/assets/icons/rabbitmq.svg b/frontend/src/assets/icons/rabbitmq.svg new file mode 100644 index 0000000..65aa198 --- /dev/null +++ b/frontend/src/assets/icons/rabbitmq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/rate.svg b/frontend/src/assets/icons/rate.svg new file mode 100644 index 0000000..aa3b14d --- /dev/null +++ b/frontend/src/assets/icons/rate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/redis.svg b/frontend/src/assets/icons/redis.svg new file mode 100644 index 0000000..2f1d62d --- /dev/null +++ b/frontend/src/assets/icons/redis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/refresh.svg b/frontend/src/assets/icons/refresh.svg new file mode 100644 index 0000000..1f549f1 --- /dev/null +++ b/frontend/src/assets/icons/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/role.svg b/frontend/src/assets/icons/role.svg new file mode 100644 index 0000000..c484b13 --- /dev/null +++ b/frontend/src/assets/icons/role.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/security.svg b/frontend/src/assets/icons/security.svg new file mode 100644 index 0000000..bcd9d2e --- /dev/null +++ b/frontend/src/assets/icons/security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/shopping.svg b/frontend/src/assets/icons/shopping.svg new file mode 100644 index 0000000..8d2b4bf --- /dev/null +++ b/frontend/src/assets/icons/shopping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/size.svg b/frontend/src/assets/icons/size.svg new file mode 100644 index 0000000..ddb25b8 --- /dev/null +++ b/frontend/src/assets/icons/size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/skill.svg b/frontend/src/assets/icons/skill.svg new file mode 100644 index 0000000..a3b7312 --- /dev/null +++ b/frontend/src/assets/icons/skill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/system.svg b/frontend/src/assets/icons/system.svg new file mode 100644 index 0000000..63feb20 --- /dev/null +++ b/frontend/src/assets/icons/system.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/theme.svg b/frontend/src/assets/icons/theme.svg new file mode 100644 index 0000000..5982a2f --- /dev/null +++ b/frontend/src/assets/icons/theme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/tree.svg b/frontend/src/assets/icons/tree.svg new file mode 100644 index 0000000..d40a414 --- /dev/null +++ b/frontend/src/assets/icons/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/user.svg b/frontend/src/assets/icons/user.svg new file mode 100644 index 0000000..e4c7b38 --- /dev/null +++ b/frontend/src/assets/icons/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/uv.svg b/frontend/src/assets/icons/uv.svg new file mode 100644 index 0000000..ca4c301 --- /dev/null +++ b/frontend/src/assets/icons/uv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/valid_code.svg b/frontend/src/assets/icons/valid_code.svg new file mode 100644 index 0000000..39bf478 --- /dev/null +++ b/frontend/src/assets/icons/valid_code.svg @@ -0,0 +1,9 @@ + + + + diff --git a/frontend/src/assets/icons/wechat.svg b/frontend/src/assets/icons/wechat.svg new file mode 100644 index 0000000..35de4bc --- /dev/null +++ b/frontend/src/assets/icons/wechat.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/assets/images/background-img-1.png b/frontend/src/assets/images/background-img-1.png new file mode 100644 index 0000000..e3b8923 Binary files /dev/null and b/frontend/src/assets/images/background-img-1.png differ diff --git a/frontend/src/assets/images/background-img.png b/frontend/src/assets/images/background-img.png new file mode 100644 index 0000000..279552e Binary files /dev/null and b/frontend/src/assets/images/background-img.png differ diff --git a/frontend/src/assets/images/linefeed.png b/frontend/src/assets/images/linefeed.png new file mode 100644 index 0000000..54ebc81 Binary files /dev/null and b/frontend/src/assets/images/linefeed.png differ diff --git a/frontend/src/assets/images/linefeed.png_mouseOver.png b/frontend/src/assets/images/linefeed.png_mouseOver.png new file mode 100644 index 0000000..3e5b329 Binary files /dev/null and b/frontend/src/assets/images/linefeed.png_mouseOver.png differ diff --git a/frontend/src/assets/images/logo.svg b/frontend/src/assets/images/logo.svg new file mode 100644 index 0000000..5497fd1 --- /dev/null +++ b/frontend/src/assets/images/logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/images/u2.jpg b/frontend/src/assets/images/u2.jpg new file mode 100644 index 0000000..9f09dfb Binary files /dev/null and b/frontend/src/assets/images/u2.jpg differ diff --git a/frontend/src/assets/images/u287.gif b/frontend/src/assets/images/u287.gif new file mode 100644 index 0000000..89bcf89 Binary files /dev/null and b/frontend/src/assets/images/u287.gif differ diff --git a/frontend/src/assets/images/u56.png b/frontend/src/assets/images/u56.png new file mode 100644 index 0000000..91efd18 Binary files /dev/null and b/frontend/src/assets/images/u56.png differ diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png new file mode 100644 index 0000000..f3d2503 Binary files /dev/null and b/frontend/src/assets/logo.png differ diff --git a/frontend/src/assets/menu/annotationtask.svg b/frontend/src/assets/menu/annotationtask.svg new file mode 100644 index 0000000..3641e15 --- /dev/null +++ b/frontend/src/assets/menu/annotationtask.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/menu/dataset.svg b/frontend/src/assets/menu/dataset.svg new file mode 100644 index 0000000..0127319 --- /dev/null +++ b/frontend/src/assets/menu/dataset.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/menu/define.svg b/frontend/src/assets/menu/define.svg new file mode 100644 index 0000000..7cdbe14 --- /dev/null +++ b/frontend/src/assets/menu/define.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/menu/modeltraining.svg b/frontend/src/assets/menu/modeltraining.svg new file mode 100644 index 0000000..6434b76 --- /dev/null +++ b/frontend/src/assets/menu/modeltraining.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/menu/system.svg b/frontend/src/assets/menu/system.svg new file mode 100644 index 0000000..d6ec96e --- /dev/null +++ b/frontend/src/assets/menu/system.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/Deduplication.svg b/frontend/src/assets/new/Deduplication.svg new file mode 100644 index 0000000..b451cfb --- /dev/null +++ b/frontend/src/assets/new/Deduplication.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/Submit for review.svg b/frontend/src/assets/new/Submit for review.svg new file mode 100644 index 0000000..ec3ae51 --- /dev/null +++ b/frontend/src/assets/new/Submit for review.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/Warehousing.svg b/frontend/src/assets/new/Warehousing.svg new file mode 100644 index 0000000..e756bd9 --- /dev/null +++ b/frontend/src/assets/new/Warehousing.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/allocation-1.svg b/frontend/src/assets/new/allocation-1.svg new file mode 100644 index 0000000..5626dee --- /dev/null +++ b/frontend/src/assets/new/allocation-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/allocation.svg b/frontend/src/assets/new/allocation.svg new file mode 100644 index 0000000..78ba3f3 --- /dev/null +++ b/frontend/src/assets/new/allocation.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/del.svg b/frontend/src/assets/new/del.svg new file mode 100644 index 0000000..355052d --- /dev/null +++ b/frontend/src/assets/new/del.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/del1.svg b/frontend/src/assets/new/del1.svg new file mode 100644 index 0000000..0a1b752 --- /dev/null +++ b/frontend/src/assets/new/del1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/del2.svg b/frontend/src/assets/new/del2.svg new file mode 100644 index 0000000..6635103 --- /dev/null +++ b/frontend/src/assets/new/del2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/dimension.svg b/frontend/src/assets/new/dimension.svg new file mode 100644 index 0000000..5f644c2 --- /dev/null +++ b/frontend/src/assets/new/dimension.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/dimension1.svg b/frontend/src/assets/new/dimension1.svg new file mode 100644 index 0000000..df01d03 --- /dev/null +++ b/frontend/src/assets/new/dimension1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/dimensionset.svg b/frontend/src/assets/new/dimensionset.svg new file mode 100644 index 0000000..2c9e3e8 --- /dev/null +++ b/frontend/src/assets/new/dimensionset.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/edit.svg b/frontend/src/assets/new/edit.svg new file mode 100644 index 0000000..5ab2ce7 --- /dev/null +++ b/frontend/src/assets/new/edit.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/examine.svg b/frontend/src/assets/new/examine.svg new file mode 100644 index 0000000..d05e44a --- /dev/null +++ b/frontend/src/assets/new/examine.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/examine1.svg b/frontend/src/assets/new/examine1.svg new file mode 100644 index 0000000..a6a6ee5 --- /dev/null +++ b/frontend/src/assets/new/examine1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/examine2.svg b/frontend/src/assets/new/examine2.svg new file mode 100644 index 0000000..f46205d --- /dev/null +++ b/frontend/src/assets/new/examine2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/img.svg b/frontend/src/assets/new/img.svg new file mode 100644 index 0000000..a55b06c --- /dev/null +++ b/frontend/src/assets/new/img.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/label.svg b/frontend/src/assets/new/label.svg new file mode 100644 index 0000000..ab2f15e --- /dev/null +++ b/frontend/src/assets/new/label.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/merge.svg b/frontend/src/assets/new/merge.svg new file mode 100644 index 0000000..59a0b87 --- /dev/null +++ b/frontend/src/assets/new/merge.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/role.svg b/frontend/src/assets/new/role.svg new file mode 100644 index 0000000..db28ffc --- /dev/null +++ b/frontend/src/assets/new/role.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/role1.svg b/frontend/src/assets/new/role1.svg new file mode 100644 index 0000000..ce3cfcc --- /dev/null +++ b/frontend/src/assets/new/role1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/sample.svg b/frontend/src/assets/new/sample.svg new file mode 100644 index 0000000..9042d30 --- /dev/null +++ b/frontend/src/assets/new/sample.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/save.svg b/frontend/src/assets/new/save.svg new file mode 100644 index 0000000..1195c76 --- /dev/null +++ b/frontend/src/assets/new/save.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/schedule.svg b/frontend/src/assets/new/schedule.svg new file mode 100644 index 0000000..76e9097 --- /dev/null +++ b/frontend/src/assets/new/schedule.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/team.svg b/frontend/src/assets/new/team.svg new file mode 100644 index 0000000..00ce81b --- /dev/null +++ b/frontend/src/assets/new/team.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/upload.svg b/frontend/src/assets/new/upload.svg new file mode 100644 index 0000000..84fa5ec --- /dev/null +++ b/frontend/src/assets/new/upload.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/uploadBtn.png b/frontend/src/assets/new/uploadBtn.png new file mode 100644 index 0000000..a5629b2 Binary files /dev/null and b/frontend/src/assets/new/uploadBtn.png differ diff --git a/frontend/src/assets/new/uploadBtn1.svg b/frontend/src/assets/new/uploadBtn1.svg new file mode 100644 index 0000000..9dcd9c3 --- /dev/null +++ b/frontend/src/assets/new/uploadBtn1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/uploadBtn2.svg b/frontend/src/assets/new/uploadBtn2.svg new file mode 100644 index 0000000..fa66b2d --- /dev/null +++ b/frontend/src/assets/new/uploadBtn2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/uploadBtn3.svg b/frontend/src/assets/new/uploadBtn3.svg new file mode 100644 index 0000000..97e81c8 --- /dev/null +++ b/frontend/src/assets/new/uploadBtn3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/new/view.svg b/frontend/src/assets/new/view.svg new file mode 100644 index 0000000..91fa804 --- /dev/null +++ b/frontend/src/assets/new/view.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/viewsample.svg b/frontend/src/assets/new/viewsample.svg new file mode 100644 index 0000000..d9a7daf --- /dev/null +++ b/frontend/src/assets/new/viewsample.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/new/zip.svg b/frontend/src/assets/new/zip.svg new file mode 100644 index 0000000..97e81c8 --- /dev/null +++ b/frontend/src/assets/new/zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/tableicon/annotation.png b/frontend/src/assets/tableicon/annotation.png new file mode 100644 index 0000000..7b0b93b Binary files /dev/null and b/frontend/src/assets/tableicon/annotation.png differ diff --git a/frontend/src/assets/tableicon/annotation_disabled.png b/frontend/src/assets/tableicon/annotation_disabled.png new file mode 100644 index 0000000..2651c0f Binary files /dev/null and b/frontend/src/assets/tableicon/annotation_disabled.png differ diff --git a/frontend/src/assets/tableicon/bj.png b/frontend/src/assets/tableicon/bj.png new file mode 100644 index 0000000..12724c0 Binary files /dev/null and b/frontend/src/assets/tableicon/bj.png differ diff --git a/frontend/src/assets/tableicon/del.png b/frontend/src/assets/tableicon/del.png new file mode 100644 index 0000000..174c7d6 Binary files /dev/null and b/frontend/src/assets/tableicon/del.png differ diff --git a/frontend/src/assets/tableicon/fz.png b/frontend/src/assets/tableicon/fz.png new file mode 100644 index 0000000..d052935 Binary files /dev/null and b/frontend/src/assets/tableicon/fz.png differ diff --git a/frontend/src/assets/tableicon/glsjj.png b/frontend/src/assets/tableicon/glsjj.png new file mode 100644 index 0000000..1d40f69 Binary files /dev/null and b/frontend/src/assets/tableicon/glsjj.png differ diff --git a/frontend/src/assets/tableicon/issue.png b/frontend/src/assets/tableicon/issue.png new file mode 100644 index 0000000..4baba72 Binary files /dev/null and b/frontend/src/assets/tableicon/issue.png differ diff --git a/frontend/src/assets/tableicon/issue_disabled.png b/frontend/src/assets/tableicon/issue_disabled.png new file mode 100644 index 0000000..ba0a416 Binary files /dev/null and b/frontend/src/assets/tableicon/issue_disabled.png differ diff --git a/frontend/src/assets/tableicon/ksxl.png b/frontend/src/assets/tableicon/ksxl.png new file mode 100644 index 0000000..e6ec4a9 Binary files /dev/null and b/frontend/src/assets/tableicon/ksxl.png differ diff --git a/frontend/src/assets/tableicon/ksxl2.png b/frontend/src/assets/tableicon/ksxl2.png new file mode 100644 index 0000000..9104819 Binary files /dev/null and b/frontend/src/assets/tableicon/ksxl2.png differ diff --git a/frontend/src/assets/tableicon/mxgd.png b/frontend/src/assets/tableicon/mxgd.png new file mode 100644 index 0000000..030248c Binary files /dev/null and b/frontend/src/assets/tableicon/mxgd.png differ diff --git a/frontend/src/assets/tableicon/mxgd2.png b/frontend/src/assets/tableicon/mxgd2.png new file mode 100644 index 0000000..66a14b2 Binary files /dev/null and b/frontend/src/assets/tableicon/mxgd2.png differ diff --git a/frontend/src/assets/tableicon/szcs.png b/frontend/src/assets/tableicon/szcs.png new file mode 100644 index 0000000..f72c27c Binary files /dev/null and b/frontend/src/assets/tableicon/szcs.png differ diff --git a/frontend/src/assets/tableicon/szcs2.png b/frontend/src/assets/tableicon/szcs2.png new file mode 100644 index 0000000..b209ed2 Binary files /dev/null and b/frontend/src/assets/tableicon/szcs2.png differ diff --git a/frontend/src/assets/tableicon/video.png b/frontend/src/assets/tableicon/video.png new file mode 100644 index 0000000..d1a7239 Binary files /dev/null and b/frontend/src/assets/tableicon/video.png differ diff --git a/frontend/src/assets/tableicon/video_disabled.png b/frontend/src/assets/tableicon/video_disabled.png new file mode 100644 index 0000000..4100d8f Binary files /dev/null and b/frontend/src/assets/tableicon/video_disabled.png differ diff --git a/frontend/src/assets/tableicon/viewimg.png b/frontend/src/assets/tableicon/viewimg.png new file mode 100644 index 0000000..17606b7 Binary files /dev/null and b/frontend/src/assets/tableicon/viewimg.png differ diff --git a/frontend/src/assets/tableicon/viewimg_disabled.png b/frontend/src/assets/tableicon/viewimg_disabled.png new file mode 100644 index 0000000..ad8b35a Binary files /dev/null and b/frontend/src/assets/tableicon/viewimg_disabled.png differ diff --git a/frontend/src/assets/tableicon/xlpg.png b/frontend/src/assets/tableicon/xlpg.png new file mode 100644 index 0000000..4a4efa1 Binary files /dev/null and b/frontend/src/assets/tableicon/xlpg.png differ diff --git a/frontend/src/assets/tableicon/xlpg2.png b/frontend/src/assets/tableicon/xlpg2.png new file mode 100644 index 0000000..eacfdc6 Binary files /dev/null and b/frontend/src/assets/tableicon/xlpg2.png differ diff --git a/frontend/src/assets/u208.png b/frontend/src/assets/u208.png new file mode 100644 index 0000000..dfbc89c Binary files /dev/null and b/frontend/src/assets/u208.png differ diff --git a/frontend/src/components.d.ts b/frontend/src/components.d.ts new file mode 100644 index 0000000..94e8b82 --- /dev/null +++ b/frontend/src/components.d.ts @@ -0,0 +1,9 @@ +// 全局组件类型声明 +import Pagination from '@/components/Pagination/index.vue'; + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + Pagination: typeof Pagination; + } +} +export {}; diff --git a/frontend/src/components/Annotation/index.vue b/frontend/src/components/Annotation/index.vue new file mode 100644 index 0000000..5cd97d9 --- /dev/null +++ b/frontend/src/components/Annotation/index.vue @@ -0,0 +1,2190 @@ + + + + + diff --git a/frontend/src/components/Breadcrumb/index.vue b/frontend/src/components/Breadcrumb/index.vue new file mode 100644 index 0000000..7323114 --- /dev/null +++ b/frontend/src/components/Breadcrumb/index.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/frontend/src/components/GithubCorner/index.vue b/frontend/src/components/GithubCorner/index.vue new file mode 100644 index 0000000..c9a4b32 --- /dev/null +++ b/frontend/src/components/GithubCorner/index.vue @@ -0,0 +1,59 @@ + + + diff --git a/frontend/src/components/Hamburger/index.vue b/frontend/src/components/Hamburger/index.vue new file mode 100644 index 0000000..bec7774 --- /dev/null +++ b/frontend/src/components/Hamburger/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/frontend/src/components/IconSelect/index.vue b/frontend/src/components/IconSelect/index.vue new file mode 100644 index 0000000..9670dcf --- /dev/null +++ b/frontend/src/components/IconSelect/index.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/frontend/src/components/LangSelect/index.vue b/frontend/src/components/LangSelect/index.vue new file mode 100644 index 0000000..88cdcd7 --- /dev/null +++ b/frontend/src/components/LangSelect/index.vue @@ -0,0 +1,44 @@ + + + diff --git a/frontend/src/components/Pagination/index.vue b/frontend/src/components/Pagination/index.vue new file mode 100644 index 0000000..7ae0c19 --- /dev/null +++ b/frontend/src/components/Pagination/index.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/frontend/src/components/Pagination/page.vue b/frontend/src/components/Pagination/page.vue new file mode 100644 index 0000000..15d0187 --- /dev/null +++ b/frontend/src/components/Pagination/page.vue @@ -0,0 +1,131 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/components/RightPanel/index.vue b/frontend/src/components/RightPanel/index.vue new file mode 100644 index 0000000..dc09179 --- /dev/null +++ b/frontend/src/components/RightPanel/index.vue @@ -0,0 +1,160 @@ + + + + + + + diff --git a/frontend/src/components/Screenfull/index.vue b/frontend/src/components/Screenfull/index.vue new file mode 100644 index 0000000..9916a5f --- /dev/null +++ b/frontend/src/components/Screenfull/index.vue @@ -0,0 +1,25 @@ + + + diff --git a/frontend/src/components/SizeSelect/index.vue b/frontend/src/components/SizeSelect/index.vue new file mode 100644 index 0000000..d9dcbc1 --- /dev/null +++ b/frontend/src/components/SizeSelect/index.vue @@ -0,0 +1,38 @@ + + + diff --git a/frontend/src/components/SvgIcon/index.vue b/frontend/src/components/SvgIcon/index.vue new file mode 100644 index 0000000..19d3cc9 --- /dev/null +++ b/frontend/src/components/SvgIcon/index.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/frontend/src/components/ThemePicker/index.vue b/frontend/src/components/ThemePicker/index.vue new file mode 100644 index 0000000..c51ce19 --- /dev/null +++ b/frontend/src/components/ThemePicker/index.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/frontend/src/components/Upload/MultiUpload.vue b/frontend/src/components/Upload/MultiUpload.vue new file mode 100644 index 0000000..5c34226 --- /dev/null +++ b/frontend/src/components/Upload/MultiUpload.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/frontend/src/components/Upload/SingleUpload.vue b/frontend/src/components/Upload/SingleUpload.vue new file mode 100644 index 0000000..9937550 --- /dev/null +++ b/frontend/src/components/Upload/SingleUpload.vue @@ -0,0 +1,97 @@ + + + + + + + diff --git a/frontend/src/components/WangEditor/index.vue b/frontend/src/components/WangEditor/index.vue new file mode 100644 index 0000000..aeab4d1 --- /dev/null +++ b/frontend/src/components/WangEditor/index.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/frontend/src/components/predictioneffect/annotation.vue b/frontend/src/components/predictioneffect/annotation.vue new file mode 100644 index 0000000..a5d1390 --- /dev/null +++ b/frontend/src/components/predictioneffect/annotation.vue @@ -0,0 +1,563 @@ + + + + + diff --git a/frontend/src/components/predictioneffect/index.vue b/frontend/src/components/predictioneffect/index.vue new file mode 100644 index 0000000..4a133a0 --- /dev/null +++ b/frontend/src/components/predictioneffect/index.vue @@ -0,0 +1,412 @@ + + + + + diff --git a/frontend/src/components/predictioneffect/web.code-workspace b/frontend/src/components/predictioneffect/web.code-workspace new file mode 100644 index 0000000..c04eaf5 --- /dev/null +++ b/frontend/src/components/predictioneffect/web.code-workspace @@ -0,0 +1,7 @@ +{ + "folders": [ + { + "path": "..\\..\\.." + } + ] +} \ No newline at end of file diff --git a/frontend/src/components/predictioneffect1/annotation.vue b/frontend/src/components/predictioneffect1/annotation.vue new file mode 100644 index 0000000..bf16dcb --- /dev/null +++ b/frontend/src/components/predictioneffect1/annotation.vue @@ -0,0 +1,564 @@ + + + + + diff --git a/frontend/src/components/predictioneffect1/index.vue b/frontend/src/components/predictioneffect1/index.vue new file mode 100644 index 0000000..a851bd1 --- /dev/null +++ b/frontend/src/components/predictioneffect1/index.vue @@ -0,0 +1,552 @@ + + + + + diff --git a/frontend/src/components/predictioneffect1/web.code-workspace b/frontend/src/components/predictioneffect1/web.code-workspace new file mode 100644 index 0000000..c04eaf5 --- /dev/null +++ b/frontend/src/components/predictioneffect1/web.code-workspace @@ -0,0 +1,7 @@ +{ + "folders": [ + { + "path": "..\\..\\.." + } + ] +} \ No newline at end of file diff --git a/frontend/src/directive/index.ts b/frontend/src/directive/index.ts new file mode 100644 index 0000000..a966376 --- /dev/null +++ b/frontend/src/directive/index.ts @@ -0,0 +1,2 @@ +export { hasPerm, hasRole } from './permission'; +export { deBounce } from './utils'; diff --git a/frontend/src/directive/permission/index.ts b/frontend/src/directive/permission/index.ts new file mode 100644 index 0000000..1dc7b96 --- /dev/null +++ b/frontend/src/directive/permission/index.ts @@ -0,0 +1,54 @@ +import { useUserStoreHook } from '@/store/modules/user'; +import { Directive, DirectiveBinding } from 'vue'; + +/** + * 按钮权限校验 + */ +export const hasPerm: Directive = { + mounted(el: HTMLElement, binding: DirectiveBinding) { + // 「超级管理员」拥有所有的按钮权限 + const { roles, perms } = useUserStoreHook(); + if (roles.includes('超级管理员')) { + return true; + } + // 「其他角色」按钮权限校验 + const { value } = binding; + if (value) { + const requiredPerms = value; // DOM绑定需要的按钮权限标识 + const hasPerm = perms?.some(perm => { + return requiredPerms.includes(perm); + }); + + if (!hasPerm) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error( + "need perms! Like v-has-perm=\"['sys:user:add','sys:user:edit']\"" + ); + } + } +}; + +/** + * 角色权限校验 + */ +export const hasRole: Directive = { + mounted(el: HTMLElement, binding: DirectiveBinding) { + const { value } = binding; + + if (value) { + const requiredRoles = value; // DOM绑定需要的角色编码 + const { roles } = useUserStoreHook(); + const hasRole = roles.some(perm => { + return requiredRoles.includes(perm); + }); + + if (!hasRole) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error("need roles! Like v-has-role=\"['admin','zhengsl','test']\""); + } + } +}; diff --git a/frontend/src/directive/utils/index.ts b/frontend/src/directive/utils/index.ts new file mode 100644 index 0000000..9eeaef9 --- /dev/null +++ b/frontend/src/directive/utils/index.ts @@ -0,0 +1,15 @@ +import { Directive } from 'vue'; + +/** + * 按钮防抖 + */ +export const deBounce:Directive = { + mounted(el:HTMLElement) { + el.addEventListener('click', () => { + el.classList.add('is-disabled') + setTimeout(() => { + el.classList.remove('is-disabled') + }, 2000) + }) + } +} diff --git a/frontend/src/env.d.ts b/frontend/src/env.d.ts new file mode 100644 index 0000000..bcddf3e --- /dev/null +++ b/frontend/src/env.d.ts @@ -0,0 +1,19 @@ +/// + +declare module '*.vue' { + import { DefineComponent } from 'vue'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any>; + export default component; +} + +// 环境变量 TypeScript的智能提示 +interface ImportMetaEnv { + VITE_APP_TITLE: string; + VITE_APP_PORT: string; + VITE_APP_BASE_API: string; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} diff --git a/frontend/src/lang/en.ts b/frontend/src/lang/en.ts new file mode 100644 index 0000000..63b4df7 --- /dev/null +++ b/frontend/src/lang/en.ts @@ -0,0 +1,29 @@ +export default { + // 路由国际化 + route: { + dashboard: 'Dashboard', + document: 'Document' + }, + // 登录页面国际化 + login: { + title: 'Jingyi system', + username: 'Username', + rulesUsername: 'enter one user name', + password: 'Password', + rulesPassword: 'Please input a password', + rulesPasswordPlace: 'The password cannot be less than 6 digits', + login: 'Login', + code: 'Verification Code', + copyright: '', + icp: '', + thirdPartyLogin: 'third-party login', + remember: 'Remember password' + }, + // 导航栏国际化 + navbar: { + dashboard: 'Dashboard', + logout: 'Logout', + document: 'Document', + gitee: 'Gitee' + } +}; diff --git a/frontend/src/lang/index.ts b/frontend/src/lang/index.ts new file mode 100644 index 0000000..5ca3f65 --- /dev/null +++ b/frontend/src/lang/index.ts @@ -0,0 +1,46 @@ +// 自定义国际化配置 +import { createI18n } from 'vue-i18n'; +import { localStorage } from '@/utils/localStorage'; + +// 本地语言包 +import enLocale from './en'; +import zhCnLocale from './zh-cn'; + +const messages = { + 'zh-cn': { + ...zhCnLocale + }, + en: { + ...enLocale + } +}; + +/** + * 获取当前系统使用语言字符串 + * + * @returns zh-cn|en ... + */ +export const getLanguage = () => { + // 本地缓存获取 + let language = localStorage.get('language'); + if (language) { + return language; + } + // 浏览器使用语言 + language = navigator.language.toLowerCase(); + const locales = Object.keys(messages); + for (const locale of locales) { + if (language.indexOf(locale) > -1) { + return locale; + } + } + return 'zh-cn'; +}; + +const i18n = createI18n({ + legacy: false, + locale: getLanguage(), + messages: messages +}); + +export default i18n; diff --git a/frontend/src/lang/zh-cn.ts b/frontend/src/lang/zh-cn.ts new file mode 100644 index 0000000..83d5101 --- /dev/null +++ b/frontend/src/lang/zh-cn.ts @@ -0,0 +1,28 @@ +export default { + // 路由国际化 + route: { + dashboard: '首页', + document: '项目文档' + }, + // 登录页面国际化 + login: { + title: 'AI算法模型训练及部署管理平台', + username: '用户名', + rulesUsername: '请输入用户名', + password: '密码', + rulesPassword: '请输入密码', + rulesPasswordPlace: '密码不能少于6位', + login: '登 录', + code: '请输入验证码', + copyright: '', + icp: '', + thirdPartyLogin: '第三方登录', + remember: '记住密码' + }, + navbar: { + dashboard: '首页', + logout: '注销', + document: '项目文档', + gitee: '码云' + } +}; diff --git a/frontend/src/layout/components/AppMain.vue b/frontend/src/layout/components/AppMain.vue new file mode 100644 index 0000000..a683688 --- /dev/null +++ b/frontend/src/layout/components/AppMain.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/frontend/src/layout/components/Navbar.vue b/frontend/src/layout/components/Navbar.vue new file mode 100644 index 0000000..fb3a67e --- /dev/null +++ b/frontend/src/layout/components/Navbar.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/frontend/src/layout/components/Settings/index.vue b/frontend/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..605f23a --- /dev/null +++ b/frontend/src/layout/components/Settings/index.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/frontend/src/layout/components/Sidebar/Link.vue b/frontend/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..c592bbd --- /dev/null +++ b/frontend/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,37 @@ + + + diff --git a/frontend/src/layout/components/Sidebar/Logo.vue b/frontend/src/layout/components/Sidebar/Logo.vue new file mode 100644 index 0000000..7638bbc --- /dev/null +++ b/frontend/src/layout/components/Sidebar/Logo.vue @@ -0,0 +1,30 @@ + + + diff --git a/frontend/src/layout/components/Sidebar/MixNav.vue b/frontend/src/layout/components/Sidebar/MixNav.vue new file mode 100644 index 0000000..55b8a7f --- /dev/null +++ b/frontend/src/layout/components/Sidebar/MixNav.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/frontend/src/layout/components/Sidebar/SidebarItem.vue b/frontend/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..46c5b6a --- /dev/null +++ b/frontend/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,131 @@ + + + + diff --git a/frontend/src/layout/components/Sidebar/index.vue b/frontend/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..7fc3734 --- /dev/null +++ b/frontend/src/layout/components/Sidebar/index.vue @@ -0,0 +1,42 @@ + + + diff --git a/frontend/src/layout/components/TagsView/ScrollPane.vue b/frontend/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..302f1cf --- /dev/null +++ b/frontend/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/frontend/src/layout/components/TagsView/index.vue b/frontend/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..2d54388 --- /dev/null +++ b/frontend/src/layout/components/TagsView/index.vue @@ -0,0 +1,357 @@ + + + + + diff --git a/frontend/src/layout/components/index.ts b/frontend/src/layout/components/index.ts new file mode 100644 index 0000000..4dca96e --- /dev/null +++ b/frontend/src/layout/components/index.ts @@ -0,0 +1,4 @@ +export { default as Navbar } from './Navbar.vue'; +export { default as AppMain } from './AppMain.vue'; +export { default as Settings } from './Settings/index.vue'; +export { default as TagsView } from './TagsView/index.vue'; diff --git a/frontend/src/layout/components/news.vue b/frontend/src/layout/components/news.vue new file mode 100644 index 0000000..165f0c3 --- /dev/null +++ b/frontend/src/layout/components/news.vue @@ -0,0 +1,257 @@ + + + + diff --git a/frontend/src/layout/index.vue b/frontend/src/layout/index.vue new file mode 100644 index 0000000..2fb9a5f --- /dev/null +++ b/frontend/src/layout/index.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..e12358d --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,42 @@ +import { createApp, Directive } from 'vue'; +import App from './App.vue'; +import router from '@/router'; +import { setupStore } from '@/store'; + +import ElementPlus from 'element-plus'; +import * as ElementPlusIconsVue from '@element-plus/icons-vue' +import Pagination from '@/components/Pagination/index.vue'; +import '@/permission'; + +// 引入svg注册脚本 +import 'virtual:svg-icons-register'; + +// 国际化 +import i18n from '@/lang/index'; + +import '@/styles/index.scss'; +import 'element-plus/theme-chalk/index.css'; +import 'element-plus/theme-chalk/dark/css-vars.css'; + +const app = createApp(App); +// 自定义指令 +import * as directive from '@/directive'; +Object.keys(directive).forEach(key => { + app.directive(key, (directive as { [key: string]: Directive })[key]); +}); +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component) +} + +// 全局方法 +import { getDictionaries } from '@/api/dict'; +app.config.globalProperties.$getDictionaries = getDictionaries; + +// 全局挂载 +setupStore(app); +app + .component('Pagination', Pagination) + .use(router) + .use(ElementPlus) + .use(i18n) + .mount('#app'); diff --git a/frontend/src/permission.ts b/frontend/src/permission.ts new file mode 100644 index 0000000..653e2be --- /dev/null +++ b/frontend/src/permission.ts @@ -0,0 +1,68 @@ +import router from '@/router'; +import { RouteRecordRaw } from 'vue-router'; +import { useUserStoreHook } from '@/store/modules/user'; +import { usePermissionStoreHook } from '@/store/modules/permission'; + +import NProgress from 'nprogress'; +import 'nprogress/nprogress.css'; +NProgress.configure({ showSpinner: false }); // 进度条 + +const permissionStore = usePermissionStoreHook(); + +// 白名单路由 +const whiteList = ['/login']; +router.beforeEach(async (to, from, next) => { + NProgress.start(); + const userStore = useUserStoreHook(); + const hasDynamicRoutes = permissionStore.addRoutes.length > 0; + + if (userStore.Token) { + // 登录成功,跳转到首页 + if (to.path === '/login') { + next({ path: '/' }); + NProgress.done(); + } else { + const hasGetUserInfo = userStore.roles.length > 0; + // const hasGetUserInfo = true; + if (hasGetUserInfo && hasDynamicRoutes) { + if (to.matched.length === 0) { + from.name ? next({ name: from.name as any }) : next('/401'); + } else { + next(); + } + } else { + try { + // const { roles } = await userStore.getInfo(); + if (!hasGetUserInfo) { + userStore.roles = ['admin']; + } + const accessRoutes: RouteRecordRaw[] = + await permissionStore.generateRoutes([]); + accessRoutes.forEach((route: any) => { + if (route.name && !router.hasRoute(route.name)) { + router.addRoute(route); + } + }); + next({ ...to, replace: true }); + } catch (error) { + // 移除 token 并跳转登录页 + await userStore.resetToken(); + next(`/login?redirect=${to.path}`); + NProgress.done(); + } + } + } + } else { + // 未登录可以访问白名单页面 + if (whiteList.indexOf(to.path) !== -1) { + next(); + } else { + next(`/login?redirect=${to.path}`); + NProgress.done(); + } + } +}); + +router.afterEach(() => { + NProgress.done(); +}); diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts new file mode 100644 index 0000000..2bb80a5 --- /dev/null +++ b/frontend/src/router/index.ts @@ -0,0 +1,77 @@ +import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'; +import { usePermissionStoreHook } from '@/store/modules/permission'; + +export const Layout = () => import('@/layout/index.vue'); + +// 静态路由 +export const constantRoutes: any = [ + { + path: '/redirect', + component: Layout, + meta: { hidden: true }, + children: [ + { + path: '/redirect/:path(.*)', + component: () => import('@/views/redirect/index.vue') + } + ] + }, + { + path: '/login', + component: () => import('@/views/login/index.vue'), + meta: { hidden: true } + }, + { + path: '/404', + component: () => import('@/views/error-page/404.vue'), + meta: { hidden: true } + }, + + { + path: '/', + component: Layout, + redirect: '/dashboard', + children: [ + { + path: 'dashboard', + opturl: '/dashboard', + component: () => import('@/views/dashboard/index.vue'), + name: '首页', + icon: 'homepage', + meta: { title: 'dashboard', icon: 'homepage', affix: true } + }, + { + path: 'personalCenter', + component: () => import('@/views/system/user/personalCenter.vue'), + name: '个人中心', + meta: { title: 'personalCenter', hidden: true, icon: 'personalCenter' } + }, + { + path: '401', + component: () => import('@/views/error-page/401.vue'), + meta: { hidden: true } + }, + ] + } +]; + +// 创建路由 +const router = createRouter({ + history: createWebHashHistory(), + routes: constantRoutes as RouteRecordRaw[], + // 刷新时,滚动条位置还原 + scrollBehavior: () => ({ left: 0, top: 0 }) +}); + +// 重置路由 +export function resetRouter() { + const permissionStore = usePermissionStoreHook(); + permissionStore.routes.forEach(route => { + const name = route.name; + if (name && router.hasRoute(name)) { + router.hasRoute(name) && router.removeRoute(name); + } + }); +} + +export default router; diff --git a/frontend/src/settings.ts b/frontend/src/settings.ts new file mode 100644 index 0000000..e9cf667 --- /dev/null +++ b/frontend/src/settings.ts @@ -0,0 +1,23 @@ +interface DefaultSettings { + title: string; + showSettings: boolean; + tagsView: boolean; + fixedHeader: boolean; + sidebarLogo: boolean; + errorLog: string; + layout: string; + theme: string; +} + +const defaultSettings: DefaultSettings = { + title: 'AI算法模型训练及部署管理平台', + showSettings: false, + tagsView: true, + fixedHeader: true, + sidebarLogo: true, + errorLog: 'production', + layout: 'left', + theme: 'light' +}; + +export default defaultSettings; diff --git a/frontend/src/shims.d.ts b/frontend/src/shims.d.ts new file mode 100644 index 0000000..dd6adc8 --- /dev/null +++ b/frontend/src/shims.d.ts @@ -0,0 +1,3 @@ +shims.d.ts +declare module 'jsencrypt/bin/jsencrypt.min' // declare module 'xxx'路径或者模块名 +declare module 'sortablejs' \ No newline at end of file diff --git a/frontend/src/store/index.ts b/frontend/src/store/index.ts new file mode 100644 index 0000000..fc0ba49 --- /dev/null +++ b/frontend/src/store/index.ts @@ -0,0 +1,11 @@ +import type { App } from 'vue'; +import { createPinia } from 'pinia'; + +const store = createPinia(); + +// 全局挂载store +export function setupStore(app: App) { + app.use(store); +} + +export { store }; diff --git a/frontend/src/store/modules/app.ts b/frontend/src/store/modules/app.ts new file mode 100644 index 0000000..eb4d628 --- /dev/null +++ b/frontend/src/store/modules/app.ts @@ -0,0 +1,97 @@ +import { + getSidebarStatus, + setSidebarStatus, + getSize, + setSize, + setLanguage +} from '@/utils/localStorage'; +import { defineStore } from 'pinia'; +import { getLanguage } from '@/lang/index'; +import { computed, reactive, ref } from 'vue'; +import { useStorage } from '@vueuse/core'; + +// Element Plus 语言包 +import zhCn from 'element-plus/es/locale/lang/zh-cn'; +import en from 'element-plus/es/locale/lang/en'; + +export enum DeviceType { + mobile, + desktop +} + +export enum SizeType { + default, + large, + small +} + +// setup +export const useAppStore = defineStore('app', () => { + // state + const device = useStorage('device', 'desktop'); + const size = ref(getSize() || 'default'); + const language = ref(getLanguage()); + const sidebar = reactive({ + opened: getSidebarStatus() !== 'closed', + withoutAnimation: false + }); + + const locale = computed(() => { + if (language?.value == 'en') { + return en; + } else { + return zhCn; + } + }); + + // actions + function toggleSidebar(withoutAnimation: boolean) { + sidebar.opened = !sidebar.opened; + sidebar.withoutAnimation = withoutAnimation; + if (sidebar.opened) { + setSidebarStatus('opened'); + } else { + setSidebarStatus('closed'); + } + } + + function closeSideBar(withoutAnimation: boolean) { + sidebar.opened = false; + sidebar.withoutAnimation = withoutAnimation; + setSidebarStatus('closed'); + } + + function openSideBar(withoutAnimation: boolean) { + sidebar.opened = true; + sidebar.withoutAnimation = withoutAnimation; + setSidebarStatus('opened'); + } + + function toggleDevice(val: string) { + device.value = val; + } + + function changeSize(val: string) { + size.value = val; + setSize(val); + } + + function changeLanguage(val: string) { + language.value = val; + setLanguage(val); + } + + return { + device, + sidebar, + language, + locale, + size, + toggleDevice, + changeSize, + changeLanguage, + toggleSidebar, + closeSideBar, + openSideBar + }; +}); diff --git a/frontend/src/store/modules/permission.ts b/frontend/src/store/modules/permission.ts new file mode 100644 index 0000000..7b1462b --- /dev/null +++ b/frontend/src/store/modules/permission.ts @@ -0,0 +1,226 @@ +import { RouteRecordRaw } from 'vue-router'; +import { defineStore } from 'pinia'; +import { constantRoutes } from '@/router'; +import { store } from '@/store'; +import { listRoutes } from '@/api/menu'; +import { ref } from 'vue'; + +const modules = import.meta.glob('../../views/**/**.vue'); +export const Layout = () => import('@/layout/index.vue'); + +type LocalMenuNode = { + path: string; + opturl?: string; + name: string; + icon?: string; + hidden?: boolean; + isdisplay?: string; + component?: any; + meta?: Record; + children?: LocalMenuNode[]; +}; + +function normalizeLocalMenuNode(node: LocalMenuNode, parentIcon = ''): any { + const normalizedIcon = node.icon || parentIcon || ''; + const normalizedOpturl = node.opturl || node.path; + const normalizedChildren = (node.children || []).map(child => normalizeLocalMenuNode(child, normalizedIcon)); + const normalizedComponent = node.component || (normalizedChildren.length > 0 ? Layout : undefined); + const normalizedMeta = { + title: node.meta?.title || node.name, + ...(node.meta || {}) + }; + + return { + path: node.path, + opturl: normalizedOpturl, + component: normalizedComponent, + hidden: node.hidden ?? false, + name: node.name, + icon: normalizedIcon, + isdisplay: node.isdisplay ?? '1', + meta: normalizedMeta, + children: normalizedChildren + }; +} + +function buildLocalAsyncRoutes() { + const rawRoutes: LocalMenuNode[] = [ + { + path: '/dataset1', + name: '数据集管理', + icon: 'dataset', + hidden: true, + children: [{ + path: '/tempfile', + name: '临时文件管理', + icon: 'dataset', + component: () => import('@/views/tempfile/index.vue') + }, + { + path: '/dataset', + name: '数据集导入管理', + icon: 'dataset', + component: () => import('@/views/dataset/index.vue') + } + ] + }, + { + path: '/annotationtask', + name: '数据标注管理', + icon: 'annotationtask', + hidden: true, + children: [ + { + path: '/annotationtask', + name: '标注任务管理', + component: () => import('@/views/dataannotations/annotationtask/index.vue') + }, + { + path: '/annotationteam', + name: '标注团队管理', + component: () => import('@/views/dataannotations/annotationteam/index.vue') + } + ] + }, + { + path: '/modeltraining1', + opturl: '/modeltraining1', + name: '模型训练管理', + icon: 'modeltraining', + hidden: true, + children: [ + { + path: '/modeltraining', + name: '模型训练', + component: () => import('@/views/modeltraining/index.vue') + } + ] + }, + { + path: '/define1', + name: '算法及模型管理', + icon: 'define', + hidden: true, + children: [ + { + path: '/define', + name: '算法定义', + component: () => import('@/views/AlgorithmsAndModels/define/index.vue') + }, + { + path: '/maintenance', + name: '模型维护', + component: () => import('@/views/AlgorithmsAndModels/maintenance/index.vue') + }, + { + path: '/modelbase', + name: '算法模型库', + component: () => import('@/views/AlgorithmsAndModels/modelbase/index.vue') + } + ] + }, + { + path: '/system1', + name: '组织及用户管理', + icon: 'system', + hidden: true, + children: [ + { + path: '/system', + name: '组织及用户', + component: () => import('@/views/system/user/index.vue') + } + ] + }, + { + path: '/smartterminal1', + name: '智能终端管理', + icon: 'dataset', + hidden: false, + children: [{ + path: '/smartterminal', + name: '智能终端发布', + component: () => import('@/views/smartterminal/index.vue') + }] + } + ]; + + return rawRoutes.map(route => normalizeLocalMenuNode(route)); +} + +// const hasPermission = (roles: string[], route: RouteRecordRaw) => { +// if (route.meta && route.meta.roles) { +// if (roles.includes('ROOT')) { +// return true; +// } +// return roles.some(role => { +// if (route.meta?.roles !== undefined) { +// return (route.meta.roles as string[]).includes(role); +// } +// }); +// } +// return false; +// }; + +const filterAsyncRoutes = (routes: RouteRecordRaw[], roles: string[]) => { + const res: RouteRecordRaw[] = []; + routes.forEach(route => { + const tmp = { ...route } as any; + // if (hasPermission(roles, tmp)) { + tmp.path = tmp.opturl; + if (tmp.type == '0') { + tmp.component = Layout; + } else { + const component = modules[`../../views${tmp.opturl}.vue`] as any; + if (component) { + tmp.component = component; + } else { + tmp.component = modules[`../../views/error-page/404.vue`]; + } + } + res.push(tmp) + if (tmp.children) { + tmp.children = filterAsyncRoutes(tmp.children, roles); + } + // } + }); + return res; +}; + +// setup +export const usePermissionStore = defineStore('permission', () => { + // state + const routes = ref([]); + const addRoutes = ref([]); + routes.value = constantRoutes + // actions + function setRoutes(newRoutes: RouteRecordRaw[]) { + addRoutes.value = newRoutes; + routes.value = constantRoutes.concat(newRoutes); + } + + function generateRoutes(roles: string[]) { + return new Promise((resolve, reject) => { + const asyncRoutes: any = buildLocalAsyncRoutes(); + const accessedRoutes = asyncRoutes; + setRoutes(accessedRoutes); + resolve(accessedRoutes); + // listRoutes() + // .then(response => { + // const asyncRoutes :any = response; + // const accessedRoutes = filterAsyncRoutes(asyncRoutes, roles); + // setRoutes(accessedRoutes); + // resolve(accessedRoutes); + // }) + // .catch(error => { + // reject(error); + // }); + }); + } + return { routes, addRoutes, setRoutes, generateRoutes }; +}); + +// 非setup +export function usePermissionStoreHook() { + return usePermissionStore(store); +} diff --git a/frontend/src/store/modules/settings.ts b/frontend/src/store/modules/settings.ts new file mode 100644 index 0000000..0b69453 --- /dev/null +++ b/frontend/src/store/modules/settings.ts @@ -0,0 +1,64 @@ +import { defineStore } from 'pinia'; +import defaultSettings from '../../settings'; +import { ref } from 'vue'; +import { useStorage } from '@vueuse/core'; + +/** + * 主题类型 + */ +export enum ThemeType { + light, + dark +} + +/** + * 布局类型 + */ +export enum LayoutType { + left, + top, + mix +} + +export const useSettingsStore = defineStore('setting', () => { + // state + const showSettings = ref(defaultSettings.showSettings); + const tagsView = useStorage('tagsView', defaultSettings.tagsView); + const fixedHeader = ref(defaultSettings.fixedHeader); + const sidebarLogo = ref(defaultSettings.sidebarLogo); + + const layout = useStorage('layout', defaultSettings.layout); + + // actions + function changeSetting(param: { key: string; value: any }) { + const { key, value } = param; + switch (key) { + case 'showSettings': + showSettings.value = value; + break; + case 'fixedHeader': + fixedHeader.value = value; + break; + case 'tagsView': + tagsView.value = value; + break; + case 'sidevarLogo': + sidebarLogo.value = value; + break; + case 'layout': + layout.value = value; + break; + default: + break; + } + } + + return { + showSettings, + tagsView, + fixedHeader, + sidebarLogo, + layout, + changeSetting + }; +}); diff --git a/frontend/src/store/modules/tagsView.ts b/frontend/src/store/modules/tagsView.ts new file mode 100644 index 0000000..f8a69a2 --- /dev/null +++ b/frontend/src/store/modules/tagsView.ts @@ -0,0 +1,214 @@ +import { defineStore } from 'pinia'; +import { ref } from 'vue'; +import { RouteLocationNormalized } from 'vue-router'; + +export interface TagView extends Partial { + title?: string; +} + +// setup +export const useTagsViewStore = defineStore('tagsView', () => { + // state + const visitedViews = ref([]); + const cachedViews = ref([]); + + // actions + function addVisitedView(view: TagView) { + if (visitedViews.value.some(v => v.path === view.path)) return; + if (view.meta && view.meta.affix) { + visitedViews.value.unshift( + Object.assign({}, view, { + title: view.meta?.title || 'no-name' + }) + ); + } else { + visitedViews.value.push( + Object.assign({}, view, { + title: view.meta?.title || 'no-name' + }) + ); + } + } + + function addCachedView(view: TagView) { + const viewName = view.name as string; + if (cachedViews.value.includes(viewName)) return; + if (view.meta?.keepAlive) { + cachedViews.value.push(viewName); + } + } + + function delVisitedView(view: TagView) { + return new Promise(resolve => { + for (const [i, v] of visitedViews.value.entries()) { + if (v.path === view.path) { + visitedViews.value.splice(i, 1); + break; + } + } + resolve([...visitedViews.value]); + }); + } + + function delCachedView(view: TagView) { + const viewName = view.name as string; + return new Promise(resolve => { + const index = cachedViews.value.indexOf(viewName); + index > -1 && cachedViews.value.splice(index, 1); + resolve([...cachedViews.value]); + }); + } + + function delOtherVisitedViews(view: TagView) { + return new Promise(resolve => { + visitedViews.value = visitedViews.value.filter(v => { + return v.meta?.affix || v.path === view.path; + }); + resolve([...visitedViews.value]); + }); + } + + function delOtherCachedViews(view: TagView) { + const viewName = view.name as string; + return new Promise(resolve => { + const index = cachedViews.value.indexOf(viewName); + if (index > -1) { + cachedViews.value = cachedViews.value.slice(index, index + 1); + } else { + // if index = -1, there is no cached tags + cachedViews.value = []; + } + resolve([...cachedViews.value]); + }); + } + + function updateVisitedView(view: TagView) { + for (let v of visitedViews.value) { + if (v.path === view.path) { + v = Object.assign(v, view); + break; + } + } + } + + function addView(view: TagView) { + addVisitedView(view); + addCachedView(view); + } + + function delView(view: TagView) { + return new Promise(resolve => { + delVisitedView(view); + delCachedView(view); + resolve({ + visitedViews: [...visitedViews.value], + cachedViews: [...cachedViews.value] + }); + }); + } + + function delOtherViews(view: TagView) { + return new Promise(resolve => { + delOtherVisitedViews(view); + delOtherCachedViews(view); + resolve({ + visitedViews: [...visitedViews.value], + cachedViews: [...cachedViews.value] + }); + }); + } + + function delLeftViews(view: TagView) { + return new Promise(resolve => { + const currIndex = visitedViews.value.findIndex(v => v.path === view.path); + if (currIndex === -1) { + return; + } + visitedViews.value = visitedViews.value.filter((item, index) => { + // affix:true 固定tag,例如“首页” + if (index >= currIndex || (item.meta && item.meta.affix)) { + return true; + } + + const cacheIndex = cachedViews.value.indexOf(item.name as string); + if (cacheIndex > -1) { + cachedViews.value.splice(cacheIndex, 1); + } + return false; + }); + resolve({ + visitedViews: [...visitedViews.value] + }); + }); + } + function delRightViews(view: TagView) { + return new Promise(resolve => { + const currIndex = visitedViews.value.findIndex(v => v.path === view.path); + if (currIndex === -1) { + return; + } + visitedViews.value = visitedViews.value.filter((item, index) => { + // affix:true 固定tag,例如“首页” + if (index <= currIndex || (item.meta && item.meta.affix)) { + return true; + } + + const cacheIndex = cachedViews.value.indexOf(item.name as string); + if (cacheIndex > -1) { + cachedViews.value.splice(cacheIndex, 1); + } + return false; + }); + resolve({ + visitedViews: [...visitedViews.value] + }); + }); + } + + function delAllViews() { + return new Promise(resolve => { + const affixTags = visitedViews.value.filter(tag => tag.meta?.affix); + visitedViews.value = affixTags; + cachedViews.value = []; + resolve({ + visitedViews: [...visitedViews.value], + cachedViews: [...cachedViews.value] + }); + }); + } + + function delAllVisitedViews() { + return new Promise(resolve => { + const affixTags = visitedViews.value.filter(tag => tag.meta?.affix); + visitedViews.value = affixTags; + resolve([...visitedViews.value]); + }); + } + + function delAllCachedViews() { + return new Promise(resolve => { + cachedViews.value = []; + resolve([...cachedViews.value]); + }); + } + + return { + visitedViews, + cachedViews, + addVisitedView, + addCachedView, + delVisitedView, + delCachedView, + delOtherVisitedViews, + delOtherCachedViews, + updateVisitedView, + addView, + delView, + delOtherViews, + delLeftViews, + delRightViews, + delAllViews, + delAllVisitedViews, + delAllCachedViews + }; +}); diff --git a/frontend/src/store/modules/user.ts b/frontend/src/store/modules/user.ts new file mode 100644 index 0000000..2faecd0 --- /dev/null +++ b/frontend/src/store/modules/user.ts @@ -0,0 +1,118 @@ +import { defineStore } from 'pinia'; + +import { getToken, setToken, removeToken } from '@/utils/auth'; +import { loginApi, logoutApi } from '@/api/auth'; +// import { getUserInfo } from '@/api/user'; +import { resetRouter } from '@/router'; +import { store } from '@/store'; +import { LoginData } from '@/api/auth/types'; +import { ref } from 'vue'; +import { UserInfo } from '@/api/user/types'; +import Cookies from 'js-cookie'; + +export const useUserStore = defineStore('user', () => { + // state + const Token = ref(getToken() || ''); + const nickname = ref(''); + const avatar = ref(''); + const roles = ref>([]); // 用户角色编码集合 → 判断路由权限 + const perms = ref>([]); // 用户权限编码集合 → 判断按钮权限 + const badgeval = ref('') + + console.log(import.meta.env.MODE) + + const VITE_APP_BASE_API: any = import.meta.env.MODE == 'development' ? import.meta.env.VITE_APP_BASE_API : window.webConfig.VITE_APP_BASE_API + const VITE_APP_BASE_IMG_API: any = import.meta.env.MODE == 'development' ? import.meta.env.VITE_APP_BASE_IMG_API : window.webConfig.VITE_APP_BASE_IMG_API + const VITE_WS_BASE_API: any = import.meta.env.MODE == 'development' ? import.meta.env.VITE_WS_BASE_API : window.webConfig.VITE_WS_BASE_API + // actions + + // 登录 + function login(loginData: LoginData) { + return new Promise((resolve, reject) => { + loginApi(loginData) + .then((response:any) => { + const { access_token, refresh_token } = response; + Token.value = access_token; + setToken(access_token); + Cookies.set('refresh_token', refresh_token); + resolve(); + }) + .catch(error => { + reject(error); + }); + }); + } + + // 获取信息(用户昵称、头像、角色集合、权限集合) + function getInfo() { + return new Promise((resolve, reject) => { + // getUserInfo() + // .then(({ data }) => { + // if (!data) { + // return reject('Verification failed, please Login again.'); + // } + // if (!data.roles || data.roles.length <= 0) { + // reject('getUserInfo: roles must be a non-null array!'); + // } + // nickname.value = data.userInfo.nickname; + // avatar.value = data.userInfo.avatar; + // roles.value = data.roles; + // perms.value = data.permissions; + // resolve(data); + // }) + // .catch(error => { + // reject(error); + // }); + nickname.value = '11'; + roles.value = ['超级管理员']; + perms.value = []; + }); + } + + // 注销 + function logout() { + return new Promise((resolve, reject) => { + resetRouter(); + resetToken(); + resolve(); + // logoutApi() + // .then(() => { + // resetRouter(); + // resetToken(); + // }) + // .catch(error => { + // reject(error); + // }); + }); + } + + // 重置 + function resetToken() { + removeToken(); + Token.value = ''; + nickname.value = ''; + avatar.value = ''; + roles.value = []; + perms.value = []; + } + return { + Token, + nickname, + avatar, + roles, + perms, + login, + getInfo, + logout, + resetToken, + badgeval, + VITE_APP_BASE_API, + VITE_APP_BASE_IMG_API, + VITE_WS_BASE_API + }; +}); + +// 非setup +export function useUserStoreHook() { + return useUserStore(store); +} diff --git a/frontend/src/styles/element-plus.scss b/frontend/src/styles/element-plus.scss new file mode 100644 index 0000000..f84ca5e --- /dev/null +++ b/frontend/src/styles/element-plus.scss @@ -0,0 +1,78 @@ +:root { + // 这里可以设置你自定义的颜色变量 + // 这个是element主要按钮:active的颜色,当主题更改后此变量的值也随之更改 + --el-color-primary-dark: #0d84ff; + // --el-font-size-base: 16px !important; +} + +.el-button--large, +.el-input--large, +.el-table--large, +.el-form--large, +.el-select__tags-text { + font-size: 16px !important; + + .el-form-item__label { + font-size: 16px !important; + } + + --el-font-size-base: 16px !important; +} + + +// 覆盖 element-plus 的样式 +.el-breadcrumb__inner, +.el-breadcrumb__inner a { + font-weight: 400 !important; +} + +.el-upload { + input[type='file'] { + display: none !important; + } +} + +.el-upload__input { + display: none; +} + +// dropdown +.el-dropdown-menu { + a { + display: block; + } +} + +// to fix el-date-picker css style +.el-range-separator { + box-sizing: content-box; +} + +// card 的header统一高度 +.el-card__header { + height: 60px !important; +} + +// 表格表头和表体未对齐 +.el-table__header col[name='gutter'] { + display: table-cell !important; +} + +.el-dialog { + border-radius: 5px !important; +} + +.el-dialog__header { + padding-top: 14px !important; + background-color: #f2f2f2; + margin: 0 !important; + border-radius: 5px 5px 0 0 !important; +} + +.el-dialog__headerbtn { + top: 0 !important; +} + +.el-table__body tr.current-row td { + background-color: #a9d9ff82 !important; +} \ No newline at end of file diff --git a/frontend/src/styles/index.scss b/frontend/src/styles/index.scss new file mode 100644 index 0000000..57cbd56 --- /dev/null +++ b/frontend/src/styles/index.scss @@ -0,0 +1,56 @@ +@use 'src/styles/element-plus'; +@use './sidebar.scss'; +@use './tailwind.scss'; +@use './peeling.scss'; +html,body,#app{ + height: 100%; +} + +// main-container global css +.app-container { + padding: 20px; +} + +.search{ + padding: 18px 0 0 10px; + margin-bottom: 10px; + border-radius: 5px; + border: 1px solid #ddd; + box-shadow: 6px 2px 6px #CCC; +} + +svg{ + display: inline-block; +} +.el-dialog { + display: flex !important; + flex-direction: column !important; + margin: auto !important; + position: absolute !important; + top: 0 ; + left: 0 ; + right: 0; + bottom: 0; + height: max-content; +} +.el-dialog__body { + padding: 20px !important; +} + +.echartsbox .el-dialog__body{ + background: #ededed !important; +} + +.gaojign.el-dialog{ + // background: url(@/assets/images/jg_bj.png)!important; +} +.el-table--default .cell{ + padding: 0px 5px !important; + } + + .el-message{ + z-index: 999999 !important; + } + .img-preview .image-view { + max-height: 100%; + } \ No newline at end of file diff --git a/frontend/src/styles/mixin.scss b/frontend/src/styles/mixin.scss new file mode 100644 index 0000000..3ca7168 --- /dev/null +++ b/frontend/src/styles/mixin.scss @@ -0,0 +1,28 @@ +@mixin clearfix { + &:after { + content: ''; + display: table; + clear: both; + } +} + +@mixin scrollBar { + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } +} + +@mixin relative { + position: relative; + width: 100%; + height: 100%; +} diff --git a/frontend/src/styles/peeling.scss b/frontend/src/styles/peeling.scss new file mode 100644 index 0000000..d3814f1 --- /dev/null +++ b/frontend/src/styles/peeling.scss @@ -0,0 +1,397 @@ +html.dark .fixed-header { + /* 自定义深色背景颜色 */ + background: var(--el-table-tr-bg-color); +} + +.el-menu--popup { + padding: 6px 0 !important; +} + +.el-menu-item-group__title { + color: var(--el-text-color-secondary); +} + +.AlgorithmsAndModels { + width: 100%; + height: calc(100vh - 124px); + background-color: #ffffff; + border-radius: 5px; + padding: 20px 10px; + box-shadow: 0px 0px 10px rgb(219 225 236); +} + +.el-menu img { + filter: invert(100%); +} + +.FullscreenClass img { + filter: invert(100%); +} + +html.dark .switchMenu:hover { + background: #002144 !important; +} + +html.dark #app .sidebar-container { + background: #202020; +} + +html.dark #app .sidebar-container .el-menu { + --el-menu-text-color: #ffffff !important; + --el-menu-hover-text-color: #ffffff !important; + --el-menu-bg-color: var(--el-table-tr-bg-color) !important; + --el-menu-hover-bg-color: #ffffff !important; + --el-menu-active-color: #409eff; +} + +html.dark .el-input { + --el-input-text-color: #ffffff; +} + +html.dark #app .sidebar-container .el-sub-menu .el-menu-item { + background-color: var(--el-table-tr-bg-color) !important; +} + +.navboxbg { + background: #f0f2f5 !important; +} + +html.dark .navboxbg { + background: var(--el-table-tr-bg-color) !important; +} + +html.dark .app-main { + background: var(--el-table-tr-bg-color); +} + +html.dark .detail-box { + background: #202020; +} + +html.dark .el-table__header-wrapper th { + background: var(--el-table-tr-bg-color) !important; + color: #ffffff !important; +} + +html.dark .AlgorithmsAndModels { + background-color: #202020; + box-shadow: 0px 0px 3px rgb(54, 54, 54); +} + +html.dark .tags-item-menu { + background: rgb(54, 54, 54); + box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); +} + +html.dark .tags-container .tags-item { + background-color: #202020; +} + +html.dark #app .sidebar-container .el-menu-item.is-active { + background: #002144 !important; +} + +html.dark #app .el-menu-item { + background: transparent !important; +} + +html.dark #app .el-sub-menu { + background: transparent !important; +} + +html.dark #app .sidebar-container .el-sub-menu__title:hover { + background: #002144 !important; +} + +html.dark #app .sidebar-container .submenu-title-noDropdown:hover { + background: transparent !important; +} + +html.dark #app .AlgorithmsAndModels .el-tabs__item { + color: #fff !important; +} + +html.dark .AlgorithmsAndModels .el-tabs__item.is-active { + color: #409eff !important; +} + +html.dark .el-dialog__header { + background: #141414 !important; +} + +html.dark .tags-item-menu li:hover { + background: #409eff; +} + +html.dark .el-menu { + background-color: var(--el-table-tr-bg-color); +} + +html.dark .el-menu-item { + color: #ffffff; +} + +html.dark .el-menu-item:hover { + background: #002144 !important; + color: #ffffff; +} + +html.dark .el-popper.is-dark .el-popper__arrow::before { + background: var(--el-bg-color-overlay); + border: 1px solid var(--el-border-color-light); +} + +html.dark .el-popper.is-dark { + background: var(--el-bg-color-overlay); + border: 1px solid var(--el-border-color-light); + color: #ffffff; +} + +html.dark .el-dialog { + border: 1px solid #505050; +} + +html.dark .linshihome { + color: #ffffff; +} + +html.dark #silderLeft { + background: #202020 !important; + box-shadow: transparent !important; +} + +html.dark .silderRight { + background: #202020 !important; + box-shadow: transparent !important; +} + +html.dark .mainBody { + background: #202020 !important; + box-shadow: transparent !important; + border: #ffffff2a 2px solid !important; +} + +html.dark .mainBody:hover { + background: #202020 !important; + box-shadow: transparent !important; +} +html.dark .line{ + border-bottom:1px solid #ffffff42 ; +} + +html.dark .mainBody .mainBody-bottom .mainBody-bottom1 { + color: #fff !important; +} + +html.dark .mainBody .mainBody-bottom .mainBody-bottom3 .el-button--primary.is-plain { + --el-button-bg-color: #202020 !important; + --el-button-hover-bg-color: #202020 !important; +} + +html.dark .el-drawer__header { + background: #202020 !important; + color: #f0f2f5 !important; +} + +html.dark .taitle_blue .taitle_blue2 { + color: #f0f2f5 !important; +} + +html.dark .contron_two .contron_four { + color: #fff !important; +} + +html.dark .predictioneffect-box .predictioneffect-left .predictioneffect-imgbox { + background: #202020; +} + +html.dark .predictioneffect-box .predictioneffect-right { + background: #202020; +} + +html.dark .predictioneffect-box .predictioneffect-right .resultTitle { + color: #fff; +} + +html.dark .silderRight1 { + background: #202020 !important; +} + +html.dark .button_two div { + color: #fff !important; + border: 1px solid #dcdfe666; +} + +html.dark .button_two .button_bian { + color: #409EFF !important; + border: 1px solid #dcdfe666 !important; + background: #409eff70 !important; +} +html.dark .titletwo .title_text3{ + color: #fff; +} +html.dark .contron_five{ + color: #409EFF !important; + border: 1px solid #dcdfe666 !important; + background: #40a0ff00 !important; +} +html.dark .el-tabs__item.is-active { + color: #fff !important; +} + +html.dark .treetext .titletext1 { + color: #fff !important; +} +html.dark .silderRight2{ + background: #202020; +} +html.dark .tags-container .tags-item { + border: 1px solid var(--el-input-border-color, var(--el-border-color)); + box-shadow: 0px 0px 3px var(--el-input-border-color, var(--el-border-color)); +} +html.dark .mainBody .mainBody-bottom .mainBody-bottom2 div{ + background-color: rgb(242 242 242 / 5%) !important; + color: #ffffffb0; + border: 1px solid #454545; +} +html.dark .datasetDialog2Text { + color: #ffffff; +} +html.dark .predictioneffect-box .predictioneffect-right{ + border: 1px solid rgb(240 240 240 / 30%); + +} +html.dark .predictioneffect-box .predictioneffect-right .resultTitle{ + border-bottom: 1px solid rgb(240 240 240 / 30%); +} +html.dark .predictioneffect-box .predictioneffect-left{ + border: 1px solid rgb(240 240 240 / 30%); +} +html.dark .titletwo .title_text{ + color: #fff !important; + font-size: 14px !important; +} +html.dark .rightpup{ + background:url(@/assets/algorithmimg/u12361.png) !important; + background-size:100% 100% !important; + +} +html.dark .leftpup{ + background:url(@/assets/algorithmimg/122.png) !important; + background-size:100% 100% !important; +} +html.dark .puptont_text{ + color: #ffffffc2 !important; +} +html.dark .dataset { + .zip { + color: #ffffff; + } + + .img2 { + content: url('@/assets/new/del2.svg'); + } +} + +html.dark .faulttemplate-box { + background-color: transparent; + + #silderLeft { + background-color: #141414; + box-shadow: 0px 0px 3px var(--el-input-border-color, var(--el-border-color)); + } + + .silderRight { + background-color: #141414; + box-shadow: 0px 0px 3px var(--el-input-border-color, var(--el-border-color)); + } + + .organization_list { + background-color: #383737; + } +} + +html.dark .dimension-content { + background-color: #202020; + + .dimension-top-left { + color: #ffffff !important; + } + + .operate-icon::after { + background: #696969 !important; + } + + .el-pagination { + background-color: #202020; + } + + .dimension-page-datas { + // background-color: #303030; + border-color: #303030 !important; + color: #ffffff !important; + } + + .pageborder { + background-color: #000 !important; + } + + .dimension-typename { + color: #ffffff !important; + } + + .dimension-typecount { + color: #ffffff !important; + } + + .labelbackground { + background-color: #202020 !important; + } + .el-checkbox__label { + color: #ffffff !important; + } +} +html.dark .el-progress-bar__innerText { + color: #ffffff !important; +} +html.dark .dimension-content { + .dimension-bottom-right-img { + content: url('@/assets/bzimages/showselect.png'); + } + .dimension-bottom-right-img1 { + content: url('@/assets/bzimages/hiddenselect.png'); + } +} +html.dark .dimension-detail { + .frameselect { + content: url('@/assets/bzimages/select-check.png'); + } +} +html.dark .tspagesize { + border:1px solid #4c4d4f; +} + +.el-button--primary { + // background-color: #409eff !important; +} +html.dark .tspagebtn { + .el-button { + border-color: #8d9095; + } + .el-button.is-disabled, .el-button.is-disabled:focus, .el-button.is-disabled:hover { + border-color: #8d9095; + border: none; + background-color: #262727; + } +} +html.dark .operate-icon9 { + color: #ffffff !important; +} + +html.dark #map { + background: #2a2a2a !important; +} + +html.dark .personalCenter { + background: #2a2a2a !important; +} diff --git a/frontend/src/styles/sidebar.scss b/frontend/src/styles/sidebar.scss new file mode 100644 index 0000000..e7ae077 --- /dev/null +++ b/frontend/src/styles/sidebar.scss @@ -0,0 +1,261 @@ +@use './variables.module' as *; + +svg { + vertical-align: text-bottom !important; +} +#app { + .main-container { + // min-height: 100%; + transition: margin-left 0.28s; + margin-left: $sideBarWidth; + position: relative; + } + + .sidebar-container { + transition: width 0.28s; + width: $sideBarWidth !important; + background-color: $menuBg; + height: calc(100vh - 60px); + padding-top: 15px; + position: absolute; + top: 60px; + bottom: 0; + left: 0; + z-index: 98; + overflow: hidden; + + // reset element-ui css + .horizontal-collapse-transition { + transition: 0s width ease-in-out, 0s padding-left ease-in-out, + 0s padding-right ease-in-out; + } + + .scrollbar-wrapper { + overflow-x: hidden !important; + } + + .el-scrollbar__bar.is-vertical { + right: 0px; + } + + .el-scrollbar { + height: 100%; + } + + &.has-logo { + .el-scrollbar { + height: calc(100% - 50px); + } + } + + .is-horizontal { + display: none; + } + + + .svg-icon { + margin-right: 16px; + } + + .sub-el-icon { + margin-right: 12px; + margin-left: -2px; + } + + .el-menu { + border: none; + height: 100%; + width: 100% !important; + } + + // menu hover + .submenu-title-noDropdown, + .el-sub-menu__title { + &:hover { + color: $menuHover !important; + } + } + + // .is-active > .el-sub-menu__title { + // color: $subMenuActiveText !important; + // } + + & .nest-menu .el-sub-menu > .el-sub-menu__title, + & .el-sub-menu, .el-menu-item { + // min-width: $sideBarWidth !important; + background-color: $subMenuBg !important; + + &:hover { + color: $subMenuHover !important; + } + } + .el-menu-item.is-active { + border-right: 3px solid $subMenuHover; + background: #e8f3ff !important; + } + .el-sub-menu__title{ + &:hover { + background: #ffffff !important; + color: $subMenuHover !important; + } + } + } + + .hideSidebar { + .sidebar-container { + width: 54px !important; + .svg-icon { + margin-right: 0px; + } + } + + .main-container { + margin-left: 54px; + } + + .submenu-title-noDropdown { + padding: 0 !important; + position: relative; + + .el-tooltip { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + + .sub-el-icon { + margin-left: 19px; + } + } + } + + .el-sub-menu { + overflow: hidden; + + & > .el-sub-menu__title { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + + .sub-el-icon { + margin-left: 19px; + } + + .el-sub-menu__icon-arrow { + display: none; + } + } + + } + + .el-menu--collapse { + .el-sub-menu { + & > .el-sub-menu__title { + & > span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; + } + } + } + } + } + + .el-menu--collapse .el-menu .el-sub-menu { + min-width: $sideBarWidth !important; + } + + // mobile responsive + .mobile { + .main-container { + margin-left: 0px; + } + + .sidebar-container { + transition: transform 0.28s; + width: $sideBarWidth !important; + } + + &.hideSidebar { + .sidebar-container { + pointer-events: none; + transition-duration: 0.3s; + transform: translate3d(-$sideBarWidth, 0, 0); + } + } + } + + .withoutAnimation { + .main-container, + .sidebar-container { + transition: none; + } + } +} + +// when menu collapsed +.el-menu--vertical { + & > .el-menu { + .svg-icon { + margin-right: 16px; + } + .sub-el-icon { + margin-right: 12px; + margin-left: -2px; + } + } + + .nest-menu .el-sub-menu > .el-sub-menu__title, + .el-menu-item { + &:hover { + background-color: #ffffff; + // you can use $subMenuHover + color: $menuHover !important; + } + } + + // the scroll bar appears when the subMenu is too long + > .el-menu--popup { + max-height: 100vh; + overflow-y: auto; + + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } + } +} +body[layout="mix"] { + + .horizontal-header{ + .el-menu-item{ + height: 50px!important; + line-height: 50px!important; + } + + .el-sub-menu__title { + background-color: #001529!important; + height: 50px!important; + } + } + .horizontal-header-right>div { + color: #FFF; + } + .svg-icon{ + margin-right: 16px; + } + +} diff --git a/frontend/src/styles/tailwind.scss b/frontend/src/styles/tailwind.scss new file mode 100644 index 0000000..9bb37ee --- /dev/null +++ b/frontend/src/styles/tailwind.scss @@ -0,0 +1,4 @@ + +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/frontend/src/styles/variables.module.css b/frontend/src/styles/variables.module.css new file mode 100644 index 0000000..518a1f9 --- /dev/null +++ b/frontend/src/styles/variables.module.css @@ -0,0 +1,11 @@ +:export { + menuText: #409eff; + menuActiveText: #409eff; + subMenuActiveText: #409eff; + menuBg: #ffffff; + menuHover: #409eff; + subMenuBg: #ffffff; + subMenuHover: #409eff; + sideBarWidth: 210px; +} +/*# sourceMappingURL=variables.module.css.map */ \ No newline at end of file diff --git a/frontend/src/styles/variables.module.css.map b/frontend/src/styles/variables.module.css.map new file mode 100644 index 0000000..b95fb87 --- /dev/null +++ b/frontend/src/styles/variables.module.css.map @@ -0,0 +1,9 @@ +{ + "version": 3, + "mappings": "AAeA,AAAA,OAAO,CAAC;EACN,QAAQ,EAfC,OAAO;EAgBhB,cAAc,EAfC,OAAO;EAgBtB,iBAAiB,EAfC,OAAO;EAgBzB,MAAM,EAdC,OAAO;EAed,SAAS,EAdC,OAAO;EAejB,SAAS,EAbC,OAAO;EAcjB,YAAY,EAbC,OAAO;EAcpB,YAAY,EAZC,KAAK;CAanB", + "sources": [ + "variables.module.scss" + ], + "names": [], + "file": "variables.module.css" +} \ No newline at end of file diff --git a/frontend/src/styles/variables.module.scss b/frontend/src/styles/variables.module.scss new file mode 100644 index 0000000..0376220 --- /dev/null +++ b/frontend/src/styles/variables.module.scss @@ -0,0 +1,25 @@ +// sidebar +$menuText: #505050; +$menuActiveText: #409eff; +$subMenuActiveText: #409eff; + +$menuBg: #ffffff; +$menuHover: #409eff; + +$subMenuBg: #ffffff; +$subMenuHover: #409eff; + +$sideBarWidth: 210px; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + menuText: $menuText; + menuActiveText: $menuActiveText; + subMenuActiveText: $subMenuActiveText; + menuBg: $menuBg; + menuHover: $menuHover; + subMenuBg: $subMenuBg; + subMenuHover: $subMenuHover; + sideBarWidth: $sideBarWidth; +} diff --git a/frontend/src/utils/auth.ts b/frontend/src/utils/auth.ts new file mode 100644 index 0000000..c6adc52 --- /dev/null +++ b/frontend/src/utils/auth.ts @@ -0,0 +1,15 @@ +import Cookies from 'js-cookie'; + +const TokenKey = 'token'; + +export function getToken() { + return Cookies.get(TokenKey); +} + +export function setToken(token: any) { + Cookies.set(TokenKey, token); +} + +export function removeToken() { + return Cookies.remove(TokenKey); +} diff --git a/frontend/src/utils/filter.ts b/frontend/src/utils/filter.ts new file mode 100644 index 0000000..38c28bc --- /dev/null +++ b/frontend/src/utils/filter.ts @@ -0,0 +1,80 @@ +/** + * Show plural label if time is plural number + * @param {number} time + * @param {string} label + * @return {string} + */ +function pluralize(time: number, label: string) { + if (time === 1) { + return time + label; + } + return time + label + 's'; +} + +/** + * @param {number} time + */ +export function timeAgo(time: number) { + const between = Date.now() / 1000 - Number(time); + if (between < 3600) { + return pluralize(~~(between / 60), ' minute'); + } else if (between < 86400) { + return pluralize(~~(between / 3600), ' hour'); + } else { + return pluralize(~~(between / 86400), ' day'); + } +} + +/** + * Number formatting + * like 10000 => 10k + * @param {number} num + * @param {number} digits + */ +export function numberFormatter(num: number, digits: number) { + const si = [ + { value: 1e18, symbol: 'E' }, + { value: 1e15, symbol: 'P' }, + { value: 1e12, symbol: 'T' }, + { value: 1e9, symbol: 'G' }, + { value: 1e6, symbol: 'M' }, + { value: 1e3, symbol: 'k' } + ]; + for (let i = 0; i < si.length; i++) { + if (num >= si[i].value) { + return ( + (num / si[i].value) + .toFixed(digits) + .replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol + ); + } + } + return num.toString(); +} + +/** + * 10000 => "10,000" + * @param {number} num + */ +export function toThousandFilter(num: number) { + return (+num || 0) + .toString() + .replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ',')); +} + +/** + * Upper case first char + * @param {String} string + */ +export function uppercaseFirst(string: string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} + +/** + * 金额转换(分->元) + * 100 => 1 + * @param {number} num + */ +export function moneyFormatter(num: number) { + return '¥' + (isNaN(num) ? 0.0 : parseFloat((num / 100).toFixed(2))); +} diff --git a/frontend/src/utils/i18n.ts b/frontend/src/utils/i18n.ts new file mode 100644 index 0000000..b95552a --- /dev/null +++ b/frontend/src/utils/i18n.ts @@ -0,0 +1,12 @@ +// translate router.meta.title, be used in breadcrumb sidebar tagsview +import i18n from '@/lang/index'; + +export function generateTitle(title: any) { + // 判断是否存在国际化配置,如果没有原生返回 + const hasKey = i18n.global.te('route.' + title); + if (hasKey) { + const translatedTitle = i18n.global.t('route.' + title); + return translatedTitle; + } + return title; +} diff --git a/frontend/src/utils/index.ts b/frontend/src/utils/index.ts new file mode 100644 index 0000000..4607b16 --- /dev/null +++ b/frontend/src/utils/index.ts @@ -0,0 +1,97 @@ +/** + * Check if an element has a class + * @param {HTMLElement} elm + * @param {string} cls + * @returns {boolean} + */ +export function hasClass(ele: HTMLElement, cls: string) { + return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); +} + +/** + * Add class to element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function addClass(ele: HTMLElement, cls: string) { + if (!hasClass(ele, cls)) ele.className += ' ' + cls; +} + +/** + * Remove class from element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function removeClass(ele: HTMLElement, cls: string) { + if (hasClass(ele, cls)) { + const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); + ele.className = ele.className.replace(reg, ' '); + } +} + +export function mix(color1: string, color2: string, weight: number) { + weight = Math.max(Math.min(Number(weight), 1), 0); + const r1 = parseInt(color1.substring(1, 3), 16); + const g1 = parseInt(color1.substring(3, 5), 16); + const b1 = parseInt(color1.substring(5, 7), 16); + const r2 = parseInt(color2.substring(1, 3), 16); + const g2 = parseInt(color2.substring(3, 5), 16); + const b2 = parseInt(color2.substring(5, 7), 16); + const r = Math.round(r1 * (1 - weight) + r2 * weight); + const g = Math.round(g1 * (1 - weight) + g2 * weight); + const b = Math.round(b1 * (1 - weight) + b2 * weight); + const rStr = ('0' + (r || 0).toString(16)).slice(-2); + const gStr = ('0' + (g || 0).toString(16)).slice(-2); + const bStr = ('0' + (b || 0).toString(16)).slice(-2); + return '#' + rStr + gStr + bStr; +} + +export function parseTime(time :any, cFormat :any) { + if (arguments.length === 0) { + return null + } + const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'undefined' || time === null || time === 'null') { + return '' + } else if (typeof time === 'object') { + date = time + } else { + if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { + time = parseInt(time) + } + if ((typeof time === 'number') && (time.toString().length === 10)) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj:any = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result :any, key :any) => { + let value : any = formatObj[key] + if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] } + if (result.length > 0 && value < 10) { + value = '0' + value + } + return value || 0 + }) + return time_str +} +export function downloadFile(obj :any, name :any, suffix :any) { + const url = window.URL.createObjectURL(new Blob([obj])) + const link = document.createElement('a') + link.style.display = 'none' + link.href = url + const fileName = parseTime(new Date(),'') + '-' + name + '.' + suffix + link.setAttribute('download', fileName) + document.body.appendChild(link) + link.click() + document.body.removeChild(link) +} \ No newline at end of file diff --git a/frontend/src/utils/localStorage.ts b/frontend/src/utils/localStorage.ts new file mode 100644 index 0000000..d5628e5 --- /dev/null +++ b/frontend/src/utils/localStorage.ts @@ -0,0 +1,53 @@ +/** + * window.localStorage 浏览器永久缓存 + */ +export const localStorage = { + // 设置永久缓存 + set(key: string, val: any) { + window.localStorage.setItem(key, JSON.stringify(val)); + }, + // 获取永久缓存 + get(key: string) { + const json: any = window.localStorage.getItem(key); + return JSON.parse(json); + }, + // 移除永久缓存 + remove(key: string) { + window.localStorage.removeItem(key); + }, + // 移除全部永久缓存 + clear() { + window.localStorage.clear(); + } +}; + +// 侧边栏状态(显示/隐藏) +const SidebarStatusKey = 'sidebarStatus'; +export function getSidebarStatus() { + return localStorage.get(SidebarStatusKey); +} + +export function setSidebarStatus(sidebarStatus: string) { + localStorage.set(SidebarStatusKey, sidebarStatus); +} +// 布局大小 +const SizeKey = 'size'; + +export function getSize() { + return localStorage.get(SizeKey); +} + +export function setSize(size: string) { + localStorage.set(SizeKey, size); +} + +// 语言 +const LanguageKey = 'language'; + +export function getLanguage() { + return localStorage.get(LanguageKey); +} + +export function setLanguage(language: string) { + localStorage.set(LanguageKey, language); +} diff --git a/frontend/src/utils/request.ts b/frontend/src/utils/request.ts new file mode 100644 index 0000000..5ce11a5 --- /dev/null +++ b/frontend/src/utils/request.ts @@ -0,0 +1,127 @@ +import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; +import { ref } from 'vue'; +import { getToken, setToken, removeToken } from '@/utils/auth'; +import { ElMessage, ElMessageBox } from 'element-plus'; +import { useUserStoreHook } from '@/store/modules/user'; +import { loginRefresh } from '@/api/auth'; +import Cookies from 'js-cookie'; + +// 创建 axios 实例 +const service = axios.create({ + baseURL: import.meta.env.MODE == 'development' ? import.meta.env.VITE_APP_BASE_API : window.webConfig.VITE_APP_BASE_API, + timeout: 600000, + headers: { 'Content-Type': 'application/json;charset=utf-8' } +}); + +const Token = ref(getToken() || ''); +let refreshPromise: Promise | null = null; + +function refreshToken() { + if (refreshPromise) return refreshPromise; + const refresh = Cookies.get('refresh_token'); + refreshPromise = loginRefresh({ refresh }) + .then((response: any) => { + const access = response.access; + Token.value = access; + setToken(access); + const user = useUserStoreHook(); + user.Token = access; + return access; + }) + .finally(() => { + refreshPromise = null; + }); + return refreshPromise; +} +// 请求拦截器 +service.interceptors.request.use( + (config: any) => { + if (!config.headers) { + throw new Error( + `Expected 'config' and 'config.headers' not to be undefined` + ); + } + const token = getToken(); + if (token) config.headers.Authorization = 'Bearer ' + token; + return config; + }, + (error: any) => { + return Promise.reject(error); + } +); + +// 响应拦截器 +service.interceptors.response.use( + (response: any) => { + const { status, msg } = response; + if (response.data instanceof Blob || response.data instanceof ArrayBuffer) { + return response.data; + } + if (status === 200 || status === 201) { + if (response.data.code == 401) { + ElMessage({ + message: '用户名或密码错误,请重试!', + type: 'error' + }); + return; + }else if(response.data.code == 1){ + ElMessage({ + message: response.data.error, + type: 'error' + }); + return; + } + return response.data; + } else { + ElMessage({ + message: msg || '系统出错', + type: 'error' + }); + return Promise.reject(new Error(msg || 'Error')); + } + }, + (error: any) => { + console.log(error); + const status = error?.response?.status; + const msg = error?.response?.data?.msg || error?.response?.data?.error || error?.message; + const config = error?.config; + + if (status === 401 && config && !config._retry) { + config._retry = true; + return refreshToken() + .then((access: string) => { + config.headers = config.headers || {}; + config.headers.Authorization = 'Bearer ' + access; + return service(config); + }) + .catch((refreshError: any) => { + removeToken(); + localStorage.clear(); + window.location.href = '/'; + return Promise.reject(refreshError); + }); + } + + if (status === 403) { + ElMessageBox.confirm('当前页面已失效,请重新登录', '提示', { + confirmButtonText: 'OK', + type: 'warning' + }).then(() => { + localStorage.clear(); + window.location.href = '/'; + }); + return Promise.reject(error.message); + } + + if (error?.response?.data) { + ElMessage({ + message: msg || '当前页面已失效', + type: 'error' + }); + } + return Promise.reject(error.message); + } +); + +// 导出 axios 实例 +export default service; diff --git a/frontend/src/utils/resize.ts b/frontend/src/utils/resize.ts new file mode 100644 index 0000000..343bb0f --- /dev/null +++ b/frontend/src/utils/resize.ts @@ -0,0 +1,73 @@ +import { ref } from 'vue'; +export default function () { + const chart = ref(); + const sidebarElm = ref(); + + const chartResizeHandler = () => { + if (chart.value) { + chart.value.resize(); + } + }; + + const sidebarResizeHandler = (e: TransitionEvent) => { + if (e.propertyName === 'width') { + chartResizeHandler(); + } + }; + + const initResizeEvent = () => { + window.addEventListener('resize', chartResizeHandler, {passive:true}); + }; + + const destroyResizeEvent = () => { + window.removeEventListener('resize', chartResizeHandler); + }; + + const initSidebarResizeEvent = () => { + sidebarElm.value = document.getElementsByClassName('sidebar-container')[0]; + if (sidebarElm.value) { + sidebarElm.value.addEventListener( + 'transitionend', + sidebarResizeHandler as EventListener, + {passive:true} + ); + } + }; + + const destroySidebarResizeEvent = () => { + if (sidebarElm.value) { + sidebarElm.value.removeEventListener( + 'transitionend', + sidebarResizeHandler as EventListener + ); + } + }; + + const mounted = () => { + initResizeEvent(); + initSidebarResizeEvent(); + }; + + const beforeDestroy = () => { + destroyResizeEvent(); + destroySidebarResizeEvent(); + }; + + const activated = () => { + initResizeEvent(); + initSidebarResizeEvent(); + }; + + const deactivated = () => { + destroyResizeEvent(); + destroySidebarResizeEvent(); + }; + + return { + chart, + mounted, + beforeDestroy, + activated, + deactivated + }; +} diff --git a/frontend/src/utils/rsaEncrypt.ts b/frontend/src/utils/rsaEncrypt.ts new file mode 100644 index 0000000..00590bb --- /dev/null +++ b/frontend/src/utils/rsaEncrypt.ts @@ -0,0 +1,29 @@ +import JSEncrypt from 'jsencrypt/bin/jsencrypt.min' +// 密钥对生成 http://web.chacuo.net/netrsakeypair + +const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' + + '2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ==' + +const privateKey = 'MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8\n' + + 'mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9p\n' + + 'B6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue\n' + + '/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZ\n' + + 'UBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6\n' + + 'vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha\n' + + '4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3\n' + + 'tTbklZkD2A==' + +// 加密 +export function encrypt(txt:string) { + const encryptor = new JSEncrypt() + encryptor.setPublicKey(publicKey) // 设置公钥 + return encryptor.encrypt(txt) // 对需要加密的数据进行加密 +} + +// 解密 +export function decrypt(txt:string) { + const encryptor = new JSEncrypt() + encryptor.setPrivateKey(privateKey) + return encryptor.decrypt(txt) +} + diff --git a/frontend/src/utils/scroll-to.ts b/frontend/src/utils/scroll-to.ts new file mode 100644 index 0000000..591e3ec --- /dev/null +++ b/frontend/src/utils/scroll-to.ts @@ -0,0 +1,69 @@ +const easeInOutQuad = (t: number, b: number, c: number, d: number) => { + t /= d / 2; + if (t < 1) { + return (c / 2) * t * t + b; + } + t--; + return (-c / 2) * (t * (t - 2) - 1) + b; +}; + +// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts +const requestAnimFrame = (function () { + return ( + window.requestAnimationFrame || + (window as any).webkitRequestAnimationFrame || + (window as any).mozRequestAnimationFrame || + function (callback) { + window.setTimeout(callback, 1000 / 60); + } + ); +})(); + +/** + * Because it's so fucking difficult to detect the scrolling element, just move them all + * @param {number} amount + */ +const move = (amount: number) => { + document.documentElement.scrollTop = amount; + (document.body.parentNode as HTMLElement).scrollTop = amount; + document.body.scrollTop = amount; +}; + +const position = () => { + return ( + document.documentElement.scrollTop || + (document.body.parentNode as HTMLElement).scrollTop || + document.body.scrollTop + ); +}; + +/** + * @param {number} to + * @param {number} duration + * @param {Function} callback + */ +export const scrollTo = (to: number, duration: number, callback?: any) => { + const start = position(); + const change = to - start; + const increment = 20; + let currentTime = 0; + duration = typeof duration === 'undefined' ? 500 : duration; + const animateScroll = function () { + // increment the time + currentTime += increment; + // find the value with the quadratic in-out easing function + const val = easeInOutQuad(currentTime, start, change, duration); + // move the document.body + move(val); + // do the animation unless its over + if (currentTime < duration) { + requestAnimFrame(animateScroll); + } else { + if (callback && typeof callback === 'function') { + // the animation is done so lets callback + callback(); + } + } + }; + animateScroll(); +}; diff --git a/frontend/src/utils/sessionStorage.ts b/frontend/src/utils/sessionStorage.ts new file mode 100644 index 0000000..fae9a21 --- /dev/null +++ b/frontend/src/utils/sessionStorage.ts @@ -0,0 +1,22 @@ +/** + * window.sessionStorage 浏览器临时缓存 + */ +export const sessionStorage = { + // 设置临时缓存 + set(key: string, val: any) { + window.sessionStorage.setItem(key, JSON.stringify(val)); + }, + // 获取临时缓存 + get(key: string) { + const json: any = window.sessionStorage.getItem(key); + return JSON.parse(json); + }, + // 移除临时缓存 + remove(key: string) { + window.sessionStorage.removeItem(key); + }, + // 移除全部临时缓存 + clear() { + window.sessionStorage.clear(); + } +}; diff --git a/frontend/src/utils/sm4.ts b/frontend/src/utils/sm4.ts new file mode 100644 index 0000000..77a82f9 --- /dev/null +++ b/frontend/src/utils/sm4.ts @@ -0,0 +1,22 @@ + +// import { sm4 } from 'sm-crypto' +import { sm4 } from 'gm-crypt' +const publicKey = 'a8b502da70405867' +const SM4Data = { + key: publicKey, + mode:"ecb", + cipherType: 'base64', +} + +// 加密 +export function encrypt(txt:string) { + const sm4Util = new sm4(SM4Data) + return sm4Util.encrypt(txt, SM4Data.key) +} + +// // 解密 +export function decrypt(txt:string) { + const sm4Util = new sm4(SM4Data) + return sm4Util.decrypt(txt, SM4Data.key); +} + diff --git a/frontend/src/utils/validate.ts b/frontend/src/utils/validate.ts new file mode 100644 index 0000000..bc8ccee --- /dev/null +++ b/frontend/src/utils/validate.ts @@ -0,0 +1,12 @@ +/** + * Created by PanJiaChen on 16/11/18. + */ + +/** + * @param {string} path + * @returns {Boolean} + */ +export function isExternal(path: string) { + const isExternal = /^(https?:|http?:|mailto:|tel:)/.test(path); + return isExternal; +} diff --git a/frontend/src/views/AlgorithmsAndModels/define/index.vue b/frontend/src/views/AlgorithmsAndModels/define/index.vue new file mode 100644 index 0000000..2d2c0cc --- /dev/null +++ b/frontend/src/views/AlgorithmsAndModels/define/index.vue @@ -0,0 +1,1687 @@ + + + + + diff --git a/frontend/src/views/AlgorithmsAndModels/maintenance/index.vue b/frontend/src/views/AlgorithmsAndModels/maintenance/index.vue new file mode 100644 index 0000000..68d685c --- /dev/null +++ b/frontend/src/views/AlgorithmsAndModels/maintenance/index.vue @@ -0,0 +1,971 @@ + + + + + diff --git a/frontend/src/views/AlgorithmsAndModels/modelbase/index.vue b/frontend/src/views/AlgorithmsAndModels/modelbase/index.vue new file mode 100644 index 0000000..f7eb81d --- /dev/null +++ b/frontend/src/views/AlgorithmsAndModels/modelbase/index.vue @@ -0,0 +1,1650 @@ + + + + + diff --git a/frontend/src/views/dashboard/components/Chart/BarChart.vue b/frontend/src/views/dashboard/components/Chart/BarChart.vue new file mode 100644 index 0000000..05be0c4 --- /dev/null +++ b/frontend/src/views/dashboard/components/Chart/BarChart.vue @@ -0,0 +1,174 @@ + + + + diff --git a/frontend/src/views/dashboard/components/Chart/FunnelChart.vue b/frontend/src/views/dashboard/components/Chart/FunnelChart.vue new file mode 100644 index 0000000..44206d2 --- /dev/null +++ b/frontend/src/views/dashboard/components/Chart/FunnelChart.vue @@ -0,0 +1,131 @@ + + + + + + diff --git a/frontend/src/views/dashboard/components/Chart/PieChart.vue b/frontend/src/views/dashboard/components/Chart/PieChart.vue new file mode 100644 index 0000000..2ad159f --- /dev/null +++ b/frontend/src/views/dashboard/components/Chart/PieChart.vue @@ -0,0 +1,113 @@ + + + + + + diff --git a/frontend/src/views/dashboard/components/Chart/RadarChart.vue b/frontend/src/views/dashboard/components/Chart/RadarChart.vue new file mode 100644 index 0000000..998d62c --- /dev/null +++ b/frontend/src/views/dashboard/components/Chart/RadarChart.vue @@ -0,0 +1,132 @@ + + + + + + diff --git a/frontend/src/views/dashboard/components/Project/index.vue b/frontend/src/views/dashboard/components/Project/index.vue new file mode 100644 index 0000000..63e471f --- /dev/null +++ b/frontend/src/views/dashboard/components/Project/index.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/frontend/src/views/dashboard/components/Team/index.vue b/frontend/src/views/dashboard/components/Team/index.vue new file mode 100644 index 0000000..2146da1 --- /dev/null +++ b/frontend/src/views/dashboard/components/Team/index.vue @@ -0,0 +1,236 @@ + + + + + + diff --git a/frontend/src/views/dashboard/index.vue b/frontend/src/views/dashboard/index.vue new file mode 100644 index 0000000..ec56849 --- /dev/null +++ b/frontend/src/views/dashboard/index.vue @@ -0,0 +1,495 @@ + + + + + diff --git a/frontend/src/views/dataannotations/annotationtask/index.vue b/frontend/src/views/dataannotations/annotationtask/index.vue new file mode 100644 index 0000000..aaaac58 --- /dev/null +++ b/frontend/src/views/dataannotations/annotationtask/index.vue @@ -0,0 +1,1550 @@ + + + + + diff --git a/frontend/src/views/dataannotations/annotationteam/index.vue b/frontend/src/views/dataannotations/annotationteam/index.vue new file mode 100644 index 0000000..43f4a58 --- /dev/null +++ b/frontend/src/views/dataannotations/annotationteam/index.vue @@ -0,0 +1,424 @@ + + + + + diff --git a/frontend/src/views/dataset/annotation.vue b/frontend/src/views/dataset/annotation.vue new file mode 100644 index 0000000..8946f56 --- /dev/null +++ b/frontend/src/views/dataset/annotation.vue @@ -0,0 +1,574 @@ + + + + + diff --git a/frontend/src/views/dataset/index.vue b/frontend/src/views/dataset/index.vue new file mode 100644 index 0000000..54a8e9e --- /dev/null +++ b/frontend/src/views/dataset/index.vue @@ -0,0 +1,1457 @@ + + + + + diff --git a/frontend/src/views/error-page/401.vue b/frontend/src/views/error-page/401.vue new file mode 100644 index 0000000..59b6f1a --- /dev/null +++ b/frontend/src/views/error-page/401.vue @@ -0,0 +1,114 @@ + + + + + + + + diff --git a/frontend/src/views/error-page/404.vue b/frontend/src/views/error-page/404.vue new file mode 100644 index 0000000..8559404 --- /dev/null +++ b/frontend/src/views/error-page/404.vue @@ -0,0 +1,280 @@ + + + + + + + + diff --git a/frontend/src/views/login/index.vue b/frontend/src/views/login/index.vue new file mode 100644 index 0000000..cb0c346 --- /dev/null +++ b/frontend/src/views/login/index.vue @@ -0,0 +1,486 @@ + + + + + + + diff --git a/frontend/src/views/modeltraining/algorithm.vue b/frontend/src/views/modeltraining/algorithm.vue new file mode 100644 index 0000000..fcaeb3e --- /dev/null +++ b/frontend/src/views/modeltraining/algorithm.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/frontend/src/views/modeltraining/callparameters.vue b/frontend/src/views/modeltraining/callparameters.vue new file mode 100644 index 0000000..e992a99 --- /dev/null +++ b/frontend/src/views/modeltraining/callparameters.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/frontend/src/views/modeltraining/index.vue b/frontend/src/views/modeltraining/index.vue new file mode 100644 index 0000000..0fe3ebb --- /dev/null +++ b/frontend/src/views/modeltraining/index.vue @@ -0,0 +1,1062 @@ + + + + + + diff --git a/frontend/src/views/modeltraining/modelarchiving.vue b/frontend/src/views/modeltraining/modelarchiving.vue new file mode 100644 index 0000000..9a4206e --- /dev/null +++ b/frontend/src/views/modeltraining/modelarchiving.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/frontend/src/views/modeltraining/trainInformation.vue b/frontend/src/views/modeltraining/trainInformation.vue new file mode 100644 index 0000000..7a6f98d --- /dev/null +++ b/frontend/src/views/modeltraining/trainInformation.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/frontend/src/views/modeltraining/trainestimate.vue b/frontend/src/views/modeltraining/trainestimate.vue new file mode 100644 index 0000000..04b434f --- /dev/null +++ b/frontend/src/views/modeltraining/trainestimate.vue @@ -0,0 +1,146 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/views/redirect/index.vue b/frontend/src/views/redirect/index.vue new file mode 100644 index 0000000..47cad96 --- /dev/null +++ b/frontend/src/views/redirect/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/frontend/src/views/smartterminal/index.vue b/frontend/src/views/smartterminal/index.vue new file mode 100644 index 0000000..c5b4fe9 --- /dev/null +++ b/frontend/src/views/smartterminal/index.vue @@ -0,0 +1,759 @@ + + + + + + + diff --git a/frontend/src/views/system/user/index.vue b/frontend/src/views/system/user/index.vue new file mode 100644 index 0000000..6693a99 --- /dev/null +++ b/frontend/src/views/system/user/index.vue @@ -0,0 +1,470 @@ + + + + + + + diff --git a/frontend/src/views/system/user/personalCenter.vue b/frontend/src/views/system/user/personalCenter.vue new file mode 100644 index 0000000..55a0391 --- /dev/null +++ b/frontend/src/views/system/user/personalCenter.vue @@ -0,0 +1,124 @@ + + + + + + + diff --git a/frontend/src/views/tempfile/index.vue b/frontend/src/views/tempfile/index.vue new file mode 100644 index 0000000..f9b524e --- /dev/null +++ b/frontend/src/views/tempfile/index.vue @@ -0,0 +1,549 @@ + + + + +

S[lĆ +UF1ֵ]\ -1~7iz"́>u; [C15YEH@w +0Ġg=a`a J%Bac=Ǫ +ѨV!!~%^ +2ڦ t`>,xE¶0i=*)Cߧ})c$HP# 3vx|Ch}86eD)Y0 Ht14_4Q ?=Ѩ;ǙY +HeQБid]!\V0q,Է>7f*9NAtM-J 0Y +:бLPl&SXbD̥ZJBaC7P"UjcGS3t?B{ 6^&/[Wr#I>tU]# {yٶj4owqY9`9ab3 ZhÌpN +|. k3!Ϛ,0M'+Ѱ`NM{s04%M*p7wn™S +7.*-._jP5'7_ּ1gċuSny`y&DŽ}6aRhIh,[Z06NJezNNVww4uE-3q%:҇m g(*WSgI0AW'D߆i?KNI21\h,~:cLBb !T[Nx@\6W׌ x 5+z.:Fu8<\2m⊥; +"'jH$­9 T@ -\^|- 0.aaRi 1v7o9`0}bhцj¾T{PI=ixyIY=AZ8 ZUR6 ZW(DY'A۝3Y~O$I b)2-4gȵmxh>}l) ^pX0^@[1JX0`oКQ$H噐7t;mϖgaaaܢ + E-H"4 +-@Ck=8a'(iJgUHО FKgsGk ݲsm5MF=B/suEŋ3KFݞɁcD@]/,{0ik(p\j,<=XVIbc:ERBtax((/!tG@6Pkycg m[Xpھ- 04( + 풤4h4eՠm]SLYlQ!3Gwo`of#uDiΌr0_`rCjL#1rԈu=MFyC(< %Fy ХySƫjʸL ݠ Mz)tj[bBCРJ\/m_fR#JܞbYl'.K=`a~ +ki96Ё +)\n}Iq̓X`I9fHtzEgB\ "V 0-I#a o8Ag 5;mɖga`a`BC)dbҠzS4 V+t4H5-eĉJjV9Vp^XTZ;;>hQhK>W1Yn8ʼn8[貰xҲFSgRC⃃%ƈ=cJňB3P4b (4[ELUH +i F RD>AqY|'d1Z7a1A7#A$m<56c]I6ηBCz:eqާm]_Mg[͛WSSaF%B5m24PO +MqT~PIx7Vz1W3 kۏl?".hįtӭ +gLBFֶq$iOMW4N{)7qnQb4*e4<+H&5ԶHU@ga[ǒK3Sψ CG=r&h74-P39/,v^omlyfQ & m7&&U4XXrz,0;gq8;ALL=Lt9MJه"u1%OGH'5F+.҉{}^A 4D Y +=3gt:+=T6aܼ9DkvP`!dFHQcEukӘX0)o˜mT~O.xV^:'- +>iд.\H -ك􁁁7'4,0*C#d@O[^y[̔SGaF,@3F[cqa29e# -Z\)~NʲYa^&z/FϹ`Vh)ðeQAY*W@)&z?jc$[ܟZDP^uݘuvv*04T{Kʇƈl-VAԇFo fbaI7bu!yD|4y+/A +THQe.XyM&5_חuf쌞}3= T{f9ԙyn!WKkȽX|M_=H<3 o߾Ǐ߿NӧO7.''K.9sfUUUq1UbhKgggCCCkk2qutCۦj qMLWDԜU"Q?ܾܼ Rg׵utWa8]tE.zhmm@Y\\ı͋ /s"ڿH |ķQURn;RQjW2@]C>kbqYϵBI[QӪS#U=:2U(mdT_6x]1|O`3'jQEpa-~R\ }:>|n w"TA茞}|gkϟN$ m[X83%x_zĮM7ݔCa_駟ϡ8]veo`0=R0qL4#)mie̛3?D_'DPY6ڟ|Xd2<{|:Qh:$+B7/C-RQ@:Np'pSDL/pyU(艮*篨0dZH4:)UzӰX7>q/!0}|G}jVaZx@Q-dX_14_t>d1uN )ě ;hfi5H$­7 tO6m7bB4ihy?[F?g3SZZ~V~TL4x@NvԠBWeh?(*<7Uɞ}=;JkV4'aCCa='Z]ƼX7ϱN@?펝C5 'p>U"c\@gY -x\fE7UYTjRGGz!#O6 +md`gXk9O3K8m)%A'kyN tٟ M5h<4L,}m{b3Ȝ={lf'pv?g>ꨘhMVh4Zg&)M@~~(@3/^a ++v1P COw糧nmmCLu4yS /UO ]]֩p:9Ij~Q[h4,ymΑ=uT܀hb4jТ|OĜox&q9 +d&@Yu.)000`MyFcq+Ch^tN:ܺ|+wQ2 ;Z]AB +guRUB?0E:,Bxp* +~ŗ_J}F Z#8tol?"`zSu:tQLjj }9s F3 rqaVlAMʷfqA%H'3)>ʸJ8<NMwv;xgN }=}=b0S?6%[nۿ[_UUU)?)J8[_~T^Xf7+4A4޽w'Ay7RGLA ൣQOtie^dJePxso"7b- 9OʜTq <G6?`T'߁JtQi.>T>gq +:¸|d03'Pq2̂\ԣ1fa޽RhHg8dn=6bfnb)1%]_HoR0!C_dh +@蟔g$DQuLki|(C[%i4477K- o}[6&3g -ꩧU<hXfdWAbԪ2}fbr VTaڳ_aLN%SS\Ť}-u}%%Ŋ(˃-+ X749sЦMR2*°PPT:O'`J˗ꖡũ gINpLxs&:$0ra }GxΟIwqUDZv~đjsO0s}_Eq̘Ra 9~:_Psh x@'΢\`a<h8V~_7>?Vu]VJyL4榦&Fs3Y13EwV?S:c'C?ONUR9eji'Vc$zKbRF!Uo1 g}~ZQ#F{p rD#_d99#lΩ7b4$LІ#)޽0Sp1J&mzƔ +.hcгV\gnb8+f8g- O}S֭?n\Z9gΜ~:}2 Z:xO'w&i#َT^lЊh-J)#&h ̭{B՞EߺBZmPxCG/ +Us*ȚNjED=xo/ + o&*][ųPnġ/}TFN)8qRSa+˃U5 I <*(@Ù^i^1 Z <q$p ңQ~o-t7ESlyfW׿.7nܾ}rrrR-[fgm{{;ܦ[&`a2& 5hmܸ1qw4V&ह5-gۧc]qsVu3y t<)pbSlqS8H͛Zqսm(? .cYjhGZU֤p:x)]<$/ +nY\|ՊiD^b1 +hLJ R£m='q9dD/ڂtT|ɽHyb6g|1e_7+I +`MfP8|ˌܧm{Vߺê8lyf@O>S!&9O~Һ~fL64d Jt +nزYӒ&M8QOL6-'9VH%d :‹kDyH#5*eU,<3[K2DƢ+znBhv? YqA#!3R3|ۧ_qleh8<28(\V D:lp7?3c&#eǟ3&YjQWxL4X.E$SM՚=Ђ⊥j_(@+f*A ^\ E ARkˋ(ڃ.Ɉ֬Z#-ë*C@5A2>𝇓wyEP&4@+)Dn^Y,GTd%i|sa :Y.Ȗg={m~?/^r+W|嗥uuuqXhT. >o"Y 5`4,/!N@  u4^؟X?ź + ++ K*7V%#u}UQfM1"@d,b lRFFph pQ-^cU$Ÿ}ȩ˞'|Z.⃞htY[J/w۟C{ GÔA3"ٷuыܪR8ę +kubȩE-(5j + t^_W FIdyfWBα:xƦdϤgLy A3dvŊ:[}OJ+'Mg{f&qj+dbYKHZ3Y0u ]PTA?,aC[g@@H[ִun9)}詔"P>{3|{B8%Y@8ā"%cbBY}rXC9j' >͝t;KϣBIq4OJ2~ >XVCB\i qXa*t`y>HSS[&Sزe˪U+tۃx|Ai%\rL4d }555%a~+DRICt6a(~fn{Z+J#Uw\M4gCϕ 1݈WPF/!to kxQA8=\[<źJϢrp>hmc7ZsR`FJf'4-#n B p43L?u8m-s zt}innC0W׿uqs&44]>x>;g&{B+/ +-T>7?Yȸ|by m]o}kmmm&'Ť&hjj 9qF6i%4|KJJRL(*S™nR߿.6ySsA/<7/mftMVW Dg{oN&h!-|rqXg#곾1WAIhV>NRz1 ./jD{8DJoғ!iZ mh~⍇1D֤wR6?$Cӌ"ߦ`Qs7k3W$s=̙3[Iz?RUJS~'?0YZ[[ŕ:p8+S3_@G zbGofrC28k2'05&s%F8>x =#$vְ@qM|}}E8 ѵzDl=2>sPJ}J"En_E2ItQv?YA<= В_c!&~sQ<8G9vY-pŸO4h@9#KwoyACHhӒs0P}G9NAlu?`rxRaV涷/|ź׿e]~L4d-b&Y +hhVTvo@6R~m;N^i\*>;<}/+&&BQi-nZ+@HH!8}Q"Wj1x#IGFTKJTEMyB37S8#Mhe*%.kG' +/kˊw /#*g0( iUӒpcq~"hд^u~&V>DRSbF 1WTQH+&tޤm`ˉhԢnU'˳aV;g3dwߓO>)I~ǫXflZ˖-V&TnV&Le,eB':FQq +HJv=]h?MMߪ6#Gt;< + '91IfżpraPQsKJ'%1ξuO(y Iboh,i gĚN:)oWVP7H&h:SUeH'gSeeLQLVz6̪K cZ؇w(RutRitFRccg86a6F[;-u>l[&s{~ii% Ќg0YԹFU'F dSw$`I첢 +z CKOrc~/!ߨkiȩ=srCM7lTPeA}Rk9ν;kVMLN<⼓S];:較o>KQVQG.ex}+q^zRM,i9Ot[ +!U%8Fi.*m*Ѻ-Ϧr]$~CwƤg 0z0iLzaaB&b!AP:4a|Hbtl!՗gcjh)p'C!TcݙU鉺'܊ pW\uP W+vt-OcPl9YruDЇJ;\5Zgҝ1[#qљ4󳭤[H2ۊ#-eik1^^z4eF{qYd.dy`jgjuc}o@><3L`~N|v& `a +NVzhSbܛggbSߎv]x+r̶k]y<# i ;b-KlEԳsO畋&13$ӶI+4 k'yYrMT153h|SLP^/]x#@'@>~)ݷ>7כ1oh8Z2WΥ|%R>Gm_s"2oʿ4 ncw}=w*eqxg6I& +FHKFIi34D,>ĉ "wÛauIYY,Xua/я~~zi"/H޽{j~L4Ì-Z[[V迼j\&P%1V[-,@nQ}UTndk8scL!E͝ۺ8Rtm)yվ2)Y[D܏ir@mVP_1u /?Cmu/OmXpVRZ,M˱"~B2!#N=h4bcгc#$^WZo&U'[lYju}[[ۄ nm1ZLv4Ì]Zg| .x3>ىsIа.?mZ J E.'x#/Zm z0KK#zrEӯSy?zj#EZ_tKt`Ŏ I˧*}vng#-ܻCP޸]5i;C՗-}Ʋ'~CG}<\`PRSlɩ`N`1+r6_|q.w~2??_wg&k`a:(h?6}xDu7^S*!LwIIf7.^Z# C$ɇ:xߤPKM=@ea56T!34#gՑg- +#!\ay2SCںrZ8܋bzrCdi;<ӱIz@:QL6$ LFig噐F&0c`=[flWW<Ȃ \3<#={͛]Xf&f^l2ZOę3gTtЙhn5ߐHX:ϋ*?0b]WCb&,1˰Ϛ|jkB +k:gOP[/{]RV]Io +Mئ A u$c}Y;rOG?jZN@Rg.00LN>}WZg?[h˝׷H+L`,@3 ZillTp [3?CXU%Wf͝!$%r D#9$?Z;8aqFiВ\PXD)~"J\?^Bg7 ύYݢ0^Z1v#S[0(RʧH#jGc.VrbQ+ -_g=/cy6Lm- TUU K+7|s[<-V>.d ,@3 >YV\VLD;]!AHvڀWN5NJφ=_ "e D+Rfp1VGÚY|"bVZl1A/j9Ot͝Y[ku3&ٟ;О5FlXOđNdC046<Z?sF|Wۧ?[ |hZ΄/g|2ghڊ\aCZD&o/_垙ha +]__VBC=xaG^媒J5BJ1Nz4.+J=:1=iދYw6tlF,,e5Na~FW 媭='W2A//L +`k%S+^!%{ V zwG@! +|զd1XIЅ=#MMM)h_|#L@}޼y555aL{yg2N\@ +߫- F B;U3Bly]Z5SB>5HAIuUhV>!;RەxttEha!wr\470L~_|ߕVknv+yMݻ/B7{f 'V)&Dc!KJmNY7yHd󇞢_߁Hsf:GRH4bҏv0ms6DXVᙼ\LBgHnԂtmgDShV >% +@c<cFNݱCD Z>-u+뒑|'ToWX_Z]*~>n_Nqj䟐\ +]vʝ" d۷OڵkH+KJJnݚ>ha܆9 +aj\C\D{RȬ*,2AiIDm"3/Ut EX S1FTi:1Wdy'ZL Yye @ӥaJBGQ/<7/[Fݹl3U_B`sR;u-R5Bx#זJO֍l(~6,?cA pKjnM]N&5qڠpw|}']gM9PBaywΝk k|3);ؾ}oя~>haF᫣2ZǁЬ#v> A*zzn"1 +!]q͸U?zX0-`ܢƞυ`1VzRE3WCn!^)j3', +m΁זÑ+|q} +8h]+o/-X~>G Vko< ++IJ 87xm9 c78S[< n'@<[Mn.Ǡg 0L +u]/nxSS>X\L40 -`7n[U2`"&~II ^14*:g-DK"_]~hA%fL)->J/V=:G + )+H{XhoOhlhTa!'0VJ{ƅ^ҝ9lԞhJD"nhM֞u-j'nϿD䞣S:yt𔎣7,*i1L3dkHО Euо*?ޣaԝ fD/<ŢhihN2,VhRl'*0h] 7t80c'|V RiӦo}[qƽk͈0L@;~ĕ:pXm މ޽81rodlvBhu$Ԫթ |'r 3c7.09nQUiU^i-ּوbY)3<?ߵnU +O!‹k=6s:Ui%8\ּO S{Z=L8e$陨-\+q8¥OX!P.|p*:<çF$&E z +gkɣ;;h>vnhNH %">d'OjL.3m0 㒓'O^s5gϞ;߹[SM7ݴ~iu]vRXf& rZ}]=n(N@,эku }N]nNzͷbL @H5#epRQ{ۻ0T DEtŵ^ZE(/jO䵇ݧ@+vLPԞ4={|ִun[zR3oܙdV#o̭{>3&,7 +˳XQga|¾}nžC";W۷[={e1Xf%N-zgQ1.)y |ag1־$qU͘єk5hJV|Z+h*=b> "') +ДN3hÌ-V y $@ùehN+5ژ0{~iۇrt=8]ۿ=zиq6mTY0I k&}JɌ)7^z[>C0 = F2ClA/\59p'<ݥ EmHG53Mf˪YݾcsCWe}]z:60"hU;\H JoT"!l6}M[hX5e\i.<Ս苇μk߱8mɖga;s7?~ѼokɁ5===>7qw:b&aa5Zݴ0)&}|lk*TP봥R\-[uz2x ỽ`V]C/t 6K2RfժTͳR>7#`>\;qF53F2_[V'5~򙷣ighm|B7oj:aQ9|'O ٳgov 7<ꎎ6XfF%MMM87&5pV%M0~KJJ2O{QbA'|Pƕ(XZx?8pUUU%VkE,m.=I8*Gc3.z4J130gAU Elh0L61v|:Jż='WcD= s>ُ#.MUtVDC.y3;|T0طoߊ+FՠGDSSӸq0b*L=$JvϜ9?ȋ2tHmSjO{ﱁ\>WTkJ%HI*ˍzqYKx) V4/Hl8J0qn+-(\^PX9;VUEpPƠg 1 -a<3 7>|]wf:'mv})<$&+aa8U&L +sItRL:lN;7N\P&1WgWJsGu#ѬS;>h*H(JrI؟ ԠK +$2?wh>o#1Ǻ@aО5<;JkܾKUvVr^йoVxssS 4Ah3=ц޷Y85z 4apAa;lH@;u]lhat-e˖Y+jNʊnkeBBYo~2*(ȦZK + }tW|T<4mE1P'̂ߖS*p$Lt E6wvl VhÔW^:gqYѫ<τ7tSt6 @ z)rCySYV%@!//Ʌ@`Sp!qj+&by a2#Gۿ\֤yƶL>n۱D!Ì + hRSShUFbS'$AB{Ɖh?w++ #}=O1cƔ +cDN `=:qBJ#.R⩸ЋʽOHg|W^:Gm DChVyW.@YݾPmYQFĚ 1zNY"q|˳!ĐwÌt_?%%Cq,y,<3 ќ={W^ٵk\xӧO_p999+**k*Gd,@3 蟍D]CzA+@Y޹zcAaY1 +><2RjJԢMtw \V>54wINVhT.*.*fC4oxwD5{hYM^bH)B#-TbAIH]Yv.w G#btGOzr,tRK& ;vv{silyfa+,@3 NMzƊdbQtvz eyt z4J +PP(3o]^ڑj'I:[Bяmڶ'(UH ­Eh͂Kbj8Itl)c?P6EM-*UUϷPAs)蝳1ZV0>*[{Ni$IN0m[zG#6tahm񤣑f\\- 0 ֆ&VF,djŊFpj@ `rTMhTtMų*:?|c!cD؊'&F*dqDfBm+=JRmI=1ht$>(:q|mt|iIRMϕvDǷ!uD+Rk F;3 rE0^4q΄W%0 +<.ܦ>aaT40b۔;]7ؚe d@ⲼL__GL#gڨIRHtڣ4zz-ւN-=^k޽Tm<[?e1cԉ#;87*8iU ++U\}ׇpdZ5­Iu# uXhhԢCHDلqp;orUY`֞G#öVt<><3 0L0LfN +K! H+Ǐ_RRbLHjHi^A|k#q6E[Ԡ}[ }Y"ӤMfs +>/1"?)F} ޚ EfqEplOl 99mA=0G2TƟIƅA41<{p*L5\qսpI=F2zk +3TՍbL@.ds0 0`aMVq姾o?ن3gp4WJV赇D! #Go2>UCZ\Vi}"ڿF)W z]URJFo{s9nٷ`CRl> ևg@' t&{o{:_4@um;A^\qRW|Ym"VP8軺} AccM|%MqZӱgzΖMI27V)[^LZM6Xdɼy62 0 0Lڐl&%t>{gU=WѾr.@IshpԼi9>?(zz_0Bl*OD'5ݙ\(:g\J\g2qV +HW\["5^1E|%O= $ڄ̗1`TuDy3IZݾhM9ֱOۇeQ3-24te?Ql̺^\btR:8-+L& 9sSCLOm(^w:߉Laٯ6DH \ֲK[ Jk3(^ x9z}!0S8hPD ڶVMV;95`†PVn9Y[|!6|tTm$X^X|a3477;mPVV Q<3 0Xf&8OjjjUx/^:cU V'&?LW +*AB,sCp A=XNz(ӂPt.(mc8d$"@Ҩ2Oeb†*P6#}ύֹ579a W@t!V-NsAaeqR}곡M67AƵǹ1-1h9m0~)S2_'hy 0  P;K?a'&OY_~<JuSɛZUVUT-zCa8Nǖc sk$I6F4G%U:'05>/4k.~E +qRQXyMC+;Yq95pnSPD9)Y@h XznqpWTRCp@ILQđV00 0iha|-޽ ݪ{w+'N__6-'SL\>n4b%zy$P/ +b1(# +Q7&HQ*iju %$L.j7iي>#mRėVu5]U}Av8ɁBԤ{T  !֜YQ1*!INm=CjM +0X$8]T'F</+(x⍇鮎n6Dsj4Z*! 2 0O`a? +%#l'f0k(޽CO]{\@ 9|5'NӎiXGk0{}Ɣr6x5">@$G2;# G\ͤȁaBh5Isנ/0X-aa| & 7&g~h*LQII>W*h)iԛ:Tl=L^TK6OHA>D8fL)8&h8 c׳\*օ!$،`30 0q`a_}VqeRۨ͝e p8Fŕ: i; +RYMK{p^Pk먺 jEN!!)W\0  +mx2Et]5̡st4l8bO l51?r0<l`a4_ӦmSS.^0 0ZXf&cp@ +}f/tN"N3I@0Z^\Vjg@~YzC{ Ҙ>w\|{(@ֈ tJ83^čŇ"iG7w/7)Ym8i9&Nnr1⚂h/#a30 d(,@3 a$n<;mߞdzw_f c7&X٪>/ r׵ix&xdP>t EIQ VϧBs7+MiFVhcb-p7~pvYKc"kk&T5Fg #"V)ܸՉ=a.;ِpe]SRJR5k*ӕ9+τ9;i?$sZT%6fغ2$b GQ<;w&OG\oj7lƃ&=3C@0IЛ/ʧ2CCY_|Q-J1zUt-0dͫ')y6$C$Y/\?.ĕ Ё;mVpqI:?hy?SMY_qRh>4VtYU-,RS +;5a|o4eO!E#5g=<ٕYY֓Ւ~%)0H{&,4 k[o* dw;?j6b7cPH3݆n3A h+ТYope*7n{emwC+K َh`JwW*2GϞ= *qe]uI0MPqRI$U'qۆ1v#I=)њ?ֲˆp0Xv/ }5$IKH|@fG +Zl;OV謪L( +u@[T~P}NTi٤׷bu$G҇.KHL+;S_SF=P^zfĘCVj:>_fTi:IJb*tq%ڢ-yR8XWw?hEG&!,[r`y|-8*nv{af^ [ BhT VooJN_Og˲?5jua`nfbxu +Xct4lMg*0ky5tpju{a]SR,x@d0q%G6XLY]hUa7Ӵ,P՞-)Zj7+Kay |(CƜ:uJ͌[ò.jGGs3CM +y68^po79(JCW`WsFgϓdžs[Y^xSl&1zlj!OsW2 &+mlS-Z܀_1ÆB"hTOEFgE9E Y @v֦~c^.SVh1j)ׄhfw031ފC^q"kopFGn6x9gS-f@[Kף"'t,1G372^^jZ;ц.YZ +u*hNaJlOg=T(YQ----m2h@bdٳgOGGѽVh-)U-9К[\)ͫ'f&xsu>O>\ ѼpWYXo~GFr>ZTR%1 ڞ hJ|+=k %+Α8 ZJyEI5rL ?JֈѼ.jfWiq/ i~DU~8N6h#ay+4?+S{d-Y dj]uM\f~Wci+Fs8ߍ{ \y-VP=e{H"Ρ i[,4u[+6dLPÔmQvֈB5heXOqCu9|ҥKlh4%~cmȀ.WNh.W|09}=ԖkI>*E҄oԷcm\ob.t6I8x q 4>`!nh[dhڥԖ(s:ɓ&9~㊨>gU>tHm?$<_S+10'zG{u.9E%TlQXGOڴ^66QuyZKCCjRгE3V[;::$fBn)k-^}?-+>;>rPx0@e(SR^,*=8o8''Dk8d.BLs5Vs?kћ*kTݞ ЄJu ;s3!^fn|t= ifN؉Ut+j. .]jJ*A*Kj]JP[!:gF{OɺHQog`y2k+8Vhw";Y?KIE[7gfM]V[o^=1,mR-絠>sħ +&AӫtI_f|'|m.zOt&̐p!lbMgMiE%sk<\VRP˅ Nԩ3~o_}g'D~| MoJYz@_Y{e 4`٩8:uJєfbaaXP~VT+叚=J/ +U> "7f #GgEY&@otw[J&%rl3BkLR ^~]S3#qؐ-z+V֖L;\'˥Hf7@J*sE?_v޿@ΥI~d+T^knn+EٿʌQMTdpӴ$ObyFk|}}}D+СPHS}^Z>{KJԼKVLg^gfɘ , 7#9 ;qkXAk-Ӽ+_srUQ/Ee-\twթA&ʒ jE\G165'kESLgZrGj.|g +5QVhEVhMgEP1w6$F3d1/,b(FǺFVI~| +E9kQl 7Y|pvYDhw!Ӗt;kUtLΪe{sj s3! wտ0c檨N1Zc6ZC/OѦ)^N&B&<;3~Z7|3 X6}eBV`0L:0yu=@ʐ>s3=lۺy;gMmTzw΄, })YQ`6"BͭjC\S8N綾`>rVmZ993:nY1H$9(1B,tr/I-)eCU =H?Čc=_aλjA[gh1AͿ5,M|1'}]$=> wK;6Ѣ㛽eWe}Fdh̵'k<}e  b@t:Т 6!ā٩BwttHtP(BnvoI995uV+"^ ɪޝbrF, Ȃ { [YOuMYtKS~ʳ7A!}X>uQ;9ΩCJ5#ǷgCzhHQ? 3oͰgϞ6n@- @Vqo8MŅ?J7> {`$7fo-ڟk8v[t ,\=-IMHpvUg}?f Cót&1Ѓ Qg^TREګe3ɕhwb0vE i|{Y-$X` 1[2v'v)uާT>bӻ?gÄszKJ%kj-J-9}J PTIbi]AƢ« +qq׺u%Ug[U"w(@Tշ34 +c! Z-&ܲ + R_93h÷$ +ٟ+&]uI@G>mKCN-g q<[T`l4s!X `=|'R-ٓ/p_s\;k&'rL$ؙ;deC6r:Y'=+gEMRL%4CY^0{h6 R"8:sޖr<1:m#E޽{%@d$Uٝy*TP>9!_,:5u"ϴn%eɶo(@r/Z-ʀ뀶B'›OGunaQxjK<#`m2Rs/;!74~Xgn КY>]Oz΋Uuf>Өh퇜o?/,HE@ammmm2a+Sۍ-)w_{2PzH>K|H_RY,w@;v;jXU9X6^Pkls.o>%ws3C2s39bo3'~H\4'zӗ]LjJJ除lS + ޙM&um]X +wwwk+s`y @d~`#/~QiV fwOTVҢ;Q_N2g=}Iz qq}Wp,@h;[.@sULw^yR+-Ju1+"&iAAd`L8*˹X⍱>yb)?Z=_ V+絃gEC-t\:oXA[tZ٤ +Z,ZmKS&sߣ, +gd- |>^n:::e%B!v;δu/\?#z٭o](?σb['`60rD|3š  +OZ7Wd(b +5?I6|S:&H?IJϳy2w+,.:K/@gc]#kp2$Ik4hWE}u>"`p]ީ-+w%Rd j_Tưr\S0NJ7Xgtr@S/=6PuA#3gd& FEҭТ<7OIWIjEe_I{:I!bRsTj)$BͻS ТG͒OsAaR۟ž @O*sY e}2{]M'J8QF +/l(jx +mNT$l6|+mRQmr:l+UBa:).CWEG^=yۼ\"@09}=|)|Mцo_h6_LSxUQ_, ]OO T";+B< VNL4ѧb4Þ={ZZZ0eXh0|@+СPHJ.w: s#k7v)V${ f6le!ZRlTʌLR25q[e9F"ʋJtՎİ{y6xN I mFG{dhK٩Jr%R.5^MA0`脶hz /b +z6})Ss*$~X)v 4!;Fҳb6! +жFppV԰( ¦,Q=bB) i#+"pxKJ|jM3gjKDRl)<?m^^IAig.U)(tjY(Rfo/qY{6qQ}ZYeӢ)Z768t,N @4~[[2t+t0W&XHe ++B5p@ 31n,L$ (ڐXZKK\iKG'@,XpoI£,Z\&HT2}.$.C]S UmHՖx,1"ʊ!+ TYͦ2z*TCJ;Z1R<  {掎YFn,y뾡eտYѺygY ^f"<OaJi&U󩲢)1w#T\Dcg;AzypѹhȞgiitqmCʖj}Yr^;ԺƗz3g M_UYM_/'=˳-`}EDgggr36+@l3u6壩$n~d*4ϘgX&T1|b-UBĜY6ձӗO/SQO-)Q.oIJy,'\Vrl!C:`}t;7A+du>O-({ L 9]9>sHB_?vob3<XR5?!8<  `dnoo7AݻNG'GBDƒ_h4)=s>6DǮ.F 9ϊjՕp7>̄Zb,; qB 5"be):O'-u;)"V+#gذ|nb-+u_ +ޫOؽ2> <#e@, _£3XIEU0EJ -Rjǥ%P2u=m< 8T96XLVZ e"lWdɾ6㢏rцo>_Sg~TЌWd?[؁4X9"vV3P5ߘ#kw3WiMSy'E[? ZY@O`y@oݞAqEiG]=*r:[ ]ˈNseĂf"Wx64h[VFylE<= C//S|SBԠL+%*)2T~Khv y>SuAMi +O<ݱ?n4, @tvvj4AnG`7қ 5z<YO Qݸ)!@D?3ązG{1&+D^|O4TzKJ;eĵdbAB%v(29s.>ȬYd6pyI8}0u)2hr `Se3lIrϧ?E1#'E>M7cmqvXO@>F9sٽuU*sV`=A +t]lhf+\*/\?ÕM)J" Zɗf" ߦDYSͬu3&w4j,?۟lL]<W~MZȭChWrQFF3/J}uS(ɌOD|ϰ< _ ­ОDv w/ާj͕HERL̈Z$ 9 o֥p!A+KlDG4gFo3";\"?%qDFGMX]dP[BL."VYbyN量42ayHh$F7r5v0vve%9-N,*rUWxwZ'XmʐLД¡.n(Cb*3Z 9=oQ 1zWLB$!Wfo eSBbY>uG7Z4 thchZ9+Zp:mNAF3 h+vTN}&w .X(;^I% +l< +L^:1 {pv{H}7 {troӗo~ " {1zW_fZԐd.{ڢN*qfpQo.:17ĺMywDjJzWKH\nYjصϥ{3%.YA+v:9RgzS[JGq{&9~902Vpd,lggBߕؤ6H@li +  3b@rʒ6m6h";sнzg: UЙ +Krg"SB>?&JtBYUG$Ndͫ'c&A"+]qIYgW=K_5!vlyQYp7 3@z@ +MwV[IΔJ qUZ&vRuiY;k\6Os17n*k_hb7hZ>+GBESkiP_X18|GWzwnew8]$+TVtww_t GeyGF,e߹m@~r#+݇kj*;El^HVԌ ab t!UzU? zG㑩+4hjؾu +ۥoi&6xu+?O(v!ԳA9zC4QUQ!>JS4Pܭk-mlcCQO_!"f"Ͼ|TJG*gKz:w9<H4 hzH&EL#+tJڋ4 +5MRVFڬK4⪘ǦF$~m*q FBh`p@n~`ѓ[]/c|)Mg*e|سk|Uu@췐~>_S{[i,',˴S5gm}eSy 5h([n4rQ> +P  h$ ZAVXmiݼˆ$ +R♅B9Кr 7:5zЌ:-ecS#i-ȫO)M?j^EH R'. +EQq"`Up1i/GT7id-]|f27)Qzm{n^=A?!+ \~S8Ҡ2h÷Q.Ty + d 1NhVu5`iP-sV+ +Ҡ52ge?Ym?UbN*j&/-4zU;gPL9,5A8m!wrA>hǡ `9[< hv[[ +߸4]2! Kmؼ?zUpW|SEiozN{!MЊ +G,?.uJھp OaVUY<~ +˪ʼnNӥb @{GaqbYNHA1MJKdōlbӸ.*.RBqͫAh`.p(S/|zwVQugjlၲ=P,----mHh7Zkjj~*{&h(m~4O +^~+G^1(EP(BnәbKhR3&.5(o4aDQIm\gdr +6!5@I/)uN_kZ7?c2d\<'xa'sTܽ%lHJEgQ5kg43 o5 .HIhFyY15`W K yۍ7ObkEA ;4ihFg]b LqR%;{%;F3:tg4?zXUeёÏU=XTTREɵLh&z< ym:r)|$/ *Zwxz## LXT{Pi|tQ'L?s G't#IZ҇_y`# 7~,{e&>OIVm7-2?? +Ѩ8ьz:N,9h!4]LT^,U3RrpHxHLP|izsg>UQ/z"=oSVXYs*p1:0sFsƥe߇F3 m kLBc$h +;ڣQ3;W!I5D$rUQoyU{-xĽF[n]dY+*qT]0٩b @>K!Vfs:n[Iw^ߙ{yRsRh'oGEOG'i*d&1z8I_N̈́}7: +9l(NԠwȲ$*>Ľ4sh!j}'|PHJ4/Jʒl[{Z K %|dE @5hH%B;1mIVҨS_mv)hn\q*[7kФ_*Q.ZQPB)B ٥0+W:Du>O>Ju l{Ե!Oq:.6ghXՠV菦>h%eΊOc)J^f*kךMB\eIr@Ċ)H Q&YBPMJt*O1+jޝյGFgns9ޝ{n 붡3YQ`y' @ZͲFC/j9r=RD̹ 8C~s]kNIЦ#뎨xeyr0[1m^Ԅfޝsذ/=6P3<Y @ +CЭ!q6!H{+eذһ3K\ J$CUAkWtvvͰgϞ6Lo ˁ `N]SSs))BܥWfV' + =LP:GB[4Yhg>%$G +Ve*HTqX:Z,=$4k _[bwjϑlӝJot@/IN>?, ~i|j5h3u!hגP:G[?n~&{4h>R\y .zZIU2#vH!K)'<tehxPWI쫄^˾Vw +,kHBYA9*~ 5/ϬDBzSy-~I_3{XLҝ=u2QC;IU5]Mqyh-4Qܲ4gH1R%Hgy-+4*|xE3 + 5 @HokkW&L +I(sV<2AM//J"U8M \y^TݗUIYtl <]AzPձmёϾ0>62$(#EZhO["ϯetW9k +vV,%WODC\TRU*\2t8N*zTw򇩩-N6GoƩc`yV +ޞ\\и}ˬFV>vWYFcIl;k}9)iyN}twwkz%9<=D__[:g Mk += ڴg ֨E%U@ +=L'|M24>H$Fhvg6'304TY?T^K9jd+WIkóSF AGE3^uo^6Do]Ԥ + 4dLbyVԯX@ @Xz ԩS\ OʜZK$ BnۺTSa33{$W6YJLPYHq~WA5躗 ]a6hyfK MqCf"S*:6$h%2731{XR}@qN, z5:vgpC(c|8>5E6`y@~'NM555{t4,%Vb~~> +EQqbXO_2gWVКggҝ'.GLqb0D<љf&^Ah(I)Q飢Q3W9D6X/]yE$IYV4SMswn7'  )F{gW?} `H +.WN%,Wp`p;DfmWE}]kL~zV5eq;,iJ6`Նnn`l5±v 4 _%%^RXIi1cSym%jL\naCv!tML%\, @NYZH[nw^BJo^=1G%oenlc\`k mi(Pa>jU10;>$RbQٔv ,U٥) 2EAi,ߺH6碒*YYgA<ۀ *Z{ s(i-L#\ʭ=| 6rDk ?YDMzCo\L$DvL^~H̥DOSzfK!Umpz4)76XIzV Q^ 4kqԜ:uJ2XXXx2]|>)`}뱢*U x&rJQs91۶RtX&'Ktm*e.sp~~f0cy&`Єlp`yY h}>___8 ++t(F,B.\?CMwH1#k7vqGDZՖ(lc1K 껤qfvWE}u>S81;ڣ[7P)H 2w9IA1`xu}ΆvK----X؁QeBVh߳ +-@7xegEY7v H t ܸ퀥x@y#=kHD NpY}|\??F/d ؇okkW&nʄfG8`>ZLlP䕭ϳ Gɵf|֓  z\4D⣥1 .sfi8}KH# ߾=g&NxÂ߄6z+*YI +t:nwX5z_PantU5f~ , XA{ vީ>P%ީ 3K )="BB}6Dfyh/׷gs@`fţXaW&d +Fj7K _!2g; ׎$=oˋ̠r{Dgsۗ>3g@r5脦rYkI\82۟>'FAqT햲lM:-eӗ(t){pyjXכE޾Yiw^Yώ`dNYZh([n锵!ɏJIڵpYPyAIX7A׼,% znfbڟYk_,V" ~џ|]4K ױyP^^Tbi W $B[ǡBg*.ۥ۟+;7n{5-J0v8>r@hW[7?ӺyU폦>$+G]ۖ^1bݭ rN}GMMͩS$J-S*Ƕʄo*ݿ〬%H$8K_p׵N#$o(g@-~'N + +Ѩ86+Q`H~CV[$)YXe0'6,(ef8Y&hJ6pGl~729LRlOY򬨱<4,¨2\+dz:>~m46xK~7 \#b3}X {ĦkV6:Ϡ8hWMR{Q+aJ "!E]4gv(//w\l, RYZǁ d~M_P: +Zdg +ߐb89Kq4$=WiS +;Zc!> ;=uL.PY?C׈:CW\" ++4latnVhەo^Wuɗ ?`/'[48^,/$nX 0):7O?}RhE6t>V,`@Vh1E׆_Rɸ{wvꚬU1/~plRy _\B9+xn)VbA)04,z4jx M @@VcdlooA'tGY2HtE%UL.0Or~(c((h]1OR;b?$DS8]&wcpYjK՛φ9+/30cy֠ao* gr>ϧBwttHLJFPHovNsK/\?ÆgHU'o^=G7n{һ2c#Gbv]ϱih ã ;~_64@oM\`YQ;[ٕf`׮C  VqHBc7ICf&kz2pqTN2t4^H`,6v? ![ =8cZ)@i|n & H<tt{J ' ;555NLh&z<]d|LoL]PS{UW&h0rwb泛b;-*HLe^x.@U@fg늖gJګHN f >OS ++t(FhwzCcSD=XTR媨7H*`o?sfﮧc튫*Y(@[R˳ dy֤q`y@ G*+4 Ym+bNKYl\ ă#2,0/k=v@i5_}r7D(NO +zƎ\QOmEu@G>Hr֦L( +  ].p[WqJ? cE%UR,@8//~.~/!GP6_3Hu@'}9$@iyϾݱ 3@cTC$^woi4_h4JL|Dn^" GQٻM<㾂:/JRxqi[rL 9f = ,2/;v׍# @y,BOGHׁX7ײVHόgQH4ؿX/U+9+*l~r(plVDp׼z|,u;?h|-wEߦƣǾV .vn,6 8|%ôY[UCZ)O.*o=frDzSyEܧb4Þ={ZZZТ π V6j~TT(*עA}YYi(g  =FWw|.VtdyU=E=>3@dYg4< I'>>an$f#ř |:63D"P(yUaav:ͫ'&QO)vD&(54^bu "-`gxfYQu,<~ +z6СC<'~|2[UMO7EM$7?uz%I֒ж)Ѫ)&oTLȍ~dIB#H_^RmS~p<15fa\Δ.@3N_tFR8r4|FBs\>p).*l)BǓmsnfb"𠈘o,?tv{2**0<;N綾` :˳SŢ H d@4 LP(ӶpEWE}u>Wf7Ԉ^7/[ "@l'L@W m}2%nՀ3V@c}sssGG,H_[:8|v|,%m,T%xy*+l4, @XsY:gYkI +=731uQzVT bN)FTc$A/;K)?hWEn  f4hzIR`F9W Y g4HfKcs5@^g;Mؼ 6ägF}1YK/\?365BAlJgZ7ZB$mg.>6YZHdnfCJ,7ȑ{**4蔱Zgͫ'xE}1< O)sVq 0',{iiip`U@Ih4oND&r鬇}ޝiTРWO<>{{֤XQ3 CRh4Yayh n+Y555sYse1s3!u8nt+j +W^`q30h5 "fg{YQҊ}5x jM HAiТ YT]:swwKhy3@~'N_uROΊ8/ Q%V{E`QV&xU=yƒFǺF =WG8%++XiXDpN|6? 9XՃE&_TR媨YUqhZXXx󍮖X {oj7uZ$oЎZXPҺ5޼zb2pڕޝ"}`w-u{Ե54g)}cvbRг <@ڨٟ}_(kTU=`Crw"ͬטU& C/y(Ƴv' ۮElo8jXRM +u*=+9=$w^B @ZhbrOmznex .*q9R t6*F^Xgq`78ܻk1P߾곢p ;9,2A2O4EyJ -6JmO@#Z9ҕܰBSiY ,ZU \GO"?7zUbSyg!FNvtB+tHd +bte}xC-7ikeLܼz"ѢWSq'c ̭vp1o,1[;::e%B!v[W-=b(󩾀:p]#EZ#kPU.uJikur3(f:N,Y$CI+Zgr$thZǡBg]GVnf%$hK4 әKw4{KPt&HO!6:]md$?H s9H.sV+!U _\h U:;;YMMͩS$:4T4 =OT&#ѳ 9RD#Om&.qZMq#m!Z6۞񑳓|JQImA"DM S׃E>K8C{{{KKg   +endstream endobj 502 0 obj <>/Filter /CCITTFaxDecode /Height 351 /ImageMask true /Subtype /Image /Width 1920 /Length 47 >> +stream +  +endstream endobj 501 0 obj <> +stream +xWTU5 (XHVVt1-]A(=Z,g|~y̜sF6 5|oO<ө?OM7 +5S8yA6Z J}5\8kz~ܙk|5oL-(A\wjmR5$ˑ\_ + +w%.WFo-K@IDt53p®UN*{&sw½׸3z] + +779RS!p\Z2̥pT nf.5VTn7[vn-ὓyK@c?Lw^JPx¨Q:J㿭'/meߏx9k)(/믧YK@ O η>Z + +i ;׿_; p/=3 *k)(\Vp 6%q^MǏ Jl:~\_-*[ +J7_-x:Qy;@ ]Xovҝ ^|;}%s)(ܷ~ 뻣2}C*ʞ.[xŸl!w)(HԐm/^1xxuhK_ +J7Y;qkLlbf:p:_mN{VChw#}z^Q@k?}k/~.Z<~aC?n[\Mk@ٺcNӥxsv߽Aȥӳ4]xX(} + +endstream endobj 536 0 obj [/Indexed /DeviceRGB 255 (iii&&&AAAvvv\\\\\\\)\)\)***оKKKyyy<<<444,,,PPPttt999qqqғEEE:::LLL݁TTTCCCdddnnn111{{{hhhkkk}}}333똘...Ί󨨨xxxNNN񦦦777ꖖ>>>bbbQQQVVV[[[///蜜)] endobj 500 0 obj <>/Filter /CCITTFaxDecode /Height 132 /ImageMask true /Subtype /Image /Width 280 /Length 648 >> +stream +&,r dr8G j `4Gql2e .2nA@-<a 82Ni 6 a/!G Y5F6`J; 4s> +h,6e030:h/ il4 0 Bb!9X~Y1ۯ1_9 ᭢ qb(Ɵ"ˏ`~0-v]^ۿ}={"'B\=ZA|Cb~ޖC<=t/NZW2ǯb+";[P"7###0t< \m8BOȣCjquAG\K_e;wș޷kauvޓtnX~1OWKh`Gg _`i9; +&a"ۼxe#ھ`6E0305ma{#0k^[ {qm,G\0ޗ`O߷C2+~[Wނnwoc +TT/… +! +endstream endobj 498 0 obj <> endobj 240 0 obj << +/Filter/FlateDecode/Length 22 +>> +stream +x+*4Tp + +endstream endobj 238 0 obj <>>> endobj 537 0 obj <>/Filter /FlateDecode /Length 655630 >> +stream +xԽ_'uGI#/D*w,玖s]U]]X$9lhK,H6iGZr7^kqvE@k@& c@b@5ĀΩSxvׯ?]]uΩSTquV\C?W_+WkoLc?:s?YUUN>1ǭgzZ?O.3|Y.κ -}+vߊg>+e*wf>szg]sz~;k Cz:sO4|?=χMES7ߝ~pOOOMd~u:}v3XWgܙ;SWxqmw> e{398Ǧ~Ýiӻ;]>O?~]Ͱ\Lw73 ];M8m[YUsk+޸6~FL]ڳ*ڻߚVQ?szQS 4ws>nٌE?Zal/㇢~[ SF5IQ[ʕ/^x[7aI>w^})߻L[x_`:wz9k#{}zv5fUyۍGY3=7x 9QM7wOuPǿӇ`wWxX޶]'OC]ߵ Պwv՘΍OUq~>Z~O?Ùw/ ӟtӟ?C3݅Vz;J8s릺Ou; uQ7xΤ ?YHw{oOȻ?<{G:W^Ϳj~3U[\S<=#r3h(?Hޟ~Ea/f]R_c-H, }rl}scߴ\Qw}{z:Ee0&DuǿFR޳%B$*F}\NbIH\|#!%QX S3o](s黯;gϚ.( _> {wrɏuXUuˑm&qeI~,WVXE٪iwgm7{/#gQDg.RH[Szo݇+6|<1}eL.|!kvxrMhdCT[(y+b*jS|"Ԛ>[k+>х>QmYպq/ (hFO}=\rל>_?~+U.vGO7<(@ G _|`' "?`itmuo'hRngE~#kXYBf/Ϭ޹ ?۟׶%ȁ7;-P wZp>VZ̃ɫgNo904i'60tD_`|"+{8~l\s]Y~9{*zϿ_5kDwzSNV;Md/&Hzky~ZtgɦÔ>֒`-,R[KÖ䚮yr!L6g=n&ozܬۧQm(jvMHԏgTQz#O?8ٶ?tF4(uǡv;x&Xh/-"~q KX[#@nD!I7:B;;}5*o~ ޙX+L]F|ƳCwn V +kqGhE%olRVĉ&:VT҄j&q?KZ+p&+?D4v_ZGū&w mS/ᰩW?uVP&P{[(_eM66ggC38vƹƟ%Il֝E`/ɲm錰l'Wk4pNi.5xoFC Uk&Tm,=m8 ص(q=.g[x㊞TO6{V|xh>[90,OHht8rtu}-56STȇ xsVǿ׉-U7(%jK˓V},(;kԨ8*(cC۹EcC뵉m·Di!op%O:k'9 0]Adz6 s?įM=q*QEy!vP|MowRmNߦDŽKLZmyr76Z<@q);JZ8$lʍhE9vz_4m6cq4/mh)r9|l}۹ƞ&Zx7yh| XN.rm9YΪimMWZ9G⹚$DPq@m4~r(1nv!NƘy8YӴME +:*n8.#oK!]Q5-Cx\PGo"e7'ǎ,x,&Un|LE`2Glm5QO, | \B/&H7&ՆGoJFKna~o՘n>wa;zGEP~Vr٣kYױU*$;jh>~=.(QR8<И*y=ߢ?CžS~=PWz)@4Il4K2M%l**=w/1e5>S.H;aĖdX02&'bۉ6η6Nr0žm|SŶhwh0.G.ŝ4F Lb񸪫],ʎ/vP눢c`Au0a){ zтcbR˖΂OBCzuº +&fcue;( уuA|` ~Oզ oJmJ3H>O+SE\uO]m#M#.ȕS Z9̆ow'3ܧ*;M#( ƿ/TSuGǡ0]wg[v - ?yu1k|k??ըkL1h{{[`O_[| fѴ$273nLz?ZQOQ s WoEKiʑ rdbQ<7o ?2MS/K/ZSīRik=:}§Y}a +嶖 ~zFtG|(񋇛IҐՋ=X8XBME gtQDӨ.U O}2S}؝0ة(:ʏW&H\wcB*wDx{݁D(pܳL8Fn.ӫJ 0!Io:Jmk,#Ɍ9W)Ygm+Lq [ +bנkunݑⶾܑdT&F\ϗy:j/Qwh1[92M/5k˷o/k_Ìcu-/>_\'ǿz˟4G>~g/\#zG?DKW?}/??ygn_?~_n|'^8:ƽqyVxWy}w޸ѿ99zYǦ߿rG fW` 1Absm'͵m(ZHl*4hTۀءn,6y6`iB;IDlm0 kU )eZmmL)k=$6ͿbSm͔&)"6͵,Txm,@nL@n;4 kWؔ͵ Tp؞+Q-i!@p+4 W@lZ +j{4 kP-)E "bS|*vfJP!bS 6vӢR\ۀb;4SP8l[Q*vfJيBy9x3-rĐpD ^YH0*[/~?y7^yKI,_ݡw6^{?=99{4>:z{ӏǫ7:^B`t頏N˗Sv2B̄N ZWH%ت1)/VH+=;"7)]!`tND5AQn?GMRHHׯk8jr2cR7BZ&O)h)cځYO>+Q)]:u f=N.YO-QNäv`SH~h)R]Qw)E:e(QE0Kh)=\ѨSn"5׵|J8jNNٔXjk8:RBR7X6S&%uJ6X63):eQQ$J0ϤJ4B I'˙pԜчIm']B) zr): BR{0ɥL>0&%AR[0Ii|1_kP:Dq~?Gk_9ϼ4vD2o{7o~'1 +yO ?v} #Q^sS[aOv>zP+ºskm@> +kFSkc:P+O ++Ll@~>FN +yP+Skn@#Bޞ>F. +MP+d +m@űv^!zql@؀űыc[D/m8EXűыc=6^ zqlűыc:D/^k8~{q8#ih.^#:v6|y|<MQM5)cF5x.ws + c;VX x lVXxl5VXx l7Xw luVXwlVXw l~7Xw lU~VXwl}VXw l}7Xw l5}VXwl|t8u|7Xw lLNީ1;{tTAwlމv+bҽc{Hm!;tҽc={zHw8nv!VrBW3MKϝ5R͟zW^G?!& 9̣okbS.T5]cm+ 6B؋z#tͨ7B؍ztilG~klH zؑz#t-7BؓzVcS5v]c[mнƾklL۠7[So7FSo4v]c{5ºu!9 Brօ X3.ׅT㺐j\RBp]H v.$lBօd Xma]Hu!ąD1'i|oUQy۱>̭+||₏\pp 61Ƅlc7JspTxQ1GYl:gdW>h3:0fuXuGMc3:,溊T?p1c*guc9:(fUT* j1 +5h̃bܪsY֡1cnkj*1ds|cfgުL>s4f1' !?3јƜ33g,fG~~:3Y֡1c*V1ќ&3:,fC~~^{&??3i1bߨ,tϏLsh$+7*+ A1esuX引s̜Ca1'9 T 9OqwqfNUv_Փ>v͇ =JF7x7Ґ±Üt^OO#W"1 ~ Uig ʒ$fIM uM;$Թ\ﰷx8$ԍ?8.EZk꭛辏?sVGk +'(OtTqioNv|?| &ģ`j8j|hfkx*]j^ Np,Y^QW|B.5^F]%pԼx5F1kK+^%5K>0jkq_Լh5K>4jUt{#/XGQS+e?Xƴ5/G͒3jQ3y 8j|hԎ`ן'IQ䃣vB6I2:ɐ}jκ!b3fԁEn괴uCɺi*џ(Ou޲_7ܣ'GGwcљUNHz{Ouۖ<* %w*KmTA%gH""3]NxTr,!ɭ: +kA +3I*"ƯօR'I*"זrs[1QM;bCB%ƎH^9s8ZJ^W" y70]1mUTr,M iD& *9sLr-y͙<<,!Y#sdơ%?&9KEHr y8$PLrv<{d:3SU=xX.ã"59+ګKMQx$5K>8j +R%GM^8$Y^QsWXW,u4js +R hGDj|p֥uKШ9r55k4j(t ++$R*h_G55=Zu{#G͓p$I^QsUXZWJ5pԼJ 5k4$Ѩ9.GaQCN\ظ\y4j|pҀ*^W?ANx5;^W;$5K>0::!X&&JHKϝoɃ ԍv KSk,eN: bobo7ZMG"FS!ƺE썵Eu7V7V5`o] mQ>ƶыcD/m8Eыc=zD/^ zqlű :D/u^8!zqEXűыc D/5^ +İ˖m-Wߋ G?}y~ƽ=ٓڲ:|+c\ *y݁9qS ~zWu x噗wFZ|GϿl8:z_SM|>reSTF*"]d*rP" tU?*UVe2EV"{.FYeHܨ ftU1*Ud UfuUUU63TFVEVVEVٺPYeZQ22EesB]dm \/*[*#ù^tTFsl9٠22EgA]d\/: "l$ z؎6LD[v温u0_y~q^#䌖Yyt'}Dܘ6rcԕrc:ˍiS,7Mܘ.tӦYnLZg1e꠳ܘ6rc:ˍ)S:kS,Mh2:kS,L6΢:+S+mMh6΢J[iS#zqSVOы65Gi?mjH/J[iSCzqӥOы2Ԉ^ӦFhmVRs x?n:t)~tئamWno=4 DMpT: A + 4<0趡YSW:8"8qHpk09"80ti.5I#OAǩ N8DgqR-Zό.8W s$8CDpNhUSV Dp:gqY 4 Yh,9aخ N}DpN'q &8'x7DDpNg9r x+ r8 Ik9mZc1xmИc<MfAmZ1 =bN#C 5\4f^'9:,fn8NИ)e3GV 9&h̼suP)n5H6 +YGcY̲9%iscsKacKWw2eج@S +s>z2珿S u ?yG7oѻ/MO_ M.ؔQNeTm $6bN­^r`Ybq2WŦ|q4ꔪGM:ũ7:C}EjQs5K>4jQoTvJӤu8jNfɇF́Ne4Mj4jD*iRXpԼ> u|hnTYӤ浱i%uTi],4j^:I>0jwFgnEj^ $5K>0jNqκ2duκrƬW72EMet:c\yɵO~x>f|?{ru>x|8n:MHvߦ'w8"8ǡ` NNqHpC8O郎@Ǡ!2PI!!P2S<2_<9,drH)QI`$1ב)5;UkO)3w9۶2h=8v.P'z'}γu^4x{1C7o>>7oѫ/=|8(JU=5HU*3sԍ1$H񨹮U&:xTFeJF`U&:4nkHZe@᨝Gv*NyM6RVqukR;H:Djkoz]QwGڪ8`,U4Gi 75]@6RMu G] +\ "5R,ǣO[r~%==OpǗ I:N=hAh:7ՠ9~$(4״oSѠi T(y8hAB:^M=hAs6tirMAPZǟMhe uz Mp\:LHm8h +Ԇ+44ŖcBSbᠭnT~Si8hφl8hi-k #1u8Ӄ(x8hЇv:뛩AsX64MAsM,n\h] +4Aӄ>$YL&Ѡ9 :մΚf5MQ: Aӄ>4CBGM]x8\lD{AAo>kt|Ǔ7}py w?tV}qV&xW![*8EgcG 5^ 56qDVeء +Nq ,(nHT5jy\p۵xF#sH:.38"!k<#+8 8G}Âgdq:$x[!7pFV +k3G kHp +ouj#q80Cn\:j#! +N5;:F|ܯP:C:o+x\]1YӫLh*lU\jgL!h\*\zc`xHf31S;"Qqz1Q`̩U L*nM=61S@;$scvux\*KzbuLf xm\uH6x1[lc3׳EzbsLfecn@h(!u)7uczVYL)Yee25fGc,D栲3oA`̩USg0f +dVYlL98fFdnUVc=ܿי8td8F~ΊqQ=^#{yγ_y^71>::z{!$G?0}Ԩ*JUl +ĦjTlǥ&6(b<B)B)[g Ml +_f,'x]ewoګO}?A)|/}i1_{37oϼy) +mwwa8*Tv4FVYéIbsmk8@7mgwUQu]ЗTM|Ν?[^{q\(լ\XS̬\r7/wEy3oJ~ϏZ0/EyfCy0(ߙY8˛jV.Op/ʫ3 N;(ʹ,jC?vWsb[<[բ\(g)$F +ٲe .b, NP9kY.NP9+*+y)S X,E9+*# +7fVNӈ',e9KY#Gr?/EyCQ?Ěrq*,','J-l}q"լ\r;/r8c7+'}QJcq*լ\2eP xx}5+ryi$ʼni$X*_Uw~oWC{==`# c<3Ep z?/Ey/KͬsE>5ݪeす>7=bꬊޅA i fŇ$|V'xZ 4(Jt.ra[[;ή|0Tp\E_LMPB3u"/g4?/oY/GKx~v8xj*kdYm&@͌ZkjZa(P`@٦~@׷Uyq +>qIV<_rjE8s'NP9 *|;/Np<'N~1_Fr3/7E9N/RY8|K$N~1׈9*Qp& 4%VSqti /(&asg'اVoMiӬdy 7/Njv+/TM]T8_%g~e٬1r>ܴgJ $6zvXS}xW^S*ȫKZC v%+y1n]V|]Mq%F/JӍ?y5_m>ї i^*M׻ϫW rYiIqN`c-ʪWʷ( +x*cbMĐ\Krr:H Y~>p8]L-cX"jd-dؙRK>&S6IUrÃzS\o7ryL4-ls |ezD"& :_ЗZV%?}/~J{uVgYrkn0x0UcFYGѓٓ$O >,כt;2P_>nj'yqTfexYGH~D?L)W[iqK PKk,&x +,?=NfZ >~nzDOYAK5/7UiM2yŗ,7\< "q[ *\<u֛1 [To=̕d.c5`%Jb/?ua^& K|z^^u~>?bNηYK"e'aj$ +jVݿ}Q9t}Yn,`2?:QeLSA I `sʑ-kvZZ.]/.gvm'GNvжTIiR +DՌOxsS.v.㬲ƜXcY]Y\ nIizxxOZsMO?F}61Ӊf++ª%A)| [I^vI4\+Di VPnaj YDMaj޻^97MfS6x$,!sių&SS4Ԫz5il[0GiKf05!6V}hF I]#!tYYɻ¼*ސAHoؗmaE p(.•rMf6{ 56QT, i _K}F41pCW߉7B͹.Η{S4g/sg|H&$;iӂ)5hM͔VT2Ft wfD\3ƽA4#Ѯ'D#|[w/HÄ8ڶ/,^~ ӺBQr(e⚮.ZaFeNm)Á0l< BhѲ MXvޡ|WhH&,.a?Pe_I֝Tڬwz+d[e ڿ+WuO!t{rQQW +y)5F5)9XB '/ƕ+zleBg7S_}&+biri35rH4.+D_,Z&-ZiІ^V9NϣY!wLqgi>Z./tL"HZJ"=5xޙu5.Ƴ;%$L䀌tV^,A/vBqo/cvBC}' 8v.WTL}Ejm֗]s+}}, ki[*6B`b]*r:ɩh5/e;ScSUsw&M7'IW'njMs KMt~{H^̗z _Rhlk/~)oS[y L3LYhB琂!Ԛ,Zh~T>pBXYC!ZbỉUbpRϴE:2k/ /_~)ގ,fsNV"2o =WJBzGKW||'-d.P淰֩!!uAWѪBߖ:Ii_KR^o {Z0^h=63ֈoѵ :~S3Ѿ&fqI"iKzyD z%_a.L2/% +CJv~Ies#sp U,fL绮e)Ը`fx N3iX }S«%3 Bߕjhf!&:gu6,Ӻۯew0z,2V)\Y豂d((aewnl;P,+N!GpIOM(U63ֈ!!Y#dzv):,ZUZr!֌yvHZdMkf)%O 3p;T*ԁxf25X[KɲI˟%H_j5~ApH=l{@yd6}, +mzVHq(ԓINZ!HJ\o"dRHKj˒g\.U/<, nN/ږ,g)Gfl-ŌbfB鰐HOMjcսuXC0ZAv~C;+Fge<ܱ4 / ~WQ ٽD.PG$R I oڵ0:nxzA3!ř4-mCӖ ŰvÑf9 )QXŘ9ɇRЈY V@Ùm^ov +ݾg&8䐲P$|\9d;Jg.՞i j3a׷9 }GfIv㤁~iA~~`4y{ޯECkc!ƱjRۢABjMmB4~nIG6ղc̬DVMm|2 ]/h"!;zɆz)e+bْwOYB2_RKE2L~Yhu)/&8NBK|k!]e)"3h-#?+ge^,N)-vRy;G n!Y-Ud"OWRڎ&)Lhb%.ʱ01=f#Dp3i*vz 3(4BJ,c,?}4+dI޵]):Edi, V1E\\K?e0-0^ d}&'{0*hҶ_R wr!lRŅ]D[txFeqa%}:s7L8&m6YcsWXlI"*Ja5Ȫy l)\)Bwi'e& ۳ҴެVRizUH,]iz$ZRYvi: }$ Eȥ~AjŇ,P +V}$+L4heɑů0v̦d59 a6XcywdVX@s+$Pw6CRWH 5֭ +7J )rV+MiBINM}Be+~XiStH9#qpJ> ܳwya>CjuOLp4vhgM{z˶^b6V*DhRK%u_q-nB @jMKdxSgJh ,'hKVlSK4OY<6].j6Yc 5:٤H+\C<+~W}S? tww *FT$ҬJїS,+$ҰIo֮bE8yip)ơ_P.JBB2) 2,'t!륞3"sD(UcӣeuDaGH[,5@: ;H!iZ/&x2q r̲;cRz+[YJTiR&[C-I3gEq׊Di{[ğN; Y:6}RWDnvPa /k萇$Ÿ_e1e1Q.~ͮʼSvҜ1gA +E"]hRM qah/"ԔhI5.+%U c70ԘAB\5%811)g50ɝ/4)>\ +ILdqZIB*YYO +*58_NhY `]54f!̇~va,m69pyt; q]VhrN=sҢL͵)}9@̆J ]]_4 /rJ;at}9EB}]$=FU̼W /&-ٴbl? օ4^7yismy֬"t8(5$wx@qd56NnI%'i \"A5+~Z/˰~Mo" i&m׫%ƦݞjCǩܹ~βM٨b(,{gNm˃bb9D w3ͺAEVTP(")riC5U|`HK:PsY KK:=̲BNH% K:ud#Zh"\Kag^XVaB *X]C la )ixCv"_D@v3ɚG0/i5^% '\$#@,"¼i3]K$bx4v.%j oPzYMR@h9i vT,Da 4 gև2*7k~Wtzv[ 3yg9r7WssID9w&{28YƒnHUJa2Ko +%/pi&5MJa& "uЬ;(Rjg5jY :XKشHP㧝WR֥;sPc-_팠fU'qQjbdw\;5'6Cd[r0(' Ԥ4+^=%27}B /@KW\bA0+gKBS!RMJ[#Ij:4KAJ-;z'Fc{^:*xܐrIMM#d5|dhJIZm_rE{iug\:sڰ,dC39efk7WBK :嶝DVB jN 1RB jNZ򃌺LP :/A)3ӻ,=? Q!l\Nn3bP v`ų\FGOTҒO]\̪_PDpX*Wh5*WhѩI+mAϘz[q_`lMRz}/XrtKxbx3yV yxkKG@;ct8K_ kw3*#0'RX}C_fwrq/go.)4[-pf)ѹ%ͺX3SLnFϵ}-lMF(~AUɁkw8)5+hi2[研K.mϛyM%a5iNMǦw!0 yF U/(:Wtll\b$i"sB+0vө,<6\mGFmY4_`W!MUNf08Tޏұ"J~rͦt[ ,K9Gww9dfsӴQ$J>aQ즔]kUwUi1vO1v@=eeRO‚d̖:0p68/!-9RJu3POxx*EQðA&;Tڼu6S*~/!9(Tc%Y4y 8^mDp* f5ƿ0ZVZbrN6sR|같), NؕXL Orɝ!^cf +˱_+˘g4J% #9LЍPPxC%#aDi:ʡ`]fi +;@z4X) lJŐ0 ̈,y9ŋ/[dx ʤxVV-f#w)]yJרdeG1T倦YW<¶Õ/nW:[€:0/8. Mf3M׬"iBr$j+zSNH%c#ZixtbҹJNX3O9%곑r6bg|<y3DWXjL3i[!"RR>lJQEB>s{.d&a0xz_rقw+kiWyWY6w-¬0TX!KO[X~ Pe&hʈ+qF[Zr𘬼[Y/`1S8 ?m69RVN\QM^%Ƅ+iY4_Pr?|;8) 9TE+/a6~4iɑ }lКTra`s$G֎e^^XWҘ}vb\39WkKl+mqRWZ6r|:R{}ʫ/Wy݉ے4()wUNe^XN>jRZ1+If5X 9[OJ_rFselL+Qȃ˝l^anbʤ%/tԣWhbk0v3}RTK<S o3-]l> T\/X{gtE9G@r g~5^hѡJg\(q-Da &amwrpgvC/miX<@hŰue/;Bʓx"rf_Jgo{)]b7G4WF(PIng +S4F=W$x'bWD ? Oa!Ji}aٮ܀YxY~T\M 8Q㊘y)10pn|/-|}AyR 8.r,r- c4?;뼮=w$K-ctRL:ٷD Yw$^?t|4)rr(^DjS6yn[Mf07)!_]k =kKq]r.JD +:1Hy1*JE5+A>$n\ ׿l.Oؔ\x iՙ"-R׍;U{=͝>݀t|ZD>O/^ZrP6+a*ݡ *9K[ [o[q$IAp`Q>kT'ɳ$ `k׷:D26F%+ +OQ}1fp:3FI-4i#Blz'3prOSG7V⍴!B$U'q,ۢu1%MԻ O5uiBm|(^[h"<@8_.rj.5p)d1@>9?ţ"$mG24T,kZ.!Weʠ`K|dLq)o&4I@>Uش8ў$2pPBǹ;>q\K99I8cSqM/Q^?eDaۨd_7>E㡔#K}z~&2srrp> +HWE+IB|mOjq=h99XzV@ *7u/.׃򆎍f 7gn8|\?=9$@|0D!dc(J'X0|20PQ Lc|MK|o-\;ڵ3tܧYvyvH?s\)OǺ'kDXAGΊTጦW3֎`*S13ӃrL7)uACE\,Ԯfr.j!S+#V]Ҥ"#9u}{>*p .ca@ܘUKM[́8 @U"V֎f0wJ!6[hWGs1q2ˢ-|?jX&Y8F@U"v狆 *"vj>zGO_p#F.=Nt։cFҎiC)%tb"Z]38_L.Wrmrz0!92GZ7e# +թP+_#= .0k6Mɫ!zcc7;x2ǗKG˂ܠWBsR=*IHX=I=㫘OOG!=N8`;MMK|db\MZ) +1`tegX Al)ܣz9Tx󀟹aPRqvE_uժ*Z\0ٶ<jv +IO.wHGKK@)ijSy=AijLIDcN@T]mLN Nt +q7#OT-;@tM +WW+Y@cERR8)}cݪh kdS7{UQ۫NdMiUS&Ү%nAJTe܄nM=S sv9"N5M(o5RzV=I:Loc?xgֆU%P/t5thQQƒ'Ed T@<.14mw\&-Ic0m>˅g\ir1ә3<*Y{$D))yk3Q(u›OP=9@ '#=Ly"ɉ]O%S{ ++ +Ξli؞CtF"00!dg1vUFO6901sj65X@C% 3F00Ԯ:uʘ/_ރ+ _J>g[;~z%n %QL]]zS=9o_$כOqJ@7GsZ)'K;A (t챪7>QMR\@>CgK(L=YCuʐ ϻb ^GKN +[rFmԟ)HchuCt4ˢ]m7h 5b>jE5L-`du>Gᝇ݅|NglȝkE4qS9%ד{QQ\e|:D$~~uOhlX{8 '*w$cCTsF's_>D7 +@ J~%^ND&9fyȰj|еSjOgRl)ϻTlimWۂ%w 60Pj_& -g^3'Ք4K{?5^sU?z +0jah&ꕧX[kmdmV;]#|(K㳘4&+ZZRHa*}SҮ /GT1/7@ *ŧiw5Ẉ؀8֮0c^u O҇O@ñĂ1zE :X "Pi_/٤h:(X~C鼇sKS:`oéG +l{%gU7r DW|eksɨ=4c|O'mdh]c%ةڙ_]5?|룄cd'.X(>H_ѨyPjI5_ ~E:x HgATrO_%HM oͧNr(FɁMO]VcJG TTA&|ddQ$d_2XX7j6GHs-BЁ;?L4.`erqdT,8nL $7|I}U tDXD+R+Wku g)fkZ"EdKDjZfr9CiS ҤޱTD>h)PZdN3ztQkT +auS0Wx10J] +{Ń$97 2!pj_g҃||5X~P;Иv1EI.kRIHW.N֒ k)P dz%Mͷ$X 򛷽q?rrLQ}eCG;N(e+v5.'z{0BXkd.{58j;c D[SJ L&y?c[[qړ}l{AJq(\M~҄mbڲb + +weN3y&'9HWE׊Y #ʍ}  drЇ 9JU7Jo[hC9tC ^ά^NWAHpm=]r9tAxx?_|zgckѧWNj5ndH_۽b&G?l(iSc)(Ilf LoX60کh6xCÈI{>U#d:7@APWM((eUljnw/UV*pJ>2RuyizE ol\5+:Gs] FCD=G=dɹ]y7 cZM`$yW&Q*?HYM6|A1ao)U}<9bJhE߁^IOunwp iOlD!Qs9-a9&,2MKU +9IqfO_. )98_t-+҂Mr=E֋h-=)jKNzfY7(ܧ1I5tѾ<ҖɟSAC0[~3ю\}X+]/9./%%&9i_RMŹ;qneN50]=?@meVqiLo K(L\K'~&8Nr|Y:NvՎ,jCIR5q* 9 Ir u3VK*x@G4{}],i8$J V +I9<o ?fk^`ZiwŁ\L5PG0M0i7TS@@r vѠ7GPvDQ(+j{C AwE3zߨ6G&e`sv,zْ@hZX vlIeyEr}ow(rd $AQ| +9*P 5P6IrH^\Ux邘 +=Z;dv_XHX3:^Gd #4ؓAW`_s̹/&WbQ$,]kD*I0laH?}WXD#/f}CM~52r]Y}J)c&$sp " +c$蔀]GUr'_[xɹi} Ҫa [O`' no1jǒj ohy cujw#oJr;= w?]3]SWDviŸ6%R"t].E +0jcP(!wtoph=Лǃi +{g,t +Vn iemI$xa"dd^t &Xz?:,&u{݅5d fG[pԤE1^rR2r L˾jeՃ6x%Q+L{U\ka礊N秴so_A^9]#`7Ь V?ݐܧq c LHz SVZv`L`盖\)t:o,UiStW&".9ԏ"H޴ˏ ߫zlr5,u _#!PUr0@[QJ$,V~UG]J/ǽ9FTpNbQtX"Y%bidl~E"/_/*Ogop$yj]lɂn]Ů8)pV1aB1S0`tր1NA ?FNnHmș|@g7{Z$Y¯ڊoȃQWqzfjIx\E +(9Љɠ_7tu纭@Ab WT(k:M{sUI)i\Aw0;8#W+u|9Om@_Vm ހDfs SV,\#hUx9~b;59Bd !9{I(ޛNi+&h|9{4lͩRw:Hz#*F^nI1_f}_A5$/gUq䶨Ceţ6}7j|^ʛ3p/ @K[A}8]KxKWm4n"wDKr Ӽz] mQIıZ׌ʚ8AL'@sACkI;~*;6h[?|Vu܃OCZY+TI +ErRֵ>P>Ƿ';݄"$"97G]t6+PVji>߷/[ ~͟SWDD)S~•4V؆]?G3+qFM'3۷5ْњpo"^t^oQ;xr`:sy`д+5hh̸t%c.W^%ޟ䛜 Ly튺cdթjhY& +kVY'˕02s:+KfJcfZQSr`|gyoEep%ߚoafM]|"mθ0Nl 'eWo&b[8J\==UAaYa(^,!Qo%lKyP26%(I*g f2ȈG&82^)rM&!fCw:=Y0C8a#^?l z_/h KitƇIqAÔOb,/+ +\cAO%(.DQv;%Y+XPvGjg݈xh̗|fJc:KCRJjW\~z&:oGnzLlX&6؊ɑx;c$5 U9%í#gl2p}nw6@[~5P)|PE}݃4 * Ot7%xI `^ + @E6Y7Fjr$2}'xޢ@!i}oVU#D$$$Xp< =J.wEЦr* )y9 $jBN=tHHdܥχ3f‡Գ't䧴t^$|A3%7~<"P=Mg7Oй[MX(uk_2RinetfHN]rEjX:#ƒp0G* ^+7ЅW¯(y9!Sp8+K>ڠ\C ]Hwc*7f z:U4ML erc>U3jqlM]. zẌ́kd2gr(Rd:. m@lsaF3,m0a,`Ùeq!.$o95VE"nk}"1g}p/K]+jqto&t*a:"Fvlر޾z3Pj"|X a:.3oCie )'a(5P ӾXQN9*iLGLRj`)!9BuwJ'h +; OlĦb6l;KlF &9LL=,!;99us+ cOa@ժ2`,6f+'x̽Ma/Ib9m#lkVMD +=.Ęn.@+O>4A +ݟ>o3;^J# wi4ӗI ooce*_sۛpvQ-y{?@K@ɁG +KC +k-lO +T`31q7hJRrxȱxi`|gX|p 96|54]GTn@BK9'l `F<8^'v7]YB-v!_Sx5$Lhz cBN uhPT}0cɫmS,ӺN!;/v";LOR 9K05E s.&AJnr0s4 Ƥ ,)F^ _*?90"NP&;zQ0O>N]_xέvvӺAH%W7pʟc Gh8 !RIԾGɁ*G-6V*oʡ_6u#$A>E*(QJm*5K`@GFRx\ 5s0 c.E*6|Nsg01E+H@2_2 +*M^ڬKbw CdI9?TDc#ڳ0q<;`0̇J_D˪cT{7l iuź{)1{BqU01OS, JeNj*ہ6(J 窽4WnMI'60*uL T@Z ^0cDGIΗvіZו2yk,1x79hm [ժDNhj J:o̒O.h& *罤ӫc J]c$˝`C/70:We\Gs% ~ +ͭ&Vt*g|ɋ$+aYS^s#Qw'cx+y\mBEQZ Ixq0>?M`$G12*ڷ%hZ?r:8RϯW+0OCTlQ\>."@5'SSqvx> +'9GW]%ME07bQ1P`ôE7 ~Fi6_npZ DF_>&n6moX5?~7W\3}2FLF74uy+xy?]Q6|@o>qOkN06u'SOʧ5B[Qս>+*ri4񝯵F)fx, +˯mk53>  +i ],Wm},'rTl.^3-/*ɾW! c9]jR"kn]~W^PVd!cE˻}Rp$oWOa+nbt1I)|L.nd߬~T>ruQ]Pޢx.' ^Z}|!KcTL?]㬁%#J+VWs$9B +5Ej~AU1B77*מּQJg:6zc& r|Ƀ\M?P`#b(!z6**~֟D沐-$K -(B}a<,7 t󭹱MDJ.*ΦC Prj"!%G`f+tdd$( 䚾~5ƜTFr5"4fxok B{1ͻ|EFzxY~j(r;7YȌA)~kFS "RS! s٠QSrO6NYAO5S)sARO Uo:B([&04 U%J_-N;)nT +} +ܞ|B`ުBs).߮}M2M* _-A5ÜgfR s~Gk,Ie_UrCF&ݔC+>=9^9fZ"d7] B6ƞHYF 0)[~ +*CGwn^|q:b~2Ы['i~1hztV?:"5>9!ڄ?fmr0AͤcNNDRGҟ- :B/#y O h*#@ʮ\5U c$ǟOALvZ" ^4Rie=mW99 +&y2&&m%)9pc}0n@890Y:LJu!5ik6 k~9BBCtUB k(=RObҎ  C0h!S7H:׷V[Dhr*@gO;Mvnȷp'aSps +Ncc[#Ե3^Wk(hHi3jT~9_L^3H紡c9DWMODzWɥ*R#m/iы}l7:n*"^ |8< +@kwHT'޲6o l{hBYۗ()flkM*=LW +LKgw#FlD}`I cXZ[(?c,U9d&ߜrz'G%%q^`Yys7(lcYJ:E;7.խmb rSĕW|^as8cy.av"oA:t9\㊓TvQ#b#+vꅔhj-q.( +fN]oᅝ=_RUסޗqDp5rr4]> ʕ_I,Rӡ|(l>9\za^/20pAZkk3ţPΏm#عba WqZ՜z9Rxs+z5C%#9Ԅ>PD+UhIBNZV)xJxJTӋF?hԅ(3qĔ<ש~8t/@Z!튢n`A}JSIS LDr\e1Z%Kǁ\`~aŒ]=]HDLP&NL)BY>NR|!ΊPКUQO_ +it†a ރ[#E}LF(:5u0]ϦSӭŹTY<Mpy=h{o#xK3cp +4J*AQ*Sdg* +V%*`.LysJϊۢ%u0̎`تScM"9"A#ΚoȒFQɝB"#%ڣ;;uްbHOh_6>#vc"!S~ut^rNK\ ! P]|r:,\=yuZfJ1J'h3t*Zkp3>M7bԎ.%5!Oʡ*R fWs*OZ& +3qFukǕ.}˗4@Q +Kr*awvSaK *HTZ!'[]6ˤ7RަMսzSM̥~^_ߨ5r&_cyڃTfrc'BhGv!oZ26T`n:g<Ə|nb,=w33@rva4@uc*#AnS02GPH]IOYlj&֖,3r2-739WTYi^ztzSWNdh&E0mLAO׫j$rȘcVs?Y$t4ʕ}\FatIOYҹrYlTO$X9CeOCIBʠS/IRdɵ[eǏmP#:ȥzC gB +[f 9cJN:7MqC|GHW#`,׷]W@?])W4J[62, =-Bں7]y] wWx*#aYz3g4u! dW]}AWR$>M\L7ȗOexl7n1ʂd'3,X:Ϙ7Qa3 +!6$[#Hq>afr(#Ngɵbշ6ɚ3,FvpFуQ±#$91U>7{|v[2EM2۰T:ieЪ8/á]S} fzޥ<͂n` +a(%N声)vADD.J]ٿzʓiFh/!~j5:MѦbgJ[u(#rMoydpou0WwX[CzQ S#"az 269pUF;o&:tXc` gЧ~ e̛)FY2toP ߤ1wMG PJb˝4z%*r&wR-^b}P%n1KXZ 3!ELaDׄZ)UX +坚 +c YETԨ;= յN׉[U̥@Vŷ&5r-'![lQ3l+=+FںКoy9.ic:'0ԃt*W]]W + *AlrP*<Le@8}'DJ 2x &Qe+ qZj<3F~Sq/#)e%UX '+V\%TN}<}| !N[N>䵿N#LHvj}:A AG72N_^c +Htw )aL& V4U]6֨mJTy$9Ewa(S8<9(,&S Oɑ痰t [Tnq7TQMIDɁLp5hUoz%ն)[]:9X8J/b"T=wc@ _cWO#iт"FWKu uEݒC(ˏFZojx3-Z8QetU7(̐_[x*:GDIuđ]o&{fKvXZl1إ@놛 ݮAMU9R k9" +J祾O)ؔK(tl$M {yǤiI(c"vaCSq +̕u1M#џzB n ENXD+XwM3ƈ`\/5*TB 84SYep\$45Ƙ089 yҴM[fY3\[+v +<.NS8:9(g3֫fWp8#1ϗPE-Q3so6é]FlnP]dl=E^7fDt7H:I|>6]ck+KӍ;¦k}-6}բXlKj Iar%.mzH$ O@@__g仁߮EWnnRTUήdg,б"'fA|~p 5F_y^c@ԀI Z(W{cN.Hp4C*9>ǭE3lf9,i$b 7OEѫ|9Iʒ~3 ŝMQ~Sۨ{,*֦%6I.hm?QOyaq/ud8di5  & +`ѫBr4[?촻¢hW͒*[ ]N=V9ƛ+&I vb tZ9|xIB=nӳ92*SV]f .]}&d; +Vh?X1;E+BO!aT #n M +QVD.&=H*2Ѣ>4OMXYwF L:_;7JI9<E2KF%]. +$0]CKūҼ2)[t 'Ge'F'WC< hMBk?n[-+Ә :wQfSw~s!{)Bto G|:e0: +.7JӢNF~'kk ŷ[l|!AHOr(DJ@e,nj} +3%Q1M|Ӎ0Ƣ#tr2R-Ljkt ⿯a +`;7Rc:sJe"Uࣃ +ɪ ab7(ΨrOc Sr)\ڡqcM^ Ԏ)bC3C Q^13r!+=)]@V#˃ Z\N)-%2kRbL_ jZ"wtihVHsFYDx$ipӃna@̟ū`hPI̱t~f +`ۈ9Wm$8^hܰ=u3b<&9Gwyg>S\1u6/y!LOrujK"t~(_͐8/Wr$1'vM.eSȦT2$3fKtǏs@ɋ"A[dꞢ(!0LڜًU1Ηz{U,_3P:9@ڳ vÈdAᄄ( HӣRQkܧHBBɁL>X4k9.9&U*Kѝ(߼k+.O(U&n"kM{(.MQJg;~+M8]SZ:s?|(]qNhrpڸ%չq-0L>Ry?5r-wWD8>GgVPMA~Zw]ed7(@m#QkEt 7snҖ@ +_vJx 7F U,4(t cc1)hJo3pP6:{A y'[g츢GB-S[]ªI%k**p1 G{)OUFJ-}z([%!zS"ҋE, D +a1YC X;Tz2`KE %GXZ05)BkpHQ̬p>BΠUDHQr,QJlڱ|*i12 $ I2l4]dq/Ǡq%61VQreeOYU2J nBC>/=vFg7-J9vl\-ҥ*>Ro,e˶ +YSf/A7ɑvh_mF?6"je"8JO* +fPǹqɌlFzG+4) 3liȿwuQ1Q09Us;F+ #9 +#T7_ np@ QQv9s# س>7:\ԴsӣƒTh EB2vԓGP>0&*KeJ}o}{vVA/r[c_EFg4\HP%%. 27w1'-]:^-#:MҀMᨬEoÜX_sa$ ݛ2Lդ,PzXM] t1ߍd*go? +*EΕާU'#v@EKZ= ~,GUE+Yz`OBgT0S*h1euf.9K.ۀ"Ly;Va*A~\~[SDhBS;p5{S jcrHH4[võ_Y4TL<B,̟W{ꟌQJor$ǧඟAk7(j$5[I9 +J^#"# f .CwM:.MtͬͅgJa4ퟓucYq6?JPIrJ,G;jcJ1|tǛIU] +}Wq+bڶmS.i!fn\\(q*+%VrnnUGٽ)Q 0?j|S7:q4L^.'+طx\2Z3)P'dhbW̔-yBp' ]Rc8sYS併}i("RAckTत(J;\;/@ƺT$͌}ϖbaݾ8(_]J2J0LPV`K y9>0}卮HM&j;3ncHplχBx7^D #+|~%pzo,YJ';F<VȀy"Dz=EȪ}` yrbA(*F[K2?،LڹHlz5MBlf|C Β2UCjGRpx{[_sE` +ػܔ věvɇ[XBz#oE!>Mrgh[ᳵ̱5q9v#*VCىd>pq AA-J +SQ5/ =>(C!ħl9Pw#۫НPSm*`q fɡmL +¶UbDoKG'_f|Er8^7p0Fx4~cGg;XP[u'"3@ygcI*AA ^Q/T|2h^mM 4%[-v6Btz쭫dQ/ %b/WUo($ C?W\8$"9 !lIv޶7j޲-zɣēX;ƚw6""dCD5֒3e =V9َ:t*=r +$w"چn"Ҙ% IH@ꔡCSH=kGC$)%SEvXK] +˵2ub U$-zLO˛u |\C +n wi 0LJ{ = bX O2zt#fBIT-$$uz׾fRC˹~:*eta'}|VۡTڬN $iJY_h(i f(W#V/j][Kn+F,rhWduH>Q1HhMHA/1?i[rHkLR0sbfjs ]OPOlrusm,aF?[P+F$Kc{B&m0DTeMqgඎ5 Yw1jӺ) Ao˛eVmD5.@6hQjU O=WRdUo,ͳaYWJfi'q;ODׂmG3<1e윳i26+Z/SD/k^ښYjZHWdR9ߺ<ˆt|6H:UAe9pHqQ,jKXBN~0}t'.7zrsazm91G`ĊT9.QIYhxQPԴcB +SOUb~z?Z*ujZ4aGhrĥR"qZضf1ƶ )EA#0-RV_TPs*NUɹPhZ[V[\k<&7.{7I@Or Ѧv5?<~vǚWC4^TDc WRr\EmqΈpIsvu>('B=:Uv\B_xZ_ ֲ&*0~V-,Or_qdJ|G3^W=eDu."h.9X$o M>v(ʋ(x~.utD8ɤPTz 3AEry4yLqy%w099 س-N͌VR]hZ>WGm>̹*4{O%@/?Vz0nMc̀y]F8tDܱ'jM-xT]}?hJ PwpuMNCI*EA !7[+2p?UC~ +BZKVզ Q`zr@{VrMWjr,sjr=M4?9"E%-Oo+* E2oK Ehn lu1[Ck;F-j^oB%Љlr/ZA[0*)L2Vq$ qX#i,;bֈSU44CTidR`c +ꮡm+%tFKJ--f6GߤD +ď,{zaH& (%""T mk{גX5g= M)a)*gL,|nxuѡQh\fhLʼ7#r/ݼf6t߀ +tWDF I)l신 w-mΒ]ݧHi0F $qn*7P,MVnLa!)(rb&yX:s+qW2u5u+(0WdL?fo$I&*ԥKrxү +d!*WӹM=N yʗ˸LAɁL䟺rEvQN͞z+2a^#9Ўeneiw57CO!DQPWcBtly4{ 9.ԗ΁xޢMUyS֋QmA/@ 5[7(<iy~,.$0)\IPw냡KSB,+3_h<ܱh`+yI R_=%UaUWcEXQ6Lp*=>XInB;I~_FJSF+q%D B(V< ݏ+:g"99Vck[cdKU]b-H!ezy,Pک7VPZ$bBIvE8V&BLRwzӞ#:CY IMhN!(5ʌ!ߢ7qX>L!nS۪rZ$&gH]lY+t.8tP>q2`Ọ0BF ʦ)WX{c~Q7-j ;YgंȎ}9!JbSfE;\ (-c4@k|md;/*҅!’)CvdtM71SއyYSd`!(/*\ZXQv +Aͧ5teS~h?+ʓS)UaT$zz阙 c< .DYbq3'nb[uU0`AZ~~D|g*dSʗBt1TSy dd^= +g闬 +MY9Ԝc3UcW֨~WP%2•sEtʀʄ4iѩ።GL]dHLE2f +li :hhnR?cԒŵF U(oݝC@_mdJ+'G Ogl7E1B,*c֋q TCK1/WEşnEyގ.'j#l0’ +"VyO>d.vUU:nʑPe(+.fBa],nWL/t09*"JR i83 -pI +%KactD\Mgq%tQ+n"᫊"#Vx&3DHti̩$R*5 &6Fm$ ~kDuh]rIyF;a9VO +DpKǜN7q7@!C0X$|V1+>pOD FQ)9Q\YtndAɂ¼wO,)P̝6Gɿl|FU@$$+P99@Os :Kt5VuudCH zPɿY+Vq(BA F6U%9 +Sg% 'E\&ܩv(N.,Mv~j5C9V)pCӯt(Vi&+v(o`hyTS! 'G~?hF~wݙCE)j[*bT"F0Z-y^Of4Mtyj"{:muYe#nq6T}9G4Aͭ %&8Y6BI,? +Mf&,|]e+wrtqZٱq4ʮWr ]BlHzb_:2H`X2KstW5jdT ʡUnEN.bU2@(Z.f*Ѝ^+`9o1!Wtp~(@IvaMXRZS#r\6F P?6i0œx:9Uhg@(rSF.YU[Ԋ6;ǘJquH'f3spR4G EؿIݷ/oӒѨͼNk +.  R> +},c' wy y#퉖D.yLJ鋤K TN6lB%BE2*pdKJh:/ +3tP>GHVɄy{]]Q:crTH:% sӵ}s=OK:C3o9RuRfȬeMƭJxU} 7#.j9ܧǁ#AHR4iQ@ QÈhQ+"+e^7W$ye`2~3AY7fmJrdSO1i7A mR=("5A=JE;mݎo܌)kAº̘QBxz6c$ WЍXPƊs~ʓa*^x{V˾j)EUUcr+" I?a̰}}$h42#]~q\Md^ +< +0UL~P/o|7j m$mOI(y1Nl*-)$RE+CZr8N fJb5g5&aOoQp/f~9)ۧi}xRA@jҞо+J2NUdS L7uNy_'~VMQuտ!0|~5GGuzR $G^`%,8]*MЭC3 ̃R˴9CPL@xgLz$u%Gw(<'V.+ b̸/9J # 9@).۴D hPcR4|(ƒIUMgksYupg$.NjkD`XD͢t+CZS624zIX),B`ԠݶuɎktPnU%F:ϊp[Yjg+)&㲈)*O7Eэ#39|)Rko) _oЃ``hڕ3] @q||QoӅ pLXQ +%"t66-?H/Sf8ַgqީGl  -; +$8;3wsn`za@̍(.KUEŃцcQE)$Ga|:];szdg UAjACKȷeo -ɱ3iERMehazMa`Eϥ6]  M1in[$l4K/`N؍)rTif?-x5rr4CvgP'I%;{OK=DLB׋I;ʦh(@ڡX dd,\*_ _ǁua'!OZ' +%$rMR3*H`ѷMY8]:Cof"`"kP_712l"B^ E_TǴs:8$cQ^^{e~Q-: +F̫H&H*&:XSGLt镛qAÚ(|>=0h^W4{Xr!q5iO)K9bZI:IMͫYsI%z s,ۤ OoiQHQu!u|mZy7RMץJ㢵7gCgWء3@PRޛ>MYPp1*deĂϑJ,%2q_z;~H4*%GsbȦYcMZlRCQ`JV|Ò12E!^²9OTw"əb10ThNLɦM̫jк*3>BJ^).p'ZNvcb͟e+`lW kZ]x| n|%c"zvNvuUࠗSJTGafXBG#r NI_JY{G1+r >ۀt>Lw e3TjWgj:3Kk+`^Ź66tD?H!*qߨ "U&=eh(FP}iq|K[Lؼ+'7}h" +lU|i\EKgceW)I>RSJv e$$0 +0g1fke)*3`ծ)Q9ڧgb2ʸIB郪h:kfȚKCsv-oJ(-w^ s.AZ6tB^ wZQ_SA> @'GO +$ԅ5(Fh"ڀTZQ`}RIr&eϻjDLG>4;9I3ԍrTFMTjֹ " O]*EoS1_yteLquq he*ȔH_S(OMcUrmΞ0\PF +&ò o$Y=8=[V6|]ہ'YC߀S|jM҈--9k.#a 1TB_=%(ZZ"r&Gw_^85K@6*]GęH7LB܉b7[Oݐ +%Lrٮ31kW rjqC?1Qb)5#m)dAN>{k$BҍRDKxT)xbzf.+(j2cȆv +)/qpDƤTyId(ú(LBŨP^yǓNݍ<غdhQ/K楢7: +UDm-xwAjSŔLpA6A+[hȐ=C{dZ;#G7*OX4մ]<.6QERi= +ZOVzTvcËON}]F3d7V]!JU# @Za +3t.0Đ,@rLAJ!bd|jNp7W& +/lnyU[[r$9y@́|S˯6\Dq@o~Q26ᖵ]5Q- ST_vy^tT-¡&修4QpVH498XtuӊlCh≍c:\f?#f$YnƬz5֩WϲV#WfgoxqNi^xzD9̇+؞ߟ ߪ+`5ӏdዬ*3M&5,Ou!.7{s*kazFҩJ$C I.$x+$\Ӯ"DEGr [̿\H𠞍~DIJVЋp0iˆs+Wܾ'C/Jſ *@=]rl$pɗS=nr^:畩r74N|$N* 9"n%mE_65*ྫߪ#y1!͈})zx `oZy:/ uzojLhjˡĤJF$ʈ 59,y }5 C{E"3h4ۼ'&: ^2聂Gɮ"&kF(E\Jlؒtz8Q&>Ze(t< MpUCn'$< \V̼|QhQUZLw#㹟>Pu%(@auӶb9_o40S4=(p%]ӟ]N_=D| jGȯ^,ыyEaIǩHkcy'PrQxGѿ^];j_}98.yWyƪF.^tu\~2 Th51]GdQT]-=OF鈋sސՅTQ#i1XT uK*Zre[2f(%29SsEvM֜c"Jl1Je3 +#$RB0Db>'\2dP>jMx*g'J%')7Vl:vvN| +Ȑp4BZQcoDP]7 rC 7a$צ2G'w$:RkctEHWr(KQ>˯W,кs) !.5p~h8!L:9<g+MD{A0vF`Kc&R%)&9@?HOmEܠ03lBaAJ}Mr09: + Tr+ς}UblQCJ*#E&Hr|ind,& +ϑ۲}>M~W,,iOr&Q-KTEGQ`gȲh!~Nln] -¬|ִH6[#"Ó/=HgN zH.JQij/j"@GjZ3.Q+*V8{u4 }>No]zIv܇((ZTf7"M ?݆#Tƪ~ +0D 2LjR0-BϤD=J{!;)"Nu{l4;ᧅV e(  Q Kh?$ +X]cY[L\B(CW&cA(r`_F <'sUŀ%JrP(8ѢQc ͆s>ĺAl4Jm + +FS|\lfva ߫@Gbz t:7W Th,FvVwS^ 0Iaq|7,Sjڲ2ΐ'Nr\g|/j`rBF/jDe`jMrֺ$XRKe@.]$p^v̛'TI1 Tnez]!yUuVTnuӔlX\Q4cr 1RR%=+1q~{7ԏgxUh(%]3tBǮ]LR#*SДz>F`HM?t^\+6dt[սЕ=s^U(Jyƅa=ASP +\aHĉ-FkoTIiM6_L~ +ר|.쪪hWHeYb(n~ԷBOX6mHCa*FK6/PgI qYBc.%Oi_NBp4a|>ׁ+:NraUi򪪞e%<ŀ% el*.'a05%L&>@ +êJ03ȃrb֩@L[, ב>;I>m.RІ +]`KR@JJ%׆M*-jt[x'Nn V&:5߼/@GpTG⣹= 3.aɠ5)//bFLKb]3-[jr%cg1PG?:y˙{~t󾍦&Hy]5cLJ!0m#I$q"y3dQKi<ReU}${W ,9溪y`si wIg(x$3Wz@JrF-.m?w9P@x6i#LX!r(T9}U}a(5 F9% M_:/WV̸P؍j}ZҾ gIC26㴔BWUA}GTmG~5g 5O#gQ@ v&pդgCj*Ã=m\LX{[3*mF Q+>zf94zƹ1R? n NT..a#Nl$mZI2ĵS%,:N!նP0xޥ%h:]h[ְ&,M1}UN h.=rn{g[R%L:sGSnBQ*VanQO4SfZIa>}2wuVEҰ)^W};q'HhLDo'nqNW3n o0X]#JŬi5[(PdKJN>%6}^RKQrdt:8 +R&>OK%k`TI4PQUmS + +\*Fʌ310)P5jZRg)g#yN$n;/T}jvǧN0)J]BDŨ]ZmA0*RJ)M4:)¤Fy0qg[x''UsznBjoыUy*ח9}>ǖ|_<ivôA0ʔ +2;/ӷ!VҠ]ff?vr פv6Yݮ ~]?~/^k$UIGFOzpvSI\s` ;q6*"?bZ r`'F+@͂)DT'f4_F-7:@}[Hߥ~ra|&g4s#jȐH}8pU(lotaI@(QNoFKdsJ4:'C,”ةwJQnjF"H$]p.7eǤÒi㴫0>x[JnTmkH8uSˤ>c:LQN۪i5`flj d@K+,ij/ʴ*TWFW&)L4L$"][U,gd}Qʋ2gF # !Ƥ] nSUf[Ѡ3Jf0 ;Z+ %t[eixP w_Id)kExxcoE1f4&jЗv}]{\=Í$93ښۇ@؃K3^i& ͍pD9#Hb6穼OonBh.'m9of= 7X^ލl0\ҸY@l` Ҡ1t ݦ]4|M{uV&_0 Wj UUBn8RQi bO ێD!4 RBɄ@nA}NjUF&%ib5J?A7Hȫ^!Wm̭*dC}`׻̴"f$Oe:_Y͚$ m%M],e6#Q S)?nrWXtȧA35f>f$҉|ۮjsC&?h}`C~T'9cWaX`Y+4zh:CO S}vڲډ*xӯRQL# Â/ܖ{3PsU: Ɉ?ST 9-s~0L|,g߷_t8@Z28R6I"<]M\^c biX[?ZLx%۠0dvQ`ǷydGm{Hp$֌~iّA:sQ#Z|:Jrs0l7:Sz'5࿖:+4#B+߭5pb-G }9z חx0\?#RU-*X NT]UVM4TF@ 2cI9úzGn¾/_,XUb?pTeCڸpXy! P~5Tk$RjEjk팄wA5}޶AZ˟fͺ囹|'0aC/CV}( +)N0qOF7%x#nR-ԞayE>K;~Sg~ +Z~6±4defA]2Umm?{g(IbN *MȊ`Jb:boX[ +)WoG€~|_94"c?0'#j3:dAGxZu-"UOue5jVs]NjBVg +U3Q~痼40ie H>]SKGR ~AK IB}^ bw.a] sd~ڜk& )9Mm~Zq.*o#f7{.S`<)ZL[4%U+FE@ndI$K1牯/[ݚW=y*+/W1`\֏kNXڌlph!fCb?)XzbQbiίJ 6)^׷Rpl5fksl9GNk!ދos8h4H=1nOqoڙ6=L涽' Z/mq̧RX:Aʗi|<}N16@ü|$q>[؀W!M'CSQჺ"R]3NK]H*gORXfÝ^,p_~Z0=UӤ[0"&*W`">oJ + xbo%l ּOQO^ءr}yV^W,U OV4q>M6E3?'imrS _.ӗW=A!ޖb|i0]__VO}PܶyF J +jG&4uj ,b@"fLy$qfvP@yz +؟ ?Af^$5jkcF0 }W{ۍpdRUvOUGZe4 1DZ>Dqv7&x`^NU9hn{;VUf .'"mTȫӮZ˫o%MV9MHՉKʃQI!) WïS-hB$!%a(d2~hnRe(/xYa5,cT*D?dԍʷR&X[EUV}&5J qMQeh6 T}}y>~ +ZCŐVt] yՙ$Ͻt>C2+ Iu5ypT,(RkI?z7%o*xzbf@|w?̡9=!CD4f͆7RLّ&3qD]>1L-fb:AblΊ(2EccF偬QL͜E!5_dqJ%g\e!Ƨu b*.䨣T" $-SUH_5Ǎ~: d! ՠ44Y˱5L8py੻Z_/gSưߤu~m +)ZԳ :z[ސz })D݃0|M#*| a'2 +Ous`C=iAtlmDvuv-a [ճ 3;i"CCyu{͛J83ym~4eU,Gnwߞ?"h~c$YB;3}9GH gLTQ~$GgR>޳Ǹ+b. &lx>\KICb0OWJ + +yF% Ry(|8Ȉ61 #w6YKs9*icHzq7"i`&m MOa=qnis2)<g;p|.-mLIil ũL]xZiR8"i&Ψq|hi@l!+L$لk6g*t"I~ʎ< JҚC]{#kLɂ1fvB>dNM͆I*5SMPeA}IU>^V4a viiV\_3`#^_Eُ40FGymRq L/@z=uҐ D%%'϶rW.9qVcqMI% 8lAmbYOkl֍hxMNIjgF# ՇŘ:]L]H{px$V ޠ>V.gӐ_6<; =vq6[{| `DPQެ?KMU?UZˆǺtlU1-F-~LR[yuPET#LhD^Մ\+vz mZzQX,j2(/r Ґ~rIH$`ܖ/ew_?A$(M/8ZO7?\1Q="'ΧPR@ۀ c d>!!q<&/ +}0AăԵ%B7zhh)9/30Hu !\14#\_QycSv<C@J %ii$I3ZZ:̋ 䗔)j%]݇"f):@OCFfZ *7 Zk3aa"g# +Wm7xVuD #q210a~pcUR(luwRkC RNyf]0ҟ۫#ObR>gHl4öHj9 3\V3>9msT _<pO[4M6d5k27V?p1v-̳鳏bӀcI7;na$SW߹ƈ]Ԣ3O2;-FFi5]KXcX%ua=N s9qs~ (^Ukz,I)dcMa<UQX]y OUNihL%ox^HAL)3bn >gq{U8'b|R3B3͙6qO+tSJ҉:S ]z–l!/z+VN~e_ AF^T又I|jP@M<*ip.vQ{+ɽh! pSɉ∫7cqz +XSfPݡ ޔl~֯Yl +OJSp"3LEl=l6MR}/ +Wq2F9l魩Sk]lB856+pD-PJ^~T_b8LxU,#jtl<7[Fr_+!K@Uk1!CI5j62y0jF?p!o!~])i`-Vw y̪ R3”⇸Hr\c4^jCߖ;{ۃفC',ƌ)猾P&RYi]:IejA4ԥO>_~)Epe)cURjh]brzwS94=㲫SoHW+äd3),XK}>`x/~ aO) Au@7ا^>4#vd_hmd]VC' Ӑa~#|\J7Dv9!Ģj[E4讫 k +/p۬m1p\=ʷeة9υUI[2!ɃzЯuXtӣ WyHCa3n#CjzHv'ϰj""*L=r*?hzMZ(rs3vL_*hI-wO87M4(S"C)*㵾b];#IgiFhN$'X2wǿj_ť#j6{m.eᴤwOnĔ"Zg`fu#'W=E}& ƖgxtiJf%醇*Gb޶҈;P/6ow9)ؓdiCj&-E@חUf? 3PLRъfM3wU[TELqaAvS?$& 82as j LUTcS0ro;jP Z͹Ye8Fz8t0!YYT9ɡ8*ߊ]ߧrq[!guIJ!Rf +z}ETZ'ծ<ͺ`Q?C^x6̭'j˫9ؑvW=Kk덎x#Iy5.hMJ~Ơ ~!oc}x[$|'tL*/gi*#JDEmwhM ӧpvXӱ=aC 8Ҡ?&+y8A*Dib1: +fE,?𙒆JzV?~UȐdğ-h'?/RPkO\K̩3e2 Y&47=e s{Vq!CME3GH,7 :f%8֍bA^Ҹy qc@r ;;)8{U- $mkkGF~,}"T-/P3KDfCo~ !ilSR)3 eWViXO>aW催U[}q| הg Zvn[־#e4|yJ)RGjid}qQ&`6ZTrFSFԿi$ҠA[4Χ0zU;$<0qv.YIHz9PRkպCY<-wA> KyC䕆TYyƔxBx]ٴUlMoU +pi3\Wkڙ~Ye@K׌4?ky`uMLuݾ6^ װOrw'($%l8s¶&|]\ pL[̜&p@)izXCc g7˸)Z:U*KnV} -qb3z ~ot5hW?;7K"{몙bl|?kBjX_le;؞l(e.>CS^X!9W̭؜AĿ~j-; 6U! 1ƌ$NrC 70i8pHa$):V'yG0Byh; ´}42gkt5 %jژT(1tWFкXI|JUH0U1˂.v9>AjE tiM},,G}h +m>xat{i2 iP\_Ui?[;< F59 +?§t߮* : ׿q|<(TqWKs0'O!@){2thPLJsWިD4`.{%Tɸ|P%g=u~JRaLڑb|.JLr: ۾CD=t$i_u c%BZOZP^ϓuEB|n28C*Wf,҇5h*.iaL~.1NE֦/;pa=+zvST3GcDgn^EblH8b4 Ҙ\WWFZxUNiڒӺ]`! رNd7*5AE09!z#c/I@et,9dX8]@1kfarם>0 ЬTʷCQf (92E/CoΚު-AtҀ{,ؖ/6fHr0*\pa5L*FVR{n{"K!=³"R'I(YaQq?xESeW\L0@P>IaK8FB8QJV˕kPPAV"J 4 ǕRD/\!5lZ), m 1dDk`z-}[i`tiwfL-y {>jW+ [AfŷܡJ4tHr)O( +RjϞ\;`LtL~ݳS>t ;zB VIJsAfQ41& .aNv٩ b} r/<܇V--zxtU(8[?PE~/4S_=3aj#ӆ`vdȫV7*\|U뽿2֪u=␞--91nX+OXU`oKk(?)fS۶l9} J%ߕ@BwǾCzOdU'כ C%c˶?~n_" eC|2m^jx3 amkvՊHǟ-o'g}$m'灵גּ/oz>` +\*GxJ| -ͯpՔQbzZpm?=iL#Nis:1nܲ/!ʫ=mIa8F>#AA-x':"am=}. N)iI$zYj"r%8peM쾨2i~`Ytp|"g<^nS p5Pǵ%OEwˊp5gLHذm[P1p/&kOcK퇕|>D]|˨#/TFL&Нn&;߽,o(ML(ȫ'iK4C!zHI|~(e2I"E_[} p½p9T+4Ί}-,"ݎ6&o *gK;2cOXhd\_ӆ8XI} )7ɖv.vԙK5i[׭QIV*u׆‹GYarr.O! +qѬ6G_:',|߭ߛr9 2- ́8'B_H{0pnfRJ[5 #W=Dh\bP4__oFkSw}"$I1Mm Huf2aM\Y}yգդ&)JlJdMeSxV 2rKR>-Y϶ȅMJ&wdU@6G9@5;Lwey Ӟ>HT@_cSKJNSIy֘>'MX0CQe N=BpC:9ʜZ-$ CIeL{UѾ߹{8,A?zW)|Oj@hrSh!: (,Cq<䉚Eqj1&Zv\po%ۉb=G0T|Bᕍ<ϩp_ +ٜƕ~B>Qa$w aAHAzE.8V݅w7#2ޔlzkQUԡ6HF]xBW'uחIipi1H [ҖlsUGliA3-K=LQmUE{}yl#%e4"sLd㋘CRm5d#,zf= +}\Oz߹T32?nΪ9Y]esz I Eώwc1Vcl@=RAHr6/h\wpA|FJWj25 $) Vm ѿ HWBmukNRThNfm*Ť\TLCu@]W<`^9Is@-Edd!"g4l^ח?Ѵr'mN=#ްq\Qpͧ%̦7$Hdh3MfLl I3l +sy}-a +4fBy}MEP!CQ5uƇV3|5=} T35h` 'fm.V~S;^$N+'یry\/jG93Vi )ok* +<`iU}:HXi[= D;g!*H_=Zw;1(;Z qACf}@,9́b滚HuYMjӄ6z9: 3al[˫%7)%;vڛ-bIDQۍoM)c,YiU * f7Q`׉-yՍD)4S԰´օL^tgBH1H}uQP %ѻWz2QQrB|='QJf."G@0Ds"HVzHQJ!0O[?;ϘF.68`J8f&R$Q@ӳ8|?ͼb>Șݪ8_'dt i + +k +6tI#0@mwA5x%# *VWKo~T+~iN*#nm08H\{uwo=t +챮<{#7xT'KE2'(㱟/Eb}=¸/S U[yDMA y"YjUfRG˭j(1(fw~fd*(OХ{ +4jW_C(0@?>b{@: oKԆ1?|w/t%Et6=\:eD Ti &?Hѯ3?%Q +5{V/s#bs5F +4mJA8t +9;_ mM)q`++7Y~Z9R *AVj/yh 8= '_J( cm3]z +>* ~˯92|ޤa>Ҽ}JEj2/F4~Vm4yXQ܄``4p { \k%nҠurZ-rr.?5C}ICl#bh4|m?!Vs1-[V~9~9@Fk +q>D/Hi\J&DD))5z\}`*!"ľˣ2RYt^՘(|Л!7O>qwi5[3kg.?h6[Jd +[Utv.HMk{Tgb?үcҘ'#]=!aUu>3&$\0Xyo$g|1ớM3C74'pmS_?=4}3WHEgJF(SfmjL򪋎qDX 9ۄT=1e؞I2S)]b0٩&6IM̼Rj]/BiEt__qoc-E_ǖ::)ǎw)$#yn3Xv'LWfFh镘k;{fx[@謕K{ Bi,S-}v26Y='/nJ:G=B.aN:O,ga $o|~uSw̗AWS;uZ4{MMncdy7f1FG氫BM [VtUm8hYL TnN)JG-oz^qQ*QIF_B7>9P)]HO,_=8ƘΑV_v +S1h&-U܆ D>%E.?Hpƪ?=?2tJMGƎZ=[͖oT APƓuim /rX$̌ #vSn;&6! >1zBȀ/fmWklaUտam%&Ҡ-۷6L4KÇ=rKvoGb*0Ʋm l GOb+%G'm('&zfFp2} c,?c R~?;Z}Hd"j ΫINT*]sL 1q +)5=E~*vSIz{ps8. H|w=}72S@>uv(\ƥ4[=GnX1w4n~- 5d;Ɗr&!489F) Zl=1Ne:D0tI@>IiV`gnXp]a1<;EnN^h4cv#fLi |$9U6*Y"W1\ఄ_9w];ºJxQh֍Z[߻Ixn CY?@f` w$D3\XLFI5_ͷn%zbcfˣrPڤ10S0DҞKz%{;KU 5N6է`5γ*8JKzf@(HO9}-֤8+yh}c~'# i*G d>͗E+}OR\7j8a]"iiJ n!)$ЃPqz <&iQ̡طUMlPP|+@o۽qLJhW6;@lPZyƊO t="2Uח?n =)7#dt5StJFx`nC(y'IL8Z𔆥O!_>+[mM[>w>oqq-{}Kc6Қ7|DSHJDDwUB2(RWI|(.CoUײ~f~գ~xVhgp>M +B1:)uQ~} {fr >~P짱*Gn.>PA\3Vu]rP*lYǠ~EN? hI]G440ڲǯYu~({$|5q ͝qJe uuXY<W]F iȵt G!A.'ȗ%U ⦅(r{~M)3zvlUo u ׶uUisPԻrJ}ֈ3lR\3iq}buSbI1tORe&$;SGIbwea- 3_4'tlXOn4 =6oEC|%Z8*vjT]DNWVߒn*ZdFU. +3*6uJcN%j7*!y]濐*)IUOL&~-.iWO *JCeN-O7;Iy0R]5'׿5SGf 6J@9vu|7iVt2,k:dr![1W7\ϝỠ3ōJjvR*Au'4,8>BYd$j@P:na0yj{V3dusJv()0sPqɴMKr|&D}&v@[H̙+k1q~4 GV U"7wv 7]T-IZɻCO@5#} i*)=Jq^CnS*^9~P%j30w#j763Vܭ},V~ `2~=Sqd=$%cst.z$ Ҹ +bgObln& 4^YuB&wQX*n ۹>P?K7A<@~y"2@)6_fïcfɒ'5zrg-(4-bo dd,` E!"Sw]Ү|ҽ2'}`n}F[ }{yNʃX߱Ci] +2t=+U 0]Y7߼D >gc q 31NEGs#LfKi!8 t"~5#[Sv[;+JiAU!T;R [D#!}g¸+эwW)<}? V5=RuiEq.QUڧ0 +saVܿ?] Ŭ; R*{J_0:sra,Qm9xԉ +o6$+iZ}ɋ}:4UJXبS2P]D*ӟgܱV]mf8Us+?0HPF! WtVxt7;N;QO|OlE2Nkм>?L(OY]ӝ(r0^gX{\N9dm6΁N2J\]Њ$[)$O;:'b8bpxSj4jƮ/.KPh"|LucU33\UW(bg`ݏ544go٤NZk &lsK~>aat(} ZvQ܍t,~º" p0q~V0K|pZw +ЇF^إ= 7x]ڎ44Qwƚ&1bp#/1frX$/X6C5[);4Cp)LH: N i';ACa@zKX;p3L`^)3?Ӧ1?B\gamd뇭6V@4 ۓ|#Ih(^~~'B~p\l z K6;9O,Ax2g5]WנV-H'U |v 7b(W 6':.T;Vkl׊&LOnޔٺp2 .oBwKP!wm?:b(FKDTk%Y*UZg=@%ٍU923b?TE`δ=_ (Nrei>\#4{ydF(@ag;`,؟[PG\Vh[*3R%$i"R ULQ<~Huh! L +[4XAq/UQ$;Q]"F* +s]qo\n@\BtazT^_:|(4 J:Xѵl |1~:4gB3|4:nZBr+NU:@"$} 3TTDNUnG_]=Ŧ)ptYf)`G'v\<3Z(Z( + N 7h|0p|Im'hNwLQ5RGӕiKt:#CKOg4e** lz6 Px-g_gzCI:fl 2)8(MY1h$ ~$ylI#pd|wR52zQFtkY]w^Wb ߴD * ˲0S?P|H/hULx +5%Sߍ,ՔeRiI71;8% @5 #W-574Ui>DylؔA4%ƥ}z5k ݐ9P +ldO8MqruQ5qSm }3O5Q6$//$W$}ʛTU/EU4{YM#v~^x7?Fu}}󴢶d.޶Z`VN勔||Ѯ瓛-#5yUv(Pdzi]V7v3,ʛYDe.G1%/Ҡ6yylO7aᾖ;,Z|h ̞BmВK 19F>ɾUqQOERymC#[H]</f)bXyiU%$ck]_O2dvi3 왮6Ic%XeZju'(E'<j֖4z*JeАbg&~|)||OW(K Ơ}C4;۹-oUz.mDZ ɱ늅N()lDv2#߽K@5ai(Q?Qmwz3]jqCJd4XREVI6ktnJ ݙSn A>( hiRH9V(񩹦CW1aq#x} FE`=<}TEC[,22OC( "k^>O1h ]gm".F"jy6 A* '(17]߫71tpBe+0YA=i@Al@.zi QМh$*IY0^>uWHIN/_݋',vkmu9z3IQC2ȟ6G؞QV̘8u<"+;FK҄Jca2˕xMtxLCT6@k{l&*(YëUWb5S̱,!:.lOiAP_\^&jf*˦L]SS$}17p*/L䏢 FIFxKsJ:r+9= H /J d|$瓔 +Fjڙp蔋Aoza ]=Cv7fdǥZ5po*%ȞO(!$eI6*Qpê}yQTgH&q!;:a,Uǐ%c㾚$"o%mgW }A.s@ %ܦ13w07Ilዷ KQ}}y2UbFu2pJu& +}F +ZPTiE#kȌ.aniRHFz>WQNM! +8&E &Vky8y4T'fƒা;ݿ!J_27*)NM~<|#j{ wt̏CZ[qrthɽf )CH޷l D㸔Zs}] ړ/f-!󜚉iaiƊcO*ckeV7q򕲆>Wtj*ҬKqiҗE.iܩ Y$W_W +H Odmh3Ta?_玲LD}Kxd1  i0(!HWQW,. )U* B +^W>'nXgte0[4(,;`HlxjV1'h1!40{3v 3=i ~k:7?僗# qÅ(l }ן+I HDjEq;8~63Ww# ܟfɺ"l35 Z-NRAJ2lxS:fN.B?g@;Ѥ[JZzI';1o. HXESGҨM^`6wvN8Qqrye(kB6.U *ߤC:Z {c?Nm" m:D$졬r`OPz%82/fWnBTr-q~6f`Ec(M&&wWC@~X56_LuRgp6+W-`VݰS4xG=㲃"L ᘌ%@v!0u,W0lqRj# Nȫ;&uP/KC0B\hY~9mOop'!q +@&p:ϤQɋ?M;̹;,IQV_}t.r +Ѧ#td\ 6߇Ƅfz;K}(ma!@CiY__r㔡wquWLVcM34ŭJN80x5XU%/ d('lCf.jܽҸYw}y"b0g(Jǚ&QG x?moblŪ^]ud0S<:Z]rhd# +RotϪUJD%&8u㤖9e$ M~u»ObNzϟZ р["tlJR &LIu!72gՠ9ap 'ɞhT; 6t'#-|aj9 i +f`1ng=]KJOhgM5EJ5GqA=i{.5 +2?`QR$W.h1rycÄ1Ϣ>m0amk(F:_`O|,})aj}*ݗ@ , .p\j>Zhl*p$`U ]I5vn`ʪܟXƅZn)^͙ں-]q ܪJڍX=zH8_'v5ڋ~wn ~ +UwCjB:Q鞾i2U]@v$F'\\.slMf̅A\(F}LÔգ&CBSuPG/Ki OLnjXRӉ ZwdMS8&pxwԥF2zKZVQ ח_fW}AN1{>hE4Ӣ`ݺ`|OδM?TyUS|-j$ @ z0/ӇÛW) lO\XUu\ pO#q'dwor0g ?2N7ھz8E6#gǴJRIꀢ%䳒^ܙRrUMB@l%26i bS&:j0qg0v +Ih@O!s^ >߭ߛ/S^B88 JQ! X}X%}x8**8 6Iuso#׌! ?}[B( 1Uy`ʨoX˚fEޅ;X74Šy'OSJצ97rΥU& rGq|KU }M죭 !Ɨ{njzoq?-gNGqhF ogob>Hĺ-kJgC,bj7cI@ʫ#-NB?F7CdMr̅CL} r"mf`[s}Y7 䦇QB w4neGےx59Oǜjhv6~{Q),:ړ+YBLzѸ,VUoWؒ:t? +S". +A=9+Zu'n AiDvy}֠6:zkTj`1piqb)! #"CR[k'ɺЋe +$֊ZJxӓ ڥq&[V,|q+Ch,p62sJ/Nnixϔvӹ2M=t|]`oѱ<lxI*}|@|UӜTanM!8qf2|+?|0SDQ^|jE0n.X}WoI#_0ZHCb2Vޚ`ıNg kI~ X }ڌ D +xc}f~4넌l$dOJmr`& J80=$"}ESt?.iiH>JZV m*7oc4n_6+Ƴ+AHDG[At$\@]ցst*zZLFvB^u1Ze-# mV_9j3>uƄj6ů/1qv8"361PMȫtga?npnAp U**Rxi{N͆mkޔ6Ƣ5lI.ՁqWUeׂؘJ2@*+Q4k82`ŀV<_p~#{ֶʃ% Q[R^vW=|v{gs B)XCh^:2"bP;M7Ï4C"!JbX4 ҿ^*>=J KҌ)"ŗn|w'0o4#B G}TF.4UUw%v!ff"$W~HoB(Nen6sJvJ=c}&wek+TBq`RʎG>m14nkN䖣o 1zA ʄ4t Ƹs tCQc%>v +O!tݘ mݻׯ4.g(_}KD[M'->&bSZ~q׎)F_ O=Ît84 44ZSZƥT-\47Ei a}װ.ˉ?re(98V4zaY:x\x +'m_Ib+uɫ.r^PR@U-! +zyMSkcn~5_g QɊיT\vU3>u$CӐW=EM0 ~jT@ ~OLk%TB -/34EeED4cX뚑%/z6y^]O# Vw !y'qЏz_8OuMGih %PyI=>n ˢM2WMBpg{go $v +}"I{W"⡱nWTh33];RpT)~s@3N&9>Za$rz}YW+u"CޟK't̋ݥDuTjݯg´>&X'Xqw'XaefvUχ}Y^=[]*tИ4KAbLzfꗉXo~$'z<\ ooi,g"y}eM9wU[Omxxj]^ip)-zbu?Ƅ-ip<:@P4٪=L8nFS4#h*i (v{~ K;}]"0S܏Xut_Ixk̕;HmV7]^ax0 0UUx㬈IĞK/> Ũ M^ R]7O'i(.#]ᄨp.1E7Ifq Hb"|+p UU}E4G,XO0=WcWls齔8PGn7aN4~+gƉ CHMY;ܩdaVXQϐ,e₳Zv}g]|+ʹMڗicCSuS=D#7)>q4'eKLcݳIad ϵ0Usl~؏7w'o/WC/p2h$; a<3㙱kGKwf\6qI޼\f)7l,sJ]/!(>hM +Q@&[& +E^/Q/K}ogɩb8f@-,xūp ,1k  ͊)4.UqMaT ,(Hu#NIتJgT5k#<mվv8ZiXRkѷ3q`~ͦ+n3oMc~\NWN0K!`5gRvf`ڽ߇F8/aigޕEkGoN*7߫i\Ԋrf:O.Z5UG2 F. JUv X pDSX)4Z{nj2_IĻt0TJRޢ##>&gjxSaǕk:WIDn(M\@iV;˦N}ӍyG'!39 %Y7AybJS6+g'Czti`xoP7EAKdmg3 +$j+SAD[M7~}L_HW9 pcr͠˫91-춁)b_q;%ɶİDZ;'`QnM\BD&3)T^eLH7~Գ:F!y_`W-ͻ?KtS1ּjH* Q&z&trD5Jg`a@TPszN NDyRK߱Oo[Qf.x$ZdFHY:yK#rvN톑൰wp)PH:p&lZg;&nҸX +y}y"uc݂^I'ujcެ;V08f$ +w}He 1ȶf?0>lcՃZO|99ƃ^^gϗ(ܥȟƚ +o[@ъF3S9! w@b<#İ3#pBEa}:/UmE#__r{#5,zN(8y~iXyխ$QG{ Q0yѫFɓg)MŜ'TP̰LʾDr%˽nr'")mB)Pemi5qHnFwa}u,4 џXPFbBYWǀKDXg4|y7$Q HC8a(>nA^)ðZ'fQ}ҰB),__r+lyHZ*)"fUo>VT:+ xbo~^?ʦ,Ծ &HScJ1960@YH\^ʰ{+FJJϾcD PXcߗWgLN.o314=;)7`QKPOOORe&&`FUwl7iqc4^*b:WPӖBzxx)e-CSR-WTkow7.6rZ5l7vWTQ{9F'3El?r@\MkuFӄgv1>734'pE΋~ɧm8-R3DЇW4B4i1i怷N^~w旔'oL hT'JzTLpCKaU =i{1s$z%42/Wj"1I`,y .D(4a}mVj_pᒒH; +$=A۟!$;Cz 5`6B)I44 J^u$/߸.h`=n3 i\mAc)yMP$9 7Qu"T_i˄%ldpII +cw[H7k6~,r-|lȫ-6\fvMhzݿҐl\Tr틼~#G\_R(l ;8x"3(dS ~ N6[RvѣJtH9yQ č+BhsmOzl5Eb2qIqRܡ2˅]:;@%њDՏeY~tU'GBid[ƺF~8̶r}v}_z4 _/J*S(aXXxiI>`0%^N˜7h8}?t-+0^GcSK/@xJѻ<僡K or0izo9H?IB6G^uoV# <1˸R-N!o\ŊfFGjҨUח>5B B}̯YVGO; ?%za5C_0x3Zj&}F%KһN'>#UIRž<wqp&sq^ +MMZ9̈DE4?!mϮP 50]Wa1@RŠ)+̾(?L:QΜBiަO#7#wTK֪NXH9,!5<%F4TnVڠ8le۩:nhɫN؞vJR9)ZM ĿlyO~Ҹ9|}POjI| &x@AmA"'ro"onR얓s=UqjI׿ڭfs n p:qtN{T-=aޣVo["Q񃆠A+US^qDQc?3T#k86"7dc38eC+6V^ki@oNGA2@қ[:;Ba&4sPa+M| yiҫV.(AM ח'~SvҐ( @Tcg)%֚8bK_F[C釁! %,*M:v!y*S>q:S +V|}` J`瘟 a`{g#xǚ{v/.+qJ +It}C9pZVIW{à.[= +Y?0QeyM},۴k!P{a8Q1sgNE=>S`;P7(N+юTT4sxI}5= חai|C-.шCѳVXQ+a),3rч.}+Ds fT9T~_)np!byO^hR4ԯp-K.iְ_aƫ)Y%„wѝGyB]ɠϥːlaZv[t1T47]ZJ.r {^8O0RAjRKpII󩖻Wx/Ri'3K؎kߣֽ,]^wkH*lFr , ̬wy_Qd<ј2ԗK#AǠ 4`j҆se2%w4{h)rg@vE7#IrVn᪾bq8oت$%_ZR*bnnyXʡZ-|O*ȣp eMq2SIcTi?u8&".]Fv>WbP?s"Tpyj|l;:'d`"MPuiOh %YoJH CN zx1 _o-mTOGfMʆ +a1 +?u0 gk[/fQ;%=ۦ>̳ aJ7{ +EݰOcܫx"eyË~*hO&AP +Q0?ΩE0jy=Mۢo>R<3ݻyq%iJ@;`hI4}J&~TGX+bLVxEwo7#\dkԦzn 4H;+8 [fy.{x}vja 6Tku%M1ZyDu0J,wI|~BFGr>d]'aA({£I >ػײfƅ,>N^[ +$-~v]*&t 'SbU|vw[GcKE`4C j Bi Ih*Z.Cvo|Lg,y}<Ƕ얓Sx`t@,6 3OZO9ȹ뫖cQʱ{$"t2ZdO6NݷpdÃn:z6tJ3*_]ڕJ6wd1` =mtxL.+CJ87@ͦUtߴPJ5vT^&Mς7Pm?P͝EP:u"1W~ϓY|,D`ñvTɚO~:QhDq\V?)w#iiÍA + cJaV'uEYb$1mſ"ݳ>T:<ݐ^Q-0>@JAGs+[k]c;@j),;q1`ލ FY,a;F)O7gj!'Ǫu`bá8Qi6$@*r!ItWxz9ٱ[a@yDA`\$&Y|I)F;(B:E^@x)A`V& 51i}V>tn,%W&o0@]Ew⶝E7 ˦=\u 4~6&'IP×غc YqNXFDSKl PyMwy<;xnͫqPlX=汃#DI/~5aFG +3)pEsˠe`֌Wܐ>{5yD}Bn\Ga5I|cbN?0!§oT 3@4Rb ;Zt{fyk1A"V[Dl#-! MӸ($FoMc[NTj*Zof؋?V:>МƸG'#1hV3+޽aq *X^9 a]%DuK Iߘ>%Z/O?*cØaD:AU:'Ol;94ڢ)M.׹ FL)СW1ʨJp `E=B@qo<":cq֋!*c;Bɋwk 7~rTZz3`v&kl R<M?3_ڨڐ^ [/[ꌂ>Tu}w8M=n˞B5 Y d2*燺%j0rT:)2{*d1VEF}+vSW@Ǒh:/q^ 5=xOca0@fw{Yԇ2.D*<8Y6U.mC+3~ |eBZ5C:YE^thJhGb (_9"Z>aK AgB=}9vak 'sIt!N\ btаJ=N^AӬ<uk:m'd7&:o &9yj)V'2ҕ^V}F@}=S ;@ k+(L'De/0n0I!fX3;+ˌc5*HGc+t{q5@$@:F&v0xLI/W04Rp$"`J^>>BD18;P L%Br ',b0F']t27u~Q: +$+nR580Z"6G]@Al~[Adȧ JDD֏E߸'սhbۜzXR@!wkQf]e i -_@(w‹s62Y5gV 6Dy&B[xb`KG!Pu۫A嘰OuVBk?tmTCr d}ewOG.FAkV[S38u> 9XC&r&RԢIFzVq15$ZԅA`9t.lWTrX(*yʡ˵-GI8 +$m5QiofK"X!Cغx NDT;ga F\5Wc4=A@T~gE|G q0f9/`ϾBIMƁk8AAFGRʰkڹ-!ۦ퇄*ruY, )5C~[`u<4|:6?Q[7}gc{t"*971,K'>L$"*"lH95X0Zr;1mAK.+vEo,oQa,U&=kb;r>tBI +j.(> ?yt$ ~/­7v#Cs 4As֢'o!ab90/`,,)bh +,iEBE>/>$vzr%xj֘VA CZŠ !@lM~Nç |!(['@yt?RN\0A~yC$/p!.NoQ4/#+/T8zcۨ{PS L9H#{8rx(hk Y%@-е' {wm\i6^DKa= AlA B=z#,V/MPƠJW?ǃq^EAaycum=BٴyMۯZ@:~˶, !iM:MemKme{A5]Yb;k&P+E @t9^ FAM,)WS` M)@^{*u߲敐5H<vnI% ?q[ŝzeʃ>C:%1-2vN(#d$'T0j^=<j09k J:H4(}xǯ {żcM܀v9:yLeCc#sy5@.Yqlf`Or[ T/R7M]<0Sy˾ҖA2 +ʞrŢMÉ{qo!O+s*dQu|{99$`}1~zl``1 6gY0T!gwf8nl0G"\NlX Ǡu8ws㌵B%H6tym/q)(rKɀ %HXZ+oް[@gUQi_S$($ 9>x8>Dpk/d1Rw +7֋RbGP+pl=\S$Z'k_n_G:_V !hnG\=!5d*3gͦ'/6LA'1w(GU oc'W W]+.:ȫn҆:^ϱ7`'kHǧZNg<ȏ+^AmfFQBXVAY`C {J",-ZQw{;l$]/ ݉Pyա eN.F{}nEaέoc:t{V<k>j|EN *eVZHwr荤Hh+ +Ux3?+QFzvb2~*}hO f]#N#9,t(ok҉v<{K +b9/i +#k^D: 2`c{~rp j,{x\w*ئ09ve855HD I;|LfɞtRAdv{4bR3.C(z͛_BˇX4H8nٻ^6E'0OPԚxEƥ=b:[6ؿѮ[?~ݏ7Wg7h>nܫ"ɤ1}Iponu[ss vH%#Iwm Tԏ6]9hwo{_Bm^]p Fn}:BjgKNn(U'^QYl4đ"HLLhkORDV~$ (a @Zu IDj##Dah>ߌQWrŵR݅P;s*_cw¤pF؍o5ĉw9vj N_ߑ/h#F:P` !Z†D;7_ +h%n_£7:w:w<;aHǝU:.HgɯyAD,:j񵍰NhEgd^Lb1ǘ*T!Mkɂ&V y~'lp X4^8Pe"O)2`Gqōg 4_Maz*kbx5f}h=G$It)~djgl/S⻥-;oJ@&Vn52'_`V{ȄD>GxESTۡ0rGW>J .J:׈ 'to_4&!wRV {^3ܭ5[y%;1Ү ԠOD{9~P7&u.pz.:Zoxƿeֽ3gs.S *3]1s8^H&k!I4[Qt{U-l+1ynl>2#SwlUnh"O3H0s'Kcmp71nԲ0u\s2j bήl1Xys +':7wj(G3MFVtʼn&241Hꚧtw{W ^.'2 +PvTXaOx~hGzGWjY~m6` XdaQ{^֝]$X͋ 'R7f`, Kޥiɗ +V p,%oQ3_nĴ (1DRSA11+ &_hP+kB +`r-P~? gԷV1+e⣋ M**b+aLL t:0\;K1Dݻ^΅qJ#LI]f9{1C7h>n-HbIŰSqE1Z\~YOq^@P`FOqgAnݡ\귶FoWoAQv<HS:8#ӵl A.sÍw"XiߙTa(D08dNtH'S5E`UU2f^me Nil;H5aI&,(FdYķAN4`Q<~̧7/4(֣O .4#U=c a39vvoν9t[0$|ᔏ-$/>H>PNGe\ zV(C{YWǙHJoD%L8Ǖ7Jwx,^ȯ۽ ߺ֏g:eL<8:R Niqq< {D5F4k~WҶhAժ&B!It=꺨v5%sm:jnZe' J +oCA=y'+YOܺ( Sɣf.Nk'iJZis.o[H>PA7*?%sr^{7 +  +]p5F +mQB/8Z.ToK:(S#ty>Dfmn[nm;$Z s+UT6rȮ" 'Jh!j0:"CIفG=7Cإtskvc{ `yD1̧p*S.Q Jr7̹l9 ߬9gf~rT8D(>= +$F "Vn X`\w +zZ&YռDK!C%ڡs?]bM`nW3a}l>2AG}7ӰN|s8u\ݳ32 +$X ta:u^ 㟙?$@D^,ݚQBx)iX.!=nW-#il8(8RKt!2--mhLSJL3'_vw9\~wE9 {Hb@AQM~v]hOZqtć Hf8 nb;+}gAmXA)4Zxz.Bx gѓ qEŨP{<: ҤrM4NMd W3zw}<5 rT?&;Ĝ)uk1 N%zV-i\0? Ik5 )hj|r*YPlDL]pxJ<$G-tǧJr|jsKRCrG?BMDOC:^m*_f-GQд\p'?親r5TU6U(?i҉˘hL0>UfI~P9!+-]=Cu|(].h!(k:MAFm [`@|=$x9gcnuRN޵WOu\27uiJsg{}s"TH#CP[ĸ'BΦʐFIUu/릟GU*R/R\-`BoxVQ7yy|~1)>T6 H jq[ vnɗ[SReo ]Nўt&VTpI{GԤgVNo ,E]a +v`B> ;9H?KݦΉ=r#% ‚gwA:P^6Zo@)NgLWضiZm^kf~W \囌3cpɋ0X}8TP):.e?m+"|hP)GXB;u>|Yg -` m &LCP.E `.uf|53(#6;%){aAo ?Wp2ޭt^u!\^)Wb3뷱%Vjr0xSX95b[ѱ@ɳ8YtJV8'xGvfQ;1/J4ldzwİNeZWA$ZOJr6hj(J#жd!DZ?󫺱v(K/y2=?<]F\9v?]{}tm?k5wYAf1o=.:G0@GХKާ,G@~!'r+bzӄwM x.!<挏/$ ~@IɀJǀѡzwrWSA JhF;wv%ѷxgdHi e;x9=pN У1ҹfmNNP;9 -f|K߲6D ۥcD 9gJ9[B׶,TD!+"o+ᨤ6A"D d8*2.R:#83INetLJu!u8pT.aJݺ]}7'#ȜN;LK$윒D5@hR8R6ef"ш*Ȁn9 +QMV5:J&A!V$^]R* OUWׂR3ŷ:(5jſ$6;vKxc1^p]!7?ЋE/*7ab›0N`m/mt֌Ř43Wo/H=Dqn|+6=ςMh]]*Xz +h#)K(߸[t po :\\H+Hy|yTtm.ޏtIZQ̈́No8ܡMLCV!V̪}`h+ڏYW אOY0n0cp۷x|S>w_kp0c8p]KBb-PQr +dfWHCa>nH:oة/JOt+Jo7ܟk LX9F 6q\<>?v)+ Pa;,$Euz;0H%ʩ}l'kz!(R +w7;ubG.ɼ{vJ`W3Ti~%ui؍)~LI'8@ h}])UR~X8 M>Wd)xL QLf,3_`e^vxzpC72y5Tw}}|W'7I 4\|y! +˟0nnYs,.? aYx ˰ M"_W͕2,$iO3Quo-vs"{ :㨙ĕBTz0?lS#s5χ#^$9,y푸E]_p +xXT|VRxJ[9t\LGJʇb0Y`+%w r-sv還U8xdTT.i`<ϯ>S}Yo ^6r +Gmg>'33s5x5^]Px%EЋʣFf +w+uY-@oņW'؇ Cʴ"9(LuH㬵#6 s\a;!z:^9ؕݬ8\Jӓ0M#tU3i+H6}#TTx{y.ä~W?W??kln!S>M1yfg.hh N1C!CxXWI+(&`KbA8e' +y+*9a 12 js 4qH,8Bk4P!*2b.2ߓb?\﨟#zb9snUd`N&zn=^[$l?B&㝎~]#.U@kKXl@ۛ֨o)B2VdU";NuN@pr {!k|+piY;|ҳ57=?'v0]7qO-Ymmm<\]~h[Q(F=y~xoI?Ro>w9ٹLAcB '/t--0vh=>ĹLsȽcz}#{6 YC +x*IsbY-)*0dwZΪ˱׃m~ www28#5+ƞDP5!%F G;si-O~MO-ORA^ƴNc#f$hX'm7jR-}ѯv|̸rm哭_F36˿vl}7*|qcvy{׌g~R$a [MbͼXw5Ra~V+ZV4@.LzKEux^aZҢ:zZkT :UYx;wNv,h5nu$md?}S/[],j +K[K-tU +IWcs-?'̹^#ަzʆcCݩRKUo]VApb 0CI:bD#낳 l7U!jms^߹F7nJ\1?( ] +P +n0˘c5ۈ=QN$?>,8_Z.7X}^}FEv^.BIjT3D[_v`P3UMgWgݙTI?f.z̶R||/P<ь Ea^«lʗs9I-cCL1u|8 +Õx^<֧ӛJ%P8e,}m,0bK>U]`L4K[PU{cV\_5}/8ȳ1f[DOfxnVKؓ΃/7M~*ȩ0e˹,J w'S/eYpY^7*\xrosJ5#E8?pIVc"[]n&:)|qe,!g^OC +RtŠ>}0/]Th >k>O0ݷԀO lQQ+7ZF?!O\S1HZFdG5͕j0(B6B߾a^?WTtO[Jȏ>D )H"#;(p#E [Q㸒#n\c#n ^Ma Tx5G%ldYǛ㗏h*4d9)IUU0/6>DR_<9 gsz\yG2(P`!uB;rڝV67}pfvSAnV~@BGNUZ%DD\2V&JG\7C+v,Sp vEYtr@\:L}X'z}>vі)__GwrFQFq>@^v*07*E)8td\,.|ȋ9:Kbq x5U{h\fzIn%] \_$A}k r€ 2)IE<91Gҁ x*s.t^H ߯~.hcCG])Ǣ+_˜er-37^&1'S|Uʧf<(;;vB+\mql3]mĐ05 ݳǟںAW(gl/` r$Tkml> KK:Eh; >";*ଜ2OA6$\iůe̍.X W;|P\!2„]P%肃nX;Vשwr:]=9<+IWŦs2Vc$z40'$x1D~ 7_%W$ (b;̡)C:J>ڿ_TVM. Pa Sdb oHn%7 d~/+ zɗfn{f/;]/3j>-?p/ps/(ԙ/JJ7 Wy~.uoJJ"JvO 37jW(~-_nS|~5ixJ/+:ݼY1X@Y{|2IuSQ9R8}.P}9P_}wJkՓJuYAf;8Na8R8xu^#+Goc(_4.rN2}0?UzmgҘ3q1 H'?i=v5(;xgvү>M.SOzM~e] +{X.iu_a#샎Pqa}͖K ;uύ0N)@첼ġ)C,dH53d +#6 ґӪv !CTM:Hf\c-:)GO9^)iR7Wܡ^iTpNjsP8} $R9kx0I#[cXv`)!אw'^2b!:xy}Ib#sMa2Ə&f_JTg +:ؓ +hJܦ-8, 5Sz!<#?_jC;mc`0KpꔉwOG:]H|+x@ϭ +Ki~uu"7p9Zo/5ƃI-.Ĥ$ӻyhtWoc]7n'˻T UuK- /F=/mcYKwe?ܡ1r #ױ>bz`xeE|[h1$`<L+IӤ?,dLjR'ggH+#BNr%2BRy#RJ7«q2 [, +[DhOH4|#~1w'W5Ft&{碞U`,DMW:p%HTG~23aD¶ED%3뙿+B^SU/hNFnbش{EկBZYUs7CRK Da +g%u+MUȺASeWcNZ:.|E n_^]Fjx6RߠՉH]\gjɒtR#_fnWf۳.>+ #n8# j71O^#28ZaugacU(%u0 + NyNSvU:)!6d !'px38 E1=DmMi3! X9ϰ.Z1"ӺTYAjh7R?n 汿4w&!-&6v]3/tuZ0+>5*j<4`NE9L]3eaZb-7z}t/iC1fw^+77 0 ;j8{U$hHCDU֌bx[G,nUߍӞW1lTbn~Bq]?z'!Ü!KЁpp}ͤVDv/oٻ~ +lvi@}Gߓz L|i0MbR)Ln@\ƹ(2 Iɼ.`g  `MqCPwyvcZָAljS#YLfMvP$sZf )gZWߧݱuZ0  9ߙf!7ROT.wdZS +-9km>V_ˉ)o$I,$A:c +[ev "4BAD2 => %NPwDV) `%1 HR `8肕ASqv, έX<=pڳ{󋵆z*'.t4~`6lTM&Nd1fA!q9xy{GI.$I= DI8mԘj2u{L1EjT?cu݀c<1NvۦYnx"\y$Jm~Yc H=I8/GUK3uVkID2]֢&Li٥t]ٜ{` Ole&畔p!$D`OhO $I]w{x$d~X`Uߪ6xMj1lGoL.m OHA: +\hðHΧs=X0i4&DF֔u\5XQW~9%+ ]4=PFHiݬHsP6ht$O&EXbL*ͱqCHw}ƙ^d{&=iew+{?Hgl"C9(oAw 9)k`MƄq**-M #]6,*b]C&en9ի xu\̋e{*;b ˫/ +`KjA 0%c=E Cz5 +Axn7Wy=s"[|x' lXriQ楅NSh⹛Ƞ Y%b) ړd3w# U݇ SYrH %>4{mowQڮ7^- aNbjϥzh+:2ss9[ƻHW#!d4s fIKf -6'1KcR7:[z'7%T*CdY2LA#U\C\"MF|dֺlxnU&^Gn(d.9!熌ʾOֽQW߯cآdxh눕Zb#5NE T%g83W&1ەRn?gRz:}vTlz]L:qk  Y3XDŽoPtGi*ok<"7n 0=6{89BKX2P O:jx"5TH})qPa/QP̀B뤳w)d:¾*x#'0SF2될0W!ygcf0tj;zB21^ö@A f2 i1 )+d',N1ӧvdɄS f]Ń?HnrD9| Fi߇. lo[YomvLx'pG԰.}gu@`&o4Ey]sх-)+y²17ᙆ(:ISʽӵ L4xVP8[cP2n8eNͭ\.}25i=#Xп*pNdfQ&Y넦]L:JxÇ{(qnU]s|·k26k99qItlV$83 `vut(e0P U5mSk靆5uB{F諂7r6ta%[/uNyT܊`jm>Ó4HRS"{ͮpB|~U <aQy ANŠ_R%bY*nS^"tXN$`I{cJ8FT8_on 1@׺zEWIp^tFN-~ݩct 4f8V"MJQWV&L}]Q@< I=$k=7KS7.;'f_W.7.}qm}'}Mݩz?Gnfx WN6Vl42:^@H$l4X:C phH耮x1_JW#66貫]wXk{QVF|[R&Ӑf`st06% {<@Fj0qx/pRbB'PR.(=ri+%VG=|]mߢ:R%oq6_v4=s'?p)4nȌ0Kwg%9 -MOn$f ع.yVh}-0@ +aƩ$HmTB%蘊:Iʑh\B2tb 5HSSl*~{Ch]4Ooyz.-vnv]mWo/k r>@sD"z# o Н[Ǭw 9D:yVeEũ +hU5ȗ$K)`,N-YpWJr;aqcԆ\f' JǮ޸62 V9~ +:2|=-QYʔtKɺLϔrm`xb0wu$D$A:섂+q2vjiŲuteRN:u^[]Oe+01M:Mqө+hn;5w6BV0eӟk(0 `)erB;GKwlkcT\'g.B?.УI-×N0p9@AY#S([46NQZT9"2ޔ Iq9vHʔt[WE<ٵ'XvwhrK@/?Bba{7DEh L#_؞6 0)}=9 +eqDV:i`;dkuVjt)O]kty ¹ga@@DBpw @ Y:@5'\ye}8e1M2X(>ϸy[S~UWa4}2(cnDD #TuJdyC(cschXN:Ӱ~uFz nR&$ӑ7w\z epc?[iWPcc|t۴=$"MzJ yƅr(f_:ϋ׬p^PG*,/̨䣴54(طyUk /z [*B4+^u=볳ѷ#iHAjp\ \ϘHg8`3,2q"|B[yL2&!Ut}Z}W[XV8vqCJwFd, Ik˄y҉`\fQS%.p V&h8$&X䀵%Qw3@Z:xeP7 +h)x?+ ˥S^s@*4v geҙ.s~">ZnG%[*C2t*uI1It!KݬwwW~ꫜ rqknX|uۤƺOSFT8UՌk\t p" d2QKlL,]VD[d5ݟz9N^rm8bu0MnOJ_6IU;o` koIww;zxPttq!ɡI[f{2֞t.=d4jB:łm\HI+O$I"VfDeF>gڞaމ>Ġn +~pmxpEU`J+QIfnI'QJ rHGzEY$`Y%pgw|y-)3i{P5b`_HxT9>mrE64)Ƣu +PސX9.A 6Lu/×HWb`tJ9p t԰X? 6HTPOx%@ҙrQH|@ Y4.0Bq=? ]AڕU\i/y;FJA]gcMW֠TA b˙R윔-jo@a|t:[:$t:hM?)/ȫ5Sh)/xL5+ 3F. +W`pqf QFCg {T2؊T7.4{um5tf]99e_W~)d$8-w3M2 +t􂪱k)Z۷@-1T M@= '[Z}y RQE!L&1S+7f oIWQq2Ƽ,Xkes#ؘPc-mq(^iOr|ɧl:$bMG [&z8p)WnLd@@5Iʷ@C#2B|Y`:2GLP1nGCiےvۊig*kᇫ,zSS_u 6EØ46,^$Fu\&栭O,G8ޥsFB1DRګ"^!ӰPbMs}Z|;܄?:k0{xX܏ ʟ" zx1ZQ[*W;Zq~T˒M̊'chYdmQJgFS^wktn֭HxHSn0ΜWY+##8e8hEa Քݩ=ӀƱb$mTn<sph\NR tx+dg,_pV'&:s@GDҼXUח5c}|(Tjy90ïU}@N$8u`¥Ó/g0 zAB!>YӖYľV%IMręCmBbUeW\nZ1 Vd7,')_{wݖե`RPAN ՈjI42$)m4#ꬌ5z˗"`A/S2 (4Π5Rql}CVHnuQg6ܗ$Lj=X2"21|Nb榛}ŧjv3uĜ:YiMG3ߴѠJʦP,BbB:B$ʴE*gV h~ !,F ېDGd' T&biS3%xR[3e[u&` +z83b0V: w{&Jo4f#x D?$ d HgBhffof<w6-cSS`Аq]Gl +3:CsxitΛgu#[`Nl S<3JpYV!q~*&ov9i H:kA> ꐀI*@A>jLD1gו:13 +@sMذg{+OdL' @AX4bH&k :ҡ7CH"EN&(g,&S]6e,Fַ~̙,JwIh%%mfM(nSE:TںEx3 Q'. 0;-`q!VUӶiW7.MU|t*Tjoq'QhmV$k5U+ +BwRI$/)Lݨ8Z@ ihH4]!C6+>vM0rcH-*hCs5 0f?8J&uҹ}u]%R9=PD"ͣ9ʟWD)P3GH |t3!wL滿^&`HIt&R/)1WwE!JHg]V]1$^`FTotA-Tkffhemt 0+M>1$lZ8$(RN;ZP/9ɟv3Vzڦ;r YweZFoMDPS\9#W}JdA Db DШnvHB'Ɛ ӂBAXf!!Rڹp쑪ј-eBW'!`بhg(k +J]I+-a<5x&r-~qoShj-rv TbO;c]}&*#%]@!lpeQC CW|Nm?:`عpS:^xTz$£-w۳eҩӾ,3ܳ4&.l`Hl-Wɾ&*OCzA ɷSp&YY25M73|4 $䒘{cY:eVNxH'-0FpB&o6'I窵cר=:UG4O=:% ^okّZ6,l`$@=S/O"Q:7_9\. 6sK"6sHgTBL(#9hV'5 L<᡺,nUޞ872y0 +hǭ 7t(XIVhdGD6m( uc@#ԗjc`O(TM5M%~͏<_QתE&.V&`~*7P?Q}Lt }+ gπ0r}TV]lzcj]TWQKi.&Y'u n}MU 3bH3:1AμB#Z%`n;*a TԀ.10x;1Se5RiУ<Ø!ص$<{`Z!`¼F $5jS[AmF) z17 ߬4_-KdOeD_ c0HcnKHN_S`}XXtG%Q/n+m\h} f!::u5DzOs=6VTׯ(4yǓNTJ +=Oh+ѢJ&JI{,BLK:;MNr] tG0<΀^!*'n0#CpvA39f&D1岄,5K'ogeeV*KPٮאƧ#ŧTUbLBfHl +#*N^kRgCDn**UERE"-5wHGv6-}TrmSl.(vQK1i{lּ)q J~#(ǬTdqXbf3ϒ>emۧd?(C>:0Ύ=6؊48K4:AmN&3hDw8גq~:XIE?"PJ4rE{蘅 (#fekZ8 k3V\WsX-~t*U "I%5@aOk7Q@n!HG(,97^QLޒum)P^(R:d +aT + tdGjBFoϦ,ƃvU3oTQzp*>VL"Q6X/8#+y֌[#z7lʑ NR5W޻H UH_"6٨ += U{ ѐj Q(Ȇ;I:I^!JHw] Bqj~)uE@:`q! +[ % 7L$JBӢN +2BW?JeLMz2ZcnB6JWow݉hD4KwC$ Hh )wH+SBe2\i2C;9N 4VtfzT{iE4L/Q+U{&Ln6@^F꺱W#Y&*migIcf-8LYv!G3r#ho\.OiD|0r1\ȍesw :PKϰHI!O@1%Z? ]0hncVɏtR23mhL["^[|ԺE ]&چ`{n2:IP>Pi·J֏sbprJrwؖmsiğT\+GM.L"@3ʗҽ +"!D t݂5\MGF8 Xi%ފɡ]au󹉉57oCdN3ZnTu4e&fiec+?&֐# rUk^VY#^ZKrʉ6oxt!U] ,sV%m1g/n69Me +B֫6> ]Ň僘Z69tk9!֋f@U^=9j &FO8t˴)!p`Š'.#%fY* %wT%^me*  ?Je 穣6cV9OK^I_rU֎L:`_:sy*"R=3ԇG7uR +gud v4bvЮ?>U<1Fc07z,TeMh-sYOym5CkI-@:h8CBM(gS19^_ٜJd4?-S?qD7 K[ir?vL_.sڇBy28S_y'Lo +mG"ϔcl5,bl*o-" N߮_ % +42 ?1'[~iB2N:7Su @]:^јi`k&Yt!eR +v[ RFЯQMࡇ&iDO:4T.cD~[ITcH~;rq"рB:}:p# SڨXvJg" '`:Qd;Ճ +wg|tZ`YٰMKZ XH\U RCN(  ߫bVI8r͹N[X's D/l>:Em;,ˡv~+42{IEM$tPKRCh>94  + ׆Jyc`܂*".nbl(Io>8EHG-}%\B,rQGplz"kB1Mlq;Z1NL"n/+mjw7PmSE kF[:|7gGcnLU +\C!# Ix'FNkdW[|l2oO@3+u(k0L˽A3S Hp\é;B"XK;K޶!U (PNP5}tnL%l ewhsfh)!71ejڭrE.o`xDz L%" 0RBfeB !76i2n G1 iHunxX\Q`\πDT:#s8O(nA}Bb< Ձvx>( +"^lq&U;&*F{^|+މxў*_rrȸBNz/}YdXuLv;i+3x\8h>Y?:~[Y7}'x3X@zh»늗N + _Kz@/J}$g2POX=aw$bgJ:wՍ:@Pi Pt9Ԕ$SWyPOP;q1!aKJ'\pАڏyI,j(b̠)c'xʃ{٭}fv^LmmnVݾqƯs?-㧖@=Թ1@')SH '/j<5d1[/߂z3I!QcNV2ߟ7^Z$8?-4V0q-~czNMunC;" TD*W|e*UF7t/S}aKF!J "D|3OQ7z(֏;5@zd6 TvE.lNWr8o&F)lQ WW螅͈ r>Gwj  TR<=Z#[K+ 7ae]G'+\e0FV>ê#+Ije64-X +up;z+'@{u8 r:_ DX$QK5QxG^ȆOv̴{YcxE7mj&-&kGӎF;hA˅[O&ޅ*.@QȎ<\Gy$|BJRh3-KRMY9;5w!apT}:㜌Yh,^mIf5#YL꺙w8|,?;PdML(ns)b) dj +㘂5X%zr5݃{VZM+&[ }gD`YN4b9SWg=(܀ll{f6Tx(Qvն>nD[J=]+u@$կuߟgk_J k| 6X)C@3d1nJq{.0^DZ)^ݨu|d.y0!>-iem io\ DK`ͱCt% t.+\ǚ֔k΅ - \mTXР?dł1T&;d_+(Y]&ɤ$!l(M6Mi\HUF wq>\dR{ǮGbX.އWT$|"q)6boP>(Ңs2f4D80+~ oD?<:5>UzN} -ƀH O)kuf@M/Z2;YW NVZm6|h6NÍcJzeAҖ;?yMO> +9-8[Ȧ谠s^!(V95mBqqG^_4i0!@A-s$sҒi|1ѧ6[b!.b;WS\;ȗ ?+Z23#S0HO\nC`6)E\#b.Av 'KȠdzɯ-o cj˷4صhq2dƒ hdj _FVRk d +Ml50ʹiWw|V hMft+篽GX +R-u'dAn +!_9G16WL;]Wf;XCwӓ<;Yx:ipVo缻['qJX= +/@m"8#چ3l&F>R;f _$쑷8H\ CoYh"Ygň}& 2￳Ƙl +,i[|*A5.K{C"b5_(a9hK``-4ARmmxǹm6]jЋ[ʭOqU6et;N^ Bev|w`*ࠞ>Z@o#d&FR8*MrC~JF9?V/bW8 X*m<$x|.U{PͤkrcEٗPa%eF`y.t G_nF࣐h_>ȀgwTZeO XR- +Mʁ7[G~{doV K _ +Ӻ y% s*ﯞt0wz +Bnoc{& v =76~ա]V"JQJ:k% *- G}BF +.tpd#"fդGI_;s6#^G&4QwEOcY~ +TP9? +A'Dntݢp,p~Z<&kLXvs?l;=[p@VYb4lyim]Vs/ivN`cZ|ldQ="39^n˃dܨ7*m 6~9G@&%D+3Ln|=Cز[-%& <(_bYГbk.m:PfD{) ί#sq`E71iZTHq&3_2پl7!.͎RLMw3i8:왱MG{B`؞]*VS̰ >{ffn{՟.ͣ%P0M_+ j \ȚHLkMU}^ 4CqC15/jYXTIڣC{!ّ2$?.~}MؤnܟsLIii:>(.f +w0Zr馸Y^* VֽsC&ڴEhxi:m2me_IMvjY 18IƮ^GʺLTrc6 +baJ=4PSԗ'8$񚂍cX@/MU_;WY@iKDzEQb +ߧf xCW̑gxoYb/.M<^+-\@4"jWJhtd`);p?ま+ +nQqQ+(^~~B߽e%67.!+#`&' .ዎ}(!;o/kŁ6PhHNh{;C8*l^S_P` < 3vln}w%8:OI_}jdLv0![xƗ\%oސ@i)_/IOﮟm +f2rjY_nDRs#?X;8IZ:l@csV9=$!*A GJO= >.&>]BZT$&lT-. T9ݧ5>?]*ϳs,QƫZMh24#%I#R EOo +IW\ΥJ#/b'R> ZiZ3xM&ώlC5ԂAkV੦cb[YEIr(Y2u}ץO0oq?sAmxKKx<\փp rf5&-+"^[44j -wytvbx@b#cۤ9@}e ȹU9Ve46s/:axaNTN`6UUJ83; +wf:[*$BM66 / +᷿p5tj%{Ʃ{l>x J>ʘh[Ys۫۾㠮`lڏی v_ 9D fG1Tiy/!J-ȤP7lyDJ@(HܟN{;Z% iM|3 D[oH1W;o4 4MF@s/HsJ^ u57a!k ²o#QZU,_W (MFCx~^yn>HіIj6wWTQn7q'@'D4%_dInND/" { +M+J96We2ޚKt@9'!"KKp\Ȥ fh:qjq O M)1˨-Ҳ JY$7FVxfU8o4mbB%FmNsc< əE#A:M;k9 +֌/S6Nk"k +`7K/#,%CC1tLs! &Rh \%V`䮔n9+dIpp#Ww> x^1S:7-q#-_1Y>`;RCG±#\XV_Jlqhqw/9*6m +{an(ߟ <{_ "Gs(. |?j`zM%By6d8t4Vg + %x` Bc$-< dӞcv?neGݠKW-9!Co~g*k_5{< RzqةK *d 'l"]Pzmņzb3QLM❞MV~nGͯA[[>AՀ4daRu ɋx 9pPoIʜRF5}!` pesd&#bSB3&VdtKN6>vfV\kzlq縡|?ʸ/s=ϐAѣA ͰJ{YQ݃єs%GGtsz'KgaN*eE& ~OoNzO-({Z4bZ z/c-6E04.h +f%ٝ46gp!wo…g`##&3"CD>5(&M,α2ym%͹q8'κ}sJ`Ӭ\ 3%?? MZ#?inhSU˲LZgsM9M1r;VfyxŸbŁ^ ?ڿOgw8c>q&XX:Ή!0pUBarg5YҾu*O +ǣ !f\u$ީWh>Ey^tfu?ܗ͂ :g=w*0UA=xzL:$T2JA闣dPm& ;/~_K +p7=FO oLm4Eγ-=dPDj.Kق.w!8rq[~2;-=VlA1}g?1,Փتj ^ Bݚŭ{r/1Yt.gVHZB@7&.BMʨz#d}n-jzuĤX&rX(Źl1JAKBaڠs,0KADI;m~zTslz==ך&=|TI]əړ[2 *Ǥ`ڜ4`6yȝ OOuﮧ5VE3.vL8M{3\Hv[)gdeLGbW=@(F4zܿ;? ᬃOkt|ȕpFBѴRAP^1)7VMD)qUdxɓ?p;5m`yHuch8`gkXQ9. V}3} U9hǽl/Zyh_| OZ,W* @^"hǹVesRhzMkA5 D;Hm Ffz䨵n3;!^I/=vMĝuߦ<%)> X*JZdbzN;zjmu{#3Ɲr]ƝBkY 5:-𵣋XLVODR2Y(s5,,6 #b|JpIQki鰪 pލ`w& R W&z AOD'@-ObT"XbBВAr1VED(^IhL,:XiK[H&y[E-q l e3@|6j3"5b``"Ntr%@8IM$.3<K>9 -XDYթ!A[rsZ%ok}ߞua rY q h-`NZi/h=]0c(V 6]A|--$׍9c5#1leܸð?C i)r6i{]s׸mKb7p({Ʋdm +\IA&q@Г1<՚% Q|i`@MF^h1$b<?E(*w#3cx-M<;,o 73DhLViq0`2JsǒtЦ+n`^6/lGp*1K>/sVXp3IPz + Y1 }&G4HlQ%x#ji{"> -E[§zO,^)ƵOA"H4L,ӈ{!bCRWG$&P]Ua!ϹմxlƕwLDy@ΣAd]Ou@-3|^:-Yyn+Lߜ9*+;1(Cd(R 74\+JwQ˩)DE]ʫxǵ:,?Ł K/٪e;"&u l''|eÏ8:x O 0̔ŧ]Ar^"[ SCs|d|f9W+&su=G87vaW~L-vJ2|wakh.k8. L蛴 =k?x%W",5&+Eˉ>--ފձZjǹ}8ndcMմXoF6INbo>/ ݨ [#M`1ERxOk:ί<[Ewb~Ӝcz}c8c%ӷJnVWhw" (P4it%oYݞ)<=zhܿaя95l$'u"@4݂8 7bS.R׋huVbtAyb`.CcӒtlޥi/l[]pQmbol"!]Ve2n %k~N >1J3 V.(E7CDKZJn4TV>dVt @u{\(_{TnG hDqyiF,3 S{QB(HZb؝U7 hްZ#H.Q4e>E0e:M.UJQت`:~ƒ cF'$;poɜS1l8FMY&HGqؒ~1{_}iN.,t0_7^yէ2+k'Z>/!y_t`ӎc&h戨4tUΕ4>܀}wJY$[4_,E?,DQleq}"k=BnXBwcox My"d=~MҵxIvT]w;xk0qJmǕ]Ak0{VNz76 ;7N >Z%K~x<0nt \E>Τ I)6u;փ+NܺQC$iE XDrQ6DZTWJ`R#u +H&lqj oݖx`l>;+3ڦ[^~=8E?1:[j:6k!xD](Mk!f*eܐIS1dDt)^pN 1 5Az%߸qױIZ`Uק#OXiB'HBk8FM)|9[\ҨM"ZqyN;D?2yh /?n3M*|к49AS8)Q7W2nYMGO&/Λ*=X 9AJG޸mjvcsyeCo"x"beuմWp`EE 0_lb7өтg,ly3DsEN.&3`)AK-㎥f#o+#9-4^<(˾3E0Hd^( QY[adǞr7(I9Fb5~7o0SKH#˿NH[G6-7D},6(+pTLqW1؎h~N ]T"B4Cʘ9ZۏQuMͳ[ox9iŦ,,::W#.od?zƫd^١z/z#F1;|xaBK#9TXkiÞTΘL ]*- +VXjig-a(_햑>)-JgZ^s}̙`CS4G><,[tȰZp9uoj(̸tRBÕ ؈$Sb.w!/cįĠ$.}1vYIFN'hHՃXHZstZN<4t{Y*i7, +(HBO(6u';a@}WӾ^[1W\Ű^Sh&L|RS 2658,JT.uDƫdYQY&W$$j\MOqj [ͥsAAW$ۂJI kP~;457A@SC^pqc1%jj~p}[oO*$LOg3IO fK usQˣAno)+O+e&i \뤱,XԽd?A=u^[96V,uuԱD*nfghLc={y_o825Nmʅ$,6qRR=Ӣ^ 3BEu0cNؾ3P>b3ÍŖ#ER?<ߋG?p0G?Āބ\Vəoq"׍ˌ?(|E0FgdŢ(uίt,,߱W:z'~CSra SȿKLURnrN|q˴ApI`9<>IJw0h + RZ/8y61_wv bt Al nHXOnGRx~]0. xoc!BP ϼY{uNxo);jcʋ6Ko@u͹P2Q:2UCk\)Xgr .rq.8ƥzMByw65!h¦7b1E A&pq$p~.pDFJ̷ +=Qg;ΐ !+y +f ` @ʞQJ-Sǭ"֘ݰھ?y^,Z3+ƣ\疶x2SUW8vΩbiX1`ӑm8w&IC vm=q.7ߟ$z?5ѯ>37;Owڜysq(ڰAcJrtΞ.=!Da>UtCPM&mn)(=^ٮg|jrx}YXoꨍ [ MlB#L7 ȶ2@X+).CP:53DVU8]=1pj[d =>rtQ׳͙_ m1otC& C#<6FBϕj*p0@(JՓbr@I1^EZ-zb#Dd.i^NR+D)uW;,}S DtK44Ktatd$^t#Ң56S wZ{%9 ̣LJ=dvbMxN +a,̎@ a"z9=Y~tBѮNxهNϡ,OJl.AAzUIٖ(eW,li!xOYoc@Gk7;6q|}{h)ضsy=%Du;e +hRţo/`}.Ŭ> EAv) +496ɖb K5s I 7(D(M  }ᝰpʌ6IT>&%ǚ D_w4 -*H}}AS SoI $PKri,u?<>x_*ۧZ˛8[3\#bSuQ1WuUR(XXtieiѡnB)0e%{ߚ,12 +)#A :aI/4Xm"Xzk'rVŨjfS `e]~cAנ'lXÁ% ~ zSե?E/J\R0š"݀?3?}].OB h Ogz%4*ks;97-eߝs",bp&e?ޮZ`RjՠMl[' r6"b:QRrI~%.JTC);-eQdA֎1KȓCiG k\Ƿu QQ:ό"s Cq4Рdrtǣ@|l2sZAHO[d,v!Dqdڐ(5yo(M]Xxd3 @h-չ1 5S-~n~hօk˝!#T0XG=c~خq?cqaqo+FQ/f,)$jv %Q˴Do:6':qSɓ7 Z͓8ǃJYKXЗdQEz s%1[¨JnbJ&93uzylV;QiI1cUuR(t%D(7EaIļיG ݥ _ïsjj~K4Fpg=rBݴĭ$IE%'m:Q1MEglyf>tN5Q?Jw^SeHaW *`2a)IKl1h@HKj`R\e,,iin]/`g܎kl'Z 2!fl~BDGX61"W *s/o).{z˫#7JƖ + &l26$[4Dl2-c$s4\qxOK ot!,Iֹ=O z=RV>evnVk |dG!NI&Gsܴ#M.t]9L +B_~ӧHw,^_ )sDr颀8htE E~s=as%<̝v0^Z)7Js0;:/|K[rX]N@WPKQu`y1zCPyGewkMJӇc1;]7+*X*ODIġǛA$oa;)Z]UCp5[,* 63mvy\g_;=jhao <)!d^:ITz m%BjMDEQZMǗ/RnoKⶤ4zyV ngsn+ʗ67Z4䟕@ Xo<؂-&]Bs_=+m(Yc\%OIr ;)_*oi8g?2kGJŵXR^&zeaLDŽp<-H?ȳ/eNT;x ] MQ/ pdt5ѱ4|1V[>)#RݍczD^ނ3l%x`\݊mWQ[l2!4H˽so"]^4G~Ƀp_gV@a!<\,7x+6q^/I +bwєFcڔp|>;8ޚ(qihe6yfPqb0|9#W<(R?!u;uPl88&rG(mK00KAAiVi<1ަ(mdg'ԚI8bU! +d $Q{m,@P Z3?rw$Xi}̪eʗy,(#WF95w{uCr>to;/d iwflU S@7w 8x\#G,UJN~5*x{g-$3P <:=,Lx4!e(M/O&y!do|$`uBJo !ƣ]{e@yxM}e4X]H/L#&nZ.{6&X&P_x\?IŃ~y^>yi׃ls("g O6qc\GfZ(LafQ@j]{aG)bO(XS >j7)zo[ @uYقxSˠXs5&<%UA[:w̌U[eQ keFEr#Y_TEoc8drxh׵tZM|:9gXF i^ |$gI"BJ9HKIBI8N"nӖ35t},7_&t;L•DKUBi Nl+@pia%9ۉ~) FAwmWI#ɥB6K'¹(*D-DtG~IH9\ʎh7Ŋo| OD3?9PgRJ#4ԠS1 +ƥM+BJ5$p m U)sWqj弉7񍢚Mb~VJE7pa%CuH0qbSħ +7sɹ(j}ۣ7}cKdQP ~,SOO0Bj5jN3LMqiˣ_r0cm Sj]&^~^Zb񚃶,qQZ:_)b~w']NwIHG.U<~?qzz6O?y3.O +^"i˧ϓ*^ˈj_IJR9^6|";_/!0 ]\5DKod "3IzO{5Q/N*t0!c$ 5Q覃c!|U&-%JAtӭVE6nW _]$X:/J|\Ҥ8qS~ܝQUktKֺq/8˻qp}ঠGN9 =uQv&g̋>Z5smQ=KCp&ES&j,0AmF L\ϽH7]Ilb 6V|z$0S?\R0-lgNFGCx'8å'{|zV'oJ5bOuz&A5[PSa]Pd ҡx|jsafA5~p^9ujIFjyt.u@ҕɫO:3 +5* AP/Nt F*;slgPߦ:ON\Mp7%`$Q:La'2]%ڂ.Ck߷?:E ST"t<|mb-2htDbG+!pdTy +_))~j80 mf3Qibltu2{MpO:(ޢi4xaQMmC|ь䀀ʚ 倈6Џ.C z8?Tư_}޾ǜSo9 YڎΔMgjgߪ 7LE4|x+6P6i=)ǝ&+EęLQL6Y+1?KF zigY̳E41BdH7ڒ92%eJ4&̠"IvC33q=&; e;iE9v¾\Â^րo)C-h@Ao`%x$?s"+}ȯ䘲Qre7],p`77%zSq:GWKǗv).^iXz[FINx<#b&Cy{<:鯳qv"Wrcs5 Jl=[F$Thk;nw(YG;&{8 CqV ]^b q5q8ƻ };˞15Α?}a[>6 l2g$ukfx~,. M ~>w%{ + jȄsiΥ2(ȣh YK(-# 0Pb \νksՇP3!5 +64:dx*Kig^? E뜦WĉCTg a;p0L*~vݜ"°HMn3^FX t"iĂYcWPXhQ+뽍D,x;;;(s:) =`T< @1Fsr:: _V囼dN=JeL񮳯% c+Fmsf{CE}չdD6bM"'% 6$ e K ʲMtC~]ɝۻxBURf_ +:jtn2d7twL6UWTzqf|1n%756V[-Ke;md/rzm~VTEo94MۈexAAE8mI^uxG; _'[4F pΟ{MRI\*u` F:%cxb"ΎoriԊގ7UkVGth:v"^ꗑ PEERE8ˆ{wn4m rqcn56E6ed5$#?Ryg=A49`5&7«c/ᘸdH @[h/qqo!HB"=T8מkfBc zELYp 7+7l2C~t`R>Ly?-G" TBDeء9{ƬGxMwQ5#Q/nr8hbBE"fkRzI=Ō98ti$aܰkiH Iw$Ήӯ(aC5wFׇ'v6vhdR 諅P!e(7W;۷~hl~ز3AD^j4E!ɠFOk  7Hh<. D0Tr I=us0 +~)V-mrGo,K;X"p>?'~\2c<߿+ddP{\?sFA{%ڈ;##ĦtBшd_!N*Qev< ~ +A1l;*Ql@jWs lene tzy{W/a[m<.&`Z=XSHOG YXBZ| ɘ /ɌlGg`4 ߂"nz}[cDy&8z~%^Q\ $dd\ҌIe @B3좪 +f{YA 0lf0l8^'i˝bs˩@GL)&5M +;ATV>JRFOI&=_b۹h&yM5T@{o/ġ̸W3T * cOtS=S7@Ƒy)j%TEw'"#R&s:,BSW9,z[nntIx없dc=*HfҒLXR<w)3 ` Tv*ue/Y?SIBx`7D%`.4*PJM zRce3$OÍ/OkA6P>l2RRtzMRxԨNsG EfSi<6 ɚd-B~Q"T$b-Z&)ۮmO}mbo(pZ F`7%Dx([,ZAY:ƏSx5KY¬H~kI{MƊhESHvЪD*iqw&&q{?>Eؘ /b exJ|V?ʜurxSXZK]+¾gq׼d{jGij,ܽM,rwl> +ukO`\!UX4bs}@U^lpz .ֻ$lhԻ7oh2S:uNX'#s|űlկU q +($9KZU^(#\ =L說\aTayMyNml_~R!1":(4Pu폐X ͷ~#?..6?+>1 M" 塏ýrQЌ'b_\>8)E}P^KȴոH <'PM _ܼLD;r64ГD1*hkI\&v4`a.UD4KV[w-=vNϷg cČZ&bWfGX(Q3xDp`2R8AIvC!eᎂ="kU(A=$W4t=D65# +_q B?ʼn"?u1w-| 4Hpe;]IxMvYa'-ȀXg 4F+8p$ˊJ"cS;ω)%JKGϏҞi)8ƟH= L&#U#<3kہܘ̽>^ƙ7fWzʦ!D+&S#c+<,3j; @/|eFϏ˜lAsh~鍈Q(L;Q(n@MJ9bd=n1e2(=! OůN P +#d]3S` ?pT;X~펳KW*W +$tjd89IWY?|[ՏP+ןoq;s.;h;wŭQa)n 2 il@Cl{>9 ѐ'oql;tG:;w発}gen%6r *y b04_{dqPT΋r!vRvJndlʠdA.1'f^ +JEL\U""_[+/Kb*9}r'uؒIؠMRUֆj1)"*^2BK6K==]R[Sά"b[f߬G"ujD=G1eRTmOڪZ2S-rkbED(QF_Ч@YIrI @eqQ0&v< '?@>+q4TTVgY\w?\au% *-4YW(~ׯYs3tD)FO+0UhDS>J`.;rP4P(E,ZFT,1jb*.3Jy!.@kZ)y~^ưz8nh>e_6NNR1|["uY*iJWY-щ3Umw{P]+K8vw DӰ5 eC`\be Z<&g\KYV[aVGOA&YGsyGB@T S +3ƪbD~wA!%QbD; +6I5An9au_bB2- g+IT exa +_eoNlAiэ9q ]BJL^IFАPf/UpR\^N^xxd{TRMJWBaL`Dx+&FCeM }]t*;2 QA+pv_kf.'A L5; c,j :iG"2훳="j<|+Vrx6ICcvbc&A˂i${Wb<u <*i;Y8.HIP8ל89nIoc%^{3X$uKe}^n/8 mf^uQTL7 +8ڊԹ.QJN_p9e@!нxuѭc.A.mqGuY~RM"S ņArzݩzhڪE`2{Nx2nh-8;l%ؓKnSGߠ w&yİ5072a%d&e#8|sjbAy1tF8 AyOQpbޥrBS/u?<Z"SeOwdD%oYqjj_pmlck$9KȺLPD?(6eFmsMuEW::QF|KU16lb{9jYR)Q $KH".I&="* ` u}*i\0x eWuxDŽK_pݒL zWp YFF]s(,( +-x&{8VT$˖U䂈Q-? NzJ=fG(T_I} ^(YF  ZB (#S+>DHOnrϰNJ5aؤc=VRq6󴅒$u6QҊ޸VI⹯:+}-ť f4^qx¬QK!~5WG`jrX =0  |3ѺMJho@I#$Uךּs껏[VLp8KH6Nf+3x@3UpN*I@pa.^vl*pvpصBOI:D/dz'/bk|kNO{f⊕z +)10/s0s\p7=?"aߊ4-x!-.0 P ϋ_ǥr<ϡx?jal *Z7Gv&)_I=%_J!P?4py.{aB>Ff"9WqTmowgUCtyܜ0T1ϳ{=r+ R)K7Ľ/ +MV +XRSjTN &_DN?lҡ~ůQletAZ/"أ/ԕ%mXz )vb5R=CYZ"4aIƻ +h%9vC|(/S}QR-ylKX-=EF>1)52zڋ`Z&ys'@=|ɲ k +X@(2)΅x:ʁA5[X\V|#UZ ?k{t<sG{>}|"}89^yt/g6;h%,Y +Y-ߘ(14Y/z72p6I֬D]IwwBo9w1GrUrC&\ι0Ӂ pZv) O05ϦR0X ѐZ9t|<|_Z,qeHN^<0q=r+AbLe@n(o2=\l?Q[ÜCoxd'|+stf@Xz"_$X~+Mҹl|2ET/WqqɄ;'?!Ja9?e AqimmXp^".30޻j[]i ֘qZp\|v|Փ% r^um4[ %U񹀡h?rÀ/j=aPb6u %[PkghďJNef [}tMxK+&!e MގJժzx}JIeTio(p$pr6ȣϴA.)lZ,镡OJRt &"TGn^(LK]7сYx06IA6:47D'"i.P#@ /눎C%hX )gF9ȝVܢ"HL-2l:s†|x~0(!HPRڗyJyx:Z(݊8[׼(EsS!Af.f.R4zOܓ5bپ;_3QmLq&X9:ƹ(^J,V?/RHխ7R9֮ +Kw7/2Jܠwx?'~7kKqq< >}Sh*gAI$5F %O.<~q!šiG[߾t&鵘&J+D'.(scjwawL<1ٝe@lDMDMNl +&sZ>nYd-b-Md䩱D""H1gIu\)>zmVt\w<6\$1LyG7.Sp+,(^97w~+JSkwk|3QbhH;Fy-~Q@w2MRIje ^g, Z(bGs.RxS +[ ;tqħ)Z^͙$9_1MT!e1[+jj)";eOXUe*u&t'@3qӹiIģ4@m︭MGb]h9;/&/ݼѣ#p@hgj>oڜVQ4rddD\De6Ox c&.7Wmy l⮭(?7ڑ(r_1?\p_}˱4/@Sf`­I]UeȂb*lM+ OVk0t+iANm& or`_KDq)G St&qZMa"T^-4,C2*tdzUB/uaPmJ wfH r]ɱGA 4M RFPа /1jM4/BZiЦjũzF, 旹\dZ>h36 rLۯl˘Ѽ*;pq +VMG0?9>eR(%?0vg_l촟|uH볙|rd|MmCʟZgu?ck +L+X+|xL:^-m?<HG)o)Ek\‘HCE}`˸KڻJAK\qgEM,X>;# +lZrIV7 RdGږG_J=r͕[0U(EԑZ덕V~' Lo>OCA$PyN~˫ys80~,e!qC5t W+JմٽUI[7scS";5w3{M1Y-;~RH^}jGM [-bJ]@CuI}xHI`}E$!Cw %RY2G<efPӺ]XAQ";8WuMj4/YS)B4 +|^{qojEٶyNQa6P8x>m@_P_Fq_A6FucRQs 'OR/{ӑSwRWX7?lb4:o#.5~r?Xͥ֊E8!>~FfKp}4`>Xui=Kf`͌ɔ:NxroDǒ,w&[dg!|~ˁcs:LXtVsqȼ룰#7]Ge-ߺf$ H-ᄤ@ 1GPeBAr=j>`DmP] /dFƹJԪ:q8.aTj]B$8>TD5M}T#U0/SB?:AHʂPUݨ0P]G9 wW׹*hA9ZgwA㳇 +e>ie^,Uk|,.dܐR@InݹE_[=n:!rXe$!qe$yT7^ktO#-&Y +]XSA_s9?#a;XٕqmҦ? i8~׆(4 +fWoJww+x~@p*o_±9n7MKe!N^xq^m'no750PcUO/|Ҧӝ}[)PfO}2Eg_ڇ&_Xdժ9=@S֘M"n^΍0\kvL)9NLh9]D8g)k"m51 +j);$d^.'?yLQGCTD/0 f=CȸHJT<'ria%8ҁ~/zhD+IqY}b(@&.҇fApN;q ^g5c2_z$6 $NH%m|bҺ$}xF;}:z#kr oI1/H 'QlH2V\FMl1cE\L$ z]dغq-Iµoh6g$R;Yp +(2&O ˜ݡA .EOS^V$".4| oJ@0pɓУ~F2saa,{dY9J6j 7sxAzVcʼnW)8WXx6M 0K@P G6΋\ 86-|vQ7O=7n\m@""6eF&9<:8 @Hkv$l>s b4R1a2]oP0pNJ{k +(BP$j rEE~pfS@?N#y0l QY3 zT#Yݶ=|<pφ6@}̯rbo3A?[/N/.b+VNpMй;ܿ1s4-(z9ڐ &M0l F*mrIj(>0ץ?f uo}1yHZUz41|Mtj5e} ."GYBi ΗXG0b{ /,CV|Jw 75Ȩ*1WH5%UfDߘղܯ| Z+} K[c&wg6|:t[Bi_oS*YɀPv[V.$_iENHmea#3LHʂocݯ3. n1NpvFdSx,36D''Zoz> V*py"vKp&_H{G@@`BI"4 îzE^#F*< +ò'_ƕi*($6{n'"5k٢)Ѵ$:LJncf[ EzIغ]6sSq*d$Ԉ|՞a6{_ (s>aJl(E _>o^F5LHNpiּSx:ctHaܞ*u 6Z.l&U8vSwLGB_g.5r_v1fύ7ZCG 0P" (45G;LO_Sl23~ӁdOAC%'tq^=)RS [f{\Tn(f-Fxtl*ﻛ, -$TZq"_ht"]m3BPd+,iS@1S"Ax“MS`_xGy`CcP8 1/l1Ⱥ]dWq>~iqby .=y0:+I]EzI.+lDC?M  z% ΓKAFMxQpUt:;ǥyeGB{7I_C%SeVɒmgQ(͞Hph+}s9# +'&Y5ݴZ +ic>(G־Pǂ"6/ Kp# T4%*teA"ՌMxBO mP}?%Ll nJJ-+Ȼ504nPr2~l%1gcq_Yˉ 9sG[)eUyAxK]$tWpzUjO; ]+fM;?@nQދ+Ty>j_hɘvCf6:Rv֌ZU ߹q:(.^{3l?Ď<>}qbfiwaFx\_~ݪds#Ȉ +qvīE&Lt+b"՗zKح } + +z%Q 4o"xEs[5ȹ_băMlHCE֍ ٘W$8+6!t˂{鬧ƜBihzH;fU;9"! 3;~S˛2S (J`y`vبn"V}D)IW .8=]n܄A⸝.[{MVKC_*y lnJw %0D|kgqutĄEkqw + [xf` :?*;U0W>Y+_Hڰ K~OJFv(="G' ǥ@JgVV}eڠUT>jpCyz"@ +E}/Ȇˠ4Իla$ϖS] R +#NV}ĥNb0Z3h)&Tu1%}p_%]D%H)QeJC.TNGnQ]G;ݚĚ06"D}1AzDvy+'pV}.(DeG#0iɾtu\qii}u9 -8dCחKd H-Oe"@}>v?{M_-Pϗv۲I<ңC7GT@՚q7WA_#Q/ىӷ z!/cpP + N +z݃ͧzˡh=}rz𾭔3YiةI7BRbcqy˲s:-$PpQ*oTj9JE +yo%u7$ҩ|䪶,9HA4w-M!#c¤l + +^m2=Z]kȃdG<]Ift6xQFpوla7 񨐝_i%bCGںKt!72J~%A/Yה2pp[D%d.{M$ʥǒhœf;+UůH\7L]P 3|O)"CC@Z@lvٱRӟ9pْew (m8&8!Q%%hBnX|YeHa̳KҝDy+Aa~\'!Xcb|ЅDD$-TȢM5j;"'(D4͸zLa?ѕ[FJC)۔S@S-Ѹy3YJy!4m~A$=KAT~.XlGTbW7lξo8Z>"ޯ қLIlw'55$щ[`OȈv+1i**bdNi# +Be| Jmhl2vLU6Q#r;dWg칤ٷ3_5JDY7a\jF ](W.VZw8"*C  8 Be`ٱ@`AvD Mh53Zq^P-h{nT0[KRaǝΑA~ϗ1U[c{F/V +6v)@/Tv!纒GOW+ 8 q1xx5\Aň1/3Pd-fn+駢+f^D0Yo:km;KĂ5^ Ơ ǥ +E+cchK8] Q+ +=3\;F":J9{q]3RS15FvYΛ2 p5:3"b-1)Y,E"L +žU1+`|>W 4|KK7b,nB!awm&/o?E#04Pv1Ҩyf5f?4P"aAdk"`O9Bպ =oCvV!GˏJio^o?$C*H6ΐhnhB̎Qb1ϐH2m+{@FQ:9{v&H[`qꩤg# Ӯ:!lqj[4GԸ.jɺB7B78hjw7rj^A.?)ž+k6VeߛUa^'4]:ʖnS`i&aGOo90h1OzRx;ɶ&[pR5H+܀!-4olO(5- |P+jEq35)#V- aQ ~!HMu/ZVP!beLA3cz +֤2 #hU(Go k@ +Pׄ - !^];xlFX5Pw*n39,| ^J[x.W6~j]tU,ix]Q*&GAwo4FpcM`IB)%MjI@h15l20G^)|[3eat%)&yT?JǦ[h{ej 9"1˂cWVԑӐ-A0D'^ Ȏ~6!<Ȃ)9Sf +3j,hmIr VAzДٛ5f]ؾWy@ԚJJ*/`]QIӗ*+N|!b[J1#~x1gmd."HXV"Uэ:1vv(4*mWwcľi{}5;ut\T 'n4/Z Gdh!)b +l-蓮H<c=sVrt}QeI3k!g$Jz+ǻ)]~ G?p \1XcuհC:hRY+]#SH==AiR(z}9ǒr!oEw\k35+II`LxL +PQT޽(vJ&$x޸yc2Ir-+]ްIzhOa:lUޛ lɘ05͸F*!,B{IzZKd^PEԧBhHA8|{pR%pzFxJ#,,#)^BpM"NV KA9g,Ib_Wx`1K2% +%aWe%T1``Y .}twᷜ5M`"ڰx@B?1ͦa\PL<Ww=ԆR-e.N[h[ȡ^)W:p" im7y| +ցx';xitW.^L_ڳc.7sȼ-1y*4ϿwߤbܔՎ ɕv-a+_-K#~K +sH${OCԡ[[iMo?Sf8\74QɰLR&, U&z18sE.ZƖcs +N_xbj΅N? 1B3dh-*M. 'PIg\C_4 P0כD"Y.q!j[(? 8zEa:fڸֱQO(iD. OT3U]\wRhJhG\7'AweY}ƫ..ò/A-v +%T(Vy8moE=J2>c(GU0ҾBB&(0WnsS*(0TC2(g\2B=)})>4lIUX/xGTF!!ev2Hj!^gzjP6e#1m~s4%M*kk v̢J™9 ; "dC\k%kKJ'/%J.g45§ic)ٰR')٭9Er-*&_5*#ѥw R>a_WыM[3fxDХrӨHh/ +<&TZ`]̱\DL"A_عH5*kWÁchBi)p xH@m9rQK3ShZ`]6F!Lb"(tcd@fLvهww"Fq*aƻiz,bl,ޠi5%i w 18xW-AT^3ZG_ژg3`AblEOwe< -RVr0Tt̟Tb=&{5vn@ + ʡ'I?m&\om ! %a,|EڒVH_v$xwI( +.n&'iϠ +!NB!g-1[<[OrDң'4Jb/k0qbdyEBq1mc4wvGi:(ICvoAљ1*/ +7:߰O(SW +p ~ӀJtO8A,Zބ>ԕgniwLϒ+=B=3A~.vK؏ϡr#7>ݳTP5%g}*+pFH+vŻ\r$]B4!6@b DhPǦ9`t^5䰨AiaE{+ivrykF&_-ѭ^waDQK. +8B[ZcQwxM[CDX8= QJPi3Yr ƌg Y +<(`1a0DcY甽OAϧ +Pi^wb{-n!vl;z_iPPs&;PV &1Є91di[KҡD<WPFV\}BssQ^'?3K1Pg^lz˸ ]̾^LW `9rWvŸNpPf^!DdPq^Kp+4 Fݘ'@ w#58jV6*{R*6o!ܤN 1ڂq\hۭlI9-KLAB\AuMEA9tVHuƛf%]L*mO|?<$Ffi",2"Vۏ+oK:(ZaR@f2*\xP(lkhT̛Kf1|Pk+B링9}rmCMj4ô`c2 w!#NKyOk7Bdzr}Փ/BY켋I3C3K.BPJS"C#*2.ogwʟ&B * +A-zAմՎudiHL~BIM%ΑXUW-; HVEc%Sp oʼ@vejqWԢ$MH,|sg/t]=dD yqn4n*<'nP!MfMBHQozXNy{W>zFiSzSij璵]nt8ܢ 4([!9wbK|f OJ#J*f)|@F aj=aɪ$S72EEpX0%> Gy;hMLE D8iK4IW)z,:ĿC˵E%VIcކPU)`i1YH-:H uAG!QZ)7TɂG B4L_4o-ACJ:pM +IV}sOєYUqpڎ;vEdVa5ُDžkGPlm8,UATr7|^h1GqPIX%EY +gIO'҂B<)3!2`A`d$!̜0lpE. L^|70LGH 1yl5UW`+>L% +tvF'ielŢټHo؈'C{[ήY^dX[}:v?wr\rf-2s5.K@嫷@<$hbwK& %DlJ+/h1 *|rV*v^xˡsNf;1,[}O+ 4b@p +H 3uB7-yɵQ{/v%Bghꬠ ;C t b S:5$0e$VЍزnDQ +Q`iLhk8:⚀unE'Q/DK.+R:{ucn/Es#j5N]daW1x/g@ +wzs!pk50lIőN3Ƃ%U&23xo;&ҬH)ӔNU^#G׆K*>K (?NS^L3fD%T:VkMSGn^3P.iPO%Iap/ޡs@o]Y :I%F[Ɓ`].o͆8D^AJjN#{ 28VD/8 jE9yUpөtT:S"Te mrQjgIi GSg_0b}N<{EO8yBom*F,L#Ed*Ye%567v D'19RS eVN0]i2xG}=EIþUɻ\xZ@ͿD`_g +>ንği&%Gm5 %W#O w} +:ùb'8mO81EeZ>XcPZ bd1ϋ݄rAk3.{n)e G߷~  Y-"}zbhkSj[bPu'.sĢǜ+c3xECPxct0R)ٸ08N +i'.y;1JSCqpvy:VY~U"7ەj]<-܆e#n͎!&Jd_܃9*9Vjw,%\C&ԌG)E>`#$GC,1F8R>wDp"VX=-st1R˰] "X|:E&e\?d㗇l5H0{IJ9c$BcQ M""8)xx<: +@yDby'DN H.&BWm~Vizz:7XP_(Y[qZh) طm ,KԦ POy('!N)ҥB&E7&i)|vO_rol,(;ܜ@f%tQaV̕ ^#3ړhAMH*Gˬx>rC|WH_Y2/ Sͦ,o%aK1e۳"Q۽Llc'> R (~Txe+ƃ:52RetdxYIh=r-}/eh=#za!uOopf悯ccJ?$L~3^D©ƍޕ\IR$$&%I-`1P%%eIݘ ,k эi;O$%rޝqA+m iUcSV +X۱! AȷP Ёٴg*y#pn<'Y25E t]*!hB"Fb}"ۉgURB/xV :wlgq!.AtUOlxHMt-trl >\X秖yşw.r& /.EzTK +: /Iiw+s^ٸ),afjg)XbmvWO(ԏzh Yߏ᜴,) <# p?!`N W CfɈY 'tK>6|2_LghʶoE]?8u by5aZ\~,\Xf5#P7A*\/J\ +W.:d]Nn:$f TBRPg,{! d|=%* #(?ew$C +\i,& +\H{I_T(bPQ!?R _sClWK1͓ S{›auŹ+xy *!'~S:G(ƻXpl!]H YSƯ`AS!?}47?DBz C~102Mki1 l un38V] j9 AQ+&(WE6 TJd /hXvzˡj4l]]2^/@ទHS%!% Ynuex5e"3=GVx4u$Z(F` WgL$ O+ j\`\PFưY^-$Cg{1p`CnQC R-ؕ5*SJyW) }P} /aNck$ +Rޠ{?e4]@5G{Hx{U=KL.=_o5M#a+hiPb%za\JQY=lmь-tq(1DC7&ƪWLoqdF#i_,gr,v˺'Ciۏ+Lׂ?@O]{a26̷Izykk]σ1A&0i2d{%K9BvΝRɒ;dgř5+NUvvo/ۏ5kuȗƱӺ tMN/ޱybaC4_Lգ8R46s+(Pj+odi+ͮO k˛^oȍ3]: +tR'-ox 9#]a&T;kǭya`M^ u&f |IS3RhHm:Y@= wݿ/•;|Ɣ3"]O^l>nڼBnӨBHr3q&!3)Hj3(Hᣀp4N8SJ6QxꈇQO&u8Iu=jwՅ5$m3%2M騂g{wA_-d7M9$$P!#TP^(%TľJցޜq$VV +Ճf./N*.rw}'hԫ uZt7&JٸVœȩa_2d@V8d ,%=6 +3:xvƉ T2bĂ詸1%H} +GkӐL {"YpyiiZ(~Yy%hގj/bq7Wd׳c.SDtŕS{waĤVl e4̶Iz? !{?U݅9Ix@tm~ĢW.z=ϻIuSVhLXgE$o:|NWlM&@|QxI(<f(ĎKK'K=|{s08G0NǤ/*v@`4Tl#9NC̰:;">%=7M W/('.z +%T.NҔXy . > ^5RT ,۲DY$BF=d SW<tQrK}+ПMuoVbBLhG:U.K%NlL }+VGxX=ZxBѻPu9l"8Rs#!,_JK1"PB;cOCFGd>u~ 7HxL &!=+U;*3%?0jOyU31.W]Q{[ww+>. 'cpPY#6jc( ̋GfO$]B j15ِ +5':OKQv?Eս}\Y[N}aDC4hQ%Df5rWY 5i`*%AVSҘ s Q!cU V̕ЧPd*#~֎)BzP\B,|1e a,Yǔ)VZ'D~>\nuHҩb={1%Ghwfy2pm(Z'^D}0:ojH^f[`O(p̬LAckpP W Tb]yHmu^3:z&lJe ۉAn3C/>~lhg֙0]rJY-lֹ VL䍞Sۺ|,(Ȇƴ:^zWvkc! U~\ )M +TRP~'"?7u ġje`'ݿ;0p5R8F!- +iAgp該ɜQ@"иU h +Cd%g}N,.+Tw{QwY MLC_rSIAw?Zuda/ҝ0A% )TZgJPsjF쨊gJ+dGеj䞏BDjnnkOuqiI!Ph@>vc`4Х,m86^8BW8sh$:M_4UF*%wB! 1:_oiߘPQ)Zxt u7_TĪ^́?5qj$"ȑg^~N|PxK3k**+p1Y{feZR5VwL?# ٹqڷ*'^P edq"H{K9GLXA:01fRr7W/ϯ džٹ᾿>' )GJPU,Ha:W [.mHP)B5|e C_%&uUG*\Nq|DBa0(5?rK8? ==x}ڬ4lwjQZzNjRlQ*1fw:YUЭͶ4xhK.ў/ϋ utbzz2tbq=㊷>cꌣq$wf@ل;B^):f|NŽIN$}<0glS@N^o>}mz+p5NŬ 5ِ =#QW0y1Cs#v o^9jѸ\h+54(\ˌ>-Q,̵RA /cETBfwhfziԜqNc}$*QƻKiGx Ӡ,ii{NZ84gg[==xa|c}޷](w ƉՈ y۽\sx4yDZ]MD^EÑijQ]BJg"K|d]L` +( mXroIBS1"y:Ռ6ofHX%2X1P{7ǁK|#*C|_S2:8Fԇe%R* .a|awE`*͘ߐz])1iC)cE9i l؄(0ҍ%H=>kxNb{ثml#.J#?l,CgdR+,KרVk'9_/ z*>?gX$Bj +դ)8Ql [S?XJy܏yPIW29>SL,d$C[x/'%U"X&}xNdIZ* +G% +*'fA]súl;ho^!1wnQ?/d_^bBJ315?~%2C"dz4M3l +:xd*ۧpOO?1EVK5>镾L]ĄѥjEV< &Ӝ|ZPrͤ}-շ~QG KMnK2*i)4QnUh))_AdƆǬMe:;_Th7Ȃ;rY9# j-|_ёA*߆j׌}Upa ;QN DVgI4D0 +,Nh "^--Ңc n 9'|%K~y%1x.,d8 (.ÄV6rLi@6fX +x*mzsx 0}>e͏Ws 6%(Nif!)|(_T +&YY5HU.(R-תej:n&Drx9ֽ4ik75;ܿ/DVH´^_) M{Z7-%OIm@^w_K.!.)H +VBcP7ҩeaW79KL +Utj!nѮVVIG:Bش~D?C5LJ֓Biَ:|8C# ?J\D9W;eIL)g\qc[ A-4 D,琛بۧbWOLb+of{˼&r Vd>7zOk\јunE/!>!<)bnIXͫSi_Q$X*α*uwm{qMǪפV<>c eByIV[Z-0%*I[ cKre~ʼnM>jN-m 1Pct$RN,>쳆)yY mCVr*! DcWm!kJe9hZFH)[Əתh,)Hd\\Aۖ2wFܥbZ֭(A($51YZ=F}qi8MaW[,2M{n=@!ohBM6ZDGH9:Hrv͔B%d #0+[ +WT>[d{(v^2?o]-q1ݦ$d5hZREJ{k#N#`,n=Ca$o* c /k>3wJҕ쾋NZ ; +>B S4%a*9';jd`#A-zem +i\ $E];hRPx,/W%=u/>꾡GiDA:`66n($P72C8:!܏ij\ LZ9&=}]9*VՆYI3PgVzDЯP r{NS3^Bqa5|Bk\W0H[r5 Irv*u 0#&)8kv'!(? +Gl"M-va3f_)k7gҎK|OV+mMwb Q7Bx}} (|Y@*6%,3r)FBcݛٻቒm{Mև's$QBf)hVy{%ǼՐZV|vvZKAi@hۛ7PAu9YW balM7O7tۧ«SJJ˻Šq(1-aW$ Zp_:ui磢8ta3#ѣ>6VI߆kNPMct*s%4PRÚC6D﷣iv)[r@4IA$dycȏzfH zJٶ MpbNaIѴgW}<$zm)S  s}ܣx [|[ LD_f$C]D=ykT"ţ?3,b0Vp"DǨb\Bה0'q6Dsiz@Xݷ'7>]{/KQ(3Hʦ0ZV^AnVn_/*^' ACu Dm!P7js;Z.G-4Q Gϻ GU8+C?hxɩgNp4qBO=",upU2ʶ\]Lj0'+;EH|zR-ry 1S ;CiG?f$UDA~q[:#*C-]x4ۑf.Ve +se/Jŋ 6O 4LHz ruQ⢤,xVzi4j #=3%ђc~(‰L³P"ݤyEI$R>$hOxC5ܺ1䖀\-11rU3ؙ)G2sYȄ_?I44%I|"%qLVUa;( e+698ESOgg=40#EeʽmdoZgҭa.嘐Mx1 cY?LqΈ̎[DH  )j:F' hO%Y>o4(V"WG9%+JO0r,kz%!.M'MaLBc顴/7wYpEF$Kn?\6/_' ~{=|3WeQ70Z&s#yaP;KOrtE)Xћ5V],j>}溵+?kGME4dBaIϕ֔dve>ЄJ2 MܧhzzϪE2x¡㢟plXU 2f$2wN%_;{hfUΡkAm-[Y]fh@.f/?@@Zo>t~ +6V&e( NwU[ )AM*>g?םGx!4Q6fR8SXPJѢ*!XY Q"OJ/n P@EkK !NiR|Ǜ9KIO $^8d,o~ +'|% +rNZ'޲B_éHBy 4K\N5}ޢY Xv)$G>Fƒ;p9^@wZ%?ݏ6E !W[05Un]oʡH&S'=t##}98j*_s0@+=RsgC)HU43M!+K6c%tR* L+SDTI ln7 H,+WfZ<@ZC+.y'8^?ziMFXw2_8-ګ*BD" i$WgﰢmqnrMGd%Xflw3$| +pC.T^niqymPZp!K5&Ccՙ +ߪp~۞$BOUęm0nɜ+y mnA nxGZW)θ&uoؤǣp$˗,MHfB%E?t>QxK5'~-B?wWP#?BpúN;'5`6m_FMRfy a=.IjVY7trQL6Ys͝m+,| H8D\%J&}2 B$ +l_|W.%m 1 f4@Ь_웅W8r#ns*>IrQ +A7O Z{]ؘ)C~;52nxLl} apq+D3A]4q +T$QX|k S$+\ژOSfSlͧahɨh-XϨwժ*+;R<7v,I@/DZ$pE/>a͂b&;|IOqo{4<)}N"yB&)nA|'MT@E釺jE',PL)G$DFnMv?F!bȟտ >5 +hzAKY8_~TA?:@v4HVy.f +ՌcM +ky +<'N$^Q4~aBY2>?"}Iz32x~ħ$(exA{ Pw.߼IPbi\*O]66[ko_~wנ$&s +0*!U8J /8j[WA1]dϝ\!MO :wlE*b@ ֧ h/z EsыWLO|{'-"5IlYuq6qi0KaUC]~X6^ق:EaNudraG86":3c>ip{&8vD$S._qLÄ/L~ g+A## Vǭ&Nx4`Pw7(KcPe+ˍ^7SSaa1?A>rUc~ۦWVHFDK+,[vbJ%~+ꃂj%lĊJ#g +E?FlشtW75$qunKoВ,)lE+őX꺅'WYXD-0hF׾Bǡw{%Wf,uӼ.mK8P͟T7Cj=R!?g^nSdN2nے(|u4_++mrUSvQs .u +۫uAм1y|\vVShQbdM +rڔJ.㒯i9Pt iiCk.Tr[{֚7|c4aE+WbwcsszUyZ4~Q!]Qbo*Mq v.L9G+9-!;k?!Y-7Z9eqK1Ȋ֗/xa87>M*-2G~hP=(s2jH5pװmɗC/tˡ .l\+)1nqgt'/NC6e$0SWɽO{n̶C4z+$bsl?ܐk# +&;URS'BT,K?[`50v;.S#Q!/u0TgU OӦIbBi1긛 (Nj;=3C +]%@CQy5 qjVΡk({Ї|k>2Qryrƴb 5Rb7a^?{zMMwLIO|=J흕d9!)uI6>D`*{t._fؙW%_A[ qX2#PYJ~_4tAF#6fB\Z+q+Fػ{<ҕC }KsJTWH| _28, +qR#ܐa*?̡{yJA[Oc*&b[Ђ'"ޘ*o S3o sQ3&V{R/7]u{q"ܵb@N/ɖ_qʿg۟:( @qP+ҔNA{R.2rdQBpN;[q#X?:^T- yڨ:EµT!1Eu$Y)@g!&I52o7f6u]6ݛbKy/{dє9T7u@`fjyKa (]qCG:)ڸ=\,d`ojRתE%V>cc|+h1x80b"Z$_ 3U"fَ ^րH3#P2`⮉1ڨES'}1Sum@`3jOmR}H~g)eS/գYy~0i|Yk8Y/k61bl~f4Rԏ P$`Jz0SLbs2t1hW:M3N5qhK!xbr/ȉ.lQ,_K{Mzb6d ^Pgˌ!3rρ͡'5QPq>#SӸE3({8Qld뒶țJ^Mp~ wsAJlb)u3c>֥6 ZfPW/!TlJHʽ%.l +R~"Y֕\آdNע&u<؍JLp*|/0rXq9Ӆ$VrGQJӤ* XRH| +VΔ3G5e=±hȒ/]$Q}X(Gp1DhYWpv߃GS&1.lNϰb\uU}9-ρ{ I+p-V]P)zסOxzXjb>Kן +ԈT.F@UpF"ŮK v[SdC|ޖ|2JX :}q>hPY0o +BrnjlՀ#ۭa_\^B@*1 oxݥfq$UnNoa_ +h:c,TYm9KZ:ChsP{(G>dRJYmY % fFnqx.SZ.4F,dД&\ꑐ|\x,䑈 B PsZ*C,N8 W`5jTeN"n- `lBjڋqόqn xC9:͠ ސ?o$_[K{t8%KE +AmY58:lz^=0Znq/-3hHE .SBѯdQ(Dž"@ +D$tG~U+f٠U8WNxL…ĄfBj]^ƤX:t[=R*Cx͗Pc)Vxy-?$AmCW]~EQ* P 6k2;tpj(琉]Mo?D{ZTQik)'S/3*1o;x]ze[a!kݽsVM !+~Ԓ} cLфB=~W_`PM1/i4lȫC3 +"T.BF#͟vv%ЈB()jR'c'9nyw&#XT*[?~%/s7u)@+ mmaF"3E.؎^pa Y!*Y=σ站y94Tdi|)q_s&$Fda 0y~_tkEgJڏ5L5%HCģ" t:ofCŢ2RIywL o˝~vC|15\#kzř?,-K'opN@HƁz!w}}IlOy lӝ~5Vv/L4RvߥcǺ mǟDk0^eᭊ{Jn_5MdWV0r,Tw{$A\U{8  }Xfr.q00Դ`.GOOr5D,fO8xr-nߓY[rLt Z86s9@V}TdUtPMnMn[3nfܧ͛ʎĭ#DNVj>8]4sQF`&T51~Rq*]2/]M1/iB% TP;6%ڹt߄}H|mi:i4LMtj*Za:.jT*VR^3KxR)/˺{H,$Ev/O )Sb~e9|L38Yjݬ^~03Kг-)o&2J컾BٜQq8v}W"10%' +3v?9!{>ҧVw$5FRM5uﯚ6q$c|qN/)HcQ+uyhcED2jX?S3buQ[ 4djT[H*9$@,{3C՜8zL\P)POgt{$CBEb3 bPT4݌ˆMLWu~t1E DI%,JNsHԛ tVӢl(QыUY5)# g)+({'O ױ Jp=?Sr,w01qQP(;~nq4 MI, .Y7Jgĉ qKVҾX:7Zn-4Td1 +ۦhͻ~Liv]XGPEG})s=tE9A\r!Ed1?ާUK3y@P$'{]w4اv8 !qWNn}e8q4b| &Ao IVZk]UUߵczOyo{W}|>Z +NnY1dbCYMzrӗc +unpwOxJTKM q}܎+-Xk:]'D*Qߧ^482aT] M2Uac6zO/8f01 R<#o<#TZҪ.ذ݈*`;Y䨙! uN +#378Iy7%h Jl%DmQ'P 釹BM;m~LY1"=3'pN{w#1=䩔Z=ͩ4s|3[oVVdwlucjj ю%W[\сPGcO׆KL`C@ ;Dޗ###?" &Vބ&߄d}S%YEbmU0N"MX0 +(Z}{|ZMB}'P""M^Nu-V|HHЕ$Ay&Iuk;߷]!SՆ'Wyn8MvvTY5$0G*^[ju1j)Vԍhҳc4gڮ&<3&x\bh6ar+Qc"['$% Q4gܮ%´W4e(VQFxb6tQ(;JQU +̖+꺜 _Cm+v qnfv3A7 +Į[7*ɌZBaAq11vT EwX1$!%ҙ\7 "Ɏ85b +_8~\nX@=@2y{O}߹ 9ߠ QN؟ 8zm;Q"c pK ^Z +Wԛ#WԆ'/̻\qڕ_̪{%}'UX +-6 +rn8à>#wA W l֙jcY9/zs^7-%H|ݣ)/&0oD/QPy,dL;I'WV+2 R@N,ޘ+3ԧ"=v#9ŭn݃NRAb}g1:}7h{AZQoW"{~=}t'VQ8q +r<"&!)D@ U5% A# +[/H-jHB7zfo)v@5Msvv@gшׯRK!ų@~%>?1u>h IKU!`T8kp t4Mj7x¤G»p.ױ᰻)A0i)JgT\IЇBa"r3 Xƽ&J +}Sk궠wxzq.d?TU16xl"U-ksjKJA,,?cʧxG@g^Z׮j ++Q97{Vw߫uEJ}5+/ +iJΐl1C{B[T ?!@wZeH/>NB'[_Y}8U2/ȣ )! +.5 +f+e`"TX^D$Лo)&+MΑ%E%׌SP۵բqbRqTER}w +? Ꭾ<~gݴ<$(KiA"o*Ҳ&8? 󣈯ʙP7#XV)kRˡTyؚ`+3tɴ/7"9%qw …&4\dVhZH-Ɗř׏ne_L #1A/@CCZ:$+d:݋NO8$WE:VY`$) εByCvgH|7|O-@%,&Xa/+-8fٚ$ESDu!9_{e/ƙ#OV(Pϕhc;kK%Y;LRt$eo[W.q? ͦq_ΐ +I,pDкW1tgB@5&̭wDPAd-X4a2 ljjhM,u,Q*"LRiDh%e+$EfY1e@&6EcCb&ۭԿ&@]Pa.pT5 |Yim%XM)A8-Iҧ|NJA .8#z +oMEZhZ $]%j/zX5ll3DP׬zm%*¹au ՀY@?:|$u{nMA$2}!tQ6K|js[Q%h[NmAwK}(":V'g!{RZ<>C2NuH`tpllFoUDKr/=eRiBiR"@ߋ@oI(E[7q:v Z VOнu8C\|>I6`Z2+,s'rhϯM93; Q8 .Pl9! Jl_2R-[tAo[ u?1/'Js}CEFNםSd4Y;e~i,F6_4sC2*]l Z+jw.l vR1,PꫬmpH9%! 1z˾7atĉHWLxǮ,YD6[)_p@ 5!Z@uK'H-[6?e*M`C>:N"$ d^me5llI,l.~lz[æ2boƚ_VV)XpLxWނ~<5A$#8G &H&.{śJI,Zp$x-t f%(JKxT:vӚ8ؾŏ#)5h!~%žDV(TaX^)$ES쨒HDSF$,ٺs@S^m ˵6qTҜNRR?B,++R14}Ͱj0Nϙ wOӟr|L<<ގGV0?}h`zjUqVyK%C࠿ZSU\ڂR0aI +r +Dsj> czNZ* ZŁʍyT̽-.2Le͠crBV~k}0A&({LvZ]C kR]2d_$JlۊӾQyP'Gdz7jQu(aX*r.meWMbj<P.ŻvukJ6"ӂ I5^}!!KHь,SQG7>+L `@w!\Ty +h}-&!yދ@R{+݂m 6/ @K66C$AtCj [~Ρ|c'z& $G@߰G23O j*&"4+{I~sVN +Ipr=WbJt!)Jm.W9ZeO/I-pAVj1Uۮ#y2CJL  ^+/b,-YOџc\Emm(Zt&MF3BSl&UU͒ۦd#m75WLr=E1?c'_o_=@?=z =>cyEM#+r S6%m)FPTi)ӵX9ry7g'2+Z/oz2lT\nQqs (%Ͼ/a| _?~ 55[sr+%E'K"PTpf' +Wf;q,2o?NePͯ"=_LD 4t|N}گGf(jVE( hmA TՃS/~uO;*\k;feCo15҅ q%V ƞbN0/}}^~j*Ӓne#P`<mJA +1_+/o9$%2brQ(_Dɭ|F>TE򧱅P^0aC&1%Ge8ҩh:] A' +KȜ&'ԣqfV'ƴr4-p$88NFnC% 14xǵ*x +,U$Y)GqR%Z3ntrYz6Ȥ["4:rA\2!@<ێ0_w{4Nc5q +!Vn"! ZRB~eK@+1RR\p㊄yi8)Nԛp)sI@q6.&zZoF|&+5s~6seJUQUJt; 8PH+waZ8xt[,IOۛVLK:5$D{5lRyl+XV98))O~N2^@GgxR]q#e`X~8DėU1qC?Gb| %9,"ц]h4(a' e\CĹp_G1o2lf%{Ly*Ed vhU;r3ɪӮQxVB=0\v-6ǧUB0} Vԕ"$48WTT) +y\A~g[{Dz(IH.yUH4C)͗KE0biu_~JyĐ9qRBono"GT ,{ y{qcLP@8x[Rf-D$l<91!uU>|&B .̟$,D=1DFoop;0v|>9qR(q]j#a,bW5[2, ̆/d"%1(ꏢݏ~n 9 qR1Fس"NorD$ +a= &kTx C'/h:Dv|+LÓBd+_14D x"1Ag {w+7Qc1ණ{eVb4Wd)e=/.V &{}et·Tш/K +P= ݔM8Ƈ>OovOtOy> DŽ%kdZ{P32!鐂W"ĐDS-W4ŔJ,2f@LIx}"x%><ӦgqSqϚ BЎ笈AH> ,E!RбxAu:2 +Vb9Xw7eZpmdE $1FTJQq^9{ɜ,;CK/$a;"wAe|u<Gxnq7Ct:JKW'w0|ˊTɄD±lAv}aբ)XX)oXT&/,S!$%bb!4m6'T>ZS ة$DG/SOx\5u|Ղ`3\­oyvaIK~B{:_1_vH}B꺝sX"[%!Iܗ/;" ߲/pqj8T"E-I<>*m[߰o{ +ؤ:HR?N۾Ͱ}L?9qBsT󎓏vFJQiY]^95R2-'q edAVU-,6dg4d_wo~PdyDZw'>m#>mL}V[6z=kB=<**B>x,۪]_-S"쓍ѐa@Jhom#WɎφĎBO9o,fj# +OL֪XgClpno?~?~/7W/ ?_{hO~͟~G;~g /__|_O?_zõ%Z*_GҖ< +~p:^NhgHnjvIr1Jm;dy(2ݰёNJ 1ɀVܾ>y*E%%gY mq,6݋bd4Ȝ&8SLD-=P|SmzJ:_)-l[YxUzaݛF)Zq*\2aqQ\px1Jp990$ 588FnvT3WEZЄ1/J"S<:y%$H]!'[%qݳ1u>omiO@eK-V^!j{{ؓM1ފݠ@ȕ +/Ẉ4c) MYK-)cEXTȅ+J'VG+)j# "a4I^ń'S9DN拃;(v3 !zTaFsm4(8 6 Jt2Lxxzo<u +QRa=mj@+F$F[#zXcu$</TlΓW/GYĊj{GGc$KLj7xBGy/@aGhRMA w< ZFQ<^>ۖ) +V:u+j|К,=*))9J4tQJ-4D%LU3ӯ(JEP1U4}/+QSTN]PoatVTS=)u^y|~= WM=zSxTz.xDY適h6D', +M‚0<2hmIzs2 (߰J`;xx KL[6IjQK-y%DJHvwŤ^%XuNVw{+ljՕI'==vټ[G%H}[9Nnc7(-gfz>)LLxY#Zx{{p2^vSNS RSE;XV֗ōڇ*XZTdćQ <˗s +l',1 +շ`^LCj?$5qui %`w8*_dD&@kDD$yRۯ5O56faY2e`'RF7ÀkJָG}r6B6χը.8Ӭ‰JҪ4OgY=5Ň^g +?YfNJ҂3P4t~vvۗr2x׸Xg-2+Z")YaϲDJS]I\bPytXx,B S`l@0BQӁ" *F>^n,/S43: ˭"PqR}qҦᲑ-09~QƐШě+@N;I^oDAXrjQ FX1oY#Pmq!Gc["eɌ+ $ 1}Jℍ!^{sc*o3.*wΜO75}̖0Q}]̷`l`՟v%7Lp]8ͩV8+|M[{ l!(pؕ B  O/@Kkӎv䉫'5=Z9[OjQ·:Q'jHo%{j`X؛-R`)kދ>FLg嘎j/9B(\1F!A "̅GЂAm`eqmوiq "JXBxPr;tH,X+ +ӎ>Z) +Xʳy 񶏓&+Po܋;JYH1t󋄇;e@ꘁP~ n0lw5F,µizf55/IPmğ=}j S.QJ8%VǢIw#ŀ +itGpS&|H3f>-;k+mwʳ뮫ZOz\ K]#žbN@dZ i;]\9Ul<5fQjLڻZ%3)&xtmĨLQkbK2VtȳZE\Z2m5ܿ}>`"Զ~HRק8Ec@׹F\n]@ql2Un W;ީb(5Tf&MZQcŰ!4Pٛ +1vkkԡIjS?zaÐA/:M3X85QPL{1:g~ *QkcW)$DLaxę<5oL!U9PbRv7 YVMD)W]lã2fC!e7S+Ɲ˸h{N=s5 (߱gQsA Cd&gU@Nd8R}lh7N"LJb'uOt~> 4 J6_➣u)u/H4dTl\|$d4:6׋C+s[>Z$upPp"(^+Nsȁkb M +go4oNuJkAILL@u(HU̧W~/ +߽V.oBiQ<%]r3{Ne.b-\wRq)W+Po)){qUʈ(X:>`>Cg5S +S +V4ۭ5>W ^t۹8呏 65c$ _=e +n˦y7DfQT^šҨu pᆔyT赦ZD(&o5 f#zxm3+vQ\S<_([2mkQ) F.Y'+J*TFX! 0 3In$9aV \s7SO 9Ur r1%CԨ? 7OK1tX1 ,)9IPa;k!2"JTRq323~*_FK +T4JWR/̓{Hl6"_ڻy=} b~FJ[5 +XΘ7ȶ0m5nw4nTtZӅū!CHEi00vm ns {i[b#aQV=0qGS'u7*IX'"(W8~)Vyxl'ȝ5^n'qGX= %Š?F[5ũ* +{wRգqڀ͂N[;\lR"_ay=D4 x>_/+4@Ð~s_ǿpa78/Wޞ}Pyt|-J6\vJ\Rl:l%RBz@v{NM hMmpݢ%_hW \8l* 'Vũ%Vq[hTLMj2/q`NVBĽ!u3k+N*:trA/΁@TAb tiŰāFzVmNo%Z'X-8zv`xRA qpsjզ0 438sjxmoY}@TMP)5UX ^qX0~ER8*U 0Ws +J4;J_%j˕gSřx?nx}؊鳏 +W?۔F'"(WI- ZR0g* VF#g +aTrc6_]9! 2gS4DMw~[b> X@Uڍ\nPg"eN%E=|8iJٖZO~q\ֽһ{ASlreLђHdd_cojJ=ٽ][AY9%%%҉ W3dʠ~@7*T~K~GsWWcmusj%}JOl%q{@I2;7#eE%W:! g$)L$q!ٰ +aKfڿoE:L\ȟjeaU2 __5egTFN3YLs߂Iz;c?ʽ 'ߓ +o: (P i (֩+/^TlP +s cK⦩m;] ClQ —@ޡ)ƪs x kBգN9u#BQPH6"Q n%..~ +ʜ=GFDOB#-@M;=ߨ]ԬFgj߈Sk}p6`L4E)nRcߧmN, .$lbigC@ڊ{9uT5*hmwPHD6ݻ*l ]lyN>HA pKv=o)Zz@|B w(܊i-cQSL= Ռb ƤK?뮑ͩOOs+/xeX}"k'VL< +÷F!]+1=>&4Y3 +XC`MlR-xU_ܺzW<NT9CUjy(H=o!# ";k^1G$tGd@!]%aeQo  +&|8^>ؙ30']_jv<$Dgi _(=D@mCa@/&jwQ3zlzc][O۽RB?K7GZ+s /`paW!EG_(R e.ʌo()qRJ%`Wf8^Q+sg׶z[aD%𽭜>qp!aWNE_9ա_EWZPMic׭~\4qU(b99 "ޅi% +ǁ'߮6P.U(LZ8`!Jm(f:02U)gA'囟6 ^8K+;Ń ۅkߊ >  +؟=@UIA'$F|庻=1QnBw£OyrI-{S+rzr]h5N2A`UT ֆ'Y2_phxȩحλf+BvbRŶߋ+rB5C w3OKb kjd{h$%8K-/y ]U*;ɫt &*-a,WU62XeHp]K-лJ-y[ĐJ\P;@Cf`L '};*ydDdTDZpć$_2hY`Ъ}jcM}*Tm~$'ŪƁmqS7mj20Mpkם'27m1hɊ"Q}' e+B-/C؞N18\q=y!<2TyWpp7 yn%G=J,UQeBtZ,RH2>t/0yQg6)`Vں`,猾sZӵ"J]Z yNIfNGf?U6<;oqun` RXQ.v(R>nOZ5uQmRݱAȯ5 +*aynNIqA☍lmv:bm"qv/_=96TR@ N "+̕z{v!i]Hvk|Q-}{3")!JT삃kJ +ewYu8N.MjFg9_t:%n73Obgk"^ +*Lm{}ȈM + }Nf^;d^cꄱtn(@*86EHH^ r)i1h*^m?44J0iz/r§/Bkk`C|}e|`Qћ)TQQc@ܩYK1D{;=(oq3^=᧧l9ʅ{CxoY \q%/X  !K7'%3w G +j05ke)1'8"nZ01 ؼ %"f*Y+==]vձD+汫>PG; Й}n@j?&U+M=>xINErڗ<4xD%V:ŏPJ&MlO\t䧈#$9 \?X$x13{dIq47XoI| -g/$]AZײ@*Rvvi{AwJ>~Ei^fBFa(5Qᩊr)-LRwfJg6!KR`6 +˺)}G2A a +w$9K/vMp*{b}bW~Ԧ3[!GhaXVU,8?{9/`(lq,YTuYђd+X>D^>>t#[$>}i]@mDNЀ%AG +k9eH^L<% +ښ1Q[52JbI SZS- n_©ŪlssِtYjV!wjc +|$CE.@p=uZ42\t7%X +pyV.XsY'b+Cojch+&$c@&{#ϩCm/>zoߙci$R!/ލ1KV,_/56gM%V QC +28Kλ~hWK>gĞ|mpQO.z'm{%bDzԓX?ãxe}FpE-"I2PPBQ| +CYeYj>wd2e`Ջ5\!:DAE-JeY-K*TZ%xai<)jwTSr7=ܞ(BLS&ƫ#TZ _&"Spxx:Ifj YSF#"g< +tԗ-AE8Sf2w> =J\@C);ԬX}b0Umf𤮳_E"KwCBmK( SU5:^z\S$fBvҬMT)mJz6'Bn87r. 8b~L :%dV;W䑬Y[>˓.Ccҏ}bNrDv,(jJ;kcTevK(`FX/?^:üQvv5.+YtʢcݰB|C'XzUTVOVkoJvQb.b{dl˯0Md`Ӧ`,CD /~1"Wv0tjHT<|ĄJPBEctoJU|ƫ᰿Z`PAAŦy+,'OeORIeA6K]RzU5}ouץqҴz`Ze-mXOH/&ENu; +*R +)qNT"YXJ+*zWDT0447m6/l4i 505zSĶ=YrT3oXßuhl.:86vݖ5CH*l;o&;^" !qW?Nd‘ݬwɞ) ?9pza_ʰ*o +x +v/o*uqam ($DJ*aN+$@YDe p@St{~ͣXdaܗ(opa30y P.ٻ{yƉzM蔨bXCJr/g]!6]Xza^hgr+RjOryt $ ul/`M$LrWܧ<9w@&rU114o!1ߧq} +<i5S|T[4=X{@[.&MtdQVӢ)?ԽZi6 u隆.rHE4Q I+j; $7cRƤثC=gK553a,H+RT'T;O[+|~ՌڵQqbVT^R61jTYByyצj`;'9њμ:/$aYOU)ʪv|S ^pi]X }]1F%A)OȂgq8cԳxo88;7 ZI*$$ A"v\`o+WܤXg]T`jw IH#H6H:S-E=j!E؇U ,޶luaKHN㰛@j-5 +s<, xUˊK퓘_(5½)+¥SHr&5!}Iۻ[[O)i{mSK +@<ɫ[dỈժs)}{ɵM)K{lò  =U2-ōє>| +ESEr倈9"`T 8,TTYPw98eAr^۔iJ֍@suO}Od0>Y[ho!*=qWb@h9+o*pE"BlX'X眍$iHyrsv.xʹ)Jx !US!{Dv1'%Hw+ţL'tS=.9FżL*B V7FkCoe9Azt) 3J.Qg$XVnMx]LT=aHA[sF19H(QAq +(ѦI:p3!}Rć;Uúv!`ljS84*@=]=!R["DRPH8cEvƣ8U..H6 Q:>;Ou+8 +C=8@i} xeHmA0uxiJ<Isy=?ll,fZJWޫdE'+֕2`ѬxɱGDh"ϳ+z6N4ЌNiA)y%*T8Ѫ4lN%Xuاe|~?>ƶ +mߵ7???~~yoφǏ~=~g??oOKgo[3O????__տ__?_G͟֏"kpp æZծXpfȐvp +U8e^#LU_۷6e_'5-1+f%G +cܾ\@E Uhᚨ:ZbqغbBTbOf/1C(kgvM8 7\z @n89s +uW]@\2OC0QQwUYS {KK@A>rDR ZuڲE9R)ImvV`I,:3K"T1YdH8$I>KC'&+ÀWea umAsܩo1V*A19^hJ9꧇ԳPeLl̊Zڈ6 +#wEJV4n+FG%JZP6|#5/{X1S"TS*VigV,5*`Y+72ҕ8X TXQ]EP +wyQ7J4o ̸Ru4=O y#=g~ρ|ޅfmNJU*%{\zzJT\Y7 <[uK{Gc@!S[f\!Aqd +0iʽT87&8W1%-,NDPs%o)*G08]mNM_G&|نnCl܉9L?@DfVe88Vpi +{Ktt~Ec+U2 ER թՃ%+1`WnguS|O޴w$SZ[ΧlV7a+2'DC'ޗ0vjQ8Y9I +F0reQwj +w5.*z$pRiEnXf&2):tBBkMhJ\@f%ia{,bZ9zJ=qa“ی'7NIG}LuO*0E9vX%PD8xq~Y%,DwQ2t/" ]. NM+3aT9^PXM}arVVuyÅ,Zp%YMlxr52xEP.(J*9xCR$X)ek[TҀ+iJ>WP-m t_r 5XC旎8tfᨄ#'Jfe.RxҖTTv߉pp-XCLYJ6n2TQ4 '0y*1{3ViLt[jkn! 92t5j`&J&>ućY٠tbMCr_cA@4 [ ?pR,z°zX19{ZnGI*tqATxM0Wfu;Gp +36)X#YJ^b$"'*>2fQ RLcKJthq>bHBA+#Nq둜H>jEF/jN+py~QeAK8)kY'i^,OUl/;N˂,*}&3EN˕}IR&òaF=2٤GjXx\ +rIۊ}*n =TnŻz49v: ڑxXMC"j8I{JZa᪅"nb&NRotigfh +"ݷCCe01TRuFmBړѯgKFv^8w7G:^bjlS bx1+\X-mxs=4< +\vwx14rBovt8'*%P:a:7|gcpSq{H)i)߫$DWQAI%1{m f)Ȅg0 -y(ı[0IDֿyYT?] y{6N)V0q)u/|5i3 EAQqt1PXгZgEB9#Ay5`Zг;([%כl!Kj̡ 47#`TBZ6m O?[/qmɣr ΛP]8p7?ʏԘ,x,1:*Pi^!a 2iJ +}Mh"([cUjl*q_iHBs%@5w[yij[;xJ}aY CmN1,yl PS.@UQPOq@J6 Y16!2 f(…~5WBL0$J}m*hh#O+ &F)=MN%:T6o:Zs +$X#nr:^!X JKtRnJQ/cɕ -^3 XxM 2w @G%aKG~v +<9 95SDZ\ΕrI<[v!vkQi̪yB}c +Ay DtTVqb:HOњ)Y#5BjUy:ZtѢw +Ѥ.GORw(*h jt*/Jx T*P# b<"*+ecM=7ž$ˊDNWA6RGe\jw([J4 + ܞ@ +|nCga(uPg>a2BSϥ2"+Wv+B^y?ߟ(YT5-/o! V!ϩs:_D8_7>q7XQ<\Qu8%]MjWp! +PQ i7J%%sۈ`3@&Rm;W +%w4#>tϱ[4>QyoS<+Bކi QԦi>s  ITM4k.4o1 o:s)A>mRï +8TFL]@%; 1j '`\r( D[$B̮T{DxeQU:"=`2ɏ⮶u{ d%9xEW/64IC?ђ]70 ܣ6p/{.>=GϏk>hI[_}ª_+#+z K.8*[׭(U] k e_+aȑ.RSUHsI $C׿T껑 "T~%GVjKXK"M55ro'z 4|ay MYM\~G TމA{宪Ħ3V/48) +laJeV{ kȖS6a{laMg) %Y'RbԭZI`ZP_SB$ DbʏP#%$h?;?zH֬EQ@w|ԇOyQg8_c] RO)P(Ai{I^qɚIz oqt)Mނ='Qo;TC تRbc]i~<9g I[%+`4fI  b|b(ݽڳZ0m5ІhK5)x&©ʺqGޔ +Tꍐ%l IBtzO^JbCY*׎v:T\vT&/dYq-O.: 2WL}sa*__s5ɥDžNZ4CtTs[ ]+) IԚL9Uh ioG-$4U@,OƯ_Yagwu"\ҢSw/=Jv@ZprQM8Pϐ{.0䵫wͷbԘxmɟ~8 HId:0c))!Nh%c-F/df. +^ +Ӫuk +5yv`9ߡ=%Pu>Q_bi?Ĕ6ecW4(1.Mj7} l (+^\2{ W>?,+^aр"KEvquK{\ks<qrt@. {dҝWŮh-*xYEI`dq^_f* 6jѤgt;=DS +HLD ~. 8 Abø^>W-%*Q:X{H[86w1xmV}. c*y(zr%ټr P#MNO,,}F~5m{:mL:]SϳIݎrTOxt/lWVw=\s'.9 .GjUco+-fh XyK:GI0EP#^"Yfb +Yrt^R brSJgǔP]qV^V";џĊ_>:po. q\}[|CWfJz2M2ҞU_pC1pn8e #@6܍+EƊG@[Ņ)w2rS-5'k`\kMS邫i3:GM +h;zh)(ޥ_Ns!emΐc vzkqUג$L. +Ny43lc pՈ++;6Ǿ +u.{MHTDnLatͨ`iE舤T W#ϋh' +O~ ߦh}ǫ)#vPCzbLgJf.3+i$1CXLwò ]vsNپ_ /Y?Iѱr+ޯAKm$F ZK $P;:\0b ޷xVm+˟sYQqĤe5jt-׶r3ON 9쾥~<+?$A +eglg&ƌb} xU+5go%9oT(q!Z:rw A j3=ެioa0e;61E[ GRf=+O:Njyp~ԒtRJ_ tx ow8C \h\⟾e:h4U(>E*$!)Do? +6Q@ߧڕxI*1ϟFxѲ+&W: r.,Xb":, wÄ. V/xj4Lsbڦ7Gc|JAX֜:8V@ +u#j_70pǂZU;^ӳE&ٛB=,m7Dw/X|д|S?%ܴB! =`HRb#1oC;,2)4|TIEb&C +z4KXt6Q A^ZZP eY<6F P*ZOM*"G +Ʀng-sG^D]Q9C ӌ*|4ph3 clY!A&uDÐj6>Aả U7"gC0qboXd'@mh3f(-`둥rҧŌ߀NdMz ,YޡCR2ԜEU&ߑâ g,tw|'KΜ  : +UNf@IώwpzMG6)D{? +n\ 9r0k#nƹ$L`jF?Fp)ߞ0ZXЪRb_~$nC[a=ʦJvApmkf~:(PE^]X]+VTe-]ly"3CPAMʀG<ƾ.Y ES=!skk~1qwO9`7z*{K5d7An+TN48 +!9qd!4=ib52QȝtۡsD!b@Ъv#7<; WݫHOfn~pƅ$Qʚc(VxO̾6u[^sN2Rnؔ((sgA* \۟3@W.;6UXsE%9b+R>E$u9AYޢ%Mk\X += |Z9P6A(r@مTDwqRuM1@ES|~ae؄xI'~uz[u.Rt[{Htt+4()niݢf}׶4t*D[4dzyZ8-nmY$/SGJz;lGKDKsJz(R43`@Nb;5i YQ:K‡H4fU=Q#颗ag?mdDu!/^4ȍHɅܩաE@ًAL/OR"ҰC6 CP FׄՌ{BH㐱t-AA2ݮyXU*.R6,=A~4;fQpUqˢ }9 gJ@_@} +̶Jy&5[yıC, r7/|.Xސ3K:Br΁dI+f TQz(Rd-6DФ'+T#('GnfqS3+dUvjT'9*,ũHPXR,'8V=)<>=O< 5qX- c`C1mG;oip4]`گlI4y֪&ȈBeöRmlEЖb)(s][̠S#Ju(lK>ǓY-b¤!ӌg{HQoi +%=)|Meg'Dʀ5L_ԂT*Hz +%Z|"j*$|4`Q᧕mj蚣KU"Fmڸ W|D3稲N->b4.J]9.OӨtQ†g'&lZ*=q )qrO)ɀô(+.h4O1 +>YDQ4M$MiUJhI ^AYUS,`{s ɦV:tNߊ?c~ ԣ^ EYOxTCX(2څBLt^W"--VaS(Q.;ĺA7葚 &LJ(ޚ_8N-Yo;E-O5. tmt"X¹%[OTn1Ow{_Jvo˪uUKuu(A~̒ 1GE"$QOn#7d uA-hpTQe'} ܡLTxr D폥'n-qtyQDi ёƿt T*7倢p6UP@\M8SIc_=i:bhBkC13_Oxfטe:Ǥ.k0Yp1T/j5 +"Cx.RĬ +?OO:8ch"r4),irM)&7`f'IM eCl1"mxx|ui I"J3DNs/h43R"~ηTg, '?ySxlqouyMhN7ǂQt2kfHMxFAkmzRA[l{i&hdM24F1L'UVt891/G׳E&Mϐ^aLwPuʏj27kFr%gޢbQ ᠕}KIJZ։>: Ѐ$#oF.?+ciz,~Gb-zHVJĢD}F <6Ah;t?8e-QZMV@3v0c)Q1ҙ9q'2n 3sH9n&2>e8PLNm@^{Fk{lc:W#6_dz pմXĬGA/Ɲ![S:Aؿ?h^ЩD)[C=&^Qti1l}|:!lԲ[JmAҖ`?wԒ"D e4(3m4( +.{.-MbkCʁk(e.iXQ6OVp4;NH0cWzOYBΩk=3 jɉ倣y|̑ 5b$&"Sʵk=OZL קeB7:8Fou>gsPmjaCv~k1-?5VqtiA &l"$E$/E : +VHhF"( +x\)Gݔ!7[o]w4.?{G(7rɅ#PE$;tYl,[|RC=HppyQ%/KTDO"RQpB-ci9:FBh(* i>GiusݽB4:k*"ng |ׇh&4Ec|WB&Vÿ.%Z9 /pʼn#/ϑf(PŶ\CjS31DsV߲*Td6p|Ji6t-kKhT_1TA*d\S%;-=3Jܵ|0O"H7f/aW\Zۼb~Pfؕtwьu"duu)l+ɳ.ٍĺDZr=K0N |##}cB:+aA)L,-K>-zAA"̀%C*ј^)bD"!f^΀.R7Y%Qds.ǜ^0}:R$X=ʆ9w b욓=Dz,2,t^29Cs5[^ mIatje1vtx,4 z@rX=3.BnmGh[V VpKQ"WR9H.ְqg@#*G&@P2mm^M|"|x~\0=;ˤίcfxy +2Alx{Z&A$ L955)XN|Y18Z{H VcDp9ʪPu%-_mj@eYS +uTs_1|\:׶䚋=v/j@a'J"2"''jRŜfRAXKKuG78P8^sжDT-Q%uIe2JKA7Vݏ =SJ2JE^@4+S-m*Z'^:fѥ(fƥof,)f>.$/ % C-\n w;$]mIw7WOrѳ5tto7GV`JpSmUg)ר+r@ruKuoS;9MQtt0H[~(P8–B1OڄvIÕ%I:*۶ e-Eb<^9HdpbƋ;&0j9ƫ +0Or +K<+INyxg¦VT^OzE%A Fq +nY}xGs`!GDE$C9:(Lò h4_k~^ñ1+^'Z<;^6AJ +s-dM9l:5YaS5OsYFĺDIGDnr \S*&ڋ=w?āG;'E釡~ #g, +.2==huԎbyE1ȣJ {k2 F"n$9}\:ophDSw ,/,-!FO+J "МFrtqRGr.${XU`':ċG߰!vLU,#=QyABb +%_? W0U~x+I*{ )H w 5R OeD?8FMc5Tuҷ +ϥ1A>>}DxlsƤ]tYC~ċXex5=GWD #P~ғ/ww7~#neGmj5g+-fj1g))cs_i}mx@wO)bҀ_ +9jAq֜to-ckFl +xp\5LF\0dz,mY"$%*^0lX3|AűX%xzPj͵GgBi6K;,1׎#)ˁ.z7vO҅I`.$M’(n%P0YW +5fcNx~?VPuw}y[ +ZA6Z9{T['DJ/{au?ENSʳM<0[v9sAu-,T#?0k(\"d[0 +B{&nA3?Gst{Hu 513-LZEC\s` OG:<2Q'%ƹ[0ʠ4bRtG<|(.}2A4 ȫ˂ſ(&r ǣ۝Tq]' ~^g)wR +.,t@݆8uddg߃nA!ʺ lѪh긊~L4W}7z2Q {A3'ZĔFq%E^~OA.,C[9F&*YgS6Kt^%5Dk#G;mvq@3§HdީZC~&@o#UU։AaȢDx ;0- X`^ekD Z;44 GHcQ(}"]iT8|nJW; G6 " TUY'CIrsN9D\Ӆ*rpu#h+ @yv&(AQm-σPU>׉f7?8cQ~k}V{aTD&@Q~A.b!5 -޿:FLFŴLR%Hn铢@;hl(ӥ}U׉F+*]SLIӬ=}.}vO)˩31:+-y؆;b2In +qR;tO? _).2^EBt9зŜ0dū#˦ hQrcn[ͼ +2ۦZKm + ?ZJf$Ca +Q# 'P剿LEm|^:qgqp2N,(:}͝]O9Kz'bC: +]<įdO FE ԖOϿ'#E&[iX +禁΂%'Y "9 +sGB]t<2YQ_107m`_ +'\Q%s23khyTdrm?^<X&_B.D ߸c*)^j ~{ܫyCt??gzt^.TU3޳nyy0N /BSE/'8t6}*.g WXЄ0f⠀2۶|V[u "==E E,=MFUm|bԣZ 4.4X0S~MK:"ېz"ۦ6S2Qj ڠFۈC:T֘L>TkL5A.|JUWPbƜq]ʇEŵ=B6GP%mC 3΀A/t/NC iB^x|4ٷXDv N`LΕt^t8*'Y5,e=ySVלPUöB\F@n;{Gaμ–&)FŢg!b4]XfEOp8eY9IF[lރ=Xbz 4uӛ!ٹ `|ۢbO0VPf4"+ 銪ancۜ!8,CA`s£->>%$f7xKEtמ6$x6Wʿ=@^<Ʃ?C*Hft O[rE=PG= ğD-X 9(LNⱧn h.H29y(b.;؆ L!9PnY~ώ*dpX3PWWY_b ğ@ro ^K #pR2Y)䛊_?M9g]ӺD"EԪ<:`{-a^i)xE$?'}^b)[fUS4B]BmN}*[VN Y ]/S WCVh{%)"qt|/f ڦm VfֺQ1FyyklVbMwޕzC5O4 jW opH_A7Y6Չ=_k*躤(䜹k[ xLō~F(M */ˋ#8-J2Q*a 1f4N$)h𢲓z2`9A|~0l-} {_NPoexܶL#B4/NR}*@ lh)(OD8M0/v=x;<ȁQoHBHqdT7ZHr +*̀gHmFR?&;ʡX|[i!ٟ5|ݖ@Il0n@> ZpU-'Χy-CP&.Q_w <@ej2KG?uݙ)K1UУk JMmU"f_TY]G>XUQ +T9'ldBi"`jwS9}$ӵE"ŢKss着g[)['^8L9&͚ivBǩxJdr{r8Ya 4ġ@! +B]rJ8Np{=ZE~0'xu-KHH)de@ΘH#qy5ͥ&UZ&J@Gٝ\ET%q4KQV)ox{{6V{cPHb7c J?7?ņHgCgyzc)khIz;?'jDQCYWx<.Z7I[:?@%|r,)5 PeUSrRr}3)sXYC\aF敗MA*(."})Հ:B-__y狛N,k>X|q7 ^֪z(K( h_0hÑAU4OuW[ +EF{Wy!5']uo$R/!l,-!45  wy Tn1^`l +G†۸,7ԟCl8jlaɖ&T?8^+9bH +Q{3ƅ +; +XK]0uŽPS7`֥"R[_=߃(JDYk/l5%LPOID6oIV)&4}a$X7},V5e1bLoh+҅ qWT6JǪL2Xds9n.twʉ'^;~[>ӐX? hR +"N^-j%SWtEL2jTOo)EZ7i|E+[a<Z^\=?QT5fjp 6k\F$BNХ=8W[mq:({gxWҞ)I]$VDv@ u&?5r^lAJlrdng}`nە^Wq6fYP~=Zvή124XgutuP?R" .<4!6蒩\ 7xY2nSQ$d+$)NJCP<GʳڢoO'(wNN8B|P憎;41X^R~ p.v  i҂4q+Z/n8s"J]{nc4a68wTcl͗ b|!>8`E͉MoEW {HҎhwn8R#X kG߳=\m5N+$f+5=9n/+r.y8FY|±ʑOs"Qb$xQԌukR|#R9|mN7;8ng +鳔Y xQ,8̈oS!i(3;"vA4p͑&Cd{nU;Āab͹H5MQ-ɃQ&>ܪa ӆ*qp<@  M`i3n+4EI + z-/fq2񡿏Va$N/yJ=V[yb^4sF6|Ŷ?p4}@2[%.ۼ1Z5y-b5)FNUbK(=mfab' ;satv0v𐈒&o!Ei6Pa\0E4Z(nRUOGMeRp^p Yq  \%مG{$BIݍK!n4lqaWQ_g"l?ecM%\ymT _ ?X߹b}\IE0UT#ǰR)&[ hƑ %1 +`FG׶[kk-d}4\bײ 6]310oS`s҆A? R S'JtW1.+&Q5 FBK(s0Y&;O0gS Rg_-yJ`\Py{2"x$95`B UߛuoMER|"CrzӐ/(47\ZV5]d@ƶ|-Q/tۜ'دG0֡v/ZK?_V:v@UH}~\ǖdcdba, xC?:S4NoP(s +ukQ1;6h$N2 gOks]-B -Y)L-?͉1Cߖ]Hfѓ%hNDuHm"Ȩ-OO#?ڠD9ij}@%Uʻ'T`#F) <mCan)w`NmXm[{Fm|zɜ눘C_5퍇(`Z:Ѷ̥o%eZ1o.ً[ si~CJ$f!j-qjԨkUFݱTi:#NZLybhϵk\=^'-A{(34-L|_y)*%d 5?8v&x .[mLNTZpqv>.M{fA4hl\ք^BL8/rG_io蚄 Y1oDH Vo,\=P/C͜NI>ߊ.h GCJҬ`|!@( 9wR+Ь$v$GG_Sq$j,79<Ƣz`IyDyJ(<8|a\6><]*ij@ ǝ/^¥냇qT^(:W{Q-xf(sewuh'ߛ8ۨtWh{\ͳn^lȲ%?orkE.$ >^JjFrȞdGWGD&Gfb:DB>Kw>F#Œ)\qS,`2 p<fԕWͶ.K}IԜĪS Y\ػ6DjHpFdŏ3Aڠz@Fџb_I@ +tvx6ь`MJ)iGs=։Gf}Ï;xnW,0[T鍖/{_Xl~A 2?QQy~_crd25=F 1GS׋Z8vY}%*,pR"1J8GSUAJ$'9w8v;TX.Rc-` 5%SYdQc>7n\X8M92VУ>yP/Q;"yf0+Sn!](;Ц*nLҾQ`lQl,X@rȵ-& DzfaD%œ=6iԈk zF:IJU'scW*[.NQ׶,*U,yƣ6WRNvy^A\f힗VccYk$Z LHGn&(@ǗCQ=i"3hZdaKMY芧Jڋ|#rdģ+Q)_w®0N5 %˸$^Y7*D¯Df-A(\K'LIX*l[Af^""꼚:[JɞхFh+qT}]'ky$Q oŢ ;mWIMX{wi+F (todfTR1T$ R{P[߷*XkGkwJR׶.U*3Y&^:h??G<(lƜj_bq7l;)Ks8Y1%l}I|d(x',-_M#&y!xIMS9E-fٷ@xy,8CNhzE.<06+ɀK9nTn8c`(D]ip} V@ԤSG,f^7hcORƏQ +Rb&%E#qU.fQKءP{mlOT@ )Y-X*s~!wʹC +b6KTsfc #NI"6Mu DcIz<@8럜)n@jОCo{;<*?8ᱣJ]ߠ$'85TV1PlPSB j(~)\ @` ѧr6޷*+04y[_p LG`8h4xki3uMrUac(IHh %s WϷ`ãwY$e\u©!eNȃ +AB_?ۉ$|??ucU涭*O+Hu.. nv|{O,{t4 TOLC$[^%b9lV,Ű8,VD&MIX"k + -bY!qۨ!kbwBR;W\+\&X Q~bwȪ8X~9N ilycS=P/EcD+oD#ߑI;tp33q8ٌ"uf|VvO雔]~,Dۥq3W|Nv5>C0V܀Ks$MIȺfCtNC:PXlm޸'/<7O8 +qO`fbe O e7.>xQrf6}Z=0TmOJTDZ҃lS O.HC Sc‘DyLAh+BA[$k*dQͰCi6&Zy+ "œpgA4JQTip.6=OV68qBtaQ~`X+A4!p=VJ޿ҕZejmzuPu*T,A%)OPsM3#k&!٪-̹CL5i{vQI!Աɳ2Ȃ7ZXܳM>G}z.(x4W' x\+,{b.._BE[4k aC5.N!04i R[r49R GI,lȅ, +^#X0Tr*(\4EfaFW`R@2ӥg+(ɮl4Zϙe`эb Y,34RkjlbUpg G*I?GHi@W-6ǿoS|>_扫.\O}gE5TKShPUrgKaњfopw^,f(DkкvVDPQO\C05C }9ngpUSny'Kk}(lTDWPt 4O0xl~cͯ+n~E"&̋ DChVP5-` +s{Y-=Hgmiv^ɫ}ȿ40 lS,?8e@fTP!c83j2E;ȶH:!@Yg9tRuc.p?W?rXmrͥ"g(d&0PE)w4YZEBK(_'z^e=bG5YҁVQ@bla[7ec> VNl{+Eb.I] +C] )[_;oHN'%zh=GI(r\3H?3:$|O( + Y  ;i[(T]iZHhV:cM"G7ވ:}3 +ZH "P Ğ[ UYGĒΜvY +V>M,I qPm&œ%_@"PF9>D@:U'J5H嶍B +R +xdXP:p_.rp+[sֺoKf~r<lwdl@̰TWZ˗Cr@ f} V4KxD0CP46HS~-RC5`5gCjTVLG#O6KD. TQq6볜EAV$Wr "m=jO7J0z +tkniFwgQaGU_R^dޔo:#z v8M&U:"9аOoJW<ʳ (k==zab\ܭqϗP.ʒ2Xb0}D3ZYKq)ycȌmoImCk&q"ww瞊 DQ^̖sko`yn[@6 we%9l7*rDh5Cp،'/) ['^㼟h1Zc'Ⱦ$Fj6JƚqXcW!x߄.f84H;Fy?smA6բZ\\H$מ;-CARF5xJ;"˒mmb_c*O5uN]1ϭ%=JhMܥapA{((#Kr#e(i*ergsΠNݘQ&:aBҢ3c5|2Mbp5n4h4)_$/eǮ}(h0p5鉪R{O*e*}0jÿ˶|mYQ2Q`qnÍNZQ_0/RhȦ:Բp&C`2f84Z/ڎq>8F4KmqsILT+(#J2=AvWvhcUrNO}7Tu1{U7?5xtFr C +hNEEa7g +qGT癳gPM%Wq1~n"fܡwuz"z|kE%X?>X}?.\;u$gb5EMŁ-qe"+-Ь.bIAdɖ5M2C:d(F)Cr5&7.:?›\#uxR5B/H3=_dHPJٱxy؏xI{: +ix~2EDsH[l̂5Pu1QWE33UuM!ZĄGW>8D^?6 Pl1W/}rOagP Ps;guwcp b 8in<l*d +az_G9Ԅ:<8DT'$Ǟ86O`8Jg) wio$/񡼯C72(P@!m!\ st@O=ΡqֿoR6T> Pe 1RJ7k"99~F4#bpc,pȭφ +U* +n?lO H"Ɠ;Ǡױ8GL].ÝZ~NJۊyX|<之S8&: +; zH]2|MbӤSӷL8.9|H>C*~DˀD F$}-I^Llo(D?_V|u4g,_z"z__8˟d$ ,Yx}rg v|=+ z;WN(~k" +M9ՌUHd?|-}[⣂K?Ϡ ~#"DIPI芔hNdDbgd%KQҠf:" ,cO'O*%٦Y58Ԁ9qiТ uQ#n-S}n*k]yy=+ e~H]ĸ!n\zE5@5F쮯ye9})>]Kf3nx>f U[<ȇ%)VJ! YZ4PxEN9#܋J@0D)Xx=n@ՅSʆ!/Q9m,@uMgy|EA&w4,z6 YDb2sd N-iHC!>o+̞XZP%|#ae|0ySCX@ۄgx"(Un*K2XIID*Eo挦m)I[\уPz4(a/ .莲_g551p4ß2(X7p0ƚYZg? +NS-F^1o=9%$,o"GC)g~_:@)awʔԸ[U(ʎ.hdI&F]q t3ӣ/1=z)y-#ሚa[obg8hL"`]۞')*@d5/Z_6>|9eaw)yCn^9 "@Nqޜ[O<FfF믛kLru^ma7yĻ]T<ɵ>vZRbNkH`v1l4{E'ik3dk>6Jo{KRCIUDSr8:׊IA3K5SPH]6W $ eivgGttD$3-uæJVH 9rt,R"}|Uz;pE|RT!D6X`2B8|9^ldfnq8'g:{cXH16}|@XYbNFd3{yaj [=GOCĈ!tΚ\, {F$>]էw>n~m6!Ny>J%Ue(dP&olPR3;By?i}_Y+Czޗp/K׉b>ڶ}ܴTu Q.hҾ.9}Ϣ&bwpǫr2BqiiuJC9pr|xpbYOyɡ9F" +Qa+W-65:G2:=Eƒ(r谋֭%NuJʏk@޿h;N4*1HK^'R!H #8`a*[^#rCί,)M/E6@@csdqg'AZ`i]͸uS^_ Qem#>byidD*,hUFX;cEk/Us'}G5pmW9_Tq,8C7 ;Nn VDGVm$h+ +K ]8'J\OTdXrN#B3uZ>j<]Qi(E ǘ <e[SQ<;%ڵ-3m +1:H(6ABwa48n'$ 7&! +}U!m!\C rPիmb5XڼJ-mhq0+;la!5p`= ξg\(uaP/VW\Sgv +%GzB]mu;QhPt~eD CV䔈\R3;Ӯ 댗[MlcN|_> ;auo>H &!(pw`T(Dl7@DZa: 3QMyEaR,QiB~Jiwf˪mҧE*K.l(M>0r]kb 7dh~y>s:w8vAШnLM{i0bTۨS7iQ493Zpwt}kuatt.á=K RUW &oS,}%{m|VYT%,D[|he\\u>)z%Y]E)$L&U3,EqE[+29an +4[p@!hG84Z$hTtuk:zĞJ֟ kҼָ.9m4 (N]@l4 P(OYJ~"i,<2bJwkmɂ:.{mtlU g(e0;O8*?8HaY%[hwC1CbpGq|ɽmNui}M?.ExCF{-XINЭY>.hxč@ti!d.-h\",-MY傯$'3uK0Do0yՀ oc3JMN+Q%0v_^p+3( %hvL: E.gm+EAE$+^r"))͎ݻUM>1X¢vRBί8!7)+gEKՎnMcL|{EuMʄ_K>`,gF?o,ѫZ,q);l0Th6PL%_H$4x LP RM:zk,WX4^xf9*)!dmݎ{i D[{rc҃Пr^}܈i7>}m]$ `bII0~ΫN!J͛9f wE)$[/2Xubyw҅r%"*d*^@aթ o[qSGኔc2QlVM 윿O>yP.OX{mh<=Oh+K֢QTLRPxMc۳ύev}_պPl{߈ܯRi`A@ɧB+-$Őc}.29b3#J"6ɩV%LL_TUc02ӽKcl?GSK<;K!Wlu/oDǣѐϓyI;.¢sƁ结9֍ X =XTL78'ByL}P_7n ќA7'OGTfD{G!r)3Шٳy!0(}w7*)ܑOhD,%D,'>:_N>F? ]9i0E"8ҳ 촞o;]9f4_Q5ihw0dЌh_Hآ*P}},EF-.7DD2ZoQVdQyRy^]ͺ{uM%D0eDL}!K>ۨvbT,^͟c+BwWh۔=cuNsQ扗2<)M}}>߽H]Q̭^hV)_VrrBU%:U\^1wwlT;,~&|[׵/ MW_!b9 g rd8<T-~AtR>.=DAtRnT")4C0(@R ,"umE,_PG_f|>5Ah}ѫ' v5摔==k[RڎE;χ}mI|x2Wz 5$W! Ic'[WzYNa@y3y:M E<ϋo)k9Bl(9Ѩ侻|(g?(_kAY$c*,1Z|i4?>)&NM[Tsy!MUVǣ,r2^iݭOoܚ_9ڝX*++ 9-"3ot~'4vP"0jJ8WH<cz2 oW!޿$ ڡ<4zo\-^JYU,K +|3hQN79 u(TJ?-kξ⦽) {%;Jy6>d4mW,@[<.}t׀Hsr@GrrUQTR q߈`|z=@}_iUzֆc6x!օejqR8+z7f,bTB(ϨZ7[lQ`rI$o썚sQEϮ;')(px6`5 V1XBγd J/\3G=ΐQ[3n`MNe}r/u|38h8ʫ[vn$88{22ȧhtsojmAIN}M\VE>/T & +.NKw32md:ˬFYR(Q;]9-T!&0{nyV*icv tEG/)FW$m{p2"*iz{%Ee"]Bn行:X(Hݺ/^wު nl_1KXƳJ`xer5-d҂`1@ i9k 1'SL0.z:ߖ; y3[>nfb1JE + xhL2wT1`Wj˘(|3@s2w-FuR9cþ#>QCE}q@s9d6(B~ nFq)rVL2N6MIE%1\a (K\R;x(c0o|"Ȭ%CS3`d +>Am4Qx!M_fmRzGT6j f '=uc[\E37_!%||nc&^7b^519N؎ml~Ia4A& +/ VnHd0ꇽ"H`5-WEw+ezf{vm Dua47F&a(Y'd-8*A cކ /$ NVۚ[ˠ +OP1T/DYKr$MӌNj&܉ZG5;Ri &&;Z LEAs@}o["7Ǐ0F;^E)>I} o cA< $M8)F9<Rc] KCƥ s~jgSKE%CEfضMpxV_Pߌ&EF+msB#;;mN_`V@CzxUzv(c1֣d, ^ +K6R ]n%=/k-S^^%^RJEe]J=IZ5\[&Q13%5n V>&8h^!~`w`=Q-!3Rr"8? =BI +z%mfutM5Zi?K:/<~soN3!攦?o?xs3j#{|-\؄U*nb7ydWMl8h<."r+tF}j"~oOo,۪m8+U7Vo>ģ +{uDG*d(c>Yn58tt *K#rT˚GgBAiF븨CC (sSe+>wtAHslH,tHqM +V8O棛ĶFXwXSR+B'J,9gGo;;AiՋH=gz2 frlᨱy±iFw.78"Wsg Xd^s3USWY{:TqAI~z@NOi$zUm +ċ7{S픦 2 ZV0 +Izw^ - =(TsI?dl]kdMXeaz h X{oUxt/kydmeElc)UЅ|EA$ BZ +!bpFG@UDĽE$V%V=AvPfCWG%"b|}o;VUJ筝.%+J(r*L|Qq$Wr("ps, @pq.ֶj/.C;ՀG6Ԯ8T" l"x)瞾@C~(o}5{Zd7G0#OIS 1K>r<=!Z9]  :zF$V +@rRC%( ^tUz_goS Nʉh#4>ZD!1) YˣXG i mjgy;8}`d@͞Ur֩n']X) T.D E;+kL\<ʱ3@W- Dǃ0TP&RнM'4Z-_eύ`Ldc/h5:"u 17eR8#IY&FɬK1 _+'9{ sw,sM#8yax-ՒJXIRIWtͩ/KF|0Dwin<5WM16Gs]!\tw՘/FɜmAvT̙xv>P1Pf@y Ԫ(-J7qJh5Vu[+)kvp<>Њ8#܆}CIůKKBH휦tm=÷:XSfᴄCj=w>9O!_W2 ]u()t]*qPƞtdCq8Mœ̑{JG)?> +"o?$E\k]WZ(!,~h y[ЉE &0È]gbIQS[TX&!6iQM]H]BumIv?nնb #\)Z熢c`X^3qmV:u>P׍ 7kCٻ@( Ow$~= ˔/p%궴)4-@f_ a("^w^L43Hz?4 1ChYwԷʫ85gO{c"bcl8ܢYz)/ve9dRXB$<.,pڡ2@ 02  >IYii#Չ.+MF6491hfhQ%/ظ;f ]xt-ƣ):@-M22FJ!UW3nzFWy{ڶAQFOkIeeLpX +9B9S$M-#;%>uÚcR#p&QLJDx5%l[F~RY0%Η3o2:FЏU9&ҷ%D U8 96H4GkU?Pn4[ ڄh^+^yw{AӧLq?vœ=MLdzyf]ߣ1λtIcJ"^F1#9>Jd0ysҚ!ðJ0@*HwEQFҗFQ&Aj, ˺VѾ5և)KMG9qBInV{ZJUnQeNpt RχkYq`\jm${S=G}i񱟉$& r6ƽs}*"}@*qtKd, qwo.4ږWF)aAc13PٓL^jQ>12Q_h`|y[9tk 4Zo7hy|X~\0[/1]`[ A~?>f`*,zy>6jҥgX)UOSG/DBrEr +O['c S#V6YN0y"2 +y-5@}c4!V\T[xֺ3΋}Ibȍ1>Wo6AAk쀀XIlhCr]kw--QxؑS\('`@dc7'Z "RH +\wb,wsY؋vjsOi!d3P[eDCTVYE_(w,*i}(Wmbi(.&"I$nH Mq)ߦ5&!1&`/H&=lssj&9s5ݴ7ߦ:y1HwEG1oˍ;Sz=Tm dA5N>OMhU{ZS|Zqt6-,:B~,}O4iFAgu=B1EA EnF8$Dz4RPy_aJJ}~I{{- q;r`:^jdmlZȒ gm$GXHSB* %XDHk9>vgHTwxo1&[=E ֗=7?8͋y:wW jeJ#1RD9ƭ tl`j9XMwLly?mtPn8c yFM*&;51a5F8dCKr&èR[9{qA@,5GE[[~\ Gq >yxߡOkNLH8X'CKRќj{ nKx8~[1s|(',m@dfaTB;,|%A^+c OT3DxIK%`D,wE^8׉E;P[9Iֻ]0]i'SsWxaЀY!`|#1's1X`Sql J@AYjv4mN:{ؔ^_Hvǘ|q ۆa#e47'6=x'& 7p%-<.ϡJM[g06Q|:1|aGĢwNcYj§|8 Go{FEOBI81HA .En[9;s0KF%Ni-.hmPhrw#0^*p\j%ĩweP Pqqf֑*f C8?D= Nхq|ˢ; gJTWJg`(E'-ۑ=$Wl-[g;nزC]_kZ#0d!:9Pb[UheFD Z`ͶtK(@MO8TJ.Lsj<3&KCs6<': \ wuhYX\\9IŽ + ZkE!N]Rjpr-FkفXW{nY pG HkV: '+kTҗ+wSXTe6$7ϰ(7L6?ns:^ϩ |j?b;_7ԪgT +U2lVG<"ItV5V]ae@=e$@Ԁ=3"=OaaE&f1фf K14 l Z*~m`Tu{$KrmeO:)M +I~dmR(wQ_10; ЕE袢Y̭4D4uV~^lE\4lGS7(3ƣ|˱]V%'{j$Ǝ%ݑjս[nWnMOkd+2')۔:#eh&j\qWCTt 3Bƍ'&ᴑ4kS"5nQ2Bܡ98AbC + HbwD:;j;0_eK*G\" ƓkQr{!F!LZ10,Eg8O[vR/tfw}8n +ztXeZvRL<+Sd~jfԋ1ew#\XGh(BF T҃{{VICyε +24L׋,rIk@&i=Ot.9 +,P'c,cÎV/?o'"1߳܎;=ف3Mf:O=NԾ7[g.7)u[# h\BϻRV Һo8sGo"z:*.ܚ=q"KcvY.yP@@.7*Œ^`wc*#kۮ@Hf C?@IAZu<QhqR &{qN-ADvFh-^v|j=[ϕqi1*o|ݓާΨJ88W>Nlap p5*ij Mf2 zs@yVDRr"6 Mf%|Leh M%Ŗ+27H"2@ɝCh΅;;O& +OaNV[ WWݨbV"ߑs\g&<2"2$}ܰ:i*2/KF;l8ҙ #A ++G'?&\xI[@Ϥ_q$%]!f <$:S[u'Mn(Lt 3NZ48=e +c5Pȧɛ{ 5Yi퀀qmWI :;o?n-~X eq=\.;fQpD!Aj0-Hàtw\4Fq]s8l֣tkv4 ;Taбt[$~v,tݝGhby7%W^z5䪱$!6,ٸhpciP-+Rظݙ+ҩv/qXgCbW#0R:1t3 W8(NҪC}V-jTZ~~Ԑt#|9q4*Y'+xQQMX_.t>u{w8l7h1#=8s0NCB Aēm\+aTB0!(A''ɣx_~Yv$n9J9{"!/J9x܉RCi $tWȤ{T>pQGWߖCF%ճQO;pU7aDwWb$zKu?p>V;R3nz3a74j 3Et]Kֆ82)Rqj9**8Tnvk  +, QIAVlDBS95OdjKśB0dbc$"ZK9)p@%So(&[8mɎ%,Sg3  2rƣ9?;JfI,Y~jِ5;i9p|VsMڥ'}8ޟVLSԑ +c-ܙ,HWgvZ.}2N{"+NqP> S?"{ pA'?8畗?PPk5oϖvhdaM;œWV8XyCm"fM +;rED4xaw=U!I_޾c$-޾pw??/~?g}~ݟGWwվo?/___7;?4}x|pTT2EzQH}s4o㗠Ow)⺊54~~3gM8nNttBGOǡ3ʸuc1_?pTިg^;jII&.V~P2qa5#VLtdhe P36[~u0$#m ᾂ IY2ߢ^˭RI  ?1PfѮ0CBƢ;[B]ƹ@4F\= !)!addXl:psc wiX!Qip#";)y=- {;4kđs{,djzz0 K9QIB f_)7wAQ'ϲ ,сF*~G4[xuHx4XGg?g=+8#\N1B$3., $KLɶ5ẖ&`9~=e[{!LǩѯZCz;{C߽^Nh3VYg掊H9 Ž#:\,HUkPnI͌yڼ p>Z/wLĒkNL5\%TC-8ot-|ƍWj=fkԈSb-sⰋaSm3#0.!%tН)ĪXRVRaMkГ%)l< ױa"So$9mӪ6,ԘB[~H˩Mz&@8`uβR0{xp+]eղnse/g<ሔ AF0#+OF%ڢ4ZQ,7jpR;M{~ ?:,c{\o4?Ю0CB +-D4$ZBC$FƄs,<Nͳd[&mqJRq+vbFIO!uUWb/79Խw~|ǑBdk2USt\{]'zfXac^30}27tlZB!i7.$S/.=eA|%\lW ;Ext]Xe#=?:w+W%gO*{f<f@.T7fr拑9rј#8@ϱ0`C b6T;O=zC1qe#v:}f{gdnǡ l\vTɖ W+(vTo9)d(©08`b0u36+=H3mSkȿ6EHϠD;aS? +>0 շ')L`,u$V|Fb9|ʰ7Y w9tD.=֤,|Ǟ4q9WhqLydϵ`PZъ0nB{`XjPW+.*PG|:&m`WC{h }VOܪV(z~ts:-ۂNy,hx|+/G7Tŀ7-~и;h4)j0h?'[QFEmxً2(!riIvȲñ#, *~Bz??v~#7¯`ɹoC-sD5]|qC<~KJj{!ǀb?,O4RdꔢƟb0Tbc#&]ѳZl& gMJ`:Hb9Ә8#/zxFF\e4 +YX–j;uak4;Ή|5Њba? _A{{ #sCf ǝ0h2N{m^LSװӋb ^BR2DxBUgG["2+&zg(X_wyfL'G`M4N)C`17/Cdښ|`9Ciz x z'D2hc18YlQ<.O\;q:샨䉓jSir%O2С k`nJҸq*@yǓgt,pMB{hZb8(jZy΢#40)]$K=iq+ߣnO["LئьS3࢚O*F|C8`gɋmUtY|?Rx!rI~Z7ʁ9nRv]M?yGeK:R9Z,%Uכr.{L61i\WzL|%u+#n:q?~T a(kBQ +<ʔD>@%fǃ($2$׶h8ƁG 2Ͳas Sa5^כb.3UT+Q5[Z眥(LZh@uIg +]O_Dj]fĜKDrƖaG>ije. W6\;T&+ݘ(ۢ mխ JOo3:(z), ~l6X"gn ٞ6'%Ҧ88X6 Թa. ó&sdvfbub8amZ$ŒW1c%6谯i [(c<hkǶy|Ɂ&$h?!UD9ڲ +dkVVTjS:^T +Bodo6ﱚt^&.ztq;'B$!\﹬( b3Tc%a.# ICc&U$.CkVIZ?bO%3E&_jnGUぱQ0aVG7CMSmdevIЗ6.qzW`8AcF*F:_`@F0D[wC S/3Le}yK&!IH$mI}Nĸ1{K >sĠﰜqg7R1>2>b>$-:wie"5Ve!+ɾQyjރ0Yb#trA-#zO>2SE̼mib{s%{v'"gxZdNJR)n veTQNhdzq2Jv:2x'L8 +^n4o.xwj"ugݾQlpsŧ5yT gqE$@A㩫Pq +–DŽڹcq&Ԅ ˼tU3Hɍx}c+s +PpٌbrN5]/fZ~djUBm|5™&9.'ܵji <ƫ>Dhw!C&,BgN:G}#PEF/WjW{̑4~߽6!d^OirؗiaSJW@XIJv;NJۼ'|^%K㿟F%iIlwbDHlC|Dע`֙Eg5VTԨGu{wQvt{OfqץAְg U u!W\l7ݡz~?sPLe`f\ )ʂh M9[g4'oB~Cן+ A֛3 Ub+G83kL`?EHtF J\MdNT1yq?6^s؏' ;#Wn.g'/č w:^إ_ !_,h'`lHX"w(oƾzcbj=nq5w Z]r~Kw1RG2ٸzwsIa¼hu~ý$Kg({ ӟ:L$lidM +Ec:Tl02#U ,d)Ҕ\T.>7elˋ  ڋeu>ޤVmsɳܩkfҌF=YwEP$2!_R'[}f8oB;ElپhQ~Ή~־9dHT r'0FE_/WԩdiRR$D,={M/èqDT%vaa/7{kFicpqcibmu1R]̠`z*Hb3c2;U%ȸ{~︃@4CM6<;xԤ*U= +ze9BFy$R$n Jq~`7#wﻞ8M\ '5",Rr7=c--١1KdA/DO q20\!A{ĥ߳Mkfjk6'Y*wkl nqB5TM޲^dTj0T*?:⣮S[fꘌLlqqfS{=r/-otqӲ{ l9Dž/ +ndЧ]W.$K_O<6 s}d7;/([rk vm?R∍P%?ktڅ[vQ3SuA6 8.]n4Yh"j n#m1"7wV9x[09ʐL8Q{r롯pn wUڬηۄ K6`>Fej@8rY Cv8l +JgE +Z/s;Ux1>1ⵑ'n1=vcR~{1wE&ǣ9-:NM0޸GgN<s1f|03yg!n `/3B!fu 8&ш4Qf:]Z9zíήlPxGmVNFvf=}J(Dw +ZfZdij1{0z{ +Kp F qd?Zh~k?~O޾:O'lG~<ķPBAk9SEǜT萑JV(1"xG1#]B-6s}Tꪷ4r\x).O&=euDÏڂJJxvDi,cTg+ڜi صS AlCTlvMӑ3v>yM6!Ë_ <-_N4@-63ڈJ JTk}a"_t3nF c@[zޛ(ב_/-u詫(ULd5z}c6(DyY?%J| pddgD3s/ +JfTg:_R߹iQՆz,fj@l<bwTdҴ\+wK`>$Bˉ!hy68d,u$1[BCqݳŖL1iOrg C4f ^s-\{M8j=s1'"cA!6gu 6h8eVie7- \eڹm J /7qsVs9oA 顢5r ySRJM*"o^&[hbюDv"BX|Ģ TOc$1IFe6O2%?nRM*sM|6Y-%g-tːzw2"ahݐ&;#f|RGLc_~^sGʣ7BN+,ϱAa"_)Qٖ)6Ҥ<3%I-z=NH6\-rSOzM|M=f۩Z.J25feCB;]oZq]ٻQt|4sk`xv@ 0㏜HݍK(wYyQ8q~.*J&sVHkJ8VhIEI[1M]:VoܜRtiq_+A6X{Zgȵ\ID4EqDRe~:EN]ajiɰįrо4R#TQיy7 6kK&Oj1@%IlK?Oxe] 7\NR!1ne"WT'Wӧo`>X)5sFK#jϠ+jp dl wtT`X f!Wr&XyA0wNE./>Y}n4kZ Cq}4l/c㟚2祜'Yym2z{Z:f(OlN[,L=zk#gy)JB.L D4Ȍ>hX(MJh(e˲덆RE {: Uc2$J 1[rBn|AP?J֥\dږ69)s e)f7Hw g= B01Ṉ΅A0뼪u +:Cxޗ=ґʉyBs.AB$g!7iVgۃ6vqZ DYv;dB^KqSGnn7)+Q^Øqf< 5F?nAM֠DDrȂG .??:We u3Q~fפ= +}IK6DqIz S_kɚH-YxU\OwƝ 7:oҸp⼲ Yd2ؐ?u߁zӦ wd0(rG#ioNW {V[e3Ov>ېY]ѿ_Gn#u5J;:= ] |L 8;uK[:5ϫqH!6W&(ă6 ô>W".XR@}֛UJ&&e^gYFP?굏ƃ3a%c6wŚUB~TfF%$yF;D~(3쪩MnL JzV\8?~1x5lo?DW]Vx&${Q~['Iot_5kEOfVFw#CY\חoj_Oe#.K Q,kO1:Ω2yș7s5^ة XCX;TZnxT:81kD&?&ύt2(^|%RqxXiXY3LK\)VPԦqN}O@V[];z]ֽk; Xgb&F[~0}HmIdld]皸Ѷk=.JBx8^BɮMWk嚸p44XŸ-|Xp-c3%Ctwh!o]S v=޲[ + D%A81)hn@uInr2s1" lR +MkRI6+[kt +8Ovd_G+1|B.N;HYsǩ'Fk`(e$;=&[ ;'{.opɹb5$%WFɀWs{fy ~G$.[PװD+\dsmj׹OJubLj~r +9[ LY1~j 8^I/"A++?Tz'DӁF6J+,Um I+kHRGvK?@pn͗5%GRSo[FOWr]ben)Nv~[ +jJ]T+(o96n; L]`ͪĪWi׋vJGLZ7fJgT=usͅC5Ih9vR +i 'o> +f9ix4T7~Y:ȶ1cFfZ\km\$y0T|@ss=R/wD , eS&@:EsSqZ|ԀTܸ T) d8y>u M4xJ&rV .d1(wc<)iZg̾-MY <䵃&s%}I-׬yL46:G{7>O .>xeAʏ Fˏ|- /M.Kn3DטIZV1r>ېI֎|ɎMG^~x*+k`Aa@"V$)٤Q Je)@W=}>YĖ"ӫR=rir9 +\8'GlAi\~KO}Y"="=˙Ԁ{f\G }LR ?N-I{<`Q/Dk.7ÈaNs\'%N8ޝ:Xi +KNgu#'C.bTᝢ=s;!;14Iΐ 3^j+ .RՁ^ \#:ejX{#^|>NOQSq{ +3 +kH).32>G߬<aV󎀏Ppzr<ϐdhy-\<ф] 3n%`|2ہm Ae]ƹ%nRv9xs6ڀoSAӗgOvޤd#BP2a֐3E\zxlISUºA.ރi($Z:ǒ5'%CF ё 2RӥX#I;`4|ZylzvH"%SzAI\$g3r+ElDU7;N@rY-]!hǘ"sHp\7 svuaXUhC6P,~'LD}#PB"}i DTc"7v4i(Sj0sH>tQvӎk:(O܃|,ԤHw@zyn,а>kPdG<+h) S# 8Jx%LJkv,֯wC.OdEl,dWT'OʥL.꼴{-d~ME, +: x|[QIX)woYE)jxrj\u?,MKZ̺\vnϛČ١U=Hˎ{(R"dT6}Ea8sOO\QX6>A?+$ +A2ͣ91Ҁ=`t^,P=S6%,'f,~Ȍ (KfQ7T|/M"fSSsւ>Ղ 2;c䨛g.qy'$GO"lɭ%թL}6sĮNKC!YjSV[LZgSsykP i!R=9ΘkH5_}h#7J{!e&}\1w =>og*7iuE\zuƔvyŸ!o6k|Oz21'`IWC+{5IP=@}<{r˫_- sV13F`)Xo3ߠ9[#7- "ro{ qZjˍ'c+S҈2װ} %WK'5n=/Nc8]9G=g.N%g R\L=h H9&m wͶ4[Թ|ABa+ce f󐅷t:<3&Yxk\7>Y$)Bq>Oc 51uD"=x4<>+qQgV3bWS~#\R^%6[Bƛy+~8Z9 (uXf9WXQ87#Ԥ'YS6zZv4ݦ(ONrICJ= +Td9owVgϖwa#bK} .#7xF7Ŗ޵]@^we$scc͓˯Yo}_Adzzz$Сw@aL zS@\wրR(M"gTM-!HmZ&ͧ/Ւp`>,hq,T=&THUL_;rlB$:(^t5+ǩ en!!)vWGH7>8D*ogmn\1KZ! n&>AiS&ۼuԩ{y-,;GuWG6?;xq}_Pe%МDuC9n^':N.P!u!Y}36AI&0@4XIVY߇[7Cߖ $1CG|m|5x%i!j 8ry m(ȡE%ѤIL-942G@" NXkwxψ+_SG"w?dg߿,|,!,\ zG>K?p!}-Bz@ SC%7vZFkÞu!iR"ӱ/rӼ~^S ZN,M 94;9!u,yj)KН-k#Pfƚ ',tQ3K,6髤\ARDGbUNԜQ+`Zx |yZL ;?8uoJ5+O3 +u45)1[i˚&['Meh<50iISpGs3ۑ{i~(MJWvD<^2k>җy*̧'1xToL2%! e8YB.ݕ.KF,X[U0 #0~{f Djʳ ^3Y=PٰN8uM- nxfHQ[ +ޒcK,uHS&l[u:"yZYܯ!%æaAǾxwj9LȨG:$knloi<*-p&D'nk +qcRJEv~*x_,755̉sb$O\j 8cz^sپswskGuOwvδUff u~p8%z"FNms[\p2:78.,47^4H1D)nEm& x?s,*bӼR-۸Tia+b}ɲ? U0$7`\g NTݸ &N!;[/i߽=v+h8X55Dd#"B^|[dgMJ|/j]ί$pu໙&6xp#Je!&3P^~Y>ʃ;۔:*h>uīA2'RSڊĺge.(z8~Ï?TιG +ȷ7g^`v*nhQ +:ϢX> <6ߴ`B^ ~^KqSlvuEDEξ[LBVyaf_Nx!{\y񈷓ʝ/AT~VYSV/kw~)O&eT_cgrYrkոl +IAwRCB--?j7.=rCL4rqt=~XtS,Gtjk 6I,DT:FF+MpD`(qe8_;^+ ><)c.,DI+7v|Bln`\;dXP%YY"874. ;g9U[>>ɥ` E=T3l&Ǝ\ZyP ړ6܎/s~CWdUR*4JsP*B^͏[X/~b^8g:gI?a`?J^R<`>Dt?Mz g̵,'#X^O:c/pJSq8HVBwCoo5P>6@,ÊSe`z]kѤm:̩8\*ԛפ ID{;(Vm@͑o0Acƍ~SH34VaBɇlN%"1Iq@~TA"Ʃ +/I Q:2# pR'%c>,5TwA # J#% 9~P`Ҽ!z,}.[LbNx;w~O[-g%ki)6zx!63cLk4n~p׋7Z +4,%hhxq5K=(>D2AFn\Ʊ:oA }ʸ32ܲfgHoet'I;YFΩ.=听C <;JKxRy,x&Y"cXey0U!-@gEɼΈ$&A`S *K3xa`&Cdh Idwשr93噟4QRq"cARBQ%tnA NQb(x.x9I_c`>|fzcٚ'/R@5"rx2nf /n GIV'"Kz 9]\;kFsxb+?M}׺?t޿sk5g緸o|v|s$8bJſ?A1p#[Ne{­^Tv3~NcZUqX7t.큺lu;MH 5IMa֯)TOM7h=EOE`C*8KC~ -D@PHGgC~( 6<-Ï7 ÿ5m x(ҝmQm@Ɛ5Ε `4(Ș\ș:PseCĀV +npS,%g[] Vl +5ϧn2js]a9{[&Хb|zX~eqyЙ'%%'.ͺ+PK#ZRGl|+ڂm{ –Ri>D&]v˖#G\:2!Q>9m5dNޯټG+7a6пq|G ++N%Fj.VL1@ ^]4]^+ IFD.%Ap#RZu<~q̧o34-;xԂ +0kŠ{͔LNJN!q˴z(l§6Rpy;'E +5S,F]bMަYFՁl"i'rlm szI[>:eLK>OF #".JwW~w5_b]d͂z ,h1[h]ˇAzs\ŴA06 t}~|ö*Pg(N* @K0+9G͑Ց.#5.s閗hn h ++mGÚ=\sЧo,;!N^3eԼq jWu6m=V >Ry6عe@lck{4bVgBdv1 %'+8S9G^?"U`kq%#s^&8_\Nn!3͑N5Gb>= ;aygƕzya#㺃 8_uQ HKk>s=&r+oog =u, 1J躐j92τ7 ϕ࿘"wH>6n#rjPLufCbi!ْ իSi>8?@1< \z Iy1ݙER Htvݳz?W"wu̺x}H&twx# +w^#ގ t.ӎ9 Icl$M"%;>="p_ E.J[3' Sp0!XC;_FO/> +;)VӲ`wx~׿u}mJm&=Y) & +3?Beg;Ʃoy> +)Q͐8铳KE?dk@BO:ZoPzXT!z+YtTΑȃr;1)jP݁j b7ߜo&ʮJ9DINy 29=ǸőY~3# +<~;ըf9 +oпmvc8 ,Tآ7iZ$Kۢ1ו|Æ%QQ?fxqP`Kj M C#(Nr$y#˵sϏ~n&ǡD8¸~6nyvVJE}(PȦsv=P)qzdw%v\ǽf >j!߫' =錘ȧ(OM|E|7#$[_%;Q828w@9g\ +lY}2p1"V sa:Br[H^Wǯ7ɼ-6N/3&0N'S)z@CeI`/FWU 2H5 zP+\qѴ<x\kގ&I\ \", 2p(4+PZCӇ䫎1 +t vwƅN-TzߛRm08u&6x{]&st +SpT0p㴱W -"#άw&pBfޜ@x/V8u`GEN&feh>bZ3DI, {_Gi^&BmI?xГT'ez,/\1@{$IN92(Ѣ;E +3&?'_)/7,_(LI1C]d<aţ~T_ï[PnGsYtсI%EHIH@ m3dZ'@s uMe evU|x*z>?׹+WnXL=E$MKOGWH9s2906 qaϫEFTy_ +X~gyMO'8 Cf5q^#_nZq4Y)٩^m_Dy%fxM i]Fy֕F:G +kddly6\nE{RƳSnl7):"@&CuD8.@M:Vҩi%0,>o~kI(}^'5qo;OtHr e 1Y]1Gx^֕t 3k<߽?w>:ebW~at)[@Ԉ$׫QSm%X *㩹dqDR6V+9TǞb0A"-+ZyZL-tn A|2$[ŴNL Xm09%)4YKd)Ѵ y*m JbTcw|O uO^~&븊Oun~|c!?%H4XP2d$?n HWo|<([`|ZcɞA|Q'Rsb=W:v.5ByA7u/`kMp~^{3\ + 7f!$WiFOvҏ!i'SGҋ7W`e戉eau=Yvr9$nS-IEUj<^f0De6+ ({Q)uPW(qR⦥(x` +&ve#WaG@ꥴM(g@Ҝ#JRE b|%(J_D~<!#&}͘〗MKagNz +&u%(qV/|Z ~nxICq}H!J#Gi'9Vf>zbn;<EごBFF#X@N4ښB=_m"3(ғ+0ŕ~s}RxBCqۑT \괴k7н(Qc%[MN4完/`"3qdOxEVn[Bcˁ\,;Gڣ.L=D.NTB`@v<񹎛Ny<838ik.X\Gw + Űu/ q˼cH㿿 ,"%FK#(5|*0AfzWH1oc^coD!5*Y9eZQ С~^q*| +j4&Yb~zNt?6|z(1 +w_\w}_4Bn|ZqZԔThUV(mZ`Fela~t $irn(UFH)uM}<{ d:7GTpK#2/6=Sck( #zNw9^lK~,9y23''HLQJ0SXGu_QN;é妁2h\[e%Wc~ kD17.&;LzSqb6 =L xwݵF2NKj~]c=H3WH'MCZǷR{ԆeLM- _AG:eE&gI=e +I2%}SF^ +m Nq&dLŜ7$E{eNvrͫsfqyK7NTOW(OPũofˏ(q0Ņ4|dHm9<@Da;#|ňWƓ/ +fLtY(G,j@Q&eu6g$HZH1S9e&;}9umˢY0_8Q}Kk3&Q ]z{nT'qMv~~._95ǥ, IYӌY9BXG:}ܐzጰSKCBFͳ + h8َp34ɭ1?FF6ԑ+IX{xcޤvh퓹] _X uF.n w" -TIפ>d? +}4y㈊SFm+Ӿ ޹DыhXp.Ad\/8Rza&:#<PcIk-b:nڿuUZC[ 6))D+h>(v:? @WOzˈxg/'׿˝u[L ˴w $mD[;C4Eю`~tTGdtlC8[>Ug8?@eJx:^տp/MjS:7[2qP篗vW)OhO4wJ Jv'@j?{8ltW/t-]#]qn03ʙ'Afs]JlcQ)~Lc**`^9ы\gݭ"k-x }\yJh>XgUBkkk.uvL%; +HO@,RM* .҇6/ZGKk3!|I7Oa˅ru|\`}&ٺA); +F2HqXv,2|z|{f/~]%QD +]F0g ,ki +>'fȤ`C(rz슯` !E['JMW/3ŨMJTmqHA&^ ]$eJt+ĚunBa?v ++zS&AdHZfGlI>} EL\lw=" gJE +8>4( 1V9 |.=Jt- e|\B)S'c'R2Ȼu)62Oֹpǥi ΀R&kHWr +i;tnY?Ipp#D6+-Yީ7Th1jC7 @b23 ˰j Gy%~g\x7Gk`%B (`6u1dFHOv]Mgϟܮ _1?zj'wji (ddISn!=b lChr92If(M26WJ4T[걹c|!\!T+R7+&m?z)pU/L+Izà}SEH_LSWs\<{{`y ~Έت8W>5T`ad7kYjG085ިf?iQwj `)WӧQE&ܥd`Zbtӟ5Ρ9&@=?*2FJƴ (ȡx$z$0ڏ}MJro b%Fa^G5߭k6 +~v5LOpt-5#^\jn\$ԖI_|r溦;'F5J 'Pz$2GΎSÝLɂL^~{Y(.~*ly`<@s7|xhIĮjJqGy,VקpWZ? :-vlq[|S41! i8InJ̰$Z1&SQIԚE9 +?BȨ8ZsU}`N}$\A4s6(bDgIѤHwr}%Ѱ+d [qzár +K8OCI|wJ=7\m=k/NF"%A7;rc29dyACL:XB)d"& ҉cg 9g23bBGLmKƨ#цI-MJ=]ALuD}{,2zO={.^?ILBtw5{,C\S_r@~Y*w*MD˿' S ~qď y>A?)pRRr>h!?|O97)4`|lXB:j\z22X%Q^T/s<Wkosc7(+nO|IkexAs6v[$bZDg +MPYN +?1|tɡ`!'HjJ*2$iʍ/) zMJ B +'1z=1gG+}2Jjx(ugG@[UOuP:,5:T]6|Wvq70=\̢Kn=]0q{aX%5kq@i-GV%h6Y,͏Gǐ*Ms +G0/-SkMIhyZFAOB2P=8,|uԩ M;Mҡ4A$$'1?zl " L2 FB@tlϳkun=M2|sk퐗ZnJ5j]-[# &m.WZ0O}\`xZP>+/\VZﲺ +4ZPk߽U*J߂I 9n*(Bm =Mݫ@$(rI9J$HUxޛFA +HLp-WRt;p+MszaqJ> y]~sZ$BBuhSA05Љ"t㨷BjlvEONK *J*M]U-FFDSC7'&C;taa:B0)qcY}ITTP܃4]OZ GX }1+v֜@)`T+ _7rvB50t}jVQ%yʸa: S2aNO+eiQuN|nlP%<]Td*\/UdTwD!Pز1i[vq+{o7 +[5U׏aiVǑ/c +:2KchjݩoR7U|2J)O!] +a h`|6.{߃xE!'Som^-?ԭ}ОU+lڍx]K=8igO87L " M}HhGJ$(~ \jH#f/_M]܇̯ E䨇ɭ!G:%  } zuFZ\L8bRF0Bܓ +jl}+*ovu.]BIHآ-yzHѨZdGТ 2%*|S7Y_wG7⍷*R_]{]'H4.V[}V^[+|gh?zkoLdMw#4-QsrA@~- K~ j\r<JhW5L6n7xȥ_Rן/DxY6a& >Hsǯ`nYhGU>L@Wv״jBw&q n|dPUJ/~i*وT|3p጖'J'6( =ϯ&W=yӸZq"&+CF\E-)|&;DBbxZE-tRaD +UѼ%0@Zw-LЫn5r X-}( ëU2*m5^8nWQ>xCBDXa8<̼|~|Z`f'›b99Sy]rGdl=lߢw&K bT~-VL1hSJKv0@)(`DI!],xsE$/Qu#grs[Dn#qwO˶J)VqƎ~p? O PE&ިq oo`gi-#o֔\ .hB7PLqm'‘ +ТHmF0f-4MOzO['%Aa f~o"@Kw*:> qEQ4H0[`p9}i|\ %!~ d5bb\FoHx?3FL 79k,æa_J:VeE9-HV*8~)A چ:.'v^Z4uֺ?{G@9`/җ p6Z1r׸ E~2db+@fJž`_o@W[%H0~?^iB %ʰ $8*U -m]y2jbp| z ZJ@BEh|$B^|YsI\Б~G$ǧl (>zW!rw$E GdZnK{8Ynfbu7hbx82 @(ϊK0PII7hu65_KEG>Jh%[\=~48%b21Lx2S6~ciܘ,^[)HuPQ +(|IMN3v>{hQoUݭ֨mzAmk1̶*uV@oV:dt W@ hxKAqI_,d|BI*΢)h\Ĉ&ФKF%fݖe^(Z@lK}M3ebj-Km"QP)4Y$;8K|ͧF'w_oǜ=q.r YA71ihRRcq L1.( +ko;G]`}Xu3@쨍"#:4LM&bwRZ{]@ +#؁ jQiw q^N8'7[,Nz(Ba,Xvhf)q9s|jҾ5!L!Y!PLq[bNI!j\RyAwH{`d +Ɠ +jlB'\KdjR\2K+g-'@FZ5=hS_i1@A +g8xC[wlu|F G>.GǃVNJҌ/䋭@>ZAnC^gA{-9! )&I\ +*Ѡ7md-qKЪ8`VŲtKvD4*)HLY7$e޳18k:gi"B(f&hńD [?h]BE?Wݩt$JIm]Be֨߯Z}KpX/EU8B/v!mV 10rGz;s Gb 1iyQa㹙uzQ⩁U?(H)`e 4l5kFf7AbF>Ǻ' 4?.ƕaCN!UX&ND!M"BPWbCiBPq'tg@\R&YXo` +k]KMӍ_+:i" #6kI햂fpïµHʬ`[補8s2+%YWXB;`P0KgrKFКR|>*I0"PJқ\;׾GK-RE])p] ^0Pi'xNu!0GE!}|гk*o503>ٓ&9u5(QLH0}P:J ;Crw lʂfA3\GOz# Ǵ|=\^sRY|쪫< W-E-L7+U +uC EG44Ub}vb)(iV<@>>EFz"as]u>k@P" pDF_M}ВIޝh߯Gǟ>"% S .B7M7$QWlCE4r6/JnX}jlhLa14Zl)&.ֻ]=1PoHmt9@70c`%RV|s*yaΝnhe.J$|FN &zE5h뾡AOaŨ5䅷|-+_RoE""Ȱ4K_?I~JzȃfaE@%cF2;BlWtㅮQ8qHzJnaz/ojL_Pǖ<\Z<2%m|4BXӮ0@_;Pi]WZ5l8rd{ MM\ qe]pAOA4PQ{rRH47saBU{nv*w-F!f2`*&>_״9,fQSpޥʋTL-)Ecݫ8qײ+.5׋aHF2w nd'Ad +c)e"zX?siLU=jQl;OhNSUFxz3}P.xIgT [ ۟K%ʁ@ɕxFR'{fEER9TTBa L:=,_;trEZ(:(ls8ZDR#KA5w%UdR5{"< <\Sn;5z8*}&݌J" $=R&&W0KcƗɯdQ4|Z68(fW'g3Ö +[2EBz2a[O^[x}+jMzZrHcw{x$o8DUQ?ֲMgW'_}de@4 +s[f!)i8lHugY77:0wYR* +ǣ|1Yx%P13V1XܸINJ1EadҀEڃ pc0e- VA{S-q Qm"dmS ȌwX%Pa))cPB()\ +%h @'0RgAVdE ɲ1\"}3ﮛNz&e~+;A[yłذ`tyFD#4%1 Cn<%f1S +6* &~Ϟn0YI{"8(k<˩Qy6 15"c`Cw tA7vp]+-o oYxiXC49'ᣚg#jX"|W`JJ S--0.(LLx pK,鵌Ң:QUB(SRo].yk O`n6H.Ma] +wrP*r~$hI.NVE#m6lS7id{2iW!Ϗ7 Џ`7[J/j<*Tbۥ~شHumpV+5ҤU>fmH}E{/(͹{e$6까\cy]ۚnd6GL6P`+-!q8)ۏ0 laoiz;'(Q 2"VjϾ_ u=QhG;=gՑNָѱKH Q .׽l9~Z3TL>12XP;EϤ +F<=*d@_x*nҸ-چkNB{⛓.\U`}.YE@(jhbrr*AABHYzZPŗz_R)Ԇy{`mHbM 춬.~@K6A˗KXHu ٠=fc0-W *(U$*dt_]֞1Z9 >" +FP3{x/Ss2:KKJvMޕGa[kH +`A͕hI=J_!&@[ԲNi +!f;)t0 +&h ł86Wv&gL [MR) GcTPh*\$<  _ +yرI![%ixґ{̶Jc垍 PQݭ=P9*_amޚp렣cREcҽ~孱M9tLJ۸[ +%IJGQb$A;_:M>_RB}C].{n0lfJW#[o0 |@2J%aʷ‹u;&o +*WkuT$5 QyȈ3D:mLNQ 3X`et +Bd_+D&)_4s"e7e;*Aݦ +Raee8ypBц,7s'xMfK$#2w. +  ѡ@ö&s-"@#[ZyA߀:8rQǬ]bP5lcc{O43JmCuwW13PP@o+>T`4͚`j8]ce'©+FKfO]<Җ"&TynQ3 +Lݲ+-F*= +'>-!iP2#?:(0FV +J=(S 7Pn1]a0DpѬ9FK.ۼJ㮮pgh+JS|{eprcIe&"+YU2nuc?o$z)&abژC)[vO0q^3ޟ/(B%UR6,tLp@S9bQ ψ2N:EQ[`͞V{'0^%2 & +2(% Vk77tAA 4:E{Ъ?6|JhWh)Wa:_o(tH+Sc/<Ӎ c +xu}H{'QI+M5kg ]NO^,fhmVoX_Jӟ0!I@esxIPnbB +W$([T1*R9kq !UC(V!RxrZaazkG]qIV qڸ3ZlP,p;L?ө?8MC`M ۖs :`E +&H>J)6xx~ oFsDi$EU^FmV rSúic⣄(qAzu71|ȶOQLcAL ϊKS*1CςiJam` ">vd'M~ `mKtU<43B-Q}|{s eJZ`[<_n=Ue% +tˮ.C=E|+G=qIe:%Jыo{A!r tA!T0J +YKbe498>'rh(*@?99hV" 3ui^eFioN%aCW2}}79*Pͣ`MKtY1yKA)1M6nډ.:ȍ%Qsɷ贬@@o .%Q ҏ8,Bi{qS2S՟0pulҴNg= +0# 9nw\NCepй$se[tmf{@m +rغGՍY^koه'1R``ݧd&mW[V +~ ,djrD5 Ԣ+7EF2(A6QW?V$,ℊhRdVoJ8>AP +ﳣ#N<3⻣떑`oZVAV|K M}ʫJk$ ֤$.d +s)LZ{U륑3NTNVxtܝdDjٟ"1E$DߑP^Ƴm]nKL" + Mh# ] v!5^-vj 1O۟qQڶ(u9o8 +Ųer߲ ջ'<;Ajب9!Urҋ2HM0>9IQϊymU ey,&)袑Sk(?_ݧ[DQ ?oWܷ7@\&m[̰r}a'mTl)qo#%AY\!ZZh-u'#rFÑSZ @*`VE<W̰ԾqN/[674"+JҟDa"ِ5rbZ- 1@ͺJ&s0!I5qcOs<%k4҃+kQiwK*3vI `=ic~n@M)r& 'IE"luC2=ͅYYB(s2kfB  !!K|_>"I 4Y{"G.9mҝ zLl,@p>%_\fiG PذF&һ_!")p8͞'ӍU]w`E +-sD)^Vq'*y jʹ+;'Rҍ #[}9Kf>u@J4X\zZ*iT8(| @*^pв3A*Ҡ BS*oo|9o_ɰ=;tCkÇqC\HÍ +W=a 'nB +J~Ѡyj բiÊqO2_jzb˼Z4c6+7)axɱ_L,8@J5(QAQ~*QOń eOb*V~ưd:^7QewҸ2V}GG^ ȟRV '|4,HۍCM-;KHA,K{4dZVEǦфx +ҧ1"J@\ܞi.uvIJ@;as^{Yl&SOdw7<|񴮣mcsPBqi_=9鍿0g6: nh|_\Odݲ@!Œab1?snu3Ёt MQk0'Q b +P0P@}|_(|OWGmGi[AWAUtKyKr HrTvDQ#gA01=T? u>3HTM=kDnr3P}V(<|'/kU<R.{ʪXaůH{db/< 3(~lJ!2D|4vʖ=8-/XNxCXW+iY}JtcQJ=1ؽ]*HLe(ە~+#rCѧjm WyD-\fS10(|ARtHɩГ lEEeW FH#B E3 {/iKȸ.kRS"#/"G2cj^D]!zBkIVk qXQ ǧeX`ob?P\֯~7#P(OB3=W'QL[ 3fbuĘLӠS#gN RU-kVC2Fj=J+5Y6ĄkQde +}aI8c yU7 y}&s)kD5>#eqJݿ-ƴ7lԒH1 <[dQ~E?rb@5t31I2C/f{J MT2+,ɗmt.~ީ8R+bS=Eˉ"cpX]ke*LrT +٘?UP +&ɺ4RYCwOg/) 8Ab+1#9fjS a )ɯ[Y[[Q*|S"C;.%n$ώo%/9P~Ok?ko~Om?K˷~i??/__<O?g/krokѿ{w?__?]?k?^@d@>+=}0> +>B6VO&!*!(fDכ5|5T6*v]` l L¢`|<@*#;[C44P@W@*8 R1x&]Ttn͙չ)9:;xS8V{B *|ָEDA׻V7oY+5b*#>XȞ4:<~nW&TEKIMS.5R* Yu(D%UЦWR7UCJj!d!DP:~d?HAs,v`WG0 V(!PB717igJ `g|4[ԍ;X6]o[}}Gb 3LX˖yr4 ~,)PشMHNd>) ~d7ew$)Bg`Ay_or:6ZzՑ+^+lPh%HQo Jˍ'i-%L gU y52) G݈U)m~O9InyO7lҀ-0hZP 6Yl~σ3֙!.PRE'fc˲#0FHF\4oldS"Z_?(7&O$< +A?;@4.c?~o$n^-;'#Uq\1 +%3(./Ju@3B)ɤ,3jBNR4@,.bs$;apW\-30X:;msޮ,\)ڤ$g~A{oOR)&cZs1"h̔PSbKi/_oխLBn"=(P>e I8-*3SccEmֆׁ:H_&ɬ-63?xuALG%Ak>Lbȭ4}_lFz>nH +v >ꁄ +ͤ%fL6lօyΎdM:n,H+^T1Ws'A؀sH-kqc@5[V|A +0`&9#k fEB+ ,t@QAgݠ{$QZv\Zj/;k~ؒ6_7*zn|c"k%agu@ir{z5!7Rlƀe12EN qžGv!e +s>]iMN +Fbt#'Z\ %rs\Zd)osq*9i BbS|F!=<<[UR](w͑G`%KgފqR$Eh* 35 M֮LY|q.UDumn_Z5ޔ+`YU(W:}ORޖ^tCC\)}8Ϥ  GkC 8+Hf>oYnA`~nv{0Rf7H;ɷ׉N[JtJnj%|V|k7 +3`ya74uHM[sncAز 8,C7ۚnw-q4&_`F. 44>swM>Q |jh]/'9iW1d ʵOv +%">4`FFVI`2oB*z.|9USmd:BM6T0Ei%T:P[t_ SpOq;)8og{fSE+ +,PgOf'Pm>z8#q > @ 0%-`!)-`+HOl4tb6/j]/(0dY )^/?I3*!v֏,-j5uR i o");/4^3Qr +'ם/sDAD9Иsl~yxPzfY([%99jP/A}3ﵾ.| nb 7X!aSal ¦<9ѢA3(j, Y?#>Sҩ [zgrA}ZTyJWWRq죆G;cW"c/.äG2[8mRs%׺~,T{PuU8t42|=NUƏ–b82JӁ..]#lh٘&/Aa +g%r,8\O"ME/#SmG}"LʲhԈ@.HY0-)%z@,W|1Y Y; $'(wZoz ``ۯCE3@$I^Tй*^"lLZZmiEqX=ā +D +govǗT*:ѸhJMȁ&%ah"8 1Q/EnNDI_4Q ) rX0Vۢ#C6Z9'G'87wR`J.+\.d ~ӱ%m^{ /T YۏdMiu?|5IйyOfX@6|is;:7=#A +L1c%EܴK(Yy׫5 E^pԮ M;jtżYL?w Z/Ԉ-!-ǒ|I[ +R׋d~O;AKO?\ vJgG[{4?TGTWSʔ$E,J2Mތ%x;ۇD}tߓı `v ^cKoM $Bi) xxe A/S#w042ݝ!iS {Rc Sn>g5ߵԔ͂*l?rĞ2(%Ku ˜S;zؗANOEEO}E%![3lSc7D .zvĖm-<ͤ>h~'0 0 9V5mɼ\&_ePq_?B[a5* ^TdׂU*I]) Gg_O 9(h`:*0f'7ӎ$bs`+9[MvJSRW/^)e%&I~JxQ-HLx)$Gq}eg bC20{eR_A:4QQ6HXKHH,DD``J6< RU=A]f++ԆjD'#UV×4[aF| PʿUde5_g21(n<s]?V?p5 U+o½AE֧i _дCDeL[6'e qǐ _SZ=S*\o4_8]si +EuwMv#XLBM^#w_nw@/:E[)]D8hv>;}lUk@ZAՌ bJGN&D[5O 2)JCW]u"B|)">>Ҳ*j)͚ b;7ÐӍͮ g"A^+B=3W>x_kVNX]>L%EKuQ=\Z{fS-&ξe@>9?*85B)TǛn[aOR·`)Tu^oʘ!8"<03ϒ.-s%^0Pqρ-_J,U Ɓ))xG c?61?WH) ;Ǒ +>=@x/6KuiBS+4cQ9NO H!L% +~ZxYQg{ԷuJ.f3W5X'=&7^ܴu_N4A2]i,6a+;G +h +HU3Ne'P|*!]w ˦Ȧ13a/zY,r.'A +.$?_8Q/ESluAܲ5 P[_fh0:(1)|؏Vim" FE7 "W,;P% +;+~ɏW(xk1% yZRqf e$) W-dxHNLUWPNy0|09HQ]`"<(e HbbSpbFG 6*Çɼ^9D)4-O7t)g +.!̉Fs1hfߎP8zHû,iwQnYuPǰ6 +S%R"2EYC![Ht 2JjW`kU['v2bȗfjS!4n.iIx9YAƩ:@Χ . +i['fC+ɷ4Nl +ȵ6}G @o7Ͱ6*1PYe$-0nxi<، +<.(]~ՖX.ĝBB(\aѠ1޲L,B0!Tĕj{hj-PꃰWS)dLqoyz|J7!!7`&כ(Kl,̎< +=!>L:J NPЀ l2 <"#p\?:O'?mW006<~kꀹWp-6fD~ M8T qJ,zxmA.vnFt/i޷Q Xb"u: VŹּL3 °CQ +:ש3k"φK1m7?YaS dl/n&hӧ0p}Vƶn4+O&1 &OMi>{Y +_IE۲}N8?bT㞣7jݷ焱Qg +1(4C"M5gN焱Q;! §%,"dNeN7P-9v$# # [-+'W +Bi"M%# L)+807@^Q+@Y9cY΍d?!cu9$WyrYi[Ϧ-NX!r|Or{eb.ԛrb* l9'XW?#cOJX>|Bq}_yNJE{ɫ]׵"ZDs1"( +w± MiF=d* ͖#>ʤňB6ɒ A(̚mj(6oyںYu/,;L@P,L~LQe^\rF)M"' sQiT`H{LJZsbeJ-4n- e0x{aDi5Bو|( J ~cxHR`B{ޏ +Ĥ:iQ堳1Yv_&8OTAb@]T9{-Ӎa 0H7GIkj٭0.@^M+ܲ;Ci8t!4S$dHUURtGc]HݞcTу3Qq}+qa~Z'yo-3}dܽgtHʖz맄e3PTqĊH(/)zW +$s6|D P + yoRpV6_j, Y*W+W/iW֐0~z'TceK+,G@Y*0&9`7~15K/ Í ٍ^U:ugA +;>Ob8v_ \߁"o7IOhm:^;9K`>s.*1DWY+n5WSu|?y}˴E <'zQriOIrtø Ffw61 +d@ulNt + c^{e\g}6'9*K3ϧ9qښ@c>iW QŻ ZW㡹~)9P +i S8uEm +߄(f"TY~.D8ah[ HNWW,ˑWLUnb# wUp ^ +cj: +v\R(/-$2f@GF;[r0 %,eOw*֪AU-C붔W񖄤>$SH4"ABǖՕٙ/J*a 6&(/` I )#;:P+R,5U%3n%lc.fzXD,PD$H ++#E]KLaMo\ym缻q2R %[7!Z {lm"`* +yb:.#E+ Xv/Lo)_^# +]׳}]Zަ=_![l74W|s{@^piʠ­ zjM7L}P7|MA+ +owޱh<T) U|t5:G)rz %3 kr{Q6!BAOfgXӍFihn 3'gmv;.J &*A i2ݿ ybHuDnU)W PE +sG  5ecQW2Xrכ. Pn>웓o<7qP#'0X_cNrS4HS4L+LCΓr@%}L$f^ckcv](QCK$ + -)4p0^%,Vn;h,xxLӼ8!y +a cV NECqM8m]W-{ZbB+ɷ4^J&(0|| |aɰ-۸*(b@YCrGimRe>XW"C}AA*(dF +HH>@A-8MwjjU*Z֫D|k`DPEVO#)}Ԥ[`# +39cMk0J+ID QxSA+oFd=h|O#=1eaP2%Z;?6,|yE͋A*ɭwl( +TV}z*4RMܦXwοr!/-Vt:(i oYrQ pk)|J +YZ]R`F *M`g|$7n\7Eo +PZPHNA룟?5L#wN5,ȋ!slr1Dո5+v_0bh~*(_wN!$ ڈ,Ca-Y[p =_ot{Tb W/\u{G ~%lm-1ݓZ&TB(mRQLOdв@!VJE֛ٝ*G+r \[_:h'ċ^Ɩ Q+WA]$z}HaPAaNCAY@Ѱ%K^z%i8U9vYRRS- Z9!74Ʋmgƭ6 Gw+ Pv#J΁d&XҦ&`OMܓLQ+ip~&[RpEN1-ԘLT=YvT`>PZ6*1 z~ |~ZLRp1ײ+-E;T-+huJ9)C+@#HH+^k܃ &BVZ*BE/3(xQ2̛yigrn?li rKJny5@kApD|+B1+&E-[6#aZ:̊īN +\ `.aJImZM^0H(gԠ.CT&^Ul Œ!ۘ.y16 +Ѯ9*6&}g`e1u6j3s~KJYW p؎W<p,gHȆ!e']J t"] qU)yǼ^D(`TqNh>iP>E#6@3VVq{V (R͇^Zf(A(<ԝTd>[ZBA +7NH1-|0n|!U*b6oP˦|"iJj́Bohe3.xaGb46~_D,U[+^mR-|ȀX&eyV8:9MGH -%u[b[:|=u8R~)~"Hλt9"I?03Nмf$ +-1$u2L^/sQ]" $NhݱYE]+y s(\a Á6ןvg}Kb/g@%*ٞ==L ]ĮR|PLvQsKP|Nጽ%cƋ^X( +SDcG+pr7j#'^gϋkM]Gž%M8Z\~A: 9MM_=er$8j'RԃFsWڞyo&׹%r;J5"Ɛb,p> e?\ +o6&sb+Ytd|G5.l<:%b䌚d殰UyR}Ayc"ykp> +QK^.+9DP(TY9jSK`Za~,DS uD2R{=`WSf[`$v>c%(A_J/GK28mx(ڶIɿCb- xMbB~"P +*(]]vBA@(?9MgWexly` M5hm(&M5]P" .u-3pbG.;(^o6\Ghj]=i m0]Q +;P#O'0n7@q2c} R8"% 醦w46y  *djc<0&Ij0S[;9\QY`#xW0!Z[8|u[Z p](t FZ3?$(*z'M6#8I nnjV>HR%"(5Cqo7R+p<|- +L9uQ'1:(!d)4kφ5>-wtLX`/>#hlonxr&MMא~n/^'^Ji6 B"д϶&w)XT\5^,J]=2k2kрġZЛU -adA=0.iu6Up"RN~ t.:*#,Jh+p&N0 XC[Wչh +b"Nu +%^׼ɋ\ft?7)P N0kUR REb=!*p@1iN+&"tpL*Є=ɩC]+ mʞ[1Logǔ +ƻTv&sE +|}˄ yzL8¼FM`&05g&7'jّr>\4sǠDn,+'r4|ɍ[XU9KVbBK<lq0&X<ע^TT +GFP&44Ώ + +R4 ZJLdPJ&O$A\ Xn^^vQ'%F GzGcZDYuc"8 P\Ë{BS~5/p=ʒ^OGwc,כI +O9 +sKlhsH|%GX@y]h^Xs`+8>qyb៟??,z]o +dHN>- +PT ǤK8aΑc[#^HD@O D;|ib@k{IҔK)I9v4]ݪ9BfgC0¡,_"hh4Tx8MofMY?[, +-+Kk~[t7'KMxy~Zr:4_y>-—MWyV=D,BWw&+]ջ$C½ 񘞚a֠p ]!1QK%kQQtcM҆OEJۍtD;?ȷ2vl=-3;){ѓ&ߥx #ME掖e- 7 { +vC@*MZqH=p| ~:At"%D!ZK +=Яer'&sg0d -8>9"2Md`iH^ +f|dǖ\hDI~W~O˿~?U?ڟӯ;~?}W_Oo~oo_ow~??Cvc1`E 6)Ya(z]7`cZQ(OA΀ HVPต`&쨳Bc3'4SC|<rS(!F,3! B[48 + S;&Ϯ-'i`ZY`M3G)!Jм +5H 1;(nx !,ZDxAx.Tba%UEu`߆AkL.m.^vQHh2PL<ȵ-!y3w-o9UQQb`\M+DiJ wwp5 +V$ 2cĻ|lAfWwJ' ֐iCZġp"F -tKBV@~]J>'0Ky7;%@}jU* ,֖w|}Shè 2U+ VO8[~ݝ`'1P6Nсj<:$0-'׍` S j"WS>x[Fwp&6)|nI6†櫶\>K䥪k)dP +w{Ӄބm Td@%eYoF4+(c{C2h]-R{9'I|t=iڙul-w&)d2\|K3&A\J=/jtKc[]VC8[lK)βWG-cIA^x>x 'fI>0gqPD/ ۜʄwQK'%!6.AdV,U 'ȯweZkX3h>Lכ*9IM"&ԐIh)Ra#LAiKV/aKFڦs t5-!&=+~xbA8uq)Z6֔SFq2j9o EDk+7X`NGt;Q%de4cWx;T\go5ͣ%1 + +s-h٩amبϯzׇa}tF$+ZZg.̊#|q#hh}uh" +C|Bia 8A^hZJ5ޕ+E +JXtT{",@ʣjeqsCRɗbw@I5Of'5Bb V10*E+\?4 +J#鵠T.|Fng?)9;Ѐ1I @p?eU&/czqa[}Ns&\OqՀVL* +Vn"!pJSl!F_׾~6q>uS|o}[gy@xWS~,^YQ;^r'|WV''@V g;r&"%bUI-00 M)}= /8G0Az |U%PG YytAjB59ye!46F"j->x;V IىƐ:ra1ѰYĻk9W f +p^V_2Lѵ#x&-ǡ|IpX/jZ̢-J_iǮyBGx;irїN.^<㖅>78)>J H 4h<Ha=^s9Xea,$7eϧ}оyJٶO/di%ֵz%lO R\B2ۺCzFg{xWvO>@Em. >9v,hVkNӊ$gZHf8 {imZVΧGK=5N<Ȝ,$%0ibgDߥŖN7ʄ}\3 +q6n C_E2aJNv]1V<_L$B(IŋlٴZQnҵ&4c0Sc 8/r\ 2GihSa,!!R4" PO +(q-Sv!.2 +R\ +#@A"Q<SA7g|/n+ (T֫|zgQ@_/0B҂!3kP!8ݑ۠>${qkPz1xd"b]E1 +e)U؟3ݴRGBlDKRnA[)yF߹zK +.\-C!B3td{A=ƙ*nS:jʐzI6lS=)K#ҥV@E-!XIh\i[Yn hI{74M r?yav;@+Ȗ+Ԩ0*1%BT8ai| +5۰/Kt[z#j9S-̚%yӧe,zǓ/P +W*9.#):vg~ٖ:ױao5AQ44 +߾B3EՎkNA_zxR#m6*s [;*s_:I/ÛKFQf.Q\fg+KOE@~oDi``51tIF2."kS.@{]K=yl4=_lT]'rЁIfO+?RT+xr̆~Ƣ!&5EG [J_J +Pz53M( cϧt b7Ag_8@jW+f&+yNZrn%r?oQ@ :"H<#߽G7f6^@1g *ޱ隐`Cʟ- 9q,,Tl-*/[w2'bA1B/g`'P}}/~i~3[f.MȆX,T+mVlZ{{f.km@j)gΑHf\&GhtD"1!7ӷ AdRAEر!b P}A@JO6<0Qj"!:sKQN xEgҶb+ Z;>.Y&_onZ)4g㾼dD+c1ƅ$Jm.Pi8>( +$7Sv4.J^qZ YB0MoLk8ǏkuMF=5{ h/#!^ JڀQV󖲚Sb@񬥫F.AJ0 3^Ħ sҽ!Žm^s] ~oe?3R{)N? kY F]4"$BT,ׅ-L]v/Vz(Rh{5?ЦZwZ\3gDV + +Lힲ8 +%GRAhg7ERR\E?wHL4{5eʉk5ub 8LY$G4IPsܵ8'xwS.@=|HLG'ZV@L9?y 66*b <06OX5$o0L}~#(O %8qM?Q +.FOΉZ=uhPY1yj.e[G~.-Q@JZrz!C4$mB,F+wEva4kχ@Chv\sAjcʇahPc]QwWΟ+θtZ'[udI(N-F-u,KY 0oyV&,z~)<#Iiޕ* a9_~@ɭ3 +%Iu T]&y\wB$T >hŐȁP>Rhb0Z^l7R!hU»]+ +W.呍Cɍiَ^vvr&'W`+p^U@$E@ZFc}'Ekޞ Աc,{@ 8DSWcw6fD  $ͱ\|+&(/`<%`{#>7)Qx@<]uKxmH "Et4kyp +͓ ٽZJ1SCpr@2VJb6 +o|TQBv&<9r u(TӶavNӫ@ډEA<]+NKH /[ΡJGMzsYՄc5wEJK6nu7rEvBhؼQȽw.95q@:f(=T +Σ4U/BЪ],cs`2) l-oyxN6`:_k "Ds˗ UruVBNe&tQhqLiCRT8!z+t?Kkt#W`s{G?#6C B|iZ}i١?_uc:[zaLsBެ~}ق8E]!c GBț}ohv zd0`8r]TUҫRm^^|Q+>E㴱WXCz8䚯7[x @:$Atn90W|_mDz^i{JG&Č2';oRvBEؤi=JBhy$ oV:h\6"? jJuaG}ʲ^/UPS)-+"(4}ޤS @5}kG,Ʊk^@FZkZپswMѯg{J1ZwuY<"{:Z#Y߼uwLhG)~g,?Q-x6Xy#*YM +Ҿuj^GK9i\o7(<| oYן #4b+58b< ΃)Tj`SH>h0>etCK=qػ}7ߙ2Ky{#D% uLLJOࢢ漇f +BOWHD8$g5`&;p/ kw5Vt8cZx-!x~MzkopkW@]O"P08ڕU Otz0]vcßN7=3DW8wr>RT ҼjW$GB(գPa#:y4G3|)ш.-Ydo-%}eMrj\, EZRK߽Փ#,ڦ5Xr|rC +ԜU<;Bc3#@jO1Brc((kڐ]Yzpa}YQ6yYy3X$QK$ӣUf?D6*P眼HƁ+vZ|MJvv49l|s3Vbpzhla` "C;QX˅:ڪ{.MT "7k=!*B,|>՝DQቆ#].~ܵgD ZJcvL*%mIOzH}[&dz%d%D& r#V5BV6=!?J2,0D2TaSھ;H@rت[pfB0(k=:GSNkkDl k$^.!\R(]޿Iʉ8xĜ}c+-8Mo6Yd{SI̊bTgյ vFWɎ@Wn0pm+< :<PVr  ]^Gfp/ aYQ~ K9zDw~/^֐IEmbXV7h&AT)fKnNBii 3Ped0t>I2pkϪ#+T,r8;St<0J="/]Sfft*Gf=3l%!Jtux<_?1>>s!@7f߆'pI%4W?o%贋*Rt"uviVS/L:Z)u|̭H|cF f BlRIr~h`Yݭ41-OcP=>udW궡ɶ8<cpa#H@+I,Me/զ~?SV9RFipYQ@%Rػ庄T5 N2MrRg0|m!()E4MyE,8AVwB :F3B|& bLq{9-)Kܤδ/E7n$!? +XkX8;sOө| i*Xȏu|э{ s:ë;?V%yރ?>d˪KprS%:DCMTn=s6'sE$g2%KT*dI+J ?kJJRp6L1* 9_s/W +u1Y.1XwrȻ֕h-|SOiWM/[oY,&cϽ4:򊚳W=V +ltʺbK$RޒPkM!MY8h}SbIziP",#B%h+QOW@p)}qzxo9DjyQdSvk5<0VC58ް3ѼN5(zڗ:}@535I- '8h[<47q:k4cѸpǜZfvXh zsb +mj _ZN-,Te +Tqctj05Sgndg^IFN17 2%ҶPKL<$+#u W&XW/-wdK>6^f!4Et+]ZX'QwԞRG'>Tْu)el_=Y6`~4QPZUνS>ٱt$ +!Hu:v[14["hI)-'&zO[AgQ䊌%B, C,z8Q4]5|1 b-s^PPүn۩5>'e\Ro [S :DV"þL[( h6 +{ +g!tABv^,<$S}(lёy C\fFY$+yVg~ei$4^W )WYb +(8`IrkSthP7Y?=#xyLOU.RWozS8"&J|(r-ADgG'Q!T^Kd`Isi¥XuaV#y M2?UϿ:*$dO޿SZW'4ζ[Z1j,ZwMט +MfeٙdcSKa_%̔h!t݊Mic;IdԬc8v9(<<QUn@<+-3Dttސc:>,nHyLd1@勎I +J.wD{Ǵ80 +ml+}g=>+ǏZ}bd&tE*%4P늚 _}hۗ!vKh%}6IY,U%:ugl_Lvil$"`=&RԳilEŭkLns<şjXb&5|kp1(2J.Bf~ICBZꄒ+2 xjX~Hy90q|A~l9וl:*}| 2!P+f(EjoJAbͧ.1T~,m/IU!NZUKeÅN-]Lzw88<Pzi^@0V9$9 O*Ѹ~`"IL!wW4JSdl.o^M`ZB%4:MQE>.JDhAxW G)3Z|%Ih +fd\]9>"wY/h|8Q GnrB9t +6/I0)YƔKjtJj^9!wX&ZhXWBXc u8chU^.&ڧss_ƴGiϑy7JF +y$~ yY|q{c(Y uʒ󅉎wKIxuԍ +s{+ +Uh +-I"vzwSyC +Z%^JJ˅m(g4S YqԻݍ<[tھ#=bvRW.Aχv6q.73qQ_p!O"PѧDVvGd3w!R%ڊ;HI XBeYKLp+pk~Itɭݒ6p-S_8= _e (* &}Jo4Z-S`#"8hVW9־x8B (*lJ<jwcSCU$ݒCbl,1Ԇ燤d/&܇?Q_ڃ:U 0I"'X2q7O9} 0ZC(8tט*y]erazOvE,f@4@ۦ}( i;sɚ2XQi̷v&y JsoVι|SZϷ~hl9|L 47?Z>s62,0 m(G_Fv.lN^9uڎmpMD-k +Q C[3{#$c xZ2h0xPb6›Ap+3k[d+\]eJIl6 +N9]ߢ|x!Zf[ #Ae$﵂iluB#$D-TLv *sLI˅zmh-=i_|h|ˉ +SniͯP;+e #"<6Ϡ5U*~enI.sD|!R\8lTy' ~S ?~[h1~F/Aݣ1ԶBo/k:\y] V] g3nќ(UVC0 Y(i Y4 +(:1L JKuZB HOl~uL\9Gi)r-940sy}$тfF `RҡJ3j/.v8fW)|,6#Kqd?쒔ӬKAQax^bχ/PKhyTī:nY@D&gne}Og&'Tkl inPf[#fkx,"'dǛD+\+N6 ZDq7P^i#bY ]@# +2C5cUQ8Yv3/EAyO`; =} W0%aomζ +ӂd{Z}%rH1ut͒r$0 pJ[6Pݭi=I) ""$A;r*ۼ=~Xv `]tj,% hGH@ +}}4-#r7S.d1Iy"Xru Ż O"qsDKOCajgz|uKK2F菮њ ɀ^ED6^\7cmy FCP2`P=AS,qZ<* ]cX9D;n +yo˲lFn;}p6 Q &)VdF+:9@$9WT8ˣb"_@v|in%)’vGMLs*>nbiΨTtӘop}A/;{Mfo|aVUHhRfjf14LxG6 V)N(eִ@ 'BZl^>|x/4i`#g+~"x0T{{hyQ4(YRjoY4#m'lOI+`SOnJˍ("D&”3꒥^&HrxF[|ǖ3.1Q}7zQO#m(D@]eo2sDުJ!A0AP1iu^/&%(-z-OJ2LCoMJ:AId2Ѐ}.(o|詶ILU(m0p5M_HPw6ekv_P*^Y0VR-925WIwڢih߽7gk[WXnyNSGNJIg]mȄumFgBӰik׭`0$$k񘬁6d4\i|~H\H 5މ󘑴ɯg" >Gjn]N.&wP *evkDOR9#xng҈)wX?u3*TaJzbr$)MmVԴVo"i~@S<}5sRβ Dz+֟:ȁiG?St`J`6?F暍4W im^yBO]Թ( +5qUlA5.Xl_p-,6DN;][=GK6}Nh*-pocS$l,e+k7E(d|uN.:Y\[N$mVӂXab&MP,y/2[.9ٟ(|jd$Wf49(I ye3#5hB`d };uB@5G߭%͠ԮvmNE/)<V#||*W +f+ؤ*I(%(&-ƥ "4&ZҭI JGs4i@Y54u'rySIO\HT[UfMXE B{qku +#B +ɂͳ_P{[d }zl7Т;e=dW@2$P!Do^2##nr{,p?V930$LCP %N͕mT٥N_ØG|%d &#c"⹔ |AJoibxe3Wdx}h(-wOjI1ӖĮW 3Hxv㭐l-r V)Μp< 9d4d~2c`X(3ԍU {/[~4*Y7*B]t|4uvR5+-|c:95¿xg^^eP$dd˚ITy{6(Nӕ,q5)i<{¦/Clۘ$NeF?ʦőXϵebvd'gHl^GnW'Y(7eKKJ_=S:bϬ.!]G%wWU!Ju !:Ɂvv*T j,AlOҰ&U4Y棍7OBY09T^]T  =k%O '"t =sg3*yΞ=ؐW]qX.Б`SPF D +Ѿ +7rpPJB}[-Zs#<[RG" fme)#b+7Cƻ"l0d'l7:jqҞ:ziqBa3C:!*L%*1YάX58b. vk3BW5*WBQX'hJIXcLAvoDzO! +Ѣ~7[U> +8h4V-ӽ:5)hG-i͗F|A--BPnX.|}Ţ!չ<gLu U+N +Vl@m@?]FN O)y7e{AB, v +kF/$Bd*?[uwy}gzjS3, UD&oCT95N4qC_u^l T싺=C1(M`P%$j=؀{XLQ~άЅ/t[=xhXӵK#RjcQI|aװX"6_電fqMp% n6C<婬P⊈ފ_$pq,iaotU\~DFfݼh];n_؊Wm,X,k ) Dp+P-<^w)ZUb?5Dn{vT-dL¥TeM>HnB~O$9YnmhBuǓ7oZ#c(Ɍ֝=Є-Q(\8+yVbgsŘ' w aba e)=+"%V9ZKsk} o4^l cvrxB1'rJd|[uoSn.IdI/Fx5 -ptPp1.;P_gtcw/vB]ASQS6Q PVRj]6}WM%|v_%% OmOG */ÝDnz\ɡ#܆&,"9]͌(&)e+B,ʞ=#wj.PMnʈ,K/ш8H0~O>* B]f 1ݤ$'EA/WThwϒ0PR<@`k? ĢziLgô5[1TV\]t>+w%~rl؞+HBմl#3`R'6vU&/AM: *Jdp<:X ҭJ!^WF'N.(>Ud&3Y)i-r<} pHA-ق4,G``Yi[sND/Uy5ͮ;^ +qV +B;^¼W24TRsjYˆF9))C0ZSZ[yarZ[3*{t[[19?r2Ye' ޷l@>5d ;fED m*eK.88^SkV -Ԧ"] *`13Og6~X:Kq-]֢j"Rgh--Ics*#R(W;~}nv1 Ӷ.8!4 LvU@|go~71jd^dYv[Gf$a OP%oa~_= 5/LsTL9ui *,\`{fTH%2t4vz~sr٦=A%C +^lø&{&6lM~, D`o. +ٳ􄞂QӔʼ)i'`k pZUZ(\&Y "b_4 1"s_d]H}_u"Sd$8!wCfy3 [1M462M?v!o)&/!V +: +b! %nc!{ ?|Vb[ZY$˂Lj չ yfx)Z+b˯]䍄 +7F,9+PGcDw 7Jn៚f[tbU iM =d%w0Rnk.Ac|xakw2 WVP&W $*Vwi fVhKr;+| -5 @Mˀr `'EIQa?\1_DtLJ)]Y`*-P(4L{/}x&G`N|v yQ"v/_*rSMl3\и}|p^$X߲~JcvKpi@@#WWrKBJ,* Qh P ImSJQy& +0͌AG4xI؄+].4{[~NCN!mSX.#yLM٪FYc]OpP eCT )-K K:o<C4yvѤ"/|GsQ/"s +7n.)/RGǁႎYB +p W~,+ÌOUGb4D0YQ& 4yE4h䋋}m9}:]ZTfL IC3Z%ճ͖Er l@ꦩEx 9"ݲ[s;6Vg@)ޢEd{Vu|{β{[O*"Fh\Yo2x/웰[zwu {Nzwxx"Zڽm^BG +vLiJ]N cGm,-EnȒ1QI>K;_b-0-x}xB +7E0? /dႆ.l +u%R4 ֝vkyRh}M ExVX)I+PVd.uBYAfIXMə_bo~!MpyWP5y&kb5 TaFj1^Z|)u +KuV l{s>α ebG9N OI%U_bZ|, e~a !@+DlJKGF +,vAM}SxwpI7܃n̔x!ۮieAM-(dSAcM1E1 SѸQT7mkIj4j DSlEG;5۱c=]A]^&9/$,CںE&$IDtGef,Ĭ1Wd7fOe@"WȖ_u +9mh>`"g7C;07|}$"9,'g>PmYފW-q1 ?Vp4hOFdkӞji7,*uaQH :3-;Am=gc\4>Zt@mWtdlMLє ۆ +I]~B$r%)n'0KzsK%)5` գ CX9&M^ݣҌDsσ9ѵH]灉#cCaJ[g +ݰ{oG 'fnY!ՂJ-VdrR8طI`rF{S1߽iO@V_ eN#s}b+4Ԉ.l^ qߨEXAR3h2~q +q#-TfPkܷ!]4`^^w-zkִ D+]^Y:^wD)-iTI!Ս"Edm d6M9a# S-IdcKrAIʲN%ݽ/W +(g~h3v[3Y˙)[y/_nmM(EpldotqZ#u{f=uc2›tey֋UJ3@[4f#0f%C +I![.|gKeJJ$kv,*D6BB:xGC۾FS۝-<-<yq(WI0\ppLC8ˤBeiMnC& ᙹ1(: +twDZ$f3Z= B$h1{8(T. +棿R"*h p߽_1G&=RYY~q5*BE0s\GayN9'LQ~6>ؼ>Hi$iI5BW/ _Ꮨh%Z7fz`um-? T68fi{ b`\L%!?mcNCiF$}7;X@-F*eA_PUH{DNϻ&tznn<h9g@kd4| b[vE<ÏdhTM(5^p(dj.YB̟ +I h yUBFJ)9ͯV/|cТ3mQ, | ,8H &EJlf-+ix:=X&!G.iW-M +W4,2j,=Ӈ)[$"9Ӵ1zB~|?Luv+Hͷ,JNX&$% zD9!8M@37ѿw69HB:ZTi/Q牒 +5VB:Z\Q;g,~DސE%V[{a^sUj1f}A +Wl܄_G8f *!e'ZAZRk5ͱ/):+(xGsހXHYFv"Qam|H d*.Cbı_>Jmr-(Fx;֗wKarF"9bW-sD&R Y5Xy`-9N /yC҇Z*84!hr?Ir s +7:zb{PBۥk im 7?(hDQQV:e +!g.CJ0A?(~=7EbWD$٦mc,uqd=)ұ(Ȏ &a E !y~/fyQJUdCRCEXE _ˈn Vj Eհ y.\;kag͑XApV5ƊHltdWؓ^8g4KB/$X&'.0tyz~)_zV\uOFoUj=91 "Ud(o4#R+TMYi8,'7y_bc 9ůPMEwL\9Zߟ~#>08FXVrsu-@<]g_GB̝k-f7ņI,˕woABZV(*2`(D_#k/2ZdˊH4WLXA +O0{ lTL7w^6[<-:S6}hz%=񩧾¶\[bâ8,PŘhؿr:\c.giyI=]^r*___g?7^g?-O?yo+_r+7???zoޟ3o/ׯ_C_o?Oo__/՟xo?G_]wo;_;~+ǟ=g_w??+? _ ?_kXodٵ_P8 ݵlKԕ}*k[3 ^d7|8&ZPv?'! ڈ?jPk"7 +h@5ԀfP~qUP̭l`Ғ07*g/5.]LQƐ5J.x%gBdfdOSMOӞ}Ok@-_?%Ĕ…xӣ=Kky86d֒cEoDFA.,`]kFY;W1gDّOtfwc /v9ݛ}mYK8if~_ds hкfVBBC2 {Xpf ;45G : +H9*qn'POm bx@ B&+ 9GhcRYΗ4Tyy0ao89 HV/dD-TL>ݦė<}fN?WjUDhGi瘠߸xv)kt!]A:OzDSzړB++=焱eX"hi|6y)E6= ߘV uZ->70* \k]}bcxŲ@sy[{}>mn{+M)z6ӹakN%F6>D$;K?Û> [wn6?,ˊ3x%#+yf!-O#2%\ +41p#%W| `_| W&6vSgoޑg`ij#y+"' <Q\ȏn> rI" 5SB7rA!P[܅l yPP <3ɘ&P;mWE|?Q4Ӱ.Jf2wghG@Kaun>ǡwHp FS +.N3O*NBL8Sζ;}t7qmDfHBdV 1FlcО.7GL9r{-^\Q}[뭰HBҴU߰0ҡJÅ}h;뗬Y{ +@84"<"6[85?71LZ_o7y9 ?1IPx.;[7(RkC6~&Ϭ¢q꾉~ʤ +[J<!Qk2O^)vZ*''VE tExff'N :]y9_]lm+GT|td[?_KցV0tΦ21ltlG+Җf /tF|j>5\}$6K e.p/7td7eGiLZ0y%|ݳ0{LduN:K'G@^|J*ʈ~@P" +6=M +ʅ>o9{S_}Jv*^uat*y'fpqяM\|鉳U?p̖j=Q|ntA]`vdzi yOy= ~HA |ߞ盹߽e$F}k3DKBwӊ=RO;k2;zbI5F6X<8(#d Gy4gn,j*T⎝Ȝd[ү+JcHO.`Q[z1 > OnR\hwfþ MkGUY,c+GWgC7!0Q)|`Gt[N}۾/o}k܂oQ` pV{^p^ q) cY^H0˟om+ P#`Bk"+AqL囤s-IBs8tos$Ci(j_n]=;QA!WTK A!T4XIJbH +2G40Դ욝}+ƋmjJI1?\pqhfꝝMoe2E.~c4J4>y^}{u\ңQH3%f-k Q g勝 Kr+TR:! AWdxYt1 GyIȇS }G`ŻeY+•&@ʽs!?9%2۴얫8(W>%)UوY<^6-Smu7䠥$}j<~4p2ْ޴i[A_ccNaOM򿠌 qKLj] ~/(NWj^'b G/h.;8|/N`L->S0V([.ap5\ KVl+ Nj>WHҬ/-Eqh _~qѨ3!#,QD )ms:NMʥ߈eW*s{+{kY0-b04EX##sx X^HHS:\3(dj/Fa~-T"?Uѱ۽cnH1)`a-9аKfFJㅭϣk\T_Q~kF +p<5Jlb8cMӴ[3}Yv +>ocA!3ѝ9Ϸ0>:e"joHx 9D<2c $pBE+L5JJ|1AJ$]wt(Aye"WVSSch*$.gL]6Z?`Y^hp|WpiȊaL?aǘjF"֭ɏ(3_ oyewۊΟkܼE*$+ u@֗'(]n5E @8N?/湾om[YfkښsoMĵYTPisVadr<>EQ OU8V&hqg +C@CoQ@0^OsC(X:^ 1g)f|\`6@jbڙUn:XsQCӍ{Og~wzSXKB h 7 /ӘY"ƒ\Jܾ3"T |=#8t7ExU#9އ3]*Gva"X~.S!gqgx-N;=3g;;J-hMړ1/HF`\`]E5>.chwbkiUA2O -hcIdl![.\^܂@84 J$ؕ߻E65xW +yÉ]`al5Aؤ& 73 + \ipKLaBR\^a6IAyੌ% +32@8p7Y8kkYIFs{c2ѹk WGFѦ9n1DԣrjZ]ꓽpf7wβ X>.xhW#N Ҭ~ M9GSbZ`9Ju|?AWgn>ٴ)ڮɴrmo&<-s#zH몿:@( Aj,\R3KwV5H"%VY}ŖIFh\ q<߲upOY6 KuBZz {Z=%Z x IX*hIK+o:tPGkXo9<v5 +1aGtšQ۸Iao;'xcS<+%awv!ʔ +NTIrwIɫPp$i"\<̃$ӡB(l܎Qz)C'6>!jg(l"ޫtk>p9/[K*ݚr(#_(X+/H9% +ڴ\w\ugzܞ 6T,2k#nHyGR]HM-p T-dLk*Xra'md0ǜXZߠ'?x[o9ptkQ-az7,H\@>>SX>ǠXfKC KEx@6 2GdDc zIͯkC케^FA^i`V0/~ZO~En7Q?~O)&<'i(<u!PH=YO|TN|E[!ZMUЛCoeh~hq1S0@>WMhe}, ++Q8.Zl :5^!X >h>f χYćM9ɳi$EX |.ɄfT<MȋT*g=evь[$[4,^X&hE˂JCH !QزFc᧋5+AB^S[{e{WDxNvs4l< ˅MB@?(= G;[&ٴW ¬){r@ʐ]a c6EE5@aYr!G47ְ+j5Fzړ)?O:%>:ؒ%떂#FT-iF6Nk=}+9nSB~ӯM (--ߎ56(#oWxT!X K!eaa'7 fol a6IN =D4v|[zbBU9 ɏCo*`80"B#ŗ#Ml%L wJZKZZ)V4% Dj'`7'7^Ibޗؐy"x!2&ϼX&hE$Jd #`SؑL"8L@SɜjYLP*ǣݛW5=-qj <盍Ƽ^:m5^^Gд1a|^ߴ6bp.MNSہ<!`k4^ެ ܟj-C(*ȁ*HNJKy~:r-zXo")GjXqt*4~O6fɕVcieXgycҷ?)aNp$C{9ʬɧkVHĖՍ껭Cl#p`daaZ1[C%AZ` J x>A# +B5dQ\cB܄[e"RݻZi@ +u!nf,&an8lr:;>s`r/N_hw # \ƽ,#|s^QD=ST6x4bD +vxŨU<4=^Z#Od!$@]̪<)·Y`hrƓdvgD'ɶ"L l$0h{\Xj}qVdovj3dhPʌyh|F+0jXaE"xD]M^t۲C]gxܶskhCX_}.8VSwy6|Γ-'wTvIa$qӯNlxs +\ 4J*t$|d#ď/[,dX@xhQiV)NWkITq1iFNKc ď۩`Ͱ%p@P@9/')szw^iC~Ån=gM^ +˅mzO7bӭFc +HW:T-t.hc4጑ @4z| G!^@Ao~Mٌ[R{߬W"Oƍ1`*I.g۰bD6*(6#l!gdJ!$I6I߂7a5C`:܋r։PΩ/|Q*޽,xI8 (Zb%R-w=<#g a[j~8'g/+V?aA,* /RDiфtK}$'GZ$F@o dzI"{4(; *l-Ay🺲0>fZS砎l)LN)H'F3c=0(l b 7_wxu;Zy2hTF̖H-bvmB-dX[wlTcc!̼~B p~ +\iҽV +Zy[*uNcƸ[ +VH ÔZaF4>=7^S!\S(ԒM %j u~l(5_ޅjwC %=bVpK2J-Ќt[ ͌/tB  `oW?1C%_yj8`ہW,O&Q_%~io74xxy_䥥s l{ -+ǒҌ<-N?9\qԎ1i4ecÙk}C;x$"4Apxlg}HDKC~Y99JXLQ*qj\}g5ޣdaA]C{;23-f)]jlS6ǫ ^RH/U>Ӻ^m%6F3:^__a3y=ض?+7j_ + =X6ո%v[ș \ݾLu 9Ӝ^z-Q*y}!r/7<orakFL׀=3cyArFv]^rRLX.dױ +Z<9|j6}s?@ت*ɜ;|e^3@ޡ1_ 'F+%8fbL hon=Nz Bh + ;w[M詞ͩrV@ے5 ` אz=wo[r k,Rݞz\] ai|z+)s$izvj'Г d@kP4W^cp; B~C \Z ABK V"łqU5%zp*la24)YV$I桾ʃYk㕻)d^em|q)G^*m`케@.PM~jH/@Kk+=ɫ[[~DFECqr +Z$J aOۣknv{ἀ=gl)|Hx@!OC2֖Ih#qÉwC>dGh9c1ql$!cg{K8ZƮtvoQŝB"<8aQ,ٵdM 8k&bv?(? I(@8̅:c+zXc;9@PKNjv0KnćJ+J&%tk.`PǡD5(((M3~hP1 7iWcֱv$ƨ3nWOHRj +9e)JFY:`Gb/g',@DR{_j'8s^3+{˲@ +fHm(9y57y?{kF~pNVav]̴: <0zFkm |2Ĥ5"&!7nNDme.]N%h.H/͘}cr=qpkrL +}C#<gi88j[J!whͣq D*TI^ 8]\aXIZ +̶=ǵ*fUhмbHFz#.* +&Ve_Eoqz7%}! +0*ؤR tw[v{"Y]?D<-2 poA̛DGXt/nO~ԓɯgoY ڨvk --xp 򡐘6f_V/lz}qZxAv_ +!&v}ӕ=|zCwbHoB`dTc$e +,㾚!*2#}BM&X)X oöoaȓB dr!\1;}<0E+|kOdlS~dqrEy8<ߝobۛYGu3IΩu⭶l$l7Пg8YX|NZM @{b5&PYh +1LLjJj^(D=5;zPo,̹L.hr?Box5lsITY2Gx!GJIpn|ؕzԯŠ^ Wgs]YR2 /D+|"<i.2au{KaMJ_l 9aA^>#4 +j  )s'gvZJ +y6a'V%{N]Us5l7'f$<VD(M˙<58#oP+G>E2~2;M SŎ\ބhHqŇK yZP} $)>v$JsJ% Z^L*>nϧȒ!aهƷ , y +| +yC5}?J+;xzHޗ ~)[ ƥD*tvɷeNC_f7X);ęjUO7"F_3 +qrǻE2Ұ/33*ݍ71ь[aH8rwmQ7;/k\o?R'n.t6 `pVY -pYrug-#w k[3+ڣU9Cl@~DF86~86fGz:Vf[Ъ >o>zjο\H“q競oގo8_d_ZT;xH:Cax(p1A%aCJt! Z=rAaL@pB7Vj$-=(mgəF-P|*6sTa̕¨}a΋;dKTU:a4>͎垱á!$C# ָSܲ%eᡛ5v,Zׁ$wՊ `Q 5L5N~'w=g>\!qRg~`Y"po +ykkyK ,0Kf1`<\ȿ`N;麟Q'쥹xE}N +!^@l +[KuinJNmWvMXDx~@]p>5~WNuGփaQbڣoAr.yz5O]PA^Տm |}ϕtmhw؎c]uI"ׅn@+PJ޳c=ݝw MB'ªTXrb'Q?ڲQ) q$pJR=Ξ_ҠS}SF; 1nd/^pZV# C>M}Nt"hR-d1]zColuRyJ=죏BIJs'i=5j Z#kA?&Ӽz+)H794;uU|Grc/p:Muaq.֍M$`!K M;zO8i4P'8y|Ǯ}=&W}DAR`ZrkrnsDc͝. sOS}=Z9~b=5rBw\(팚hy?`PQ:.@ī~*8[Յ[ /=7msqCdd%ʉGlMuѤ)a)x;Jrtύ&UFÑU(& k8|5E7z7_!xs>,e(n3y(hd</y|n!t+D=CSv;փǶr:ZAyF!Dwor)[Ukm=x*{gQňN!Bbayh ($Wi涏[ܴ!X@` 2eeB璇&LσuHk;*D¤?+?]O㊝7=~I~IYC~|lIt ~_K?i=NJ+P*1|e 3J,ݞ#i - }YMq}9L0U}{'#۾7j1Q[4I77^"` mC'NW1d,p% >90z}O41>Ǿ`׏mV#G'{2]cB7h4[|*F@oncw^ẕW! +pȈ+x.dypfp8n'1w[ؾȢ}_ɠ1` ^ I ` FG7Ÿ[)h]uN޳@-PLSoy2ny7 /j؜Kxvl>߰^p.;6xwawc1ۯ~s0z kOdP2 ф_D;'b!8G[h:ZG {ʷo^L!/Aݾnj=5'P凰ϖxj_6q?KN˼o沗RhōtΓ -Qs~/dZy6k{W:@{x%hq=)"SL9pr+m0X?W_BQ7v+ww#Aߐ \ j.KL %~ѾS|k-r5f= ,:q@l'n%^а:W,R˧J߬_F6,&x_xݥyEa$B+hՎ+m^O.p<oN~zZ Az8P]p}o _VzKЉ\. w=kȷ9$Gy7&x= +Cg>=}r}W`N}z{$0ɾ~zˏټ,\CJLʊY#ҁhkcI(:*n:nsx;ߗY4[ lQ{l=V5$3_ZgN#~<} +D跖|G%W>'ze5yҀ&E~@J7;} jM[F+#ZQ@5sޞgfY"@^B‰^=kHesزB!hˀ-[D3' 9?Z3UWճnN޹뫻E8|:͌h"8Ic0lԋMTC^Sow )څ~y J +Bo`%&db@aЊ!>H fSf`cQYa֙/ >7 Օ$2I +nV@Ɉǿn:5[nKd9JƎUcJB#LHB6~ŮZHNH(] jB#Q(f@+5"P%ɻWk}:cB6E^oҋǬ+冥/^I~n#rYt߉n6Sf--`i7t& +R^kp% zpg8Z)N0DzSs8q9 +! شͫ[McK7?Hxd ℎy+9J࡝— +@bԄiŧ@0OU vp&,4PJ Z<)#MbzS+`JL@Dʟ#fs!Ì5n"tFeY@% {Y+6=TWKήa䖁|u#ZpB`Ft`br n='`$+]&A9dUMC,hR?%1Ϳ']b%r ~1(A> +:Dzk9m:8VU\b3%c3Wl˸)[IqE &vSk7 e[OxJţ@KmQYM-"=Ny蛑eex5ckOzKh䝑yz)XH&\tt\8+ +G]Ru + :(Nq:Cd.XZ{anbW!w2>v``H/Xf ʵ(SPρcƲs|ZҶ^n5k<J +7/Ww/_6_y4xְ?a܏Njۅީ_EPaXJНm(`DD_7؂o9u )jgݫCĠY3Ÿ*'W:Y.iF 3vaTS悄G@̠ۧw 2S1ÊEkR߭Ag H(Ic1j/H>N^P*<p3X-Ō)7 18>Y:f5b駔Uy=Kd#z[sS܄V7K`d{sMp(csry>%9/Hd;\Kq54g|Tz܁.KNC{̊SE1̬:I/Bs,:m_*Ķ&d`S)/Ao@|?p<nf^&8ך"\Mk TMũʮY^GHq>͗+QF2 MJ_4eG3V|G!-eyš1j[/n @+xJ3?'b-&> $aCW- +r^G#a%NթCZ'䲸b:5MPwtp 0~DD(qbQ[)h--6<\s#>4X!ъ:$Sa.IXN_ It a=UKSNZ*"ZɈ];oB  w> pp(l<5[ p1i ʎ*@c2ӐKmĆOwׄ!fԇl/u^K~p\n$u$Z@{1nF`z2uUz@7i|<-pC%$RONXh +1 K1:ڱ +nyk9 @ `vyQTS pMU׵>nN9ē47rjUXV)(g.zxl"{1n ]-p㴵Ue`@ @@tK]W7)G2pңr|z):~e<fV+c=ڔ8F*0LϲU JFBf_Kَ`+z"'ͬU =T.]3~nQL4U\,,{ȻXFPD*t3E24I5CԻF]m`0zacANTQΥ^ȕJ=~73E1P4 +xP%AZD-]D]'5B;mNT̖@?]=&mjivzuq"6D@ ܢ)yhoqfb)Rm-kxIp ׃OHelHUnh&ek +5Ͱ-X:2Y zqB@? C?tڔHE(pH$׊ɟltf-2UE^Z`䬡zBhJX[Z"fƳ&1TdQR($a)'Cúcv5Tp+x"nvcGZXD^,d֜ sz}s|yTn45ԿEO8`1cҮd " FKW@ wc|5aaysܕQREUd +wQPLsIлwk 3U}|&\>nws|_f. +9->J_W<<0 k~BLe۱uW=@T +=@F]8$^O)Ҩ +M`QWa7ceP4p4+wSk%0`N(y e+kY.[*`(vpPʘ;Ѫ6Yc'{w ]1SXyTl*Gb2!v^ΨbaUy'M9/(՚dRYp^As;ڌ5}',Թ|őln`%&e.:Ԕf3ydF(``#DsQ/ 3%q~kB =|''Mʼ*W<,(?.}jۣ3~2@96y&6Thuբ9׌A z1=.;t-rs>T`5e}4odށ cՕ<zbO2o40ăwTҬ݌uh5(MTUiՖuhNeJowB)i;N@b$G#CxuB8ixSaJc^u3GSOwg}QjyD5OR y?Wc̐ޞɉ@72(( +^b^>%8il>(G=[c`V 2XT6$S~(ɤJ|}`m9ɸQzF.R0,8/!@8`W+Zk~e&4 f$J4,(cfS_(vכE +4{|N"i"0\*J[1>~J(em;Ѝ"Zi YJ&Z|W[[.ptSy6j'c1={2[ 3f.^hdD~Zvcb},&b=j#&^_>jqA6_WAl@8H}I \tCW il(ĤaͯBnAb>1ԑz)Za"4=!;.:z0ި*VW:qҾ h?,yeW|lB_u`Jz.RR, ^6<χ%+|nz'=@C^ct=`(s /J" Sw'4n2^N1-$rA$s1mVW4 R%̥-RLG{" "=DxK6ϖY V:z֫E`@`;ӫ }Esj5lO?o'o٘_6ڱBu/VR)`y_lM'a1ߞuٻsT!" U6{xZuFY + sD:mK?5X Mx& L[3_2Ѐ-.8=x06Txkm-): A2_{һE/dyu]L]ŵZ9LG)k> T0`d5Q(Fy*\i}ufTӒ[뱥&9hn;fvۧ#`" i✷c|o$agB '\Q@ +=XIA7eh޶zXb?*90Gy@X2zǜ}P!"o؄N r*&%Ē7-.*DEwCFOjx҅9=гjWI`2+VCsr.7˺'u ]Ϭ>y-dU "0w$yYUlSt$HO^Ĥncp>K^z42WӴKCCVpe̥[nZ`=d!u+^N&2q]m }=:M/$?ߠ0NX>CCL Ŧ8@vǵpеVL?%RQcjbs$87khɈ/Q#u 򷋫/w/!\m9ݍl3JtՅmݪ[t&wYc"xA*ݹ}B %_y3 `A +S+\yC`*81 m 3h,C$ - n]R'_6ur_Z95}c|l4kt irY욨E1DvY=J-~Ako\#;n߀Qφ"Tt묺^u~یʅYǸxH5qs04$W-uTO&w x^I}}ܝÈCA$嘘;x2nݫ}ɣ{}pZv5G{BA)$nW 0 n捕1-@ ,tkjb;~݂x Xx8u%ov9B&@feׇTݐ^ZTu_{iQګG*n kߘV0ʜi6cµj W]%c)*WN?%-Ӣ+~r gU:6Uro%wxU?y|r4{~[]9G,EC% M]ӪX05deTv~ZWyUfJ-ots{r]{'jơ6rZPIWz KU+ *v\fzOm}j]fJd}f,}Z|==J$Y =ٻ Uxv*{hD]24{WOcOw%U+4]6:[ωOwa?/KOwerU te6d AG$ +:U.3E,{~^M}_!ZiBbbe@sSfΰU:be6Tٻ?J]=9im+g}Pރ4@8.iԲ([uk +UPכy <3z\wN]< eȮ~Ow^ pjܭu{2{pukޣ[l>(R Xv٪iCPY4C P̆r$!=li^KsM9 ;ٽY^F2DTTߙTަM6fL]uldH*ZB nC'-򝱜Lo!ٻxpF]9ZW@Cg?AȞ f\" ƉF%$7}pzELpZYo]Y+o]ɵ_Ow, 2{p=FVMx2zsGFOw yo2fWThխJ# +};k4wD5hiJ JvJo{I_+_%z|4,;~.HsOOweJޏӲ0M/C|?_`swN 4xWNv$ڑگ~8YCMz80Od ~xrq&Hb&`~VbC}Jn^ء܎2P0/bi*0T=Zc\o,\ MwD@-IW +>2 q貘}/6<\Bovw0Nu6̔H `:HSzGKh|rxQiӱ݃_V.tt=ؒ H]/H]t?2,rs،e%`XN{3?Jʬ_LP&ഩL%LN wP ]6ҊeHOweҒEnڼ"nl50$k5`?B j5Z-x[E@~W{,atE~o4[ <oio<<7 k)ю.tT)BD:^>"}>(aa Nl0P"t~\1S-#T%A+k`,%I&b R&92~,}L** &[u@S` dG*(is8Dk[j 4lIt>r?#/ p< =p8x9u()X1\Άx0KBG-: +l5 ҲaH|q2zYZf@ $T9p&d ā$ VW3KrB?*t<}B,逤:.K=,>?6xݑm<ȶS* tƜ]N?#GdbPlⶀa6CyˎUl/&dsv@IВ=I14!ڍj|%^F02W +9$8Jf67?kzׇlw.sݔ=LH2#戮v8j@iLtw6aaBIFmm11&J9P:OP0$aSVW"Yr=A]׹תYL4Ry@Y/D{@84v yYx$/ȲIԉ=ty)K&:Ѳvf;#s)wH.cWD'Q؄*T: )4>2Ye^nn1L+} BJX>dB`hl)kO"߬yW7`qZBoϡHpLAP"Ƙ?!*JԼH&q`X[.. ף +6Z.wZ+©Kp 4r xܔ|X&1Q " , P$Lyk-l74%XŊZ at4{=#_ȘAJ$@kCSiqՋVLHJ,E|01e8mآ2zvY|z[&GH8j[c7u.dE0;1eΛuZi/\LW@hd+1ar֯PUW 9$L:O"I_8Jp@L;~ m7ѡ66~7j+% ke7ng.Z F *y hq*S7NPw7w0{sRͫK X]*Qr +:\+B_AbtC+6y" ZRq0m0Tl]+2"zC MPlr/ڨW#-]רG3/ncFcwoO@@qzD?dؽBwb9<K7 +SZivJ0%Lm NJ>sJC4ÿXHߦɺ-6bkV׍ Ɗ oQwjJ}H;t5" lYm\^_p*z0\[2(?: Zio J[cMf(ƜFǽ FS.}!;5":gf06ght6xsBht=*v,02: Zro +34 p`;{_W1ۀ)u2c`7^ +nO+ꎒ(ߛ攛"#j.ם9prB|Fx}&-[.Z7jo]V:ڐ`d(#lb$U.o*ަ!+ -$Ak$ +(KMC_i-FcȵJF|K;ZUpܪE9O&uBJt^*HY5Fʚp{T`;q{?nT6#!A:G/@m=߲lc7]9DhRf06lǟUl0RĠFxryoѳwB[f06uru~2FQDЀDSf06=>sR[4v?hwԣTyV s݉m4z8GOWtIIFy^a4m0֮bc2tZ9-wO¾d߄XXɺFدikHB_I.u޼ +3jنq4m0Vi;4%Ny;4T!LN:IOC94}sJ.6Ƃ軿nQ_C'/96ti_YgCb\]9 *mH/mB?yt }Ï`j jY@:YʹfeVf0)E\}{gةx^~xOE'q^NoNδxC_m^_28rlb;]Aj'XwHB9A] /#ܙ6o@,; d`}wW}Ǚ_>yFrxFATlXVl.x<]Sxju|@m 宒}#~ ѪR$K|?\2}/^ˆc{ + EG7hkG79]jf UKK^* +BM:C9kW `TzPT~,C-W;h#Me-O/t83z>JT_7 PB7ؽ*_;`AV&x;x_ur˫f׈cβv!W76DL*b>avg3[bt!F)vlwu0hM rA4ע,% X}o3JD3I+lȼ&Z"C}sJf9,INuCwbl! ځfƻKφClD0)EOx;y ʘhoB +v[՟J!]O͚ 7%.qd,`1!6C'S9> +1-OQTP/)0&2"mB7%ބ#PjZnRXk,G@K|[İbr t.G)j;G%l> "@%C&Y5%jD 2:sq)}&j0j`"hK(*T09E8>xKȥW.D1 h%3Z1sS!2՝ L8Xyx)-5Tr KaZz>^F.]gZׄb"A +̄F%EiNg,+B^)A&F$Z:'Vkc,~9~OBRRKѭUoP@H:ogK0!U$(U'BC ,q 8@DP 9`%ª\0sˊ,BNR"9O/P^;a\|@8\X GJc dIF6P (%\җ5#HKv8ycV~+ˆ%͜i"kK@Ә +]5j +&DJGlbNGwD8kx`|d^813\ +DžQ$@8h]E=e@|}"Iy'=XO~$'~2V0I!0%&F3m9.g!kŻ fM m#M "UMH1=V%#sRi6Yz(==%k*?L ,o4LwPáIG2am1h~h|d^kn8EW_d3^8H13rL:o@0 5s4p2 +- L* I=zήT ~`^.NL$MPbizxcs\pͣ]-*_v5|Kfƴꮉ| "%#8ƒp{7Nk~&4@5UR_ DhQi5A4aan" +Q,jy=PW|9]*Djevô# * drVe\.;I;1 }\.;ع:$J)Nd%JL+Drh) TX='p'6N\,~b% %CFKfXi{&nwn.ot!~+?2~5b"AnyБA;~I=#tcHy5BOɉDё syy͵ $9(G!9\VAI:#gLs`NKd1$Ak6Qn^fRA+"K߰dto"QNvڼIo95pLh;mulc9#֧Hn`=}ȹ>,pxcS,ƘNH́+%udyCXvܼu&׌`@oQN$@ ̵ $%Oz>,d3EV EuJ 1v̔Ի*HNm +0oΠV̈́ȑ%H̡0!j"[[4b"Alkm$`( O#GfBc " @;'"O\ +MSJMɥ8)R.9{nm V) L BMTh"3vN :^70/< t;fx8?VWo% rbIinLr @1g}!49S2q⨙;Wrp*dwsmIJ]„8K ,AN$MFŝ+![^qa&4ր̭.so :G@'Rʈ 6M1F!DU@r\@:q{peC{ C {9q.ogF)J!sBX_VayHu"?& OA̷瀧gD@ ;ʬ{y1USurOZ#w֗ѧ@%k8p"G)7YtaK݇2->ƉPh/W=srLL_ο'bU痦qdb&up + DuJMHa7#udћ>> +q4?lzMl +څ/2A죍CIh>o_ ɭZLJr"IHa8m0 XVë/<<` `oZۄqH2䈟[[됢.Ղ>8D7Yߜϯp|% T`_ZeK~=u}3)@@oXX76egw^Tm qo&86X/^~?}y֐H"ͼߧ3+&`݀jtXd;i?WM}Uy.OoZrݔ y1 `]@h]«o97EEu;"jF9$$]3^Kn\2;1]xxSPS(]룬_ʻ?_Qlkؿ& 'pxo:d8! lD>| #,|A"L +sNz>[N{B97R[uE%A hi`b +J'Wӕ)%`$mTf\z3dO+ Q`"4Ԁg1KH P¦e'.Am#lKW&eDN|2 2=;8 ``Tc\QEQpgp6pDB}&ǶV[OAA$j>=|]+6_G}mJwk,-LIWhzaFnt$m"1U ^6SԄRwȺ@&6 b\W18;i QHQjR!McWvbǁX.a!ǁpa.+{[%ܻϠR8;lw@XYO),OL s nvr77\( T 86I bW)Dt~y7XLi.:55m8J*|[)թ  k\vNL$в܃-0PAI C}}vˮjEAS  d5q(M Q +Lۖ'q6WAb"Aa4m0VqRw3FaPml{-(Kb\'mVTh1%vdc9; +F<>/ڎ=x0kKxȹ ``iמjbzw372OkzEw?܋B\Fl 6>Ez)v۶Τw,# ʵVKдXL АS +ȹ P^>JqzxoFSÓzxxHrifm`!{;p[4L FsW7o!7_nw1״h4=ϸ/X#7@w4ב$o}ogNAMcOx XzB7pu~iƨ|Ƃb$@Λ@5vŕMfm4kߓߍ1Q JcHy,zwسTwQ@@uk!3ѴX 5Q۬Ev^ϢUݢN Sn9I4`}z@`/m/J5Ktsj=y>]ڢ抎g[3c%P +:9JVWU0ؕ]D';X}C 즛jt|U?vd ̯:(a['P1c[P<.E??7îz"A%>=Cͨ4X_?-qhSѠW/U?v¶J(iNNtrPvdSaZEO I2!{ɸsΉwUy8j9Oyaz I؋ЬFa&4&bsn[ǑGYp"4-ɇVH9kwbfiZvE FLɇRNX@ ;WA:3\Ƈ(5&` "0#@fRLysb605V1b"A]LwUѾjul=\dB@-D`"4@f|DGz.3xNzOʼnPi/.ZI>5z\hOc>.1SӢ 5_&Ci9Q _ܥ ̄S&JS 옙L#3 NB mVj}Z iשºH3Qy~T +LcĜĘa4@ )>دXF,FNI Y[ܻi +vPGm 4X_/N l'=`40)NHC.zZ#7e$li@ 8忾/NEO {S:k\ߋNFM1{/x=^^qɇk?RY^~{/e~v_[~?ǿWQ?7/IO_o?ӟK?k_ۿ˿;w۱mR 6/|oK6xkru7iFUNxel~"4w׽6. f=nw=UeK\h(h}KLDwMtƕSL/nCEj=Eۚ=,Л1ռ0 +gm`<;OkP]Y2{ +z4={"8WWA ׌t?t&iD~>D+Ñ3Hw*Xs|}?s?[w|}?A$r +НrnBcn_ i_ArnQ`$m`BPgպܾ|@RԪyL FD?o7nx=-5Wu* .0.ᐘ@~w2z\- ^?Sr4kȕy|]v7aV2o(wCT0_'(Eu8>Pkt4~?678x=. i.w!U=E%{^`u-3%0FtKTv$_;6Cn3\!.x^q;s9Wy[gJ<{UB SNfZ*ҳLdEd~/WX&BC ͙CjL]b9.vOr3s<>@/ݬB mXPB H S4~@͝^?X.kg9tWV/xȃQu F'Eو=-ˊ̋^Nlt}V[5w=ęX̼/z OH;ů珰䄷.yFtķa rAX#_=iϐ hk7k塜f<ޥ;YAT|EwF&^ d'cLP cG]C&n>;~Xi4i}6O_l56.zZɶiu\Tm4~lQV!b#.~n38uτRb={`P +\CW8$Yj |Oc=3*`[Q]%,{#CʂfSfs^q73,1xTs!9.б/ "`2%t&W*.zʹ!xVZ.Ghw ++R"i 7r-.x6$is6tK<5^n&6TrޥF[;kx{dib3*P0!ɴT p>J'7})pOH"Đ1CnN9AcODXtX$rE sgx;iDNyM CyMZDyHȮ]S9#-i7ɱ=sfڢ2G>GR<]VϚ6`7np~Yoق9tneW$O'$VkC,a<9,HbA*gOF4e55 ܮiU$؜}FL~<%Injs% Ug!)KlcQ8GKPsus;zž086+Vp< 9$Z};„6tܡf-mIkU*ƾ +fz~@`#FJ`.$=,9 Y-=,,r-jZjn@}Az6~.U*o?hFI 4OQpdb`AƖK@"cgFJX\ +\J˙PK$v`] 5ρmmm0WI_5+ 86m0m0 XZW 78XwG^Б&d(KnLac@ Ձ ؋c~< E j6)\K1z +gsmIG8g!`w\݂BEMl#w'x7{wPp`20lkn ŻJ߾-,pRVf$lW.Q@GOFwAm éV==vhlˈ UN-9 VD~¦Qq$6;} +5?i,1v.w'6DUJ>6u-;l?x@xGXڎ:==Xٸz7Mݚ6d܀YҌ LxkSz؇;ԥƎ4XEb nOr{V/X,ʊw }XN.C?]&TmOKXɎ' +1vO5q( +eG +`qyۗ@|?7Q+ź3A`x%*o Հjg{>)jNo`XeU::HIvɯKBO˱jaFmR +P_$!JW:nMy%=N+ eMoIuc3-bku#;?Ym@Y 68/GYh|(Lb7 43 w5xΩdLұau 8y!b{,Si-lP'&Ni4N86g],bM-̑MM`&K8wM=pvF+n3q\ ޑqnykJ/{7n}O> "-ގQ4uT RA XN%A8I^o#e^'o_1!q0)o0olq0SN-`mZ[huS5tOFY|W߈,iP}7YM[oi%,hat=OwҐzߊ-:&)cusk?ZqT[,Zϻ4Hspo +qaǁ>n umiu,=tԞ)Lۻ=}_~@9C3ӎB:R i7eQ,9$5V:U.աwFpgߎc~n6  }&#.RT%C WH O2g8HCxXI6Xo$I}7B89\s,bL#|Z&KRxp8 +8%TGhN?A,@˟}tsUeU;&jD $&ߗ/hi0h٠2U7lU/a2r)Q1D6ȼzM?>ҝn g1!@L٬H~W6V闾aK\oj%A״pw@N".Xp±4cf*?M~? ,>DI8yz \&1qDt-٫mCnWgr ߙ`hf#'F12U^̈81 ~yF@i)g2h=v@v<%0=i%I۰I+9tkzG5Q<$/ ӹk*8],AR06p +UM p0Uy+qܾ޷frvL픨&^J$0W%#6Ơ L0Iv5Q>!C_MqBzn)laWmvHͯû9g $A2pͭkm}v`N$q(fm-qv b.j\44$mx"y\E̞m͈C uLK.=O8Ho360.5+nfjVݽc&f'7@8zOz`uX?pu[l'z`l~ {p'*A"'j4 LR~tm?ʶxw?p1t\t]m-dgjLy(b|ǷolQmTi/ΜFޕ0vq|J5.#_rp"roG#=CW;06q~oBH(v +D} D:[&{ kTtHW5;%LN7rpJGyf{`}?y;kyk8&?;ޙX9~A/z#{ Z&ZlHUV߱3 MD2#+H(0>8mV17sjyvjWo1D̸jw*#MĨ H&rB0lP˻/[ +9(f +dtU9EoyP].HYĉ}SY4w^ODi;q|<ٰn +dl5zmsuvSc_-`h˵32O(:T_;x8A'׵°R&84_DXp.v}[v3IcO9`* 8~\%(_u ZuV}bCK߱ QOU+R6Wm6(}}XeSOV3ɤ v1jX(zvLIi1 s׏}/c("fs3ˍ<'ˆ׵>-'AҥZdr@jr0߫Bѿu{o7? qji4=f+j]NaMN@ڥ1K _-FRJ\xK>u060 8\;'S["/ws<#6V~29`3rlJ!c'yjb{ ƎPl..=u*9O&J64;<'!L*[7vzǮE- XwbGXl4m01^miI[* L_2q%MW>ݪѴX>npvCdy֥UZ+bڶSvŝNm CK짪$<~n5 +ƌJ>,@RVi`Q`oz2YnT? Hg^èGs@V.M_?Ff6Z WD@rE~ws{}A %ukdG?9L} Q), B9}"wiGh=fXs@cZ360 +ML/N{&˩whC- l ,^WC9` UF.*Uێp8Dd-W^u@w +N3m9t)oךr"C{Ӛp]C)쫑yRc`絁_2hPM(o{ɇJd9&T?ìwbc)28L0rF볒3gbmbse?31 \E<畐0H6ؤGv`2x#" %mqѶ+|LuK֣jQ2}mB zK6a!6?$UTQĶ # 9OYYL[km7JH6Pc5ޣQtmZV8.# @"aFY*džRk!|S  zJ{$Pm`lP:њI7QQ Ooר@a!rn8! q&6̚B!:5O?{3l݁oޛ߹O&,A=)A"J#")56Ox +PsG/G.d!ϸ0xe-$R}J,Х]Dh XkҔo*V" +Zm\InhA9Ǜ1 khGY='4nfo{ӑPe}loq"c1 "~Gms6p +0oHu'(& /)j+ɦ&jJԆ9(߶/wk.SǀdŮ^Mϭ[幓[eݡXsE +D'5$utu0Ÿ `&L\|G*iy; BU$Rd=˛+О& "Rī ykv-nY*`gb79wK./Za^{Z}s93&X5ijˎMf%=ЯpȄIl ,l Rjsw`XB|(uHUvBƦ{ j8a3}*C_ q8y:@X`%mNmRYPD2l} +-3rjy?Xl8} ~}:db[xv4~i2M_TS/.&w[BYV*άŎ2 uY/Ȣ㵁[V[xo_l+ȷ$\w0: +*g l''X;wvή"+C(2@F.C_ @b pKDiQ6GwTqj /V͹n86"Bj0v2r@+k^ LT"vܜn@^anêgM[pлX rzǧ6ضop8`Ɍ_.)#XUH\z͛96;HJ_f }O l ,x 7W6 JGiOȞ7M㳕Μ/؊O﻾܊]b5,]["eav _ƬU=)-֮p3& ,df3pmv\*iZtt g)' =ϹsSahEv%TpNJg6w m/9v?ˎQ˽E1Yhi"}Pk6 +zP9W;:Y^40ٵϱDb Ѐ̢DCqX @+`IE:D&gaӞlXc0 {5)콫<v>$Rw/1y_Yl&9ĵo~wVKURjfh9~JgRB A\]t|㏅68;F$wC&l؀DC'a +r]wa^Dsb;[%L$ ڴi2T⹧ki +qI@"ua+Ԙ9Q 3Z,eAjìO@2y585ce]c$)lpu; A tANR)W+izov;=_/tue5C#͛јrAbV8lP 046W/4C(1`dA"c\x㵁[V_宼zS[mNDҝ\{$ŔaҲkAg +<>pI-O~;kJ=gƌ- +7cŎG m;4RLPgC=g3ocgXeB7d_7iqhL̊c҄JVcn,&} keDӊЃrBQG{"ZĻ$o.sx7 #%98õ# +ӓYo]Y?r$V[4D.`-| 11~RjUL AKbJAe6rn)O䚔E]F yQ G*wo cICD*&.pT*I iZ%(RDB‡E%^XIB_jشNp)-VA$-r ^s&&f^@]^H{mM|m"3#c/X8Vnrk''r<+jP̥dw})/["h0;2ʺ:ߪ^e74h~ PV;P*3F*)19f=θ$ Lg\봁cRF܅%h]Ӈ $np{z[ XL;,FCʤYg'ż+MZy|瀾 Y.L#nI Ymk9db~YhZI]砟g'h'jxg|hJ׮4DNÙ354@xjf2okznuHҎ3=Ӄ4' mPUU$NɢUݗ. qzjs;,HRE 'yG9Wa,=wV'<{δcb({hd; AD*jq k'4W+DwRpX:'g;:F6X?oʠAL3jB:6\r  mrr*M:iN03@3A8p&:J", j]?^Lzs>swZƦEz0m3I& QI6fb+m{s~w3PqL0>BGѧ#D>NgIi7Umƛ׹'799;?і,Nx{—^1q>^.qIA$+Pr{`Ӭy?ҧn>;SiOY&ٰM߳|FOҷ0>1KDx*aq+ Z"yZG骏(]_-?9_75^w0X물~;d+#w=Ygipu|#Q+L3eoDJ:0bW92F`v6QD2fM$#/ [JzKfvNcQ7Z\/@dpzJz˧XÎ_aOh|EW,Y/(9cEP-n !+ސ^ +9%Rp{ozCț ߤraӧus.Njq.c%W4)Oz}ۜQGpP郎ckU-Iȥ#p+߫5x2JjX۪"bEɮ&_z +Znj|K|˓;3y^)pk٧A-/׻ +%3]QپZ +I--<G!P`S`;*hոZaEa&'.uB }|K~+KQ{c#2L񪣔l3(yI7k& 2r~8Ғ_'҅LO7G\Wj"Y.r"eQJTvx",>YǥY" 5ũ|{/Xl !m)@])yYO7cW 2WS$hq$aܼydF0jjɰtcW(o~?N 1\ \cĠ( P\}vJ>Fd,! ov`Qpt/m@5K3C/7`߬B[qsd˯ss7SFJAPY38.2QI(8b  @Ȓ@ Oe0 +'$uh +20P;j3a>M O@v%5(&*?(]!&EF3cTf[ Ɗf (1\p;>.Ӝ Jl]\]Gٔ +.&f=~7+' ߾urdX-8puVm)qP#:`> OF+2Ɋi'`=8/ZwfUK5TB YOu_=h&-]GXb,@Zwl-P5(S+{I +E31N%xOy٠DT$ζ~ݕF~|6B5P"o ]՗<(m\)YD%3]fe +s K{i|BҖF*9!>*TOowgF$u{>+ģ +SS'#B؟pa",@Q% YD4Xa{P4{%yxS]r kҬ)Rn>x3e%74&in,wS6#q_[=Tw Myᚳq&|ҮjMQˍKϗ!^R`;)1F ++(+9AH(^ِ͊GVv~JqE?r坝@H@D&h6Ի 4x#h5qoo8ý_k;ƒĆ +x0¯.PWb/G]|LՅ+NY,pt]&ӻ^Lbk3ꀹ3 xrfu&fw8x`9ٗ80:+-0ȷ*FvrTcJz Sǩq*KOD~OKDVd(mچ J}p? +J&:(M4bm5:|6Coa/I~NE +۫0`OKV-=H8|ŅWacya>0r/|0?^>ͬKk\·oڊ}'M (P"`F\^\w{3Əci7($lgo}0mSʩl[yE!.D@S 3xIpf'sm?+?n26ott}iߧtK2.s6%@qw7nՍY\[cL}S]NleZJ!` w?&P@r(ْ:7=9\@ؠ9_m`+DPDS&sGQ%0_n +Jt=jŠ=Bf*לy 1߳ =kys|C%XZhݎgNo g9Tko? @W@3_ba_Ш\|vr\pFrZ\U(( k`_6sFon6?˭Z kR= 0뷾=TH岳7._Hnv&W=`K4o6b`|1hL$Q ^E+VCf#U-l`M_3|4^c_y8wOs{)OoN#{c)Y3t74b^ ,Om#Sw؛S +( +%iaڝC ٤(fPVH;☩DX͍m cbkguyɕ +!m=}aq| +ۇ;LIߨ}[~GdT7( +8 +NG޵Dy}JL=`4( 5 | <"JWHa/uW'|%w]D5JU BxKҤ!q½JݎصʎWOJV֝+z,֫~Wټ%yiu(J$6ZwYh\t(Ŵ\St ;D?KJA>U^RWn| f5Gm% bGi)I7$=ve7(CG%Ѳy6X^&#G!.a/yN7Zm~lH&΋4iMA@( l|?ĺWdD~95ĜPS_oإate;n0$G,G]gh,)%E)5E] N50&T&l!z +g: Ku n-"2<#J(QFN)[e;f_+lP/ݤð*3eW/1g)1z汞:(9ނzjZ/l@j7ͻc3^]JW.!2RjXy s/@gNh#K'o*;i)EtV ސvdfhK0ȣ$.{_}=+iͫwsBuB\Jr Gb2^3P9\?RDMgZSݦ~rZel˔hM\VNѻt;I?F6k@+`#WHA\A/)QSVn-V:!(<.}LBl)^]5B,[Bt84g]8;7m%!; c@4) [d<m^갶;γߝ,@Ћ1Gc9^[(fg\n\K֟ + t`/@۫٧5JWklkJ~I%4" u[qZXwq.Oo'G^ϳf>հB0IKl/"w):(5%:>e{?-+.h%b`ǵ<9W9 Fͤqg_z[mJMjNWV(?}*Ҡ[ld3=JnTڇ +GaJŢLњ X/~Y+cE8LFd ) 艠gY@,Qm*j$0 xv>38ڿ7\9kKDfҥ !aR"3폛?yAiof1S ٱd5z#;Y$NhЋO*,FX}l :Y6 ͟ۏ2)L3U[V>2cSI8C(0.;F$&)@&uŞKӷ/m_c–~.կFW?D8M{I>P$}V5t RY0 'MBw0땘7as@xlX[!`CqTmpiJ}x?պ[y=a5]TJ"Q<3c[7cY#GJWsaM1y1n>ܐA~KCeؽaw6|⋫B4,+AV J #enNM Q$4aAA(Q ,n@ucz)ɞ=>PPڄgs-LFֱϋ)]_^ysdhͽ.B7(L0Q* H| si~LuAa +D`^n^-A+ac:,X ^xE>vN|*;{m#1!(P#h[LJo)%`>L0j Mf5N:G(23x3PjQ{lװxEpۃ[3.ѩQbRZEo-`,OiXB>tdq pf9 [{f0V'>Gq5E<9`«x.\J^*eP 7'xY(6ۜ9xƿ9fvJ +@7O&00c^P?+Ij`uV$|2TJOdz: ɾK ӝp|T1 h[vH^A0 ~͕@@%*ûe`܎5;EKyE4@1IEDg}+< \p:/]p: SJV*_/d38ZZs}8:Γt]UwsW0_b"<_STD&C8@gM8 jE;ȯLx1=7_-l,|b'>ƌ?H^ӓf?.b^(}Hg,: +5Ń=9z Zk14?P []\ĵcĹgy0JX" "R0 _µEۅLPUfqɏ``h] ~V­~ߤE ǘv|p(}yC!q#d*^}=D!ոD5%15ԜW_)wt(dx}%MW(↪?[A(uۻETD쮊D^.2mWѻU麈 0Gu HID޲y5ǩ&)|31a+_5ny;9V˨ +%'BR{ +V\RyK:h ՈDI,zmp?.]~m#$Q}E/ +sS@4xJnAE~6KeFZ˘L39 +)mNsXZd%(IL痱AIpmxwkuyw^;RlRME$͢JqĶ 甈 6 Xjj(7:8|}*x,HYm^U"OQzyBւDDIj߬OǂBP"I3ҼWNF4}Yqchk4#K> +gB 㩾| O{sӢ+N~lp%DŸ4!#P0q88jjR X8K}}6'Ucgf#J9X=ǘͩvV.o!{4ex\ȗZKy’1럒p+ZE@6t|dQT@fsov"T.y_3.}!IKmdf#oܾ͐ f6RIȿb3{P TCe.sps?Z$)aұ"p ̙y/8t?X&B/fhJ pfV%tf ,I)E#g@K\͋+Mϒ{Y㽐us9jbT +J J$e6MR)֛!LEA5B]a9KZIj鉶uI= L!q$YŰ_+mr m38xx>>$i X59]"nq#)sXg|Ǩ5Qՠ)\=e-H=^d5o_~W g-N50m 1a; V#waBk/Bk9Cd>|̽)k<|3pv'Ҋ7gjJb~ߗCJ+]FR򽁑bJz+TݿTݾ"+d؂ "'CP)+jG@ބIf\FɜG\܆d09G`U6xjԋٔYXgd8YsJ\sŶ& g⒒[wݗ JgzIrQ).SnT:ᐯ +JKQ &~\5`iK]6/cKo+p[bRX2շZ\т\Q3ɾ?}53%iی0[ +#9YEW=4% ֝mεY,qfv +'$-G{%hxy_V]sSee" +ϋĨ2nfMʎcNbLoyFPw"{fN@Q1Z|eW8:Z'h2+%ywj^߹:OX#88YSP+GL;$d(J,'̛HpaQF(8$Ȏ|OEG7pw:ѯx򧙃 +9 jJ JJF-|wJsX<_kTTD@C3VOo &Y>/bBݾqۃY7[1S,j[V×CinE(KGh$,PІI,@Yb󆷸y.I(T&G_.#*t:ej]#K톖Nˍv뀲B^F""w8xٞyǥ P(tF>.O{X]Pkq` ʎ/S +C蕒'lT5bK\5&Y PzXד餹6h5N^>%*Wb-^hlLp?Og]klqgrRN4GI,ǭYGlكR5%?}Ew@.Mtj.TQ;QJ"#(7=RjR%A$mHYo+=F'=E``{i"%3c g1Li:l^9g啽#Yt9dΧfB +Q}5|WTLJ_R+j]؝n4hÈۘ~*+t>[/,X\kymZ%]=00a&71 +¨ZGQ "쇝@ P |ǞE"*RK JJtVku0'b-s k/J[6U;UWf6AKD5%1߀:av1_)=7O6(e_N=~u]1h G 3#C$}%xPyA0O.PZ8>}ɠDP60\L|ʭɳ'66}EڹvdJǰ.< Z$ҧ߯s F!5,)-/Q|/R"xb,rraFt׮B1R'}8ƞ9(+S6l߂$/ҫ`F<4u@xHpؼWӴ.ߋ + WzMqPn ++t^zb7sJwPvWJGm91]A:,bN? D5RWC*wm]#MD1V 7w\!$t.| ryq닗 O7> Co> +l_GGt=Pfd(L!R8zbAC1Q&(ZsR_Kk+)Es!I90DXüfz-˽o'lcǴ[½R" ){h|lv=]48~;oQUzc @G{~UQ}rJd)z˵hŠOgx{6EX_ؽYOl+H'h% {Ɂ+J`-"0+6* Mku~pg_CчԾ߬rAl BϾx~n2 +$ JRfGNe2?]lr5M89SR|ŐbI U( ˓w{V +K+ʹTi_*ŁkǮıԈxQH~'Sx +%>l.2q)aʁݸ7~ZAEYWj C|)Iͳenp[$LpvD#FWujJS5;ӛÄS ~EouKHZ"$K}% n2uruiE AjXrrGC# 9F+qxZxIч6jY)Sk$5oб6V)GJ +T9_#!}Z(l<, XǍR;jǫ[Z;9vquaU`=bU +NWY <U yFb3Jd- 5/M +ΆUe s⧨ۛоod N kE^m@oX7ti_5s]O``fO>WioEuJ]׻t遭QJWY:t]^}5v>?ײ + o4/ +??nOo㧿r[?v?~O?/㧟Ooo~[?7џ7???_޿~?o??/Ə_;I.'4m"KjijtN$%qx:TJ(50p "tR;s@LJJMri)n3 qbL$SO qSCSLueTjSY@+m훊CN̄ɗ#Velf?&taar)6@3+p0,%Y7Tl +"MgԒ>iiGӞ) aP;/}v>H LhprU+.׍`U8-(m}_Yۼ9hJͻ/i}V$pz_LYo#²+o">)YE4g{5EImdsQ>T#FyaMfHkzp\. +sk s>Nkè!z0V%Ran0c>rj=%~Ld?p,q>[)*n<)`}MA)|G>׋k!+y/D2cx<ҭ#"j'~qW?_twBHB[5iTcJ* UzIQdwWlif|njTԕS<Ŷy{Ab\Đ:j&$ϬlrӿֶeūPy N=nL 793qkR7m XRb ̘pAku֋K:^6In0~|E('׫VgMby`.iVKص>Q"iӾӁbtGD`yԳJh** u.g۵R)a4'8q99KI{ +Jle5Mc2VxC$WI .o V(DEqn 5T{pY g~sqNRh,=:I22ފdԨJeGrD^lJ}OeXa#E%# Ḽ\DT>#_}Mvz[klȳ?ܢ3KO[ostz腀j]I萣)+,$R^XQZ<Ԯ.͌GFA +Hd=4*6&x`7h5À\4ǿV/6 }_tְAOUEs,xnzVԔJfࡏ+8/60 z@c\}faDA %>8/14fNz:J,քݨ!V>;5(k^q;-t>& cW,_f|oD<sk s2w1n)Qa>4f~|=o@Je vr;#\V7x}tK;JLt" +zx_^;ZR"[pEϲ<rܦgr,%x 8Z_t`œ](Wj-/FK]юqb}v5Vel3ƫ*Yt:_u|V)%Q#ʢ]W%{TH6zn+}6,2(w {2U/BJ^ IdXSG/wLA?A)LN4^}iXxLymkOHòp̾(n,%XlEA;/Pj<@Ų*x=sq%k~KFC4:5bL\JNMDr'QM{Z>Ҹ: bLT77K 0 $9̴AӾE;cP%166NqM(d(IàeFBy:֏DEո6%av#rqe{LQZ4&0֣% ?|`!Ño$tȻ700`$v;FP<'Vԉ[qkJ~#cO<)3O4x~O;ZDN񵽋OŴXy#uF{~rJ~#w5$ʂu7@<_\$-##C&Gl2B_fɽKBN+q][z"Ib/f]gH#UfE<+&qV1r)93r45A1>3d]X?@|UOiml!MwJlq۷˳08zϐ^0 ob l:-P»/ޮf4!_ģ v u/0"60S\EpKiRLJf xToZy7=9rhZzZ0+f(o KmCkk +`cqPY~mrGݒ^M竇%F(CF=b(sNoKF(f(ݎsFȁiyn8sztЇqͤNq^E԰|ZTER^%p}dL1.x,׆^h{B+4efvyp~X47bepwmVi #>w FVZvlg]hρ%mX";G~k7W8Y'ύecE!DfEl;A6)1[PPR `3?5+h2<O+ZI7Pkԯo$;9I[YsmOv˾ B!Vg +]m,/n)@q_/I)zv Aiwo;־V* Ant +>umRoq= ~ҨX`<$,PNࠤ1+ߗ~til6Ejz304%!opeBZ"|bޤ + =Qf ԝV+n{ˈ,0y=u%Pu`v̡}:%@ g=228 }D8[/H02>`)PPR34M]ݬY)=`XwtŒ"CZ. PE82Jدz4칭+M}Yl6 6=ݦu~i|** zwY>55C +Jj<3]yNw}x, 080!c 4DE5d^%4&뭝yalձb4BLa`Cމ +wqj~d&ZfhT{6`;`zI"MaWݐL>1#~"8~׏M'qojaIg(f*~(>hl>\C\>[C`j/hkOv:f;3Rɶ@)I8[ NSZPRx̖Um`9F(O2Y6yV/:Nٲ7FVP_zaNJpX_W 1%ZkdMxe?iᄧWPfuQ ڹ^JM8ʸvQEӌD|7U%@3La +*]e'7XQpȖUrܿH$׹p{H\՘˘*^!gYD4x c9 +u %Ub~Q,#,<T)r&lujA.z?zeԬB%9leScSDmzi4jȫ}2z#w-4 +I]\-¡_ GlHJg(B ̈'䜴;:6ؾ+IX Έw3r,HJЭXWJ'_l|Sq?Ehbٙ X3׏ze3+ 7|+svS"x[}ZvܫWsQ\hJoҿ`a] oJljxh$]<sP(%7IsMzf4Gw&NzI~cdqP4YxQ/R(P'Cf7{,S8,ƻh-JI~1oغcEF^ ElZ,v3 IHΘj,B1OOA5R^gp+,<iv-Wpi(b)PzPRl`T-vODAIa>\@UYũ] 38 4s@2OX8l7bO-.}y?@sD>'6헩V*3dįĆ}%!N7$j!alTA,Kr B}LS`u{pC6fuYՖ;+.PXxHb˒q e䆩vx v>]E%w_.7b;T0I/YD|Y`Ji$7tYEAaDI٤~,,ޑJGa#u;^< jލ/ȭI7`G@UY99 H&u<~T%4xGK}+0lJRQ1J\rM`g3Grہl!(ƕnS2 eJf6̭z+GJ(IhHP?jֻbҽw:}.+q.HIS#aG_L+tbqRdO}L.-=!Kc_ Q|KDBxhA`ܬi9J),Z:QRXW(LHrxcϣ>[q~҇hxMh$BJ$S8Z(cGIIS"vAʼnL7#.+6L'Sr5aRdd..SS1AU &Վ\v[~qlsi7C@Rlm&%RBUGI7m@.W> YZOƋYF:Ϡ9_1YLҼ0NďpsW[ q=tzbΰ-c2?9 H #Ht@3zLʎ@ndb^#%9Kbi@p #V}atE&ȿYӃYRֵKuӯ+R47,Ya*)%9dnټg:e_q_!t%lɞUݶut72X *دr2Ӫ"z$ bWbu(8VoXrHLN^NtZ + +Z1$ 4i`AJ])&(&W +L}_7.WtɌ\;w/6?#f5ٳp'D?U"$9neA ؂ @#TX#HFmLY!aS8c$o@./z{#md3A!lcnc0<@gѶv8{T#HtÐ5^QIBC# u~\67 qڀb` ˗,~uc1p~1Mf\B|[y;>|r﷈(l1Nq7J>MҾY@2ჇJT t1I75F:L'`$*]JXn.+M*nPQR9+!]+\*"c9޾D;O$n^@xZ +n<H'@7*d&k,0e }(ZE"V5!':F2d~z;= JƓa/kAD@Iҏ~e9WSQQ^ou=[űտkG*;fԫE֚i𸾚ofRȻH%t^EqrYCKID 6F=S{`Bkdk+֭`ր %]YZv6|%Vmxi[Hd(IA3S)d Y7fk =^f_Jr Y +*(/H(/D pQwcr^vVߊTҭQ[JxqB 6JH}%3{*Ř_,7#$&}wQQ)) dX75U_C炱m`s}A}0ضtf@zbL~Ih|8x&AXxA,h3JPcc{?Hc m|$#OV8<ޤAê$u,ҋk!A?y.XXPRv[JMQǍZ2}(zsغ(k N +_ T/Lo6DK/ȗU 8㪢 zR'맏XM$sd2e@\<3HlaiΡlyEVy9>tfA;zzwBjsV%@8ѾI +f@| 3(㐸,'`Z3h-}R~7_mym$b)[2I{gJ,1+5]3%{7T#T T͈BT|ګZm찭RNddK]!<+t/<$W6hh PӊWA]CM$oƳ1A3$DNy1u bx}bZnX6T13gs5(?!96J>LXLS_I.^$;F++%V-k +_Fב(۝+d+:SK G1y{) 9Zcoto9&2g_= !&L>b]YHpsCIq! >+C-(n∄ :c䭞 +F>y{YL12 +ʉR)9_6QHK K3TiË'aK'h%>/*iDIpcrNB+1Vh h 0.]S}rJd~&Ӯ_e3ó_S8 vCtN(~xi$`HX -J1~&ջ`"^=(.Hnra}f|:> .B@7i1}}^K!z=*pj[ .ӴRpK닷4 γ1IUvpO+Jod`4i`kBz[*(p4)LH$Ikrm)\ +M.f?2p?V1em]߸h^$FOeFLfGaĎYcA[VUJ @_ф#r>uaٍas5Mi@e}{뀒!|/\VzG ѠRdcnjRJKz%;ͣF$ZRR0`ŵ ,ΦVXIq.9`A6CDlT[EsrZli ܯ/\ߕ5#9YQrʅ.)T 6&F,>*5mu3\[pKk1Mo_ x څ yV.oMLhzT|nw c+;٧AŠ%W 3v[΄͐?%v΅*M /eKLo~[ zqM(/{Tk)LoYo-ʕ ""~Vg@lJf+/L{?=Bi$X({Sc*&~8DGQ\BJ=8'S>ybb؞A,X%4tG BU %5ix_3Q-%Zif +AZLA1#40_{ӃR"Ɯ/&hWNJ)HLPwu‹wqEZ`1Iï"@h+1[Ò*4#A a;%}1pڰuhaLFN] ֙T@I QE(fg ,|,\{[LTqc +T3ʃeG"Yqcʚ)յ83b0(1Pi 5M)j-k LMJJQή3s=[2s{x%]_~9L +=+r +HJ[5/= _x WB9 ܥ7`8DEzÖ{?TW`)9X0^>Jvs*%=;R{|}WwJ&T9}ѲfwEn2+SlM|fLp$+L{bF593sŬ=?& 6[~#k?(6 )盁sadr$!IzCgb*THPPR50Ж.8:0V +̘ ɓ9(B`jL$&'e2јصO{4LhTr5_J3s)2: L#dS3xwr\>`bRkV}G8~`"v +oMt:$zN(` j+7i:XwW_HnkGr|hm[QF+G +U΂\ƠưZqCSSmnv=q1a0al"7q : e~\@ޗ2@2} X*GIߞGϑSdzWtkY`^EEN"EN,()(1UQFFf!wJ8Ss#5h.(_?N0L}B@ tvǰ$xJ?r]]ÓjSQ "N2uU2%efNͅW|VBӈ9obcLX@oܳ8v(?(3Xt6*? ~X(XMBIa{jZZ+Oo}QrD_^@`1K5e\sYAQEIɵ"ǐ1Zi طe~m0Nka~C{ӉFU, :k{+a~m¤GWL3u%,~30TT` d4׎E>yW{3m0Ը0d"M4]:EebCZ(cg#`f"&8?ڍCs E>$0U7W..P͔mjZ\|˜NI_ %vG(23xo7s&wٰ} +]*p~ơH I~}2t:ځNe,ŰѤJg? +|3w?E)KQ$%N;(qMR\}hJ?.lM@IeM9Ձd4cs4D u%ϰ9"j..]ͽj}%}a:2@7<={@RNsWPPR`ysRdJ *K܏z?7"{~g0n0Yb2 +nCU Y0+:F#OXcIo%L2fSVH=7PC%P,!6ZhשrPWx5ː@!_م&È܇vݢbJ#"+lu6Ky}_T㜴?>ƍ2/k|ol2\p8boP SR)Zq90%r3m yl=i!4TmuM _6 +2X%(Z3WIO=D/0ޕh@,%6Xuj(ԯrN<Je]gu +L6,*$Ԅb!2X]WE7":UaڌnFM*.>#u|EFQ)6~غ5X6p +?9%R?äYm}Z4J9Î ŨAӫL}\aIѾuZe[H[^VW|~GA@(oxeiŌ#?5<2;]GT}S]zYd X y|5ETH٢7o0TţMd9㨇@҇bad o,{7=DLytG>Y}c(һ Ŭ&eچCguL %F)>򻒸h]Bo] by@V-㝞<(KwTb2E+uq=Y|⚿)+t6QJ^DyA`)3 itgX/]۷fwpym!Bs)k :-`scxS_f)7=>6Ն)m}Q9a?!q]3fdY26\ޝWoOR凭6[Z:+а" O}o)+1¯8 .6F(=%yYGY:ZGSRe+iG^OA5Ho(Nػ{;oSчzK ̰pzJ2-qa,1ٶQNdAJr u.2A&#^=y 8q2z-jMgXȇ\RUE#޹RAYCIѳֲ`wk׵Qr-m\"! L[6`w۸^*\(ź|bt$H牐J$0qR=%)2: U@{v3ȗ8Jg#g}I#g83l0aR؎#Ͼ/!݊lX̀"]H;7KyX] +}Q1hxl RI0V;;Abg"\&($ut!|,=ڇR #v2y~=*qOjSn8N}Ւn3}<_Yh--:EadMf +R嫥.Yx ,+qcQGZ! %K#oz4DY|/lkJJ#=?Gzt-I{嚑^>>bWE[֋B| `"[|k6u %U*K k&?qqQ̟osO9R֚IJ(.zv졢*F :/T]ةks@xX(> k&×e0].ҳׇ\Jp$_pCF"#g +55O/$r^!^j -ɥE XZO>;{Ɣ>F ,B;O?~맿ԏ~ǯ?wۿ㗿{ͿLɿ?}?_??g{Ͽʟ?~_]N{ I1$ 62 gC[m~~-N)/9DIF + =;fNoNhRŬ%rU`É Fdv(~b0sVT8<_Wx 6p1_U + i(x6ݗ=GvZ J=\Z9ֺnQq`+{b`;ӗUc̚]#CI~/=V] +,@oHP5ߚUX\v{T8VjTaApˌ^dHs{(lyJ{%^.O.\0TXHpU7j~iG%<ĨM2*J6]+-] +619Q +JÂr"lf<|AN|1'c2]>kѶg#{-ݯ"zWbGtSuQR`l\TvZ;PRY49V0.(Qݬ~Ò Q8#6J(${0-<XF0ǭ& nIKSH$hEٍ\ndi0/vbެ~D8 |FAWIM;}qS(ev!̀wkk_Yb]gW gjJ*SeDTJCG7/lmel q +9%I3ҹ6֚h 5K% aI2G5+ M3'4\z/tv%Go=xVM@Wb$KSPRlw+mԶ)h}OI] X 6oOA:O<6 B6II\{M&:GkkCo] ++>cﺄR~AEEIy"#KVe~۵E8*WVf<kF(Fd)$fMn$ |IR K 4NY]׍P(v^"fRݸ44]m hofɷRHN~돯Č+qu% c_m`Cɾoh ==i%qagPkN'~H'\Ýg ,[tP aQs(N|P*IPL +ԩOW}D*T1XRRUf̹PWW*g9U[kM/zZ6\>AFEghaF(䅵mfܵNe?mbXx\G*ᖸSS.#l"{?سW]b5lfaRCMI ސPɰϹ ~P~ Mɂ"_N+Z-RRK6z\ښY3%{R[B1IqܦOګΟjwB¡d]ŅxnJ= 69/ +فY-GRy 3u>6⁖]z.aMV{̝Ruyr$=s|o[`Nk#`q Y!ʤn~5Ą* #cX:TrڌƥX# j.J* w.V/Р" /6r?գ?P]X{pwoЯA,L_q4qFN=:r{Z&dwo;ٯA_\2}+,Pj}PEi~:?NI7 RTɦ +,kJ0(-3h$v*Q8ydK_|o ,8I j`_ac"_j."k:=&mm; nY%'f\3 n5b;K_$ˠd2ôf!ھ63'"9h{:̓]&Zg2|olSP:kC?0L6Q ^JdJ'J ++.]J!KuvJ,녕h+ğ +(!ݿs5re>ܲ?s` ޏJ9W%zdQClcQZyR`VCMI).Ϳ&[yKc 1),1\ 3)쾹v'sKdrQPQR75ٝ[`pn2Jzݔٵ,ކށg"EQ-1N5y*pFd_U{n'(_ϳ +]:Ogf\(sf]W!g]M k&|!#A$5@7 Dz/GO,i\ `XS?]"EfTP8PRV4`,R?lng)[ /[ԙ=k@8cvkJMqhfe!N,x\om9HRwjw:dI)zƯ?~1)܃6?-~zg`1XOKOƇjWP􌚖~h#XwA +8ZN:<[L=>@ߛt~B\jjL7E&pl2$.NM@<b$.E2%x6xMC84>2*S%,dqꪉC|[{!wZ]۲K}`d1O~8*cnYLaUSJ%S=-ŭe}ܓOmB_SP +9K׬ [yLP +BJE^Od#NIo`D:8qx} AI`Q +`vP`,FS0fKΦƧ;ȸkeuJ~Adk/xΌě هLMF.aL!L #HzrHBD8Ao0KZJ#Mi +!ݎn~J% %v㌝JFKz39l#%(IhnZLI^xv!Yms} ۥ:>l0-TP͞ Ftshj5V&εs zGf4L_SB 3}RA+B %Iz!nͷ$h5EELEeƠo({y'  ,Y~zz$cdY^kE`y%Ĕ,B$X"'"#+@lB ށ#H6UWk>yz> GB`| f)pAeRP (M"9KxawǒDͰ]pK-m5~8FSƪv)jaê\8 Kk_1tF+R %flޔ1}kXG/G[6ƁQt,+*<ɦn7lM^D:JBՀ2UoPD~^NX>QG@GP8Kc,\x+ :6lCXBVCOG^} [qyu$5ǡ D5>~eM 0X + JdKX ))֞'Bt<_FW{@O桤aTOL=A%MEq<]U fx7Wno4)3 +"TOhC~Ee6e"rC?uSܘ_{J3P4W>wTA# ^Ցqz6;za tq?!b6-#R%U (+m 䪘(S$L{q<9T:?8uyގr';ד=s`Rf3p;V! B7$$T;}]-,( s~ݿo<"WeO ~B|dJP7;P`3tfn7wP#Jq;Hne#hJK[oeK@13ɿ\Jd/ZEme=.^EhRc2cq6a*(]+uG&, iOK?x>S~>1WXfga`}բs%b$pPRKǏRo#"cĸƒ.|[IMK!/"`旨#8x{· 8+ PA.?q!"g8c?nC*۪mXt1#u))̧N;7;?WuDQ#kk8STM f0gpA Dc7oF 9Q ;hqJ y j*ލ<=徘]t԰>VyBxK #{;4U0 iX'qt.,gJE?X͙0e-W&=T JK K@I%C7U=8GR{nٓifm$0+^s) B$xT3-neDHa߶~:gw9+ dRnL?{iXm?+.9{, W9EnoK_2%:z-Ry6ӟF1ZL}r5NWe@تVdm°o@1EX#JLsL7O T[pق.v -Z/:`E?XvZDs쿔͡.Kޢ0LWsQ#;U'ST&shF_f +cg%k 6 a@P"Z‘(b5Cxծ\^t$jS .}My]1b$d#+%ϘQL~e$ l^gu }q-^+H|:a M9׎>-Lyhpw%Uk(sW8bV66Y+!#Q)Z)1Ɋ>H CSꞜ|.:mW74F@<)($ URT&bv`@# {|J/wLI^2t c %W,kElP#d/:m ܎EQ5/FF?ozj:F~N%Ru}fhP`H=._o{,We0ٛi: \o3na{!a~K`rc.3=2%nWk}T՜)dy%@=Ø^'k %sΘzq\[a+]6vK]o]{pg:FDa I i5Òg 5> ^Z , W9#4V-#~Mie.ٞ项ˀ=(R.H"@q% ͳ Y׉Z_)HȐOEf- 3gÍH? 0؇odZ57pv]R42TvLZ8ћA8Gwsaٿ_æL){_1;BY9zcgFłe"Z!.r'DuirE‡|L2Vw'?% +6U|7'H|h__ Hu%l_%AY/%g~k/.ۖo[Yq*䶽?KPu@XrZ郆m,չOXs@R 9>pFn2ax`f1Z1;_(q7=; zTmP1 (Ym +%6#}]ňUGETj^.3 !%qơk'7 ^1LUH*VXJ.twIBB[RS])7,~4{/=9Zdzȋ{dKPCa3@ƏCD4|mah_e@*}'__2p /=nu-IJJh?TP"]6]oS/PAr<|u\6b3 }هz}Q32 + +Ȧ-O^(JZzQ`}y?MϮFUS ҳ<~eX"Ȱh*|QA!tITތL^>*jXAW)Z#)Tֻh͑sz7V/qPPrA!4a}<켿 ۈ\A";P#(J.6Im](a,jNNƼ>0=\9j꼭EEԎo:u MN_[bʚq|iv<>7%u0ʯ{dnf7x \N';:#yTI%ˡHj_or3:if&RKIgTĽ5Ce`h6%ZAV<3Q-'@!PV8 o䞡_ҿm(QlS"7 ׍p QAgB&Җ+?@-o7Z^mK}k%%ΓLS!a@I;Yʹ 8 +SUE"rh8X VьnuZ)S^b%)(8zSLOGqPW #CD~@MmkN,1>U@+|c#78fT%AJxJ]}M=9M*)nXĨŴ{ !%qV즾wϯP:~>DD /ǕJLjߢ_ v7Cy7}3d-,rM ++lg6{|_Dv͐@0aܪ;?dӿ"1Q> UnoiGYL-fv(P4%^4Hl 7N5=! @Sbf<]C$uuW {.AiziC5tF_0~Q!MGqltz^m R !aЮ^e:D;/l:x/W)6ӰqȗhJ>S450tm.lZaY{g;`GW6lfF8/ʹ?NpV!\xCHHNf1曁ϼ]7'"b\ EYedYFe(PEAv("u;l:Mۿb,f`c_$#x!~߫oZ=֥iN(2 k48% +YhJ\aCO^^K*`I@*(\3d;.|)p7i톴_fZځq>0FR"s7COWfĢ ThXFJ52D+;VȌ1ˈ Q:dt 8PѰ X%~M~,Ŧ{ jc^pkiu!->~뇊:߽vu>{Wdwh*U*3XVDaT!ʃ - RtM,) 7џ5m7%A.D5mj Xͯ2*%oGo",|Kt08hTc _~'Uw{l9+JP`F_RS,m;zqQIG:, U"0`<wELˆVW7zaC͡&ZWdƵ@=J6Vdvr)|!+kGGoA࿉R]ɑ7LZEqf=72 QJ~^?IzPa:c(Ƙӄ NFG\*|3DDn1 2@+;ź'kI[mD4 ^aOȪ_eE}Dn5n/}6#˲% ljg)b.!5>(ȣ%+Ɂ[B{l}eE]58EnXyz.:uooO#&?gqJan$La jh\V}73E, O~0ybň]sA7`7`VFd^)qG>UU6Ƅ8"|7bAba`J?~:UJn1L}>ё2[*MNO89"0LN42&KE] r\F5X0K vb,*Y#; XDiȬM\.@.b %ң+;JbIMR0Dt󲸧\G=1^!7ᙈ!_L4ES >y8x=JZ!?st+6DeSƎ xNkov7N* )u](sXtoQ`7q{%$C(lDU XI9K峀Qw Q.>1ѭע;R·::#rq{E%Io,P %yÿH`bՕ, qi#(%QR(x7JAd$c"SD.Yi_|-oP>+O-D䂧nʺ+S]PIi(c+ߤ.gDr\~٥ +uñQe]@z;@ J:˔XHA9Ywľ9WL)3a_nb,ZQbs[)1% D=ȸ7/jopOדʇ/lم_ه;`(7\ A C_ HZbh1-/L M@j80Gz-4@;'e!Se>~Qjs7?(TKvCU2)}8/`C0802XT8/:хlh7LXC;ֳS8Tt*Ty~1{NrL']XBVRK/[$&uhe1΀ Jst_<4}7f'" _U#)Ġ,RQh:莫C *OJt15:J + .B ;~ledD+G{w6]&W>BՃ2UA?v-΍LvcxM OVYɱvc{- + N")4d@1Q>M3yb0(Qbf,|;tT# =^8s.ZVNA\TJyE]0MRp^I1dt^*^ڥ*"OA#)+M.|o]jY 1`YH|T)P-Q#J('+`TeO@4 oc_!7g B/d3ky#rO?\#;V +u +׍'c]4vePRR2}E8Enк .Z{UvK9 cЩgb6uЌ~,}T '4`lfDtmq{خT?S6\gEl靂-̃.e\zc ]H/*=vI*g`$*iP`󳤏B(D?@< ]cAe3N >EWƩ3MM>tvkX^k ۡ$U[cTtt (!Dt%8!57X "nlQmșhSyL=-8d}4N SbW [w1՝@p&j +,h3&DII9NԉRJ癊ؓ_ƭ|$!0(- Jܬq-ҊRwC@^;\!Ft:a\xXz(w Ok73~52+^I A뷥_s*򷃜k~#)8߹g<3{[+6uջ%xm`'j[z̸7&txEk$%bsa^v1A|\_ +>W]cQ|rQ~Aj* c(,*Dg(EcUY. +PA%b ywUԬ0XAIC -~6<>p`kI2Vxcy'^h5a`z<{ 5 I9 hM7$h _!Ҕ(: z}ڥA3ѝnipOZH-hdj{IZB]FL +lA'Dm7ɱ-\]ghLȁ3?yyZqZs=M ].k˔ -P-X~mFU$!s*!]bikcܳڍHCZXfav<uXC,D4ذ00! +0"*F)S1ipKhj) cق[q Ё_I@#IƑVK26r\U2pbyj(d2<Jri0D5Pdm.ĠՁGGa ̤ +.{sl!_BRA ^(yP +?=[+2CuE3̊S_4>'s$Z:SL{1>6) N y(QD+ 7h=eBTJDl̃KnZ: #x24&b6ØNoP>k耥Ǔ} gCݲ˃-%K +VrF9JQ@O3X nnEG)7b*yA+yTA_U@9a^}]6UE2hC5f(j1d~gsk Gry5qH'KqK$lpf>T0=:x9u{B \'%g_ U+3ja~ɇ]jWksFֳ~?.a a3[ ޒ!A1V4 `\'45d-2]. ^4%Z2vs[eX*O 1UFӑ.ȽGuz+ JJ 8WGJfGR5XvT_DXُ[^y( _0[J?vA܎Fҥ>E |0#2(>" Bă|VBEo&1iPcC>mѕ!7@֫xzDCmWw:V SPX(TDstjS3Cn1`.X05%CzP{?Rz>9#jmET0jʃSVO6,2w"rGMp#e1q"[Rê[Fvu)Pw'^ HUY t3F=Y` (]+DU.@A˲?q5WñRp7dqdzt@P"m Ʒi7_HpF]oݸk׍Hu5MI!4W+s=IR[@,zFD;§wc ;5 ]9бSb^ͯ|XCTJd*y:}u>?zK~7rVkpsv?oI& QV.X!4a{SxԮ^x ˫|%)mش@5~t&Vܻu(p3_yf&'OC60֫a2_dm#R$cƫ}(Ƶ{(tXt_n7GXpxKvs0wG~+ d]\&=0: +/x?Uf-ŧ,GB*LT^N%vwtjoa|VB g~ d )rue>TTq{Yd!Z_ZJg"FӇ{ԟҐ}U{ Cw0䃙qPB:G$^̺v&t'^o^IDR,Zi~v$1(M-%bŭka 4*d-{UE"mK=3:7( HGcGmK2E֎]J9R,y[ͬIXxLͅG JQ'|%VYsucHWfɸq+IÆo׽؛cVMǷJY*sOqeo ^gMϏrlN$RӔw pd"HqHKP{=vTZW LEf_v/N m +󱻍k>EfEeD T%WW`?6G +4DAIiﲍ֊HoW9RoC+01Ί2<*x𪺇UJ+Ǽ~F:;%aU훹mo]Ĥ7 faiXۦɅc 7T~ à/%F%~: :Cu~գ52y`=.Y>kY`*U",}PJbleM]tYv/oq{Dț[l##ϧM7U0 +~S=dA瀰a11beOY43`"1 ) x`=%1!XV*4d8 ᰬQh Vqh>6SmAgҙ@Bz_P6fIq ]`D ts%\@͆]F*W /I7q&(S$ THS"Wb{s'n43d-G+d$ψBA + W?*/M}-Y!cCPv0S2:W%5m +r1ʋV2AvcJ$L_d7ʗ-ia$L;WgOؿCo_~_/v[_˯o~{¯V#{ſog'߿_ɿo?/7 +_%,,1]`D~o&ȥ]:ڢI懋MR!}()qPwf .{YОyXwUPD~ߦ3S=OxAZG69 ry)ngLn +}ǐs򚁞?& ifZ2_־34X``=ɳRZ@#6j]۹%K  o/J3`o(j]a۶v@x7d5T2)3ڱG31 utr\Qқ؋uVG.,fˆ9V L$XP (q h4a=vA+IƱ/@.zJ퐽tː)1G +ٚ}L&#"#{?H4st 5aPjRÎWM]ְkE',ׂ=QL,|\SG / ">Mbifqq{eT "?UL=6Τ - [.!`)܃єBzB\B$Z&(^wjǾ}w_6f]#K~%!L*LCÄ<,y4憎lUz|%Z^eh2 r2CVE%mYJ-rcf"wRuPAݒ1=_l K@d7Qt gtd9&T_B):50C"‹H$y,zr{c:e࿢)kW}%j(g2VlFS/d s^d Pڷٵ=3YamqC4[\k_F UMOG BA[>4~h0~k~d/ȃ,|NJq`]>jkp]؎eGuGHG@i#A1 kd.lraRm6*WŹM$Wk4m1*)"\̳>0bx$' q*Xdp&4[w/EJT X!IzTg/JI_bu?g1gia IDL]5{a[@tB=%[BvB@dofQu}]ޙ/0%ڟvwAQV:lB{pt!t.b1ђUDoMnB0jiNKoȭa'_|=  voAow_tP!D:zs8uQKE:)ſt#^W|dvԿPt7&raB{~xT[\DLn?~2nG E{cD/s\k 3n"0x~xuDW^CAaؓK#N|VBcNPZWĜ'SzYa^h>Ja?ΟLCjE$^x빼2|gEA/. B>bͥT $j^ήm6noB]lUFQu솷~_6mPGP + ;\[1=set a +9'5/礃k @4tAWm{X,qˬed&I̒ Ыk#i@'1vag|y^>J xF v }[2/ۿϯҎI=x筗$ep-b@PZ9 \KK>O7@/OXf0vL^ f'T+ɛűJZ ++=7I&h-73Qk ӧ0 06!c 6 }۰FcЈGUL[HF-Y1)qEP*"5{Wjw}J-KΒtXlo)8b#X܋E}T +]i<9߾sLJG&7.MԢ tGY>'wfuщV'+x5/t$6 PƏ\u$jU͡:2P{By!l铐vAA ]P}\oNw-@ϱM] +L{R؉ݞ8[1K(Q-Hh Sqݹyn7o#$kKmCrX@\-!`*ǝAR;A-kjwGSV)p%^4"o J%A>|L~3Bg~}ŷ&|lEThkΑE^`2Vg=E+ CSPPY &68aPrj +)J60HVF$"cҭ6(i;!1m.mfsXǴ#;F)2"'x{3QG2`ـ&pP/hP\ao!jM(1.+6s UfM9R >;h{ܞ:B~£dWOY~b$dl{r[xguQ\qx)ʁt}Aǽvs;uFQ 4;)R]U}Jr1. ƴny2΄jj3ZRDVK^?n;@_ʥU]{VNv|7`p(~=l>6z`?=M^`=lyV$9lJ4 GH~tg)r:hxJ a`wiFTz' %Q>_+~'<tم%m'et ԩk<4@Й̿d @.\͑*MHd Ax.ҘBHS]e,H~Ph<>Qy˴:TP=*J8_r.lӘAm^TbU+(B%dmCӵKI\ s8_g1 ;~=j0o{~N/_<13$aX6;YmNFm04TRb9KIjj6{WdPYA+^#L[`cn_GO~ׇ̘oR lψ^ z4R>,mg[6JeSM ݳB2K|?]?f%0ML+I\ >)иҕM֏7$K ,**tR*9q5Lbt3l&7)q.OHe΍8zt5~<<='PO<#9ݮ66Dt# lIxT,z_熖AR"# SGgu@]hdW2@_\yM F0Es!vR/7wҁzDl#}m.݄¢{c(ƍ2>(afe2aJ2CdESm4RBՕn$f +_3iqRb Qa^tn%%&tshAJqV.҅RP/#F2]-ZcG ?!T$˦|%ʫWJYIPp (L/`P.d (}EIsK{%lGX?` gM+|S;kt yIw+^'x80؊VLQKs`g?Ѿ"1d[L y}J2Z:oE L0 +yfֶ"cxxw`dA}7.z@G"]|C} gXg:d ˣή<2}F?12z"MQ4ܹ\{G E 襙h)oӔ"B˨KKK|Qbl7rYYڌ<4D%~Avwe3]H : @u%BEqI^`(Mo~Digo)qh0bضR`a` CRSB}rĎk}!c$BkgF"[ )GĪkXx񴕋}>E6ٮLםTW-OGꝮla^D{] #\=A(v!tA0چe371=UFfOf9;e +?T,OP疚=<}10:pM^ "qmJEE))";/̘ `,e";.w7Q5Cpc同h(+\: ')M0CY_?LDoʏv}*[J5Q )zi~\eYXC-+`AjY$t:aM#beKztNG^ܭcuRI7(縅J> f@'2 6õ7[OB/4 +F2DOE\ Tb݀fdQV!&֮ 1F԰ƙmd#Q݆V_6Oֹ9[(Q5 KO jf#lF.V*SNczs1Y^?P{,fhR֝8&033c9V$c }"pa;:,K7腖yU7OQd_McXlJ[`շEoyqw~(ʎ _I)N)awn#3r.P;j#I0 + + ++舊=[ӕ ` +: +B87D\8`s"0Y{mb]{D0twr9p2VТGzy0: hXZÀA/=63O(q/-?>dK o'33V +ʼnk|NP9C+&O݊(Pc⢢kE_O:Uxܜ_=OСP +P&b~R2MN|[{?[5vg`Uc>tG4?%pę\Q=ߕ`ڻHcw1Gچ5UQ$YClEL{扂K$UwAX&FA }/7!8 Ce~|'Tz)G(i7$4*imaS9bSniϋbGP>ͩձW1F}y^>os.ҐeDXpJjlʸa4Nh1QX +GN n-,KݬH$D]"Z~6{;T)W~Y2,9-VTP"6>Y( ‘/nb|БޣbP\ :8wuRPQyc*ܦEݽ05+\Ν Q!Gޡ|7ՏI󕦃x_ +DtLqf܆* ގ@76Jr- Zxb*@D +++G#_'7yf_:UIH`lktzAւ +F֏<1< dY:n?dWfL[8aT:_H_N4_I +] \Ek#]{xzK~8q%4Ƣe$'G8 +&%Z[8"23APf_&¢d:|5#[(湯ҰBJL#>$+4*:Td<(&cK+o37j2ۼ +G0>ð/Etv_2v#@Ǫ9W<;Gt.p4l?u6%Mg?:񕕌 앤vE"m8f"5vD/5@@iU *YJtn/:js;Nwf5Wl h'ΐX%;:]]wJȽ\B%iBkkbĤ9 15J[O4/`U͐G?EԾTFgd 9CKq` 3T_ӻ#hDAڭk_}@Ί!)ɑ$6HP=G7v4BZYRCA4lEXj lp> |7v +u^N.tCkmZf4fXxL%ll+72+XTfC7 8:2Y(+SAV>vQzsk>Y+ +L^!me>pezTJ;nc*^Ir5Wz`fv@r*4w#a`!par.HTP  'PRY9$P_åy \JYlD9A1> ^` +1?ys}E5iP6~ [&%Rtlț!2H +Exvs$PNvT {U2` ?K0쫒 p"s{d>%[?V_rԍIZlg@ņ'cuӅ H_SH>gKDoCgQW~te>" < W3 z-ASWjwȡ׶}>wm (ZkՍU2wOI\!g(ہR[E'ZB!]a㜆2Kx:[ %ޥA\N㛹UGR1TOBkp\$XGĆW'TA=\dhEiZ1Y+M;A>+ši:~| h+}E[OdIɯ$bCn,);P7pS#>v;ԏE9v܈f2x86~*}kYx.0 8fNx4/x*H͊H * +c!HApcGׄeaxLc@c_dϪ5=AIc灱#NOGoun +$b쯌J +icmݶAy ݌Uu q^hbZ)᎖bՁRR0XH%N 5~ѢS4y GO/ 7Mƈc&n\ѭz䗷2F[sQ\fVgd:TpS2.@dl+ -1˂Uk_FH4 eʝ"z,M!r9 S=% uQ/?ܺRpG}ݯ"AS/Ib0+x. Ue)s2 Sd2e(o6ZZ@g>A}(߇qEl&}%qR +G#h4WhIt Q? ^$%2sp3N^1 7"~%)x0>u`Z?4<*J%r?n2iS/" cr.Ut,,J@LyPrac9''ub'#N+iOmޅ()hF Q?R~Tbɧ oL\kߏ /-x_eEIC TcUݴGy7#DWȉѕ^ +GChmohu3 x{'~ꖃADvzsS~2;":D%W ]V_GGD_Sn$+GA@/*v0JB *=i$G`d +6@)DfP ,b|엚fW .O3PbfN~|!7SLꚎ:e Qm1|#|E7CuЭ`ؒsCH(948NJli/E77"I!M 7&|=D l-}z=J:$|d(Ugә./o?쩐 ȩHul@/vб 'Oy>BL{3yBsʢ 1_6#mLUv yFE y0I\6v+ xD2 +YEF|^^H`++] (*}N:7`u:xJ$~1 +п׏t  6H6#d\񁁭(iЉVAPGAlJO3$A:X,N_UBGEh[Ê݂.Mo [|?F戺Lo@Z[X:h`Տ1 +i?EGCIG +2|`@.A/ܔ"e4 +g6BY+IJv)IJ6H\x0HPnĚ4V-;:f`=ֺd֫Q"屌n 0|¢^1@}}Di&?왃a;u[S8]:}Chaq2h3<Sf@7eYvӸ "S9qszUAM}yk)+$"7 +R 6ͯny/:R=T$j.QVN['(*yըfs(plzRCE{$;(& ry׊D6%Xo|OLJ63j1JZq¨WK3Wc{opC;+$-t/E\D":ߕ1FBtQ2Cڙ3Hl͚Ml2+ ՒQ O1flLA9r0Wh=t ]O%Wnqvۃf0 m9 +f?rczJ7x3mZ%>K +NЁK^t85U1N'UnF8zɱ553 24uQ]tcr\47@\ɧ#oqCƁ3>ZM X\wzQ8B_3V\z4Z]3'Ejضc{ldaFsA^Y<ѷ(+ƠCdѵ_(GH w>/SE<#/r73cP|0{!0Ij Ҁ6U5xeE#mZ9(I,] bG7w_?ͨd.%BxrаJ]]yKrgK$ +gK=<5Gdi5CuӔxbXh| ea:d1콹$i:V DFǐg[_X)Nt48*:Xu@g|2fCe-'OгG]`%Vn L*.%:x~BבӮ4(i7O>dhF0ce 8 6%u- +D5 KEW$ ڗEIVW!Ps( ?(* 63YȊA.8E=kz tbf〰1,9F)}>ˍ'6{'s3 ZؔCW_npY씑[w?Bvu=B_I jy!%-BRLRm\EdJϴ8(i?L&U)(xL+[U<x ?c+^w"j-9CJB%]c Z^kA*8V VFk@s-[ j`JKUCP)KNG0,~.6f+ |< Vup@wN֒\-`{dy =*'wW\>(z xŘS8iJ| !^ sAyArn_vEP6 :#Ms!q Qe b)_@3h +͒E;"|[8ov+R_>+F tHAj8(hnєl>fH{✺rB4jc)iy<6P-d=6Ȓ~(M#)#/舺Q`v=ي벰_I$WD󃋔p̺rL/FGbF=0*D/O}ZQb6H'k=V}T| t<-!Qhh LG4 X24tsu,ѻF p;me|CGkɀu3O7!_8,6eXh< ی6']2:} +3^`H$'*Z4<>א{PoeCfxɏۤ#WL1%PbУ/Mb +9lQҌk7D)>3{4εa-}9YOx.:Ct)GV@ C /G̱ycv0(kH|%8%ZGh>4 2s}FJf62=%O2tfkP]vZe=Z+eh#[# <6v+ .XޗwQQJ:+7ȇ=K&-w:}Hnq+ }p,09ri֊ al!mf6Pkc NGI9㦇TN)Ŝ6 V9WX`lcތĬh~dW%~s\~paz|? /_~_G_g׿r[on_~ݿueۿ{7~/Wo˯?_wo?ۿoɟ_ݿK߿g_?SO{G`lv׏1 JԱ`t45V88_IZ~:Cp\ 2oY@ҥ2oՌDפjul6&H= +z$:%+KɘiK#*Z5#O)ˁ@qPtE'^EP\u +^ _L,FPU$J +d@تVdwr$d9⼱=j(oYu h~^)tLI{Y1rjZ蠭v3%~tr&m[,p>MEljnvt (WɳpJS"6J/:u.3aibJotמ33^#sUhA1DfݛmDG6qhhVbS&0+Ś恏Pk@q (acuA +ԿFwQ_ +Wƅڴ>̳0}M`'S|%81i|W;.Үq )wXx-kumYy|a2MP %}7sU{ =N)N>` zwl1A򟊽7wBIewAh!ڈ3Z>}I4:&!)k?s7D7]S7q*c)`rXWCw .7iYjuD+`ӻP IEdIBIߥJ- r.70p]8"8VW6ǸA[2~Th/[מ1:Wyyzb%KV˗Һ'A^$dP f#ax蒓+C)%?|c$ӹ1eh+'.?%"_Iu8C.?vl#RdD=zmDJ\ϲpͅN_ @T@#[^ןa Ͳ gO0T j B:=i0ЙK|2tF$K[Ӳ#1}5醀X~6Mi8ZtѨNJ%2+殇F=jXbs."ÜDl +!-0vSbWC߻uȯmE ҝB<@cOzC2T;}(I* *Hqt#_Up9`kJCgXɍRDGP°oY9G$5JLVv04)JnzDv}V2%>z50K]4It5ЫfIP8YyUk39\^1J:/J=|rYH%,fEQX2kv~욽~| r ^KFJp޿QEP䏒_R_IR6, ztvzX6Mr背5;8׈tPsEzF%6ߵS׫magσ!685'<f(Mj{~@_8i1t|-'#piw rRbHK08J:uJvHBJXԪUVuKP኏K߰Z;<ΈnQKi*t#t4INUIZ -\rlO``'z2/7?*4&iJPYghlI@[4ey8^R՜0eZjbL.;߲jʬG|.dDW$<J~쏎%b(yg5tD +XL+]8wUۨٝ] BR$KKlAeJslLNT@'OIn~ O %͕dž7IjD*÷hMU{])>Z`Y`<>#CAqDb7{xjNBt,h#oi/eT6@ S<[>xMkb@/q}V]%Ot$]5 y# &_F0բKR0Kmr'kJ2aqLB+IĻ-ZrvW6@IҤ:TN#z \eB^KO#l/7#Sd־jK2luCMgҎE@b?pcWZ5FKg]hB.䖎 +݄huMҡ< fNz/LgqZ 3FVY_7r' +ͷfiB]Mˁs>S;cW6iQKh r=.um E_/ RED˲ij'dg83/HŊ;TGv)/vk2bd/M̌|Kb0_AAByvy|+ ؂qƹGqnfeGh cұ0W};>NЁ@l\z ]kJ{ڐ^4;0`jY}줍/̏="Pa i> C ⷟jYcء8nos585Bn ڽ!hW!_>>4k%o7lIBNՁR[3+EgeR/cP;uux>\{?]_qÕ? +QGosB:V򁙕d!Į6v}"jp`C- FJf!c!KgLiMnJZ;v`li!hKmЇ<~B{{r&5}G@S&SW (T]}#/$e;F xTs@MioIBgW0)~M8@3C=K%&W1 xdAmjH.'] Z1c+4 D29:T磛QB~yloe#xADo|%HQү 9py.cebXm6 yARq{yӫ7<f/mF{QSҾڞX2~O;28x'ޑHy%D?@HIH!eDh`vuUw $4ssݵVU]¨f鉟0Qf}9gH_}_mE5]l mM+\Zqݢ&Pukc(UV4CJVd*E0Yz@fgFphj^ c@^6K eYB`idm@+G"̢F'bŴۖHYamm4LK04!0M70EQ +$-/usۊSkU41޸n+`;̗ėvgEO{Lc(jVj]9)Xe3)BXHXSP-חfX, +H[DX%|\D>$|.*q]򹺺13nUUql{#V r0E!FFŭY:Cd.qԺ{{ٰgZwub\5AhΤ]idscBY:tt} abrs~]n{[ݴ(pfy_ȧ57/.>tOeH Mc|MSz8_A 2PZvafU8"*:#Ƚ1Ac(#eG#sFcEU@Cm7 Tr*L`ߏZWɋHehna(V.͋GGTMo,idhb5#]ARUg:_BDm DF3YAq ;BFH_pTp](Ukp|nw _e+4̠Ζ'2f m~])!#ʅYU&eFf#B +f2 SjF8&gI Lm'\^)n^u^BJ:{,f`/ +|aռ>Q2:@|ImP(#G޾ `uiw.:'3Kt2u QI*j((yf,u_ -hO!YL S/TFOK-*w 3HajH4GLUj6v D(v9hQd:8lweS>y>6!r܃]) ,e6'݇'סjt +* bO~ {S\`vIx`KS`Z)OvcPIW{-,Ԡ6c*A{97(d3 t@ج-ԗ3f5⽐wf}Y,`ւJٶ{ Kc?pΔ[6 'swJEb(J+h#V7UXo!iK*"WL+SzX~]m@C[ Wo! CV&22BtC}/:΄]+U)hI< H};-}$3v<i]:EX44AyG9s;+vy}TUs_*X'PVJx"M(.Fˤv 7 @opbE.RA3 k> 5Kn?Mz>TsK1]2 z/rjQf;eaZ/_JMr=iz-JnԊ\:P +-+ɌD: +H^<٪w$D1 ݇f\[;q3CL!ٷFx%~$Pk<AK?N7B禯 H;'邛l +|vRt^+I_K/b.UyD/ UiחPSP ~ *kAzE`Z]q⭹f`2Nr+J]8(Jɔ]*(ڨ:&;JS gH.BW0f(@B "d4tx%eXVR.R@Dm#(pf-<qٞ뵁=#C/>-%ƌ)&QOSh0g0[6ň#! z-RL;z7Q. :(t(^z}{tBݟDu uƔI>Շ>&5BgT|1<$@0֗.%_n.cL$7GY8kBh#|F8Iܷ0si.)#nǂ檵]]p^ ;EvxG+""] 'Zy,=zhqaY+\I _*{'=>[%qڇLm73x_ +izp3ײ-ʹ?-;_ѫAVM5q~3<)F|ϲע+q`DR|e$nuv+Iks3t7?Hx t$7ཚ7]rqM&ZSzgJ{J]! +QRfb== CGfY\cvdЇQ`"joW륂nůԹH;Gk`x{FR% H-[tr#XEQp;nA!=arl;؀m]A-pM„fNDz{^+t,]v͌ή>ֽsX'3'1A/n&"= +ӻW"*a}zoP"@_8N'BGV{!B(o bH*G0;ַQ7`U|َ=Hx:cWIr"Mo +,qvW) +2'{ZZheDZ]]=ϛM P=MOso@ O^^sUUE>+`v (0 +J/ax;G|k:dMN|˪R5VI~[[ql\uO4`mڜ6ChNIVL/ ^84F ˔e(e:ZN/Rp3!5aacF(ㄡYa,ߒ"X1 +kq2c(PuT=_]YV-R +]„l-=5FxF(/}NdGݔbd'5Kf (45z3QC %Tܮ<&R51'^AB)^*M\MЏ8P:7&E\ɇ̌(XF<] +pb&57&sRG ymSBx}^x:E:c?s@P l +l]{ [k9A-eG@Wħr'z$>˻,>nkav{፫ u)r٧+'x?f!oj:&9Lt()/Ե}܃d`׳py-6[ۼBЄK8|*>qVJYJSY/_n;Su GB(/v?{Rl E`eʧ桞K&Q5 /W+ zy&B `| ?.e1N ĥu©m!]ABï~`Z0 +l2ٻFIS6H_i` +ά2JxoU)P34/fb]k=Hz{JRf]%Z]"ߢ<l-S )+-[,K)qsℚrU' +;((&f] }\F0]Hj>hE=YnoGUKRjc7U!U#9飾 eT]P"<[.ākh  +i ?M|oHxcw*-5*"9؍H>[M5tFAP?HV8ز{hf PJCpaJ+.4@E\bw̧a{TnJ)ոrŋYۮK aw IMՅh,s]J.pBҁY}G8`yFXYh!6~+7سb]x왓n2ZsQQIR3['Z3VxlE2s&a̬g/XfD-FiS3%7QBJA }m%+C(((kئd1A8")9y].i<_FUeG\R䥦N ?ԏg\Lj9ȻU)9rDP +Di_qI%a]doq! +~<+Q?z9[Q8 [m[!wrq`0)M /#pssr.E<%29W^@-ɒ#]ܦfI\MQHO-2@vɰKMF'{< X@PXyR=cdm=se3WwtT2vzJ< +ϔf# }G>Ck uEሢR]-5d =T=Ȥ~ɸxT JQ/,+uFGL7h1;U> +NGk$<ߤƂtY^OYOٶn}X AEQ M3^X̘!f&!7@_x6n3Q}$n԰ZvA Q[)_KUܽ rӽ]ݹo ~xuY,'@nqfI~hH%)t"g>7yOdjM_Y t7}Wn%^}2̻ξ 12b'πjG 7)LXڃA<@N4SAدqx1R/X&B6c!@hfD[-q}QU6c@Y?XMd4?] @ +)RFsU]xxWdg<(0f +׬쇤@ن2g$,N#ЋE vNG_*r+ / ǯhf׵A>_ pOT86dÂCwxr $yGe-,&oy}^9Y@UmЌOF=_ +zkO=Q֚YG.4fz?.\=iw,Ң*]fzYgGwmGGţ{r~J(NzrT@M g +iilAFĬŤآ! kmUk}QW`iӪ&ZO;ݓ+޲;ȣ|ҘUJ{;Y(gp#u=f8@Y`jQy͐Q?mL9:OuApsDb Q`ȳ*fQ~PUK]OSZ8UXoi#eN`[ڿ mAs$iD!=OXw#˿/ + g4? *{llqMLO -_,`#K A>cU7zay_<,=(RB'#[C$}kJWT4^ѫٹeEc(ϤH @ObR` +Wۊ#WæBgabS͈cQWX&Ji唱038*$ +0K0)Iglgq%mS> ݂GYx Li݃`>lp&6Γچ}Ro@^U,8U%Tp@M)mfVuz%6%RLx) 't\q&ׯdpjs*nA.@YR d+YL{횴 -Wy*el= !}W <+ +-!z>t(A xpBO]Ax9ndhx +i>o\^\^p%7WO*| )|) 45猐R`i3qz~(,-* hD??4z)Eh{WVjCPa>Ÿ6̛,WEh ~F#+Np/K +ZSi#NY偑ai/=1D妸CKE]m]M8?HXYzJ; +_Ţ ]UG"XRf:]05*3L=݉D5:{pt딭US}Ŷ].O4op db+k*j-YZ+MwtT+)VFv(@2͐I\*9-O.XͰ]wf}Ço7S^-e|f'IL`4.Y)tIfF`=A< B89ů791Et@`]Y/UXуH@/lgʬ2* ݥZ?!s@װ̩ǓQJ=Vh1"T +܇Q w50evͤ5egt;nT'N*@I{ >q[H:_bV5Y6BI5{e !UA%W ڐMlLtu^FsTxdY|wCL߬uޛ:M Ok6 C%f=_BKAk.M^$< "InT)9׸y{_^# + jd +*KMF 7-z^8oU6vC1mA7<ڲTejOˡFJun[lV1,)F­I=bCX3Pߗ1b9V@AéQ蠪:I^RSreGit^*N&A eP`ln,+MIyBBqt;&z +-}vDd= g؜/(`mәUȰ Sp6/}}-q=$ih)-mj7{FRS+Ux1aA +׳3K 븆 b%xiZ&NIN#r=>uiFg\6J +[dXoIH^W&WzxDUAƼTkKd%Fr߆gޗ+lD$,zp'j[wy}}_zDSR8gM}_nVp SJ3:L k]p0Ɍw)׊Ok)O ۔g|(]q7dn3#z8X˾1X̣f} +|'6d3 hL4~P.+[EW +]N 6gS Nf 3v%pF=\dCU5B6JLfE?kf2@r8/<"c9vx3ErT X1`,!4@;P,҆*-FNagF)Zw\4pHbsqIL?' GՌyX/r==O-5yO[ޗJ}<6)J  …4{ \N%D}KHȀo2VIʩsVH*XE 6I^5vPxQer<Fb#e 9֥JH[D̮:>7Z:Q}pMlihdf^[$Ē+U<(AzhU^6"A1ަLGqcqAfVɼ-av8esܥ Wbx7*AH\+L\5_뀃Mnc=Ǥ(fAȆLag-O0I<$HܸC>ܟYP>){.Mer2QMϦneQDd[\/_n5bCT;f'z>Gk*iA2] I+ݎ^?,>vu=FP5)[.@bz:Qya3Qtd{]5]=q`=H2 +4.4 ץFbP` ~ '0Ks][CVzN0=H_A^>Hzdd#<=R/ T}| +7b@{տ +(_N(ס>g# U2>R3a?}ӆK}Y e[ULk$A\4,dz;"@Av>3RC]Q`)v%)[W-KM'%">Zj)͌9( hC ҒQ羔102a86L4~+Xf +R<q +njPjzF @-VlxVH,j7h_B!KWU"`J+sDžr[d"&;o<*= u #R )+dU9-} +FAWAJN2ouSb4/n^%v@PxH݃CW:tRdt9CnC,,w F C1q(le)TԡBjw 9JWHDӾ݋b5%E }-KxIQ]ϝ*UKn$aN84ಮg64 B tU6yU|#/] 3> +Apfش!q)k]P +<꘳QS}Q7Cbp>> )j/5H z.2jNf3zĻ`a<I ;pJ \,fO$^N\6AT~+5RtŕKveJ9 nA*sϫ4Rg64&;d" hZ O6+ɘ=a%+)嵈}B\Q|yOKUl +Lnޗ6|CMknc"U|5̷ B~,uƂiT/IɣCuL(& #y?afzmk +Lm$G-O +xoc L=HH)VG& +Q‰͌gvG%Ϣ@Vؖb"+6  7 j}413?^nۑ{m)?{wo;`-_j %mxS JO\91)p9Ͳx}t. +MQ OiF}]oOI RG@OsQ٨L2XVtQ9dϐ̔Q"b> r2>x PcfG$2j4rQ#*XVtܬsql42t ˜: UTxWatRziQ%7>.!YHh[{Z{YEn@"ĻA|&IejC&q)#.^l?y`C`c,DSWz?"QC\du69Q?m!p lRϪi)M\ 42 c3 %S|Vօ*ҹf7A&K{6˒ ٵ+ M2bRt̟+iVՎu/ p|J壹1dR^Nsx:JjmMol(/MEn:Ep$I %}wFT,¡h>rx&B jwznÅ[8QGmU+bh)3vt("5.( n̲TD KÉ^9ѳ1SI8.*.4-p5zFpl5a/i +g`U?k"W S+'<">7$>rYz@[^j$dsh鑭p<8|055ZoXt>FjZj齂^mgġPqDW +VƢ\Qz8gZjs}6<FA +,vSQ=p~k}<% Kȴ'eݤ\00(_wLi tXp +ʦƒ/G͟P1ojY +Z;{bQϏ 1D!?젦h3d,hR +ko8Wz5BX%Bjb6õ[?F:^$28I;):Z4U|n#j.{vigiDgb@7B #jsRog뗪}ûyaAq05_ՠ  + &,niXB?I%sуR'jk2:.+@gb57Bz%X.q(USO'ʎ3_8ե6u.Du^i'#\ Dͷ8Kxw duRQD ' d:$r=]h *\=H9礎ՉG1 +| ƳVItULܵh +e z@T3RBΨ\eʐ/ J|_w";µq![93R~g 3 +LׄP~uo羻03NۄnGukײi6=f5l/ߏE^Au ^?xǣMA[ +&OV#z̥kqE@=ۣބ@X\`Q=8xvG~S\p.;y.pƙfOn2a3n=Α UVcTzQ`"j DoSWдd=@lxfw1^x wb:"qM=mB-q&j\W3WY(-Z`Yv2N~_~Y?oeYү&[ x;ddf!9 tevD(z6nk'*E/SFvU+,\&ACOzt;x6Hs Rf>aH~cJB𹻂!n j3QqM7. !G/`]p>M| _׭@VR| 9dQUW4E6{iܢPZ>(J&6 ;E@Dr_=Hq(q^#0#jEJsg -.tC2uaj_zǴϭ@=Ɲ.OZ9D*r,8us<)1AW/gt{^pk?vqmQ (dJ\Jן"8;p~UkAޫI 9[B7<uvm~j.[£%ڈ_gBH<zx#'q`;CwAj/i5e-ԇX<,:6d[`~[q wЗP;]`MF}LrR b< F81 `cdHBWl0CAt?;(RurCZ=nkUw:x!t6uO HH"!-H`fHH( +/O+N7t /KzFC!,S{̇뉪uw|-{@vSP\5zyߞImSkv̸\w2# uFWWcUvnpY4G&#aI'ͭȠENv9h ’Y ƣp{w5')07|z *s֛e6΁C˲8dS a: 7bD2-FMhDnGj DT`Q9p"Oנ7VSmUoUzQ &]QlC Dt;Ŝb'2m_:Af{쵋}N. .vjt`J[*<n +3<ލ\mlNo*&f #~G3VFݮDs(,˶}`xsπU c ,܀Ɋs% mBozrGuD'p>s=&= LO$^I +Xge(ޓ; MQ"Y8C$ܹ@ScL!"EDzm+:VB!_8l]`w9\!:mfÄ3t@AAry;5ɨV>4] U`Pkn*Xd±iTÙ1(>q~m_g0Hi;``jQ`yx}XzGP +̟<FȦ Ұ +|=K=9K&jVo=_2Kv ѓm{9Ag2k#2{qIv2=@{\Y%kE'!sJT{C"GI s2&N Dͼl^$͞ރ\S^tdBRњ9TRQ*vPKΨkGcs5:JP V./K̰l"d ϯ|]?%ab̯+9xw,t-rguWn(螕`(\[堭L[s[T7qrDg-PG]{lQز4&M>npK>3+NIib˹D-* (p)/5㭱wN򝷦_ְ—.ƌ)U2Y}PhT-+י钅V(y d|J m(2(jufM$] +z3BWw+lƅ6 +*,06v(p~cSs#bŃW+e T A WI~j)xW!2rScpPܑ ZXvKu_eW3a֮9FOt##gw|wSVxɮwzʪ\w Ve9,/nXaZ=ut8+fujU.dLv@uڭm#Ź1OBmՒڤ IC5|`9vlx&{0A3m|n_CNA_?5!usT0(~ڭ7ă3C{n4)ɾ'{^{Z MYZ_n|16oEU Ԭ38)D|ZA(!R֭ =x+}k 3!ung\8 eQ*!0N\aOꄘ~ +ޅ TͶ-ҞdͫVGcƉ.;s+EOd(S.64,-䊘t6gЂMTP<)zZ߁fh5<[S-uE[}ẻ^ Emy=cY2eev7 lor![ Z벬(d$`aA՟i P#̰]jٻ0.p:$"##d;%_ȋZ܅[=ަƴS~,taYKU'7 +zsazzwiq0Sl7DAL-fS?%?Pkv0NXC m؂QBfc Wg0Z;E7|)Ǎ?\9bD mV +LmBSf!3@dٔ~USSāXN/u{2Y܊w[QR g,b*1*HZf̈vQL%סM&=w!lRҮ-.]ic5) , +_>QKKӀ PLBޤ@-ۙ/Ywi$f>ΎVZ+2Aξi,Xeq ɗ+D$Η' +BQ(*XړEvH^Ī>li빹%,oR :v< _2$د/D@[P< -m6HCɾ<-9%1,.,,&>9 Un #ka D=ȶ5sHtpHN2=%vKaYc&5]<,Pzzp&REpL52zHw},mѤ6DѥfCtlWH'! CČd,6o|>U-gblߢۣq=kImF\*se;XX]w ,ga>fjJG-ʷ] SJx;DG2"Nt9V _m +eȼ9<_3A2 +da?}Bl*1cBMARlZT E`v!)21n~ŶF$9)0A7EQ +tV0DCC{4@ETTΗVoAXH3 +֢$9CX΁F&7ZJ,!{填IKPG*_u +{2~P5ՠm]͋1lWn {@I96܆=:"^f蓦KA87Md栎Ι+f_oj}])+:`sc)|W#b#09+ H #M:Kz4[僡@P`ܹpK?{c SC(VAlP&QX8W* +> pɣ qDN؃|3&3g ߝ(qBA@ٱ$yH/y h!%A»heN9?];%=ɤ>']6G*Jo0[bF=-@7`ɑ7T_Q .,-V ~uP"J8tmX*E*D߫*  +|% +\"TOCzj`sQ4fl+/AV(cԃU29.wSQ3SYqTJײ*j>FtE6+SB]֌X+̚§َ.aC2 +$9׌ (jO=g`"Q_eKE23Ҧ kyqq7T8ݧ($!A Sזȹ3HtgP30Zun$}5mtsa z35SG9a_ miW+q$fU +"K.ƃZJRw7=0 3U((1:m3O(P/X:BV7x;8HZYܼC=YMlVS@)6yҢtڳaQd`k=I?Hy +4xߦO%Y)r% ]#!MEdP AW';Q!})S<tCCuv^RR#igڦ3S jȃT}L1QF uh)0%Y'qw7HmV3r°MzFoUp +,r{fJUbhO G?d@PSȗ./⺋K~Pz9Šc~maohTUFwO2KqQ?}U!<; #vKʠ; +9;: |MtWA-"fN%$4o6CBA7RɶA*mlΙ搢sO8)39sZo,BǮ*$)(3kM֞Vf̙}O$ƥͥ,*PR UWax="LDY/qU05訃h$e\s3H]%V?K:h?P`N/kwZr-qLz8rrH(l<^T:՚:YϫޖAw?~f*Gg YX+/L5T+ڀ0\`rd\IknX eU+c?Q98Cc|bt0P?//yV +UK V`PYؕΦ@{rg_adp;GCvm=Ag46W~@cBSmhaU:ZNcg7FYeU3"IT#k?xZs)`3wkK*@!LAlR Eg )O2`*9Tؐ_!kp9(I*DޑRA +ZELٗ.Ͻ4GxɌ>YW"f)h"YYUx4?B1gf1wsY9c;9p쓀+ &LE_2=E{2*r2SA3?fZ BpêYa ]/O7A%RU>7[\ & Pt4* +ۙ +ΩF<,!.O$zV.> + 'j?~ț;>_]Yytah; 1GMγ0OfO P >pYy(e#gB''WQ Q@ڃ4;H8k`љM)m9Y,ǞEzs +t+VT*36lʪofl.EOfw[Xgz^X9x?2Ƴ(t3<>dwDK7`WsieLda^sLnUO,~u}/wUIknz6t=ZVF!#PDLRZ<<|EwTgdWYA,6'Ji#2S̪X7;$Xdi . ףB,ͨ]sߗkrܑ=wzy݁NQch4f,E-Bj£,"dCCsX/QxA3ヾ)xAʛ ,skT\ѡP 8Ї#{Zw A(LT`=Q`L ^^WФ݉l3X~ 8'.:e~u@[;K5R襇-;L=RСB28LѠ$]"=$Z*Cb:}] omX'41ǐCpz3F^7Φi~VpsCͬĦĘ!^Yl||ieKV_2Qu2窏[Ke +facmѷ*2N@qO SbQJZm4X~EŽ cµ"hseщ]R>2CpȬ>+Ƴ5?z5R!!o9ħjA~hV + +=MOuSl^c*Y3cxH1(Y/F~鲷!u.m}LtU؅Zv u/ε)5'Tb$^[.>J%O_AN +ZץPjRP|Ix0dG=, ˄gͶBK)H P.-B+l!Ꚍ%PjDs%wAˤ~w)peE/%HbtR` +QOYs1!A}U5[C⿏ipfa^sR`Gb n121~p؏x?}@Kk"c)%l0n(u +p6X<- + 0e~%xĀ%ƒyLLo6eIˆA皜AqK~jSn >Q4gEZRlR%+R_r9C꺹0@ΐUaڴ?,7c ĝF " Z/335!N8sR6xЯ=飹E1OOM`{Ma8ys~i*Ɏ3F$Oik*EX6^xf"˜vd?@HI.|{qB5ycUvKqzռEI4m7^LߒEcJΙ;SJ+7{?k#J*:ƫR qVyY!--q|H0 J%&(БW)Z|?0ASѾ/(uR +Qi@uk lc9MTF2XJNǔ]ye7Z|;R*,z!V[*BXѕ ֬}5V7U* ;J  ,y)GR?=ԇ +m 5ix/hBObR>Bi]7M36FL=,nn0=>"Dӱxf8`T||>tkTB13xzTz_"L:@Aj׃pc^V0SL`+˒I锨顈皾\쥀=By"4-] 3RBEoW⑒wPFQҔwΐӷ=&y?LߗuMUv)gr9WLw3b ]I*0ChB8.Jd+lu7 'Qz H*)q8D#r8|fߣ֯^m7FfFx5ElٖF&bQ6 ]epe&U+#Nр=?nE &d`~V6p3 ܊4`sKF4fkcmRV;L=G=>H +\Ěwb"mU}>~(O0[0롧x)aTX?1" xce(33 <=bAk.ьڦ&>4RM&tH v.ۣ=fH kaO+П ))d.V7C޹QPsT' S71QtFm!&py@I lA}\q؄`ڃГJH6,u(eT>wBKA {)'̜c4)+[`6En"kZ_j*A^~@5_"GCwG|(N;Sd>0'YDΐ!&ŭkox:۸!zjFɑس鋫} ҼZOƕ(p6)v6ԥa"lt}dAvsmz*mWY"}*|:L/ $%9)ɢ|S+co2`Mk +m<#Q}zC!p y}̤&X{s deVYR(hJS g,&{%$xns*y$źŽ[98j^u@0jٍ(}Jȳg&T, u> FhBAyg.`V] +ᤒy41(̊0%0dBƃQ9>._| +\^ƅDO%VRspA]=~}B[ \t|@@mMPxs$W:fRV1sJW-"z \%xy|NJ Fª9\/,} + D.b@IHFk{"a1kDPoMţX!zprGs׀2y$[,e=pY<_}'>fK3Oĕ,E(γ gT .uP8+WHtj$0 @m{>z@{ ļ9kP¬2>tB9VAޞP)[>d=&Wf%fy~/P>H. ]р {޾zfe)t&y,E;ihcH˷@#lچFHQۃ/Ny) ^j֛ \RLƇB7MQqE&/z;&s(&|pGs`:QU x|(.jV6(!2PAHD.'@C9kw(0f,zb̈́@@= 4RB/ +Yz#X^rÝe-LiqT<֤'7̛|V?<巊J`Ueucu'S9Y>u#fr|%GeZ*x`CHL-$@كPi>>>8:)LX&ZuMu#fdq"pl wx[/00ɣ| M +Z,H)93CD8t1¸Ӓ(y2R3HH,3_]fWhS`#N-j0n uQ;@P ~j`V Z +[Qr3A.\7Pvl6?.&hh +A. +D !K8+"!xuVN F.BXLﭯ;}Pq)uk-],GKq5jʥ[T1,M ӈj|!УEl2_GZ3H=J~ ^H*U<@< w 0l8yoGH\V-5vCϯ= c%rPO +=@%֖c-ϗn^ $f})mn +sgaVǟ BY6P} c S¸6i~c[ϒr{*ryP2a4diNRZU?CWBqXMA ܤdeqOK'R ==MFTQuUpNii0;ԑW;WJdBKPJ1E, + + ˫~CX3$ ,5H}$X16YА" ɋF^x@ߌvM*ȻR +nA8RST-ۏI-ZxLjSeƠvr||YqW{/*bT!Uz%%^=UjP%O =g@)2vb̧a$("$2<tRzpl+p2Oo5~O.M{9 :VIac65L~زrEJ7֋t U WQ4*=t3`6'~كHFN$>Ȣ Bʝ4XI,++Nӄ 6w3a;/ƥg]'(9A#+e8l +:iE,+A|V@B ƠR\tѷ~p۞YзmӀ-;TIW0w2d#8ti~qZfUSP&WNՈP@H'TE]dGfRбvxKO .[6@{t{ŃfW%h :) ϿC]cmwjY2%Ъ'g59X/սB_3V~g#`CN?ϣ/5Km{#)yA?US?7ٻ_tˁu&;ۈ&]V;!n Erδ `(l9Os )HͲJ>BȰ%]+o&@.kDZIDUJ Ë%Ia9Wg @(3u&A6gepaYWˏ0a5ZCq*"(l+,\Q,۲ -f*Vw7p  Mڃ,*NI$`Vm(@1(KjB|ܔU%xFeHq D@_U#ˆԪ:Eٔy#r^PK!}9֗e4nB Ɉ v8[EZu rQXDF[tIY?Tյqx:;> z[}W="IK^JD-萞;c§@)\dj`F| Ga8?JGG] 1)ܾ"bͯyՆ Gᯁ 4Z > *%do筅϶O!Kƣ{gSNO##3N0>@ك+p1ZP"54nr?#EeW]}:jvWd=/OyobI0Zt|a,h}L|2*7 ;5?h~ ]Xܔn>Xd$F 0%5,\ Lo ./"α'՞썦)C.=VցjBx.CJ2]FM@L&Qř9d 5ic.Mj]<"e!?Cf8{N;DW;3u =H L8Mx0dߨC@jB,Ú.<ԆhyR +a "i)?1\Q /74HMԶF7&=Օq48`ťY{ĀP(ch\n^U|6s=9e Rz!Cy3Tٳf,NŦ)ry)+ k>[@A/A|Ym:'Yj}(5r(fH{@PcU^g{8~)V&24wpVf[?PBC[xco)|Y&cV/w>`y\2(6B HYbR`no_x/~n]DTTRԡoS6Q9ZhL +$SN>]Z-Ou&8 2(ߛqTi}(e}0°hfI-Cc$!׻lMeBemXܭ$Uȟӷ]/+t䌷e{W`Owʨ9fcׯn+r<`> X2?%|2}hPhAϙX'$j ҪmZ-/@ + +D2weetǷHAāx@ܡ6Љ +~8QDgQ}cKSkE_K_C2X?`ؿ vaTl$D. +T+/ΦF!f}-l d +Eu-.GN`)J(,Xe!YRp+^t[MTey Vh]XV! +F/\1G8tK`+7l=D(!h.&\gAJRNJTVSY'!8RYM2Fl!Ltc}1;yXl19 y^*}iXyK5' +̱]ф!]e?]tGڑk#]yhpS\R |XtcݍAL do*+E۸6&$^4o8 +3_֢iV 5=`P`lB?ekԵ>\{oK =Y!85"2-ħ{-V]L%ȳl_)z˻$LW>zׯDQ&=rR"TT8\IZJ?'ݩ6^D'?k5s-X{W~*pN$#ws/=cx 8*LFS#xm;\YP vS_8^'rI(I5X҅FO@,F&>۝7ѶvY<`&hK'_vg Oؓ4PCţ4 fL|O(VI~i{2|*JO'0cfHfʶHa Ϙ"e1S?B&Irұ]?W͞c`Oi=xXx}GLkQա8-ϬpJU +JY0w)bq+:^n]4lŅuxX .~ӱ:9LbG]ԔU>l4zl3e[:9GcH,q퐥<.Q8O(BE@/,mL/޾C"o88(p@6 pE?2KbP` _ !b†x8Ȅ]>ћy,T0}/P?j <J@;^a_U/:``O:=-%xR9F̿ɦVw 6_|" MY`$+EL+΃/ޭ\QkLMU.?Y6Gtl?̍<#dy`/N.IX &?XXZ(rLC ՗R\d;nm걄ݤ` Xd9&iض]jIC +(6e>jX`mOf1(0v,Bl%=@yP`qEiKKwNAN-U @>!\J\J&sظ]RY7T[²U v`.3'﫣x*M /?Y[.dqU>K*I|/7'Y,Ij*ImL Q;LJ%^3,Wjx(2xJ'E=^2%]',oتGvΡHX6peL͞cFI3j}ܟRtT_[(jL%2hKn^ʤOmϦPXvG4 +#$0欧l?fm"Eӵa!*Mvv6$^{ +)>KݕH1@u^mg{0p? +8{2bsQ7I0,X4 lQ}]$wXqX3Cj>c{SgNWeu3L[ #He GZ{ć2PK>I +V&}ߠ4.ך7$_j=D4 s9 +uiJJ T_#jw;aûH4(hE 鸁NJ=UHh%35tme@ pUL`bo>kWxS@ay*N(0̈́/jh^nЎeE{zt͏~vE Ao>b@q\WgΈqN 3flh[7 V጑t݌HAcKLet'Yt}8ZeUfO<0Ljc̢S 1k`/0d DŽNt%`hIe\v]u =U竩YϊJ4╏Z؏>݈+D׆8hhR>ZTPa|PB9jQY<2yMV@țˊ)nsp{cZ&' Z@2U/B9\84UNj(_=¯XuФDA)ҲJ„4LeʮȨ?{Lcn\ +6뿔J#rU\ej (g9@nI>I6 + k39^fŧA^A3gS⑑rZKb}qs}Z5Y|~7Dt, +ZwEΘSmƢ膅 +We+#KfLJڠ{FAo /2/k 9sx[%ːh[2^WbR`.]ۅtξTi/k~Eu\|)Gn8 +di +ĶMwd1)w +hwJyc`йq}Kmf,Gȹ'zVitKu>N|"~CjKayb5 2ux>X5^I(N"d>8ˏoPigdE(p!iT ⟰߯Fwez(7sJ%uHuMx1!l4k)h"RZ<.,L +l5>IJYʵ0u$l\ٕvKL61^BP +(F A㵯у.ҵu2tm͖hketT?͝?%!G7I TuSE2/iOb7M/mOS ]LmKpPlV0奊,H8߸pKȢ' k-aՓUE[͒ 5vct5}Ӎ,̇T([e`x^"unN0"Y3HEv'FBA~DZXߌԾ殺TmP8)GaCi/Egc82=N,R疷.1C8fiK{$LSSe5Lo[JQT__dXz~tsg+8F琰R]8oLiWhft.DGvNg`AG?"Va:~SWDTHM$(*6?k[Poq{)2'(.6ZTx&rM4F/[ZX#; !3D8Fbrsʼn.6y[=ю2 *c.`PM2)H +~p<5.ȱAGNu]Ef'E"U5ؽݠ <9^U.Iocur{xحB*|2Nu5I8dI_'/*O"0#! ]olT"AS *<ɨ̈́IG\a +~(Ҩ%+dUMOBD[iWwVc: lٻD"-q,'g蟉ALqy-=c@rRXDOJ"@5u;(HY[$wH7SUdi=ĊF><4?Yz!5X^ezX?58bB:S0l~@k=㕀A ?Gs?S"#+dypq(gѭ^LA *Pb,yŢ7';qy +7:R4L٭ hS ޥʘ' "1hʀHpK3Ls-&` 3xb8f _ d>*(ju IRǭB=տJer7.?Ql8='QP`lEc[N<ț j)=0~P`*{HJ[<_xb@P*jH >A15؇㾙fW"۲_XH[ ӞFZ$|f1@@QfOGR)P˸xO ?;_ʬ gH+k@Ǻ4cBòrؠx{>)D_tFQhC&S0AE/ $sL 5]./N@JDW\bx 3EHAX"&AHfBH\|&r~`7qehCmf~f3h!J#c|cyF $#/su$ThqM<~``f u*mcg1XU1PP2--QKҽf*M3S⽯Sc*Kmb>)%6I8 yq5 +nW4?ƨ+Tcx_`Y>؅ m{Sw„' ~TOPEARs_sCjpVfڗE"|Ş';DQqEpYZcΕu,{ARs ,|u#nΛ(}Lー-VS]8*OFǤ7FA SGԽ0Q1xl;٢<*26#=~&<_(.gi K2 +l07/;]e.<3ӥ&-ѹbV&TF|Z;SZx7b{C#I[ +ϙ=%DY?NRn;^'miZV$}(\ @hdp"ޅCOՏ7.JR5X3ޙs'F]HѼPHd G6ASOй4iTF"s/8В5|I!K%YBoUծy,kÈrRCDxN8R wWwݤod9D)KdB>_jqn!gR$Kj(ens-xם_:(z_xunIC5xc|B0} _G ~f3VUwxBp@j಴c\ȬZԉ`@ 8X40Y;`L~S4yťo/7?ɉxtyX|>K] +D \W6 +lQ/ +3BOj8TӜPYiƷp)3x`qᄔo`1`SMyܥQj/o 5a+ϕi]ngX@=ke0cN2+gC6PHg#8w!XaÄa p̷2!F]VB]T3FCX;lNJL L {]`+_9EΒL MP +m{/ dyo'#OOkG͝"Xjx#6I(h jx(?.'OK)\Epo$ ED)JDxav11YԔh֚n*JH-ԩ0h'  +קԇ rB{^s >Z%9rjc,Ncƀ7<6i(0/sd'Rݿ뿾a-GU/+.=}qL1H]}#ҟc`nYʢ p?aK6?<@ ,6,>vC& \.KzYS|˖s6!7~u8D} !a] +#K "Np7@A!_fmQZ^ڡϰkA E%@CNyE׻UPSPn0sHl˨3Um,EZ7H@oy=L8گtbbzم!ҟ0X@lp)sjD?@Hwt0oB\Հ$Tu>Ȃ ^Wż[ "'H~ؽ*L76]TWro7ʢPv `@産R >AWL0Ds숎o#WG/&D泸ˏ ߎ?Sl OS3[D"X (keѼ_-yk),ErRdB v2 lQCWA½b4T?0յ8!҈)CZleIðhA___']4LW_E2"h$%ZtqbѻΒ_EzȁȚJ ".gAD)Щ%+ 9 +OŦ5X ٰu{OLΑmކoқWG]ͅyV+`Ա8J4,zL=2xQe\-B+妿q,EWjWJi ITzW 9]W8Qn> +'Xw~r>6H뤜tw0| 6=mp{%xϣA观ITK*}1,{q2lPAIM H +Eړ]c*& ij0k JJ^Zx!ECݓx*@:%RRRZ4 +M 4+nέu|I)B2QʵUKuL0bڒTOySՀ{vx3JoZ^*"ɔ6KQd Gܔr3gSQk0cn֤ |jN윝Rl>Y!v9b'EtJ"B?ڋS"3|)&KIbx͘]Cv uGtE3'!Acޙ_盫σΥkg5xF/:" Z`If(+ +ɾr ngiC+ _sIɻa13UJ΀>RlW衈M܃CQ32Qc(Gq<Ar)Z>)47O\WD]CևC:ᑀA)~NBf_"5cn3ӈ, +e AwO");l)=j_y({}U(ˏ5'(@)2` J0sZ<%o*5bVpYo([?|F2.99jV<L( 2rQX /vV(&p 7 )E9xF+&{t:6Mb(E%^uqχEkׇ{PjYJ4Cr.}3Ǐ&!?<YTΘ S _ '<]U<2- &#8if8JwYM&m#yq ݈ydo$GyuaH2hP~*}cr$V)^f|^vs]6Zu5:+E!MMƈ@C˲(mbZ5S`J S ݙ{QC0q61`6 %Nh$#H\Q|z Nz%JRlQVBzڔ%vY MK[|L+QčZ04EIyZu7Y9 [9 [ +Eg$$ccdI.١Uڌ`.װ8E.m㗷tP&\| 1;z |v.!@W̗UxY}M{7e%i>x1I/UH.4J+6o~QsOdbM(ˬzv[Y ^)>{ғpqfsSX dM +/6M&.sQ=I88yƒ1Vq4m— !?!;Hܨgn%ȡ7.?G  /5π iP9 tn8J>d7HĬ&VFGP9wunD,m[q)N3p?\55+$g\ ̔8.Ρۍe8o1P,FvzoW>Y^lvқ@ = 3*}1$%v<f[1qY2 +4e^ӽZ W{Y:og]:T uY23p +AgߣZҢPi,w֬QiѶlP{,Lgq(gyL6<4)B/@Yd:vE`G VZIB=Xxiw)0Vrك/:)؍i_$*}0^!ij8t-Xdt GE+(R/Tv Em0UJQp31)S8#!f=KYvڻjS>2/Sk`t2&s䠢 S&)pw#Dq+ C0~qJS7Xx<*Ѳy!L^&%MO'l7m(pu_<+ߢYw3c)!ꀼvPk1 +_m/@4TjAi3t81@@@Հu%.+ɄV).= ˂$`|P` kewi0NqsCꛇs2ll'+P@le$|5gv3S<ϕgׂ?\_6>߽iu1ee#3U1I.0e]⸙kQ#$ (|3(0ʐituU65ޞ֩c!(:]y"DеXovj*)( l +DRYZzUΉZ}}(R5*e( +tn,m|B' 8ɸZ z +X5 lbo[nsg'_Q5,ryV<d,yc^g35Pj/[Xzґd}yǙ[J^Kp +9D@rjo}#S~z^?/1T*S~%vL${,, Ϭ>W0@yX]]k2.tSst2=ՓPٯ~ɘ׫{gxq$&]9GL> +,@$iq-FUG5a@úž-"/re+-߇NK*CLZr +Y_d /&ڏ +& +C aP! Mijǎ|H#o) Cɯgp^/ q,+GYtR׷$-fLH`aHaW~M?XyճLxB6)[{Un +pdEL@")9(yi$, +: +7sX' +U +~BBi\ (4Lt^;5r.Z;[^H gC8L]{ yjYNaƄ|ps}5Ѭ%,1>khk0  ++H#YH#7$f5 x.tpŐ#Ρd)1飕&vd8ᛊNSHxܢy<\;?lAҘ.܁ZxTQ.  +78~, hHIS> e]b*=Akdj)KPfZ`} L`i&/lx6H&ҷVF,p! #$Ra'xrUy|  ,# + 3.@ B$ S5iBT2z8fnuRuwL<ЇƀTP=/8Rv0 dԭM=sݷiSyO:>Lr"lLD}V詋qŕɴ|5Rc0LDO` ɘ/B|m]5T(C3z\$6ywe"cyH{fRt(ṞQO N'!SGGBoaprS=Zv3A=?v8-?h@RQ p񲹍&i9ۊ@gC|miwߠ|O ]q??f!A|0 +\ Eע[5xZըY@ q-b&d)>(\==w,oV<F= _DCEWI[tv2(@ +zP<[Ԑ䇜(.(p@_ru#MR8gw‘ 0HtxY8]Y8+&V>cvb +HW (jVTP]2J% ٔ0K9en\5|C$z(D,)>CA/p T[潳&vv\\'=zE+ +n =Jb\1#Ϭ@v( .6%0큻)Q&8̍c2\ W7*pxw Q8LGڣk#P,&)ƀjD(61njFږ|yvÊ&FmSq&yH /Iҏdq1G~yfRg˙th(| 1& ayuFY0{a9H@#U2Z XE>c(T.k }-S[D.q0\MHqH]+&9%ԩbLIJ+nyVu3]BG IԬ[&I3jĊ6#ASxNȗ0ѵ/3c~>E,+v|4fQ5KY_"(txx8w|I] i +j^؅1L0 a`R4CG"ˆvinZjbtE 9Iyn*~ilɤė{j#|v<#>yMV9Ӌ@ax~"U6N@]իWESwXSR~qWB{x^I}}9B=P ʈ̖FZxDr.~/_.K4|[2OjS +6ڷ)ML4`A0LY0gvd#ꢾ); ?y)0&J(;j Cu-R<"ppm1.t(p6 fլ//ՑIDs6 +t,A+!N9Qz݁N`LP`[ثU^ L@Sq8XvЋ8.|^L8knw 9(pv@|%XIVy4/P=hPQWĹD LOsGOf"^pڌLlkq&`~+1ʷȌf߉Hǫ顬e[$EKWMVoVoV䃿h`F\RT$l3Cߤ,*~eOkJS2#QI)_{cJRZ*2\"m(K$c&&Jm:^vjɞA÷:d8a^k?كe*ħ{I> txa;eO٨* +pI[']vK6Wy30ByE%H4`8|(p6 ~*Fb +Ki4CAcS\,=m(  {Eu(P9QpuiCY1EV/;/_H\蛴ON8 H⺿"O4& qQhhӆm +BGNGIwcx +D0/REnĞA+E^ PC@>f:M RwH|v1 Y +|[حlۦrs(nxxNq_.;㊰OH;bP`,?.m@UcԖ] +py6&)sq(ꐢYH1k'ljF`%]*]̻j(5tWcȱ~pb p<MxQ; ןJE/TEs SQ1d>L+.{n!dq6hfn +)e]ݚTیS'DQ pcq&!j |53S8_ lx!/jMݟo3C-xC86|.-#zy6j@%E3 +0zw!m5GMfM ,F, +@=ySB40|;mfe]ޠ P,@+-qTwѸҝ!U! +*ςh'k@:7\|XR~!X “;_Ȗދ^Lϳ-.a*~؈-qn+s!؋@g(c;H)yC`̖2M1Vyz_晠Bʹ"|?1۾dgQI8)RKRC80 +I{g1(v + up@9(1n)uuj1=4Õx +ho^Em!D * >^ˏ`1m1@t,_`3+tE/L}Io(5/an`{ EqHJ6ҋm,:B,<:b-;܈Fy𭒽iPм$VFʄ&*' +ƉB2DzQvy"U[Vv{e;SGAL hC>Nr fVE60l*Avȵ`%!oTIJfJ˷Lz@`р2 ndZ+ +5s:+:;VGΆދ*KvF]+ʜS?11|6:t6m'*`q7@MrbhQ`w!0TXu"5т# q. NG򌆇=Ƣt4*{]$Ӊ֓2L\+q0iPS\ +L|ܵعǾ ].56J1ѽTjN,P + R _ȿb&[ yNɟg׊]P"rzA*HJYR"'ikEMם/V}F~<%ԑ}kB&KBG5 a}dl!D$f(Kh,U \ )#K *(0ޗ1i&/k0 b'{6jűw}L xCͩ-'N}`XCg R> .yjOħIjS-:^r/}.L2A!~D7(%4V:E~q!k(0)r +%$X d1(7A7UsMzWZ9mlV?FPU,7߄hLXR!"IjgTFCʏp@/NN`{ipDӵ`t} +?^xWI +02IU cؒ2;MU/kcϥ/,!~T@ĮIg>4!@,) + +XM2q\,BB@Jsڙۑ(_:,w襎Q\Xq|mr1kC5l!,U +[E* yI%|RcƐjkעk}`SԀЎ}! +t?0GQp>| 34زdz_Sc\1Y󸘸G.͒%2S&Y~?KiX'gP*RQU@>̻(p7iH?1#AKˎ8/R~@W?u%^t)𬋞LAPEq_)f`lYޅɡD4saxe,=~t2&) +W@6CѯP(NPDS2Κ^~cOto覐5r!Ed8j_Hϴ9]b4)B?h0 f M[_'{:R{;=p2>`D0vIn'O"R"욀+2+?6E7+,P4ƨ-&?T:^zJC)P KIT`:ٳs]Ε%f[ *jN8ߦ;-+/E$>Dkg27a#&xgJXP*Q9/N?\d<8ٗs<?p>udSQޏzaǤ!cȻm +^.x0襓cd3f*{M|c2YW>}wwriET NM6w ?- cJ8?tw4_Gl~nΘ)⏐wOԎӛtVto33/ +Q,5le) (BUOUfI'9m;l8l P1{A5^}uziYe[6_YP$=8C/ޓ®h7{IsqDPdbZ{Pnf .;ZjBq] ;!"Ž٬89h?QzgoRgO+x??xWV;??_K?_?{_OŹw4re37~ң>.c7 +x9ɐw +;8"kŌYdjAb<+RLI(+z`:V_ w9=VFG֬9j^t GG 1VŰr 6:|xd߄We6^#XJG=IAüp3ie+i*I ((ȧ{)z.B^Ԩ^e-_scM~A, ;X 7>SsR U~G;Ap@X&S֕P=e:4ơnS0x8_Y=Ů +t +wpx<8.? 'JNb{_,@:Xe28ynpCY}nL{k:zOX{v3s +|ΠD(WL3Kc~tz\ϬX5t3!L+cZۅS!^k# /ӡ3?wQ@ +sޛ Mtk&2.d>֓} ;LY?d]o.29 $4i$eYnќE~ƹN 4۝չ6~3"ԑ꡷̔g[x&ēebR#+x̦1EDZ7ǹa'Y0 + +MD>1{f҄)m8)p@=[ȌC))P걔j>q.I +|ж榽 @$e1ъ AGQ`Kv;.Dłai暚tԙ1$}vcm:T>y$^^tc>w@ '(Z0;dVzu^\:a$@"Y-W̋>\a>%p$W.f6!FZ!K?!~LX, o2GזL-0\w fd| "@i%:! l&SkGdeHi +6<^r8?܉ +ebDž5bJ,>RD'F>]]m5G` %' T$mIj~〲Ha ¯Q(gԀ3kCgz4KY8Hp~e qM;͓~ۏJ`Շu$Z!@K;쎗rDA czӜQmޡ0 OkpI'2|?.]wyM_ ~l]f,4sTUQ_AWj(%79Nĸ0ĉSwF6aۏ弍`S@Ns{ +;8n|q)ek[rģy9JX]`sJD9<:nZq]ac<AAoJ ~k̸ wTb܅t(p7j{Z]cQ +**kĵgH9>I$\}S=1P +&/wid4 `OjF7%κnʎxDb7p;ث;KOH>Pp<^_OJ]AA+"k@_L2S55cEtAV."KՎ +M#2fb[UaT,%Q %GkGgk(y2c;>4 dNDŽxq̟Z܉RR"x єIS`CC+EVέPcGw&hU>oT1mhH4`е7qhMj$(*yeRIWvI8˟E[xX{L KӀIs N;0( +fK.>8f yOI ,L c #WOW:,g+Zꔲ4rӓ=GBB*@%rwmT:3BgQsZxscg٘Ӯg=^" *}0 7T1rǕӡ2KN +kEozʹGz\<Ԧ)c~s􌧱 OmTb~P`l-f{~Q,']~SER qoQğ؁ ^8h!IxQW +Y$í_kOj)@< >el$mԋ ;،MH,l?uAJ%`qnπOG|mxd,!!O|t;L +"jÍ֗fm,2|ssŬ"7x +xXh2=o\Ls` `flnp)gsY_GsZ+$&E#?sa}A:Q5Gz8bV+؎>>*&oJ+mַ*'2qG(Nv`_kո,5JVr@l1qɦ3tt*?64C'Ec4?t/$ܯFԀo>.#$֖+9^c?7)@k3Pm7SP>,{de,l8@>ec+4t<=590p7L͢f)кqxلq*Š#;g-Z m +(jh\ !Xv- +L-6[ؗ^(*4(ק<%Җ(pFxUk|bPD#8ҴRϿ`IR^ ,4M'KZeT"Ubxɳ]]I)ӷ32ϻ ΒmEEzl5p1 OG\i3/Da;g՛O0mzbXH/ +0$ <$T* +C(<.4]S2PY|XiBQXO (nzMGyMjѸۭv. sp . +Dn%- ^Y]:N\C)ۄ +p. J|FH}":?A;XG\BZ@#tHG=ެ_;^0 }oqT~szs7La/׿_m7?_???o;?go[ξb|e񩌢KA/76EъӺFڸBKuO)})ZxEÿ+.,^mKE$2Yg R[J˖Ot] A&E[) 2W*bvM +狁elЇ&LSl8\a(!O 5v9^MW)pM\푧~jyzR<2S{ _f0Ryya 9[D 6(%ݼhĆT ų %%dk>q/ +BT!>3uR(3أ,tGДpP6v݋ڟڳ; Pϝ NO_`C V./ BvcӚ岶Unƹ-~rU}' >Z N0:#={Fr2׳>D\*Dun6FdA tI0&z-0@ˋ'K$#&)}dP +ꩧZT#gTtȌOH wxdg]l?+6tmg\>pHy>)Ya +cެm75dO8*^s䕸pDA[ +MA 7(J4ɧ7~1_6v? UPI;39XFp-z'gkoPwAU'{_(0gd^ncT!O`̾FvGE5PS-ߢaLL5TemOǞհDA +T&;U `Q700q*&v +/.jDb)K>7k`Q`! t'yn㒐WN'ՊƱ\8cڨ-+ ;IppK %s`Ch0X ,8|Hcڊx8b '{_ +)XgAro+-eꄷ͝ڌ&@R!r@d c3"Jcm!No /.;,i&RGS^޿Xs$H. +Y:!i&3FE%OU Qp9 "kZd~7}ݦ}n^ǻodG|H+I@X/}oY^ogS5}޵24[DO%k +Z)y6 xrɇPDvrqQZ!zz )NCot𐐆 Ytoik`x~ua/LHOkNgMev![? +!(QaK_RhIB]H +| }}N66f/qߡ^ԩ&18^蕍Q޿ uy{F3bʠEAs LM10aW'ἝQϻɔ_[_܌#_y5&bX4'ʒc Vj =!yDL/ +,hl* 9!eqDe&EfL- #=~liB =CkYҪ&{+<EWM  2Gє֐4H@j,%4 P5V<5Bz41։KAo/۳Ulny;Db<} ]$7;7g Y=+{\g& G ,tqxT~ +z~F0 ww@<(p6b e b)]`EYZŲrk +lmS|#4pBόG Q݇K"DP |pUTל6~ ,Foub˼FjY٨26{ +i>K*ISXcCv k\ZEAI s Kؠ +,Z}> $@]aɰDPCB/cߤd&*;NE!rØ,-& kG53 В ߰PЋh̊/]Fi{uENXRSPޏ L HtxjJbRKMA J3$ϼŽ^ U{.SEgVbړo=SWY?.c}  ͧIbS`,cԊ%&y5ɧ@go@+>X1q}ilR9XTiZK&Mn։Gׇq?c*)TOH9JLll'~>wSY 5vaE\u5 f '+H+*l(ߌcͽf|2 v/-Z + \ CIpPюZ3 /Bku Dn![?KgXt{%fRAI~Kn@CF$*{]]@mr"oH)ZS&f>. uصwApZxaIp){*im)$)^NHjWsoxBW$TOT,r$ٌY#}2*s'0]Ֆz,5q( 1 qpD`DUGNfW!cDTi<Σ)k@iDID4a47d5Ƣvka/<8 jV)㋢'7;T5X +rQ(funL-,cSxWfnwH]lo",I'i73 È[G𗫑x-دk|;OŹ=$J6QN}`”SøTq=f]ϪG`iTϟRg穒d]>"\AsөԜ8,p_U!N/uζ+y%[㸝)d;wٙd.2g.{:Cv{^ ]wJy8I\j9Y 4љ*Zj|JRƇ2CNҕ~ZOG6eR\ŀฌtI0\ԄG @}6Cx&-@-!xs-d _FMS0 ʖ((jc~lICej܇$ʏ*u2i~J PK I [Sj+JeO>ᲉC/ W{|K|j_MlkS(?\ +p ('TyT//#fw\UW04(puT,'7:k'6=>+dMg[k*ŋLnkcbk5/0ES w؄pdUИ&Zmvs3V /l'&j 2_i}hy v8utuzLv#,4XrZt*nF!.!^`q3*0ʁ4ϧ82|flnp)ﲶ4ýi %XcE`HB}I$F82!i`I:}8Hր]m}MF:j2C %һ_~S7 +fNXDfm(ZGzWq!((pJibAC'{WZh/H#$ 6y =vL,/X3ǡ\.o4 Ωk mn*>W0/Q>]~8h猁Yr%*k@O@/(+^ov-PhJrN*/ +r +hrX7j>o~/(#1gre-pf/1I# + eiݮ1L^<_ +@*,ʣo"5`#\SbAPRxih⊾a,::o1QtC(i5L~T])^w +lyLF_x&6Ȏ,GXu>\Qڟ>K/:3Oy,_kNS@B@2%:T>m]i rs32_zG>(L)NK +Lr~XמO#t)V2)0:tᘵy8r[@n?kKCV=W6pLywEqRGw ^uD*W5TWj!⮐^,ԍiasEk. x{\2|K25 8=И&چe{( .<_`xCgQ>b9?aR~\TmB(Y6)*Ow!٨y&䒘WZtS{OP`1E9j%~R(PN ;SU7'Cs5BQX!t,,2C\6`}ش^+x+ đFY) @,Kn('RL鷹磮ʘ)P tuxRVR*^ION䅕ZQڎ͢3-9nu_+AӗI(򣒫ƹVVX͉c; qlٮ7,sUI‰ݤL7= N +,?l$!bXJpGԷK@v'7۞J}QB{3Qs꟫ޢH&|LDB$fK4e#|g^TmFjxn ,FEXѽ?,-eWB݂`rKo<`Kj@#7w5 cAS 4ֵJ۰6)T4eQ$H- #8\&pE{b"5@h7!H!݋*בO^<1_V*p +s\q\-YrR=S{($o# M.:׿gCVv9{q*a,y b։Oξ(*`4aW^ 0PGF!6"Rq +|1C\}|v=A᳃?H||HlC>|K#[>,]doA :|MW3řN"%NWћQ\PֶNE:/7VWt Te34`hU ^5CF>ďѝжq*c?B{'pC|Ht<hBt2'S=ҟ +@P|tf77>^Ck2 . HbFw ^}`/}lAյwoكMQe ]=/ NDFK-xD$@(0H /N K4'tuY ֏169P}{S4Ug@p\mtM/P>lc1&E:!sb5 b?;(#  + )eq))0 qaG .j0ĮqLM))p1w=ۮ8(-+yV%=i_B;\^X1B.|q38WhKZW!"2}Jk F6Jf׷% ! +kaSۏSV&ڊ2E!8}M=pX>1f΄&z^ Z4eX*K݉c/)<gS |b 60UO>(&̥ѨIM +|@^ʙ%%0!xb͕3a +2ږMRsV𧡏.8`a4 +p@MΙ3ƈOu9c$@ nClfߡF6FɰVk~ d~:6& B30F3WR#x(fv|c: +C]} <tR٥ƥHiӧQ9?p$pLz?" M2&!M3@iRG4&zJ ŏw)ߊUJw~1,եÝB\]] +'4 EᨑjH`ܑF*cYПäo0&#h"LJ3ȧS=KJՃxq~i>Tҵq|:ЎE{j*y4:AC,S^KCgI\w5%qG V@I{Qo%~dc.n<7ūQZR*Qw7VF#9))G$0&XcdQ6~%.g$|D"KNVi2@>b+HM`;p P Is=U U귏o=JT#8=A _&p+$hf1N_%\9rR@R8 G 0[?]YaF^i;a.;LyB>֦ʄ|Q_o6&( W8Y5H!L0tl#'cJ; oZZ[ttf.5)DKm7%M;f\Xl.{$@0Rjj +9uŲs>6]j޺\+؉3h,('uT64lԝAz9`S[QP*bcH?d6716\nߋ\n\OJX:GQ)l ©*%8 3p ,PKLaf&m 3SvzhO';l&RG/DFJ,3Dc2sk߾¿.xbd߃t_wGWoch|Cgͅ8 F#k9Ω7:bPŎBfO#|x@72aېnQ^k>p{#̉F)r зډb[>p=ZJP⎊Ro>ArWeqfN@hvh +ca ^_ +b,~hZz=#=Ą/9ȩm;F\.xip7Ȯs*$n+L+z\j c?ugaVF` N>R*%8ࡴÒR\6R$炩ZGʮ7ʻi9'#IQhoPu0Qg痹cf2=_?:۔$tK[(1`DV} %\pTȻ(MU,;ojb,xM~?o0 UZBm@^2Uq#qAcJDM~Z]c% 6b$C.iΫBF((!a: [`%phޯw> kJf5׼E{'zl".nQ*$_|'ۊuҟڤIOvQM*; +BONIZ>@=RokˢN+>iW0M>.Jjs2u}AK qJiRϛԆ1}a*$V ̣Zߩ? +ck'rź/oC\-KĜQW3¡/LAA +}(vo(Л:VOUz|CW(9}H뭑PuPWD:Ec"148@ɹjꗄW.j"Gv'QǪ6c=UXI pcblzD }SnvdLOq5ֹ+e?j$'  v<](Ad7:fⓙ -:qlaeQĿ(%T} +}f_};J=:o䏉Az5 +sV\N|0GJ~Ѱ[M:ApøTJq?f'N3o!]fu*}W.$>$Cb).1 ,uqXlÃ&br*s <x̋#N|. +C6Y`m)ֶ7)Mi129/ЧKA,WO &Q`7)x7&~P7._cwi8XۉبNUZsb>bi4Hz\}W/c#;#EJOkW4 ɼBLdʴiB̊[v7@?Ipcz>>.E=^k2մJm+`E{bc:+ }ȭp:;*Yg>͔adžxSTʹ:,.]wGTN?$bF^= 8C>\7P*jK^dqrЯ<>=>#Vxe Z +Op ٘`Ҁt^n!N`R}>Ƅe#wdS,`l Aβf< 0)gQ-WyPo0h3Xy o "|iسquTR8LlC?9O!/(g挲ILdANS `mok3-砸tY[3ڸe%Ɏq_?@T(^PD +2TY?{i]B*|ȶoEY^fJUxH`*i tsK{2+a Y..2f##[rCfL2,I$1MkĈ1:/~AJvqNiju.uV'gseq>KMc`kjh]6m!bȹDà…) ))uP N\Z+{xx D>39o$|@$儑c;N,C!+̥aۏ& ` ~5q;bA} +wo]h"E9~̀B$7s#:?DU>pUuآh[o0; = ,TYaa[@kշc7EHRG_S;:nc}K2%Ҙ>֣!s].F\\ptkp㎦ƚ6<*{0`[ԫ̙d|"P dd~?WXJPRK2q!h]f >-̏(E}q4!T J,a#2I e2ZOvyoυ- Q_O +#b"7vG|/ ӚJPl# ֧E!+Jۛ2\8\Y/nT;IJaBpʁUA+^:kHz@2;y/==~B7~FjU8OH Ī0p@7%TمY/c\`Õ1LKIȠ% i7oӝTH prm`VlW)"űiGB>"u84@83Lo +PѸR[)|ƛtRX,B|UӬT! lb2YNGv;H߫ d?]iF)GĀ!5`n]4%:j/u}/`V;so>V칞OhjUlHo1~mc'}>G%4TH nXާOɞp ``X7H9dدD<б5yQd}s؝13>8i>CSrW^GcőqmIoCÅ-Lc9y$}̷  +**/>#A}}ξH,}HB[`b .Jaؒ)θxߜRQ m('RJhD}BZ^bG\6^7 rqbb=[(&/&ckؘfa'8RBX}s8O+z v|>ī>~ΟoOPEs簔ٱ׳VQ7̧|,!x2sTŊSKX'8RQG5Ί3#7ڦ!갿0&:X`,c~cGdV9WܽB;*ߴ^ӐJ)OKU:SćM4?ڼUh% +Lk$'` U ]PUhCTI +GPx>6=0V> +;rm>nL{@a_#nEAJ +@\fپ_7! h~0L*$85ԉ!6 +/3w*#x,3Piv(sd[)7XҪSMuKR=w-E$01 $dv0En_qQU4.o&RX} F\\Ÿu^3b"kril%Avhk1|~98ըxvO>|4:QI9lǪ?o LP퉚>ďt}43T꽹zO- |V\lɋ{l)77*2̥;vN 98GO*ϓ矉~Dͧ€8%47Tpϕdr<=||1af9 YˀߴK6#UQ4k~|A2gSIjpK`cyo+S3?zKoOQkw3bn| 'xCY^*5Bj[nF=AT]? <3A_>/ߵUϟ }d$pRz׷c^95Q ?v(I$BI4fHph_B:smQܿԧRsiǎ!*S91P+§ +kl_B 7CR8.{A%њ-qҕ,U\r?FOmp*t#Y,WF$5TuCI|Ow'kHh\fo$E1y+qQRlFڊr笮A.x.պ8kEP#Yg)f)=[- BΛ'ID y,p7}E>Xm4zOӭվ HX *UmTЩ~I,I\wAjuae &2v`~ۏիZ@s:R0EA{Y0Y]3S HG \_d*s0: ;{:ȭW GJ^U>:|cT  +R݉\ 2Ļc443CjI`!Қ+䦵$DA}d&^Fnlċ˘2Ta}"s#2f;F0 +Ai2 K㠉`:m= 4_uK43>8}}~4)LE_uf9`Bi+a~~~zAy~,eeeuG?6}<ڟ}^?~ *`dc=5$h)n~nCKcXXtk+I>UzcQ&Klxf[0{v&7<%YI KH |jI`ḠjQ1-$C_}X ƒt%P8uIϲX#vBh"1x\U Kϊ\h"5GyY{&~!9y"wY7g v(||~n%TsT%0j_,'/-VoY +h ^3guե 98b+C}׃T{KqU`" + ( 8nSzie^U|LIꇔ6kH+-ܿEJ;#˳o^}=RR?iRqa&_ 6 t^K_F (g~%Q0Q~LKFO_zq!1 +F"܍x8e0B} \&nW7[(¹9?XL;< mGANUp&m8i| 6m=$Bݢ }7&&'e^ጃ[7ѐ 8P LvAO'< o 4Dz# WL&;:698' g΀C`J+"__8$&n}t2} S#©ܥ~]/xYΦ>$k 3?>Џ}ztU$t4v?ߠ[W:Hx|n#eCz?ߢIAiE*o/?c/cj 3 xc]l% NeT&uM$+5d_j+A=Kuiz)o0f.KfZVޣ0tK隹8nB^[ВW]Tbg܍w]%+v2";B'H s^̀!R#W\}0/2eh3b;GQ}6F gxU P=!ȅBtGA34Oi.U+b A67Qٯz>IPX`aiKWtvl&Mq9P3@U@Fk; ˹=0ДG?FLηSbG4Sq g5x´Iw~ O%!3vOsuȼχ2^ͅjKӅor: #'@qO ]^7$00c|Ѿ= l?/ G:( @!UJ/FC7V̳Qm$r!W4@Rt+lspMy声p%iQWC1„K-QM3{#{U^8,xD0 Oċ_*lybanԆ <3V;x?8c4`JN )a.uD1VKS gzk;_"ļȖy^iJ/~>RԅJۏbvmVK7.v_[SU)'C"nʳ"8wԌ0.yn _?^DDv0LsGgCqҭ^3_ܮ $R4 +gYkv}TaSZָćk>Pm,GUZ5߁%'a!-7fm7^F {;K?,l=}m62 kA4o +o f4z4/O^ -0 +dS\`'XУݾX|$߭GC9ݘ[|vł't'+WF-2osRG +NMwo\nr0o0_fpeԌ#8O[9W\-Y&)v|4**7ײO>_ =4~N)؋&ranfD}]{' +9[Yg>1[$3S<߯&kلU(n+χC.aLMtW856pf D5{epvKM`z Z͍S\7ڮjI`,Һ;)RBr @7% wMh dyHfoµDC1m C/qA4H?Z+܆î\Q߻'HsJyy/{`c@פ:+p"jI`*yAjPj Bl.f|VY\-rI&s5Dɚ_ټh5bɫƚ&7iGXJX>P7$^t_O:Z*:x+S;Emj]]pq5:O=WT + \ #fLfɯ;{[]rV9"#Z޴\ + rCd硷l:m +N>)F}t'auN6TBen\hLPh.ZV.n8Dl'MzE0-DCn T*`F +SA^>04{ y冔d :QƯxoJ6}=?+O^-|L: $SKA$^\ JnjrR a_՗-1Wd>TnsSn\*{ Bd$\8.=.+Zl pyQUIpUigV/vD5M'=u\HrlΝqZ/ww"yXׄz8>V=O | X @zݩ!򄾣lգ֍p5 Ąks6S,8~TBgF`rWDX9Ck;u rA !# XLDfHC1uHNcTH ppnћ*sL1 3Z)cՀ"_~ŷ,{7/0w5oZQ؁mg\ti-+wZ1C4R {oRLՕxEcYXњTK``"8}l_8o0l  E WA.\ǩp/-  ' ƾA}h=&x_QM*I) yCj0VHUޞ!k2Mg@.0m|ܘMNwÆ巏ui,N1T]%N8S7W4~{7_Wʝ+^l,9%ucmhvJ,ߐw*$vL:X1.HŔg7 vs(<\sŊ+SPEHc ,`"N M/&](F`zb`A0F`y"#|e481qtpW /wdg)*Ř><|v,__  ) ~yǏN:JYS.Wk׺ggCAN?dMKml$ sw_%)a9}6h <@OMx T >% f\zc8gwԖ|fWqc<2@{zCAO^_Md͜2%;r #J7V52P汘0դxoVi#8(ܹ4Q>Ǚy7=k^RG,gIB {.>S~#3"-Kq%_ǯHڋNj4 9s3D};>vp[zNB8"mFd':1,L-1A$ ~F'f%3*1)! kO:CJkɤ̉R).Agl54~r !1Η@RP۝Nl?5[&{cojiSXM,RWOG:cӍy]~>AO4W8c9 \>H- ٔo?tֱt' pKsH;pIouR?h=~6t$+``mL;-0À>Z^{h Q6ꏩj``{w~Yݮi x2JNř '';otE pnΡ3<puz} +\Qcqz[5^`G& +h3ʍF +:aC-r>q(} dr5q +ߨXFnt80bjLcHr`zsXnoa/޵|s7L;Xh{+=W.(si?_d R*$ WNR+t'T"H V5i6Z ibS>?Ή41Rp9 (## %m`H 42T6.}#Bcj&]9pS oPpXSM냃 x&|zP& b,˂9xRh0H@Z,t1Se/}Kp-YSBΗU$gʦ Ni,5T7C!:D(2h T8|T,5i*\!\oCḤ[~V$Z~hwPz9'$,0fH&w{^"!z2Zp9@G`c&N5xV\'NKH`6uU5/q(;aLqKC= +  oop-suSdȰ`eD.xY*մ(^cQ*: L bSRgrabj*z1Q(ĜtaW4%yJ- =ќ!t8r_ۇȋD6/j X1*$020e*7R[[Š$;}Ls\Y5xELJUhS4W~OCܦic[)ˤx1̍@*(@A˦\VFJ7ecqY@]Ipڙ{Fz +R"s#&Z87Y +dzM[G @0m"Q*YtAY|b8غp%VȸOvɚ9)bU lLCK_t8F(@R;\^M>1h0'~+UWsH}_hgЙ %Fn45j}1ގ6-]*jŁ5AN18%_/yto$ǡ z]ķ]-Oual[6sx+Χ"ҋXXC24M/}!LHIІ(G±2oEثa}(Rwi`ga} f"@cԽ}ۏ H2u*$10(yl[?Zvc0sЏ:EqB 5T'؅w.'1ޕݹPhgo<+=z!p%6r([:AUQ)(wib;sVgƝy*)?J#r7B)tw:t2ھ$0SXOAXߎo9Y*.b +Lq8tcc<>5eT$3)}sS6;Q~i"?S4ACض0Я$)$010u}7f@Ѯ0Q\zcGuiO_2@WIk + }~(-2^_SB\2{R'!} ,T_~XIyfXI#$xEkJ@ɳפ{=P澽4.k4OFݍMfa`>%̳{_h#Π.DB s; %Jg̓C.}^~}9hO@>%wp=d{mDɁhM =~ZA{@r#W#y+U-\omhS>vM.D\T ft\ +ԏ +vd\K.s1s썀NkP£V_Ng8r'3kx{VtHz89Ɣ!t FAC*J iQ?hJ*R;Ppeƨ~g|@R}t|惰Mˆ=Ź؏}AFE*Ѷ߽د^:TneL_('͕C3B >q`_댶im{uS +WPTs:4 JP BIe*7꿥$c:$eARۏ^$68V17|.Wо٩݉#b͵=?H"jParA1Zq +p t4v&FR}*q1[I-,|a{6&69yB 4#(m+1ͿpAUK`2McGק&=ȻB D#ưW51tԒWRjq.ZmZŰ4j/ L~8ԱuC]AHqt"S3Jl3:较M $&Ք>>%}U.LN2Vy>yiR*:KR&gs+U'f|uPidn"%N2]0ѬR贪ج҈^ہ!K PFKPdLR[H#~K͗͂,Ӆ> V`!UAi}GmU ]cdW DWG"?n`G}")(n 1` rY@^8޾^DC4.&cǜm7RY(h)S+uo3:=[T1J=#b0O*AԝP{Ԁqso$I{l=-*9Xӑ}x˺ tN3i3|ޫE$P}/uHPPHKPf㜜l|3 * XK;D{"% ϐk>9o?bC!^5 0`/D (+uFXEN'J@{"TĐMA@ݎ7,GUwCI"ҍoK[ud>9 >9TJ# i8HK(%Лh==r&xbO%=+-bl$o'Z1$k枎fuT]d\nk]U+CM3c$ i; XAcAgӹ!']cŪ]v +JFRݓeʝd(7 t)uqWy[7oHԹA:*X`ZOe=T՝UBUMs`\Ϝo <x]HCPzCl5a!tbG؝FہڦCY$opZSW8T~N\d.֑=-8lLBu6"{d7FLݠ7G/EDpoP̀=TNS3ǚ7a~DP=mA2ֱGUÑDvt:~AUe'JmXUN^lIaT %Nh`-dk&&a&i3KƦΙ&JxPjaYNTW?&Te qOk`rM; ++ Q +(.u1Fě#'N'5w7є+@Q@ac#\ ùr&3`opd5\"MY7Q?T8l;jNjG*h5)ASDU~ܮ0(qqm%߃'.sԁ/OX`CC. ranGeጌK'C?& C;t2 +SEDzoSg@"u=n7PB \?yxX~0& 01D>4tG$0s*|1,|1\{uTA*\ŨܱSUPM8J"Z"qHB#?{-_AJW1\yR%eR >I N|^䮣p(Waߡ?`V8]TY' z@`|0IJ"lj3PJPآRIb((5xL;E(H`>PS|NGcx8ީNчaܣ4 %B]}byU/ dƷK[~?Vf =?_+݈t +B}=M%*>V䈅cb-Ăj0rX-t_U5h!w7_A7{@:L)PPZ};>qvc܍<2䎧TSŦH#~pR)]&@bX4$*_ cJ /pѮVYӺH(%?H#']Ե<{xV&kDd/ABUՏؔi/pXk2}[ZBΓ]}t\C<<)% +e$u䡞-{ˉjH``PU  [-\9)95]30P*>XQJ +ő g6THnpX]iݸqٮ`6pڎ6]BJ:@;0RS gpĊdoAPx_ɺ +`CWɞP %ژ/k] #qY/J {L\_gŃٜ>06OH]\9R ^Xbs ZDi+ET]:+>3է?/1IzNm tD]yn뾵o'@~vBG7mtv^AkWߛoIxm;#w c˗MWq +>klȵ>JMCr-Flxx!:r*}K+bk@63fO]a(E$i}~FG'ܬpreZ7tF w)M3msXڱTH9f(7-TMP,}6K%:h׸) ry^ۏ  :Rg3%<.<G( H`[yZh\DƼf|J'}sy(hY ]*\|N#Jm* Ҩ/h +͉杠6 W0̣PPX.?j+y>/qI0f>mWqmtnIa{b([)*TJd=EY 0k3&S)܀A2dyoA\Ͻw"Csm4L|@^urNa~LT$h DE\| mr]1}ɿmpS."rG&{ݘ]5&!\T"J[cCeR;UT-r99c8bfE*q4$94Dߝˎ4mϞi|?Rܖ@c4 ^#[QӒʴOo[6omvC~'"ěCr9L Hzk/A7:15H#JVwM"DDױFSSbKQ%2A ] `!{-%(qZK˴~)4B:F=  󴿌z L~1T#A\a}Y4!^~! +SB,5،5QgOpy:BC7HB@uxR|3(nl> 9Δ*4m?-묌rB{( piSe(\5I$P05z4hJ"? 9u{Ltё4b Q$PTT]Бրi4^3LX6b5+E0k(7OG%izXMbST{v:iz 1fD砭"C=kUe#[] m]&A<2w8Bz#MfD:YYGؓG!,*D/~G'KOjH``XvEW Ie"絔@}қ? \\\)M}3%Y3U +n 8&:rw*qJN6P !1^<.k +ȗQ\lY#PEŒ{ۆ`Wjl9\ s-XJP„3`dls0Ommm s蒯A+^\SG*} |ʕ¿8k@  ZNARk| K)Dj\vVjҫB }#3u -6S) +X2H&J (/T4}fiifJE=z=FwOqYUM f +P*^AѺ::F.S +P&ϗMa+?;nGrf/ f|l +k!.d{)d sl?Ue嗩'-V^q|o^0 OcMf] XVr,V7 AhҬڃdH+h*A-skdh7P8RBxL4 'TUc3@D蛕A[Y j]DŽR#4Dni{Hޤ.5he 4dSi[\Rg mS8o cX EE-6òJA64:}{{Zȣ +jPT%P8oTFw7ylɫL +/}k?$pG0԰Λ 5\ A58-J% `k<㸿y'k1lZ ׃b;e4V@cjkcF!_w)]>$ tOycZT}m@xsy~BDCnC O螹]QQWYcb}ߕ6@!QE,^ 1ǜJXcgd{N)U[U26B&ʎ%`|_[&L v֪05ul]qfC +3 .`nc^Y^Փ^6WVyț[%QB*A%9J +tG C8?@n#hPjSfhBl{O +GG:c8?;@)tp!tHB ++:S5_ l%m̭Wʞ6g;1_wCnS+88 QQ1V (5b_ TМ(Roo?Vaeg㤨XƓ,ʹn뽓k,3`{\ t^"o xѯ~M\@L-Iz^b^2s=i(u @ @j I`agVA@T.dI48`߳@s(PMəΐ湎 {QPl5xV@(B7Y{{!]?7t)8pXI^_Wmv߶VǑˏ4FM.r s6NUgeZ!Fdj۬)x%b _!CK"}۲~#c. *Ue>_eҐ;s@:%&n(;XPj*k7Pz_soD;|:j*A #2J-ˍ|G|vYT_ʞVv~ +$p0yl,7KXX0$00u8w~uX-qa&pЕU'ɞ-8ԐygS,Ta/n_XJϛ!WpTn + U*=Pfc_# +Z17]{k.=QѾv5s؋N9 +n"{f_5MVM,bƄvi7 lbdb vЯ(+94]:xڞưhm@ +T˓˭nZWL³ӏ ;Z@w:~xKG1UJzJ4٘~bCI96hH``ĦJgHCS:  glz8d̃?AAzI pJNB!K_}dA]̸j (VڠnAq)$\0oʌm[@v̯$:@*R!IAkB @4棞uK5oZ):| +ZRJGY'cd@ +FƙIM-С+j-dcUH{0 [@fSM +9j2I^*kk{T@HcHXeHxs=O@lGBZvhQ<6.ii; ۔h+a4dMZL5c&xl1ـV#2¸ki^N_#b_ݬPňc 57/38D8X*a$] :3;XGG3@yF)\~YpuحƉ*Q T.QP9^$e\G(݀CC('%R\Td8¦+Stu# :x"9&MD*qF$It4xqVX[n!ƦKզ>L31 h)n9uu)|5QB/JgZD]gvsxfAJ $3Fg2p T{cN81=YsHek/A(+6P2 +|AಟǏȮh$#nǪPOM/3Jlz{S{āz( +)NK-ߟեIQoR3&ԝg+[͢p 1Zi(DGvaTi.'z@2ghL\ļ )o!`?8AAVJ :qvV qՁ8C8h.gld^|dل3s6u[4D ¯t?i*J%8ߢTf9XaՄN5H{Yvw ޝ̢.0$0u,Ӳ/<9K F\?tUrf΃kcZ;c$@0cXi+z( +SWovIiVEщ7#xfSe*jzRХPRFS4d|QxĘN|:c.qe9E LcZnxDl3(O243@6)$t`C "J)ľVΚ))ӗ5yayi'[^M5A$H0wYAŦ1<}_}@cl>@" R??%&jnRgzNY!C}}3 C^c a@;T NՇJmqg-Sȥg]xv2Z"gc뷙! TnE$fPxy("" ;ñVz8o'u5>N8y}]6d4bjR*wOXs{#4Ȟ:޴z7>xGY<7-X]֕YrvS0>C%2@a؝q#߮%s<R5u vY-$(pEֵO'юmKC>Wbm1ImG=jmtTz֝&פ0J`AceR٥&D@iˀV8p4oԖ 8(G6gP=+Ÿ>db!{nqN>X>D: $et\C?P)]*y`3༦4NɅڱs(F/|3U\wB]hF4UI 04/:^m'lXByS::s+lf}< gj/}Ƭ6 +:T1 Cqaޭ7VaƪHs):Gv7ԂOr祔jn~rFb#6ލP'9F6A%,@a0)*n ͹۴C!&vu~Ԅ2IH'65IKy;V C Յh̔{ m*9tjV|KJ)喘Q}"^PrOV,^KSpE$TH^0(\zwr49OBc1USusvQ+GȢȸض=?&pW%.Nǰ>ZE %Cf]q421㵐kdShgem: [O^<Z{<ZZ*\=Z֝|}^k,<0o&m9؂ ^N(ߵ]OSR %eC$A#waf|-\&>qz}C&Q|"$1؅0XbjqF4BR+I/"8>ʱ@^!ޥٱ)^S) )52jsoN[.a^Ҷ짣;)!!q~JƜCnhLI0P8hC +/,\{߸ݟ8HᴄC騂8/~ɻ(s??ݟ?۟??????=?/m?lԟ?W/?_ѿO__W?[v)k@7:kf|eܝ8ƕ,Ԟp fUhyL!oo}MJft dcGk:-(lPPKO  qD # +A#lN<GFLVї* J +j!Y8aXgʣǕGh! 9J9p/aH5S(0EqTܵs)b蔎A@X j\L.'(7']p@ 0@`PFU K54K ;у5OZKPc1PZ%P9"gh Վ6G~hҷ:v[$XU~e*RHzzBQUl0ZOUN-ęTSyQ~ԯ[ $P8>rӱFe^}&qA_Ҿח/u¼<$]5`CTWI0gqZڔ/Z*m><1Ҏ6BnMZψYC@rƄe~p@`֪Ɗ&Fa_c擿!i~}ήjMݔ>Tԯ`(gN=&ZNTt1_`7`h3;B𰇢 I!1̦4lS/t)<3E,^;n킃m*K:N2J|$E8cTPpYgj +X5>JFkrBCKw+w9؂d^UWPoT A#*6]h)wluu/N4 +.` Z +O#.3I/' 4OW|6? )9hd' LI8Peh6R& s(N9G-9X@bL~qu{.#hhgQD!a:!PIiFޛψn'zK *pσ.=p@VᴉRAºvP' Ą (&#UH{p͑|5JC€CxM@gWB:yT2mڐt1}0Mu$&?~P1paU|A̟x֛:pq*Hne}pNLh&{ՀlUUkdiD.nmar>@_<'MS%Nb|{S@j.Aq"sOʭ=sDqO~Pɗbr%1^b lU50ƕk5<.҃l yˤ疫+.XxĻF=2ϯ(ݒcJTI0q7.˕M+M&|(fc,ŕĕf@2cE$VjaII9<@aXDӀd^Âtz60å:[QEI,jj&e޾)J(6kQ +~3:K5UmJE1ap)?w ՏF:}[cZbDQ$I|qXvIIJMsB~A Spשּׂo%1{+Ta\r4*$G9=~fL&u3*QB*Az3 +0E%5>yfIžJ^s;N]8:ZGКc7fĘUj 4Kd5Yb)]o$B^+›lv=dFUYy> +g&tоW$BFOwZc|A{bB:fSHˇEYh $&F#Vr\:<& ]#P/a)M#7i$PP:xXo#7Z$4//SA4=K{rz'nvrv>u~0,6rPVlw$LEP6}]t^kEeFg=#w/6oO.I8b8Oc0<WqjtA6bIc7耣;6o3]4@ +!԰2,g@xN&b@#on||Iz Igc6'j& ;n;x(,':C 2.==y-),^(SjpY5(@(RA(JZ*Gᔦ>"?HN`e^뿏R51|kC#)&vH`4hth +*9TC7UUI0wl6.3%gLцrR2VF)lU ŅNqMo|@\`VY6HXh.AR5N H xFe%P/Uܘ.c1SkC3o!Jхcn>52cuOϥ^ _uAA2 s?i@`%?pԖA|V7^'[WZXNrykJC0EDAXƖO4K +[{_s䜩 +U|wPzTjq7O/N8h%A%YRۏrF ǏQ @ T:ŷ09FUUH90.v&m@k!A=R,#kFWC*";S4:x вp*M{xsu[c3eJ:1u9y^pOcl% 3^ m󝭟{S"Qݴ?4H=pyRͫmrs3g,_](>qsyk'($(0Z]A}S=|J|:1^^d"t[:\P"uWNI8z4m-_YicMƍhgEtȟ:ő͹QHF 2àZKPcT֊u|" 5GcP վǠ\"1-%eq=l_nΟoKk:UC+A|ctYtő-ȴf6|AY+h k.--feD>BxE1i6FP vRQ!}J=EU1_1oKszkRU$^3QJ_yP -ư>`;6 ++RUzX5 U姕0gqf GhmG՛4]Sp@jb0;GT&ìY<9nw켮'я;u~ė9̨Li7m/R:X~sC'wN"_ !_@9ˈٯ^V.y]#/hATܨh46k.^S =P`mɫO8@oHxRS9\Ye"}+񕶣g8t(3J F>? #A "PWj?~fXL~p.g=n0ٴOX=P|؃;.K(,Ryjs@N0&y=fi#όx@`.̟*`g+ 6O048sgsq:LsW;1ռ[+?Tih/e\,𩳃"==}uVpk`aPM|+15bR+ѾjMg \ww–<%̳BF/5X?v#;>wBpq̍qSTBT&@4"'Y^Z>z0FX0G 0[ձ\6_yȵ\W.^SJ/ӻf:\Q&gF6[2Ve1){2Z/i=bt6ʇ{ǕC8w`.NAS%\ y2HRWvSy ؙNYztDY1Ɯ+e(|\ՌM . W{#}&@`ԗ5fű3&aK(2|rJh^(iqM#V +Lbth,˜ M]\~GVhq$P!;+htxD߬}XOh(G5[':Psd(7 H + y R4iNc?cJytzuۥ蚕,]s]B)A)ctۍ'/ȱZJPb4CѪ^c6^[9,͔ GQ 3_餼z ?|Ңnb㘄c&W t).<ጯܤ.~>PZKP9cTșaO&6h-AYydJF_|Gr2ZՔep¨N (J:Tih8A>Jݩ E nC4䘌A NPpر?ET2H (0[*~yjp&Q_HFЀ(D8yt1MǪcVmz44*ցc@A_cmv:E`Vj _CEɺ}H&@R&MѧխvnͥJEpݶ'JzVipd$6pfcOX_(VEy0Iuu_qf",[5ЖòL`X# +\v:JQg;UCh%Q 2}G05f+1 +Ql?DA 5$O ?ʭ5F%v߳#&"?@2;"a!#2=§U/?{Թ SҠ_?wGY:](n(>B40]xw?_^eG!a >F^pr}{Ta_\:H:>3='ԟ<zhHKs;m7ҽc36u<3$|(ҁxdMym*hS13,SvޱOG1M]mG1=%{/wDXkR\^"y\ng({CƷSc^A|[gVG#x8HGJNGOѥzsD e,ڳ{|{~eM8=Ӑ068L\ +K짥;۔Lث}%S3`XǍܓx47^N=+gChHpKN}^P P<Lt616q_xtƏ?~!9JZ.VVwg;gL!{y]|y90A@Iy\+>b|ש,٭$%/NtzR:lQW<.2MXeS̎Z:T5_/CP⌁r&zC\\TcW{kk(NFN:aPw)d}; hS(O/D~~ NOuh*-cĿ~yv.qN%eM%BvCဨE@Et&~PIlEB%eCaݎǥSZ`!I e=}Lo1ﳌO-FυGOD'U:J N[3q "t7n~ePy"Z<:kݓLhJA/h[Ǐ>y#q{u<a_:+~sdbQfOrh)x98rR')HNe52|NmAa=2/i낕ǵދ%:Y"6ūprҲ]/'0-7W܏78\M;ώD$dt:w_/d渼i3Su6?(R KPJ+kֿ~t]0>?G=}-_i#_դ:8;:N|.-82BJG}=?kߧSf d )mŔL%9BQ{{+mW#{gFt!YTw-Knc:}#Bx%# EU:-:n3|.r V-*sV\fs}Y^!H9J두dG{"x<8 +q KG[h}۪C@~/|ؓF73$j:Ffߥ I\e‹f7-6 &W\l&tZD,=mIRgde"=c.ϳ +oi{k)ޔxg=G5`3*UVOOT7MECP:nONenniq8Wų{1owLIlktZzǴx}Eߘ!~z*S!m)gyfeD$st P&dC焇':P 2kQKIHMbHbp"n2f4K'_)O_$čdV :G\_LZԶGi˔zͳMPE s/I\22~HEHbp"MYmB~<(e5ztpʳm{kh$,%d*GPbE˗ e$&qCqUNρ5ᇷfArȲAB"3l;ݖOg&o3*`uфN{ +kȚDztzpoeUժEIyIVJra8P{ȶO63pq(ofHݏm}ᴔD}dgv ++5 yq<iUcBw&"(g 8RbӨևC\gçxpN^<'=<(?N4YfIDk$Rْ^kzDSe]qږmJ>h^dCŕm~v NE=3YOg= 4bYJD["PLn4HwS'J[u]H$BpFGƹGv3ʣjfRcѭN/6 y@Z~r +G1-l)A"MM[ r+"O Z.._qQxfy:Ğ^WݽGG2iZ\ҶJQ:"kt$7n9nˇi"BL]<#c>[m-LXG:TZni ,':{Ӣ &x03!AJD &^]ODZy} lNV<Ź Ս@P[L> HG;S:nV6 ]d,DqkK"F7=;}4?t8OKGi;w}i^W U$9ٺmV\\o9µ}f֪y NS/b!KGi]@AP/<6P:u>5TLXiv,$dfhf"ea.l6 +@Pݢg8=9t v0]9V}8-߳:fe#G|ހDOQ}*F]u|yEgrB4jI KGX~H"ҹt5nb1hQe{̈Vt)  ,KVl4G-`8j,h}4,%q YgEFFtK>dQ=tacQOk7]e/|x>Ely3ޅ]+W-t9x'jv~xAz,"@!=La|綶os?MO7Q eu(,9!pXY5͡hEm xH.~~Rks;0i~ `@Hdխmv`h ,w$z4&t{8mm$gۡPKGFi^PvNt8or{ٲ4S<*}%ȍ,7ʍިfӝ'fJO@Byw8{3))6xDz9]Z[$_=qgT,H(iKyh-Z;.ޞVFH`8&He7gDŧRDע&Gl9?ERfMz iׇ}AHĀڥ96ZE_0-ey(/_%⾦i#rmE)qq^Z.pKQSI]x%Ffh#KTO^neBnpJFiJ Evj~ n"/"ʕNmCDr^O9S>"k{20HK}N֦yYQ틷R pL5m_I7mZl ֟Cޖ͋&LRP駚Ңods7VX2csw{P8g;Y2}azF#wk~~܃2ꆖCzaRߙ̠CT U'_u/u4kґǸc'e_Cq)Ol讛caJHf)@l 3|HI,0"mBG⠼,xXMPUO(?.rC[#qKG~F1[E٤f(F @dtl#]N7bQX""4BNc[HN5 &,$n_Z`H2H}_G|>Zi,0~);.Fz?ʂs;?㩬lBJGi÷"E9ThhTy5mo}Ix}$ϵ~UXz(Ap68U4Td M,Q"-JFm<\;̛XDS'}ދRݵլ+hcfvta:/liշ]ӠKG=c~&Q6ylu+5{#%K+]b>?, ԗrRSSى/b8 (€>xHi8ro#3b`#z-#x$ҸuЗźDXeҖ TxD2%iJYHړm5|>FqDR;e8~7e$xm&E_gpi&ENBl;9Dl`bݵS|ӓx`{}Q&Cunrm*K=OJ_d0M+&w+?~aGZ:-cf cE #u'|ELBA\a22ruVBOXSwvt!s\wXhxa f>"@$$Ͱ*"r[a3YHk}w,%Ƒto GLJ|_EHH.u$%~2Myٳ#7w6[tqV7v4+iڲ9ml:߱ "xD/ +f=q\"XȲ̕k6 .x2`r_ϖ AOu=0O2{-t:DOi~}/Ff w%D?&~3! ٞE4YyC6 *Ďsr e,YIKhw7CvJ;i EUԺk{pņ[;5T>2,r!<,@R:- ʏk=_#čf 1hJ]~2Vŭ];]x[6Zk\r/5,iÔ4v~sKR8F"[ʒIv/e+oҶPz'=t(ѡWpG' Y?7C%Sp"^ꦙ!mbyQԗw^扅FvDz։̫Dfy2+`NdOrvoጎpDze"rKGc8 +',$'@TM1Ӷ}&q_ۗN#U$ؒO:&[ j HT}W+㱠,kOmLZxST.⡂kdp!BkcW'hQKb?.X1gG/KvI}J 0_Z4$D>[mt;{mr IT: 瑂m;1a`K3Х#1\B=3{DR^ lg}uL)̰ ӭίkiKjs8t{jS],Kc;q}ϟa ac[RM̀MCUwqHD[rSIXC4qFSoެ"̍X2Dg,DZč(L|0l]Xs\g=y<=d[/ ?Nw~f=jiW*bLɂH2R>5f[?{]hsT{O9t[~Ј%u`Ӊ +/2Waz쏵4, b7}aIEj!Zi0>msn#vngW ۓ>6!w[!mD.!(Ege t,u޶+Ygx` +rokc/lzԯDLDE=NGV7#aֲ%祣qqmtwVJ%יtDd͸~.q 穫yJ#-(ա_\cG%+ZyP$s~U8]bɑ/"nKi N+J*L"4Aʾlۍw} +y^:[7:eS_7_Ú-Lk@|'̳W$ZsX Z4_XϦ"T?g\͠s"3h鴩>=oYځ|Lm#jAηm,2-;| j- ZҢ4իK~8./&3{AHDeEsYocHϣN:B" $a123UDgl^49z\kr7K^PD&? ,$z)jawXqd&:tT(n9n#Γ(KGcZ8(oļ8nl +,O$*3\**lAD ,L F\:wNM6] KG@㶅㮾/8oen涱lu@hɍ^bR:zPԓ @d ryбr1p})ipRD^ g,$%3Ĩ""t$2nayjt fŏ+)x޹4Z0_u*C6 , .a6O/3Nj;,Ș+W["𤭹\#<3p ?+)UmZ?޹{+h,v]qR d,-$'e·VW?­U{dBr`ru3d).hhƴ5kOxLio0nYySE +gb,""edn Jtt"&s{% Wm4mr3ݓ;uO`EAɣPݡ3̣L,`(E51'٣6HТӛ{_:o]9Ԛ\n0E27ś +i[Jݻ +T"YH&s9sk2ιi⍿lCS ̍)εXrED7]+s,_S_5~|!+k5m +5љUm:Uv<'t;܏33H[翤2UFm󬥍ԗwϋVAHNy pYHKO&t0\EB8ƀ"utqS 99k@dB1F2fuQFeh Yy?㯉+w[ yԐΤiqQ*YD' A )!2,,*|r]8a Y3/a yF@:\2ک:X(@>a'_ΓDE3pĭB6|QBB)̑,w)54ZS/L䪱n A~"4j鴱?`7 +> /z*:X4Eik~D.Jܗr.3b8@1oOƠX߼vXorn>Jw__{O_˯ _?Xgw~?o?G_7?oҿ/'@&| ŝm^r=c"ESaI4]ӒavI<6@֌ִC̄_#[BB0 +]}:XG@zvl M`yؐFoT:;l}ڨň a1 A!hrp0rQ vYh Kipq,/: FP:X6/GȜ*C搐d,ZG\{='Q†0aA +׭s j,8#ũ*YK*\Xґ?ct8d +5eC>f;c?yBaiʶgoDD)4<"GB\*;+ہm(e7<t$F叫=_f%1`qYȯg9CH DFB_,Ա_i4†sXBjw*̉;٧ S9bQ[\4?\"h45s .ם99FpsVNA +g<,!+u04E(܆q;S5 58m?. -.}傳v6762}u($˱Ln"l[ǦC3\Y޻f\IIШ6^VHj߯T9w%0:)3QfL|T9S@(dV}!HuHZ-mƕ,$dh;5bTn=ۿK{n3?7 xQߘ>KZwH X@T]f)~ySEQReXfKy0oLŠ]VLu +^:C޲h<_.J[DIlX]}!tE&vo Q֕m{g1as_ +i?ɴUuIb,qٕH*xeW,";eb(R +~X{A\>pPaEz?:D>R)/—VWl)/ +ܴ~`{*6)bV=#1(bf'J{Qc8 dEgb\NyCW鴁ijPʥqǪ"Ot|'b,E%,tˠ'wGpiDN씕4(xAqj!J q7nVk*}*&pv'tqdVDfO˂sw#ha]U +(9l2N8"n;& X*@&iىxwC4VfvJ ok),H(7ta0EOd4lh!"͋'n^FPt ( VH-pGU)2t ƛ~:P4W X(5 lc΋a)oT:jHyEye!v QR:M?ΩvHK^T+!9~γx + ,P 'l?L_#۲$ԼPi2RV0PQxg@*F;y{`lG*I /s4#BqW>.wZ-Ƥ]/٪>ϙ$iy}>*Pipw{eC˕PqF%;Uf$2#nY}󩆴l\NmhŢ5Q^9\,,iyXDglT@Edfm3lg-!JGax目󵟊X'1P`٪!JGa8}w̗edygѩ8Ry3PpyfHw_} +').x({-E!;JG`Ò{]u`yaFunz}F>PfFT^-ʍJ"!wzz{"kcюM0!(zT7Dƻ$A.3WNj.tT?wS}1khA.T7~fs;CGkxn,Z\HsCpwv֩IjfD놆bet2)C=&j}4:gߑ,:Y/%膉(a)Jז =Q/TzhxVg`.bV6KGb~ںuUοq[D)K%dCBpŀ1鑿i}$:ѪV%E,013omiHfڥ1x=1,Q(5)3U^7c$1r U#W)of]3fs@.tz nZC&]G#.ٖrq{}+ +v8=ǭBt{dZZ|yk}r `;g_&Us\ ּ"2#1Z>mp-j_𻺭qͩ43$ީHcwZ~d~G뒇$HNwEܹ.@g(ɲ3Tuޒ^XfLAs +ftP'@P[i= m_D&2KqfLiYq@CRXqO"n3VDHnzIdFSfۊX 0҃!15ԕD-s!U: 7v sVz.̌F*svBѕ$q%Ӌ@f#;sD%c-q1XfZJɨt'kݫO9+RυWX8v&gbNtp1'mf*Ů)ad:ɐ,RD}` fq5>g]vg\Cͤ@\ )Sl F +<2pr*?(VGh`"cRi ,hL%4Vm} 3QRzn3e&]g)BLĘ~\g8Χ(s:8F`PygnLJѭ#ҜIy%+dhML?{{@޳>s,  qO0{B ~t Ҏ+ s Zu0׾o5|85͸Yszki_wJ/לz[[/ѻ3wNV$بpx?~]Cӕ_kŷ:hǻ0 +0.&#.^?k LS0O MdF ;yww9B:' 2)b{nd:;7KjĠe;yX8fe˃TsM[εNP/.<~{cfo#!W])>S-)>72Z^5QdV; M7ٷ`3q#h19 Z\pctL"4-$ޥRS X‚`L02'KڵtT v8^P*⮫mYC&xq(^o3v/jΧTk]Ѵ&7t$fRz ^45I>9A"3k}m)c'%>kc91`oXBF{nĦʧ{bLt+0̦%YGG^ߌk]߅M,Dޥ _teg +-d⦿Td;']O5eEDBu&9-"3^;VM7y.t9|swG~F$XfGi - +,",U|n2pmb<`G3Qɻf3{#,o-eU>ޙ?'RfHqE`6_I_py}[l_/'__Wnrݑ1B¾oR3mqoY5yFe>|\)& Xhr8}OkDIuĆyb%' ]:Z5kts:ri L>Rur<6R J̮3'Entkr"r=vU8k y.6UτX vc/LtD-<} +E3rˣ^셨̛'˸ܯ=_S;GC[I'Z +Q'L{N.]'hɯ )}=fSe^t%)'?;Hv7y@GseMއCF1z1 8kC!_˿|'H6 f_HP?0=95 *7UB*ͰaOVWmCX^NE>ntT,T?F]>S:yIԍiV\QZ~F2   B4P@v?'Tv_9&v ڻLy4T>i}|"=#*X4SYWܝ"'tإsJI'SwwApndc( {%2* #Ktwӯί٘S(^E}׹š;"2:S@mo-,t7iQkWu :p5;q#LI'E DWH2{9twK7A7 EQD~ f3ʢ242GZLDyZ )۰RǶh>T8 6 +X@u#bHI Ld8mYFYa 3#S14x%k֗1e# ~uyC_ל[ {vsnpš3 -"a ɢƝYkJiS744|5{U^KpՁ |%!tU`Gf gFT:◙Fię&^_vPka|f2Uʖm+W6Xo>۠5-<^Y:î::ug;J&1-5}Z7XQތmhrTUe*Yb^?+j{mPaeȥ xr^S-/{̋=k`'k5GaYLvrx?>i؂?UG3G`'a$ McFhUߖ[ŕF+U:_3#`i:xIhnEZ2;KNj¹TLȓ/ћ6Ymva8hLZo=`H$kCʁnhqOd,[Z@{o[~HžJ23j.r*mN<b$EqAad@NrJ>i|Ʊq{MKur;kJ[7×pA6 R2/R{)}~l{֕}=};K%jKYTj" Xع1oFJX/,8ȴ[BSnM\ 62jo3GMT.Y9I~lITFz*YCVr?pأ?d\Q̐B: Ѣkv ZG 2VXTh n〽B嶿~Ju` ""6,mC NEafS+*ZHt.%+}vg>wa]F ۔fDs5smv9*΢rY}c6 1Drce)5TihVLNM'^ln0qJ =lȌՒ?\wKGQcf4Q׍БuBX7IbHn͟,/$ cOP)qGLĪqc41W^̔0jf2j1gFnFJXgDXr?+ܮLݣ斮18o#p2ʸzFL[72gHL,uD /E"td,|γ8C. +Xf&zϯhf`OE!g밴 f3(gt⅝%CbYӫ..e[pAUi6x3p.zFQu8!3d.dLdhqwO|cfX62uwF6^,u7R;MDܒv +'fȲ޵mieJ`:%υ&.zPw$R38r,13ddfC!2DST ;Blĥ'seWv}]]kQ=ԜX^sdސ:n6-r #A_DYY80Fx\& *Ҹ'P,Ό<돷\7H-]H.:Ni{oeٓƥ_ԸYK[My.%'g^\ָ*㥒q`җz.V"n L +Y5S`@sJdxil +ɤ|m][D0x*>IE~uIFr˼; 2r7+UFD>;7uvZ +;=>冞BsKYCKfFe>O W./`*\HIqg\rBVt߁+d=%hYi]t6ٸ4ޭ$P +ΒyG\S^Emf.t/箘쁾X*-ok2vc颮3H _qYH9߀@6uW{9^x(~pqa|S!wl#NZ؜1Ep#ڀD@L䦋"m9߀71 ^lDXDd㈔0CF5Z+ + \L}/ x78E]t^pF9ӦF)p_"nZb0A&C*B?7{vI;3U1R$} ~RWv! L֨,w'{+7%VYk0pJM< gO6b,13#V%7ߡ2v&] +}HEY(yǪmDa f{E8RXp)qP4w)}izao]Fu:{ L֨,;\5p68޾ 1x,fq +x\oiYKGJ|YM>ӄONF;#L:UV6; 78+ezMa< +K)̺@aj\U֖06-5,=fF?E1XKgôݕGßWXcIrƳeD%&Ey%dacEg5n?wWOֈ5RYҲoJqEW=m߱Mw~QvF"CSCnG~046,, 냎3xi02 +4RhTɗV3ݢ8̐/Dˀ(ک&"9T;8ȤGYy2ꛐ ,;xHBĎ1Ef,:f#i 7 v>ȼB(t%Bp +_|prz|:=#xg;fScv~T$g/8 F#6fHlbPb3R8K/SNV$f;Tw"Үt& SMS#i;ә7D&(c+ ˒сOu6IM7j;~\ueiJ9 ->dqO26]ϵ'1n#2RF B>R)[\j3.ZlX\f>Χ% Ek`W͌& h</YKL ms2ܶQԝ* χul㠑Zw\ID1i+owo\##aظ B$Nnዸ}ɖN5e`%PK=2,=:ny@_y0eph&Y|3T- a4U1Xe8nZ/\m"جR}_Bj6$t:P)4e;ۧd{`_$A|Yoiژ\"7Z/31Voeu[U7 8HA߰@$0\np$C#C֍ h! hg(Y#UB;Xۘ>h3!Yk'~#j@RCo;Kc)AۈExjxT4C. ./N_ +$ߜU#>]κ- a62ܣ*s6,s%SfKQZb",ѝ%yLJ=&R4:dUi9;QʘH끼~Nv;@se +FcdaRZf ^JLELpSx>ěBhQjb:K(͍͢Aĥ΂1ϧS6x1> Cz3oam5*936a 6C4J(Sf|9!rh]JY3̬z {&Žzkwh=X>|_1۪ 0o22uvNQ99թXhr7WvۄKnSRb3 ™;mƤsi +s;@we@f>;m&O2eRkޛ=z<€\k8uBVf4L `zPJ3MsYY"'J3+  ʀ,?s٢jY.35.Λ0 UzoN@өBUs3{\!Ry).8B)jpJӁ~pv WjlȘ.)xVhsϩKva, ư CJÐR(2cj$P(㪝X άPed\*3'Gfe*"iy܀x%bN OAlgpln]aVf4L4Afm8v@ޱʎ GSiLزcy"wm}AtEa&җs|[Rp,RY0)0V|C1?vڌ!_}  0!5*,3(i6bF/U W󯅯F}k"S9ȪZ^H :o\3 +#Npf)PΛQT`ȁ%2 Bx[e7m}Hikjqa>,p:|jYEgf*MFfy"L>605)vFh.8t9DK{,LlXz=SKUs7B#`(L!UH J *c.S v.7ۆPE5c \~j_|J|~܇ +WdE@­~5*2Sj2NhQ̀;v-8f +IQHTpcaiRjfȍDyP9}|tooSx=󆷲v2W2^Sn],׮yAL9n&n@DVKEм:mU:Ϋȫz`û&yLY+u~ )N0oF +gC23u·v"W>xfa~p7"fy5 +- G{Jֶ5+6K& +Sd*2KrݭEǓU9EI7-!dh |>]bCc?aUOe<\przF{2V +3B22FL*0'7f +ǀ h864,#*3fh5> &1֨O-q)9o?n.m?#6Vr7.5SIcb[1>"U9a %J~of6=r"`T/N0fII.ƭeN +/}z3 sCO֏)j?}+xЦ Q6e웽>n}p $O +o#a2է6s;8. j5@eԡ3$vhQTbPɶAɰmd,W1U_Ll12lWF\f>ä*%NWSЍ­eέ) g JȬ#eX8)\?bCOQ @$ë3Xa$Cڸ4P܈/hUȱa)Wh2Fbƣ +V?NeQ|*x\ۆ$"ڵN1$2%E0S(izbh,)[PvʈGx 1J)C +D9/LgzmbQzN݃U{&}+l:nr Cyr0;wfT awf[@g<ƌ,N&Z]^"L0Lwm_ -. H,=e4k_ۡhvG}CL1B$Zyp1SR$ob Tv萢KQR<]CGQN)a`FR2 +GR& 8:˝,?yGuJdQ_bl}WJj)@[Le(3=ڿ/0pT (,Ý`22ň(Z0_mfSJxŦ%ٔOjOC)媣[_H,KqpKEhBBk<=z?*C%\3On&+ ]ZHku,\)sQZ4cA^~n;u89-/}⓿22)3fL{<1(:jɂsmdz|Ĕ53 "Yd4~)bOܗ65I;EY7M1h8sk!m!a0Y2om?`Ah|&NcEC,S"9cX;(y ^`3~|6I6E'ܖh,ى! ;"t=v2ژw禣͆s\lihSFs\ zה?i66Nl^8N^۪24me O-C6_ӟwz="qlC?QR\TpqciTn*&xnT:7* UΊۼ +m38'u?3[mYz<>, 5 [J J {3&mկ/^3MI^fm% ;KIY\f(,}j5^x0 <׮tv8$IB frI<yNc݈U:4x M3S} +\/_]"bes!FgǤ3$^kPLT}n9uHY6hAhx-w"D%: `p{Sa*hO[O8$D9n-39깊ƨ"T!A38'TrC PѰ 3i $DRE_v$(r#)R?3DLego5"fu`B%;zMWFddoE+2"!)`5N4[h>8zoDMMj8ayH5߭O2@sIE8/~\sf-_G"g9$oT⎛2@n-,:; |(LĈ0eqEhpN)͗Xu /#\Re≉@4ئ`J4ZTJq*ۺ@Z( @o%Js2+G~\z. SO3_}FDfuY|Z~e\fAcFDۼ9{3&O=\j )"JFuq?~\=xesHrn Uǚ*KT,R>^βܱ&=Cw2t[ "VGk 9n L54praCywhfdCe=KTYtg/ (]aGv q?ݙnh-Q ⦃i~XA ^]'kI.)!yvTV'kMp|s˱p`Gʹ7Bf'`;s2&!Y >:j6ǩz:|oR[ϗ]7{ī!?5+v <28Um>7.&83a:wL8ܴ:!RC2S+0pT NÌ+  #J, 2"% e&i ^VagN^p6i9oW5V_9bwKv7AF̀$}e Lq~pd]?wZ,(ZjA 䐥#Fcp S^8,)}10iR;zg9 {goR,̼J}{=bmggθUrSf$-Sd)~V$v} /nhIpU7|\N aOη%ѕW)\E4) +zG p0b F!Yy.2m~G=e.϶L+/7FY}Yዶ0r xfM%>ђAK&H\Axqћ 604'7VCc{@jn{s 3,TR3mb<4ys6@ў 8xv$lʭ{)ҫ> ̪sd_/w^^&,&Wb$w޹Scl4VǛ?/C-dհ=Ð*':яSq:7_.(4xԮi +$u51)y3fMj +,7փ4xԮѴ&X;R./TY V^Ο0#3 +&eV;mMAeIu+=7^5lށ  _ټ&(,i@~#)V +TTu{`½½2:/#QcuՉyL8^G]-S8_)[_M/<߻/{ίzU{#m?Oo?#G~/?X?O~w~g_ۿ˟۟E:ZEeR>CgG~.?]ƥrZT uX2]&@MIK@& нBsfuM"vp!>ӔN?p2F}Ŧ˒#WͪS[=[K /rd]wH2"Q2`)}֘;}m'kK-WϯkjՍ{fwQ0|p)6ZWLL4g1f6Rt~3>m'&* HLzO p<EA9)/hrY1E.z$i! 3ֆ2 >-̧hqFd0]'Ơ9Bwrx 9hz*Ff]Oz\L^S:/=bԅ#abSMv4lμ=ynWb-V`prh3eL,hLQ{ HM|YNaDO /Q=Zb)4(o$1 G^=4k2M3]`ЉC:/TTlvUkE*F5805)C)I%*װôE!3&wj5Csݠ9̠q]y!|PVяfH^ G>#"X;Q_bcY$Y=j l<\\h}ᦈś9R"IXIS9_-e~'>BȲ@;V .>m!2t%KMbY/`!& +MCW˩u6a5yc:VucqsZP6s/KR2@IuI|;//ʖ>7fKXGOpN7kҝa #*DaӜ9e 'K?"đ\WvjFi]{&qN݆Wmz`WF]W;#2`7g#<`З "dИ R{SUۯDjD~Y V.aҤj}'-\ș%14& v6Q+摶) 1B@>ِRG2Z3lgBUP^\Pr7@SIi.Tz]/w8DuX]ʅU" JF}nԈ3%O5*xi.%- -\)CE8 zIwDk(~-iŏuQ` #2RկAm6{D3L&,3`*ЊL&lM؅i")^ 2|%ҥ/w4x,1<$`!Ӟ_Ht` ;3nZBШnKnK{N$)|G~ɖ+ÉI[W؅4xL ^g,Pn?N O'cHͰ@˪}p`@[䩦rMHJ!LS&IJL*1iA$P kiP߹/OG~KyM}XC }gdxhsѓqz5WEMw*3!x]iIs\bӀv%E@F+`gFdHdlbҼl9N&_꫱ %_DݏLL +dG_aWF7sl98'Z # pJ|o7s4ޯKBs9wg{?[MD\v+r#!2R3)W'F%R l)o}>vyiΧ1]2<%o,S jOg~yigA^HfXw8 +Ы׷Njw# (Lƌ}+KwؠE+ٍ߄JÈ_ I) cƾdRXD$xG>t)aF#]5m>:Y`grB HUs LϨyPo \߻O٪v:|x5-Lj 7sT~|g??zS^˜ČLRAp(lT}#ԊS9t[CaxLL 띿?yO2ه=<\!ؙ@ 充&4ƞXl87Z +Y30P +/$C__y3R‚EqtW J9|Q#RZD Bd MT C0Ki!7c}?}u%Cem%pV|hٸP"@2Չ 7k22 +}oGHJ' e;cמ7M2.Bf%N2D7#Md;J В%Wgg~=HK#2%$"P;6 F8i0%jv]RYu2}Bb)Ug"Vyu`]Ǘ϶BC>IXJ<,֝B 'K]K.uO <6G~ G.6Fʒx*Uؔ*}.$pTa9y,PYG;HAw!Uv+Lgڊߊ +=j~sD -WT&A+}0i1" BI@:fKKbv',@ ߌ9bAk,T; $ A-nQ96 |LP n+.nZYM@c$|Vb 1P*e_<+%~N{gR 1̙ƨB20cHcp3`1ƸZkQfLF0&>8AyIZg;/z?鹉~f㒁|'\~B hJNK1Z"#QxG|2o*~ F-z=_ql &>DJ{; >H,n~[븰΃^|3D]hT/Z3Ge4gD4u $ET$IU?1Oh&8UMcpxlT;NgQ¨`Lm5pmp'ͫ +/0h;A U0n"N0x"x ИLCRGRof)9J90x0 TcVS$ץWij\[LdLn* {&քk`Oc}~[)$%^@SOTXf!% G3Ē"%~enyhiHJa>ywsB T"cyV'|֐j>BRE~`g-\W b@=h5#@$S0TdBfqժQ8nS֪l]f (K&\Ԏ`a-> f[ ju'D"DŽC.#r eb^>YXA6`H#+X 2cj51uUV[pD?sd $X$HZjXhv&\]M /ŕZAzuhx!e?`,g>D|^J +!v1MAZ'(}#?bfK $6scr[zS(nˊCn[fSJH 1i xHXf̟QZo!OP",`.|6h|ŲvU38,b#-W5AՒf ^--8oy71l +Ѡ̜`CopOY//N(`c&rh45dB[փBWAzIoB&g35wdyQ"q,ފMK-$X^˶,7d/`)H[^򉹳v$L+" tHVbZUu D:2̯N(bVv*2jG7ՀXG,kԎ`ԯUȒ˗-BaKi_w{NBՕBjDi`>f媸" RS"[ aPeI3h Q^ +؅%*,[/: 2Om~nfy*Jk4ԬBZ 3ѪvH?,uTxH%,BZ SمuBŀ43gEv3R|A_X,ay0u1̔kT7Np<" Hᗓ% X*1.} +'K.|,g) ,>ey(RO^W`/WM,/6֮ZL!Edb \>1,GLM4jN) Z"ɬ2[a5W)k2yhΊaHi1N+H΋& ]Q:R D/m4s*I@J *m)J!H2j&jYqe;ze: uC^_DuN.򼗅.C2",B y11_S+J(|qNeLj0owZXKZb jcrBUC;+OӪ-x Md 5RqWKv * V0=l?ǡdHeJ@"ȸ%^˶}>O"GȌ/0+7 # /%J3F@FPwG"-jb!R|i&= yH1KD Ln({ 3vp;8f~5dRGV |qUƫnfE3Uaҍ$+`+Q*WItLѹ?'.P4eXs+͂T 37`zdfO>}&{TQoQ;ˁ㴲R۱d+c<c@dѤUa ym#r :&J4vBIDN VbcY0;cV~Ӽ#H*vZ !ޖi.Dc[ahہ~ 5{ 7n)0Tw[6R"W&OYeiGIÃ% 8E !ㄙUÌ/kbocWi.h)!5RA5z iAs4]LZt0rq B E0&t5e(-Šl4K V!';)N :PX +f,s>z'>H0P"񂮆ezi.>eu-5 -%s_G@d\pCg>;i Pg[Fʆ=,od޾wF\EωZV~:Bq+,(~~y~|x[^8?i`6Lυ) 소تp:m[eŎZ~nPf /S[<ΔV$;)ľguIMk(5Sc%J`X ="Z$$!rˁN+T(.X6׷(>$=L8,!;C Yc*J4},%4Yh+lZ:!s'nnD4!r^*6coz!U"Auƶe^*^? R l|n3qC +CL +"E%<Ӛ +& ! \fz|=<,n &\yH1R-|,LoM/X.}d7=k82Ix:A&,=j$ 3#inʛg"8ƶfYܕAz%bWS$)=E^a̸2mWr dN+: ԲR:ĺVK!lsyCDLmK'ZBzu@#DVL@s~3؉4ڰ ;g s/sga֚/ 0yJ?xwVW{[KiAbO)h>%DZ6焢& ,xE*I}3%,`fDH )y}gc5]/ +X;E/,| SϨ,"5 ^L$ h Ns^%aB&){KXijaa S7QJӐoqQ,82EX"[!*jPSfIYe04fF6_xR{-%XS4'm`!$2N4V%$\1ߎY_NK߳ۙ^67!π\"fJL()b284&Bϕ=L*aB#*jD9bQ`vLu׉ tE8Ui78* &}'H0S>){h2g +_@7/5 +=qԔUV.[OH҉T="wL[ YUBsEOP)-2@ݹ84Ѿٓp0RB;xש88lyX=p^߳I>%ZhK2Wp9|RMb.|Y,,, ,| yThLJEDX-a5)TC" 7R#CX_C'n|^0@)mfN43z,X̘tXWdZoG.!f)0owP.gX:4ۙu׷߬U}(YR,x 7=n)S:%_bHj٫3Gۘ@wۀ 4Qd3Pgϱ Ke3DoEΧm"ոPf2<t< 8 C'f݄jဤi̓> +YyZk&|ͩcI.)s„S9p? H03VuPˠ0a1_% +pb%3ɲbQ'vz*M,7+93kl5iYck.e +v()L@R +,nlczgF>@z'AQjq/ ]? sWV2H0wR[ Jl(YM` eڢq7pB! +㕻gG:~x:N*5PWUŝgCNhVsr9t/'J(CXaS(9KeBz%H $&['Vr;-sbZO)f>⭊NzRJYpi͒Qnf5BآR2H0Sre:hjds :1r =~DK-]'er]'Bnc}t*$'&-zrpdD0Hds +%oj`]pYҝPj 1IA,3+ӄ(o]L\U1ȴ85]- +Fo^ (e1||f ̄g XhcnI ƌ>YQMiNx;OSS"&Cyi ByJEdEQi{GiN޾_G5H7j3cJn5Θ_紻f2.~+sTJ` *[x;%fڸ{"uBRNx$ -zpb3f#V'6봸V)~5ueZ0D'ͻYۓ'D3ﶻG+Kؖi>%3mw \7ض:qU{ g "JVgc?oI$03$~QǷDh_, 8Y+mJ 1K1T s`,&~f\Ưr#5%i4 !E+"ۂJdfYfwP> 9hJ୐WEcSpKǿ&X& +8$LPh¢v_|_Wu&Y{̬2æW$+sةG4+ rL&lmڥF+8nUv5M$"hI3ibP}eCs٣PH|2$={ԙlKXI4yKD"&ףѻ#|3y6d-4y&zlbe}҉=)WH8nfW*ܕ+Tj5b3[|FcXه_d_)g _,+^_0b("@:Kԋj)ROʺS{Ԕ;xw;#^_LjIjT^99!'Ro|h2f\@xNvVq6Z7(ɚƜz:=XA */]}"gi)XIKxַIKYJ,t* fyHJ0^ɯes>u +t):N伂 +$(ZGS>U>*":D*ONdegE?m81n3)x| sn(6}hUȟP{r|pӾ\N\ҷcZ寱):7sZ*=pzMWK#NH[Sd S% z͌݋XLj|ڤ ƜھUf攘L>+|*jZ0B$EI)Ƽ\ %jbt'n5BQ+鑨Tc&%9'O3LU]8&D͔-abg.ev<+fh̝kce-@34+qk>JM\aoiHDЄzA0-t +xm)ҙ* +K$D12/p+ +_hḙEr;ERY"z'FЭE IQG誎ЁHcyZo;S؟DS YEҧX D ֌vw|R\`+ˤmuzĜY pVdGLa*A!͊5^o[;g.* ^\V"z"<,|BPK GYY㰊vLqx#[ȅ5ˬ Zixi/o)b13SibWKaEL2ϧZ*C`Y XSw8iG|x`NKLH0a:u[ W"3 syYf{ +e<,51>)IF:$mJLhүn6h:H2%jm}%gvhlV>/}m.4E=sf\9$9!ޘo&3s^m;I3*L&Z +@93-gδ"=T273oD9w "ƳsΚϔ xL,gڽq+^p#D$ + HB3AV:UA=2a"zTnF5N]OM9uN[D- +`!#Ǖuj*,%j$kNe 9,TT Y{Urz7XEqKN[4%k|V`xB΀iB.u[(yBJ$ 4Ma?);pd]c`]w#oNHq:VU?VaNMUBvS*K伂՝JfTX&RWx[ +XʫU`C0hk^ͽ7qU 9+4Q[E|' fx yu@p#80yWS&l29"D̈́LYvhy>oq^&ԙU'$դ x5>zBI8m] nX^&`[D w32fZk4j%j|i+fv;Uf07nڼy5% +HrX'+ +չ'8oyA 'n抚Pe6nx| f$M .2n|Z%Vr9~YufBJxf7s'D,+-ySek3eiܮ*|OS^)O\LHLpN,XIͷK,T.;l_8!U'2n|V0)KtBBe0/X}҉:XĘv^wj"t2}3rB\|>jzN>MTm[A +i` gfr߅Z̗Zr[ ә +gCgx;H\ϊԘȯY,%jmj86,.nO4ߎI f;c/Έ* +کㆀb~p-lm%P& V|zJ8m+ ALJmxm<2іxh|BI1T8A;e.V܉O> + u"k8y^Pw.4.e~.7Șlη9 YZ,VHX|4L$  + .. 70Y*wYiIO,B1.>@C03uu8&'zT>f rC9Jm6 P8zIs"*x0k ovvX_,"}WR7Rk>F`V΂E*`2J|_$ehхcM\͠6Ղ?z1٫vFny+'D̸-O窉-E*u&02lm:! %iܒI/lBꇯܨ1+3%=9N35q526劘qECh!<~u<9@0\ XɌ%7NI"@33BJ4{M9SBʙLY aquRH"ѐ )H]w*^2u,!yjA1o7G>m~9r0++(tOsӘ!(m:aJPጭ0V-baPgMefqX0/铝&B}hR8rXF̣eN N4Zl2tlW}hMxuo{~;嗻{qBMx% GbϜZiNG愮h/[c[湺#LX-}KriيLс`)1}0PMD1y1%9z(Ad#+BvT _09TGCx@NB4BZJ7&]$E^j/;Nȋ31-mM4{zLԖ1*A1nY+рm6iRUdy =Tm2;}~Jvu&U_# +%P*M6yW9o93'/(W)T"Vd6MR&+KzcBmWj8KHz:zUwQ̉Hn܂)i Y~}Bәp2]@ìμE/lWoLZW(qKNݞ&1 *`VHPby>Ym^&ʘh1Yeۭ#fLPĢxPi;!$gVZ213J)l u dK#rؼY—$`%QE*u+ IIC'<ݤK $I\7p(\Iȼ";]o",jʽb Bѱji_A$nlW +$ 4N+ VEn9m;fXͻN5 Y8㴂B^nص[z:,:Sy[C7X-_N_O)IH Lf#HI[2qJ&t̔15<M~7݁x}/[c[fN)e$],#LmHDeVq>JP+x9KVe\2;$83^4~椰֘^YvvLL:, uX-OdF|ctHO$&hZ;7(K-!]nsW wda-0/pCWBD-ofeˤn?:=Kl8 G1戯I)a +.%"V\iJsj側7ao5pMR`X0ZK4fh̛̉U4'"cRSKGN7X [r / VgAEn9 f̧mGCjvZ tq1!"uhn"3[kKᨴDcˤERKعI jYW008Rw=fhD[j SKx +lѴqK NY-D#l񦅁ИY$Ϳ `i[ƫ~K/poN0m M]XC#;!s!nb)nC#xM=DHc'Euaفh.'#Iju!,^'VB-J$&WIְZĀRrȇXn;]B(?<"&-U'LGRccj.GE?aZ0zX ?A3O:e>q9O8WHkrĈrlgݢvg#j9*OXUK⛸Ǻa]Ձ(O߸% ?ϦvgbLH0]2hgxoyt,XkBh ,ph5,x^gpDԖ.(JmD v5 oƵ:SmL Ƕtӫd[}r( 8#o_ۙV# J|Y{I*#R +fLjn+}@iJwj\bq`fx}oY_6JH +㴂h Zp1|[䖃W`ΌFN[z!bVBFc3t|ɞR"f\q9D2[ G=*{@$poWoˌ+ 1>/X&f&vEn9]fL|L4"2eܒn1g_r0}`u٩GCaa4^">\t@Z J DͰtXq&ęAPW ;C$pj1K05peJq{ 0!JpO$#Z8Fv9B>`[Za֪ҳfؾFFi{ H `070Fr H-Z~$LEf4q j`RBqSF崊 zahL U.WS-ee~tF4M 17`LZŢ*O޸ Gl)`׵fh i{UFG`YvK ~Dzibs +MojX)c+~[6arAQ]'$DWmϘ~!:.o%4'mlKQI"a3 U!aºƶ1a,ڛYQ h\MMLL,HcL혅Lo)^Fޞ@P&Z ojb>ALnlmGVtdXjZm34@W92lR|^kxމ.~'n|샊sd5Ud3p{EX^V`9*{hlB1!jr(^9N +>7N+pK7E3wFnAޡ7*qɌ!yJ IG3[Zة) 㴂|>wˊYn)&,La4%!arw>]'<)IkU%j~:a=l s )ʠ^,t;Y +DdJVQ<85h#̚favp,#jgU59 `ZH%\!  )hc ! x{>@`ff^8kXކkNx rv-9ejk2ps# Bة9obǐXp&jJ/qh + vZ UqK  ! ,Qezq_-w>q*MڸV*E`^XYI$CNN7vB>y=xO׋|kM8ؖ_@]{LKPصSCYƶy-'JphK[5%jrw>Wy&|Bج&H䳸F0n7XT!Co$XT;05?=ole<7i30.R{2[`<~cY;f1Q`28Aea-qqcB,lǁ2ʝ9e@ؙO 35C[8~yoوsV_ >79w-:k7#eiIx| f5/#dRo,2ZQ*#أ@Q˧7Z]fFV-s0xA[94^el^ke@mvZ#m 5! +4D jqb"#s('0q(^uK߰3\䖃)>!B& lV)%!kշ38ow^uK 4t'pnV`y~?gEѵfy#N ]q[zW;zsyu(U x_>EX^ k=lP`fd ;u;,(|F_w;ci#s[ +9O4dwv&ft C *Usn<¨ +~jtMXCdM6/VB +NJr=zѵ`ocϿQXN^`ף?B6^]/j +1ĵ +|PƄCzem_U.b  <Xgmk"bTjsGhk9޵[ +a*lZWES0W 5#6PL42v&/>Ԍ* ++,ng_/f!ZR50g,P$j/>Aq1&4ݝh<1y3jLHvw:T>!~x YQ +0aK@NyB"QYKjR\[z93*ܚRhu +MSMƂ:/00pcA>܂<uu]݌z@ܝ*,C#e|T> L`[Wf GT"} D8t,Cָ}/ Yg>7)m rV]4l#`f|^jp `uE +@jaD.BVf\>O}s uZAA85X:ciYPD W&жe_ny'/N8qPe *[1Lq5`{Vݒ{?U$C.w-p 34v-C8!%iV`aiW-aS͸-OˀmqdV ''p:%qFZ1i3ĕeU Ũ!Y"Vh|nT~a0j7_!1n1FmukUnǩaO5<8QI!c-E=ܼ9ve|XN,+0#Ph BA{h['TBOTnM{$Fg$A/ʋ} #.W1sJJD jԎ7fh V`Ϥ{̸ +0f!S3 ++p 4ܒ2W#IŠi r 6L nA$sXРqKA<7/1ƹJ},cEAPQhqK=9NdOywBDGvwQ|lvdjђ'*3ݝNXgȧ^³:3%5<`^lP+nid]O%l\_p-` a=o1a0MYe1^/_3j񩕠70{?g!_\eV:I<1a#9 ]j3qUJ~i6u `ȇ a,BYwlgie`ܾbcΰJ@WM>F8 8%~Fo\Ffԥoʪyu'De !"6NYɶ*Nf\ Kdwxw@0q {5`] +,q{`CJE/mL`!00l-zAP l",V# Afy h5$hƵnyFCqyۯr}LB%`K;K_:qBz=ssEz *g& g[0-PK$  71P4 '"=G._:#Ό=#񒠩 sy ;c|..MB> g @a0F>mmw81dA +tO*7bۙr 9}if!G„:;Oka9`"ܟ" d2!a'8< VI>Cp2tQ]ޜv2NXh\4Ip- 8t|!>O^}nJ >/)꘦]ԸkJiM"ZmKpyY1Ft%nL͟ǐR% <`f@k!X-U׼&:|CpcCT,`{.N̸ +V?w+f_e^u^mk`C8̗ga.2G"SxP`^zd *#`Иr斴. Z+rK[3N+7S˵;Z/ $ 8Ⱥ$N*Y 3`^r*u;| 7Jwqt ,M*Y Uu=.r +M2z.`4eޥ-EMh儥 9 xMOnc1jk JPP$si<~_47]sx%_3XR\A {e6}0\גd($ QWX5-iU҈q.&˜jdNFaIkW21nIL7:`:U ]h*CƸ%kMNcA&[4 `lZSӐoF`5[B6њ~[듞^OK9[P0uYk~u9JEno1u[`Rw8+K:&?HZZ8:20yotp{*Xs<zl78 -NdW8qM| mpE4%bQ/ SU%6]ehc6J7{Yk琘-x(yeõ +Ob:UTzz|xBA[[Z-3<Pdy"5x x`U`95QW=՟W +=@VnB{$#0pҁni a 㴂_asivZ3"v\uK [4^"DdV`Q~1-)<}Ns ˑ=g񌠝IaaNM2{: ;,7,7{z2+u`!&c0fe?F<%8cn6c8Ty3/ ,">F^`Zr}C<A L\v> Kԯ-|åD +Z_s:XIfS}TSVr3bQjmJpydU>U*ll+3=/ {\zF;=>U$'>uVF;t r:KؖU<Lu KpLTetREZXkL׶61no1C.Yg!JZTVG,lB~JWo{xKsCQ&^>.E_+:0!Ggpy x Dɻ{uac?`<ǰyϛ{P8+}<(,uT* N}V p`0a$ft\[{۫r`* D8K<ӟ\+E%XBv.|VJ-7X.}S}Rtbb]}&F)+-% GaJWmrڼeTmw}\KőcUzdlխϧb/$ ZQ_~ +Ugjf~|\ǵL*]Q X\`hߗ[~ $`\:떫2*۸=nNOW jyZ r*ZTеc.XH[ <;Lr[~)mmTMQ`^EvPT"(FAPViȫ#:pu4Pni@#Vnt-sڜ#bkk}HN{9i̦RWj57 + !ͱ4VG7 ngJ:3u)G_..))庬~=" +h< 90Ay"\;;ccљ y"53JPUuȭ®\"N踊fic/i%u +r ̩"8Qp 8˯h|Aa']pluk>-9~KiykJtQ +>UZF)7MD )2Qm9;D;ufLsQ9-Sb%>Pϧ +Tt1oKޣnu&竊01͔+i8WhyZZ27ˉR_3C q1`cns9h-W-Omh*)dSqv%TkT%*x>].%RhJe 5^΅I2T9'ӄD%!K[ TTY3p!f֨GoRt2(I:`8QK/QVocCk#U@㖂h[F7.p$͖f]' h `04-fSLH b<%+')].tBu~*Pe4_\N|-k=:{%:ey`X4גRsss>4>qZSTH`Rprig~ au.duz:R‡u§up"\5f] +jVv܀p9i뇗&-^ qFl#jI6ȯ9iKJj~)icT5pfHF̼3^J!8/4`'|) ;Iܾ\xe04?%O[br}w;˛d>T Y˨0,/[}C*v>m"%%l*j'{בnנrt눁k3lS9d(oiU +18m wERÈ,]@}J|A}ZSwo +UⷴUF! vKyKr[LvlQ'ꐠT.qNm']Z~%F +TjΚ)8NA5~UQGjLAC|.a vꈪ2+x0+irZ bס뉕$ㅕHB)Q9O\eu9:$L[>AjN1,En(_TFRJȓz3Ҧe6(iS?$0k0/6[Kb)Iuʓ:jd[_utR!jM`rԻ;zuz~>'sSR//w匪j~?`'߳ˡ|NȒ>>PN 8+t,a/fE Z݌`eǞޣɡTVZ-VL٤l*/p;=C//O̻DׁjtnC?}r+ͩ&T/ Y `9I壆,8%J, VلY ? |T9 鴻r-յt,*C3u^u0)p;\Zxh5pvϫRjkB*XԔ)i٪j]zQ.4^LAL).4nڬ:5iYRP.mL|8ș6*S&\:~d>Tp>49*UƃyT>TU:/gW ,ur-Kod汛 +P>VDr8^ɡ3M?ERZ؟3澕-Cjh`[Nu;\/cZ/x x}rMGCUWk_-lZrJ.  ʑu5ZgX׆a_b_vtxe8>$2:{{Spޢ-oWʣ/ۓ#+CI&~G>SoWFmoO2dUm.XPhI/HbLtt _l| +BpfR *(o]vn_ +:Dp2fu;\@1 4ƘDe\1c1QbR_1V+1@-EcbLEEG1dE5pT~@[4ކ\ѭ'$J1U$*e\aЙ:V$S29U3!kӱlp/ĀRprgo9.Xe}=due>J6Y>G-,K iuᄚ5 :qToKei"aҢn xj{spϓ̢RZ.yRu;\$^pI>²RA?+ҭn ȓzI7Sn=)~V(dko*. O*?ϸqkı=fnz~DGjQIhr%Q0u;\).`O ;*)__c<-4XbJv35RpEF:kƌ(y=tLr* F'Fd*mmwVJCmq{G>gK{o_~ɗ?/~-s{Oݼc|߃v߼hscٜgBkbٜ>xk0͇xkrb(/_:e!xkp]5xho ]56`[[Mo 6M5T`[uo xkpPd5*&SdxLs4xLsL>bO:mBdbO<xLd.&i2!&i2MOixLd&&444u5KSv@ۣb&v;P-hn*tr =Z/6ہVnbn6Mv@3ۣ%c&v;PMv[Ѣ[6a[v{klbMv"Thn6Mxsl`KK&v}\Z;ۣcc>.m[걉1u-hK&v}\@6;-!Sqi nM쎩laG&v}\ZFۣmd>#[BAuV vi'K[v{lbwLǥdc>.&uvn@`AI7~ҧa}ϛtoc̽_:-;i;;|iJG'0otl#<>ga2.V{O=.&V{N=H.-&V{N=覻.%V{PM=.m%V{L=(. %V{K=ȥjF=[j=6[jC8.#V[Rqiڧa*O."VGTq|Dܭvi: nK{U#8>m!VGTq|ZBܭvi: nK+U6w]@4[ouHǥjC8.MV|[Qipڥ*OU&Ϯթţ:x{oΣ?%'sxUK;잿9{۽{}5O!U!W,MG܃Zncrvm,XA57ܥc=(6{M,wirt]ZB܃ncrm,XAM܃nbK6{l6r X:c&lcyXȥd]ZJ%XU)i3rVm,lbK6GU|O6ܥeˣ*E>(XU)iIJOk&lcyTȧMe]ZU-.X沍Q"vm,|-O/.j}9Oˣ/xOW3{gO?{>%}}?~#B'Knb[M 8Vr=NpϏlbxTA#[M *|yd}>8.𠂐F61< M *|id ]>4A!όlaWF61< - w&|>0.𨂐E0"Ur|Ydà +B>pϊlbxPA"Tgi߷]Iʩiq}ϛs{~}“g<|on8'7 硿/}쩧O;wyU q1ۃn`7ۥ]e=f{Q]U60ۃn`7ۥEe=f{O]S60ۃxn`7ۥ-e=(f{ fl`ރ yoK#f{:l=fl`vLyǥl ̎)4v!]N60;loKfw|Lvi2Ofw|K60;XoK[fw|ZJvi(O3.$Ri#7ۥdc;. $fl`vLyǥulƑ )42!v )|N"m=5(c;>;uVϽwly#9楱?s|ٷݻϗ?'p'nn+#[6܃pnbK6{m,`X:s=(&lcr..$XH܃nbKW6{Pm,`XAP7ܥd=v!lcFM,wi5rX#a]zN)XҠQ"6m,4lcyTȧee]Vm,tlbKC6U\Z6ܥe*E.-[XⲍQ"FM,wuJO6GU|^>֗~_Uo+h׿tuKzݝG>g_ɭ?ݼ?3~bAuفznuفzntفvzntفdzѲntفRzѠntف@@mhDqac[ +mh;qamh2q9&XmGK56g]Hmɸ4x.ns; vv}|._=6[Tq>_=6{[Sv}|ٶ{l7-i7npj7yX3{t[7677G/?<<Ue>ga2.V{O=.&V{N=H.-&V{N=覻.%V{PM=.m%V{L=(. %V{K=ȥjF=[j=6[jC8.#V[Rqiڧa*O."VGTq|Dܭvi: nK{U#8>m!VGTq|ZBܭvi: nK+U6w]@4[ouHǥjC8.MV|[Qipڥ*OU&Ϯcǡ=)mZPWn|]usԏ_<[~~>,R_>kM˳ow?zXސ+uP6m~jyB6 ++оB> ++thСBczlcuAWhWAWhWЮ:]ݾB! +QWhBJQWGU&R5QumTk*E]U)QU)Qu]T*E]U)JQGU>R4UJV):UacT*E}U)ꫨJQJQuT*E}U):S+MTo*E}U)ۨJQFUCT?DUCT*E}U)껨JQGU>Ra!R4UJ1Rt *ECU)JPEU}ThGU}Th*ECU)@J|AAg>Ƞ;o+ {6{og?nx?].g_||#%/gt4=W6BO)gx@A< q< n.xF.xFwx@4q>[鐁pF 3p! +3z

ʈ:ws83>Fq~f +(:QGQ{uFA\gF1Oy4Iӝ+9QϻW^UwstIS~Ϗ{B ;&+`Alw=@#)>n.NY(pʟ +GwzeIFZk!U44-_NQeı<6h|6pxt^`߱qc#, +I뱾+翁X 7ij]),Ah @'GrwqZ cDAKTbmCvF9=IYjSdZ(5{z)QZ&eTapC.NuS3m.'HR4Scʣm7/5j.AhU 0Ju j6^͂9YXT7A,wA?1%/QjO,-f|"{!4)aP|Sρ#ۊf۠o6둱.锛vp\D:\DbXD6"T]({^qlqıxd۞ 4d5lx .7P-S_3kMUyg[9!dwi8ٝxyO>,y |i~P<)n}Cdm]ZATCSm]g{63;љOVT3>Fhez"҅haovWuh/?\5!\(\LC /5nx1o8cQ7%Vژwb*HYPe,Έ`v;˙}c_{zduPf^F֜W=U4}hS`-zIK8Gܒ,->]9Q Ѽy w&5/GЖ9l [ņ9f KG_ܐ.̋dΣ~>O߈^j-ߕ~3Kǎmo=&;.`$Sx ~HmFL"||BRME6Ve7̩mC J,?cDWڗ("0醽ԏgR|E_qt:iύ$"ԚRP[Jy),G}f3Q$]'iB}P?UKZl끭ws67\1ʟvӝ [u>*&UѼ9PPKrtj=<}hǓxc e~K76'3Dv㰷meC8Z?t6?i;lw']љm}T/&`ubg ڧ1*%?@-dzWunv-jM!nio>-{ݿ}%CnV$f4,oZF 2YMiRM uo=Sq'Ez׾;y9М7ΘPmwcH4:2d8f_V 6,~OCw]Wn~};:S{D8 Q4!ԡ!(Xz٣oeTQ"b͆6յ{[:+[vdJq(*ujsdTuBloCd͂y`|RwL[7ԅm5 +G'VV\Q3?QcQF*vE9hqZ*eDaL3NTk]'SKv_Ivd͉4G7X/ $] +9ck5˜̜lV:jՍ6-Śmϥ?G> ]Lx,;<*]{;R=?0Z-cqe_+ltBmA&@t0Ӄdv% =G :ߨymdh2KΏ $,V| @3)$ڱڰ4} yOltf vOcFMoE4v zKof\nח:d( ;lB92*e.qv,;rr(}[m?7 +QAR!Dع2t>"fCo" ~ mK ׻jՅlӭR7i^lA6Y42з,ϨV !i{A*H@`~֘aS w;D' ^lt'cJwXN,{ +Rwh|Z?͗h'm'HER!#4ĹxVG@x-Ŭy8j`5UWoPsh5der˧Ssv$<3tWQ`TL0{[Q,e4d5Vk"6k OmZH2u:fL"luyru2hUo4iBoxM MRń/Y-T`eΪDzY 2Xcj75t2e2f6쮯_@e}*5m@{E6F@OdS,E@^Oߦ-C >x:l\&lӻ6e2oxNSw[/C 6ٖӅwǽ\>yA;zaշW?͍p&tJúEH%vʟ_0xd++!:l%ћ D}Wb[.qV% +0cΛOTsiQbLm  ;U %ЬwvѢG,JfQ8E S/ÎW|.A.4.";"2^AM>Vf-vis ȐF 6âG>uE@ /iaqC^&Y}4q+ЖyxX M?rjjK["ZM1FݓYJo)[MQx]@ajYUXsT QqF]uwmh5˟E" rUgHv&A[(@#.$s_W^l˱ppnR օp);e7Vy  I,o:;g`hnTi Ѿ>ߠ uh=B2NܷSotnXB. 0I $4끧k֪GWb mDQ>CdKeHVsYJO=cjk9樉*+Ljl\8=Jw6&wRլplY7W['8`/kHKYEKiuRgd5({FN;2a\zAm33hұsiZXnNw'HdzudIvݜLsaG4:eO@f_q/ sfaO '  ݭ0]. =BڮL.-&fF a4Ș9zp?۪Q ȿ^ۼvըe?=:@pc 5xG^=8ySn [zYVl|`!3-0Ø6n52)>;_,zy7%^XpWa7quC4)W>5q,v%Tq.ʀP|#iDԋӝ2Qav\x1B/4iz[$=S m ma(aK +- IǢAtcR5jgb}#BtIe(B᫮,o3k-NvW1IxcUX>-ƗV!;DF@I | hږCC${<0[ f>٠c4@c>w8#҃JG!]ۖӘVIp$= jeY%~P@zd=*23/3v3 k9IBF+YcQMcVyQעE /:daQ`2QcH4E֜q>>;`ymEg?ݪ\#l5eh&FCouUp칡^ **?|wb[R13}8q*ڎWe^Fkn+A {t C4I6 +TMcF뗎mKK#v'1] }q.τcK:׃ ?tNR$zQ~SjszmC-2=ыڹ"IῺk\j zٿ>p0ItFrT1 [ш1tq+PIJ$WdQ$ e:(>}z*6V+7&Iq<Y-n`&%r#d`U3Q8xo%~c!h>:΅:#hA\kHՆ%ml%9ё9+N :l ,=b EQm8@sO K3.H"[7@,~Rzz-VWV֒fh?"B]ڭl^)(?.MvEF屡Dj =ݍ{o\WoxM- Msqcp;}Qn +ЙRavD;yʤTG9 gbP5Q3<92v,@0h>:zIToհeK +-4׹@[ַCT]^ ٘Iǧv;emYЈl'J|P(nܽė^nalmt5g3hpmc#p© kcgdWzvqRz+okȖx4yp_yU{qJ\tKHR uF'ZMM_2Rhji5]5V˖LF^2nFn9Lަ1!H)\Dضh W"DVP9?9$ljD+ߴ};dk+ZX@i c,,hh; h5aoG#m3؀1xY쥎4K}Ԙ{g;@p oOg ЫYElf@zl5oqFۈZ[Dʷ6F*3O`_͆;Щqq~ m 8I۾Ǧy91',R%`z*6'y5a?.VhYӢp+f<0$֟jZ/O95*dn%%?W΢L:;]a CZPvx^Ď3{qaFVs1p\,b3tšhjڴM=Wu}t8m_Y&K"!fB&M3ݝtOY#Y vܚ#:#h\ vE᥮ϾD? +n+zm~U  XRxIV$3O.ER/IFPҋ^p=Ĭ,%AΥ˪2H&CZ`,hboov)W;R~C*oԚ7EXЏ^~ᝓhO:z08^-wD@yXv[ +@=cQGjzjɵІtXCΜOk2jz4zYmm@ʟg;&91c8JQ(J1$X8 ZVlJqq:Yp7em㤱ٮl+FZi!E\t+wvf^|oHuʟ';<n;N[eKݒ4 L Dy- nGvJǐAߌoR~1@sI4U:Sn996^ϥ(Y$bcS-3DH>Ju\hĖi_X%7 +-4N~[lkhG˟IUQžaWjj&{SY*!Х#.gn]AMfn ?~9'k9JﱌCR²1ĆLWӆͦim&z{&;iq+!wǙvCm~:GnGV4/bR0m:FX:͚8޾} :pf(dy #dkf? іPrtٹ>9=w+XBCm@O!@H21fhX 0`d f..,2pXd ?@3#f8spYXn%5طVXήGd eN6hk@6Y.wG#Fh^P,?Oe iМl]fB- nUIoDz'z!=2>jA.\1܌vw& +i 345r 2RhVbMZYG){gS"+mc3qFd l!Ǐܒ4{@c+$.y w[?ԨDݱn|?= d{.seQ1<$faQ姓ms.~{w-K%pO3gn\\*ݕw382fAj̀M+J5|V5bm`GV "(Mp{Zec 64 ړ>tjEо_:xVze$ݱPOԶLIFg,Pv +wqFr7U2C_9 BwbWh*7T* tX@{mcAj_>̘8mTZйBOmt7 xn8MRj\6ܨZ[JqY7Q'7+sS` $Q!3,hƒ[K<"t8>I׹p|Q@ͷE !]CHB-6Dr[8wTRFlbL +Fm?ы:햱͘'3T#TK'z7ݨИ9 3ưo>YlȈWg<.pP r`>sV85v9N)Ep 0ЖpͶR!unj3JMBS."Ǜoܗ|V'`sukUg11ЫK|{:ZZ򽌼~=ab@kW}v祁};-tUQɖBed2*tchَ+mzz0}!F\ZK;[u{kl0(4Qa]3޲h}DI⪥.`%Ka{@qdtʹUa;>&S/NM 7Q^'' Z۹,\8Y6Ң wUאV@Ee\84/(IeV iƪ{tfI)>*4.<@ۖ؎?Zjʥ S<;@Gr{&媣%S8ȋ'7ayzVtۢƼ:67!b@p5g#4 +@ -폎#GLTm -dƯ1%.څ>FiШNdWtUw/؍VJyǺ\r lƑ+z<e@! G^MBP{)Mn bcZJ3ΙX0 /m _+EHRa4N sbhgP{~Feq5P#yY.Ni~<3 [Y48^WgW?J󼤨e7n9ㆯ~~5f̊*)*g+#* {U`jUizwc˻"BF6׳_3{kJ6jY/;#kΈI +7 ^-ƙAkfu-~;QW!=oaRĤS("3F@f$SUi2$UŹw>cd.z5@o0=X7 /fWavb=N ȍѵhg4&qcn;r kyܹ]%'Z`D֍Re0N;~"Lh/';{'ݲa+3;m'g^ 8:wdlhaPZ)G3F8hD3ݴd-y iA6B+)\CiԋAf< qHaV5V{u:+gv.=j©D^ڒ"J{޾l׵$#zzַWUGp})\H rrt^ ٖByղS <}w%ީS\s" 1%'l-6T'6F +!";f^<yIcܛ +lլ lceֺS7 /EBDDۋ@ vЄ(. S:>዆q7M* (^+o_ /GPD//F_$ +fM!۞:ՁJSpRU#!- 2͠){l( ƅl, `mr`GDS Ģݎ "+tzd򋬃VRnj͠mͣy-ӵ)Ʀ5K8Hm{ |wvf4,,c }oqjXg>x+qhvK[ +経}p:1,nÀoaͦ^PȔtt6fego/obL\?gilGJ=4?ܵSNɴEbfZHm$W)N; hǢ]33K3ch};+2W(ll՛gGN%)dEVO=m{Ւkm>vavqGgN@P-0c"ǔ[OtjY#tLi:ayl[c2Xl[`>jK@ausBZ0i:J#_OA[ynZ[SfaMǠR׍ d6aNb>:cChAO]ɾEAF%.q V}E@ +@{?W) +]glq^ ԃ t&%ryׯWNYme}<[Z Ǧsԥ&ueV0Fà nFQBi=w8"'{;)cK)B2!e1j`@t::# ðl'$#b}O"Z«UhPEnKO:]j\"Nlf^t/9ⅸCBbk֣,)ݟQ/bj3 č=Avb*PpZXǚ2>e,WLU/ nhjy+J˨E52d:L4g۟.OIԈþ܁2$;TL+UĎ b*EJچ/*𫍿auf ;F"N+.fMpĨImw`{X(0^Po*-,Ck<)v^vxo0,$`NAh9w6_q?Ō)uaΗYlj`CvD$:neWxk8MJ.2N@;]B@Z#&Ԛ3_X?SxV %ٸv r V{0_5ɣȣj䝈5ѩ}iمcsC=eah.f߽!_:xnj?8-}E֜R m`P7oszjg\M:Ien٘Θ X0kw>. '֍[WgSOܫbUc3UbK%g rБ [HG!|t(rAg$44h!nE (O~5W{+FoSBzqHj^ S| t+0fA <ש*`m7:ǓM MPO[jwhlOs5M ;/?:V @;huLZ޶jV+oD<.=UZk;ATN]( [\RyQMR;3[f? &FhGm]J1yz˲@C{rdgba8Yz:ZX¢a 44*+?!biQhd$`/*S퐽w2LyI0 nS\C鮋[aUK1psdWLcn', hGk ]v6^@,̾-s̃oˊzt8;->XP<'ѷOyq7i* Eh4}F$s7nyJr Y OiQsڞ&Oy H3ićlŤ_6Y񻨧=diտo}?WY.m8Y}4\K&$ŒjyUZ +m4Y '$`ST/㵊2h͝oF VN:"a#bCV( +5)ji0>0=]4vwlmE$T~lق-pv"lAX?ª kKKVha)SOTՕѶ1W2)!oi<}~uO±Q+ˋ^E:^Vz<[8.4W#ѥVt@ :֯ݑ 2*TS!@S|J1-{Kx4 C%f>X?SJ(?Wv~QpTEf ,}mHM${;ޗ/Kxbx\?>rf-͠)ϽxZrs:]TxQ]躰O۟]Y7ĹU.50F{#nWxsqRq%X[ js5S8ni!m>AfRMh4bT5 _՟ +6jHvDa8!'y>g?|rZ،k2/R9RFw=pyl?W +òSI(hV>:37꯹KuX[oi;rͩiU;VaZqL,#iAW#ўUL +m Gdɯ^sD:\]Qtkr1qV/3A;Vc/m*m$?x_\% ,*Ѱ +-&thwpg-dMФ(pdG]GV2#4|W"/|F;z.0wiXš98u3@erXK 2Tv-bݓssZR ;pXlY8 \UcӋƴ0,Oۋ+jύjk&B:~6y˱6:Rh; ,P7X yǨ'Dۻ䋶?N=jz^TC# 67*~aNZT5MWv]kʋnnCLnդ܃c$:1fВ,;xqz唰pM3o+Ϣ8MТzWQ*8s.7> + 6)(Goޑ홯_ \z%lsKk H]A&bi*EPR5f'wR\gޱxٴ${wԅ\SX"hhԘ3P@ $6Ts¸]ٙG 3@DM@";NSMۇްJOԪr>ט헓O"@ Å&fDυAlΠz)9Eͩ}erd7KKMBxA E*G*~o &-ha|lr  s %c)R$Cj[8D2arLȶ9K uמY5)r-0m'- s߈4 (@_&s)pf%uʢ+{qR>pGw}|՞}{=)5sj'<yF.0ޠ$kYbH|=UIHG[ylΧmoJljhGOj]}'aȫښ s  =շmufWZt3Z'{;!d/aTƓhpg\I:៓/ϋv}eMPYp{l g~m[F@ lUU=@ldRsk+yוeS@8jYEs h8ɞѼ!acxG^oȘY \Ab#^Ɔ& 1jc(5{4y-ZiɟSZSsY[❙ֶhpty$N'%M#7{Ć|9f<ذ*xq?![9QLG:3@C5}&jJx45fG +geavg]u)PM&FՆFF$n^(k~,*GFՀ +X7ߓw_w*q]S9"ږ5Gm\W!8ݙN}NxVytD̜&`l &@*Rm$=HAш56 6d ÿW( D33bm0|3\Zm"&)4&pJcD 2?epg;z v4 ]*7Y>/&`,8̓ãm]\Ih\űl#qfuO8<}}ҚGفi/ nnpɜZ.>5`^8\QA G6nZ&.%6r\e%rR"  @{]s=Mҹb`4Imhf^3HB.D@g+.zL'HOO=D t;}0L]35w# +L=Ch{<6u0,/xIw ?|4kM*Lw_*ǗWl[=2{5:cSNθ(Z +$vvfNۑ4;֌-{6?dmܽ]= bҀk W~K&|g3v,4N7't[gUdJ ѯt2@$L k6 (Qp:澑n]u=ԙu+yYS̩F&xUPF>{qE#]S1mYbxea W ^(3Lbf3cOɗ,a5UU?LZ8ش/xGi@WW +du_&\wjgDfkao[+ɛP@Kj;>K#f8RhP R*/]~hH[,Si_H +aS2`%X% + _uh;r87׊?*"&syQjCx) bXO]s쵱U0fuEm ޙ ޑhC lzm0u{<]U'Ǯ +,@un_4 <'bf@ v^ HL]|m :n[25%C?I{-yf #VJ?/ +/%M^* [YX- +ntI8[Xgv-R1ƩˣXI# }+wjezݸ)wő0{A˾9@p4P1^] hNeCRa5aR l$U?@u6vK͝_{.-,h. ]ߡ02L~huX迱~y ֙~K#,l2gX꒏}gB"4 +@N{<I7#Oe^$n,kf;o`١{aQ!  Q +h:a9/qN14J聤0%/YQi=YF?L7~8_]8!{+urcQt)&gj$DesFaAz jX3` +?{t&ZO^H{wGg;½ůfB<֖Bg)2stI2[ oXE1/^",^f~Uj7tqK)ʷP@O%φiX (x5d]9t־䮈ߍ6g#ԎYM4ٮi;;Ǩ;Bwli +3b 5TyB"-hE4}%ݾ5#R2 $z%mL|c}s8&y{94̋!l CEl ,[B;?М鞟5g;$wdxt罨FlhX1VWtA*B6k!a4s|3PyA[<>JQc{+[0i8g[12 סJ2A;o=?y%l댚a@r!2Z.b=X WâMS>?U?7vUɲX O 8,شOmROqg!&N:i,dhN8\O.$2Z0nv(VeE0~Zg/^ o`t}uBkvպ#̂Gl~-Mf,뻍΋@Dj=$c7x6Y7__53"AvE`evjo׶-kHp58N7ĉ /|͒aҸwif)2*M?xKjt欃ŵ5,K DU>oPA8Ў` 7=#@HP6 /f]$E Ђ rb8c +570iV0k/cW 9|0ָ)6A46! [<:3vf#,sGME,M}x3=e:huݫ޳q<[:}bЫjzu0wE󞧁~au6DIF,~Y`KH U%9bݨN"A y5n ԋжb  HM K[O@PN7Ԇ +֛aȣ +6a柮a%Dzl -KA-Qy\Œ,. l.V^{d xseq{Zw:82 z'^Ae.Vsnn>'Z]k[6!C8QE49<:y[/^IZtvċ翠aqHXGS#*Ё![|{p(&,E mSC(Ćd!v 9%O0OZ@3B&Ѱ`nV3KL3*6@÷+Lɦm.Kz})oldn +g1_P~Ĵ4/%rX'҅Bs:Q.hi0Cz3>F"g sAvT^O'RNNI#zݞ1zST!T?iNYCFl>kt6m.uq3gghrfb1I vYb:ƬտÚ'J`42MB4K0r桙cC-N*ˎ4Dѯ^+WuE"ublʣ(ZdTm@|ɼeGDg:{*@dgq(`Y_vڈ Fx:V2e6zAK +]*K +a=Go)A@Mf CkwYgο~ܭ[(R2-^Y&9s.5.Ÿ3θ&֮XυtBsǵ@omM(G XBLB*eOh9K/>9޻3ZZZ`@shx.,D7`cMsw򂷇Ydp3A4X s3HZs綷lC=#j3؅tytB@{$]gmQ`lڼNA݆^;zuTBT!tC+;2|uV=sOOR@NǙobE6{ɾM@1n' n又7NN #;OLnm9S1 qlv"ٱ~Bl;-j):אo5k,Ȝ`NƬU!<\͚ 5joSp"Gݓ>?0KWjbLNRF-\u5 +c.CR3KNy's=Oi!f34;#*FtaNYV'+Y+16fK 8hG +c mo_v(w{FUKS ]ʦG;c: .5NG߲~G{Z% +6g?p53>=L[zm" +GoP| L-3P_J͊KXmYۦu5ץphW_I~(:]Ԍڱ^sYr\ 83c{~S0v:`! d4.9$yf&-meqoWq~uOomgf;z:U,-s&!zo.Վ{ӡf{f? ZfP'h~5g\ 6$j3YA=iei,rY+V@K(P ԯ PO; ۺS-q*v*w+Ww7>v?F>[:V@N%'k#Lq[!B=o[,gKb Rxgq|{.@;@_+@,S 1Y{yb,_4:>9ψx |%kKFC'n40NLkG_zwC~mPvCVJ f.SuU +k@g{JdjZMDFYrA6mRt3ɲhA7zڊ$7ތ~ԅ?]$ՄzTN3( +˝$qIN}X[@9WUIXJ!-ZeTct~+GǶOaTSq@H]S:?B\D\ӥ+w+!u42.G;٧wb'l'htM@9hV2+NʹAUNǡk4 + t٣fp1" 2s0iL֋2<)h@!tOđ:pT@`y`&!ehedۆ m 1@PZE#V}ޮ]goM, j[׉mltl}!?- *Wh =dy62i[ܜ"ftG4nz&'C'ݚrfm6仸3Ao 'F[o z\m\=ONw^=({_ק ~=b#⛼3{a=g4e`sWm̭ZvUzxl1HzҸҫ:,UTU2l[n6fo_Ҋ4c"3 +^o)Rx#] 'S ۞Ŭ,π +%u:73ڬ@gP16 Yc -lk;@pp&Ekđ3Rk_ c lK˖)K!i0郑o`_ey!h;xȷR`hޜfdw&g_םx`6x Mq33FZ⧻CF 2; 99kjTx{[ވx{ydu4±FmM3ՆW߬8->'7Mn2ŧvaSYmkWG4&8镁 G\ǂ=kw]--2HK zl* 7 ZuɋCV[mԗfJЇkVl=&4各sh.pOٷf0XWVַJg|_@#|͞/Q[^@7@3Ue^U K YsmP0ahD{,4S?,_忭xr~ZA;w/A;ghͶ#*],,*tEQ<4͕ g™@#`Rz0`njPdsClae3!3y ${hIވ̷{% l-LC%,q3 60m,,s؎ ظ1 =,˶J[*U꽗K,w_~ycefIN:nDo?>OU {`©ф+ďiq]Q;tzz_@kCX1@!ք9}sP3DČ~{yd 1);{aBͫ:㨢OO0ܱ͈;\M\f#/Ĉ$zU44;Vp*ȽH8.3nяޒU5ꀤw&EE ^efd8г/i tCV&cGE[L^u!Ϋ7UѾ~"%ZJ`i4/w3=7ϼ@ $C`7o6Dv'׿1D?XfGMYF? ]v9Z:uT +W&`MIk- L^Eq{quL.sba4›ڷƥʆiRF +Kfgy@wOc&[Zcc q(esޡF 6yjlf"k*weyͩrm\2i5Wrzt|YkQ9ӺXKLJJWD@ fAAJ}̽eCУhkshw4U/o=Mf]o/{C^Km_4MkP_A!h 'A5:A"? }cyy\y҈eY{i5H&EԼ@ @nw/ ַ]9h5o x/M)R_nq&7oNqUAIwT ,QVjwSh4"V3肭${ZKx>$T`wezVT!NK啹8dzGЭwVzؕdwؒ͠;;082SlZa1hX[CʨN6R8A/Nn*^~>3;.}:P݇E{XUK-wzIRK5+.(6!nbqot᭫.q{5!$}q_ߘ7}!|A˦V8*зm +-Oֿe쉹6b &f,;zqpu6h8’eGrtQ c-Ďo=8a<~}tNKS΅;yuMwC.d8#G W#ᵅOt*D.FAܗ/7mdKs4rX [hN +(8Ops# 2B=2]׍)F @rY^C n$"8ps0k(;q +qgĦjFEL?u4d48qA}|B?<*0q@EXQLR RAGiӎ h<(Ć4z W%bǷAȌtv[8v=z7xڛ_f~ТGWWΤtk^-o9f܋Ct-Ɵ G݋֌>z a^޼ ^seq zGYmτgi1# )&6 06hHˣq%3K0_+_<}!V<CJ:Z7}J(uaV׌ãyuUz )s1D^gEm7m'rиL~Q9}[aZߦ>;p7(z{~ν @sύI3csܝ\N[_O9t5j (_򥵭( %O, +>\y&{n8 Hli@]pܵD r㚟nӑכg͟]&9sa5Ӡg|?ʂczJ8QK ul{8i2}?]`Pw܃e:&x=w4ztף$pM<@Mjؔ=zq̽@|ZBmǾoXJک d=91<adSΘ›-Fwtib8S?]Onl['?@-/hv* Yu?LCZ3`~z$#ArƉ^x\hc8IH,"?{@mB"E5%)GaTޚ9ȂKyPylQDfV##wpbe; 9z(JHBhtq^A3KH=-5kf!s0c靎O'홏s`n׊2e Im~vG8 7ɳS&hH_)^cp=2)6FlMcJ6im|=xMra%ZP/@;9UOgRlV2HMuq)`{@A6CI? χ VjđCHs= +?_wXmKrW!N$Viڨ6h"HxO[P9KzϐaQI@gz5Z qg2u 8PQ*J/丷G1tsaBTЗ{'/N 394 NW"HP0Gf:xw'c6 |J:;R. 4h +ƚ!1_m"fI*fknz$Kxˣ{;S^*)'?1L¤%%mSãpY(Uh5~@8Xk͙#֗ZpzƋc|wy#2udzf븫38NuިCv{; OER\ waz+R`_>?M1*% z\ +NZb~!Y1 A3h=\@sC犁D݉q3)mj-?=M+͙U4Gȑx1gN'u^]-ztYGm4wp>q`pyQ.D] OmC׶6-,-.T`^>vrhH%$N\Cu63M. +d %ِaՆ' Yh̽SɈd))kmfz*hZ@crƇGZɩ4/)gv:,1ȆNMC8i1no_ѥbHy/$oN Km(lBI c>QGG5˺2'@f|Q4EG]armgWۺl鄚PsLAi/˃DY{$3m" IyQ5kckK +h}VDO'el_7XJ +%ޒi+X":N>.'RǃވR|>oz.mz_\۲ֹz70:6h+c;WKډ~Rsu/qq2H3Z򁌈j%+85Wvv~K;񃭷_@A3y=*YOȨYc5C;q-boU8WףNCVTMV|Y^y beSAQ|X@WR?JTHQ5M& 2S{kƅ@Fswr V˝piɸJ,xq$$4N/d#R 6-8LM ԠuݥЩnx7w]驐׮WDyI-F&Lo5O862fZ}Ov]}U'1kD]evR@S Kx;'6!! p͇1 +ci}I|E֣x%_c3QnƁV:tl^n=%ZO~N_ՉTxaĂVG/3]k`JD>3bL|f =Nc%* ]NH:i١fΚLahPtF"i幽?:Ddd/Nri%;35zBxy=3& ޵h2f5#/& G\" +6Uu2@;?$Uj/J؋#D,ӻ欹sMˈ4?\=šppd +x(AW#*TYgl/ebaR?:sK(q)څ^>=4W~o1ƹQD/B+xcփjvSa_Hl|: C5-gj{~5ʗT.by`r4?|NЦH/ 14$>8m]pG\mMAvǪqǪ@'Ҏ+ >"a7 KaT +0ЖM'I1*L1r@k ŁZK`zp{m=L pD}Nm +!lmfV h}5hJ+)spAؠקw4mea)OI@yqQꠒU,OlzJ-pO;繦_TPr9ŎduE8ݮ(hbSQw$AK6z4ғ7g>3 +ò @4퇆ʁ-bUWK/ϖJ$z-SvƔmEf J;vp?KGm\Nh$EdXe>$wxOJ@gK:k`▤E8I+Nri&+ih`jۥIͯLe$WBJIo5U@#T-H78? +v7O(X#|4YDo6\k74ĒH˟1b#zvzm*c4';DA4cwdN"2 d.uu`ވ_|o}K _/mR@'Jհb'$Z_xj㘿+8{ @oD,6/1c_G7_3 +@ #2v-.+\p*AeL&>0DGZAҚMWW +|G=!r['1ȷ# _?<ߏ>\^U>CAJg򜵖ultX7%dmn_(Z^X}#!:5  @xM94[]Б؀:3,rx#朾C%lޥRY4ţc쉹:WB1.hwn:>15M tQ$IŜzB}N0;lof w='z;mI+yovo A+jb \*[za' +EP1S=Haݝqv\CWA +!{` ;rc''e/Y jnjPo5YDMEJrzWdPT`4ԖQFWQ= x(@5#G\6td!T5$uD RbQ"Bդkko2Gn8;^u,f@w `Z[r|ƃA! D XC"ݹ^-%&^&#<"rԁuK@=-ppUE}ChG;!]:ZcQY0넑 +et,]p 9@L r֩1.y4*gk}t6ii']Jp];㰜F:/g>$'nb=Znoh>&,2O@x/9ō\uq,g=O?6^@q0ny`D2 wWlzoBy61>f>2FUG) + =ԌTB8D~$Mhˆ7Lw7"U^\/Qp 41 ɳT7C +9MbAj `]6@돚 Qx]/o} .͖!Kڱ4%,,)F૗B=}#y3gX@hO swVNBl4 Ar/ +]駊 68U:G`gPh5&SeR f D"Js@s«]HZIyI.chs>^c(.h,gvp +ٽbao ҆G=4c  _36WvjK?藒nA_nهmL#&* +}Rۚzˣ[s6"vd#/U)4s*lRRg3l ! +  kzjgDYU:áث:޾}UP1oK +hշX9"8&U):x!P46QI+5Q"jDWETaa2R\@##S1 56ϙpsw}9k6=@$i}2u<|sLQ,'r-Q!s#GQ:s*#\vFÃ}7-],o$P +:; aP/WLS8E`?'WF"xԅ fVcE,FNPT  A;7ܓ ,5ys<)tU:s!30T6~t]?a3` Jw ^ì{^HJ@qO|-Q/ʢб&Oc@ b"~6y4E[Gڼ_M`@YKUG[(.C>S,vi{:<cǁMM[05Orӽ[{boX2ۿ\IB{ah}"[ݗzNA_A^qMƶ64w:lyT9IJ5 ./UL@ V T=+7]TDXF(@ `f?烴EAb=B=4k] f,zڗfzK(u.g-SqZ}%VM86qd]+ugݨ3@3#y&kW6U֬o.恴? qtҚUƈ9)6q-~$sۓ` ( -@C֫I"@2g (А0]V&zqrƚ]}G4pJgBA.7FyY+y ;;5-,UgT!^zp-y qNd x-lPw\ke!1x>HB&)hp,} J6\O̗Drn3g@ERシ3.%st ܥcܾ|Pژw{H dEfc{bhof\;Csj7zĹ: GZ"$偣 B 4sg.Ԃ%Q 2l77Hyji!t_Dž;<]?78Bȣ{oONgMH؈~a[)w:3/N^N8pܨ1~]θy@?yz 9$wjQcg75gCoto{d}y4/Hs9Qrͱ~x;N@cǵ O>wӔ46}Ý΄xތEi4M~xDV<Ũw^KX2r4fo|/p'\1]֡ȴLd֏b@3kjU 7Ѕ8La ;6Wvfz9ĝG!n5 M&[ #F)(#Q@Ǡw$q&Ӕ#yvC8tFﲑ~l~Bna,YW0v%M`>%q44Z% ffT%z x`a@w BɯxOr͝=:q=uũ ҽd<{IPsJt\M:+!V]}Ob O4E ҊrAjR7Q&ɿwXm\ +N1Y @zgʹA,kTXl}HTsFI.sPqLNhq8c*RUsаdW?c@vh"6+dL| )LL`"4ZH_:EĻt%|2ǟN K;3ӵ;`/"e@Lj4 G w +hB}#S .nqU"$r5dggTcw/h/6$f;PqNOknNBcX;V&܈*K ֆ7DN0"C~)8A˒{ -H|h2 +dgi[WFɉ}!Fz;*)bQ5^+p!OܑcE Zi$Գ]Ԝ:eԫЭ$U][֏ǟ@1.kb; )x}ԻmC;[kÊ˯c>Wce@H/x,&軈ܰnޮ4zNhDx2DMF /~G+S5rE/bo/^޸WDZ,ÍY:tp( a=1ы՟2ȔqZ7Ǔ^_)l?q =n3p4WhO\뻂Sf']\\T6`Pgnb}~ +$zbLNzQFP4_f<ɳΧW>ʟe9O= +0@FY=``74A>h M4%AA-i)+!tvyq()2f d=K7 +] +Rf㊛0]du\JBCH=X|)teo43gi]{qd=9ꅙS3Sgu| Ύ5U0'6k_n+~ohO&%җ)ܭ2З^Gӫ@:PZ76$eZohA y7;'~hk@Ason8 ~)#Dal(r9Q'4*%QDm/Ә9JSS3a8>%~O񚠹(Q>Hi,6i {Q+(o4Gk=a{#839LDIrgsɋCX5AW^U ϱ5?+jO{U +,zshO=\To@cCNCXKp")RvlAJTpX4uQAto*fLE/HZxrۉ.Φ X.kG&@q\L?֥]gRC'R^M8|hom.+5wGwRyq(Odѕ<7tpa[OGorpF7իIΌ &[JH +MA v?!hu!j~7S"Zэެaܳ-EENG;۽;x(t^ +]u͒#^c&N +Fs!y^}w$uSR :P&9n=FC+FƍgBIh b޻P3#)gz-H5ξJDvGg]\Kz@uǮMBqjJ()wE%E+46H=7hز&7qƖ7OZjŵ}E9x"g7qf䨈&)sOK\Un߈ C&ʹu_|5G(>{І.}o71m#OCo(}l*_yt1_Z 9ow;? LL< -"4OLrf',%Q4ְ]8+M5NHZ\ +79ejb`8h[}7燻u5o 8XaXj-40[Ǟ} %:`)j2j_ş(x~5& @{y{RjANA>(f.v{ςh%_|t9)AM>XZ\RPvmEϵ𧻓+C'7 wg J[jgw&DRŒBɘQȼԑ/D x~\}4LcI+cW֒qiTTѢkhi&%c6^WH2?wޤ…eq-RHP†U hX;q翧I/ n1ܬS Zytπ[v˯Q -zuU*~Rn\5ٛuo`F*%E酱;~FJhL1EG\Zo$YyiMS4@[ .QLz~ʹEΣ1Y+@ (VH0S=byQ>#5n r1?5FXMJit@9Y"@/&Pr6i *Cc-l#3_E 3y4F(FŸA>ji^D9APmŦ'E|xhRC$wxSm>[8/y:M(LqZ`X` zx-ܖ8P+rg$¢XFMr: 5mHS5xX'5e$7> ?wd 6BPg] M'pΔe{/Snz_#? Y.]1aṲ;V#Z"EߨjchsXs1zvGS̈́GQK(`> ԖV7'c}+2wn$Ff>-="f{g*f'Hlz~ V0s4xEos7+ZfNDsd1FQ[Km)D (IZ6ܙ[ "2(LH$2},I//TjX1!ypNd咰)jbkgAh_7M9ޏM+. lڳE}3y tlg(1>\o5~s߭hhL֖}r5TN{6UA2>DI4gaa;$A4Fl|/5v,yE٦ 4|tǯzhF>׵ZAx{N֯,%e&=+@)ӊHM?1ex̋$֤vt/G./G4ujs; coXc1b 0GL6Hh2w&ty.^E+la)&qx]j H)&HW5>r}{b1}?3\%tߝE~9xHhzsU6_軙(_hB?,; r=i`ڌ7mC$M5IgbMvɇgMyu%͓J(|BR8) z%[O;/aU;kmVnL&i]%%>4'VJu:_7z`dȲs϶L"fr1N[WXe3dʞN`)?x#s j:Kb$[0Oz[ESVna>{"nR/G,F:t!$0f 'ҙh|=<[nM8κz$C~\ Qx7X+d,dgUDRF< wτ#v4ԧNjyQvt77s/_ZcCI bFh%Pxtwm3lDΉ#}sN\?t'ǤH^4^K{z#PhT鎥C$-ƻ ܢ{ãYГy8}JX1Z@ +LvM&3A<L`xAR~]tcD +qۗ__1 IЩ4+ %3Ƕ[[dpm:tӨ 馍WX!b IWA xT4gŧ3qI hِ:4kD\'w"]2yݺn_)\X @ly >4[<4xUS}̗`/ ;vA +HiN F' $礁ʫ(ĒS-5D%,Ięnl @x  t]s &ב0lnRq~+hiOJߠd)(> 秖fKҶ].ϱ&`" +պ#B7z"GІ/|_t}+|`K;Mx57ka3Lm] ld珟}G45dO[5$,P(c+6=Ss'<"UPHM>!ǀ'_Ju !6 up~& -z$fsYL.TwhMOr\҅++npBA?qC".ob^x!@w'sG_r?vq@CM50UCuի t=+[ZهN 7!yJuS8$@M𻀱]ЇP͚ꗡ+DfBKf-RمMg|deu[\7n_7ڤyY3r xsFYgo>y !{- Թ[0I %a~z՛'}EԳubeН'"lB%MdBPw=$'sb_pK˜q|&]2:о+E;? s9Mcit}U^0- !yw5ƗfC* aRRr s$Gohn }=ϯC&v@F"m7D3\LJ\ak<5^IgʹVaG?.GW'~ReIk 5xi>s㨜8bgEEFG[Ge#ʥZe^qCa]!]5 zcf(1{s/}tŭs u~7宦 W/Ι Wl>*=a(XRqߣ5 犮cl@'M+|]ʛʟQ0чyX`5*Ȝ5d4}KK?=&5*'nЭ;Lq炏%G&勉VEO$s^E;􊯜}%?cQ? azZ;:;^M׍gEh`&P7@04bBTҎ11;s*G 6 +?хn@D3et'Fs!bȚJ Hq-;fEFynPf4nq̓p+S8MPB2F)^^h^N$ľZx(cex٘/ooӫN@,qEz3y4 5v4t6/kv=LS-`g+3jEbjp"VS?VEսќ7g)U'~&^p#iͨvah|/j&N7t@pt'@Ms?nw=Ose!F3&?֫| =R㦰=t} }/Gt<he ~V^Tc̢~qLܭ, FD,0L4=ID$Zo(ZUhU~]]EPΟZ7_*ps/4^w| typ +,h*#KFb0w@4) +STw'wn--!& |7n=Z*qM0]  UXi +X? wΡ$O6^-$jTȋъGCy;UX{ +n[Te'$G>a=_ٗ;+ύ"{Zya[_..NAU:5ΕMODie3>[Iy56D -o0n"q,yN@CrߺxFYSSh6,R!hdӁ|}> Dcs7We>;zhVs4.A-@v^-qH만.SP[̈́ЌH`]3G6n(OfYUR$Y+ + 748l gZޑImv"EݘWaKٝrbI#) *jވ>G$Pz)>bz~obOWȳ5HtM\6h`G6. r昜n)j[0қthy\Ma qlSfݽXV5?mxvceU[ofRJsiћid_Y0 2,FqH J9y!=)> u8m Sbj7T6У4^otvP ftdgEՇ3hX1g22eh2chxzR^O,+$[Ys8N"MW(:>2!TR¾tzQL3ܘDO &Bdx1z4X6nBs5ڃ u?xIf$ +H*,_ʙQ݌`ILh>c +A[weU0Gv9!l^HVV( ;Q }ƣ)aws3!5&O@*%qFvCC8vIBOywrolWD/4M}?ZO.\kl t /@)J02;sC_'Q^D Ɖ׉X1̙رY! ֋ۉϿuڱbv>\x֯#։Fm9cv܊tvxZ-Ǵ3UGZhǍ#!tL[zq+eG SgڼIw<S'GPu@(mLKIQƼ<;&l>oEj^D)]S=ray# h|)x I9,"0.=cIeC~ H)%_ˢ<3V }|V_[5!XW*ˢ yq(N08n<[ :hrN +9{=7etKNn^IeS1'˪ 1cjRHAB9tGOظH,wz|RX9: +V 4_0m< +h+ GyӱqM[99OdiNto16ɋÑ? h_5IVsoؼ:0o:)AUuCOVK ( wpRgj[g*iҮ]6΁Fwmy'[e/lo<?v7|,) 8o:1qu0Dwc}4=#չ( o /7@n[P6G ӝ]k7 r%aKܴ"ˀftql/(/V$4%FN&sg2 D0?mAۊ,nP1M?}cQ3`dXfUYϧȗ[2aw'ڸ~63rlЈ&SX3~UZZ93)ISɺ +J:s.:eGlҵ+En_viY{ËĎ=d$e ʜJ;y͔g*iJ XAyl7KV嬶!" ɂhaЂqgjPv/5|7og] TMsK芑틢^hV$proi,MM38F}U@s? ZNs^^@c>@kKR_2$vq΄KaN܄! MlGv՚x_Sed(NRCU`l 4X+0RGMsQͮq%F3}ٹjT@S oî4WFO'*N_Mn$A%>Z?m7IGaʦف h9;JF, #VL ~̏I ^2hwnQ8+cRaumźuÎV+_dݛt-Z 𜰁~y@sG~97 +<oz.;;c=ز,j~WfY0@ӅP])[7+@Jgќ\MtnE,bV~VP`\l+3jLrttlr "aX5h?PxOz C8#k=Uv22bch"2k2h&MydzjZ@ +Dо apC ӯR'4,V"i*2 +Dw : C=t6~uէ + 5$$C'eHΊ 4;: mY %m9x(̹$H,Aॣkԟ&igG|͓ +Vߗl~GU[>]ѥY|2Bf^]Cn@O E)fĹNhڻĻpW '<aW>ʻ~}>DwEI#F4`ԯ'V8 D +/ςC?Z[79 +m#ShHFpAkZNӁ_/;P\]ݫ6Bf_?hy4)e'd٘TzzK.O~v7R%Yhr?7Ј`7&le's]>xg(Oi- a.\ɃheD:̂DDSᳱA[sz:8lwMH5C̹'ecmvw 2tqyYƋM>Fʻ{RCKP!|!NZ:?TNzyQably t3݆ Gƴ_-3/q F9mтfZa[AL憌l1EBZ :@ڞxj2zڃLbJ qE&D/O{ߨˈ @)O` 6ME;Ap3hd!,R7{5ě#_MzCSj%M/;J+\++ ŜZa e+N땥v0 ] /]_mW) E5>v7kЎȱXy8E֦04cp۟2W',] 2 OS :.)7"ʐ.8C䈉9qqf^"&лov/)q3=yٸ~,Z_/r}{x͝U%BtExxLs1Jj ":^zm 6!?.tTg7&SJu6Co +& ;$Nj[@G`iE^(L?݁@`w MPϯa +M?[s*`bɩ"[1aũb\ZuHt4L+ $ʥb̗û#.Hi(MNqpi KS ^'V;Y.oϕވ#C86:[OvY>:a眈Ҹ.ZB +j!1sX9Hx5!aekEK G&IԤ4iB@-m# VO PAe6yJy̳^ҦS k $ b%Ӥi_k`Lk,bƵŅ٢LUE!ӧGf}}Q181;_*uLCD‰/Κ9yl@^A4F.]sy. 7]~X=m>flCYa=ӂgh=g#Cl{7ϹuCs-hBw3ĩ.s.tkR@nփ$~4*[yA˛ܴqpapH›;etQK[iϵ.>It@:#!;Eiq9?8cr Bn4e8[Z>EpG ^ ЋG뵁[V6tp5c}E@tO.न .Rh\m.[XNs0 c`1WGשּׂ3f 8pd1=6Ї…ѺXw Ȣ-Gqjih跻K.]zɕaA|Vr諂×y_k(8`m@@VO%g7` ev`qZPc)o<yDEdĈq  v95Fn_Zt}MLȸE/F'ش$?Gf}8cB+R +b͈MQX9 vYpoxA'4'tdۦ/@ ph3uk AF T@OFXJ<|V;#W;,;3蚘ٶW͔q<ơd>2HhܙA +k#y̗[ +1oT]Ԍe<@뉿.}WŵU-碏 +N d D.pv&CZA+3#ԢW鵄eGf~ ~rYIBXJN_abAPojI7@Ml+dg18=Y)c_;O]h=u6 `a&W:wގ\,۲"{甄~c Wމx甁l*A +ӢuPsBD( oWz~&v6hW􊌯vt u;63˚6ekZSN7"/]rWFۃZ#(dxtGzJw&!3IixhGM(**jkJa9nM|`ƿ+>HT>J<<ɥ^$Ϙrcr6壼`sg_ RV%"6L:rL0,SW7Ueu /KKMy4o !.q7F^.qX.Be|#.Tw^)_q$ М,"58[qIae<pgbC{̶/Mm2t = +=UcjfX$O'[ݖib "6.ulB<7o_8i/ae *iDs E3% i %;wtM*4:%N&G}H`xqQ6G\5JN9ht9`:;ၐ`q{yԂօ՟58L#>tChL.b5eR:g)בIbF@K:M_Gm1_x=6r\#lK1\LjlhIlphloq<cr." jS1F5-ۋZ]X jmX95l.x3 F`Er wUȮh"wp 58^p90 +塟F^W7uE5PCUPG'ERi0i8+F \f\Bi !oGK 7̈́F8k\a E[Ih$6P$@;gGTkc#ѨʪeM^ↆ4 s^gGΆ>Q^;'Ibv"# EK5AYV7ãia}ǘqrp1>'@T^9=kmiy 3c,d~Ly8\1(cN#!6!b4x43lXT~{Dcڂs׽θp^C6TsEŝ[nN;D +]k\?:iQP<-жƇ_ySaNfLKczdFM4x@K[6Ь7G/f9iG1L*Z[X>$"McH8)&}gKjPwX$+έgPgzۯ+#Khf:4ou2YN{C]U¢fЉ4Sj+9^=y7YbҜ6Џuv]Ȉ/6S?cr\^G3OU#4r3Q|K +9cׄXg/B^`_[R!2 +(FjP,ZܔE*f8gm +2`Է F Ϙ#ȆeU{$Qb9T}?F]\PɃ#lRSb63dfjuSNn 5Vp6C d(S8Mw߆F\jDD Bέ-aX/iԛ ؖ3кH^l z;}Kklr j}\6? q\_? y&pf=KӇ騠Q9~0Rnx?Z"5.&.}+(Cw*$dMRW9 +~)T^;-8Ux'$eXQy{KP\EsbF@ Ǫ*ԀD#lWLKI:Sm>4"|wE\U^5(ҔhBNS l=M4@tl/7` Kq5Hwxg~L?#;i'}5RBZ3&imYɋÍrQvVř֕pWoh<aj_8>WCZem.rk2^tMJ@^ #txP=3)8"ah3Cma %Kja uPD]\rFnE`w:@埾,8Wr@':fpM4*aWh +c V,\ +EE%1ȗ>$.y(Sio| b+Ǹ*zyg 7O5qf` ^-Z@g -Pf,(Nm5[>>߽U.?bRҜ6Ї{[Ow}4z$k<ҡ.筪ڣѬų@w lZjǚs7ćc@"b=qsz3` @wAE.VIAH- |t"sN01GL'W!jHy!)2Srba )E Fq'ڍXX9٣ $-snFGve4d17^.'(yMzZn0f,@Q̡6ƭqGʹlVO[ueJ@{f5@_z}Za 9&mcfթG{&⋲cEOG b#LW}4VE0dEЄEn7_|ߦ;Zu"м {z =N<9tɝ~evhgR\(lwyQL(&wBi*?#P+Mæh}P 7_ //2܃899A;s<hDx]09U +=R+_&]6M#"Ah_/?Soji)7D%e)DL[aP2 +P{`a0>$GךŌؙ"Ú1)`wYP|tOkYm yCV,MS:8"^uM:;fNfr\#KݭӻZl!E%fp#@GysͯT>AϗJ_[{&kɻZYwN<_VWEЂwtnue"עS ц7PHh{+zq +X8+fLZ:(6X(r˽X͒5pI3o@5ӓ%k!P:%U䖓gd4RƢD)^Xw+cth@Y,@._ #fm:/POQ]@ mit8@}ȝPӚ:{,rYj>KRlg^b{GTL -̥Pn&7^lem @,kGuH@bZTO+xRi" }@\݋\^~{Ꮯz#J8wFCQ:Sp?OҳPX:P$*P6HoY[8Q6"몠naz#;P1RR;X<7QomǩO*Z3j˫ȳ++<>BD-j!i* r?Um;I4Mk:gPdF@$Y$C;>!%_e1ߛ@!v3]&LT%kJNW(8kNо}k\; /?^,zb8") }΋ƣjtT{ [qup]Gzg +!Qԉi Q+r#䅧(| +E)20m#^nB S'Ob^.@r/O}Goͭ Lo52^D6_Fh݄% xWڹLsh@:/ +nفAA:꠩.{o[W}bp3hazN[n5F-!uCz﷋s/|d='fZ4ݸzkI$ +.FaCױtMk":%Zt}t,·=>\-,>9ʼnmgzk袋!'\݋} HSh\rPFvo/ LGJvflM"ž^hZBAZ3X^@Ή?5gEzaŴY1G#-)3& x`CYa .v]2"=qDmFg)i܋#jhN^rJ$ +βtN;Ӛb"%ILK$%ɳD $GSбJwt^I>صmz s~*kq~趔Ba˩q] +kMs;rckӷw)F Jsr/1rAr {^0C)}շ_4P(i #Pm ġAo~=ߔ9ojgZO<dvczWr BYу 73,vxt:T ?CWubOQQeڅ)/5̩3 +a9 +tc!JEKT1M9 K:IJۖMv +5|VIxzg;7*2Aۆ..L , +C51GmqYfFKUqJR[jR'YAnpnrjtHw <.Rbgc}:}S|pG8񸿘>g_<. ߗqhFZ(TF#=gAZBuB^›XmPDqgPjggޡ6Ц5IR>'z9U5~y̠^TM;&E"$4%@e827 B\=B`EWrE?:>cie[@[+#_ +4v9Ns-RD*/Oэe}_q/ߴpC?' +n ã]8fE݋s] Ou^IFgA'{n׿At_3cU;I !lz/V%B`6БCh2j3z2]h7Cm_CUÍ1KgLL9Q4hLt<ݱ5x?Ed)3a~&ۇ|fܟMLF x +}}J¹ /L˜Rhg5Ўc1A'oLi]:N>,.1sy<o~ك1fQܞ7"gٖ;j-l6V<!ƽ[lMa"##MX][~hÎ_E-Of_m9j @ +9\:f)'EW_q·} GK3OQEh΍ B<)74eθZkS5P&]iV<[phZ˹[WWyO;;3\Ў;wDZԘ :2d +Vy-[10HL=*%H u+"'f*Z +1Gd`' &~&oewg 5&3$SidD>{+Y䙒("+wX܅Ej tNěM 9bdЁ=)0-DtQ +*%,ȍΊj;Hg L<WS=Ćc+S=қi 'o۰C>7P$LԦZMT]qFa̠U^߳{. +?ܺsXQ򹦝eJ-i6*:JYa˞rnYZG쁞Hf7ez e28Z/%gA͍2@@w":N]5@3,QŠ ifs ( @dSH96_hsyz{]l +he,S}ut3cHhojc\L"bb2hBHC&q}F%,e)S!9fD̻<)O [AHl+D[Pvۑx1WE}b 90wod̸ {1oacgթuYS^xϞy,ˣO>Os#pLk$=LڿKEڌ6T, @w7ܾOf=ҋ/ OFЇ+WyG5]{-hn4-FG@>TsNjqƴj23lҭAwKEH +g4uP+082'ѹc?MS&GD<62ҢH 嗺o*'߉vgݵ q."Eę9NѴ#Z0CQ^ .@vj%{xzӳCΡ x`zbH<&ϴ%/6~B.xo +jMKr{,]bK'j26VV9ǣQRU]cޖsꖄ# $Oj$Aq@#@4YVNbba4H|] qpw>ulur8ybHV7IY OVh8ʎ+EyTDgUno@_f&IthUY귏D4@?G4МiZ|Q.ݴJXB-kx*j#*D@SQY ( eI5D  a}9Cˈ6R]bzHů0pqs6O}jOKxg KepgYO)eW/o9x]pK6ϋSgyZΟA_^pD:#UxOB:މ4ncU;~4YHa@nvYM_$R=KH}X[1oHH4ַ$y:O]aM;]݌#~D:la<ǰ/V0YM*ffSvY#P&sJ+G;1FKfc_g.Z͚E޵>V ):qVS̥4GfD3WF vhHʐQVq:ee_ӯiAScch}aWmK@+ÒhC_0L1rީOԿ6Nf\B@z)%L%7XVķ CQuQ*ɤglfп15|4TV`鈠!Bg\Xϳ&kaP1(C7Z"dn:Pd>odm\mӝYF3D D; r &r/юԷVL=3eKW@0JlC&.~/-Z?ޔ^!4MG.{m5xGMq[.zm?9o+@Ih:3 wx6`"Vhp-FB=B2tzsaJ*Hcʍw4CL"&ږKϫ#9%3<4],ڡeW'TV;t2'o&|=WC82W],@?ml5?o3oYyn??WIө<0ں^XKAkp&=Gm1f +b3-F[<΍  Pa?@>8;EX<ۏDOÞbphnaFx[,-6o#V@ߺ<8[dhh qĝ$s'Ȉ{q=Oi qC0?sj +J%A㧺7Y`qtGoxBxQmyt!vW +9Jڡe}B"¡oZ㻿yg;:L)WK4>fڷxZ(6AzC'+EyЇkwW9ܺ^UaE6'Ndf֗ 6k6ꬹfFG嚱*LN)~ +Z؎2Z1#Q55s 4SMIX^3ރ.FlRikg6t5󒔘c85 +dwI.D@t9"Iaj=v`;dh*4e8G-^r$d0gxYt~>3>ȟeL֞qc丯wi7{ư1A-ls,zt."? ']?l:V l.i(s)sMS v`(;x,kӱoݗ&f HOW@EFo4x&Z8n4z7І8s EO4bvsMsa5?Csz yF^#>yG 6wl߼uȎlӍk= -~.ً@7:>s46,}F^1{wƗsSsBJ4h4_.27Hɢ9@ne@}hnrQğյQz&խj~l:|0 +W@#U޹FOEe<63UnD"9 Z/dbκÀ\CH gq5UZUu\_/Ռ/6"H6KJ}wfp}JF{9q$i:Yʂ *$k{E.I\uDZȩjjw1kg!k- !jlVF0M[UI{Gn=@v- =SEo +hpcINh(=%L6^Z[:Ճ[aKj +!G^i9hf|̝q}4r$֮~?ЗN H /W8#&2O6,^O_2²i$DhD@u_ &R`Ii3 J+ZOlJ1^Me9TDtU髂J3H5sc׏:Ec t$4$u%r=ϲ:wx4F́Ճ@y7ܽXpЧGS)?lxF/9ܭ'c۔w3[+X6g¯z8zA޻`L ?SyIq*eU׍|jh?s.P3ںgq( R8u&Zx&p=^Ő9< T0qa'u!L+dVuE&c  +@m=hA}EzIL u<% {n k>Hɻ*|C^# ׷GLIwB4YO\͓: +ˑګ_i\qWxWGuFNKu w.\ +M$:q Hr +ĎG 41ɬtիyr$^Sz09k|<~\1mx/&E0Y:>~;^CSYLnK=~wnSnsp܃Oy>-@V7)i.Ϊ"|}eњ!0hd%ĬM2&nj{M:_Q#T6:0riQ9up}Xp,zվs==HW+E m)s#2&¦fޮCQ}Ѷ"fa5UؖIm(48춉#0Ame~e#Y] =ӡ-uO$0@a"Pa080΄ Icd4Zv4/NQ:Q +F&1뇾Tz%" g6tB>+7 ZӼ(gW4#2%5~4iaMnh>ނt9r3hn*sur/ `m7HUTiӢ2]Q5ZժcF2wW&7zp4|,&`ܙ_c|G5ȗ9 +ƙn:Œ;K{288c FɔlST'M ^ h"g 6-eC' ni5M춒M_IiMf7*8^VF4,v#+27UiaeR:s/`*l7H6 +҃ 5s)- ę2e33-ؔ@-8sq "h]ȱᛑ.1 ڑȲi޹낧 +-c9\ K_$7~ۢ]F>(@?Oc::= uWZ3bRF rVZI@Kӄ^mEP;)sśد{(G&rE@G>A%r*y_BeNgq81]CFú$zPLm!vWorri]&vy"vvr)uXՍw._*9D6gDa>XTTZ 9&_+" м\A=Q^~SjMA׏Yhg#W=TT@觔|ڐ?r'ƽW܃(|2#ΕBֿ; ҨϟVbэ=_gTB/y4xi?xm6P:ʊ~4; @ bѫޒ=C7B00GLRhǾ vTcFRl=9lψuVTMs@!$G:(%>oˊ @( &3 +x%+s$# j4jTQ1Hr|v4'xDlCm>͋;}DЋG{^쟭$LL k ++ze`4 TQh\n1phEM&qHr&neDR#yFMn1'S ;A$M FD<$ZLf`H\f"n!h ۱kwhɹpS*Y,i^ bf?Jli8:ۀk'8gƏk鸄?!Ѥ6%jYo6ɓz9b u.yP0@@`yjԒ F\ee额stў[sCܾS95&zۋ4 7LryOLl-oT2̭Ƙo7A1eX)u|YpK25+S[ h{VЇG*բ*E=~:-**bjٍoAa/h}{s'&ASFdWtL<IQlrh CnDEtz6i 1gG@5CU +w4 c{G{~Tu%̟[Wa ~^cYF'Jp ŵCaO𲟸p3dc3՗GnҥՃQ [_ZGqV]G5h&4'QbCBɆB'B4h&Ɣx\cp7Z4Q܉ӓtV犵k"w҆?exn,<duGt0)ƈlL}/ +G摽Uv{9k:zr +RОTs38ּw"RL;.^QG~BaV(Oo7_X>H)=³Ͼ癁KD'IlN죖@){KVLseS?Up*I߻Ut蝁<C[ Bɥv>k⣖tLj8Ɠ`߷ ך@=lG x~hM;DTs༁{@i]_cQnQ>9'Ǽs2t'r2s2) @J(AjbQLtWY16_CO<]x@rjʀF-O6;j!˂8(MSĆhAeoKj ?^VeW<¨Zí6 +4[c8;O$anxoo>_#~uһjKaBZZm/4$ Zs 3%4D;mBuϼk@s оk ܍k8{'s r}NMO\鐳Y/?~/g2Vǔ"BCYAzݢqM\BjymX/:(y#ԩ$ctO&b#d=MV!`+2&?iBHz'Oɹ J;%"1huӧ 5z[aMdUU^&ShZ%y^`@g'Lx$YEDF͎a|l_lb'Jqܧ34 ehm1y;<2h,d%U {9gvT}.KPLJg/iQJ<:)c:D<낧^UMdaQj "{PzLz虒zxAt5cnA]8KGΖ&& ui WTeD&$57۬:^t\=9GzGъ;](aq$|DM,[IH.]'@KǦ Q=R +ܸ;&IYbk{ K`YEf¦4p5o_AxDm{aR!χ ; ǝax dXǺq,eo$UV^?Y;IoOȻ+h%;$oWq^6ɅCW7>Gh B+t_~9]Ggm=zpf)xi35H7}EEm^hSu@MJmQyg羢Cqa`]P%gt9g kzP:{<,:|ڐ+8l9BW,6?w_<8CQr@sv(@:+uj1l="v~ᆏTS:[U"8b-C2k>۹v `I6/XFMofi $:9e͒CuqI2Uս=hB^! +9N}O\C&[Es6=-O6llltH% EMDAOb K #(`' :@;_cVHa _9,w&Wj÷^h0-ҦN F v@ys.bR Khj팼t +gTs\nhq\zE=#]|8ٷx; } +cvłSriixYܬ)/#2 L +={N4w5Sf^vqX#LouƗ9K}(pwjP ۴X&^=ٗIb;$k<@@w, W $L/B]8Eb[QA \-g(4wj]GHEZ-yAؕd(w}<6oeS42:.4`ݟ VA/ltz}wꃌH.Ll;.}>zlR8Rx@=L8ad0̑HW>ši + G b_0Ÿ:1"jO^I9;T0 )F]g6Κx`<0 ]>V,2<vN3qZ]wT694@ (y;ˑҙVd +hl&-L 9qcblH.2F9H=J%]xV4w2W\9qij]~d M߳ڮK4QiwNr7$5g~g!ۼkkti |',y?aZg. +@9'>Qi@@{UUoH/lm|ǚ ` 7Ե*;D^{ <@E3q֌")ѕ0C8^{d4% .L|-q 'ȮP.MKA^iXvEۀ5 +k/47#@*Z/oW{{>y *1[P&!/Qhc[?ϵA7XbU܅1׿Ozv:k! +x1RVavGcR zf[m/k:c+@o&լI/`x'R-}~X܋ُ6N/^@YWAR@3t[81pzRGͿ' W4%hO\+S:1ԆlhU8rv~^`CX&]ZǕ/}hy/Q1OnX~:4g3ɌF&hÝF.4JEn^\<%XI$P' hamCcl/I14 Rx*Tq33 Øs7Wi'zƳ'{y@:odcg)_qMt ͦWF݌1||ؿwQv8@,ڹ d`/Y!#B9,iӈN4 +Zs旐n+Q~-Lj"-T7vZU<]pVuizP4ĹKFaEՏT*"8!AI4TKdʹ3ZA/J%t>f:b;gY˒ +J$0*Qgޥt04wQW_TFs K;1&$p,ᗀ܃IB/c)39sht5&ʳvZ-Mxr!;a^8x 4+v\ М>Sj6jQ'^\W;ZTc؀3]2]#gM ~6 N<*. +y3Qzwa hDwtbNd3]8,2L1?clvI3:d]KoXcKV|?@|U;gZ0߷~rlGޡPrms+84VԸt,9f^'7NG}paZ_ptы{K!Λ 8M`qp4XD@#[gڶQ=zAx]Gw Z}avh+'0"ڎ-vmg} PZ3!NL8lPnAZ1YN!X +=h[GB8 {h.XX&8Dz$v VteIf<ɦ3Z1TR' 'D< S7GW1 0\)2X\J% ҆P'k|ֱ҇ ;ˑ5g4-Dܣ,~(XԬy&yȔp=&y^7 lѼ-8Gɍ,& 2eoGw5oq8 +Y$p_~+/2=Czo6E8JR(Π + 􌮘+c%Za +DJ'a/Xd W@5qpk* '{J./<V lM;̔~?'dڥ^Q+OC%5ޮ_NL$YH6Иhq@~R*ĝ4RgA3@5ghHp9x#%IrCjtQc&d@5n pm#U$NfŽ_ +Gq@K׶w!2s)SO$9TCQ>ý>(K!.#ho/eOJ{sc]$BzF9κp[PZ@ϼ8垜0(YƉCCX$.*t !Mp6e,5lEJg#a7-ݔ&x`y&t&TCHHo~ +]]ma^i/zFsbC@m`K?@ xqʍwEe?"si~^ٺ )Dt2&9zqcQϙel~&F8d%gqafzS/I#;eFҡб'Ndd3{rU\1P9BʤХk5J}]ښB 4)wdl-/F8BYM qCH +A gAA8qLnI÷'ɨ=BK*#oןnGl,;&qĒf 滛](U"QЧ|5drX8-=ҧmTS?`4Nhۆ^gwc|̠LܬX6[@8c$AsOr3<0T:yLQŢ66}iɻk@X +9 ȚQ\7B諘vi[%JZz1i?IՐ;|Ϝ)9IIfFE tF~:i=Yykc7G+*KTEu2::d}9J;'d7yx8, z}q0 +x-1r<(>غJjWʰQQ&7)\)1L Rbq$Zx:ޔ+^v)+酎eGMKP;4BO"òd&g GL8KV:WaM .c!2%"e(jKi-O"-85ߜ-0`~RqJvcUhy%>vMd[*[D<-eZѴʸ/i'X'-ō'D脶e/#p;}0zQ +_t8ߋ,z4e1DSG.{ֻ*y:yѧ E=Ԙ E-v?bdnjY=e[oXIiDQqMHPp3 +(P-G ]O&^Wzۙ7Vc,b.C=ԩPoղG[gk2~`R1sM1ցSܜVP-e.d&K XPQęѸN& bY0'h:mCHд!oj > 'Y8{ v-J&aۭȦ#>a$M[ht0Z5"CYXK6ery1noQ%oa˙ps( 5U?%y7^{\hp~qeڰqX.OUs$aX_Yh{[\*yK5YԸ= :;T!;o$-F|DZ-"3ݚ;_%e9;&{Ɲo +ƐDXt*52FǎG֌49`D.$RhZN ɭ +0U,+aۺ2[΀zlH;& qL#4%[{Ճm1rMuG RvVmemA> nJQF @' _^{J%⼑Ǐ WA,ō}R9C).xw`⒱ DohG Bɳjˣ-o4p^+gvhuna>/Olޯ}Z<oPs"|b*D%9-[$m,;/OjG2h +8Dxوp@ +8_;f;J?q6=2u?|йM,ۀ5%4sut3&ӂP)΂G*8~"w3:{u[feRͤQN(%mFB;vtV@{- po:g4KRJLZZc]!sxJ91Hd)d?E7㈏n-gi=.WA’k5ݖ`@ɣ&d2'k zR3X+:^KcX6LNdlKUyW)ƻ{no* +}ύ@\Ц_BLEol<(L +@-5lJC3蘁LiH:kF'd{Zy '3Ugz +`  q'IW<;)5H>thƓr ʊcxH,^`ye,:@1Gγ|:$ MDM@cR~wկ1GTyɒh᱁G$yv4}L@`ǭsKf@r\QC) 5P} 6@KxDz}#k15j@++hy"35t,AJ,9+gqDУS.^@K9RMnzğC6Hm_׍?cF/Пܴ+9`lhCTVEa ɫSӊa PVb2jlUC.s<K(26G|_}CbU{WgM+ӏ[ /^#O`J*.Y,!];:4rlUOfkˢ_QDʎ q!lHCYb:!yw/FUU[vTF?7D~ +q3Nד&$,y$M1K큃f +t!hr!Һ%I47XJ8J ΘȲ獀oBk}Ԓ5$yFU5iA\j!UJ4COOp Y݇t4RfrvϸRcиICpH4/up̕}Φ+oym~r*&]|,1o,b}L`@g4}k[qiNh2;ND{i舓 2d"O +m fˀRhk "/o" O@'hT?%c;V:cx?s3=dli,-o?}6_ja8/3L^dX\M$LE]Nn2UfAK F?so.zy9Go]nOnWV\yc" 1!3И8g!wv^!7@Ůb\XnL%B7F7tQ68o vN̾BRʆE.+ChZ?~dDhumHn +*yU[§JM)q/8#G,FK +l՟粫܆#[Gs[p#*@s3\?ř\z"~ F4zq ?|s\KFPgc:Uzhv(yAj-ݦ#hLdL!8}q͆葓%0* L\7C}8s-XĒ+\fW6WuϘDli,Ts(2/Ofo>EWh.RSӁ OhA!ζNpfݓvRl= {pD9\2#˟1f/|sчad:! dwۙp<Ф@uರg@$L@TC낧^M{:Z'Cjrb|_-]/}o\ߩxؔ++y60`XC!rÚ@MDjXe4[ .R1;˳6FдUpyY.B'!HԬgɆȟi: k ޵cV m_U5O x? +'e5,a}w"]͡< 6И'x{7=ϲB-kcRln77 v:luԈ=p)`@Wy )&/Oq5.*^X!T_:/D &ZI?{(ˎ3|YY$bsc%@X} B$0bČ756=6݃EۀOǛ/mmxA%TRVj+3r]}/_Vf;un%7fuNPj=PNn.!w ZBgqID bj;5tvVhB9+&<] :avT]tV6{eIH@WІzI?E>+RfY%q hKuɠ9M#&.8a"lp`A];HT]o߲o1hm,69xœ"ɺh3?fk2mO|G_+ZQ?KѶ_惞fB \jg)HQ?\qO]IShZӀtp`uDa^5.A ŲfW&qʉ%To;bs#ǦV |RF~aEӣE[NMrg}D\u2cWn̯MYƭ{,)<Vn!Ȝ,cPKȵ u!4<,\zͣfC!Lkt +5c͊?].$lF 뎆9$b7jV ]񴘻 Vvl}y6[ɗ[k++):oxԾ?w@O00 ?{VzyԅPkZ6+`j%D ;fiǎCoU^R +KUG b& b hډugeӽ-:c+o*i_^:e +%-hvVNjH!yLx#^\XJ{t@?7_+/*ӟIui +'(|{ F0i s܂4ZIɨ_`*EwL0g9$͏ o8W3JCv7Z} +h)xe_r,sQUP8ZLEK UZ7 әZ6*S ~ՠgBSquS6F|ofιZi-}hLrЙptMDu@̥͹ase^w...c0kOd5 ++X4:6UNe4{y4ga*Bq,}q*7ٞcy&nkWLeΒA\.$複d[LkyXԍx˭uU(ߚUO[Vkg['UeJ@/M/Ot?et:BĎ_R+icZjȋT͋7hCSX{&J0a@PZSnyd1ę{w`=(m@+[ew:+ݔGve]y#“h~2XL?Ҿiԣ`L: z=﨎vʐH6E4zH펩}E*)abb(YE@lZ9*UCS+6H\ֲ̝}h.l11pa~c +ʯiIJKӄ6Do`q<\7=n ,no#9iX4KGwH l7覕Vӣ{4}4WЂ[3챟L + +ڻflzK18-hliOsr[w5v"kMbXt\P_ᴖy”<_V%w3^_ʞ[/Xyq\tnJ&/rXL\}ԓ}WxPܕ2S"et@}8WB rǡNč &ƭO +kib*!PT,)u@Ma@O,DIcu@Ӧhu hIEзR&g]~a1Zoݿeck*I2#5 }ϦyUcx'k=z"g5q6jb0i¢Xy:WYcSl󯤚HX-Q $hM>i9r76kԟJfN'eoF>:ٿt'.VM7N@ׂ ٫}ho?<7 +.}g` 6CzJ>t~$}I G P=sVKAhЄT%ѱu`zjrun FD[F{ҭ-Nσ$h5>wF3h/VVvˎͪ> r*hB7߈3gh* G?Ύٱ?m][|щ|nȦ&wOMHL|xhQYݝzN|\QQ?'EeCV*fo~aGrc\*0q O1Y ȭLKW@Ze(i]q +j!5dPER;[2lrz˒h#>]KMl VHyA$DCg/ng4"fjjӱ]]ڔoݟbw2@#xitLILYLAZsH1+Ao洜dgyM*)wO7^j=X~'?qgèV +V + ryІOUD +՛;̣T(Wp3T]ɪo7TڣSb}wj_H2`γD36nxT9/g==r3oȑDLcԱP??x+͹?{sO\~pyoafˌKqT/g nFz㉪H{Wԏ h vIW@SnR, !>@|@3G "&}4fHk.5L{Hi $Ctv<# +ˏ|8Gh8[ XB2ƭр7Я_|GE3-rWSU<3wk"ncqSTR--^ L?ĚAv)&>OaC">97W 00֓b䄮 +VD5/;EڷtyΦ(%Dj4DKLX*u՗+ͣq>`p +(u=xIe՘ݟK]v0J]-h<}=GR+ ou0/N m#<gdc(.^]/"٬|-]T9ua.Z<׎#Ǩ9 x(z^9Y—ST0.{n~^7+Vc6ovE*uW41U1Ӣ֫'wȕB+3WS  Iwlpd4Rf,OJ/FܰyJm;ARhaʍԠ=ckĢ n{*7n5FHIwlx$e.k*kE|L|xhn<=埌fe6]j+ZJl("+_ía=k#{o!(:/-̣HU}كiWKJ6 1W4Rj#`EX*8ׇJ-i-(j"ĉf V^"kx!(*,429 pŽ +m[Pn )V^z< ^D +ë#N^3 Ihɇl8"Ҵ9cջN 83E,e'^y8;n;ڛژTu +x*͇O &j=0޺k?@c,Krjmw|5tn17̇<е*$\No~CIf+%M<{Wn˜ f?lɔ`9ΰq6uX_hz/TЮz"g`Vkyuꑻ*1h;lr]ajYƅKjhqi9'lP_)MgLռ 41e:MrF,#5a.S@{J;eYmPZB&z`7C0] +",_a#ʉsߝG +gq\.'¾G8)4iSP27 fƎ5h^\ pЈ#˩y 4FWCbyeļРر6&U]j DsI~vQЛm1]×4cIw{v?)ge7$TZDnxֺTDIqƪUݑ^k@<3w}r80vF^%UJd6JL $NƁgAsl@kTaC`EO:=vPQlr*4FXWkF̠GUONM_\:P<;eg3J0_vOh'@x1{v~˅@3-좩Au$v4&ה@cz@%v"s 4~1Yͣ_Cc˟1u9{t*7Hy?'F\8n?ڥ|L\Sk3!j;eZ9'qjۓk*6rDL[: 7_X6,bI @xhQՀ^\ V/QjZŹW'=BBԏḩDZ"WDEāHzX6ayι͕Y,ΥIxT6kE'a*6RШex s{lQC](YAr/zqFVR6ۡh dgڋZ9)_N"*OcWcT-m.o]=!F>R.zB)y NjȬ]*ПkqW2W~g־S?68GɬZ6X}^FmLnxR -ѱgMNWҰ٭ ͠?q\сqZ+D1`$)xo31 +㠷h蕡(pFM|b 4j +@!E!6oXmf$.pΗYVlh.ր;l12c5m&k+y`mQ-hvϴl?/:S[WpYe"qbDqg"h썯8=F}ɳ S:q 5q6jb)aHދE/w5z]ǒu4_BZIsGEK Bh<|"']3//|;3JfzT4f:!<.v#*I5-D"7ԎlDTpA(^v 3i^'kX +Q݄x"GuBbD|;x;ũ"199oݓwsG*7*Rb*4 Κr|acoqY EGc@=]QlvDa/&>4vkLN1\IsɣsbeǽPK' ]\Q 1@*b]~sm/DxC[xe~\kl=Z+mĎ-`nCv@ +[X\ЧhL+㿁\8tJ7V +@#=;2Py#ơKHy{[z䥾Y lQe +PZZʿ>~@\TtxM|x"mgVbi3d@ UQL'@✮:ET$: hUG3@g-R?"ZȎpayHVuhĵj(}]6#5[V1zipMۡ2/ +~X]o |Κr|e܂qvh(+4}DICbyy.Sx!7Y+(c蝽Jm6~rYѪ-LFA\Z6ws6ּ`a^7{Z+1Hp25`vBVa>p}MLAeg R`zڏ:oZKK=~Pٌd˴gɜHt#6*hʺBtHZJ}$ԋ#P{Jg$lZyHx66DT"qvb@9x;VE*yTo`4(Vg +eCw@z _qϖչ5wOen-19u|ϼmf +Iy\?^! 'mDb18G ׂWo1eB1R8F<۰gp@?A֌ +z;;4/Em-7+5KQ~"e{=meuɿFK0rwJEx @Ad6 |8XVBo +%5 )0d +ha;*wJM0RƳ-R<PˁA5g’!2HF "3b0(Ihc@wD1o %qFP8̓'FGstW;MF| ?5vvǨ1*@?eBU?^߻*(7⽵'Qt%&JDy' kc85;N;u~DЯ:1dI$Bz~(@w1|X73vJP\Fܳ>Z2>iCsrF0|]k4.Ltft؉ +YonS; *Sk}ͼ8y@znJFP@w/6δ[?w?Q/OP<(* ld1VpBb=84s% 2Dzj$}K&Swْ˞.+W{5틠ɳغ$;3Ƨ ;ˉsD^+}:'c+s (O?M + \beн~b) aAqE˙CY%\s7cw!qܹ^Iv)p֒;{(j*i_ +8jpË b!M[;nv2*⨝ ĀD3)KðBۛ ڦ {ׅ賌<Ҕ9W!hj_9"ѿBXAf1!Χi1nA>|P3az Xߌbfz}N>2Mmn-jIg~>|;byRk1 Xbka*ZsJc%r=Hx:~ctc ?:}^wxs_eB >o];cATv;fQ=/EFª>xS_HWb': +c{f+cj>WU8}hXijБt^ݸ?n +"mtoMļsm @s˴|Ϙ%#-ꢗAM\.T `W([nKhT>p:nf0ۃ{E:k$ h,XmX HqfJ5a?E)&<'k>5/BZy,3?5Zx޹u&:ƫ?< Ÿx`Dv'߶%NxɿEn9O% *Y O־,YЏQo,ȏw2{ JWyd5ܔD P"etXLj8;/2^bso,Ws戠q1ǚ#&,۩c[ >KNTF!\RietTPCFo`le _ ?*",P(-;*@31b@er@nUY$]%V݅ĉ$͗lNΎdPs ok:x 4 .2_3u`?\) V$je28"hN!PEyM7+1mNzMgxQ,Eู'zZmyzE`-yKlgĜ`{'w/-_A6:(^f1O3w^s^;W 6@^,@eB5x{|6"sY3qg *啖K ӈ]uO2(^@ontp̝ c">2>ƴ.6-DF SD#; 2)`m/sh]]PxPx6zw<$j. ZdBi*4n'v\j>&k\=Xg' CH -[ա +u|*@B'~[n~m/.K=^ByqlܷMw '=e5?zlo^)/_׋'3Nw\]?U@UG>ΐ/XڦQt pLI?|@h to'rhjtahbhdt ) ґW2n: u#MR7@m5eA8W|;n|*I{# Q>^r3" . @@6yq"p,h';#qոŸ3з;Clbm睟 }3<^%q[';뎇"GΠ6c?7o1؅-Omk +\) zIP}5C!e.ר=l-ȥy^obu0p:T*|SW<RG:"@R74pty͛%MJjzLp냣w6wpjdEGϴ`7E:K:cCf_,krie9 PW~Y0vP㾛ق Lh5WZ'͓lv!ʒn\M߼y +|@%=}Ȕ=wgp{Q˴ +hOiynfnv/Iŝ-W"@+hh^ CsBvYńdAe6|?Eԉ/M~i1ք[EW:s[ji|h'?g*!2q̣{tϘ|@ IAt%/nVTtV+õL/g?<~)vO0V"qz6m{ޥܠER:ǪV046xߝx{;/:zxMxJcu*!ݽ[|xQ%AEO+z#Iyrl>Lc8}kߘ2LX6h4TDi1HŌpǸQwL| b(LP`-R(F O7pd!h,6N#I9yS)d}qk GպKJi t+g)I<82[we8kWXEURFy$=npRf~ [9\-\X4ʖ @).Ch*Zy轠: z+"Vո.%62`0FrnˉсCă5 щ|Liޭ6D%B_p@C#(?]r`\W(flI;%݄1tBRVC|Y=\&hΈ;y%A%.":;;k׺^.].'qi96#ʼnxzoQ&] k9'nTI,zOvLQl.YꚂ*0U1XLFӷdj3wcbʼL_+TX!=p0XEyZ,!υ1}!a/2>qJL484C@ _xƅď} <3!P W6Q &aK4S *S?Y"z4Vd^-DF?i $i}Iˤ\& +"l$菁Y +'X\܍ځԾ9'~(}WWx Y AkfĦNI tS҃ݲ n\Iqܗoome_ͯM؎pW;N$ӫP DdXtrkq"?͕55hq9u껺W¡fh~ܮU!;h`aMNL%9kWݮmeLɈlLH&R +Mt^Wo*+||޳7됔Њ:ȓ.f#ģ$VbzeoiZbj8[~49:g~ƙa5NPx86C 贐iKB?!3ha4Uܐ ҫw0ZpC _W;V1cUsm%¨E2ѷ΄4A!n5PY˦RŏBYY'f;t\nE@# 9@e @jhy&:RC fL?<;Fo왑Ts weYd8/8vDzAOg̑%h"O4U:TuhqRhmߋJ+v;Q +'j{Ԝ2]whj7%oz88pR FK:fJg|.yA_p+gSjj_ 7_*g;/gSb_{dxMugu A)<_e~و;tU}\1|/%&UB2صԽț$yDzMN%Ѣg!|<Lj|tuG듁'Iɢ7Obu0K<3'KDйyI5j.{Hz{QUk󦇖.=[^C6m#E4(G.Iu oJ̈́"r l +X"?ҹªqMW'Hk^kMщzDh䧧62-x.#B:*VZe*Afg&b)r +A3$9B"AN!Z6d;w& C>ۆS +y3ע&`)#7 )p8;~m=8Q`1T#MaGp ++!"Yİíq4MpB׶(>iUBì"TlI6#ZD: "xZ׬?8"㺽 VY +.=25C;FD֗X\?.]A /جz.g<'BSv`hROAiJلߚu~\O(|65@^ϼui*Z50q[G:}; aDpF2v5Tjo{c@;Zݎ +|.yd*,ctٹEXP$m~E|%E.?0F_8sbXa#sG7HR zf)x bZh!0VxPF1$X2o/3e:V;"$I;!fu19f[tC(nlnOo~f_qk4J^dQywnMXϣ@w'qu 9gMX&@Y#ae#'T%/x v kĝCO@f¢ͽjKY2횜ZSz[ojԓno}_|CnG/tN%ww_5~$Ge" +5 ѫ>'Pd8;W]Hn{ CzZ4b2:n1X\-@7SKIɦ a @srn6h!FLoHдنփcuHNXL\)8J]An28Ӹd"ԑ 3ꔅi)3ǟD%`j +< P]ʵtߞs܍<϶:4}osDHQaj*:{$UACConajP +-Ժ&`JDFͣ7(AhvBsH;MѯSb<*6Q@<#&L^hH)cL2_ +_3"%49Jz:op1g\RPM}ꁑG qp}XsdGJB>6n+ۅỽ@w7 zƝI[P}{s"]𤂤Xf]pR4쌓m"B~8j 9FWQln^P` + +'_o'zW66ǍKKK:&4£*`AC1][ҵ(_] d 7_Nܡ*,zcał-31r:ׄ@R+i}MH逸Ϟ~PwlxYgKՅ7"G +_!:QII트3dx?Jo +Y7laݴ2lj/SZwg5On<6q; .Iy@ +nKJ#>(D-0'c9:> `* gLjAO0@bʨd:J4 4etSOK]}4WͶ! vplAag4Hn7T4 RuKolsCN-s6j)*M5fOfi>P^׎(}е;?ɑ3 :U@SGCFk'}5a(Yj8u)Y*c[iꈾ/$H +MCiD2;%C +E͔*E[I`ӭ5 K @'ԠKb[xӉ6}R[ҵ MJg=^8#Fk\ *}Љ YVIx9udeF%q~h2ИT(081lJH%5ŪRhgWFpKػ01 su +s̸O,'̨mUQpP鳎{n+̧Ec(_Hpᖅj;)A zA b*ҫ*#+:|O ͞WF]¡^|&t=I?ۏ!:S.(k$_&6) lg +W03ޓ/tiϟ{Ӄ헕7|C듓w<^fLVц@#ܙ&BolWPͱ8/6^q S@G)4pz)tr˴[X拐0Jn7_ehq~;U41NW7ŵbp;侥y.qۉZaCeU!߇ץ91ߵ8F +P;DʹAiwAn`Bsvukj?@ \MC U| [E FT|1(n/\(\z|>Zsd4Ιre %$vH%Mw>ʇ-g48Q&u` X zaL.Xn!GcVaFme]je`NMWR܂CǞd2>JcRhF.=czwA[GZ9ER{n @UEU~Y|#|5mc5^8J9&eOht2P˟KYE]]ϒ XڡL`cU,htvF)]GLRha=ؖݡ^/N AS'{>;ͨrg$kS{#D":~3R(Æ\LoK toKNύ!$X=>uu*;:fG$FU@ IQfiB҃k>ҏø~;ϏT. +lUey{|o]矙,hŃms8? 'S%Sz&@+ȬEKI;(ba{',D?e紌ҋM-B yKqtD Р)Ope]Y<3?op޹/_ZC%Dд$`9V^@WaK#2xGc0uZNWIwnH^Pw\Ba$Htȓ&󨥐[w:K!t %6 OY BYbstuBųyHgi'$,?cp3~C]==z_stZ10Sy_8crjn)sS+g4#AV@8|'of7}v]W;#sD<0XALCjҁas۹X}AVDNbBaum\;TviG "a4pqRҊ-yci;ӝí{%ĦaQЮYt ;von*RE<|Bu󠿅k JnQT sn]jOśN%SVDp3ܔݣ]JleLjkd5c[^A<;E':9*") eۅ~ъw"uuXĸ*sk/TPfc'T.? 7$'Q8PcnEЎ6 bclrji]lZz:@c#vGijgo0 lpnJp%S^n_Uc+ xD؂=!ǼJ?]oW!N]©qbFpmPUr4'D $SKlpVeQyƑD9&/=87[>8 'o+\I-2zO@4$p銃u,W@;c q^Wھ`C_٢VR-S4 A'hoYכsg%nÁ ӧ 7Z':1HsێG6 iRjv7}W6L4tMT&$®XzK[z;Kd[rs\8ki҈ m $EGMLD< G Ai~}^uHNMfypTI?Ge4%*Ll^03i0=di8o8;cF~ss6ZOEΪ&坢T\gb^Eg޼f_gp(*|g[8F`ޕr@RLN͔Bg5%e# &'k)ΓYq#G!1}TL;gnh  vgtwԱxh=YmYU\$w4WIW~f4e%!7轍 e \m+a:NA_rj+US`2(*-K;ޱ +y<K| s,n?٘S<B.\K%=7ԲJ<Ȍ`u>TmjyaO7E`g_#kNfB,K孿sH |fJlBTtWZ]htk^R3h?6}f;$T:YOJCP hyZOHi7yGCQHo\AQdJ m58/j{K_ֿZYd/(@Khˋ)S74hK׼3 : 7yz8?9v^$w蘁G QȌ&ԍv*蕞m h|8|Q`ax*C9vsS7O&H/UoU@%t9z8۰וq j!if,=EލT$n?Ty&n$%׌OǮ=-Ճ?4Y&A3k*iG Jo.1믢Ӆo1u-:dy sT20¨dD1K!ivW TI.,X 4kj\?8 *EA_I%RP1袠j8|^|@cLum/fIϹ9Xt9L`(-9YZX!'q&e MxjcȎ +wto<\2f&!1"ws44^w$Ժ!0 S,ao/:Yohiu-c JW7<*VS:%g?m_zj*ju6`͆C"h$! &=A.s$()S MB +@L}T4pTͼ`-Fl{K>#Km١~)-7!qh=q:EMf1B6֦5FyI5,Pk.F ԛdhrdWˀ njYzBDK ++hKcV;"l`P?.|y7M68et·|]t)1G_;zNf%РSj8Ë+j>mu&|."ijCUb$U& ̥;Ojyи\z.l +ptM*5*-dXx` dVi:/ onH5ԭ?oɭ F;cDn9yK:`ZQHN>F•xXK(b\sܣT"Lsx8(G9uC +uFǧ^Jp2Yͭ)09!DBC@ȣA;cGG-aT r28Ŕk_[=GUŸ\oza#փJ&$'ri;}f.UvNi-z8[^} MGtqz V?ޅ‘<;2d篷nV*H?s}?E oe٘u0אgJ*E{0(H|:T|8wWXWl$)H@ʷД~6ʶſҙMC/N-IEZ/fv0Q uDž۱u6@mr曙"v$_;G-}Nw[y&k**NHŠu62L<4FKw˰{5ԼXz3Gdssf3aȡ7~8YώT$8{9@jt*abDhAJ4t;V֠74-ˆpgJڞX&YgqF!|džG-ZeN~:N?(F&-G#>HTҴ02nD!ff n^]ctC7$-}w^ϭ`miOPMx2\?!Fs pHFcϝwG >6ð F4h]*3aVJ]u$ZW-r$C])8Z(@F{FR |K`rR顱6П]×,{KOF[&[^Z.OO@g埀@%ɛċ&or-~/^I\O@41 *?]ڱ3Oi t1BmwZ۝JL +]hϑbQbtVJ(mpM/Ujbvyd#+|.EGUQs2_[6Rs%dɂ3 TC+gFS 6-]p&=ꦷMiTomX(]rFR)&#.|fh,p_ԛOh74M637.E~@EO0f+ҎiDe -´;F_ʯ2$4F߮7%'E6)ܣSCfO:#( -MVi%b%@+Ay -5%MTgu6N%+znxtoVAE[(0%@#Ѓ10={CfS&> +$X ɹϚR i1JW.ֺc@YnVIZN~T3e]DaYWqX D4m(v6 @!4nn ̓£A)eti*xJ(0'z[LEҙ/ܪ4KCz7|l^ Z_Ac +創S i^T8CJM{&KhU êDib @;2*3&E&sca0u]~QH8kH/dz(6.,h 1/r׉jlp}j]ywGS4讫ҕ$o$|y +rTTnmf{hAB7=//{[-. ѧQ|˼UX:M{a0 %ԕh0İǕlMFb6(2H-U5H0^%*|$FeO]غ\/f;a+g&CMW 7|MC88罃Q5 +endstream endobj 512 0 obj <>/Filter /FlateDecode /Height 468 /Subtype /Image /Width 1920 /Length 87981 >> +stream +x E_UgLBeAUABPˋ(q b"a G0B% 7@B2f,]ߜOu&3g>}$3Ϗ +!   NojժիWwttx9m{„ {)Sw߁ҥK׭[|-[8cYV">0y-WXEypj4"F+%ڛ6OdS-`ߧ lJDzY2¹1%kd9<kug'X'44u"׍vmyy-#Ֆk %A.HrSv=3^r–Xv09[a|Sd4\=rWD'I0 uvJ]Z٬H@ +$\< #ˣ#O+X+ &rB ]" W' {ʏ3K;i3#)|ȳ{Dœ3\l2ĥ(@#  s|{GٴiSLc9O>Co2/w-t{O8N;mLQF"Y"7";,O{A\&| -_}r\Ó$U7Vz{vX@xa7ƒ4u=A 9Xnؔ&W\XxehrAV L L]G,0guW8O j C]Ֆ} k +e倦[\´ }YnIQ)VK&YP'˯rC +yބ/@ċeg&_-9H,yFN[|V/E5'hhAAA<+WO~x⪎?o}kڴi̊+~KbW;*@sU|ŝ܀9^|)ɩaU"%#+ѵ;s2 /&Rr[0L?A#Yv{Kj"ZOVv \(A愆@9? )⬽rn)i!z o%1\b)@Ss9ZGnHbR)guljJ|%)< +   a8կnG8#FIsν=+5~5| hDe˖˳dĈhypgo_/@{999]ړ᎟ K5۷+Dga\mCGv8trcҬUF@։Z& +S4J7hh*1(ᨍ@FR!~AL#s֏imړsUzYGTYvM(@#  2Tٶm۹[9ѣΝ{!3y\r#C9dԨQ|>kS;s}a2W]uR{'NxOSSyoƒ%K^xRImO:蠃j]<7ŝxL +y@qBy8bʟPie #tK~ &iaES :CqhAAAW\qŝwnooU 9?;::Co{uׅϟ}D:-z'wm' @ܲ _MΰȹV^ $` [[-NS^jUqħzц(@uù}-{N e[}^;l(zD2CkeC;rڮ󝉯ΐeU@KZю Y6j4h02 -:7h-O:j#4aЅPlZݣXORš*+D&:,E64g."usHO9+RBh?̶%H0fhq}]HCAAA!õ^{-z2L ~_'xb@ɓ{f"Yng>p_:1 +(@]*<}rV ;qLj3 +^*vK&ZRnGYɋ8KXZbo:#gUEmkƒUaF6g=ڦZ 0,kZkt'Em5c,nNNZ m|+4RF HjLaf ]̲%l-.p@EmAA2򗿼E>?5} _?ƍ_W<O:ض A9+D ׿ScA?je?rL\vSrd{v rEXUюW-_P!aL3+@kMh3YtCw&J!O+&z%Af@Vx-5 + VYV=ʎ-'f.T㠎x% Φ|X7jrbJ +]_,eN>v DAAA]իWO>=~uEah|K/4hYҥKEBy䑰Yl2a?(@~<9yYH*Ҫ&Ef+߰)VFk3x*uvi}~&y6ZKT,@ +Ue7Lv&mvh??3JVMM(kKʻn -p埥 f T#)[60/lr@QN(?hOan9 7z o(#(@#  +sg?쳁ѣG|_gwܵ^[|8p秜rJ=#rP9 X%rcD_˞ @ A +\e([J]N1Uီ @A/)h1W <>7bTYL p0lSР#+jڬ7ba~FsŁ*`/Ws~!!d~| kyhq e$ f-R=hM~Ĺ\tet%b%O=B.okDAAA]+V|uY?=CuV :@㩧ӟΑ3(@*0mcrWZ.M0WYJÔ +M?L^N5JMR&ouYU6T,@f-. aSeh/u4OcNSg7{;M;Jۅ;LD9$7e WD#m`f-@LsaJ[M '*)Uzs4   6۶m;|@eY>Ib-U>:'o~󩧞 +4s1sέs +Ѓ<uw?'- Dœj@&BEN^[$ )=~L3-56 +hyT1(,i_0y@0y䝕_҉l;\ +  r_sy»*q1Jj:jo]|;< o>S-;;ySPzZ:CUexiL;U"a:MM֔zC$f.Յ8kjJ fAee +Č4sqϾfJƥUZ}Az@vg#Ax!+^|QאW1~)tuokfq@ `Hn5ؔB^[WSP =6؋4   o}Μ9۷o{T*??}k[oD3@aÖ,YRȃwP]Y<$vw@+@3ʓUD8Jsj&볠,G]`is/QqHoȎjwj i._- mK̍h#lFxK|jY:bХ^tdeKT= -@eZw(_X<[?J7pBPRRM&hAAAv :::|?r#øqǗG袋?>]s5F۶/_^ȃ<; QOA<$um³"_ksP50-) ' @.V|-Of-#<.^~73: +*1Yvp 6' +x@H?i"8 <ݲN{_r   NûᄏlSʞoU_{_}Q)=^z饦 < Aϥ:GrVH?qeYBn~k,r\&&hѫ)-;A. LkC +uz{WՓA +:s~flp6,fXFȲ1#hη~ BG-ke}$s!~@h&m58 %̦xc* E~"*8~/@3ϟ(VAAAA?>sǟviW^ywhL&˖-nQ<w^{ptsLAfq៴| s5yR5`͎9P #Xv-9G$4[Z(Φ'z1"% +͏0Y^Ml!t1d_SGA 8[gh v'VUBRoH/[p+ {͗Rha}% +  z뭥; /u]w]~F˲JY/r& +e˖ONeD4׽U+**KwN[Y'q^ec-A(M7su'!|æ<)'Z:Zc`G* ՙz'Q5|Dxt851jZO@IT   .W\qw3… #M͛5kV}ʕwn,kE7(@ǃgrZ>))ˉ9jrA.#is3 RL?s L#QJΊDݵLymAeYgk˰N˳YyZm6uA-! Puq}Gꠞ..“   H׬7.&Fi X#W5ÙU/=˛7 8́i8 ]P :;3v3L(@#  KOnݺG_җc&{ʓʲ8Ƃ ÎIl[#)_(}uV#KJ ׷hAAAx}Pm˖-c,U _Bx[n#s2׿?u4̏ @ghD$|rd5B`"[$aV㏉!Dۉa5uj zʞ@y Shk)4Q +QQ1ӕO $FĶiUQ +ot3-#&TQFAA }p?9|3usܹsy04X%r#Z9sтMf‚MHt +;.(']nBP\0!no5-yI*5[U +ch^aYi\ݻ 44L/RZ;,~U$s#E\X4U.@Jh./hso)l.K<$EW,#֦$) +9aCo#LЂ̉Ullق4   ;w9s7xix`1,]z+nOZȃ]YHéJ&~)@sA|!1v؜0,ς*$ڧ8:^OR|q3ua]Mh),Ϧm:=ˊD/$hAC]iL `tMO6 kh@uX3;;Ă,WVf. ,fE۷lzjZ?6EG5|YjWn3nhAAAC}_{w\}̙mmmƆđ~:Α3gjחKզq=eXodGh5(h[6O9=OE{r̽7 5/ܼSRi*W2%bh1 4QхbqzZTq?b*r{ˏuBy9:A҂Di2kFg\XSn~-,b@v*"a@q:(fU*7%'Uu͛D!Nv +   _|q;+#G\hQ=X`9n_xqkkk=#3o޼9s̞={Ԇ쪊]Dꂥ,.gNߴa梿N`40) +)*dqɁ3]9/>7cno?Hܐgp7jMsࣧb%)j9 L>kH@BA2eGXYp@` ť N-b"{&6:JNRK:9@nR 0Z؝ngGQ2]%C bo   Ȑ駟o~zj3²e˖ɟu?'?I_n_pرck 7 18ay5Y: +?H'xs hyFlܦTM)R=atNjEn۪П]NlƦ?/vsJP]37jf@K@b&}- X_H4rba=r-j F9hZi g4u:_Q©/閚d q/Yt4nSKezche;~ʰށ#hb7tXW0Id銎{ի["ٝmO   =JO|/X`ws:pX~~5O_… 'tW_]e YO8o?avVZ*鹅I9λVy!g-7w)@ 'D{_jf/AAgq9GҥKKr>䓁ӧ_s5!r!|:Exg͚(8q3f z'p\m{ڥ[,Cr;7E@fT {v̤ \nJ[:Y=9jzD :MUEqo-ARTztXYυ}h8<+$mij0< i4lɏ!YuX0kHTP >w UMT>retf"M IQo :>lhX`|8'(@#  2T>>?K,93Gu 7P꨻+,|鶶T*U4F˲-ZԯВ9s'z]ׅRlۆ灜 4WzEhMРe7d`@zu z{X˫w]3Q"@狲)@RУͽ`[Z{Da{[l ͡_R-9L( Bŀx'shϗVϜHȣҽ]T7w2J)]1,Jn*멜A˗E>sLl0+PS`,X`0Z>B>J hkR"ؐS@}ݙ[evO({|A7=ЮWԩĿJfPzޫGA2,;耐Mv-BKeBsAXr6/i=yy x!Y>'F)z3Q.W)+ nhݳ:]lBN +刽W^&ꌦ=I?E +(@#  2dxꩧo'Mcf~駿os= 袋y@ dc&SQVԥxӦMjioo_BO:uj4m ֬m\P K=Ms) + +K.?néy1jy|mSfϤ(@7A62ԣmY_ 85azD'qr*6s)rۢMnsrh4u>45h$Io 3M$\&ѤUGnz,5|d d4G.C,u)BAA2pΏ>莎Dwޅ^X>M6w}k_wxO?+|'xƍ'O~*!+ rߴa梿 B J17U:]YzDGGsܲY<v{?|V:Mf BH%= nZq{$Do@,x%#d%mJs#h>AxI4hAAA~E[8ʇڸqgow>㕸VO?_~9a8gx_*BA!-Ȑ==MTq4#b:Z~j? }͇O&.~wcP8Pd#sw.öw 6g2NSg /w̜.LQ#{-y02˓ @%V{=xKԮd(yEPTo̶@N bOfIc^g]0+yZHo +   %8't믿ޕNd+W~ |5gϞ1cF%,]NUs,\0_YfrqNmpHP]Y .#\vBlvEy2qK,J뼗$l>h{ETt'zhܜra1jSߟ?Nذj_p#Pmo=r ˏC4zF|+?Fީ j^%:U܁9aiE/o ҕ Рk@uj? ] j|j9/3+.5<ɉDO"\V_f^i9<e;k@6W9K"YTWYWR Ж,AAAAǝwyWڛNO8iӦr!Er}W_}u?p.+u|mR'sI'[.ro&9S?O~ቄ֯_v}E~_W+C2gΜpĉoFU&-[r>:@ʳ|r:i,ݳn#,q0ZO+؃ m̋6Ch-:GhrW D]Gsn^RLO.H@aukvJ{{YZgd`Ϊ}<e@F9`F:)r + gL14D^;XKin(KL󂣦WB V9aGfs1Vw v:*9Vdɷ 8{> eSp(߱W8fv&rBe;Х,]1ÚGMцٳG^pkiFuyPFAAdr뭷VTp^uULtү}ke5}s̱~7vUKʄ Bu]z.mzm|HߴEOCAj*gMyOɅG$gܒ- +.h +K1Ӥhgz1rŠ $c4xKi*!;Jv +;\iLV/ií)@õl=˞P9vbœrMYL:7 +-hE/+%l-^8ʹR{6 +   a~}{6mgd2y饗~_s2W>s#3+3θF>spe:;VE{{SW-[,I=p7-A1@У`[|i_΁pgSsUJ}\^|h/M +;v L\c`o8^cӈm쪼o Ω|ߴ{iǁYIG0ypԆ)@Gft@u Ya%Z 9__d Y 4zPFAAdhe˖k{)m1seM4!3gmVd&L訣j4RVSΞ=6++,a 4ݺ !J.4bPA вn-@,7ZXA JJ3L#2C?&Y=]$7~@.E+.q4   RV8OF3+so}oi[C5d ~$DkI:3`%^U#@D f:M vFbq᣼@C,h8+T>k'A+;ڕ;XϙpaaM˳Y]u7Nh'G "pÁ6岃)WL=b DkZ1zjڼSrQ4p:+1PFAAA9s8&NxL4TD3+ 3 `oTKk`2TC_:ݑ4'4E,@O @e~~Qy;L PP tG9 wHc*M@q6 䐔n2*PkZ^Er]Zv&9hy<әl3*''mXdTE+eh(@#   }֬Ymmmfc%V +i<#=}SJcJ([Qe Wt{UPй+ky*lAs_,? A :9>=5YX*jʟk($JU)I+ |1W3,WDNgm_CAyl@y-e~VtOZKJYZXABC#ͬjAAAAJU&B7D/5*[:njp|衻JDC!9g>~b\Ƣh/}Fi^$R5ܨ(FKfq)֊.gpT\ +3q=(WgSod{ :5g7sCc$ Ջ|d;d?X-Tq¢7'@#vw6:9 4kcUP!|{|P#o2u[%Q   43g+B#@vwy>655h<#2g<ŝLIY}#Sw,W1u(9gJaT Umuc-g&ؠ'|Zys=4 NP9-5qvF9uJn1g\֑ڛL|svV~p!sP̟Y+MT:L-7䃤 rDYR÷4\DVA :xU +   H)e :`Mv];;;{zzmۆ纮A27UyT$B&v`lL£ͫ_yKUqA&~T,(β#}t)*u:&"8kUkZ .A۽ J8k&yk>>5S嵘hnZhQ:oD+ԲO/B(h 25g4YZ0R^zx7-p!ztDI ZzJu@AAA/*BW%@ qAD߬Z1wիR6j.88}aSB ߚ]+=˟!:! jhX\J [^$C H,k&BFn._)WuճO݆D?ӫ͐ S8֎iaZ!`*ג}OR=-rXȥOO^oPgRX+9FF~GBf,K4   ҏBZP9\`P Жe7nʔ),= r#V`M-ҝ=>oW:JmtzQJhv=t񤙧 +j)JPfnFF"ku9a\[&7je̼.D{{! Lkd|d])@kaa@&- Zږ5e}L F;C]U5H-@âQ^{L]DAAA~m֬Ya+ٳN/@-mF|3=3.AO>nKSivHQ_ՀL&ȥG5ZGm7Kv_p]A-+BWVڲ"ǺG#r`f'GHBc^ꎇe R$dvi4 +   1gΜp P]Y!yƍ(@#H)N/t;Αdy"GXD)}NglI͵,jA)jHXD fuAO0't.RCftXzRU9"a +vx:9gmѺEa4#l29f9ۃ6&5ƺT3Z5lbNەhמɞrCUֶ&4UR DGr[}!,O$bLk]")ogˇj<늹 +AAA}֬Ymmm{?o}[#F$3mܘ|qr*g۔2-}쎞T=_)l"AMtlfneKw8jTK5mUϑhVic_Zrx˚z"oiIZ>Wmz#uR´١7MwM8D^ +EZegx ³Ćn:B<@֡0f9cXO܅    0*J9K/4ҒN.$߬Zq`ӥ\/L|>'C pH%[iR u('h~r@h +r;% 4MUD7ݸ,|u +*z)ZsZ{@ƿ;J$V Αf{Y3r%}&R@t%=,goL;njvr#?`se# FEQiξmvix7<﬙pCAAAϜ93P0 @GZ 1^ +R#h¯C.$ZXDrf3ee(-v- +.:nB+ ?+oC ./.Z_ƌ#oDېY ՃirR2a",]ؙ'9b3)Np%MOb ([yzvˍFAAAZm4vOyQrG0꫊V>{x%[PUORI mMs& l:= rV+ + Ms~ܜ[3 |;2^hbt y@ ,&Մ/+5<-y-0&! _lsq$Z6ǗDo$q{t@AAA̚5k޼y}_q`% Lzp%bЦpYnX*W{chjڡ==AhB)X3l><%l=mmAϑg:KSIP fJT6Ml6\):LPK@zv r :RVh:H|9K兵]&Y[o   `LzƌgϮp$Ӟs6ƤpR{sEG*Bg|mun w _jZah3UfQ=@Ԇ_DN0WFv8cۓ$ @3W܅#TRвܸp={$7!vCoWW<8dQLYµ `B5BAϤ+tW݈>GAAAٱ %/peDv]q^8Z2;uҞ!e XɔXeePu#xuGk:CC١h9ԄR0zѠ p ~;ah5J.l`X{{%%o$kkQFAAAv,(@#Hr^/ΐfn@\9: 4H+0W/y_!]c`03RE#i>  :;z[Ή3;2h rq:X`d,pzF4lBgno}l5'ckT2]h`SCtxݪX?b}E-xf~ |5?]N}_גK^В(Ki:GִWVoEu  4ͣ|zsGːCFsf61/SpGno4&1ҰGq&]\ᡕ {Eg_MVŘt_}4Κ^V/{ t)d%+K k類.h꠵+nIQL\i^I=(; e 8lBipfH:t,:Bk 7;AaWN)cRrB˵?_l!E~1A94/6lp_ۉiV>}h&*ĥѹie?2-kZ&ZxOd9.jyo$h- aP@. M_L/ uD}F pVQT5M7)߾~;`{,V@v̗32(|<1 C}BZsMij$}IrKF_iT?f0B4y)4` 4C:'ί̩l?ᔴi].P\w33|$&[fTFۗl^ hʷ_ޫ]b`& '2 JNI@Ol6Hvf7FNa!2I%>oCB(OvS_91\$  4%̢4Ot۫OE@k.T7$>Q0 +g}mOWjD]Ӣ'&?3 +cbs ˣ3ԸyC'e]+Wr& +}qF}aS)p&mﶷ8%'kOQbDgNC@hhÞ.=G޶W1pJOx-6<;.yr:TNZIDq =#:PY櫣l\ w\-}d;A.oLRe=y9"89.pE4J+Ct-p{P&oׄao}<1C@^Hy߆~! 4aO}<|ƫiU"҈Bˎt h!*#cjIq.]yXRɸvNhg]p} ߳ pݫ2q<ֈ#cqOg@u_)f=?1szd + +{H\,ˤ~L@۲f|tQ+N2,77>tz#±@:\+%JcXD +z^2=QT{|.sM$W|4+YUsVj:גgS^|Bdt !Ep&njCh咹|J7`) >dT+-VN+{`؋v|WCm1;ͧ2,77~SbJvц?c8-w~oٙk+Omf6>S +GЖXt+`xzdfZOuDTv4>8y)\6S:]ވZiJ|I@ۋt@w&O=h- r';0?Sm$;ižzT`J-U1\C*%M!L4󒡦&t]r~qr0Ƚ +&6#'Mܠ"LU[Xqf",S2dއZ0hhgaku;.َLB[j_/U4%tS5EQ-Ϩi&r\׫a Ҭr"ZO]ؔ7㏞X@4&TЧvGݎyZФGC4Uݲ Aqtp{:i#r&7NW_[@Yt#n5&J}[⠬gSAE{Er'~sBBL^SrQ܋򱉎Ɍk_±  u X?{…Z?ywkiO]wZudNҙR8Ferpaz@Hۊ&3#J+A$aƭ 8sf~՞p?+"bs͢Ǵhw#t 8T@,+c6]@mgT\O2!tߞܠ`bhw&!I̚5׼N)'İ@  4K7_x#Ͽ(}nkq.~j{9M!m\#B~0yu&Lek%g 3NfޓH4Hſ./>hҸ{vƋX@W޵U9<$_Iݩ)/^ +2?:rbL$(aڎ\Ֆ^ظ l{ tڇe +cR:Wݭ߂mӹ^Jk3:,?s"cAFI^Zݏ@Hҳumn7*K*mq[PC?u\3`68M"H8V";9MjFU9ʍ3:#Ĵw9u б>4=cqHn+Q[];*i'&mM?坔v'Kj8/JzۗK C]^1~`̏f?U9Zq?G6<?X)¨??=K>uW+\+[CpپKTv]hﮝ,N)W>1J4IġbBKTjs&:>rÕ̍ +7Jo[@ TtLJ\pJƴ '3 g`p>)=^LF##{r sOtA9Pwݟd7nWxۤ7˞`/{4` ڸ)Nj ٖLwj?ÿkw1{׿xϯ~=2ee鳒:ۨ.m]=ƅρ9WL߾ +j!xnfs`ztk7%Nǡ"픩,:~`+ҹr ;^0̯gޝz9kc*:3dCkPɝ蠤)z]%͘ƾ{@@hh/fDqtʔwLJ!:νQ̊7p* 2,dz:nŶǫէ?aJ8/etq ;*+t+ +OӶ+a_{k 2444\ގ h- 11 ]+h@[>y_} Y%:(scb%xvqNAޗN| +£6*LP3VLS@ЕӢ0wIz&?ty2crr%|gWw|cA{¾]0kR8*c X2ҕŸ'>oQu7.ruc=KCwc!d#tSmh*TK݂~?Sj^h- KW~sU. +aogkڷ^#\%v?Js|JtsnI$7IWx60I j?L=6*+Mq)18-o1^QA1Mо{$+uׁ2,1A@ZqnB5tlQQF^z̜@Wl|alC|gb?tq) h]/Kzi77}P0yߤ)/qvN5[@K_˚ zHxo,-$ߖg u X24g&94͜M) + aJ%!7L8ď}\^`HJ(|sD3 h{l Tk@{Ȕ,5s؋! "'7pKE9;ud%)Wʟ 4gZ$lA:dqmKPzW +_|S|-T@v8WNCDO#"^Kn/da C]m+[JÙghcz\}?h;.W[3h4ց`|?K!6d2TڜkWL&B](Bɳ亹> zA:3RލtQ? qt%+";fW)/s+t&nfe>BG:MLI;<>zQw-2, ̌T<aDF1fBYwN B8v $>WAtQs諘clOb>T%͖()ysVLJھlR^seӭ%gɍnO  e X>ccOie{3|2.Hcځ/Ru3ybQ9 v!Ĕ؊,•cnvȾ~y`wC1]DF]ؼ1/ecE@zΌJƍΫhtIՆ-|2]/ '{Zml+A~^LZ^2l+zg 77Wk= +E5lAtQ4/J@O ef㐍/MЙVcm2E\&}3F&}?!+Bɸv{M ` h- @++Q7,j5w{ 5tv<?~N#d{g辙S]v6t>8r'%wO:p +qi?^h]M *@@@ +sc-G.xGbDGJSc@sg$=O^1.!c;EoX8پT%/ةNy̼=lAv8&hz)18-YA{hMn}-W?6<)/IPX$u:X UoNo\Yǻ& cZ2Mf|bơڈBkȒ. h~f([0w0k +h;lwt־>&F [ !c4m1;P9l:`^.'c)f墷EPOB7B˷[doehFFu"I,WUPLK^3 o O>8p#l~CtB:!%bAW`># JH@ӧխҰ e hď|W kXe딗q>Pkp|33OLf: kKEqJ^LN}RsB +HXI%dé}o>nCA48L.#27(c~93]T]}L $9<⾎}vwg'hCyq(vX\b\ɡ';a3CT@8@@"@{/~op& +܈`)[#ePFZ9>S";XD*rEP[$CZWԕgR4>.޷8YrJ~U9k4N@'13[Ƣ9ӺG^7FR)tA@3_qIn#wo r t_=@@@"ˏֆG>Ж_{? :FoUgA~^Q |걙Rs"[/)]9ebetsGoV褛MZ̹aMo}Lr0B,oĢK1d>2J~c%?1Îo?,*>%oVd2X 5_'h @\'YD goxX/=3J=GZ 2G)U#~4̼flmȪuD989,xㆃJ&I]9'0ص٩lF|f|ɳ6"dnNx@faDWC/p3/c;1acΊ./2"~K=^аV| u[SvG7l燀2˹?i?vã" GEC~Ɩ٫IM0‱sYWCK/eD\fU M*LRuPOaއֆk#nd뷊yyg4#ʑO Ӻ%_[Ч `iI@gN†Բ8Tm}Λ}?gOwk'YUMѩt1/wSн  4O}r6w}?-zܳ $*WQ,yߜT}v4Hލo&AIv@9)9L;ِ5xmkX}.HYTbk+%ɕX@L]Wm( /²WxOؐ#)NESbxiW24e2qߐg7X@sH@k֒>l3_Jz1ҹQJw tQTkgWN]--$ o٢{MǦb^Q2ud uv({kG+vJG hbNPmiTw7`ˋq]?-p{^~T6y2izV|m+O=k7]2ǡ͎Ǽg7?ɏ]e^@'t{%}N>m{\P!;"VqAB =ZhDY~vO.T(+"u͒+اN'ԁH@qsuw7΀fIFn9+<[Rk}H^7*=]!wzAh»gJJIp= ZW_cǑ{YhWz-Zp-(ЊjXQ d9WxGmB Gk%w3F^_iЮR|5INƙ}e˥Ctf4[oݦ&%U[Ӟ%n +~9好 +CƊfӠrDzt}g7! 4ƍ|3tXm+4'ȵ5Qm>`nvfI:wx9t*U9\bÃI@pDr6:{kT,\rDq!I/G)%[Nẉ{S Q2mxU@NGBK$Pmziw6bLyNRv~Fhrah- @\r15*^6L0l }FΟk1+>'?nNxFQt\'\/M@(j6E@B]>wvw.;7KER\)3n ҕu4,LMЩ6.9-4",, /ߑFǡ#bΡyۤ]I`^:1]RS_e7CX@@@p'? :\I Yd.)~؎P\k#~}gyfsܢ2I 2z [qBWd=YM Jeq>J$AW*V7w]&z]@ǍY-r(cײ ͷ+ђ#2um߱G^Ph; H/';ML7[۱ҭDv}4i?i@@hht/KtR8*~92\+z߰3|5( hu9. 2z FqdĪ8(9Ӆg=Ol_v7w|sV=9"g `PgnH@Ss{ ,<t 9T.|mu~+jhҵsꍒ+æ {//~߿e=8)zZôz{2rO"8HTLá>:ӅQ hɤe׿'ȵݓղ]vnf|U߶ifF|Wʼn:t|AqR%Ζ*{ 0LkV-hg=qqJޏ/|N|:<44Gi)^`δ.5.j+D렳_xamNtSRAM%NΧLc2.+f zBt凖J ^L .χ:Ԝp#b@kI}=  e 8RLL8C,p##S͸S/ Et%.yֆ& %Wht"vRm/j{eXv vUl_v芃mSQ|ig"7rb +*'Ҽԝ!Ү ![V~wҮڸciiI{Z#]˟'W7|_8s>u25ӕ8Rm_bc&HyZƞgKb}6tE7O-313t2k+tyr$Tˆr@AL)@@@pXl +=AO^t+/*jf5Gvʪde> -K3A^ p!xW.|7~ft(.]{Ms^>kbtN2$xj̗<Lr]O p਱/|^-dɣ| h ]ȜY$+SW4s59lK@SFGY99cK'9Z[/h-}uȌt8%͙ Et 9%䠭яk}iH@os%v 8 Q㩍?g>;?(*o0JSZ"Gl5dmcW\,#Q9A_{;-#2(w;\ +GA{a-g(8Q^$}9'ĨJ+OXi7nO{ 2AR}o$~녯|8!5 )9DǧV:g۩(&;BK5=b. ->`F'bw9hWԠ…n3LE@3ߊPٍ<:+tEs#Wxnw8D?﵄@@@p9x+‡Wz_/j=G 踢Y%:}NEʥ} \JtC+MiIvwVv-b8dcH@" ]9cHSGߤsPXʞШˆu|s4{~@@hh oE{?E'/? +B9yivzq.ܩ T طح3fKk\}E|վJu5c6sz>{LzeA.yensd`Fq;;*B}?S**Zɇ?߾,p1G77f; + wB6nE<^r]:rVQpn*yXvp2AZ31IlΦbgo+~~s ;afde˩w1zCd1-@ +?+o fBdz]dǴZA lΣގi2)/V+YR;,]k,]f&Ŵc3nf냲d5pPSfƃgndD 4m6yt+Z3׾8y#`}R W 8 Rl5[%O9Ŭc%MSrVK]j^1]QNYj]A;S +G}&Hz"8dHKƜSggH?6p٧]m~HmP;UL]@r\h_F{o hh,+~? +zud*>BWd]У2ID] qFh-XXa.|sx h;]to_LxY2$2cQuDMK [%q9#&7Ѩ݋YWC@hh2t/K3Cx9؟xyBD*>ŠPPm8IPKIN,v4M343N {аO*xiޛqQ!qleCN&iDkc3~ ܞ=fhTʺJ48Uo4c 4G|3Om4 ~ޡ'Wb鬍vsBzZ2]i)P"vAO׻ :gw , ur#[gwt_j h- y*|#'܈TfRM=iR</\CIR"D<9zFÄigw+_4H@Ssɸbҟ%4m,]l,O +Q!?vL|)2Kn*̋i^ٝ0'_  ѧI0| &I\`f hNz!T|5W({k-h_  w_*j5CU@W3 Ǣկxv:sr{w $V=N^g"IzN c 8|+_/O{ k-KtL|o*&t Sj'!TR~qh*ɨhjDj>r] +V=}e&Wv +s&!D?Yfiܜ0gFRQy?87Vu +uN9(d#tni"'G7@@@p\/s΄wgd왿Z^G_|. %8rfA@aJT PKrk^ fz>,SWGp >gqgh*iXD +„K$*0;R[_ Z9.|NypMakbg`zt*ooK@C@hhl}&sL><ֶ&rү~t7H8{WRx v59c^7c0 Js#gl 8WvՈ27BRlHA2rY k5i*ܯ~T.JMNn]Mtwtj_L| CO8(َ̙,y9敞m*;^w}~m}xt{99i} +ࠍX`nʋ@&/bq8O4C߼f2qTu{}pvSyՎrֶ(31 W|}t k;Frm3WA@fN{9DmP]- 2#%3+A/P@]?[8ٙsخ\CAz;sNH,Сz['v<ǝ0H@JgI4%ܨPf{ߐ1i)ZpBS?[[;Q ~02uŰY/|%$ [2lN,jN&w(z3dKi8S"5*!"%?TRQH,^]^ +)wҡ93;ԇz1ͼdu!7Rg/ӈkc  4Rׯ~N`Gd$)c9zETLcI@ KܗέlmQߗzSžtӆ*CR6U"q3ue "l{(mkuXtx~J B/A}S,F\2]f>/s#{$:ݱk6OZp)bkk/~.Rf+}rUDtet9)l^0.lalIt;m+un[@SQ3Kq#AgΠ!R  h URnB>!"'48h.$Pav…@@8@@EQ؃pC/2KY +^t"/\⣖+{W c&i h[ڰ,er*u~[Ԅp#%$_JZ@@@2KcR>Ӿg׆K|+g8՘S|ǡ[@(nBHV +HBE@W+,*mLRɆf t B0ҵKhɜӯ+Ba͍犀*G{ɀۃ( E G%τRsԩz+}y#]t"һ@3'Ԯq;eU7"L\] |+3lmx6)#sJ DDs%c"A@Ep}O~}yx髏1b+ىWS/vvq!i˱! 4A<[N:eQja<L$ 20І n/n1ԅQJXQQ ЦTϹ(<$c]OȎ:aΪ;bqZ@V\~K4[d Cp %"UCۋ /Ovp󌎑ײ] i |Ռo4h{jWC2Cijв^Ĝ.( w.21q[JO.gN@})L@@hhBXrsz+y%tg|s,";1)ݩ] Z;1~{;{ dK=M0IfnI@sfBD}Oݚ- Y+gL(/pi6@@@ܒg u\ls||ym7p TJ@ h{#ʉF'e$qݴ wZK@YG LÎT4HT4]Ɍ * &Vyrԫ?-ypqcg/^X&L9¼ZU\S=]U99n0 OUTntUkG}}xjX&ܮz8W\[¦:NM +-KqӇ\#Pzc+ j:m2andO+"3/RnDh- +[[[sK-\[_t0N%2WP&ObIJs8ѕpgLA7vH.`} 4EpEdZ6]@g<V>Dߓzq*XA({#RxR/P  hȑ*yp?Gx +萶At1gΌe>]@Dž)-X@W9b><뻛҈sv6r͹ٝᒠNL֮pXW7$ 7ǀE>bօP\OfE!y7IW{]0|8uRUx cBtH۠bg)i6. gەP<ҮjUpC+n<;H.Q{/jo;J" +}fnsLNsY1}Jm$V$7Nss+>#K&(zZ0\\RؙtPtsNO'wBR],N& $rPAzf`veEA@lSQnv)fUNg$̍, ~a?q*Fԕi*D27dq¹%  4NQm +hTdVt2 \~2}dQҫs>YvhcʓW^#?R&wSL==p̾9e:U]pO֘xfmiKOmi^  e x#C%{0qQ.y/O_-v9יִt{{x+fn}ҺZ/c+vm%WA@u2C8x:)S4K 4 ½W\.RU7u&gP #+/FzsEL$SZ]Ȝ a+jxUU;{xY8 v ~ m'WU@u~FȢ㩊IyN܏ +:EUoL!3 J-N:%.{m%5$0mg*3|읩42"y>f)25<9܉;sE:qU~~6ll<9ggF<@zE;߉~$L~6YvL1~XQa}8}iA'?y}OSA@hhU:oǧnjz8˛Jye)h4t錰+lmsN`B?}ŷ6U[z^Hέ "6!5Qt= mTl%;M>2I,S^P2Dm-\@T4u St%3;{ +@@@pﱵ5L`v]2W'/xP;)o8Tc+}ugDȋMim|u0;en .%І能cҖ.9.jf~?C4yv!ʹ2:$l,l\N$9emךּ$A6UFh +ir$ok޷澽p +CFh- =/WB̬[P>,])?ֲxL _3?]c@'vq~HL٤gzގİ! kTF0)e.Q8 +QNX< ЁS]9lwg>u|Iv~pѠ{,r%zw.'qY?q8>lg"kP@ D蹁HT1 L0Lfyk ŷ~ h84v:8E[1 ”7g2PЕ]e::a7픅.=t5/m<9JR@ +eVsQbIg;l0NE'#|&\&'nc R蔣j7'sܣ^~!L,LNynTAjYV`fmTC@XY(VtPǮRp7oӿ.}d:-Jd[mpd7^ҹ`kn)fwMތBci:kZM--00@@01邈*T(J.ͯV*fj7(Pm4  gppps>dD|`㫋gT:v ?#Isʎ(96KtrsaWτTBgfΖ/3k_B2!Jwj7( L + (y N_YpX7Eg(mܾk5L9yyv+)XГ{ᄃw|T<Ѭ R1CM:Z݀zҕnQ|%`.n^aR[) [WفJ=uJ @q}qO/W{Ri ``RTo|>2g5=޳/\ $]]:'*YZQ@}m^7Nj t,LZH7-OYCP@~Mv'IdK=>ݫIpTD7` h.L&;g_: 7W +2rI]ׂ0@@0n <\f}):NE%. I;Naz E1 d+~P )<[c,zǿ8O7z%ؒl$c9f +Y{%g8>WAcDE.3MʹL Ftmyn9ǽJu(0退`}n?"sWO vd@ +'1/'l_lv6PǞ"CklwskZ֢/DuJOe8@tUMm Oy}:tN.'< yLT,3ݡn1~U*>oH@W3^Ye?M@W;dfx@Zx*&o vMy&hƎ&#0'6YS({`rR͜7Bq+z ~$S̶>Jdxx9rKgY3T*ըl/[L>:6oP~-wݴ^^!M5xikpdX0v:p7r(aƒ2zcd4m^ +[.+5,Y{$ L0DѶ1)mYmT—NkV@[=+W@pbDCt8)Fm|4No/̔)lsGDC Qw)b haUUlIf;:g"3 4l:}dhM=kWmd0@@A( ; <-ii;"486I7+2\Ud3zM}ycf%3M}ʑhG64+"Ö 9k~`*ECЩ1g X0ڧ0;Sv9̻CM\f6z3zd/Lb »}& L0t <;u4/0;J[q$w\YF@b +/60fc6v|]юo>7a'>!Osҷi_{dE;GCe.2a>*xz$C@Yu{%6h*fڴje =?ɩ1 L0"ϓ +hγ9n˃dF$hLe +8Tlm&T~XKmftsOyK!/}K_xE/ZnAxZo'SE^zmUy~f'uyQr?`N 4 @yҲ?\f}GE@^teh)XੌdI@[(*(M;H3Yhr=բ6sҌ\x*K߶M +h?=%bm^UN0-gm¢)u&IC:L +-TA5 +>[3ږBwE铄0`tzgM?"ϼxȡ6Ү;\4kN^ +Rm +hc<۶ %[A*^T*]#pA zwH_{UZ~bv杩3W7aSq6dzA_B'H2Oޮ5ugyZz;^.z@9C kfk2[\w4&AypŚCǡ Z햨UC'M ធzRVsZ;Gִ) k¥x.bkI?3;p'Y yM19\o5(7yq*ix0;y| ǃJnK +}kf뮙mYq~#4 ,A9gr`1+j8tU1Yp*i,]LR(&FigZh_FbԊF`r\)]ctE9p&Nzl)s2Y1:"ݡw ó.>*r{v%!Lv "S5⁷-o v )ٰнbu}Kz(k kYдFV- hO:B ZS{FW/~M,"+7sf>lyz0]6lcXPLGut4ÅW6Q]t &;$џRd?I\ץ<+Pew&"&;P="7h?&+$@7/3Ѯb^.{J/P'WN $H@Ӑf*h{ԧ֞z][svq¸zM4{%p&mҳ2lY@Ϟu¤YY-rOX tNxo K| +4 PYRw@y?\f}&OL1)MkS:HjhkaCqBM.wݴPC"?X +. +F4lnr\4&C6Ёrd&L hбjVky>a:zpM'4P= Eԟ 2L 5 `g^?nrge"*znp4Kz YI/J3|?.ہKWoIsw?q7u"'?)g3KP+ +_'Gvp5r&hs$MFΰ@ʪ!j<@@]+3<Ⱦ=벢(Q L0`睄+֬_R7RQIR3c t=BHs.d-%$q&$pV^ekz3 LJZ+ DR3݊ܫE{NzuZAd8sYf#'UdH0#+'iCsdݲ̍_h9UoTXQmTKMt*} 3o f  `ӛ#.tbMxmˣk‚]JU=u~DwfVl:fCLJ9zA2f&kq,*[,+)+n*1v<3&հ"7oc^S_W(뮛mG P-^x:jO$̙"l^ءAwFg`NvZ8!lީL=il{{^V;Y۳D]&!L0` +dY$ +hx Mo& +⊖tol?BO$ gG:qVaE-m5‰}q-, ?zb/!6QՆڇ1]YvfU5Mk;uE<дd'V@B\d_ +=>+3A.hx&h0%h& eMxmYh9U(\abe[(BZ&2U= E9L$q*昃g5|K3?[VI@*Ys1gkn m3 Ͳd54/&"?v<9whEx>{KY+?pK ^\߻@@X d""ϠƬ۟}AakpHヹ['E".bfT*\&]) 5O];#y-/~.R}*a{Y5,ʦv$HǪ97 V@4w]~oRu3KOܐK3RBXeO93υ0@@  9fC+6>}F@y͐^I.M(p,*9B^PN`3Zsjsc5{hllPQJT@g+feXafߜfN#x\{FT#z4u^Y}{ebdE hh%!nO:>?%? B%ZTء1SS1tTI7^7th*{ݦf'6&:0J ve륹z[/[vp k4\n\| `R Ɵ#<+0XS(p +#nh=JAj射A1=ݲ~\H/jP\:G@z횳d)չ9M +Xؙt3Ŵ]ܡP/7-H7i'] + `][vmf('3r%]+(B&h0n ƙ5oY:"2acc9YAEllkՒUv~[]+6ekTH@krsƹfˈ5߶yݸGdr>v&W?d73?W3]0@@q@HJ$q]n]PY68h*O:(tt́ԁ]/wk64S,r_nTK߾Ǣ=,ttmZ7;qDҠ%'hwsC/LVxICqRQ胤RYs~$0su* DsGo|(Q] d4 +ezS` h%X䙶5$[;rOMU:'w+vm5Zd}G\dYJ| +E2 \}Em=+ٳ~}Y8G1nW_TC#ݬw^*84 Ssy/^z#C3ϙr\zҵQp *TL:&ܼ |؊6t_(V[F+)nҗUds[5Zcn؞̚Х uD}4io=%c7D2HY/%u;[A]ݧwÔor-tO/TtmC@` Asyq>7sr:?_Ɇڑmψ +h\ X NlJgnf!1ìC2jM#bbnm|_ EA"V{h ^>ѱC8 +RTsvDM9*g,Tлe4VܬC ` :6d_hxdg_L*"]ZB lmY`lQl +yۺB> E\J=Je~֓.XSsr[cX\nC}]4 %uo93gm :06.x5.}629Y$"`POݚPQTkt350 kYh 婃QJ_i8,=tE{jf߷CzԳT Ӹphl4Ems^hxfZJ\͕![W'Xȳ3\@^3%eM@~&C@` Ak Jzo; h9:6 +YB4l#ҴƎ1lrwIA?'$鞰w̴ޔ5C}n hK':cBm3{hs2Y#FMMms6NL +{THyGf;4dbr"@GvY픳'Sl +ZLp[9dz*p#&YaǨN)Pr`n#PA9U] }`e3ٙ7ZEL3>888O + B\.7aܹtМ9sdVZvڧzJyd2=spn6>1Ɂ# 1ϳIN}_~<ȹ,kZ@D2v8~~@4h]uM>瞹gPLPsY"onQ 娀KUz_:Ql4pKkM{J8+abSCh;7znd!ӄ^z鷿wώ?|o|d}ѫ[n) v{o:;3@L{W OfGDKè`3-xgv_Y\MN \vY?Œv]b xLx±Jmw3ڑ-}[ҷUƫٴzm~[_гs[ Ӝgyʕ+[x|Ygr!֞JsS_*(0 !_"3;˹ }h.&g綼6I4`zR(.+}{n__^dAsw}/4DdPi[kRwQ̌2N +D*aҫtrW_wL'69.횤s{rA@z^Ir<*%UNEcP_p`)mT3qtsӨ*+w t= ]3̟Ԝd޼yK.]pakOଳκ[9us1d* X~DTdDMQRV<!ThDAzsCjW@CJY{Y Wfa@k +o6x9fau]S|Ӥ!S;\l;hfz *cg9!k}<(+s>Q3Ϊ)WZdhO'q>s/^|wv4.䒣:#*@@4y<1:~7߷PRfIӥHnk q(ˠԭ ZS<|sc|d֬nذ+^,eo|5\#DSO;M{9w#/˒%K'Λ7oyfB@TPYRw@LKN}_~Xs GY26z' XGnZrS2 DM@ +U*" +#<25}I'}[drʕ_nݚO}+_J30 IA3sֿk'8) ܰSw??,$}w܁QM $vmk9Rq3Pu^sGݜ0?B~S45ot9>LV@k[ >xw{`` Ow駟|䦮{ v%?N?餓?fN;䓓qoy=h S "hoe:[?^`FUÃ@ 2ROGI/ȳ#M:^QM $>t{6*,\w<TQ$mt\f_2$ǡs@%~IЯg7ɋJ=m.0+o%va?F{r~On:3/^6mz׻USi5\8fxSN9%㎻袋<Ȕz3CnI=SXTN kΖK%YQ Ѡ>{TS!PЁqh'oʁM$&>7$&BMn(y8x0/*yŎorH@wQdŨw&(4~ۍt 4`q?쳱]]]~9sZ8/xq%.Xw]Ǐ~nii&ǹ;_׎PSMy# v*RQhs=Q>}[MT_YiZ;Z0*Յ-L Ԝ#\.P>=$J*fP@F4zcMWE9+R~{;R0ts"( !t- >KGydrŋ<̖{gM[.\XYRw7n?/ўC\>ÓG?/|aGr@@Oy|=ЎUg4?Ђ/U&+J0UY5F"SٚeaZWdq К{ߟ{۩D3ΓJ eYG{ҡ<`>PO@oP4.{F+vm%3`h;c-^%\rQG{ֲeN=kh4,Yr饗VΛ7﮻jhS igys< +Iő]|=CFseh0rqYasLD8jϗêmT[%k6oẊO9h?~+"ߟ{=/e/̘3 6m"l4it i75]ڡ)<ԻvD&|J;a? 4`/n{ov+|ӛޔl8S{Wk6z]_tAs=uA9?_,L@SZ6jM )yQ)"]M ̪*@T^dnfAԯVk5Z7rMb!l-%P–TЦh :+aELLCGs +f a<˃rcT[+ 1g`hᨣ[|{^G>#֯_[xO|i{ɉmL "J%{瓸KEyVLfڟk&miB[1Z|I7Vwi c^ +hٱ@ĀiZsﻗtcګ}=@b9$UxB6 ):.K&m>LI役LS'))uYg<'?/A??O_[y^}-sJ=@Ya=ƪڴ?ZӲ::0xnǣd\'Cv`d2WUrÌ ]D;)?2ށ$)߰ύu4Wj9U@S3$chV.K̈́r(3$7G\ bxo~s۶m{' {l?}n[8ΪU2Qbzɰ>^N~ Ssy1Jb$msA[S>9bSˍчgcEi^C֤.U2KB6zw6 !wܡobk ,ftrS8S鳽odui-`7/>>gJZ +jqT5^LUSO=`9sy8RVxwSO-?wiKGydrҥKwsId"  RYrt_cʆmԳE x$~j !En8;<~u_= CUfC + sV7R4r4 +S;cZ'1Bnn7r|4t=r*3"* ^gL:˻.S[K˔zSNVIhNN>>|3˗/|37?餓9$zr :Α]aH0<9G!OAU3W AB@oo_7'i{ |ÑCӀx5r!.χԷыC"t;^ub~Ead,Q#+s<he] A桡xcqЇy gƎ#=-FJV7I@2M& @Vf?*ȳ4 ASSGli]7hosu)X GF26)OBMzKx3 ~vQLËȣ夡LV@@vz^:q~;`A^x|s뮻b+,Y#Of ' <0֜/hYX-娀e= TvXLϵMFG6&i8;=Xn^=k)B)8fN2YHd;˃zоr~f/?j+"rS5o k>o_br[I}J.#h|>￿eȳ " @,߰}#OBses4!ѕ We d7z@V*fO6$P?6۬*x N4ApIw= h~syaN~y蜕$tg6}rz37OR$7F,waZ*!M[9Ș3xڵM jWXOO?=6OUW][9cƌ~#Of ' +DgV>lbVL&-ȹ29pm"R aZ?WRk*8"D}{|ڿ.UjҾcZߤNo4Oj5&-ef"DIy1\J\*}FkZ1tn86>xmPAu3風V  Yyk-[&Dx[o3L{W?O.Juz6<G +kmN \=BtM=ɛ,ֈaƢ[%ge;[QN7dk Ae&"ƟY}-{(gKeưK6g+f*=\ܿ}7S0 NF4~SOկ~=n򗿜\?!;էIs9'g'ħ"L8|BiDM +_LhX UЁ_:aYPsXӠzbm5GcmLv6 Y71P%LlzʆtsizELE,IW8m۟cLl* xFM@-+ПJZO5 gr_ok%?sퟘ~/}KOJzILs }H@v" Xx=ܓu=կ~7q_}ձ#5ͬ_qdw*I2ٶQ@S :m~zP/v~&l;7L9FQ‘wʯsS>1aSP,/^|}n}k^s5n + yy`Ϳ_S(QMƟǟd'?{EoՑ%$},.+sܧrO1'fi}Vھ~@9nKX!G"ϡs\ٷVpI3дg + vi=Xٳg_q{GGKVj$z''ЭLQ\WSC-ğ +Y-K{-љT[nkmH^VȆ6P2 +]^NxYFh樘&3a]}VYjjêh}>7=VW]u7Jq~N27/~1j&Awz;OdTYB1:sJ0?ݝ:&\:y?{N3U@s2"ty@z&vJ7z˶й(3]³]ϴ` ;SDZ?3!9l,F9ƞ}k2F@@-+V83R_~9^wusNrs=7SLp˿KrO?8͎r@@My# TadI<ӿ:1٩c~U\NF&1 +h*=NQp}u7HIh3 h룣bBPV-O꙲}Džo=4g)A@v"ϯu}>kV+#n3<3'r-0ʘƫ'-@i>7=`ҿ|x4(Ua^(<<~lN@k.z{AF&tv9!r R9L뭀N"j&]Xpf+~P1oك2վvhNA7z;r!]vY˕w}i\w̟D|^y啱===>hG@@'14Ofp7_-c\Mոբ3X$\[SA1M`Fُ&G> ;z2xЎ@L2-Ph74jʝ +h-蚀Vf`KzFvHGB@7~C=To>.j'?\__x;Z>,c+w믿#Of -<{_W0L^ h +QOߟ۲k~sj^0MxN?[?餓:Zp@RunxqRZp? aYJ\\MDüb=C&Gos[fU4_0>z}}}?=NܢE|ʎhT}SNiȓS@+=g1_|=O0I!‰yT͇yL $l,ҼAfԱsoho.N8X)**zhh1'țS9לWК%z3Cs60 +o:K|ů|+ob+/غu'?}׻Α'9;syq>7z" O@"(%J?WEg'X@3P|wP@ #CXhOH}JT—NX"(^Nxɣ4t qLL,jyڞW Ӑ'_|qoy[,Y2kV[JrW{3gμ9w}i%?C}}}1ׯ}gK4f'DѶCWY(SGFC> >hPɰaÑv`=ThՓQ:޿A̹&>}*A3Q&&LJUsE%-M1оr]n^,8 ?o[mws{^M=gh.~Poqw8Ψȣ>я~4~ʕsi3we˖|fFC9D߮yk24"Tst>Ag \_E^3T$*L·2Τ3 ebyMtgEs=*2^`$+Tz9}Yp4`w^/>3襥tPߏ9昖OzʕwE]1G;shy޼y'pGƀA@Sj&+Yg(M KE,Xhƙ%|tT@ǚ:jo9g #;:%S7A@$7|z[;~cz/;c+>} )o~!6>5~8;i&G=u,Yrᇏ9\uU7b+>Z8^կ~5q -ZFWΛ738uL3y:{P܈:j.*ҹzhIفߍ){2|WМY/ 0C͓:) Lr nh[=:}.BJOo^|LLЩ@@6m:ce]v衇ilݺo}k :o~ck'xSO=[yG+j.Y$~ܢ@@tƑ|x`2zlEZiUo^{:Q~K/Ժ`b&NE=88X +>|>({ [m:]&wLԌ3f*و>kNwŶn6+׬OPlxGH +h*` MVz+i>x=! +3cKcl-&B+h00غu{͛7'7wq]tG><<'?C%7]x|8z.dǘFFAsPl]drV@ьe[cϣмC]ƴCr`ӱ+LIje}ܨįbh`{q+n):  o9 D' KMTG=] SK.?qrܹsoݸyVZ8uS3P(q+WLnw}bKԛL8FQ)!}ߧz;ߏ3ys8—ҩFnvPNhj[`"fs ͟y|s۱ȡ걦P_җVNɾ9s~:Ro2!rt6 +=tg^vFC(x`R9*NF@+^ܩ Xn>~CNk z;/'QIQHoL@S/GtS4Շ5mtSvp L?.b+#:hfF@ˠNKķcбHr hVS05 /p<_I](;kצnЇ>taod_S_y|7MjO-y(DѶhtI%N9w`UD Ra4g2-3-Sc9V7&Gh Jc/at0Ⱦ2 AbQB9ƟYyJw㒉ۻ`I眺d>G4S_Q{TT~9lt=g#:y"-H#͒@m4Ne;:Z=A+;W1tu?|P/x!q/?yW^?FҌ,.O%4 mЁO:BVܜuو]gw5z{1s} =_=^{ZJlL"BecV6b^>Gfh]W tjtic(ϚT:;>zN~&?ooL +7O~knm|Ќ<(ѓ˟>9_Gqs??/ށ&X/xzbω_y[_Z +*rc[|N=fU#nZΝ +Ϳ|f"B֒϶qpxD [%yΝt(k>Q#wYhSM@?=o~~闶R$3~[xe²hF#?=[ +wj.~k_c[ bPFn1Xl)溮@:jaBDOOfbu )/vyK2?ܹ=V2@>AO@/΄o{O_b{u~(Μ9s}e7ʄꂽFKKK<mCXް0㷗/7ns;$ǟγ?ի^98خF("%t]WVgD&dQ_/ ;g-vEDd<c^Y?`l톖A6pw!,n~ipk`2hh8{o~gΜl6WTڛn|{w]e?pzb4#-_>1Haq9?߱!艵?{~G>쥯fA7pFPRoxJ蹰D,4|U?7rdtdBl9kۈtiF4[/M4p#7mO8SM@ka\7!4`Μ9swtLQ }G}n ;3_,)g|[{lc/eMп]׌Ѷg>gƶ>-LC7uhL:p+{ӧ^,): 0 +yW}#~nK_گ,gϡH,N^&<1d7'0(w\>??_s" J!te?elWlqƇˍ (>oS&`&@@fl:U,j b.L`]W~ &w +}W$^[kf;{9YYjb):nGA 3~[tL:+Wk~g>mnqٗ>}zQX&-] N6>l}?9|{ 7}VьC;놠?O·5O 3fSyÏ?k6q\uM瓍+A94`,Μ9s=8q"ʄ +($~O!y;ǿgB?ma ?ZjcA߰zꘟo ķv5@5񴈍:4*6&@XYvi* ~[TmFT-e~A"E3Bzxt5_xV۰.\H0FB@s,VJ]}7TN(]'[O2:VRƿg%>Ɛ CI9BPƾczYМzVv#njUq|'t3idkzհE;q;swѹ2a6 +u9\ka8??;7|vEBab[ WxwO~O\l \ "dCVOn-BXܟ tq,loH{_{fcٜ-J(t@Ʈʄ{ᆴtOi~4]ȣ'_xq?~ηmw{S$Q"0Zfn>%\X+hvc&],xmI6 B2EM^Q0iF!~u^#ωY'پp43/}ԋ5>ooGo9uZ+8PFd2U[YGHh#Mе>=7x"tDF3Ї~7Q?򼴴I `8vnȣ5۲B5-wZ!:?+N]xW626RV_[1'f?$|ҹ+~;%7&3j߫s4@rĉ{0 +9r~:/..&?w",o~;n!lVpVvg1[)iFlc2 smL]xO|[k U"~e,<臋 ;gT2?&xC}s|vpZ.\r~ˮ#Ï<~R ]:t)Iq0Zt&vtl:w^8oۨ( 7= +mêRxҥVR sd744w_!&0\ZZ:\@ `oն]"NV:\(t=kDگ+oI}u|-~'0q\XW;'΅:ڨ/F>}I&LʄЇ`qq1 G@>g_nJtUʱlbLG6e6sDpPE>n+z!cHy aMn={>6MkZq* |tM|@P]ӹ@Jv=|_Gm`!|d>c\9w:OslvCnjqO3}Bkk6x6x5fs63^l[hP"V{1l unY;O4`Z@@CdaM鰝mtnM. @Z;l;9 6 >B_α+I?B }:mz}!C\Ն:fafuq &L h@gje:mhY! ]XiʯWp]v c9=hI]3؆@']kco/~YzۢpIZb+3W]?w4h@R] hs^)N@.Ft_϶cŵ6Fsa}|ŏ?0Øj\V"mܶRĶu*UU|iYfsqXBK#|#yON#2jJˠskvͦ3Љ/~C6odVدh.tF5*Xl_rs;|׹N"V^s M .8:'VLtcOxsK nǢVܟil*@G6Ώ?_VBbgAح@24 5.h톻 %#@^*>x'ί=M^fY@8 ?gG_Y*ɥ=h?oOggC4lw>ﻗ +V}Fʈ9@onn>ǶY|\8vh0jmsn=O3Kɏvh$4dWV +N|[+}Oy.h؏E:6"tU5gUIg`c :ԸgˎKǪh%fӁ쥋6[+}.=34dPPOߘ^t3^H~=W?EPse^ e4uygv.80tauCĮ@؜k )ݘs=fkB (4~s&ymw޸ +1g@w-LؘiΚ7"@ۅ}s`!GKUd<1[,.<˝c*as~ h@ϟ?^t|}O gѵ U ٸI|d;:lVEU=*lsѹreP " +oDk^t0pXH0Oɨж!ܨp̶&tM;7Tdh8KCw~@'{ GZŵR # ;0}S)㫖i54l#'[̽M$-nw=db3@Kk6K-V/lTt+njlqrEFٺ~0ƈ@|M{-h2#kUjUi+8Z2nC +r 5ˣͣ?L{ 8>Y΍NW|@ h@ӱG=9h{~Ѯ  J6|ڛ7LٯC&:6emt[p{PNu9!Kh{=FT3_v Z,@ x[8bްX\:| m´Ёzeb-Ln$~>o҅bn}b# #^?4H KK֜-g7S#@9FirZ@6鳌y[k#E`f򾹋: LhŶp{˾LѱJh8mPБ[{im WLJ9o1+Hk!_7wWtmae9!Spag. go@ o |#֡ q|j"5\sq-N+钏r@pHm;t+}μ7{+6F(@yLz&}E8tA7fLsv\[[ +7DL (4l{ p~kaqfלNYSҥA ]o,qU5q"|ۆvB;mTCs&mm:54l-Ck=|^p}[+A:-],vA±,Xb݈+ x|yC;-U}Z¸9}_ @E }vxM?-?sG6wxg/͊FxAmSXK,Ӑ&:8o/ ozr{ ʆ:Ǩ:Y~k],;JƣZ򨱶}ρ mFnځ¥Js\Tj&@@_ݗ"ܑQ%AK/?xaoc7֥j#:SZ)o=?gCg'8Ե6\V|;Ɵsgf#A#54[YYIj"ۃqF@b&.ҝ k_hkJ.X=k=֌>OUu}&٣J}zsbf~un~P>hĨ"~yee%L=:1FKˑ˹F76uEVKǽvбr:JttгK%#A,_~0٫&j쯃w|y[F2Qկjeum']?FB~2`֭8Zᄭ*loyοLnh"3ܾ4t0]x~+#ya&5-mQ&,/j̄='ϑCe)s:*[u0Ϊ;3l>/]3Q=h8greXkG /\# -ɏ>O(EϽNpii){!'г?5l0|հ:Z(}j| Z +횕':YsaB{#L h0C{`ُy + UuO~96"#@+u sa>z~AkZ[2H+z>h/&gOx^ # z?2-y3^8zryga`Dgmg7P,Tӽ9 3nZ)DrK旍 eeEE99꧞ оC6ZO/)7lҖg8Køs_iA ۲!]:O|ӧ^"¥-Yq4N*,w6&Ț7[5D`sÿ̎6JmI>x\1~:kpBg?=@,_?{ymWoyuv|rl&[uN.A:-L|\[E6ohlȶkwf.U /f kZc{ɟ糳ϣعKݎa`,p>.$Bvi!c"0ЁkۈM2l2:h#Yu0 ͕6wGF;E, g/@JF X/>h-@tWMa$G <]he9@' +S +)ҝw7g4Z/ J1Z4waF7"F%I@H,_io{cEE a.--pO\oʗ;=Op{MIՐjRh_m|K !؋Ǖ`cnsFFR+;l5k@JF {Հ#ωdcOEmtEfPX~-RY<*;sm͙>3Zh1Wo^%AFԶs+G:ç2:K6TdMgTX՗ohf2`|v#Ky%n9C (4~9lt=ab#{] ~ӭYȨ167{:|~YG&x;4l j|D~OfsG=}@ۥIXrE!f.K@5#ϝf: A Q*AFӗv"V25Uo 4dMs[rby6D:"q*]; eTcf.wZ q/<i%nH}4l{<'acO?){V4B͸Y$/2qeח)Ud|\ vY js㻯6w֡˽K@JF ®y.x_{0 i"RHOs'R#|mRɆ[P+;0.v*H (4LI>v=Ym"*ꈛ}^ZuHO1B +19AtFfU;W_4d0vs/?l@ffqs'ք('kնN$mh_Ủ"Z_sP2h6Z0 }$jHϭy4knЭiaec@: iɾl{mѮC8~ٸ0߿nK6'Ā#S j|[6w6* ͠"ڲhU|kb6+D.}7Wod, %#EQF \}e7Lsg@;-Va}OM~?ڃ^vKf5d8+} g.p G@JG e#ωd z-_>ְ%6V#i *ۭ IɆ.r7+:}m,(b7ڬz~l9h>nՈP2h=<67 ZʦTi#IR讇ڦ'@gBɃ tM JKϫ4&&6\p׉| B  RƁ M |d;{)$]Xoo5>[JF\ШO5qZ]2~sr'!&9\pg^ +< +ֲgcϝЅ:o8l7Υt,t{AG@ ڸ-7sSƧs¯.'G xQ(C4F(X-X+sdøn9ܭymQ4 EGsɏQo.*{I (4#ϝ[94w:0;V6F{.qBge`C-Xa~ @LY +Ѕz[ӅFkeeeg<;;;ɧk[mlQM@ UXZ+%#?ܵ9~.$ήU䇦{ ;F`mQF]ätOP 6ݷyK3dvh@`$yDZ`#]&w +۱[PU3~YV/zY js6ND)|-jًR S1Xղ? ;a苞'T/n6|TFh[-lm+-бVYGGJЁ|C:KV?:L|*vh@`gyށ#=sUFm"l*;t[:s6gR랳!h?Ogۘ ;gtЪ.4rd!ah@`(EϽN`乗'O}.mn+†S̭6;YGGy;gsb}.hVӮg`z| Do; W`5h4!-#ωdc϶[=|韌r +mt~Z+_,\JmH޶~zg~[1짞CW4."amʆ mcTt#(K3V6g}Z+٪~v&;DQdQxh#l|@~y`´5rk:Vh4!^y_zrT +~tY&}*+s|gtɻVmA,Oml2vnt- u0"U]':1<&6~L@.>eZ+W?kˣs;wV!Dj;{&K y`fEɦhO (4d<'ꂌ<-_W^ŏ?-$uJߨ-jM~ٟBM (4a"lRךJFC>w-hNhFޮhw ӊ}Xeh@>1\ϾtDֿRw_H{v;u&P'7_|jCB}-44@x-ϵZ $ع#焨[[Z9[V'GhLzI5ڎkh@N0<%z&--s 4]1pk<<:!ϕKh@(EϽNpiiX^]a[ȍ?(n`6:K6*rcf7twP>_q1g'^5s"٘\^w9+^T Wag_\Ca#F+QzuM]|Z}l@JF `d䙶~s]f;SΏ?OCWZt ƌh4|Vv#SGFy}haqhDJg#jg㇠RW2ߓ/2\P2h{ .Gy/ojd{pڑ>۳>L\"[!kAEnU S.uGNnNCgӖ2'/M 6q2E&} Z]}Ud^Pnt%#1u RwsI"NB7 +#DnK>weC Lh_]sbii)V'v-cع+ XnV +ʍᮞ\q~[ʅP2h#{L?}u܂zqF@.5vWdŻmR吷LZ / +7hzM %#0VVVjN?|fgg'TGN?_@@ɇu=orAgܘ͗"(2NHӒyg?/aP*hӉ罭K`D57 j+ٽft(d~Ҹ=}vs"+H3kk^z> [t#4\ME aI>F3/}eJs}-*t۾ 's+ + 㚎^։–O?WmtYGۇԡk.ޑP.hSbg[=)Jb Nƶ1nh.}9;gж+tбqnM@6Bwйlp{A^Zs~_; |ݳr _wm{%80򌾎[=) +nHح(9,\ cc;8운e9 ] s[omD:Sz(g˄t9t$f#4~[Ny@JF `ZtgH/k;8 MO\a~ :@gCоcUڌ/8'][5ø|8J (4`۵|~oΘʁKsxk͋$`T mo/F\IŮOCsh@4!%j쏂NaI>v|ry|wYfĦUl[Pgwzʎ:rQM:wao;'h@ #O?{y{nBe::+GA^Zdqs#L9hE/zu#g^:OvR9C0b}Ƀ߇[C (4-#ωdcφ]3/}m+DžjM"a0W'쿾-N$@_m`L]= Fcz*2ZV+@腑g~.7ibZ إ 4NuA!:yr-3BHҨX|@4g?~vuz: Z\̭^ws>4\JߑYgO׏O9Kc + ]n."U] +2w`>W>P2hgLcgWN6bۋ1jadhx!ثyN$|0C?~nm G>}j@F̬eN_U ڏ`ߋ@JF =<Ӷq3ɏ,_0-6:VYdJuwgD;xo~@JF ~9lt=gL]x1-pes>6m† ++qh2} !X`ڱGz1_|Q;'giZuOFZF/:p#VƏ_L _n:r@Wߑ_]gL+(~y +trSaҙhI+z:4;l?th@݈g17zۮO~3КhSAuuƮﲆ|8B-?@3 +endstream endobj 511 0 obj <>/Filter /FlateDecode /Height 469 /Subtype /Image /Width 1920 /Length 135973 >> +stream +x{%Uy~޺%Yf,llL@Xqlkf!@a 1,g &݉02mlP am~կRwUWf>Vm|BqoV_>QZkAAA}cE o; 0/_|{쳟l)/Dsj7MzLx#G>OK_*ZگD;>O=C{G5dff-}?<ϯ\ovӟ_) H/<yG~8?CΕx t }ba m|@]me_!=@4ޕ옉m̩ 4WfL?us$, 9'k̟ڪґhN ootlrfLx^ +jZuLv/[#m2Q9b:!0'y~ќ%ӎ73®qʅnefbicܥZb״3ӳlڙYNFϜrOxϯ#s0c[(wL+]ݲpësx b=^DCWK}@O7zQV%ZAA[~_ƙhzqS ĉׯ_/V 9ŽwwޱO~{}//~hp&bRyQĿzXiɢ?C;zІAq\N4{7J@7et v/K'ܚSh\v9[?oP {*!@Ll`ښZCa6K 6);*4C_bQ_r= +kV|ND{LOz| }y+S4~hg =(~@5#'Y8 9Em4f{wւ8qmZ j|6|qj6Y>`S!>E   *OzVK}ggG:葼xGpWz04̨z͓<݌mLţwy^Dᅊ5HBڠ&%q䌭Ysr{ly_y YT<>u'g51gUH9xߠ<4 OMю9gEX$u^mFLM뱯xOWRO"AAA?~$Rc:]z.sĉ__8{vC.=CGw_ +wzg㣏z;ɽ^^ţwixI1c.\1/@iDMWȃ2 zɢh%] ߡwu7 iC:J E14Q72~t= 7f9*ys)CWFc%5.t(6.;L;j`3О +sjiG`a)q|z4J ?_xW*/{'U +h ]w`1/^aݝts0FP@-* +sA64Oh; hvӢCH:<٣2-\dbyAtbwZ.UOTۂ'RT&)j񆪏]l慤W8ۙ>j'!Z\fn`30g Ҥ'~01)[S=z;`6j4E   /yG}//8:tGG򕯜`Μ9я~S8/O4(UX[[>`.S=qi"n Og>˧pKmDž'V1Gze5D',BfK5I< D/-p(4#KC4h,4BD3j_4ԞbW @ I\s6g n xbevYh@CuWUs@s~kR${DWMJ7`<,{zR4ݟ\x6U`3]2\ΕcFuC5c$zЂ   hH|SNǶ/\w8?{Q +hJ +RAM ttSS7:f1a%]nYT:0d̀<MT@4WA̸E6<RNYfép +D{5_UZ砬+-KLҩ  Аgo63@6ZW??1 *볖xy&M&{6$-   ݗB懲k;20\<7GOme.W@w *׆3ܑtE]bt \./3sl٦8N/Af)3CX-jIunA4XIZfиPr3 hZNyj4_jhNipaw&p5;c ;ux6 /V"y^)0h1gφ=MNLoplvz<\I+`L(jYd73w9}S   0y䑬{}ё B@GQ0v_<-sLn  !vN3PB6h:~AHa7O4CqWZPt26ӄzHeƨ:V@VJa"Y6ޝ[l KQ; h.)78 i/yOB$8<:Id4ީ1#=%c7rorےo_@oCp9K7W͆?ivHg49A E<“;Clq-û ;uj/@,ZAAA kkk<dd΄ܤ)]Zޯw-a\?ħhWbc4y:yyY2JÉ@N\7?*cd +,h"Qj!k|nIXe?5FЎ' FH#20,i9T(7rH@{ pwnzm`/޼KqEg 'M%EQBhYto4_4>ɵ< g-}RX q:oiO:率&hW$w&rFzP\R͋jѬ hAAAaLQ +=m+wYY\{#-vn  .K\LKQ>SFJ Skv ԃ &)/cи!"$ 8 `xe&0Oy}|eEUz\'^W9at|g$܁![\29i6FB{f +mJI>|`;OF'N@JgIWpx8-AAAf>lg¢R] +3jA3&ZHn (mp-64 '`'naXLsݴþ9|X #Sx`3ɵ`q5aHyo| U)oeȱbpU+[Pf }.%'g[O ͚ӷ'6>1\+^)tR/]2˵v#k'ޢ,}/fJc`S0D3Em{BAB܅p5=${<*xA5e'%i25.O|~ +h܎y|Ӣ 7CE@   {ŘГ +(xƆ'kA_=qsO.Xj3of ++KyisXn:(0we}T3 1kK5ٯÑ^q6cmDM'fbu+1^lZ4jދoaͧ{.kEft@NXj.>5 +hԔx55Zcn7Uxxuϧ%X, :zjz=rnfKcwaFG7c!o |(GSN%u/@(񢥳= zKF=VT]*AAA 914x%S@+gs8} +/@c\.(1 ڜoĜ-\a5Iԩ+yU5+XºGFiF>\ayP$ O +M#)Y N|NxP9䙮@[.|JTV𝀹LEkP@KBAAAa?8rC=-~|zkkPɳF]ZZZYYY^^ۋ1ϼ?6 n-x~%rM' QEq ++N\Y܅p!(k)`OݑtejF1м~ H̲7g/l5wzaO<[އTp_@lCbNxꦻv | +.#_@8̽?{9&|Q^ɳGQ3"AఽD@   C=tȑܿ_ߢw6c/u}7|㙿ndw\ h{A}_DT7)cxSJ/O%f*!/C9 *Rlќ#Ӯ9EDhލ0)8>1WĚZځZLpglohCmG7WVh)Wxp #Gb~;o9㓒i+vjn|X_#쮳rfDV9GP,n\EV +ߜP@O1)g +b9&|StܕҢE-   T@Q);__N% :6VN;Mӟ}_5 *H.'zP̕J/Mvz1w6Gj1I-Y6 ^_: ^6f|5uHP&=d'c\o.cp +7X3'sK=&І<__GpB5_A_8/gÉ'E hKUtD3'dIBtǾ`- @MB8;po3R@r,*l5ƛL=?g,Ƨmư$[egYg/ ^ܳ}d([gh4ODmWt (7j!XDnsv!|yŜvy cqZg,!n@t{+:-/(gTDx(l ubN12_>[)fϛ3N{`]ܘpQn +No0ލWB"LQ17lĐ@{š&s845s}@.堵oP?AAA* ?D?B@"Vv֪$bEl| ;lven;p=1BCK# +6jGluI#ƞUטJb.-yo녡o+v\%2g9񲵱wL8SEVY';Lӛ,gL+vtS2j2/P1 i*fRxNW^Gn3R@c N+|K7Ԃo\VW:p.&nb}+mFSs߽w,^1oȘ1b7"AAA 􁻾=vKp0b^h/N{ 9 --AD=w_E? hO]VRMXӧSмZ](U{ |ļu11PR/(̳N' +)hyA.^Z:쮣~z`{bv`mẪ_R^38.8󧢷+JPÔ~6{i<FO9L%b.ZAAAJOsƙEA|_ћ3Bm <{;P#)q9:ZVGKӕKۖhE1ÍESiָTw^s ix 4sQA=?vTTi@;|~X j<%-0~ ,>* h0{2h;ȶnHµ` R)L4"&+8 +t2^adg RhTeހ)x~VI   P5U :>G cV[m_<ߥ.7lCP׾Fa@NҠXX:$ :rNuJsnE3/) bF@c%e,P닌B*)zVPN@3 ɕC:=f }L!HzmZYTOšu%ԵU1f\K=g{_yAS3iw%{ Up6Xqp7 L_y$4N<MlV1À\K 0ʴ -3hdcE@   S69lF{E!Hzw}N35!?Z$ʜ]oT7G9 )Pfm vTꬃf]͘ NBiUggƒ~H; +7)1%r΄f71Zv4E0t j@_P"AAAP@t _:ŢGy~4: EL 2<=u6Bh> +Nk:VvVr:9w`]$vZ;h:78}cds&t9'oй#^ +ӤSx28qrp|Jsi R, h'W[P$܅iHv|%˺XlArDcT i3y7à :mqkWU-pIG`lh3Cә[ +}rEFh7x:t /N^Z!}Crer` )+2Xg~N3PK<Qp8j3BZmo Qrz{kA<t?DPY0tAЭ+\F8/n)`en^+:2v* F<Z   P= ARds vثI𾒄HVp%0p2[R+_ɤ-?}!R*pڌu%酩ЏL('r> n[$a#vtQ +!If 辦īf&Zc!ĴhrW:#^s`+ +\L9kU놪4׸=4=zgA㏯r;4fwfv-%:(]zhdcE@   #Zzz!" O@?qM-lĨ +h^Bc]!.3t1׺Ntqœ@E3MKR }W Qg12uz7P}:~]u`t(R2+WK/@#oK1H Es]7CH@#P?L5-ݥL>Z6ϚPRso2UUi!#~-o +r&&tnԆ5Zz2^=i5]3TؿΖ.C =?vޙz$!kZHZhfj叞m5y3[gƽ1`CBwċZ"Kbiw#C2KxBtsl4O@VuXK4裣k6^3hdcE@   #Z]?>6̮x.<8yD{"W4PY1MT&yf;z0$kZCJW=ߴUӔnZfSk&h.*˹Qqފf!! Cgy bvQoHݩGe+i"(Oʊr"K͉[<ƀ,s8 gb +!a+]0ob +3zeۺnR}Qך*0hЂ   Bň '>s1gƬgvƭ!!=M ^$4kkPetVs+P@l۬6?-pa+t$գIBNYV]W~6h[''M ~\q6Yu Mr*8d?P+{N͕@LOMV~Rx |JyzF.?.cpK 3[ڦn뚙^a421"AAA]- mMi37x+95OLd^; 3R~&j6U#X'Zi{="mp}~5uX@w\jW=h6rDžBt*Dz "[u[8'l['UwTU!6tIM4F +(E(=c~0g\SddK 8SA.eի0hЂ   BňsA ?{/ŻU h9-[f<&FF%h(A*S3`c eYffuRw3hнut=J4Wm:lE; \4s]T2wӊiH [WA#8ˬ%Иu:K݁tF@7!~K>H hۿz9ЃԎ;령u(o+V@׿WWs hAAAbD@WKZ|HzVb^+Mvx!N(8ẄW [ un*4΀m[:m6i(PiF 0S01%Yq iƆ3~VךE?y+%+:^NIu`{) W]n@(}_$*E    "r]tLaeq9w=L)1fx̝njx%N@cmvI +h?jy8f]:s8p *LڒFY /c0 eT8":IEt]s3-Ў#e8<m8V1wk%+d=) +蕝j,V%5u 5ј*9vQP}>ǜm"%ZAAAЕs`UA,9liBO^"G"iUF__;% PӬ^}3ؖ /EMFmth~kQ@GVL~4U"S`֢Q$ôuډ\{">+縙%{!ԝt#1,98.L9kMnJ_/YytM-T< $|xJ+JC1?%Hg}`C8搊ځO).-   T)}Duf,AtXwWIdinqEmYG ..9v6.ϨSQ8rLpЃaCxXdh}_ӌU:S Yuuy#;ܳ1LƆܼ7*r^-߀ăkwqgeլz,>z[*mzxorʜ4?7`AzT~&H#߽ ~[AAA*Ftc;~?qB<͔ v{a]V~3場edo:dIc'4g+m̊0RbgI. Y7H˚̈Rl9&L5pNV6[w iC)i<Ҹ94N-?::lA;UrWNl0 >[z1P6뇠wӗEcBo=ڃ-3͜[, R[Ѳ<ޛ Ђ   Bňk>(g12ܹ.xe'ɛP`q%nxSAS't5*o;cK<U:[ථ)Xi]gXH+H䗩 #e={hIE+q^3m-zVtˀ%.m +h*ކZֵ%e~09?N·8!<[v}:^}WJ6|g9+А^8>-   TM.aL-^c^ 0(NR.g: h2J;P尥S?5$hgsKٛ_FǨލR~&.f ^FD̲L)ӣ5.Mz0mH@, By; ڇZiڲdf$I >^h`?}38TІi +sݽ a|;y@_4=^Zh|>{l2{`PjQ%x>v6<`FiJZhCڧa'=-   Tyv~F!I;-k@I@JpiLs0qöe +v1Sx"eBJ37(ژ*%xAȽnT'yc +聀ww*s 5:_R%Ӑ^4R.<_铃FZ .dgUds8N_V&NC&s"Xݷ1駷Aso@> &ަ O.C23<<=%!mS(7 Y :TOʴ#5zY4y$Qƿ֜ƵAAA*Ft\<񙣏gΘM;Apz;~c31ĹM0DŽ)d +5@՜_BxZktH14 .a7AMK-׍0;u4.  E+7HЂ   Bň '+h@z""\t^W[M<cP`4_84ei'cEXΔsxr/ggZ^vw ^g.. +2af M5cEc-TdVdzKag}OHXX +m̅Z<"\@[ۺ0t|UgБ4O5W{~RPN\f m;z-XhzHC؛"xGSm= +"=f)0 +hAAArD@W΍-UP= {zBꐬB*iihTd'=MM4$-0^Uh>/Mݕ)"@(Y/{ᐍ]s *,D@yY]/$T:czuvQEuu}l +W譐S'YF>[Y Vj{xE5gF8Bs3'V3wg[x(*}:QIӅ`9 +^c/JX*֪ sYUkBԱ~#,~Z $gE!P| +}Ŧ]cQnLS0zNj _/8,m,/ Կz -   "?zHc],ijfJ*i6̶zBK4[zm\XZdH}ojv7am +=b&6Eƶ(טd+5,^U޺4͐!2sնSX0 +hW N΁F,dž49$2j.!-5Qa2g!MK { >D]s.q 6q.XsuG Akպ;^_'9:;S!QpyK Uja҂ C;/}w;B>"0E@   #zwT;PS`mo}Yj@ +h@#"boP4H="c͖o r6R{:/ +:hqVpEX Křp tbᢑ`b F`Gb2Hѡ1dfgѶJ446x>@Q@ܘ X&t4߇KArגҧ;\@ơ^z80oJ0?-   Ty k5P[Jz3gҖh42ۚS18LM+JpuT NRWXc&e}z= Pԗyզka%;Bp=Θ#KneZ|5|tV@SOÊm.k%ImGf:/j.Dv$T8Mz{qQ|7r,v gг8N+zPF( [х3F6; VrϨyt hh{ WF(uI/h <zV3o"]l(KTI,Ђ   Bň>s6OWAl6ó +h@%M TʌƯ$4qiBՃ$lj/b_އB,|F 8h>Lo?b%rlϺ{^Ep +"c h@h˓цsC+!-. + @m]:r48~D`~:8Xg.|0|nv>wܯI=+%g;YaݳUo"H@81AHhAAAZD@qo}P ;"QaŒnTFPNLsh#x$8*G&64OV`Eh&_C3f @],HaHE۪g[ppיw~,9?@8?< ☉voΙD@   #zxǏ}mDQvMEmWL:w<|pT&]a>Zo m>'*-lqFZS(R~0~Ae%h7AֹVo\ۻ:t!q'|sO$ɷRY>664[&I^zT@s9uWLkbZ1<64 6B ?x9f0Վ`a2}-(< :Fvn֮`4ڶ 6t3m'ŵhAAAbD@_9O|%oP"^?̽TyUoNɒQ@w4Tz9f>l@s lW->'Tn0WP4 8 ؆k=z[f\*yF˕46s` J$3;łe˰Y4l6ENGW=/U *О|&;Y)d2)UsF§ǒ=sہCX!"AAA=[c>ɾglt@Ql4VLuQybMOq{9oul~flgh/[ +xЁppb&= i\m!eV ]x*aMAڅk +()úD@NކxfOhgz/<{/IWΰ2qH~I]'Uf6:r%X i޷p29uskCX!"AAA=< h`ejm"73G߆w{z_vju> h =fOwgjtUXyo/bFYWsͱ~"ڬܥu0,`Yct2V(c3G )jJwƮ`&J2M&io O@.nJlA|`qo9K5+q +2>2lA a77snyB䛵CU&"AAA=ZxԠڂE]{2>AGލmЊeb87$ۆݰT@{f[bCgVه +/nH@cy2:h~uC|]/Q_ˡeZKSwRKc+40L֛,,j hS̵4⃏\3<{mj6tVvۙ%zȄw佯N)xrC~%iwN*o.[~Q/9@dVhAAAbD@;D;UKSQa'bh =~=iЇuwr`=T*w-Y.溞PkAyH6ӟc8L-yѬp^Ez!m%20s5cVSd3?Di\1ll5&(!EtpШ\@ tk)?{Q:KbgTϸkn*zAAA*F +4_'kV@+-L%ρTh +.trjVbz:8>=% 𧻓ȁ? +hRl,O+'[#-o +~8W>Fy<kRգ ZAAAs?a I4h`M8'}.Ш*a۾ Ep```{&bڄ\[] T;yE#=>3LuĔgi}ޞh;Vޟ dԡSBod |EWcav]T_+ >/{_ h3!>{sBZ: 8WZ T="AAA='P@c'7끽;o[xNjzޮ*Q@䅱ؘL9yL AmJ9qTxH !l +#3#3y1 GI^Իm=T۟.)#;b]TT@ Zt&L^s9qWZ1mr= 抮z;>V="AAA='|߾٠`SCk 5f=VhΥR aݥ ԙPqnFv`zj Еa3 :CR0w.Ѡ4cC\"lIxOz} 7T c,tya}Y9b𧻓ב]"I=sjjЄ$[yt9lC%QOBЂ   BňG6Ox>~<͋ay@D=M9㶪tW rjl.*Eh]Vj฀D)5[YDᵻV@mG-+VAuE3PEv}r@3;7R̀6;娼2d0E!,*E-G-ʓZZûWCj-[Tp{'Ђ   0@mM/*{2 (=L8~bf~ޙzDk Y6d 6aaj'.ߩۉՉXũɍ@ιhQ@܆똇 zZzptz?9ivCuf'@gʐYљ c? W u!XM^A4B9R>]oe'eg+G   P1"/ı +U[3Tp5jg$)s5Z]-pl)X1݂:~ݫohTJյ`lEsqF &_(`1٥f΍#q:n/a? ȵ3fܝYHQ CZxй3rWU\݃'l4qYdzɾ'Qo{scnKlpQXD@   #zNx8TW iH ʢs(<ߴtwM-X ֫ƨbsf$FoUа1뙻ݎTwxP ffsŹxp.]8_Fa +6g;.pT2[~"Xud_^A4o1ʟ'=wתJs#=EBЂ   Bňw};ڂ~(wIXS?7c7=KaWV.T!GƬg`w/&lf$gPjt't,8 &i YEsvvѻ64>]j71PDp*VOW/ Q1˟'.&ׂ[D@Y;T,"AAA='[}blX&0t3{)~QGE6f*ߴ1)J%LIr͵ܭ~ Y]:}lB׹{zl3_Wל]|0a;PRhKf{ .ګAI Mw~F?ΧDs0JU#N$#l(. 23]i$-CՁG}qhAAAbD@ 7O~GFTN͌ڋ{^ԑ7(.boӝ%}01[a/c/@i:<՗l=XI'h Rh~Ͷ+cfA7 K1k64EgH ^L#я:;;1bm^2c͉_DZ|hQ:l^ΜR)ݺYx`cIlUx hE +2zY=e4jQ g=ɦk~hV6ekc2Q[Cd2Wb, <"AAA=?c>w:WeM+V ~\u^4ovխ ~ +V6fՠZ $κҞy`O4S)]<(jXRa3o6f,4nZ +#3L?4NQ7BZ]ug83?rSYcmYK;᝴ڝH/5 Esdd+pcBׅ՛/AǮ :Giunb65c WG /zw1-4D@   #z~}އ Hu'{K9CD⒲JDOOR@M8Lěa}EI@τzE比;TLYϞ\D7-%f"+S mLjQyk|~`9%zz0`3yFjkJvl(Τ=!R\W`ѤPb;>[z ޸Go'mOu|:`d1 Jgs]`.^.A ڙ8Cq7|Tލ}o% D@   #z~(бdںQ:cOYN=Qw6ăa3#&&dy=\]c`1Ndʻr ΅QԆgWhm39藳G,b^E3-8gZ Hz3`՞m&IUܘ1 f'/v xej +T2*RXtFu’y wW:hQ 3|o`%5u8v_pv1 R4ݦ|x}[ ^߄rC/AAA*FgG?yOAcFj͇^m'Ώh~RH4+ٿ@s q&i:E3U:S +j6X"/g4-5ԔEsкroH i9}΃gԽ$WoNn̙ +hs<1U!:VJ0S&MS=sҳOTV@GNLgz*63>WP ׂZ)q^SFxҽ%ݟ&#{9 +r. U{0D +NLD)+oDc387K3ylи氀FIͧ=91sͰyMuElʍ=-   T >ql+a>[N&mٲ܁yQ¤T1jYlw EllFx}%f"N]UnI +)W@ڠHӟEZ{>EکDzdL<1/KplN.8Ȥ|75vsQƒE +8jc+`S3%lJa -qF4y\yb~gÃ}O@cgճ<߆&ʷ^RntzE@   #z~x|WU'}7smɭNYNKt+O|B\L4@Q8<)ѰspYv`>6lw^z5n h2C*;4_^(7g=禝 h#G{y<Σyػjb:'#br=o7`.*U +u>v5A!6x΃٫Jv[Si +% -@=IImUàv,p& Á#(:u:|қ"AAAyApl+? (̿r);S!V%oIr$j.Yx7]aPgJIǭH@nEpUL\T(% Dd//0mJSjfC\3*r=t9Ƀ5>.ҚT2k|^wsFN {t{:,A"L[hAAAbD@7OHv(=j9;9u`kN3=ރ}!p&]ѹ5_C;*o+yپNj] +ZԎ|`g8(7,[qCE@   #z~8yOa-C Rc}M@ !E91)ɋ,1"kZ\4tOP`.).^ǂzċ@zh|! hb>aF h-<l_[Ap Ro/Ђ   ”=;i_W׉cPu;IUw{ (לn-,Dzu$rн%WjMz*`4GАh{j ks/H-%M0ۋmR~$rjY:=}839'LQg^4GSBfГI\RⅡG߀#"ٲ☍P~ u Sꍂ&)8 9|~+;ӻ kXqD@   SFL #*XoCRTP)CnވBg 3FWq[ ܩ[EfYm,sAAAw}`yb8rPY`4E{q.u= wK +.I{:2vte젘<L8@Aynl2oԎUoKxFwsφ N@㴸*ڠ `y hWFJj|+!!iT5UAUbH +,goAl)a ?/~fw^ +肝?"ZAAA2"g?{GN? k3Rr"څ inztgB.&>a~t]I)? +NCmH]crut4as0gۊC6sjw?} he߻KHBGXM +hp8ds.r>6'C&#S%27$q.qw~|< tU[W\o\؁`~fSzR9lAijN}?}T~<=LЂ   ”=S[Y=Tݘ.l,b-]&[P +ABiДIK'#S(We{:)u h@8> !2]Ǽ^Bvꎽdnu)(Cw0v "HWt(?K~yNwqwunq< ݍ8[g׀6ާd?.Tku0X|qNX[[\@v/Ys]DL5ˬb&@   0eD@uo^ͺi7e8g h4]ڡ[W) n\$Y}XUz|z':l<,. 5w._.K: hlq4sKyyQ+&:׬Xj h g;!,SBnqyxPeQ`Zt3Nޅ+gƚhp};"f8nXұ~U"S2(E@   SFL/z)pުtR$xRy|=SS,xfæjW|;"oJigpyj BW9.:ERzM1AUöä՞e>/IݢU}%p6=+z:r3nn9W*i,?Q@S3Wtw?x=;UaFgfA3ZfЂ   3+_sXLwoQFyD\kQ0!أ7,ز/-PDYO6MwRHBC4&GcF:8!<+NMH_r_n|KUCO̧"rqɊ hJT*i7jse4nYf53yBN9^LФ hXF9(Ʃ'@iG{7pD@   SFLcŁ? +Q'ۂ<;O<&1q԰ՑfMfл4tfdSwτՓio1^B=27 +h/wi{"pkL*8K4M+#Tm4A݈,sCM ?u\ hZRg*^I͟qUzdEџ.\6Z7A (p?V8]cuU?n AAAC{e[ +~4#O@㟼k3rkXW Q2uIԽ;mԀr ]|:JrqGx~ZE)"%+JY#ːQOMT+̓EN{) +?q0>`@bKA:zxAv7?>qwGk;PzCpfyBՏZ   0eD@0d\3o F2\@=Xhs\ zuzˆ ?t*;N@sbz~Z>`H΀:AoMe.\+ǂd=rD%):yɇj^10c)aQ+,<X3@3UfIA7HͼYik%ݻpE?JFfN}wa>A_b&֦t':E   ELqyƻ?8g$-"4oA o'7+ͭ/) Ā(I`,><RG И̟Fw(Eq~.VyphpFG hHH| ʉgU(S4v&lzrHz̈́|i;ULQtj¬$rލ{"2>ɍuX4s)MV~Fw`˙yת#9_Tlfhvk1+ߛQ2>T7 +ΐZ/ċNBT+7¦*c5 X o[iÅa> +)~'+51_" h{2 -5Gm2<@;@).!ZAAA2"g~W8ˇj ƻq?I^W1ܾ]-D3 lSAJڹ:z77bIjsgVZ65O ++ϯ_n@d (cxVP[zVK + ]AX+Mf;*]5Yݱ~\C? U(S4ϲի˜Gri<l_ +$A?' uF*Fܹ^.ݿUQ#ZAAA2"gO#rj6C*E^0Ų>w`u\֍k"_Y2;B=m:aӱU܆rj7BG[έ(;֥B~iettmP]#!^ wJ   0eD@(s[̟ꅷY&CkN/ +t')+|)U?xߣ6́tT{Y"pAvHV:s6RO8f8y:Kz iDuu8J$o +IR*[槒~Xm;Hs}Rk`aY ;uc0cAݜR?ؓ ZAAA."g YN6BEgY9>[_vro4T0 CC3O u2XbM &iF 9$XL;9 x3y-vARSGg|.!׭OFs~ ?g#$l SZ%c7gDkWEVn>E^2IP@o`P +Ǘ] +-   Lг_o7g؎Rx +h/5 9!W@w%98`_eN1XXK}x:ֻN@Y]^p/d2pfgoT^mu7q4YfX@g%~`rps ^pU]SWnv/E(S2*R47^XyntG9> :zx)J;so5*1-ZAAA>"g;V|ж궄B9u@e^NVH4'-T˜t9p1& +tA= +GBߑ{թ+Lal;d*tBfu|&KI@c)4`foLœ̋.Q@U S@qn;65'M;Qh5gO]-",X}Sq=*v̐qί-WF.V)qgڪTӽoPS:L*fUPy YF3!NbP`/їEۗxW3;-   Lг78g +h2gDTVHs]ǐae܉+s!$M?ɁRn 8mO鹾# <_I/٫&+)ӈen(YSA#@W <ze,*aYl )7d8x%0qn /<%K@Oc Sveix P]JswAKEAh6>c>]m^ /{J͖Bܛ,GY,H2AAA#zxdЧ͟a| 3eF?8684NN{qRGYU1"?AAAYLw =GKVznm605IT؋Ty8" +-4TiehT=Fv ֎3$a?&nNH䔷jհF܍J1@J̀Y5'xiӎb>thqv۫ibJmgxƢlDۃSBAxo;H {hU9TA2F +_.[FGf$&Gh!(y=(܃CZe]E.XI}JՎ:]IA"|mѷYAAAY#G@q5tꣅf,̋yIx[;lIg]SE^bz_5H#9w!kNF.'+84)݈ˇi' oHWǹhf@V5_6T9 ,꤂ngIJnm+; ;泧R#g^At~N?#$yPthfp(Fdkn~5+.8vr< qL@K/AWsJH)%@A="AAA 3+۱E{;;us:JY)YR*17^4#z1ppr簕C쀼[bXz_Ss3:h_A5^tKy/G^fu+{.I]t2ÚFZ{}p +hmMץ _ fM(T p_ +CN}?5 {zuGI?N4Cl3%*Cg1<g,mno 6?ˏxC,&"hmS w'K^)w +-   L3ȍwLtr{sН.fATlpDLIBEВ7!iRs +6 f'`nRUfUPun^[<' ?y"V4㫸h6S;KXsL@]F˕ Fi+`j6-ëtB~ŵ!}B8^ kp޸us>SдRm|ƧK˺U1yV_?/C\޹8೨K/&v<SQAb2߲8}͗K`ڋ6)D   0eD@ GV%7m/bݠ0b&E9 QwlZcz13 Ath*( YƖ$Tĉ۔M 55Xu υh ڶُ +I +hf!Y3C7f&'/6簿q*@!$ hJLF$ԟ0i9T3ߜ$V<\>Q)3мK&vI:) EvxUOD}+5R*y7"ZAAA2"g(p_p:po#I1.źAYÔ) ]`zGҫĕÁ-Ū>NeTRSݲY&xdt[-rMޫhL.Aylىtr,9tOۣͦ;W3:cis]@N̋#.tIꤚ{\] +2~TlMM5qMhs*{y+yfgIO"K~ͻof!6]A6w(/W&:] TxD@   SG }Գv +D;t)SXt] r,׏TQKve׃7u9[lԕk,[ysU"{7gmO̲rӈPDr<$Ósh^37um=7;nKƆf$>N͞#9HV~U{ oPs)l{ױpלrX-Mpi=9[/No]OUYq 4=_#-Ӕpb=No6}Ko,lC_-   L3+_u!wiv4gkTz \BJUCz렵v3>֥./W_6y }F==ˍ-%X?Kq~9bC.̌Ң7ګΊ4Z/f w6F(;܎K5URͩD~$˺ Z-:Jv=*>P;&0ZezcoJNLG9M+y&1 irW%]SUa~B&<0Q) VE:D   0eD@ w|m>cAХMl=(ytF$eO&KY$ڪW{_t1= +%@ +d^!ҼFX̍MHؾNgқxt@@*&m͐ZLDJSs֮URќ˶_Xc'S+'/][`$۳u-1y_Ks*g! *`<5gNwV[&)rA+ŬAP ycpowa"RK@Ϭ]C|]%>#>th4©L6vK&z }2\6 +xdﮰи5 \Ze +V_.Ż0||нԥN]gL e?WQ9.EԘbψ=]x6ݴ E/ZAAEǏ?u>ڹsv.--m߾}yy-oys/RL G v7\wn"uL,6j2g+'./YK f \(3- +,1PD@ ^%!ki?t^PvUأ\Ns4G؜*`&rCp@b:ն5.xpN#Qq=Q>ڎN|NԥJAUE+ã*@pisW]I}a9ϽyD@  $t:?{C8QMAvu%|+DZ=peʕޭ֣IR!԰!lyh0$u! Gvk."-g5ZjMjVEsyTFxsa"PgZ5FNg`+nQ,TqLS;6Ѣ'y3 .؛71xmک<~cYpNY|&%%d͟%G=mmDMCЂ  0Ξ=/|o~'K/'~'7ܹs-"zYmݿU +teq{Z˝9{틃F9z^-]+FνXOn4iVF! +hD[|ZB;}A1"q14K:Ү%?Ń&< +okW LIj}LEe;Л+zϊTY+]$?b /QF׬nVwͶ\G^e2ɺ˥x*3Խ1zxy. R*ι!tE. +AA1__p ǎ.袟ٟ}ӛ$5,#zA(U\m4wvލt4zgpzӟɱы>nrV~+_6}$ϻf[`74,NleoW8v+6/INER)Xl4h*3pr5&WHWeC7pe&4`3|kQ7b]:TJqpY *JB^L94mPz *׶qD-Vo"AAa,=zo};xs{B!г{^lCxD G4}޶iuc;-Ά*WqT|dЕr}{cx5> `_&&j2;\ M!+Md4Gj8W#&?Kz6jzIv3SK|Sh+;vn~P{]lh<4yp=1֕[MW@せO Ugz[y< .|:hC _nvzq|eH ?d-  #;??rٵk;7 ^ lBl;w)K;ОqnvhwZmkZ7Tuw?{]s5D6 vm\ST;b}Qˡ-:M^Rh f,4Vq/dpڎ1ii|/j+`3EЁ[}/Wٱ }tM X(,qrVf ʇN   /}K~Ϟ=;Z//L{!ClrOP=c=ۂҽjˮB<TMMp"6}>(q(q6_4GC<yMuX^mJ@x 0"AABo~O2+Zرc?z}QՂ (˥R ðnZN׿/|̙3Nj4OG};S?SC\O|n߱o\hMFSxu3l6 v=*yYjFgrze .sFM с` JjpA_7qԓ> :sp/y}4Sm)2da包MWkO#)fEBm^Vb M1D3&дG6 A9?Ɔ.D^swx>I_y4NO ;ړ-  Cs?s_zݻ0GFqĉnӟѣGRͪ>я/baPD@&О{]f/ڕGAUE$PVK8Z<-*?޵)`%saN+t}h.e69]HfO@Ädk>K}Q q :0r T苡Xm:];i†Х8; +,#SH4lت{z_'-5: '2*fpT݌?xʮ$XI΄Ih2^-r:u'5hTAAaw~jg?oW^c$nxwee% Z{r-KKkJ#d߱o|kzԥOe3s4#C(v ;/VEDG_|[̿#GWB/>cAݰA|bʼn/wܡm}%~q5u3̾,CꦖX2O@d>O8ˁnQ^ h|jyFla Q@?s׿ٳ9c~e/{V5wqǻ<B Cly<ŪgLoH'mW=ЩX$<buݬdS8;Tx¾1d'Tt_)C 9$Im͗=& +,ƻtms^u[)m`hNT؎_he& bddv*ZAAw0L_W_m6%onvS??s;% OD@,H\3*KZSa!]wjK2 UYiҟ5rOZS gq=0*oe/sX&yrNL͸Qd8c'<WL2ct Sgy,Knri K^ɳWtyqA: hka~0훇ѣ]qFO_VGhAAACR@?9Ϲ[.|c?m-3M?yxH (kFe7VmÀvD;]Terz'CCP/%v^31Iiu3{?ЗW\v+;=Ph'En}b{ú{[ K7؛Mtj`7 zR8|y@ɿaܮ9vXkW듑7Ϻ-`LKjkҲ{͖jQ   \@/--tM/| Eѯz뭴E0nD@,(>g0t5+;bAU` Ik3;IЌ?8{>>U(pXQ)GmpqhoBZu';N+(݌P^R8v@+C)^ɢN^-Cͯu,v> ›ֶ|! }zb]]2T'Cu D@  BP@J}??>Lg-3|n߱}Yb ]Z& +5;TkTSAW|atgOpmh[Б' _?6O}_wC;B|}R35UGx,0kmra$=˜0h|#*%i7["grVU=E1v 0a>U{-kB}Yzy4fŻAt+7~+[hAAA޽{7]B}wz""zfmWnz6MJ Oj[^is9DrUsAw+`mtʲKqq0*N@IR0fD{*+/ܝ_{Kʉ@t\ 긩Tss]М / g^8I~lZ7KV5VGb޲+"8KE@OpQgi'P%Ac4ۍ_sXHa~Q]F<kPy${.i_^P;ҷJZ   ٳKKK^ <=;|΀5]D61m +jT BÎTLqTLO1nw(S3C**2R49(GxV ,*S!WȌ֞U.dx9f6$FZw2Ůd##;O 0V5(^=Va쥗,]0q+mSu{4ɝY1,Q]SOp(+@8\a(2D@   SFrxM?3`".'@UsDm8vMU*f[ЊqFy6(c+CxYΘPlQOR4 :,sh I4G0Hf=ͨ)at]$0/-[mM47kF^ԝG:Pt=VҖ_:;سV~$z?ͺˊs X~o>N!R^(5hήUUփրRR@{-I7o]PYAAA虥Fg6@g97۪D]Ga(,uuh_MlG454*]+{D3ĆCεHW;vo<,y)zz#NYhAAAaʈYV?trP3O6!:]*\dfeeV! d#ԓ*q< +kq,v!8+am]2:{^o}(t-mg~)gfQ\4{Y4V{/mAzZmV4.zg@g% tG'@5\,[@?S]O8!a֏TE!b&l>SvpB<;6>t&w;u]`!3#y$8 WsOVQ ո h?_-   L3K_%RUJj\:tL`$AkI"7KW+6ca3s8Jojpuiҿ{zc>c'VRieB|FAcpgfm쩢ޔAW@J9Z+w,&z.ک \>|5L  +ha,)bnd h,=i#ˠt {XG 5!q3zj^NSTݻ'VW'r&AB   0eD@2ʻɰpn. h$) +SG#b xkmh)=Oـlutu/}{پ|g;AOϠ1%h0EtjaS|6ƺv`P$ +r?$9ˣmo2H.m_M5ZV~Ё0B:x/gz29 WS0n1ШI: ekP3JvK-A`0 Ё>*~k+OI5G<2Vw4_hAAAaʈe>t Uo#)׶FRt)-k'GKחLat 9TReu>пKN+_rUհ5S1@L ==M + E3yj:: "lXvM֑V1?$brEtx41<5@t42ό0P챂]`t[uFg~وu00lf,vr0kФYc +P@@V&p`A|?CܑhAAAa=ܴW{ø8qzIŊaY#Xu@.<ZiQh̯_y῾wK(4%2s3 !\(浍$r"䛑h+ x5Eg= 9(7F+(^mI:Q _7 ~et~mJQ*I)4*,sgVqq=78cA丛񯮗ˑCJ}+74-8W e{7I@ 6k"AAA)#z!핕TW-=F}.`}n|Xʛxi2p{OCl<&5C,HrgIM9l0yלN mNҀ"+%vݾT78GB7UhhNHr 6' .N,z$7\ó U@sxۯdt``dB&䝓hp^3Jm^" (ST $ӗgA\ uH +h0AAAY涕n_ bm +,Х 탔QqjLmN8*P pJnD0;95= WM<+c&4iz :Y\4͵p7ֱ;{Zhje~~DILSRT(ӈйݩ[ Lޜ?(}XF7Mv;U@? vv}˯  3#hB\9XM}6 hِ(F+ntC ViZzGc>w*XgB|EGAAAY&U@?t\ǹq +K0.rTViSTtPǬG hã}~C \aY47ΰ>M$àLM̾*:j$EK/7.DU B!nLYMwP<:ilTud2gi2}ŨR*)ۡ˂k4TL uU\@fx\_O&  +eT(umCZ6ԛ'$!QP04lFcL@gq0X2 ]jOOR舀AAEZ6eRZ6:t(uW\1eBqD@2}>–\u]j*x +hʹN}x481ZT͚!+bzG<ˎʇFZ>/ԎfZ +sVsV6j(W@S3ջۣY5t\s`,{ꄪTsh t킁 ,ܻL&_.A;k̨ K +*}-\h/v+0ѡb@525d$CEH751| kSШ $7WN`oCC{4OwSf>=+ hAAAQs==z9مݻw^m۶{1~{1ocTqZC,sxM? L ]Uww{Y DKUgW^''ϪtѬTRYYz{B͹HlV-u޲|A( ;^۩f6vA5/BgX'̭@;7Tnr +S\a/<@ $K4O>$et+UJWaq?cZɕz0;^C/S^hiA"e<l;}^}sȁ\aoZhAAA +y{/p /yKƷ$YfyCwbaUUE ]*_:t+O؀2ںuT 8DŽpx* K닩O.RV%~o;Ò$ًЩ};=ЄUn:{ ٥[$qO}5ܡ`1+IH7㟩Uf%f~tVgN|k`iT7)mWco4i$ {ڊ0hĠnߍQFSB?i~!ɡN{ R/A!A;=Ouui"si@   l~Gx]nE#_.@D@2(zt*+yƱ) +hsh-(-@!gtlh־3dK.r/ fF+a2YboǾ5D.[j=1H:su0XAL5ޟ\f). +^- uW> +lsWu񅝸8 f h2GI2udtС+^ڣ`o#HC^u_ KBO皪W n!+F   C]wݑ#G2ɫ_oqTKӊ.,D@8ʻYꪻ+TX"&؀y趠DꙜ?t/I@r?5O&=k XIUO{%̃ +ut@]] +7 l Uay`[W+RJPy0 7(},YW hƠ:a#8Z.}!l6w/̹F{݂vR4urEp²k zfU{tutנK}y>=57/E[otHϠGt}a{-"AAa`֮暑LU*>OZp!z76WCPMWs* dcjWEB Q (':;IN4wfJ3^JV7&?*d/^v5Q5 tv,POzJ53:ݮxT])hAAAmg6ɿ[n<" 3|cZ6 6 +ֱ1Sgl7a=(ʝ(./t!>F1:~\9om]6ݙwr3`Ro@o{V hܶ1\@Sy;}P@]Xlb3bN@FtC؈qa`=h1hCsۡN74^{.y"GuaЂn.N@nЫu5g9R[rQM,Z?1 :lWE(C1aoZ@ѵou/P0N{[uRFU;8=83*_u-фjxCs٢0l{#G;s0m]LhrMPj]5YQtNTٮ _om$zDFKk>?\ \^ +#Q4SAT4g Nw(VdFsn :V ~A TeL{-  k?O䫫eԿ0JBmkNОA}tn-U ǴЂ  П{]vy#ũS?g} ?" г߬|K2ql *iVNC&}t<2b%?vwլg?t❗w}`ylCk5K-_@燖L.$Za6"e;jsZ TϨh .A_B)w笑<ڛ<ޟgݣO}pQ+Ρ{r0ёD<Ӈ[1描hAAACӹ+ys/r;juTo~E-\p}F(y[0^$4 +KF IIżJ܅ "=˲I:kf_?Zh+ڪTa[~0nYj=cyPu!Y&pղasc6љo449x_Ĭ$o$)"ScjnoXj4O| ;,cvMTJP +ޚ?ŜS-  }h4W_}񪫮J%:W_e=w^t9.8D@>pllbM4%r4ӼLgMG>WM +u2@kg$7ڪs}r "O1Kf=c G<1Zϥcf>^)YɮUof͋}(9gLV6/yDqR[ShC! 蜼ԒsR@|_&k(bh 93}vr-  }X[[k/~?όcw7YϾoD@ "g+Yy-D^n\c}@:*;N*Q*1hKq,FC=ᣣЕ}Klͨ\Uϼ\V6дw3th[X3r)rLҙoXcN:HNU$\@{&k q]yݝQ_)RD@gUgg\L,TЇ`I!K*^'mO79j,VЅGd/ҁ`lܞTD@  BZUW]mS4r-|z??9/-\p}N5Wwׇ-X?⟘ȱ M4\P[ノG+N(C%J%ϔp4xǣÝkҕ~xs-6Ձ[y9A8b9<әøm܎&x#S|6^o +N%GͅG`WR٦;s7lajeHfO>ێ.0 k/'|Z.E't }e+$ivnuf߶{whUVxO &i u+U</'JΎT4 f LhlW.{8:K T+jqC8K=-ZAAn-]t׾''g=/~y{^S" f=D)Ռi$ꎫF>W9}jAM1*c3q;/@(D'N& QAYқ(0i,bX,Vu~=x-ᆪ|>>6HYߣhNT#<\O 8$iF$D CDt$~ D HlFFP$ޏ5*J1,BL)WCK,B +:cmZ]=Yq9jOHn*gժgp0e?z +ah ƏN"oqBAWD@wKoǻJp Y,bXZ`W_4Θ1cҥG}+̙34-t;ްܷ-+@f}?=;2NÎmc;}fѠ!](E\wKO7%3> <\x햿/T+!e^4@SR݈1ĭ(#;a#'S'GĞhBWR4Jj:^!oE 2_kEakvֳm2l5Xi94$TK3j9.eQu1V*h|v$4QM3fX,b_3gNkJ]7Er׿r߾ЬВ5F2Q†~o8aۜQU@$Cԣ H R-7B#IBaNp{0`?nL7}ly:K{zt얟,^tV=Rz~$W2[hFmG4hCp +&+֐oo*'Ak<?xAtA`kWˢgS:+fF[%-濏.f10,_Ó?-Y# V`82Cɪ=>@YR3bӡ&.*ph0&Zh)tK+>[On4hbX,+{btRUVֿOovbzxW4$ +l͂!-lb޷6=+QNRSɎot619-Nekv5xTJA&"rdF`AaatiDHhh= ŒEd"w!tB똽EntV;1c(]Ou|@QBKPnh̻LZ~ +zjDo&a2R(Dm˔Α\SU;6 Δ,5.fraǜU0XI]ApZDևWm$L5ع=~EI@X,bXOӟlx=-.3f@]{ՊG#ED.cM-@7FTNƄ١aF뙂[lG&˳#I5F4 ܰYܑyAY2𤁊"_㔴E '۞/^5:#K#@EڣR壱At6b,vGOA=ES7O4@%[lHFvOd m|9%=5gdtZLE)j&ky @PvHHU٠MBMTh;sù8a':bX,ŊW^y__Bz׻޵hѢ1üy~r&?ozӛ@N Bxȸ5 \USDi)l =}rbq Ivg {ArOOmy_@M`q":;_*pܴjGsU7^ӡ`Y@t`K+مG` Rۑ`~If/FiR9(y":tQ`fh$j?7rgZނtF^L;ERzA5D/SԆAgj̢P[j1iJ;EI vB42tҟ2&6/ńnbX,jT`ǯМ_7^br4(to%]иDž,Jz0e=VxΞ3]-JjꆮYvElò lVB͈͔:>!p `eqMnM>bz+E1q@ϴGi(nݮx"Frw33E-W]}l:09L ~j@C(Ui$4`=įRWZwBf }ME#GGh/h3:p¸ݼT ݪ6570fX,b׫Bɓ'uY~x:bje1n} i͒Zƻ +ӈd"#C2@4-z0+m +BPP$85uƼR6./Y ]W39hC;U}8^0F Z.!>4&pu^}/;Iw tlqC(lW ~e~08Ϝ:dCCߨ9LR`?c!zywhŎFfy4XڶElb:@-ڡJ/m":=ѹuMٺ\3fX,bkQ6RԔ)Sv}sOk1f@Z{|_jFwm6֧qEC2) +2A6?sޝMgGMV&dDLpLh1(Lzb* ֓49dh8pΦvq"&ʜxиZQdTH +^&Hl#@5r93ZzX^}&Pr@o[ywv@ËI)B0ԂtPtɓӹ÷T;=qCwFM<:8%ia.y:"YtoTW=`aR0ׯ}} Y,bXT!#뮻>ۯU@ZY Ex R¼J3E 7>NҖgvJL>0iW\tnmhvCwgۃG,O7wAie&Ly1TeQ Dct0q+%vR#D + 5%t*XmaL9,gd&7wY/_Dk PES W#vQ\A6d&_sh]a1zƏ|\]c]\ZoK8bX,ŪU\uD_z٣7s>3Qz2f@wkT0vHJ0 bL<R/q ,Tgиk{vB3p7xYYO6rN5 9+r0 0i} +y?I,bV&2*1C-11@)EFv'q/EpLͶp(ζv cNnp=!Z ̴ VcrWE M'( +M`:V\ڐãQ)߹ 1>6!U4mwy34bX,U>O\r{is9wygn Y,7;1@Vs[Bhݚ$r˂5EHL-aw{z?tiQD]Q5~C&7zCWЙH!\rulL $>~63S#r`F վMC0@ 4x 8lhsФͣ\$ +M(iZ*I?T@S`r.p2d<%;+ֽ`k-st +ss= kKJ ۲ãQT:R(/ @X,bX;WZý7iq 7\xᅕ0f@]{_Mko3P5@O`:m5$J @YGwLVmx7OT2{UQ݈BG.X  +bo$EWE'X̆jY^"Wh)* Qo.m$mۊmNgx99<3X蜟"44&9USo!JhMf[#nӕ gTC&2C #(!yjc9Cp0'hbX,A-X`…_v}/r Y, 9眣$'ǛOʺ[ϟ_(s4]9{C Ҹ 4\.f>XJ̇CՎdexHŸh;\P%u[rfEx4`7,06qd/(={$2m2bO$Ѷǔ@cF m=dٽ 4SG" 1hN lv_6KĒQ Y-mV~_B &s,W@iǠU  +;EA=JoVӎDh;m3E0@&QEw0$rB,&Ki{K&fY h]J̰ H8gԠq4;Z+ٌA V̴M6kabV&EQ% #\ϑeSvr1fX,bX5+o۶X,N6mbt?_"tmC9x+C<`r6МNQi>9:w*hOGJl7k@l0o7\'ٙ+t j*HYi %q`q:(0 Ȭ_Pa +@МgB@9g^bPbFl+X:e;Lh/j)$˜g]|z2)x[:5A?*7 MUPmgŤbX,bX,m%kcEb +μ=oеBJ9~cpg[(ΈB0a{|+v_ gȁbP/թu+˶"3ٖ U-$L=Jj Z@~w}6J̶l=d)9m/3|XM4&NU;E6"ƙ̈́S>&nm|RN!&]_G?x\dVU7Q31,bX,ڱd}"(F/Qj43& #/cd\ia@&S83ha2Yv{ߔ 5.zҐ9PD9ћ\`7$V$9vگ^3dddƢ|jM DPW&є}Aq?s#xBfa5Πah;j=eu27R:u/; #t(}v .)0NʔS_=*w}$qƏjt|CLKn NNձ4bX,bY H_4b+6 8x]B39ܹ_& j!n$/Y u9A8;t`k5η{֔tOs +w ZϰN$6d`j7mN9J̊t~RrNg;w@1IBs*DڪphLCF1Dy?Oٖ)~:^fm?bD"ΔAA(#ԩl6tSV !rCrW(y-սn3¬vZIbX,bŊ?XbFڜCW XќJE>'5\2V謌a2ahBSPL Ϯ4蘠[~y"n<5`ZsyEmnب\x3hoDWSd6I@2N4F2V%>cps/cOU̬D@g4 '@7S㉁j\.4&Idٴ]&4>*8 +g'1$54mT7ټ_2u]wyb2w\uFc[>|>L&cvm}}8m;1n/]8ISKdL&e~PpؙA-fOYG6U?ܿy-:1b#>ՙ@Ś*A"*<^P~ ÔwLǜ +|6T9 b .H菀<Ԕ"e[]@$@ *gh'Ay9~30yL;9n~8Xb1&$}5 ա#_8Jx"J-UbX,--Zvqf$ͣVXk-_o~744T^{uᇫk'g K?Z'z78Hb1J/kT0ee@m#EG35 L1S ZC>{}"IcsNY &@3txTgr90M \NQ2qqLA @GC8A樢 c#kB0+ݘsp"ZMChNgkVMϨBI}/ewík,nZd9+XZ$Xc04 ;).$S"9k]QR¶Pu06H]NiLyO} XLʪ؆Ng!/DG5}+'{W+3b0ά bX,-UJӧO_dI&{}}}v믿^ սvWooGQ@5?-34R(?-yrIDnOۉt{iSvy]Y7g-4$ֲ+ +Wb{'z[Z}ûusPkDGAk{!@]5h1 +AFzQqt n%a|(u +-:OSn ,8Cn g>M0:묳BF{)~^{{|p_~+[CW1cw߽$dv:6f+*k('Sc#CWh26 +!6imּ<ċڊXT 񑃮[!Xmm8{-j#_42Vh|Ner + +ls(e)8DG4MGC8EfscT*o:^8J<֡F1uwHgE<-3V.i;MuM5V2ŮQuZuBJ<9l }齐&9ÀwybX,EEdͻKyާ>+VT9a„no}kwu|#Zc=Vd<>7 U߿1vӥ+~T DҔs RF;fjw@:1|# އvsk}ѳy>j] +n1;gGXFznv{5E :؁ Ң7.a=힕U5jBָˁ"}RNJ'T,^RrH[vf=ۄ~4'yNhB vɛFAM7A5ML)Q\yjHLOtabX,bz{{?F[&LXdIp?N~w^YZ~QG50Z ?{wSO3$}Uۉtg~pc  + }%(+:E.B34}1elY*4 ΑaB6͑mdVOKA,i~q=>hEa [tNY\,1<!#k`}Zse^;bTEQL?@O0 2V5糈ʩ(Fi[ + Ct4eTlWV^c8UA荐~h^kߢ9<~e0fX,bT_}RŋmYt:8qw޹3(Zj>1qv[n]s>xӦMNGqe49s~guV@6ePٛRM Nk=.(`:S%>Yʅz Vk +&khLҀ2ө14;9՞bѐQL1w|lq/d=( B6qsh)Zļd|.¡f2Ef<9+7pkr$xrBMcΆoDNEΏ栯l4}7WJ~j4d>zXsn6 .*θ + ?5j?U"wohgbX,b"V&xꩧΝ;^SNҗԌ R#\~7[駟_?o}ݷPW^yW\4Θ1cҥu^bv \De0Ic,m Թ H $=x6kl}>ay&#Fǖm1zj q k@Sv=-4/pVMV9ce| ~)^cr$07 u/1c66Ui4Wv<'{jb}Qp`.XlHxtO<,Mv1컒&:eg;rZcA_@}O]P xƤBЍh #ߥv"X7? Y,bXqPʄ3f̈'O|]wM6ItzN… 3LhJ:t!_CPn]uCWmn ʤP4zc~B8kl}ڥc7'c}0c&<-JA/rv +&(.m j+Px ;ydg&(@YP!3@8q_ 17wVU޷;#+'b^uyb XW9):' 9SVD6M)ΚHeaN2v3#gdr!H$P˃;Rg}m`,.<+&~yjmmg0fX,bMw~_68NP瞠ӟ%q~Ϋi[{駝N;Ϯ{̶v_[ +! @OÙ@I1qHXN5֛ m1 xlk3뼱;N3e2 JUt7N7ۣ%&vX Ku_]Vcq~šz&5Tm]!>+ڃtЏ8 )5 s@q m)FhN#ARfdJ@K^i]@I74۠5YGVn ڶĄͲ^wh$/d0fX,b_xV/|a +x<~7TwuWQmGM&kn,Y4;aWZ=lt[P(ҡӖU]hm/8jMB/Ic35k~}C]N9T:.M= r@3Y踦tB29`h䰴`$;`FP4&M鮺 +* 1:EZk$ot!D@Y5ah9tZe +Mg4k F{QSHDy>M^t&Klt +È;LY㢖>,eA8h| +Qdd&Kr"r;,< j#3N"!"t Z*ˈ ? Y,bX3<3J=n)~_h4 @@Ϝ9{e֮]|$ؾp}bB˳Ze_+ S!,R/Se t1Iר~,+E@\;1@qVÅ9D#Ut*ؠ?ѕv4 !BaL_mEjiû !7ALCo< Z%'Rɬ#a,HtȢ!"tVgK Vop/p&tJ!׃oh=SLuqOХza[ ~NH< V4ӎ> Gv솽!&8;\Q,bX,V颋./~Q̙3ovA=G}t6;wn'|'C]`A-Svy>S,-.Э)J4KDq%=]"? W Fɏz[~쇕cʾT;h$vIޖ&W@τ~c\@Mn@"f57lMaeq+uDJ@:502A5'cdPV𣺔بw |UZokWQU_D:4F_%f) k-cz{(3!`r@c{ӂQ!&1qBg# $R6~t"J @X,bXx _.s=O)<;ꨣ +~Lo}ݩYp= V Dr!/;N#@YIDBD hgn"g/&0lhHqt +0bzJMYs>r=92ۮMm͎18) F@RR`u 2&[MycOEjWDDLg_H  FTaeyt]ꡛ҈Ek ֱ&/gcU{P]ղ^N,ǯ +9z焚!i!!g>RC\1kSFh-'vAIe穕sp")1fX,bZ@|NZlY%\pBo4@Ž;ਣ8H9zK.u?_y b"ly=~WsψT9&4R$1VUFrY'R5ٟ F3 `-V MȑAUh2 Mԩ?Ϻj`B5. u4CoD2NDsP4!)={n͋cD#jn1SA-b C2T "AMM"nA^iBT-ϩqηСս1J;U.ʿ-Z +,bX,xiѢEopB+='px_w].k9C"RNsΝw4gwH1_U<+cH0^WOlDH2ʩ +s,YK] +l"g=h~u̪n}oT@m0}!0*h&VnE"-ۂ-Z* +֧EC")t2FZl qBcY::C k;aE 5|Ds Q4a qM)nJ#Z-hx&f\RuybM-sn JXvUj政4Yv (jmt+ +`bX,b?O8yuk'B͛7oÆ vĉAdSN:)젃8H9͟?ѢEN zTV\5'Ŝ,.Ͷvšch;pBX-)nb2+?"Τ)K{ -@Smt լT.y?TvC~q,&LLAY:@G"hˮP癀`h *RZhr(֡ئ:9\aXBmHg?ZK ~Rz/?XLRcA|zmN~|NO*BαC<(Ȝz;bv SaEJ% )qz㭀4bX,5~7JK/G?uUZ/7q vn +^dglO~.iL$?x#@z{{ZFs͟o] ųJ( Gs99kh,ՑA,nfxtDy{OTӎ4nMv::-22'S4r\"hP g7. 9"Dbvk8e0e#1y's.agD8>9pg$ءŖ噈 E-t"/_h܊Z0 \_& 2Q>5WOnՔ" e`YoMWՓг RbX,;s1ׯs=Xxq&W^yW\Qu3fy;W4Λ7K/ Qd=A~W^+(c-ώ]忦ˈ`-ڮ@h@*|{c9l݀ėY7Ci R v)rt誉y& ntdh~ɪR3fNѶZ;?/T Cf ΋Zi@mZ +b5<$Y j h'r`#D=?e=?BKALX\HAj L|x ,bX,k(=<38i\nQG544|+'|r=Sl7+۶m8}7(|S-=SOE?cߚb=]: h,%]St''.۩DI9e`"z! Y<4Ѫ+/(9Ð `6z44 'K%LZ! @ہAq4EXP2kL)I/a +S\tƌ 1m!Hg4tRG2DS ?o<:ދ&Vk9‘A CpT$x:'w3h q(s5սz}ZvkǬ'ELdDa3?1>625IP鲓v2E~Srb0⬁U#*jdYR FmB9ͅ:9FYqsYm!Hg4u<Bl;7h+àzbq@;HԷ{Sh}sVqwkGɴROC='1fX,bFKGe˖(.\/ȞAoP;z{l8"u=\xq圊/ZiZ|y*[S g%澿GЧn6F cRuԷnV A=TfWǏ;֑&tSDV&Y9Oak>&?]u4W1;-Ճ"$:tMvAp @h- NȆCM8 m{m >u0KھۨCڛ';LMv6!Ůp߷AI,bX,V+C]fMngϾ/w7^pQz`Vᣎ:9x|o+o|ov@7"MQsi7>neQpB32؈n< B̝P"3%]?OMO{b۞s2V4E0#xlM}iHn☔A%# 1($tK&_j(MD&_ϥ͗K:bc6oF HG'EvHP{:45)jY <,v64:nabX,bo}[ԧD__GkU9cƌKV +MxꩧV]Э)Ѝ-Jj!Cs-ώX,o]@g4H)Iǡ1l$i9׽nZӻ+ ctZ͈€j-T"W8f $Lv3D月!?y`%#3R&#<$ )ј,MOnidV[Q=;L5œemftDJk31c֟@ptg*Bd^ˉi;y`CDuO+4bX,5Z wew'Nl|C^z^[O<'ָ?4] +P^t:~G#PAٳg7>~kt}T TMb&91,Ll`(6הt{ZSI6.N:,㝢ӦθjIb,4vQRQ4p ~NϑC'(9gP> pp0%/S P0)Y3ҥ+rlɡXuPCٱa.17.'d}ބ儴ȫ圾jXyR=TȾGl~䲟]abX,b*N:si⶞z꩏}c\\@o޼yܹ6m3]w5s(#4@_r% .tUglGv,o4gGO.օ':E>fҜSe!Њͪ3V9:r^0[\{}:h~'Κ۔jRov-xq/nON4l>ۇ/1B9dXI+_DLwb0$3YNX[ za9"ˆ bnwvR}E~>ٱڛ! +E\#8q@c6Xu, m~ܘ@X,bXPJnYf8?_ _}4^tE"hѢ;:¿o/W\d5:ZhSvI}y Af0nّvJ j;r%a(и5^NƐ V!76^= $xt Of.pu;Ie;Nm@:9H{ST2&kgz*;mꕦuks;G3.::{ N:!Y-̆~  ^kZ[,bX,VK+?_y啣r;-x!\s5i +^xlꩧϤ㎯~v[S + <+9/= m`V-G1'Κ{f[@GG@CS9{MY\ҶPw-Uࢌ3㕽 했3 ^A`4sMlҘA\9(H +tsFHwAil-șdَ& /NK}(8n4-j{=7/ ]@W2fX,bFKꪫ>vqv֭;#٬8u;S&dɒ>;cuttDLF^ݲb]N-hy+nXZ2^ 43aJ{.}(EBh4[uF9ϟ9 )QTNN%[qtVēҳ16Η +$"LbY%2 e,rm94mQ "$Dĵ)=~֨e[\pjVF<(]8 Md]RΞ]/3fX,bZV{n)t}kK/mM0=;c7@{ァrJ{E]A\p74vuu-_[Y jyV{N[!տ]Jͷ@)(6+aus \[_<&m' j"+7A(HpȂV(O0?ƞs:ɫ"^%93 +g 3r3gbX,b@_>7.ظqam~5 jcWPMЫV +M>ZλۜwwqG#@5wjZ[SW#5ٜOW^tﺂuⰌS1Ƹc=S44Q*: &Tib[tgXp fP+"BE|rT0J2| kcDP%y5 )qtgGpl]7ܔJc>bvA#A% zYEѓ/\ 2X={ /'uf1^];$]0`3fDqpl4`I22jC- AkH0Zt1qC"NIq)119&Nj|\"-5.L@sЕ,O`S@:=Gч.r1UјBkP9-|^qO{S: Ř% =KO8L]Ӳj}L$7o`lPY.^TENMi: ÔDbX,|?~c/V)]tE 6~;ipV hSvX\HX(lU2]9y5޵ّtQhh@{ڞ خM &Z9 깋AnΉ: Cݜ9)=)3 NtY[vU5#Uu(nfSn7uYz -t0uwXl \bFV'6bq\ 6]nre?#*šjL`4Vi!Zh4bX,ju >~a)8tg3ipV =вgG}eƂE[D9fv4n{և7<(01У8=vAA`.uu>|,SP,)@tBJ-6-) y nh@GwWR[Cs&c2.ZG΃XM|Udl?0ea]T)\ Kh8H&]m:~Ftgp((9md6V;L_=AcR3fX,bX_nv񠌾<0ŵShv{z5ST0W=+5_,bX,Ղz']#$JPЀtin (rn~BzqA/4V v 2ږ5o|.W MØE,Gn+1_ ! [y'jQ$\JϰE.it+`,՞Dwu}MY76eF 3h'ĉ^KnFРqFW˂_P$z#d6@]kbծThbX,:ӊ[X"~Gv 8wܺ}pc4l 6> aиP4TPgil 4Mc n +֟bm ˸g{.\ӜAQ1U[lNF@3FmihGu"i2i;ih|/yn!shAVkN@?Z|C2ȯ4eSi)*Xpsǂ} {c ΝPr:BS]O#h|3e=۠!2Z ХychzMa7Ɔ J8H'! Nh`۠q26N-_PE;r8gZ~O='R6F,bX,k'Rt__??Ao}Scns?4r!\sM$,BxW:gq0@cuʖXj,uփ1g5@']57r2%%2ӄE3:y+2DHDuTǠR*$[uIBD]Ai(UD sĸktNblQgs^O8¡5&ZÈRGg52Yjv¼)MwΏuqdhKYa&0KmgN T0*$(`4 8U9A$L^k;kKQ: Y,bXIW.U"tVغèZ^ͽ>}jd25 tSO=5xΜ9N>={n +}?Өn}Nky?/zwݒĠ2Q.1bEA&VЏ*!!zh:C%R+-N"ݩ cčCR- d77#E gPূUc(c޸1Xš>M3Ŷ5BDm8  +Ġp 03cX翍t @ә@ }4hfG۾MDd3ya0g]%{wUu=WfqTL$rAb"_\C/F f{fEunNFČ֋^mZc޹*ROx$W{rP#.hak!J V5ix̐.yTtlx F@RPh99)F9['ʾ#2y-/S~b/Qw.<2nw(R-.W&lKp nbO4r8GJLhH8*xY]@I(ҷDM,|a&X@3 0 0B"&>??ѐ +h0O.?g f]zO>~'7nLqp 7pCf&<4Gƶov7>F1j[, pZ +",E<`F: +fgňhd*tXBPXtyvx+܌їădYz.DX}4̖К_@S,-2IgۙGzC"˿8[[cU JۑgYOAJ2M6߲)+<],CkX5%fh,u(TZS3y݇*t唀nćIih`R&}ػNn 2´}4bXclg#'.Z]Gq' GCP.yg`שVX6nMe¢y%8X@3 0 0¡c83g麀V|c?G>0>;v&o喓O>!u {f3Pߣ}C}->41**"d:(8fG#(ؖKN>wּ"{|ۻa-HSNgE)QjKԆL`=AaL V P+cjf0bf~(f$2cFcGaYz2Z|Nrj0{@#;e4 c՜|=qbz慎@w`t7۫/ G#cд|40 0 ,$ZhNOO?]wݮ]ǝuw~0I/ԛ;wZk^38X{g{o_]v}E%g&nz8tٶ? +S!qq+tMHFu'{S$uF2?%e>!r͖<"eRҡeGJ; +=[d*Q[C!KRK7Mnm8O&I@3̕M t V:Ka;Y+ΐ"Yn`Y&9!_iΉ-dՅ-|Ak|8+8L'N>چojЩ$Mk0S$9# haaY8Џj/;W\!^hOX2bmo&,ķ4  0 0 pFګ_{^7H@):趜}7nT /Wz',9'jl9ޑ>0O=X͑nmw߲n{uYЂLWz>P@u'0KF@diA +AI@ C@6Ss*Μ` +hgf0/p U=XZ"uCm+ is3]f'M}dwqL[s!eFYn+f[dS|hT̨v,}L gJ@ۊz8\\ALg~nQh\TDos)( 0 0 pطoߛ?ywwdSO}ы^t7V՞n(詀q믿mφի?OuzͦM1&W^y駟6%9]9-7] mIWE;#Obg4ėqB\6ݐ~gыϜw{: ڍ (v|5($>336Y],p6x8 Ml6*Lg' º*ꔖ\e|aؒM˶N,~q'mmiЕHCϕہ#8 n5}^%3ɞ&R~b8*w{ow$Z݅tg,aa;w[nУۿ/oڴ^]Yy5 /(<*HBϧg̊<+.]ʑ繲~һmZ BOH4>DUSYWM0%cBO"Z33OII6pΚW{_r;$)f5uvZ9^zqE!fB{EMCnWh[IA>EWz* X=(Gq@5*cC*U``eg`j}2ζ#Q| =\8|O *;dERB$$85o#I'p|ǯe0 0 0 0޽l6BbO|+^qgH;dƍ:N8n̄}y)9I5/ *1 +M%T "7F0]?ggee\8ZkwFbR[5gg0Z4 jkd q(\xmWRfqhZq:)F= E|` hA<äZaڔFF$ʠQ@M3^[@~ +2+͉<"zj1m|bO 5_Gh{)`EWDI}/9-UbX`< ˝P40 0 0 !wްa=c/ +6-ϕJeNfygB()hygРO~Y("M\L95$3*^sU[ hI#g:J_М"Axb{Q뀺ȩ]϶ϝ6^? ++bXEsyc2YT0[@&>_f8{/uOS`hjq'b1 +hL%sI`5>4]e $ZrHwF4nyc3"2Sxt8S haaaf޽.JL3 + uZP(`ŴeszIZŚW\>;+GΚ_r\v4<$~ӠSzYb;%Ǫ.0,x 1ESIdO" dBx^ガ.}h42p/r8SP 8v>?T([MөtmՒ Y.Voһ. 40 0 0 yrtAȁWlyV  |^ocH@>d@ ΁QVxs v*Q[i V)s!S=#\s̛۟1\z.VLV{Y`Wmkh&Ώ]Lݺ`ϛlQI@ۤhEm#8CY0G &".XaAl5㢩(m㶘&Lk鄃=2bmffЁT W{OdZrJ²^aaa&YQ|Yz>:;vݻ7 q4F ~pՠ07>wYU0 rG۷! +h8`e^.$&"+>+ؑg [@K+jo{OHsfaaa(tjǜt8zժUy GV;Q⦭i:Y(AO_ˢ.) +ʬDde!BӛO)*jۊNJQ4Mm}#&Du{i f8\g` ӞAsDvHh?:~BhY 3׉ݏ5ϝz+; haaalܸ1Yq 'p _|S@zNN0HUVx<f|}M(r_) z@ SۍQ:˓SNPNҐ~IRY/܎ouhj+qE Iz84vpBߋ`Ec.6 X@3 0 0 0e6l{vNF_(FFFscŊ#tbsmQx|kN@fm%< kqWC$dS d*R>nYUY냉lN+0SU3:UfZ^Fii0fg#J;.Zu*Vg O]֚vvÎ`W=`kR{ݎ~N~r 띞+us!,aaa53駟~Wnܸ1U@gE 4θ.a=p}/_sC5!90$ ;u,frj~U:+,*QK)=aʵa,HbKGcNuN/5IU\hwn.ymP:%Y{2:v95"v<-9m!K^Z]{ȮpGJqw^[]2tha|=faaav}E%g&?S8`VYtҊA=~X@D6聴"H_r3ߴֆ.FF %iBuaV1uȪژhRl5$8j"I~IȄГ/XZ#w-atŚY{j+T0kiTGGzu[tÿhSgңaД3Z@iK v<8Mzj#EJbCkMf-~$ ݾbs戀!Y~2\,菏B@/xU#D3꾁_ҜOT=s= B40 0 0 stF9眿˿L.T*X@_߶~<!}_D^6!qWxyz&8&cu~tG+"(@Eh +hH@zg +䪣a긠Jh2ؿ<2dR +Fz%ɓί(![4"P yB;@J=^/O?e;@ M0q7ԃrae,i z `6_-²NZI#ŧ +un1%K"TUSոl[ +CDsQ0EڮȟM4ɴھK kC:d{^7¤sWRU` O:^\4}07hܺy:Ȓ;EC@j]Ӯo/ԙA4 +s+,stN] haaaf޽{Æ s>=?O +ygb=l쭏tvUʙ =k,QMɢy~X讅2-3vIz->P/ &+3B%n(zf[b 4: K !$![@uLҫė( +'e:<{A|KFF-e :W[2+#Ɍz3plx04M&΍.( k[Xi]40 0 0 3DlذaӦM-oy˕W^9B{S(9FH/O=t>sM֖ Yr5l1gz&r:,)YDV@k$I(,TY=@!8, +l5vmRfR@G&Z7B,Z ИVo--@wu5~0q-vSg/ğ&Tm2j&D_PF ;g#53B{:D:@ lpc bVh haaaf^x}ܤ0+쳀faaְf^zArS?iO}pd,MսN z2_ѐ~ſuK~K}6?W^2m5! h0hvty_荛bmv-n տ 願SY%j#N v5*,&&'k) i헇\@c9S.b=s^HnKʨ}Ɏ@Lǣmmj1H@Fam;b,c-O6͆X@ӱ:֠hLZ>S+OMv haai h5,$<6$Idƨg;֡`UH-P tyBcw\+NyԼlq&'$˝- dz޸uIyRJ" +ASOJQ͙ki~v8mn 00qbS_Z~ِ^B~B!$w L&{'h:>GBloI.8pu=3f|lqY$ +hZ>>. h4®O@ޙ>(GޞY :,aa ,װ^8ڌ&Fbh8CTzL!zea[ݤ-H@O̶5)q53:zvsA0ϡ~ +)]!j)ݒNϴ5]rNL :?+=_!Ԟrj\ZNH h=_,Q22X'',E DQl[SMi浾0[ƗT!0;N&I4(Y4ԩL$0>+A +n,ǟJ#=,aa ,װ^Иb[JtD4&Jrci`5x`O7-;3*Y]ms/-DD K4;j%@\ckXbl2T@@c266ZxQD~\U`jcUMHX)8`Ѝ>({_ nĆdZ,ιOMXxRޡAVפ9qZ&ijӉ@ |JS m۱ϴI!6UI;ړBl haaiώ;8p`0z5aYoRѬ9geTKبӆ +|B0?h &0K4;I{Do@끜E.:J~zhT! +Ԃ{P)Sˠ6obQM7k1u3iԸI]ӨOV4bvt`DF*Vz ;틊6iuLDZ<%`-[@z쏞g2I3F* IH۱}<,; Q]#G#+ 0 0 7n(:43̰^dCX4qfb8ZǙ+F@:E#tTd 4nd&W̥!\5(O7K4UN2=` LHc +D'hn#|#MC"<"$̶F1aHxftui)InmҼ3UAZ(`#`+nܾ<ǥ<2abSY-)%7Sb$v #8;i)CrH +hlqntjH"¯ 0 0 3n7 +juɒ%}O~<ϻ= +IBӒ1=hw-tMFےZQZӝbnh/ɿMto#@ 0$EL-먛H='dMt3j# N4OA,80PE=͕P~S [Ӛ JSGQZ0y>g59:!dw)v1Ѡ;[(]73 haaQuY?| +[lhBE t UCd y4a5euB*:Ϧ5yVunF"kI+eijM +(|S. +ImCe2n}BDW?a (ի{bf@- I}#R6`d[=o)L/.u%X5 + vR@C- S;ruS0T Ť,aa;m۶P(<}հ^_="he'أw|뤑yBδ`dZ,#zU,8p%-Q${Npcp6H21 Mtg\of$W52]$L/)vwOKT$_hK h__P +ɪ$2j;JnN:w}P}B.u~Q732aaa: oxÎ;RW<9zaɚ0+/;`g DZ h 5 AƟCO#g +D@ǚ:uK46KaSaTIZZA)A F7c(4&^3aj09K;'j=KTK sr¬6Daw&ٰzxX]u^_11><z Ѓͦ2q o{ 0 0 9gyfVLJ?}}^dC8(B$U@C?{oƟ',8WQY|_Q_FVf8q.Lx׽mC3id[ymL/~:F"-8Z7Z #t=njw8PY +G ƏTa퀻w +v h}B9%nZFuRv0'[=ͦ2 }r`0 0 0⤓N͛/_0Q + L<!?_ /myYHrf̰3'XY9IFeɐ:Z8QSNC+_ Jy7匙4etjcPm"BS@!8FSY +M46W0L /~qF'jR8PraZA=Cm_/~!nuBP{7Z`^ $SP@%,aaf^ر oxCVXq]wy< s4z<=娘Pq۶;f@uuYJ£uEt嬏sz˙*[ hMV+uϸ +h8%YQE f&.˾pD@-;ZKm0MH5#"P.0^Sx`AE9$&'LΩHwiTcnY(8 +Gg-*N15sz haa//?}};0Q w}yo}(2]se~У hӢ DA^ Kte%VZHt`K:]_ncbU;) YĈ1[Pjhό- 60L3w6˩d:7l"sbM}NB56Okari>?+Raaa_~m(}]^uqKN(rq3|ile&d"ыQEd0 +]|42y5ΨXԒGv:q9 :+1^:^|UE G}6MxQ+8 NYObNmWB@v(}#\+u7omc!ͩ~L.W^nX@3 0 0Lw8S''SB7{W_0Q ͐Cؔe k_6ⱃ;r#,3JIrfj٨IvBp7a/!n;S:خktrE/%_,^aGI&詩B*} +䗅9?ҜlЩˠTVQ/+E,0ܐ&0ۑX$k:[0͐5(Y<M6ldžL:NӧJ\4S۝!1θf:Q(#qkT ND;IHE\,aar-\nݺ^Ͼ_jQ$rιk'm7"d00>qu0ע5%gHRGM4GiюZog#/h< +fI +`Ĵ}-4&Q'36pn+j#u_1θfGOЭ̼6!V>; hF@g Ο괏Cq,Y@3 0 0L9Ǔ˹ a`ӏ]|1є:HpEGK4a5d sCO?qC]*F@/yd&C)bN´|tm19ՍꝖǚ+;T@AHMHO0Ib:}pօ5[H8xjGO`$.Qꔵ0g1aKY@wm?+OT 0 0 enK.$0zL;ﺡ[R +B@ R~VACId;[@";H68_VL6jvԐSWĮb+veDa"4g7r +Ⱶ`0 0 0կ~yayá/ƞJQEׯ=(*FխwJ+ YfZ 3R4O +hHF#Z PN3H@7W +,jYܓfo@vh7"<#-Vźl589iYj> uG X%Ju&s,}Cr<2j Ejeb haaaf>?-HVykh0 ˜hL"`C_S36QPWI2hiQڳɑhV;&ĒT4 )gñ؜4n:u$YYzrD|[g Yک\]-gg.&G 8hG;0,ܚTѬCޖ@Ł:9Z<:YOD&H=.> haaaf>{OGfg|qt@+~UѬ(v=vQKY KFDJ1hϒg P вaFfwKDU5JyLˤCS?g;YY]xɝ'/oJv;\sEbh`ߍ&c[:[l,HQm*^E!ICxsIY> +i} tI˓ҤVOC%X@3 0 0 0{o+(:IxuЊ۶w4 TY|vR'fnw26?FkwۉCZQ\܁Ϊ3# C-[w:CPjb5L+"ú2rNE2XκwV o-՚=I@ׄ_Q!-.kG=}#i~IO;2m>XK@+aaa0,~70x?ˁ Pܵ'u` hJ#*Aػ#1%4i^NԒb;l'i =\0;T4zG<G) X")Qs41&|ibu V/AKIdu/q ۱ڔIO@c/ȉQ5j`C2}/ +(e^9GN+%Sq؝40 0 0 3`X@#\vm??n-0ELDzX\H-@sRj@|Gcgn7Gkk+wgG-dP%a`4iϩ-gkj hB3|Ue5ҲΙcP/L$<稲*,hfU8jxJ2L. .y1(频na%5kMovӆٯ-CkQ@{?j8l&N4\,%?K@m41,aaa'{aVH!B M-'ɨآ[&KҖ&W3eYSFCxx"3 +&clO1NKNj>.l z/-'$ƭu 8>eKeԗ-ՒH +aaa0,YHhm31\M/-ѶV6Gc4:ӎ϶;6bC֨r/Bқ^#svx"v sp0`Z@ץ:?IP4`1QQS躕$Ή'/eR";`OL' +l*C\׵X@ `Eܬ-M5~.] +[=p|^˔4ѭc :PǟcrP6-qT 0 0 0a}5U艨Dq +Am.@N˂j0A(-V<_?t/qpg!}OE^Ӌ0;HOzZ_8QߚTmdQ{L񁨺+X뼼o2zk&Y1=K@3@ CB#N2_en7FdԮZB@6*VN +hʹ 1 6ȶNNN85["C\4Z8O'Ĝsp~~+{|QSC& haaaf>vhg!Q%DIۉHq}пg՟(ݐ~eQZ ИJ.BlF_Jt] 㴌#rIcRIcd\"aşUBm/Zl@tǙ#!.2lV+_ʦ +z;S4n٤KZ +8԰3-Bknq>D:$+'_Pb\6$;+Y@3 0 0g˖-^x?<0L:,)^,c`*k]OMMEP 7:;;A 1I5))HpL:厰 +:0.P,A05Бuu)kږe^7{SRsMB7! l^)_FE-h81YЎ'3! l@lJ']^An +9S,zc=ڠ+g[47u߅@m7cD9tdfFDNEl6l,LG(u|;CX@3 0 0Loy[rW[n?}7# v$  ch PMl휇84ÖkǐSq \Nh:HUjcuxԠˠxQ:KiE}5F:WEА^ID5SG.t0|'TF&"~jbwthkdAM&[Oz468/AkL} I@{3\QB'%nlUg]p_ʴfjZV@qi<h(Tn'e{wkd挙/Ua0 0 0=۶mۆ w d=?>>f}x^;ι mMؕ`^B`M!f# cF0/Ub: a|56Tf5xq<=-wJ;XQ3=%z +%` uJX9v; Eu"m +ڗ DkL2Y%Jlʴv ,_zfX@S3d헠ŗTu~yΩǒ&4T5XuR=vB6{Ц%T?Hǰ65 Q ۇW<-#^)| 0 0 CH@7|+_>lout3 hfa}Ѷ+|=wIKOmwKjdG@;m(glH4j<#rQB5C (@Ρ` ֆ,nq0-:Pa~֮\ ^o{u*@mˠ'PЏb#MFtvDv/hjũ.WAeip-X}`).= +8ۓ HiD;i:/:cӉvÙo0Cp\'.]a0 0 0K/;\fX@k\?uoޱ{)v7ݙ_@rDsYĔuŒZS +7$WEF +!O',<)gE%[ו-P<տB?T1IڕWn +ԟږAV͌s|+ Ѭ1hAce% 6 M!s; F#$wWa2ꩺ@qx4*_J{ OE}趄ǷXa0 0 0=$)/{6my_/Y|?fxュXyڭ/CIA X,R mtFĠtbn! AZ3u vKq$&/?OCzXbdj9 +-SzU#T^:ij#Y B;O50ը}"h,U`>%Mw|n +b;UDQF'&f:>;ka[ haaҗtgvq_[n}[hd/0X5 Cȁ0a~ HDQ@N]8u3Zq*2!zƟՃ ]A.}.-ų/d^-4L+tJtVEFZ95s0VAO9E4ѩ.=4LYW@xDZvġs+aqdw̟d< #3BVNR@Nyv 0 0 CZhE]}+;g?/~:,a1Hk@}Ŗ%F +̶{mt]lvt {#`l8>]rF5Re,-6N 4nɢoG@_^]% +}eHiHM9.l7vd4x\P@gթCmO6HgWPoڝB4{<+M6{`n +C +hu'kT%mfIHg49MhN pujͬBaaazEkXzwj?kE獫 ,Az|S6O}a%g#N3:Q@ۥ-pF'z@zڽ0)|iQikēPM$_U<=dڬgu~8ǠdP6 oʠ.~YlBlмːj xm݋aX'ANA{s/+e>w,ˠI@8$5M32 +h*fнz-, IYI!.ܰCuY#la˰ &CQ`)Wm8Bg G8+N/ +5t0s$S(|IA-mTQHj)(xN k{1bӓmv8]jf}Lhwhj. “VLrJg"}aްŇe0 0 0} /OzRiӦꫯkn|ŷvۚ5k;J/,Y5|NR@OɢkQ@! +QX.j%mg夀F +; ;`kKQg|]0?nkܘi3 LYf$K'O: 8Ɗ"D!xixaoMEhӹ,6/%. ZBWjŔ}!1}/`,aa䜙۽}BK.˺1@7,Y&qW@zyk_~aI%uY@` 4niYOF*E}FEFJbZ& zp;sP, +dӬ^lt|v/椀 tNILо%j0jx؎2;wl)ٓ +j/+'œ;i AK8Ƌʠ1K!2OB~j2 haa9g&<e˖}[Z}a2?yOەMME]mw߲n6>;E a,ZUG 6&4"# $Lh;Lv>Z_D solʔs~q&mmgI}r9 h:?KRI2-.Ls` +&>=/S%y8+r gF) +U #HR4g)< Nk 40 0 ۿ湑^ziW03oo?᤿yoSC#uHVj5Y$BpTF›,@Dh%EbGG#bI˦ :@9Qj7VSx/al$/L :{,AcU׏ZgTpTf~ٞl0uGڶ$TBG9iW]6jfB;Q34kpU 0 0 3H .׮X[oe,X@*@z Yi矺|pC;`uKc}*"ls8XYf9Fi/6>:LwKD&0^aMj%kwE@cb\bl͎P&i2ꤩS _Ol!DVՃ +5p{kP #ue0s*ƏKS : ҫ{O*b @L$48vm΂ +_D2faaw;K}o0}1η~N{"L]YI`W/yŖTID0 MFDsI'q$ krBHh$I+jV'`yꚿUڵH;-팳]^QKfd>5jMeZl> +TlO6XFGVJ<Xj +D;!&$jEX%򎧟D8A;w*2=ǣ,aa{?BF}:/?j^ +P>b1 id+ +h#O3ԎVglw`TM]_)쟧Td,4;uHRL:Hn7l$뤝%Oƍ2̩boGU +Q[ >8Y +2!4Ff擜1Tʑ^\ޝ@ +=H|QzV8Hf X@3 0 0 i6_|^QhfQ_\e7 Ωfsǟ ~pa^-=!m\; , +j)Z :[4;4[q;4>Vk-_R80}Sa\жXw mmх k y4հA~V"hFCڇR 4,o3A~kdjx suZ]#t3ԓ'6kyωr<.V+kx<-afaaq7F8 +,X@3&R]ȥ?{o%Uyދ-#+kRTf=`y8nM0nn0^nlȌ/H :%`c0!1`Y6(!T$R*Ufefd,os2^ċ[fJNo?-}e +"0LZꜫͿ3C,+<[DXVuٙ~I:Bb4V ϾFg'd(R˙Izo {%c+Y=JOυrI_EI%t+: +XNeN\ t]]_6hhE\0PHF돈fn'.;שCtʦ;❩_l+++ykOdoBG;ЀȆ?kw[xHّz%zRvcY xMRoQZ*՜ld^T?Lc]@7}Hؑͼs^{痎7+o^j@L.x2).g}ʼ}9Z"N仓rI1ZoM~Őm_ۦB]_L[ Tz}[CAeT(yA$o ϖцiI.h6k5/%x+92peDh@o.[-~cNi3𾃟sԚV S(fLV۽hzPNSߨ^˜ڍp{Ez:>/@ c{UUő~X.z蛼W -ޏ/k5nC! +_U)+Z%]n JÑv _tЪc3E̤[ +?~q{o -;cqqUzՃ>8p'=Igkնʏ~GnuG<ꀀP!藟?O|6$;(1u|]}ܱUKrL)m7/滭RCƹ|)Dn$җr/zݎcnyfm {L ݾi[o ,TܑZ.{bNiFDe 蜬14&+M@V@{v! }zk]*cwy>B\^!\!S hz|(y&2!IY_E|ve9r~闚wo( \mWmj /}ld*e8NGIII[Gȳ)%w[2P@O >%ߦ*!߅v4ښ6Jh-fw`~XTosޣ@HgTԔ>ݑ^Y%S357 h'I[;6~vѱ#\dګSf`YH@WJMZtBɳ>l;Py4ʙ3g~׬8ow]8p?BGxs}w|=7g7J@DV + EvѱMU⟺Ьb]/x yu^m^SS@'JvR _R9Վ*<@H+*nU^S_o~Z?:%jEmUvfEHέcػ5!{[uGΈrĬ5!?<PsGt,A7 +.O]NVd tb{B- +V8X@|$`|+Wn7Ev(4x R ,~ga[|*r4+RA SH?r)=ADpRL?l(ߓJu+2n+߽KGG[J+/LLY_;)zč&nQuEkI?ޟJJf^]壢>S"()Q˶Kܕ,VײFl$o~篋JVa?0ftrv|EWUniu,:I:ö~9a<`2ǿCW4|+独|UWEL$y^o{BG K~\g{+}9R=[ 1ʐf gNjy#)QQ8zZHIqcZuJ"/{C|>YYVSіryAN܏6Jyfon~Κc,Cr=jB;՗.W'a&6K-e3Ͳy h\8Z:-!U),\1-2M|ni5м&_ki{ʿ52_!hE~ӛwsǺ{^Ww:Iln Tkd< pt3"#9?r-%Y@ux-82ٚFː8Fč|8EuϾLxa;>wO.=s"־ˢTQhQl3z +hwʜiܖq/uϮp;pX{挪>"#'*=Dd?Jn8/rvHVKSCEZI@EZ}Cs/9_n04' Ľ^>vCz_@q氀ֿCB}hEO].g<8e]v 74@@/EȯZ8bNF3QQۃuӦz1ndo|7=OiE"دйfЙjuYOG~n'm4uJ\lthrMFsE,R1_[gmJɯx6jR^~}¤],<M9,v7廍nũj6Gts>ZAp9{8m}8ڤbД'D6ݾԼAY:dneY¼stdN(tN%Ȃtv5my 1bl'y N`b ܘ 3%4]᫂p9bzΦ:9N=eH]+ +;P/6) vUB 24S_|חJ1_O!f| XIY7ؓ@&nЕk48Tl"6P n6/&F:hT%qiДnYݻWzXVeʽR*ԆL +螷|]!iODg#[ĀS +h.Nm_ʊ]sZ?0&8}>>O%~ xk^sWn {{{uA@ 4\w7߲5T&¬VNڢsgRRAR)ݹdWyI΁Қ}d!k#cNEW4g6h9S']CMھLtϊgި_P^tv͋̋!ĥ7 ܘ!mZ/"̱N@]ϩ f7pPH +wbӣx˃Iߚoh eb)"ӿQl5GM۽f!\aLO]wy}JvŠۛq?;so39c"pw 3g4x U*$fpcɬ[o'>a#BўCVu]|MDec+mꛐ}V[席 +B[J6Y<%nGWҹ\ĔqN*Ş'x{B@` >|W\D2V&JBKhW?H@9[kbZ6SJ;(;yl/O*[}b"fI4StnȄn-'G7iVibDf75&-&/ݎB+Bkn=9Q[;6Lz|stv8ۼA_~{Ph 4|o?<Py%iځWRY КYHF/9qv;78Za'H4`7Cˑ4"la12ΩJټv'S4]N6&n,m cf)n)wp/mjrU|^1 h#MwD.&+NMJO#sm4 T]o5:o[}ց@@OV@Su2 hnkw9U5[JuՔf-ZߢLNG;}RG} a[(,X۹AI\Vm :R^L%6 + +:l0eOm}4Oo\"&5>VelǞ8yČUm < '4{ho l0s@&PTlzA8YH@s KeU(.IOZ}4=ayҕA~PhP9{MT( EwZIdzZD3'i9f_ƒ)&6m|Mp:~$=("R%ȓb0!{L'+-7ۆ3fŰBye#`ʜƷ]7 IϛP /irB1]pd{MSdiMHzx=\AlB;n;}' 6M%3SF^^ڊg qYiAvsxzgBkxBCy>QyQȮΓ+n)1R)xO?`_|__NX?> L1 h"A;. S@SUUVzJOSZ&MI<ٽR_X:ñM@_nJa.6Ux7=u[D7]YignDjc\H{b,gdT0}pXIE4PkOa48=y}:넾w_/| `@@07'OiI{a3YՈ^7@ґ߶ٜr 8'dj U2 Kg.*="ΥG&'lٽ!bb>,gd=v2heo6b{8ʞ 7!EST:mG߁-UN h w + hz=kٱ8G/W}B@i @1m]j:,9K b~4Cpep ܹ٢aaa᪫ԧ>Ӷ\}/zы{́Z W@"sIw3S\*VƂ]agJң7مέ?=毯/*IO +ѯT,ڍ*q5𛆁iN~*O!aʣ]뽹O#S3G"eU:3%nx~՝("^Q~4TPF@Tz6~n +[~7<~[җtc+,>~8uT/+bg 4!11SjvS?>ɶA=SMP9Dɶh*W +fmFS?J<6x`&}l] )"1h3dZG/Ϻ!IKxP#eS$sv<t~/ڜP}Js]ql/ԯ;]=_5hFoʻvzы^ z#7s 49Z|ӿ~t31nt 7\6+;w\<;*eu+nUGkWtL=Hgk>%SRѧ4'6-gGogdddzO#LmJ'-HL_3-@uJRx٤~MEZA@0"OK92V w޽{ǎ<3g<'N @@0б +3A˽ %ֹzEš{DcBE4szGL UrylS_EK"l88[" K\ʱZ"n+zElzy.{:M hS|2=2 蚍pSbuCPБX=77]e+<oOj%g׾( m۶og> oxLZY|wj,Nh4u]wm-,,<#sxk_w{}"?c:vrшgl m%Cw@𩋣#$ ^d͌=\mx s)/KU93&%!Sܰ߳2 '#2͐PI_y +:R=|$Ыv~M2ѿ4n܉d1ݓi% \{'E+ԕ2$I8pdܓ?8333}0M% lFG?dtMs^{S+px BU3!h}ܭ.,yF夻?SY_/D@or5\M΍ +Ex:Yai~Ye + ~2e?+zŢYKZ=##*S&4.8jl>bn 8:{=nJ@79ɿ!qwt 2+3?5 IP~K/ +pѣG7DVٵk{󞗽e}""\q =M Vlw$和]*f^}t|'thr?/n%kBdJ>/Xzn!w heS r=`[!'җmǰ}?>Y-AΜS⋖ $ߚha즚fa4 \@tf-i>ioy}30¦v7sn%!t2ֶS+ʝD+"hUW]unT Z^r%x;v޽!'@ (u}n muƘlr c\,2>\T?EK5Fo6)\Gy+nG`VȆ]oxAw?(XQ%+95#2';k} llmnRDzjrMU._4LK[ql@$28),"c6ѬtiѴU}{Y4sZtKi9OB95Ր(h@MGSu+)A;!@@;v#Wu8\^ ^X0&o-ԃ1(b]rI7iBr]]l.d5_5t, w 3pXh-JGݲgyo}'[G%[!&MMO(uͤ5{ucƐ2ltAϾۼ:7\m#DV@G $틄Z:I EӘ*y4mJUIČ@4W_g3n ۧA.5;]Mޙ5=2$eHU1 ? ̺VonV@KGmM h\n3i޳}Z~4x+4-M鎀 }^Ŀg HO:}o_\\t:-[l׿wޱcT @;wfY RYXTVcY+Fc.O?zȉ-v= Ww$c'-:++2ir +2 Saȥmr̥ +)¸ן3vj$ۘ*W3 j_3a.n^f@ݤf$I@m/\}\zގhw6D"u-.X桂,YRϴzg8!)hg`'Ij7LXaEB 5]7`Rt:v;I(2 JJR}L hcϒFSn]Q[H@GMh]q)H\ftvPsJ@U215Scٻ[@jRMf'N~ġp7hlfv^jPʕr+g~C\L<~N;)th3Eـ,|S]6oh_yYUD+yF]\j8v-C +hݱ>GgY/W +4 "h.I97tifտIŢShvI4# CP^EQxùVaC͡w3^G QQ__c ɸ-011=":{#Ehਚv=+B*cmp 41Utk:7 +#W[ݣ jMeGF@SL.o}pȌ!RԧFܠդgA間OuRl6ݢkya[}hdF_)6h +rW Ym IPRYd4=e-lkhIWOfQ]ϩY&0!-cw9@,$Қق;,- w Ϊoo+ +H27V;d&"zi~D+&S[<27&;+CzΚ2ı؄2]vGyzۺXWBж fMF\^{Bm$J`'O|׼/|Ν;gg o6G`ˆЗu31uȳf6Ϙmɜ5/mpN-+lhsbYw{W#ЉTMm~&H?ѬoLC\1m L[![8 6&{׽*vM(ǖt[=A-׺VYtwo ސ6׃nEnzѧHUmN>Nu\$IwvG9-OAЇ7ɤ~_l C^Wrk׮<)7x, @A + +h%d+1s8#N}]Ei;aFFy2ϤgՆnT>QCnj˔H"ʻu^ǏTN>t-Nup'KӠ/f9 [V ,:y4&MW%Fu-t&N#~ۺ8uwXSewM=BH7s{'ջݩ  .?|??oxf>OؙXniF5*N~kWT)0i8\oҚ{pG 6MS*+ +Ps_jxBŕ+)gW(G$LSgw6ORnyl?RT2&gTUW|qA+<2's V^pLO*(-\#+l?)qY<|C0uK @>/~O:ZW@Ys>ӟG?OWݝuIKk +hutz,`%Pe2S%뚹M7#ZP4,B-'#xB̏TN){ܤ4pI4SMFn?G@ӆ,}[LHNgO?UkbP6YxX;+x[{nVy{Ojf?Hn^wuzy\sk5Zs`d}bj8k5"UL&z4n aDyh)v:=΍pE=sGB^SH@bȩA}O!q^NQq}k2JI}&CڊTտ~zd7K(#nS!R-UHPZK4\B!,C@0g=YNO_<9B@Ph +c_.`/YL@Á`!0snFEFS.,bZI~Y=,Pt&= u7>HymJ$Yv#™.( +hw5H "6Z/IZ{ut^4uEn/AO6 +=V(xi-k !3(J?WB@Ph +cϻKb%}BUuAXc<4ϱMz6oTmꙢܳAPnd+uJV$8n[km +heb?˩̲y~W%t,9-'Mw"2! +hE)͑sމ~vo11iAMfWv˕)T6eO dZn3 pL@_| @A (HV@G d*_?y'JU9Kqҙ{6#u=cZXI)JRzo }&?9so݅kgmg&SKI&I;&CmML4ɓ]alƍ 螳 )>p"?L޺,8̬9%he˖[o @A (ȉҥ7Fʣ蠫 -A (BKgu١Na_$dxك!3&{Yķ>]#_/V?\[bqkb}eˤ]ew 3|'n}{Y2 +!%kc[r-M +C4QkMͱYUQ\@Od!6\q4;oq ^>}:|` 44 YM9VJHΤ*Ý +͵ ONJUnM:bfsoz1cQ#邏^PնU7 fnAS9-V@s%X1oN!VEIUy6 +vyc ˴#P7UpTB0 ;tR?)`Y|ػʅ goKi+ J9Vv+2QwUn2;ʟ!YQrG.Z "j,L)#('goZdSڭuۙ9*lFHikH@*PŊWv }c}$f8a(tzY_m8'm5T ZH2W6>&>p_S]/'{j +>O{.;wry{_^{Nt#(4Ź;\Ӯ{V꧁LN[@׽Μ"6vi_abp2oXxKqvIJT/8aq2*N: O'7jct-mȆnysS@??EZ\sSdZdžM׺V~`?bP)iڼ²lBtܭпvA@0'OOFŸ]wmYh;~c4T$cRϥ%SbkռpFY+O?Lnj)9fw69fvE*eڃ;ޑ͸]jF +ڧg.H%]-CЌ6۲g/ + ]&|sSyYDTkuֳ4뎀֧~VU@cN&uvqW`0jE@@ 4!+IUM$9V +Az h +kgEs?1=.$*=D;IDx];_q4']N88D3mŢ9%}X EoK Cl.Nufe"o{&׼Z! hzДt6hFԻZm e;7^] o~7,lf (Ο/4 (9 +A;> #+KV>V@ JS#Cw,Xhnq2[kL/ɏTO\PeëKcz솚DtX{Rb+P2vq.}2Mn^gl]-nE,h+_XI$ SHmR5UqN"5Џ J@ ~o$?D;ýu+h +[[7tF@@ 4Źw+W%d"%]H!fNжMXNdPzvO'Pg{sxNgaG.<,ziz-X@S84SS{檍r}@$TWFc&)l'zg+sW~`O/vJd[=6Sg^7|Mb\~.160g̒wBYtR[}8K!(%\*(lf (Ηw~ī' hϚy%Gʛ]I<1쳰yROP 7t7Q2t|?r#uNZT r9g%vZ kzlfCߞ)h` +~*2>̶2m!,v0Ph6$i ? ׽uַ6,Flf (w[??u7vPj`Et5/ +qy9;8L+z,g| fFZT/z +Ӣ۰OOحsG6x+n{h:%{& +M}˽lxH@Qs7g8^cn9e\q_;$^S`m>9ׄ p| _x{߻'2`3 @qX@ۉy !뫀K27.Iyt@3 J2Y}7h R~ִnW?sȥ)t);Ugn*C;o$e{Wm;%iJzgȎoFf{"G,ݜЩ 1mUZ9WngbctвK ~GgOKB@0 +>W_KKKf3 8N/aE`)w޹!` Dsқ.6~ŋۉLn_A27FֽrЍDo)xd8 䥳 tC )w:,w5drGrSHg5/Έ,5;2̚vpZ͐C`soh"\6Zo닄:+V9PpJ%_N40C@Nd;~ӟި` @qN4MIV=3iPc2gZ\cxb\;΅IؓkW;) x^$}T<4QwI~SQM)2w`4;s"o>0mԦ9.3?#TeYm["}Jٿa&L +nOlA +hv.MbϹciHm;oPI2vt#)?h4`(~t/n%z!h+HתfCdSne[_I?}$f;Iɓd5lŴJOhm[.)(K)>>1k/Rsv4//ER|ƶB#^Gx$"%(o:LkUKz9_a~b˓* >W%/IpOa`Z@@Ph5rrC5 +q<}ei)ы'ùŸFar>.\U +蔈Gu+TDԮgYǪh71Zp#Z +UW5Htlu8a1?+B\~ L/B3zttn w~wRDIr)OG;?(;5`Z@@PhӷϜ 7J'~T7t,uMHߗ@@{WvbR%r PZ-ܧ}iw";{dCjU/IUNT|l:ðiǞQ,d['TtqឥzfW@JfdkS+}7 nH.=:v%SF6~аJsm ԁ  o O$xk## 75J,Ow _nP +GChz^YvP':)?VC4` PzVf)|3έx, hS:QHZ$*m*X +4c2,JeZ)~RGɘ! +z۬RԺmvqۨZaEwd/cV뢅>TDLWTZm^i @A kz;2 QY*JD`?M= 9b6^}erY +ȈBzI<̑3PUwG{dc} CɛZRS6/jr/٦4 B$oUa>MTL*En֘ꁼvۨ=;LkN 0]E{q֛,=<ѿ-h4`(>qბG5mE+QH՚ IֺS1im4D20Rg{Tٱ>[q7KJ~iTBo"BRan>}Ψ꒪Ә}Nae9e߈筈86&r=SzZ\3 hXݎjk 5l^޶C:T35X\_>N5|`>M@n64M4CǾ; q*8(ݜME=˫ GS,~s`Z* jg-jH ~"ܪagEI + +dX@ 2&mL*Ѭ<M\ + NL_ ˢĕ)MG-{ bi4\Szвղ~!ca/Yͬ]L䬀6jjptjh!]M.$[?l8} T!"LPkJ*5oJK Pvo +>{F .5eev}a=ǾsT) A~GmR +mB48i׏II=,ك-[0]1Du#VrX4YTN5qh?D4^GedW@M< j+jjf{],3|Np1GI4S .v ; mE1Ol;;i[o.M~ܖTZs$v&M48\OX30v,&.d+M> ~3M=hgz畔^Cga i,aA~}ᅤTP3ͤ5]q2wPvy;~d唠0I6Dm`ٳEV+ r# A!SbٳC]MNglfU7[-EW@KiY鞐tcŎ|-|ẼѶz4 8\o|JYm +6ӝG SZooԽMJG2%SO~@&^nFuv,D ?xl_rtm{+]L!,}Xlk;;w\C.7f&^%2Ma`ZK<2h&7wޕބv{f-Ԍ6԰A.vkдC))&9,# +n2 pu} +vd>2eh 4_z(ea%`k~SV:WTy46̉~Ce vS-;eBhy{ξٿ:%ab[ce jl)WXٔ'] z쑍u95L0͚fnod`Ѹd-N/L5\1wV& r.\=c2纞Y(igtVKsVm{ + wҷV6hbaa~d8V3fa]R+W4 h0`_˫ȁU6ݱ^rjڂf7 +gہܱr`;ГD^3KŠE}r~;[)lN+3KlwfBI[e.m*-|lWb9?}a٩=ն[|_fM8hsJ@rZ> hwWvmNl +*5NmOJ@|tP`ÁQ‚~?_T^ ?ev63ti*}vK^wVKORYԝ67A߷{g + @(3#l;zi~)/cfdN-?2歐\N7HmΔ$i59踓c% +}iOgrH +=IE@@p  r"D/}wKJ˽mWa ͬlpfIl +ڜ9ܲɴ%Iy`YZ[U$+ys1#O8_?~-WϷc!mѷq` k_dh 4x00ٶm[6_?g#eBe^$c_$RH/Ʉ9)†p8Ň-Ug d|~^q ~Hx (c & ͧF]ϔkv6[XxU+4U4s5u%Wֱ ~<"D3?hF[zYLJ3 ~v(L)mR0?~w!B@@@cFo]-i? hsVݦVP@-䉔)s$V,3­#-L|_&gBu}LxlWxѩgtvѴ| 2Pu.g{$}2z$=6٪a +,'B6OeQfdqC%l^Waw4NXM.f8ʛwQÖ OzNyOh@@64]0?\ ۷|9O-RFET;ЙPzϚmQPqQ!xJavb}ȤKqNadҚ?EEW@KL(x\cNS@< LUmp3koXL&ZEkʰ&^n?+HeQ"Ŭ{;WDLdZ(lGݮ~f=%4E=oH @=6hd=4e#C L9LO$d6hL4[dDh _?&+ʟ5o<~cwOeld"gH%yslqS1pt`> hzвE;EDYru¯rSUYlj +>ǴB>Y-yCu*on;' c7de y{)[#—BdAz"k QZf牤ùVdÔVF@ov‹C9Zg|ME)d\,ΤRY@W ˠScnMѯKIAP"dq8,b}kEBy瞃&S`]vz!;9WU.IahND>:`;_]) | r@C7B[dQCxى%l2%MGTޙ51;_+Y~>M6h1KK/.4 ]\;7ݱq"gLUM1ϩq3WlKh( 75YkFP(%}; +/fO~X231^ywgQ +}Jg]k!Ț 텠gEH@]t + +0q.S1r&׮6C ) ԭɲrr՚Hfyiu,VR\_~ƻcK!"SKHY[Z`%KO_M\@qrβ~ _m@(뽛T令zd*:ųf C \\vԸyCs hWݽ&}QvsW*)|YY}wHee89}t m>h\LU~]zZQyNA*y؍_}`Ѷ25v5=6zW O^I_gKe}vO7$v/-֫=-$•bV@sL3 qÝÊf1mLt@9T4Hc7>;ͥͱ{x )CoN6@Oї4B\ZH*Ͻ?w! 48sl8m oF۹ڧ?weL#'+'5Qہv|5ԡ' 'Q}۩4$ ;<]."Làԋq(0sR@sY@sjT]ʿBu슴"L'frB(ɽ}G9h +<4%$&^^bt\tP]ٍĵ[̸Ӽ0=_0Ω̹@c%5 k,&ZeL"9z!ʢ ƙw \\LӷBٵt-99O3Y Qg(y#L@n^|6 @WeDo, e 4<C.5[WhU@'.t~΍^GΣl7wtpNVRtЁxWFk!:8Ua~YLtܑ:f5ܗo4tzFeyz"W>fv3aU_.M&ޒPZٯA@hhpu%.2/}9c .f]Ru$,Ӽ(ZɩԱϚxvDLCc(7 nף/rӨ $e,(ثjbl.%z|QmÇ^R&篏P@>DxBCxh~@^f놼]7y5|/ e )t<~bbK }1o9$^@w9*'G8`A|:ϗ$Z[2!Y:ΰ k(LCN6"&DO sju N pHΎ&JO kBe; O'#3QoL&! 48UPh4;~ͶMΪdG&^kdAGZx]WindR`|91e}f-UihgfsC +&b&χt-Jn#ᮽ*o=iX>"aoXw:Qc3gJkh 6<4]C;kNh2ƠZof O>>4p&J ܸ{ƽ;b +L[zw6*+Gf\I7 A&*;Z^~[tCzyRɮ׻#crGCAz~A{EpLtGsl=͘n*dὀvh ZJ4 6a` _rbcղF-ɦ6ؓs՜3ұ&Uʼ,m?Lk߃NUW@z|mN$9u `%,C.$!}&i셏xMN{l"!,JelϤb]ztœ I@W 4Mοf / Zl&%ϧ-mP@u,&:S/f|pؖR55_4Y ` +S" VRfS=/Q#ٙy{$6k%Z\;1m˔t&d)M82=+m=vW&i2o"Ȼ2PȡWoZ}6r1p4UӶt:EZlO@s ou 4U`r#SmM+ Dp "O2 oeBO}W{LۅkGWIm2gLFO۞ӵ2_-'B%<4]UX4`oD2=ƷoR9:Uf_l~XpY$y~~q,shՌ|)f+64,6lW]]kh[8y"h;D\\2,d3~ru  q998ZCӽ Z-$ +Jlg50;fR*@3W-SvDWfq}};fMf:۸ T.lE||SՓD* /:=h- ı%.xVJ˼k?뮀f=ԝXN*LY+<23rOWʗ>=yWi4'VSsKjx G$,%WP0 MFpث+M GAӾC۩l sr)"XvBE*8(Îߑڞ 4fǏ/Lʣ71`(ɃT@<ߠ]-"{Grz!Hw! 4X9oFRE3e# jH +hz(Ĺ+3}BƒOķ;߸/4w{g{_[2;::m]ji|ҵ]'ҁ2YÃfkoY@S&:6ҭȔJ`Li$g& .NYp8Q  24{k_M."D +v@@hhB-&g>~GcUuNtܝLYSte…|gڵW S8h Oo'߿SeoݔbF{Q}i ੅ iQ@%KW^]!uq>[v֩;20邃5Lu=bM#mi|e;#4:Ky]MS-/Ds(>9_kBZvziTN!TDu`JB@hh<:%nܽ{gUiESڞ<ԝD.WqfHOҾA`6ɟMxVHwvTʹ}oNʗFO*7u: +\ (lup9|2& +ߛX'pse4 .7"e3q)%>DyW&(Es CMw:DAuF2J&O#xB  4XhDAu'qLAϛxxo/F'"ձ =%FY#ޝmn@WiԖ8^ry4Ŧmy\xKrW?j&ugR 0IL:HT~a6DpMZ.j_A=LRDeM›h3>/Filter /FlateDecode /Height 468 /Subtype /Image /Width 1920 /Length 48942 >> +stream +xlSw7{8) u];I F0,ðvT5wXHHTwؿVS].ӲMyJ&[ZH& a7@cN;!I|s#%9ǎoZrwΆjӱ+w5${~OA.HbQE}ey̵~8\M4;J6 sUUnj}շ>SP(Fit^*`/&c߳jk[Wzikwb3HSb\ho:մ ̵!2?? +񸸳t}hdjMjuv[,nfV!NWL#c=ɠ_;H Ģ㱙h8m6{;ݙqmb hT(t42cichEM٭h_ST~WkhDStl~޴.×#[ZazTbS2D{- +~nn}k'&&حS(4Б%62=rOnX@H''VԠ̵Ü@,ҕ^>^y{gaJKs@7y=G4P2@L:aV||13hW8?^0 + @ 9sBpCЎr/Ҍ?q,I4:*nW +fVޜܮ(Ŧq~|ԭ!ބ&TlZ)e1,_/*y jR["h(;) А hbbd4?SI1]Y+ >b=@|nvTtzhPt =??ukS }csWaa13!\ha\f6tm+% )K_V= VM +`NhY;!1k^6z^)vݞJʣw{$9KMRg.uuJs\{,[w{*dҋ8'/7:*T +#m m\Iȩ[C쏢6A+IJSsɑk]9%JC ^M_5k(4p3*abC]bhBFjƋ>[|O$5Vk*4bj;@h٥Δ̵~ȳG7\:/}w֤AL=hb\e4+(!ΨZ\MNbi6vt|.)ڍ,4д2[Ak'zC na ڦcV׈IBK] t7omr{^6f-yLFvc&Ztƹ{t8G> +=3ћ:;O(o]zB Z,&苻;eYIY?謐xCr[8${FgF4r>t57w9ɠw<{4K"F@gzՌ?K]7i[ShEWD\R@{oZR<HL~ +MFWlYj=nbvhLٟ TCO?|ʴn͖1!Nf=$moZ:60Ʃ[CmQ-v%wK\x G/`;VV-ZUL~VK6㆟HQRB*]j&=7LQ^ֳͫ:Y}͹% +4t23zh/I8>?+@ߎݞU% {WhQQV)"!U=|ox;7m5C劦\are6pK%Y;h1unxj5cigī,jMRFCfܤ +4th|Cbp4?YY]ЄFGI +y)`_w |h~L~Q⫞Dɭ԰'Uy7L^`01aTSX<mXMmL 7ϲc-umiHYn,Xp@ Δ̵~wu٣]}zTI?E_xZ1H,^5P˘ $L Wx-:g9=%a3'*k^n[6hۄ hgqgO5 T.i@ЎI'}dK+#D^e;]NzĢh)_qp^Ot8wi~׸TtY3Fφ#SGKNuƞz)>@ߙ7 up_,k6' No- վ;S~=5]ESTTzjR(bKhd l 0Etj@vm6̔t㳳` NW-C`CauQcŠ~,7+Ji+O殼?grڏ9];N6>| `bFЖ7%WdfNtjF~?^k(@hqvP" ڈhR>i >htTZn +ESޒ + frSkqBm.Ϝ z.69::@+کzS)C!.z:p󬦕ՠgeiL'u;:|M^.5q)x&+I_@5BԿ~.xLe[jP-5oxC)RkχBx<.>̎bh4t+SÉI:sqbhR~_ 멒^05Rn5-ͳ ez穒7mۙqH'&?\(\P)wMh[)y%Nj9}.][A6zV NS6hBIlK=/)LWZ/Ϥ \!Wq7$^4 ۖ ;nݗ_DmļZaN_  hቁkö5>heq)FG%A3=k*fO~S`oC;Wܸ{JMe +lh#BQG=*Ĝ!esJ?@"e )wdi`3z=aö;14%š}V=HWDY\~0t*sy@PIr&,H⫞տbyҐ*vje`sяC;VQh}.![@S$ >ͼ3`s5T:6w7RXtϥhkw\}3ގΞ{/6% >Neksv+7}o a~W S(58@>TEC^M_XxLœL6C _t<". Ey`'| +9} &/o<@*.?Ϻ*jjb\$V4 aM*hq\]x"v+:`9NY~ݶԵSq~|ԭ!N R|1t3a׹S)=} sӓE +"hڠ:?0]-kI.G-td $~ =oOMMHR(tC ]r&̂'^OIvqdbwMvC-k'[MD"iBeAY ؿatq49,*(haASQML<#B󄗣$S贚F(j2hwr~qC/vv=SPȅgEї6hZ84lѵ} 8/f;ސX}Z?iZ )P(dRzY-s&bGAh"BЄh!1f >P2\ϛj8^?W ޑg}hm6w <9nC$E) bܬ_\RQq9}iς:B %H9ukvtR.'3"Fu#7:+6xKr\tֿs=qAή۟hMʖsy/eD!h*̷kqYZKTlT}1'ږ[4 9&~@@HW;M[0 OP KmVD|J@8hyn}ӵMѲH.~-'[/_1yM+Kv:/?9},P(;1 +]+iCQݧN+kGwz*ÄܙC芤©OORܥ3p{t8Gr'sf sUm NJ3WMoLPdO)"HeN_3Fh=Ģ{.}@@(Vyks2sHΜ`wؓtE!T:k-Y&+*R&,6|R/vv=S)E-v4"R3s贊vs6ZVd71}&^>:z.69c~,N"I4K{?TYԵ%e9JWX\x +2aHٜ!{,- .:kyC>ߙJx[8LN $ch%u":CW%S銍9UES$ ?,?Q)ėWݿ!@y׌QBA ] b x{g,%zß{/<1ѕMf(ؘr{if󊍖6*njSz>m+R Ӑ9r? ҕF-ps*@69'gŰjݴEcK9$SMd\3i{3\4 )!p+ZYȠ ZNuuxbp:`sԵɚx&hm(qhP/GÅv +oNKdKثJ/)SܴUh%2eІB +:tWݘ=^c}ӑ-#m^-(vʭ\q&&jʜ?<\`{UmbŽoa=Â=Ss.6^O!%:͙3 +?2"(Z4m*w>w9uk(IW^}3@&^?͋8fs"m3+B&۟V|?ƜfZ:+y?3B˅@ X̠50}^A;bzf-M׹2BQ3覶cvMA/#{?ܙSGĄfqFGy'ςQh)@HWJ96x;wGjFE{9w lx6v5{Mgb4Tma*|m_q 4tcC#e%^ O/P=zh8Q謨mi_.#S 6ޭ/4T"uZQ#T Fs$=~ӵ͠swpC;ɨ9; )ׇ}(jF^[_0g54t:5JnAa@8HC+6Vm̚ ۅŞ8Ͱz˶EKIѳaטi&ÁȽ>Cg71z.?:]M݆QL[8L+7 +o@Q3h,gځ@4йhbbk[aJؼ5m/QRrjWYhExforn}z_bt9 =]4rh4v7[>j&Ujx^:!eMܱKӜnkh,|u[J6V*//ɈWZ|O+f2vG49giۄZYzEV{wie?Mt5{kZ8VG4sHYSiBYx-M(q+_뛊d&Z#mmu$eNB_w@O#fFNWõm&њgg c n4 +]]]tf]gΠi质BQGm.m4xs!҉ڭ1nKb5œoܷ=&Ti^#5{t42?NCм ZYF 7@kv,m|]şlzq~ej֬XүjX/uN#phP =!Zpm[afAiOk8՘A3ABCʩ/}Q@kR'wP= C[`sqJ@z"-VQkmV贓9f6ohh8UAgkWE)5@sD34 +}dK+2hl.[Xhshdd&r#$hh,3{:Z'?{gʯmk[}1tj_B \FQhʠ1 + +4t2h.chʠOeow&ٻ̵MioĠf(V&JM4xYYîvlfP(4??/>F2{X`*Kʄ,uuuk|eB@+6Ahe:"-uE)IBL++,Xʚy,,X[~:e`ovKWHqNgNTyf~~>yB zo4sGb4tfWҶgR$NQ>&⹅CcF m^tQKysz0ZݨJODht + +hXF{~O*xM% F#E*CJSo"BęKW㤶.4lnf:5}N[Y^ βW^lrwz^;li_dR>&xZZ\yX5 kJa8Dr)-b-eUj(ːfA% :,kaeBYֿ[^l2y^A%9fJ*ESY vRySGk`&^-r!KR4X )IûOG##~[YBhhSQWA'; :Δͳf* +[ K a>)c6^kұ5^kb +sB#qM^%?2kFO@O#n)^YRh^iB[M Ad87y7b̔OڎIF)'Z4t{oޞ +kb=>P'PEcck!BՏʲ%=8Fs!ΉS0Ң6T2hsɹd4h,DvtV̠;=ݭ=Uq~|ԭ@lFQ3苻:27C9QU}٣RZ-Ha6L'b!%nZo'۠=)(@H8}/6:*8s7I9,sZ&kqXAIYב-uh5avҔAItQLf|rB?T82gYV{-NWõ`ǘFCf!q\ +I/K6:+cϥZ@S,6otl~Fdx%;(N0}fhq^XY?\5\\jVB(t睳0gH9YJzeB- {G&=gA_}]BOk=ҎC;] \FFЗfd67Κf?R6зs~knO=ukHQ'k]x|yΎ]dNC[6HPЁXԭ!>Mkwo2sܘ]ӔJI<0c/컆ߥ!hh">T )K@;i8=ZP3)}95}6yxw_4!.HFϣi 1(q>ՄȎppٵM8e:1K}6„!L6v|4tioY3-̵gTS M%"oNW4BE_K-bMŐ;c͞046mNE}g[ e2rdΐrюB#.Mm} +O7:+;hqA ZfSR3hbBt.~`t}~|ԭ!sGϩp?S͞zAȅgCڻ8Qf{|"{ `;s7$b#]ƅ^KMR6gÕB 6 b@?}=sJIj%OʸqS4 \vE6HΔ̵f_[_0z>S| =w/1a0S֬;fƅx-LW )P(zmd%wмQSY3z +oN%>1Fw!C?q5HeܜXBk|0P6K0Ǣ߳+ R.(4hзsntTݞ*ڠS`sfW[8#s@r +ҫ結>(t{푛AJv8q2jblvXK}:ɍ/XVlU )aZ{@3m7:*8tU-.yw -urRp/?RPZmPnЗh>X}Ҕ_{펋:xXoG-Eݠ_#H|ՓzΤTB,(~0}>RRJLC0iCvF B})x&߫gAER4< 6Wޗ$^~P@ /a%9 |۴x)y$t:,u[_<ӎ<e=i9fY?)x=? )? +@Zf~SA:hei)wBB@#:[RI];4/oD:l#y@qY7lxq6{_2z^(NVc"I3 )S:}H>OB.xOޮY8-[Wd-#2h%C۵5gj8^~7hqfSxFf^?MV{+tw m=-@ =6|Z?¡PbMryԺgK+p9;C^R(x,;!shxmDnD##?>z֐Ayp t5zo|j+_[ѳ(4t2h(ؗRw=YsZ5ߵ}8@HgYg/tBe@rhZjӵM =@W-Մ{ݩZb-~ڡk~4vbB <9,B۲L</0b잿V}%@% Efݿ4O#rh@mz 8+Lb/P[m +gEާs2`C攁^#e9cjsmBT-Gض@+V&D ]2ntTܞngtN4qЊDxVCb hP??m-0W@,Rq%㽾Ѽ/?L>ڍfNjFnD}Hکgboeo|Hk^v< .@J.=u +@Sc"wXQӓсR̠5O.Ў >YG?@ԭ!lieo"};ܶy^>9G+VV("uiAǵ7ֻ Re : 򿏾KNx~|ԭ!hwySY{MRZ>SB=᫏@/'yh>~KL"KHs Txv|hُO<5NqCʩ$4tD"!Xbӌk~ sɠ+4WtPD̦jY.<;<+r %+|b2tN@_ļ.ݙOL>NN>8mn4 >TeHYb,ժ܏@:t:^nAY(]6|CY:w -uRBqd+j??(o#UO"k^aUq|eo.dFnܽlLCNx< +Rvm6[.G@ ZIu +w4)}BN !)Q贿n\ҿ![nƺtr~|!2?E`_]П:7͜t5y\`Rզ3#uy?yd )q8@H'-RCAb@_Zvfr+{R/q hb͉H){ݽ~}L0[ 7;|bi(,cRe=0?yt8uHYʄ̔J3 NN}5eR78k4IskrFbl\3Ggr72kwWF7o"Evw K@_FRbBqobG4ιZR/*!4rljsOB )q= h$⴦"h.j,jL;mafD cA/"[qBkЉtَh\_~ym ~4ra]zAJp|vvvݺut4he$`s춥cQk_~쵕H3weq+ZgEQQtoV $Ef@Agqs"qgnibiX+LmrM4;dL,pxvv@}~|ԭ!>.)KVԜ1,bku+=*km5@,zl>KIOk=*#? +& ? ?O$P\y=q,}\]P(ŝFL(%`p8^4~y4;(691G'($4r ։?ӀyMx=)e zdКHeY$+6wwQL2yeN7EXh_?G]v4'|tE T +?~WsssUUUVn۶M5ڔg)8ѲK]J=Ŕ햺va%biCu6n @КkwxNYYަ 7] 6WC Itv׬j8^^Bli5aԭ!~鳲tYϗRlcpڻ&"kK$|g_?@4$#mPn?z(K_Y:%וmSf\}%+[je|C~@CN\2;Gy%^S+!O#h4F"%oHX;V@$ȍtGzLF@4vVc[ Eǚu:LxNx3Eϊ_#дӰ/eu4s+=JN-oZLL(S4EI&;iIY0?7uGbpCYM)ӧ\7j24h<8J&ժ?5-Z tjq#RCT?v-G~co6K+;u}WG虾k<I>;.zmI]z5%3S M+:HB] zWkcEI}ϧmhp=vm6ʟ-ԌnԼ!75k:QF's-xM\dH-0af'ΏRb+BnbD4.џdϻW=Я U2ЙƢEɒ 9XkII~EOyg?n}!gmC6F, d'&WA +i\Q5odǓ" )I̵q{G=Z`oH>ԬLhY 5b3i6DsF/e$<^;+CXQ"qQɖo%yDg6Y`b~Wnv@3+ݙ_Fo~tWՖ3ïWמMJ}|uuuLYĝȅ_q%ڽtJ9eD{NJv?~3?~@HE HJ㏇}-tsMyq^@(.h~~~jj?~7 +Oa(YXHf`0X__V4_MMt[+4 h?~MÚܙŠ94ޥrsg?21hYIu=ȍFFh[JlW.ܭ5H,Xݒ%#h˭֏~po(*8u?D'ccj|²O`֭{'<)p~~~bbB,~woܸ H9*c%m5@,Jq3-Vk+ GmadPxOg{ +,Z +VūW4m4SP9g䃢e$MK KZ,g{сs}ŋ!VOVػzxbP6.B4i<k9*fe5(~{ǥΝ;`5__|Λs,ER+qJzEx:%Ön@8H4KA !RŇ+0<1xYڦ7ɑgʚ^A_?.0 K]}?^~_" yeвe6で[wTJb__ΝロSbI$ңIcf NCU+2Ųf~W6rďj蓛g5áR98jȠyeNI9}ޠ/Jqg;[SK][jU~1>>_3=wE4h EȦ$?L-{ U3O5NUh>M3} 1}VR`;(s$8ԍ=+ joIٷ+8'4y[j~(tu4ﳍ?@]xq-×>3@_$pBI[ R砩BdFdzc?oY nSԃե]0 <4@H#[_0h=qzu2Xo?eг*X؉Qh>ƍ?+ A9ryCVFEN3mjCP<wjeG^{ #+R4m/9ቁA>O,Բw Ɲz.69c~ר^@bCebڎ*CgEatu6t<~:yg}g#&dj8;pī. ŅNvXvJEϩcsA96!,,'&SW>CbMMbw-&C855ȳM%\?O<^sNY֘@b@8x5dw[ML1ǫgjڶkڎ[Ϫ% +Α6vWwܴдp.ȳ`gkgY ORF*8~FsŐWڜ~g_̩:iqq6~e1mʗt%hP'jbټS!ՠm/,- +%i VjH`g Qht >hIAAFd?yb~wiJ 9~\x6Ml;iڝff:`c)3<}(7 89D>)NE54(mݨM9uFi cs+v#FQZ#Yr+WCBGrҕ^qAqq/4+}UM#U0=<1ȇ }-E|So&s4Ƒ|6ֵ`!/^)j%J/ܝGMS2x{z`_ߠ_|R.ݑ @5Eys{흅\9dܕG셪;Dg&UV0od'\2W5LjjK*ECsdtrcy;'ocYw+Kִ`gV4hYQK3<3ZL1.ueBBj8= /M^ϹTWRwc춡nSuW &^?-ogJ9R=b*mfBMsU{(`_pO\/jwy^Yȑ{ Az_)G_ ^RcT'kh}m\2rI(r]5N/,WvoZeft%g}n3=`Ν?'Ft@,'Z_ߤ2>}2F*G.<:E3CKՉZpms4gYQ<={o/Xl|NnLޥp핹aχ'Ý/=hbhe1liЧ<쯽2he iA^k:Qsq&r,ix̵MorCoGuyolYjEխc=&08gCdn1e{W-ή;8xzxkC$Xxg ]‹cH˒%KZVKp=>s[SS9}tӧ%gJkLf+77//^-/,ga6<<,eށΟ_3F~`P=[m,yf] +qjeC};G]鏪|#]֘ :ԃU۵wb]>ݾesVJg ~S# (oqOѓp(+W?>: \nY`PJS[`0e1Ki@|6mz$6](PyBϞ 5azVޫ[ݾ뫷)|@P}_I8:Jy^ǣ>_)U[!&qF{H6}{na86iӦYˬL@t]gOHgHAzƃU%exKMZ:#Itt)1tH:YQ'j`zIhA3O*hhNcg+`pݺuG1z2@nJ7b¢LfýmԻn{e֘t@)dIKwpF^7?pw"D?{ v*)$z[{ؤ8sCC}<=fy[1B>Ҩ̥%tV&~|k[H?bbwՂﳎt&fBw (NV:% _+qG?{=zPWW#%Vc=2a&dKZўt0zGmU$nyyo% g>ʹkEI풲[@B꬈.e }fsή:!ו6c$ѳUc.5eػ4)Ymd*v$Ԥ1[,Aw:g|V-lܸ10@os~f +r nkyi_g桉MK=˓?ొҬHG'l1B;ڋ|#GZ?®HʜbwVTۯGHz=&M^>ҤELOޡZ*VXxvFW +D*a[lfEy>1v6HtyV'x<ۭM  nڴ@ P__?K7rt)ƍ5+(cy|C}KNڐnՃn$yȍu^eITuK3P c?h'qe\g׏ih}ߕ֕d-i4-|G]/}HJn0~ݶĿ蔙 +\LE.Α熆SIs/0@gw c5xT"`& Z'M]??h >z_X/^boɲ9++g,&=~/]:fA VcO\W3.)W3vҮ'f|4GKgѳC$6iӦ/**x;wNP$ZzO;:I纠l lo"R\=]k wbhGBi |4I]!u뉔<`Y=J  O]Hlr>4uLxpI!JuHmCoh}f]{Ϻbϖ+kC]-MZ%}e+ Hm F b 3UI'޸CnK]qJVlE={,ze&Thcg+:Q4y@n$.f xo߮} [ӖbýresVMMz=w~i'u5&R- H|4w퐎1>N$9 %ɲznuuu<+Ėn\ Ssn>3~m ;端o(mڡS-Ǟ>_8WαyJX;z[;ǘ%ϊ.hsuuCJ֬pT*s6ѻ(}63%eSm/|qUIK6kU}ɮϦ6DŽ1Ō#i#uHm[ȤL +wy0٤@=v]k<ҸtJ**X??`o/eSV>/r4/(Zm0. 7,{kők2}UY|dIEV_Ha‰JwSuL_~$@o('|)oYDgo/3S`mEiC-6C=Uӿd`,qAKWqi/~1c:~d`$?~w}i#0::l̿gLSs~i`x +aj&b[K[͠iC̎&/Sbe+(|NVGNݎCָ_涾5nkZE2hiP>[!GlW>ˁ1S + +Z]v{"+gmK=pɠi7:@?qu[kg_E{7lKx68pr.Uȵ'y1q5Im/D:i5[ Dw4qE#s乡8Fɳ$߸qc'#q _9/[nol15}?U/]TRu;i'}1[Z:FϤi2s=;{km G\RɠS򜗗z-yfAਤh>D3CNnzVQ,OE@ )"3.2Yprͭy=瑴P節c݊H%z˓],X¡:ǹi~ɠFGyw\XWMgJɳNd̒gW#% }N@DP}^emmo$FX+_48}pMm/E 4 )j0uOPj_8MV#4Zw?mqM])nkQSSQ$zxx[|W̼:Α)yvI=v!%nh}f]{ϺtoZ?g:}lMfօyL[J#a.-V^bӅ-+X&KRiY0# $YQ;t_:__5nwYn̒皚\\ўN8A7.s٭^?}{Y>ikSszḙU V<e+fTHjIܹD#I}B#ѥe76uX$љ~Nbz2g[h.έ4e܊6WdWr+>quoeɠmhs^_ +hcMz:˟n0~-5q7}֌)_63V]~<$}6/vOK: [2F21h+gTg__.y)oGmd_8|EI:w49r4z:!֦@" ]5+=m 7=dNS{totlݙ_8MJtG%zz=^o[o9G n~FƗ>m0z$\)3з߽2M!Y6geN<'N2c1hO-*ytg;r;zS rJۃˁO I=m-Ouٸ#s~j5\yq8D޵m|!vI]VD5 /7dQ[3\ +-)~.92q1+1ttc%^zO{V`0(Nd^]0ԗu^ЏWtStgv +3.2H9Yg}wRmן7Yr?鳣WO#c 1d ٹ{l6p;tǷ@eh *áy^'^"㧙lM 9@āN6кY5'V TRu*-t )LFO ']ʟ>cj1%LbֽӘB?zTǏ/1chh4KMNRܲcv#ʆ{S0&jelc,ݟg䯟+U7\i@hc}2vciQRLfb&BaL=igbWvD/'3[)yfQVbF +3)yN4锱sq>mj6+zꥋJRC/{ef WSmo{MIj׉ڥk~QkfH [N)&RcDmZrwް] +=nXUJ5H.U%pV%J]]% %@mS;t>4Dp[knXa}]wm캱 ]9qNz=R[\X|q& s }7Ag"ġE?GB`~qAm/]×;<)+nVO~|ww)oMary·sU7Y[ͭ?tZr +]Snm,ty# 6~dS=t1߱!5Ʈ,ʪgzEYQ9?|٘AM{sJdhYjk]?pmmKdFუDpoA/K)"î-;{?' St3.5I7)74uMs_wvڌqp[uW9 Z=UDu/~|ߔm}V'S ƗThaKK ] w[KA}dVQK8z4ʷ/gg yybS uC Go ~p=.fʴlEۯ> m$>rQg,yz?ɻc>bckwWu}47@ P__O3_rZ$tB?^^1n]ٞ>gaQ@:migz*){: v5pr$\h"X/)#sz}dTR)/pL=.ܢw}Ɩ,75ꄼ{bW5?naՠ9kBz7oc84k]FZ-#7GdПϑ):u +߽ĿĮ+Ւ%YQ'Plz\z7 hhhxW9buښMmEt@ C:Dok`9Mz%eS3rZ9##i6pٝ6Sъ=y\-w˕^gM ^wfvdɢL u%&IЮH@U׬kƦu_̄ZtlKooxPiɠ a6~-7BD@ZYS.yhlʛ ѳ@g0٤@ 6Tޗ#EV$>?x>4t~d{}7ηȺstfS~gѴ\poۧ駍=zzO7j}':ve0Vwם@wH!v˱ ]#8dDGWgVrt@ۑ׍&ܹOcn]\TLf6^|ޖq.Y,y幡A[ko ׍msdailuB^^4zvhV%%cJ1vE-H U-T0.:zvTnwh:j,vfzmu5Agb5B #kVǎܺpJC#39&`㕱m}B&ZJ,0(%ώ.0iӦ#V'Hj&0a@ Wu/[;ȣl*|v*QBy"s͠ tlw]I?ul #ݢ]ۦH[]~|ݾz JlV-%ў Z =¢IGKUtg6&ۏo7Z-C]z,A:{ =N4V?R-?-.1Bs0FV'Z&0Q@ z:JʬV/,R['|$=f,3Y{ -+}eBcWfㄱ'ֶ+.1/%,02h>RhSSDH*-j+EH`tW[IXѧ:dxƍ{-q=Z%VmKfT^N3tY?׸2v ǘ%ϊ.ݒgmZ$XOU,O 7:AG2n6%w^(d[J\84ٺ} h٩ޭzн.{7ڨwhϒ#% jJTm$ژG'Bq7`8AXKu"ӈw*)Jב掦Lo@WO֝5Z +]_B =&NRz|s+;zGcp{,yvGuGȊL&ё)J[blѴW$^-_6g/b̠]Љi9a(ܭϢU" ggd!IjiBGу2GoEVVtE笇Fhhre*-458GNn L2A[W# BpXmN˓Fϩ2<\ l5IG{1 c=6(G9km}RrRh!d.Iiߧ@ 0񟓬<+`皚j]v8p+?sN\0:Y:gSi6_o +\o]<{ŧchH]Qz&߽:D4wkkG[4z:g G566:q{ωƵ @#Ƿ`qٜE M;Go^I]-;Փ< ~&͠]RU VL)y<+jl9"NM_ۉ+@@O.ۏoTQm@ m߫at~aV-ƧxYlEX^ЦvYA3;tqh@4Ř*ftR{*{:NMP'Kvgd\>Cn$j0w+X ѳ <V~ס@@O.:R,vBg)cෘ|45vtHy#͇6{qwx>?냙)y?& +%Y=Dfwum캯4LQ5hM2_Vi'9mc)Y rٕpɳA~mZ*_>x[mNQ/__ꫦO>:+L %YnkqEBgbI$h3:߈iUUm|S<-G\~@7X@3`{ȑ#[l?0d:g5mK*#F$73osGPPV"tw#>)yV <'NO &58_~&Ns ]eeА +ZOѡs +2Wws>c4]yFN!'H =ZYY`J _}8 J3 9w׾5AV 8Zꝛ;RXLVI6]nlѫ#LR` WXڦyh2`:2_Mg뭷z'MY4Ghɝwm05VL^ƨzt}~%M'zNz)Hi2:iڕ.%_47߬]6+L6ЉDR6z2M&c K;[v4ynhMNV*yV^/%dSWWh: +@?(szH/rBnIK\"ͣbj"]5ԈgeӦMqJ]g +-Zt%AV 8͞uV+e>$m8f z ;:)1mm$Os8:nb&JwҥEZ@zWu]~?#3L46кd*gTHvVIt.dVt k][x I>΅熆W_}ȑ#V'Ԩss0wyg͚5?&w޳gρb5vw}K,y衇($.bwWm(yS_9vVEDz_Q/{8"ailuB^^4zvh<֭[/W^ /g?8H#o6m3L4m}03_踦CȪ=){zBiu]i-%qgFV'zJO[{ FFܦ &掦i`۷lqM cVLCbϣ)yvۆȑ Yܒ045V9r%%Mg~ɷRedU}WΨ٥3ɸΡ,{T$=9:kat4N>;wYf?-))q+UVԖYsh}RPiR~9O{|sն7/t\YҊͣ,rFU1KY]0͒gc~q6Ƿb{?{{)yƗ7,^~M7t .8p1~?m8`"H"6z +茥R9{ʘ"~f=R".U"߼{om掦c%qC'GKmj3PC֝1{uw Y]g`yꩧ^{5WOvUիvvttXo[(ݹ&$ǷC TJs視H[̒qNv%%yJTe-Y2$9~" /yvGv}{=-5ߠg`ַuĉ/=C?W㏟~ݻw[k͝;7Y&Dgv4w4NvLY5V=tH7i^^ݝ`h5ݶ$Gh?( -8җ`-)?̔OU}F:Qm}GD)FVLY,I$hΝ}رc7tSMc|.3ͅV$`_tb-p)t1=3bWrٍY +-%qgE ҟi\B#ўc_X59GUIj/8[LmjnMWδY Ȍ_1%7se~>/Nlm=ySi߽:=F/(fZЉ,dΞlL9p95FCWe%(Ե)Yy̒ggvZxqK?SMhc][m +wԎhM4=k|k.~> +y+=42=G[(Hqӷ/6t}KX. [loך_yg7o޼O>tpɒ%?2@ ;v١w,7+RoPww.ZZߪwm,TOD@d#>)RDzW^.Zp4VleH'>=u偊rۓhY`9:vtMM6544AjjjIn~w|92v +0}`0v9\m gzW-XЍLsV ChYP=8?f-3F–i#b?|o(wG}.W pVoP 3/뮻x㍬b?۸ʸ;!gaQVĿġfR](2cg犎$ ZQs[{|5Hwy~|w644>|Xm_:r;/f[<0 ]ER&5=֪YG1t8EX'ӟpoP:E1K(y1{@k_oee>;6߰%XS."͠١D]gOF4jqʴ/y~I}"hkuE>Y2 ѳ <Hʕ+W.\0k֬o9Kkjj[zgӼ8`ˆ@=wt{LCEÒe_6=a +ss6z6]VSwdØK9:@J,0(%?$~YogϞ?M `_Nywyg͚K˗yq#vO߽Ŀ$k -6Xׂu_~ksUIKK&j ]J5y)yV`] n>-QHq:6h׮]?UVEO??nٲ%GN #vjcO}N~ߨY{~4ۻp4w4?ר>tnK;tPWL$1{coLϚP{[vHl<ꥋJlQ{CTӟLg&UX~oS9<p'|RYYN7ѣgR˿<#i 01Ƶ.Z:L6s?/I]tm۷xգoY ϖY~K#3Z|Vlpo.hUQ M=ؑ#G_GM'?ɗ/ xJm{m鳩޵z͇6JMRLv[7Ի& J+d+f}>h`Ղ3<Ȥm۶?>>}~ koԼyR `3~`tW prT ЮH]i{hoJnR1V4<x%D1O //km@>N;qҙښq&9O߽;44___Uloo_|K_zTf S-Ǯtbܧh~)V-ӱўN^[_:7Ge, nϮo?T˯?v3VP Q/|'~Gy… /w}+ t4=+I@{@+2}Uɳfls]URl彶D`m^;缾#}>xB .]ǽ1_}gb.'w߭_***z7~ZLDh[V 47ZpprmRlMݟQ4z:!//z<i6w\hQ<|3:}g1o=W[.N|Ea'|d+ T}ҵ֮?{@WT=ͳ…[z"7xqGW 4/ؕ! <[-0`Svr?zoW_VVvM7" 7~_;ofFFk֬n&gzW-Xm=:Zvvq!ls4|_у{t .Txq{%RmX9#@,y6@.kllLF{Gy晴,h[:t`䰓 Zߪwm闢Ic%>6^.RA<pTs~"]8(y0(Й)y6oYz@x`0(%S X@}j`{2dmj]!Oʺ/?gB}M^0 +a:v{"jpoƉOk< 0& +heՂ3/fmɌ(+k*V8;, n>x,҅!2_lކ`0w?yk9trCl?Uƶ/m'$ +w5\"658q/Y.ҡŷ4uѳ yyy١  zbߔ<15bO}^Z+z~ϘA"1tY +B[d{M2v(ى.RgA)ykR2RahJt趾Ƿ؉6F-;3hhz[_Jn,|߽}R,rBoal:6Y]0uuu<i2=Oq包tV.i3J]mR葖,¢ :7KM(yl#}fG[_pĚZt u:MUK20I ޳ιh[豿¤{1Hjjj0/{:]:pẐhW$we8V +wzN̝UH&QܸbO>u_~ιI'hT=fɳ" R LH1h׍kܹ[.PHΫ31h-/,wOmܱ}SXfF݂>'v[e7 :J4z:!ڼ"-v}1+Ksٜ3T8):[ t~aiԍ]q+5mx,ѴeՂՎޮ} ɠ[a@;G7fɳ;‘&\@]YAnW9ca5]-;u.&:3Wdku;2 } tAuЮ%@4 :{[f+t#fÔDL[]Sdt>tvE¢՛+//O=;4+)ynhhP'P dKuc֩qZZm35CKG t-e+e3a|CwhWԚ[ +Z\HL}$3%,01hWT+J~H}z0=. +n7G +"mR2>hܷW]+%;WJhfCYȺhhE,]=)dY/0?|xeC aѢ2GDg`|I(vEm*qQ9Jm J*J|C_X/ +$Dv.H30$@"ssDZRh!ѕ3r=Ѵ3w9tyV>l|+5*z`Eَ20N$zhjUɳsPp 4ɑw^mNisŘ1k;Lo R!|h <+^ſN@hO籞N J}rOgu%8b-$lIm# clkUNV V[ɣ fkH +5Iu_I4yt:*+uV'x<ۭ]?J /_=rZO[JY` 5IZ՗^0梅FCmH:n?Uڮg]Rhs v12ЉѮHtdKt 6J包Lѳ yyyنY"sCCV'Ԩssu9@Ǥu[(m4Z.].>zL 7wkhR×M'0i>7g1>蘢k]E+Y`W;a8{co(< Jg@}}=%2h+Ƶ +>b:n.h?|p쥌Qx0]SJt-;noC qLڊdͦӺZJ˫ v0: +a:nG$k9G65y%4hK`:VƴZ +gz+*g,Lm&c(y`B4cVuc;[.:X9cK4z:!//KS`/{;^?Y@4h"U҉RlZ`HJ5HkdA<Hti|Yje0[5l춑M6:Fm } Wc=]5=_/,һjzԙjƁ9_UՉA +;EEWXXI)4%&Ю`Hmؘ/Lrhl:7JN(2P=m8ƃ3=|>%`pӦM V'zJ$%v-ўNϋ3X(-lO* ZqLwkJR75dY]熆5y< @5a#LHzQ$~ǻ#_V}HH36z>:ӹ_,eƨcs (8zAShՍS6vy\mI&{5.Ͽ;{r|gz^wC@&M ~|=/,Zs9HZhY0lZM8:d.ϯ2o,́dޔr$tL u@R}B2BP8VۘM<[jj' 6J:J8!F9;'C\HZ ^(z{V%ϚtyS_Д<ȺwW_YM$N>Zjm|ꄼ<˾|hZmӟC"%555 @WT4ۓY"a,:5R&%ϊo>bWƫ-Oy<5S )0zW՘D t5N!NۆݾesV@Az:!֦pqHٔǗlO#sBRjM9R.y6}fGsG+<qS]9dG@hƃRxy.)lsL>(EU%eJ9?9H&轝8[hܜYEWhu.hUxޘ%ьE¢O9%&9l56HMxqrRl>zpkzw.<˹Xljv/:S MgGbe!]`_%5y]RKʦrus8qj]8wη! Z<+uuu<$ v^z{[k`=4\+nk2&ѮR跗Ι)p9'ԗ+҂cQIنR χz]YER[EP_Ӹk4>P(d]yyy9j-xy\ V[oQZV??^^}\|h3n3ԗ4)yNp!*)G3gs҆A1c@R=7~wю'rW*}[mĤk=}e{.=`uf l~:^:7kJgE n0H 7R[~gך_|ȉk=MK3 fsāV|{|+H'{ݟK.RRR|y}6 &轝Ms9ں\zðCnacMr熆5y%u*y֤wK=`@u&h<@"\pVQq٭|c___gJgu}%Mѽ<L~ӦMqJ:J A6J+GMt +K^gW$NCJ Cw%#fP(:n/\o~1M6:o}81ٱ !>F)&p 2Tԑx`xLQ@AWt(vH!K d>! +Y)Hv}::?ݢ7f:;8`1?t`uw$4nw}vxrM6#υVe9V8\V.\0W d4bf̮ctGF^{-@y`H譭j5m4<77W8@m1۵ͩY#QgW|sęy`d=_]is!.X6\hZF~s٫Ԯ}FN?߾nt^|SfjnjѝNgqq-sssfsQד?+:ΞKZ +Ӈ7 p2Uvvvf7|0_vwHU6S&Fol/~?mI=:4%}ߥ́2 p-@??-0 pbe<Zgh:󅅅[n-0 @2lt:ŵlAl4u|؀mє4A8@m1ܻw3cWrJߌ<0t2 q_6 |.z~7oy`*;;;;!@B @4!hB!@B @4!hB!@B @4!hB!@B @4!hB!@B @4!hB!@B @4!hB!@B @4!hB!@B @4! +endstream endobj 509 0 obj <> +stream +x݉#ygli]٦$kBFrq6a4#as heRT .-,Ҕl*v xf9C4FwG$ww8z?;|\Χ>~gOԧ}y'>lȖ?i㍿<= O9}҉]K~gBg݇rݿrfb`~c^+~m>Y +O@,)S~$/Gكg{H l7X~:4_og g|x +;%0 Dhjj/TΙb>mw+KN l7x~N˞y?umnkJ`ӟuS- +y6칼K`@~ዿ4d>O L@<3v> ;/| /;_g`'%/ӱo/~ _/~K3k~' 3~wo((f7N@L/ngw_qb'%/K`yoWa.#_ϘgZ^o< 1q>;ÄOD3[~' ~S*53ьÒVW-p#+g<3w9>~!SьÒWח)̳Qdܝz2v"Y; q}/{￸R?y/>N<%/±{Oyg+rx5/gwoY~c'%YJH@l_:/zp脫S:s +R-y1 +8l }O=~q}NN:y_Tؒ6a sϊ's^#1 |o_8ly*>/yxXּ?/RZOJ3KC@|_}1.r?UŷԞfep$ }8YA|˾4HdՇ^~>xUÏ"ЌÖԿ? >/JifՇv%_MىdK_}_HK!I.KhaK_}_H}zxvJ`K' MyC3[C@?E3;R;$L'ӟЌÖJ`0%ɒtȯ8_8lIH1jfD_G!WN$[>D&d2R[-_H?uP'+_H?ЌÖɃ ~vьÖ5L᥍~haK𳋝H$F@BeM६wьÖ _HP-rhaKw=Z)-z؉dKwJ+K_8lIΓTA毓^@ؖ< eR,{{Y-qys8E҃2zEEke;/f;h'wK/Tz(l*q& b)%Q mG+.v"H+%qb>@@r (m1}_XC12~-?KDp5Do7ь~/!rhPcΓӈjf/#<4E[9J`[t/%.~Y؉d&`=a[6ha_ Cz¶ Y|ő /iިW`'-/iްfE,A'`]K7(m(_XWۯ'; =-@o資f-A'`}gu/&%5K_X_67hDe& _+82,;d  '쟗ſW_%-K_HoW`H,/qXCH;L>q~!{_G>M>b'-+˶_qXW ؖ×ET<ý)qXroWfV{o?1v" _!8r\>W(svalHV^b:,'Tdz}{D3-+dm}j,kjܼ,z% M7J\E4 XvtfY#+hƑ9H#ahƑ-f"؉!eތ8u/ %pV_82BhƑ F3,v"hь#u/@fi#&؉.`f"(SDLь#=/S4H f)!)/ qD3؉6_8!%z_@"4X Hfk Iь#9;"kGB/`4HHI5ь#6J_h H8!G,/ %Df_@jhaH_@ha H8 ьCf:/ DR# % +;Ќ# %p%q#٢G1J/ sDZAG3e/ _@.؉fA/ /_@n؉4GrD3 %䋝H =aQ ؉D,f/=/_78B, q L,:םH/&޻eX/lA,;/}lAۿf/`%D {VͰ_8_qsϷ^ߢ1a[v"P_]|]nْf/(#`S..ۊW tNzb;gv"oAqf ZQ~{kv-hABt]9/ؚ1;eK`g}R[#flz3J%%y}t;nAja9]`џ;ˁv= WޕhGm +{px/s^*{lX.繐B>JBgC_PPZ9aJ`;6sJك?EB  uXoxzs^PYj= z @RY.anr]q8_P8++C+&mVP(Do _<ˁf =R( H'^Shl JrMSuX3oy~ *_(S"kN|C9G7i9О؜tVDQup,xԟGw(s1/yt-'''KXY<9l;1c{eCJ`LEQՖ kTvg6 kCiKq|-wMhA]JQMՃ ;PbۘTOg'^K^`9о>@@B>o؎C˳/dk\{ժ^`,t?-_|] >k+6a9>:@@悟rUt[as͇k-r@{^ L@N 6l=bm\>᤯}ۭjv%QOK@.G#Hv)_^.jCfYz  cn?|Saa: ٩vnu|A9}Fj+"Uz^uq~wiƑVl8N"wD(/q~VwBlڋĞzHm a%0 +ʷ|Lr~WD]/(N6ץ/Ǧ\n]8~rQSDP1`kJnwh!NOD3Me͇\z8rA5Ǧ2]N@zf;t7rWll NMeԜ_\|el2_7N*brzvZ>Yfv5  5bW׀:}֊lwxrZ^@ lt OMEao=F{p&j}3L? "~o'E输+NJJ)Y:D͇uP1/OK}㻯;~\>-z?*),#@A(kjH}jQzQQP>JJ,v"١ރM/(: +_>8rwuHm2Ņ{PۡXNF&SQF}l?V*OU^`v"YSμ]]Ӌ?}MGWϲ]jSE3;6Y0]KLN +vQtk<\vt|-uueB3=ݨhnFW27Xh/;l ݃M [2<6",?G {?v<_OCƟqX͇3bfW&ΞrIiuaK ltNiFWoʥoىdl!;OFr=əj֛ugqX͇\ȭ=qљ}ru_U"_)X܉D@]AeI!3H7J3K{_A wj[(vV4J_tJ3;|_^_{4l,Uc?|=|Ge :w/dNFf\ʩW+ٕxDʝe2&Ǟ5կ24W(5pX[o[e3|/d?2_yQ= +''rd#ٕ~'4B.@o| 4;\u'i>a߮+dKaG5'[T?2_mٴ| +| jîN0rkot "UFى؎×Eu ;4)~z+8<_V'8߾!=HİY{T6X :phah5_]E3=ͯ7]2$,aeɤ7GLk_ɟMbdWz7 #u,@p Mb8Nal'ۃ=X` d+o>j`XnefnįsRnF|7FKpHY,q앪 nP>|X, Yz}'$vx8SwM FQ +8|v' + Oo>6=)>V⣊2}E=8 'o>Gv_췪8+k>~w%pz%0j՞WX÷ֻʝbهlIM fs\h]IhƑuJ{-_ՉV;@pcgRک7{9D/qL;˯`3^`7 ';Z5$jөכ͕+U-D;fKj.Vp+Vř>] ҥX \jB3\ ٨[a]66jNG;;Pgő_9\ޠrk)aW"w:/7~ZVӌ#k/(Ur=rqwNҶuYu+u^ 88[/((f_Xnu"+JHn+S_PSoFͿn@ +'[iRg#^pK;޻>3$W(7 c-/Rv:S l˜u/8GV_HBx۝byr;2BĠB +7[V{]@3l.^fnkVNdW{ +,Ut49dڵ#)!q"CW؂Pz3m5q4T?G,RL^] e AՆ:8E@ +_E,EO^_\Tly߇f  bU ˯JV*+Mwymb +D@ +"MzQT?pGk }ENvj,h_=+WZ݌Z˱畿K_Xۉ ]J]Q3'{mku h皜 p,pB/Jo+dUOqP&hX켜߃l\ X`q3'}7kB~SLv8p[j)B}~=j7R'As~Xv@7o ?ϑN$q"`=2~OC? jmK-X{{Nf_XJDF ?+sÊbQꪛo4"ь#&q&7|7r:`ϊZ7T>sD +" XqH$0r{Zo+t*~8b! 19qЉ(Lct ?7[#Vь#oT*G^q1F|kM~V=ZN$s/$Rpg~#^ }e9UqSmhR(D!J{ ;KR|:_=_^^(} ŀq3 +hWH39|/d@,Yj4FjՀJN*&2gf& }rWgGzϭ>yg3W5ߐ-E'Meβ]L>ϝH/2z#&%4= @no썳RZ J4՛Ugʹߕ{ mL.tX ktzqyu}=[`轺I{~NZ/s# 骊Zia?X zW2%Te'vKdBp' iO(?;n24~v^M~ZDS3okR4FkOA\ i&vߣTM7ڍxK=/s`WjOxEp}+i?z[5+ <ޟH/ω7{b73ې^QbY'ƴ^SN4 @YVZөy*)dt& +G< $eotjkk1n\,{Ԍyxȼ +̈́{d~o gՒjwn5zDN\#(A9/fv"!2ή{cQfsq8 {o&@A-fۉdW{K,eY8c--5|.0^̞/( V٨Id -Nmm(Ujge}[Tn5¾bG3s;ìdG9<|-N$qΏ7FT.X9sЍԻ՟V·A%K0o*JRE L{)<'S;Qln(ީ +ʥWå,0 A‹1<\c7E48y}1ams1?s~X-şZ1/lá=R=!6:MvrrXqpts8_țh%FHݣqBڎ%y$W=9Oo?ڵ1GL1z{H` f@ X?-ǽ'Biovŏw +rBV9-?yC'˒?îO_I= _X= ۿl2sޭf/(̃g8Z{N}~8PX߸|QPlP?]&pFjJk'|ǖa5".s^6b\9?aө )tSx0aoS2s?ޭH/(;.׈ઓrz.N(rӽI`8?p<;cpH_ +1g;~~;A?~\OUī!l5D977t\XHXUOofޑI`4vכ~JJ ZFR9x.;%0 :qrfjn5;/b؄\f2o~#(V!|8F!dp[]={E3%0 +q +endstream endobj 533 0 obj [/Indexed /DeviceRGB 255 ( cFe%ɢDFHD' \n хą Ic%šD*ׂƤ$cCԡCc܂Cɡc݂$ЂD%زۖ|aɺG-pƹܰܨr@ Wэv;άݙzܑYCȬҳϪ׼v˝̰ӥÃߺǐLJϘשݬϡ˔Ӹ֊ܬԗ˂кYn]Ŷ~tʽؒɶԤп۶ֽ̜ȋҿj~zѭ)] endobj 508 0 obj <>/Filter /FlateDecode /Height 468 /Subtype /Image /Width 1920 /Length 193938 >> +stream +x eԡ{zf2D& 9!bB`(J0뺂Cs}eUCDC\}="+u,W ($f23IL2S穻U=\7TWWWUw\ emW En9{q#3 W);;`M])<ő!|v΂W}c>; ti|H+w m-[yV_QuW_g_撮FfW=3|ypݰmt`Iw޼m(G(FfhMtLB3RH}1t<}K\mݤtÍpGNp0yҫ|*qc?+$w56񍋮a5Q9Q3m J#:}IdM (_t2: +trw~ve(__ʚ}^ +N75(vN"lG}͎4QbQeKUjA7/= "h\;CdZu7*h@t]j}D!Jr/=q+M*֐9|T\ahtz~ +IZQRIUEѠ snl^b{k%붑 E?e;xy +I+R%_#Ӗ"C2mm*wOM Ḥ&UU#:z)|w[h:xHzY[0=TWmkyڮb +Lt\y@艕bt uKZSxWwui8䌃Ԣo؃/i+{"Z]S8QuBz†G"=jha$pV%HV]ޥja-=<9Iͳׂy±a=Z4}xY&i𐇥x*mWzѝ6=;ٕpż>&#kjI:*4=le|f/26zdU~A}>OF\.}z =>lۮ[7za]On\]1'Fy;V_lO+HҾ{kOl o%crӥoz[ Wk3/]0n^|jkH>=RW~ưB:.]еlF۵+ѿQ/V 21 Ϡnqʳ^.G#&^b~(izO@OUc;AmG6h:t^KU*ûOg-|4=_sgvC'ɤC}YĔj$Mv?}b7fx.7 ͡{#! +؄O6ixM`S;՚wdYSRJ>DM2Hh +}uݤZ̶y91h-ºj8 @dǞ?.&U5 ,7]ބT7 _-/8Y0k,E@Dh]J8]U2Ltt byY'#"nq',MXp˅1h Nut}(Mw~%p@w(PN?rF^z184({fF9%4N+/c&4qQN嶎d!J t 3f*& M:H'n/fm#ٕWnDpŽw\<<>U9#-sOM*y4Οm hBnS.#=r%˥qu"!W5wK(-SRUVURjd'Z.$žŃh'_36$;6H& +yO% ڵ [(E GfҤ! @D>6G#&&hW%gNoW~]}ʜce4&s.äؙ6luXdJ2Ζ'tm~[;ttMKK'IEYu`?17SCr= K޵`$"1Vd!Y} K @@ԫI8Mq'ǵ=zaM?}fIE7_|ɂ <Р+5}774)Pf-FL_.zcNcC g0D;G~ޙN!pA00l&nV ǝ,-o^@ +c!@;}:WNt ؎u#M?E"vs_?fVjg~`ic1@#_vf~ 4 e٩\klPLchD@I4$ּ͋G-?Z*PU?uw9ݍiQ}gwKE_PEbT͵n+8s@c1;"wAf/GY ]gh6g-Kӷx=DD)옑fږ  hb:%]4~84}|j/DCw1zɭ3a'J:M/9f.jo;΅l0<pqo&Fֶ78( :4Ri:0hs'FNaMb7))]U=s揕V!TO,B0yɝ% ڍ*4Gdŏt'W[Z# +>1H(ew @M2Lӝ+7Х3>ptt/[&_O>;q*ZqStJQݒ% VdC4 dqܗGߨ>e]4egy koRK}>ŵDm|FA0,K?W ˴3EiQ.}^C=>?rk 8kgw߀s'=ks XAD2\6ѥ +sPn=h9H!HyWk71c`X '|> x2 +a"%)\ڜ+fLu7l!I&dQqϜ '[cݲP<uS2߁th,?cvO6>$@R`|SB[0LA_$4 [so'rFoCpN'slFW{|#jHt݊L_OB9BWݙ⽂ۖߵ'ٱ7w?iϨm]aMO-d]z>YiwLWkuM:7(Z|%oA!r54cؒcusW2 WcnS O]KU;+$koVI)E^!{u&}cp"q+, \?3erz tP3{Y-;h.zХ#OEs`]tZ;:Pm h<]Ʒv{4<0 InwLkW˰s6Dp|M(.,\HdQF0 +44xrQ5 +E/On!jgo{XIns90>uujջ1Rfd%LaMK0:C G+'\hF]}$oȺ6jG HKӗ@X L#stƑ>==~w`,fԪt +h^.$`q26ҠnxI`s2ܗ5 "%%{tUOfLٟ (hTI?m8Ჰ16O/zۭȸ7z/l9k"ZqCrϵ3eʬ_}t9#Yx#!)[߅mWʷ}w,5>`%xk8!c83L $Tm3fAob +YT& 7i4K aG~g~`uOJb4v׶C^ФԈxѼ.|/0VA>Ĝ~&-wQqFJ2`ؿ>a$^? {(j8bߧtFѭP->'>,r`z:5e]''s4,~X$PcNMFQsn$ML g ȣ^TF5[N]2BZ(#,d03{6-@iV+߹1?&[Z14h(I` 7mg<[g2u?t*]j d=ϯ]sszX3 EdRS$W #D/th~<ۥN9<]X>МikQZ@#Y.n +[1bN{/ 6m[_ue4l6( 2DpXg.jC9<V%h3pIԕ^hAjʮgLr ofT̴u)'r l=G+=޳$=٭!gt[ϲ18pg +}-?=4>jUrႋl&wvļuѪ)*@Ql2hh`˽I.uvM~&7_8C38%tYмg3[|͋B %9>bhEAh[ ?YE琄Bw o@G ˈrjyAOF+%%g9 JGe#r&yw}l;>o^k1|Uk?}q!>5ݭà"hJ><F$>gjJ7wK7|sh^-6< #5L4kU3es7ӆPb`8FQl]0\tp=c^G!,V8. +D%>";/u [$4aYK;J^̍ˆdf0wfye+75Eb"4C9Xw'4V +.%DnS{tlgjC@\hu;h82g0N2T7&:/'Ru 4pbg(^1ۑv { ƺp%9Bq;ѧL +c/CQ2 L?).Ы&ЎPUC{ '|pjJXcg5}Y!a?SMfa^2@ @y"ru)&IU#w}'lHMR$ q+Zl e[$;Kh]c.hAUObMm+(z݅_;K:'U=x#͑ @ʼAؼWp;v &JWGƒS(4\ -^pL8߹DzF9:k-^=͠+f `rb&|PlM4S68/[:^i,|+gY qGyF&2"% +ZKqtOTAW{pg=p_62n$2upPvBVs"ch o r9ܹTlyNThL@,%Hמ;|mgā t;TVh$ds|O#pg]A3e|FQZC 0kr|]y}f!e ) 3u'3 2j h W` hĴ? 5g6ٹÁ14h   5{ic}6'i  C +| zvzC;]2}HjVhygʑWS% +`; Ժ>v8caOR!x$U2%1-ծ}lDvuv'Z'l&^7φ.Ie&!9ͩz}:vϻ8|h>#w;hıλBY׿gM$?_GK7:BMW=puAdn3`UEzEѳ_IC!8ZYPziH+24Df$ctRN6m@qVJ6lϋNpu"m!B5YXLJ;-JB}YpZw@Uը#IȺKwtP49Kֺ]d//Z>Y4nv-?x|+L*݋gj2hD',UC9aY!{lkh@#n(ҤɦT1Vqs#kB/?tY7G{)au +Z̰: 1ͼ!vЩ}]kۡ}xVc]gaoVoBêXg53`ִĬ@s +9SA[ĹToPh06RjO(u;ʶ떇N@󱨑4/KDŽKIФG,z?dm&wXCu#Ϻ6zgM\DC1W ]qovgRP6P($,gNW_M2 /IWn/sмK6(UU7?y4sfSi{@sAԦrq腠Q,DO,\4klzvx`\*nS4|^Rlu&- g9cKaֆ.'u)ˬ˔\夨oMYfֽɌg;.M`@wR 0m;q9vI'ܺ5V}1,hl=t=kb3zhk7A<}tme\wWBKJUuَvؖ úu]IV(>ݠ@H50UJ "XHb86J5  zKLԕ[UǛ.ZXBz2l OȎgC.@L-6lˊ.TO[rz$ҳYu5bX}a `=g2 cLJKˠ';gF7M"J~1^|)ahzB?13PΘ3eVL/|#o_M˂, 1hb6TBLMZ%8'4ئ)E+j' +7xz[YoɊڀ,V{m:DwSޕDP{C{~qG>} 695jR4<,ƠbV3$>@23#wntj|_j3EJtmʊ5+;KRD5/Kԥ68)!!ݣ7>ZO +ɑ䢓*)ŏLL| _vːIAobPAu!lt]OHj!Z6STB3VI$cykO,FbǑ PCբT6ҟYjʆ/YS$VLOOLn5]adYG'P$I]m?ųMHD}@̛+WK7iRQ AcUznYIJ`MfZQ(-irʐrakzbռϴa?Pr .+Ҥ!{2(I3 Pxoosڵ?Q+hFC!%m0%%l{ԡO‚Gwqovn"ݰ H4uyǶC\1ŧ61qy y)h BuM3[e~igXvW#sk?B>HzZB?em86 AZ5K634|SQg&|tI26;3U(Q!!YU lPrVBAC/7eu> OA3dTս BU u=aa-`jAnYCWUΜ=Zsg?j9GΧY;[C%Gc,3{)jۯ0]gNO9iX YIǫY$:23 +(&[sdS')'U^ƃ|u| + e Jd +_L=7 @;HzGO+NEP]ФUmݲNzr\4Vؠ?EUWk.à(lwa<$ˀ+FWgrNa<;21/Azǜ;挘 +Ȗ'BRّyCho>uԼ!J|B/K6`ubb!H0B6-Mhb-Y5mImJʐ%h +It|g TR$\f$)aM[h߱kJp`][3+:R.[CVȬ@(10auzX:f&/ +jSRrȦΝ39f$/)uZ1W>rHaHn ˤTywh)m`6~2gLL'G DB\6ֆ6F7C'o2[(,r*H]DwQ ǗysŔ]>G~sUlWW4謳~ZvW BS=}K`ı?ScCqk}გmxTɼUְlilEX)|Kwm$ /nl̴v YH@/,zr殏W/E/5b[DOƋEV]קOFzfk./_sqW>BhhzDzbQϑL76ugo{ZJ F k @QlU ͘;>hhsfeӘs }Ϊɭ;`.aao8VJ\Cx*=vS3L3;F^鋘g<۔t1H8, C5.<3$@rߣXqI! %Mi.3LW p|ԡU>k-5墻)OSZ mdЭ +EU:CAeR*E"q/kn"H?hxhBVv;C}9PVx le}T\ 'BjƣKNje`i +dI`LYk0?.1wW_shrURڎ]ߟpZH%ZʶSA" A@3]#l%A7k/MTae).;2=b9z5M Pn҇wxRu4oЗ1t2*Ȇ>`b٪ÝTE-}LG^΂G՝k.bCӛ ?9ůGD;C=R?q:zCO4}:@EM))bN,Nb ؠˌ "kcsǂa0YC};i<}.8|0su CbLIBb2MtTK,FGǴǒ*? )Řynwo0'j!E FKA\lew&y`Nfl1k#΢V0#h +Oya3,,vcd&4@1}QN 3fy/YD"tguv: Svv+Mޥdmt~Ύ̉]Iht)t|}:rAvuӇy7QSґTGNbXJACG1FaͼX-YV'#x:Q'A; D[6_F[է*nw(~u4ymӁm-o&zBJz#?/S+"bB0ssU q@ᲛUKׄYyM7Z!ٌnܞII ӣ5 M夤k)% I~1H 1?:[S% :3\@i ج(ٹ~2ujhTSi-L&55H)xM +/=q3hO? N@,H8\0,91=ױs?y+؄ZUusEùG>ŠՔt9YVSW\T<N"}@؍# +c^1g,:Ba x,& O%gtfFl~ 14 xw'.A=q\hHOi5. v|Ti+`-l7$i% @fhCh +z=ޣ &ξfNI=zt!-7T]sj(׭9kczR$D!)U?'ԆٽID,iktl'xy77<^TMP,Xe237l;ӁVN<(LwIVh9s89ۇEV䚿Ā+=î&h]js*AϞl MА^v0ˈ `nLВe#j1a^쒿q ]egO"8ƴe`@qϐL#"Ɖ܋6j\k;+ z}RU2mbQ5Ι%5wg ΘA]$$D}fwJZ:Hvm\߾j:W|aJ[c3{ǢTqhAG?qzޤϻxh~:ӁLѥ'  "6k69߬Z\/o6 p.WjFv=ڏ~ s ڝeDU|Zǽ}Vs@ʖ< Îfީ"~Ųp2Ƿ4ǜwL=C-td9#@(j +}ꅟm_>ɑL +-CT9C +il$Xag Q>_~4WqB^3#UBubef4Piо%زLa6%YeMI)L0 >9 *kZss14d#:M5Gm0]ҾOU-'dfqS<#΂%:%溔@E-ͦ,kޥ7eM1/UėIJ/FW2`e/ ز;&-s(ț +mYƝ(;` /' b/ߙTtz]hMчDUҍnC* F +vté~{_|%=xxrQO>  ϒsm9[N5up8}d{8"f(x8"f1|8i&.?7FRvڀͶnG$-vıi0Gt|ҫ\7~768*(ɿ.jӛ5uE!{!"!ʺ2+JmS9glW-s a.#`3\l"S+o;wLm-<7h{2 + }YU'La):_cрf@3h$65?ggadRBW`C"@3x4^+-w '=9` uok@Weַt! q΍뺷vܘjk3 oaq[lҐNJIP<] ;s,lEDPxۢ-1ոe)< + *y6"M*Dotm"sA|^ +=ܸY](/s_ /^q9lpUUʼnaQ5tABHO  G2hYkz[0 DCG)i:ϳ9><>(b}&V㳮J8h,sg=.Ghl ƠYfI5)y%:+3ϪX } hDW][?v{"[>gKX~Ghj&%4T$,FltƚL[yYIe⛳dJQ̺we ghhO(jCf$ho/gXϜKX)黰&4ShcߢKt/5^%U FAlݲNn+_{k5\q3CWl3]V o8C7RFF5A~}C QE +[\CQY&K'FWձg͇XJ_~[o]X7b؜ubVйtf(fD{s@îB*MlvUgАÉC署Vޫ {Ϥ@<@-cq6D\tgJ瀦fkf+ð Ja=xY8 3f[AuUm,2e&hzʎV_8H倶bɗNcGo-,fdsaw3dX.:"\O/w̩ն@H93aZuuru~ˬ&aoZCiAMEtOa);XqIj5؍.gp^ܽ>h5 @Smyoqx@QP +rVh pfR iYX3<ͳeְ5~֩>A4P-Nc 3zRC¢ZSUϤ%80K' Pђ +H]gNkWJJ]nɯ2R'J.@g[h-J6+4fj,=' .@x][Ӫ@9\JsfZ-P4OPtܙO0mC.LrhgJ;&HB>ϫOVҍ|xw:؟I%a ilu(f=b42mm"ũOY'Ԋ8᭿szɁ6K3zؿZ_gsɂ)Jb@`]^EZ^.Em X.IЏ@S>bgT@`ynz!緳Qis-Tg{yOx邮K̜Zy +Q0h2mC|erG3],˜x!pC-J_h{3̾_Qkg!+ +c1Sβ8 h:`h,'ke +fV4N[_~JRIR(qM"ˆ!+`@ҴIYUT ̫%YVYzNu^F?N_jTrprIG>gUUt&yq4cOB3Jf$4ˆFmx0m T9E ,< .Ќ2~sgs=U ]Yudв` b9F/=LOPd˺$$٩s2;߼$uڟm¶[BW+Q2ꬑ@5EIK6P*Fkp&аwˏ-SϠf峥ޯL?'J>&RĻSC'tC*%[͋# Lއ^_NitT4|qs|(}lۼVc8=7Rǰt\?@L$  +G_}Fӿ}#'&^µK>=$ 3`ɭ.ɚ&X8<idaB RUР|G1&X &*z|\P4H?~΢!{J1{A;132g{6䎲 yߞz7<zl3;{N%rj3Zׅi0Va҃^ +t8Y0b.6`8"j&I 3"cQʰX0)^+ $G|"ٜz, A11W .f%rTk}U,Y >We?w1.%83-JM- =@g>I;T2)RVC2 +>b&~%yAKJJf5<X"|YtGzr-g@z(GL5| e1+ZMܬЭà}@xj _ag4s+fWZLayduQM_= lWmYpgBȴ"k 2ݼ_\/KMk)>m\PR g)+U%*tH-U͓jda}~E"4A }ZmH !VKb@(Jl鲦iX9! 8/2ܬLR +3#R;r +R8zh%_.w{c%z1n}6|(DnJ'vZ2%M?y0M&k +]u'h 3iHڟ:l7DJ&gZo-϶'QG:K̝9lmK/X̂uGJ^*VEH %r0 fgQ]& v8rOKM`-\;3;zߎ^YϡkX5=t}[><}hUaD oo^#^˥(3}5w:dUQ2<_k9 +a7V3Kt +IA'2?]4V+_uYW"pTE4)"M؆Xq9 e1+r tXbXv Xqa4fh9 O# +[2kzT"e Hߵ{zʴk>ZCG>|H7N$g/;4ߨE/\qgWƹК40\qcEHO*Zd0Km'_VML遮þN@ςCUI4nش|g{`Ї+x9?G.=k#zpay5 +T }bB :,iE,h}q +/QLɂuq +Р?0ʞ`m)K[fxofƣw~^1T HB^;,#{ )ɼ&YfܙnD';CljD{xc}Sz9\͋O姡wW.6D_lƣa Hj&&9t a1t(ad>N矚Ӗa,3fރ;{sAf rW%4N`Mi5ܸ\s[H\ JfIlHytZd_MwRpJҕw}^/|n/BgRsެzT 7\w40lV>ٟ`|.xKy䱻~1d +/p/_c rtt1 f5p)"@vJ*4\u9sl u:)0:Z}jRmEuΑ0O%юUA?ӺF_W6MЇ_x A%FalP UۇRB6l<}v4ˀ%;ڔ<D bMBd| +9ۋY Yf{9egׇ~#5ov} -϶;{sW{-I 2~4<|hƝfWU!&7;slƾ6]v_?~`x^'f P,/ ˍ:\#;ʬneMQ=ibhFftlM[0z^+L&q~ X#ԊnY 197oٷY%݉I~f/:0F@{ t}duPJz?љ5')EHz٪A<77|"'̖n/YvZiKF}#!{l A3#Kqb>Xn0AG|´빉^b^ 8 5(ց/D|pUZN /Wmd i?.{3ІŤ0b4]8@ry zҡ7D+sפu))jИׁ] ǣtCO*3l4>KD; +$ϔE"wK]AJN̛y#[E&no3}+Z9%}w2Ya*buާy +c.\M2SY4o,ʽThXKA9Oh44$:`hHѵ,T5'/O<{W^gF5wyewԡbNOȼT"qz@Av]gs&jMbvŶHw,}FQ/! + yQG;grΞÌ&DiZyMؤwZH+7n;]dF* :qφ1뻀ARn n|aj I7ط? >>tCH߽pE$Л"vؙMotI"hz>t{&r }1_|Zu B K>R>Odq[Mzok؏B=} xWay}>zMAw@83R--"e;ԅ{Wꪅo&%%/u)5Dx4A|] YOZ&M<|5Gߝw~$Q#e˄#ٲ&q6XUI UвghJtdB3Zb-t4q/A-:MI/ɺY挡8hfFb[ˊа31(3FB#&\ +GٕWn}C#Ǭlt=ΩT +μ:u->R!S!d>fnLzt?t3EǛJ,N|pM4N'HP P +z}\vXqXЙ؆I4fV A52G*[bsT|4-^+>w@{Ix-ꖐ΍ R?vh fU/E8w2zEL 4ATlOhp>60=?*Gsn AC~⥉`et1f4ldٰ޵^Kޘ3>|maRFGT@ΓKR'_-WU|I>09MN|$&Y-h%Y1TqD7b`YS^DL;]Eb]tC JFf !5Gd=1kcʆc#XS,3WP0HάlѴskLߡ(7.+Z|42=QK*U:<5[#i-ɺf/:MC07`gMD"iD_sɌ 5<ׯ_N߸m07ȏqu>^.uThz$Ԥn6Y6jl41[7pV +ѳg |w@Rip"B[MBﷰ˘*ggnrib~bxr%Ԥ<|+}ՠg%}&{CE +j~f&&^ڽbuZ7E'f"|ΧBG1D&@{}nݴBLU6lx lx:,s]R/T*87~'mC$!(hP(3R*0^U]7K*5 v>㝚h::+ۂk+_:_~@4J9*V&%v\ͬpg &ĤiL .@B uп_8aFfvиc@^ɝ1E=m}5fn`x#+h@gyoum{ Cy5%n/" |,hc8#?Oj^f "GV^g"[Bz⮪h ^+fռ4q$Uhʰr@%4N@hG\ިYƍeXr}" pYocZ)8jaԴY14g;{\n;nYpbxYAF- r&^~]*_0N^JW w!j ZlIsǓr {:,7 IO_.%&[P8W.n},Dj$C z@P#{޳=]OٞT](}7)0̾{3XCήHFdy%;rgQSDDʸsB7&(MF.aWT&3YA + !r&>Fܙ6~V賮[=Gӳ&\`sЊP$G!A۽/|6M&|A: Ugo{ַnq !dk3: }FgN|y٤+DLп}~m؜Ct]gA=p)ݣA{5"yǘ=_~-g%z/U䱻~13O >`?Hm9[;fH0 +ɑ.&) _4b$>7N 承: %VƍA8LW/zRt;Xlc ;-{Y^;V_y.q,?:}9ݥݧ9/5W&b Ћ;Ím@st YtokF/N.c%_{j tf@7KN6?]Fy/ +e-Kc*j6agFХq9e._}ft篯]f "&) 8C$ۻY_ Z. >n\jAHCP2O +" y@3ûI]ѠD!e011a]A Zr\ -<u +XJU$x,A$Z2%;!%:\ 1X)N@gp#bAUU!P dj^U1;Z[(#1wXϱP+vDMuz@)YS@z[ΊaNA_oC?E^iZC/{1jcm͖3Zb Ri_+kIl* P?Nw2-+|D|"n|㡗ʷI[n ܀!jpE]qQ{5*8 CF@kAއ^~p8.Sl1s\ >g_]ҝ `et`J ì&f 4"z=n7Uu=|Z ͓򟀯40Ka?4DE/jBaKu}.!qA,΢Eءho ] ĴhQLPIM\pV=ThP)k+WfKY.Ab`(lmC)@ ܙ[Sɋ +PRUߘ;v89 jt-趶+ qqN}?wl z N'f gR:7ogOCL8=]5yæy]ѷB#EÚXSZoģSKɉ,-g/>a }>a! &ޭlFISo@RLW9#{}04K*7i!ij j'wF5Xe>NQ5B Ԭlv\s[o12%_yvX>[sUG/wOP j[v[IZFq<`Qiد;ݼ?-WUT_^4|pblK]nͱ-&;)3#1D#>] $Ĕa$2MT g8OagBj6 [䕿%E# +kr"s ? ??4]˳הVh4JW]emࣨ3/$@`ޢJjE}zXիZߧ\֗ZMjoZBk;0Dd/3;n 03;;3;/|ag.RqEK@(vШ$E q"Ds" \* 2W ymzF@X6:zxMC8hB3sO-z6sl]TiLL5hZάCv!CsWo +MX*ӝ (q|^(.[]rS_<!"Q5 " \XZMRUعnqEy4]XMX_`#r$//r9h{<{o-{ n ޞJBO>;>yF#3vRcx1>*i41 +Emg7NYR*!'}]J½PHB90F#6F Y"rf4L$Ұ 7L=zK5&aR"R%)#!is-MBcP|s|^ԃ~7/WZTW=H~{0R h-n,eK5#4`~*hArJ!y^{ 9f])-N}, m==%M$Ox~_f\s.̬`KV5C?"m=Ci/ _Ig$g/ܽN& v=_sf"+F#j5y碨8 #’м81w!}n M 1MoHgB4>{Af9AM'\^ z|}п1L;՞/i3&7+g4T&|{S$DEAOsZ!m]!7=~^k \%()0H`hM=LР%0 e}e=0rLi gku02:wBo;}}}dSVT +-#I5r}PKMŴ`tưjM/-톍$=8Rb,-4;;\8/RA<#IMGq2,I6do-֥hm1Zm4 (D}Ʈ6@{XFSニ⫖Oj O5?iG|>SJD@4Mr3!4[ٕq讬94r8n: 3G Eq1A% ]eŸ:ޭ2ku+fTЗ#NR41\+4qJ@7ΈN]M/Lʇj6ގQQ~`=6d 􌥂uj3RciTlf9yΤ(0B6$t RҒK}s_ZM~"]ؼ wUtp^(PW[%bY=_.96@Xj+`@h B' l~*rmIYf){4n.Zx+7VH 0?}S5!Kj%):qי=ׇ+|VYU5Qd{s +:X@_ +lzlCPC5o}ϲ[ +!VsJ21nw_S>!%;#>zj ٣ZZI ە=| --?uՁHd2B755bcŏsXP"2NJ%ʖ<*i郇uUM1͖CĪ4$#rԻBV1 ! +x9pw68;3{d}o+I-g k +O=K>OFb jTLGI=/|ŪRѫ26C@߲ Z8lb: ܽ$A\@DH2ag7F 7},`Q7SV bʌHjS+3hw$䐼$\GwX17vqƔ:ዀFNkHs側[A$ h'HQ +C:%EL[}ܺﮙwU%׌OK 5oErN>[\L'~Ȇy{pHS 7l!W̪A #WOfX׎// co!SUܢiXzbgE\pǎGq &"委%,CrsiK\:3?>R0V'2iS]?=dC3IE//k#w=O=^D03"JN<T*@͈aţj5Y# df|H!%o'bmd`38k!uhvege9ˁ5v{k0\6;h +!Ѻ-)[f>bhQ=& +V&|4^^*L ۆoX냟vd^B<*b )SU;U3"HrႪ,gh]:wNݸiN$&Pm`b*&zɴj% E-gxi$!YgZbƸiih Ѿ5{U \*\8kJ-JƻhOq]kfaIBOQT+U 􁯵ΝSv<>qکU^0x!,@hdz#Hy +ٲ3e6--SX*v|-O, )ټ3)ՆMUg( >#aDzRWca,n鹭-|AT}~҇:RKJM|~QV0prV(uIzNk41hElIOZ(xi ]5@!%nd !/VB(hAYGs4G B"ըje/HUj<[] nkO7~m9!hZ kFzF&a8LVChH+& =h T-H[` b Vm7 K@oo߲Y5Xƀ;&tTx3xi!: + p>KA\PtܩR hj~S?G j¶6[o-]KZXBK6tmۗI%LJl9mFnuϫ/_P6 yGw<%G lRSGJdS10[hTsfѡGh,SՓZ.JN?__]GFrL pȚ{=9*(g(-%+C@940рS2Vqu♉0F mj΃nŋ=tGFK?BU  U2t Y2!ə Mrx{O3)éZSΨQZF4hQë$uQ=hJ$D'2`88:Ayڨ&o] O~P=#D]e/zt|8`̩GY 2*Y$rҢUQ6/3 I(oFZT YUw K@~y_t[TB-aڳCsUD8:嗯Y3B>$T3;M,cr +5XjmG1p{+5Ueiܷ[σ8zO\0d~[R)-EiZ2~B *J;)-Y0XE0M&ST%`NqdIMY=jRL2u4_.h|L"PG99_E^\MυsCS"Y)#}3sRh=I&6f헼 h@Vrwg )g;-d^+Vy:zJQ:E0I4jJTq@Hv^{osMt'xdk{ ع?ܚMbwx4vJ@7 _ :|]Mr\XtI4|b OͨB #h?%yѬ콷 +Q2ł?nG_3+>Zviji psB?/=ho +Cԯe /5?Ce +qsՏ̙hB4iO9Gml w% ٰ?={fKe,چ_Oţ1 $LNHpUuh4Ӵ57ZFZR򒹖kbntAp82M,tZGBmmÈx|OɄ47E@gUL"GLhpN`r=:_]VLy׈:y{L7M۱ɳH}Ƙ2|&m=cMb#%4<;> GecX͆%O D/{ʙinXslsQzZ;烦D%yn0/  | tz):Coɵ?Ua.RBɆ@(ݫ@x2 MsMᔇ6vzWj9磫VU=Soe4 cȲ(P@3 qE男ƚG g<#ws}w,A<z>fFG2E\p7WMh7zؠ""hDWi] 59YkK ?xh[79%P3jy_(GGgkl* ~#1KT7=b?bYܷt[24^X}!9jK CcJ_v<7,5& 9 V|vbU*8>9O| d4-4`^هJwbgѸJ 0fP*Ua~|j Ѝ)9"w}:gŽ-4A׭QzRAbq 8[J}v8 pO?{ႊZM8O(+6"Zi潿ݝ N@߾B ޽hiqL|k/M +Y~ QQa@҆}<*/.@G8dH0x Sτt>&GH# 9LhiKqtLCݣk7䈓dYxP//Y}I9]2P#HD-Sq?oIcR*VUհ)Cl/Ju3J;վJ],=Cǽ逹5䥹Ngz8BO[:2"WTpx1>zd&,N Z><7=~^k  Ratc0t$ ƴQF 1X 5A94ދ>c۔Yİ"5)SIGu=͹֧ pdP۴wF +>Xjdjcg|=h!tCq~MZ"qt6G[z9qx)ސwWo h{W%v?F)OES {xӄ,fB<1yZmܲ F!@Mֈkb4 +#0!P?ni~p\8p{!=oǮ7N>a򾫕繷su+Nͫq緽jmI-O1ToKfԕ}EQ؃Q>IHf& /Ր@([֔db.6%iZϞp>)vĿgVㅖikܱ͌~c~գ0}.5G)ғcYIo?9n3hK6 ;Lc%M_laБ-BYzuӯ9$6Ng*xkC,PXʆ2h9򓝥ݗI#jMFfH‚h%WpxYPTg9Y๣#l#.K޵y2>/ɬir>.;;Kj0KT#1]ß?lii/I]oؖ.of,-!529X՗s?-붿sۜ%?4et둁Gx@Y1 mTxDq-wl K6|4ގuwL}s`>?:ܶM _2k'_`v%;ZBP.h< f&l!QCpLNSq[ۊA[sw,Ҫ7< @^ϞB4(q@ ?sBp41&׽[?{Q{N ( +} dZ-`|ٴ PsBK`BYu^Ow|emfnhRh/~lx +Wo +% 8ʮlggWٻdvMm9 +MI#J? hѴėʹ/@7ĦMz7x~ .о\F| {O qD6&e oQpL&B"AIqKkՖj6gs2@JFu 㹤U>\8ȬFMmԒ&ldh+8د/2KjXӔ +8DD*x4f5 a e +/Bc>!?)FPZk]8RhwwV7_=ЎG/z=oH)m1u f.r +#܎4@r 9=} ݆Z#dxBUM kٱ֜u5d/E-Rí׽O[Fr-z9z.gLm>+c0H!AŒ)4o'hA\8,^X`4 Q̙UѿCy=$ |>B@UcZ.M4Mv} +3k=]IGD3%۹KBisBWMǛ<.H.h)$&M'n?\mPҳjyh'P+$8I! =|!6uQ^h 4g};MsmvekydӞpnLP%Zf``¼TR^{>N+NK g?wҦd,Y1"u%ɦf/tgP#EoE?m_91VcF^e8DqI5M,m:RS=wz]:ZVm&:s9k(QwКe%%?cA1yp֒Y? +:(IaOƲˆqа;6܍SFQj:_LLfVBPV8A3 :z'+i^(Fd X4/CP+Fts24fՀ6f| +QlB _ -{H r9ձzsc[ys9t$`(SohM:GjlCFkij OȆ+ I$e69w|yI#>|홁{~2qj&N.{fQ<32e4/'#a_S ٲһsMIL;+Q[_L AHg~+c3?yfso&W>p𚊚]hsT̆UH 5p7N茦ŨEU{O(zJ1Ҵ2 Lae\&e*6Ҟ{D" ^O۾ھ'E G<hÐSPE G@s~ip iZDQҙ5] d4wi4?K|".@s}28@@s7!jMx vDİh ohl᫏ǹGK{ͣD #LqFr7{,EqdcKXsOx&iJggIѽDe͖ERg9.%/XtN 4l-ux+&,~Vi)[Q\&S <=R74];T(,&gv{mIO> A3ܓ~utVX'"eo+C^3|48ۃhen4Gg8M@k |am)3dU"XxmM_6Þ%Ӆ ~}:, "8ӐG#2!3^hI6Lh`P"njytkET@@V=WrG?vA]2n~J}cyoX J $/}CϾ +-[H5̈iAqT<+ 6G3|eP4c1>;Tg/5%72d!U[9G;q%$Ytɴ 2z)F"4q]|c[c */Op`k0\\Z # `ᮃ&a Hו@gf6lRn. Zru}Fo} +4+U? 4S4Ŭ2aB: +$IjR)X-Za9iDӲeMJ%9Gջ76` X}Vݤ}l'ea~!"x6;}Hn-h& hC@xh:[md’!Ӷ% #jfl @Kes9WF(.ţJL7#S KdD +'t_fr4{*4 QQݬ1Jhc!oS ۦWJ*-歹pmzG] +:A۾'{?+/kΙT13NStN>]oEQy‡' ) Ev{?_a +vo( 9,q6>#TGl^ hhi,F.A%Y^M]R>KI@:̙ғRIZ4M N| 5~/nа ˃P }8h}Ƹo +Fv1%6ʾĸ<7M4 d|z>h:DA݌'dS ? 耕iH:^tHF"Z{h z0e ckϛѧ, +B(giC4&~gި)j51HomrP=>"4I _L%G ߍB#4&#co)..|E \qըn4ґs+UFp"-)0T\! !pBCe7>Ji;$+ XBH $p#ge\PTs~v y Ɂ ^rcbO<(:rؼczp \j >``ΨqgUn?hs)4{}~( DŽt˜{YX["`BEx72C7;n;ztqDӞ(KtPi)+'Z(PקItRvU(;C hx3u3?Ư}5CAe!mgR>)4&#h l)]uCc`HDM =%ǾY'#=|F΀bv(Ѿ.EF;{ +C9dp)E t +$4 qOz 7,ْVyNaXjaZ2h=N_2 ԯPu m\pS-CGlf{d_,BŴu +n[M.7I8po⭿iA.w-J0Hd\OUZ0wbU"ġ9hܺks9n߷>zǍ`\Fi೚*@0RPҞ -"jA@33k|g7P0Q}AU^K+VߋcR0߇]4^Bg-mP'Wͽď0Dp4':|"#3kvrL7ӂY-{}^ dET +ЧJ7g'_7y.T;39r;>P2f ĹT9zcO&L9]K@7p3 =GRkO{@vKtDƺ3x +2fg dXDcniqϽ̇,lgF>_0Ͳ6A@q\_I4o)!l3-vG-'#'"G|p$M69Jhy +Go6"58Jv]i#洢5t2 <;%D僵us4LhOHΖPMw/pXIRᡡFUVdDdZV,/#ǝò4 ehA4rL<#GFNS :t9~PƦkm%CX6Ip xhOHoJi9o73<s|0 T&jl@h I]_\Xa2@˭鳢FyMRCaT-eM:jww<)Dk AޒE9o% QMт|B3t>&=Ў~qAwK>)^E[_IV咂]TeF97rClM˞8%B1*0-$&"#@Ӄg︵gc=Bii-e+6Hwb&zID"y]8585w$͸/4sG|>'O}FpP]Z;U HpFcnJ,ԥӲ ח GڹO:_KAɁ'7n.VS3$ۺڏ(EchK2 0 v h^l`V3&~CC'Ѯ`eEʳ.i}w__!@iyzw+>7dҏtǝ+m7 w^Z!ػ[VpXT[?6 YեEHf/@V!(Pgf!q YqEkCx]u-O-Yjm"G0#|5\dp3, +O] Qkfq]aWgqz*7ЌFCl*€=4G.;c}Ġ^"6M ' ˍC?b~:\PH1nH ԣlT$:wcK?$:Zȅt?j˞|.fӤ~n+_w|yKXVȷ S%D-Ӆ =_2mx' bgIȷ2=|ڦ/y O|6gvxg&L;6@y +h@jz 0+f!ΊL e"gP@Ӧϴ?::R>"uVjK6tU_17R̻'VT4as&XSynp F!3{plDP qZ!°/m˚uBͦN>spC(#~K (woIƓ0L"qqBPt6_qϜ$_{}/' rg%!H$&o,!6q/ \s H/MxY7M<82 S x@tanÌ34-7,||44n0}9i@Ѡo$Wp0d:t_=W{o6:?rD$P4gAxvͅcjO2*B#LT̄F!hᶖOl`N>{Ӈw5]};֯|#3G?:8>W%3N19C>8}T KE it\XIDp뻯rܸۨ骙3Ƞz,o|鳘~z{xO,Pq IĊ6GL  _0I6.[.(HP`l6>d=NM'W u2˥wpg4ɹtpzqp5s2 +<ZrMOocͥc>KZZ"LR~ v>r0d)4m'wH?H- yARO# Y~܄8|14=&K^rKB ,U~@<:Ʒn 2wWyN@j7O 2R 6-Yl0{ggb+I@#zbJҪBqai dHt \t1Tso&W>pؽ\+|t蜞z+%+i7$˴uԾ׷T6nnMz~WOl.5FytW.NAaOY) ]`@cTtB(Q=sW>? $h5g|A$ +oT=F@7Ħ.j9\T"*_;l"=EY-.rQ1.G}J +H`UB=3pS) q8s"'_@3 .0j"d;_Hy86Sj#hLIeȟQsA E/^F>{>D-("7^&˝-b$^P=/ C&>A'ޯ[1#xwots tS' &娂oD!{;h*/& <kz@*+>U_ hW=e9,#(AjLgڭO܇cYBFaMtQ#覮QE/ΕŃ,פ}{N4h=PVȝٸx|ϣcp?_B_uMiνsIud|#TPM%Y"K|oFǠq;(Bك6Ih"H~''n+N\Ά"vU@0Ѷ!/V st'8=I8nP4%T.p!v>Bi";֯\}yϣ*[&5tS%f,ȩGf@24ʥ,ߟGme~m3gX}tc6֍L|$(p4kj Kguù#G +H!c')CH`3 Ɔ.s_ Y:m Eg2Q4Z9) +'bjx[U^8hU4C=lħQ2o"h."VmmI!o4C;6Sl**ā:-{48qH|49%m:= bSi2*rW M3EasЧwJPUI%۹y"^N˛'?{B^[~_bƕ)48@ +qemdK̺^}#i|ʰ@DoקОq.'t+n#/~|>9ӽPg?ԡCEZ2>ʊWU,$oOH!zsZ 3h`卑=3po"hӔ8zCٲ2kF +^eMI&Ҋ:֥QCSߝR*QۅR$C9>JO!dnsmeܑBp@eLh +4QfaYΎj-j&i־?BzĚCՓx!L,$ϴ%+S[Wr:tO3ȟ[0& E188h>^Y y (q3 +Z^Ka;8B18}B=E;t l9kHP݀ڲIAQV!?w`e8~BC $K-]3k>ӑh t jkmg")4y俁h{K(dp Ýf>44qB2D+N~x &-xl9=3xow%iCbߺeG?{wnI +[3gNu|bާ5 P/HsH|~xLd#9De}X&neLh @kz+1)TM)XO_$)RoI)_#y$ۿfz竷Q 4Ҙ%wȐD" D 7 +Ћ^ 2D}sf2^(Y&h%[<-;s 1uS?8Ƕ5EB@#3%9kϛ,|Tm(W7hxu + +raUHPqaVBCo6듡̀># ^w,twlZ _i/n_GR;~X?R*|iZ< MdR~cvn )7P.:a Z$+ޢs6on^Ԕq]?΃!Dsf__׼<rpw$xf8ĹpQ[|wd2t:/;mR={PYMQW~'5-t ]ף7w:JJ\snѻx4eI8m#{X>䊕@1PP= ܎!| )Oý qD4&11rG|| wؤ>q@8Sz~?g"8u"0:;cgΗ@q3[G@1F-> ,3yxw{=u]kg$sхSustW0.LoE;aKhݲ +U,]-FGC39I:7hO4^5V&Zπ +h:Z(Iq{Qt^rv[웁G lar-i]q0,w-ɟv'`]80\@PH +jf=goZo 瞂o Z~ng1&[2Nݠ/>TUqinP̒*-u? 3x8W¹+Vް;.ź!X]"xu#m/ԢCM? lL}PE& Sۤo$ò" ++M$>uf 'mԒS MѓoNHdV88JfV vA8(_ 8e;qk2KgE-Y`]Q]:D`GQ]Qɓ#55x9۹8sC}hd6l$=% ƅ)[ce5i9G.WrmDC[ϡiCah99= cZ4~tCܹuWOd+0@CCa]ǙB"7':9`+9 pV] v8x͜ \ /;JD Őx-(`y\5`w&.]" +߯p",C,gڝ] TJ'+u0 Lsڜ qGR|oM#o f\iּ2ٜv :V(sѲ2Z}uFUT7#3Ǐ$x]4MDk$|?Mo,`+F>`~W R7mM]w 8!YlYI5{"EvcSM3[ѷ_%ݲ*2ⰏGL@Tq8i;d%s'Cħ]t.#  l#Y"iZQCH_Dlژef WRh@L`c*H-GqUxC+XH0\$ԊzBxⵇ:0w} #nkM3tᖽ˛'C7-*r\wiWm P{T=#'k( 28!'(,j|{W'X =A;O@`yY^  +qАh&ߪ?940\jۅ$9jc@h$+O}.Z[dAY7^5ot?\' ?%RPTs"[P"Z^TO/\^΅;O0I@&zdd$LVPU/S^ ٺc9kQ!l[ }s!l0 hddߝE?m)İ0 䲮t a3Y[Iզ%B@3vS|t>qtcƼ0f^@CX6J5Kp꫞u~Z[|sFslq[؀pso *1̊44YKTJ`/L{G0!Zr*xh[iTBV9&&\ycCs S?D!?h43"y `kMYpU w7L4c6 )S0Rwn љ4 +&DZ8p4O,1G@&B yakmISBmJ_]sT$'_~;L@D /+]k''C=hm2Z DTZEa?bZ/kJ%Mz=م+*yVUuҤIcOy;cPCیPLG@L/<9Cמy\t P~BU{n7KdNΡX-b+2pЪiԥ@%G =<6ƄnNa`/ @Bx,/ʳm_ dF2ޑ0Q'[,U[ߙ};%5pYq`s}ې-8PnM_n:Ø$ e vbTXq |0 GNiKR~ñ@ۉ E!ĈM􎃣W$E 3C< x5 ;,?[*k< tJxdB +hhreFӿ~Rڛ  $952DzYf#03~R{&r.}i\9~Q"}6 ^@V'ΞE׽)D*FKZ7[dEIu]|+y$Vo&QXKh}9GBD<-d=)9M)KM5hk +J m})_;ƈOI&FLTץ LtLd%>eJV<`o 6Bqks= g}uchox]U 4k(&h,UVGX/Њ|q?`bfPv1wG#\A}M_c̞x!䨏A\3{lMUZ1a6$$aP&/"0L1J'`4 +$W[1O;hp;΍8^c\=A7k14+Hી.Hϧ4t撍^/9vҞ+vahr[U 2c/ K~X9Z_{^--ֿ/#5aꪆӒ+VUť *=Wpw@03\a(K@+)%І%YȒ԰1{vf_%ӰrnTYX% +@.ڸ>X!`Rܘ%ӴyJ21Rw0*@I˖N/$nVMcRʗE }Fq-+9)nMWs/@.HDՂ be"AZJ$K$a@]!_Gۉp-4QnzقZ^y˞xmMhzǫ|JٛkMN-1g>_>FN +WYÝ - `T/@!x"AL!;*UV "hDŚܒ0\ o͚/rkӣi{>dCS ]l=JhSxfw>xJT Ol}#~V\Ќ+4'hqfJo88k߫F$}WE%ogq#ӌK$ˤJ]:j +O@ ”#FZQGQ<2PG7&F gLz!1&49*m$ng=kpLl `ܨsI3|m㚥\=Otu'Bo}l>ӒcIawŭ/*__/2fVs+YNaE7*tv3Ԑf?< KrzgW#TDg܌>3YM.C*CY[ڈcQ٢]8hV4͍ =?m@˄4I> UGRFUH3c-j=j˞#i|XfCڝWU@Gw{v8x6T}m\Ye7 9_>po"a״!;Q0MWӳ 6M~5b7$փ?{'hӨMKx!t]*w1 _;٥ ؜f٦5)vWf]u!:+<:|J[@qd-j۬ix,L +` i;):יX يKQEt$fRZUiD@4sLLYJ+*m b/Ds)~XY{Yt6 Ҝ 9 rw tks'z/UeN[< FzU=+rv 9~d:nnGb"o/O᠋&/$2oGe j)Te[ 2I+^L]y/&zUjßC 4vEs|yF;#Z)zv_&<ō! %LsF> (,E^>%0H8`AW9)tɴ5 0MۀGX1c 0Cіs\;*N<o;B@a8t-C@3Qm_oH4Cf^=tEQUS"C8F!!QiQ%#5^SFL;3kVͨOxb|veSrAvM@v6+ie"q#Pۈ\ZJ)Ȉȟ6|3L5j*5^J33ZL w?^B*07[-o+] t@(Vl&#+~eFkhg&~KLշn n՞pmfY =}:M?frl$4Έ—7lj4AL`ԇ[[{qC-o.d< +b%tq ]6@F-` &v(%],7FCvP9Lin'^ WIŗPZϿCNRKuq~?vg OoOֱ`]v-tpS`7 97M^'w7# GQ!6´*tdxOj f$0!Y^()YOjȶugcd$lO?P҂h.6>@FQb1RS&-5j脉֙@N&!㶁ߥˊOzxBPc]नδS} 2fdfFF +& 귛ƻMƬ1/!?~n6JeFH"3 3az?Uo;gN]뜪ꡞUy>ϲ%O8\}tMhjg}#7=DexzxC8iTjI_~w3ݴec^cW+!>z^-{?rnHefY6jB۲ /1aw7{k,M${ +o~@]n]JXDAGd26!wh+e&ԆH +Π?ϩ=֋b&Z8ˉ̨fWj0e9Aiwn>;.f]iTz!˟@3y,`7DeO~-chp 6d<ñdof$P\ǮqnO/KsQDo<;ŁLt&gS#2jV=9@@ltDQԅ̈Iӧ@(g6o0QD[t-b4^P-t3c*JEYn=쁕J0Fȑȋa|g~f֪՗>FvQ+DIqD tUuvw,lr<zoή/Ѩ.e`-Z?T+ F쀎ݕMklXCDxb  giasu{0,P# gC6f6|s,(b8Wx[X5A/ )BHݨklB^ZIpY/)O gyc8VU%t$fRѼcHXCA*P]q2 Z{딲A92 1>;D & tӄ0"LN9 'o7´A6Es8'H e`vJJ~U49ګjv(6Nh*vDž hsDX׊q=*,;H)PO[dp"m,9ps{C>>+o{vz\Sol:Ӥ_.,L[s>Q'`ԑĨOg%h'fqjcjR 4Dp܃3p>9.|b5p`2RA>$.? +!r3T~ER㠧CNYn }<+ā>8ujP c@.{ʼɍ\ϲ~KI:g/RddlVl_l%ZT—myׅz9O8$1=Ql&NFbJ.` ]8Rh;G qFXz>dcNlH$R_= \TQ2h_ZIp!O@sɱD6aбbNfК3.p[zXzy۪+%PLcEhVnFl{rC8g\7OFD-v(vb1Lԫd48J(qj9/[~k{Lg8<9]-xH<cm:Cp;Nf'|z6>+nh<@NQ/'Ge:hf!M4gFJz/3= 8)\vZˀk8MGZ ofWc ͠U{(f=|٢lJs7;#ݳOCH@# L`0 ,%><)oL\* & ?|@#&Io΅RybKX[.Cz|Y1Ѥ/:ELbp<#,u.)Gs73 Ыw"y<4H_$`܎}#0߀e !!I kFΡ\v8V(yfKR(}mԈ$@w۰NgSb9O*&r hpqx};f24m: h,]Rj dP;}E +7D${xj^pB(F2@IMch_ը4 ƙ0nD3gwÚ)>`?qH&LeA4gFC3B կeO9-¹ls,-)lVtXzZEV rYDUm]8p5C4@" kCɳ\TnCh>B!zBalX0D,jN۴P J*y̸8Pω|H4BA-D^C.#b66F@hp@J̗Y>>s j|bF`#kPdx3#1M۹"Q~f?8<^VhlfQک-7m@:|e-3LwG ~83#)@^3lX̎&ֿ*#2g26~P-0+-G@6^tFOc8J>,l 2D#1`ݢmehQg=Xt 9%P"m@&@ +kBT9.lOL>{kgqUu}h0Pxu*-5E& 7k>^6˩~8#йl85KC jvRygc?_֊Ǝ}uNΣ=՗=J8<زN"AɺJXsΛ4O* g綎H|} A@(xn^b 28c~k27uMӳ]㫻E%WEý@I{}8cs7fWz* +O`68]^1pT 4R9;'񃀢xDU9,Xڎ6g/]â3/|(ڳ9srH﬷ujfnzܱ;Ƙ H4v-6HYImmS[&JS=yK6HC>b!U6ieo-]<q3Nɾ9&ZѾPRڞN5?o:V9#梲DJ*oQ<MX)LLU *T(e9 (JCnM?hRe@}jlOyJXv!y&]@2.bnZ.tKDJ2(ŭ929lop.J6;ӳ+ΆtHA%͚>7NN +M+mU죂|hY4#ˆq&j(/bI]pDZ?݃RNtɍv (uM f\w'p<ŒM10 OI9M4N픅*[M4=!`\:ASHXzcN4 ѵ~y}pXo*qfzIO=N'MPp`ie.X18 qEqО쓂}Nx.dӁ`$]10+w%6J;-,V#`wlև҇+fΕ᧦g&:>6J#LIg݋\}v nvYx*S\9|莆(\.ȢOOBJBrz.pd 4/:A>ʱ^}t'/X ; +VTv4њ.kO:,\ίOΛDGr7dH0ݕXFXOC7W-k<ޅ)[hV̜+^7J5QH-]q_\tCl$N#^qUD4JP=Mދ-~jpCt:२p|` WWiey9SɆJCJftqч +7s7_Q;jZk:t*QExfpDo<:vJΑ7%QT\,f,+PXLUVZaXKۇPdMG|D#Ǖf]ımf2&=F9)޾,w肇٣'hWvr>2#`A;<lږ%b+}*џq}Cl%}(a) J=gՖ?ngSJ6\ɜmy@2aF@s"Rq%QkgrLL*UUD4J#1tϐ|zg X0;`vT_ڇ9/ @S:Oc;lz[C=l^޶>TAtˡs62 zrB?аlH[@HFک=`\(K&V @:-4ԓQDt?̵ $)g`sZx<Ӽ4,-l &mfi ǹYo#r񃴛}KZta9]najS͆cu^l>M:zy{ Vԃ$\ZoX =ORXqƳR*6;{ y@M4^k{_椨g2sI}5%`~VF7O<: C ښw;,㏏/g}31g-UW ihDf +=' 8@ɛ^>jrr.Û`ҿݖU&,ɡO_ڼNlH$FϒD 0~h{|su(Uqh67sO刡'D8IяM'X (%Ndە9_l];uLpl\*4%B OrCh&efС9EJ% H@ŏלX !AKAsn w)X׿^}y(d[{ ( ~Lض(%J_ ,jvH~p/K}o̹/E7='^1Y1DuH,6K lx:E %deLg }X[w_B> +ZD:ejs6vZh{iu3|?>~J]GV7\ы'9OR +gzyJA +o 17O3fBL߲aa&Hu}D]{L8V ܎^o}Y^iZfTel"=Th+! +\3ₛHXYޝ+G--hoo}`"AJgOciߗ`>`@B %π2|Bϟ0ҷ>S4#.)˹P8%7Rrٟ?gVۆzcΟttNDL.֠IOg\* M7Na_5|YwE:ONJisϺ9(,m|7gJt%{'ObD +BFñc0>4Ҟ\nJ.ddxbǽ%s-Yb\OIm_+VJWzi f=G2bǬN`X;2v$>H\vm#߽h.Nz)tQJwaVW3a9A#L'yf/_~Ϥdeޏy)H8ӪmBєX: )SkQi(>th+~**$%ԨdG (,\v403dc\Y`+ l:(zm+7=i~vb"X,90ep@o d$V;F$4:S>yezGFgveA:EЬٰ]} oX}>i?#Vl_-0ѣiSCjO/_VYNsyȃځ2=0ED+ DOWsbMHh\2+[RmamLTW]y˂y +%l*G×m m7T/ERT֦g}p!DR, 1+&393{\@??? ٹ{-_|u<CTVU* ?>s74}|~+,K|c{L%,C:RNDՕFT袖t6#xUwxT4(⊟:4*2yKȚG.WRCPTK U44 3Cwls ą=DL#IkorY ~DG5 ]8 t=}g0 fż>/^MMM1{zӫuNvشs5o\Ƿǂ`:aQPωx'oéM5:vZ+ ?ew>ݼ +Fi't6heDѿ,%-)/!xvS,|M v|&c9hw;5dW̜{Pz>h+CgClVjy(] +xha 6/uo_I V]6ͺpd1C3hr(B&eME0G%J.Ke߀t -OMr!fs4*䍥3 VUϵIqNDT.i @sȫ!KP "FL 3 j,7]YBX4p- X`BñT3pV E3)t`-;R(} +_H@u4VDb ^)3I5+V-MʼnzZ&j,nPz2Lmp%H ; jC`U:v|-0ýezqшim{4f)X٫6zyeA'C@wlfmv3l28v8}|DJkj,B|+4^ _ +hz"wg1.pz$@ʤ"pӱS< F3⅓'BL4* P tl$QgE/dwg~S9oN,U͒Fu^ѻpJ4ڍU1́Gm2 F2UT4ݬ* 9pQhf4Es` ] fzyiTt灐|;2|ξ^4`am,BCa B8[} .r]c$teW_ +Mn3-g]![Ꝃg.XgzbОEg=T}m>ܢ9kq5Z2K4;Y}IT5cT۰V!tЅR3|?qpV̲;Lҫ~E45.&ܻ%N`A_,wpz2YD/HUQ_s dCppv326%\OC:W|8q^J$w]<#;p8rB@s.zdDG O2b^C (U :J-#5X$3!UsNQjCt2B3Fko(p B%Sb O +B& <=n'E`lWI-o'(`L@sA.T"$>ߡ>']wb' xz + @%Y{0NS #rѬ\od TFe Yl8U/m^}eK?#XO$h ABXYLj\qP™k ش5kR0rC8ۮrYt:b5vrdvVkhhç*N +Mb9Ù':7Ӗl,p7wrM,pΓE 9+'lpV +j+WhnϑCCt?]jQ6F7 !lÒNhCG\B>}o09M1MJAp9TM,t0́*T9.ԦqX[עFUtPqz,E?˝]􀞦( "*bT˟w|6WYV'|p[8i3dBJVQm* aǙpj+, +iDм;KYop}{їX@K@L +]Aq[DZ"B.aBO~-7 lx~o=jޑO6o <he-,")^8i2}1NYBlqmGVa=5iXCעe3`1K{Yf".)vIS)'} P͊X:tS$: D딻p;p)u&V`[u@䔐l +KXO4ފh\-,O B!? f."9[iX~ ++AͲ鴷-3+u [  H$R膆x<.JzÅ续.3ăE:|/ ᫇{+^tqSi a1/2>Ey{mq* S=@;V>u@h/%G=^yAJ H.Iq ov'X5(QV!]u,%c؏/ M h0li7ኙsp 88B2$v}9hk{_w+4UV=`z.%9/< ƟT({ \!1pc`*qVpJX fW^5ITv XK1@6|X9>c! fOP5٩w!U|mTGrupb]6 a("Jv!_s58j,d\ҫͬ<97% |2.+=G+ESdp҇<$:A ̲ Zpl"5ô }։QHcW$2zk1L8? +,NWwAO3{gNX0;.*K_B~Bl5;ӏo|q_9ᢺ_H=zc +G %z"hI&.|C8 iyX $-HG&p{²{&<0NJ{Ψڈ-u"@l\gI +0e/ hVe}s. hJ{{^35;-Ltk9M8hy1uC:ylɞ$cj|eO&lCs-,98?,FLNw>Wpe%i {xkQuOnIS"BXkCh`h!9՟bKzH+$[ma + 4`Ӧw֬&zsmO #)pJ;C4( L3lb<$F{&d42\=Xoѽq-jbn3Gt ]9vlS~500gSBDJ ѯ_SFt .㰁;3ldq0p *;,]omڪ =Bp=!tyvfd8ýt D)o`$mG~½M@ eWy.vn>)`8hۙVs(n0"%p@kaS{@,Ɓ$ȭz.h"}đmEDMa?Zht[hhwnAϖFy[X>nŇB,L,|o ;Oj4 jտԁJXɨ=*c"5@7{ȲLD"'U~ckV̳= .[ (.\I_< -{'%\.paĺpTBoj+,oMВX*]8J5ì})4qVDyvކ(|֯9WS3k=%pST]x"L9K^M +7_]0;NAc>7Fɳ^zm̞͠EoJࣉryMZ)7.Y ~~w {ZqM=t]I2$gy2Ilx/ cڟz h g;=PϪŒ "XMnƜ ݑ!<3>ݹ>CÍ + ;̔W])10x&c_%]~:aV9 SOψzh g +k'[ZwpIǰg~S"aqJoٹn*1ĈsWvt'ҠgŚ:䔧nؙ Epz$ +eR{_(cRh8P Nݴ0(eE3cكo΅|( H@D\Ց3w#JևAj9D#qA qHrfOgzb?[kc{(`h;@wB`=]hq\ qߞ?*`XZl/1'aE@@.Ay=P, iw˶<E}lXx{ g=';g} X'ZE.'t#SSC=W]Sz]\A`[D ù*PZq/w[dURMgtэNn7+(mB&\6Njo1[D$%S8U=myif|! Ö}tK&7TJmD@3a{ǐY%0 NrDS{'D{_%CeK]X2I+f@,G#[-D=tG( 4z^߻%(Z!3kz.81V!h /V.NjU 7k  + Q|pKVG5 R U}220%ڊV,+y#ncSjW +WwK>O5'-˟VC!395rQX3Ÿkg;ef?@ h}ח]Ou甐cSt6G\:U9f?CZIBsLu#THMvHMHΘW@x=$oI'tQ]}/S )Y'hW 7ou +8s4Jx`8MxjtPL h:Xƶ͚8,B X)4P8h\i~jNYxν 3z~{xbǡ8J|܋x #;{f6@FMCFKW}#?ڱ‘s<2fFhcbvvK.o[>^k6l3?+I?:/^]^y>+ m8|}%wnKP"&c_P ς!=%@rI5bsS"ko0 MxW%q嬞I^=KY./oaYt0pLʪ`8/®ƇAPSK +.=:6Fzh V} WV +t1tn .ka 04f1^Nod4,jTVǽ5Gvi7dƞ%0>ƭ 000Jtma`\Qݪ-p18IGK''}bO7'܅#j~{l@pAc3]=+V<_e3mk_ɟiMoyaC-iJ[ew`3脫K;a ZeYM4 t~J#U& n!櫧GL(J +37@~ Xy9΂zgfʉqV:eFetIǕWM*(v= Mֆ[OA:tB,8y'Fz6Cfƻڪ_qP5wF 5h?2oL4Wb"r4xW=8Мɝߐe Fa?iޜes"Tk˂g`vkQ3\*ƙvACk$maLrkv^T54(>gm!y7O+HI?~͍ՏӼ&i6wIkr:D(n~Ϳ1%a E.z&zv^1e/\v孫VzFEKwz念2+L$H\}Φ@" fL5_s Ea֠Fрֿ8:E-xBS)Z^نzg \:cU/Po>V-@ +%^mu1 d[7˓^DK /6]^fن6Yi3Ig6Nn$Y}ᨖzt_ cZe[SFޞ=Kf}V,uO"n"h4jQiweFvT8yqѓl @pp>J* + Ĉk?XjHD"AmPWW_ `Gc4~ysgY֥ \vIɫּs$^oaU q`;MJ(Br\zDTFK$pyͥNltf\6?pAwH@_|-!UNΨ&h hLhriL +,6>y'HfRh((c\р@@RyRA |Ynj`O[W K/f7AKoEENrVް^@#@B Ap6y̹[37av?Аx}I\῱i3hZ?}ٷݿk88ut5 gHP`2bp|!-NnHj[nr"m;EX3)8uF DksctdJV;՟\2%wvQi\l8 +hrHeSpvFbDe`Yxck(iW  !ӎL[ E<Ze g3#($<}txCQ, +[B~ vd$ɜ{xP>O)1z@C$ 44zRm:ge۸:;u<`@@s cC8.Wo< "hbt +8o ow$ ڟ_8iJ"2fy (?Z_M#C:g (=oyuV@d8uzuD.W5!#=M +\I ~A-u~#"˝ 7,c#訛ʥG49$Z~l5wn覗(ZSBX-ꚳa*sp*ZFBi~F.o^ +m?5.@R8e{oԜ.@{eƵ;*BHw˚9[e93ߨP頗_[ckYp?Dm WO_; ī̬v %=&Ɓ]GGgDI"`$6Rh:SҢC Gކ13޽hJ ~3=FCYGJzy(ID٧ל~G}jMC,'Z$ڂбf -ne*ZoD㣉FH +M` Bin^op0B۩`X z^yζشqu&pThV,u`'2DXZ%.:|mˆ3 +w1ul" FƜ ]c!Lxg@?ѪY4[|Dy2&Y9M-Yw NJ V^Nh^ilT41Jl9t$->,LuS/pC:_y>3#;Ǵ5gzNV|P'FZIMo[oFۆsy4QgO/ۓQDSQp=hGe'իޅ嬢:Ját(fB\2eґL6l<}zߔcM/lzsaKE!թ`{~ +緩3(o_(5)Tȡ{}k]8rJH)54J㓢^Ǥ8&/,Yo +pK=14ט +$;\@ +RQdb|oA@gbҞ_Jخ\CiFiny?3D"rМΕ8 +/јVJvK VSR+<_06:Qzh51koSn=zջCIJkv +'ҡ`U&d3HLӇ F}Ζx AhU?u_*^=~eK! XqE~P,ChB*9l[J<#tϤ*3ܻvVq!zxWZ)6G4+s|愃D 0SCW=gS_"XI]:ր"Rl=<$|`k8*~\Ș0ԕYGG?R ''Kf}VMO˶C,}tV-*P Dk]=K}ƹPXf¥IZx<}D>nko=UnwҞ)eH/Y3G%J|!R Y?:D,s58A:KГܷyrsgzL9@M! (wNPWa@#D__qZZUW˯%p$u!AN7 _bf-M׏H.:]`%%Mja#A`r3Nh^iRHa7ObDd_7ߗ6N ?$^R2&< 㨚CѐotA33 J,(Dˀ2Q$à ҹn$ߌӇH7'"D4Z?̟NfxG;Xzj󄿸?LR kGy@imbU sQy +W@#7 a[_ʽ^+D ?vBe-ͅaa}s.AQ<[hf?Eĺ؋T`ՆRٸ&Rh>>{{xbӻ$rЮEl^St{p+҈Bp@T"4W-| +54==;7{h C $ي6'Ӫbl ?!Jkal.B{\Nla=B"-)dѲoӐ&g)pqs@=2l2VbX*y6s㩉jů>^xg}K?,bU/-Dɟ9>Fvwon0ـ܁@EMk:rb ` c p. +E@Fȟ;k '١p@w~zGuz+$vPU8( 3h|>2CPeM> 7Nyp}P:%It}&ЅI|]{ 8yU}zp|tKiSLovtފR 'rm<@%9gWN"),8A/hdA{eb?[Eݗ vplw\xUvgleL0% oht7qŒO*a{ 6 +}c:8J:OXNB#0 ÍV 9>F`"RbE%A9M-aM3quJd2Tt2Iu"|?.@.dh >|w) +_2\9%R& K4ϱv'lŏ_|r(t~1`;RhVLₕ cBI+ʾRs=L:յюY[O +N>鄁@bDGJߘs;g!Ntg#={u*Wz$kN#Ag"fvtkC!J2ncPw )kNL٢@Io>AD 8LEaE?Ѐw:c܌=1/uh*̎og0bSD)6cX99RB@KYV6+:fW$Qcǡꚳ&DUF"lĤR'kC@K3؉,sz,o["hI8j@Hbl圴ct~KfM7 +w"DhO-l\K-M%ٓBrwyġAշt/&׀. V͍/HkNz<;"70 ƠO-h'P>I[ZreQP–ɘo'M;9,&le=܉:Dz Ad2tJ\u{*p~eK|pwlk|sP2#IIfH}~A3 yq vƀ֑E'FNqœ놃О"=yR@]J@/l<#z>3M(B@%:Aab| +?RmH8T-gd!Ԍ45!Lc#1IttKJt`HsɇoV N`'+:Ao|QW4Ѭ_vۂխ }'m@Ro%a'ΘB3$(IrT%U[COwuᙿ~awߠ2Q?[-z)eYKN|Z?끼<EЬσfMQ4ECך]2$WlPf ,Dy>g^QY4G F" FAlO oU;@FΞJ-:X2 miŸg N.k.)ts~}k*S+5 g +`ԋ?gOT(~/|`M` 4=+[KW}ٳM[Z;ae'q oOO +B;!hpfm4n0y2$!Jo(D`a^ko"U%u[wV +"y>FV0xsQdÉ`D# -ۛ5I=Ȇ#` +J&I]yR8hy~:Kf}V[`SڦEМ&YCȰӞ!4Cڀ5h񆆆}S`-NV[Y.p5QH򕦌%_Uel!"wܕX 8i-{s3Uz΅C6\ m7O=s7p^BKUp#$vRZьD@rR߀k[\vԷ۳s[棉Qg&B8oxCc. eo /Ԗ񸙊G`,CH +,b_[.뙌3UqfNCa?V sE2Lt.e̪GE +V [J`>TkĚ+4֧Kr1C4C)tMrI*%(%ix bFUma}>9fR܌8XPd*샽k'+ݴ~#݉P )q(UO:&o=ީr#8 my&:4LƴOv"fzl*B/l8DC#!ptd .&ˆ^ MX@e[%mWđG] )f!(ғZgCYi7hU{+]t + mM pbb<[ʲ<%=K(Iܹ#ߛr3~Hq?puD8c% ݄ݶ{|]SugWJNUNZַ|.Yݍ[BPC%Py?Dq]ź4m=x5DF&_SkR.(L[0C|B 3v;4mg̝S߼^h( yQ/2-@O9T&Gq*mka]"; ̉dOoHšeKYluRլ?eǟ=: I|m u]+VYm _sP#vN ܄o4z喉@)!-~'rBr_'*.y#4{"<5JWȯn. cŒ+>y|4g)3x dAvvтZ y, I;ZŮ wƃ?<97_t9}eӗ=SVTn==ƱIL&&&1SΝ sӇ'_sU)x9z]m,OGoiE3h +HHCg3YB2CH˷LdK݈/uB 55lMQ%lydkVXscK~`?Zb3QHhZy S-A㨠5u.ysoV;"5 +,율e8"ZMZCwlTS砹Q.SR9&$j3SK{b00n1%ŐEoߢD{fYmd4dCu=}ֶʱ6S1Q n̑_6@\y3sй8崞m5"r͢` x\x +==K1 !~8d5 gc@tW 飣SSV"qn4 }V(y w54  L@;->|ln,S],3C'M݁/-*最,LY4Ƒ3#Mʂ0qxCkD m&TnxGM!Cp6ߐnڀ%hpg5&KJ2sc˂rYCq&IG{u!yO opa"91iч]l E_;zqo14P9k:[NIm+dyдv& Z%?ۙ*|?7Hόl)(ݠɓeBvH?/tԻhq"gju@PjPpۆ""ۂA@Ĕ̊NД?RڨUKL{ɵ a uf(ΉV-}g粋IIG g}XppD Ga\@$^q2éܨ0 a +,4+w!'INvU@s+&N̋J=#_kV.3C+`N.d~gCq3Sm]%ݰe"5=Rz;xNO癧.EN 4yGVF*NxK ]E_כ.n8===22bu&ԟ_Ñ+s3RĿb]|Sr߾u>280o霿cK[wdZ- +.4 U3CA3epN^v//*;>r`H+OH#A4C'L;u2 휀&lz)l\蟯Ygn 8րV%*=GOQ bBe, $R|^Ak]/o@UVF(VrRֱkCݷ/ zx-QїPqHLH5sD=D|8JY{8M}.Ş%L$Ԓ.L=^(9)§#g.ggcd}$_Eqqc:f;9ք+.5Zih&cF+B&QgZuHN[Kk!6mk̏l +yAr9oM|p]['[(yQF3z#V^!h XST<64PЎ ӌ/zFF(`\{6BS<د{Nj1}{mAx^m^2uT͗>x+/hSS7BC<86.W2-1ojbZ*W\kg>hܹ}}}===5|mmCIk1Wg5hIrr.==دY+*EDCǏBHbU:9 -qn9i + +Pܫ)6t$Nd,uQ2fWh9^cju kpKTH;^\i^Xe_;0]]emtpV$0]1`zRt9M̐.0XD"}kp?̶zwaLZ$&i 52-TS5Z-IWf>:mO9b q1ksW}ך#ܹ@~MtiҦFR9Mׁ,Q⒪JkDS, 2M{kaZ% "Ul0wmlEu(ztяܹmzn(nSA弱r":պSMNxÁ.SIqಷRAKXqd6t@F?slbZ{:`Zl׼>b![q8$ֱtC?s׍Kͧ1G)Щ\8$$qD 2n+UtToN hS#Gyqy8hOoTG +޿9"3} WzE%ɬ2m\h'nZZ o ,SMIAmmJ(ڵ}A:-苳]n~Vtm_oͬ ¨`"ʃNa]MʅtatƎY5f![LV1::jYZ$ R>ll_ kK=3yM8he +l̟F0}s)mG sd2hq$ nvE/G-̂c*+gQ3쯸8ڵ4:nG"RKV> D:9?=tC + #gOh^Z +ѶL g4*T~e a@=;yt5z OqMKaIE3$3KxmXPm0== ̝;ג<'ⶇՅ[f}g&O8XJHyپb ̀KemPU&!&UC12 8u)нP3qH>Dcה"8e ʵN2 JD'' ELJ,:@hꫤ]i ݀t-Z8%SY9|??{)s*FprgECDٸ\Gu XR/`;붊uWw&Z᧻hWY;>Ba5p8غ$9R$ !a#\Sdn*ĥД|~]SZ^ a,p6k3.+W1 ):w*ASȈ5:p[ n QֈVz +gj{$%`aTDyCI/UZ匫"+Q7l,tC_ѽk hV78WeX4tbhQDu)T׌+wqK{ םڍ0n@.x˦|hJ{"8:V|R$ R,8RT аΉSslnAN D->CQg;gYm޶4=CIAq do +}[O4o/]Y<;7#X;Ν +4G\NTCK]jxzcs%)Jm!ݷb i"ܷd#E3-;,~!?ɶl"-@l<86IDs4H:|,c>;h 9bvCX5CǏJAgރj-Wt͓%Dg wuyK?aYX ΨXVmdxRyNdW!1=f-D ~?d(wݸ霍lGھcduSAxw1`Ui"jrfc|fi'F4INMͺ>+)t4p45&8>:-i9۵}*E>j]ǘrwMw&}yBlEw-niRU c9j(vيCB D'Ig} Z˥BC<;:mz{Pyy=2|=~nzﮅ5Z>zr-K Ee)yE" b^2flk5Yr俁^!H2:h3tW҄xTAY]-4M3r/nVNOo&5lOi B&9؜d4 ҵ`F<@NGiY  <,[M<H=;M Peaptͽ*zZ+I@ׄIy]wHHxGNtDĴR,B^^4wYDlA*wSQ b NrLmJІџZ? ]xb;7 QB .3*ˬXE ͎'&o{-l,wT6ɳ4VƁggk pt#ٓb8dNY ݟ[Vr~d0ѦΤ;*HNPQf;V$VzNJ}GhM4y;柰8afŖc?!Ϋuf#^ޮt潴^a9tjS93[6J(s%?LL +mDGmDg)NP 6#oa}_^Kqk煿#L@]J@AI\ki\2YfvD0V!qXNЦ$s Zj=ʫS01~\qͰY,+@q2xP0ӷ}{(v=YBov ]୥ RnQ$V1r $LۊZ~I>]%{vY +h0mXEA!KK +ڒBvdb.6TWd@ +H3"(Me7#eˈ@|"ŋ%fn"Wb:̯YTJpz7yΧ4.=wH|ڦH{;ʂ;jZjM@u$:˂c#%i44tL-|,:`l{hf49D&nq;-1#Lo"6tfߪ6(Tf&t/)= d +hP 6^@WOw".dD;:K;weسoYԳg;$0y _9d2gż=X3!>4<P/k#2:[ +- 87ϛ +Šv +H^(=hz灥Bh4kg1ov+aw4:D |zDQ N>Cw4|cv$mŨFC.ÐMk79.Gs41iDC6xЦUALBWRcElٱn!kfoIgX%XOqw:Pu606!tݮ7\7fmKYն6X_wA[ނ*KX"„^ŹgߘEκpl/ְvAK #%`P Sqͥ P:wbMt6+6<+#wG=4|B47Џ߿L *.@@$!p"h s, HL et{V<<(s|6?FGN_HZG4|uYɢ`H+LZ7)P*: a$B3܆F+|~]_N؆fw<s͈ j{M!3љzx2vxXJapo:? z O}+61 _,!7- o8ǥsE-[vBlxISQWbbKDݷ/ s"Zt!bm83^ssFD_<AE烈8uzeW/DVKK ?raȩЗFc933u8[J_YO%P(Βч9?-v\rvY?ejj"wj_"ip 7WfnmJЕ:щ2)_~GI&slvFf6 +_dvٓ[W8XPv`,j#MdBSAWh + 4MR ۺyA^.tK8g C8%Z?\vA<{`䙀!Hq 4w7tT@-bݭK@3s7 ^mzOo^?"U{=DC2'$̓@3#'ҸW/>eAP^Vjn*i +r f20$=}`Z@GȜ0r,ށWG^ڳO. ٧N8j4N++t*2ݎNbnF#RV . +5qOQ~cXIݬ~#[%DC0zVU7zQ8j=C蟩l 7n]^@@]#J&+)yKXfNJ*1bS;B7ҩ~s=<Mqւ>:P +p)G^8ϡZ*%կ1+{͖kX>Fx2`gF,`T@3p 9S+Z0c9]l``4%}!($S7Ǒ3d5&^m׫B-~>5!Lem`7l*x3IJg0hrgb%*ٙFJAoKƋ hnc@+tP)yņijo"O+qMdApkʌ0}f`@chS'uUbyhC" O?6׬5"u]ȅ%RW]zA1NAYpihݭNʐ֕pC,N acbԖᮁ$_fw˲qY&c ͳ4K~!{f)tP}tWrB8+rvGaK@<5l2ZzdfWO{% ffU~%o_6=Wǡ6z6?II#M]xg&j7F\]Z1OmРJFOx34$"MTK6dKUkNzf43Ǿ?#D{_z6s +Z,Cjb_~R:&G npӳ67]v蛫˟Okԯ%Zۆ0g#'Yo7m퍠m6OS*gOF[ѥ;fOHalj; ii699|&=H'aTZ ̋Z]|,5uԧf h;(]"qXԉp $2[X)V-sp='i &zۆxg'0.LPC}!B=X` +\};7Ɵ +k a[WN2Sc -9|XSU Ybt\ +y [3і& M۹ʏ}j +&e$%LFW|B2[<!h,+V0٠ w>bńϲYKraj Nࠗ,u]nA_6:gA@ONDˮ[4 xݮIsϵj(i`4+dNzڲJ8h[>3$@vx{vd2@Kt0}:ɵbԪW$|ҹ`!#ꮉh]FW m]4.A'$@kzr;8.KU#t7XhI1b?Zhn*kt,@61'=v]{_ෳ!mIrTx[kXZ4(TS5펤uRuRY"$:Φ^3t/6 +50TJ"Huj4oo6ظ4_HJJ!;Sh<|Y4kMJ2/rkk- jhC +@LCp"nŴUergEC{X PJd"l(jA"1Eq2:n{P^ ƹ\ZUF[lf~~iA\HB sZ +8̟Do?PqG=w +aǀN ƁZL~rzNzsq +A ~qJPxdd$ޙ0c +FyOe{^5ukh ViQˊ(b&<#,Z#y+mJodɯEWelHI3H p6⪮}!ڑJЎ_;>40]#LHgM@;ծǑ@ѩkcQp4VVQ +=4T/0+a3K6gbb"P gV8=mפ&*CÕ?) '*"DTA @"LJ7t7T$]$>eu +՟Օ/#c窵Yγ ZXY"mI7UZn"t.k  3\F8EdCY;SD]Gٜέ;|tWy MAZGB_1./EOMDCߺl{}6KslK֦EC(?7y๋.=<4t OI S{϶q,L OzX7kg醠h05s1K}SX&VyÎuT5jĚi>x6r7PeS|O?ґNܵLInYL@iy+)K빂A*aݰ̾aiDh="h 0/#˵R?\7WmzRF-I3AU\{Zꠥ"4+ХTU[ gt4V%E4th 9?H)o>xM[S\DfJ-I.N@,xX# ԨHpP\&EENuKU+inq$_Ct|M{u82*}|Pnz)v)WГP]>n]G {&~s]epX@]''/\V˟M4 wk'{8<xMtd]7.y>|Vo\ +Ҏxs?T4Vr4}. zƱ󇧇]o7 iQ"\QX 5ծ} +y=-׏4TR8xl4e9/]n4#C[1?3'2*l{kHc@[ڔva36n xeX A2dq֯Zp(ftX1//Z`Hj!IKkH]ncڼ4m>) +I;wcxr⥷?{4D5+,Fc̈́?k5QIE$[{piˋV8?KDFC JNJ;y5JHC +]{]Xyey|ÀA&QOBf(6Uyn Ď)편 +80jbSZ_Xۗh>v4U9۫T<3h1OÉ#yyhҞeqAہ޵wHMv]{=y")HXI8Uԑ_ Md48^:! YD=82̫{Ichbz"dⱸQlC7J=\ώ(j,{.0uV +y85kC6rluhyDpC#<~V\]ȀUXk>9[1[c tkhA}Ҵ;,v;+e0haIE\:mft**ݼLC-cIn,>cY}E)SwBd! o ;Sq7kl1Pw쳼ɊʑGuȆ5! # ? +bG'bQ<@%a&M̈ypU>Bʟ7LaݫF o|vUV:_5qX2%^ \ʟݭ/z_֕K&Z.vnYl#-kDX˽@ުT׏N1ѥWwu :]MӝbǨM9GCIT˫X5Ke':""t. sd: 3unqsޙm[Z>3hijVg`϶Ask^`KokX͐Z91ubU;N[3{K$2yg7:aaqhd@Z dз|aAF\HW\ 3=9|4-Wv45 ]z_<_bvT-H3:șd)^;O@Fٗ1nTqЭR +Z}d]}}mm:/PʁSIADN /K,As9%eGLăF}N4աydd$4)IMt3wژ&*MS$'ʲjbos YNgEɳTZTZ +hU}V$C12/ESsq:MDI -!;+yn)>rߏf6l;bRVO\nяq G/ȃo) XX,BAXTQSu P  WIxU}P`-]%-8+͝o>ԇ@g]Hy$,S/QE]ä́PBW + +-fe攀&Z7o R %a]=xuN + KLhb#z9*e1sۨRyu?-(-\ ͈Yp (4nÉ0u}G +!6ai`Nٲxl KG.8BbƯw:PaZnPq楥3rl +9 0qZ-w<Yn\ͬ}amᄀk.8Z ҍ^R^ Л6EK”B3N@_m85ZM=5:McL?Õ /Mַ8A0MD7+6UmێAXcF!P|emn#RQ:.qr뮧 +Cfqiqs&VmfWa%_ zkVɠoHP5@D0oeEf~weh,6ll~CF'q᳉kL+R4^\| Q׊*W`mY,AH3aQF}rLLY4L7얫Vd. ٥B( ˰1QH*kÉ* IMP-$*yb{6M)Td))絝r$^2RK)⑃T8%MD=Ƥvpm?PN h0DRnUWJ a+?83$\>L' 7iW:(wW~G\4MQϫsDZk)h_\-ҡV.%:1]4[ton,ggJqN8AF?slRFc-k>BxTB h<Tt{$0w 2W [:o}]Kftq~uY%?(՚޶~^5Rh1w aIO)ML]tL=c#/MtQ?K%==Ջ>o1S$Yi7Ѕdh=eawᘉJoFd)U0A  .V J{zzQUxD[oYi&iLPiY!!!mDg|w-Y1I@SHq\:-g o~ yU:3E@"wo˽u0hDw hzk GXgw[Ota2w +Y&ڀKVxq@b~au`iF Lƀp4b'O֌yvL0J{_`44cNki~ t9 ArBn `lB.=bT +Lsն@Lo=U>t0l1wzD&pԓ&zۆFdtCܝt6M$ATY\ֳuX\PP,QFnI8(o1555::B88 CjA Œ?ߤ64e!n ڏJIJp|f@z*ӄמZϙ9-( L'+S6Q, kXH&o9,OEd"?#jL{ +:pu| ʚM\XH=D`% >,d`a*T0dt"E3Y҉5$xAʁTK0gGJt'E=Xϳ(]0|@癏}'&v߾l׍K ˟ ˒GWznIAi<~ׄv̞y[ЊG){qE= oDD N3 54eՕF ^P-BG\N$e/nJcy)u>A=fW-X +\=jU؃c"=?[OlwրsTdaB}{ux'kQ*94t{!MJQ@t +dgNAkk>Y_FAd`B{|tYȎ)wjRBӇOLlWBR`A7ȋ rJ=g3CQJI?j/.eR*ʰhıbBI@?z]ۗhs#X;)HKzEŷ NR=SD<ЙP!4NHmFiN94sSCFn#44O!!p5$+[CwM}[r[~Yz,G3,hb:S϶|Q6-_<8htRO]*5NvV53>nN ќ^ .φ&#,m1yF\A ͬF׆fg ]-CQ3`QҴ'pV;V|d%U["h?NG2X>7[>P|Pe0}\oc +8 U]<႒f@@[xrwko!ZVʀs}<.PR !o}ΏxjN >˦%v᠍8,T3YŸx f|l nfy,CeI苦~[3[/t8a6`Fs*s"d9 ÷#K%zU蕗}*=˶tu0{獀JBo/>)*aB? 0)R{\7 K + b]op7~ZsCc!!̘f1WO~pd5 u-|[ "@$JH.,:CǏ3V}" Տ}Ch>tnG`%`F1cŒӗm}Gήx΀\I}ff{z8= rcpFZY,)?uAX7JUK.Y"xgBwQJ39#}c>ݑ[D<}ObѨeiB]x$ +b4.fB*', fV~ +J2}>;CAqַ/=gOuגE2h4uڜ@@K"\rA@[6|Uo$Qtkqf&} qajm<ǥ=˰=WEģ";#9ݏ juҹP6>ri'b`䙀>%ҥ9M:&Xj"zDDdMW$<]f Ɣ1+ 0/gl-:,q`qUղ\8$@C#@^Gk=gv; n{-#w9'V{zzt#.=D4b յyc㨣I@;R@gGAHSCo\ a3VYdW.U@Sb$^]v0t",1)N )VzcHm~pdmo/ ScCt0g~jzk-u:A5x%;}Yщ}Į#J):hN 4hMBdu7.=8XEGҹ8,gݖ4>sE`zYMeDgwǜ`Ui?|e0/TэZo(v )ZwVtm^vvuvdaL +hKf}fihNHxHq Ff"xvrՊcc%= §Y|v)1͔yEVbo:p]2@z\bk_+E=E1.1[+TsOOꙅuy \εxgOe池b ++GX<*JBʵ‡U㺚M +8<;AgY9]X ʂT*J嵡0]8i}caoȢ^ŋGf܁T:g >&]ét78rW[!;$~zׅQTsdz-4عjm[8/,+S>:S]Dw3nmA@= +yz>|͒ o_m㛮Ex ԳhCsb{MKqy>3n>8$0he,RrUE/0Tf+;lx!{wRt -'hGmTT`9Nseh'M*ևɒ|XIS@ؚLMMƥ}}}EVm?U?YRVjZYN5ߐ8|&BE~,VQӂoI.+5z4ݝu!*hv$fw.hZ}&[n]4/w -@XVxtajG^~-/:2Ӻ")֚EޱbnJW(W_!{Y^<׳rCI}ޙwDD"u 'e灵 GơsAXwI$ߡv9 +XKvx3 %FNXuOSz}c{93)[CʺTyUVB%v|[SBp +GwZ v(V>m24GXq9{ y&X6SoMU +.t~>gՊ}~i Q-p4;ou|+J:8)׈aIX,.{Oh:?NLG +odϏZ;x.pvoTG*).%o#[hϛIz $]6uRf1V_M [X] hiPBqѱՑ6YL^G~lq/05دHktt;=kiC w$†#g.iڟf٨3WuTfO:AFsnD+O> lo rf`ibD q{i }amIJ!g3pO9:?}۷6%ow +FFF 3ЇOL[r}G]elbWՑVvP4RU?=qnW. +ڦˊ|9hz[oobґ-̖ցh;Y=4Poa7x@]aI!vAK@AمKxu!-y6DKw'SĥЊ]|Vo!ޙ\PY<jSAw~1,tzZ&JԪ$Xwm^ꎁrsq&nw ĩp[3^2'*㳜D~0j/Gv7.%ʢ>iU{re3\{5R#u,PYsoJL-MF@3 k*KV+J }u͔T`;! MЬ40 't1ƅ.i{|u43EV o} iJ..a)Fvmʒ c/>h%0~9!l@A;%wm tL<(Dpغup!Q{6N^}Nᛱf3 iSMw,G(3H;aQF~_i<}|͆kϴ"H*AIݱπu) >|b',+9Lco,~j/U:X=ҾbITtґɅ +GIP .<74?", iRLM =NW a Dٴ",8+}G.xbxr"2ON?gVkx"["iER Ki4sgu0$0!ϥ M4YQ3 K>g{"8 u"wtt3 ۗl[M ʟ3ZZpt OPQ +'Zu-҇M!ׁGת>8>r[޵h6 +G9Ep1thn~\e_臎4 +H(g\8HG)u4mdz0 +d7h=|6cu}tTܓ-[s}fɟ;lbbR&zL{AOOz[w8,PXv%+@sUbl$&6rlH/4ҺYa~4?}/PҕJ: ],b4#p!Er6<"@.Fv<@zF]^ *cK{h ѻ/_GTmq,&6=`Ϟ|0$ JYy:Bt;Z-uH|;_`[@ZzzؿOgˠ~r;"l`3#C΃3?%-j8 VHD=Q>3a#15Ec4l=U1ԖS#c;3 E&b]T`fkŽv4keC6qo0k5eJ9p²~} eMu YÀ=.^ml!z>((N[@U$?`bBSK5>w[m][uTg NO dz_差 {%?e^uW,&a_Z9ރduKlu J3.V较zqw R񑗡t֢}6o)˦CSrP$ً 0|eWCSC 7HyJXnjD>`ʹb[`ߵ@ohGkylAc^ʟm:m +̆{0jOيm?utuAJ܆QjA C%MOO9Wՠ.h|,]qixc<3Y`.SV =Lp^yksos;HbSoVSTGJb;An4Y9䃕G&ij0d:d {7z!z"hC{6"@\mޟ(Ģf/|g>1O .2Pѫʉ^7EnvTת?yoc<~nݷ/CcO![D x nkK.Ln4ϋ4ҞL] '߰6nDGLh1C0䀘>t"6r*)+􃦟~܌Y_Kj 3];A3!/[p|6G,[߱:w,@@c6xkjW.gD]H>I'9 *e4sFAE  G`E? J$hWF&8w4)hӈlXLnVtgU!˘ ΋KΓ{,hSg&1"SO]N> Igs"*)jb&'X mqR3դVx=I{XRY3,٩IBe,I +qyBKxQ4\ޅcn!>YҞ@ 8ncؐϺuih\֛ |4dO^R9Fri'B hV-e7[ŪOVH̬v+uvC2/ ؠ1ڑQ N.+87K7C g,|* &ew|zS4877!dtƻ4|5}[k^|NT.,J!wq +PFQ= X`b,=6Ej\,ZG:\npa s& Ӕ1yo!llmg[1 BLlAiRaT'%3_.0766(i>BN a~zp +yuBJK"@ +#膽sso 9g +`k5䨊DZix F!+e (zx al}X󚥺t4uY9p +hw0ͬ#W)P$9pEe`v?Dw :Zgmr\z7ЬS.mMerK@[)Iٍ@|rI",OB@+$²rE1Dt0R\LZ( AjΪ_Klni0 z) YB? t~O335_9.HlMlNw@42?4\4ƵϞ+: L4#S +N=7qei9BtҤнkٸ'Mlubom8h1H)6PĞ}cR$= YI*HYl9W>`Q聄ៀon;D22l\ +SFh3лkIFh_F뗱W8QTp:'(ڳo VΦyr3O= t03wl7"A09HPkG{)vzcqU:4`XB@6LC/f A!Q7ǎ#w1D~w `mrQ峛 $~/na;Z(dLCVC}fx:E[>K7x|p;+>.=˜Bw2j߼Q &6M@J`Љeӄ!}6Xدk\.](LΓZ +q{gy=s[{k ==CӪ8=t 2zsSv.ϖLhPN FiSvϫ7ruD,09S½+OOUVBIuԺKTNViq 3M}FZ(8,Z +va mM8(H7ofªN(娵 ʢqMHMރ&]emD>K3HpaqBHB%4==qҭp=>}=@L]zRo?B@?ynwm_i==) H mf=@Q ']ȟ@gF]qIV}v ԋ狱`d+{~԰MOv =]#9е5-/3R7U砥:?Z0DU_Xgq'c.Z4݅ +hr^ڿBL%6ѵOgɑ+ k4!{h N7o)2Ƌ3C.'d|\p񿔊=yt"AGax`wnYC*,FSw$J&{d?KiEZ%4/qPk;m&zmzj5 +Q\L +(:\֙+XZKрno +2qZbu$@=I=c`oddE<'% i4p~d:#єDgv-b7, YP|^+7tJѐ67Qt}gydӭH3w y9+4/B y$44e#_X\ѩUv;\X+Aǥ(u޹boatckOqa?l)(ݘX"ڳ/y@VSհ b 2^MAfEɋE`hD;]53e9K ^;뚅&"ìP{g^o'ߚ 5>Y)euwHDHF3]Tlf^U熰ܟ1.[Moç0~),#Gj|`@:2ADxUg`sp1rUwaVt~n;vʼnlɄؙYf7L|rmKt$_"TOne'M˟|$WB'PY& 4Hšs2l|6s\ u=Jh."*֦Zo-(3Yz6:7Bi +"G˳]k3m/.[>w g KoIcְUVg=Fp47YzCðs|iH-hxH-58xאal`u`i+>_Uů@WXݵ.6y]H):͂PÀ5:!|ڒAqAIX`G2s6؅z"+s[٫Gz үC+Bcq]t!Ɗ)}TLvYXa`GF7TIgep6ڿa%{k\XR3a_ٝ%:aۮ]qdYf)(Jޡyk?y-5WKMKtem)n&8:8LH)+7Y%mV;N KD:~NCы;C\kO}Oa.3~6tۉˌs.Aj%=]:?6Յy3mD.OvBK]8h2`fW)RV = ?CJ'hSrsaΪoUqգ:S?yP@w +6[pHZpmө"hʞ?I:na&-L?Mi܌iV4KOpϱٍw`zLӬIZ^RjEXu7-#uK.\8{%~W.Z&i浕M.T.̅jn{|ʼnLG%pVN&#RN]Y:iMQv]KҨPyd,-hhu7|ӐE %%񦕋hdAӦ4b-gpe,dP\@#ޒ6lSRqy +h"S ] {Ήmkq7B4ݟ>T@Bf1Acg/Gքˀnw0Hx%Rj<3³ +CR ޹Vq´גC*o8D"G6գZ_\ׂG7?8f E=KihU2QRa$[`59yHӸ0k6s{w6œ{iۮ׸4USR>a1_4yHJNH7q#JZ +_FޠM@IG }PatA{&h /ۮ.m_X쳖ў|lϳkNstD?{6I]ҟ) w<؅N"A 6m +\Z$4o&0KbŔtgE^mOrPLv4M`34;|s/3%tق,ݸ0R(Yn6t4unR= X\ټW >+ h +0hs7?h>:{9+N6&d+fQ\"jB GJqd07Fǥ2dZ^lx:%>zEN]nJ;н~tXmw]_~ps= _?紃lmM +M_CAQmcB +2h d.;_.7Z*šרPA8Ld:)A2)!m &YmM@L<@M;>VۘSM&%?lARƥ@.Bp1aXx"~I_ nM3]y*NnT4rs_aq#F繓oSNu 0yꡦ#Ag ?=j.7ZC1@[tz.dtf0===99BW*w*&4%,7tǀFt>hM;=9Ϻ_\2b[pڌoTmp8m=va" MA^0!!!BlLXvpցZ)*KoK@u$1dtp`$:ufr%l:o_;S+[wkS_)QA-Cua1஼]4Gႀ֭Hpak+fv3P߱A<=>r瀣/ZҤNq+gr TE$(rq%hRhhz8H?lK\i+gpϐ@7֭Z%!ˬL8k%tt- 3檻,/uQ|vU 9DKMao) 8eo".3WI)4۠yhAd)%}!]sTk'<*"]-pʞ%RQUM^,2dUMYi(= ^WlcAǒА?óN=Upcټyk7#Vݜbr|W1 )_(KeM`kXeUm%t/zYFZDЬ>JA*d4t򲙩Z{ҹzbN_k{-ݸ0=SKp>- d!yՍ6k26.s@?ydɣ!,N jJ+zE61))?:MV-Wh ]b lDdU=M ]ށ OvO_/ztC@f *svOlX_up }zpq$Jߧ)~82I͒ь-K`2}<:J +1{ #P@K͒K˧h`Lm[?V7N̐L"s~f:aϑC㯲^(GGǂÈ؉ + C"Њ} +w: qUwfu~AΫ4uspS ;]i`j\lŴąmU=y :C}vjmk;!t]LuZőjA7: ]^_.` VQ:hɫø{R8P:<Yo LP ,A= 1j!t\=*7aNܪv) %H6\X rW={.k {O~p&Xih) s.vUL}!+DIV>ljϲRRҝ`c{~O]t. =һɛ$l|ϦIylzBԦU0btà  ӯzqlHz]|}9&xoLy4z#!i@2CϜRNt@n- FE6mݮ; Y 0a*GCRMVa +ta *8O疠*&7' !1,>2P%]q{xB޷u΀,f:y& hF.Ltu()':r '`OCC5t,/9{]V8A\R8݈ᅋ Gd .6ޙW +[~W*:㿍\6 k{o.B7uc+ChBGiNjP $V׭.w j#v|o%o"Z-0܈\`žUL!kHK,_"tG(E +)/H:?sA0kɰRuTa'b+D8E$l_ V4?C7uRUgT .6"t {O2ɰ xnLGlVdA0d2&N@' M˧9M+̵-.؎`Jڄ"DGڃ`bXD0lm鸡9n&Hy.XY=ӲA_i0ꕓ'!N"R2e} ^uC/]f +Lv4BM!}Xke9R†8T~s:vXiЁ|&!#o>5PAuifΤi@+߾z[G%Na3ֱ- MguTk' q|&jM<\!u0:*2IXi' \*5ƥ5 4uu 12H8j8|Oވg=.B %$XM/6&70 tvmXL(xFi_]$-#]0Nl<BF8NX Yiiٸ:\M ݸH% jG;爝{x"_q)MJW +q!ƒyNCVkJnB0,g4ۂ޼v浕|hew~Osq>Kkω3.B-blZN x'''ζB7gxtVP #al +NshQc3M*O=,sN'\qX‚]Jk$Q R*u,KkѴS'=-J-eV{pO|N[<'L4g NCf9WP Kiup;X+ dG>UhR]ƾõs_ 2ƌ1|#Zڵ3"'b;ܟ}ʟA=W:@M}[zOdiբn{qEq(*ow9%Ƒtw\uHIR˝օ 6%"!7G^dtCӧ6Znё{2FϑιV껄. Z_ƦׂN:RB.%\L#pO{+R0Y6Ui]ߦIKI@2,7h/NDRP6| V<`l0`G>ZL:oZ(DKҞ1ԮYXEj (7t$~wԪO._{u7s *}8,k+}UӮD*m F-ڎ}-Z^'9cd`ގO.G >ODC7v eAcYW;qR>DڵE=:U,x dέeU"YC_ ;l؛J, hWP f䃁ҧ\y+h:f_fLsg-Hu6t$0>Mu$7Lpo{b/{R>i[aړ;nӵw~ɿB7diƈh/Bv8?x׺]L>Vo8D8P.E sf6RljP ־.gGӓa)tdE!zRˈ[O +BZ& ݟij"~Fw+{pt."A 'nJ^>S%ZWW\'KixYN:86Z' +UO#K_!V." [ +Jy iFaX + )Q!=oX9@al$ t}}[\ m8vZ\?va)tau%2_Hc#EzZK= x{U}?s+/YNB;S>;fh +Q1>6]<ƶH0d!P.o0rѬp4zdHm X|p|+[0k)S!+s}b -MPޡx`ы&=Ke"Q;bRFhnES,2,2gtꇭ?h 7S@8IǗv!8k]\hhN=uA!4]TY s>9o޼2-.X.xdF_{:ȗs"YյգPόmëzLrDmuAeKbSup +l4;ȇ>=}U6-w捔`2Zl,HoAs0ڳw-o77 z Ly@~2qF6Pl3V-nL=^݈҃'n_OÞ"3\1Do\6Xj'n޳28хv'A}zԡWof喁G#k8tugD{!.,!ȑeeJ|tй+-P X)'W# *G~wY d}~W Yr!SCś_g&*!H v=C=?kGd6ͬ"m>c@<Jsc9!#nF +]`1,ƕφ]V.XSgK#8'I'-MN40ku]@g'Q[J-Du E3 hթG G)VCSd;&j&iVwĚ4NN?S#RdДK:rX~4l^[KqcaE `*֫=`:s +``V@24 I~ LnRC\,bg*aF! GX(H%Ђ0VԎ8B"eTVDʚSFwAef6qnCGZ/qFz'aEۦ[rmQdGy%RS %5 y1ͣ/ [xsdR\Ў~1!M@2 J^9Kn=r]psw|Ẅ́S32^,νg5t4 mw߾\3ɋёZlyN=ps+OuUaИ:`!1_Gg3V3!?u!88krNjĺ.H4sy{F?6]^ܔ:lj[xǰcg}mA& لL?ZzC[f]:+ >z^vr03F;ξyFs8#鎯0Nw˴~!PO#qK@;80?P R?U5ZH4ھ:1$vfb:%p:fLNpś@ID;sz"k5%i'ޢLڢx:_Ӄz>MKpΤۊ"oRubf޼N&N^ v2,?˵-5O/IOcSrպsiƝ]7x[yө\<65 .D_5+vZ`\ϲ!2AP344sKapƿzW3h۵Q:ݻ=9Fҷ]w6жѠ%:` %5Ŕ4o}Ò WĒ\ X^'كVآJV?'4霋8uԑ|4ټ ,9\ya$t0L޸U4>\0Ena,NgNl% vԞUѵ㡷jɰDXӸ3HPi^gM#nLkI7~5gEuѣe z #~ZzHhЌ^(Vp'?ߚz?F-ۯ nJ̝58h<یZ i(￷㉲$v fgrqL-FF?6mDZTG2ѹDS(ZŠh,.u-E$r)߹r}nH{ f#S3: y + h6KA׮جF.`4"^ k?>(g@FxjtÑIjiȴtΒZV +aRUEB $τmw`i 2,{5jLx䠋6еt55^̠HH)t~CtFIQ ~ FڅC~/fx3xRN_KQ޾GׅCŃftzD#w7`2:t| +edw( A<}`*zW\k*NQ#=.2 /m^u6l裣Yhh9w˿q]ySUMj?{n` N }ӌԒg$NݕH9p,bԳZB4<,GioXBh6cF "/i,G~! +!V Sע}3={ +Q^_^1wֺ(Nm+?9 ,TQVLs` zN]uK4) s.3 %i 9J15E%DLw(kblQs6K +&]H +tr/o10zJ4Yq4 ftX,V}`\Z5.FF&: yMNUzx뎗@:C۩\6%nH_~1 .jwZm/@,/`o HJRhX9nY0,z +t3mSόDo-WcKwt0:9ataq./t͸kE wtܥιC@ZXQdU&Fˑ>aE:G +htw(5s0gj4STpH2@FT2["EhRwj-p4H8h}6nDnƽQn*n +tVa׍,#Eap]! hs_5f+nTߎRh8&DJ(qwԴ-\K&-KPmF)d z"lpW'ynA Md!5m,5{ʻ{2>yt:eʗGID uk % yh[@iBzr42c(* hHKz b^ 쳙K@v, dpݺ00f.`~TBBx`겙vIi'%D$lk@<0e\rx"cfUQ'XCmĥ56 ]iO^&0[ؾ룞ԉdGc+bc`r1%-s|n + mpR&W\~ho]}prOJav2|Z|p1\ Eᣊ\_wl0YZԦa54e 1h1,JG 栥z4t #h@u }?) ;wRMzJmk-ZϬjd՝[eʘwB1 ?Rw,`_&fa QYs;iOIU(Q";,gr*'okP ͫnԵmo  eߞw栟Z1#6SzW&[E7gj7. ##%\Lt[C8gZal)As>K6r%+6Ecq괅;tubfW^cD"n~p :a-}쿑rWl435쌮g@4,0Qj`.Q _Wy;I{(g^4Qw ڃ늢 wEYhz`%Jò2uoŒqd%,)48_i]4l35έQ5РFϼN_9ykѕHIOSq"]qh)ID'XN_ڮS&VWQs$fzXd#ִN"w쳙;gv{e5bX?EO eF6 a85S0. h#Lp;|OuYuE?nZ v?B=;}Fϳmx5\t?)jzo:,T**/xXYP/di XCţq fKJDSj5 SGw?r8mq%C~7JY@0x|94tilҦĴ&+{Cn +/Գb+AaWosmEBi1"p+HV +?Yi ]8KgEi^EJ;2~9h/tOqbCn>/ xTz M +dݣ4\f<D &L$zI:  G +N =:9(‘y}!gF|:o^:R^˱x^rdWH@jA#=1J v=IvO&4!:N `޹){ fa%5uؐYsc4j}ADA@]V}h~na8h%c= hNFbNdS"Yl3tl /DҡPt,wl# ^7@?}G>}8dcXGTTO_dfʂ3:;^5/xmd 2sԅZ4`\בm=3>Dh4‡9E3o"õqaIQ@H3hIl-ŬXS5jc*#h0999==-wvݙA{L{KȍM3%AJ<zs,5bS hel  z'f-+%Nmy!͔ +Z^H>.L:n}`X%#f]+hhXvP볃͎4_l[mA?[\I9{\9 QUB%gjشZ"=コh%t%v?\6IJ]72;-`Ft(0/Goɸom f6 2xJ`4,L4F,moK+dA=֒NX7rۅo?vN=:E +"oZ(w>H< ZJÐWvM /x♞ʻu][ "A?:Mi]^! k#FX3$؃ā>R޹؝lcƂ;7ͷnH:ӗO=3;0ԽGgޙa+tUǰ=A i[zhi/G.mNPWwqA@[guS&dBˀ_Zn3nb{ `iQJ>:{wIg rLֶ[zK&%+!д65sxX#&|#=,TyW㶦+ː*69 ?Bpp3=/wHYm,A}a!fWQaћV-j(vPzriZET\0\smOEǤAvmzsd-nђv?ds$Z%K^fX>1]ْ?g$ ow E%TSGO+zDnٻHBAy@|$~w{w,HTGY{A[h/\ V \AqYů94Žz}4|@ߔrǟ<&"M@[V;>-o '.LO=Y.NO?-B=}NO_uCe|OuZJG y؇4J)9 8_UA%Z& y-`o +XDḙia͙:X 9ANN[<Ϧ|jꗮ#ɤAt;_:#MM Ce? `BC~3߳]@~ۺ6.~o(FyCMiiTbcvݾGqw$kva]NdX%Po K'?œ! ,a9{NO.JHVk6قaA1J24l2&'2 )t>=.ѺDC ^Q|ɱ'ȗSHͫn¡K@[S2AvZ3MF·`)l@kjxS5bbp^z &4ux v@gx:mhfo? h4Jn_=:D쐑ԅbEZtCvp/5ApbHg HmKauyEMk?E9f0hk樂Pe<$fZWT z@Zyܫ~サ׌@ϰ%ע\Sfu)9,#ft\IJx FYyZБsoLLhyJFΛqFDЏ!f ]k>jp~{[W\|9dcv̵0oN-pF|d;'hilDTlAڀnH=sq1\M7K-H[{ZtQc"Nv +bF6Z[,XA4gv,qf5'LR/TD`ܩe8 6U+.r1Ã籉3>GJN%вaj7>~Pah}s;^5ÆnGT{0C!0bQ!6lӌ ;ɣ +5&ӴAE =aVޱ"*ϦnXp`AqS2l:7_Wh7{ ]}]YM]{jwgF>àx0Aɒ?%&k00 '#81#%]b\~%jfڄܖr t k:mRW4 +,gG6)!#jAF6AɋACa+=iwa+l:u3eB@[^.~7Ԕy|bՠly?1n;_`rܑp?mMJs2,|9H <_?acg߁[$Cʶ0^#g.6-?Fϲr8SᙃNc&]4{뮇R5H wg _PZX @s!y&Іa`ێ*%ΟڡWۗwqr׀DŁHzP~zTXם^OB FŌȲk+F*s;O^4tsOyI( -9h:۞8mBa{"R +_3. V#醱gHD`#՟ZݢAE@ c{e0#-.y=4o状H̼ _7ᄒ=)mDB]k`e'B`͵<@4: L\ΐDxZ(D},=i+Fo:ΗΤ!CGnioaZ/} @q"q4RЗ֮n^[/_ltR7ń]q=]DƁ hde/My(1r*+`e0WV텰W祵2K#82@FA E5(;FW"6Ћ۹o\8? ӓlZk&'Gd!C:YMo;-%K1-.ڠcg}W3D_7h/Z]lA]En+.R[^Db&OLHoo:aqc7 EfftRPΑH<ã FTK{:]qi,cA: Iu ylB +Tf+㘳0Kdz䠩y: + C]-TMꠜs +LN-PF?yt".56e}vYTu9RKo?8q0t[f-ՑW\%?og!E0¾y08vݻqgk?BP] 44126<=B* `vjEir6\W(#W$-y 9/2_b{q$hP]`k;xd7_7_^ q38` /?,OW)IohjkR=IOOOONNJ%zƎ}?WLhTZyϧOuie=VמA GFzvYO6GF>;>o\W\3geeW9S;_ +Wk#?7YPL@'orjhňKƤ@2/9A X%l4(kk5K5i!Z2R'be bzE(/`l\v KO%'!i6V;׵aK_pA;~Vࠝ$'G˝0+c3K Q\x  n_T,[U'ghcd`oĽe)4h-y#E{Fz<^`zVtNe)MFzHF[SB5<ZfNOg򅛮<⩺$"n{Ƃ}WmBh1I@gԒ=˰թt) MOOc *JOkm/uᆄ%BICNhNA3y` + -,@IoZZh7H6]04AkeS`f}$u\U#=K!@Zq4NT +2$H;u&Z8Wt<v*RXBUgͺ;.?;emx&'N͘ +`7oP\zT;oYK,)or^fݥu}ĉ[놮[7ѿSg?:Oư8=B[11=p~{={MVCgsQ53#,+EN݇=1d J#!E`3̰n= d@CR)9?ypOPgvk4>73+VWN]h8C(iS\{ښ,xw`: -*@я6"2QXRh]4t XTd2HF1;Tڢi;^>Z$,&';p;8CP7t DG]5KROV=tCsxi_@@?U7yfoX'XGsOMi*hLu74z;}lϳrmWnr +h^6=AKOf+OD\5?{ȌZry2`up' ԼoD$hXFc9 8r,xk@sznY;Qstm':Ҷm0ZN޴rz -P[rTy`Z[%JWXibjFMȶŴSce/Ä{C-H;}a_\4ԂhxxɈuN%K@R~'S5Yqc2Ix~_L;māEhG tf:F, JS0@r-t1BuA)iEQ9ع|t\\/ .I6w:?'VњXݱ2RrR++?YvqE7QXY2> +.]7)s.4[b#4Ґ_'A7<ԓGj=x\8}?̩}G1 %۷$ )_沈fzϑy;n?hod*o ʋ>4gFZ67BOW臃ͿgO)r૧/K* $iԺ:\II*,~ z$7)ؐ7HS_H:5l(-@wȳD]}[iN H<}k׬2XQL@.c/ #6_pJ#K4+y%^-{ЈТox?Ys|O44# hJpc۾.LbNd)ѪJڑe.i)h`'Թf]!@dh\}]EVO\=Oz\\wX? p@g3 uŷEnh.HΣ0R4, 4đ +?vECnE*:`GDѢs1N HɭK ^٩./X? +ƙSM=X5 62:2ΒӺ:@hA3sZ; +Ҫ[Q]c6$\o376sq/ ,CcSy^ZVki.k>s"c "<%H=MER3/69֤ ?=rEvB6'zgiHґ}ɦ4+(Y~z|g򀡉nD@Z?4邸;$3ҋt/gC~)^ʇA`䙀t,g v |U|:/'.*K|5&:0 ¶Z6Uqޑzzցk$A{5ctyJMDk4tGkSyl@ڋ*ݝ*q|kVi4M7ۖrkRrZ@b53<ƙF sk9U KԼ8g}/)RR:XQ:7ܑ_rY7ےB{Jq6j8- N;"s KOݤFJUV.B=WÚVf*;3{ 9GJ;DhSFb`Ёzs$Xϡd3ra03`ơOɳ\w$P?dP@u~K'+^6!͙9KFCF(*ị~|Ж[ZkwdԃAgLt/ƕq3ᚕ SM%si'WOv2aE*>,qH&fw= ym:92h11%;4%kn'@#,fmw|tω3jҀT}B$nĦ~_^@gtGW{[_tp}sj*Lݭ%3N/3-f_^O(7 Iۆ }6; -Pq@ Khl(~a2M iv1N!KɎ@HCP| /OF? #_9Q.dz?ŅBubfOW'/#A?ϫNl8y*nҪ ݟydy3:hL\ + y%L.Qn78 Ag|ZS]H8hH={ֱ9E\bsh҅)zloN etLS"$rNIswp[^f0S<`HZwe M1O"A7٫u`ę'ޒ4,堆VZsh#hёXQ6[-ʰ:\+!97{춑oJo9G qjhdGyA> +4Lrq `]\8y>W'kmm?X[w%q:w~@z8\aɍ B@33)G傀`]h!ݡwGѢ5Y ~BK$ B,":udUD^06sR>- ":9M@nL#l(sCqD<LI1qs"<çutTtﮦ ɛ?h9q,4&'Oj}5 KkW;r8<_?\NuXBY7?,@CsK .K;]ofzw>Fkpp6u:?%t42sh ۸)Hd>:H:t``3 VYsv! +m_ç+ v'֑<@hYڂC2fN% zmMOKB16L=C$ ]mqmBjAhr '0d!pUeiӂ.سa%y;,gn羺([Xgi}Vh]bgv rK; ZYf^Y?6dqE"V'/7>|Pg.V%$tȝ(>%J`T/M@W|"qu0),'Jf]o/!o^õ\H)yU6p$t>[c)*O3 \/UN]pZ& j,ppdob gq II>8ܸM.A80WZmx`JC:t>KYKt0lC/=A7pi@x` SRmӓa)tRI&R]ĉG +AjK~x:3Sy1넩?}4=bXU@'CnnXsw^L田LMެI hrX0a\4D>?p$MO7]705Kw]ϷO:+{0fZbUAuv7ԓ9 h+.78-S: 2JF;w2Zr@y% e͝kW]aE͝JH@m+F`1`9_w w@)N_*-5Z>T͘xim;ALSoI@kI S2BWLT~GRm ³i]&H bkihI~x X.b֢]8=vߞ}b&H#Ʌ]pl +\Sf1L@4@Hѭ>W%/)'GNjuf7 y#W^?o+O Ʌ;~zT.p\ \AsǕF5ݼD@ђMIC䠟é#rIRy KH*nMm"hfKr"U\~4vR-E_^FCCv.NA!A{$`JZ6񺡍#}|∛{Ww?yUF`ҧycg}~#3q-4k夫 +82Ȯ\ۧ]_E?XC/%6-J|uR۞+,C8oR(U.@ӆ gO7"Ɛ}?Rw:mkg[Y^Z)PZpY܃;{Gh_X CӠPkW ]UlS1fprgw(+;hG$)5m}#qJh"isnIWAV8rPTJ!;eI?>_8?qaz"ظT`a2`arg05&M=mIrgxH1<ԄD-gϞQ =ƽ10z*/f6[ gLtڱMы=$XS-:Hrd) 55ɷNQhC }|?jvJp0rUIzK>dA7Dq"b)t$LEͨ !tM@Pu% \ +*UH@Y̼D17vpTiR_Fy14/So\ _OFO޷`aO_!.0< }6) hJ] TP_Nd %M`&KM,` +ø8ڂ]sczz,ì:ࡾFCVNYW@v|[.>B3\:0 +/hluOtvpzKVpC2Gmxh,Z0>nvd)=.p^lqMB$@3V"tԱs!ZWhup_ i`&k{o[XdCn||2Q/ߖ9Jn7e$1HNo)m7\ySio{b)G*6.Њd*[>-#t>q,[s}Y6_2ZU?&PS%44./`یNB?tSs4@=:6.Pw"&1~ 8?Tג.Ơ$0Ȁ[hUz\Ƃֈ)yCHbUM٨>tTLdwqD% hiXVȂ Gqcg/8+[7VqL4:^&~\8PͳpU[茠cJê=DE.B7,LbILݾYRq_{N~C@Mgu(OoHRNBHM+ ֟까wtrnj~O "A:A`\g7|9Be|ݻn,^C`Eͧ lě {FO+;h­8Չ/GqKH֥\mzuL f)l!̚ܭ%Ën`K +^iQ | ZJ0)]Z㚋%I Tz9L8x:6DRӿs,SAIxL|:k^REM桊fzMAR2ʼjhyzݑs%M2 թ#M !/m0vO+2kWs'Վ$M}'i +_&F$/dgMwgDB(]X:Lљ}zzYoC60|E +V}!"h(qAܐ๒Q+ᔀ6s)řX1i+-َ~i '~/6zvLtrl/ ` =S˖oq  +չ.*}ڂa4&.- n^ ,>trr9"]Щ乭16:>̐,8Ժ&V 9fwBGuX-3U/# +]cF5Ɲe;֝ZvVlqY$=gwNm*vxĕ=WO(wM!XJh) J:D:)|ÅԎ茹.Oh/J!O!}DL^I!)!˟GP J[~{2V: zg59`ą%k> hL d -h\AMӎ`qaz^zW[448螾}˷$;r4_\s:aSf#jL\\؂ aEwYs||94u˿_q,m㈋OώnIE9hSv=~ͤb"Mwd'AՉŝ{|)x΁pFMMTln$ ,5oYHdg].|C\nRhˠ>lnī2+ zivhS?ȫ+m2Mi<ɏ 7]S|<2n1ktVrZw!6 ]52ؖ/@A܃#s'1o*ǨrDU(j>1M ,]ơfȫXn?ً#}S2=}kW8deR!/HJLl 9l#ZGBgϞ=ӿwϜhh*]mE2-A6fl5@XY-ё_ ;d}^<@FF֞q%G$!_V'l7,\ʂdUҮkT]w0t X#?hYbk>s2"ih徻m8y j"],¹IOCC27 % "M -2LLןF8̜wbOwvq-{\{ і:nn5(.>85Z a7h'pXuGhB/f{r>GlY@ E?]ooeg f#GO5wL@(mJHdA nֽMƍ!?Vk# Z܎dDؽiV/]zٿ#,gYgpg^w*JeF Qf<]v|mw36<%JK7Z7͂0>3>itS8TA:1 Ĵ,Y$'`;&x2`_ŮT2awS6INRٚuT*?)G)dgRo 5$5`;3xRB_^ӷ)}u{=9<{vJOV*81]v2nV!Rin=-ǕL֚: (w|'g@XɷQOMG Z@}Rs{s&Mw'j\'!?HbH׋Vк{n} PSsHMiŌ\7g[ iΎxt [}ħgdZn0F۲>'R>)8-X= .y}4zj8;L5>+3ၞ|ytVsq"i ީɒ\͡)4TAgXǻ9欜5:C[Fh_W3?4KfS`%Q9I=O2Rn]TRt&"o~WhhC&Z)D(Ds5t:"EҀ[ +f3{{^-Y9]R5 N5=nà +3[v\88^:q=1|p"b7ht@yIGҏU#wnlYnt !g#R:q_#x%E$El, !PhhOIS={yKK?%}&><'p497= +3% +N~gD*y.ɢ -Bi'c#ΩjB5GTA1` +C5eIz^XFPp%hgMSp(ٙJצC4_>p, ;_r;jd{_µveJXQ'hM@:8֒#Єu.l,O.RwtIÄm%:ۇre%W7V64֌c/t.K 4h3tS'f΂"hlAs8*GGGxѳ.eGNq^2V}a(:]eTp V *9tCHÀh4V(F>gvy2vl>޹莡Fv&l"Rh 88S)@k֨ +M0n"~𝿺1:'~*BD7tgj.o[Йh:0N[\ojbw@p)y!h +5u;p9M gzq(n`̱Ng;Ƥccc\ >ٙ?>7CQ,n@g8t-<Uv2d)FG +)[3q IF&]5'hOڽ<:< ~q>28pbe4\(jy٪GL|Jy8gi44eZ6ۉ6geJ@'y$tc5:LGeA t)3A@9JЧyb_PD;ĂDg7E*qQ< ԲIgd| -yQhN&\8dQ1{͝"%1a!ӟZ҆tr_%R" 8qk{n_ce詷nyM|P8w#..--V? fT31 / +4LSzIB|r$hTh`|cC$uy溶;shiAG?H"QH"f!H -W 4#zO$KҚ9$&ycw1)mx!5q FpjC9A@2 ͋}p=GX}SU8|W}݉=B54ɿ<ԋ\]F Cv,:s9CP OxF hT@89"h.6WphS)mn⠢IGzLX :h ^Gg\Wf6 ||?/z?>dhlq7'sO s(QN=]/4Ys³Dm֎ N\v.PWAkxQ FY羞ooV>-C$fDYEDk_]O'}vB& 49юf͸B>&i1Gv*|y7ΰֳu6{w +ܱ$ԡEpQ Bʝ6X\OּA+ p/CݍЌ-#UI/1ԅ Ĭca7rN1E'V7=Ϸt5?f %Xe(E7ƉDFIauST}H=2,܂؁iƏ=zj:Ђn'T$)үM::Xh kXEMiY<`0.D:ӼVwzt*A%Q|F'o. ɺuZeJ9h C?T"fU&ڴ￱s^즉ҕ].?usA 溮:$ʨ#a|#rTS(nP)RR7>^&؋K>3Mt5-XŝCiyiF2鮦:"T-nĪӲ5 }m&.nj!d襰 +/A>Z+𽾷ӱ"'C?;>Ƈg2U +4^uu4='9BUpBD4gĴ1"K%ܖN9}VSBJ9b{3]toO8|'5W[pM]n57\[)P+ӰTUle[Df nG3exWgC =S)퀳kz_0oHUs:5CnMHpڂƶgݶh8-ky瓔\A|T)E 䣑gZ`?VF'*,<}x[?_!hjwȡ&hb +\i>4psa &[L5:&:%iӽ7JNs W@w5n遈oKo|mQ9o,~gz zjmH>wW"+*!7MS&gn4:$P*L~* 3s<J@@ZT mV>\F hU04S{멾agHIyA6АF@܂Cq%W7Fhgiљ;׬]y[f507޶xc_cH(ЦZQtAܯpy\<7< MG<҉O۸kHICg`Mwj+](͍ Bj 5Qa$W۞-F359hooo]biKEAe(h#nZY +~ +KB;nt|%v4YIr@;2-_0ggD֖kt١BleKM 8" j)\;oL`ѝB-_kh3\c&n.H^J L }ݨT"S) 7Q9BIg34o!!іr=76נziEwsІkfEm7vIb[0iĹΐZh?~%2rl{vV46ӦoeLmAQpT$_Z*n*zԂ(ĝ戀FW_ޡNvÍ?O~#?Bn ;08vٴyH&D p/3ת%?b)uFפ}l wاMЍ6 )]Du6kH ;r-u4vhOT0޼g}6Dp yo'xp/n*w?8D?8vO9.k_h3L"({9{U69bv?2sEn^}oE̤E/Eu^(颪m*$haS؁d&f-. +NL]SFnLX_J@򾶫;T +m`DŽE!Jmb GF+?fPsZ?Yl7ta)hM]$p?+<0e_[[ֈ{bbm"lU!?Mwjs5p*gy蘚r|W^( "3 +OzMOC%?Q)61Vjmz&ӄE!=x9f_l83aZw81ʢ=}xzIezWQ@{;!*nZOGÅA4ۛH_H#fffN>N&2)tIZx7m/J)O]tyX| +*yЁڠR֚A*@+VE%#.Dp\gzF@?1-LSۦZnM`jj*]csa٪k2pEճ=U8/AZ1f3h?W?uܬ\ځzFhv+w9Rh?S2Ѩux=+`'ۙpBIFY#=;n z_jP&p" )}Z(hBp5+иȈ١EdjKZv5=/ ɟM)O + ]JQ#ր*?y5rI3&ƹ(NiCFg57Ĕ3*[Nn }9n-ˉn뽫~a֚ᆆm/|ŏ-:c78}O l6o;˹oAO8}y!Vl2hV1s2p"x-i{Ž韨yatNth]"kK*u"2:5~Ce,_ih-yJ ;/; U"cӱoS„(Z?~Q4pGofJr;oTsHp?Aӕ _q9qƈ]qFA h J +BgLæ2E`@]9Ua4ў t~q>e46r͊!w/&,'JW& C񣸀+hZ m:[eZ ˃9 /<嫗NHԔwu̙˹ *!g v;XsvSb:"HR-peazj;QѢFcn]Q1쭟aAe@A.\,ji3 +PF@wﻊn! %v;o8Wv1]0J@shq&FX仹A*Na7r~ȹdn _(sWBY9DsaʹI#<0ef"?+c%t47w˹c]T~akJgOQEoeC- .CFnzU[h "1͓RV+0!vߺ>@2swg6qk>W~hױؗIA3s%x&h+a^Ʉ)5'hs Ogmewc7 q*SRQ=ǧ+p0M9S93f hri!L Ej)H)%V>6Oڳ\YN84#IDOj +@b?So2<89 ph3=reħU67Y4^O*h"8hִph}G,ihwy2sMDCbuM< ӂ&b}N)bdO^q鷈ɟE"Џ's)-cS#n}*9R%-)届ψ9%M4t~[,z} bh.m9ϴC M#MAK'/!wH}-A-ﹱ9_l nwޫF59J tqu\2nc>ege AfQ ІF=e hA"VaVbw~,ݰLPc1P^?WͭM*NȈԴri(m=l 帚8qpzE-k{jU4WsюqZ'iR%F,,Ai%ӱ!EU S;M *Hs OH*z%(.V5A}1xpB>:A+ǑC9oӬ*>?9kPXܷ5*Jpc ծ)h&u~,8ஷɓ4e 7&w,pS|MD/``At T/$1Z.6d‹D[Cg*It)b Og|N0?h^N*~gp ,-Aj_L%a8?j476r^oZ9X.+eмMBwgpq-X&8OlYಝ Z!cnMܗ_9Y%A:u?ze9>,+=ARY)Z(vsUgI^OI8u 18:/GW²97 Ml$\NO9͏CRʂA'(n@:Xy_\2 +kL~8Fd2ls3FQ}e+iCUDa>1Ejpxbk27~|%JWJi0xįIg0 _ZIq* +mѧ?aCmqCFc(y}-8ȗ )0>Ŝ1Z"uEM\2ih irs"CM5S0æYԚEu(hvڸ4 %} _KOɥuFykNibgv$qf/opOB/ xSAUfQS!*GPXhQI[ؙ0\&鱊"H|Qao;sYnОi:l׫*oe~5>MBEoXI&sϕCj)  4ߠk[T!Ј(0po@/*{޳m1ށjYSsqd2=a]tK 6-@t.QxLmֿ0 +43ZM˲i4v2 H("Q ~MpRӨ kp'{h'9;̥t .J)ް+;:ϲ"{"MМ'LTKkB>Pk5։_{nQ+g(gZ%띆6Jܸ`C=fbds)1"@G$Fbxq(jj^fԸk5~(/UqZvKdWk[\F.+y"kJ}֭Rg)*h2 ([ßw6AkIGJCs$GVvJ9shY3k4)lB85cMfnҙ6xV)yu0,]5 .b$dS.8FOws|@^ VM.no'/o}\炫4bVp;ZC)%"vhv +  dnMB#^ѾʨDAc6 y~`(R + C;Oe'̒mGx?lyoo =m_Bh`! n)LZ˟6]#־-o.-E +-(<ɪ3v(\‰!Zs_68:sإG&kg+.لvawW|*/A"Z|(ȮM\n oB:h.鿟kL9%kF-y|SFSp퉗$?]h7gk;s%_<9;\KڮzICӿ䜧!) + "^4`(h=#EY\.\-~ +RTۑgNJn)2 nqoo6Fz> .U.Q~aROChi8pS;_k/C=#\I(R+Z>,|LԤ-ҮC[ ӈVj6Aǫ2~LBW#/{mZwY(<7xM& [ѹ;2xo8F Dzmi +W( 9=T¬Ɛ>r 7Ehʴ]Sh}k,X?Y)Fw@40D>;NzO!]ݸ@Jg棑)06'ZMuEE,I p5UTvnMsZ =_Z"B +Y# ~V|I"B#ba"WC@+&D_A{p yְp!Q N p eeÁg NH,EU/UVB1S#Ӓ J;:V,:id4?V|!Y%\u2vO AϚD+j>L7DܴMTsWĔ'<Ԡ6i?V!x <5}JΣ|pQhl^?=iR鐵ݜHsU@*wb232уGNf{TF:SاI=Vby n>L+$7r^\p}dw{* +LD3VxDGMN!8L甑5݀[Yeekݍ3ˁd3]=iKW0UȊS0$%ӻǁsxpا_;[b7)xqm`uC;zJHE~c$.sƈ,e&МQA١U{e'i!>cDYXy"tlQ#0*0's:iq -3}g: [pe It5$'aTƒNcWꝣs+Mdt^n9hb3P̾B-9Sэ$2уQF Y^/Л̝uKk{H®"OGw>^>+(nj 5)PggrOߜO& 9Ml~^g$la*0%9; +(^Ѿ*+(+Qųӌ28{HzGWF-D~exKC'm7{љ N\~t(*U28>#q/%G5ῡy$*'9Ł{;Gi9( Z;+/O>K͈T%8 M7nZq-HY"p+a87$*}Vqg}bꢛQOHF|À3^ +<(=Ii3s3ydڻ~q]O%tAmr|B[3$he+6=LH*1br&qLNT/aX/%Z^@&G)P7hygwm1>7,l> +Sq" +JOżKZך+=>\f4D5܂#%= h#V4˗oi K*o^Gvиi!y,uZv|m72x,'nv`h?{vQ azB:' hqYF{HYǭheE$`wrn-[;V$oO#3td`A$$dg27PWRtEiDB3_ər]almϯ]y[II K_ϥsI0VTSG/ +ɑBcBPrՒ(%Ɂw O0GpЪ N (FRǽk@[ZxL|'8(l/O@ 6K|,v ap{~#\Y-7~둢1/">re4\ih_s9Xl ݼjZ{ʱ3VeItIĺmq_$ځOB0|ƥ>"iX@Zr:RTJGX5 N\~Į gSm PeNbmC'͉+ 0Qǯ_dШ}Vyu )ULo 2e;N^-e58/:"D?U-\:9Ѐ|<&]7-5}#!C[ ӱod72CI$2Ts$\K`PSQv$&5~ڵL&fx9N^(˘8pnuAw5-m8.g-n10w.Jo)RTBӰyzg5)4zQ)YEh6>hsQ#*XvįJC4wRfzc?pnz^? \|4\}ܪL- + ׵A47DJ7H:q% k7GHR*6aA3F:+[tuG+|)b-ogD) ʚ2K(B*Sy멵7hXsW7د}tls "27F + N\8+eSh`9xCJ:ީeMmgJtm9iHpD ,wqtvv~o?WVJ*/'y hC<"|bgHkLXBSo ot1Dx@+)RFn% űK'/>}h"bq!_$Zjzc!kJ9F^k!{t(pfۃEZ\|zca}S'j!4YfT +XKp˟5~{76A)aZҤ+ugI8ԒʡYѹahn"%ebu`Zz9 Z9R[z@ӡN,K@tgaSթ> а:|8CC["߇ouUW +p&)U 'N@@3MA}5A HpwrH$t­%\4M#S +_qΏIJ{V9RNQ5AʖSwJODQjnVR~e7<89'd.9[MtYyJZx*#} ^V5?qLj,eQa#(Lp|?Asn<Vp$;QrgixMK5xЈM6Q2a{y䱙yT /^+:q+ +3׵C[0ʂB@kA,,:< E:sPڤi mjC +;5uݡN\XIzpC;\ϲ+͹?9ƑӯeM&k20]2 jnWr[?rKUFuoXTo6` C w,,~)@hSqܱ0;UԋQ@\Mܢg% R?sLSkuc_ܲeˆ eViYS@+nhhf͎ޏmЄWA;EMlk: .X/"cDHnŲвM͕RmbV]Bi9յGG$-cQU9kNx@0X0XBPZ1  ^)CJN̡M12~~+GMc676iap8V{뉨̝34 Q]o~KQv,; ozpwMv"pܼgX3?}qG>M/d_iZ +|BE8_:hUsv@x0({"LGH}_'nP¡8OQҕ5΍E8]ːB|sz& ӭ?oyMЄ|Bto:UIiI/>"fjq85+Ks#WㅏF5ېKnWX>Wj7Vo܎1T=͞^d-$P[*)m5Q4&g ZN~ oK`yY wVjF4]j_0'WV+ezʟ#v1xIΠ%#>5] h +hJ>%MeQz _ӳ{}!{}UPhAЃ +yk\>.N 5P弢}ULQo C<*iE`ZDcaSk܁Si*4M(zC뽾r~Bot8\{nB_V#Q$@,s_O+yΊ[L]we4=*uRNv a8X䐅0*V.54IHD@q]2lM p*k3G17#3,v1e|}sI%Ajݻw#\|Н6lB'7Bk:S5&&九J;`p97 + [q%,4 B2)4-rʇc1@k0qE](?^tMfu!w Y'-MtRZ93ɘ}#]n=2ҚN[7HjbOS=9ikÈ6<He?(E\7x4]ܳ~d:qZMx>y>;T\J,O*Ds%ڎqZJ hsIOᄅG;xff냍QODwXWim_v.LמD'Q +QFYX|crϸgSUEX(j*јi, YUOF'P5DHyWҚXr*~T5iXoUM4e007;|0!pR Eh+JO<],4Ӳ1M3|,̜6, -{4:z^bס-{gFO:ᆇvhl϶@4Ɔhޏ"geaDJ==p֒ E=74%FWk߲XyJa8Q80\:^]3ߨs87LOj2ly"$jg͛N#4;شi>R hFr8t4A;4[ϯ=5s\w:7Vɢ~ak˵}@+/+&mvvx7@޹(g_Gcr^iтy,QٴM:<1(<3a|=C}SWYJCt`i; 65p>iX,@}#KM÷ABڐv! c)OhϿ@W)W(MmMOGY-R,m87W֔miRZoK.=5@J~X, 5`tx(,Jndbfffll,д#5 DŠ6TK~ɱB E&67WM+#UJyɳr&?s .*y[WK+J $~ܶmSCRhh=ņ,-ZTg{G9}n뽫$ 3%}Sǖ}Lx/ 5tnh<~(](dL?vrsW-iފOjOLy# x9#M1t\Hj7z˟6Q5"Lt7.hi ,4Xeϰ44RU >}FlTRM^gۘ%4QZ.= ?¨Dx1}58A1U4Jb4p)f k矢D**EUkʱ @Y(C!=44߿{Xz.B GfȨJ?85~t|x?i,[pcK97Bn!."h꫉(и\zšb@hApֳiO"O 5 ǐJDم( hAz)a]V!n;t_Pժj"¯΄FQ! qQZ~5c4S=x]#lw+ppS=m~Bq Z[,6Gh[u_>E%ʑF<#<'~2޿ ްp]T2I~K`;v͢3ᑷpKk1'jQYw2^3\_-^. [~ hPQM0Ĵ +@y[MʆA]58h>obLԕlj߽&ύead畒ΏW >UĨO%@aJ]Vf0x-5 s 0L X$)_e2₟53+‘^R;wbڞ;̅@#,$+(9$)1E$ᄆYV0 B&XIsS>ɁPi0G*.lJ4H3% 0瀏oݺU3~CYQC~yvّgxrQ^s'r䛸t\SGO74ز|٪G~c7_p $M/@`'bQdz4QQV Ҁ.\jp!s )D+DJZ͍^#f *I hGdeg(,`Zz,kRIV$q3BK:j= r< 3j%i -${p>xgŚ&.L^x Ȯ=q@;~>3]0*ICA׊%|dvs{G~ۇ8y9`cPy8); hhYblGRK5&tVxkI@z@KqV* '0$A̡q U*8=KBgLd,_BSf YӒYD M\ʟ>aP)ItFR+MIF"$iXs^\66;Q,e:ET}44.gξ@C/+wGsq\k);j8,HC{FBh#`ҐC'OFVJX 7ّT~+ 4VɛY( Z(uM݂v]S7b6g8BJpž%Cmj oi&nm ϟvϯmbݝVթz1Z.|yW C@Dr6V $ھRCOo(nkIGx?rC=TeiZFĴװ7+Fgh1Yx*y ռ g t x'zv5$.]2@at5. Ub @M|LAbiOp+3?@Onis=Ѱ`9pQ`ϝtY(r"FD`iE*=%O[%7V&<@-I&uhnUi`t^X0|].Vp{ӛ;\:wYp r+?^;syv篩V dthN.? <6o\6=g3 :\M6^q{"ٯgBrVز^/0~ge*r]G"x'2T)ײS,Yr!L(X8>gU +\bCQ&;@F9.gNMLSezZT +'G `BSutb_bj)b\0VDI*[=9ۦ:dU}#x䅢9~:ڲS=x/W\7NWklvPCLtW󲈂!ZpJ=4 xQӵxJET|XкVTJ6OiyJW)cRE&U?T8iA:aQӰumw&o&BbQ+o3sz_OQa>Ho[?쾰ijR\p՝m;tf5088^omOq+wiI\6^M : CxUM'. lyuFyzJآ_h6EI$U IgT2ÃtF(8ȄEnM3ͩL9~ Ⱦ; +LRb5 +hkQDfffr_YU3f#bQ"MĪD4Ss;*gygw;\N?x4ߎB6ʭ?=cg Wh=:Ӝ8 a50} h&5s hU6zƖgUQ^zath%*3 h(5h"0A3Yo_Q@;A@FK=IzY$NH>5ǓIJhIN੘SytCbhhbM`v7~&gE %)C6U  VP %~ꑶ\Aؚٯh_k Yq%P\<,8^fwǹʑ>\:b ~,D&f<ĄOK ;9ɟx(?VXG5E^DQ7aloQϞkł^I9(ToyookD5竴U[[,g y>>>px~m +?ؘ~Th )Z(Q@-2tF=7,΍\-Gj %1;d],(fD űoK՝"Pڠ(i,11D!q0eT ߋ8-zbסN^|t} E][ͭAs.O MR;)EF8P@fxՌRPy oSZ8)Hc8_:gA#\oy/}c3\ӳ( J= @9hF%g'hā(# Z]IoeHG80ؑR>rZQ1Z^I+)ƉqH}=!8ix *Ƈ(@-}tA1W\@ #Eml`_9X}i~a6!"\;N9 \Nup(%"h"?# ռ̚WQMv!+旤\P7$Ϟd,V΀DPc<$1ٝ)4mОO Fcl]Dm6.8%_~۪ ?^k>I`Y?3)( T:ed ࠉqVmt\k1q]ҠԄ+Z\kty4dN Z*  2@? Sg&AL4,\(e }e0at ׈{Bz3q`&[[yG> g 9[n=x _)~3p334^Vԏt! wЄB îuz ^:qasyz5j_@MU( FGxZ;LHPR#΀aPx+ka_9 &iY:hj>[pMhzj'z&M4=& 0Z#YC7}X[F:hs ?)gA6=C\{nl*Մ m(I$4:r;$(*.QWEqlygY;ێ}#=΋J3zo=n!%v )4[nuKm۶zO + gF62* f2/O1NDwؑw@KiyfHp|8w& lZفr{g^!-Mԁ5EYZ!ZitD>"/\<J(YC5R%&R;2KZeYS4 +SN}3 Y\D!_!4g~âoGn꒽y"O3My30lЈ'n +S15~td2ȍ-˗z7מz +-7Y70D@I #qA=Ẻ֦znlld2v GEd (oC#)z g(}lVώ䶾sy YHYCr h!)40~,%E3T(,AA#4o"3^o9F0'L:o(7a*xa$M^mur+Xge/F^Lhd>;%Bb >򊟚H +6HoLtrT$F8\?6 /9L4Sа xHꀃ3ikT|~wRwO&aw"ppIZZF\#^vĦb5?Yt0<_ֵt@AiE(~1EB9o|c{4rqNVpK5t{Н 1eІ__ayޒyKIAEH5$Vqߴi;6 [b%(\JL6"Ou3w9Dp|dgC҂8,tЎC9bNz^1#g a|\ %d3DW7r`s 0U{b9hlO̙AswsX?@/|qd.x_Q:G|M GBAyYY@^rsE=%eҠI)eHjxjמ_Map){:34O^HFޠ6㎠W#vTt⩉iJ!irؘ;*f2(_Dc7h`~`}& [r -7=爤$["۝m( gh$ygh*7a%\yJUHؼg8GE*盡v,8CYt3t Do&Χp8-8 ɟ-x"'AM!ܴ0QݥDFkX1v~n 9(ͻr'cF3H/sBCuH}ϫ *.5:‘`i +HN?/!:0QQrv‹xLH5.X8ѯY9Op䎜} #ǟAhdZn_NWtIGҏ~ h)钸8KRuQ vP9\gpӞ*Q2hB/Lޒ揬^9/֕à +'oOzxՊEM|38Md䠹Z9:_hh3*p4~zrR~ښp@C:gg7UPBe+LLbrP&y`eחQDږ-{=1ݹ!R<4"^2|6v\iY`:bE' B#1MVKʹޗH@/ 00_l:vTWBt8Ēx&Vq XMQ풔't7ᠧswhlY>k}];V Z +2Z頻IJBg7h@5\Y͛oJA%Њ |Z9ʥc4VB*'[fffr_Y* + Z*EEd|^ţn,4Ӹ0~tjXcr>eZcdy`xꕆ|5R eK5pS]ZrY9gȁ ʟiuK,ҙ`"a!C 2k'z530pplm4,p+đcNbt!Et@.O[3IB5n쉸iUPAu:~'&- j M+ NGJj΢ ]GS8748iHi"G"F CHc43-~pۉZ?p#8d] v8Τ( gA)E9\xK"$b47ڽ l9/ƽ-"wBCmf%$2^DXL&f6Sp$}3{=c;Fq@W48KIIq4W4,WpmW<>Xoo_'ghhާs˖-'yPr~ȭ[juy8YܓÙ*)с4`'r65LpZѾʎPІȟ"JXfdИD`Uu]1 +tE-_QFڤģFQ\j.-Dn Uڧ報ǯ>\)?U"/'ҭD{bT +8HZ$y_s8?D$ۻب3}`0 52BMBH7uh7]UZ~DP-tUE2Jk#WݮDɖ(+uV*HRjR^>\gL:l2o9c}ϹΜGht2ssy>r`-Ůu]Y !Z +F֛~ Lթhy66A@S%eL'#tMLۥG h Bg͎DG%n}SP7<+(|}T)6ڄECR+}UƙGEb"Z +&jd`dk`{67-=ِZФШ3ZMʆ45"^f>=݅Uah947H%==jd hze~YOί9T]80\GfI]6#HH޹)s`NG)ox$mss=N60~s2^n\ƛ߉} A UM@èĆ.(i}vT y&h7h㠩h_ +=44'# [Zɲ:4EJ:*YHcR"ZTgG:2uad" +,`1z}ŝ|T5MOg'J@cER4a=gUsok'4 hy'&5WfV .coh oxLUMt&q0Y3U6DݝmMY'̣#l=hlqa SzN@K=OC]9 +c 9K!%[~NQ\t%Oe!o`WIlj}Im"y#ӔA#/| ggf> cNMH@)Ct&ԧgam5 ȥt[8yR)lJ"|Z-g O!A;Z:AӞ|rT(3` CagYxA#lZ"?3=MQ/{!ʛYK%LB4gq|ѫk +m;(7 NHLÑ'naMiUa`HS\~?_O'4`d5㣉F+˚UD|-&bUYR=MwvLz}w+ۋwSs,3ʼnkAGC8]46hx0c=ǜshN1<<EpAɄIъy:{۳l_Ne(mV" !Ϟ=S*9nSG1Ѽ`#ێ`K a̰ z装H4 Bi[Oĺ"e#M쥷wƻ:$%zKS +M@On"; H:b(7kwl*|3|'şښALpn+|!"CMt-}1qܫʢ<=KE*w~/B`l}r  ̰_ǭסAkT @0}!rk4'Z|5Z 1oW{i%y|'~ǖy}A)tl``IЃccc|B;$tTݱQqϚ#P*CC؜N =Rh^0ěq }B y\K5mىfٙ>/go2K~o|'U0 b;6R1YMFao+Z>lN@rxqr|i% e47Dg錏vXk*TͶ rG5 ?#hirZAhSF"-F^l>QtW<am hhheyA#wꯗ|"1]Ш嶱{h!aG +m-!Ekn qٟ5Aд8 njUiO̕s'Th(T,j 7 +04*M13*^C N@ì@J(y،KXJ|=FM3oFi46YN1@;5Ap3e >)`&A54A#`5Ek6Gs 5" [ʢVh);<4Q?z⢻>(X 2Lܒ\ZVR聁dBw:)t36O!t8€ 3ރ1jԮOH7O\vہ5D6L*BVyn,#yGs|tM}4Zs=4GHg +Mk +RBvl~ᇶ'+F2 t@wo`X0.#܂`/fHo.h]ZHE2Rܒ9K$F政ҙ/RGL,GYd@̓ +|u뽂Dɪ栵o7TRIx/pgCvCG !>#4ڨs]T&wlWM>#4zǦ-+ /|~Mv#`Rq3_3@2گ"|}nL^~U}~4<܍c"*4djLHXoٙ{|;e< "z4he"pqJ%*\ph4~KGĐ<; q4qvAɄ.'5 k=MxIU"2 pa MxrMQAss05tgs`* 1=Zi]+HI"LEg +Gvѽ&l<&%;_8兼TKVxsLv|_Y&jZaU||ld`T +;FVS򬼋ͨYy1og{N +0)P_XgɃ3:@#79lJCqFG U3«L~)tib@1B>9_Mnptth/W|3x~ճ|^qKkZ3 +hKa)\AߡSN +G7TN$&]5;nb QW +bW΁)>0,~M +-pEC7<,sie\uj[8|t W7ܚmv<<@j bx;_A{Jb8!LmvBQՔѱ 60zJڱ4ȁ`ha*dt4cSaD=V0Ц 8] nmDVlLdZq|ƶ-{>?*4OLZsfnw@>bçR X6}i$(%0WSd*MS1]!vh̯W-^VpiӤ$@sgGP̪*d^8(. ӹ +G@\ָw_ʁB"ѦMHq6FӁ{W:2}..^"+<-\y}~tQU>a9oEkz@ s<Xִ4 (Q\SXAyT@ؙ`zVl%#6y>y0s/ĜָCS8'M١!R +h ?\PqV 7\=#;P$Ի>UA4F)B^r^ձ@^sVYo谸܄j6Ib cJO'Cߛymks +X[ٶ葕E2<|ɓ'5X,޽IG@Dž)4v Z"#R)U `:G*h7 +M@CMt`cC+V탲A+>>~ӥ/J.otўOGO/OxoGϒ +Fr5-I١hQ h&Lg=_k-0~!g8YO#TRԶѲS#Ӹ-H@Ǻ e}>{ퟏk3zzE7 37@w\ڸ&bRT \54/Jzܩ.Qvc +]ݟщOZ rhfreۢ@&YyqLɳ ,]’ eГyZ?OZn>q;DG S޻eC}}-\_trRz᧡W5C M@#sJPVMg1A!+NCsDZyΓs!_Bw }sϝ)fAgYg/6I@+32marF= +m.x km޻eGWm_t#Oػ ohL!;S6mVVl0Cf߼jvRɢ ھLiLKL¤=?{<8q>5'>|gs}A<Why7v6_$Ϲ#alllpp/c^Dkꋹ>A 4t 2|Pץ fLFtN)iw4k|VJ~f4ZFo_&1qW Ɉ];BrDZ M 'Ff%7& Z& 1^ sa5$<φ7F=E6Gѫt;'OY [Pgl)6}r€!⡚Bk[]T: sM+M|@C3]^sOt T1m#с3A?ٱ?w&#"P +]oLX20DK=݀:gd瑏S)?1MO NU2X`þ);_{Ƞ3 ebM+Ϛ:lP0@]2*wU^`o,rUV% b{\,si @Fug*$$4 ٚr]i0A/āgzjï'SMݢ5ʫ1;۰~HyUiACoٳt@B9}\>{sʭjA. #T5M3ZCMɳKNo#$ʳp#e0<<rDuDܧZ lX呒 u8V\_;9NIhQ++ƐwO9q2 ͬ* k]WF&Ϲ$jw޴1i Ej} E Am=ʩLT 4/q }4gq+^f|1 % Z42hޒRw h39w y<# VtGmJ }舿Coql[`.IP1?hC8M@ŵi;hr`P +endstream endobj 507 0 obj <>/Filter /FlateDecode /Height 469 /Subtype /Image /Width 1920 /Length 405243 >> +stream +xܽɓ$u橶KX(6A/"n+xHu(22Gro<-Br&XUYYgdDj<}su#~RH[yEQ(+*<-" 5o"o +$Ly>^˲"T!%@/&}~k_ +a +/-y`ǏE^YosQEgIT+/B'VEP=҉ыyѿ%_[E/u2d⋓F$2"?m/U替~K 9rvUl߁. 7/kzq]>{h9Eή'1zt̝TEK1LuK]TTR!ʏUFi;-#/ t#O߳EMgȾ*rяMF: +F魴r0Vr(?R9K?Nlb-8Do{ʨǤT&{|Qm)}5R,u'WF,֌]Mo'Kz#}>Ek :FiG?ͩNWIe?|X3k[P8+?-3V2ꊑVJEC1m|/*[t^?[؟ LTJ_M +tqlWǡrtr*GQƯZ{)Fn=ED-3dVĴ +绒"vPSÐsz jKnߢt J2Q8n<1b?Pۏ!7T>isR~ PY}ƧuۮԒդN$6vpaRwMW|':&4ǣ7rtY`I&Ju՘}V:C/\oB>gVOQia;}oMj$x el6uJ{D3V/6$.\o_'CWdmE>:׼YKcuaܖO>tMQc?Ӡaz C}:HwWBbK[>hhɭ>۾Xh I{nhα c;i' $gΓ$BA7EiC(h@:C/6‹Yy!CZ^xB$6,4H*t=| ]P9LjjN"pLv)4s~8?nN':ѭA,_7sql<_bx{]}4 :|qBW bTސB֏/kT%~[ z|g#{+Aw~8'o5^7RMg$ӷ^z Foh4.MNϞ A4u7vWul%}4~)w >Ɵ0nЋ+IT=wZmyxLn!EH/brUh^dʗkcUi"^qֵ$^4u9m(!w^|J=ONiÇ:S+OSf2ȔG[٘#G2A@ﭒh=I('(k, 98[ +{`|nUCo!O)_Yia?+ⱷ tf ~{ټ{N1Tf?&O‰ (U1tJH|?`4}o ju +K0g3DPN6-=<О~зjNMhN^<|V0O7P\ʦ*l +t;we1|Utcۭ-婧\T')= Qo5z;䙀Bls xI0<++6[e6NAJfE?.ahVz~+ /?.YP>t90y"v2zxؕʩ`˖ͽr<\DL th$%(~pZ=ÖU>9mby, % + +?Knn #ƀ2ӵ>.uZ o%e+R3ܛQ<) Q˖QwԌDkXWȀNej@;eMGP4*ǐ1J;ζ2Z-y-HZuѧgL?ѿOPwyOգ1G,[+>bP5S{#V(sXG>C6:`Q{e8̚Lz K g@BS[FcaP3õ ,4N?9 O\ZDT{1%4]\F :񘖸MK}g;CVY[agk)OH{,~NhlO Nz#4@MlZtE]X +;Ůxʊ +m8_̍CsnBW}7ӆzed¯kG-YqCaڽR!."t|Ѣl`]|@V۪/a eψ{wxsÕ-N"/y3݌YnG~@@(O1ݔ3]^ OQ+ArT^{LD[T2WPu? PA +Mbq2C[诵Z0\t^8\?~Ppr]kUjv'ElsP C=癇(0;,nhβB@?oav,6YzIBK-Ç1?pH{]*i]wn|ۤ\ab\7ׂwMz uu{@NP?"\ȕ=<~>!.JG|!eFM!omN;ʩJGt}l(}^;+TdSo_^ʘg2kV9'q‚DG--^|J(WcQq;{Z^j80#Y٪tQ~ɭŞnN>z +;oxX# +f>OT9hT4 U00噉I4cVkm $lQTC/I;;#<&3ҖtKW\e٘R[- oL k*8lAIږZVr'_8 +'q +No?u4̤e*huzҜ!`K;TX?wi^,O{ľ:7.a `vYij&- :l9@k!^W{A/6I \h{ɼ(piˀ ?T>H69RaL; +7ݵ#dVuʼnJNv_7W, m }V#+d1ЀQE/. !=]@h*`/N巽E<6Xp@usFӵżV4x!U.+5mg>$?fٸd(m17KV@zF4,7" Rߍ?;!ZPW&,Vh@O`)؏59ˠ*|Գ|:XNÎZHk; +Yz6]pXuYg@U&Y+y*lv#MVx Tzr<+tjg;Wz*qѩ yW۝*t-wytSYɣhGeeh9U_Ot7Nŭ@~UdюbXCR.ɼrH~xS fP]A >T# Sgh;]BJ/zfB6S5`Qc2& 0.P,oE@Jqn%6l>Z"Рvb18f(G3P mo :!͎9ӚaEm-8͆WfQKbm߫;qXOЃV45Ưps;xM[-v*R=_h5+ H=ն`$YtLd×o жZe lqY|w-FiA;U>OKks,M)t 8o4h:y?O| Fyw'飼/zׇ|xU2 +w:Є;ۛ8!DFGK N7|zÕVL)*;r'Mߊ>{7A4˂}jhHh'1HHk57ɫր+ŐDBm!r&(XP+t^F~:qtA׿e^>iП u}hA6%0tmjXC? *5< .DXQ)Znkm\yb,~ {߱PhG5 +~[mjצ<\YE8r8EM/JuuY*}:?^&l#aN^F,9c'=$Z!?mG| `վ4 ;dY(,!ܟA?hV,Gs !T5yg6 Ts\j}oޯ{47g?'Wj@UbGrሐ^~7^\RL#=-W<daKmm[6vZگ^*qH:^弬,1uSBОpf4fJZg|(=C#2W+~oR_ _z˩9rI;h +6Tx81{@kOn.^WkKI\wiϊZa;5j\C vϘ$dwݬ(봊9іLt -U$pnYX.v:Aҳ7ekZq/0f2C8TT*oPEPEPW٨㊺&#CBn>bWCW;nFIt6PKq[ڧi-K{`^krjYF{)7P> @\SZ16\p[==6w5/"GUqBB*s~ %WpR<:I4[O̹ڻ-^="eņTv )ڃ -sa6Wp;o 86=R^,9f v]U/},GYG:)5#zmh^Q@Yo O|&|5)LO..f^"ԤD?e73 g/AW61Fxtoup{@^d4 `$vu\BOHD'[@ojG_߈􃫛l3qǟj{PG KVԂҩE׵8;<i9UMѳEkd%uTm1M=QdgsqUf">j%G+`>iR'c5ƒ2n'ҫ8:3N ӷCԝu <&"{h`o +i\,ɋ|»eŽeı@* 0!/U/;TY9m%߈6@w7."kZc R@9 azRqF_x,ld֕:1ME d7:i: ~! ZU{T[յBNAsA3o\?zrehbz\?{|(ztopplxtY[xk9ZAWUϡzʚҢn'͎'۬%7MZ3@snuB0m;렝Qfֵ=ʵQ4-3w׵8%zw@PI%bVzFtNj[t'^Bf@v8oũ *=]f=2lXJLuS%X1ZAV́;]!X\tr$B4^UM<9U!$" BqL+2O`t4ju2NfEx! ?g4 .n +)ny:Ș 8 |@3d%wfv> +Pv՚ҰK٭6?݂A̬(p?=7`_q5=?x3^?l`0/@ԭo[n`<? +QiWk"j%y. zёκALEh (oe76h-f6%`Ւx0z: Ͻ +T:[܄֌)nf?l01DԈW|Wa޼@K7v_~nxS9eZo@~E*Ut,4ъԆx?~<VړyLNm37=؉F7~g~~2, 'u&߸Li@.9!f氌g*܀eXv{Oٱ ׅTa xKCӚ_]hX tb5/%{HQa C mA32lwc;=CV`Yjb<gO MEZ?{e1S`*4ψP7C+oh jE]@ L HWG5;4E/1'34("z>F{ .x5-)$%I}vgIG--Q hv>-&&hQ]IŅC~ƌKX&vK$>И= +)@̈́Ȗw}a]F+ahOWjI]Z{gtFRT\g|#tɦ2 lɔ89!?G?#FXHmѲI q|=JSoQBv8;<ד{5lV#{v8OQ-'3@WBh8~:D.~>ܝVYXb VPa+EV.†M^v,0|Ui`RCcvبVZ-ە%ni'Zfj\ acA;/U^ח~I>=?yg?yS.˳{ 7ѷt٥hn,aZDC,f;-тeZ \Dhў\xǑ~kf#ތ0ZNΟW+D,]9]67!mU"%j.C8%LJ jlse|ppD6է5G^48NgPKaB!(gK7N5J/]taGE6%P˕o^L, +ֹ=12aBdфGYmd ?.DnFM-T/byzk l6ԟӠi4.&.g㬲pGqVvU +-Ԃвg P+, 1!^ES@ gYdS0 px'=cZxn}e6㥁_κ )+@LZ(gHG v-tl_$@/ڜd3muv@sͰ1$O_-<̂&<őӒY{Brunđ{ KhܐlPS0;"ZihkQc\cH:Ov}ς9xBtbVc:낭?ZUu:7Xv31GxY6o?9 HE@U4\kL` q\/oƇ||^dcgb{HA@#٦2.i0DysZ +cN{"M[S㒡S5 9NV6hv:Ӓ_W0iQCԶH"O_Pߙ3/>W!ooVٺ0mڤ`ВE3O.{J= <4qB)eʂ%CƉb I=>2T|AHGw +pZ1)#j/0Q@ y<>*[HNu4U'3ry@_M#T\ +Y.B[Is~Y[sDWOk}zDO_.Ĺ@mYU!6^XsXq"_ +Y +A*}(R24&78GCKlwsmcj@rsaRZw + N-ċcexrK‘ecl4T@JRV7;5{RE2d(%:b^*o#z7ek6; +GЎi6.z'Nh_FvVf,{A« +$f[ڽZz]lqK1Zw:-vIeQp4]8Li!ъ!*xm+vPl߱vc$q2G/&Y'|V5z(2}BWBU |iyׄ>dZxks|0B7̵m]XeHNd'R}UCa룫]Q=M^_܊Kp_fRi8rHBRWz} t<>3Rt&ˮQ{%XŘ yS4d,S%< X|@s* ?CPm޿^y;k&;5"O}GKǷ\X/F2wv\kΚ!c EiPx9u>,R|yE,9 @8[:`͑{uڛ29V[^woO o:4gp_O燠WjOI|]`_n+)cK}Y*z=+b,k^N?Ʌ)#0ej[hZ?|{DЩQҟp'zfFB3xDޖQML!m;4fJPf&,dּ|os<&*@:tq1^MB$/c4j [X[34hu~?8b]b3=c-R*b+v֋fṆ:G( ٳBpYb=uN8^ HDYoe)6ee(8x31B/XVEQ!DH1NP_ y-3:6uMYXX ? >N jeDӅf Ў7!kQ`, yk}lZR*MEx!<D@Bm!۶d)Ubmk +M&bNJ WfCnG8?ݶ-Y6F9c7@KǚD3uUEgޜd-1f1nk7<7yPg޿{Տ{E1M?d`ηEBfzW,p gZ2 +dЌ|ء9ߍ”m-Ĺ0YZЬy΋[NAFZ=SYf8w$b,؇?DD"l@\{y9|[!'ӷ D$ݴ(y$ַ3`H/xIz -伈8o@tceO/{ٳ\--ŗϿ@y Je,I|P~/yDz܏-ޡ3e)>KΧy ,z +dv>)eM Q|/"yV;k:ݢ Nt޶#8;k0О>'O1uް69:ZZ/M 7@2H'lhaQF; p8ƛ h/t>HMkv]qdd@0!+C:[XaȨG%g({-#j3Hzc3♨3rU8muRI%hGAcGupJ>ȏ󺁨 +(,Ut#vGѓ~xE5A;1rVrtd8ve&ӣ*򇄸y 2Yq4Y_'GYT2 (J?RVp8@CQ(gM&RaRh+.\1@cx6t :Ojhk7<7@oꭇmJ~Kίx eh#2ƂtƼmz6m{nH=~#~NH +޼𾓭3h؛8 0?{kAdJkz%~n+wLNVz@Ha7y"qq_~UM^AwJG>8z?SoE:*,(jr +"bȗ@wW7h9Kaަtk5B|6Ag廃]eMYv÷H^ ] GD=5}ݎQ40yNdT묎2eyZ Jȼ!hpRgpFt/6^@cMf6Ȏ:4͇,^G88 I/eVQ:Q|8קּ<|PuӮt\ {uސHQ.'Dd|ϩx=3.qՕlXݾS{폕&P[΢QSuդJƤ @Ji6.́Uۍ".7DhђWpsm vV9}v0|Ci/~iM1Z;yӹD\3݋,y&!]p H@ڇ kU]EdPeT GGuc?@5w *L5D +;gVv ^d'd`Y( QsztpћG~: О~TC;㭬5svB8j]*orX}^/5HXP&wZx[0udh ʚ? 9~D7Dڌo# +k4))m8Y~| wE[l?c%ky/"[jNa WgFIots4f>mu3].B{GtM{I*{-뛈R3#v*q,)o>yo{խEiVԦʗSŦ@ 􂧯m^d'} ğ;ڂ2Pt49Qk*`B3bu^O,QIG5A~|+_fWЃR]k6CVE`;ͬrwYjrO44/3V-z}~OKWmGe-76A+fL+\ָwLrURn8 +GߛJ,l䙲YT5 +=5#1<})f"ɡZTiKG 3Øzl$0L(RQ9$;@+ݸpwkTl=p0{J=4XmTIX2^YE1Ծ@l4luM~Epg*HJr? :WIRw<>gm~K?ӁZϪZUGΉvdO՟ﳣB_#g@YK,xo.gyj⁷ %?ЂLss_w^xJlsDem](mr8zͣe&x& ΂s: +2]xk_< @~`}`aR(+pzpd=Q*w =Ju2PI\e=g!ΐ<ۦa7?O Tu)"/= 8@/}e@+8H/?L׫P9 @ϓ.2`P/(M`zv>i_<9n_o0 lGJheh;Ś$l#%"W,^6?yؕD-{vjH2B~v) @#d6c-k?]ceJxii(jC^oƏo^-S rqp9l}VPZe:/˿OyvwM,q+yzG6;Z; }9~ٯ +6[RcWjvQq{gGv۟7֋mwБR +cc$AlcxJZv'rwia?虘NV{4v1dKu 1ҙ惋Xrgrv3>Ѡ~Y;Ji;|<7 Mꪚ +耏,G/_yȦy8;tfԮsɅCnyY/̪؊3Va0`(TT4}+MJrj +LU>";dU:Շ .vQ:9BKQQMfN)_zt7yϬiZA%89Z +ꞞInؓ*(=Ub)lё3WmyCzL!۪I)gжtOW}yJt d*HH8g'mcJ5i)at qhX׀6OTI-;tTֆsetJ@cZlb裁'O)=b;ݖ;#ax=#^)GXO SNh;Zm*p >Hp( B|j#"]'kW@6JCk1$6*x[$gbvސk!h'EٷQIvl{ !dyZvU(s5 Y%hϟfęzj8[ǔi`D<_&Ø_7x.7GaqR +0 h;ՕAÌ{,x(ENm,O:N;qNaE6jEf3̝"/O4ʜ["coM{;zM55 +a|C(@Ά~`Mɫ!:f(,))P4c]̚k-18bXh#6ӎ\=p3boŲ*giJ-t W^ b1_:_.Z4y$-o%`GK84^.d~U] ϲ7nmFJnC PHNo@#N8 \rp`2zMm=]&+sl}{y4u?lmOd\efA;pjcՌ7B/v0-6hAnPrwHЗ'UOZ!!U@r.3ZYNO(o ,>Dic6?ƹ˛,PJ ~@| @~X9ۖΊٳ~Q}ab04n,l읭rt* +pp$hf-wO20gy;9}{ndȋ zu^:Z [TZeճK͊3|<9ϫ$m2KN쎺T Ny5C^ϵA#Hi6H&upv8Jg4biٙ-6qJ^>B}31: {x{xUql +:>Z&Y^2^}]5r9l<] w +jEav덷M!й\QT3:ʆ͢~w#Vo{; לjgunRa +[a1S Oj#S`R% p@[NmXf`{cV@<+F;5M]>n U?-ʊ-mΖLi$9j61Si;`{4ROzN}̿1tH,rK~ȗŨ<9g~z(M$W8='l5GVɰ'kAhABf¤{1/1kB +*]8C}P,h!+c~, ,Ngn\8teI҈B J(jj2KG|DMDUS4̾cЬ(&g8+`T|a:Эhe((@+.ؽ{SiQ%`{e&$ZC2e Z +Jlh+{ +V^(2aHKjzCJC7dMZJ`z6y+({nńԢ~׋$;2汑~Оe,,Hz'dci;|ΛZpq4ZA +Ⳳ@mӖ?ӗb;kP$(ؕ)LPtn Y o턶xGeD*.Uq(@lJkɣ,z^zfwP7''ХX+_/G5 +lKԋxs&Âftb03Taw +8آ$8c=13mP_.lj좀IS+S%4(jWFndG#UilUFkd(y*(u͋"."金L &%MJ9<_䣇 cNXZ{7 Σ*]g#g[mA/6["Q^R⃪fySjb;fZYtl +=^WĔQȤdl,yZ1PLy M/A/ Sio'.R7l-h>Ui|Ь˅:z)6&y@k@yur"iQU㴗|};O陠7:"=ר\z,OҁS粿vbQDM!hd3r$Zk.-aXe:j?^`PjmiDkLZS"Hǫnrfjdch4^h 1`C3+4\\~t,*s-JJ{/Ui5ls'^zfR4P,^R1-^f@hȳXEHUfM;m?=-;OJp:+romk ӯFǐx+_hZtCm4 O禳@Zi}Q9d@\?ev94R.6`y~ ׽tlh5,o"=o~{+sq'˷aq#O/ jA\:h ڔuyh*CTM*OxVFx_H* lymr3oH/÷N/ȫmm'覻Vj"\8Ti12TTgȪZP+);&)?Vlw8FjLe,hb_?Kn~Kw^']t䇼*]tx4_.k_]wzC֊#f$jjV,0P؊#,gO 'Kߊ.>L%] T%W&KN9TK0n*eaddZIUFOؘ3)"@4;^go\tIPЂe*>櫳F3 g;f0ZNΟ福(+'H%$`I]|vS:S7ӼZ'폷hӼ[ԻgȖtr]q4?՛slCKҔ9t 'ڭ6Z⫣Nd ,@ Z1K)qrg.[[_5"ВegkPLLvݻ[gb~ )wu{˱J&^Ӌ\n +bVh+R.0--ynC/;@[∦%z7Ўa42hxފjOȭss~ *8]r +|vOqи,yb v(zwX2BWK<7~ƴEU,琖Nn;(9>iTqAݔpX"lHZ瘭Q Ķv^>\U®4{U4dܺMWh}_zXUb"Vr.iDYkL_Gy9c,aqdJ +q%42*ߙIFJ/ЪbjʆFzU&νGCJҳWv#%1qq+7xH+ L9O1A-] XHڼ%=9=G 0+J› +j& B-O?$ +hPճ9z/'?(dg4:ܸ%3gn>g8 +7 +},h1<oIk]e p q(㾿Q61 |o$MɭSOB݋vv?<:KW @?Y\qNG`맜p26B-uvJXFoNϚ +^wPwquBvy@4uE.U}:رťc*))GǠa)4Uz787KpݽJӜ:iYD/<v"A{ ^KBۡ懺r#s)}Bڕ.*nE + +sF-g]mGaE)cN2PLN">XOoٙp^ѫ>ˌ ps!o{ގ)˗ZwU*R:lG; Cg?O(V{!|pkLt\B.3G//k,=~Ż%М{AĂDgPѱ]uYU,\n)J6B0_T Q(L>7u@YS@bbb? G<5orO9N.ƽxQ/TʇϳI{wO#n̏Oi:c{ =I<U'䷥9Ůkk QaU&~ >@|Éo\.@spT +,@i+j?&ġBE`E+8)&e`umZJ[{Y9Qh}8Y]%hq^~3^ʢPR,RBRa}.b.'bvvGȣi>]r5b^O{b)&;C7uE~qtwH a]ǸLGd-27bZHH:҅NWWh'@f#{_Nq6|UcP1o$g,tAlPhS.}6 >-V,\'8| zKp7X o g*/ml@:ng{.Ad IPwc%c6tRʟuB 6 4>0-!Rߜ:g`4μ"XhkrSPU'm +<ҘwCئA.5eCׅ-X։ˋUAK]#/<*W/0kTYY 1]UFK}pG[FϏ[3:!+ml`U,:Dr|@7@ެ̘_5 y``{C@mxK~gA M0!|Vzq=0PTh8sp/=g&AgCRʈjP\{I2m4iq:̍YԍpyiuGS6A뉖"_xlqQ{%؏3>^9 I*E17sSL㺈1Lf i]5AضY6&ֺ{a[2m2|wcn8wJސ|1HWTNh,T1F@8rئtm1[ko. l=xd1œ|NjnJҵ@yJBȹy9J`ǃG-5DWIDV!heT3\GհPu6ҫ[W}픫PW{~N߸E +u6Oiw,vH.euY9ŦOtKL< ՉZ13%h|JN~\o*)ܿU.s<|"n8E#&,t Ó,L'RC Ncrn>-:Vwǥ"_5̛לrq4[1ʹ< tQ*d}+ ЦԂ/~۩ҭKo<}!MЫ,κ9-_룕vȦ"ygsiӕ<͖yeYQ'x#?'s`=ŏȵͮyӒ<]>_HWlP=@/FA`@ӿgo=-6Շ0?ahtAi8;4vzv +/hIca8, ƆI qn,>v +j9$yN/Ww/ r[ +J1ᫍѶb^ůeaJK1S D,N62 xKLR5^{{|Іw'f2c;8gyu=;ruy2<>vDWEIv}mh\UAoϦ8CRx{ _5$k'.A,oiCjXy¿.6B)6L|E*̗  zGOHj8.s ) Ԃ(ZgOvkK8SWM8xm[#w,pV  ͸ݏ"9=v?g-|ㅾm{eQ@N^J(+H窒SkxV +DS9$ud'␔nvq߾r_7^ZpTȣ˚ H}I}j%G +=(_Ҧub- <ɀZW8 4*mlGeҦϤߧAF#rw^TzsOe +k@3VD:<[:Wiރg#o PA4gwH%A;3.X鷈&VβA-~'~^uפkoGA~krY ,EǥggaT(ø^H`(:5h\4/>uP`ց˕(hYk&R‘i`tx# &yXp7 ndG=i4 wԓtԡ,+t^L˅Z&v5-T.xi_NΆo~Y{^^,T͞|yb4XKq "_??5'ȱU:|?Ou2tqdvT?vfD;RK3H +)xpTOk8rze m19[/1 (%ڸYK[QtHeSj96*K؃s?Oj9[K,޶QH6O(s~'HA0.XlJҴIDݚcW-@Ɨ:9XP=K٫:}ѧIYM L a$\!XUi:ɷgn/(#$-ڿڏ;i"@VP!>HK}.5V E{GW94/zi/5 0/&Ya_jGCr%C\7,rQ>פ>[#hhا}gtn@cڲ =wƅܘ[WGmi{=@OV 'ؔxF83@]!;Eʾh:3<5% 26{ "Q *,ݷ/eZKr l09ClOp'~ <hc?jӯeNԞxOg}Qvb8 +.8U^U'W :WtqGiYQm:qw#(=J;i)mjXG׭x˨ojoz4ގaR]s]iׄ)AU ?(ױO? 8!ЙҠ"^ּ?I+:@;.$=)$Cw^ +=(c;6Ϧ)Ֆ~d^-5>ˣGSnHkk[@y==i }":F^$ wY:#mqMIZh/ͷ-nȜG$#YUcɦЦtS~?TZ`=}tHTp=V{qny(`WtGb]ͮ흡HL11=d΍QT@Q?}ςOTuLuzփpSu *2jEC@{,pm[!7E5Bڶ{paI"l{(7(b#:*MeJjtj M1YӤIj#cV;?OϗJ 4KxЧ, +yC^,]W q37|ls_YTUBU Lҝ(vA}b,#2b̵C +#1|9,ϓewFUl[L#F>%e-ƎUDrW=  r-ޫ|QP bL~5_;D*Y?u<-SRrfZ^UhTc÷@#52ug+ `9aƠ5 +@>ѶI=(O6:3w=]2=m0ZqذǏl%0٨>0&q^ VWPUSݿ ]? + 1ڬ9l<"%:I;&wD֛mvf?/R&xx<>(άpѠSvo&2hYs\ j̦@wF _u{'+*ݡ)=~N6WkA'}44hԗS{ml,bXeΕWeͣal} 8rSǍg;g##>F7D 85n*rGZt-ڝ)n- vELxY&cN;o WDuA$ϑ_9\e.Qb l\"6 &&]ϳUAUp=@~.b@&{_maܡ,}Ƭm:~"X`>y`%P^ۓRX+[/.Ҭau-U-eeiΉ!kJuKAb|nSਉר@ѿ-au &-?s<"ɮȶ0 "]_^>_+2 @l8x+:B6ttaA.n=5:0CڲodˮN Xln\AKQm%OK*@ȰV=XL`VNxn,ݮ_c>&]F,;}gOӫ pyL$?^qmF^ uhS59h,\"s]lXs. L +v3nY0z O}: >ѢtA~@˽BC-eMY:^l~ e@tN3vP椼Z3 +)T1_Jb~b4:8W +@(\@oAKtUξoFA9mn!fB~>U:<{@DShoذ.+' s^y:I?cT 4_7cE!* /Wh +eЃU4ZMg($hy 4.x'f=Y_-igA>=q:'c??j+M2# +Xm<8JrE^dtО>')'r' B[[spJ峨Wg7Ʈmn@JxtF?$JIvtk+w&vw5հ5!:BuKc3zt`mP &\?6l@= +iᴁfg> 4;$Qr1Hd8,;Q>B_pTf̹'M7U6avy@:3  ai_0IZ sIyef5`v{3V J%+ F'g9^T%|Ag㩢DBWRAɵDYyvE4XD_*a ђ=&wxyd_?Ǎͯ2r +-!8+@K&@tk%Ǣм$*V#˃8'ÅqeW~pns;Z;>׌Z g[KG|#kqxB@O@{E 0ܐw"7cAIð/h5z(R(< mW܋en"W!+4N"xyJӟQh}P}: ad]u+t$Dr6ݞ>bO|h_=[o$S/ J[s)OhUPI_vBX偽>] ХuȠm=Ԟ|+&}\^&=NP3PrpjRWx^ cbcoÎb0Ɇ㹡tH?r#9fTZlxU3~ U5Ƅd3/D%Uc̼8Q:7nMvN>R}Mޤ3qR$qdm2H@ hˉ`V𸔆|ڔ~}5zPȤ oSOENeD,&ckǠhTq#_|:[7zrBuGV}a:~ax3 ?: N̄{d" W4XSE:W@&>E%atHwb!s,Jt]?Tg/9;t>CSOv&);G1+_WڙE fКG f(N :Fǀx@~B@G[Yf5Kv5W5tt:{>bnui×AT ȥR=BEu%D~Ѻ;1O?Bw c\fm1 pp:1|vs'|= _ +o@;}n'ߜx\r|cAx,@똙xv@V4:hYoE01V՘}pz*R)}⌷^F\82Х +Rt; 3~vaaOeaPgAށ6p O0S$Tu6}NEmg`Ř _sc6Ig3(T۶OIk9uG[+&&}(fYj<,) q;3s^ cIrߎٷv[ƽzOf YjSE*3Yf[d8,Zud:WʲtYӁ\hF\Tk ;E *Z%dn4yĵ@mh'M>XEЎh=j$QЃ7,hS]& T 4*=? mۜ4rPZ4+[b]zx;zl^1u3-  +Zl*-5 a h1 _D,|A6*`Oar'hת}ھyWtj@'eAm˴jZ]Xc-GLf.ϴo|*7;G@fp=q-8i؁F1z:m5q<CMی87¯< ʉqhY !jĘAnIC3RQ|ҳt< h?4K:g7i='y:fSk,()g`F@ːrKrLG! |*ml7׿8ܨ(֞HcU/7 /J$i^!ŒPdY;dSkǘF)!0kFmϟ4DNsRϊV Uv9%8G.c Hjh,׺(Ί:ҲJjUe3t$%cp8"|AT$XyC.iD+ekQ `JOa`gkG,};gsYQyegÒb[иxli1~*<{{,\$I)?4 e2mi/*|6 @gGh+RA8?h'a'sNj 6tJ^;)>#+Q%Y?T&?gA78JB _?|u +c6q~n$,j ܽ7-g7d)#+4c3Ӟ/lL)ډk5R Y#fnG|DzXnAtݼ3N4u 'о @@ot`n +eDBOM g< o*C=a%@"5ã{l І{K%ba`a Hw7Ï+`#d)αpz +$"rWDdj c}r67|Jy>No~gJzP56B a$_ÂtC(A5ƨ]btI38jhTS6|q'aYuk|̏bw j lzv8gl4 +b yZ3&9IMҚCGwA"F{ ʬ M1@B-KU;wIuz]&T?Ї0YLp@>?[~}=43g#vZȬ*glf5^o֣Y37l a"6(op6E)>rnA3G}F3?!^Z҃oe6t;qIrF9u)Sh#hsĀDZ9̢BuB+<97*sP/t~;t8Xa^UKR{Rs(8Qpkg##d,C4XEsV!@[V6Kd_rPn ?sq)-+iaIˎ;.S@G@hяO_:e)|EԬ_hMHLi+?,6D;h0eBcE~])"L[gm[׈"dMyg:4`腆{Ez?)eբiN&}7o}߳.2/hxJ.[C蔫r1% 1pxt_ہU..;ʮS9NM8ggVQ0_ &&͐byF.V{'WTPb63<7D\891pѫoFn*Si%0?[)qjIzLH=U=L4K}TY8CI49G@^^g`36L rJy Xvҁ?roY(ͲZmH*6(՚Բd^/ƼNᛧ 21韥]XS{ +qGNzЧ^9@Q#tÃ`ɓrXtK ־NYq]p⦈1r{?MZ~3^uցSz;@w_cx0A|TWy+G̑@/]{H&Gz2DHBʃy|qgc@+Zp> }N ?\FH``b/X*9i +>5,1W9W'C.zh֢zRkQ=+tiMK`/ڰ ɎGג+:iw@[tc@4 MtʟmLzzпOCzTR{ڔ;XAucH"d~|vE͎rz-4WnrG$e +^N97q:h#Xn?8 z5r@-˜ KO[# eSW [h_a)E=8g,Xċl %Gzw fSgCGS~5c^nۗ!'9`ThKU#F^0XH=4Q& $8Q?ڃVC29>nڇMP,Lk9*>2F+F̪Rh3\9mhٟ#:gdbM戲} $v;Vhy).l4`-W]i GT㴩FqD}D1udA-">;5?O[<36<Α0n?ᨁKcZ6C{R&|xNZMW8S7сw +?W=2QϢ4umv.gKU1"oL8:i X"pKwymO7s^fzrQZMX\' 1 z*;@_M&xL'}= Jgtf&<>óE}}w|0j<)&W&?f/[zWz4W$(ھ:rr4XsmShKh:Jiw6!Uw99]Ђ!|Ujp I̭n(YtCi*PxnHAY"CaBg9!% +hRLH^Gp&R :8 j+,܇#3G(ѯ3HN&Vt٫o.O~1/ر>ȺҴOZGnup%hnV܁H+gBy(^ iP9{H(c,"hqnmvE/,n?=7|6h?@S뼡y:Z\_xƴ=ݷ*D6hr3YhFP)weL_U-b_$!E%n&VBbavc7*Cy~ kmhaRu0h 0(-!uăC}bgrfз sTe&7,%FV"/bc8MsyRBg傯[ !ȢNyQ$&=v.f{@AzmE> 34e*h !Շ$;_oO mNݵuU^!6}aQxG eo LPi +oRڲ< ᳀ħ:^[v􉱗֤-3;x`C۪|I +zy]됈ޟed$Y,9W,V鼚ݯ?8W\mXf?%ۻ\+vV]շǟsmϲ̸mtñq4Bl%ħÃwy;3hZ2>ډSFу჌Ǵ*̏bnMyD,Nu2M?0 :__]@ 5o es|TwF뽊<Im#ӶÉ<"!'AцIDs$݈MNJU+}bp~8&m J)_,@J30m0?ErULpWtt +Ts.yEc 5AVp<:bC"{C-:Bttx7Qlwe',mfcpYN@#Cj[Ύ3ɢ$‘qPzV8~@) juA;ˢ0g/,ݿߎ;~^;8 @7X%klQSA"_QHv8@=\L"ˎaYg mL3sA% FJ΂ E4o4is/]nphG-\5!/ OK2Y(" KB:Z58[?_槩hwж39~,?ʽ Khh*rΈ@o}{5fD>NrW0G{i/ěiug:Dq/~"gHtl4D ;#M*9˯ X_bQo;N).T2YC6]v:~F:7JPڷe>h19*#y2!9Ǎ4KgQi@pf^jKwS{Ȅ)UU%rYB=OΤ|Mkh֖}?f l~SK7ř%4YJ`jKTBLa 3 |1t!14ٻ|,oɮ9i(!U15O̦.2\a1wÃK:zBItV3yL=m^Ji{k.v OɳN8WEGz茭8sjNo-B+UWFiGV@"۳.H]VS4?ƭ@dIIGdߚ%(y(D ^¸ɆHuV|  qH` 0/txυ-rv1"n5/:Y8^E<3Zv]Tnރ~`G ŏhobSex8%hlː D]y'|%?v; ֺO U{P"vn7RtȣLФ.)Kzvh-v.9ڪc!˃[y( )J1ޓG{xl-4Y;:dшc!&^OOn +hya^8" gq9 +s?ݳ,G>]ocû!dЛyàc,7ql6u8i4 +LYo{5t@9 CuW8e0ZhxSrHuoI>r.Ag:\j-jqn0@[ Yd@s';Ar(q5Jy/$ 1,n>W ϲ_.Yϵԫk{?y|eU7sbN=eL%3(A?aHX6&h X?cyɼMkwlgR@&jlj8AuĤ[/ :BφR +Ucۋ¿U(qet^q渳k2aV-]:z/쿿q%UFt%]IcO!jXA;qǵ6ˎv̐pܰ$4a['hE"\r4b6Zۑ6 Tt+8C+x[p>[;I̾p|kh!]bwҤÅ##TQrh 8W[ 0> {#" aNȸ@ cE" W>Xr ѮuNDo%(N{?Qc@6GЊY^AQgQ? :ngI9M@ۇE.ϸ::I\Wv"j#^pk˳~=C_jr5, яDK \9O¡k`%X{CS5 `SF|^ +Gthv&GSǪ@hշ#϶7hY{ ^+<ה3PB E,5 TeC7Z}8nJs:{ԇtPr,_b\OUڃ[u0kȔx8!Z;oا(!dr kvzKe-)uE]mRt(+!lW@KFS?~"ZrᰡAgcʝO3LU$d?ύz`.z#[RfĤ"d1N\R+Mk\[?7lz] 큲tVxR@LlS?o-@c%]cpT#sza?%q$rTo\#16]% +utM 7v9/w-1yRHs?Iߧg" D~wHmzd^՞U<`$v5Q5k-&4KΣ6רU.Ko 65R*slkW[Qz9uk-U..kViz<lx߱4xd@ؔVqUpl3uJ /A9W3 0rDv5\m R_m"D:6:-w%tHG<7ЀmNcJ/ + @3"}"h'Ӊ:(oPcäR;3I~ +[CA,&UM#" G4!b"yL7IizYUjW tE7ϲbg Dl1ğe|ϕы.v_ Nѣ2*ʘe᜗'[>vF" A}M{F3JS#? +bA7ZQ!lY k÷hŀ2ݥWP 0_QAi+$e E2).ƍo9{CuA"]):`-]arb"-ųj8>^)w4 +*Qg|Ik nCnL(&30-DUF06}fvµƚ~&ِpr5\{U(ڙJqH.ӡ᪃Fh%(]qI=M < +4_bd~v&C%t.J3 @oZpx]h-8*hSS@/m{o_Qph/4*L )2ik["bEAk#=FWA4?t~ +f+OՋ-27J;Sܹ*{YRPPkCvq=Wap5M.ArFGa>|c^t{}6utx`9z:T(٫{g2kxק[<5 Upѽ* __se@7K4Z&Ց4a#lx[hL&;u65%1MŽ:|"N]gćXzDAeдRF ]h=ϐР+%t7Wߌ^gU~w[_xkΑk86R>!γ('`g7h_ltV p;<nh@ag&nQT>H(ͩpts#OO6W'C +}9ukUY;ma{XS\NyYyLȟfjsK,+ ()׹USAKyo8& hcuuET?NwnrFm"<zy|v 2y0. < YvX'FZd +u6ɷ 18 l>=6cH(T,Xn?'ݻurepyCDEhJ[tQJyQ'FGY4U6@:w^zPWPړHiƷoo?d$++?dqdGv+*oL'O0CE}IPC ' {&@H4Ȳ% >i x{,18:| `cCM;,Gު+i()NqpD,oƥ4;iJeCQDmZ9'G~QBg 5gkpk7/;Af _aloo|EHӕJǕMkO؆U|&v77)q(W @A<*4fхtq݊y=,VxUAg[%S2g&ΎG"4(/>3g[QUz갇m峴2£KShkӪx׭.lBNhH8=3 |4sNasqC6ȔK@da*KiAQpcv;oƵ4ŶG;lܘАbh5qm| mgKyO큝!5^?}h`{62/W;ٯ,`F>.#;BP 4~ RE HqA}͌=[zyGvTϷU2>0j'}^ i @T*Вa4|jOD;E} +P<}/=Vt0AlM{Os{=3ff ʂ`DY538Grh3C:sYp+Fg~isǧZkۺ2-Gv/MU)7B/.}Z2a@z m_o/ }*˳/}t@|(n +@oj8:\]TT)s.X:z.ag|ΝÎC_@Q3lAWzmGRG (ؠ-'( 6K'$y\\$ 1̈Wkxtkt@]Y8XMiZZ?I+(t~YRAlPz5#L9ar]zmK>m?#D P,v&_8=eU  fk\4ÿ6M }F>~\F5( g +2qZa-I]׶8žE *X,v@ XAg ɦDK"I#N+b:eQ HNahu;?'?}euڗTxZf„Zיּ g6KzA;D| gaʢ6"VS}]g^Q+L)_.t(3z esmиAsac?59N aY} ]pЦ[yCzi8@VNgd&а1kgm׸:o^=l&PGFHtH^@{Ui:<&bor~ءxK179W9e~Jtt}E>~6BVFB;L4t%&X>CSc%O7G/[ۮ Gm $t0./c* +hq{]uG \'5hJǪ Tp* #Tu^UY6 ,\@ko]A(I2 x$ZK,(gO@ /qheDPX쀬sH.rBǘ&KȽ`oz4C˱I}?:3 +fml8NI %)Q'aefV}N>k*bpOCwf-3CK[AA쮙z? O#&opʠNsξ'98;I!4B;f眭t싼$wkK3*tc= =4b%υY폛:K(~M1@|mlЦB~`f% @Y&;ho=JG틑`!ga`hZ>on#~ab./ +m51~kpϥt,c."Cye3_(\ ^h@hGź+4Xuq4n! =3$7eCia<ʇKg?5:g[/*J/9< 4m fS1\UgAbeG^S/o<`a; i?g ~p\Wģcfx?OG'ˏ5͹5ⳔKR1j/ÛN>iaCQE7d;Yp 1CFotMdwGϒ^Rㆽ6'EOkdea_ۻDŁ bg-S!8r`i11b,;XEf?qhw@D~#MЦ256dL +TIۯ m^5W +;46\2ֽdb?B탠q.d8.uM:c2p8 xqe^Nۄfp`y:lKT'Ų\."ADnCT8;$)F\M~Xt\y6ir U8֨@ߞd KTqg7TNؠhe& d (V_!o%OX*pbj&XURX1X`|b:>@w1fo-Axs~o!AJ@Z~W[zyOlaPW@t7Gnz>jY-nƹnAӂcynH7D_ E)mߔape y#oEzHa}<.詐 bk0.m ]:oo͠o>Qd$HL<6dgt a b .qك H{3_t[wFaCte6-JZ,N@M!k-- q̴͠tx{yr~S]4L9jx:p/0#UL%wy1شзU4VWDC/Y:w +š +'a$w>e\-{Lsux]3n?5:ee}_'tUqsO{`5`.]MQ%ڎ5melb +eB6g9ԧ YDUݚܧc9J+P0E|_RP XjlAU٥{TW Wض' @f.9u:Ax= +wn+Mh؆414vp\h \@_oOc=%NdTvkm]?{b,T_BfFyxЃL\0.Q=mB+RndhmSoڐ&zkϖ;EZjy_@3f b؜hl7T9exxe +g?M4Tɓ6|ag>ܠɱ.ӝjgA&~z^Qh} Rd?#@;՘{Ѳ׎$}.8^>|]JmjKn4I/݉" ߛUfwɴ2 IP9io+SYņBˢl'W] &>AJҞM:=avg  VuF`|ߤ]xt?{,vк tNHRTZx&8K ko+7PH[m[/EzdS*xxIadta4Nk3{39"1{aMnjg +4&*'x8r8v͌F{*&ZE|/˃_}6 Vh&HezB#VWq +/5D 劸9@1m[$['6|:9ӠS +s8_E{Hh WmYƓ(>Osٱ/7/1F*xXw Ԇ)RP<;xbK-;~v#t䣚63]g<n4qHgMt[2 g9\"ו*ABշ43@f횒Fh]emm4hKX&,cjiJZsA1O)희GW[v uqٗuY/lX6) 4Ɨuк>qY4z h=j&shPqH9xݻ.ɕIͨI>?6-MN蛷l`M@ ċw>sC|iE*uK%  e'yK@˼L z:&N9hPoWGeA9KE|gOЩ0)Y೯92\Cֵ8tpK`(_B &nȑ`":eD_K|@cj w?n{&d0Dt>c,ruMT(2že ֮ UPO4X{N` +H+\O5}nohV1|pHuB읒wAbX6~6 (4QsuLEm*M4>>tжm>SO=Ys\8XݲS +LevvS3}uऋ +qtаQ\hN~h|?A(|;ͣ7ܜm*#X5cGbmw]U 4[3C@K q(&'΍Y^u*AIDy 1nO ?=S׶G)<: W-W3j j Au=]^yW}Đc(M.gD|l6aJ3ٟ 57{2iʊ}͹"ֹ8@lВZcCu.ˤ7;1q[Ok1$;/_|2ػKUAdJz [Rup,;@伿Yʗtɣ3E2456Ȣ>9iwBpcR n+Yx{[DG^ n|a*R(^fY]|{ú@]mFd=dm*wZz{|so +Uޤ8Xxd6`n!ѧɀΆ+v>q#g:MOђ@Ǿ3~(kXMx:4 tM"{?64[D_$9i_u_B;r8oQjϰC:.bR;ifyy^^PX<0䷢ɅME+AClxNAl u G.Ŭrn5W[4 βh#{R ry6qFyh4 !'_;ٳmkF#W7+e YJenIB.tNzOv)a}i^u-Ƴh4ߺ{hObU2) RcX&d}l+ UuhaQFkж(w]?|73 /4HEGN^#|i9D$8#Y:,xs!f+x1;Y TA2: t Mjm\v ( +R$18"K,x+mZjHES9/O?dsthG jf1#y^MQW\Jo4ƛt߷~4wX!h"_|ZJ}BHĤ)1thW!5P- r]uP=n*~s" Z^EU +_gq˟{]CrZ0/Pf,7u6oy5J +-ZӴ!|SkTZH#W8"Վ_wn"D%_/H;nbiwF1+89 nQ_'ԁ'=IK%:Seož +Ζ1.p @=zs=i L7u69{ H-lG{9:DkI(gԩ3J}/9tA*BK_eu2ݶoL^<\aZznrhlBF1pl TAMRv ړA{h849 u~YaS eTD͚e,9\gЎ\oƃOex/S6qnspp q[%-g5dH87%o3O4bg1[Vk.Ir{Oc8M& +4s +H UC;4lL; Zdi:hI1tD #R)bglJ]֡mǪ%h9\n;'ͦZѻw9 +=B=;:¼lE Aɦ~_~;:WY9>ǵt(:ͩG1Vd(Ǜ_;h{죏򓋂Y^9t6c;Oş˚c"DwcGV+hq:#:hܛY +hݔr,ኼ՘YzKlq}RǎwFWR@(P2-A /SJa\{LQqR{C;ѝ2}:Ȑ% + g%gev"L#f΋׳O<ڬO*c9ߜh?űޛmcfɞܨ*N]-F{holws; 4LB9zQt1/w,psGaS!!w:HWtf/SZQ=T^(ܼOaEt5 OX3/Y%`z0ƿ׫~!A +@Kh؉7'e SD7A/G&ٜB;2rczzN`LEwϭO_ߗ ^^fg} pA:*WǜevG/LD*gQ`qIwf+nex 7?;Xp#%C̀,㭮D7`[UcD:қoT nC6k÷D2:QDmɎ־V`܀ڭn&vot )W'rɮ|e9~vˈżg1\։ 4}?M6y.0Rp ѩ/z#-Y7vCׁ,9AFhr&5ND Y1XL) *Ԫ`v (w,)k0*Rڍ<[6*-^ff[ߞFmO^j]YnߟUwjlc*(sرgnިU'FpT?4ag;gC.!&4ڮ1T_t嵑#$QGD54z&@zL8 Whm_(InoMȹntAFƜP 0G-A<;u5\R?Sт +v쑷mޅX - y#sP-8pCxn@;nSsuA0LYc.&>07 *Q/1g `=?yKTA.>um7''/ Kz$y ;_=}tT7`牂X8}aw/mTe,7SKu76@DƠ95Ofd,\--sa[\8U7r9>Zr)ŌvC5ٖru?{[m׆oG6{KEUZhud_\6nύ[طNx7e +r}?I8lY yg!E]${?/3K($O&Jg)Nס{N_f|tMzx/5]ELERzbaBA2̑k'H앁tž#GIShh9cM!6hTiǑqk8EЇhLPqOWMB;r$aCr!Ӡ T׳FpRc}D+įb賣Ibvu"${>) +W%bƶ[W՞TO=YlMp?)7h=Pچ6s MUhf$z&h\w^ƻB`0[3ppZn* WPQu1 O %lmʥm[ZRБQ4X`-x +[!*n!&O$ٙkDdfm݅nRjlA "PP@ +x"N#B}nsPO\92 %2#2"|3{Lmqs7jlw s[T2ۛҍ8 ќ.7xT hMuK@w7U=`@@{ +#gfjE<ӜP,KsZ9waw2(9C٭LU xfvpR}coޞ?k(\&KGi,WFM/:]VOU=;Ew朣˯OA}oIgh+ N׸Ͷ>幱(3̪bHebRNz?ټ-|^bp9 #Cw%^ԯM&i0ZPmFGrg,*Yr?&e/dGSWSdF4Ffn/Ow+O +hH!vCm~a60]/&_(''LGaKw:=Ihmo3y횁%#`u[[{@>Ow&έ݇'4R=B9Ogɻۻ>V8^xoxJi=Lձ7 ę`Π;)mhEzD #>[+#i؍ tjٱ9p}u_+pϼ7زeWhܠ΅Aݼ5э T7d6 GjwD{''3e gZcV|4C|;dPΏ7咣[u+qM +D_,|ΐ{_~RI`8J)1P uͬ3fIu#ga7跰 RkUJ-5 @ v8oM"w)8u:sr<[+-'f9,N=d]=M-Ѐ74{kXhv䰌;@k a~qfw.z2vyMԥAK^N-w}Ҝe#%`4NfKxN(YmgkXem\4~S!3sl0o6pNQp1.yjWͦ޷{H>&v7흫fMKNaNji~8m}#7r"@it'Y`l{:≿QSIp :R! 32}qz5h= ClcgZTj&e)DO=7r~@l<3nfcn&a~W>g'W[?^[N)Pj"r( Yew`(޻#ITDV@/^1L!jOVl`.WAm &,ҾB'GLa-32<;uap MicM"چ,q5Sc;ccUyQ2$ϣyڈErd0{CJ+HLowT~EP vvዜcuO;y&5vaU"g -4JbFck^nA: O/ DwV,$::E>+jq6.Kߟ>gʎ4f?[50ˆ[.?"֧4=[Em$4_PQ&Μ_h,Q܄=0*SK*)\4*6g/NL?kdKl1:U^5axG~ 9O$50QP m, !_:krQWU~1Y +hKԎ; (wkem :-r?YhXi7>  0 =gRtѼծu[Wr6B(rlX_hb V5r@@o.tg.Yfx@isF +X]flݜ˓E7qG\v`+!yY=i-T77u7?NƠt`F75I?tE \l+b'}Wp24 +g6nYPO'=>Sq98Mݯv> /gG_nXęرbP@lfM-ByYrgQKce!:n@3bf-y4ꁻzUj"QJgrXr@r}O8}N_M8iK]c[}O3ʐ80A/x6y}-ܶܒGBdlN <*,FR"f%ŷK\\u*yʨ_㷘;a`e̯2P@rY2qJGV@'YuOP8o?A +i|02XLC=zse٧sߴa&Z 6=q';"|l"s^ǥf -//|$R}xwKM^U3V]y +sL$f 8m7 s.>n&u̱}9,R/z猍 ~LvR>{@%A)z»,dkJ`*&qoqm}t=q5jpz|PΡ1{i;k-Q}^0.͠9wW:ŃjgN|r&o,0ygoN[X,ޗma8܊xJ2Q<,/iwPgrREm.u$cpRXEM玆^gnρ{~oS $ o֟67ܭ"*ͺՠ<7Rs +A/Cfg鴿oIC*6;vߜ^.̆5yLVyiߡ- 0;(D\ {(gVf*H~eӉ@{ppxL7#uv`pʔ̬>C=@ΓrKPܐ^ER瑐6(0}d.Z|,Nqᤘ±R&OSU\䉿 ^eAHy cTJh[k ZilV;B#'å}vJoF*㶤^h$6zFnɹB9Xf g rqwHOIrd[|(\ML$~T`ӤѠLZB\#tT( 3tc7gO)Hwehvȭt+0{q}NR"2CGn&~]8n3er.#s牤H?h`"mVEaM=;4%dXoz)mКs߳S\3+Kp =᝔?cjֱA*yGӛprms+z aa'^a^n芓4l}vp8)Ceo͑) }fv9;(3s7qs7=yKLNHZhf1`AgvjuM[ ) UOoME-߷e.\Vˍ ͽ"# tmD_׍u$Μu_F+Lr+?(A9y|ZpdМ7ڗ +\~<kːIQ=78pefJ;_.odt+TM> "{؜ml%8x@V<&D/]|$p2 +%TSZžq<IUSC'ilkV\y!h}32ӷZzkQ翳 |n̿1ۿ5=Q&nL>GUh4<8yN=@fKl&yѰMq$BbM}{!I1FƊW.K<D2+(C~3x4{H`\iV{:6$.Rd.)_Fqfl赐Jǝoszj?:ӝr`Ž;Qj.1ĿF%3OӒ*m8l,Jg?ь>i劑Y1IFi%5_>2joK׽bp=ѕ`ʌOkiϥ^Ş 7^ޜ1V+*:@Er'Bɟ)xSDw̌R=?^\`^HS_ +rtDfU2gf !C"7CЕF}L-2, MxzD U5p@)p>9H }zMS=nXnADЪ'_\>S˱NQwSIWN '4%;3-j }*< +h$ kwo/Kmm*qVG9(:HSd̸߸{`ưϪęרIvxh7L!% (e8l&Co ݥ|97,!|vS))enj'fb8}]|}ǿsY0&1- a o>p =_qe@$zsX%B՘gCԠMᯍ}>ܐ< q^:2[a/e, -G9kϾWWJ~.fdAH]'H}],2oGkR" 5ɬm>;CfDZ>볠Gf(Nb #+\8zRe⇓Ǐ%o)f vHa7ҩSybD\Q?Og3@4hp}$_@6l'bZz5/xJ6Zr~⯓s0Y_yJC .*@{I'uzM6/8̑/'pHB$ĉCB?5GbI۸^<[m`$8rT OUy$c m|Gw^}<S[IW>QC=>nN=Lzmk~Ø_ UEleBڜI E&3@6B}KGp+0U Ef(&·zehX\'Xށ3Xy~py]Ko { i27Vd#54leliZz3zFT4zZwl-8Pb_]e9rSz5w3Bה&|uwc'I^ @-Rʯ; {ٹfY^7Q*IQ[ûz`NFȍioپt@Ú\SQ\+# QrWݫУBZ %tK :̇SCbP:ON9}LSK0AMH.Ob"vb@HR&-qU2 dIV﯇/1uns2nh<6@PG% 928d*@ iSlE:@33ߘLZr!.LWGt4n!A|+1 4&7N9)'4~ G32 1bazncA(պDUhUZuT[hɔ"r'ChlM1d,?O#30J]Zetg @K>C9`*,ttLgpgx)h%Rtuυyߒq^ Tf6b-aqD3fhVw:NŮz'CA'->%|r(^4EHg #M4Kc"7`&ܜ2\wF6Q .):XNƂnԶ>6Gx%7E |ޣ>*tI0B:'B?aM6]=LtNXn)̼JAץ7a18Q!)g2vxeZ{5y$n^:h 7lsap$7d*1e MHT*رIķFTnů<-\(?y}:ll| L z\="9eVcK$c+1e#0<,g޻dH 1nwiBFO}socyܼjWPX%ݱKC ڊ LP§-֗Sd)$w]v֧Me ^ 'U:ꇑ`m zLMňVӿwX<-iDvb-sjtPe;YJ4r8bs]x Ә뇓뽆d^Ė&쇞SH^JS*>%}.Fp9ikwc?XVaU"~E23**~UAf'.̞{Wb1tNШl 5[qv3XYI9 +7n:اY9FCâ5tf\R=0K;.,ׂYjBWtЪ'~ؼ3 gWMo&8bQS:ߺv&{6]jmϣz _;7N !S~Qa5-fC+م\j֚YD+G$:kVi[˘VX]S+-x +hԇZUn4k"yfLFGUt*w[ /g6*UBy{$#o}=p3X9/:V JBMOR~,waӀ{N.㳂L{6BmIGBkLšhne3Yg}A y0"]В% +dXqU[f)g`X?&)Fx.5H.D)y{o-pB?b4f< , K +z=T αg3QeRzDl4;X? mf@7FRXj1 ˇtI/sBSm*?y1puor"5qc#2lG7'{JuoɺLGM)34PHr֍~>Z47c_VV2x +]J$쌱.͚xd1M6ז)lלeMm氶Z]&8M +ᓸ2n@C9ebeMB-HAD#U{} +{Nɹ"ٶ[A^Gvy! Hg ,i4kl-V=`ndgJB+@or_0d;@'a@S`fG3TT0C<&Ig=?0h9+#.hl@C,"ԫ|z [p̷֔~$p薩⁍6}>soW6<=lfX?_D'nv[Tʒ8Z_H_tY^+QuÊ :|~^ZGyɿ7QQ8n҅c}wUPJ  ΩҐ_f%q9aS .c!,\4n]eq, U>c: +BA[dܛdjbFF)鷽}tه̖SgYҗԡ~?da2p+92<'RiTj1\ƚ< G;zI-:.Lsd  'ϞnFYxͭ?b-p //2vUb}FfJ-;cO.0{XrnhMB%6Le:7oΟ`m_xm5Y%up=Z X`N8"EsWn-n[ +V<˹,0&W.gV6_'vK QoO;^3ΒA0}1?*gT冩[*j ˥%ra@k<%{o,LX!nmMwH)rHRV4zr2zٲJzgn < bi,r]aB Hɋ::6Ǧ#186dbQ' dF M ʮ v~i|Q TcnjH]8!t +ʀv]aAliz|TWF +Nkl' cAvxNO4oWc53{6WݩC s+8yu| Fی~/5E0f*4[`[Cjtuv%;z*yZBcT& 5>N-*R,N +d5%QyhS + NPE+yk/uz; uзdΉX{\AQbd kO3Zj0&nHiy}@q~M +h Z_% j< g[-q[N̩v)ʝREqZhumXgkw^}^{h4(04tͶܮͻ$DL9n;.Q#$j\;l}XZ/SgEA&ۭݳsfBch]2SZf-)֏kxIЁϲp! O(` G;ţKö^<+#yl]ˣ..=47X(eht ^e&o_W(E;D$Vd@r7X3o|Y2t;4fc9L=㳙JgZL:pgEk!\>Nԑg`g376.6(Seg5y390[˜ȓW;op<prݒ6.I_ P+㐪A8 ݱ&&(SYr ЈKgK=-ܣ09۝y*qgU2BX5 I};ܝ@ m6$5N߮19ICWha|oMVR2yW;ͨ Z_h9k}gr'pd􏯖p~)< vt뎁^DnXAM8qϣ R75=7}쳎i$p lJnTR* FOCr Ҩ71]613ed܏)uisƲg9Jݸsr@"hZ͟0[ΩNq>Jp/Y%#lI蔆ԪBKi}H3~2d]x޳$RWT?^RqPbW_or+[~aQpH%5Xr]ovOj'?'qg*y볽$m#w Х.-tزS4!3'Wi*ΕF曗݃E;CXJKjZ +Y?[f^r1r4^Ri8up:mD!D,5 $n4W ܤ F(!bF76(ekꌜr"_j/gdfv#0|H7Lي-nDV|#Puh hpzݵ]h:=oHj|B}~70lϢ,2F䢻B]d;npm}f/R#]Tgs }_ Ur/RN+Jz& +b.϶^n!LgIhMS;Gz92 nynbuP3ϼAX z"'q+%Ĕ S[?0w+s*y`>EpQm|sC_e6Bh\z>z<ân,'Z3+.tNFe"ԍ žt [䇍4ǘt16OChx 4D΢4vƷLʖM0T6yE7 +}fW۞zJF[g)iOHȷ,%Sjޏmt%qCav}osˆ)r*Ў?j-&m4ўJmmˉ2-5.ƑC-CR'tȟu̞8'/~86vTGC0qiHbNar&\Mz eAk5i jk#Yhŏg f ܌HU4W'I2Wy?P_سdNٚYG,nRa:[ĹuPmtxBPqb3&tr^Ϝ0dWR_E;G[^[ӹR%CG3y w1igPZ 9#ÎM'IpM(P1[[Up ,ۼrOg@r~0qKIN St-PI:?I̴ Ά,|f-2;?8UgAL8S٫JIե":70,ZThX3]2Ju %w2O 1yB!iH_ӵfbSnM(M9zJP͓ҵQ:gxTh kzա21)?ImJX*5L2 ;b}#.ganDD:7г"F[wFWuf+O?.< F\et:ċ~yosTFC)saݚ[?;ؾ.Y׻To=z)ΰFbi{dt`'˦CoJg{Ǒ1eCZ}/7RC9ܩJLUzcRGyO4} 9 H`QRyn|c + QQ U ++*+>8$3`7OIX +!A C +`T1M-ѫI:gYvF8NwFk^ &sM0 wgEflf#Ë늓@Oc(̝ԏ[?8" |rAL?3CF7$|e +bAfq7}G]z}ք~IgjyST $\ @#G$f~qIaa1wh]~&W9,J,mJ@b9v әWΤi.v. A|w h="[ξ. +,#c&UMv'Ҽd8CTmw"͛ wv'I9b М0L9ύ^Y;s)1goDgD0"=y, <:V9oع,`Ь.?6̆Z9Q!&eE 0$mPF$+6t_d̒ý4g=ws,@7J/ <`X*\gA =&^ƶֵGrwx_Rm[/2aJ7ZTjf׷nTu(0eu,n՘AwoWu{?=/~ؼ뢠FЬQkY?;!q2S9$D3E3|D1w)NJCiV~[_4$vJ#ɔܻm߹M5[AkKfxmY<[z7&YU]LZC`}˙2}Q4ͬ,EE^@[<]6{hтgP +@ϽQ+ܯT@C)=RÝҟ_nY ffa}1icüR:'YnhSF@'A'&#?'K=̍DBfqKggB_+{!dCO_yj1D.Tr7jDk)4YUY 1qnyRj-6_&s6(p'U~+R"sAܩ`dz+ ])_a2a/ݳytS'nNZn8RX- +bp7 +:Ű9t[^G!3֦ri_, zZc#'8%eF і?,M4љ3N>al3FC +e>GA'G[+(ЪSMtcD  .j66O4Յ󺚰ѨIZr}t[}-!^ *5Oa̬ús)9odE5OuB"z.q1Y@e-y3ޕ@ih3%E@K'ㆋ2㲤\ga5&uUräA}2b.QU $xP +[ܯ۹~7)E+&,vk,+NmhOG@>웉D41Dh-ãnn6^ sס~ij#|,4g|O14$vnlM?2*bkZI.gYn@GT4[Ӭ 4tVr6#tn<m˴RNU.oq-mlnŸЧ> 4^Xp<2ڲ&HO+p5@ɛh.Λޝj' WMȲtE|A7a[Ьt%UYKᖼ[1%ع:1'έ -uv2Fkl#Grc3eQaVsKi;fr1!:! hŽёu5Y%2a{J۔>l/cD%1i- +so쓝G2uc x[/EG߉њy`ä^'S]@7 +M?3#o~*fs>LCFgVk:+A6zӐoꭿ139OG億\lYN^P6cbw؟o` fޙ;ef=LC|y؈8DyVLPΗcAFgL1퉸32:#2w۳ɵKeO pITCPjܶtm`=Ĵx ޜn{a{[-|Tf9_@CGMnns=7;^^GwB_@[y,1JUG1qMֳ#&PQh'ݟUom2 +z/82WO5uW[cw|ڽV[JfBMclcHjIw GwYN2?+tWvWPu3vՁe?v7 п'gOw0оGm ,P.:^\ZmTF7Bw|| @3hfohI0_sf WF7oUʝ2E{tk5ס12i^a *ӬP*;XsL^9 -A4ѺvHp9"}!;o@GV5V~gkT_UіZ)fBjzf^oyhfqOe{X=nݟUVa~y(+7O4;SbLTzG?}/`6tNlWClX. 4ϼrkpWLEz}s˲ )5*5ǩc,?궬yxpg Z VZ/?}滺ȂĶCNAq4 ׹u—d2Fc9' };~stxHy@Hy@fB{Ħ!|ii=\7.3f#a>w\8^ųu 9^h̬\5A/,,2BӕI;&;'eN.`e\9 3h8Tw7Bxv´1{sZmoķ:.5L)@|HSI¸Jgi +m +FHe΂h)Z\8tLRWO/tHfE#6-!y@m +:Yu?#A;M:űJc6܎"8ʴ"W%wKڜr +n߹6=p%']= ˎBVŻx3D6 Υtjtyс_?>gДH0 +mꋬ0;FaLTiPf^<`@|6hz%W @˚qW~b? Vl7zT郴VoƁ}CtDydj jv1-g/ 8bJ3kd7C?A @rSA~UNt^-M1Ur`Nu?]};SY9OJJf)24 atFfO)P7G,RW9eqzVU ӽ?1C/:LW\G[Z3=٘|4ourب{m8Emɫhn&[@C #7ه;P*\.A9r''Q@mbiph7CpόWm';‹ OJ3>RK躉h}$By"Y->eU<T L?]_ap^baH3d@ֵ9b * ޽ZԣǾ/yN!lo?r +Ӏ\88j3ge4mKv8Dc 82J ixʬ2_TG3=(АlG7UB/zxwt+c}Vrʊlz7ʀYcl#Fh\q-{]e!g8{O@S> !tͮ +zEBch*H} +Z(CAWRFuh>grsYL(@N,9Yu8'1}{P{'?ZƙpB +&m!EAs+r'|=ɔQOUYJwi m{yX/+hV`鱿f zZnO91:狹.KboH툎>8rTyUm2n&Ge]][}3r@>1 b3-[&ebz<-ٕn0U-*gЍw@@kC{L9*=EsCKp P~e jhʧL85+_*aӁ'=>3\4_ _}o1T̼Y5<{^f9>&`h m}kWM6z6E7=b?eGlS%Zř7bVE]S !𙽡Uo-YZeCZ~@GhWʥDO*'Mq鳳^y|njBz 78NEvC=h :T'%5.S +f14om~\죾lX4xhd6k~Bχ= =Je?9E(H>ڎ9z_~ жukxoɍ V&oj]z@7Z[-`bc7`vdVX5Wv#?v}_@5m N?,ѫ&m$_eJrՃ4FT'Ƅ$빵so>a&'o5#*:"IArt5ܹH(6)94U/-Z잇~G3XUD-3U{nMk)N벀S4P'MX8CmhEOwY)7@GH?5gy%2;5ϝF 4 [鄺M?߀U:E4& 貗McAwǦNTPtI),8jC%QC&'>nZsgs3g " fFڌ9z蝫YgK5i,*XҤqfJrדּ&߹H5OqW[dR=:ԁ\tЋ<$yr 4wz=A< I'ף) hꫣ>k~GI-&ӌLp6Bǧ𷅑VPৱWlk`U#,ӗW@녛̳Ƽw<} IIGk7}609F޺0|uʜYjZ~tYn>yNU0]ۍl|k%W,F!niP2a $,&Տ9j/ +g)y9 #-\3!{?}v;_K'gj[e]sNuImbg]48 _ 2Μ{\ufgy'S̚~rЏth\dܹQi%b@-xŅ|]5߄ p @ϧк#4T?is뜇.}_XqhT-ɕ^u>Kp,SD4 1wCyN]DhVbЁG*rN쓭<8sɔ_te)v(a|`?>X?M.[:k"5*=NKlҡs>*Fiu`ãF]ҝ< ZwͧU*4ynK*hԓ!$B˗c5LJ}@JMu|iApܺ;6WL(Z*QS|$GE#7uI@miRHQ_G碳\Ѕ z?_+ y$Ey_r*Š搉nw$R䄍C2i3X1#_:&ѼDp(4DdERdͮ3oRF^4oY^fθ,__.Y|ŎРa%a u",2~vZq3Vo-=rh:xHPe.vUϿz{r ~ؼRI>44gGz߯M@H @:AY]n6߼W1 \mG:nrztҘ/~K >B5MF޵.?Dlb'>)9@׹K˦V⛳'S!1o 礒K0>uU9aF ghPF=t!b>#]^$p~&=@34$''1 *ъfoWYy034*] D4K49u0a1Z1Mt&j7ǖ@XoЙ"=@['Vti"'YP`;tyy屜HaWzEuYX5%m0Q$mgôZʊ}tvc'y-g>J_~kl)ԕuD(w- +s` @ +hi^7$j Z᫸lxϢh6ЌaS`'w~lvGEBJQP,D殴-R^cM}uii2z.$laH$?'*FLWk&Qz4Œ,f,`<)y=}"|FO{ L>nn&ÝƳr`XhS8$l>s'L72Lg/4kyЖwJr _x|b|u'h<)`7ɠsoOt!@3?0.(ml8}  +h&hq,˙?FBXhJh.xZ<4nYu7M~ktUaA8M:mo?m ͐"{hb y"sCȁt>%Exy^45&i W/+BA@GRh toٳQFu<2N=v[p@ě;LnRzT*ʑ0ar>CNThz65[ޜez9 +Ui!]=!l'EuhGflunQy̥cKt.!eh dU >@ƣ|_]uԙ]p.L_;MЮou\6g~[th1Jah`!s%gh @vI@wr;c?2|#du]{d5?ګx=7y[ϩVA*^S7Ξ{~dݔڎ%Sw; H`Q2oh.-Z\Eg}@@W^_zk| bhP;)몵Kc$m:y7 *ӋtBRB{ M4@Y,Mu|k~Y<)A3W[M%L[Vę[+:zt4& ύ^7{SU|~Zz#Po9ߨ_cpc/٣ +6+1efv5hWch,_%WäNJ ;uۙq0m8Kzl><WϜX? +_guu-3B/Yh2,s^חl;sP*HZ̯`FG]|D MԷ:=}^a|JO"8/F Hm ӜBa]Ea~ UT63өzor)/ф a^ NQLӡ*^F6ƨ(lCOqL/pMtB@om怤[,h+N糗BVV2?0G0yg)pV6cd@ch^^fEW֕Ae}w 5VZ?;nŇѯ5wl +3Foss%U 1IF^Źq(:r(*WcwՂwFwO#go](/vWyEsHx&}!\g]Ӹ{A)F!:/vU at`wTZ$TU=$(9э*c/ q;lX)>dnpx}[mp`?B^<;;w-` 17jw>ĩgNl-,B:rЁc#W u R Ѝr}?GMTט!u. ^@ٱşz}uLr!ۛݐs'n3%l0/#!3;r0vzx4e:}8|:t}L!Ĺ`Nh!Du1h~vP&: b̃sl!ChI%f]w,d>K(&2aL?zۿΞwXMnʡWm}\:.`ԙ/݇+y:zu%nhi%f9$Fۈb wM2YV`昩5?sԣ܈Σ-$ab闸v;k|l7Dfs]ok^7{nЧtqL=[edֆ!$Zr@6)7h#@gNߧe4 luzW(k/ ; o~B=@*$VV%AHY9e2wifJh"|ޚ1df*9kx5q678P=~Q0Sk$Ν?__o-8zWUISNIތ:cnjCK f{G!/9b,<FYO/(%Q$a|~KcEFIFzܰt;!NRh:-q1(^ϧq:@ʺWCodJFH;wl1#QN3Ye\gO1uP;D&1:μG-)֘Wq LQ +TY~nnj~ xtP[Z*7‚\ndPY> $es_~+/-te23cKePyl M7n]:UɃBu[eJXul, n`>6/N?1 gto|LD͜HD}#^ir153u^%3}IQN 3dei  2RFxR[> `\82$7Z7Ym?h$ Rq 7OTy,!&fL/GV0nD[Iy|&Argk1v(0ƮqCO2:4B]( +!5O)մhq>{']^RmLUf, \L;#JVLfsi"qXZB], gcr9:tǺhPzʋ)q6E +x.CMUY\E&.bAb-t(ͽD}ϙAzCZВJ7!OWڏ l] Dl[-|[Ipi8ue1jŒA ?ϝs7;: `iu ǸyG9F1zI{PныL3:#r@esgtݥ7hݺ<7dE Zѽ:w=xCb͝9Ckxn9q2 ^g +dr3RŠ YQ+kyR$rv$6[u.cuHEncaI>?ݼ&Mb+ƓF&"*BYuPUOdFuw%I7]k }19YƧu6V5F'_#zx/Ut6dȍ,z;*[ _7V.j+LzE=)&5nPU[G2v kq`80@s*E|h~ʾ/>?%}7R\f΂&.34KNb T@,y yJa||F^Pkќ~x5>mO>;VF0 &e0o֊C"*`V6r@b9l@(-#K0A-#GH@;-y2%y:mL0O 7 4 ͞ܢ^QJQ)9?lTdbnɮ]Ù#nZl5"%*l2H`B" +G@@H%v0/K`DHɃ`@O!vJ@e#Ilpop^gծԙ{9թSv޿_u](tAQsRtx4fIg'ݨ^u>R_l^&Ttf)0W@1\Z_9]pDbFH֟77l|barq*`Foh8hY-h 9qVհ[hiӡ,VV-2ݼN'5sj-?Sϱ9/,8Bdk+>xN!Z<< ^I@tDĿ<*JdVDjD'{_~~jS_j!jk+gr873ʖWHa~F"L`hw))+hl+}@#Y }DfԚ<QI1lПN&C9 X Tf8P!Zs2:fmW.W;=(=|ٷ>VIUH>%ϻbq0ntX*XX6γQDJC>/zHeq dT9:"5hL`0bYh#wf0w+QΌ3k04hd~ D$0>=xR7dF:R)I|_@"_e}_i60y(G64t׳SW4Ny7Ո@o=g&XŅiv Ӏf;$QY^C1xSi|藺zss)Uld;i8u2 . +Fwt'w[6Bkxjotzi]5(‹L8-+N,!mcdiпT0D7fg?}k6LB>\qYဃy:& +%s@W$R"O_.DQ#H,Zdkh[*2-`m wM̲-tfn ^%0g'dgT~A aWa K.{kɃ оϼY@w|zE"o0֛gV<ol +W RiK +tKh;ul9%}z;cY,c~;޼]8VFv <|FlYe}s撶6+1}v vikϾX}xD7B9w4}w#en, 1_E|勛^1ey["JXjH3(jHO[ i.{g(zlK_<:M~֊i~"Fj'7e0+Q4nalį;8a6БuY ُrv\$㙭t~ Ak}C-^[D!8F+ 6_!?z*Hզw}>Km'I#`eg*f̍}ۺk&tzփF[+xםA|*uߋztQBCe>T͠q6C*١D=\^dsYg$хꟷBXv\5hڃ1U1y+6cmMmm= DWAr#Gj=>l,8h +¡]ӛ0|;ڦEy31v_6_WqW@9 ŇrS^I\4KDsXyFA[Xox:y/ +Ch&ν9P27Y,('P$FRo`폋A`Ce!qf8<~<߄,A{^[XTٕ@#AQ|Ҵhoճ`SGr{K;{HlXmHuoG9ةcHUVI8MwOh}jZ؏=mpZly*nP9R8x _=O<#GC0Ԧ.Wd_zmgX-zaӶRXAR&<\YgiRͧ +q6eD`$/HQ(@{J1+G:cJ:ge7p|v6PKoy1">͎&eZ[lCܶ ʇS%w#no7km3IGbF+z>[k9n#W#]-8'$.f}oĿ5^pRpBPCWWKc3a\tBk$>1Ywpy U0#@7u;rj`P]!zϖб*A_?>_,ӞTGGd)h ١aceW$~^(鶈t@p`D@oЪ8SWN𻶇*3 }l)0hקL%p|]|rӪߦ! (y D4<2Ί m i5=ᛞb3-9B"AgYiI8] oL<~v0a"ܗ6)yx4 g&TOF j1Y@;Rnjr9Oޠ~Lc:"/˭yק%Y~; ?:PUݯa{{[efs%a/{܁obJ|y`R'L22L5)%puj2)-7Hw@y*iKJesgvzn*^c]3Vodۓ`9sH^:a ~6f_)B\grn{ 544M #aטMu3[5A@c6Nq#n3jWk>˭AJ@uMwM*HYpBi|Mw+۝sUI%N@7D @;*i*K.i-U:7k6Ä@h8>}ÐgmΌtپJ. 箈*_aˉqӯEt_Km~oy4y5yU "Hb>AQי=a*%@< jibPF&d\ΏTmoy+';uE+u4$/YY)1QD[FA䢣Cdwp,ej{4 +/ u/]U^B8&O~ i3k@nP\&]e56Y4;[]L'6ps/}ŕ[>%gY25ڒ_16I'-E0Ybw4akuwЯ <nZk*1ۆ\$cYeV2qfmuY[G{Бr0u_M5W3ai^|*} chgeə>l(sF&g,Նb+y Fk7WZ7gĐ#0MsCӰ$OJgLb2BqᡗJؘ짶~q:iwioŵ":{)ݏO'^gو47Q]W4&'AXՇ^,ٷpj&η{M(j| @{xL#[Qv8usϓbpW-m%cear`08`xU(5#x6Pr2y24uGLRfYaRQ׷cS%j8 i-Z~ +<jCh@x3idee1/- ޫ Imh.nq.Erkt :G,Ǹ&5=wvv~Qezɹ,pо)hj45]dwzGSpy4m} fC/>>lPboF|흃Ykl oyhQ9ԄϊX)?´D3 K?,ի蕙Wl߄g4jb@{E<F:;yYGr;#$qVqep>5mZpDv5.޾ҠIMo<{7`ǀxKio j;=#'8EdYj2qƟdA)U{[Y!j}Uk)LW@Z~;wȆr=?P`ouz/4/ ;[hc &!nס΁\ASb~Qw;S0%>yDo|Xu9o*E^rKZyV4˙}2tz@丠p7=6ˁ`m@ y +h;W>LNm4ʓxty4j2g%%luZxK'bhe=vn4ŽEc(~D;C4U5烵Α$HQ2Ս`HA'3p +f_o!ZܮxmY޻?h"G4<ʙ|jyێ5׆k.X( lSIg;n:]*>*ps1J_\z8S-˖B7T~Ef:ƳMc.HT@-˱E2G7_'imSYm?Z-u^ݻ2g}1=NvD]Z)lO)Ioͳͱ1~zЦiAF5eGVy^e-}oZyDYMgν@{7`@CL"iㅦ {信٢>1٫j8Z!W3'|qI8dƍpyIfPX4S }z Thߨ{GPDA8XY` l4#`gI\ɧV'Eл/:qLos\ս t9{s3zO9`;>u3>{ Fܹ;,1-H.,^쯮:.dN@YvZ!?F,fZqnv68eV;3,[~ɑlڀyz^qI8g|eFoz?Z##ʎpWO0\Km64 8= n}ψ%U9dXnjUDhFH] +T@lXC-f [ g.5(c6>JL{>@쌛-&ۻU:LGp O PМ\^apD@?/,nSg[@s뎕!ce˳M[^(U1Z{fѴ3VPTʪzƾǻ>MK3nځbܞ g'tgeQG֏K \Lg!ezT;1{)ghcXIG ;j7_xސ`[\n ?);V.x'j~L7Vα6WuJD_ hvyvMEEmM`kl~۟{㝋5w*#?g^EZaйs"h},.˜,F7֛?CC\kl ud . +Z;dt6Z]chzAԭmA<_h#z->sC;&5|ԛ7)!sXyϖ#&[8r0@lxIb}QnaHwM*+iǦخ@CRl@$[^-htU7Ep7МHͩ >T(Xg^M$ >:Q8USF3[ݷOKk8U'1&\6"4es ;as4Veǩg +# dZVUMBsá{llG'J_>1o b +o@zT`'GҥQ/[ǧ^ʍAJrG򌿚/Z + v 񯞴Wa+ܢy8F޵t<*=`ʻ)l@q?Kk8k=4R + MT8gPVVOtk%;i3EjU&X}jS'QɇO܂x!zvCez4Et{ywqaSB~v@<2R? +h.R$ϓe{-N߯ܦPWiw<~TZ~ic/~8 Ǒ +t`73S$7euZ)ٽ1`pOގQ"hIi:X!6EzhIfU. #ohG .)*'QOۭE멐FPdL%64whVho{~o^ +hgiVܳ T:Gj ͔̾$ٵ;∠qp-T-HxN}~_klo}+~{mS:P_/B)etSg^,.]}BYy[;1F_v f;&vˇ[$KT gC4=ོߟwqd'Y(y4=SY};O"BNwP͵.YY#GJ{cnfuAAT{Ł&b@qRǁrA']T yr{Sfm)( gy4"'Okox㕦 f iNPl(L5E/ 2?vu:?Y.P-~a@ytc v꾩oZPdzf,c2-h |y:[n uI`6 Z2}~A{u~yJSY wOt+H]f/~.Ml@E>g5;E/Fm)1}ܬjd5fe-C$}~a%Y" 0&׍tt 䐠TL=OAمv(h1g#fK̽g6A=4vKF1puJOwMLuxe=L7",tޥ;nw֧קS#jEi.q  *|M֌tWY/p#h +tWa x#W2΋ k[}S)Vw2.!2.6Aдl8o$M"sbQN +(7&O> CdTIo  㨠 +}(5A1=8ps9bGDEnڰ:C展x^1'hf,iH?pn#,v:0t}iYV!oswȃ?^ okÐP{u{37Zoa14P@E~`{فsIU=뮢 C2 /袪t|.lё+ӿf`L qL@ V@c5ݣo2 W@m+hli{IP=%<H:oԗҞKšo(?OŚh +MعIwH~;>n/?Ӗn xpE|}'Qˣf +Z ]u?p˚|dss+uTfd%W{@;@)F oHoS(" _[ 4BΎc68}~J1h.@ߘh3 MA`ϱtUtLN>R,< ḥe]ԅ8Rx-kQKq8CWf0$23;$.`zZ;` ^ƈ)9"(:Mk ^Y 2{7 [2b Oqg