From 3b0f8f8d0376176f3f4aa56537d97ba84eefa647 Mon Sep 17 00:00:00 2001 From: Maple <132198239+rsecss@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:09:51 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat(max30102):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=BF=83=E7=8E=87=E8=A1=80=E6=B0=A7=E4=BC=A0=E6=84=9F=E5=99=A8?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .trellis/spec/backend/quality-guidelines.md | 6 + AGENTS.md | 43 + APP/bsp_system.h | 1 + APP/max30102.c | 454 ++ APP/max30102.h | 59 + APP/scheduler.c | 7 +- CLAUDE.md | 3 +- Core/Inc/i2c.h | 3 + Core/Src/i2c.c | 72 + Core/Src/main.c | 2 + MDK-ARM/helmet.uvoptx | 32 +- MDK-ARM/helmet.uvprojx | 10 + MDK-ARM/helmet/helmet.hex | 4357 +++++++++---------- README.md | 2 + helmet.ioc | 43 +- 15 files changed, 2733 insertions(+), 2361 deletions(-) create mode 100644 APP/max30102.c create mode 100644 APP/max30102.h diff --git a/.trellis/spec/backend/quality-guidelines.md b/.trellis/spec/backend/quality-guidelines.md index 482b109..81f5079 100644 --- a/.trellis/spec/backend/quality-guidelines.md +++ b/.trellis/spec/backend/quality-guidelines.md @@ -200,12 +200,18 @@ PR 作者与审阅者按以下清单逐项确认: - [ ] 初始化失败不阻塞主流程(可降级) - [ ] 未调用 `Error_Handler()` 于应用层 - [ ] 全局变量单一写者 +- [ ] 传感器解算失败时同步清零结果与 valid 标志 ### 日志与调试 - [ ] 高频任务(≤10ms)中无 `printf`(或已加级别控制) - [ ] 无遗留的调试 `printf("test...")` - [ ] 日志无敏感信息(凭据、精确坐标等) +### 传感器算法 +- [ ] 生理算法区分 raw DC、去均值 AC、插值 baseline,禁止用 AC 峰替代 DC 项 +- [ ] 峰/谷索引必须做边界检查,去重逻辑不得丢弃窗口起始处的合法峰 +- [ ] HR/SpO2 有效范围、采样率和峰间距常量必须一致 + ### 提交与文档 - [ ] 提交消息遵循 Conventional Commits 中文格式 - [ ] `README.md` 在外设/模块变动时同步更新 diff --git a/AGENTS.md b/AGENTS.md index 3f95406..696f9b6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,3 +20,46 @@ If you're using Codex, project-scoped helpers may also live in: Keep this managed block so 'trellis update' can refresh the instructions. + +# Project Notes + +## Project + +SmartHelm is STM32F103C8T6 embedded firmware for a smart helmet. It uses STM32CubeMX, STM32 HAL, Keil MDK-ARM V5, and a bare-metal cooperative scheduler. + +## Decisions + +- Firmware is the current scope; cloud, web, and mini-program layers are not implemented here. +- `APP/` owns application modules; `Core/` is CubeMX-generated; `Drivers/` is vendor code. +- Main loop runs `scheduler_run()`; sensor work is periodic polling, not RTOS. +- Peripheral config source of truth is `helmet.ioc`; regenerate CubeMX code instead of hand-editing generated init code. +- I2C1 is for MPU6050; I2C2 is for MAX30102. Both run Fast Mode 400 kHz. +- New modules must be registered in `APP/bsp_system.h`, `APP/scheduler.c`, `Core/Src/main.c`, and `MDK-ARM/helmet.uvprojx` when needed. +- Quality gate requires cppcheck clean, `APP/*.h` include guards, UTF-8 without BOM, and LF line endings. + +## Key Paths + +- `APP/`: application drivers, scheduler, shared firmware utilities. +- `Core/`: CubeMX output; user edits only inside `USER CODE BEGIN/END`. +- `Drivers/`: STM32 HAL/CMSIS; do not edit. +- `MDK-ARM/helmet.uvprojx`: Keil project; add new `.c` files here. +- `MDK-ARM/helmet/`: build output; do not treat as source. +- `.trellis/tasks//`: task state, PRD, and injected context. +- `.trellis/spec/`: durable implementation rules. +- `.trellis/workspace/`: session journals, not changelog. + +## Common Confusions + +- `APP/bsp_system.h` is the app include hub; `Core/Inc/*` is generated HAL-facing config. +- `CLAUDE.md` and `README.md` document current architecture; neither replaces source or `.ioc`. +- `helmet.ioc` controls peripherals; `Core/Src/i2c.c` only reflects generated output plus protected user blocks. +- `MDK-ARM/helmet.hex` is firmware output; `MDK-ARM/helmet.uvprojx` is project configuration. + +## Long-Term Notes + +- STM32F103C8T6 has 64 KB Flash and 20 KB SRAM; keep buffers static and small, avoid `malloc/free`. +- On Windows, verify Git/editor keeps UTF-8 no BOM and LF; `git diff` may warn about CRLF conversion. +- Do not use blocking logs or delays in interrupts or high-frequency tasks. +- Keep APP exported symbols module-prefixed and headers guarded as `MODULE_H`. +- Update `README.md` and `CLAUDE.md` when peripherals, modules, architecture, or workflow change. +- Follow Trellis workflow: read current task/specs before edits, and record sessions after human-tested commits. diff --git a/APP/bsp_system.h b/APP/bsp_system.h index 1829cda..94bf964 100644 --- a/APP/bsp_system.h +++ b/APP/bsp_system.h @@ -24,6 +24,7 @@ extern "C" { #include "mq2.h" // MQ2 烟雾传感器模块 #include "dht11.h" // DHT11 温湿度传感器模块 #include "mpu6050.h" // MPU6050 六轴传感器模块 +#include "max30102.h" // MAX30102 心率血氧传感器模块 #include "scheduler.h" /* MPU6050 相关库 */ diff --git a/APP/max30102.c b/APP/max30102.c new file mode 100644 index 0000000..e6d645d --- /dev/null +++ b/APP/max30102.c @@ -0,0 +1,454 @@ +#include "max30102.h" + +/* + * 算法参考 Maxim MAXREFDES117 与 SparkFun MAX3010x PBA beat detector + * 核心流程: + * HR:SparkFun/Maxim PBA 逐样本 beat detector + 4 次 BPM 均值 + * SpO2:最近 2 秒 Red/IR 窗口,按平均绝对 AC/DC 比值查表 + */ + +extern I2C_HandleTypeDef hi2c2; + +/* 对外数据 */ +int32_t heart_rate = 0; +int32_t spo2 = 0; +uint8_t hr_valid = 0; +uint8_t spo2_valid = 0; + +/* 采样环形缓冲(Red / IR 各 4 秒 @ 100Hz) + * buf_head 指向下一个写入位置;buf_head 也等价于"最早样本索引" */ +static uint32_t red_buf[MAX30102_BUF_LEN]; +static uint32_t ir_buf[MAX30102_BUF_LEN]; +static uint16_t buf_head = 0; +static uint16_t samples_filled = 0; // 首次填满计数,< BUF_LEN 时不解算 +static uint16_t samples_since_calc = 0; // 滑窗触发计数 +static uint8_t miss_windows = 0; // 连续解算失败窗口计数 +static uint8_t spo2_miss_windows = 0; // 连续血氧解算失败窗口计数 + +/* Maxim 官方 SpO2 查表:idx = R × 100,覆盖 R = 0.00 ~ 1.83 + * 由多项式 SpO2 = -45.060·R² + 30.354·R + 94.845 采样生成,四舍五入 */ +static const uint8_t uch_spo2_table[184] = { + 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99, + 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 98, 97, 97, + 97, 97, 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, 93, 93, 93, 92, 92, 92, 91, 91, + 90, 90, 89, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 82, 82, 81, 81, + 80, 80, 79, 78, 78, 77, 76, 76, 75, 74, 74, 73, 72, 72, 71, 70, 69, 69, 68, 67, + 66, 66, 65, 64, 63, 62, 62, 61, 60, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 50, + 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, + 28, 27, 26, 25, 23, 22, 21, 20, 19, 17, 16, 15, 14, 12, 11, 10, 9, 7, 6, 5, + 3, 2, 1, 0 +}; + +/* --- I2C 原语 --- */ + +static uint8_t max30102_write_reg(uint8_t reg, uint8_t val) +{ + if (HAL_I2C_Mem_Write(&hi2c2, (MAX30102_ADDR << 1), reg, + I2C_MEMADD_SIZE_8BIT, &val, 1, HAL_MAX_DELAY) != HAL_OK) + return 1; + return 0; +} + +static uint8_t max30102_read_reg(uint8_t reg, uint8_t *val) +{ + if (HAL_I2C_Mem_Read(&hi2c2, (MAX30102_ADDR << 1), reg, + I2C_MEMADD_SIZE_8BIT, val, 1, HAL_MAX_DELAY) != HAL_OK) + return 1; + return 0; +} + +static uint8_t max30102_read_fifo_burst(uint8_t *buf, uint16_t len) +{ + if (HAL_I2C_Mem_Read(&hi2c2, (MAX30102_ADDR << 1), MAX30102_REG_FIFO_DATA, + I2C_MEMADD_SIZE_8BIT, buf, len, HAL_MAX_DELAY) != HAL_OK) + return 1; + return 0; +} + +/* --- SparkFun / Maxim PBA beat detector + AC/DC SpO2 --- */ + +#define MAX30102_SAMPLE_RATE_HZ 100 +#define MAX30102_HR_MIN 40 +#define MAX30102_HR_MAX 180 +#define MAX30102_SPO2_MIN 85 +#define MAX30102_SPO2_MAX 100 +#define MAX30102_SPO2_WINDOW 200 +#define MAX30102_RATE_SIZE 4 +#define MAX30102_HOLD_MISSES 8 +#define MAX30102_IR_SCALE_SHIFT 3 +#define MAX30102_PBA_AC_MIN 20 +#define MAX30102_PBA_AC_MAX 2000 +#define MAX30102_SPO2_AC_MIN 40 +#define MAX30102_DC_SATURATION 250000U + +static int16_t pba_ir_ac_max = 20; +static int16_t pba_ir_ac_min = -20; +static int16_t pba_ir_ac_current = 0; +static int16_t pba_ir_ac_previous = 0; +static int16_t pba_ir_ac_signal_min = 0; +static int16_t pba_ir_ac_signal_max = 0; +static int16_t pba_ir_average = 0; +static uint8_t pba_positive_edge = 0; +static uint8_t pba_negative_edge = 0; +static int32_t pba_ir_avg_reg = 0; +static int16_t pba_cbuf[32]; +static uint8_t pba_offset = 0; +static uint32_t sample_counter = 0; +static uint32_t last_beat_sample = 0; +static int32_t rate_buf[MAX30102_RATE_SIZE]; +static uint8_t rate_index = 0; +static uint8_t rate_count = 0; + +static const uint16_t pba_fir_coeffs[12] = { + 172, 321, 579, 927, 1360, 1858, + 2390, 2916, 3391, 3768, 4012, 4096 +}; + +static uint16_t window_back_index(uint16_t back) +{ + uint16_t offset = (uint16_t)((back + 1) % MAX30102_BUF_LEN); + return (buf_head >= offset) ? (buf_head - offset) : (MAX30102_BUF_LEN + buf_head - offset); +} + +static void pba_reset(void) +{ + pba_ir_ac_max = 20; + pba_ir_ac_min = -20; + pba_ir_ac_current = 0; + pba_ir_ac_previous = 0; + pba_ir_ac_signal_min = 0; + pba_ir_ac_signal_max = 0; + pba_ir_average = 0; + pba_positive_edge = 0; + pba_negative_edge = 0; + pba_ir_avg_reg = 0; + memset(pba_cbuf, 0, sizeof(pba_cbuf)); + pba_offset = 0; + last_beat_sample = 0; + rate_index = 0; + rate_count = 0; + memset(rate_buf, 0, sizeof(rate_buf)); +} + +static void max30102_clear_result(void) +{ + heart_rate = 0; + spo2 = 0; + hr_valid = 0; + spo2_valid = 0; + miss_windows = 0; + spo2_miss_windows = 0; + sample_counter = 0; + pba_reset(); +} + +static int32_t smooth_value(int32_t old_val, int32_t new_val, int32_t weight) +{ + return (old_val * weight + new_val + (weight / 2)) / (weight + 1); +} + +static int16_t pba_average_dc_estimator(int32_t *p, uint16_t x) +{ + *p += ((((int32_t)x << 15) - *p) >> 4); + return (int16_t)(*p >> 15); +} + +static int32_t pba_mul16(int16_t x, int16_t y) +{ + return (int32_t)x * (int32_t)y; +} + +static int16_t pba_low_pass_fir_filter(int16_t din) +{ + pba_cbuf[pba_offset] = din; + int32_t z = pba_mul16((int16_t)pba_fir_coeffs[11], pba_cbuf[(pba_offset - 11) & 0x1F]); + + for (uint8_t i = 0; i < 11; i++) { + z += pba_mul16((int16_t)pba_fir_coeffs[i], + (int16_t)(pba_cbuf[(pba_offset - i) & 0x1F] + + pba_cbuf[(pba_offset - 22 + i) & 0x1F])); + } + + pba_offset = (uint8_t)((pba_offset + 1) & 0x1F); + return (int16_t)(z >> 15); +} + +static uint8_t pba_check_for_beat(uint32_t ir_sample) +{ + uint16_t scaled = (uint16_t)(ir_sample >> MAX30102_IR_SCALE_SHIFT); + uint8_t beat_detected = 0; + + pba_ir_ac_previous = pba_ir_ac_current; + pba_ir_average = pba_average_dc_estimator(&pba_ir_avg_reg, scaled); + pba_ir_ac_current = pba_low_pass_fir_filter((int16_t)(scaled - (uint16_t)pba_ir_average)); + + if (pba_ir_ac_previous < 0 && pba_ir_ac_current >= 0) { + pba_ir_ac_max = pba_ir_ac_signal_max; + pba_ir_ac_min = pba_ir_ac_signal_min; + pba_positive_edge = 1; + pba_negative_edge = 0; + pba_ir_ac_signal_max = 0; + + int16_t amplitude = (int16_t)(pba_ir_ac_max - pba_ir_ac_min); + if (amplitude > MAX30102_PBA_AC_MIN && amplitude < MAX30102_PBA_AC_MAX) + beat_detected = 1; + } + + if (pba_ir_ac_previous > 0 && pba_ir_ac_current <= 0) { + pba_positive_edge = 0; + pba_negative_edge = 1; + pba_ir_ac_signal_min = 0; + } + + if (pba_positive_edge && pba_ir_ac_current > pba_ir_ac_previous) + pba_ir_ac_signal_max = pba_ir_ac_current; + + if (pba_negative_edge && pba_ir_ac_current < pba_ir_ac_previous) + pba_ir_ac_signal_min = pba_ir_ac_current; + + return beat_detected; +} + +static void max30102_update_heart_rate(uint32_t ir_sample) +{ + sample_counter++; + + if (ir_sample < MAX30102_FINGER_THRESHOLD) { + pba_reset(); + return; + } + + if (!pba_check_for_beat(ir_sample)) + return; + + if (last_beat_sample != 0) { + uint32_t delta = sample_counter - last_beat_sample; + const uint32_t min_delta = (MAX30102_SAMPLE_RATE_HZ * 60U) / MAX30102_HR_MAX; + const uint32_t max_delta = (MAX30102_SAMPLE_RATE_HZ * 60U) / MAX30102_HR_MIN; + + if (delta >= min_delta && delta <= max_delta) { + int32_t bpm = (int32_t)((MAX30102_SAMPLE_RATE_HZ * 60U + (delta / 2U)) / delta); + rate_buf[rate_index] = bpm; + rate_index = (uint8_t)((rate_index + 1) % MAX30102_RATE_SIZE); + if (rate_count < MAX30102_RATE_SIZE) + rate_count++; + + if (rate_count >= 2) { + int32_t sum = 0; + for (uint8_t i = 0; i < rate_count; i++) + sum += rate_buf[i]; + + int32_t avg = sum / rate_count; + heart_rate = hr_valid ? smooth_value(heart_rate, avg, 2) : avg; + hr_valid = 1; + miss_windows = 0; + } + } + } + + last_beat_sample = sample_counter; +} + +static void max30102_expire_stale_heart_rate(void) +{ + const uint32_t max_delta = (MAX30102_SAMPLE_RATE_HZ * 60U) / MAX30102_HR_MIN; + + if (hr_valid && last_beat_sample != 0 && + (sample_counter - last_beat_sample) > (max_delta * 2U)) { + heart_rate = 0; + hr_valid = 0; + rate_index = 0; + rate_count = 0; + memset(rate_buf, 0, sizeof(rate_buf)); + } +} + +static void max30102_compute_spo2(int32_t *sp, uint8_t *sp_ok) +{ + *sp_ok = 0; + if (samples_filled < MAX30102_SPO2_WINDOW) + return; + + uint64_t ir_sum = 0; + uint64_t red_sum = 0; + for (uint16_t i = 0; i < MAX30102_SPO2_WINDOW; i++) { + uint16_t k = window_back_index(i); + ir_sum += ir_buf[k]; + red_sum += red_buf[k]; + } + + uint32_t ir_dc = (uint32_t)(ir_sum / MAX30102_SPO2_WINDOW); + uint32_t red_dc = (uint32_t)(red_sum / MAX30102_SPO2_WINDOW); + if (ir_dc < MAX30102_FINGER_THRESHOLD || ir_dc > MAX30102_DC_SATURATION || red_dc == 0) + return; + + uint64_t ir_ac_sum = 0; + uint64_t red_ac_sum = 0; + for (uint16_t i = 0; i < MAX30102_SPO2_WINDOW; i++) { + uint16_t k = window_back_index(i); + int32_t ir_delta = (int32_t)ir_buf[k] - (int32_t)ir_dc; + int32_t red_delta = (int32_t)red_buf[k] - (int32_t)red_dc; + ir_ac_sum += (uint32_t)((ir_delta < 0) ? -ir_delta : ir_delta); + red_ac_sum += (uint32_t)((red_delta < 0) ? -red_delta : red_delta); + } + + uint32_t ir_ac = (uint32_t)(ir_ac_sum / MAX30102_SPO2_WINDOW); + uint32_t red_ac = (uint32_t)(red_ac_sum / MAX30102_SPO2_WINDOW); + if (ir_ac < MAX30102_SPO2_AC_MIN || red_ac == 0) + return; + + int64_t num = (int64_t)red_ac * (int64_t)ir_dc * 100; + int64_t den = (int64_t)ir_ac * (int64_t)red_dc; + if (den <= 0) + return; + + int32_t r = (int32_t)(num / den); + if (r > 2 && r < 184) { + int32_t spo2_calc = uch_spo2_table[r]; + if (spo2_calc >= MAX30102_SPO2_MIN && spo2_calc <= MAX30102_SPO2_MAX) { + *sp = spo2_calc; + *sp_ok = 1; + } + } +} + +static uint32_t max30102_recent_ir_mean(uint16_t count) +{ + if (count == 0) + return 0; + + uint64_t ir_sum = 0; + for (uint16_t i = 0; i < count; i++) + ir_sum += ir_buf[window_back_index(i)]; + + return (uint32_t)(ir_sum / count); +} + +/** + * @brief MAX30102 初始化:复位 → 自检 → 配置 SpO2 模式 + * @retval 0 成功,1 Part ID 不匹配或 I2C 失败 + */ +uint8_t max30102_init(void) +{ + uint8_t part_id = 0; + + /* 软复位(MODE.RESET=1)*/ + if (max30102_write_reg(MAX30102_REG_MODE_CONFIG, 0x40)) return 1; + HAL_Delay(50); + + if (max30102_read_reg(MAX30102_REG_PART_ID, &part_id)) return 1; + if (part_id != MAX30102_PART_ID_VALUE) return 1; + + /* 清 FIFO 指针 */ + max30102_write_reg(MAX30102_REG_FIFO_WR_PTR, 0x00); + max30102_write_reg(MAX30102_REG_OVF_COUNTER, 0x00); + max30102_write_reg(MAX30102_REG_FIFO_RD_PTR, 0x00); + + /* FIFO_CONFIG: SMP_AVE=000, FIFO_ROLLOVER_EN=1, FIFO_A_FULL=0x0F */ + max30102_write_reg(MAX30102_REG_FIFO_CONFIG, 0x1F); + + /* MODE: SpO2 模式(Red + IR) */ + max30102_write_reg(MAX30102_REG_MODE_CONFIG, 0x03); + + /* SPO2_CONFIG: ADC_RGE=01(4096nA), SR=011(100Hz), LED_PW=11(411us/18-bit) */ + max30102_write_reg(MAX30102_REG_SPO2_CONFIG, 0x27); + + /* LED 电流约 7mA(0x24 × 0.2mA)*/ + max30102_write_reg(MAX30102_REG_LED1_PA, 0x24); + max30102_write_reg(MAX30102_REG_LED2_PA, 0x24); + + /* 关闭所有中断(纯轮询)*/ + max30102_write_reg(MAX30102_REG_INT_ENABLE_1, 0x00); + max30102_write_reg(MAX30102_REG_INT_ENABLE_2, 0x00); + + buf_head = 0; + samples_filled = 0; + samples_since_calc = 0; + max30102_clear_result(); + return 0; +} + +/** + * @brief MAX30102 周期任务(50ms 调用一次) + * @note 读取 FIFO 新样本写入环形缓冲;缓冲填满后每 STRIDE 个新样本 + * 调用 Maxim 风格算法(翻转找谷 + 4 点 MA + 谷间 R 比值中位数 + 184 表) + */ +void max30102_task(void) +{ + uint8_t wr = 0, rd = 0; + if (max30102_read_reg(MAX30102_REG_FIFO_WR_PTR, &wr)) return; + if (max30102_read_reg(MAX30102_REG_FIFO_RD_PTR, &rd)) return; + + uint8_t samples = (wr - rd) & 0x1F; // FIFO 深度 32 + if (samples == 0) return; + + uint8_t raw[192]; // 32 × 6 上限 + if (samples > 32) samples = 32; + uint16_t len = (uint16_t)samples * 6; + + if (max30102_read_fifo_burst(raw, len)) return; + + for (uint8_t i = 0; i < samples; i++) { + uint32_t red = ((uint32_t)raw[i * 6 + 0] << 16) | + ((uint32_t)raw[i * 6 + 1] << 8) | + (uint32_t)raw[i * 6 + 2]; + uint32_t ir = ((uint32_t)raw[i * 6 + 3] << 16) | + ((uint32_t)raw[i * 6 + 4] << 8) | + (uint32_t)raw[i * 6 + 5]; + red &= 0x3FFFF; // 保留 18-bit + ir &= 0x3FFFF; + + red_buf[buf_head] = red; + ir_buf[buf_head] = ir; + buf_head = (uint16_t)((buf_head + 1) % MAX30102_BUF_LEN); + + if (samples_filled < MAX30102_BUF_LEN) samples_filled++; + samples_since_calc++; + + max30102_update_heart_rate(ir); + } + + if (samples_since_calc < MAX30102_CALC_STRIDE) return; + samples_since_calc = 0; + + uint16_t mean_count = samples_filled < MAX30102_SPO2_WINDOW ? + samples_filled : MAX30102_SPO2_WINDOW; + uint32_t ir_mean = max30102_recent_ir_mean(mean_count); + + if (ir_mean < MAX30102_FINGER_THRESHOLD) { + max30102_clear_result(); + printf("max30102: no finger\r\n"); + return; + } + + max30102_expire_stale_heart_rate(); + + int32_t sp = 0; + uint8_t sp_ok = 0; + max30102_compute_spo2(&sp, &sp_ok); + if (sp_ok) { + spo2 = spo2_valid ? smooth_value(spo2, sp, 3) : sp; + spo2_valid = 1; + spo2_miss_windows = 0; + miss_windows = 0; + } else { + if (spo2_miss_windows < MAX30102_HOLD_MISSES) + spo2_miss_windows++; + if (spo2_miss_windows >= MAX30102_HOLD_MISSES) { + spo2 = 0; + spo2_valid = 0; + } + } + + if (!hr_valid && !spo2_valid) { + if (miss_windows < MAX30102_HOLD_MISSES) + miss_windows++; + + if (miss_windows >= MAX30102_HOLD_MISSES) + max30102_clear_result(); + } + + printf("hr:%d bpm spo2:%d%% (hr_ok=%d spo2_ok=%d)\r\n", + (int)heart_rate, (int)spo2, (int)hr_valid, (int)spo2_valid); +} diff --git a/APP/max30102.h b/APP/max30102.h new file mode 100644 index 0000000..f8a08c2 --- /dev/null +++ b/APP/max30102.h @@ -0,0 +1,59 @@ +#ifndef MAX30102_H +#define MAX30102_H + +#include "bsp_system.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* MAX30102 I2C 7-bit 地址 */ +#define MAX30102_ADDR 0x57 + +/* 核心寄存器 */ +#define MAX30102_REG_INT_STATUS_1 0x00 +#define MAX30102_REG_INT_STATUS_2 0x01 +#define MAX30102_REG_INT_ENABLE_1 0x02 +#define MAX30102_REG_INT_ENABLE_2 0x03 +#define MAX30102_REG_FIFO_WR_PTR 0x04 +#define MAX30102_REG_OVF_COUNTER 0x05 +#define MAX30102_REG_FIFO_RD_PTR 0x06 +#define MAX30102_REG_FIFO_DATA 0x07 +#define MAX30102_REG_FIFO_CONFIG 0x08 +#define MAX30102_REG_MODE_CONFIG 0x09 +#define MAX30102_REG_SPO2_CONFIG 0x0A +#define MAX30102_REG_LED1_PA 0x0C // Red +#define MAX30102_REG_LED2_PA 0x0D // IR +#define MAX30102_REG_PART_ID 0xFF + +/* 出厂 Part ID */ +#define MAX30102_PART_ID_VALUE 0x15 + +/* 采样环形缓冲长度(4 秒 @ 100 Hz,兼顾频率分辨率与内存占用)*/ +#define MAX30102_BUF_LEN 400 + +/* 滑窗步长:累计该数量新样本触发一次解算(约 0.5 s 更新频率)*/ +#define MAX30102_CALC_STRIDE 50 + +/* 手指接触阈值(IR 直流,经验值)*/ +#define MAX30102_FINGER_THRESHOLD 50000 + +/* 初始化:软复位 → 自检(Part ID) → 配置 FIFO/LED/SpO2 模式 */ +uint8_t max30102_init(void); + +/* 调度器周期任务(50ms):读 FIFO → 样本入环形缓冲 → 滑窗解算 HR/SpO2 */ +void max30102_task(void); + +/* 心率(bpm)与血氧饱和度(%),无效时保持为 0 */ +extern int32_t heart_rate; +extern int32_t spo2; + +/* 有效性标志:1 表示数值可信(手指接触且解算成功)*/ +extern uint8_t hr_valid; +extern uint8_t spo2_valid; + +#ifdef __cplusplus +} +#endif + +#endif /* MAX30102_H */ diff --git a/APP/scheduler.c b/APP/scheduler.c index cc2261a..fdf63c6 100644 --- a/APP/scheduler.c +++ b/APP/scheduler.c @@ -11,9 +11,10 @@ typedef struct { /* 静态调度器任务列表,每个任务包括任务函数、执行周期(ms)、上次执行时间(ms) */ static task_t scheduler_task[] = { - {mq2_task, 100, 0}, // MQ2 传感器任务,每 100 ms 执行一次 - {dht11_task, 1000, 0}, // DHT11 传感器任务,每 1000 ms 执行一次 - {mpu6050_task, 10, 0} // MPU6050 传感器任务,每 10 ms 执行一次 + // {mq2_task, 100, 0}, // MQ2 传感器任务,每 100 ms 执行一次 + // {dht11_task, 1000, 0}, // DHT11 传感器任务,每 1000 ms 执行一次 + // {mpu6050_task, 10, 0}, // MPU6050 传感器任务,每 10 ms 执行一次 + {max30102_task, 50, 0} // MAX30102 心率血氧任务,每 50 ms 执行一次 }; /** diff --git a/CLAUDE.md b/CLAUDE.md index a8e7011..7014755 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -26,7 +26,7 @@ helmet.ioc CubeMX 工程配置文件 ### 执行流程 -`main()` → HAL_Init → SystemClock_Config(HSE 8MHz + PLL ×9 = 72MHz) → 外设初始化(GPIO, DMA, USART1, ADC1, TIM1, I2C1) → ADC DMA 启动 → DHT11_Init → mpu6050_init(含 DMP 固件加载与自检) → `scheduler_init()` → 主循环调用 `scheduler_run()` +`main()` → HAL_Init → SystemClock_Config(HSE 8MHz + PLL ×9 = 72MHz) → 外设初始化(GPIO, DMA, USART1, ADC1, TIM1, I2C1, I2C2) → ADC DMA 启动 → DHT11_Init → mpu6050_init(含 DMP 固件加载与自检) → max30102_init(Part ID 自检 + SpO2 模式配置) → `scheduler_init()` → 主循环调用 `scheduler_run()` ### 任务调度器(`APP/scheduler.c`) @@ -45,6 +45,7 @@ helmet.ioc CubeMX 工程配置文件 | TIM1 | 内部时钟 | 微秒级延时,预分频 72-1(1MHz 计数频率) | | GPIO | PA8 | DHT11 数据线,推挽输出高速模式 | | I2C1 | PB6/PB7 | MPU6050 六轴传感器,Fast Mode 400kHz | +| I2C2 | PB10/PB11 | MAX30102 心率血氧传感器,Fast Mode 400kHz | | SWD | PA13/PA14 | 调试接口 | | HSE | PD0/PD1 | 外部 8MHz 晶振 | diff --git a/Core/Inc/i2c.h b/Core/Inc/i2c.h index 4baa02a..29bebff 100644 --- a/Core/Inc/i2c.h +++ b/Core/Inc/i2c.h @@ -34,11 +34,14 @@ extern "C" { extern I2C_HandleTypeDef hi2c1; +extern I2C_HandleTypeDef hi2c2; + /* USER CODE BEGIN Private defines */ /* USER CODE END Private defines */ void MX_I2C1_Init(void); +void MX_I2C2_Init(void); /* USER CODE BEGIN Prototypes */ diff --git a/Core/Src/i2c.c b/Core/Src/i2c.c index c7e1ffb..d3eb459 100644 --- a/Core/Src/i2c.c +++ b/Core/Src/i2c.c @@ -25,6 +25,7 @@ /* USER CODE END 0 */ I2C_HandleTypeDef hi2c1; +I2C_HandleTypeDef hi2c2; /* I2C1 init function */ void MX_I2C1_Init(void) @@ -54,6 +55,35 @@ void MX_I2C1_Init(void) /* USER CODE END I2C1_Init 2 */ +} +/* I2C2 init function */ +void MX_I2C2_Init(void) +{ + + /* USER CODE BEGIN I2C2_Init 0 */ + + /* USER CODE END I2C2_Init 0 */ + + /* USER CODE BEGIN I2C2_Init 1 */ + + /* USER CODE END I2C2_Init 1 */ + hi2c2.Instance = I2C2; + hi2c2.Init.ClockSpeed = 400000; + hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2; + hi2c2.Init.OwnAddress1 = 0; + hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c2.Init.OwnAddress2 = 0; + hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c2) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C2_Init 2 */ + + /* USER CODE END I2C2_Init 2 */ + } void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) @@ -82,6 +112,28 @@ void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) /* USER CODE END I2C1_MspInit 1 */ } + else if(i2cHandle->Instance==I2C2) + { + /* USER CODE BEGIN I2C2_MspInit 0 */ + + /* USER CODE END I2C2_MspInit 0 */ + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* I2C2 clock enable */ + __HAL_RCC_I2C2_CLK_ENABLE(); + /* USER CODE BEGIN I2C2_MspInit 1 */ + + /* USER CODE END I2C2_MspInit 1 */ + } } void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle) @@ -107,6 +159,26 @@ void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle) /* USER CODE END I2C1_MspDeInit 1 */ } + else if(i2cHandle->Instance==I2C2) + { + /* USER CODE BEGIN I2C2_MspDeInit 0 */ + + /* USER CODE END I2C2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C2_CLK_DISABLE(); + + /**I2C2 GPIO Configuration + PB10 ------> I2C2_SCL + PB11 ------> I2C2_SDA + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11); + + /* USER CODE BEGIN I2C2_MspDeInit 1 */ + + /* USER CODE END I2C2_MspDeInit 1 */ + } } /* USER CODE BEGIN 1 */ diff --git a/Core/Src/main.c b/Core/Src/main.c index 996c892..0c61ca5 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -96,10 +96,12 @@ int main(void) MX_ADC1_Init(); MX_TIM1_Init(); MX_I2C1_Init(); + MX_I2C2_Init(); /* USER CODE BEGIN 2 */ HAL_ADC_Start_DMA(&hadc1, (uint32_t *)&dma_buff[0], 30); // 启动 ADC1 的 DMA 模式,将采集到的 30 个数据存储到 dma_buff 数组中 DHT11_Init(); // DHT11 温湿度传感器初始化 mpu6050_init(); // MPU6050 姿态传感器初始化(含 DMP) + max30102_init(); // MAX30102 心率血氧传感器初始化 scheduler_init(); // 初始化调度器 /* USER CODE END 2 */ diff --git a/MDK-ARM/helmet.uvoptx b/MDK-ARM/helmet.uvoptx index a97babf..ab4e950 100644 --- a/MDK-ARM/helmet.uvoptx +++ b/MDK-ARM/helmet.uvoptx @@ -665,7 +665,7 @@ 5 - 40 + 38 1 0 0 @@ -677,7 +677,7 @@ 5 - 41 + 39 5 0 0 @@ -689,7 +689,7 @@ 5 - 42 + 40 1 0 0 @@ -701,7 +701,7 @@ 5 - 43 + 41 5 0 0 @@ -711,6 +711,30 @@ 0 0 + + 5 + 42 + 1 + 0 + 0 + 0 + ..\APP\max30102.c + max30102.c + 0 + 0 + + + 5 + 43 + 5 + 0 + 0 + 0 + ..\APP\max30102.h + max30102.h + 0 + 0 + diff --git a/MDK-ARM/helmet.uvprojx b/MDK-ARM/helmet.uvprojx index c242e7b..0240b6b 100644 --- a/MDK-ARM/helmet.uvprojx +++ b/MDK-ARM/helmet.uvprojx @@ -1068,6 +1068,16 @@ 5 ..\APP\mpu6050_inv_mpu_dmp_motion_driver.h + + max30102.c + 1 + ..\APP\max30102.c + + + max30102.h + 5 + ..\APP\max30102.h + diff --git a/MDK-ARM/helmet/helmet.hex b/MDK-ARM/helmet/helmet.hex index 0800f46..dda92ae 100644 --- a/MDK-ARM/helmet/helmet.hex +++ b/MDK-ARM/helmet/helmet.hex @@ -1,11 +1,11 @@ :020000040800F2 -:10000000900600200501000875370008D72F00086A -:1000100071370008C10C0008253B000800000000F3 -:10002000000000000000000000000000A5370008EC -:10003000550F00080000000079370008A7370008B6 +:10000000B813002005010008093500082F2D00084D +:1000100005350008110B0008B93800080000000081 +:10002000000000000000000000000000393500085A +:10003000510C0008000000000D3500083B35000899 :100040001F0100081F0100081F0100081F01000810 :100050001F0100081F0100081F0100081F01000800 -:100060001F0100081F0100081F010008190F0008E8 +:100060001F0100081F0100081F010008150C0008EF :100070001F0100081F0100081F0100081F010008E0 :100080001F0100081F0100081F0100081F010008D0 :100090001F0100081F0100081F0100081F010008C0 @@ -14,2339 +14,2024 @@ :1000C0001F0100081F0100081F0100081F01000890 :1000D0001F0100081F0100081F0100081F01000880 :1000E0001F0100081F0100081F010008DFF810D0E1 -:1000F00000F01EFD00480047E5600008AFF30080F7 -:10010000900600200648804706480047FEE7FEE7C5 +:1000F00000F046FC00480047F9540008AFF30080C8 +:10010000B81300200648804706480047FEE7FEE790 :10011000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B7 -:1001200033380008ED0000082DE9F0410024061BDB -:10013000254671F1000605DA01240027D0EB0700FF -:1001400067EB0101161E73F1000605DA0027D2EBFA -:100150000702012567EB030300F06CFB86460E46A1 -:1001600017469C46AC4204D00025D0EB050E65EB4B -:10017000010624B10020D2EB000760EB030C7046AF -:1001800031463A466346BDE8F081202A04DB203A36 -:1001900021FA02F00021704721FA02F3D040C2F1A7 -:1001A00020029140084319467047D2B201E000F89E -:1001B000012B491EFBD270470022F6E710B513460B -:1001C0000A4604461946FFF7F0FF204610BD30B539 -:1001D00004460020034600E05B1C934203D2E05C2F -:1001E000CD5C401BF8D030BDF0B480EA0102D40FE2 -:1001F0004200B2EB410F02D20246084611464A00C5 -:1002000042D0C30DDDB2C1F3C752AD1A202D35DA8D -:10021000C1F3160141F4000204B15242C5F12006B7 -:1002200002FA06F12A411044B3EBD05F23D0C4B1E7 -:10023000012DA0EBC35009DCF0BC4FF0004202EAF4 -:10024000C352DBB200F5000000F04FBB400000F1EC -:10025000807000EBC350A0F1807040EAD17049007B -:1002600009E0490841EAC071A0EBC35000F5000065 -:10027000400800EBC350F0BC00F02EBB61420122ED -:1002800002EB4101001BF6E7F0BC704781F0004132 -:10029000AAE780F00040A7E780EA010210B502F06B -:1002A0000043400022D04A001FD0010E01EB126132 -:1002B000C0F35600C2F3560240F4000042F40002BC -:1002C000A0FB022000047F39140400D0401C50EA37 -:1002D000124001D44000491EC2B20C0604EBD010FB -:1002E000401C4008802A02D003E0002010BD20F00E -:1002F0000100002900DA0020184310BD30B480EA64 -:10030000010202F0004530F0004221F0004013D01D -:1003100090B1C30DD40DC2F31601C0F31600E41A58 -:1003200041F4000140F400027D34914201D3641C89 -:1003300000E04900002C02DA30BC002070474FF486 -:1003400000000023914201D3891A034340084FEA79 -:100350004101F7D151B1914202D14FF0004105E086 -:1003600002D24FF0010101E06FF0010103EBC45034 -:10037000284430BC00F0B0BA2DE9FE4F804681EA37 -:100380000300C00F0C46009021F0004123F000450F -:10039000B8EB0200A94105D24046214690461C46D2 -:1003A0000B46024623F00040104347D0270DC7F309 -:1003B0000A00C3F30A510290401A019040286BDAF8 -:1003C000C3F3130040F4801B0098924620B1002331 -:1003D000D2EB030A63EB0B0B01985946C0F14002C4 -:1003E000504600F058FA06460D4650465946019AC6 -:1003F00000F060FA10EB08006141002487EA115216 -:1004000084EAE7731A4340D0009A62B3019A012A42 -:100410004FEA075215DC001B61EB02014FF000426E -:1004200002EA0752CDE90042001C41F58011324634 -:100430002B4600F097FA03B0BDE8F08F4046214606 -:10044000F9E7001B61EB0201001C41F58013001865 -:100450005B412018A2F5001747EB030140EAD57075 -:10046000B6196D4111E06D084FEA360645EAC075D0 -:100470004FEA0752001B61EB0201001C41F580119D -:1004800049084FEA30000019514132462B4603B06B -:10049000BDE8F04F00F057BA009801224000002359 -:1004A000D0EB020263EBE073009821464FEAE07460 -:1004B000B8EB000061EB0401E9E783F000435BE780 -:1004C00081F0004158E72DE9FE4F81EA030404F072 -:1004D000004421F0004100944FF0000B23F0004352 -:1004E00050EA01045ED052EA03045BD0C3F30A541D -:1004F000C1F30A552C44A4F2F3340194A0FB025436 -:10050000C1F3130141F48011C3F3130343F48013C7 -:1005100001FB024400FB034E840A970A44EA81541B -:1005200047EA8357A4FB076802958D0A05FB0785F8 -:100530004FEA932C04FB0C542705029D4FEA065802 -:1005400047EA1637B5EB08056EEB070C870E920EDF -:1005500047EA811742EA8312A7FB0201B6EB0B01BF -:1005600064EB00042B0D43EA0C335E1844EB1C5083 -:10057000DA465146E7FB0201C5F313044FEA0B3399 -:1005800043EA14534FEA0432019C43EA0603A4F100 -:100590000C040294009CCDE900B400F0E3F903B030 -:1005A000BDE8F08F00200146F9E72DE9F04D81EA22 -:1005B000030404F0004B21F0004514464FF0000AFC -:1005C00023F0004150EA050220D054EA01021DD078 -:1005D000C5F30A570246C5F31303C1F31300C1F371 -:1005E0000A5640F4801543F48013A7EB0608101B4D -:1005F000D64608F2FD3873EB050002D308F1010876 -:1006000001E092185B41B8F1000F03DA00200146C7 -:10061000BDE8F08D00204FF48011064684460EE0C0 -:10062000171B73EB050705D3121B63EB050306438A -:100630004CEA010C49084FEA300092185B4150EA3D -:100640000107EDD152EA030012D082EA040083EAE6 -:100650000501084305D0101BAB4106D2012200233F -:1006600006E000224FF0004302E06FF00102531059 -:100670001AEB06004CEB085110EB0A0041EB0B01A2 -:10068000BDE8F04D00F05FB9C10F80EAE0700844AA -:10069000CA079623002100F028B9962300221146AC -:1006A00000F023B90EB5C10F80EAE0700844CA0714 -:1006B000002140F233438DE80E000A460B4600F05D -:1006C00051F903B000BD00F0004220F00040C10D20 -:1006D000C0F3160040F400007F2901DA00207047C3 -:1006E000962903DCC1F19601C84001E096398840A3 -:1006F000002AF4D04042704720F00040C10DC0F302 -:10070000160040F400007F2901DA00207047962986 -:1007100003DCC1F19601C8407047963988407047A4 -:10072000C1F30A5210B5C1F3130140F2FF3341F493 -:1007300080119A4201DA002010BD40F233439A4200 -:10074000A2F2334203DC5242FFF71FFD10BD90407E -:1007500010BD00F0004230F000400AD0C10D01F59C -:100760006071C0F3160042EA0151C208400711430C -:10077000704700200146704730B5041E71F1000437 -:1007800004DB4FF00044404264EB0101141E73F19E -:10079000000405DB1C464FF00043524263EB0403A8 -:1007A000994208BF904230BD01F0004330B421F0BF -:1007B000004150EA010206D00A0DA2F56072C1F3B1 -:1007C0001301002A02DC30BC00207047440F44EAC9 -:1007D000C104C100E01830BC00EBC25000F07CB88E -:1007E000002801DBC0F10040002901DBC1F100411C -:1007F00081427047002801DBC0F10040002901DB85 -:10080000C1F100418842704730B50B4601460020D7 -:100810002022012409E021FA02F59D4205D303FAC2 -:1008200002F5491B04FA02F52844151EA2F1010243 -:10083000F1DC30BD2DE9F05F0546002092469B4675 -:1008400088460646814640241BE0284641464746E6 -:100850002246FFF79AFC53465A46C01A914110D3DC -:1008600011461846224600F016F82D1A67EB0108CB -:100870004F4622460120002100F00DF817EB000939 -:100880004E41201EA4F10104DFDC484631462A46D1 -:100890004346BDE8F09F202A04DB203A00FA02F12B -:1008A000002070479140C2F1200320FA03F319435E -:1008B00090407047202A06DBCB17203A41FA02F01D -:1008C00043EAE07306E041FA02F3D040C2F12002AD -:1008D00091400843194670470029A8BF7047401C43 -:1008E000490008BF20F00100704710B4B0FA80FC46 -:1008F00000FA0CF050EA010404BF10BC704749B183 -:10090000CCF1200421FA04F411FA0CF118BF0121F2 -:1009100021430843A3EB0C01CB1D4FEA00614FEAD2 -:10092000102042BF002010BC704700EBC3501044A1 -:100930000029A4BF10BC7047401C490008BF20F02C -:10094000010010BC704710B5141E73F1000408DAE2 -:10095000401C41F1000192185B411A4301D120F083 -:10096000010010BD2DE9F04D92469B4611B1B1FA40 -:1009700081F202E0B0FA80F220329046FFF78BFF5E -:1009800004460F4640EA0A0041EA0B0153465A4624 -:10099000084313D0114653EA010019D0C8F14002B0 -:1009A0005046FFF7F2FB05460E4650465946424672 -:1009B000FFF771FF084305D0012004E020463946C7 -:1009C000BDE8F08D0020054346EAE0762C4337432E -:1009D0000A986305E40AA0EB08000022FD0A44EA35 -:1009E00047540A3002D500200146E9E701051019F5 -:1009F0006941DDE9084500196941BDE8F04DA2E70C -:100A000070B521F0004303430CD0C1F30A55002414 -:100A1000D5EB040564EB0403D617AD1AB34102DB32 -:100A20000020014670BD201841EB025170BD2DE938 -:100A3000F04D00231A461B1A8A4103DB00200146B1 -:100A4000BDE8F08DC1F30A52C1F3130141F48015E2 -:100A50004FF0000BD10702D100186D41521E002744 -:100A6000044640F2FF11384601EB620A3E468046DA -:100A7000024600204FF48011FFF787FBC219714135 -:100A8000BB1846EB0100B4EB030C75EB000C04D370 -:100A9000E41A65EB000517460E46241908F101001B -:100AA0006D4180463428E3DDF91946EB0600091B49 -:100AB000A84103D24FF0FF32134601E00022134653 -:100AC0001BEB070046EB0A51BDE8F04DFFF73BBFBB -:100AD000C1F30A52C1F3130140F2FF3341F4801114 -:100AE0009A4202DA00200146704740F233439A42AC -:100AF000A2F2334202DC5242FFF747BBFFF7CBBE04 -:100B000030B5041E71F1000404DB4FF00044404294 -:100B100064EB0101141E73F1000405DB1C464FF069 -:100B20000043524263EB04038B4208BF824230BD54 -:100B3000064C074D06E0E06840F0010394E807002A -:100B400098471034AC42F6D3FFF7D4FAF891000876 -:100B50001892000870B5044600252068806800F0EF -:100B6000010018B32068806820F0010021688860C7 -:100B700000F082FF054613E000F07EFF401B0228D4 -:100B80000ED92068806800F0010048B1A06A40F0EA -:100B90001000A062E06A40F00100E062012070BD38 -:100BA0002068806800F001000028E5D10020F6E709 -:100BB00070B505466C6AA06A00F05000E0B9A06A02 -:100BC00040F40070A0622068806800F46020B0F5F6 -:100BD000602F0DD1207B58B9A06A20F48070A062EC -:100BE000A06A00F4805018B9A06A40F00100A06229 -:100BF000204600F081FA03E0206A016B284688470E -:100C000070BD70B505466C6AA06A40F04000A062F5 -:100C1000E06A40F00400E062204600F06FFA70BD28 -:100C200070B50446656A284600F067FA70BD00009A -:100C300038B504460025002000902068806800F048 -:100C4000010078BB2068806840F00100216888605E -:100C5000194800681949B0FBF1F0009002E00098D3 -:100C6000401E009000980028F9D100F005FF0546CD -:100C700019E000F001FF401B022814D920688068A9 -:100C800000F0010078B9A06A40F01000A062E06AAC -:100C900040F00100E06200BF002084F8240000BFA3 -:100CA000012038BD05E02068806800F001000028C0 -:100CB000DFD00020F5E700000C00002040420F00CC -:100CC00000BFFEE71FB50020009001900290039046 -:100CD0004FF480700090002001900120029069463E -:100CE000014800F02BFD1FBD000801401FB500208A -:100CF00000900190029003904FF4807000900120CA -:100D0000019000200290032003906946014800F002 -:100D100015FD1FBD0008014038B500BF2748806998 -:100D200040F00400254988610846806900F004000D -:100D3000009000BF00BFFFF7D9FF01221102204839 -:100D400000F094FE00224FF480711D4800F08EFEEA -:100D5000142000F0DFFC01221102194800F086FE89 -:100D60001E2000F0F9F8FFF7ADFF002404E0601C3E -:100D7000C4B2012000F0F0F84FF48071104800F088 -:100D80006DFE08B1642CF2DB642C01DB012038BD60 -:100D9000002404E0601CC4B2012000F0DDF84FF430 -:100DA0008071074800F05AFE08B9642CF2DB642C0D -:100DB00001DB0120EBE70020E9E700000010024022 -:100DC000000801402DE9FC4106460F460020009036 -:100DD0000190FFF78BFF00224FF480714D4800F027 -:100DE00045FE142000F096FC01221102494800F053 -:100DF0003DFE1E2000F0B0F8FFF764FF002504E080 -:100E0000681CC5B2012000F0A7F84FF4807141487A -:100E100000F024FE08B1642DF2DB642D02DB01201A -:100E2000BDE8FC81002504E0681CC5B2012000F08B -:100E300093F84FF48071374800F010FE08B9642D24 -:100E4000F2DB642D01DB0120EAE7002446E0002507 -:100E500004E0681CC5B2012000F07EF84FF48071F8 -:100E60002C4800F0FBFD08B1642DF2DB002504E006 -:100E7000681CC5B2012000F06FF84FF4807125485E -:100E800000F0ECFD08B9642DF2DB282000F064F8D6 -:100E9000E11704EB5171C9101DF801104906090E44 -:100EA0002046E21704EB5272D2100DF802104FF4F4 -:100EB0008071184800F0D2FD70B1E11704EB517158 -:100EC000C9101DF8011041F001012046E21704EBA2 -:100ED0005272D2100DF80210601CC4B2282CB6DB7E -:100EE0009DF800009DF8011008449DF80210084488 -:100EF0009DF8031008449DF80410884201D0012099 -:100F00008EE79DF8000038709DF8020030700020D8 -:100F100086E700000008014010B5024800F0AAFA78 -:100F200010BD0000E000002030B590F840500124D2 -:100F3000AC40C56B6C60046863604468102C04D1DD -:100F40000468A2600468E16003E00468A1600468CA -:100F5000E26030BD7047000070B504464FF6FF7088 -:100F6000001B401F85B2094800684562074801F030 -:100F70007FFE03E005480068406A85B24FF6FA70CC -:100F80008542F7DB014801F0A9FE70BD7801002021 -:100F900072B600BFFEE7000038B50246002300200D -:100FA000009000BF92F82400012801D1022038BD32 -:100FB000012082F8240000BF4868072812D2106878 -:100FC000406B0C79641E04EB84051F24AC40A043E5 -:100FD0000D796D1E05EB85050C68AC402043146847 -:100FE000606327E048680D2812D21068006B0C7906 -:100FF000E41F04EB84051F24AC40A0430D79ED1FD2 -:1010000005EB85050C68AC4020431468206311E0B3 -:101010001068C06A0C790D3C04EB84051F24AC40B9 -:10102000A0430D790D3D05EB85050C68AC402043D0 -:101030001468E06208680A2812D31068C0680C7847 -:101040000A3C04EB44050724AC40A0430D780A3D5C -:1010500005EB45058C68AC4020431468E0600FE068 -:10106000106800690C7804EB44050724AC40A043E9 -:101070000D7805EB45058C68AC4020431468206171 -:101080000868102802D00868112827D1174C10686A -:10109000A0421ED11068806800F40000F0B910680A -:1010A000806840F400001468A0600868102815D11A -:1010B0000F4800680F4CB0FBF4F000EB80004000DC -:1010C000009002E00098401E009000980028F9D19E -:1010D00004E0906A40F020009062012300BF0020ED -:1010E00082F8240000BF184661E700000024014098 -:1010F0000C00002040420F0070477047704700000E -:101100002DE9F0410446002700250026A84614B921 -:101110000120BDE8F081A06810B1207D00B100BFC2 -:10112000A06A30B90020E06284F82400204600F074 -:1011300089F82046FFF70EFD0746A06A00F0100070 -:10114000002873D1002F71D1A06A20F4885040F09C -:101150000200A062E16960680843217B40EA410027 -:101160000643A068B0F5807F02D0A068012802D1B4 -:101170004FF4807000E000200543207D012811D14C -:10118000207B38B9A069401E4FF4006141EA40302D -:10119000054307E0A06A40F02000A062E06A40F04A -:1011A0000100E0622068406820F46940284321681B -:1011B0004860206880682149084030432168886081 -:1011C000A068B0F5807F02D0A068012802D14FF45A -:1011D000807000E00020B0F5807F03D1208A401E9F -:1011E0004FEA00582068C06A20F4700040EA080006 -:1011F0002168C8622068806811490840B04208D15F -:101200000020E062A06A20F0020040F00100A0622D -:1012100011E0A06A20F0020040F01000A062E06A35 -:1012200040F00100E062012705E0FFE7A06A40F01E -:101230001000A062012738466BE70000FDF7E1FFD0 -:10124000FE0E1FFF10B586B00446002002900390EA -:10125000049005902249206888423ED100BF214871 -:10126000806940F400701F4988610846806900F475 -:101270000070019000BF00BF00BF0846806940F0C9 -:10128000040088610846806900F00400019000BFF6 -:1012900000BF012002900320039002A9124800F031 -:1012A0004DFA124812490860002048600021104899 -:1012B00081608021C1608900016189004161202134 -:1012C00081610902C16100F0A3F908B1FFF760FE76 -:1012D00000BF07482062446200BF06B010BD000096 -:1012E00000240140001002400008014008000240B4 -:1012F000E00000202DE9F04104460D461646002787 -:1013000057492068884203D056492068884205D151 -:101310005348001D006800F4702000E00020002801 -:101320007ED100BF94F82400012802D10220BDE83C -:10133000F081012084F8240000BF2046FFF778FCEC -:101340000746002F6DD1A06A40F60161884340F442 -:101350008070A06243492068884209D14048001D3E -:10136000006800F4702008B9012002E0002000E0CD -:10137000012078B1A06A20F48010A0622068406843 -:1013800000F4806000B3A06A20F4005040F4805064 -:10139000A06219E0A06A40F48010A0623049206881 -:1013A000884203D02F492068884205D12C48001D6F -:1013B000006800F4806000E0002028B1A06A20F4FA -:1013C000005040F48050A062A06A00F4805020B128 -:1013D000E06A20F00600E06201E00020E06200BF69 -:1013E000002084F8240000BF1F48216A88621F483B -:1013F000216AC8621E48216A08636FF002002168F2 -:1014000008602068806840F48070216888602268E5 -:1014100002F14C0133462A46206A00F02DF901E022 -:101420001AE014E02068806800F46020B0F5602FB6 -:1014300006D12068806840F4A000216888600CE034 -:101440002068806840F480102168886005E000BF53 -:10145000002084F8240000E00127384667E70000F8 -:101460000024014000280140B10B0008210C0008B5 -:10147000030C000870B50446E06B05682068066838 -:1014800094F84010042088402840002846D006F0F8 -:101490000400002842D02068006800F0200028B92D -:1014A0002068006820F0040021680860574920681F -:1014B000884201D1042027E0544914312068884231 -:1014C00001D1402020E0514928312068884201D1D3 -:1014D000001519E04D493C312068884202D14FF493 -:1014E000804011E0494950312068884202D14FF4D0 -:1014F000802009E0454964312068884202D14FF4D8 -:10150000800001E04FF08060404908394860E06A9F -:1015100000287AD02046E16A884776E094F84010A7 -:10152000022088402840A0B306F0020088B320685B -:10153000006800F0200040B92068006820F00A0030 -:1015400021680860012084F8210030492068884221 -:1015500001D1022028E02D4914312068884201D1B0 -:10156000202021E0294928312068884201D14015F6 -:101570001AE026493C312068884202D14FF40050DD -:1015800012E0224950312068884203D14FF40030E4 -:101590000AE017E01D4964312068884202D14FF407 -:1015A000001001E04FF0007018490839486000BF92 -:1015B000002084F8200000BFA06A30B32046A16A52 -:1015C000884722E094F84010082088402840E0B185 -:1015D00006F00800C8B12068006820F00E002168FD -:1015E000086094F8401001208840E16B48600120B9 -:1015F000A06384F8210000BF002084F8200000BF11 -:10160000206B10B12046216B884770BD0800024056 -:101610000146002209B901207047164B0868C01A1C -:101620001423B0FBF3F08000086412480838C86344 -:10163000022081F821000868026843F6F0708243B6 -:10164000D1E901031843CB6818430B6918434B6970 -:1016500018438B691843CB6918430243086802603A -:1016600000208863012081F82100002081F82000FB -:1016700000BFD1E7080002402DE9F04104460D46C5 -:1016800016461F464FF0000800BF94F820000128BE -:1016900002D10220BDE8F081012084F8200000BFC3 -:1016A00094F8210001282CD1022084F82100002088 -:1016B000A0632068006820F00100216808603B46B4 -:1016C000324629462046FFF72FFCE06A30B12068F9 -:1016D000006840F00E00216808600BE02068006898 -:1016E00020F00400216808602068006840F00A00CB -:1016F000216808602068006840F0010021680860E7 -:1017000006E000BF002084F8200000BF4FF0020870 -:101710004046BFE770B5044600F0AEF906462546E0 -:10172000681C10B104480078054400BF00F0A4F91B -:10173000801BA842FAD370BD080000202DE9F847AD -:101740000346002294466EE14FF0010808FA02F4C5 -:10175000D1F8008008EA0400A0427DD1DFF8DCA2C5 -:10176000D1F80480A8EB0A09D0453AD014DCB8F1CE -:10177000030F50D009DCB8F1000F31D0B8F1010FE0 -:101780001CD0B8F1020F49D120E0B8F1110F18D0E8 -:10179000B8F1120F42D11EE0B9F5881F25D006DC42 -:1017A000B9F5803F20D0B9F5801F37D11AE0B9F5DF -:1017B000001F18D0B9F5041F30D117E0D1F80CC0C4 -:1017C0002DE0D1F80C8008F1040C28E0D1F80C8051 -:1017D00008F1080C23E0D1F80C8008F10C0C1EE095 -:1017E00000BF00BF00BF00BF00BF00BFD1F808802E -:1017F000B8F1000F02D14FF0040C0BE0D1F80880D3 -:10180000B8F1010F03D14FF0080C1C6102E04FF05A -:10181000080C5C6103E04FF0000C00E000BF00BF6B -:10182000FF2801D8984601E003F104084646FF2846 -:1018300002D84FEA820803E0A2F108084FEA8808BC -:101840004746D6F800804FF00F0909FA07F928EA51 -:1018500009080CFA07F900E088E048EA0908C6F828 -:101860000080D1F8048008F08058B8F1805F7DD105 -:1018700000BFDFF8CC81D8F8188048F00108DFF805 -:10188000C091C9F81880C846D8F8188008F0010837 -:10189000CDF8008000BF00BF4FEAB9384FEA920987 -:1018A00058F829504FEA82784FEA18794FF00F081C -:1018B00008FA09F825EA0805DFF88881434502D1CE -:1018C0004FF0000816E0DFF88081434502D14FF069 -:1018D00001080FE0DFF87481434502D14FF00208A0 -:1018E00008E0DFF86C81434502D14FF0030801E0C6 -:1018F0004FF004084FEA82794FEA197908FA09F89B -:1019000048EA0505DFF84C814FEA920948F829506A -:10191000D1F8048008F48018B8F5801F0AD1DFF8E8 -:101920003881D8F8008048EA0008DFF82C91C9F81F -:10193000008009E0DFF82081D8F8008028EA00085C -:10194000DFF81491C9F80080D1F8048008F4001879 -:10195000B8F5001F10D1DFF8008108F10408D8F8AD -:10196000008048EA0008DFF8F09000E05AE009F152 -:101970000409C9F800800DE0DFF8DC8008F10408F4 -:10198000D8F8008028EA0008DFF8CC9009F10409B3 -:10199000C9F80080D1F8048008F40038B8F5003F99 -:1019A0000ED1DFF8B480A8F10408D8F8008048EA26 -:1019B0000008DFF8A490A9F10409C9F800800DE03F -:1019C000DFF89480A8F10408D8F8008028EA00081D -:1019D000DFF88490A9F10409C9F80080D1F80480E7 -:1019E00008F48038B8F5803F0ED1DFF86C80A8F19C -:1019F0000808D8F8008048EA0008DFF85C90A9F1F0 -:101A00000809C9F800800DE0DFF84C80A8F108084B -:101A1000D8F8008028EA0008DFF83C90A9F108090E -:101A2000C9F80080521CD1F8008028FA02F8B8F1F9 -:101A3000000F7FF489AEBDE8F887000000001110A8 -:101A40000010024000080140000C0140001001405D -:101A50000014014008000140080401400246936858 -:101A60000B400BB1012000E0002070470AB101617A -:101A700001E00B04036170470148006870470000F3 -:101A80000000002070B504460CB9012070BD94F828 -:101A90003D0028B9002084F83C00204600F046FBB9 -:101AA000242084F83D002068006820F001002168AF -:101AB00008602068006840F40040216808602068E1 -:101AC000006820F400402168086000F09FFD054692 -:101AD0005C496068884206D85B48854201D2012093 -:101AE00007E0002005E05948854201D2012000E0CE -:101AF0000020012800D1C9E75548B5FBF0F6206861 -:101B0000406820F03F003043216848604D496068DC -:101B1000884201D8701C07E04FF4967070434FF470 -:101B20007A71B0FBF1F0401C2168096A21F03F0195 -:101B300008432168086243496068884214D8681ED7 -:101B400061684900B0FBF1F0401CC0F30B000428B1 -:101B500001D204203DE0681E61684900B0FBF1F04D -:101B6000401CC0F30B0034E0A06838B9681E6168FF -:101B700001EB4101B0FBF1F0401C0AE0681E616816 -:101B800001EBC10202EB0111B0FBF1F0401C40F48B -:101B90008040C0F30B0008B901201AE0A06848B9E2 -:101BA000681E616801EB4101B0FBF1F0401CC0F31D -:101BB0000B000CE0681E616801EBC10202EB011131 -:101BC000B0FBF1F0401CC0F30B0040F4804040F447 -:101BD00000402168C9694CF6FF72914308432168AF -:101BE000C861D4E9070108432168096821F0C001F0 -:101BF000084321680860D4E9031008432168896814 -:101C000048F2FF329143084321688860D4E9050116 -:101C100008432168C96821F0FF0108432168C860B2 -:101C20002068006840F001002168086000202064FE -:101C3000202084F83D000020206384F83E0000BF8F -:101C400024E70000A086010080841E0000093D00FA -:101C500040420F002DE9FE4F04460F46904699463C -:101C6000DDE90CAB0E9E00200290FFF705FF054654 -:101C700094F83D00202872D119230122CE49204634 -:101C8000009501F01CFB10B10220BDE8FE8F00BFE3 -:101C900094F83C00012801D10220F6E7012084F8E5 -:101CA0003C0000BF2068006800F0010028B92068EF -:101CB000006840F00100216808602068006820F496 -:101CC000006021680860222084F83D00402084F8EC -:101CD0003E0000202064C4F824A0A4F82AB0608D3F -:101CE0002085B648E0624B46424639462046CDE95B -:101CF000006501F091F908B10120C6E7208D88B98F -:101D000000BF002001902068406901902068806930 -:101D1000019000BF00BF2068006840F40070216897 -:101D200008604BE0208D01281AD12068006820F45B -:101D300080602168086072B600BF002001902068B2 -:101D40004069019020688069019000BF00BF206851 -:101D5000006840F400702168086062B62EE029E156 -:101D6000208D022819D12068006840F400602168A5 -:101D7000086072B600BF00200190206840690190A1 -:101D800020688069019000BF00BF2068006820F4CF -:101D900080602168086062B610E02068006840F446 -:101DA00080602168086000BF0020019020684069C1 -:101DB000019020688069019000BF00BFEBE0208D9A -:101DC00003287DD8208D012815D12A46314620468A -:101DD00001F051FB08B1012057E720680069616AF2 -:101DE0000870606A401C6062208D401E2085608DF6 -:101DF000401E6085CFE0208D02282CD13346002282 -:101E00006F492046009501F05AFA08B101203CE7DD -:101E100072B62068006840F400702168086020688D -:101E20000069616A0870606A401C6062208D401E13 -:101E30002085608D401E608562B620680069616AF9 -:101E40000870606A401C6062208D401E2085608D95 -:101E5000401E60859FE03346002259492046009588 -:101E600001F02DFA08B101200FE72068006820F486 -:101E700080602168086072B620680069616A087035 -:101E8000606A401C6062208D401E2085608D401E6F -:101E900060854C4800681921B0FBF1F04FF47A716D -:101EA000B0FBF1F0C0EBC00000EB8000029000BF7F -:101EB0000298401E02900298A8B90020206300E01A -:101EC00039E0202084F83D00002084F83E00206C9A -:101ED00040F02000206462B600BF002084F83C007F -:101EE00000BF0120D1E620684069C0F380000028CF -:101EF000DED02068006840F4007021680860206827 -:101F00000069616A0870606A401C6062208D401E32 -:101F10002085608D401E608562B620680069616A18 -:101F20000870606A401C6062208D401E2085608DB4 -:101F3000401E60852FE02A463146204601F09BFA7C -:101F400008B10120A1E620680069616A0870606A32 -:101F5000401C6062208D401E2085608D401E608583 -:101F600020684069C0F38000A8B1208D032805D106 -:101F70002068006820F4806021680860206800699B -:101F8000616A0870606A401C6062208D401E208576 -:101F9000608D401E6085208D00287FF410AF2020CA -:101FA00084F83D00002084F83E0000BF84F83C0027 -:101FB00000BF6AE6022068E6020010000000FFFF92 -:101FC000040001000C0000202DE9FC5F04460F46D0 -:101FD00090469946DDE90CAB0E9EFFF74DFD054698 -:101FE00094F83D0020287DD1192301224D49204637 -:101FF000009501F064F910B10220BDE8FC9F00BF1C -:1020000094F83C00012801D10220F6E7012084F871 -:102010003C0000BF2068006800F0010028B920687B -:10202000006840F00100216808602068006820F422 -:10203000006021680860212084F83D00402084F879 -:102040003E0000202064C4F824A0A4F82AB0608DCB -:1020500020853548E0624B46424639462046CDE968 -:10206000006501F089F808B10120C6E731E02A4691 -:102070003146204601F044FA50B1206C042805D1C5 -:102080002068006840F40070216808600120B4E70F -:10209000606A007821680861606A401C6062208D77 -:1020A000401E2085608D401E608520684069C0F319 -:1020B000800070B1208D60B1606A0078216808618D -:1020C000606A401C6062208D401E2085608D401E2D -:1020D0006085208D0028CAD12A463146204601F06D -:1020E000BBF800E01CE050B1206C042805D120684A -:1020F000006840F400702168086001207DE72068D6 -:10210000006840F4007021680860202084F83D00D9 -:10211000002084F83E0000BF84F83C0000BF6CE75C -:1021200002206AE7020010000000FFFF10B586B031 -:102130000446002002900390049005901549206801 -:10214000884225D100BF1448806940F00800124938 -:1021500088610846806900F00800019000BF00BF58 -:10216000C0200290122003900320059002A90B4882 -:10217000FFF7E4FA00BF0848C06940F400100649C0 -:10218000C8610846C06900F40010019000BF00BF9C -:1021900006B010BD0054004000100240000C014089 -:1021A00003480068034909780844014908607047FA -:1021B000000000200800002010B50848006840F02A -:1021C000100006490860032000F0A8F8002000F085 -:1021D00007F800F02BF8002010BD0000002002409E -:1021E00070B504460E4800784FF47A71B1FBF0F0F8 -:1021F0000C490968B1FBF0F5284600F091FC08B1E4 -:10220000012070BD102C07D200222146501E00F084 -:1022100047F80548046001E00120F2E70020F0E7FC -:10222000080000200C0000200400002008B500BFBA -:102230001148806940F001000F49886108468069B3 -:1022400000F00100009000BF00BF00BF0846C06959 -:1022500040F08050C8610846C06900F0805000908E -:1022600000BF00BF00BF0549486820F0E06040F0B3 -:102270000070486000BF08BD00100240000001402F -:1022800001460846002809DB00F01F0301229A409E -:1022900043099B0003F1E023C3F8002100BF70470E -:1022A0002DE9F05F80460D461646002701F060FCE0 -:1022B000074639462A46334601F00700C0F1070AAF -:1022C000BAF1040F02D94FF0040A01E0C0F1070A85 -:1022D000D14600F1040ABAF1070F02D24FF0000A0A -:1022E00001E0A0F1030AD4464FF0010A0AFA09FA04 -:1022F000AAF1010A0AEA020A0AFA0CFA4FF0010BE3 -:102300000BFA0CFBABF1010B0BEA030B4AEA0B04D3 -:102310002146404601F034FCBDE8F09F00BF00F0CC -:102320000702064B19684FF6FF031940044B0B4395 -:1023300043EA0221014B196000BF70470CED00E039 -:102340000000FA05F8B5044600260025207800F0C4 -:10235000010000286BD000274348C06900F080507E -:1023600070B900BF4048C06940F080503E49C86124 -:102370000846C06900F08050009000BF00BF0127F0 -:102380003A48006800F48070B0B93848006840F4FA -:10239000807036490860FFF76FFB064606E0FFF7DE -:1023A0006BFB801B642801D90320F8BD2F4800680F -:1023B00000F480700028F2D02B48006A00F44075C9 -:1023C0002DB3A08800F44070A84220D02648006AAF -:1023D00020F440750120264908600020086022484A -:1023E000056205F0010090B1FFF746FB064608E0E4 -:1023F000FFF742FB801B41F28831884201D903205C -:10240000D3E71948006A00F002000028F0D016480F -:10241000006A20F440706168084313490862012F84 -:1024200004D10846C06920F08050C86100BF207800 -:1024300000F00200022807D10B48406820F4404019 -:10244000A168084308494860207800F0100010286F -:1024500007D10548406820F48000E168084302493C -:1024600048600020A1E7000000100240007000401A -:102470004004424270B504460D460CB9012070BDBF -:102480005A48006800F00700A8420ED2574800687A -:1024900020F007002843554908600846006800F00E -:1024A0000700A84201D00120E9E7207800F00200EF -:1024B00002281DD1207800F00400042805D14C48E2 -:1024C000406840F4E0604A494860207800F0080025 -:1024D000082805D14648406840F4605044494860A7 -:1024E0004348406820F0F000A16808434049486034 -:1024F000207800F0010078B36068012806D13C48DC -:10250000006800F4003090B90120B8E76068022844 -:1025100006D13748006800F0007040B90120AEE7EE -:102520003348006800F0020008B90120A7E73048EE -:10253000406820F00300616808432D494860FFF7B8 -:102540009BFA064609E0FFF797FA801B41F28831B3 -:10255000884202D9032092E707E02548406800F04E -:102560000C006168B0EB810FEDD12048006800F0ED -:102570000700A8420ED91D48006820F00700284334 -:102580001A4908600846006800F00700A84201D018 -:10259000012074E7207800F00400042807D11448D3 -:1025A000406820F4E060E168084311494860207801 -:1025B00000F00800082808D10D48406820F4605059 -:1025C000216940EAC1000A49486000F03FF8084923 -:1025D0004968C1F30311074A515CC84006490860C5 -:1025E00006480068FFF7FCFD002048E70020024095 -:1025F00000100240168400080C0000200400002097 -:1026000001480068704700000C00002000B5FFF78B -:10261000F7FF04494968C1F30221034A515CC840ED -:1026200000BD0000001002402684000800B5FFF73E -:10263000E7FF04494968C1F3C221034A515CC8401D -:1026400000BD0000001002402684000870B5002183 -:102650000022002400230020134D696801F00C05BE -:10266000F5B1042D02D0082D19D101E00F4819E071 -:102670000F4DC1F38346AB5D01F4803555B10A4D72 -:102680006D68C5F340450B4E725D084D5D43B5FB6B -:10269000F2F402E0084D03FB05F4204602E000BF1F -:1026A000024800BF00BF70BD0010024000127A0057 -:1026B000048400081484000800093D00F8B50446AD -:1026C0000CB90120F8BD207800F00100002878D076 -:1026D000F848406800F00C0004280CD0F548406829 -:1026E00000F00C00082811D1F248406800F4803056 -:1026F000B0F5803F0AD1EF48006800F400300028B0 -:102700005FD0606800285CD10120DBE700BF606813 -:10271000B0F5803F06D1E748006840F48030E549D5 -:10272000086028E0606858B9E248006820F480300A -:10273000E04908600846006820F4802008601AE03C -:102740006068B0F5A02F0BD1DA48006840F4802013 -:10275000D84908600846006840F4803008600AE004 -:10276000D448006820F48030D249086008460068E8 -:1027700020F48020086000BF606888B1FFF77CF912 -:10278000054606E0FFF778F9401B642801D90320CD -:1027900098E7C848006800F400300028F2D010E044 -:1027A000FFF76AF9054606E0FFF766F9401B642863 -:1027B00001D9032086E7BF48006800F400300028F4 -:1027C000F2D1207800F00200022857D1B9484068C1 -:1027D00000F00C0050B1B748406800F00C00082829 -:1027E00018D1B448406800F4803098B9B148006806 -:1027F00000F0020020B12069012801D0012061E72A -:10280000AC48006820F0F800616940EAC100A949BD -:10281000086033E02069E8B10120A7490860FFF7AC -:102820002BF9054606E0FFF727F9401B022801D9DE -:10283000032047E79F48006800F002000028F2D01C -:102840009C48006820F0F800616940EAC10099499D -:10285000086013E0002098490860FFF70DF905466D -:1028600006E0FFF709F9401B022801D9032029E7F8 -:102870009048006800F002000028F2D1207800F0B3 -:10288000080008282DD1A069B8B101208B49086043 -:10289000FFF7F2F8054606E0FFF7EEF8401B0228C6 -:1028A00001D903200EE78348406A00F002000028A7 -:1028B000F2D0012000F062FF13E000207F490860A1 -:1028C000FFF7DAF8054606E0FFF7D6F8401B0228C6 -:1028D00001D90320F6E67748406A00F0020000289C -:1028E000F2D1207800F00400042873D10027714849 -:1028F000C06900F0805070B900BF6E48C06940F0F8 -:1029000080506C49C8610846C06900F08050009052 -:1029100000BF00BF01276A48006800F48070B0B9AA -:102920006748006840F4807065490860FFF7A4F8C4 -:10293000054606E0FFF7A0F8401B642801D90320F4 -:10294000C0E65F48006800F480700028F2D000BF45 -:10295000E068012806D15748006A40F00100554957 -:10296000086227E0E06858B95248006A20F0010088 -:10297000504908620846006A20F00400086219E025 -:10298000E06805280BD14B48006A40F00400494933 -:1029900008620846006A40F0010008620AE0454803 -:1029A000006A20F00100434908620846006A20F0EE -:1029B0000400086200BFE068A0B1FFF75DF80546BB -:1029C00009E0FFF759F8401B41F28831884202D9EB -:1029D000032077E622E03748006A00F00200002872 -:1029E000EFD012E0FFF748F8054608E0FFF744F89B -:1029F000401B41F28831884201D9032062E62D480C -:102A0000006A00F002000028F0D1012F05D129480A -:102A1000C06920F080502749C86100BFE069C8B391 -:102A20002448406800F00C00082860D0E0690228C3 -:102A300048D1002020490866FFF71EF8054606E049 -:102A4000FFF71AF8401B022801D903203AE619487B -:102A5000006800F000700028F2D1206AB0F5803FD5 -:102A600007D11448406820F40030A1680843114998 -:102A70004860D4E9080108430E49496821F47411FB -:102A800008430C49486001200B490866FEF7F4FF33 -:102A9000054607E03DE0FEF7EFFF401B022801D9A5 -:102AA00003200FE60348006800F000700028F2D011 -:102AB0002FE0000000100240000042428004424229 -:102AC00000700040002014490866FEF7D5FF054657 -:102AD00006E0FEF7D1FF401B022801D90320F1E5F3 -:102AE0000E48006800F000700028F2D111E0E069A3 -:102AF000012800D1E6E50948466806F48031206ADD -:102B0000814204D106F47011606A814201D0012033 -:102B1000D8E50020D6E50000000042420010024047 -:102B200070B504462546681EB0F1807F01D30120B0 -:102B30000FE0681E4FF0E02148610F214FF0FF3099 -:102B400001F01EF800204FF0E021886107200861A5 -:102B5000002070BD30B502460B4600BF92F83C0025 -:102B6000012801D1022030BD012082F83C0000BFC5 -:102B7000022082F83D00106844681068816824F0E3 -:102B800070041868044310684460104D1068A8422F -:102B90000BD01068B0F1804F07D00D4D1068A842DF -:102BA00003D00C4D1068A84205D121F0800158686F -:102BB000014310688160012082F83D0000BF0020C1 -:102BC00082F83C0000BF00BFCDE70000002C0140B0 -:102BD000000400400008004010B504460CB9012074 -:102BE00010BD94F83D0028B9002084F83C00204630 -:102BF00000F026F8022084F83D00211D206800F036 -:102C000019FE012084F8460000BF84F83E0001212F -:102C10003F200155402001554120015500BF00BF14 -:102C2000012084F8420043200155442001554520ED -:102C3000015500BF012084F83D000020D0E70000CE -:102C400008B5094A016891420DD100BF0749896959 -:102C500041F40061054A91611146896901F40061FE -:102C6000009100BF00BF08BD002C014000100240D1 -:102C7000014691F83D00012801D001207047022053 -:102C800081F83D00124B086898420BD00868B0F1FB -:102C9000804F07D00F4B0868984203D00E4B08684E -:102CA00098420CD10868806800F00702062A0CD010 -:102CB0000868006840F001000B68186005E00868CB -:102CC000006840F001000B6818600020D6E70000A3 -:102CD000002C01400004004000080040014600BFF5 -:102CE0000868006A41F21112104050B90868006A81 -:102CF0009210104028B90868006820F001000A68A6 -:102D0000106000BF012081F83D00002070472DE9D0 -:102D1000F04104460D46002700BF94F83C0001280E -:102D200002D10220BDE8F081012084F83C0000BF00 -:102D3000022084F83D002068866826F0770626F495 -:102D40007F46206886602868502833D00CDC202815 -:102D500050D004DC00284BD0102851D149E0302855 -:102D600049D040284CD139E060282DD0702807D0B8 -:102D7000B0F5805F03D0B0F5005F41D10DE041E0D8 -:102D8000D5E902136A68206800F096FD206886681D -:102D900046F077062068866034E0D5E902136A6859 -:102DA000206800F089FD2068806840F48040216838 -:102DB000886027E0EA686968206800F091FD50218A -:102DC000206800F084FD1DE0EA686968206800F072 -:102DD0009AFD6021206800F07AFD13E0EA686968D6 -:102DE000206800F07DFD4021206800F070FD09E0C2 -:102DF00000BF00BF00BF2968206800F068FD01E047 -:102E0000012700BF00BF012084F83D0000BF002063 -:102E100084F83C0000BF384684E710B504460CB97E -:102E2000012010BDA06900B100E000BF94F841008E -:102E300028B9002084F84000204600F029F824201A -:102E400084F841002068C06820F400502168C86000 -:102E5000204600F0A3FD2068006920F4904021681E -:102E600008612068406920F02A00216848612068D4 -:102E7000C06840F400502168C860002060642020D1 -:102E800084F8410084F842000020606300BFC8E776 -:102E900010B586B00446002002900390049005907F -:102EA0001A49206888422ED100BF1948806940F431 -:102EB0008040174988610846806900F4804001908D -:102EC00000BF00BF00BF0846806940F00400886171 -:102ED0000846806900F00400019000BF00BF48155B -:102EE0000290022003900320059002A90948FEF7F2 -:102EF00025FC4FF48060029000200390049002A90A -:102F00000448FEF71BFC06B010BD0000003801406D -:102F100000100240000801402DE9F84F04460E461B -:102F2000174699464FF0000A94F84100202850D1E6 -:102F300006B117B90120BDE8F88F00206064212098 -:102F400084F84100FEF798FD8246A784E784A068D4 -:102F5000B0F5805F04D1206910B90025B04602E0C9 -:102F600035464FF000081EE05346002280212046DF -:102F7000CDF8009000F090FD20B1202084F84100B1 -:102F80000320D8E745B9B8F80000C0F3080021686D -:102F9000486008F1020803E02878216848606D1C49 -:102FA000E08C401EE084E08C0028DDD153460022F6 -:102FB00040212046CDF8009000F06EFD20B1202089 -:102FC00084F841000320B6E7202084F84100002067 -:102FD000B1E70220AFE700BFFEE70146086840699D -:102FE000C0F38020B0B16FF480600A6850610020A7 -:102FF0000863202081F83D00002081F83E00086C25 -:1030000040F00400086400BF002081F83C0000BFCD -:10301000012070470020FCE72DE9F84304460F46E5 -:1030200015469946DDE908862068006840F480600E -:10303000216808602068006840F48070216808609A -:10304000434600224FF001112046009600F037F968 -:1030500060B12068006800F48070B0F5807F02D114 -:103060004FF4007020640320BDE8F88307F0FE00F1 -:1030700021680861334642463E49204600F07EF909 -:1030800008B10120F0E700BF0020009020684069EF -:10309000009020688069009000BF00BF3246414622 -:1030A000204600F02DFA50B1206C042805D120688C -:1030B000006840F40070216808600120D4E7B9F18D -:1030C000010F03D1E8B22168086117E0C5F30720BA -:1030D0002168086132464146204600F011FA50B19D -:1030E000206C042805D12068006840F40070216835 -:1030F00008600120B8E7E8B221680861324641461D -:10310000204600F0FDF950B1206C042805D120685C -:10311000006840F40070216808600120A4E720687E -:10312000006840F4807021680860434600224FF038 -:1031300001112046009600F0C2F858B120680068DE -:1031400000F48070B0F5807F02D14FF400702064ED -:10315000032089E7F8B240F0010021680861334696 -:1031600042460449204600F009F908B101207BE7F6 -:10317000002079E7020001002DE9F8430446884663 -:1031800015469946DDE908672068006840F48070BC -:1031900021680860334600224FF001112046009755 -:1031A00000F08DF860B12068006800F48070B0F520 -:1031B000807F02D14FF4007020640320BDE8F883C3 -:1031C00008F0FE00216808613B463246214920464E -:1031D00000F0D4F808B10120F0E700BF0020009013 -:1031E00020684069009020688069009000BF00BF9F -:1031F0003A463146204600F083F950B1206C04284D -:1032000005D12068006840F4007021680860012042 -:10321000D4E7B9F1010F03D1E8B22168086117E0E2 -:10322000C5F30720216808613A463146204600F080 -:1032300067F950B1206C042805D12068006840F47B -:103240000070216808600120B8E7E8B221680861D1 -:103250000020B3E70200010070B504460D46164693 -:1032600025E02046FFF7B9FE08B1012070BD681CBB -:10327000E8B1FEF701FC801BA84200D8BDB9206868 -:103280004069C0F3800090B900202063202084F8BA +:10012000C7350008ED0000082DE9F05F0546002006 +:1001300092469B4688460646814640241BE0284658 +:1001400041464746224600F051F853465A46C01AE7 +:10015000914110D311461846224600F043FB2D1A58 +:1001600067EB01084F4622460120002100F03AFBD0 +:1001700017EB00094E41201EA4F10104DFDC4846C4 +:1001800031462A464346BDE8F09F2DE9F041002460 +:10019000061B254671F1000605DA01240027D0EB85 +:1001A000070067EB0101161E73F1000605DA002750 +:1001B000D2EB0702012567EB0303FFF7B5FF864685 +:1001C0000E4617469C46AC4204D00025D0EB050EE7 +:1001D00065EB010624B10020D2EB000760EB030CB5 +:1001E000704631463A466346BDE8F081202A04DB7A +:1001F000203A21FA02F00021704721FA02F3D040A0 +:10020000C2F120029140084319467047D2B201E082 +:1002100000F8012B491EFBD270470022F6E710B50B +:1002200013460A4604461946FFF7F0FF204610BD64 +:1002300030B504460020034600E05B1C934203D225 +:10024000E05CCD5C401BF8D030BDF0B480EA010228 +:10025000D40F4200B2EB410F02D2024608461146CB +:100260004A0042D0C30DDDB2C1F3C752AD1A202DF2 +:1002700035DAC1F3160141F4000204B15242C5F16E +:10028000200602FA06F12A411044B3EBD05F23D0D6 +:10029000C4B1012DA0EBC35009DCF0BC4FF000420B +:1002A00002EAC352DBB200F5000000F0C5BA40001C +:1002B00000F1807000EBC350A0F1807040EAD17073 +:1002C000490009E0490841EAC071A0EBC35000F5BC +:1002D0000000400800EBC350F0BC00F0A4BA61423B +:1002E000012202EB4101001BF6E7F0BC704781F0F0 +:1002F0000041AAE780F00040A7E780EA010210B5BC +:1003000002F00043400022D04A001FD0010E01EB52 +:100310001261C0F35600C2F3560240F4000042F4EA +:100320000002A0FB022000047F39140400D0401C0E +:1003300050EA124001D44000491EC2B20C0604EB40 +:10034000D010401C4008802A02D003E0002010BDDD +:1003500020F00100002900DA0020184310BD30B45D +:1003600080EA010202F0004530F0004221F0004036 +:1003700013D090B1C30DD40DC2F31601C0F3160013 +:10038000E41A41F4000140F400027D34914201D3AB +:10039000641C00E04900002C02DA30BC00207047E9 +:1003A0004FF400000023914201D3891A034340080F +:1003B0004FEA4101F7D151B1914202D14FF00041D2 +:1003C00005E002D24FF0010101E06FF0010103EB03 +:1003D000C450284430BC00F026BA2DE9FE4F8046B8 +:1003E00081EA0300C00F0C46009021F0004123F089 +:1003F0000045B8EB0200A94105D24046214690468F +:100400001C460B46024623F00040104347D0270D00 +:10041000C7F30A00C3F30A510290401A0190402822 +:100420006BDAC3F3130040F4801B0098924620B1AE +:100430000023D2EB030A63EB0B0B01985946C0F182 +:100440004002504600F0CEF906460D465046594649 +:10045000019A00F0D6F910EB08006141002487EA08 +:10046000115284EAE7731A4340D0009A62B3019AAA +:10047000012A4FEA075215DC001B61EB02014FF025 +:10048000004202EA0752CDE90042001C41F580110A +:1004900032462B4600F00DFA03B0BDE8F08F40461F +:1004A0002146F9E7001B61EB0201001C41F58013B6 +:1004B00000185B412018A2F5001747EB030140EA42 +:1004C000D570B6196D4111E06D084FEA360645EA60 +:1004D000C0754FEA0752001B61EB0201001C41F599 +:1004E000801149084FEA30000019514132462B462D +:1004F00003B0BDE8F04F00F0CDB9009801224000F4 +:100500000023D0EB020263EBE073009821464FEA30 +:10051000E074B8EB000061EB0401E9E783F000430D +:100520005BE781F0004158E72DE9FE4F81EA0304C3 +:1005300004F0004421F0004100944FF0000B23F040 +:10054000004350EA01045ED052EA03045BD0C3F3D7 +:100550000A54C1F30A552C44A4F2F3340194A0FBCD +:100560000254C1F3130141F48011C3F3130343F4A4 +:10057000801301FB024400FB034E840A970A44EAFD +:10058000815447EA8357A4FB076802958D0A05FB4F +:1005900007854FEA932C04FB0C542705029D4FEA74 +:1005A000065847EA1637B5EB08056EEB070C870EC1 +:1005B000920E47EA811742EA8312A7FB0201B6EBCB +:1005C0000B0164EB00042B0D43EA0C335E1844EB83 +:1005D0001C50DA465146E7FB0201C5F313044FEA0B +:1005E0000B3343EA14534FEA0432019C43EA0603F7 +:1005F000A4F10C040294009CCDE900B400F059F978 +:1006000003B0BDE8F08F00200146F9E72DE9F04D79 +:1006100081EA030404F0004B21F0004514464FF03A +:10062000000A23F0004150EA050220D054EA0102FA +:100630001DD0C5F30A570246C5F31303C1F31300D7 +:10064000C1F30A5640F4801543F48013A7EB060863 +:10065000101BD64608F2FD3873EB050002D308F1F3 +:10066000010801E092185B41B8F1000F03DA0020A5 +:100670000146BDE8F08D00204FF480110646844607 +:100680000EE0171B73EB050705D3121B63EB050385 +:1006900006434CEA010C49084FEA300092185B41CE +:1006A00050EA0107EDD152EA030012D082EA0400B9 +:1006B00083EA0501084305D0101BAB4106D2012295 +:1006C000002306E000224FF0004302E06FF0010239 +:1006D00053101AEB06004CEB085110EB0A0041EBEB +:1006E0000B01BDE8F04D00F0D5B8C10F80EAE07015 +:1006F0000844CA079623002100F09EB896230022E2 +:10070000114600F099B800F0004220F00040C10D01 +:10071000C0F3160040F400007F2901DA0020704782 +:10072000962903DCC1F19601C84001E09639884062 +:10073000002AF4D04042704720F00040C10DC0F3C1 +:10074000160040F400007F2901DA00207047962946 +:1007500003DCC1F19601C840704796398840704764 +:1007600030B5041E71F1000404DB4FF00044404238 +:1007700064EB0101141E73F1000405DB1C464FF00D +:100780000043524263EB0403994208BF904230BDDC +:10079000002801DBC0F10040002901DBC1F100416C +:1007A00081427047002801DBC0F10040002901DBD5 +:1007B000C1F100418842704730B50B460146002028 +:1007C0002022012409E021FA02F59D4205D303FA13 +:1007D00002F5491B04FA02F52844151EA2F1010294 +:1007E000F1DC30BD202A04DB203A00FA02F10020BF +:1007F00070479140C2F1200320FA03F3194390405F +:100800007047202A06DBCB17203A41FA02F043EA70 +:10081000E07306E041FA02F3D040C2F120029140B9 +:100820000843194670470029A8BF7047401C49007B +:1008300008BF20F00100704710B4B0FA80FC00FA45 +:100840000CF050EA010404BF10BC704749B1CCF170 +:10085000200421FA04F411FA0CF118BF01212143FC +:100860000843A3EB0C01CB1D4FEA00614FEA1020B7 +:1008700042BF002010BC704700EBC3501044002959 +:10088000A4BF10BC7047401C490008BF20F0010005 +:1008900010BC704710B5141E73F1000408DA401C38 +:1008A00041F1000192185B411A4301D120F001008F +:1008B00010BD2DE9F04D92469B4611B1B1FA81F27F +:1008C00002E0B0FA80F220329046FFF78BFF044638 +:1008D0000F4640EA0A0041EA0B0153465A460843D4 +:1008E00013D0114653EA010019D0C8F14002504616 +:1008F000FFF77CFC05460E46504659464246FFF738 +:1009000071FF084305D0012004E020463946BDE8C8 +:10091000F08D0020054346EAE0762C4337430A98E1 +:100920006305E40AA0EB08000022FD0A44EA4754EC +:100930000A3002D500200146E9E701051019694196 +:10094000DDE9084500196941BDE8F04DA2E7C1F3B2 +:100950000A52C1F3130140F2FF3341F480119A426D +:1009600002DA00200146704740F233439A42A2F275 +:10097000334202DC5242FFF739BCFFF733BF0000BD +:10098000064C074D06E0E06840F0010394E80700DC +:1009900098471034AC42F6D3FFF7ACFB447E000816 +:1009A000647E000870B5044600252068806800F069 +:1009B000010018B32068806820F001002168886079 +:1009C00000F0D8FE054613E000F0D4FE401B0228DC +:1009D0000ED92068806800F0010048B1A06A40F09C +:1009E0001000A062E06A40F00100E062012070BDEA +:1009F0002068806800F001000028E5D10020F6E7BB +:100A000070B505466C6AA06A00F05000E0B9A06AB3 +:100A100040F40070A0622068806800F46020B0F5A7 +:100A2000602F0DD1207B58B9A06A20F48070A0629D +:100A3000A06A00F4805018B9A06A40F00100A062DA +:100A4000204600F0D7F903E0206A016B284688476A +:100A500070BD70B505466C6AA06A40F04000A062A7 +:100A6000E06A40F00400E062204600F0C5F970BD85 +:100A700070B50446656A284600F0BDF970BD0000F7 +:100A800038B504460025002000902068806800F0FA +:100A9000010078BB2068806840F001002168886010 +:100AA000194800681949B0FBF1F0009002E0009885 +:100AB000401E009000980028F9D100F05BFE05462A +:100AC00019E000F057FE401B022814D92068806806 +:100AD00000F0010078B9A06A40F01000A062E06A5E +:100AE00040F00100E06200BF002084F8240000BF55 +:100AF000012038BD05E02068806800F00100002872 +:100B0000DFD00020F5E700000C00002040420F007D +:100B100000BFFEE71FB500200090019002900390F7 +:100B20004FF48070009000200190012002906946EF +:100B3000014800F081FC1FBD000801401FB50020E6 +:100B400000900190029003904FF48070009001207B +:100B5000019000200290032003906946014800F0B4 +:100B60006BFC1FBD0008014038B500BF27488069F5 +:100B700040F00400254988610846806900F00400BF +:100B8000009000BF00BFFFF7D9FF012211022048EB +:100B900000F0EAFD00224FF480711D4800F0E4FDF2 +:100BA000142000F035FC01221102194800F0DCFD90 +:100BB0001E2000F04FF8FFF7ADFF002404E0601C9A +:100BC000C4B2012000F046F84FF48071104800F0E4 +:100BD000C3FD08B1642CF2DB642C01DB012038BDBD +:100BE000002404E0601CC4B2012000F033F84FF48C +:100BF0008071074800F0B0FD08B9642CF2DB642C6A +:100C000001DB0120EBE70020E9E7000000100240D3 +:100C10000008014010B5024800F0AAFA10BD00001B +:100C2000E000002030B590F840500124AC40C56B86 +:100C30006C60046863604468102C04D10468A2608E +:100C40000468E16003E00468A1600468E26030BD0C +:100C50007047000070B504464FF6FF70001B401F40 +:100C600085B2094800684562074801F0ADFE03E01F +:100C700005480068406A85B24FF6FA708542F7DB96 +:100C8000014801F0D7FE70BDCC01002072B600BF54 +:100C9000FEE7000038B5024600230020009000BFA8 +:100CA00092F82400012801D1022038BD012082F8E9 +:100CB000240000BF4868072812D21068406B0C79E6 +:100CC000641E04EB84051F24AC40A0430D796D1E07 +:100CD00005EB85050C68AC4020431468606327E091 +:100CE00048680D2812D21068006B0C79E41F04EBE1 +:100CF00084051F24AC40A0430D79ED1F05EB85054D +:100D00000C68AC4020431468206311E01068C06A8E +:100D10000C790D3C04EB84051F24AC40A0430D79F5 +:100D20000D3D05EB85050C68AC4020431468E0627E +:100D300008680A2812D31068C0680C780A3C04EBD3 +:100D400044050724AC40A0430D780A3D05EB45055A +:100D50008C68AC4020431468E0600FE010680069C4 +:100D60000C7804EB44050724AC40A0430D7805EB58 +:100D700045058C68AC402043146820610868102841 +:100D800002D00868112827D1174C1068A0421ED144 +:100D90001068806800F40000F0B91068806840F4C2 +:100DA00000001468A0600868102815D10F4800687A +:100DB0000F4CB0FBF4F000EB80004000009002E02C +:100DC0000098401E009000980028F9D104E0906A35 +:100DD00040F020009062012300BF002082F8240030 +:100DE00000BF184661E70000002401400C0000200D +:100DF00040420F0070477047704700002DE9F041F6 +:100E00000446002700250026A84614B90120BDE8A5 +:100E1000F081A06810B1207D00B100BFA06A30B998 +:100E20000020E06284F82400204600F089F8204683 +:100E3000FFF7B8FD0746A06A00F01000002873D144 +:100E4000002F71D1A06A20F4885040F00200A06207 +:100E5000E16960680843217B40EA41000643A068DD +:100E6000B0F5807F02D0A068012802D14FF48070D5 +:100E700000E000200543207D012811D1207B38B9F6 +:100E8000A069401E4FF4006141EA4030054307E08D +:100E9000A06A40F02000A062E06A40F00100E06239 +:100EA0002068406820F46940284321684860206831 +:100EB000806821490840304321688860A068B0F507 +:100EC000807F02D0A068012802D14FF4807000E03A +:100ED0000020B0F5807F03D1208A401E4FEA0058E1 +:100EE0002068C06A20F4700040EA08002168C862E7 +:100EF0002068806811490840B04208D10020E062B3 +:100F0000A06A20F0020040F00100A06211E0A06A97 +:100F100020F0020040F01000A062E06A40F0010002 +:100F2000E062012705E0FFE7A06A40F01000A06240 +:100F3000012738466BE70000FDF7E1FFFE0E1FFFBB +:100F400010B586B0044600200290039004900590EE +:100F50002249206888423ED100BF2148806940F480 +:100F600000701F4988610846806900F40070019094 +:100F700000BF00BF00BF0846806940F004008861E0 +:100F80000846806900F00400019000BF00BF012006 +:100F900002900320039002A9124800F04DFA124873 +:100FA00012490860002048600021104881608021BB +:100FB000C1608900016189004161202181610902CC +:100FC000C16100F0A3F908B1FFF760FE00BF074858 +:100FD0002062446200BF06B010BD00000024014042 +:100FE000001002400008014008000240E00000201C +:100FF0002DE9F04104460D46164600275749206862 +:10100000884203D056492068884205D15348001DC4 +:10101000006800F4702000E0002000287ED100BFAE +:1010200094F82400012802D10220BDE8F0810120BB +:1010300084F8240000BF2046FFF722FD0746002F5A +:101040006DD1A06A40F60161884340F48070A062CF +:1010500043492068884209D14048001D006800F4D7 +:10106000702008B9012002E0002000E0012078B1E2 +:10107000A06A20F48010A0622068406800F48060BC +:1010800000B3A06A20F4005040F48050A06219E040 +:10109000A06A40F48010A06230492068884203D0E2 +:1010A0002F492068884205D12C48001D006800F4B3 +:1010B000806000E0002028B1A06A20F4005040F4D5 +:1010C0008050A062A06A00F4805020B1E06A20F055 +:1010D0000600E06201E00020E06200BF002084F82A +:1010E000240000BF1F48216A88621F48216AC86225 +:1010F0001E48216A08636FF00200216808602068BA +:10110000806840F4807021688860226802F14C0198 +:1011100033462A46206A00F02DF901E01AE014E077 +:101120002068806800F46020B0F5602F06D1206848 +:10113000806840F4A000216888600CE02068806826 +:1011400040F480102168886005E000BF002084F82A +:10115000240000E00127384667E700000024014032 +:1011600000280140010A0008710A0008530A00081B +:1011700070B50446E06B05682068066894F8401076 +:10118000042088402840002846D006F004000028AB +:1011900042D02068006800F0200028B9206800686C +:1011A00020F004002168086057492068884201D176 +:1011B000042027E0544914312068884201D140209E +:1011C00020E0514928312068884201D1001519E0FA +:1011D0004D493C312068884202D14FF4804011E0F3 +:1011E000494950312068884202D14FF4802009E0FB +:1011F000454964312068884202D14FF4800001E003 +:101200004FF08060404908394860E06A00287AD091 +:101210002046E16A884776E094F840100220884032 +:101220002840A0B306F0020088B32068006800F0F0 +:10123000200040B92068006820F00A00216808609A +:10124000012084F8210030492068884201D1022021 +:1012500028E02D4914312068884201D1202021E066 +:10126000294928312068884201D140151AE02649D1 +:101270003C312068884202D14FF4005012E02249EC +:1012800050312068884203D14FF400300AE017E063 +:101290001D4964312068884202D14FF4001001E0FA +:1012A0004FF0007018490839486000BF002084F8EA +:1012B000200000BFA06A30B32046A16A884722E020 +:1012C00094F84010082088402840E0B106F008005B +:1012D000C8B12068006820F00E002168086094F80A +:1012E000401001208840E16B48600120A06384F831 +:1012F000210000BF002084F8200000BF206B10B147 +:101300002046216B884770BD08000240014600223C +:1013100009B901207047164B0868C01A1423B0FBA6 +:10132000F3F08000086412480838C863022081F88E +:1013300021000868026843F6F0708243D1E9010396 +:101340001843CB6818430B6918434B6918438B69E2 +:101350001843CB6918430243086802600020886381 +:10136000012081F82100002081F8200000BFD1E792 +:10137000080002402DE9F04104460D4616461F467E +:101380004FF0000800BF94F82000012802D102208D +:10139000BDE8F081012084F8200000BF94F821000E +:1013A00001282CD1022084F821000020A0632068AD +:1013B000006820F00100216808603B46324629465B +:1013C0002046FFF72FFCE06A30B12068006840F04B +:1013D0000E00216808600BE02068006820F004001F +:1013E000216808602068006840F00A0021680860F1 +:1013F0002068006840F001002168086006E000BF36 +:10140000002084F8200000BF4FF002084046BFE7EC +:1014100070B5044600F0AEF906462546681C10B1CA +:1014200004480078054400BF00F0A4F9801BA842DE +:10143000FAD370BD080000202DE9F84703460022CA +:1014400094466EE14FF0010808FA02F4D1F80080EA +:1014500008EA0400A0427DD1DFF8DCA2D1F80480C4 +:10146000A8EB0A09D0453AD014DCB8F1030F50D0EC +:1014700009DCB8F1000F31D0B8F1010F1CD0B8F180 +:10148000020F49D120E0B8F1110F18D0B8F1120FB6 +:1014900042D11EE0B9F5881F25D006DCB9F5803FA2 +:1014A00020D0B9F5801F37D11AE0B9F5001F18D048 +:1014B000B9F5041F30D117E0D1F80CC02DE0D1F8F8 +:1014C0000C8008F1040C28E0D1F80C8008F1080C1D +:1014D00023E0D1F80C8008F10C0C1EE000BF00BF27 +:1014E00000BF00BF00BF00BFD1F80880B8F1000FF7 +:1014F00002D14FF0040C0BE0D1F80880B8F1010FD5 +:1015000003D14FF0080C1C6102E04FF0080C5C6145 +:1015100003E04FF0000C00E000BF00BFFF2801D83F +:10152000984601E003F104084646FF2802D84FEA36 +:10153000820803E0A2F108084FEA88084746D6F877 +:1015400000804FF00F0909FA07F928EA09080CFA98 +:1015500007F900E088E048EA0908C6F80080D1F8F9 +:10156000048008F08058B8F1805F7DD100BFDFF8BB +:10157000CC81D8F8188048F00108DFF8C091C9F88C +:101580001880C846D8F8188008F00108CDF8008007 +:1015900000BF00BF4FEAB9384FEA920958F8295006 +:1015A0004FEA82784FEA18794FF00F0808FA09F8E5 +:1015B00025EA0805DFF88881434502D14FF000088D +:1015C00016E0DFF88081434502D14FF001080FE0BB +:1015D000DFF87481434502D14FF0020808E0DFF8DC +:1015E0006C81434502D14FF0030801E04FF004083D +:1015F0004FEA82794FEA197908FA09F848EA0505AD +:10160000DFF84C814FEA920948F82950D1F804805C +:1016100008F48018B8F5801F0AD1DFF83881D8F8AF +:10162000008048EA0008DFF82C91C9F8008009E042 +:10163000DFF82081D8F8008028EA0008DFF814914C +:10164000C9F80080D1F8048008F40018B8F5001F2C +:1016500010D1DFF8008108F10408D8F8008048EACA +:101660000008DFF8F09000E05AE009F10409C9F839 +:1016700000800DE0DFF8DC8008F10408D8F8008075 +:1016800028EA0008DFF8CC9009F10409C9F80080C5 +:10169000D1F8048008F40038B8F5003F0ED1DFF827 +:1016A000B480A8F10408D8F8008048EA0008DFF800 +:1016B000A490A9F10409C9F800800DE0DFF8948036 +:1016C000A8F10408D8F8008028EA0008DFF8849020 +:1016D000A9F10409C9F80080D1F8048008F4803821 +:1016E000B8F5803F0ED1DFF86C80A8F10808D8F873 +:1016F000008048EA0008DFF85C90A9F10809C9F801 +:1017000000800DE0DFF84C80A8F10808D8F80080D0 +:1017100028EA0008DFF83C90A9F10809C9F8008020 +:10172000521CD1F8008028FA02F8B8F1000F7FF4BB +:1017300089AEBDE8F88700000000111000100240DB +:1017400000080140000C014000100140001401405D +:101750000800014008040140024693680B400BB1A9 +:10176000012000E0002070470AB1016101E00B0494 +:1017700003617047014800687047000000000020C6 +:1017800070B504460CB9012070BD94F83D0028B92D +:10179000002084F83C00204600F046FB242084F81A +:1017A0003D002068006820F0010021680860206882 +:1017B000006840F40040216808602068006820F458 +:1017C00000402168086000F0CDFD05465C49606876 +:1017D000884206D85B48854201D2012007E00020FC +:1017E00005E05948854201D2012000E0002001288F +:1017F00000D1C9E75548B5FBF0F62068406820F0F5 +:101800003F003043216848604D496068884201D8F4 +:10181000701C07E04FF4967070434FF47A71B0FB80 +:10182000F1F0401C2168096A21F03F01084321685A +:10183000086243496068884214D8681E616849009C +:10184000B0FBF1F0401CC0F30B00042801D20420CF +:101850003DE0681E61684900B0FBF1F0401CC0F338 +:101860000B0034E0A06838B9681E616801EB4101E3 +:10187000B0FBF1F0401C0AE0681E616801EBC10298 +:1018800002EB0111B0FBF1F0401C40F48040C0F3CA +:101890000B0008B901201AE0A06848B9681E616809 +:1018A00001EB4101B0FBF1F0401CC0F30B000CE078 +:1018B000681E616801EBC10202EB0111B0FBF1F09F +:1018C000401CC0F30B0040F4804040F4004021680D +:1018D000C9694CF6FF72914308432168C861D4E995 +:1018E000070108432168096821F0C0010843216805 +:1018F0000860D4E9031008432168896848F2FF3280 +:101900009143084321688860D4E9050108432168B0 +:10191000C96821F0FF0108432168C8602068006899 +:1019200040F001002168086000202064202084F835 +:101930003D000020206384F83E0000BF24E7000043 +:10194000A086010080841E0000093D0040420F0077 +:101950002DE9FE4F04460F4690469946DDE90CAB53 +:101960000E9E00200290FFF705FF054694F83D000B +:10197000202872D119230122CE492046009501F07A +:101980004AFB10B10220BDE8FE8F00BF94F83C0076 +:10199000012801D10220F6E7012084F83C0000BFB5 +:1019A0002068006800F0010028B92068006840F055 +:1019B0000100216808602068006820F40060216848 +:1019C0000860222084F83D00402084F83E0000207A +:1019D0002064C4F824A0A4F82AB0608D2085B648FD +:1019E000E0624B46424639462046CDE9006501F0AB +:1019F000BFF908B10120C6E7208D88B900BF0020DB +:101A0000019020684069019020688069019000BFC2 +:101A100000BF2068006840F40070216808604BE057 +:101A2000208D01281AD12068006820F48060216888 +:101A3000086072B600BF00200190206840690190E4 +:101A400020688069019000BF00BF2068006840F4F2 +:101A500000702168086062B62EE029E1208D02281E +:101A600019D12068006840F400602168086072B6EF +:101A700000BF0020019020684069019020688069C3 +:101A8000019000BF00BF2068006820F480602168DA +:101A9000086062B610E02068006840F48060216849 +:101AA000086000BF00200190206840690190206814 +:101AB0008069019000BF00BFEBE0208D03287DD836 +:101AC000208D012815D12A463146204601F07FFBA2 +:101AD00008B1012057E720680069616A0870606AF0 +:101AE000401C6062208D401E2085608D401E6085F8 +:101AF000CFE0208D02282CD1334600226F492046AA +:101B0000009501F088FA08B101203CE772B6206820 +:101B1000006840F400702168086020680069616A0C +:101B20000870606A401C6062208D401E2085608DB8 +:101B3000401E608562B620680069616A0870606A4C +:101B4000401C6062208D401E2085608D401E608597 +:101B50009FE03346002259492046009501F05BFA88 +:101B600008B101200FE72068006820F48060216838 +:101B7000086072B620680069616A0870606A401C7B +:101B80006062208D401E2085608D401E60854C481F +:101B900000681921B0FBF1F04FF47A71B0FBF1F05D +:101BA000C0EBC00000EB8000029000BF0298401E16 +:101BB00002900298A8B90020206300E039E02020BC +:101BC00084F83D00002084F83E00206C40F02000A6 +:101BD000206462B600BF002084F83C0000BF0120F2 +:101BE000D1E620684069C0F380000028DED020687C +:101BF000006840F400702168086020680069616A2C +:101C00000870606A401C6062208D401E2085608DD7 +:101C1000401E608562B620680069616A0870606A6B +:101C2000401C6062208D401E2085608D401E6085B6 +:101C30002FE02A463146204601F0C9FA08B10120BA +:101C4000A1E620680069616A0870606A401C6062F1 +:101C5000208D401E2085608D401E60852068406973 +:101C6000C0F38000A8B1208D032805D1206800684A +:101C700020F480602168086020680069616A08704B +:101C8000606A401C6062208D401E2085608D401E71 +:101C90006085208D00287FF410AF202084F83D005F +:101CA000002084F83E0000BF84F83C0000BF6AE6D4 +:101CB000022068E6020010000000FFFF040001009F +:101CC0000C0000202DE9FC5F04460F469046994623 +:101CD000DDE90CAB0E9EFFF74DFD054694F83D0087 +:101CE00020287DD1192301224D492046009501F07D +:101CF00092F910B10220BDE8FC9F00BF94F83C00AF +:101D0000012801D10220F6E7012084F83C0000BF41 +:101D10002068006800F0010028B92068006840F0E1 +:101D20000100216808602068006820F400602168D4 +:101D30000860212084F83D00402084F83E00002007 +:101D40002064C4F824A0A4F82AB0608D208535480A +:101D5000E0624B46424639462046CDE9006501F037 +:101D6000B7F808B10120C6E731E02A4631462046DF +:101D700001F072FA50B1206C042805D12068006887 +:101D800040F40070216808600120B4E7606A0078C0 +:101D900021680861606A401C6062208D401E2085B9 +:101DA000608D401E608520684069C0F3800070B17E +:101DB000208D60B1606A007821680861606A401C0B +:101DC0006062208D401E2085608D401E6085208DC4 +:101DD0000028CAD12A463146204601F0E9F800E041 +:101DE0001CE050B1206C042805D12068006840F444 +:101DF00000702168086001207DE72068006840F4D9 +:101E0000007021680860202084F83D00002084F8DC +:101E10003E0000BF84F83C0000BF6CE702206AE788 +:101E2000020010000000FFFF10B586B0044600203D +:101E300002900390049005902B492068884225D198 +:101E400000BF2A48806940F0080028498861084698 +:101E5000806900F00800019000BF00BFC020029020 +:101E6000122003900320059002A92148FFF7E4FA0D +:101E700000BF1E48C06940F400101C49C8610846F4 +:101E8000C06900F40010019000BF2AE019492068E1 +:101E9000884226D100BF1548806940F008001349E8 +:101EA00088610846806900F00800019000BF00BF0B +:101EB0004FF440600290122003900320059002A985 +:101EC0000B48FFF7B9FA00BF0848C06940F480002A +:101ED0000649C8610846C06900F48000019000BF4F +:101EE00000BF06B010BD00000054004000100240CA +:101EF000000C01400058004003480068034909787D +:101F000008440149086070470000002008000020D4 +:101F100010B50848006840F010000649086003202A +:101F200000F0A8F8002000F007F800F02BF80020DF +:101F300010BD00000020024070B504460E48007835 +:101F40004FF47A71B1FBF0F00C490968B1FBF0F580 +:101F5000284600F091FC08B1012070BD102C07D27A +:101F600000222146501E00F047F80548046001E0B9 +:101F70000120F2E70020F0E7080000200C0000201C +:101F80000400002008B500BF1148806940F001003E +:101F90000F4988610846806900F00100009000BF89 +:101FA00000BF00BF0846C06940F08050C8610846C5 +:101FB000C06900F08050009000BF00BF00BF05491D +:101FC000486820F0E06040F00070486000BF08BD45 +:101FD000001002400000014001460846002809DBCD +:101FE00000F01F0301229A4043099B0003F1E02304 +:101FF000C3F8002100BF70472DE9F05F80460D4611 +:102000001646002701F06AFC074639462A46334641 +:1020100001F00700C0F1070ABAF1040F02D94FF02E +:10202000040A01E0C0F1070AD14600F1040ABAF13E +:10203000070F02D24FF0000A01E0A0F1030AD446D4 +:102040004FF0010A0AFA09FAAAF1010A0AEA020A99 +:102050000AFA0CFA4FF0010B0BFA0CFBABF1010B77 +:102060000BEA030B4AEA0B042146404601F03EFC12 +:10207000BDE8F09F00BF00F00702064B19684FF65D +:10208000FF031940044B0B4343EA0221014B196043 +:1020900000BF70470CED00E00000FA05F8B50446FB +:1020A00000260025207800F0010000286BD00027D2 +:1020B0004348C06900F0805070B900BF4048C06913 +:1020C00040F080503E49C8610846C06900F0805029 +:1020D000009000BF00BF01273A48006800F48070FC +:1020E000B0B93848006840F4807036490860FFF79E +:1020F00041FB064606E0FFF73DFB801B642801D943 +:102100000320F8BD2F48006800F480700028F2D04A +:102110002B48006A00F440752DB3A08800F440708D +:10212000A84220D02648006A20F4407501202649A4 +:102130000860002008602248056205F0010090B1A7 +:10214000FFF718FB064608E0FFF714FB801B41F27F +:102150008831884201D90320D3E71948006A00F08A +:1021600002000028F0D01648006A20F44070616830 +:10217000084313490862012F04D10846C06920F0C2 +:102180008050C86100BF207800F00200022807D10B +:102190000B48406820F44040A16808430849486063 +:1021A000207800F01000102807D10548406820F47E +:1021B0008000E1680843024948600020A1E7000070 +:1021C00000100240007000404004424270B50446D6 +:1021D0000D460CB9012070BD5A48006800F0070098 +:1021E000A8420ED25748006820F0070028435549FE +:1021F00008600846006800F00700A84201D00120EE +:10220000E9E7207800F0020002281DD1207800F0D4 +:102210000400042805D14C48406840F4E0604A4975 +:102220004860207800F00800082805D1464840683A +:1022300040F46050444948604348406820F0F00052 +:10224000A168084340494860207800F0010078B355 +:102250006068012806D13C48006800F4003090B95D +:102260000120B8E76068022806D13748006800F00E +:10227000007040B90120AEE73348006800F002006A +:1022800008B90120A7E73048406820F003006168E2 +:1022900008432D494860FFF76DFA064609E0FFF74D +:1022A00069FA801B41F28831884202D9032092E703 +:1022B00007E02548406800F00C006168B0EB810F32 +:1022C000EDD12048006800F00700A8420ED91D4853 +:1022D000006820F0070028431A4908600846006893 +:1022E00000F00700A84201D0012074E7207800F038 +:1022F0000400042807D11448406820F4E060E16835 +:10230000084311494860207800F00800082808D1E7 +:102310000D48406820F46050216940EAC1000A4934 +:10232000486000F03FF808494968C1F30311074AC3 +:10233000515CC8400649086006480068FFF7FCFD8C +:10234000002048E700200240001002400E71000803 +:102350000C000020040000200148006870470000C5 +:102360000C00002000B5FFF7F7FF04494968C1F3EE +:102370000221034A515CC84000BD00000010024029 +:102380001E71000800B5FFF7E7FF04494968C1F373 +:10239000C221034A515CC84000BD00000010024049 +:1023A0001E71000870B500210022002400230020C7 +:1023B000134D696801F00C05F5B1042D02D0082D0C +:1023C00019D101E00F4819E00F4DC1F38346AB5D11 +:1023D00001F4803555B10A4D6D68C5F340450B4E8B +:1023E000725D084D5D43B5FBF2F402E0084D03FB5E +:1023F00005F4204602E000BF024800BF00BF70BDE8 +:102400000010024000127A00FC7000080C710008F5 +:1024100000093D00F8B504460CB90120F8BD20784C +:1024200000F00100002878D0F848406800F00C0067 +:1024300004280CD0F548406800F00C00082811D1A1 +:10244000F248406800F48030B0F5803F0AD1EF4890 +:10245000006800F4003000285FD0606800285CD17C +:102460000120DBE700BF6068B0F5803F06D1E74898 +:10247000006840F48030E549086028E0606858B999 +:10248000E248006820F48030E049086008460068AF +:1024900020F4802008601AE06068B0F5A02F0BD10E +:1024A000DA48006840F48020D8490860084600688F +:1024B00040F4803008600AE0D448006820F480309E +:1024C000D24908600846006820F48020086000BFF8 +:1024D000606888B1FFF74EF9054606E0FFF74AF954 +:1024E000401B642801D9032098E7C848006800F41D +:1024F00000300028F2D010E0FFF73CF9054606E076 +:10250000FFF738F9401B642801D9032086E7BF484C +:10251000006800F400300028F2D1207800F00200BA +:10252000022857D1B948406800F00C0050B1B748B4 +:10253000406800F00C00082818D1B448406800F446 +:10254000803098B9B148006800F0020020B12069DD +:10255000012801D0012061E7AC48006820F0F800B4 +:10256000616940EAC100A949086033E02069E8B127 +:102570000120A7490860FFF7FDF8054606E0FFF7D0 +:10258000F9F8401B022801D9032047E79F4800685B +:1025900000F002000028F2D09C48006820F0F8000B +:1025A000616940EAC1009949086013E00020984938 +:1025B0000860FFF7DFF8054606E0FFF7DBF8401B91 +:1025C000022801D9032029E79048006800F00200A2 +:1025D0000028F2D1207800F0080008282DD1A06949 +:1025E000B8B101208B490860FFF7C4F8054606E042 +:1025F000FFF7C0F8401B022801D903200EE78348EB +:10260000406A00F002000028F2D0012000F080FFB4 +:1026100013E000207F490860FFF7ACF8054606E0AC +:10262000FFF7A8F8401B022801D90320F6E67748F7 +:10263000406A00F002000028F2D1207800F0040087 +:10264000042873D100277148C06900F0805070B928 +:1026500000BF6E48C06940F080506C49C8610846B0 +:10266000C06900F08050009000BF00BF01276A4899 +:10267000006800F48070B0B96748006840F480706A +:1026800065490860FFF776F8054606E0FFF772F83F +:10269000401B642801D90320C0E65F48006800F4AD +:1026A00080700028F2D000BFE068012806D15748AA +:1026B000006A40F001005549086227E0E06858B917 +:1026C0005248006A20F00100504908620846006A3A +:1026D00020F00400086219E0E06805280BD14B489F +:1026E000006A40F00400494908620846006A40F068 +:1026F000010008620AE04548006A20F001004349F1 +:1027000008620846006A20F00400086200BFE06822 +:10271000A0B1FFF72FF8054609E0FFF72BF8401BA3 +:1027200041F28831884202D9032077E622E0374817 +:10273000006A00F002000028EFD012E0FFF71AF85C +:10274000054608E0FFF716F8401B41F28831884241 +:1027500001D9032062E62D48006A00F0020000283B +:10276000F0D1012F05D12948C06920F080502749B8 +:10277000C86100BFE069C8B32448406800F00C009D +:10278000082860D0E069022848D100202049086666 +:10279000FEF7F0FF054606E0FEF7ECFF401B0228BF +:1027A00001D903203AE61948006800F000700028BB +:1027B000F2D1206AB0F5803F07D11448406820F478 +:1027C0000030A168084311494860D4E90801084372 +:1027D0000E49496821F4741108430C4948600120EE +:1027E0000B490866FEF7C6FF054607E03DE0FEF729 +:1027F000C1FF401B022801D903200FE603480068EF +:1028000000F000700028F2D02FE00000001002401D +:1028100000004242800442420070004000201449FF +:102820000866FEF7A7FF054606E0FEF7A3FF401B7C +:10283000022801D90320F1E50E48006800F000707D +:102840000028F2D111E0E069012800D1E6E509484D +:10285000466806F48031206A814204D106F4701182 +:10286000606A814201D00120D8E50020D6E5000051 +:10287000000042420010024070B504462546681E22 +:10288000B0F1807F01D301200FE0681E4FF0E021FE +:1028900048610F214FF0FF3001F028F800204FF081 +:1028A000E021886107200861002070BD30B5024634 +:1028B0000B4600BF92F83C00012801D1022030BD38 +:1028C000012082F83C0000BF022082F83D00106821 +:1028D00044681068816824F0700418680443106824 +:1028E0004460104D1068A8420BD01068B0F1804FC2 +:1028F00007D00D4D1068A84203D00C4D1068A842B7 +:1029000005D121F0800158680143106881600120E1 +:1029100082F83D0000BF002082F83C0000BF00BFED +:10292000CDE70000002C01400004004000080040FA +:1029300010B504460CB9012010BD94F83D0028B92B +:10294000002084F83C00204600F026F8022084F89D +:102950003D00211D206800F037FE012084F846006C +:1029600000BF84F83E0001213F2001554020015561 +:102970004120015500BF00BF012084F842004320E0 +:102980000155442001554520015500BF012084F820 +:102990003D000020D0E7000008B5094A01689142D7 +:1029A0000DD100BF0749896941F40061054A916171 +:1029B0001146896901F40061009100BF00BF08BDA4 +:1029C000002C014000100240014691F83D00012812 +:1029D00001D001207047022081F83D00124B0868A9 +:1029E00098420BD00868B0F1804F07D00F4B0868B1 +:1029F000984203D00E4B086898420CD10868806852 +:102A000000F00702062A0CD00868006840F00100B8 +:102A10000B68186005E00868006840F001000B686A +:102A200018600020D6E70000002C014000040040A0 +:102A300000080040014600BF0868006A41F2111218 +:102A4000104050B90868006A9210104028B9086810 +:102A5000006820F001000A68106000BF012081F8C2 +:102A60003D00002070472DE9F04104460D46002747 +:102A700000BF94F83C00012802D10220BDE8F0819B +:102A8000012084F83C0000BF022084F83D0020684B +:102A9000866826F0770626F47F46206886602868D8 +:102AA000502833D00CDC202850D004DC00284BD038 +:102AB000102851D149E0302849D040284CD139E084 +:102AC00060282DD0702807D0B0F5805F03D0B0F516 +:102AD000005F41D10DE041E0D5E902136A6820684A +:102AE00000F0B4FD2068866846F0770620688660AE +:102AF00034E0D5E902136A68206800F0A7FD206879 +:102B0000806840F480402168886027E0EA6869684E +:102B1000206800F0AFFD5021206800F0A2FD1DE00C +:102B2000EA686968206800F0B8FD6021206800F05C +:102B300098FD13E0EA686968206800F09BFD402179 +:102B4000206800F08EFD09E000BF00BF00BF2968CB +:102B5000206800F086FD01E0012700BF00BF0120D2 +:102B600084F83D0000BF002084F83C0000BF3846D8 +:102B700084E710B504460CB9012010BDA06900B16E +:102B800000E000BF94F8410028B9002084F840001C +:102B9000204600F029F8242084F841002068C0680D +:102BA00020F400502168C860204600F0C1FD206874 +:102BB000006920F49040216808612068406920F095 +:102BC0002A00216848612068C06840F400502168EC +:102BD000C86000206064202084F8410084F842002E +:102BE0000020606300BFC8E710B586B0044600202F +:102BF00002900390049005901A49206888422ED1D3 +:102C000000BF1948806940F4804017498861084630 +:102C1000806900F48040019000BF00BF00BF0846FB +:102C2000806940F0040088610846806900F0040073 +:102C3000019000BF00BF48150290022003900320BE +:102C4000059002A90948FEF7F7FB4FF48060029057 +:102C500000200390049002A90448FEF7EDFB06B0A3 +:102C600010BD000000380140001002400008014083 +:102C70002DE9F84F04460E46174699464FF0000AD4 +:102C800094F84100202850D106B117B90120BDE8C1 +:102C9000F88F00206064212084F84100FEF76AFD6F +:102CA0008246A784E784A068B0F5805F04D12069DC +:102CB00010B90025B04602E035464FF000081EE08E +:102CC0005346002280212046CDF8009000F0AEFD52 +:102CD00020B1202084F841000320D8E745B9B8F896 +:102CE0000000C0F308002168486008F1020803E012 +:102CF0002878216848606D1CE08C401EE084E08CE0 +:102D00000028DDD15346002240212046CDF8009016 +:102D100000F08CFD20B1202084F841000320B6E7AC +:102D2000202084F841000020B1E70220AFE700BF77 +:102D3000FEE7014608684069C0F38020B0B16FF437 +:102D400080600A68506100200863202081F83D00FF +:102D5000002081F83E00086C40F00400086400BFC9 +:102D6000002081F83C0000BF012070470020FCE7F4 +:102D70002DE9F84304460F4615469946DDE90886D5 +:102D80002068006840F4806021680860206800685E +:102D900040F4807021680860434600224FF0011122 +:102DA0002046009600F037F960B12068006800F412 +:102DB0008070B0F5807F02D14FF400702064032052 +:102DC000BDE8F88307F0FE002168086133464246FB +:102DD0003E49204600F07EF908B10120F0E700BF2F +:102DE0000020009020684069009020688069009071 +:102DF00000BF00BF32464146204600F02DFA50B1D8 +:102E0000206C042805D12068006840F40070216817 +:102E100008600120D4E7B9F1010F03D1E8B22168BD +:102E2000086117E0C5F30720216808613246414672 +:102E3000204600F011FA50B1206C042805D120681A +:102E4000006840F40070216808600120B8E7E8B22B +:102E50002168086132464146204600F0FDF950B134 +:102E6000206C042805D12068006840F400702168B7 +:102E700008600120A4E72068006840F480702168A1 +:102E80000860434600224FF001112046009600F0F2 +:102E9000C2F858B12068006800F48070B0F5807FF7 +:102EA00002D14FF400702064032089E7F8B240F0AB +:102EB000010021680861334642460449204600F07B +:102EC00009F908B101207BE7002079E70200010041 +:102ED0002DE9F8430446884615469946DDE908671A +:102EE0002068006840F48070216808603346002242 +:102EF0004FF001112046009700F08DF860B1206876 +:102F0000006800F48070B0F5807F02D14FF400704B +:102F100020640320BDE8F88308F0FE002168086102 +:102F20003B4632462149204600F0D4F808B1012042 +:102F3000F0E700BF00200090206840690090206802 +:102F40008069009000BF00BF3A463146204600F03D +:102F500083F950B1206C042805D12068006840F442 +:102F60000070216808600120D4E7B9F1010F03D196 +:102F7000E8B22168086117E0C5F3072021680861FD +:102F80003A463146204600F067F950B1206C0428DB +:102F900005D12068006840F40070216808600120B5 +:102FA000B8E7E8B2216808610020B3E70200010039 +:102FB00070B504460D46164625E02046FFF7B9FEDB +:102FC00008B1012070BD681CE8B1FEF7D3FB801B7F +:102FD000A84200D8BDB920684069C0F3800090B90C +:102FE00000202063202084F83D00002084F83E006B +:102FF000206C40F02000206400BF002084F83C00DA +:1030000000BF0120DEE720684069C0F3800000288F +:10301000D3D00020D6E72DE9F04104460D461746EF +:103020001E46DDF8188038E0701CA8B3FEF7A2FB3E +:10303000A0EB0800B04200D876BBC5F307400128DA +:103040000AD120684069A9B20840A9B2884201D1DA +:1030500001200BE0002009E020688069A9B2084047 +:10306000A9B2884201D1012000E00020B84214D169 +:1030700000202063202084F83D00002084F83E00DA +:10308000206C40F02000206400BF002084F83C0049 +:1030900000BF0120BDE8F081FFE7C5F3074001282C +:1030A0000AD120684069A9B20840A9B2884201D17A +:1030B00001200BE0002009E020688069A9B20840E7 +:1030C000A9B2884201D1012000E00020B842ABD073 +:1030D0000020DFE72DE9F04104460D4616461F4665 +:1030E00058E020684069C0F38020E8B1206800689B +:1030F00040F40070216808606FF4806021684861C6 +:1031000000202063202084F83D00002084F83E0049 +:10311000206C40F00400206400BF002084F83C00D4 +:1031200000BF0120BDE8F081701C90B3FEF722FBC8 +:10313000C01BB04200D866BBC5F3074001280AD1C6 +:1031400020684069A9B20840A9B2884201D1012093 +:103150000BE0002009E020688069A9B20840A9B20C +:10316000884201D1012000E0002090B900202063B6 +:10317000202084F83D00002084F83E00206C40F0C0 +:103180002000206400BF002084F83C0000BF012024 +:10319000C8E7FFE7C5F3074001280AD12068406966 +:1031A000A9B20840A9B2884201D101200BE0002059 +:1031B00009E020688069A9B20840A9B2884201D11B +:1031C000012000E0002000288BD00020AAE770B585 +:1031D00004460D46164637E020684069C0F30010EB +:1031E000A0B16FF01000216848610020206320200A +:1031F00084F83D00002084F83E00206C206400BF6D +:10320000002084F83C0000BF012070BDFEF7B2FA38 +:10321000801BA84200D8BDB920684069C0F3801067 +:1032200090B900202063202084F83D00002084F81D +:103230003E00206C40F02000206400BF002084F895 +:103240003C0000BF0120E0E720684069C0F3801027 +:103250000028C1D00020D8E770B504460D461646B8 +:1032600025E02046FFF765FD08B1012070BD681C10 +:10327000E8B1FEF77FFA801BA84200D8BDB92068EC +:103280004069C0F3C01090B900202063202084F86A :103290003D00002084F83E00206C40F020002064B7 :1032A00000BF002084F83C0000BF0120DEE720685A -:1032B0004069C0F380000028D3D00020D6E72DE974 -:1032C000F04104460D4617461E46DDF8188038E0EA -:1032D000701CA8B3FEF7D0FBA0EB0800B04200D8EA -:1032E00076BBC5F3074001280AD120684069A9B21E -:1032F0000840A9B2884201D101200BE0002009E07A -:1033000020688069A9B20840A9B2884201D1012091 -:1033100000E00020B84214D100202063202084F86F -:103320003D00002084F83E00206C40F02000206426 -:1033300000BF002084F83C0000BF0120BDE8F08100 -:10334000FFE7C5F3074001280AD120684069A9B208 -:103350000840A9B2884201D101200BE0002009E019 -:1033600020688069A9B20840A9B2884201D1012031 -:1033700000E00020B842ABD00020DFE72DE9F041AB -:1033800004460D4616461F4658E020684069C0F3C3 -:103390008020E8B12068006840F40070216808606F -:1033A0006FF480602168486100202063202084F849 -:1033B0003D00002084F83E00206C40F004002064B2 -:1033C00000BF002084F83C0000BF0120BDE8F08170 -:1033D000701C90B3FEF750FBC01BB04200D866BB18 -:1033E000C5F3074001280AD120684069A9B2084006 -:1033F000A9B2884201D101200BE0002009E0206839 -:103400008069A9B20840A9B2884201D1012000E038 -:10341000002090B900202063202084F83D00002087 -:1034200084F83E00206C40F02000206400BF0020A3 -:1034300084F83C0000BF0120C8E7FFE7C5F3074060 -:1034400001280AD120684069A9B20840A9B288427F -:1034500001D101200BE0002009E020688069A9B2B9 -:103460000840A9B2884201D1012000E000200028D4 -:103470008BD00020AAE770B504460D46164637E00B -:1034800020684069C0F30010A0B16FF010002168FF -:10349000486100202063202084F83D00002084F84B -:1034A0003E00206C206400BF002084F83C0000BF78 -:1034B000012070BDFEF7E0FA801BA84200D8BDB91C -:1034C00020684069C0F3801090B90020206320205C -:1034D00084F83D00002084F83E00206C40F020007D -:1034E000206400BF002084F83C0000BF0120E0E71A -:1034F00020684069C0F380100028C1D00020D8E7C0 -:1035000070B504460D46164625E02046FFF765FDDA -:1035100008B1012070BD681CE8B1FEF7ADFA801B50 -:10352000A84200D8BDB920684069C0F3C01090B966 -:1035300000202063202084F83D00002084F83E0015 -:10354000206C40F02000206400BF002084F83C0084 -:1035500000BF0120DEE720684069C0F3C0100028EA -:10356000D3D00020D6E700000EB5002000900190D7 -:10357000029013481349086000211248816001211C -:103580000173002101754FF46021C16100200D49D4 -:10359000486001210B480161FDF7B2FD08B1FDF75C -:1035A000F7FC002000900120019000200290694665 -:1035B0000448FDF7F1FC08B1FDF7EAFC0EBD000080 -:1035C00000240140B000002008B500BF0A4840694F -:1035D00040F00100084948610846406900F00100D8 -:1035E000009000BF00BF002211460B20FEF758FEDE -:1035F0000B20FEF745FE08BD0010024000B585B067 -:103600000020019002900390049000BF1D48806943 -:1036100040F020001B4988610846806900F02000C6 -:10362000009000BF00BF00BF0846806940F0040062 -:1036300088610846806900F00400009000BF00BF68 -:1036400000BF0846806940F008008861084680692C -:1036500000F00800009000BF00BF012289150A4851 -:10366000FEF704FA4FF480700190012002900020D0 -:1036700003900320049001A90348FEF75FF805B00A -:1036800000BD0000001002400008014010B50B48CA -:103690000B4908600B484860002109488160C160FF -:1036A0004FF480410161002141618161C16101628A -:1036B000FEF7E8F908B1FDF76BFC10BD00540040BF -:1036C00024010020801A060000B587B00020039076 -:1036D00004900590069001900290154815490860E5 -:1036E000472048600021134881604FF6FF71C16098 -:1036F0000021016141618161FFF76EFA08B1FDF7B8 -:1037000047FC4FF48050039003A90A48FFF7FFFAE3 -:1037100008B1FDF73DFC00200190029001A9054889 -:10372000FFF718FA08B1FDF733FC07B000BD000041 -:10373000002C01407801002010B50B480B490860AF -:103740004FF4E1304860002108488160C1600161A8 -:103750000C21416100218161C161FFF75EFB08B16D -:10376000FDF716FC10BD000000380140C00100202C -:1037700000BFFEE700BFFEE77047000008B508493C -:103780000968C9084FF47A72B1FBF2F14143009124 -:1037900000BF00BF00994A1E00920029F9D108BD60 -:1037A0000C000020704710B5FEF7FAFC10BD00B504 -:1037B00093B0282109A8FCF7FFFC142104A8FCF70A -:1037C000FBFC0020009001900290039001200990E2 -:1037D00000040A9000200B9001200D900220109010 -:1037E000C10311914FF4E011129109A8FEF766FF91 -:1037F00008B1FDF7CDFB0F200490022005900020BA -:1038000006904FF48060079000200890022104A8E1 -:10381000FEF730FE08B1FDF7BBFB022000908003ED -:1038200002906846FEF78EFD08B1FDF7B1FB13B0BC -:1038300000BD704710B502681C4B984208D0B0F12B -:10384000804F05D01A4B984202D01A4B984203D1B0 -:1038500022F070024B681A43144B984208D0B0F122 -:10386000804F05D0124B984202D0124B984203D1A0 -:1038700022F44072CB681A4322F080034C6943EA79 -:10388000040202608B68C3620B688362074B984234 -:1038900001D10B69036301234361036903F0010351 -:1038A0001BB1036923F00103036110BD002C01402B -:1038B000000400400008004030B50C46816821F447 -:1038C0007F4142EA032525432943816030BD0A46F2 -:1038D000816821F0700142F007031943816070474D -:1038E00030B50B461446026A056A25F001050562EB -:1038F000816921F0F00141EA041122F00A021A4321 -:103900008161026230BD30B50B461446026A056A19 -:1039100025F010050562816921F4704141EA043106 -:1039200022F0A00242EA03128161026230BD00BFB0 -:1039300000BF02680C3252E8002F22F49071026836 -:103940000C3242E80013002BF3D100BF00BF00BFD0 -:103950000268143252E8002F22F00101026814328A -:1039600042E80013002BF3D100BF016B01290ED1F7 -:1039700000BF00BF02680C3252E8002F22F0100195 -:1039800002680C3242E80013002BF3D100BF202163 -:1039900080F84210002101637047000070B50446B2 -:1039A0002168096921F44051E268114322681161DC -:1039B0002269A1681143626941EA02052168C96868 -:1039C00041F20C62914329432268D1602168496920 -:1039D00021F44071A2691143226851612D4A216886 -:1039E000914202D1FEF722FE01E0FEF70FFE00EB4E -:1039F000C00101EB001162689200B1FBF2F100EB33 -:103A0000C00202EB001263689B00B2FBF3F2642376 -:103A1000B2FBF3F202EBC20303EB0212A1EB820151 -:103A2000322202EB01116422B1FBF2F101F0F0014C -:103A300000EBC00202EB001263689B00B2FBF3F2E2 -:103A40006423B2FBF3F201EB021200EBC00101EBC5 -:103A5000001163689B00B1FBF3F100EBC00303EBC3 -:103A600000136668B600B3FBF6F36426B3FBF6F307 -:103A700003EBC30606EB0313A1EB8301322303EB35 -:103A800001116423B1FBF3F101F00F01114422682D -:103A9000916070BD003801402DE9F84304460D46A1 -:103AA00017469846089E31E0701C70B3FDF7E4FF9E -:103AB000A0EB0800B04200D816B90320BDE8F88397 -:103AC0002068C06800F00400F8B1802D1ED0402DA1 -:103AD0001CD020680068C0F3C000B0B100BF002057 -:103AE000009020680068009020684068009000BF47 -:103AF00000BF2046FFF71BFF0820606400BF0020C6 -:103B000084F8400000BF0120D8E7FFE72068006884 -:103B10002840A84201D1012000E00020B842C3D0D3 -:103B20000020CBE700BFFEE70FB4054B10B503A99B -:103B3000044A029800F088F910BC5DF814FB0000FC -:103B400041580008A8000020490050EAC12018BFD1 -:103B500004204A0D18BF40F0010040F2FF72B2EBA2 -:103B6000515F08BF40F00200012808BF05207047E0 -:103B700002480068C0F30220704700000CED00E02E -:103B800010B5002804DB0A07130E054A135406E09B -:103B90000A07140E034A00F00F031B1FD45410BD74 -:103BA00000E400E018ED00E02DE9F0414F1E00EBCD -:103BB000C7010446D1E9000115461E4637F006024A -:103BC0000DD02A463346FCF77EFC7F1E04EBC7036C -:103BD000D3E90023FCF7D0FB37F00602F1D1022F26 -:103BE00025D0042F13D0062F18BFBDE8F0812A4638 -:103BF0003346FCF768FCD4E90A23FCF7BDFB2A46F0 -:103C00003346FCF760FCD4E90823FCF7B5FB2A46F1 -:103C10003346FCF758FCD4E90623FCF7ADFB2A46F3 -:103C20003346FCF750FCD4E90423FCF7A5FB2A46F5 -:103C30003346FCF748FCD4E90223FCF79DFB2A46F7 -:103C40003346FCF740FCD4E90023BDE8F041FCF723 -:103C500093BB00000022134610460149FCF7A5BCA7 -:103C60000000F03F0122FCF7CBBEFCF785BB002231 -:103C7000134610461146FCF798BC40F20132002072 -:103C80004FF0E041FCF7BCBE024A00201107FCF7F0 -:103C9000B7BE000001FDFFFF02E008C8121F08C107 -:103CA000002AFAD170477047002001E001C1121FBD -:103CB000002AFBD1704700000149086070470000EE -:103CC000AC0000202DE9FF5F82B00021DDE9043067 -:103CD000020DDDF840B0034318D044F61050A2F2B4 -:103CE000FF3242431514119801281FD0A5EB0B0099 -:103CF000401C5FEA000A4FF000064E4FDFF8389193 -:103D0000B046504615D5CAF1000413E011980124BD -:103D10004AA3012801D16FEA0B010298119AC0E968 -:103D20000031C0E9024206B0BDE8F09FCBF10000CF -:103D3000DFE704460021404A491842EB0450CDE930 -:103D4000001012E0E00707D032463B4640464946A5 -:103D5000FCF7B9FB8046894632463B461046194679 -:103D6000FCF7B1FB06460F466410002CEAD1DDE9F2 -:103D70000401DDE90023BAF1000F06DAFCF7A3FB2A -:103D800042464B46FCF79FFB05E0FCF70EFC424623 -:103D90004B46FCF70AFC04460E460022284BFCF773 -:103DA000EBFC03D84FF0FF30014607E00022254B23 -:103DB00020463146FCF7E0FAFCF78AFE102409E0C1 -:103DC000002C0ADB0A220023FCF734FD039B30326F -:103DD0001A55641E50EA0102F2D1641C039AC4F120 -:103DE00011031444119A012A03D0012208430DD172 -:103DF0000AE0084304D000204FF0110B119072E745 -:103E0000A3EB0B056D1E0DE05B4504DD4FF00002DA -:103E100005F1010504E003DA4FF00002A5F1010508 -:103E2000002AECD002981199C0E90231C0E900459E -:103E300079E70000000014400000F03F300000006F -:103E40000000F0430000E03F2DE9FF4F95B09A4697 -:103E5000884606460025EEE1252877D1002427462E -:103E6000F94A0121039400E0044316F8013F203B86 -:103E700001FA03F01042F7D130782A2811D06FF000 -:103E80002F033078A0F13002092A16D8039A44F0A3 -:103E9000020402EB820203EB42021044761C039000 -:103EA000EFE758F8042B0392002A03DA504244F457 -:103EB0000054039044F00204761C30782E2816D16A -:103EC00016F8010F44F004042A280DD06FF02F02D9 -:103ED0003078A0F13003092B09D807EB870302EBF8 -:103EE0004303C718761CF3E758F8047B761C307838 -:103EF0006C280FD006DC4C2817D068280DD06A2813 -:103F000014D104E0742810D07A280FD10DE044F4C5 -:103F100000140AE044F4801401E044F44014727880 -:103F2000824202D104F58014761C761C3078662813 -:103F30000BD013DC582877D009DC002875D0452831 -:103F4000F6D04628F4D047281AD193E118E0632828 -:103F500035D0642879D0652812D18BE1702873D0D0 -:103F600008DC6728F1D069286FD06E280DD06F2843 -:103F700006D1ACE073282CD0752874D0782853D0A3 -:103F80005246179990476D1C54E1C4F30250022821 -:103F900009D003280DD0D8F8001004280DD00D60EA -:103FA00008F1040846E1D8F80010EA17C1E9005208 -:103FB000F6E7D8F800100D80F2E70D70F0E718F87A -:103FC000041B8DF8001000208DF80100EB46012045 -:103FD00003E058F804BB4FF0FF3061074FF00001D9 -:103FE00002D40DE009F101018946B9420FDA814599 -:103FF000F8DB1BF809100029F4D108E009F10101F0 -:1040000089468142FADB1BF809100029F6D1039892 -:104010005346A0EB090721463846179A00F080FA6C -:10402000284400EB090507E044E008E10DE01BF837 -:10403000010B524617999047B9F10109F7D253463F -:1040400021463846179AF2E039E00A21C4F30252B9 -:104050004FF0000B0091022A06D058F8040BC1174C -:10406000032A09D00AE023E008F1070020F0070244 -:10407000F2E80201904605E000B2C117042A01D11E -:1040800040B2C117002906DA0A460021404261EB1E -:1040900002012D2202E0220504D52B228DF80420F6 -:1040A000012203E0E20701D02022F7E7914657E022 -:1040B0000A2100E010214FF0000B00910BE01021CD -:1040C0004FF0000B44F004040827009103E008209F -:1040D0004FF0000B0090C4F30252022A05D058F8AA -:1040E000040B0021032A08D008E008F1070020F0A3 -:1040F0000702F2E80201904603E080B2042A00D1F0 -:10410000C0B24FF0000922072AD53278702A07D0B2 -:10411000DDF800C08CF0100C5CEA0B0C05D00EE052 -:1041200040228DF80420012208E050EA010306D065 -:1041300030238DF804308DF8052002229146009B33 -:1041400083F0080353EA0B030AD150EA010201D1BC -:10415000620705D530228DF804204FF001097F1E3B -:104160003278582A04D039A20C920CAA02920BE0A1 -:104170003BA2F9E75B46009AFCF75CFB0C9B9B5C5F -:10418000029A521E0292137050EA0102F2D1029872 -:1041900004A9081A00F1200B600702D524F480342A -:1041A00000E001275F4502DDA7EB0B0000E00020E7 -:1041B00000EB0B01009003984944401A0390E00380 -:1041C00006D453462146179A039800F0A9F90544EE -:1041D000002706E001A85246C05D179990476D1C64 -:1041E0007F1C4F45F6DBE0030CD553462146179A5A -:1041F000039800F095F9054404E0302052461799E1 -:1042000090476D1C0099481E00900029F5DC08E0DD -:104210000298029952460078491C029117999047DA -:104220006D1CBBF10001ABF1010BF1DC5BE100F0B7 -:1042300065F90544761C307800287FF40DAE19B07E -:104240002846BDE8F08F00000928010030313233E4 -:1042500034353637383961626364656600000000C2 -:1042600030313233343536373839414243444546AC -:1042700000000000600700D4062708F1070020F0C6 -:104280000700F0E80223804603F0004C5FEA0C00D0 -:1042900001D097A009E0200501D596A005E0E00730 -:1042A00001D095A001E0AFF24C001390307823F0DC -:1042B000004365280CD006DC452809D046281DD0CF -:1042C00047287FD13BE0662818D067287AD136E0AE -:1042D0000021112F01DB112000E0781CCDE9000145 -:1042E00004A90CA8FFF7EEFCDDE90D010C9A4FF0D4 -:1042F000000B07F10109109200914EE04FF00040D1 -:104300000097CDE9011004A90CA8FFF7DBFCDDE95B -:104310000D020C9B0F994FF0000B914610930092E9 -:1043200011B9791C00EB0109B7EB090003D4C0F106 -:10433000FF3B07F10109A9EB0700019042E0012FC3 -:1043400000DA01270021112F01DD112000E038469D -:10435000CDE9000104A90CA8FFF7B4FCDDE90D01CB -:104360000C9A00914FF0000BB946109221070FD420 -:10437000009A4A4503DA914601E0A9F10109B9F131 -:10438000010F05DD109AA9F10101515C3029F4D02B -:10439000B84202DA10F1040F03DA0121CDE901106D -:1043A00010E0002803DC8344A9EB000102E0411C7B -:1043B000494500DD8946A0EB0B00401C01904FF001 -:1043C00000400290200705D40198484502DB4FF0D9 -:1043D000FF30019000208DF84B0002980DF14B0743 -:1043E000B0F1004F25D002200C902B200D900298A8 -:1043F00000280CDA404202902D200D9007E00A219F -:104400000298FCF701FA3031029007F8011D0C996F -:10441000481E0C900029F2DC02980028EFD1791E8A -:104420000D980870307800F0200040F0450007F843 -:10443000020D11A8C01BC01D02901398007800B196 -:10444000012000EB0901019801EBE07102980144A1 -:104450000398401A401E0390E00306D453462146B9 -:10446000179A039800F05CF805441398007818B187 -:104470005246179990476D1CE00323D553462146B9 -:10448000179A039800F04CF805441BE0BBF1000FAD -:1044900007DB0098584504DD1098179910F80B00B9 -:1044A00001E0179930205246904701980BF1010B1B -:1044B000401E05F10105019004D12E2052461799A6 -:1044C00090476D1CB9F10001A9F10109DEDC05E09E -:1044D00017F8010B5246179990476D1C0299481E18 -:1044E00002900029F4DC53462146179A03989EE671 -:1044F0002D0000002B000000200000002DE9F041FD -:10450000044600251E461746880404D405E03946B3 -:104510002020B0476D1C641EF9D52846BDE8F08107 -:104520002DE9F041044600251E469046C80301D5FA -:10453000302700E02027880404D505E041463846AE -:10454000B0476D1C641EF9D52846BDE8F081000017 -:104550002DE9FE4F06460F460025684601F07CF91E -:10456000002442E056F8240057F82410A0EB010A7A -:10457000BAF1000F01DB514601E0CAF10001084623 -:10458000FCF782F883464FF08F41FBF7B7FE804679 -:104590005DF824000021FCF723F916D05DF8241003 -:1045A0004046FBF7ABFE82464FF07E51FBF76EFEB6 -:1045B000814629F0004A0F48416A5046FCF71AF933 -:1045C00012D20120A04005430EE00A48C1694046CE -:1045D000FCF706F905D30748016A4046FCF70AF9DB -:1045E00002D20120A0400543641C032CBADB2846FC -:1045F000BDE8FE8F5C8400082DE9F04D8D4F21F061 -:10460000004A86B005460C46BA452ADBAAEB0700ED -:1046100028430AD08848824501DC1AD1CDB106B0C2 -:104620002846BDE8F04DFFF71DBB844A844B284661 -:10463000FBF749FF07460E46824A834B2846214630 -:10464000FBF741FF06B03A463346BDE8F04DFBF7B5 -:1046500093BE0120FFF730FB06B0BDE8F04DFFF739 -:1046600006BB7A48824542DABAF1795F0BDA28460E -:10467000FFF76AFA042808BFFFF706FB284606B0D2 -:104680002146BDE8F08D2A460B461046FBF71BFF7E -:10469000834602466E480E460B4606217844FFF7D5 -:1046A00083FA5A463346FBF70EFF804669488A462E -:1046B0005A46334604217844FFF776FA5A46334681 -:1046C000FBF701FF00223B46FBF756FE02460B4676 -:1046D00040465146FBF769FF2A462346FBF7F3FEA7 -:1046E00006B02A462346BDE8F04DFBF745BE2846F6 -:1046F00024F0004100223D463B46FBF7E1FE4FF02F -:10470000FF32FCF77DF90646024653480F460B463A -:1047100006217844FFF748FA32463B46FBF7D3FEC2 -:10472000CDE900014D4832463B4604217844FFF76D -:104730003BFA32463B46FBF7C6FE00222B46FBF710 -:104740001BFE834602913046394603F035FE804613 -:1047500043480D46504517DCDDE900015A46029BEF -:10476000FBF723FF42462B46FBF7ADFE42462B46A6 -:10477000FBF702FE0122FCF743F9304A304BFBF70E -:104780009CFE304A304B4CE04FF0000A52460B463C -:104790004046FBF7F1FDCDE9031052462B4610468B -:1047A0001946FBF790FE32463B46FBF789FEDDE9F2 -:1047B0000332FBF7FAFE06460F46DDE900015A46D2 -:1047C000029BFBF7F2FE83460091012230463946F8 -:1047D000FCF716F9194A1A4BFBF772FE06460F460C -:1047E000012240462946FCF70BF95A46009BFBF78D -:1047F0006AFE32463B46FBF760FE06460F46012244 -:1048000050462946FCF7FCF80E4DDFF858802A4642 -:104810004346FBF755FE32463B46FBF751FE2A4620 -:104820004346FBF74DFE002CD8BF81F0004106B097 -:10483000BDE8F08D0000F03F0000F07F075C14330E -:1048400026A6913C182D4454FB21F93F0000E03F7F -:10485000E0490000F64900006A4900008049000074 -:104860003333EF3FFB21E93F2DE9F84F04460D4676 -:1048700021F0004000917349814211DC7249884265 -:1048800001DC06D12CB120462946BDE8F84FFFF7E0 -:10489000E9B96E48002DCCBF6D496E49BDE8F88F6F -:1048A0006D49814211DD6D498142D8BF4FF0FF361D -:1048B0006DDD20462946FFF747F9042808BFFFF7BA -:1048C000E3F920462946BDE8F88F6549654F25F094 -:1048D0000045814233DD6449814219DD00263246BC -:1048E0004FF0804320462946FBF746FD80468A4626 -:1048F000012220462946FCF783F800223B46FBF7BD -:10490000DCFD42465346FBF750FE04460D463EE0B2 -:1049100001260022BA463B4620462946FBF72CFDDD -:1049200080460F460022534620462946FBF7C5FD28 -:1049300042463B46FBF739FE04460D4627E04B490D -:1049400081421BDDDFF828A10226002253462046C3 -:104950002946FBF7B8FD00223B46FBF70DFD8046DC -:104960000F460022534620462946FBF7A6FD424645 -:104970003B46FBF71AFE04460D4608E00326224696 -:104980002B4600203B49FBF710FE04460D4622460D -:104990002B4610461946FBF796FD8B46824602468B -:1049A0000B46FBF790FD07460246334888460B4608 -:1049B00006217844FFF7F8F852465B46FBF783FD83 -:1049C00082462E488B463A46434605217844FFF7F7 -:1049D000EBF83A464346FBF776FD02460B46002EBF -:1049E000504659460CDAFBF7C7FC22462B46FBF72C -:1049F0006AFD01B022462B46BDE8F04FFBF760BDD3 -:104A0000FBF7BAFC22462B46FBF75DFD1C4A7A44B5 -:104A100002EBC603D3E90023FBF74FFD22462B46EA -:104A2000FBF74BFD174A7A4402EBC603D3E9002398 -:104A3000FBF746FD009A002AB8BF81F00041BDE8AF -:104A4000F88F0000000010440000F07F182D44543F -:104A5000FB21F93FFB21F9BF0000DC3F0000203EB5 -:104A60000000F33F0000F03F0000E63F00800340FD -:104A70000000F83F0000F0BF0A480000C8470000EF -:104A8000664700002E4700002DE9F04D9446CCF11A -:104A9000000423F000464CEA0404594F46EAD4745B -:104AA0009A46884621F00042BC4206D8454240EA78 -:104AB000050442EAD474BC4204D9BDE8F04D624614 -:104AC000FFF7D3B8AAF14055A5F17F6555EA0C046C -:104AD0000BD0022404EAAA744A4DDFF82CE144EA20 -:104AE000D87452EA000B04D00CE0BDE8F04DFFF79B -:104AF000BBBE002C14BF012CBDE8F08D022C30D0C1 -:104B0000032C32D056EA0C0B0AD0BE4220D1BA4256 -:104B100009D126F0804622F080423346114617E044 -:104B200000291ADB25E0DFF8E4B0FB44002C04BFC9 -:104B3000DBE90001BDE8F08D012C02BFDBE90001DB -:104B400081F00041BDE8F08D022C0AD0032C0CD07E -:104B5000BA4212D1B8F1000F0BDA2A482C49BDE84D -:104B6000F08D28462B49BDE8F08D28467146BDE8FA -:104B7000F08D24482849BDE8F08D921B12153C2A7F -:104B8000C4BF204F244E10DCBAF1000FBEBF12F19B -:104B90003C0F00273E4608DB6246FBF706FD21F08E -:104BA0000041FFF761FE07460E4694B1012C08BF95 -:104BB00086F000460DD0194A194B022C3846314672 -:104BC00015D0FBF77AFC2A46BDE8F04D114BFBF7F8 -:104BD00074BC0022134638463146FBF791FF04BFF0 -:104BE0000220FFF769F838463146BDE8F08DFBF743 -:104BF00064FC2A46BDE8F04D064BFBF761BC0000A3 -:104C00000000F07F182D4454FB2109C0C24600006B -:104C1000FB21F9BFFB210940FB21F93F075C14335D -:104C200026A6A13C2DE9F0410446E07800F0C0063C -:104C3000E07800F03F05607800F0010098B1EF10D7 -:104C40002846E91705EB5171C910A5EBC101491CB4 -:104C500001F0FF080B48006820B10A48414602688D -:104C60003846904700BF607800F0080030B1054832 -:104C7000406818B1B011034A516888470020BDE868 -:104C8000F08100008002002010B506490648FCF7BC -:104C900099F8044802780448017804A0FEF744FF1C -:104CA00010BD0000500000205100002074656D70A0 -:104CB0003A25642C68756D693A25640D0A00000078 -:104CC00038B5044664B120208DF8000028208DF806 -:104CD000010030208DF8020038208DF8030004E038 -:104CE000A32204216846FBF760FA6A46042140F6D5 -:104CF0009E2002F0B1FC01F0E3FF38BD3EB5044652 -:104D000002208DF80000CA208DF80100E3208DF804 -:104D1000020009208DF803006A460421682002F091 -:104D20009BFCA3208DF8000004F0400048B1C02097 -:104D30008DF80100C8208DF80200C2208DF8030014 -:104D400006E0A3208DF801008DF802008DF8030025 -:104D500004F4C07048B1C4208DF80400CC208DF854 -:104D60000500C6208DF8060006E0A3208DF804009B -:104D70008DF805008DF80600A3208DF807008DF84A -:104D800008008DF809006A460A2140F6A72002F0C3 -:104D900063FC04F0030018B120208DF8000002E04D -:104DA000D8208DF800006A46012140F6B62002F0B6 -:104DB00053FC04F0200018B1012000F0ADF802E02F -:104DC000002000F0A9F804F4C07008B304F4807067 -:104DD00060B1B2208DF800008B208DF80100B62064 -:104DE0008DF802009B208DF803000BE0C0208DF8A9 -:104DF000000080208DF80100C2208DF80200902074 -:104E00008DF803006A46042140F6A22002F024FC3B -:104E100004F0010020B3F8208DF800006A4601215B -:104E20004FF40B6002F018FCFA21072000F012FC8E -:104E3000072000F0D9FB012000F0F9FB642000F00E -:104E4000D9FC4FF4FA7000F0E8FCC821304800F0BB -:104E500089FB282000F0A2FB0A2000F0B2FB08E04A -:104E6000D8208DF800006A4601214FF40B6002F053 -:104E7000F3FB04F0020018B1D9208DF8000002E025 -:104E8000D8208DF800006A46012140F23D7002F002 -:104E9000E3FB04F0040018B1012000F069F802E01F -:104EA000002000F065F804F0100018B10120FFF7B1 -:104EB00007FF02E00020FFF703FF44F00800154958 -:104EC000488101F0FDFE00201249887304F0400083 -:104ED00018B10846807B801D887304F4C07020B12F -:104EE0000C48807B801D0B49887304F0140020B1AE -:104EF0000848807B10300749887304F0030020B114 -:104F00000448807B001D0349887300203EBD0000DB -:104F100009E3CA02800200203EB504466CB10EA12E -:104F2000D1E900208968CDE9002002916A46092173 -:104F30004FF4976002F090FB3EBD0AA2D2E9001048 -:104F40009268CDE9010200916A4609214FF4976009 -:104F500002F082FBF0E70000B8AAB38DB4980D35DB -:104F60005D000000B8AAAAAAB088C3C5C7000000A7 -:104F700038B5044664B1C0208DF80000C2208DF819 -:104F80000100C4208DF80200C6208DF8030004E063 -:104F90008B2204216846FBF708F96A46042140F693 -:104FA000982002F059FB01F08BFE38BD10B5C823E4 -:104FB0004FF48062024940F6F63001F055FD10BD15 -:104FC000848400082DE9F04788B0074688461646D5 -:104FD0009946DDE9105A0024002028805D49887B2D -:104FE0005246694601F0A6FD18B1601E08B0BDE842 -:104FF000F0875848807A00F01400E0B39DF8000074 -:1050000000069DF8011040EA01409DF8021040EAB8 -:1050100001209DF80310084330609DF8040000064D -:105020009DF8051040EA01409DF8061040EA012075 -:105030009DF80710084370609DF8080000069DF871 -:10504000091040EA01409DF80A1040EA01209DF84D -:105050000B100843B0609DF80C0000069DF80D1081 -:1050600040EA01409DF80E1040EA01209DF80F1023 -:105070000843F06000E007E004F11000C4B2B5F9A5 -:10508000000040F4807028803248807A00F04000B0 -:1050900030B3601C1DF800001DF8041040EA012028 -:1050A00000B2A8F80000E01C1DF80010A01C1DF8BC -:1050B000000041EA002000B2A8F80200601D1DF8BF -:1050C0000010201D1DF8000041EA002000B2A8F8E1 -:1050D0000400A01DC4B2B5F9000040F0080028800B -:1050E0001C48408900F4C07018B3601C1DF8000013 -:1050F0001DF8041040EA012000B23880E01C1DF8C1 -:105100000010A01C1DF8000041EA002000B27880C9 -:10511000601D1DF80010201D1DF8000041EA002050 -:1051200000B2B880A01DC4B2B5F9000040F0700014 -:1051300028800848807A00F0030018B10DEB0400C5 -:10514000FFF770FD00BFFCF797FCC9F8000000BF37 -:1051500000204BE78002002070B588B0064601A809 -:1051600001F0DEFABDF804000021C90341EA504510 -:10517000C40300BF4448007A00F0030056F8200042 -:1051800005904148007A00F0040010B105984042B3 -:1051900005903D48007AC0F3C10056F82000069003 -:1051A0003948007A00F0200010B10698404206907D -:1051B0003548007AC0F3811056F820000790324835 -:1051C000008900F4807010B107984042079005985C -:1051D000C117A0FB042301FB043100FB0510810073 -:1051E00041EA927005900698C117A0FB042301FBC9 -:1051F000043100FB0510810041EA92700690079887 -:10520000C117A0FB042301FB043100FB0510810042 -:1052100041EA927007900598000E8DF808000598F5 -:10522000000C8DF809000598000A8DF80A00059811 -:10523000C0B28DF80B000698000E8DF80C00069891 -:10524000000C8DF80D000698000A8DF80E000698E7 -:10525000C0B28DF80F000798000E8DF81000079867 -:10526000000C8DF811000798000A8DF812000798BD -:10527000C0B28DF8130002AA0C214FF4257002F081 -:10528000EBF908B070BD00008002002030B585B099 -:10529000044616A207CA02AB07C3C82C03DD4FF0B1 -:1052A000FF3005B030BDC82090FBF4F0401E85B241 -:1052B000280A8DF80000E8B28DF801006A46022144 -:1052C00040F2162002F0C8F910B14FF0FF30E8E7C5 -:1052D00002AA0C2140F6C12002F0BEF910B14FF035 -:1052E000FF30DEE7044884810020DAE7FEF2ABC439 -:1052F000AAF1DFDFBBAFDFDF800200201FB504466D -:105300004848007A00F0030054F820000190454816 -:10531000007A00F0040010B1019840420190414829 -:10532000007AC0F3C10054F8200002903D48007A92 -:1053300000F0200010B10298404202903948007AF3 -:10534000C0F3811054F8200003903648008900F41F -:10535000807010B10398404203903349019880FB5C -:105360000101800F40EA810001902F49029880FBE3 -:105370000110820042EA917002902B49039880FB51 -:105380000110820042EA917003900198000E8DF89E -:1053900000000198000C8DF801000198000A8DF8BA -:1053A00002000198C0B28DF803006A4604214FF450 -:1053B000747002F051F918B14FF0FF3004B010BD15 -:1053C0000298000E8DF800000298000C8DF8010084 -:1053D0000298000A8DF802000298C0B28DF803000E -:1053E0006A4604214FF4757002F036F910B14FF09F -:1053F000FF30E3E70398000E8DF800000398000CDF -:105400008DF801000398000A8DF802000398C0B2DD -:105410008DF803006A4604214FF4767002F01CF9FF -:10542000CCE700008002002009E3CA0210B586B074 -:10543000044647A00068039046A00068029046A07A -:105440000068019045A00068009004F0030003A9E3 -:10545000085C8DF8140003A8C4F3C101405C8DF80A -:10546000150003A8C4F38111405C8DF8160004F008 -:10547000030002A9085C8DF8100002A8C4F3C10162 -:10548000405C8DF8110002A8C4F38111405C8DF8D6 -:10549000120005AA032140F2264002F0DDF818B1FF -:1054A0004FF0FF3006B010BD04AA032140F22A409D -:1054B00002F0D2F810B14FF0FF30F3E701980590F9 -:1054C0000098049004F0040058B19DF8140040F0D6 -:1054D00001008DF814009DF8100040F001008DF8D7 -:1054E000100004F0200058B19DF8150040F00100B4 -:1054F0008DF815009DF8110040F001008DF81100A5 -:1055000004F4807058B19DF8160040F001008DF849 -:1055100016009DF8120040F001008DF8120005AA57 -:1055200003214FF4886002F097F810B14FF0FF307C -:10553000B8E704AA032140F2314002F08DF810B11F -:105540004FF0FF30AEE7064804810020AAE70000D4 -:105550004CCD6C000CC92C003656760026466600F1 -:1055600080020020F8B505460E464FF47A7095FB90 -:10557000F0F000FB06F4200E8DF80000200C8DF8F2 -:105580000100200A8DF80200E0B28DF803006A469F -:1055900004214FF4AE7002F05FF8F8BD38B5044650 -:1055A000052094FBF0F084B220128DF80000E0B2E8 -:1055B0008DF801006A4602214FF4AD7002F04CF8FC -:1055C00038BD38B50446052094FBF0F084B22012B3 -:1055D0008DF80000E0B28DF801006A4602214FF418 -:1055E000AC7002F039F838BD38B5044600200090A0 -:1055F00004F0010020B19DF8000040F03000009060 -:1056000004F0020020B19DF8000040F00C00009072 -:1056100004F0040020B19DF8000040F00300009069 -:105620006A4601214FF4A47002F016F838BD38B56F -:105630000446012C01DA012402E0042C00DD0424DC -:10564000601EC0B200906A46012140F24F1002F085 -:1056500003F838BD2DE9FC4706460F4606F0070063 -:1056600010B1B7F5C86F03DD4FF0FF30BDE8FC8720 -:105670003846FBF712F881465949FAF73FFE804653 -:10568000684601F027F89DF80000022806D004289B -:1056900016D0082826D0102848D135E04FF08D418B -:1056A0004046FAF7F9FD8146FBF726F884B24D49EA -:1056B0004046FAF7F1FD8146FBF71EF885B238E067 -:1056C0004FF08C414046FAF7E7FD8146FBF714F8AE -:1056D00084B245494046FAF7DFFD8146FBF70CF8F6 -:1056E00085B226E04FF08B414046FAF7D5FD814662 -:1056F000FBF702F884B23D494046FAF7CDFD8146FA -:10570000FAF7FAFF85B214E04FF08A414046FAF703 -:10571000C3FD8146FAF7F0FF84B235494046FAF7F7 -:10572000BBFD8146FAF7E8FF85B202E04FF0FF309B -:105730009CE700BF20128DF80400E0B28DF8050050 -:1057400028128DF80600E8B28DF8070006F0010077 -:10575000A0B101AA02214FF4EA7001F07DFF10B15F -:105760004FF0FF3082E70DF1060202214FF49270F4 -:1057700001F072FF10B14FF0FF3077E706F0020042 -:10578000A0B101AA02214FF4EC7001F065FF10B145 -:105790004FF0FF306AE70DF1060202214FF49470DA -:1057A00001F05AFF10B14FF0FF305FE706F0040040 -:1057B000A0B101AA02214FF4EE7001F04DFF10B12B -:1057C0004FF0FF3052E70DF1060202214FF49670C0 -:1057D00001F042FF10B14FF0FF3047E7002045E7EE -:1057E00000004843000040460000C045000040451E -:1057F0000000C04438B50446052094FBF0F085B2A3 -:1058000028128DF80000E8B28DF801006A460221E6 -:105810004FF4EF7001F020FF38BD38B50446052085 -:1058200094FBF0F085B228128DF80000E8B28DF8F4 -:1058300001006A4602214FF4ED7001F00DFF38BD02 -:1058400013B50C460A23012269460248FDF764FBA2 -:1058500000981CBDC001002030B585B005466FF032 -:105860007F40042104AACDE9002102902948406824 -:10587000017801230D222848FCF7ECF910B107202C -:1058800005B030BD9DF81300C0F301109DF8101055 -:1058900001F0E00140EAE1008DF80C009DF81300F2 -:1058A000C0F381009DF8111001F0E00140EAE10031 -:1058B0008DF80D009DF8130000F003009DF8121004 -:1058C00001F0E00140EAE1008DF80E0000241CE048 -:1058D00003A8005D18B9002045F8240013E00F4824 -:1058E00045F8240006E055F824000D49FAF7D4FCE9 -:1058F00045F8240003A8005D401EC0B203A9085566 -:105900000028F0D100BF601CC4B2032CE0DB0020F3 -:10591000B6E700007C000020240100207B14AE3E8E -:105920001D5A843F07B590B001208DF83400002047 -:105930008DF835006FF07F4002210DAACDE90021DE -:105940000290FE480068407D0990FC48406800785D -:10595000012308900146FA48099AFCF735FB18B173 -:105960004FF0FF3013B000BDC820FBF7D3FE00207E -:105970008DF834006FF07F4001210DAACDE90021A0 -:105980000290EE480068407C0990EC48406800783E -:105990000B4608900146EA48099AFCF715FB10B13E -:1059A0004FF0FF30DEE76FF07F4001210DAACDE917 -:1059B00000210290E148006840790990DF48406882 -:1059C00000780B4608900146DD48099AFCF7FCFA7E -:1059D00010B14FF0FF30C5E76FF07F4001210DAAF5 -:1059E000CDE900210290D5480068407D0990D34858 -:1059F000406800780B4608900146D148099AFCF7A8 -:105A0000E3FA10B14FF0FF30ACE76FF07F400121B7 -:105A10000DAACDE900210290C8480068807E099057 -:105A2000C648406800780B4608900146C448099A69 -:105A3000FCF7CAFA10B14FF0FF3093E76FF07F40E8 -:105A400001210DAACDE900210290BC48006800792F -:105A50000990BA48406800780B4608900146B8485B -:105A6000099AFCF7B1FA10B14FF0FF307AE70C2039 -:105A70008DF834006FF07F4001210DAACDE900219F -:105A80000290AE48006800790990AC484068007800 -:105A90000B4608900146AA48099AFCF795FA10B1FE -:105AA0004FF0FF305EE70F20FBF734FEA348806A1B -:105AB000407A8DF834006FF07F4001210DAACDE9C6 -:105AC000002102909D480068807809909B484068BA -:105AD00000780B46089001469948099AFCF774FA39 -:105AE00010B14FF0FF303DE79448806A007A8DF89E -:105AF00034006FF07F4001210DAACDE90021029012 -:105B00008E480068407809908C48406800780B46C1 -:105B1000089001468A48099AFCF756FA10B14FF0EE -:105B2000FF301FE7129838B18448806A807A40F0CD -:105B3000E0008DF8340004E08048806A807A8DF8B7 -:105B400034006FF07F4001210DAACDE900210290C1 -:105B50007A480068807909907848406800780B4658 -:105B6000089001467648099AFCF72EFA10B14FF0DA -:105B7000FF30F7E6129838B17048806AC07A40F07A -:105B8000E0008DF8340003E06E48C07A8DF83400F0 -:105B90006FF07F4001210DAACDE9002102906748F6 -:105BA0000068C07909906548406800780B46089005 -:105BB00001466348099AFCF707FA10B14FF0FF302D -:105BC000D0E6129810B1C820FBF7A4FD40208DF854 -:105BD00034006FF07F4001210DAACDE90021029031 -:105BE00056480068007909905448406800780B4690 -:105BF000089001465248099AFCF7E6F910B14FF0B7 -:105C0000FF30AFE678208DF834006FF07F4001213F -:105C10000DAACDE90021029048480068407909901A -:105C20004648406800780B46089001464448099A67 -:105C3000FCF7CAF910B14FF0FF3093E64148808974 -:105C40000990FBF767FD00208DF834006FF07F406E -:105C500001210DAACDE90021029038480068407961 -:105C600009903648406800780B4608900146344851 -:105C7000099AFCF7A9F910B14FF0FF3072E66FF006 -:105C80007F4002210DAACDE9002102902B48006837 -:105C9000007B09902948406800780123089001465C -:105CA0002748099AFBF7D6FF10B14FF0FF3059E6AD -:105CB0009DF835009DF8341040EA01200A900C212F -:105CC0000A9890FBF1F0C0B20C900021109881600E -:105CD000109841601098016011988160119841609E -:105CE0001198016000200B9083E06FF07F400C2141 -:105CF0000DAACDE90021029010480068407B059074 -:105D00000E48406800780123049001460C48059A2B -:105D1000FBF7A0FF10B14FF0FF3023E69DF83500F0 -:105D20009DF8341040EA012000B2ADF820009DF843 -:105D300037009DF8361040EA012005E07C00002085 -:105D4000240100205C84000800B2ADF822009DF818 -:105D500039009DF8381040EA012000B2ADF8240067 -:105D600011980068BDF92010014411980160119844 -:105D70004168BDF922000144119841601198806882 -:105D8000BDF924100144119881609DF83B009DF8F5 -:105D90003A1040EA012000B2ADF818009DF83D002D -:105DA0009DF83C1040EA012000B2ADF81A009DF8C1 -:105DB0003F109DF83E0041EA002000B2ADF81C0003 -:105DC00010980068BDF918100144109801601098EF -:105DD0004068BDF91A10014410984160109881681C -:105DE000BDF91C000144109881600B98401CC0B2A2 -:105DF0000B90DDE90B018842FFF677AF5148006850 -:105E0000079010980068C117090441EA1041000486 -:105E1000CDE904010023079AFAF786F9CDE90801D4 -:105E200000230C9AFAF780F9109908604548006839 -:105E3000079010984068C117090441EA1041000416 -:105E4000CDE904010023079AFAF76EF9CDE90801BC -:105E500000230C9AFAF768F91099486039480068ED -:105E6000079010988068C117090441EA10410004A6 -:105E7000CDE904010023079AFAF756F9CDE90801A4 -:105E800000230C9AFAF750F9109988602D48406861 -:105E9000079011980068C117090441EA10410004F5 -:105EA000CDE904010023079AFAF73EF9CDE908018C -:105EB00000230C9AFAF738F91199086021484068D4 -:105EC000079011984068C117090441EA1041000485 -:105ED000CDE904010023079AFAF726F9CDE9080174 -:105EE00000230C9AFAF720F9119948601548406888 -:105EF000079011988068C117090441EA1041000415 -:105F0000CDE904010023079AFAF70EF9CDE908015B -:105F100000230C9AFAF708F91199886011988068A3 -:105F2000002806DD11988068A0F5803011998860FE -:105F300005E01198806800F5803011998860002094 -:105F400010E500005C8400082DE9FF5F06460F465F -:105F500000256FF07F40032103AACDE900210290C4 -:105F60003D484068017801230D223C48FBF772FE52 -:105F700018B1072004B0BDE8F09F9DF80C0000F0B8 -:105F80001F008DF80C009DF80D0000F01F008DF82B -:105F90000D009DF80E0000F01F008DF80E0000248B -:105FA00056E056F8240057F82410A0EB010BBBF183 -:105FB000000F01DB594601E0CBF100010846FAF77A -:105FC00063FB4FF08F410290FAF798F9814603A8DE -:105FD000005D68B322490868FAF75FFB83465946BB -:105FE0002048FAF78BF9804604E01F494046FAF74B -:105FF00053F9804603A8005D401EC0B203A90855AE -:106000000028F2D141464846FAF778F983464FF026 -:106010007E51FAF73BF982462AF0004B104881691D -:106020005846FAF7E7FB12D20120A04005430EE0E4 -:106030000B4801694846FAF7D3FB05D30848416984 -:106040004846FAF7D7FB02D20120A0400543641C62 -:10605000032CA6DB28468DE77C00002024010020CD -:106060005C84000800B04C4554E3853F70B505469C -:10607000284600F00FF80446E81C00F00BF844EA4C -:10608000C00084B2A81D00F005F844EA801084B274 -:10609000204670BD014691F90020002A01DD002054 -:1060A0001EE091F90020002A01DA042018E091F99D -:1060B0000120002A01DD012012E091F90120002ACF -:1060C00001DA05200CE091F90220002A01DD02200E -:1060D00006E091F90220002A01DA062000E00720FC -:1060E00070470000FCF768F8FDF761FBFDF786FAE2 -:1060F000FDF76AFAFDF720FBFDF736FAFDF7E4FA43 -:10610000FDF7C4FA1E2207490748FBF7F3F8FAF730 -:1061100003FE00F081F902F0C5F801E002F0C8F8D2 -:10612000FCE7000008020020B00000202DE9F04F3D -:1061300099B004460D4616464FF07E574FF00008C2 -:106140004FF000094FF0000A12A813A918AB0EAACD -:10615000CDE9001014A916A8FEF734FF18B10120EC -:1061600019B0BDE8F08FBDF84C0000F48070002835 -:106170007ED00E98FAF788FA83464FF09D41FAF7E1 -:10618000BDF807460F98FAF77FFA83464FF09D4116 -:10619000FAF7B4F880461098FAF776FA83464FF08B -:1061A0009D41FAF7ABF881461198FAF76DFA8346EC -:1061B0004FF09D41FAF7A2F8824639464FF08040F1 -:1061C000FAF76AF849460590FAF766F841460790EB -:1061D0004FF04040FAF760F851460590FAF75CF846 -:1061E00006900799FAF700F88346FAF7B2FACDE974 -:1061F0000801FEF701FA4FF0C042544BCDE90A0105 -:10620000FAF761F9CDE90C01FAF7CEFA20604946B8 -:106210004FF08040FAF740F849460290FAF73CF810 -:10622000414604904FF04040FAF736F8414602905C -:10623000FAF732F803900499FAF728F883464FF0FA -:106240007E51F9F7D1FF0590FAF783FACDE90801FD -:1062500039464FF08040FAF71FF841460390FAF7AD -:106260001BF8494604904FF08040FAF715F800E01B -:1062700068E051460390FAF70FF883460499F9F75E -:10628000B3FF0590FAF765FACDE90601DDE90823C9 -:10629000FEF7FAFB4FF0C0422C4BCDE90A01FAF7AA -:1062A00012F9CDE90C01FAF77FFA28605146504601 -:1062B000F9F7F2FF494604904846F9F7EDFF4146E9 -:1062C00003904046F9F7E8FF394601903846F9F760 -:1062D000E3FF00900199F9F787FF02900399F9F71E -:1062E000D5FF83460499F9F7D1FF0590FAF731FA03 -:1062F000CDE9080151463846F9F7CEFF49460490EA -:106300004046F9F7C9FF03900499F9F76DFF4FF084 -:1063100080410590F9F7C0FF8346FAF71AFACDE9F4 -:106320000601DDE90823FEF7AFFB4FF0C042074B43 -:10633000CDE90A01FAF7C7F8CDE90C01FAF734FA0A -:10634000306001E002200BE7002009E766A64C4020 -:1063500070B586B004460D4616464FF0FF30062154 -:1063600004AA0123CDE9002102903B22D02110484C -:10637000FBF770FC10B1012006B070BD9DF8110054 -:106380009DF8101040EA012000B220809DF8130013 -:106390009DF8121040EA012000B228809DF81500F7 -:1063A0009DF8141040EA012000B230800020E3E79D -:1063B0002401002070B586B004460D4616464FF005 -:1063C000FF30062104AA0123CDE9002102904322D7 -:1063D000D0211048FBF73EFC10B1012006B070BD83 -:1063E0009DF811009DF8101040EA012000B22080B5 -:1063F0009DF813009DF8121040EA012000B2288099 -:106400009DF815009DF8141040EA012000B230807C -:106410000020E3E72401002038B5684600F034FA94 -:1064200000B138BD782001F09FF800B1F9E778207D -:1064300000F018F900B1F4E7642001F04BF800B166 -:10644000EFE7FEF7B3FD00B1EBE70D48FFF70EFEF7 -:106450000446FEF7EBFF00B1E3E740F27310FEF7EE -:106460004DFC00B1DDE76420FEF710FF00B1D8E776 -:1064700001F0CEFE012000F0FBFE00BFD1E70000DE -:10648000710000202DE9F04F87B05F4A5F496048F6 -:10649000FFF74CFE5F4A60496048FFF759FF604ACA -:1064A00060496148FFF786FF5A48B0F90000FAF7E3 -:1064B000F9F8044600224FF0804301F0BDF9CDE920 -:1064C00002015548B0F90000FAF7ECF80646002240 -:1064D0004FF0804301F0B0F904460D464F48B0F943 -:1064E0000000FAF7DFF8064600224FF0804301F083 -:1064F000A3F9824622462B46F9F73EFFCDE900017B -:10650000DDE90223F9F738FF804601F055FFCDE9B8 -:106510000401FAF705F9454908804148B0F900003F -:10652000FAF7C0F8044600224FF0804301F084F9E6 -:10653000CDE902013B48B0F90000FAF7B3F806468E -:1065400000224FF0804301F077F904460D463648AB -:10655000B0F90000FAF7A6F8064600224FF0804393 -:1065600001F06AF9804622462B46F9F705FFCDE98E -:106570000001DDE90223F9F7FFFE824601F01CFF6E -:10658000CDE90401FAF7CCF82949088020480068D1 -:10659000FAF7DFF821F0004104460022254BFAF714 -:1065A000EBF801D2012600E0002618480068FAF74F -:1065B000D0F821F00041044600221E4BFAF7DCF827 -:1065C00001D2012000E0002006431B4806700E485F -:1065D0000068FAF7BEF804460D460C480068FAF762 -:1065E000B8F8804689460A480068FAF7B2F80646C5 -:1065F00032460B4611A0CDE90089CDE90245FDF7F1 -:1066000093FA07B0BDE8F08F5C000020580000202E -:106610005400002064000020620000206000002080 -:106620006A00002068000020660000206C00002046 -:106630006E00002000004E407000002070697463FE -:10664000683A25302E3166202020726F6C6C3A2516 -:10665000302E31662020207961773A25302E316640 -:106660000D0A000070B50446002624F00104184805 -:1066700090F8240008B1002070BD1548807A10B948 -:106680004FF0FF30F8E71248057C807A204010492F -:1066900008740846007CA04202D04FF0FF3600E0AC -:1066A000002614B90A48007D18B1012001F02CFE23 -:1066B00002E0002001F028FE3CB100F001FB20B117 -:1066C000034805744FF0FF30D6E73046D4E70000AA -:1066D0007C00002001461148407A30B1012807D0E3 -:1066E000022808D003280CD108E0022008700BE033 -:1066F0000420087008E00820087005E010200870E9 -:1067000002E04FF0FF30704700BF0448C07C18B172 -:1067100008784006000E08700020F4E77C00002096 -:1067200001461348407A30B1012808D002280AD027 -:10673000032810D10BE04FF4804008800EE041F6B2 -:106740009C7008800AE04FF48050088006E04FF407 -:106750000060088002E04FF0FF30704700BF04483F -:10676000C07C10B10888401008800020F5E70000C8 -:106770007C00002001460248007C08700020704721 -:106780007C00002001460F48007A30B1012807D074 -:10679000022809D003280FD10AE0FA2008800EE071 -:1067A0004FF4FA7008800AE04FF47A70088006E02F -:1067B0004FF4FA60088002E00020088000BF00BFAC -:1067C000002070477C00002001460E48007A30B15E -:1067D000012807D0022808D003280CD108E00A4875 -:1067E00008600BE00948086008E00948086005E017 -:1067F0000848086002E04FF0FF30704700BF0020FB -:10680000FBE700007C0000200000034300008342FF -:10681000333303423333834101461248C07A082898 -:1068200017D2DFE800F01704070A0D101318BC2078 -:10683000088013E06220088010E02A2008800DE024 -:10684000142008800AE00A20088007E0052008805C -:1068500004E000BF00BF0020088000BF00BF002090 -:10686000704700007C0000200146064890F8240094 -:1068700010B14FF0FF3070470248C08908800020F7 -:10688000F9E700007C00002030B585B00546802087 -:106890008DF80C006FF07F40012103AACDE90021A3 -:1068A00002906F480068427D6D484068017801237E -:1068B0006C48FBF789FB18B14FF0FF3005B030BDD5 -:1068C0006420FAF727FF00208DF80C006FF07F405E -:1068D000012103AACDE90021029061480068427DB0 -:1068E0005F484068017801235E48FBF76DFB10B1FB -:1068F0004FF0FF30E2E76FF07F40062103AACDE9B9 -:106900000021029056480068427E55484068017850 -:1069100001235448FBF79EF910B14FF0FF30CDE74B -:106920009DF81100C007400F9DF80F1001F0010104 -:1069300040EA41009DF80D1001F0010140EA010418 -:1069400084B1012C03D101214548C17434E0022CEB -:1069500003D100214248C1742EE000BF00BF4FF0B8 -:10696000FF30ABE76FF07F40012103AACDE90021A2 -:1069700002903B480068C27839484068017801239A -:106980003848FBF767F910B14FF0FF3096E79DF8F4 -:106990000C0000F00F0424B900BF00BF4FF0FF301F -:1069A0008CE7042C05D100BF00BF01212C48C17425 -:1069B00002E000212A48C174FF2129488172FF208A -:1069C00027490872FF2126484172C1724FF6FF71B4 -:1069D000C181FF21017481740121017380F82210AB -:1069E000002180F823104175017516300160416067 -:1069F0008160163880F8241080F82510C1844FF487 -:106A0000FA6000F08DFC10B14FF0FF3056E7022025 -:106A100000F01AFB10B14FF0FF304FE72A2000F0D2 -:106A20000DFD10B14FF0FF3048E7322000F052FD6D -:106A300010B14FF0FF3041E70020FFF713FE10B117 -:106A40004FF0FF303AE7002000F04AFB10B14FF062 -:106A5000FF3033E7002000F087FD00202EE7000024 -:106A60007C000020240100202DE9F04389B0054678 -:106A70000E46904699462D4890F8250020B14FF0DB -:106A8000FF3009B0BDE8F08316B94FF0FF30F8E7EA -:106A9000002423E0281B102801DD102000E0281B23 -:106AA00087B232193946204600F0D6FD10B14FF0BA -:106AB000FF30E6E705AA3946204600F0B3F810B1EA -:106AC0004FF0FF30DDE730193A4605A9F9F77FFBB3 -:106AD00010B16FF00100D4E7E01984B2AC42D9DB09 -:106AE0004FEA28208DF8100008F0FF008DF8110003 -:106AF0006FF07F40022104AACDE9002102900B48EB -:106B00000068427F09484068017801230848FBF784 -:106B10005BFA10B14FF0FF30B3E70121034880F872 -:106B20002510A0F826900020ABE700007C00002094 -:106B3000240100202DE9FF4104460F461646374840 -:106B400090F8240020B94FF0FF3004B0BDE8F08188 -:106B50003248807A10B94FF0FF30F6E76FF07F408F -:106B6000022103AACDE9002102902C480068027B93 -:106B70002A484068017801232948FBF76BF810B1D7 -:106B80004FF0FF30E1E79DF80D009DF80C1040EA52 -:106B90000125A54203DA00203070401ED5E71F48CA -:106BA00040684088B5EB600F1EDD6FF07F4001212B -:106BB00003AACDE90021029018480068C27C17485A -:106BC0004068017801231648FBF744F810B14FF0F4 -:106BD000FF30BAE79DF80C0000F0100020B100F083 -:106BE0006FF86FF00100B0E76FF07F40CDE90074FF -:106BF00002900A480068427B0848406801780123F7 -:106C00000748FBF727F810B14FF0FF309DE795FBE1 -:106C1000F4F0401E3070002097E700007C00002058 -:106C2000240100207FB504460D4616461EB94FF0DC -:106C3000FF3004B070BD2048807A10B94FF0FF30AB -:106C4000F7E720128DF80C00E0B28DF80D009DF8EA -:106C50000D002844184949684989884202DD4FF0EF -:106C6000FF30E6E76FF07F40022103AACDE9002163 -:106C7000029011480068C27E0F48406801780123E5 -:106C80000E48FBF7A1F910B14FF0FF30D1E76FF0DC -:106C90007F40CDE90065029007480068027E064803 -:106CA0004068017801230548FAF7D4FF10B14FF08E -:106CB000FF30BEE70020BCE77C000020240100205C -:106CC0001FB59848807A18B94FF0FF3004B010BD56 -:106CD000002003906FF07F40012103AACDE900213D -:106CE000029090480068427C8E48406801780123F9 -:106CF0008D48FBF769F910B14FF0FF30E6E76FF010 -:106D00007F40012103AACDE9002102908548006857 -:106D1000427984484068017801238348FBF754F99D -:106D200010B14FF0FF30D1E76FF07F40012103AA8F -:106D3000CDE9002102907B480068027979484068DB -:106D4000017801237848FBF73FF910B14FF0FF308D -:106D5000BCE7744890F82400002870D00C20039001 -:106D60006FF07F40012103AACDE9002102906D4818 -:106D7000006802796B484068017801236A48FBF794 -:106D800023F910B14FF0FF30A0E73220FAF7C2FC30 -:106D9000C02003906348807A00F0010020B19DF884 -:106DA0000C0040F0200003906FF07F40012103AA07 -:106DB000CDE9002102905B4800680279594840689B -:106DC000017801235848FBF7FFF810B14FF0FF306E -:106DD0007CE75448407C10B10220039001E0002081 -:106DE00003906FF07F40012103AACDE900210290BA -:106DF0004C480068427C4B484068017801234A486F -:106E0000FBF7E2F810B14FF0FF305FE7002003908E -:106E10006FF07F40012103AACDE900210290414893 -:106E2000006842793F484068017801233E48FBF7FB -:106E3000CBF8002873D04FF0FF3047E7FFE704207E -:106E400003906FF07F40012103AACDE90021029059 -:106E50003448006802793348406801780123324899 -:106E6000FBF7B2F810B14FF0FF302FE72D48807CD0 -:106E700020B92C48807A00F0010010B9402003901E -:106E800001E0602003906FF07F40012103AACDE96B -:106E90000021029023480068027922484068017866 -:106EA00001232148FBF790F810B14FF0FF300DE7B8 -:106EB0003220FAF72FFC1B48407C10B101200390D0 -:106EC00001E0002003906FF07F40012103AACDE98B -:106ED0000021029013480068427C12484068017803 -:106EE00001231148FBF770F810B14FF0FF30EDE6C9 -:106EF0006FF07F4101220B481030CDE90121009055 -:106F00001038006842790748406801780123064834 -:106F1000FBF75AF810B14FF0FF30D7E6FFE700203B -:106F2000D4E600007C000020240100202DE9F04F71 -:106F30008DB083460F4602200C90424890F8240002 -:106F400020B1002000F094F9012600E0002603A8FB -:106F5000FFF718FC05A8FFF7BDFB01A8FFF75CFCD5 -:106F600002A8FFF781FC374890F80AA004A8FFF7B1 -:106F700001FC002407E0002239465846FEF7D2FC07 -:106F800000B902E0641C022CF5DB00BF022C01D129 -:106F9000002528E0002407E0012206A909A8FEF741 -:106FA000C1FC00B902E0641C022CF5DB00BF022C1E -:106FB00001D1002517E006A93846FDF7C9FA00F00F -:106FC000FF0809A95846FEF7BFFF00F0FF0900259A -:106FD000B9F1000F01D145F00105B8F1000F01D161 -:106FE00045F0020500BFFF2016490872FF21154831 -:106FF0004172C1724FF6FF71C181FF21817201742C -:1070000001210173BDF80C0000F08AF99DF814000D -:1070100000F01AF8BDF8040000F010FABDF80800FE -:1070200000F058FA504600F09FFA9DF81000FFF764 -:1070300019FB16B1012000F01BF928460DB0BDE880 -:10704000F08F00007C0000201FB504462248807AA3 -:1070500018B94FF0FF3004B010BD022C06D0042C3C -:1070600007D0082C08D0102C0CD108E00020039089 -:107070000BE00820039008E01020039005E01820A2 -:10708000039002E04FF0FF30E5E700BF1248407A7E -:107090009DF80C10B0EBE10F01D10020DBE76FF0A1 -:1070A0007F40012103AACDE9002102900A4800682F -:1070B000C27909484068017801230848FAF784FF3B -:1070C00010B14FF0FF30C6E79DF80C00C110024828 -:1070D00041720020BFE700007C0000202401002056 -:1070E0001FB504466048807CA04202D1002004B055 -:1070F00010BD002C5BD06FF07F40012103AACDE9C9 -:107100000021029058480068027957484068017889 -:1071100001235648FAF79EFD10B14FF0FF30E6E725 -:107120009DF80C0020F0200003906FF07F400121BB -:1071300003AACDE9002102904B48006802794A4831 -:107140004068017801234948FAF73EFF10B14FF03B -:10715000FF30CCE70320FAF7DDFA02200390424823 -:1071600090F8220020B19DF80C0040F080000390C0 -:107170003D4890F8230020B19DF80C0040F030000D -:1071800003906FF07F40012103AACDE90021029016 -:1071900035480068C27D344840680178012333488F -:1071A000FAF712FF00285BD04FF0FF309FE76FF037 -:1071B0007F40012103AACDE9002102902A480068FE -:1071C000027929484068017801232848FAF742FDEE -:1071D00010B14FF0FF308AE79DF80C0020F020003E -:1071E00003906FF07F40012103AACDE900210290B6 -:1071F0001D48006802791C484068017801231B483B -:10720000FAF7E2FE10B14FF0FF3070E70320FAF713 -:1072100081FA154890F8220010B18020039001E017 -:1072200000200390104890F8230020B19DF80C0036 -:1072300040F0300003906FF07F40012103AACDE9B8 -:107240000021029008480068C27D07484068017824 -:1072500001230648FAF7B8FE10B14FF0FF3046E7B9 -:1072600001488474002042E77C00002024010020B3 -:107270001FB50446284890F82400A04202D10020FF -:1072800004B010BD5CB3244890F8250010B94FF04D -:10729000FF30F5E7002001F037F80020FFF720FF6E -:1072A0001D49C88C00F016F9002003906FF07F4054 -:1072B000012103AACDE90021029017484068017816 -:1072C000012323221548FAF77FFE0121124880F896 -:1072D0002410012001F018F8FFF7F2FC1AE000205A -:1072E00001F012F80C48007C03906FF07F40012100 -:1072F00003AACDE9002102900748406801780123E4 -:1073000023220648FAF760FE0021034880F8241083 -:10731000FFF7D6FC0020B3E77C000020240100200A -:107320001FB504462348807A18B94FF0FF3004B0E7 -:1073300010BDFA2C09D0B4F5FA7F09D0B4F57A7FE4 -:1073400009D0B4F5FA6F0CD108E0002003900BE0EF -:107350000820039008E01020039005E01820039017 -:1073600002E04FF0FF30E2E700BF1248007A9DF8DC -:107370000C10B0EBE10F01D10020D8E76FF07F4097 -:10738000012103AACDE9002102900A480068827910 -:1073900008484068017801230748FAF715FE10B144 -:1073A0004FF0FF30C3E79DF80C00C0100149087290 -:1073B0000020BCE77C000020240100201FB504460B -:1073C0001C4890F82300A04202D1002004B010BD58 -:1073D00014B13020039001E0002003901548807C18 -:1073E00020B19DF80C0040F002000390114890F885 -:1073F000220020B19DF80C0040F0800003906FF057 -:107400007F40012103AACDE90021029009480068CC -:10741000C27D08484068017801230748FAF7D4FD87 -:1074200010B14FF0FF30D1E7024880F82340002030 -:10743000CCE700007C000020240100201FB504469A -:107440002248807A18B94FF0FF3004B010BDBC2C30 -:1074500002DB0120039015E0622C02DB0220039086 -:1074600010E02A2C02DB032003900BE0142C02DB3B -:107470000420039006E00A2C02DB0520039001E0C3 -:10748000062003901148C07A9DF80C10884201D163 -:107490000020DAE76FF07F40012103AACDE9002147 -:1074A00002900A4800688278084840680178012301 -:1074B0000748FAF789FD10B14FF0FF30C5E79DF896 -:1074C0000C100248C1720020BFE700007C000020C1 -:1074D000240100201FB504462148807A18B94FF0D6 -:1074E000FF3004B010BD1E4890F8240010B14FF0DA -:1074F000FF30F6E7042C01DA042404E0B4F57A7FC7 -:1075000001DD4FF47A744FF47A7090FBF4F0401E72 -:10751000C0B203906FF07F40012103AACDE90021A2 -:1075200002900F48006842780D48406801780123B6 -:107530000C48FAF749FD10B14FF0FF30D1E79DF844 -:107540000C00401C4FF47A7191FBF0F081B20448BA -:10755000C1810146C9894810FFF770FF0020C0E7CC -:107560007C000020240100201FB5044604F07000B8 -:1075700010B10120039005E014B10020039001E058 -:10758000402003906FF07F40012103AACDE9002144 -:1075900002902F480068427D2D4840680178012301 -:1075A0002C48FAF711FD28B1002129488172481EA4 -:1075B00004B010BD9DF80C0020F040012448017378 -:1075C0000020039004F0400020B99DF80C0040F02A -:1075D0000400039004F0200020B99DF80C0040F056 -:1075E0000200039004F0100020B99DF80C0040F058 -:1075F0000100039004F0080020B99DF80C0040F051 -:10760000380003906FF07F40012103AACDE90021EB -:1076100002900F480068827D0D4840680178012380 -:107620000C48FAF7D1FC20B1002109488172481EAC -:10763000BEE724B1082C02D00020FFF7BFFE0448AB -:107640008472002101753220FAF764F80020AFE758 -:107650007C000020240100207FB504460D4616461C -:107660001EB94FF0FF3004B070BD2048807A10B9C9 -:107670004FF0FF30F7E720128DF80C00E0B28DF8E4 -:107680000D009DF80D002844184949684989884231 -:1076900002DD4FF0FF30E6E76FF07F40022103AAE2 -:1076A000CDE90021029011480068C27E0F48406871 -:1076B000017801230E48FAF787FC10B14FF0FF3034 -:1076C000D1E76FF07F40CDE9006502900748006880 -:1076D000027E06484068017801230548FAF774FCE9 -:1076E00010B14FF0FF30BEE70020BCE77C00002067 -:1076F000240100202DE9FF5F0020394908600024A3 -:107700000EE0384951F82400F8F7C7FF0546344821 -:1077100001682846F8F768FD31490860601CC4B26A -:107720001E2CEEDB30492E480068F8F7E7FD0546D1 -:107730002E49F8F7E3FD04462D49F8F7ADFD2D4934 -:107740000860084601682C48F8F7A0FD054629485E -:1077500001682846F8F7D2FD04462848016820460B -:10776000F8F79AFD2649086026480068F8F7F1FF07 -:107770008046254A254BF8F7A6FE04460D462048CC -:107780000068F8F7E6FF064622462B46F8F70DFF9D -:1077900082461F4A1F4B00F04FF8CDE90201F9F76E -:1077A00003F81D49086008460068F8F7D2FF044650 -:1077B0000D4613480068F8F7CCFF06460F460D4803 -:1077C0000068F8F7C6FF804642460B4613A0CDE995 -:1077D0000067CDE90245FCF7A7F9BDE8FF9F00006F -:1077E00038000020080200200000F04100F07F4532 -:1077F000333353403C0000200000A04044000020F0 -:107800004000002048000020A089B0E1E915274091 -:10781000C442AD69DE71F8BF4C000020563A252EF7 -:1078200032662052533A252E32662070706D3A250A -:107830002E32660D0A0000002DE9F04D1D460C4663 -:1078400098B0174621F0004123F00043002814BFF0 -:107850004FF0010C4FF0000C0CEB440CFE4A0CEB0B -:1078600002064FEA620C66452BD33E0018BF012684 -:1078700006EB45061644F94A964222D3F84A53EAE3 -:10788000070C02D0944205D148B918B00020114627 -:10789000BDE8F08D002808BF4FF0000C01D04FF07C -:1078A000010C0CEB440212F5001F0AD8002F14BF84 -:1078B0004FF0010C4FF0000C0CEB450212F5001FCD -:1078C00007D918B03A462B462146BDE8F04DFCF7E3 -:1078D000CCB90022DFF88CA3002CB8BF534526DAC0 -:1078E000DFF884C36345A8BF022220DADFF870C343 -:1078F0009C451CDCDFF874C30CEB235CBCF1140F5B -:1079000008DDCCF1340627FA06FC0CFA06F6BE4276 -:107910000DD108E05FB9CCF1140623FA06FC0CFA8D -:1079200006F69E4203D10CF00102C2F1020251EAB6 -:10793000000C19D1002D17DA002C18BF022A01D033 -:10794000012A07D00220FCF7B7F918B0BDE8F04DC6 -:10795000FCF780B90220FCF7AFF9FCF77BF918B00F -:1079600081F00041BDE8F08DB7F1000C6CD15345BA -:1079700025D104F1804212F5801201BF00280020B9 -:10798000B74918B008BFBDE8F08DB548884207DC9C -:10799000002DA1BF6046294618B0BDE8F08D07E074 -:1079A000281E05DA80F0004118B06046BDE8F08D71 -:1079B000AF497944D1E9000118B0BDE8F08DDFF896 -:1079C000A0C2634525D1002D1FDA19B1514512D14E -:1079D000D8B909E0002840F0EC82A24A214618B04C -:1079E00062F31E01BDE8F08D0020214618B060F35F -:1079F0001E01BDE8F08D08DA18B02346BDE8F04D51 -:107A0000024600206146F8F7D0BD18B02146BDE817 -:107A1000F08D514518DAB5F1804F0DD0A5F1005C1D -:107A2000BCF1FF5C10D1B4F1000C0DDB18B0614665 -:107A3000BDE8F04D00F0C0BC234618B00246BDE8DA -:107A4000F04D1946F8F73FBD060024F0004C3BD13D -:107A5000D9B1514533D1002C06DD002DA1BF002046 -:107A6000514618B0BDE8F08D002C01DD002D1BDB68 -:107A7000002C13DA002D11DB012A4FF0000014BF97 -:107A800078497C4918B0BDE8F08D022A18BF002C57 -:107A90000AD0012A08D1002C06DA0AE0002CB8BF6F -:107AA000002D11DA012A04D0002018B00146BDE8EB -:107AB000F08D18B000204FF00041BDE8F08DA1F12D -:107AC0004050B0F17F601AD0012000EBE47050EA22 -:107AD000020421D0624C521E4FF0000B104304BF31 -:107AE0004FF0000B644C654883427CDD644A654876 -:107AF00093421FDD884217DB002D25DB37E0002C89 -:107B000000DA4AB1022A0CBF01204FF0FF3018B052 -:107B1000BDE8F04DF8F7C6BD0120FCF7CDF818B070 -:107B2000BDE8F04DFCF7A3B84D4A8A4202DC002DB7 -:107B30000ADC1CE0814202DA002D18DA04E0484B2E -:107B4000994220DD002D12DD0220FCF7B5F8FCF78C -:107B500094F805460E460022534658462146F8F74B -:107B6000B2FC18B066F31E012846BDE8F08D022075 -:107B7000FCF7A2F8FCF788F80A46214618B062F331 -:107B80001E01BDE8F08D002230466146F8F795FCF5 -:107B900080460E466FF00102F8F732FF4FF0553283 -:107BA000394BF8F78DFC42463346F8F78CFC00223F -:107BB000364BF8F785FC8246424633460491104620 -:107BC0001946F8F780FC5246049BF8F77CFC8A467D -:107BD00000904FF0C0422E4B40463146F8F773FC00 -:107BE0002C4A2B4B00E027E0CDE9060151460098D6 -:107BF000F8F769FC82460191274A284B40463146F6 -:107C0000F8F761FC5246019BF8F757FC82460B4699 -:107C100002460591DDE90601F8F7AEFBDDE9062332 -:107C2000002688463046F8F748FC5246059BF8F790 -:107C300047FC024600F07EB90020B1F5801F07DA4C -:107C4000352230466146F8F7DBFE06466FF0340019 -:107C500000EB215024E00000FFFF1F00FFFF0F009A -:107C60000000F03F0000F07F0000404301FCFFFFF8 -:107C70003A1800000000F0FF0000F0BF0000E041F3 -:107C80000000F043FFFFEF3F5555D53F0000E03FB8 -:107C90004715F73FFE822B6544DF5DF80BAE543E7F -:107CA000A0F2FF300190C1F3130040F07F6141F07A -:107CB00040510291FE498842D8BF002004DDFD49B1 -:107CC0008142C8BF012001DD0D9008E000200D9029 -:107CD0000198401C01900298A0F580100290029932 -:107CE000F54878440B910D9900EBC100D0E90023D1 -:107CF0000F9330460A920B99F8F7DFFBCDE90601A6 -:107D0000DDE90A2130460F9BF8F736FB02460B46A9 -:107D10000020EA49F8F749FC059102460B4600901D -:107D2000DDE90601F8F7CFFB1490E5488A464FF0ED -:107D3000000878440299006812904FF0005040EA21 -:107D400061010D980F9B01EB804000F50021099126 -:107D50000A9A1298F8F7B1FB32460B9BF8F7B0FB82 -:107D600042465346F8F7AFFB06460291404651465D -:107D7000099B129AF8F7A7FBDDE90623F8F7A0FBA9 -:107D80003246029BF8F799FB059B009AF8F79BFB9C -:107D90000091149A0490534610461946F8F793FB45 -:107DA00006460246C7480B46029106217844FBF777 -:107DB000FBFECDE90510029B324610461946F8F746 -:107DC00082FBDDE90532F8F77EFB05910646534656 -:107DD00040461946149AF8F7CFFA009B049AF8F730 -:107DE00072FB3246059BF8F7C7FACDE9051042460B -:107DF000534610461946F8F766FB0022B24B029133 -:107E00000A90F8F7B9FADDE90532F8F7B5FA0E4647 -:107E10004246AD4B4046F8F750FB029B0A9AF8F7F2 -:107E20004CFBDDE90532F8F74BFB424602910A9024 -:107E3000334610465146F8F746FBCDE90601534656 -:107E4000149A02990A98F8F73EFB8A460290334644 -:107E5000424600990498F8F736FB5346029AF8F721 -:107E60008BFA82460B4602460591DDE90601F8F7DA -:107E700083FADDE90623002088460646F8F71DFB55 -:107E80005246059BF8F71CFB824609914FF0604271 -:107E90008E4B30464146F8F716FB049006918C4A0B -:107EA0008A4B50460999F8F70EFB82460291894A9F -:107EB000894B30464146F8F706FB5246029BF8F7DD -:107EC0005BFA864B7B440D9A03EBC203D3E9002394 -:107ED000F8F752FA0E9007910198F8F7E3FB059135 -:107EE000DDE9061382460E9A0498F8F745FA7C4AB3 -:107EF0007A440D9B02EBC303D3E900230093029263 -:107F0000F8F73AFA5246059BF8F736FA0026884603 -:107F100052463046059BF8F7D0FA009B029AF8F7D4 -:107F2000CCFA069B049AF8F7C8FA079B0E9AF8F762 -:107F3000C7FA024600200B46029038462946F8F759 -:107F4000C2FA824601912B4638461946029AF8F742 -:107F5000B4FA32464346F8F7B6FA5246019BF8F7B0 -:107F60000BFA07468A463246434629460298F8F7F6 -:107F7000AAFA05460E463A465346F8F7FDF9594A1D -:107F80008846914221DBA8EB020353EA000210D19C -:107F90002A463346F8F791FACDE90401524A534B89 -:107FA00038465146F8F7E8F9DDE90423F8F7E4FB31 -:107FB00021D20220FBF780FEFBF75FFE0A46214636 -:107FC00018B062F31E01BDE8F08D494B28F0004265 -:107FD0009A4210D3474A08EB020353EA00027FF4A7 -:107FE000C6AD2A463346F8F768FA3A465346F8F7DC -:107FF000C3FB7FF6BCAD0022019228F000403E4951 -:108000003E4A01EB2051824223DA481C4FF4801192 -:1080100021FA00F040443A4AC0F30A517A44394BFD -:10802000A1F2FF31CB4020EA0303C0F3130040F478 -:108030008010C1F11401C84012680190B8F1000F1E -:10804000BCBF4042019028463146F8F736FA054653 -:108050000E462A46334638465146F8F78DF94FF01A -:1080600000084246284B40460591F8F72CFACDE926 -:108070000601264A264B40460599F8F724FA009156 -:1080800002902A46334640460599F8F716FA3A46D2 -:108090005346F8F715FA1F4A1F4BF8F714FA009BDE -:1080A000029AF8F769F90746884602460B4635E01A -:1080B0008E9803007AB60B00EA1300000000F03F30 -:1080C000BA140000501300000000084009C7EE3F3A -:1080D000FD033ADCF5015B14E02F3EBE28120000E0 -:1080E000EC11000000009040FE822B654715973C84 -:1080F00000CC904000346F3F01FCFFFF0000E03FE8 -:10810000D0110000FFFF0F00432EE63F396CA80C92 -:10811000615C20BEEF39FAFE422EE63FDDE9060142 -:10812000F8F72AF9DDE9062305460E46F8F7C5F902 -:108130003A464346F8F7C4F90F462A4633460090BC -:1081400010461946F8F7BFF9824602462E4888467F -:108150000B4605217844FBF727FD52464346F8F7C6 -:10816000B2F92A463346F8F7ABF980468A463B46D1 -:1081700028463146009AF8F7A6F93B46009AF8F7E8 -:10818000FBF80691009000224FF080434046514694 -:10819000F8F793F90F460C9042465346284631466D -:1081A000F8F791F93B460C9AF8F7FFF9069B009A0D -:1081B000F8F783F92A463346F8F77FF90022134B84 -:1081C000F8F77EF9054601980E4601EB00510815B7 -:1081D000002810DC28463146019AF8F711FCFBF71D -:1081E000B3FC042808BFFBF74FFD28463146019A2F -:1081F000F8F706FC05460B4618B02A4658462146B5 -:10820000BDE8F04DF8F75FB9D80F00000000F03F6F -:1082100070B588B002A905A8FEF788FE044601A83B -:10822000FEF7D2FA0598F8F72FFA06460199F8F703 -:1082300033F80546F8F747FA05900698F8F724FA58 -:1082400006460199F8F728F80546F8F73CFA069033 -:108250000798F8F719FA06460199F8F71DF8054648 -:10826000F8F731FA079005A8FDF748F86846FEF7D9 -:1082700057FABDF80010029848430290BDF800106C -:10828000039848430390BDF80010049848430490B5 -:1082900002A8FCF761FF032C02D0012008B070BDDA -:1082A0000020FBE703200149087070471000002000 -:1082B00070B500241EE0F9F7DFFB054604EB44002F -:1082C0000F4901EB8000806804EB44010C4A02EB8B -:1082D000810149680844A8420AD804EB44001146C9 -:1082E00001EB8000856004EB440152F821008047D7 -:1082F000601CC4B2034800788442DCDB70BD00001F -:1083000014000020100000201FB50446284890F8F3 -:10831000240000B314B10220039001E00020039078 -:108320006FF07F40012103AACDE90021029020488F -:108330000068427C1E484068017801231D48F9F717 -:1083400043FE18B14FF0FF3004B010BD9DF80C1083 -:10835000174841742AE01648807A10B94FF0FF3070 -:10836000F2E724B11248407C08B10020ECE714B1D8 -:108370000120039001E0002003906FF07F40012175 -:1083800003AACDE90021029009480068427C084810 -:108390004068017801230748F9F716FE10B14FF045 -:1083A000FF30D1E79DF80C10014841740020CBE765 -:1083B0007C000020240100202DE9F04106460F46F4 -:1083C000F8F735FB041E0D4618BF0120284320F0A6 -:1083D0000040C0F17F6000F1E040C00F0ED0301CC3 -:1083E00018BF0120384320F00040C0F17F6000F149 -:1083F000E040C00F04BF0120FBF75EFC2046294689 -:10840000BDE8F08102030405060708090A0B0C0DFC -:108410000E0F101001020000000000000000010219 -:10842000030406070809000000000102030400001D -:1084300075191A0C6A231B1C00001F207274433B21 -:108440004138393A006B6C376F06246D6E70D0007E -:10845000000476005401F7FD0001000083000000D5 -:108460000008000000010018320005000000204153 -:108470000000D242295C0F3E9A99993E3333733FF4 -:10848000295C0F3E00007000000000240000000284 -:108490000003000000650054FFEF0000FA80000BAD -:1084A00012820001030C30C30E8C8CE914D54002FB -:1084B00013710F8E3883F8833000F883258EF8838C -:1084C0003000F883FFFFFFFF0FFEA9D62400040051 -:1084D0001A8279A10000003CFFFF0000001000009C -:1084E00038836FA2003E03304000000002CAE30957 -:1084F0003E8000002000000000000000400000005E -:1085000060000000000C0000000C186E00000692D5 -:108510000A16C0DFFFFF0256FD8CD377FFE1C49639 -:10852000E0C5BEAA00000000FFFF0B2B000016579D -:10853000000003594000000000001DFA00026C1DFD -:10854000000000003FFFDFEB003EB3B6000D2278D5 -:1085500000002F3C00000000001942B5000039A2C5 -:108560000000B365D90E9FC91DCF4C343000000008 -:10857000500000003BB67AE80064000000C800002C -:1085800000000000100000001000FA921000225EAF -:10859000000D229F0001000000320000FF46000095 -:1085A00063D400001000000004D6000004CC0000DA -:1085B00004CC000000001072000000400000000029 -:1085C0000000000000060002000500070000000097 -:1085D00000640000000000000000000500050064C9 -:1085E000002000000000000000000000000040002B -:1085F0000000030000000032F8980000FF65000052 -:10860000830F0000FF9BFC00000000000000000042 -:10861000000000000000000000000000000000005A -:10862000000000000000000000000000000000004A -:108630000000100040000000000000060000B26AC8 -:10864000000200000001FB830068000000D9FC006C -:108650007CF1FF830000000000650000006403E877 -:1086600000640028000000250000000016A00000A3 -:108670000000100000001000002F0000000001F4B6 -:108680000000100000280000FFFF4581FFFFFA7284 -:108690000000000000000000004400050005BAC60C -:1086A000004778A200000001000000000000060062 -:1086B000000000140000254D002F706D000005AE75 -:1086C000000C02D0000000000000000000000000CC -:1086D00000000000001B000000000000000000007F -:1086E000000000000064000000080000000000001E -:1086F000000000000000000000000000000000007A -:108700000000000000000000000000000000000069 -:108710000000000000000000000000000000000059 -:108720000000000000000000000000000000000049 -:108730000000000000000000000000000000000039 -:1087400000000000001B000000000000000000000E -:10875000000E000E00000AC70004000000000032F6 -:10876000FFFFFF9C00000B2B000000020000000137 -:1087700000000064FFE500000000000000000000B1 -:1087800000000000000000010000000000010000E7 -:108790000000000000018000000180000001800056 -:1087A000002426D300000000000000000006001096 -:1087B0000096003C000000000000000000000000E7 -:1087C000000000000C0A4E68CDCF7709501667599B -:1087D000C619CE820000000000000000000000006A -:1087E00000000000000000000000000017D7840017 -:1087F000030000000000000000000000C7938F9DF0 -:108800001E1B1C19000000000000000000000000FA -:1088100000000000000000000000000002031885B6 -:108820000000400000000003000000030000000002 -:1088300000000000400000000000000000000000F8 -:108840000000000000000000000000000000000028 -:108850000000000000000000000000000000000018 -:108860000000000000000000677DDF7E72902E5542 -:108870004CF6E68800000000000000000000000048 -:1088800000000000D8DCB4B8B0D8B9ABF3F8FAB344 -:10889000B7BB8E9EAEF132F51BF1B4B8B08097F144 -:1088A000A9DFDFDFAADFDFDFF2AAC5CDC7A90CC9C8 -:1088B0002C97F1A989264666B28999A92D557DB0D4 -:1088C000B08AA896365676F1BAA3B4B280C0B8A8DA -:1088D0009711B28398BAA3F0240844106418B2B96F -:1088E000B49883F1A329557DBAB5B1A38393F00061 -:1088F0002850F5B2B6AA839328547CF1B9A3829389 -:1089000061BAA2DADEDFDB819AB9AEF5606870F198 -:10891000DABAA2DFD9BAA2FAB9A38292DB31BAA23B -:10892000D9BAA2F8DF85A4D0C1BBAD83C2C5C7B890 -:10893000A2DFDFDFBAA0DFDFDFD8D8F1B8AAB38DBE -:10894000B4980D355DB2B6BAAF8C96198F9FA70E4D -:10895000161EB49AB8AA872C547CBAA4B08AB691D1 -:10896000325676B28494A4C808CDD8B8B4B0F19980 -:1089700082A82D557D98A80E161EA22C547C92A478 -:10898000F02C5078F184A898C4CDFCD80DDBA8FC5D -:108990002DF3D9BAA6F8DABAA6DED8BAB2B6869658 -:1089A000A6D0F3C841DAA6C8F8D8B0B4B882A89265 -:1089B000F52C548898F135D9F418D8F1A2D0F8F9EB -:1089C000A884D9C7DFF8F883C5DADF69DF83C1D8A7 -:1089D000F40114F1A8824EA884F311D182F5D99242 -:1089E000289788F109F41C1CD884A8F3C0F9D1D9C0 -:1089F0009782F129F40DD8F3F9F9D1D982F4C203A1 -:108A0000D8DEDF1AD8F1A2FAF9A88498D9C7DFF81E -:108A1000F8F883C7DADF69DFF883C3D8F40114F10B -:108A200098A8822EA884F311D182F5D99250978804 -:108A3000F109F41CD884A8F3C0F8F9D1D99782F1D0 -:108A400049F40DD8F3F9F9D1D982F4C403D8DEDFA3 -:108A5000D8F1AD8898CCA809F9D98292A8F57CF113 -:108A6000883ACF944A6E98DB6931DAADF2DEF9D8F4 -:108A70008795A8F221D1DAA5F9F417D9F1AE8ED0F5 -:108A8000C0C3AE82C684C3A88595C8A588F2C0F1CC -:108A9000F4010EF18E9EA8C63E56F554F18872F48C -:108AA0000115F19845856EF58E9E0488F142985A1D -:108AB0008E9E068869F4011CF1981E1108D0F504F9 -:108AC000F11E970202983625DBF9D985A5F3C1DAA4 -:108AD00085A5F3DFD88595A8F309DAA5FAD882929F -:108AE000A8F578F1881A849F26889821DAF41DF376 -:108AF000D8879F39D1AFD9DFDFFBF9F40CF3D8FA6F -:108B0000D0F8DAF9F9D0DFD9F9D8F40BD8F3879F88 -:108B100039D1AFD9DFDFF41DF3D8FAFCA869F9F930 -:108B2000AFD0DADEFAD9F88F9FA8F1CCF398DB4505 -:108B3000D9AFDFD0F8D8F18F9FA8CAF38809DAAF90 -:108B40008FCBF8D8F2AD978D0CD9A5DFF9BAA6F383 -:108B5000FAF412F2D8950DD1D9BAA6F3FADAA5F241 -:108B6000C1BAA6F3DFD8F1BAB2B68696A6D0CAF3D8 -:108B700049DAA6CBF8D8B0B4B8D8AD84F2C0DFF1EA -:108B80008FCBC3A8B2B68696C8C1CBC3F3B0B488A6 -:108B900098A821DB718D9D71859521D9ADF2FAD808 -:108BA0008597A828D9F408D8F28D29DAF405D9F2E6 -:108BB00085A4C2F2D8A88D9401D1D9F411F2D88736 -:108BC00021D8F40AD8F28498A8C801D1D9F411D8D0 -:108BD000F3A4C8BBAFD0F2DEF8F8F8F8F8F8F8F86C -:108BE000D8F1B8F6B5B9B08A95A3DE3CA3D9F8D8C8 -:108BF0005CA3D9F8D87CA3D9F8D8F8F9D1A5D9DFE6 -:108C0000DAFAD8B18530F7D9DED8F830ADDADED867 -:108C1000F2B48C99A32D557DA083DFDFDFB591A041 -:108C2000F629D9FBD8A0FC29D9FAD8A0D051D9F877 -:108C3000D8FC51D9F9D879D9FBD8A0D0FC79D9FA88 -:108C4000D8A1F9F9F9F9F9A0DADFDFDFD8A1F8F84E -:108C5000F8F8F8ACDEF8ADDE8393AC2C547CF1A8C8 -:108C6000DFDFDFF69D2CDAA0DFD9FADB2DF8D8A8FC -:108C700050DAA0D0DED9D0F8F8F8DB55F8D8A878CB -:108C8000DAA0D0DFD9D0FAF8F8F8F8DB7DF8D89C74 -:108C9000A88CF530DB38D9D0DEDFA0D0DEDFD8A855 -:108CA00048DB58D9DFD0DEA0DFD0DED8A868DB7083 -:108CB000D9DFDFA0DFDFD8F1A888902C547C98A8FA -:108CC000D05C38D1DAF2AE8CDFF9D8B087A8C1C158 -:108CD000B188A8C6F9F9DA36D8A8F9DA36D8A8F9E9 -:108CE000DA36D8A8F9DA36D8A8F9DA36D8F78D9D69 -:108CF000ADF818DAF2AEDFD8F7ADFA30D9A4DEF964 -:108D0000D8F2AEDEFAF983A7D9C3C5C7F1889BA70D -:108D10007AADF7DEDFA4F8849408A797F300AEF2EB -:108D20009819A488C6A39488F632DFF28393DB09EE -:108D3000D9F2AADFD8D8AEF8F9D1DAF3A4DEA7F1D8 -:108D4000889B7AD8F38494AE19F9DAAAF1DFD8A80F -:108D500081C0C3C5C7A39283F628ADDED9F8D8A3D6 -:108D600050ADD9F8D8A378ADD9F8D8F8F9D1A1DAAF -:108D7000DEC3C5C7D8A18194F818F2B089ACC3C5C9 -:108D8000C7F1D8B8B4B09786A8319B069907AB97BE -:108D900028889BF00C201440B0B4B8F0A88A9A2818 -:108DA0005078B79BA8295179247059446938644890 -:108DB00031F1BBAB88002C547CF0B38BB8A80428ED -:108DC0005078F1B088B49726A85998BBABB38B0202 -:108DD000264666B0B8F08A9CA82951798B2951792A -:108DE0008A2470598B2058718A4469388B394068BD -:108DF0008A6448318B30496088F1AC002C547CF097 -:108E00008CA804285078F1889726A85998AC8C0231 -:108E1000264666F0899CA8295179247059446938FE -:108E2000644831A98809205970AB11384069A819E4 -:108E30003148608CA83C415C207C00F18798198601 -:108E4000A86E767EA999882D557DD8B1B5B9A3DFD6 -:108E5000DFDFAED0DFAAD0DEF2ABF8F9D9B087C43D -:108E6000AAF1DFDFBBAFDFDFB9D8B1F1A3978E6026 -:108E7000DFB084F2C8F8F9D9DED89385F14AB1831E -:108E8000A308B5839A0810B79F10D8F1B0BAAEB056 -:108E90008AC2B2B68E9EF1FBD9F41DD8F9D90CF175 -:108EA000D8F8F8AD61D9AEFBD8F40CF1D8F8F8AD2C -:108EB00019D9AEFBDFD8F416F1D8F8AD8D61D9F42D -:108EC000F4ACF59C9C8DDF2BBAB6AEFAF8F40BD857 -:108ED000F1AED0F8AD51DAAEFAF8F1D8B9B1B6A327 -:108EE000839C08B9B1839AB5AAC0FD3083B79F109F -:108EF000B58B93F20202D1ABDADED8F1B080BAAB17 -:108F0000C0C3B284C1C3D8B1B9F38BA391B609B4BD -:108F1000D9ABDEB0879CB9A3DDF1B38B8B8B8B8B88 -:108F2000B087A3A3A3A3B28BB69BF2A3A3A3A3A3CF -:108F3000A3A3A3A3A3F1B087B59AA3F39BA3A3DC38 -:108F4000BAACDFB9A3A3A3A3A3A3A3A3A3A3A3A37F -:108F5000A3A3A3A3D8D8D8BBB3B7F1AAF9DAFFD992 -:108F6000809AAA28B48098A720B79787A86688F027 -:108F70007951F1902C870CA781976293F071716001 -:108F800085940129517990A5F1284C6C870C95188E -:108F90008578A38390284C6C886CD8F3A28200F269 -:108FA00010A8921980A2F2D926D8F188A84DD948E4 -:108FB000D896A83980D93CD89580A839A68698D962 -:108FC0002CDA87A72CD8A8899519A980D938D8A8D0 -:108FD0008939A980DA3CD8A82EA83990D90CD8A80C -:108FE000953198D90CD8A809D9FFD801DAFFD895BE -:108FF00039A9DA26FFD890A80D8999A81080982160 -:10900000DA2ED88999A83180DA2ED8A886963180B0 -:10901000DA2ED8A8873180DA2ED8A88292F3418040 -:10902000F1D92ED8A882F31980F1D92ED882ACF3C9 -:10903000C0A28022F1A62EA72EA92298A829DAACD8 -:10904000DEFFD8A2F22AF1A92E8292A8F23180A6E0 -:1090500096F1D900AC8C9C0C30ACDED0DEFFD88C05 -:109060009CACD010ACDE8092A2F24C82A8F1CAF285 -:1090700035F19688A6D900D8F1FF00000000000065 -:10908000555555555555C53F7D6FEB0312D6D4BF89 -:109090005544880E55C1C93F3B8F68B52882A4BF8F -:1090A00088B20175E0EF493F09F7FD0DE13D023F50 -:1090B0004B2D8A1C273A03C0C88A599CE52A0040D8 -:1090C00059018D1B6C06E6BF82922EB1C5B8B33F25 -:1090D000000000000000F03F000000000000F83F2A -:1090E00000000000000000000000004003B8E23F64 -:1090F000000000000000000006D0CF43EBFD4C3E16 -:10910000033333333333E33FFFAB6FDBB66DDB3F0A -:109110004D268F515555D53F01411DA96074D13F52 -:1091200065DBC9934A86CD3FEF4E454A287ECA3F4C -:109130003E5555555555C53F93BDBE166CC166BFCE -:109140002CDE25AF6A56113FF16BD2C541BDBBBEC7 -:10915000D0A4BE726937663E4FBB610567ACDD3F88 -:10916000182D4454FB21E93F9BF681D20B73EF3F4E -:10917000182D4454FB21F93FE2652F227F2B7A3CC6 -:10918000075C143326A6813CBDCBF07A8807703C7F -:10919000075C143326A6913CC4EB98999999C9BFF2 -:1091A000711623FEC671BCBF6D9A74AFF2B0B3BF27 -:1091B0009AFDDE522DDEADBF2F6C6A2C44B4A2BFE7 -:1091C0000D5555555555D53FFF8300922449C23F53 -:1091D0006E204CC5CD45B73F513DD0A0660DB13F87 -:1091E000EB0D76244B7BA93F11DA22E33AAD903F99 -:1091F000000000000000000018920008000000209D -:10920000B0000000983C0008C8920008B0000020A0 -:10921000E0050000A83C000800000000100000006D -:109220000100000000127A0000000000F57600083E -:109230006400000000000000894C0008E803000002 -:1092400000000000856400080A0000000000000023 -:10925000000000000000000000000000666696406C -:10926000B29D0F420000000000000000000000005E -:1092700000000000000000000000000000000000EE -:1092800000000000000000000001000000010000DC -:1092900000010000308400084E8400080000000037 -:1092A00000000000000000000000000000000000BE -:1092B0000000000000000000000000005C840008C6 -:0892C0000000000000000000A6 +:1032B0004069C0F3C0100028D3D00020D6E700003A +:1032C0000EB5002000900190029013481349086049 +:1032D00000211248816001210173002101754FF422 +:1032E0006021C16100200D49486001210B48016146 +:1032F000FDF784FD08B1FDF7C9FC00200090012016 +:1033000001900020029069460448FDF7C3FC08B113 +:10331000FDF7BCFC0EBD000000240140B000002001 +:1033200008B500BF0A48406940F0010008494861FB +:103330000846406900F00100009000BF00BF002275 +:1033400011460B20FEF758FE0B20FEF745FE08BD88 +:103350000010024000B585B000200190029003905B +:10336000049000BF1D48806940F020001B4988611F +:103370000846806900F02000009000BF00BF00BF39 +:103380000846806940F0040088610846806900F0C2 +:103390000400009000BF00BF00BF0846806940F0F5 +:1033A000080088610846806900F00800009000BFAE +:1033B00000BF012289150A48FEF7D6F94FF4807044 +:1033C000019001200290002003900320049001A9A5 +:1033D0000348FEF731F805B000BD000000100240C0 +:1033E0000008014010B50B480B4908600B484860C5 +:1033F000002109488160C1604FF4804101610021D2 +:1034000041618161C1610162FEF7BAF908B1FDF75E +:103410003DFC10BD0054004024010020801A06002D +:1034200010B50B480B4908600B484860002109485B +:103430008160C1604FF4804101610021416181617F +:10344000C1610162FEF79CF908B1FDF71FFC10BDD8 +:103450000058004078010020801A060000B587B0AF +:10346000002003900490059006900190029015486A +:1034700015490860472048600021134881604FF6D5 +:10348000FF71C1600021016141618161FFF750FA64 +:1034900008B1FDF7FBFB4FF48050039003A90A48E5 +:1034A000FFF7E1FA08B1FDF7F1FB0020019002906F +:1034B00001A90548FFF7FAF908B1FDF7E7FB07B0E6 +:1034C00000BD0000002C0140CC01002010B50B48CD +:1034D0000B4908604FF4E1304860002108488160E2 +:1034E000C16001610C21416100218161C161FFF76F +:1034F00040FB08B1FDF7CAFB10BD000000380140D9 +:103500001402002000BFFEE700BFFEE77047000086 +:1035100008B508490968C9084FF47A72B1FBF2F19D +:103520004143009100BF00BF00994A1E009200294C +:10353000F9D108BD0C000020704710B5FEF7DCFC87 +:1035400010BD00B593B0282109A8FCF766FE142130 +:1035500004A8FCF762FE0020009001900290039006 +:103560000120099000040A9000200B9001200D908A +:1035700002201090C10311914FF4E011129109A89B +:10358000FEF748FF08B1FDF781FB0F2004900220F1 +:103590000590002006904FF480600790002008906E +:1035A000022104A8FEF712FE08B1FDF76FFB02200E +:1035B0000090800302906846FEF770FD08B1FDF7A9 +:1035C00065FB13B000BD704710B502681C4B9842F4 +:1035D00008D0B0F1804F05D01A4B984202D01A4B58 +:1035E000984203D122F070024B681A43144B984260 +:1035F00008D0B0F1804F05D0124B984202D0124B48 +:10360000984203D122F44072CB681A4322F080031F +:103610004C6943EA040202608B68C3620B688362F0 +:10362000074B984201D10B6903630123436103698E +:1036300003F001031BB1036923F00103036110BD13 +:10364000002C0140000400400008004030B50C464A +:10365000816821F47F4142EA0325254329438160A3 +:1036600030BD0A46816821F0700142F0070319431A +:103670008160704730B50B461446026A056A25F032 +:1036800001050562816921F0F00141EA041122F08F +:103690000A021A438161026230BD30B50B461446FE +:1036A000026A056A25F010050562816921F47041FE +:1036B00041EA043122F0A00242EA0312816102626F +:1036C00030BD00BF00BF02680C3252E8002F22F468 +:1036D000907102680C3242E80013002BF3D100BF56 +:1036E00000BF00BF0268143252E8002F22F001012F +:1036F0000268143242E80013002BF3D100BF016BC3 +:1037000001290ED100BF00BF02680C3252E8002F21 +:1037100022F0100102680C3242E80013002BF3D1B2 +:1037200000BF202180F84210002101637047000093 +:1037300070B504462168096921F44051E2681143DB +:10374000226811612269A1681143626941EA020598 +:103750002168C96841F20C62914329432268D16013 +:103760002168496921F44071A269114322685161BD +:103770002D4A2168914202D1FEF704FE01E0FEF7D6 +:10378000F1FD00EBC00101EB001162689200B1FB9A +:10379000F2F100EBC00202EB001263689B00B2FB87 +:1037A000F3F26423B2FBF3F202EBC20303EB021267 +:1037B000A1EB8201322202EB01116422B1FBF2F192 +:1037C00001F0F00100EBC00202EB001263689B0005 +:1037D000B2FBF3F26423B2FBF3F201EB021200EB53 +:1037E000C00101EB001163689B00B1FBF3F100EB3A +:1037F000C00303EB00136668B600B3FBF6F3642660 +:10380000B3FBF6F303EBC30606EB0313A1EB830153 +:10381000322303EB01116423B1FBF3F101F00F013B +:1038200011442268916070BD003801402DE9F843D1 +:1038300004460D4617469846089E31E0701C70B34A +:10384000FDF798FFA0EB0800B04200D816B903209E +:10385000BDE8F8832068C06800F00400F8B1802D4E +:103860001ED0402D1CD020680068C0F3C000B0B14D +:1038700000BF002000902068006800902068406829 +:10388000009000BF00BF2046FFF71BFF08206064C8 +:1038900000BF002084F8400000BF0120D8E7FFE708 +:1038A000206800682840A84201D1012000E00020E3 +:1038B000B842C3D00020CBE700BFFEE70FB4054BF2 +:1038C00010B503A9044A029800F0F6F810BC5DF8A0 +:1038D00014FB0000554C0008AC00002002480068B2 +:1038E000C0F30220704700000CED00E010B5002886 +:1038F00004DB0A07130E054A135406E00A07140EE8 +:10390000034A00F00F031B1FD45410BD00E400E075 +:1039100018ED00E002E008C8121F08C1002AFAD121 +:1039200070477047002001E001C1121F002AFBD13F +:10393000704700002DE9FF5F82B00021DDE904300F +:10394000020DDDF840B0034318D044F61050A2F247 +:10395000FF3242431514119801281FD0A5EB0B002C +:10396000401C5FEA000A4FF000064E4FDFF8389126 +:10397000B046504615D5CAF1000413E01198012451 +:103980004AA3012801D16FEA0B010298119AC0E9FC +:103990000031C0E9024206B0BDE8F09FCBF1000063 +:1039A000DFE704460021404A491842EB0450CDE9C4 +:1039B000001012E0E00707D032463B464046494639 +:1039C000FCF7B2FD8046894632463B461046194612 +:1039D000FCF7AAFD06460F466410002CEAD1DDE98B +:1039E0000401DDE90023BAF1000F06DAFCF79CFDC3 +:1039F00042464B46FCF798FD05E0FCF707FE4246C1 +:103A00004B46FCF703FE04460E460022284BFCF70B +:103A1000A7FE03D84FF0FF30014607E00022254BF8 +:103A200020463146FCF7D9FCFCF791FF102409E051 +:103A3000002C0ADB0A220023FCF776FB039B3032C2 +:103A40001A55641E50EA0102F2D1641C039AC4F1B3 +:103A500011031444119A012A03D0012208430DD105 +:103A60000AE0084304D000204FF0110B119072E7D8 +:103A7000A3EB0B056D1E0DE05B4504DD4FF000026E +:103A800005F1010504E003DA4FF00002A5F101059C +:103A9000002AECD002981199C0E90231C0E9004532 +:103AA00079E70000000014400000F03F3000000003 +:103AB0000000F0430000E03F2DE9FF4F95B09A462B +:103AC000884606460025EEE1252877D100242746C2 +:103AD000F94A0121039400E0044316F8013F203B1A +:103AE00001FA03F01042F7D130782A2811D06FF094 +:103AF0002F033078A0F13002092A16D8039A44F037 +:103B0000020402EB820203EB42021044761C039093 +:103B1000EFE758F8042B0392002A03DA504244F4EA +:103B20000054039044F00204761C30782E2816D1FD +:103B300016F8010F44F004042A280DD06FF02F026C +:103B40003078A0F13003092B09D807EB870302EB8B +:103B50004303C718761CF3E758F8047B761C3078CB +:103B60006C280FD006DC4C2817D068280DD06A28A6 +:103B700014D104E0742810D07A280FD10DE044F459 +:103B800000140AE044F4801401E044F44014727814 +:103B9000824202D104F58014761C761C30786628A7 +:103BA0000BD013DC582877D009DC002875D04528C5 +:103BB000F6D04628F4D047281AD193E118E06328BC +:103BC00035D0642879D0652812D18BE1702873D064 +:103BD00008DC6728F1D069286FD06E280DD06F28D7 +:103BE00006D1ACE073282CD0752874D0782853D037 +:103BF0005246179990476D1C54E1C4F302500228B5 +:103C000009D003280DD0D8F8001004280DD00D607D +:103C100008F1040846E1D8F80010EA17C1E900529B +:103C2000F6E7D8F800100D80F2E70D70F0E718F80D +:103C3000041B8DF8001000208DF80100EB460120D8 +:103C400003E058F804BB4FF0FF3061074FF000016C +:103C500002D40DE009F101018946B9420FDA81452C +:103C6000F8DB1BF809100029F4D108E009F1010183 +:103C700089468142FADB1BF809100029F6D1039826 +:103C80005346A0EB090721463846179A00F080FA00 +:103C9000284400EB090507E044E008E10DE01BF8CB +:103CA000010B524617999047B9F10109F7D25346D3 +:103CB00021463846179AF2E039E00A21C4F302524D +:103CC0004FF0000B0091022A06D058F8040BC117E0 +:103CD000032A09D00AE023E008F1070020F00702D8 +:103CE000F2E80201904605E000B2C117042A01D1B2 +:103CF00040B2C117002906DA0A460021404261EBB2 +:103D000002012D2202E0220504D52B228DF8042089 +:103D1000012203E0E20701D02022F7E7914657E0B5 +:103D20000A2100E010214FF0000B00910BE0102160 +:103D30004FF0000B44F004040827009103E0082032 +:103D40004FF0000B0090C4F30252022A05D058F83D +:103D5000040B0021032A08D008E008F1070020F036 +:103D60000702F2E80201904603E080B2042A00D183 +:103D7000C0B24FF0000922072AD53278702A07D046 +:103D8000DDF800C08CF0100C5CEA0B0C05D00EE0E6 +:103D900040228DF80420012208E050EA010306D0F9 +:103DA00030238DF804308DF8052002229146009BC7 +:103DB00083F0080353EA0B030AD150EA010201D150 +:103DC000620705D530228DF804204FF001097F1ECF +:103DD0003278582A04D039A20C920CAA02920BE035 +:103DE0003BA2F9E75B46009AFCF79EF90C9B9B5CB3 +:103DF000029A521E0292137050EA0102F2D1029806 +:103E000004A9081A00F1200B600702D524F48034BD +:103E100000E001275F4502DDA7EB0B0000E000207A +:103E200000EB0B01009003984944401A0390E00313 +:103E300006D453462146179A039800F0A9F9054481 +:103E4000002706E001A85246C05D179990476D1CF7 +:103E50007F1C4F45F6DBE0030CD553462146179AED +:103E6000039800F095F9054404E030205246179974 +:103E700090476D1C0099481E00900029F5DC08E071 +:103E80000298029952460078491C0291179990476E +:103E90006D1CBBF10001ABF1010BF1DC5BE100F04B +:103EA00065F90544761C307800287FF40DAE19B012 +:103EB0002846BDE8F08F0000092801003031323378 +:103EC0003435363738396162636465660000000056 +:103ED0003031323334353637383941424344454640 +:103EE00000000000600700D4062708F1070020F05A +:103EF0000700F0E80223804603F0004C5FEA0C0064 +:103F000001D097A009E0200501D596A005E0E007C3 +:103F100001D095A001E0AFF24C001390307823F06F +:103F2000004365280CD006DC452809D046281DD062 +:103F300047287FD13BE0662818D067287AD136E041 +:103F40000021112F01DB112000E0781CCDE90001D8 +:103F500004A90CA8FFF7EEFCDDE90D010C9A4FF067 +:103F6000000B07F10109109200914EE04FF0004064 +:103F70000097CDE9011004A90CA8FFF7DBFCDDE9EF +:103F80000D020C9B0F994FF0000B9146109300927D +:103F900011B9791C00EB0109B7EB090003D4C0F19A +:103FA000FF3B07F10109A9EB0700019042E0012F57 +:103FB00000DA01270021112F01DD112000E0384631 +:103FC000CDE9000104A90CA8FFF7B4FCDDE90D015F +:103FD0000C9A00914FF0000BB946109221070FD4B4 +:103FE000009A4A4503DA914601E0A9F10109B9F1C5 +:103FF000010F05DD109AA9F10101515C3029F4D0BF +:10400000B84202DA10F1040F03DA0121CDE9011000 +:1040100010E0002803DC8344A9EB000102E0411C0E +:10402000494500DD8946A0EB0B00401C01904FF094 +:1040300000400290200705D40198484502DB4FF06C +:10404000FF30019000208DF84B0002980DF14B07D6 +:10405000B0F1004F25D002200C902B200D9002983B +:1040600000280CDA404202902D200D9007E00A2132 +:104070000298FCF7A1FB3031029007F8011D0C9962 +:10408000481E0C900029F2DC02980028EFD1791E1E +:104090000D980870307800F0200040F0450007F8D7 +:1040A000020D11A8C01BC01D02901398007800B12A +:1040B000012000EB0901019801EBE0710298014435 +:1040C0000398401A401E0390E00306D4534621464D +:1040D000179A039800F05CF805441398007818B11B +:1040E0005246179990476D1CE00323D5534621464D +:1040F000179A039800F04CF805441BE0BBF1000F41 +:1041000007DB0098584504DD1098179910F80B004C +:1041100001E0179930205246904701980BF1010BAE +:10412000401E05F10105019004D12E205246179939 +:1041300090476D1CB9F10001A9F10109DEDC05E031 +:1041400017F8010B5246179990476D1C0299481EAB +:1041500002900029F4DC53462146179A03989EE604 +:104160002D0000002B000000200000002DE9F04190 +:10417000044600251E461746880404D405E0394647 +:104180002020B0476D1C641EF9D52846BDE8F0819B +:104190002DE9F041044600251E469046C80301D58E +:1041A000302700E02027880404D505E04146384642 +:1041B000B0476D1C641EF9D52846BDE8F0810000AB +:1041C0002DE9FE4F06460F460025684600F04EFDDD +:1041D000002442E056F8240057F82410A0EB010A0E +:1041E000BAF1000F01DB514601E0CAF100010846B7 +:1041F000FCF77BFA83464FF08F41FCF7B0F880461E +:104200005DF824000021FCF7C3FA16D05DF82410F5 +:104210004046FCF7A4F882464FF07E51FCF767F861 +:10422000814629F0004A0F48416A5046FCF7BAFA25 +:1042300012D20120A04005430EE00A48C169404661 +:10424000FCF7A6FA05D30748016A4046FCF7AAFA2C +:1042500002D20120A0400543641C032CBADB28468F +:10426000BDE8FE8F5471000838B5044664B12020C3 +:104270008DF8000028208DF8010030208DF8020014 +:1042800038208DF8030004E0A32204216846FBF7E0 +:10429000BDFF6A46042140F69E2002F0B5FC01F005 +:1042A000E7FF38BD3EB5044602208DF80000CA2065 +:1042B0008DF80100E3208DF8020009208DF803003D +:1042C0006A460421682002F09FFCA3208DF80000BC +:1042D00004F0400048B1C0208DF80100C8208DF8DE +:1042E0000200C2208DF8030006E0A3208DF8010033 +:1042F0008DF802008DF8030004F4C07048B1C420AA +:104300008DF80400CC208DF80500C6208DF806003D +:1043100006E0A3208DF804008DF805008DF8060056 +:10432000A3208DF807008DF808008DF809006A4673 +:104330000A2140F6A72002F067FC04F0030018B140 +:1043400020208DF8000002E0D8208DF800006A4699 +:10435000012140F6B62002F057FC04F0200018B10D +:10436000012000F0ADF802E0002000F0A9F804F40C +:10437000C07008B304F4807060B1B2208DF8000002 +:104380008B208DF80100B6208DF802009B208DF85F +:1043900003000BE0C0208DF8000080208DF80100A4 +:1043A000C2208DF8020090208DF803006A46042197 +:1043B00040F6A22002F028FC04F0010020B3F8200F +:1043C0008DF800006A4601214FF40B6002F01CFCDE +:1043D000FA21072000F048FB072000F00FFB012026 +:1043E00000F02FFB642000F00FFC4FF4FA7000F097 +:1043F0001EFCC821304800F0BFFA282000F0D8FA8F +:104400000A2000F0E8FA08E0D8208DF800006A469B +:1044100001214FF40B6002F0F7FB04F0020018B129 +:10442000D9208DF8000002E0D8208DF800006A46FF +:10443000012140F23D7002F0E7FB04F0040018B1E6 +:10444000012000F069F802E0002000F065F804F0B7 +:10445000100018B10120FFF707FF02E00020FFF76E +:1044600003FF44F008001549488101F001FF0020D6 +:104470001249887304F0400018B10846807B801D03 +:10448000887304F4C07020B10C48807B801D0B49F8 +:10449000887304F0140020B10848807B103007496D +:1044A000887304F0030020B10448807B001D034999 +:1044B000887300203EBD000009E3CA02D402002038 +:1044C0003EB504466CB10EA1D1E900208968CDE962 +:1044D000002002916A4609214FF4976002F094FB94 +:1044E0003EBD0AA2D2E900109268CDE90102009116 +:1044F0006A4609214FF4976002F086FBF0E700005E +:10450000B8AAB38DB4980D355D000000B8AAAAAA68 +:10451000B088C3C5C700000038B5044664B1C020E8 +:104520008DF80000C2208DF80100C4208DF8020033 +:10453000C6208DF8030004E08B2204216846FBF7B7 +:1045400065FE6A46042140F6982002F05DFB01F00A +:104550008FFE38BD10B5C8234FF48062024940F683 +:10456000F63001F0D1FD10BD7C71000870B588B047 +:10457000064601A801F024FCBDF804000021C9038F +:1045800041EA5045C40300BF4448007A00F00300EC +:1045900056F8200005904148007A00F0040010B160 +:1045A0000598404205903D48007AC0F3C10056F896 +:1045B000200006903948007A00F0200010B10698DB +:1045C000404206903548007AC0F3811056F820002A +:1045D00007903248008900F4807010B1079840427B +:1045E00007900598C117A0FB042301FB043100FBD1 +:1045F0000510810041EA927005900698C117A0FB52 +:10460000042301FB043100FB0510810041EA927094 +:1046100006900798C117A0FB042301FB043100FB9F +:104620000510810041EA927007900598000E8DF800 +:1046300008000598000C8DF809000598000A8DF80F +:104640000A000598C0B28DF80B000698000E8DF890 +:104650000C000698000C8DF80D000698000A8DF8E5 +:104660000E000698C0B28DF80F000798000E8DF866 +:1046700010000798000C8DF811000798000A8DF8BB +:1046800012000798C0B28DF8130002AA0C214FF453 +:10469000257002F0B9FA08B070BD0000D402002005 +:1046A00030B585B0044616A207CA02AB07C3C82CB2 +:1046B00003DD4FF0FF3005B030BDC82090FBF4F0B3 +:1046C000401E85B2280A8DF80000E8B28DF801007E +:1046D0006A46022140F2162002F096FA10B14FF01D +:1046E000FF30E8E702AA0C2140F6C12002F08CFA64 +:1046F00010B14FF0FF30DEE7044884810020DAE794 +:10470000FEF2ABC4AAF1DFDFBBAFDFDFD4020020D3 +:104710001FB504464848007A00F0030054F8200012 +:1047200001904548007A00F0040010B10198404221 +:1047300001904148007AC0F3C10054F82000029073 +:104740003D48007A00F0200010B1029840420290EB +:104750003948007AC0F3811054F82000039036489D +:10476000008900F4807010B10398404203903349EF +:10477000019880FB0101800F40EA810001902F49E0 +:10478000029880FB0110820042EA917002902B494E +:10479000039880FB0110820042EA91700390019817 +:1047A000000E8DF800000198000C8DF801000198B2 +:1047B000000A8DF802000198C0B28DF803006A4625 +:1047C00004214FF4747002F01FFA18B14FF0FF305B +:1047D00004B010BD0298000E8DF800000298000C85 +:1047E0008DF801000298000A8DF802000298C0B20C +:1047F0008DF803006A4604214FF4757002F004FA44 +:1048000010B14FF0FF30E3E70398000E8DF8000081 +:104810000398000C8DF801000398000A8DF802003F +:104820000398C0B28DF803006A4604214FF47670F5 +:1048300002F0EAF9CCE70000D402002009E3CA0242 +:1048400010B586B0044647A00068039046A00068F3 +:10485000029046A00068019045A00068009004F016 +:10486000030003A9085C8DF8140003A8C4F3C10178 +:10487000405C8DF8150003A8C4F38111405C8DF8ED +:10488000160004F0030002A9085C8DF8100002A8CD +:10489000C4F3C101405C8DF8110002A8C4F381117A +:1048A000405C8DF8120005AA032140F2264002F078 +:1048B000ABF918B14FF0FF3006B010BD04AA0321C8 +:1048C00040F22A4002F0A0F910B14FF0FF30F3E7B8 +:1048D000019805900098049004F0040058B19DF8E8 +:1048E000140040F001008DF814009DF8100040F015 +:1048F00001008DF8100004F0200058B19DF815005B +:1049000040F001008DF815009DF8110040F0010005 +:104910008DF8110004F4807058B19DF8160040F035 +:1049200001008DF816009DF8120040F001008DF88E +:10493000120005AA03214FF4886002F065F910B156 +:104940004FF0FF30B8E704AA032140F2314002F0F3 +:104950005BF910B14FF0FF30AEE70648048100204C +:10496000AAE700004CCD6C000CC92C00365676002E +:1049700026466600D4020020F8B505460E464FF4E0 +:104980007A7095FBF0F000FB06F4200E8DF8000025 +:10499000200C8DF80100200A8DF80200E0B28DF89D +:1049A00003006A4604214FF4AE7002F02DF9F8BD01 +:1049B00038B50446052094FBF0F084B220128DF83F +:1049C0000000E0B28DF801006A4602214FF4AD709C +:1049D00002F01AF938BD38B50446052094FBF0F012 +:1049E00084B220128DF80000E0B28DF801006A4612 +:1049F00002214FF4AC7002F007F938BD38B5044617 +:104A00000020009004F0010020B19DF8000040F06B +:104A10003000009004F0020020B19DF8000040F04A +:104A20000C00009004F0040020B19DF8000040F05C +:104A3000030000906A4601214FF4A47002F0E4F8EC +:104A400038BD38B50446012C01DA012402E0042CFB +:104A500000DD0424601EC0B200906A46012140F2CD +:104A60004F1002F0D1F838BD2DE9FC4706460F463D +:104A700006F0070010B1B7F5C86F03DD4FF0FF3047 +:104A8000BDE8FC873846FBF739FE81465949FBF7FC +:104A900066FC8046684601F06DF99DF8000002282A +:104AA00006D0042816D0082826D0102848D135E092 +:104AB0004FF08D414046FBF720FC8146FBF73CFE62 +:104AC00084B24D494046FBF718FC8146FBF734FEA3 +:104AD00085B238E04FF08C414046FBF70EFC814632 +:104AE000FBF72AFE84B245494046FBF706FC8146A7 +:104AF000FBF722FE85B226E04FF08B414046FBF7E4 +:104B0000FCFB8146FBF718FE84B23D494046FBF7AB +:104B1000F4FB8146FBF710FE85B214E04FF08A41AA +:104B20004046FBF7EAFB8146FBF706FE84B23549B7 +:104B30004046FBF7E2FB8146FBF7FEFD85B202E053 +:104B40004FF0FF309CE700BF20128DF80400E0B268 +:104B50008DF8050028128DF80600E8B28DF80700E0 +:104B600006F00100A0B101AA02214FF4EA7002F0A0 +:104B70004BF810B14FF0FF3082E70DF10602022131 +:104B80004FF4927002F040F810B14FF0FF3077E729 +:104B900006F00200A0B101AA02214FF4EC7002F06D +:104BA00033F810B14FF0FF306AE70DF10602022131 +:104BB0004FF4947002F028F810B14FF0FF305FE727 +:104BC00006F00400A0B101AA02214FF4EE7002F039 +:104BD0001BF810B14FF0FF3052E70DF10602022131 +:104BE0004FF4967002F010F810B14FF0FF3047E725 +:104BF000002045E700004843000040460000C04553 +:104C0000000040450000C04438B50446052094FB30 +:104C1000F0F085B228128DF80000E8B28DF801009E +:104C20006A4602214FF4EF7001F0EEFF38BD38B54F +:104C30000446052094FBF0F085B228128DF80000A0 +:104C4000E8B28DF801006A4602214FF4ED7001F0E0 +:104C5000DBFF38BD13B50C460A2301226946024822 +:104C6000FEF706F800981CBD1402002030B585B090 +:104C700005466FF07F40042104AACDE9002102908F +:104C800029484068017801230D222848FCF760FE7E +:104C900010B1072005B030BD9DF81300C0F301101E +:104CA0009DF8101001F0E00140EAE1008DF80C00E1 +:104CB0009DF81300C0F381009DF8111001F0E00190 +:104CC00040EAE1008DF80D009DF8130000F00300AC +:104CD0009DF8121001F0E00140EAE1008DF80E00AD +:104CE00000241CE003A8005D18B9002045F824004A +:104CF00013E00F4845F8240006E055F824000D495C +:104D0000FBF7FBFA45F8240003A8005D401EC0B283 +:104D100003A908550028F0D100BF601CC4B2032CC1 +:104D2000E0DB0020B6E7000048000020240100205E +:104D30007B14AE3E1D5A843F07B590B001208DF81C +:104D4000340000208DF835006FF07F4002210DAA5D +:104D5000CDE900210290FE480068407D0990FC48A2 +:104D600040680078012308900146FA48099AFCF748 +:104D7000A9FF18B14FF0FF3013B000BDC820FCF7F9 +:104D800047FB00208DF834006FF07F4001210DAA11 +:104D9000CDE900210290EE480068407C0990EC4883 +:104DA000406800780B4608900146EA48099AFCF7EB +:104DB00089FF10B14FF0FF30DEE76FF07F40012137 +:104DC0000DAACDE900210290E148006840790990E0 +:104DD000DF48406800780B4608900146DD48099A94 +:104DE000FCF770FF10B14FF0FF30C5E76FF07F4068 +:104DF00001210DAACDE900210290D5480068407D2F +:104E00000990D348406800780B4608900146D14885 +:104E1000099AFCF757FF10B14FF0FF30ACE76FF085 +:104E20007F4001210DAACDE900210290C848006809 +:104E3000807E0990C648406800780B46089001467D +:104E4000C448099AFCF73EFF10B14FF0FF3093E7DA +:104E50006FF07F4001210DAACDE900210290BC48EE +:104E6000006800790990BA48406800780B460890BD +:104E70000146B848099AFCF725FF10B14FF0FF3002 +:104E80007AE70C208DF834006FF07F4001210DAAE5 +:104E9000CDE900210290AE48006800790990AC4845 +:104EA000406800780B4608900146AA48099AFCF72A +:104EB00009FF10B14FF0FF305EE70F20FCF7A8FAB2 +:104EC000A348806A407A8DF834006FF07F4001215A +:104ED0000DAACDE9002102909D48006880780990D4 +:104EE0009B48406800780B46089001469948099A0B +:104EF000FCF7E8FE10B14FF0FF303DE79448806AC0 +:104F0000007A8DF834006FF07F4001210DAACDE9C1 +:104F1000002102908E480068407809908C484068D3 +:104F200000780B46089001468A48099AFCF7CAFEA9 +:104F300010B14FF0FF301FE7129838B18448806AF3 +:104F4000807A40F0E0008DF8340004E08048806A08 +:104F5000807A8DF834006FF07F4001210DAACDE9F1 +:104F6000002102907A48006880790990784840686A +:104F700000780B46089001467648099AFCF7A2FE95 +:104F800010B14FF0FF30F7E6129838B17048806AE0 +:104F9000C07A40F0E0008DF8340003E06E48C07A3B +:104FA0008DF834006FF07F4001210DAACDE900217A +:104FB000029067480068C0790990654840680078A9 +:104FC0000B46089001466348099AFCF77BFE10B136 +:104FD0004FF0FF30D0E6129810B1C820FCF718FA55 +:104FE00040208DF834006FF07F4001210DAACDE9FB +:104FF00000210290564800680079099054484068A2 +:1050000000780B46089001465248099AFCF75AFE70 +:1050100010B14FF0FF30AFE678208DF834006FF01C +:105020007F4001210DAACDE9002102904848006887 +:10503000407909904648406800780B460890014640 +:105040004448099AFCF73EFE10B14FF0FF3093E65A +:10505000414880890990FCF7DBF900208DF8340085 +:105060006FF07F4001210DAACDE900210290384860 +:105070000068407909903648406800780B460890EF +:1050800001463448099AFCF71DFE10B14FF0FF307D +:1050900072E66FF07F4002210DAACDE90021029057 +:1050A0002B480068007B099029484068007801235C +:1050B000089001462748099AFCF74AFC10B14FF0C6 +:1050C000FF3059E69DF835009DF8341040EA012084 +:1050D0000A900C210A9890FBF1F0C0B20C900021CC +:1050E000109881601098416010980160119881605B +:1050F000119841601198016000200B9083E06FF0DF +:105100007F400C210DAACDE90021029010480068D3 +:10511000407B05900E4840680078012304900146CA +:105120000C48059AFCF714FC10B14FF0FF3023E651 +:105130009DF835009DF8341040EA012000B2ADF82A +:1051400020009DF837009DF8361040EA012005E068 +:1051500048000020240100205471000800B2ADF87E +:1051600022009DF839009DF8381040EA012000B275 +:10517000ADF8240011980068BDF920100144119881 +:10518000016011984168BDF9220001441198416005 +:1051900011988068BDF924100144119881609DF830 +:1051A0003B009DF83A1040EA012000B2ADF818002B +:1051B0009DF83D009DF83C1040EA012000B2ADF89A +:1051C0001A009DF83F109DF83E0041EA002000B211 +:1051D000ADF81C0010980068BDF918100144109833 +:1051E000016010984068BDF91A10014410984160A0 +:1051F00010988168BDF91C000144109881600B98DB +:10520000401CC0B20B90DDE90B018842FFF677AF7E +:1052100051480068079010980068C117090441EAD6 +:1052200010410004CDE904010023079AFAF7ADFF0D +:10523000CDE9080100230C9AFAF7A7FF109908603E +:1052400045480068079010984068C117090441EA72 +:1052500010410004CDE904010023079AFAF795FFF5 +:10526000CDE9080100230C9AFAF78FFF10994860E6 +:1052700039480068079010988068C117090441EA0E +:1052800010410004CDE904010023079AFAF77DFFDD +:10529000CDE9080100230C9AFAF777FF109988608E +:1052A0002D484068079011980068C117090441EA29 +:1052B00010410004CDE904010023079AFAF765FFC5 +:1052C000CDE9080100230C9AFAF75FFF11990860F5 +:1052D00021484068079011984068C117090441EAC5 +:1052E00010410004CDE904010023079AFAF74DFFAD +:1052F000CDE9080100230C9AFAF747FF119948609D +:1053000015484068079011988068C117090441EA60 +:1053100010410004CDE904010023079AFAF735FF94 +:10532000CDE9080100230C9AFAF72FFF1199886044 +:1053300011988068002806DD11988068A0F58030FB +:105340001199886005E01198806800F58030119906 +:105350008860002010E50000547100082DE9FF5F0F +:1053600006460F4600256FF07F40032103AACDE9D2 +:10537000002102903D484068017801230D223C48FD +:10538000FCF7E6FA18B1072004B0BDE8F09F9DF8DD +:105390000C0000F01F008DF80C009DF80D0000F0CF +:1053A0001F008DF80D009DF80E0000F01F008DF815 +:1053B0000E00002456E056F8240057F82410A0EB05 +:1053C000010BBBF1000F01DB594601E0CBF10001FD +:1053D0000846FBF78AF94FF08F410290FAF7BFFFBA +:1053E000814603A8005D68B322490868FBF786F987 +:1053F000834659462048FAF7B2FF804604E01F4929 +:105400004046FAF77AFF804603A8005D401EC0B20E +:1054100003A908550028F2D141464846FAF79FFFF4 +:1054200083464FF07E51FAF762FF82462AF0004B26 +:10543000104881695846FBF7B5F912D20120A04007 +:1054400005430EE00B4801694846FBF7A1F905D377 +:10545000084841694846FBF7A5F902D20120A0405F +:105460000543641C032CA6DB28468DE7480000207A +:10547000240100205471000800B04C4554E3853FDE +:1054800070B50546284600F00FF80446E81C00F009 +:105490000BF844EAC00084B2A81D00F005F844EA05 +:1054A000801084B2204670BD014691F90020002A88 +:1054B00001DD00201EE091F90020002A01DA04201D +:1054C00018E091F90120002A01DD012012E091F994 +:1054D0000120002A01DA05200CE091F90220002ABF +:1054E00001DD022006E091F90220002A01DA0620FF +:1054F00000E0072070470000FCF70AFDFEF721F8E6 +:10550000FDF728FFFDF70CFFFDF7E0FFFDF7D8FEE4 +:10551000FDF7A4FFFDF766FFFDF782FF1E22084995 +:105520000848FBF765FDFBF71FFB00F0B5FB00F03B +:1055300033F901F02FFD01E001F032FDFCE700003E +:105540005C020020B000002010B50020084908606F +:105550000849086008490870084908700849087037 +:10556000084908700849086001F07EFC10BD000081 +:1055700074000020780000207C0000207D000020C6 +:105580008400002085000020A00000202DE9F34FBA +:105590008FB000211098017063480088C82802DA93 +:1055A00011B0BDE8F08F0027B84600210C910D9195 +:1055B0008B4619E0584601F085FD03905B4903983E +:1055C00051F82000C71948F100085949039851F8CB +:1055D0002020DDE90C01101841F10003CDE90C0396 +:1055E0000BF101001FFA80FBBBF1C80FE2DBC82200 +:1055F000002338464146FAF797FD0446C8220023A7 +:10560000DDE90C01FAF790FD81464CF250308442FE +:1056100005D34848844202D8B9F1000F00D1BFE752 +:1056200000210A910B91089109918B4632E058466E +:1056300001F048FD03903D49039851F82000001BFC +:1056400002903B49039851F82000A0EB090001901B +:105650000298002802DA0298404200E002980246CE +:10566000DDE90A01101841F10003CDE90A030198B0 +:10567000002802DA0198404200E001980246DDE984 +:105680000801101841F10003CDE908030BF10100F6 +:105690001FFA80FBBBF1C80FC9DBC8220023DDE97C +:1056A0000A01FAF741FD0790C8220023DDE908014D +:1056B000FAF73AFD06900798282801D3069800B912 +:1056C0006EE70698A0FB041264234FF0000CA1FBC8 +:1056D000030B02FB03B201FB0C21CDE90401079887 +:1056E000A0FB095600210846491BB04100DB57E7E3 +:1056F0002A463346DDE90401FAF747FD8246BAF14E +:10570000020F0FDDBAF1B80F0CDA0B4911F80A00DD +:10571000552806DB642804DC0F99086001221099E3 +:105720000A7000BF00BF3BE7800000202409002072 +:10573000E402002090D00300727D000896200F49FB +:105740000978C9B10E490968B1B10E4909680C4A16 +:105750001268891AB1F5967F0ED900210A4A1160A4 +:10576000064A1170094A1170094A1170094900224C +:105770000A604A608A60CA60704700007C000020AE +:10578000A4000020A000002074000020A800002039 +:10579000A9000020A40F002008B50020009040219F +:1057A000092000F061FA08B1012008BD3220FBF7A2 +:1057B0002FFE6946FF2000F059F808B10120F4E7F8 +:1057C0009DF80000152801D00120EEE700210420FB +:1057D00000F04AFA0021052000F046FA00210620D8 +:1057E00000F042FA1F21082000F03EFA03210920B0 +:1057F00000F03AFA27210A2000F036FA24210C2082 +:1058000000F032FA24210D2000F02EFA00210220AF +:1058100000F02AFA0021032000F026FA00200549B2 +:1058200008800549088005490880FFF78DFE0020A3 +:10583000BBE700007E0000208000002082000020E6 +:105840003EB504460D464FF0FF3001230722AE213E +:10585000CDE9004502900448FCF77AF808B1012030 +:105860003EBD0020FCE70000780100203EB5044664 +:105870000D464FF0FF3001210B462246CDE9005185 +:105880000290AE210348FCF763F808B101203EBD49 +:105890000020FCE7780100202DE9F041044614B90E +:1058A0000020BDE8F08100252E4600270AE038469A +:1058B00001F008FC084951F82000451946F100069E +:1058C000781C87B2A742F2DB2246002328463146E5 +:1058D000FAF72AFCE5E70000240900202DE9F0474B +:1058E000B6B000203590349035A90420FFF7BEFFF4 +:1058F00010B136B0BDE8F08734A90620FFF7B6FF37 +:1059000000B1F6E79DF8D4009DF8D010401A00F0E1 +:105910001F0505B9EDE7202D00DD202505EB45002D +:105920004FEA4008414604A8FFF78AFF00B1E0E7CC +:10593000002460E004EB4400002101EB400004A9D6 +:10594000085C000404EB4401012202EB410104AABB +:10595000515C40EA012004EB4401022202EB4101C8 +:1059600004AA515C40EA010904EB4400032101EB65 +:10597000400004A9085C000404EB4401042202EB8B +:10598000410104AA515C40EA012004EB44010522D4 +:1059900002EB410104AA515C40EA0107C9F3110975 +:1059A000C7F3110750485149098840F821905048E1 +:1059B0004E49098840F821704C480088401C4FF43B +:1059C000C87190FBF1F201FB120048490880494878 +:1059D0000088B0F5C87F04DA46480088401C454975 +:1059E000088045480088401C43490880384600F03C +:1059F000B5F8601CC4B2AC429CDB3F48008832283A +:105A000000DA76E700203C4908803A480088C82838 +:105A100002DA3848008800E0C82082465046FFF786 +:105A20003BFF06464CF25030864205D2FFF78CFD14 +:105A300032A0FDF743FF5CE7FFF780FE00200390F4 +:105A4000029002A903A8FFF7A1FD9DF80800A8B1E4 +:105A50003048007830B103222F480399006801F0E4 +:105A600023FB00E003982C490860012029490870B5 +:105A700000202A4908702A49087011E02748007858 +:105A8000082804DA25480078401C24490870234877 +:105A90000078082804DB00201F4908601D490870B1 +:105AA0002048007888B91B48007870B91C480078F5 +:105AB000082804DA1A480078401C19490870184868 +:105AC0000078082801DBFFF73FFD124800780090BE +:105AD00014480378104802681348016813A0FDF7C2 +:105AE000EDFE00BF05E70000E40200207E0000207C +:105AF0002409002080000020820000206D6178339E +:105B0000303130323A206E6F2066696E6765720DF3 +:105B10000A0000007D0000207800002085000020A1 +:105B2000840000207C0000207400002068723A2568 +:105B3000642062706D202073706F323A25642525D1 +:105B400020202868725F6F6B3D25642073706F3270 +:105B50005F6F6B3D2564290D0A0000002DE9F047B9 +:105B6000054639480068401C374908604CF25030FF +:105B7000854203D201F078F9BDE8F087284601F0AC +:105B80009DF800B9F8E731480068002856D02E4843 +:105B900000682E490968441A4FF021084FF0960911 +:105BA000212C4AD3962C48D841F2707000EB540057 +:105BB000B0FBF4F726482749097840F821702549B9 +:105BC0000978481CC11700EB91718910A0EB810185 +:105BD000204A117020480078042804DA1E48007812 +:105BE000401C1D4908701C480078022824DB002650 +:105BF000002005E0164951F820100E44411CC8B29F +:105C0000154909788842F5DB1348007896FBF0FACD +:105C10001248007830B1022251461148006801F064 +:105C200043FA00E050460E49086001200B49087015 +:105C300000200C49087000BF00BF00BF0248006888 +:105C40000249086000BF97E7A0000020A4000020E0 +:105C5000A40F0020A8000020A90000207C00002044 +:105C6000740000208400002013B584B004464FF077 +:105C7000FF30012105AA0B46CDE900210290224602 +:105C8000AE210448FCF71EF810B1012006B010BD8B +:105C90000020FBE77801002038B5684600F044F9A1 +:105CA00000B138BD782000F037FF00B1F9E7782067 +:105CB00000F028F800B1F4E7642000F0E3FE00B142 +:105CC000EFE7FEF747FC00B1EBE70D48FFF7D8FB25 +:105CD0000446FEF7B5FD00B1E3E740F27310FEF7AE +:105CE000E1FA00B1DDE76420FEF7DAFC00B1D8E7A5 +:105CF00001F006F9012000F093FD00BFD1E700009C +:105D00003D00002070B50446002624F00104184828 +:105D100090F8240008B1002070BD1548807A10B9B1 +:105D20004FF0FF30F8E71248057C807A2040104998 +:105D300008740846007CA04202D04FF0FF3600E015 +:105D4000002614B90A48007D18B1012001F054F969 +:105D500002E0002001F050F93CB100F089FA20B1D6 +:105D6000034805744FF0FF30D6E73046D4E7000013 +:105D70004800002001461148407A30B1012807D080 +:105D8000022808D003280CD108E0022008700BE09C +:105D90000420087008E00820087005E01020087052 +:105DA00002E04FF0FF30704700BF0448C07C18B1DC +:105DB00008784006000E08700020F4E74800002034 +:105DC00001461348407A30B1012808D002280AD091 +:105DD000032810D10BE04FF4804008800EE041F61C +:105DE0009C7008800AE04FF48050088006E04FF471 +:105DF0000060088002E04FF0FF30704700BF0448A9 +:105E0000C07C10B10888401008800020F5E7000031 +:105E10004800002001460248007C087000207047BE +:105E20004800002001460F48007A30B1012807D011 +:105E3000022809D003280FD10AE0FA2008800EE0DA +:105E40004FF4FA7008800AE04FF47A70088006E098 +:105E50004FF4FA60088002E00020088000BF00BF15 +:105E6000002070474800002001460E48007A30B1FB +:105E7000012807D0022808D003280CD108E00A48DE +:105E800008600BE00948086008E00948086005E080 +:105E90000848086002E04FF0FF30704700BF002064 +:105EA000FBE700004800002000000343000083429D +:105EB000333303423333834101461248C07A082802 +:105EC00017D2DFE800F01704070A0D101318BC20E2 +:105ED000088013E06220088010E02A2008800DE08E +:105EE000142008800AE00A20088007E005200880C6 +:105EF00004E000BF00BF0020088000BF00BF0020FA +:105F000070470000480000200146064890F8240031 +:105F100010B14FF0FF3070470248C0890880002060 +:105F2000F9E700004800002030B585B00546802024 +:105F30008DF80C006FF07F40012103AACDE900210C +:105F400002906F480068427D6D48406801780123E7 +:105F50006C48FBF7B7FE18B14FF0FF3005B030BD0D +:105F60006420FBF755FA00208DF80C006FF07F409D +:105F7000012103AACDE90021029061480068427D19 +:105F80005F484068017801235E48FBF79BFE10B133 +:105F90004FF0FF30E2E76FF07F40062103AACDE922 +:105FA0000021029056480068427E554840680178BA +:105FB00001235448FBF7CCFC10B14FF0FF30CDE784 +:105FC0009DF81100C007400F9DF80F1001F001016E +:105FD00040EA41009DF80D1001F0010140EA010482 +:105FE00084B1012C03D101214548C17434E0022C55 +:105FF00003D100214248C1742EE000BF00BF4FF022 +:10600000FF30ABE76FF07F40012103AACDE900210B +:1060100002903B480068C278394840680178012303 +:106020003848FBF795FC10B14FF0FF3096E79DF82C +:106030000C0000F00F0424B900BF00BF4FF0FF3088 +:106040008CE7042C05D100BF00BF01212C48C1748E +:1060500002E000212A48C174FF2129488172FF20F3 +:1060600027490872FF2126484172C1724FF6FF711D +:10607000C181FF21017481740121017380F8221014 +:10608000002180F8231041750175163001604160D0 +:106090008160163880F8241080F82510C1844FF4F0 +:1060A000FA6000F015FC10B14FF0FF3056E7022007 +:1060B00000F0A2FA10B14FF0FF304FE72A2000F0B5 +:1060C00095FC10B14FF0FF3048E7322000F0DAFCC9 +:1060D00010B14FF0FF3041E70020FFF713FE10B181 +:1060E0004FF0FF303AE7002000F0D2FA10B14FF045 +:1060F000FF3033E7002000F00FFD00202EE7000006 +:1061000048000020240100202DE9F04389B0054615 +:106110000E46904699462D4890F8250020B14FF044 +:10612000FF3009B0BDE8F08316B94FF0FF30F8E753 +:10613000002423E0281B102801DD102000E0281B8C +:1061400087B232193946204600F05EFD10B14FF09B +:10615000FF30E6E705AA3946204600F03BF810B1CB +:106160004FF0FF30DDE730193A4605A9FAF760F83D +:1061700010B16FF00100D4E7E01984B2AC42D9DB72 +:106180004FEA28208DF8100008F0FF008DF811006C +:106190006FF07F40022104AACDE9002102900B4854 +:1061A0000068427F09484068017801230848FBF7EE +:1061B00089FD10B14FF0FF30B3E70121034880F8AB +:1061C0002510A0F826900020ABE700004800002032 +:1061D000240100207FB504460D4616461EB94FF037 +:1061E000FF3004B070BD2048807A10B94FF0FF3006 +:1061F000F7E720128DF80C00E0B28DF80D009DF845 +:106200000D002844184949684989884202DD4FF049 +:10621000FF30E6E76FF07F40022103AACDE90021BD +:10622000029011480068C27E0F484068017801233F +:106230000E48FBF747FD10B14FF0FF30D1E76FF08C +:106240007F40CDE90065029007480068027E06485D +:106250004068017801230548FBF77AFB10B14FF045 +:10626000FF30BEE70020BCE74800002024010020EA +:106270001FB59848807A18B94FF0FF3004B010BDB0 +:10628000002003906FF07F40012103AACDE9002197 +:10629000029090480068427C8E4840680178012353 +:1062A0008D48FBF70FFD10B14FF0FF30E6E76FF0C0 +:1062B0007F40012103AACDE90021029085480068B2 +:1062C000427984484068017801238348FBF7FAFC4F +:1062D00010B14FF0FF30D1E76FF07F40012103AAEA +:1062E000CDE9002102907B48006802797948406836 +:1062F000017801237848FBF7E5FC10B14FF0FF303F +:10630000BCE7744890F82400002870D00C2003905B +:106310006FF07F40012103AACDE9002102906D4872 +:10632000006802796B484068017801236A48FBF7EE +:10633000C9FC10B14FF0FF30A0E73220FBF768F83E +:10634000C02003906348807A00F0010020B19DF8DE +:106350000C0040F0200003906FF07F40012103AA61 +:10636000CDE9002102905B480068027959484068F5 +:10637000017801235848FBF7A5FC10B14FF0FF301E +:106380007CE75448407C10B10220039001E00020DB +:1063900003906FF07F40012103AACDE90021029014 +:1063A0004C480068427C4B484068017801234A48C9 +:1063B000FBF788FC10B14FF0FF305FE7002003903F +:1063C0006FF07F40012103AACDE9002102904148EE +:1063D000006842793F484068017801233E48FBF756 +:1063E00071FC002873D04FF0FF3047E7FFE704202F +:1063F00003906FF07F40012103AACDE900210290B4 +:1064000034480068027933484068017801233248F3 +:10641000FBF758FC10B14FF0FF302FE72D48807C80 +:1064200020B92C48807A00F0010010B94020039078 +:1064300001E0602003906FF07F40012103AACDE9C5 +:1064400000210290234800680279224840680178C0 +:1064500001232148FBF736FC10B14FF0FF300DE768 +:106460003220FAF7D5FF1B48407C10B10120039081 +:1064700001E0002003906FF07F40012103AACDE9E5 +:106480000021029013480068427C1248406801785D +:1064900001231148FBF716FC10B14FF0FF30EDE679 +:1064A0006FF07F4101220B481030CDE901210090AF +:1064B000103800684279074840680178012306488F +:1064C000FBF700FC10B14FF0FF30D7E6FFE70020EC +:1064D000D4E6000048000020240100202DE9F04F00 +:1064E0008DB083460F4602200C90424890F824005D +:1064F00020B1002000F094F9012600E0002603A856 +:10650000FFF790FC05A8FFF735FC01A8FFF7D4FCC6 +:1065100002A8FFF7F9FC374890F80AA004A8FFF793 +:1065200079FC002407E0002239465846FEF704FCB7 +:1065300000B902E0641C022CF5DB00BF022C01D183 +:10654000002528E0002407E0012206A909A8FEF79B +:10655000F3FB00B902E0641C022CF5DB00BF022C47 +:1065600001D1002517E006A93846FDF729FE00F005 +:10657000FF0809A95846FEF7F1FE00F0FF090025C3 +:10658000B9F1000F01D145F00105B8F1000F01D1BB +:1065900045F0020500BFFF2016490872FF2115488B +:1065A0004172C1724FF6FF71C181FF218172017486 +:1065B00001210173BDF80C0000F08AF99DF8140068 +:1065C00000F01AF8BDF8040000F010FABDF8080059 +:1065D00000F058FA504600F09FFA9DF81000FFF7BF +:1065E00091FB16B1012000F01BF928460DB0BDE863 +:1065F000F08F0000480000201FB504462248807A32 +:1066000018B94FF0FF3004B010BD022C06D0042C96 +:1066100007D0082C08D0102C0CD108E000200390E3 +:106620000BE00820039008E01020039005E01820FC +:10663000039002E04FF0FF30E5E700BF1248407AD8 +:106640009DF80C10B0EBE10F01D10020DBE76FF0FB +:106650007F40012103AACDE9002102900A48006889 +:10666000C27909484068017801230848FBF72AFBF2 +:1066700010B14FF0FF30C6E79DF80C00C110024882 +:1066800041720020BFE700004800002024010020E4 +:106690001FB504466048807CA04202D1002004B0AF +:1066A00010BD002C5BD06FF07F40012103AACDE923 +:1066B00000210290584800680279574840680178E4 +:1066C00001235648FBF744F910B14FF0FF30E6E7DD +:1066D0009DF80C0020F0200003906FF07F40012116 +:1066E00003AACDE9002102904B48006802794A488C +:1066F0004068017801234948FBF7E4FA10B14FF0F4 +:10670000FF30CCE70320FAF783FE022003904248D3 +:1067100090F8220020B19DF80C0040F0800003901A +:106720003D4890F8230020B19DF80C0040F0300067 +:1067300003906FF07F40012103AACDE90021029070 +:1067400035480068C27D34484068017801233348E9 +:10675000FBF7B8FA00285BD04FF0FF309FE76FF0EF +:106760007F40012103AACDE9002102902A48006858 +:10677000027929484068017801232848FBF7E8F8A6 +:1067800010B14FF0FF308AE79DF80C0020F0200098 +:1067900003906FF07F40012103AACDE90021029010 +:1067A0001D48006802791C484068017801231B4895 +:1067B000FBF788FA10B14FF0FF3070E70320FAF7CB +:1067C00027FE154890F8220010B18020039001E0C8 +:1067D00000200390104890F8230020B19DF80C0091 +:1067E00040F0300003906FF07F40012103AACDE913 +:1067F0000021029008480068C27D0748406801787F +:1068000001230648FBF75EFA10B14FF0FF3046E770 +:1068100001488474002042E7480000202401002041 +:106820001FB50446284890F82400A04202D1002059 +:1068300004B010BD5CB3244890F8250010B94FF0A7 +:10684000FF30F5E7002000F0D7FB0020FFF720FF26 +:106850001D49C88C00F016F9002003906FF07F40AE +:10686000012103AACDE90021029017484068017870 +:10687000012323221548FBF725FA0121124880F84D +:106880002410012000F0B8FBFFF7F2FC1AE0002012 +:1068900000F0B2FB0C48007C03906FF07F400121B8 +:1068A00003AACDE90021029007484068017801233E +:1068B00023220648FBF706FA0021034880F824103B +:1068C000FFF7D6FC0020B3E7480000202401002099 +:1068D0001FB504462348807A18B94FF0FF3004B042 +:1068E00010BDFA2C09D0B4F5FA7F09D0B4F57A7F3F +:1068F00009D0B4F5FA6F0CD108E0002003900BE04A +:106900000820039008E01020039005E01820039071 +:1069100002E04FF0FF30E2E700BF1248007A9DF836 +:106920000C10B0EBE10F01D10020D8E76FF07F40F1 +:10693000012103AACDE9002102900A48006882796A +:1069400008484068017801230748FBF7BBF910B1FC +:106950004FF0FF30C3E79DF80C00C01001490872EA +:106960000020BCE748000020240100201FB5044699 +:106970001C4890F82300A04202D1002004B010BDB2 +:1069800014B13020039001E0002003901548807C72 +:1069900020B19DF80C0040F002000390114890F8DF +:1069A000220020B19DF80C0040F0800003906FF0B1 +:1069B0007F40012103AACDE9002102900948006827 +:1069C000C27D08484068017801230748FBF77AF93F +:1069D00010B14FF0FF30D1E7024880F8234000208B +:1069E000CCE7000048000020240100201FB5044629 +:1069F0002248807A18B94FF0FF3004B010BDBC2C8B +:106A000002DB0120039015E0622C02DB02200390E0 +:106A100010E02A2C02DB032003900BE0142C02DB95 +:106A20000420039006E00A2C02DB0520039001E01D +:106A3000062003901148C07A9DF80C10884201D1BD +:106A40000020DAE76FF07F40012103AACDE90021A1 +:106A500002900A480068827808484068017801235B +:106A60000748FBF72FF910B14FF0FF30C5E79DF84D +:106A70000C100248C1720020BFE70000480000204F +:106A8000240100201FB504462148807A18B94FF030 +:106A9000FF3004B010BD1E4890F8240010B14FF034 +:106AA000FF30F6E7042C01DA042404E0B4F57A7F21 +:106AB00001DD4FF47A744FF47A7090FBF4F0401ECD +:106AC000C0B203906FF07F40012103AACDE90021FD +:106AD00002900F48006842780D4840680178012311 +:106AE0000C48FBF7EFF810B14FF0FF30D1E79DF8FD +:106AF0000C00401C4FF47A7191FBF0F081B2044815 +:106B0000C1810146C9894810FFF770FF0020C0E726 +:106B100048000020240100201FB5044604F0700046 +:106B200010B10120039005E014B10020039001E0B2 +:106B3000402003906FF07F40012103AACDE900219E +:106B400002902F480068427D2D484068017801235B +:106B50002C48FBF7B7F828B1002129488172481E5C +:106B600004B010BD9DF80C0020F0400124480173D2 +:106B70000020039004F0400020B99DF80C0040F084 +:106B80000400039004F0200020B99DF80C0040F0B0 +:106B90000200039004F0100020B99DF80C0040F0B2 +:106BA0000100039004F0080020B99DF80C0040F0AB +:106BB000380003906FF07F40012103AACDE9002146 +:106BC00002900F480068827D0D48406801780123DB +:106BD0000C48FBF777F820B1002109488172481E64 +:106BE000BEE724B1082C02D00020FFF7BFFE044806 +:106BF0008472002101753220FAF70AFC0020AFE709 +:106C000048000020240100207FB504460D461646AA +:106C10001EB94FF0FF3004B070BD2048807A10B923 +:106C20004FF0FF30F7E720128DF80C00E0B28DF83E +:106C30000D009DF80D00284418494968498988428B +:106C400002DD4FF0FF30E6E76FF07F40022103AA3C +:106C5000CDE90021029011480068C27E0F484068CB +:106C6000017801230E48FBF72DF810B14FF0FF30EB +:106C7000D1E76FF07F40CDE90065029007480068DA +:106C8000027E06484068017801230548FBF71AF8A0 +:106C900010B14FF0FF30BEE70020BCE748000020F5 +:106CA0002401002002461068C0EBC130136803EBDA +:106CB000201010601068C01300B2704770B5044611 +:106CC000C4F3CF0500263848B0F9000037490880E2 +:106CD00029463748FFF7E6FF364908800988691AD0 +:106CE00008B200F075F8304908803048B0F900006B +:106CF000002823DA0846B0F9000000281EDB2E49E0 +:106D0000B1F900102D4A11802D49B1F900102D4A1A +:106D1000118001212C4A117000212C4A1170264A41 +:106D2000118026490988274A1288891A08B214282E +:106D300003DDB0F5FA6F00DA012600BF1B48B0F999 +:106D4000000000280DDD1848B0F90000002808DC1C +:106D500000201D49087001201C49087000201849B6 +:106D600008801948007860B10F48B0F900000F4959 +:106D7000B1F90010884204DD0B48B0F900000E495B +:106D800008801248007860B10748B0F90000074950 +:106D9000B1F90010884204DA0348B0F9000008494C +:106DA0000880304670BD00008A0000208C00002062 +:106DB0009800002092000020900000208600002013 +:106DC0008E00002088000020940000209500002004 +:106DD0002DE9F04105461F481F49097820F8115058 +:106DE0001D4A12780B3A02F01F02034633F91210C3 +:106DF0001A4AD28A10B200F033F8064600241BE08B +:106E0000154A1278121B02F01F02124B33F812308F +:106E1000114A1278163A224402F01F020D4F37F839 +:106E200012201A4411B20D4A32F8142010B200F0A8 +:106E300017F80644601CC4B20B2CE1DB064800784E +:106E4000401C00F01F0004490870F01300B2BDE8B8 +:106E5000F0810000640F00209C0000202A7E0008C2 +:106E6000024602FB01F0704710B514201449088057 +:106E700040421449088000201349088013490880C3 +:106E80001349088013490880134908801349087082 +:106E9000134908701349086040211348F9F7BDF9F8 +:106EA00000201249087012490860124908701249FE +:106EB000087012480021016041608160C16010BD0E +:106EC00086000020880000208A0000208C0000201E +:106ED0008E000020900000209200002094000020EE +:106EE0009500002098000020640F00209C000020E6 +:106EF000A4000020A8000020A9000020A40F00206A +:106F000070B588B002A905A8FFF7E8FA044601A801 +:106F1000FEF7AAFF0598F9F7E8FB06460199F9F78D +:106F2000ECF90546F9F7EFFB05900698F9F7DDFB5C +:106F300006460199F9F7E1F90546F9F7E4FB0690F1 +:106F40000798F9F7D2FB06460199F9F7D6F90546F5 +:106F5000F9F7D9FB079005A8FDF7DAFB6846FEF7BD +:106F60002FFFBDF80010029848430290BDF80010B2 +:106F7000039848430390BDF80010049848430490D8 +:106F800002A8FDF7F3FA032C02D0012008B070BD6F +:106F90000020FBE701200149087070471000002025 +:106FA00070B500241EE0FAF7E5FB054604EB44004B +:106FB0000F4901EB8000806804EB44010C4A02EBAE +:106FC000810149680844A8420AD804EB44001146EC +:106FD00001EB8000856004EB440152F821008047FA +:106FE000601CC4B2034800788442DCDB70BD000042 +:106FF00014000020100000201FB50446284890F817 +:10700000240000B314B10220039001E0002003909B +:107010006FF07F40012103AACDE9002102902048B2 +:107020000068427C1E484068017801231D48FAF739 +:1070300049FE18B14FF0FF3004B010BD9DF80C10A0 +:10704000174841742AE01648807A10B94FF0FF3093 +:10705000F2E724B11248407C08B10020ECE714B1FB +:107060000120039001E0002003906FF07F40012198 +:1070700003AACDE90021029009480068427C084833 +:107080004068017801230748FAF71CFE10B14FF061 +:10709000FF30D1E79DF80C10014841740020CBE788 +:1070A000480000202401002030B503460C4611465C +:1070B00002EBD17003FB024505EB6005501C95FB0C +:1070C000F0F030BD10B50246501C4FF4C87390FB71 +:1070D000F3F403FB140081B207480088884203DB05 +:1070E00005480088401A04E00348008800F5C8708D +:1070F000401A80B210BD00007E000020020304058B +:10710000060708090A0B0C0D0E0F101001020000F3 +:107110000000000000000102030406070809000047 +:10712000000001020304000075191A0C6A231B1CDD +:1071300000001F207274433B4138393A006B6C37B2 +:107140006F06246D6E70D000000476005401F7FDC8 +:10715000000100008300000000080000000100188A +:1071600032000500000020410000D242295C0F3EA1 +:107170009A99993E3333733F295C0F3E00007000AB +:10718000000000240000000200030000006500541D +:10719000FFEF0000FA80000B12820001030C30C3E5 +:1071A0000E8C8CE914D5400213710F8E3883F8834E +:1071B0003000F883258EF8833000F883FFFFFFFF4F +:1071C0000FFEA9D6240004001A8279A10000003C19 +:1071D000FFFF00000010000038836FA2003E033064 +:1071E0004000000002CAE3093E80000020000000C9 +:1071F000000000004000000060000000000C0000E3 +:10720000000C186E000006920A16C0DFFFFF02563F +:10721000FD8CD377FFE1C496E0C5BEAA0000000054 +:10722000FFFF0B2B00001657000003594000000021 +:1072300000001DFA00026C1D000000003FFFDFEBA4 +:10724000003EB3B6000D227800002F3C0000000085 +:10725000001942B5000039A20000B365D90E9FC9DC +:107260001DCF4C3430000000500000003BB67AE8DF +:107270000064000000C800000000000010000000D2 +:107280001000FA921000225E000D229F0001000003 +:1072900000320000FF46000063D400001000000030 +:1072A00004D6000004CC000004CC000000001072E2 +:1072B0000000004000000000000000000006000286 +:1072C000000500070000000000640000000000004E +:1072D0000000000500050064002000000000000020 +:1072E0000000000000004000000003000000003229 +:1072F000F8980000FF650000830F0000FF9BFC0072 +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000001000400000000D +:10733000000000060000B26A000200000001FB83AA +:107340000068000000D9FC007CF1FF830000000011 +:1073500000650000006403E80064002800000025C8 +:107360000000000016A00000000010000000100047 +:10737000002F0000000001F40000100000280000B1 +:10738000FFFF4581FFFFFA720000000000000000CF +:10739000004400050005BAC6004778A200000001BD +:1073A0000000000000000600000000140000254D51 +:1073B000002F706D000005AE000C02D00000000030 +:1073C000000000000000000000000000001B0000A2 +:1073D0000000000000000000000000000064000049 +:1073E0000008000000000000000000000000000095 +:1073F000000000000000000000000000000000008D +:10740000000000000000000000000000000000007C +:10741000000000000000000000000000000000006C +:10742000000000000000000000000000000000005C +:10743000000000000000000000000000001B000031 +:107440000000000000000000000E000E00000AC74F +:107450000004000000000032FFFFFF9C00000B2B27 +:10746000000000020000000100000064FFE50000D1 +:10747000000000000000000000000000000000010B +:10748000000000000001000000000000000180007A +:107490000001800000018000002426D300000000CD +:1074A00000000000000600100096003C00000000F4 +:1074B0000000000000000000000000000C0A4E6800 +:1074C000CDCF770950166759C619CE82000000004B +:1074D00000000000000000000000000000000000AC +:1074E0000000000017D78400030000000000000027 +:1074F00000000000C7938F9D1E1B1C190000000098 +:10750000000000000000000000000000000000007B +:107510000000000002031885000040000000000386 +:107520000000000300000000000000004000000018 +:10753000000000000000000000000000000000004B +:10754000000000000000000000000000000000003B +:10755000000000000000000000000000000000002B +:10756000677DDF7E72902E554CF6E68800000000A5 +:10757000000000000000000000000000D8DCB4B8EB +:10758000B0D8B9ABF3F8FAB3B7BB8E9EAEF132F513 +:107590001BF1B4B8B08097F1A9DFDFDFAADFDFDF2E +:1075A000F2AAC5CDC7A90CC92C97F1A989264666B0 +:1075B000B28999A92D557DB0B08AA896365676F134 +:1075C000BAA3B4B280C0B8A89711B28398BAA3F096 +:1075D000240844106418B2B9B49883F1A329557DE6 +:1075E000BAB5B1A38393F0002850F5B2B6AA83933D +:1075F00028547CF1B9A3829361BAA2DADEDFDB8181 +:107600009AB9AEF5606870F1DABAA2DFD9BAA2FA17 +:10761000B9A38292DB31BAA2D9BAA2F8DF85A4D08D +:10762000C1BBAD83C2C5C7B8A2DFDFDFBAA0DFDF51 +:10763000DFD8D8F1B8AAB38DB4980D355DB2B6BA1B +:10764000AF8C96198F9FA70E161EB49AB8AA872CD6 +:10765000547CBAA4B08AB691325676B28494A4C847 +:1076600008CDD8B8B4B0F19982A82D557D98A80E50 +:10767000161EA22C547C92A4F02C5078F184A89869 +:10768000C4CDFCD80DDBA8FC2DF3D9BAA6F8DABA24 +:10769000A6DED8BAB2B68696A6D0F3C841DAA6C896 +:1076A000F8D8B0B4B882A892F52C548898F135D99E +:1076B000F418D8F1A2D0F8F9A884D9C7DFF8F88374 +:1076C000C5DADF69DF83C1D8F40114F1A8824EA8BE +:1076D00084F311D182F5D992289788F109F41C1C02 +:1076E000D884A8F3C0F9D1D99782F129F40DD8F341 +:1076F000F9F9D1D982F4C203D8DEDF1AD8F1A2FA9F +:10770000F9A88498D9C7DFF8F8F883C7DADF69DF0A +:10771000F883C3D8F40114F198A8822EA884F31139 +:10772000D182F5D992509788F109F41CD884A8F336 +:10773000C0F8F9D1D99782F149F40DD8F3F9F9D10C +:10774000D982F4C403D8DEDFD8F1AD8898CCA8097B +:10775000F9D98292A8F57CF1883ACF944A6E98DBE9 +:107760006931DAADF2DEF9D88795A8F221D1DAA530 +:10777000F9F417D9F1AE8ED0C0C3AE82C684C3A8C7 +:107780008595C8A588F2C0F1F4010EF18E9EA8C6B9 +:107790003E56F554F18872F40115F19845856EF561 +:1077A0008E9E0488F142985A8E9E068869F4011CC8 +:1077B000F1981E1108D0F504F11E970202983625A3 +:1077C000DBF9D985A5F3C1DA85A5F3DFD88595A8BE +:1077D000F309DAA5FAD88292A8F578F1881A849F7D +:1077E00026889821DAF41DF3D8879F39D1AFD9DFE5 +:1077F000DFFBF9F40CF3D8FAD0F8DAF9F9D0DFD9D5 +:10780000F9D8F40BD8F3879F39D1AFD9DFDFF41D56 +:10781000F3D8FAFCA869F9F9AFD0DADEFAD9F88F13 +:107820009FA8F1CCF398DB45D9AFDFD0F8D8F18F22 +:107830009FA8CAF38809DAAF8FCBF8D8F2AD978D3D +:107840000CD9A5DFF9BAA6F3FAF412F2D8950DD146 +:10785000D9BAA6F3FADAA5F2C1BAA6F3DFD8F1BA1B +:10786000B2B68696A6D0CAF349DAA6CBF8D8B0B499 +:10787000B8D8AD84F2C0DFF18FCBC3A8B2B686967C +:10788000C8C1CBC3F3B0B48898A821DB718D9D71BA +:10789000859521D9ADF2FAD88597A828D9F408D8CA +:1078A000F28D29DAF405D9F285A4C2F2D8A88D9414 +:1078B00001D1D9F411F2D88721D8F40AD8F28498EA +:1078C000A8C801D1D9F411D8F3A4C8BBAFD0F2DE57 +:1078D000F8F8F8F8F8F8F8F8D8F1B8F6B5B9B08AC9 +:1078E00095A3DE3CA3D9F8D85CA3D9F8D87CA3D95A +:1078F000F8D8F8F9D1A5D9DFDAFAD8B18530F7D9B7 +:10790000DED8F830ADDADED8F2B48C99A32D557DEF +:10791000A083DFDFDFB591A0F629D9FBD8A0FC2931 +:10792000D9FAD8A0D051D9F8D8FC51D9F9D879D9F9 +:10793000FBD8A0D0FC79D9FAD8A1F9F9F9F9F9A0C6 +:10794000DADFDFDFD8A1F8F8F8F8F8ACDEF8ADDE62 +:107950008393AC2C547CF1A8DFDFDFF69D2CDAA0FA +:10796000DFD9FADB2DF8D8A850DAA0D0DED9D0F8CC +:10797000F8F8DB55F8D8A878DAA0D0DFD9D0FAF833 +:10798000F8F8F8DB7DF8D89CA88CF530DB38D9D036 +:10799000DEDFA0D0DEDFD8A848DB58D9DFD0DEA0FC +:1079A000DFD0DED8A868DB70D9DFDFA0DFDFD8F159 +:1079B000A888902C547C98A8D05C38D1DAF2AE8C90 +:1079C000DFF9D8B087A8C1C1B188A8C6F9F9DA36FD +:1079D000D8A8F9DA36D8A8F9DA36D8A8F9DA36D834 +:1079E000A8F9DA36D8F78D9DADF818DAF2AEDFD8FF +:1079F000F7ADFA30D9A4DEF9D8F2AEDEFAF983A7F2 +:107A0000D9C3C5C7F1889BA77AADF7DEDFA4F88498 +:107A10009408A797F300AEF29819A488C6A3948897 +:107A2000F632DFF28393DB09D9F2AADFD8D8AEF8B9 +:107A3000F9D1DAF3A4DEA7F1889B7AD8F38494AE67 +:107A400019F9DAAAF1DFD8A881C0C3C5C7A3928308 +:107A5000F628ADDED9F8D8A350ADD9F8D8A378ADC3 +:107A6000D9F8D8F8F9D1A1DADEC3C5C7D8A1819475 +:107A7000F818F2B089ACC3C5C7F1D8B8B4B09786CE +:107A8000A8319B069907AB9728889BF00C201440DF +:107A9000B0B4B8F0A88A9A285078B79BA829517931 +:107AA000247059446938644831F1BBAB88002C54C8 +:107AB0007CF0B38BB8A804285078F1B088B497262E +:107AC000A85998BBABB38B02264666B0B8F08A9C27 +:107AD000A82951798B2951798A2470598B205871A2 +:107AE0008A4469388B3940688A6448318B304960F0 +:107AF00088F1AC002C547CF08CA804285078F188D4 +:107B00009726A85998AC8C02264666F0899CA8292D +:107B10005179247059446938644831A98809205939 +:107B200070AB11384069A8193148608CA83C415CA1 +:107B3000207C00F187981986A86E767EA999882DF9 +:107B4000557DD8B1B5B9A3DFDFDFAED0DFAAD0DE77 +:107B5000F2ABF8F9D9B087C4AAF1DFDFBBAFDFDF42 +:107B6000B9D8B1F1A3978E60DFB084F2C8F8F9D923 +:107B7000DED89385F14AB183A308B5839A0810B77C +:107B80009F10D8F1B0BAAEB08AC2B2B68E9EF1FBE9 +:107B9000D9F41DD8F9D90CF1D8F8F8AD61D9AEFBFC +:107BA000D8F40CF1D8F8F8AD19D9AEFBDFD8F4163B +:107BB000F1D8F8AD8D61D9F4F4ACF59C9C8DDF2B38 +:107BC000BAB6AEFAF8F40BD8F1AED0F8AD51DAAEE1 +:107BD000FAF8F1D8B9B1B6A3839C08B9B1839AB5C4 +:107BE000AAC0FD3083B79F10B58B93F20202D1ABD0 +:107BF000DADED8F1B080BAABC0C3B284C1C3D8B1A9 +:107C0000B9F38BA391B609B4D9ABDEB0879CB9A305 +:107C1000DDF1B38B8B8B8B8BB087A3A3A3A3B28B2C +:107C2000B69BF2A3A3A3A3A3A3A3A3A3A3F1B0878B +:107C3000B59AA3F39BA3A3DCBAACDFB9A3A3A3A318 +:107C4000A3A3A3A3A3A3A3A3A3A3A3A3D8D8D8BB4D +:107C5000B3B7F1AAF9DAFFD9809AAA28B48098A715 +:107C600020B79787A86688F07951F1902C870CA7E8 +:107C700081976293F071716085940129517990A583 +:107C8000F1284C6C870C95188578A38390284C6C50 +:107C9000886CD8F3A28200F210A8921980A2F2D9BF +:107CA00026D8F188A84DD948D896A83980D93CD88B +:107CB0009580A839A68698D92CDA87A72CD8A889C8 +:107CC0009519A980D938D8A88939A980DA3CD8A8CB +:107CD0002EA83990D90CD8A8953198D90CD8A809D4 +:107CE000D9FFD801DAFFD89539A9DA26FFD890A8AC +:107CF0000D8999A810809821DA2ED88999A8318009 +:107D0000DA2ED8A886963180DA2ED8A8873180DA84 +:107D10002ED8A88292F34180F1D92ED8A882F319E7 +:107D200080F1D92ED882ACF3C0A28022F1A62EA772 +:107D30002EA92298A829DAACDEFFD8A2F22AF1A94E +:107D40002E8292A8F23180A696F1D900AC8C9C0CC0 +:107D500030ACDED0DEFFD88C9CACD010ACDE809294 +:107D6000A2F24C82A8F1CAF235F19688A6D900D8C1 +:107D7000F1FF5F5F5F6060606161616161626262CB +:107D800062626363636363636363646464646464BF +:107D900064646464646464646464646464646363A5 +:107DA00063636363636362626262626261616161B1 +:107DB000606060605F5F5F5E5E5E5D5D5D5C5C5CE1 +:107DC0005B5B5A5A59595958585757565655555436 +:107DD00054535252515150504F4E4E4D4C4C4B4AB1 +:107DE0004A494848474645454443424241403F3E50 +:107DF0003E3D3C3B3A393838373635343332313012 +:107E00002F2E2D2C2B2A2928272625242322211FFB +:107E10001E1D1C1B1A19171615141311100F0E0C0A +:107E20000B0A0907060503020100AC0041014302E9 +:107E30009F03500542075609640B3F0DB80EAC0F67 +:107E400000100000647E000800000020B000000068 +:107E500014390008147F0008B00000200813000047 +:107E6000243900080000000010000000010000009C +:107E700000127A0000000000DD5800083200000007 +:107E800000000000000000000000000000000000F2 +:107E900000000000000000000000000000000000E2 +:107EA000000100000001000000010000287100082E +:107EB0004671000800000000000000000000000003 +:107EC00000000000000000000000000000000000B2 +:107ED00000000000547100080000000000000000D5 +:107EE000000000000000000000001400ECFF000093 +:107EF0000000000000000000000000000000000082 +:107F00000000000000000000000000000000000071 +:047F1000000000006D :04000005080000ED02 :00000001FF diff --git a/README.md b/README.md index 64f2244..5ad934c 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ helmet.ioc STM32CubeMX 工程配置 | TIM1 | 内部时钟 | 微秒级延时(预分频 72-1,1MHz 计数) | | GPIO | PA8 | DHT11 温湿度传感器数据线(推挽输出) | | I2C1 | PB6 (SCL) / PB7 (SDA) | MPU6050 六轴传感器通信(Fast Mode 400kHz) | +| I2C2 | PB10 (SCL) / PB11 (SDA) | MAX30102 心率血氧传感器通信(Fast Mode 400kHz) | | SWD | PA13 / PA14 | 程序下载与调试 | ## 功能模块 @@ -55,6 +56,7 @@ helmet.ioc STM32CubeMX 工程配置 | MQ2 烟雾传感器 | `APP/mq2.c` | ADC+DMA 采集,计算气体浓度(ppm),100ms 周期 | | DHT11 温湿度传感器 | `APP/dht11.c` | 单总线时序通信,读取温度和湿度,1000ms 周期 | | MPU6050 六轴传感器 | `APP/mpu6050.c` | I2C 通信 + DMP 姿态解算(pitch/roll/yaw),跌倒检测,10ms 周期 | +| MAX30102 心率血氧传感器 | `APP/max30102.c` | I2C2 通信,FIFO 轮询读取 Red/IR,PBA 心跳检测 + AC/DC 比值算 SpO2,50ms 周期 | | 位带操作 | `APP/sys.h` | GPIO 位带操作宏,支持单 IO 口读写 | ## 软件架构 diff --git a/helmet.ioc b/helmet.ioc index 7040c23..1ec12eb 100644 --- a/helmet.ioc +++ b/helmet.ioc @@ -24,33 +24,38 @@ File.Version=6 GPIO.groupedBy=Group By Peripherals I2C1.I2C_Mode=I2C_Fast I2C1.IPParameters=I2C_Mode +I2C2.I2C_Mode=I2C_Fast +I2C2.IPParameters=I2C_Mode KeepUserPlacement=false Mcu.CPN=STM32F103C8T6 Mcu.Family=STM32F1 Mcu.IP0=ADC1 Mcu.IP1=DMA Mcu.IP2=I2C1 -Mcu.IP3=NVIC -Mcu.IP4=RCC -Mcu.IP5=SYS -Mcu.IP6=TIM1 -Mcu.IP7=USART1 -Mcu.IPNb=8 +Mcu.IP3=I2C2 +Mcu.IP4=NVIC +Mcu.IP5=RCC +Mcu.IP6=SYS +Mcu.IP7=TIM1 +Mcu.IP8=USART1 +Mcu.IPNb=9 Mcu.Name=STM32F103C(8-B)Tx Mcu.Package=LQFP48 Mcu.Pin0=PD0-OSC_IN Mcu.Pin1=PD1-OSC_OUT -Mcu.Pin10=VP_SYS_VS_Systick -Mcu.Pin11=VP_TIM1_VS_ClockSourceINT +Mcu.Pin10=PB6 +Mcu.Pin11=PB7 +Mcu.Pin12=VP_SYS_VS_Systick +Mcu.Pin13=VP_TIM1_VS_ClockSourceINT Mcu.Pin2=PA0-WKUP -Mcu.Pin3=PA8 -Mcu.Pin4=PA9 -Mcu.Pin5=PA10 -Mcu.Pin6=PA13 -Mcu.Pin7=PA14 -Mcu.Pin8=PB6 -Mcu.Pin9=PB7 -Mcu.PinsNb=12 +Mcu.Pin3=PB10 +Mcu.Pin4=PB11 +Mcu.Pin5=PA8 +Mcu.Pin6=PA9 +Mcu.Pin7=PA10 +Mcu.Pin8=PA13 +Mcu.Pin9=PA14 +Mcu.PinsNb=14 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103C8Tx @@ -82,6 +87,10 @@ PA8.PinState=GPIO_PIN_SET PA8.Signal=GPIO_Output PA9.Mode=Asynchronous PA9.Signal=USART1_TX +PB10.Mode=I2C +PB10.Signal=I2C2_SCL +PB11.Mode=I2C +PB11.Signal=I2C2_SDA PB6.Mode=I2C PB6.Signal=I2C1_SCL PB7.Mode=I2C @@ -131,7 +140,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_ADC1_Init-ADC1-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_ADC1_Init-ADC1-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true,7-MX_I2C1_Init-I2C1-false-HAL-true RCC.ADCFreqValue=12000000 RCC.ADCPresc=RCC_ADCPCLK2_DIV6 RCC.AHBFreq_Value=72000000 From 1236db6b54bc5561e57a2d90afa5a349d25a4656 Mon Sep 17 00:00:00 2001 From: Maple <132198239+rsecss@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:14:36 +0800 Subject: [PATCH 2/4] =?UTF-8?q?chore(task):=20=E5=BD=92=E6=A1=A3=2004-20-m?= =?UTF-8?q?ax30102?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-04/04-20-max30102/check.jsonl | 4 + .../2026-04/04-20-max30102/debug.jsonl | 1 + .../2026-04/04-20-max30102/implement.jsonl | 7 ++ .../archive/2026-04/04-20-max30102/prd.md | 93 +++++++++++++++++++ .../archive/2026-04/04-20-max30102/task.json | 53 +++++++++++ 5 files changed, 158 insertions(+) create mode 100644 .trellis/tasks/archive/2026-04/04-20-max30102/check.jsonl create mode 100644 .trellis/tasks/archive/2026-04/04-20-max30102/debug.jsonl create mode 100644 .trellis/tasks/archive/2026-04/04-20-max30102/implement.jsonl create mode 100644 .trellis/tasks/archive/2026-04/04-20-max30102/prd.md create mode 100644 .trellis/tasks/archive/2026-04/04-20-max30102/task.json diff --git a/.trellis/tasks/archive/2026-04/04-20-max30102/check.jsonl b/.trellis/tasks/archive/2026-04/04-20-max30102/check.jsonl new file mode 100644 index 0000000..90a287e --- /dev/null +++ b/.trellis/tasks/archive/2026-04/04-20-max30102/check.jsonl @@ -0,0 +1,4 @@ +{"file": ".claude/commands/trellis/finish-work.md", "reason": "Finish work checklist"} +{"file": ".claude/commands/trellis/check.md", "reason": "Code quality check spec"} +{"file": "CLAUDE.md", "reason": "验证代码风格/注释/命名是否符合项目约定"} +{"file": "APP/mpu6050.c", "reason": "对照参考模板检查驱动结构一致性"} diff --git a/.trellis/tasks/archive/2026-04/04-20-max30102/debug.jsonl b/.trellis/tasks/archive/2026-04/04-20-max30102/debug.jsonl new file mode 100644 index 0000000..ce8c4b4 --- /dev/null +++ b/.trellis/tasks/archive/2026-04/04-20-max30102/debug.jsonl @@ -0,0 +1 @@ +{"file": ".claude/commands/trellis/check.md", "reason": "Code quality check spec"} diff --git a/.trellis/tasks/archive/2026-04/04-20-max30102/implement.jsonl b/.trellis/tasks/archive/2026-04/04-20-max30102/implement.jsonl new file mode 100644 index 0000000..e9428cb --- /dev/null +++ b/.trellis/tasks/archive/2026-04/04-20-max30102/implement.jsonl @@ -0,0 +1,7 @@ +{"file": ".trellis/workflow.md", "reason": "Project workflow and conventions"} +{"file": ".trellis/spec/backend/index.md", "reason": "Backend development guide"} +{"file": "CLAUDE.md", "reason": "项目代码风格与架构约定(外设表、命名、头文件规则)"} +{"file": "APP/mpu6050.c", "reason": "I2C 模块驱动模板(HAL_I2C_Mem_Read 用法、task 函数风格)"} +{"file": "APP/mpu6050.h", "reason": "头文件守卫/extern 全局变量的写法模板"} +{"file": "APP/bsp_system.h", "reason": "应用模块登记位置"} +{"file": "APP/scheduler.c", "reason": "调度器任务注册方式"} diff --git a/.trellis/tasks/archive/2026-04/04-20-max30102/prd.md b/.trellis/tasks/archive/2026-04/04-20-max30102/prd.md new file mode 100644 index 0000000..25be5a9 --- /dev/null +++ b/.trellis/tasks/archive/2026-04/04-20-max30102/prd.md @@ -0,0 +1,93 @@ +# MAX30102 心率血氧传感器模块 + +## Goal + +在 SmartHelm 现有框架中新增 MAX30102 心率/血氧传感器驱动模块,通过硬件 I2C1 总线采集 Red/IR 光电数据并解算 HR(心率 bpm)与 SpO2(血氧饱和度 %),以现有传感器模块(MPU6050/DHT11/MQ2)一致的风格集成至调度器。 + +## What I already know + +- I2C1 已在 CubeMX 中配置为 Fast Mode 400 kHz(PB6/PB7),当前由 MPU6050 (0x68) 独占使用。 +- MAX30102 7-bit I2C 地址固定为 **0x57**(写 0xAE / 读 0xAF),与 MPU6050 **不冲突**,可共享 I2C1 总线。 +- 项目模块模板已成熟:`APP/.{c,h}` + `bsp_system.h` 登记 + `scheduler.c` 注册周期任务 + `main.c` 初始化。 +- 现有驱动全部使用 `HAL_I2C_Mem_Read/Write(&hi2c1, addr<<1, reg, ...)` 阻塞 API,非 DMA。 +- 输出风格一致为 `printf` 走 USART1(115200)。 +- STM32F103C8T6 资源:64 KB Flash / 20 KB SRAM(心率算法需要环形缓冲区,典型 100~500 个样本的 int32,需评估内存占用)。 +- MAX30102 芯片 Part ID 寄存器(0xFF)= 0x15,可用于上电自检。 +- MAX30102 VLED 需 3.3V、VDD 需 1.8V,通常模块板自带 LDO(硬件责任,软件不关心)。 + +## Assumptions (temporary) + +- 采用 **轮询 FIFO + 调度器周期任务** 的风格(与 MPU6050 一致),不启用 MAX30102 的 INT 引脚,避免改动 CubeMX 引脚分配。 +- 采样率 100 Hz(SMP_AVE=1,SPO2_SR=100),FIFO 几乎满时的轮询周期应 ≤ 50 ms 以防溢出(32 深 FIFO × 1 sample = 320 ms 满,但建议 50 ms 读一次留余量)。 +- HR/SpO2 算法采用 Maxim 官方参考实现(MAXREFDES117 精简版,约 4~6 KB Flash)。 +- 算法更新周期约 1 秒(每累积 100 个样本解算一次)。 + +## Decision (ADR-lite) + +**Context**: 需决定 MAX30102 的 I2C 总线归属与 FIFO 读取触发机制。 + +**Decision**: +1. **独立 I2C2 总线**(PB10/PB11,Fast Mode 400 kHz,Duty cycle 2),不与 MPU6050 共用 I2C1。CubeMX 已配置并生成代码。 +2. **纯轮询方案(A)**:调度器每 50 ms 读一次 FIFO,不接 MAX30102 的 INT 脚。 + +**Consequences**: +- 利:总线隔离减少相互阻塞风险;无需改动 `.ioc` 再引入额外 GPIO/EXTI;与 MPU6050/DHT11/MQ2 现有轮询风格完全一致。 +- 弊:多占用 I2C2 外设与 PB10/PB11 两个引脚;100 Hz 采样下每 50 ms 产生约 30 字节 I2C 读(总线 400 kHz 下可忽略)。 +- 未来如需低功耗或高采样率,可再接 INT 脚升级为 B 方案,驱动接口保持兼容。 + +## Requirements (evolving) + +- 新增 `APP/max30102.{c,h}`,通过 I2C1 总线与 MAX30102 通讯。 +- 提供 `max30102_init()`:上电自检(读 Part ID=0x15 验证连接)、寄存器配置(SPO2 模式、100Hz 采样、LED 电流、FIFO)。 +- 提供 `max30102_task()`:周期读取 FIFO Red/IR 数据 → 更新心率/血氧。 +- 提供全局变量(extern):`heart_rate`(bpm, int32)、`spo2`(%, int32)、`hr_valid` / `spo2_valid`(uint8_t)。 +- 集成到 `scheduler_task[]` 与 `main.c` 初始化流程。 +- 登记至 `bsp_system.h`。 +- 更新 Keil `helmet.uvprojx` 添加源文件。 +- 更新 `CLAUDE.md` 与 `README.md` 的外设/模块章节。 + +## Acceptance Criteria (evolving) + +- [ ] 冷启动后 2 秒内能通过 I2C 读到 Part ID = 0x15(自检通过)。 +- [ ] 手指放置 10 秒内,串口能持续稳定输出合理的 HR(40~180)和 SpO2(85~100)。 +- [ ] MPU6050 姿态解算、DHT11、MQ2 功能不受 I2C 总线共享影响(所有串口输出保持正常)。 +- [ ] CI 质量门禁通过(cppcheck、头文件守卫、UTF-8 无 BOM、LF)。 +- [ ] 手指离开时 `hr_valid=0`,不输出错误的心率。 + +## Definition of Done + +- [ ] 代码通过 Keil MDK 编译无 warning。 +- [ ] 通过 CI 质量门禁(`.github/workflows/quality.yml`)。 +- [ ] 实机串口验证 HR/SpO2 在手指贴合时数值可信。 +- [ ] `bsp_system.h`、`scheduler.c`、`main.c`、`helmet.uvprojx` 同步更新。 +- [ ] `CLAUDE.md`(外设表格、架构章节)与 `README.md`(功能模块)同步更新。 +- [ ] Trellis session 通过 `add_session.py` 记录。 + +## Out of Scope (explicit) + +- 不新增 I2C2 或软件 I2C。 +- 不引入外部第三方库(例如 Arduino SparkFun 库),算法代码内嵌。 +- 不做跌倒+心率的融合逻辑。 +- 不做蓝牙/无线上报。 +- 不做 OLED 显示。 + +## Technical Notes + +- 可参考 Maxim 官方 **MAXREFDES117#** 参考设计中的 `algorithm.c`(自相关峰值检测 + 比值解算 SpO2),License 为 Maxim 自家宽松许可。 +- FIFO 每样本 6 字节(Red 3B + IR 3B,18-bit)。读取需使用 `HAL_I2C_Mem_Read` burst。 +- 寄存器地址常用:`FIFO_WR_PTR=0x04`、`FIFO_RD_PTR=0x06`、`FIFO_DATA=0x07`、`MODE=0x09`、`SPO2=0x0A`、`LED1_PA=0x0C`(Red)、`LED2_PA=0x0D`(IR)、`PART_ID=0xFF`。 +- 典型配置:MODE=0x03(SpO2 模式),SPO2=0x27(100Hz,18-bit,4.7ms 脉宽),LED 电流 0x24(约 7 mA)。 + +## Research Notes + +### 相似方案对比 + +- **MAXREFDES117 官方算法**:Maxim 参考实现,自相关峰值检测心率 + 经验公式 SpO2,约 400~500 行 C,成熟可靠,几乎所有 STM32/Arduino 开源工程的基石。 +- **DFRobot / SparkFun Arduino 库**:包装官方算法 + C++ OO 封装,结构相对重,不适合直接移植到裸 C 嵌入式。 +- **自研滑窗峰检测**:代码量最小(~100 行)但临床精度差、抗运动干扰弱。 + +### 项目约束 + +- STM32F103 资源紧张(64KB Flash / 20KB SRAM),需要尽量减小算法内存占用。 +- 已有 MPU6050 DMP 固件占用不小 Flash,需注意剩余空间。 +- 必须纯 C(Keil MDK-ARM,armcc/armclang)。 diff --git a/.trellis/tasks/archive/2026-04/04-20-max30102/task.json b/.trellis/tasks/archive/2026-04/04-20-max30102/task.json new file mode 100644 index 0000000..ea83e0c --- /dev/null +++ b/.trellis/tasks/archive/2026-04/04-20-max30102/task.json @@ -0,0 +1,53 @@ +{ + "id": "max30102", + "name": "max30102", + "title": "brainstorm: 新增 MAX30102 心率血氧传感器模块", + "description": "", + "status": "completed", + "dev_type": "backend", + "scope": null, + "package": null, + "priority": "P2", + "creator": "Maple", + "assignee": "Maple", + "createdAt": "2026-04-20", + "completedAt": "2026-04-28", + "branch": null, + "base_branch": "dev", + "worktree_path": null, + "current_phase": 4, + "next_action": [ + { + "phase": 1, + "action": "brainstorm" + }, + { + "phase": 2, + "action": "research" + }, + { + "phase": 3, + "action": "implement" + }, + { + "phase": 4, + "action": "check" + }, + { + "phase": 5, + "action": "update-spec" + }, + { + "phase": 6, + "action": "record-session" + } + ], + "commit": null, + "pr_url": null, + "subtasks": [], + "children": [], + "parent": null, + "relatedFiles": [], + "notes": "", + "meta": {} +} \ No newline at end of file From 96844b2282379ee5d47359fccf4935e428dd4cb1 Mon Sep 17 00:00:00 2001 From: Maple <132198239+rsecss@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:14:36 +0800 Subject: [PATCH 3/4] =?UTF-8?q?chore:=20=E8=AE=B0=E5=BD=95=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .trellis/workspace/Maple/index.md | 9 +++---- .trellis/workspace/Maple/journal-1.md | 34 +++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/.trellis/workspace/Maple/index.md b/.trellis/workspace/Maple/index.md index 11b887b..1451188 100644 --- a/.trellis/workspace/Maple/index.md +++ b/.trellis/workspace/Maple/index.md @@ -8,8 +8,8 @@ - **Active File**: `journal-1.md` -- **Total Sessions**: 6 -- **Last Active**: 2026-04-19 +- **Total Sessions**: 7 +- **Last Active**: 2026-04-28 --- @@ -19,7 +19,7 @@ | File | Lines | Status | |------|-------|--------| -| `journal-1.md` | ~280 | Active | +| `journal-1.md` | ~314 | Active | --- @@ -29,6 +29,7 @@ | # | Date | Title | Commits | Branch | |---|------|-------|---------|--------| +| 7 | 2026-04-28 | 完成 MAX30102 心率血氧模块 | `3b0f8f8`, `51a993f` | `dev` | | 1 | 2026-03-05 | 项目初始化,搭建项目框架 | `86a9534` | `main` | | 2 | 2026-03-06 | 新增 MQ2 烟雾传感器模块 | `c77edde` | `main` | | 3 | 2026-03-06 | 新增 DHT11 温湿度传感器模块 | `7ba2525`, `c7825ba`, `c38070c` | `main` | @@ -43,4 +44,4 @@ - Sessions are appended to journal files - New journal file created when current exceeds 2000 lines -- Use `add_session.py` to record sessions +- Use `add_session.py` to record sessions \ No newline at end of file diff --git a/.trellis/workspace/Maple/journal-1.md b/.trellis/workspace/Maple/journal-1.md index b4897dc..dcc34b4 100644 --- a/.trellis/workspace/Maple/journal-1.md +++ b/.trellis/workspace/Maple/journal-1.md @@ -278,3 +278,37 @@ ### Next Steps - 后续新增模块应沿用当前 CI 约束,保持编码规范与静态分析零告警 + + +## Session 7: 完成 MAX30102 心率血氧模块 + +**Date**: 2026-04-28 +**Task**: 完成 MAX30102 心率血氧模块 +**Branch**: `dev` + +### Summary + +新增 MAX30102 驱动与调度集成,移植并修复心率/血氧解算稳定性问题,更新项目文档和质量规范;用户实机测试确认通过。 + +### Main Changes + +(Add details) + +### Git Commits + +| Hash | Message | +|------|---------| +| `3b0f8f8` | (see git log) | +| `51a993f` | (see git log) | + +### Testing + +- [OK] (Add test results) + +### Status + +[OK] **Completed** + +### Next Steps + +- None - task complete From d566cbfb9ab67cc8cef54b2942a799c272aaabb8 Mon Sep 17 00:00:00 2001 From: Maple <132198239+rsecss@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:20:15 +0800 Subject: [PATCH 4/4] =?UTF-8?q?docs(spec):=20=E6=B2=89=E6=B7=80=20MAX30102?= =?UTF-8?q?=20=E8=B0=83=E8=AF=95=E5=92=8C=E6=8F=90=E4=BA=A4=E8=A7=84?= =?UTF-8?q?=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .trellis/config.yaml | 2 +- .trellis/scripts/common/task_store.py | 2 +- .trellis/spec/backend/quality-guidelines.md | 69 ++++++++++++++++++++- 3 files changed, 70 insertions(+), 3 deletions(-) diff --git a/.trellis/config.yaml b/.trellis/config.yaml index 17c7d59..ee80be5 100644 --- a/.trellis/config.yaml +++ b/.trellis/config.yaml @@ -9,7 +9,7 @@ # Commit message used when auto-committing journal/index changes # after running add_session.py -session_commit_message: "chore: record journal" +session_commit_message: "chore: 记录会话日志" # Maximum lines per journal file before rotating to a new one max_journal_lines: 2000 diff --git a/.trellis/scripts/common/task_store.py b/.trellis/scripts/common/task_store.py index 94ac7e5..788c0dd 100644 --- a/.trellis/scripts/common/task_store.py +++ b/.trellis/scripts/common/task_store.py @@ -328,7 +328,7 @@ def _auto_commit_archive(task_name: str, repo_root: Path) -> None: print("[OK] No task changes to commit.", file=sys.stderr) return - commit_msg = f"chore(task): archive {task_name}" + commit_msg = f"chore(task): 归档 {task_name}" rc, _, err = run_git(["commit", "-m", commit_msg], cwd=repo_root) if rc == 0: print(f"[OK] Auto-committed: {commit_msg}", file=sys.stderr) diff --git a/.trellis/spec/backend/quality-guidelines.md b/.trellis/spec/backend/quality-guidelines.md index 81f5079..3125c01 100644 --- a/.trellis/spec/backend/quality-guidelines.md +++ b/.trellis/spec/backend/quality-guidelines.md @@ -137,6 +137,14 @@ void scheduler_run(void) { ... } - `refactor(scheduler): 支持动态添加任务` - `docs: 同步 README 外设配置说明` +**自动提交也必须中文**:Trellis 脚本产生的提交说明同样遵循本格式。 +- `session_commit_message` 必须配置为中文,例如 `chore: 记录会话日志` +- 归档任务提交必须使用中文动词,例如 `chore(task): 归档 04-20-max30102` + +**错误示例**: +- `chore: record journal` +- `chore(task): archive 04-20-max30102` + ### 6. 代码风格 - **缩进**:4 空格,禁用 Tab @@ -164,7 +172,62 @@ void scheduler_run(void) { ... } - 修改 HAL 调用 → 是否影响中断优先级 - 修改全局变量 → 消费者模块是否同步更新 -### 4. 未来扩展(不强制) +### 4. 生理传感器算法验证(MAX30102 类) + +**适用范围**:光电心率、血氧、姿态融合等需要从连续窗口解算生理值的模块。 + +**接口合同**: +- `*_task()` 可在启动期、无手指、FIFO 暂无样本时直接返回,但不得输出伪有效值。 +- 结果全局变量无效时为 `0`,对应 `*_valid` 必须同步为 `0`。 +- HR 单位固定为 bpm,SpO2 单位固定为 `%`,SpO2 有效上限允许为 `100`。 +- 窗口算法必须区分 `raw DC`、去均值 `AC`、有效标志、保持/过期策略。 + +**验证矩阵**: + +| 场景 | 必须行为 | +|------|----------| +| 启动缓冲未填满 | 用实际已填样本数做手指判断,不得拿未初始化窗口参与均值 | +| 无手指或 IR DC 过低 | `heart_rate=0`、`spo2=0`、`hr_valid=0`、`spo2_valid=0` | +| 手指刚放上 | 允许短时间无有效值,不能长期卡在无数据 | +| 静止贴合 10 秒 | HR 应进入合理范围并避免相邻窗口持续大幅跳变 | +| SpO2 输出 100 | 允许,但必须来自有效 DC/AC ratio 与查表,不得只靠钳位制造成功 | +| 连续解算失败 | 有限窗口内可保持旧值,超过保持次数必须清零 valid | + +**根因复盘**: +- HR 大幅跳变通常来自峰值窗口不稳、峰间距常量与采样率不一致、缺少 beat 间隔均值。 +- 长时间无数据通常来自门限过严或启动期把未填满缓冲区当完整窗口计算。 +- SpO2 成功率异常通常来自 AC/DC 混用、DC 饱和/过低未过滤、失败窗口立即清零导致抖动。 +- `100%` 本身不是错误;错误是没有通过质量门限却被 clamp 成 `100`。 + +**正确模式**: + +```c +uint16_t mean_count = samples_filled < WINDOW ? samples_filled : WINDOW; +uint32_t ir_mean = recent_ir_mean(mean_count); +if (ir_mean < FINGER_THRESHOLD) { + clear_result(); + return; +} + +expire_stale_heart_rate(); +compute_spo2(&sp, &sp_ok); +``` + +**错误模式**: + +```c +uint32_t ir_mean = full_window_mean(WINDOW); /* 启动期包含无效样本 */ +if (!sp_ok) clear_result(); /* 单次失败立刻清零导致闪断 */ +spo2 = clamp(sp, 0, 100); /* clamp 不能代表检测成功 */ +``` + +**测试点**: +- 串口记录至少覆盖:无手指、刚贴合、稳定贴合 10 秒、移开手指。 +- 稳定贴合时检查 `(hr_ok, spo2_ok)` 不应长期为 `(0, 0)`。 +- 移开手指后检查 valid 标志和数值同步清零。 +- cppcheck 必须无 `unused variable`,例如临时算法数组未使用时必须删除。 + +### 5. 未来扩展(不强制) - 可考虑 Ceedling / Unity 做纯算法逻辑(NMEA 解析、环形缓冲区)的 PC 侧单元测试 - 仅限与硬件解耦的纯 C 函数 @@ -211,9 +274,13 @@ PR 作者与审阅者按以下清单逐项确认: - [ ] 生理算法区分 raw DC、去均值 AC、插值 baseline,禁止用 AC 峰替代 DC 项 - [ ] 峰/谷索引必须做边界检查,去重逻辑不得丢弃窗口起始处的合法峰 - [ ] HR/SpO2 有效范围、采样率和峰间距常量必须一致 +- [ ] 启动期用实际样本数判断接触状态,禁止未填满窗口参与均值 +- [ ] 连续失败、旧值保持、过期清零策略明确,`value` 与 `valid` 同步 +- [ ] SpO2 `100%` 允许,但必须来自有效 ratio/查表路径,不得仅由钳位产生 ### 提交与文档 - [ ] 提交消息遵循 Conventional Commits 中文格式 +- [ ] Trellis 自动提交消息也已配置为中文 - [ ] `README.md` 在外设/模块变动时同步更新 - [ ] `CLAUDE.md` 在架构/约定变动时同步更新 - [ ] `dev_log.md` 本地记录变更(不入库)