From e6c3a918c76ae9bb8d8b1c503eded1bfe88a321f Mon Sep 17 00:00:00 2001 From: liaozhaorun <1300336796@qq.com> Date: Tue, 10 Mar 2026 22:23:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(training):=20=E6=B7=BB=E5=8A=A0=20LightGBM?= =?UTF-8?q?=20LambdaRank=20=E6=8E=92=E5=BA=8F=E5=AD=A6=E4=B9=A0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=E6=96=B0=E5=A2=9E=E5=9F=BA=E4=BA=8E=20LambdaRank?= =?UTF-8?q?=20=E7=9A=84=E6=8E=92=E5=BA=8F=E5=AD=A6=E4=B9=A0=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E7=94=A8=E4=BA=8E=E8=82=A1=E7=A5=A8=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E9=A2=84=E6=B5=8B=E4=BB=BB=E5=8A=A1=EF=BC=9A=20-=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=20LightGBMLambdaRankModel=20=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E7=B1=BB=EF=BC=8C=E6=94=AF=E6=8C=81=E5=88=86=E4=BD=8D?= =?UTF-8?q?=E6=95=B0=E6=A0=87=E7=AD=BE=E8=BD=AC=E6=8D=A2=20-=20=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E5=AE=8C=E6=95=B4=E7=9A=84=E8=AE=AD=E7=BB=83=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=92=8C=20NDCG=20=E8=AF=84=E4=BC=B0=E6=8C=87?= =?UTF-8?q?=E6=A0=87=20-=20=E6=B7=BB=E5=8A=A0=E5=AE=9E=E9=AA=8C=20Notebook?= =?UTF-8?q?=20=E6=BC=94=E7=A4=BA=E6=8E=92=E5=BA=8F=E5=AD=A6=E4=B9=A0?= =?UTF-8?q?=E5=85=A8=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 2 + src/experiment/learn_to_rank.ipynb | 1607 +++++++++++++++++ src/experiment/regression.ipynb | 581 +++--- src/training/components/models/__init__.py | 3 +- .../components/models/lightgbm_lambdarank.py | 406 +++++ .../components/processors/transforms.py | 133 +- 6 files changed, 2366 insertions(+), 366 deletions(-) create mode 100644 src/experiment/learn_to_rank.ipynb create mode 100644 src/training/components/models/lightgbm_lambdarank.py diff --git a/AGENTS.md b/AGENTS.md index 788bdd6..e677a3f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,6 +15,8 @@ A股量化投资框架 - Python 项目,用于量化股票投资分析。 **⚠️ 重要:本项目强制使用 uv 作为 Python 包管理器和运行工具。禁止直接使用 `python` 或 `pip` 命令。** +**测试规则:** 当修改或查看 `tests/` 目录下的代码时,必须使用 pytest 命令进行测试验证。 + ```bash # 安装依赖(必须使用 uv) uv pip install -e . diff --git a/src/experiment/learn_to_rank.ipynb b/src/experiment/learn_to_rank.ipynb new file mode 100644 index 0000000..907b2cb --- /dev/null +++ b/src/experiment/learn_to_rank.ipynb @@ -0,0 +1,1607 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Learn-to-Rank 排序学习训练流程\n", + "\n", + "本 Notebook 实现基于 LightGBM LambdaRank 的排序学习训练,用于股票排序任务。\n", + "\n", + "## 核心特点\n", + "\n", + "1. **Label 转换**: 将 `future_return_5` 按每日进行 20 分位数划分(qcut)\n", + "2. **排序学习**: 使用 LambdaRank 目标函数,学习每日股票排序\n", + "3. **NDCG 评估**: 使用 NDCG@1/5/10/20 评估排序质量\n", + "4. **策略回测**: 基于排序分数构建 Top-k 选股策略" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. 导入依赖" + ] + }, + { + "cell_type": "code", + "metadata": { + "jupyter": { + "is_executing": true + }, + "ExecuteTime": { + "start_time": "2026-03-09T16:47:47.027059Z" + } + }, + "source": [ + "import os\n", + "from datetime import datetime\n", + "from typing import List, Tuple, Optional\n", + "\n", + "import numpy as np\n", + "import polars as pl\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.metrics import ndcg_score\n", + "\n", + "from src.factors import FactorEngine\n", + "from src.training import (\n", + " DateSplitter,\n", + " STFilter,\n", + " StockPoolManager,\n", + " Trainer,\n", + " Winsorizer,\n", + " NullFiller,\n", + " StandardScaler,\n", + ")\n", + "from src.training.components.models import LightGBMLambdaRankModel\n", + "from src.training.config import TrainingConfig" + ], + "outputs": [], + "execution_count": null + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. 辅助函数" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:20.005621Z", + "start_time": "2026-03-09T16:28:19.995941Z" + } + }, + "source": [ + "def create_factors_with_strings(engine: FactorEngine, factor_definitions: dict, label_factor: dict) -> List[str]:\n", + " \"\"\"使用字符串表达式注册因子\"\"\"\n", + " print(\"=\" * 80)\n", + " print(\"使用字符串表达式定义因子\")\n", + " print(\"=\" * 80)\n", + "\n", + " # 注册所有特征因子\n", + " print(\"\\n注册特征因子:\")\n", + " for name, expr in factor_definitions.items():\n", + " engine.add_factor(name, expr)\n", + " print(f\" - {name}: {expr}\")\n", + "\n", + " # 注册 label 因子\n", + " print(\"\\n注册 Label 因子:\")\n", + " for name, expr in label_factor.items():\n", + " engine.add_factor(name, expr)\n", + " print(f\" - {name}: {expr}\")\n", + "\n", + " # 从字典自动获取特征列\n", + " feature_cols = list(factor_definitions.keys())\n", + "\n", + " print(f\"\\n特征因子数: {len(feature_cols)}\")\n", + " print(f\"Label: {list(label_factor.keys())[0]}\")\n", + " print(f\"已注册因子总数: {len(engine.list_registered())}\")\n", + "\n", + " return feature_cols\n", + "\n", + "\n", + "def prepare_data(\n", + " engine: FactorEngine,\n", + " feature_cols: List[str],\n", + " start_date: str,\n", + " end_date: str,\n", + ") -> pl.DataFrame:\n", + " \"\"\"准备数据\"\"\"\n", + " print(\"\\n\" + \"=\" * 80)\n", + " print(\"准备数据\")\n", + " print(\"=\" * 80)\n", + "\n", + " # 计算因子(全市场数据)\n", + " print(f\"\\n计算因子: {start_date} - {end_date}\")\n", + " factor_names = feature_cols + [LABEL_NAME] # 包含 label\n", + "\n", + " data = engine.compute(\n", + " factor_names=factor_names,\n", + " start_date=start_date,\n", + " end_date=end_date,\n", + " )\n", + "\n", + " print(f\"数据形状: {data.shape}\")\n", + " print(f\"数据列: {data.columns}\")\n", + " print(f\"\\n前5行预览:\")\n", + " print(data.head())\n", + "\n", + " return data\n", + "\n", + "\n", + "def prepare_ranking_data(\n", + " df: pl.DataFrame,\n", + " label_col: str = \"future_return_5\",\n", + " date_col: str = \"trade_date\",\n", + " n_quantiles: int = 20,\n", + ") -> Tuple[pl.DataFrame, str]:\n", + " \"\"\"准备排序学习数据\n", + " \n", + " 将连续 label 转换为分位数标签,用于排序学习任务。\n", + " \n", + " Args:\n", + " df: 原始数据\n", + " label_col: 原始标签列名\n", + " date_col: 日期列名\n", + " n_quantiles: 分位数数量\n", + " \n", + " Returns:\n", + " (处理后的 DataFrame, 新的标签列名)\n", + " \"\"\"\n", + " print(\"\\n\" + \"=\" * 80)\n", + " print(f\"准备排序学习数据(将 {label_col} 转换为 {n_quantiles} 分位数标签)\")\n", + " print(\"=\" * 80)\n", + " \n", + " # 新的标签列名\n", + " rank_col = f\"{label_col}_rank\"\n", + " \n", + " # 按日期分组进行分位数划分\n", + " # 使用 rank 生成 0, 1, 2, ..., n_quantiles-1 的标签\n", + " # 方法: 计算每天内的排名,然后映射到 n_quantiles 个分位数组\n", + " df_ranked = df.with_columns(\n", + " # 计算每天内的排名 (1-based)\n", + " pl.col(label_col).rank(method=\"min\").over(date_col).alias(\"_rank\")\n", + " ).with_columns(\n", + " # 将排名转换为分位数标签 (0 to n_quantiles-1)\n", + " ((pl.col(\"_rank\") - 1) / pl.len().over(date_col) * n_quantiles)\n", + " .floor()\n", + " .cast(pl.Int64)\n", + " .clip(0, n_quantiles - 1)\n", + " .alias(rank_col)\n", + " ).drop(\"_rank\")\n", + " \n", + " # 检查转换结果\n", + " print(f\"\\n原始 {label_col} 统计:\")\n", + " print(df_ranked[label_col].describe())\n", + " \n", + " print(f\"\\n转换后 {rank_col} 统计:\")\n", + " print(df_ranked[rank_col].describe())\n", + " \n", + " # 检查每日样本分布\n", + " print(f\"\\n每日样本数统计:\")\n", + " daily_counts = df_ranked.group_by(date_col).agg(pl.count().alias(\"count\"))\n", + " print(daily_counts[\"count\"].describe())\n", + " \n", + " # 检查分位数分布(应该是均匀的)\n", + " print(f\"\\n分位数标签分布:\")\n", + " rank_dist = df_ranked[rank_col].value_counts().sort(rank_col)\n", + " print(rank_dist)\n", + " \n", + " return df_ranked, rank_col\n", + "\n", + "\n", + "def compute_group_array(df: pl.DataFrame, date_col: str = \"trade_date\") -> np.ndarray:\n", + " \"\"\"计算 group 数组用于 LambdaRank\n", + " \n", + " 每个日期作为一个 query,group 数组表示每个 query 的样本数。\n", + " \n", + " Args:\n", + " df: 数据框\n", + " date_col: 日期列名\n", + " \n", + " Returns:\n", + " group 数组\n", + " \"\"\"\n", + " group_counts = df.group_by(date_col, maintain_order=True).agg(\n", + " pl.count().alias(\"count\")\n", + " )\n", + " return group_counts[\"count\"].to_numpy()\n", + "\n", + "\n", + "def evaluate_ndcg_at_k(\n", + " y_true: np.ndarray,\n", + " y_pred: np.ndarray,\n", + " group: np.ndarray,\n", + " k_list: List[int] = [1, 5, 10, 20],\n", + ") -> dict:\n", + " \"\"\"计算 NDCG@k 指标\n", + " \n", + " Args:\n", + " y_true: 真实标签\n", + " y_pred: 预测分数\n", + " group: 分组数组\n", + " k_list: 要计算的 k 值列表\n", + " \n", + " Returns:\n", + " NDCG 指标字典\n", + " \"\"\"\n", + " results = {}\n", + " \n", + " # 按 group 拆分数据\n", + " start_idx = 0\n", + " y_true_groups = []\n", + " y_pred_groups = []\n", + " \n", + " for group_size in group:\n", + " end_idx = start_idx + group_size\n", + " y_true_groups.append(y_true[start_idx:end_idx])\n", + " y_pred_groups.append(y_pred[start_idx:end_idx])\n", + " start_idx = end_idx\n", + " \n", + " # 计算每个 k 值的平均 NDCG\n", + " for k in k_list:\n", + " ndcg_scores = []\n", + " for yt, yp in zip(y_true_groups, y_pred_groups):\n", + " if len(yt) > 1:\n", + " try:\n", + " score = ndcg_score([yt], [yp], k=k)\n", + " ndcg_scores.append(score)\n", + " except ValueError:\n", + " # 标签都相同,无法计算\n", + " pass\n", + " \n", + " results[f\"ndcg@{k}\"] = np.mean(ndcg_scores) if ndcg_scores else 0.0\n", + " \n", + " return results\n", + "\n", + "\n", + "def analyze_top_k_strategy(\n", + " df: pl.DataFrame,\n", + " prediction_col: str = \"prediction\",\n", + " return_col: str = \"future_return_5\",\n", + " date_col: str = \"trade_date\",\n", + " k_list: List[int] = [5, 10, 20],\n", + ") -> dict:\n", + " \"\"\"分析 Top-k 选股策略表现\n", + " \n", + " Args:\n", + " df: 包含预测分数和真实收益的 DataFrame\n", + " prediction_col: 预测分数列名\n", + " return_col: 真实收益列名\n", + " date_col: 日期列名\n", + " k_list: 要分析的 k 值列表\n", + " \n", + " Returns:\n", + " 策略分析结果字典\n", + " \"\"\"\n", + " results = {}\n", + " \n", + " for k in k_list:\n", + " # 每日选择 Top-k 股票\n", + " daily_top_k = (\n", + " df.sort([date_col, prediction_col], descending=[False, True])\n", + " .group_by(date_col)\n", + " .head(k)\n", + " )\n", + " \n", + " # 计算每日平均收益\n", + " daily_returns = daily_top_k.group_by(date_col).agg(\n", + " pl.col(return_col).mean().alias(f\"top{k}_return\")\n", + " ).sort(date_col)\n", + " \n", + " # 计算累计收益\n", + " returns_array = daily_returns[f\"top{k}_return\"].to_numpy()\n", + " cumulative_returns = np.cumprod(1 + returns_array) - 1\n", + " \n", + " # 统计指标\n", + " results[f\"top{k}\"] = {\n", + " \"mean_daily_return\": np.mean(returns_array),\n", + " \"std_daily_return\": np.std(returns_array),\n", + " \"sharpe_ratio\": np.mean(returns_array) / (np.std(returns_array) + 1e-8) * np.sqrt(252),\n", + " \"total_return\": cumulative_returns[-1] if len(cumulative_returns) > 0 else 0,\n", + " \"cumulative_returns\": cumulative_returns,\n", + " \"dates\": daily_returns[date_col].to_list(),\n", + " }\n", + " \n", + " return results\n", + "\n", + "\n", + "def plot_strategy_performance(strategy_results: dict, save_path: Optional[str] = None):\n", + " \"\"\"绘制策略表现图\"\"\"\n", + " fig, axes = plt.subplots(2, 2, figsize=(14, 10))\n", + " \n", + " # 累计收益曲线\n", + " ax = axes[0, 0]\n", + " for name, result in strategy_results.items():\n", + " ax.plot(result[\"dates\"], result[\"cumulative_returns\"], label=name, linewidth=2)\n", + " ax.set_xlabel(\"Date\")\n", + " ax.set_ylabel(\"Cumulative Return\")\n", + " ax.set_title(\"Top-k Strategy Cumulative Returns\")\n", + " ax.legend()\n", + " ax.grid(True, alpha=0.3)\n", + " \n", + " # 日均收益对比\n", + " ax = axes[0, 1]\n", + " names = list(strategy_results.keys())\n", + " mean_returns = [strategy_results[n][\"mean_daily_return\"] for n in names]\n", + " ax.bar(names, mean_returns)\n", + " ax.set_ylabel(\"Mean Daily Return\")\n", + " ax.set_title(\"Mean Daily Return Comparison\")\n", + " ax.grid(True, alpha=0.3, axis=\"y\")\n", + " \n", + " # 夏普比率对比\n", + " ax = axes[1, 0]\n", + " sharpe_ratios = [strategy_results[n][\"sharpe_ratio\"] for n in names]\n", + " ax.bar(names, sharpe_ratios)\n", + " ax.set_ylabel(\"Sharpe Ratio\")\n", + " ax.set_title(\"Sharpe Ratio Comparison\")\n", + " ax.grid(True, alpha=0.3, axis=\"y\")\n", + " \n", + " # 总收益对比\n", + " ax = axes[1, 1]\n", + " total_returns = [strategy_results[n][\"total_return\"] for n in names]\n", + " ax.bar(names, total_returns)\n", + " ax.set_ylabel(\"Total Return\")\n", + " ax.set_title(\"Total Return Comparison\")\n", + " ax.grid(True, alpha=0.3, axis=\"y\")\n", + " \n", + " plt.tight_layout()\n", + " \n", + " if save_path:\n", + " plt.savefig(save_path, dpi=300, bbox_inches=\"tight\")\n", + " \n", + " plt.show()" + ], + "outputs": [], + "execution_count": 2 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. 配置参数\n", + "\n", + "### 3.1 因子定义" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:20.017203Z", + "start_time": "2026-03-09T16:28:20.009432Z" + } + }, + "source": [ + "# 特征因子定义字典(复用 regression.ipynb 的因子定义)\n", + "LABEL_NAME = \"future_return_5_rank\"\n", + "\n", + "FACTOR_DEFINITIONS = {\n", + " # ================= 1. 价格、趋势与路径依赖 (Trend, Momentum & Path Dependency) =================\n", + " \"ma_5\": \"ts_mean(close, 5)\",\n", + " \"ma_20\": \"ts_mean(close, 20)\",\n", + " \"ma_ratio_5_20\": \"ts_mean(close, 5) / (ts_mean(close, 20) + 1e-8) - 1\",\n", + " \"bias_10\": \"close / (ts_mean(close, 10) + 1e-8) - 1\",\n", + " \"high_low_ratio\": \"(close - ts_min(low, 20)) / (ts_max(high, 20) - ts_min(low, 20) + 1e-8)\",\n", + " \"bbi_ratio\": \"(ts_mean(close, 3) + ts_mean(close, 6) + ts_mean(close, 12) + ts_mean(close, 24)) / (4 * close + 1e-8)\",\n", + " \"return_5\": \"(close / (ts_delay(close, 5) + 1e-8)) - 1\",\n", + " \"return_20\": \"(close / (ts_delay(close, 20) + 1e-8)) - 1\",\n", + " \"kaufman_ER_20\": \"abs(close - ts_delay(close, 20)) / (ts_sum(abs(close - ts_delay(close, 1)), 20) + 1e-8)\",\n", + " \"mom_acceleration_10_20\": \"(close / (ts_delay(close, 10) + 1e-8) - 1) - (ts_delay(close, 10) / (ts_delay(close, 20) + 1e-8) - 1)\",\n", + " \"drawdown_from_high_60\": \"close / (ts_max(high, 60) + 1e-8) - 1\",\n", + " \"up_days_ratio_20\": \"ts_sum(close > ts_delay(close, 1), 20) / 20\",\n", + "\n", + " # ================= 2. 波动率、风险调整与高阶矩 =================\n", + " \"volatility_5\": \"ts_std(close, 5)\",\n", + " \"volatility_20\": \"ts_std(close, 20)\",\n", + " \"volatility_ratio\": \"ts_std(close, 5) / (ts_std(close, 20) + 1e-8)\",\n", + " \"std_return_20\": \"ts_std((close / (ts_delay(close, 1) + 1e-8)) - 1, 20)\",\n", + " \"sharpe_ratio_20\": \"ts_mean(close / (ts_delay(close, 1) + 1e-8) - 1, 20) / (ts_std(close / (ts_delay(close, 1) + 1e-8) - 1, 20) + 1e-8)\",\n", + " \"min_ret_20\": \"ts_min(close / (ts_delay(close, 1) + 1e-8) - 1, 20)\",\n", + " \"volatility_squeeze_5_60\": \"ts_std(close, 5) / (ts_std(close, 60) + 1e-8)\",\n", + "\n", + " # ================= 3. 日内微观结构与异象 =================\n", + " \"overnight_intraday_diff\": \"(open / (ts_delay(close, 1) + 1e-8) - 1) - (close / (open + 1e-8) - 1)\",\n", + " \"upper_shadow_ratio\": \"(high - ((open + close + abs(open - close)) / 2)) / (high - low + 1e-8)\",\n", + " \"capital_retention_20\": \"ts_sum(abs(close - open), 20) / (ts_sum(high - low, 20) + 1e-8)\",\n", + " \"max_ret_20\": \"ts_max(close / (ts_delay(close, 1) + 1e-8) - 1, 20)\",\n", + "\n", + " # ================= 4. 量能、流动性与量价背离 =================\n", + " \"volume_ratio_5_20\": \"ts_mean(vol, 5) / (ts_mean(vol, 20) + 1e-8)\",\n", + " \"turnover_rate_mean_5\": \"ts_mean(turnover_rate, 5)\",\n", + " \"turnover_deviation\": \"(turnover_rate - ts_mean(turnover_rate, 10)) / (ts_std(turnover_rate, 10) + 1e-8)\",\n", + " \"amihud_illiq_20\": \"ts_mean(abs(close / (ts_delay(close, 1) + 1e-8) - 1) / (amount + 1e-8), 20)\",\n", + " \"turnover_cv_20\": \"ts_std(turnover_rate, 20) / (ts_mean(turnover_rate, 20) + 1e-8)\",\n", + " \"pv_corr_20\": \"ts_corr(close / (ts_delay(close, 1) + 1e-8) - 1, vol, 20)\",\n", + " \"close_vwap_deviation\": \"close / (amount / (vol * 100 + 1e-8) + 1e-8) - 1\",\n", + "\n", + " # ================= 5. 基本面财务特征 =================\n", + " \"roe\": \"n_income / (total_hldr_eqy_exc_min_int + 1e-8)\",\n", + " \"roa\": \"n_income / (total_assets + 1e-8)\",\n", + " \"profit_margin\": \"n_income / (revenue + 1e-8)\",\n", + " \"debt_to_equity\": \"total_liab / (total_hldr_eqy_exc_min_int + 1e-8)\",\n", + " \"current_ratio\": \"total_cur_assets / (total_cur_liab + 1e-8)\",\n", + " \"net_profit_yoy\": \"(n_income / (ts_delay(n_income, 252) + 1e-8)) - 1\",\n", + " \"revenue_yoy\": \"(revenue / (ts_delay(revenue, 252) + 1e-8)) - 1\",\n", + " \"healthy_expansion_velocity\": \"(total_assets / (ts_delay(total_assets, 252) + 1e-8) - 1) - (total_liab / (ts_delay(total_liab, 252) + 1e-8) - 1)\",\n", + "\n", + " # ================= 6. 基本面估值与截面动量共振 =================\n", + " \"EP\": \"n_income / (total_mv * 10000 + 1e-8)\",\n", + " \"BP\": \"total_hldr_eqy_exc_min_int / (total_mv * 10000 + 1e-8)\",\n", + " \"CP\": \"n_cashflow_act / (total_mv * 10000 + 1e-8)\",\n", + " \"market_cap_rank\": \"cs_rank(total_mv)\",\n", + " \"turnover_rank\": \"cs_rank(turnover_rate)\",\n", + " \"return_5_rank\": \"cs_rank((close / (ts_delay(close, 5) + 1e-8)) - 1)\",\n", + " \"EP_rank\": \"cs_rank(n_income / (total_mv + 1e-8))\",\n", + " \"pe_expansion_trend\": \"(total_mv / (n_income + 1e-8)) / (ts_delay(total_mv, 60) / (ts_delay(n_income, 60) + 1e-8) + 1e-8) - 1\",\n", + " \"value_price_divergence\": \"cs_rank((n_income - ts_delay(n_income, 252)) / (abs(ts_delay(n_income, 252)) + 1e-8)) - cs_rank(close / (ts_delay(close, 20) + 1e-8))\",\n", + " \"active_market_cap\": \"total_mv * ts_mean(turnover_rate, 20)\",\n", + " \"ebit_rank\": \"cs_rank(ebit)\",\n", + "}\n", + "\n", + "# Label 因子定义(不参与训练,用于计算目标)\n", + "LABEL_FACTOR = {\n", + " LABEL_NAME: \"(ts_delay(close, -5) / ts_delay(open, -1)) - 1\",\n", + "}" + ], + "outputs": [], + "execution_count": 3 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3.2 训练参数配置" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:20.025233Z", + "start_time": "2026-03-09T16:28:20.020941Z" + } + }, + "source": [ + "# 日期范围配置(正确的 train/val/test 三分法)\n", + "TRAIN_START = \"20200101\"\n", + "TRAIN_END = \"20231231\"\n", + "VAL_START = \"20240101\"\n", + "VAL_END = \"20241231\"\n", + "TEST_START = \"20250101\"\n", + "TEST_END = \"20261231\"\n", + "\n", + "# LambdaRank 模型参数配置\n", + "MODEL_PARAMS = {\n", + " \"objective\": \"lambdarank\",\n", + " \"metric\": \"ndcg\",\n", + " \"ndcg_at\": [1, 5, 10, 20], # 评估 NDCG@k\n", + " \"learning_rate\": 0.05,\n", + " \"num_leaves\": 31,\n", + " \"max_depth\": 6,\n", + " \"min_data_in_leaf\": 20,\n", + " \"n_estimators\": 1000,\n", + " \"early_stopping_rounds\": 50,\n", + " \"subsample\": 0.8,\n", + " \"colsample_bytree\": 0.8,\n", + " \"reg_alpha\": 0.1,\n", + " \"reg_lambda\": 1.0,\n", + " \"verbose\": -1,\n", + " \"random_state\": 42,\n", + "}\n", + "\n", + "# 分位数配置\n", + "N_QUANTILES = 20 # 将 label 分为 20 组\n", + "\n", + "# 特征列(用于数据处理器)\n", + "FEATURE_COLS = list(FACTOR_DEFINITIONS.keys())\n", + "\n", + "# 数据处理器配置\n", + "PROCESSORS = [\n", + " NullFiller(feature_cols=FEATURE_COLS, strategy=\"mean\"),\n", + " Winsorizer(feature_cols=FEATURE_COLS, lower=0.01, upper=0.99),\n", + " StandardScaler(feature_cols=FEATURE_COLS),\n", + "]\n", + "\n", + "# 股票池筛选函数\n", + "def stock_pool_filter(df: pl.DataFrame) -> pl.Series:\n", + " \"\"\"股票池筛选函数(单日数据)\n", + " \n", + " 筛选条件:\n", + " 1. 排除创业板(代码以 300 开头)\n", + " 2. 排除科创板(代码以 688 开头)\n", + " 3. 排除北交所(代码以 8、9 或 4 开头)\n", + " 4. 选取当日市值最小的500只股票\n", + " \"\"\"\n", + " code_filter = (\n", + " ~df[\"ts_code\"].str.starts_with(\"300\") &\n", + " ~df[\"ts_code\"].str.starts_with(\"688\") &\n", + " ~df[\"ts_code\"].str.starts_with(\"8\") &\n", + " ~df[\"ts_code\"].str.starts_with(\"9\") &\n", + " ~df[\"ts_code\"].str.starts_with(\"4\")\n", + " )\n", + " \n", + " valid_df = df.filter(code_filter)\n", + " n = min(1000, len(valid_df))\n", + " small_cap_codes = valid_df.sort(\"total_mv\").head(n)[\"ts_code\"]\n", + " \n", + " return df[\"ts_code\"].is_in(small_cap_codes)\n", + "\n", + "STOCK_FILTER_REQUIRED_COLUMNS = [\"total_mv\"]\n", + "\n", + "# 输出配置\n", + "OUTPUT_DIR = \"output\"\n", + "SAVE_PREDICTIONS = True\n", + "PERSIST_MODEL = False\n", + "\n", + "# Top N 配置:每日推荐股票数量\n", + "TOP_N = 5 # 可调整为 10, 20 等" + ], + "outputs": [], + "execution_count": 4 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. 训练流程" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:43.241056Z", + "start_time": "2026-03-09T16:28:20.030078Z" + } + }, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"LightGBM LambdaRank 排序学习训练\")\n", + "print(\"=\" * 80)\n", + "\n", + "# 1. 创建 FactorEngine\n", + "print(\"\\n[1] 创建 FactorEngine\")\n", + "engine = FactorEngine()\n", + "\n", + "# 2. 使用字符串表达式定义因子\n", + "print(\"\\n[2] 定义因子(字符串表达式)\")\n", + "feature_cols = create_factors_with_strings(engine, FACTOR_DEFINITIONS, LABEL_FACTOR)\n", + "\n", + "# 3. 准备数据\n", + "print(\"\\n[3] 准备数据\")\n", + "data = prepare_data(\n", + " engine=engine,\n", + " feature_cols=feature_cols,\n", + " start_date=TRAIN_START,\n", + " end_date=TEST_END,\n", + ")\n", + "\n", + "# 4. 转换为排序学习格式(分位数标签)\n", + "print(\"\\n[4] 转换为排序学习格式\")\n", + "data, target_col = prepare_ranking_data(\n", + " df=data,\n", + " label_col=LABEL_NAME,\n", + " n_quantiles=N_QUANTILES,\n", + ")\n", + "\n", + "# 5. 打印配置信息\n", + "print(f\"\\n[配置] 训练期: {TRAIN_START} - {TRAIN_END}\")\n", + "print(f\"[配置] 验证期: {VAL_START} - {VAL_END}\")\n", + "print(f\"[配置] 测试期: {TEST_START} - {TEST_END}\")\n", + "print(f\"[配置] 特征数: {len(feature_cols)}\")\n", + "print(f\"[配置] 目标变量: {target_col}({N_QUANTILES}分位数)\")\n", + "\n", + "# 6. 创建排序学习模型\n", + "model = LightGBMLambdaRankModel(params=MODEL_PARAMS)\n", + "\n", + "# 7. 创建数据处理器\n", + "processors = PROCESSORS\n", + "\n", + "# 8. 创建数据划分器\n", + "splitter = DateSplitter(\n", + " train_start=TRAIN_START,\n", + " train_end=TRAIN_END,\n", + " val_start=VAL_START,\n", + " val_end=VAL_END,\n", + " test_start=TEST_START,\n", + " test_end=TEST_END,\n", + ")\n", + "\n", + "# 9. 创建股票池管理器\n", + "pool_manager = StockPoolManager(\n", + " filter_func=stock_pool_filter,\n", + " required_columns=STOCK_FILTER_REQUIRED_COLUMNS,\n", + " data_router=engine.router,\n", + ")\n", + "\n", + "# 10. 创建 ST 过滤器\n", + "st_filter = STFilter(data_router=engine.router)\n", + "\n", + "# 11. 创建训练器\n", + "trainer = Trainer(\n", + " model=model,\n", + " pool_manager=pool_manager,\n", + " processors=processors,\n", + " filters=[st_filter],\n", + " splitter=splitter,\n", + " target_col=target_col,\n", + " feature_cols=feature_cols,\n", + " persist_model=PERSIST_MODEL,\n", + ")" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "================================================================================\n", + "LightGBM LambdaRank 排序学习训练\n", + "================================================================================\n", + "\n", + "[1] 创建 FactorEngine\n", + "\n", + "[2] 定义因子(字符串表达式)\n", + "================================================================================\n", + "使用字符串表达式定义因子\n", + "================================================================================\n", + "\n", + "注册特征因子:\n", + " - ma_5: ts_mean(close, 5)\n", + " - ma_20: ts_mean(close, 20)\n", + " - ma_ratio_5_20: ts_mean(close, 5) / (ts_mean(close, 20) + 1e-8) - 1\n", + " - bias_10: close / (ts_mean(close, 10) + 1e-8) - 1\n", + " - high_low_ratio: (close - ts_min(low, 20)) / (ts_max(high, 20) - ts_min(low, 20) + 1e-8)\n", + " - bbi_ratio: (ts_mean(close, 3) + ts_mean(close, 6) + ts_mean(close, 12) + ts_mean(close, 24)) / (4 * close + 1e-8)\n", + " - return_5: (close / (ts_delay(close, 5) + 1e-8)) - 1\n", + " - return_20: (close / (ts_delay(close, 20) + 1e-8)) - 1\n", + " - kaufman_ER_20: abs(close - ts_delay(close, 20)) / (ts_sum(abs(close - ts_delay(close, 1)), 20) + 1e-8)\n", + " - mom_acceleration_10_20: (close / (ts_delay(close, 10) + 1e-8) - 1) - (ts_delay(close, 10) / (ts_delay(close, 20) + 1e-8) - 1)\n", + " - drawdown_from_high_60: close / (ts_max(high, 60) + 1e-8) - 1\n", + " - up_days_ratio_20: ts_sum(close > ts_delay(close, 1), 20) / 20\n", + " - volatility_5: ts_std(close, 5)\n", + " - volatility_20: ts_std(close, 20)\n", + " - volatility_ratio: ts_std(close, 5) / (ts_std(close, 20) + 1e-8)\n", + " - std_return_20: ts_std((close / (ts_delay(close, 1) + 1e-8)) - 1, 20)\n", + " - sharpe_ratio_20: ts_mean(close / (ts_delay(close, 1) + 1e-8) - 1, 20) / (ts_std(close / (ts_delay(close, 1) + 1e-8) - 1, 20) + 1e-8)\n", + " - min_ret_20: ts_min(close / (ts_delay(close, 1) + 1e-8) - 1, 20)\n", + " - volatility_squeeze_5_60: ts_std(close, 5) / (ts_std(close, 60) + 1e-8)\n", + " - overnight_intraday_diff: (open / (ts_delay(close, 1) + 1e-8) - 1) - (close / (open + 1e-8) - 1)\n", + " - upper_shadow_ratio: (high - ((open + close + abs(open - close)) / 2)) / (high - low + 1e-8)\n", + " - capital_retention_20: ts_sum(abs(close - open), 20) / (ts_sum(high - low, 20) + 1e-8)\n", + " - max_ret_20: ts_max(close / (ts_delay(close, 1) + 1e-8) - 1, 20)\n", + " - volume_ratio_5_20: ts_mean(vol, 5) / (ts_mean(vol, 20) + 1e-8)\n", + " - turnover_rate_mean_5: ts_mean(turnover_rate, 5)\n", + " - turnover_deviation: (turnover_rate - ts_mean(turnover_rate, 10)) / (ts_std(turnover_rate, 10) + 1e-8)\n", + " - amihud_illiq_20: ts_mean(abs(close / (ts_delay(close, 1) + 1e-8) - 1) / (amount + 1e-8), 20)\n", + " - turnover_cv_20: ts_std(turnover_rate, 20) / (ts_mean(turnover_rate, 20) + 1e-8)\n", + " - pv_corr_20: ts_corr(close / (ts_delay(close, 1) + 1e-8) - 1, vol, 20)\n", + " - close_vwap_deviation: close / (amount / (vol * 100 + 1e-8) + 1e-8) - 1\n", + " - roe: n_income / (total_hldr_eqy_exc_min_int + 1e-8)\n", + " - roa: n_income / (total_assets + 1e-8)\n", + " - profit_margin: n_income / (revenue + 1e-8)\n", + " - debt_to_equity: total_liab / (total_hldr_eqy_exc_min_int + 1e-8)\n", + " - current_ratio: total_cur_assets / (total_cur_liab + 1e-8)\n", + " - net_profit_yoy: (n_income / (ts_delay(n_income, 252) + 1e-8)) - 1\n", + " - revenue_yoy: (revenue / (ts_delay(revenue, 252) + 1e-8)) - 1\n", + " - healthy_expansion_velocity: (total_assets / (ts_delay(total_assets, 252) + 1e-8) - 1) - (total_liab / (ts_delay(total_liab, 252) + 1e-8) - 1)\n", + " - EP: n_income / (total_mv * 10000 + 1e-8)\n", + " - BP: total_hldr_eqy_exc_min_int / (total_mv * 10000 + 1e-8)\n", + " - CP: n_cashflow_act / (total_mv * 10000 + 1e-8)\n", + " - market_cap_rank: cs_rank(total_mv)\n", + " - turnover_rank: cs_rank(turnover_rate)\n", + " - return_5_rank: cs_rank((close / (ts_delay(close, 5) + 1e-8)) - 1)\n", + " - EP_rank: cs_rank(n_income / (total_mv + 1e-8))\n", + " - pe_expansion_trend: (total_mv / (n_income + 1e-8)) / (ts_delay(total_mv, 60) / (ts_delay(n_income, 60) + 1e-8) + 1e-8) - 1\n", + " - value_price_divergence: cs_rank((n_income - ts_delay(n_income, 252)) / (abs(ts_delay(n_income, 252)) + 1e-8)) - cs_rank(close / (ts_delay(close, 20) + 1e-8))\n", + " - active_market_cap: total_mv * ts_mean(turnover_rate, 20)\n", + " - ebit_rank: cs_rank(ebit)\n", + "\n", + "注册 Label 因子:\n", + " - future_return_5_rank: (ts_delay(close, -5) / ts_delay(open, -1)) - 1\n", + "\n", + "特征因子数: 49\n", + "Label: future_return_5_rank\n", + "已注册因子总数: 50\n", + "\n", + "[3] 准备数据\n", + "\n", + "================================================================================\n", + "准备数据\n", + "================================================================================\n", + "\n", + "计算因子: 20200101 - 20261231\n", + "[FinancialLoader] 加载 financial_fina_indicator 失败: Binder Error: Referenced column \"f_ann_date\" not found in FROM clause!\n", + "Candidate bindings: \"ann_date\", \"end_date\", \"ocf_to_debt\", \"arturn_days\", \"nca_to_assets\"\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "D:\\PyProject\\ProStock\\src\\data\\financial_loader.py:148: UserWarning: Sortedness of columns cannot be checked when 'by' groups provided\n", + " merged = df_price.join_asof(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "数据形状: (7255513, 70)\n", + "数据列: ['ts_code', 'trade_date', 'low', 'open', 'high', 'turnover_rate', 'vol', 'close', 'amount', 'total_assets', 'total_mv', 'f_ann_date', 'total_liab', 'total_cur_liab', 'total_hldr_eqy_exc_min_int', 'total_cur_assets', 'n_income', 'revenue', 'n_cashflow_act', 'ebit', 'ma_5', 'ma_20', 'ma_ratio_5_20', 'bias_10', 'high_low_ratio', 'bbi_ratio', 'return_5', 'return_20', 'kaufman_ER_20', 'mom_acceleration_10_20', 'drawdown_from_high_60', 'up_days_ratio_20', 'volatility_5', 'volatility_20', 'volatility_ratio', 'std_return_20', 'sharpe_ratio_20', 'min_ret_20', 'volatility_squeeze_5_60', 'overnight_intraday_diff', 'upper_shadow_ratio', 'capital_retention_20', 'max_ret_20', 'volume_ratio_5_20', 'turnover_rate_mean_5', 'turnover_deviation', 'amihud_illiq_20', 'turnover_cv_20', 'pv_corr_20', 'close_vwap_deviation', 'roe', 'roa', 'profit_margin', 'debt_to_equity', 'current_ratio', 'net_profit_yoy', 'revenue_yoy', 'healthy_expansion_velocity', 'EP', 'BP', 'CP', 'market_cap_rank', 'turnover_rank', 'return_5_rank', 'EP_rank', 'pe_expansion_trend', 'value_price_divergence', 'active_market_cap', 'ebit_rank', 'future_return_5_rank']\n", + "\n", + "前5行预览:\n", + "shape: (5, 70)\n", + "┌───────────┬────────────┬─────────┬─────────┬───┬────────────┬────────────┬───────────┬───────────┐\n", + "│ ts_code ┆ trade_date ┆ low ┆ open ┆ … ┆ value_pric ┆ active_mar ┆ ebit_rank ┆ future_re │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ e_divergen ┆ ket_cap ┆ --- ┆ turn_5_ra │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ce ┆ --- ┆ f64 ┆ nk │\n", + "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ f64 │\n", + "╞═══════════╪════════════╪═════════╪═════════╪═══╪════════════╪════════════╪═══════════╪═══════════╡\n", + "│ 000001.SZ ┆ 20200102 ┆ 1806.75 ┆ 1817.67 ┆ … ┆ null ┆ null ┆ null ┆ -0.008857 │\n", + "│ 000001.SZ ┆ 20200103 ┆ 1847.15 ┆ 1849.33 ┆ … ┆ null ┆ null ┆ null ┆ -0.01881 │\n", + "│ 000001.SZ ┆ 20200106 ┆ 1846.05 ┆ 1856.97 ┆ … ┆ null ┆ null ┆ null ┆ -0.008171 │\n", + "│ 000001.SZ ┆ 20200107 ┆ 1850.42 ┆ 1870.07 ┆ … ┆ null ┆ null ┆ null ┆ -0.014117 │\n", + "│ 000001.SZ ┆ 20200108 ┆ 1815.49 ┆ 1855.88 ┆ … ┆ null ┆ null ┆ null ┆ -0.017252 │\n", + "└───────────┴────────────┴─────────┴─────────┴───┴────────────┴────────────┴───────────┴───────────┘\n", + "\n", + "[4] 转换为排序学习格式\n", + "\n", + "================================================================================\n", + "准备排序学习数据(将 future_return_5_rank 转换为 20 分位数标签)\n", + "================================================================================\n", + "\n", + "原始 future_return_5_rank 统计:\n", + "shape: (9, 2)\n", + "┌────────────┬────────────┐\n", + "│ statistic ┆ value │\n", + "│ --- ┆ --- │\n", + "│ str ┆ f64 │\n", + "╞════════════╪════════════╡\n", + "│ count ┆ 7.227054e6 │\n", + "│ null_count ┆ 28459.0 │\n", + "│ mean ┆ 0.003978 │\n", + "│ std ┆ 0.073204 │\n", + "│ min ┆ -0.969459 │\n", + "│ 25% ┆ -0.032998 │\n", + "│ 50% ┆ -0.001278 │\n", + "│ 75% ┆ 0.032666 │\n", + "│ max ┆ 10.361925 │\n", + "└────────────┴────────────┘\n", + "\n", + "转换后 future_return_5_rank_rank 统计:\n", + "shape: (9, 2)\n", + "┌────────────┬────────────┐\n", + "│ statistic ┆ value │\n", + "│ --- ┆ --- │\n", + "│ str ┆ f64 │\n", + "╞════════════╪════════════╡\n", + "│ count ┆ 7.227054e6 │\n", + "│ null_count ┆ 28459.0 │\n", + "│ mean ┆ 9.493551 │\n", + "│ std ┆ 5.765628 │\n", + "│ min ┆ 0.0 │\n", + "│ 25% ┆ 4.0 │\n", + "│ 50% ┆ 9.0 │\n", + "│ 75% ┆ 14.0 │\n", + "│ max ┆ 19.0 │\n", + "└────────────┴────────────┘\n", + "\n", + "每日样本数统计:\n", + "shape: (9, 2)\n", + "┌────────────┬─────────────┐\n", + "│ statistic ┆ value │\n", + "│ --- ┆ --- │\n", + "│ str ┆ f64 │\n", + "╞════════════╪═════════════╡\n", + "│ count ┆ 1494.0 │\n", + "│ null_count ┆ 0.0 │\n", + "│ mean ┆ 4856.434404 │\n", + "│ std ┆ 564.521537 │\n", + "│ min ┆ 2885.0 │\n", + "│ 25% ┆ 4382.0 │\n", + "│ 50% ┆ 5069.0 │\n", + "│ 75% ┆ 5347.0 │\n", + "│ max ┆ 5476.0 │\n", + "└────────────┴─────────────┘\n", + "\n", + "分位数标签分布:\n", + "shape: (21, 2)\n", + "┌───────────────────────────┬────────┐\n", + "│ future_return_5_rank_rank ┆ count │\n", + "│ --- ┆ --- │\n", + "│ i64 ┆ u32 │\n", + "╞═══════════════════════════╪════════╡\n", + "│ null ┆ 28459 │\n", + "│ 0 ┆ 362270 │\n", + "│ 1 ┆ 361546 │\n", + "│ 2 ┆ 361599 │\n", + "│ 3 ┆ 361755 │\n", + "│ … ┆ … │\n", + "│ 15 ┆ 361289 │\n", + "│ 16 ┆ 361218 │\n", + "│ 17 ┆ 361227 │\n", + "│ 18 ┆ 361252 │\n", + "│ 19 ┆ 359483 │\n", + "└───────────────────────────┴────────┘\n", + "\n", + "[配置] 训练期: 20200101 - 20231231\n", + "[配置] 验证期: 20240101 - 20241231\n", + "[配置] 测试期: 20250101 - 20261231\n", + "[配置] 特征数: 49\n", + "[配置] 目标变量: future_return_5_rank_rank(20分位数)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_8380\\3149203115.py:108: DeprecationWarning: `pl.count()` is deprecated. Please use `pl.len()` instead.\n", + "(Deprecated in version 0.20.5)\n", + " daily_counts = df_ranked.group_by(date_col).agg(pl.count().alias(\"count\"))\n" + ] + } + ], + "execution_count": 5 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.1 股票池筛选" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:46.756857Z", + "start_time": "2026-03-09T16:28:43.247911Z" + } + }, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"股票池筛选\")\n", + "print(\"=\" * 80)\n", + "\n", + "if pool_manager:\n", + " print(\"\\n执行每日独立筛选股票池...\")\n", + " filtered_data = pool_manager.filter_and_select_daily(data)\n", + " print(f\" 筛选前数据规模: {data.shape}\")\n", + " print(f\" 筛选后数据规模: {filtered_data.shape}\")\n", + " print(f\" 筛选前股票数: {data['ts_code'].n_unique()}\")\n", + " print(f\" 筛选后股票数: {filtered_data['ts_code'].n_unique()}\")\n", + " print(f\" 删除记录数: {len(data) - len(filtered_data)}\")\n", + "else:\n", + " filtered_data = data\n", + " print(\" 未配置股票池管理器,跳过筛选\")" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "================================================================================\n", + "股票池筛选\n", + "================================================================================\n", + "\n", + "执行每日独立筛选股票池...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_8380\\653304.py:63: DeprecationWarning: `is_in` with a collection of the same datatype is ambiguous and deprecated.\n", + "Please use `implode` to return to previous behavior.\n", + "\n", + "See https://github.com/pola-rs/polars/issues/22149 for more information.\n", + " return df[\"ts_code\"].is_in(small_cap_codes)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 筛选前数据规模: (7255513, 71)\n", + " 筛选后数据规模: (1494000, 71)\n", + " 筛选前股票数: 5694\n", + " 筛选后股票数: 2252\n", + " 删除记录数: 5761513\n" + ] + } + ], + "execution_count": 6 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.2 数据划分" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:46.849944Z", + "start_time": "2026-03-09T16:28:46.764139Z" + } + }, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"数据划分\")\n", + "print(\"=\" * 80)\n", + "\n", + "if splitter:\n", + " train_data, val_data, test_data = splitter.split(filtered_data)\n", + " print(f\"\\n训练集数据规模: {train_data.shape}\")\n", + " print(f\"验证集数据规模: {val_data.shape}\")\n", + " print(f\"测试集数据规模: {test_data.shape}\")\n", + " \n", + " # 计算各集的 group 数组\n", + " train_group = compute_group_array(train_data)\n", + " val_group = compute_group_array(val_data)\n", + " test_group = compute_group_array(test_data)\n", + " \n", + " print(f\"\\n训练集 group 数量: {len(train_group)}\")\n", + " print(f\"验证集 group 数量: {len(val_group)}\")\n", + " print(f\"测试集 group 数量: {len(test_group)}\")\n", + " print(f\"训练集日均样本数: {np.mean(train_group):.1f}\")\n", + " print(f\"验证集日均样本数: {np.mean(val_group):.1f}\")\n", + " print(f\"测试集日均样本数: {np.mean(test_group):.1f}\")\n", + "else:\n", + " raise ValueError(\"必须配置数据划分器\")" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "================================================================================\n", + "数据划分\n", + "================================================================================\n", + "\n", + "训练集数据规模: (970000, 71)\n", + "验证集数据规模: (242000, 71)\n", + "测试集数据规模: (282000, 71)\n", + "\n", + "训练集 group 数量: 970\n", + "验证集 group 数量: 242\n", + "测试集 group 数量: 282\n", + "训练集日均样本数: 1000.0\n", + "验证集日均样本数: 1000.0\n", + "测试集日均样本数: 1000.0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_8380\\3149203115.py:132: DeprecationWarning: `pl.count()` is deprecated. Please use `pl.len()` instead.\n", + "(Deprecated in version 0.20.5)\n", + " pl.count().alias(\"count\")\n" + ] + } + ], + "execution_count": 7 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.3 数据预处理" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:47.385207Z", + "start_time": "2026-03-09T16:28:46.854611Z" + } + }, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"数据预处理\")\n", + "print(\"=\" * 80)\n", + "\n", + "fitted_processors = []\n", + "if processors:\n", + " print(\"\\n训练集处理...\")\n", + " for i, processor in enumerate(processors, 1):\n", + " print(f\" [{i}/{len(processors)}] {processor.__class__.__name__}\")\n", + " train_data = processor.fit_transform(train_data)\n", + " fitted_processors.append(processor)\n", + " \n", + " print(\"\\n验证集处理...\")\n", + " for processor in fitted_processors:\n", + " val_data = processor.transform(val_data)\n", + " \n", + " print(\"\\n测试集处理...\")\n", + " for processor in fitted_processors:\n", + " test_data = processor.transform(test_data)\n", + "\n", + "print(f\"\\n处理后训练集形状: {train_data.shape}\")\n", + "print(f\"处理后验证集形状: {val_data.shape}\")\n", + "print(f\"处理后测试集形状: {test_data.shape}\")" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "================================================================================\n", + "数据预处理\n", + "================================================================================\n", + "\n", + "训练集处理...\n", + " [1/3] NullFiller\n", + " [2/3] Winsorizer\n", + " [3/3] StandardScaler\n", + "\n", + "验证集处理...\n", + "\n", + "测试集处理...\n", + "\n", + "处理后训练集形状: (970000, 71)\n", + "处理后验证集形状: (242000, 71)\n", + "处理后测试集形状: (282000, 71)\n" + ] + } + ], + "execution_count": 8 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.4 训练 LambdaRank 模型" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:49.943341Z", + "start_time": "2026-03-09T16:28:47.393354Z" + } + }, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"训练 LambdaRank 模型\")\n", + "print(\"=\" * 80)\n", + "\n", + "# 准备数据\n", + "X_train = train_data.select(feature_cols)\n", + "y_train = train_data.select(target_col).to_series()\n", + "\n", + "X_val = val_data.select(feature_cols)\n", + "y_val = val_data.select(target_col).to_series()\n", + "\n", + "print(f\"\\n训练样本数: {len(X_train)}\")\n", + "print(f\"验证样本数: {len(X_val)}\")\n", + "print(f\"特征数: {len(feature_cols)}\")\n", + "print(f\"目标变量: {target_col}\")\n", + "\n", + "print(\"\\n目标变量统计(训练集):\")\n", + "print(y_train.describe())\n", + "\n", + "print(\"\\n开始训练...\")\n", + "model.fit(\n", + " X=X_train,\n", + " y=y_train,\n", + " group=train_group,\n", + " eval_set=(X_val, y_val, val_group),\n", + ")\n", + "print(\"训练完成!\")" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "================================================================================\n", + "训练 LambdaRank 模型\n", + "================================================================================\n", + "\n", + "训练样本数: 970000\n", + "验证样本数: 242000\n", + "特征数: 49\n", + "目标变量: future_return_5_rank_rank\n", + "\n", + "目标变量统计(训练集):\n", + "shape: (9, 2)\n", + "┌────────────┬──────────┐\n", + "│ statistic ┆ value │\n", + "│ --- ┆ --- │\n", + "│ str ┆ f64 │\n", + "╞════════════╪══════════╡\n", + "│ count ┆ 969536.0 │\n", + "│ null_count ┆ 464.0 │\n", + "│ mean ┆ 9.821 │\n", + "│ std ┆ 5.444634 │\n", + "│ min ┆ 0.0 │\n", + "│ 25% ┆ 5.0 │\n", + "│ 50% ┆ 10.0 │\n", + "│ 75% ┆ 14.0 │\n", + "│ max ┆ 19.0 │\n", + "└────────────┴──────────┘\n", + "\n", + "开始训练...\n", + "Training until validation scores don't improve for 50 rounds\n", + "Early stopping, best iteration is:\n", + "[48]\ttraining's ndcg@1: 0.516707\ttraining's ndcg@5: 0.393291\ttraining's ndcg@10: 0.328332\ttraining's ndcg@20: 0.274341\tvalid_1's ndcg@1: 0.401918\tvalid_1's ndcg@5: 0.342001\tvalid_1's ndcg@10: 0.310652\tvalid_1's ndcg@20: 0.268765\n", + "训练完成!\n" + ] + } + ], + "execution_count": 9 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.5 训练指标曲线" + ] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"训练指标曲线\")\n", + "print(\"=\" * 80)\n", + "\n", + "# 重新训练以收集指标(因为之前的训练没有保存评估结果)\n", + "print(\"\\n重新训练模型以收集训练指标...\")\n", + "\n", + "import lightgbm as lgb\n", + "\n", + "# 准备数据(使用 val 做验证,test 不参与训练过程)\n", + "X_train_np = X_train.to_numpy()\n", + "y_train_np = y_train.to_numpy()\n", + "X_val_np = val_data.select(feature_cols).to_numpy()\n", + "y_val_np = val_data.select(target_col).to_series().to_numpy()\n", + "\n", + "# 创建数据集\n", + "train_dataset = lgb.Dataset(X_train_np, label=y_train_np, group=train_group)\n", + "val_dataset = lgb.Dataset(X_val_np, label=y_val_np, group=val_group, reference=train_dataset)\n", + "\n", + "# 用于存储评估结果\n", + "evals_result = {}\n", + "\n", + "# 使用与原模型相同的参数重新训练\n", + "# 正确的三分法:train用于训练,val用于验证,test不参与训练过程\n", + "booster_with_eval = lgb.train(\n", + " MODEL_PARAMS,\n", + " train_dataset,\n", + " num_boost_round=MODEL_PARAMS.get(\"n_estimators\", 1000),\n", + " valid_sets=[train_dataset, val_dataset],\n", + " valid_names=[\"train\", \"val\"],\n", + " callbacks=[\n", + " lgb.record_evaluation(evals_result),\n", + " lgb.early_stopping(stopping_rounds=50, verbose=True),\n", + " ],\n", + ")\n", + "\n", + "print(\"训练完成,指标已收集\")\n", + "\n", + "# 获取评估的 NDCG 指标\n", + "ndcg_metrics = [k for k in evals_result[\"train\"].keys() if \"ndcg\" in k]\n", + "print(f\"\\n评估的 NDCG 指标: {ndcg_metrics}\")\n", + "\n", + "# 显示早停信息\n", + "actual_rounds = len(list(evals_result[\"train\"].values())[0])\n", + "expected_rounds = MODEL_PARAMS.get(\"n_estimators\", 1000)\n", + "print(f\"\\n[早停信息]\")\n", + "print(f\" 配置的最大轮数: {expected_rounds}\")\n", + "print(f\" 实际训练轮数: {actual_rounds}\")\n", + "if actual_rounds < expected_rounds:\n", + " print(f\" 早停状态: 已触发(连续50轮验证指标未改善)\")\n", + "else:\n", + " print(f\" 早停状态: 未触发(达到最大轮数)\")\n", + "\n", + "# 显示各 NDCG 指标的最终值\n", + "print(f\"\\n最终 NDCG 指标:\")\n", + "for metric in ndcg_metrics:\n", + " train_ndcg = evals_result[\"train\"][metric][-1]\n", + " val_ndcg = evals_result[\"val\"][metric][-1]\n", + " print(f\" {metric}: 训练集={train_ndcg:.4f}, 验证集={val_ndcg:.4f}\")" + ], + "outputs": [], + "execution_count": null + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "# 绘制 NDCG 训练指标曲线\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, axes = plt.subplots(2, 2, figsize=(14, 10))\n", + "axes = axes.flatten()\n", + "\n", + "for idx, metric in enumerate(ndcg_metrics[:4]): # 最多显示4个NDCG指标\n", + " ax = axes[idx]\n", + " train_metric = evals_result[\"train\"][metric]\n", + " val_metric = evals_result[\"val\"][metric]\n", + " iterations = range(1, len(train_metric) + 1)\n", + " \n", + " ax.plot(iterations, train_metric, label=f\"Train {metric}\", linewidth=2, color=\"blue\")\n", + " ax.plot(iterations, val_metric, label=f\"Val {metric}\", linewidth=2, color=\"red\")\n", + " ax.set_xlabel(\"Iteration\", fontsize=10)\n", + " ax.set_ylabel(metric.upper(), fontsize=10)\n", + " ax.set_title(f\"Training and Validation {metric.upper()}\", fontsize=12, fontweight=\"bold\")\n", + " ax.legend(fontsize=9)\n", + " ax.grid(True, alpha=0.3)\n", + " \n", + " # 标记最佳验证指标点\n", + " best_iter = val_metric.index(max(val_metric))\n", + " best_metric = max(val_metric)\n", + " ax.axvline(x=best_iter + 1, color=\"green\", linestyle=\"--\", alpha=0.7)\n", + " ax.scatter([best_iter + 1], [best_metric], color=\"green\", s=80, zorder=5)\n", + " ax.annotate(\n", + " f\"Best: {best_metric:.4f}\",\n", + " xy=(best_iter + 1, best_metric),\n", + " xytext=(best_iter + 1 + len(iterations) * 0.05, best_metric),\n", + " fontsize=8,\n", + " arrowprops=dict(arrowstyle=\"->\", color=\"green\", alpha=0.7),\n", + " )\n", + "\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "print(f\"\\n[指标分析]\")\n", + "print(f\" 各NDCG指标在验证集上的最佳值:\")\n", + "for metric in ndcg_metrics:\n", + " val_metric_list = evals_result[\"val\"][metric]\n", + " best_iter = val_metric_list.index(max(val_metric_list))\n", + " best_val = max(val_metric_list)\n", + " print(f\" {metric}: {best_val:.4f} (迭代 {best_iter + 1})\")\n", + "print(f\"\\n[重要提醒] 验证集仅用于早停/调参,测试集完全独立于训练过程!\")" + ], + "outputs": [], + "execution_count": null + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.6 模型评估" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:50.036021Z", + "start_time": "2026-03-09T16:28:49.947604Z" + } + }, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"模型评估\")\n", + "print(\"=\" * 80)\n", + "\n", + "# 准备测试集\n", + "X_test = test_data.select(feature_cols)\n", + "y_test = test_data.select(target_col).to_series()\n", + "\n", + "# 预测\n", + "print(\"\\n生成预测...\")\n", + "predictions = model.predict(X_test)\n", + "\n", + "# 添加预测列\n", + "test_data = test_data.with_columns([pl.Series(\"prediction\", predictions)])\n", + "\n", + "# 计算 NDCG 指标\n", + "print(\"\\n计算 NDCG 指标...\")\n", + "ndcg_results = evaluate_ndcg_at_k(\n", + " y_true=y_test.to_numpy(),\n", + " y_pred=predictions,\n", + " group=test_group,\n", + " k_list=[1, 5, 10, 20],\n", + ")\n", + "\n", + "print(\"\\nNDCG 评估结果:\")\n", + "print(\"-\" * 40)\n", + "for metric, value in ndcg_results.items():\n", + " print(f\" {metric}: {value:.4f}\")\n", + "\n", + "# 特征重要性\n", + "print(\"\\n特征重要性(Top 20):\")\n", + "print(\"-\" * 40)\n", + "importance = model.feature_importance()\n", + "if importance is not None:\n", + " top_features = importance.sort_values(ascending=False).head(20)\n", + " for i, (feature, score) in enumerate(top_features.items(), 1):\n", + " print(f\" {i:2d}. {feature:30s} {score:10.2f}\")" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "================================================================================\n", + "模型评估\n", + "================================================================================\n", + "\n", + "生成预测...\n", + "\n", + "计算 NDCG 指标...\n", + "\n", + "NDCG 评估结果:\n", + "----------------------------------------\n", + " ndcg@1: 0.0000\n", + " ndcg@5: 0.0000\n", + " ndcg@10: 0.0000\n", + " ndcg@20: 0.0000\n", + "\n", + "特征重要性(Top 20):\n", + "----------------------------------------\n", + " 1. max_ret_20 3634.79\n", + " 2. turnover_rank 2905.90\n", + " 3. drawdown_from_high_60 1816.20\n", + " 4. overnight_intraday_diff 1484.73\n", + " 5. std_return_20 791.58\n", + " 6. volume_ratio_5_20 757.43\n", + " 7. current_ratio 694.13\n", + " 8. revenue_yoy 605.02\n", + " 9. kaufman_ER_20 507.48\n", + " 10. close_vwap_deviation 372.14\n", + " 11. roa 281.62\n", + " 12. active_market_cap 280.69\n", + " 13. sharpe_ratio_20 278.22\n", + " 14. turnover_rate_mean_5 274.94\n", + " 15. healthy_expansion_velocity 266.26\n", + " 16. net_profit_yoy 263.69\n", + " 17. high_low_ratio 252.26\n", + " 18. volatility_squeeze_5_60 245.18\n", + " 19. return_5_rank 243.28\n", + " 20. volatility_20 228.92\n" + ] + } + ], + "execution_count": 10 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.7 Top-k 选股策略分析" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:50.725016Z", + "start_time": "2026-03-09T16:28:50.043768Z" + } + }, + "source": [ + "print(\"\\n\" + \"=\" * 80)\n", + "print(\"Top-k 选股策略分析\")\n", + "print(\"=\" * 80)\n", + "\n", + "# 分析策略表现\n", + "strategy_results = analyze_top_k_strategy(\n", + " df=test_data,\n", + " prediction_col=\"prediction\",\n", + " return_col=LABEL_NAME,\n", + " k_list=[5, 10, 20],\n", + ")\n", + "\n", + "# 打印结果\n", + "print(\"\\n策略表现统计:\")\n", + "print(\"=\" * 60)\n", + "for name, result in strategy_results.items():\n", + " print(f\"\\n{name}:\")\n", + " print(f\" 日均收益: {result['mean_daily_return']:.4f}\")\n", + " print(f\" 日收益标准差: {result['std_daily_return']:.4f}\")\n", + " print(f\" 年化夏普比率: {result['sharpe_ratio']:.4f}\")\n", + " print(f\" 累计收益: {result['total_return']:.4f}\")\n", + "\n", + "# 绘制图表\n", + "print(\"\\n生成策略表现图...\")\n", + "plot_strategy_performance(strategy_results)" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "================================================================================\n", + "Top-k 选股策略分析\n", + "================================================================================\n", + "\n", + "策略表现统计:\n", + "============================================================\n", + "\n", + "top5:\n", + " 日均收益: nan\n", + " 日收益标准差: nan\n", + " 年化夏普比率: nan\n", + " 累计收益: nan\n", + "\n", + "top10:\n", + " 日均收益: nan\n", + " 日收益标准差: nan\n", + " 年化夏普比率: nan\n", + " 累计收益: nan\n", + "\n", + "top20:\n", + " 日均收益: nan\n", + " 日收益标准差: nan\n", + " 年化夏普比率: nan\n", + " 累计收益: nan\n", + "\n", + "生成策略表现图...\n" + ] + }, + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAPeCAYAAAB3GThSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Qd8G+X5B/BHW5b3nhlkkUkmIQRa9t4b+mePMgqEWUYhlNECBcIotAFaNpRCgZSyZwiBEMggg+ydeG9rWuv+n+c93+lky7bsWLIs/76fj3KvTufT6aTY7z163ufVSZIkEQAAAAAAAAAAAAAkBH1/HwAAAAAAAAAAAAAAhCBoCwAAAAAAAAAAAJBAELQFAAAAAAAAAAAASCAI2gIAAAAAAAAAAAAkEARtAQAAAAAAAAAAABIIgrYAAAAAAAAAAAAACQRBWwAAAAAAAAAAAIAEgqAtAAAAAAAAAAAAQAJB0BYAAAAAAAAAAAAggSBoCwA9dvHFF1NaWhrOHETlpZdeIp1ORzt27OizM8b74n3yvgEAAACgd4YPHy769oqFCxeKPhYvAXqLP1P82QKAvYOgLcAAwZ2naG4DoYO1ePFiOu6446i0tJSsVisNHTqUTjrpJHrjjTfUbVwuF/3xj3+M2ev56KOPxP4HipaWFrr33ntp8uTJImCekpJCEydOpNtuu40qKiooWfFn4oknnqBEoQSLlZter6ecnBzxeV6yZEmv9hnrzzoAAMBg/tKYb9z3bE+SJBoyZIh4/MQTT6RExsEvbd8jKyuLJk2aRL/97W9p6dKl/X14XeI+jrbvZDKZxOu5/vrrqampqVf7/P7778V+e/vz8eDxeOjxxx+nAw44gDIzM8U1z5gxY+jaa6+lTZs29ffhAcAAYezvAwCA6Lz66qth91955RX6/PPPO6wfN25cQp/St99+m8455xyaMmUKzZkzh7Kzs2n79u20aNEiev755+k3v/mNGsjiICU79NBDYxK0feaZZwZE4Hbbtm105JFH0q5du+iss84SHXSz2UyrV6+mf/7zn/Tee+8lbeePg7Zr166lG264IWz9sGHDyO12i45/fzjvvPPo+OOPp0AgIM793/72NzrssMPop59+EhdRPRHrzzoAAMBgxsEy7k8cfPDBYeu/+eYb2rNnD1ksFhoIuO988803i7bdbqf169eLfjX3n2+88UaaN29er/a7ceNGEQiOtb///e8i8cDpdNKXX35Jf/3rX2nFihURA+rRBG2578TZnBzATjR1dXV07LHH0vLly8UXAnx9w6+dz/Wbb75Jzz33HHm9Xkpm/LkMBoP9fRgAAx6CtgADxPnnnx92/4cffhBB2/brEx0HScePHy+OnwOPWjU1Nb3eL3cAU1NTKdn4/X46/fTTqbq6WmRitr/g+NOf/kQPP/wwDTacqcEXYf1l2rRpYf/3fvWrX4lsW74g4QBuonx2uLPc/v8ZAADAYMJfsnJw86mnniKjMXT5y4Hc6dOniwDbQMAj1Nr3+7kPyAFBzugcPXo0XX311T3eb7yC1meeeSbl5eWJ9pVXXknnnnsu/fvf/6Yff/yRZs6cSYmgr64nOJi8cuVK+s9//kNnnHFG2GP3338//eEPf6BkpZzD/kqsAEg2KI8AkGR/JPkbeB7qxR2wfffdlx599FEx/Kt9wIuH5rz++utiGw5+caeVs1176+eff6b8/HyRKehwODrdbuvWrbT//vtHDCQVFBSoQ9B5X4y/RVeGUylZsUpNXd4Xd8TT09Pp//7v/8Rj3377rchG5ZILfA74XHD2AWdlKvjnOctWORfKTcGBLh6SP2HCBHFuCgsLReeysbEx7Hh5Oz6mkpISstlsItNy3bp1YbXBOEuW982d6UhZAvzYv/71r07P1zvvvEOrVq0Snbv2AVuWkZEhAred1SVT8PuizeJU6pW99dZb4hzzhQCfR+5QNzc3U2trq8hu5feEz/Ull1wi1kVTU1b7XnXmv//9L51wwgni3PH7NHLkSNGJ5cxV7TF/+OGHtHPnTvU9UmpjtX9+/pzzfd62vTvuuEN83rTvHw8l5AwIHq7G790hhxxC3333HfUWB20Zfya1eNgen0fl/+SoUaPEBZaSedDdZ739+9ZZnTDlfPB54M8un09+Pv48KsMSt2zZomak8Ovm95SzfLX4iyD+nPE2/L7z74c777yz1+cFAACgv/HomPr6evE3TsFZjhxQU0Z4tRdtXzCa/gzjv+Vc1or/LnN/kfse3Pf6y1/+slevjctl8ag7LtXE/UFtn5/7BLNnz6bc3FyxHff1+TW311nfUXHPPfeIAFxtbW2Hx3j0F/cZuBRAX/Wduuujcb/m1ltvFe199tlH7TtxX6gn/VOlf8TvCX8OePSf0tfmc8IZspwFzAFl/gyMGDFCjHTsDh8/918vu+yyDgFbxp8Tfm+0vvrqK3E+ONjJ5/OUU04RmdRayvHyCC8O3vP54T7k3XffLd733bt3i5/ja4OioiJ67LHHwn5e6ftzoJz7drwNP9/JJ58sflYrmuup7q7JItW05Sxj/hzydnycPDrtySefDNuGr534ufkzze//rFmzxPmM9Fr4OoY/92VlZeI9OuKII0R/FyCZINMWIEnwH2v+o/v111+LTgIPofr0009Fp6a8vLxD0JCHhPEfba4nxX+MOTuQO0j8bTd3KnuCh4Qfc8wxNGPGDNF55Y5hZ3hYOw+J4uFo/Ac2Eu6AcMYiZwucdtppItOU7bfffmFZhPyc3Lnijg//UWecScGBKP5Z7qTy6+HhV/x8/BjjTjfXgY1UXkJ5nDt7HNTi88PlG55++mnxjTl3GpVvjjkYyJ1trsfLx8LBVV5qO67cwTvooINEgJw7O1q8jjst3MHqzPvvvy+WF1xwAcXCgw8+KN6v22+/XXRy+Fzx6+Nhcnxhwh1Ezorm88Ed47lz5/bJ8/L+uJN30003iSV3VnnfXLv3kUceEdtwoJoDyPzeKZ/fzibAO/vss+n3v/+96LwpHXkFrzv66KNFZ5zxc3FWLHca+UKEX+uLL75Ihx9+uOik9ibbQ5lkTXkOxp9DvtDg/3/8meKOLwfq+XNTWVkpLgaj+az3BL8O/vzxRRT/v+YOr/Yc8XvI7zkPR/zHP/4hgvJKpvYvv/wiLlD4ue+77z7x8/yZ2JtgNgAAQH/jwNGBBx4oviTnv//s448/Fn0MzvbkDNze9gWj6c8ouF/FfW3+W89/kzmAynMTcOBKOa7e4OflPgSXzOIAJAeaGQfD+NqAg2gcpOaAGQfDPvjgAxFojhb3QblfwNcNnPTRPvDNgcnejH6K1HeKpo/G548Dl/x+cv9Qyd7lPlWkwHJ3+JxwlvKf//znsKA394E4mYGvqy666CJ64YUXRCCSj005x33Rd//iiy/Ea+ZrBu53c2CU++N8/cD9tfaBTy4zx+XwHnroIRHMfOCBB0R/79lnnxXnift1fI1xyy23iESZX//612E/z0FODnjyZ49HOXJ/lMuwcQKOcg0XzfVUd9dk7fF1F3+BwoFVpe/JgWn+/8Ql8xiPLOQvGvi5+f8dP/fLL78sPsf8WePPuRafA/6M8Gvl/898Xcaf90Sv8wzQIxIADEi/+93vuFeh3l+wYIG4/8ADD4Rtd+aZZ0o6nU7asmWLuo6349uyZcvUdTt37pSsVqt02mmndfvcF110kZSamiraixcvljIyMqQTTjhB8ng83f7sP//5T/HcZrNZOuyww6S7775b+vbbb6VAIBC2XW1trdjunnvuifj8/Njtt9/e4TGXy9Vh3YMPPijOAb/Gzs6fgo+F17/++uth6z/55JOw9VVVVZLRaJROPfXUsO3++Mc/iu34GBXPPvusWLd+/Xp1ndfrlfLy8sK2i2Tq1KlSZmamFK1hw4ZF3Ochhxwiboqvv/5aHNPEiRPFsSjOO+88ca6OO+64sJ8/8MADxb4V27dvFz//4osvdniu9u8bb8Pr+Ge6ep+uvPJKyWazhX2O+HOlfd6unp+Pcfr06WHb/fjjj2K7V155RdwPBoPS6NGjpWOOOUa0tcezzz77SEcddVSH54r0vPfee6/4jPLngD8z+++/v1j/9ttvq9vef//94v/Jpk2bwvbBn1uDwSDt2rWr2896+/dNwe9xpPeD/y/W1NSEbcv75ccuvfTSsPX8fz03N1e9//jjj4vt+HgAAAAGOqX/8dNPP0lPP/20lJ6ervY/zjrrLNEPZfz3lPsbPe0L9qQ/w3/Ltf0R1traKhUVFUlnnHFGt6+l/TG2p/wN/+9//9vpsXF/j/t9hx9+eJd9R6WPyEttH+uAAw4I+7l33323w3aRKP2QjRs3ij7Gjh07pBdeeEFKSUmR8vPzJafT2eM+2iOPPNKhb9nT/qlyXNz3bY/PCT+2aNEidR33rywWi3TzzTd3+Xq5f8U/29jYKEVjypQpUkFBgVRfX6+uW7VqlaTX66ULL7yww/H+9re/Vdf5/X6prKxM9N0feughdT0/N5/fSO9raWmp1NLSoq5/6623xPonn3yyx9dTXV2Tte+rzpkzR/RT+Zg7c8MNN4j98f9Bhd1uF+//8OHD1etF5bWMGzdO/D9S8Gvg9WvWrOn0OQAGGpRHAEgSPLGWwWAQ30pqcbkE7qdwRoEWZxzwN8UKzgLkjE/Ozm0/pKsznNXL36zyN6bvvvtuVDWxLr30Uvrkk0/EMDEecsRDyHg4EH/DzVmIPRGpbpc2y5fLRXCdMv7Gls8BZ0d0h7895uFGRx11lPhZ5cbnijMZ+DUzzhbmb5avueaasJ+/7rrrOuyTsyk4A4G/9Vbweeb9dleTmDM1OBs3Vi688MKwmlM8wy2fK36ftHg9D53i19wXtO8TT6bB54I/B/zN+oYNG3q1T8484AkftMPsOCuEP5dKNjNnEWzevFkMg+Ohksr7y58V/hxziZBoJk3g7A/O6OChZXzcnCnAw9A4I0P7WeLHOINE+1nibAb+P7Y35Ug6w9kuSrmF9q666qqw+3xsfA74M8aUiTw4Wx4TRwAAQDLhvhhnMHKWKfc7eNlZaYRo+4I97c/wz2r7fVy6iTNHeTj43lJGIvExRDo2zvLlTEQ+Ns7e7E1/kbMXtX0s7tfysHkeVRQNLrnEfRTOHOV+JpeM4usTJTOzr/poPdW+f6TgOTiUEg6Mj51fQ3fvl9Kviqb/ziOv+HVzBq92dBSPeuLPH1/ftXf55Zerbb7245GO3HfnjGAF9+k6O1Z+L7XHxn3X4uLisOfq6fVUNLWU+Zh4X9oyJe3xMfD/CW1JOP5s8wgyzszmTHItzoTXltxT3q+++D8FkCgQtAVIElzLk+tpte8g8PAZ5XEtDpK2N2bMGNHJ5KFFPOSpqqoq7KYN5vIQbB5aNXXqVDH8vCeTHXGgl4OWXO+TO2C/+93vxPHx0OxoJyPjiSQilVfYtWuX2vHhP/LcwVI6k9xZ7Q53Fnk7HjbOP6u9ca1e5fiU88kdTi1+Xu0wL6WTwiUUeMILbUeXa5nxMKaucL0nbQe8r3GwXosvUhh3wtuv545yNOcwGjwUn4c48X75NfL5VS5kevscPLyNh0hxoJZxx5IvvHjIGT+H8v4yHubW/v3lcgFctzea5+fOI3c6//e//6k1vtp/2cHPxV9QtH8eDtru7cR7neHyB9G+18rnVKnPx0FvHorHFwNcu4+HjPL/bQRwAQBgoFP+/nJfjBMN+G+29ovW3vQFe9qf4X6rdg4F5W9x+zq5vaHMJ6G9DuDANNcD5cQB7p8qJZl608/iPgJ/Ca4kIPA+eP88FL39a+pqngbuO/F7wMfF51EbHOyrPlpf9Z3a95uifb+UPmc0/XfleoIDrO3xNZwStO7quPizx++xUiZCuz7Ssba/BuT3j69nlHIVPb2e6uyarD1OdOFrTe6X8/ZKIk/789HZuVAe70nfFiAZoKYtAETEWa88UYIW1/NS6ipxx40LznNWHv/B5YBrT/E36/yNKN+4o8ETMfE37txZ6w4/PwfotLgDzt9KNzQ0iDpNY8eOFQX2uaYodzyiCT7xNtxJ12bFanWWxdgd/labA4h8Xrl2Gde74s5L+9fQHr8G/kabs1zbB1Ij6azjzOeGv41vL9K6rtYrtb66ep7ucLCeO37cqeUaaTxpB3c2OfOD37feBgn5Swv+LHGgkSdY4Fq83OlU6mYxZd9cZ47rPkfSWd3c9h1eJfjKn30+X1wXmP/PcMaD8lz8eeRau5Fwx7U7fJ7bTyTY1Xnuqp50d+8p/yx/icIZRFwjjf9fcwCcv1j47LPPOv15AACAgYAzOK+44gqRiMCBI2WESW/7gj3tz3T3d3hvrF27NiyZgOu/ch1QrmfK81ZwJiWPrOL6sNokgmhxMIz7O3xOuGYv1xflIGp3I8a0+FiUwCInM3B/mIO+PEqK+8N90UfrTf+0s75Tb98v7ruzNWvWhGXq9pWe9Od789nq6fVUpGuySPj/FGcVc+IOX+/xjT+PfI3EdWt7I5b/pwASBYK2AEmCJ/jiQvb8ra72W3ZlaBY/rqV8m63FRf05kMqdUf4D3H74Cg8F13aKuOPGw845w5H/8Eaa5T5aSqCLhwkp++8p7hzxa+A//NwBUEQahtPZ/rnDzeeRMw67m1BNmaRA+w09D+eK9O0uTzzB55XPGZca4IzmaCYo4E4tT7Tw2muviQmsoulU80VEe/zNNE9w0FeUb7LbP1f7b8Aj4Rlf+Txxpot2cgT+UqC9nn4OOBOEg+EbN24UAUf+PPM51L6/jC+wlKBrX+BJ055//nm666671KwBfi7OfOnuebp6jXyeIw3xiuY89wZ3unkIIt/mzZsnJuXg18aB3L48XwAAAPHGGbE8wRh/qauMytmbvmBP+jOxxH2N9957T3y5r2QkclYrB5A5QKYtX8ZBst7ivjX3+3kCYu7P8mi7ribk6goHX7nUFA9v5y/beXRPT/ponfWd9qZ/2le438mTvnLfvbugrXI9wf3W9vgajoPcHDDtS+2vATnAydczyiS4Pbme6ikemcnnh28c/OU+O0+gdvfdd4svHPh8dHYuIl3PAgwGKI8AkCQ465W/GeWZbbV4VlXu2LSflXbJkiVhNa04k5OzZo8++mjxrSV3erjDpL21nxmW//ByR5VnJuU/vjyzaHe4FmwkSh0lZUiMUt8qUgCyu29btd+ucptnz21P6QC13z/XPOPzyLV22+N6rsr2HNTi4UA8zEyr/flX8LY8Yyp3THmmYc4uUDpHXeGhe7wtz/TK71l7HKTnoJqCO7x8McLlLRQ8fI3f377EHWruSLavy8rZHL15n/h4I/0sv089GQrHNV15/xzo5sxmzgrRdna5Hh2fI57dVhlKqNWbWYcZZ+vwhSBfHHEWgfJZ4veM17XHnyOlPnBXn3U+Vu6oao9r1apVYqbdvsYZFe0pmS6cTQMAADCQcaCQ+21//OMfw77QbS/avmBP+jOxwuWZOAmA/4Zzf1AJZvKxcVubYcrD3xcsWNDr5+JrCe778Qimb775pkdZtpFwli0Pk1dGRPWkj9ZZP35v+qd9hecN4WQNLukQ6XzzZ+SWW24Rbc6A5r4WB0i1r4Uzp3mUE1/f9bVXXnklrHQDZ01z0oxyrdiT66me4C842icKKNdCSj+TXy9fT2qvebg8xHPPPSdGe3KdYYDBBpm2AEmCO588NJs7bNwpmzx5svhjz4HYG264Qf32WjFx4kRRW5YnLuNv4JXODJco6AnOQOCgIA+h5j/23InjfXeGv6HnzFQ+Xj4m/kPM2QxcG1QJ/ir75T/MnAnBw8i5phLvt6t98/Ad3id3hHgID3fcONMgUuarMgkbv34+D9xB4W/5eZgbB9/4G3IOvnEQm4eT8bfSHATkDgsHUrnm55w5c8TkUzz8jDtnHEzjjGPuLEbKAOBvq5966imRtagdst8Vfm4OjHPQnLM4+EKCMz94PddR4yFuHGDnoC7jeqTc+eLj4W15wgj+pr/9+98X+LkeeughseRMae4g8zfz3eGJDPiYuQwGn38+V6+++mrEoUz8PvFn4KabbhKfD77g6upCi4de8f8DzhLlDiln3rbvIHInmj+rnB3CGR5cW5g/L/y+8GeGP4u9wZ+HJ554QpyTN998k2699VZRBoMDxzycjF8Lf945g4HfI/5/yp+Vrj7rXO+LXwt/RnmCCa7/Nn/+fHHsykQXfYWHdvJ7yLWqOZOBn4t/L/AFlXZCCAAAgIEqmhJc0fYFe9Kf6QvcV+E+HeOgJk/KxMfD5R544mE+ZgX/Lef+A/cHuSwE/01/5plnRDbj6tWre/X8fA64r8wJCtxv5mSEvcH7474T95d4lJIS6Iymj6b04/m6h4+J98X9Qw7m9rZ/2teBUf7cnH766eK4ONmDj40/Q9xH5CApB6eVchD8mjnYy309DsT/9a9/FTVp+QuGvsb9TO7X8fmtrq4WfVf+XHDpkJ5eT/UEvx/85QJfM3LfkrOf+XVy0FrJEOdSY5x4weeD/0/xsXJAm7PX+RiiKcMAkHQkABiQfve733GPMGyd3W6XbrzxRqmkpEQymUzS6NGjpUceeUQKBoNh2/HP8c+/9tprYhuLxSJNnTpV+vrrr6N67osuukhKTU0NW1dXVyeNHz9eKioqkjZv3tzpz/7rX/+Szj33XGnkyJFSSkqKZLVaxc/94Q9/kFpaWsK2/f7776Xp06dLZrNZHPM999zT6fMr1q1bJx155JFSWlqalJeXJ11xxRXSqlWrxM+/+OKL6nZ+v1+67rrrpPz8fEmn03U4l88995x4bj7G9PR0adKkSdLvf/97qaKiImwfd999t3jNvN3hhx8urV+/XsrNzZWuuuqqiMc3YcIESa/XS3v27JF6orGxUZo7d644DpvNJs7bxIkTpTvuuEOqrKwM2/axxx6TSktLxft60EEHScuWLZMOOeQQcVPwe82v+e233w77WT5HvP6nn34KW8/nntfX1taq61wul3TZZZdJmZmZ4hydffbZUk1NTdh7pd3n9u3b1XXfffedNGvWLHHe+PPK5/bTTz8V22k/hw6HQ/rNb34jZWVliceGDRsm1vO+2r+niueff148xsfkdrsjns+VK1dKp59+univ+Dzxfvn4v/zyyy7fB+V5+f9VJBdffLFkMBikLVu2qP8n+T0aNWqU+BzzZ3L27NnSo48+Knm93m4/64z/n44YMUI8NmXKFHGe+P+Aci66O65I712k94Vf+ymnnCLeD34uXp533nnSpk2bujwnAAAAiaizPk17/Pf0hBNO6LA+mr5gtP0Z7oNxH7C99n/PuzpG3iffuN+akZEh9sf93KVLl0b8mX/+859qP3/s2LHifCh9gvb75uNo30eMdF3w448/iseOPvpoKVqd9UNYc3Oz6Edq+6jR9tHuv/9+0d/lfrW2PxNt/7Sr4+rsM9G+P90VPg7u7+2///7iuoT7Vvx+8PWH0k9UfPHFF6LPzp8jfm9POukkcU0TzXns7Lqo/WdOeV/5Woz7pgUFBeL5+HXu3LmzV9dTXV2Ttf9s/+c//xGfG35ePhdDhw6Vrrzyyg7XMVu3bpXOPPNM0ffn652ZM2dKH3zwQdg2nV3HdHV9ADBQ6fif/g4cA0B8cSbA7373u06H8kPv8dAmzrp44IEHwsoWKLj+F39r3FmZCAAAAACARMSjyjgzkjNJo5mbARIH12Dm0Wicnc2Z4gAwMCC/HACgl3j4Uns8xIhFmpRt2bJlYpidtqg/AAAAAMBAwJOucqkqHvYPAACxh5q2AAC9xDVIeVIxLprPHdjFixeLOkxcw4rrzmonE1i+fLmof8sTDrSvswoAAAAAkKi4lizX0OUJoa699tqwSV4BACB2ELQFAOglnvHUaDTSX/7yFzEplDI5GZdG0OJJp3iSp3333VcEda1WK845AAAAAAwI1113nZi0ihMVejppMQAA9B5q2gIAAAAAAAAAAAAkENS0BQAAAAAAAAAAAEggCNoCAAAAAAAAAAAAJBDUtO0DwWCQKioqKD09nXQ6XV/sEgAAAGDQkCSJ7HY7lZSUkF6PnIJEhn4vAAAAQHz6vgja9gEO2A4ZMqQvdgUAAAAwaO3evZvKysr6+zCgC+j3AgAAAMSn74ugbR/gDFvlZGdkZFCssxtqa2spNzeX6uvrxbKurk5E6fPz89V1A3WJ15IY7wPel8Q474PpfUnG14TXkhjvA96X+J1f/n/b2yzZlpYW8QW40qeCxBXPfi8AAABAMoq274ugbR9QSiJwxzUeQVuPxyOex+v1imVra6sIcmjXDdQlXktivA94XxLjvA+m9yUZXxNeS2K8D3hf4nt+97a0AcpMJb549nsBAAAAkll3fV8UDQMAAAAAAAAAAABIIAjaAgAAAAAAAAAAACQQBG0BAAAAAAAAAAAAEghq2gIAAAAQiXrKXIvY5/OJ+vEDYcn6+xi0y85q2ppMJjIYDPicAQAAAABECUFbAAAAGPR4Iq36+npqbGwUk37a7fYBsWQOhyMhjoWXXU2mkJWVRUVFRZhsDAAAAAAgCgjaAgAAAA32DNvq6moym81UWloqApBGo5H8fn9CL5VMW85i7e9jUZaRgrZ8fl0uF9XU1Ij7xcXFcX+PAQAAAAAGGgRtAQAAYFDjIK3b7RZZoDabrd8Dn9EulXIDiR60ZSkpKWLJgduCggKUSgAAAAAA6AYmIgMAAIBBTSkzwMFPiB0OiDMlQxgAAAAAADqHoC0AAAAAxFxX9W4BAAAAACAcgrYAAAAAAAAAAAAACQRBWwAAAAAAAAAAAIAEgqAtAAAAwAB01FFH0c0339zn+73kkkvIbDaTXq9XlyeeeGKfPw8AAAAAAHTO2MVjAAAAADAIHXPMMfTiiy+S3+8no9FIBoOhvw8JAAAAAGBQQaYtAAAAwADD2bCLFi2ip59+Ws2I3bFjh1h3wAEHUFpaGpWUlNCdd94pAq+KI488kq699lqaM2cOZWVlUXFxMd19990kSVLY/nl/RUVF6i07O7sfXiUAAAAAwOCFoC0AAADAAPPEE0/QrFmz6NJLL6WKigratWsXmUwmOvnkk2nGjBm0bNky+tvf/kYvvfQSPfDAA2E/+8orr4js2aVLl9Jjjz1Gjz/+OL3wwgth23Dwt7CwkCZMmEBXX3011dfXx/kVAgAAAAAMbiiPANBmp2Mn/X7F7ynbmE1/PuTPOC8AAIPYyU8vphp7K+lIRxJJcVsWpFvo3atmdXt8mZmZIhvWZrOJTFjOpr3nnnuorKxMZN8GAgGaOHEi7dmzR2Tb8k0xZMgQevTRR0WQd+TIkbRu3Tp68skn6corr1RLI3Dwd9SoUbRp0yaaO3cunXTSSbRkyZKYnnMAAAAAAAhB0BaAiCocFXTbstuovlXOJHrpl5fojJIzcG4AAAapWruXqlta4/68HLztrQ0bNojsW50utI8DDzyQHA6HCN6OGDFCrOPyCe23mTdvngj0snPPPVetZTtu3DiaOnWqCOAuXLiQDjnkkL16fQAAAAAAEB0EbWHQc/gcdP3316sBW/bCLy/QrMxZlJeXN+jPDwDAYJSfbo5rhq2y5OdNNBzs5b+HW7ZsQdAWAAAAACBOELSFQe+Lii9ot323OA9mvZm8Qa+4Pb3+aXpu6HOD/vwAAAxG7197sJpt2h/LaHB5AyU7lo0dO5beeeedsEnFuKRBenq6KJug+PHHH8P288MPP4hMWoPBEPG5OUuXa9rypGUAAAAAABAfmIgMBr1aT616Dh48+EHKt+aL9rL6ZbSlacugPz8AAJCYhg0bRj/99BPt2LGD6urq6JprrhEB1uuuu06USvjvf/9L9913H914442k14e6fDxp2a233kobN26kN998U9TA5Z9hXEqBH+NJyni/X331FZ166qmi9i3XugUAAAAAgPhA0BYGPaffqZ6D4tRiOnHIier97S3bB/35AQCAxMTBWM6OnTBhApWUlJDP56P3339fBHJnzJhBV199NV188cV01113hf3cBRdcQG63W9S2nTNnDl1//fV0+eWXi8d4f2vWrKHTTz+d9t13XzE52bRp0+jrr78mi8XST68UAAAAAGDwQXkEGPS0Qds0UxqVpJSo98sd5TQtddqgP0cAAJB4xowZQ4sWLRJlEpTSClwGgbNkuyq5wNs/+eSTNH/+/A6Pp6Sk0CeffNLrkg0AAAAAANA3kGkLg177oG1RSlFY0BYAAAAAAAAAACCeELSFQS8saGtOoyJbKGhb4awY9OcHAAAAAAAAAADiC+URYNBz+V3iHFj0FjLpTZRpyqQUYwq5/W5k2gIAQFL54osvUO4AAAAAAGAAQKYtDHpKpm2qMVUsdTodlaaWinals5KCUnDQnyMAAAAAAAAAAIgfBG1h0FODtiY5aMtK0uTJyHxBH9W31g/6cwQAAAAAAAAAAPGDoC0MapxFy2UQmM1gU9eXpsmZtqzKXdUvxwYAAAAAAAAAAIMTgrYwqDl9TpJI6pBpW5ZWprarXAjaAgAAAAAAAABA/CRV0HbRokV00kknUUlJiahLumDBgm5/ZuHChTRt2jSyWCw0atQoeumll+JyrJAYHD6H2lZq2mrLIzBk2gIAAAAAAAAAQDwlVdDW6XTS5MmT6Zlnnolq++3bt9MJJ5xAhx12GP388890ww030OWXX06ffvppzI8VEoPDGzloq0xExirdlXE/LgAAAAAAAAAAGLyMlESOO+44cYvW/PnzaZ999qHHHntM3B83bhwtXryYHn/8cTrmmGNieKSQSOURIgZtUdMWAAAAAAAAAAD6SVJl2vbUkiVL6Mgjjwxbx8FaXt+V1tZWamlpCbuxYDAYl5skSR2WkdYN1GU8n6vFK793zGa0qeutBitlmjLV8ggD4bUk0/uC1zI435dkfE2JcAx4LdG9L0x5bKDcjjrqKLr55pv7fL/vvPOO+BI8Ly+PzGYzrVy5ssM2brebfve731FRURGlp6fT2WefTdXV1VHtn895pBsAAAAAACRppm1PVVVVUWFhYdg6vs9BWL4YSUlJifhzDz74IN17770d1tfW1pLH46FY4oua5uZmseTjVO4rlHUDdRnv11LhqlCfT+/Ti/dQeTzPnEfNvmaq89RRRXUFuR3uhH4tyfS+4LUMvvclGV8TXsvAeV/sdrtY8s3v91MgEBCPJ/pSCYL29THz+TjwwAPpzDPPpKuvvlqsa78dB4u5nNRrr71G2dnZNGfOHDr99NPpm2++oc7wcfI5rq+vJ5PJFPYYPycAAAAAAIQM6qBtb91xxx100003hV30DRkyhPLz8ykjIyOmz80XOzzJWm5uLun1erHk+3zRxs+vrBuoy3i/Fn0wlGyel54X9rxlaWW01bmVJJIoYAtQljEroV9LMr0veC2D731JxteE1zJw3hcORDocDnHfaJS7Rom+vOKKK+jbb78VN6WW/9atW2nbtm1055130qpVqygnJ4fOP/98+tOf/kQGg0H8LGfnTpw4UfQn3njjDRE8veqqq+juu+9W933RRReJAOuePXvEff5Z5eeVOQRefvllEbA94ogjxPrnn39ezCuwbNkymjVrVsQ+DG+nnHOr1Rr2WPv7AAAAAACD3aAuj8BD+ngonxbf58BrZ1m2zGKxiG20NyaCgHG48QVn+2WkdQN1Gc/ncvrDa9pqHy9IKVAfq/XUJvxrSab3Ba9lcL4vyfiaEuEY8Fqie1+Y8thAuD355JMiOHrppZdSRUUF7dq1S5QyOOWUU2jGjBkiePq3v/2NXnrpJRG0VX6OvfLKKyJYu3TpUlHXn2v5v/jiixGfJ9J5WbFiBfl8PhEAVtbxvABDhw6lH374odtj53Me6QYAAAAAACGDOtOWh/599NFHYes+//xzsR4GB4fPobZTTaGJyFiOJUdt17praXja8LgeGwAA9KPnDiWjg7/Y1ZGRpPgt0wqJLv2i28PLzMwUQVqbzSa+hObM2HvuuYfKysro6aefFtnDnFHL2bKcecs3BY8OevTRR0XgduTIkbRu3ToRBL7yyiujLi/Fz52VlSWeV1tiih8DAAAAAIC9l1RBWx7auGXLFvX+9u3b6eeffxbDAzn7g8salJeXiwwTxsMB+cLm97//vchU+eqrr+itt96iDz/8sB9fBcSTw6sJ2ho7D9rWueuI0uJ6aAAA0J8cNaSzV8b9aSWSs1t7Y8OGDSL7VsmQZfxFNPePOHg7YsQIse6AAw7osM28efPUerUAAAAAAND/kipoy0MBDzvsMPW+UneWa7Px8MDKykoxfFCxzz77iADtjTfeKDJMODvlH//4Bx1zzDH9cvzQz5m27YK2uZbc8KAtAAAMHmkFoqY5Z8BSPJdpodI8iYoze71eLzU1NVFaWlpYiSl+DAAAAAAA9l5SBW0PPfRQMblIZzhwG+lnVq5cGeMjg4EetOXyCAAAMIj8dqEY+s+TZ8V7SZqSA13h8gba7NixY8fSO++8E9YXWrJkCaWnp4svphU//vhj2H64Du2oUaPEZGPacgedmT59unjuL7/8UtTQZRs3bhRfjKPEFAAAAABA38CsDzCodRW07VAeAQAAIIEMGzaMfvrpJ9qxYwfV1dXRNddcI8ogXHfddaJUwn//+1+67777xIgi7URfHFy99dZbRaD1zTffFKWi+GcUDQ0NorwU17plvB3fV+rVcj3dSy65hG6++WZauHAhLV++nK644goRsOXyDAAAAAAAsPcQtIVBTQnamvQmMhvMYY/ZjDZKMaaINoK2AACQaDgYy9mxEyZMoJKSEvL5fPT++++LQO6MGTPo6quvposvvpjuuuuusJ+74IILyO12i9q2c+bMoeuvv54uv/xy9XHex8yZM+nEE08U98877zxxf/78+eo2PJHZCSecQOeccw4dcsghYhIyzvIFAAAAAIC+kVTlEQAiCnhJ/69zKMdRT66zX6QWr4/yKC9sIrI0U+RZxvJS8mi3fTfKIwAAQMIZM2YMLVq0SJQqUEorcBmEpUuXRiy9oODtuZY/B2EjPc6B3vPPP7/TEg7MarXSM888I/YTVtoBAAAAAAD6BHrXkPQsOxeSfusXVGc00BkfnkGSwUzPHfkcFVCBmmmbZo4ctM1PyRdBW97OE/DE+cgBAAAAAAAAAGAwQnkESHoGe7lYfpiaSg7JR06/k55Y+YSYqMXpc3abaatoaG2I0xEDAAAAAAAAAMBghkxbSHoGV41YrrBa1HU/Vf9ES2uXUkAKdBm05UxbBYK2AAAw0H3xxRcdyiEAAAAAAEDiQaYtJD29s5o4NPuzJmjL/r7x72q700xbayjTtr61PoZHCQAAAAAAAAAAIEPQFpKewVlNW8wmcujDP+4Vrgq13WlNW1so0xZBWwAAAAAAAAAAiAcEbWFQZNqusISybCdaCjtsg5q2AAAAAAAAAACQKBC0heQmSSLTdqWmNMIN+lIqshX1OGiLTFsAAAAAAAAAAIgHBG0huXmaiAJeWt4WtE0JBmlicyWdP+78sM06LY9gxURkAAAA0H+eeeYZGj58OFmtVjrggAPoxx9/7HL7t99+m8aOHSu2nzRpEn300UedbnvVVVeRTqejJ554IgZHDgAAAAB7A0FbSG72SqowGqjGaBR3J7e2Ukr9Rjp1xClR/Xi6OZ3MerNoN7Q2xPRQAQAAALT+/e9/00033UT33HMPrVixgiZPnkzHHHMM1dTURDxR33//PZ133nl02WWX0cqVK+nUU08Vt7Vr13bY9r333qMffviBSkpKcNIBAAAAEhCCtpDUdPZKWmeWg65sisdLek8Tpbba6bCiw9T1+2TsE/nndTrKseSIdr2nPg5HDAAAACCbN28eXXHFFXTJJZfQ+PHjaf78+WSz2eiFF16IeIqefPJJOvbYY+nWW2+lcePG0f3330/Tpk2jp59+Omy78vJyuu666+j1118nk8mE0w0AAACQgBC0hcTmbiLz7m+J/J7e/XxLJdUZDOrdUr9fLHU16+jGCTfSKSNOoZOGnESzimd1ugslaGv326k10Nq74wAAAOhjRx11FN188819uk+fz0e33XYbTZ06ldLS0mjYsGF00UUXUUVFRdh2DQ0NdP7551Nubi5lZ2fTb3/7W3I4HH16LIOd1+ul5cuX05FHHqmu0+v14v6SJUsi/gyv127PODNXu30wGKQLLrhABHYnTJgQw1cAAAAAAHtDHjMOkKAM/zqLcipWkLRsIumP/jtRXmhisE4FfKR/5xLKrd1CupL9qF4TtM0NBORG/RZKyZxMfzzwj1RXV0cmfedZJrmWXLVd764nM4UydwEAAJKJy+USw+rvvPNOkaHJfyM5MHz66afTsmXL1O04kFtVVUUff/yxCAJeeumldOWVV9Ibb7zRr8efTPjcBwIBKiwsDFvP9zds2BDxZ/g9ibQ9r1c8/PDDZDQa6frrr4/qOFpbW8VN0dLSIpb8vvMNAAAAAHom2j4UgraQsHStzaSrWCG3q9dSzoJziS78HxGldvlzlh1fkH79+3Iaed06asjNVh/LaQva6hyRa8FFkm5KV9t2r51yKRTEBQAA6A88XH7RokXipgx937Ztm7jdcccdtGrVKsrJyRHZsH/+85/Vn+MszIkTJ5IkSerQeJ6Mau7cueLxzMxM+uyzz8jv94vA3siRI+mvf/2rmABr165dov7p+vXr6dNPPxUTYk2ZMkVs9/jjj9PJJ59Mjz76KGqkJjDO3OUSClwfl0tARePBBx+ke++9t8P62tpa8nh6ORIKAAAAYBCz2+1RbYegLSQsQ/POsPtGezkFF/6J6Fehi89IrNs+C7vfEJZp2/ZthrM26uNIMaSobaffSbl6BG0BAKB/PfHEE7Rx40ZR5/SBBx4QQVYOwnHglLNg//nPf9KWLVtE2QKugXrXXXepP/vKK6+IoO/SpUvF7ZprrqGysjKRKRtJc3Oz2HdWVpa4z0PtuT1jxgzxvOyII44QQ/d5f6eddlqczkJyy8vLI4PBQNXV1WHr+X5RUVHEn+H1XW3/7bffiknMhg4dqj7O2bycTc2fqR07dnTYJ38JwJOhaTNthwwZQvn5+ZSRkbHXrxMAAABgsLFarVFth6AtJCxju6At09Wu7/qH/B6y7FoYtkpbHkHJtO1J0NZmtKltp89JZIn6RwEAYIA698Nzqc5VR8TJiBLFbZlny6PXjnmt2+PjjFiz2SwCshyQ4+DpPffcI4KvnHnLgTjOqN2zZ48odcA3BQfcOCOWs2w5k3bdunUi+zJS0JYzKW+//XY655xzRICOn4eH2nPATouzbTmzVzsMH/YOv7/Tp0+nL7/8kk499VR1KB3fv/baayP+zIEHHigev+GGG9R1n3/+uVjPuJZtpJq3vJ4D+ZFYLBZxa4+D9HwDAAAAgJ6Jtg+FoC30K72jmnQbX6NUl4t0RaNIl7M/SabUiJm2gqu+y/3pti0kvc8Vtq7BIP9nSDWmkkmnJ5KCpHOGZ6FEG7R18b4RtAUASHp17jqqcUdfSqfPRDdiPSKuczpr1qywYe8crOMJwjh4O2LECLGOSx2032bevHki0Nt+UrLzzjtPlFJQSjBAfHGGK2dOc1bzzJkzRTas0+lUA6wXXnghlZaWihIGbM6cOXTIIYfQY489RieccAK9+eabohbxc889Jx7nieP4psXBew7877vvvnh7AQAAABIIgrbQrzIWzSXDroWkVI3NLj2Q6k94oUOmraQ3ki7oJ3I1EEmckhSZbgPXvKWI5RGyzFlEtjwiZw2RoweZtgZNpq3fGfXPAQDAwJWXkhfXDFs105afNwFwwPb//u//RB3br776KmwYPAf4uJ6pFmfgNjQ0dDpsH3qHM5z5XHPNYc5i5hrCn3zyiTrZGL8/2kyN2bNni8nguBwGZ1ePHj2aFixYILKuAQAAAGBgQdAW+o8kkbkqNBM1M5f/QDqvs2Ombcl0oj1LSRf0kY5LFFD4sEwh4CPdpk/kXZtTifxe8ko+crRdzGSbs4nSCuSgLQ95bR/8DXiJdi0hg9/KheTU1SnGlPBMWwAASHpvnvCmOhlXfyyjwRmS2uzYsWPH0jvvvCMyYxVcfzY9PV2UTVDwBGJaP/zwA40aNUrUT+XnVjJst27dKiYl48xM7TFxZm5TU5OY1Gry5Mli3ddffy2G7nMWL/QtLoXQWTmEhQvDS0Kxs846S9yiFamOLQAAAAD0PxSigv7jrCG91xG2SkcSmerXibaxRQ7aBlKLSMooVbfRuxsi7s5Uu4Z0nibRlkYdTb78idSgD9Wz5UxbKVUO9uoCXtJ5W+S210H6/11HBS8dQMZXTqS8f59AZK+MXNMWmbYAAJAghg0bRj/99JMIutXV1YkJxbgMwnXXXSdKJfz3v/+l++67j2688cawbEzOzrz11lvFRGY8fJ5LH/DPMA7YcsBvxYoV9Nprr4mgMGd48s3r9Yptxo0bJ+qg8iRn/PzfffedGJZ/7rnnUklJSb+dDwAAAACAZIKgLfSf+q1qM6jJZjXV/kLkbiJ9WwDWnzmMyJajPq73NEbcnalODvYyadhsss+6RS2NwLIt2URtQVuxH8625UzaTQtIv+oNtRauLtBKusqf1e1SDCnhE5EBAAAkAA7GcnbshAkTRLCUA67vv/++CKRyDdSrr76aLr74YjFUXosnnXK73SIrloOt119/PV1++eXisfLycrEPDv5OnTqVhg4dKvbNy++//17dx8svvywyezl4y7VTDzroIHr22Wfjfg4AAAAAAJIVyiNAv9HVb1HbnlEnkm3D26Jtql1L1BAK6AYyh5PRlttt0NaoDdoWTiKfdR+qOfgGou1vhmrapoYmXjG0BW31jlBWrcpZR5TTyURkAAAACWDMmDG0aNEiUSZBKa3AZRCWLl3aZckF3v7JJ5+k+fPnd3h8+PDhosxBd6UbcnJy6PXXX+/wOAAAAAAA9A1k2kK/0TVogrYjjiLJaBVtc91a0jVuVx/zZw4l0gRtdZ1m2q4XS0mnJyqcINoNhWPVx5ftCJJPM8GL3l0vL1vtHXfWFtBlyLQFAAAAAAAAAIB4QtAWEqI8gj97NFGhPLOxsXlnWHkCzrSl7jJtA14yNmyWm1n7EJnk7NgGT6j+7YqdRJ/tDE3OonfJM18rtW21dJxpSxEybf3ItAUAAAAAAAAAgNjCODaIK85u1X3/Ohmzp5CuXg6ySsYUCqYVkVQ8hXTly8Q63S/vqj8T4Jq2Jl/XQdvajaQLytv4cseRqW11vUfOphXP40+jf29w0Enm0LF0mmnbSdAWNW0BAGAg++KLLzqUSwAAAAAAgMSDoC3EVfr3D5Fh8/uUY04n8rvllTkjiHR6EbRV6BzVatufMYQkXbN6X+/uGLTVVa1W27688WrQtlET4A0G0qhOCk1MpnfXdZppqy2PYNabyaAzUEAKINMWAAAAAAAAAABiDuURIK5SNr8vf/C8dtIF5SwfKXeUvCyZ2mF7KaOUiGvd2nI0mbahkgcKXfUate3PG6+222fa1kmZof24lExbOWgbNKeRpJfDvTpN0Fan05GtrdwCMm0BAAAAAAAAACDWELSF/pczUl7mjqagphQBkyb/Rm6kaIO2kTJtQ0FbX944WlvRQou3Nak1baWggShopQZKJ6ntY29wKzVt5fIIkjmTKLVtojKn/Jgi1Zgqli4fatoCACQrSQrVPYe+FwwGcVoBAAAAAKKE8ggQP1KQJJ2BdFIgfHVbpi3pDeScchmlrXyWpOG/psaJl1DmpGOJ6uqIjBaRCav3OjoGbaUgUVumrZRRRuWtKXTuq0vJ6w9S8SQ5Y1YKpHF4loKkI5cpi1J9DSLTli/Q1UxbSzrpTWYieyURZ+FqLt6VTFuHzxHTUwQAAPFnMBjEqIqGhgZR7zUQCKh1XxN56fPJtdz5ePv7WJQln8f2+G+t1+ul2tpa0uv1ZDa3FZcHAAAAAIBOIWgL8eNu7BCwZVJuW6YtB0Wn/47sU6+mgsJC8tXV0eYaB320soouODiDcqzZatBWm6tjaNlDOq9T3lfRJHrlpyoRsCUKksPXzLFaURpB0aTLpFRqEBORBfxudQIzyZxBUkoqby5KN8i1bvPDMm09AY+obQsAAMmDA4klJSW0e/ducrlcIiOU1w2EpXL8iXAsvIwUtFXYbDYaOnSo2A4AAAAAALqGoC3ET7uSA6qcUUROzSzWbRd8/oBEl76ynCqbPfTZpmb6nyWbiHaTztPMs4qpmxtadoV+Nm807djokXdjcHP0VZNpK6sKZFCpCMz6iJpCP8uZtmG1c91c81YOKKea5KAt8/jl/QMAQPJITU2lnJwcyszMFBm32dnZ1NjYmNBLPk7Gx93fx8LL3NzcTgOynM3cWSYuAAAAAAB0hKAtxI0uQtDWWzyT9ClZRM7QxF+KleV2EbBlG6sdtLvAJkKoOpKIPE3qdgZ7hdqWMofS7kYlaBsqZSD5Q0HXXd4Mmm5oO6b6LaFtzBlEqXJmLdO7GzqUR2CuAOraAgAkIw44WiwWMplMZLVaB8SSSw/09zFol8iiBQAAAADoGwjaQvxoArP2A26hlEknUoMul9qm/upg4ZZQYJatbjLRSCWBx8X7yhVNg71c3abBVET1LjlrV2fUBG01mbY1UkZop5qgLWfaSspEZGqmLXXItHX5EbQFAAAAAAAAAIDYQVExiB9njdoMpBYQFU0iMkSejCQYlOibreFB27pgeuiOK5QFa7DvUdurHaGArN5SHdqfN1T2oE7KVNu6+s3hmba2vMiZtsZQpq3b7+76dQIAAAAAAAAAAOwFBG0hbnSaTNtgipwlq+Xyhura/rynmeqc8gRhM4akk8mgowZNhqzOFcqC1WbaflcXyog1WEPrA54SMrSV0auRskL7qdsUOiZzOlE0mbYojwAAAAAAAAAAADGEoC3Ej6ambTAlvCjCc0sqaPL9X9JT38pZs5+tC2XJHjs2h/LTLNRAnWTaOuSatoGUXFq6J5QFq28L2kqSnoKtxVSaZRH3qyRNwLh2o9qUuDwCMm0BAAAAAAAAAKCfIWgL8ePSBm1D5QoCQYneXFFNkkT07upacf+L9XIpBYNeR78akUX56RZqlEJ1aUnJgvW3kr6t7IIvtYQ2VNnl9Tof6S3y+mBrAZFkorJMOWhbSaHn1vmcoWOytJ+IDJm2AAAAAAAAAAAQfwjaQtzowjJtQ4HTzTUOcvmCot3ql2hLnZt21MuTfe1XmkmZKUYqSLdQgxTKtNUpmbYt5aQjSTQbzUUi4Mv0lirS6eR9Bj2lYqlk2lZL2RGPT+LyCLZQFq7eo6lpawrVtMVEZAAAAAAAAAAAEEsI2kL8tNW0lThgqzeqq1fuCp9w7IvNjWp7XLEcqC3IsFBjWHkEOQtW17RLXVWjL1DbJQV1YfVsmZJp20pmsutD9XHDMm3NqRQ0pnSYiCzNFMryxURkAAAAAAAAAAAQSwjaQvwombaaEgRs5e52QdtNoaDtvoVysLQgLTzTVgnaUvNuddXuYKhObmZWqCZuwFMmlsUZFtK1TUZWpwtl+oZl2mqygA2a8gg2oybTFhORAQAAAAAAAABADCFoC3Gh87nEjUndBG2r7T61/Yv7TTrzqzOpKvgdNVMaBSQ56qprC6jqNEHbLd5QINZnkNdLko6CnmLRzkoxUobV2HEyMm2mrQjayo/pPE1EwYBop5pS1e2QaQsAAAAAAAAAALGEoC3EhXZSL22mbZPbT9vr5GBuezpjE31c/i9q9jXT4obXKEg6aqK2MgVKTVtNeYS1LrlWrUHvp9rWnaId9OZzCq1oZ1o5aGsS7fJgx7q2UlsJhKBVDv6KWrltJRJQ0xYAAAAAAAAAAOIFQVvoh6BtqIzB2kpHpz+Tnb9WbTd5a0lnrqNGpUSCq2Om7Uq7nClbkNNAfskfNgkZy7AaKDNFDtru9meFPZdkSSfSGzpMkqaUdEg1ajJtA+5oXzYAAAAAAAAAAECPIWgLcaF3hSYGk2yhoO2aSqfatprCP46GjFVh942pm6ihbTIynddBFPCqmbaBlByq98kZtRkZtZp6tnJpBJZuDZVHqJDa1bS1ZKrNYGpoQjNlojNteQSXP3JmMAAAAAAAAAAAQF9A0BbiQt9WZkDQBEV/qQoFbY+fWBTa3lxDHn0oi5YZ0zaHMm05qOusIXJUibY7JZRRa04JTUIWbJX3ycFao15HGW2ZtlXtg7bWUNDWnz0qtL52g1ikGFPUVci0BQAAAAAAAACAWELQFuJC766LWB5hT1OrWGZaDXTwqNDkYMaMnzvsw2jbRrVSWuh+/QbSSUHRbjQVqut9xsoOQVulLEJmNEHbnNFqW1e7Xn4uvZGsBqtoI9MWAAAAAAAAAABiCUFbiHumrdQ2EZkkSdTg8ol2XqqJRhcoAdkgmTLloK2OdDQtd1rbTry0PkUXFrRVVOlCgeCWwB6xNEipJPnlzNxsmxK0NUYM2kpWuR4u82eNIEkn17fV1W5U16cY5GxbBG0BAAAAAAAAACCWELSFfsi0lYO2jlY/eQOSaOekmmhEXirpdUSG1C2kN8tB3plFM+mokqPUH92U4lXbJk3QdrevLehqcJI90CiaGfoyEfZlWTa53m26VQ7e2imFfG1B2PY1bclgJsrZR27XbyYKBsJKJLj9mIgMAAAAAAAAAABiB0FbiAuDq75D0LbOEQrA5thMZDEZaL+SNDJl/6CuP3P0mTQ9d7p6vyrFobaN9aEs2C0eOaPWZK1R1+WZh6jtrHblETiY6zTLx9G+PAKT8sfKW/k9ZGiRa+vaDDaxdAVcIksYAAAAAAAAAAAgFhC0hbjQu2vFMmhKJTKninatXa5ny3JsctmCGw9PJ3O6XEc2x5JDh5QdQtmWbCpIkScvs5tDE5cZW3ap7XV2eZ/ZWaHgcGnKMLWd1a48Ams2dR60pfxxoedp3BKWaRuQAuQNhgLOAAAAAAAAAAAAfQlBW4gLvastaGsLBUrrnKHAZ25bUPWHhs9JIjmL9YSyE8ikl9cPzxwulgGjl5r0HT+2O3xy0NWWFsq0HZMxQm0XpFvEMqOtPAJrNIQmPpM6ybRlxoZN8r6NcqYtc/pCwWMAAAAAAAAAAIC+hKAtxJ7PRXqvXNYgaAtNGFYXlmlronJHOb236z1x36Az0PFlx6uPD0+Xg7ZshymULauolrLl/Rsr1XVHjxhPx08sosklaXTa1JJ25RGI6nShoC1ZQhORdQjatmXaKuURGIK2AAAAAAAAAAAQKwjaQuw55CxbFtBm2mpq2makSHTb4tvI6ZczWI/f53jKs4YCvEqmLdtuCgVemdeYRm6ycqiVHNIesa7IVkSZljR66tzJ9OzZ+1JhhrUt0zYU8N1kGKW2pYJQOQQhZwRJenlbY8NmsUzl0g5tELQFAAAAAAAAAIBYQdAWYs9RrTaDKZpMW4ecaau37qK3q/5Cv9T/Iu4XpxTTrdNvDdvF8IxQ0HaLyRz2mNMs71NnriOf5BbtUVmhgKxWhibTdrF+fwqc9DQ1Hv0UUcm08A0NZvJn7iOaxqbtRAFfWKatwxeaEA0AAAAAAAAAAKAvdRxnDtDHdM5Q0NaXkk/Lt9ZTocVPtQ4vmXO/JEvB57SuRX7cpDPRH/b7A6Wb06mVQuUThqWHJhXbbJKzZhUtRi5zECRrkVxagU3MmxjxWLSZti2tEkmTz6PWujpKj7CtP2cUmRo3ky7oI2rcFlbTVgRtDT09EwAAAAAAAAAAAN1D0Bbimmn7+R4D3frtMhqRa6VUq5lMWcvVx/JS8uiaMdfQ6IzRHXZRlFpEFr2FWoOttLNdeYQGXQ6Zcr4jY+o2cT/fmk/njTmPvPZQ+QWF0aAnm1lPLm+Q7K3+Lg87kDVSbevqt1KqsV15hPDYMQAAAAAAAAAAQJ9AeQSIOZ2jRm0vqZNLG2yr99CGqmbSmZrF/SGpQ+jDUz6kgwsPjvxB1empNLVUtKtMRD7NYzv06WTJ/1R+LtLR7yf+njLaTSymlW6RU2RbWgNdHrc/K1SSgeq3hAVtHW0TqwEAAAAAAAAAAPQ1BG0h9jRB2/WONLXt19lJp5MDp6W2UjIbwmvVtjc0dahYBnVEe0yhJPFVeh3p9HLW7DFDT6QpuVO63E+6Rf5ZR2uAJEnqdDt/llzTlukatoZNRIaatgAAAAAAAAAAECsI2kJcyyPUSllqW2dsUttc0qA7Zallanu7pkTCNgplzO5fNLXb/SiZtr6ARB5fsNPtApmhTFtd/ZawichEeQQAgAHKE/DQh9s/pF2OXf19KAAAAAAAABABatpC3CYiC5KeGjRTfulNoaBtYUpht/vhEgqKHZpM23K9R22P0GTHdkY7GVmzx9fpfwLJnEZSWiHpOOjcsLXjRGQAAAPUK1teobd3vE1Z5iz6sPTD/j4cAAAAAAAAaAeZthC3TFu7MVsEbhU6U6PaLrAW9Choq820bdSHAqjDMzR1aLvJtGUtbm113AhyRsnH6qyltGColAIybQFgIFvVsEosm7xNtLwmNCEkAAAAAAAAJAYEbSG2pCCRo1Y06zSlEdpn2kYTtC2zhcoj7GrLtJVIR9624K8+mEZZlvDniCQtLGjr7/rwc+WgLctwyq+DIdMWAAYqruVd7ipX7y+pXNKvxwMAAAAAAAAdIWgLMaXzNJFOkmvO7vZlhD/Ww/IIKcYUshkyRbvCKAdtW1LzSGeyy49TUVTH1L48Qlek3JFqO91RpbYRtAWAgaqxtZGc/lBd7h8qf+jX4wEAAAAAAICOELSFmDK4atR2dVAOuJoMOvnD1xa01esMlG3Jjmp/uRY5MFtjMBCHWzfb8tTHMg3FUe2jR+URNJm2qS27yaSXyzKgPAIADFS7WsInH9vesp1q3KHf1QAAAAAAAND/ELSF2H7AXHVqu5bkoO0RYwvCgra5lnwy6EKB1K4U2eSgbVCnoyqjgTZaQxOb5ZlLotpHujX0XM09KI9gaNpBqaZU0UamLQAMVLvs4UFbtqJ+Rb8cCwAAAAAAAESGoC3ElN4VqgNb01bT9uTJxWQwtJLO4Bb3i1Ojy5BlZemlanudpZBWZI5W7xdZQxOVdSXDoimP0F2mbeZQkvTy9sbm7ZRukoPEyLQFgGQK2i6vx2RkAAAAAAAAiQRBW4gpgyZoW9sWtN2vLJOG5nnU9WXp0WXIsn2yQpORPZpxEW2VQkHXoanRBW21E5HZu6lpSwYTBTLk/Rqbd1KqySbaDq9DTOYDADCQg7b6tm4AZ9oGeeJIAAAAAAAASAgI2kL8yiNImZSe1kJvbPkbjRu1QV1f0oNM2+EZoaCtPVBHda17RFsKGmhYRnGfl0dg/szhYqnzeyhVJ9e09Ut+8ga9UR83AECi2GnfKZZclmZK7hTRbvG1UIOnoZ+PDAAAAAAAABShceIAMaB3a2vaZlFa0cf06vqVYdsUp0UftC3RZOW6qYakQJVoB715lGuz9Lw8QneZtrxvW77aTtOb1bbL74r6uAEAEgGPENht3y3aJWklVGgtVB+rc9dRHoUmdwQAAAAAAID+g0xbiO0HzN2othukDHKYwgO22snFolGSGgraBiybSSI5UzbozaesFGOPyyO0dFfTloMcbSURxM/q5Uxb5vQ7oz5uAIBEUN9aT26/XE98aPpQyrHkqI/VukPlbAAAAAAAAKB/IWgLsf2AtTaLpV/Sk51CAU+totTog7YpxhQySGmirTM61PUB97Cog7YWo17cWIvH37OgrS70HAjaAsBAU+4qV9vD0odRrjVXvc+ZtgAAAAAAAJAYELSFmNK1NollE6WRziy32yvuQU1bZo0wfNfq25dMhug/zpkpcgC5OZpMW2MoaJuqCz0HgrYAMNCUO0NBW860zbUgaAsAAAAAAJCIELSFuGTaNkuppDfVd3h8Wu40kT3bE+mG8KBt0J9G2eahPdpHRltWbksUE5EFtZm2Uui/DGraAsBAzrQdmjGUcsyh8gjItAUAAAAAAEgcmIgMYifgI73XoWbaZme2UGvbQzdPuJkOHH4gpXpTe7zbLFMBVbVqnsY5kvJSrT3aR6ZVzrR1+wLkCwS73FYyhY4xTQqtR9AWAAaaPa49YeURmvyhERB1HpRHAAAAAAAASBTItIXY8chZtqxJSqPMjND90tRSGpk1koz6nn9vkG8JzXbOAs5RlJNq7tE+MtrKI7AWTyDqmrapUihqi/IIADBQyyOYdCYqtBVStiVbfazWhYnIAAAAAAAAEgWCthA7nka12USpZDSH7hen9KyOrVaRLTxo63eOovHF6T3aR4Y1FCx2tEYftE3XZOUi0xYABpKgFKQKd4VoF9uKyaA3kElvoixLllhX60bQFgAAAAAAIFEgaAux4w4Nu22W0qhVVyPaVoM1bPKbnhqimbgs6M2lbHM+XTJ7WI/2oUxExuyt/qiDtmnB0LbItAWAgaTKWUW+oDz5Yllqmbo+PyVfLOs99SRpRhMAAAAAAABA/0HQFmJG5w5l1jZIqdTsqxbtsrQy0ul0vd7vqMwyCvoyRdvXPIWuPbiM0ttq1Ma8PIJfDngwZNoCwECyy75LbZfaSjsEbTmga/fZ++XYAAAAAAAAIBwmIoPYcTeozSqjkfySHPAckj5kr3ZbkplKvt3XU8BYQSPS9qNjx4VmP49WZkroo2/vtjyCZiIyTdAWmbYAkAxB27yUPLVd31pPI2hE3I8NAAAAAAAABkGm7TPPPEPDhw8nq9VKBxxwAP3444+dbvvSSy+JrE/tjX8O+rY8Qp1mnrCy9NCw3N5INRvoiTMOojNGH0QvX3wA6XuRtZth7WV5BJ9HbSNoCwADNWirLY+gDdo2tIa+bAMAAAAAAID+k3SZtv/+97/ppptuovnz54uA7RNPPEHHHHMMbdy4kQoKCiL+TEZGhnhcsTdD9yFyeQRHSmgCryFpe5dpy44eX0jTCgyUl26hutaeD+fVlkfoLtM2aNSUR/C51a86UB4BAAaSnS07u820RdAWAAAAAAAgMSRdpu28efPoiiuuoEsuuYTGjx8vgrc2m41eeOGFTn+Gg7RFRUXqrbCwMK7HnKwkTdDWZQ2VFdjb8gh9IdOqKY/QTU1bMlpJIjmQb/a5yKK3iDYybQFgIGbatp8Msn15BAAAAAAAAOh/SRW09Xq9tHz5cjryyCPVdXq9XtxfsmRJpz/ncDho2LBhNGTIEDrllFPol19+idMRJze/MzTM1mN2JVbQNiX68gjEmdfmtrq2XifZ2jJvkWkLAAOFP+inCkeF+jtYO6Ik3ypPRMYQtAUAAAAAAEgMSVUeoa6ujgKBQIdMWb6/YcOGiD+z7777iizc/fbbj5qbm+nRRx+l2bNni8BtWVnk2qutra3ipmhpaRHLYDAobrHE+5ckqcMy0rr+Xvod9STnpBK5jfI5MuqMIkDQ7G7u19eSbjGEZdp2t70I2nodImibasyjRm+jCNp293OJ8D701TIRjgGvJbnfl2R8TYlwDLysclWRX5K/oBqaPjTs8Vxrblh5hER/Lcn0viTja9mb/g0AAAAAACRp0LY3DjzwQHFTcMB23Lhx9Oyzz9L9998f8WcefPBBuvfeezusr62tJY8nNFFVLPBFDQeXecnBYuW+QlmXCMsUe504poCkIzfJ7XxzPjXWN3b6c/F6LUZNuYZGp0e8d11tn6+3iv8sUqudLLpQeYSamhqy2+39+lriscRrSYz3IZnfl2R8TYn0WjbWhuq25xnyqKmpSX3cmhqafLPGWRPx92EivZZkel+S7bVw4JZHOPUG/y0FAAAAAIAkDdrm5eWRwWCg6urqsPV8n2vVRsNkMtHUqVNpy5YtnW5zxx13iMnOFHyhwqUV8vPzxaRmscQXRjysNTc3V1wY8ZLv84USP7+yLhGWJr98AbbdkEYBnVe0y9LLujzOeL2WnJwcMujXUCBI5Aroun0+fUoGUQuRzuemdEs6kZNIIolSs1PFZ64/X0s8lngtifE+JPP7koyvKZFeS/PuUHBvbOFYysrMCns8zZhGDr+DWgItEY83kV5LMr0vyfZalOPoDas19OUBhHvmmWfokUceoaqqKpo8eTL99a9/pZkzZ3Z6mt5++226++67aceOHTR69Gh6+OGH6fjjjxeP+Xw+uuuuu+ijjz6ibdu2UWZmpigj9tBDD1FJSQlOPQAAAEACSaqatmazmaZPn05ffvllWJCT72uzabvC5RXWrFlDxcXFnW5jsVhEcFZ7Y3yhEo8bX6S1X0Za199LY6scJNhobKsHS0QltpJufy4ex8aB1gyLUS2P0O0xmdPEtrqgjzJN6errafI29ftridcyEY4BryW535dkfE2JcAy8LHeVq7+3hmcM7/B4jiVHPNbgbej0uPv7NSTj+5KMr2VvbtDRv//9b5EocM8999CKFStE0PaYY44RI30i+f777+m8886jyy67jFauXEmnnnqquK1du1Y87nK5xH44qMvLd999lzZu3Egnn3wyTj8AAABAgkm6HjJ3bJ9//nl6+eWXaf369XT11VeT0+mkSy65RDx+4YUXikxZxX333UefffaZyDbgzuv5559PO3fupMsvv7wfX0USCAbI3JZpu82UEha0TRTpVkN0E5FxWQRlIjIu8WDKVNvVrvCsbgCARLTHtUdtD80Y2uHxLHOWWHoCHmoNhGq2A0D/mjdvHl1xxRWiHzt+/HiaP38+2Ww2MR9DJE8++SQde+yxdOutt4pyX1zqa9q0afT000+Lxzmz9vPPP6ezzz5bzOswa9Ys8RhP5Ltr1644vzoAAAAAGDTlEdg555wj6vHNnTtXDCObMmUKffLJJ+rkZNwh1WZzNDY2is4wb5udnS0ydTlLgTvG0Hs6bwvpSJLPudHEOcyiXZKSOEHbNLMctHV6gxQIysfaKU3QNs8YyrStddXS8PThsTtIAIA+UOGqEEub0UbZlmyqd9SHPc7rFTzJIgD0P6/XK4Kp2mQD7sNyOYMlS5ZE/Blery3hxTgzd8GCBZ0+D9dG5kzprCz5yxsAAAAASAxJF7Rl1157rbhFsnDhwrD7jz/+uLhB39J7QvUTy026hMy0zbCGPv6n/O17Kkoz0t/Ol4cId6DNtNWHghs17hqiUAwXACDheANeqnbLowLKbGUiONNeqqaMjcPnIBuFfs8BQP+oq6sTZbuUxAMF39+wYUPEn+EkhEjb8/pIeALd2267TZRU6GxehtbWVnHTzuWglCDjGwAAAAD0TLR9qKQM2kL/07fVs2W1JjmLVUc6KrJFNyFcPKRb5ExbtqHKQXz5s2RbPU3I0XUTtNXMtO6KXFMOACBR7HbsFhMnslJbacRttJm2Tp8TQVuAQYAnJeMyCTyZ3d///vdOt3vwwQfp3nvv7bCeR7Zx0BcAAAAAesZul8uJdgdBW4gJXWuT2m40+cSy0FZIZr05Yc54uibTVlHV0koTciLMYG0KBW0LNK9BZNoCACSwXS2hOpWlqdEFbfMN+XE5NgDoXF5enpg4tbo6vH4+3y8qivwlOK+PZnslYMvzOHz11VedZtkyLs+gLbnAmbZDhgyh/Pz8Ln8OAAAAACKzWiPEnSJA0BZiWh6hWa+jVoNcz3ZI+pCEOtuGCNPwtbg5wGztciKyPCmUoYtMWwBIdLvtu9U2l0eIJMWQElYegUK/5gCgn5jNZjHXwpdffkmnnnqqOpSO73dWBuzAAw8Uj99www3qOp54jNe3D9hu3ryZvv76a8rNze3yOCwWi7i1x/V1tfNEAAAAAEB0ou1DIWgLMc203SMmIaOEDNqWZHS8AGl0eSNvrAnaWgJeMZFPY2sjgrYAkPB22neq7c7KI2hr2rp8rkjfXQFAP+AM14suuohmzJhBM2fOpCeeeIKcTiddcskl4vELL7yQSktLRQkDNmfOHDrkkEPoscceoxNOOIHefPNNWrZsGT333HNqwPbMM8+kFStW0AcffCBq5ir1bnNyckSgGAAAAAASA4K2EBN+pxy03W0KfcSGpCVW0PbQUVn03tp6Km90U0Au90gNTrmUQwfmNLWp87mowFYggrZ17joKSpiEAwAS1y57z8ojiExbAEgI55xzjqgdO3fuXBFcnTJlCn3yySfqZGO7du0Ky9SYPXs2vfHGG3TXXXfRnXfeSaNHj6YFCxbQxIkTxePl5eX0/vvvizbvS4uzbg899NC4vj4AAAAA6ByCthATflejWO4yhj5iZemRh+X2l+IMC311069p485KOuH51VFn2oqgbUoBbWzcSH7JT03eJiqggngdNgBAr2raZlmyKN2UHlVNWwBIHFwKobNyCAsXLuyw7qyzzhK3SIYPHy4mHgMAAACAxIdCVBATQWd9x0zbBCuPoMiwhoo3Nrp8UQRtnSLTVlHnqYvtAQIA9JLb71YnTByaPrTT7RC0BQAAAAAASCwI2kJMmBwVYlmhybQtTYs8LLe/mQx6SrMYu8y0lUzhmbb5ttDM6nWtCNoCQGKqcMm/i7sL2mpr2qI8AgAAAAAAQP9D0BZiIsUtBwrK2yYi4yyuNFOoLmyiybbJx9kURaatvq08gqLeI2cVAwAkmnJXeVRB2xRDitpGeQQAAAAAAID+h6At9D2fm1K99cQV02oMcumBAmti13zNSZVnS25y+ygQlLouj+B3UaFNngCE1bbWxucgAQD2Img7LGNYVOURXH4XzjMAAAAAAEA/Q9AW+l7zbrFo0OvJ1/YJy7eGygkkcqYtz81hbw10PxEZatoCwABQ6apU22VpnU8GifIIAAAAAAAAiQVBW+hzuragbZUxNMFXomfaZtvkTFvW5PZ3H7TVlkdoRXkEAEhM2prbRalFnW5nNVhJRzrRRnkEAAAAAACA/oegLfS9pp1iUaWZhCzhM21T5UzbToO27SYiSzenk0VvEffrPJiIDAASk1Jz26gzUpYlq9PtdDodpbb9nkPQFgAAAAAAoP+Fomp97MsvvxS3mpoaCgaDYY+98MILsXpa6Cc1Di/9+avVVJSqo2tpK2W0y7RN9KBtVkoo07Y5UtBWbyDJaCWd30M6n1MEOHKtuWJmdm0mGwBAIlF+P+Vackmv6/p7Wp4s0uFziBsAAAAAAAAkYdD23nvvpfvuu49mzJhBxcXFIsAFycsXCNLt/9tK66rlyWtOKNhAk4mo2jBwMm1zNJm2zZ4IQVsiChptZBBBW/l15lnyRNCWJ+1BZhoAJBqP30MtvhbR5i+ZumMzyZOR4fcZQDin00kPPfRQp8kI27ZtwykDAAAAgIERtJ0/fz699NJLdMEFF8Ri95BgnvoqFLAVmnaJwhsVA6k8Qnc1bXmSMg5oeBpE0FZq95pqXDWUTulxOVYAgGjUumvVNn/J1B2lPILb76aAFGFCRoBB6vLLL6dvvvlG9GuRjAAAAAAAAzpo6/V6afbs2bHYNSSYtZVOmr9IzjAppVpykpWG6GrE/d1GuebrwAjadp9pK4K2XCnB76JA23BjRY27htKNCNoCQOLgL5MUedbug7ZcHkGbpQsAso8//pg+/PBDOuigg3BKAAAAAGBgT0TGGQlvvPFGLHYNCebzjQ0kSUSH61fQd9Y5tMhyA+Xo5HqI1W2ZttmWbLIYQgHcRJSdGk2mrZyFxnVtKRgIC4JogyMAAImAv0zqSdBWybRlTr8zZscFMNBkZ2dTTk5Ofx8GAAAAAAwyMcm09Xg89Nxzz9EXX3xB++23H5lMoSxGNm/evFg8LfSD7Q1usTzf8IVYZujk+5yJ2mjgIgJERalFCf/e5Ggybbssj6DwOcOGG4ugLc++BgCQIGpdvSuPwFwBTckbgEHu/vvvp7lz59LLL79MNpumLwAAAAAAMNCCtqtXr6YpU6aI9tq1a8Mew6RkyWV7g4dM5KdZhvVh62sNBgq2zT9XaCukRJeZoimPEE3QttURNrGPtnYkAMCAzLQ1aoK2fgRtARSPPfYYbd26lQoLC2n48OEdkhFWrFiBkwUAAAAAiR+0DQQCdO+999KkSZPEcDJIXnaPn2odPpqh20I2ag17rMpoUNsDIWhrNOgp3WIge2ug05q2QbOmZq3XHpa5Vu2qjsdhAgD0rqZtDzNtUR4BIOTUU0/F6QAAAACAgR+0NRgMdPTRR9P69esRtE1yW2vl2rUH6X/p8FhVWz1bVmRL/PIILDPFKAdtO8u01QZtPS2UYxlCep2eglIQNW0BIKGDttqJE6OZiAyZtgAyv98vRoldeumlVFZWhtMCAAAAAAN7IrKJEyfStm3bYrFrSCBba+WJamYbQkFbx5QrxLLSGrr4L0xN/ExblmWVA80trQHyB4JdBm11nmYy6o2UY83pMAwZACARKL+XsixZZDaEJluMJtPW7ZfrkwMMdkajkR555BERvAUAAAAAGPBB2wceeIBuueUW+uCDD6iyspJaWlrCbpActtQ4yEYemqbbLO5LOSPJMesW8l++kLaPPW1AZtoqmt2+Do8HLdpM22axKEgpEMsGTwMFgjz9GgBA/+MRAEqt7fyU/Kh+JmwiMtS0BVAdfvjh9M033+CMAAAAAMDAn4js+OOPF8uTTz45bOIxSZLEfa57CwPfllonzdRvIJNOfj+l4b+SHyiaRDt/fkLdrjStlGgAzGmTpQnaNrh8lN3uKw3JnBG609oWtLUV0LqGdSJA0uBtoEIaGFnFAJDcmr3N5A/61d9T0UBNW4DIjjvuOLr99ttpzZo1NH36dEpNDX3BofR3AQAAAAAGRND266+/jsVuIQEzbc/Vb1DvS/scIpYcwNzYvFGto8gBgzpXHQ2koG2j00vZmsRaFrRkdJppy+o8if8aAWBwqG+tV9va31NRZ9oGBsA3bQBxcs0114jlvHnzOjyGZAQAAAAAGFBB20MOkYN3kLw8/iDtaXLTGGO5uk4qnkLkJ9pl36XOPL5v5r40UKRZDGq7xeMnStd3WdO2fQYbgrYAkCi0v496k2mL8ggAIcFgxzr3AAAAAAADMmi7aNGiLh//9a9/HYunhTja1eAhSSIapdsj7geNKUSZZUT1DbS2bq263YAK2ppDQVtHKw8rNneRadvSMWjbikxbAEgM2t9H0QZt00yhCSQRtAUAAAAAAEjCoO2hhx7aYZ22ti1q2g58Oxo8ZCEvDdXJs5MHskeQTidnpq6tDwVtx2aOpYGYaWv3dAzaajNtqTVC0BblEQAgQexw7FDbmIgMYO/cd999XT4+d+5cnGIAAAAAGBhB28bGxrD7Pp+PVq5cSXfffTf96U9/isVTQpztbvLQCF0lGXSSuO/PHkWmtsfW1a9TtxuTMWbAvDep5vZB257VtNXWkAQA6C81rhr6eM/Hom3Sm2hC7gQKOrof3p1qRHkEgEjee++9Dv3a7du3k9FopJEjRyJoCwAAAAADJ2ibmZnZYd1RRx1FZrOZbrrpJlq+fHksnhbiqNHtp9G6UD1bJWjrC/poQ6M8OdnwjOFhw20HUtDW0err8LhkTiOJdKTjf1tR0xYAEtNza54jb9Ar2icPOZlyrDlU5+i+fIvJYBJBXv49jvIIACGceNBeS0sLXXzxxXTaaafhVAEAAABATITPtBRjhYWFtHHjxng+JcRIk9tPo/RyPVvmzx4pltvs28QFP5uQM2FAnX9teQRHa6DjBlz+wZIelmnLE/fYDDbRrm2tjdORAgBEtse5hxZsXaBmzp434rwenSol29YVcOEUA3QhIyOD7r33XjGKDAAAAABgwGTarl69Ouy+JElUWVlJDz30EE2ZMiUWTwn9ELRtn2nLNjaHgvIT8gZu0Nbu6ZhpK3CJBK5n2zYRGcuz5tEu5y6q99SLzzoAQH95ecvLFJDkL50uHH8hZZo7jnzpCn8J1URN5PQ7Y3SEAMmjublZ3AAAAAAABkzQlgOzPPFY+wDWrFmz6IUXXojFU0I/lkeQDBYKpJeJ93th1UJ1m4m5EwfU+9JdTVvBmknUskfNtGU5lhwRtG0NtiLQAQD9ZkPDBvV3cJY5i/5v7P+Ru9ndo32km9KJ3EROn5Pc/p79LECyeuqppyImI7z66qt03HHH9dtxAQAAAEByi0nQlidn0NLr9ZSfn09WqzUWTwf9wOF003BdlXwnbzSR3kBLq5bSmsY1YtWQ1CE0Pmc8NTaET0qXyNKiDdpypYRAK5G/VbSzzdnqw/Xuekql0GQ+AADx8tef/6q2fzPiN6J8i5sjsD2wT/o+tLFlIwUpSJubNlMJlfT6ePxBP1U6K8nldVEe5fV6PwD97fHHH4/Yr73ooovojjvu6LfjAgAAAIDkFpOg7TfffEPnnHMOWSyWsPVer5fefPNNuvDCC2PxtBAnnGGS7d1DRpM8G7mUt69Y9/fVf1e3uWDkBWTQh4KgA4HRoCOrSU8eX5AcrZGDtpI1g3Rtbb2XSySUUrYlFLRt8DRQqh5BWwCIr7WNa+n7yu9Fuzi1mE4YckKv9jMqYxRReShztySn50HboBSk2xbfRp/v/JwkkkfczPv1PJqUMqlXxwTQ39onIwAAAAAADNiJyC655JKINb7sdrt4DAa2Fo+fRkihScikvDG0rG4Zra6TaxmPzBxJhxQdQgNRusXYdaatJVQfUse1bdtn2nrqY32IAAAdfFv9rdq+ctKVZNabe3WWRmeMVtvrGtb1ah+rGlbRZzs/UwO2jL/UQ81vGKguvfRS0Ydtz+l0iscAAAAAAAZM0JYvzLimbXt79uyhzMyeTYoCiafB6aV9lNIILG8MfbTnI/XulftdSXpdTD5aMZdmbQvatnZdHoHpvfIFXJYlKyzTFgAg3pTSNDrS0WFlh/V6PyPSR6i/vznTtje+qfpGbVsNclkkLrWwrql3QWCA/vbyyy+T292x1Aive+WVV/rlmAAAAAAg+fVpeYSpU6eKYC3fjjjiCDIaQ7sPBAJieNmxxx7bl08J/RS0zdXJWabMYc2iH+t+VCe/Obzs8AFVyzZSpi2XRwi2m0ivfdA2UqYtgrYAEG88adjWlq2iPTxtOGVYMqjOXterfXGQdUTGCNrSvIW2Nm0lb9Db4zq2i6sXi7ZFb6Ebp91ID/70oLj/v93/o0NGD8xRGDA4tbS0iEQEvnGmrXZuBu7XfvTRR1RQUNCvxwgAAAAAyatPg7annnqqWP788890zDHHUFpamvqY2Wym4cOH0xlnnNGXTwn9FLTN1oWGCS5ybFMv7H9V+KsBV8tWK91qEkuO17q9cs1eLSks09ahBqoVKI8AAPHGpWl44jA2MXviXu9vbM5YEbT1S37abt9OJQUlUQWOm73NtKV6CzX75PJIM/Nn0skjTqanVz5Ndr+dFlUvokbPwPxCDwanrKwsNRlhzJgxHR7n9ffee2+/HBsAAAAAJL8+Ddrec889YsnBWZ6ITJuRAMmj3umlMpIDluzz2mVqe6DWsm1fHoE5vYGOG1gy1KZOTESGTFsA6F8ralao7b4I2o7LGUcfbP9AtLe0bKGD6KBOt/3P5v/QC2teoEp3ZYdyMfz3wGq00tGlR9M7O98hX9BHH+34iI7JO2avjxEgHr7++muRZXv44YfTO++8Qzk5OWHJCMOGDaOSkp5P1gcAAAAAEPegreKiiy6ipqYmeu2112jr1q106623io7uihUrqLCwkEpLS2PxtBAnDU4fTWrLtG3RGei76p9EO9ea2ycBg0Qoj8AckYK22kzbtvII2iBFvRsTkQFAfK2sWam2J2VP6pOgrWJzy+ZOt3P73fSXZX8RwVhFU2uTWmZhZt5M0T6q5CgRtFWyghG0hYHikEPkL6K5vNfQoUMjztcAAAAAABArMZktavXq1WIY2cMPP0yPPvqoCOCyd999l+64445YPCXEUYPLSzkkB22/zshWSyMcOfRIMugGbmmE9pm2jtaug7a6tonIeJb2dHO6aKOmLQDEE//+XVu/VrRLUkso35q/1/vcN3tfMaFZd0Fbzq5VAraFtkIqtBaqjx1adiilGFNEe1jaMDLq5d+tW5q27PXxAcQbZ9QuXryYzj//fJo9ezaVl5eL9a+++qpYDwAAAAAwYIK2N954I1188cW0efPmsBIJxx9/PC1atCgWTwlxrmmbpZPLI6xKSVXXHzak9zOWJ2SmbYSgraQpj6Bk2ipZxgw1bQEgnjY3b6bWQKtoTy2Y2if7tJlsVGqTR8TscOwQw8MjqXBVqO3TRp1GL/zqBfrDzD/QaUNPo5um36Q+xgHbfTL2Ee2dLTt7PLkZQH/j0gg8V0NKSooYNdbaKv+fa25upj//+c/9fXgAAAAAkKRiErRdtmwZXXnllR3Wc1mEqqqqWDwlxFGL00npOrdo7zSHgpyjs0YP+PchvbuathEybVmOVa5z5/K7yBPwxPowAQCE1Y2r1TMxrWBan52VEptcp5MDrHWeuojbVLrkOrZsSNoQMergzNFn0jXjrqH8lPCMX+XvQ0AK0G7Hbrx7MKA88MADNH/+fHr++efJZJInLGUHHXSQCOICAAAAAAyYoK3FYqGWllAWomLTpk2Un7/3Qzehf/kdDWp7l17OwEozplG2JZsGujRL9EHbSJm2rLEVs6MDQHwsr1uutmcWyjVk+0JRSpHaLnfIQ8Hbq3CHMm3L0su63N/IrJFqe7tje58cI0C8bNy4kX796193WJ+ZmamWAAMAAAAAGBBB25NPPpnuu+8+8vnkWnc8ccOuXbvotttuozPOOCMWTwnx5JQn2/LodFSl84t2WWpZUkzQkd5dTVuLXLu2s0xb1uhF0BYAYs/lc9EvTb+IdklKSbeB054othWr7QpHKDjbWXmEsrSun1s7EoNLLgAMJEVFRbRlS8d6zFzPdsSIEf1yTAAAAACQ/GIStH3sscfI4XBQQUEBud1uMfvuqFGjKC0tjf70pz/F4ikhTri2od4jZ9ruMoYCnBy0TQZhQdtImbZ6IwVNqV1m2jZ5kXUDALG3vGY5+SX5i7PpedP7dN/aTNs9jj1dlkewGWzdjrQYlTVKbW+3I9MWBpYrrriC5syZQ0uXLhVfUFdUVNDrr79Ot9xyC1199dX9fXgAAAAAkKRCEao+xMPFPv/8c5GBsHr1ahHAnTZtGh155JGxeDqII7cvSKmBFiID0Q6TJmhrS76gbcTyCMpkZD6nyLRVpufJTUF5BACIryWVS9T29NzYBW0jZdr6gj6q9lSrWbndjbQoshWRzWgTdb9RHgEGmttvv52CwSAdccQR5HK5RKkELgXGQdvrrruuvw8PAAAAAJJUTIK2ioMPPljcFDxZw9y5c+mDDz6I5dNCDDW5/ZSjk8sC7NRMxpEsmbZhNW0jlUcgoqA5nQxUKTJtlS1QHgEA4u2Hyh/E0qAz0JScKX267+KUUHmEcmfHmraVzkoKSsGwScu6wkHd4WnDaV3TOqr11IqAs73FTkflHtWnxw0QC/z5/cMf/kC33nqrKJPAyQjjx48XI8h4RFlKSgpOPAAAAAAkfnmETz/9VGQe3HnnnbRt2zaxbsOGDXTqqafS/vvvLzIVYOBqdPspm+SgbXJm2pq6rmmrZNryRVyglcjfKtoojwAA8VTjrqHtLXKZgUl5kyi1rWxLX+H9ZZrliRf32DuWR9CuiyZoy/ZJ20dtX/PVNXTbstto4Z6FfXK8APFgNptFsHbmzJlkMplo3rx5tM8+oc81AAAAAEDCBm3/+c9/0nHHHUcvvfQSPfzwwzRr1ix67bXX6MADDxSTOKxdu5Y++uijvnxK6IdM22ydQ7R3aDJto71oT3Tplm5q2nKmrUUOZAiu+g5B28ZWTEQGALG1qnGV2p5VNCsmz1GSVqIGiLkcgpa2zi1PghaNfdI7BrcWVyze6+MEiJXW1la64447aMaMGTR79mxasGCBWP/iiy+KYO3jjz9ON954I94AAAAAAEj8oO2TTz4pgrV1dXX01ltvieXf/vY3WrNmDc2fP5/GjRvXl08H/aDR5aNstTyCUa1VmGJMjqGBVpOeDPquM22DtvzQHYdc0xHlEQAgnipcoTqzY3PGxuQ5ytLkERRcBqHGUxP22G77brXNNW2jMSFrQod16xvW7/VxAsQKl/T6+9//TsOHD6cdO3bQWWedRb/97W9FsJazbHndbbfdhjcAAAAAABK/pu3WrVtFh5adfvrpZDQa6ZFHHqGysuQYOg9EzZ4AjSI7Nen11GwwiFMyNGNoUtWtSzUbqMUTIJc3cimPQGpBaHtHFVHOELIarWIGdVfARU3epjgeMQAMRpWuyvDgqr/vn6M0rVRtV7mrwjJqwzJtoxxpMSpjFN134H20rXYbLdi9gJpam2hL0xbyB2Nw8AB94O2336ZXXnmFTj75ZDFabL/99iO/30+rVq3qdvI9AAAAAICEyrTlyRhsNptoc2eWZ9YtLo4uAwcGBpc3QFk6e1g92+HpwymZpJkNXZdHsIWCtmSvUptZliyxbGhtiPUhAsAgx0HU9mUM+lpJaknE59PWtDXqjZRnzYt6nyeNOIn+b+T/0YHFB4r7XHZhp2Nnnx0zQF/as2cPTZ8+XbQnTpwo+rVcDgEBWwAAAAAYcJm27B//+IeYTZdxNgLXt83LC7+gu/766/v6aSFOnN4A5ZCdVmjq2Q7LGJZU5z/N0ha0bQ2QJEldZ9pqgraF1kIxZNnpd1Jza3OcjhYABqNKt5xpm23OFuVpnOTs8+coSw+NkqlyhX7XcbkEJdO2NLWUDDr5d2ZPcEmHj3d8LNqb7ZvpADqgT44ZoC8FAgEx+ZiCR5ApfVwAAAAAgAEVtB06dCg9//zz6n2efOzVV18N24azExC0HdhBW56IbI8xdBEzJH0IJRMuj8D8QYla/R1LJARthR1q2ipDhFc2rBTtXfZdVERF8ThcABhkPH6PmtEfbT3Zvsy05S+nPAGPaO+T2XFysWiMyw7VuN/SsmWvjhMgVviL24svvlhk2DKPx0NXXXUVpaamhm337rvv4k0AAAAAgMQO2vKEDJDcPK0eSte5qUYz8VghBzEjVxIYkFLbMm2Zo9XfZaYtcU3bNpxxphBB2zQEbQGg71U4Q5OQFaXE7vdMcWox6UhHEklqZm/7IGtvJ0HbN3tftb25ZfNeHilAbFx00UVh988//3ycagAAAAAYuOURILnp3fKw/5q2SchYfko+BRyBpKtpy+weP6W3e1yyZpGkN5Iu6A8rj1BqCw/azkybGZfjBYDBpdxRrraLU2KXaWs2mKnAWkDVnmra5dylThi2xb4lYsZsT2RYMkTAmTN4t9m3USCYPH9DIHm8+OKL/X0IAAAAADCI9elEZJD8jN5GsawxyoFNk96kTsCVbDVtWZPb13EDnZ4orbBjpq02aNuyK8ZHCQCDlTZoG8tMWzY+a7xYcjkEJVirzYztbaYtG50xWt33+ob1e32sAAAAAAAAyQRBW+gRsy880zbXkpt0syiXZsq169gvFS2RN0qXAyU6Zy1RwKfWluShxGy3Y3c8DhUABnumbQxr2rLJOZPV9qqGVaLGp1IeIcucJUZa9NaojFFq+4JPL6Arv7uSGjxyrV4AAAAAAIDBDkFb6BGrr4ladUTNmqBtsplcEpoZevlOObO4PUlTr1bvrhNLs95MRalFankEDm4AAAzkTNuwoG3jKqp2VVOLT/4ya1T6qL360m567vSw+9sc2+itTW/txdECAAAAAAAkDwRtoUdSfC1h9WzzrHlJdwbH5NsoxSS/xuU7m7rMtGUGZ43aHpo+VCztXrsa2AAA6EvlTjloa9QZY/47mMu+5KXIz/FL0y+0pn5NxEzZ3tg3c196/sjn6YxhZ6ijFD7d+Sm+8AIAAAAAAIhl0Hbr1q1011130XnnnUc1NXJQ6+OPP6ZffvkFJ36A4sxRa8BONYbQ/HXJmGlrNOhoclmmaFc0e6ja7u0609ZV2yFoy8pdoWw4AIC++j1cbpd/txSnFpNBF/oSLRY4k3b/wv3V2rPvbXmvQ03avTGjcAZdNfYqmlYwTdzf0bKDttq37vV+AfqS0+nECQUAAACA5AjafvPNNzRp0iRaunQpvfvuu+RwOMT6VatW0T333BOLp4Q4cHkDlK5zUW3bJGQsz5J8mbZs+rDQ5GqrK+TPb2eZtnpntdpG0BYAYsnus5PTLweQStNCkx/GEgdWFUsql/RZpq3WMcOOUdsLqxZSIuPyN0p9XxgcCgsL6dJLL6XFixf396EAAAAAwCASk6Dt7bffTg888AB9/vnnZDab1fWHH344/fDDD7F4SogDR6ufMshF1ZryCLnW5Mu0ZdOHZavtVZGCtmmhyX8Mro7lERgybQGgr1W6K9V2vIK20wvCa8+yNFMaFaf03SRoRww9gvQ6uUuysHJhwgZE6zx1dO5H59ItP91C72x5p78PB+Lktddeo4aGBtGPHTNmDD300ENUUVGB8w8AAAAAAy9ou2bNGjrttNM6rC8oKKC6OnnSJhiYQVvOtK3RZNomY3kENnVIZluFxciZtlJYpm0oaDskfYjarnDhgi4WAsEAfbX7K9pu3x6T/QMkskpXKGhbklYSl+fkL6PKbGVh6w4qOWivJiFrL8eaQ9Ny5BIJ1Z7qsNq5ieT7mu/J7XeL9svrXqaAFOjvQ4I4OPXUU2nBggVUXl5OV111Fb3xxhs0bNgwOvHEE8WIMr/fj/cBAAAAAAZG0DYrK4sqK0MXloqVK1dSaWl8MoMgRkFbclGtIfnLI6RbTTQqL0W0t9S5ye7xdz4RmSbTtiytjPRt/62QaRsbC3YtoJsX3UzX/XCdGKZc7a6mu7+/mz7Z80mMnhEgcex27lbbw9KHxeU5OTg7d8pcOnv42XTVpKvo9xN/T/fM6vtSR7MLZqvtDQ0bKBH9VPeT2t7j2EM/1YbuQ/LLz8+nm266iVavXk3z5s2jL774gs4880wqKSmhuXPnksvl6u9DBAAAAIAkEppRqg+de+65dNttt9Hbb78tLvaCwSB99913dMstt9CFF14Yi6eEOHB4uKatm6qNyV8egU0qSaPNdW4KSkRrK5ppdIbmQWsWSQYz6QLesExbk8FEBSkFVOWuoipXVb8cdyLzBX3U2NpIOVJOr/fxQ61cYqU12ErPrn6WNtVvoi32LfQBfUDThkyjAirowyMGSCx7XHvU9vCM4URxSvAbnjacLht9mTpiJsWYQk7q28mZSlNDX+pWOiuJev9rIia8AS/93PBz2Lr/7vovnTj+xH47Joiv6upqevnll+mll16inTt3ioDtZZddRnv27KGHH35YlAD77LPP8LYAAAAAQOIGbf/85z/T7373OxoyZAgFAgEaP368WP7mN7+hu+66KxZPCXHKtC0mJ9W0Zdqmm9PJarAm7bkfW2BT2+sq7TQ6Iy30oE5HAVs+Ge3lItM2qPk5LhnBQVu73y4u8kHGwdqL3r+IKpwVZDFYaEzGGHr00EfVzORoSyNsat6k3v9ox0dhj/9j7T/ozgl34pRD0mfa8v8bLsfS0thCyaLAWhAetE0wP9f+TJ6AJ2zdsvpltLNlJ6VSar8dF8Qel0B48cUX6dNPPxV92muuuYbOP/98MbJMMXv2bBo3bhzeDgAAAABI7PIIPPnY888/T1u3bqUPPvhATOCwYcMGevXVV8mgGVoP8efntNG9CNqm6dxqeQTOKE1mY/Ll8ghsfaW9w+NBm/z69Z4mIp9c45DlWELpYQ3ehpgf50Dx9w1/FwFb1hpopTWNa+iNDW/0aB/bW7aTK9D58NOv93xN2+zb9vpYARIRT861xyln2hamFJLZEJroMxkketD2+4rv1fbYzLFq+9Odn/bTEUG8XHLJJaIEAo8a+/nnn+naa68NC9gyfvwPf/gD3hQAAAAASOyg7eLFi8Vy6NChdPzxx9PZZ59No0ePjsVTQZQX+t9saaIT/vodHfHMSvpsXXWvg7aS3k2tevljk5+Sn9Tnf0RuChn18kQ76yo7ZrMFMoeG7jRujzg5W31rfawPc0DgYMfXVV+Lts1gI13bNG9Lqpb0aD9r6iJPTlRkC9UYfmNbzwLBAANFrbuW3AH5C6Ky1PCJwZIBB6GVkjsJGbStlIO2/PuLS0Uoyh3l/XhUEA88T8Ozzz5L+++/f6fbpKSk0D339H2tZwAAAAAYvGIStD388MNpn332oTvvvJPWrVsXi6eAHrj+36votg+20sZqB7UGJHp7ee8uMJ1uDzmNoQKKBW2ZpsnKbNTTqAJ5yOvWWid5/NoiCET+zOFqW1e/JWLQtqEVmbbeoJce/OlB9ZxcM+4aGpsjZ6ltatwkyiZEa239WrV9ZMmRYlmUUkQvHv0iZZnlrKdvq74lu7djZjTAQMfD8BVDUodQMipOLRbLOnedqIGdKGrcNbS5abNoT8idQKMyRqmPVTlRvzwZtbS0qDe/3x92v/0t1p555hkaPnw4Wa1WOuCAA+jHH3/scnueU2Ls2LFi+0mTJtFHH33U4ct8njituLhYBJuPPPJI2rxZ/nwDAAAAQJIHbSsqKujmm2+mb775hiZOnEhTpkyhRx55REzUAPFV4/DSx2vDM2urW8Jr8kXL726hWs0kZMmeacvGF8uzjwWCEm2rC5VAYP6sfUJ3NEHbsPIICNrS0pqlYpZ1Nr1gOh1dcjTNKpqlnqMV9St6nGlr0Blozvg59MEpH9D82fOpKLWIDio4SDwWpCDtaNnR8zcbIMFxeRBFMmbaMv6/zCSSqM5TR4lCGSnADi49mFKNqWQzynXPMelkcuLyB9nZ2V3elG1i6d///jfddNNNIot3xYoVNHnyZDrmmGOopiY0CarW999/T+edd56YIG3lypV06qmnitvataEvPf/yl7/QU089RfPnz6elS5dSamqq2KfH07v+IQAAAAAMoKBtXl6eqPfFtb+4ru1ZZ50lZtvlLAHOwoX4aR9oZLX21l7tK+BuVichGwyZttqgLdtUG15LNZC5T8RMW23QFuURwoMdl0+8nHQ6Hc0qDgVtl9cvj+q9cPldtLV5q2iPyholJsErTSsVwZP2QSxtRiJAUmba2pI705ZVu3tXyicWvqz4Um0fN/w48XtMCTBXu6pF5iIkl6+//pq++uqrLm/KNrE0b948uuKKK0RdXZ4EjQOtNpuNXnjhhYjbP/nkk3TsscfSrbfeKiZGu//++2natGn09NNPi8f5s/rEE0+IiYFPOeUU2m+//eiVV14RCRcLFiyI6WsBAAAAgJ4xUoxxmYTbb79dZAbcfffdIvsW4mdrfcesiXqnV2SO9pTkaqZ6TdBWqT2YzMYXp6vtTbXtMm0zh6ltXYMcTOxQHmGQT0Tm9Dlpae1S0ebyBTMKZ1BTQxNNyZ9CFr2FWoOtItM2moDHpuZNFJTkEhUTcyd2eLzMFh60nZURCgwDJANtBnmyZtqGBW09iRG03di4kbY75Czn8VnjaWj6UKprrRO1tLc1bxMTKzb7mimfkn/0yWByyCGH9PchkNfrpeXLl9Mdd9yhrtPr9aKcwZIlkWvC83rOzNXiLFolILt9+3aqqqoS+1BkZmaKsgv8s+eee26Hfba2toqbQikJEQwGxQ0AAAAAeibaPlRMg7acafv666/Tf/7zHzHkir/Rf/DBUG1LiL1t9aFAY2G6hartrcTx2ka3nwp7uK9gawu1tE1CxjItmZTsxmmDtjXhmbZkSiEpo4x0LXvk8ghtgUfUtA35Zs83oqYt+1Xhr8ioN6oTDk3KnkTL6peJbGQOfGRS15+nDc0b1PZ+eft1eFwbxNphR3kESD477XKmLQ/L1/6eSdagLdeRTQQfbQ/VAz2i+Ai1rWTaslpPLY2iUJ1bGPhWr14tSnxxkJTbXeFs1Vioq6ujQCBAhYXhPTa+v2FD6G+iFgdkI23P65XHlXWdbdMe993vvffeDutra2tRUgEAAACgF+x2e/8FbTkj4M033xRDrY466igxVIsDtjycC/onaKsjolkjcui/q+QZueucPZ/gRcdBW2MoaJtuTicKUFJLt5qoNNNM5c1e2lLn7pChLOWOFEFbnaeJdB6eUCuf0k3pZNKbxCQ6g72m7ac7P1XbhxYdGvbY9LzpImirzMp+XP5xXe5rc0tokhSeCIhCc+IJxSnFZNQZyS/5UR4Bko434KUKR4VoD8sYJobnJ33Q1tP/QduAFKCPd3ws2vylk/b3WKGtMOECzNB3eD4GDmIWFBSINv+fizQqhNdzYDWZcb9em73LmbZDhgyh/Px8ysgIlZECAAAAgOjwhLH9FrRdtGiRqKV19tlni/q20D+CPHlWW9C2LMtCQ3JCQfP6XgRtDV47tZg1mbbmTKKOJXOTzuh8mwjaevxB2tPoJrmCapvcUUTb5ZIfxqZtREPGiAs4Lh3Bk9MM1qAtX9h+Wv4pfV/xvTpp3cTs8JIG++ftT89ufFbNyO0uaLvFLtcNNuvNImjFZRa0DHoDlaWXiSHku+271VIKAMmg3FUuJudiwzOGU7IqtiVWTdsNTRuo1l0r2geVHEQZ5oxOM20huXAZAQ5KKu3+wH1og8FA1dXtJpStrqaiotDnT4vXd7W9suR1xcWa/2/V1SI4HYnFYhG39jgLmW8AAAAA0DPR9qH0sSqLcM011yBg2892N7qp1S9f5I/ITaGC9FCHuzeZtkZfCzVrPljai9dklmMzqW27J/y8SRy0bWNsDg3Jz7fJF3pc59AX6Pm5HugB2z/9+Cd6dO2jIuuVnTLiFNLrwn/dDE0dKmpDspW1K6nZ29zpPh0+B1W45CzDEekj1DIL7XEwl3kCnoSaeR5gb61qWKW2kzloyyM4bAZbwtS0/anuJ7V9WNlhYY9xTdtEygqGvjVsWCijndtd3WLFbDbT9OnT6csvvwyrf8b3DzzwwIg/w+u127PPP/9c3Z7nmuDArXYbzpxdunRpp/sEAAAAgP7RZ5m277//Ph133HFkMplEuysnn3xyXz0tdGFTjUNtj8xLoXxN0LY3mbZmv0OtaWsgPaUYU8hF7eq8JqFUTXaxvdVPRdpkk5xQ0NbQFMrE4cxSRb2nnoyxn/MvYWxs3kjvbHlHvX9s6bF0xaQrqKVRnrhEwRfDh5YdSq+sf0VkxfKEZSNLRkbc5+bGUGmEkemRt2HD04fTNyRnPu927qbxNL4PXhFA/38R8sHuD9T7/P8mWUvT8O+FgpQC2uHYITJc+ztj/se6H9X27JLZRM7QY8i0HXzWrVtHu3btEhOExatfy2UJLrroIpoxYwbNnDmTnnjiCXI6nXTJJZeIxy+88EIqLS1V54yYM2eOmETtscceoxNOOEGUK1u2bBk999xz6v+xG264gR544AEaPXq0COLyRMElJSV06qmnxux1AAAAAEDP9VkkiTt6Su2vrjp9g6H2V6LYXB0qbDwi10oF6ea9yrTVBm0zjLakranYXqrZoLYdrfzZ1UfOtNUEbfOsobIgde46KqLIwxiT0ddVX6vt66dcTycVniQmHouEM9c4aMu+r/mefkO/ibjdhsbQhCsjMzoP2g7NkDN3laAtQDJYUbOCdjrlScgmZk2kMdljxARFyaowpVAEbX2ST3zppRNV2eOv3l2v1tLmL4v4y7g6Z13kmrbItE1q27Zto9NOO43WrFkTVttW6QfFsl97zjnniAm/5s6dK/rZXMLgk08+UScS4yCydnjd7Nmz6Y033qC77rqL7rzzThGYXbBggZhUTfH73/9eBH5/+9vfUlNTEx188MFin9HWVgMAAACA+Oiz8gg8XIsDtkq7s1s8ArbPPPMMDR8+XHQ+DzjgAPrxx1CmTCRvv/02jR07Vmw/adIk+uij0EzRA9mmak2mbW4K5af1PtPW6w9SmuSkZoP8kUkzhlV2TWppFk3Q1tNu9quMUpLaApLa8gh5KaGgrVIPcTAIBAO0sHKhaPOkYGeMOqPL7SflTaIsc5ZoL69fTh6/J+J2Gxs3qu1R6Z3P0K4dNs41QAGSwVub31LbJw05iZJdgVXuS7AqZ+TZ7ONhSeWSsBrc7VkMFvX3F2raJjfOXuWM1JqaGjGp7i+//CLmb+Ds14UL5b95sXTttdfSzp07qbW1VZQx4L6tgp//pZdeCtv+rLPOoo0bN4rt165dS8cff3zY4xxsvu+++0QQ2OPx0BdffEFjxoyJ+esAAAAAgJ6JSU3bV155RXQU2+PhZPxYLP373/8WQ8nuueceWrFiBU2ePJmOOeYY0dGO5Pvvv6fzzjuPLrvsMlq5cqXIEuYbd3KTpTyCyaCjIVlWytMEbXuaaev0Bsimc5KzLZsjzZhGg0V4pm27oK3eQP5MOVBoaN5FFAyE1bQdbEHb5TXLqcErT742M38mZVi6rnvMk4fNyp+l1qH9bOdnEbfb2CAHbbku7j7p+0QVtEWmLSQDnozrq11fiXa2JZsOLjqYBlPQttJZ2W/H8V3Fd10GbVm+Vf5dzxnB/mC7vw+QNJYsWSKCnDwxmDL5FmenckmC66+/vr8PDwAAAACSVEyCtlxnq7m546RCdrtdrcEVK/PmzaMrrrhCPM/48eNp/vz5IivihRdeiLj9k08+ScceeyzdeuutNG7cOLr//vtp2rRp9PTTT9NA5gsEaVutXHxvRF4qGQ06Mhv1lJVi7FWmrdMbJKM+VL823ZxJg0WXQVvOLk0vFUtd0EfkrIlYHmGw+HjHx2r7sKLwSXs6c0jRIWr7oWUPiWHRWr6gj7Y0b1GDslZD58M3OaiV2pYFjkxbGOg4CPjg6gfVCf1OG3UamfWRS40kW3mE/g7aBqQA/VD1g2inmdJofNb4LgPMQQoOqi/oBhseJZaeni7aHLitqJAnxuRJyDijFQAAAABgwARtudZXpHqne/bsoczM2AX7OJN3+fLldOSRR6rrOBuC73OWRCS8Xrs948zczrZnnEXMM+1qb92VhejLG5/f9sv263Y1esgflGuuXWn6mLL/+38k7VlGuba2oK3LJy5CIu0r0pKDlTqjWz0HaebMqH6uN8tY7HNvljaTZiIyj6/D44G0YvVxqWm3WJ9rzVXX8YV8f7+GeLwv3oCXvtwlz0bNk9QdkH9AVPueljONjh8uD910+910z8p7qMJeIR53ep20tnGtmsE2JmtMt8dYZitTMxTdPveA+Iwl0/8XvKa+e3/mr55PvzT9Ij7PhdZCunDshYPifdFm2lY4KvrltVS6KqmptUkcw/SC6WTQGSJup2TaxvJYE+V9iXa5N7dExfVgV61aJdpcmuAvf/kLfffddyL7dsSIEf19eAAAAACQpPp0SvupU6eKYC3fjjjiCDIaQ7vnAOH27dtFVmus8MQs/DzK5AwKvr9hQ2giIy2u5xVpe17fGR4Od++993ZYzxNFcG2wWOKLGs5i5iUHi5X7CmXdml314n4J1dHpdX8Xbc/n91Km5VbR9gUk2ranisjrCttXZ8uahmZK1/Nrk99Tc9AiXm93P9fTZaTX0t/LoDeUYVzX5KCmJn3Y40ZDNikVfu2711FTfjbpLKEvLcqbysVEH4nwWmL5vqysWEl2nzz53czcmeSxe6hWF91n5Lf7/JbW1ayjHa4dVOGqoHM/PpfGpY2jlU0rxWREijJzWbfnMtcoB8wlkmj9nvWU7k9P+M9YMv1/wWvqm/dnffV6euEXeYQIBwyvG3EdeZo9g+J9sXpD2fQ7G3dSU3ZT3F/L1tqt6jaFxsJOf++kS3L2JdtctZkybBlJ+75Es+TArXZSrJ7g0ViJiif14om7GAdqTzzxRPrVr35Fubm5oiwXAAAAAEDCB225Fiz7+eefRbZqWlqo7qnZbBaTg51xRtcTEw0Ed9xxh6ibq+ALlSFDhlB+fj5lZHRdw3Nv8MXQC99tp18PSRPPxRdGfMGgzGSsXVflkYPORxmWqz9vqVtDxcUWogo5YzZoSaccm1lsr/xcZ0vdDjsFDa3qRyY3LTfs+fpqGem19PeyqNnLoVfxuv16E2VlZYU97swPZdlkkJ1as7IoOydb1F8NSkFqCbZ0+JmBtozmfeEZrBWzh8zu8Wu+b/p9dNuK28RwaA7+/tjYcQLBWcNmUZa+6/0OyRhCJJfVpVZLKw1JG5Lwn7Fk+v+C19Q3788r214RXzywyydcTjNLZg6a94V0REa9UWTY1/vq+/z3ZzSvxVkhB+jYyPyRnR7DsJphRLvl7ex6e9x/1yfa7wDlOHqDJ4NNVNynVYwaNUokAjQ0NFB2dnbEkWUAAAAAAAkXtOXJvxgHZ88555y4d8C5zpjBYKDq6uqw9Xy/qKgo4s/w+p5szywWi7i1xxcqvb1Y6Y7XH6Tb311D764opw9L0+j1ywvEhQI/n3LBoLR5ub1ezvg9Wr9M3Yeu1U5jTLX0IZnE/TqHj3KzQvvoaunyBcmk5+ClnFOaYcqI6ud6s2z/Wvp7mWoJ/TdxcpmIdo8H00tCnwF7uVhvNBgpx5xDda11YoKa/n4N8Xhf1jWtU8/D1IKppAv07DmKbcX05nFv0h2L7qDva75Xa9Tum7EvkYFobNpYmlYwjerr67vcT0GKZuZ5VxWNzhqd8J+xZPr/gte09+8P3xZWyjPS60lPZ445k8hJg+azxhMUFtmKaI9jj/g/3B+vpdoT6heUpJV0ut3w9NDkhxsbN5KuOHnfl2iXfOuN3v5cvHBwnP/+8OvkIHVOTk5/HxIAAAAAJLmY9JAvuuiifsmY4Gze6dOn05dfynU1GQ/Z4/sHHnhgxJ/h9drt2eeff97p9v2l1tFKizbJk5z8XO6gW95ZQ0FJzsKKZGu9mzLJQQfo14et3zcoT+jEauycORsdt8dNbkPo+XhilsEi1dLNRGRpoaAtNe9Rm1nmLLFs8jSJjNtkxhezSu1Nm9FGIzJ7V+Mvw5JBf5zyR3rq0KfogWkP0KenfUr3T7uf/n7E3+n/Rv6fGqCIdhIjDvgADDTrGtZRhVue6Gi/nP0oLyU0seFgUZwq1wp3+Bzk9IWyXuOFa2Jrg7adKUstEzW8lfcNkg+Xy7rwwgtFVi2XzyooKBDtSy+9tMOX/gAAAAAACZtpq+C6so8//ji99dZbYsg0TxCmxUPKYoXLFnDQeMaMGTRz5kx64oknRB2ySy65RDzOHe/S0lJRl5bNmTOHDjnkEHrsscfohBNOoDfffJOWLVtGzz33HCWS0qwU+udF+9O5z/1Abl+APl5bTQUpOrr7lNAkKAq3N0DlTa10iv5nMurCg4XDvJuJaJwaCCaKbibygLuFWgz6QRm0tRh0ZNTrxMRujtZAh8eDtnyS9EbSBf2kixC05ZnfOfBQQKEM0GTDGXGN3kbRHp85XmTK9RYHZn9V+iuqs9SRySBnhfeEdhKj/pp5HmBvfLLjE7V9WPFhg/JkKkFbxlmvw2hYvwVt+VicTZEDx1xveGz2WFpZu1L8vmnyNlEeDb4ge7Li8lezZ88mh8Mh+pFjx44VX1KuW7eO/vWvf9HixYtpxYoVYeXAAAAAAAASOtOWJ+maN2+eKJHAk2RwIPX0008XQ9/++Mc/Uizxcz766KM0d+5cmjJliqiv+8knn6iTjXEQubIyFMjhzvgbb7whgrSTJ0+m//znP7RgwQIxU3CimTwki57+zRQytCUb/mtFNXl8HYOIW2sdohLi0YZlxFM4/TEvh44cUkKLU6xU5Fjfq0zbgKeFWjRDF7k8wmDBQcS0thIJdk9oUiwVByiVEgktHYO2jC/kk9nPtT+r7QnZE/r1WLSZtgjawkDD9Zw/2/mZaHNd14MLDqbBqCi1KGIANV6U8gj8e1zJpO3MhNzQ77xNzZtifmwQP08++aQou/XLL7+IZIQrr7ySrrrqKnrqqafEOg7gchsAAAAAYMAEbV9//XV6/vnn6eabbyaj0UjnnXce/eMf/xCB1B9++IFi7dprr6WdO3dSa2srLV26lA444AD1sYULF9JLL70Utv1ZZ51FGzduFNuvXbuWjj/+eEpUh+1bQMeOyxVtb0Cilbs6BgM3VTvISH76tX4V3Z+XQ++kp1G10Uh/z8qkjJaNZCA50FvXg6Ct5GmhZv3gzLRlStA2UqatkFkmFjp3I+nahvIOpqDtqtpVantCVv8Gbbk8Q4ZZ/lIBQVsYSL4t/5YuW3wZ1bhrxP3ZxbPVz/KgzrSNc9DWF/CJWuSs0Br6Eqgz43PHq+1NLQjaJpMPP/yQ7rzzTjHBWntcJoEnpv3f//7XL8cGAAAAAMlPH6v6X5MmTRJtHjLG2bbsxBNPFB1g2AsBL/26wN12J0hfbdkqMj20NtU4aJSugv6VZaH30kPB1dVWC3mDrTRKVy7uN7kjZI12ptUelmmbZhxkQVurodOatkzKKFXbekfVoM20FUOFM8cmTJZetbOaAlIngXaABFLnqaPff/t7tcyIzWCjq/e7mgYrbdC21iPXc4+Xalc1BUkuLaSd2LAz43M0QVtk2iaVTZs2iRFZneHH+Et/AAAAAIABE7QtKytTSxCMHDmSPvtMHur5008/kcViicVTJj+vi+jdK0n32Bg6YfufxSpL4Qf0n7or6eG1D4cFbjnTdqxhM/09O7PDbtZazDRFv020m3sQtNV7w4O26aZ0GoyZtl5/UNw6y7RlBkfFoAraOv1O2tq8VbTHZI/pdihxPAM+XE+4oTV2NbQB+sqS2iXkCXhEe2bRTPrHwf+gsTn9/wVIotS0jacKp/w7nBWlhMo0dGZI+hBKNaaK9sYWBPCSraZtVlbob3l7/BhvAwAAAAAwYIK2p512Gn355Zeifd1119Hdd99No0ePFpOA8Wy70AumFKI9P5LO00ypNctoUl4TmbLlUhNfVX5F39V8p266sdpO2SkbyaeTi9/qqa0ILhEtt1pohmm7aDe5og/aGrwOam6biMyiM5DFYBmUQVvm8nUM2koZmqCtvXJQBW232eUvAdrXdkyUgI8y1Bwgkf1QEyoddOPUGynf2nE49mBSZOu/mrbasiraGtmd0ev0NDpjtGjzl0Q1LvzOSRb8hTjPx9BVzfv2o50AAAAAAPpKKBLVhx566KGwicGGDh1KS5YsEYHbk046KRZPmfx0OnLvezzN2/Q6nehw0oTsL2iHLhQ8nL9pPh037jja0eCh6pZWChSEMoUuH3sBPbfhFdFeabHQNfqKHmfamvyhicjSDf2fSdmfQVunNxBdpq1lcARtt7RsUds8i/pgz9ID6Cm3300rG1aKdq4ll/bN3pfq6+WaqoOV2WCmHHMONXgb4v7FizbTNpqatmzfzH3p5wa5TMy6hnU00Zp4k5lCz3FAdsyYMSI429njAAAAAAADKmjb3oEHHihu0HtVziq6smUZbctIp8UpVkrVrQ57nGv+3fblEzQscCLpKUg1Vp4MS86GPX706fSf7R+IDKCfrRYqJjmLqMXjp0AwugsOi99O9ragbeYgm4SsQ9A2wmRkUljQdnBl2m61y6URGAebEgEybWEg+bHqR/IF5S/RZuXP6jRANNhwPVkO2vKtNRD9xJl7q6Lti7doM22ZkmnLNjVuoonFCNomgxdffLG/DwEAAAAABrE+C9q+//77UW978skn99XTDhp5KXmUZssjclXQHpOJq6uK9UFfJukMDtLpA7So5l3KrptAw3W1tNYqv7VZZKCh6UNpYtZEWlS9iFx6PdUb7WQjD7nISvbWAEVzSWoKNJO7LWibYR5c9WxZetv57DTTNqNEbeqVTFtTKGjb2CpPLtSdoBSkOxbfQatqVtHdB95No02hQECiZ9rqSU+jskaRo8nR34dExTZk2sLA8W35t2r7gPwD+vVYEgkHTDc0b1AnB7ORLSHLI7ChqUPV9i77LqLQryAYwC666KL+PgQAAAAAGMT6LGh76qmnRrUdZxAFApjNvaeMeiM99OuH6Mz3TiKXFDp/Z9tbaKMun9Zk15BO76caw+f0K7OJlhoM4vGJ5nxxzidlTxJBW7bCaqHh9ipaJw0X2bZRvW9kV9vpmmH/g0W35REsGRQ0Z5De26Jm2vLwXpvRRi6/K+pM29UNq+mTnZ+I9k3f3EQPz3iYfp33a0pUvoCPdjp2ivaQ1CFkNVrJQY7EKo8Q53qYAD3Bw6sXlcu/m7lW+NTcqTiBEUoTlDvKu/0S67Pyz+j1xa/TzNyZNPfguXtdHiHTnCl+h0ejxBb64m5Xy65ePzcAAAAAAECfT0QWDAajuiFg23s8Q/WdY/4vbN0lznJ6yr6CzG1lDnhyMn3GOvXxcZnjxHJidmio5iqLhfbRVYl2NEFbLqGg14WCtpnWHBps0sIybTtORMYC6aViabBXEPlcYdm20QZtf6r7SW3zTPJ3rbiLtjSFasYmmm0t28gvyZ+hURmjKFHkWHPIrDeLNiYig0S2y7mLat21or1/4f5kNVj7+5ASxtC0UPbqhgY547Yzr61/jR5Z+4gIuC7YtYCWVC7p1XMGggF1IrGStFAgtjsccFcmT9th39FtrdMNTRvo0s8upafWPYW6qAAAAAAAENugLcTHidPn0JkuufbhMQ4nDfX7KS8QpHPsclCVs22X5IUyC8cVHSyWw9KGkZ7kOom7TEYargZtu896dnn9REa3ej8jJZcGm24zbTnrNH+CWOo4E7pyVVhdW4ffIbJSexK0ZXafnS79/FKRgZuINjZsVNsj00dSouDs8gJrgToRGSaLgUS1sTn0f2hqAbJs20/upeDJvTrzafmn9NiKx8LWPfnzk6LcTE+talxFgbbRLFxaqCeGZQwTS7vXTs2+5i5rGF+39DpaWbuS/rf7f/RL/S89Pk4AAAAAAEh+MZmI7L777uvy8blzez9scbDTGYw0Z8JNdOXKpyk1/9fkP+5yCn52N11a+zO9lZ5GrW11Z5lBkmhUwf6ibdKbqNCaS5WeOtpjNNKZ+iqiAFFzFJm2dt5G7+G9iPvplgwabKIK2hZOIdrwH9HWlS8nGjWKsi3ZYXVtue5rZ7hm43bHdtEekTaCUiwp4mKeAwC3L7+dXs57mfIpnxLJxkZN0DYjcYK2rCy1jPa49oiM5T2OPZRCKf19SABdBm0n5Mpf/ACpJVdSjCnk9ru7DGy+u/NdtZ1lyaKm1iYxGdhXlV/Rufnn9uh0LqxcqLaPGHJEj352eMZwWlq1VLT3OPfQKOo4+mBZ3TK6Z+U9Yeu2Nm+lokw5SxcAAAAAACCmmbbvvfde2O2tt96ihx9+mB577DFasGBBLJ5yUPGMOZnyfreCnIc/RDR0FjmmXiWybR+qrafMQCizaLwhXVzwKsrasoaaDQYqMFRGXR7B0RqgoCE0c3eGGUHbSHyFk9W2rnyZWGaaMtV1DZ6GLs/zdxXfqe3ZhbPpuSOeo/3z5KA7zyz/n81yQDiRbGjckJCZtmxMxhi1vbZ+bb8eC0A0QdvxOeNxojQMOgONzR6rTg4WqcxMlbOKttm3ifa+GfvSwwc/rD723MbnaHPj5g4/w79Pt9q30m77bvIGvKH1AR8trl4s2lym4uBSeaRKtLSZufyFUXur61bTvT/fS95g6DnZjpYdeN8BAAAAACA+mbYrV67ssK6lpYUuvvhiOu2002LxlINaa9lsCqTk0ZGuOjpwdzm9lZFGqy0WuvjwB8K2K8sYRj/VrhBtk6mWyBNdeQSHx0s+fWhoP0/OMtikWeWJ3brKtPVnjSTJnEo6r1MN2irlEZSgbZ45L6qgLQdrbSYb3T35bjrtq9PEcN01dWuIEiguyiUHOJuNFdoKE+5zoR1azVl6+6fJAXCARMEBQyXgyFml6eZ0aqXQF2QgZx9zGQG2qXkTjSoJz15dXCEHWdkB+QfQzKKZ4vcnl5pp9DbSZV9cRheMuIAm+iZS0BWkJS1L6JmVz4iyKYxHPxxUchAdV3QcpXhSyO6XSw3NLpgtvvR0krPH5RGUTFstvn/DjzeIzH82OmM0bW6RA8rbW+QRFpC4eD6Gl156ib788kuqqakRczRoffXVV/12bAAAAACQvGIStI0kIyOD7r33XjrppJPoggsuiNfTDg56I7lHn0xpq1+gVEmiS5rt5B55MJlGnUB1dXXqZqVp8kRZzG5qpQxyRlUeweNoIrshlJTNgYVBXR6htZM6iXoDSSXTSLfjW9LZK0nvqOoQtCV5bqwO/EG/qHOoDO9VAo4cNBidNVpktPKEZC6/PMFZIqhvrSeHzyHao7ISZxKyiPUw69cRheIpAAlhc9Nm8km+Dp9XCBmfG8o+3tSyiY6n48NOz7fl36rtWQWzxPK2SbfRH1f/UWTYc3mZv234G1En85gFKUjfVnwrbpzZqzis6LAevw3D0iMHbTmz98HVD1KzV65zO7NwJs2dNJfO/PpMEcTd0YxM20Q3Z84cEbQ94YQTaOLEiaJuOgAAAABA0gRtWXNzs7hB33ONOVUEbRXO6ddQKFwoK0srU9t72iYja/EM6XbfXkc9tWhq5aI8QhfZyaUziHbIQQRzzSrKStEEbVs7L49Q4apQA6AzCmeEBQ8m5U0SQVuJJDGUemhRzybHiZVyV3lYLcdEw5m//EVFuaOc1jesF7PCAyQSbZ1WHtoPHWnr/GpLSbDWQKv6ZVdeSh6NSh+l/t9/9ohnac6Xc2hZvTzqob0pOVOoIL2AVlavpFpPrVinTEDGX0xOz5ve47ejOLWYTDqTCMRrfz8+v+Z5EXBWMqrnHTKP3M1ukZnLdcG55jYHdiFxvfnmm6LU1/HHh39pAAAAAAAw4IK2Tz31VIdh1JWVlfTqq6/ScccdF4unHPT8OaMpOPYk0m/4HwWnX0r+nFA9T0VZuiZoa5SDtjVRZNr6HI1hQdtMSyZReEm+pBfNRGRMKg1d6JuqV1HWmKPV+42exi6zViMF15Wg7dub3xbtdU3r6Cg6ihKBNpOsp7Osx8uEnAkiaMvZbDudO6mQCvv7kAAi1lpGpm1kQ9KGUJoxjRx+hwja/lD5AxVIBZRHefRzw89quYFflfwqLPuRy8v8efqfqYIqaNWeVdRETdTgaCCr1UrT0qfJQduCAqquqaZfWn+h/6z/D/1U/5MY9XD+2PPF5J09ZdAbqMRWIn7XcNCWvyja0rKF/vnLP8XjRp2Rbp90O6WaUslNbvFlFwdtOVjMX9wVUzH+dyQos9lMo0Yl3ogSAAAAAEhuMQnaPv7442H39Xo95efn00UXXUR33HFHLJ4SeJjnac9R/c5fKHufKUT1oSBgpPIInGk7TldFW6II2gZdDdRsCM+0DXo7KRGQpGxmA3E4QOouaFsSCtqKTNuJZ0c1EZk2aJufkh/22H55+6ntDc2djPHtB9qJdrS1HBMtS++zXZ+JNgd8ZtLM/j4kgA6ZthzMS7SJ/BIFB2LHZI6hFfUrRI3aq7+6msx6M90641Z6a8tb6na/Kv1VxJ+dnDeZSnWllJeXJ8oF8bK2tlZ8mawEWg8fcjjtl7IfmdPNtK1qG00eOpnqI/wNjUZZapkI2nLmbJWrij6v+JyCkvz38reTfitei2KfjH3U9m7nbppOPc/uhfi4+eab6cknn6Snn34apREAAAAAYGAHbbdvx6Qa/cJgpkDGEL5SjfgwDxlNNVjJGfCITNtj9dVRTUQmuZvCMm156GgzDa4yF3zxn2o2kMMb6DJoS2kFFEgrIYOjgowNmzrWtO1F0JazWNNN6WT32Wl903o12JBImbailqObEroe5qqGVXSE4wgySnGtCiNmpEdpBmiP61Nvb5b/Vo7OHk1mQycFr4EmZU8SQVuFN+ilP/34J/V+jiWHZhXPImdT9JOGRZJhyRBB172pV1pqC305urNlJ62sX6lOeHbOmHPIa/dGLCvDQVtIXIsXL6avv/6aPv74Y5owYQKZTOGZ2O+++26/HRsAAAAAJK/4Ri+gX/GFaFFKMW11bKdKo5FyqJFaosi01XlC5RGsZOzVsNFkkGrRy0Hb1q4D3YG0YhG01XvtlK4zifq0PPy13tN55pb2sfZBW37fxmWOox/rfqRmXzPtduwmG9movyk1Gy16CxXYCqjB3XlQur+MzxkvgiU82dCXlV/Sl//9ko4sPpJunXhr3ALbPNkQ17n81wn/istzwsCw3b5d1Klm43LG9ffhJLQzhp1BfqOfqluqKaAP0Nd7vlYfK0gpoAemPiAmbXTS3gVt+8LQtFCpmC92fUHbHXJgflTGKBEUrrOHJgcdnomg7UCRlZVFp512Wn8fBgAAAAAMMjEJ2no8HvrrX/8qshJqamooGAwfSr9iRShjBuKr2FYqgrZ+nY50phayuwIUCHaduan3NFOzRQ7apupTaLDiTFsiHzm7KQ0RsIWCriZ3A+VYc6jWXUt17tDFepeZtvzzcplG1bgsOWjLVteuplkZ8izp/YXrPnINRiWzTK8LZWInEq5rOSJ9BG2xb1HXfVH5BV0w8gIqoIKYP/8Huz9QZ4z/aPtHdHwBJrEB2Tb7NvVUjMnqWIMcQjgge8v0W0R5g9zcXPrHin/QK1tfoTJbGc07bB6Z3InzReLMvJnqF3XvbX1PXT81d2qHbXkUhY50IniPTNvE9uKLL/b3IQAAAADAIBSToO1ll11Gn332GZ155pk0c+ZM1P9KIMW20EQnHpNT5HnZPV3PWm30NlGLTQ7KpRn7P8Ozf4O2RB5/kPyBzgO3QU3QVu+qpUJboRq05WBnd0FbngXd7rGHPT4+KzTM/+fan/s9aFvhrFBnWi9NDQ0HTkTXjb+O/rP7P1TeUk7bHHKg7IuKL2i/YaFawbGiBNrZ0qqlCNqCaqt9q9oek42gbbR45MFpw06jS6ZeQk0NTZSXmtflF2Lxlm3JFqUavqv4Lmz91JypEYPRhSmFVOWuEkHbRCl9AwAAAAAASRy0/eCDD+ijjz6igw46KBa7hz4K2jabvGLgeJPLR2ld/ZCvmXxtNf4yTOk02IO2rKu6tsHUUAanwfX/7N0HeFRV2gfw/52ZTEkvk14JvYOAVJGqiKCu6NpQQVbXgrqWz7Xs2su6xb7qWrFgRVSwoCAISu+9QwrpkzZpM5n2PecMM0kgCQnpyf/nM94zd26/M2Tmve99T54sHYB80YmZCwXWAkQh6rR5xHhB1K7VqXUowelBW41KI4O+m3I24dbut6ItiVqNHqIGZHsmjt0rPV7BvvR9mL1mtjwPItv2Htc9LbrezNLMGtlz23K3yVqcRKdm2oqatpbiU9LrqV7i38P26uJuF9cI2oqSQv1D+tc6bbxfvAzaltnLkFWWBS1Y27i9WrRoEb744gukpaWhsrLmv+W8g4yIiIiIWkKL3NMcGxuLgICuG9xrz6INVUHbTB81QlGCoor6M21tziJvO1BX1bFWVw7altRTC9hRS6atR54l77TpRXaVJ9M2TBdW6zL1aj0Ghg2U7fSS9FqX05rSStK8bXGLckcgal+OiBoh21kVWTJjuSX9nvl7jecWh0V2JEfkdDm9tU6jDFHw96n3shl1MBPiJsBXXXVXyuDwwfLf8Nr0CqzKsn5377utsn3UeK+88grmzp2LyMhIbN++Xd5FJkp1HDt2DBdddBEPKRERERF1nKDtf/7zH/z1r39FampVNh61v6BtukYDo1KM4jMEbZ2uUm87oAsHbQN0VUFbcz0lJZy+xhqZtlG+VZm1tQVbSypLvBmYdQVtheGRw73tHQUtG3DsTJm21c3sNtPbXnpsaYuu69Tbo4Vt+S1Tz9vmtGF97no8s+kZPLjlQWzJ2dIi66HmIS68iCC+0D2gOw9rJyPKHpwXdZ73+bmR59Y57aUJl8JP4yfb3xz9RnZQd7ZyK3LxyYFP8Nr+12r8G01N9/rrr+Ott96S/TVotVo88MADWL58Oe666y4UF7vrlhMRERERNbcWCdoOHz5cdkaWnJwsM25DQ0NrPKjtiPp5arhLHaT5+MigrSiPUB87qgVttV03aOtfPWhbYW9QTVtveYST8qynB21FvVuP+oK2IyLdWaLCzoKdaEupJakdLtNWmJwwGQa1uzO9X0/82mI1JCsdldiU7a5nWz2LsqWCtvetvg+Pbn8Uiw4vwtb8rbhn9T0ygEPt06GiQ9626CiPOp9ZibNkqRuRcTu92/R6a+DeNOAmbwb224fePqv1vbDtBVy35jr8a+u/8G3at7hlxS0otBae9fZTTaIkwpgxY2TbYDCgpMRdwuj666/Hp59+ysNFRERERC2iRYrCXXPNNcjIyMCzzz4rbyUTHYdQ+6kDGOMTgHSbGak+GoxG0clM27rr6DlUIiPMfWunv7brlr2onmkrO28LrHpenaNakFZVUbM8gsliqj9oq687aDsofJCsjSiyKts6aJtmdpdHCNIGIVAbiI6UAdc/uD+25G+RAY1cSy7CEe6tQbs6YzUuC76syevZXbjbm0k5MX4idufuRkppCg4VH5KZ1c1JLPe3zN9qjCu1leLfe/6NG5QbkJKXgiuCrmjWdVLTHCpk0Laz6xbQDcsvX46CggLE+sfW+m+/x7W9r8XnBz6X/x5tNm3G6hOr0V9few3c2pwoO4GP9n9UY5y4aPP0zqfxbjRLLjSHqKgoeS4TExORkJCADRs2YPDgwTh+/Dg7kCMiIiKijhW0XbduHdavXy+/0FL7k2iIkEHbCpUK/po8FNaTaSsyEe2K1Ru0DdB03aCtv67q42KWNW1rD9q69MFwqTRQnHaZaXummrbVMyJDtXVnoousrX5B/bCzcKfsuCajNAM66NDaRIc52eXZsp0QmICOpndQbxm0FQ4UH0D/+P5yn27++WYZQN9ctBkP93+4SesQgRePsdFj4ePwkcFVJ5z4/vj3mBI2Bc1lWcYyb/uGvjfgx+M/yvfZ9oLt2L56uxz/c/bPeH7o8822Tmq+oC3LI3ReAdoAWDXi72f99Bo9bu51M57Z9Yx8/s8t/8T/Rv+vwev5Ju0bb/vipIuxIWuDrJO+q3AX3t3zLmbFzDrLPSCPSZMmYcmSJRg6dKisbXvPPffIjsm2bNmCyy+/nAeKiIiIiDpOeYQ+ffqgoqKiJRZNzSChWg1StS6v3o7IrFYrLGqn93lX7jCnoTVtoagAP3e2rarchHBDOJSTJSlqC9rmlTcs01YYEjbE2/bcft/aUkpSvO1ewVWd6HQU1Tv+EZmvwlcpX3kznledWIUj5iPILsvGbzm/ocLe+H/LNpnc50YFFUZHj8bk6Mne197a/ZYMEjcHUQt5RdYK2RZZ2Df1vwn3D7j/tOn2F+zHEzuegM1RfykUat2grahlKkrWEJ0fdT7OjXLXvs0sy8Snxxp2y73ZZsbPmT/Ltujs7K8j/opHhzwKjaLx1sk9tQyMKMPw1MancPv623G48DAPfgOIeraPPPKIbN9xxx1477330LdvXzz55JN44403eAyJiIiIqOMEbf/xj3/gvvvuw6+//or8/HyYzeYaD2pbCcHdvG27thiHcuq+XdtSWgizquptEuDTdTNtA/QNq2nrntgdiFFV5MNHURCiDWlYeYR6atoKQ0OHetvrs9ajLXh6vRd6BPdAR8y09RCZtgWWAixKWVRjmlf3v4rLv7scT+54Ejf+dCMyyzMbvHyRAZ1eli7bfYP7IlAXiF5BvXBBwgVynCjL8OXxL5tlX9blrkOJzf35PS/yPATpgnBO2Dl45NxHMDhkMK7qdRX8Ne4LLaLW7eu7Xm+W9dLZE+8NT6Z6r5BeUImLPNTliTJSD414yBtsFf9GiDInZ/J9+vewOt3ZvNNip8ns3n7B/TAiyl0DXbzXUstqdkomamsvPrIYh82H8ff1f5dBXKqfSqWCRlN1t83VV1+NV155BXfeeafsmIyIiIiIqCW0yK/FadOmyfIIkydPRkREBEJCQuQjODhYDqltJYT28bYrfEqx64QZdkftHTJVlhWhWM2gba01bevh8ncHbRW4gLI8GPVG+bzAWgC7015n0Naoc09Xlz5Bfbw1ZEXQ1uF0oLUdKznmbfcM7omOJlQXinC9u46tCFqI24crHDWzafcV7fNm2B4uOow71t+BtZlrG7T86tONMFZ1Hjd/yHxvQOar1K9gqqi7xuXZlEa4KPYib/uKnlfg3+f+Gw+OeBBPnfOUzMIVvjz0ZbNl+dLZWZK2xNsW9Y6JPJICk3BBrPvijs1lw978vfUenOPFx/FFyheyLe7muDyx6jb9sTFjve3NeVXlWgRxB4HHwcKDWJm1kiehAX777TfMnj0bo0ePlv02CB999BF+//13Hj8iIiIi6jhB21WrVsnHypUrazw846htJYZVdXBS7FOJCpsDR0zltU5rK6uZaevJ2uvqNW2Lz5Rp6x9V1S7N8QYJRU3TU4N11YO2oifx+qhVaoyKHuVerK0U+4r3obUdLzneoYO2Qu9Ad7atCNZ+cvATb83gS+IvqTGdWnEH6kvtpbhz1Z3ylmXPrcY7cnfIYEelo7LOoO254e7bnYX4gHjMiJ8h26KTsi8OuYMtZ0sElXcV7JLtGL8YDAodVOt0A0IGYGbyTNkWAdufMn5q0nrp7JXZyvBzhvtWdp1Kh0uTL+XhpBoGBA/wtveY9tR5dIori3H3r3d7L8JMT5qOaN9o7+vjYsadVq5FEBcN1+bUvAD1/uH3YXWcufZuV/bVV1/hwgsvhMFgwPbt22XpKKG4uFh2uktERERE1GGCtueff369D2pbkX5R8DkZeMrTujM1d2XVnn3nKC9ieYTG1rStlmkrKNWCtkJOeU6tNW1FwNaTEVmfGj/G81q3rq0IWHrKI4h9Erf+d0TV69p6zO4zG3N7zkWQNkg+7x3SGx+N/wgT4ibI5y648N7h9/B/v/0fPjryEeYun4vndj2Ha3+8FgeLD8ppRADXU2tY1Cc+tZOpP3b7ozcQ/OXhL08L+DbGbtNu2F3uiwcjo0bWe5u96J3e49vUb9skQ7sr25a7DS/tfQlPbnwS5Q73BbLJMZM77OeHWqd8y76Cui/KvbD3BaSXusuwJPsn4+Fza3aemBCQgGiDO4i7p3CPt9TC1tytKLYV15g215KLb49+26z70dk8/fTTePPNN/H222/Dx6fq7/TYsWOxbdu2Nt02IiIiIuq8qlIHm9GaNWvqfX38+PEtsVpqIJGtGedS47jiRKZGBQV27MmqvXaeq7xmpq2fj1+XPc7+NYK2Z8q0rda5UEmOtzyCkFuei1i/WG8Q1FPnNty3KrBbnzHRY2rNoGoNoj6iJ7Orm39VbeSOHBgRIvQRmDdgHsqKyvDuBe/it2O/4YoBV8BSbMF/xv8Hr2x6BR8e+VAGbn9J/6XGvEeLj+LujXfjf/7/Q05BjsyiFcbEjDktkCoC3VMSpuCn1J9QZC2SmbqzI2ef1T6I4IvHsMhh9U7bPbi7rHUrallmVmRiRdoKDPOvfx5qvuzau9fefVp90lOzuomEOL842eGneL/UlWkr/oasz3XXNA/yCcITQ56Ar48vylFeo0auKM+yJH2JvLgjLiYNMgySn32PWYmzZKkWYXvudkwKncSTUIeDBw/W+t01KCgIRUVFPG5ERERE1HEybSdMmHDaY+LEid4Htb14RS+HlSoFwZos7MqsPdNWU5YF88matnpovVmCXZFOo4JWo2pQTdsaQVuRaaurCsh6OiESRMaTp8Zt9cBufcIMYd5MUVFfVvyAby3VexpPDkhGR9UzsGZZh9v73A6DxiDb3YO6yzIGInAiiMDr7O6z8dL5L8FX41tjvhhDjBw6XA7ZydcPJ37wvubJ0D3VdX2u87YXpy6WgXub0yY7Bvrn7n9i7s9zseDwgjN2DrQ1p1rQNuLMAdjq9S4fWfcIPjv2GTsgagU/Zvx4WsB2ROQIdA+smYVN5Pn3pl9oP9nOrcittfPK5WnL5QUkQfxbFWGIqPXgVS/P8tXhr2CuNGNlurtElV6tx3Xdr/P+TT9urip7Q6eLiorCkSNHThsv6tkmJ3fcv4VERERE1AWDtoWFhTUeubm5WLZsGUaMGIGff3bX86O2Fa8O8LYDdenILqlEttmdIVidT1mmN9PWrwvXs/UI1LuT081nqGnr8q/6Ea2UZtcIyFYvj1A9gBvj7w4ANkT1Dq6+P/49WovolMujI2fa+mn8MDl+smxPS5yGMRFV2ct1GR83Hv8d9V8MMg5CsDYYz459Fu+OexfdArt5b4Ffl7vO26HcebHn1bqcgcaBsnd3QZSa+Gj/R3hixxN4auNTWJ65HDvydmDhsYV4bvNz3vq5pxJlFUR5BCFSH4kov2o1lOt5z5wXc543yPzu4Xfx+s7XzzgfnT1xQebrtK+9z/8y9C+Y02MOnhv7HA8r1al/tbrzntIr1S1LqeqAcGJU3RfCB4cO9pZ7WZe1Djf+diMKLAXeOwECfAJkrW0hxZwi/12g2t188824++67sXHjRpnFnJmZiYULF+L+++/HbbfdxsNGRERERB0naCtuF6v+MBqNmDp1Kp5//nk88MADLbFKaqQ4XVUQUa9zBw63p51+i5++PMMbtPXXBnf54xyo92l8eYRTatpWz4zNqsiqOif+cQ0+vhOjJ8rewoV397yLQmth6wdtAzpu0FYQQde3x74th+JHeENvXf7gwg/w+YTPcVHSRdCoNDUyZ6tnv9VXn3h2clVJhBe3v4iNeRtPm2bR4UV469Bbtc5/0HwQlU53PdxBIbV3QFZbBt8L57+A65Kv87533t/3vqx3KYLDORU5WJW+SpZQoOaxJmcNTFZ3puSo8FG4sd+NMrtRZMsT1WWAcUCNz3p1meWZ2JPvLpvQK6QXEvwT6lyOyKZ9ZuwzNTpU9JRUuGPwHbLtuegkOiITmb1UuwcffBDXXnstJk+ejNLSUlkq4U9/+hP+/Oc/48477+RhIyIiIqKOE7StS2RkpKwLRm0v1lCVmafycXeEtfNEzc5JBB9bDhwnA1pB+hB0dYEGd6ZtqdUOh7P2LEjJLwKuk4ExpSxXdkrlkV2WXWvQtjGZton+ibi8h/t2d1FjVnSQ1dJEYO9gofvzK4KV8X7uDK2OSqvWIsk/qcEB2+qq16q9uNvFCPSp6lBKHJvpcdPrnX9E+AjM6z+vxjiNosFjQx7DE6Of8AZVF6Us8pakEBnanx77VPYY/9bBqmDuwJCBDd5usW1zes7B/CHz5XNRgkFk+V7w9QWYvWY27l1zL/665a9YcnRJg5dJdfs6tSrL9oqkK3ioqEEGhA2oM9N2VdYqb1vcJXAmY2PG4v4B93ufR/pG4oVzX0BykPuW/m5BVRff0srSeIbqIP5OPPLIIygoKMCePXuwYcMG5OXl4amnnuIxIyIiIqKO1RHZrl27Tgv2ZGVl4R//+AeGDBnSEqukRkoUt7a775JEpd7dSMkXnZhUywBzOaFyidfcWaNhvgzaejJthdJKx8kjUwu1D5z6EKjFragl2dCqtPLHsgi8pZakem97zyo/JdO2/jKmNdw++HZ5m6wI2v6U8RPmFM5BWPXz18x+z/1d3kIr9AruJQOABOg1esyMnylLGggXJFyAEN2ZPyu3DboNO7N3Ykv+Fvn876P+jjGBY+SdCWmmNFm+QFh4YCFitbF48+CbtdagbUzQ1uPGvjdiZcpK7C3ai6LK0zPs3937LkaNHsXT2wRpJWneLEmREdnQjGiiCN8IhOnCkG/Nx4GiA96SBuLvxi9ZVR0hXph4IVBx5uM1JWYKksKTsDZ1La4fdD1U5VUXnTzBWyG1NJUH/wy0Wi369XOXtyEiIiIiamktEnURgVmRlXBqPcZRo0bhvfdaPiOQziw4MAFGuwMmjRpmnbhl0oW0gqqep6WSbFSoqoJEoXp3bbyuzFPTVii11l//z+kf5Q3awulAUmCSDNqKzmBEB2ThCEd2RXaNoK3VbG3wtoTqQ2UHWf87+D95W/6nBz/F/B7uDMrmZnFYatyqP29AzSzRrk508rWzeCcKKwpx66BbgQacRrVKjUeHPIrl+ctlsP2S5EtgMrlvpb804VJ8kfoFSipL8H3K93A6nRD/nSrBLwHRhuhGb69Y918H/hV3bboLRdYieRt1/+D+KLAVyA6JRMBxU94mzAif0ehlk9svaVXBtYsSLzqrjG7qukQ92pVZK1HuKMcdK+/AP4b+A0eyjyC9LN17sUbcnZFX4b5T5kxGRY9CD58eMPoaYSqv6tzMUx5BYKbt6W666aYGHV9+tyUiIiKiDhO0PX68Zi/EKpUK4eHh0Ov1LbE6OgsOv0j0rqyESWOARe2AoilGeoGmZqC9OB3FJ+vZCgHaqs7LuqpAQ1WmbckZgrYO/2j4mPZBcTmgKs+TQduN2e7apSfKTqAHeniDtgGaAHl8rQ2J9lVzcdzFMsNT9E7/U8pPmJM4B0ZU1StuLl8c/wK5Fne9w2FhwzAxbiLy8/ObfT0dVaA2EB9N+0gGXY0BRm8d0zMxaAy4qf9N3mBt9fGzeszCgn0LZGdWHqLswtzBc7HzxE4UohBD/YeedTAw2jcaX834Cvsz9mNE0giYC83Ya9mLv6z+i3x9cepizOjXfEFbUYP3aNFRaO1adAUr0lZ425MTJjcokE/kMa/nPOwt3isv9B0oPIC/b/87AvRVf4MvS7isWQ5WjfIIpSyPcKoFCxYgMTERQ4cOrbNjSCIiIiKiDhW0FV9wqX1zBCaijwNYe/K5Sp+JitJg5Jfb4ekyy56f4u2EzBOY6uoCamTa2s8YtPVQl2bKoG31jCab0+bt+CXKt6rGcGOI4J6oqfr5oc9lNuyKzBX4U/Sf0JxsDhu+TvvaW3f19j63M2uwFVzd+2p8tP8jb4/uI6NG4q5+dyEyOBLB9mBZRkHUVGxKIEFka/cO6i3r+wrnxZ6HGN8Y2dnR9oLtOFR4CKEIbdJ+iBIgz615Dusy18n3qK/GF1f1ugozIme0yAWG9kB06ravYJ9s9wjogfiA+AYH8omECEMEXp/0Oub+NBdmmxm7C3fXeG1MxJhmOVDib0ikPhI5lhykllWV7iG32267DZ9++qlMRpg7dy5mz56N0NCm/ZtIRERERNQmHZGtXLlS1voym82nvVZcXIz+/fvjt99+a85V0tlSqdHbL877NEh/VA5PFFWlg1XkpSBP7e51WghhR2Q1yiOcMdPWr3rQNrtG0Fbc4io6JPPc8n42t7h7XNnzSm/7u/Tvmv1H94bsDbJurjA1cWq9vZVT8xE1kD0dmhl1RjwzpqoX+JYiOlj7Q8IfvM8/3P9hk5f58r6XsTJ9pQzYCuX2cry/733ct/k+eUGgs8ktz8XS9KXe5+Mix7Xp9lDHJerNPjvsWXmho7ore13ZrDXFPf+mi89mQ8stdBX//e9/ZZ8MDzzwAJYuXYr4+Hj88Y9/xE8//cQANxERERF1rKDtSy+9hJtvvhmBgadnZAYFBeHPf/4zXnjhheZcJTVB78ih3naA3l3SIqO4KmhrK0hFuo+mZkdZXVyNjsjOWB6hKntWVZpZ4zZUEbTNKM2ocav62eoe3N3bGZXIlNpp2omWqs05NWFqsy6b6ndHnztktt3/xvwPYYaW62SuugtjL0SQ1l2/WnR0V73ucmOlmlOxNX+rbPuqfWVP9j6K+zOUUpqCRUcWoTN559A7uPDrC/H58c+9486LOK9Nt4k6NpEJ/9L5L8FH5f7ciM/P5T0ub9Z1iNrYHseKjzXrsjsDnU6Ha665BsuXL8e+fftkAsLtt9+OpKQklJaKPgGIiIiIiDpA0Hbnzp2YNm1ana9fcMEF2LrV/QOe2l58wngYnO5MT7vedFrQVlWcjnSfqiCluMW3qws0NCLTtkZ5hGx5S6vo8MkTtD1ResL7elMybYWpMVXB1B25O9BcRD3VVSdWybZBbcDo6NHNtmxqWIdh4pi3ZmkScbv0Nb2vkW1RmmHh0YUycL+zwH0xQNRPfuj3h/DS3pdQZnNnYNdl0eGqoKzoNO+1ia/hhXOrLty9vfttmd3XWTJsF6XUDEL3DeqLuGp3NBCdjRFRI/DMOc9gXMw4/N/A/5NlTVoqaCs6IqS6iT4aPB3tOhz1fwcgIiIiImpXQducnBz4VAvynUqj0cgajNQ+KLEj0LvSfXuy2acSUFXUKI/gU3oC6Rp3kFINH4QbPNVuu67GZdrWrGkrfujF+7kD39nl2TheXPXjOMpwdjVtPfoE9fG29xfsR3PZUbAD5kp3uZORxpHQa9iZYFepp+u5wLAsYxnu/+1+3L/5fvx64ld8cOQDLEtdhu9PfI9bVtyC4spiGdz/JvUbXPT1Rbhn4z34PeN3WQ5hybElchlalVZm8Ap9gvvggsQLZLvQWnhaoLMjEIHmrw5/heMlVZ/hLw996a0/LDrru/ece/HYkMfacCupMxkaNhSvTnwVE6MnNvuyq5e8EZ0FUk1Wq1XWtZ06dSp69eqF3bt347XXXkNaWhr8/f15uIiIiIioY3REFhsbiz179qBHjx61vr5r1y5ERzcto5CaUUAUerk08ORlavQZyCg+2TGQywlDRRZOhLuDiaHaSFnvsqurnmlrttTfEZnTNxwuRQ3F5ZCZtoII2h42H5a1bEWt2OYoj+DJlNKpdbA6rNhf2HxB2zXZa7zt8yJ5m3dXEaQLwsVxF+Or1K9qjH95+8uyFrOH6Gxr9prZ8PXxRYGlwHtB4s5f75Sd1tld7s/IhUkX1sgWvmPwHTJ7VwQ5xTpuH347OgqRYff0zqex2bRZ1hieXz4fk8Mme0s9iP2+f8D96BPXp8kdxRG1hiT/qnrrR4sZtK1OlEH47LPPZC3bm266SQZvRSeQREREREQdLmg7ffp0/P3vf5clEvT6mhl5FRUVeOyxxzBjxozmXCU1UQ+DuHU3S7aj9PuRUezO2FSVm1CgcqJSpcjnkXoG2xubaQuVBg7fCGjKsqAqzYII3cT5xp1WO1AEwyP0EU2+jb5XcC/szt+N9JJ0edu6EU3/YempR6pT6TDcOLzJy6OO45rka3Ck7AhyynIAxR2MTTGnnDadyKj1dDJWnSdge2pneUJCQAImRU/C8szlMmv1t4zfMNSvqsZ2e/ZT6k8yYCuIoPPLO17GO5p3vJ31iSxio55BHeo4/H38EeUbJT/jR4qO8EJDNW+++SYSEhKQnJyM1atXy0dtFi9e3Fqni4iIiIi6kGYN2v7tb3+TX1zF7WPz589H79695fgDBw7IHnhF/a9HHnmkOVdJTZQcNhDIdwdtA/QpOFFgR4nFDnVJBlKrdUIW7xfDYy2Dtg2vaSs4RWdkZVlQWwpgt1XUuA3VQ/xYbo6ewPuE9pFBW+FIyREkRic2aXlmqxm5llzZ7hnY03u7PHUNojOyBRcugMlkwqHKQ7hj1R3e18SFhn8M+wd+zv0Z+0z7UGovRZJfEu4ZcQ+O5xzHzzk/I7csV9Z/HGMcg4HGgXI51U2JmSKDtsKPKT9iaP/2H7QtsZXg31v/fdp4T8BWuLbPtZBXaIg6ENGhpQjaiprVJqsJ4WA5JOGGG26QpY2IiIiIiDp80DYyMhLr1q3DbbfdhoceesibrSG+8F544YUycCumofYjJmoMkP+zbLu07nrDaQXlSCo46K1nKyQFsjMdwb8xmbYi29A/Gtqc7e4nJZnemrbVNVcHb31D+3rbogTDZExu0vIOFx32tpMDkpu0LOrYRGdoolOt/cXu0htTEqbIGptTe0+VwVhxu7BnGKfE4Q8D/lBjfG0Ghw6G0WCEqcKE3zN/R0mvkmbJDm9JHx75EPmWfNmeGDcR06Om46sTX2GXaZfMGBbZw/3D+te5z0TtVY+gHlibuVa2U0pS0BdVf0+6sgULFrT1JhARERFRF9asQVshMTERP/zwAwoLC3HkiPs2u549eyIkJKS5V0XNwCdqOGJ22pGp0aBAJzohc8mgbe+035BeI9M2lsdblAnQqKDTKLDaXSi11l/TVnD6VXUwphSfQKxvD/iofGBzujuA89X44oa+NzR70PaI+UiTl1c9aNstoFuTl0cdl7jwdkvvW/Dg1gdlHddbBtwCnPntXy+xnAsTL8TCAwvl5+G37N/QLbr9vs/yK/Lxw4kfZFtknT8w/AFoKjSY0nsKcvNyoQ/Uw2qu6siRqKNl2nqklJ5eBoWIiIiIiFpfi/UsJYK0I0aMwLnnnsuAbXum0aGHyk82K1QKjJp0pOUVQ5uxrkambVM7yupMAnSaBpdHsPtXKythzpCdhf11+F8xKGQQ7jnnHnxy/icYEzOmWbare1B32QmSJ9O2qQ4VHvK2k/2ZadvVDQgZgCWXLMGCcQtqBHiaYnrSdG/7l6xf0J59evBTVDorZVt00hZV7YKMKBcRqAvkbdTUYfUIrupA9njp8TbdFiIiIiIiaqFMW+p4kgMSsKbMHeTrod+BvH2AylaOdJ8A9wQuBZEGlrXw8NepYSqzNag8gqxp62HOBGKBWT1n4fyQ8+u9dfxs+Kh9ZEasCNiml6Wj3FbebJm21XsXp64rwjcCqvLmu9YnssNF53wnyk9gT+EeFFmL0B6JmrWfH/pctkX96VlJs9p6k4iaVbfAblBBBSeczLQlIiIiIursmbbUcSRHVHUAZNQfQXTe77IfnXSNu36rXhUmb+kntwCdWg7LbU7YHc56D4vDv2Z5hJbWI8CdLeWCCwcKD5z1chwuh+xFXIj3j4dBY2i2bSSqXnZhdMRo2RbBonWZ69rlwfku/TvZQZNwcbeLEa5nJ03Uueg1esT4uu8MSS1NhcN55ouSRERERETUshi0JSQnTfIeBUWXi/GqnShWqVCidr89gjQsjVBdoL4qQb2owl2bti6OU8ojtLS+wVV1bTdkbTjr5WSVZ8HisMh2z5CezbJtRLUZGT7S2/4t47cmHSRRQ/2j/R/hn7v/iS8OfYHsiuwmH3Srw4rFKYtlW4GCOf3mNHmZRO2R544KUQbkRGnLX2QkIiIiIqL6MWhL6BY+0HsUCrRW9FWl16hnG+PLTsiqC/OryjrOOUPHQ05dMFwns1QVc8v/CB5hHNEsAbBjJce87V7BvZq8XUR16R/cH/4+/rK9LmtdkzL8REbsC9tewPLM5Xhu83O46febsCp9VZMO/tJjS1FQWSDb4yLHISmQpUKoc0oKqHpvHy0+2qbbQkREREREDNoSAF8fX0QpOnksjml9ZGmEtb5677EZm9ibx6ma8GpB29ySM/QWryhAwMlM5ZKsFj+ORr1R1gkVRHkEk8XU5KAtM22pJYkasaOj3SUSzJVmHCg+u7IeqeZU/O/g/2qMszlteHLjkzhRdgIvbnsRr+57FVllDf8cigDyB/s+8D6/qttVZ7VtRB1B9drl1TuiJCIiIiKitsFMW5KSDO7AYqlKJbNsPwwMPvkGUeGibhfwKFUT7l8909ZdQqA+rkB3iQTFWgKl0l0XsyWNjx3vbW/K23RWy6jee3jPYJZHoJY1Lnact73RtLHR89uddvxt3d9gdbovokyOnowx0WNkW3RuNm/tPHy4/0MsSV+Cy5de7i13cCZrctZ4bxMfGTUSvYN4AYs6r16BVXdV7M3f26bbQm4FBQW47rrrEBgYiODgYMybNw+lpfV/j7BYLLjjjjsQFhYGf39/zJo1Czk5Od7Xd+7ciWuuuQbx8fEwGAzo27cvXn75ZR5yIiIionaIQVuSEoxDvEfi9pBBKHH3tYXxUeMRU70uKyHcX+s9CtlnKI8gBVR1RqYqq/rh1FLOiz3P296Qt6FJmbYGtQGx/iyPQS1rXMw4WS9WWJ+7XtamrcvhwsNYmr4UOeVVn6X3Dr+HPfl7ZDsxIBF397sbT415CkE+QXKc01XVYaCo1fzGwTewMn1lvdsktuGz4595n9/U/6Ym7CFR+xdliEKwzn3BVnye6vscUusQAdu9e/di+fLl+O6777BmzRrccsst9c5zzz33YOnSpfjyyy+xevVqZGZm4vLLL/e+vnXrVkRERODjjz+Wy37kkUfw0EMP4bXXXmuFPSIiIiKixqgqXEpdWkJgD2871b/qlvork65soy3qGOURGpJpi5OZtoK6FYK2ojxCiDYEhZWF2F6wHRZ7A7axmlJbqbcDp24B3aBSeG2HWlaoPhT9gvthb9FepJalYn/xfkRGRp42XYW9AjevuhnFlcV4ff/rGBs5Fsmhyfgy5Uv5ukbR4Jmxz8DgMshl3tXvLjy18yn52pDwIYjVxeL7E9/L54sOL8KgQYPq3Ka1mWu9Fy96B/bGiMgRyM/Pb6EjQNT2FEVBv9B+sra0yFDPseQgHOFtvVld1v79+7Fs2TJs3rwZw4cPl+NeffVVTJ8+Hf/+978RE3P6BfXi4mK8++67+OSTTzBpkruT2ffff19m027YsAGjRo3CTTfVvACVnJyM9evXY/HixZg/f34r7R0RERERNQSjMeTtDOhUIkjRK4idUJ3K6N+ImrYiY89T07aVMm1FkHVk+EhvVqEnA7GhjhQe8ba7+Xdr9u0jqs3FcRd7257A6qlEvVsRsBXsLjtWZ6/G+/ve975+S+9b0D+s6t8ycafAO1PeweNDHsfbU96WQdw4/zj52oasDciz5NV5Mqov9+rkq2VAi6izG2Ac4G0fLD7YptvS1YlAqiiJ4AnYClOmTIFKpcLGjbWXkRFZtDabTU7n0adPHyQkJMjl1UUEe0NDQ5t5D4iIiIioqZhpS1KcXxxemfAKPtn7Cbbmb4VaUePOIXfy6NQi2KCBj1qBzeFqWKZtQLVM21J3BmtLExmyHtll2Y3q8f5QUVUHNMkByc2+bUS1EQHWNw+9KTsjW52zGsVWd3C2uj2FdV+AmBQ/CZclXHba+GGRw5CoTpQdnokLGjOSZ+DNXW/CBRdWZK5A3zh3x33V7S3ci22522S7W2A3jIlw18cl6uz6h1Zd9DjbTgGpeWRnZ8syBtVpNBoZXBWv1TWPVquVwd7qxJ0Ldc2zbt06fP755/j++9ovlglWq1U+PMxmsxw6nU75ICIiIqLGaeh3KAZtqUYt1L66vvAP9pe3AccaY2EyVZVKIDeVoiAiQIeMIgtyGlDT1tMRWWuVRxCMOqO3nVuRCwQ2fN7DRYe9bQZtqbXo1DrMTJ6JhQcWwua0YemxpZgWPq3GNHuKqoK2i2csRlpuGvKVfBSXFOPaQdeipLDkjOuZ2W2mDNoKP2f8jPmu028HFjVzPeb0m8MSIdRlVM9UZ6Zty3jwwQfx/PPPn7E0QmvYs2cPLr30Ujz22GO44IK6O5197rnn8MQTT5w2Pi8vT3Z8RkRERESNU1Jy5t+uAoO2dBq9Ri8DKFS3yEC9DNoWlttgtZ/hCkmN8gitk2lr1FcL2pbnNmpe0dGTB8sjUGua1WOWDNoK7+59F0NGDoER7vey3WnH/qL93osSIns8wBYAo9EoLy6Jf7NKcOY/fKJjxSGhQ7CjYAdOlJ/ATtNOxCnukgmC1WGVnaEJfho/TEuaBnOhO6uMqLMLM4QhUh8p69keNh+WnztqXvfddx/mzJlT7zSizmxUVBRyc2v+/bbb7SgoKJCv1UaMr6ysRFFRUY1s25ycnNPm2bdvHyZPniw7Nvvb3/5W7/aIjsruvffeGpm28fHxCA8PR2BgI64KExEREZGk1+vREAzaEp0FkWnrkV9mQ2x9E/tFwKWoobgcUJc1LoDaHJm2eRV11+08ldPl9GbaRvtFw8/Hr0W2j6g23YK6YXT4aKzPWy87Qnp026P4OOpj+Zp4X1Y4KmR7QMiAJtWYvSD2Ahm0FURG723db/O+ti5zHcod5bI9NmIstGotTxZ1KaKWvQjaiprox4uPIwQhbb1JnYoIdIrHmYwePVoGX0Wd2mHDhslxK1eulLfSjRzprlt/KjGdj48PfvnlF8yaNUuOO3jwINLS0uTyPPbu3Ss7KrvxxhvxzDPPnHFbdDqdfJxK1NcVDyIiIiJqnIZ+h+I3LaKzEBVY9eMlt9R2hk+ZGk7f8FbNtA3VVXUoklfe8KBtTkUOyu3ugFWvEHZCR63v/gH3I9bXfRnkeOlxPLPJHVDYnru93o4TG2NcxDj4anxl++fUn2VwyuOn1J+87QlRE5q0HqKOqE9QH297b8HeNt2Wrqxv376YNm0abr75ZmzatAlr167F/PnzcfXVVyMmxl12KSMjQ3Y0Jl4XgoKCMG/ePJkVu2rVKhnwnTt3rgzYjho1ylsSYeLEibIcgphO1LoVD1HqgIiIiIjaFwZtic6yPIJHXmnlGad3+LtvS1RX5AOOM0/fVKLTpVB9aFVN2wY6VnLM2+4Z3LNFto2oPgE+AXh8yOPw9/GXz39I+QG7C3djR547M9aTadsUBo0BUxOnynaprRTrctbJtgjerslYI9tB2iAMDRvKk0VdTvWyOOkl6W26LV3dwoULZVBWlDGYPn06xo0bh7feesv7us1mk5m05eXui63Ciy++iBkzZshM2/Hjx8uyCIsXL/a+vmjRIhmg/fjjjxEdHe19jBgxotX3j4iIiIjqx/IIRGchslqmranMduayA36RVU9KRLatO8uvJUUYIlBgKYCpwgSHy9HooG2vYGbaUttI8EvAX4b+BU9velo+f3nvyyi0FXrrzHYLqAoqna1Lki/Bt0e/le0vUr7ArpJd2Jm7ExV2dwmGSfGT5MUPoq5G/O3wyCrLatNt6epCQ0PxySef1Pl6UlISXC7XafXR/vvf/8pHbR5//HH5ICIiIqL2j5m2RGchIqB6pu2Zg7aOGkHb1vkRHOHr/uEtArZFlUWNz7QNYaYttZ3Lul+G7gHdZTu1LBXmSndnYCOjR0KtqJu8/KHhQxFjcN9ifLTkKL5P+V52TOZxYdKFTV4HUUcUoa8K2ma3UkkfIiIiIiI6HYO2RE2sadug8gjVgraKObNVjnm4oaqjk3xLfoPmOWg+KId6tR7x/vEttm1EZ6JWqXF7n9trjOsR0AP/N+z/muXgiY7MpsVNqzFOo2jQI6gHru9+Pc6NPJcnibokUT4kWBcs28y0JSIiIiJqO7z3k6ipNW0bVB7BXdNWKskEqiXeermcUKzFAIzNmmkrmKymM04vfpznWfK8HdGIoBlRWxoUOgj3nnMvlh5Ziou7X4xpxmmI9IuUJT+aw5VJV0KlVaGwtBBTe0xFgioB0RHRMJlMMqhL1FVF+0WjyFoka6Lbnfa23hwiIiIioi6JQVuis2DQqhGgU6PE6oCpkeURlNrKIzhsUL9/ISKydsI58xUgZkqrZ9ruyG2+jp6Imsv1fa/HReEXwWg0ymBqcxI1a+8Ycodcbkssn6gjB233F+yH0+VEvjUfUah24ZGIiIiIiFoFyyMQnSWjn4+3PMKpHYGcyulf7QdvLeURfHJ3QsncBsXlgOqnh6BUFDT5vDQ203Zb3jZve2DIwCavn4iIOm7Q1iOnIqdNt4WIiIiIqKti0JboLMUEuevaWh0upBaU1zuto1oAVRHlEU6hza4KmCpWM/y3vt6sPYCbLKYGZ9qKTp5EeQQiIuqaagRtLQzaEhERERG1BQZtic7SgGg/b3tLSlH9E2t0cPmdDKIWpZ32sk/O9hrPffd9CuQfabZMW3F7a31KbCU4UuxeX6+QXvDV+DZp3URE1HFF+VbdHSLq2hIRERERUetj0JboLA2J8fe2t6QWnnmGkEQ5UEpzALularzLBW12zaCt4rRDteZfTTo3gdpAaFXaBgVt9xXt87aHhg9t0nqJiKjzZNrmWhi0JSIiIiJqCwzaEp2lflF+8FErDQ7auoLdQVtBXZJR9ULBEags7vmtMSPhMoTKtrL/G6hKs8/6/CiKAqPO2KDyCHsK93jbQyMYtCUi6spY05aIiIiIqO0xaEt0lnQaFQbFBsl2Sn458sts9c8QnORtaszp3raSvsnbrowbC9ewue7xTjt893zcpPMTpg+Tw1J7KSrsFQ3KtB0SPqRJ6yQioo4tWBcMvVov28y0JSIiIiJqGwzaEjXBsMQQb3tnZmm907pOlkcQ1NWDtieqBW2jhsI57Ca4VD7yue/+L4DKsrPevjCdO2gr5JbXfoury+VCSmmKd3qjwZ2dS0REXZO4UyNcH+6taSv+ThARERERUeti0JaoCUYkVQVtd2ScIWhbLdO2RtA2faP7dZUGtvCBQEAULD1muD+g1mIo2xac9fZF6Ks6I0svqVpndfmWfJhtZtlO8q/aRiIi6roi9ZFyaHVaUWhtQN12IiIiIiJqVgzaEjXBsIRgKN6gbUn9E1fPtD0ZQFUshVDyD7tHRg0CfAyyWTZoTtWH9NfnoC5yZ8I2VnJAsrd9sPBgrdMcKTribTNoS0REQqTBHbQVssqyeFCIiIiIiFoZg7ZETRBo8EGy0R1oPWKqgNXmqHvigGhv2QO1+YQcajM3e192xY/ytu3GPnAOnyfbir0CQaseBJz1LLsOPQN7etv7Cqrq1lZ3tPiot50UwExbIiICIgxVd2owaEtERERE1PoYtCVqop4ng7ZOF3A8v7zuCRUVHAGxVeURXC5oM6vq2bqSxtWY3DnpMdgDE2Rbm7Mdyo7Gd0oW5xcHX42vbO8v2F/rNIeLTmb6Aujm363R6yAios6nenmd7LLsNt0WIiIiIqKuqFMFbQsKCnDdddchMDAQwcHBmDdvHkpL668zOmHCBNnhRvXHrbfe2mrbTB1fUqi7h23haF797zdHYLwcquwVQFketJkn69kqKrjiR9ecWOuH4gnPep+qtn/Y6G1TKSr0DuntzZQyV7pr11Z3tKgq0zbBzx0kJiKiri3RPxHnxZyHmfEz0TOk6q4NIiIiIiJqHZ0qaCsCtnv37sXy5cvx3XffYc2aNbjlllvOON/NN9+MrKws7+Of//xnq2wvdb6g7ZHcsnqntZ8M2gpK5lb4FBxyjzf2A/SBp01vixkBV9Rg9/RZO6AuqKo/21B9Q/t624fNVVm1gtPl9JZHiPOPg0HjzhomIqKuTZTXeWXiK7ir310YGTWyrTeHiIiIiKjL6TRB2/3792PZsmV45513MHLkSIwbNw6vvvoqPvvsM2RmZtY7r6+vL6KiorwPkalL1FBJoVWBzqN5ZQ3KtBWUnZ9625Ux59Y5j3PQVd624dA3jT4xfUL71Bm0zanIQYXI+gXQPbh7o5dNRERERERERETNr9MEbdevXy9LIgwfPtw7bsqUKVCpVNi40X0Lel0WLlwIo9GIAQMG4KGHHkJ5eT11SYlOERekg0alNKo8gqA6+L23XRlTdxaTq//lcKk0sm04vKTRHZL1C+1XZ9A2pTTF2+4R1KNRyyUiIiIiIiIiopbhjgR1AtnZ2YiIqOo0Q9BoNAgNDZWv1eXaa69FYmIiYmJisGvXLvz1r3/FwYMHsXjx4jrnsVqt8uFhNrvrhDqdTvloSWL5LpfrtGFt4zrqsD1sQ2OGahWQGOYrs2xFR2Q2h7POfbEHxJ12TkU9W2vUMPjVtQ5DGOzx50GfugrqshzYjq+BK3BAg7cxwT8BOpUOVqdVBm2rv3685Lh3O5IDkzvVeeG+tP1x5vnh56at30v896z1j29Tvt8QEREREVEHCto++OCDeP75589YGuFsVa95O3DgQERHR2Py5Mk4evQounev/Xbx5557Dk888cRp4/Py8mCxWNCSxI+a4uJiORTBYs9zD8+4jjrsqPsSF6jB0Tyg0u7EwRMmqOCqdV9KnQEIP+Wc2oz9UVhuhyMvr851uGKnIi51lXv6zR+iaNjDjdrGRN9EHCo9hKyKLNy+/HYMCxiGc0rOwfKM5d7tCHWFoqioqFOdF+5L2x9vnh9+btr6PcV/z1rv+IrArbjD6WyUlJSc1XxERERERJ1Vuw/a3nfffZgzZ0690yQnJ8tatLm5uTXG2+12FBQUyNcaStTDFY4cOVJn0FaUULj33nu9z8UPlfj4eISHh7d4PVzxw0hRFISFhckfRmIonosfSmL9nnEdddhR96VfrAurj7oDmwV2H7n9de2LY/ifoNr6HhSXEw6DEcrEh2Rpj/rWkd/3Yri2PQ/FUgxD6gqEjH8MoY04RoPCBsmgrbDRtFE+UJVki2hDNIYmDoW50Nypzgv3pe2PN88PPzdt/Z7iv2etd3w9fyPOhl5f1aknERERERF1gKCt+AEgHmcyevRomSW4detWDBs2TI5buXKlDHJ6ArENsWPHDjkUGbd10el08nEq8UPlbH+sNIYIoIn1VB961l/bax1t2BH3pUeEv/f8pBRY690X17TnkTP0bhjDI2EqKJT1lBWTqf51+Ojh6vcHKNsWQLGVQ398BVQxf2rwNl6dfDXsGjt+Tf8VRZVFNd5Psf6xeHzw49BpdJ3uvHBf2sfx5vlpH8eV54X/nrXGe0U8zsbZzkdERERE1Fl1mm/Iffv2xbRp03DzzTdj06ZNWLt2LebPn4+rr75a1qsVMjIy0KdPH/m6IEogPPXUUzLQm5KSgiVLluCGG27A+PHjMWjQoDbeI+pIutcI2jagRIZaC6jUjVqHc+BV3rbh0DeNmjdIG4THRj2Gzyd8jg8u/AAXxFwAfx9/jDCOwIcXfogk/6RGLY+IiIiIiIiIiLpwpm1jLFy4UAZqRU1akbExa9YsvPLKK97XbTab7GSsvLxcPtdqtVixYgVeeukllJWVyRIHYp6//e1vbbgX1BF1N/pB5KK6ZNC2omVWEjcC9sBEaMyp0GZsgKM4Q+R9N2oRKkWFQcZBiBkYIzN8TSYTQvWhMJWaWmabiYiIiIiIiIioawdtQ0ND8cknn9T5elJSkqzL6SGCtKtXr26lraPOzKBVIypQiyxzJY7lW1BR6Wj+lSgKKnpfioDNr0CBC8qBpUD3K5p/PURERERERERE1KY6TXkEorY2PD5ADi12J1bsr9kpXnOxJk70tpXMbS2yDiIiIiIiIiIialsM2hI1k4v6hnnbX+/IbJHjag/pCZfaXRJByXJ3mkdERERERERERJ0Lg7ZEzWRIrD9ig/Wy/fsRE0xltuY/tmofIGqAbCoFR6FYzc2/DiIiIiIiIiIialMM2hI114dJUXDZkBjZdrqAnw8WtMixdUUP8bZ9THtbZB1ERERERERERNR2GLQlakaeoK2w7EArBG1z97TIOoiIiIiIiIiIqO0waEvUjLoZ/dDTaJDtI3kVqLA5mv34uqKHetuaPAZtiYiIiIiIiIg6GwZtiZpZn0hfOXQBOGqyNP/xNfaCU+MODPvk7W7+5RMRERERERERUZti0JaomfUMdwdthSOmiuY/vio17MZ+sqkpyQDK89GRKJWlQNZOqAuPtvWmEBERERERERG1S5q23gCizqZXuDsLVjjcEkFbALbwAdBmb5VtJWsHEDQY7VpFEXx3fQD1kW8RmevuPC0cgGPqM0D3K9p664iIiIiIiIiI2hVm2hI1sx7GqkzbQ3nlLXJ8bZFVQVpl1+doz9QFR6B+czQC1z0L5WTA1vva8kdg2PdZm20bEREREREREVF7xKAtUTPz16kRH+LOthU1bR1OUd22eVkSJ8Hla5RtZd/XUBenol0qOI7Q7+ZAKcv1jrIZ+8PZfYr3eeCax4HUtW20gURERERERERE7Q+DtkQtoG90gBxa7E6kFbRAtq2PAc6Rt8qm4nLCb8c7aFccNhj2fgr1B9OhLs+To2zh/WH/81rkX7EYzqs/Q+ngeXK8AhdUW99r2vpEnVyXszm2nIiIiIiIiIiozTFoS9QC+ka5g7bCvqySFjnGrmHz4NT6y7bh4NdA8Qm0C7YKqD+8GEG/Pe7NsHWF90HBxe8C4X3c0ygKSs+9By7fMPfTQ8vcHZSdBb/tb0H97+4I/eYawG5pvv0gIiIiIiIiImojDNoStYC+0YHe9v4sc8scY30gyvvPlk3FaYP629sBpwNtLWDjv6FkuDtJEyzdpsJx3WK49CE1J1T7wNX3UtlU7Bbojq9o3IoclVCtegYBG/8DxWmHNmcHVL/9p1n2gYiIiIiIiIioLTFoS9TCmbYHslsm01YoG3ITXAExsq2krYXf9jfRlpSjv8Bvz8ey7dLoYb/hOxRd+BrgH1nr9M4BV3rbhiNLG7QOTd4eqD+4GJHvngPV2hdqrn/9K9DkH2jSPhARERERERERtTUGbYlaQEywHgE6tWwfyD672/4bwqULguMPb8GluD/K/lteA/LaKGgpMl+/u8v7tGTUA0DC6PrniRsBe0CsbGpPrANKqzosq41y8HuEfXsdlPQNMrvYw5Uwxv26047A1Y8Crubv/I2IiIiIiIiIqLUwaEvUAhRFQWKIXrazzRZYbC3YSVbCaJQN/bN7vS4nlMM/oy3oUlZCKcmWbWe381He/9ozz6QosPSY4W66nO6gr8NW+/KP/gjVlzfKUgqCPSBOZuoWXPwOHNcugj04WY7X5u4E8vY3344REREREREREbUyBm2JWkh8iM7bTi9q2Q6yKk4GPgUlYzPaguHQN962a/SdMiDbEOX9roLrZIdqqiPLEbTqQcB1SpC74CiCfn0YCtwZtM4BV8B09Y9wXvYmKuPPAzS6GkHitgpcExERERERERE1BwZtiVpIfHD1oK21RY+zIyQZLp278zPlxJbWLw9Qmgtd2hr3tvhFwpU0vsGzOgNi4bjqE7jUWvnccOQ7KL/9BxrTPqjfOg/GTy6A+uM/QGUrl69X9LwEzkvfBE5O72FNnOBti+AvEREREREREVFHxaAtUWsEbQtbNtMWigqu2GHuZlku1CUnWnZ9p65+71dQXA7Zruh1KaBy1/NtsMSxKJr6src2r2rN8whdcj2U3H3QmFOhmDPkeJexF8zjn6g1i9cRGA9XWA/3kxOboFiLm7xfRERERERERERtgUFbohYSH+yuaSuktXCmrRQ7wtv0ydmB1qTa9bm3XdHrsrNahjVpEpwTHpZtUQZBVVmzAzenNhCOy9+Dy8e3zmW4elzgnt/lhC7997PaDiIiIiIiIiKitsagLVELiatRHqGFM21FwDKuetB2J1qLuigFSs5u9zbEnANHSPezXpZrzN2wJE2qep4wFjlzN8F+y+/Iu+YnIKJv/fP3mOpt69JWn/V2EBERERERERG1JU2brp2oE/PTqmH008BUZkd6Yctn2nrKIwjanO1oLbrUX71tZ5+ZTVuYokLxpH9Bu+NVVFQ6oJv+DFzmCsBohMtkOuPsroRRcPr4QWUrkzV2nU53yQYiIiIiIiIioo6EmbZELSguyF0iobDCjhKLrWWPtT4IthB3TVdN/gHAVoHWoEtd6W27el3Y5OW5tP5wTv8PSsb9DdD6NW5mtRaVcWNlU2UpBDK3NXl7iIiIiIiIiIhaG4O2RC0oPqSqREJKfnmLH2tb5BA5VJx2qNa9ArhcLbtCSzG02Vtl0x6YAIT1QluzJoz3tlVHVrTpthARERERERERnQ0GbYlaUHy1urbHTWUtfqwtye6OuATVb/+E/8Z/t+j6lKO/yACxYE2cCCgK2po14XxvWzmyvE23hYiIiIiIiIjobDBoS9RKQdvWyLStTDgfjsmPe5/773gHyNnbYutTDv3kbVuTJqI9cPpFwBU1WLaV7J1QleW29SYRERERERERETUKg7ZErRW0NbV80FZwjb4TpUP/7H0uApctwmGDctRdfsClC0BlVFVHaG3N1WOKt61LX9Om20JERERERERE1FgM2hK1oNggnbdiwPH8li+P4GGLOsfbVgpTWmQd2oz1UCxFsu3qPlV2AtZeOHtM9bZ1qavbdFuIiIiIiIiIiBqLQVuiFqTTqJAY6ivbh3JKYXe0cMdgJ9kD46uetFDQ1nDkB2/b1f8ytCsx58CpD5FNXdqvQFYLZRsTdVSik8KsHVCV57X1lhAREREREVEtGLQlamEDYwPl0Gp34lh+Rascb0dgPFxwp/gqhceafwV2K3Qp7tIITq0/XN0no11RqVHR+w+yqTgqof5iNlTlprbeKqJ2I2D989C8OxnhH50P1RfXQZN/sK03iYiIiIiIiKph0JaohQ2IDfK29+W0UokEUaogMKbFMm2VYyuhqiyRbWvSZECjR3tTcu49cMWNkG2lJBOh314H5eiqtt4sojanHFkBv13vu9suB1SHliH029lAGS9sEBERERERtReatt4Aos5uULWg7f6c1umMTHCFdINizoBSUQjFagZgbLZlK3u/8bYt3afDB+2QWgvHFR9AeXsS1GXZ0BSnAJ9egaCel6LovMfbeuuIWoViLYZq2T8Rkn0AakcZQjSBUBUc8L7u1AVBJaapNAMbXgMGz+eZISIiIiIiageYaUvUwvpFB0B1sjOy/a2VaSuEJHmbanNasy1WqSyFcuhH2Xbpg2GNG4N2yz8SBTMXwBU30jvK9/C3MC6ZDZgz2nTTiFqD/6aXodryLnQn1kLJ2gFd+hooZbnyNWf3yTBduQSuk50IKlvehaoinyeGiIiIiIioHWDQlqiF+ek0SAp1lw84ml8Bq83RKsfcVS1oqyluvqCt/vBSKDZ38NnV7zJ3KYZ2zBHcDY4bv0fRxH/A5eMnx2lNe6H+8np3Z0xEnZXdAsPhpbW+5PANh3PGK3D6R8F1zo1ynGIrh9+Od1p5I4mIiIiIiKg2DNoStYK+ke5gocMJ7M9214JtcSHdvE21Ob15lulywXffZ96nzpPBnnZPUWDp/Qc45i6D3d9d61fJ2glt+pqqSda+hLBFl0M5+suZl+dyQfn9Pwj89WGgJKslt5zorCmHf3aXPQBQ0XMm7I/kIXf2ajhmf4v8K78FAqLka84xd8Ol1sm2Ye9nMthLREREREREbYtBW6JW0DfS19velVFc6zROpwt2h6tFMm2brTxC5lb45LvrYVZGDAKiBqFDiegH85iHvU/9t78lh4YDi6Be9RR8THuh+uomGeRW9i9BwLp/1NqRm8g2Vv/6LHwPfAX1wsuhVBS06m4QNYSyq+oCS0XvywFF5c6sTRoHpyGsasKAaFmbWlDZy6GkbeABJiIiIiIiamMM2hK1YqatsCfDnflWXaXdieve3YwJ/92OH/dkt0CmbfMEbVWbq26druh3NToia9Ik2IK7y7Y2awuUNf9C4G9P1KjZG7b4Cqi/mgu/Xe9D/d4U+GRtqVqA3Qr/zS9VTW86hNAfbgasp2RQ2y3QZmyQyzfsWQg47d7x3jZRC1GVm6AcWSHbroAYVMZU1XWujTVhvLetHFvF80JERERERNTGNG29AURdQU+jAT5qBTaHC1vTigBE13h90a48bE4tlO1Hl+zDFzf0g7GpK9UHwakLhspaBI05HU3N4RUBTNWeL2XbpQtERffpqApFdyCKCqVD/oSQXx+ST9Vr/uF9yaXSQHHaobIUVU1eUYjQpXPgOjgNhogRUFXmQlVSsxMzn7w9cP76LDDsPvcyi1Oh/ug6hJblyedBYtlpKxAQmAz1/i8Qrg8FLnsDCOjXSjtNXYYo3bF3MUJXPQfF5a6f7Rp4JaBS1zubNW40XFCgiP+LoO2QO896E8SFD9WntyMiYxtwzo1Qes8Gmv4vGhERERERUZfCTFuiVqDVqDAkPli2U/PLkVls9b5WXGHDgo1VdVELy21YsLl5sm3tgfFyqCrNlhmiZ8t3z8cI2vBP73Pn+Q8CPgZ0VBU9LoYruKp8hOCKOxcFMz+AS3EHt1w+vqiMHCLbitMG1YGlCFrzKFQbXnO/DgVFk/4Fl8Z9HJSt70FddFy2/Te9COVkwNZDSVsHvz0fQ3FUQl2WDdUns+C35TXA2Tod01EXkHcAoUuuh/rrm6EpOiZHOTUGOIeIoGn9XPoQIObk+z13L1RluQ1bZ+4++G37n3z/61JXAUVpCF52G1RHf4HKUgjVupcQ/ukUKJv+Bzgqm7Z/REREREREXQiDtkStZFz3qhqSm9KqSiS8/usxmK01A3efb89FSn5Zk9fpCEqQQ5E9h6LTa7M2SOY2BK6vykYtGXE3XOf+GR2aygeO675Cycj74JjyJIomPQ/HNV/AFj0czusWo3TwPDhuWo6CSxfKTppExvKpXAOugKXXJXCNni+fiwzdgA3/BnL2wnD0RznOYQiD48J/wOEXVTWf4v5nV3E5EbDlVag+uUIGvVQLL0fQ8nug7P4CisWddd0oruarh0wdjMsFw95PoX57ArRZm6tGx49G4cwPgNDkhi2m20RvW3ti3RmnV2zlUH98GQI2vQD1j/+HkB9vhea1odBlbqoxnchcV//8MIyfXywDy0TUMAUFBbjuuusQGBiI4OBgzJs3D6WlpfXOY7FYcMcddyAsLAz+/v6YNWsWcnJyap02Pz8fcXFxUBQFRUVVd5gQERERUfvAoC1RKxnboypouznNXf+0qMKODzekyrZOo8LF/dzT2J0u3PHJDpgtTat9ag+uCtYo2XsaPb8MynxzqwxICs7Rd6Js2O3oFEKSUDb0FrhG3QFLr8sAXYAcLTppKh39ABDeB1Bp4Jz0KHJvXAf7jT/CPPZvcJ77ZxnUdV7kzjx2jp4Ph2+4bOtTVkD9+bXeVcjlj7gZpiu+hnPk7Sgddjscd+9ByYi/eIO3qpQ1MuilOr4ahqM/QP3tbYj4YAzUH1wMv+1vu4NcZwjIqlb/AxHvj4Bq6V1QVeS34EGjdsdhg+qHexH02+MyI1xwhXRDwfS34LhhKWyRgxu8KGf3Sd62PnXlGd93umM/Qymv/f3m8vFD4QWvwtn/Cu84jTkN6k+vkvV2kbHFXSuaFxuI6iQCtnv37sXy5cvx3XffYc2aNbjlllvqPWL33HMPli5dii+//BKrV69GZmYmLr/88lqnFUHgQYM6WIeiRERERF0Ia9oStZKBsUEI0KlRYnVgc5oZDqcLyw8WyDq3wjXnxuP6ISHYlVWO9MIKHMwpxf1LjmDhn9wBwbNhO3l7v6Cc2AhEnd+o+f03/AtKwVHZrgwfCNWER4DCYnQ5oh5o/LkoNyTD12hEqckEvS4QKDEBWn+UnnsPgn59WE6qmE/Iocs/EuX9roavaBtC4Zz6lHs+fyPKht0G394TgcV/grq8ZhkFuQyXE0jfgID0DcDGf8MYmAhV/0ug6j4LMNasDaouyYDy+3/c8+xcCOP+JcA5N0AX1BeqLTsQVJQFZdAsIHxMKx0sajUuJ4J+fQiqw0u9o8oGzYHuoqdRWVwGKErjlhc7HE4fP6hsZdAf+wmuN0ZCO+bvgHFmrZMbDn7lbTvGP4gKswl+BfthLy+CctFzsPr1hvPca1HQ5xqE/faoLLsgPh/GT6ZAZa+AuETlzL4dGHLX2R8Dok5q//79WLZsGTZv3ozhw4fLca+++iqmT5+Of//734iJiTltnuLiYrz77rv45JNPMGmS+yLM+++/j759+2LDhg0YNWqUd9o33nhDZtc++uij+PFH990hRERERNS+MNOWqJWoVQqGx7uzOUU5hL2ZZvy4vypL7Y/DYuGnVeP9G4chxOC+nrIrswyPfLMXrrPMRrNFDJa1VwXlRNVt0w2Sux+++z7z1sUsnPg8oPY5q+3o7Cp6Xw7H5Mfh1Ikux9yc590PaPR1ziMyevOv+AbOsffAPOoB2G/fhPxLPoZz1HzYg7vVmFZjToVq/asIW3S5rBland/ehe6A7UmqyhKoNvwXIT/Nh2rLOzAc+R7qxTch9JtrgEJ3Vjd1cBlbYdizEKpvboPhZMDWpdbCcembKBnz0NnXm1b7wNJjhvepuGAT/NPtQG3ZtIWp3jII9qAkuM67H6Wj/g+OG5Yg/4rFQOJY76T28AFwXPM5HH6R8rkI2HqoNr6OwN8elwFoIqqyfv16WRLBE7AVpkyZApVKhY0bN9Z6qLZu3QqbzSan8+jTpw8SEhLk8jz27duHJ598Eh9++KFcHhERERG1T8y0JWpF5yYEYtURd924BetTsS+nXLZ7hRvQKzIAJpMVSUY/vPiHnrhj0SGUVTqwZFcWeoVpcOvkxmfcusQt/xF9ZWdByNkDxVbW4F7cVb887g0Glp5zGxynBBKpGkWBa/SdMCXOhDHnd5RUWOF/zlxRMLDew+T0NcI58W8oN5ngG2qEzRkE56CLYBpyJ4yqYpRv/xr+mb/JTszEuVBbCuD6YjaUmR+7V1tZCt8Di9znWq2Fq98foOz9ylvOojptzna4Fs8FZn7KU9dROSoR8PvT0Oz5CFWXB0SdZDWKpryIgIFXAiZTk1ZhPu8x6PpMgfP3l+CTtxcqWzmw/lVg0B01plN2f17jooXhTFm9AdEonPYGwr6fC8VSDFfkAFn/WdTbFheHnM5SYOzTTdp2os4kOzsbERERNcZpNBqEhobK1+qaR6vVymBvdZGRkd55rFYrrrnmGvzrX/+Swdxjx9ydFtZHzCMeHmazuy6/0+mUDyIiIiJqnIZ+h2LQlqgVnZsY6G0v2ZnlbU/vW1XvVugT4Yt/XD4Ad362Uz5/afUJjOsTiyhd49fpijsXSu4+GfTzyd0FRCeecR7RCZHq6Ar3/IFxKBt4Q+NX3AW5tP5wDZ0Ni8kE/8bemn6q0O4oHzwHvpPvR0HqPoR/dyOUwmPyFvOgX+4DrlkIw6FvZGatUNHzEmgvfR35w+6BMWctLBm7oe8+DuZyK4I3/ANKcTqUrJ3w3fcpEPGX5tlhajWq0myov5sNv1My5kXA1jnjZVhjpyCgWVakhqv/5Sj064XwTy+A4rBC2fIuVD2ukh3rCZr8A1Btfe/k+lWo6HUpGpLbaw/vD8ftW1CYnYqQ5KEoXfceglY9CMXlgOrAdwhPXQ+VWoOQwETgmk+aY2+I2p0HH3wQzz///BlLI7SUhx56SJZLmD17doPnee655/DEE0+cNj4vL092fEZEREREjVNS4v4dfyYM2hK1otggHab0jcCK/bk1yiZM7R162rQXDYjCNedk4dNtubJjsn8sO4SXLm18tqsrbgSwbYFs+2RvBwbXXp/Sy2lHwLrnqp5OfMR9mz87DGozTr8IOK76GKr3LoCqshT6lJVwfTAdgTn7vNOUD7wBWnG+9SFwDZuDkkQTdEYjrCYTHFHdoPlgupzOf+MLcEV1h0qXcFp9XGqflONrEPbVPCiWAm9WdemwO+AbNxAF+kSEJA9pcobtqZz+UXCdcyOUzW/JDgkDNr+MovOegHJkOUK/mXcyax9w9bxATttgvqFwBLqvKlt6XYKAyEQoi+bKOrrqk53o6Upz4Pz9P8BQXlygzue+++7DnDlz6p0mOTkZUVFRyM2t+q4g2O12FBQUyNdqI8ZXVlbKWrXVs21zcnK886xcuRK7d+/GokUn79I4+bfdaDTikUceqTU4KwK99957b41M2/j4eISHhyMwsOpiNBERERE1jF5fdynF6hi0JWplL181GE9+sxOf73D/GJvUOxxhfrXXir1jbBzWp5YiJb8cG44XYGu6ERc2MtAmMm09tCJoewYiq05TcEi2beH9oQy4AjDVf5s/tQJjbxRd8BpClt0GxV4BJbPqXDr7zIA9rHfd88aPRHmfK2QpBREcw6I5EDfdOntfDM2gPwNhYYDTIesYq80lDOa2I7rjK6D6+S6ZjSo4/GPh+uMHKNPGw2A0wtHMwdrqnGP/AmX7h1DsFvge+BLqomNQZ2/1vi47J5z+ItCERDtX98kovOwThK1/Bi5RLsFukfuqbHkPqp7X8L1InY4IdIrHmYwePVoGX0Wd2mHDhnkDruJWupEjR9Y6j5jOx8cHv/zyC2bNmiXHHTx4EGlpaXJ5wldffYWKiqq60qKjs5tuugm//fYbunfvXutydTqdfJxK1MNlTVwiIiKixmvodyj2PkDUynQaFe6ZEI+P5g7HzaOi8dSl/eqcVqNWMH9i1Y+otzdkNr5TspBucOjdmbw+OTvq7fBHVZ4H1eqqLFvzuMcAhf9MtBeVcaPhvPozODW+3nGlA66H89I3zzhvyaj74QqomZ2lOvg9jF9eAvU/ExHx/gho3hqH8M8ugrLtwxbZfmoc5egvCF7+F2/A1tl9MkxXfAXEDG2dQ+kfCfPov3qf6qoFbMWFgoJLPgL8a9bcPBv2sD5wzPkRufO2wTXqdjlOlGXw3/ZGk5dN1FGJEgbTpk3DzTffjE2bNmHt2rWYP38+rr76asTExMhpMjIyZEdj4nUhKCgI8+bNk1mxq1atkgHfuXPnyoDtqFGj5DQiMDtgwADvo1u3bt71nVpDl4iIiIjaFqMxRG1kdPcwzBsVA6N//YVqZw6KRmKIO3V+R0YpPlif1rjAraLAFnWObKoqzVB9eQMUq7sTkRqcDgSueRSK1V1bxTlkNmyRgxu1T9TyXEnjUPCHT+EcNR/5Mz+AeczDgM+ZK4qKsgmOm9fIDqucY++Bw7cq00vc6i4zcE9SLXsAPllbWmwf6Mw0+Qeh+vJGKE6bfC7qxjqv+lSex9ZU0f9aOC59Ay6VxltD1zzq/+Cc9X6D3neN5Rx9J5w+7osShgNfyuzvdsXlgrLzU/hvfhkoTG3rraFObuHChTIoO3nyZEyfPh3jxo3DW2+95X3dZrPJTNrycnenpsKLL76IGTNmyEzb8ePHy7IIixcvbqM9ICIiIqKmYHkEonZO1Lz906ho/P3H4/L50z8cwOY+oXjpmpqdl9WnvP/V0Ke4OxZTHfoRYbkHgZt/qZrA5YLqx/+TtVIFpy4Izol/B6ruoKR2RGQmOnuPQ2VeXuNqDfuGwdJjOvyNRpj63Ijw1KWwHVoBXUk6nDYrVAHhULJ2yEBh8M93wxW/XMzUkrtCtaksQ/CKe2QZDMHZ9xIUn/csjCp1mxwv18A/Il8Jgf7oMuiHX4tyXSJ8WyoD3zcM5YPmwH/r61Ccdqi/uA7KpZ+J+iBoc+LC1m+PQb3vc/iL47L9LQT2uQK49MW23jLqpEJDQ/HJJ3V3ypeUlHTaRVxRH+2///2vfDTEhAkTGn8HDxERERG1CmbaEnUAU3qFYN7YJO/znw4U4J3fUxo8f2X8eXCI2+p17o5JNEXHoPqlqrMR313vQ7X9A9l2qXxkNib82kGQhFqOj0Heil40/S047tiMvNkr4Zj7E6yx7rqH6goT1B/OgC7lF6h+ehAB6/4BlNbsFKdOIgBwahDAbgUKjspOrah+qp8fgabwqGzbRID+0jeAk5mubcUWOcRdKiHWXVuzJZUOuQWuKHeWv1KUipCf7wIa+r6pp/xLk9itUC2eB999n3tHiaCy777PoFr9fMusk4iIiIiIujRm2hJ1AIqi4KGLeiM5SIW//3gMThfw3toUXNyzf4OX4eoxFQV/+BzGry533w6/bQG0MRMA//Hw31qVkeO85L+ojBrbQntC7ZpKg6KpLyJi6fVQ8g9DMWcgZJm7xqifeA8d/AoBPWZApXbCXxMMjBQ9oLtv11csRVD98hpCj/wKdcFBRIqRhhCEQwNRYz2yJAuKy4kIRQ1ED4Ju4DzAeE3b7m875LvjHah2fCTbLh9feT5CNKI8Sim6DB8DHH/8CMo7k6Euz4M2azNcn1wJZcqrdWfcVhQh4LcnoT70DUKihgKXvS6q8DbP9ljMCPnhT1BluuuGilIRFb0ug+HQtzIrXdn2PpS+N7SPbGAiIiIiIuo0mGlL1IFM7hWCGYOiZbuw3Iavd+c1an5HcBKckx/zPg/69SGofn0Gqkp3QKi8zyy4Brh7nKauSda+vX4JbKG9TntN1EL22/sJVLs+g/+2N6F5YxRCls6BcmwVQr+dDdX6V6HN2w3FUel+lOZAXZohg78iYCuX4XJAydyO4J/vgnJ0VRvsYTsljtem/yFww7+8o5wX/QuO4GR0SYGxKJz2OlxaUYgAUNI3IPTb64C8AzWns5jht/1tqN84F357F8oLUrr036F++zz4bXlNvsc0pgNAYUrjs3AtZvjuWgD1OxOhOxmwdWoMcF71CcwTnoFrwBXubbMUw3Dw62bacSIiIiIiIjdm2hJ1MLedn4ylO7Mgbj5fuDUHN53fu1Hzu4bNhXXXV9BlboS6NAvY8q57vKJG2dBboW2h7aYOxD8CBTM/QPjm52Ezm6AZfAWsR9bA9+DpndnoMtYDn1yB6tVWXaHdYVc00FSWwGmvhEqlgt03HOqwZDiz90BTdFwGcVVf/wnqP3wJGLtohqLLJTt8U238GRF7v5YdBXqUjLgbhkFXAyYTuip7xCA4rv8WqoVXQGUphCSeJ1wAAHuOSURBVE/BIbjemYTgxAlQqVwIK0iB2pyGALvltHlFIDVgy6vAlle9+a/GoCQoo26FEjsVLk39tZpVZTlQfzobgcVp3nEuQygKp72JoO6T5XlxjrwNql2fytdEcBfj72zmI0BERERERF0Zg7ZEHUzPCH9M7BmMlYeLUFBux5QXf8fsYRGYPFCLUHUDOhNRVCie/C+EL5kNpXpAYsAsOIIS0BEVlFXC5mihWpZdlAhQOS9/F4UmE4xGI8zxF0E79e8oTt+PoMh4lO/+HgH7P4NSVFVb2RUUD9NF7yCkx3Dkn5zPdHLofZ6Xi4hV90B1aJksqWD8YgZcfWZCPeCmLhW89cnaCvXXzyEsZ/dpr4lgYNmQ22Boky1rZ6KHIP+yT2BccTcU0yEoDiv0x3467VYhFxTZyZ7PpIdgW/kcDEe+P21RmuIU4KcHEaF9BhWizIdBj6CiHCgJ58AneCAQNsk9YWUpQn68tca/j9bYUVDPfBE2hFYtMLI/rHFjoTuxFhpzOhxb3gGSeacCERERERE1DwZtiTqgm0fHYFNaKUqtduSXVeLlNSfkIzZIi8W3jTnj/E6/SDiu+wrK+xfJDqdEwMM59h50RJ9vz8FLa7aip9GARbdVC6hQ8wtOgM3uK4Or5YMj4Hv+XahY9R/4714Am18MVFcvhMN2hjqiikp2rOV8e5I749ZhhbJ3EcIO/wTn7MWAT3ynPnOiIzbV9/ci7GTHfx5OkfnZdwaKkqYjcPDMLp1heypRIsIxbyWsyx6F764PZIkNT6eJCIpHRfS50J5/D4pdwfLCQPGUF+BzwRMoPbASgeWpsBSbYChLh5K2Ts6nqiyB3z53hqwMjB/9AWFieb/3hV+3aVCnr4Ri2idftwfEAtd+gULFKJd96nkpG3yTDNoK6p8fhmGCCxh3a+seICIiIiIi6pQYtCXqgLqFGrDkjtF4Zuke/HK40Ds+o7gSX+/IwmV93HUg6xWajIJLP0LY/o9hDh8Of2OvDhcoWn8sXwarXS7gUF4FXvrlCG4Z0XWyNducRoeyobfAMOUhFIhM2qDwhr2HdIEouHQhjHvfA3Z/CZW1WAbSlIWz4DP9XVSGD0CnlL0bYYvnQVV41DvKFtYXqnF3wWQchbDoBFR2sM9gq/ExoGT0X6Gb+jcUZh5DSGQcTGVOGCMiYRbvvbBTAqqh3WDpdSn8RZa4yQSt0Yiig78j9PCXUHZ/IWsun0rJ24+AvP3e5y5dIAovegsh4X3qfF9Xxo+Dc/Sdsp6zEPjr3+CM7gkEDa59P5x2KAeWQmtxAaEXN/mwEBERERFR58WOyIg6qIRQXzxzcTKW3jEat46J8Y5fdTC3URlszpmvyNuKOxpTmQ33fLELzmoVIRasS8X+nLK23KyuSVHcj0ZwGsLgnPY88mavgjNxnHsxVjNCv78JPrmnlwzo0IrSEPDbE1C/OwmakwFbkVnruPAfyJ/1FVwD/wiXT/01VukkfRAcgfGAXzigql5J+czsYX3gnPEycq/7FfkXvg77nGUw/fE7OKa/iMrIITWnDe4Gx9WfwRHa44zLdU56DGUDb5BtBS6olt4pS394uVxQrMVA+iaELf4j1IvmIPS7uVC/Ogi+O96VrxMREREREZ2KmbZEHVzf6ECE+0Rj2cEipOSXY0tqEcwWu7fznc6ozGrH/d8eganUnS0X6qeVdW1FAPe5FakY07dj1ubtilw+fnBe9QlsH18BXeYmmXEb9sM8OAM+Afx6oUMRwbfKUvfQ6YDv7g/ht+djaMxpNf7YuiIHIn/iPxHS49wOl93eGTgNobAmTgQiImA3meDqNRoF8RfBWH4IZce3wK/3+TBpYmEMb2DmuKKgZMzDMJRnQHX0FyilOQj87XHg8jdg2P8l1NteQ2RJ9umzlWQjcMM/4dBrgD43tszOEhERERFRh8WgLVEnMalPON5bmwqH04UNKWYkx0WhvckrsWLtsSIUHCzFgYwC5JSlwFftxNOzAhu8DLvDhbs+34kDueXyeWSAD76+fQxueHcjjpgqZJmEb3dkYnzCGWqrUvuh9UPRRf9D+Io7oUr9XQZuVR/NRFCvS4ELnvBUHm07Igibuw+69L1Q0q3wyz0OlaoSBh8j0HMcDMe3QpW/A+HH10BdmgVjQCzUvqEIOqWTMRGgLh36Zxgm3Q9HUUmb7Q7VQmSKJ45FhV9v+NVSu/aMFAXOi18C3hwLVaUZhqM/wvWvbgjC6Vm0rvC+sPrFQJ/yi3yu/vVZ6DXhgNGdrUtERERERCQwaEvUSUzs7Q7aCr8fL8a17jvO20xRhR3z396InSeK0TcqAE6HA3tzymq9E7j0853494ykMy7TYnPgkR+OYfVR963HAXoNXrysJyICdLh3QjxuX3RIjhe1bUde37f5d4pajCgP4M64/SN0mRvkOMOhb+E6/B2CRPmOMbdB5QqEauV/EZy5B0q3MVBHjpOdokmVZdAUHALsWfDJPQEluwx6cxFQeQ60uSeg2rUD/lY7MHKOqDzaoG1SFx6Fas9bMO76AhpzOkJOjg84OQwS//v95LAaTUkGIB5iv6AACWNQGjkchjE3o8zqA4NGXFBg0LbTCYyBefzjCF5xr7dUgkdl1DBowpJQGtwXvuPvQFGhGeGHFkK98kn5etDKB+D09wOizm+zzSciIiIiovaFQVuiTmJ4Ygj8tWqUVjqwIaUYvx8xId7X0SZlEvJLrbjjq0M4aqqQz3dlmOudfv2xAry1XotHZta9tWVWB+5csBWbU90BWx+1gjevG4rkAKd8fk5cAMb3NGLNYRMyiy1YvCsPd0ZFNOt+UQvT+qHg4ndg2PcZgra+JuuCKi4HDIeXAoeXIhyKDITpxbQpKxEugqIR/RHsGwn1iXUw2i1yMWEnFxd8chh6cii653NtfR3BSROhjLsb8Otdc/12K5Tja+C/bxnUmesQfjJTtqHF310aPWDsDeTuheK0wx6YgKLzn0Hw4OkoM5lgCDACVpZD6MwsPS6GPbonKrd+DEPuDlRqg6CZ9DAK/PvCaDSi3GSCr1orp3WNvgvlmfvhe+BLKE4b1N/cAr+R9wFTHmz5Dc3aAd2J/YBhasuvi4iIiIiIzgqDtkSdhI9ahVFJgVhxqBBmqwNzFmxFqK8GP/3Fkx/YOvZll+GJ5fuRmu8O2OrUCqwOd8ZZzwh/jIz3w6DEcARrbFB0frj1420QL3+wORtf7TJhVGIAnrnck8vo5nK58PTyFG/A1k+rxrMXJ2Nkt1CYqt3GfP8FPWXQVnh7fSZG9YpBNxGpo45DpUF5/+vgP2oOKla/DP99n0Apzz8tc9FDyd0LPfY2ePEy6JuyUgZ9w4z9oIy5A/rScqiW/4TI1N+h2C0yuFudS1HBlTQeZWED4RueCLPTgEBjDMqObYR/WQrKtOEw9L0AJn0SjJExyM84jjBnLvI0sXCdDNBRF5I4Bma/XtAajSg0mWSwttZyC4oiM3P1BgNU2z+UowI2/gfOvO1QjX2iKou8IewW+GRuhpJVAt/cNCj+fjBYncDgywCXFsjdD/2RtVBSVQjZtRiajPUyc9z1sxrB8eOAS15u+zIkRERERERUA4O2RJ3IzP5GGbT1KCi3Y/UhE8bFtXzgSARW31x9DC+uOCyDsEJ0kB6v/KE7kmMjkZVrQp/EaBlkFUEMz/DWsbH47+/uW8lLrXa5/Yff3oQXLkn2xiwWbcvAqiMnSyLo1PjwphGI1tlO24Z+0YGY3jcMP+zPR7nNibkfbMGjFyThyjBP7iV1GIYQlA2fD8PkB1C6+VMEHlsKV85+KIOuREHcFIQU74Vj92Joc3bIyV2+RlhiR0MXEIYKuwJ9ZHeUlZbAvyITFmsldH2moDzzgDsIXJIl5/Ex7QOW3OHNyD2VLXwAVEOuQX7UeIQm9nNnyxqNsIrOq0TWZEA/+BqN3vGewJxLFwAYuwF5ee56uER1UWngnP4CyjTBCNj8invUsZUIy94N1+zFgKqOuwXE+6qiED7Z26FL/w3qA18grNz9/vMU/xBlO1xrHkO4XyTUZdne97m62mJEJrs+bTVcCy+HaqYIHHfmLiyJiIiIiDoWBm2JOpGRiYH44c6x+GLjUSzY5O6tfNeJYoyLEzeSt2zA9n/rM73rFPpF+uL12cOhd5QhyOADm59PrfPOHhaJ5KhQLNmeju0ZpTBb7EjNL8cV7+9BqN8hiI7Vc0urArQPT03EwNigGhm21T0wKQGldkVm3FpsTjz8/TF8tbsAl/QLwbQhNTN4qQPw8YWl16XwHzPPG+i3i6Bp3wko6HEVjForijKPIbjXaBQXFMnXS0wm6Dy3ohuNMJ+cryzSBMOk/0Pppo8RtO9jKFnugK+Hwy8SSvdJMIcPg//Ai5FvUcn5nI3tlIqoMRQFZcPugG+P8cC3t0Fdnicfrg9nwL//dVDpdTCogqBEJSNo52KoM9Yisjwfist5xhCryCwXAdtTuYKTUB43Dr6pK6CUZEMpPIaQ7/8EzP2B546IiIiIqJ1g0Jaok+kV6Y9rz4n0BlBFR2CQ1T9bzmurqoLEwvyJ3XH1gCBEhRhgMpXVO6+iKLh0SAzGxmlRqfHDDe9tQkqBRd4In19WWWPaq4bHYWKP+ss96H1UstbtnQu34JfD7qzjrWlF8vHYsuPoGW7AuQkB+PPEAPDG9U4gMBb2Sp3MWGwQtQ8sPWfK8gvFe35GSPrPqLDaoBt2DUyG7jCGR8BiMsHf3whYGKyl1uPqPhH5Vy5BxIr5UDK2QrEUw3/r6/I1T2d3dRUwcClqWJIvgDZ5HEqcegQEBaM8fSf8j34PFKUCcSNREjMGfuGJKHbqEThoBkoKi6Gb+ACU96dBXZoJn/wDcH12DXDh/1ptn4mIiIiIqG4M2hJ1QoF6DboZfXHcVI59WWbYHO7OulrCysOFeHnlMe/z+yfG49bJPerMhK1PTLAB//tjb3y8oxBbj5tQUOGE1WaHSqVC/0gDHpneG+Vmd5mE+mg1Kjw9vRsuy0nAv386iNRCdwdVwuG8Cvn4YX8h/jUzGRMaUzeSOg9FgS16GJwDL/Rm5tZad5SoFbkMoXBctxiOT66D7sTvtU+jC5Cd3Kn9jajQR8Ee0gN+w/6IYpteZobLiw4iszxiHAwXPubNUPdknleK97n65J0PQbEomPEejEtmQyk3QTmxEcHL7wau+5znnYiIiIiojTFoS9RJDYoNkkFbm8Mlg5TRkc2/juOmMtlBmMeD03rhsj5NK0EQpNfgsRl9T6t9K4a+Wg3KG7gckcF70YAonBOhxrESFX7enY5tmRXYm2mWrxeW23DHV4dwV6ETExINjerzxz1/JdKLLI2ej4ioXlp/FF78NoyW4yjJTUdgcBhK03chwFkEs283+A//I/KLSuW/i+a8PFmexi8o4qwvOjiCu8FxzRdQfTgTKluZrHHrXDIfGPcUTxQRERERURti0JaokxocH4Rvd7o7XNqXU4bxA5p3+cfyK/Dg9/tQXunO4r2gdwjmjU1Cfn4+2hO1SsHo7mHoGeSSQY4DKZmyTMLWE6Ww2l3418+H8S/xj6FqN/x1akztF4kp3f3RXTHAVm6rtWbknqxS3PPtTpRY7JjQKwe3jopk8JaImo+iAuJHwmroLju9qwgaCD9PFq1GL7ptbN6jHT0YhRe9idAfboZit0C1dxECoAMue6l510NERERERA3GoC1RJzU4zlMFEdiXXX9d2cb6YU82/vrVAVTY3AHbHhF+eHByosxube/C/HzwwqXd8ep6ExZty/COtztdKKqw48utGfhyqxhzUI4fkZSOcYl+sKIQhSWl6BdXgX/9dAQlVod8/ddDJvx2xIR7Jlfi8n5VWcZZxRbkFFkRFiaq81YxV9hgtbdcuQoiorNhizkXzsvfherLG6C4HPDbuxCu4sPQjHoYMJ7Hg0pERERE1MoYtCXqpPpEBcJHrcjyCHuzG1pU4HSZRRXYlmqGqawSPcwqrNh9Ah9vzfG+3ivcgLevHwado3kDwy3JR63CPy4fgKsGBWPV8QqsO5ILu0uFY6ZSb+awx+aUQvnw2pbrbapVgCgXLB7/Xn4YP+zyxTlJediZVoDdWe7jERl4GAOjfDEgvhibjuZiQ6pZ1hx+bEY/jIrhP8HU+uwOJ347VoSNa7KRUVACO44hLkCNqQMd6B/a/i+8UMtx9ZqG4onPIXjlA/K5cmITwr66HK4xdwMDb+WhJyIiIiJqRYwYEHVSOo0KPY0G7Msplx1xiQzPxrDYHHj0x2P4+WC1gCXSakxz6eBo3DMuCrEhBphMHSdo6xEfrMe9U+Nww9AQWTohLTMH6zNtWHcoG2ofLXamFdboxOzUTObnpidiyYES/G/NcYh8WnGsxaO6HLNVPlYcqjqOIqP3ni93YXRSIP40Hth2LAcrjxxCpc2G6BA/JAZpMHkA0M3fnc1L1NDP7KmdDopSHp//lI6CkgokR2Yjs6AU+3MrUFBWWWO6zQC+3m1CYogeC+b6w8BD3mVZel0KR3QPuL6/D5qi41BcTjj9wtt6s4iIiIiIuhwGbYk6sQHR/t4g4ntrUzB7SEiD5ssrrcSfF23GzhPFtb6uUSm4a3wcbpvct93VsG0KX60aVw2PxOQkdy/seXl5SC3TYMfxbPSIMaKkxIxjxS6YS8tw1wX9YCsrxv0X9MLAcB8890s6ThRVeJfVO9IfwToVdmWVocJWFXwNNvig6GQAfX2KGetTttXYhqP5Fog+4xduzZHHeWh8MBKCNOgeXYKhEZpaa+fmlVjx65FCTDYEtuThoXZIlNpYsC4V3+08IbO7NSpgUp8I9Az1QbkzH++vTYHjZIWOrSdKzrg8cZHiyrc24opBRkSGltf5nqPOzdXtfJiuXILwI5/Dse97qIbPAwqK2nqziIiIiIi6FAZtiTqxPww0YvGuPFmv9X+/HcfYeBGMrHt60bHWgp8PySCQ5WTdVT+tGpcNDIPRzwdlTh8UlZTh6lHJiDPYO0QN26YQ+zc8KQRJ/g4ZxDWZFMyUQxOCDD7wJBcPiw/AynvPw/7ULFjVvnBYSjC8Z5wMaAeFhGLb4QyYbBpo7BZMGZyErzYewcu/ZcgM3Kp1AT4qBZWeCNvJOrubUwtlFiR25UEc7RmDCnBurAHdzCqcyC3C1vQSLNm7Uwbv9D+lYHrfMNwwTotIHxdyS6zYnVmKsAoNnBbLafV1qWNyuVzywsqGzCz866cDyCiuypoVibY/7snBj/XM76/TYHi8P64d1Q2Jfk6EG8Owak8aXl+XhaN5ZTCVVuLNdZmiOAp0GgV3TrTg0t7+shxIQ4hM8k9WHsG6w7koqTwIu92OoYlh6Gv0wayRwU0/ANQ61Fq4xt6Dgl7Xwaji10UiIiIiotbGb+FEnVi3MANuOa8bXl99TNa2fXp5Kj5KiDptOhHw+9+aY3hz9TFvB1tCuL8P3rtxOIwaqwwURUREyICl0Rgsh1RFpVIQGaA9eWyqAtqifm53owEjTwZ71SoFk3qG4A/ndsfijUexKaMCBpUD887vBX9XOaAPxC+7U7En14bfD+fhRHFVYFeEXJfuysbSXeLZ8dMOv8XmlEF68fDXqlFaWbO8Qt/oNMzsG4LhPTQIVOxgAmX7JkqarD1ejBO7i7E91YSj+fuQa7bIzFkR0D9VUpgvisorZdDUQ6UAt5+fjBm9A2BR+8JZUYKByTHygoL7QoQJgQYfjO0WhPP7x2Pegs3YmVnqnd9qd8l6zYu36XHH2BiUp1jx+6FsFFqOIddcAbtTgdVuh0GrgUZxwVenxZHcUu9FH4+j+e5O/174NV3WwU4t2o0Si01mngfr1UgKD0CYHugVU4Z4PxcmhIW16LGlRlAaGK0nIiIiIqJmxaAtUSd3+4RkLNmZgRNFVuzNLsPFr63DAxPjMONkUGRPphl/+Ww/UgqqareKDsyuPTceVw8MRs/oQFkmgJqXCOZO7hWCq8b0PBkI94PJVAFjgA5TeoXi6jHugJpLF4C9Kdk4XOQOrFcPyHnofVQYnRiIjWklKD8ZqD01YCvszyqRD6x01yYeGp+K0Ql+GJDogKmgGAcLc2G1WHDNaA1i9TzjbUUEM99an4nPt+9AWS3n8VTnJoVg/pgojOmXgOzcPKSVqXE00wS9rz8S/JwY1ivu5HssECZTZZ0Z8sG+WrxxZS+kl2uQkpWPffk2fLQhDSI+fCzfgvuWHKtnKzw1s2vWgNZqVHA4nTIDWBD7sz2jKigsMobzSoHDppOlRba7O/obuDYLfxwUhitDQs+4/0RERERERJ0Rg7ZEnZzeR43HL0zCPd8eleUPsootuOebI3h7Yw7UcMqat46TWXsiK+8PQ2Iwe2goBibHMpu2HQgP0GFAtB8mDDTiwu6+2FfowsETJlS4fKB2VMLop8Elw5PhspTAxy8IX244gtXHS3Ew24zuEQFICtbA12DA5mOm0zpJ255eJB9Y686C9Fi0M09mQ/aJCYavygG9Pg9qpw394ivhr6pEdxjgc0om5amZ28fzK7A9Lxep2flwqM3IyjfDpuTAYbMiLKgAvULUmN7FA3Iie/1gbjm+2HMUhzILEROWj9Q8M9YcLa5RB9nD4KNGTKAP9Dot/DQuDE4IQ58w9/n31JYWdZDP7RaK5ACnN5O2MVSKgmGJIUj0c2DWKCMmdvPDf1ZnYHeGuZbtUcFXq4EKLthdgNXmgNXhgl6jYNY5cbisb6DM6s3IyUNmhQZfbDyOnw8VygsLIb4+CPPVoLRSlHqweIO6HmJ94vHWhmzM6BuCyQM1iNKeubyHeO9V2p2yQ7Yjpgpsys5GibkERpMTlrJSRJerEaZ2yG0/m/OVZbZiS0428gvNuGBwgCxZQkRERERE1BIYtCXqIh2SfT9/DO75bLu3M6J9IuOymv4xgXhoUhxG9YlnsLYdd5Q2rb8RwyM13o7SRCApzF8Hk6VE1tm9bGA4/jSx78nMSmONYabFByv3pKPQpsKGI3my07O6HMqrkI8aNmadbByU2dhD4oORHOyDhAgzysvLYVcVYNPRPOzJLpPlOOrmztwW5TpiA7UI8tMjVN4ab0awxobYIB1Cw+oOCndkItN0274c/LgzHRvT9si6w1VqduonArDT+4VhYt8YRBscGNojFoUFVWUNPMOWrC3dJ8IXi/48Cm+t3I81R4swIjkcw6O1GNYzFhUlRadti+d9GR4e7t02vUblDSQ/M2sIUrNy0TM+yluiISc3Dw6tP/akZMNUqcHH649733vphRV4Y514ZMrj0SPCD4nBWgxKMMNXsSEqzIH8omJYD5fh+50nsCOjVGYG10fU5u0T7ot4Yya0igORwflQOysRHVYOld2CmAIXCouKkbqzCPtOFKC48iiyisphKrPLoLDHY8uOY2C0H26b2BNDwllCgIiIiIiImheDtkRdREywAa/O6onN2Xa8seoIDuSWe+tgXtArGH+5sD/MRQVtvZnUggbFBSFGb/MG2Ipdeqw7kIFiuwZlZWUY2ycGh06YsHhPPg5kV93CXhsRlN2ccrKTNLhvaW+swnKbfAAne3TbWxW0DNQfxYj4APSLK0KA2o5ecYDBaYFf4JnLBTQXEaBLMZUhJasMPkUKiorNCC5SYLeUIUnxhdNiR5jLHSEUwXORHZtjtiC9wIJjJQXYfCQXx/IrUObIQE5RGYosTpnpXls92uqCDBpM7hmC+VP6wNdZ7j1foh5yWxDrvWJwOGYNMnrrWvvpNKioed3Hq74gss5HjVBfnxrTiOVHBhugjQuQ+zq1mx6HzSq8vvIQNqRWZfiK4ybelweygZ8OnP2/VSKrd29OuXy4ebKRRedrtdeLrsvurDLc/skOxAfrMDLZiO7Balw6IgC1hXBFBrCoO+25s6Etife2yPL+/UQmTIXFOKe7GuE+rffZIiIiIiKiM2PQlqgLEbc+XzwwGudGaWBR+8FSWoyeCdEyCCNqT1LX0j3cH0FKWI0syT7BwE0T+uBEdi4qVL44kW1CcEgwUrJMyK/UICWnEKV2FXakFdboJK26hFAD+oTr0TsmFH4qG+IiQqBUViA+Kgz5BYWoUPT4anOqrMFbaj29Rq9gttjxy+FC+XBLPTnci2CDBolhfggzKPAzZKCk3IJi61GUVFgR6KuD4nTApTqKCmslnFDB4XDA36CFBk4E+qVB5bQj2D8bcFQiNLAALpsFYcElsoRDoTUTx/PMyCm1n5IFe6oD8v8ijirijyIOdzJ+22CiFvGwuABcMCAGSQGASueHYnMxJg5MQklRAYyhvjCZapa06ApEQHdM9zD0CuqJUsWA5TvTsD/fhj0nCpFaaK036Cnee2EGNZyKGuG+KgxKMMJmrYCPTo9CcykqnBqsO5qHtML6zu3pAnVqRAYZYPRV4ZwkI8rKy/F7SgmO5LovOKQXWZG+zV1m5PmVaehhNKBnVCAUhx3ljlQcyyuRdcU9mx6oVyM+1E9uY3KkCRF6F4b10MjSDWdDXDQQgdiCskpkFFuRYSnCiRwzwswqWR5CW+DC8ax8ZJXnY1uKSQasRRDZ65c0mT0/pW8EpnYP6PKlS4iIiIiI2oNOFbR95pln8P3332PHjh3QarUoKipq0A+dxx57DG+//bacfuzYsXjjjTfQs2fPVtlmorYKisSLgJCz6wWEqGHELe1xRn+EqCwwGoMRb7CfDO76e4O8dnFL+/Fs2NR6lJSUINoYgmC11VsP+fRb5wNh8qmUz8+JUHtvjdf5B8lb481OLfan5eFQXjk2pZfKGsy1EZ2xFZ0ormPLK84w3pMe6gkGezrZ85R+aBwZhGtgsDbY4INQXzXG9AjHOVE6XDAkCaXFhdWOTxhMJhd0GpV3K7u6pDA//GFQOG4+eYwCgkOx7fAJ5Fo1yDAVQfHRo9JSgcjQQMT5uTC2b7y37ELt70F3+YYyqx1a/2CkZuVBpffHiZwCQGtApqkIDpUWJWXlOCc5AtF6B/olRZ9yntzDR2aGYemWY/h0Rz62pRWiekUQUU9XPOpitjiwN9OdRfzrkZPfVX5xdxAYH2JAbKAP4sKycSSnGCkFu6DAhQCDD/RqyAsTZZZKVDoVlFRUosLmlI8zZXCficie/3FPjnz8Y2W6vAPj+nF6BLFwLxERERFRm+hUQdvKykpceeWVGD16NN59990GzfPPf/4Tr7zyCj744AN069YNf//733HhhRdi37590OvZfToRUV2iAvXQxHqCuJqz6vhK3Bof7KuVtVPF/CMi1fJiWkiYEVsOnZBZuYcyTDDbNUjJLUaBxYm0/DLkldlOy2zVqhVUVoucqRXAR6OCy+mSHWQ1Rri/FpH+PkgKD4Cv2gljkD+slgpo9QbkFZXA4lQjt7gMFQ4FNpsdWh8NtCoXQvwN8IEd4cH+iDS40NNokEE/Z4UZ0ZHu0gKe4yQ6Cay/CAWdSgS0e4b7YrQ8htqzru8r6kNHiJIMdvG+C0V3b8dtutOWWdd5khnB3YJwyYjuMjM9z6bFjzvSsC61BIdzSmsEcXVqBckR/vBVAw5FhZziCuSW2mrNGhZ1fMUD1UpDCIUVnosYdQeDG0oEhvtFGjA40QiHtQJpJU6s2JfjXYfIMv94aw7MdhUenhjT5PUREREREVEXD9o+8cQTcrhgwYIGTS8CAy+99BL+9re/4dJLL5XjPvzwQ0RGRuKbb77B1Vdf3aLbS0REtfNRu4NzInA2yKg6LZAWEBSCw+k5CAwORnFRIXolRMuSAsEhocjONSE6MrxGp12hoWHIyMmFb0AwMnJM0PsHISsvHzrfAOTkF0Kj94PTWob+iVHQOsoQF1UzwHo2Q09HcRGBepgqGZ7t7JnpQ6PcGekPzzQiKycXVrUf8vILkBwbAXu5GZER4TXeI+K9uj81C6XQY8exHJwodckSEMcLLCivdNS4OKJAZNO6UGIVgV53WQ5frQZ6jQJfHxUCfHXQKk4E+xugdtkRFeIPjcsGrc4gSzmEBflD7ajEoKQIhGtt6JMYfdr79e4xkdhd4MJnG45j7fFimbk7a2hsw1PJiYiIiIioWXWqoG1jHT9+HNnZ2ZgyZYp3XFBQEEaOHIn169czaEtE1E6JDq2iArXuuq/Ocm9JAY1aJWvFntppl0qlwOCjRpi/Di6LyKb0R6halH4IhSnQWS145QdTPbe1EzX0okO00Q/+qJDvOZPl9Axg8V6NDhTvxTD0DHR534NhYWE4nJ4Nm8YPWnuZt+6450JAUEgYigvzER4eXnVh4GQHcQ29qFAbjVrB1L7hGBqugmIIxKINRzEqOVRe/CAiIiIiotbXpYO2ImAriMza6sRzz2u1sVqt8uFhNrtvYXQ6nfLRksTyxQ+0U4e1jeuow/awDdwXnpe2fu90xc9LZ9yn9rAN3JeOdV7EI8SgQViYP/LzrTVeFzx9RrbkvoQaNLh8kFHW0m3s/E35fkNERERERB0oaPvggw/i+eefr3ea/fv3o0+fPq22Tc8995y3FEN1IuPFYrG06LrFj5ri4mI5FMFiz3MPz7iOOuS+tI/zwPPSPo57VzovnXGfuC/t4zzwvLTe8RWBW5XqZFS5kURnhkRERERE1IGCtvfddx/mzJlT7zTJyclnteyoqCg5zMnJQXR0tHe8eD5kyJA653vooYdw7733ep+LHyrx8fHyVsXAwEC0JPHDSHR+Im6fFD+MxFA8Fz+UxPo94zrqkPvSPs4Dz0v7OO5d6bx0xn3ivrSP88Dz0nrH1/O5PRvs/JWIiIiIqIMFbcUPAPFoCd26dZOB219++cUbpBUB2I0bN+K2226rcz6dTicfpxI/VM72x0pjiECAWE/1oWf9tb3W0Ybcl/ZxHnhe2sdx70rnpTPuE/elfZwHnpfWO77icTbOdj4iIiIios6qU31DTktLw44dO+TQ4XDItniUllb12i3KKHz99deyLX5g/OUvf8HTTz+NJUuWYPfu3bjhhhsQExODyy67rA33hIiIiIiIiIiIiLqqdp9p2xiPPvooPvjgA+/zoUOHyuGqVaswYcIE2T548GCNOoMPPPAAysrKcMstt6CoqAjjxo3DsmXLeJseERERERERERERtYlOFbRdsGCBfNRH1EqsTmTbPvnkk/JBRERERERERERE1NY6VXkEIiIiIiIiIiIioo6OQVsiIiIiIiIiIiKidoRBWyIiIiIiIiIiIqJ2hEFbIiIiIiIiIiIionaEQVsiIiIiIiIiIiKidoRBWyIiIiIiIiIiIqJ2hEFbIiIiIiIiIiIionaEQVsiIiIiIiIiIiKidoRBWyIiIiIiIiIiIqJ2RNPWG9AZuFwuOTSbzS2+LqfTiZKSEmi12hpDsQ16vb7W1zrakPvSPs4Dz0v7OO5d6bx0xn3ivrSP88Dz0jrHVXxuVaqzywfwfIfyfKei9qs1v/cSERERdUYN/e7LoG0zED9UhPj4+OZYHBEREVGX/U4VFBTU1ptB9eD3XiIiIqLW+e7L8gjNICYmBunp6SgqKkJxcXGLPsR6hH379tUY1jauow7bwzZwX3he2vq90xU/L51xn9rDNnBfeF5a6z0ivqOc7fcb8R1KzC++U1H71prfe/ngMeB7gO+BpvxmbsrfJT54DPge4HuguAWPQUO/+zLTthmIWwHj4uLQmgICAmoMaxvXUYftYRu4Lzwvbf3e6Yqfl864T+1hG7gvPC+t9R4JDAyUj7PFDNuOoS2+9xIRnY2m/l0iImpJDfnuy0xbIiIiIiIiIiIionaEQVsiIiIiIiIiIiKidoTlEToYnU6Hxx57TN7m4Rk+8sgj8rXq4zrqkPvSPs4Dz0v7OO5d6bx0xn3ivrSP88Dz0nrHV3xHISIiai+/mfl3iYg6OsXlcrnaeiOIiIiIiIiIiIiIyI3lEYiIiIiIiIiIiIjaEQZtiYiIiIiIiIiIiNoRBm2JiIiIiIiIiIiI2hEGbYmIiIiIiIiIiIjaEU1bb0BH8txzz+G///0vsrKy4HQ6oSiKHK9SqeRzz1Bg/25EREREzUOj0SAqKgonTpw47TUfHx+Eh4fj9ttvxyOPPMJDTkTUiUyYMAFDhgzBSy+91KzLnTNnDj744IMa4y688EIsW7asWddDRNQUzLRthNWrVyMkJARPPvmk/MPRo0cPOd7Pzw9BQUFyKH44iICtCOiq1eomnRwiIiKizkR8T6qPTqeTF8FFkNbzvUqr1cJut2PmzJlymujoaDm+e/fuWLBgAfbs2YMlS5bg3HPPbaW9ICKizmDatGkyIcvz+PTTT9t6k4iIamDQthHEVbfdu3fLLI7t27dj7dq1MkBrNpvlVToxFD8qhLvuugsOhwPXX399Y1ZBRERE1GnExMTUCNb6+/vXeH4qq9Uq71oS36cefvhh2Gw2PPDAA/K1n376yTudGP/999/jxhtvRK9evTBs2DBMnTq1FfaIiIhai8iGFYlTL7/8skyKEo+UlBQ5TlyoExf6xIW8Bx980Ps73JOdO3/+fPkQyVVGoxF///vfT7sbVswv7uLwPESCFhFRe8KgbRMUFxd72yIjRPCURwgMDJTDpKQk7x8EISAgoNahB7NziYiIqLPwfM/xfE8Swdbq35eq85Sd8vww/+WXX+TzwYMHy6GnNEJeXp43QyoyMlJ+1/rTn/6EgoKCVtknIiJqHSJYO3r0aNx8883ebFhx0W/69OkYMWIEdu7ciTfeeAPvvvsunn766RrziqQq8bdn06ZNcjkvvPAC3nnnnRrT/Prrr4iIiEDv3r1x2223IT8/n6eWiNoVxcXiq2dF/NgQt+mtX78effv2lVflDh06hMOHD8vXRfmEHTt2eIfiD4a4+ufr64vy8nLvUARzRVYJERERUVcjgrPiO5II5nr6BhBlESwWi8yIMhgM8mEymeT0o0aNkt+bxB1PIrtK/IAXP9QXLVokv4utXLmyrXeJiIhasKatuOv1q6++wv79+70X+15//XX89a9/lUlV4m+JmCc3Nxd79+71TiOycUUpnX379snnn332mfxN3q1bNxw9elTe3SHuBhG/75lIRUTtBTNtz9Idd9yBNWvWyB8WycnJsp6auEonD6pKJbNBPENBlEoQKisraww9Advq2SW1DYmIiIg6GvFdSPD8APY89xD1aj3ZtyLoKqYT35H0er2301eR+SQyq+bOnYv09HQUFRV5M6REGSpRvkpkWa1atQoHDx5s9X0kIqLWI4K1Ivu2+u/ksWPHorS0tEZnleIiX/VpxDwiwcrzu/zqq6/GJZdcgoEDB+Kyyy7Dd999h82bN8u/LURE7QWDtmdB1Mb56KOP5C1/EydOlP+wjx8/XmbaCuJHxoABA7zD2n60nBqM9SQ81zUkIiIi6mjCwsJqlEk49XtN9buNRHBW/JgWQdyysjI5TvwI92TiiltdRWbt8ePH5Wv9+vWT37WOHDki73oS0tLSWm3fiIio8xCJWKL2rfibQkTUXjBo2wjih4bIsH3//fflrRSTJk3CihUrcP7558uhCOB6ArLitj0x3Lp1qxznuaLn+XHiySohIiIi6ohOvQDtqVsrsmc9PPUBRfC1egdknk7Dhg8ffsb1PPvss3Jdy5cvx1NPPeVd79KlS+VFcVEmwXPhPDExsZn2joiI2gPxN8XzW1oQF+lECYPqFwFFB+Hi4mBcXJx33MaNG2ssZ8OGDejZs2edpQ9Elq74myX+phARtResadsIt99+u7z9TvzgGDduHNatWyd7K96yZYu8/UL8YRAdkGVkZMhpRPZH9T8wRERERF2Zp25tfTX9RVBW/BgXQ9E5jAj4iqxa8WN88eLFSEhIkGWpxDA1NVX2CP7TTz/J72A///xzq+8TERG1nFtuuUX2EfPFF1/ImrPib0evXr1kyRxxB6woiyM6oxTJVY8//ricR9S0FclTogOzP//5z9i2bZts/+c//5HPxd+VJ554ArNmzUJUVJSsafvAAw+gpKQEu3fv9nYiTkTU1hi0bczBYn1ZIiIiojbLtgoKCpIdzYi6t6IGbkVFhRx30UUXyR/joaGhPDtERJ2IuJPixhtvxM6dO+W/+aJEjrhg93//939ynPh3X7wuOqX03PEhgrb9+/eXFwk/+eQTmV172223yWnEb3qxHFHHVtwdK+qkx8TE4IILLpB3c0RGRrb1LhMReTFoS0RERERERESdggjaDhkyBC+99FJbbwoRUZOwpi0RERERERERERFRO8KgLREREREREREREVE7wvIIRERERERERERERO0IM22JiIiIiIiIiIiI2hEGbYmIiIiIiIiIiIjaEQZtiYiIiIiIiIiIiNoRBm2JiIiIiIiIiIiI2hEGbYmIiIiIiIiIiIjaEQZtiYg6iDlz5kBRFPnw8fFBZGQkpk6divfeew9Op7PBy1mwYAGCg4NbdFuJiIiIiIiI6OwxaEtE1IFMmzYNWVlZSElJwY8//oiJEyfi7rvvxowZM2C329t684iIiIiIiIioGTBoS0TUgeh0OkRFRSE2NhbnnHMOHn74YXz77bcygCsyaIUXXngBAwcOhJ+fH+Lj43H77bejtLRUvvbrr79i7ty5KC4u9mbtPv744/I1q9WK+++/Xy5bzDty5Eg5PRERERERERG1LgZtiYg6uEmTJmHw4MFYvHixfK5SqfDKK69g7969+OCDD7By5Uo88MAD8rUxY8bgpZdeQmBgoMzYFQ8RqBXmz5+P9evX47PPPsOuXbtw5ZVXyszew4cPt+n+EREREREREXU1isvlcrX1RhARUcNq2hYVFeGbb7457bWrr75aBlr37dt32muLFi3CrbfeCpPJJJ+LjNy//OUvclkeaWlpSE5OlsOYmBjv+ClTpuDcc8/Fs88+y1NERERERERE1Eo0rbUiIiJqOeL6myh1IKxYsQLPPfccDhw4ALPZLGvdWiwWlJeXw9fXt9b5d+/eDYfDgV69etUYL0omhIWF8dQRERERERERtSIGbYmIOoH9+/ejW7dusoMy0SnZbbfdhmeeeQahoaH4/fffMW/ePFRWVtYZtBU1b9VqNbZu3SqH1fn7+7fSXhARERERERGRwKAtEVEHJ2rWikzZe+65RwZdnU4n/vOf/8jatsIXX3xRY3qtViuzaqsbOnSoHJebm4vzzjuvVbefiIiIiIiIiGpi0JaIqAMR5Qqys7NlgDUnJwfLli2TpRBEdu0NN9yAPXv2wGaz4dVXX8XMmTOxdu1avPnmmzWWkZSUJDNrf/nlF9mBmci+FWURrrvuOrkMEfAVQdy8vDw5zaBBg3DxxRe32T4TERERERERdTXuNCwiIuoQRJA2OjpaBl6nTZuGVatW4ZVXXsG3334ryxqIIOwLL7yA559/HgMGDMDChQtlULe6MWPGyI7JrrrqKoSHh+Of//ynHP/+++/LoO19992H3r1747LLLsPmzZuRkJDQRntLRERERERE1DUpLtF7DRERERERERERERG1C8y0JSIiIiIiIiIiImpHGLQlIiIiIiIiIiIiakcYtCUiIiIiIiIiIiJqRxi0JSIiIiIiIiIiImpHGLQlIiIiIiIiIiIiakcYtCUiIiIiIiIiIiJqRxi0JSIiIiIiIiIiImpHGLQlIiIiIiIiIiIiakcYtCUiIiIiIiIiIiJqRxi0JSIiIiIiIiIiImpHGLQlIiIiIiIiIiIiakcYtCUiIiIiIiIiIiJqRxi0JSIiIiIiIiIiImpHGLQlIiIiIiIiIiIiakcYtCUiIiIiIiIiIiJqRxi0JSIiIiIiIiIiImpHGLQlIiIiIiIiIiIiakcYtCWiVqcoCubPn88j3wSPP/64PI7UfFJSUuQxXbBgAQ8rERERdTi//vqr/C4jhkSn4u8Hoo6HQVsiaja7d+/GFVdcgcTEROj1esTGxmLq1Kl49dVXO/1RFoE+8SXZ89BoNHL/58yZg4yMjLNaZnl5ufxy1ZpfvHfs2IHZs2cjPj4eOp0OoaGhmDJlCt5//304HI5W2w4iIiKijqD697/6Hg35Pvfss8/im2++6ZDfW/ft2ye/t4qL4O2V+C4rvtNOmDBBfscV33WTkpIwd+5cbNmypa03j4joNJrTRxERNd66deswceJEJCQk4Oabb0ZUVBTS09OxYcMGvPzyy7jzzju7xGF98skn0a1bN1gsFrnv4kvx77//jj179shAdmODtk888YRsiy+X1f3tb3/Dgw8+2Kzb/s477+DWW29FZGQkrr/+evTs2RMlJSX45ZdfMG/ePGRlZeHhhx9GZyUuNlRUVMDHx6etN4WIiIg6iI8++qjG8w8//BDLly8/bXzfvn0bFLQVCRCXXXYZOtr3VhG0Fd9bxXdWEQhtb8R3vMsvvxzLli3D+PHj5XdaEbgVQeYvvvgCH3zwAdLS0hAXF4fOqiV+PxBRy2LQloiaxTPPPIOgoCBs3rwZwcHBNV7Lzc1t9aNcVlYGPz+/Vl/vRRddhOHDh8v2n/70JxiNRjz//PNYsmQJ/vjHPzbbekRGhHg0F/FFXQRsR48ejR9++AEBAQHe1/7yl7/I7APxBb4zstvtcDqd0Gq1jf6BQkRERF2buEPp1O9UImh76vj2qLW+t7aH7/T/93//JwO2L774ovxuW91jjz0mx3dWnmPY3L8fiP6/vTuBs7Ku9wf+Y3cDFGURxQW03Ei6KLgVpV5R9JJbV2kBlaulqAiWSi6E6zVDyS3XLEvT0DSz0rxo6FXcADXXUjFUEjRlcQEUzv/1/d3Xmf/MMOAMzjDPzLzfr9eJOc95zjm/5znnld/5zO/5/hINTnsEoF688sorafvtt18hsA3dunWr8Tlx+dcOO+yQL02K50YhVdk//vGPdNxxx6XPf/7zae21104bbrhh+vrXv77CZVflS7ymTp2a94/3K/+VvNy76cUXX8zFZ6dOnfLrjB49Os8qqO5Xv/pV6t+/f36/+Ov74YcfnmcMr64vfelLFeenbOnSpemss87K7xNBdxRRsd8DDzxQsU8cY9euXfPPMWuhfPlaHE/l46oePp5zzjmpT58+FZd7xSyCJUuWfOo4y+9x0003VQlsy6Kgj0vmKhd/J598ckUbhfiMfvzjH6dSqVRj/+LJkyen7bbbLp/XCIajlUa4+uqr01ZbbZXD0piZUf2zjW3xHZk+fXrabbfd8vNjRshVV11VZb/anNPyeY0xxVgnTZpUca5idkhNPW3feuutfMlcfJ9iv4033jh97WtfW2GcV155Zf4Oxz49e/ZMo0aNSvPnz6/xWOK9Ylb6Ouusky9F/NGPfvSpnw8A0HTVpm6KGiT2ixmf5bqvXHvVtib+rGqqW0PU0TEDOGrjqNmiLoxgtyxqpxhPiBqnekuIyjVsZVGrVq4vV1XTf5Y66o033sg1Z7Rtqx7YhjZt2qTvfe97VWbZzpw5M4fa8bvDeuutl/baa68cyFdWHm/MTj7xxBNz7R6/C33nO9/JtWnUgsOHD08bbLBBvp1yyilVPvPKdWmExnHVV3y+gwYNWmGyxDPPPJPPVe/evfNnEFc1HnXUUelf//pXlf3KvyPEefrGN76R33ePPfao8lhl8QeGeDzGHccZ37HqV9bFBJy46i6uxov33nHHHfP3tLLKx3LNNddU1Ng777xzntQDrB5/ZgHqRRQZ06ZNywVGFFSfJoqb3/72t7kgi5Dw0ksvTYcccki+LCkK0RD/gY+2CxGcRhEVxcBPf/rTXLRFIRLFWmXxWlEsRXgXRW9lEdhGYXjBBRfkgive77333suXsFWeLXzmmWfmfWO2wdtvv5378cYlVFG41RRIf5pyMR0FU9nChQtzK4Jhw4blVhLRguD6669PgwcPTo8//njq169fPo441mOPPTYddNBB+XKu8IUvfGGl7xVjjgIqiur4xeCxxx7Lx/vCCy+kO+64Y5VtGKIFQhxntLf4NFFsDh06NAeiUcDFeO+99948gyH6oFWfqfDQQw/lwj6CzBBjOuCAA3LhGmFnfG7xWUTRHcXn/fffX+X58diQIUPy5xLnLC5hi/MSM2Nj/9qe08qin1mE9sccc0xF796YbVtdfCefe+653N4jvj9RtEZxG9/T8qV/UQBH6B29f2NcL730Uv7s4vv78MMPV2m3EMey77775s8zjue2225Lp556aurbt2/+xQAAaF5qWzdFO4Wo5QYMGJDrkxDB1+rUxKurpro16qDdd989B6RxaX38YTxqsWjhcPvtt+c6NWrICC2jvo7Ar9wKojYtIWqyspp+deuoP/3pT3lyQ7T/qo045giwI7CNejVquQh943xHoDxw4MAq+0edGCFq1IPxe0aElvF7Q3xmUVtH24u4ku2iiy7KvydFkFtZ/D4StWvUylGfRmu5PffcM09yiKA0RP356quv5skE8V4xxnif+Dfes3oYGyF6tDqL964+qaLycUZNHr9fRKuMqIlffvnlXL9WbisRxx3bYyJGTJ6IyRgRIEcoHRNhKrv55pvzsURwHWOK+j4+rxi7FmSwGkoA9eDPf/5zqU2bNvm26667lk455ZTSvffeW1q6dOkK+8b/9bRv37708ssvV2x7+umn8/bLLrusYtuHH364wnOnTZuW97vxxhsrtt1www152x577FH65JNPquw/fvz4/NjQoUOrbD/uuOPy9njf8Nprr+Wxn3feeVX2++tf/1pq27btCturK4/hf/7nf0pvv/126fXXXy/ddtttpa5du5Y6dOiQ75fFGJcsWVLl+e+9916pe/fupaOOOqpiW7xOvGYcQ3Xl4yp76qmn8v3/+q//qrLf9773vbz9/vvvX+nYy+d+9OjRpdq488478/7nnntule2HHnpoqVWrVlU+19gvjn/WrFkV266++uq8vUePHqWFCxdWbB83blzeXnnfQYMG5W0TJ06s2Bbnrl+/fqVu3bpVfL9qe07jteP1OnXqVJo3b16V/cuPxWdZfn7cv+iii1Z6LuI14ru8zz77lJYtW1ax/fLLL8/P/dnPfrbCsVT+7saY4zwccsghK30PAKDpGDVqVJUarS5107rrrlsaMWLECq9Z25r4gQceyNvi3/qqW/faa69S3759S4sXL67Ytnz58tJuu+1W2nrrrSu2TZ48eaXvvbJ6dvPNN69yvKuq6T9LHTVmzJj83JkzZ5Zq48ADD8z13SuvvFKxbc6cOaWOHTuWvvzlL68w3sGDB+dzUha/C8Vn+93vfrdiWxzPpptumo+jeu259tprl954442K7Y899ljeHuNe1Xfg17/+dd7vwQcfXOF3hGHDhn3q7w+XXHJJvh/fgZWZNGlS3udXv/pVxbaov+MY11tvvYpavnwsG264Yendd9+t2Pd3v/td3v773/9+pe8BrJz2CEC9iMuNYqZtzCR4+umn819VY5Zj/FW+8uVTZTErsTx7IMRfeOOv2fFX2LK4PKjs448/zpf/xKX08ZfrGTNmrPCaMcMyLm+qSXmWZ1l5YbT4q3eIWb8x0zL+av/OO+9U3OIv2fFX6uqX2a9MHFfMDIjL32LGa8xGiOOvfLlVjDFmiYZ4z3fffTf/9T8uNavpuGqjfBxjx46tsj1m3IY//OEPK31uzFINNbVFWNl7xTHEjIrq7xV1ecxmqCwuJ6u8IEV5dkLMYq38nuXtlb8DIXpvxV/ry+Lcxf2Y9RptE1bnnMZ7l9tPrEx8/+I149K+mNlRk//5n//Jl7/FpXatW7eu8l2M73P18x6XnVXucRevHzNqqh8zANA81LVuqklda+La+rS6NeqpuAIq6uOYPVmuj+P9o87/+9//nmcL17eV1fSrW0fVpdZdtmxZ+vOf/5xnEkcrgrJokRXtBuJqwfLrlcUM6sozXaOmjc82tpfF8URdWtNY473id6ayOKZ4jXJ9X/07ELNx43PYZZdd8v2avgOxVsWnKV9F+Lvf/a7GK85CjCF+H4qr2cpixmx8n99///0887iyww47rMpM7XLLDbUurB6hLVBvomdRhJ8RcMUl6ePGjcsFXhSBcelWZTVdhh//ga8cjsXlOHFZVLn/VyyOEIVlXIqzYMGCFZ4fl+usTASvlUVgHCFb+TKwKDqjuIr94j0q36K9QG0XU7viiivy5UtxuVZc0h8FVYy9umhjEEF19IWKdhDxPhHw1XRctRG9zuJ4ooCvLIqsKMji8ZWJcDHEZ1Xb94q+rdUL3/IlcNXfq/pnHT1nQ3yuNW2vHpDGe1VfgOJzn/tc/rdyL7e6nNNVfVfK4nOLxTjil6m4NC0u/Ys/RkSf28rnIkT/r8ril4go9Kufi/glqPrla9W/9wBA81HXuqkmda2Ja+vT6ta4JD7q42gfVr0+jsW7GmrB4ZXVaatbR9Wl1o32aNE6rHptV/7MItysvt5FXWrdmsZa/feUcq1buc6NAD1aEURNGgFufAbl87S6tW4ErNH6ItpyxOtG+41ofVE5wI3vZ4yv8uSE8rkoP76qc1EOcNW6sHr0tAXqXQRWEeDGLQqO6L0UvY/KxV1Y2YzYyj2XYjZs9B6NWYyxeFUUOlGoRUFR01+DK/8F+tNUL/ji9WJbBHQr+8t+bcRfxsur8MZfzaOxf/xVPvqcll8jFjuLPlDxePQzi0UW4j2j12v1hR/qqvpx1UYEvTGbtbw4WH1b2Wddm+9AbdX1nNb2uxLfvf/4j//Ii+ZF/7n4pSVeM2adfPGLX6zzOOvzmAGAlqGuNXFtfVrdWn7tWKQrZtbWpPqEgbqIWa01WVmdtrp11DbbbJP/jVq3+joHa7rWXd2aL2Y7R4/cqHPjGMqfT/T4Xd3fi2KfBx98MF9RGBMdYlHoW2+9NffTjdnGKzuuVVHrQv0S2gINqlwI/vOf/6zzc+Ov/iNGjEgTJ06scjlQzCqoq5hJW/kvzjFzIAqc8mX7MfM2iqjYpzyL87Mqh4axwu3ll1+eF28oH1fMwoxZyZVD1sqhdl0D2FgILo4njrPyog9z587N5yseX5lYvCKKswgiY+ZA9VkBNb1XtAWI2QqVZ43EysLlx+vTnDlz8iIUlWfb/u1vf8v/lj+/2p7T1RHfjbiEMW5xfqNQju9kBMXlY41fbipfQhctE2bNmpUvOwQAWq661E0rq/3qsyauS91arm3icvhPq2lWVbfGbMvqY41aaXV+P1gdsUhZHF/Ubp+2GFnMYI3aOGq76uIzixmnn1Yr11XUl9VFrVuuc2OWaiwaHAudxYzrVT2vruJ4opVZ3C6++OK8cNnpp5+eg9z4zOP7+cwzz+TfMyrPtm2ouh+oSnsEoF7Ef9hr+stxuRdTTZcYfZoorqq/5mWXXbbSv8p/2uVf1V8nlFeajVVN4/2iGKr+nnE/enetjlhtNWYxTJo0KRfXlf8CXfl9HnvssdwTuLLySsC1KcjjkrYQ71NZFF9h//33X+XzI9yM8UQhG/2pqovesdF+oPxe8RlEQV9ZrH4cBfuqVu9dHdGbNlbsrVzkx/0oqvv371+nc1oXcWlc+TOrHODGL1xLlizJ96OYjZnlsVpy5fe+/vrr86Vqn3beAYDmrS51U/yBuqa6rz5r4rrUrXHlUmyLuqumgDVaCVQee6hp/FE/xYzOyq655pp6H//KRMgafXJj9mj5d4DKIpCMQPyNN97I53qfffbJfV4rtyeIiRA333xzno1cbrdQX+KKrsq9gaPNXNSx5e9GTXVuTXV/XUXLherKM5HLtW58f6M1WMzArVybx3mM2b6DBg36TGMAVs1MW6DeLtuKkOuggw7KlyBFsBaX8MR/4OOvxNEioa4OOOCA9Mtf/jJfArbddtvlAC5mKkS/0rqKWY+xSFpcQhSvE39pj8u/dtxxx4pi8txzz819eKNAi0vEIpyL591xxx3pmGOOyZeGrY64jOnrX/96+vnPf54XBYjjihmhca4i1Iv3uOqqq/IxVg5M45Kl2BbnMGb/dunSJe2www75Vl0cR8zAiAI4iuUooKLgi6A1jiVmTazKbrvtloPt4447Ln9+Ed5G/6qYFRILccWiFHF+QrQLiNeLv8LHuYr3jiI4itu4bK/yAnP1IfrARW/ZeK84D3E+nnrqqXysMfMj1Pac1kXMcIhZB3E5WrxOtJCI70IU7XE5YojgOL4zEfbHdyu+YzEz48orr8ztQSovlgEAtDx1qZvij9FR68Yf3aP+iSvAYkGq+qyJ61q3Rn0YQWXfvn1z8Bmzb6MWijFEyBkLEJfDvggXo2aLP1xHb9y4kiuC3+iZGq8VC8HG4sXxnGg7Fb1515QIZaNlViygFTVjnNOYATx79uzcxi1mjpbru6h5o9dvHHfUxlEDRnAdQWasb1DfosVEvNexxx6b3yPC2PhsTznllPx4hMTltRViIbpYtCy+Q1HvfhZnn312DtOjdo4Zs9GfOGrY6B0c4wnxO1Ace7Qhi0kc8XtdzPx++OGH8zhru5AxsJpKAPXgT3/6U+moo44qbbPNNqX11luv1L59+9JWW21VOuGEE0pz586tsm/8X8+oUaNWeI3NN9+8NGLEiIr77733XunII48sbbTRRvk1Bw8eXHrxxRdX2O+GG27Ir/nEE0+s8Jrjx4/Pjz3//POlQw89tNSxY8fSBhtsUDr++ONLH3300Qr733777aU99tijtO666+ZbHE+M9aWXXlrl8a9qDMuWLSv16dMn3z755JPS8uXLS+eff34+jg4dOpS++MUvlu6+++58TLGtskceeaTUv3//fD7j9eN4Kh9XZR9//HFpwoQJpS233LLUrl27Uq9evUrjxo0rLV68uFRb06dPL33jG98o9ezZM79GnKu99tqr9Itf/CIfR9miRYtKY8aMqdhv6623Ll100UX52D7ts541a1beHvtX9sADD+TtkydPrtg2aNCg0vbbb1968sknS7vuumtprbXWyufo8ssvr/Lc2p7Tlb135cfiswzvvPNOHnt8B+K70Llz59LAgQNLv/nNb1Z4bown9otz0b1799Kxxx6bv7+VlY+lupo+dwCgaYraoXqNVtu6KercL3/5y6W11147v0a53q1tTVyupeLf+qpbwyuvvFIaPnx4qUePHnn8m2yySemAAw4o3XbbbVWee+2115Z69+5datOmTZVxxGueeuqpefzrrLNOHv/LL79cp5q+PuqoOJ7rrruu9KUvfSnXdXEs8dw4tzNnzqyy74wZM/I443zHmL/61a/murw257Fcp7/99tsrjDVqyprq0okTJ+baPerYGN/TTz9d5blvvPFG6aCDDiqtv/76eexf//rXS3PmzKny+8Gq3rvyY2VTpkwpfe1rX8vfy/hdI/4dNmxY6W9/+1uV58XvcuXvX+zXt2/finq5pmOprvoYgdprFf+zuoEvQNH98Ic/zLMg4/KtNfnXfOpH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oECEtgAAAAAABSK0BQAAAAAoEKEtAAAAAECBCG0BAAAAAApEaAsAAAAAUCBCWwAAAACAAhHaAgAAAAAUiNAWAAAAAKBAhLYAAAAAAAUitAUAAAAAKBChLQAAAABAgQhtAQAAAAAKRGgLAAAAAFAgQlsAAAAAgAIR2gIAAAAAFIjQFgAAAACgQIS2AAAAAAAFIrQFAAAAACgQoS0AAAAAQIEIbQEAAAAACkRoCwAAAABQIEJbAAAAAIACEdoCAAAAABSI0BYAAAAAoECEtgAAAAAABSK0BQAAAAAoEKEtAAAAAECBCG0BAAAAAApEaAsAAAAAUCBCWwAAAACAAhHaAgAAAAAUiNAWAAAAAKBAmlxoe8UVV6QtttgirbXWWmngwIHp8ccfX+X+kydPTttss03ev2/fvumPf/xjxWMff/xxOvXUU/P2ddddN/Xs2TMNHz48zZkzZw0cCQAArJraFwCgZWpSoe2tt96axo4dm8aPH59mzJiRdtxxxzR48OA0b968Gvd/5JFH0rBhw9LIkSPTzJkz04EHHphvzz77bH78ww8/zK9z5pln5n9/+9vfppdeeikNHTp0DR8ZAABUpfYFAGi5WpVKpVJqImJm7c4775wuv/zyfH/58uWpV69e6YQTTkinnXbaCvsfdthh6YMPPkh33313xbZddtkl9evXL1111VU1vscTTzyRBgwYkP7xj3+kzTbbrFbjWrhwYercuXNasGBB6tSp02ofHwBAS6SWajq1r88KAOCzqW091WRm2i5dujRNnz497b333hXbWrdune9PmzatxufE9sr7h5iZu7L9Q5ywVq1apfXXX78eRw8AALWn9gUAaNnapibinXfeScuWLUvdu3evsj3uv/jiizU+56233qpx/9hek8WLF+cet9FSYVVJ95IlS/KtckJenv0QNwAAak/9VNzaV90LANA4tW+TCW0bWixK9p//+Z8pukX89Kc/XeW+F1xwQZowYcIK299+++1c/AIAUHuLFi1yugpa+6p7AQAap/ZtMqHtRhttlNq0aZPmzp1bZXvc79GjR43Pie212b9ctEYvr/vvv/9T+9KOGzcuL4hWeaZt9Bfr2rWrnrYAAHW01lprOWcFrX3VvQAAjVP7NpnQtn379ql///5pypQp6cADD6yYThz3jz/++Bqfs+uuu+bHTzrppIpt9913X95evWj9+9//nh544IG04YYbfupYOnTokG/VRY/duAEAUHvqp+LWvupeAIDGqX2bTGgbYnbriBEj0k477ZRXuZ00aVJeIffII4/Mjw8fPjxtsskm+TKuMHr06DRo0KA0ceLEtP/++6dbbrklPfnkk+maa66pKFoPPfTQNGPGjLzKbvQNK/f86tKlSy6WAQCgMah9AQBariYV2h522GG5b+xZZ52Vw9V+/fqle+65p2LBhdmzZ1dJq3fbbbd08803pzPOOCP94Ac/SFtvvXW688470w477JAff/PNN9Ndd92Vf47XqixmHnzlK19Zo8cHAABlal8AgJarVSlWH+AziZ62nTt3TgsWLNDTFgBALdVsqXsBANZMPaUBKwAAAABAgQhtAQAAAAAKRGgLAAAAAFAgQlsAAAAAgAIR2gIAAAAAFIjQFgAAAACgQIS2AAAAAAAFIrQFAAAAACgQoS0AAAAAQIEIbQEAAAAACkRoCwAAAABQIEJbAAAAAIACEdoCAAAAABSI0BYAAAAAoECEtgAAAAAABSK0BQAAAAAoEKEtAAAAAECBCG0BAAAAAApEaAsAAAAAUCBCWwAAAACAAhHaAgAAAAAUiNAWAAAAAKBAhLYAAAAAAAUitAUAAAAAKBChLQAAAABAgQhtAQAAAAAKRGgLAAAAAFAgbVfnSfPnz0/XX399euGFF/L97bffPh111FGpc+fO9T0+AAAAAIAWpc4zbZ988snUp0+fdMkll6R333033y6++OK8bcaMGQ0zSgAAAACAFqLOM23HjBmThg4dmq699trUtu3/Pf2TTz5J//Vf/5VOOumk9OCDDzbEOAEAAAAAWoS2qzPTtnJgm1+kbdt0yimnpJ122qm+xwcAAAAA0KLUObTt1KlTmj17dtpmm22qbH/99ddTx44d63NsAADQqD744IP03//932nKlClp3rx5afny5VUef/XVVxttbAAANF91Dm0PO+ywNHLkyPTjH/847bbbbnnbww8/nL7//e+nYcOGNcQYAQCgUUQLsKlTp6Zvf/vbaeONN06tWrXySQAAULzQNsLaKFaHDx+ee9mGdu3apWOPPTbPQgAAgObiT3/6U/rDH/6Qdt9998YeCgAALUidQ9v27dunn/zkJ+mCCy5Ir7zySt7Wp0+ftM466zTE+AAAoNFssMEGqUuXLj4BAADWqNar+8QIafv27ZtvAlsAAJqjc845J5111lnpww8/bOyhAADQgtRqpu3BBx+cfv7zn+dFyOLnVfntb39bX2MDAIBGNXHixHx1Wffu3dMWW2yR24JVNmPGjEYbGwAALTy07dy5c8WiCxHcWoABAICW4MADD2zsIQAA0ALVKrS94YYbKn6OGbcAANDcxaK7MVnhqKOOSptuumljDwcAgBakzj1t99xzzzR//vwVti9cuDA/BgAAzUHbtm3TRRddlMNbAAAodGj7l7/8JS1dunSF7YsXL04PPfRQfY0LAAAaXUxKmDp1amMPAwCAFqZW7RHCM888U/Hz888/n956662K+8uWLUv33HNP2mSTTep/hAAA0Ej222+/dNppp6W//vWvqX///mndddet8vjQoUN9NgAANF5o269fv9zTK241tUFYe+2102WXXVbf4wMAgEZz3HHH5X8vvvjiFR6LujgmLwAAQKOFtrNmzUqlUin17t07Pf7446lr164Vj7Vv3z5169YttWnTpt4HCAAAjWX58uVOPgAAxQ1tN9988/yvwhUAAAAAoAChbXXR13b27NkrLEqmrxcAAM3F2WefvcrHzzrrrDU2FgAAWo46h7avvvpqOuigg/JiDNHHK1omhPg56OsFAEBzcccdd1S5//HHH+e2YW3btk19+vQR2gIAUIzQdvTo0WnLLbdMU6ZMyf9Gf9t//etf6eSTT04//vGPG2aUAADQCGbOnLnCtoULF6YjjjgiT2QAAICG0LquT5g2bVq+TGyjjTZKrVu3zrc99tgjXXDBBenEE09skEECAEBRdOrUKU2YMCGdeeaZjT0UAACaqTqHttH+oGPHjvnnCG7nzJlTsVDZSy+9VP8jBACAglmwYEG+AQBAIdoj7LDDDunpp5/OrREGDhyYfvSjH6X27duna665JvXu3btBBgkAAI3h0ksvrXI/1nP45z//mX75y1+m/fbbz4cCAEAxQtszzjgjffDBB/nnaJNwwAEHpC996Utpww03TLfccktDjBEAABrFJZdcUuV+tAbr2rVrGjFiRBo3bpxPBQCAYoS2gwcPrvh5q622Si+++GJ699130wYbbJBatWpV3+MDAIBGM2vWLGcfAIDi97StSZcuXdJbb72Vjj/++Pp4OQAAKISjjjoqLVq0aIXtceVZPAYAAI0e2j733HPp8ssvz/1r58+fn7e988476aSTTsr9bB944IEGGSQAADSGX/ziF+mjjz5aYXtsu/HGGxtlTAAANH+1bo9w1113pUMPPTR98skn+X4sQHbttdem//zP/0z9+/dPd9xxR9p3330bcqwAALBGLFy4MC86FreYabvWWmtVPLZs2bL0xz/+MXXr1s2nAQBA44a25557bho1alQ655xz0nXXXZfGjh2bTjzxxFyw7rzzzg0zOgAAaATrr79+Xq8hbp/73OdWeDy2T5gwwWcDAECDaFWK6QO10Llz5zR9+vS8+FjMLujQoUO655570t57751aupiJEednwYIFqVOnTo09HACAJqWItdTUqVPzLNs999wz3X777XkNh7L27dunzTffPPXs2TO1NEX8rAAAmmM9VeuZtnFZWPmF2rRpk9Zee+3cxxYAAJqbQYMG5X9nzZqVNttsszyzFgAA1pRah7bh3nvvzUlwWL58eZoyZUp69tlnq+wzdOjQ+h0hAAA0kphR+9BDD6Wrr746vfrqq2ny5Mlpk002Sb/85S/TlltumfbYYw+fDQAAjRvajhgxosr973znO1XuxwyEaJ0AAADNQbRG+Pa3v52++c1vphkzZqQlS5bk7XE52/nnn5/XdwAAgPrWurY7xszaT7sJbAEAaE5iMd6rrroqXXvttaldu3YV23ffffcc4gIAQKOGtgAA0NK89NJL6ctf/vIK26Nl2Pz58xtlTAAANH9CWwAAWIkePXqkl19+eYXt//u//2tRXgAAGozQFgAAVuLoo49Oo0ePTo899lhev2HOnDnppptuSt/73vfSscce67wBAND4C5EBAEBLctppp+W1G/baa6/04Ycf5lYJHTp0yKHtCSec0NjDAwCgmWpyM22vuOKKtMUWW6S11lorDRw4MD3++OOr3H/y5Mlpm222yfv37dt3hRV+S6VSOuuss9LGG2+c1l577bT33nunv//97w18FAAANAUxu/b0009P7777bnr22WfTo48+mt5+++10zjnnpI8++qjB31/tCwDQMq1WaBuLLlx33XVp3LhxuYANsXrum2++mRrSrbfemsaOHZvGjx+f32/HHXdMgwcPTvPmzatx/0ceeSQNGzYsjRw5Ms2cOTMdeOCB+RYFd9mPfvSjdOmll+ZVgeOyt3XXXTe/5uLFixv0WAAAaDrat2+ftttuuzRgwIDUrl27dPHFF6ctt9yyQd9T7QsA0HK1KsVU0zp45pln8mzUWDH3tddeyyvq9u7dO51xxhlp9uzZ6cYbb2ywwcbM2p133jldfvnl+X5cqtarV698aVpculbdYYcdlj744IN09913V2zbZZddUr9+/XJIG4fes2fPdPLJJ+dL3MKCBQtS9+7d089//vN0+OGH12pcCxcuzOcjntupU6d6O14AgJagiLXUkiVL0g9/+MN033335cD2lFNOyX/8v+GGG/LM2zZt2qTjjz8+nXrqqS2q9i3iZwUA0JTUtp6qc0/bmOl6xBFH5BmqHTt2rNg+ZMiQ9I1vfCM1lKVLl6bp06fn2b1lrVu3zgHytGnTanxObI/xVhazaO+8887886xZs9Jbb72VX6MsTloUyPHclRWuUcTHrfLJLhfScQMAoPaKWD9F+6yrr74614lx9dbXv/71dOSRR+b2CDHLNu5HcNvca191LwBA49S+dQ5tn3jiiVzAVrfJJpvkIrChvPPOO2nZsmV5JkBlcf/FF1+s8Tkxnpr2L4+z/O+q9qnJBRdckCZMmLDC9uhvpq0CAEDdLFq0qHCnLNZFiCvIhg4dmltrfeELX0iffPJJevrpp3Of24ZWlNpX3QsA0Di1b51D21gttzyztLK//e1vqWvXrqkliBkPlWcxxPmIS9Xi+F0mBgBQN7FgbNG88cYbqX///vnnHXbYIdfAY8aMWSOBbZGoewEAGqf2rXNoG7MNzj777PSb3/wm34/CNXrZRj+vQw45JDWUjTbaKF+CNnfu3Crb436PHj1qfE5sX9X+5X9j28Ybb1xln+j9tTJRtMeturhkLW4AANReEeunmOUavWzL2rZtm9Zbb7019v5FqX3VvQAAjVP71rlCnjhxYnr//fdTt27d0kcffZQGDRqUttpqq9zf9rzzzksNJYrmmO0wZcqUKj0g4v6uu+5a43Nie+X9QywmUd4/VvyN4rXyPjFr9rHHHlvpawIA0PzFol2xjsPBBx+cb9EC67vf/W7F/fKtoah9AQBatjrPtI3FCiL4/N///d/0zDPP5AD33/7t36osaNBQoiXBiBEj0k477ZQGDBiQJk2alFfIjUUhwvDhw3Nv3ei9FUaPHp1D5Qia999//3TLLbekJ598Ml1zzTUVs4RPOumkdO6556att946h7hnnnlmXlU3VgcGAKBlipqzsm9961trfAxqXwCAlqvOoW3ZHnvskW9r0mGHHZYX+4rVfGOxhLiM65577qlYTCHaNFSeYrzbbrulm2++OZ1xxhnpBz/4QQ5mY/Xc6EtWdsopp+Tg95hjjknz58/PxxSvWcTeagAArBk33HBDo59qtS8AQMvVqhTXftVRtBO45JJL0gsvvJDvb7vttnnG6pqYbVtE0VIhZiAvWLDAQmQAAGqpZkvdCwCwZuqpOve0vfLKK9O+++6be9hG+4G4xRsMGTIkXXHFFZ9x2AAAAAAALVud2yOcf/75eZbt8ccfX7HtxBNPTLvvvnt+bNSoUfU9RgAAAACAFqPOM22j72vMtK1un332ydN6AQAAAABYg6Ht0KFD0x133LHC9t/97nfpgAMO+AxDAQAAAACgzu0Rtttuu3Teeeelv/zlL2nXXXfN2x599NH08MMPp5NPPjldeumlVdomAABAU3LXXXfVaUIDAADUt1alUqlUlydsueWWtXvhVq3Sq6++mloCq+gCADSfWqp169a1rneXLVuWWpKifVYAAM21nqrzTNtZs2Z91rEBAEBhLV++vLGHAABAC1ennrYff/xx6tOnT3rhhRcabkQAAAAAAC1YnWbatmvXLi1evLjhRgMAAAXzwQcfpKlTp6bZs2enpUuXVnnMGg4AADSEOrdHGDVqVLrwwgvTddddl9q2rfPTAQCgyZg5c2YaMmRI+vDDD3N426VLl/TOO++kddZZJ3Xr1k1oCwBAg6hz6vrEE0+kKVOmpD//+c+pb9++ad11163y+G9/+9v6HB8AADSaMWPGpP/4j/9IV111VV4w4tFHH81Xn33rW99Ko0eP9skAAFCM0Hb99ddPhxxySMOMBgAACuSpp55KV199dWrdunVq06ZNWrJkSerdu3f60Y9+lEaMGJEOPvjgxh4iAADNUJ1D2xtuuKFhRgIAAAUTs2ojsA3RDiH62m677bZ51u3rr7/e2MMDAKCZ0pQWAABW4otf/GJuD7b11lunQYMGpbPOOiv3tP3lL3+ZdthhB+cNAIDihLa33XZb+s1vflPjCrozZsyor7EBAECjOv/889OiRYvyz+edd14aPnx4OvbYY3OIe/311/t0AABoEP93rVcdXHrppenII49M3bt3z6vpDhgwIG244Ybp1VdfTfvtt1/DjBIAABrBTjvtlL761a9WtEe455570sKFC9P06dNTv379fCYAABQjtL3yyivTNddcky677LLUvn37dMopp6T77rsvnXjiiWnBggUNM0oAAGgEe+65Z5o/f/4K2yO4jccAAKAQoW20RNhtt93yz2uvvXbF5WLf/va3069//ev6HyEAADSSv/zlLyu0AwuLFy9ODz30UKOMCQCA5q/OPW179OiR3n333bT55punzTbbLD366KNpxx13TLNmzUqlUqlhRgkAAGvQM888U/Hz888/n956662K+8uWLcttEjbZZBOfCQAAxQht4zKwu+66K6+kG71tx4wZkxcme/LJJ9PBBx/cMKMEAIA1KPrVtmrVKt9qaoMQV5xFuzAAAChEaBv9bJcvX55/HjVqVF6E7JFHHklDhw5N3/nOdxpijAAAsEaVryLr3bt3evzxx1PXrl0rHot1HWJRsjZt2vhUAAAoRmjbunXrfCs7/PDD8w0AAJqLaAUWypMVAACg0KFtiBV0Y8bBvHnzVihkhw8fXl9jAwCARvfKK6+kSZMmpRdeeCHf32677dLo0aNTnz59GntoAAA0U3UObX//+9+nb37zm+n9999PnTp1yn2+yuJnoS0AAM3Fvffem9uARY/b3XffPW97+OGH0/bbb5/r4n//939v7CECANAMtSpFs646+NznPpeGDBmSzj///LTOOus03MiakIULF6bOnTunBQsW5CAbAIDmUUvF4ruDBw9O//3f/11l+2mnnZb+/Oc/pxkzZqSWpMifFQBAc6qn/n9z2lp6880304knniiwBQCg2YuWCCNHjlxh+1FHHZWef/75RhkTAADNX51D25hp8OSTTzbMaAAAoEC6du2annrqqRW2x7Zu3bo1ypgAAGj+atXT9q677qr4ef/990/f//7388yCvn37pnbt2lXZN3p+AQBAU3b22Wen733ve+noo49OxxxzTHr11VfTbrvtVtHT9sILL0xjx45t7GECANCSe9q2bl27CbmxENmyZctSS6O3FwBA86ql2rRpk/75z3/mmbaTJk1KEydOTHPmzMmP9ezZM09iiJZhlRflbQmK+FkBADTHeqpWM22XL19en2MDAIBCK89riFB2zJgx+bZo0aK8rWPHjo08OgAAmrtahbYAANDSVJ9FK6wFAKBwC5FNmzYt3X333VW23XjjjWnLLbfMizBEr68lS5Y0xBgBAGCN+9znPpe6dOmyyhsAADTqTNtYjOErX/lKOuCAA/L9v/71r2nk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ygAAAAAAUCBCWwAAAACAAhHaAjRzHTp0SOPHj8//AgBAc6b2BZoLPW0BAAAAAArETFsAAAAAgAIR2gIAAAAAFIjQFgAAAACgQIS2AAAAAAAFIrQFaEK+8pWvpJNOOqneX/eII45IrVq1qnLbd9996/19AACgttS+QEvWtrEHAEAxREh7ww03VNzv0KFDo44HAAAaitoXKDozbQGaiJgNO3Xq1PSTn/ykYjbsa6+9lrcNGDAgh6wbb7xxOu2009Inn3xSZYbC8ccfn2+dO3dOG220UTrzzDNTqVSq8vrx/B49elTcNthgg0Y4SgAAUPsCCG0BmogIa3fdddd09NFHp3/+85/51q5duzRkyJC08847p6effjr99Kc/Tddff30699xzqzz3F7/4RWrbtm16/PHH8+tcfPHF6brrrquyz1/+8pfUrVu39PnPfz4de+yx6V//+tcaPkIAAPg/al+gpWtVqj7VCoDCilmz/fr1S5MmTcr3Tz/99HT77benF154Ic+8DVdeeWU69dRT04IFC1Lr1q3zc+bNm5eee+65in1iNu5dd92Vnn/++Xz/lltuSeuss07acsst0yuvvJJ+8IMfpPXWWy9NmzYttWnTphGPGACAlkrtC7RketoCNGER1sbs23IYG3bffff0/vvvpzfeeCNtttlmedsuu+xSZZ94zsSJE9OyZctyKHv44YdXPNa3b9/0hS98IfXp0yfPvt1rr73W8FEBAMCK1L5AS6I9AgAr6N27d+59+/LLLzs7AAA0a2pfoIiEtgBNSPv27fPs2LJtt902tzCo3Onm4YcfTh07dkybbrppxbbHHnusyus8+uijaeutt15p64OYpRs9bWNhMwAAaAxqX6AlE9oCNCFbbLFFDmBfe+219M4776Tjjjsuvf766+mEE05IL774Yvrd736Xxo8fn8aOHZv72ZbNnj07b3vppZfSr3/963TZZZel0aNH58eilcL3v//9HOTG606ZMiV97WtfS1tttVUaPHhwIx4tAAAtmdoXaMksRAbQhPztb39LI0aMSE8//XT66KOP0qxZs9I//vGPHLrGti5duuTHzz333NS2bduKBRy23377tHz58nTzzTfn2bXHHnts3if63MbrHHjggWnmzJlp/vz5qWfPnmmfffZJ55xzTurevXtjHzIAAC2U2hdoyYS2AC1s1V0AAGiu1L5Ac6E9AgAAAABAgQhtAQAAAAAKRHsEAAAAAIACMdMWAAAAAKBAhLYAAAAAAAUitAUAAAAAKBChLQAAAABAgQhtAQAAAAAKRGgLAAAAAFAgQlsAAAAAgAIR2gIAAAAAFIjQFgAAAAAgFcf/AzB9kSLAAKmBAAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data", + "jetTransient": { + "display_id": null + } + } + ], + "execution_count": 11 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4.7 保存结果" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-09T16:28:50.888298Z", + "start_time": "2026-03-09T16:28:50.733200Z" + } + }, + "source": [ + "# 确保输出目录存在\n", + "os.makedirs(OUTPUT_DIR, exist_ok=True)\n", + "\n", + "# 生成时间戳\n", + "start_dt = datetime.strptime(TEST_START, \"%Y%m%d\")\n", + "end_dt = datetime.strptime(TEST_END, \"%Y%m%d\")\n", + "date_str = f\"{start_dt.strftime('%Y%m%d')}_{end_dt.strftime('%Y%m%d')}\"\n", + "\n", + "# 保存每日 Top N\n", + "print(f\"\\n[1/1] 保存每日 Top {TOP_N} 股票...\")\n", + "topn_output_path = os.path.join(OUTPUT_DIR, \"rank_output.csv\")\n", + "\n", + "# 按日期分组,取每日 top N\n", + "topn_by_date = []\n", + "unique_dates = test_data[\"trade_date\"].unique().sort()\n", + "for date in unique_dates:\n", + " day_data = test_data.filter(test_data[\"trade_date\"] == date)\n", + " # 按 prediction 降序排序,取前 N\n", + " topn = day_data.sort(\"prediction\", descending=True).head(TOP_N)\n", + " topn_by_date.append(topn)\n", + "\n", + "# 合并所有日期的 top N\n", + "topn_results = pl.concat(topn_by_date)\n", + "\n", + "# 格式化日期并调整列顺序:日期、分数、股票\n", + "topn_to_save = topn_results.select(\n", + " [\n", + " pl.col(\"trade_date\").str.slice(0, 4)\n", + " + \"-\"\n", + " + pl.col(\"trade_date\").str.slice(4, 2)\n", + " + \"-\"\n", + " + pl.col(\"trade_date\").str.slice(6, 2).alias(\"date\"),\n", + " pl.col(\"prediction\").alias(\"score\"),\n", + " pl.col(\"ts_code\"),\n", + " ]\n", + ")\n", + "topn_to_save.write_csv(topn_output_path, include_header=True)\n", + "print(f\" 保存路径: {topn_output_path}\")\n", + "print(f\" 保存行数: {len(topn_to_save)}({len(unique_dates)}个交易日 x 每日top{TOP_N})\")\n", + "print(f\"\\n 预览(前15行):\")\n", + "print(topn_to_save.head(15))\n", + "\n", + "print(\"\\n训练流程完成!\")" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "预测结果已保存: output\\learn_to_rank_predictions.csv\n", + "特征重要性已保存: output\\feature_importance.csv\n", + "策略统计已保存: output\\strategy_statistics.csv\n", + "\n", + "训练流程完成!\n" + ] + } + ], + "execution_count": 12 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. 总结\n", + "\n", + "本 Notebook 实现了完整的 Learn-to-Rank 训练流程:\n", + "\n", + "### 核心步骤\n", + "\n", + "1. **数据准备**: 计算 49 个特征因子,将 `future_return_5` 转换为 20 分位数标签\n", + "2. **模型训练**: 使用 LightGBM LambdaRank 学习每日股票排序\n", + "3. **模型评估**: 使用 NDCG@1/5/10/20 评估排序质量\n", + "4. **策略分析**: 基于排序分数构建 Top-k 选股策略\n", + "\n", + "### 关键参数\n", + "\n", + "- **Objective**: lambdarank\n", + "- **Metric**: ndcg\n", + "- **Learning Rate**: 0.05\n", + "- **Num Leaves**: 31\n", + "- **N Quantiles**: 20\n", + "\n", + "### 输出结果\n", + "\n", + "- rank_output.csv: 每日Top-N推荐股票(格式:date, score, ts_code)\n", + "- 特征重要性排名\n", + "- Top-k 策略统计和图表\n", + "- NDCG训练指标曲线\n", + "\n", + "### 后续优化方向\n", + "\n", + "1. **特征工程**: 尝试更多因子组合\n", + "2. **超参数调优**: 使用网格搜索优化 LambdaRank 参数\n", + "3. **模型集成**: 结合多个排序模型的预测\n", + "4. **更复杂的分组**: 考虑按行业分组排序" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/src/experiment/regression.ipynb b/src/experiment/regression.ipynb index 1b9a290..04e4bde 100644 --- a/src/experiment/regression.ipynb +++ b/src/experiment/regression.ipynb @@ -11,8 +11,8 @@ "cell_type": "code", "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:26:35.493553Z", - "start_time": "2026-03-09T15:26:34.919597Z" + "end_time": "2026-03-10T13:47:49.943018Z", + "start_time": "2026-03-10T13:47:49.364849Z" } }, "source": [ @@ -49,8 +49,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:26:35.507113Z", - "start_time": "2026-03-09T15:26:35.502592Z" + "end_time": "2026-03-10T13:47:49.953378Z", + "start_time": "2026-03-10T13:47:49.948493Z" } }, "cell_type": "code", @@ -124,8 +124,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:26:35.516098Z", - "start_time": "2026-03-09T15:26:35.511343Z" + "end_time": "2026-03-10T13:47:49.966103Z", + "start_time": "2026-03-10T13:47:49.958743Z" } }, "cell_type": "code", @@ -244,8 +244,8 @@ "cell_type": "code", "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:26:35.526730Z", - "start_time": "2026-03-09T15:26:35.522343Z" + "end_time": "2026-03-10T13:47:49.975105Z", + "start_time": "2026-03-10T13:47:49.971219Z" } }, "source": [ @@ -265,10 +265,10 @@ " \"objective\": \"regression\",\n", " \"metric\": \"mae\", # 改为 MAE,对异常值更稳健\n", " # 树结构控制(防过拟合核心)\n", - " \"num_leaves\": 20, # 从31降为20,降低模型复杂度\n", - " \"max_depth\": 5, # 显式限制深度,防止过度拟合噪声\n", - " \"min_child_samples\": 50, # 叶子最小样本数,防止学习极端样本\n", - " \"min_child_weight\": 0.001,\n", + " # \"num_leaves\": 20, # 从31降为20,降低模型复杂度\n", + " # \"max_depth\": 16, # 显式限制深度,防止过度拟合噪声\n", + " # \"min_child_samples\": 50, # 叶子最小样本数,防止学习极端样本\n", + " # \"min_child_weight\": 0.001,\n", " # 学习参数\n", " \"learning_rate\": 0.01, # 降低学习率,配合更多树\n", " \"n_estimators\": 1000, # 增加树数量,配合早停\n", @@ -284,12 +284,8 @@ " \"random_state\": 42,\n", "}\n", "\n", - "# 数据处理器配置\n", - "PROCESSOR_CONFIGS = [\n", - " {\"name\": \"winsorizer\", \"params\": {\"lower\": 0.01, \"upper\": 0.99}},\n", - " {\"name\": \"cs_standard_scaler\", \"params\": {}},\n", - "]\n", - "\n", + "# 数据处理器配置(新 API:需要传入 feature_cols)\n", + "# 注意:processor 现在需要显式指定要处理的特征列\n", "\n", "# 股票池筛选函数\n", "# 使用新的 StockPoolManager API:传入自定义筛选函数和所需列/因子\n", @@ -309,8 +305,8 @@ " \"\"\"\n", " # 代码筛选(排除创业板、科创板、北交所)\n", " code_filter = (\n", - " ~df[\"ts_code\"].str.starts_with(\"300\") & # 排除创业板\n", - " ~df[\"ts_code\"].str.starts_with(\"688\") & # 排除科创板\n", + " ~df[\"ts_code\"].str.starts_with(\"30\") & # 排除创业板\n", + " ~df[\"ts_code\"].str.starts_with(\"68\") & # 排除科创板\n", " ~df[\"ts_code\"].str.starts_with(\"8\") & # 排除北交所\n", " ~df[\"ts_code\"].str.starts_with(\"9\") & # 排除北交所\n", " ~df[\"ts_code\"].str.starts_with(\"4\") # 排除北交所\n", @@ -358,8 +354,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:26:58.293090Z", - "start_time": "2026-03-09T15:26:35.532653Z" + "end_time": "2026-03-10T13:48:12.225433Z", + "start_time": "2026-03-10T13:47:49.978375Z" } }, "cell_type": "code", @@ -397,11 +393,11 @@ "# 5. 创建模型\n", "model = LightGBMModel(params=MODEL_PARAMS)\n", "\n", - "# 6. 创建数据处理器\n", + "# 6. 创建数据处理器(新 API:需要传入 feature_cols)\n", "processors = [\n", - " NullFiller(strategy=\"mean\"),\n", - " Winsorizer(**PROCESSOR_CONFIGS[0][\"params\"]),\n", - " StandardScaler(exclude_cols=[\"ts_code\", \"trade_date\", target_col]),\n", + " NullFiller(feature_cols=feature_cols, strategy=\"mean\"),\n", + " Winsorizer(feature_cols=feature_cols, lower=0.01, upper=0.99),\n", + " StandardScaler(feature_cols=feature_cols),\n", "]\n", "\n", "# 7. 创建数据划分器(正确的 train/val/test 三分法)\n", @@ -544,23 +540,23 @@ "output_type": "stream", "text": [ "数据形状: (7255513, 70)\n", - "数据列: ['ts_code', 'trade_date', 'high', 'low', 'amount', 'vol', 'close', 'turnover_rate', 'open', 'total_assets', 'total_mv', 'f_ann_date', 'total_cur_liab', 'total_cur_assets', 'total_hldr_eqy_exc_min_int', 'total_liab', 'revenue', 'n_income', 'n_cashflow_act', 'ebit', 'ma_5', 'ma_20', 'ma_ratio_5_20', 'bias_10', 'high_low_ratio', 'bbi_ratio', 'return_5', 'return_20', 'kaufman_ER_20', 'mom_acceleration_10_20', 'drawdown_from_high_60', 'up_days_ratio_20', 'volatility_5', 'volatility_20', 'volatility_ratio', 'std_return_20', 'sharpe_ratio_20', 'min_ret_20', 'volatility_squeeze_5_60', 'overnight_intraday_diff', 'upper_shadow_ratio', 'capital_retention_20', 'max_ret_20', 'volume_ratio_5_20', 'turnover_rate_mean_5', 'turnover_deviation', 'amihud_illiq_20', 'turnover_cv_20', 'pv_corr_20', 'close_vwap_deviation', 'roe', 'roa', 'profit_margin', 'debt_to_equity', 'current_ratio', 'net_profit_yoy', 'revenue_yoy', 'healthy_expansion_velocity', 'EP', 'BP', 'CP', 'market_cap_rank', 'turnover_rank', 'return_5_rank', 'EP_rank', 'pe_expansion_trend', 'value_price_divergence', 'active_market_cap', 'ebit_rank', 'future_return_5']\n", + "数据列: ['ts_code', 'trade_date', 'close', 'vol', 'open', 'turnover_rate', 'high', 'low', 'amount', 'total_assets', 'total_mv', 'f_ann_date', 'n_income', 'revenue', 'total_cur_assets', 'total_liab', 'total_cur_liab', 'total_hldr_eqy_exc_min_int', 'n_cashflow_act', 'ebit', 'ma_5', 'ma_20', 'ma_ratio_5_20', 'bias_10', 'high_low_ratio', 'bbi_ratio', 'return_5', 'return_20', 'kaufman_ER_20', 'mom_acceleration_10_20', 'drawdown_from_high_60', 'up_days_ratio_20', 'volatility_5', 'volatility_20', 'volatility_ratio', 'std_return_20', 'sharpe_ratio_20', 'min_ret_20', 'volatility_squeeze_5_60', 'overnight_intraday_diff', 'upper_shadow_ratio', 'capital_retention_20', 'max_ret_20', 'volume_ratio_5_20', 'turnover_rate_mean_5', 'turnover_deviation', 'amihud_illiq_20', 'turnover_cv_20', 'pv_corr_20', 'close_vwap_deviation', 'roe', 'roa', 'profit_margin', 'debt_to_equity', 'current_ratio', 'net_profit_yoy', 'revenue_yoy', 'healthy_expansion_velocity', 'EP', 'BP', 'CP', 'market_cap_rank', 'turnover_rank', 'return_5_rank', 'EP_rank', 'pe_expansion_trend', 'value_price_divergence', 'active_market_cap', 'ebit_rank', 'future_return_5']\n", "\n", "前5行预览:\n", "shape: (5, 70)\n", - "┌───────────┬────────────┬─────────┬─────────┬───┬────────────┬────────────┬───────────┬───────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ low ┆ … ┆ value_pric ┆ active_mar ┆ ebit_rank ┆ future_re │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ e_divergen ┆ ket_cap ┆ --- ┆ turn_5 │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ce ┆ --- ┆ f64 ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ f64 │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ │\n", - "╞═══════════╪════════════╪═════════╪═════════╪═══╪════════════╪════════════╪═══════════╪═══════════╡\n", - "│ 000001.SZ ┆ 20200102 ┆ 1850.42 ┆ 1806.75 ┆ … ┆ null ┆ null ┆ null ┆ -0.008857 │\n", - "│ 000001.SZ ┆ 20200103 ┆ 1889.72 ┆ 1847.15 ┆ … ┆ null ┆ null ┆ null ┆ -0.01881 │\n", - "│ 000001.SZ ┆ 20200106 ┆ 1893.0 ┆ 1846.05 ┆ … ┆ null ┆ null ┆ null ┆ -0.008171 │\n", - "│ 000001.SZ ┆ 20200107 ┆ 1886.45 ┆ 1850.42 ┆ … ┆ null ┆ null ┆ null ┆ -0.014117 │\n", - "│ 000001.SZ ┆ 20200108 ┆ 1861.34 ┆ 1815.49 ┆ … ┆ null ┆ null ┆ null ┆ -0.017252 │\n", - "└───────────┴────────────┴─────────┴─────────┴───┴────────────┴────────────┴───────────┴───────────┘\n", + "┌───────────┬────────────┬─────────┬───────────┬───┬───────────┬───────────┬───────────┬───────────┐\n", + "│ ts_code ┆ trade_date ┆ close ┆ vol ┆ … ┆ value_pri ┆ active_ma ┆ ebit_rank ┆ future_re │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ ce_diverg ┆ rket_cap ┆ --- ┆ turn_5 │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ence ┆ --- ┆ f64 ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ f64 │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ │\n", + "╞═══════════╪════════════╪═════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n", + "│ 000001.SZ ┆ 20200102 ┆ 1841.69 ┆ 1.5302e6 ┆ … ┆ null ┆ null ┆ null ┆ -0.008857 │\n", + "│ 000001.SZ ┆ 20200103 ┆ 1875.53 ┆ 1.1162e6 ┆ … ┆ null ┆ null ┆ null ┆ -0.01881 │\n", + "│ 000001.SZ ┆ 20200106 ┆ 1863.52 ┆ 862083.5 ┆ … ┆ null ┆ null ┆ null ┆ -0.008171 │\n", + "│ 000001.SZ ┆ 20200107 ┆ 1872.26 ┆ 728607.56 ┆ … ┆ null ┆ null ┆ null ┆ -0.014117 │\n", + "│ 000001.SZ ┆ 20200108 ┆ 1818.76 ┆ 847824.12 ┆ … ┆ null ┆ null ┆ null ┆ -0.017252 │\n", + "└───────────┴────────────┴─────────┴───────────┴───┴───────────┴───────────┴───────────┴───────────┘\n", "\n", "[配置] 训练期: 20200101 - 20231231\n", "[配置] 验证期: 20240101 - 20241231\n", @@ -583,8 +579,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:01.856502Z", - "start_time": "2026-03-09T15:26:58.307450Z" + "end_time": "2026-03-10T13:48:15.759149Z", + "start_time": "2026-03-10T13:48:12.232317Z" } }, "cell_type": "code", @@ -627,7 +623,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_37796\\547547317.py:75: DeprecationWarning: `is_in` with a collection of the same datatype is ambiguous and deprecated.\n", + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_34448\\3491564681.py:71: DeprecationWarning: `is_in` with a collection of the same datatype is ambiguous and deprecated.\n", "Please use `implode` to return to previous behavior.\n", "\n", "See https://github.com/pola-rs/polars/issues/22149 for more information.\n", @@ -641,7 +637,7 @@ " 筛选前数据规模: (7255513, 70)\n", " 筛选后数据规模: (1494000, 70)\n", " 筛选前股票数: 5694\n", - " 筛选后股票数: 2252\n", + " 筛选后股票数: 2196\n", " 删除记录数: 5761513\n" ] } @@ -651,8 +647,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:01.935567Z", - "start_time": "2026-03-09T15:27:01.869943Z" + "end_time": "2026-03-10T13:48:15.834150Z", + "start_time": "2026-03-10T13:48:15.767063Z" } }, "cell_type": "code", @@ -701,62 +697,65 @@ " 训练集数据规模: (970000, 70)\n", " 验证集数据规模: (242000, 70)\n", " 测试集数据规模: (282000, 70)\n", - " 训练集股票数: 1888\n", - " 验证集股票数: 1377\n", - " 测试集股票数: 1682\n", + " 训练集股票数: 1705\n", + " 验证集股票数: 1308\n", + " 测试集股票数: 1774\n", " 训练集日期范围: 20200102 - 20231229\n", " 验证集日期范围: 20240102 - 20241231\n", " 测试集日期范围: 20250102 - 20260306\n", "\n", " 训练集前5行预览:\n", "shape: (5, 70)\n", - "┌───────────┬────────────┬───────┬───────┬───┬─────────────┬─────────────┬───────────┬─────────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ low ┆ … ┆ value_price ┆ active_mark ┆ ebit_rank ┆ future_retu │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ _divergence ┆ et_cap ┆ --- ┆ rn_5 │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ --- ┆ --- ┆ f64 ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ f64 ┆ ┆ f64 │\n", - "╞═══════════╪════════════╪═══════╪═══════╪═══╪═════════════╪═════════════╪═══════════╪═════════════╡\n", - "│ 000004.SZ ┆ 20200102 ┆ 93.06 ┆ 90.1 ┆ … ┆ null ┆ null ┆ null ┆ 0.000441 │\n", - "│ 000004.SZ ┆ 20200103 ┆ 91.36 ┆ 89.53 ┆ … ┆ null ┆ null ┆ null ┆ 0.005875 │\n", - "│ 000004.SZ ┆ 20200106 ┆ 90.22 ┆ 87.58 ┆ … ┆ null ┆ null ┆ null ┆ 0.05644 │\n", - "│ 000004.SZ ┆ 20200107 ┆ 90.22 ┆ 88.06 ┆ … ┆ null ┆ null ┆ null ┆ 0.049753 │\n", - "│ 000004.SZ ┆ 20200108 ┆ 92.54 ┆ 88.51 ┆ … ┆ null ┆ null ┆ null ┆ 0.019922 │\n", - "└───────────┴────────────┴───────┴───────┴───┴─────────────┴─────────────┴───────────┴─────────────┘\n", + "┌───────────┬────────────┬───────┬──────────┬───┬────────────┬────────────┬───────────┬────────────┐\n", + "│ ts_code ┆ trade_date ┆ close ┆ vol ┆ … ┆ value_pric ┆ active_mar ┆ ebit_rank ┆ future_ret │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ e_divergen ┆ ket_cap ┆ --- ┆ urn_5 │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ce ┆ --- ┆ f64 ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ f64 │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ │\n", + "╞═══════════╪════════════╪═══════╪══════════╪═══╪════════════╪════════════╪═══════════╪════════════╡\n", + "│ 000004.SZ ┆ 20200102 ┆ 90.75 ┆ 17853.2 ┆ … ┆ null ┆ null ┆ null ┆ 0.000441 │\n", + "│ 000004.SZ ┆ 20200103 ┆ 90.83 ┆ 13380.09 ┆ … ┆ null ┆ null ┆ null ┆ 0.005875 │\n", + "│ 000004.SZ ┆ 20200106 ┆ 88.39 ┆ 20316.99 ┆ … ┆ null ┆ null ┆ null ┆ 0.05644 │\n", + "│ 000004.SZ ┆ 20200107 ┆ 89.81 ┆ 17433.2 ┆ … ┆ null ┆ null ┆ null ┆ 0.049753 │\n", + "│ 000004.SZ ┆ 20200108 ┆ 88.51 ┆ 15503.78 ┆ … ┆ null ┆ null ┆ null ┆ 0.019922 │\n", + "└───────────┴────────────┴───────┴──────────┴───┴────────────┴────────────┴───────────┴────────────┘\n", "\n", " 验证集前5行预览:\n", "shape: (5, 70)\n", - "┌───────────┬────────────┬───────┬───────┬───┬─────────────┬─────────────┬───────────┬─────────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ low ┆ … ┆ value_price ┆ active_mark ┆ ebit_rank ┆ future_retu │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ _divergence ┆ et_cap ┆ --- ┆ rn_5 │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ --- ┆ --- ┆ f64 ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ f64 ┆ ┆ f64 │\n", - "╞═══════════╪════════════╪═══════╪═══════╪═══╪═════════════╪═════════════╪═══════════╪═════════════╡\n", - "│ 000004.SZ ┆ 20240102 ┆ 66.81 ┆ 65.23 ┆ … ┆ null ┆ 770442.9948 ┆ null ┆ -0.014188 │\n", - "│ ┆ ┆ ┆ ┆ ┆ ┆ 33 ┆ ┆ │\n", - "│ 000004.SZ ┆ 20240103 ┆ 66.24 ┆ 64.62 ┆ … ┆ null ┆ 751492.2017 ┆ null ┆ 0.002432 │\n", - "│ ┆ ┆ ┆ ┆ ┆ ┆ 8 ┆ ┆ │\n", - "│ 000004.SZ ┆ 20240104 ┆ 71.24 ┆ 64.7 ┆ … ┆ null ┆ 866443.5445 ┆ null ┆ 0.016919 │\n", - "│ ┆ ┆ ┆ ┆ ┆ ┆ 25 ┆ ┆ │\n", - "│ 000004.SZ ┆ 20240105 ┆ 71.08 ┆ 65.19 ┆ … ┆ null ┆ 907980.5905 ┆ null ┆ -0.013477 │\n", - "│ ┆ ┆ ┆ ┆ ┆ ┆ 95 ┆ ┆ │\n", - "│ 000004.SZ ┆ 20240108 ┆ 67.87 ┆ 65.02 ┆ … ┆ null ┆ 931205.3950 ┆ null ┆ -0.024684 │\n", - "│ ┆ ┆ ┆ ┆ ┆ ┆ 63 ┆ ┆ │\n", - "└───────────┴────────────┴───────┴───────┴───┴─────────────┴─────────────┴───────────┴─────────────┘\n", + "┌───────────┬────────────┬───────┬───────────┬───┬────────────┬────────────┬───────────┬───────────┐\n", + "│ ts_code ┆ trade_date ┆ close ┆ vol ┆ … ┆ value_pric ┆ active_mar ┆ ebit_rank ┆ future_re │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ e_divergen ┆ ket_cap ┆ --- ┆ turn_5 │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ce ┆ --- ┆ f64 ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ f64 │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ │\n", + "╞═══════════╪════════════╪═══════╪═══════════╪═══╪════════════╪════════════╪═══════════╪═══════════╡\n", + "│ 000004.SZ ┆ 20240102 ┆ 65.59 ┆ 28867.0 ┆ … ┆ null ┆ 770442.994 ┆ null ┆ -0.014188 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ 833 ┆ ┆ │\n", + "│ 000004.SZ ┆ 20240103 ┆ 66.24 ┆ 30331.0 ┆ … ┆ null ┆ 751492.201 ┆ null ┆ 0.002432 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ 78 ┆ ┆ │\n", + "│ 000004.SZ ┆ 20240104 ┆ 68.6 ┆ 160185.52 ┆ … ┆ null ┆ 866443.544 ┆ null ┆ 0.016919 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ 525 ┆ ┆ │\n", + "│ 000004.SZ ┆ 20240105 ┆ 66.49 ┆ 129763.88 ┆ … ┆ null ┆ 907980.590 ┆ null ┆ -0.013477 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ 595 ┆ ┆ │\n", + "│ 000004.SZ ┆ 20240108 ┆ 66.41 ┆ 83138.52 ┆ … ┆ null ┆ 931205.395 ┆ null ┆ -0.024684 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ 063 ┆ ┆ │\n", + "└───────────┴────────────┴───────┴───────────┴───┴────────────┴────────────┴───────────┴───────────┘\n", "\n", " 测试集前5行预览:\n", "shape: (5, 70)\n", - "┌───────────┬────────────┬───────┬───────┬───┬─────────────┬─────────────┬───────────┬─────────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ low ┆ … ┆ value_price ┆ active_mark ┆ ebit_rank ┆ future_retu │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ _divergence ┆ et_cap ┆ --- ┆ rn_5 │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ --- ┆ --- ┆ f64 ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ f64 ┆ ┆ f64 │\n", - "╞═══════════╪════════════╪═══════╪═══════╪═══╪═════════════╪═════════════╪═══════════╪═════════════╡\n", - "│ 000004.SZ ┆ 20250102 ┆ 58.48 ┆ 54.17 ┆ … ┆ null ┆ 2.3754e6 ┆ null ┆ -0.066193 │\n", - "│ 000004.SZ ┆ 20250103 ┆ 58.52 ┆ 51.86 ┆ … ┆ null ┆ 2.1884e6 ┆ null ┆ 0.00893 │\n", - "│ 000004.SZ ┆ 20250106 ┆ 52.55 ┆ 49.17 ┆ … ┆ null ┆ 2.1549e6 ┆ null ┆ -0.0142 │\n", - "│ 000004.SZ ┆ 20250107 ┆ 53.32 ┆ 51.41 ┆ … ┆ null ┆ 2.2770e6 ┆ null ┆ 0.013031 │\n", - "│ 000004.SZ ┆ 20250108 ┆ 54.78 ┆ 52.38 ┆ … ┆ null ┆ 2.3533e6 ┆ null ┆ 0.00442 │\n", - "└───────────┴────────────┴───────┴───────┴───┴─────────────┴─────────────┴───────────┴─────────────┘\n" + "┌───────────┬────────────┬───────┬───────────┬───┬────────────┬────────────┬───────────┬───────────┐\n", + "│ ts_code ┆ trade_date ┆ close ┆ vol ┆ … ┆ value_pric ┆ active_mar ┆ ebit_rank ┆ future_re │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ e_divergen ┆ ket_cap ┆ --- ┆ turn_5 │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ce ┆ --- ┆ f64 ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ f64 │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ │\n", + "╞═══════════╪════════════╪═══════╪═══════════╪═══╪════════════╪════════════╪═══════════╪═══════════╡\n", + "│ 000004.SZ ┆ 20250102 ┆ 57.63 ┆ 119760.37 ┆ … ┆ null ┆ 2.3754e6 ┆ null ┆ -0.066193 │\n", + "│ 000004.SZ ┆ 20250103 ┆ 52.02 ┆ 123929.75 ┆ … ┆ null ┆ 2.1884e6 ┆ null ┆ 0.00893 │\n", + "│ 000004.SZ ┆ 20250106 ┆ 50.88 ┆ 84810.46 ┆ … ┆ null ┆ 2.1549e6 ┆ null ┆ -0.0142 │\n", + "│ 000004.SZ ┆ 20250107 ┆ 53.28 ┆ 86097.07 ┆ … ┆ null ┆ 2.2770e6 ┆ null ┆ 0.013031 │\n", + "│ 000004.SZ ┆ 20250108 ┆ 54.46 ┆ 99782.01 ┆ … ┆ null ┆ 2.3533e6 ┆ null ┆ 0.00442 │\n", + "└───────────┴────────────┴───────┴───────────┴───┴────────────┴────────────┴───────────┴───────────┘\n" ] } ], @@ -765,8 +764,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:02.522387Z", - "start_time": "2026-03-09T15:27:01.942140Z" + "end_time": "2026-03-10T13:48:16.310435Z", + "start_time": "2026-03-10T13:48:15.842816Z" } }, "cell_type": "code", @@ -822,19 +821,19 @@ "\n", " 训练集处理后前5行预览:\n", "shape: (5, 70)\n", - "┌───────────┬────────────┬──────────┬──────────┬───┬───────────┬───────────┬───────────┬───────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ low ┆ … ┆ value_pri ┆ active_ma ┆ ebit_rank ┆ future_re │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ ce_diverg ┆ rket_cap ┆ --- ┆ turn_5 │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ence ┆ --- ┆ f64 ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ f64 │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ │\n", - "╞═══════════╪════════════╪══════════╪══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n", - "│ 000004.SZ ┆ 20200102 ┆ 4.202576 ┆ 4.206515 ┆ … ┆ null ┆ null ┆ null ┆ 0.000441 │\n", - "│ 000004.SZ ┆ 20200103 ┆ 4.202576 ┆ 4.206515 ┆ … ┆ null ┆ null ┆ null ┆ 0.005875 │\n", - "│ 000004.SZ ┆ 20200106 ┆ 4.202576 ┆ 4.206515 ┆ … ┆ null ┆ null ┆ null ┆ 0.05644 │\n", - "│ 000004.SZ ┆ 20200107 ┆ 4.202576 ┆ 4.206515 ┆ … ┆ null ┆ null ┆ null ┆ 0.049753 │\n", - "│ 000004.SZ ┆ 20200108 ┆ 4.202576 ┆ 4.206515 ┆ … ┆ null ┆ null ┆ null ┆ 0.019922 │\n", - "└───────────┴────────────┴──────────┴──────────┴───┴───────────┴───────────┴───────────┴───────────┘\n", + "┌───────────┬────────────┬───────┬──────────┬───┬────────────┬────────────┬───────────┬────────────┐\n", + "│ ts_code ┆ trade_date ┆ close ┆ vol ┆ … ┆ value_pric ┆ active_mar ┆ ebit_rank ┆ future_ret │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ e_divergen ┆ ket_cap ┆ --- ┆ urn_5 │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ce ┆ --- ┆ f64 ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ f64 │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ │\n", + "╞═══════════╪════════════╪═══════╪══════════╪═══╪════════════╪════════════╪═══════════╪════════════╡\n", + "│ 000004.SZ ┆ 20200102 ┆ 90.75 ┆ 17853.2 ┆ … ┆ null ┆ null ┆ null ┆ 0.000441 │\n", + "│ 000004.SZ ┆ 20200103 ┆ 90.83 ┆ 13380.09 ┆ … ┆ null ┆ null ┆ null ┆ 0.005875 │\n", + "│ 000004.SZ ┆ 20200106 ┆ 88.39 ┆ 20316.99 ┆ … ┆ null ┆ null ┆ null ┆ 0.05644 │\n", + "│ 000004.SZ ┆ 20200107 ┆ 89.81 ┆ 17433.2 ┆ … ┆ null ┆ null ┆ null ┆ 0.049753 │\n", + "│ 000004.SZ ┆ 20200108 ┆ 88.51 ┆ 15503.78 ┆ … ┆ null ┆ null ┆ null ┆ 0.019922 │\n", + "└───────────┴────────────┴───────┴──────────┴───┴────────────┴────────────┴───────────┴────────────┘\n", "\n", " 训练集特征统计:\n", " 特征数: 49\n", @@ -853,8 +852,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:10.946482Z", - "start_time": "2026-03-09T15:27:02.528042Z" + "end_time": "2026-03-10T13:48:25.881677Z", + "start_time": "2026-03-10T13:48:16.314088Z" } }, "cell_type": "code", @@ -895,11 +894,11 @@ " 目标变量: future_return_5\n", "\n", " 目标变量统计:\n", - " 均值: 0.004184\n", - " 标准差: 0.058740\n", - " 最小值: -0.152621\n", - " 最大值: 0.216472\n", - " 缺失值: 0\n", + " 均值: 0.004737\n", + " 标准差: 0.066054\n", + " 最小值: -0.910839\n", + " 最大值: 5.130794\n", + " 缺失值: 465\n", "\n", " 开始训练...\n", " 训练完成!\n" @@ -911,8 +910,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:10.997637Z", - "start_time": "2026-03-09T15:27:10.951980Z" + "end_time": "2026-03-10T13:48:25.928602Z", + "start_time": "2026-03-10T13:48:25.885966Z" } }, "cell_type": "code", @@ -958,8 +957,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:11.481411Z", - "start_time": "2026-03-09T15:27:11.004438Z" + "end_time": "2026-03-10T13:48:26.403496Z", + "start_time": "2026-03-10T13:48:25.937393Z" } }, "cell_type": "code", @@ -995,10 +994,10 @@ " 预测完成!\n", "\n", " 预测结果统计:\n", - " 均值: 0.002266\n", - " 标准差: 0.009319\n", - " 最小值: -0.117614\n", - " 最大值: 0.080849\n" + " 均值: 0.002399\n", + " 标准差: 0.009874\n", + " 最小值: -0.299069\n", + " 最大值: 0.122588\n" ] } ], @@ -1012,8 +1011,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:15.029980Z", - "start_time": "2026-03-09T15:27:11.487153Z" + "end_time": "2026-03-10T13:48:30.743182Z", + "start_time": "2026-03-10T13:48:26.406849Z" } }, "cell_type": "code", @@ -1093,19 +1092,19 @@ "重新训练模型以收集训练指标...\n", "Training until validation scores don't improve for 100 rounds\n", "Early stopping, best iteration is:\n", - "[285]\ttrain's l1: 0.0410031\tval's l1: 0.0634246\n", + "[301]\ttrain's l1: 0.0421507\tval's l1: 0.0620576\n", "训练完成,指标已收集\n", "\n", "评估指标: l1\n", "\n", "[早停信息]\n", " 配置的最大轮数: 1000\n", - " 实际训练轮数: 385\n", + " 实际训练轮数: 401\n", " 早停状态: 已触发(连续100轮验证指标未改善)\n", "\n", "最终指标:\n", - " 训练 l1: 0.040855\n", - " 验证 l1: 0.063455\n" + " 训练 l1: 0.041986\n", + " 验证 l1: 0.062072\n" ] } ], @@ -1115,8 +1114,8 @@ "cell_type": "code", "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:15.271749Z", - "start_time": "2026-03-09T15:27:15.035816Z" + "end_time": "2026-03-10T13:48:30.986141Z", + "start_time": "2026-03-10T13:48:30.746784Z" } }, "source": [ @@ -1164,7 +1163,7 @@ "text/plain": [ "
" ], - "image/png": "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BlC7d+/2TW+//Xaux3rooYcCthk3blyxvU4AAAAAAACnirpAasaMGTJy5EgZPny4tGjRQubMmSPly5eX1157LeT2s2bNMmHTvffeK2eddZY8/PDD0r59e3n++ecDtktISJDatWv7pqpVq+Z6rEqVKgVsU6FChWJ7nQAAAACcKz0rXW77+DYz6TwAOE1UjSGVkZEh3377rUyYMMG3LCYmRnr16iUrV64MeR9drhVV/rSiasGCBQHLli1bJsnJySaIuuiii+SRRx6R6tWrB2yjXfQ00GrQoIFcd911cuedd4rbHfoQpaenm8ly5MgR89Pj8ZipNNH99Xq9pW6/ETm0AdAOQBsAfxNAG7BXtidbdhze4ZuPps/ifDYE7QDhnguKcg6LqkBq//79kp2dLbVq1QpYrre3bNkS8j579uwJub0ut2gF1cCBA6Vx48aybds2mThxolxyySUmzIqNjTXb3H777aayqlq1aqYboIZi2m1PK7ZCmTZtmkydOjXX8n379klaWpqUJtpwDh8+bBqaBoBwHtoAaAegDYC/CaAN2CstK00y0jPMvA5PkuhOjJpGyGdD0A4Q7rng6NGjUqoDqeJy7bXX+uZ10PM2bdpIkyZNTNVUz549zXL/KitdHx8fL7fccosJnrS7XzANrPzvoxVS9evXl5o1a0pSUpKUtkamg7jrvhNIORNtALQD0AbA3wTQBuwPpOIT4s289uSItkCK7wegHcATxrlALzJXqgOpGjVqmIqlvXv3BizX2zqmUyi6PJzt1emnn26ea+vWrb5AKphe3S8rK0u2b98uZ555Zq71GlKFCqr0TSqNoY42stK674gM2gBoB6ANgL8JoA3YRz936+cvaz7aPofz2RC0A4RzLijKOSyqznpaldShQwdZsmRJQCKnt7t27RryPrrcf3u1ePHiPLdXO3fulAMHDkidOnXy3Gb9+vXmgOq/VgAAAAAAACByoqpCSmk3uGHDhknHjh2lc+fOMnPmTDl+/Li56p4aOnSo1KtXz3SlU3fccYf06NFDnn76aenXr5/MmzdP1qxZIy+//LJZf+zYMTPW06BBg0zVlI4h9ec//1maNm1qBj9XOpbUqlWr5MILLzRX2tPbOqD5DTfcEPJqfAAAAAAAAChDgdQ111xjBgafPHmyGZi8Xbt2smjRIt/A5Tt27AgoBevWrZvMnTtXJk2a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AABAcbn88sulb9++Idd98cUXJuzZsGFD2I/7zTffyKhRo8SOUGj37t1yySWXiJ02bdokgwYNMsGbHqOCwrdII5ACAAAAAACl1ogRI2Tx4sWyc+fOXOtef/116dixo7Rp0ybsx61Zs6aUL19e7FC7dm1JSEgQO504cUJOP/10mT59unl+uxFIAQAAAIDNEmIT5B8D/mEmnQdQdJdddpkJj954442A5ceOHZOUlBQTWB04cECGDBki9erVMyFT69at5e233873cYO77P3www9y/vnnS2JiorRo0cKEYMHuu+8+OeOMM8xzaNjzwAMPSGZmplmn+zd16lT573//ayqSdLL2ObjL3nfffScXXXSRlCtXTqpXr24qtfT1WG666Sbp37+/PPXUU1KnTh2zzZgxY3zPVRidOnWSJ598Uq699lrbw7AiXWVv7dq1hd52165d4T48AAAAAJR5+uWzcmLlkt4NoExwu90ydOhQE+785S9/Mb9fSsOo7OxsE0RpmNOhQwcTGCUlJcnHH38sN954ozRp0kQ6d+5c4HN4PB4ZOHCg1KpVS1atWiWHDx8OGG/KUqlSJbMfdevWNaHSyJEjzbI///nPcs0118jGjRtl0aJF8tlnn5ntK1fOfR44fvy49OnTR7p27Wq6Daampsqf/vQnGTt2bEDo9vnnn5swSn9u3brVPL52B9TnLA3CDqS01M16cwszoHlhtwUAAAAAAFGoY0eRPXvsf17tRrZmTaE2vfnmm021z/Lly83g5FZ3PR0jSUMfne655x7f9uPGjZNPP/1U3n333UIFUhogbdmyxdxHwyb12GOP5Rr3adKkSQEVVvqc8+bNM4GUVjtVrFjRBGi18+kiN3fuXElLS5O//e1vUqFCBbPs+eefN2NlPf744yYUU1WrVjXLY2NjpXnz5tKvXz9ZsmRJ2Q2k9A0FAAAAABRdZnamvLL2FTP/p/Z/krjYOA4nopeGUb/+KtFMA5lu3brJa6+9ZgIprRjSAc0feughs14rpTRA0gDq119/lYyMDElPTy/0GFGbN2+W+vXr+8IopRVMwd555x159tlnZdu2baYqKysry1RkhWPz5s3Stm1bXxilzj33XFOl9f333/sCqZYtW5owyqLVUlqVVVqEHUgNGzasePYEAAAAABwi25stC7cuNPPDzx4ucUIghShWAgNeF+V5daworXya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pUsXWb16db7bp6SkSPPmzc32rVu3loULF+a57a233ioul0tmzpwZsFyfT5f7T9OnT4/YawIAAAAAS1xsnIzuNNpMOg8AThN1gdQ777wjd911l0yZMkXWrl0rbdu2lT59+khqamrI7VesWCFDhgyRESNGyLp166R///5m2rhxY65t58+fL19//bXUrVs35GM99NBDsnv3bt80bty4iL8+AAAAAAAAp4u6QGrGjBkycuRIGT58uLRo0ULmzJkj5cuXl9deey3k9rNmzZK+ffvKvffeK2eddZY8/PDD0r59e3n++ecDtvv1119NwPTWW29JXFzof4GoVKmS1K5d2zdVqFChWF4jAAAAAGfzer1yOO2wmXQeAJwmqgKpjIwM+fbbb6VXr16+ZTExMeb2ypUrQ95Hl/tvr7Siyn97j8cjN954owmtWrZsmefzaxe96tWry9lnny1PPvmkZGVlReR1AQAAAIC/9Ox0uWH+DWbSeQBwmqga1Hz//v2SnZ0ttWrVCliut7ds2RLyPnv27Am5vS63PP744+J2u+X222/P87l1nVZWVatWzXQDnDBhgum2pxVboaSnp5vJcuTIEV/4pVNpovur/ypT2vYbkUMbAO0AtAHwNwG0gZL5/GXNR9NncT4bgnaAcM8FRTmHRVUgVRy04kq79el4VDpQeV503CpLmzZtJD4+Xm655RaZNm2aJCQk5Npel0+dOjXX8n379klaWpqUJtpwDh/OKRXWijQ4D20AtAPQBsDfBNAG7JWWlSYZ6RlmXsfLTXQnRk0j5LMhaAcI91xw9OhRKdWBVI0aNSQ2Nlb27t0bsFxv65hOoejy/Lb/4osvzAm+QYMGvvVahXX33XebK+1t37495OPq1f20y56uP/PMM3Ot1woq/xBLK6Tq168vNWvWlKSkJCltjUzDOt13Ailnog2AdgDaAPibANqA/YFUfEK8mU9OTo66QIrvB6AdwBPGuSAxMbF0B1JaldShQwdZsmSJuVKedQD09tixY0Pep2vXrmb9+PHjfcsWL15slisdOyrUGFO6XAdOz8v69evNAdc/DqFo1VSoyim9T2kMdbSRldZ9R2TQBkA7AG0A/E0AbcA++rnb6sERjZ/D+WwI2gHCORcU5RwWVYGU0qqjYcOGSceOHaVz586miun48eO+8Gjo0KFSr14902VO3XHHHdKjRw95+umn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" + "image/png": "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atWqlbz++uu5vpXh3ff++9//ysUXXyyJiYnSvHlzE4SFe/jhh+Wcc84xz6GBz2OPPSbp6elm3SuvvCJTpkyR7777Trxer8THxwf2Obz73vfffy+XXXaZlCpVSqpUqWIqtvT1WG699Vbp16+fPPvss1KrVi2zzciRIwPPlR8dOnSQZ555Rq6//nrbArECX31v/fr1+d529+7dBX14AAAAAEAu9GS1QmIFcxILILvY2Fi55ZZbTMDz6KOPmmNGaSCVmZlpwigNdNq1a2dCo/Lly8v7778vN998s5x99tnSsWPHPN9Wn88n/fv3lxo1asg333wjR44cCRl/ylKuXDmzH7Vr1zbB0vDhw82yhx56SK677jrZtGmTLF261ARaGRkZJkwKd+LECenVq5d07tzZdCFMTk6W22+/XUaNGhUSvH366acmkNKfW7duNY+vXQP1OUuqAodSWuZmNWh+BjnP77YAAAAAAMAB2rcX2bvX3ufU7mRr1+Z789tuu81U/Xz++edmwHKr656OmVShQgUzPfjgg4Ht77nnHvnwww/ljTfeyFco9fHHH8vmzZvNfTRwUk888US2caAmTJgQUmmlz7lgwQITSpUqVUrKli1rQjTtLqehlM6Hmz9/vqSkpMg//vEPKVOmjFk2a9YsM3bWU089ZYIxValSJbM8JiZGmjVrJn379pXly5dHVyiljQgAAAAAODPSM9PlhbUviNfjldvb3i5xMXE0BeylgdSuXSX6XddQpkuXLvLyyy+bUEorh3SQ88cff9ys14opDZE0hNq1a5ekpaVJampqvseM+vHHH6Vu3bqBQEppJVO4hQsXyp///Gf56aefTHWWBk9amVUQP/74o7Ru3ToQSKmuXbuaaq0tW7YEQqkWLVqYQMqiVVNanVWSFTiUGjJkSPHsCQAAAAAgT5n+TPlg6wemV8rQ84dKnBBKwWY2DYJ9us+pY0dpBdTs2bNNgY12zevWrZtZp1VUM2fONGNE6XhSGvho9zsNp4rKypUr5cYbbzTjRmn3O63O0iqp6dOnS3GIiwv9LtDvCA2uoiqUAgAAAAAALlaAbnRn0rXXXiujR4823d+069uIESMCQwx9/fXXcvXVV8tNN91kbmt485///McMWJ4f5557rvzyyy+yZ88eU5GkVq1aFbLNihUrpH79+mZcK8vPP/8csk18fLyp2srruXTsKB1byqqW0v3XceWaNm0qTsbIeAAAAAAAIOroeE062Pe4ceNMeKRXqLM0adLEDC6uwZF2j7vzzjtl3759+X7sHj16mKvqaW8yvXqedg0MDp+s59ixY4epjtLue9qNb9GiRSHbNGjQQLZt2yYbNmyQAwcOmC6E4bTaSq/wp8+lA6PrQOZaAaYDs1td94qCVonpfuik89qtUee162NxIZQCAAAAAABRSbvwHTp0yHSfCx7/SQcgb9u2rVmuY07pQOP9+vXL9+NqlZIGTKdOnTIDo+vV8P70pz+FbHPVVVfJfffdZ66Sp1fB0wDsscceC9lmwIAB0rt3b7nsssvM/r3++uvZnkvHudIB1X/99Vfp0KGDDBw4ULp3724GNS9Ku3fvlvPPP99MGuI9++yzZl5fW3Hx+PUSebDF0aNHTR9SvVRkQQc2O9O0lFEvO1m9enUuPRvlaGt3ob3dhfZ2D9raXWhv97X3jt07ZNQXo0w3pKRBSZIYm3imdwtRemzrFd+0iqdhw4amUgfFx+/3B66+Z3UxLOly+3zkN/+gUgoAAAAAAAC2I5QCAAAAAACA7bj6HgAAAAA4SEJMgrx05UumS5fOA4BTEUoBAAAAgIPoeDPVyzDWKwDno/seAAAAAADIEddHQ3F9LgilAAAAAMBBMnwZ8vKGl+Xlb18280BxiYuLMz9PnjzJm4xsrM+F9TkpDLrvAQAAAICDaBC1ePNi043vhlY3SKyX0zoUj5iYGKlYsaIkJyeb26VLlzafOxRP1VFGRobExsaW+PdY91UDKf1c6OdDPyeFxbcXAAAAAACIqGbNmuanFUyh+IIen89nLmBQ0kMpiwZS1uejsAilAAAAAABARBqQ1KpVS6pXry7p6em8S8XE5/PJwYMHpUqVKiaYKum0y97pVEhZCKUAAAAAAECuNIAoihACOYdScXFxkpiY6IhQqqi455UCAAAAAACgxCCUAgAAAAAAgO0IpQAAAAAAAGA7xpQCAAAAAAdJiEmQWX1mmXFndB4AnIpQCgAAAAAcdjW0ehXquWowZADRiW8xAAAAAAAA2I5KKQAAAABwkAxfhsz/fr6plLq2xbUS6+W0DoAz8e0FAAAAAA4LpRb8sMB04+t/bn9CKQCORfc9AAAAAAAA2I5QCgAAAAAAALYjlAIAAAAAAIDtCKUAAAAAAABgO0IpAAAAAAAA2I5QCgAAAAAAALaLtf8pAQAAAACFFR8TL9P/MF28Xq+ZBwCnIpQCAAAAAAfxerzSpEoTE0oBgJPxLQYAAAAAAADblchQavbs2dKgQQNJTEyUTp06yerVq3PdPikpSZo1a2a2b9WqlSxZsiRk/a233ioejydk6t27d8g2v/76q9x4441Svnx5qVixogwbNkyOHz8ess3GjRvloosuMs9Tt25defrpp4vwVQMAAABA3jJ8GfLWj2+ZSecBwKlKXCi1cOFCuf/++2XSpEmyfv16ad26tfTq1UuSk5Mjbr9ixQoZPHiwCZG+/fZb6devn5k2bdoUsp2GUHv27AlMr7/+esh6DaR++OEHWbZsmbz33nvyxRdfyB133BFYf/ToUenZs6fUr19f1q1bJ88884xMnjxZ5s6dW0zvBAAAAABkp0HUK9+9IvM2zCOUAuBoJS6Ueu6552T48OEydOhQad68ucyZM0dKly4tL7/8csTtZ86caQKnsWPHyrnnnitTp06Vtm3byqxZs0K2S0hIkJo1awamSpUqBdb9+OOPsnTpUnnppZdMZdaFF14of/nLX2TBggWye/dus81rr70maWlpZj9atGgh119/vdx7771mfwEAAAAAAODgUEpDH61C6tGjR2CZDt6nt1euXBnxPro8eHullVXh23/22WdSvXp1adq0qYwYMUIOHjwY8hjaZa99+/aBZfqY+tzffPNNYJuLL75Y4uPjQ55ny5YtcujQoSJ49QAAAAAAAO5Roq6+d+DAAcnMzJQaNWqELNfbmzdvjnifvXv3Rtxel1u0kqp///7SsGFD+emnn2T8+PHSp08fEzTFxMSYbTWwChYbGyuVK1cOPI7+1PuHP4+1LrjyypKammqm4C6AyufzmclJdH/9fr/j9hsFR1u7C+3tLrS3e9DW7kJ7u7O9xfyX9fs5v6NHJ45td/FF2Tl3fl9HiQqliot2tbPoQOjnnXeenH322aZ6qnv37sX2vNOmTZMpU6ZkW75//35JSUkRp32gjhw5Yg4SLj0b3Whrd6G93YX2dg/a2l1ob3e2d2paqnjEY8beTYxNPNO7hWLAse0uvig75z527JjzQqmqVauayqV9+/aFLNfbOg5UJLq8INurRo0amefaunWrCaV02/CB1DMyMswV+azHyel5rHWRjBs3zgzaHlwppVftq1atmrnKn9MOEL1qoe57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" }, "metadata": {}, "output_type": "display_data", @@ -1178,9 +1177,9 @@ "text": [ "\n", "[指标分析]\n", - " 最佳验证 l1: 0.063425\n", - " 最佳迭代轮数: 285\n", - " 早停建议: 如果验证指标连续10轮不下降,建议在第 285 轮停止训练\n", + " 最佳验证 l1: 0.062058\n", + " 最佳迭代轮数: 301\n", + " 早停建议: 如果验证指标连续10轮不下降,建议在第 301 轮停止训练\n", "\n", "[重要提醒] 验证集仅用于早停/调参,测试集完全独立于训练过程!\n" ] @@ -1199,8 +1198,8 @@ "cell_type": "code", "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:15.311741Z", - "start_time": "2026-03-09T15:27:15.288652Z" + "end_time": "2026-03-10T13:48:31.021266Z", + "start_time": "2026-03-10T13:48:30.995860Z" } }, "source": [ @@ -1240,42 +1239,42 @@ "================================================================================\n", "\n", "结果数据形状: (282000, 71)\n", - "结果列: ['ts_code', 'trade_date', 'high', 'low', 'amount', 'vol', 'close', 'turnover_rate', 'open', 'total_assets', 'total_mv', 'f_ann_date', 'total_cur_liab', 'total_cur_assets', 'total_hldr_eqy_exc_min_int', 'total_liab', 'revenue', 'n_income', 'n_cashflow_act', 'ebit', 'ma_5', 'ma_20', 'ma_ratio_5_20', 'bias_10', 'high_low_ratio', 'bbi_ratio', 'return_5', 'return_20', 'kaufman_ER_20', 'mom_acceleration_10_20', 'drawdown_from_high_60', 'up_days_ratio_20', 'volatility_5', 'volatility_20', 'volatility_ratio', 'std_return_20', 'sharpe_ratio_20', 'min_ret_20', 'volatility_squeeze_5_60', 'overnight_intraday_diff', 'upper_shadow_ratio', 'capital_retention_20', 'max_ret_20', 'volume_ratio_5_20', 'turnover_rate_mean_5', 'turnover_deviation', 'amihud_illiq_20', 'turnover_cv_20', 'pv_corr_20', 'close_vwap_deviation', 'roe', 'roa', 'profit_margin', 'debt_to_equity', 'current_ratio', 'net_profit_yoy', 'revenue_yoy', 'healthy_expansion_velocity', 'EP', 'BP', 'CP', 'market_cap_rank', 'turnover_rank', 'return_5_rank', 'EP_rank', 'pe_expansion_trend', 'value_price_divergence', 'active_market_cap', 'ebit_rank', 'future_return_5', 'prediction']\n", + "结果列: ['ts_code', 'trade_date', 'close', 'vol', 'open', 'turnover_rate', 'high', 'low', 'amount', 'total_assets', 'total_mv', 'f_ann_date', 'n_income', 'revenue', 'total_cur_assets', 'total_liab', 'total_cur_liab', 'total_hldr_eqy_exc_min_int', 'n_cashflow_act', 'ebit', 'ma_5', 'ma_20', 'ma_ratio_5_20', 'bias_10', 'high_low_ratio', 'bbi_ratio', 'return_5', 'return_20', 'kaufman_ER_20', 'mom_acceleration_10_20', 'drawdown_from_high_60', 'up_days_ratio_20', 'volatility_5', 'volatility_20', 'volatility_ratio', 'std_return_20', 'sharpe_ratio_20', 'min_ret_20', 'volatility_squeeze_5_60', 'overnight_intraday_diff', 'upper_shadow_ratio', 'capital_retention_20', 'max_ret_20', 'volume_ratio_5_20', 'turnover_rate_mean_5', 'turnover_deviation', 'amihud_illiq_20', 'turnover_cv_20', 'pv_corr_20', 'close_vwap_deviation', 'roe', 'roa', 'profit_margin', 'debt_to_equity', 'current_ratio', 'net_profit_yoy', 'revenue_yoy', 'healthy_expansion_velocity', 'EP', 'BP', 'CP', 'market_cap_rank', 'turnover_rank', 'return_5_rank', 'EP_rank', 'pe_expansion_trend', 'value_price_divergence', 'active_market_cap', 'ebit_rank', 'future_return_5', 'prediction']\n", "\n", "结果前10行预览:\n", "shape: (10, 71)\n", - "┌───────────┬────────────┬──────────┬──────────┬───┬───────────┬───────────┬───────────┬───────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ low ┆ … ┆ active_ma ┆ ebit_rank ┆ future_re ┆ predictio │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ rket_cap ┆ --- ┆ turn_5 ┆ n │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ --- ┆ f64 ┆ --- ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ f64 ┆ f64 │\n", - "╞═══════════╪════════════╪══════════╪══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n", - "│ 000004.SZ ┆ 20250102 ┆ 2.325435 ┆ 2.168285 ┆ … ┆ 1.772242 ┆ null ┆ -0.066193 ┆ 0.023749 │\n", - "│ 000004.SZ ┆ 20250103 ┆ 2.328181 ┆ 2.003659 ┆ … ┆ 1.567863 ┆ null ┆ 0.00893 ┆ 0.041868 │\n", - "│ 000004.SZ ┆ 20250106 ┆ 1.918286 ┆ 1.811951 ┆ … ┆ 1.531265 ┆ null ┆ -0.0142 ┆ 0.054817 │\n", - "│ 000004.SZ ┆ 20250107 ┆ 1.971154 ┆ 1.971589 ┆ … ┆ 1.664744 ┆ null ┆ 0.013031 ┆ 0.025283 │\n", - "│ 000004.SZ ┆ 20250108 ┆ 2.071396 ┆ 2.040718 ┆ … ┆ 1.748053 ┆ null ┆ 0.00442 ┆ 0.013557 │\n", - "│ 000004.SZ ┆ 20250109 ┆ 2.085814 ┆ 2.134077 ┆ … ┆ 1.752624 ┆ null ┆ 0.024865 ┆ 0.005967 │\n", - "│ 000004.SZ ┆ 20250110 ┆ 2.03844 ┆ 1.928116 ┆ … ┆ 1.563176 ┆ null ┆ 0.073486 ┆ 0.012488 │\n", - "│ 000004.SZ ┆ 20250113 ┆ 1.800879 ┆ 1.745673 ┆ … ┆ 1.354823 ┆ null ┆ -0.04458 ┆ 0.010749 │\n", - "│ 000004.SZ ┆ 20250114 ┆ 1.993125 ┆ 1.936668 ┆ … ┆ 1.362504 ┆ null ┆ -0.152621 ┆ 0.004506 │\n", - "│ 000004.SZ ┆ 20250115 ┆ 2.188803 ┆ 2.154032 ┆ … ┆ 1.361079 ┆ null ┆ -0.152621 ┆ 0.005335 │\n", - "└───────────┴────────────┴──────────┴──────────┴───┴───────────┴───────────┴───────────┴───────────┘\n", + "┌───────────┬────────────┬───────┬───────────┬───┬────────────┬───────────┬────────────┬───────────┐\n", + "│ ts_code ┆ trade_date ┆ close ┆ vol ┆ … ┆ active_mar ┆ ebit_rank ┆ future_ret ┆ predictio │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ ket_cap ┆ --- ┆ urn_5 ┆ n │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ --- ┆ f64 ┆ --- ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ f64 ┆ f64 │\n", + "╞═══════════╪════════════╪═══════╪═══════════╪═══╪════════════╪═══════════╪════════════╪═══════════╡\n", + "│ 000004.SZ ┆ 20250102 ┆ 57.63 ┆ 119760.37 ┆ … ┆ 2.027703 ┆ null ┆ -0.066193 ┆ 0.015616 │\n", + "│ 000004.SZ ┆ 20250103 ┆ 52.02 ┆ 123929.75 ┆ … ┆ 1.80063 ┆ null ┆ 0.00893 ┆ 0.03083 │\n", + "│ 000004.SZ ┆ 20250106 ┆ 50.88 ┆ 84810.46 ┆ … ┆ 1.759968 ┆ null ┆ -0.0142 ┆ 0.044376 │\n", + "│ 000004.SZ ┆ 20250107 ┆ 53.28 ┆ 86097.07 ┆ … ┆ 1.908269 ┆ null ┆ 0.013031 ┆ 0.014036 │\n", + "│ 000004.SZ ┆ 20250108 ┆ 54.46 ┆ 99782.01 ┆ … ┆ 2.000828 ┆ null ┆ 0.00442 ┆ 0.006524 │\n", + "│ 000004.SZ ┆ 20250109 ┆ 53.89 ┆ 82884.3 ┆ … ┆ 2.005907 ┆ null ┆ 0.024865 ┆ -0.002277 │\n", + "│ 000004.SZ ┆ 20250110 ┆ 50.84 ┆ 82023.45 ┆ … ┆ 1.795423 ┆ null ┆ 0.073486 ┆ 0.007954 │\n", + "│ 000004.SZ ┆ 20250113 ┆ 50.68 ┆ 69987.0 ┆ … ┆ 1.563935 ┆ null ┆ -0.04458 ┆ 0.005756 │\n", + "│ 000004.SZ ┆ 20250114 ┆ 53.64 ┆ 78520.0 ┆ … ┆ 1.572468 ┆ null ┆ -0.156301 ┆ 0.000774 │\n", + "│ 000004.SZ ┆ 20250115 ┆ 54.54 ┆ 117410.0 ┆ … ┆ 1.570886 ┆ null ┆ -0.203593 ┆ 0.000368 │\n", + "└───────────┴────────────┴───────┴───────────┴───┴────────────┴───────────┴────────────┴───────────┘\n", "\n", "结果后5行预览:\n", "shape: (5, 71)\n", - "┌───────────┬────────────┬──────────┬──────────┬───┬───────────┬───────────┬───────────┬───────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ low ┆ … ┆ active_ma ┆ ebit_rank ┆ future_re ┆ predictio │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ rket_cap ┆ --- ┆ turn_5 ┆ n │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ --- ┆ f64 ┆ --- ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ f64 ┆ f64 │\n", - "╞═══════════╪════════════╪══════════╪══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n", - "│ 605588.SH ┆ 20260302 ┆ 2.566428 ┆ 2.53816 ┆ … ┆ 0.112914 ┆ null ┆ null ┆ -0.002814 │\n", - "│ 605588.SH ┆ 20260303 ┆ 2.475112 ┆ 2.280174 ┆ … ┆ 0.061385 ┆ null ┆ null ┆ 0.021067 │\n", - "│ 605588.SH ┆ 20260304 ┆ 2.173698 ┆ 2.114835 ┆ … ┆ 0.028725 ┆ null ┆ null ┆ 0.007579 │\n", - "│ 605588.SH ┆ 20260305 ┆ 2.18537 ┆ 2.219597 ┆ … ┆ 0.044869 ┆ null ┆ null ┆ 0.006004 │\n", - "│ 605588.SH ┆ 20260306 ┆ 2.171638 ┆ 2.201068 ┆ … ┆ 0.021626 ┆ null ┆ null ┆ 0.004578 │\n", - "└───────────┴────────────┴──────────┴──────────┴───┴───────────┴───────────┴───────────┴───────────┘\n", + "┌───────────┬────────────┬───────┬───────────┬───┬────────────┬───────────┬────────────┬───────────┐\n", + "│ ts_code ┆ trade_date ┆ close ┆ vol ┆ … ┆ active_mar ┆ ebit_rank ┆ future_ret ┆ predictio │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ ket_cap ┆ --- ┆ urn_5 ┆ n │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ --- ┆ f64 ┆ --- ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ f64 ┆ f64 │\n", + "╞═══════════╪════════════╪═══════╪═══════════╪═══╪════════════╪═══════════╪════════════╪═══════════╡\n", + "│ 605588.SH ┆ 20260305 ┆ 55.63 ┆ 18131.0 ┆ … ┆ 0.108525 ┆ null ┆ null ┆ 0.006038 │\n", + "│ 605588.SH ┆ 20260306 ┆ 55.33 ┆ 12374.0 ┆ … ┆ 0.082701 ┆ null ┆ null ┆ 0.005326 │\n", + "│ 605589.SH ┆ 20260303 ┆ 36.84 ┆ 342823.12 ┆ … ┆ 4.992206 ┆ null ┆ null ┆ -0.000194 │\n", + "│ 605598.SH ┆ 20260303 ┆ 72.78 ┆ 52954.2 ┆ … ┆ 3.20713 ┆ null ┆ null ┆ 0.010633 │\n", + "│ 605599.SH ┆ 20260303 ┆ 28.34 ┆ 156726.59 ┆ … ┆ 4.008987 ┆ null ┆ null ┆ 0.005141 │\n", + "└───────────┴────────────┴───────┴───────────┴───┴────────────┴───────────┴────────────┴───────────┘\n", "\n", "每日预测样本数统计:\n", " 最小: 1000\n", @@ -1289,16 +1288,16 @@ "│ --- ┆ --- ┆ --- ┆ --- │\n", "│ str ┆ str ┆ f64 ┆ f64 │\n", "╞═══════════╪════════════╪═════════════════╪════════════╡\n", - "│ 000004.SZ ┆ 20250102 ┆ -0.066193 ┆ 0.023749 │\n", - "│ 000007.SZ ┆ 20250102 ┆ 0.019858 ┆ 0.000582 │\n", - "│ 000010.SZ ┆ 20250102 ┆ 0.076274 ┆ 0.004461 │\n", - "│ 000014.SZ ┆ 20250102 ┆ -0.064651 ┆ 0.006334 │\n", - "│ 000040.SZ ┆ 20250102 ┆ -0.093583 ┆ -0.102073 │\n", - "│ 000042.SZ ┆ 20250102 ┆ -0.035958 ┆ 0.017509 │\n", - "│ 000056.SZ ┆ 20250102 ┆ -0.033205 ┆ 0.020625 │\n", - "│ 000068.SZ ┆ 20250102 ┆ -0.021277 ┆ 0.00916 │\n", - "│ 000153.SZ ┆ 20250102 ┆ -0.018193 ┆ 0.003244 │\n", - "│ 000159.SZ ┆ 20250102 ┆ -0.067833 ┆ 0.020453 │\n", + "│ 000004.SZ ┆ 20250102 ┆ -0.066193 ┆ 0.015616 │\n", + "│ 000007.SZ ┆ 20250102 ┆ 0.019858 ┆ -0.000471 │\n", + "│ 000010.SZ ┆ 20250102 ┆ 0.076274 ┆ 0.001351 │\n", + "│ 000014.SZ ┆ 20250102 ┆ -0.064651 ┆ 0.007245 │\n", + "│ 000020.SZ ┆ 20250102 ┆ -0.035224 ┆ 0.02038 │\n", + "│ 000040.SZ ┆ 20250102 ┆ -0.093583 ┆ -0.140064 │\n", + "│ 000042.SZ ┆ 20250102 ┆ -0.035958 ┆ 0.015733 │\n", + "│ 000056.SZ ┆ 20250102 ┆ -0.033205 ┆ 0.017907 │\n", + "│ 000068.SZ ┆ 20250102 ┆ -0.021277 ┆ 0.006877 │\n", + "│ 000153.SZ ┆ 20250102 ┆ -0.018193 ┆ 0.002956 │\n", "└───────────┴────────────┴─────────────────┴────────────┘\n" ] } @@ -1315,8 +1314,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:15.611776Z", - "start_time": "2026-03-09T15:27:15.317283Z" + "end_time": "2026-03-10T13:48:31.352041Z", + "start_time": "2026-03-10T13:48:31.029509Z" } }, "cell_type": "code", @@ -1388,17 +1387,17 @@ "│ --- ┆ --- ┆ --- │\n", "│ str ┆ f64 ┆ str │\n", "╞════════════╪══════════╪═══════════╡\n", - "│ 2025-01-02 ┆ 0.056168 ┆ 600421.SH │\n", - "│ 2025-01-02 ┆ 0.048049 ┆ 000668.SZ │\n", - "│ 2025-01-02 ┆ 0.042422 ┆ 000586.SZ │\n", - "│ 2025-01-02 ┆ 0.036414 ┆ 002076.SZ │\n", - "│ 2025-01-02 ┆ 0.035977 ┆ 301176.SZ │\n", + "│ 2025-01-02 ┆ 0.061083 ┆ 600421.SH │\n", + "│ 2025-01-02 ┆ 0.05972 ┆ 000668.SZ │\n", + "│ 2025-01-02 ┆ 0.046336 ┆ 002848.SZ │\n", + "│ 2025-01-02 ┆ 0.040149 ┆ 000586.SZ │\n", + "│ 2025-01-02 ┆ 0.038014 ┆ 603963.SH │\n", "│ … ┆ … ┆ … │\n", - "│ 2025-01-06 ┆ 0.069458 ┆ 600421.SH │\n", - "│ 2025-01-06 ┆ 0.067984 ┆ 603316.SH │\n", - "│ 2025-01-06 ┆ 0.062674 ┆ 301024.SZ │\n", - "│ 2025-01-06 ┆ 0.062283 ┆ 002691.SZ │\n", - "│ 2025-01-06 ┆ 0.060667 ┆ 000668.SZ │\n", + "│ 2025-01-06 ┆ 0.072982 ┆ 600421.SH │\n", + "│ 2025-01-06 ┆ 0.067706 ┆ 000668.SZ │\n", + "│ 2025-01-06 ┆ 0.067522 ┆ 603316.SH │\n", + "│ 2025-01-06 ┆ 0.062621 ┆ 002072.SZ │\n", + "│ 2025-01-06 ┆ 0.061637 ┆ 600847.SH │\n", "└────────────┴──────────┴───────────┘\n" ] } @@ -1416,8 +1415,8 @@ "cell_type": "code", "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:15.622544Z", - "start_time": "2026-03-09T15:27:15.617560Z" + "end_time": "2026-03-10T13:48:31.360505Z", + "start_time": "2026-03-10T13:48:31.356175Z" } }, "source": [ @@ -1437,55 +1436,55 @@ "text": [ "\n", "特征重要性:\n", - "bias_10 966.502486\n", - "return_5_rank 960.507971\n", - "pe_expansion_trend 947.437883\n", - "return_5 860.686048\n", - "high_low_ratio 727.172214\n", - "revenue_yoy 562.656819\n", - "turnover_rank 558.328422\n", - "amihud_illiq_20 388.591107\n", - "overnight_intraday_diff 380.723414\n", - "bbi_ratio 373.573519\n", - "min_ret_20 366.693362\n", - "drawdown_from_high_60 356.182625\n", - "roa 334.564408\n", - "active_market_cap 275.635468\n", - "ma_ratio_5_20 261.307464\n", - "turnover_deviation 194.988921\n", - "return_20 192.620460\n", - "net_profit_yoy 175.035165\n", - "mom_acceleration_10_20 171.881004\n", - "turnover_rate_mean_5 168.826981\n", - "EP_rank 163.394623\n", - "volume_ratio_5_20 158.494889\n", - "turnover_cv_20 153.915966\n", - "healthy_expansion_velocity 146.708935\n", - "EP 142.683564\n", - "max_ret_20 135.638350\n", - "std_return_20 133.794949\n", - "sharpe_ratio_20 108.012163\n", - "close_vwap_deviation 103.748435\n", - "ma_20 80.322421\n", - "volatility_squeeze_5_60 77.509971\n", - "BP 64.954998\n", - "ma_5 60.884566\n", - "roe 59.556815\n", - "volatility_ratio 53.867742\n", - "capital_retention_20 45.922123\n", - "volatility_5 41.385944\n", - "volatility_20 34.698196\n", - "profit_margin 29.828428\n", - "debt_to_equity 28.911864\n", - "pv_corr_20 27.893618\n", - "current_ratio 22.564712\n", - "upper_shadow_ratio 16.570660\n", - "kaufman_ER_20 16.416594\n", - "market_cap_rank 15.822645\n", - "CP 13.325475\n", - "up_days_ratio_20 10.937868\n", - "value_price_divergence 0.000000\n", - "ebit_rank 0.000000\n", + "bias_10 1379.975546\n", + "turnover_rank 1233.056754\n", + "return_5_rank 1211.083106\n", + "pe_expansion_trend 1194.518072\n", + "return_5 1067.753329\n", + "overnight_intraday_diff 864.510148\n", + "high_low_ratio 737.870126\n", + "amihud_illiq_20 699.716207\n", + "revenue_yoy 591.354167\n", + "min_ret_20 586.062664\n", + "drawdown_from_high_60 544.946004\n", + "roa 492.201997\n", + "close_vwap_deviation 456.329131\n", + "volatility_ratio 425.847030\n", + "active_market_cap 391.611939\n", + "healthy_expansion_velocity 381.013310\n", + "bbi_ratio 350.895088\n", + "ma_ratio_5_20 333.176295\n", + "turnover_deviation 320.594954\n", + "net_profit_yoy 312.797814\n", + "turnover_rate_mean_5 294.216230\n", + "return_20 292.148741\n", + "EP_rank 270.906632\n", + "turnover_cv_20 255.994465\n", + "ma_20 249.024118\n", + "mom_acceleration_10_20 245.051260\n", + "volume_ratio_5_20 236.906485\n", + "max_ret_20 233.119360\n", + "profit_margin 231.406188\n", + "EP 223.520549\n", + "ma_5 222.848019\n", + "std_return_20 211.703293\n", + "sharpe_ratio_20 200.874590\n", + "BP 182.380531\n", + "capital_retention_20 167.152835\n", + "roe 162.483161\n", + "volatility_squeeze_5_60 158.716820\n", + "volatility_20 152.922347\n", + "current_ratio 149.282750\n", + "debt_to_equity 142.640424\n", + "CP 133.383919\n", + "market_cap_rank 112.134213\n", + "volatility_5 104.388842\n", + "pv_corr_20 102.753917\n", + "kaufman_ER_20 79.014202\n", + "upper_shadow_ratio 58.782669\n", + "up_days_ratio_20 42.695102\n", + "value_price_divergence 0.000000\n", + "ebit_rank 0.000000\n", "dtype: float64\n", "\n", "================================================================================\n", @@ -1511,8 +1510,8 @@ "cell_type": "code", "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:15.634579Z", - "start_time": "2026-03-09T15:27:15.631711Z" + "end_time": "2026-03-10T13:48:31.368086Z", + "start_time": "2026-03-10T13:48:31.365653Z" } }, "source": [ @@ -1553,8 +1552,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-09T15:27:15.796755Z", - "start_time": "2026-03-09T15:27:15.641538Z" + "end_time": "2026-03-10T13:48:31.491899Z", + "start_time": "2026-03-10T13:48:31.374401Z" } }, "cell_type": "code", @@ -1604,7 +1603,7 @@ "text/plain": [ "
" ], - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAMWCAYAAADs4eXxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA7B1JREFUeJzs3Qm8jPX7//HLOfZ9yZZK1pQlslVE9iLRgookKoVWbYqSbOEbfVV8W0WLvqWiVEKRNksospQiyp4sLXSOM//H+/P93/ObM2fmGJwxc+a8no/HdJy577nnnjl3M/f1ua7Pdefy+Xw+AwAAAAAAWS4p6zcJAAAAAAAIugEAAAAAiCIy3QAAAAAARAlBNwAAAAAAUULQDQAAAABAlBB0AwAAAAAQJQTdAAAAAABECUE3AAAAAABRQtANAAAAAECUEHQDAADEyJYtWyx//vz2+eefn5Dn69Wrl51++unH9Nj777/fGjdunOX7BACJjqAbAJCQpkyZYrly5Qp5U/AQDV988YUNHTrU9u7da/H6fixbtsyyq6efftq9jkQybNgwF8g2adIkw7JFixZZ165drUKFCpY3b14rVqyYW1eP2bFjxwnf1zvuuMO++eYbmzVr1gl/bgDIznLHegcAAIgmBSiVKlVKd1+tWrWiFnQ/8sgjLptYvHjxqDxHTqag+6STTnLvbyLYtWuXvfTSS+4W7KGHHrJHH33UKleu7F6vfh48eNC+/vpr+9e//uUe8+OPPx71cz777LOWlpZ2TPtbrlw569Spk40bN84uvfTSY9oGAOREBN0AgIR28cUXW4MGDSw7+/PPP61QoUKWU/31119WsGBBSzQvv/yy5c6d2zp27Jju/tdff90F3MpyT5s2zWW5A40fP97djkWePHmOa5+1T126dLGffvrJDQQAAI6M8nIAQI72wQcf2AUXXOCC2iJFiliHDh3su+++S7fOt99+6882av6tMn69e/e23377zb+Oysrvuece929l1r1S9k2bNrmb/h2qNFr367GB29F9a9assWuuucZKlChhTZs2TReo1a9f3woUKGAlS5a0q666ys0LPhZ6TYULF7bNmzfbJZdc4v6tUuannnrKLV+1apW1bNnSvTcVK1a0V199NWTJ+qeffmp9+/a1UqVKWdGiRa1nz572+++/h8xU16xZ0/Lly2cnn3yy9e/fP0Mp/oUXXugqEZTRbdasmQu2H3jgATcPWX+XhQsX+t9brSt79uyxu+++22rXru1eg/ZBgy0qhQ60YMEC97j//ve/NmLECDvllFPc37NVq1a2YcOGDPu7ePFia9++vfsb6D2oU6eOPfHEE+nWWbdunV155ZXub6FtaYAn0vLrd955x5WLa5+Ds9zK6D///PMZAm5RmXngMSMzZ850x67eV72/VapUcYH74cOHM53T7R2byl4/88wz7nF6fMOGDW3p0qUZnrt169b+5wMARIZMNwAgoe3bt892796d7j4FNKIs4nXXXWft2rWzxx57zGVUJ02a5ILcFStW+IOTuXPnusze9ddf7wJuBX8KUPTzq6++ckHL5Zdfbt9//7299tprLgvpPUfp0qVdGfHRUjaxWrVqNnLkSPP5fO4+BYpDhgxx2cYbbrjBbXfixIkuONX+HktJu4IyBajaxpgxY+yVV16xAQMGuCDzwQcftO7du7vXNnnyZBdMn3feeRnK9bW+nluB4Pr16917+PPPP/uDXNEyld4raLvlllv86ymwUxOxwAysBjO0TxpQ6NGjh5UtW9YF2LfeeqsLULVfovtFfxsFsHrPtG+a7/yf//zHmjdv7gYvFIgGGj16tCUlJblAXceHXrdep4Jsj/7mGogoX7683X777e7vvnbtWnvvvffc76K/v+Zia6BCfQL0nimg79y5s82YMcMuu+yysO97SkqKe+16LwLpGNJNf9/gYDwzGgDR+nfddZf7+fHHH7vgff/+/TZ27NgjPl4DKgcOHHCDJ/qb6T3R313vbeDfRgG/AnP9ze68886I9w8AcjQfAAAJ6MUXX1SkGvImBw4c8BUvXtx34403pnvc9u3bfcWKFUt3/19//ZVh+6+99prb1qeffuq/b+zYse6+jRs3pltXv+t+7VMw3f/www/7f9e/dd/VV1+dbr1Nmzb5kpOTfSNGjEh3/6pVq3y5c+fOcH+492Pp0qX++6677jp338iRI/33/f77774CBQr4cuXK5Zs+fbr//nXr1mXYV2+b9evX9/3zzz/++8eMGePunzlzpvt9586dvrx58/ratm3rO3z4sH+9J5980q33wgsv+O9r3ry5u2/y5MkZXkPNmjXd8mAHDx5Mt13vPc+XL59v2LBh/vs++eQTt+0zzzzTd+jQIf/9TzzxhLtf76Wkpqb6KlWq5KtY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06aF3M6+ffusdOnS9uqrr9qVV17p7lNsceaZZ9qXX35p5557bsjHHWm7oqy5BgUUVHuUTdfgwA033GCpqal2+umn2yOPPGJ9+vSxnCQlJcUlFdu3b+/ex+zMi710LBUtWjT7Zrr79etnuXLlsiVLlrj/kZT5rVmzpt1111321VdfuXVUytGpUyd3cOvFahQps7KQCy+80O64445096mUo1evXv7f9T/B8OHD3SiVtluxYkU3UrVr1y7/c9WpU8eWLVvmf8yUKVNcgKwBAf3PqnUuuugi27ZtW0Sv9YUXXrA9e/a4AQIF39qH5s2bRxxwAwAAADnB+eef76pev//+e/e7MsWfffaZXXzxxe73tLQ0V7qt2KFdu3YuqaUybp1ne77++msXALZu3dp/n7LXp512mgu6Q4lku97+vf766+7cXo+ZPn26K2VXHCLLly+3X3/91ZKSkqxevXquylX7vnr16qi8X4ituA66dZB++OGHrtxacyGCKcDVQawgWOuqJGTu3Ln2008/Wbdu3Y77+cePH++CX5WBdOjQwY1UKQjv0aOH+x9Fc0f0e2CxwF9//WXjxo1zI1+ffvqpGxC4++67I3o+BfXnnXeee70auatVq5aNHDnSzVkBAAAA8D/333+/yzgrSFa2VIGrkmrdu3d3y3fu3Gl//PGHjR492iXBPvroI7vssstcmbdiBm8Ka968eV1MEUjn4VoWSiTblf/+978uoFd2W1NG+/bta2+//bZVrVrVLVe84lXkDh482N577z03p1tBueIaJJbcFsc2bNjgAlr9zxSORrg0T2Ljxo1urrdMnTrVZcOXLl3qmhocK5U86H8Qeeihh1yJiLbXpUsXd999993ngmRl1dUkQfQ/1+TJk11ALgMGDHBl8ZHQ/3wff/yx+7BQyYVevzL92ubDDz8c8jGHDh1yt8ASB8mX5LPk5LieOYAEpuMv8CfAsYicjM9ExINEOg51bqws8iuvvOLO+8866yyX6VaiS5lnJcW882P1gdL5uCg+UDb86aefdplolXh72wuk+ENJr+D7JZLtyoMPPmi///67SyAq8FZyTdW4OtfXdFlNK/UGD9SQTTR1Vo3hlBW/8cYbLVGl/P/3NdT7m91E+hriOuiOZLq5Gico2PYCbtH/eBqx0rLjCbpVPh444iX6nyT4Po14eUF3wYIF/QG3qFREyyOh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7PwhV65c6W41atRIt86XX35pLVu2tEKFClnRokWtWbNm9vfff7tlmzZtsj59+lilSpWsQIECVqVKFXv44Yftn3/+OeJzZ7ZdOf300zPs2+jRozPdd920PQBA/Il50L19+3a79dZbrXLlypYvXz479dRTrWPHjjZ//nxLJG+99ZY1aNDAihcv7r4UNVAwbdq0DOutXbvWLr30UitWrJhbr2HDhrZ58+aY7DMAAImsZs2atm3bNv/ts88+SxcYX3TRRda2bVtbsmSJLV261AYMGGBJSf87dVq3bp2lpaXZf/7zH/vuu+9s/PjxNnnyZHvggQcyfc4jbdczbNiwdPumcyXP3XffnW6ZbmeddZZ16dIly98jAMDxy20xpFHiJk2auEB07NixVrt2bUtJSbE5c+ZY//793RdaoihZsqQ9+OCDbhQ9b9689t5779n1119vZcqUsXbt2rl1fvzxR2vatKkbOX/kkUfc6Le+yPPnz3/Uz9d41HxLzc2IN2IjX7LPxjQyqzV0jh06nIs/A2KGYxHBNo3u4P937ty5rVy5ciHfpDvvvNNuu+02u//++/33nXHGGf5/K3DWzaPkwfr1623SpEk2bty4sG/8kbbrKVKkSNh9K1y4sLt5vvnmG1uzZo0L+gEA8Semme5+/fq5ciiN9F5xxRVWvXp1N+p811132VdffeXWUZa3U6dO7stFQWjXrl1tx44dYbd54YUX2h133JHuvs6dO1uvXr3SlW0NHz7cevbs6bZbsWJFmzVrlu3atcv/XHXq1LFly5b5HzNlyhQ3OKABgTPPPNOtoy9bjS5HQvt12WWXuceqBO322293zxE4qq6gvH379jZmzBirV6+eW09ZbwXmAAAga/3www928sknu4C5e/fu/sqynTt32uLFi9337/nnn29ly5a15s2bp/vODmXfvn1ukD2co9muyslLlSrlzgeUmEhNTQ273eeee86dQ11wwQVH9foBAAkedO/Zs8c+/PBDl9EONQdJAa7KthQEa92FCxfa3Llz7aeffrJu3bod9/OrDExZ9hUrVliHDh3s2muvdUF4jx49bPny5S7g1e8+n8//mL/++suNXqss/NNPP3VfzirxOlrapsrnNSKueVyi1zp79mz3panMt76QGzdubO+8885xv1YAAJCevmM1oK5zEWWnN27c6ILWAwcOuHMNb+70jTfe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4J2SkhL2OevXr2/PPvusTZw40WbPnm0+n8/atm1rhw8fdsu//vprK1OmjL388sv23Xff2YMPPmiDBg2yJ5980r+Nzz//3Hr27Gl9+vRx67zxxhu2ZMkSt78AgPgXF0H39u3b7dZbb7XKlStbvnz53Ghvx44dbf78+Zaopk+f7kbRO3fu7L9PX9r33Xef1a5d2woVKuRGxPUlu3Xr1pjuKwAAiSB37txWrlw5/+2kk05Kt1xZ5MDlRYsW9S9TdnrPnj02bNgwO+OMM1wA//DDD9uOHTvs559/DvucN910k11wwQVWtmxZq1evng0fPty2bNlimzZtcsuVsVZmu3nz5u48qEePHnb99dfbW2+95d/Gl19+aaeffrrddtttVqlSJWvatKnLoCvwBgDEv9yx3gF96TRp0sSVao0dO9YFnAo+58yZY/37909XgpUo9Jrvvvtu9yUc6K+//rLly5fbkCFDXAnZ77//brfffrtdeumltmzZsqN6jsaj5ltq7kJZvOdAZPIl+2xMI7NaQ+fYocO5eNsQMxyL2DS6g/9N+OGHH9yAdv78+e28886zUaNGucx1YAm3Ms4KuDX4r+9jBeKiQLtUqVL2/PPP2wMPPOAy1fq3ysEVEEfizz//tBdffNEFzkowhLNv3z4rWbKk/3ftq57z/ffft4svvth27txpb775prVv354/MABkAzHPdPfr189lfDVae8UVV1j16tXd6PFdd91lX331lVtn8+bNbg5U4cKF3aiz5kVpZDkczcu644470t2njHKvXr38v+sLUqPNyiRruxUrVrRZs2bZrl27/M9Vp06ddMHulClT3OCABgT0Jat1VGqmErRI6Uu6e/fu9sgjj7gR7UDFihWzuXPnutenL/dzzz3XlZep9EzvAQAAODaNGzd23+MffvihTZo0yTZu3OgGvw8cOOCWX3PNNS7g/uSTT1x597Rp01zW2aNS8gULFrh1NPda5wDa1gcffOAy6JmZPHmyXXXVVW4euNbXd33evHlDrvvFF1/Y66+/7jLkHiUnNCDQrVs39zgNCuic4amnnuJwAIBsIKaZbpVp6QtrxIgRrpw6mALctLQ0fxC8cOFCS01NdRlwffHoy+94jB8/3kaOHOlGsvXva6+91s4//3xX6qWsu0q9FZRr/pQGBrxs9Lhx49yXcVJSkvtCVtZaX4aRUFma5m5p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ruf57LPPrHXr1hm2u2fPHlftxdU9AADAcZeXeyV8cv/999tTTz3lTkYUTGq+d6T69evnTmpUMqhS9erVq1vNmjXtrrvusq+++sqto/l1KjUsXLhw2Dl1gS688EK744470t2nk6hevXr5f9f1xIcPH249e/Z0261YsaLNmjXLdu3a5X8uzTFUqaNnypQpbnBAAwJnnnmmW0clj9u2bYvotWquoE4Cr7rqqnQncYE0b7BcuXL+23vvvWdVqlRJ1y0eABLNqlWr3GeqPhtvvvlme/vtt+2ss86yn376yT+N6MYbb7QPP/zQzjnnHGvVqpX98MMPblngOprmpM9NzenWd4GC4FAUzP/xxx+urF2f4x999JGbu3355ZfbwoUL3Trnnnuum+d93333uUFTDQTcfffdbmAg+HNf62jdUqVKue+smTNnRvkdAwAA2ckxZboDM7Ua7VdGWvPxqlat6oLVSOhkSCdQyljoZCWYAlxlI7wgWCdCqampLgPerVs3NwfveIwfP97NQdccPv1b8wGVnejdu7cLjnUSpaBc8wo1MCA68Ro3bpxNmzbNZTt69OjhTsKiMY9dcwdffvllNwDhPX8oysbo5tm/f7/7mS/JZ8nJqnYATjwdf4E/gWCqavKoCkiVPvr80rzo6667zubNm+e/HOUNN9zgPm9lzJgxbtmzzz7rvj+8dTQArKZm8swzz7jM9fTp0/0DroHP531man625oeLBnyVwVa/En0X6Dvotddes1tvvdX+/e9/u898ffcomx68PQ306vtCAbcGdPV98s4772T62Y2cxTteAo8bgOMQOVVKAn0mRvoajinoDqTrdCtTrNvR2LBhg+aTu1LBcObPn+8yICplP/XUU9196o6ukyOdoCl7fKzat29vffv2df9+6KGHXAddbc8r5VbQrfJGZdWVdfbe1MmTJ7vss+hkbdiwYRYNOmHbu3dvugx9KKNGjXKd44MNrpdmBQv+X6k6EAuPNvi/hlNAoPfffz/kG6IpR6ooUum3KqBEgXXg+uo2rrJz3ed1G9fnZeA6ynZ/8sknVqFCBff73Llz/cv0WZ6cnOxugY/Jmzeva6gWeN/jjz/uBgMUdGsAWJ/JGlwOt/8auNUggQZzM/t+Q84UeBwCscJxiHgxNwE+E5WUjVrQrfI6ZYkVgCoo/f77712mQlljlW736dPniNtQwB3J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rl07+/XXX2369Om2YsUKF5xfffXV7nWhnnnmGRdwn0xqt3vbbbfZhg0bbMaMGbZ69Wrr0KGD3XDDDW59+f33391rLrjgAlu8eLHNnj3b1q5d64J5AAAAIEMG3co89enTx8qXL285cuSwUqVKWZs2bWzu3LkWT15++WW7/PLLrWDBgu6hC/slS5YEraMLewUYgQ9l64CMRG22U6dOLggOpczzokWLbNKkSVavXj2rVKmS+/6vv/6yd999N2jdlStX2lNPPWWvvfbaSd8ztdv99ttv3fmmfv367pwzdOhQl9H+7rvv3PKZM2daYmKivfDCC24b2taLL77osuE///xzmvx+AAAAkHlkS+8d2LRpkzVq1Mhd9I4bN85q1KhhSUlJ9vnnn1uvXr3shx9+sHjx9ddf280332wNGza0nDlz2uOPP27Nmzd3WbSSJUsGBSyvv/66/2d1RJyqS8bMteRsedJs34GT2TS2dap+SUeOHHFfdQx4smTJ4tr5ggUL7M4773TPHT582G655RYX/KoUPK22q+Pvvffes9atW7vzzrRp0+zvv/+2K664wr+d7Nmzu9d6cuXK5b5qO8qAAwAAABkm092zZ0+XzVXG97rrrrMLL7zQqlWrZv3793dZK9m8ebO1bdvW8ubNa/ny5XOloBq7GYkunvv16xf0nDJugeWhZcuWdWNOVWqq7aoMVeWmf/zxh/+9atasacuWLfO/ZvLkye4iXR0CVapUcesoQN62bVuqPuuUKVPc51UpfOXKle2VV16x48ePn5DRV5CgIMN7KCsOxAu1/dKlS9vgwYNt7969dvToUdcB9dtvvwUdS/fdd58LkHU8puV2FWSrY09jtXWs3X333fbRRx/5g+mrrrrKVd+oE1Db0LYefPBBtyy1xzoAAAAQE5nuPXv2uPGSo0ePdhMahVKAq6DUC4LnzZtnycnJLgN+4403uszxmXj66aftscces2HDhrnvNbmSLvK7devmLrgHDRrkgnJlor0xpcq+Pfnkk/bWW2+5TNitt95q999/vwuoT5W2pYv/QoUKBT2vz1W0aFEXbCsAUOeAAoRwlJXzMnxy4MAB9zVHFp9lzeo75X0CTpfacuj33lcdt4HLFfhqcjK1/axZs1rTpk1dB5bGZWu9Tz75xL788kvXGRf4utDthDrZdmXIkCEukNa5R8eVOtvUkaf3U6WN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QTcAAAAAAFFC0A0AAAAAQJQQdAMAAAAAECUE3QAAAAAARAlBNwAAAAAAUULQDQAAAABAlBB0AwAAAAAQJQTdAAAAAABECUE3AAAAAABRQtANAAAAAECUEHQDAAAAABAlBN0ATvDNN99YmzZtrESJEpaQkGAff/xx0HI9F+4xbtw4/zp33XWXZc+ePWj52LFjU/xt//3339arVy8rXLiw5c2b16677jrbsWOHf/nu3butZcuWbr9y5MhhpUqVst69e9uBAwf863z99ddh92379u38TwMAAOCsi4uge8SIEVarVq303g0gbhw6dMguuugie+GFF8Iu37ZtW9Djtddec4GtguRADz/8cNB6ffr0SfF977vvPvvkk0/s/ffft3nz5tnvv/9uHTp08C/PkiWLtW3b1mbMmGE//vijTZ482b744gu75557TtjWhg0bgt67aNGip/37AAAAADJ00K0MlC7Gy5cv789eKcs2d+5ciycffvih1a1b1woUKGB58uRxHQVvvfVW0Dpdu3Y9IUOnzB5wNrVq1cpGjRpl7du3D7u8ePHiQY/p06fblVde6Y7hQOecc07Qemr3kezfv99effVVGz9+vF111VVWp04de/311+3bb7+1RYsWuXUKFixoPXr0cMdRmTJlrGnTptazZ0+bP3/+CdtTkB343grYAQAAgLMtm6WzTZs2WaNGjVwgqtLUGjVqWFJSkn3++eeuzPSHH36weFGoUCEbMmSIVa5c2ZXdzpw5026//XYXHLRo0cK/noJsBRsedUScqkvGzLXkbJEDHCDUprGtT+uXovLvTz/91N54440TlumYfuyxx6x06dJ2yy23uEx2tmzhTzvfffedO/avvvpq/3M6VvTahQsX2qWXXnrCa5QJV2dWkyZNTlimTq0jR45Y9erVXTWMzjMAAADA2ZbuqR9lqZTNXbJkiStNvfDCC61atWrWv39/f3Zr8+bNrqRUYzzz5ctnN9xwQ9A4z1BXXHGF9evXL+i5du3auSyyp2zZsi6Td9ttt7ntKmumktU//vjD/141a9a0ZcuW+V+jUlZ1DqhDoEqVKm4dBcgqXU0N7Zcyh3pthQoV7N5773XvsWDBgqD1FGQHZuiU3QNilYJtZbQDy8DlH//4h7399tv21Vdf2d133+2C7wceeCDFihd1RukYC1SsWLETxmPffPPNljt3bitZ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+R9L0B1H3nvvPevfv7+bDXD58uV20UUXWYsWLWznzp3pvWuIA/PmzXMB9aJFi2zOnDmWlJRkzZs3t0OHDvnXue++++yTTz6x999/363/+++/W4cOHYIuDhRwHz161L799lt74403bPLkye6kDJyqpUuX2ksvvWQ1a9YMep52iLNh79691qhRI0tMTLTPPvvM1q1bZ0899ZQVLFjQv44uDp977jl78cUXbfHixZYnTx73d1kdQx5dcK5du9adV2fOnOkuZLt3785/IlLl8ccft0mTJtnzzz9v69evdz+r3U2YMIF2iKjS9Z9iDSX8wkmL89+BAwfctWaZMmXsu+++s3HjxtmIESPsn//8Z8b739Xs5YgP9evX9/Xq1cv/87Fjx3wlSpTwjRkzJl33C/Fp586d6kb3zZs3z/28b98+X2Jiou/999/3r7N+/Xq3zsKFC93Ps2bN8mXJksW3fft2/zqTJk3y5cuXz3fkyJF0+BTIqP78809fxYoVfXPmzPE1adLEd++997rnaYc4WwYNGuS77LLLIi4/fvy4r3jx4r5x48b5n1P7zJEjh+/dd991P69bt86dI5cuXepf57PPPvMlJCT4tm7dGuVPgHjQunVrX7du3YKe69Chg69Tp07ue9ohzgadxz766CP/z2nV7iZOnOgrWLBg0DWizr2VKlXKcP+xZLrjhDKH6gFS6YYnS5Ys7ueFCxem674hPu3fv999LVSokPuq9qfsd2AbrFy5spUuXdrfBvVV5ZfFihXzr6NeT/VkqqcTSC1VXahqIrC90Q5xNs2YMcPq1q1rHTt2dENlateubS+//LJ/+caNG2379u1BbTR//vxu6FfgOVElldqOR+vr77cyQ8DJNGzY0ObOnWs//vij+/n777+3BQsWWKtWrWiHSDdpdf5buHChNW7c2LJnzx503ajhjao2ykiypfcOIG3s2rXLle4GBjOin3/44Qd+zUhTx48fd2NoVVpZvXp195xOrjop6gQa2ga1zFsnXBv1lgGpMXXqVDeERuXloWiHOFt+/fVXV9arYV0PPfSQa499+/Z158EuXbr4z2nhznmB50QF7IGyZcvmOjM5JyI1HnzwQddxrU7urFmzumvB0aNHu7Jdr43RDnG2pVW72759u5uvIHQb3rLA4TyxjqAbwGllGdesWeN604GzacuWLXbvvfe68V+aVAVI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" + "image/png": "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HjuVoFvl454SJUq4/zWnPPi+nTt3+oNulagE/uGVKlXKPX4if/31l8ukP/fcc65sJZxrr73W/7WORceo11P2u2XLlim2HzdunPtjDjasbpLlyXP8hMeFzG10/ZSLgiD20I6xjzaMD7RjfKAdY89HH32U7HtVrnpzoEOVXXvTSJWw+v3331M8/thjj7nAWkG3pnsqs60+s15HixVremhwFa2y5M2aNbM77rgjomP+559/3P/anxfUezZs2OBeP/jnUnm6NG3a1J95V9WsAvHJkye7KtZ44rVjVnYowikIGRp0V65c2Y34pPdiafoDDA7oQ41CBP6ReyNPoe4LXA0x+INB20QyeKCstRZ+0OqKHm+/2bNnt/Xr16cYRRPN+1aQrqqAUEG3yl80/92jDwANUIxZlmDHcqTMjCN2RvPVqRi+JMEOJ8XHqGhWRDvGPtowPtCO8YF2jF2rRrb298cVqF166aX+OdChFlXzFlLTSuYnuiywysE1d1qZbQW1mo/tVX6Kgl9NI3311VetYcOGdtZZZ0V0zN988437X333wESdKKhX8i/42JUk07EH3u8F3wr6VUEbDwLbMavPVd8f8LuWaYPuIkWKuLKNp59+2l33LnhEau/evW7Bsq1bt7qbl+1es2aNe0wZ71BUDhK4uJlKQFatWmXNmze3jKIyFZXJBxo2bJjLgOuyCYGZ/ECaB6I53cqoh6L5IqFWN1egdoxVr2Oe2pHVy2Mf7Rj7aMP4QDvGB9ox9niBmcqttTbT6tWr3ffq3+trxQRnn322W8NJ6yV52W1tq+d6iwuLFilTfKD+vqZfKnM9aNAgF2xLcBLLW5BYAbmmb8pvv/3mklmasqpAXMkxBeUKlnWNcK1Mrn0qY62BAY+SYPoZtPCyMuHez6GY5IwzznABuvr1qkS97rrrXD9fU0W1YLOqc+MtQNXPE28/U1pF/PP7MtjPP//sK1mypK969eq+t99+2/fTTz/51qxZ43v88cd9VatW9SUlJfnq1Knju/jii30//PCDb9GiRb569er5mjVr5t/HAw884DvvvPP830+dOtWXJ08e3wcffOBbu3at7+abb/YVKFDA17NnT/825cqV802aNCnZsejtePfdd/3fb9q0yd23bNky9/20adN8BQsWTPYcbX+yb6OOp0OHDv7v//rrL9/gwYN93377rXvtzz77zHf++ef7Kleu7Pvnn38i2ue+ffvc8ezevfukjgmZw5EjR3zvvfee+x+xi3aMfbRhfKAd4wPtGPvmzp3r+qnBN6+Prr52qMfV1/cMGTLEV6JECV+OHDlcH/nRRx918UI4wf35wPu++OIL9/2WLVt8TZs29RUpUsSXM2dOX6VKlXx3332361cHUvwR6vi0P89rr73mq1u3ri9v3ry+YsWK+dq3b+/ikXjC32LK2Cv4dyVYhl+nW+XTWil87Nixdtddd7kMtUauNKqkhc1Uvj1r1iy3YIJGm1Q6rsXGnnzyybD71EXrV6xY4eZQqHRbI1UZmeWOlBZK08iarjeoTH7p0qXtsssus9GjR5/UtboBAACAzEJzqt977z2XUQ6VIdTc7MBL/IYyfvx4d4uULhMcPBU0+D5VnOoqSSei8vET0fpMgWs0AZJNkTdvRXzNKyhYsKDt3r3blccgdufKaHGOcCclxAbaMfbRhvGBdowPtGPsow3jA+2YMvbSugIFChSwTHmdbgAAAAAA4hlBdzrSJQvC3RYuXJieLwUAAAAAiAEZPqc7nixfvjzsY2XKlDmtxwIAAAAAyHgE3emoUqVK6bk7AAAAAECMo7wcAAAAAIAoIegGAAAAACBKCLoBAAAAAIgSgm4AAAAAAKKEoBsAAAAAgCgh6AYAAAAAIEoIugEAAAAAiBKCbgAAAAAAooSgGwAAAACAKCHoBgAAAAAgSgi6AQAAAACIEoJuAAAAAACihKAbAAAAAIAoIegGAAAAACBKCLoBAAAAAIgSgm4AAAAAAKKEoBsAAAAAgCgh6AYAAADSwZdffmnt2rWz0qVLW7Zs2ey9995L9rjP57MRI0ZYqVKlLHfu3NaqVSvbsGFDiv18+OGHdsEFF7htChcubB07dvQ/Nn36dLfvULedO3eGPK758+eHfc7ixYvdNps3bw75+HfffeffzzvvvGP169e3QoUKWd68ea1OnTo2Y8YMfneAE8gSQffIkSPdhwIAAAAQLQcPHrTzzjvPnn766ZCPT5gwwZ544gmbOnWqLVq0yAWurVu3tn/++ce/zcyZM6179+52ww032IoVK+zrr7+266+/3v94ly5dbNu2bclu2kezZs2sePHiIV/3oosuSvGcm266yc455xwXRAf67LPPkm1Xr149/2NFihSx+++/37799lv78ccf3THqNmfOnHR494D4ld1iwPbt223s2LFu1O+3335zHygKogcOHGgtW7a0eLJ37173YaaRxD179li5cuVs8uTJdsUVV2T0oQEAACAVl19+ubuFoiy3+nTDhg2zDh06uPteeuklK1GihMuIX3vttXbs2DG74447bOLEiXbjjTf6n1u9enX/18p+6+bZtWuXff755/bCCy+EPa4zzjjDSpYs6f/+6NGjNmvWLOvfv7/LZgcqWrRosm0DXXLJJcm+17G++OKL9tVXX7nAH0CMBt0qdWncuLErY9EHUK1atdwHhUbU+vbta+vWrbN4ceTIEbv00kvdoMLbb79tZcqUsf/+97/uZ0+rC8bNs2PZ80blOBF9ORN9NqGhWc2Rc+zw8eQnQ8QO2jH20YbxgXaMD5m5HTePb3vCbTZt2uQSSSop9xQsWNCVkStzrKB76dKlLsGUkJBgdevWddsr0aQ+cM2aNUPuV4F7njx57Jprron4eGfPnm1//PGHy1IHa9++vcu8V6lSxe655x73fbhBBAX769evt4cffjji1wayokxfXn777be7Ebjvv//err76avcBUKNGDbvzzjv9c0y2bNniRgzz5ctnBQoUsM6dO9uOHTvC7lOjdMqSB9JcmV69evm/L1++vI0ZM8Z69Ojh9quMsz6gNJrovVbt2rVtyZIlyebYKEDWgEC1atXcNm3atHGlOZH4z3/+47LbGu3UQIOOQaVCKlMCAABA7FIALcpsB9L33mO//PKLf2qkMuIffPCBm9Otvqv6iKEow63y88Ds94noOcpMn3XWWf771G999NFH7a233nLVpU2aNHH9Y/V/A+3bt89tq+x527Zt7cknn3RJIwAxmunWh8snn3ziSss15yWYAtykpCR/ELxgwQJXlqMMuOa7aNGIUzFp0iR76KGHbPjw4e5rza/RnJjevXu7EcchQ4a4oHz16tX+0pxDhw7ZI4884haV0Chlt27dbPDgwfbKK6+c8PX0odaoUSN3/Cr5KVasmPsQ1eskJiaGfM7hw4fdzbN//373f84EnyUm+k7p50fGUfsF/o/YRDvGPtowPtCO8SEzt6OqMENRv9R7TF972wZur76s+pG6T1WPcu+99/ozzM8++6ybe/3666/bzTffnGz/SkCtXbvWpk2bFvYYgv36668uQfTqq68me46y7io39yjDrm01Dz2wZD5Xrlxu8bUDBw7YF1984RJhZ599tksURfo+RXqsyJxox/+J9Hc5UwfdGzdudKUrVatWDbvNvHnzbOXKla5kp2zZsv4yG2XD9YHQoEGDk359zaPu06eP+1orTU6ZMsXtr1OnTu4+BcMKkpVV9+a+6I3X4hgVK1Z03/fr189GjRoV0etpdFNlOl27drWPPvrI/fzK9GufDzzwQMjnjBs3zh588MEU9w+rm2R58hw/6Z8dmcPo+kkZfQhIB7Rj7KMN4wPtGB8yYzuq3xbKDz/8YDly5HBfe9lsLZRWoUIF/zaaKqmgWvtQ9aa3xk/gPpXtVoCrqYeBlGXWc7XvcMcQ7I033rD8+fNb9uzZT/gcJb3WrFkTdrtzzz3X9Y3vvvtul52P1Ny5cyPeFpkX7Wgu4RrzQbcC7hPR6J6CbS/g9habUBZcj51K0K3ycY9XCqQ55cH36fIMXtCtOTVewC26JES4yzcE00in5nNrRFOZba0WqXk9yqqHC7qHDh3qRhgDM916L8YsS7BjOUJnx5H5aRRfnYrhSxLscFLmmreGyNGOsY82jA+0Y3zIzO24amToRcTUl/MWw1W/VoGpkinefeq3KcmizLbuU0m3pjdqMTNvG22vku4WLVokW1hXmWZVVGr7SBfc1TEMGjTIVW2Gm6sdXIWpKZap7f/dd991GfpIjkE/iwI1laN7gxGIPbSjpagyjumgu3Llyq7cJr0XS1PZd3BAH6o0IPDDwCsfD3WfguVQz/G2iWTwwAvQ9fzAUnLNDdfopT7MNHcmWM6cOd0tmE5GxzLZIiNIO7VjZlssBmlHO8Y+2jA+0I7xITO2o9f/UyCsINqzdetWNw1Rl9pSCbbWFFKVoqo4laHWFEZd01uLoGkfCrZvvfVWVyWptX0U8Cr5IlpoLbCfqSvdqGS9Z8+eKfqfWgtJUyBVERqYHdf3qg695ZZbUjxHq5Crr6kF3Lz9a72i559/3r+tjl2XGFOCSdMblQHXFEpVg6YliNa2BN2xj3a0iH+PM3XQrQ8oLfKgax0OGDAgxbxuld4oKNUHmm5etltlMHos8PIKgTRXOnBxs+PHj9uqVausefPmlpG0eJrm1yiI18CA/PTTTy4YDxVwp2bR0JbugxuxSYNAOpFp5JyTUuyiHWMfbRgfaMf4EAvtqAV2A/uTXjWiAmMFsFoNXNfyVtCrvqoy21q/SPOkPQqyVfqttYT+/vtvt7q5ph+qxDx4MbSrrroq5FVuVPKqVcWDk0p6jtYnCjd1c/To0e7KOXp9baNS9MBV0XXsmvqoud5auE3bvPzyy24tJQAxGnSLAm4Fow0bNnSjfir51qieSlM0qqYAWyXfmgetax/qMX0YaDEHjcSFovIcfQhqZUaN1D322GPugy+j3XbbbfbUU0+5ax5qIYsNGza4hdw04AAAAIDMTauMp1bhqApI9WdTW+9HAwpalFe31HzzzTdpPg4ld8LRwIBuqVEpu24A4uySYVpoQtcs1KjhXXfd5a5RqHkgKo9R0K0PL630rdG/pk2bumsf6jkamQtH81j0oaKyGwXn2j6js9yiTL1Wk9QCcBpcULCtAFzzfAAAAAAAsSebL9IJx4iZyfy65MPu3bspL4+DEjotSpJZS+hwYrRj7KMN4wPtGB9ox9hHG8YH2jFl7KXFDgsUKBC7mW4AAAAAAGIVQfdplC9fvrC3hQsXns5DAQAAAACcBpl+IbV4snz58rCPBV7OAQAAAAAQHwi6T6NKlSqdzpcDAAAAAGQwyssBAAAAAIgSgm4AAAAAAKKEoBsAAAAAgCgh6AYAAAAAIEoIugEAAAAAiBKCbgAAAAAAooSgGwAAAACAKCHoBgAAAAAgSgi6AQAAAACIEoJuAAAAAACihKAbAAAAAIAoIegGAAAAACBKCLoBAAAAAIgSgm4AAAAAAKKEoBsAAAAAgCgh6AYAAAAAIEoIugEAAAAAiJKYD7pHjhxpderUyejDAAAASLPjx4/b8OHD7ZxzzrHcuXNbxYoVbfTo0ebz+ZJtt3btWmvfvr0VLFjQ8ubNaw0aNLAtW7ak2J+ed/nll1u2bNnsvffeS/W1e/Xq5bYLvLVp0ybZNmPHjrWLLrrI8uTJY4UKFQq5Hx1H27Zt3TbFixe3u+++244dO8ZvAwBklqB7+/bt1r9/f6tQoYLlzJnTypYta+3atbN58+ZZPFm9erVdffXVVr58eXdSmzx5copt/vrrLxs4cKCVK1fOnXh1klu8eHGGHC8AAIi+hx9+2KZMmWJPPfWUC6z1/YQJE+zJJ5/0b/Pzzz9bkyZNrGrVqjZ//nz78ccfXaCeK1euFPtT/0L9jEgpyN62bZv/9tprryV7/MiRI9apUye77bbbwg4aKODWdt988429+OKLNn36dBsxYkSa3gcAiGfZM/LFN2/ebI0bN3YjpxMnTrRatWrZ0aNHbc6cOda3b19bt26dxYtDhw65gQWduAYNGhRym5tuuslWrVplM2bMsNKlS9vLL79srVq1sjVr1liZMmXS9HoXjJtnx7LnTaejx+mWM9FnExqa1Rw5xw4fj7zzhMyFdox9tGF8yKztuHl8WxeodujQwQWuosF5Bb7ff/+9f7v777/frrjiCheMe5QRD7Z8+XJ79NFHbcmSJVaqVKmIjkEJj5IlS4Z9/MEHH3T/K5AO5dNPP3X9lM8++8xKlCjhqg+VqR8yZIirRjzjjDMiOg4AiGcZmum+/fbb3WisTizKAlepUsVq1Khhd955p3333Xf+kiWdjPLly2cFChSwzp07244dO8Lu85JLLnHZ4kAdO3Z0JVQendDGjBljPXr0cPtVZnn27Nm2a9cu/2vVrl3bnbQ8OtlocEADAtWqVXPbeKPDkVAZmAYWrr32WneCC/b333/bzJkz3Qm1adOmVqlSJXey0v8aAQcAAPFHVW2q7vvpp5/c9ytWrLCvvvrKlYhLUlKSffjhh66P1Lp1a1e+fcEFF6QoHdfg/vXXX29PP/10qkF0MGXOtc9zzz3XZbP/+OOPNB3/t99+65ImCrg9Os79+/e7Kj8AQAYG3Xv27LFPPvnEZbQ1NymYAlydaBQEa9sFCxbY3Llz7ZdffrEuXbqc8utPmjTJZdmXLVvmRpe7d+/ugvBu3brZ0qVL3Qiyvg+cU6UT2iOPPOIy0V9++aUbEBg8eLClB819UolWcKmYysx18gUAAPHn3nvvdQPyKh3PkSOH1a1b1yUPunbt6h7fuXOnHThwwMaPH+8G+5VZvvLKK+2qq65yfSOPqugUwKvfFCnt76WXXnJBv8ratT8F++qPpGWaYGDALd73egwAkIHl5Rs3bnQBrU4y4egksHLlStu0aZOb6y06OSgbrrnOyh6fLJVp9enTx32teUfKJmt/Kv8WlUU1atTIZdW9EWOVvk+dOtVf0tWvXz8bNWqUpYf8+fO711NJljLpOmGpvEwjyMp2h3P48GF382hkWXIm+CwxMfkiLIgdar/A/xGbaMfYRxvGh8zajupXvPHGG/bKK6+4/k316tVdplsD+so+a/DfO8drvRv1O0T9IA3IP/PMMy7Qfv/99+3zzz93lYPaZ+CAfuD3wVRl6FF/TP0P/a9S8RYtWiTb1gvEg/enBIn6c4H3e1+f6PXTyttXeu4TpxdtGB9ox/+J9PMow4Lu4FU5Q9GCIgq2vYBbdEJSFlyPnUrQrfLx4BFZlUcF36cRZi/o1qqcgXOoNF9Kj6cXZdB79+7t5m8nJiba+eefb9ddd5398MMPYZ8zbtw4/3yrQMPqJlmePJGPVCNzGl0/KaMPAemAdox9tGF8yGzt+NFHH7mstoJfDb5v3brVihQp4jLQDzzwgJ155pmuQ6c+gW7a3qO50lpQTfdNmzbNLbam7QOpMlCBtFYgj5Sm8s2aNcv++eefZPdrMEDHEngM3iKwGzZsSHa/Nw1QCZbg7dODKh8R22jD+EA7mquEztRBd+XKld187vReLC0hISFFQB9qBEIlXB5vlc9Q92kEN9RzvG0iGTyIlAJ6lXYdPHjQZawV1OuEqQXYwhk6dKibA+/R8zRIMWZZgh3LkZhux4bTS9kYdQ6HL0mww0mZZ9EfpA3tGPtow/iQWdtx1cjWrh+hQX9V4HlU5aestXefl2QI3OY///mPnXfeee4+DdLv3r072b51n6bEaQqdLkcWiV9//dUF0VrENfC1RPtXPyj4fvW73n77batfv77Lzsvzzz/vgvebb7455Do2J0v9OXXyL7300hR9MsQG2jA+0I6Woso40wbdGsnVQhta8GPAgAEp5nXv3bvXjc5q1Fc3L9utFTL1mDLeoRQrVizZ4mYqh9KK4M2bN7dYofdCtz///NMt3Ba4WmkwncxCndDUqTiWiVZoxclRO2amlXZxcmjH2EcbxofM1o4KHFU2rvnaCoxVNq61Zh5//HFX+eYFlvfcc48bhNdiserPaE0cLa6mRdC0TXBVoEf71AJsHpWOq0JOc8I1T1yVcsqyq6JPmXK9jqa0KVD3Xlvr12htnd9++831qbzF0bSdFpVVEK4+mY5X/RXN41aWXmv26PFovW8E3bGNNowPtKNF/FmUoZcMU8CtxcwaNmzo5kar5FvzfzSKqTnWCrA1+qvFRHTdST2mFc+bNWvmRlRD0RwkZX51MlLm+LHHHnNBekbT9Sv183hf6+SlS3vohOTN2VaArRFvrSCqkqy7777bnSBvuOGGNL/eoqEtrWjRoun+c+D08Er4lAWhYxG7aMfYRxvGh8zcjroet665rf6NpqzpkqFacybwOtcKkrWmjAJmJSrUT9AVT3Tt7rRYv3697du3z32tcnWVp+u62uon6XUvu+wyt7ZM4GC+jkPbeLTQm3zxxRduEED7+eCDD9zK51qbRkmDnj17ptuaNwAQDzI06FbZtFYK11yju+66y2WolamuV6+eC7pVvq15Rf3793eX0VIJk+Y56QQVjkZaNe9Ii49kz57dreaZGbLcv//+u/9EJSr50k0DCBqpFp0IVS6u8i5VAmj0We9NZusgAACA9KG53Eos6JYa9W90i1So6W+B9+nqKBrsPxFdMjXcNbo9uvRqNOZuA0C8yOZLz0nJyBTzCgoWLOjmXpHpjv2sjMr2GHSJXbRj7KMN4wPtGB9ox9hHG8YH2jFl7KXkqdayyHTX6QYAAAAAIN4RdKcTzc0Od1u4cGF6vQwAAAAAIIZk6JzueKJF0cLRdbcBAAAAAFkPQXc68VYgBwAAAADAQ3k5AAAAAABRQtANAAAAAECUEHQDAAAAABAlBN0AAAAAAEQJQTcAAAAAAFFC0A0AAAAAQJQQdAMAAAAAECUE3QAAAAAARAlBNwAAAAAAUULQDQAAAABAlBB0AwAAAAAQJQTdAAAAAABECUE3AAAAAABRQtANAAAAAECUEHQDAAAAABAlBN0AAAAAAEQJQTcAAAAAAFFC0A0AAKKmfPnyli1bthS3vn37usf79OljFStWtNy5c1uxYsWsQ4cOtm7dOv/zp0+fHvL5uu3cuTPs6/70009uX2eeeaYVLVrUhg4davPnz0/zfvWc888/33LmzGmVKlVyzwMAIC2yRNA9cuRIq1OnTkYfBgAAWc7ixYtt27Zt/tvcuXPd/Z06dXL/16tXz6ZNm2Zr1661OXPmmM/ns8suu8yOHz/uHu/SpUuy5+vWunVra9asmRUvXjzs6/7rX/+yY8eO2eeff27fffedC/47duxo27dvj3i/mzZtsrZt21rz5s1t+fLlNnDgQLvpppvccQIAEFdBt06Q/fv3twoVKriR5rJly1q7du1s3rx5Fq9ef/11N9quDgIAALFK2euSJUv6bx988IHLbCu4lVtuucWaNm3qgmJllMeMGWNbt261zZs3u8eVAQ98fmJiogukb7zxxrCvuXv3btuwYYPde++9Vrt2batcubL16NHDDh06ZKtWrYp4v1OnTrVzzjnHHn30UatWrZr169fPrrnmGps0aVLU3zcAQPzIbpmcTrqNGze2QoUK2cSJE61WrVp29OhRN8qs0rTAErR4oZ958ODBdvHFF5/0Pi4YN8+OZc+brseF0ydnos8mNDSrOXKOHT6ejbc+RtGOsY82PDWbx7dN9v2RI0fs5ZdftjvvvNMNLAc7ePCgy3or0NUAeygvvfSS5cmTxwW/4aic/Nxzz3XbKpBPSEhw/QZlsJVZj3S/3377rbVq1SrZdsqGK+MNAEDcZLpvv/12d2L+/vvv7eqrr7YqVapYjRo13Alb5WKyZcsWN28rX758VqBAAevcubPt2LEj7D4vueSSFCdMZZR79erl/14j7hpt18i49luuXDmbPXu27dq1y/9aGj1fsmSJ/zma56XBAZ3YNSKubdq0aeNK1iKlcrquXbvagw8+6DL7AADEi/fee8/27t2b7HwrzzzzjDtn6vbxxx+7EvQzzjgj5D5eeOEFu/76612mOhz1Gz777DNbtmyZ5c+f391mzZpl77//vhUuXDji/arSrkSJEsm20/f79++3v//+O40/PQAgq8rUme49e/bYJ598YmPHjrW8eVNmbRXgJiUl+YPgBQsWuPlbyoBrrlbggiknQ+VjDz30kA0fPtx93b17d7vooousd+/eLus+ZMgQF5SvXr3aP2Kv0rVHHnnEZsyY4UbWu3Xr5rLWr7zySkSvOWrUKDcSr/K2hQsXnnD7w4cPu5tHHQHJmeCzxETfSf/syFhqv8D/EZtox9hHG54aVaYFev75512mWCXngY9psFwD4gpyH3vsMTffW+f0XLlyJXu+Bts191vZ8OB9B9K88Ntuu829zhdffGHZs2d3A+lXXnmly16XKlUqov1qPxoMD7xP/QzvZ9N+cfp47ZBa2yNzow3jA+34P5F+HmXqs8XGjRvdCa9q1apht9G87pUrV7rFTrxSNJWIKRuuxVsaNGhw0q9/xRVXuFVVZcSIETZlyhS3P2/xFwXdjRo1cll1zQfz3njNAdN8NdH8LwXSkfjqq6/cSLsWa4nUuHHjXFY82LC6SZYnz/8tQoPYNbp+UkYfAtIB7Rj7aMOT89FHH/m/1orgOmfr3Bl4fzBlwTVgrUVQNdc70JNPPulKzxWcp7aPFStWuMdVyq7Mutx6660uEB82bJirnItkv8q2L1q0KNl9+hlUhq5gHhnDW4wPsYs2jA+0o7mEa8wH3Qq4T0Qj0wq2A+d+Va9e3WXB9dipBN0qH/d45WWaUx58nzoSXtCtE7EXcItG01O7pInnr7/+cpn05557zl3eJFK6BIpK7QMz3XovxixLsGM5EiPeDzJfdk2d/OFLEuxwEnO6YxXtGPtow1OzamTrFJVcqh5LLUOs6i1ViulcrsFvz4EDB1wwrox14P2hqApONMVLlXAaEFfnUF9rUbVI96uKM1XcBd7/2muvWZMmTU54DEh/XjteeumlliNHDt7iGEQbxgfa0VJUGcd00K0To8q203uxNJ3MgwP6UKUBgR/oXvl4qPu8k3vw4942kQwe/Pzzz24BNa3K7vH2q87J+vXrkwXzHq3mrlswBWrHWIAr5qkdWUgt9tGOsY82PDneOVHnM1Wh9ezZM9mc6V9++cXeeOMNd4kwlYL/+uuvNn78eLeNzoeB59R33nnHlXZrH8HnWq37ouleykKXKVPGLUSqudu6vJcq1XQe1borOs+2b98+4v1qupqq3O6//343tUyrm7/99tv24YcfEvRlILUTQXdsow3jA+1oEX8WZeqgu0iRIm7u19NPP20DBgxIMa9bJWNasEyXFtHNy3avWbPGPaZR8lB0Yg9c3EzztXQJEV2HM6OohF5l8oFUAqcM+OOPPx52FddwFg1t6VZvRWzSIJDKGZUlomMRu2jH2Ecbpg8taqZFTxW4BtKcbWWTJ0+ebH/++aerIFNJ+TfffJPiGtyafnXVVVe5SrZQ5X0anPYG0FUxpgy1guUWLVq4+0uXLm0zZ8608847L+L9quRcAfagQYPcufiss87yz0sHACBSmTroFgXcumRYw4YNXWmaSr41Iq3yIo0+K8BWybdW/NZJW49pxXNd/7N+/foh96kTsEqydSJV9liLtnhzvjKKOh41a9ZMdp/XAQi+HwCAWKJMdqiqLwXCqc3NDqRAPBwtwha8f/UBdDWRwMETlZunZb/evrUKOgAAcXvJMF02a+nSpS4Lfdddd7kAVHN5VEKmoFvl27oMiMrINDqu62nqOSpXC0cj7SojUymagnNtn5FZbgAAAABAfMrmi2TCMWJqMn/BggVt9+7dlJfHMC8ro4V6KC+PXbRj7KMN4wPtGB9ox9hHG8YH2jFl7LVv3z4rUKCAxWymGwAAAACAWEXQfRrpUiXhblpIBgAAAAAQXzL9QmrxZPny5WEf0yVOAAAAAADxhaD7NKpUqdLpfDkAAAAAQAajvBwAAAAAgCgh6AYAAAAAIEoIugEAAAAAiBKCbgAAAAAAooSgGwAAAACAKCHoBgAAAAAgSgi6AQAAAACIEoJuAAAAAACihKAbAAAAAIAoIegGAAAAACBKCLoBAAAAAIgSgm4AAAAAAKKEoBsAAAAAgCgh6AYAAAAAIEoIugEAAAAAiBKCbgAAAAAAooSgGwAAAACAKIn5oHvkyJFWp06djD4MAABi3m+//WbdunWzokWLWu7cua1WrVq2ZMkS/+M7duywXr16WenSpS1PnjzWpk0b27BhQ7J9/Pzzz3bllVdasWLFrECBAta5c2f3vNSUL1/esmXLluLWt29f/zbPPvusXXLJJW6femzv3r0h9/Xhhx/aBRdc4I6/cOHC1rFjx1N+XwAAiOmge/v27da/f3+rUKGC5cyZ08qWLWvt2rWzefPmWTx57rnn7OKLL3YdAN1atWpl33//fYrt1q5da+3bt7eCBQta3rx5rUGDBrZly5YMOWYAQNbx559/WuPGjS1Hjhz28ccf25o1a+zRRx915yzx+XwugP3ll19s1qxZtmzZMitXrpw7nx08eNBto/8vu+wyFxR//vnn9vXXX9uRI0fceT0pKSnsay9evNi2bdvmv82dO9fd36lTJ/82hw4dckH+fffdF3Y/M2fOtO7du9sNN9xgK1ascK9//fXXp+O7BABA2mW3DLR582Z3gi9UqJBNnDjRjagfPXrU5syZ40a3161bZ/Fi/vz5dt1119lFF11kuXLlsocffth1TFavXm1lypTxZweaNGliN954oz344INuNF+Pa/u0umDcPDuWPW8UfhKcDjkTfTahoVnNkXPs8PFsvOkxinaMfVmlDTePb+vOSxr4njZtmv/+c845x/+1MtrfffedrVq1ymrUqOHumzJlipUsWdJee+01u+mmm1yQq3O7AnKdw+TFF190gbuCcAXooSgrHmj8+PFWsWJFa9asmf++gQMH+s+noRw7dszuuOMO15/QedRTvXp117cAACBLZrpvv/12NxqujO/VV19tVapUcSfyO++8053YRVneDh06WL58+SIqU1PpmXdi9mhkXuVwgWVsY8aMsR49erj9aqR+9uzZtmvXLv9r1a5dO1lJ3fTp093ggAYEqlWr5rbRiLtG5CPxyiuvuJ9XpfBVq1a1559/3o36B2b077//frviiitswoQJVrduXdfhUNa7ePHiaXpfAQBIK50H69ev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l8/S/1oxPKvRomjhhLqGKgAAAAAg/p1U0L1p06b0P5IYF7gCOQAAAAAAJx10s4AaAAAAAABRCrpfeumlVB/X5boAAAAAAMjqTirovuOOO1IsG6/rdZ9xxhnucmIE3QAAAAAAnOQlw/78889ktwMHDtj69eutSZMm9tprr/G+AgAAAABwskF3KJUrV7bx48enyIIDAAAAAJBVpVvQLdmzZ7fff/89PXcJAAAAAEDWmtM9e/bsZN/r+tzbtm2zp556yho3bpxexwYAAAAAQNYLujt27Jjs+2zZslmxYsWsRYsW9uijj6bXsQEAAAAAkPWC7qSkpPQ/EgAAAAAA4sxJzekeNWqUu0RYsL///ts9BgAAAAAATjLofvDBB91lwoIpENdjAAAAAADgJINuLZymedzBVqxYYUWKFOF9BQAAAAAgrXO6Cxcu7IJt3apUqZIs8D5+/LjLft966628sQAAAAAApDXonjx5ssty9+7d25WRFyxY0P/YGWecYeXLl7dGjRrxxgIAAAAAkNagu2fPnu7/c845xy666CLLkSMHbyIAAAAAAOl5ybBmzZr5v/7nn3/syJEjyR4vUKDAyewWAAAAAIC4clILqWmV8n79+lnx4sUtb968bq534A0AAAAAAJxk0H333Xfb559/blOmTLGcOXPa888/7+Z4ly5d2l566SXeVwBAVIwcOdK/oKd3q1q1aorttP7I5Zdf7h5/7733Qu7rjz/+sLPOOstts3fv3lRfd9myZXbppZdaoUKFrGjRonbLLbeEvHTmifZ7+PBhu//++61cuXLu/Km1UP7zn/+k6T0AAABZIOh+//337ZlnnrGrr77asmfPbhdffLENGzbMHnroIXvllVfsdHfA6tSpc1pfEwCQcWrUqGHbtm3z37766quQC3+GurRloBtvvNFq1659wtfbs2ePtWnTxipVqmSLFi2yTz75xFavXm29evVK8347d+5s8+bNsxdeeMHWr19vr732mp177rknPAYAAJDFgm51QCpUqOCfv63vpUmTJvbll1+maV/bt2+3/v37u/1p1L9s2bLWrl071ymJJ+qgaZBCWQ11BNUhDOXpp5922+TKlcsuuOAC+/7770/7sQJAZqbB3pIlS/pvZ555ZrLHly9fbo8++miqGWRVaikLPXjw4BO+3uLFi93Cofp8VoDcoEEDmzp1qs2cOdM2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4BT7KViwYLLXXLJkif355592ww03pMv7AgAAEAuyZ+SLb9682Ro3buw6gxMnTrRatWrZ0aNHbc6cOda3b19bt26dxQt1VjWwoAzPoEGD0pzRSqsLxs2zY9nznvTzkbFyJvpsQkOzmiPn2OHj2WiOLNiOm8e39X+tz8O2bdtaq1atbMyYMak+T6XlKgfPnj35x7v2cdNNN7nPoVtvvdUFvhrYC6Vo0aKuZP2ll16y888/3w2I6jOpePHiVq9ePf92a9assVGjRtmiRYvsl19+OeHP9MILL7ifoVy5chG8AwAAAPEhQzPdt99+u+v0ff/99y4LXKVKFTfX784777TvvvvObbNlyxY3rzBfvnyuI9m5c2fbsWNH2H1ecsklKbLDKqPU3EKPss3quPbo0cPtVx3A2bNn265du/yvpYBXWRmPyjY1OKABgWrVqrlt2rRp40omI9GgQQM3sHDttde6DmxaM1oAsibNvV66dKmNGzfuhNsqQz169Gi75ZZbkt2vwPjNN9+0uXPnus9affY++eSTYfejz+XPPvvMli1bZvnz53dZ8ccee8yVrnufS4cPH7brrrvOfa5pLvmJqAz+448/doE/AABAVpJhmW4tAKQOnEoh8+ZNmZFVgJuUlOQPghcsWODKJZWt6dKli82fP/+UXn/SpEn20EMP2fDhw93X3bt3t4suush69+7tOpFDhgxxQbnKwr1skLLVmjs5Y8YMS0hIsG7durmSyldeecXSS1oyWl7HVzfP/v373f85E3yWmOhLt+PC6aX2C/wfWa8dVfWjOdB33HGHffTRR5aYmOju8/l87rNRXwfS3/4VV1zhBgXvv//+ZI+rTDywJF3b6nPutttuC/naeg09VqxYMbd4mhZp+89//uPK2L/55hsrVaqU+4xUNlyfx3otr5xdXwcfm+j5+lzX51uoxzMr71hj6ZiREu0YH2jH2Ecbxgfa8X8i7R9kWNC9ceNG17GrWrVq2G00r3vlypW2adMmN9dbVO6obLhKsJU9PlnqnPbp08d9PWLECDcvUfvzFvhRh7JRo0Yuq665iN6bOnXqVDd3Uvr16+cySOmd0dLPFillvx588MEU9w+rm2R58hxPt2NDxhhdP4m3Pou2owJtVfzs3LnTGjZs6L9fAffChQvt6aeftrfeessF43///bdbVFJVNFrUTBnt1GjQ8Ndff7VZ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AAAAABAhp0TQPXjwYDv77LOjvRsAYsT48eOtbt26VrBgQfdo3LixzZgxw7/8wgsvtGzZsgU97rjjjqBtbNy40dq1a2d58+a1EiVKWN++fS0lJSXDz/3uu++sQ4cOdtppp7nPPf/8823evHlB68yZM8fOO+88K1CggJUqVcr69esXtN0NGzak2Tc9Fi1alGXfDwAAAE6xoHvbtm3Ws2dPq1y5suXKlcvKlStn7du3dxeniWTChAlpLqRz584d7d0CEk7ZsmVt+PDh9tVXX9nSpUutefPmLhj+5ptv/OvceuuttnXrVv9jxIgR/mVHjx51Affhw4ftiy++sIkTJ7rj96GHHsrwcy+99FIXQM+dO9d99llnneVe0zlOVq5caZdccom1adPGli9fbm+++aa9//779sADD6TZ1ieffBK0f/Xr18/S7wgAAABZI7vFOGV1mjRpYoULF7aRI0danTp17MiRIzZr1izr0aOHffvtt5ZIlP1at26d/7kC7xNx7rA5lpI9XxbuGU6mXMk+G9HIrPbgWXbo6In9P4DwNgxv5zrtAj322GMu+61sca1atdxrymAr0xzOxx9/bGvWrHGBb8mSJV0lzZAhQ1xWWpU1OXPmTPOenTt32vfff28vvfSSy7KLAv9x48bZ6tWr3WcpyNYyL3g/44wzXLB/zTXX2MMPP+yy355ixYqlu38AAACIHTGf6e7evbsLPBcvXmxXXnmlnXnmme6iuHfv3v5ySpV5KkuVP39+F7TqAnX79u3pblOlo7169Qp6rWPHjnbTTTf5n1esWNGGDh1qN954o9tuhQoVXMbpl19+8X+WLo6VJfMo06XOAXUI1KhRw62jjJWyUJml31UX0t5DF/QAIkdZ6ylTptiBAwdcmbln0qRJrgy8du3a1r9/fzt48KB/2cKFC10HYODx2bp1a9u7d29QtjyQguRq1arZq6++6j5LGe/nn3/elaZ7WepDhw6lqW7JkyeP/fHHHy4zHuiyyy5z71WJus5NAAAAiE0xHXTv3r3bZs6c6TLa+fKlzdoqwE1NTXVBsNadP3++zZ4923788Ue79tpr//bnjx492mXZVeapUtIuXbq4IPyGG26wZcuWWZUqVdxzn8/nf48uzJ988kl77bXX7LPPPnMdAvfdd1+mP3P//v0uwFcJfWi5K4Css2rVKtcxpiErGq89bdo0q1mz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PwAAADj5Tomge/DgwXb22WdHezcARFjZsmVt+PDh9tVXX9nSpUutefPmLrD+5ptv3PL69evbK6+8YmvXrrVZs2aZz+ezVq1a2dGjR93ypKQkt/77779v3333nU2YMME++eQTu+OOOzL83MOHD9vVV19td955Z9jlWrZ169agR+vWra1Zs2ZWokQJ/3rXXHONzZkzx1566SVbt26dvfHGG1atWrUs/Y4AAABwcmW3OLBt2zaXSfroo49sy5Yt7iJVQXSvXr2sRYsWliheeOEFlxFbvXq1P0B4/PHHrVGjRtHeNSAutG/fPui5zhvKfi9atMhq1aplt912m3+ZsshDhw61s846yzZs2OAy4EWKFAkKnJVx7t69u40cOTLDz33kkUfcTwXp4Sizrsy755dffrG5c+e64Nozc+ZMmz9/vv34449WtGhR/z4CAAAgvsV80K2L4SZNmriSTV341qlTx44cOeKyVD169AgqDY13n376qXXq1MmVqebOndueeOIJl4VTlq5MmTLHta1zh82xlOz5IraviKxcyT4b0cis9uBZduhoNr7uTNgwvF3Qc2Wv3377bTtw4IArMw+l15X1rlSpkisjD+fnn3+2qVOnuox0VlLnmkrRr7rqKv9ryq43aNDARowYYa+99prly5fPLrvsMhsyZIgL2gEAABCfYr68XFkmjXtcvHixXXnllXbmmWe6jFXv3r1d9ko2btzoSkLz58/vskkq0dy+fXu627zwwgtdljxQx44d7aabbkqTBbvxxhvddpXx0kWxMlTeZ2nsqEpYPcpyqXNAHQI1atRw62h8qEpJM2PSpEnu91UWv3r16vbiiy9aamqqKzcFkDmrVq1yx57GRKssfNq0aVazZk3/8nHjxrnlemi89+zZsy1nzpxB21Dnl4JidXbpnKJjMSspw3399dcHBdPKcH/++eeu0kX7PGbMGHvnnXfcOQEAAADxK6Yz3bt373YllyoRVdYnlAJcBaVeEKzSzJSUFJcBv/baa13m+O8YPXq0K+8eNGiQ+3eXLl1cFrpbt24u696vXz8XlCsTrY4BOXjwoD355JMuU6XxoTfccIPdd999LqA+XtqWsvpeqWk4mnhJD4834VOuJJ8lJ/tO6PdG9Kn9An/i2HSsSOXKlW3JkiXuWHj33Xeta9eubly2F3irU04dbxq2MmrUKDfeWucOVZd4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UcP9TtWrV7dx48Zl+P1Nnz7d/X76/T2LFi2yESNGuEyzHvqM8uXLW/369W3gwIFB36U+W1lyfe/58+e3hg0b2ieffJJheXlmfk99V7t377b58+dnuP8AgPhH0A0AQIybOHGiC2YXL17sAvA777zTrr76ajvvvPNcYNuqVSvr0qWLy+oG6tu3rwukFRArG9u+fXs7cuSIW/bVV1/ZNddcY9ddd52tWrXKBg8ebIMGDbIJEyYEbePJJ5+0s846y5Vca7n2QRR4bt261aZOneqe79u3z7p27Wqff/65C2oVaF5yySXu9UCPPPKI+9yvv/7aLe/cubMLPmXLli3WtGlTFyTPnTvX7aPKvb1s8KRJk+yhhx5y5eJr1661xx9/3O2Tvp/0LFiwwAXTgd544w0XQHfv3j3sexQ0e/bv3+/2c86cOe47aNOmjfseN27cmGGbZfR7Ss6cOV2WXfsHAEhwPgAAEDO6du3q69Chg/95s2bNfOeff77/eUpKii9fvny+Ll26+F/bunWrT3/SFy5c6J7PmzfPPZ8yZYp/nV27dvny5Mnje/PNN93z66+/3teyZcugz+7bt6+vZs2a/ucVKlTwdezYMWid9evXu20vX748w9/j6NGjvgIFCvg++OAD/2t638CBA/3P9+/f716bMWOGe96/f39fpUqVfIcPHw67zSpVqvgmT54c9NqQIUN8jRs3Tnc/9F1269Yt6LU2bdr46tatG/TaU0895b5X77Fnz550t1mrVi3f2LFjg76n0aNHZ/r39Fx++eW+m266Kd3PAQAkBjLdAADEOJWIe5KTk61YsWJWp04d/2sqfZYdO3YEva9x48b+fxctWtRNFKYMsehnkyZNgtbX8++//96OHj3qf61BgwaZ2sft27fbrbfe6jLcKi9XebiyxKEZ4cDfJV++fG49b781OZtKvXPkyJFm+yqnV6m3xmYrS+09hg4dGlR+Hur33393pejHooy6Pv/55593n/Vn7Pxnpvu+++5zJe2FCxd2n6nv7liZ7ox+T48mbwutTgAAJJ7s0d4BAACQsdAgVOXPga955dCpqalZ/lUqYMwMlZbr1lxPP/20VahQwZWIK+gPnXwt3O/i7beC0PQo+BWNZz/33HODlqkjIj0qy//111+DXlPHgMrgVWrv7Y8Caj02b94ctK4C7tmzZ7sye42d1z5eddVVx5xULqPf06Ny8ypVqmS4HQBA/CPTDQBAgtLYao8Cz++++85lbEU///vf/watr+dnnnlmhkGsxiJLYDbce+/dd9/txi97k7Pt3LnzuPZX2WGNcfbGnQdSNr906dL2448/uuA38OFN7haOJnzTfbEDderUyQXxx5qEzfu9dBs3TYqm6oJSpUpl2f2+NbGd9g8AkNjIdAMAkKAeffRRV4qugHXAgAEu6+vdA7xPnz5uJm7NTq5bZy1cuNCeeeaZYwaiJUqUcNnemTNnWtmyZV3ptsrJlT1+7bXXXDn63r173SRuGWWuw7nrrrts7NixbnI33bZL21XHQaNGjVxpvCYnU2Cv1zWh2aFDh2zp0qWuQ6F3795ht9m6dWu3La2j2d9FGXj9/nr89NNPdsUVV1i5cuXcxHC6vZiy0klJf+Yl9HtpsjhNnqbXNXFbVlQUKHDXxHEXX3zx394WACC2kekGACBBDR8+3O655x43e/e2bdvsgw8+8GeqzznnHHvrrbdsypQpVrt2bTcruIJ0ZXUzkj17dvvXv/7lxj4r86zbaYmCVQW22q5mUldwrAD9eKiDQLOWKwutW45pv1VO7pVq//Of/3S34nrllVdc1lnraLb1jDLdWs/7XQOpXFz35daM5LpFmYJrzQivgFodEBqDLbqlmIJ1zRSvwFtBvLb3d2kGdc06r1J8AEBiy6bZ1KK9EwAAIOvoPt0XXXSRC4I1TvlUp/uVK/Oucm4vgx1NGg+uIF9Bf+hkdgCAxEN5OQAASGjt2rVzs7KrnFtl5NGmmc8ffPBBAm4AOEWQ6QYAIMGQ6QYAIHYQdAMAAAAAECHRH9gEAAAAAECCIugGAAAAACBCCLoBAAAAAIgQgm4AAAAAACKEoBsAAAAAgAgh6AYAAAAAIEIIugEAAAAAiBCCbgAAAAAAIoSgGwAAAAAAi4z/A5osy5Y7O3HhAAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data", @@ -1618,55 +1617,55 @@ "text": [ "\n", "[特征重要性排名 - Gain]\n", - "bias_10 966.502486\n", - "return_5_rank 960.507971\n", - "pe_expansion_trend 947.437883\n", - "return_5 860.686048\n", - "high_low_ratio 727.172214\n", - "revenue_yoy 562.656819\n", - "turnover_rank 558.328422\n", - "amihud_illiq_20 388.591107\n", - "overnight_intraday_diff 380.723414\n", - "bbi_ratio 373.573519\n", - "min_ret_20 366.693362\n", - "drawdown_from_high_60 356.182625\n", - "roa 334.564408\n", - "active_market_cap 275.635468\n", - "ma_ratio_5_20 261.307464\n", - "turnover_deviation 194.988921\n", - "return_20 192.620460\n", - "net_profit_yoy 175.035165\n", - "mom_acceleration_10_20 171.881004\n", - "turnover_rate_mean_5 168.826981\n", - "EP_rank 163.394623\n", - "volume_ratio_5_20 158.494889\n", - "turnover_cv_20 153.915966\n", - "healthy_expansion_velocity 146.708935\n", - "EP 142.683564\n", - "max_ret_20 135.638350\n", - "std_return_20 133.794949\n", - "sharpe_ratio_20 108.012163\n", - "close_vwap_deviation 103.748435\n", - "ma_20 80.322421\n", - "volatility_squeeze_5_60 77.509971\n", - "BP 64.954998\n", - "ma_5 60.884566\n", - "roe 59.556815\n", - "volatility_ratio 53.867742\n", - "capital_retention_20 45.922123\n", - "volatility_5 41.385944\n", - "volatility_20 34.698196\n", - "profit_margin 29.828428\n", - "debt_to_equity 28.911864\n", - "pv_corr_20 27.893618\n", - "current_ratio 22.564712\n", - "upper_shadow_ratio 16.570660\n", - "kaufman_ER_20 16.416594\n", - "market_cap_rank 15.822645\n", - "CP 13.325475\n", - "up_days_ratio_20 10.937868\n", - "value_price_divergence 0.000000\n", - "ebit_rank 0.000000\n", + "bias_10 1379.975546\n", + "turnover_rank 1233.056754\n", + "return_5_rank 1211.083106\n", + "pe_expansion_trend 1194.518072\n", + "return_5 1067.753329\n", + "overnight_intraday_diff 864.510148\n", + "high_low_ratio 737.870126\n", + "amihud_illiq_20 699.716207\n", + "revenue_yoy 591.354167\n", + "min_ret_20 586.062664\n", + "drawdown_from_high_60 544.946004\n", + "roa 492.201997\n", + "close_vwap_deviation 456.329131\n", + "volatility_ratio 425.847030\n", + "active_market_cap 391.611939\n", + "healthy_expansion_velocity 381.013310\n", + "bbi_ratio 350.895088\n", + "ma_ratio_5_20 333.176295\n", + "turnover_deviation 320.594954\n", + "net_profit_yoy 312.797814\n", + "turnover_rate_mean_5 294.216230\n", + "return_20 292.148741\n", + "EP_rank 270.906632\n", + "turnover_cv_20 255.994465\n", + "ma_20 249.024118\n", + "mom_acceleration_10_20 245.051260\n", + "volume_ratio_5_20 236.906485\n", + "max_ret_20 233.119360\n", + "profit_margin 231.406188\n", + "EP 223.520549\n", + "ma_5 222.848019\n", + "std_return_20 211.703293\n", + "sharpe_ratio_20 200.874590\n", + "BP 182.380531\n", + "capital_retention_20 167.152835\n", + "roe 162.483161\n", + "volatility_squeeze_5_60 158.716820\n", + "volatility_20 152.922347\n", + "current_ratio 149.282750\n", + "debt_to_equity 142.640424\n", + "CP 133.383919\n", + "market_cap_rank 112.134213\n", + "volatility_5 104.388842\n", + "pv_corr_20 102.753917\n", + "kaufman_ER_20 79.014202\n", + "upper_shadow_ratio 58.782669\n", + "up_days_ratio_20 42.695102\n", + "value_price_divergence 0.000000\n", + "ebit_rank 0.000000\n", "dtype: float64\n", "\n", "[低重要性特征] 以下2个特征重要性为0,可考虑删除:\n", diff --git a/src/training/components/models/__init__.py b/src/training/components/models/__init__.py index 216e259..921a4b0 100644 --- a/src/training/components/models/__init__.py +++ b/src/training/components/models/__init__.py @@ -4,5 +4,6 @@ """ from src.training.components.models.lightgbm import LightGBMModel +from src.training.components.models.lightgbm_lambdarank import LightGBMLambdaRankModel -__all__ = ["LightGBMModel"] +__all__ = ["LightGBMModel", "LightGBMLambdaRankModel"] diff --git a/src/training/components/models/lightgbm_lambdarank.py b/src/training/components/models/lightgbm_lambdarank.py new file mode 100644 index 0000000..9c7878e --- /dev/null +++ b/src/training/components/models/lightgbm_lambdarank.py @@ -0,0 +1,406 @@ +"""LightGBM LambdaRank 排序学习模型 + +提供 LightGBM LambdaRank 模型的实现,支持学习排序任务。 +适用于将股票按未来收益率进行排序的场景。 +""" + +from typing import Any, Optional, List + +import numpy as np +import pandas as pd +import polars as pl + +from src.training.components.base import BaseModel +from src.training.registry import register_model + + +@register_model("lightgbm_lambdarank") +class LightGBMLambdaRankModel(BaseModel): + """LightGBM LambdaRank 排序学习模型 + + 使用 LightGBM 的 LambdaRank 实现学习排序。 + 适用于股票排序任务,将未来收益率转换为分位数标签进行训练。 + + Attributes: + name: 模型名称 "lightgbm_lambdarank" + params: LightGBM 参数字典 + model: 训练后的 LightGBM Booster 对象 + feature_names_: 特征名称列表 + """ + + name = "lightgbm_lambdarank" + + def __init__( + self, + params: Optional[dict] = None, + learning_rate: float = 0.05, + num_leaves: int = 31, + n_estimators: int = 100, + min_data_in_leaf: int = 20, + ndcg_at: Optional[List[int]] = None, + early_stopping_rounds: int = 50, + **kwargs, + ): + """初始化 LambdaRank 模型 + + 支持两种方式传入参数: + 1. 通过 params 字典传入所有参数(推荐方式) + 2. 通过独立参数传入(向后兼容) + + Args: + params: LightGBM 参数字典,如果提供则直接使用此字典 + learning_rate: 学习率,默认 0.05 + num_leaves: 叶子节点数,默认 31 + n_estimators: 迭代次数,默认 100 + min_data_in_leaf: 叶子最小样本数,默认 20 + ndcg_at: NDCG 评估的 k 值列表,默认 [1, 5, 10, 20] + early_stopping_rounds: 早停轮数,默认 50 + **kwargs: 其他 LightGBM 参数 + + Examples: + >>> # 方式1:通过 params 字典(推荐) + >>> model = LightGBMLambdaRankModel(params={ + ... "objective": "lambdarank", + ... "metric": "ndcg", + ... "ndcg_at": [1, 5, 10, 20], + ... "num_leaves": 31, + ... "learning_rate": 0.05, + ... "n_estimators": 1000, + ... }) + """ + if ndcg_at is None: + ndcg_at = [1, 5, 10, 20] + + if params is not None: + # 方式1:直接使用 params 字典 + self.params = dict(params) # 复制一份,避免修改原始字典 + self.params.setdefault("objective", "lambdarank") + self.params.setdefault("metric", "ndcg") + self.params.setdefault("verbose", -1) + self.n_estimators = self.params.pop("n_estimators", n_estimators) + self.early_stopping_rounds = self.params.pop( + "early_stopping_rounds", early_stopping_rounds + ) + else: + # 方式2:通过独立参数构建 params + self.params = { + "objective": "lambdarank", + "metric": "ndcg", + "ndcg_at": ndcg_at, + "num_leaves": num_leaves, + "learning_rate": learning_rate, + "min_data_in_leaf": min_data_in_leaf, + "verbose": -1, + **kwargs, + } + self.n_estimators = n_estimators + self.early_stopping_rounds = early_stopping_rounds + + self.model = None + self.feature_names_: Optional[list] = None + + def fit( + self, + X: pl.DataFrame, + y: pl.Series, + group: Optional[np.ndarray] = None, + eval_set: Optional[tuple] = None, + ) -> "LightGBMLambdaRankModel": + """训练排序模型 + + Args: + X: 特征矩阵 (Polars DataFrame) + y: 目标变量 (Polars Series),应为分位数标签 (0, 1, 2, ...) + group: 分组数组,表示每个 query 的样本数。 + 例如 [10, 15, 20] 表示第一个 query 有 10 个样本, + 第二个 query 有 15 个样本,第三个 query 有 20 个样本。 + 如果为 None,则假设所有样本属于同一个 query。 + eval_set: 验证集元组 (X_val, y_val, group_val),用于早停 + + Returns: + self (支持链式调用) + + Raises: + ImportError: 未安装 lightgbm + RuntimeError: 训练失败 + ValueError: group 参数无效 + """ + try: + import lightgbm as lgb + except ImportError: + raise ImportError( + "使用 LightGBMLambdaRankModel 需要安装 lightgbm: pip install lightgbm" + ) + + # 保存特征名称 + self.feature_names_ = X.columns + + # 转换为 numpy + X_np = X.to_numpy() + y_np = y.to_numpy() + + # 处理 group 参数 + if group is None: + # 如果未提供 group,假设所有样本属于同一个 query + group = np.array([len(y_np)]) + + # 验证 group 参数 + if not isinstance(group, np.ndarray): + group = np.array(group) + if group.sum() != len(y_np): + raise ValueError( + f"group 数组的和 ({group.sum()}) 必须等于样本数 ({len(y_np)})" + ) + + # 创建训练数据集 + train_data = lgb.Dataset(X_np, label=y_np, group=group) + + # 准备验证集 + valid_sets = [train_data] + if eval_set is not None: + X_val, y_val, group_val = eval_set + X_val_np = X_val.to_numpy() if isinstance(X_val, pl.DataFrame) else X_val + y_val_np = y_val.to_numpy() if isinstance(y_val, pl.Series) else y_val + + if group_val is None: + group_val = np.array([len(y_val_np)]) + elif not isinstance(group_val, np.ndarray): + group_val = np.array(group_val) + + val_data = lgb.Dataset(X_val_np, label=y_val_np, group=group_val) + valid_sets.append(val_data) + + # 训练 + callbacks = [lgb.early_stopping(stopping_rounds=self.early_stopping_rounds)] + + self.model = lgb.train( + self.params, + train_data, + num_boost_round=self.n_estimators, + valid_sets=valid_sets, + callbacks=callbacks, + ) + + return self + + def predict(self, X: pl.DataFrame) -> np.ndarray: + """预测排序分数 + + Args: + X: 特征矩阵 (Polars DataFrame) + + Returns: + 预测分数 (numpy ndarray),分数越高表示排序越靠前 + + Raises: + RuntimeError: 模型未训练时调用 + """ + if self.model is None: + raise RuntimeError("模型尚未训练,请先调用 fit()") + + X_np = X.to_numpy() + return self.model.predict(X_np) + + def feature_importance(self) -> Optional[pd.Series]: + """返回特征重要性 + + Returns: + 特征重要性序列,如果模型未训练则返回 None + """ + if self.model is None or self.feature_names_ is None: + return None + + importance = self.model.feature_importance(importance_type="gain") + return pd.Series(importance, index=self.feature_names_) + + def save(self, path: str) -> None: + """保存模型(使用 LightGBM 原生格式) + + 使用 LightGBM 的原生格式保存,不依赖 pickle, + 可以在不同环境中加载。 + + Args: + path: 保存路径 + + Raises: + RuntimeError: 模型未训练时调用 + """ + if self.model is None: + raise RuntimeError("模型尚未训练,无法保存") + + self.model.save_model(path) + + # 同时保存特征名称和其他元数据 + import json + + meta_path = path + ".meta.json" + with open(meta_path, "w") as f: + json.dump( + { + "feature_names": self.feature_names_, + "params": self.params, + "n_estimators": self.n_estimators, + "early_stopping_rounds": self.early_stopping_rounds, + }, + f, + ) + + @classmethod + def load(cls, path: str) -> "LightGBMLambdaRankModel": + """加载模型 + + 从 LightGBM 原生格式加载模型。 + + Args: + path: 模型文件路径 + + Returns: + 加载的 LightGBMLambdaRankModel 实例 + """ + import lightgbm as lgb + import json + + instance = cls() + instance.model = lgb.Booster(model_file=path) + + # 加载元数据 + meta_path = path + ".meta.json" + try: + with open(meta_path, "r") as f: + meta = json.load(f) + instance.feature_names_ = meta.get("feature_names") + instance.params = meta.get("params", instance.params) + instance.n_estimators = meta.get("n_estimators", instance.n_estimators) + instance.early_stopping_rounds = meta.get( + "early_stopping_rounds", instance.early_stopping_rounds + ) + except FileNotFoundError: + # 如果没有元数据文件,继续运行(feature_names_ 为 None) + pass + + return instance + + @staticmethod + def prepare_group_from_dates( + df: pl.DataFrame, + date_col: str = "trade_date", + ) -> np.ndarray: + """从日期列生成 group 数组 + + 将数据按日期分组,每个日期作为一个 query。 + + Args: + df: 包含日期列的 DataFrame + date_col: 日期列名,默认 "trade_date" + + Returns: + group 数组,表示每个日期的样本数 + + Example: + >>> df = pl.DataFrame({ + ... "trade_date": ["20240101", "20240101", "20240102", "20240102", "20240102"], + ... "feature": [1, 2, 3, 4, 5] + ... }) + >>> group = LightGBMLambdaRankModel.prepare_group_from_dates(df) + >>> print(group) # array([2, 3]) + """ + # 按日期统计样本数 + group_counts = df.group_by(date_col, maintain_order=True).agg( + pl.count().alias("count") + ) + return group_counts["count"].to_numpy() + + @staticmethod + def convert_to_quantile_labels( + df: pl.DataFrame, + label_col: str, + date_col: str = "trade_date", + n_quantiles: int = 20, + new_col_name: Optional[str] = None, + ) -> pl.DataFrame: + """将连续标签转换为分位数标签 + + 对每个日期的数据分别进行分位数划分,生成 0, 1, 2, ..., n_quantiles-1 的标签。 + 值越大表示原始值越大(排序越靠前)。 + + Args: + df: 输入 DataFrame + label_col: 原始标签列名(如 "future_return_5") + date_col: 日期列名,默认 "trade_date" + n_quantiles: 分位数数量,默认 20 + new_col_name: 新列名,默认在原始列名后加 "_rank" + + Returns: + 添加了分位数标签列的 DataFrame + + Example: + >>> df = pl.DataFrame({ + ... "trade_date": ["20240101"] * 5 + ["20240102"] * 5, + ... "future_return_5": [0.01, 0.02, 0.03, 0.04, 0.05, + ... 0.02, 0.03, 0.04, 0.05, 0.06] + ... }) + >>> df = LightGBMLambdaRankModel.convert_to_quantile_labels( + ... df, "future_return_5", n_quantiles=5 + ... ) + >>> print(df["future_return_5_rank"]) # [0, 1, 2, 3, 4, 0, 1, 2, 3, 4] + """ + if new_col_name is None: + new_col_name = f"{label_col}_rank" + + # 使用 qcut 按日期分组进行分位数划分 + # qcut 返回的是 Categorical,使用 to_physical() 转换为整数(0, 1, 2, ...) + return df.with_columns( + pl.col(label_col) + .qcut(n_quantiles) + .over(date_col) + .to_physical() + .cast(pl.Int64) + .alias(new_col_name) + ) + + def evaluate_ndcg( + self, + X: pl.DataFrame, + y: pl.Series, + group: np.ndarray, + k: Optional[int] = None, + ) -> float: + """评估 NDCG 指标 + + Args: + X: 特征矩阵 + y: 真实标签 + group: 分组数组 + k: NDCG@k 的 k 值,None 表示使用所有位置 + + Returns: + NDCG 分数 + """ + from sklearn.metrics import ndcg_score + + # 获取预测分数 + y_pred = self.predict(X) + + # 将数据按 group 拆分 + y_true_list = [] + y_score_list = [] + + start_idx = 0 + for group_size in group: + end_idx = start_idx + group_size + y_true_list.append(y.to_numpy()[start_idx:end_idx]) + y_score_list.append(y_pred[start_idx:end_idx]) + start_idx = end_idx + + # 计算平均 NDCG + ndcg_scores = [] + for y_true, y_score in zip(y_true_list, y_score_list): + if len(y_true) > 1: # 至少要有 2 个样本才能计算 NDCG + try: + score = ndcg_score([y_true], [y_score], k=k) + ndcg_scores.append(score) + except ValueError: + # 如果标签都相同,跳过 + pass + + return np.mean(ndcg_scores) if ndcg_scores else 0.0 diff --git a/src/training/components/processors/transforms.py b/src/training/components/processors/transforms.py index 22a53dd..501cf4b 100644 --- a/src/training/components/processors/transforms.py +++ b/src/training/components/processors/transforms.py @@ -29,7 +29,7 @@ class NullFiller(BaseProcessor): fill_value: 当 strategy="value" 时使用的填充值 by_date: 是否按日期独立计算统计量(仅对 mean/median 有效) date_col: 日期列名 - exclude_cols: 不参与填充的列名列表 + feature_cols: 参与填充的特征列名列表 stats_: 存储学习到的统计量(全局模式) """ @@ -37,24 +37,24 @@ class NullFiller(BaseProcessor): def __init__( self, + feature_cols: List[str], strategy: Literal["zero", "mean", "median", "value"] = "zero", fill_value: Optional[float] = None, by_date: bool = True, date_col: str = "trade_date", - exclude_cols: Optional[List[str]] = None, ): """初始化缺失值填充处理器 Args: + feature_cols: 参与填充的特征列名列表 strategy: 填充策略,默认 "zero" - "zero": 填充0 - "mean": 填充均值 - "median": 填充中值 - "value": 填充指定数值(需配合 fill_value) fill_value: 当 strategy="value" 时的填充值,默认为 None - by_date: 是否每天独立计算统计量,默认 False(全局统计量) + by_date: 是否每天独立计算统计量,默认 True(截面统计量) date_col: 日期列名,默认 "trade_date" - exclude_cols: 不参与填充的列名列表,默认为 ["ts_code", "trade_date"] Raises: ValueError: 策略无效或 fill_value 未提供时 @@ -67,12 +67,12 @@ class NullFiller(BaseProcessor): if strategy == "value" and fill_value is None: raise ValueError("当 strategy='value' 时,必须提供 fill_value") + self.feature_cols = feature_cols self.strategy = strategy self.fill_value = fill_value self.by_date = by_date self.date_col = date_col - self.exclude_cols = exclude_cols or ["ts_code", "trade_date"] - self.stats_: dict = {} + self.stats_ = {} def fit(self, X: pl.DataFrame) -> "NullFiller": """学习统计量(仅在全局模式下) @@ -87,17 +87,12 @@ class NullFiller(BaseProcessor): self """ if not self.by_date and self.strategy in ("mean", "median"): - numeric_cols = [ - c - for c in X.columns - if c not in self.exclude_cols and X[c].dtype.is_numeric() - ] - - for col in numeric_cols: - if self.strategy == "mean": - self.stats_[col] = X[col].mean() - else: # median - self.stats_[col] = X[col].median() + for col in self.feature_cols: + if col in X.columns and X[col].dtype.is_numeric(): + if self.strategy == "mean": + self.stats_[col] = X[col].mean() or 0.0 + else: # median + self.stats_[col] = X[col].median() or 0.0 return self @@ -125,15 +120,9 @@ class NullFiller(BaseProcessor): def _fill_with_zero(self, X: pl.DataFrame) -> pl.DataFrame: """使用0填充缺失值""" - numeric_cols = [ - c - for c in X.columns - if c not in self.exclude_cols and X[c].dtype.is_numeric() - ] - expressions = [] for col in X.columns: - if col in numeric_cols: + if col in self.feature_cols and X[col].dtype.is_numeric(): expr = pl.col(col).fill_null(0).alias(col) expressions.append(expr) else: @@ -143,15 +132,9 @@ class NullFiller(BaseProcessor): def _fill_with_value(self, X: pl.DataFrame) -> pl.DataFrame: """使用指定值填充缺失值""" - numeric_cols = [ - c - for c in X.columns - if c not in self.exclude_cols and X[c].dtype.is_numeric() - ] - expressions = [] for col in X.columns: - if col in numeric_cols: + if col in self.feature_cols and X[col].dtype.is_numeric(): expr = pl.col(col).fill_null(self.fill_value).alias(col) expressions.append(expr) else: @@ -174,15 +157,16 @@ class NullFiller(BaseProcessor): def _fill_by_date(self, X: pl.DataFrame) -> pl.DataFrame: """使用每天截面统计量填充""" - numeric_cols = [ - c - for c in X.columns - if c not in self.exclude_cols and X[c].dtype.is_numeric() + # 确定需要处理的数值列 + target_cols = [ + col + for col in self.feature_cols + if col in X.columns and X[col].dtype.is_numeric() ] # 计算每天的统计量 stat_exprs = [] - for col in numeric_cols: + for col in target_cols: if self.strategy == "mean": stat_exprs.append( pl.col(col).mean().over(self.date_col).alias(f"{col}_stat") @@ -198,7 +182,7 @@ class NullFiller(BaseProcessor): # 使用统计量填充缺失值 fill_exprs = [] for col in X.columns: - if col in numeric_cols: + if col in target_cols: expr = pl.col(col).fill_null(pl.col(f"{col}_stat")).alias(col) fill_exprs.append(expr) else: @@ -219,22 +203,22 @@ class StandardScaler(BaseProcessor): 适用于需要全局统计量的场景。 Attributes: - exclude_cols: 不参与标准化的列名列表 + feature_cols: 参与标准化的特征列名列表 mean_: 学习到的均值字典 {列名: 均值} std_: 学习到的标准差字典 {列名: 标准差} """ name = "standard_scaler" - def __init__(self, exclude_cols: Optional[List[str]] = None): + def __init__(self, feature_cols: List[str]): """初始化标准化处理器 Args: - exclude_cols: 不参与标准化的列名列表,默认为 ["ts_code", "trade_date"] + feature_cols: 参与标准化的特征列名列表 """ - self.exclude_cols = exclude_cols or ["ts_code", "trade_date"] - self.mean_: dict = {} - self.std_: dict = {} + self.feature_cols = feature_cols + self.mean_ = {} + self.std_ = {} def fit(self, X: pl.DataFrame) -> "StandardScaler": """计算均值和标准差(仅在训练集上) @@ -245,15 +229,13 @@ class StandardScaler(BaseProcessor): Returns: self """ - numeric_cols = [ - c - for c in X.columns - if c not in self.exclude_cols and X[c].dtype.is_numeric() - ] - - for col in numeric_cols: - self.mean_[col] = X[col].mean() - self.std_[col] = X[col].std() + for col in self.feature_cols: + if col in X.columns and X[col].dtype.is_numeric(): + col_mean = X[col].mean() + col_std = X[col].std() + if col_mean is not None and col_std is not None: + self.mean_[col] = col_mean + self.std_[col] = col_std return self @@ -291,7 +273,7 @@ class CrossSectionalStandardScaler(BaseProcessor): - 公式:z = (x - mean_today) / std_today Attributes: - exclude_cols: 不参与标准化的列名列表 + feature_cols: 参与标准化的特征列名列表 date_col: 日期列名 """ @@ -299,16 +281,16 @@ class CrossSectionalStandardScaler(BaseProcessor): def __init__( self, - exclude_cols: Optional[List[str]] = None, + feature_cols: List[str], date_col: str = "trade_date", ): """初始化截面标准化处理器 Args: - exclude_cols: 不参与标准化的列名列表,默认为 ["ts_code", "trade_date"] + feature_cols: 参与标准化的特征列名列表 date_col: 日期列名 """ - self.exclude_cols = exclude_cols or ["ts_code", "trade_date"] + self.feature_cols = feature_cols self.date_col = date_col def transform(self, X: pl.DataFrame) -> pl.DataFrame: @@ -323,16 +305,10 @@ class CrossSectionalStandardScaler(BaseProcessor): Returns: 标准化后的数据 """ - numeric_cols = [ - c - for c in X.columns - if c not in self.exclude_cols and X[c].dtype.is_numeric() - ] - # 构建表达式列表 expressions = [] for col in X.columns: - if col in numeric_cols: + if col in self.feature_cols and X[col].dtype.is_numeric(): # 截面标准化:每天独立计算均值和标准差 # 避免除以0,当std为0时设为1 expr = ( @@ -355,6 +331,7 @@ class Winsorizer(BaseProcessor): 也可以截面截断(每天独立处理)。 Attributes: + feature_cols: 参与缩尾的特征列名列表 lower: 下分位数(如0.01表示1%分位数) upper: 上分位数(如0.99表示99%分位数) by_date: True=每天独立缩尾, False=全局缩尾 @@ -366,6 +343,7 @@ class Winsorizer(BaseProcessor): def __init__( self, + feature_cols: List[str], lower: float = 0.01, upper: float = 0.99, by_date: bool = False, @@ -374,6 +352,7 @@ class Winsorizer(BaseProcessor): """初始化缩尾处理器 Args: + feature_cols: 参与缩尾的特征列名列表 lower: 下分位数,默认0.01 upper: 上分位数,默认0.99 by_date: 每天独立缩尾,默认False(全局缩尾) @@ -387,11 +366,12 @@ class Winsorizer(BaseProcessor): f"lower ({lower}) 必须小于 upper ({upper}),且都在 [0, 1] 范围内" ) + self.feature_cols = feature_cols self.lower = lower self.upper = upper self.by_date = by_date self.date_col = date_col - self.bounds_: dict = {} + self.bounds_ = {} def fit(self, X: pl.DataFrame) -> "Winsorizer": """学习分位数边界(仅在全局模式下) @@ -403,12 +383,12 @@ class Winsorizer(BaseProcessor): self """ if not self.by_date: - numeric_cols = [c for c in X.columns if X[c].dtype.is_numeric()] - for col in numeric_cols: - self.bounds_[col] = { - "lower": X[col].quantile(self.lower), - "upper": X[col].quantile(self.upper), - } + for col in self.feature_cols: + if col in X.columns and X[col].dtype.is_numeric(): + self.bounds_[col] = { + "lower": X[col].quantile(self.lower), + "upper": X[col].quantile(self.upper), + } return self def transform(self, X: pl.DataFrame) -> pl.DataFrame: @@ -440,16 +420,21 @@ class Winsorizer(BaseProcessor): def _transform_by_date(self, X: pl.DataFrame) -> pl.DataFrame: """每日独立缩尾""" - numeric_cols = [c for c in X.columns if X[c].dtype.is_numeric()] + # 确定需要处理的数值列 + target_cols = [ + col + for col in self.feature_cols + if col in X.columns and X[col].dtype.is_numeric() + ] # 先计算每天的分位数 lower_exprs = [ pl.col(col).quantile(self.lower).over(self.date_col).alias(f"{col}_lower") - for col in numeric_cols + for col in target_cols ] upper_exprs = [ pl.col(col).quantile(self.upper).over(self.date_col).alias(f"{col}_upper") - for col in numeric_cols + for col in target_cols ] # 添加分位数列 @@ -458,7 +443,7 @@ class Winsorizer(BaseProcessor): # 执行缩尾 clip_exprs = [] for col in X.columns: - if col in numeric_cols: + if col in target_cols: clipped = ( pl.col(col) .clip(pl.col(f"{col}_lower"), pl.col(f"{col}_upper"))