From 4b943d97b232d984fcf8659880ea39a7db6af234 Mon Sep 17 00:00:00 2001 From: sun Date: Thu, 4 Jul 2019 22:11:02 +0800 Subject: [PATCH 01/12] energy changed --- energy/include/energy/energy.h | 6 +- energy/include/energy/param_struct_define.h | 9 +++ energy/src/energy/find/energy_finder.cpp | 72 ++++++++++++++++----- energy/src/energy/param_init.cpp | 11 ++++ energy/src/energy/run.cpp | 14 ++-- energy/src/energy/show/show.cpp | 25 +++++++ main.cpp | 8 +-- 7 files changed, 117 insertions(+), 28 deletions(-) diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index 03ff609..29cfcf7 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -48,6 +48,7 @@ private: bool isMark; int fans_cnt; int armors_cnt; + int centerRs_cnt; int count; int last_fans_cnt; int last_armors_cnt; @@ -82,6 +83,7 @@ private: std::vector fans; std::vector armors; + std::vector centerRs; // std::vector gimble_zero_points; cv::Point cycle_center; @@ -102,15 +104,17 @@ private: int findFan(const cv::Mat &src, vector &fans, int &last_fans_cnt); int findArmor(const cv::Mat &src, vector &armors, int &last_armors_cnt); - int findGimbleZeroPoint(const cv::Mat &src, vector &gimble_zero_point); + int findCenterR(const cv::Mat src); void showFanContours(std::string windows_name, const cv::Mat &src, const std::vector &fans); void showArmorContours(std::string windows_name, const cv::Mat &src, const std::vector &armors); void showBothContours(std::string windows_name, const cv::Mat &src, const std::vector &fans, const std::vector &armors); + void showCenterRContours(std::string windows_name, const cv::Mat src); bool isValidFanContour(const vector &fan_contour); bool isValidArmorContour(const vector &armor_contour); + bool isValidCenterRContour(const vector center_R_contour); void getFanPosition(std::vector &fanPosition, const std::vector &fans, cv::Point cycle_center, double radius); void getArmorPosition(std::vector &armorPosition, const std::vector &armors, cv::Point cycle_center, double radius); diff --git a/energy/include/energy/param_struct_define.h b/energy/include/energy/param_struct_define.h index dc82c6c..ff49a0a 100644 --- a/energy/include/energy/param_struct_define.h +++ b/energy/include/energy/param_struct_define.h @@ -48,6 +48,15 @@ struct EnergyPartParam { float ARMOR_CONTOUR_HW_RATIO_MAX; float ARMOR_CONTOUR_HW_RATIO_MIN; + long CENTER_R_CONTOUR_AREA_MAX; + long CENTER_R_CONTOUR_AREA_MIN; + long CENTER_R_CONTOUR_LENGTH_MIN; + long CENTER_R_CONTOUR_WIDTH_MIN; + long CENTER_R_CONTOUR_LENGTH_MAX; + long CENTER_R_CONTOUR_WIDTH_MAX; + float CENTER_R_CONTOUR_HW_RATIO_MAX; + float CENTER_R_CONTOUR_HW_RATIO_MIN; + float TWIN_ANGEL_MAX; }; diff --git a/energy/src/energy/find/energy_finder.cpp b/energy/src/energy/find/energy_finder.cpp index 4fcf680..ce8bdca 100644 --- a/energy/src/energy/find/energy_finder.cpp +++ b/energy/src/energy/find/energy_finder.cpp @@ -121,38 +121,42 @@ int Energy::findArmor(const cv::Mat &src, vector &armors, int &last_ return static_cast(armors.size()); } -int Energy::findGimbleZeroPoint(const cv::Mat &src, vector &gimble_zero_points) { +int Energy::findCenterR(const cv::Mat src) { if (src.empty())return 0; static Mat src_bin; src_bin = src.clone(); -// threshold(src, src_bin, energy_part_param_.FAN_GRAY_THRESH, 255, THRESH_BINARY); +// threshold(src, src_bin, energy_part_param_.ARMOR_GRAY_THRESH, 255, THRESH_BINARY); if(src.type() == CV_8UC3){ cvtColor(src_bin, src_bin, CV_BGR2GRAY); } - std::vector > zero_point_contours; + std::vector > center_R_contours; - findContours(src_bin, zero_point_contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); + StructingElementErodeDilate(src_bin); +// imshow("R struct",src_bin); - for (auto &zero_point_contour : zero_point_contours) { + findContours(src_bin, center_R_contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); - double cur_contour_area = contourArea(zero_point_contour); - RotatedRect cur_rect = minAreaRect(zero_point_contour); + for (auto ¢er_R_contour : center_R_contours) { + if (!isValidCenterRContour(center_R_contour)) + { + continue; + } + + RotatedRect cur_rect = minAreaRect(center_R_contour); Size2f cur_size = cur_rect.size; - -// cout<<"cur_contour_area: "< cur_size.width ? cur_size.height : cur_size.width; float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; - if(length<10&&width<10&&length>1&&width>1){ - cout<<"zero point center: "<10 && width>5){ +// centerRs.emplace_back(center_R_contour); +// cout<<"center R area: "<(fans.size()); + return static_cast(centerRs.size()); } bool Energy::isValidFanContour(const vector &fan_contour) { @@ -226,3 +230,39 @@ bool Energy::isValidArmorContour(const vector &armor_contour) { return true; } +bool Energy::isValidCenterRContour(const vector center_R_contour) { + double cur_contour_area = contourArea(center_R_contour); +// if (cur_contour_area > energy_part_param_.ARMOR_CONTOUR_AREA_MAX || +// cur_contour_area < energy_part_param_.ARMOR_CONTOUR_AREA_MIN) +// { +// //cout< cur_size.width ? cur_size.height : cur_size.width; + float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; + if (length < energy_part_param_.CENTER_R_CONTOUR_LENGTH_MIN || width < energy_part_param_.CENTER_R_CONTOUR_WIDTH_MIN) + { + //cout<<"length width min fail."< energy_part_param_.CENTER_R_CONTOUR_LENGTH_MAX||width>energy_part_param_.CENTER_R_CONTOUR_WIDTH_MAX) + { + //cout<<"length width max fail."< energy_part_param_.CENTER_R_CONTOUR_HW_RATIO_MAX || + length_width_ratio < energy_part_param_.CENTER_R_CONTOUR_HW_RATIO_MIN) + { + //cout<<"length width ratio fail."<200)all_armor_centers.clear(); -// if(first_armor_centers.size()>200)first_armor_centers.clear(); -// cout<<"first_armor_centers.size(): "<0||fans_cnt>0) showBothContours("Both",src, fans, armors); + centerRs_cnt = findCenterR(src); + if(centerRs_cnt>0)showCenterRContours("R",src); - if(armors_cnt>=4 && fans_cnt>=3) { + if(armors_cnt>=4 && fans_cnt>=3) { FILE *fp = fopen(PROJECT_DIR"/Mark/mark.txt", "w"); if (fp) { fprintf(fp, "yaw: %f, pitch: %f\n", origin_yaw, origin_pitch); @@ -112,6 +110,8 @@ int Energy::run(cv::Mat &src){ // cout<<"position mode: "< &fans, const std::vector &armors) { if (src.empty())return; diff --git a/main.cpp b/main.cpp index 34fb53c..63392b7 100644 --- a/main.cpp +++ b/main.cpp @@ -29,7 +29,7 @@ using namespace std; mcu_data mcuData = { 0, 0, - ARMOR_STATE, + ENERGY_STATE, 0, 1, ENEMY_RED, @@ -65,8 +65,8 @@ int main(int argc, char *argv[]) { // video_armor = new VideoWrapper(armor_video); // lastVideo(energy_video, PROJECT_DIR"/energy_video/"); // video_energy = new VideoWrapper(energy_video); - video_armor = new VideoWrapper("/home/sjturm/Desktop/valid_video/armor/65.avi"); - video_energy = new VideoWrapper("/home/sjturm/Desktop/valid_video/energy/121.avi"); + video_armor = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); + video_energy = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); } if (video_armor->init()) { LOGM("video_armor source initialization successfully."); @@ -169,7 +169,7 @@ int main(int argc, char *argv[]) { } } // cout< Date: Fri, 5 Jul 2019 09:39:20 +0800 Subject: [PATCH 02/12] energy changed --- energy/include/energy/energy.h | 11 ++-- energy/src/energy/find/energy_finder.cpp | 73 +++++++++++++++--------- energy/src/energy/run.cpp | 6 +- energy/src/energy/show/show.cpp | 3 +- 4 files changed, 54 insertions(+), 39 deletions(-) diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index 29cfcf7..896f292 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -102,18 +102,17 @@ private: void initEnergyPartParam(); void initRotation(); - int findFan(const cv::Mat &src, vector &fans, int &last_fans_cnt); - int findArmor(const cv::Mat &src, vector &armors, int &last_armors_cnt); + int findFan(const cv::Mat src, int &last_fans_cnt); + int findArmor(const cv::Mat src, int &last_armors_cnt); int findCenterR(const cv::Mat src); void showFanContours(std::string windows_name, const cv::Mat &src, const std::vector &fans); void showArmorContours(std::string windows_name, const cv::Mat &src, const std::vector &armors); - void showBothContours(std::string windows_name, const cv::Mat &src, const std::vector &fans, - const std::vector &armors); + void showBothContours(std::string windows_name, const cv::Mat src); void showCenterRContours(std::string windows_name, const cv::Mat src); - bool isValidFanContour(const vector &fan_contour); - bool isValidArmorContour(const vector &armor_contour); + bool isValidFanContour(const vector fan_contour); + bool isValidArmorContour(const vector armor_contour); bool isValidCenterRContour(const vector center_R_contour); void getFanPosition(std::vector &fanPosition, const std::vector &fans, cv::Point cycle_center, double radius); diff --git a/energy/src/energy/find/energy_finder.cpp b/energy/src/energy/find/energy_finder.cpp index ce8bdca..6aadb29 100644 --- a/energy/src/energy/find/energy_finder.cpp +++ b/energy/src/energy/find/energy_finder.cpp @@ -8,7 +8,10 @@ using std::cout; using std::endl; using std::vector; -int Energy::findFan(const cv::Mat &src, vector &fans, int &last_fans_cnt) { +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于寻找图像内所有的大风车扇叶 +// --------------------------------------------------------------------------------------------------------------------- +int Energy::findFan(const cv::Mat src, int &last_fans_cnt) { if (src.empty())return 0; static Mat src_bin; src_bin = src.clone(); @@ -16,6 +19,7 @@ int Energy::findFan(const cv::Mat &src, vector &fans, int &last_fans if(src.type() == CV_8UC3){ cvtColor(src_bin, src_bin, CV_BGR2GRAY); } + std::vector > fan_contours; StructingElementClose(src_bin,6,6); @@ -59,8 +63,10 @@ int Energy::findFan(const cv::Mat &src, vector &fans, int &last_fans } - -int Energy::findArmor(const cv::Mat &src, vector &armors, int &last_armors_cnt) { +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于寻找图像内所有的大风车装甲板模块 +// --------------------------------------------------------------------------------------------------------------------- +int Energy::findArmor(const cv::Mat src, int &last_armors_cnt) { if (src.empty())return 0; static Mat src_bin; src_bin = src.clone(); @@ -72,7 +78,6 @@ int Energy::findArmor(const cv::Mat &src, vector &armors, int &last_ std::vector > armor_contours_external;//用总轮廓减去外轮廓,只保留内轮廓,除去流动条的影响。 StructingElementErodeDilate(src_bin); -// StructingElementClose(src_bin,10,10); // imshow("armor struct",src_bin); findContours(src_bin, armor_contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE); @@ -121,6 +126,10 @@ int Energy::findArmor(const cv::Mat &src, vector &armors, int &last_ return static_cast(armors.size()); } + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于寻找图像内大风车中心字母“R” +// --------------------------------------------------------------------------------------------------------------------- int Energy::findCenterR(const cv::Mat src) { if (src.empty())return 0; static Mat src_bin; @@ -159,7 +168,10 @@ int Energy::findCenterR(const cv::Mat src) { return static_cast(centerRs.size()); } -bool Energy::isValidFanContour(const vector &fan_contour) { +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于判断找到的矩形候选区是否为扇叶 +// --------------------------------------------------------------------------------------------------------------------- +bool Energy::isValidFanContour(const vector fan_contour) { double cur_contour_area = contourArea(fan_contour); if (cur_contour_area > energy_part_param_.FAN_CONTOUR_AREA_MAX || cur_contour_area < energy_part_param_.FAN_CONTOUR_AREA_MIN) @@ -179,29 +191,31 @@ bool Energy::isValidFanContour(const vector &fan_contour) { //cout<<"length width min fail."< energy_part_param_.FAN_CONTOUR_HW_RATIO_MAX || -// length_width_ratio < energy_part_param_.FAN_CONTOUR_HW_RATIO_MIN) -// { -// //cout<<"length width ratio fail."< energy_part_param_.FAN_CONTOUR_HW_RATIO_MAX || + length_width_ratio < energy_part_param_.FAN_CONTOUR_HW_RATIO_MIN) + { + //cout<<"length width ratio fail."< &armor_contour) { +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于判断找到的矩形候选区是否为装甲板 +// --------------------------------------------------------------------------------------------------------------------- +bool Energy::isValidArmorContour(const vector armor_contour) { double cur_contour_area = contourArea(armor_contour); -// if (cur_contour_area > energy_part_param_.ARMOR_CONTOUR_AREA_MAX || -// cur_contour_area < energy_part_param_.ARMOR_CONTOUR_AREA_MIN) -// { -// //cout< energy_part_param_.ARMOR_CONTOUR_AREA_MAX || + cur_contour_area < energy_part_param_.ARMOR_CONTOUR_AREA_MIN) + { + //cout< cur_size.width ? cur_size.height : cur_size.width; @@ -230,15 +244,18 @@ bool Energy::isValidArmorContour(const vector &armor_contour) { return true; } +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于判断找到的矩形候选区是否为可能的风车中心R候选区 +// --------------------------------------------------------------------------------------------------------------------- bool Energy::isValidCenterRContour(const vector center_R_contour) { double cur_contour_area = contourArea(center_R_contour); -// if (cur_contour_area > energy_part_param_.ARMOR_CONTOUR_AREA_MAX || -// cur_contour_area < energy_part_param_.ARMOR_CONTOUR_AREA_MIN) -// { -// //cout< energy_part_param_.ARMOR_CONTOUR_AREA_MAX || + cur_contour_area < energy_part_param_.ARMOR_CONTOUR_AREA_MIN) + { + //cout< cur_size.width ? cur_size.height : cur_size.width; diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index 08e2874..1cdfa78 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -33,18 +33,18 @@ int Energy::run(cv::Mat &src){ - fans_cnt = findFan(src, fans, last_fans_cnt); + fans_cnt = findFan(src, last_fans_cnt); // cout<<"fans_cnt: "<0)showFanContours("fan",src,fans); // fans_cnt=0; - armors_cnt = findArmor(src, armors, last_armors_cnt); + armors_cnt = findArmor(src, last_armors_cnt); // cout<<"armors_cnt: "<0) showArmorContours("armor",src,armors); - if(armors_cnt>0||fans_cnt>0) showBothContours("Both",src, fans, armors); + if(armors_cnt>0||fans_cnt>0) showBothContours("Both",src); centerRs_cnt = findCenterR(src); if(centerRs_cnt>0)showCenterRContours("R",src); diff --git a/energy/src/energy/show/show.cpp b/energy/src/energy/show/show.cpp index 912ecd2..d5f23b1 100644 --- a/energy/src/energy/show/show.cpp +++ b/energy/src/energy/show/show.cpp @@ -83,8 +83,7 @@ void Energy::showCenterRContours(std::string windows_name, const cv::Mat src) { imshow(windows_name, image2show); } -void Energy::showBothContours(std::string windows_name, const cv::Mat &src, const std::vector &fans, - const std::vector &armors) { +void Energy::showBothContours(std::string windows_name, const cv::Mat src) { if (src.empty())return; static Mat image2show; if(src.type() == CV_8UC1) // 黑白图像 From 1a20133ca1d59e520a1581193cec250bf2bf44ba Mon Sep 17 00:00:00 2001 From: sun Date: Fri, 5 Jul 2019 14:06:40 +0800 Subject: [PATCH 03/12] energy changed --- energy/include/energy/energy.h | 177 +++++++----------- energy/include/energy/param_struct_define.h | 10 - .../src/energy/calculate/cycle_calculate.cpp | 57 +----- energy/src/energy/calibrate/split.cpp | 2 +- energy/src/energy/energy.cpp | 15 +- energy/src/energy/find/cycle_finder.cpp | 89 --------- energy/src/energy/find/energy_finder.cpp | 157 ++++++++-------- energy/src/energy/find/target_finder.cpp | 50 +++-- energy/src/energy/get/gimble_rotation_get.cpp | 51 ++--- energy/src/energy/get/hit_point_get.cpp | 133 ------------- energy/src/energy/get/position_get.cpp | 44 +++-- energy/src/energy/param_init.cpp | 82 +++----- energy/src/energy/run.cpp | 75 ++------ .../send_target_by_uart.cpp | 17 +- energy/src/energy/show/show.cpp | 92 +++++---- energy/src/energy/tool/tool.cpp | 66 ++----- main.cpp | 4 +- 17 files changed, 325 insertions(+), 796 deletions(-) delete mode 100644 energy/src/energy/find/cycle_finder.cpp delete mode 100644 energy/src/energy/get/hit_point_get.cpp diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index 896f292..9aac222 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -23,130 +23,93 @@ using std::vector; class Energy { public: - Energy(Serial &u, uint8_t &color); - ~Energy(); + Energy(Serial &u, uint8_t &color);//构造函数,参数为串口和敌方颜色 + ~Energy();//默认析构函数 int run(cv::Mat &src); - - cv::Point2f uart_hit_point; - clock_t start; - Serial &serial; - -// void setAllyColor(int color); - void setRotation(int rotation); - void setEnergyRotationInit(); - - void extract(cv::Mat &src); - - void sendTargetByUart(float x, float y, float z); + Serial &serial;//串口 + void setEnergyRotationInit();//判断顺逆时针函数 + void extract(cv::Mat &src);//框取图像中的一块区域进行处理 + void sendTargetByUart(float x, float y, float z);//向主控板发送数据 private: + EnergyPartParam energy_part_param_;//能量机关的参数设置 + bool isMark;//若操作手正在手动标定,则为true + int fans_cnt;//图像中的扇叶个数 + int armors_cnt;//图像中的装甲板个数 + int centerRs_cnt;//图像中可能的风车中心字母R选区个数 + int last_fans_cnt;//上一帧的扇叶个数 + int last_armors_cnt;//上一帧的装甲板个数 + double radius;//大风车半径 + float target_polar_angle;//待击打装甲板的极坐标角度 + float last_target_polar_angle;//上一帧待击打装甲板的极坐标角度 + uint8_t &ally_color;//我方颜色 + int energy_rotation_direction;//风车旋转方向 + float attack_distance;//步兵与风车平面距离 + int send_cnt;//向主控板发送的数据总次数 + float yaw_rotation;//云台yaw轴应该转到的角度 + float pitch_rotation;//云台pitch轴应该转到的角度 + uint8_t last_mark;//用于记录上一帧操作手是否进行标定 + double predict_rad;//预测提前角 + bool energy_rotation_init;//若仍在判断风车旋转方向,则为true + int clockwise_rotation_init_cnt;//装甲板顺时针旋转次数 + int anticlockwise_rotation_init_cnt;//装甲板逆时针旋转次数 + float red_origin_yaw, red_origin_pitch;//红方的初始云台对心角度设定值 + float blue_origin_yaw, blue_origin_pitch;//蓝方的初始云台对心角度设定值 + float origin_yaw, origin_pitch;//初始的云台角度设定值 + float target_cnt;//用于记录寻找到的装甲板总数,该值变化则立即中断主控板发射进程,防止重复击打已点亮的装甲板 + bool save_new_mark;//若操作手进行过手动标定,则为true - EnergyPartParam energy_part_param_; - LiftHeight lift_height_; - bool isSendTarget; - bool isMark; - int fans_cnt; - int armors_cnt; - int centerRs_cnt; - int count; - int last_fans_cnt; - int last_armors_cnt; - double radius; - double target_position; - double last_target_position; - double last_hit_position; - float target_armor; - float last_target_armor; - uint8_t &ally_color; - int energy_part_rotation; - float attack_distance; - int send_cnt; - double rectified_focal_length; - double theta;//电机pitch轴应旋转的角度 - double phi;//电机yaw轴应旋转的角度 - float yaw_rotation; - float pitch_rotation; - uint8_t last_mark; - int position_mode; - int last_position_mode; - int isLeftVertexFound, isTopVertexFound, isRightVertexFound, isBottomVertexFound; - bool energy_rotation_init; - int clockwise_rotation_init_cnt; - int anticlockwise_rotation_init_cnt; - float red_origin_yaw, red_origin_pitch; - float blue_origin_yaw, blue_origin_pitch; - float origin_yaw, origin_pitch; - float target_cnt; - bool target_cnt_flag; - bool save_new_mark; + std::vector fans;//图像中所有扇叶 + std::vector armors;//图像中所有装甲板 + std::vector centerRs;//风车中心字母R的可能候选区 - std::vector fans; - std::vector armors; - std::vector centerRs; - // std::vector gimble_zero_points; + cv::Point circle_center_point;//风车圆心坐标 + cv::Point target_point;//目标装甲板中心坐标 + cv::Point predict_point;//预测的击打点坐标 + std::vectorfan_polar_angle;//当前帧所有扇叶的极坐标角度 + std::vectorarmor_polar_angle;//当前帧所有装甲板的极坐标角度 + std::vector all_armor_centers;//记录全部的装甲板中心,用于风车圆心和半径的计算 + cv::Mat src_blue, src_red, src_green;//通道分离中的三个图像通道 - cv::Point cycle_center; - cv::Point target_center; - cv::Point last_target_center; - cv::Point hit_point; - std::vectorfanPosition; - std::vectorarmorPosition; - std::vector Armor_center; - std::vector first_armor_centers; - std::vector all_armor_centers; - cv::Point left, right, top, bottom; - cv::Mat src_blue, src_red, src_green; - - void initEnergy(); - void initEnergyPartParam(); - void initRotation(); + void initEnergy();//能量机关初始化 + void initEnergyPartParam();//能量机关参数初始化 + void initRotation();//顺逆时针初始化 - int findFan(const cv::Mat src, int &last_fans_cnt); - int findArmor(const cv::Mat src, int &last_armors_cnt); - int findCenterR(const cv::Mat src); + int findFan(const cv::Mat src, int &last_fans_cnt);//寻找图中所有扇叶 + int findArmor(const cv::Mat src, int &last_armors_cnt);//寻找图中所有装甲板 + int findCenterR(const cv::Mat src);//寻找图中可能的风车中心字母R - void showFanContours(std::string windows_name, const cv::Mat &src, const std::vector &fans); - void showArmorContours(std::string windows_name, const cv::Mat &src, const std::vector &armors); - void showBothContours(std::string windows_name, const cv::Mat src); - void showCenterRContours(std::string windows_name, const cv::Mat src); + bool isValidFanContour(const vector fan_contour);//扇叶矩形尺寸要求 + bool isValidArmorContour(const vector armor_contour);//装甲板矩形尺寸要求 + bool isValidCenterRContour(const vector center_R_contour);//风车中心选区尺寸要求 - bool isValidFanContour(const vector fan_contour); - bool isValidArmorContour(const vector armor_contour); - bool isValidCenterRContour(const vector center_R_contour); + void showFanContours(std::string windows_name, const cv::Mat src);//显示扇叶 + void showArmorContours(std::string windows_name, const cv::Mat src);//显示装甲板 + void showBothContours(std::string windows_name, const cv::Mat src);//显示扇叶和装甲板 + void showCenterRContours(std::string windows_name, const cv::Mat src);//显示风车中心候选区R - void getFanPosition(std::vector &fanPosition, const std::vector &fans, cv::Point cycle_center, double radius); - void getArmorPosition(std::vector &armorPosition, const std::vector &armors, cv::Point cycle_center, double radius); - void getFirstArmorCenters(vector &armors, std::vector &first_armor_centers); - void getAllArmorCenters(); - void getPosition(cv::Point point, double &angle); + void getFanPosition();//获取扇叶极坐标角度 + void getArmorPosition();//获取装甲板极坐标角度 + void getAllArmorCenters();//记录所有装甲板中心坐标 - void cycleQuickCalculate(std::vector &first_armor_centers, cv::Point &cycle_center, double &radius); - void cycleDefaultCalculateConst(cv::Point &cycle_center, double &radius); - void cycleCalculate(); - void cycleLeastFit(); + void cycleLeastFit();//利用所有记录的装甲板中心最小二乘法计算圆心和半径 - void findTarget(const std::vectorfanPosition, const std::vectorarmorPosition, float &target_armor); + void findTarget();//获取目标装甲板的极坐标角度和装甲板中心坐标 - void findWholeCycle(const std::vector&first_armor_centers); + void rotate();//获取预测点位 + void stretch(cv::Point point_1, cv::Point2f &point_2);//将像素差转换为实际距离差 - void saveFourPoints(std::vector &FourPoints, cv::Point point_1, cv::Point point_2, cv::Point point_3, cv::Point point_4); - void savePoint2f(std::vector &point_save, cv::Point point); - double pointDistance(cv::Point point_1, cv::Point point_2); - void rotate(double rad, double radius, cv::Point center, cv::Point point_old, cv::Point &point_new); - void stretch(cv::Point point_1, cv::Point2f &point_2); - void cycle(cv::Point p1, cv::Point p2, cv::Point p3, cv::Point ¢er, double &radius); + void getPredictPoint();//获取预测点位 + bool changeTarget();//判断目标是否改变 + void changeMark();//操作手手动修改标定值 + void gimbleRotation();//计算云台旋转角度 - void getHitPoint(); - bool changeTarget(); - void changeMark(); - void gimbleRotation(); + void splitBayerBG(cv::Mat src, cv::Mat &blue, cv::Mat &red);//拜耳阵列分离 + void imagePreprocess(cv::Mat &src);//图像通道分离 - void splitBayerBG(cv::Mat &src, cv::Mat &blue, cv::Mat &red); - void imagePreprocess(cv::Mat &src); - - void StructingElementClose(cv::Mat &src,int length, int width); - void StructingElementErodeDilate(cv::Mat &src); + void StructingElementClose(cv::Mat &src,int length, int width);//闭运算 + void StructingElementErodeDilate(cv::Mat &src);//腐蚀和膨胀 }; diff --git a/energy/include/energy/param_struct_define.h b/energy/include/energy/param_struct_define.h index ff49a0a..8b05dc1 100644 --- a/energy/include/energy/param_struct_define.h +++ b/energy/include/energy/param_struct_define.h @@ -60,16 +60,6 @@ struct EnergyPartParam { float TWIN_ANGEL_MAX; }; -struct LiftHeight{ - float LIFT_0; - float LIFT_30; - float LIFT_60; - float LIFT_90; - float LIFT_minus_30; - float LIFT_minus_60; - float LIFT_minus_90; -}; - typedef struct GMAngle_t{ float yaw; float pitch; diff --git a/energy/src/energy/calculate/cycle_calculate.cpp b/energy/src/energy/calculate/cycle_calculate.cpp index 7593555..5b75bed 100644 --- a/energy/src/energy/calculate/cycle_calculate.cpp +++ b/energy/src/energy/calculate/cycle_calculate.cpp @@ -8,65 +8,26 @@ using std::cout; using std::endl; using std::vector; -void Energy::cycleQuickCalculate(std::vector &first_armor_centers, cv::Point &cycle_center, double &radius) { - //if (isCalibrated()) return; - int cur_size = static_cast(first_armor_centers.size()); - if (cur_size < 3)return; - cv::Point point_1, point_2, point_3; - point_1 = first_armor_centers.at(0); - point_2 = first_armor_centers.at(static_cast(cur_size - 1)); - point_3 = first_armor_centers.at(static_cast(cur_size / 2)); - //cout << point_1 << '\t' << point_2 << endl; - //cout << first_armor_centers.at(point_1) << '\t' << first_armor_centers.at(point_2) << endl; - cycle(point_1, point_2, point_3, cycle_center, radius); - cout << "The cycle center is: " << cycle_center << endl; - cout << "The radius is: " << radius << endl; -} -void Energy::cycleDefaultCalculateConst(cv::Point &cycle_center, double &radius) { - if (count >= 5) - return; - clock_t end; - double time_duration = 1.0, dt; - if (Armor_center.size() < 3) { - end = clock(); - dt = (end - start) / 1000000.00; - if (dt >= time_duration * count) { - getFirstArmorCenters(armors, Armor_center); - count++; - } - } - else { - cycleQuickCalculate(Armor_center, cycle_center, radius); - count++; - } -} - -void Energy::cycleCalculate(){ - cycle_center.x = (top.x + bottom.x)/2; - cycle_center.y = (left.y + right.y)/2; - radius = (right.x - left.x)/2; - cout << "The cycle center is: " << cycle_center << endl; - cout << "The radius is: " << radius << endl; -} +//---------------------------------------------------------------------------------------------------------------------- +// 此函数通过最小二乘法计算大风车圆心和半径 +// --------------------------------------------------------------------------------------------------------------------- void Energy::cycleLeastFit() { - cycle_center.x = 0; - cycle_center.y = 0; + circle_center_point.x = 0; + circle_center_point.y = 0; radius = 0.0f; if (all_armor_centers.size() < 3) { // cout<<"Cannot calculate a circle"<(all_armor_centers.size()); for (int i = 0; i < N; i++) { @@ -84,10 +45,8 @@ void Energy::cycleLeastFit() sum_x1y2 += x * y2; sum_x2y1 += x2 * y; } - double C, D, E, G, H; double a, b, c; - C = N * sum_x2 - sum_x * sum_x; D = N * sum_xy - sum_x * sum_y; E = N * sum_x3 + N * sum_x1y2 - (sum_x2 + sum_y2) * sum_x; @@ -96,11 +55,9 @@ void Energy::cycleLeastFit() a = (H * D - E * G) / (C * G - D * D); b = (H * C - E * D) / (D * D - G * C); c = -(a * sum_x + b * sum_y + sum_x2 + sum_y2) / N; - - cycle_center.x = static_cast(a / (-2)); - cycle_center.y = static_cast(b / (-2)); + circle_center_point.x = static_cast(a / (-2)); + circle_center_point.y = static_cast(b / (-2)); radius = sqrt(a * a + b * b - 4 * c) / 2; - // cout << "The cycle center is: " << cycle_center << endl; // cout << "The radius is: " << radius << endl; } diff --git a/energy/src/energy/calibrate/split.cpp b/energy/src/energy/calibrate/split.cpp index 427fb08..c4ab981 100644 --- a/energy/src/energy/calibrate/split.cpp +++ b/energy/src/energy/calibrate/split.cpp @@ -8,7 +8,7 @@ using std::cout; using std::endl; using std::vector; -void Energy::splitBayerBG(cv::Mat &src, cv::Mat &blue, cv::Mat &red) { +void Energy::splitBayerBG(cv::Mat src, cv::Mat &blue, cv::Mat &red) { uchar* data; uchar* bayer_data[2]; for (int i = 0; i < src.rows; ++i) { diff --git a/energy/src/energy/energy.cpp b/energy/src/energy/energy.cpp index 472c663..a25d52a 100644 --- a/energy/src/energy/energy.cpp +++ b/energy/src/energy/energy.cpp @@ -20,11 +20,11 @@ Energy::Energy(Serial &u, uint8_t &color):serial(u),ally_color(color), save_new_mark = true; - if(ally_color==ALLY_RED){ + if(ally_color == ALLY_RED){ origin_yaw = red_origin_yaw; origin_pitch = red_origin_pitch; } - else if(ally_color==ALLY_BLUE){ + else if(ally_color == ALLY_BLUE){ origin_yaw = blue_origin_yaw; origin_pitch = blue_origin_pitch; } @@ -35,22 +35,11 @@ Energy::Energy(Serial &u, uint8_t &color):serial(u),ally_color(color), Energy::~Energy() = default; -// -//void Energy::setAllyColor(int color) -//{ -// ally_color_ = color; -//} - -void Energy::setRotation(int rotation){ - energy_part_rotation = rotation; -} - void Energy::setEnergyRotationInit() { initEnergy(); initEnergyPartParam(); energy_rotation_init = true; - if(!save_new_mark){ FILE *fp = fopen(PROJECT_DIR"/Mark/mark.txt", "r"); if(fp){ diff --git a/energy/src/energy/find/cycle_finder.cpp b/energy/src/energy/find/cycle_finder.cpp deleted file mode 100644 index bff7ee9..0000000 --- a/energy/src/energy/find/cycle_finder.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// Created by xixiliadorabarry on 19-3-23. -// - -#include "energy/energy.h" -#include - -using namespace cv; -using std::cout; -using std::endl; -using std::vector; - -void Energy::findWholeCycle(const std::vector&first_armor_centers) { - int cur_size = static_cast(first_armor_centers.size()); - //cout << "first armor centers' size: " << first_armor_centers.size() << endl; - if (cur_size == 0)return; - int vertex = 0; - for (int i = 1; i < cur_size - 1; ++i) - { - if (vertex == 4)break; - if (first_armor_centers.at(i).x >= first_armor_centers.at(i - 1).x && first_armor_centers.at(i).x >= first_armor_centers.at(i + 1).x) - { - if (isRightVertexFound == -1) { - vertex += 1; - isRightVertexFound = 1; - right = first_armor_centers.at(i); - cout << "right vertex: " << right << endl; - continue; - } - else if (right.x > first_armor_centers.at(i).x)continue; - else { - right = first_armor_centers.at(i); - continue; - } - } - if (first_armor_centers.at(i).x <= first_armor_centers.at(i - 1).x && first_armor_centers.at(i).x <= first_armor_centers.at(i + 1).x) - { - if (isLeftVertexFound == -1) { - vertex += 1; - isLeftVertexFound = 1; - left = first_armor_centers.at(i); - cout << "left vertex: " << left << endl; - continue; - } - else if (left.x < first_armor_centers.at(i).x)continue; - else { - left = first_armor_centers.at(i); - continue; - } - } - if (first_armor_centers.at(i).y <= first_armor_centers.at(i - 1).y && first_armor_centers.at(i).y <= first_armor_centers.at(i + 1).y) - { - if (isTopVertexFound == -1) { - vertex += 1; - isTopVertexFound = 1; - top = first_armor_centers.at(i); - cout << "top vertex: " << top << endl; - continue; - } - else if (top.y < first_armor_centers.at(i).y)continue; - else { - top = first_armor_centers.at(i); - continue; - } - - } - if (first_armor_centers.at(i).y >= first_armor_centers.at(i - 1).y && first_armor_centers.at(i).y >= first_armor_centers.at(i + 1).y) - { - if (isBottomVertexFound == -1) { - vertex += 1; - isBottomVertexFound = 1; - bottom = first_armor_centers.at(i); - cout << "bottom vertex: " << bottom << endl; - continue; - } - else if (bottom.y > first_armor_centers.at(i).y)continue; - else { - bottom = first_armor_centers.at(i); - continue; - } - } - } - - /*for (int k = 0; k < first_armor_centers.size(); ++k) { - cout << k << " : " << first_armor_centers.at(k) << '\t'; - float angle = static_cast(180 / PI * atan2(-1 * (first_armor_centers.at(k).y - 298), (first_armor_centers.at(k).x - 298))); - cout << angle << endl; - }*/ -} diff --git a/energy/src/energy/find/energy_finder.cpp b/energy/src/energy/find/energy_finder.cpp index 6aadb29..7f6ee9b 100644 --- a/energy/src/energy/find/energy_finder.cpp +++ b/energy/src/energy/find/energy_finder.cpp @@ -8,6 +8,8 @@ using std::cout; using std::endl; using std::vector; + + //---------------------------------------------------------------------------------------------------------------------- // 此函数用于寻找图像内所有的大风车扇叶 // --------------------------------------------------------------------------------------------------------------------- @@ -17,52 +19,49 @@ int Energy::findFan(const cv::Mat src, int &last_fans_cnt) { src_bin = src.clone(); // threshold(src, src_bin, energy_part_param_.FAN_GRAY_THRESH, 255, THRESH_BINARY); if(src.type() == CV_8UC3){ - cvtColor(src_bin, src_bin, CV_BGR2GRAY); + cvtColor(src_bin, src_bin, CV_BGR2GRAY);//若读取三通道视频文件,需转换为单通道 } - std::vector > fan_contours; - - StructingElementClose(src_bin,6,6); - + StructingElementClose(src_bin,6,6);//图像膨胀,防止图像断开并更方便寻找 // imshow("fan struct",src_bin); - findContours(src_bin, fan_contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); for (auto &fan_contour : fan_contours) { if (!isValidFanContour(fan_contour)) { continue; } + fans.emplace_back(fan_contour); - double cur_contour_area = contourArea(fan_contour); + /* double cur_contour_area = contourArea(fan_contour); RotatedRect cur_rect = minAreaRect(fan_contour); Size2f cur_size = cur_rect.size; -// -// cout<<"cur_contour_area: "< cur_size.width ? cur_size.height : cur_size.width; float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; -// cout<<"fan area: "<20&&width>20){ -// cout<20&&width>20){ + cout<(fans.size()); - return -1; + return -1;//寻找到的扇叶比上一帧少,说明该帧有误,返回-1 } last_fans_cnt = static_cast(fans.size()); return static_cast(fans.size()); } + + //---------------------------------------------------------------------------------------------------------------------- // 此函数用于寻找图像内所有的大风车装甲板模块 // --------------------------------------------------------------------------------------------------------------------- @@ -72,12 +71,12 @@ int Energy::findArmor(const cv::Mat src, int &last_armors_cnt) { src_bin = src.clone(); // threshold(src, src_bin, energy_part_param_.ARMOR_GRAY_THRESH, 255, THRESH_BINARY); if(src.type() == CV_8UC3){ - cvtColor(src_bin, src_bin, CV_BGR2GRAY); + cvtColor(src_bin, src_bin, CV_BGR2GRAY);//若读取三通道视频文件,需转换为单通道 } std::vector > armor_contours; std::vector > armor_contours_external;//用总轮廓减去外轮廓,只保留内轮廓,除去流动条的影响。 - StructingElementErodeDilate(src_bin); + StructingElementErodeDilate(src_bin);//图像膨胀,防止图像断开并更方便寻找 // imshow("armor struct",src_bin); findContours(src_bin, armor_contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE); @@ -97,36 +96,35 @@ int Energy::findArmor(const cv::Mat src, int &last_armors_cnt) { } } } - for (auto &armor_contour : armor_contours) { if (!isValidArmorContour(armor_contour)) { continue; } + armors.emplace_back(armor_contour); - RotatedRect cur_rect = minAreaRect(armor_contour); + /* RotatedRect cur_rect = minAreaRect(armor_contour); Size2f cur_size = cur_rect.size; float length = cur_size.height > cur_size.width ? cur_size.height : cur_size.width; float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; - -// if(length>10&&width>5){ -// armors.emplace_back(armor_contour); -// cout<<"armor area: "<10&&width>5){ + armors.emplace_back(armor_contour); + cout<<"armor area: "<(armors.size()); - return -1; + return -1;//寻找到的装甲板比上一帧少,说明该帧有误,返回-1 } last_armors_cnt = static_cast(armors.size()); return static_cast(armors.size()); } + + + //---------------------------------------------------------------------------------------------------------------------- // 此函数用于寻找图像内大风车中心字母“R” // --------------------------------------------------------------------------------------------------------------------- @@ -139,10 +137,8 @@ int Energy::findCenterR(const cv::Mat src) { cvtColor(src_bin, src_bin, CV_BGR2GRAY); } std::vector > center_R_contours; - StructingElementErodeDilate(src_bin); // imshow("R struct",src_bin); - findContours(src_bin, center_R_contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); for (auto ¢er_R_contour : center_R_contours) { @@ -150,24 +146,26 @@ int Energy::findCenterR(const cv::Mat src) { { continue; } + centerRs.emplace_back(center_R_contour); - RotatedRect cur_rect = minAreaRect(center_R_contour); + /*RotatedRect cur_rect = minAreaRect(center_R_contour); Size2f cur_size = cur_rect.size; float length = cur_size.height > cur_size.width ? cur_size.height : cur_size.width; float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; -// if(length>10 && width>5){ -// centerRs.emplace_back(center_R_contour); -// cout<<"center R area: "<10 && width>5){ + centerRs.emplace_back(center_R_contour); + cout<<"center R area: "<(centerRs.size()); } + + + //---------------------------------------------------------------------------------------------------------------------- // 此函数用于判断找到的矩形候选区是否为扇叶 // --------------------------------------------------------------------------------------------------------------------- @@ -179,31 +177,35 @@ bool Energy::isValidFanContour(const vector fan_contour) { //cout< cur_size.width ? cur_size.height : cur_size.width; - float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; + float length = cur_size.height > cur_size.width ? cur_size.height : cur_size.width;//将矩形的长边设置为长 + float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width;//将矩形的短边设置为宽 if (length < energy_part_param_.FAN_CONTOUR_LENGTH_MIN || width < energy_part_param_.FAN_CONTOUR_WIDTH_MIN || length > energy_part_param_.FAN_CONTOUR_LENGTH_MAX || width > energy_part_param_.FAN_CONTOUR_WIDTH_MAX) { - //cout<<"length width min fail."< energy_part_param_.FAN_CONTOUR_HW_RATIO_MAX || length_width_ratio < energy_part_param_.FAN_CONTOUR_HW_RATIO_MIN) { //cout<<"length width ratio fail."< armor_contour) { //cout< cur_size.width ? cur_size.height : cur_size.width; - float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; - if (length < energy_part_param_.ARMOR_CONTOUR_LENGTH_MIN || width < energy_part_param_.ARMOR_CONTOUR_WIDTH_MIN) + float length = cur_size.height > cur_size.width ? cur_size.height : cur_size.width;//将矩形的长边设置为长 + float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width;//将矩形的短边设置为宽 + if (length < energy_part_param_.ARMOR_CONTOUR_LENGTH_MIN || width < energy_part_param_.ARMOR_CONTOUR_WIDTH_MIN || + length > energy_part_param_.ARMOR_CONTOUR_LENGTH_MAX||width>energy_part_param_.ARMOR_CONTOUR_WIDTH_MAX) { - //cout<<"length width min fail."< energy_part_param_.ARMOR_CONTOUR_LENGTH_MAX||width>energy_part_param_.ARMOR_CONTOUR_WIDTH_MAX) - { - //cout<<"length width max fail."< energy_part_param_.ARMOR_CONTOUR_HW_RATIO_MAX || length_width_ratio < energy_part_param_.ARMOR_CONTOUR_HW_RATIO_MIN) { //cout<<"length width ratio fail."< center_R_contour) { //cout< cur_size.width ? cur_size.height : cur_size.width; - float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; - if (length < energy_part_param_.CENTER_R_CONTOUR_LENGTH_MIN || width < energy_part_param_.CENTER_R_CONTOUR_WIDTH_MIN) + float length = cur_size.height > cur_size.width ? cur_size.height : cur_size.width;//将矩形的长边设置为长 + float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width;//将矩形的短边设置为宽 + if (length < energy_part_param_.CENTER_R_CONTOUR_LENGTH_MIN || width < energy_part_param_.CENTER_R_CONTOUR_WIDTH_MIN + ||length > energy_part_param_.CENTER_R_CONTOUR_LENGTH_MAX ||width>energy_part_param_.CENTER_R_CONTOUR_WIDTH_MAX) { - //cout<<"length width min fail."< energy_part_param_.CENTER_R_CONTOUR_LENGTH_MAX||width>energy_part_param_.CENTER_R_CONTOUR_WIDTH_MAX) - { - //cout<<"length width max fail."< energy_part_param_.CENTER_R_CONTOUR_HW_RATIO_MAX || length_width_ratio < energy_part_param_.CENTER_R_CONTOUR_HW_RATIO_MIN) { //cout<<"length width ratio fail."<fanPosition, std::vectorarmorPosition, float &target_armor) { - if (fanPosition.size() >= armorPosition.size()) return; - if (armorPosition.size()==0)return; - if (fanPosition.size() == 0) { - target_armor = armorPosition.at(0); +void Energy::findTarget() { + if (fan_polar_angle.size() >= armor_polar_angle.size()) return;//扇叶多于装甲板,识别错误 + if (armor_polar_angle.empty())return;//找不到扇叶,识别错误 + if (fan_polar_angle.empty()) { + target_polar_angle = armor_polar_angle.at(0);//视野中没有扇叶,说明在击打第一个装甲板 for (const auto &armor : armors) { - target_center = armor.rect.center; -// cout<<"target center: "<::iterator it = fanPosition.begin(); it != fanPosition.end(); it++) { - cout << *it << endl; - }*/ - sort(armorPosition.begin(), armorPosition.end()); - /*for (vector::iterator it = armorPosition.begin(); it != armorPosition.end(); it++) { - cout << *it << endl; - }*/ + sort(fan_polar_angle.begin(), fan_polar_angle.end());//对扇叶的极坐标角度进行排序 + sort(armor_polar_angle.begin(), armor_polar_angle.end());//对装甲板的极坐标角度进行排序 int i, j = 0; - for (i = 0; i < fanPosition.size(); ++i) { - if (armorPosition.at(i) - fanPosition.at(j) < energy_part_param_.TWIN_ANGEL_MAX && armorPosition.at(i) - fanPosition.at(j) > -1 * energy_part_param_.TWIN_ANGEL_MAX) { + for (i = 0; i < fan_polar_angle.size(); ++i) { + if (armor_polar_angle.at(i) - fan_polar_angle.at(j) < energy_part_param_.TWIN_ANGEL_MAX + && armor_polar_angle.at(i) - fan_polar_angle.at(j) > -1 * energy_part_param_.TWIN_ANGEL_MAX) { j++; - continue; + continue;//若某个扇叶的极坐标角度与第j个装甲板的极坐标角度接近,则两者匹配成功 } else { - target_armor = armorPosition.at(j); + target_polar_angle = armor_polar_angle.at(j);//无法被匹配到的装甲板为待击打装甲板 for (const auto &armor : armors) { - float angle = static_cast(180 / PI * atan2(-1 * (armor.rect.center.y - cycle_center.y), (armor.rect.center.x - cycle_center.x))); - if(target_armor==angle){ - target_center = armor.rect.center; -// cout<<"target center: "<(180 / PI * atan2(-1 * (armor.rect.center.y - circle_center_point.y), + (armor.rect.center.x - circle_center_point.x))); + if(target_polar_angle == angle){ + target_point = armor.rect.center;//根据已经确定的目标装甲板极坐标角度,获得该装甲板的中心坐标 } } return; } } - target_armor = armorPosition.at(armorPosition.size() - 1); + target_polar_angle = armor_polar_angle.at(armor_polar_angle.size() - 1);//前几个扇叶都匹配到装甲板,则最后剩下的装甲板为目标 for (const auto &armor : armors) { - float angle = static_cast(180 / PI * atan2(-1 * (armor.rect.center.y - cycle_center.y), (armor.rect.center.x - cycle_center.x))); - if(target_armor == angle){ - target_center = armor.rect.center; -// cout<<"target center: "<(180 / PI * atan2(-1 * (armor.rect.center.y - circle_center_point.y), + (armor.rect.center.x - circle_center_point.x))); + if(target_polar_angle == angle){ + target_point = armor.rect.center;//根据已经确定的目标装甲板极坐标角度,获得该装甲板的中心坐标 } } diff --git a/energy/src/energy/get/gimble_rotation_get.cpp b/energy/src/energy/get/gimble_rotation_get.cpp index aaf68b2..c957e8c 100644 --- a/energy/src/energy/get/gimble_rotation_get.cpp +++ b/energy/src/energy/get/gimble_rotation_get.cpp @@ -10,6 +10,11 @@ using std::cout; using std::endl; using std::vector; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于操作手手动标定 +// --------------------------------------------------------------------------------------------------------------------- void Energy::changeMark() { if (mcuData.mark == 0 && last_mark == 1) { last_mark = mcuData.mark; @@ -32,41 +37,15 @@ void Energy::changeMark() { } + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于计算云台应当转到角度 +// --------------------------------------------------------------------------------------------------------------------- void Energy::gimbleRotation(){ - cv::Point2f real_hit_point; - stretch(hit_point, real_hit_point); - yaw_rotation = static_cast(180 / PI * atan2((attack_distance * tan(origin_yaw * PI / 180) - real_hit_point.x), attack_distance)); - pitch_rotation = static_cast(180 / PI * atan2((attack_distance*tan(origin_pitch*PI/180)-real_hit_point.y), attack_distance)); - - /*origin_yaw = mark_yaw; - origin_pitch = mark_pitch;*/ - -// if(position_mode == 1){ -// yaw_rotation = static_cast(180 / PI * atan2((attack_distance * tan(origin_yaw * PI / 180) - real_hit_point.x), attack_distance)); -// pitch_rotation = static_cast(180 / PI * atan2((attack_distance*tan(origin_pitch*PI/180)-real_hit_point.y), attack_distance)); -// } -// else if(position_mode == 2){ -// yaw_rotation = static_cast(180 / PI * atan2((attack_distance * tan(origin_yaw * PI / 180) - real_hit_point.x), attack_distance)); -// pitch_rotation = static_cast(180 / PI * atan2((attack_distance*tan(origin_pitch*PI/180)-real_hit_point.y), attack_distance)); -// } -// else if(position_mode == 3){ -// yaw_rotation = static_cast(180 / PI * atan2((attack_distance * tan(origin_yaw * PI / 180) - real_hit_point.x), attack_distance)); -// pitch_rotation = static_cast(180 / PI * atan2((attack_distance*tan(origin_pitch*PI/180)-real_hit_point.y), attack_distance)); -// } -// else if(position_mode == 4){ -// yaw_rotation = static_cast(180 / PI * atan2((attack_distance * tan(origin_yaw * PI / 180) - real_hit_point.x), attack_distance)); -// pitch_rotation = static_cast(180 / PI * atan2((attack_distance*tan(origin_pitch*PI/180)-real_hit_point.y), attack_distance)); -// } -// else if(position_mode == 5){ -// yaw_rotation = static_cast(180 / PI * atan2((attack_distance * tan(origin_yaw * PI / 180) - real_hit_point.x), attack_distance)); -// pitch_rotation = static_cast(180 / PI * atan2((attack_distance*tan(origin_pitch*PI/180)-real_hit_point.y), attack_distance)); -// } -// else if(position_mode == 6){ -// yaw_rotation = static_cast(180 / PI * atan2((attack_distance * tan(origin_yaw * PI / 180) - real_hit_point.x), attack_distance)); -// pitch_rotation = static_cast(180 / PI * atan2((attack_distance*tan(origin_pitch*PI/180)-real_hit_point.y), attack_distance)); -// } -// else{ -// pitch_rotation = 5.5+static_cast(180 / PI * atan2((attack_distance*tan(mark_pitch*PI/180)-real_hit_point.y), attack_distance)); -// } - + cv::Point2f real_predict_point;//计算在真实世界中的预测点位,进而计算云台的旋转角度 + stretch(predict_point, real_predict_point); + yaw_rotation = static_cast(180 / PI * + atan2((attack_distance * tan(origin_yaw * PI / 180) - real_predict_point.x), attack_distance)); + pitch_rotation = static_cast(180 / PI * + atan2((attack_distance*tan(origin_pitch*PI/180)-real_predict_point.y), attack_distance)); } \ No newline at end of file diff --git a/energy/src/energy/get/hit_point_get.cpp b/energy/src/energy/get/hit_point_get.cpp deleted file mode 100644 index 9394d7c..0000000 --- a/energy/src/energy/get/hit_point_get.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// Created by xixiliadorabarry on 1/24/19. -// - -#include "energy/energy.h" -#include "energy/constant.h" - -using namespace cv; -using std::cout; -using std::endl; -using std::vector; - -void Energy::getHitPoint(){ - int rad = 60; - if(energy_part_rotation==1) rotate(rad, radius, cycle_center, target_center, hit_point); - if(energy_part_rotation==-1) rotate(-rad, radius, cycle_center, target_center, hit_point); -// int hit_position = 1000; -// int limit_angle = 6; -// int angle_interval = 60; -// -// if(energy_part_rotation==1){ -// if(target_armor>=0 && target_armor<=limit_angle){ -// hit_point.x = cycle_center.x + static_cast(radius / 2); -// hit_point.y = cycle_center.y + static_cast(radius * sqrt(3) / 2); -// hit_position = -1*angle_interval; -// position_mode = 1; -// } -// else if(target_armor>=angle_interval && target_armor(radius); -// hit_point.y = cycle_center.y; -// hit_position = 0; -// position_mode = 2; -// } -// else if(target_armor>=angle_interval*2 && target_armor<=angle_interval*2+limit_angle){ -// hit_point.x = cycle_center.x + static_cast(radius / 2); -// hit_point.y = cycle_center.y - static_cast(radius * sqrt(3) / 2); -// hit_position = angle_interval; -// position_mode = 3; -// } -// else if(target_armor>=-180 && target_armor<-180+limit_angle){ -// hit_point.x = cycle_center.x - static_cast(radius / 2); -// hit_point.y = cycle_center.y - static_cast(radius * sqrt(3) / 2); -// hit_position = 2*angle_interval; -// position_mode = 4; -// } -// else if(target_armor>=-2*angle_interval&&target_armor<-2*angle_interval+limit_angle){ -// hit_point.x = cycle_center.x - static_cast(radius); -// hit_point.y = cycle_center.y; -// hit_position = 180; -// position_mode = 5; -// } -// else if(target_armor>=-1*angle_interval&&target_armor<-1*angle_interval+limit_angle) { -// hit_point.x = cycle_center.x - static_cast(radius / 2); -// hit_point.y = cycle_center.y + static_cast(radius * sqrt(3) / 2); -// hit_position = -2 * angle_interval; -// position_mode = 6; -// } -// else{ -// position_mode = 0; -// return; -// } -// } -// -// if(energy_part_rotation==-1){ -// if(target_armor>=0 && target_armor<=limit_angle){ -// hit_point.x = cycle_center.x - static_cast(radius / 2); -// hit_point.y = cycle_center.y - static_cast(radius * sqrt(3) / 2); -// hit_position = 2*angle_interval; -// position_mode = 1; -// } -// else if(target_armor>=angle_interval && target_armor(radius); -// hit_point.y = cycle_center.y; -// hit_position = 180; -// position_mode = 2; -// } -// else if(target_armor>=angle_interval*2 && target_armor<=angle_interval*2+limit_angle){ -// hit_point.x = cycle_center.x - static_cast(radius / 2); -// hit_point.y = cycle_center.y + static_cast(radius * sqrt(3) / 2); -// hit_position = -2*angle_interval; -// position_mode = 3; -// } -// else if(target_armor>=-180 && target_armor<-180+limit_angle){ -// hit_point.x = cycle_center.x + static_cast(radius / 2); -// hit_point.y = cycle_center.y + static_cast(radius * sqrt(3) / 2); -// hit_position = -1*angle_interval; -// position_mode = 4; -// } -// else if(target_armor>=-2*angle_interval&&target_armor<-2*angle_interval+limit_angle){ -// hit_point.x = cycle_center.x + static_cast(radius); -// hit_point.y = cycle_center.y; -// hit_position = 0; -// position_mode = 5; -// } -// else if(target_armor>=-1*angle_interval&&target_armor<-1*angle_interval+limit_angle){ -// hit_point.x = cycle_center.x + static_cast(radius / 2); -// hit_point.y = cycle_center.y - static_cast(radius * sqrt(3) / 2); -// hit_position = angle_interval; -// position_mode = 6; -// } -// else{ -// position_mode = 0; -// return; -// } -// } -// -// if(position_mode!=0 && position_mode!=last_position_mode){ -// last_position_mode = position_mode; -// isSendTarget = true; -// //cout<<"hit position: "< 330){ - last_target_armor = target_armor; - return false; - } - else{ - last_target_armor = target_armor; - return true; - } -} \ No newline at end of file diff --git a/energy/src/energy/get/position_get.cpp b/energy/src/energy/get/position_get.cpp index 5a409d9..6ca5ddb 100644 --- a/energy/src/energy/get/position_get.cpp +++ b/energy/src/energy/get/position_get.cpp @@ -8,42 +8,50 @@ using std::cout; using std::endl; using std::vector; -void Energy::getFanPosition(std::vector &fanPosition, const std::vector &fans, cv::Point cycle_center, double radius) { + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于获得图像中所有扇叶的当前极坐标角度 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::getFanPosition() { if (radius == 0)return; for (const auto &fan : fans) { - float angle = static_cast(180 / PI * atan2(-1 * (fan.rect.center.y - cycle_center.y), (fan.rect.center.x - cycle_center.x))); - fanPosition.push_back(angle); + float angle = static_cast(180 / PI * atan2(-1 * (fan.rect.center.y - circle_center_point.y), + (fan.rect.center.x - circle_center_point.x))); + fan_polar_angle.push_back(angle); } // cout << "fanPosition.size() = " << fanPosition.size() << '\t' << endl; } -void Energy::getArmorPosition(std::vector &armorPosition, const std::vector &armors, cv::Point cycle_center, double radius) { + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于获得图像中所有装甲板的当前极坐标角度 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::getArmorPosition() { if (radius == 0)return; for (const auto &armor : armors) { - float angle = static_cast(180 / PI * atan2(-1 * (armor.rect.center.y - cycle_center.y), (armor.rect.center.x - cycle_center.x))); - armorPosition.push_back(angle); + float angle = static_cast(180 / PI * atan2(-1 * (armor.rect.center.y - circle_center_point.y), + (armor.rect.center.x - circle_center_point.x))); + armor_polar_angle.push_back(angle); } // cout << "armorPosition.size() = " << armorPosition.size() << '\t' << endl; } -void Energy::getFirstArmorCenters(vector &armors, std::vector &first_armor_centers) -{ - for (const auto &armor : armors) { - if (armors.size() < 2)first_armor_centers.push_back(armor.rect.center); - } -} + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于存储图像中所有装甲板的中心坐标,以便后续最小二乘法计算圆心和半径 +// --------------------------------------------------------------------------------------------------------------------- void Energy::getAllArmorCenters() { for (const auto &armor : armors) { all_armor_centers.push_back(armor.rect.center); } -} - -void Energy::getPosition(cv::Point point, double &angle){ - if (radius == 0)return; - angle = (180 / PI * atan2(-1 * (point.y - cycle_center.y), (point.x - cycle_center.x))); -} +} \ No newline at end of file diff --git a/energy/src/energy/param_init.cpp b/energy/src/energy/param_init.cpp index 5ca1d9f..dc48ae4 100644 --- a/energy/src/energy/param_init.cpp +++ b/energy/src/energy/param_init.cpp @@ -10,34 +10,22 @@ using std::endl; using std::vector; void Energy::initEnergy() { - isSendTarget = false; isMark = false; fans_cnt = 0; armors_cnt = 0; centerRs_cnt = 0; - cycle_center = Point(0, 0); - target_center = Point(0, 0); - last_target_center = Point(0, 0); - hit_point = Point(0, 0); - target_position = -1000; - last_target_position = -1000; - last_hit_position = 20000; - target_armor = -1000; - last_target_armor = -1000; + circle_center_point = Point(0, 0); + target_point = Point(0, 0); + predict_point = Point(0, 0); + target_polar_angle = -1000; + last_target_polar_angle = -1000; radius = 0; - - // ally_color = ALLY_RED; - energy_part_rotation = CLOCKWISE; + energy_rotation_direction = CLOCKWISE; attack_distance = ATTACK_DISTANCE; - count = 1; last_fans_cnt = 0; last_armors_cnt = 0; send_cnt = 0; - - //rectified_focal_length = 1000; - //theta = 0; - //phi = 0; yaw_rotation = 0; pitch_rotation = 0; last_mark = 0; @@ -48,30 +36,16 @@ void Energy::initEnergy() { blue_origin_pitch = 15.688477; target_cnt = 0; - target_cnt_flag = true; - - isLeftVertexFound = -1; - isTopVertexFound = -1; - isRightVertexFound = -1; - isBottomVertexFound = -1; - - left = Point(640, 480); - right = Point(0, 0); - top = Point(640, 480); - bottom = Point(0, 0); - - position_mode = 0; - last_position_mode = 0; - energy_rotation_init = false; + predict_rad = 20; fans.clear(); armors.clear(); centerRs.clear(); - fanPosition.clear(); - armorPosition.clear(); - Armor_center.clear(); - first_armor_centers.clear(); + + fan_polar_angle.clear(); + armor_polar_angle.clear(); + all_armor_centers.clear(); clockwise_rotation_init_cnt = 0; @@ -116,37 +90,27 @@ void Energy::initEnergyPartParam() { energy_part_param_.CENTER_R_CONTOUR_HW_RATIO_MIN = 1; energy_part_param_.TWIN_ANGEL_MAX = 10; - - lift_height_.LIFT_0 = 0; - lift_height_.LIFT_30 = 0; - lift_height_.LIFT_60 = 0; - lift_height_.LIFT_90 = 10; - lift_height_.LIFT_minus_30 = 0; - lift_height_.LIFT_minus_60 = 0; - lift_height_.LIFT_minus_90 = 0; - } void Energy::initRotation() { - target_position = target_armor; -// cout << "target position: " << target_position << '\t' << "last target position: " << last_target_position << endl; - if (target_position >= -180 && last_target_position >= -180 && fabs(target_position - last_target_position) < 30) { - if (target_position < last_target_position) clockwise_rotation_init_cnt++; - else if (target_position > last_target_position) anticlockwise_rotation_init_cnt++; + if (target_polar_angle >= -180 && last_target_polar_angle >= -180 + && fabs(target_polar_angle - last_target_polar_angle) < 30) { + //target_polar_angle和last_target_polar_angle的初值均为1000,大于-180表示刚开始几帧不要 + //若两者比较接近,则说明没有切换目标,因此可以用于顺逆时针的判断 + if (target_polar_angle < last_target_polar_angle) clockwise_rotation_init_cnt++; + else if (target_polar_angle > last_target_polar_angle) anticlockwise_rotation_init_cnt++; } - + //由于刚开始圆心判断不准,角度变化可能计算有误,因此需要在角度正向或逆向变化足够大时才可确定是否为顺逆时针 if (clockwise_rotation_init_cnt == 30) { - energy_part_rotation = CLOCKWISE; - cout << "rotation: " << energy_part_rotation << endl; + energy_rotation_direction = CLOCKWISE;//顺时针变化30次,确定为顺时针 + cout << "rotation: " << energy_rotation_direction << endl; energy_rotation_init = false; } else if (anticlockwise_rotation_init_cnt == 30) { - energy_part_rotation = ANTICLOCKWISE; - cout << "rotation: " << energy_part_rotation << endl; + energy_rotation_direction = ANTICLOCKWISE;//逆时针变化30次,确定为顺时针 + cout << "rotation: " << energy_rotation_direction << endl; energy_rotation_init = false; } -// else cout << clockwise_rotation_init_cnt <<'\t'<0)showFanContours("fan",src,fans); +// if(fans_cnt>0)showFanContours("fan",src); // fans_cnt=0; armors_cnt = findArmor(src, last_armors_cnt); // cout<<"armors_cnt: "<0) showArmorContours("armor",src,armors); +// if(armors_cnt>0) showArmorContours("armor",src); if(armors_cnt>0||fans_cnt>0) showBothContours("Both",src); centerRs_cnt = findCenterR(src); if(centerRs_cnt>0)showCenterRContours("R",src); - if(armors_cnt>=4 && fans_cnt>=3) { + if(armors_cnt>=4 && fans_cnt>=3) { FILE *fp = fopen(PROJECT_DIR"/Mark/mark.txt", "w"); if (fp) { fprintf(fp, "yaw: %f, pitch: %f\n", origin_yaw, origin_pitch); @@ -69,75 +65,32 @@ int Energy::run(cv::Mat &src){ fclose(fp_best); } } -// cout<<"armors_cnt: "<0)hit_point = gimble_zero_points.at(0).rect.center; -*/ - diff --git a/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp b/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp index 4dd180a..3de33d8 100644 --- a/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp +++ b/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp @@ -7,22 +7,10 @@ using namespace std; bool sendTarget(Serial& serial, float x, float y, float z) { static short x_tmp, y_tmp, z_tmp; -// static time_t last_time = time(nullptr); -// static int fps; uint8_t buff[8]; - -// time_t t = time(nullptr); -// if (last_time != t) { -// last_time = t; -// std::cout << "fps:" << fps << ", (" << x << "," << y << "," << z << ")" << std::endl; -// fps = 0; -// } -// fps += 1; - x_tmp = static_cast(x * (32768 - 1) / 100); y_tmp = static_cast(y * (32768 - 1) / 100); z_tmp = static_cast(z * (32768 - 1) / 1000); - buff[0] = 's'; buff[1] = static_cast((x_tmp >> 8) & 0xFF); buff[2] = static_cast((x_tmp >> 0) & 0xFF); @@ -31,14 +19,11 @@ bool sendTarget(Serial& serial, float x, float y, float z) { buff[5] = static_cast((z_tmp >> 8) & 0xFF); buff[6] = static_cast((z_tmp >> 0) & 0xFF); buff[7] = 'e'; - return serial.WriteData(buff, sizeof(buff)); } void Energy::sendTargetByUart(float x, float y, float z) { -// if(!changeTarget()){ -// return; -// } + if(changeTarget())target_cnt++; sendTarget(serial, x, y, z); send_cnt+=1; // cout<<"send"< &fans) { +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于显示图像中所有扇叶 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::showFanContours(std::string windows_name, const cv::Mat src) { if (src.empty())return; static Mat image2show; @@ -33,7 +36,10 @@ void Energy::showFanContours(std::string windows_name, const cv::Mat &src, const imshow(windows_name, image2show); } -void Energy::showArmorContours(std::string windows_name, const cv::Mat &src, const std::vector &armors) { +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于显示图像中所有装甲板 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::showArmorContours(std::string windows_name, const cv::Mat src) { if (src.empty())return; static Mat image2show; @@ -58,6 +64,47 @@ void Energy::showArmorContours(std::string windows_name, const cv::Mat &src, con imshow(windows_name, image2show); } +void Energy::showBothContours(std::string windows_name, const cv::Mat src) { + if (src.empty())return; + static Mat image2show; + if(src.type() == CV_8UC1) // 黑白图像 + { + cvtColor(src, image2show, COLOR_GRAY2RGB); + + } else if (src.type() == CV_8UC3) //RGB 彩色 + { + image2show = src.clone(); + } + //cvtColor(image2show, image2show, COLOR_GRAY2RGB); + for (const auto &fan : fans) + { + Point2f vertices[4]; //定义矩形的4个顶点 + fan.rect.points(vertices); //计算矩形的4个顶点 + for (int i = 0; i < 4; i++) + line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(255, 0, 0), 4); +// cout << "fan" << fan.rect.size.height <<'\t'<< fan.rect.size.width << '\t' << '\t'; +// cout << endl; + } + for (const auto &armor : armors) + { + Point2f vertices[4]; //定义矩形的4个顶点 + armor.rect.points(vertices); //计算矩形的4个顶点 + for (int i = 0; i < 4; i++) + line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(0, 0, 255), 4); +// cout << "armor center: "<< armor.rect.center << '\t'<< "armor angle: "<< armor.rect.angle; +// cout << endl; + + cv::Point2f point = armor.rect.center; + cv::circle(image2show, point, 2, cv::Scalar(0, 0, 255));//在图像中画出特征点,2是圆的半径 + + } + + imshow(windows_name, image2show); +} + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于显示图像中所有可能的风车中心候选区R +// --------------------------------------------------------------------------------------------------------------------- void Energy::showCenterRContours(std::string windows_name, const cv::Mat src) { if (src.empty())return; static Mat image2show; @@ -83,42 +130,9 @@ void Energy::showCenterRContours(std::string windows_name, const cv::Mat src) { imshow(windows_name, image2show); } -void Energy::showBothContours(std::string windows_name, const cv::Mat src) { - if (src.empty())return; - static Mat image2show; - if(src.type() == CV_8UC1) // 黑白图像 - { - cvtColor(src, image2show, COLOR_GRAY2RGB); - - } else if (src.type() == CV_8UC3) //RGB 彩色 - { - image2show = src.clone(); - } - //cvtColor(image2show, image2show, COLOR_GRAY2RGB); - for (const auto &fan : fans) - { - Point2f vertices[4]; //定义矩形的4个顶点 - fan.rect.points(vertices); //计算矩形的4个顶点 - for (int i = 0; i < 4; i++) - line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(255, 0, 0), 4); -// cout << "fan" << fan.rect.size.height <<'\t'<< fan.rect.size.width << '\t' << '\t'; -// cout << endl; - } - for (const auto &armor : armors) - { - Point2f vertices[4]; //定义矩形的4个顶点 - armor.rect.points(vertices); //计算矩形的4个顶点 - for (int i = 0; i < 4; i++) - line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(0, 0, 255), 4); -// cout << "armor center: "<< armor.rect.center << '\t'<< "armor angle: "<< armor.rect.angle; -// cout << endl; - - cv::Point2f point = armor.rect.center; - cv::circle(image2show, point, 2, cv::Scalar(0, 0, 255));//在图像中画出特征点,2是圆的半径 - - } - - imshow(windows_name, image2show); -} +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于显示图像中所有扇叶和装甲板 +// --------------------------------------------------------------------------------------------------------------------- + diff --git a/energy/src/energy/tool/tool.cpp b/energy/src/energy/tool/tool.cpp index 24ba1e2..cc6f402 100644 --- a/energy/src/energy/tool/tool.cpp +++ b/energy/src/energy/tool/tool.cpp @@ -20,69 +20,27 @@ void Energy::extract(cv::Mat &src){ imshow("extract", src); } -void Energy::saveFourPoints(std::vector &FourPoints, cv::Point point_1, cv::Point point_2, cv::Point point_3, cv::Point point_4) { - FourPoints.push_back(point_1); - FourPoints.push_back(point_2); - FourPoints.push_back(point_3); - FourPoints.push_back(point_4); -} - -void Energy::savePoint2f(std::vector &point_save, cv::Point point) { - point_save.push_back(static_cast(point)); -} - -double Energy::pointDistance(cv::Point point_1, cv::Point point_2){ - double distance = 0; - distance = sqrt(pow(static_cast(point_1.x - point_2.x),2) - + pow(static_cast(point_1.y - point_2.y),2)); - return distance; -} - -void Energy::rotate(double rad, double radius, cv::Point center, cv::Point point_old, cv::Point &point_new) { +void Energy::rotate() { int x1, x2, y1, y2; // 为了减小强制转换的误差 - x1 = center.x * 100; - x2 = point_old.x * 100; - y1 = center.y * 100; - y2 = point_old.y * 100; + x1 = circle_center_point.x * 100; + x2 = target_point.x * 100; + y1 = circle_center_point.y * 100; + y2 = target_point.y * 100; - point_new.x = static_cast((x1 + (x2 - x1)*cos(-rad * d2r) - (y1 - y2)*sin(-rad * d2r))/100); - point_new.y = static_cast((y1 - (x2 - x1)*sin(-rad * d2r) - (y1 - y2)*cos(-rad * d2r))/100); + predict_point.x = static_cast((x1 + (x2 - x1)*cos(-predict_rad * d2r) - (y1 - y2)*sin(-predict_rad * d2r))/100); + predict_point.y = static_cast((y1 - (x2 - x1)*sin(-predict_rad * d2r) - (y1 - y2)*cos(-predict_rad * d2r))/100); } void Energy::stretch(cv::Point point_1, cv::Point2f &point_2){ - if(point_1==cycle_center){ - cout<<"stretch wrong!"<( ARMOR_CENTER_TO_CYCLE_CENTER * x_0 / r_0); point_2.y = static_cast( ARMOR_CENTER_TO_CYCLE_CENTER * y_0 / r_0); -} - -void Energy::cycle(cv::Point p1, cv::Point p2, cv::Point p3, cv::Point ¢er, double &radius){ - double x1, y1, x2, y2, x3, y3; - double a, b, c, g, e, f; - x1 = p1.x; - y1 = p1.y; - x2 = p2.x; - y2 = p2.y; - x3 = p3.x; - y3 = p3.y; - - //三点确定圆的方程:(2x2-2x1)X+(2y2-2y1)Y=x2²-x1²+y2²-y1²;(2x3-2x2)X+(2y3-2y2)Y=x3²-x2²+y3²-y2² - e = 2 * (x2 - x1); - f = 2 * (y2 - y1); - g = x2 * x2 - x1 * x1 + y2 * y2 - y1 * y1; - a = 2 * (x3 - x2); - b = 2 * (y3 - y2); - c = x3 * x3 - x2 * x2 + y3 * y3 - y2 * y2; - cycle_center.x = static_cast((g*b - c * f) / (e*b - a * f)); - cycle_center.y = static_cast((a*g - c * e) / (a*f - b * e)); - radius = sqrt((cycle_center.x - x1)*(cycle_center.x - x1) + (cycle_center.y - y1)*(cycle_center.y - y1)); - -} - +} \ No newline at end of file diff --git a/main.cpp b/main.cpp index 63392b7..c989982 100644 --- a/main.cpp +++ b/main.cpp @@ -96,8 +96,6 @@ int main(int argc, char *argv[]) { ArmorFinder armorFinder(mcuData.enemy_color, serial, PROJECT_DIR"/tools/para/", mcuData.use_classifier); Energy energy(serial, mcuData.enemy_color); -// energy.setAllyColor(ally_color); - energy.setRotation(CLOCKWISE); bool ok = true; cout<<"start running"< Date: Fri, 5 Jul 2019 15:53:12 +0800 Subject: [PATCH 04/12] energy changed --- energy/include/energy/constant.h | 2 +- energy/include/energy/energy.h | 8 ++- energy/include/energy/param_struct_define.h | 9 --- .../src/energy/calculate/cycle_calculate.cpp | 63 ------------------- energy/src/energy/calibrate/split.cpp | 11 ++++ energy/src/energy/calibrate/structing.cpp | 9 +++ energy/src/energy/energy.cpp | 18 +++++- energy/src/energy/find/target_finder.cpp | 7 ++- energy/src/energy/get/gimble_rotation_get.cpp | 2 +- energy/src/energy/get/position_get.cpp | 57 ----------------- energy/src/energy/mark/mark.cpp | 31 +++++++++ energy/src/energy/param_init.cpp | 19 ++++-- energy/src/energy/run.cpp | 34 +++------- .../send_target_by_uart.cpp | 10 +++ energy/src/energy/tool/tool.cpp | 15 +++++ 15 files changed, 127 insertions(+), 168 deletions(-) delete mode 100644 energy/src/energy/calculate/cycle_calculate.cpp delete mode 100644 energy/src/energy/get/position_get.cpp create mode 100644 energy/src/energy/mark/mark.cpp diff --git a/energy/include/energy/constant.h b/energy/include/energy/constant.h index 802c421..ea661e9 100644 --- a/energy/include/energy/constant.h +++ b/energy/include/energy/constant.h @@ -17,7 +17,7 @@ const int SRC_HEIGHT = 240; const double PI = 3.1415926; const int CLOCKWISE = 1; const int ANTICLOCKWISE = -1; -const float ATTACK_DISTANCE = 770;//cm +const float ATTACK_DISTANCE = 718;//cm const double WHOLE_FAN = 80;//cm const double ARMOR_CENTER_TO_CYCLE_CENTER = 75;//cm //const double ARMOR_CENTER_TO_CYCLE_CENTER = 71;//cm diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index 9aac222..a358a2d 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -89,17 +89,19 @@ private: void showBothContours(std::string windows_name, const cv::Mat src);//显示扇叶和装甲板 void showCenterRContours(std::string windows_name, const cv::Mat src);//显示风车中心候选区R - void getFanPosition();//获取扇叶极坐标角度 - void getArmorPosition();//获取装甲板极坐标角度 + void getFanPolarAngle();//获取扇叶极坐标角度 + void getArmorPolarAngle();//获取装甲板极坐标角度 void getAllArmorCenters();//记录所有装甲板中心坐标 - void cycleLeastFit();//利用所有记录的装甲板中心最小二乘法计算圆心和半径 + void circleLeastFit();//利用所有记录的装甲板中心最小二乘法计算圆心和半径 void findTarget();//获取目标装甲板的极坐标角度和装甲板中心坐标 void rotate();//获取预测点位 void stretch(cv::Point point_1, cv::Point2f &point_2);//将像素差转换为实际距离差 + void writeDownMark();//记录操作手标定的云台初始角度 + void getPredictPoint();//获取预测点位 bool changeTarget();//判断目标是否改变 void changeMark();//操作手手动修改标定值 diff --git a/energy/include/energy/param_struct_define.h b/energy/include/energy/param_struct_define.h index 8b05dc1..587f05c 100644 --- a/energy/include/energy/param_struct_define.h +++ b/energy/include/energy/param_struct_define.h @@ -22,9 +22,6 @@ struct EnergyPart { }; struct EnergyPartParam { - double RPM; - double HIT_TIME; - int GRAY_THRESH; int SPLIT_GRAY_THRESH; int FAN_GRAY_THRESH; @@ -60,12 +57,6 @@ struct EnergyPartParam { float TWIN_ANGEL_MAX; }; -typedef struct GMAngle_t{ - float yaw; - float pitch; -}GMAngle_t; - -extern GMAngle_t aim; #endif //PARAM_STRUCT_DEFINE_H diff --git a/energy/src/energy/calculate/cycle_calculate.cpp b/energy/src/energy/calculate/cycle_calculate.cpp deleted file mode 100644 index 5b75bed..0000000 --- a/energy/src/energy/calculate/cycle_calculate.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// -// Created by xixiliadorabarry on 1/24/19. -// -#include "energy/energy.h" - -using namespace cv; -using std::cout; -using std::endl; -using std::vector; - - - - -//---------------------------------------------------------------------------------------------------------------------- -// 此函数通过最小二乘法计算大风车圆心和半径 -// --------------------------------------------------------------------------------------------------------------------- -void Energy::cycleLeastFit() -{ - circle_center_point.x = 0; - circle_center_point.y = 0; - radius = 0.0f; - if (all_armor_centers.size() < 3) - { -// cout<<"Cannot calculate a circle"<(all_armor_centers.size()); - for (int i = 0; i < N; i++) - { - double x = all_armor_centers.at(i).x; - double y = all_armor_centers.at(i).y; - double x2 = x * x; - double y2 = y * y; - sum_x += x; - sum_y += y; - sum_x2 += x2; - sum_y2 += y2; - sum_x3 += x2 * x; - sum_y3 += y2 * y; - sum_xy += x * y; - sum_x1y2 += x * y2; - sum_x2y1 += x2 * y; - } - double C, D, E, G, H; - double a, b, c; - C = N * sum_x2 - sum_x * sum_x; - D = N * sum_xy - sum_x * sum_y; - E = N * sum_x3 + N * sum_x1y2 - (sum_x2 + sum_y2) * sum_x; - G = N * sum_y2 - sum_y * sum_y; - H = N * sum_x2y1 + N * sum_y3 - (sum_x2 + sum_y2) * sum_y; - a = (H * D - E * G) / (C * G - D * D); - b = (H * C - E * D) / (D * D - G * C); - c = -(a * sum_x + b * sum_y + sum_x2 + sum_y2) / N; - circle_center_point.x = static_cast(a / (-2)); - circle_center_point.y = static_cast(b / (-2)); - radius = sqrt(a * a + b * b - 4 * c) / 2; -// cout << "The cycle center is: " << cycle_center << endl; -// cout << "The radius is: " << radius << endl; -} diff --git a/energy/src/energy/calibrate/split.cpp b/energy/src/energy/calibrate/split.cpp index c4ab981..3c6dc4b 100644 --- a/energy/src/energy/calibrate/split.cpp +++ b/energy/src/energy/calibrate/split.cpp @@ -8,6 +8,11 @@ using std::cout; using std::endl; using std::vector; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于分离拜耳阵列 +// --------------------------------------------------------------------------------------------------------------------- void Energy::splitBayerBG(cv::Mat src, cv::Mat &blue, cv::Mat &red) { uchar* data; uchar* bayer_data[2]; @@ -24,6 +29,12 @@ void Energy::splitBayerBG(cv::Mat src, cv::Mat &blue, cv::Mat &red) { } } } + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数对图像进行通道分离处理 +// --------------------------------------------------------------------------------------------------------------------- void Energy::imagePreprocess(cv::Mat &src) { if(src.type() == CV_8UC1) { diff --git a/energy/src/energy/calibrate/structing.cpp b/energy/src/energy/calibrate/structing.cpp index 97b2721..5b80be8 100644 --- a/energy/src/energy/calibrate/structing.cpp +++ b/energy/src/energy/calibrate/structing.cpp @@ -8,6 +8,10 @@ using std::cout; using std::endl; using std::vector; + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数对图像进行闭运算操作 +// --------------------------------------------------------------------------------------------------------------------- void Energy::StructingElementClose(cv::Mat &src,int length, int width){ if (src.empty())return; //threshold(src, src, energy_part_param_.CAMERA_GRAY_THRESH, 255, THRESH_BINARY); @@ -15,6 +19,11 @@ void Energy::StructingElementClose(cv::Mat &src,int length, int width){ morphologyEx(src, src, MORPH_CLOSE, element); } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数对图像进行腐蚀与膨胀操作 +// --------------------------------------------------------------------------------------------------------------------- void Energy::StructingElementErodeDilate(cv::Mat &src) { cv::Mat src_out, src_out_out; Mat element_dilate_1 = getStructuringElement(MORPH_RECT, Size(3, 3)); diff --git a/energy/src/energy/energy.cpp b/energy/src/energy/energy.cpp index a25d52a..a311ec8 100644 --- a/energy/src/energy/energy.cpp +++ b/energy/src/energy/energy.cpp @@ -9,8 +9,10 @@ using std::cout; using std::endl; using std::vector; -extern uint8_t last_state; +//---------------------------------------------------------------------------------------------------------------------- +// 此函数为能量机关构造函数,只要程序不重启就不会重新构造 +// --------------------------------------------------------------------------------------------------------------------- Energy::Energy(Serial &u, uint8_t &color):serial(u),ally_color(color), src_blue(SRC_HEIGHT, SRC_WIDTH, CV_8UC1), src_red(SRC_HEIGHT, SRC_WIDTH, CV_8UC1) @@ -18,7 +20,7 @@ Energy::Energy(Serial &u, uint8_t &color):serial(u),ally_color(color), initEnergy(); initEnergyPartParam(); - save_new_mark = true; + save_new_mark = false; if(ally_color == ALLY_RED){ origin_yaw = red_origin_yaw; @@ -33,14 +35,24 @@ Energy::Energy(Serial &u, uint8_t &color):serial(u),ally_color(color), } } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数为能量机关析构函数,设置为默认 +// --------------------------------------------------------------------------------------------------------------------- Energy::~Energy() = default; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数为能量机关再初始化函数,如果未重启程序但重新进入能量机关,则会进行初始化,但不会将save_new_mark置为false +// --------------------------------------------------------------------------------------------------------------------- void Energy::setEnergyRotationInit() { initEnergy(); initEnergyPartParam(); energy_rotation_init = true; - if(!save_new_mark){ + if(save_new_mark){ FILE *fp = fopen(PROJECT_DIR"/Mark/mark.txt", "r"); if(fp){ fscanf(fp,"%f %f",&origin_yaw,&origin_pitch); diff --git a/energy/src/energy/find/target_finder.cpp b/energy/src/energy/find/target_finder.cpp index 0cbef27..d2dce40 100644 --- a/energy/src/energy/find/target_finder.cpp +++ b/energy/src/energy/find/target_finder.cpp @@ -8,6 +8,11 @@ using std::cout; using std::endl; using std::vector; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于匹配扇叶和装甲板,找到目标装甲板,计算其极坐标角度和中心坐标 +// --------------------------------------------------------------------------------------------------------------------- void Energy::findTarget() { if (fan_polar_angle.size() >= armor_polar_angle.size()) return;//扇叶多于装甲板,识别错误 if (armor_polar_angle.empty())return;//找不到扇叶,识别错误 @@ -26,7 +31,7 @@ void Energy::findTarget() { if (armor_polar_angle.at(i) - fan_polar_angle.at(j) < energy_part_param_.TWIN_ANGEL_MAX && armor_polar_angle.at(i) - fan_polar_angle.at(j) > -1 * energy_part_param_.TWIN_ANGEL_MAX) { j++; - continue;//若某个扇叶的极坐标角度与第j个装甲板的极坐标角度接近,则两者匹配成功 + continue;//若第i个扇叶的极坐标角度与第j个装甲板的极坐标角度接近,则两者匹配成功,i与j都加1 } else { target_polar_angle = armor_polar_angle.at(j);//无法被匹配到的装甲板为待击打装甲板 diff --git a/energy/src/energy/get/gimble_rotation_get.cpp b/energy/src/energy/get/gimble_rotation_get.cpp index c957e8c..d300c30 100644 --- a/energy/src/energy/get/gimble_rotation_get.cpp +++ b/energy/src/energy/get/gimble_rotation_get.cpp @@ -39,7 +39,7 @@ void Energy::changeMark() { //---------------------------------------------------------------------------------------------------------------------- -// 此函数用于计算云台应当转到角度 +// 此函数用于计算云台应当转到的角度 // --------------------------------------------------------------------------------------------------------------------- void Energy::gimbleRotation(){ cv::Point2f real_predict_point;//计算在真实世界中的预测点位,进而计算云台的旋转角度 diff --git a/energy/src/energy/get/position_get.cpp b/energy/src/energy/get/position_get.cpp deleted file mode 100644 index 6ca5ddb..0000000 --- a/energy/src/energy/get/position_get.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// Created by xixiliadorabarry on 1/24/19. -// -#include "energy/energy.h" - -using namespace cv; -using std::cout; -using std::endl; -using std::vector; - - - - -//---------------------------------------------------------------------------------------------------------------------- -// 此函数用于获得图像中所有扇叶的当前极坐标角度 -// --------------------------------------------------------------------------------------------------------------------- -void Energy::getFanPosition() { - if (radius == 0)return; - for (const auto &fan : fans) - { - float angle = static_cast(180 / PI * atan2(-1 * (fan.rect.center.y - circle_center_point.y), - (fan.rect.center.x - circle_center_point.x))); - fan_polar_angle.push_back(angle); - } -// cout << "fanPosition.size() = " << fanPosition.size() << '\t' << endl; -} - - - - -//---------------------------------------------------------------------------------------------------------------------- -// 此函数用于获得图像中所有装甲板的当前极坐标角度 -// --------------------------------------------------------------------------------------------------------------------- -void Energy::getArmorPosition() { - if (radius == 0)return; - for (const auto &armor : armors) - { - float angle = static_cast(180 / PI * atan2(-1 * (armor.rect.center.y - circle_center_point.y), - (armor.rect.center.x - circle_center_point.x))); - armor_polar_angle.push_back(angle); - - } -// cout << "armorPosition.size() = " << armorPosition.size() << '\t' << endl; -} - - - - -//---------------------------------------------------------------------------------------------------------------------- -// 此函数用于存储图像中所有装甲板的中心坐标,以便后续最小二乘法计算圆心和半径 -// --------------------------------------------------------------------------------------------------------------------- -void Energy::getAllArmorCenters() -{ - for (const auto &armor : armors) { - all_armor_centers.push_back(armor.rect.center); - } -} \ No newline at end of file diff --git a/energy/src/energy/mark/mark.cpp b/energy/src/energy/mark/mark.cpp new file mode 100644 index 0000000..9280858 --- /dev/null +++ b/energy/src/energy/mark/mark.cpp @@ -0,0 +1,31 @@ +// +// Created by sun on 19-7-5. +// + +#include "energy/energy.h" + +using namespace std; +using namespace cv; + +void Energy::writeDownMark() { + if(armors_cnt>=4 && fans_cnt>=3) { + FILE *fp = fopen(PROJECT_DIR"/Mark/mark.txt", "w"); + if (fp) { + fprintf(fp, "yaw: %f, pitch: %f\n", origin_yaw, origin_pitch); + fclose(fp); + save_new_mark = true; + } + FILE *fp_all = fopen(PROJECT_DIR"/Mark/mark_all.txt", "a"); + if (fp_all) { + fprintf(fp_all, "yaw: %f, pitch: %f\n", origin_yaw, origin_pitch); + fclose(fp_all); + } + } + if(armors_cnt==5){ + FILE *fp_best = fopen(PROJECT_DIR"/Mark/mark_best.txt", "a"); + if(fp_best){ + fprintf(fp_best, "yaw: %f, pitch: %f\n",origin_yaw, origin_pitch); + fclose(fp_best); + } + } +} \ No newline at end of file diff --git a/energy/src/energy/param_init.cpp b/energy/src/energy/param_init.cpp index dc48ae4..44f2b8b 100644 --- a/energy/src/energy/param_init.cpp +++ b/energy/src/energy/param_init.cpp @@ -9,6 +9,11 @@ using std::cout; using std::endl; using std::vector; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数对能量机关成员变量进行初始化 +// --------------------------------------------------------------------------------------------------------------------- void Energy::initEnergy() { isMark = false; @@ -52,11 +57,12 @@ void Energy::initEnergy() { anticlockwise_rotation_init_cnt = 0; } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数对能量机关参数进行初始化 +// --------------------------------------------------------------------------------------------------------------------- void Energy::initEnergyPartParam() { - - energy_part_param_.RPM = 10; - energy_part_param_.HIT_TIME = 1.14; - energy_part_param_.GRAY_THRESH = 240; energy_part_param_.SPLIT_GRAY_THRESH = 60; energy_part_param_.FAN_GRAY_THRESH = 75; @@ -93,6 +99,11 @@ void Energy::initEnergyPartParam() { } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数对能量机关旋转方向进行初始化 +// --------------------------------------------------------------------------------------------------------------------- void Energy::initRotation() { if (target_polar_angle >= -180 && last_target_polar_angle >= -180 && fabs(target_polar_angle - last_target_polar_angle) < 30) { diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index a1ce396..915ab0e 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -9,10 +9,11 @@ using std::cout; using std::endl; using std::vector; -//extern float curr_yaw, curr_pitch, mark_yaw, mark_pitch; -//extern int mark; +//---------------------------------------------------------------------------------------------------------------------- +// 此函数为能量机关模式主控制流函数 +// --------------------------------------------------------------------------------------------------------------------- int Energy::run(cv::Mat &src){ // imshow("src",src); fans.clear(); @@ -45,37 +46,18 @@ int Energy::run(cv::Mat &src){ centerRs_cnt = findCenterR(src); if(centerRs_cnt>0)showCenterRContours("R",src); - if(armors_cnt>=4 && fans_cnt>=3) { - FILE *fp = fopen(PROJECT_DIR"/Mark/mark.txt", "w"); - if (fp) { - fprintf(fp, "yaw: %f, pitch: %f\n", origin_yaw, origin_pitch); - fclose(fp); - save_new_mark = false; - } - FILE *fp_all = fopen(PROJECT_DIR"/Mark/mark_all.txt", "a"); - if (fp_all) { - fprintf(fp_all, "yaw: %f, pitch: %f\n", origin_yaw, origin_pitch); - fclose(fp_all); - } - } - if(armors_cnt==5){ - FILE *fp_best = fopen(PROJECT_DIR"/Mark/mark_best.txt", "a"); - if(fp_best){ - fprintf(fp_best, "yaw: %f, pitch: %f\n",origin_yaw, origin_pitch); - fclose(fp_best); - } - } + if(armors_cnt != fans_cnt+1) { return 0; } getAllArmorCenters(); - cycleLeastFit(); - attack_distance = 718; + circleLeastFit(); + attack_distance = ATTACK_DISTANCE; - getFanPosition(); - getArmorPosition(); + getFanPolarAngle(); + getArmorPolarAngle(); findTarget(); if (energy_rotation_init) { diff --git a/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp b/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp index 3de33d8..eccf26c 100644 --- a/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp +++ b/energy/src/energy/send_target_by_uart/send_target_by_uart.cpp @@ -5,6 +5,11 @@ #include using namespace std; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于向主控板发送数据 +// --------------------------------------------------------------------------------------------------------------------- bool sendTarget(Serial& serial, float x, float y, float z) { static short x_tmp, y_tmp, z_tmp; uint8_t buff[8]; @@ -22,6 +27,11 @@ bool sendTarget(Serial& serial, float x, float y, float z) { return serial.WriteData(buff, sizeof(buff)); } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于操作手数据发送 +// --------------------------------------------------------------------------------------------------------------------- void Energy::sendTargetByUart(float x, float y, float z) { if(changeTarget())target_cnt++; sendTarget(serial, x, y, z); diff --git a/energy/src/energy/tool/tool.cpp b/energy/src/energy/tool/tool.cpp index cc6f402..e4a9c7d 100644 --- a/energy/src/energy/tool/tool.cpp +++ b/energy/src/energy/tool/tool.cpp @@ -13,6 +13,11 @@ using std::cout; using std::endl; using std::vector; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数选取图像中的一部分进行处理 +// --------------------------------------------------------------------------------------------------------------------- void Energy::extract(cv::Mat &src){ cv::Rect rect(EXTRACT_POINT_X, EXTRACT_POINT_Y, EXTRACT_WIDTH, EXTRACT_HEIGHT); src = src(rect).clone(); @@ -20,6 +25,11 @@ void Energy::extract(cv::Mat &src){ imshow("extract", src); } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于计算预测的击打点坐标 +// --------------------------------------------------------------------------------------------------------------------- void Energy::rotate() { int x1, x2, y1, y2; // 为了减小强制转换的误差 @@ -32,6 +42,11 @@ void Energy::rotate() { predict_point.y = static_cast((y1 - (x2 - x1)*sin(-predict_rad * d2r) - (y1 - y2)*cos(-predict_rad * d2r))/100); } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数将像素差转换到实际距离差 +// --------------------------------------------------------------------------------------------------------------------- void Energy::stretch(cv::Point point_1, cv::Point2f &point_2){ if(point_1==circle_center_point){ // cout<<"stretch wrong!"< Date: Fri, 5 Jul 2019 16:34:03 +0800 Subject: [PATCH 05/12] energy changed --- energy/include/energy/constant.h | 16 ----- energy/include/energy/energy.h | 2 +- energy/include/energy/param_struct_define.h | 68 ++++++++++-------- energy/src/energy/run.cpp | 5 +- main.cpp | 78 +++++++++++++++------ others/include/additions/additions.h | 4 ++ others/src/additions/additions.cpp | 1 - 7 files changed, 105 insertions(+), 69 deletions(-) diff --git a/energy/include/energy/constant.h b/energy/include/energy/constant.h index ea661e9..08ca61d 100644 --- a/energy/include/energy/constant.h +++ b/energy/include/energy/constant.h @@ -18,28 +18,12 @@ const double PI = 3.1415926; const int CLOCKWISE = 1; const int ANTICLOCKWISE = -1; const float ATTACK_DISTANCE = 718;//cm -const double WHOLE_FAN = 80;//cm const double ARMOR_CENTER_TO_CYCLE_CENTER = 75;//cm -//const double ARMOR_CENTER_TO_CYCLE_CENTER = 71;//cm const int EXTRACT_POINT_X = 120; const int EXTRACT_POINT_Y = 0; const int EXTRACT_WIDTH = 400; const int EXTRACT_HEIGHT = 300; -//以摄像头正方向位y轴 -const int GM_L = 14;//云台摄像头z方向 -const int GM_X = 15;//云台摄像头x方向 -const int GM_H = 16;//云台摄像头y方向 - -//const double STRETCH = 231.0/640.0;//实际距离与图像伸缩比 -const double STRETCH = 0.34; - -const int ZERO_POINT_X = 281; -const int ZERO_POINT_Y = 188; -const double YAW_ORIGIN_RAD = PI/180*2.25; -const double PITCH_ORIGIN_RAD = PI/180*14.85; - -const double LIFT_HEIGHT = 20;//云台抬升高度 #endif //CONSTANT_H diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index a358a2d..7551947 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -25,7 +25,7 @@ class Energy { public: Energy(Serial &u, uint8_t &color);//构造函数,参数为串口和敌方颜色 ~Energy();//默认析构函数 - int run(cv::Mat &src); + int run(cv::Mat &gimble_src, cv::Mat &base_src); Serial &serial;//串口 void setEnergyRotationInit();//判断顺逆时针函数 void extract(cv::Mat &src);//框取图像中的一块区域进行处理 diff --git a/energy/include/energy/param_struct_define.h b/energy/include/energy/param_struct_define.h index 587f05c..3e6f3b1 100644 --- a/energy/include/energy/param_struct_define.h +++ b/energy/include/energy/param_struct_define.h @@ -10,6 +10,11 @@ using std::vector; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此结构体为能量机关模块的结构体,用于寻找矩形轮廓 +// --------------------------------------------------------------------------------------------------------------------- struct EnergyPart { cv::RotatedRect rect; float angle; @@ -21,40 +26,45 @@ struct EnergyPart { }; }; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此结构体包括能量机关参数 +// --------------------------------------------------------------------------------------------------------------------- struct EnergyPartParam { - int GRAY_THRESH; - int SPLIT_GRAY_THRESH; - int FAN_GRAY_THRESH; - int ARMOR_GRAY_THRESH; + int GRAY_THRESH;//二值化阈值 + int SPLIT_GRAY_THRESH;//通道分离二值化阈值 + int FAN_GRAY_THRESH;//扇叶识别二值化阈值 + int ARMOR_GRAY_THRESH;//装甲板识别二值化阈值 - long FAN_CONTOUR_AREA_MAX; - long FAN_CONTOUR_AREA_MIN; - long FAN_CONTOUR_LENGTH_MIN; - long FAN_CONTOUR_LENGTH_MAX; - long FAN_CONTOUR_WIDTH_MIN; - long FAN_CONTOUR_WIDTH_MAX; - float FAN_CONTOUR_HW_RATIO_MAX; - float FAN_CONTOUR_HW_RATIO_MIN; + long FAN_CONTOUR_AREA_MAX;//扇叶面积最大值 + long FAN_CONTOUR_AREA_MIN;//扇叶面积最小值 + long FAN_CONTOUR_LENGTH_MIN;//扇叶长边长度最小值 + long FAN_CONTOUR_LENGTH_MAX;//扇叶长边长度最大值 + long FAN_CONTOUR_WIDTH_MIN;//扇叶宽边长度最小值 + long FAN_CONTOUR_WIDTH_MAX;//扇叶宽边长度最大值 + float FAN_CONTOUR_HW_RATIO_MAX;//扇叶长宽比最大值 + float FAN_CONTOUR_HW_RATIO_MIN;//扇叶长宽比最小值 - long ARMOR_CONTOUR_AREA_MAX; - long ARMOR_CONTOUR_AREA_MIN; - long ARMOR_CONTOUR_LENGTH_MIN; - long ARMOR_CONTOUR_WIDTH_MIN; - long ARMOR_CONTOUR_LENGTH_MAX; - long ARMOR_CONTOUR_WIDTH_MAX; - float ARMOR_CONTOUR_HW_RATIO_MAX; - float ARMOR_CONTOUR_HW_RATIO_MIN; + long ARMOR_CONTOUR_AREA_MAX;//装甲板面积最大值 + long ARMOR_CONTOUR_AREA_MIN;//装甲板面积最小值 + long ARMOR_CONTOUR_LENGTH_MIN;//装甲板长边长度最小值 + long ARMOR_CONTOUR_WIDTH_MIN;//装甲板长边长度最大值 + long ARMOR_CONTOUR_LENGTH_MAX;//装甲板宽边长度最小值 + long ARMOR_CONTOUR_WIDTH_MAX;//装甲板宽边长度最大值 + float ARMOR_CONTOUR_HW_RATIO_MAX;//装甲板长宽比最大值 + float ARMOR_CONTOUR_HW_RATIO_MIN;//装甲板长宽比最小值 - long CENTER_R_CONTOUR_AREA_MAX; - long CENTER_R_CONTOUR_AREA_MIN; - long CENTER_R_CONTOUR_LENGTH_MIN; - long CENTER_R_CONTOUR_WIDTH_MIN; - long CENTER_R_CONTOUR_LENGTH_MAX; - long CENTER_R_CONTOUR_WIDTH_MAX; - float CENTER_R_CONTOUR_HW_RATIO_MAX; - float CENTER_R_CONTOUR_HW_RATIO_MIN; + long CENTER_R_CONTOUR_AREA_MAX;//风车中心R面积最大值 + long CENTER_R_CONTOUR_AREA_MIN;//风车中心R面积最小值 + long CENTER_R_CONTOUR_LENGTH_MIN;//风车中心R长边长度最小值 + long CENTER_R_CONTOUR_WIDTH_MIN;//风车中心R长边长度最大值 + long CENTER_R_CONTOUR_LENGTH_MAX;//风车中心R宽边长度最小值 + long CENTER_R_CONTOUR_WIDTH_MAX;//风车中心R宽边长度最大值 + float CENTER_R_CONTOUR_HW_RATIO_MAX;//风车中心R长宽比最大值 + float CENTER_R_CONTOUR_HW_RATIO_MIN;//风车中心R长宽比最小值 - float TWIN_ANGEL_MAX; + float TWIN_ANGEL_MAX;//扇叶和装甲板匹配时极坐标角度差的最大值 }; diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index 915ab0e..fd0682b 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -14,7 +14,10 @@ using std::vector; //---------------------------------------------------------------------------------------------------------------------- // 此函数为能量机关模式主控制流函数 // --------------------------------------------------------------------------------------------------------------------- -int Energy::run(cv::Mat &src){ +int Energy::run(cv::Mat &gimble_src, cv::Mat &base_src){ + + cv::Mat src = gimble_src; + // imshow("src",src); fans.clear(); armors.clear(); diff --git a/main.cpp b/main.cpp index c989982..eec46a4 100644 --- a/main.cpp +++ b/main.cpp @@ -20,16 +20,13 @@ #include -#define ENERGY_STATE 'e' -#define ARMOR_STATE 'a' - using namespace cv; using namespace std; mcu_data mcuData = { 0, 0, - ENERGY_STATE, + BIG_ENERGY_STATE, 0, 1, ENEMY_RED, @@ -101,26 +98,28 @@ int main(int argc, char *argv[]) { cout<<"start running"<read(energy_src); + if (video_armor && video_energy) { + ok = video_armor->read(armor_src) && video_energy->read(energy_src); if (!ok) { + delete video_armor; delete video_energy; + video_armor = nullptr; video_energy = nullptr; } if(save_video){ Mat energy_save = energy_src.clone(); cvtColor(energy_save,energy_save,COLOR_GRAY2BGR); + armor_video_writer.write(armor_src); energy_video_writer.write(energy_save); -// cout<init()){ delete video_energy; video_energy = nullptr; } } + } - } else if (mcuData.state == ARMOR_STATE) { - last_state = mcuData.state; + else if (mcuData.state == SMALL_ENERGY_STATE) { + last_state = mcuData.state; + if (video_armor && video_energy) { + ok = video_armor->read(armor_src) && video_energy->read(energy_src); + if (!ok) { + delete video_armor; + delete video_energy; + video_armor = nullptr; + video_energy = nullptr; + } + if(save_video){ + Mat energy_save = energy_src.clone(); + cvtColor(energy_save,energy_save,COLOR_GRAY2BGR); + armor_video_writer.write(armor_src); + energy_video_writer.write(energy_save); + } + if (show_origin) { + imshow("armor src", armor_src); + imshow("energy src", energy_src); + } +// if (from_camera == 0) { +// cv::resize(energy_src, energy_src, cv::Size(640, 480), 2); +// imshow("resize", energy_src); +// energy.extract(energy_src); +// } + energy.run(armor_src, energy_src); + waitKey(1); + } + else { + video_energy = new CameraWrapper(1, "energy"); + if(!video_energy->init()){ + delete video_energy; + video_energy = nullptr; + } + } + } + + else if (mcuData.state == ARMOR_STATE) { + last_state = mcuData.state; if (video_armor) { ok = video_armor->read(armor_src); if (!ok) { @@ -148,17 +186,16 @@ int main(int argc, char *argv[]) { } if(save_video){ armor_video_writer.write(armor_src); -// cout<init()){ delete video_armor; @@ -166,8 +203,7 @@ int main(int argc, char *argv[]) { } } } -// cout< 1) std::string video_name = filename_prefix + std::to_string(cnt) + ".avi"; } - From 5fb6db440b3701a44cf06ea11594bbb4f4e175f4 Mon Sep 17 00:00:00 2001 From: sun Date: Fri, 5 Jul 2019 23:13:18 +0800 Subject: [PATCH 06/12] energy changed --- energy/include/energy/energy.h | 6 +- energy/src/energy/param_init.cpp | 2 +- energy/src/energy/run.cpp | 72 +++++++--- energy/src/energy/show/show.cpp | 31 +++-- energy/src/energy/tool/tool.cpp | 12 ++ main.cpp | 188 ++++++++------------------- others/include/additions/additions.h | 8 +- others/include/camera/wrapper_head.h | 1 - others/src/additions/additions.cpp | 105 +++++++++++++-- others/src/camera/camera_wrapper.cpp | 2 + 10 files changed, 243 insertions(+), 184 deletions(-) diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index 7551947..9d615ca 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -25,7 +25,10 @@ class Energy { public: Energy(Serial &u, uint8_t &color);//构造函数,参数为串口和敌方颜色 ~Energy();//默认析构函数 - int run(cv::Mat &gimble_src, cv::Mat &base_src); + int runBig(cv::Mat &gimble_src, cv::Mat &chassis_src); + int runBig(cv::Mat &gimble_src); + int runSmall(cv::Mat &gimble_src, cv::Mat &chassis_src); + int runSmall(cv::Mat &gimble_src); Serial &serial;//串口 void setEnergyRotationInit();//判断顺逆时针函数 void extract(cv::Mat &src);//框取图像中的一块区域进行处理 @@ -99,6 +102,7 @@ private: void rotate();//获取预测点位 void stretch(cv::Point point_1, cv::Point2f &point_2);//将像素差转换为实际距离差 + double pointDistance(cv::Point point_1, cv::Point point_2);//计算两点距离 void writeDownMark();//记录操作手标定的云台初始角度 diff --git a/energy/src/energy/param_init.cpp b/energy/src/energy/param_init.cpp index 44f2b8b..8779cf6 100644 --- a/energy/src/energy/param_init.cpp +++ b/energy/src/energy/param_init.cpp @@ -26,7 +26,7 @@ void Energy::initEnergy() { target_polar_angle = -1000; last_target_polar_angle = -1000; radius = 0; - energy_rotation_direction = CLOCKWISE; + energy_rotation_direction = ANTICLOCKWISE; attack_distance = ATTACK_DISTANCE; last_fans_cnt = 0; last_armors_cnt = 0; diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index fd0682b..84c20c6 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -12,12 +12,23 @@ using std::vector; //---------------------------------------------------------------------------------------------------------------------- -// 此函数为能量机关模式主控制流函数 +// 此函数为大能量机关模式主控制流函数,且步兵需要同时拥有云台摄像头和底盘摄像头 // --------------------------------------------------------------------------------------------------------------------- -int Energy::run(cv::Mat &gimble_src, cv::Mat &base_src){ +int Energy::runBig(cv::Mat &gimble_src, cv::Mat &chassis_src){ + if(chassis_src.empty())runBig(gimble_src);//仅拥有云台摄像头则调用单摄像头的run函数 + else { + runBig(chassis_src); + return 0; + } +} - cv::Mat src = gimble_src; + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数为大能量机关模式主控制流函数,且步兵仅拥有云台摄像头 +// --------------------------------------------------------------------------------------------------------------------- +int Energy::runBig(cv::Mat &gimble_src){ // imshow("src",src); fans.clear(); armors.clear(); @@ -25,35 +36,29 @@ int Energy::run(cv::Mat &gimble_src, cv::Mat &base_src){ fan_polar_angle.clear(); armor_polar_angle.clear(); - changeMark(); - if (isMark)return 0; + changeMark(); + if (isMark)return 0; // imagePreprocess(src); // imshow("img_preprocess",src); - threshold(src, src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY); + threshold(gimble_src, gimble_src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY); // imshow("bin",src); - fans_cnt = findFan(src, last_fans_cnt); + fans_cnt = findFan(gimble_src, last_fans_cnt); // cout<<"fans_cnt: "<0)showFanContours("fan",src); // fans_cnt=0; - armors_cnt = findArmor(src, last_armors_cnt); + armors_cnt = findArmor(gimble_src, last_armors_cnt); // cout<<"armors_cnt: "<0) showArmorContours("armor",src); - if(armors_cnt>0||fans_cnt>0) showBothContours("Both",src); + if(armors_cnt != fans_cnt+1) return 0; - centerRs_cnt = findCenterR(src); - if(centerRs_cnt>0)showCenterRContours("R",src); - - - if(armors_cnt != fans_cnt+1) - { - return 0; - } + centerRs_cnt = findCenterR(gimble_src); +// if(centerRs_cnt>0)showCenterRContours("R", gimble_src); getAllArmorCenters(); circleLeastFit(); @@ -63,10 +68,12 @@ int Energy::run(cv::Mat &gimble_src, cv::Mat &base_src){ getArmorPolarAngle(); findTarget(); - if (energy_rotation_init) { - initRotation(); - return 0; - } + if(armors_cnt>0||fans_cnt>0) showBothContours("Both", gimble_src); + + if (energy_rotation_init) { + initRotation(); + return 0; + } getPredictPoint(); gimbleRotation(); sendTargetByUart(yaw_rotation, pitch_rotation, target_cnt); @@ -79,3 +86,26 @@ int Energy::run(cv::Mat &gimble_src, cv::Mat &base_src){ + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数为小能量机关模式主控制流函数,且步兵需要同时拥有云台摄像头和底盘摄像头 +// --------------------------------------------------------------------------------------------------------------------- +int Energy::runSmall(cv::Mat &gimble_src, cv::Mat &chassis_src){ + if(chassis_src.empty())runSmall(gimble_src);//仅拥有云台摄像头则调用单摄像头的run函数 + else return 0; +} + + + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数为小能量机关模式主控制流函数,且步兵仅拥有云台摄像头 +// --------------------------------------------------------------------------------------------------------------------- +int Energy::runSmall(cv::Mat &gimble_src){ + +} + + + + diff --git a/energy/src/energy/show/show.cpp b/energy/src/energy/show/show.cpp index ce5e198..a226857 100644 --- a/energy/src/energy/show/show.cpp +++ b/energy/src/energy/show/show.cpp @@ -8,6 +8,8 @@ using std::cout; using std::endl; using std::vector; + + //---------------------------------------------------------------------------------------------------------------------- // 此函数用于显示图像中所有扇叶 // --------------------------------------------------------------------------------------------------------------------- @@ -23,19 +25,18 @@ void Energy::showFanContours(std::string windows_name, const cv::Mat src) { { image2show = src.clone(); } - //cvtColor(image2show, image2show, COLOR_GRAY2RGB); for (const auto &fan : fans) { Point2f vertices[4]; //定义矩形的4个顶点 fan.rect.points(vertices); //计算矩形的4个顶点 for (int i = 0; i < 4; i++) line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(255, 0, 0), 2); - //cout << fan.rect.center << '\t' << fan.rect.angle << '\t'; - //cout << endl; } imshow(windows_name, image2show); } + + //---------------------------------------------------------------------------------------------------------------------- // 此函数用于显示图像中所有装甲板 // --------------------------------------------------------------------------------------------------------------------- @@ -51,19 +52,21 @@ void Energy::showArmorContours(std::string windows_name, const cv::Mat src) { { image2show = src.clone(); } - //cvtColor(image2show, image2show, COLOR_GRAY2RGB); for (const auto &armor : armors) { Point2f vertices[4]; //定义矩形的4个顶点 armor.rect.points(vertices); //计算矩形的4个顶点 for (int i = 0; i < 4; i++) line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(0, 0, 255), 2); - //cout << armor.rect.center << '\t' << armor.rect.angle << '\t'; - //cout << endl; } imshow(windows_name, image2show); } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于显示图像中所有扇叶和装甲板,并框出待击打装甲板 +// --------------------------------------------------------------------------------------------------------------------- void Energy::showBothContours(std::string windows_name, const cv::Mat src) { if (src.empty())return; static Mat image2show; @@ -75,25 +78,23 @@ void Energy::showBothContours(std::string windows_name, const cv::Mat src) { { image2show = src.clone(); } - //cvtColor(image2show, image2show, COLOR_GRAY2RGB); for (const auto &fan : fans) { Point2f vertices[4]; //定义矩形的4个顶点 fan.rect.points(vertices); //计算矩形的4个顶点 for (int i = 0; i < 4; i++) line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(255, 0, 0), 4); -// cout << "fan" << fan.rect.size.height <<'\t'<< fan.rect.size.width << '\t' << '\t'; -// cout << endl; } for (const auto &armor : armors) { Point2f vertices[4]; //定义矩形的4个顶点 armor.rect.points(vertices); //计算矩形的4个顶点 - for (int i = 0; i < 4; i++) - line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(0, 0, 255), 4); -// cout << "armor center: "<< armor.rect.center << '\t'<< "armor angle: "<< armor.rect.angle; -// cout << endl; - + for (int i = 0; i < 4; i++){ + if(pointDistance(static_cast(armor.rect.center),target_point) < 5) + line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(255, 255, 0), 4); + else + line(image2show, vertices[i], vertices[(i + 1) % 4], Scalar(0, 0, 255), 4); + } cv::Point2f point = armor.rect.center; cv::circle(image2show, point, 2, cv::Scalar(0, 0, 255));//在图像中画出特征点,2是圆的半径 @@ -102,6 +103,8 @@ void Energy::showBothContours(std::string windows_name, const cv::Mat src) { imshow(windows_name, image2show); } + + //---------------------------------------------------------------------------------------------------------------------- // 此函数用于显示图像中所有可能的风车中心候选区R // --------------------------------------------------------------------------------------------------------------------- diff --git a/energy/src/energy/tool/tool.cpp b/energy/src/energy/tool/tool.cpp index e4a9c7d..6818636 100644 --- a/energy/src/energy/tool/tool.cpp +++ b/energy/src/energy/tool/tool.cpp @@ -58,4 +58,16 @@ void Energy::stretch(cv::Point point_1, cv::Point2f &point_2){ point_2.x = static_cast( ARMOR_CENTER_TO_CYCLE_CENTER * x_0 / r_0); point_2.y = static_cast( ARMOR_CENTER_TO_CYCLE_CENTER * y_0 / r_0); +} + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于计算两点距离 +// --------------------------------------------------------------------------------------------------------------------- + +double Energy::pointDistance(cv::Point point_1, cv::Point point_2){ + double distance = 0; + distance = sqrt(pow(static_cast(point_1.x - point_2.x),2) + + pow(static_cast(point_1.y - point_2.y),2)); + return distance; } \ No newline at end of file diff --git a/main.cpp b/main.cpp index eec46a4..624fb61 100644 --- a/main.cpp +++ b/main.cpp @@ -26,16 +26,23 @@ using namespace std; mcu_data mcuData = { 0, 0, - BIG_ENERGY_STATE, + ARMOR_STATE, 0, 1, ENEMY_RED, }; +WrapperHead *video_gimble = nullptr; +WrapperHead *video_chassis = nullptr; + +Serial serial(115200); +uint8_t last_state = mcuData.state; + +ArmorFinder armorFinder(mcuData.enemy_color, serial, PROJECT_DIR"/tools/para/", mcuData.use_classifier); +Energy energy(serial, mcuData.enemy_color); + int main(int argc, char *argv[]) { process_options(argc, argv); - Serial serial(115200); - uint8_t last_state = mcuData.state; thread receive(uartReceive, &serial); int from_camera = 1; @@ -45,170 +52,81 @@ int main(int argc, char *argv[]) { } while (true) { - VideoWriter armor_video_writer, energy_video_writer; - if (save_video) { - initVideoWriter(armor_video_writer, PROJECT_DIR"/armor_video/"); - initVideoWriter(energy_video_writer, PROJECT_DIR"/energy_video/"); - } - - WrapperHead *video_armor=nullptr; - WrapperHead *video_energy=nullptr; if (from_camera) { - video_armor = new CameraWrapper(0, "armor"); - video_energy = new CameraWrapper(1, "energy"); + video_gimble = new CameraWrapper(0, "armor"); + video_chassis = new CameraWrapper(1, "energy"); } else { -// string armor_video, energy_video; -// lastVideo(armor_video, PROJECT_DIR"/armor_video/"); -// video_armor = new VideoWrapper(armor_video); -// lastVideo(energy_video, PROJECT_DIR"/energy_video/"); -// video_energy = new VideoWrapper(energy_video); - video_armor = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); - video_energy = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); + video_gimble = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); + video_chassis = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); } - if (video_armor->init()) { + if (video_gimble->init()) { LOGM("video_armor source initialization successfully."); } else { LOGW("video_armor source unavailable!"); - delete video_armor; - video_armor = nullptr; + delete video_gimble; + video_gimble = nullptr; } - if (video_energy->init()) { + if (video_chassis->init()) { LOGM("video_energy source initialization successfully."); } else { LOGW("video_energy source unavailable!"); - delete video_energy; - video_energy = nullptr; + delete video_chassis; + video_chassis = nullptr; } - Mat energy_src, armor_src; + Mat gimble_src, chassis_src; for (int i = 0; i < 10; i++) { - if (video_armor) { - video_armor->read(armor_src); + if (video_gimble) { + video_gimble->read(gimble_src); } - if (video_energy) { - video_energy->read(energy_src); + if (video_chassis) { + video_chassis->read(chassis_src); } } - - ArmorFinder armorFinder(mcuData.enemy_color, serial, PROJECT_DIR"/tools/para/", mcuData.use_classifier); - - Energy energy(serial, mcuData.enemy_color); - bool ok = true; cout<<"start running"<read(armor_src) && video_energy->read(energy_src); - if (!ok) { - delete video_armor; - delete video_energy; - video_armor = nullptr; - video_energy = nullptr; - } - if(save_video){ - Mat energy_save = energy_src.clone(); - cvtColor(energy_save,energy_save,COLOR_GRAY2BGR); - armor_video_writer.write(armor_src); - energy_video_writer.write(energy_save); - } - if (show_origin) { - imshow("armor src", armor_src); - imshow("energy src", energy_src); - } + if (mcuData.state != ARMOR_STATE) {//能量机关模式 + ok = checkReconnect(video_gimble->read(gimble_src), video_chassis->read(chassis_src));//检查有几个摄像头 + if (save_video) saveVideos(gimble_src, chassis_src);//保存视频 + if (show_origin) showOrigin(gimble_src, chassis_src);//显示原始图像 + + if (mcuData.state == BIG_ENERGY_STATE) {//大符模式 // if (from_camera == 0) { -// cv::resize(energy_src, energy_src, cv::Size(640, 480), 2); -// imshow("resize", energy_src); +// cv::resize(energy_src, energy_src, cv::Size(640, 480), 2); +// imshow("resize", energy_src); // energy.extract(energy_src); // } - energy.run(armor_src, energy_src); - waitKey(1); - } - else { - video_energy = new CameraWrapper(1, "energy"); - if(!video_energy->init()){ - delete video_energy; - video_energy = nullptr; + if (last_state != BIG_ENERGY_STATE) {//若上一帧不是大符模式,即刚往完成切换,则需要初始化 + energy.setEnergyRotationInit(); + cout << "set" << endl; } + energy.runBig(gimble_src, chassis_src);//击打大符 } + else if (mcuData.state == SMALL_ENERGY_STATE) { + energy.runSmall(gimble_src, chassis_src);//击打小符 + } + last_state = mcuData.state;//更新上一帧状态 } - - else if (mcuData.state == SMALL_ENERGY_STATE) { + else if (mcuData.state == ARMOR_STATE) {//自瞄模式 last_state = mcuData.state; - if (video_armor && video_energy) { - ok = video_armor->read(armor_src) && video_energy->read(energy_src); - if (!ok) { - delete video_armor; - delete video_energy; - video_armor = nullptr; - video_energy = nullptr; - } - if(save_video){ - Mat energy_save = energy_src.clone(); - cvtColor(energy_save,energy_save,COLOR_GRAY2BGR); - armor_video_writer.write(armor_src); - energy_video_writer.write(energy_save); - } - if (show_origin) { - imshow("armor src", armor_src); - imshow("energy src", energy_src); - } -// if (from_camera == 0) { -// cv::resize(energy_src, energy_src, cv::Size(640, 480), 2); -// imshow("resize", energy_src); -// energy.extract(energy_src); -// } - energy.run(armor_src, energy_src); - waitKey(1); - } - else { - video_energy = new CameraWrapper(1, "energy"); - if(!video_energy->init()){ - delete video_energy; - video_energy = nullptr; - } - } - } + ok = checkReconnect(video_gimble->read(gimble_src)); + if (save_video) saveVideos(gimble_src); + if (show_origin) showOrigin(gimble_src); + CNT_TIME("Armor Time", { + armorFinder.run(gimble_src); + }); - else if (mcuData.state == ARMOR_STATE) { - last_state = mcuData.state; - if (video_armor) { - ok = video_armor->read(armor_src); - if (!ok) { - delete video_armor; - video_armor = nullptr; - } - if(save_video){ - armor_video_writer.write(armor_src); - } -// flip(armor_src, armor_src, 0); - if (show_origin) { - imshow("armor src", armor_src); - } - CNT_TIME("Armor Time", { - armorFinder.run(armor_src); - }); - } - else { - video_armor = new CameraWrapper(0, "armor"); - if(!video_armor->init()){ - delete video_armor; - video_armor = nullptr; - } - } } - + cv::waitKey(1); }); } while (ok); - delete video_armor; - delete video_energy; + delete video_gimble; + video_gimble = nullptr; + delete video_chassis; + video_chassis = nullptr; cout << "Program fails. Restarting" << endl; } return 0; diff --git a/others/include/additions/additions.h b/others/include/additions/additions.h index 13fbaa1..2cfe668 100644 --- a/others/include/additions/additions.h +++ b/others/include/additions/additions.h @@ -29,7 +29,11 @@ struct mcu_data{ extern mcu_data mcuData; void uartReceive(Serial *pSerial); -void initVideoWriter(cv::VideoWriter& video, const std::string &filename_prefix); -void lastVideo(std::string &video_name, const std::string &filename_prefix); +bool checkReconnect(bool is_gimble_connect, bool is_chassis_connect); +bool checkReconnect(bool is_gimble_connect); +void saveVideos(const cv::Mat &gimble_src, const cv::Mat &chassis_src); +void saveVideos(const cv::Mat &gimble_src); +void showOrigin(const cv::Mat &gimble_src, const cv::Mat &chassis_src); +void showOrigin(const cv::Mat &gimble_src); #endif /* _ADDITIONS_H_ */ diff --git a/others/include/camera/wrapper_head.h b/others/include/camera/wrapper_head.h index bb9dfea..d92906c 100644 --- a/others/include/camera/wrapper_head.h +++ b/others/include/camera/wrapper_head.h @@ -15,7 +15,6 @@ public: virtual ~WrapperHead() = default;; virtual bool init() = 0; virtual bool read(cv::Mat &src) = 0; - }; diff --git a/others/src/additions/additions.cpp b/others/src/additions/additions.cpp index 851d253..339748c 100644 --- a/others/src/additions/additions.cpp +++ b/others/src/additions/additions.cpp @@ -4,14 +4,30 @@ #include #include +#include +#include +#include #include +#include #include #include #include +#include +#include #define RECEIVE_LOG_LEVEL LOG_MSG using namespace std; +using namespace cv; + +extern WrapperHead *video_gimble; +extern WrapperHead *video_chassis; + +extern Serial serial; +extern uint8_t last_state; + +extern ArmorFinder armorFinder; +extern Energy energy; void uartReceive(Serial* pSerial) { char buffer[20]; @@ -38,7 +54,8 @@ void uartReceive(Serial* pSerial) { } } -void initVideoWriter(cv::VideoWriter& video, const std::string &filename_prefix){ +cv::VideoWriter initVideoWriter(const std::string &filename_prefix){ + cv::VideoWriter video; std::ifstream in(filename_prefix + "cnt.txt"); int cnt = 0; if (in.is_open()) @@ -54,15 +71,85 @@ void initVideoWriter(cv::VideoWriter& video, const std::string &filename_prefix) out.close(); } video.open(file_name, CV_FOURCC('P', 'I', 'M', '1'), 90, cv::Size(640, 480), true); + return video; } -void lastVideo(std::string &video_name, const std::string &filename_prefix){ - std::ifstream in(filename_prefix + "cnt.txt"); - int cnt = 0; - if (in.is_open()) - { - in >> cnt; - in.close(); +bool checkReconnect(bool is_gimble_connect, bool is_chassis_connect){ + if(!is_gimble_connect){ + video_gimble = new CameraWrapper(0, "armor"); + if(!(is_gimble_connect = video_gimble->init())){ + delete video_gimble; + video_gimble = nullptr; + } } - if(cnt > 1) std::string video_name = filename_prefix + std::to_string(cnt) + ".avi"; + if(!is_chassis_connect){ + video_chassis = new CameraWrapper(1, "energy"); + if(!(is_chassis_connect = video_chassis->init())){ + delete video_chassis; + video_chassis = nullptr; + } + } + return is_gimble_connect && is_chassis_connect; } + +bool checkReconnect(bool is_gimble_connect){ + if(!is_gimble_connect){ + video_gimble = new CameraWrapper(0, "armor"); + if(!(is_gimble_connect = video_gimble->init())){ + delete video_gimble; + video_gimble = nullptr; + } + } + return is_gimble_connect; +} + +auto gimble_video_writer = initVideoWriter(PROJECT_DIR"/gimble_video/"); +auto chassis_video_writer = initVideoWriter(PROJECT_DIR"/chassis_video/"); + +void saveVideos(const cv::Mat &gimble_src, const cv::Mat &chassis_src){ + if(!gimble_src.empty() && !chassis_src.empty()){ + gimble_video_writer.write(gimble_src); + Mat chassis_save = chassis_src.clone(); + cvtColor(chassis_save,chassis_save,COLOR_GRAY2BGR); + chassis_video_writer.write(chassis_save); + } + else if(!gimble_src.empty() && chassis_src.empty()){ + gimble_video_writer.write(gimble_src); + } + else if(gimble_src.empty() && !chassis_src.empty()){ + Mat chassis_save = chassis_src.clone(); + cvtColor(chassis_save,chassis_save,COLOR_GRAY2BGR); + chassis_video_writer.write(chassis_save); + } + else return; +} + +void saveVideos(const cv::Mat &gimble_src){ + if(!gimble_src.empty()){ + gimble_video_writer.write(gimble_src); + } + else return; +} + +void showOrigin(const cv::Mat &gimble_src, const cv::Mat &chassis_src){ + if(!gimble_src.empty() && !chassis_src.empty()){ + imshow("gimble", gimble_src); + imshow("chassis", chassis_src); + } + else if(!gimble_src.empty() && chassis_src.empty()){ + imshow("gimble", gimble_src); + } + else if(gimble_src.empty() && !chassis_src.empty()){ + imshow("chassis", chassis_src); + } + else return; + cv::waitKey(1); +} + +void showOrigin(const cv::Mat &gimble_src){ + if(!gimble_src.empty()){ + imshow("gimble", gimble_src); + } + else return; + cv::waitKey(1); +} \ No newline at end of file diff --git a/others/src/camera/camera_wrapper.cpp b/others/src/camera/camera_wrapper.cpp index 3d4a6cc..b45982c 100644 --- a/others/src/camera/camera_wrapper.cpp +++ b/others/src/camera/camera_wrapper.cpp @@ -136,6 +136,7 @@ bool CameraWrapper::readRaw(cv::Mat &src) { return true; } else { + src = cv::Mat(); return false; } } @@ -155,6 +156,7 @@ bool CameraWrapper::readProcessed(cv::Mat &src) { CameraReleaseImageBuffer(h_camera, pby_buffer); return true; } else { + src = cv::Mat(); return false; } } From aedee4b723eff3ef570f96086b66188d6e776f7c Mon Sep 17 00:00:00 2001 From: sun Date: Sat, 6 Jul 2019 10:28:42 +0800 Subject: [PATCH 07/12] energy changed --- .../src/energy/calculate/circle_calculate.cpp | 63 +++++++++++++++++++ energy/src/energy/get/polar_angle_get.cpp | 57 +++++++++++++++++ energy/src/energy/get/predict_point_get.cpp | 37 +++++++++++ 3 files changed, 157 insertions(+) create mode 100644 energy/src/energy/calculate/circle_calculate.cpp create mode 100644 energy/src/energy/get/polar_angle_get.cpp create mode 100644 energy/src/energy/get/predict_point_get.cpp diff --git a/energy/src/energy/calculate/circle_calculate.cpp b/energy/src/energy/calculate/circle_calculate.cpp new file mode 100644 index 0000000..c8fc691 --- /dev/null +++ b/energy/src/energy/calculate/circle_calculate.cpp @@ -0,0 +1,63 @@ +// +// Created by xixiliadorabarry on 1/24/19. +// +#include "energy/energy.h" + +using namespace cv; +using std::cout; +using std::endl; +using std::vector; + + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数通过最小二乘法计算大风车圆心和半径 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::circleLeastFit() +{ + circle_center_point.x = 0; + circle_center_point.y = 0; + radius = 0.0f; + if (all_armor_centers.size() < 3) + { +// cout<<"Cannot calculate a circle"<(all_armor_centers.size()); + for (int i = 0; i < N; i++) + { + double x = all_armor_centers.at(i).x; + double y = all_armor_centers.at(i).y; + double x2 = x * x; + double y2 = y * y; + sum_x += x; + sum_y += y; + sum_x2 += x2; + sum_y2 += y2; + sum_x3 += x2 * x; + sum_y3 += y2 * y; + sum_xy += x * y; + sum_x1y2 += x * y2; + sum_x2y1 += x2 * y; + } + double C, D, E, G, H; + double a, b, c; + C = N * sum_x2 - sum_x * sum_x; + D = N * sum_xy - sum_x * sum_y; + E = N * sum_x3 + N * sum_x1y2 - (sum_x2 + sum_y2) * sum_x; + G = N * sum_y2 - sum_y * sum_y; + H = N * sum_x2y1 + N * sum_y3 - (sum_x2 + sum_y2) * sum_y; + a = (H * D - E * G) / (C * G - D * D); + b = (H * C - E * D) / (D * D - G * C); + c = -(a * sum_x + b * sum_y + sum_x2 + sum_y2) / N; + circle_center_point.x = static_cast(a / (-2)); + circle_center_point.y = static_cast(b / (-2)); + radius = sqrt(a * a + b * b - 4 * c) / 2; +// cout << "The cycle center is: " << cycle_center << endl; +// cout << "The radius is: " << radius << endl; +} diff --git a/energy/src/energy/get/polar_angle_get.cpp b/energy/src/energy/get/polar_angle_get.cpp new file mode 100644 index 0000000..33d59d3 --- /dev/null +++ b/energy/src/energy/get/polar_angle_get.cpp @@ -0,0 +1,57 @@ +// +// Created by xixiliadorabarry on 1/24/19. +// +#include "energy/energy.h" + +using namespace cv; +using std::cout; +using std::endl; +using std::vector; + + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于获得图像中所有扇叶的当前极坐标角度 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::getFanPolarAngle() { + if (radius == 0)return; + for (const auto &fan : fans) + { + float angle = static_cast(180 / PI * atan2(-1 * (fan.rect.center.y - circle_center_point.y), + (fan.rect.center.x - circle_center_point.x))); + fan_polar_angle.push_back(angle); + } +// cout << "fanPosition.size() = " << fanPosition.size() << '\t' << endl; +} + + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于获得图像中所有装甲板的当前极坐标角度 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::getArmorPolarAngle() { + if (radius == 0)return; + for (const auto &armor : armors) + { + float angle = static_cast(180 / PI * atan2(-1 * (armor.rect.center.y - circle_center_point.y), + (armor.rect.center.x - circle_center_point.x))); + armor_polar_angle.push_back(angle); + + } +// cout << "armorPosition.size() = " << armorPosition.size() << '\t' << endl; +} + + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于存储图像中所有装甲板的中心坐标,以便后续最小二乘法计算圆心和半径 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::getAllArmorCenters() +{ + for (const auto &armor : armors) { + all_armor_centers.push_back(armor.rect.center); + } +} \ No newline at end of file diff --git a/energy/src/energy/get/predict_point_get.cpp b/energy/src/energy/get/predict_point_get.cpp new file mode 100644 index 0000000..45491de --- /dev/null +++ b/energy/src/energy/get/predict_point_get.cpp @@ -0,0 +1,37 @@ +// +// Created by xixiliadorabarry on 1/24/19. +// + +#include "energy/energy.h" +#include "energy/constant.h" + +using namespace cv; +using std::cout; +using std::endl; +using std::vector; + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数获取预测点坐标 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::getPredictPoint(){ + if(energy_rotation_direction==1) rotate(); + if(energy_rotation_direction==-1) rotate(); +} + + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数用于操作手手动标定 +// --------------------------------------------------------------------------------------------------------------------- +bool Energy::changeTarget(){ + if(fabs(target_polar_angle - last_target_polar_angle) < 30||fabs(target_polar_angle - last_target_polar_angle) > 330){ + last_target_polar_angle = target_polar_angle; + return false; + } + else{ + last_target_polar_angle = target_polar_angle; + return true; + } +} \ No newline at end of file From 370114db37468e546d60c377f6e71fa5aeb92799 Mon Sep 17 00:00:00 2001 From: wanpiqiu123 <46051943+wanpiqiu123@users.noreply.github.com> Date: Sat, 6 Jul 2019 10:42:23 +0800 Subject: [PATCH 08/12] verified something and made it possible to run on a OSX machine (videos input only) --- CMakeLists.txt | 5 +++++ main.cpp | 6 +++--- others/include/camera/camera_wrapper.h | 2 +- others/include/serial/serial.h | 2 +- others/src/serial/serial.cpp | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dae52f9..e54c7c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,8 @@ FIND_PACKAGE(Eigen3 REQUIRED) FIND_PACKAGE(OpenCV 3 REQUIRED) FIND_PACKAGE(Threads) +LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/others) + INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/energy/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/armor/include) @@ -42,6 +44,9 @@ IF (CMAKE_SYSTEM_NAME MATCHES "Linux") ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows") MESSAGE(STATUS "current platform: Windows") TARGET_LINK_LIBRARIES(${BIN_NAME} "${PROJECT_SOURCE_DIR}/others/MVCAMSDK_X64.lib") +ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") + MESSAGE(STATUS "current platform: Mac") + TARGET_LINK_LIBRARIES(${BIN_NAME} "${PROJECT_SOURCE_DIR}/others/libmvsdk.dylib") ELSE () MESSAGE(STATUS "Unsupport platform: ${CMAKE_SYSTEM_NAME}") ENDIF() diff --git a/main.cpp b/main.cpp index 624fb61..9ad9f28 100644 --- a/main.cpp +++ b/main.cpp @@ -26,7 +26,7 @@ using namespace std; mcu_data mcuData = { 0, 0, - ARMOR_STATE, + BIG_ENERGY_STATE, 0, 1, ENEMY_RED, @@ -56,8 +56,8 @@ int main(int argc, char *argv[]) { video_gimble = new CameraWrapper(0, "armor"); video_chassis = new CameraWrapper(1, "energy"); } else { - video_gimble = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); - video_chassis = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); + video_gimble = new VideoWrapper("/Users/leo/Desktop/videos/170.avi"); + video_chassis = new VideoWrapper("/Users/leo/Desktop/videos/170.avi"); } if (video_gimble->init()) { LOGM("video_armor source initialization successfully."); diff --git a/others/include/camera/camera_wrapper.h b/others/include/camera/camera_wrapper.h index e6f9d75..06496a8 100644 --- a/others/include/camera/camera_wrapper.h +++ b/others/include/camera/camera_wrapper.h @@ -16,7 +16,7 @@ #include "camera/wrapper_head.h" #ifdef Windows #include "camera/CameraApi.h" -#elif defined(Linux) +#elif defined(Linux) || defined(Darwin) #include "camera/camera_api.h" #endif diff --git a/others/include/serial/serial.h b/others/include/serial/serial.h index e6a525b..5419604 100644 --- a/others/include/serial/serial.h +++ b/others/include/serial/serial.h @@ -29,7 +29,7 @@ private: DWORD dwCommEvents; }; -#elif defined(Linux) +#elif defined(Linux) || defined(Darwin) #include #include diff --git a/others/src/serial/serial.cpp b/others/src/serial/serial.cpp index b292f97..f9c1507 100644 --- a/others/src/serial/serial.cpp +++ b/others/src/serial/serial.cpp @@ -174,7 +174,7 @@ bool Serial::ReadData(unsigned char *buffer, unsigned int length) { return bResult; } -#elif defined(Linux) +#elif defined(Linux) || defined(Darwin) #include From 5093e84b2f11bd4e3afad929b22e675d069e6ea5 Mon Sep 17 00:00:00 2001 From: wanpiqiu123 <46051943+wanpiqiu123@users.noreply.github.com> Date: Sat, 6 Jul 2019 12:10:50 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E5=A4=A7=E7=AC=A6=EF=BC=9A=E4=BA=91?= =?UTF-8?q?=E5=8F=B0=E6=91=84=E5=83=8F=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- energy/include/energy/energy.h | 5 ++-- energy/src/energy/param_init.cpp | 4 ++- energy/src/energy/run.cpp | 49 +++++++++++++++++++++++++++++-- others/libmvsdk.dylib | Bin 0 -> 1476592 bytes 5 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 others/libmvsdk.dylib diff --git a/.gitignore b/.gitignore index 00b23c5..662e092 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ build .idea Mark tools/TrainCNN/.idea -tools/TrainCNN/__pycache__ \ No newline at end of file +tools/TrainCNN/__pycache__ +.DS_Store diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index 9d615ca..ff9798e 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -18,7 +18,6 @@ #include "additions/additions.h" #include "options/options.h" - using std::vector; class Energy { @@ -38,11 +37,13 @@ public: private: EnergyPartParam energy_part_param_;//能量机关的参数设置 bool isMark;//若操作手正在手动标定,则为true + bool centered=false;//云台是否对准中心 int fans_cnt;//图像中的扇叶个数 int armors_cnt;//图像中的装甲板个数 int centerRs_cnt;//图像中可能的风车中心字母R选区个数 int last_fans_cnt;//上一帧的扇叶个数 int last_armors_cnt;//上一帧的装甲板个数 + int gimble_cnt; //经过的帧数 double radius;//大风车半径 float target_polar_angle;//待击打装甲板的极坐标角度 float last_target_polar_angle;//上一帧待击打装甲板的极坐标角度 @@ -62,7 +63,6 @@ private: float origin_yaw, origin_pitch;//初始的云台角度设定值 float target_cnt;//用于记录寻找到的装甲板总数,该值变化则立即中断主控板发射进程,防止重复击打已点亮的装甲板 bool save_new_mark;//若操作手进行过手动标定,则为true - std::vector fans;//图像中所有扇叶 std::vector armors;//图像中所有装甲板 std::vector centerRs;//风车中心字母R的可能候选区 @@ -70,6 +70,7 @@ private: cv::Point circle_center_point;//风车圆心坐标 cv::Point target_point;//目标装甲板中心坐标 cv::Point predict_point;//预测的击打点坐标 + cv::Point former_point;//之前预测的圆心坐标 std::vectorfan_polar_angle;//当前帧所有扇叶的极坐标角度 std::vectorarmor_polar_angle;//当前帧所有装甲板的极坐标角度 std::vector all_armor_centers;//记录全部的装甲板中心,用于风车圆心和半径的计算 diff --git a/energy/src/energy/param_init.cpp b/energy/src/energy/param_init.cpp index 8779cf6..97b66a9 100644 --- a/energy/src/energy/param_init.cpp +++ b/energy/src/energy/param_init.cpp @@ -16,13 +16,15 @@ using std::vector; // --------------------------------------------------------------------------------------------------------------------- void Energy::initEnergy() { isMark = false; - + centered=false; fans_cnt = 0; armors_cnt = 0; centerRs_cnt = 0; + gimble_cnt = 0; circle_center_point = Point(0, 0); target_point = Point(0, 0); predict_point = Point(0, 0); + former_point = Point(0,0); target_polar_angle = -1000; last_target_polar_angle = -1000; radius = 0; diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index 84c20c6..2f57cd3 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -15,11 +15,53 @@ using std::vector; // 此函数为大能量机关模式主控制流函数,且步兵需要同时拥有云台摄像头和底盘摄像头 // --------------------------------------------------------------------------------------------------------------------- int Energy::runBig(cv::Mat &gimble_src, cv::Mat &chassis_src){ - if(chassis_src.empty())runBig(gimble_src);//仅拥有云台摄像头则调用单摄像头的run函数 - else { - runBig(chassis_src); + if(chassis_src.empty()) + runBig(gimble_src);//仅拥有云台摄像头则调用单摄像头的run函数 + else if(!centered) { + armors.clear(); + armor_polar_angle.clear(); + changeMark(); + if (isMark)return 0; + + threshold(gimble_src, gimble_src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY); + imshow("yun",gimble_src); + + armors_cnt = findArmor(gimble_src, last_armors_cnt); + if(armors_cnt!=1) return 0;//滤去漏判的帧 + + getAllArmorCenters(); + circleLeastFit(); + +// attack_distance = 752;//单项赛 + attack_distance = 718; + + if (energy_rotation_init) { + initRotation(); + return 0; + } + + if(++gimble_cnt==10){ + former_point=circle_center_point; + gimble_cnt=0; + } + + if(former_point==predict_point&&gimble_cnt==9&&predict_point!=Point(0,0)) { + centered=true; + cout<<"gimble focused!"<E3Zzg`C?tp#bmAnC z)5B=A+R_%=)JscSt7)qc5W);#CLn4+M7&f16%Pg}0uAxT{C~f_&zW0BZTr2?`~AP~ zah_!MI%}`B_S$RT*4}6DJ+FTL$;s|En?2oTvvtG&Dfl1T!)B}X^#x?Joq_+>G@EVe z)bZ{~;{_`5tG;K-XUMc=;@@G$PMumgb5UiCG+AEobQxC|lpK7{h>`Qb7ymeQ>VnFu z+ZIGo$?}f8A?19`jN!v)y9C9z!<5H7^CRU=oi%gLyqWXGb7Fqqd0WbxVKVR;W{G{e z=r?`toeN?aPS(%4U&?!(2F8ca3Hg=i==apAKb$^&>dZycXU?mfT6ybj$?|f(l=AW} zlPr8r&@U=U0#m0>Ur;%J_MJa8@yYUr4?!is=iCqQ>*U0YxbQprp~^z zVlIf1<;|LA){|T*fzRKp-^^K4E9T#N$4p7zMV?Q}TcMcp@N5>fL?nIF%(Fl+b!w?= zyelr!s=tLMxAlBPYR7ua7^{{~oqFe-sSEDDhTrp~LJ|F!b6tt22XUN2UkKUi@H zQLb}iwWOV_jwenW$scZQLO?k!wsUM%e zS-;yB#CpB1@*02ATO<~YtK;$VWGeCcOrLwl9dqxrFv5SP4d{zRQyk! z>h+8n?Jo6LV@6QQv1OYz!Y7}PbeGSpck#M0mU42Uc*fdo&Y6p5POm}-IA`Y6dAC;1 zx^&2pOXpV3nmK>LrE_NAcE`d6Gj1O;<8FYU=I30S%~wbO={ZqQPJeG(1H!#ad)xK^ z-L$N?Z5H~F++Xyz1^d`UpTsm5J=fb-@3h&DZ|ZByug$Ra0&Xn+`5AbP{9gn3b-*tO zZ0fH?8~WO&#%IhVI}0Jx*>FMT``yZ}ajiJ(;TJYtb6Q#+aH8+%g_@54i>zma{IK@T z!asRM57liC0=w z3xy!JlT+qMGrr@(w>{o&_q^Ep@TZ)-zc`R?lJ1XcUcb)##dYl3V1IMshB$D@5&u2<$2Iy+kI z+Of*>z1l~Hfr)2rP^tX@tB=iGj36>F(Jqj$0@<-Sw=$c^N1T#!9gy0a9WSQ2v{#jy z2zXq2Y2I+{r4i0WOYBv*yL4}!v-&gJ_2;K4HR~Y}@RfJkmD)^@s)5YR>wDXDHQS|) z$x(HOsyiJXZB({L8{=?=M-8Z`sJO=ETbwt{rqnJ0Lj{nzip|wBD!(7TM&uH4`S;E^ z_-9BSAq7tmI>=N-N{0}Kl&-q&n^M~Mlkw4%IN^^^NhFeaM!N@6o*(;7Qa1ls*n`!Tr6mVNM#plL#Cw8~j)kjdMz+KNT^@aMUZEPe=Z0peWm`8CC23sS?6A3%)!sbS|Czn6wWF=hzZ7^;C`#=QS+&9= zCti?_@A1q3@7lgMe~S7^K*-4g+=o?fIcLC62L$LzXwoAU=@H80!IP7!$gk* z_<}$hvPAX#833rEzZ(E5=|2U4P^=#Sp;&(aLa`hGLa}o#nmmi<0*fZ!qT#D0p%^VJ z6uT0DP;3~05}O(xS;1xC@W?x7g7P4>tlg^A4nT#3u~L}3cN*|tYi?oaN@3!KQ4?n| zOEmFN0yL<=(4YcC^NCE-d?IgMjn#oDVZKfPQS%9_(O5ztjV1C%(+CVrBQP|CNP>nK zF0wr^{epC4`-isP$o-f%>|fbY@2bvGn+~UOiG8>Y{b>mr;pDt)?Qgr4HFNUDxb2^` zpG)(61p7iRZh^Rw3TXiYLTvR|~&^m`r)ixIe)!Mg}8ut0k z#H-qS#sy$Te?PS|5>d5uKu<;pjl>u`J;$pp$n|RX&rHw2Mj~vc%E=ANpvTBd86(hMlG>$M$eKdQ*f2cmhp2eeesM;5*o_XQCo;FnngS+jROUWLU zbxi47I|o?_yBqLE<(jaYZNe6IvmZh5vP6mXJ(q6}u$(xQTHwTX@*}abf ze^j}t70)~IeD=rkdCyVh=J$cm+%KMQHjXNj-opPT{O>^APU!F`(?|FebAj-VIz(&* z5MVBp8zJvzSgP*?A0wADf*Cg&e()tV17Ri;ROuDRBPa`RG{QKtw$50^O_xJCY(U)B~&v%9`YeY)ILiMBLXE zI-Ct$sdhA8_$eTLJ&E*GSLhQ-`f)sIKalQ9B0bF&IwVQ=$CLIi)t{${Q|NIz^?(vd zf^xt?1E=6PBQ?jF;GlU^aGaHzV*of<$|*R`PR%h894zA$9D`DG!KldLh^y-;6gS=eF)W_ZF4V1UJi*_C> zQL;0B&TsF}vlxv3IXdU9O%BoGvnO}&MAbw;ls%*Smw-@PC%uoS0p0O{-fGf2XisOT z{$Q5s58=OaaMe~%WRu4q%JBFF&K+Nw)6( zKr88|yA8ekkXDkTT{}Q`AJIy3y;r$AtGZ!mDx9*}`0{Tu3-L2N72Pu?d0u@)-H(`~ zYrNVL(LMKpI^`>&VCI7L4x7=6?Bk*LkMID6Lu^yZn&1e&u0+3+`BUKUI!n0`jqM`* z-<0VVgzTgyWzHn*Qf{7@aTMK2J^Cf|L+n5(XHw=sM7xVRlpD7yL(q{84pz97vX%(C992|9!Xq10g?U?l8D>amoc1hQ+gk2Bea1TT|)8D?YF z=L$^MtUm~RLbBHiLYeH30C!3D5+J)K`=mEe^?NnE*>)rnaTk3O@Y}Fy4i-HMi?S=f zREVPT)arYtR&T;@NL3)80iU4NbAnK6wF__;t$qPyqE;_fxU_BO-MuGZV zP{pM?3B2fr|C8jd?~>dNU6UJ^I=S)RkQ^3yu&zQ6ts?Axmwuu99r67ZJjwXc5~Dju zOBWV`lo~%CqT}W?r0NYUdDp8Uqq$M^tpYvs9e6Q7D{I{Eg!W>%Du1^}NYgnVic(G{ zWg_zwfg)p+>K35Xz=XGmgTso77=bcaFzSPv8Kt^Yq*?`KFx1AF=L+-^C_^2Slo4LD zH=Xn<3=Qd`o5y`p`3qM75~sD&&V6wR~ff=l`$t? z2FI*88CJuBkK^BxZPhk02N^fks>>q_{lT#i0@HTHTZ}l%MXK;G>98q}29?!8NOJr@ z&SSJAUcC&B>AHOV#zOz5H2+>jS#wm?Uez{Damgm69aT*dWzAiMh?*ktB6(*`hw=zy zw)wZE(Q?X~1%>hLDUBMK)lLm87^>uF4quHfs_)35;gO|cRxolba*PSfWErS37%$_d z$tO&9NHR$VGZ@E7)%C|vUV#O(RLm%RSPUX|E<}9EU9G zSjUM$(N76cflZ@ zz`~*AEqa}%#D7_)mXSx|TRsPItsq`g z)(z=ihiUwp8$rBA==Ln)+h<|DAXTItc4;47^maMs$)jRwnpN@uRLxDqib}~GpjIBh zD%zvn+xt)>YH}Wp{5EF7V#+S(r0>Eq|HS`E{0~6uxCH;mZuI|Zz_;VS4*yT#{{#HT zChq6{DQV))neAAY_KHVC@%#&})5aCZxiJlN*7Uvdie}bL(XnloVZF=+SEO z)_;PP$CjGB7KB_+uF2a1sBEN1U!T|Z0aOu-5Gz+XY#Z~b?FvBT6LD)x%5sP0-Zr~Z z)zmC?ZON^7&zzrIb_1R=TAclCVKATpIrAJghn=GLKp<JH>V9~w5+z-UyFQo?1jNtdA!H(V1g z^N#3Q<_wqRdWQTKPkFDN_*rwfEdS7@SB(gl4ZeSWcRUq-|Gb+KH#GCb2d@s74V!-W zEyNA~SHb^6Sp%qZ-1Mu%%h>TAbt!;2<6pk^ z;*H^D995>A+QQKHLY0VSdKqkKE13K&q#1yu9I$AxNazP@^Rr*=;Rv?=+N~mt_l0H0U2+u1jIGSsokGx z4*R%J`}#*8j|lq)0P1&5%lfb{7tn{d{up%Zw>~=i4~XSr?bCnR186Xyyk89381@wc za+htohE;14vYtW3P_=?EOd-Oih07w zL6+GcOgVS}J)DGAB2GdNn~)e)jT$_m>yZQX!BtPjdC#Kn5(EDW_3y(xdUs4Yb~keY zpZ-!ktCp(A;+E`c{)347T*hI^?2g^|nz<`R)x0V-cQcnT>23+B@VKxjQobv+FS`fk zd>7&Wrp$Yv;nbzCyDd)IpT0&K-`z!}VFom_t?4s#rI;QmL-tms-80`6`XJlgJElzCh5sGq+Mtq;<+NL%(k;kWI;VQZU&N$} z3y8;{=?;WgF%wh2R@gRDpM&a^qQ90Uu=t%cE=u=Nb-fN|4!azKPTD2;l+9v|6jM6P zfN#oNj&zPHx0s>zET(w9k3UTvCUa$PD`wcIIRq_r;T$geY@2+36Z2WF^!4rpJ>Y|w zaAWmvQY-$&EE_nk1|3oa5_MPa!R|OYgZ^(W-Q+K-v!#@%Y5s?p%UtOne^qOEFplT4*W4Jk?tQ!FytK%9_`j{|XXG7{iC!vzzJWXm7 z%#Z&}>nDr&``3tgE=j}+iuglH5zl{(h}B6VYA9kxN)bFMkSZfhNh0bg;+&Ks)_#qM zbx9(y0CZF4yBImU+Jfg4QfaY1Nkkn*{5qwG4PPUoIZ4DL6fr5Kh>c$(BA6&5^Gv~g z6PJ{d3pMmLA~wZ|h}9TT1IIW6o{ z9>EwZyP3ZJN7w|!TAA7N^!2ZZqSz7PzpsBKP;p%&d*`@>AydeqZH7}emfDZN<=)Mu z&N#NM(d@+`w*kr3Xsg|bh>m+g8gG@V4r&r=7 z#qg@`3nHdDntj+A(@0@qIK&frXW9J2?0`ldr?1_6zzGCODf;O?eB&nQnlQ_X_&0L+ zwN(y>lL2Xd18;^4a+W4FLSuG zpetkya@m8f9i93phqfv7@gV!A9iQvnOYOmnyA`x)p%ZT^-quq4rs5sshMZkfB}cDAh``WO{PpAduPfHY}I( zW#kKE9l18+li$GTVgCxi`~Vzgf?>ZihRlwE4im&H#XJFmXMl+d`x^lDgdl7)0OSzR zDl-;@Mht8-!La{n3mIFYu(X|gYl61d{NJf9>hRyEQPJ+w)_8s*{&~v5w|*tPIZ>aZ zbsN@+!l>u}C2ZC0MA@n3N&Vz^JiWyHCz9g1|Gy6Z-4>lq2YRiHmc(4_LMH!z~{Cgp~UDw#!gi)Z}kQSxGKUKF3gXMK5-XCT>eP9@*v$p_QR!`;R-B?6zvQQ=&uH{ven3@NZ4B(THtW~G;3hZ*2<4u0jIsRz$k93T;Pg? zE8N;uSdas@^t4FDNG)T!C$ha%+W~Q{u7EqD+FMn7n|87&5*RQH0nTob5PrS6?3XlGXFuvaJr+7z- zDZVU`^`h7=?)LyuEIEDX1Cf@Chd!u0d(?hJ%ppF@sM>%nDD`;Z=ndSl3ey|Sy`sIB zl@cn8CoswmWJ9U)#4*MHD$I?yu`v9LfLvO*e0qd+h-!hNb3vt5AxiYDMzNjg5urti zKJ;%|)poJ80NN6Lz?y=Wuq`T9sRsPD;FvaL7b;Ja=59hITc=G}54Md3Em~C&=(X@0 z+*{PZl2%NXn!MV_Mt`hLV``~*B4N~q3}yL`VbAu9ba$g({#+y&38DN{-Ms?Ehisvs zNd-iMvb>a(0!DT+l-iznMoc|w+KPf!6iEDAx0u)TUydg6?OfHD*?Qz!W0bbWAs)o~ z=0t3RI_c4GDKvhJonxgsUy_Z)4&QOv+HQ3t*Uq73L_Oz?(8t-z>Ybs(IriPk>T&tX zv%A&VI|tRaU$1IA)X>56)zHVMsnu}QA~v~i(ZQ;8!6|Rs;{AS>hgKV)ZCQ*$f9SNIn7szOmD=ZNTMNs{yeU?zl zn$bO@5mpXnNb#pM6CuT4FHxroR8;s?mhirmLF%aRTr297Xp|*BQ_AYs+$}2p=>4K_ zS>`NU5fe@2bwrBtJ(Z%!6isEF71b{qWu@|4M8QV=o4ZF-SuRnh3shA6LQBSJltJpK z_#aqN{i9KqcqgM+`$uPE4(_w5y~a6IZFIJ(jdP#^GZXZJrS(pg#4H>lqe*{JZRYHB z$`?^q1>1`#sLv`bBdmnOh+v($3|5qzwQu|xUb1Z*nJag4+%gi&L6b6f!t>-DNZHsX zDh^rJf)$<791x!?XR|>}T_yeFarBlBnxr2N`n+WN`Em4?YBx#xEU8xTVZMpsl6APczMcf8_ zQWtTZL?v|*#g>4sUBo~us%saKZbfzNB8>Zlrd_&-Hi-`%OzI+7ZD(7 ziY}tc64AAbxS3K?brCKpKE8_>B2h_QM2;oAYZvj=y=I|w?IQLg3fjka5w8M;{y%jW z@i$9U*Dm50R#ew6VzEpmzKfVGQAu6II7>#?E@GG!)wPQ_n^FI67jXn9VL;rai`YXv z2e+>{2-1lzj;+sn2%^g(tJ<8q^2!80I1S8yee=ZaB*^uLtIbAZefy*ZIJ z5@|N-_6HIhHD7*nYl2r_P*@anb#%iapg*CD=KcVzZH?;2Jq>MYp!`4)cPnrgxt<(d zexQ2am+&0K4svWLAW=m;kw4f(BdW7Wi1IJs-aV0#VDo0tR_rXawsnixU16a?50 z6eIW$omw;#{-8(#+kj#OTT&2UOF@j_i4+9bITIteKLr7Hv&0B)O+kQ-EHMIS3Ie=L zi4hD+L4aK>F@lrm>yxvIjVv*Of21J59+nuv`V<7%`V%Agbqa!M@dQ8VO7H+ih=lqu zF$E2rsRWwK5@}?eS(}Ri*Q^zNL4avle11nNYrOZ)kJsi9+$?zO9)H9!|Mjla%kRA( z0^=E8h-289ih+kp;u(JWZ48emG2HZR416OJpF;k(F>Fd=H~~-8%5=&+98F?qi87?k zPsz}c#PI01F?^oHFyq@8P9`y2{%s69lNi#X437Cby`rZ!J1vwVnmp>p@_YANOsf0F3O=39h z+ZcEXDL#b{kc)4u5+z9teAo7k3^yb(-2ZJ1wM~g!!xTQWn%s zF(l#THijh7$+yB{>yen@#+|0cibkYdzpK!rm(6qCew{O2)ynHR)=b381Xg429Pf!> z%dNg}GQK9xt8k?+yjiPiLwKV%vJHfHjSbvuKe3w;7&{``l9iDbypG@R)n+yn>~<^9 zeyDw}Ji9~HCN$wakTzijmUCXmQ=?12agkcwrYdD^5VH^?Y*o;s-8c`c9|cEMW#lFt ze1S5nigv0eKE*aB@U()E=PrAD^!upIINiXi4!lXz2d_~@JkEHU6u$-q z*RaydvEUIU?1yv`1XY3zr#`U`5mfaFP2RxJv~v4#fQ=qIUh|gC^A_w?{L5If8lLaV zS2bud5_p@hbc!I31=9-g4f}NBY@rt&#k1e+!@D}jB-pitJm>_g)KO6c%IhaQ((%vJ1 zq+qiLXUnAFg;Efhs1*Ch()22;bOaH03$A%3p?tWVsKV9El_J>e;v45xyby^jya05i zd2l|q6}MKPPH8&|LIO2LS@UM`<_cxx9_$?79iM*x#PqA~jgLItRq$?7(p6KqHsvX< z$*Y5D=DT9#mIt_-&Fx0GfK`{F@$L3+byR5OacK%VL4zt=)rSSoEpHSjHeALpcO|sc zv0}$JjxN3dN0fuRSHHaw>bX(2*=T!J*kdfMB>aG?5vBvc_`aaqE-WbH&WVdVrNW)Q zWF81!jS+~`h4H)oFeMTD(?K?&n}5@(2$9y#q7K=wSf>!p9qMAIDAou}H5X9Ln2&te z^pUFyq5NSj2(o|wwS zG#ti;DWxw|Rcy*hk@!HA&SC%7bd-*jnn@+x>whmP(^an;{`Kjc!*rzQ|6eDSLVZ*0 zSFqdvq}b8awj*S(JimJ1$*-4fse$%SpXMF+8F@*NN|oMxEc~F z3FZo6^8m8$06Ps}g9Il7%m>IF+2Z5$XiN9*iy=C%0m6tw1c^8TgsWv~{`*)62sIjD?cihIgS4_M^SLzM;_JK~G;kOCs5#U%RVL$g+It8>MO2?hC zq{FLsZn)wH;3^5h$V-Kh!@fEbqlSGx6Z8g}xFg6Lxa806y|Cld4e*>l3v{=;J#CBtPm}MhPXgy5mHIeJES; z0r*Y~%%T%g(PW42iPLQ!h)^G) z+jD@VZcTuMb-4A*veT15La(P0K$(>!!3W?YF>p%^TyKIfR~tY}r$)dmMVqM;nh909 zNvQMyt46qbJ7`$>!`0a^kWi_*pH*N@mW@=cTIi@%J7`9&MGaSXnu!8D5(9I|ix03l z7T7dyv}f#PlP&{e^-%J!yK-pZq$`Rp%T=|91_R;IO>O8ZV#Nl8f1N|ZaP?vY`~aj+ zYJy%93|CKzLYzp7MqfRP5bW&If6iVt@Hf$TPYwzl9vFD!GV${R6eLg7k@xZ|HzT)AtH2YTn zzAv@9^`Hfv$kIb1OBS8%uPnMI(1m@C_!e1O%TgLTX(%;41f;t5^2-V*T{e`NtNQ>5 zk1l%UuzxQe_!2{Ha)Oh)w^hxb2kp@J3}xFRChQ*^12ar8?9Yxu0|+s5{#-yZb7s#g z^JDhB;(`6De{ZMe=LX+z>3;=XKhTB!S@>py!#PPOKsJnWef^evWPrO6KDyg%tlE3r zhTvQj*H(vvz6V*?Qb}3pbv__bY`kKgAAr+hV0{d%vp}tG5kRZduD6QJ+ZW>o%0a8E zl+oW*SX$jY5`~v?2R%1mVeo7NCE!PsL^Indu}uewjtNx2nk2h>-r z8<2gFo6t?D{g^}Q;Gn)`YJDm@1kV)0cXl}r$?Yd`@+ zIRu)6*t%))f3BxJ6b4S8DbNUKB@)B<0Kh z++^*f(%H#q)Qw%S8pFC_6)`o&24dC(OsIEN_Nm@xbK)ko{gL}nH+tYH$e37tYjf)r zDpt}eN=vo9I}9^#s?G(O=6WO?c?cX7fKrcj_ zFX_#CP^xt%^-5yy7CMlotttE{x}Oto!!U`X$sfpt$#GO9gyp)y!P=lW7pl1TV2t9# zs(6nwYL83%jSW=V9=u!!nYc9|WVFug1}(Zpt?*hiha2>Oar>xcI;Jd)B2=OHQ>En7 z;ufXsNNtCi+Ph{7E`PIweL>}1?agCI2}Nfb`blPDY|&`!ZVox!Gm4dIRAoJTped-P3Fs`+_Y2}#HI9I%F3v{g$+W; zrP$kmyvcq8#}YHeGRC*%Uth*KtNtJ-u~xoIj$i}CE7Oc_O#L<% zGNSZk?M{&m#eIS!SO3{94cL_y=odh&Ein9sqMavBv}e@@XSeWHLp*)TnvG2_ef_NT zx?eOu|2)7b4OE|yc7znD$2`%&b6b7=thdpOC9T+qYb{=bYamn>H-Xhd%~EVu^=Kz> z%K)ZM*U04OBUow%@|ST)Po%|DeUdI&RSWzH`VN}^5Tv1UoP`mA zCwt+vcLIZG9`Drrwk2ZlfG4c-M!0>Yx_g(=zor{_l-l1RK3gUF@we*eLdVp?C^Y=E|v0GG}8Qe?8aINDbg!n|| zbLs^7`-J?e0$12Ax;4>f1Bb;Pbk{3T5u+Trv053s5sq!hcywtu6sx&gQXb*wk}2-f zzy@DgNx2>?>a44IH>7h>c0^GPEL-~wv;s|YZ-k<)h?>k%OYXPWatFLgGhP&e>1Syz zGX6<3{xDfu=z=Z9Z7A`J#8VFbzN(w>na#XMFBL)d zjlH*^3lUBCu<)0JB4V5ljEeX>({!Cqui`%oO1k_f)2ezm38xK(&P54Ysy7RZE7txO zgoj$$(Z@Y6+Wx1x1X@@`uhMNL1m=lx7Tz(pEUnstQTR* z2pE4h{|mwcS85cJMmsq39FqTqeoz$-a!6Ud)xMS5Dz$F|qyMZE6*IIy-M>Gl#}5Bi zJDoq=;A6u(!Kjet(|}mV$yJx*PyK--2_Xv-D;UcGIQkitY&C9ED%??fcVN{7aqFYSRuZS6hdb0T|h_RhGr zAYXK3u~!A6k2dXBnZ*)kS5H5Pu=K+c(vveO^E8)rMnFg@>M(5R6FU6EKf>HvsbSZJ zvqCFSCcL-M|0@<%TG-D8vaQQ+V;rlBjd8yrkv;5R#JFc7jHByZ&znde2QV0MixGab zv6XRL1#>d)_W+KdCioEAjtah202@g3Cjg5OSA#Hbz$eI%U-UijF?wQo(dn6mr2jP^Dya};Xe}O}^H4I{asBQcz62V&_t#&;C+AZ*WHhZIbx}Pv; zsn%iK{kUjQcr8Q&A7KQm4E+~@DTJ25G(Un0C=h!jiDVc%7I7wTK1$NnoPEG%yH;O( zc_%0PeT>0Bbl9#9mtNipE?WrzreLcm31?i6&d}eI!%iRNQpGzJFA8G-tbH2F(gjg& z78xLl843G4p%Xut0pQNV42;Fz!1F;wm1>{4Hl`zn2MCUWS1E8e;=cj^_4xNG1+~29 zC+uz|zbdYKL_-xwOtEnPppNn?7PDHT1UaY;F56|H| z!Pa|wM7D~Rg4gzH?v=DNO_>W83B&B-lA(GIsS<@!%A7sVfwtQg#o;VCSX%s9Fb9Gh z24O#k8We%ewSK0gbTzegrw#C${XIx_&GF`k!$?hD#!H>tMIS&0HuFBuG800~ z>H-%<6q>-rvZz1Lnivta#;lBjf`%yy7Hv&mo^C_^!TD^wIP9EO^-py=_T=wRQv+Ab z*~Hb54cSnjC}{k#g2PzmzyY%Q^QyhmFwMekdu$$Ycb^#7&yb5UTuFJj7YebsxXMxd z;|x`6t<1)`b7y3e|MRn(pnz@u2hk0|8~5VsU?Vggsc;X&dq&=2W)K&Y;#H;xtI0t9 z09{nk=P)J~#X0kny%r-8@_A%B`lh_JOwj1Nvj!?+~F}9)z z+HzuQM{ko#=Ekv!ynToWGjBOr8Odxfm~00TCgkmz7~5aYr-X#O)tGF5i(@N19ZKF6 zW2^aXm(lZCItm(gE$AV@}8_dP=OdulyOPcvh93F-UpXteL94% z$e(+aGg4lyrK8k&me9N_OWeg&rrNk3Q09H(i8che*+1c}Re8U>C>ys{CBke%^AHb>$z|)k~GeWPfuKz_2j$_ zxL}G41|n5)T^4`K0@q~~yVoG796rVcaf=rH&PGagR=&FulHDm z3#sTh6nxSf5WV`BueujkQ`G~ioBm0{by?4axngA0qf(Tc*EsRj5hxE`--HXJmKp%5 z3_#dVTv`P%2+(+Q3$a@Ord|BKjR0E#w!Cu%x1wwZSnyJIGeCMdUwprTw7USlR=$4& zKzhqBZ{I!~;5z^h1@ESWy#RmO_!(&BO;z+=H_pMAq5eRYV*Gtnj148dE*nm-qZ;HcjiK7pic=;Z22Bfe(wgM~n3eCAmmM!-&sB5ph{K`dm5sz|IGs09C zWn9Y511M@*Uky746N``rVmRImy$r+7;gZ^EQgfq1^d0!nT*#dkcFwxtIuA%EvmC;{ z27EgKhJ8;0!deBONAS&0*vE#$PuRz%Dd|=MA{|~F*CF5spick-Y>a`cOi&zS7I~EK zNzu z$)@ajFrXs1WQF$CTOkVzFqGwW+(lg00T@lkW$$UjtaMLq6m@Pb$lL%M|jy#?r`aK#~ zdM1_7AkH)SWV7X&+;~BvXYwg3#Q&yeQXQY(|GS<^2MY85ZqMYI8)PZ|+n&jJ$kKn| znH)lG`QPwNGSRHq$t8Ox>>Y@wXVTB4`Tx6TvU98~+y52M1m1u;t;IP9gBiV(f^YCn z{u8ewmDeJ@n}sMv>D@G#<;ek?-jW=!cU>oQ|8EW0s@$DcblGjl#^4qwe|gL~bao|1 zW_HwJr}q?FcEat(a#){hCh~6#>kv40J|&H-nm5yQ{H>v0xEUC(ZN@-TpgGiIn77S& zCk;bANA-IrrvHzO_(Q&B#6KTS6{pRiG10N;6rf^bQ3jr3W6=zdF;4ChF+MqFw`rSe z-^Q(`Y0&|6o>DG3{IU2<$?Q;A~?P;8Ax(m2>zObcim>sX@DhI$-sTzWL zE=}Ej8oh>7dkL>$Y`d3e*qweyfBGFcEzS`G+s~-&s2ap56i~cNGUAdJ=hfYTx!g6d zt4ET`2l<}#L4JxMJL-cJeX9@B?zMc7PXPT-`5>1ZkmbG=GEE=kOrT=ro`t7axz7Qa zS?;R#h4HiZh4WF^VCDozElNsp*uwOt@Q#dYA|ts9^6)mHwCQ;~`m%U39gleqQRKA@ zP!h{CxT<41b+hS{eF(P}4aVHpnF$DQXo19*27HT(gPja9u*L+#eoj%@LxlYt2F}Do z*l!I2cvHyO0b}}v{npep?6)SSVZSvk#XW+c2XDDjN1% z6H%O#i1J#K(6HZ{g2GaW<)kX??>hZNc4M>8!`BMi$u7R=vSEdbim!ylc{O`hbWS1< zp*U4xwr`(++A@)_(`ix2>&jj;+hXhJtJmWolSPIAT#N>yjzWh5@*@+VC{ zIq$^ub1Z^{>1U@C6(<`Tl4Rc=oqP^)p*pVsGJY=f)IQk{xsa^c4?PT2tRJeuQ>-8Q zpiK5d3FAOfr#TLAzX^J$aoD_uo+s@I**jU&#MyQ+?GtChpvgB(`xYUUjrk}p<0pVX zD;CH|k$V;FiMhSLR zaF@%)2(>-__cJOla%nBiV?ki@;a!K$sZQWXAlCF;9|b8orpr-a#*AakD#mq8j2XrlUcV8|%oS$LK*sD~jAekc%$N+uycW-6 zH)B4Arp?zg#!~DfU}%6gglH_iZD-*ptGD3S%U@J#IzT9tjZ&{QsUJs(-IJ5^uJ*sL zgx=4ne#uUwKLG~VL3_)<+cF{cZiI1YJ~Fl2B!6k%h`Nw3l&h@X5!&Ca$EN0=Ndd<7 zCf)ZD;um=;^M<-Y2k>({Nb&O09>>J)beYhFCMDK(Y|XscK%)7`gg!$)UH(_H#kO@s z;recayLK7(4}@`L!AGK75aN!}jxBa=vr@yFjQc9)9u_;4%))i%4p;R74!iCihnp8kGV1I!DGLzB z>C8v!d-TOE~@f(Db zGU<2AExVI4KLpH;+A=iv;II7@^#?x_i(iKY@B+V-QEw)0zUN-;Cc%7*2#q^jX5!em zUbeVdm6<`^s04&^pri;OlxZaai{Yn3!{?`rH^5-x4Pg(DbFdF4S-5I;_f%SP~P zd-%2G5j>rA*QMCcx*M*PypGGA;SZ)`Um<_FeV=(9R{$xw0%i6N_ilUDCf-1b3lGFT ztLo2$h`A_C)(G9*hQmdr+NYs?jvk??L|)qvJ=qSGowEF2Vfjai#Lrl@LGml+6 zFC{M9iK%4WPLQf6GZp=9j0+WAZIaH(@HnUs75c1aNr~0J;vG z@?bvO@BwrYYsH>x;55tuso@5Mm+&}J&e$-F1)9J}>{xQ+_SVd2o`GL7-GNJ1+VFDs z_?i4cjJ#Jp+RI#g4Wm|=hk09hz1S#^e3Mx`VfR-bOQ^}NA#_e!0ELIw`&+vS5etdFDk_-&vq)1dn4LiIVu zB5WTw4k7RIWIKQ3*>F?u)aUT2l(m1KkPkWMC$`-mXI&d54*B%cHQ*w6;v~ipF?ZBb_i*i_#*S|;t7X6njP@YSdML%JLs3&5g=I3i6Xq9-L_e&yhf|iwC zf*B?l_P-->$cGVyjsuc;>jcESVHHZu*y>`Xh>H}&gFMdrrRHbv0Xi{jtCOz-&11i2 zUU}>nbcaBPgU9%$5@A0orT8H4Il#y!vHry%kj!nL#N7UHICCp5LkNps$6^~(*EZmL z5h1N^5`n=&c3O-gk zXk=|Q7q~VO>iBKPH4~lUq-uN$#14-gtdi-PzYZp5$6j5r&U&iTM<<>2bVaUT6g}n` zy$?;S+QNx|8*QBv7@|gxNAPm)E(asdVUAeqy2MCioy-@{g_(QWd9noe>vUA_!*$@c zCLXrI%Jiu~*8VC>WLO;YS|^&PRp1-zKw#XAiUxy-$|4etH;BAto6RBtOEH}1Ct^vq zj-yQiEoPv$b^l(W$-ARP?kpXtnS&CzKA9jFdm3%)HY8&?Z(BDb87mHaED{?GW0hT4 zB<^exlVX)yM@JzcsXo9a5yG7VVRAaz#5(bnz>fWpwsj@GBrLSCtvffF7A0a^Hw3jg zK|()b)1XEIR-CN4EE(Hh(B>!6o=)trtCO%fDY0jyl)%O1bv!$fpabTK$);f+xh^f) zhG!G(3QKp>JVJE$uv7pQe~eiC@kA(p*x0+tpP)8_>2dBhG+rp+UkWtKpDKCxY@ z`~@ko7ZQsGmM8(nPa(G;CH5j>bMcj+!^J=(*<~;ZyQsx}uPb&4vFH*Kg1)#SM9i zShoL!)P7HFmnOOj*d%5Dn3C{MDY0UC*@>uxq@E@%bWOzmh1f32K0_>r_XG*g0+FOv zqhLpZ350(owo9)5Mr@bv^zSLL&jFj1)bm|YtGlAGWiy#^BT(!5<10bOAhA7@v73l} z3l2yE?Pg-x_a$Jrq{P0M659f7QhvfD>|dHBw3XO%lCfKf?PAbv#Ae_tL9LgF?NXxK zi9HMv3A8U0YfG-cucXAjN^BQ@w~g2?{_YN9XW%O#wVlLvX~nMrn`D|@T~V)hMeXj2 zdZR09Pgm5NT~S#{DEZTcVvSPFl#*}dsGN$N8GjyxlV|3Q91jtWPN1wq>PwE>Dtq9! zi|nv`dv^jzhzHT-5!0`m3Pv}uL{~{U!;W~w4@DmkQ$g`V(VSpa=u-|L!u(+etjgin zL`!Q1PK=pZ1Zok$K3=Fs~P|H%>&lYe>b0sL{m)1**(Y5$@dhnh6N@Z7IRn82w5e7 z#O+ImtGCgqh(&Qh;h+u_?lrhNrm2;^M{&bK;=Kkjn&xxBmar(0B3W?_!rX|>*4qba z^DYElgMf5J4`JREQH6aAv@$-y_k65JlxvlF4mEI(VI01IE2j6f86QfZ$#_Qs4aRE{ zs57<+;02yXH<~3piSXYD=&NEBUjCSjnJb{&U1K+zo>dZ4cD&1CN$5w4w&M=4i#W@xpQcoai^sfK0u zlg63IacywXwMxF=DAk^7fL0Jj<*-bT-GUDFs#jm5hg zhw3kL^uzT$?Krmnk+B;`soQ(uktezaDNO$?nxeKh%R?9DD%TFT=a@FZEmQ~TkeZK0 z5n~%9cy!!NKFWd1=PU0k*G}Ljn;e|be}P5d*?>c6;)8SVdIqk9Xn<*v-6s*)v4yqv z_W(erkIMC2H7dUn_b~-X!lNVpQMrzG1*_CJvQM0G6-0U>TcCwUALCF9LMrZt^eE51 zj1I7$r+EAP$2`TOurK673`)4H!L@-ZlxxRXhLrh2RGDxs5s1ZQ3@ZS!?cirH^P7oW z*A0BGCNkrC1LGI0Z20{XJtNPfdr{|Qx~lT*OCJA=NcYwG&!V!_e-^<7ad?mTzN$T@ zLZ&S2MxarDg9w-$OH5)KOpI6#<5K*Cr_uf*x*}{V;jYazUIyZXqk`{lkQ3NIajXwt zq7y>_30ZiLcbZzfVFjWpyQ`W2j31xJmh`;SQpD|RaaX6cxP94ScMVDxh2Xwlsr2gS zd5fnza1Aq(7P@M+b>yj8&+O~ZH;DwFUj&@@;^!G93KqZT8Ln+b94+V4hYygJ%jFYy zlc2E$7;W5y3c`5&j=@@56jwq}2nJhk!0j`JB05~V9h8XsIzfy!vRTt2FP7^U;v#$p zel|eG9n$LBXp!PQkE{kSD)-+it1lD6TTV6bm=Dd#qx}OFfsId?iy0HQGPpQQfN>&epETN`NlfhUSIAu^MgIpP8%fKdsBUHbj zcCQTDWDt}=BLY-pA1FnZ3u?zAX;3?5P$+|38Dz_V_vnJ;2s$9jl|h>ff--27L0or+ zRHlKCsi=WR+W?|@?Ex7I@`!kPJ{y<%`o3?gbl_)V)#A72A4AiaCn%mLy%E6B-%+~? z7<*NAOYI*4*jmK14cn*nT3*hCnFUf}@=VDac#7m~z#kdexm-i9^#S40O7qZ_)(Yvk zm`kA03-DaES<*n!FbJf|LK9=pAjr_(vb6LT9~D}TB{lArZa;+@9>J5)@KbWPh-axG zEhjbXj0%2?Cr|}Wr~N&!vtmwOxjJVEb!r4Qkp6gV=RRLTsfl#YJG9Ks>Pdx zuGt{r3+jjaq7iBDc8HNt*!CgHX%WxTwhcf?+pb^~J}@eJa6A~NNiA~$qZN`8ic&Td z%@N1|nGi>Esjr9**OJH7ml$LB*~oC9wh+py+NM}V*e~=wf`)|q!SO36#(U@@I%pNTEuW=^1|X^7UgGd!nMaK90HNAmi1BD;EOSbP zDfbA>btv=h(uM*bt|g_Z8ZpMh5TI|MH)Q-;m~+E0z_6Q9Aw{!q)Q1`O%E+;1qz948 zn!v+&4!!mfz@^x)qpUve(mvH%LWi@RxG6AXhUkuvRj;0_>XXpAADe|IkG7{AKQC0nE5Vf2wUdNV z!=4@gR8|M(;Q_xjr0!_y=R-o!vD#U`ppIe_~1;fnr8+3h3l$FVqi1T|Y##r@bKAmI;`&;A!(&u5W0_83KOsU1B)>ad&x}qF@%aqZ98bPc^ph1A?;l4vU*aiPsa)&y>LN$jc(qul5(HtA zDy`%#ezWQaP@@R`ZsjzpK|-kpvxctQQlskfmQfk?>x^S4y~*@I?|9iVP$i z^_A%wqQ^zu^=L1e4isih^iO2VorkEHr=wq$(#7cy%V56r;II=kfbf%8sJif!;Ywjb zW%+b)=)-DpNV)%M+-9EAA^Q{xQrO)ffQ#ycDy~QimMGG_x;1yJN6wYyi;hDC*PGBl zJUZIB=i-b!{HAjH>>%4idv6X*4|2Z#5*8)CT*9Kn zeG(QWUMXQw;c)&CJjoi4u)_=w zo8bX7d>0|iad140N3-Y~*n+vS@UNJVuo=ZX?7jUl*Zh^FV&RZVx27%o%xO#e9wP@j zSi56f<9T~@d2L7KZJ6|7N+&0knB-L!de&S1xIR3`$O4y`q$N!ax63)ftMlLT1n$i- z#=&)FMyqAWQsu^ugCn7w^{}}!+G<%2O3Bb+d^b)>*d4sp$Q%-Hc z@`}1{W`+24Q;T=p)myc1MbD)wB`_Fs^c276 zRZ6~S@9EhnVj_`2npAGThS zVCzY7of~U7>(TCk0#_3!UwL2Eb0S+*xsl$KR-A-q0}2FDGrDprF& zBlGoO{yfUOjjK>o4!(X0nZ(MZ3KQzZgvdV>(K+7pEL3>i1uaApAGla6UGQY%gR~aMPSFmQ?@XUxv1pP%()%b4&n2X zCt(fI6PTQrmXMoQIqFm68K0fxn(Mg{=-yO=G8-l zs{@zOAWTfF0T?r_6#)5>X}zg1M@z}^A1Aj8OiYepVsi9!&Ey&Z@*|V`kxY&p|50+~ zf%SPoFfloX_9_RO3SKF+3sbfMWv15(kRLgj`@9dbSKSf>LN=Q+{$K%@Vm+Fe$$d?m z@oIacV=KLhRrC=MHkjcGGpsj5;X@$aXFk)9ApJZuoP|(~#Qbdu^rcv}yNW%?1#0m< zj!G<;-QzIkLsx92&xWoH9Wq37MYfgfZc1O=Q-C!HES-Ff(&DtI>7X$aiK*I~9&HO0@&pECdF^{KD6~Ni zWq|)*<@(hgeIh)V&((q*9{YBTfn0JP4U?8@7cdzNEo~mG;c&R>Pr-ca8$FV9@LyR- zBLTHJ!E=ITu;=+0e@qxAD)ueuX z9+;W!@qciHL-KDy#{~tCf4jY0yRclFi#J8bFyLsRpPpLRmm_#2Qk@XKxO_W zZQuzElYU&pv%aR|6wZ_JbGY3-xUdk#1g|RHv%#7@V{-BjNcR@Mzpxh-Ztcag>+T6$ zhqi!$5mf~K5U5^Pn_c(x_~iWOeu1gxQ95orv8V#a?KS)kFn&YX;VEeGgifZHE6@Hb z<^zRT%1yHpqjpegDh=O-;xvDJ*;=jo=dkayjeGkWVI&elA z%RW#uP~hol1*SBLqJP&|CA|9gjH74@#yYl1J* zibFGtfL}!3l>&c9&>MJy-KZz9ngKcP7gGPs-VRs>lsyMnHSj`^SlKmkxoRS@{w?_l zIh@kSsmep3q&2A!p4;z{575Fy+$s@J0jiOr%tG*?hz|sEEkH2=YV$!4=JX@u9T7&1 zT?keDMzisf1cJsU3A7q(CD3LxN}$pB0|0ghpCA;r$L4gpz24$&N)4_Tfh4^2@^5PJ zoOsg{4)PtWs+Yi{s~!f>tKU$EM|gbIg?!W=5(MFr7058Uz!KV#VVwx|l15ODm5dEw zT!lwfGK!b6;gUv^fu<&7g9!DKR#488j7?xfMXa7C87CnCVXMgyG{Yv7aWA|!AM|Vk z7ba zpEEOOX6WVrzTfYoHD}LSYp=cb-fQ3YUdyDW;xf4o@zqLBBi0Lur6bk}gqOS3+v|Zp zZPJ}Ezq(0}PF-H@)-C}#=2`M8kgo)JmPwXwd{LZ8MJvezNjtb>mR5o)l~L=rH-J3P zB+oIw+2X5}6oaM<^q6&(3`2Mi=sQ4PY|;%gzXjr}l}rW=wxsS*KtBQD6QI{YKiQ<4 zV15;Yeq6fS-mIwO(#QB~`-lpx*(g4~(<^Z*i**K+BA6mHLB-$!h2X)jHV(PQq+M*Q zbKx^C8@~bL>=P%mYA?&`$5>Nq73smBxc%>td%3zOOPu8Arm;2QB>y``ph3UH2&~k5 z8-aS=CIZGu{#U(3>tns^I>XVE{Jr?e2HlA-2B<9bm{|H~Kjc828J-RVwgDUdVT=*N z7J}PfIfG5%bzDAcE6riq;5Fg>;*)252IE=LD2(i)pf}71O0T5^c<$C#T8y92q2k%* z_d)YJ!~B}1Uu>3su~GW4C}QHxS}YdK!N=5w;v5s7ZGN-NZ@Tg2UkD2B)f@0ejvx4` z`7g|)rM{&~TQV=rwUy!k&{iy_B(Qv2ilgf4V$)L0L+LVSByFYHSA#~(K+rL>AW~5f z?3X)JBd>^dKp8lyid$CLCKF4qO#KN^pjeC?_*!NlmKgk|1)6cbEc%scfla6|F(Ml` zgW$8FT*n`07ba8TvcDYljF&dfE+9%3hDcI60pft6@R$)ej}o`=fy;#QWBB9LEqr!> z2Ck-@IuNCk86rvPR4bn~VLqHYQ9t2aut)Hi2|YNfF9Y7i8LIFzF*XbS#QI(gkxG>c z>F%8s(vXdFO7L^y1Oz+g+={==m4oPXOhRyL9qFyYIyal}?5{6lWBEOq@z-Zl*A~^eZL_S@2rB zndFREIu)U5z4#Nd@B>-+iIL?6q$Nr@JhPNF_z0Sv?kwEttm}5Dh@k9qX!oQ$iuTLW z`27y)?ZXarza#%JoT`n3Q?+cTHa|ty=4W8yC@E*Pl8mA@Y5Zx>edx&Vkc;rbd0d;U z7NP7m) zIm!1I{Bmkaig+vSgukO_UIaw$c^^{BJ-auMDdaovC^{%h?sGjKIyLxp4=MKZPL(u^ z1}ih4OfR3g4M!C3x$Gx#Lj|@0`iD|}4G$VxL8*Vh^{!BJ(ZQ+!Q;|b0rT!6p<)U*{ zErCKLRMYlt=s4ucl9paex$I~}LarwuG)usgDLU%Dy7t6=ixh^d)5fuC%lQ zKNaDwjt60i$iW>6IVcv8e~|-!%3}E3ip|3`|A@sR4_^$V{GI0=+Cq?g;!s1)#|Jv> zq0W#YJ+jpt1Yn!*FibbM=kHNoQ0%9rH7UJ9DK&DaS>(wv2)6>;lI5c2s>VpBQjn>Z zDoqr1fLGGrNx_X;kqJM3S*u~uVzBv_Rj@c#d{lRw_~Ft&KG1$JEc=B@9zuqypl)ad z(UO0~GCPc$>((5rM=y7B0Y5<0Ojgu6!&Ss&`UqR9AC|uE#I)bg(UUj$34$8XTrh&6Rgavkn-TzZ~8_$`)el)p7`MI$$Wh9(?0`WUVnS835Td% z=yI~qf%UC>1Yn*a;-kNQ4+kksUp~HZ^iZ{>XTRj$(?C-!c!oVUTVBWZU(|vdV$xGr zpaH7mhN2`VlYxJI2R@B96guY&J?GPGHRryDic2e6a7pG(AaT&PN_?JYnPBI&T-Eg> zI4CLH={p@Vm`k;9A&x_X~r`*!uJ&Hdy11pIyOQfunmGFQkwBbu&+EE7QWZ!#971D83;p3SfV9t(j z2mY%SH&!a7$M#i7v-bmfelG%DUsp(9wGhI<0jag6UTSUH1MEgj=~I-Nv%DhfeFqfn z;{a{1kcK6}PR62kdi*(olNA<}c5jY0FIU~?JH(T&7Xb0xh}(PW$^2&Zy`F=T`;0G? zTvY_8fNpK%6K_#7M|npU!ASD)xf6oJ9Yx*V3EKEPP;c$oC%HR)XOkB$fV~9u-W;_o zFW8%=6V&7Qg_8>hI;UB|D@EkWOAR7`edp|pQ`NHE;N39Sj~0ywzmEKqbm7}`&;bE3 zl4hmkhKo>l7JcND%7QrZqarzq0uHG(;21ut@>Yk6oRsC6Tp;h3H-)_J;R|u}_8R6z z4jeGlY+_5av{YQQl;4H+*ubdES@c!qHQ<1vLthlS73Yc6#JPoNAE`gXxm{oYP#|Cg zE5UUj$eaLzWs`COC8+{=<6J^hU&Y8D_{^Zc5$L%&q|GC<{s!Uo0+f0)LEMJ{V*`}g zi=ZzdFhBzgs!Iv_r9m}d?p5UVDP~rIzZ+Ej1SoYgK*37HGJa?Bci>fnL^4QrkYoZ# zvJ5VNB*{{PBxCM16#Wg7d=Dg<(vrJ@VPZa#%`nLNNWa4M2W$ysIspYXr3MZ8h8=k1 zOec>WFeronvQi%w*vT8wH_g2W9!$4V=R1QJIUnAg=CmJ@n?J|X^Sg6#W=ExTsGaDV z$ew+IIN4<*P5m78 z0AU8bo`Np`mwiM40-1XdV9UK~DFP1lLkNHiKlx|oUQGsj)ieAAkibW1)tGip3&OkW z=HNAz1JyH*{11secma~Bo24OLlJ6+%O3K@Z_Q?EE-8dD&#AKWID5j(Ts6$VU|95-(;|mv>A+-a)m>~SIPVd2gXKT)J zY+qa`UXbMPQ)XiK<=r|mgfA)yjx17e+o4-9+v2$hJi&$;`drF8h`f9Rvp)MP9MX{e z^G3*_Cb{M`jUV9>mgi0UqC(RO#6*yp?bf zx_m?mCgY2ezRZzK+d&?xGHtRI<^j{$1|;hs(a1#=vw}5AIdzIIVQ$e=z^*FJ00Np9R0C z)HQ|Wn*UQK+#&XCIe2yk6knHJ=}oV}H*}!}KSi3KNJ9qw(T+lS#)TDA*+!PRZ= zKn^4yO_rg;r++LBxoQI|G4GJHWHo?DN2;%7l)FC_`~trq)JR6f$a4rOZ6#(WQi5;P zb4W}S0M;;WwXL!j3nJJn1aYSvLWu^17eLPa!#&BDNurr%)WFsZ8he+>O^H7x($W!i zdWUFF8?XArmTt3SQX<{CQJS<@x@(Wnyp0>}(w%#xNzKw-Ev9CXOS_Z@QACe)RWnjS zuAo+jff~FiL9NhNy&tPqsH-U*#!z9ZRW7RYR9IEQ&C|sjWZ$es45LPGS`j2 zsD49{q$NwBsa95jKN?!-y+}O?<&#QUP2G!6E3goRf+ozY@?PkVRLf0Chl-Q^c5Dzg z$10H0b26epQawi!D$xgl-y?KEwG5{kkdPYH(+zz`n-nU)jVdpdw8W?JWh9OHv&jFW z;C$8rbs^FqWcBOdaHzVJcUUMEUy+iiBk&i55|kH1$z-TiG(KBXM7TLQ;iYw2Uuag@AjcCC?yCW#4Ty?m=fsH{_6%cVzBdoF&Y^Te^F{k%O84 zRM9CF9Q`HDxmLS#W7G>t$AU%|#y0bDc7r9tk z%4dVh%z4FpP*m3~&bP$tOKE(k{geU&*K6sWQM{ay#-D-TMfc2&CBCZal#4Mf{Oha6 zv=Gl&I9x2H-s1oZ7O};(i+9kW*`)FN>|Zt?hOqDZs+Ol*Ja3`Br}-#;hI~~GDHr41 zYu;mc-cc?4s&aGe-r2qoUh6cFQS*@$t*Rhh^Au#*v8uomf-OnOBkJXM{`~5zuVNqK zpsP7}jcB7(SeLIoxg>dLwc^{FoIG@SfUgiCq7)-yFd6AFO5Nv3A;5XPFNAkP%fsop z&GhgJpiRLdA~~ZWlHT4(dRHZ;$Hvwgcp7|sBbFz5e?#d_nH}1IdPnlq0=$}mh+0N< zvb!Kd$Sv+{QQnN@jE{kLdg|}LO|u0)HTXcX@hJV~BPcFh+7TsSa$B7)JFE=;fS20N$TNm(rm#SqbN}>L~JGE=c*Vx z1?74GkOwreWF(xr<1F(1W6XUlBrk#_@FSFf;vYF;9{00v9wk1R75J><6*zsy33y=h zkG#r2=NRa@L~|ae%Rmd7<&k{^-VUQ(K4{0uKN$+FF6_c#Tn9G+cAiW#-iYzXHvHgb zC@vGPK#-un5Hx&Ym-ixUwZf>BFg~Q8Kb|J`0rkg$o`y5KHhtP&tX=VMh%~SklGp@Z z>r?Er#`$L7aHL@hR3ny3AKUGGw@>*@zVn9W+w|y(*mo_kP+wi_yzgQ4dshX zdCJvhwOvs=)l-UkUeOw}GIQ|itw}#MDh*Fv>Y5t1qjV)_vvCITP!xe#^KvLgyp zAKZ<1i~iJGcl5>_t{04P(QMitEEN%~LXiIuq>;279MB_J8->;*m}(F#M-a`61YtAm z2!@TbBlsW)sz(We`w^t~X+RB2?A5m+NK@=h6#_at%4`OLD-FI=5#+IfxwUW0LhrYv z>ys$p^e6yy3t$2PCjbEZ4t)4eZe5ah7@1KTV7RexXh8w;E$leDG>bLDx__jZ)(C45 z!jS=NIPzUEuI}P7UJ6R=@<#kYaPg3@Z1Fb_?*`HV1B_jJ1P1E$;5vBM(9-MZl5 z)^v0ATwmiyl6|K-aj3HHrkjgynp{|fU80FF=wA8=9Ez1bI5g*u@iF!Xb8xBx^Y#$p z1#Cpa5MMpz!9N76ML+~sM}w=(pkZc^@m<;)Vc>7c3ZTeF-B`1c*Gx>wYO}--xOs0R z_fQ*lw0dw&872sqJO{vy&%A)YYP(@q(T*=o4~8j3$KP;EPKj&WO_Og@)FqohtTfzI zFm%}D!kclJzl6I8txLA!FGMk|?{Rp-1P<2sFliPV2WnQW>7eY^X>SykQ;QhO5yL|6<}t#J|`H#En#t?Sz$%KO%I;L>f>u@vp7A3ty-e zL@tPAwmt_CWo=>6O$Cz+3vgswpAA53bsh;LneB&P9LSZm)hK;>g#I6z8nj_Av`v^A zgqQ1RW|!mIc_g#qM%Ep*~Xgie8oQ3Hd9(Lv@xS&L@LycIxX4OjD8Khe7l*h;Urnfe);uc1{jkOMQ2ML9s(; zK(nd!_~-UF3`UR^D_z=(%`8-ojZ;mr&|z`Nd@EoPD-ZOL0Kz;0{=)glsf z8?v<{WXQH1At9T1MQWB)1AvgL2_Fcv8Xx{ca8)$8CmQT9gD9>~5e&<;+LY;grc7pW zEzvE-)dhOg4@AmE<1<9cL&y**Tt-mqegNV#fFJZe`0yWsDbe82XmGF@gh<5*hDB;O zMS2m%!eTN-`tqnnq!FO+4c=|l)d(3PaRb8;NkQwm1-~E*W+JibHJ<<&CdG&U5S$SW zE{_K5%^*funh52YJc2YL4DqPpbXi)6=Lt=o0i0sx9l_wb95_7}AwXPeqv7jzlC1#jWzmJ}{k~zfH%-Gs|`_xXr)scXy41i`(gA(;M5CR)g22KQ1+0+`>(+ z>Eia%Q?lvecFWvnOc%GKZtjk{xD}G*FypU@S~N1g6om;_w(o(Tj*!UyQVtf~dG7+& zgiz0?dlA}%P|=&iz_}fvJ6tb~Xj{4+p(}5{XMNk!4ur0{#{s%s2z~zi&mqemgjW3E z_i)R50HNPbFGAcdgm%>Lq*N>v)CkN>vxtUKuzrSm39rM|Ljl2~fl*;wwWt?iJ+?b< z1wvWCZqC_*P(Oqo`nd0gwrY-6-(-KezO8xyLJe;uH?~zX!=vtA0J>a+*57gY58K3e zcJcV{BQzMWvNW!gCX|jvzuFH|zkt#=A!O(mNf4Npfm6SJ-<{dZw$nUPiU(5{!1Ap0h)gj#Onz7vWBYG-gxI*vY zSq!Z`uXbT+x_C!;k}Bq;oPvVIN+iz9I;naNC42;o^=pNM7c>#xQ9kogblD@%ZRu^J zsc+o;JF2h#EZQM*cA5SuW|uK$!8=GhgS54Av*dDl%6O=nA${B}6FOn5C3wD%XO~z=U0m1{f0vkdR9))Mcd&5AW!nwQnGLD-BaA25-y5rFOX~sgHLR`z z+^LNj>bXpNma8E7#xWycF*|>Yq->SdExv}okV4k(80NW3Tgr)`d}B#*;g5Yxt4scmtE!~djR`a`EM0pw86;sB{~9}cIq zF?on|RW#D#TTM!n=veSZ5DhNu23dbW2F{Bw@t2UBy0P*k-gpJmfxx%0$*Gk%K#mtt zZ^DxA7PxBIBi9_|17YcT=ihu?iyi()Y<7qLej6;EPyHU|+-iHzmvuWmY5AS@y~wXa zEpNyD1zdE&=Yj1`^@vk?<4d{o3upcpvc1(=7h1~>Y8^WY$=SK~Aq+k5Y(;aDoO@+E z&GWYx?UhRRBGBqk11Lv(v)p+M@lHuMwBWxjr=%&F6EMVL)8d9*IQ86$y+gq9-{ekg zW^|mA25ofT4PhxGQ=nlsN~$yCwsT;B?*q&;|{h4YvCs#oXqXsEQ~Z;5H_k7F3ajS~b5&3;IvRQo77&j5e)F+ zduO8~nN9y2BYWsqjH3CQK`Ga?k`C3myHOE@=fi|O2H`RgYR*lv+6vbsxaou2K6boo zOp|@BIU?HV3-YI{8_oG96s=41ZpWRWuR6a#ESRQmkn?xTc3d$+l4CBIT zWOE!tfi~&QnvFk46(ZxL6w}KDi8g~0ZM34{M0&;AJ9|}NLtD^yHuf`$GMs~xMx{Rw zdPT!CcSHHJK!oU?v~_Dxs=?HCO`>qOp#fN0!3+^8tuY(a7b@Fg6JNz9&}Zd^a($Ia zqW=&iWz1DVyFAOJQFaGNa`+A_3Cvr6Oz6z(2({S3?jrOLhvT4!1Z_O@Q$jOmT4}@0 ze6gAI5t2BZ)}+HEQ%#aRBD^!CD~}x&tgtu zHy`gSycl7CG_1qpB@lLlL(5k}db~o7eWxMzm&INz#u^{(1Mkjiv>S z{B$>_WYOk4GpzXtr%8DpP&R8CH!$(Yesr@cFvuT8yu>V|uwA*UjCe@oh9(SkB1IIU zely0J3)vXtqaM6?>V?w$!jihI{gUZnQ=;G~lHDVf>?wL*D%(fFz&2TZ zhLWO0xt_u#X9@nQ;_P4xw(&Fn59Ve#H^^E-ON!X@H_n{YEzx@?<}p+hB<0~K^4?CI z5)9s2)H(OkCQ+HRBsu2w7&MUR7uCDcM>nEnk|c%tgW z$ZFn^4&Q1QC4&Osb~5(XxWSC6Maf=~easlPAyfB=9cGksb45dO7IZwb4!IRq1edm= zG!ROy1Z2)|;?7{^OWd6A(Mi*fFttX^)N_FH_eAk~aFg_Q)5yh8gNn6_vjPiECXFDP zQ%WWdGl4lbGg2>;$r{0AO6pw9R|)SHzfETS1haktu5Kuioe~LVZ6FsC31**&$Wu~h znalzvvtL`8WeaB60k$48s|At4jBAZ3Gs2m@0VcEiO=b=&vjKwH0CC-l%nnkrVrKIr zGn;d7Vs?7)i_G3LzsJRQa;ot)vpHBW8ys|3G%R+L+pj?-u9;{43L%O%cPP32%;ZvI zepT_EoN9bcZdje62EeDR8RqiX)TW!-Vm38Ts<`hD{ZT(=D6nx`s#s;vJEZSe7KVm4 z=P{HL8@HHuhnCZNzv1-Zfjw!q24is`tY4zt%tG}zw7(VOV>}nVb!#ft8Qx=TzgHpb zTX@XoDKmUn*u7PFD?I|-g^5&QmvSvSQW$eXe4D&BnF%8z7s0qxQg;!)ZN9F{?eGgT z!WMiIv1fq9h@FIx8Jodq?2qw_vHy;*5qpNMz!n^V*f#+5Z_-|A#(p*u`%c>pyy4)z z7-b?dX_iUWcd=N#{X;B1|J|_hj_9{x1twyEwh<~BHq6O&K^%sLLk+MoAZ4QtL{BJQ zM8v&wbgDa?a6YDPSMloaTbJfU54^k4hQc&vAS?^s_ck!^H`2=jE?`EHE)$9A14SWS$mnd@bFX4q@xpDi)7xL1nPcdYaOnf zSxe1}SIme-=XvWgGAyXLMStY1*0AM~B`$aGmc_#p7)OMz8pG(vVm@jNqp&J8lI@T4 zNHhmnPK&??RcPfOi#7-ccb+Sxw{e{sgC^F6?_sPK&rf=V6~(YRVpu>hyubPu+;8*t z@hzBvmdoN&{GxGTK~bRif5Fj4@oS%=xgk}W>E#kfXjUdC9t*&7D0C}NriBU!CyXe#9Tw) z{CTRaZa*hu=DLRSR!{$RdyqJ%DIG}ge$2Rii}GyV9|iATcR&=PffyT}#4(bX)EI4^ z?XDN2BuUS~y73mcKCHN?{EM0`Ja^$FC_>Lk5K=H4HX5B{boRM^2i8J!@ZmUW|Lm9vv;ju~&n(-K;XehKX)%Haa59Pky(uF=SJ3@zMM+SbuQZ45Mt z&`?<%G=)(AkK>@d1TDJL7!K)#R@THp`w-e^UK})oQ0_*@aJZPz!QY94W)WIY8V9|E z(3;6{(0+v8KQ#_|IiWvBQ;SJ0o6s3}v=alplF-}Yb1{HW0Ap#dCbaq|anKw>U%WRC zdM%+(i3cQ>ddnsBms8?suNSngIA|WBobANOdjp|Ai?55pg#OwcM>~X2+m&(90z#{m zIOt6R3gwAOZ788hed3_E5W1u|4mym`r{Xp0HbTFMZvi6+{dsvDhaVD}&{~QKEsp0~ zLMSfL#>(p;wB)Hc=x9Qn7=>c;rU=?U#6iah+UMh-ZbHY$a~MbHmGP-fAe1k~Vp6+< z&`^B&-bttn`#&+XcM&?eIu1ISP&poY523~J(5Zx$;bv(J-|2+@DqeSH5L!Jpj`ltQ zjW6~41yqistsr#CggEGfgnsb-IOs!!-hNvg^btbmRmMRdBebeE4mz9A*^kFT=MY*K zUk)BZpL!^cb}peM@$Gm%p^o_4e3H;B<7>W(&|ll)_%0&!pd$`iO=vplgx(!r^S>wbu6XFn0vg}m z{&+zSs|cMG&*4=HUe7iXIyk;`HWB*Z&*J#D z5?UQUCuk@1y7;khE1?C&aU8Z2S{Xk=?jY12KRR^~`W?&(V@hWyp|{14{<{c8)?#UQ z6Iv6m>w5^D5u$N;!@;gV5XJN63o_y)K?Mi_j`Z9EVE?9o!xV?MG-rd%K*_dDU^W*@VuH zhh9l&T|9IEp$X&W)r2ODn>mCgjGNaInlNtW5}Gh>UQcMkxS2<2!nk<@p$X&WU_ukd z%^`#)jGG07E{tyhHxXJLzZMxvXu`O83!pq9vrO#ixik)RTOw#gBIt*SpyEVONg~LR z2pXLTQW8O95<%`n(6~gx2zoUU z^p`}?>xrP%iJ-qGg5FF7tw{tmB!bo@g5FI8H70_Z582+ z3+K#a&7>wmpp z^o+*pf8EFy4www-xq&G>sSC&IXKX{T2aNX!u!o2}Y{<~~I(HxK*4YfCgCXqX#;d_& z-KvwB52$G9El1nvsbN_z%>#1QkdyvnA^HS|^l0YhI@kq3?m|fK15w)}C6XT{s`4JKso5A$w zC)M##xn@gJYIN(CC6CKT$!`C`BaPP^MTb3bqXq#d$C|CxjCUyXEyOlyqI<2AQHtP_ z7|FI$M8Ybn(WEgV8QS!RcX(PCcHI~DpeOd2?OXmYI|z(-`4_kc`H6baih3{_lks zRc6)~Z&|U*;+-Bwk4hun31Kf*ylRX&6DaI94sgvH@MIw4)JSm|hT(8OC4h#8JG;Zh z)O~?VI>rqhYx{|GSt4cLtwJrMi{fFrwI!RUf;iHW)m_G^pdrD>kxr657f=19@5nK*;aXz|%84O$%zDGB-6US#h#l-y) zffG=2HeK5(5pNZOD@pV!0`q~Z#W#1rKcMqI-Y4c0h(35%R)rY&7b&=KUuW2btvNOf z-46-~H-8i@HTh9G&_EC1?7)qd8OyBjCFT ziPNUHvUuRNd^ys>i4)3Dzw<;Y&b{dPLAa0#Ek6Mq51_O)yg<{5<2l@v;zbkyanB?5 z(Pr_M*0>V}m=SHlgh)_SGp^yBMs#Fvh|B-mbad3F1?fxmuiivAM6>QZ4-{0me4Y(6 zZm^O!XRq8QK*Yj0OH+lE?_AA4EBR+R|5W2o-E3qd?1Q1r*+lX-0mS%bYjZa6nPi*u zP4T?a$<|BpMOJvWhcGOOk%s`)8))Y4S52|G6ZmXI!86ees1m=~;@h@_=Z+{B+dB{7 z4-9OjV~~TtuN3ilt;r~JxuGMCXODP^4rc~%BXG#A22h}2iNb+bM?)$m5$sR7w719y zw=lJGnC?Z{^A%VWAwa_@kR}8G6DhQ9@$>QqHlEWYN_|(k~bA}xU<6xCzz*UVu}iEF)^h-|5xLhzV-3(x5eG9cq;$jP>pi`dZr~W ztK$c=n)F<|R67=T$3c@qD?Bc3VIEu-X96wmwaKAL*}QZy7&I0fd?K2NOM&Qaf$Pd& zKopZAhp~(CCrtE3x`9*t<-5WCY6F!+#_t1#%XGU3y@xS5lW+2Hv2iyU;o5nWRtWJY zlMTQ>WfExmktDPzZcaSz@hA@a<%ox(2#Yo`io@P?Ebi7Q&MR;uqVeDrD4gB7#El#m z#lfaT7>B*kSR8JBg>jJHwst%y!m_kQaZiZ!@HdS6a}@VvJnq>jZh^pA%B3=jV{aH! zW_L$%i{f#^qqxQKxPehzK5;c{H>N%$M{$_9+tx0{pD^xduSniU5eL!;Zd(*56UUA$ z9Pf=NP9ZMag8M}jcQ0|54~WK_2V8ecj%Os*$<)1zjJQJg?gpN34t!gZE7WqKbWkmm zLTKF0j4l0Gu@VMFTT(vhKu4E^1kZQ(EIyDrh(@*dN!2g!0)<#}MfP z2`|hh&sc?f1$>AgFSxdY@yj=yZePWZ%3s8>nHDwu;Kt?EUzX0U~7*rC& z4{{hG%)0>LxG*7fAwo#k!lsnvitm#&+<9v5O7V3SU~1XB86|nGg?ML_*a-t_X%{*1 z#EK)|brz!6B1CVO-vJ!;KAh8^S#Wm&hwdnXqlI2dVs?Hx21@iGTsd;!Rhw%*IT*s4 zygjD^?!GG|M|125Y(^5D)F4D^$RiiHtebZc-T;2RCJp|lQ&!8fc95gL*3LBmRuhxP zb$*VI_l}}gsjSuBQPX?`2;AW>YqxKa)$;k>E!CbUz?^h5BB91+qwJ9rC8v74*; zWHCex!nq>)DRdw&0RB&+JQa?zr5Yhi=VWCyb0Pk0f6CY31a}tA!HNcC zGya(-BDrjyRH54zxp@qXYD9f_cd#x(xaqiq^Tm-J(5H3$Bb9X6xB8#Hgi9V*vLR_O zsc?%Lk;?^FtSCKP_G=Dgq5d&3iPk@+m_(u?*n%-vi=gfSs=Eynw|sEsy98$y4Pu@7 zZyF_QpPSEUh;lQc7&oHL0sdOVliQq_OjM5w`~z5AFyDkob8chwxtM^8oBcFe^eBE{ zlH3G+rkzb;!f8tCctUX>(pkkM0yyO-i;;lNEhURvO%}J1#q|*uO?=#7m|@C%1QTMi zD2K?CQ}4qsvSLy}1-!my9+otKvETLNdUyP_AsvqkITss@teESeeE;I&1i(o zez>9KVK&~~mgN~pG)mN84J3-lWuf6JrMsnAs-?L*(p_N6+l55{)n_z1L(dHy?r#<| z;MM0b1MY>|2o7h=aN*CGkD-BAS))W{B)S~-iSV^ab3CcN4FpQS_Em&Eap>>Y38$@y| zH)AV$TB=i}+RX$Y+64TWbeG@V*N(?l^QAYo`iEZPAG!wZ$64m@x6_q8X*L`J_K{I| zivQ`p#S78mBSui(aK!_QEH`qh8L0!wYd zJ^@~%imDSYo3J0E4?<*gbALL8omLp5@~6Ixno!izEVnu{+pSjSxYY%Dbh?+i9GrkC zXe%ATi41)?U`_(_KMq({DIJaNic*}Vb+vZKbnqhuwHS zF4`A%II6)l3Gp9HLL!k38Dj^Ck1PBOPheB#yOeTP`3a85%1q~JWmePs<@e#~1)TbP z4o8QluZO`+SVC{-wvJH}LU&F`&1oUCXoTr}0cbZUCQeYlv>#NOkHUx(q!2bh6nmS} z9Lmv;y-b@|+-K>h%-p8<@3g1&?1jZW<(f|V4PlRI>@$a}0dII0pPm*Nhj<2eRJ-|B zJQ~ueVTOIMk$!BbME0Gkhui3rZ-Jr*!2p4DJr`MSg;B3)GSdRgLU@lyoDeKaM(;eb zexkj&zA_2^A>ety^yy7L=yu_lYI|*yEIr@ms6Q=I zGPeH0X+-=B$tslTJgfqTJX2654dD3PAJTByxhq@~&HDAT+C}vwI~%aa)IMuc6Ms6? zBl$aK?IiPJ97BZ&k4-?c!zaO8TJYZc_m$dl33_)h; zIeeLuWofldo`H&gyuE&7^~Md-nw`G0{pY2o{VX!P9KJ zioXoJ%5nszt<2;FM?U^C@G3KTm6^QCz>EDq?1Bhh;eJNZuKI^eIrn?eXC2fZ1PQ+t z{|C~xrT!f_{)=hr=v7Ty7XNz*4878)F%82bUxxlWI1w@TQ=zjsRje$~dtv#6KsI(( zDW`btHW)BgSD5AyYTQDjX8_MSe55|wH;EA_RPLXb2Ul%*<^G=(1c$&8PM-eXC>A=D zX2+UIjlszQD(~wce09O#^JI87#j(O3?^kq6^mmswuYjx{N0KhHu*=n- zR$%%=8z%D^3>}UZ?#Fv^>6vxNxl0?7iviQy4-Yr=(sN1ZIi$MZg%N&lhdwtTfb~xU z2)7Zd=+^=J$Z!JJ1PJICxs;iEFlCn4vjw56-2%a};R;V;O)g(6ocwKut2dZ_KI6G~ zjFxhXqS_Uovmrg0;kI|9nXT4WGAl(NRc%3wTn#}$z6uYF^8qAbO`BE{|;vr!!T=;)!h#DtveBdZwEzu;Jfyv z0))_69Jw>nS#;<(1BSVRS~nR1nks#UH_6Ji2Ov@@6r+waMFg`E%rSzPBGeTd!2$%c z5rn_I;SXT`y%x(#Bt%{=Z9wh@R-Hb7h3Ev};xPw5@wRAm9>4H*IT~&3pLl*Wd!w%) z4D@FJRpWE42KgNTe(*8CM1&>m#uQ{8JIw6>=rWLu>xUOU+6;%rVR|(U7876x__+S^ zZ`o(OviqAqT0 z4j0+?X5z&;trbXh|Am~ve>{uYq0LXnnT120pI*Ii6`qv&iGwWU{2d75_P;h;Fyl~1 zK`s%3)KvqBf_;G>t&SuLJU0lSf4PCH$498Ffo>CVSgHoi|G>UZAzrIQpJ`Ob01}{=K~{B<(s8}F0m=c%gP_*Wi0Z6NhmP0l z$MC~JZ-lJEm(s}%vj5!Fg2o)=klK1s@n6<*1AUtXD8|!KjZkLpS7x0P8j-wSL6YkX z?Rcx5dCEiq!*8S}S_v#Kr4N6JtwefyB$fbm`xjNZXR@IP{hie&VrqVJar<-aIH6HS z+OZ~=8(Gp-a1RyI+gM6iwW^);I0H&(h=`yb5$;h==&$WVd#b~+=v9y2&JprEF7<%t zYAW)?Ut^Zg&rA>a@(3OSa0do!O|(jk!))G`vk}oFtgmN|dSECMB}paGgAAjJ3&B^v z3x7aIx9veDb_B@aC!+U^yk%DL4w-#D-XrU7oRhHc_q7xhHosy>>Ths@Zu=1t_s$jtqR(Y4_^OWaiS$r~=;InQwqUwJ}vc~vrj;ye@#?q@0 z11yGBG&U%vIf$A=sxg*E4t{W-1$_>U8bDIkzW&rjDQwvb@G|oO8WwtVE8J8$&?u#$ z=y}vOF_EHQ)G6rD8$=3zFQ%#o^=_U0z85au4(jT`BxLz&_)%?esiV`KYDJb)eGC8M7Td3^yRSg65|1{+$78!rv*l%1B{mO3`h;{MBef2aOs^0&Kfw( zbl^WR+~B*?@EtflN6}n)nkz+y!RBT?U9Rb}VX-M=D~qoYIladF>|$gEHkjQ0@|BG% z5njhh3apjsqf=QRiwc*OH`b568pq-9R;XhKV7OApW@FS^ZMeQJM`DxE{RrRJt)&BP z!GTz%kq2s^)U1h8jNAN;6xn@Bzio04_v+pZ>{lVrGsLS@{q!%*F-Yjr3=F`~U;j9v z--55B*6o}JYR^PTR<-(4@7zz@YI(}$0E%&D&e8FeB&xBSmrfLQlY z5MI|>fSDA$HtNqpgHc;XEk$N{hoUn)V-<-u`KLibpx4AF^CNuLwL*0L3J4T@ooe%k zMdr#BD_Xd6?>uJORKsc&K5|kz zZnrE>M+=ns=k{J8Nl}O9hN}{_Cimt!SgB1;!puGE3XMuVp$LM1g1N zBd{@nEY5(i%<5$GJAq%fI^0o@(So^*UBU9!mz7KRAO0s?!s}qz4ga>>zc9Mk*v3F-e$A)!nC7vf7qfq_8&U~+t_JWb>=unc73nQz#txyuiSq3Xgt`pM@g zN0%YT^a;j#+BJOoWKTBM{#XU*S7L=B_lBMOmUP0sK@7HgbQyy3>|G=!R;FTL0p`2F zP^zOpkJ#WlfDtAvLAZ?2E0?d9)eqn&5}k9Kb303>5dMQlv4OOpBY^LZuQ`ZwFKUk{ zr(W_h_)Arj>&NyMem7a83kn?S!~GP$b2~PjFdU`64^jkkT1)#Rnb~a6`-p5dF`Ja_ z%3|b6-GqJq`Ta0LO?C|*J;QUAqGr2%qbH}+HSj@wIR(KUhJIHi4ruNHs|n}?I`o14 zP52K1C*d42Wj_h40jXMPHYW2kG5z(O?j^tb5;DN^fy~b^XLD$|HJqGaR>GwN6bm-erm2J*FhLV)w zF3#PPjU5f8sKYZI(z=VT^T5)5OFBGcdrt+&!o7o%4@U%_oQ4r7JDhNzg3oNY{yxpz zY(;KdS{d~H6A)pUq}ca*vfcK>Sa`$3`d+06u00Ub-VCqwlTig7`ujhnws9XMdKt@@ z8TgK&vTl!dHL~#w9u(^f#^))sqW_ z>c>t;3}M)he&4O`*3ppI>*PesIjpw|OcK87P@SvQ^1q1XBX_)_>iZEkiNfl;KBB(Q zpy;r_vK-UX6&T7_LWqUgI8W|@R;BBITFynzCb$ikYNvwIp*@Nb-J7L3SIG4#xf&9x zcjwxnVimIL&P~$F-xPtA3a46?+e=p4oVB6(a3*{d(<;>QDgDRbh^fhPw3XJ<-q<$n zgW`KQ1ADavu!EP5JABp_^E*snjTV!hyYUrlr-O z_{~;x9V_=9=AW%5XErQPh~58i!#Q%9iAn{Ev_(i4l0R`7X88pQFP7J1 z>pK+eC9gk?ui5CX5cxc)uNlrpr=xzAXg7%-hfC!K{U?tb(tYUfU z`F$P#t-*hd_|Nnf!7*RVFtKlQoud7Kt?V$+$d+hvA2Muill;b?hS~UZQ?INs2miB} z{slR@8_~inCWl!VEdZUcCR_)@P?~}Uc!oQ~x1%AQReE;9K@=L&Rz;nFA$lMpa!V}c zpO{_z=REd59pMq*qfb_#+1N{QX+vS}dny`M{+CMgxnx@Gz^+ZRKGFjXJgVOX7J|l) zMpv#?<>Cxs;R~*OTwpt+G@nUUgj*PtnWPkT&dYScC9A9Gpj#?A7wqHO066~*EZ5L< z(Uz9G^1G2R3~YYwYW_AEbM|(q2MWvCft>}+da}m&N8nBs<}NoPVbt;%e+m|A&U!Qu z%xP_7)Rf>j|06;40|(vO!d2oL-6{QQ6qZXJfNjx*4dv=1$c<=E&L({8T`ELJ;05kS zgJLx_XSI$!7IqqwElMRySA%134SRt_?W~#!sG6;js@bThcZ1U?&d+*bMWlt#1?V`Q z%~^pp)SEPTz&Wp|9Ysn`#CPI*y}=OLGWUJeeG9R)eJApRJ(!dy`UF#5 zMF%RA;XKqWrVW^Zg=Z+SavCePZD1kQz6=@Rsq+?ReUDsy)b659PI^OkV(K^=eH6?> z`bXRGZNhw^K~dia@xwWedfmvxKY}T4?cqH1F>dXFj&jLy1j6^mG%-gBwFTjXeL+Ea z(J{CBIlR8@qRjn4ik=rvyd2&p{W4Sd`Dwwd@}kdJ@;^e!@Av+irdTgU1aCdLFy%d{ z_=GiGctjPwgR$}aCsp+I*xbY{*^yhoolR|Qx(oe!9sxQ3WHE(#g$(pC^ewc*Tp%j1 zRj&U~#>En`R|#dw(R0C`ZEUFco^aHkWiiK|9EkB9ZRVWIe^(BsG`iqMuT+|y8?GsZ zJA+rC6m&EQ1y1pxE4*9rSD1S@M__bc#%c%i@9?;Y?X7!RI8yB`AZAw}tx1yW+gNW( zCwQ^WN?3R8__FRA6j%+$cQsYFMO4zG?QY5OXos|>G)J!ABv*fG_o8T8QSYqDN=)x2 z=7=g<*nlcpxY}9!ske{fp940Nn%IITp?OxKQgN@CmAadidKuDK1p%muXtS%Jjs1eD z;nz~s$H$yjiv*`pC#H3f1_}@5!45}(QiPsuV_4w_ z8p=b-ysI&u>mSrJNw?bNNr4Itf#bGHTql73a!0v0Ix$GI(ybP7OBiK~1vT5d`a`tc z;H4&xnucyl%{EkQSX`?y-v6}8=DM3BHOl^{C|<;a&!Ay8Pj7LV8(Ibk)`98{ak{94 zIJ^p%LhL2T=d^+=D$kA1_P7*ndRFyV70&C?eS5ZS2# z;3mL3y0tXhuD~bxb7k4BvIwHX^1f}RpcMVUSpDL1s11z>EEnLMD%;+QlM;g_@FvXN zfzCMi_!ECzn2txImI2J@U{PHd`c#P$r6}qXNMJn5Kry~WMV?+bjZLSXK~v^~vdmmh z8mD#Q3?O9eIQLp21_@c~g*AkzEi5a{x%Bl&8|oNtb>M^9Y#m!1Tbjto|Guqpc5{KY zCboLeIt#Tv%twbdA*ZOb5_QTE!23mTP|?=Pd_|jpTG{DEyX~d;njl~+nsQjH&Id0d z9567z_k=M*{Eu`9uG&L!I%Je3`W2;NQCAxOj|y#3r13loLC?^DjM*0b(5;P}KcYA7 zWtp3;7;yDp)}qugreO`nnZhW=zDMcA>hc`wt3^ay+!;(pgT(CCTF!{t@OHxY+rPJbVe4WtF*N$Jo@C1IUxBM(hNK!EUuXc&+7! z-jGPcMceOK95G43Wd8wI^RZDb`vF(yH?CRR#RfC1qr3b=F*)#}o58{oEYq$VYK}b!fyz~6*S{Kyqo~h|^A%`1T(sll zqJcnIK}2vBf;cB@EQ+3!VH;hl{R~^8=q|9^QLb*rp^35GZ^SIB<1gu%@t|=PZI+&) ziSqKge@L}&FyNn8%tqy}EJj7?HmHUu$-Y4xuPkL54i^PFr>|LZuF&7TodFLM)C6bn zTxe%l;!qsIO!GdMsQ5Tyy-I-kB1T`T={!ka7d&yG)vz!@&E9q z*cAMc%l9pAveMIPx%vfJmfOFGvV?w8{k6APLYxhnY+nakOkB#r7Asu@^3S`P&&M)9 z;V$9}7QDouY(+;E^^{aQ3SqZe#{&z+zl2h|G081(`Ij2uF3%!`s{a;Gw~ValPvc%F zL?8rhBEUO|rnrK{r7Vz%mSNPN9 zcQm-D-2ZMayOV#J0{gh_)rftg$?UYUcGQVv@qeW!fSyY9dd+836#GW^tV1Gi$%eE% z{WWuUR`-L6NXZlnCvMD({y3SlxD86ph^mQlbF1dB_0+R+^_%kiug3aQ@HFU*JO89R zzu9dMl;>~8`eflSI+FIYpbgI9VVG3Mt_U>{&sKM9evw?wCN}Ws)GF`^dqtyU&1x09c6}Cy3tzMv z{p=$1H&h;7yZ$+Ti{rOTaPAh%vPHK8X--^XyHc0fdFHAp|FmZwE~zEC)?1pKj;B~` zMiDEJK<>;=cIXKE~4=SDK+_Mf-S;qQ3-z{eU&;=RUKg^ec-+|G~(&4q=75(hR zShJz&VhsJLvN4!7-v90h#zSWTpS#|_{F_DDg#SxIR#C`qeYh#)6Q+6pW?@4*J|;9!4QEBhuEE)RF) zepA`kRkO*`Lmdf97$q%$^LnAk%x1#eD!8g2QM5WQQVjk8LC+ASt%X=u^0ag-H<9Zj z`pE@i+$KeN(Gl-Q|0?^qaWV{wXEt?A&~VE6>`mcQ&W>{Rm@EGqSMxVXt_|TMPKrA-8AcD69eh@Kf2ABi!i2Ci8m75rK)I0oJRKU-=7Yx^(sm!CvoCX0I}*h0aa z*UVA3zKj^7&qBu?E(W%m45lE9|L=DO@0%Ci85Fxp<_)$ybrF0>L` zn$vL5_~#}u)*aWgA*I{@x7FgOx52Hw!(~*t_7iM19M^jR%U;pr^52UqX`7n3(ZQWB zjr{hCn};~ICh2=98(RLr)&-W?V->EUwbEj&uG4YBPHa55jN6Rp40JEVTLf@M6uis?Ukh+n7`*10S`&;7J2?k;BMM+G#j+cE=R_C;FxUK0Ut41i z{^*P63LU^&(Q}_ey$*NU)64yD^RW|$)h)=E?A!1le!|Q*LXR-ynI^VnnsCzl>~a8b zRU+G^g@afR$mmO#5(6ILow$GsUbuwxw_ZGA&uqmm`l8KAh6C-Gc?tJn9q@y$!k5x}>ZI+^GA#5qu)y@Q5KeBy?H!CfQtdLp z3_IfRIE4z6Yk536b)F51bBJYxgBRBLotSdU>p)}>Cv9kYeF zmh(V{R*npmXF0Tma38j?pH|+EpE#kPl;cvJ1$e?U3|!e%n)pFgf9%EKQ|gM{eQbWk zu4euM0a6~l@<+mxdHg6#=x6ugEiRy2)2#r~3yAu{?M7;$^nGhV^LFVA9u%NAo^Ivoe7b0ylg2kNV{^vXh(-y+@#MR_%;b5PvuJl{)}=ioa#z%hLvmkpQ_++>Z(5toz8|u<6h0F3yPCY%TL|fYMm)Y2 zLkSqu0Pa2q7Be#!x_5yxKr=HE?a}XJqS{iXhB=Dpys+B4Me)yX!v3hZ;j zIwc*Kv_$C$MlXMjK_d#o=p%3h7d;u87AQbZN}VwFgSAp5(&R1K&;)JLQ&7ej zLJ0DFzmWwedMe%n%XGm@K@(0{D9BukAcajl977!3#pvH;R93`ehIwfPqb;6f%m+W+ z{}_|NfyzPsi>;VLtJCw0VUdO>_3t4Uyyb!eyn!5|F_<0HF9wj`(TIw>;38{<`?-H> zK6^3s|9arrA>WB_MC;8N6uNJ`0r(0PkKz6aPGMvyR9?_zc8wJmowpkEEfM|AAhfAVFeD?y`e4-iNrmly|VN z^Jiu=0f8aY~_kNd9N@hY8JTK74p^B)S+W~)v$Y2)GtUZDLKF~}XX?kHuXl}N8 zP!91rKgCg7yfx8+d{E@$=1{W8&I9k z_=L2%X zn1{B) zp?oCX$O)g}BWJNm`5?Xm9G*(*511Ib_iV(I1EcFE_pv5sD86`RO@$$tKPl5yjDY{( zcf!P6X=0LzxgS6yZT@70W1wp+j)3`-;138cjez-+U^W%AxiD1*3H}qocyJOG^JNp` zCx#g?QsqxZm`m_|j4*1pk%3ARGZo*OZ8luk6h>TL08MNGj4=s+fG@88-8E8ViqaIA znEnQ4^iZOIV7POg2|lFBFloLdH9nIXx&1XMEDT&G>K3K`vQHPyS{{rDgDq- z=z5R7rlzD8W5P|-0wXZB#&^;#X~ySpDL|2N}5QeiX zI9p`YT_WoA)LocA>1u^3Bn%srRf&Nd73NS+>64Kqj0a8{Ft}cpHvFm@0N>dxu>mn} z2z)LJm1OmP&mg^$&-*V$^FVEj(!(`IvM|h=TF0@Nsl^0!QU~7Hih0Gucou^@;Ja~a zvlTVdI`Sy;G4Dp$K*c*3^iQ;+;7su~!8m6J4c>hcnwWzW7Rk8W)a~4D_qNI*M%*E! ztT`j1&xk|}HQ~e-ew?6tANJk~$JByNXd+E~+!mqoHR0lDM{^(@k3cL0{VfDW`oiED zV#kfrF}dR*J3F**cz;jyXen}Q8f_(cdUJYFoYnJ4is+{LqF3R(fOZ^cr*v%&icb#R znJWyboX)Ud2LLNuvHPr8%~F2un}CH|9{Ebck@i z&x(a%GFo~v1unCqFmJV>23t{!z>_0eB;v(Z?7P5n5*@*wxX4ltcp|peX~pieVlgL( zEyFjh*d}19s1eS;v|={`%Q;*GJKu^$bGKw?ngx}DaV9p=QC2KWOT}jP8Vfe{C%|%O zi6okA#Xblud;19XGYA+~nAAsrh0;W^ZB{I-*sVpeMzQ~8#d?9|mCOid&5FfLZ!K1} zQS74@Y}(tv#>hP0iroxsoi%Qu75f3O_gJx)TCnMZfQ_m8uX{)Hn|>p(UDmiCTCszH z1+S>gYpqx`jG?4^^U>NlRE}Ip9A-Bo$YeX zk<%doeI$2+-0jGnZ1-H!fJ^E&NB)Tl`9??XIMK!WorCZ#OTshZvXnkialkRQ?4Ljr zjR=c=JtC}BH$9Akh~tykd0k;Ccy2t2h{VEk>AIwB3-($I)}1?_Xf%tKSzFYtTp~$R_rf;jnQFTXN|^vE^h33?W0O6>{v(!aY9Q$)8iT^ON}*0^)WFyl%a7{CJ8A&5m`29|=-+Zi%ne9RXX zlB6~5Sj$OuwJg52vZNzc)rRtlem@Y#K9JHY!aRxC7*(haCw)QfzR!wH&~AqXdjahp z6hZ$J?M?|3pv01(-LWI{5y%-Xlq4#6Ob6d?#X`X?4fZuFirO91%RXzxLc1*yJysM| z`+lqP-etwU0xW*p0y9wuwU{dZ2*yw@R2LTZmxUQzu&8@b+hH|M>`3-nuoo!mbrJMG zDe7N`3CyClh_%RyVmZeY7jJ<@Y9Y3qomNyrIe*uRjV@upMLHhykW7<(&{F3;8WY`=pY6>OScWSh>41cQ!_#$CDgtAiue2+uXT! zc#lPwBdyuS0<{hZ-=}~$w#IcpS}4M8e!OpNQnVsz&3mN9@DR%4;;I)2aef2TFe*d} zkuM5RyFu_7@?arI4bBhi$KT@<QIxS@7LzcqQJ8p#8Z_np zja9TUpzyUMnM7tOJZYuKi}ElTEU=<`1C6y?_of`R#WPdnOEGLACtYrIj9B+bb%#*H z!jK!yuhI6Jyv&^|Y{{ni+F|I`xto?`5w;tK*;pmQR%DoqSX-SgI4R!^2&(_kI)3s$+L$cG+GxyzO?k7JD2hV0Z3lm|IH0 zF89U8={5G*2Gi5O}k0%CI9LFZkI=MmI|K`7Gc>Z=)*V1ff93}Z!N;jN24CB@?p_Rz;g_qn99a+;UrJ zgfMP6jF@J-_+(|kjnKtywx#YPF;Jk~x+;&9gUhC{$c0moF>GaE6?Nzk*urxW6+%=a zB#4kA71FLkXlv|4AOHusg&1ODH{Qra5_e$L5+q?j)cArZ3W&Zej?^ea8=PLK-<4yYk*Hh$>gME( z3S7c4PP+<6%=dLSPK3*&UE?~!rO#?H#wt(Ha4S!PkpU0Iv_s*#^oxyi;5z+ZcDyy5 zgjn2X$D0Sxg8OkTrXHIyf;IWqJJ!bTq&|gUr+w{bIF~ra%@edKU-K9S|34VRnJ1_?qZB_TnQza}SOa^l0-Zhc=))P%1_EM_K%ft(u}cK`PmlZWBPR=6l06>S0S7t5FWL4xprds4=DcH zq>-tt-2s2c>|?39C&EcUUYjxR51CNkZc^Ba8nr0c6?llqaOrb}&Tu901T8SGy&M;) zVY3CtKKQ`8<^3APzPeY6eFIKXu|+5r#2ix^qYI5|U6 z#9jl*5pu#FO(4757KQwPx1|_I&YZ<~EN8E~2|gYYPTecUFPp#q#ng=kxF)R=6~(+Q z*g3(zE=?_Jop9BImKBw?#hF92K($y~Y&N=TjaOdthehW#l-slepTK-3tQdGs$k3*) zlLUbWGh${LMKj1-s5QQM;L1;*`@@EOs!1OBBBs>-MHjGG{;@^SF9Y17%&h4T$>d9m z=#QaEE`4kvH7dI}e6xydP?&+L$t7Cgj&==4lpKNGw32scpA>$R&Bx8qx{dJY*A;OM zT*a`GcfGkd=5!35Rb-$4XNKsbFqlw4Nwc@n6{y5CME%-4XzXC5V4#TNRQPcu`V9^yAi+q*HqYP~?--_aMDl+aIZeUfH$A59|;~W*bHQ!x5;cR=(-KyDO(*g#yG%XXJa#bXFfDc z)bNmj_%v$61pGg61l76O_b60ce1{L?Xu9gMvMl~&O8X(>z^a-w z)A{dtRZaPNh3ScDUt)z7>3(1-d(o}`MLJV=j&rP59WV(Uu*axJshHT&ua~j|#ET9{ zz2?iLcOa=dFj=yVhreoa8ScaEG3bYZIPXX-&ij4!s4c^Dq3$Dp3yT?5tH{FH?9P^< zmk#lqj)uR!N3ii3oY0B^9Ei0aVA2Sl2VFHE_mFQfy!^5{J%)ItN+hrhGGVa_ znT|r@IRzUgb0ta_ssYh+RRdH))Brpw7@WwCW)TRsqaQxOO|;{a7zte(U)E1Xl;9?z z+!xGp6A)t{i~a}pEz8@DFW({CDz?gVDsVIUbHPm^oZ=7S*m>^ZOz5*DaSaJ=F6&rL zH409^|7?85@Sm;f*zj2*{zsq&h5ybNdTgJJs~C!v%~pl3)^ilP0Po*X2xi2ulFB-O z{YyfV|8Yr-=DkBLx*m{B*IrC0YKK!I`yKDGAs)PF^%;a#5Y0# zGeoNn5&ntcxk=FlsnK^?(bSe}$9@2@}H8k9T(&tdJ%U*sO?L(7dW}slqX(zxB1oz@1 zV4BZrmMUR{2^y?OF~c1=^TSWMQThr<$A%0B*AJO(G@e1#w3-M7@r!Ks+BOqOyKoPV za*Zl}cgS=v;kEW$X!M0B9cRFXYd#s@oyHkbvG-vX+!fWbZ134f*aHdC$Hj1B`Hkb4 z3oIdXUWZ=7wv*ncQAqfH)*tBk9?ln#uOcbm2M-}1VY>hg`c4Zp3Bs#43dU(f`@`A{ z7Dnqo$2fdHnzpfxj_r9-<8t-Y^b?UP!?6Z++Pt`UzSFn|K9rzL?xCIZGRQjJLDyG=`4InS~vXvki&FYJ+J_V-#2_ zXnLV5b~Z*j z$SnS5ztXzn17^6ap$vf;UMJ_A99bjfk^yMoJ4FMB;5fjYee@uf5b#5z98lF8nOFRQ zyQIw>nAVO*bGTa~1Ninx%=%Q_D~u104whTS(Z~#zA9E{xJMuWzlAXqQ#GZY#X{8pOu3<4&h)1tj;PHgxSen^93Mj0)5$xI>!6E5WbqT2wy-KIflMKZO}J+ z&eVMC+9Be|(g*mb9iF1!nKi|az04J`p8*RCC7ZRt746Nd{37Gq zjMk}dF}`G*{n2I^yE*8fkP`Pf z>@|Nv`P`A+2MFzTi}8i&Y6=LsGYI)ge8vhuFD`16S!gl}F|L!k_85~<4W-L^)h$T9 zIK%Uc#2mj-IWA|8{>YJ#GShQbV#;!rvYaV1&6HJ(Smuw+)~jy#~?}FuG99ZJyDIrEK0Qt;%94btnaL73Sf^1={AI zcm}^6q%-coEqi5pW4Xvf+`W?FuY3fr9JY8S{HyGc8X2UZ^G2X{tYElJ60L6sn7DGK z_D-~{vD4^;c(ZgC44V?(XOSc_AmpTkA--3I1?8U6kEJPB059A&HP!*+C}Zt#e(!Pk znut%>9E4BM306S|nJFZBp%0DW#kc)^A%#duwuWZHYeiCESjZ zhVMl*jpEU!_Gb9eg;-2G!xAnU`;9jduH={F5~fR-3TsW~uRPh9 z5F#h5=}yL{$!CE|@WcfMFJ=oiE4&F?Wq>#JBk7gzP&z=e4IZy@SHWozEW)7mQg+X~pm;R|eS(oOOo9sE#$*&O@-;2j1#u@C)|^8?WsI zTWnAnkD)0lSk{}P@OHfMt(Npnr>iBsGVrqO#6d&d(7m`K#}yrWK(53PvU<+NVFO%Q zkuk`8!S?-Sj!vHQuyW?9C@oOdF45l4BST4yZvbEDg#qtNFN}Z_83E%%T(n{Qv#bc_ zP0EUpw>GFsg>}Xan*ViX{VlS>;;6STaNsRKAz!^Gg&c=MFi*y25o2^MI`TuodiI$O zGP9H0Opx<|<-IwX#YhsiX=hJt@pf{Qyfgb2*r;~&eFx^Lb7u6=qObF_dILp&3?exx z7`g+77yuC0Q0~8}20XzP#s#Gu8EkZ^O8YpRm{2QfJk4aqh(1+CKLaOLlu?6NOC{YE z>P%WvuOg)90@c zEu;$)oZ^Et`JW4N8(H8Fe#_z2l9@+O56Y6;1D@)gM@?4OniW}d;k zh?n4J7Gx-f;(}phC_=n{b3UX8!bMcC7oMVI2kvl!%4q12qM$Oc5Y1pAc96`xUtSu@ z+Cv0!GQ0_8gIh=vMo|t58-d570&}aJaN7fB7oiUYmY{4jezZyGkpI~s^tBF7yhFab zpNkTbDs~rwY~w3J%pgeoAl8;qqUnEBqvUma4Xr1FKluH!t`HIxLv-HmE_sHGC*GeY zxPf0oWc7{lJc=oQ;Jz};&#RA8ti9%sEPk1(Z{>JW#fF&lZ@0UryCfe6Uk-xbJv z0&-(G0A`UDNQ(Kv5&fOPN)h5fNE1$HWm%f^C8bYhBN|vZ-e@w2t5|5PX^%reGnV7mgU+q3H#V%-gRk zr~vOk5B|eDxS$c}S%0$X*jq=@yeRYtnv4_RLznh|X|KF!t1C2@A^daspQ0BpEtj3B zLg1Ya??0fTpdO*ZJKtq4|J*7BBCal;>_K=%M-Vwax7n6}>qLT?@bV8{UfZjpqEcvX zO+2(N?yVOumbK8_2jkvH;tBY2cN^eBf*a$Zx5E3zmMx_S^)R$+DHBYCmra0o61y4*%dS!hj)C@NRbDr#2g2=&HQx z%CW--3@k!&UgJc>MmT&iWbOudDk_2bC7+=tU_RUEJ_H9&MZkuU10Vav{}f~KcvBX7 z@xB+j!O|?2;>uRA%6}5`2hYC2If-1%f(uEdqhS{j_h@z-U!sH%IA31eD<_6SBQ&Bv zG-8Mf9Hg9KDz1!iE|`S!g(g874Bbuu6&g`sx?@b&EiM>-%Bt=>>2n2Q?YOBCiXo@p8Be=guC zolC@rsv3}ujAf|mFn$GBRU{$4O0I>fzCqrBtL%BaaIT0-0&}HX_s<;*f;SE(0)#CuGwvvU4 z&tIppu$4?;2FMZ?swzV`{{YdDxR*U@hE6iQ01hV9W56wepTM1&4BYJV6L2;SX@DMp z^eTJ`xCZzXa0#$HD}~j)L?=}B1RS&SN8;WMaqnu=3y@mjweZyfKSBB}5R`zg$lwH! zwjfQmfRqOeDUgnbPl42i*#1&V9XmS-UpWj2Rkb791a5EKn~z8{w3q3{$ZkN-led7^ zfR_>QT34ah-imMItU&-)2KXW*Q3F*AjL5={tF>}6?tBJHgZ;bOF4J%PMowUs0l{n> zxan37?_9JF!;_#OTOqSC?Ig|w{*<)4P!~o&;lOg~zD%F_&2-9Vercssbl-?%fO9e6 zA!)(e{ZqKgn+Go|Lul`~_xN~%UU6^#PgGiSKK)gW1JmDVtOUsHhC|v*UcGS7c0KtF zJ5)p2l_dksn}-v_gNH;{el)7EY7 zkKZQta{s&?PRecWL^<3L+;S|}e>F(IW=QqDg)|XyPuJ>u3)q@FyJ>+-@aWv|vIrQ} z;b2TIDc8GVDsBNY3X8vv)ktl_yBc;q6Z+%ov)n$s4HJAlPyp3`(VF{#V z?O0XW4~NiNF_mA{fJwyRdo9PezB5FK!N816CxIS9Y+uzb}b%JiyQkOWfecZ&DNDnK(45kv&9 z6{ZPpg4RB^qhF+nVykgM%s=)ex!oIu84BPQ_A{}4FSozkj!kT{kr{&kP4KfK+#vFg zUEGA59Jc7TSgZwxqxqX-o4QM#Kj4TE#y^Eb0ch;bSWm^k2MUCLnX>Y< zPE#7s>x5UBx7k;`)l`HGQJ4k(p!w5I9V%mI1-g$%Bbo+Cx(+Ft1|nRPvC<&GzT)ks zLFx0cE20K%+>&_y7tN}te-^L7h; ztg$M6iOrF`rfNj_-%rz&ruz|-OaK-}P5Q7u(u_xKs++lB5pG|{T1@)d-c&1bcz||$ z^(WCeRKy&+y(4N>s*d60Fp@zrL1?1NMfw=Zb<$I*WI9?8{*w}qUKbC|Au~#cMP~X* z>w*IHQCj?ySM|t$uPSJF|F>GjZDV?p`N zu91Re_-?jU{inm1XLUyziqjEwl#w$7QH^B3(zOVR;#MTr7+>)GZ|(hpSTV=X&Bu!Q zEiM$F1|FApexaA0u;K-gkyGM{aMKjbDX|x#(oTtJzqwLkeXm*sCQ(*qFm+@O5Hy|K zf$m)rZI$D~Aqmo2h)vgTA{#S!lQ_AZH$!ZC8ZsDp{SXdgC25KwHx=p2=#VkzI0z5m z-UC;xTv%dI-N%iwu5+i%Ys{N)>v;h;^T5Jp2JC?6{cr6PTfVhl|DF%ectK3y-#Nuz zxL!_m!(lX-I#B+d-`aajG@|v~NT3j>0gF5+NB2=CfcM?a(#Pux$K!I>g9n{rKezer zu8^Kl(=Z6|w{bsUsHSTO};DS{O4n=?mIHi_M>O@_o{)>tN>kdK?2?8WpdrlfIO& zOP7rXp~ria9SCM!9fhl225yKr##s2WQbgNC{t0y%U>VfqG+caPsj7O z%zO6ZL8RjL&U;jvSb@kDUx$b)^`-ap-d?t18)HAHD;A3ad)i!;i*%XYaQj z)QIMzT>r5kxWrzV{poqQ@Yh4+F;I7!snWut46d5&ZzN;OF?Yq14BPO! znt_Y&!<4ujM=}i569Qe)jjrk=95r5CkE|&W8)klAJIZt5lXlB+;b9h=EtcT@@0a@z zmcvl6abhX$IC*bjE*koR{h`y2a0gjakh4cY!zd2vP}QQGd|N&OsV9n(pnVKXB6mMt z-OWMm64L~PK{STwg&2CVwE6h3RK+Yco0uknQlE;^xNK-r2U8!EpFsCQ@#6qM!q8ZR zB#MVi&CD4no;fx_EJ+{SBS^|@L!_qr;%%=+08Rqbe)53vmoqWn%WRA{p#TW>ParE} z5rV0>iRU}QlqfPn^io8gww&8ap5~o7_EwqSw7uKKOub1`5B~I>KIE|H9UXA)Q z7+!jxiteYPZ)Wr;M&E&GnJZ%>A||88r3Flzjx|)g)qK)?>^Q0H3^d}}g|XtqY>4?K z0!k#<>Z%>I3tCq)WeB3NPPB?fhaiSC$zI~$3jPkk)YXkbSNE72`@svJcQ$)1&JMsBdX3kOlSI1!<^k(BPH>bNaaE%E7yBGEsW6*APXX{ zsSke8>*loAiZ4tiKJL^7Xi=9DUH~U;XfsT7@%{!e3kG}FoDS0m1~ zZN`y4(j(tX_~3;qnqQ4jptKn~5giU=1_9R)ugt0mFc>S4g1o||$1qXI7y(!MaAG(I zhHN+|TfHe`1c%HwV94(G4ci0ZpS|Wmv&4jyWZ42WlH7sM?^YHBD1P0gkt>jw_?;<98 z5uWLYtASh4`zwwYu@?yDq8sF~=7eSvc%rJOv0^t`9LOGUGLAZxB}Nh97eiT=BK(a$ zCBYB*lmH+6Sj8$iQyB)#5_MZ!aP~v`T$OUB0 zLv!>AvI+=1+C@5fmKnx6o&nqbsbw&5TT=r>K`N*D4?gTp^~Z;5*u zDWPb{y*B|xA>Ur}NGaqSf=EV(e8bFSAzxW6%=Wc42sMOp-VXUFIiwH8P?pF)SiUrU z=A-v~g&6~6yG1W?P^WQzE`J@38B6c&J zvbA6@426blBj=j#*Sjyc@ogI03BUl3>hxxikF&#HybO5GHY)4NzhJM& z1`Wqo5hf^`=U#{YJDy^|%$?#>@v2om&J^>{7IR76H%ESs_N%#yD@QnD=T0IocPF+f z*fVUyCZd%r*v)4Nzea;e>%gul`%3;zrY$7|!st?_ryP8`vY>OOU))1N&gV2(JHQFm~n&7&SbIpgfgw83;^? zlJD%Z%cf1S-;k|IGbUt@7I$V45M+0UU)Rda?G2g&Q%@p!)yt;C<~mgz7>8zGw~cYX zBhLz4fFHe%JFNcA4*y&m!q`0fHJfomxW_{te3Oz+?2#SgP^_hR8Nw!t_410x;lE8BtfbuU^4O5`)+cjTpAUwNJYWk|(Q;LZn$OxD{a z*23ygT7s7%hI^gbWhj$WeQqpin@WmWAaqr!Pq9)zPY9&I4vQZP38NJ%da+d>Ig>rc zhlpUmJb?Ub7tIB6H=@X-B@El=R&)EDv{*`e6;)bnUifuTCRWkMgku?ehB&!@YXma6 zkQfaZ%7~t>qO(-=d`AD7(T^iKd_Je7KP^%ALCjYc0MjC`T4bIONa5?-laB}*|+Lza*ZVr$j;kc_LDiSL3EF5g<_ zvU%JM&=`;U*1m%l+C0Nxv@Lt=8Di#b{v&_^=HFnw4SPN8r1Iu3Obp3H+`K0wq<_$# zp`cxPdcxj{J4;Pg!qP`uxe{Is#ke-#Dyi9CvmW(hf3^`NpR((8)_L7}7@+g1di!n0 z_v`r9RjvKD;rnfTFJPSsO&twe3_Fc6*gC}np+vPrZ6}MdNe!X~clHtrLyifRXA?D? z4q)eQ6Q-`*m0-&6&SAvi=$tYr?m%6qy~w*6#hHQ)Vr7Itm{++(p`=IUvk0w3(L_*> z%Ej^OJ?M~JBmCXBx(2MW4lhg<3NE|A?pM8%UmoJ6KxEZr+O;RcwqhrX2D zbM5{aIoPd&XN_)U&zPIeB0#1uB~z^uP&5TIG)%y~C|PVwJ|dd!Zgq02Dqdeowwp;u zkB-+}hz`d~F0Fu7?GaAxsTkqjaCN;MocDEL#v zsxk-GkSvTNPh%sZ<36<-2Sc5$-XdBKsoubGl6cmE!wfUeX6C`l`HLP_;=`m|EYKA*S-34n6_5}&#lNBoStT~HYO{oi;m!LL|ETz{ z)%XJbWTBZDe$j4fiK;o6qI93Ae%d^@JM^b0lXjS5>hJ8sKZdM&pni6Lb~ebR z-+Js!#?Pg8C7FmXU4f^#M_>mHM!%@N6gUp&mr9(Cb)9i%A`ZI*@5!>5DLkq@qMGwZ zbP_)NkrlFD{z07FU%ZT^?YAHdqX!K+DeD<{J z-FvVi__p?f!CcuJ-LzdZP32}rp|S!?xv*yoJGG7#85Bi6D_x{)=~@XaQ@Zxrxrn7n zsm1x;?vSX597izCb-QzGad3(wy4Cw!Fd5ln4Oh)-=CZOb` zBa%UW#;?8teFn0R%d<3;556GMw6DKb_TaT=IKlicHIx%nkE?P~P6NQO*^b4Y-Y-hX zP)K{kTwS2>tn`Z!nWT%%g>f%(AuWdokIvvt)i1_28ll{VVH&6RpXe9o|DWg=+ipei z$@;~`=O0bKxM&0*X|-CIsA~MDV=PtUC*dQ4lT?lK?t@P6@{3i!asgF<#0|sz00c zCu$knpj@W3jL{|V#m~9w(J}l}TE;5f6Zlr?xMuM$(FfL2AeBG?&VtgHe_O~MG${B>UfHrE;^V3gax z7^f8g^namijFYm!nNJ>%QJ0`{e3=O&;HAp(;%*5r9uIgpjFrl2(Jd^H=~Xua8eB-ntN^B?#ftv6|#5^oHjZKQ?+Mf;0_j zINX$?u>z?9VS=_$6%Ps+n1ryGSnhwIY^(*UTA2ltz6n{2eC{+(HzA`+E8}U1N5eQcq>4^SW41NSzHICSZwLSus3+Nd65|J+K4RU0XT)mosjO*A(UGbb0O16}!QL^1 zk>m|kl$UmU_u^26X5*=Og}d9koyzbmQ-A04_$oMf)1bAXio)|R-hNT2qW_wox2?ew zPA}%&g}6b-zJCJ(hn&>uJ~+c>T{{6O%l6Lu=wdu>KU$j%rO;P5oL@}1-`MrTD~SUuN6Me(o2!< z9r(K3w*av_;H!PB3w$5Km;FNK+R(fwIQ+e_N(HSi$Ybs5!U|k&efqRHn^<# z5u~Gj{ITw32rGoIe(Efw>kr>c({4uIBKY2{-E%SMikb*nfD?2T1a{PQoLO0Vg3BzGXp$gKj2&tEmjp0u^^tOsk-Va5dpkAHqzv zNeOizQDZ)S%*I#|RC^C}?}|$fu)X}lY0Y1poB=nxdL4&q^$)FB!ltZj&75Mt3{RD8 zYZ~6M1bHs#C`GpfT=y_rdBSh5rh}3coLLa+2hIsV8DT-j%qEP?XXXDo( zS|IL$qN@Gn7JrNXb-4v$Vl(L$#G=?Oh!kA=-*5inSpV23e{3K6cT6gD&*SCpcS?QUB?x zBmSI3hm4X>k3cvOGK%3Q%HdrQ=DqTP`OfArbz%p8mudy>fb(lSBSrGZn-B6bNc8F) z960ubz?fq9CMP1n-bL%Vl8aq0B_vkd+$CYf*TqiO{+pW6?}1(XmzvO;FO4R2bwc3( zUK2VO@~QvFG@;3Gq@JrbJty?hA^1<}gP%?x{7m}bXVVAw2@;MrL~4oZ)O83*IP0I# z&QmLO%v}%iG}WmuM=;f?2Xb37M5Q4=i?NcZOWhAK>2#?_{Z2;VO@EY8cp<(TDNHfS z@dObD>3J%8q>4V7(OyQMiD(&hmi8@l7OWF69xECEkos6P@1YT*>P&cA0l#q6CU_iW z2>Q2fn@D?v!OlaG@+>E(gIkJd@~l(*?nx{iLytq!8f^XnsMT^-;q-XFOr zerrTpB@0@t>TL_2oZHud8nB z3f=MFV>JwR?x3rFYiGp$U!be5PD0gru~6?A%m4@ERe&etLJaAMlh8D@1B&F3@=$|m z!Dm^Vx)hNKhd@b=Tr7wic7my>jtQ`zHeT4Lx_{^gs{04RH31aR+9-)AWMG{h*HSA`r3C_$Q~ zqp9*-bnxhTu1m^e(J$Q??ZCDf?)NFZHA^iFHkC=Cs13~E1X1G)pJC6Wtm#8^fIhO^ zsn6DE7Q)dS#XC@D$BND(YV4r1$fImc2~<)v#PF`x9+8`r`#(wLKwv#0FJ?U=B_B&H zS2B&17|cZ;;xB|x1XoX6w>+%1JNqx?TnOX!&KMB9M=9Y zW339@FQz0+D&QA@`lS1L-x`&fRFA?cV$1~EJzQWK{Pl08-3uQ8 zXjc$4-xt#EGgS1ODtZQ^uVnO%DmqI=FHzCgFnTPborq4DAlb$QeKM@4N7W}Icb=qc z23x2~ORcU#tGn4X#ebQ5ivQ|M@M>1YDEwSD8p}(Q4MoP(c9c$=|DI_QgR`qxdDdKQ zmiR!$IGBIW>YfqFEI5MeKUv)~;rp?!Vw~j6kCo|L%S&B+v_PMy?koj8XKRzU>REMW zQT~du2wp{!s>|wD_|Xa}1IR$_)-I=ZznR4TXvIjzm#Nk!(f}n5O}RzruM^Q%C!;SV z#D;5E5>lAhd-V?s)fS19`#v@njfb&P8m}4Bdv~bl9x8ejqkm-d^N5}@Wy-ns(`obKOWAJSur-|!5xcc^uaS?KmA*x*k)Tpej@Fm@CwJO$q<{^_?cTGq0%Yh3` zn|x{FVUr`e&9_PpnLNj;;@UWQnS870T_g&sT1b6_{>5nCVyx{Mf?v+*}1p$ITV`$eS;t`w#ePc&X}8j3LU+DOw9d|J!^SV<@Ej%5Gv4VX-5rKi|Ncm-+IDjF|< z2Os}~aLYCV%UI1amZvXc=~2pfHKh#PSQ(#vXZkXD-7Fm(%TvmDm1UfpzKj(|DTC-q zY)g=3eDQT!e5^c58I37rY+)JCr!Rw}C0$!qrC0Gqlrn?`F*lsP%{e8{4bIRtjUeDr4I> z|En@4hJUlox_5n}=~J*>g)htjYI77W`$Tal@tv^?oAA8hRCLbHK9GZ*d1tW?dqw%! z;RB&u!pr5BUD#p{Pa1|)iYVXj>TFYrAba7%^aEv0#wxRsuy{=CuoEvAB@pEuG@dip{22cHFD-_P*#Z=AE1XtSw)pI2<60c6hdcO zo19Up&wOnX6aOtaaTiIPU_o~?76@fQcO!fXQ%g`eE$CKG?hiZX+2O;)&a=i2fX4P- zYZi&(+1yuw;h5dry?`GIt!*Hre`yrAfr%xhf5b2-(bL{>pe`TFiMh%IR_E}Gd({zv ztc(34hB)+xX#bc7eFN2bcn_et{j_G|)Id#!`pC=(`bP}HD+SO8ngr0#70_=rppXNN z4zykMEKR2vhtb|7Mc69BF6MR#lx6ybzAChwe{oAO|3cOEL6sgExQ|i=Q|7^fb-fP0 zXmjyf;4u#Dv%lO7phfEzY9g)v*6gZ;c4exM%;L9VDeI9NZ)I_=19dDMrKkf$={Uso zYxQePz^-3P(g!8W@(;__Xm8BoFK29$n$}PTkoMAtYx;CTzU~O&AG}$nH{|s5{Qrw zL@9r0doP4o+QLBuvbC>~eB-S>bthYEY73JQA+MsXT!i20^!e+?ArNYsY1C^iWjfSa zRnE%s7pfW!pR~4W41B7!4++gaEHwKA6lG2gJlI1KaAw9P->!Cl9obWpY6A~T1Fdwb z=~g-o>6GeTmej^>;U8uQ>WMNC-ULgsd7qm1s9-)E9no7Qcmm!c@uwmrem2u!b*yFTk@fcZ1lM-1o z0e0uRn{ojmXc@OFkqa`*-DkF8Yl`Q(cdP9|mZuN)2;L$7X5Xef-zw4KhXvA>DgMgc zsKmD^JK{KMT(`)X>ZKz{B5U77O-D&d=wg7F(1{WI#_KHbtWa>?w#IW(LZtzuIY5-i z=GV6}q27t2qcV9hQBs;^F?5(b`jZf9%1>ll;MVQww**nxsC7gypN_dkb*pd*v9%qN z!Trz-HTMj#B4^2Zk7~Fnf%%B1mL84P*Qs`)xAvRH=u}r#?#DR>`l?|&q{4Ws7KdH- z+TVAV28*PyQAVfL;cM%Vz&Q3J3}~E;kuaswgr;{A3bBsXVq_wCYvj;OO3T61$i*fp zG@GISUZ>&aFw#ovEEow{4nylxYoj2waZPF{FV-~Pm>LQbe745v$EH9A#8_v67A=wF z8aan0H36ncQWIkDj)bZ8r^v?4R2-hd z&@%iaWj_@GDcMi!7?h8oM)E#MdHXPwlWYUmjZ9hMqez)<#CQVC}=l(d`_ z`ir!oXEBs?l#~|8Pg8E+w4wbNnvb8P63#|I3SRm%VF$1{?{y44m!TX?Nrj%rP+&1R zlo;$7TFg*(MN$a^7)nA&3LVH$l5$4Sg(a=)$z2>ZB}*ynfGwEIBFk z4-Dmgl+M!kd!_W@X>C&{JuOc+1DvB^uf|hp-qL4Br)mj8K zo`9bu7=sM$mKwT_q3`!fNxPn*ocoeW*pN2#wX~rd5t;&4hzU<9Pbsv8p?y+AH!-vW zLN_xs3qMIZ*yW1FgBYu)kdjiz_Mgx!+wFo}L0?LtBP5=~G~dPv%F2v? z=XcM=&>(UKWrIU$Zz_H1q%N`7Y*mCzJ3lW6p}iFtNfWlZPPvKQN9*FEMVZ^cH;t)t z^dy30hbi=Dbl;e$fp|K;(rO^aI{Dwy2UVvGamo;L*)s8Th~XS%9V{heI4*rKr{{R; zH1@->5&v5Dt}+No64!(7S4XyGyp`UTdLLv< z5(>cVQfjr3)_i^D?NOU8w+g8tviTaaAX-X8y)r|HBnXGld2!v%a{pcG09q-w%Q%=A z{u&mHV$@@_;R|guPY{l5ik~1*9>pg`Lr%~YL~G7AI*$DnMHzUXHZZ41i-sb2EE|U5 z0)r3U$3x4ppJ{)N zKJPCG$0bM@lf>QOtZE!QM%#EsaZZJEV9|*1OQ5dODDzyD-P*)FJ?!)DQF$&-lLrSg zF8|1U$HtNUA)p&sIN}`Fm~al}_tNNa6jGLLlR`S#=M7MWK=+|T#RH0@5S)yR>_0|| zsX#el-b^pGU4mkUl}5|q+)-*9!M5!|`7xL~)~_{;sJ!gT{DJ2dh3h&Il1k*gt26^8 z*=zq2&s(gjjlo`2dCnL!Z*fs&cpgxZ&3Ai!?OpBj?qa?`Zl^Th4^AmZaPT^sTN)jO zD(AmOoZ9HEJtv{|LCKI80drREgU*Fqa}j%ghz7mSAK#uUA5>qJ5S;G)Dj|o@*lXx^Pa-)UzVsu-=7%oEQI0926 zV`wQx$AoXdVjY80s4fvoj06h-G19O|xf0JK&z|JiFBT0lyxm=a6`bL<=*9?)gREEt zzepX7g)kfE3N*DL0F&W#nGEllZl$Y>rJE+{t}Aow?~>u|>lqsB?v@!YTKpVB=O~;IaO~d0`ScpvPR1Q;r@DYEgr!_}oF2;lE*_DD4AMhUT22 z{Sn1NJ_%h{gvl^cs0hCHo;c;EOBtu~0hQs)S-9<54vw;fY-$)LRS?TI0K@C&$YuhQ zI-PQGMCMqH8{Ba`$7wY+GDfR|IfR$voF`UC$MF&?W^hqTq$-AM3d#u&!eM7;o+F`o zcjEti{GW@6M;76>_xr!YEurBuJ{#% z0>$Kb)86=;*!Yg5~KDy(&qMmCDyO!Z=OXIpfAdC8$!Jzdos zx$UYf`LZ%_V?l=f!HZCB?FX}`x+j0?nz})9=>b7gpnnFfK9*+O5A3ZaT4w%?Y6iCq z<*NW8mwy}VO>!Fpup|SGL+;}6##78TyweRt|7^M-+H*Wlf)A{P9rAxAzWZq{OeNZ|)twt~9X)x@{v&iVIJaxv8O-!?jMmUXq%0G_&&*`sT&+aGu+wns=dA}2n2=-F12!Yh`Y_*TN}=dV|JF+XYnmUA&tse04n?^|cN4D{!{~FX<~x*m zr$?C=cLi1#3}e-SX=T8d(G%nVqUqtnqThul6O`%SIfTI*IedaK0$#?dLxGmQFFbTVCF=Akyw9;>A{zo}L zD*gL3e=UjBSjo7)um-qBrNYs(B+>luAw3crk4bJ%L5|xG{Th9ZqHVL#Pc%KCN^E!e z-!lea5WoQFx!#xoPn(*dGD zfy41rgG6ps9qQQZiPhoOr7##Pp87hG;m!z)I@A%j|A&q!e7Xe9{$zE0?r zT6i&SHt3lay8Q3B2>5LcP;IL$`PyDnZnX{Ll$3olfN}-qvdNm?*#hlbcZp%IIR)Qt z|EF9?Dg(=zNekRnh7L8B03T@aiLi9iss$Q0NR%3Ck0MG7=q#%?IQ=Y5pNJGo`6(?G z>N#Ni1CYA?``mcPHvBvEhlvHen>8y)TWEi0e95P^8u0XA&AF$S1k5P7G%&0`6UI<))Sy6D^=l09u12wuPL&y-ORc0afI&Q5&sz1{ z8U$!q0njjIOLu_tV+(*4;s>*my>>TBf&`#20sl!W^XN*hA{e)CV+M2ie*{~p3aKpl z+;cT2;hC6l%Rn<_#xH??pz}D)u0bFJbVSO=%~ApNXvly(rB$lr*mzaRj! zuLL~FVnT`EQJ$&ITrmmrT}*R%L|~LjqZcO8$&R~W)*0DcR{`eO>F;L zZvQsSPnG_I#{D2LwELEXzO5`dI6uy_?PWC6T0;J_NrzFnA7~k^{70 zeSMD63%vod!07OPgY>5(QaFVY;aF^gxAP0|_~Rc33Ob3y6uOgNed$VxZBZ=XLDSxT{y zZ?o52Lhm|yYcGU%6{sv49?ZbYklS-=>E&>|eO7_pj)pm{mF|(mx$s7Yt~$Wr&hQhw zgJ@#}V~y67FX|7KtewUJ;7XtMnQLSdcrk94@|9x;wpNxr`tNjwo`^fBW_ z2#x%_^fjQs+hrBD9MMSk(l_ws$(BwMnzJ^nCXECJFGL}0kv3`!TgK@sfnZJF=ieSHcgaEjjiG&qPL6$1A3I2&x_8H)7@8 zTZt8%ceESdN_#fsnJOXuuCs580Xd(FGMDX?i|Oi{1dvxrOy&_tv3+C&hvQ8 zq|>=#JT-)zSP)45^Br=Be}{1eV08Fq7Tjp_bhBDKT9ZnV&gQ6&D)=|557mG+ z^`TlovPUx21dauKs5WqJax`&BMW$CD;($`OrmGKeRM~4kL(VXTC)I~IsytVQMGU5w z&K`@7KA;HTPWUx_AiA^tS7c)HjL#6kj*12ye&;xJK;bm$fJt!B0mV@{Zh~O^?jJI6 z*J`g2NnAe^;1LvWUq=&%Z{(xuLqgE z!1D&Gk8X1KFB@0O)a-~%fzTux9uQS}@fe~kyLGCfx9K;rVL@lsBQtHRH-jx zcIN}LC$56HCF-of*vJD7YFO1Z|JWdqzy@MMco%PkBI(hW2#!2+iP%c7BIqV~)e^yJ zS}hT0swJXOEfIfWxLP8p@q!okmf&TE$kl44@F587+Pwl^)vR}I9*>#AXIr6cheO(|?%wc&uLA5|N$cW6X zKB!hG)s#48%7UTuMr##Y3M5ZVc+)qwLg4r|Wsyi3ndJpCH1}ZDzY##Fq4|+Hm!gC4 zR7C^I$KFVhTY=(81`0DW=T@OI&wWB+-kFZIf|Yv}ZS_*Lb&_MP%sV##yZvt zQmzCsxsDFb2vlo=n%6OtV%D5x?UU}m!t{QEGBAkB3nn=6S#v!&PC|!y zgwxOBU&-{-07sOru{ezX9t)p+xu;+P29S}%8Q;GVmX$nX6Y@<{`ToXym`E`D7=4g0 zJOveFsZk@nW*ol4mG}|-+H3mKOQN&aUcjh+_z{Gd$oO!e$xxiB5Gee_s3Ig1e&Wzn z0d_1Z4bR7*>n!R8>uO`axQ)x4YKgBq>h^L=-%i=Wh|Do&(&PJxLC2%(pQP?V-L6;p*aC0;zGf7+}!Luv9r4(8T|^pLi;Se7#;# zZYqk*eo|Pv3uzjuW3}>L{5To}SE`ftzQj%n8DERLQ=@&LUD2@(a;F(vSnj{D5t-o9 zhZXSl;gu3pMh4ejb2eKhgIZ{k*Fh9b-h8v5Z#b|BVhK}fm@rISDt0xT@O%K2P{cj4 zA_`QZFX1Hgz*~D`JutrxSrv~w=S;;P&$+hxkeV2FOYg|cP;&+R;g2LhEw$Si@D_d& zU|KdsAig19oiPPFPLjp$zbP4zqleyo3 ztM=S;#AdNiZjvVLLt*FyYeK631_l@vARK*;>ccY6-T{xS!ZYAeoI3G~4~5W2)rXpE z>-iy^x=3ol93FC6Y`6b<#YW!tB8Okki3*5%1%%0Lhd;&n5{kYIc=8@+GS=k?kVSlO zqy%2#5HGeX7P=4tNsRM}2oS~@oV2+d3D->i9nVJrz66;{(uy=%^B>YCZ?s0EKC_bt z*bz2m0(wCUTnR}^in&&P&s)GV1Y22Mn zLJ4Yj)=QO8rtldnWDhrI%UDjxiN>?zWG6P~e0Zc^FM>xntIOdL*6Id$*q`2Cn!B#+ zt<2yU%w11H=g9uXGc+;~ajBh?ysJUys9jB(&Jl*H1Fyh$7WqV>E4gEYA>^zx5qPyP zhvMH7G!59rthv*8l-;GCy&I2d19&SAVuR}`G6R)eyb;!-ev+cZ^^;>0ic#|=cYLW= z$3&>D3{U|iFk)DT-^D7jqj-~XEXFSCKZl)TG7G!F#zEWXOE}gT>yL8PRl#r@00vXO zLxW_2ZQx$w767g$0DDbP;;o)OVBB43^|W7=y9N$mNbc#^BdDPIh+?1NkscldkMwW_ zJkrDC;E^7_+GG^buSd*5r&vM^x+5HPs$Y+o{i^s!47wxcpi>+m`t^u8=+f|jF{51S z)hLT2#)fMghn!He@P3N7!9WpHSe8`c{v`D|rWTmENW)=s$hqZsG%Vz7rKo_jb->#Y zt>23e9vtSG7kEB4Mm|GXm%SDWdA6!quh{H0)bvI%b?(4z3o%2*U;&7iDG*<4t{4xz*fbNZi-O!ufv z$0Jj$xyDYzY#qSiLw<$QV_cRapx&QqRvLG-^@0KeN(21g;gqj-)9h>9lf(YX2Cf+} zzdzi*d{9yGCNPJXBwoiP(Q15iHX7&WYHY8~BT4b>${PKzBiR=8Kf-nAmXh`MiXAWo zjKi{-uS7bbSjTE^=*V0B9XP_VLTzyNwc0{5iJ$|iz_FT}xeoQCn+y-CPOgr&K1kxS znVQ`bopmGXgPs72bGFW0?cWh8QX9-u)CTh`wZS}JZ7?epJdsOf>%x7h&0B)TMJ}}V zhO1?7c(&Rbp6XaFi*awYAML63qdAV%vLEg2Sgm%9Z4l<9lP9Phqu|>c1hydxseQ}- z&~ntOO`CmJ7a4 z#2Vh4@LpwNZDwtxpTbvfg|9veU*{=&m5aD1GF;H*J-^)lY2^GQ`FEj0RBt(7fY60Q zz;m3!Qx}m5MG|D=X^|9LnbaC2(g-X?qfP0`hsH~15(|{|@{wO_X^9#qpAL*r52R<0 zNisN3pODBInltLO&to&{oY}G2l(REF)NIOK89vl(%B>zg)NJ}VKNMs52)z14Sgp&x zeys3HIKp`H^{z4-Y{KgO*G1r*{2}?Q=|c<|A@Q2dS%^dpVGVo(`*_hC)G( zzTYCT3-+k)9;E3$PS_B~TRg=duagdX8IHwM?D!P@qELGccb9?e$vHOLC6l}3skP?l zESG^Y;-l(PN5%s>+g$_6UUNnZij|YYa}hUOfAEY}1i&m>5YAAYzxJBZ z%mzlk=N~9Buj$P^{0nC!!eaG|12RG<4rUVvw39@_d=p#Xu)KuYR6{*Q96Ys_7&cszvb}*G|tzh>KQNzwgXtP8+`4Z z?6r4D_gj@zts)|A_PULNrUmQChD}wqI)3b1&qaya}rPpb2Q=MCJ2v%o>>mP5_dIb_t7SA!fRTv zX0%`fa!%0)Oz{^XAV>49>#jvNdB5sF^;?JxQ2nn86mB^o#Yj6gyoxaKfyFBsA0J*b zaHC9Z_SF%PmcS2?zRV@Ut)Cb}kUC11@lvk)h-UrDVdc8cnGcM9Q1efKB0wPf0AQg~ zKu)>8dx0bR+kD_VJX`f_gW?PxsNBLKo6xgwqGz|FF<9~|TVg#6D9jw-BcbmyHmIb< z786}9rKXaS<63F%C^%R^%?ZUx6{(#RPD)2w-7kO#az_AW+`s~h9jz}yp{$^IzZ@Ta z2o5CyrPda8&B<&fSC?b2k?PKX6R*x(U5;gqxu`J#r{L>iIK538AVde85|hLtbO#5& zat8f_3V;izzd2gZF{gC$^?%(39?2ZOY9_!Sado%>S+C02_?hkESh|>FJB;2w{)?mwU<`1 zPqPolXh#xZA8X#S*L^PZEckKiP8hCwP)$%Kk{&!ghNNhHJ~7l5&wx>UE8?wDoP+2{ zKTS`E?DBXyf@}?G6Y%vOxV!`sNXFNeae}WFIwrpUbW$R|Zjc1I)8KTVk8eK&eS8&% zIb9=P=#$XMUJ9}VXsCAM(7hOfm2X5hy}jEv{l-jhHjIo$@?a{S)|gJofZK_aOUAYs z)_LaV-rmci^8MIgnC&u;$sv8q-g`CPun(N`B^|qFkQQF+C2a#8ypK@KD&3OWg@f}Y z(2O)rLc=c6S4(dhUp>;9lWz~_sW92pTSw4`DVtMA(EH%6 z-;L__LWlf$xcpxRX5Nyh(Y|D_1b)U5D8m(~PIlir(uJ}J^Ci1{KMKmbmQyqBibqUj44 zvblktPhTYzuoMm{8<}_nbgEPVWhNele!`TLeaP^;J+-Jn&k9w>t7GD={^-3J>-P$> z3q)-!C(!eDmHHJ`V|>&6BC^DrB{^;Ze$<)TscHvvj@rSLsvV5m-0?*oRhyF7VWN`2 z4poPVgChOS{dzxOB0qjcsPq|PXM`PuvSOJwW}Qi~)+Q6o+qr#XT-P9QU8@Hwt}E*4 zVKhH1V?{#H<`kZqn&*dUEDhp~R}0v8Jd+zzUbpYaCj0VDzJrPE=u4Ql_cM+U8mdkgbWAqwH zqwteM84fQCu?Bl>7@1xABf=1B*vr;%{&x6Q7X;zj>U7sVo7;=uGDUr7nUcQqO+la2l=F=-#e7#bQhE@%TnYJbNUj8Wy&7fzeW5Ap8xT3W z5#u-->07%WU3i8mi7_<3^e>8CZh%^FLYwZte zEDc7BYkD6>LmU}6*>mhKFK}cznm7eH?d7iujv&Y6EA}@*jyM|Ob8d#`3z61+#C!@q zdkt@i;KN`{Em>%nUQqrb zu-Cqdk2HlHrwU`4j`UUAZSF8s6jzd69pv-k|I^40tv(c1qG!WO*_ywEmevNnplbE za4f~C+j||FZinXDwm3DTh7?08AYwp899jb^o>+@bMr{r}$k)H#)a{qB9=dyh|Z zcI|%;Yfo!WYpsp)@cJC9A6NWVcnA*86$Duv5_t|E`9`eW#ddt?cE!C;n#*uU?SoKq zSs#=|+$vllqp!k85ssa-A5whJBeFCZjpY}ZfJIGf^BBp)DU`Vn56gx!Fu9$U-_sS( z7G&ccqf_D24?aR7uFXt)2*P%L$WUP3^g~mkIK7MVdi8f)aX>TWTEC?jWJ>FMtkQs9 zyB)n#o}V^D&j%Vq|2On~pnybuAC5t2yfDi^;co*Ag7e)voV`2+ky;#_VV^j;s-Oe*2zE1b-D8}?`?{>p z0GB}y7E0#4_&sDUBW!p!!QU8Z?!m88+VcL!+$)?=l!3|$G?WgR5fO59kNp`g^B~=k z5!*@x-52-f)-N&-1w%|+x|d@_Y(x<9#?#m?#_0Fk5p9i(_OXmM4*eO?<|ajZOhw~1 z-*}rznlB-o@iv2*e}WVBb%spf1$^xKT8s-`oY)-t7upD; zya@dfU$Z&FB4kCJX&~uM~VKL8`kDaM!j@LTt`#sX&Y3c@Zt*H97kc9}A zvhXAD8`>u38TcYZX<;L#fB5%iI2g1LxdyZ{42ANru(W8lp@dRXkO8|PAhI*BX9Bff zg$AIGhFl`*=puaVKJa`q`hekI2s~Zlmn7jez)_ql1U9*b#TkG!xw0|l*8rKdR8&x% zs35a46FqN!jrkp@K_?os51nY@0;+Nhz8h|A3})d2tw81(EJE*lbTp|Nco3g*qbx5! zK^pefI4dzz6@lf25Q2d`g$Ei9#`SsWNF%fvR9`0IXPulx_2&0Lb(&2k}q^LOzhwal2Ej{f=SCG4LgN%zG7@D1#c-=c5jcO;iE@Xzlqzg+tB zckX=o&7m+OerNBL-}C^#X?aj%cGW+JKf>VQiZ-~s%S-ro#RU8{AJAE2F|(H6NI9-_ z$aB3N+pt5#$Ps!D#`GuSLlEZoJ*=sH{wUF{AHfGQ{0ULzcizRsF4owhj94N|)qwgN znbl?Y3$|U(x2O(-e3rW{17i*cAmz}?E7Nn!^ubN=g60L(a`Hxkn2v>2B(?+Mi{&-#dxRF1YF!_~UI}0h4MyNld3#H%XWI%9J7u5SUW^ddHby%KL@H1eDaFwy5 zYy^xIrHicDXFJ`0Cg0BL{w_DOVn#tb*cY_=+UlRU1`Qn#!9QPKZ|qZ6@wXUwnr}PI zzPvvAWei!Z=FgxLQc^d2tLEjM;tFa7pH@;zzK=_*y&upjuJpohvvjVIA2gG6O!pVj zjDYx&Xj%;V8rkMg<74i`IVzMWS+k%`aDRE?heTK@=?rIXWuQwC$cq_m??%DfxSuAETU51n zgBw#oWd4(8paye5$9liMU#q2PNBlfQFBmEE_#7YXxD&aXFCm@QyRg!hr^>CrgA@64 zbJ))=o2pNi%4(e~8>Jx6r@<0DIye7y{0Y5@lZ4+c!~C-q!_6E1IYX=6gP7vzjT&B& zej6_m)UeJ9|beS)&4^Y-|68e%Aw=dAV&gg>{+7IYyozYt@^mw4Bc19~K^aP-%bVkn; zD5%1_Em^sp(Y_YiALyXYXnPaOi@2E2vrg`eZWk!V;mJS;c1BlP=pdj2I-^fpXfDu` zI-~bk=qW(^cSdIb6-*6n=xTi*e;f_|vFv{D6ef0FXm0eN3JfA{z)nMCsnT=r5GATO zRf#IzDn%88-s+!(h|cXw2rDRsN<){ZbC&DTuWpms{N2t*8y|AUU%03O3jm zf3L{vN4-Yb>0cTlPrLe}YOo9cxEe}dsh|Zbq=DaJg)|Z#NMEa)jvADCXf>D8EtsWN zLw+iz5afuCBUox^xcJe3w5JLp2WOxTo|OaTJ$w>9-CWy<;y3#8rdwBKm}Vv~7i&f- zv+|l7i#fc@<6piY;PKX#_igwsal^~&2t*)i_ee;YFCL{{$K?NDl_IUH0w|=kOHIgDOp9q z3hwJ4qCbcIDLfb}@h52fypC5VX_?V#NT90}$f>7QeZH;dJyXgelXXBVU(G41}Zovs!2y?g(n!hK<2k z2^a>01oYx5r0?3g;!F8GqprAu-;s62GlWu!n5OT;Q%VTTL*Dyvk)C=x#(uxs3IvTS z@kyM8>^GlUhjzex;du-Z5_jgYVxcJ)KM@YD^5WTWV4{E}LpajlV9k!;5EHWgTHT|V zcaUH44E&jJsT9DF6o;c1QNoCGowRb}=A6&wk*6Oas(eiJp+Iu1W> zNA=u`|LgGoBltgQHwUf5&87NBSjF`lE_PRPTQ%!mu>|KFbsiJ@{2s3Q)|;Q3cMK8+&c0&RMEaeHK@7ui_XXU|Fbo$N_yIab>({_)H{3b0`d|frr>DT+T?196VvO2K_$8Z}G4vS2|yqKh9&_OFg#fYZ2@*hW{RpF-++zIF6&w zr*PaspRJV(zd$>`fwuhw|MUB$`hKUr^y3Y9Qrq)>Mc=1S$Mx{&KkWrK{rqkm4t!xw zm@hSiwVEGML)dxVcWqC62KTs-C)y)U!bj{`vB`*xc=4}d7u#&UfD>L^<01Y~#22@@ z&xy(&J?AT=eIL@s*~}8S(RUZ|Q}|x6Ke%Ueps*xA*fU_zEdceAArdej_?rF<~z(wF%~3q2x77Sg?a8;{{F&z z4IH!7cwjlkBdj2lMV2$I(CfzhP3BdobfI@p3*$4)`=LF^`{TPnw76a9B2^5#G!!e2 zjJ|;ZpGQFQ*K8!iyG%$NO+<~APVXsZAK0t;GB_9(4wxY*!Evei*WGYJ5=9V$9{!{t zW+%@HOca@^t-)8O7FvOve!`|IamsoLa#W-0r+9a)mft{Nl<^^aFbnJ!1JEHLWJz|t z@6~@)I`A?7c9fNCe@s@}F}@(^PF`{3wbi9-}x zg`ou%^JU!gAy5Wb<@>(EmS8{QV)JxFWfCrxL}(L#W#bq6c-Vepx2pgXEFR!Evuq}$ z>H2+qfnank_#|4~9JU&h#!Wv{-DQF??-J-PkbI>@DFyU`w@Y=_**MGo#;gK;@+@1I z>HQraHJ5U3;JgZn|A`o{+QSCd4pLh|dzivA_#vn1#qx)os7uglK%`*WSo~;h0}Qi1 zi(s;0aX|wWDz%!^;Rn@<#pvXV$|6BGG%Q2QOK)1wyMsWaCi)=C5P-^#ycZx}HDE%t zJJqUjgH--LulKd3`_MAm@bg0)NPGZ^jb(OXy_i&5Gy+25m2RoeF#O~`PtlfMNWA)=% ztw`3R_+`$1+s({BDhv!S13DqL#u@H0I<*b-v!|SmL$rK|-iwZf~`k zMe>KdY1x7wtuIO+-b#Dx;YNLvfYvvqKd+*-8qVQJgLlw)Hia;kSYR~}zUX(?@a`@h zLbF+$;6RS5Pna8FHca0x*K0~ca@bL?Gu5hkf>?uvdaFhCD7lh4H-5epy*ynllM^bB z|Nc7DDInB^WtTy#9)cT9Fj|7KO!GjIe%(>KC`d1{T>d^WSp0g6d3Y6=UZf;gZj=;Z z@NSalu63>N?+nb`SXLVio&!5198KENX(Q7Mwrceo3qPKJVnD0k3lmNwkF3GvXRjRK zzQWC+o$(7`<)k$HbMCxlr9xp<=rq=$0+IdK_^5>ubG{EbOR=Z8*IS2GBCZP1Yg2u7 zLj>EWJD{h7sBS2NPo_~V+rm+VRI)$hXn8JbrPC~{G$@Z0F{`4ds zVxkhjqeG<&!jGUo)HKW;(;jADNe^C-5c_JwxU*CDpLVU#+t9G(#&7Z$yMrEY zV_KfOeVyB@uh(k6z#IlNvnMp1041ZOUBDjnfy$2 zWze%C+k=lUFJ-a^zvea|EvVWL!OhfPkc7}}^mbg8!-Gx_np|NV(n(k=PiAC1M02gc zr3{wdGTys3hNBGEid+ZwnvKEbT9M(vp0F|G>?+t`B{L`7J7VPP}54BQ;#L zSlH~ONaxtV?-^;kBT^q5yDcfwL6k(5mnXP3Z7nu1kEtzpq_)n+c)TmF;9H+S>(roj zhoer9)=GUuD^+F5R@$G%R$6E$)TNcKvoXPV6SX$Z21FAf-$WCgX=89DH&HJeLv1*U z`Y$A->L9s&KC^-3_Mz!#6@%?#*V;=qklZ+r*Z>>HjxpB;l3V6F8%S=MaW)`YCV=#; z9wn8aMYk6%!)=*`^|Is9+a}>(s9#x{f~_ks<0oQ#<^b&AFo13qo>ebe-^$}98)HIA z*h9d4y4k)i4f{f^hI4qSan)?EF==ijjguGF&1(W$$r^nlrtSTo1PYr2TJf4vy<|2F zvG3obZ{D&yP`Fon419a9yAdZH^YT(6z6(2OlHNn(ncA}L9c#5EUku%+EqgzFDC3T9 z9S!b7`uku+zC7f*PFu346c2N=u-ejhz#DjbXwkk~u?%hLdq6TB$Oj4mbJ_&u1fW?C zbZJsNTt6mKd|DxhpuyX&!mtfwCjmDDz~Y0ypnWcd9)4jAv(!qbIHG`CXEBp zZ7>C~gAcLeExTivv75t+WH^KPJT#^flx^SMaMb8u%x~zlRO*VkBl-#>twXrUo=W!cL<~(=X zKr-i{^0Ok(pF~2b0?p;3goc@q5dko z^)I7hSMbl!sNNJc2f3T9l*y^ANX>AIltrYWjUWJFeQx~4{)lvteOaOZqC(42cEEwu zB@m9Xg9#*b8&gO7l}xO3ZO+R}Fs`zIS8P7q#Xl@6{G8XzJW zC3CGZk!4CMgPPb$+DAE7&_s#ILR;U4G$&W8=B+n#kLOs

N1k*E_tLRuawE5dyn& z9?;?NZZW*->CY9@iksxohi9SiD8}QzGl!JvcjK|(Ik`At+YV#8loE<~UK6h3bU16d zf6$Aw@gVb~h_*i~Ry@k}m+@(_;v#-3W5qt)*A~loc90)V^U+` z?cXC}E|Lg;2G^oNbcq*5(YNqGEB$a;g@<9`nju^RfZ#v)@$7~Fp#HV=LM(IejY2kpd)^@IrI+b%vwM4`U6$o?$hYDu`Z z!^MBG@COM$@y4j|Yf~r^oU0O)4^aQ^H;Udj7JVh?WE!9z7YJ$W4BIkX;gQ%Vd)`}* zZW9^tHa~cnWw{68#H58^5cKd6fK9o-^P~9=z^7jL49+-P2xqpKXQFCQ;yhM8cxk$~ zZd^Xzg+Y;rz&ns4ys^uL{}rW1S{{J1Sa>nW!c>8BEwn4;Ny`~ol@BMxqN+?7#5*t6MCKmC0Q6st(HYcoqYRbYgVo5ec zx*RQHtYV80%r=KHZM%ue4AIyyq8vPlSudHv4zS8 z7~nw?K3&4)gmuCrCG3)LcL|?E*dTl&U{QJ;nq~)#)f|%Itk#WLDGb}MxAOG(;VR@4sE*a) zLk6Jv4zej67PG`_N4P552Z7PEPqGC@BcTS<|8yGbW_F|h3rL%^6l}ne$I`9(=7Mdw zd(3Jm*o)^A0^x(Xp;nNLauhaEERz~nUzlMK6(5YbA{PY2igQpK{AQ~!7$<*|B}m!L zGersVh3FwWXQe3bq6~ z&}Ij6L*Hskqt?4xsQHlrV_-#pUfP@lfy}lA<4&&ge_m;f8-TU#XU4c3orWR6vUyx& zbPE_0aess}KZvKW=t;Shc^d3&TIXUPjAB=XL#L6G=q7eMPtG?GwzQt zxx;WJgs3qj!pmP3O9$iH;lX}hmQRV_r+$^G3cIYVjw zErknTMkK#+>qy3_$(t+Uj4SdDHMKw#haPwZI}e9NCqkh$bRsrK^67e?8;%t3vXuC# z5ZsC9%15YqVp%&71BBtY^fI>`@Gj%g3Hi1-;=>&@v@S5)(Fbeki2?i>=fl2bKXyb| zFTX27( zMp;uHM1ngmpX)WQ4S2OB*TSBmjD}u|4C}c;kndSBJFa0I0rXFz-)6(6f-}fN$w8uV zJP7r^Pp?L^&y;n<#n0FiGNG1KqQ^gTsDA&(lTsJkN#hIUE&f4xAy_ z!D|x!Zm@ulBRq=m5u8CF_M;MhSHeHy*UHg^zmV`83BMxY4+)PU+yGe2bg=0mB*t<2 zUp2D`|BpOko^m-JAQ9Iop}B#XJpd$CPhG*z=hgi0onOb^=hY|nHLBQoy;$ZT2S#6*?_oc3 z+HjG4uOguT6ke4M`dz`<;Z^zUBEjDnMkaiC2=_P`M*|)N1LMdF&Ef_zI}=+ze6q&j zXQeh|%UQah&!X9jyHr9knxT+z`(lU2g|w0nwX zS8BiZyn~b~wP~LB#djWP$3x{J1;~saQL^E5#izHg-!V@qx-z!EFSI;?;C9euVxsWT@CDVeyt_ zOeShIpN2H=L0<%_#D^H&?!Vzw(SIMsKm@~BaR~i)TMGK`^H(e0D0cyBnTO^5K+YUX z-{9U30_qmDfH>v*IAe^E1X^(fzP#00xeQZq|Z^Vk7U zGXxcF-ZMoM^#uu+OE^gQY{J(8w)=s30Ui)!x&jXXv!_9DG$4fTKe}S3B`4IUMkE7nw zFwMBa?b8JdHhk`Y9wxg)GX(p@1V>{GBRuLG$Yr2Zo4KDsecFMIlO{-Z8pTJCmE9k_D zW2GK`lGQRZ%tf-kCi?9l_nIx=R_c%aC%j|fApYhJ_}&$`Y0H(9C!^lB1){sh1ft*O zy7wZ`(~Nsl^U)w)8{z;4e>Xh%YgZ&QgDUJdZID4XA_b(L!cLsWvpmru&SsnLcev0~Si5+oAIuoXNci?51M3Gbl2} zjqiX#e)l_(DJjY;72m$_+6Z}8E&#o+b$FL{+>z?9`&@s=S2z4*Z}lPi(`QR$YD!1c zSC`o<+>qugY|uZx?RjKMQH4S7=$3=6RIv~`*c22H26}n=i0l6qsrW{w{wy<{dW2;7 zK!&$NTbkD0y&YMRLa#d-@w(}SoEXNvHsVc{K_XMr5M}_vto6#Zs`qusW8Hx(Zy1Pb zs~gZwm4K9f;*E?;fpxQSb$u_0Oid3*VOTq=f6Qy2`$FJ%l4{x%IN2SI9!$~4L!u5g zf4~Y{Ckd|itNvo#)%}Qp^&F@-=UkCsO#i;3S-YyDS?8?#|1TAd>QxmjYSq0xGL>|w znnp9Eb;nyZs-jWjY>WR_75&!}MMWRLUJx_$pna(5_gT?BE>Bc6nb=Wh05IRgA&pl1 zC(+y5gI8Lt)|&2K0ARCQoObQ5-pMN+@g}v!c7v19>c9PoTy?}Pl9)&Lf|xH!%>2vX zpJ3QbA-vI@6g~87E7x?%;9*N2LTK&gwBK?TpgflBSUqGG=`xFRnZ@VKqCc~UjE-Yz z0t#AB5Y>@QcqieXE*0=532&6}o;`rSA^e$y|1RObNq8$^a!2!Rz+#57&egEO5z~OQ zhCaQcMXWJ8-6^~$UMa@OgWO9CJNCi~LIoHPCJ`Z>cF3nk{W|Q|FGMX%`Mv_cUg*os z!2T@PI*Y*O;u7(I&Y@s;^HK|ajyw8NK97i}uMXk7F9qwZPl=0LgJ6Zi z#UTW=>lJA@jJRTBo;a2P34V~pQiwwVK2RJ#(W*>TA5xbO6Re`#sN?QKv=k0xa2OLz zHzp1NFAepGrGNslaK`ydFbk|bm>#2-EBRY6~Bh@!weZ>Tf@VV-@I)NLTt$wG=ugE!;!Z{%}b~ycFV?|Ov!dT(DU`IwIi3EzGy9fB(o5Q=>^xGhCd|SY)AN1;L;v*nLgvXO^19g`L z7#k(Q|BCi-%MpDnsA;m!%9_G0hxM_rIN}J-6KQRb!>c;z(O6*a!bE2V?yH8>m0N1L~p$%&jotXPZc}mAi7>37D2P0%L zf(X)_ltYCWDD~IFQ=kyy7Wvyg2b7QF>}*x`E{2*n-~ex0dYSXeaZMHT3GpvnBKZce z6cp}B8-TtYUYirB{>g=fW#}DmtS0XO`W*koYH8h)E3ausxopA$JK)2YaV9H70Y7uy^VkczhNW*;>6qgcfgg$ey9PtO&yj#brT*H?=0y zg&qKLRkZ9ua*R+M`k80r`~-(TQ$4}S-EhWoHO@??dX|fg9L=WjiB$$I#2zvGjltIaQ|$>HFQUiqH}BX3Swb`s z&qIs4pZlh8QZw)fOw6iyi*p(nN4uO`!_fW6+7`@9|VvmrNZPHu$zI&IR=Bw z!q}nXJ=Kva0$pz(T^wl@D}s+Su_EBFm1EF`W^1Wf5qu%x4k1%a@{@S>IJ1~+souI(GpZT@;c22F?$87twI7F{qK1EGhl<9t z>-)l=R&f~|oqs&CKSO4}w3n!$e_{-;Q$P#V;ov57=<0bri!ha$>O;IFHQS~=?RAD!axKI}7PS&+? zF|UnzTE)$FxG62XN*r#e6D#|szUzrq(&5l;lA5=Ait79FYf!V8)NJ+(VlS8QGZJ1$ z_!YuS0E-q?)bi-$m#Dqn5T`4+Ax*tw0yb%XM(sgytUBOs>S$p}!c8gh3_1o&Sp)ws zl^{u!V2!BA5r=w+5}ZO38%biOEWvXU{#3##gjW#$-X{uJBjL9s{N-1G-x1{pd?O|# zzQJaF)#-@UgLxp7++X_rLVr2_nEmB=NkX9{VFpRqMiM4S3ipe;AJJdJUcw&{9tM~c z>C1Q?Wpi0=**2J;cMK(q$F7kHZOIT7b>K@Rw37*aS*+U9P6IPl1L@tSZ^XtfnTrE! z5?DZhq8A{hkaz))&jORT<5<4Ah|$%T^Fdc%a`>*kDP4Sv>h1_s>XXVU^{d9iu04e9 zeEOsc?278SwCI!qL}dkng-tSo>!gx-0!kNf zcY7>Ft9cp0y;X1XnixW*Pt?-kjrohR_s>ehJ1g8@$kTTmj5GKrT|62!hG z$yV$~Y@kOABE?x!m2b#_?Qlk#<^Y&emLpP;1H<@8q9V`6damn~S-JyT@67B6q^^q9 zvk{S`RJAPD`wlGDDYIoZrcDG!1!SvaPdTs(U{rRsuzMZYwZOt`Y^OGpO^^YK4{Fae`coPF6N57BY0&@cH%jXu%%&0-FGx%0pq=WGZIci zIoOXxZy#^dlQ!8|_yQY1_e^xW(9qS{XMhLRda*r}eKrMR99F*!^^kBS;Px2gQ$Evb zz6A>bjeeop)7{(X52U=B0*{CooZ8Z>+*tPqBBO4H=I=w?L_|idlEbaYf?`{0~4bpq9c#8iCc@4pm!0W68u687Vjr@vyN8MfGz|b~H^@A6o6Lq)1SNhLwNL~8P zGZuE#esiyd9;M&RbYzEqW79w0iu6mJX0Ri6=T4L1z;sl5Qu|}`ZZV0ZPV<2S=-g?R zJFuiq^Ct(uPJ@n@X#B7PW2XU83G6oxtaGQCU}K`wEOx{@*T&FQ9CdcQ13>?>D-$9* zIA?8vmXlU969`ruP;n}s8z_Wi(zs}{Zc`V%rmgNZ)M`o78>^uPpt+##G&~+&~G+hceYxi#jJ?=(UE#yu&>-*S?91JT2I`9A<%uM^6N+ab%AR*ZhFbbt| z6S-GMHdi{BK(JKv0~)DM$GbLB6N0URVW3A+uT=&+!w$xwk;cp-&H&w#19%wVA!mTE zQGY5UVh^*qm+l#SmR2P%DuHCBQdb-jIIUh8@f*g zP}wAvWRx9WRaR0t2HLQ*woo1`6VxLfqyoz_{BMODQlMDgAS%8Injt88&m+i6K;I*tcr7o5Nt_XIY%O<`BiC~ksZSY}idZ``e zT~I!yJ?aj2$NrJO+oLIT3(YZ6`O8EHkV%L|EQNZYHWs`LN7KXn^KdfK=B+-`f*nKU z@)mccPb+C-L^Ot2Tp+YH*GQ$h`9p9=ELXp2s6Pwbl8Ro?(7v`vtKqX5h+d8th_%{U z;otfoK9FAxji-=F8C04Mpa5`Bukg0}r?^8NbnSRw{8_#T9N0Is4Z30eiO~FNj1-@a zPe}?@PScLf?Jq?Jita88g%Jv4n!3@L-KbhOVqW~7a z^D1G9g&mdKKVqRr;r1a%c1hfRnic7nxc!BW*qyokNe-+tx9>ogUi`g_Pk}Ya$3}h+u!NHI&=H!Hr9pPdljbovB$wqY4Ad{Y;Lfj(QbG)kgoU_B zYaduYr=SwWenV$g!bx7iV4CC)SoNyNnXAQZcW6XHvB6fV<2i_V{`vn-b?y#?2qaYJ z-bA+bkK+&Jx$ZfS(DuNwROi0>!BU-Dh;yfatuJ>@Iuz%aN)K0~u!aCRy-_>`fc_jm z(01@C{kbqYGG^1GsL?IVpc zwK2+gsPg#)=7_h(#x@b#s@d^gw6V>^1~>-a0vr2)*pmnCc(>ZvHexzPs#S)|Y-~HR z)F*B10vr2;*xHY5tiO$YM(isGMww4lzR!u}e`UwpX=5$K#yoFhjW)KE*fIz9l8v!* zB`xP4va#!l(Uyi)zT0f?nC&q98f0(>rCD zYbSa-YqaA!J5d%3t16fZ&}yD#P3vN+QF#nRaAYs|#wS3<0(cH$ztUTu=Nj$0bZ|;=+-Ryi ziwP-|3IBjAe!lnxA+I5htL4$IH`k?wx+6q|E8cr_)%fWi8R;WiFNXu04JBV zuW<)^N?AW3lgpTFz!#a}j=bsO!z9`=B(h|aFXH8vcKSs93;aABDJz_fEROhw9@Lg? zh0h0gK(>hqR_K%8f?VxR|Iov=Fub{}t$rj@S!uFg`?uBKjMe|@jc6XtePpsaK)RYu^%|5K>D1f`#0 zO}NtyADU5FKLfHh2`^7l3r}j;v@)rV(1F?~U&48Qs+*V_QaJ z#%5o}5pVRHZr+Uj-s<5Ci*d`vres29Xd9ybj(zy?Yh z8_xst>!G=j;lZ-Zt8bIm!JX$h`bLeqz#1*P!hG51YAk)4M zW?U|^ET4_Cd=MDA$7{@=s~^~6;!c-`LHjZIgxCbq)s}74o3$k|HwjHKu>UU}R{A$uB+`4w`ecu=+YUX9Fz0U3-h zsPIkAx=VU*0I9u6>J(2VQfQr~Vt<)0W50tXKLxT@T|hm(bDC~H6KYxw@nOti3H+GD zpH!GXT4AmeVSWX&JoHmJLsZVnJS1XX?Z|xJxybwr6pjg3iUg;6E>Q_za+HMW*EQi` zB8D^JlM$}1E8Yw8gh!oSWYr^p^)%7mI#q$~Cjibicff6BA zM;V_};q0Mtt)masA5eWL8wQ68RiCB7p$12v{SO3^(Z%M&M#Z||ZlLXJvxB1@vDKzT zEI+ORE|)hrZ93|@o~q;@rnf$b3Si~R*Xhg>Bx<_C2o||J5HRLc zn14fDNQb( z4Oe;OjzFn#U7$Sjn~M1GfPv~qGed9?kAtMc*mQaT^LG}?LQMe(qx~zcv3-mw*?~gn z>unGH2phJcSgCPG1#|uxoU}AnA}Xm||4jgHQBht#+JJ&YkUQ5(Qn^6AQ^xX7Z*9kN ziZ1JYM?Lf-3Q2-n%xUO1F~3QIMZqJXA5CuFP%#yO!tFxxaXS)kF;~JD^o7^uSURH4 zlY|`0=Frcjk@-xz$#jdPo0)W}F+ETkUS9!=t7V1p;6!|_3dt;knB}vdr?^lB!~Qp` zB_4{#dl<#JUcFnHF%#1na^vw|nJ|OxG+D{&CHga{VE=eK*OFd?_Ph0*7amN3F;so> ztEGI1>F4su4d|LTG(iZ}9F6`I^NTWgjp>l1_3G1+%{OK~fYs^9(=0-g=r(90N(~>P z!B%tPrzt!?U#w&3ePbRt1&1EfA#V#yyW#Z#DBHpPgNes;*=$Yb3^>a4HdO6M$BqG{ z$9v)r8^3uFM>m3wQ04d+JmiQH8j-oE{eb?H9{Nr->~=GZOk@5Qgtr>@JCoBR8x~g_ zh1-K^0V4ooBE14Q+opgkn|ZtWJ|c)_&K2^HVg%7r0Av(#X@e|a4qNn{W;0i0Av!yT zGt2cA$Kq;cDZ5YbT)fl+dr}yijb@nLirsWJ0u(d|%Qz5uMforw#AXQPCC+{=6pPW4 z;<>$r{FfNZ6wIZa^wR>y`K%n8-o}7No9#D05?oJ?=ci6qZ?;>pg?wB1?sQiWlq!0px7fJ^5MY1+u-627zsuQa|1P8)f-9ME^uFORnm?kp`=+S`T zCW}cc*cv|phPq881u-vJ?>28jfY;r!%SlZnRpJuClnRUiK9oM;*c6J;KTm4*?jK_Fzb%uY}Gij2fzjs8V~p+P_Y4hSidtnU`#?v0r@Q~ z1dr9d=_CMZrx@EMum>c1ko=?SjSa%8@4|#xElEuH!Vr=g6zD)Eu$T^6e={58v$quv zU_-)68Faa<=74B;Z9_oc6NJ9}m8_}Ypn$$5VDx6C{VQO2nPsR~S)?=@GRAn!0cQPS z7~)ctpd#D*s+&M5LL2=9h3~K^W7Ffk19}P`hA2FUo)N_R7gwia2>2FU%2%a>UgU#0 z2r=%#%yA*3j2ERxMIIl3zdjy>gB1NzK@O^HeD;DXbLuY5DJ^V=d9FQvyhSZ6&tphx zHE|TqU(*mgsj(=>-O44lpe`~N#^QTm^|B^lroyA0*Ii6KKq{Mw|1 z?|mGd0h4ATWzfKB6A6n{szt&RP{IwtZcHKgTW6v@7kG0hY*7II(CE!^$5Dfuy^Z5? z+@kR;lDaXmU=Blw*cg1>M8?;k3Nd4&*b64*)J@1iVco1B#%{eH8(@+mW1qy3#Hr{_>b}RUym~qk+wvPk|Nvi08vG>0k-nys`VKN!5Tk9?p4i@*kX3s-hYP zoZ>}V=_?)=m(GOJxAA_ORmcr2FTZl~*n;!(O8~s}J&r4o z@j85qv3#f(TIFJyyedvprfHX3CdwDY+QaBN|^~#Os z->pEII2BJgi4$oBcpsK?yUgcL#1w!Ey>TLh_#s0KFU2b>;n)l;8k#}x z`XaHK`Nn*ze-gbvqQtRcZcCv$z6gJ-5H1#e9xl%G@>;1)pbPQ0NciD6Uxj;Gg@e-m zt8nrkoQtIkwS2#*2UtsJaJph)>qy*}j=j^n7~Vlfw54a}~QV`XinV zY-YV3=cH>k0;M6FSk;?wNxGK9CFoi~0)$Jidmf&k?qz&H($o0xADoZd&ULo)E#)kW zEaJ)*B%#`V7)#}-r=zdJhZS~;q70*kgxz(#qrzx#7X2TDWuwI;VSVkkbHNF6xH<+6 z2UKoww%N{HfcyvF9Lu?4Z0W@Frks~s9?d@fs~UyBlO|5G z`_>S6K*opp&0>^T)jWLo56+-+#;UG>iMhu zW;nSm^qAitM}wI6oA5wL*Xj!VF+YbVxSdqT(%PqMK zztUm|i#&?*(p~B9z)A!xI1eGQq8JW%SYy#BfI~$2i^^uWaLF6Hf4j;EPRo`koR%?B zI9pJDMeuew`47I9JyAGm+)MekDW}E$hm-vu*db!{1#?&FWZTXGwzCdn{S=w{({Ki) z^Htl)wFxEaP+zo5D(ma*K9~k(!Pi^?mz)NON_HNI6l0wOJA4t(srTU>6&SURjLyV^ zl9P<-w;F|dBY~;}d*WG(=MIaFH|XUf1eaRSR5KefQTfa-U+Gx|6%u!)M7?fkyV0 z+Ah;u)71gk^wt(&TtZK8-KJb(&tNvmIC2lr+LW#I5F?%m5UN$iXg^`CXD$9GKANv7 zp!c%vNm;vm?7z4{h7}w1RG;x22d)3CN=)6i=iwRqvnq%Cw7@ssv&I$S|B)KDDlmc= z{d$l$`tu-&LY!8xA>5&PxwCbx09Qim;{3Ikb1VK-P*}ts_d~Z=A z#1FV_dM|zn0t_p_OBBJgyQFq1!op&nNKm9d=d*aPf(`JBcNZUAd%4$Z%c3|)44%d- z4J!QihXxkzzrqLcH<}x*-HIQ%O?CbcjslqJCYas{M9iOYkCjF&r4!~g zCKe&01_HL!ck2Y!pC>&?v7}U74sQaLdNjP@)T;R(;&|FeEyr!53|p)i9Sd#3io(&8 znR<^-sfX_#;;LNn`H7V)KRFSpY{6Ata@oVH1V3Yy8C6WLo;O6n?kin0po{BS>1vU6 z*o+Xy92|wnmvEKUrZ8D_nW3SLeKbZHm^mTGVT;n+ap_!XmCQsBW*%$}E*RkMV!zD7 zD^!yh69bW8#)%@%5cq{xk$d7{S{YDipSNHVwBpT17-g8v7I?DGPat=Lfq%ksa0N|m&~eR&0p4*J`W4D2e>9HKBlNZW@n zsyH=kJ=U!Ju|eNh|L&$un*!RBy)cS&n!7#Hcj?eASnbdn(70y(G1pF97lyf`C|skB zO?Ys(QP`Xa0b1Ewykb%Bl{Hi;My zGb`f(k$xkDLm{s`c8?V+ovc4NOW(5(TI#UPHzjKZ);ze01CB%miuIo zshz#FA+Ydw-4+JiE7L7(y!}MTn93+H^EXXIQJLy()QE3Dr9F^~JW#6-q~nVtVxjn# zC~$(G37%+#xnC3Ig0Vq58&O0k!#6@1KFnPk^x#lC2?I4k;q+CJ8kgcIQh6ILFWU8{ z!S7*o;X1gTH#a-5;^XaHCX86K1`#waE`j=@9tda>NC6OT%8vJEq{EmRiCrMEG=b$Z z$wdA_YgJ_b$g6;H`jL__8z^I?GuDQDjBGm=s$fgKB$~0}P1XTR!upSo$DM-1nPMnA z*_&Ctle)CYLmUIh$6O;X*ExA7)t9rMIEV_N{}oRmOv1u4~*IDs`g;_9N79{Mw0M@_`HzuXxQcv`+ZoDR*4Q zQ+C0t$!F@%g!f9;ju`uj%hjJlUn`u&`?O^u<-p1rFhd5JOU#8!w!n&59>-2TVjzk5 z)#4JDiT#h0fAyu8UgBcRO5RFa4o%7AQZu_SIpYnEO;HRk99VR+K*i!vkFpJgrzj^{ zAQJ&aPjQ@4Chi(|A=$6 zvPftf)Jx|>Qqk|KABC#HX}qxa!RZm*^L%kFxC6b^SGXg1ycB>rw`VsT|1XCH#*Xk$ zJ?7PSUgAVX-`C7_$cRV9C+qsf(8&!UL32_%{YTG~@Ei&I3IC38K43@R#zIBM!5Ow> zuxXeH;u3S=ZagUS6E2M#U}2K7*mgtA)z&dvCSEv(+CS&yAZ-T&3jWLEo@5O z1>;GZ!NBAc0Pe404IJ-Z+kimS##8h`E>sWxP26h+HegD!GCxfKsvCRpC>))ga==4kSlKns}UAP>^W}{5s4b#e$ z4l?{7nBNbSrbF*X<}{^(038bhXbzYGeGgTI)6QGH)iB6~n)LMPlN*{ri!ABiAh?JD zLq1q4#Htph=elx*k4l3ZP^7U#q!BukPn3xXkeSrO6USr7=}GYOM7Fv3(Pde|wlW_8 zlsrd~d2!Xb@?!}3E7l;CGtKUjHSl!;N@|J$&vAzs-~xD`;NBzP+X;xgATe9WH4JZ~ zF#3;hB#)ju8)qsox}q%`{wMso;!i2OPf}|dGJ6+{$#?MWlj@(A)!3 z=|RV{&zuajH-rkh;YHxX(H-g9(m6k8Y{ric@#DCRjbNu;a?naUV%P|J3UI&I;l8KA zkwxbm-n#AoJcnLgauDkRaKm=YB5HAn>j%rCD0Fs}VG}X5QS&Zm&2uSGy~Bm+a``qi zeDy(B9%>CXgd~feA{(cE9GjE9S~OYLcA4J#Xs|n0g!FLE|ZMvJfxmR>4c!wn1-q#qZ|BvbfSBA2j=d zMyq;JJ)(NUt9ZVFWV>SzrY+s#-s&*ABK!2N@W!+Rg{o(2wLN4_nrDDQ+rVin&bwv) zXtHKuTSzjPlMko5j5h|TNW<|9FVb**xWT=_c#I}KqB~Q= zJ99EN(sW^O1Xt^qmiKWUDZ3K8rNhriIuIjCL$i*n2HBQ zjsp7hIhGL4X<<%TLfoA zDjc-YN^Bm!w9*PM9@~m|FT&BBf=LNq*Ip5CF`OdaOA4#OR~VW#gb{Ob^@XDsHA!J= zLz51j_An;7C*hKF;?u%!2~Lx8hE7{DhKA{@#t4@l7?4~CiFK8-K1U-KxV7@kSOyCt z28O7=*>5c4zJT`4#5M)n6=ij<1V-m*HVqH>bh0@IOKRq-i)h=aJFQv4C|Db4!>{@j ze1%6o3TDGp>9g#;4N~^r9_;YY-rJx9EEi^~K}9qF-`91D}dJFS-(u%qu zkzT?;UhIJbn2q@ls5aF9D*j)D{}i?%w6i;C;d}9HcEEiGp{!TP>?_AsCv( zy|FL~XBmG35hT?H1P!zn=QTv07_G6N(V52%01Irasu+g{cBE1vxOsFar;2&&2*^X9||o zeXrpPT3B-{XfQ8DcR) z0Ybx1)Cd>XMan{pk2Xi=ficU};82b^_0hKsmK1igSrG?ku3_GB%p)MCSm_bfVPVwhHSB0Y%lgT5H)7>}awj z{+VS5O6k%PtDPuYqR5%SpPgs}P$X>=7j~juTH*#Ln%olO9gt{=q)dl7QMN=9+RKTu zC0OP}ZMLC)5;fALCAKgffJgV1Rd{y$PW?&J9L&j4Lao@mL%lZR)t375Xfp3MNRz{r`f4h?9+#7hw)74+SU*I?VYzGIdKj&c zhK7d2?$Gc%v}Jv-^y*jS%?%$+3C=0tCg}eWOS^Q+p+yRcFNl=)Ji$2kFB&&QY9=EoZz5Jn$bbNM1`$_90z)j zBW_uquu9;ZE3Zqy$CxWGNd(}Gf+J^AIKYv?Kq~+NtS*yzPzUBHS!`>eU>h>RDj+e) zKC;3wl}C{Z29AxAohSOvV~)Oqr{tXw4y%&ev&xA+kreR;C$tC=uXpBH;zVBn$_8mQ z!Cxs8_YAw|zwJz^RvJg`OkZO~kSG&6Q(`=5wHqzysO|l-6YbL84>{1Iv^URBWqTZ> zy(cCD9HYI@wgRa3cF--~re{z5<;MON`{G2=+1N>ZZ<7;EZtT~bP?yGj%!wv9_FN~# z#(v(}*f17t)5FF_!`Yp0lmq1o&{1GWbK^)g@en$9uBE6~m;3FA2- zG?#jleWs{OrDUCQyln7Xo`g+6FmaJ?o7pML`vp5YY!YcmL!}~iAs(axOFLfu^I!#y z?fCNM;Z^(UpIXpKgsmN|WV@p|(-1tt4L6{lDU8i0E$yfk^xuKO!gqUPkyi6(xKY_< zdBWJvbb+*9j}Q7yFpt)Dd^rF1H`x|{7E(V@sf(8rb*hWVV+WKRoa++@zyhFLffvCB-h)rndiC{ZbII?$tVwkHzs zF*qAV+Y)&nZ6>?i3P8FslQ{-Dl`>`AU*>ES?i1md1UXx-lauTf{6SSJI9u{c@&hMI z=9Uz9sS^crOODI4wnV;*fIjcc_bw;;0?;J>HqAoOnADn2#qUI=^ZiR%aA__FXHqLu zQAnY+t9s-~j8NZz4s3L?mxH2OiK0&=68#p$bx9P_oryLk!mxkSYECM;VIqmYCc!YA zBM1XKPK2mU3PJlhsp#(t4&5yCXWB5KBO;?xEVRt3OHi$h=%nL~QgJzg)nsUxZA8Z& z{Kwhxl^LCLc6;Pa4773*l3hGDHNT4!v9(?BHal)Hg))_Tfj<8`9N8S*jLwCKOuaYH zLQogbySzYu@oq@Zix=oSnbFw=LplG)W^}5$Q?c(l_(&Yk9CnPS)SYMxbTzA$wA%9>`)kXduIiIH4yZ>9BF3E&4>>le zJ$59G^e>zcbHr~u$EXwivNJu;IZ%gXT}4u@6J4K_>CH|EJwJK%TjoS#oimkoZ6#B2 zSlCsWW;^0)6^Q#sXL0sAwx`;)K>zGSKX9UzK%aG@OC6|XX;)?XloNtm+1gd;d?$)# zQr31AdYu!+k|_BM!0SXY=O~N2D(-1cv}@Jcl(Ona0&;?-0fgct#^SjLYngc$^r|!uwaeZ z5oga@?Lji;go#}>?;vpU%<{c+SBvhF-1*+KP)_x>l{{6-*PN)Bv2l2oV8M@BDC#X~ z%dgeWwIC#`CUfT!Vrl|*Oy*chB$6I!1z^&+Fi&O-{hcT_tI6lOhn+iCy>o#-ccKd% z?V{DLbwUOrChc2ZaH0<;MO@&7Fp82p<}4?=2q@ayF6l%kiensQCRa5;z5}%l<+h{Y zxlf(JSvO%Q_gEd^J8PfHxwacUjQUTmPB_e2mt= z$O@oZ-$C&pC)B0s-A+{R+=5?Xfnd%2meE61&rMFKOVhvPM3bBTVJF0|R zH>NggUUmJHC<>TS#pz)trttF4t+uSef%!FQHptF;KjG-<2ljrcnmHa*tpdMgxKC_^skIuIf@G(Z`(^i14qqEuxbs3#AooJWQ z>35>ZjQLC_)Ma#LI??3Oxd#j~Q43v0r?j=G8m7zW{D(7cm(lr02ikRX-f5wzV(z&- z&YnLl0UpIfsT$rR5hmG2sekBhVWSk}T8W}r6T_){r$m#?l&VC(1Tzq|AsU{0E@`P$ z!RwOXBx9v2#9xv^*fvWQ98Q9hOqZ$Y_j}XBVdV?4xQ1+g;J|BWG=4)11sXN#ML7`)5>kdBK@)as1yfzK* zt4soor8Cp=7#Yfp9cC~&^1CQvsUc!0b;$7AAy$MLj8L2$;b{@!er5qJQVcKVZKQgQ$CwPI3B&2Sqw?4mJN&UcP4aDKE`R&gg zut91|4%*VN;2{aAc##qeBX!aZ`3s08J!iZt6hnTbJB#jwkR!xZ_gaFGhW|%wRYS+y zC`2FkR&S(6ZyektG@uibtU97ZFKosJRLbkpVii0&Z_+`u)wgUGoE~qPN%W+!R0WsOo ztzzq`E!%4=0~~)-l)3P*T_*&#Y~@DN1>7{A#DNR6^X}2vZM456{M5 zVf63JMx82AXF@mXTG;>NE1tc>R6a;57A6sHCZ@MC7nU7H)u~c{9ZkcXV7XW(r))P{`Qb?%(DP zt>J@2Fu5w&arHrw#C(iYSex`#f5VF{ZwBO)Rbm|t2>YH$uj6ty@ns1Jk1W6zX0#Qm zkQ*EU3K&2DeGzpsR_`+6iH?YpKyeHJP>Pc$ow=euKnUuiO^pswA3S&MC^vqSU+Fi3 zd1EWR#Q82co$afkEONpL-uJQ95udQ2izUM!(GRW$dfZL=}TM=%1MXDFcod z+ktUN2gfy)K6l$-5xONy#r9@2*1KdRpT5_;UdHNM&%0tIM868*7tBZ)ZxiGcK!!eH z&#iSB!iY8%Beu+#lkcEe6A5Uw|HU@amX5n5+@eMLu6L(k%JRaGBQg%jLf&=NsxYIW zFuG$*T5jGLn1+q+?3S?+W3UJjE>sa#iU^@8Nbt(@ndHg3I1sUqXO!Zv% zg$J5>*LkiH-|Vcb@P&y<+M-O`MTjF~iYEYXXk5xK)C?O|@UBfOX{tU5eKjn=@JAcB zMGSr9ta#!^7%pJm+Uf_YKXM zH&(5>51y{zsr3`^SqUB`s(v=Ypi2#}zm2{xyx?-j`->1#Y@Mc60rwNI^twcP**buo znx4l{B6+i~2&vWbs#J>Iyo3r9Lh+VToY{tTC!79ZgsC55MP;YhrjQU2Z`D1+T)_}q zuOQljakuo!{OHc?47_TyblkZ#CYz}@Mt7xWtckXyWo*pYo3W;Tgeu`fDxI^L!)eSR zPa#2t97kk05%haeD_1MzAX-C=kd>|?2=#!fB87ZGgaCW4lNd9W|cB?_5H1gkwD=@NND zA;XFEaUypsq(714oXD>f!WqB5uR=t5N))mSBd5L}5LuD=%KJTfAD{3(QF(I`sy`v& zoua(|Oz#{f4~IzJghf&o@Bw&K;^E{XS1_~wM22v+bfm_6NH^Ix3%yc>p2~Fki%_c2 zixk4E()yE}$o&eT5yAQa&b((Sq$iPq&N!DTWDlsUKN*ND^u@~i6MFNEQ+nqq@3r(k z6Mqt=>!A=%0`+I%kBqPn<|A0>N9jE*;r*HL4&AF34J_~m=`~Bf2r_dE*a%MO?F{}) z;$;#qCSF7w%_u4iI%UWyG)zo6D>?Zv)j87lc%eU&Aa=U&J^Ccz1tzrE^#{9nsydh2rJLUumA^%dokSI`azjd<)nYi!Y3V`0Lh(W^Ijqb-A= zz?Bm|qTPE*WFjnf?AJHX*+T>FFhLq0Y}_>j@Cg3KZP{C_OQ?G?^uR>u-B?X-j*pgc zR3M1{4>N8XmgI+(vWas?M$YmgwoiMm9Wm#`sX!V%FbIpiZQ(=iU=EgpwBC`8j1H#y zH2<#fA@T9L8+=f+u{6wnL4ohTY0+aB)HoVpmt(g#Qhro}9%aV-Ca*DxMm@6r7jy3d zA7yd%k8el<0f7yO78N0Cw4kU71`0|r3klh1q9}@J1yLYXiyAS})N)y}B;;{j8fFpY89`90Gk9T8xUzwil`I^PD|1bLPyM z>oaraoH*XQw;T0y+gItfQz7~Fzk_2zU%*Q zc0J@Z_MvE}e3jz+(n(&*VAaHGpF@AiI}NKK`i;E+8XsO%Hes<67@3_DnBj%c4;Lsu z<|wdezYmIH>a{vyPN5@OYIJTrd%TA4z_$r+s1rk~tRYy&?+#%D3A<)H?O~pV@4C~w zE5d%VhvAiRQ;3V|sPI${`kP?wU?vzfTX*#Tj!$zThD3{@kkHr{yrQIiWm#lpmbYp>`@>(_xvaI#J%FZK7HH4hRzWy!T^=C0gY}yAjsBlduQjxy#Ve8$AlH zL*%|$AiyPK4PLgRxM4EwL9yMJJ>=MmlioqFL)jk|dxnJILPQAYw{=Us7Q_Lf{$P1ldAG++H zNM093rp)v685#EcE{dIB?98+gN}nx^=7)iNpSF8!U?IMJ@RAVnfAT$yo7xbS>K2bS+|-Gcr?+urV#7^=kC zgx+69kBZ#akm#bPhQ!L!4lej4-WIuu7`j8C;dre;Li6=lTJY{w&U+g?0g?Y^tSqX^r zq;XJT8Z@PEy4g7B@LU=Pg(+$r>hu_1RMaml2;%ke3}Gkq?uoyjJV~S(HPl-xZHA_d zGOUJPhXrYt7s;}+uNXMI$S@&#xiBF*J5{qGng(=EtU|p-`lu{24El-l zui&v2OrK}2#0xK6c)+kvI8qHkY6QZ$*<#Ah^%fRZTpP~K2g6z6+>~%~5q_n%{yZoY z&h0y(BzIUixBsk!$@rCaUUwKh$jx}D_Up`W?%>_=?eG{n^u{OZ!ns+?YC2`XHvOo) ziS6?O#o?ZjtIV0rk#jy~|2dr3h4q9vF9;bWBiEv*Hrxlw#UEdN(TZ?x>1ClEpgir& zWv_<9b9{)kY}!(!oDJys(#jR#Ib2Iz_uMVZ!gIK8czIr^El5Z$*f9$aV5C?$uGadlc15oETM}%O<7tj@BvWJCz zy#Rf+sxxpYfL0#!BOceaAIGiC4Ey>5x^2A|P=7%G3SM6q_R$DL*1{Ip8kgpf637@@ zRXs!_?Y(}yoUIDz$XY;b_zYwGMm!lmoHYf*0y=L!yi&a{8|17tEFzoP5VS>)IR9G4 zR^_Ry#(ymf9R3_vviltK#%j@d6Ek6C61E%_U1ibq1i8u;56v+nD93{rJG+{SaLW>Y4p#>@=cT1}93o9Tw zwzOsxo`sLW@g(kFq@@Mkep!x7n&$+O2$y1KOlD4pKrOi1- zXhl-)+0X`lVip*iIfg$jh+Yq0PV>_yr zya#-hoGtk>g_BE$Y(xlGa^*Z$CE|TOYK@GFT=dv4Yq4KNY)P;Qkog3;i9{aKiEv#g z^5e1lp2$52DE|_66_85qePpqd(PoH{90URnB2DVj0_!#XFcL(-iD*|kvL${Ss0TC8 zzlV)<;6LsbZ8hU|SiD;VAw-7ZvO9v03;e(*Wbj!G{s)8mAh=}^mkq(pFJzoT8E5}k z#Q7)V9IZi|o5j+Ci(WgM;41P7qOjr$Uy>C#9#8f*ufI;zSMgZQ@+a+ux{71i3!PJh z9v%3Tuot?)ox5Kc+LWod{tF1Z$jW{i!lUI=VZ?J>w0T@h%9rXXwYHi)p63tATp#iT z7I2{O1S*6X&mY{wx53ZSNUT5LKqzt;jTWXnS3%Y2_6p6G=ia>F0=5|z>kUXpdd-3P z&78f_s%lgvS`EYgiZHaAlJiU}K#)c4h*#y7*T5Ep+G&EQmu}+G<%QcI)Tb%bSC^I&U^D(rHt#OS9(?32%q6RJ0mgtd%BXH_>dYyYClJg4p8j zyHe^xjAt3ST>uX6>WP21^}@g06tq3lNJO>( z@w!>ESkAra^+IzdIX`hRP4Au&&Q7E#(X3#$_zs-qU(to{D~~2I;8=8K7M4WtqI5W| zWF5%yy&2>vl^<3JsT3@h0_aw-5ZHox?bjjzIWTD4E$2fq-Kswr&;IvKTwCk=Nc;_0qTw;T{SVkF*s)@mQqb%HuI;h~)?0lhgd6$l>=m zEMo@c_HwZo#=kIROMSN%1i_UVtV3nGgpsR(f5iQLoP)K$8KW`}q$0`4Qqq;Zldq*M zFJgpMcXx!|+}{PAk}m4fN$#hB=o^CCz)K|2cWwgFdJLX>_5iCPJGl|0*ycJvO~)LWf`J(17@|z8SSEj#W0N{b4&G4A11Zw^U&!Hv z2V4JJ^tr7O<6Q3-O9)4t&J#87#1U}9rq)M5Y(oVTeA$8G1{g=>Y2@aRFGlrn$_UL8 zjHwd>ddXHO-61k|j8D}{(89K<=Z9PmVm&fdXM#qvx2ZLz2I`xf@=#A}Jx(h3pNz^B zZ9%PSpJQab^H#BlUVn=it{=_E$eP&>BkSF7Vz>@wX3F4y%HZ1=d@X~A%i!KJ_$e7Y zn870%e31-}3jDx_Wbio*rq*~Q0l|ES(Y0S;t+Nv2x#rX%@tujfxlSxMgdKm(-{r;F zoux|#f6`7axytXw@4yIH?WD?PU_^hVd;$Ot&(bnuw5kfS6|>I4$kE*#V{zvSzoq?7 zMhy74<_Nr(#iiiEKO_a-qrNycOZXNmBXCnE@Lskaf$uvTVci-L_-g7!0G2FRuE6I2 zQ;AIuhy6;*i1!itGfl>PS~FzTJ&`1eR*>90sP_-9)F^eUhI@QRFH zNh~HZWwRzNs&Wh2tnmvAplkfX0H{111QRaL^2vfl%03N|JvG#@hQ&{$g4J-$PWj3a zn&B&kFGxnxDYil*oruBABJcr=AaV+bgGVGt_C(jue8saIJPJdfS>AvsFTIFH8@x)8 zB~pdsy-Y~P+iT#OanQ7ExCNfI zn*GGGaj^;}MMauyrono<8hc@_ds@GaGypKKKD6#-8a@8+Pi=7IB;LYdE4NEB)N!ND zV)w$pvQ0R#7$#z1K_CV;#lX_(smQM~*IW6!yh7#1{6gin>)1QvDW*`DG>ksK!gK)tn-b%KhP=RN_NB+6#xsj=6ytUe z@#qp7iJ|ov-i0IocvXzsx60rjZxF-!-x&NegP%aKKJrq}{#fJ>AE8wT6D#%^r#w{N zOBZ{=Jmul;vT<_L85HXJg8N7kAmijFcX-O+6ydGSaO-xndUDgl6-EMXZKrm^kqx(= zdFH~J*Zc^i3)iFPbEoU|SG0qdR{;T&r^s^|oW1lqi)SzGarQFkNAMfSz|JOGIa%cC zjB)VdqGPh${LD_dJb1~w;&1qs`tL)}@Ze?dmDk`1q<`7Y4m^0d`l34!mXY|cKjAcH z@Wg#z@ZjZ{o-fql;H6jZiwvgy(B~5zviK0|^)eoY%m#FL^h6wTa4djTYCul{dUEMyIOM1T zH17B+9&%Iz)DK<;SonY}aqI&F*|vk1&t6^(Ts=ZBZci>(1M2*Yff3 zgK;QQ`I7AW<63^w&u;EV7{`NgEfZ8o?vdS$Uzkh8tNOT>o@z>Y)Xle8?d6mgw8R|3 z+gZ9A%s%*4%1lSgc9#dhw7m52!9qwJC+S^)5icE_@Pr=$8UANexX_E1f!HOH;U#K# zXQsy}$+=Eb0@G$R<5HZl3=T0aU%UoGXiy!}Ub>C9SK+A`I;)$^K3Y!fImOjKhUb(a zCgh1dr)b^d^t`4lso}}b8r^e=7cyQZ+@;hPkF&T-xe?pt*~$+kxoiiT7M7ll`xNP4 zVovEx`!q>xJE!oEqUqY`=Og-@p?Y=xIWq4x)Ic!t+BQxbIcS*WrD%W6AP#Vv-dxLl z0BKUV-ufLkog4 zNcCnx72fp{?-W!QZW)EFd5ZO*P8i*GcO?8bUZE9heouI0wv^>aFD0E99*Jfro~i2d z7WJ9Wr?-Z&MNDNRoJ5K$3Rb3Ig(?@CiVGiw$s*3ZkMYQl#bttPt*6w6?y2JulS$Uh6w+ek#IIL1e~g6^mI0hpkIV4t%qKL8^V zB6t9xPfF)7Kv^h9CBjL!s8PD$_BS6x37I2mo7EVs^s$Ub`ZTnl3X{YSBjR303|BPc zL0$ktn&N{}QxQTf^oJS_AXQmpcn95^q0_uACOIS*>f2Cd8 zQPV3@IZ0u`N0~W6jX;a&8PJoxgPgGK!oe?~dO&~QJP*)nKoj?!t1fV7-aiz)tOqV~ z{~K6zHvyV?6svu)zeCCq?YX_|VulI%2;HLc*175u*EN@#M?$x#U8}mp?KSQ0VRDIE)4LptSeEvKSM$^*Zqt9x zMrdE)@?OjWMBSnRyJx6N+@iboV2N8!h3o`m2u`?oH8rUR=W7ex`vJ)&CD*s*x_*&) zS^I%#Z&JM|@?W&V7^~V9f`D1INTi}>(Hlr%U(;>?gT|7!d@DLHr2}lU0d4`v53t5^ zw%l0FmTQYy%@ucQ7P=o@acc+{5zQt<+qFQn0RfuHnB~<>BReH1ma@8T2kd5GZTwv% z?OhIRhayw{qOFa)<7%5+5%)ltggU8^TpJ&I2VCfD<73atl$Z!-w%7EU+CMJdyARF4 zBi1djTX_CT?O-gWJ#|=(M-4xoMHv3Dsc^lj^5kE-cp3#27@1LgX5bl)>7L8R3{5}S zZ>8J2S!wbweUst1X*0OEPawdt(sS7jS(x+s9dUct(PeWI6Egzbj796Iw@le^`79ib zVNni0ef}MBhd!rQV|h7Bji9;Z6dTQ4xr;?N7yHml-ga>_l%(M#bsIL;`@$P;@dY%* zI)#3YlT}B=>XoQ%$i%-kvGv>&hIQhdD?NuKb-DBCqXdV?l_4vl^H* z>nCX&zdY8-!hyRgFqLs)hZ@E!BvyTQIr$~4Xbz0+!27axtL}!JK%p0R;R>^{E4VSD zzwL;#YmTb+vujVo-frT&!E^yhZdLO{0qZ04Ii2Po8Ld;g<_!e62p_T^euky;(0g>D zrROUA{PLoCv}!T_<4xmC?6OkjBkY@mYa_TjA+Nen$yn^4L1urVbquM1b9-VI78cyu zug6a9eQW!ax8CG!Xu0_J8z=Q^@*lp-{g-<8hxKud!jgnLr!nvsF8K@5j0@d4Z9~?% zN3K);)|m$p*wdo?gL=Y4Liq_c;V7`CW8mWjpEQy-G!6>lmmYf z&X(1J=C+j|RP)>*Gw|1OR;GXDwY2sj{42XKMML4>|INR$%J`55_*ZVU`&V9TFO}WD zvRWilQG|3gE5>klEviW?divV(gN4w3)I5j3jiR9V<~?HV3|A_XU4Z7zH~dg7Vw$`D zK1CeLw6+h3r{^TM5~#5c#S$>$D!y8yx6Db8^(Wk{!uzvq8r{S>PodX6qrMeI5Wn(H zlGAZ0lnHJ*HyR#vU&OD%z_@){D903x`9_4lGD7^geM0%a_+Iytk30dfPNx-|vw{gh zgu8+nSv9_;mtrU3(81O-%IjB0QvJ7-(pXPyFr6 zY$Py#!I&(bb`&>WZ0G*vVX>Y2l6Z94jz{gc?XceXqKXUd%u*Tbm%;T6=9^t)8G>c) zL61Yz=8WZM_Aazq?r;PWk7F-K5x!w@zR-dn*o)wRfnT4>UtFl+*9!T|Cx5*revK%F zn?N9*f9^SW=&J@KRz3cOc$<+3OL4h7~idtB6 zmV=ii?gSug`P}V9-Qz?}bfP9XQInmhLMQ5XPSg}9stBlB%Ft4Phn*3pG9nw2CE_E* z9)bWY*kWh$nNF0CX%FC^CGD)3*s_>de@yJ`nAq}|*ov6gIWe(ZC--sEJFM-aX zd@-@jNMT{~otPBfB{muVEOFn9iG3efTai9+qCRw@mN-!>fN}~rL~IZIvv5;KELS-e zY(24^?AVpW;<~Xl?kZqyoUdlYv$Jgx|3&NtcIj{p8reM23px0M;J@UT=ZeWO@T}c;VGJzMJXlhT`CKw87;|*wcsDoe!x(D(#iiDum{0R{1*BwA18yg$Z6os=pr;3JaGUw-~l{L>C#!_1!y7=JF^ zq|$yy)n5^@`G?p)oGR*}Gh?IK$Bfv}b!FzFDUWJTj^p!#({*Wy`)d>!@KBWAJ!@SR zl3RsE>7@V*8qVkml%g6c)jnF5AubeUhZ$w_FOyRFbA$WCjd7pIvRBoUrcwS2@YC`> z9kW_*G-bg`Et#tU?wgL)gJ#T2di zXzlNhed9_VjVW(aThqelIqIWzoD|$ajb*(%9h|k!2kD?YL1$7gk*snE{MW4)iK{4R zd8Uj6%2cV=al%=m5}bvw-eP61_2!t_8}?qcUDG@T%Hl^O^;m^~J$HJ&|BsVg#T}rs z5r+d{+RU|T8bQ~co(q*9U>XP8Y-=*4iZ8BI=LBBkwmP;5ljm^j8aGqR7vuEa6Uc>* z`*J|MBWzY}$C*4X+g?x;kE1~N%fnBp*^XbHz!L7+Z-hcMkZBl0fDFyUXdn<EkeBtaqhmi=!YuSC;2tbP_p%0p|e^pQKtfQ_y zE?3D%>V42|>jId5{67tX1XzuuR>xc&rko_uiO$nuJ^r=W;{ zAxRPzs7e`(V~NE72B?e=nKhY`u#bAy%n=&xcnXzvPk0Vht-u2I*e2t@H~3-_lxgyV zuOx`aKkH?cd1{)_FQMTMvQUM|S9azrEvOUFgwlFfjVF5nH5iQp~$OQfXwI;%t^RT~4gqeYzvoKe`o z2W)A$u)qvuV-qoih$jBUg{I+c*x3#@;&a4RzZJ>gHN8GE3ylQr`Cz(i&)4KMmGpof z*{s!U?Iw-&$fb|#C#JW5O68yqUT6YL2fO%$=S%@anTF>S>9}GYD%BxcE8{0jx6q89 zqy~W+ZI$r@kS5Id3C|fNkW?MGMTf@fP=6gt6A)8m=+Iyt8mh<3(s9{3w03gG(&C{FWHEEwzaD>T+8s@td*SrwG9EQ^402g^ri`AC)zF3`|DdQz(4++OmL z!iRZXotx@~zR)BQHAAEj)k+8fUiF#9XE=8h){@BhPQ95=0K}mg=GWa1B{s}T#NpyY zT|TcA&$D)j=Yv}c-9=wA;HyIS@n(EKFLV!feZhY_3*A$``oTSOVeX>yc*};sH5%|+ zu;8yx@@BeFqLL4Bh8wL~Br;Ry)G@fhKphI@kt8ZmkgJl5sLyd}DbLMH<02DF#~7Hb18Zx{o!U2^17CJFlmHIbS6%3*IU>P7f2MKgJ{cj+1)^QA!m zJm%vC_Q;4wY2^O)#2@DH*}rjd6xQuQab~CTwWSG_jjdQr;9T2SAMhsjXSk)qS#(Xd za`e!b9(VqB+Rk4D5_pm>=G5E8Z`#kFFG!30>LYuQA1-Kv7hJ}_{Vd-MWD80gkmwU6 z!fmzN&-$H6F#fDPV6?P7O!2R4P59n@=Q=r8|m0-o*=$@bPel@jcu;QEOb^*#)t69gnIx0z0mfQ=$>*GRT4uA5DS4u_HPGr&T z;)=@X4V*26eQ9w+1-DCteQCUg()QR0)|zH+%v5KR#w1C@{r^T|TuZNeG`*niDkSM9 z;1`zhGQXC6Q{~(y!}>lX%xz!9bu8^23R8z-%`e{#OSCn=I0J6(F3y09@8Y9ND}IR$ zi^yis#2Ijd48BzcuV*mNXCg}wY&!#{6QKitKzj}*{(BSkv)ef(i)7lZEhzY|1h`!b?HJ?NfhZ@k~{px2Vs2@vLEF5mOlf z?QBs)!OH9(b$#6@ljINRuPWC=G5aajR&efO7^iHI8m{xY$sg_FK2b(zcxwj?95P^R z`j8B-GI|0$R87ePGxuhs+GJ{~QeNST7l0-iW#z1u_rk!v%GvB>@dJA+AySWqp(}C7{dPF6UTR=p_7qp> zN~6>+kHeFi*IJA!gn4TQq-6{qn?CR=FDep7K}?Ff1&{p$J0nGtFECs)@20d6)ViPOk3_ z1?nt~LqlyEd{Y69AAl1yP^n}y)r-&wCLCL#xa9Y~f zL1}3z;D)<{VITMUAbK_4WeC7L09QM6{2R{Jk8Q^LIT&{si<(mL? z&KKb=MCV-mkW6t4QSS=PF!!oQ5E&4$4Ryn=x2$-ULM0w*~(#oUaEWk=!k% z)_F5iDV50p!R}%F;s;=x0j3~O#rD)dr7{Vi&UtK2b)}M9SUTsi)zp{K?aK!Uu7D9W+#guGSZ!h5;fUyI> zN0mUN555Xx(pA3!q7sNTv*zPJ8qc$$1ZA`F3+)|+?u*BG)P`4iqLC@XWm_1NVd1hS z6%3ax(xLZts2-3QddpS=64PAZL(z#tVhD})Y51;p@cm)p$MJS?2mQN`Denp`(7=bH zR3T9iEuQ$H$EyL&aM@x#w>JT?MR-FQDWh*K5QTkrFOXiPY!@DD$__BDUc_en;;4jz zrJ{qNG#O&P5MX~543{P85V!yN377Q(Bn!r_B@5=9C}zuvLcQ3bl=Vbh)TSs{r6`Mb z0YtAZ+!RsDdLUl7tTX=0+!6qZg4GO3A2fE*;6W)UQ5KME%5Gq!!f;tWo?|n@WnMf{ z(HVLnhXT7 z7Y9P(Zb0z-MW1mY#5*GYN3 zvlnc@C6vBrAN^=3UNN7%?tWfL`R%9q2+No|<4ayiSvBePT3ksPJLJteTuC{Ses&h` zTdUb|o{i+1vQtgn)?*Kcs|OcfY{iun?~X4(w5Z=l5j=|TbKM1MrT6@O3{BmRzdi{U zLVSpQ=G`L@e>R|nMJv=RDQAA~0rVtrYae~84jWN`t{r$#yK${@lEQ+oxX&o~97qy( zuKx{s5kQg?PWcD>E(fk2(4k$Q16mDe$oqpqnQNDu^IlZ%T%UW>9qN^o^Y6$;yiExG z=Fd;7S5jWM>Lpy1;c8{U_#sH!3}{2;C)O(||Dwu!3x~?3$<xN~iBTaY8(7uYGma{i5hY2TINy&`g-7LR9P$0I8d4N_hNo<&qHcg0AJ zcO089Q$!PoV2FTWs|hJ!b|DEb+wuioztW3$9`2M}F%voCAoBi6+6@>EEZplrf#A|O7p6?o%~c#dmnb zx*x+^#<(HV7h5~>DvY>H;I9!^VX_1FWEA%Z1UTGZb{%fQWcS-{xi_bfXw zd~k7Zc^Brg>$1}8v->r;y^S8Fu{DW_8J?pwcp7%}@!)1;U}`Edxi}r0*#4;7Q%BJ* z<-eH^26N$S>9`VpWS6)G(0XoQYG1@X2XWUT?#yfT2;afIQn)n}-jvd#h;g}t)`f@) zQ$B*6p#I3#)~@OGK(%%dkMy-UaSiSz_1wQN!cCDwFw|~{r<)FU2+-@%%d*God*S zk6!|l>pg+|)S5F41aC}Y;7D5_Q_@qE8`oYohOV=PW}i{g7${hu z-EqICvyCvZ!u*E{igT%qr* z1o9hG)hklc@N@1x7+TZ=cD^P9j(JZDb!qi_rD^4l%7NE&Ua^{%iaS<^Pw$S^ciJ5* z-I7l1eV#z3G zs!dvtw6d4ta|atNU1#mw@Jnk1Z}q5=4Zo~Lw2WfPR!3TkY-FTIFpD>) zpms*LgE2kG9RH~pg7vS<3hDS$MMm9af%q?p?>kZaq8QByQay_JdXSkP9cdDgf1P{Q z&VRG|^iYw+Vl5gf8#!%QwQyXPla?G8G4|xN;lM`TY~w}8@_PL?qn|tELmJ&98NO0Th{ZX>re03h*8jpU9??w} z&#{Rs#Irx{UDs#MOh($JGm~5R=0qZW5jb@OiM*v|Fm)h_6sbf~)MqoMGvY^?iS-o3 zdbWIp$|AAflOsVa-9qeo{31u6q7L~SEq;$pJSu*xob?jKdbMz^Nn-nu{KA^(`K0DW?5V>^ZKO)=(F{_Xpi&vEKF5mZ z*hH6^+WBOSbaET=0$r(vHy&MsS2%?h9sp$<&vRSK3ZyoudectYJ5+rdTDqfjTX@kO z4!4EP9P_1m=+W!ZuYx7QZQ%~Wh6>y-bX%B!6_r)P8tR&2bs}#hhuR}T@s!%35ItKt z^x80bFj0bv(XQc#+7ZjnY3>c7Bx2f^JiELe5okOW z$<5*8jnn*YV!$?)8EowYTP>5IG~+lm{wz=VF;6)r9Z(j~5IF}skFtSRhdtO)_5szR-q8)$W-R$*7@=&juMGhHb5gkoD^EC14? zY%B4e&rZOt*^V?h6KtTd>BdrENN61QgIP!R1=5 z>wO#clVQM4z-182$g+vp*{|EMyNK;F(T0r>I}*~fP;g}eI|Loif^A1^G}nerAU1fn z4clJC#lp)%A&J;WX4$Zvi0$;44cnR6WYnjHLRVt@pJ&4+6Pq@|hV4%5tg$w14`L_X zX~UjP?A>VOmfU(0J0WPpo=fc2_EPjB7Dy|F-o*NTXTzot`}|!t?1jXZ-C@I~68r4! zHtZ!LZk`R>m)I=3%q}H%uDve$6Z>4gjlvbgy3Vy>(}?wXZP)<UN7?I~i@Yi!smVnbOr?9+mRU1sx$UD4SV_gP}g>~fe-?0l?XEVcPO zvA$v(_630*W5X^W_ExOzEEKAVz0F?pFA+P&j$J6Q_Wt&2ObUyLz12?Pbz-MsYOwI| zCb55AV8gye?5p-tEG9N&m(IJyLXcLv?-ToYg$?^5vBmcN-5O&5@PsXHEwR6Q#)e%^ z?EQ5%Y>3z?_OjIzTV!u%D~auIm(FTp@11L-yM|bweNE6v>_zsua2>H}SvCsmiG9RA zLvA28&OSRe5qn;;jlw6yUTvTKHxY}XS*5<2*je_rzJ=J^?KAop#OB#$wv||~edO9k z>`41q(oAgrUK@H$E*=Ld6#FoX|;zo$|CD^dv5PPn@Hun-6vddu~u>t!m z-9~J#eMbMD*m(PVe1KS&edIbw?9-_>&JGg`q_r-7B6iM=HtaD$*S@kjPVC6nY;j#& z73Y0y!?q*VWtU_Eu|j3We7(Irv5{OGg(PBg?ek_QVjuC?;&vwXYWob?mDr2yag&Li zmTjZZo!I`3Hf#@K9sTWWVjuI_;`SuA$c{ai*m66z7qO0cvp2Dhc{7Dr$GmwVv5t8& zl~~8Tc?q$Od9yFEj(PJ^Vjc5le_|c;<`u*`=FK!>r`vnL0AhXicaaQY9rNZOU~MO9 zw9#WjUF}2-b)tqjQCUvZa3?C;i5lrdd7Y^1oTz*!>INrjloNHc6LpIdHO7e=>qOn* zMBV8`jd!9ZI8paFQInjgLMQ58C+dDDYKjx}pc7T(L``*~ik+xOov2bL>TxG(niDm{ ziSjv7Wlq#=C#u4Us&t~BaH5`cqMmZ1s+_2&ov3+E)U!_1d?)I8C+Y}WQExg?Z#hwmov3%6sP~RLFIxR$A{E=Rbw7ocSh)*>Lv%bVZ|GGG_%dIcnrC*B|J-m-*y02t8z0mfK z>vd{y^+2RNI-qC9;v`UpUPo*DSv!y8^*Y43%%sV*?`z)c#`&b?ze6Zigy&QzrSOU! zHsw2n;_#G41vOQO9>&p!*};a~)OM+v32PXJ2awFT{@AQ7zquWW#$)62v~_qw*`Qbp z!S*c9$%_Oq`ic@$gwFgZ7`n5gkk>$0yZ-Xb>6zD~_TMb;*6wNV&O?1c~7u-O7@ zkGr1OPu#Y+8;I@I!-m~N?EE7(>}FyW`O=+ORu`U1G-yT^`Xg%<`SY8cMXUwtEx1$X*w*tZ=Mo-;MD=qHwH;@^W z8}OgXSd_5ntmr1fV9F&Dp_}jkUK&jCF`d)`QsWpq{bSL#LB*NKRV@9OO#-S&9EI5#J&s~% z0@Ke#Pb@I>_0VaHYG<^MT}a|E93nSo%LCI>)YJboTXncqD+Xh-u<~QKXLAzcF}l77 zc%>6y+Vn8DV12p~vw|_`GoHCGNiE!D8~`ex!bdcY26+sIR=!P6Z2WcT)543!ZOiWX zgL}!RI9-F^Xtja)>DyR!G-^9(%uzPvC}AkF(vpDhA8fQFIApavyyUhbT zkekF|w+;DOh-ckqBzW8uI$P~pVrmkZ+`0)3de%HCdeKn~{QWZ8tXZQxBxw5v{hfd0SJhFvER;Uc<2K_0-L=?Rr%u;bJuH zdQEBXurFg2gyQ%?J(Hdi6&b@A|2>yLhKAi($0uMO$GUkZ8LL zs6_y)3DB+=?Sak4leWTQ+x5~Lpg2ROoCG{2eF{2k{I*~r>vSCnD#Om&7!EF=vGi9I{dY;<8nn_a6!^;Fci3k*9y*z zyf6@24)S8K8jGfKgtyl4)X$-&&xHIGLanQiws82bn*XZ!&xe1fvWHW{8)4y`_r=Ac zoW=6joATESqz!JVC{vY!t_@hXc>`3X3}#u=u?7{!6u83vwroGAJ4ZUMIP2NbZm<3JVw6~eO0e8HXX#@!729u$HV1OoXq94utv!{;r zOqKbr5aGUMrQX%oM%i%U$d|B=!biivuFmKb-0jE8(Y3TY z{&{LxB+pVTFcB$oE;7^N3jfLU;&~85a}JyY2Qx21THHZ_x9rHrQ;$cLRi1v^XPoPu zxXOE9Jyo#t;#SL1I`U4@@o3yCkJ1}n0luthgBaa6Hs~X^Ho*MgRSpNv1mSgkP&#Ez zN1A$>Ca1yl>Vg-b;Q8w}b##SX9x>EK`V7GRmc$Rv>g37-|0vvB05Jweh9bj2 zVl{tB4N5T-j8Pq<(0(5xciWxliezOZx=`O&hjSvVZ11d9&4SeQ2#hI39vlR*fE!$O zfGv$>`&f>g&*6~38=M}ARHw9awRTk9r=`Q(J2I2XKe+xPV$47c@^gQ>yr&`z{|Q4N zUfkn2LpoloVaA4?4rysWPx-e;+3bNIH05U~ifxKqjY!I>@-IsYmwgJ*KYdeN@o)2j zf0pcKCa|o*ffc=3Lq{T+7^1u=*8oodS7XEQ%K@E~0wogJx-SmuDr?fe#G796c?=C^ zHumV`iu|TqGzu?&t*|ZD0TOV<^wL)zExm9^rWf&9?P0arL1N&iaAOx29@jDmyopj8 z1sXjHR?PC0&%DYHXt&`UatvNGZvq)irOl}KF<@6|NUw*%z3#Z^)GQ2H{gkilkKAw^ zF0NUJ(sCW^5k!KSJ&+g)XCa|zE_8F_&S@|Vd&s=n)V#hvQ{>f#B;UB1R}B*&J2=&z z4xQRPlx^8y=Nvmb`d)>d+OG_1y-q}Jt%Dj?0t0}JOrZ>fp zx|qdv7T9aX-4EFy(T5^m?RGRs?aeS2qOp$W#8KHb|~PIQVRG3t2Ql7N4JCmc_3i zizfDuZ?csgIm+Q2)X&>`{pc4Q*t@aIJ zp~~9zf9k4t{b(n1$;@4UZXxYj~Im&7=WdA1*+Rq%aHK{F-v?;ZhEws<2 z)Nudrqa62#SOdT=`55*=cb zC_EL3x-LR=g#3hX3o1LkytLYakvHegF=w6(gTfFC1&xP| zM^7P#@6XWXaHvB}IV`r5u*qSuLE!@n1&xQfb^>-eJZMmO#6m%rLy?t)(XCZpv` zQsRW(&q7I^Ksld}l(dZb{Djmtchbj*FWZ}CW1@EMX;Z5-s0B|%ZQoC}0cZ3mo3w{Z zD(rl@7Al&wPuc2R28Bcm1zp-b>zJd<)ZO$pDc#aZ0$8Z&7d&LLP6)j zYbBvC9$=kM<)&GkqtYZTt}_Q(Xm#VNgo`F>nn%vj2pX#gNi_Dd`->z|MpE6LU@oI= z^}6eb+QAI6&cP-qiLuh2wh+^cTc?rHI=WqA*BK;kj7?&JorJB{k_-x6EEKd_n`tLt z=V46;z1}~HH_JpX#&|0U$K*X*QsC6DSSZM;-y@TsXl*spNPT^b)K^+kJ9VvdVm1(xN10T4=#-)IRx-pR(%rwyuqu~4;*qh2RjM-Lt;X>l06-a<>0SLPv= zw-Z%+flxDV;VCK7&HJg~Dm`FwCGZ!a_mg;jx3K zki#+P%&Mh`vry1^7-J`4lLNJGRSI=K$CAS-c_=j~Ot(-tZ5{?06t1yQ(B$wNdm-%o z=Kw5;siin_%v=hchqLV@Y;t(lps>V3LF3`jkEf`MB7;JSg@Vq*=2MZl+#oR^Hi-}H zBy7cKjbdj~HtV*dWwwTb^>-Db{*Hn(DIX63_1@N+DX`Wc*&sfnuUVKL;NWS+-(pjj7ebEfm1Z7J_dzU z3kAIpYfnXD>(9Czb{vT*hedW0HaR?RQ23jLf+h#WPQYFlV+{)9EEM!&JZL9j4dc<{BiPjZNY&b`rK?+-Oj^#X>j!5#9OnMzL(*&4_~{4HqHQ^xXp=lk(&frD$3oY% zGF_)r)Lg%4r&{(+^6!5Vf*`d+2hCiX-tlW4)Qr-fP{Pki!j$j=3t^{(=j-%;nS=)! zSzKeuq9-NnUV;<*C7ba5caD3>n#iNEa&f-o>^Pz~`Q1O71)_JmI7!G@8Qa?H-wX;1 zEflo&y7_y{2zKIknp-6$R?Zz3O6IqQq+MF;(dwGDW8K+?l8efuwnzKZVNuK`kd7WO z7gOEY&NlCC|NASIVXO9s=x8FN0%b#i63$cBJGap18W}wsD7=PNr3l*0wsq^OLY zk+YVrkyN=1&9YF{YiZ9$i;zv{VJ1)&z49r}uazU%!WM6n!O`+?(*IN3W0&C+V8bD` zk8Fs1`h!_kqL09#gYrcr4KC93gIzH~=>1n4d$c#znHo9l|69muwaR0z&USi^w}HWu z3`LM>A)__3AGKGC6TJ-_Jg7JIqu-m$r3-PBorJBazi&`jYN4R<@Ly|FcUI(7gTiAL z3OWy^RuYaql{86#ufqc^6y%=DT$x^$@`C|qEnp!0BporH~tFTU61uzg=FIb3Nc zVCP}JLE%LU1)Ybkb`mxo#uyZSYoVaY;XC{AWapuWLE#(=1)YZtb`mxoKH0C!;j?dJ z$>D7~0Xq*>28BOcDCj&qbt)1C28o+vlX$>NLf__!p-|(J#JJCuXd!0Wk>Y{Da;qu($iPLK(6-3DMVd8-iR}Luel5xVC1e{$x!jD8XXi9xijDUjLEak6ntz zdpAiQCZ`WZ&T`Nf`kUYAZ-(j{l#|JiTJ=`Zw8vavoyo7QHR2>uX^;rUCb9ZdBytQA z*Tp9B@~KF)Ge~rZO`^<7LVZPYo{-giBSgZN(-phTA~EeljFq$;=WRG4Q=6&wQgpvT z?V(uIsJYPp1k{|o^)jek5Q`e$uw182Z9|J*(oerWK}k2swXLb7Vz`1Lp>w#JA?dOA z_$~B|;fh`IWo@}^>XIkg#<|R3G0j5Kw2kwnokhpX(AN>Ym4CC#Tu^P~s?}K1hCchq z^|C=>k%fZZPoA@ru#KK~8x#sH6f_aJ!v^jfem4(dDr7t5|Zl z+D^dE!(R;w)fNgm59e4(2u)*6sy23RFo=z|5Yt3*%J-tq28C`G3OYNs_ad>@fCGeC zdnZt1U#P?8DF>htAI{M>IG5}eQo>edWI1mA8V9CnxZ>f1M_vrc!}dYNzI*}(WDgcf zf%35e>foQg7=GiaEe|bu=*`Yr&1@_?tp4y7{^%8tp6Abe{oy1RJT`QB;V6dpVB*_+ zxU-?ejUP*JAHzGbbB#ByA-cn#Ia7_g_oqZxOAulH%qc4B-6JA(E<#%C{h7C_=;&dA zz73(R|L|uHQ_=sB=nx*QPx~`}t)lx&^kh6*N>LPlW*0T&--iU9HauF!i;y3RB-;!n0PirMv9Ox)sVMjNG%>M z{Y6NF8uB|C@(4q^i;&mUkQ5nmB|{Fw@0>p~sD|v^C-T{cN6R)5@`xJpjtp7CkkumO zb~U6}hCI%Y*G0&+YRDiNGK?WrBIIHbHV}Pw{BEQ-th)K+52H z88U?-!$rtvYDkg{>A{e`B4mXcvPrmSN&GJ!EnP*(%WBA9WXOvQIe_~a{!B#;881U7 zG2{yo@{k(RUxo}|NWBQTRSntQD!Be0kCskAiYrxHL zns;J!T+456`&qg`!bQ&Z<60iZPdF1-Kf3(I6rGHsc$NLIDW4y>_{h8M;VCvXHD8&$ z#Tz_pJ_c~yMf3(=Y(m{i3mEkjW!}#Tus6^S*L-oI1K0V8i-+8Kd#v=rP!A0i# zTlhHZj0=y!W$`vy=oY`0!r07&;0O(w| zV9c$K`1W};QX`|PLf(8h zLHN&7U+54aKQQp4#cVBu@|BW^*KAzAIaC5>mL}mJ?!kgF*>X$Va7w-t{z|)dPpKih z`PY<0N;)D3`Qj7Vh)k?E?XijEMP=f0>Rrf7y-OYW3}!G;0rMsa*U&Y|KVp#?PGFbe zZGg?h_7-3S-~seS4u0-C?2|UF*a9;TkRQ z{zplOgzKA;YBULS1Uj#SSH!(H&4(jGFYedlk^kAtO?advKmHaTsn1=STnDd+kK9UR$BV_E68Hn-#&gF9tM4g-S*nqNI4tO ze>yHwy(0Gewu|Z&@#AY|!2e(sLMtbJt9eCKIT=h&UPG(P3oH-?_oGj__TE%;ZP+jN z7RZSo5`m}0w*l1yihRBr&}u;KF8fVg*xv|f&DMd#!v6Ju`hAof3j3P?9lg35@iqba zv|#6ou%9nJAFp3OH0+1{9oOFaKOk*0peGg|(fkj_ugXZU)+L z&fa69=A8YC-&virryZ0N2nK#GK9mETKe8!zxLKs1^6-eE@>iDpH5d#4nIRsma{TDe z2mOx^g!Ar!@IO9cg6>V7ZpSU&)M*A>dQ+z-=3nkjU8Wb-8koMOD}=+o;8pzWcHSE4 zLp%dc-Thq1!OF&JJkpS94W8}r4f~JbzmKK!Q?}KKgy=_tAH&>^?#Gr3FcIYA_{9(X z*Gh=sRt*%s$Vm-Gr>E3+-+i}=m1O)g-eNvpXWr6y9A4s&A z7x3T*;5-9dZGg))Q1QPB5LPfa#sn*+NB2GrExm)Ylf)0W@2Cp;!6gK07(WW>9~7! z+yp@Ug#C0-E>rXcgoXs%Eovwjs064nFkfY02Z}7#qf!D_n;B@-$*l(@8K~EBt92aR zjLT3u66Xi@aR8ya0@B=ygMnQ@Y78t^8JJ*YVCi=z38Z4UQp*EKX3rRcbxIz)%x zGDS1;!oURvIs?ZK7{~&sF)$VpSOwcrWRnC2n;G!w5v&2I1Er@fNhf!_%DiVlE5G{1MJ7_)+i4lqz?Pj2#HA{ zgAm$T*xw%z2lcR@Mz)fLEDj*{83NY}IF*500BQ_msa0^Nm4Oewr36%uqJ{ZJ0TQjwmkmfv`aT$S za*280mj#HQuy3diB>{pTMBp+2kqx-JRztZs+69|^K-TrezerLma#e(fW$)7AxhaG1 zxvv<)@^;3ryZ~YwT+op|m_cLVnOdBGgM9#`S* zY``5{;q>$>_}A|r|5 z{sgc1^HGKeZx^rl;9vKZJy)Y1m_DBcXaNQ7{ocQ-Fa2LnAQ$&(@#MI>648+RBIK?z zvg>OpMqsxZV6y>k0mu&`Y%;J-2DVKFHRs?NS*Xp!JJ9a9tinfl3vV_d+O9>6Hi2Lb z@(TpF43J5)`tq3<{ICsResFR%wt?y)hKuf^7wsJUELp@#d}A&02u!cfAF`*o3r!8- zoUlW5RNq#Z!NM~I6jJa`uBM)>r`{8BUw-nG-telT@3Bi4%zPWE@`IQ6ozMZi&FTeOa1L-Hm01ZN2#eH9tElMl?PbJ z$XE8_*iu5a)q90(N8haq_3Sv&7u1ScuCgLziy#t>G}_pSAtQ60q+kz)=`OJs-xa*OPWxw z>w~i|S&XN5$l;jHm+`9Ac)nA_D^lZ)I!U}d98iMOyjjOwkiWaUm_Gu`dpDsCO&nz z_s+jb?4!}L;Fp3gltu7$vNDk`HQvc&M0%7F>77hQs8h;_MbKr0dKg9-p}vNlOh$}H z88P0;WR&L*SLMx$>N1jBq~kqzjcd7UT{~?*bQ^ZMja^Xgd*kh0-34v>O3D#J8$CM7 zIRF(h|Af?zE{xT|_UhBK({e zSfQSe&~&N~ls*0x+#z-qdjN?Er1&>^f$~b=vICD~_-htVLukoaolAe9?2*l_j|E2b zMcOM*oOb3dYC5EOWC!}ba;(*Z=z$UaWo}5`&ynNI-b{sY0vRHq;Np?bTayqGNOp}J zSBT49;R-ch`A*t;6=-f6(5<5h7bsZmZx}>}^s;hIK_35_WMO)hO94wFPbiAEffY?- zATKLBZaWG z6pa+k$GVr~Y`%Cq_$gF!Hs`^Sjl1sCjw@;NS&Jsz*HQqUz@uLOnsWr3eUVgcgJ>;H zXvW?^A4Gt|`!U|Ui3MhV_tDX%OfJ&#ot;16C^Wg8mQe+^2^q=w9cd8XZz6pc#|*A+<31YF5kDdN>AAaVf~- z56NDZ7Z~q#zdb&C<56tBs$CJrg(W9dk`oQz(3%{Y3+l=j(n7V?&B=z^%|$-6<#>)a zP$$S?#nlB%91I`xk#tw6EKl#;<)0wf6Ua^STr)e>2iRTyn#6P_X12im8UOPpW~cVd3p|-BsyLY7 z3uHH>dXx^HKz3?hkCNNdgD^_JeC>=Lp1{1+d4xZik>pWsgh}Sxde8*!lc}s}U{Yuy zcXn!D`~r0Q>{RZ(0_v8VN>{Q|=m(VtEamkxu8lT&6!}Z_YFeBdts0DG*P5f17Ujze z42o7!K+Aqa$(1eo8Dq>iJVk9qC1in&$G6-ldB^=`xKz(=D6e0}R`1T);!zgRX}Ge*5_u{fqilhD^h@hePsvY7 z&+5r%oxdjmR*rAq_=9_F6FjYNqyzPpN0Jd`8U-R@ulk{=->Q6E{ZwKla`R zJgVY){NKDmqTr1R8m&rHte|L#f+bZn3t70U2}A|O7Ze2});GjmrOHd<63O+tN^5PY ztu6ibjapx*FT5MFpxJ<^0W6|e4QlbmRRpmC1lix`%-p-X3BmgPet-Yx|2+TapXbTm zxp!vHoH=vm%$YN1W+KgHRxGmhB5PIb({7Ouvy!Wf=hj=l6lVAOw9WoKYoX*qW)0>! zKDkx3O;$VDe8RhXh?%U-zOtSL(2n;{gGWTV63U7`@ma|$+3e)Cu)a-PxeA&Qb$C8E zJvY*hKuV8mD!(SDQTJbN><;kBxSk1*jJi2)R3TBzF6E~~##`K2IeLFtR#B(eONf=L z1VR__n-!ia2*^pn%V@=pa87pNh?y$`0lykk6L+UF=5@~K$Oph4lrfu##E5RO~Kp>5hy8qayv)u%$?w4mKKvTPGW$`F13v=GXvfvT60}#?wLM(A9ANR(8ZbyJb zmX`^H(BX>4#fQQJ7ns$mfxFA%+hQ zIS;hz+@CdQWy1w&EUx^_S{wPWdvaB*Ew}!)nvb{~f^(4@jm2MPu?1vzd$bq&##qOU zY~_BI-gB9`*gYOPu-aI(@sGg6Q|&5I7E3o7!#8DZ z5W%qu!4qiRWhm)!q>>&Qoox+0NSRrgZOA)WXo~FR!g3MCTGkkaJ=bCH)F^4!gE&qhG&kS$w18s&XfGL4Rfi2c&>!64AgOo^`7u(EJAXYy!?6Dd}O14pXQH`P$MMY z(daR{$PxBp-}VwpCk7#zj9HP-z|N&i$30Zq6KB{CkrMj46Y=L#)~(4YQY!f_yRF=z zL@A?Ul~X!mG`v4KcM0SWX3}E_C!%{kbfjY207Fl(%2>3p-$!cLalOgCaf99Mj5(dg zjo(t~mD&6_L*7<`E+v{gOqGI}oV%H#MJlF0KV(ZeEp5i4oroF1%pJ*O=>nRIE?c)I ze3AEAXzJbM#Q6f=wJ!|=DZOL^ik}9d=&Z01I%i5n=gu#(`QVO(-hfNhIW10<=!F1c zR%0w~7gbuC%cWCV-G;W3QtYZ7l4;tf)432Ebvl3^5~8cXV_s7Ve3zwCWcTsO2@~7~ zaWzKO)ZPtP9%0T%6DISDE00*n_U&Q~km7`{>QxcTo#<^p&BsJfUw<{!$ABF!BVB{6 zY;+s~we#U$|Di`WiO(FDttK6B5ubUQ?sAzbHS1Kw@?tM1R;eJW?oI*Ar}hgcNEW0~A9;(& zn-!56i}qgN)#GAgc27x~;$#@BQN{KGX?8Zmj78jIBzPNjU-G5HjYjJuYqG>DAevRO zB@LvZHy@UXx^vJ~N5}9{I!Yr?Dr>*62T`W#Q^hQ^t%lFYxV|o|Z@slgcuVSdEY?NF z?d_)}_X`mN5b^LxbD=b*M@rS6^n5teRWF4E8DtC>ru{m~t-Jdvfu=nH(-lnoD>e3c zN^5A4$Moz!(U%CxY+1tkPC2d2A_Sx~ZMmagtLd+HlXZKo^k`{OonEl>=0na{7%U|* z(5f)AFgQ8SuF1v^v}X01Ebm5!3`?BY`u6ErK_llbDs3Fq!B$fjZ)T?^Ju-11Nn!6( zuqTSr@TD=nMU((FOuF$Z|dVDx!y>P`Jsj zBg<9Il5Qs()R+qj-Saz=+?@`lNu{h%G9QFe9p{6(zd8BTSW_8&RbMZYX??unayQ)> zqys(S_l$UZj_L+;!8g?&D2tk$JE&w%sTf8g!fbYFXLZ)+&$e!t^ygt=viS8{e7Ky%3j3E zRVz1bEOeH3%Td14;R#KFH+>HU7S3)A=hw`5!xug_aT*(&h9W3^;lqtZfj3kzR4CcN zz}fp|E*6MHKdRbtfoFogH7+LT!MDr9DBn@CrKC~PK1bS$^Jlb%d#al@hS0(oyH`86 zyzcthmNb^ELD*QUO4b^SdUPvU&vY2QzBv4;v4|~Fs-LJ@nD&Y9&z4n|?_ogQ@z98q z>I3gr+apeZMDN*LTol-B+9L{C1w$gCpNz^ktx7E6fySo52VfR%bav(C_{{Ui?+ACN zM-E|H>U^}$#ljwei6=LdZ;$F1*_#_aES@d%66t<&FV4v*=Ajep5d)atpIEXcvNwCy z$I-jQDs1h%d#80yVpBX@`g-CG`m8*gJo@WB`n8|Qy1Qmm7K@Hm)qvjvEp|jE;8xud zyzIT{GaXl5$7Bz8Z(|bX&%BL^jv_O+JGxUHxtvT1v>lYoTZ15=K8Q-e2m1xF9K^O~ ztB(WWDLztEp8p+LcXns$DL7SC0%Vd0!~tA~4}0_nw@~rJ@HZ4Pox9kce(oN%4(m9t z<@zp;m!G=_AiiM)1T|mvuz2pdD4&t0qG0U--zV_aYa(w{RZV>X6|PL+Dt}nJE21yu zqK9!iQX|CqU)=BXM*$cQEYOdI%5x#`w74?(Bm48h$HoK7|05n)q8uFpFV<7XL=};_ z61haV#nWRBewQI|+HMbsTq@rZYYl>g8bn@=sC{ups+JslibRatTlT{*-)CE%u zvz+h4mGr$|*Q6F|<$@`Potx4(GnQ(dH=6YdoBinij~O7?p~PHZ<^ZL>mF}E*syXou zGup#4V_WkgD~wiF{c^$>AyybW2##;Nl-a!}x7fw7(SFniQ+r@8^uP=jFt@ImA|N1I zb{OSHo7PeDqhs3}3aOvgmKhS-BduB77=>iyjvyC$N5IE>qN7r>qc z(K`%*%a&N<+h^Mul`|d@Vk!XTrF)G>p5RTH#V$-Mci^hg2}hngN`w0SzQtC~~p_S&sG zp{r_{DPHDgg z)2aijrU6qfw>4*XS*XNiM5Nf-8#U$rqPJ7@V{}pSVC*)o;6vh~(D&y*l^I3)4zrIVZVFAoM)1RNR^JP5Tm*I5XcBdXg8F^EefWhBuPP z5&14OwK6fj?RfxbUX5Jn3!i7&+}K09)OO8Il9ig594uX_VxK0(Gnc%q+UEq`mYv63 z-FZYIIMk=32k7Y8HxfNWqVFVH@eDi|?Rn)UYEwEYU-Zp5$nJ4%I?=qBn0mNU+@r>x zn8sWaqMbJ&JVQDNk;?a^dhgb;&JAu(Ptucbyp&9tph5ZQ<8ik%=(qIXvZr?_`#xRv z-#eB4`>x6!=H^tKm@4DHTmJsW%({Qg8+G_j<*#yc{_o14?n24n#IQ!OnemHR3kU8ke}Dbd_>>~orl78)xlRr1!MTKv)T4r=ks z+?=|xt5h*P=a4Q_O5Lm8J4vY`H)p4wdajgy2uamN`5RVbN{SZVkQCpk{CRH9|6Tc) zbtu2;zfpeC|G0eFGB2$qCTJ_X-x|x($*f|TYjY4cYDjoLePK_sYM=;%@vB$n(+!;1 za!6zM{LS4=cOo&&B1oOVGvzJX`zAD7*>3wBY1Dpvfu7pAPBHzk7~!^4VV`vyIV$bj zF>u}9611=FTU=?+EUqa1D0FmX>F&@)mDcpW#X;-3;N2nAE3Xa$dRhsAwtXK!caLor^Kus{JIREyR@UhUaU&drm$TaYe`;*Sn zWiG9}*65mE7fk*C>E-(a^s<(^qssWU9t5>SH}M-eumr~RY~pR%Zd{6*_yfyQUxj^Y z#rYHS?>gXwCOAarS#HSMUl4>1h}k%Nav6CQ<^-dER6LE1{*O;lkMT7||C{C-{coRd z^bapI`m?RUipudN6;@pt4@{pQ-I+3dn$fyq`Dg`N%_xU>V)={*-Wo^|++bPEqaqq; zab7&0YKyV+Fiad$zSui=E!It;mJ<#HQA$F+#H)1r`-P6!x6I_~;Q1#_n9 zjg=A(?j_k+oROyx3P(0@R5b&hvn0D+|L)-ImY@Wg~Qav@mv~9zvWq zh%aeO45+Z~H{-*VLrH~o_q6!%Nr1vMh^P?aDJK(W3ZHmMxy%V3wX%BWn{|q^s?m^@ zkz`hQ1WIi#2$_*-#qOb8i9zoA`;iO}&c<%OC1RC2)t{gEUTrc9e8Up)rjE!~5lrHB zdx^p(40yL}B&9U5W(A`&i=7LEbECs2qYRp6^wL7pz6*hK_Y~8*oNt#B#>VO|GVS|K zMzmt5NTtuag;Er1;Zsa|I8jUHA%7vfns`HLgqF;#+BRJDO;SyS>Au(cVL~E_DeHy;9le zB(SEbQs_A-GNt=uDt&48!{GhGDXC0MyJYXs4vyu?fh|(>|DDR z=SRjr?2a-#ox^5?c`AJWv=F`p!>3e~(p$#O3xA$CM(B4ZncOZrMe^X3~ba_7`ePie-_B}N-3bxRQ$riuWl(?Cw zeiD_PY^jXi3?)8so)BE@>mfwEu%dKdXpqVUCHxHn9A{=Zso`OEod>N~HFBSaj?vWN zwsENQULsfW;AAH7t^gj>4x@f9l`-w{Efw~e!RU-EwWjC1@`BVnp29pCy7Q8F?iWG; zsxk9&IJZ!UnhO+9d`q~}`k|ci5IUza8fLo(!!U3sZC2auHoquo%lno|@o)3O(EUNa z8NDVeSo(hWEz&kuSVP#sn8>M|xJ?eY5j`l+IUN#KSgkZ%rhByNNXoyp5(C^>{GS-K zFO(d;gVF2qofB2H&WBg>`55N#94+>~PtDRjQON_5Xe>N^;G73i$xF(9p^YG9hcBhA+dcEZy;#yS5b?GYVZ@n$z#?7swNN$|jjYlli_oR+U{hsnG_Aebfo03gNv8c1)10{R zA^)WeKfO&{p9j>JAH&gDYw@=kXX4}Xap}7=N|ht(j{X}-YKlN=a(+!AiBqY@_Lo#O zl04Mf5~J()sl<{!R3MStf1^7r>f%-AP1f4+DfeO~$Kz5+PS7EH zxBN+P^oDJYUU0BjsW-MwClx(T6-odb+TRCw|L4GCVDy_5! z72pAONwn8WFq*z8SJ>x!$eT@tB^zk!?9!c~lg#8Qn5ft+{d)Rmcz;!vzCHboU~+Y3 z>FVjvCRlS}6zf=iW~G;$sw(Zztn}qzo~rbT#$q$qdad@OBo@y0vYf2Y;jy;EaZXIe zjOX4FYV0q`pvLkSRg2a0@Td{meJE@ceNUz`B%v5O=P)@<9Hgg2@JuS_x5Yu&<+=fF96bPvh(C~N|5$=Yd^G`ApaR)+?+NP8)_OV%Yw`c@OZimpIaB2BV`U1nny(2dyhnh)0`2 zdlW-@7BeCqA2WD=^=*i-bJ_3q)w*br+al z5uKdRX5NMRGn<0i`4?nl`|{1jivLXvu}jKJcZ7QoSY|A4EN5?|5wypn7`}>p-V%N@ zLERVzsl!&*6cH3m9|O&3=`K~O;8O&VAnf5r-w3jc0X`CaVn276QRfG1lYSbpWW%_k>MRd8WE(-G; zcm^-xh@7_(Sw2~MP&i*s6^sx{Hd-n|l6^!nso=Y?2st;gMOBh#hmZG?O0wQZNU~_pEj$uMu9#B* zdVi%ym|G9RZAzI}-lJcxp^VgwmNq<^Y42{S*4>n%tk0&ohG#~i_2{!)BJY4bJA zI4~>NWx zR8}bz0#HOy2#9(rs;DVXNjgWeMe{Z{A^zAVST!VQ&lu+vA;WofE+tkfE3PrAj?(tM zr?j$>9>-O;No&DWWZ-j(Y`e=d`%RYABbs+Bg<*A>Al*fTs4@y!t0ViqGU|jVO@U9q zsrTp4DiBE?DH1si9BYY@Ctr@$is$Mh7owG)G}Mr9nGjfA)*wv17s)O_v%-fV3j?17 ztZs=xNQ_Hp5qj=4Q4$`~MXccA4U6L`U^xt%O!!GWG$2l2y>Ha%HVP_RQphBZCu*dQ z`kh31wg$ho+35`&rDvdgrpNg!E?2H(OW&} zZDXp#2I=0jG>AttK?JNl&J%!G4qqhwkz}7)my4uYuExA2YRn7yMLl@nuh_7qGnd!z z-Pl?&v9)ANWnFcdOuzEhzM={*$0AlWMRwnXyHyrcmx(5{+Zjv7PE&9-AZH+Um`1Gq znGBi;Vp$y!p%`2=PlTPQBqJIbT>*GW8;pvN(54;7y@j zm#}E><21T`Gtrfs6_(rBlZbvAW!RV0@m_^q#$&ffcHx`g>WQe7fowFa!c zPLf^p*hbEXv*z6M0lWUn;0ht;OxQH)SK2*q@vp6_Z=jVO6#WK#xC! zVn0)WY8C)UWLpk?yPgG!*pQB0m=UXrb4ls>tWtx={-&B}(Ni4=xWkDhx}YBVPu_95 z23WMxH4y6>{sxL2wx+m%$yJKMOkK?A&c$4PsA8UPRD^2$?-lb6@acBWUpv)i*QbZ5 z%_X{+=Kov_U{4~kB4fM%u|gVl6B#S( zJ`No#CXY#^VE-}V9``E>Fhkx22|XShZ4s+ zOQDRNKR;8Ao#N~P+H-Wa6+Bk*#i#7$ekJJwC2N>AUjm4V=-tKY)CZ@W+MCh)(KBW= zLyW;fjOgDQ$tdw(IDOTJiG`Kc&0Iotb0OBz2|;Tl)0UAF(CUQygVr43R354?M29|q z9OT|fHH}4i+h@~U?5sXgls4>6ji#OV1Qks5^FB1?ts#vZad98tt4-sM#%g0qV|leP zD{r!pqIR{M{U)UdxuZQV=VQ=%R6d#(CfO4&mQ>N9=S#5OK!&BqDo5@Eh)WkoReHx1qx%VBEN_qn z>p-J~7pd$ci?C;g&NHLa=CL+D#kBKHi_0`dPd2TqF#MLe5Co3TIZp(B^!|AmMlnT% z-w-hO0|s5P*|}O^^Wif6VTlt|ACk_=^QG~J4g+ncl5gTH*+Dl>mOFn ze-QxGDS%>2&2$Ejo)S*?w_gJfB%cHb$f16DLvY&@3jLl(bx3}jB#-AEPdV~O&WTd| z9a4OB@Ueu26qoZFWW&5}qKEsY+DL!W>h)~(S)c^t`n!ZBd$B6{#JiRwKqL2K$ulaW z)B6@yMsMp|)b^lC#2MXZev=GF%ll3UmX`OO92VOP&HIV7?YeK0Da-cS--(f*yg|-0 zpvCum*A_1qsjga_85b?C$`;&a1CfK5|FMi^%F-FW(1}p@l|QM5%K3B3v?GZ4|HZsF zg`i6KYn||G9;wOECr%LwCBr6@X(T@DZeIw3_Y`OUZy_b2V&_X0TG6)=0yzKTMe@A- zBoHK5OaM+IZP8gU+W?nrHT2B}v`5{&Dv^ zeNzy%Dj{}z*inJtSii<{d}alP zC^9sEO9q+kUQ6PVHA9ok@Hl6pV&a~Qqbr6A_+d@6)svHWgaP{RW7AhW#;^$&ykBA0 z2_sOVu!VCfK+qbqV)*3($ch=GU!%Rv*VrPP)oe~|F(a$8&DyU8($xIg*Z~stkC_u= z6-h-Ek&Vz2RYUmsdT+WAY2_MB0s_Jdx|Gp1T!<7Bc-> z%KsYv<#rmGzD1I|W*repJ}K*rdG89LjYzylBze?51$=mdmQlC=toVcKdaIzKIkDGL zGiz<~L*gHi4DS=TO9KBOFj@lZ2n>?IY686_u#CWNU?l!d;5`W}ARtf^za#J)3H*Y< zED1yjTqA+m1U@6Xx&erArG#%2(xRJ7SRI2E&AUm$WAyjCB`izQq?sY%3v}3)@Ib=V zb4T)9#s5|O%e@=7@*m=V2LBK8|0w_S`2RisazBUcS6amXD*oT#|6Tr(&q>THiiVW* zr=wFINbbCo*|0O?tNjQ8wjIpuhdJmeh=+kbF*>s6^Kf5pq3NG|Wl%oX|Imm*2O9nL zBL=ahDY7T$p4$`C**wh&F!2!=hbIF^FSa%B_!_qur89 z-}4*8-eX-R-xunSt+fBn((nq9u?8>e4$hQ zJQ;)TFJ|aDmF~jK%e3Bcp5?3BD0Vm)ade*ECN}JsuK6jN7dukC%({@#cnkb5&%Ha|&^|8RS>9+5J9fS{-Z5ueOE{l=pghw}zji=1hvFnGi;~5aec= z?+!tx8fc!ZXyx_P09dBVceZ}6c^&GZ@V?sRIV+aR+?UCkizfGC|Q zKIxQRSea6aW$-(O_K;R$kh&G}(OAVQXXJjkSG)qWawx+tLI?+^(X-f}FH#G{3*&+P z8ofO#lj~iUQJm941a0K);Wm*+LJ^Ug-=Ahg^n>6*GY^Oi*02`$C{Xv zU(g)J$A$5%l?g5`LDbUgW$!(vDJ`wA3o#<3>q34wilpokwJUc-wq`Nm=p;M5-Hvo+ zX0fkhCqjz!zr>RwE&gbwCSUDd(SwaSvb9|FFDN*=mu!vSDiy(b08>rfuff0EYO_z0 zW2K7ftG-dkOVwAU2$d^@;>e_bj)?YshK%$8MW=FZ>VrrOmoLrLM5ymer5RW0| zv`!&(%G4>w{OsE~9@!+!txXyRv(~u=*ZyCx!8wPlft1x%4K9R7{^vEg?K{`tSxu?`*alNzxvtwl z%Ic~H)2Z`+qXuF{#VK(f62N**ZnE7;H+^8F*G*fMgsa_GM7%NQIXK69H}YXlb=?M| z?)UQ69CM250}JF?SReRn{q0ZHSN^Rj@HC4#&-m(RJX=5hxsDPGoaZB|SZ7Qwn+=4e zG6H3E#Zh!ciR{=FG1sZCnAxLR3f5ZhL}IzBE0wMd_o9#AMozWmYPa*jqf94|aqKr2 z87DRLWZa%dbl>u%yso`_>DbWOBf74Ajnw!3$Tn)<9==D{yiP8r)0MCLE5Z6_o|50_ z-}q(f@H7u&F$3!+(^}Lh&Vd@tYSRKDKv>wO1AR;PGrxdscREC z_`A6jvFik9ybu0UMc1-yTF0dKtYEpOaTs6aq?349xy&u;MS({7Y8YEu!^#q_#J^l- zlF~|?;xs8{_cbX-_tpPNaeAF_dQ+V+Ix)}4qy8nigS7r}(Rw=f z{SKN+Hd?Ii{?=xO;VmIiS%lq-$?38?H?sABPJ)rr%bg2sx9=*sHJ?#aq}C4HqSpz~$3#}gRxzcpj>!~H4ESs{ z-lN46yNq$b)^!n_bzP=Blv$Sys%KFZm+E>TjVd{#2GgjLGa1ykT0{n`CXirZy=sQ< z+zQ?PC#|r^(wHlUcG?E=SNc8j?=WNAi^}TNX8(iey^yv={tx7_>l`5Q?$FUE=t#n@um$x#{y6kq(jm+79Wxd5UD{iiEehBov)At$+$O zZb`}zFuv_JmzPa@XvwW&d*vcmad$#zcTuv37I_hSXsJ{LW!oo?{c(ZMnM}Ky9P+c7 z8&_{1)#NwxN(X|EmG?tp>62uEGGbhjlAV7)m`lMYld0pl&75mvP~1Geshs$iJw1vU zx^7~h(;Q#VVzyVz$(KhwPzVn4RC9Np@`@B}3dXh{9pqHAK9qb~5(iOi_PNR6?)QQx zzrsR`@w-OQ@JCke2QcR|Fh5umj1C$l*TR~o0>Pfae`UUxA~YZv+jewi*0zhIz0Nf) z&bk}hVp><`2eUQ>v)-?;?%H8mm(rra9c*zZG)v#Sd$4JJZSLNH>C%jSnk$a5_^Vha znaTxB)2A+RsW^MZKE23{?L94PeOByD`!jN| zIf0gbtlwe9KI`HWYsaKiyu(I{r zAL=o%K3^wx^GX8cFdI40{ho784)Xyt-cBTjzz_8}r@jaKlvW*-$J!nHBD?hKsjsUd zN;atX&;=O)ti2o_^-zz)qJ!>{qkFQN>U*5?ZIE6uo{P!IlXK76ZVjWkWicnm%o$eJ z#4@s(jA<;4=OU`woC2I(x_;`0is%aqAdSrZu7#5L=9Q^BxK*(S%9~}YidhkPJg{{?cCp>g+2l+{hCoFv3h+Yd#N&SJA3^0Z!n`^(hEk+ZmX%waZL?+VO_fR< z=9-}0gQHL$lcIuFuf7y6LAcmb1#3kwG)k1MY|3}f;T_?^;Is9H^UeqRIWWH+)q>@h zbXoUNR%E%L?+gD-*MoLuBw{r?=@bFYWJiH>J<0URftkBNI@So0#V*NYJkZCC{efaB|rGaK+c8w~SQ;xzbSXqt-R`5>7l{=IK zNSLvYa!q?skv*m;zXGSFbH4z&iDOq->kDG+WM~Wz7ie+}zsb39{hQ3#0Xp9s!P0-< z-Q7H&OyN_?vp)1&ZzT>7CSUi`29vLvtbD}w<_1e&pZbt^R-LaTO!zRNfZWcVz_(pa zrIUK3YSrRT&MA}Tr8Z8D$eKu}ZIUcW5OtG8(P?j}Wew=lgD7U=przTMWP|gUkN3%9 z!YTV1)2$quuaI^TEOu~VyT^w(9ynM0Q@t;N3*eYWXM}zqs5xkfa~|)wC1^JO!uh+- zJ`g&Re7^I0{XRv%&vPP$-@vrDFTkw5kWv>YdMBOxBpIgxQcL+ua|fWSz>HI9`>Hq+ zo!}-SC=x^d2#UaVgCfS=ptPqOblhNt^|v8XnP_AlfH@jgb+TxrRlf=ARN&F8=smc5 zRF;UwzGX%$IgmxBJ(C~c;_J=86fv1o!_q=+lMnr}a-u#|MSA42E!4)gRWX*oOdYl& z-~UU0R|RH%e@K7V-JJBId9dOp4g&q(+s}HZ5_7yaI>+&@;=NBxoNj!ABe2?g%kSJ+ z-6U-}`%%GT#yrP>>ICLHQ}vex&Mi8y#A#4v1NkK#Xm*~~frU;$(!ft|f3!~tngV=# zfSgE3<4J(s4>}O{0xx+1uAtG4Ea{>dFKx0Y#mBaZJQa_!rhsm!v?X*-Wx2QaDz_OYw5k*KAdJ1qREpz_#uGC65Tk7Ln{ZWxH_3?iBsF}=}_J|4#BRW1qe6E)ZlR6Xh zci~@Wj1CKLJAc-Bh3}mwbXa7w^N0>hcX9ekdUs#Y^B?Y$YI(&KWEA()Bhtm~jB1pm zh=1v@D(;6F#hsZ^T%U~MUXt{*$4H72cIthzyK*qTO>Flu>s~jqYO`=>+rG-MXZq znAFL+Rmdn#>y<@V-1xd95JlZfUFkhR&$tdu*QIB!9Vo5Xbqiya8%b)thHxsk!khpd zZozsYw<@^ZKp$SVvi@kF&p8(kL@l0q4J&-*c6c2+MRCCT_Yy&<+!*bM6JgF++|ED2 zqZaG6^J5|q*JXkJ+gDCG76?0M0wL=Q*&A`B|JL{<4vnKwdY09c+z9AdPfO8qL=-^0 z<1Q1&9Q09D8vuFN8KaQ6>y*3ZzlE*Y9}G5J(~NNkhvEIj#-rj@4aW#GAuZ=Q zSJG7RzN45kX2o7-M&zMp2g1BTb<)pBh*JSVP>yfAX|g>`MfTEn+j z`!K4_b6&gV01FXp%;_NE5)e#Ay?M^xh?ib*E31o2odt^1${e(w$le$X|WX9K2TQAMzQ&Zh^e%ZM!hg!`y zqfto?R`VLlfYZ639S^bQ)3D;(5dJ+|21OFwMBSz9VR@Bhp=qAkwe}|m&39NCGOe-r z+{rFpS!WrF0>&y(ak-UH{m2--d3bcth2mDNyAsR8-N7i;)x$mg{r~CDdY{a*n%pJq z^w6W^xMvluN|p8%t^;hDB~Zt(cEHno3W_vO>b=Fj>7 zY-VxNdpGtAsBX(a>jUXQiQe)p^UHGS7v7G<)L5C)lTuEq@jxqtXW+@{0@sC*x+$;} zj#|cZNfxZ$s2H9zIGO@0*w33oGrk9BEujrty>6tNk*&kT!{RgE6U?N$DqPi6pNV2J zpGl%R)-KlCC$^^#Z8^kk%MNsf_r_V3^)%#Mz01LsEx~9*N|qc>+jk{PbO*J@D_O!- zHXL?_G84TCDRO&@tX}$|Tc!|z!9)mDSXOV>HRB&(o`qQnEid;?La;K{1Gv;GiA2|^|CiSI-{k7;1C&yraX5T@~EFHkB;(l zu!Is{q0+9g67g5b+AC;zC>j3bI*n4UptK563m(!bQNXbS*H52Qw?(69%$~#N4rp|g zU%d_{&yTuBBuyRMepFzR3|P;M{D|5M4yoi%$Di{)+fRvX9c1+qlD!s5d}st$lMC6 ztHeqWXz3j#6SAv?;B%<-nA5f}9fyb*_yhS8@*WW;8J zs)>Nd;^>Y!IpC#>Q-|KGL0gr;FeAO)^R8EGW^6>|#E=FxiP87Z@TO)rM%`}!+%ozX;{VsO%5qJSQAxuv1k~1mVgq;6km{x zB3c}qB2;S?D}`K(lGa3b9cXcG6%?q>nQnDB2v_nuFT)_j+@wuTboLSP_js?7Vw)rbb(4ENWt;M5`SuTJ85bOBf-kmM|&hEp&t^w_l}{ zTWarVwPtNx&32DpCo*Cw>kvsJz#;G=i@dlaUe`?Fev_#yJlNg2n(v7`=L@o?cqX$x zX^Dt5w8EYqe$t^aMoJyc0P>aCRr9s@?WBq;96IRwTF+M!H(ds2kam>2X{vm;GPKWv zyMf7Nue1iZ;uO&Wm8%6)B9U!RX2bnx{8AZ{LxUr`itb zz(K+2;wr3R$mk>&(T0wOr#Cx;M;*{-PqfLAGgwZQtg=TI>)~RcGi)>Cku^tbaom9y zI&P>B2^%_UsMyLvhx_9yMqU)SZIuTYkh}X^w#(j1DN0=o1lzLogn7YG+m#teZm44I zXGpVx?ZADaXq?UdtTw)vY;nft97uB3$_e@snp}ETl8wnZ)3;HeB$q!b>~`X2XWQ*k z;TB;D7GXsA_`-uppt^H(aMoeSTI*|P`8Q&~jmS!0 z8rj1@wismn4I0}SV5?^<&`4d5OJ|^!Tn$|H3SkRD_6?b%9IcUUzm4f)@(pZ8$?&U6 zqA=~kSCg5H_#iH-e7zvX1Y~}-B`5cO`(~@}KoHjj zNG}|q0Jy!}aeO~cX&9`Cxd-#*o;9p{!HeX^q#aD{wADLQ7ds|9$yOe`8f%iRJU zK(%BK*K!#K%QL?S)l}1j*+vgBZF3;cfjn9I8r_d)F;C>JiDEn&^O1>?!a*2pMzqWFgVsp?IlzUf zd|4SQRV*ZDB~DaQMK4U)ca^C@L?*`m6*AiEdFMf^ZigDjOB!cys9x$jP|cm^)p#hl zwlxYo)Od?Hrx>vo=gQCy%~QHZhjIKJtSj#_7H$^F)ykZTa*pJJRaMUWO@a4x8I_yG zb|;1ucN!(V)`OU7Z&szc8t8WkD_J#0xDb->N2S~hjlgFKQp&UZtQeSS`B5h+AV{(K z%-Eb^EN1agtP`G03LT-x=v!f{D7(`ln(t+tV`O^HlG+Ts7g7f7%;K30$}q=dHgu%M;$JsQH+_{YikNb;juYxJ ztfeNmov}e`hcl(NK3*kLc4P282fR`SVE+n@7j`A4pRPF#rjzNmHrzO_Mufw^m^6@6U=r`c)0 zDK*~9;SR|l7dfj*Rp=rio6I0lQ^fQS8Fdt%mz7fcc>QEE1#z75L!CYM+O+gfGz z$NS{#T(k7cy9>lhKTD3!x;W-oeaEFMc9C8#`wvkrlk8k_+ z4fr0d24?3TWwIQv?BdtubFwot`8{U;&1P&*F5AoRK7(7w&HlU0*uLC~EZI8F#)u0- zr83RW2OzPsiym)ct^)IR73oduTtCk)mes^vmmf^73%9myp;7|f3d|2i$<&{-{q~9@ zg1L;PLiy`%maf0IXE2t`36_3PVGQH+-QY?U!z@q%w8qa9bgc1nkpl|^Eku*>9n;|e z9sF}S+t)yKH)EgVIxkERBhstV*?FzV`Xb1qGV2Sf5{!MED-ISFSu7-Pb5@d)we$)b zozB{Z%hO!v7u2uPLao1PiPQn5Y#wEBAk$3vCV&i*b0~#(IgP1M5a_rzr05J!k#Qt` zPlsr4KwTuw*KK^;*Vjt}b!eR`>r0gB_ElN_hobcq5jw1fJOAocSjo}44WWXXtr(Vj z$gzN{azl6E&D9U7wyC7u+PI8`Yh>%#V(VS;$9C|W=0yBWT;0e>xk*xHrYh2@IG9DH z(l-u#OTu4~uzgj&G5a;TY6=(|5q(SLs0qp~vfhz$r;yN%e{GrUB`8^wj=VfG@;u30 z+#&P1nei`6d?O}1m0wlrXg5ApXE(cB=dZB4N}X%h)JJ9ZX8Vwf? zhszv_DsDozvJnz;K2G4F@GWU@%Y-V@5dNA2zEF`6DWsLs@rnws65rlb z9GaZQ9X9IeVy_wG_oU%?zD=jS3DVdYHu)c_9M>Mp3U!Y(7pr$`Q+q61UJK<_K(X6_ znz(SNKkIr%-8fZPcIX0e39*h!_sqfyQo0%_(cW@(FQjBK%**E<#c8TMM3bL`%U-{MlCjWM#BE&Q{9 zxKe)0jbVEM`zGyixDDYrfpDjyGG0pqzD(*jw$E3Fw*+M5tX9HUC_+r+i!g_YCg z8u-64I2&ij?%{GKk#@@l17xX4Yk}mlkr-b5@xXMSujZn*t%Adqjoc&0opOb}Kfx4k zoV^})yZdH&KNf|EcjJMjr2Ensm$$uIUA~^zjR%d>h(A3zlLya8;utG)T2{H}|-LFEC7R8ek~ zGiv)GMYgXhGiJ{xAlRfBh9N|dDb`Y3_Tu=hH>Bf?U>10~7&9sq2YmtuW%O-|C?@UF zS80$$aYhPuSnJ;JrI4R=)EE}##5$1>GG;AvaiEdEWLjI=zABqjkeZa; z4aKW^_o|w_(5b>_Rs4*-B3f}|mfs#b&3JC@ts8zA%o#fcC*+_tb^?QO<`hy!RT*aU zoKaV$HMrC)rz$8Xnu&X=-#V~Ttz_@v^ZKE^ql51Qm%(uFUo6gVE0-L>Ve-Y2}@F+*v&2 z##=Z$C$~CY)+6ML0|mfkI3VR`nL0tqIX9AEKvUUyKrb6~ODJBZcCyFIDkk}QWW^(! zDF<4xCX0))_`0Fpe?a|2CH?#gSIZyYb^w)9T77)mDk61gi5t@XX-^4J& zLymnYS;LeqIky#TW!_oLb6Hs#FJd;AE1#J}rsgjhcGzLy4qKhS#cQsLt1i8s7IT{` zu9}PHlU26;E;)2H-1RMG&E1bbBT)YR?*9ko%2&GXA#Sviq>3^{P=?NbhO$ezt5wmVZ{Dcv+V7}G&tCs# zx1eZVPI8R!_RxhodYO*?_g6%pAknQvd+mC8mGbbD}wj@GyzxIvlhO9l5+1^2$-PSpnL=nr)C@e(b2xt%0{4zoin}_d z=&n;#UY|}ex?>92o=+*6FwV+MAzGUx5W;zA^dN!M?XRYFTL`Oxne37?`O2j%hM+~eEE0lRjuj0;BH zbzrA)NQREfF&>q>z`eNVH4eYp`fWIDy>E<%!>CLg&QLhaPYMplD;!?*$>ZFCh4MIm zP;Q$Xf<+xmzqO8t{4%$W+rbBL7s}7jA_c!DqmEmoEM3PF2%Rrc7pOA(&QG@eJ)>f` z6sUrWKm4|eRaaMg6;qnNN8Em@;EolOf(!XMcVMT2ImUX3E;tNz>(;<0)HvSyZ3Vx+ zZk<=~e&H*x;7p3@R;}tl(Se3K9p2-h*$4*8`rdafYwp2i?NhCnD-}MaSeKP`tZqG2 zM%ZL-3zgy+ODX7_Z!O5@E7r{zKC@GWx+uhVsxIV0=|>|lFpB_q5dp2&Hv3&B18>q9 z>57ymh>`bcKhZtzA@_a2efs@A_dWZ5{r+S3{SNp2YWMx;?)$~OTjSqqk2A^pt(xgy z&(U1>U)CVfc-bJ@)7du~`!QEJuuYtf`z4>yRE;{mD&?u+2vn#sZ=!JwzwC-0@!{hN za&si&+A{gQQH3YHMReo=Kt9UH$ZP`lafOch!VZducxMaJ6Y3H9nLIkjt<`a>x{7;O z$8F#N@aK69K)H*&NZ=TBy~uwN7$#AFB+x8+-_-X7x6mZf1n-%X!|${o=EvE&=JUOf zdwBPFtBW~UUgE9Dm;3@uj!vJ8(k5p%-Iujn3MwKf2g#^7>UBKt)awlO zh@2vi&T&`kI1xn$#r;^v-N*yr!+5BAl@n0)l4AoN1Nn%Ua%TvI&mo{{Dh($!jhsi| zuY#L&%^ye_E@<}sQvkAK%_kIybR$qMaPkSfhP`iib&l@`DAIQvjk%-kZe%$Wx?=Xx z{Eqoe0l$}xmWIyFKDeP55dHtjhBlW-BX7;Qj_YGoo3ld+a+%#;?M{u02|mY|_5WJS zUkn0Y=YdHDfseZp7)9WQd;(PjE|F&WF5K}W5*G>_Iqd2e0_Q>k_eveh2z(;||04&H z<}ecfP2lt(aE@e`!zzxF?1cn=Rgl4DpBLo%+IsR;M4!Y8w;e&*!^fPhW@-O8obb4} zq@P}`S?(lB5>Rj^5m0b0BcR}nA)w$)C7|Gh2v{=7q<;yR z;dgAp@^BQR&6y*|a6;M?K27K)5!bcm#fOi&xBH5G|3f29W09EELMLHM3lCy|8rI&e zNDM;PU!1jtJ3ek670CKH5tN9F^WBKpN7*XIANx2varP1l_KADVH3XD~5f-It*xI~a z7-mL{5Y!bsm8Uvj-#Ml_kaMS)0IsY+_CNR_`ATD<5ez-$?3~5~L;~0?PUiQc@_)-igHB1kcz|Z+oN{SUcvzj6+^&`e37n@0X z`hC#47!D5yOgr!P1I)^_=eqMrrJ7QovyoF>t!}~igFECpA^w8V-};WlITCUVzCwG! zzVvW5oAn>ulxL;5BC>1PB2V2t+K28UnbkGDCa|eN2L9hl= z5Ue8D3Sfd_BgoSUeAp%!Fy-re>evTxk3ZPz2Kg$d5Xv4kshs<@GWzUv>o)BN6wk%KefP z9~3;e(+6Yl>gkL8kp^YPm_C7`=H_I1MVti@nDB2(`?A$e2_6zTJg4g5VAicPpSDT{vSP@ac5T4Q zBs?V4EOa&vr?15$9#at~jU;hL>P+Hy?KT@;Kf;qvE)@~vpB{wUv1_$ao*r%YT_>Ah z<6goom+OQPozS_4XsPYFXQg&{9z)lbI%_*nzUt_n1?@-RrpyuA4y24g`jT_d8wMkA zKV(1HI$4GLQWL1p4c!PQ=Qi_;sfGP-;>JOPX^T+j zl5$GglXHcfBE{9@4g!mvZLa%G7CMCJ@{RM%Rl48nZ}tm?bVB>FUi_-~9d4dliH{DJ z2>~aSKF(t)Qd@O%XCA(imLhg!xw4xYKM#C?_sbWmJyjdvN`U(!C)}uFWi!BB2gq)# zHAp{H=_JvyC5@5gA|ZUCBhbyouo(B}_t_)7lX(^&j`2b_p^;tF2n5#`v%`0xnftw@ zeSF)CCoEq)ni}tWe*Xol{q9JSX13VVQ4s2aQdkfo%-HAmN=@RFJG*8HMY319h9$__|EyzQDUDS)o`*z zscNP{qJjLQ;gnParp0ue+xVd)SOWXZAN%|;Nu0>{$3BzLTMeg4HUvs{5xR5d)0Ncl zf6)3s%A+vAnzhx$R$-3mFs*&%)(bM0lv~SX97&U2;Z&Z&DI+5CO`-A2n6YSmL!hf@ zL25)-5wXt-8%7cVAv(7+>esf0vaaJ;Ac}oj*x>I1B-y@b7^bp)+8HEEw32Oj7uo!g zxX|wH2GJEe=krIJByv-OXx*J78yK>{|DeJeL^IE*SB`ymKl?GEt8EKeSu&8ZTZxjoZWM6(bw`4;i zPc3pMTX@%pg%ZTjtd`uXi&2*!T<5kZ-OBso{(suo}l(wcAsMRAm~ z>eO)+vK3`_B%ACb`eK&}_3_)I`pJco$N23l21LHj3iYIrft;aY)CHjyE~3`j*r$E6 z)~^4W4Z?QiTN$r!`PEt4tVS02Yu^+}oH$vZsjc40o;Z@N4?RW0;rjskZ(vW*{!L#^ zH!b_8kW74cTtBlV&>e;uW%4tkoYjdIB;Q*!HO@(RsOeik47C91=4gR{U$VeFyKnx7 zV(n61ddmN80kAT1g|86rJt;eA&+e-h!EB?#4q|D(r=04W!HE@pi%f)(UD4bZ-zAPi z^C#E4#f$@(J@zdK60k><2kcQMpyi6L7Ogr=Q}y`3w8PCwb`;9R9GS{JC(wnCiR{e{ z9U1wWSp>VvIL64RYh>w0)A;K?u}@FRS{wU1J4NTrPtY1F`q~~PgRHVKgxNJ6$`qYq z`uQ>~h&zR+$wt4plh0FRzWu07tZ8SpiK-D_TQ1b;`6-hKma%)p60Bbr_FT?uwb5_= zm&Wxiyyp!MsHJok&Bv|!(zq`6rO8^l)hJ8prf~-A=~s3B)M-CgWVx7#e4*PT%Lmdl zzR)Dw?h20^H6ABuJWf1UcVnmj7vH6Rc1MU`?s>T%US4? zd6e!lhP_|9*%+~zi=yxSLAGy~amH#q3a)zaHe&U@OD0i|!vO=pF z-U#IOx|ZNXSjkp>A(~rLZr>KeaZy-nG7zaJKI+ox_nw>bS?Nk!5Q0OUZ_kHKMPo0YE_!Ekdq^dqZ6it4K6A1Kz~~?-kr< zdOi$1;IhL-OsCPT_jk)+B--5| zj*v>#P9EFNMaRZ$S!Tk z;;K}vUL|_KPMu^xvoO=#A_RL%4Ddzk>TUT0Gbrhd`aYs&jYrV(W~Nn~Wt!Hsy}qGm zf>)fLEs~1^^@M{E_e}gf=ZNIogyLzI))puJ~>ebHbTPEf$ZN{RVdds7idk?I_ei?KC_REBo zuo4dPiCn^?h0kJANY0%{Dfps@s}O&#Xi)f#Z`*#kwi!eY92dq8)ScTZr;vYqTc2C9 z_3p!Xw$7!;wD_=b@@mG1Rk=^mb>+RxeGYM-1Knpo_gU;di`-|S`^?u*RZ2WtmJZdv z96WkT>^b7CV?QdcJ62O{dml`M+YVS$Iq@~Nr%%i|DXTfsy5AaBZcQz-hF#!sedlL< z&Nx^?{;G{H8gW!ZLcDj0NQgUe1-WB(_c26Q8xx4Qf&VRtjRRa4-vGzYGX+DnrdU_qXKXV^ES?HY!2^}0u?>Ik~7Dof18X+KcT~RJtoOO$&rgkMwahK znaI-DulghJ$zD%JB_HIW5xIHO8+M8h`jQ%mBFi0tk!dLaM6;k79lNRFrvx~kX))fx z$sIn97l-EJ1(;$rwntcvB$8>gO1xepAybM&&yHjwn;y8;sOHL(Ll5t%v2XK0J@(yp zydL`|@pQ*Nb!?6E?=!H}rshd9xtb@{aA)J*{7EKPzv8<$xyl&-y0WXxRUm{g?Sb~J zF#EqfankTJKI(~=Dx#xgRIscU_CV!y7HHe9$)(I;V&bX=2(uNujcPwkzA025+phNO z+d41W{=E~hL*7U_bK;1wrrv|FW-bE&m(%7aCiOh2`k<_PzZuLy#rK zzwWHoZ~ZnG+0&8!VrkR#XRep0^o(=@7@?7PX^&sL94U`HoPZ>E)HspU2axo*-~9nS+?A!)nkl1LUQG=xJ25vnANoi zT{Cl%;=1zEy)&;)!IG_)+Ztl3X3_;1ZH6up`KT_R1{p2}msT0O?c}wLpMImfsh~yN zTF!;)&RpiOmTRWqZuYjkI>B z*zLw2HXDzrQ+F!BN~qfqzD}DX(oCXiy*jg;^I7Puf5*S^ zlO+b90COyAgfv+v(9cSaAev6nbUu7Ibzxu`8p?b zjKT3;Dn6wwy%%u0UADBwM+!65E*Yp5ymK&SI)5Wjy28wJ zKpcW1B?kaR*_~y*?bI^12kn<#!&S)!ZYcJ;kWm*`NP3Y(A-b#3>hEmx+&S5BxblTu{x~Ug38cR;!t&Y6}M>8PaKKRYvH`nGLf8RGk>)bu_HZ zUM0AFJ@vJ7^+WnUT{X?%;}6c67p-#g>0T8?g3vPI6fqK3ZE1(neTPwhXCEOai3 zP^ao@P)X+uzH>wLktJIi#E(Eu@7(R|WO0za05VeQwsdumL*e;O|1_Q=GCe$B=X+;7 z58XPCWkAW!fHJ2`D1K|LwNnsc+N;(Y8$;#wrddBZ2wzoIR9jUS6DS+Sk6D$$17~HF z;saR^*OR*_#iMD^R;%W0@)W0?Q0%Udvr%I=icHJIDPDwp>p zpOmri+7_|2tuC2QpiTJzcehrM@?Z>mWD$CKV@fqJTfRt2qE6;@VT5e2c* zNCGLgfC|XEpeSzDk2e+*s0z}OmiBmv;&pYsEZ$jlS6p50rYRt4QL!KbURFR*P7NxE zTUvzX`+m=ylbj@_vajF2KVI51nP=viXP$ZH_RKTSG`f}HxbNzoW@)XuezDfFVV`2Q z)-1%MwdkPHp)KJlJDMx9pdUun!Y`9r%&pauHQfJC!)8AH0+54Ed-^5fJB!-M^q&W& z+2H4ZWP@Z=fr%N#Si2iIP*JF|m`dbYgE zCNNyfn~m@s;w=Ir`iDUQSno;Kif3`Qi>Hl{oOjZE^*qwFc~c*9-&S{=Wz7~ZBt0K; zPsH8sEZj;BcPk8rhgR~s{F)Upq}}AeUj^dmP-I!lpl@5{&@bh5DTFr% zw@zTW7(PLK?cwg&CBoLL7-v@&nYtL5%@H67Mwv3z5Al#G+;gK$QL2SZQ6Vg&Xtp7u z3X;Vvj=l)To_aC%DAkXnh%*0DbLd@i4oernxS{tA#G~}vIP5%TNn^v}!{o_4na0U9 zcU#iLYH?7%S*FQjno*WCw!9dgD-a*oNvz{LdeK#Vh`dKQcpf!)8h= zR-$5o2#GKjI$~-Qi)mxS<{e{BZQK`QarGlyV0bgDns{On&cxHx-k!cD+?Xr-v0QBo zXPt9UBy;^3#hJW5kDvF1NIy)00e#TG-HKtAgPL1&OhK=%=yreuPWUAHCfNAB+qc8+ z&T1BM2b76H%~8xSm5$j1aj1iD10n`&6Q==DB48HqX@G{%<_e~(-PyB9m$(lS!;ZU)&hax|IT@)A^F z{4Hdu9xD}_{w$(!9<}M;w9$cG>{XeVGvKWt`cexv&i@v`4C&5c1pG2sagL7Sq-z^& z?s?6BxomueS7Mgn@!j#iM6NEz!V<6d{(^T`xWBMGMI-tPn#!Mj?PZ{5$mmROH$12U zO4?*upy5%_V2saZZ8o2gRGW_x1vJ%N)#lc&YEx<8WL>Nki3EL@L4HaGD^IRgmTW?$ zCP#M0=sy3bbpJup9p}IzI=Y!V1^AW0PJvIEsEeWI>Jo0OjiKNNYTLw0#iEE{sr zGptOVl@BjNH{`Vh(0D>$RGdr5XsE4(nul+`ukJKeay7}f4!mmA~LH=q6g ze0nVde7dl&VQPj&r4T1v;62PMZ%WN{%>QL@wo``|aXd6%e1+;ktW)SJgKr-rZ5pn} z!JYH0d|nHW9{o5XtXkyu`27njkQHjhez2}p~X7wTv*nVM+FL#6q`TSZp3tyo6USp|Mo%3lJN z^y|Q)qowu)CRmL-^C$8q{JoBK&iva*h8SZo{Zo<*3cxIpPf)NqT_|d|_?l8MyTj3i zlsGeu5VplglPI*p(~Fc}_3M@)*hRugXAea|JVvPB}FeK-=&Qp)_1$)WVC@#jU9T2Nd zaF2~N%EYPG#P4>Vc(j=q;27q4X5!8o`*r}?*wi4YI2i{e~JqR!Sp7dln zMj>RSiANN&2DQi1#+iSOuPv{9c^JfU_sQnHVs`#?#Tsi zgA3*mBE&gekm23Z@EwdIo%z!oAi2Ulq|L322;Kh4KJ+s9I>IizL0P&%J%oiO9)wSZ+R3;=oKk%SIO;4&;|6HaIrV$*wD8 z{`L1x=Z`t^hvIt^`57_8h?v_0x#*YUc@#%0p+5ltjYIQ{ZZr&1uE)}O04hy$B^b;I z7aS-MYwPTxXLCJ0G5bQ~5HvDn%PS~=`2KO0ur^Bn0C>xn!G?TG8l&j%30BH|C} zexwBljz<9kVR$kzX@aspq`xUC%s$)1l0mIPI1|-Le;J2iC_X3%Z2~@!{fF%5k&^gI z1;Oc$;ipL`Qc{A+(`aMZ!3sy~x?<0Ck*c%K@-@?Qv>d_FGDi-vXK^2C4rV z=d_N4>)=sjAo^oz{sjNkc3*pr2#*aMPs&FAY~SF}O7kmlssHUQC8?$P(!t2M{3%kS z*U4p?y}i1)Ov62)UeFs0_UL6A9%6|zHLN}LOOY81|1}?zQrY2pbq&KA;f>UWgCrK z7>#=_8uxTG?mdJWMUKVMxK#-8?rq4oEE=~qnl5O>xtFn|Tktc(+|;nWdPC6e8!KXxhVjp z;1S5e=#JX$2GPtL@_iKz?TCi9A;fAB0G#4>VC!ud zA9v{YUq|EPk*4wS7}NOpI@9=grZhgLyNd*C;{;n|$NOZ7G(P?qdMjakJg1+H#>gL& zT{J${4ddfE!uVJ((O!^Bftc-aiMrM_>m3QR-Z3!iJ?O;UsSknN(6c}_DJ&#SYvGx& z7QPPF!tgv1H5LxSQdpW!RG?_^L~L#i)l|$XBFPN+2Vn+$2`1cQGy{I0P1ur-3~V=H zF=8!|I>H$W$Fq>$y`6VrLV60mV#E;VJ_Q&t@YdToA#PqT!EG@eFRa1ousVJ-{Pj9j z*H=!pY=`D+L{Ig*BUSBlP@(DPTeLj>@y&rd?Y5ldy+8_VKB1%s`_U5RGFPOrNCRa0 zZE<-%3e@4U@ba|yJl^4E9$(wp)5i-@i766MK#p(^W+}y6AYPLz5xgxBYHB!Tx$Sg1 zYZ>%nAAYiH{t2fn+_&k|j$`L7Dv{v15?oI3%LHEyut*c*&os%O^mS4GxTj{gi?GOq zi+cAR`zEnyAme{{e!}MLXyVvq5k@{s{ez@QDpm zVi-KDzZz#1u3usty=2DFxHkADaB*jC041bh(R^Nt#iAK}`}p5t>>DM?xPW8~BpIie z6!6#|Cm^oF+9MR0NYk=*h^DXo(&=Z$9rz#aq+|>mIZ}_tQx#!9z!OP*fgO{VYcF`o zw>0>P)#y@X?n8)(tJU5F+<8J8y?-)u6>;%6-5Zxj4=jq~gpp?~jkEXCI6Lzjb5-in zO=E4*ty}ed7;Q+q*;ZAj3fVhHe6q9N0+WW3Nxxu=0v_Hh!5I?#{hI(66Z{##q7~ih zK9hT3+`Zid3*qtBG?>681(o#0RTFyS$qwTLIhMbwoptR3g|*fO3aJUSo(aQVpR>K^ zQlk}2M*7+=oIW{@je7$F;@HT6Abc6#Y}^~mbAdANZ^=!ToDaR^esCB^!y z%~9Ladr5r5T$C_6>zRm**Sj)M{XrYe$DKXBLkDF zl3Z?#BXXsoqj2*+$;sw@lH-&m!ea#0g_U7kXcfQI*a#?P0q<{H?6H0cBr^`OkY&u( z=y(32k4_R5yHVqXP4~*%VqpJs zZ&oyWJgJ&bs)`M&jyA3jPinj5a${{5Kd!%V7*+*hT@gVIhEKmDu3ZvqV2sG8V0-M^ ztNQw3Ja)vHgQ1JvppUwai5eVG+~G#&8?7iprFws#94)_*_Ab>N{NCC+^&#VDp|I zpPcrtM{?-9tSaQm=d06Wk>8yk6h$bP+tvN!Lzjz7!f&Rj#e~`lXqVptp zs|2qk7`sfoy$x_|>~;3#8u1s_#%%Q>1YG8ECKM*B?;{Lbnr{G>Q}DZruzTw80&rDqAnpiG(#F}H>f>vf z$Z4l~0wFGZ&X(@AWc4`oX&SEt4rx@bY>;DN_(IKh`5v2Xk==8qC9x(FKQ0n)RIXgF ziikxip1vX96f`sc`Bt*QZ4Y)2`6eO2b~JFod-PiTa!-A{5~Zmd8(Pk=Z`{~Yu4+#s zm3yl2rK)b=y^IYTVHxr6UlASh@zgE9&kr{D?LSW#KOSs7=x+FFn7iS}JbMQcJ;%Ja z@9zxsg2>OgwQ2s%Hh-@Z+*3EXZ{H-7ZUF{h`99D7bGiEXLL~C{%yLg{!pnj(0iJaD z9tm3V>>EMiO9Iy{{M}RENG@V0wy4sZR^8;iBQ(4p>IG7B0G1&gT$LeVfQ=x0bs+8{ z5u#x@jdtPOBbtu3^ZWN080zl>5+uVg18(M6~1hP?zagYnvS>P-*Ej^oFrOPR5>YhMEj@PjCu>H zG`)owM$p7g`HFmFKLA)eFC>l;A8NYM;AEz$TLJiu? z(uGM%l=73AyYyze=H=Mem*1ivJ~KXexYvXS6gf>!~2^s(6o8j>cz zWZJD`vt_MP0b_WVR>J|X%>O=n0p9CU9zF=9rT$kduv#hn5?*5#mS{C%iuCt<*6shJ zU48yGfZPo`)3kA!PW4H?gNzW~ROa)@2$iZ&dYHmrnhC>_op{+O6#5Dgr7F(b(uQcx z#rbNA+qXIm>gAr^z3#}m5?@14x344B`x#y`;XBND=9&u`e4#nwQ<1Jpe3!X3@l-s5 zuw)T$G`lrFOLePdix9ie0YjU{qH9G@h?&X<^4JBS?xBWG^kFVRjjESS4Z{DDGN1l~ z91$#UOf1(C3s$7&B>)J*Od#p}C)%lVtg;YIDst&b7 z{*SgS-ztD1{f=F7r8gDdE>?Qol7u~(QL%M7P9HwGts97XgvUI1p_Klg*FZK8SA|stcB(2-F=uSwd=qsk46Fr1;27KAImTE;W zzD*tTFnDg;L1Q<4Ij(%GYhW^b%R1L5wufBJg-wMp^V_6uDBJ?OiR{INKjX;{m^kEl zaW@zSjO&LqdUKeSYXAR2t_r`z!%zP7k6?Es53g?BFC_GKesFkI_$3E}gZi6DTRL?1 z4sW(F8pd52afMm`(?MfyE({hn!GJ$j(l^ihJ)T-LY#>EV+*;o+ z{)tYhorYJS_B}M>^g7qqW{1r|OuR4%cXM#G%wdx5r8+RyJJkl4+6Z53h@?CzH9Sr$nd;2P zqdxPc>l=SsrRKyAU4>IIyF1Tm2Hc^+N73j^c;A8N&OLB0mx{{anu4Ju zk^RpoSDdEFk zQZXro#-Y_aT+`h4J6HQSD;3y2=`H!zcB3Pj`(%u}NDj0*~3^S&^ z;k)CqI{f$NIn;~m-I3KpHhPUqn$>JjMnBZsNsh8sy1x(`uUQnEl9F$JTG_AWQ1BGOpu zn1%Yx0@_AP}(y2*nu{eGvXx-#oj}cOw zYM%Z*RugdtW92gnERDqN;VstIF}Gknm>p1VHqwku0 z?YAaTo?Mn?6^SK$$aNS(3tt>^HMXo# z7at%Oi+}8ji}xl`n_N&LwbUuaQ9C1vTF-A$t4M0s{3@t@-4AN3N$q1lbVcpVBx;ij zN~D&0uQ+P&PolQsx2W~JCnU7Dq_!PK?JMS!+TDA*qV|C#YLg2}q?VdH3$;a5q$JV1 z__yfY29sy(;{J3micMk|alW73xyz6RkAA))~#O{1(lZ zNSfbi7c@Vqf#&B(b7lDGJg#bgy)&AV%Sxh|6OEN-nu#Xy`Muwwd7~h9(2+Jl^UjAr z^DCtJqwl+-nJTa((MT>UiDqhMEj0Vu?oOik&flW=+joRyTqP;KkQDRfQT@~|DE77A zlSFQEL5Y$~?QtBn|CdDVZNEkBRg&804+{QPsi5{fQhR61(fR9Zzaxp-?Zu_%nW%Y2(MrTgL$x>~jU9nyow4OlNnU9VHlIyd-Qmn?gT%)0t^nQ{<6}5M z4K@+G6VMt``+NEz@kRYyV9_%}FmKST1A@g#%xKBSsY-FH(D|a zU;6Ah%Tb>R)O6a@SGFi_CMh*9AkI-QT=!%+>Uj(pYl3?G>a=NB{eNp(?3g=k+IX}_ zZQ3_}79-M&`$f~%_|Q0Ku2Z~@LUNlC-_W)ua@9DC3va?k0hA)>-38NP8yNO zfi7CsO7L&DERiL(tQAF4%Ubnf=AZ+850pJ{WjJMuI0coO9$Gzo=46N z_c)?k8k(wBwVwfDm_EQnC3ZEx1hB!k>}rg;r5n5jTds`LgCZR0QEi#|N4QaJ1Iyg% z=kjMu^U2bGXPj1?Wp%+jYpGV=#qA{HH<6=~jQHGff@nyLX~g#ucA@e6$;y2~a&G-e zNX}JNX#0t5`%89qwQ9I3snL>)mD332rwjT=B+>8eivClR=x-8)4|@GaLBCcB`fnut zGj?=E|HvfzlZ!nj`max-e_~hkKh~1S|K5`RJwFKgKb!;l%Sr!|?OoCT$0Yibi?z@n zJDGE+pQxY0n5_i*wFf{9pL}ZA)zg`^3%;vPa%92ObM{x!;m+4~&5Vm<^9?4OuL5H` ztDj;DRm^5>lxUGb$H|KQ{2(fJH!Jp^ug&?QlQoL3{o16OB^TIf&4hLw_f3Sq<7;%g ztyS1C6?-R|OFm!QwbSFh;w9F`=;(tq*H>yoLrY54PQE+gPjRWwmW$b=c^ z#EoNz`MiK-9Fv2A2S-Fjs|AUJriBHi<4CDSN{4|`eg0N>4USisJSNi@%k=q7U(57L zv}T>Q=5f$t5*bt+ZIAHetpU zwhCurFv*EYYn;7;ob=@^-ua498Y;xH0~v%pZqlZ(%Vvn43J7~0sgK3+>sgOQk6(qk zl^bSFi_j`C&%IQa9-`jH%=t32Fj6w+>Wjq5>{Vh!g>9)gnMEsIDVk?cV2@~}m+nI=*;yt5_vZxZYyID_E30TyWl7o^3K*7w{;qi43fzOx&D%5?l0zc-<+xD`*3_uZXT zJ9>ai%OL%9l$o?{BpW&x9o9R68!?LjIVM!EhjTw9<9UbvdusA&c+Wn>0}!Jdp|!CP zi@n64Kh}g?SaOM62XUS8H*y_yol>+KNRnpyU}po2xzajoSK>_ntZ14+N4^yexN|02 zD4#9#(bl7nHdXCwP;x>891bLxY>{+b#Q@5q$e7&2Axnq8=u^HMGY|WH9`vQ3fdw8m zMg1Bd?1d}yJhgqeQhnWPA;&>1* zr98zk&bMOmEF?t!RRDNSW11H#5pzJ9^ab+nKw5axpY(aS2YzkCuMdS!{Q-21zs5w` zD3OAc0blr5yd^O{6(q(pO>#*O5UrOqfi61UpVSyWjtP|C(G!0IJ@-460qyGQto2!6 z6t+6E4k_+^_Qr-CIa&L##f~m@iq-+!jCjTc#`X7!NWd#AT~JTnqvy)zEm-ynLX69FM^wn&Iblg zX51J@moSz&r88QAD5=8M?AFa>!uSNgAzjdrb`%<{tGOOs_E?YGrr~4cmOz zGBp!dW}CfZggnK0?(!Fn{f1p=(9=6aPntCyUF9)$m0LH7o>VBo_et<%f*&W?4X{X) zsLArRpVtLn^E>BjoNS-pMgD%rkpIFi@((zM`~$nlUvLchhjx*F@G;~c){;6H$pK=WOZ|x%g zEys}mjxO@wb`1IN=_3D~$B_TtF7i)1hWssRmPNlYFI2Vr zFtT=mqB0pp;uu)f&N03V9Mwm|(TPq#B1@X4tthP1bTTcRb-JLX?th|%$dYKWqUf5I zzjRFt7SM^!BkR*CUx+M;7AuObX?eD5TAu!&Xd$vBTC6C#riB;&yJ(~5{wG?9EQuB? zimqvSxocV${!g?JSrRQ)6kXHude^kPax_|E^NDl@&;@VbIu;x>Ug-kI;$y+Fv}+vi z9Se>%UE>HI3yx6NIMyBu4sLO};78+8aESG@SUtmWEo`&5V%t-yozpajYv%lXJjcE* zdQ2`9DR_O%a!meFf+EFO`kt$~K2lRPS2LEonrk!Eb)`f9w9R{gSnlRUEuNtgs@f_R zyKjCb7Q2t!iq-5^u4eBKVKw^<{v?l{N7urL&DJ*7G#}i6Ld#f?B;$y5&8@>n;Z|om zwyJg_OX^Wp6kYeI)UHp|aCZMcjKD;eM2i(g*R*u&nif1i{6Ek_WJ$DGQFKiU{UdfE z(YU?+KhQ#CNwio|bWIDdQ+Gj&^Y)UxL8G-PjQ0NIG3#vL@B=Huo=tXnd@` zKqz`9{<;0b)5OIXfBIFAaK}L(x{gJSwY#<1&G09tKfX2< z7wUx@IppofykoRmeu6LUJ-U*R_EwSB4Fw96;A=|9XtRDQp#A)w4-A}iQP!asBbg&K zZxM(hO$hecCGR#1WopcG8HlIZ{b~p6v0Xm_^`Qm@FMdK9D?_gV#*oz5J}pxUG?QE2 zS}kGJutKlke-}sbFli^sKZ69feC}6%vfF4c?CmImXdP2X1^$-(BLb7uB5rcu7@=yg=JXj#J&=G6t053Zt3sg1B^gA)w@3 z|2Kb)gtr+rp$|FM#I4RWEv~gWIg?wyx>Ux8YHu@GA~odlH|r^XYXWYD$w@Oj$r2tH z4NIu7wlg%%)-a4QzfuiAAuL2)s$>@}Zotes#8&b1A zRF=AX4f#;1=?8!|wqWSk0ZI+8TZD=S<1ZXf@}I*Om=8)|tFsp$ID^Lxv#<62-~rxo zP-=ECGBl4Fm`4!SvI&u(A|0Av6qtbmvv7>~V7IJKoFu@hHX#bZ5vgz!NV0rGZAvv) z2FlXmrw$1zHRmI;JTm-rf3dw>9eyg`k_ye6#uD&P8{SWQpkS20bXc2vNP|+#D<4Cy z9iYs`RYzNiFVyBveW2LwTZgN{hxDc(Zm-xMC}?>e!hw57O3f1ppjH%l{0akMNn~Cz zvq~PJ`Ya_RB{MY7>>DlrK`b&(K~lT-ID~FP2!zjN-pD*RK9XlGg|Y~dQmHvx{*tL{ zddpv|jNN;VGphmj8|U4LU#v%6-e6H;owLkxa5H0;Q9X2ET%I`0-h%E69u zeBq!_Wr9wqS`DyC6^ca4XOYsVqpxDH&68u)+o*8(LR@6@p3xbuwJ}^MSX2ZEqZ~3D z#%OG1$%JlM>m#f2deW&;ft!$;wH^_@@S@DQpg&Z6I*y)4_fnd0s}0UewFx=OdUZmM zI`(31LLUbEsAGF-59TVLs1N3<6}TgJsG$Yo)TF%q2`cK2&(0DYia z^7JyW>nXv|PnFu&0U7eC_gv7F-tZ0bKbX<5Co^lSpz#n=1_YxIDYdha66}4L>}~0X zKVTKbI-Fw!c#nH7CpKKr#1urBMJP-BFDxJoBX$lRkT>{TqCH%R*b?<&iaB!e7jiY@ zga2$LRqM9l%OU2X)A&lK^zbQ8B3m{GFc_M(G9*P-Y@<@U0l9^wJS-~kiBh`?F{lvx z7Cy~jw?lnO3X3X)C45s9+c4BWrQsV41fx^4Hbxn?apwKFWp)-~(;IezSramlCJXmc zM|YE{L|GeWjw{#Py-a46YsIHhE-8MX5|P9k z8oSxD7Y)E-^J*c14nfX8 z#I_CCxOmXdKr;C2PMFih%n@DPV0jMj2;9Yp+xu=U-F`0*i6K4MiiE23MJYgD;-8go z%)2MAgi!fckN;6o+c) ze1bqTBRyG^`bBgszuq0C%e2hp_D`-Pw;w{R+y8IrQ)0XB6(o92#BI2Lq9nK4fSu-b zO=-69U`-_AyIe}BhUueRhBwqoeWc8J8ghD~IS)0`|F#<JX-TvN_MOJTRsk&3&5zDrf zgotYC(QNktOd+3zDnW)wg_dob#tx9>9$MB6OHbcgtIG?0$TDL|OXE885Dn+-ctNM} z9x4Ftf^6K?Y*~lY7oUOVYd}7%rbDh(6p8@j*a{yl1p$~^O8u^2slRO13IYn7xUP8_ zwE5a1o{^NiQvaV;VPr|pxH4;fg3(h+G6lRt>tP^t96SoSA$yZSP`Bg!h;bu)`}x@@l3aG$FJs!@K-dLZ%(eQ z;_TS+6W#&R%GHsXT826@Ew&0Z?@pUvEddv#PQLA_)^h1*0dv(Gsue3I(QvVqr`asI zxHDg-dGZVRC=DK(Ifpx@w+8(h;q~3&5Jxd^F|zwTGV%gMwyw$ZbQ8r77ssQ_MVWzSx7vYkw->< zfm9}JLO8u9G5;<-B^O=c%}M#ZIx z;AsV-Ih(C$l5-xC;BnVXwmM#MfdP#TW?_63s{otNYXTt4w&G&M>Z$)umHP}fliP-k z31aEi|J+pk9XFNXYeaZryB*={&tS}?eEz+;jDK$t(CH3BJ>BtifNw6aXE9KXz&Q-? z&Qb~z`*18^JCQLjA#e~`e6N^k=n4WGl#uTi1YTsI6@gIWW$J;U({y!1Mi5$XrKfu4!dSFN$ zapjLGr*H{4DSwnpS$b!FDZr8AMT=bFLJ%H$kjbT+%Qb z4aE8znqp(g@utT(w|!-lPAkfQY>10FIat35s`B=x5(ump%~1 zL2fzHL&LhLSY6|xR|);1LXl-)YbZ@dtQ{aC&T3tgBO_kENJJdpx+cYQ2D3DaEFMk| zFxHDcKmn;q0T{0y#{*gx{hx8eTxf_!|BD`CEF;!9cpkySE3nUw)aOC^^v93_(*;Ip zIP$3G)sz6^Ifg&;4nY3&<1otp53f^TkT71S;JXy-hP&BRqeQcnioc^PAy~u5;zdHf zN3l2!`j=S{sbVyIC5p#;7U@4fk!g$IH!nZsK~qDyEV2y&RS6zB3=KKPU;T~@E;-Vx zM`vI(O3SC_?Aq~H4k{?%qL8XH3^&#JYY`YOX5u=?Z$9ucc0R)PTp3<~a5p3V3Ceh- zjDHT{0waE*CH*T1({Px07Fp6SMtF)5{~ptyD$^`O7z`HaS1~f0wp+%##puiwtZ2_&GFKmbMI4-02~T4}9BST%!f*lN^(uszp0HB?phKr) z44--&6okFTgMZq^p9s(Xkc|=pL1?72`_`9-g+{u;5qwG~J+c~~yrHWZnSWld>+3@! z`?btIa7Ae3fFrGg-Vco|7<}MDz%KsVWiKFd@VLv`ib5kVANp1uQWpPX(4k>)RyMX| zYDS6X3FYcfLfWE*)jomxh=OXluCEC{IxJNC972CC>RucgIjw51ADBH&*WU_U75`X$ zGk(pQfBZXvP;DhrU73Fe(pMw2@9NVK!ilTxxp|F%&PV9oS?2{Yp(C^<0&QDWXd!|I z9R+%J935b??UB|01`Zt|NfB6P>p$sj#03%hd>rsB~@MJ z+vDMj|C9<7@ zV2xBmU-%D76{7X?5u#KP#`KN&GJUA{&QyHdz98OvdQS>u)jC#@V)iU#(IHmtD@zgO zs9%V`W)Tkmhz`|x#$mU8yP37r-l5-0`HgIV?)fVyzZREZ`8MaH=-E{XA70s`!`TAX z$OrYcZ<*TUMvP@#&rNRG1egpp8X>7y#@d~OA4XMJ61I#pa!S~$&pJ5bA7}Wj4LLH; z=zw<@X%;M2v>1TiKFxHF)$M(8Znm=?AH@l;RN`r6kxt_K>*kI~X!rn*1|eZWFL>o! z^o`9{E8?C&Xy^U!4da_PmBaR4y=)jZ_fI3zT4r>IjXTf(rS@BUdBH9+5DvrW$!HoH z5DY=3`0&W-pLayCsxth%V4$N8ffpX|BDi=A6GNxzh8P}`S|iQTd!EtB2lEB7C#2() zas8W|O+xyQPe|u;-{DIxi~72)9%_Q9pyB+{(=)ITzr;gf;cg;~XL;d@#`J9&c#&Wm zRzpc|_`Y;h$je8CypjL`-RGu&r?K+z3wKxX$0#o<4^P~Mt&8}_S{btsG#k?d-_N=5 z=Ge)sZiCE29i%Cknc8p_z%G;u^@pW z7L<11Clc}*UH-#+N&qs9Ws{LC9=ei5d+=C|*u5KXmbiVQ0+Ygu5l=nF*q6bP zWt=R@TjQZ1aro?jK;v-|W@P#C-mFLJX)Z9p75@O$TJxNJ8de5V@wl8J$o6>c2_7iH{~`EVf*U3HHVN(} z!2yED6a068A=OctrnK;O_`i1k*$TvV(;+#jhHE(mI+2C|+nJouR(f-lMmS=7kydFA6G(~8% z80D`S0cI{jSJNlGCcu3pc##ATB>3+H7XjSD(=;?!n*a`~mT45G`3KXS!Zg<~O@c!y zNhU|yeXpVvjI`B{$dPsyzGnOJq>(S)iwD7>%eo9I@Jx;ZN_92<;+J%jcfUh>swd)k zD_z`qtJ&nqgI=rP-Bfb7=lbxeR0VN_hR0!v!zl5;BJ*kBEGYNpdh^u!kW97l;NF6R0XaD=Vg9_ja+es`}Sb*m5PlpRQraF zgguo97ItS7xt1kbY}j@47HUyr@x@eh0On42H5tH9!|)> zILbh8j7dhHbZfO{Qw{`e@stP_OH!5NYe|jqQd2EU<>qg4%f{OTE;)0_elAxa^Pdzq zG5cv6rxCm(e>w)Ex?SvM-69JXgJ+O6WB7ZF8!Th3BXRiZnak!W6&K)r^?V@C=DD1= ze;&n35Z_0*g26o*@m!{w!5A)IqA@85)jlU;1_V{Rr1rmW+2uIP`IUDE+-|OFiZ))) z*;V*6g#$a5tW>YTU);r62h4r@iZX9lgL`H^SuXGB-0&fOi$xRCZN%?S@%wR>X{qX1 zJoCL>UyP|K7D>maa{e!r&wS>TrY}}5XqeF>LYM&qU;a3Pev` zg&9Y#s@Tn{U*hz_+jxL`+;HY;3jA7oQyi_9nms?B{W{x zP8S+QRuzy8^mxo+fWkST^+5AW9WFdEKa5J3- z4eIzGtG+pmMGzhi5HcALOO6#sa!18K-N=a|XI>PiubvBgxVOcGAlI}(&-w1D8?>}K zqd0YBaTwcEQN`lAr7CJ6aHI$vrY5ik)NL7o)jr z6>&V(IS$%IcZTD=1RQ*(IsKZ>ad64p8IC0hINl?U<2uJd+v?76kUiGAaArzhkCkR8 z{NOXZo#9xKfCG1N|Bybfa~vy=f@4(zj%CDgW#>5FKMD?B?6lTpEpc>UQPoLZ>W_jW z7>^^pp4r75oh%;>N5Qe$f+Hq5LiB{jL-J5efITqG4mM^)eaK%E&VR9}Kf(h>$3y-) z;PiB_Y_dD*L|CYRF@|JS?!+%Z!Xbh!yQN2W<2WM6PX;5@p(KeTY@Bb zIeW9O38rRcIB}ZYFP0*gDV{J=RPE&6^(cw%L88_*aMZnBspj#mfd^xRZTWavoIo}b z=?vK0h%Rgb9RhGc3~&iE!HD#K&z|opv_rTLsiROZP_1XO#l@H=EpT5XNRxSrq zY|>9OuAbT)m7~+_;ame)*d!saLI9*Ztwa6%AjH&;b@M`G1IB_@m;+YRZ=VCEIZ{@( zAU8X)DJyVG35L41_}Y}2-5nvNMSgKVd9W)+Z!kZud!$culI?= z*P9@}JZ=Wc(aWEJ==5(Wx`Yz6>;~-bM$lr*bq&r4T{t3a#7%JJiPf;?{Mlu1g->_5 z58uxsB0(GnzU>;t)80nZ8aSgednF2E8iB(|Sn3O=$&@H5nliVOlw)NwK%&X^BTpj2 z(J~nr98I=9nrvy=HJ}Od6@~rNfEh!CmA#JxB-p#pU@wch(%+NwkIk92AJ(l)n}E*B z&l{0PFc5Vt!&?&Y@z0;v*c-vT3Mi6W*WwMZxgEY*rgL>ZSenx$Vt`o7@NY!`N5IzA~~AmptYGV?F;ml`GqU_!AJ; z!&1+6Xb6|`_UsCm{a~3o8`8C-buGrNbxQRSB!jf(l+EG}?e-T^ZQSGaXKjIG5TN4n zxH(+prrv&C^@hRY(VDTi?9JzF4%bQSpN7@VA`n6eGZAB7)k#ZwgA*HtOr1D z(FagUs3eg(lJsRJB-(lGOc5T%?0+<}55%{8*%?5QlRXRtQW-KMvvY*QM4sz|vEFD@ z$*j#kK^xr36npMseGMtVW`P1CMngZt5c&~NBb^9KVsD<1i9L`B^sI1C%dbrKv+!}g zwiGcPdB+n*v{EDutmt>%p~8brrej?VCovL{H4dkN^N|F z^7eXvug6MK$4_(H*O#c{r^r27^e93sqs7_g)W;K!x`h(6MEwNr25{i*P&?|`68eis z7d!BN5m5ogV`Zr?dW_4}^m%PuXu=#X{ROdK8V)O+J8%o)fxJ?6Dy~IrbEhv5IffTF z>+ZchG+Y?y;LyAHnW5xwpT*hQ-Amj4&d{^D9e0#Y|y)!>WbFCHTiD{baJrT&L{;~qf#639j z&4d!O(XEY#O5zj!44}enSE}6w=MWdbEGUasLftVwjP6;cmKQ)6ocS5PAo}WvUT!}G zN*w_?P5%MKBAAE7nJ|PnsJ{)`Yl0P18HRA$s=vIicZmiU_`Y?SB~vHBG-`IE{?4ON z4B)+(5?@=!jA0mDz?%v;G@d&aiJi-Se1!77FsNU&ts}DHd2k|p6>+u{9gYabgx&b5 zt_feZf^JYi$_SJ;YHH6)x4j{U!zn}E?#)K~Z^Bu^2ra)djM<8W3V|wlT?o{| z*J1*-6Q{?HRg@?qeFo%W76Lb{W<3^$ai-UiB@$zp^Pvn^HM(J&QvE$SiFa1iHkT3z zI(%)OIVa=q&EAWg57AcNS(k#>Q(CyOM6}m?d8vlSt=zaBG7A6WsW>VqSLd{drJt|u z7Nv%|f)cg41kRI3`+KIKuID+m9G7~0coZ)$3# zm@wAy;RsO5ar)2QGN9eS$PGo^kCk-M78zR%M~dxdoY^4ymMLeZ$_?ThdR4SbQ9nzM z(MRGO9xh}!sAI6A?WC`gMQ9r5rxJB^Ca&TcFHf?Ctb#jH8dJgC@*-!{oIT_c_A8+A z;!vWF=2pI6Gv{1@YhN6OMo8+W;v+hpV>#0o1|8^a zFMZk(SqWZ5!gpZEuG7k%fW~E#$S@nY$3Lxq4i987PP^-`rRq=miuq!UUMa`&-JVNW zyzJ+t>h~rI6(_S~;6nFTzbM7qfI3t@LdUsBKOQJhuj_})dJT0odyf~B(L{?On*OMk zuupYY?Og;MW$FiN*($hUmkg@!hd4c-DAhH~qJ8uf%rLmL1{UCbufmDc(z98oiJh5p}-9cO-LWDR3`G z4s`ccc1n~B#zwK~EzQI#X?Rqod)-XuSkBQanmT-*Ysh~e^Z?;)GU2-~M-hU)D9#rB z$BiA4h6{N*8epQ36lIcecG-f|O2P^|~j z9KOhz)6WMPJ0-r$OnRZ3)5xke{VtP$mis}4p;V3Nzp88oSEXAWo+BnTt_G^FLlRg2 zAK?ONu{%_pi;`iulgE#%8mis_SizOq_rgYOFzSmk)S4;C!Fr(uF$wRQHH`-4+i~#| z@)*=hU~B_I%P>5(+m(6rCg>WnUwPzQ1Q73PKvSj9xF9-np(ZEGntXzf{!Vj81gU~< z`x-}o-fXnbSr|SJi_ze6>I(2;_q}UNP+I?8Q0O~JwXY)2=Dn^=r4*iuEpxaJlQ;=M(&0kX~d&{As;?HKl5YPvd!}1H#~E_k zGs%=t%_Knhudqop`>$^G`LXy3DOvz7o$yi`$KEVu{yW%mxzvza_FS1Z0A@4Ki@Ok0 zvBFHluyyeV>>4Dw7n)tP#KTm5(1>wr4-lb_^7q*RZu5FVVG{^lfW+tktI%{ zfm56PoXh@+!*>|hAiu-Ckj7aPQ4vvzy$fX}`k)dhysS|Q%PgS<`OevYgEAkNi*TFC z)kJB@0ZO2PFu=+1oE2f**NTb5E?_TJ|G~>Cs<#fFhMy}{!w`%G?*15VOSONHKc(8M zB+cU(-X%fSg9;%*SZRC$mXELs=1wI@Z&|3gZLdd5|L z=eM|FT~mPE%96pbFj1=igpuMZ|DFzO9Yqv1^{j|@firlGReO>Y zE7iPV1J2u(haov=skQ7)@Hl+L?eF`+-^iw~(XX2I{a99lRj!RloX(!E)clI!jNEH> z4cVzY(w$oht!x1vlm%Rtjy*Own>GDZx9Vpl@SuHNnTmVhknKTJ(4oU;F$!tADRc4C z2TBv^qG?=6!-4i*lwPX7FGybE!eVW0nf)-j33=<(?y7V2{{TXTF*jva1sfRyv?Tj7 zWK@<+Zsrx*c@LsZokPOPBMsn0v@$aWTL*)uzy=K07ouSO6`a4J%FQMAwJ5-0X90Hb zA3kuT)T6oQYh=n3I`W6!|0z##TD`W5J&2=ZO3?odD1zx%Kw zf&)pd>^W65aBgW70sv_B4*>w-}#*8!&5AX z!q*y$1&AxhWq#|BCdNykg*;=4-a>VeL4iodPT%_kc6xvI z6Znvj(0WXJauniT&|kC_k2QxMG-?G|fr3b-`j&G0Perz6QBAPk=nJ;t>zX6TV6(2 zMCw73IScSHD4_&nu^GM-(7R;G8}JF^@~CK6_M}5qFizrW7}6Y&X?`Vjpx0)ul!!;) z*N6>IJ(v{kH-^U4$v*Kh!@lcbT_Euq=J$p>*_; zei-w1VKfinKHd{zm5-4a(--t^FmhNY-u=;kcSU=+f9G;RJaVIBu742a+Xn7dAKJv9%Ev9sb@cVUqyS{S+Tu zFOD*ktJv4qbwny3xXI>mp|3yCF8GIgiXY+DEZN(-T<8^GrQjdGsZ8BL+Mx={$9%CB z?>%|WgJTTr3~oZw4MQ5He~g9?hHQdWC!(&w5Vg&ba2Dg8Y60ZZm$WH2%p!1k#tr+E zkZT9p2IQvy&?f5*eM&JX!E{3R_v3e9x21zUJb$Se<<=f>WBss0E7R50WoWFAenxo% zk!~+pxEqp(WM^w-d&To2zV?XcBx#Th3kYuiaV9vqYYG^t<^a-u^CP7hS zt?`&(k=XQxE3IdsQW3r^pf9}=$4F^5&rtoJ5Fz=#&`M5f;1L~Zq)hKCQrfrcek3S~ z;9LX%nA_)+3<=HJMWDWaHWo~{QYy-k27+HBDyf;BT6wNpyCKIN;sA!yM7O|VP?=BN z4W$5L*$7?K_NRFL*^7s%QIk^jM^s-={YkENnlU4#Oh3idf9QYi%5z#N_6EMg z_Bk8E_n`Z~jO-AhMts7(kUV|nxrp`4*iZ0@jdG3pHEW}z)4+NPkX{SoDGzSd9$l$< zPR8E$dl`fk zZ+7e6AJ`g8T|E0LgF$xhg%SyI)q{3hKu*{Cfz?>BEuFktV5WT5KEUPmI>-A`BLVF) zpG#8vfv&yS6X#wtkNj>T8Y z(;x|{4m}~NnjNbuNCI3h1(_|CBGI5eqAKGdebj1dd!^iQm92OO(ef5`-hc&i+DuN5 zZ_Dv&6F#O`5oM#^-e64Od@H?oolN$}SWEG+m%Hcf`X^>eDDGM0!uz@H*CAKdvC}oA z1%1rl`wEH4VHVhOGTPPM@MB+h)pu>&)8AgEP)m&^KYcIzr}q1-X{r? zvbR5uhT(wY5a)z~<81NkgJ|(8nKUfBQ2^{Ql5z}`jdKywg(m^uI+-W~Xw8O}t0Y}P z5|XcvLoT7`X}O3BTYvAzWS&2oGyo;?7`uUO_0XH6#%O@2oplvy-02rKweSG}y*n|n zhqUPUDTY#NFFSA?;~5~w>{ANA#J$z8Gxa}LfGd$Ta%3K|W>yPiNX!%y0bn5JQbb() zg!e$S(C`$rPzvkiy?=a6^p7|35p{Gdhd_Z5`T)>stl_Rlx`8s?xL7*5 zCe_nKI#fOqzDPWJrVjxT*c{4{6h}p#Qz0&QBcnNzLS>_U!o{PaWdijHOp4{@} zOv^BuNPTLQ`Yb_xUrE&uk4C8{8$tcufjH{_iv*Y-o{FWz5X^KVL^^|d=G7lS`AO98 zMn)_3x9LZre(Q`bs85Shf1;rNFOsSYV^sB$R4sl#j{19Kx@`-hwKRs>I+4zxo_Y26 zQGOEj*CbH?#-5{4e~OiQaXwSEmp2G;UMC)EEKv`aYQG=;`v|v`HCFR^8m}z*u&T+1M3`u5HX-kCVI(H~ z8;PkwAn-%)8KIFz4F?5HP@pW?IArxQNN7ZPY|NTcc{)9*U4sKOObl?%u5zx6miE{%i1Ue3GaU9$ZWJgxwH&&!$ zw)g*f$U$Y~!Gl}SCBr=)>W;IP6x>#fgsPh=GAi$n*gWa$x(y4b)G0Ns-W>G)Iaf>gR5}2!v`awIhid! z`~>JKf1g({W^B*Zi-3S3C_W;dad0NE9jn07GXI_1bISbq;f7N;Jr{{Es&vCRv9bUd z9AZr1lF)_W`tn@;;Jv^CZ*xe4C1GC4kab)V&c?pR+pK>ffNM*pj>s$-vUXM_%Ev^m zuVHkE>l?W+jozmbqg0?6@r9d~Q(`8!;7{^05+{Q=O;EibVFg|aUucjZ|DU$tz~%!S z5`R#%2LdzmLf9f>pM?cCJw%L5^957Ig?@NwiCilT8mNzO_+ho<+G6*vrh6P^>BpkI ztJ;Y|spXLvrbdj9J8(ef+o8a&VT+^cy9g$3T>ryLi3uYz;a{2J&guy24!i*mH0Ew8Tdmyf_s1% z2<~*MhpN6IBLcUXrE(r0E5T(hdk40NMvB|5DK3yH&UZBY)Kl=J>bre_yRte06_#|! zt*45l9vVZM*JK1ahIF937^G#3IZM(@4(EwTnRaVIBKeDviuMjCf>#jQN%>d!b}0?J z(yBhRV+;+vY*GL@g+6_*k@{P7zC>8L0mI8b#N^B`s%xlh$ivvu@J&Y6>HvjD@SGw) z#7Ko|*(ePb{AYh;~>i}N^mc~W0-0nv5yIAg%@vt9pyu}(^&2oJkasrQ9 z;N;rJMuGyftijQ;21Uy{9+_lWFBr+~(XwK&xd!Z8q>hzkz**K!MuN3SAnG+FTGl1e zvht#3U1TI@m1MnQF!So{(h z-#3QefD!*Q0_e$#u05=B20oebEz^+D+|~*=o-nAoe&j5@=pNIQ>ksMAVvSm+%`AZJ zSN7uwA5bR3DC|ZWhGo~{w{iijx+kVr3efei`I?wsfiSL($uBI5gUk1G1QHf)2&|0o z*ND#(q?wYn9jaAu#sgWJFv|W#zzs$SGc^KNOW<_`US$G}=F?x5K==z>GNIH28a&tQ zB(N`mWhT&In0|)<9<^VhWJ|xi0*T2nrM|Wjv=!OV&&roaQp=UnM%a7R;L=n{L%Aw| zN_}%+6e}PH|5PJuW&K=4+HgCZWA=*Uv9H7JaE6VMK>r+PM&Lq9bTE_NU$uJ+5(mJy zMM|Xx_CL0OgXrj@Mij{LYk>itPVi`gNpBSVX9IjK!D9$cw}P)Rz!wwDxogD~{E6ls zXn^ShlMg1E~W9^C>X)%0kpBBpwo=&Gz$z12uqf`pxb-3It~1i!-EQ}8EBOn(F1 zgW%T)=3YGt?rwnT+9>ckAh8i&{}DWsQD7uOQPN&Az}3vniQZDH zc>?CWGti9q6~nCA?vS9X13VOpXYp7Gx+JiXphMPNgCyv*z^6&MP8A?ey4b1)t|lDZ zh|(#xvaQ$)oA>6hO40w`cm(_F^p4|T`lF_<^R4~?Ibbgt#J8X<xXd2t)>fKs zZ*ug9as3sy{u#l4aO7-+kSe$v%SGWE;5M0x5i%9Mm&nlWZ%r=>UqwSZqM>aF$#miZ zEQ0Wq8HMgMpeU=^C@Wn*d@Ee0^g~L$4Iy|!5TNB{_uPF?-r$>WcdPES@=$S4kKtQ4 zR16<2nf8!x8!(VZf@RRAv9+t4kKjP|p#C*5$;~tGDw@-kSQNo(l3I4X+twr0+v9Y> zd%Y%TbiiB7-dS8Ro7aBfPNmoh11ON~)U*nG0+&LqMD@|3$bucBcA0zd!9U(9%)@tu ztr9<=?p}}yy#dt!=FBPI2tu26j%gxFYEq8%$&H$UIpZ*aI zOlH9w`0?zv{t#vBqFzF_aG%r-ROIZs)xW}R#^w0Me~_e{%xEyv2to$)MG)XVMqJ2O zj67^FINdNpPIcurfE~V2KLiIOwq&X_%+U`v@G8Hr0C7Olh!6iE$Ql?y){g&R$4$JX z?tVetHZx6Z)r=ES!p8zm_Zd*AZP(|Zj$9+W^C#mz>g1N6O=%IcCm2w8qF{ie9z!*# zCw7*nhtffjwo=e2dW}Y+;f2I3-oKJu)4vpT*)IBU50pt+H9$cL(tl|pDe(C|T6!*+ z+%f~ZXUeT?{oC*>*81yjk*yz{>$%`Jj7R%He+so`BTwo&>gmi+Uy1s`zydqQuN=PJ zhn@X*K@%Aq;lKQRM{6k6a~zHUm!S<{>9XfAj%x9%R6Q`8M(3E4Jm}gvwDBv4J@*^~f@Qoythv5Vqm|i!a9V(w#cKnVU=fKBx(> zOu5))|IyX|CoeXGFmnw;aoJ4M2s?i-b5CtXk&U_{=-#eBiRu;xd6yG()Zxc692rq| z`&rZh2@6e1Jv;pMoR(7oS)7B`%*{ z4qNb5E*wPqzB^2ca6J_I-ObC>kkAQtKnwC92XJb~gARChW1A8@I^I5qF8Fs-J7 z=&$xqN~Uhb@r~|4p$_|YnER)Cu8YSAw?YS`(Ys_HD$6)aId81C#rU@a;J$NnkZwJ@H#ve-6hUTzk60eo8RhL+V?^siIM?nM2sHinnEQ#IfKD z99ejn$m`yE=0ef;^l>*~p5oe3pMVg~j0rsRZ@i)|!kaD^XN?gF4@5noNAvS=P*{3i{iaSUoY2-05Q z@E9fc>SZaMe)Lz7tseSOoBldNAU8l|?uthI5zig zE-(f>&~1n+wCf93r9kD$DtN9K#vS=p}Tw9$qe z6(|~RS~Chd6cm}YY-zb=W@W`1wpL~XgUB>a;%cpxTU1tl%E~R5c2uNOS$InTMzbMF6h&OP^Bd|amv-vJ+d#bn~# zH!zSJ_&SAe#qySny?9wUUeEFNpSZTQwY7?bAd3sO+@T>N#+1(81)#Lmg2i!BKMV^U z`3ZPP-uSa+UEWcPP^)~`q3Rt*)@@$YMoaY7ah7zb=)1a=hUO6my~Z?DDGa|P#=5B1 zjDUF_BnWR_!|<8aa8Kw+%x=(5~-ETD==j&JXD==B?44GBkEn0Mp7=dLR6-zuEHX(;#^Gc3?7xKuV?*!kPc5;n~4NCYySgY{K z)!%m@M#nZb9?ZaZ@f%uf4L(~Aw$nFf`CI81_vw9XUq!$71bi||2E2T%Pp)YlNM>J*UJmgAZCbL&CsphhZ6^jiNp62)z?16spA&~YA-E(2 zJbiKL8}MY{G7#H?T(adsa%@@ZCFfOmi7|`WVQ$XADbZ#-n7K!qom={A_yzbU;cdp* zF^blIK4yDqp_usgpy{;Rll&2GKPrj6?Wy-oYP}IJ>;+Xh%f>YMss&GfBweb_a%sH$Mmu488wOLcFLqOH?8hBI}uL z297+n6AoZJgnYaukiFg4vX?Gg463#1fOUTO`CwQeh13N<#f*s-XXJsOoYeZ!16toz zzB0x*rF9;hNzaZGkd70Oj)R4?j{I4=`^-EU-w7-tO{a#f5=pxjCfLeFvatIIncKy} zD@I^DRWSae0~k)XHj? z)WVhnj8_B|0MRW-FyA6rY=P4No}mb)0HjC&+Ubhmbbv(w>!%8~5TJh9WPp{5b|OG7 zta_^O55FYzjxTo|Fa zi~)+%JSbMnSn$dp3}eBIfRIKR3r3G~W;!pu60re1eLdBq|8(Q!Go0hb({#}2>Teki z5@0yMdkxD0-n?=f7>68{}~Xg(|<3YVp|2w0B|Uc|DX}N;AL3EJ?Wjq z-mq^k+mIi_4uj}^s860A25pji2QMhVfeM_k9oPWN`U;Klurjf=HI-Ogll7H0P~PXt zwTi?-=^r!Fjnjxw*1__WuRA)hk*lHgnBe>bbrT!&y#K6BHx8E}#ljXiVKsa=sNvIN zuwPu=#Kvs)pO@iTJ#_f+jDjJjW_bMPO~yXk={aC#TBdXSIf#f3?lJpT;(z`jgq8uS zL6d+ETMm#vfL;LvTxo&JH5l@7G-Z0oYAml%*-{|*8vnZDby=`kY0gTM**wv$9iD0@cwrDckH35m5g{+wlpnx%Es){=_yac10R0S& zjp6ThsfvZuV3yU{ncq)tzGYRE?@&a#Hmp3)@7KZ`MYNsot{(0jopbh(f+66>iLZF7 zholWlD@Y$U6o>&pG)m-Ql%~!HBNwwRd8%U*aOn-mUtYkJAunYr{s2zapb-ce72(Y? zacrn@5D!9L#?y14Et*+!U?McLBsb*N_rV^2c`j(pHns=8hbEoem~~HGh2weI7!LyVwnIzxQZ!5-u0y9vyit& zgCXx?6RI>Jgv^8VL`GHuDnzN7nXQ1S+02C8n3-4(S~If_xConca%0jh16|0wl;6NF zgxCE^L`*E;j-ZFG(uF<`hEy@+3}#A#Xd=5EJt5 zus|nUvce89K!14xKqG7CF4g?z_FJmk8)LqhIhwq~mLs`gj{N29BN!5^&?V5c2!;W& z!GT>`iPO0~zGxur2;;|7r36>uvjG8<_u+$sa7s9Vjz~~&1r=f9K zLx(<%pyVEhik4n=Og!S2I~UCFg-i0keJc^SJSF(Wi6BWGKWB3dqNP8!@?6|yJn`kx zxMa>=y$(UsNA|mR6)0W5PCeGeXzBWM3FK#r?Q>D_(x3aL9I?hZCiQ>fRK`oMoANwf zTJ*)t61;8JYdPa_H~VjmPwIH-hn{jh=u1IgIqyP1<;>2vhaookd_W6FC+m3W7rb$k z5iebH;v^?;V`0q5_&k)P#H{WdG5r<1xgJlGX7zEYi0Qr0x}z>65!3&1#49>tdd1}* zAUb+8==!%UMvB(}t-F5#o^Anj;k5ezaR57P%3`E#0rb`60Y=1h%~dA3$`Y=mK2^;0 zWrb_cFop_*u$L|?vE3zRdcv_=f$Ptd-`!NFVy0hwR{QBHX8N#K|2`@tG1I5Kd>!bL zLHFI5d+;;`(AENQFEP`{ZJdv^X~5m|UYrXp%L=uCh0n6nXP0RHejWrf%K+yL?6PpB3(+;%2{+d9QoA;bU-4Ms} z5tJ`VQGzH%A^E5@6{vd5*`~Gqub6tMTTg1;bIKkKeWf8~_uhs(Na*rL#Hr6yc5ldH z=dU%^P!66cYbfErbY4SIS`YMbXeaQ7!LgACjY&OdO!7fv(vGKfRE!fv37f(ljWAub z2S#6bb0B} zljDBZ-lK75KP%h6Pz+wg<{9)(~mnekBtA9*XGr8$LI2kK{(PSi=ZoBob$dknH) zOKlrHM#bzjgZews^?5`BU&RQHX&{$?U@DxPR_vlQccX254==fo;c&TzE!$DlALa-B z9&EhP;Sj0T(u7q2rn-J^q>*nM$&`m#2O6!?i$AV)fHiqj65fQJ10NsHK>qI9H;}JU zj+23#y9Zogxvd?lA$!e+T$P%iuRtP1=VD!Wc_KNC36S2`tlpxY-8cKc*mL#cNR(@{T;MIOhO&a zZG$Ko9*CowbotCJ+1!CF$dUN3r=pD42Tqjj%5n`H?m&D^K~D6>%6%J%M=D-a@R zGzyy~E8`%{l>@T<4gMEB{!JeL4$PJAT6msGV64(o;pq9ITe0_1UVKAt;7HCEFJt2` zc1gKA{+fmlV4cA2tE&XDqiBMV2IjFCd{r$hftfDyge3tiq0Za}D`5*($lk^3K`-*A zUVLaE@7=)pEde|y+XL_jXN1cu@dha4PGl_fD4|0ifQ z9)F+EygjHKHpvI#f_yfA_wCi+soYb!a|3XJT`Skn4yg7 z;Gi)c#lq_*gu3MJ^@vvMxRTF_V2aPjld0xb;$oqi7$_5u8VMUat=<(fL;3z^Xem^`W2~-h9 zSAkFShaph`k#_G%twmTQW#3Zr_f*{BMOywIKiZJL$EAAcMb#MoD2pe=Myyww+k@4L zfaDo{KHQO?mg|3-49H3e-l>fK#@D{aehZcvXm@}Xqt}kr1**!zabxIXpx97-+nVk3 z80_yAw;zsOhz>Gr&@Q#KdzNrkm;BR5vf z!$NHJ$%TOy*I&B=%08Aw3pg2P&N zviLp;_eF_g0vi`Tr4my+4l1MI!`b=DN4UQDoG34#L4k~MW?>J1U{+j5KBA6~&Cm5q z><~7ds?dA&yRX)0uR`zC z=m{Eqw?coa(W5kal|r{^^lvr#WuT2}3l956KTXh2!;zo(5{-*x5F0OiKCY?X*64u> z{h&rar_sX|x<;c{Xmq|pKc&%kX!KPI{SS?vqtT@b{jf$~q0#p$^gSA#uhDNR^g@ju zq0wI|^gNCJjYb~?F&D*dpbygM;}yD0Q|~-OWj-qs{V$E49Eon!=-EUEBx)7HiOFE# zu6-M$Q0v|3966z}8ucns3xTSu_$yBQ_-rI4VsSJ&JC(inVxx1p>(X41j@JHWm&4I| zCf=?R)L02V8yb}$-AZtjnIK>#*qITPV7Qeaj3QHCxX?=Q;K-;1r&l_1S+mJ*{2s65Xxwa6ze0x*^$Ju5ct~L|=YlNAH757Ca7;PrNYmL!Nedr-8o%2zvC;AKW5$?lE z7i)f~$VzZD_CXk3R}#cpS=j{nPkmvGm0%!Fl!!>s%SupbCOFheaCB8vg5O&eew~@% zgG@8;74=aGPO}o6ZYEf1C0N)Hl^}MsSy%^~32wC#%y=;>K`$%8yD>(l&$bd=zcDJo zNUNtlW+ph=N)Y>MRDw}ff}4;4!cF!SBKy>0;=@k$akyK(voD03K6s02qA#6lmdW<$ z_hq=vEdGuRNSj`2CHT|3Q49>T5`610vUs(X;NpKpC2*W$exb=s@Ovx4?$)RTF=v_y z{)PmtDQ4%4vr^rHk4H2g$3;e}wkfUOm`!xka5L{C<6(5yvx_uQr z#Hb|4nn^GRo`0_r0{ftma;6`IHUjhq_bK!aQ~=Rje+0VzatS^feoLb-Qs~DudYwjR zDfF$d=TX3X3}`oE4Nww?KRJwP;^fO= zbN~rqzjpHEz#^{CCqB7|EATNe=D|$-c{rsRu8)7H$GM&STM3IweNOTEdK7(b@cdPX z^HhakGc~Y9Ab1Nro`ZSVPMw>KP)u3Lum?;?Ms(neWMr^Vq79tCQugWR`Cr2h>TnBc z%-5cfICn1_D}tW6%jeN+*3%Gn0z82reAxk}SlGb|TMw-G2rJqX6}Ac3REzc`fHvmA z;d(M=@U#=Iy--HMys-6!ksI=sCA{@coO`Loo6~ypvFdx|?Kc+oIE5u|$rko_fH1A0 z2I5h$$`DSwUxf?zx&Ac+K1VyoE^~wuFI6f+aM*aau$CKqs1UU)g_h<26l(+F``7?= zLuK6tdgTU|^G$V02ct&!4wV`WNG+l=S*KE!ABWF-1`$Z6NepM(m%^^@zBH`cFAdMVr!;PP?UfW;$(9#p|g_*|r|gT!(;JvPJ+uU@C|m(8p0b zZFS)}_);594M4WJ+A`aQw`H^qX-jK6xh=KrcWo(czimry`%Rm(?U=TKZNF+8&~`*y z|F%QhlG+Yw>)Uo@)ySB9|n><<4MSHu4<2OB+_@4&!V3#6XnADI(F zaj`)A7}L~&)C+a$IwQ5RJZQ^8lpP^T-`3vI7ef_(2PfR(ZP!)HmZb1$cpF660+foQ z>P=L+<;!PS7d^@k6va8*@}_O8IkZ#qAZRb%$4D&4d$0lQd{~Z_ z^D#|4FfXU0(qK0siodpDIF(qQTV#iT>_E1n5LRW7GI)3@B2>}rjn?y4_+Q|HacX)Y zq6_OlJL?-(OMd7;+ByO*CyqkXn-ci6+Tj@BIPSnInqP}C6%269gk4DtBOMiR?H4C- z?I)?Mrm!nMD055we@ z{poPf?S9LjR|QN>3~cw=SQJA9yJp~dZPM3zxdw+lb1_0?#-&NGszUWLmVQwl8fZ%` z%s6U`CTlyMB*9x&){+s~j7IDir{MV1nOhNy>IGwi8qr&TX7{-pSLtIetG^iQ0<7^U z%XSi`am%u;E#|uJ2jE#$-5Wg*@z%5xc6z-;MS&E#$`43vN*!)PSUnaM%KL1D(pi;?kQjp znc)fqc(lqqiZV5D?iA@TzVBj-1|ic&A*pl=>5mldYI%!_vEHHUjeUPoM`aZr+xmV$ zmKPXaU+vbgxAz|c%Q%7ls#^sMBdS%fTOScchOS{FW8XBs&)Gq&vSw4n*@tW+JK@}o zCg;0lrz7!>dW3fI_lle?x@f-z`)I%Qo!f5|lTAHRtn87Zsz-|E9x1l;NYTMkR5oPAGWRGTU6;?0reIITwtemR=E$ahdgiK0kMX^!XshswED zm#mY~0%ue;+z^Wc>}8aoZwpcza)H@O2BN15dC{R5PmLZ;{{v8~(ZT;^#7C0ScVQsT z`BGAicw>(Fi2*8+DG~JW4X6DZQ6a&DpX3OgSFNYxG`V_7eGCB_4p>swYw}0Wz|b zh^>fv2karbv!V7Aa|3QywUZ6t4M_8o+!2~B9E+l8GrOma?7@Z5^sQ>O__W49p63!p zA^N|Lic#RfAt;U6iyV#Fe|7kqeJ#D*{@088WCgE^Lj>Kd#3x&!3pS0;a|h>UqDT0% zU%>s#bStB77|Px}9N19yk`(6c{H6Z9N<3L68sx(X)Eqg+V1Lq~2RR)4Lzo4e8@U=k;-Hh>EQSksZ2fqtUgLhg`k9Q*dhdd{Hy2~ zTE7(2!z@sCLSEJt^6V%ijwg95JOaqQ*^3bRVzFC!|GI-?al%aF>^l(ewUz~;T!jw= zA@=YpbvJNJITP=3np`3aizSe-sSm%8ht%fo$5n+4FR)qBq*e`k#2eg(9vn989F$wB zBzw-(zmGswvF^GLjtF4)RNNWXNNeyPg8+D)shWz=}hZhu@Td%LtIQNXsN zf8q|WI0!pz{bQy<{gu2&?4yma4<&W(Ax0kb&_19?3TKZLDLqo8^+=J~BZaF+3Qvy| zbasszF`~+&phpU>_V4>0(|V-%QDa*ar`{gFQr;lO8G>y3JQVdp**MKP;0 zg<*dh0OKM|P|=12SX`qVK`Zc%K;AZ-NdG&D6WNAEjIR?f2HdY#Adkjk{Rk+W3ET(1 zqS3hCFfvB_hjL#26;I;6hwnpRNlZeVW0yp*%z3i2wc}95B&;2k!rV^35x#-+cFnUp zm=kC;tx%+jmY)JPMkOd)Ee>nD#hE7(fRlmNJT+ zJJ8$T;QL^2@wfdQ1K`|#CAfjhP(9L&A|}uOapK%nKzaf}A_MM(#3$W-gK;kZT(&LG zWm`D-pZsgC@ie;Y5F?)l>v{t5@n95ZSLXP!r1&CU;A04j4oBkcQ*ndH)VJlv#k$M; z_9hVHF3;^9Fx%j|bre-Bztw;k@|dc)0xYgO?pHkmJ;JA<4BhkfFq zIq;5VG8B*u=lY)ue}E!z2X4RtW^m%)8lHjJN!VzCb6s0cLoy868xY7JFTBWnVV?h+ z#JR`dVRm39!WDmh7$Q0i;<wrrFGI zX$ew!{8AHh-v&7!m8LztolM-;^d0)kIa7-^>%O2Ho^86v#^_lH2@%}u2yJ|e}uZNIX zwA3i;z+5)Fx%K|WIhXt2LTSD1Yv_f2%viI_y-b>5?q$!XKQHz1I?4q5bYICye6l?^ z<_q|;1NzeAdpQQ%1JgI(c1-yo1Sm&5vW|7`z@QOt&;AS%FnGw-Wp8*!Y?|HBnu>*M zyh#@r0*tjD3rx7;$SA){tgY+~zlYjF2>R^w&#>!c&gCqrYC$2S*PhtfWAiTCwgx4P z_1w?U*5Z!wwVyI`Fk+w<EdzCxyr2tuVUxtNjdAL>!EAz$rP0k>(T}dyqTg!`U0$ zYxxd7o&tJxb_QbUnBJruhwL&j*6^_Avm5&k!lQ(n4NN;kz($*RruiV!6^zy#z+`${;0M)nlF3(*T;|}J;+}8IHfU$y%^M23^H@$!d zf_Oz7tMKu__fq)YpjXH~ZeK$@k3b$#KVwM*M=|86*9?zv6dpuwHnrQBDFHM3yXCnh z7BeM8dOt`65=UkZYY7^+-|P<5!mSNKx4%#qu60R`y7-rALaE9x3Qjy6?8JqeqIS9x0l8 zq{!^rzH1vJ(t4zzU;4iD;_8v2y+=+RkurRR`7@-~?*pgJ?U;3BZ35qzG4T)iDp@;#{!q@3P07I8kEK0L%{}i4+|Tzi);J2OAu>;`n9kjo3j?IdmUjS3g=hf z!`KlY4qsi1*b$fBe+1%E%s#&%MaPaP+4={hEJeD9?^%Y}4CR1|p1A`t9OeU>_Vk&E z(m(_1LC<`C27(;BDqg63{FX}1}TP?^6cHnQrV~3;i41i$)y##3mm^$@g zg7p9!URX$QJ;0PXxwQbB09I7a8U=78z}F85uLa1Zo6l#@BP|#Hch8(mf-L|)eCXE% z;ST9I=7=-v0JZ>ZIjIG-YL_?Kt`3H9!6B;7>cJbIHsQ*rs4`5G*!f?dn^W9aNsyxS zuJDVfWM!{flLD-}E}#F`G7Srz??KEE$#E_Z%qSYP$Ag3R7Bd+RiID&ep_MruFXiBj z+gmsCoAe56VdYWWckIA-*~VrA%cn-Hs~o^a2rR;-c+MYbRsg2DNqD&pzs!cOwBeW9 z@Jnp?Re)LAe9uZ7z6P+UOu$#!@at{#^)~!Qz*F>lnrwIm>vC!Q6u|v8JY8tKsI}5$ z#_Mt(tavB{jBKG~_%{BrWF`Wu0$VNV%i2Tm;iHehh6Kd1x@l?oHVAVWH?N-rL-J!8rtN~m-tP{9_rQ)-^ChO}2ea+?7 zQ$=c_^p8b^D^;7pawmjm9pb7qL2lY(W9r@hv50Y1noOt8V0jXpKuj9B(KH!3zQ)O# z^=V*&GU(N4s5aKuGv|1dgobiWltQYe>_=7*e5aDUg}mkD5kG)l0R&uWfy)ihU(WHt z9hfi8F}P58{!Sur&F`mjBjI%xYbwdYLNBvmP|1x7!ox9vmB}bPV9HT93;)8c2dd82 z46LV`vCxa0De3kQXQRid5N89>0sD_GEF4TX9`?rMgAnP=v-(e$U48i!Ns~X)v)Y+H zgs*^8M?L~*c~To)XTrek@*tTj>*Qgh3o*E|WH9iar<4JYP>ki?*4{5!OD#E9U4hiLD( zxYU7sj;j*f;5Lbgx5)(Ja;dKGxT@X71|9}ho}!uXr(DfUB>^p-{>FiOW6?5pho3vZ zj6X69D0A)%UxhpBDKbsAP6ZjCMaCW!O#;qS3+CfHq0t5MxzK11YG^d0J^Jd>*Gzp) z)7KPzb?WN?eNEC=`Tj*s%n0>kE*{( zt$zi^s^wDLS+(rdRHj}ma?r%PKog9gbYFxVlpZMuvFJ$U`F(`U^Th+I(~8Vvh(=1_ zISLWqR4$Cw@kp0`oSKSJPn zkjef};K88gLbqZ`@1MZKk+l+kkpj;ny;yq`c#gkb1fChs?^ECz);nSbyFKogBkPP#B&1+1iHO9xQ8j(aNSxuikdf*k96?H;b_^NGVaQ13AG#uCBs{6YbBE)q zuqh*TEf-yXhng@SgCZw3fk~~CfwE@I@wl^Q%(FrEi_`MeVip1$)w(+ zIF!{9tHq(QfPU8E&>h%LN2&Lvy|G5^mH=hdZV~RR+ARbbpV{T1j&Lr#ejw?b^bqBt zK1!U-8k!EX&^%=onr9e=<|%;^#Mfj{ESje+L2uo~o;{C3k&=ZD#)p825QTQ7EJd^S zsMei3Xzq)+b3XlP0GH&ePrP9*1i{!7`{0tgwe^lsu>GtEoP}o@C#>sD+s}1}jyc^^ zefM48)*co2u-*1E_!>hLy1pt>6gmlwIVVtOnSSQBE$n3a`SYj)88-C$iLgwKEBbrC z4K)4SbN(eX{j{7^fxw_%^s~@eCuq~p_Y;HK^mEsm3jk47m~z_tFcDGBo4R{xSEio_ z(U9^2&)O_MgC{Pau_lZ(ED?a)0gSJDk6=B(J}(y&To3S;=ApFlGyyzz(9V$nHv)X- z)OLc+08?MPinOl*y!8GH49m|QujMf0H!VNceDXbQM=bzjYaRmaJcjq9nMOsyoU}*k zONl}AdX$1*L-pFFpqhNV$uRrW@hv$jvsi93jXw7=ks$*iDyKI3ybNX{Z9ZNMj%Yly zAuZsUW$~G38GPoI;vs(^pc#eZDL@Jp7(NLqBZ>nBFpoAA$H21>0ce>}Qh=+(A3ih@ z&y@w`g72jmRw4t4I@G0p6a0pkvt?L1L}}xa-(ZH=%yihFf=K#TZFuopmJfZ2zi$Q+Q~HgVY)!X zVl(|xogQ(N0o{PVke7|L5`QR+NOQ!6-$~xPpPY?=>z%C;jJy65tP#HxYs5U$7%?5} zgBQ&Cp8;I%c{2+yN8PZLkvq<^$__a% z$`DcMQj;t$eI1T^W0J*GswUZa$_{}CGRLaWr}Jor=xU1X2q)dH24N3a=IA=9b#Kr< z2JgU~H3n~Q*JChuTr!4I_*1Bw9vs0&bBT}t3t}8ep5US+d=Uq*iBW`5E*_zcB!zta zO369hLv;~ITi0O4>C*}Mw}lxmhjN5y263mnSQzfQc+M_L@Tf&aJ*@NHiqo~Uyx zHgNr+{wuiX@XXeRui%FRw=+?{)r>Xq|2P}V;n3T5z#HkJb2BvBFDsf_yY=yY6 z!O92DG{NgF=Hc%n>?=0mlAzdB+1Hs?UNh6ca5XDanQYW93Rpno=(F&*_r^MKg2jRE zU1f|Dm{gPiBV{T@EE~taNbAl;N{TrI)3IsY!E|g%G11l?7uoZ&N*K?>9zIS_O3R?G;N>KOwP%6 zX=Y=Z+$j^!JT88%R#MHW_+YeDGjYKKHmT;#2Uk+6x#km*Y99S^JXf>=(?5YYlX^*? zvnkb#KHWp9X3*RdDb*yko(ievm`4WG{r0?POsNJM?RisB{g)ktwXMHD8IS37)yq!Q zF;}$yup3<1r5X{eq879UPyB)lT3J`#N~vbf{OYxkYAzaGI|@?GwHXd9S$WZ7O0FNP zrJCCY`Lt9sdh$n*dFJD((;cH1w6e!NWk@wD?0BOrXuX8?loPm5_d`q#K{Ci`Gr5sMYQHR;sq?Vu;l=OBteCRHG~{s4bcZ6g`8Q6b_zhuTTB)$ z3zG(z4Ug4~BNMFZ`;hOPz&tV@A!~U-u4F9-6IN69;&_U6BMM6%SxAycYE@`| zq_Ny!Wewgz&frdla&|qz&b)MkS3dB5_yLrrvKYWS|Gn_{Us^nRDSdGM3wih8zhaY& z2`?cpI~RXBHGD*5uD?=?i^!w=z$^O#`^Fz6j1tYkN1shXV8A)cj|pgCiR zd$Km!&RTyEQLG4gA**QCM0{llhP)n)1Vd~^z(}F0Pjl$t4_GeeX>hUzQDO}23kOWq z9ETn9xRhAq5@5+!A)BwPT1tsMj}=FwR=tIwL9+r|^i)+PRs~2(451e^vLb z0R$LYN@Dx~F1En+7Fc6|L2ola_{5>ySh?S@>{bfu{qRPVm2??hcFDrz0%>~18$rZw zA1Y2lX$h0X{mmM@UsdG&2~v{9?Z)>)#XBs}Npk!=q2d7sSasf6Ir%tv20Rs0)9|bw zo{?5CEPaU6<6oExL{306kb)cdnxMJdKb?f3V(KaU0W7k>Tn&bb=|jw4s93_=g8NW0 z#WNPRJMcHEZ^5Ue%kCZ2@HtK?8X`B};gllZ);<1(lR*nQStWf+IauD;+Cj))o(%4gBScS;AHY-#gt=0FAurr3G&GQqWX=ib z2W74u2Ni*~$IO9_;XN^|;6HmECM2qq2ydv(XMK=E$V<&YcD=y;pH(SmwV_wa#7C_X z&L^1oj&Hk=6JK0%UZ7}$Om|72>%Oa|yDOQ8zytBTAD6q0LVu0N&N?F zvfAr+?5!-J_rr5OHRSIMU@ZCjx9YiGL;sDYQd(Bv>{Q>kaYYCFzKxlg6ykvcjL$1{@o2<0QX8mN38W?_S1$|ya2Dn3tSDK56p^r+4u1d z|BR7j$nF2u?O)gSYwT7X!Fy!J!_>$L`9f+d3pn}Fk9~9cM7OM%Cb;yw{noBh?XB=f zoE-~=>=?T~3x%wEeb(|;V8!!?VE^a?9cQ5T1=h%LBAV?zpBS3$-vRxsHQVhsE6p|; zj4B(^+rU^oYa{N^^K{Q@`dB@S)NGf{;y@Fhtu$MAqo}4%Wv@qpj>AwZ_IeyR1@p|9 zoC%~}{9C(fn^qEKsGou_MXR)OoR?{+zx%Fgs0Ffq&1XO55j>B{fiK|9IrH zYoXE({%jIe+5_Lbj4EyXgNH(;U3cVf>%7m_n<_07S?~FVq5kfNA`SJWVGgo3L;Vxu z8af&3Js*5WmG+9)AE8QH@WN9x)Yly{kSgsxA0G_^ycbR7s=UjzN_)rU9$a#M>RzSQ1XO7`P=mH>m39RPDnJ2(<$8t#xXi*)WMQdnbD+d~sch?9C}o>VHL{}Mh2#ma zP!o8nQjnq&f2gX7K&lmmxDVN{pM&OCGM)x0Q|DIN&G8ivL@L{V{fK?sRJPlYynAJv zwerK1ZK1R)+e(;~Lq|&!?5M}KP8<^rDF)l+fwV+rdWLqlR zIcrJ4N4fsxOMrlcTaF8V0KEbTxY7bSukz;!dZ}zvCxc*j=($R;!@zUm{Yr)O@{b%Vd3q-#Us^na9xlZ;@nFjVe4*jQNkT5bFc8yAg2l;ip+ zfJUp_nlD4;j?jhjnc>j>DBmloe6wwmFGJ=2H_FFWw-?yiDg-_IO0>!?Y>CP(kXE^C zt?FI5zbbcbaCtNH6O2Fg9NI?FL_Y8YmNu*;61DmVlS^#)doR4Q#a4Kx&h0gIZf}3H zrLA-T%=NEKzy-x+>D)b?(OIp|dUZmUDbHZyYD-luPXz)eFXI0>XP;x$V+s&T`(8Pn zNkU#r`}P(A!ygWE1%!+N$~AGO8t$D!Ts)sn1N4K`Ivn^q8MHmBb)XY9+?x+-a)3dO zY8@4AQoBR>fU@m;uBIzfghvQ(fcRC(a8xY_g}7v^+|`}0|f6NR7V%7wnP({sW zkADUfs|G`{!X9`kR@8kw!SPvcf4je-?J%fA*fb4&?M!Gyqq97|b<}(K5v>H(t7EOR zV(PiCIX2p3`xG37iGl08hiz+m6xpG(P-KS)iT`<&*lF~YZih!yeYg#XJMeMR`)jUERE-lx4P1Jp1K+|!T6z%Q*`PRt?{HA8V?SWS1J#Q zA3Vyg@SHI-O5wR4A3|@5@J#yOQg{|1Oo`f+_CHG^6`n=!aQyi>C_D!UC$=@bpMk>j z%9~P0KUCovizc?;3Qs>K`agvSgAF=Qj|xu@TFxaD#e@Dwn#X&{1Ekn!6UL2|AjMKat+QfaYTg?79wVWr} zSZrEOA3I3j3sYgrJidoXR4<9KP~6~iI(#R_XQHCOyVK! zxr9w5{y*&!E?Qz;PJ!cPI=&!(F3nSdEh#uZSQJxXED)yoyVizTMS*_W>5a>eVjT1R2I0x>1lV7cO}&7-(n@yXHi zxLmQN_-n+J*xfs^?&7nmY|9m+HjQNGN`x=ouMxV%9#i6VG@hJ5t#BbBCB*G7$^%a? zSByUaE^*_E8b?N430!W<4L>;fF01^>< z3CifXu|#b1WwQY~@nW#Z>$%SNj})1A&=z7rTQsd6&eo)fuIOzu!bDkolhPUJ=rq0PghoIX4a zIT@0MoD9GRk%eSjPz_!uu4%TKFqa6htb&SI87EmN02P>Z;ldxlObhJ70T18F2Z5P| zeDToIp)ce{ahI!zR2J$HQqimoxlu%1l|U9U;J}rhmWfw$c>!7Q;=(M<##LoOIzY&0 z2-==1)&PSw!^*XaZ^4n)xTq}n7F(d@oaZy0^ZdRQAaDm{FbI}2@TKWCDmPs0^81!6 zBFRFzsvW%|CO3*`8Hg}qHRGb3cxpDV)EE)tqvs>~;pt6QKlDb*;z`I%NLCy+Lc2j7 zaK(YYoEknN626lAyZ(?Htl}aA=Gx^Q)L>4W_5RYaKjB+{Ten>iITQ}AqLS8OG zDCPoAk0C7PvYP(Vs|5ta_I zvs8*y=yxb35NVb$ktmjA9Z8t;m(!sRjMd`;7FOcIAHd}n2=ju0h1e`VFt!aK82dKE zWNf8oY+xi~GaGGXg>?WK+R*P%ORB6=0Fj+M|0lWrDtf`;LRUMm(H9r~02&T?0K4$m zgQu&DNrLfLSR8SQhqZSb%0?BHc)5PKfgI^RG7_oiWQX(lyz))oH1nIj$re~)f#n)R zl34(;Jo@#}-c|?6u)AK%jcWTvphYiI9b^Z`vTt<^(aW& zM0K=17fV3TNfa^#AO|}L;6iCNeI7?Z-9o7VZ@S^A3&G+d>|l|;baqs9V^mGLq6=wm1)?_ zu)|($a${yB6|`1{WeU{=r&=z@-*g1W@wn^=f3uJD(5)4eVnigjvpe`t(=P;Nvvo5*)fC=6&aIyM?QpagrXZMRpB+_cA5KlbROk9rt7w;_CNOg$qp z`?evWQKJ==Y{IHUN|WTKJvNHI1@x%dzTnoV*%V!~38+e2&HkyuR`6IHxk}iw(S$4_lb|qAB3=Wkp<+E&s z0V`9xZ@qeTTkXCr>uz;>clfX4SxWDRUs!9{eZ0U}cApvQxwiXUtEmEGlhHAY5&~zZ zz-xKtfuUHm5OH1gwZ{}43n%8Hfq}89bL)$a#`^cSvA1pu{y8S`!6yHg*MI3B()LCu zmJPV=Wo18VYvlJLy_qY{gNphSyqWQ~9DlQ3V~mQpJ{Mef8+8OJ7CT z%Yl_c->2xSQ(p(@Ym&ZVFhwne_#dx_>$QAER7HGE-loEmx&1DeT4x7@b@up~Q2kvp z1>x%X80_T)Jz0RW%F#4%6%7+tQ8;sgg`O%Bt>)9#&G?RQZ`{l?h-Z3Esz!PWS-?@x z>GYl|60Rmi>+N_PoD-A&j=Pq+Y!&~dZ{Cdv>+7=p`5yNgD!Nttr?3s#eoxliU32<& zye#p!UFBcC`XRqB-}M)y1_z#DyyScL;5V}Ug|3EAVy!m}el^=)Fw%74#?pV5{{=O| zX2ra~oi4ro{p=p;+5`Hn?Xvox`*#SQM!Yr{#D0heG)*h~MYsVxxY`)89s=~Ub_3XX zwsHeV1*7aElUla|WA)D0aEIQjduKEDdrMD>uqUoK3pBy_TON$CCl0~tzt|J8`Y(3G zF(f+Y{9cZ!p2TbGrzRHGXW=A?Tg9fRtcQQW>!YoQqYix5W<3vewY+9@4fhcU_A`}?c}#@B^>6@aGh zUT@gxIBM5%&2Bxo)u&*_K`_Y>wZ{)peKYz4pyz#v#|5iGN?l@@lX#!gNAqF!16ZF@*)xeJ%Aw5V$UDtF;B%U!r^J+MuR zw|a|qBfu#N+hk#FHo$4Xx)cG8gvcj9Ov@lnydY><22=2?5`UZw2^6y&h2(nw#Ok2>5Y9YJrdwVAhSKs8la=x7^Sk6Yo#G|idzi#>Qm z6IaN~_CcW>oNWV=KY;Hlh+tPnI=gu+!d%y#t!oF~XNsBK*}6DVqgaPz($+Nu%EAEf zhWv0EGt6}vU7PD1@kq;D_{$4eIH4bJu5;M8EXqw6=DM!;EBecoxz6UpN^_mE(!t=1 zo_@O+nTrd72D{LFDEqgNWq+}<(iK})x?;;pSG*oH{9%WwWu+^&Tj?rnF?LInq?T4BeC+7^amuh5-O3Qk?dFVk*ccO67bv;DxvPrAHW?J=wxDr9bka9 znmzatK9#}5wZh+sQ_)(Uq9w1f#6{Xr$w*uf;l|=G1qd{FJTfhICA8RS{tSzq$IoR@ zvSL~6N-T?AiDj`XF)VhT+6*Vc>qx0RRl&sm5{hVzB}@7KP{|TpBFd^12y|;aY67In zil#c@r4CnJK&vsq;BB|n^AajqNfP`3F1Nrf7T9cn{-?GB1RvXQnTis|r3jzfiR%m$ zi&<+eKyZu=m6*1v0k|G8WuQ=I`85cMxE_Uf*(NBz~)^KB-=HRHTpRQX%l)45T|Zzxh4+P zVVPv?3malm;#ef67G-PGOF1pyn1+h^{p7}^qqL7{lZrcSXUYNn$tPu&>|ReF5644x*6A)Dvc=3 zXuHf>kD4;w!J#QT4Nckf1J|0eOKZwhp&?9kuPIL(BeHh5@(Dv0zW^9Z7Wb&F^P-i6nJrK7WrJ_P-EXNnTIh8|M?4y&d`q317qMvy~BTIMqu>FDAdUCP2&){ zsea}GS$;`xi`Vpv^e9hd=lG9%l)tWa)ozK@DTkopi%0oXn9x7N0tF^T){OMuE*#4L zxWdpRF9P%*&?MQ@eq7}5M=>>WC&$*ujMlpZ7_0T(hC54>EYno>9khGHmyQBWF#fP* zHcc`;BP|WxM(vzcilo{(8#k^?Rnpxk4k=EhQYPa&NG-~oama}Z0_AbY4vyTx6Q4u} zb|$C1OqCM4TOCG&mZkluQo5F1vKA_3<`vi->dKG}p{~qVYd(ZZ>2#l4_uQ1XO_ee? zILh@a!y#q$bWthILr$_D2N!mS6!~bBLkeR{V*l)Ouf9Wvl=uyo&>>~_OeY;u#?2U^ z_s=d}KUq7ZY(M25?T`|8!R>HYp-Sn=pQs&DUQF8El|#yEG$U9cEr%4*ucI7N2F-m8 zYHK~-w=nSqK=^C^{rmM|k_A>_>W+>fUfR3pm;V1$jdeGvl2d zP~@45&wA2cwHBN{f?Duo%%;i##jZyg4k#2t#HZz_JD^On3ode_lqgzjOg*q`sl^By zg;9liAl){o*EWjdiPmZWR=H*XQ^JO%}Q7*%XogDQepK{?&KY|#Z9>pElRw_&>5(>!a1q=aE>?hF0GL* zs$4_(iY>*e`LiCeYTk4|Q9D#CAPHgt2(OwB#l=(2wanq@cqkC6nK?Bi;G-WABnmry zshJwlmoPRize1efL(>HPe)vp-Pra4)fro938tQ9E!bB-Xs|-eA?EuIh7^8v;x!2NZ zdk71KHGS%tdIN39%j8&_s6jEY)NoJ5m2>r55tCZ4l|HHp&YH zm;fZ$vNX>gHmZWHR3tIjTB6xHK9a3D5828n1@x#KRN-{ZLC8ymQ&lF5M$< z0=nNWBV-PC)Auju)MoAKEk;?Xq7$Eyx0l&?G!;?t8Bs;IQS->n!OB?#mwF&kUX}*h zgR_XII>V{9_9F3iCaxX=kFtXF;dCgYR@&&LGHO{wT5yM2f@vWcZCqF>P65P13Kbiw zXQ((1IR0P=t-{K05MApmA=TiWw{7yG<)Q25dpF&(RLYz7ScZzoWlmq)H)z(eM7~_o@ zJ4`9acZ!1il!F7D8Doq$CS4)k=~Z1){Nd1;1@tybN7ARQxXR zV%02e0Ys~4sCYeT@q=+oL&)TI3*2TtuLq>^+hpRXL33F;R7?%J5M^oRw*m(SoB5C% zGat>M1)a|Cmo_>FZ%n$4p!2NO*~MtIP>dt1#ZEb5IOeB??VvC-x)V3zrBckSQS1m6 zj|4=1Yb(pWqN|B*}OCF{+{9oiK} zH*rm2^Hr`XY`#CiHHEEKxu!^~HT+qnp=uXOX|<+(qa2Kw5{0x{!_h%*OuACgK`B7q zbnv(;LBPZ?d3O?GEqb>Q!Vg2D$dw9gx3J9sc?V0n zMuxm$LXtmvr>I`pL;m2Pu?@66<_~l&q*HbtI+jE@Xsr6Xp``v35Cqrm4L|=`2aOZJ zPNahdl*_yOQi9%~r?aF>AeZpOfjI@r{9Ik^;7*WewEJ5zaJhCGcmRBNv#RMSo-*PY4TiK zlXl&so^|%SAmiLFPrnNWk1NtK;@UpdLFBet?|k=ku^bJ8KWK;JxIjBLhNRaQf6Ls% zg~Qi^`;Lwn=yY-vD$~J*!X0p>xDRrr;x8G0X~%OZu9`(xl&~q>(Ew9adseXjOF%ec zp3e?=GSW9=cfWi0SMI@^;4+W_RHmSIf2lB;x&C#NTA$9)JKH_}O>S+uLhLzMT^u2I z0pI2cx%2haqpvP~&D7U4eNE9C!j*cOZZMkdagWcMYEoiuumBb+7+ioVu=j z8e-PbrQuv0u+B&aI~eJ}?TU)`=6Ay%0=37ow%b}d!n;mnOOHSDZgvNKs>qNuGfG*+ zp8an>mR642;f|2F$`4`sR*!rH$$TIAm1S&l|N%ot`ltitQ zWZy>C`sk`Un>3Tp1x16MR{jAQJ597&3;I{dW(MFcWYo=%;%huMz;Z3jwPrs@D z6(A~~qfeiujVyy-48zD0b%MyRu}p+IQbv}pP7sMSvi$XK*h^~JLc7@Y)7=RolbERc zJ^P#imATV}X&lVZ+yX`on@J9ASitZH(6YMBTLEkZcmb{DT=27rM8>WU&ZdA#>Cqt_ z_S=j^_R^6;KpPK#-9#e0=}wNvQDMJ7i&rW>9Kw5FOdF3C_B#Qc&eZgGh5z(7wtf{o zTRsCX1Qs*;pp-j0ntUAHPhThKYpz^vYwjML466g|cC+B_!MU(Hv~D-6?Vb$#QhStT z$c!a0mgWbxiFjPlIv_h#0?G-MvB&WT&?|s|D=l!j0s70>!`;dWuKOtEWy&_xL!k1q z3cL$PDAOcF2>~&{xM#zKL7H>vVidAcb|r|~XLnd-ZaP7zXy8r}7_pNLrH6QdYfwb)j0k=7o?5Uo9$AzFKg{3+HRVaBkk zyn@nDl_f7FtyM3##{{&LE55tX?ACZClw`CtYk=l$CbsjnO$DgS4 z2wLucKH#z$04z{PGl>7Dk%-eZ$QGCjrzf|oz+5ryG>VOuqm*^7JvhfG8=eQ~B3tjY zdFE0`-M>}T!xk6{>fwO?1FNV!==;a5qE0zZt)ecyUDf`i*73ktZ6phKXhgb=xHOer zvfmpX=mbqL{%9;coBR8-;LnWNm8+-`{_^4?8>+bM=RfPbNXb4PT_IxmbZ*<1oh19a?>d0z1nwE&qh$Y0_1iU& z><@hNxYHon2c}=4CHssAO0{JF`GuqP@@fC(^;)uj^H2mWmU9BX|9zz;*<1VhZ$|rx zSU&yWrZ`u$WIuFhFW~A?PM$hMIS|SIq^H(u$^M9|7+{!^{fyfV(USeEd6#O*{@kl6 z&r`C0|C~H6*=GetYRUfLdrUuJPT^|#)IDG7=!Y(!R-w)8_wuQaiMn4t6|bUB%cm7E zK*Qu=3G!u8%csZ!3A$fCrThc}iq=ZXj^59&jt%U|Yj;pUN{F6>SSZNI$eh)+*De`m z%f`2QTK9z4uA+8n>I`NEZ?|p7Z**Nt|Dx$UJ8;_Ylqk<#rVEMZE^YD<`pWqR`~Z3d z5YP~LfnBb#%5ztxUrHR)S2qztd12mUUnVV2Os6)~U zWLphgPb7ZGUX2AV2FSaRw^AcR-W7nPMSE8ghsKFq$f8a+ksQQLa5-qr+!osR_sNZE z9;XnGotvO4(wiluS%5pL;eI1T^mtn;=gl6p%i3e49xx-s}^1gi{C;Up}o$&m*hCDPH z7)u_?P|vkIl%}a*BWe;wM_e_knp ziCrx1(Q%1mi!Oj+K5_0cG|Mcwi++wXUtZp{*As-2!gE$4!xT&3FwT3yDK6qQ%@bgv z0~NQO6&fvT0Ln1$Z$wyQytrX+th|-vJYWX65DtPt2;_z^PJe0gwIDdMtDzOAzbH># zL_8jCL_Bu;zijIdRVtl0ocv*iRI#C8tpfD3RJhY2ggFg+THt-y7m8f z!=_;kyYCBXSX?_f3fuYZYbOtufD3!PV>$jkYVBlM;nCEvRs?RQhV{zS*Lh~?^aH-- z0WT95lxPj>n`-R8oL99R*HcA7*)A zqQU&>V0bjnIRIHA04WH*`JmGUupVH?QvqVv1H7tcr*RVdx9J}nC$ax4xi?Q&ZwA2^ znR7||8oBz^KpVA=^6DI^FQsjDwT=SoaU~MN zS(T@8o{46*-|HxcGg0^JDD}|&w9N_fEE>-bT}PP)J&N5JnX*)>PKT8Kpp)1)-Xg`I zR4V$a%o1M}ZtCc3ZG)t|jfN}?_pkr~g-TJoG__W!#1H0FhSySy2!rv$X_W3Gwn0i# zQKp(9c|rOsM^5y~Hz`#pH%ErT5%XQmp|#!d(>1K<%JBLrKzD zgo!#7loBnNVT0xmAX^)M0Q+)mRbZR}+Rsen3W2#MW7~%}zn|PF%|q!>dRfM{4{v@y zxv_L8R6hk%u^=#$;f|Z7GXHCWY1Gm3g^Ha{f@#l3%d_l|J4-x`w&`l|)YYAMs%^UU zrg(Y`#M7>9x;g$vx{ExMsAiMTZZc<+2Y|BV)5W;6W|In#Y3rswTmJUz&;Wi}^66*S z{fZf}A=SMH=w~g}odhMGn~yFB zqgtx_6;M_`?29|AA0~iI`e8&Ii*2w8px_>|$Fa!5YC~6c^QM>WcJmt#jk23Regj9; zNV_=>P=}CaNOj8!|3#_p<)i*VsqQZ)HBhR%Wblg!fSa1O2Igv4+7(%RmT};;-{3Cu zz1SQ`b?3$V>UM8ywMliOp8v?On;(WSN_MI4rCH#@zU@c^%P6UCS4v+>bx!v}N_Ee@ z8sM>grT4-}J#O}`Z{4D$y8EwySzV;MSxYa~QeE|)K7i(9%za^kTT68>Kl+L#)me7) zF~W&$+mUb*Z$Zgjr7%&fC}(uih8yP5lYm1fwWU~;0tXx z7q)CNpY~hcLsDT-)MdrsHX`x+0Wu%cO17fx=G|GFBkbngS(~XYX}h@y>Gr@E5U0gp zPKnwyFGm{8MIQg@26LA^@P*v$x53;dge&{Fmja&||Dv;fJmRpuRUk$c*sSBUgYyUM zdJ8lS<^FOS#Z5DKcXD@x4ZJ(Kdl}!P48p8pwNHLtq4cl+n%o^_5N^Lt*y$v9|Evtc zV_<^EL>|5w%<7pw4Jd1-|BWKh7U5$+7AbKLoPrAfWl7vOU-n;;xPOw3_m?a~zpwmG z4!qxP8HFgg-!k-)>4pq_H=v)j4BZOz1!d@C!Km(8ZvbWWtR~!9GW7bZJIl}=;mUu* zy+0W5e#CAW9XbSOOQ^H28^th6k{9o{+eJ_96J-~@8n2JGi{9M-bDIQ>VH9e-v!b$+ z67-bQ>L@`k*!I;ZNYG3Ebr>b++B68YJox%J7)vwXeX|%6^ikJeQFrHZ=PH@|)aEs$Q2o_X{2d_gI|N5USO9Vx&(kbMI|3e(SCdQKg{3V@%t zna54jw4~y~oqLs(jFMZ$0?B83xsGw+a(s>X+Whz;>M}chS9DysNC)m+W?Z`nVLJh~37woB)0zu=Y_JosQQ{ z6C)ig!p(;Ha57T3#8~)!Q5No~?f7(tbHBTuu{D*0h_a7rKbRAcR zeris%l^z$6Ra~7YJ6+Qi!cHf7p=UcCv$Rh;9Sw8|>|asK$YB?%#O8bHwl5>^!%lZF z7XCT5WrJlswte?~jBRY&jyr2?3r~%f8a}@07bi7jgXOOhlk#?aWC7@V!%v znV*L={H$mGFWOb_I0206-tjI_*3ADh?yTPN!ew2}{11O4Gye%s*k=Cpp^O6Cc}+B@ zBi0ca1$G|ymZ^|Ef5z*hXa2~LJ#vVW%UOEw9h~`3ocB-8{HOlPbvkDL69?Q;gPH%_ ztFPkBf8?{9AP!`%&gqMpfA!lJ*8O(dJNB7BxY?NbANgJ6%)jvR=$W5UaWF4O&HQgZ zxPvo(;rVGLycYf4TZWl_?5u@zZpMT@c6M_09T!-C7kX#^Z)bf zTewci-Z5xrY8^n1|0#1AC`Z;F*_+hN|A$MZWPZ@hzX^4@A2a_0Am7K#Pn!hTu?$tR zkA~I?U@b${ymIseYSO^|m`z(oL|EAehIg#O>zdT-Rs!S?*cyN;BJ8{>3%lN;t+%in z0Yc$pvL*{VU4f_qIa<}F2)HJS-S4C=0;nRw_9TxyH(BaL$s?BONZH6TEE^fi3Q`FR z@(1{qDr%Re&Hz)i;Fz1qO{s*DY9g#-OrgC>IUwz~bxftFRKoQ^*iQiP&$N!&f{)e! zue?aX1t3a>Y^*>36;Mw#vjNXTC-OA_4YpCdN0A37ZV-Yo-^_z$3-dB>_(PHcP@!z6 zv8m$+aIywN;!(;QATv#5mI>t(Vq5S|AcX2N7k0Zg@`;~iE@;gycU{~0gpLk+Xue$D z#hbO6$$7Cf(f@a1<9>!?j1n6cP7-#y5F5J-$0!TBEPZ6H$Nf4LN@jGr4A;XbnbBqJ z*O73H`;Zym`cln`{lKrD6&r!FX2mMpS+n9QY`fyK9~F=BXnJ|!TzgwQMgui6{3&ME z|BJ`CYv#$GAR_Zx-fp&yM7?|TbvsL~ingz?$#)b_qAfZ~pm`&DnbeMu{l$SVm!CLm%!s!^;) zr8;S>4WbYPGvEKe_Bk^X#MkZj^}FBve#u#T?bq7xwf0_nZPdm`^KmJb{Re^O&%npM zh}QlXKCWu0Orj_Aal-_A5+4WZIpNlW6|%t<068*%b?)o~r1Vpzu_+u>3X4T%ie{)0 zHo3Wz1Kb+?p&n+yUvKU#xS4~h{~h>|T|0Qboso}?x^G^P=?YluTeyf)oX_AObgbPS ziOpoao^%J^g|eZSvEb-5$Pgdlr>Jlyex>yLB%TZw$F3M#JpGC>{q6CO6?^ge)_uax zAxwdZ>BN7+&Y^w%KE-_4iqplR&&=3&6YM~W?J!tprXevMh}{ol7sA5&6@^!WYazep z9Anyy+n5yk6Z{(%&TIr7!YQ!s1XKAedTY+frCkJV1ngwnO3sZRTU+hahL!YHdF;kr zbye~7F;~;H8+kPpAs-*dWPfTCBupHdPn4hLa%~1TpXAm`*>!bk9LDU_JRG91gC+Pf zZ>srgaipGH+C^9=M!oEEibDq?N0w?N^HeWv(pqN1Cc<6w5QEH{DG%GwVkR_6cz6k0 z2+rXpKC;QwEP}S}ZHE$v9g4@7 zP;71I2SX9YC!aqTqcY_=%OBpPha!e0O(^c0njDHJy|qcZbo%;Evs_%OLSbi7*wEKz z(EAWTy#70e6y;VuX(Vy0K`%J8*h|y;5qD)OasBVpYvOP&t0{niO!A%h`8PXc!4Lt2 zWey4?BR_zFB*-0Q{(ucSV5F)JAnjqoVngmWPH1A2V4Y3iIGaGzHivm19;b3`5ZSIH20wsnlVC>@q>?LtuseAWpiNAhP0Sxqt`q|a z15;_~MDQ%c#27@AX<7;Z2`!>FE0C(A*+T!;WSy;p;yVc%!f5yb%t(U8NpQ3SMyg5y z>N*>FuvsqxY}HPi&H*-^PNm(3m&6j4HXd@mYiqD4EM3 z_yJ^3w85l7#HuP8sWLC0EJ&BB7}4Tl6M)z zc)y)p(jH-oasSN-iA)f?nXv_GOF&|okc*hu_Rm8$(JI;<)Zu7ZkUy-u6bNZG5IX+J z9m*45ahTaYKv;4H97xH2{HM~-6so+JUYZWw-t^&2!u; z^63jwfyfOMwyXxKqy-`qy=uNU5V@`t_omeR@n&e-_!Rl;Xp6jd;XWFA^MpF4c65K2 zM$XEk6HRt=#*R+(vhOp6=tRwjO)QljJ5lpt6S=6v{|4T28o!nCWF?SQu!*c%cP@RI z7*inyMe(BMqMb!YJZg+bWqFiaT|-lKsr&jLAW`h=cm6(A?t|^;ljXi>Xgq{H8EU7# zw#B+h?Ti+(qQP+b@O^juH;MWni!>nYU@FdNHmn&N{c>{IHw z{_@R}r8=<{(cj2^)0a7Y^w)NMdiQROEl0Y0^+z=PmiMEmXuGaa?Ue4yBM(538~yWz z4^p}l6Y{0SKbUa$7BK3b<*&j1+jT=GHo0Hkmm=Mrdtf7_yU)R-^n1g|fvkTf4~>T7 z?$|43oOQR#O{!XQ$e8S*vzn0Z#QvK+AU9>+@N<7gZPz_#@1?fu=-Y3hwrhRS)wZ^4 z>ztq1+OD0KX504PimMtnX>HfP5A8!Zvey&8)a+=xnzPeEOq85uY?@G#qV4+pui7Ck z#)KwFyJG*X^}V%#nt|)v-v($qpw{=MH)$jL|Ml=akSccr2eTRD@q`DUpJzb_SB&hR z^}_Ygfb9ToUHTUh?j=ACd#ez)6OiXnH_sXRYrCFvowSjbIX_w3^(W{$9$_Z6{kJXU zOt^_F3hJ1tB%YOf+pFg2XXR!xQhc|5R_;lt4?N=!#gos&A6D5H8h=P{UQ z<{HEVqt%>DY>=F$4bE~vRjtKT{iZ;DifxUWY;jO{Q`P$HK))pNBgM$`iur#yrdg*l$7QucUAaavk9mpd*|Dbc9oYj&O=7S~#_> zhOhk~#b~rRXf#@_T#IxQCbT=LKkQhR7KaW*(G+H-ah?NBpgbf^Ar+>&@xLGCyMf^R zVQ#Df)t!u`R%WvR(du5f?Aq-~f_dy^_#r^91FDr-025}hMJL!HN-GEpQY-HO67)e5 zk{>|K!48;|M5}`iR;{G)>J(u9gLaip9rK`=Bv&hEX>U!sOf(MZde#xrDHZoK(q1o! zwwr%y&C_MohKp4R<{9Pio!&zcLS2E09#)}&{F)F>W_^;q9{o@wt6iv`~lmM z1RXgxTHOp})et7Q9ndUFS=GM-#MU&M3KK@hpLh#M)Z0OPc2vKM|4H&X;S$-lnzF4X zkFu?hr~XKZ7TG5S*iU>cU<6`lqBvMIQ51TGC}rF2za9weX;laCon8!U?fBwtgW^QH zj|T$fL4m3OF{P-O@}JI5LU7 zjIE&L$-~e8ruFb<=VI$uhJC!(irMz$E3_&D!6VXB)4zPmdg1g~#!d z_@}fWQVDzFY}oEX`>l7l*%P|+U~!zD9HZT5!16d996H?t`fHfY?3x3+L8R^fqBZf` zv7m@7m10di!?<@C2>Mr86W5l*<9kAV=?lGJQP-dz%-K2XO!v0&3HCs%m6E z)8gG{!dL2dU_WEz|MyLf*MB=6k1xVsE&l59r~A?JeX0E@2v_n9ecpr*pF;M<0?)WP z>|Iz)*)af~IH>0+fJ1upd$0_3<)%``PCh{CsPQYyYQF8lWPLYgi7^CCa| zihnxkw?K|P?JJiGv53iW!sm3a5oGgF23Z*&9-bi`1w0++16cFgZrCxsE!xDeieLI z0IL4NYqo6r+VoT2RCH`zGhXobTGQZPK>+*>^q<$(OS21?z^{vh4>)p8T+Ed+j)BqfaZ_Za^>l%r`l! z8R?^Ma!%J$>`Aiiyy4PaKU%hxVXI|Z6q8;1B-wVI#!|K=Yk~mDgH`+8a%#<|SU}7{ zur>I@5;y~~^ug-6*GLVm!?-b@xUzWc*y&eXg(E?&r8Xw1rAC4wys|W(bRvrLQyse0 z4qc2)k$Q0<9@v%xM={tj7pd!$(P$OP>M@XmHhTzm4a@-hAAbO=1Q3wr<`3Al8bT~? z<>>ei636&YG-J*ijcSApSPvXd3&%nf7*li=5SxLhuWB91XTNhm4`;~a$sw4y=|F-NEOlu8tYW1c7HY}3COdI*c#>F|^44BWcH-br zRco;_Dcp-#31+tn)ZhSDQ?xpi}JjdVpbH1Ln`=gEnn(Z_@l`4i9nQ$bs&*1pGXS#cT>K^v&}E*A}pt%sfGKK zo+>xDCWZSyX+iTdyhX15l!cz1cy?OkdFMrGap)JNGjt%4*0zc~?*tNu4&*{0b8GTR zE&aH8)0nHTz~k#zUTLb0qY+|xl36|%&nc8PK7{zfLlgVa++X<1-s)RtP)@d=)erm3lA@G0`KK;n+1Oha{ zE1wb#D2-N8pp*@tCkg?9i{{LwMaxfrHX5xO!Er8AX&xX>J<+NxK&(eB2NaPgGlFMG zp7#wYc0{Dp0R0aVk(ON{r>|3Yc$4|w>8dIoQdaipaOfk{eB_h^4xTDsc~ zb@GuP!}IuxUq~7MIrB$(^GkmRoXw|?Tpzd%l4c~kA{^~Ju{`k6WY@2^ee_+h64 z{afCQJ{8Bm6O+V8a{Px1r8oBD_^-I)u@sK~>D@4yQkv&~h`Pr4L+%^J)2z&24VwUt z|K1ym;VQiL%G=2C!vHur{#z$*-C{m5vhu>FADr`-RE~e>8i(VrJ(1Cm<3F8aBK0(@ z@w_KLbee^IOtAX%Za@3yY;{hv{Iip`TWZl=`*Hld@^UiAFVuyak=wwp<4|2V{y#SD zwmJT9{>Pa%$N%}}12)J1{b93hj{nA=egnQd%>u^{Uou<69>L2@p-w;>{ik>`y6kdk zqfg86Z^z4LpPA#omytf2wEPJj#iR0&DjQ}6V@yp=& zgoCY1E|VJ49DfQ=o>2jfhZK%q_-UNeqBNg^W0!4|DI z!{(6ZsXr6r&$#xZ*6)I}#2H=+*Sz9%ah!tjPvM%Oxk)XDg}f6X<2i1AMz ziT%@zzc9)U<1da=oF@s_oCtLCc~X*VJ{9BN??^1c_-{;d&Hwbll4g|8hsj+$M=Op~ z94u)@*$yO*eg{j5ql1;?^v#W93a`LJ!&hE`4R=ZcJE}YJ9}}eA6wWad9tg%j?jg@t zodZZ%(r7hDH-C`GdKpiHJxMSx86ejNqtz4zI@$lLhY&|*w3=}kjmI#wBQH;?g0BN3 zQau`<9o3}_i`QZC>Bp8P7<+j-TC=6|5J&L~pv0FAsf7 zTY#y1Bt>s*l9)dWk*(Yj()-BZbl@s1`$YAzd%xiH@|A%8N2`x@;+0a~uE+(U>@hRD z_5hRYJI!z<`_AT(C+*pr)o*d5&aXZ&t#jA@B^_+-Ii{M~9+>?`Ky{j-&Vj*!ewYjJ zkJ|22x4YuIRQul8pmtbJ?@AlgLZ!ltL2Yzp4QlbIJ)V}gvps|Mc;Y*Jsxrf?-t-uc z_Qfhdn_orC)RL@594*Al!f~VKF^oREhH9#?36vQb|0L*e#jcUCzHBqxY}71A7+?5E zz`CDdg8qOS>%mj4^Gp5IE0Kvx-kvRsnDGF0J74o#h^n3sT=0xPeMuIS+s&4~JX4MD zG2<-(_iF)nYoKKB{1;*?Q4y-OEV86DpvFT*KJ)D=ls&Sg9QkamLfRXdf!wGqg691T zv6u4GTswTv;E};4X3>$Nebgh}2wFqE@yZ)we}ZplY)0^}X5=AB!Ua}iV->~&G#;BN zZLZSgGEGJp9;>z^Jm(KBF;N@U2x?~^t3*&w)K^XlJl4z%kD58v6Af3Hnzhog?Bi=?$3;%9Jd%Y3(1+$6kUpfV=*`#zpo}HHEp{)0etZ@E zKuQsogcv6$cB>udS$}8?(edCor;^GM7}>q|qGX2xa6gqlfTc;0O~7AKbGOfLEy;}q zkt6^!P!bOgjJ<`zc4x6IV}O9qj@^g=WfuC5b?$1NIK3wTD}C1-H?zHRm|4A@!{%1c z49`r@ZJw{sY>l;CXb-KMZuF}@3ESf_S|(2oH!re=q0P3R`B zSQg4+{GrEhU7u}Q884s}gKwCTAurfZ6n77Xk)WwPp7?;G=370t+3y4EneT3n9o#p) zHW0b9oI%*vDsAK!OzX#HY&1%S6bHwKf5b(uc2wj`M!wAI^Wz6qEK*>>b`C}KL%V)-V@j>^?hjy z0DUnaj>ewX0kUHgbpW>A%&sfp5FW+hIAkwqD!Tj$9L_HMdj{qqT<3|@x4AC2rx$u z@rzUNRVna{*AM`2dov8BJ^q+HD}+Dd*_`|lZzf=GKFA}|n=kazx86>fa9v6+ZLd1~ za!vm36nI2Rn0Da#V~!aq`0*$knlH{Yxq;<`abE2Z3Z?uy?)sE4W(t10ojz-Q`!~4c zVCG(dW7a@q=t}tv|0zCZWca`1^N!cZ&b%H#h1dB0&?VsF37oqM8)+5zK8SDVSh}fp zG?5-7^a%bR_88gub^JeC@qh8%hmGv^5Ni3eka$ z0s;QBbTB)8R$fuGG~>(PyZv@-M7jm9jVR=efs~^0CO961zk%V)^RB>MYmH}qzz1O9bC7`yZ()XT08+|qJJB2L2Pa&;*Af#;!So2GCk0b1v3h}FnkzVJ@FPrN z$bqv{;2gkiJ4|j097~D&7GQ>9-|n^XgnLrLxKiS#j*BciFQ*jKgu*;vN!1;;FH@V7 z0?$Z+r>4Mx6xf>rk57S%Q{d4y%)AQG=*xb(TJr6oDhhtYzncR00%l2@*5F_4Tc2m+ z<28|ZY(vib@iMhJKkIE>4dp4-V5Y#OHcVzhSP48=&|QpwOyqM&&lB3LC&=J=ervPL zk0z{EogQ1u%s`GaV-_7i&=DP+KPBjhPJlY-5*<`9@J3H>jhWTQvoZZt?&5Ucake8r zd;tfr&MrS!WW1`B`HMF>u@CTAclDyvVHqm&M}Coo)O|&9(;CM-&WN3jJj`f1leYsR zmt0Rg>M4oNe*xPF91#qf9eW$O;Q}lX{K1c9(0=>0pHnFKapze3ZP0#1*zq_q)9-ZH zIE$BOA<@KCtvBR##8&Ljz|Waxk*I983NgRdeni-bI>&I?F-!XqVf%51L8tkB?MH;| zwJB96?2aEBf|D8O!&pmk}?os`;{jAUe|s^*nZ^+zo_;j zg1?V%#Hk?QqZ`o^+RF9Z6&%s8${73_zLoq{8BF!nd=DPD_R`AXD3bL| zB5$zlNF|ngs zx(lo?&-+lM9jfhTNBfeIe3x8T?1QNK1Nt=4#v??1b)R3Q6DDO|x;!(Av4YiShC!LIN4>$qK*QP?k#D>_$ zs9SW}?FA{KpY&C$wiENXf{3Q&Gu1%1Y1NWjRO?<^jGFCp%Wg$zuM2lofN;Vh6elgK zZfsVbOI@E~)q_`Xx%Z~mjVIzXbyF6DN7dn>Lh$%k4?B?*!;Efo^GKE?Ly{fO}jZ9DahL^CSnd-%OeID{C z+NrjA2fbf;F}S!5IiGXCqxP5)zdKTVW~s5^2pFdGE8mO+PLCTKb{ZRQJilaD<)Fku zRuqqY5&aL>{W?IR8J(1i%Hvn~YkY;hwr88zM1=7m>^1V;?rAxg?HhC=c8QI?2w!Y8 zy_)SEbj*xgdE587Gco*|_{au}N40s?tFdn*l;6S&Wu>J>N1n(-b{q-nMTe$%r_>Va zVA*Xb{?~j(`*4f)3hwbVPc}9T8Ro%$DxUQ7sb|X~H@Lm-4u9zV^DAHVx!UM6F;bHa znZi{!@%(^pG{1#Lt|~xHq4LrjSa$&xof+?xI<{qXTc&;vGlihlA*co$q7jP4^&wWu z>>+igyCwc=AhKyYn-(7rccD-OK23J{8K^+uE=a+h1DqWo-hG}OqdVIU);*8_l1ik} zJ&gS%w27KmX_e=3lCk8b`qng3U{9>VgTy;i=VHpDkKpeQ_-nu)XFzCgo9Y;f5zNJo zTyTVx3q5?{C1!OCNe3YSkQE34a6y8QsHyhEzAm&leOm2hLT56e3la&9*}4`+QM-rZ zRx`(tS-oTJIdBizx^^5~>4KE9nd+ICk(%C(<#?)o6Z<$du)n3&HG_VbbH&s%56h`9NDPWeG3hZR_twLqZHI-b%L~V_=!?*QKM3C0H(WnWHQ-jJfKD zoCOYZ;;Fbh8Yl86Ek4e5dxHIrV*%OR}hW4$zHO+{@mYUY}o7Gx0T&DUf+!W)}6>yLIfSJ6_DzCM!^LobBk=I)GEo;8%8Mlrs(Xv|s zP-|uJ4e+I+%3{Ai)I9!)vk(dEjH#YG{0R28i{Z=j+9j71HHUXD8tFJk_#=zPo8LJ! z!=Jv6Y?{P7{D?K!qs;M%+4mhxmw`y>cyqQn-XUnH1m#f*q|qWKVWuPjJW?^otHBcI zBwr9ls_gWwDFyxNr69#;bc&B9mLqYJQ_^F6WsmyG=tMXf%MP_xZ5|mb9Z_o4s?F+; zc?YAGD5u`7+CsRJF;oNHN#C(2`O@w9GObd$@x7N)JEk29^s)0Y--kU5yIm~_0-Dgp zB~bE2RyC9}^#`U(+*-!9Cz%I$IRImMo1R>5*=2(HG3;dR`BmZ$uxc4QnWj}+KzCy7 zs0O+nYOLB>;%n8;kyuvkTz=hF?H%}flmwLYG0)QH0SR|6LwS`1Vp28*+Hd{<|x`mYl!rS*wopM}9mD>pYdAHWuPv?CL>cOOVH)cflRn^b-ENf=fc1It2)7 z{!PbyjCplWPptDdC-aciJzjsxJf6*xGlfx3;(1QuXHh0i$w0lrRX^V8Op+(dz>8Ew z4lLCDv#a!Y*3hBkj0c15IL3o_!2;V~n*m|7w z2UM5W3bR1*`oav3nJ5znCknCrapo$$o>kg?x{a~vILaiQ<*De1UGG+A*;ZW><9s+h z^r~KrkVPpXWGpnmK3Adr|5}O@3d6pT-!!YXnBU||ulP#9#n@&)T|y@Mm{mJgB04jH zYM|S3S#lP}Wb-6h2d^4zQ^#UIKIP4KU@&Gg z<7=u=Q;GRoSe_J5R-;5n%sK6xl@fV7yp>LKXYe%DAOZfk4lFK7vS+H@{bH#Gx=)Uq zrT+N4{;~F-6pQXt#A@sx>!p6NP7V(WCBPror^bTl)zpD0-xWj?bR-h6XJR7ky3~PA zS(lJ&%P|b?GOLDzLappEfT<0pt9fG+HKH1d;p?;+I#D7^j$W&lag()d)ovCy z>9+HWRih2x{;P(Bd_cn8%TQP~7|3pXr)fd!bjrbOH@!~UqFvU)k>>0jUbUjO9G%Lm zYHEY{LhPztE#DQjKes!Zp82&Pm$mRx#In{)B#$Zr#AqH>Xf&*sm}-pCP$O|u#!5n0 z9XoZVsit8kY)P~AwJdAm5KK#Lp(a)XW~ie^O=&vIFs<2I&O%|{#My7ax|>A{?+jRF zZA(kim$U389ZN1xznkUvmhAMXSG-Vs*@RSFOD;C8@mSM42jC=sc&+^3%OwER8Wr?CI=7IYANjh1VI+m+=u!p|cE zuc}<9D)$FeS({(IfJxRDjxYWClt}S7>`pw1zy0{@aX;tY(fHfn{N^{N@#qe-C3b;V z?Ym?eydK@_b-!rN-e=;!RoNC<5Wl2y9ngoo?w8HkM@;w2UiC^{THSzn)QoS#@tU{f z=;D8bmh49bVN!j{xCdujF4bl{+KQbKWc6qKz3W#8Knb8;_fhxr8|{prmna9!mcLy< z#q8NVbvai@GS2h5`;Zghc#F4W@8UPRcA*jNVzC?(&UEFa8R5U6uq@kjuWG-ex@7Od?3(UiGrKuC&ivH!JR~EAZA$1o%yW z7vroj)SLlBWEtL)Ba08P3ax4T!~2YTOrfBCR6BBM=}hxRhDb)p@NsN7$2~2tBdg+c zknOF@xY`p5rn?2s7dTDe(N{-;X>mJ9q*x>KiPT|7v%Ky$7WuI*wq*apVNZ8bBvdE2KL`L+J-5N^e&L3tv3IE_dgXkY;%RkQdxL@(?#X*&? z&7)d9Eyoe08$k#nNQKUXD2O~#e8#X~ly{PtLUm33Cn0y9> zRNSbaxyBxhv(SmJ!C2UCj}94(&X{6K zvc>gie7-Kb?o5uxW@j{_&N#BHnQN?>`;B|fL7gb#uGBTr5M@A=g+eEJW^fO@9i zSe)2@FqXW4vA73SisG;c_BiacyXvi)YCR6`2QphcBDb6!k1OTRnG9**b)Y_>>F z>6HEhGGjrcSQE_wX%o!}Cfg|=s^BcU3L?d4*yRKAOab#{uGz)8X2ax2hD>Ij$fP(s zk@BrIBU94wU55d8tMXwjdD&O=ch4r7wyl}XT%iIOhZ94af6Mh5gZQubOf(u+{Fdu8 zltYZ=&uUD~Z@E&3dVy&H;IVGV3T^8v*=t1pB+l!Ggj)Ja+KkAr;GAr2{w-H*pX#HU zs85~X66di7S0Ce?U->OeS0lY@=cpD`OPe{n#Z33DQ-{2Di|pCFkP~=(XXW3~Ta0^1 z8;GhAqBw1z2446Ik_&JINbdMkFirMlu)=p4lJo-#P^A2mw*~iRu#ImNX^(x=0*njXbG7M&2 zgI>$G%Bew9^>MITOI92A{4Zpdpw_2aea40z$PMRj8=iOX^18SAREJLC348tAWwvx7 z^IhiZx*-GIJ@H+Y?{$AYQANh1W&1y(iqh>WT3VFIFybwBqa2ZPj0)7p__J73`H7k; zJ}cd~pY`L9Kj{yBFvtkUdD0r%Zl;JR!i$lc;+ZEnspHtT2o+$m#0I5hZ)HI1=j+(E zJiY9oX@#=jhkn-K#StP(@3sED1|JAV_>VY4uS$pT8DBcV3atVLa&AG3R~_=HSC(Eu zeIXAOhHh>~E>Y~X@*Omyup@hMJKWna!>MTZphP5V6W13g7T@y|$?QI^DLyRkb<4$V zIqS^=4;Gq|wq@V*S|P46zHsxRZ(=NDc}sei-C|l6`8TVYVuGb8VuUue3)h|n5=Gq} zB)o!sn-{SEdK{;P=!`X#phzC|ot`yrK0x?Igu#aKjJ;ibprHDgtX>y*s^hO9@Uq;f zuN`Pt)VH4>a6sS-XYTGUg^1nKdwxp{oDzUE9@nZ42Lk|@{R|U39|89Ef`_F)T^)4o zHlZ(wO(y+rTqqAEL_xV>V_DpEu|i{kQr`Sr70A!>LRk-LZrLQkj9}nLd=R?JI$~u< zkHw)@dKpAsJWJ>65P_Ej1A)f#9Yh<1bgPfX1_}0n3X!<%{Gii_8Vl=SAL?M2QGmVj z(YsVxyWOtP@shplovLg%q?Q8X=6wu|-SioI?I7qyw@`-+Z9RG$O58OPoLGN9Y<>ej z6nM%rj+~P!n_BXOfh{ZFBKwArnIU}z(V(m#Ek!4M@OYlRxtNr-t=cuLuY@$J8tDG8 zs8g5}b!>U`;gjOg{o#0HKNN56N%83ZaJ;;e;`Nim!AOZrh?dH{)+MJ3X0Bc7$JCdA zHb>Y_s5Ss9%}X98ur~Xpb|X5xoQk{~cVp!0Q;}7m3i!mS$ZG9QoQgb{q`Kd30HnfP zkZwz`Hl37Rud=SsQzmw`phm0AJMhJ!gE_~vPSYn2QsbmE389*Ox-y+Sq}fA zsmrHP#Zyt*N=POh(kmZvybe$~KG zr%uaENsC$$+*Ru3H*ph5H4yKN%A^!t{T6SosmFhZ>ZH=Jl{x0OiA_RJ6J>qsyY+I) zHEOU_<2e68QNK0A2aK8+5Kv6bcEwJA*G)}3(Rg_W*s{p_d|vjUGTYDa2otpDaByy_ zZL!0L^%a>AuzvMqXbbap1uuenLLE@pbuYmuwhak-piZ$7-UL>}mqd5_y>+#n1iRAvS2?_tB!kShqJ#6ZecO(vrREJ9xp+htB6+M;Bd7#qf=>>pf5e8Mm>#P}aAlD@!qlzGg^u4^P+GaGY}5x%!M{i? zLi+^GDONze?^Rv#dhR?1Ak1TJ{hq&idn3*W1ChtuNj`T>--!JuQe(j;zSxILJ6ATr zq6M9wLlcO~;&D&Y-_VB8ObT9FHv0qFu%*1B-Vdllu`C3GdU8pxr|B?4c@6I|#@?hK z=ZZbgua%kiU&+nV;oK~(-p)>w!i>ajWXQ;be=9@C$d&WuGxR_4+1Lux`LS$xa~^Ya zU#j1#M*^lg4E>jYHL_`KI_`Mn=Lgj79f8Oe7H=yxc&TxDpvTR%!59^81{xo>9X{*_ z_|)r9mHy1rpIQ1-jt^d3?PS-8T$yt{X?uuBeFf-g6h4v7;IF)ou)}*nvfzrErGk(7 zRYzD zjDaGL+bzmsu;!nKh7)MLGoYK%i{xQpS;y5Tr7`S+OU=lVdTGjyc`O|6Lw$iEL%n&G z-!augbw~|YiS+P$GxmAV@3n%N^?plo$MoZ|9@nF1TD=S%tz6`cn{zMIbQ?9_K>stX zEle=>$Uoe!uAg!PLFdqIpd;CEtPY-@&=#2|f}{MAhd3m#X9sQ6SUvn~ts<>~y2Cf_ zafY1#DsBf67>H6J4hcq@v2UZhp!YUqe-VA>M{xMU2LtL6Hgd4=Lxu1}uD=lKdG)#s z)Xn1|MVWfn-*Paody)+V)Z>c~AJ1ywcOe6~-|+J?np2el^^R#pq@*w4d9Of8Pr#BW zl>uC2Gh5!5pnRWYG|B^J>`JW=jdld>Lo&>kV|m7gz|i{8v4NFm!@x3rne=n-_P3nK zn^?7YWW6hRGbSb@O!X0{>aKHlf$2s!e>1iK?dL5)8&#fzgBD)ba;p6{5QDH?zhKv} zo8t2tr+Y+K4SYDaw!D$2v&}-bru&d7`!EB<@eZ0oJ#V(e^D3;x6Y48GYV(ycTX7pA z70LMz+W5Ip!-0K7=<~~b)#`~%z7TfH4S}#_isO1~eExNj@mr9GD|Q;F@`IJl z0{>vttYFts53$lwuWUOgVw5IY?|dMc+Qdk4ktbbxqX!z2SRlOWSo}Vj#${4sgRVmI z9&1E?cfhoS2E;046-ifTml^wa0XEpfe+(ilt8^GO^+qsbeZV4 zrXsx25XjF)6QE&hi;+!JJ7z*KKo|KU#lJufQh<0XZe8X|lbNC81C15w2-NNOSkiqF z8VcAcU7maHXT(;&mFV|&K)d^UN_NbD!S4F3Im}0i8oICsj&pziE15Wg7vln@tLO;U z6ZCHMCN2ax=G6l-hv{4AR_m~G6V9HVIRm9m&+Fwax(Vl-GCe;#g`c5$aBckY5H#Em z;H~%e@d6eOijMGX?Os`u!aFMmnW}+sg2zbZ>E#3(>oJxpkmrbGN^~<*^{;L$7ltj= zL^i|~oPTs1%saW6&p@>c8lv%f8rj_hJJs>-Y4jZ2&yx?qXwR|q9MaEoO~UgW3BwTC z?jRUdCvB`RC+UMFI3TN*%A^pC+ojhIlnJj^D+i+&9|g6(qMcBh14o5`kl}~a;opop z>{K4`8jrp>IWqNZY>WlZ?u$%HGalXMZVR>c0q=gw<9-S{j5%jcgd*cr*#7a7HAD&TcTpaYO*IT;NyzbYLQO0>C9Sd^2Zk#OO6ak92uQDTO0H1@9&xP`?$F&;^;w?6a!l$7fQaTXVZhdBy`X9Wg?j!M_fx3qFVkv5`=txo& zV!V`4!;+z7cqRkdG8(T`B{^R78SBFv!VXTRX3@!yC*iQ3w#icE*UmDfIalo zE(e=ZCi_TrElMs7zAZ^5`WH3QeNbsq&-m4T;R-U_f62iuea;`*lAtB_BDiU+p|ZVE zc^M|Aa0Ye`;>{!bpp%3dTbx7>=#Qq8^MuS2xH*OU!r;xrX=y3wUXGD{s7+3%!nMod zdM;{;QO!u@W{JKC(WAc2tOCEqcLOWI2)!B4)=55!QkJPlxFv%bjf8q|q3JE`%6LLp zn+N&S7T$jA&S9G1Zs?F?J1`;Ps(3tjMOkDETiK@`=f_jcvbid+!E8u39Vt^@IihvX zCBlw|#6+2(6COTGl91rI|NRfI!ukFzcwjn)f$hY+$wcS`&%-Q4vl2`%r_{Od(k1(| zoiPHDXpeQ41c=#jx1#2-#v;mU8zYV?)GAgq)`uVUaS#)Ub-q7xe=qX!&&Ks`QEY3= z_gP`8lKHI2B7BgT+Z7kS6uez%i`Jt%E3q^V+*$}~iuU2M0qWZy2^UKG5gBZ%dL5L| zfh-3S8h_2&RjOT$bX7k&3$B3ruQs^Azt4I|_ctm#oG#-cRb4*z0QQq*{HX?Bo^tv) z<~z7jM#wik%J&i_aBr5Ha;J((b4nNxHH|L?;bFVL*T zQgjj<+0}iC72?IywRxDBJ}S^!w^8#l0!Kq~j7LHn8QJx3y`?C2)@uobs|Oa+Lb(Y< zRn291lq-}CL{xT%F(&{jgd0@?Xe^*bfKWSg0rCfso3;E!Lp*-tsEkg^Cqi$&x{dpr zQ7oD|k*&;VNZJ7+XJVTG-{I%U_j@nk9_s-jUav6vI`Id@Sl5gE_Zn`ozK&b051Z5s z*T6UjxD|PaTC$)ECl^~EM=?MPRdH>yRwY5|;M!Pf0^8u?Bp6JBcO=0%Hc0B*!N!4t z(8It*Lptp$*oo8W5$dqZ4m)uPXnz7)B@n}{PC(o@bn%tp&{{xq08_-Mx|V;~0L+b+ z<`JwMZZ}AVQR7B~;JkseLQ=gw8fv!NE*j#FEmMkyxCbkc=*I(vp~;dg0B4Ku(0j0l zg75I3%J+L6pQ0TmQMSSsO_n)9Djn=W;s(bBiAxWCvG3w)n0-fMqYGugvJ$%mIJS`< zTueuW)`P_0C3sE>U;gl%R08U>Av7xY`S|O;+OCMK;HXa>X>C<-0rHJbDqs@PP&TsG zPz=e^foHE0x%L1WBe-_~@!mb|t|fd=Bp??WK*!Ah#9uU&1*p6g0|=VfoOX_E$JFvO z@oKa)MPb$@!L>qky9#9MREGp6%<*jRl-|3V=isi9m&bs%p*yZY-cQiI@wBzi6mO11uMpG5!E{ z3Ls!d5^PU`ZAq{>3F=-X(bgrgYm?xbB)HlJ?Nvsf*l-3mkVf*%zxJ z!PEp)3pi@VN^+moZ#80o`PDNXwV$f9Siy&u-%ox3VqIA~wreZT!(Lxoi#Z(+Qw`=)Cw&a2DnfhEg@ zbmnU8T42|3+5Rf(1!sKtufheS$dWFJt(4K?q6X`DRK9RQ?EY4mPFP{m-e{Y#+FSTu zQ$i4lbz6#G3 zxIo}L0D~t2jfD=4&8%H3tli;xi2$RW034cDm`)X5Ycc)=uN(<(mACULe1kFFvR^`GRGBTE8K!%O9olPc;ws`f63qzCvSf)@;oyU$ zcr&t7;YENEd$D{{Zq5DU1)ReOBcQ@-rBq}ERQPuSbIn!ZMu8gz-V7MIWCaVY5LaCl zULn3*l~s7Uz+9JAc!t1Sj#YTQj#U->jwP#u3XhfM<(i?w;|0zZxRmgu0u?Tm=sAL% zi^;%}r4=JeU@or64lo)h1_v6*D?VIURd|lTTu)TkizHF>PWi}%0B0r&afqmJIeenh z9&m#3u_6Ifld)k{CMP}jUi4~wp+2MTmnM!kPgpz~H;(>-R6jiBPUz65YVqf}DTphK zTozHixbmoiL;!ynloJV72h z+@>zj%YCiq;O~!YB{PL3D~9pq3^`dWJ?btFO)OsUfnzKjSjvjwf~it+iXQ71!WFlI zji^B?{>W0?l6ibZzmzzssL6#^IEZYK4A}`JBdmi}R^?askeNV=nziuNLE*L@SW{y) zQ{jWgTG<+4$wnZoW-6c!XqBx4cCN;fsW{RKHsU!DW66wx3@L0|vc|)aB@PQA>){J0<73K;7OtX}xN;|lO zpgBdLi#%QfQdr1?}J}s_$*VCktJfl@oxUR8EX^M!}b%=w!%H z^iHI0^JO4elfbpI2-gGRv5|Z2WB6g%!^A=SoYaH(eeHU_#_i;@n+Nr%T8?81Pstrf z`?^c|!ZAuqI{j8jE&wu_b7r;fORSzT;QQ_U;U*43B=dX@DsH|`&ygM3Jj}zv`@&olCSG2y9i!=}r+ld0BgAtS!dDqJn-b^(3AV;@H?Uy@ z)doOfHn1H8RgMD;jiTHysCfw#n?X=j2^8B*P_q&!wvC{&6Q~{sm6t%h<)BIvsCOMy zAy6m;rmm(0(VS=`Rf^e~!m$pDGQ37{LX%MJ6dJ_|Pg9scxtxd{iL?qFRG|(fEx>7q zfLs=qG?>0lmJ^Z3lB>Yt!^OdaOM67C+WoJ}r-Pp(J1}!h)Dg+t{|KxDI&pR_X9ler zIl4y>tCNU!L2!n!L$v8!(w+P{?giDUQ}#z1xK$@8ZcTtnNkSVS$R3)(TtyGl&g^#x zZ6lc3E%(}H2ynQ8PSvAR^;iv@m;{xT$h*Tq(RjJ8j+Y$NtORPmgDOv;ICDu_*$Gs! z6Kb`fn(ENUM|qvb)6&UZb>VaNQ*PLpn4Oi^$u!mg8D`Wg(Ga6 zdM*|cu^A|2k`)Z-OgK4;$D%}voIC|pm_TuI6;x>g#fel<({+k@!6h(d%GEx5{^vZ= zT0;CG8-HZscnMkuchM0$m@8OH^)QV2Rlg)J;IUTxlB>VZs`(|?dmr3f;Sp24j7b1P z#*DW@zaXP>Ct8i^BetZA2U=WBtFOW0_nkdFvD4VOx`h#fO2M7+`gUfo&tCKvlFWXx z8#MJsGVgJp_3Ki^sy@z>w%~A&`Xy&Nogj&zumJKo#idu?)Jy30+tJTPP}@`NHzzo2sQ8>Zjl|I%QYV8A z^+0T!R*u#QamJU7$%Ts-E+E58SXS{UfQMX}wk`Wf?Ley(Ww48UXAU~5&A!{YVN0!Y zsK%0fo>}u$+Fn^w_vKRIP~RY0;>oJK)Hy4bblXsk-G%*7&8*pmcVHC@Nr(CdRDQmn zccb<;)h_1D<~T*piT%ES^3{73EC^1k^QgVJPO;Vpm4qUk)-*502FOiNr1q+)v0<>g z4VsMcXDZ*N`P`mRZ;q#t8vtHoA_Dj}LlK}pQrgF>BrAC6>xoS4Q@$GL6132I8GJ*{ zADGC@7rE|)SCy^DrM6*djTk#FldBe|bI2jS)li~;SVeJz_VU(kgJYY|eaz?H>%#>#UK+t=lnvYP-%I1` z(E4xN+Y6g!a%3Os9o)$6d1E53GEQr3e0ulp-M9kUj(cAhl}y`@yD6K!R@wSwg)KN8 zcL#Wr#k78sjY9Tir1{-{G2JhC;@ds(R$s}hM))o8NG9&Ez(xoz5aDJ}o!6TAu+RN0 zrHqnijPP9&z_+%qDi=wl$h6Yiy;ki(?4?RaLZ=9xhTDfljekbB@|CnKNSoREAv;>> z4V{Rfjc9Ra;IpNWhbBBZ1=+uTpdQnkX+eFWnqjPl7;<^yLR6O+IoXEZ&fHE8TktVq z6Qck+7rEH2@IVDn^}+m@Ke7N~+_e2k>wRO8OaRvVigrSAA$|S?UnG#8?wVDo5$h_v>W+13@g2C9jLXIGR`i>A zi>KtJ%0GMJPkQ3bAlg^*LFFI1GqjSSudPBs1>e`K3O#W#Cu-*sd*Ml}G|{`5BY(JY z2!*cPln&Kzp9rVj(9C(>uinLG2~3GFR&deXAsXtfX%2n?hsBsp7I?Wm!YkUi0gJtq zTx|H`RLahxd!kRhhY1Th9{-3nBYPfQ!w;HS!OxjAI z`czN6J{zg^Nsgj=mb3;>N^$=l5uEcBGpXhyE^mx zkIE_w9}H%Rs-Gv0nqE@p3XU}+H@eM8=0#Uz!o;{Mc$(h3id^|H)V#ZgIIa*}u{f#= z)doG#__R7OU3z#8G&UTDY8?nlqM)$;N&v)?EeUjSXun#fV$f_sDBdx`n#{706@i7O zlBbLnrBYm96%4i6$%0!!XjnSBP*Zvi)>}q^&G9jsR;)HxUPdy{Kt;X$BdMtFOMr9% zNu^sDdU`SDXCtGUs7-?d7HjBw9TKawIj*d|(m+GbP3dy6zim5te-dLI7Z-R*fmFMe z-e%(N79_^VlKq}7AQF3@M^ZHGQ6W%%hdDJ}+Og=?&|!Lz&EXk`FWSRr_})Wd{Ig+& zoE1^hx_B!_2rhON;`#IeNK!LdCyxcEZ&~-cz%EIT3LQ&ZTp;{H$)Tm^+Y7tsiBVyO z8j84pQ%ci~nD4ay*+=!nPlKl^yKJ3tQ;aNIWp;NqIHbYRS}!XHzl2O2Y7$iN^pFl3 z%!&?Rb#-U!BKD8M5o8O{?#iJh4~#|XOV3m{kL|{`91#UXWU8Bsomz-;mZFi($^o$O zJ+^zOL?5^q1E~}TpOpH1y1?jn{BO9n25YwN1mf2Ph;f8jGTtZtWR_Y5tWj0xpS%G-lXFe z=(uMy?sCT6(WK+rmY*o7>-N^x*o+#=!=WD+xPo70)#Kilqi=-;@W|E+;2WOQb1@E<#?B4xoyz43N;OC`%bjbE_d~7loq-dB$42dn-NEngBrG&m$La{G}H8y zfTzgxC=#=*TrB_NEM_e^?`(NBeNanNxH3HG}W%@v6sI)2Tfr_$|Ar z(phc~AMqIXM>!uwroGX>o4hgdJ+v5@-Dli82f<3nV{AGkj1|45Gkp;F2j3fsYBNG@ zZt%Z4g_X^qSTDtL1yxH?M5gu}kyJIeXVsF-l#OQUPe<}j7cYBTwT*le)Pu&iaiSDF4JS;&TpXpG9%{?#HbOgd(dFK*P;K1< zLv7g%RO7Z5?_D~9E zAK61UJh$}>_@BCm%2{U0eOc}RCM;Irt}UE+-y!o^Y%bw>hxQ5>->QH$#50VBT~g)R zB4UNwyYOP&f0}f?kLV|+HY0xy)?xU{QfAkWvUq1GTKkef0{~I>;{B+oh;5XsqqUTjTyFa2U^OJp)?Bw!I0rs& zNxXDGI;~tlIxXlv*=eN#(rM9Gr70?z`J)tLf=N_Z~{%vS4D4MhJyw>DmOe?fF zw9Q-65j@kXrF!!vlgGn;vv*Xp$1u0SfODuxRM{C9>F@?W(`oS)?hQ5NI7t<@d9CXq z+Cw^USLRr?RFJ-8a%s^K*yAuv=*>g2hB1jj_NYq8crbVzuzt<;Ghj7Qua+F3(CW2r zgF%~{V8eZZ*JpjdIC!zwx|j69<_?Ud_o-IM>OVV*OO-7Un|-6YA#~G;OAyDEaoj{5b=;eNTdB?jcGGj5 z06PTLr=s3bai7XkB`JKaj2`Lj6=I%ST|o<_7eN{0O4GU#&!ubw_f(NSv9BUMjW(3x zdnylAs7cw~xiGIysdITFrKd?*_>iS5YBm~n8V$|3+aVg&DJ!Y&JFHiET_Uy=QM67x z^#VQC(u|@5u$D*8F}Ah=el4M6@!({7gmz|ZaXWPEp}rGwuR7j6DwdT9`0qO4FZu-xBH$)SA2{;*ZaAlE4@0-p$ zfvW;XW5bb>wByXK87Kkyg_&KyS#r#VRv{R1(#o;B;6h~GE?o~lj;In>`a5(3@T%gI z;}9g0dCgCxWOz$z4KAlMqYdA}H?nCB>;OSqajlpG5|9}FqM;yyYG_dcS`CP_L+uem zGfkkjl@biN_5`%whD_;8QgtfSj3@|%|3r|As(Z1ngjOL-v0pB`r^Ii(Q)pRj(-P18 z>uNj;3C&>62lxSOPLkZ11lQRh6fo_e(Me+&!zjqSJqkUO(?i>Ziv2bfXpTghlZG&4 zbQ0H15K0RH8sd$9(i{!VN#N!J%5mkUaRAy+zHG;aactSOx@b!(Fox3oYCD_vGBg8k zY+kiqbK*0*c+8q;Nwm=FdTAjm^Y{Y;puDa!595oA3sN9#WI(~zE*iw`vrH?qfi)s~ z9MQ~Q1LhC9$!xyZ@h@o@B*xym9dM$PJaWy6xZS^&+WpHO1Am!t0*A4BZ(Q%U=p#nJ zP@O~_!2}5_%{G^SB(-^Q*&D}$cFEZ%_8gMJNMY+yV$F`VK8EoD4RN~!iKEeEZ{<52 z9I}YS+C8((Wjyl4>%O69Ndb316>ak`&3tK@hdEb z#Vc1n)IHUTP#C$)|83N2XwzEw;GsY3J{H)rSY9V!Uu+*{Ysh;HQaQbP6Z<{qv0xyy zX}!c7fCkE{ywGP2@bHagc%2C#o!2Rc0>}hlgk^uruGf@os6qeL7ny;K*UIwHrrna$ zFenuYFetQ%-Od%f5*0KsczNi@`Ex1_2q1GR;YAbqA4&NLFt`{&5+n~qrUgH5SDAnI zO#7u8Fc799Od6B7E>7mz7Fru_WU+ipfBW!K7@MK&p z-f%tcgSNGFrF-y*h;uBLc%c%CjK~Bt0E&K4vO5jgl~(?MnoQIv32ox^=Bk9LT+X(x z%Aui6Z3LjP4{sEr)2O)@kVAg5oqG**E8RjcfG`?k)n}bXLP6Q}SqR6HHhjb7>iSAb ze7h7ySnQK?ZtDEeco6eUS26zeAMM<4$7qM<8cYpiGp=m*!mP5{Q-*WEmbsIr@r_@;21%Vo&1uDd0Zr zkMD-H4S(o_d)e#V-<#Mo#(N{MWEHD@ z7Ui9WsUJJcJ${&Q8FqmL?H^7+pSIEMLxF116`#$*N4{39~shs{XX}2WP-omu=)*vpnYgy7EuHbh+ zB8ziT%I^7m6^+Fij$A%6kKh8Ky>dZpMFeT%&lNKt1jJUE@HrH#^4qaZYmr_h^2~Mx z&-sWv-$Ri+(Sa-y7?{*;(byO;k=YS5h-yQY>yNp~NQqNNF3@ATr7uV4CIKf(I0`{GSEda8Qe!lIa=4%ix4S`mm$ zPm6pl4$E=a4ff`y#dpH6K^ksz^Oc!>ORu>ul5wU-J!fo~-gozd=db-S-jSK!2Uk4d zf;MihW25A4iFJZ?x3l^c?~0SVaznw+_VxE|eKcoYW(>hV(fY{}-w z%50wvmRR5a#hg0ERhYKyTu-Fxt@xWCgnHBFPXYY5_$vaB>pBGcDF{{WDotB<7Jw@d zJeUvQ%LLBp+N=G)3V)fR=KwImn}Cgm-#QYHlRr;Ma0FsX*fRhyY;dp+he3}RF~q_6QUHTAMg>z9@ufj|d?nI(3u`^5+ z?ggY;L$9A-0VUxI8goG)wabr3jG&bX7^kD^{vL*c;mvoTugU(`^!ZC{ay$Pph zb2nz7vhd%HnqT2~)tvo!Bd|O&dh|Cu133~po@p${#bz|X<743!nT&(%G-JggqI5nH zvrk0|=vV#$jHDB|2|ykIYYVFlhF?`U3r-x^Mol*wam!q~+*otNEqBvjeCXx z3PdKkQPOe-v9>TCron*m=%(Bfd;C^yc|6?tXXqiMrG8F7K=Rs{8Kjy0500ZrEdQNsm8O`Pa}E z_DFlfXsApux<4g5ZPzb9+|nyfYH2ozv@~gxmSzjsEv>c);cRe{CJnB_B)2Ki#-pW; zr?8Fl5Yx2om!Rrdgnk9LjL^gpNd?B61Mauc#Eg$-Vuk1?j{5P2mGNkYZoU`%ZfN?n zrXl_dCSF00+{`XkfV2^5pFh40pS^y}G}w-lj?6YdCtw44ws5eP@x>>!Idmh@;74KJ zp%8mA7y8`q8XK#Gd!iy7e`V$7Y~`m9##eitdTgm$Ew2Nzp^in|0Rr=v!gYN^0y0}m72 zCKPs-jwb;G-PbwMXp7{o*Z}ko=^DqeP zv4r<|m;vleLdL>?KaBK^dn~}t6te~aIn~tL-zxh%4_~Cu$q6^e;7|`O)+i>8t1IHL z=WOZ(QE||UaB_gD#%u-KF__@l9$r-pLkagwf|1B>V8ANiVnUhP9d8e9A!6{IpVM@9 z^<mKzIsFCI!wH*^*JJesdQYw$V@CXAw*HH}6b-x)8>rE$HzqE3B9tE1Mk+%--pVLvJQbiaeuQz1IC4 ze0-qz%5W=ohXG8eAz)+=x4)Nq!9CGqxMhbJdAAO6?vHRnjF2N=#EC6KT>3+JU|{4T zb!jBBV(3w%0Bq^I0XHVcx4r5p80U;J6aIlNZq$AOVT=v8xs44^RUgx+Gk`*nAy?y} zq3ZWF4*R&w<6`Vc7PLa$^OhZSwc^3y0zO=P%QNp7)7yyR8^i^Na1itkFo!CP%U(8W zw;{5`Gj7Rz9K`Ba#w|nFk#a;Nq6KlDgrfzi-0~N^uYAik{F~lNXg48TSt!8Y)ZO^@ z;l<@+jD;%!0L37GNA; zdd-vVXl!6?z-vrLXjB}iVLU(q_ntVkf0{5Dd?hb=xa@e;b|bt}4?pRr!uRelzukO( zxcjT7YJo}HYoS~<(v73Bi<=wAup(qMCCEb!4gHVbyIl)&0JSYV4YH~kDUC0CxvKzk z5IFccoaVa}kfyt69~N~yONc5rvRD0?r2_&fZ$sVTZ+Z(1hQhfAAYYO`gz2bcZ{;%> zur)8DUnhKTLuHR{D`_$AZ3P-D@$8*u994PqPRRllycbE-Jl!F+l)d8V4pdHsaV7v% zLlQP@Q>kpsdg9qxx(17&s|~UJd3Bg3wGh(bhP@6{dBQcWaDB>!Ii^wWOTBE z58&Gey56oZhW{Cv`~!a@=j)6*nd$d5`~nDm35oA?Gr%`A61h)*9Ta8WBJLSG01ure zuyoCwV<7E$khmRRbkSk#1yyC_ejCgsjNXndb6kgnW$S*4m*pA- zG$#zxv!i$M2}@X_H7?%E9GS~Byq`5K4|(Sy?^5L0{k47h9gEN2@6p)~8G>WxKX$DaPNt{IH zFdW5JEwsoCD&Z1~^C< zKQNKnHvG{19|AYYm=yD&!S(oM^EHd1BKon52Y0^ zs`dfS|C2tJdtfgWj~Pf@2-*I}<$(hi$in0uUoxj>{|?xeye}4u{}!-2;Hvx}_YMI_ z>`Jaeu=gYUgi1r)bf6jH5R6Vi8XQXuRQ{r|#LtVRhfzJ!+)bRUl|-dX5|uVt6@%t7 zqEg(ep`udUZ|F-EmEs`2IW8tDHBCWLRHW(ZizK)K=`6fRs?9}<{2Z-h%JXecQpr2; ziH2GfeJM#sevz;qYz0`6F%SuRNiv266A4*kE>$RLKnKmV)mU*GG;J$x$zsvnX!~pP z6C{6LB~rg(3q#~jE(3Szb=t?XO{CV-?MVamvk&^$AqDeR-!xH4;;q&#DT#r+uW{&b z|A`uQEWBa$O*CjYI&B2-6MUkXx{$F0ediFfVJ=D)v&RR;>6ztYj zSe7x8Dm9>HOxE5OE^GhiH^D0}Fd)~n0{wD5m3Og`6T~ZQ{F3QYlgF(gPIK)tGDqq@ zs&~99t^zm;Xbc1pWmy}q#)39th$Msb*s4q(m!=)$$+>hfSxn6XYn~@BjadarorR%< zKo~YVS=jR-VK*{ZT3b0C7n7DzPTpGYl1O>|cv!89arT6dv_F;ejs4Vq2nw|&)O zX+Lx~nvNR~XiH&g87Y*3sgT@i;L<{fP%-HfRZNmc@Zr)TFj-|gKpNCYdm6JxYl3xa zIzmarCK`>&^%{&0QsH~(ccgqSd}E8+ezY_kon@U%-#$1wDSJ zz7T7Xt14(Q6f0(pJ5Sp3#Uc2g(LmoF;sekvKLj*;#(~pdM8t}uals_esXra0F#-CJ zJ-FrPiZj`LeQj$YzG8C$kG9Y1Yziv1xViQGGOK zR&+a69KJ`Q&-<&4uOyglo#C(S0A5iKD%(EHRvlW|mC%0(qad;%->Y{T8=TYj%2KR+ zZ=BQEC`<89;}^1&=rnqr(~ikffBD`dr?EwrlF^8Ey5zWd1lnL;-syrWE=KQ`(0}r| z;sYQ!K8z;ckG0~beNf5o7K=vxR4`m!6I@vwSg$@Sv$za{s8e=q!?cO76u z+v+V4FX;g5-|#76a|?r)gt^>y6YT0JSr_o3X6ET$;OVfrhAZ4Gl?q@EBA6(42CEh> z!rEPJFbp+8NiW2uzTEmHhCa~_Lm!<(-v{0pc=h-f;E#nHg?}wZ<;W#*I)_CUjep$| zi%x(WgMU5zTDY=i^9ZmXIK!tlQ&UOt>jWjP5REkpdo8G<|6I#k z`CHcHG5nazyB43+WC)C&V1wz)lG{jm*=d+}8Ba!XB_h1Q*-$lRK4MstVc-vQ!)wBQ zwag`!q0yO3rVfqCT#`RDHq&7ls)Itzp_z`UL-meC`16NG(T}#N7L}$3kWDOlmz<>x z+kk%5panW>?h(`gO16Wwj}5Q=nb!lg-x5~)En&5<=gFw{YBII*>kz>zZ${CQV*ERR zq*h}+S~9gqtYc~qRJI4a-QbOaRd17hhu}!O9UH@(>yW-3>w$b>VNCh=C#u&@S^v_+hu`f{Fn>$3R&BMWf0Rd3q}urFZeVF=z~aJ82)*$?=*_<&)6FFDt!H=kJ+leoTm$|gBu|InNoi+7 z5S_UP{}56Vuu>)5kA*qmen=Gwd2#re9Z$YQ{5%DTBjKqe{7gz#Z^}Ui_P+@8-z4+9 z{AS7F8|Va|8-`tto>C7YRcevb)b~by55=>X&Lc6fkb=YJ`R89UKTq=~p5~I53&P9g z`AV)jpL!n#@1~NR3*%wIsec=;__Y^ygQpj+11`GLD6Tz% z|I1n0-(i)^B zU12Xl%GQ*DYHDuLj^+Ki7d>Z|KO)r8v&Pm%zcLQq2F}ofhitTc47%yE=Hgo4X>;yQ zo(ib#`6~9<2*q#0rRv`S`%Cm1G53r`!1+!abSR5!MRY1t?TDW}Q17^FlelIwjw7nT z-q3Nx=h(5bq}3Oc;{^GzId?l45)jI^lP0;6Yc2uWtJDw=!#n%H_0S!2sBqa@aPDf4@|PPQZ!)$Hyg}o zaZR=|EZLfi$A~Abxe&JYq{6TPwGBMyIexBi+5mOx;+j5IVW&m-!~!E~cnyXtn@0

l8pX*C~>j)X* zO9K(+v?jw&ohkP-82_sseAbeC5Zl^rb1pVtrjCSK`Ds-~`7nY`qJVZZx{Y?dO}TZc zSa{>3-g%c6`uLuzd!6e3;A@0K+QCyfV0O=xzpJ8MWZwyL-4Z0bPz;ZUW zJHNt4?+`BnXqi8TK#|fQj1nD0*q7Kx-TTaS_#OBMz<#EORrm-y-xy&Nl z?AvSB&IRy@{h!+{1gaCZ=Q8ut>;AcVsvAB1?2<8!#U(bS670JoiHONoE6OsTl@e&hGtZfns3*}&6LS+C zu;Ji4c&Qd0c>rBfZ_D%JrZ0+QxQT@)3^(3jWg_B6{N<%_H)D1BKr5Ze(;+3ceuN2-cY;U4gwy`0|cxF5xn6DJVbAS*& zdN*CFf;p6&kN=2xZp*!N{EsJJI=&4XjhBL7NAXJ3Omz1ZA>4i$cxx{c|H@_JAH7Wc z_{+p!f0_7?U%50s-oH$|jQC|MK(%9V(nR;^p2q)s@c$Tud@}x@#{VRIKZXDOi1Xq9 zeM$%K%lLmE|1QLxz`sBLYD$a$@ksX&{z)pK1OKxUCTISw_>Iet#;@Ks%A~BPwbE3) zF%DO#aN`ghR!-BuVjYPb^V&sY-bwS{rt))rFn|q}UAW3i`xmU}Tvl{AeXB;_5Bkx5iaUx{b*0v=|}ux6^qjl!_1ED=s$j(1+-l z342-zHLytHK1DshXXV^9tYC+lu0Dczs&4%riceL#jEhlAn+oz(XN;oOk zwl#mS4OK(hR@9++)@5U+{}qx5QdvMF~l1&&!vNMD!{sFWCQNHBzr zgb)76N5V5dN2@IfR2Mb|o_P@8Qxhyr7clAJeSr6pIH(cL2WH|YCyRq{WSO%!)rGHt z4lp}(7MX&x$XA!)Eb>Ow6vw6sl#v}mvMRGiV5@+QQnAvd!QnFg>mlRgwEF3&o-Z@8 z=(aE4go}WlOaDLtPqjdvX{DPG9WCO6IMVMBXP_@1#NqmhJ$Yi@{ycF%{_}vbr@_(g zIfCzVd1CW<Yveku=GqsUi^w`zlphPG6|B=;SX9+^hrY`6?``;9|NENa zV=K|^W@e6V1k_yn&Cz*`SiGSAo|{DR7^{#9syaU4j*G|9-CqPU(adAq%)e?WP8?)h zEe^86e4X+zDuioDQ{Z@*hCGVLezR;`8BAqeCJr_h;cY9wqYs-P(I&-Kgxf`w4~(vF z88y$O!l_uyL7U6B!h037kk6ya6i0shC~K;#tx+VNE}Y<9&WBs$+(HZE7(^p8SBcWD%f8w z`G!ErXziskB=M4M+mY;Rarmjcb-u!9dWypjGmjoM*+KZZi5G9gJ&PGpIXHVF_iI?u z5Qj(Iiap9_x&g<}P;wWNznH96V+gAT^ugTBJQ!_a#r=4;Vq5Lq3Ja4VM^&Ghl>DBn zo%t`O$Rp`(B0s7kYv(xj!I=w=s-WwU#xvA_6oIAjJ_JJNG_FKxPXaiG%W{l{N4OW7 zQ(v6Ly+s%<(7*E1RD2@T0tX#!ETRUyilZZPhw+BwtiUoxV+1%rnx1BS6E3O(xL{+2 zco70oLRs%sK{PoSE^eSKz(rLM7sJ)$4oZHrntVM^-b^c~T4IEfMj$JVqmgiVnM(=C z=Qx2O*T#YT2|zlPIZ7>a86|s9O`gS*KXd6a?^LtCN?CuUX6?bVrgtrAv|7cx165p3 z8Shpz)-Psg(OtUCbhXSkDXS01ALRa)XQg@FsdeMj-njo`(mex)?Knzp2$uWt$XFnSa~8lRm^0kika+G z(RxhI>@QDbr;3^3r;4YaS5HPsHw(y77Itc}glF~V4xQfOE1t(C@h>_PMPMR#l35%k z8gggy+?hOgCeNM8b7%70nLKwU&z;F~+bf96)!L>w8HYV1}58)n!@*G6r`pmti+zMi< z(rOk?gdMF47;n@&3$S@L4!wa^;WixDkmta>pc zTFhScVxm-N1ktT7R;y_V<9XQ%#`CfjjOV3g3wdb~>y$T)C!trAu*WVHH`4Yu-dWJA z9~gDRW=X0GS8qz@qT6tqFMHf41_+)yA8uemvzYAWkJALWTH=qPV=uKHuQ4sMwM?D{ zl3WK74c0(Dmh2yC;XPqrSf!KL*0M!z5ns3w>;?2`O;i%Qk>)&$(1g3Ty@WboUs4_r za8;QN(M>qI3^qzYPu6VL-VPN;D=>kYzAi8*`RUcCSdYo2KL5xsEEARj3{OE4vILM@a~ za$kdt{dc|Oh?X0enzx}4K$LDrns?P++q zg79|`p6Y_AWdS=QzVHbq+24RgbZ<_rMF$2--U~z@F~B|~Tn|p72Eq;fLOu{6 zb=w9Yz;@CPk#ZRNj6so<*}!%a0Ng^seGNjbv>vBrK=n}ovIsc!NV-X=Wxa+t<$i|h zDpc}jUdfGACt<7m1W>(Sa(@Nq1j>WoUKtHxO!#Ch!2_B%7Sr`2@}0%VYyz6Q$!C~r z7EnucOE*}-d=^J+xL|rOFx`O{EaD4IglT6^t$h>TO%kHFvEYA4aMJ>yjLCOwPS7by z9zyt>m<1no=K!I$uAQFn80pf8m8{=j&weMc|CtfDG3-02BTnJ%zy?$fyAeLI1n(3k6!h1qetTgDa2dYwl!IQvEFPPdyFuEZ9dN$}hEF81s3=ZXi?{t8`Sln+B zIFNSia|8T5?SDd->J}hDWcZn3Y9&XuAf=^9rQ(XruETGAcpylvklaQWnq*9l-i_lSODl z^Ty$p9Ym%;Wh94SR%W0+c-od$YnDHq_gAV19)nReKApED*rwk*V1B9)0XVZ2T!v3xYD!iebA@^K4NR7r@gFEeJoHSNr-4~79 z@JKc;#E&ESu$Sm$Ncu2xz(O1&O#y?_IK0QQ4&c&ku3Et_(%Fy2<3d~plu%1cN>WJJ z$?qN~NDl6YDvj6_JmDMzf{HZy{Cl8f$XSpw$fQ{J;$i#^BQR`zQ&W;@OXWr+Vv*un z>t1`c5E9>?;?F_)s_xFc#MT#FBcH8VXet3Uv!|g+@LS8oA0JNktYP zDD1!(Z(Z+C!b&amCqcwWvnZA% z&Olz$u?Y3b$p-l}S#!P!!j6JC1rSzzfb@rT#+e66T0O~JBfli?3x$<|Vgty33kjjE zZ0|tdc<|7&aj&$*k}|#3E#!CWsmb6$t!^!S74a{%Dhs01a6_9XDW=NS%%4T{< zm4=kZG3ie?4=Qn~pIC`bH)B@2u$c$1EtVzHHAgd7X!U4ORk36{P!d|#GH_v4IfpMlchC3CZ4b1^Doi`vn+mz5EqC+#xxkv`P>n2{I?xCs2_*1KkAFU>V`F9f{+5Fp% zSCY1+-5s_oCpCfp%(2g8~QcOLpD0JoC*%40}bK%uMy^!Yi^AjC45 zF&pO6#oq<&$a^fY5#{tFX10iHH`XfzWS8w%{!?f|BH2ODO~!$E(3 z$^xsLpEB1Vx3_M_s$40SZ0uC6)xqZ4Zl@svt#LJKV`+QXkWxUK2qn*x1Y9-$2UP0< zlBAk*%cyi53qUEHsyl{K{t4rVQubC;YBIQXxxLLJDcad7x(Lz9gvaJS{tS}6dIVI{ z?S*Q(kYVSqD3EJgf>k&pe_kkh!&afkz%sDWk_E9Uo)*0RtQVOsN9ad0?zLC3F$Y^q z?ON6jv2-LdQB+8oexR&FdlOLDvJgv%o?f)%#>qQ5mF#Cl4KeGn+XhqMP^I;gX_+H$9|4WkDP(+!5MBwFHnvJqHp7=afqYEs z8-mTw4^x6FwrZd7tJvBOAHm={wzBU_9-aKNIr-4B6=zzP`O{|~otK=MO&Yf`ycw5jR zegK|qL)lGR#(T0&Y;Ppn^76*03{Q4))aUCFnDVbr4yy2E4~kp8f1D?KSf0iGp(lGp zM)@qnjY{wPdjyXD<%}=kq@TQPI#On|pE)!h_r<1|bD^6k-_ze~4=rpl+ij;!n8nM1 zqOzMx;iGZ#UiME>>fB>zo&)6kx*4yRd$JdNecQhSazW7>1D<&BL(k$`__T}eK)PM<e>E)v1K_q^D>UI&jn1-tnHI(eSZ4 z6{W*>;JFVF77w2=XDxiB((+HcdRBOf`os5=-&BqB6eYoT-^0>aPf;>_(#~Z_2PJKq zzI|>?_Y@6+Z*Gr$NH+|=K`+cj-VyNKo6t6%M%8pQT~8ImsB!@{eCq$;aT-+!_FfMk z4Oxn#^i^;vy(fb%+R(w%T&UIN1G2c1nn=S;##oe?&bz-^5F}Ns#IL^yy2dUW2As#G zeScPq(BYj%MoS5KScI%;Cob-(MuVPzbhql5I4OJ$tkdsMy97Zqc zEDWvLptssdnioA%?0^m|ZCrJxUm7G`bvcTjR5U$FgnIuCK0I`(NX$<7p9(m3M19Yfj# zbD4N(g+t22UMDK=nLuj*# z_cECDAf>}Q8p&{ovkH}>I>Af2a9IiAj|fnCHb1fPLtW7w?cvz2S9yz^rq>ZiVI1!c zo>HBiZ{rRJ#St|ot(;_lQmptDwt3b(FRUj6-qu0hZvE~^*Hf{h4Pn)hRBE%vX)iU~1uT4<+3Tr(khPA&I6ALadkCrCts9)Sei z0|~l$ai~ua`XhlDNYE>gpr>~pPmqKJeF6!32NEQB@8t=Sk)U57LEk`v>%1d)f)pgU zF_7SfK!WSN*zlz~3}RRgY7SKy#YwZ<{b85yW`CPp&WbP5;jJq z;)9xGJX1L6qMhw-^-}Am@poQ?gSboVv6y*JAn?MI7NWr&7axwg)WF@q`%bfI0{ zYTb>!x>W_$#jtUNEeXl@0ORA6kc12CG6ui=X{$R{EV+*4MO;7Qc}NmrI}83iUPP;LM2$&i;J|8v z5l>O3BH+Rw_g|NYBONk+fEeTJ@EOSWd@zm}2q?u}69Dw>^t_{X;e{gDb=e{9J&IA`AFN0g9Q}2{2t6X!#fN12YcS42qbfP1!`=wSO`^DlkWN_` zj3e=UodyfOAAvvZ6j!u57-tN|9jAQQXb$8X9E{6^cir^f!ML8mxD1MWtYG5D(0Y<>O z?v24XOE9j>RO4m`+2|*twN5As=1UCb>jJYKqgHJ|m(j2{7CJgYHsgHk}xpY#xXc1NMbef|Jet{09anZ84NY*BnKT(7FY$P{591 zufH%|bLUfn?RLqTogr@RQ`;ynxzZ7mm!PB z7KiZZn&vF_1)gP4$no3QA^_mYzC^OWYMKX()og6;VT-}nBbw%fv6_L-UOd5O1U=_R zY$y6;`!h9L-8v=u#3zJpnc5FsNF5oyR^x~V4kMA%gK=HR8J%FN`MQv^*^i7jB_He<%aSRtA_d19+OCcj7Vfp*&GmE_42 z5%_?mb)$g5gB?8Z0SmP1O*R>op9&L{54s8H74TYM`nDUC;$>`Ltj(ST!J>*3F1~+W zS(-+n;2e(|1~=iM8I(c2|91jB1rN|%ICDN|9DGdq^{6!?!{-4 zf!@4z$+7IRqHHZUJF~HgOCw~>WV%gmyH29J3HGWHs3{$65b0~~rg~DV`EKrH+y@QI ziFo4B@W#qEmYrhpbU$M0*h0wowADbLe?{&Qj3a(zohAbX-Qh3cE9`fuUEhVns|&`3 zb24-hSj}X>*u|Z4m0$dS!3Yx~p!35YQ;HazP1s$@l#w?%D=nU0h9KzPi3~%zcG--)d93 zOqsf1TsT`?7L4e^7`&;*(PdrUOyUpxXjl}CrBQ>b5QpH8eK-iW3v*yl<1ibbx~6qK zQF<(y{;UJlXs5A^!zF6(kBmiRI4XJp0;An67^kp+r+!TZugvlCF*abjW?`(r8cZmb zg?$lCL~(1d`|hv#q+r}Wip#wv7>6Aee|e1*_bMKv z`}6e;#vNq&J`Kj5#bZgM{LBKF3~k+_m$!)}9aty8sT39BWQCqsgG^=9K~EYr2g7GB z1iJ2dr7mXEN2GqGLl@JCAk04jrr9}pt{Gd;KnTX%Gjom3>;;yzO0$>+yHOro(SbVd zv<{Ovp^d#dHMh0Un}`0EG&hn|nbOW6s)nMf5Y-Gt11C*`>&)`xx&Gwr@J=eH(>nuz zQsvb7pvTICrZakdBdS94K}xH{y%#Zi2i_xOwZNREO{L6KcYe6XWr(BDrqt@ei5|}5 z&!F;jQkPwjSC#>F3GqE2!(AX8!HJ7EBMMiWAE56CpkZNV)x0rylXKl)a3+igA9eF^ zt$ljbhxnp9sFsJwogTHCebW-@8e7QL$HMp~8wXW@H1j49jQM^TcTk=p6-F$BF(YaU zilp!-Lt!P-`dXOSG+2d&G#u8*Fj(m-tPf}NdaY*e^r%6hu=+Dt{hK~V&!LH<2v#OF zJ{qae_<5{azf?i^-6*wMU(O@YY7>(fsH7%FnubSxgt&R*3Dl3k=+RLo4lbuhZDd(y zMBS=_{52ve{Jl_6!x*Sx%@gy=3N5JCm)PToWur=Idv2STjRm zSr{x!o;blx!-g*rvqJ{(m(Wnk&W_{r*{D|smWwB018XCa@XXfT{O*n#%lNyu5z9_e zr?Gitn?y-5(ryKWbu?uCQ}cNh4C1DP9t9Q-e`Z)MaP zFiP3kN@BfP_rP3}l1}dfaiXv^Apaqki#~|5WvDu!{UtH5Z$_zrv~N^Wmqe zI8h}g+%q8~dD}yDYHHvos+AM6yPT?~B+#j9LtN;oDjlajeCu91T}?^AzI52BYNG#C zHE>wN+NngHOsB(um{9XMi<7VnsIQaIgqlmI;9G9$Znulz&u#k*Hj8^j7I zkr3biM1qoP`4hKqfcr$EL4YTYqT&(tF;e%Y)VSS>A`;=pQBub*dk^@%=Gs{SX0z5 zGU;r!Kxe53GECE06}NZ5#Vn)Oy>JTdATc9Pz)#{`IB?g^_> z!Pf{$&5acdZ)a@?Hi92N9ap^16Uu%j-IW^Uaq@hBD~hTpSNZ z-QfIiaXe-eV)d^(5e8n>;557(&oXHZ&JS2nrV=*>6Nr$&kYo@o2lz$d0$dc98w`Un zTD~aMrdB&9o@1{X*AWKr{FYtVEx_$zgRrTz8Yx_k%<~~g5-po>y&Y)_wEyKZ3T>q> zq}k(`c|qbxXK*CZQiE@nOed`+DvA;T4yrqS2FG(9k&846mHr}OHmM`fF#uPIZx!4c z91|0uR)b?C6zl(?+$OT(3q;Q$wvw`?AS z;$7GZxDz`<%dvn2R&jbGMcPhbKgKNYg6%2j6zhY>5BA0ZP*0Kn6s_Q;TTv|A2ep!A zh;!&EXt+*+3gjJ=mAI72%G5{Cr-BLUfEuH}o0X&yrnG$vZ!s&gY`AB!JI~oC&pAn( zC-=yc?`PIhOlhZ0%KVObUs{E&mNckkEfj3-CfY?07V>&XA(NE2cTfWj3VNr#OF;ur z&|j$_XCLPzz1%~-AJ1hs>3JdN=QV{CvZZM}z>;`BGguPcW(qdPGOQyNR|VS8l=EgK zakMGzlZ8om8HJ}tOT;BJ1;+r#L}+aCAl#(f=bLxbDjcw+wW2+Ot*WUJwS>0VS|}F> zcP$x+@pcpA4aROW;!JXlMgGMqhQ@!xx0&ulw3GHHaE`0VKo=f4!NgaYRlWdCP(ZLn zwz*99M{5TF3N}eC&PP|ntVts{!!oNfN^ed3JMJ~$b)VC?$}B*K6kS_URbB3wKsR*& zu9aT5yVw_Wkg&Jzf5DdtkFc!5aok@>Hw(J}2`2L9p_Kgq=0YU)B{q^4OC>|F*}c7x zgCPyO=%YLF1JHJG99s=@zcPrGu7G|7v2qXmUqCux2fa*LLTxT~3`j}BC#vVVeX8dN zU#gyg$H-$6pK6B!g%bwy!2rOoIfv; z?&FR4_vviEHk7g^@V7v)u0pM#r)6^KF8E+_2^El)D)N^Wz^^kd)fwN`8DDj7Al(YO z4ef~1ZRpSZgYYZ9zi^qN&mIiJ$7vNn*cb zu}`O@;8&<772UE2ukCfE3nx`E0!4F1G0_=I8be%vEc^u@Xrv6Ns%Jo_Du zU-uy`vzxrp$?)4m7x%E-8oITZoC>vzq>)~$@Sueb-~3Hu&AiH{;UOi*3AOTDXdczU z-^k0iQ0*GtNIFrrZ=g}A;msCHXJ9A*-LD#SIZI)zi14EjuAHw?FJUMWHkHH#=L+gC zdBq3#6h3pVpq`Xhyoz7gHKLf(l@znlSxVTIOP8}Rp?>gZPNqsjE?tI@!5f{%Wpe4; z@Zz>krlSAM;9R)UpxZ$G=bYw1d8-g7DT)0s1mqQO5|q!JIYsh{rK)$8yu!h}LcIYN zo{-NVG_a9VW)Qs26*M$-D`>E|59!EiH5;2cg{r4hs9HLOs;yI~LKwuNX*l&d5KPRi4?lo4ctxk+=HWZ8khTB<1ztO4i(MhAWiE&lVoVN|S z6*LvXaZA`!aqCAPwVUDDgw%dK2k}Xj5;h9;&Qj_Zj$dH2l=Vs}HAuxRwX-X34bJ}{ zR83G4f9%XD3qvfSfp84OavYKJaKAFvv{ZUmw9IJ;*Lyhob~gq{mNjibQr+`f>7KyqSnr2nXPO<8JkKY}h^| z<1CAhE#MT6$^pFoDm?H=jKUQ$3U|Po3;K1$ARK9f_H}TUpifnlK_zhy!_P@vK72&t z_7I618bab~DS0l~t`HJO&Bj)bBwvtO_nKswQ+v%pDdi0fa18Q)d;!Or`_Ml8jNmIkkSN_G;Fyco%IA??+Zyd03ch5${N29j6%4M`rA z4`Rni-Y1tOc~}ex-A(U<=Be!rC3<4XF5YHl2=*T)eN;CheL0}))LJyt`wg2((|G8H zU}G=cQoi#08@rLwKGvyfkXZTv=0so_kGMj!j%93vyrK-H(+bUa8F>R)7Zc86<=nt1 z-i8nOcRkF)(F(m`6}|_bb#7oQ^oF+-xXba|%g>lCV`PNBN-r5Zz;+Nfi;4FygBse-x< zRIqLXm8si6h3Pg>DIjN5ISH$jZsAhFCk;LaP1WZ@7v`pW7+PNi_ZN;+!V4xomB;YN zF~ji)Tbc;wSaYffXBY*q!SKt96+Qz;0i2o`hC^^ljpH~CWhinS;3Nh(7cS>W7tT5t z7Rjt(Ye;1H!utCHc`vn7AA=sb(N+ zgiSbvPB?^5FcrELglb`1U<@)=;+&%26v|3m0ilD<$_79x&`F)>oxuS^yKHy*(p0YS za#U_IsGKL9%1OR0ST=}0_{rRDoXoM6UH96{c@bQlN?8l@DsV|@N**fBzyrm z?&c68M?_-WZv`shl_!bA;ffllGeFI7*cP_+WIjJ1f9KjbCk_o#Eql~06P616;g=DIlAN5q7Af~D6B-90kWWtb&U20ud z>~bNQ+8+>-LlDfd%49i)Qy@58NPZM#t?}YQGF8tnDpR$&AQuU*RJ(A5G9md0q#V{c zud!NPMo7K_%GQ;np*9Uv_iDu!F_9+m$Y17$@c8!B{+JX;WS`VEID$`y+m zO}N%~O(Oo*CE_cfbN^c;xQfpsP`S<$T+6_4D(9zm7jpwAbvV;4ljLo9fkNAsi^fRG z1Rr!G!c>+?c}{E2-2-FD&}NSlmu;2V9h%B)pQbWKQ)w6tzhN{!^rJOUEeZQqjdXHr zfc4*=plNn?)yv zRC`n)9m-KX6kMQ18+b*a_7T-+mi*s1;`|}6R9!RLK){hb&|U;mMR}bFB5NBV#hf5J8Vdl=&-|LtR($@$mD_~rSbZ)uDZ1AYfxgA4HArrb|C|D97t zTsJY_#Ds(A&hropuCm^TXi^dD4a*2HhxnXUt_m{Va#dK?F_aa|x1Z@g$eHfJShP_z zcy84$fZcs%EcfoNOLnDXKMa=Jh$9^t3%kACp$H!?yh57&6HN9n`2P7@mLeEwmi z*PSrRXP|%>72>mn27AbCvF5rFqYcg%8qu)OhrvrT<{mzPvE?AN*Lfv-jSj<3D>NNP zah;}+h1LPo5}GTZp4nc7660th#RW^G>X?@EhQ?v7fT<6Z5Hi3KPh~K1xM>M%lDckC z!a&XWBmz?SVgsZERvQc1c7y@o9jw8~F%*}p8n6f?@kM|&k6tBi3NBY66`%#noLh;J zM77LZ5(m4SH9Chyi^1o?B=8y1PFwI?zmzy28tYxf+f`RG|1GEal zLG#ow7EMK#Ut9}HIw1^NXGtfNHBzM<5;?#CnJy}FoC{}wI`8kVmgE{HbYv;|4M0mk z=ve)a2py~WQI>DfFTn4HNgW3H+;=N>h)Z8)GDkLKj(5Q(LgpxgojQ^^R`VmU)&3(e z7e4~Si%B{HdlyGwcXOEoA^GeG437ku%wdpow)s_>-Q>m|?KeWN4e9Z4&~=PFASDqb(xFFtZ6`&E3QWfQ5LDlrD0KISFtIXqS@C zr@$<4t2<$@0_%@cs;2qs1d4}C3^J_v)d-F_oUK{tY%Q)AJAYz(liTi5;&8SGq2N<& zaH3u?MYj#-L@30ObT=~40Upbs9^N5?C6x<1$T2Hbp!x=~p$d*!cMDB_XYIx5A7kqS zO|r;m5Rg6&hyAEM^d1n?ZxrZ2FxB4_%*7CtP$MZBotdGz7Wp(jMj;O@*Fgg}KaMj9 zZDx9_ibJ{6tSaZw0*IoxaJU_`A@&U2*7?(iE?y@W7fDQM2eiuFgyY9|@pF3CI z10`XXfW9+I!Vc@MQ4+Ric8!w!LmOD%Hzg_gUMNY)HA?b7nv&eb&OmVRfjdZGnF9l5nc`%5kp`#3;9b2{sX!}e(1xclxu(%lWbkhM3Z+7${cJepMeszl>}S8exyiR*|^!F%vz*1 zDOoU;Wn6}rF5}4Kz{ROTxH!NuXraQuSnFrhNHZ5_&|ow~y_&?%NdS1+Bqg1K95^O{ zJFV7f+zh2+snrJMUIFHN>D0vbkg>F0EPV-_iUg$tVh4WHMZp8@1U=xLrRfmPQIH1e zxlU*^98jOOrl1?8O6ta93PjSKhO8PNJ11~t!X$&Co6nJ{ZE^uBz}udXl!6r6Mkfx& zoV%Itht_!=S~aOa07R%nNT)&zM*EsmJBRSwM|TG@;L$6#`w5ac_dLO+1kF|+59Mxa z46K&v-2`Y!Cg4K53VzmTpRkE80nOyavc`xo*^FePJ7Ap_&_=V(?hMCsTBuu)e4C+d z0d|5v5=%*SgGFbgep@XVH^Zrgb!KMt7yjTbEBXjGh<=9Dm%2ej{LQsdd9hJh@|}*# z{A;5!XpJW9-sbl_Dm%XWwGvhnzsXuTo~@Oy(OP-63tH2Dz7~q5q?n1VNZ;yG>maCX z-Tju{O!z&nng8UYv*aHeoh8>s=Oqbxq|q6w zsp`A%2i9iNI%kxj_{<7jB_Eqe&spxLCOM}Jo1fn3Hd2m;J-z+jbFJiM=J;CRg+9+k zcbc5GGG!7jHB_6FII~%q1|DB0uD`Q@Rv^-V|*TAQ(bfO zef|W&3KpOkV#iUzb~pr#HaY=~vEu!x5d~-}W7*MEN`$5o5&})p8q%Ql|14+4i4B+1 z+!6#D^paRQ4%DMr2eo`;M^QOVx&_<3rOZ7Nu7p;s}#vXESzUt^e;&94#gUYlQG z^Xu^UO26pYX=nOHbjwe}Y-vQl7!ykL=nCme(_u!G#M0HoVPGHTyO@|xg00dvl_dG8 z>m}$Ws|=B$i%{U^k%(ku^2$jgQSAU3Bk`y+8M`Z#j8z`v)2y7iou}CdgZh1Iiyx+ z+0)F+X4xa~{?pE~`=?Dq`&3!%crwXi^RGr0yPEvpF0V)>2V}7m$xIe2ye5l57W`+D z#RO1z;uX()Np9!qbqJwX!7JVXVCwu5nU~EkJ-pZER~QxhHugHc79)Q5AKvTu z!$Cg3-e7L$`DI7wRm`vTNUqMW_nDW?ueag7HowB=*S8^yee?NsO&0648~WYLVt3;h zkI2|a=60TDNeI1iE^#VStFz3^ylj?@gZJ7j`=2(;uE}B{hXxT21FmkzV;7WQ&@9`| z+|ILX4MN#0!;@V+OdlxO&j=OlJ+OVh4;OW`OQIc_9ga+&1DAIyO~P4Uwe6T{RR)Jv zl;^3iJV?*-2$WH~Bul`%ar!mfEpP{CWeB-n>qv~D->ESIcPM=HlKXWmT*t%7K{)In z*(;-X;s1}H3aVv~yJXo~R<@RxO%B1j8?ba7R!tbJAz`orZKrnls8z_P<@t`N`5ut& z|A|!GE@)x}TMk)SdWjV2Sd>g?z^pgBkB&DB_2#;>CSNsdJDYG|Rxr#WSDD23H{v1y zF2uE&gch8V8J3J#GQiQ_;JAy~Qm8TeHd)hl7I@8R)mFtU*tXz`Iq*CKm+fdT5Cu#` z0Xxm^W)!f~Tz8HYP|pe&YLPuK=yVpq@znKYG6d+n%h_KZV30>ZgBNU5xz3Yv<%W4+7YsGKV7@+T+gX?^Vs@Lio)QzRji-OuR6K?q}3k#S1ZKeSzF224v6=owM{0qwLnJ8CY9ME#BDQRkk%qx3Po z8lX@-syQPn4%J8LQO6KP)u!qJ1T_UFpU{LKqY1oy*7L|vh5w!vEb;7~<537IY;8eK zSgwwb+Hr^q$Z;bB*<{wIx|(BHW!I3QYScHL<6f-Ly1n{5IZF@govK$0ubzcQ!xzot z$s5bPF!-6-oqM~(8^^t|@b==~Uhu|qZz8coy@~tux^`dy7S=#C)+T4+^&T zAM~$H7`4o{F1q}2BOT>`0;9w@n|2wN*y5$)1JGQ+t>4DO+C?`l9=dU52&UXxDC?gK zRnD+u2IFS960p)Ne+0W}W!`hU$wur^GgRi`rH?^g_^t#4QR33~v5#-fJ&H8TB_*>1 zcTFLN?2xUyB)Jk=m3vQ6EWNd|wHEGu9dzL!w+2&|uCPLj2)~euCHjDAup41TX57Zq z!;;7X)WMv)1I_FxNBuNFSDple)+V_HGkl9Fw*jw$lJg{I`Yh9W#FHr)EGo4ocRNDm z^bGqZEn@WsQ|>u@>laA&4pf%(ftzx1F~d2n$f6`>TI7w;!bpW-eaW^c>6y5L>A+hh zgE94s3F2D)&+t?5aC^46Hvi%C@FzWtpQ(>(1dp&E7JEF4Bupo2*(Ca7|k+Gm}jmi{^jA^T3;kR{yGF79UpyX$CSaNgT zHT&>}E@wG)w3Br%@9$-1#gc-1$yNuh38UYQMb_N2W`O7Bon_lDi`;|`uO^)@?gPov zk|e#UJlNkSP3|+vjwDf95*O#N#Aqe^S@bg9F0tg+4YR`XK6l3e_wgGAxKTn2GdBA-^d;=uHU#Y3mhK_rwvq!z-*EpVt;VKEFqLTA zCAX*@ijK6B9kkWBQf-0ttL7MxC@oT$mZL>_vay4Hu$Xs?T7L4NvZ`~w{rC(Cg)=K#Hz-N$~><8elf!|?tRT|xJ zHdY!p!P#7C+ybYv(&&LxRcWk-v$fK=4bJvT<416IR2pl@0HD#8Cl(r4!}il{=)`t# zZ>rtI=U};jEEM6kBP{?e7`}I!1ZGn4Aw(f-&T8DjIgio(CFCCQB{Ii_JK`{jEV;kL z`?Zhq#1k~j=DU~~#CY7eAkTIE$Rj>Il*|>z4S??qY##bBkHpOd13D;*j3Dk~0r>;s zWAentVb|lQ4gX{n@j#yVa3kE~aJ_KP=ZQ@h;GW16AEob4^2Fn{d1CVkKsjLH))9Lp0Qufl%|^49_0Zny`LgUUGtcnEJkNbnHQ ze3;-N^wGZ)JXB}TVf-Wc$A(=T8T^+N31@RCyM* zx2o;Fn0aOix0GPG9M(;5k_7U?CbV3$L_aRmptJlY@Gf`~HT|{u53&&QG$qkEFK(X#!}Ep1;kg|-^2fl#Y|@WuI*)meufE8ip8^kA zt*j?$UayfkAe`<}2Ql9vNWwMa{bp?D1B{OaB>>_Qsns z#kGl(=F~IRVC^EX1B^BJgo5v%Q_pyVv+ko}@kUKN#<1L%%)H`XZ-OyW2rI7UpQ-gK z!($Xpeu7##@l_YP6l;x6EpQRN#z;(6OIou?@RvlvBST8EZ;W^Jb=)sFU{02oQJJ&J zq>R0A2Xp`{cbsER&p~+dxc=PD8jbg3XzS^+UkGmcBdmn9gczb69RQwKdT56{m4KngVOlEt2~< z@*YuF3kx97Q*QYg5B_bdk+2LC3o z;XA>GPiqk$sK@ti#MN@feIp8~_P)RiFoO9W=1OZQi~+yt63q?b+D)Jdv0xQD?=ST? z1M$!9JcpYWQKO(1%Phx8p2Z6=id~S2;Vqy6jX!vc$Q#AHCBaZf(7QC~T?Q{E5M_Hc z82UK8Ff31@j|3Au$r2QeM`%90MX**1@7!R5hv8kxv(18c5P2&X4}xHkY$~(fKkfDr z6K<2t^5PG_ViB9+5Ckt&6Ov#L?<#nyI%a3ZYIsehzWgZfsjV7K#R!zw%7+-mM2M8U)|-Zk=Y5^KEZ3K+t$u2sE3NDNLi2eAv4i45s9X26#AG29BaE z6Cu#-$r?uCa8p!ws_I(EHI-3nmQv12mz*yX=IMs6Qk-!fwinw6VEt4|1pc8F@N7P7 zwB%%6p*S=!Fzr4wz}Fmt4}dI-`qlm0_Ya=r)UZFkxJ4=QV%;9Q}=p`%8(v4(3sX0 z!D(bU9JHRBJVkNTbnexwUQf|p9)_&mfRA41Q1Zk`udpujr{kUJPj?LIJVlN8rAl~;P;d5!v0Mf}4Qq_$T6pGgVyJ;K?5G-kMCrje12~ zKhBdqdPcvy5SPB`ksB&J*%^O+)-xWPIaB=Q#Zp!FRR^l-DWc)=eByiKJw~V z)JmKGbG#>G?rnd02TuM=wpYqM84ET&GUP)~M#0J4xN=WX5mNPi;ulC?0^b{dyMLUg z$N^tX-p6A-MN8pZSbIx_r-%ky-7A}EnVOEK(*OdZT)-J@hXGR+2+(kJEw2Q+&~%OW zRrol%C?T>|!J(|c0-+j>8f12^C0t^+ZHl)$+VnR)BBT!~l`-`zbTef&$oT`#n}q#p zVvBIxyAM4r`5-QD+H1CNA#3Jl`+1>o2TJ(@jr9ULt6%4HnhPJ5Q zij_#^-MIygl`Cmi^=4PQ4+~}NampOsox#YW8fRefi>2;{8%M!d-01I#Sgg%i@hB<& zP@q=cg8^?6Lg|kZ0I2FsRK0vdD?pM#vzvS1hiWnsl_I_&sS)H0Q+_(WiN57D^#z~G zeHz4ZU+aGE`^gmSad^G>LLN>Po4lKOPOSAmAEnpWN8`?T)XLk4yXkq~2sokvdp5nu zY(bE(nM!+v@l1+3XL9~+8JZzgU`58PfogNEGdd=<)wiq&O)@Fd_L>wcxEF9ItzK&n z666|I3HedJD%sc|IkN`Y+XdSMlT+uk?zOwM;@Y}${RkR7`+dt|W8k5f2D@8NG1^Ws zC|1bhysoFjczZ0y1`Det#Bt1;oOW8#EKX5!&NoQT`%R|Y zd-~%sitMyhrC`&S?9Te`U10wk8&3JTMrWQ0{9~TMAUD=|15iY9ZEg87!1cZ23WXjc zxsN53zk(oxe9*Uy$Kk0okiQa?J&-@9oTe4;Q>cH$_=zWmaklgj=dGNKv2ngkoKD(F zG4o_vrI^_wuN{Oo**k>7B$Km(MvBQ9Q@$E_SWi5>Z`o=9ZJvzXs;&v*g9(NQGn<@6 zl*ir?Qy9kqB_myPckUlSd20PuHuA(l*rJ{Nax&^bTeYMo8?vcT@_V$Ow-x3chRIQ_iipDA@W6IL1#4G?wSj;-d8AJWpdjwUT#-_g{=VEH7 z9PR%$IeGeE2%R6uttRX;I(77{r!@}-+4Dq0ow&BXT$Abt2*exYR%~SFG`+N@gUw(+ zOg4X!8#Ai4JdRZ%9#zP5T3g93jxVpYIzQ9-lVSF=0+)D7>+^e=l)4Ohzt9{@ z+tS(i6xU+gd`K0zXxd5V+usRxLQ^W_q^|t(6dVY^-lJLm+AN=Eg~3##Si;Qm$;MsI zsG9*)wi5v|Iiq?~H_P^A{HqO6@kN9MaR>NU5&zo8z9ua2*ok8O?u|Fbd+aOWW3#!g-u)U^pHTauhNWdNc5?v9qo2*GjHOx+Z3b;w%G86hjc9+%A5>%aUmWn@2S%&6C_3oW)8xu&SK`Hdeg_ zj2Q@5|KX~wo;OgYgnN=pngA8W_UH5hAbL7?F#mG4Gn#kI!c zW3?&3dg%k*SjzGnkcxq0N!5j$hc?8k04TH~qo+>ez1PiiIVhK=C?p=GmcK}$1GSMt zr%Z_ydh2bGLI;5=ht-C`?bkC>=&jU@kVT)@VGz*KHT2e~NTGxN94T}ln%osaQN$Ma z8yqR^z=)+~M68+iN0A`(?HegHI%3*8`$bCor&}Y1>LR9nJ7U@a5z|Hi!CkSF91(&( za@v8BAp9sfQYfkrp|pWFMG6Ig2x zy%#a9CNj>JMQR(sMrv{YNTI_cryUY0?M)HqW@^MxNNf@6keCrEG&wm^XnaHnqaya3 zCSuyeh-pz+gqlT$&?jPjwGlBnH)0+1b0d`&Ij!z0()Np(RvQtMk=u4PY4uYgwIVWH z{Z-WA=7?|;b&*N~*a-a=IW53ONIPuU6@|Vvg6L^r$>79qD$a0enfL;c>*wWm0(6i< ze=@IAXd{Kro!Tk%Foka4+$q#cp;L-Fg}y+cpfKT$;k971(sr_crpJwY5tC;?`rb%9$8R=F#iK@4=)&|y>ua1r5fhfpXg z79Ki0V%iZDivRGmgtO32UHPJ*@fJepr-oDV^;pKjvwT5KjKw)+*Cy_Y4++IJ0zO7Y z036Jib2)3ae`g#_UTW+A=j~nKqpGg9@tIs8VDJP*j4fi+&;~?H6f6{|Gh_m1bRtv% zu?3}~Db^dsiKWUVaT3V!Fq$e_+WKnhmA2N>qL6SI5-yp5Rs&LsmsbI;oEWMIGz7uS z_dIK#GnWvw@ArSd|NN4D*4b zbHL@w&?=V#TN({5N6D6_0r(Aoz3ylzi08JYw-EOvK#v>1QveRRqM>F9!}+~G0ARdIJY9!lD4tODhaecj zwcd~|+DyG(cPr5R2mQ66KV=Ofs~)55Xq^ZcLc+beg7={qt@Ph_LV90zlyEC9b~cNT zQk0;v7Nk1S^<8awV7C)qteCbw@eo}bht$sLR^%ykIjb_IF_oj%c8UQ{Ayun9h}+Cg>3o`3<5T(cL^?+76i%B?Ag`S~x{Xl?ATh^$p-sawBKGuPv zZ`_|A+MnBNduY2m(ihlM77gdXb1h|Gr(nQi%F3Yu&%{?E7+JdW#{8D#oo=q;*M;s$ zJs6*>+)rio5YG%ewKY>dt=P`|R_s3k{ewgRt}NOXVd3?&#J8OsK8_sjaPRCsLl=S& z89AH`o&L+A?HLvOW1U?;tLgyBpugT*AdLi~5p-Euok{ymu7}{&|1%1mT(F)}bJ2Z! zbhM!+`HfDi$3G#J3upf5_uSy>f&B0?G}0V?@=(@HGa z?u4(k2@nL3e&Z=(qYMfC#Cy48^c^f!1GDl1;YC_>|En z1LgDoYViqlfiuXfkP4 zP0A~f-&qpg4fMgS!w}u0W{9Ousp~N%obJq+?{4|<)|ie1B+XG@MZLYww~}J5_hVz zvY>qtOfw20t6c`Ig4G?m3DcU`Bi8g$3swZ7qPAd#wdEzIx1hoCZx;V%>m~RrN$|WR z)dBRu?h;vannZp=e@ttSCQF6v=}i+Xyb zW%-OR5H_pSXUs!`lh$SEz0DG&k4?t#ynZOyWXrTiT{rIaD+)6I!ly0Kj!yh$H*_}*Un;N3G?`-0f} zvZ3Ljk7{HsPsnm)j7hT!WWb$%^QNp4b72lOQwHw|jI!r;LQPd+b=YZ)`358 zBI&_E{=rcl%B=Fc3f<}6ktOb!f7Ay7ZQKdJd2JSyBdPil^R8!Mm0i*{wh7Y}zM#i2 z+uW4pkNvIeU#;c9*`fU#?bH@w`hdcwbtyik8*f901_b%T1F{3|z3AdCNQY@4{=ZAi z@B7WES%JY{=!19o-LFdr>$J{BiIf=M;%CqXTDV^aN`n2FFa_c9$)$C}@9~WkuY^v? zWXSekhmMbzYGfxcAwGl&S2w^)JTMac`YrfKv?zx}M~kwVNlb%$G!+%NeATlCgK-$@ ztA1cuX|xFKCS_lRgS<1k%gBAow+5zss~tu0fBP-+vO@lAD};Ot5<=v8^GLKE*^)57 zhdO|HFXd&;$1CeP_-KdBt|~s}_L20R3rfrfa;jqUvaQ}Iyf{^ob-N%Ka0&tzHVDh4 z=4cLTgs?|Eaz^VApc8Ke_M5hP!eDLn#DY54t1j(PJ-%l`y6&`m?0FWTtR z@%kK;5fo?Uc{gy_31Hd_gl}8#MZ1^fFHVCP@0S=IFzIi-j8cFSRiPcL+b|EQFnyq& z+8g&nxV^^K`G3Vnb^D{Ei(9aq32iAzG|kOc#f#49DSH8V0dqty!k3s=28=Q*TFfP; z%UqNLyK{xOLB4oTAY8JmaGQ0$d<=S0fzf4F*%`(jB%CJ|VO@qKS?URHq2i#0R4^VJ z;Q^>1zqIv$Iq2n^_@#X8g51^;T9D%k-mR@JD)2_$K_G4QHG{E(7J3ofoHz0=d@8X$ z`)j-zkF!4njPM~$OYA4Qu>ssn%o@D{vu2kB?(JRKprQxA4Gne)cLBn+PV6ovs{^!S zCTvO@=QI9v66r&iPJ4Wu+pOX@t8YoG9+z%bF%#9dWK@sK^cq{VHASl7T$5FO3yuNx zr1~Ak#}BMy(9^-xc<(T$*0eP+Yuo@_73t8!Mg0KcazrTA&zh$`f#w!#Fyss90Z@Oe zX9a)<*3HKmDPT$j>n#w9)v#9mQ?woH4EJ%A>ekQ(lI+qdi{KeBUM0=g)`Pj}%66mz zO*!GxYQUY9YlExUS@0kSfX5{D@TkWy^~l2myT&;(F~0RN4GA{3X7+j|EQn|^O48*T zyy^B$7Fe{*oNuFcidPoyMAHqw${=VlE39KLpbCv9>o(VMlxO?G>yb0Ng;UWmj0rSc zvfkQ`U})nbQ1kaU?#t3vU;jX_?V}%OVVC8>bD{EF)N4C-@+S7c8=gP!+3Sr_hl52{ z783W3vV7V&%Qx6Uu1B?K4`!2mRj^eJxK$NYXpey7mS$s}iw}0Py&XodwkxU6Z*E|t z0#(-V=TX3DT-N6RIND<7Z97YRK7fzJW2;0nKJX*E8IQiLrR*F|xfNU3;FJ5=dCxih zENN7jjk`qr#xCOsMu&iT>C=+VU8uRcFg(0O-rUv;ac$(9Mh>Vcpjkbah;5yZPa?#rX{RO9 zu9CEwU@gN%i=RwNuoekEsS;!q>-A?O1OsBBQ>`M@+={17d$kJOL(+%ivIZf2Rwze% zJe4w2R8D!Q=;eZutP78=QpilC@F8-6N*H~Y8p)GSELdxP=d>`Hi!JleNi_4!TYjhb z2`GJDKV{sAVZ$IQqtYjYY*hLzfdGzM+x#-TdSDlrQ`EYInp~_F%lHDItrLI{TdB#F z+;jImc_VMRor-Z_a)Mn6(cn+3V}8(R|h1eHM@k z%CaG~zW(9}G7?{3&p}j~U8Y{I^oXoo+fHzY{hOxAjChTQxk;~^CIyC3Z`K7JZuCT3 z4vGTVpgGz~H{>9z;XZ|D7vL{Gzmcbc-O`iLqm=D^ z%AX8qz|28`iuTt5ALJKLKMLs`R<}T!<&={m3|5b^7OaBeJR47@pAvvlj#W=HLe!dI zbf6%j)>U}gH0Ys?d;253;51{63v`AyiflL7*IY8}0Muy?i6#v(rf3J7k5FBB)En9a zN6Usd;pxj;P{+pS&~h2VBaKV)fS3{6JEOI;QOP}Qc_n%HP(*$89E587a*Cl*2NiK$f;4?%<)>^d*Vwdn(Ydn$)kN8X;eeVCh+qL#l6o^%c1+`R_ zIPv=8`jFaep>@N~MKG=MG1f+0v>6DO?T%ntz|eR&R?`e18Mk0p1k)~XUnrbUTXWZL zIJfOegoLzvs3{xT|v>w-jT zD7@QR>Y%_E;{<=%-m)H=$zjyn_)$)AuY)|~Q~4y`Aq0(obqD5*$|dxK8V^p=ZUGhB zv;v&cy?Gb@cW4FgK*?v1Rsc2mn?T-8%p zpzzcY@ecw;rW=_u#a1riXcKCPL*>WoRhQ+@O5u;|s~ znkFj}!iY1SC^K50h+)Kt_g2=uigVEmr;l?>N}NQ?N$KlKdy%?Wp>@OAeuC%XtLVw9 zRVt;n)}HH6#30XqkNsl2uh?9uoVlLKw!w1_07Zw!6yzqgH|z_P%I{sv!ci^xQZRJq4+1jLi?opfh`>>W`k9%1^&4 zl{=jY!`3myB=JM9OcL8YeDn#9#3V5`4U@#pD084kEA$@~dJ5535$#dv0SdiTp|2!* zJkb{_^q1m4;x2_gmuPN5SZP3~%sUu8aCQjCxlZVzb!q~gj1eLq4C8R<-j2i;Wbgvi zUIEN&1p7l_mkOD|KG5DB20d7xs5yy`^E8(LW43TE43ky=|nz~DjpaQ6n-p)Q|R3{kG?gT?~PL>S%4 z%Rna990>oB6F1I>SuM=EFe^2fu`x7V3(es*<9%pI$IKF}iE%t~&Fdf})`BH6WBdUz zI1yE?LtU$=WH^$QmlN}z;xSDvVEX5Eue=P+wdmy*)^#;;SGJCG8HkWtKHl zw>Py&HdBz^KXg1J*f;b=Mlc&1(V@-^tqR+uxEOw)IwgdXZakjm6>BH0HNc>`Y#AY~ zX+C%jw5Fa{qQd*3h^)R(kN^s?Px&_JvJS#72idpsMT(7^hi7X0s5n@SbR1>h%tuPd zinHi3D-Q`3?3c;6DhMj5i)<@>SIx$|S(Iy3-73IP?1Yd`)J|9=0N@o_}K+zQeScf_g zFjr9u+Zqr9BLOQ0brX#xqL)JS$Kd5oK?AvkyOzlu(yuF6Iy^_3&vT@!??3F z)`G6xR|Sfv*w$ZpjN~WGSD6JN)s(amA;%kgebMvY^z@E{|`8vt0gSK0hj*@(BQ<1ibcu}u~a z38V*{_6O#xY?n^Ku$_q~+oNLj*O}B<YDMwVn+MkwDM@b0|Ji%2|W_CWV7{;yxkA{xBVps`Y zL`o11IotjTF#)s|unb@$MsX$N1plaU;xcT@OF%AXwNJ;WCqg6+9A>A`t z#{o%5@$|#-hWb|Qe(QCJAh}DDvdMYf2l`^r4QEbXF6VXq;ioNBhm3+&C-_nr?r6Ya zs(BnbFpU80dWaVV3*Sn6YynseFcZN6b~(fgPx>xPgymp4Px*4WjI<=R@sFd4Jj09gyPF`f!7g!hNdtgk!vIi}!{fXFIb>rR$AUWPz^?ZZ z)XK1)n4QJ~LO<~vPp?EkNSvvDv9c4=p;?efm$cyRiKo(WT}HmXXklQl z`%~*e6s}UvAKrD>@*ENc8Tvv{Js#CqL4ks8+^{N*MHQaCD5FZcgX8!koAse{ug~U?_i^QLi zO8l+JezZtV>8g_=(!`$qS}VEeUYF0~(>10LJs74o=&r+v5k|4biKN=R=*E zPCWw8N_!3|As;Px*!gG%$b2-Q0+RA^UUEKOM;KHD^TF((YLE{IR+*1HHaPqM<|e>H zh{0bJCvP1ni)fB0p=?4Nf}J+zVs~p}i-KPzJ&#vc=954<|jz3CD&Hz7SvI z2a!jZ-Ei`_7hcTcd&pE$9!Ho-bya}iAj##AIC%_Ulg9|%34i2mG9LT^3?#t$2{7n@ zM(9?6iLCJ;f1G4F)h{h-rV6CGkLzS|Aik)!IURwJm1;aN6ddTl#5SuK;D{E?ap+A= z%rA46mYTC4J;a>Z$NDP~8{;5Or8NU$?xN+d6JkB$)IUM|{Oc1LuWf)Qa4T&bz!eE_ zPXcUlz;O9T0J)4Ig(Wx&2%`fY@%q5J6$LHj&Q%j+#_NqF^7bMSS_O#8XP+1H3J59k zsC7@zfKfX@`DD`vKM<9X0EZ{Qp*9!@*Lnb=xc+pECD(&ANwWp-*n%P=O(;E*G&q^0 zF^EOM9S*@WDIuwn5dQUgJncSEJqI2s9H(grF| zJOL`rCz}fFV!Jd>;%6k01}5T_iu!j^f(S)vCM6{9C4_$z)$8i93lGq+g$Voru1|mm z6W~WSh!R5^V_SQmU9~mRGsmXqzfeX=Mb^HA^w?9+QADHQ5<>(+m!nyt@5sm<4e6kc zKlB|>0_0+czi22w4hQJm7_>n&r#Q5f z5XMy4PXN?_()(I7868G-HNt+anGA%hM7U@<_i6D*hLgrI`T$HZj?t^i;pQ^|{jVFx z_(LUWIcCKTmp8yf z#-JWcJjz4{y1#9aWBp<&2_EnT3y)&?$Fnt8MVFA(lW#8}t9S4Rbx3W_xS9XLBly#j zqK(lB^ZG{D!Y0T3?VI;UVE6~2Cd@Su6Zvy}^E(^9j}-%;-Ba%zivF)1q>7E$ zriwh3^(32vDaKBs<-_6Qa@E2Ph~l?sL1Ya4N=p|5$^o>r{xv}T06lfnsEyI`TtJ8V zXMI0fJ^;{L>o1N(%bDBZ&n!i_d_ej2^T$TZ3jpoCv}S#@d?=tRw)`G(hXHz_cYhDs zEDu~~kTPXWB+2Z`qzBoufU*LBRLe@TBf?1033sATVaF*t$FU<)(ZqaO8!OQxA`G)G z0LQz&7Orhg#2X&pY4}nNihOK^5yS5o6xp)UPlE;jyVgYPLprYE9`wSFefV68RS=35 zP%hj*OA_~rL(f#``HIE3zz8v4bQ(ARVgy$2JUXf~>}f1yHK7b~Ld1^h3|?G-~EThq52uZ8MfQUNB6 z3=Tv9S;t;7(Srbu4A9(`#mHWB!brba;tDnNqv;IR4i==bU-G1h-z;{8Hs@(;-V$vd z`inUT#2KnXApP^<5Gg;LhGL(UQK7q=V|y7RauL!fgc)2rwD?^teytcKBwv11s&_q@ z5`aFK4|LyLL?@_7+* zeoj1{wK#p_YCALWjFSAjxAXpSG%K9?}SW3;Q z%Gz(I%fXhuOu!8ZH|oxbFZ;Nux$v9PUeOdqq-J6x=;tuna)a)lRgz@1>wb(BO1fdc4_Z;5J!15#8)!vnB4|v$0K?Y%$(ZQcV&lq}3w#>>g>@|D}vIbvyn6 zEKdH4|F`k~H2z%>&pL8889T5CU{Yg5>~>>wqM@om?N4z-$qZ4xlNg!>NcG!gu}f<0mO1XY+BKbOg!iAWaw zFhs#jt?Eb+fS;j=7XveiM6eA*-Se!&8M+dx16Z(B5>c#_NBVhOW%(nPJNY=Ni2m z51@ikQeQAK#PYi$7fWPx96R!^MCATJt^F1pJM#K70VDE$MvidgK(mg2n4a328M{SE zA{haS>_l&G5Y8pNcy}fNpZkQ*{h>GgzsmWIH61=TOqXod*1QR&tRbnem2C4D$4S65lk0;lw_#j*#eI@ zA_jOGf-_PK@JvJ(Hr_AOz0t~iZr<@1k4M=F^n#(fQ1G9c;U&c9Q3bY+Z;4~>rbGxVa5BLhJ)20hh_z{biUV%gZa zH=hTHvE_{rw0`zHo=pDBc_2Vo305_RR49oECH9e0Y$j=^o{dFc`gjmext1Emu&{kb z9}3OL0XYN+2gE^}(g2zMge(s6iKDO_u}Lgt06Z2;dhP-}PP>+29eZyd<2WxOLRSgj zN{@d-axOfVIs;uZC;1HY3w#R=Kw%nk5?Xy0ua51bV0mH>(B9`WO&)ialh!|l(j4=B z>Z#|$>FSU$<|JohF>(%bNkL544a5isuY_t-*E7tm$I&zGFU8O8wzPg|&$%++c0Jdw zPOPEetZ)A`ak{h*;W$Cgac(&eEF+V$)|7nyl;ldyw4IMuEvMhbD-Hf_y;;zFO*Uar zjTMHq{^uMKRK;;L0i3Ma;b;QHE7q<|`(%yv`6FL%l?tkM@thR4ucau-DOYGZa1U2f zw`Yn^2jS`ltmSBOYOD+8T{e}(Q_hjv@HTSPwNBnAGz&f{b5KQ9`1fqQpYcTrfK8MQ zSM_JL)f?ZH#L2DqkfrX-DY&35E#?$l>8F@e5K{|Ju{EZhVot$Dvj{Y&P=2a8g&LY# zcmcSfz?I{fWKKa$G|-#^O*B;E`4#3A>!_gO)H?XNs+C|AMKNVP0Je^9^iljcTMAUFK8m@D8>ULTq=u`0)toZ#25%~rOx8Lc ztE*CpH8V7)DeOKwYXvP&7%b`0$LvIJrL|&sJ zY!sX6RWE^JvZvY)B^UH!ZW78R&_{v(NCvtjbXXdIg1tATB@{ZI7Cel&IApVu$Dr|_ zeBdTp+{~}z%s>O5Q8|T!rs|wdh@WOy$^;>(5;wM@3Y_542Q5B4u;NhQGjhe|51Mb(Vt9a{L&^nZ! z3R1~p0T{T{z-Btjbud*R3B_z8oN(dH0VMF1z z^rh)8v>Y7K%EeNAX4z-@tQ~see%uE&V(c664{yi;0fi0L{b*3&e?I$mLN5i!e)d8y zg}oz5FU7iOPLe*t+y-6haGc(wWM6wXT^xz0w6 znJSH8r%OWy&%$jIb~eIdgrt%_QGFB}z*&;wpGuESlGPa{yBVV#& z_dr=@Ggb2bbwfw26u--~3o22*NpPp>OMnG7h$KI=w<@tKlE9C&!HuX zQf1}KcSS1b)s}6=+r^tH865HccBG*B4r!0`L@zFIt3vYtBC|K}f$-QjfDdTC4)|n> z&!8dD1%%ID>l&1!a~cch-L?k8L#rqzz~{hwc4Bn13RDmsotyJT01IHbA>kA2OkhxA zAQDSgKp!Cs9Gg&uacFNG+5?EcXlPg5k82p^mklmcK_8)3_(SusY%m%+1ZWOekEYN` z`b9$-n8rvElnP}+Ba|J7Txbl$b`j+GjcD5$aJYsabO+Gj7^{BJiRKftuED#lZFLg+ z%rf&k=en<1AniV2N-Ha=Y7c&sNmSm(mUqm0=chs~TOfZ(mEEoN5~OUW_%cS`IDcf- z;thd>xEZZaB6b`HE|1*e2^3l-#FO4Zj6QS%79u;CBLu^kw zT?q9-WnYJfIiP!&_}IzRkDXb#t-bhUw%BFWiW?CX*RDx!Y-#x_9du#~6K=lCh4YG! z<)CJ;q=?s90H^|>(D`k@rqCWhJP2ZcS1wq=7^lephAFY3W`j_s#DbMsz$yHgeBTs* zqY>B97~3oMQ@n}G1A{m>yA3+cWxZABj>Vw&x~6$7u<3LA>U9|e@Q?0x60J6L{M@w--#X@m5L6RJu| zoqa!S{z@{mgjq3mXsh4Hx#;bUpX7pg&}&4s)koojJ6>{elEtH~20P`;&&6FjMle6e zn4g~&2xlI-3>te40plM5qseRRv5unE$kz&-``nbx49C6}`udK4pw)&S;lPTmEDp7_ zQ?B`rvvnm|Sa!4pClwoigE1Q~FEQMu^OTQtD6R4pbsh~(XL^XCt!Xks z`6#t$XePX{eTL);@XnuVOwe*yjVUY*5?QO~;Mckij)O9L;)<{cX_px>Rx=IlO=Sq7 z5>1!cP{d0%6R$b|vrFP({}|`ljZmJ@&nzkWnIHZX{XHBa6ZET2KU?*Q zG`mT~4QiYs(b|PGiN)sh{QP2ba(;o=^yLrr^=k3;+EZ-K&mZRN)lvBFAj;~3Sv#!Q zW{e{p^__V2n!)_x7rx=WIFLUw{D8Y~r*Y`mvB5CK0dKrC<7J1}0J6kf%>5y+S;Gw? z@8~B+A}iqB%qL`v2;aj2ujt@SgAc=yhgri-BCol43<7yW5f1R~vfiUMDbw1xu%-oE zG9oXY2aFdKL*M!zgIfkS<3Kl(f`Viq-$OZ|*Jvo*=_4Ip1NVB6IHJ?Lz`*-wO9L{LKKlrv|vBxYFuh)n&Hh9Gd zB}{&EaeUh$n2&u2Q01R>ZPLaAt;J*G0RfZ73a+m*E#u{rP|lZh(D< zs#?_Xk30{hQt*8h3#!Rbi&eVMF?Cc6Q+Nn@MTJk$!w-xB5l$2gd8|>hnspUgr|KvR zG8eIFXI#_IEN4|4MVKMf>S$OdM;ozr(F;?-9AQSSaknPTTvq$E&RAjrd}C(m&#)kd z(4ImeRcbtu!mby=N+m~4M)nSbjOo@hNI_TqK=n=u*ZstTjd6?x|KY?kT1_nWeoIcD z*XG!JHTJ%Xnrjj}GQ54YJG<^;CB)XD53M7g>M9$M$X+BLM9E$ZbBTig0cwHv3s2n8 zN!t$;Bti~QW=Z9+G2q=?h2e!f0~Ra*+P;~T9yAPcC@Hg(Q)59w+JZKtgc04*QqYB# zJ~l03(2`^|MwR?Bl)Sb&MB#n726UB&){!a*@4KlzQq@iEJ<8hSdbgbUh-WJ$WSnBk z8gSp$jUlRmmud@f!KTwlA|sK0JkJi<)d{kb`U`H;;CWQ*hrlLMK>I&vr!q-Z1kT># zgf(^x;6C6eh~lnLp!{CX$U{XC$S1&$Em4uT$b*w|abW(kb3#Ivt^r zWKv1Dx%a>$IsREqIIk}QP&lL93^eA8*~5zC>8@<|qDv|oW3gkMq2s-^C74dp^UoQ~ z$E@s!boY+fzG$&Uivz7|QCk(q2Qf;&isKo0mJJ7vK z0f9>Z3?^_9fFT6V18@m}8~{TJ^aOAzfN1eStPL^TfbA_ii2AeSHi=k`JqtRmVDfcr zyzvUtE^ti%FO8*l>{0yx7XQ!T|4;Z|jsK1K-wUC|E^O{^q@A0v)srOMvc*`Cj_0l8h5^j0ux^Yg<>>8N<*)c+)^mzM&b-FIal>S$ z@#=hpH2=bdv(No03?J3vR1yVJ^?4|BIbNTKh{ooUS?#d!R}Qs1S&1FCp1K*{d(Nn0 z0>K=Rbw__iR_mpR0GmBT1k67%F)z&Wl}w#*VF}Fy4jN|%Ec*tQI<(w(`%R!JT=ty2 z9=3c)xqLybOREB{K+ITckqHa-UJgY4?l^S53Eeg1=bkL-U07(^?ObM9%vIF zaxZd`n2Jp)Xm9#zmb8>DE~bFoManinYc+kva8t4sKI@(t_9`%RJa5qu9KrjRZZ1(3 zm=!Q97`gG|%=9%$X+~#wV|!)4D9PF|Mh(VtdV268#T!hTgju0KY5gnA?l`mSUQE+A zo0qc2N(_nkEY^WkHw~>LXXR2${l>i);8Hi2%M)5hrVPV%bISZV5=;4%h1v4&k?|#; z3#GIi!{q#_nD#N~ewYEcx;8?&a20!s;oKRQ>scl79(kGK8(d{DKKX%_4-|3+d8ZRv zmamHJc_3TO0$q4l9n4PhbPvs)95ck7%UA=p`^Zj1n_fsH$sVB9l+Sd#UrVBGOAk`x z2KM$4w6Gzxj)}Uohq=7~$*Ffk0Iy(!sOYE?a*ZqvVvAV;th@CvWT;yq1nLA6x^^lt`~6!qoF&2g9<<5 z4Ugk`6L%;YngblT5a33}ac7J(eFaCcj{_Vu`*V!Ym^conV4apwpN+Ckt(UU%aCx;p z%Ve$KCbCI|4gOKDYfJCISS<}DvDi`TXq==x5q;3vH@E9eHy-3>w`wrPgWT!1N`FQh z7h2U4e9{#8o^1-p@WM`^Ly@#iwaP*nvf)l?FFu+boal7O4#hY7*tCEADeuNA8wnGG zY<36|!4RY*?i9KL2NqDV$$5CU!{OHYOc9_onXjDXxGcCC-(aBJDK9;*J^e zp-^FMXg|IY@&N_we1Y|t6g>I-BF8R!hA(0@l_?g1z zm?lr&L3v|bqhfs8zGI5Db6hBPVNzg|Op*DR1m2;I+ir-*inQSQXmY45{_M`Q5Mqz% z@Zxvuv|u`Y3*Piuk8x#a?7)QJ-m#;#)G(JL6zZF6KI4tXPcLx4vE$QHW7Tiqt@Z(F zI$gj0@YE?&FbN;i8$ZJ|@oApB6M>#&+}l6z4#n=Q_6lj1J>2gs80yn+->HJ`MhZyf zlRWp~Qsc2&1Py27+VX9lYv|L-#&;IZ}O zO|n=GJAu8yG3b<554{hppo8(l?zw3BapewCQVUQXe=-ipq0lvAatx+61WkRp#5PaVG8! z55K^8M^8rz+M2&vFE^ct;aVvgx2xJ#*4yW9Lz06(EnD4XfJx!`po0R2?<;6XjNY#CX{}&yrV1g%K?}D z7;o8ptK{4D6a^J{jS0Dj{n}8d9-;B$Esv|l%6yJdfNreJ=i(7i-wCiHf(ynFm1aV{ z=F)s_24g395Mp7yKCxfh#eSPcP~|tT#Fb$PvF_i>XVIC(qBTAE*uP{kmRIYT1Y zc1}kv?TK&vu?3#h!X*oolaM^@*wtZ5j48fSR)u!2Nrs&jtM=y|;c@OzNBZ1r zyhaOdp~h|JEpppAHmo5?dnlu4weMkfarg)BaSvsj+pssII^$ulT&GS%Iz96b0ZQ}Y zDs&i2@ZmP~C@#axE^WN52eg3GV%y7(Dq673-X6@>R%`BNJr<3_v^UYg~l3CwEFA&!3i;PO|heb!J%FI-^XX9RX+@N6m7?#@Ur)n+!7YCp#R zyN#t<=O*k^XXs;T!=vooQf*H2weV~%)kdbl3dcf|=?Tk^_05sz3mYQ2;BSphX7;LZ zMqggSUC}uZK4k|n%oe$K6ykF1oXin-QU;x~^f9I?#=0QAqUkR9zzB}xbG-56GkbN0 z@6YoZ!#C=&O`~>{ZS#fmtI9z?#z|4;5M{f4wsO0%6-H6Zu1w$#L-*CzM^m_OKmip3 zLK^#j^0EacgQg{J76F6i**cWu*|q@-_2F{LVZU!xS#bf3T{3>7v#On!gSfPb@8h`O)Ba9MZ0+&YkxAxpLG+Hj zPj2_gEl#uD-Y@qILCj2V>GMLbMw(~Q_YnFSe+yg^DhW*~yqCYoh( zIC2iBhMS%ePUdW56&a5%Ozjkei|-d+irqk?CA9YhF5n2Q6E+3%ywuG>6@j!Q%^Bbd zWP8v!VW|5>k~!ytk(7`896NEOgQquwIK8nH6vR(&m{ShQcH}{C1m5Ls=hA~am%}(d=jwK-5NGtEDfRV9=sx6;*N-#!<)23Q7XkXsce;M_XrypWst<$BQfii zTwFW_wgIWzX(@HaaOCk$4R>QoIL^}4g|%&>nm3PVbt3TFOBDfTh#|6hmtA4=GQ^(**)jsq&h5dca^cKJc{98nw`SF zttP2f?JS$D&P^nBPv)*8Iqky657VmO_P%vst%j1Te*3Nc$97&k3p-Mm z%qhNE%2>Wn+gIm%H)bKF&=={!T%iN{>t)lu8>t7;*2BAzjC>+#Deja1Hw39jT?kU+ zNTe1CVlL`U1^N64q=-3<`*LBA5W=or+mlLKZJ>}bpu90zT4eb!^ka@OSFK0GHXm!C zYjR!aGi6~YOMn{GHNMl+?(GPV@eiXF zP(#O4HY8C15f=mvNxQh{i|49~zrGtlZS}I=D-tW0(m_?(Vncm*1291Ht!a;B_m`w|s7oN@YCfX3QTrfjm zt?Z`lrWiH>Guj{0Vwx`_^QYYaHbd~66ez29uoXLWa}_t_LJ>KFXNFjV!EYe&Z&jkx zVU2XiUW9xdXIkEFI|FZf@b;Qk@b(d(HWWrmhrVVf*^H<_fr_DK!XRcyf2e9fCr*JR$1dl+>~9&B+{O!(q-X$k_!tRPxX@{L+;06y<8Gzbbr9N_hQi!!Jt- zPm%9er@uTU{LHTn|71#diiW>B{o0i9nCQMH{BtScDMId&zEnnMW3@a}25b%;s5%VS z(vH;#eeep7&=g7*Zo`qfV3ui8Xc=pSir99vuW}67#TaZI{>K^kN8-!Q5TtlRMuY5% zgR-$Q1CnJ7Smqk0jCC76?X0=ue3I-!ci{WZcyM{rXJk7X--wR~mujnv4;sZ>eV!X@ zHbk`AcD8i(cI&T5rLC7Ko~QCoDyQYcJ7aQ$nnT4OPs&!3xr+3`!y(b0tUpv zvOmP`m$E;^UTB7-HJGI^zl4}6%+`1af^qp@fvml$u97+XZ3^>-bciK=3qJvXg#KfWq_lJR+{ zGhJJ<6Ytpg{%<~FI(& zq=5tFPOv*q7woP$LbS-5aT}Yf(Sjr^BOkXdL8ZxSX!5RD>tt;r?1>KrYj{2W@5le| z@Xr>IC^flq>F-K#+~u6z&74Aw23#Ss!d=$a8!qMzFzSLH94@sWMDh*Z3)ETOurD9D zkG$(SlLDvsQ5-PDUN}k`)&_VL+*Y5l$p_0vjr((YZNmGOVsI2j$u4i>fgEqIDC&ZO zz@)lxO5Uyxw9lmKP*pJ}Q9lt?8(l(4OxUeP*M>**k`ZtBdRXCgkn92RdM=5 zQNw4v6dHy>0oL}6rJ+fHe8zJjkNE6@&rCw0p>UBhC3?n^m$LFWdcc1CWKHq*cYjUN?D z`KrBI=pvK%c$6w=g7>md%63|h7K?ez4L86hjnPAy$HW~Pcv-yuU$Q2mg1SVuH`!4lx5w1mpZU1oQ=s&^C;;aIwrEk57cV6b>obmzdM;=6?(K~YiROLRl zR(&6Hzq<1haSIrCqIv6QxeWWAE@78QSaw}3V|nrA{Lh9_Y}V5WM<%M%nu%aZw{Gt@&65V#it)L8Jr8+E{&a81@=b1ao@LsgB5U@cSmV#Ppqad(wt%blaHR9bi zwlA^n+%DKjz@h`Yx#CKXoW(HsU}_3byc5E>DlXjFHV>kOGROi>7hF0xunaDvc-wde zRHWb!+CnBLlY3CMjg;03OQP&8@JCeAB#s_Ty7 zV!np^iMW=ySfq-==#)?76u*)ZD<8|Y76Ls|9`jV5pV}4+Y|qkI@hARS<7rGK?dNAg z820=OS*~VOv}JMCx~YV(eT(<1*avMJ19oiO$#Kxw9@^hCwyCi-qx!Y-4{>vFu@!63 z)*N=XLn*gC+>b|&A%WfpJ;rnTO~7cE{ZQv-ZS`BX@BAT3Bpm4L8N^Ezv^8a);G&gr zpSznXHZ4U_joPgh?RM|vseRt5QH<5BI<~(!Z@-h7k8J}5iOhWLH6Nx@B5cB!T|fgP z5*jtqXVQ48aNgJq_?)8wl>Y@)+fo9&S(FHHL;~Nm11nq{YTV8(qlcAsfrnlAI&RIG zg9ou*?S~I%0S0x-oOdo&Set2zLd_ z0=*ywO^JH_n55V@rJ$!0?L)OXiC>k1zJcg#lhAo7Xv(2e5_hMdDSoau=Ohx}pVAb6 zNc2n;r1R~~Dd-;&ot*FIQqbJDs9&0t@2V8^O+?>-qID84O+o*J=<9q5^n?`jY@)sJ za$*;xpvec;{|qJXpnIjDe=4ziCD5N>=uY&pJBXf>6#KOl^qrD8`jwOTODX8PyCxn^ zL8Cxi^~FhrdUpyMm64jUi7Dux$+we8IN!{SB6!Zf`yOTQ6D=BENpwCVu{&)&{JkhSA1p2-d^j$>XjgIIPDj3fs(olV_ zdJT?)9tpI!eM_Ft_%K++Ea1|--D(8I7{XwA96b9X7^b$}p>4R}v}AW8uXZ3AVGpKZ zFplPFm2Hd(+uA9~p{nA^Z9+)zL&eh|q{=8S*$w-zH0%@X8EW>x^oJym1zKVtcc^`c z@v!ipMj3ypx2brxyKQ0WXOgM@5rTs`*qxD{N^pG!b8XKHS0YgA^pfrNR?9ro`WP%v zS2mRO;PPSiCV6b7Q z1im(&>^Vsx8vx@NPy3b(V{;JKBNxx{nkDn}QO&wGzVY@Qf5SOdeN>CC6>ahx#dE-) zAN!n{i>GyFJgu^M?a?fami^G?J^){mQ#}8OHY4-u(PTkx&TPk0gWL*zbNbA~#IIe} zeD8JIWtn#Zo_jZax!!{B+#e^3n=Ev_i-}4*!FoMfJRg3Z)<@te(r;OiB-Wv+adGpi ziuksQSbkOOR7AvQZ^Ostj^Jl+z?8?&7Nka%16g+L->TRiPiwAgW{E>kHyi+FRdBn`i| zX&BsqmN}h-T+C#q+Jy91U0#(vrr20ZYXxE_`(ha3 zttML4!g#VSug^HqzS$F;!nQvi62ZP4A9C6CE8V4amF~8IY8WW3%SdlK3w>DXPpkSK z(%{G=1UUmv@{o2O0<>?=365uo?uW*9n1tZaSh0^s0#83WzJYLs4egsDI^PWN^a(z1 zC-{|PZ8-vYn|fez)LI6R3t}ZixaKmhn37b8Ci9w0zi||X={BwsxD?ND=3P))6GNMsJPM-Y5L>{Q1-Ze!c>&`A2om<_nJPxnuxODCdC?*d z2f3*1?GeIt;y&y~6phCKTm+65E;v)T*LsMXv=UZqicsrt!J0*j=7~9mXwe*3;C#HI zr6JhEDg!b#&R%K-7CIaz?Kp(=qNFNZm$@EpfY9+c={bjCf)cc?;k3n~N}ru9+&jI-h%EH^>aQ2tjPj_#UB#OqiuAY_C5l zEaMF_{mn=Xfq|DHcx)7DNQlv?A#g_wLwuB!#(AkBu+iEzjbrElaXPrHWPpo7w)2tQ z2*AAka+=C;6W%dHX_d5o2z#1ir0rK6_sm=1F2m(m6Fq=;evqzJ9z`k@$6a^62ZLUm zAkY#9ZODMiDTJmt$!S9U+mq$THT8bu+ALT+7*JaJ@m1dPMI&7}^TL_AY5e!o;fx)K z8%DJ$yGg;PPpIE51$exqpExAv=O z*mwUfhlZO;L;0fHVdUgZL=_@5QdQ6o&e$PvzMoFtD_rOCG5UL1t(PDU@_GJO<`WyF z9y^~WkTBDsGxi+$L~=fxB%fyidByOySxzR4FqGjVx$C|vBd{LgWaJ6^BT|?JNgw$J zVY@KT;YTimGn%xFk?iI}ne;|gYHipsIDO4+{&$v>BOZmbORWhFK)%*}sb$7X?cb`U zNDXqmfy})N%K)eU-oE=MJDICzTUE6b>gIcwA~SX^eOG<&yP2(3jN`PfAwps%Jqr3s zfhel47?a00)N0$bE`gy+*EMj4G}6)EbG2O(4}58I=95$Yu1fj4ne15SFH`6 zaj)1A)#V1-W6bryFyzGRR2M9=-_x&G?^oFGZ`NiNK=(G7wmlGp5kz8TfpUz;gh8Lf|lf z4kRLmmWE^jXopW4ferw}38aCzK1_!PG6xgr0pMo@vH*k$oCSbHhH%izHJSkTL_!3} z3_VTYA^<`Ur4pCZ=UV_~6DR=i1Ocj7_b0%T@)5Wa!2JY90$9PLbEUMqA1%83eOQ)i z?E_yN<*qU@IG`-14v`X^Mfkd9Qi8`}FwH5!%jkbg3Ef-2#gKLhu4GxHl;9@%q?BMi zeNsyBwNpy);ZsU*dG{rFYI&VnI$g@b$vLRL8wCQJ&ZXWmZok@d0nPI&V1&S*U1#VjSp&Tj$khbiNB8TZDl_^_KfPWG-%;{XoBvomQND( z(zU9~)dGcm!uBm$SdR#AFlLg%EC!}MniI@s@Mp!dtnAok@+Hb|tMdCXIZz2S`dNOi zY*Kp^mqIeu-<}eWtH?=;$4k$N$7R9~2EWZP|4@-&6eni&5TeR7(%Rl)Q!D#k$rjoZ zJl_rZU3flw`{_-;@po{3UZZnk9-6ZCIKm}3zds>k5&Dz!dlD=JM)7Cb9nSBmIOlf< zIKKzLQ_V`{{Cw5--k#w8$Tg7LYbw&&W>PplS|u!+wAYQsHis8Sf!ixaeF~T7@t^~g zgOXdx<)t-+aLU$&%a21(z%LJK?d&dNU86wco-XUHZg$(IVu^`de8;DD+rlH>?N5($ zKEZ?APX~mth1piQew++5E=Qb@6KnBD7dz&dvFSz-MDE43ji5B(ta$71T!axH8$K?p z5D@mfh>E%zp87a5>dD~RJ?hC4KG>7Z<$ctX<5}>Ntf;5oWq8Bp7!Plu0C2DKZ)j9hNIF2#^bB_|8#b@gd9$u3G%# zL(}28k+3!ILePLK4^i>aZ+66x<*ZLZZhCJZqnxd9D@GAMfa@5FvQZClvtJz^t_HkK ziwi!4H@7pdpEB<9VZ)F*w=;og!UKaybnzAd6G{MxZ47v#DCGbiN0MjL$=uZ!_qt!^pf)*3f2=So}U?K(Jz{jv2LG80Y52SB=y zWr|znq>!UucdHx&OGp?1vCXNZTuHVxOWjYF=H6ypgFEFOE=LK5e<@dxeQ`nKCj-OF z`l^>S_fF&b;riOb%SR5IRygc(-MD@x8vUJq5Hovt-gOgGZjPh%LN#Av?xK;dYEq9M zz;XcuT$un@*r2*Hj`97blo#&$A_~bEn<_TRRZoht${cyYjd8qh#uaPg-jnv{CSKIV zW#A>|a=6f;>$srN8tBH8H^n(2WO=7FW= z_&k!dm{o{dpO7-TF`$!h^H4X@au+I3^mglO0Lc!hL1i#pb;AIHGOD=*!TmN!MScL^ zOMu+P;t#&$8u$x@>&Oa_I9w(q_t>#fPr6VM2SRzd(eE!vB96=iTT8Tj8X!g7bU;Eu zw493*{`~75vT)-OTOPjZv2g&&IPeE>b^@H~fZ_5WKyJBXlYVKK#fKwPPi}1%-w&)m z=P3f^s$WppGnv9U2!sj+g|7fo6xIQTD@m`TPS#= zC;{dH$sYpb+90ZOD5Hckr^AdUdOpi*rA^`@l#jX{N-A{E`AH-eAQn0@NQ6?AO(GPj zgs_0I4;LswZ4eo)hISl32qi!H0SqL-`3W#+gBZJbwGjp>&=Qd|X)<LFi?sU<+W zA|P=ONF>1koeMmb4aD#_nd{Rkk+eVLD3R>NbVRB;P%J>;YD**4T=QX2y%>! zg9pYP7=L(H-L-zex|IzF*) z9uHVoA|}o#YgL@%l^LwxIwT&5GXVs3Q-`!PIiEha2xr5&V*C1I`xRZP({ z1YQr^YFG3FGo6Yqnx}`ancsG%@U~XD9yTkHPZOt2M&TM0n1nmz4Sne@J99#K_%xIb^-_y-nBqAlc@J9o+p>!XiE zmj^4Yt~gwxa+c_lhz@*eny8}Pkt%*nF1<#1@5VWsMd164DZ3M&wu3OPf7aHxf80)! z&z#=~^+6#qQZC6cY&>93FKjtRD&Qshg9^v`q*6lULHI+pGI$=ugLd_zg+@YnS^H}^ zZT*y17aEf7OUV*9S#8Slw=HML*aPVbLdHoiY;HI8RG95bqSXqWPEb>WYYP z!GhK3DgKYa|I~CMbjL4-(y|cTB#hU zCIGv3VtN7Cei5w|4-hl|=$YTa z_gz5FVp`@8hT{p1!4B(1MTpX(EeEYahCO;mfJF02@#=S~7nKgyvh$<_?0-r?`(hep zztg?Ve2ho38~3M&_UHE69@_4faV(w&&oZOr;K0iobPetu!aX=;gOi#sL&RG*&y>m; zZ`SoBvLjM7R0_i>ZcJe|ft;*RWb}`~i>a&Q^iIE$TQnwlxt;r^Vl2d9NaC_Wnz6(E zR6Ynse7Ier#JLp?c0^(@e+H}{_KA7+0NdbN=y&*td`Yg!v!3k*!#C!u15_eb9bcnW z^N%__c~uTD_;Wtd2m9l^8VfY%AXkWLq1bpITub80I3R7tZZ~Ns}H(O1`%Cc4uDWb}hUh1?83%g2tj63y9hskGZP?@;)^oxeLa-P zVZ|OZJ%70F07$~v&9Q@F7bosVqxA~wfgeQJxbDMeLr6xCN10?pNtP(T`koc^Y?7#t zUPq#XSl!4CD7FP*JtP^J-lp09Tw+Q;uge6n817IgVlW+66Ze#Pv3i{29FWBdeG7yC z8l9fQ@9+K#26fWmsfX9G46T-v>ekg2-#URNd%*e#!?x86a#>k>Bv>C<8rbff=2N~o zNRlf>db0-Atc-hCUr?1~%1x>iZs%CjkZMv%Awd!@4Xx{Yj;R!_vJwRmx9faA>|ax+2U`JZ*oC2-JV@(nb7hH{y}b>l zHjk-gJZG8KOD{b^^T>T}Mu1YSV8>zYX3ij)2QcodJ0PcRa_)~z);H(%kf|!@rpH57 zb>4r62z~m?7ey03^DMxU_VgA;+GO9!j*h7pN-}SkLT3t^X>XT=BWmK0S#H#ZT7g4? z2E#}!ceye5C`y&qnz$;ki{yy5&@-o0yCt(3vieeOdS;6}=Qkh=nM(nix`&iO&mKmU z9bI|TGY>XEJ>xXajYE*_n|2WQL>|Ullm)Y~o%A+(jm0kbb=A{n%lcL4m+JI04!g;; z4Z|O!{>u6tap*66^m*X-nARqvPApzwAvM~Clf&AtUG%Zk+7HYk?!|HzOBk}-agzWT zcsob~vW+0uZRCR8`Ujg>N?=Z`X$YfOJcOJOAAdmG3L$F5WJO!&3ea{PLR+m_BzCN! z&?6N31EQ}ddb>jZRH6GTbOX^-i2ftcDPvoWy@r1Whd|@K#Cn}aLgR9t?;%or4CMBj zQaeK5I)OX(WT*>H_L}2y_I%;+VzYE4G|+;$g7w-0Y?=o9d(Ejs(aeK=yyktwa5_k< z3ZRf-!wB~MeC~ZaaPvhVRj|k z4vW}r{Q!f*?8D&(*r7aB*x{77u>iaUj?mfiq2@sNkE-#0X7O~W;yY?kOArcNtHT-Z zgXrLxS+WI-V{WE`kQn4b7^*(A1|kNIE^1ZlK(vY~ldYB`cd$xO=ff#-A!Of&vd~lI zLk&q{p|ezSdzHvWW@r(T$7f`SZJJ{(rz})qJSW&6_f|mn5B5m1X%wY11IA0ips<*a zU(nb(5GCDs9M^<$IBu;0290Rs3v5dx4!z7rp9k=^wx6_rAz*WN-$wSVnSzd5M?X`% zz(G9OK5+JyjR6OQCd@~9N4QPrjLD&moTyyEfjB;>HWeF!m*}(JFf*#{XvPE&q(LeP zPxTr@N*9TsB_I)pyGWKX>AF!?OG|W-s-d@Dc*c#*X?_?$@Z&CnEPe11z41hvzVXHH zZfGsJ=l-{FO~41Z0W&b_$bDx)V~$hFg_xZ%_edP@ggJg(9gw3NCCl}}pX(?qM0rzR z>+S#78YJ)5NA37|AKkr8AN97bje8A-97=FMLRP?7P~#tb43w-WF~0OSewh}~{`?s( zC~F4&nD>fXVEUgozGVCF=$vky0Nd<08vJ)`o$e2hah2TBKE1@w)V*L{;?Mrhxks{f>902i)As448MV2pFHj zZkWYM*KZ5}V{%uWZWg0}d?*hSW|ScrE#Z|Qc!7Q9;%0&JHLcWj!j zyASDxH)}>~JK7!jDrX$w7%~!5WxyQ!PuSKfF|R^N?!{IE*Xo?W!(}UDHFYRM_$e`8 z&&W!=I?D>E&K9qPt&z!B?1Tif zn>1FPCXH9Rqyb|mH)cNEeHyQxCXLly(s+ewT-|*dYfh5}izhiR4NRj)_i0c7sAihf z@>ts?4VZ|zF>@29^lr+7BVKoDtnZRW9n)CYeHt51lSZUV8e5pg_qtDG<7v`pNKGU2 z1m;{MQ{2)`UK&r6#-^k+5+x-~Z!HEeJO6>v3-*@rs_cCo<;l!40Fv`E?&@cK!nNU`)}?jO{Zv#|AxGhXur-W#T>|?s9Q| zBkq&pJ|%9gxX+0DoVYKDyF%PQi2IVbFN?cU+`o$Ziny!AtrK^xxa-A@h}$6UCULij z+azwYxZA~jUEDXsZ4q~;xVyyNE$$w1-x2pcao-nruekfg{Yc!8#kIu!MBIboek$%E zaSw}oRNQuPJH-7$+>_#Vii^`uD9JQ&GsNv7ZkD*c#myG?OmTC>Jxknv;`SFeSKM!i zJ3!ol;^v8ak+}KdeoNc}afgUIRNTwN9VYJO;tm)0N^wVu`#o{Ti2HqUJ>rfN*C+0H zadmO87B?X7wc<_^_d0PWi#t`^Y2yA+-09-pB<@UcZxQ!aaZAOWE$&any;Iz~#hoMW zTycZq-Y4!naqky*zPJm;Ef@DeaVy1LEN->94~e@}+=s=j5%*DXmx=p?xXZ=;jkr&W z`;@q~;yxqpbK<@r?h0}LAnr@zzAWxaasMjrE8?yew@%!(;;t7rB5s4Yo5bBBZj-pp z;%*oBb#dPiw?*8Y;_ec6x43)6eMj8)#C;zw6JL@C zd77>7y|DOqG{}x1sJKE4fw0IHkPyNWLKC!tqEr!V|DEb+UY53wcDMH5^8fwLx7_=Z z00H-z+~nSOzI{92cE0nSLnut>8A6;lS`HHWPePT15)os|Wgj_=V2n`~%gV0Dq8wimTx@8riY(ftZDkij$&|QRhk0);lAqa3ko%c8) zXq`Ttw~5fLgmx3UiO>;3V+frhG=fkgp}~ayK&T&~&tL)A@-;$VB6KC8-h?hEG?dV% z2>m;u{|91XUNNEH61s;_GoclPenDt0p%aAm5;{ugBq3_<&3lVb6`{WoqBhyQ%dkOc zSxbob*IOPX)Q8Z0gsvkrm(WB)cM!@ZR7@yJXey!EguX}UK0*@+tt4~+LUnKNzgg!^;TZAqmR7mI@>~`~(68djKn+Y`#I!uT=%{ve%wJA~cfFFhUav4J4F9 zs1Knqp{ohaCiG=O%L#p+P#K|%3GF2GE+k>*9U}BLp%a7}3B5t+=Y)Ps=tV-O2|YvT z^H`d;93=G5genOo6WUDZMnY={F0k8GxysHU~A~cB5HwaB4ltd^(s3)O&34MjolZ3uN=oq0(3H^zXL+JC^KDGQ2 zcYX7E5c)NtQG{M6lt<_lLJtypp3oLThY7tzXdj_J6WT%OYTU4H*+6JCp;dsKx9=Va z65>$I6Ql5c12E0k0_HEw;Bv+@=g`rzkyS4Z-4V{a|IIt!82T(szx!(?!{K?2tA74! zbAtY*9pm=D4$RMtfWv6Is^`{W>i0YPm;Tk0I3P7OP!J3Uz|WhQoG?1o8JwCHoIWBD z3DU#$h1RZ* zEhvy=2c=FLk(Qh=5jhbcW1^$15{*?Nti%yHW`^MnP=+JV8pM4F>Gd4(>u*;dy7JpU z`=>ht4-8emYlmKXYF+U+Fa46vPs*^wM4kSm5y^=vf_A=d*D6c(i&Y=y+e;Z_qm}{r(QF(y!e|#dwp-*&MMJ-^{nJDL>y9rB-9Gv%*t^4zJ@*{&;*M0uxf?I*`;IiH^g7_o zyJ?9@Y@%#5(WFRrGBaVHVG2snzr*zJcw;`~$g_rN<96Fi!{paVIHZ1eD0}y5Wk2kI z{;gKO$cV#dSmiMJb#%Q9+o8=p<#%E4Z%g}@j=N&G#V@q)RD)HxT!ipH0&Wq%MyR;d zw`|A6gIl%QJsLyoU~5_FCWNYu>qk zsQN8a<#WC~?D!?eFM0Gc$1kC09E%NG`sVI6e|mZc@`Gn#{V@KN&h01VK)*|Ucf>QZ zaNk$#t@|kA88FaEK)d)K+VM#kY0Izpmc(1|xMZ7G~6?ie4%FTgW@ymyHeEjJr4ool^SB`XVm6~r&Na%*9+rtFPbQ^Nka?yjPsA zp*2p||0wIy^{%d6yO!_S^69Owo#_6BH%@iG60f`XuI^V?ZSLOt7cX{C`LCC|4}Se* z_b`5^|9Z{^XZG*S+%IySrCCw5WUa-(Avu z-#=c~{lJpa?gt-U-2KoMpXy$B<>$LUvusZHqd$D0`*Z)$t^4y|`*Qaa%jb4Ki8x>R z;-%ex*5e<$zjpt;?yn==hA(}#d*d}%UjCUkPF;TKAAfoIHCKG+@aw@S~q$JE^bVzO#K) z`@GV1%*C&CO-%OpWsVKW$?Fc8y610P|73UfJGOF9N=U@~joCrX=$z2?l=hl!&wu^D zM}|JXd1$TsV*l%luBiX!Q|{Z>uetKo>r>WFy#A$(`L#>-{>t{vxb!i8+f{)t4_yHJ zU+l!>-oU5ui`@boFTUh6-9C32-_Kq4d5WN^r?ot<6%D()rtY4?WccR+X^@f{tdkF z^aq_G{qw^AK^LC>;P%r$zxp4{^ufY_v5I5ZFd4_%$A@e#6x$tO&hEc$hR*K4ZTp?W zf13ct|DfzZt{qXcaxhk^fpOSZA(kGzF>5e$ke6iUCF&iJI{K#6@i-{DEdGt#8wtiz zREv3r4)e{p5XYOr*)n6ycfOr9X@nS|<^n4t-|KuWnr=e#H}P6CyC&b17R)Z0)@s5s zj%@ODyXN|<4SHc&bpN@@L=g5yXRtvmKpXtDV90AjIIu(x0GB0vCzRi)Tldk;639ob(_SNls3#YTsw z1-)nlvgwnal9G^c18qSgxHdK8rqtmXnQ1r12e>wM^hlCj(kD6^%m6ruwp`38q=9%KZLyXTYl+nw=rULw7%@Y#{&YwpzjhyxkOX)7B!nI!v7spROKV*F z)*c9Dh+Uer1zibgJ58N|ols}Q6+u+wX@D}Md}+x^s-OT=$i!rm1wz_RHm8guF~Ouj zNEIa&u?aF*{1`nlRq%%eO-+wpe-SWk+qVxS~=oJDyKXg(;?e#80O>8J6Iq8sQl=>>sl!SUgu zoM0p}t~e?o?8o0<&`3b6_$SU?x`b~8X9tV-?tK5*&+a_c{rj(ccIThF?|k>OiGR5) z@pRY3)0gc0f8BPz^ZCTT;=c?3|NJTWzclgBmnQzz_y5PwCF1{G`TyJJ68-=0UX+M` zu}S*FMg0Hk#Yw-pNdN!jGfC?I`R`J`>~HDza~q)RSMal& zpOg69b-K-G+)UW5j^OiFAwDnMj!#7%K3|=N&*>a|in8%}^;UewW#LnM3qJk7htKNo z;?w;*=5zOCKyOVlpR9?1{V6nI`q5-JGY5!4Yo379i?Add;m zr+qrIpSL|`_=E(E#5ODeJ6;O;e*(w{38`a)(X?=AdNAyFSM#kbm<)M=B=?S_?@!S7 zXY9|Tt=3NT$J+D1)<5T3?cX=nVzOZp+2d7HL;POq#lb-GHkUEM`lIRvnDb$Z}X z(&-PwbwVwH;WiwFlJYGslyiO<26=3nB#_HP06v7`>-;l-e-dkaI{m7e=&Xm%dO!_y z_6z5K$oTMGh0l&dpzo(}9*WmlfX{s6V*9*|)U+kQF?Bf&{6^E?vbEhGu8x9XU;KNq-euWX-LzC zMjEDQ!=Gp<)`rh8s>Rv>HPBc#X~S1&sL}>rKX(q|t-&jg?K4A+4FML8H)tf~H;l{a zmH*K7vWsCNZi0cxE4#&G-dvW40P*iO?r4X=Fdir*&tf78Do$J;Lo^NA0eF0-_;uYb zH9iRtY4*@!72bXX_(&YgKCzAUX4|K#6jjb@b=LF4hX9-CZ5nt<;$QLpmIgLn0s%h0 zHJ@v+j=&e;_BWKoq56SaOvxXF4VQ1%u%;?tScG4BByV2^I2vyNugx3E-5=(Gc&GX8 zb-Cl(hLxX#*BOde(~*7Sj!lgKE1(ZEMx2V^mB+UEr%j#-FjFnG7>iGZ^686ryRjj_ z3Vw?g)p)-}fRAlI)+w9EmQR<%g`GSuzC`r`ntI|TQp@A7Yh&jEU^m^zQT!(W*gfT0 zkIJ|VkhnYv!#}YAd`_?Q+Ixhu5{ji{{rmJ4#d{d<_h=Z5&n@_s=k&^x#Feo$%u!Yf zxCD8Aj`@BVA7+inXsi|5?F`#0YvS*gO}|H z?tio+KD}X(=j$+J0}^kmVW77i^u}xIZSr(n*QB}q?+{=CZ)Gd8OdJ@Y0}m0QAF;7U z)367IEc}YMFT#dXqdbCV+&KDEVH;=1RJ_gx?mTI3~Up(ZI?0dCJzDj+=tK# z&Uf(s3)A2;9e{P21A}j!Bk>G}C(bGj4Dq@)9HZgC@!o+~o;=ua9R3wu$j8s3%X50= zEei8D8XE#kGYOe@D)F-32GKAX0j*0e44ggXxf;%&1|(s6!O%-PsB!RXFfoEsycR!o z|NI8*)K1$IRvie~x$LVD_-nDJ~78<_6N;#*;*xVq5b2H zPw;rD@ot2v83LqlwV=A3&*390AiDZ+W{|0K0&EQqbWR!!RSd@GUDSCk;t`j#^U9aTgh+V#j*4N>^fdC(i zJ7bj@%NGDlg`=m#3GNlV^4Na=Et4YxcOl&g#O`NMm{lwypIk)2&Ll2XFzgg-e5N7y zj9*-$FfN1_JC3l8=fQ&Il!;(502zqzi#GPw za&{0Wz^arL-!A}s1uu!O&i}(Z0Ixi!SFT2ztda^zGL{4wmZBttp1^d!O9Mwl8ggg| zY6C^m$}Gw-B{a;{E_czeLK~=Qz}bYC-d57E1MiRU%ELwH{{i$D=H=J;$mWGkGQNHR zKpNh|cx}DZoAI?6w(=0*zN3J#Jf{t})4+POF3B*kBgo_HizUX6Kmy*4wD>H1_r>pD z84pPdeehdH!y$aWjbC|eUt{aYLx81ipy>g;tTK75-?%Y-INX-doymWl03Toen6Nwq zxP^F zeEDNeTCAZBOrZ*fo8k2xHpa6*Yg z+L~imF8Bb?0xVirc7z+Xfr~?j!{dLka`;I4Jpp9lt;TE9*K_wt*vUiS2Y6-K z_a6w)p^rmUG`}MYrRVyK4*$+0^H;wum-PCa5#=Jt|2HyQ`eOstgv zbNA2qFm7?V0S3B!hb|n%&JwqbwD2oKF7tf_{5wC#%iM8w*yVQs7`M256*hF?Y}|z; z$Fsz32V?@b!tYnv9FOT3b}$A~AhKa8E)*}%xW9qlE-Cn24ud@Kg~yJYBgBXgfy?lA zqla;LWkkfU=l5!w_z<`R?;SM!8(t33@|<3|wiJ``l`c%goEp4czJm|FKSD#R^y5~~ zw_b#W%Ek1F#U_2r;~zJfOL+)zsOECvtTZY;ro~m@H3%~uuS|HXrWJU*%*BU>RWvNY zr%ijjfuh|EhYy+-r2Ampn9jm}iG_U)@3-*Ea1`yyQ za|(xLwoL%9Z5zGs=j1I90Y>;1)8~w}5wASI#P>^hIl)Nyamlf=cq{7)S_i2}h>GH7OrB=HujfG)%QE+Or5kS^c%yF9L44$*~*K5xLUJipW~b#(bH3^tvA>ZWpVm@fYcgLN6B zU7n`PM8C^_XqRW`G7knWxaFZZ0>thdrOSR8?6}*gU7n-MfBRi1kbq&Hr^{6^{0zVH z`~?OM2utYlDL~w3$@BE*l*>!_b$)_RmUeIw;Fn<*Gt71PY%nf%&f|b34*{m!nV-6S&3y*@zS@3T3bPAzx{tRHP$>mC*JNF^taxI+eV35b= z#pas;imSL>Ljax-kF@c4sd9`R0jBv5(|p~Z=3JeoxLghA78Ay%d6Tgrz%>6zi(B#f z($sTMT>i#j0J#zIJ6izk!mm6w-Z;PKEXy<#p1?~O;YYLChM+9Buuyy+>8565aY;su zaxhC5n`Ve6J_MMitY0`{`^sY5>{i&zb1S|DNGg>+4=t9G|B?uktP~0if^K z+vGhiH_XUs24v;=>Pxr%Bs%dS5P;`QCR7Dr2W|P-I*Iekc>h3Wrsj*+mgV2+$cF&S zGMRlX5oKA)uzWa9upPvOaw#tI%3|Z0EMDmg?*s&=h!p1u0P{?H_CwvSgQd8T0DBMy zdCo8Ix=!L!Z2Yw2oI;e&H}Tn~qxI@!im@TUa=k-~Y`nfYX)oS?K_B}9J3$mc+kSSz z@zx^F9muouMSR{{e&gDE8!CJ)EBvB%$Aw$rBG0Y(O8c@YZ^PTR9^&HtC5r!Z*27R{ z9KZ6MU%OdciHn(Aq5;I_MF4JRmGJpJu;(%Sipx^ubiY{RW7F(V-P<&8G2sb3gQWU% zzUqPMdfKGmvQnz0K z$hz%?w{_jdjj@-)!=rd*hiYrb(w=(Ki4OtH5+A!W{SSh#L*t;`Q4?T2Npt1^@YRz^ zzc;MqAwbW6&nfrsG~!%B19{-SPA5L;7>b@olZs1s)T|I6=pyaM&c*iQ7;4+kj(b0V ztvm#XML#8SY{pCU`vnao`CAthp+tBcoq} z565Qaqzhy*iUC?CoGvx^eA$EnjK|{p_l!M(U*Z*7>jd~>5rw>JXstqcEp0C@kJfs^ zL`R?;?{AnMn}b8d`SY-dl3ZN4!KJnlfmy+@J9@&1(e7XuS{4iCg!rWjaCs-JDcAVPv#_p$`0l4LIW6$v=;h;MsFBA>-(l(W~J5KF= z{X}IiCpEvQBzKmZ8<$WB*?K?Iw<@x^`=uY#l?K`tQo$?K!!#vF_*) zqzmP^*A7f@*KMsmQu)@vgp+0Uwe`QUF+cPCi?8o`wX$jV;ZrB7HoX{A;d)LOm)>jd zhQmMalX+wM_`~at*3=&PN!fL-d%R3}c%iQL$o}8#uCIBa`qkZsPnOjkUAL9V5@I^I zF02yjnVgg`B`GDr1nXr}u3W!oEo0tWe(FzR`SdG$U*A)6v}WBtWTgW2ce1L2$uj3h znori#mVSQx&P%_o+@Wiy>cq}xs-7uZ`_uBeH*1gVRxzH4mE7ntoUw)Z2w{9yTRqTDoPLv-ybabaO)gF2A1faKB zCe#{A_2c9F_uG0oy8YD27hc`{w*xOR8qa#?friQ-shI0)PnI41>%sr5uBm+I)PZOA z>^}VDkpmS+;bZq3$Dev(?YgZVI@O^bP98t}^S%2IZaH;e_u-m%jvuGbV_ToBv5{B3 zb`ll#^wyp0DjTbR!zP$8d~(^^5gFsl){Y-Lx@_&Y#*en18KcRXhu{5@GhCy875Y=r z6G|e{a43-Psw-<6*E36si;Ke1i0kFBk1Gi8h6@YFy~P*Soe-^Ue{@8cSj@8c#X zx#+0wz?8n!{Ti7Si3STIZUB8WqM{GxN*o!1nW2J`0yi9t6y=vtUX0fv`nV;h$E%tvPq zWakIbWhUk!TLloR;LCW@;XpLl$91C!QJ}N#Ik-hrb(Yb& z+UA)ZZ6-RJ!bDxoE?QvPG{n!WNtKM8SzHw1XhxeM?(h;+K@r>og(YYzTJ~Y`LE|kP zoEi)V3v;Ak0e6NBL})5Ez>renPz2Rx3(Ns1wWu%}4n(4T+-ZS=f`HUXAon&@sMHC) zm<)z^LD|hK3Wx4Mpg?{f7k3|{Aqb&x3qs*AvQ~t439#)X|0Y~va2hP9t8$3TgkU5X zo{lOl4i`;Bixw~~H+@_yykc|Y$X#=HMp5{7RAlh`B`Dx5H?ACgq!o1Qutu!EHZDaa z(c+S*uL<3rg+b&aSXfjtEziXW;bsF}XM}R2dGW0iDGU^2$d5{udq~QbHcstSF$$C$ zEDqvR7|ox>){CG##AW8QI2@cF3eJ#laW$3`E{a6*0wL5WsyII|%QZrj{N5riZoUFx zqk)2A>!D9Dkdvnim={1#a|1a!CB#+$-!BP8LTn!uvbYHS7+IWJ6fTfv>*EF?5ygcW zIFlPHlCC>Flp8EU&n=|7=EBe&s)1cUW&kCTMTsRsgo^~GhYF{;f-pnQFgzLTz+74s z&V_dr%^8@IFl9hulJwD}DM?~Z8Ju9vdWI5n%9Ip`qnK!wcAk89_Zz3)+4;*|e>i$z zf5ow1?tEe0R=2XTa&7I)2O5U-$nE2dDVpKzKKATSow3YlzH{<8;2Y4Vo$6Nsu_J^E zONvS&&X2Ypf5*uzni`#famsn-%>#eq1nArl2I4>%h)?Or? z!3hadAc;cf(wJ-}rA?&(Y;l^z$u_Sz8Iw4T!4T|5u;_DMc=gDp`ew(tYNNp%tcKiF z^fuheHdY5;I(hub`UAh02{4HZyyTB?fhP^CR(MGRI#+nTJ6Cw`?+Q;4{1dgpV~;RP zyrcnY?&@6PbuRIIOVu_Dxy~h?+HHLDmUviWV~BDxZt6Qp#9gIkjLUQr;|DBprJVH) z10_1vpSGe*BW0J;&-fFWT4Ff>cD_BX3PUL<)>T$3ViJHgtsPbMBa+s&ujpX(Md@rpnDbx>t);d}{*=TUA4nfsG`(7+rMOs? z=>=O#&&){~NxdwkZ?IjJB_}jgFNn=q)>OF$C5!D@-%$N{)5_|`Rr?e@!gbx=jVme| zm(2F)5pR^v7J@|Med}Y()^T&>`La|AcoMP%ehppXtpiJvlVT4n8JN;gv$Sc~{-*t_ z-zdGu1YcDeE8iGfIKTPerl$KA3~|jG6`^9wDw+=-BqbtNy|J-kS<}V`;!|zdzrS(r zve=G&v5M-Z$LBUL*c{vbc*EXBHaej~#1^k^o>S9jMEcmqO=YnI%Mfi#=^{`dT-Vw) zRNspP8&zhiHzFr0agZm^kaqLN4Y6hS>ljggHLIB8d7EN8OJlWLS{~V?3eb4((v~fc zwv?`Ju3a8mya~B%TJ%Ii&4Z>O%5U?IIn9gjXo;(=aw*f%`Bliva z*C#eqZ%!R^V?*`6*wTkklPZjfr*Y*EV)GU?KD-wNeCxpDtct~(&AI z8QZ%H9%Dber)gzn%R{SZ`QTF2iSe#*t7YxnriUIwL`?@CZrXHj`nY&hQl5y6HLF_I z-me>B#~kEa8JnvX>l!)uU~IuYv<&%^MdsK2l|o2>C_z!x&q*MO7Z#L@GG8a6#kJwWg4&!^D=( zj%|CSXCuh!cTKk4>i z&_9{Zxk;e@oSr8Y)E~4BA(W0CqlMDv$ABE_FO4C4evlMVe|l#piu!zhOSS_r{P@ z`{(_4IqP4py|H$jJ|?ZGTmSOb=OhidHfc)YwJC}g>6wHU z=^1xDSAH8PmDdiOa_yib*GGP|cAEZZ&FeRpPu^7CI*g(vT2C*%D8xi-UVnRhARiUe z`Z@JGp;1~h5}M>sNQG&WP^&<<>p=QM7K<{Fqut>*O;Ge$p3-W&r)v)WxsB!eZ5zuV z0~_b5i3uQXDuSe&8ZIjK*;=}!=kbZV%FB2Ee#cWDUDuzoA^pas+{#i?HVanm5i4#X zhLX;ztq%R)1246xsVcU?=>J9O^TW z|6Jd+h9dg9Siid--PfdWj>CO3=QFqd)A)5;pV@NoWbLo(pJMD!9p+KSiD#=Sb{~HJ zt>2e(u`!-Mj}KY#H=V)Y-fgnxeX?)A^_rympMLXP-Z znD$QjO(D;G&`%#{q68ba_i)^AGVoqb{7oEf5B;sn2XyXl;_v9uzwz%s{fC|H51mWl zGcf>kE``s<4M5y7E0fNpuwr4c8~~k5;npkyesnq4Qn(!^CV%iaMggHPf;34zUV{^6 zVm)S;OlmQpCtYPQ3jqXBoPC`ufzFk{h4cOqE4dKsTnQK!K-P#|BX<(Tgp={Y*a7_` zUTcm(x^)u8JjPSjM<-G2ES!QqWcp}{Vs6-V3y~W%m{~l&->U(fdFnae{Q6EEE!|^u zI55kyj%hjt+5Dk^2ecaO%wb1@hWKk`=eFlj>@?Bd(Z8-x$IP~03_TK(W)3;i#~D6S zXwXIZPX9^ZjE(e<1|!k_X+=3D1z=^1^e>nm$-P~F;kQ5DemTX(&Qy#B6Tt(T0iMh2 zzv(8p*IeUTyTDA^S!1ZsnL4~MkY6-yG}xKrLint8AfFAwd2~LW<0d7f44#rWAbFss zCHW{?szMzc&6DtzAPta`JUC@aa?;?z!p-QJ6a^8auPKQGL0%zcj*Py7K zkK}rZSM{CThn@FJKA`(0!hJ}F93NB4$M=GX?Gom=wUhm@^M*<14HLUa`)C)9AIJ@p zQGrlCF8tsI&Q#pZk!v`^i;MGdi%IUqnAPd1qWoN(AZ1KfH{!B-B&5ugPmdC(N9137 zw3ZnQ5K7v&UzFQ~>PjxUR@)5o z)~$3x=~`w;ZB5PUJ(-vEao;jOz&oqFpBfpWZ?`Ibf4RkPJ+!*s8g~U$68bPmV;x`? zvlNc=JRY;*+OUarkVov}Knt^l_%OJ`Y+`3;4Kv>U=dEU3XMCU}(vjr{1T-hCL3|EegiMq`)J_ez2_=P@QQj!Vnq@*})`Ur8$EJ@R z?Tjm&90*0>5{|a@1UVTKvoa?RpD+>rB=X$0p2iQKlsPiZQ7fb@S<+aU|~=yp@7K8Ij9E0Dvh`^HTQ9WE)3s?=0)w2g6>=z=;cSvuRM)`C#r zj2q|E+@ca(Y@bo+N=m2~l?BIVgcyVwyu2=nyV)rE3>3}{%m~ct1KA8HGvaXqSO-%g zgTiPQR>kj&h~9L8rv;-~g~6G?3{{&Bu8vQdFe1{&1)%M&(v}dO5Y01|+!CYRR7TMn z*|Xennb*aI(#V5d1^X7}GUN<*<#Sm3Ik)3leK=fL^i5#Z)KEAAMA7XT$fx&N6yX4w zGPw@3XB|P)?UCEBN5a6|h{BaXZf;g_QGWi^TnC^#H5cxx4kLh+pK!1MA_I&!Wl}yJ zY%}t63;zw$54iDBp(Vo%5r>Vrp-4_qVIgo2D9HVdWF*(o=*K3s-KGab4}>9m!xsif zo>KxOMZeKCth@luH;2+9J_DN`geQjGYW{1awkukGI}_Vd*r+)!Bs}fs(V8kId+R3aFmDu1K&}C zvC;<##;6&LjnRLqVC?jnf-!=PnJmf1=sRFAR`z(oSXjnjBcuv7e1^?@H`x|>S8?Kn zR4G?`R^I`B)^2gktcq8e6{$A!15@m7UPXP5-F&zAMJ$y{s?{#O+lB1nyS2BASJ9tw z7vJqntg6c4!uRYd-S@C(R}r+?vuo=QX3wr7@8F(YdG_tuyUCuNV%L)5@7tc?)S#QU zn)gt=J+V~X-Uo)1ZtY&tvR%OJ*$1Yy-2-Ds+O79_+|cSqMuzi|J=Kj<$$Jt#Wvddi zd7S8}ZXX7h32NtDqNltJp5Ip53)gxp-K}F=>24o`t+ZE&4`D0qC3e=WwDtDUZlx7B ziOtM8?^v~EEcL?1ag|~@;c-56c*Qa)lASyPaMA=*7Hh%PQZ!M)HW?~6rBxX(+J$i(en0X%S zEG~jly>*rtWu28WFk$eNkB?Lx|ID_YHKtd8y z)divO_tyNlR5AZ9OlD%L@zx zUFhFSEiF08^O2lngC-{X3PFSCf_0OWPx6f^M2<=jvdiE3sZF>4qCigUn5gM)(^S^E6M zBR#vY)u$?ydJCF)lmvW|#4%3_1vP@eq^c&&?2(^8(-~b9bxR6wFXZWmCap)f;3oxn zDo){YjjaR*l^>FZN!)iSh}-?9Ksd@LyAYGXIXe!LbQU- zBR(pBg``88nW~Z!Ih~64$wYN+(}8LDs=EDndL$%=`f@-ppCm#_GoA6My0Ik%Xy!}^ zohG*yOKs{(C6mQ7j4TSJrn^^L*t1cPH<_-`z^X39&kz?#gmWWx%%_`@^$QW$JQ1MR z;7pvkMkx3iBAC&R^slR4L@-mlGK5~6T)|Zxj7X#Kv@kmuEc8bx_gs zXX0!b;F*KS&W7}EaKZTsiu(qT!OcU8K&w2G%%nPsdwUS49r@}|lSgw}j&v>#^rAQq zogT;!cB%Xobk;lba)yH(c6dwhl!|MhvL6o)t4e*=Zor=F`Z4FWb_2i&Fp2GUT{wL z5d1`P!lB|Q4i!Am4M31`APj0p5gG%1T#DF_$p)ix@Qe1G8k$D=+N_Q2Ale<`z2$gP z^@4u=`uVDvN0%X-o|xX{CDqTIrXZ=3!bk~{vFrpYO1W=Xc^?nSE{QQl}#PEmfVG$F!k zJkQjkJmX4;cMRp;gf=V+oAj8f&5*4YpR095QBhDCw4V;2ysaGZ_pC*nd-Z1BWOz z(W^R$VDO5{bdMPZjKSoMV5OPG2*yd}(SJyP8wZmVE|rxQRF=beT0fF! z)|oQaiU%DbgUgtsXE=i?;5i9W+YVSz$nt_g3yp3#P;dy2g$wyR%!GNBmjwx=l2B#L z$q$4Ivb?DeXl4ya8f&KOumEXiG)5%;8IDtV93GlV5xluy+Zxk^uiDCF>Aryw@g z7Q##shtyv3Y#&U!*)|!~_Z^nmL>zG>AtH?=!FkoXVe$%)XN1efLK!#WoTcq;a#ASI ze;^;&%PwWxhqIIQjTHmjxtu|`knls`cLpT)4|66c zf07-Ik!XD{7&yzK8f8q>Ifyw7cBcHOW6JI|z928exCyq~Tm!!mW;~WuV0p{O#DEoH zusADPl*MHhIr)KZq9Fw}8^mH=ujbXD$|Z&NCt5bVXl0RxIUGI4TFRWxAqFcQbN~}j zZ5d=eU~?UxOg~dVS+bbzzyz*eRPXjxQh&dnA+8Mf#EOtNe%R?3u7Sd7T+vA{JxkEI zKIdNmponLUL=Q34`GR#{1Ph=bP(mx1X+K>XM0IxI)eD*$Q0u6y+%Q(;mai>!)Ci0q z`N4E*Xd!oz9a~$o5!#ic?T=W2aEQ?!IpBti{0xT50{Mp08cbt~vBp>5S<-d0LPglD zDYihY>vew)LDi2@rX#C+&3T9#*Xd=KwR!+TkPE)SO)339L5BQKpSAm8(~0G>%zA z;R34hxd|8Tx$Y#BrT*`00N99EY}PP3%o>Y>S#%dP(j-j%lrIS7K+xY4%q%IO3L?Mx zT$+ed`Xx_wZyeDFQR8E^kkP0^D_cfYawFqIWOzd0%8#t{(g*R=O9ySDEA>yMs& z`St2QR{ridwCnx&S37<}p9iXTz71V|yQ!D1`qdZr?|x(5))PNH^6su9FYd2=zHD9M zfE!2bu3og5_>PYY;hEBc z&_*>8P3u{WF9E0VWNOUv*%jpn!lCFa+KikjF=t{o5Xk4Y&1V@Go%Z;xP?W1)reWy5 zsaB+ex@PZYj2k=7ijb$WNOmBf@<=5GQrOXjQ7|(KCgbc`_`w3dqbKAU(Q6A5k`sN1 zrELVUthPq0qzSxwO7eqsQesh!gw7v*=ZW9gg7}WVt)K``MH3};>Z5Pt>N~(TR{Hqb z7&RlJG5U|Ljh#<{lO&;zt&OW+x`MIOC+o(jC9oO+2XRFbgHg*AXQ(OJSyMU7mfgoS zVB)nr1IEH~3|P4d9}lgZDXp&(o`c`9Q!8huR?c&3g*YRvZJCQwvJDrrWY8nZh!X7kkYJTzv1AmWVF zg-3EtY4V3AhPXWwM-&$uHG8lWiij&`)wyu&H$a>X!#a4Q)C6v{NqmSr>tvRnN$xCj zqtM%7D}Lm2%;KFl3Xh(sseZNR@#YsdpL%2O{@sT`TC9Ah_D!mpQ#JS=rfn6$C-p`l z)K}N-tlwO>tA2O=;<^KM`|B#|m%_ZWep%hR zx~*@2!8#seibBxd3(5^{bW5?7FS6t9I%a z)^9_Ag9yC7Zcp7>r~bjZC(mk;)W%D48=DlT?qFR7Qrn0NU_(kB6s(%0#u%vz~t?C!U zG`Ie7E1{c*Hbz=EYHT|yWf#sTME9nMtu}Do!TJYTC#c>zC~IYF;o)`r>K|ujtUc;% zcio=)dDfy$3>f(RqQ+etMJoquZ;n8c6VOOc)-S8yi9{YnjuzK1Vm;NB*FS*zSysQM zZhyVjmfXAk;ku2exQ9J5F)Ko}CD+xUerxL=mz|*TXQ?psCi;>IXxl-=oa7|rXz9R| z`umW~GGa{KF8Eo;g{`SWl>A{}+J^dj>K6}jO${?N5?q8@u5h8!6n@H3owfCI>bJyY z0w{JLT52saz8ao4B9Xa>dPQAT-6q%r?Y!tkwF?Tr0bW+gF-!g2x^+PL8YWeLe_a{$ zDWl=a{DDwO_ef6m*Y8B+b5Iq_i0P6LbA@~}w@6fQLUKwwoqOEV@MpfKKJIFrglPD+ zO<+2V%^zFrk@`KV==0H(z-08O8p-@R)Uqma1@cbReYma)JwzAE)Fq0z35Yqz_^sFR z)Gw&72FgB(M0X&JYUH{q)Zxzhh4@`4kv@hT+=K4SV(m6L(HMhvJ)n@RZhQTFR3~zQ z*!ChHJJDB(Xgh&?k9kGVn1?jV>u1-adm`4Iz{XwmOVY>1W1IFWNQ){!{JW*jbw;G_ zwH>0Xk+xxbEUqs{bX8LMXb?eG9xmE8{04jOBSsugI1<;cqZc-&r$>U;!EwoK6N zAS(GmlabaQcfzq8WteR|NbKw}#L>m|H5gQWP*;umK{+u%9ze71VbRepi!kO_NUj+N zXN2V__cF90>d_kw&<|8AbHGOrlFB<+w}r7uOf`skIsRCF#00F^is4?=MthiDRlf!$ zdRS0qK0NG1BAj2UF-EZ`0-2$=nHU7c&HRDpX8vf^%{C&F8&h6Zh?V9k`s&DML53rc z*4tmwTe|hRZlHc}M`L=tGYk4NDQ`X>xged?H~(tCllpe{)xPZmAI9ZWFR`;;PPN`X zTA?B5Lw@53)&6*8gxR)U^y7LeZh)T8s=gI#5ihtR23gn3Q5!Bd`c$oeWyYsxg(ky- zLpXUL#O)e|D~W@Xp;IM!P>R*hVlAM}7ix^1YZC`f88}$Pc|g~VHNurfMm95PP>NF6 z;+d2l8;@De=?`{W2a05Jv05Y}UE_mG8){ZHE?gd4yc!yK)txtG87tq}T)EyECGzo{ z*!+1db2hcCc&xdi0&I1{C7!P@Y&EXh+_ZYVcAHe#mv<$#Q$zLA#uXKfOJ+A$tVa^f zb84JXC57r98gCLrASaJ^=YqLcIfy2<@CUJt_r{hy?2LtD2yA;`o{cTLr}3d3jgPEp zd}tw(R#(=FDS`#EHpAMvxoUCKLrWlm1=g_T^)|U|MviAkrHuF+YHFDUA0*{(Ub`i> z?BT|$g$?`WJK*XM%gr#}c2MFIk%`7#n_}~qG?#5^sNUB2WLe{?MU9IN#un~~RqT!J zTha9R+~z$Mv4eAc`GYV@P(jR%5U2URJ+Xt2#8w`R%~{6cEZyGnP;G4AhS&p3V%r~Y z*t-aE#CGh9RaB$SVoUb6%v@bWYhj- zjf)})?B-?xokx`uFs^+wCAlo*yt9&(7uZ0&K{q`k|4^`rNHTTamhh@zT8F)_hn3?Qb+3mjbMn}*8|5xE0k?gLZ) zdaje6p4xC=P4mGAO;1fv)txMJe0rP<_Ct;LZHz6fYHe%z--Sh+_0McePmSb&!qNQS^Zxy1c=KiMrtCauP`bUVqW(?NoGd38VQ54oU6-?-2T%d%MP#L0eJu!5L zeLtmDpUdr*U0rP?NP4b}I>RZ;oQ*nRt(Yk!CiN0h3a)4XRFD`fY*dZZsCxAK$-fY5X>X{!qaMB>7@ z;wvHidAP$6&Bk>=3>6edO$;G}6YqT6PR;pd+at}3Wpb@p!8X`=4=s1x@5(Ua-5txG z1?6@eE=3}(n@{A%g+R`3a!-as@c#SMxQ31%TfC;Zrlx7ry|I1Ee1oCtg84-dw#@%j88$gx%g7a5 zxsPc4z!DV~$4;3}S+)1Aj;&k+ENiH~7g;27$%=->mQak^TsDw9UdUxmFc;T$DX3bm zmtkzq$?IpA9rI!f_Hi}v(8A^=b7Cti8H21sxH#eL9DzJIDX?0&02`(S5nQla_3+w#bEzGfEq(H!DwiM!;&U{Bc?; z3|hVfQLE^Bad6EG;pTvr&(P0>@Vy*f0wYH9=Blhpc(=JIC#R$sBRFM$E1BaO<0Ads zp5q{GUHj$m&ZQNE1*jXbDhTd4M?(-CZ}1dXYIyG%mlDv8BKfm=IamxfmG4tIS5s81 z9INT2vE}zQF5-fOQ$=+()|{vvwjbs`6oggtgbLO8@V2HEyV2OOc` zK33nsTFh+zIEiXpG@Iq4!k~uz>zdZg#`WC7zPUjN2tjeA*)fjg2Cs7ZM+=IfmNKhH zM6PP!?=p@#H9&zCZ$}(Y#|O)pY1P_jo{o>B%BLNtp03&V z`ktDjHS6{rJy})Jr}hZ1Qz`2ozw^>>D|giXObD|Vq#SBO+1k+%Jo=NDk8C;d#}^xG zkL>=FL{@cT=QCB$l&$?~dEJ|3Yj>{ScdY6e>qxEQXB0cFnv4o(sXS`mu}(EoKi|9m z;Fb?ilO<(exgT3aMrNRTg%Hvo*^nA4Al{4=~BS# zLTVNEG+2{TdV}O$me6XwBpW=;Nm$Jn=0Il!7CV-NueTJC)ui`G)?XVJtagh*cN2~% zrE#p2^nGEBE}~`7V9WV)x_B7lCwjY%qIeXAd-ifd>4j*k^l=y}gEJL7N@$$4U!0xj zh=K40C6_LeMd@0F)OrK-0zoBINa~h|i~&i2w}(YVQX~M1ht`9uU;##~AGPS@%1}#m9$OzfgZGbv&UiRsvX@xFerjjMmXmE`vWRox2ih1vOPd zB3`%%3^0CeJ*x8L*0oZ|$Ww3$jX8zO?%zk}g4CmM!) z1uZmTC@NfJK+sh^eX8U6qwOE;vf6_4gHv(r!~m+^K`3BPxS8}ZOzZ{4x41VeF<|Lww*VJ&LXb=d zN;IT3<-0deHHTM}7jldH4UOT~U+VOIpPx&CT~mu3NWCaTZ8(Z>m>bM4ndWG*HqOmG zl9aMBWSQb&Zqaohl4EY}5xK?H_3N{^)X^9gh6SC6BwK9*rY517*w5;*NCk)Ss zcN(6WIx;ge-frwTV8%`9sUurkPs|!MZqnGacxzzNcj9d(re};CH)&$L<+z(hP8c<2 z+~j!M@#*7RrIJ2&A__5S{6wf9j4Kp!l`*na?#GUUD#J<1)sN8OZ|m?mcPjjbq169^1ROlMCTQJQs7))YPJ+(}+?*^h+pc#bVHmx+2mo z5)DDnO*RPI)3{`$+*4|7qY6JRp!E#JMWJ}aAge{ug32}((sJ-KBk1zf*BQ>!607e} zM2%r04;A*EnvVsfPu(IYbUcEyB9bIEW}BJtrK&RDI$j-`64a1y9^ZkKpIf4Z)-kv( zAP;*`<{YR7j4O*y3$z&O(!*j#&qE>#m;y5C-OD&v8AuAs;jq}zHKHpPLVcyabDg|s zw0KDW{%R!ZC;hh_ZREK;VlGS*nN}SjFQFB)vBH9ilBE7V*cHlBK^E*`iy@C|xUrLf zX<|3g6vx<71`a&Jbu^9wm4L#25UpbrgF<~CyryQ%QcgpLKuhSzDd|Km@-~1Xl|dme zSR#(+vN7}g#IlU}&bPBvBwBY#hG!!Mu~CnooY8?wQRl^zl5g^n+_cF=Cx_?Q3hDhb zWdj+-E=X+nNS0=Ja3W;ig33o2!o)^lnz%jAFbbO@2KDKff!~Z^ZYV&xIMn*0YgUN< zj+xu~8i27GaXNV=A|{9ObP#2Fp|2+4OPh`G9#hlCJUUQN5MXSnTqof&BjHTD-K1&4 zwCvH?r!sN_io)g*N?)^xXM(rMkeM2u7%V83sNvaKusHBA3HwJ;9FeMyzA^&QaA+o7 zM&x6KJce^2O_N6`USp9>D0^D9bdFGRAGHW7<1`r2ZNgZrK^a9>6e(wgr)6hxPwf<| z$u=txjfT0f3Ke3X8H!4W?qAp=(!Z4#MAnWMw{mwIkR*uXYfLXkyh!b1N%#R zL@req=YjjF_TIcD&9+e!^Wlgf(m)JQ5f#B}~L>;Cxj5xw3u$O#z37JmUtPO;N-ksTI=cu}Q|YgtoL_ zUQU>ql#-x$;0*x?qc8QP3Qbc;cbLc&O_P}&;_^JLQ=UyH?b4F{K3cZj4@{no-r{2e z5-%*2gteTaX@w!|TPVbb7wklEDriL%wQMDWX60m)nuPO#to&f%v}hg`KF9kYi&z#m z4Spe>I$gEi*P7BbnTlI$VG-k|NA@me;Z52+DTku=9D6cJh5}S=ZVdH<>!Vy*!{f&Y z%lA7fx}&Cb`TZyz_KNC-U5N>cbV2Xyk=q}o%g&zRk4pLV#{p(w5P;!Rh>y&R_9G5i z*|V}l@Ta51e@cx02%%`j$T5~G1Le1*| z7Pbz3WaEh|L3R;^r<~Tqe{MGrhlRBNGfiN^1X)O`7g&vdpWd9ry>@mxC-+nX-j0fSi1$X5wu?%&)FBV%BhJ~AbtBe|S^G#99A44Yk|U{;z^nwY zo+$s(?`x0jd~MfroswC1oveE8B-ovwK9^c@wce{c@WOBQZaDmNj#2gmB{798x}StK zi0u-FTenkedMBB=lg#`vAv1pv>kWMmnMe8^SWjf8-Pk|lrqtmX05m&BF*p;*lK?)8 z;`Ge%0xD*O(KzAfnfQp3so+B&Ig>u*E;Wwom7Oyq`|D0W5aOJE*#*T;D##(xV7lSi zrhgr|W%U5dgOfgSIF6~QH+^&}^rqkZm2*cB#m`jndr%~x}&v6D&N9kn@Yt<|5CYmp^gV_l58u=$Au6++M|0&+-D?v z^rkAQcGeeSf8m1PCDHdFKvu%HksqsUKNzX+5_boe7UI{pvamt{Wyx-o8ELIkRdwrM z<|ReH^gglET_yuv#k5T3(s@+U4vX=fnv3y53gqa35Es4)<}5%;Aoz!f9Vi zoz}W(s4dCuFvu~R@9*8{^X2U0y@2<`*Jr93R}SLX`g(r|Tz#!I;hg=#vdyV5bGvdC zlT0M}eOz1#RkC*qLc#@tOH@k6j1Q06TutuS&EyZ`kjJ0PNMWEDoETBLE$+K;4>lI# zBu97g*P>mrN8ug^m5}E{!b})fzro`PJ|rSYaTxqu!5M~Q(^lkJrEXeZ=YM))gZl6L zI^M(}TO+Px1|%k#vkae+=M>iHDVP<{>YT&4+A|DJl9&p8lVlwE!K#;QS3Au|K3h`n zuUgKfc*h(UHdzvtTC+|-6ZDpYCu@IQ{}dBBwf?EYC!VdU*nRlC4BY|d!F(cg{R2y8TratRCpYTZ~J zeCg!zC+iRV-sU52dqQ*of!gc0{`!wQ#v#)c7jz!;mgXt5+N!mgXr;tpYPtNxrzwL5 z4tBL9eqtn~Vfs#m&aS8PBi#v|S&Qd|tqRSC!N11q+zS2p_a%2ckD#@p+iS^DpT!|7f%3so5EYcr~$da zpWIH8hOVJI2~UdD96Tr~LE-+*v88ij^X5a`y9?Kb>IG0j(Nwu6Hg8jGC#0KiX?bK5 z&^NYceM7Ytv3<*BmtwGp%{vg=zSmE+f1`A^rr9^HSrA(=pF@h$t>RJZ;YYLuLdbh; z**edMCD_A*Q0(z*NcIpdoty+|=>t zU4(%w>gIz7!Di$_J49o}vZjp>cK4)N*1imF|m$^J5FQK+OuOgK0>W z#TG7TT)NhaJ+^c<Kpyk;=w}yS(%(ma(aof|1AO#;P{}3!$h1 z4csF7MpTfdd-gWemNm|%L~{=_mHHJZ2cV)BXjFOfAOiz6L_3HI8H1$vZR>qGEPuRd z<5ILp)1n1Xg#zU(N@)tP089#K9dIe&3pNFOm3BJaBUEa(NKQk|eJ!P{p(kb=e^B%M zfx?BR{o9=88mJ4YQn=?RO*-uulH#0_<4h?|^R^AK`xk3vsImEbnwM?_&h~Pe9;<1( zr>1Fkg;s;ww66kIMCX0W{VGtAf1Kk{18U2om9g?CV2*7shw2Q=+oU?95b0AOUOl#R z9_w=5?AW5sR%@wdd1~2zKN7LFO$VN6Tyd~950tBYahgvf9bYkWV6lo3%&ZHY#N>g{ z^X{9-F#v#cu7@_wy3uBV+c_U|Mk9^iCz3pl=%|H%zL^O zPJ@_}+~Dy1X%LDW%`4DM=9Kp)d#BdU5Yd(%DTW}qQA(v4S zRVnP74QaNwQ!WZr5EbG;oMFUkY9ObC>b)k9=s@d%lfJ(&&qMtS#Z!(ej!NT|h@~nW znc{mU%uHYp!QE3z|iiMD>?Z> zLZyu8U?>pBytD>(v<~A!4M^-oEY)%cx*s|axB}ey|s{v{){KD-F)Y(aaS>w z!-e0KQ0cyhC6bDu4Pj4Pe=yf2ROB6G98{it7bd#dtC&gTAUvC_zix)H=v)fAyS)!g zf!*5Y3Y0Ypu-}~44s2i6U$^r)uI+ZdTz}o(Guxl7%GP{;-9C(yRMd_Z8`}rEOdv@X z+7Mc)C-E|Pe(Zi;xYnvjx^?V4wA+Wl@#mgh6^T~}!}Iq6vIBaFo%OiXdizMlI=D)l zpUsR?=v_PG1h1~MpJ{?uuIDqsyYUk| z39BAUqMMZD9UG{)&oRSyT(~dhY!zdxiTp#9^mGQYh7z`L;S;$k)_a)9RRnD&a&7&= zOynx^4o>9Cvu`3-G8K~kKYQl`*i*g#|JVC{&gZi~q@^Wk){?Ze^vRW$mb)ZL(sJdx zl19U5X3c21%U#m0D(Vsl(Rcbhl39m(z6)TD|! zTJyPAfsK1BKa}i;lK%Jte)(uudt(2IaBfK-ICQM?iT@``?Efq2k9+%3CH-mHP@$q7 zT`@#zb~rjdJ=&Q_`@JdB@_{>DQug??PcsSnL^E0vt}`K9gS`hN<$y4DPXv&1sei)w z_zwCfO*^Z6iQY-?{D~T0*>bz6I%rx)Rob*Z{ze#S9N0!bu)k4Yf1{J$Oy^WMXGi(r zX;J3rx0peEN}edKQO-H@+>^p5&GX_%?oPSyfl)(cSSYF@WZDSce3{$G(pu)xB0klS z2cG0ytWilrM^r4u9X&K@5Fbd%8`USLk4POlhS%+mNag){)1#tNqmE~$7VYj6VcqR+ z9zNi~Ju{cpnRk4`B=e4sFKs$8PUtLjI?<*+K9+gH>iFsJC#+1%wjvf|IN@w&&!QcE zd_4AtK2Dm$eB2i%F&{UdG;R5~9p)_`H=jIH`M4#fDjzqWJURKe*K2?$i|v*X!W;^eP7(PKcq)b^pNqXyC2i;9jc zd3V(-^qUcbGx!K!=RDGiy*_Be7fxHBZsxON(w$?yjs5$3D(q#}0nbUeo%m4V)D#+= zPU)kl;;i9F)V;qDGDw zmComj4jeV|A?N5)+2^A|!A*)9F)D-Z;LSh=r|{{o3C@HdIjQ(J4~^t=9(k{JK3SG^ zV745U<{XL>&Eb=Izm2G*Q5BnI$g$>^^Bta)|KWTlYx>D)Ik_1*D$O~~o#WuI)Tq>< z!_!g*4R;pdu|+Cxy1~2Ur}2a$N7be~c(gVhIk{y}%BcG@IDye4czxehqlRWUfAGC= z##4t3N=X_zgnLMbjB?_lULyt#8Nh>CLk2xKh#z!1XLtk$Oi3Ey?DWACpDLV3vO1m2 zhyPqoH>UB4Bm)LGN5gU}fyqyUHxT3k8OZyCIKyJY+05rpi!aAMeZ>8PQh&|Q#ql|0 z&}i=P=0|-zBHnc*c~nXod*gF+`RI~CV}=f)PMn?eifL3FLrTSg)xRAuAf0o>Ubx{g zBz?q)44z;kk@F<0VQGAGNhURJTkz8uGF$M33ugWG@auam6}91I)6Lu7%s)%jJof>wF^cP*ULep(xZ|tkL;Wo`pAhfU~m^SEf-JSFT;?M4hzuB_2C)4kljv64&CCwJ$jj^knZR zYBKvBwl+6v1h?DLIHM<3YCeN#sFQclCoCUtYiiV#vZO&A7 z&WTgo9UG^<%RM=kBe|gO<5TE4N6sWVr_yu2MmYt+uNprFD*Ee|M~dDmTDIjeDw?xp zLeYw%SBq8_eMXTBRjVKPB$A-M3RctwK zOEwivFUsHY2>D_s)+oL6}jT4=y>D2RMZCK+PRI2vT?G!)F~TI&ACk{Mdxup;`oqz=7N># zz!_(k@%+@XE1u08QfXFj)|`st+zzKyQ9>sw9FZcT2>vzXUw8gF<^=v({Nqb0{{Ldq zYD*uF8lWtPcb?P0cI+J9$?kWu{hjRh&iJXJRB%4gHZM^ITkKfGv4jzIW_E7H_QU2Z#2<< z<`8DnW5G0s*_rtvGmY8sL895ro0uDzW0;4SuQH>)3#L+LcjiTzM48Oq%z4bo%pztX zvz+-qW;BIR+lPpHF^4jK*ym%k37t;|?v+Ek(>=De9iQ<+EdI9}$`cZhabA++~Bj?WIEhVOHH%&aX$;U3OM zDN#Ig(&t2dm<8<=1petQ)aF-yKw6wx4rj(yGP zF&8z_RKUy_p((gw2o*h`DVf=3nWk*!T;?KX`EpH#%oVR|Dq}8sLsRToT<-ar5|~-v zYMRLmZE8^=Gp)HrWz2)jxJDr~I>w@T%(AO3I>KxjYf;OyL#S|&MJdcb&bMeO)81{- zHs^$8=cJmOL@fQz8Ff(89(2l4O%3ja*7l+VtW&|_m@0>0(zlhUg z&e_5Kn4AB}{#t}k(#Ib1F=y}bP(Nn7G7rsTj{eF+MasT*sVm5x9ot-Cmgx-w_C2%-#T*O(y6W9Hr$ME2$U zof#fP5zNl%?2p-HB>Q8=H4LU)X4GZDbcosM@?eT;9YV!d1XDb--&Mhs$SiHo-*{$1 zY%tAZX2u6o8FOZ*VCsGae=l$0c$oW{o0wt4IG&gg@-btXt!A;TU`}5aOpBPE^Mk4D zmHb>c1k-dTy~p2prd%?u;&r{|Ko zJe9@)X?6E!=ZtV!on@azkTR$fSI`-No1H7AwSoMlQR+1*(1Eowm&*^<lNB06loCTas~y=rt|#knzb0L9BYBQ=BWiLRskXNf^}UU(tUFlF-9h>g3)q8q zl1l##S?%xQc<&Bf-+cUj?E-BieXI)hZ$Ur0B8nqTp!NyR=*o^>ygH(?=B|Al02`y1OYA}ju7mfr%>gc9ja7P17#&#sA%AY%G)MF(Ub_K{=uZ?szG>jr8+iO z)U~;?7d2Pbsz_x=U8HpHi&St_l%m5?O0~Y2vuovW_ucdCz~0%j7X-EzVJ%tjUUIP3C)J?w+hXJ7=)}nM${rr6_)u z(%G|=b>takcY9V*&u5jV(Q}HTo>QvyITbW1m&-6$siIsJoHAF@xVcJ|%vJV^dCHSH zpY^O4mCAaN^{E$?owrbF-y-Fi`3je39_wa#N^Q$idg`kxB>z=K|9MqeWlNO4`ZYxf zuPM)*)rwZFR%!>6@|7oQJ?CY;qKWI3rQcQdjE#!sY~(ulp7KP#uPE((rDktd!7cx; zto=nwC2rw*_@PqS+gTs{hf*zfC{MypMGJN+JLe;%8tqopVmH^r-O96bhf5tXKTxQj<)}Ij;8R&n%@O&e|(|#wrZ}e-?z}-4=&O4`6XJnYpJc^ zE4AJEDy=76rM;WlYIWYPw7$HZwsv*aDyfUM=HH^dZM$l9S6A)*x~sN)w`=d7+ckZ6 zySCo$t!Z;_?fu(tH7)(E4)*rd6xLS<&0{X^tJU1QH66WMtB89vb-71tyT7LB{#q^Q zudSnr+MYi^tHT4e?tP!8{`YB>JxJ4(L0b13tkvQnTK7xV>OiulW<#|;ma3`62<=^v zrfFijwwjFAy3K={G9J{r{}`>xf3NkFEKX;vw#p}K3Ynt42d8N3vDupbGFy97pVh%T zp4GJHSsfHRhwovIru}oYihE9bj_|J_SL>F~YkTqYTJL{ehcuh3Y2aLK=g-x;;a@ck z{;O7b%)@`>bmnVM)+?H3y`t4}=I&RtbzljHe@#=n*RuWM`K3aw|p zp{>quYU=r>R!iR0_PSMCbz7~e*J^FgcuOn0KvTm4t%Bdy)=eL>zWkx~UbkIa+e$Qj zT%x_JKGmMw&ot$Krq#~Rv<@!S>c!7Bt@vD9ukX{eVW0L+`j6J>`?<{aYijw0R)73L z>&$~%b^ouX#Q$oQ#hmwFZFM-J_0gl+p8BoU4}GWYmSm}JWCf?$7EQ4&wUD`$ndh;B z+j=d}!61wJ2U|Kkgc)L4tr}QrQv-`)8d^4;ZRs&#mUnr$<%w)+=~=AXue!iezGhZ% zOr%BKA}uvI($cXPSyob%<>`94MT0N5)HvqC%PnuO7*2=v{!VQyO+L$-!Mgvvt1TVT z(Nc#yS`_?i%kJLEQkgeddhSh@wX};xhr3z2!)=yIzRjXFw^??2cZ+s(w^ZWo7G>OS zDZ7W|>DJGptbUf7%iP${vQ`YRRP+!ImttA_hg)=XIN!q~mOeJ#BJX3C-FSkf;wD(s zbAsiaH^H(F{mD|RCR$eBWKM6g<-Kc)rPfceg1S9n(Xb~hD|D(w*H5+VCz!8JwbUX0 z`?e=7HRVZ*o_^BOpYz|Xr&)U4G|SF-%2KaCWzj3sElYHza;yAo)|B|lBGQ{!XX2)! z`i)Kc1`ny5y<~soCG|hnqaF-qa#Q~H5YpF&5`mZqfcxPWN#1uRoppL#En)bxw^VMmd=HHxg2QA9x( zlj?dg+0QbQT9Do767FQUg!F67w_1|^ze~yP-iq|BR-{@*6I~rmYFRX=eL1(2+mN;E zD%QDt+y?fM_o$Cl%+=&cY|G7}wxp)EC4IOpd3tnV_bz0o-9j|x7E&{q`L~dc>PlAb zZKQ*_Go)>I^6tK!bT8K1!V)-738X`Nk=oUZtYdevUc@?EHtTGif6MNDxZGH8)4wC_ zy_;0uyNSl%O*)_Tx6*#3SKPxoPJhA@4-i z<-C6+>iI{Ga{|%o31qcK67sZGpAFOcf;0#WZ5$dfalbcY3GHGGN7W+8d@EF#*!h=N)! z=H};O*0~px-oSrvTTE8oE97bWD)%+LN_H34F9*Lyc0<-NBbSpk_jP{OD=75n3g#OW zI+u0L2Uyq4VO=xqO$y0=lY;iK&N*&1w;A%eJn|{D_$_{B1w>H=WF1;VAvtTw8du2m z@*VP)y+c;?dh+aCPr(~EuwMEu_dUH!R_uF3sqc|hxRq%8R8F4XB6r!<$7Am??Wl+iJx_8W53tBdu$1m(D_eUMjbWX71JmnOdL!%9(ZNb*1}oJpMCqlhTNkokUB+zM zfc29Gil#C1nOz$yPuf|^^Or`-YIQ#AUFR#W-Bbl9HDjHunNo9_DNp+drGq1tni#35 zC{pRo7qLDUrSuHevs<)ay|)GTSG7=T(o=n{wY=F6-Hm*QwxvtXt2&Ug?N9MfshSz56ECpF6XTc(bBDH?yACh4XidveQ`S zZgs0ti&*C_yH)9wZroqjjrI83Sogb4>HSP!cjaBzT~X-m%DeJ**8h7bmCSnh_B)hL zV?DgxoyzXeQ>g_#`CgfQexvku*1=6*9Z_QC8yb_`dGrwo4N0{zH^! zBJ1UIl9gJStb)1@<+2;9LK_cb{dbtM$Ba-`a)zRoqm)(n5U2N$@-7^sf_IGNw#-B<``)lsAymguKe#;D6&g}*6v;5Nv zWi5Dv_3<~9{n|?9y+9X$Wj*>`rRFkA-c`Z--cx$;CPn);DSIsI?HgHt_ibh! z{qOuNSbvW!Qnao}*-=}RPT#_HZHrQew1knbJw6N*yTWcaItVxuUk8b3Q&-YUbz4 z%HO9vxkpscZhkR?zfrp5H_Bf5jq>(9%I%_~%I@<&?kE1A(y8TK7Ujw={+6H5F>c>| zr)Xt}wo)5tyMWsOdm3onw4tW<4Ygj$j6GZ1tGGR|?`*A_g=v}-rmeZ>X7Y5+aQxS3Rd|i|MBd2y{*797W{$m4>rKplH|e0v z&YH$?`(jRK?K#v#)3F|$zdKk*P0&HZ?qr?*POYZi$@$~PLp%6fmA4oc&`=rIpyHRA#8DQErP`><9m9_BK5nDun#lCe5yRIgxo6qf#`C7G~ zuXQOiFy?< z>cs7W{!6u|#VWSrHbB=^tcx?puGW;6uY2c4@Vn z*hf>xneZP?)BeM46mB!@;=gxtd*SdG+Ozx!_w^sqY8SKg8|~@J8f#C>QmM>z z+X@=*;WmPY+Xx=Z@`PBrFvPM8LM^?Y+XIIhSiyzoShV>Z%T5TlsBgHXMl<(?TUL1! zi)Nf}c^7i~py>scz5fD>CN#5D!wW5nxX{vNOl~XajofC~bFrnuTX5fh3rqE5MqFa) z1D9A<=SwY`9&K5BuD0x~cAQRoOEtaLqUdWamCkGyYgyAeSl*QDEvs$3MM?3Nin!6T zdUUd=fZGtEH*uSQ+Yml(L-gokslK;ZtczN9A-5Zj-p=vgW$D>>S+w9T%X_G=MWJ_F zs`uU8Ub)+{gA*-ps{wp311u{%iN`IHEUVEFi#iXnthAvP?YiGmyHYILpJM5O+`dR3 zZs}6yk>QrTB$eAKscb)j%Wj0F?KEy*rCBQW0UpOlx2%GZmTHy3?WqjQK9FGrO&Dd- z{85%F9AyO$e$b+{2Q5{~JouocJ7)5|W^x;5tfkZbV0n%{Zt1SvCMo7NNddP#4s*L> zPe#){s{DoT^GcDC}rbY40Z8I%z)GW^PEXykTt3@5=S=O)@xSU_IykW0cwBl9E z8ob=n8RDS6~J2Tgz>+LXNA@qVCL$LQAK-V+Dn+v#8BFOZ8!< zuCqMT)^pz1TWZaE%Z`56qPsU**6dvtE#75$$A4te?vE_1$;Xy=*IsT%er{2(eU{bc zD~sBH#pQa0pY;*TDm%vIcFeN2du%%9v8{vcZ0dQ9Z4FDXY0jOtoyp@m<9ph60ymg8 z^|DomyKHOa-8OB$$F`>Rw<+{qTP59Vdph&@&A`F78q1tN*!C9i_)YOpTQ?hKQ;T7? znm)|7Vp44CkYekWqivPo_@c#Y0U3!)h5fPVOh2(_z$)x zHJkI1ZCfiIvAs>l+0=5J?HxbP4k{dH>(EDe%;-_u>N4KeGsoLj*hD*M)kK?iPPEnG ziMEb;+@@ZS+bZ*MJGh+xPM&1z=*hNKHih&2gze3J%Jvle+4e*~ZR>eY+thxR9aO^O zMMq}YD*PGS(_tZx6)m*YcIGi|sAny4eM+@e!ZZql?KvOXJg&%b zY`68{?Y4^ghfS^jVSCr@uxZ9WZOi*FTld|?<8Zrd)$1e9({9e|ZrkqtZ(A?@w`~^| z+hl)it6d-4l(ffITR*YA`cqpk=dmqsDTgVwX>6&j%lPl2&uu#RxovIRZ>zRn*wo_- z+mm&`rdbDUwVYXSz}7hjZEO9vHvRKk+q>+TZM_-fq4$G4)~aBSC-fW-MW5qQotY`; zcs!lX^-%Y7JysNtmz6Z}SP4x%cGqSeN@(WM3oi6{;+uP@XLFB=j`RfQU*w^E7kO0o zD32Z4!lS&G@L1a=9u;$m$J6~%59M9zv7&jrE#oqeeP?Tr_p{bKhQ?QT#lJkzKc*)) zqQX>I!=T`)+|B6EKH|9lgzgm~f}Z&^cO8UP70zFL{_HDB=gLz_r;_+SYE+GUR}$`p zT80~5%W&6JCtMB6@lzfGI}^|A;p(JQN%`Jf%W!8^CtMB6X?4RhQ%-lCN;;L4pQn!F zTh`zd%Au0{4LX(hYViEND#%W$6Rg!7kwfA*E+@7dr}DA!8jyZz+&DsjK^WOsl0^k-j5d>;kXZT=@$C%#JZ zaaS$FHLp%Mf92uNzLNYclq*7WK!|2(Uz_VM{E_nO*Q zQa)#$O1>(IZ?%2WeOBWB?8)wRkpJ83IKFSWwOyCb{pIS!S4lZ>??IjBgL_@7j<1q@ ze4(omuBOk?pZ`kI=U&39^Ie1ZnpY>jO7g+Iz$fxii97dTpKz~1ekRv4++DQ{*SwbD zKIJBCt>23pl*hxTk`9{LRU$Wmwf&Q>6)y8hPPO`T|G!x4;Oj6*yTlv{hJ%q{G}so5 z1G|6;U|+DhnM#8HR4@}92TlTKfVtp8a4DD%ZUDD}yTH9*8F&=5Ka%@y1U3a*fH7cu zFdpm%_5%BZ$zVE|1?GTL!CBxua51<7Tmx;d)x2ZAZ!XfPX`2u=s*fD6DS;3{w(SOo3_OTYu*5m5hI?xP{t1dIY(gYCeMU{|mw z*bf{Grh#L?@!%A2CO8*d1TF^)z>VNGa5q>A9t6ulZ?W7@7}yMK3AO=a!A@Xzus4_p z4g)j5vET%78aNxA59Wa@!9s8|xC7h+?gtNp^s(GWC>Rb#g3(}GFb?bjCV+jxBrp}s z1jm7sz!_jJxDZ?l=7Sr+t>7+jFIWa11?@d@KaIeqU<)t?Y!7bbu?6SKi()B#(pB^< zxBB@?`;}OZ0qt;Z&F~clrgRYZxI)(Y`RWIzg5%y1`|$UKEx@^89=HnJ2yO>Uz!`@m zpHntTJO@B$yv(_R-xvF%XN!5G%~~p7JzyUP9@;4PIq5xN^2ZV`4epEKJ_Y7E;3BXH z+z&=?mhkal>L!V|Kg<)rgx#s_AMD40eYV1X zi1;53^AvC{I2!IV4Dmdp-j(o4;4IMIDE7U<9fljkUc+BG;*b15?Aw67z$9=YI14NQ zi@?KRV`otwUnOgW+ra6t&j-7LBM zj{)0)iR;C_1Uv+8z;i3Z`&hV6{Dr~2yq(<7b}jWN7V-55_kc4^I{%gM$3Xi7x!(z> z$HhD*>0Duj;;-8w;ii9xzX+Zt;9S|@)}!K{2hIaC;9lHN{2x0@*fChRDM+{nYyWCxHbqsHB{{T!hZz5t4q&A{+kGw;yagco|NkpHJ`3y+0smlca4@(F z+zJ#7M(L9S$?o+j};4CgAq_pv>m$I8ZH z-x~6y7nlXk2TLF~V(@+Mje1@PCOc~``AP|w=hGPPOEJ5C%f4U|m0d4|!fMs9_xDPA`bw^1*6l?-6{I%G(fVmCW0qg?y1p9--z|r71a0)mJ zoDVJm^TCbac5n}P06Yq6z-izta4y&zTmt5U8^M8KDmVtr0k?xC zU;)ba5X_PBQl72BxK3i;c$08DxCcA{9tFLf#b0AE3N-cXAnKX;I`MDRLaAq)1|l8M zt$!Yb{g0)8QmW+7=$}i5irJt3*?ow(F9qHDXAgWoYO87SdR zHwN@i=nGZopE1xwdx3L7fBNU);qpA|i~ia6e#vib_0Pj85CfE}Z(kRO!kp=14$M!xxB%uiUEB!sZWq6RS;eB-d+Ee!`|I~TMc`6 z`|W+$?*R9LUxRjcDc7c8G#Crs4&DO}2Oj~S1fK_&gX_TU;6Cs>Fq{|QI#+A(1~36k z0v`gWfX{==z<0r2U>Rulz!U6XV9YhTR4`&!@H7Xxu$f%b*; zBmda_+jZT(NS;$sZGX_e9hockRkbg6qF>6iFB>cS` zhX)Ef8Z*+J21ed1?vub!UZ?0>Ym$Zg?-Pzm5}JN=XHQD!+6tO}bZ1XW=W_O>bgua@ z_Z=qYTwV|9T#LXKV0YZl2C(-?@#n7}y#=1bsrIA$P%rv}?tXM-fo}bHpmE1I@0p(e5zBjHIG53n zr|`0O=Q8@Sd;Ul6u?lBu_npwKAD?RfJFhjYh`6TuajI9s1@z;()sO3H{zpyqV;|~e zebJAb21)&^t$w^RSi)D;|IYhDR=gkeO+RjViR3$=AOAe{jAr<8w?c%jCcX#m~m`A!e z9_FWATnKZ4i(6pc>*6;sHyR-MGOWlX|6}yA_)jbEA2+bQxm;RTV$eL=T89u52I%46p&8Rx32^)b#FH_m0`v2(VKbGha50p8Eu zxn?aE#`6A=&gGWJr@B6dmPoucmB;gtpED(oOYj^P@!pfpIft$>Se;eN13}qUZr;eN5UKsYhYF z_pfu+c703~@44$-&Y5Y><(9`Q`0Nkos!ATa*T-x|J>LPk<#E3+B;Kml$2e!SIaiw1Nxry z5BOUT9nklre12~0p#%D!JXe3~p#%D!l+Wo}4;|3=0{WgKhtIUWXZnZY_sV!pS%>fM zYh~OMjXU~@oV=cV#eXXLMEZxKPh^2^ePSl;f2{r^=Zs_Ls;d9U%s(&QE&fke|55zE zCH_GFk$hi&F8iz0RG;X*N9sX+=|Ad*dV9M2k0yO8~m&N1Gp!a&U7O?A`nV_IjLz zI}eNoZvcCM_kyFq9PlsTB5*ah87u+61}iE%|6}yUVxup*^hx8dY`^G>JHD3pWDn@p z7o9V%oU6L}VqNdY7mj_;jJ}xqzU0R}-e~m2zzJ4n0 zYmwK@8p(Uy5_HS!AA5fR=iF20GV*$A==bGyec4~2aRbTsnVKK;OOe-s{RKphRJDKZ znc81qFY0-H>)#3NFCg{kr?P);UCZk{K5N^#-12%bpSkT^RmtnX{sPkfP~H6nqM(16 z{RNgylJFIU&Hr@fGs>OoLOz@PA1`Uzlc7K=r z8vSe$%TH?>e^V*8^!v8Gxt-)ik zF9qXap91E9bHM^|A6W76<$p~7NFwx;*q1BsA2IzV3F~qHpj-Y1#xo!{aZXTuIbZ0P zB7c9Z{bd5<8L~d#Eq?>&3&}i=nw~EdnE&$q`7d?dKk`!@&-kUSUpn3UZy(H+ewgpT zvz`~Td;j+fVShOo2i^wu1&4!K;N#$P;9_t!xCJZ*-TS|P348bc@8z&}?}HgKSMu-P z|Gf$9F9l=4TS2!zNT2`z_qXwdiJqA8o#=yOLAO5mQ#UzFw;QVQfLxspZR)6C& z?(?Su{XOC`L9h; z&s%`*_06MWB;DOtA^$#M8khsl2A6;vz$1ohB;Sp%mhe7s+*+|uggFar3HfK_{pnuM zYxIp==o?Y?_xD>d`ACSyJd^fvAEBUI-w2E!$a`q!b1qGm60E7d5g0#^atw?gNI8_0 z2;;sGCV_{*R$q#J4A>S-T#xYJA+W0THb?M&*H+&+oFetUDt#j`eh?TxaB50@89!)+ z_o6C&qqgG*Zh1ejjm!^l@BjKR?A_;=&w#!A{PH(oZ{+^<{nSDxCj)rur9tDdPiy^|d1ZtCII;YJKglyX1YX zZ~Y5_^|exuek%P7bv<8T804F~e<2Cy(pM$#-Te#IJ-^$`4=s2@#>2C_GUy}0pxt#}4)A_1_^-J>I2&`X{_aVlT`D5<&!-4&KrT?vW zgz(3juj+68QUc^&Rr=@YnxA6ibT;I)Syyc2v|(6hk=M}~^4`UPZh1Y>xED&j><6ZT z*6;sHyR-68=B{D^sziY{Y!QATupk0iRj1bdPwSNPtdL3 zrNX|t^Ns6TzuW1N@2Ju5qP~^<`qS^09~JkG{}a}=e%G&D;;pHE=lxE?1@yb0hkiE? z^|HR`cT1JLN43@OB5de0-$*?!J|cAY$Lt~TSKsuzzUB-^ zyWK%j&)Z^MNI<_6{l>jt%q`IS>Po-cahs&G*G0R#*f(`C7UtVs91im%EJ5 zywAn(+a=xBE+)X7VpLg+Hn0L8o_rQI**a_yIE*gEZ4Em&dKfxmCebMJh{cQur zf=OT&I1ZcyHf$o{qCt~h*nW(UCdhnqW1j|lqjx6UA^nQ&5k3y=0w#iK;Ak)#oB+-P zO*&JNPMRzIGFSRVNPh{!uK?G8yTJY6L9iSQK40#?C1}zQ`@+xt!~XdFC&>M`Mfg~- z6W9+-0n@=OZ~{0FH0e)8IzPC7SNcUre+j~`0M~#AKyOpI&xT+VumIczn)JgC$o*%# z%0CVE$M646x&M6#Uj`lpTU{XOb_6?vJ-{W+#CC zFLR||g!FeI{2p*W=#9YrgArgWur1gFH0g(x$^E;_KMnR1aK4MP%lLUT{fh5K%6F~j zr$SRcvA@Clag*dD4m9b^{7TX>{tb)nl5pjHC7kzeVbTraBMppB7yAe>49tH(>=(gb zUzl6pFZMfN-+zdhSEL9JfSX2$S$CB5(uaz}bqLcN!RZueeVFL;H()O|o$ReZnzG!dAbQ``HQeRtod!+c!LA=|+60ilH!y%X><0W6M!MILh-guL6 zJGcit03HRsoyA{cFbZ6fA^F&f@+Fvej1v3(poBiLKT96!Wo)kOlW*J&6Yr7wIr|Zb zXFm8-?{As;jJ$94t-od5vy$&Xe@mdh#d!zM^m?l`c)tVvEi&HY-k&AV-}1}sZpQb!6$M@HqXVW-LzRPLg9B|g7Vt=~Mv-zcsf1D|KTnu?^+QCK+ z8zv4HdAxhNJl|6ARORu}ITBx8?SD3GzQkwdBW!<8%>LTPqn{P`(={I<5BFEo`3PwU zce>igi(ZubJ`9d|Ud)Aah5q(GI|%om`~GLqf0c45!MTH}Fh}f>?{r?SxTm4q4#Vtk z|Fg}ghrg8h2uo33jbD&*@;4u0+6;03sm@1;K>pqB<5JjHcfM(R_&4)S?LW(X*LHo# z_JtDO$m8U{iFqs7Z;_ZY&k>$3c|89miQk+rR{*m)U#AA-Lro!H&pO7kgPG5vi1c!k$z{TKFFdr-h?KdPJCjA1W;~xKu`mdCON#8Jc zl;k5}y~NWObn9COcZ+*<=YRJ7K>XKK-)gf_!nyaGJ^ZQI8+|K&tC)+w7A|;C7>E9f zV#MR`Jm1#ui+^*T@6pX-UWD*Ppu7JgdyDv+S0pt0)?xBg6zM|rlNA14+|7Qoec=Ce zpXWQaRML(8T)6e9aD2INF?jSlG20tO&nSf1=v#UJ6LJ`;m8lf+y*>d>v3%* z(YLxD5%ZpJgu$RceanaEUSIUB;1A`#wt+Q0&o}iW3BO^F zu;G7Vd>MJXV}pFhek^(XW39I>M>)|o@|+SufAYA# zjYsUm`(4}l0V&r?xm2~@wgcYRQKApr-ZQZOtH}GBo-Y&F|5eKEbe#`ZfPIMTOM5>zP2Tg`>KDDSPiE}hRz?4ozwwp8 z{;wh@+ngf|?7t=DVA}gX*8W>R*8Zv2Ll``1(9wYYSz;?eEvsteaighJ6(wUEV-0M~5BK!*Q zAQ+7Jh9REOpjof7YP6)cCR6BxISy64Hx8TzE(Iro z9T9I|Fa_)a_C|b5z|!HlqBC!A7Vr z9l%sD2Rs7K0n72+OuaPq_gvIpf9qL_rb+$nGEvGW0d(t=DX_1uKG|=tvqFrhuKKIS zO_BVW{;JGX62HIxs(CBLJvLwH?yp+BQCH;8j33Rxcu`g3M`r%)^bHbkP5Z0nAwOrT zzp4b!VNt2%*I$3t5#;Na-d|OWa*BIP%4;_0ufJ*x>ScY=C!0Pl?@?{_$pvpqxlAaM z_s5?;Ie4n1Q{VclHtdl5s_ytvV1GE#6N{P&&G=DW?GKl>M(SJGT48PbtD-)a@Y5m3 z-2GK~lcc^@)nDb_&$Sood4JHoe@MSCB;9U!U(!E7{Q_HV6LT5vug`k%zYUB(Am%cd z`@!50@+TAK1z-&9yMmiwUk-NuQsPSlD}*5bxRJIy?@;p*qi5X^hF=^#j*~S_dkX`CHmsJKg;`4 z1e)+&5&oA}pWOT9yo!2OSN+58{c^rW{OhW!^Xt5}IQ682%n41S4puYmbF zupIX0oS0s)51A|R4S@N6unFuRfq6Q3CDJwDM}PIppB#Jw_43>c<$jxi^+i6O?(f;b zTzMYffoI{l`Kw=-!#xhX4eSdJ2eZJ(!RNrm;A(ISSPY)-`gJMlSuA)fSXKQB=wDJ# zYC4`;-}Eo@efdut`Chp7?}M;+>)+qN-mQPrRT7U|{|gS}h-?g@MMc=~;?caNtJhrJn3e+1?~gJwM4oHzCY?B5NQ@|fIT>eEu# zoA=P1H})>-K*2mgWhS<2V_Jk37f?&oRt0XNUn-~0&kJiYfy z{O;%J{;rzm`7)lj`+2(c0`ojSg#YS3&w%`|-S>IICGtMb0AB!?f`#A*;2!X6&~7Q= z&jnk7*MObDKHv~=G&m7_8uTas{n`7|JN@aG3y{v6;3hEey*NGJi_MQnyl(D-y_;Xa zUXPP-=Yi4S4PX!OUT_qc1O5eE1g-`*gC*eCVBqd=Sn|&b;n_AJFo8u&iQh$<161J`7`6NO)zfi1KsCzCBoj{I=*bU*LEB> z0qX?(jl-^lyIIFq4)f_=$F~IQ?FztO%DlcG>zuCnpGdu|FXOPiu#Ta z;o2UO@Et+-I=-H;uW#e9d-0vC?l^1@d@s#9KHnEoF79=FX_((P8;rm@zNP2MceQI1 zVOXTltm8|7{S-c``eT=3xmvWc`p6WV2Gfq_cHRkaf1qduyD&tETEhOEs zpj!@hx>4q{o^CnlZ~a`+V#%3*w<7JYNQj6 z`2ER2f9vNqBHw3fKGH8m4sOQtT)A7mLxXXyWd<0S-!A1+aErVTwVjVt-TCcv@V?eJ zIXDpW_Nyxg1M`tYZk(?9NPV!6(5cEnvwu+X9FZID`AEYc_o|wYQ$~Pb8rZ11yJo+eC?{ zE7%u2gm@?Pmw5KW-0e~^dlAo3`0t%0@k{_$#EHKsupHsLBfc=OQ%~`?2=PVSBIb=P zg-wv&-~kfD!r5sJU8WyY*`|W8GUoq&` zcgkU3U45sn=U+EoCiBLOzTk*L(>4E^mPq_H)pr8(uSM?uRQE5g>HOU#e5oEM~Cy7iszcrU8b zcii)@H=~~K0NwgdeVKoKy5}PseWMuqMtQn?hrA<&0ewT>JNJHpX1!NH-;nY-UHb+8 zSo;$N^bL8gGqLYpBE}VtfdPF(%4ZG67Xtk&A}>x?|4KmL5dG+MulF+j6N%`bDBJn{ z{vYF>4R_N|Ve|<1Jofk7%RCPEIr-BY+;*=|c@6gN^(m`i?_Qr`^ac0&6r(S=*QXeL!M#33VZESxead;Tcdt*m z9QN+@DRHnj>r-mF-pJp2w)f&iui63b1Izu;tT*wuK4G7q^$B4+L=Wm3Ezhwh_*2(| zQjyPq9wgtbxtK5N-go+!GH)iJ2T48Hfc?VD-Vt-*I$_v)VL%U(atQ1@E$!vFrov3H zE#?;o^dLDeBFh%e2WzSanSO{u^h3DMqcZNra5w!DMt_Qjd``PsBR1pxu5Eutb*sBhJj)>?RfV(&|Y_odqh8>d;Lp~a*@w99nUcHGnOVx3D$HxBk>-| zPhdPl^nkh=&-k&{fgT<%^`O3tXO#Ds`d3@|KkGgTU)6ZV;3V-kf2c59%lCgP&RNU@ z=Ybh;&q@~m$IcS}XZrl84ud59!1@;{e{-H=;RRwg=Q(!6{=4Qp$I~@Gqprs@wnL7& z$1@h7URO1q5jRBM_ZY~J@)2V0kS46|c!n9*aPPNf#x>mg{Frf#x|#>!-tX3oYq;hI_wTGp^yDUplaj%-3-5PippQa*uzQeVW|+GrfU$C_%a5IVAgla{TVif`7#%; zg}J+n_rUDt5R8wxY4pVe=!;Pczdt`mYBy2QSE4Uw4VUj^4(Qew%SMR1TVITRNbG&T z7lvcskIVZ}deU;#)97?B`?%&HR^sF#Fp# zr1L1GgZ0(hV6N)?hN96DE(bLFVw)$#-kdku6z-N+2HBgH>8*Oen3ymg4yVc^I$gm;wG5Q`3*4>CEp!z{&yJe%k&rZ zf!Un@oei@&|9kW}3Gd!FWYN=NPcwxZX9&k)zm?$s%J-)USZ3r+s`zV`CfxjhaIukF zNN*+>f%>r-&vz#{I7h;zf}yj-Y~*b=+8WDd#}{ z%+I5LroNr;y;RA2RNMZU2#hyZ)jzX`B%M>0w`aP4CNSSr-pilsJc}ccWA6T$DUc^s z_0PEHS?msydfqlz=&ygK=kKJwd$)^8FpqLE3+Bl#8o6!c`}F^bJaNz8F#e)!Irrx9 zYVk+;LbrU6fPHo4ds=gmucken2fe1M_O!qCB-tAzUq-$kMEw5bd$R)ZzvLpxM_rG< zL`F%xHI?t%5bjLL_sEMSpL<&f{hf!{^b&D5?dctukLRyF-3IMq)1FR(xvtvNHC<0q zSK}{zQ4W*9{h+`0bkusOXZ5B%y;kyDTls$EQmH3Z$@kV9C7pnLmvM{0{0k`u)1I#G z`Pv1oq`oCyCampwh#jIOd}qipw|tL&N9t=$<$F`q^A@06zK@QPba!8c{QHDyU=BDN zTmo(Yj~K3z{58H>!u!B+c%Ktt&H`IP{uw#{OIy$49{;K9^Eu3U4sQNZ&vP*PW)bww zy!5k7)vMrh&{OAvFMtccbJofD*xz7Y26H~lpMg#Kik^HKcnx?f*b}@5oD4n>{tNsJ zJOJvuCEjqbGx!H^GWa(zAKU`|8$1eL*iYh%1G|C=U^18mz6kCDzXC(=k$9Set-qNr~GSN ziH!R*Q^W<{k9#ogFT-70O~;*&hoAEo32*A1@nOQRm?iFw;V|wI<3rfuFp=*ZqSo=^ z&+uxPJAh%0q>7(yGp`;TSfYFP72?tlJK4z zr9S(+{|`?Je`6)#8zH>E`)~N5+q+fVa`0FYO|6~>E|L>&mzN>%u{GUPi7yRVE z?L#NZ@9IjzFGjdG{DdERQuvFXCwd?L47b5->Q762|KG;V+SMKZ5Y)`|A#W^GV^UlJHh1`F@!9*Bw3!;VFtJ z_ae>7Tk4d;aIl_FO7I@8k*M-^}0Hj`!R>f5$sY{FQ?4bAM9tef_DN`_pNvxVG1!-a@vu(;bHKUAKjPa5vk|PUid9@AKaqaIuw&nEmxnbMxf}hc z_-hLW)(sA|8IfZRpBZ6rO6?s>BTxhv%pkh>y}Ybtk* zyv>5VHSJo6VajeP@^%i2A~ApFr#7!9AaCV41>~)i!)&aV zZiM}|BEZ(5zx~NhRo?Ez_cPGW6?yejYv=ZyC~~f@+PTSy&$M%myv^~`zAd{#UJTc<|UmwBuKc^is-*>qXD4 z?mXsxdnLY_&SUnsZ$kKolD?V8oViNk_qT7typ`e}n=f?lo3MDJ#8=yWtEZ!!{LN!7 z#lA^q9&`C-d5`BIKWA#+gc3Z5MWs>>{`O5cf_(kb_f4qrx#Fmo^=03LK3k;T*LL58 z>YgjU=^v6#eVfO;VTa_qy7QO==ZcFwK3)4(*Y&yLC11*S(7kU$&Ng}ORqdNl0=Z%K zt?rF_UI@DPP3ZT9q}Q!T;!pno^$To?bj#L?zdq}Q+ran(Vm@8xiof``g>9iK)CvhV zNqgRK<*HYGCr5Ou@xS?MUfjv?RrU9#NwV(C`13W>^iN}8HuL?HCio~j$9GxV9G_A- zzDv)}@dXF7S&R8v{+lk#@x`*6Vs>CU=1ZAT#Ei@F#WOE!m*e|2lP=BiT^q%A%=YnO zzMAQnZ(v@U#NpUI>4qF%nBzB$&CD>ibIfP6Ihf>+cK&wq=wth<2g`E^=5o7%%{P3<`Q-fm z+KDe_n=dGlf5l_CO!oPxVP~IhNBUw^_SKZ_*oU+I_Kx4uj*j1*y|bf5yE=|Jvb*D` z;^K~3L3=v>XI@Fi;H`6gisth#p8ZC1-ke`+&O;2_wPE^v>!>Ze<#E|*rp-UE?=36X zr#zv)PpyW&bZ=wd8s((r#50LGk$+R!&lKNx_Cog4gx#C6-2$YOi+-tJ`ds}A|e_gl94&bh&eLnoMQxvre@^)mzk44f{Gy!qFHl}%$$`OnHgDg z^pID`T<|VjPwRy>)GiCeJlTwe#p0*_YbKlJ}P&z&kCgW#96A3sO+2EIE4HBze^4H!ahlj@cCa)jr4_=r^fi~ZK*4KmYuo^hYZB)<+Bn~lW-RA z>-@5Dt>QGb42E*bAhiMq`Z!8uDt*?ml59LPB9>)kT+Q=P|5y2YWrm6G-pBOMWP7Ol zn9uwBUF*hh{<@FZC|dV1BL+$N;*O z$9!2nkGV_wbMpb-FaEbak6A0@@Lbu))Ly~Y!)M*cj2Xgw-|N_KIKjUAb-b5HbNIQo zkI9#MdHWdNpXlc?zbL=IGga0x_dcdT#`T%@G4AhojU310{DAoGeGIR%R`7Y^wtw*b zz`9HMd)3t*kl%q(ozr^J<^5lnl%AOR_IH_D4LKSdG8zPi~o4_<*Od-e)(JNmZ#rY{P*;=clw?9oh1I2 ziaRfVEdBiS^MC!Pw43`}pPo8w(B)qVzvuFdjt{55AAa}cJ9;g4;>Sz;2a-2k{`}5i z>Dl?w>Equ0AidY<>dT*d{nhlD4dc^)wzyyVn_(+2M|l#@GCml%X!fj{M)~}z=z5p7 z-fnJBb?IEuf(N~t;e4MHdm(?LRHFDA;XmDP{inQ^qkb%xv-mvz-Nl*WyYI)m-$Uee z-upd7ZioN1&kcQE-^ZIGuj`Hy|4gs*dcTL*^8J|idx(5L)3XEn-uLlxJLvagg!+BF zUzFcN)ccKF{>Aqb`a8tB4mUWDL%SGGE$lb68BLE-x^#(Zr~h2`A+UFjYa5~en%g!1 zb&|jS&W^?!el6bzO!yAp2TT#)eIIbPzq>PBei!}odVSgbyE}VQxxD&Z#{Ijd7S;v`aM}`X*~bU%3$C9 zT;~7kcXz7$bAHw!_GgQ~;oDrFYSHzgH;6teI-#G`U&0&3&yesk@i%Ea@pXMyzh(-r z^XqqUdRxSIuk+sT+44Tu`#oE32k-Z6xgEUUv*r2g%ldn^`((b<@5A(d&zA3Rz9_$E zdszB6)ZeqsJ2Yd(V^kzQg_d4&MIO+uvgTINkns zfn0z8>F4J5+``xC&elAy9~8f5fOVSuF4AD}L;b$#6Ss1@?%z{7+>z4_^>cF@rJmmY zmfQ1-w!hsj{d>0i+XbiD-`3y7>+Q^gygpTm@2$7q{ucA8x4-3i#M|HU^-v@0ly4rl zi?`nLyy>mC-g=AqQlBT^E9+ZTO*n;`S0x88Dp|F7Fsa%I{9DS-|i^k@}2Gew$n*o7teNo zyWuqZ+p5QSz3qRB(;X(hx88c|t+(D<)|x7Bz4g{x%X;S!&j;@Pt+(Eu8~fY;_ImrY zthc(K#Wm!(CwaYHAK>w{MSO3)_10UA4{v|#t+yBl-u|}b^>&}km)`#Ni@Cr3Q2O_5 z_qV%Fv%f9d%|Nl7Kga9sp0DwIazK1?)_5UdV6l{Z~xot?Fm_Lbw7)_6fSiiueaUOczsC`-&=3J^%mp9 z+uwToTZ{v5f6McMdw)Av=1bk*R*F6v&FfIl4(ykS|B(0zojCkpDUYuT@mJr;I=idz z3t2A|Kk_ct4~f4%mg8*|e~0+*iJx>n+sBAsDSm_aX>n|yC4R3)uIH%RIiC%k**;rz zzj)RwMc0Zx*M1*pll0S>_O}V&<@Pw+{jKj^Za??;UDUkF>+OasINhz{d+RN?hxhs| zw}bckEw_XB`Yq2RXZk+J{W6by(Z63RFqp@MuD9Or-tv0#eumV!yB7FXgSbyuO}m``b{z&+)Uax1D9Z z)%`5S3|!?gUT=?#;Q8bo@z1sOHfki7U%x-OR?f6Ld=7w!9{)=2-J?f&-S)9h~>-{tkT z-!*)FWQp&sx7;4y{+8Rp+uw3Kc>7zPSI_i3*;{XU-{-x4%k2;?uS<_fU_Dm!%c3hq zkGp{FGv#*!mWy5^{@Mq4{8`oP?^w$I9C^JvAfFeH6~FP1eBHX=FBR(k_Oq_HUzhb( z_p`jarQg5(nAh6{-{*2I7XMsZZy%R(>;5)(0@uge-|~3$_P0D9y!|bYhk5e*J$?Vl z?J`09gW^|<|5@Lkd`PapFZ%vACWqV4+u!oI`l9V`hf4pR?f&*#r`g}uhqZH--sn6Y zH}T?o>n*p3x4-3f@bY!|e1+&F(OYzXFaBQf z4~bthow-FjIiF+VANVnc2cGBfR7r2OJWoiJa_jzfw`gyF%kAdvZ+YB!`&%9l|JVE5 zFU$8!jhV{h%G=-axcZ{)Zx>1bp6&kj%G2y`*LCFec2qHsn+f8dYx`Soz2*Kpv4F>Y zFa7-7B5%FLz2#bYf0Vc0dh0F5!wLC4@r_Zu4^8XH{$cUANqC)nUiNg~cj2wK+-_gg z_a}eW^>(zZx4NIjn1f5~!s~774Lo1>6aQRWZ^uZvb$=Tu=lXd2TW`I^IQQ0Dz8<#B z@zz_6htF%hT`2R6x4-3a^+ns?E|dN}+x>0MY4*2O-FUstuHfr&toYt~%kAO4e#`CP zy?!g#hxdC0Sgx!yy?*;;d7kX8w_oi2?PpzYr^tG%`&s9r!6BK~+kzkPd{QF*xwhUe zui*PD-QSKE?d@;9{Vj&Mx4-4<+uPrAJA7XI+dE{w^!B&s*8X<6^xK)f&+$EpceeZ6 z8&0#oExVN0+ir7s9Hxlxt+(7B-u{-`!Q0<*J9zI;=6TiI-|~3y*4uM)fBS#E-u^(= zTiws%o*%BEFR!;%xAXW}Ccd}ca(j5|Ew_WW-f}y5>#eumV&2s6bKEHNrMJI5xAwQ8 ze&5Aj>EE;6-`;k*{cQ%Xx4G3kpG+0sTW`Jf7W0bt`#?O8M9Ay5-g+C_dOKg{kuUo9 zU2Kqg>Uw)pwDsKYttk0MGAddY(L0;+^e!`@m_|+h|Ox#?^UV~lv~v9}&$9GvaaC~V@6CVK?{oaJygzw^%$K^q^?r|!*U$g8-{Y&3eu^*S`{PibC)W#i zw)@+4XV~BVOzf$${$j3$s~yAZapF2&f0D)b)?;ry#`y5|x8D91s_+tI|g^asAn8ThVe zu%mqKDE*fHkbXSb+mpSeKP`VtEW%*#e1`NQtM{+t%zL+xa~@2aTa>t~Mm?)$F%_c*@$d$vpD`?lx)p6^pS$@gV<6JNh) zd!6Vreb4sN<9;V2_xEh~?P@#W`aRo=e5`kbg*oBb^8MTTIqjNLT;ATFus=n<_pwak zWuKIML@yVAt@!ogyWhv2v5V_D!s7fVh+ZK68u5=v`bR~d6u%^#xr`S$o$LUY|G4O9 z>p6V9gwGX!>~4wQhU3o^y-55O;?ETOQt@|6c;a)+7l^-1{IDGyK1Td~>eq4j>7H}+ z{4?7}iC-Z89pWz&zgGNu@!u0aW)Jg+o?(BF_)8>wtN4S(pC|qa@q50=T(S70q<=Rb z;P6QjuR?tNoc0!pr@xbYT(tg9a*F(3@+k3Fh=02G)uqa~Y?SxiS%*0Pq2iAdzf$~F z;_npykoakDF;^h|aq)Y|?>VK2-%I@5KXCj*;vW~kPWr7;uE*`qa=d7<$F=71x7Wwx z=xl#SYIA`3h!6PsX*j`t^meKDarVb|<9Pq+`|8pIvaYvg|DgCiB|J^OpL4MI3#5G> z`jE>J)yRH=_{rjrlKAfL{p@}*mpjz&{oK-)+fko$r1)98-&a=^!Qta1euDgd!G`m= zUV~%VuW!%svgLOOW1?A?iN9R@Ssgfhy>MH_-y!~c;wPQY>5dVH^|cN=HPIK4yGv09lQ`$&H*zkvHaS=N(L;?EX;mH7K*UQZFf{37O# zia+I5z8;D@asTk@L$^tCviN;|9+dHPgqj?`p$)t)UHSxFGqa`kEsVILD$^A zGn4KI>~Hpt3cBX@hBl+AB3-&fwbOrYJ9K<}WYD?nL%?^AYa5~eTz02^adB;et|fct z&JjV^l07c&%Ajk>9v`0>bS>HA;(7&L%l6Je*W6z3v|s8sVuP-^o%<&)F4+8Ze`mUe zAyA#;Is~0*rOy*e`?L=_m)&XK^JCjZ>OYs=>A$!*wYKA*2MtE5{oZKXXJ0uqvaS9L znw*oJnWJsn?tPhBBilB&Yx#oR(|q_^HN^XTlP78Kw{_b)SeD;6d-iF0$6i@^Iy>hd zAAdT#mbR*#?`NOAg0HiB@!j{c{WJMG{r`18TQ`RD*ZbLxqV;}u#2_i3+=rHBvGxsQ z-+e#3SHc%b{7~;_eUeWnN&jr`XSWFN-OuuU#^-fEyG#1>zkNSjE93B7xu31Qg0F|q zdOtg62=jffWB+vbvoDWk`?+>Mn=ke9?q~Ua^ow>sJ5|;(_x)^vjO(+#pN$;HwaL?!!IbYXPqXycY0U;PYvL z4i_br1EpHz0HbKW&`ME~6E{&axlaz4Sa z(wCW=mPsB7k&g9k8w4VE%^XR|j>){X|23H-2IjtLBin_cf{v^82xmi-lOt zsyi|>cNtoYnkF;%+s=PJC;5ua4GQS1;Hk;RYl~%G%Y{HgUFI}3rR&rt_oHA7jso?D z%4?AjH5K%$!%){p3ADRMCxIXUC9 zuN+zN?ZR0T3(G2sN=tg*I3=%Q;7sd#H|)Emb(LcuS#jxQ?s3D)?tja*p)Rd!Dd7_eY8Z{>S($t)siL++q zz53hC)|rNnO@XF+MAYX+BJ1?HAl{?scu!XpkvK~_BGYr zpR8Hksb+QiniG_3hnfYQY8FJ-Y-(R~B)aBE`-BK ziV9U1RkNCm?Q1r*LK;T~)a>)sRA2OD&4O-E)>KD3VNo^vD0-)w6WwZC9f^9frY;GQ zR!0NxT6+P4HeK*!t?x*blgoKeIt^KnH=H_R-In9pB36y`$tRz1uM`wh40m8j-n37L z-PmH-2n-JC*PIGBMO~GbQ#PZ#FlS~_dBu#pVym+LX&;J~GkMmmoU+35>7^xk#YGi2 z<;+aAD)(*qSVv4p#F<`^H}U$MiBqo6nLHz}yucYZ6j(rmtPEmW-oz<66?xOI&zW9W zJSoSjOsdK#xT&~+;>^g;$uBCQm^6A$aiUb?P8m4^2920eGOV<;Y-B}gnG84z98g+9 zxs_CmtSB!knLGfaYDD3r!t%nBiG^0>f}^c!!{R8%>jw};wGj`;uH$gyr%V0XyK88mVbb>X1WVsvAbbwd>gQomf4cYWdTyoxCZt+s=+ z6j}k-?##l8)IT}-dD9DXCOQp0WLW;C0|&z9%s@HCg(Z_KrtoYNhtS5z^5$i#sI zDeT+SojmRkFtAS!&38o=NOBs|-1K>*NrS#n7b4HikNY_iwh{EYJrqSeK-B9ZU=TNs6mRIDISCk;Ijsx>=E-Wu~8j&?- zYO2?)q6!4=<3MLMhi(u(tL)NL=p(GBmz2@PQ85W~G=du?I5=-l$}1{{;RG9Ix`9eR z6+Ca^#KP$`4bo-r$coY;h$;w7;t8Wlj#YjwmhWp~8ahVrihrxl{Fhj&QCA*cu!u6{T{N zqc4g|rW8`|PoFrYkjKxbB4Jhs-uNjC)z6KeXepADcv)UK-NaEkmEov}Sqw^tqm&jG zP2?6e<4i22IV8WlG_PPH-FF~~s!y5euBD>9)M2YXWz-tfe9D5=h3)|<$po>x%cf=)8bo|0)tbRNiPf2b)cDiO3MUp#Dsm=}deb(ww1}^CGw}Mtn{p-w zGiY#|3JQzq!bM?^n5JnnXbz=eA8en-Pg}KtPJG&=Gf-t~qt`giit?M(y5Q5+86|40 z`jpWbd`6L~TaKZ{s%hCw!v@zpP7L=9c*eISV23B!kiN4a;tTj%-*Sk ztvrvX{(48qgu73KP8AKTC(fKyUh0hZBM6}E=@zj2rK#U^R;xx1n?^f2nf*^_h|w&S z0f(IC+*qMT3p79{g(?jwqp1}!sx^R`zo^8S;%hWWN9<}2C@H9LmfLkKD~u_8lM}>4 zu+}-(DXGp;vdALCdMALUbDrz=Ig;04m>V3e4R^#*(z z4QfwTnPf#4%y2rZN@VbcpjrZoC4P-+UNcvVETK81P^R&95>`>_OaYr5dDHZXyaLxk z>QYk&F(WuL*Fy$Z&3$d0ZCqAfMcx&K75#6jz!r+?-Yj^SbAylYBhA7`(GVVzh44lW zrzD!fPH+lWG}cTMEF=GGa`1h%PJAV(e$oWp8cu#OB)$#u=F z*U%1YwA1zV96oyVkSvr>_Q{af6je+KHvhh6(O?dm8X{;PJLGCE$nfGBlZTWHDWP?F zQr^VEL8av*n{G^waLgfO#11>VaF){&jU0SsQN=a1KzwgT5s&^89GqQRfmuBdyIyRP zn<`w{*2&l%A**S2UeIz3s;E9C2zFH!N4+|KDorg$cUN=x2)e(g%jc$nC3N5-3>Y-L zoTiTQ3TL6LX(1lvGdvId?NAszt2vgm35}Jjuw$SNs96a_T-PijC8QArb*_m`%_3ji#QXCHh1d zWoVrW%PN{)R!p~?yTV6UziU0*`ndHlx^J*fb{s@|ngMxb^q3A0cLvU~4xV=n?s`XN zTSv|tU_IG6vzP{+Ri9u53a+vjY zRMs){q=|;dNM|o^-R29k8h1p|n;uR$$29n@S38MF-6mh@{0?tmpWaOZ^&Ps7iRtV zc_)t#sQ`EE0>5Tgl#eo9;vZ2sv6LQhJx#An?|6aI^i^2v{8+_?&8QfTU37)@a-hFaQvF5kA%6h#`rnN9)r1jgj!>rpQud!ZgH{4nqHJWbt2Nai&Dx~@S-KeXr zr`l6Kw?|)*XRYfnsNAZJ8AYwxi8hO+#WQf};7X*Hwtmq$yR>L};h>^ox(cl=@%@YG zA>6RSnT5sHq6DiI-OuM!z#w_dWW5tMV><0gsg%}{NY2iAcJ)MibO`Ps4|XUooj!dS z?KiBasR=%!+J#v!)KeX!hgkn;b(Qr5mH#a&|3NDMn#cjxF{;DdsNvQN&FXMh`+?Rf z6#tnHgRBOWerpS*f7C3!(}&i!`2N){6rRCF{ z`NLWpK9hz@p|v80=O-CB);sZG*4rqvkFM#7*sj)vUrkXl`hQEc+VCgXoB{W0_=qd| z_v&pm(jd8Wx6|Km(&?_=;lJ}L3(q-&;N`_Z#u_K zdyu4z``@%~>M5&|K87>@MOX{1KewJzD2 ziG7IkPv^MruQ*@2AICj(wERv1tPcY;zfqzXO3!x0ki@cW)lqA%d%ZktyzgQjY_h^=ECXco*b zwD!e@SwDTXS+rXto1z_;Xzx?B21N7CsBi}5%E+S0Qz~fszF`JE`o78991~{!tbrp~ zPrHm8Vl1CS?TzFqY9vh(2kAXohlmKX9{n4RN1Wqh2PutKGprTuj5*@h!8zhc(;V@K z^MdP!_5693PiL2n?fA}UOS>@Z1El7|obzJ4-~hX#yp(QMAEfsA!)q|-TW__SLTe7s zUCR=rtS8%{Q|_l;zwZ!7TN2e2twy7*ijoGuhhpw^Vmh<1PN~mD>A=3qTGcVkdf;^= z)-1|Do1$PmZl+lKomdzl){ooMdR$&K%X)-9y!eyDpq=oaYWQOm{tktQS)vBz^v|-MiKhF3A@mBHbu=EAnyjQ-skxZ6_6oHo zj(Uc!K_{s^akJ6E9LNjk!A+7!UV~Pq(3W{&a z#uU1r=C@yb0DHOh9?ebDZlt?B+!oLkdN`gbYhg!&*h8UCIyD{X#)Ix8=`qDdO68c7 z3QDx0BfZdN)zTn(;zQ*Bj&uCgM>v1)qbPe+DJ|KB){7M3*C&y6@WL2GbEIQ?uOr=m z9i#F5Ve<&qeVu|+^DfHtsgIH9DLPV7OQsKZZU9QGO`Z6T>^P9})z;dV;gpH)Z;pEEA+ zi5*Z%FI-!jW1UXliAnR0=213Clv<9m8xtl)p;_@x91l6iM;GG!b?3P1E+pWj_jYVk zR!h$xZmpmT>WwCI)%i{4hsaz@<~56u(p%2)@w?F!Gm59vO=SVS*tPlm(&9Y2i@wP^ zKr!ETS@#94hse6V3hBJ-95>#B5{RSiG56oZC;Fmee4{!-iz~Fmf*O}Io@_3 z&YyLTw=c!{PUrZu`*D7ljuzi<(hbuHT5>x(n_F`~@Id^OLb^S@adcS$o((p{^Igv< z+VfdEXtvVZUF*m3w4cCIa2JjEpI0OOqt3D60h~X)%o$57$+-AI1ib1TYaYV+yUuab zPjLQ$bKJ5V=lA>+$HUI?=QTLL^I;r!Imdfe;CzpBy#Hr7f89Agxf1;>6VHQPhF^1) z^)O98w>*LRu@#In(08^$}bzPcn%a_n7U%3j=^(w~_&^iA0=Quy*9B*HP^BvCduE%hG_gWm+ z{Tjy&zd;GE;+JR+CSV6>9if!(*bM9abhLc`_66w2FZj2wWN)}2EUe++#a38Y&BK?< z{YQNg%8GB=^8%j%0`LiyLd(d~gKc>7YKp%QdIP6PWWA~XKe$baRyj@wl zb`u}BAGf2UBjoeg0rJDcBg5f;$~6lNkfRt;(aDjE!xs5Da#ZAR124AT-EK|mC+$hs zUw_S9ds7T@OJ*MWv{aL+uQw7@7NJ1{po=^`jh%FhIeNQ{b`4ckIn=BR2Zi#Lu<&*uCb4MITG!zCL{hA8$P= zb(wFGy~=mew>xZwz1kPiD`N2A#r8tGA-pazH!(4h%Ga~!skn$voq8lKjb36e_iYJV z?_cYmYp=0a_*dEsznVR1u^rePesk=&I{WojKaP*tX{UGSFyy?5h)&571y#O+K0EBx z{H)#)S;e#F`!)so_wKdcjyOUE8ry4X)P$%(gI3tHB5Hln*&FOh%ftF*W%Z-N4PH$V z7Tei#{ez#fzcW62+~7H{`;OYL1|G2=u^+WRu^asqYmYr;h3_x^d+k|seGzk#A`;Tl z;;82NmDG}(?XEL#-es51Zr9lQfZY(^?j`%LzSrzq?MmMdC#?;C$!^nTi*ME&c9q?G zY{B$3D4D9iLE$?2t!+ig)c1|aq?6BQ;*tdpW+dbji?F(%2 zM^Fz@(?>+~c*q}{zsFzeFCLYZyD+TIuCW{JBjK|X5)u=7L?mpndw%^kU*?6oIyvdo z#N{G_+4KEZT=f@!Y0{~%2Ye}i^1W+!uJSEzx6FT!{d-?+t47}=zJ0#7 zZLi$ZVM|!n_V6J~d~b*C>Qb@5zsJ}(ve){fa);;V&$A=8g_Q(O+Ap_ywHu}O;04s5 zhx~wg*4cltJA7hy*lr)TXZM--cAKeFaak>Gv(Uf6x71(okX>9n`#$?IyT>Z$GEYj{ zXwRj0a}{s2ht~Of_3tIUw%^_opnh`-o*LgZHKF2UYh|=Jfs5w!65Bp#C z@3vR?l2cN)+fm6$$=$ndvHQ#m8zm|Ra2WB2?~wXOS4=(*oc8@11-8E1*T z#SV{1i3^XYv=gGjBjTgOBLaF7+3W<7);N)HcF5Pv2+oKeGhv;NX2FC__Qgx=)CG3I ze7c&;=lsT>`2bz&Kce}%&5TNWkv$^&W8VS$6<@tSVzn>*0UGg}?CVC|YR|spqREpd zU(mTB{Kc?st+xB3_S)&gm)V^<_3yvg?wuBqfC15Wt}kt;FEX+s8~;w(_4W>bTG|>K zSDWoA^>+W>6{)HHqC0o)8@1S z=pH+;-yU>x#13DNK%YT_wo)@i#7C{P1A(c5ZN8zycG>Y`dc=lMR`2Zi?vp0e*jw%4EA07Hn-cEL4D=5ADLElwweL~i-5qE>X$V8< zs{J)ISIxBtow75sw)?UM&$qLd*u$3EgDUNey>`}{zO0>g_TY_S8C&f+SqFTBkI)R8 zl^m6o)jw`J-JcK$83v)0)e%j~QwJ1cpaosl+pzON*!PoFu1qYn885AL3kl|ioBhoj47Weqm| zWjSt@-4vRY^$@O+MRr6jbwpHjH2Nw$GBQx#X1Dz`tyQVfy#vu*V`|#O?6Du0No?3k zd#}CJpZ_vVWqbU_+9RvT9d<eu>@KsoyOn5&?Zud#85m(SyzsoqrsuTTl2&_@9#8l^m$_^tjmAxRjJ`-8T3~ zbnDZ#?=XoR^y0g9n`ie-r4j@ple<;7uBMw2 zT}bz4bb1G!9-zvvw<$d_?T?K}=$BpPr!G&}+bJTU+e#mz?cmde7eyqD%HHlrB8Mqv zr?D%23+VjKt`P}+`xY$lRdu8#FKV;x1a^?5`_A((q)4mjHqgnc?`9i%dwbR*H@0C( z1zAGYMk=l*Uq@LbZt*SjZHuGi2S*far3kg>QG`IF-4H`QE$bBYQuyStv*y{;CgcU` z+eXZ76_HS}I4n9PB{61+uVjxsZ1_AodXF8Q+%>Du)Dd&-w5UouDiZ$!OYL0p<0E5Y zqNAgtqq--g#YIOYcZ=>7-8Zs$@NRpruR8_Ab&8IPOzjrkga0M;=}K2aa=$+5yJD8L z3Pff_C*fcAlj-<1a=%mQVNlv6d|6$ekQF~JOHk#sSkau0-kC+uPtoO0j z3tP>z@96xVe;>_z4gNmc?Pu(#TCcGq1A*=lG2Q$2-RbMTEo`NKRokiSe5+cWfZ=G{ z?e-yGT3X=oHu>LpE}CZLjn3^yQql>&(M*nAiCN;X?@8a&-DCFJ-MWQ`M{Ejzw(X8E zT3N%x_qPiiXcySy9I*pwXw}f_5dC|$)jQ$%t7|p4HU5^iTH0zk{iCL8<{H8q!Vl9w z^?T1A)^|VM((I%qV*~l*N|px>hE2$N$G6>1&K}pmx5mrDme^CHWBLWktNl@Lc06uZ z(~1-}B|u}0id#*qM|k-1R)>AG*T{{`%@`CB6%`v3o%*;vVrlq6y1_)OK1to@*~PVT zCtMRI_s?DFZayMmRo94~J^Lh`3a_)b`yTSw(4Eq5J8COkl-t7B_@*X)*eYUhL_$fw zN-AhcR5GoZ{w;R@Rdj2gm6benY+&#@{{q@rylk(hyYr}RVHx>!dD8`%9PyC9I}MKF zxIm+CnXg~Bq@<+WL-ydLr1|!QO2RXWi?jMf9rG==m)mJ+Y4u^*$>n|4*xfez*7_$T zJnqyl;!V1Nc{(=cWqW>1%s=g2(avPI*B`N`)g5-fqrMaV01X0~^e|b+#^&$#AED{4 zCM;p_3E!|+S}nCLAMH;I^fgxU`?@rJEtWOOZ(F}@w`?4u;nNm9=}>z)hh#_os&R_^UkzhBG|F#kl>b#kBG;Ze0K96%hv^v@$w7lR zHTV@@am-eN@T!&Hh>j(vys5#DO=5eh@T!%+fz3hQ)Zm{Jevt60l`nPirUu{lYaC&` z@Tx=Q9~Hh#c-6|E!U;Ke*>o^9@_*zK$860JUNz#Q{j=B{*<)S=Y>~|_~6a!6}+jz?-%|h;Z-YN&dCS!H??{F{)6}ei3<;3-(qTf%)O=Sci1-= zIzV<@f2uWqdKt)Z&?vvDQU39lu^nGK30^hgqyGB!c+lWY4StgF^m38Is}7Yf6FxBfjmJ zttrB*Rz4pmBp^JuacI4SX=(xn%Y#`V0#bw6@Q>T?<0ci?(d zjr7qT{H>8q?P+SX=i9=6S9sORmr0qR(I2J;pZ6V(aGmg~l{fPPZ))%*!cP)jb*TIg zgug*})yhwFmEY9J|A6rK2(McC$6dUs!7ohX2#*M_I#j;jcbWf<@T!%McI9tsZ#2t5%+Z9S4o} zH#PdNR`^50t5*I@{kK#2X!@RD^uOv*`F+AC39mX-{*dtfg;%XSO}owNZ)(*4P2tB2 zuR2t|QTSQHt5*I@?RQf6YT;EYZJQ2Bns=L)YnRDO`~bA(qNDnCN_hlE!hDnCK^ zUkk4~RDP=PyMB_k>p+DnD2F1o|3I^uOv*`9;E~3$HpQMRl!fzE`b*TJe;r9!#TKO|wKg)zaA-w8P`4z&)(q0|oM|G(D8sU2j zuR2tIz3|rxuUdJ!EdK5Fzg75I!mAFI-y!@;;Z=vq?-hQB@T!%k;AZ7FHRi8F!qfZQ zo%UC)yt&`S{AX(L$AxcCZ(c&4XIqee2nM|joBuW{vX zYVe!JF#mVqRV)7_n}hkA8vOOwaDt5$xJi#Ij+KM5a0FD#+`RV#nJi#Ij+w6PrF z0^wDM%0DXn*MwKCyc923e^Vp>Q^NNaUbXVKxXN#8bNu!v-W;zpT>5s>EsfvGYdM3y z9l8BfYyN%dIRqSZHXTfj@^8v_%+^TZRVz>1SjQ=EYVg~HFA-jKsQgahZx>#5sQg~x zR|>CMdGqxy)Zf%7|2x9}PI%SIC%NixYVh$BIYOiGs+I5NnmT?h#g5s! zLwMDQkM+Y`AHka%eAqPRe<{3b<=_q`SsJMsm>EbTBpAgTDU6as7o?t^Bvx z9OO+6{+Gg!7G8Cz{9)mXgjXFZf58kc;B4VlhsuuR*wb$4NWKP}93h()*XBr@D3gXG?Fpq&J9oj4##Ke#Z1ZlJxGE^i)6g8Pn@^6F1VE zlAh{QpE126N$x3x7m-)uHkmg#TE0)ym7yr3cq%Q)7MJb_>@(iZ((Rzp9lt?+9u%irz-9>1!UH^&R| zH#PVv!e1f0YUOJ<`C$I01|PVSBTN-uwese8LH?!&zgGC!!mC!^Y;W+U2ES4GMZ&9A z-fVC1rUt)T_!{9=E1w_6^@9d)YVf_Q*uGwP)ykXY1#fEb>B4UpUbXUOdBK|+{5awF z3a?suv%kTc8hn}X9lG-PQLX&rT)klbn;LxAdpN?y!mC!^tS|C6HTWdqzbU+G<<0tn zSA7M=Pn5F38|~5sE?w@@x43kbOaGKK_OAeMt0+qN6|N9r@oyr-}YR z^c2x;FXZ%>h`vB{t>|xvJ}Np>blfRUf0XDf(UV1&iN0C%L!$2zT_?Im^l{Noicb85 z(|=a zYj}ibk)|YqZj4J$LHuaTst@N^fNl~^pVV}ig`&HQ{;7-qg-id|rFXdWUtRj|F8!`c zhjnXS{*Er)&807O=?s^)sa6Fzi1U$Opo09XDZZ(%CEe2V{VbU;tc!WRQjMg$(_e{e zy*D-HoAvi|rcuJHR{m`^2j@Feo8`ZNc(c4$y7V~GDF0Kg=TR%GIfF1NEbcc|YyO+* znt_AHd}nHuf5LLdY{d(&T6uGR1#fEbQ-n_yUbXTYaY7CrcvFM#S_3PkBfM(Frywht z-lqYlys5zt{sr3?2(McCxoi&drUt)5_{W7;t^6JrZ))(%WdVCpc-6}Ha`C1HUoZSe z!mC!^_HhEx*>o^9_}%N+-t{Zo|EhbFo+o+3)AY>#Lwcr0dM`_QC6b=;_fGn`MOHxv!A={TVSX8EpY>v;7=|)(l@VQcSj{Iu#_L=R{>s&f9sd@anTpIaN7g~#G4u*q9`*X%3`OU-$ zIe5s=)W~niGmhEncnOzRHR7Ya2D3THn;QJf!hc_Q)yks{;ou>EQ-imD536N8F1%`( zkbfT-$tiDY@O^}TQ+U;(^2NgAbEhbqYUR!PqWq>t{u_iZ7GAaT$NkOAZ))(XpJV$1 z;Z-X?iOs?Kn;Lx74vx?uylUlBUA(EmrwiZy>s)`;%E#k`9K38gm>T@pKRRYBLwMEo zq|NaP9{st9qX*M7HPSmQ>Gki)7%4ux?h?7Cx-5(fr9Hn^-oC8Gt$%gBuSp|(4MA7 zd#v2eP`#w58u8Jd5o`{&hpE9oF8l%ERV#0<*T~=0;2VTLD!gjt&HTWd8vL8We<-|a z<<0p3ys5$W`ZHHB;Zkl-)uHk?3!f>xYULNZ+RxO;KT>Xp@`YEe{6ZIRYVg&<&lg^` z^0}`0&D7ve{Dm{vD!gjt2Su|TI-3rr2A^?+?H>uRTKQZy2gi@8!Pf{M+l$*@wepEB zUiGCEAJ=22R(!n;5S<|!ym`HiA-j3K-R9Ewk#6aFtCjL)T*l>7eWvokj`}qSf35JU zL*=bExB<$ASFOBxJ)nO~jr=2ozg>9Mq4J%CuMu9g@_PRYjr>iG{8NShweYHyr)k`A z%9|Se1mPQmSA8bFZEwp;l(gYp=+c+DG}1H2%N1ld$IDGFy^u7|p@?CL44qi4LObvd7W3j9X;Z-9(*5fqS{f()?FY+O#Wj!doYUS6n zIhenx!DobVgx?FVTKTmu-qhfaw&Dnl!mCz(u2Z_E`kNYjNjURy-{SUHt^67nZ))&y zt(hMnylUlFusK+NQ-j|e;0UXQSFQX?SN^63KcNltJB3%R{KAf$0CYATOb!0c1XwKV zec@Fj6#btKBROdBrUu{l0$6As?#u0`8lm9L{RwzegI_NEP~lZ8zZi*=g9dME@ToGO zON3Xgyj*@k-qhgx3V)xLU$pZ5T=z4k248*=Vp`S~;Z-XyFHZ;aH#PX9!v9Tp)yl^@ zsW;W%)Zl&H5R*Rl{cUc4)yg{$SI7>XO$SqhA20l+!mC!k4vCXf-qhf`Ukr<7T_?P1 zGO_r+(qGZ-+gK=8NC)3iMZ(9r>B-X(QPSjP!f-YpzpC zx3r$NkqzWu$lje2Rju`D-HsE5MthnX?Gb$$ESB}U@Tw7t>mde4a?s#S4ZfT3{}Nuc z^0FNc@}@TH?|#3e|2xg=A4R&Q`X7`0H;^6mSFQP{JEdIDUM|jnt^0mTWDZFas&HFFpZ))VfNBHZ6SFL=qtNx}2e@gf=;Z-Yd)))Dk z8hqfJh-q1s!mCzZuW4xTrUqXu{1V|+E06C*go6j()Zl0L;RufkuNt8kKW2U{<=-Iu zZ-iH^Jl&=^4jR0vk$>#BV6m*{g;$MGW@j!b1Zz&^5#nz zG|Fpg)VEyHn?@56(o>E2Xs;|6Z))%xg}+O9)ynsF@umj(O%k5e0s*kCW-bzXD$HXH&)ySng{mpXmrUswT z4>9R=R^e4EFSpyl@oQ@E-M+*8yTYq3%V=Jozqz!g-!}}oH(ej5M*8C}=k#MUxqhmZ z@6UL!e5MBfknrikt5)6|AK4UWYVh^Kj}czA^1WR7n;N_?12Jiy6JE9Q>m6%T{Y?#i zgYZj)SFOA`KC>y%)Zn)Yzeae~${%s%Z))(X@I|!bo)uoT@_SsoslngepZT|hSFQY5 z7jJ6tyM=E}9gFd;T6wd*vnkNj;KK$WCVd~L@T!%c>dN2L;7f$ROnBAG(=D#!ppn0+ z!Os?+erV1qziQVj|l&i@T!#`Mtb`OAtt?VS<+LjygW`1@}>rVMEHLQuUh$RC-tWJ#MI#XT!EOD z^%Yu}a6PG3euIlQHTXA$A1}OW<;~{>*%WAM@WTfqCOt0036zyl0x25uL7k;wvsxKPc^7TN$ zjzjuL&(tVS6dUNu5PY5$qR=X{UzSFQYwPU=nhn;Q8a7k-uSs+BLq2|0Kuzp24rJDMZ(8NvCh zMkvaEl>XqL!J8WVz%j5`)&s(;Mkx5PVX!vwrUt)q9P?iv$@!~R{t?E5`I{R2kn5Pg zO?cIz^2daKMR?W9KkCZg)X4w7@tl9gC@#Nh3PQ-hzE z!x6$qbN;H8H|PIs3N$tN)w#^)3$I%F)2#Bu!}WrUoCM4-35x zB)n>b;`-{w=HU1+HTblN9N|&nRV)7&7jJ6t9c99JPI%SI-;2VLgGTvH4StpIZwaqj z`5PU&iB}y#8$rC^{z$(_CkEo1{o9A^X8#ts^bbj+e}CtCKX=zjNQs_%U(5ZgTFc{O zbFe<9Mtu?|bA&5|SFOCce?WVf8hoC&5)7)zc|{qS)ZwNgDG>Z@IpI;@$nMrmd3+-QvP|@arsqi`O~C~(5Szu(Vo4gz(TJ>2(KEUxIWGJE%7D7 zuMu9g@^MI<95i@SBmeorKP9|s zr2A0eRV!ca;!O?SSHgVE_qqR7D?i=En;QHa;ZuZHeKqNp<}-OYICwp&zK!Bz{>hd3 z=YG+%M58?Be1pdn=KS(=if`)mq+6PA?v(P5oxt@~t@Um6bA_R^>0oNq_Xp*$(0#n{ zsu7C$<^YW3puwBkEPn;@W_j1T^sh*_RQ_wHbN<)maQRhh{<+ein!l-0{@+wGKSg-e z%4>fpZ))(*3O_@5)ylu*)V`_ys^?Ms9%1zS?e%~Y1M$uFaNjRhQGBy~?jw!%=;yj$ zeE1fmWLe+J<@Qjm<++y4!TvBc>hs}TjxbPo)ylty#K}RUKTQq(m0Mx4tTDNqziNbH zJlsluaM0jQ4L)}sEL7KA=2asUyaS2{-qa3%8}qYrg%_>-4+(*T25)NcuSop6bD3AI z{3O8Sls7f_0rO#@-%-nDUbXTme#ac-O%1;EcIKZFUbXT%exOl)Q-dFR2Q2hGJ-M8} zYJ{Twc(>A2ep7=VDg1HaRfo!t7rtX2=dW7%G@Ouwhw_^m`B&e`5qjq_uNt8!|1A20 zg9dME@X-rlv8-$Im{*NZ@Nd9K4jR0v!G9q9tUTsbBR=>l`h$Z8Z))(j-vtYW=P|Du zq2PPNNDdmjslh)b{K`D$RU6f0OWg z@|ahR_~6a;4!o(s9~J&>;Z-YtFQowo4c^q?e{?r2meql7%(@#Ip~(M27|B6{H#PX> z!lwwYI#m8C;fDyXTKTJ-+?(<@HS&+BLQI;+gjcQn8a4;ZZ))%x?%@avgjcOR1v?HJ z^*1&6*u}6|)-vH$BNXj7md(NZO%1-}UXJjX@T!&nJ>8SQK_h=tgTL$nSZMqSuNtAq zpLfqqys5!oF8n^>RV$x_#K}P;e^Y~>Ec`LyRV$z3&`rFl!QU%<)I=VCs+Fh5>W+g( z{-y?hK=@09SFJp+_D%Vl8vJ45uM}Rj@_TSX4j%G1HTcaBa)bimRU;Jb|26u9g9dME z@UIDfi}0$I&vWP|-qhf;9zsmoe+sV}p~&C7-jTnl!T&}0$Anj{y!n1V@TLZTMEF|a zRVy#cbFluVHt)ao5nq6ch>IX$>I+D;bU#|M964FmAIXmSOZDrd=Sf=dv^=}QIS?B4 zF*WLw_6RJN_0>X7Pc=fj)8Co)!-Is+6kc_x{BYr~6JB+w{5auf2(McC1XPY3H0p0^ z)PJV%cMGptdGq=QZ))(%h5w!Ksy`y#Qh&(Tu>{LwYNWU9apY`S-=G^m^sj1!qCc|O z9OO+6{=hFe!bss&D=&`&gS@H1XFb9E4~18){2COF9CS7vObz~+@GFH^t$d6_H}R$h zZ>`6H-d`xZYUMK=YZGs3@EO7%7hbjUvpD%+`ArRe(~}(G+R5Dhs+Aw%;!O=c;#VBu zhr+8?-kguKDbUp5V}xHRylUmQ;Dj7J@TLa8Ya>VaqwuN`8p`#&PxwaRRV#0nx25to z2!GxbZa>w^*P-y_puw9O9rc-6|A^A*Z(YLtJl@R8HF{;HMl>S{kzgD(;OO5s&2AK~In4StsJHwv#> zd9%DNm4AuwKNDWH@*7?Gn;Q8Ke-1I}duoJNt$a@xulipUKT&M(B1)R;i(GmrX*~a5 zDbM@Ii#{s4M08T1jg#svqUVWTBDz8JqoO0*aQw}pD?~ppx=wTh=|m@GKD-Zm6rKNx zdnB^7x&307?&s3qbLpF18tqqrgSelOy+8%|FS+#JNw>8Bnj`&FRmS5}HIl~s@^wiQ z8so#%=-uR2tIw(vcKSFQY+=9g;WGlW;Id=eUm95m{0 zYSh10_%h*DE1$@hZ;&@N_=W?BNuMJWUbXVMj@a7(bo+Pc=d@ewMH~$eSAcn1dXlQh3$M2Ph3VXyk8d@Dqf8 zRCv|OXW)b!Jn*Ilzx*|h@F(F_BNXK~c95ndU*KtPIvGA%9iu#X-ksLI5Q-fb9{3791D_`f( zO}weWk3Wo<^qfF=)ymIx@umiUNcevVuUdJzeF&D{)Zo`1K}>o+G=tk;wer1O`I{Pi zgYZ*@R~;&!_y*_yGvQS$pBBaifX=3asgeKqw_u_7PYACXq3A#JejL21!Dk#}{*swo zf7QyH_ru^#4Su}vdBUp>m7gX2GT~J#pNh(ngGTqgr`0zibLLHTaXlj}~6F@`GLZn;Lx9KM|9js|&AM`7^Cwxx&97ylUkuoz$D^ zZ))U!NcbpvVHWjQt$d@Kc0eCA@0oUvcHH`tKAU z@5fkoIN;=f-}y+CyxLJIY^xgSa=zUZ8^f3vX_&FC~rpWB2{tpm#Zu17t`4s75HR?<`3ZI-3rr zM*H3&{QJVI4wc^}eDn`Ef7QyH>lyMlHS*sl{MUq69V&lN`2NDHR{nI?$8{7xQQ8LH z4KDp-mqvPKfBl5)W`EVY^g+@s_17sW@7=Sxy;N&?SJRk;gGPIq8tt{}BUmV0c-06+ zf1B;wQhTox{%PS=D=&|egZY~p`A_*NVBu9OzXy#&4jR0v!5O5?;0PGJJ!)slop|j``mTuUdJO0S+4NX=?Dhgg+#_YUO|F&`rFl!O!W;`6pF! z{Z%WU&gNkLrUt*I3rE->ylUm!t44g(^=6!qg9qN!;0JZ( z{O8`nylTV;e~A9zpuw9OeDa0Nx0%blYUOXk2|0M+RX;-UF@9@h{K9UI$6u4Z0HC-- zF8wxXjK?(B`!CnY4b6kMa(PrEebna)Nl(jTYSia_;eR2#YUQtT@umi!b&=1B@tp9g zl{Y_6gZ3~r_%0VSzgKwG%F|;v$3cTPHTXM(e@%GR$|t#aQ-fbG{0ZSzD?f*e7wk_{ zgHP?j5n9dT_E)WZXPl6Ohw_^m{E)9Q-%)tgh>!kDp+7j~O$~mA@Rtg&T6y_+YLGWI z_-B(i|1rX=R{mYiKFFII{BOU;e1-6;mGA80O$~mJ@QZ|3t$Z|2$id5|gQ>wEO6L4m z3$GgSyVKv|a5|7v-qhe{Udnu}@T!$xh7*G~HTdYunBOnFYUS@?Jea?!!9OhgN5ZRC zejrZB!ONzDslgxa&G|>&#^X;l;-mhxY!33K2EXcC9N}W&RV!bH6LRqWA7%Fgul0QY ze>_Q&kdS}jEN5v+OKT*3TP2C*63f48X*ozs@-In9l16K-B{6@J#QbR_NozD3jimV# zqtT4y?_y>l{NB&&^?aV5y?^KXyFS0q?RL&}JZC&fPjwe84{GQhElaGn<52RPiADxZw4gWHIcY3w_uDFvn++cif z`1gJsFD3ua=*LJ86^mhOZtJ<1e6B%lF8L zHh=Yx)BaU_3^xN(Uj?B(pHlVbl>?3V0T*@v*#vQJ{~acO+Q;Q0Of zj9A~jei7$at@Yi9&wUSHWBt?`pNC&Ne{UcEr^);HQ?j0w zx~}mr)cDuM_-c*s|Nj!4KX0txQ+&ZblU^;~I9oq&_*L{*(5vOAXWkpW=KNT{ne=LT z9}n~Qh95!yAiY{%zb`?%i1}}zSIeK0d2jf|^t-1QetdtR zmS2#0Z}<@x#`rzx)$-}DiIg{V3Hw{auc5zyUM=6o_J{X|Z+KCRKbu}H|5)a|;g``r zORtv4_ZZmF7~dOyJ^dH-YWZ=%X_FsUu4wq7qhkIoe;MnqmiNyWjPDJ});m^Dz{4Mlq`M$W5Hr&8_!!H~Yekr{g`(v#Jr#Ec!gUhw~_?urEejUA9-e0dU zzBk6-mwt~av3_d##ki9;+`xOozdAO?FVU;9Kjz;ty#vsYk2`6@O)0(eh97Z7 ztlvm_HTK8)&r5IEU!<4L9)K@Y_xZ-;Q35{fqdKSBLLMua?J{*l>gU-WdO} ziQzA%S7U#Sk2h@c-tceH-$AdIpNKo=z2S#Wit*RdtK~ZduN~hTeir@y=@&ov`lpun ze~(#8AM}Pl=Gqwl40^TvBHp>jq$zVOVhdj z^lJHIGVcvPlm39;#QLk{{rgpn?+w3zzAwF6e&1|-Z}=DJFQHe<``-t`_}=jA>2Ic2 z7xmxJKTfYM>UX_9*8d%Pby44jzR~npe|1scjlM0tTHe22Vg0DBUnytp@Z@;+a9^+9R> zDy|J~j!2C^KWx-wyYfd*WDjMZmF<67))=n_@3`f^Px(#SzeW$H+nZC@_49bc8F4-K zm=VXL##7_#!NQ&5NzgbRZ>-0XJHsDGua@5-c*I~%J90tz61`f! zS$2Hh@F&v`q*u$Y&b+rDfByF)hNtKADBTlW!@WpBmH^wYWaII?_C~$VI2RjH9lM3=UYl2^oGBW`~Qw! zE#EgA-y41t{ZsU6`6Ze6hF|nZ%>P|_wfyqTd&7@g6u!}oasJivx`xoD^v)apZTgP% zYWeiXROL9>2)GkNpmN z8T-HN4eaf13*Tvn`1+3V{Pj5h`?oF9{`%a(A+<|g*Vm)cV=>{^)8p0YN!2=@j~m5; zpm9FDu^wHX4!@CJE$^>i@ZRvf=y#hHK6ZGCUM>F`21^?n<9ov&vnu?yvtxX#vqylO4bM(6oOQ zpBp#Fr^fdOefjnM^z8A=@OZlTmu|CtSxw6xzc1^@vwk`2FS6b*ePUOYpE=$goOQ3P zkIx#%>)(&$zdtxV?O$WhKRk6^-;d0BJr=ClU9p~Ot>76&u$JQT(-;Z7` z@4qjA_l9pu-&@O9ermm~%X@rEuaJDd^lJHUdCX{> z4{!L3>&N*0=+*K*9=tdFB>ExrYWZc^_}=h+wvO>HqF2kW%e*&yhX&y%(yQgiX5Jfq z9{o&uwY>lQQ%WE7hJTy>E_${6>Dl<+@JDSE^M8b1Ex(~bJOLWxd;9gbEP21)KF@l) z`|7^_IyL6_>GA6H{A!IqEStYK=0BVMuk`AozRC76{s;7G`NrA!-Wb0*{WkZ<{MAK$ z75#qnYI%SC!}@z;{4Vr|(W~WKXY==luc1GiUM)W(JOAGBU+xs^cPG7Cp8q-U+SdI9@fLAIFbkyO zH{K)Wf60R}e|7En4Yr&=zNf{8$1(r*EyDkXUM=shZ#aH$_|EkA)2oa6p7c-CtBd*) z{Xgi{@-50oyZQ6Y8}lDV{}sJj-d`Va{NC`>=ntG9>#r{A7t>FrSIeg#o5~v+<9lQL zk^98?TR^XtPoEZBcyIVm={L};<(J}4+HiyMz2WEY7vmrFP#nJ+`{VP+U!UN;;rFcy zKa^fAzc4)qHZ;69{7dw+>DBVbl=WusT^|2CG5%VO&z4_~J88oW#`lI_$A2)h&w@C9 zHTK8xcSvv8Hk2lF6x)le@d^GZ=bE7H`Z?> z{SOz#`l;pj%DgvxvxDROT|lpv-#7E#@a^dzqF2lNd`sBho)3O7{RVoqynnrg_l6%! zf6$|G{A&3NZ9I7OIcfhYK8BkKsqy=hW&Hig4E6^0-Rv$qZdX=|*>l*>rLHPJ67Sx| z<2$DNRoj<8@J04G=I7tPHC?>r_isPS`nc3}egC$B$Nyz|9Iqd0JU_mEY>Lxc`}*&V z_51LLvBS=P2(Om+@7J(?-teE(x29JY_4N*k@qa|GF6tZ8pG2>g_v;1o_s0BN(Vs)F zmVcpq_BMb0^@iU_KZRZ`-xhb$h8v8p-jMdM!UNnIEQ#xHBd@3CsjKv0x^08U)Ah9B zfViH1ls%5;_v`5=>G2x#S7$vlHLj;8v){K@cZ&1T>yL3gsPX)`p5AU0Pm0Fzcw;>p zbq_z7UM=s}54<;gGx{;~>Y}~{{d9VDQQwMw9=%$=MI3(Z`Siy8d(bbZSIhhN|2Tec z_+j)L>DBW0)ZcRbz2SG|e?Xw)V{!h}@&mK^d&7^UA3(2`pO$%V`1(i2`M-i*Ex#i3 z-ta5w@1j@B^YW`*e{cBJ^smvY<=bZCdza_mE9SpZ^JmNV&Ad1K3EaQx@mPPg{IJY> z!!Myfl3p#}0C&=cn^Jn`4ZrlLnEyz6HTK8num8RZ-W&d;qr<;Uua?J`G;C;iZ}=Me zFX+|sqnng@t@nmsb7G9Y&(c^wwft+rYrQx8!jr-uMX#3k*Bi{=8-6MMdGu;|zuw@z z;g{3Tq*u%H)2nv=-tbNO$NV3sSIhg?AB^t}{|5cr^lJJ3^}-t4{Mhta=HuP*9G(tkm(miN~`%-ATUZ7s^#7(;%lmln-tY~77S~VnKgan~7xm5PyU?qP`hDq# z(5s93HuMwe)kXaw^z-S}MSTzYH|f-F zd&7^X-{I*ve`@&$GVcxFp(f_vo?b2Q^Q~+CUFiqVtBd+$=qJ;wi~5u3=hLg@J7mZ2 zjpLt0znWex-!${;uhRZid<-``EZ?&C%Noz;->>EWp5x%Oe~mrg5vl9?{l!eqcSCv{ z-><1PU%$R_zPxd~Yv{N8OL%orUv)-YFD>cS^8WJ%#`nhfZRiiDR~Pji>HE>E<^A^+ z7~dP?_oY9FUM+tC&jA`6% ze5>*N)#+cQU>$2G4b$Ye@&Ds3D;oqYFmR>F25O>ms8_eGue*NV!{sAlE{Hd`&uD^A-lQ!JI zd&93B7rsQV#{Tea>!){VllO-Ia(wvF^lJI8!E3!Ye5b3z-%78RPd_%6H#Fw&T^^tQ zFB+dMKOc9}ChrY@-_-)uua^IJ_W7^=VcNfn&yAZtsqy==;rxBs zpzQIB@c54D-*@!bzO1gz9>;k8^*I0U8{D4uuPMuTH!n559`Cl}P321(9>+8C&N!Zv zR>kqC@i<=3{QARsdc%*VKa*Z9-zcucg0;UM=4?^WN|a>8H}G$lYlasAhJa(F%S{YzI-tZmojrku(ua@`o4et$qG5y)}YI*;D65bpB zVfu^c)kXck>BrNni~57_i{qa{uP*A(rJqf&mOneYe!Ow~uhK7|SIhf))wO=j?~nOE zMXxUE`_cc6UM=sRZy4Vj^PfZiKD}E0ob33$;dh=F^Z$xoE$`PG#`lKrN59*P@%g7N z>TjU`KE1lAe~tbKdbND_?D)Mg|Gj@7$A2=tx~LyWe>S~Z-q)+H^}CJ!QhK#~_X_i0 zOaCi+wS1-V_kSRc{|YdRb}z;CuP*AJrr(ENUDWS3KjzVg{yq=I@lT*v%b%DXzclLu3xo$rTM=|--2E(U+L@T&JV}&A4IP%>W`!E zO0SmhUg`MhkJs_De(Z1N1^n22) z<-2F|_s0BNE{fxCN3WKzH2*W`kDyn}pO}sBjqw-LpFppc_tz_&KX3S*AC39{j9x9@ zJsaN}{sj8-=+*L-j{kc4E9uqpJ|5=pjqz90Pp4O>hsrBk zPrrm-EnjK;Tj>8vua>Vg{u}h`=+*L-#{bSA;`qO!SIbu#e+c~!uf*q{TE5cwchc`i zua>Vg{yO>}(5vMujsLwRar{TotBd;K^n>Zu@|EU)Km8^2>Z1N*`YH5k`AWxs@E_y& z@1R%9SDOF%^najN%U2rzVfq*8)$*0b|D65dbLiFbmBt@WKY?B?Uupb5)Bl!UUDP*P8uNdU zUM*i~{zuaol$KVFRQU7r6FG5`JPcVf$*nH|43{6*aV5PG$IrR!%AeII(YeD`d8 zZ;by1{ps{-`AXma9{pq-|HbrbdH;PQ*3TQ`&!@kRUR~7hy)4GRjb1HZY5fM#FQ8Y; z`=1wJ{@$4X+4RrStBd*z>HkTumLHIvKW~ixJpHHiYWYg%Z@)js`r#jb~;^n25*tiLzLf1CbTdUblJ(D%OwJQc@ZL$8*v^z-`}^cT~s z<-1o{zq$0kq*u#VTEF+`@1R%9R~o;~({cQZ=+*L-#y^MtIeN8xrSa#{ze}%{uQdKA z^jp0i*Kcj}{8t*k!}2)(7WC?(<6lI7D7{*~()bJM`_ilBD;@tA^k>tn`AXwIM*kSSTE5cwTRju=f1O?}Uupav^qTSD{t|k%e5LuXqraYBUDSVX zMI8Tw^y;F1IQQG0wY>klhWUHr z{9Q-C%^Pw3spTt;zmk40dUa91^Iv2BKcH6^_5J93(W{I48|VkqtL6RYRji*k*6$tq z^Xb(^{SRJ<X`rI z^lJIr)8BcTTZ6Pu(g_w(8P2;%n7QqHjrERd4f#@%-(y;@$^ z0~+IdWBd{HGwIdxt;?&odHuZMXV5RFSIZB{yf^$t`t9C{^;gS}i{+_@#{9kEM{kTB zj-*%156#B+hF?oRfnF`&CiC9#jlYQTAEZ~y--kPC!wu%|4ZrZq@c*J$WB=;(HYvSf zllO-2`c?Q{*2Vg%%HOIZVG=my;{Cy=Dp!d^h4>@^64d}yrE0!oj3eI`ib;v z`O7o!4gVVb{q$;iAFrDAaD*H8Lu+2u{%8-Br7;V-3E%eTaxw8?wJudW|{ExlUa zKVL9^Z}@s!hyRvdE${z+3*H;PEq(R+SU+`9e+qq1dbRwr^3iWTes7H5qCw365_+|K zrR%Q^{Vnurd0#Iazcz6nDs-40gNw1dgksZG`e6yzEN7Ae12W8$HekA>G z>DBV>GVcw4EB!KhwS4+x;qrzqrFY)&qj!$^e@w5I?~-|M_yzRMKZ^BN%lrAl_}=i1 zn#K4fdbND|Yf0q|4et%Vmi{t&wfvcx_lEDaON@UHy;^=+=Dp!xrGJ55Ek8Z;-tfbB zjqx|ptL2wu-W$I4ZsFT~9P6)^ZVGUu!-W&c9`WBytSIhhQmC^^j;k(dZNUxUn^@I0@ z??u0YUM;^@Hh*vU!So0IJLa#JZ<={;_>uI#rB}=Q@nZho@T2IzpjXTL@xpt^{kJGE={d&Rp-tcqi+x#cSSIhhL0`Cn!pMDCxTHeSIhhL0`CpKhJF^kTHdc0cyIU*>39BbjIWmWM&K@_xO*d&AGC zA4{*6_w|DJhF?Vg61`g9*9+bo{t5cFU&s8_@@=!vKX3St>93<#%lr2~7~dPd;U4k% z`xU)f-j5gF8@>tsso%u>)$)G4@ZRvv>7S%m%ioh7zc>6+`hCBR@zwHvyr)$)G5zjm!({}%lsdbPZ-7rZz8hx9u) zi1F3({`Csp8@}P*v3}>#tL6Rc6}&fmbNaXF)$)G4@ZRt(=(}$d^HIz$2N}ntL1&Y;JxAB zqQ8?~E${0E?+yPU{nzwrdB0xZz2O_Sh}WNi+sFLX@_xO*d&4)UUqP>y_v3~4hHpXN zrb&#imiOa@_l9ppKb>AJ@7D{wH+%>B4fJYxzh2jsKT+(+}e}G;gp+vg_>>k56Tv%-+Dhgx&O`@PB2G zWdB>9eN5AMz76c*?4}=wf08|t{SJF7yUWh>>_P0N{|dj5J(B$@dn)_;&FI<3vzu-R ze>Zz1`pS^+oRObJV$J2}H zh97TV_Mc{tZ?|haKDrc-|BStg{V01q`*rq4c8A@<_dPEBFW5ub_p(Q`w{9N$uVN2i zuV-Jz-pGE5-M4Q%|AD)QAId(KJ(@j-y^8%6dp&!f^cU5z9vj&gvilw%&;KlYDElM! zX!enNa{laF*z4Jkvp2Gv?-l#^Jt3a|9QIK5uh^s6>)5N<|Fd`a_3YD9SC!9Xyt^pt zYqFl1^_^KS$@=-M|B>~-vi>&f?OSX)zm8cC%z8rB_h-E_>-5r8`?C>N;3p@gj-@ES z|5w`I`}5TJ`%!N=oA!yKSHPH&6K&$jvX+#CKg`uX%~`TaBR z4ZnL;dJ#?ApXt@|{^x0>^g(a_kJAQBYyXZ&L ztL4XK-W&da*0KKA(5vOAWZoP8Vfwr1)$%7~-Wz_~@5T6w>DBV3%zMM1NWX$!Eq@vA zqzyNv^v)apg*Gw%-{{rYzdF6Wk>0S$d&56)VE8ZT)$%{Z9rNDsI~)|gQB_>OYWY=} z_lEy_yYS8E)$*0D|99!XORtu%^z+b8?PL5O(W~XV#^KjPm(n|L%>P*WQ|Z<6{(1-R z4Zn{5JbJbKv}}BD_|XT){I8=|%lr2m7~dPdeTVS()2rnNWaE3oUq`=`UM=4*^WN}p z(!WfvmcJ_V-ta?y5cB_lUM)X1^WN}p(AWD;T)%4h12gXpzg@=|zd5~H{yUlXhHpcE zAiY}ttjv4E|C+uxy}GF1NPh;sx~MDBW4Wb^mN{KwMYO|O>UGxOf?*V8Yi zSIZCHI-USsO7Fbk|I;bv|1`Z?{>1uQdT;n+4iEnly;}Z>%zMK(=^B15y;{B}?xYPj zn7=oC-yenlH@zDBSEo1s{S~}=+m>6^t4fb++buPIo~`$j`1!J3_IOV`o_?8Fb$t9r zu0J~c`^DD$_loDU+p{OIyRmO(_hc_mU8TX(?HgHR{xx{V?X&cFjUwIdzyFrqHZ^`e zTbBKMx=x_0o?b2QUk~8D;m@bvAq|f4)$)C_ z@x9@npg)jaEq_zyz2OITkNN)(y;^?P%zML+r0+woF6t-H51?0%NL<}RY!%m^TE0`Ze%?6#rSxs+)$;XmCvCXF`gy}Y(KF8fG4yKeU!C6kdV%+b z|AzitdbNBX+({d5;Jx9G=@sKop;u#njPK_g-W&cT`g`crMg0)^r|H%57p6I2Lt}hz zjK7+G9lcuKe?EivhOa&PHeEPa#ogJt>>R@+7WBKm{q)$;eGIbcI$d~b|D5oM>DR-dN8C^pDf4<^AVPcyIXU=%1li z7xnAtSJSKI{rd-u?~U>IJt3~Ax9HXKe!TGB@a^b7rB}&?)$*5@^=9u4Ka2h-dbPZN|A_Iu;qRmWIlWqbO*Xza{G@?# z{5R99<;UYr+HiyMz2O@V3jY^+HTK8)4@qy>XY??G|? z)bb-T?+rhhz6ZTp-p4DY4|>CQ9USAIMX#2hn~m=c|2F+E=+*Mgvd=$n_|J#L`1jJQ z<}d@63C{&!zu@UM=4v^WO05>05k1&c9lIWaho$ zPZ=7=|08;}{IJY>!#_bkgkCK_F7w{-JD5Jj|6#Fy$I+|hmuKU9WBiss4}Sr@ zTE0={z2V!?&!Jb#Pr;qE;ii<{dBZOn9^?OsUXA^$)7v5G4V%0-{Kxcb>DBU;zJJ+B zztzEU{%SjoiSh5o;AzwN-WY$@IWhlgdbP%XB6zL$h95E_{8993c^|KoKIjeK_}uVk z(W~WsJa}*T74+B8tL3L<^Y?}yG&07&n_exyDf8a&{m%>kcY3vaP3FDfAEW=8UM+t@ z=Dp#Yo*(1yoxZWh=dW7czh5k+4|>D5pg)>kUDUUxKZjmj)OV!+HNCp1??%6vUR~7p zp?`;7Ek8C}e{Zbca{6t55bLj&_wSdm{@(B>T@dH54ZT|ao@{(?_<9$HFVU;z=V#s< zem?z7diA5JC(z}aqsINCF=0A#FE#Egges7FFh<*XRdPC~E*0WjmeBOAzk$k?kKaBNIYd*eySPyUb zyXnuNSIZB@owVTw-W$H@=va^Y>DAc3I=%ULKK_QZe^q*1TZ2R5_hU2p`?2QiMeNq> z&)A1+|7P*~v=aLP_RrWG*%z|A?GpQ6!yeAQi9M5jKYJ~EDZ9z8;a_BTVy|P5V}HTE zkKN?ZIKEfe`>}W3EuODK>MAWpy6u&9f9#+BK0$B({ebh>ec9u){jvTvc*kwSVW}1A zc2e5kds^zc{(HNg_|=l7&-<4Mstzuve$ZoZ;Hd55Fu)$)El!+XQe zqd$>eE&o;wUweIe`|+QVydUrNSiusD9T#`m8WF@JB&f6|rVhtaF$ zD}Dbqjeb16x~RXI{w8{LQ9qY{KD}DLMYjIlIQ}Q-pP^UFUzU0GL7lh!eCUxHzdvuw z&zFAL<7a1$=lAn}d3xN>|3g{-C3RirzuWjYe`5}h^RL$Ydu8+Y#_><2|24h3s9!;U zH@#ZE()F{N{&9MBQNNacHN9Hi&o{1rZyf(7`j6<<^0#K|=M8_;Rk8lNb&2&?%fFs^ zb?3By6(7S*DeECwChu9u4@#C-qfe`3CB&9@7`!A4`fym7n_ zP7Qw&y;|O1AK|^>pQJyRUM>F>j|UC!?Z@9VJ?6)IZF)ZM+f(ECpUVC|+0tLf{D0Cl zj$eIV>IobhH=0jJEHoSQ@y79d_M3RVd-!~6`AXOSH}uQt)$(i0qi_EH#v9|mF+Ij# zN3WKzH2!+}20x1RP|N%03y$9#<2SfI#&1clmLHbQ-y41eeJ^^o{AZc>h95E`#vehi zmfs`u-tc4SZ=zQh_0#B|qF2lN&#R^ML2rzIEB$BmYWY#w{Jr6Ky&;Z&pKfvf)bhhK z?+rhW{&;$|eEPLcdBY9n?+yRJ%ozU)dNua1PH%H?CvCWa_lECxQ}_qz)z}|?c6!4m z?+yPs{hRb^dH?eUjPDKK=$06NzwWVqYWWc{eC_z&@T2Ja(yQga%)B@J$XjFl(e!Hh zZkhLne}MijdbRv9nfHeOlKusHwfsw&_l942Tg?AkdbNC`%zMMHrf<_D)?Y3ETIRjW z$3H8^KZX7Qw!DA8Q%WE7hX0)VUq!E$ACrym4L|bs82^5HwS42ud&7^RUqi2!KL&Tw zh8xV^8-CgB7{Bomv3_doU!C4sr8jKy-th0!A4;#5_w$AEz2QHlA4ad1|KEPT#^dm< z?}+)|La&zh^M&!f;YZLvL9Z_A7tnt|ua3>46 zmiOzels@PUzkz-ny}GF1NPj=QT7FnIe{YOGWNw_lH|W*!KHs|LKa76cUa@{^`Sh|- z-f#o&jq&fhE5`3Yug3n>>Ft=Z-hBOf!+%bH8ogS+Pv*Vhd)yu4Uq!E$UzvGt_@=)L z|1iB;-mlkE`k*&_8~XM1YWb70@x9^4(eHUwtiM{`UoSDfH~d`sAJePleZKJC@Js1O z(W~WszVP1g&F_izn@g`Q>W9<6La&zh>mB2JWBk?h4SUD>spY3->+cOe^xl~N59!tN zK3-kpzd&C@ua>_y8{Zq_54|dSUW~Mi6^4{=s=np*{lQp*p?*3TRBZ~Z{b|4@3he5LV6(4R)HF6tN1 zPoh`LpP9|y8}r}m!I=LNdbRx0%zMMXM*ji5TE1uIz2WzrALH-+<5+*Se8!+3OmiIrOg!hK;OTUa> zE$_cCfcJ*~l>Wc;YWa!T@q5FMUKsOlb!@D^T7GWkz2WzLB>Vt+wfu<8d&5tr{}sJj zzG3FQ;iu7mNUxS}oOy5fo9T}(#qq1<+h*PyemVX9^lEwkeO=n+|N8IwuBC5zT#T=l z_v3~4#`x>#uclYa`|-ki!*8Jfj9x9@Ejxa1`1Xt9{GZe}=C79b-?w6XZ}>j+PtmL8 zcg)83hVM`R{o`YNwY;wv#`lIFOn)7{THeUG)$)G4@ZRu`(NCdQ%eTqSpEvw^`j6<<@_xNwd~f&$ zkH+;kuwTqyEwBIH02Q7>}^kq{j2^R`yYf(e|~!k|NQnx?CI>|+4r$) z*c;gwvwJp=zb|nudn)@D_8RsB?BTn|{!gZ^(!r$LH?sZ$`=?Ld(dWc}-{HiQqgSyX zWUptx!rsX4a7ygocSQJKvWK#P19pF5cX>MIKa^fA@2?-2zc+j@`YY+xMSWlT zo9NX=eSi9g=+*N6`h)p#xTC)#DBVxGVcw)j(*31vHoiLo|*TCZ}VJ?-<4in>v1P-xGAM~>DSif4L9&3 zR)!xyug2rm>CMM0`?8MbgP%`-HN9HCx9tz_4gV$mee`PiiJA9?ANPFBe-*u2zS8`c z(QozBSpV8iC=Dp#YzZl~;9~9?LE#EWq z-thhDyV9%Whv81za8pX}yy2I<6yu*sug3n>>CMN3_l9rua`<1-tL0au=fH-B_lAFo z{@?U!`BGVL_TKO$f-jtXE_FGw9Xw-Lm<6 z!>^_P1-)9{e}97cd&A%Qw;2C!dbRxJ+4$b@EnW-%BE4F^XXd@(2h)E^ua-}zwY=d5 z^Y?~-?DZIbzrk_-)Y!i|z4`fq_l9q{Cj61~YWbnKlQ!JId&7_Td-x0K)z}~7cf*~u z;RfCte%>45Z=hFWfB2s14V%0-{HOF!)2rqE=Rb_^4d3F;82@v6wY>lQ5AO}%hJOE_ z#rmt|eZKJC@FVE^(5s93`Shdc)$%=J`D)kC8{>aQe>=Te-sfA_{5!3U^;<=+mOmvM z-y7pkrQd2utY2*>SDoJO$-Fmw=YPcbZRph+AJ2gejrn`S528PXUM)YQtT%ga_@(q$ z(yQgWWZoNo6a5@|by45xtvLR_(5vM~WaE2d{JHdB)2roMX5JfqIsJD|kMpON_upTX z(g(faH~cf^KZsr}@8=8N8-CZf!(U6UmhYF%-y41?{d4qc`9_)dh961)A9{6BKbn4@ z^uu&@LTdTTaVKrK!SQ=z{LkNs<3E~Sjs3A!J?p1;X_NPc@4Px@SWa^`M*!EmiP0G@x9?E({Fc1tiM{`$AkBVUq#=U zUM)W?o4+@F=l5g&gXz`sK3-kpUrs-XUM=tA!Fyx;_4E(XtK}<=-}Zx;{~CI=ypLDc z_%rAmof+$|majDaYxD=xtL2Ah>+g-@@AYBKe*nE&-oIbM{Jr6)&|gEZmiO`Cz2U#4 zUqG*x_wni)zsE;0|9{e}<$b)m#-B&O^I5U}YWYgze@=e{y;{D~`5*jo%>P_^wS1-X zKZpKCdbNC|@pt@JjQKcC;{V001e5LUl zeG&7&g2GOs|%&bo>v{Po`JPPtE4DBUW zvhlq!{yh5a&x!R{%lmrOwSK+7j`??_SIhhPg7?Pwlju*USIc+F=I;%^jQ(DFwS1-5 z?0_ODKF{`(4eZ}@TaJ?Yi*J=1ewL&JN+ zFQXqzua-ZgtT%ga_%G@2p;s66?d#!xQknk0V)SZx|9x{Qeb5`@&!hjEUM*kg{C!UU z-E(98)$%)L$M22t8*CNx??bPae;aqwh8xV^8-9KL@E6dlu|Lj#rTMqtI{dBl>Y{!$ z{a@(S@|XiQH0JM(`QJ?c5xrWz8*tj>yOk>%ehvNJBV+y5@_xNyd~f)w266no>DBT+ z9=tdFVERkw)kXa*`a9^=Mg3a(mGtVOzG|B|{*5|*w)`HrlQ!Jo_`Pxbof?L3dtR)+ z8vEm1cS~>BH=Q>?4t7@&Haz3R~Pk*=&zzz7xf$I=h3T+`c94G_+QcSvy1xC+W$gc|LXKQ zQRMYw5%)ikUR`wjjr2dISIhg?3%ve$Vg{zm$r(W~Vvjo)R*IQ|>x)$*0bpFqEYUM*i~{N?nU z=+#AilbvGz)fe;nWf%2*x&QI>>Y{!+{RDb-QU5Ca{q*XhzD3hG{=de7hC9dj-RafxmCpY$^q0`9i~1?_v+33Hm9F2_^v}?%g(?s^Y1(+)?Y1uM0WkFf1dWQ;$yhEGIgu;RGawkD}KXny+{0ei#ypD zvKO&ev7cqP-81%ogFT7;NopT&+e^1>%(n*bxb2f3uTiAiK3NY;UDv-S=*9Kec5JMN z8c$uF-db=B+~D=V8?OgLc8m4gmtKwi;TxwnZ1Udl!|8uWukMq2LeN@YAL}uNb4KI*cw>F5n#cKhj9xA8=L6mwz773z^lJH~+4$b@ z@6)fLSIhf&b&dZS{Ri~wqW&BDhUqT?Vg1zd{`)zM?~VC4**(^;nqDp6G&_E8_!jhC z>D5JjTl!P!)$;!5dzimB#_vQwie6pR_oTmpUR~7prGJ=SUDOYxe}P^t-!NN$Zyf&+ z`hU@@<$b;CTE7wWjjo96M_ts9q2HfgE#D}czc=PTp8kL6)$;u35Vfzb-tZ^1i0gL% zy;}Z-YV3jrORtvip8fx`z2VQO3V#>9T3-LXQgkW3^M>#Co$!C6SIf80=I;$Z zlKu^PwY-16VtjA-ar9r)tK~ap<9ov|px<*`Tt8}gKi?SN8-5A>5%g+#pD(;O{0jQP z^lEwk^L==4`1k3rq*u!~%Z^|D+q6Hvem31JzQ4Jj-GvSBUmxqE`CPbpJniqjJat`P zA2)G+Bd(0~Rcn5;8pM;LaeUr5zMC=0v|UQCme=vfd&AG8pG2>gf3f`Ro4@~2-;nml z|1W*RDe(&QAiL?Q(a*Bmv)@6d|NePD{`b!D{JwslrpJA~_8-4x|1fo3>o@*@IR3ZN z*tN*f8fCIU(u`OD}8-mOuy?@F}}K}Uq*iry}GDhN#BcJEwAqn(YSuR zas2PopGL2iZ=IcgZ}?_yWBs0_R~Pl2=|81c%lFB~_r~}W>Gz%x>#vrdlX-9WHV4K0 zyVI-XS7qKCzFxcVHS}uv8Mu=++?3KgZ}=JC4?l%ojs2_B+mQ5zP2L-RBmE+Jwft+r zYrQx8OYLL)kLcC%OK~S{xWW9r;iq>9f56qT{%Y)x`M-cWX~PY?H~i3!;Rn#Gu|NDV z=?$B_H~bR%8T4xT9>Ht9H+;Px#`rJOtK|o0-Wz@}ebb3?{A&3o_2UW9rS#4le)yp= zelL2p{PJvkZ}^U#!jGX>%g@TZH~dTVkJGE={d&Rtz2O%e7UO?Qua<9~jqeS=iv9=J z#QLd=`VZ-c(W~X#XXATg{1%;K{`b(U<@d_GH+(nxcj(pfK3*w(&>Mav{eF|;_|@{g zv+=#*7ts%(SIhhBJ;wKje~JEjdbRx6YE8EOA29vf~h&3blfd}~z0@Anq4r?Q`7uVDX;y~p11{o;qI{rT%( zo1QQIaK7QP`2EZ7sr~VTvhJ5Pj;99ixaI%-kxSG5HF_}JUY)wG@0ZT#8t1F+b+KM* zJT+c#TW0@17;l{KYmN-xnO-gL-(TWM*Kb{iLhw;buiurFnIgVeA$8r3h;ZE9cgYmuLNA?cif?kdN;lH2Wu*rMF z-$vh#UM)W{c&+z_|L)N-{_*r`d4GMv{Jr6SM1K~&T7GxjNgHn9z2Q$fCdR*yl+HiyMy)pmuejM{Zi(ZZWF@OL2 ze(>J#chO%>ua-YPJqI>4yf^$t`a9^=^1I4{ua+N#J86^mhX28-;lHF;%P$IE>%HMWpx-)vy`+4O4pN?$Kq(66Fb%OBk!CV(!bcitHP zjKMMf2lQ(BZrS|3;qRp1_E&NK)ba~5?+t(I&tm-c^lJG^$A3C~e|ojNk5@_`^v3wR z4~g-wrB};W8vi@=f1p>(`*?MY|1$lX^lJG^1VlQ!I7d~Y28n3_2L z*7R!ZkJpdCrZ;Tz-v0W1$GKa6{XHx_Uro^R`(CN*`u^j`XTH6_WOKqzkaVx-mlj`X8qUHbzQ&1&yC|BH!ZFo zwZ?CQJ88oW*3TRBpD{B0Z|T+8AM01?^M4loLVC6Qr1Tuv&=}tv;7 zfU@4~z2W=PA4{(untB2)ZuESWj;BAL?>;`CTK<3g`S0npf0d2*X6jby(8lrSuTQea zx0}A@{&;@B9`Zlm{!ZH8uaARM<9c{H`~Rhl;{4a7$E(wmsx|*(I7c+jhd0)9Dg8I} zYWW7ZlQ!JId&4g~KhEdw*T?v3>|f-1T1nrYUM)W^Jr6cC#vg}B8ye%6E{O4uqF3Yb zBIBPzKZsr}|G%AojejBiMf7Uz@$|RStBd+;>Hk2lF6yVzuccSZw=5t1=HvIq@h_mS ze?y!`l6bm&f_LkzOs|Ec4#*1L+^5SIhg~=fwQI;fK+`N3WKz$;MajeDjt+4}CW^ zetx=-KR+GHUe7+7U9Uy_`PRV9kIZ@k_TM@E_mcmYzwdK>dR%kC6raxewbXU}ytR_Y zJL#6VUevY68-Ki3d%kO|v0fdnjq^2|UM*kg=hZIsOX$@_eJ}de^y;F%FZ~93wS1-T z7lzX}zBSfQE#Er3Uc9k>)9E|YtK}zT-Wz_8>tg*!(W~Xtm+|t3n^Jn`4gbL8@UPRW zv43@Xdj@yXh8uWq_%Tz$e@m~%{_vH)UW})2bz7{TTK)yxNgHl3zBk72H#NpTmR^nh zF@B}%ZxH?Y^lJG^^FNdR270yp@-zo*Xv|;zr?h_+9^m$BYP?DBVDX5Jfq_-|tTTjkkR87_{7Cva^lJH5xRW;AV0>@*88^iIzou7rxMR!TFQ1$BeObSo zb;~(h`qQ$$IqSb=-TclieZQ=yWxX=%?dNXkduKf%>!n$LlXd62wtT)(S)Bbqk@cRx+tT;TdTQ1yvTk(GmcD1!S7!ZK*0_G~dj1ywhg-Uyym38^zB8_; zuad8}miOOB;(GLkUr4|2z2VjJZPFaDq2ayZ*V1>RSIZw#)|)X6C)&+uRl7zeTT>_t&3N`k*&_Z~E=;i}h2>`+C89!=F#zon9^PzfXnt zhM!J9j9y*TFQmVbUM)W+TR(4%-~R4czvc95dH;O?=I;&Ph5j3Qby44&{*e2*{_LW@ zANLX$^=u^l40^Tv>TLbIas0i07wfl}UM*kg``r@#Tl8xAs%(63j6Z^YyLqvG zYI(ojO6h~%@Kfmzq*u$g#+|g`2HqQf(LHher_!sjKVJX*^99};{w?}Z^lJH@={c~W z;l1Ho-5cXir&r7S=R3SNd{6pE>DBU0%cE}|-y6Ok{Xgi{^8Wc!N+0xwA57oi_i_Hz zMg4I4*7WM4el-06dUa7hf&MCbwY*<%IDT&&|6KaH^lJH5+4_6Kub_X1UM*kg^Y114 zPw3V1owM=1G5(JC#r3!619AS;@>QAlhHppTm0m6H>s3l0^oH+CKZ0Ie)Spj(8@;-y zpHBZYy}GDhNWXzzUDUryzx#u+{_3LsOZu+#>Y~2I{c--!q*u%P`NsM4#`)_)Kbc-F z@8`R&^FN6GVS05@KaT!QdUa7ho4(2XSbudsy}GDhM?aiiUDP+47w7LLdUa9X zhW=0V>Y~06{d@Fk`L@~Xhc~XD(e&Ft6zi{+_pdj&e!Sr)&>uvvmalaE&80t{UR~5L zryoVHF6!T>zlmO5)HnHkod3t^)$;!H4%W{b>(_(+1A4W5`|SLA!=F#T*Mc~IYI*Y~0U{eS7z z@|EU)CjCAS$NH;_`bqRX>D5L3J@jYLtL6Rc1=i0S>-P-(HS}uvO2_{p{r&W6c^|K? z@tZst=kFzYwS1-V+tF{NSIbu#zeK;!!Z?3w`AXxDq(6dQUDQvbA4ab(>KD-el3rcZ zucm*HUR~60q+d<1F6#H1ALoA)y}GFHLVv&`asJdr{UG||>DBV>>cxh}_3Mq#pULzW z)2rnxT|e{aZ>3ik^{eQgrdJpBpVEIquP*9$eJIY~UW;P=)$*;g_4CI1b)o+Wy;{D~ z`VFEVN3SmG$I<_uUM=tQ#rgNf{O_h;Pp_7*H2-Jl_k1+gPc84?uVH*|jQ=_P$@FS@ z|9uI(H+D5L3Ci(^R>Y{$%hvWRePOp~lnjOD4j(;HiE`NyiR~Pj+ z(f6TO%kPnm?~U>2(~qH7%Qw%wH~ez?+4Sn7{tfzP=+*K*-%|RZH^%>*{u6q&ynnvK zd&9R}80T-7C9(eMqP|4mkzOrd>G~Z>KbT%!)K8=TCB0fceOq4MaD(Ib#_{)B6vzKC zy&C)D_s1uc_2%Eddc)78f0bS>U+MT4({J_1SpVAQ`2O?W|6%M7;B2b%|Bp|Sti)tB zNn(;TNzx=qk|ar*BuUa_B}tl)q*6_iBuSDaNmjCwq)BQeWHm{Wq>?0IWvwJxN&279 zd|q$9z7N0uz31`Z&eQk2&i8xHx$fK1Fk8qCT|sqv*%d%j#2Izasj1^m4lWD*BD|a=QI)`pkKL|KxQ0s_**s zZ$dAp+c%-_K`*D<=hHt!FQ?lV(!WnHr`u1W-$E~^+b^O&?tQ=ha=QH{`b+5Lbo;XZ z^!s-wy_{}ehkg>hoNnKSei^--ZeKwEJH4E4KaxIYzF&Vi-F_B*2YOk3)#&vjw7q^T zr5{W$t55a%v5kH)y_{~JIoI!h*#&<7viiZ%`a|3LN7J82FRKr~Ud&5=F|_py>2IQ! z)ra42vp%%-JLsRHm(`b#)*ssXee?_I<#hXU@A>ungI-Rz&!Vrf(67I&zHGGq(6;{S z^q0}g>cjK3>lfPkI`j|F%j(0gm#hzMeS7*>>1Fk)p1=L+f1sDukB$DlcW9fx!UDhk z*&q1zllS-0^&1=5`YH5h(#z^s2K(FjhqnISg+6~9dRcvVy{!*z{Sf;8^s@R?*KaEQ zOZ0NO{Sx|R^m4lWR{CG*W%YHV>lfP2zsd)G{mx$G_fJ+oD(XX9KaKux^s@TSQ6Jj+ zGK+lvC+TJNsjhzx{oC|%x_xW<@95=p`(E^A|K-Gs>{U!#}P?JNDu@BemsIo-Yi{fUeH`pfC|9q2Emm(%SB(D$L2 z)9uI6KSwX8+s~z6NH3?`uciNyUQV~qSnT)jm=FE>%jxzt=^N9_>Gmz?d(g}2_TA~9 zrI*v~htj`KFQ?m2qu)#~r`s>3uTbpQUrx8*Mt=^yoNk}_q2K@O>E(3$T>3%ua=Lwc z`f2pC`jev1KcVgQvylFCdRcw={Stfq4Q>5w`XA|K^?S?s0?gKjwtm(!zkYk^W%cEv z^@p~8E`7z1{Qk@8Q~mwXujp&i%jzpc^M|(iH__inFRPyz^`WgF@~NNy^YpU%O7=mr z*+X9PQ)uhQF86*0y=?p2_us1FlddJnb!mGrylW%a4nzn%WbCI0-8)ra@n<_~S_-$&n^URFObxd*nHt)FN}Hna5; zzVh=QNH5!X$^EkrlFc5hFBjPQsb72l1ifs#rE~vh(NCb4)u+0C%jjRHm(}O{^7gMk zw5`AHcfP|ydRcv{``?iM3wl|7s`a;{-%Ky7pJf+6+01tRL)-dGuk-bn`PiR7vik7* z71oEgeklFP^s@STC9@xxKeY9;>08pv>ci)&%^%wOMf4BT%jzda^M|&++xLF{@6*fb z!`CaDKeYAz*L%N$URIy#{uk13q?gsFy8q+pchk%2I|cu~+twf2*1zk&zW$?@`u&&H zr&@o;Ht(y`%j#3DzZ(5n^s@T!?>pQ2L)-d0&==6l>hq%eAKLoK^iR{v>POlK$z~5W ze`xC)Z1?m3lwP*|?e(jgeUNPSV0~!o+y3nRdV1ORPv`Zo6aBCBviellzdwE1PyGJN z>O1fRFx&b=+xnOO?(091URIy#`Ll{XmtIz%YW+LtFQu2&r~3N2@?Ky65PDgCE&CwZ z?7_}Iw4HyWKfGT=FWdel_s>2^HhZwXTwv>)@ALj^df9eM=l-{$-$pO1Pj&rz&>z0c z@4u|Rb#(tj+xlmf^*6}J(#z^o-T%4tr_#&nQ?36i`t#^z^{MXv9{RiJW%c3x&P#qV zbiKsY%lY}wq?gqX&$PRL;QoiUep*%UKcJV@r@DSc^sDG)^{KAka{3?XW%ccS`TL*0 zp>6%OPVn{D{?wm8vik7#HZS?b(AM{*znorHzsNpFHhZu>wDk>7^!Xp9mu-Lh{S$t^ zwm!7=t*U!Jj$T%u>iV~%e~n&NpX&M-(9frr)pw6Re}}g9uRP7yzk*&?pKASU={L~J z>Qk+M5B)BBS$*Z?9@u8K>mSrCXzRPvcc+)threHK{?OJB zJKg7hiC$J;);>r!d$2yV^`q)~|0ca``=|5zJ)Ztw^s@R?*MAQEm-Mpwo)vBN2i70j z)?c%UuYW7OtUlHAr!M_rpZWdU?_^Fp|5WR5MW014YyR->o7nXaZR;QmjndGvo-;rCBgpX&atraysRR$s5=>K(X#p>6$TTlxAgpqJHGi2BghXVKq7FROny z>O)()+hY*T0uuR-bD9JLoHX?#~}teX8|WxZ3B>rkB-+->Id5g$z~7Mhqk_62VegVdfE1` zmHa4gA0(SSSRdN@#@BjZdZph#+4i?S)%|ZlpG7aLPj&yh(C5(0>T`T~`_~`Z)<5(H z-=Q(RtUlHHN71*Tm({0Q{|x$kdRcw=e6{Nz+ScDC-`9Vi&L67}pRd-3wtfTqKT9vG z51+5rhqk`bjXwW7^s@T!`D%S=>s!OgYW<~e^?n$=tUlHH zv+2jv%j(1Dt6l%lw*D3L@6gNY!{@8@p{?)G)7Sq6y{tZbzF8mI`VsWUtn%lNtUi3c zSs&W^R=4^5ZRln7;q%S<(AKx_<$XTAtUlHK%ct*6FRM>=|L&z9L@%qKT{?LYPd2ly zKeVmCeji`|)AX|XRO@d{Kbc-upKARb=-;B3)rZeFTYqRkbmMtx}O8{g^c{~NumzOsFgZ1!O54{d#3Kkxg} z%eH^5! zes|H!>cg*BtPgE{%?G@HlwMY!>iXBEe~w;OpX&OzqJNcMR^KZ6{#R&Q|H#LD{qNDs z>Qk+M9Q~*Cviel(pH2Tgy{tYvy8oeV{j2Ct{Mw&Cvic_WL9*F{-M`S*S9;vfzazce zGqGOl)Z6Pp`1#9@7ut?jeYhWQ3dfU^p_12==KKX*v-P2^?=sf=IrOsnRQIDN{Stav zeX9F0gnkXZtUi4IYwHhf>o20;M=z^yWfwEq%+`mtelLCF)qX!^^{LLk%yWMI+R@AE zyOqp-VE)iHe^2@$^s@S<_Cd1QgRMWb^;5_B{0r!1+uxo)sn$P>{&RX+eX9GnjD91% zygTvWWPWWr-h38hw(|*X=QHAEKc6<=`2CR8r#hdp^f%JW>QkLh5q)2JS$(R{FU9n) z)643^f6rj&AKK1;IsIySS^ah{sM-3^*3X~f*Dq_0Uq4xWm+1SGp{>uJ>HTT+viell zzYcv9dRcv{>)(?8N_ts+s_Wm0emK3XKD=Isx_+(S@bfRGm(^FY50cFutPgG1uk$SL zzoD0H|8#yocBkJ)FRTAQuiv+aWn?FFXgenINs-Trd|~7(BHs}C_Q>}~ej@UVk>7|s zKl1X(>mvUYd0*trwFh618jbLnDugJUQ~4krzh(Eb_X@KSlmC z^0D6?d_7Kyd`{xp$zN?KeWJfWT#BpVPWY>AAHQAupX7c>`{QSDH~bGg62FJP!k^*N zHT`%Saee$7?u?IK=j)w}Pr}RbIk?Kne!RY^~H^aw#@8{DCpMuBY^Y9{k1>TPThO5=~xkY08|G`{bx<@CorS|@E5bqCvPR45mwsCuZd42TnheKQc?OXo- z^oY&g%j$1Qj$xbG-rt6{zQt_sYtqZ=!|#__AKLoy^sVS+^#e*~KQMo2>np$Q^LL|{ z)$40cv&|pc`myx)(97y?kLC|;{Sk9~{*m;u`uwO5ZT(I3lj&vkU7|j8`21P3;Na)a zKa=By&!44%c{r=0EKm2;su3uE%}v>ss3>=y?2do&C?J z(007>^Za_Q<9M?AR9|mSq2Em}s~=R#FR0nhC$!C2b(S^fX{ z^;)tXn?H}f8NIB&pD%y^^$TtNLi$1UvieHV`G>ZC?$@%tyM&yKENXq&$?{q6L!`btqB+WG?esr0h? z@Xvqj{6kwm=wE*R#q_fJf@uEG)^Df(kzQ86GU`KHzi6?~UvVq12UvZZs1I#@=7-*& zLocgu8}*^B??T_1URJNy6mwqkQ)ufq&_7Hss}G;A)`zx!C;hARvik6PSs&W^;$lDl z)%3FZaK1y${}p|?|N8Zp)z^uxUuc`Z)JHylF1@Ti{O=do{GqMSrq8FB)whV|4{d!n z`bX$x_2IwYwfRF^KaT!2dRcwXX#UXFmtNxM|24g=zFpLZw!Q;>xov*^W%YxiKD6~; z(Vt5%t8WtZp{=j{v9G@yy{ta@lDK3u=OsUdw!S9)aC%vNq38Qwze8I;iT+J`S$#NP zUh<2ft)EH1mR?q0KAJzY^>gXV{^ZwRRv*rHsQH)B*Qb}&hx1t<+U8$He=WVNKGpmi z=m*lv>cjaCHUD<{iS)Ai@cozdp>6%U>5J)Q^<$#zAKLm6Oa1wGcjUNdC4z^w)yku&!m^r?Yq#oqnFjE`ux?Kz8}4uZeK|M6uqoI)%_bm{~Eol zKGpgs(0@iRt4}rmbo!n2vie%l^Cz_3zvc8bcKH35)u;OUVJrO=^s@T!^Nl@!LfiZ~ z%l!Axz4WsBD$)8wTi=X+8ojJO)%9;nznorHpX&PO)Bj2@s}J8V+4+aI^$(@5`HNqF zS$)mu{6kwmjlLDVtUlHGze|5Ry{tYrnm@G7zm@(edRcv{`S;SlOE0T$6wM#n=5O$+ zKY!NK%j#3T{xzdNYNua+S$(f){?Io6bow^*vieq0AKLnz^dsqI^(&%2wDpUZ`}xnM zm(_Q$50cFu@{*rITVHL3_rK7~w!ghrgs&IYhqk^M{mH*_{jmD*_p9}xt?$VGZRln7 zsh&SQ=LU-viel#KZ`zl zmtTKbeX8@HPk$-BtUlH6pQZFS)644Xmz@29^ABz3znA_AdRcw=dS}-!wDr|L_vi1M z^s@R?*RLM^=k&7r+R^$$+x+e6chJk~Q_bIvzS95v{>kdY`Rx2d+x)}m&!U&rr<#8p zeS3OYeK_Bt=ATdBpI%m2Q_a7N{!MyWeX92_l~$H1xx=5)%j(1L7uflS zw(H-DejB~4KKy=%^`WirPG4!a-+x(ss^7o;=o`|@>Qi0+!SpxK%jx!`=?Bxx>cjUt zcK)I5{O8fXK`*Os9R2 z)#v$NU)cZpAKLnN*ZTZj>1FlfO8ElJw*Ju8xBuSzXX$12;n(Zdhqk^meKEbPKGo}g z5BhENvicU$^$TtDPp7Z8$FHBPKGpMgE`1YvS$$44e`uS31O4^%viel>@1%c_UREE@ zXV*Wp&0lT3-@i%pviel>*QGC}m(_>!9cupe^#7%o)#pXmFSM^KVQqs}JY1^@p~;BYh8gS$+8X)%wuZkD(t!FRM>={io2+rI*#Wj?O={&A*-g zdwN-Ys`)cE`1Lz-uU~&zeK?<;e`uS(HGN%rS$(ScJJDZ7FRQN|oquSXzmWbedO6*G z3jK@pa=QIe`eJ%neX95W8|eQ>FRQN*oquRM{~h!v|KayfRzDzm{SR$@&wu;g1 zzdD*fwDm1Ed;cK4tbTE6KY%$e`6;yZ<^Jpa%k;AP@P1n#+WPwROX+3xsXqTSq2EF; zt55a%*Nr}FpI?7j{mAJ0g|_wYq;EkltIxF$lFc6M{6kw``zODC{pn@f-@exN(F1*G z>+910gI-Rz&!t~OFQ?l#qObU;Uq4xWc)#uZL)-fE>Cd2-)z?X`fo*2%Lt8(T{t9|o zeX7^5vGfnq%j(0|OPfEm&A*=hb$VHS-ICQGSbu2iD{S{W`ZK+(K775f`9oV@jsC2R zQYC*MOHQ}1Ltj8It1la^KeWxCOTUm_Rv&)7ZtD+ieS7+i^s@S*==CqO^<{tY>(}Zq zKYv+$c)e`?(AHrhkrJRv&)7V)KW#`Mc21rkB+>h^~KV>qpbCqL6%` z=%>=l>RbEi?SK6VZTy`ESKc|<~r+WQrO23z0RzE3v{}i)N)f0ABKw{K7XCcUh_YjO^@nQi@{ZT++9f1sDu zr&|9)`toJ``pfF;lq#8i|NNnC{;ipQ{Vt}L)i?Kie;?ZVddGO*lU`1@?@j*{y{x`& zG=FHDe?0v=^m4j=G5z=Svig4ZL9*FHUh-3Do4?6l{roE)>DOPj{q6ZXE%{-a`q0*I zqQ8J%Rv*4!vH3$=zmvWjy{taf@Bh-3ef^{8W%a3^f0^{})641h)#$g<%j(D42f_6V zZRcNftgru+vVQ$#^`kxCfBi#S-zv-dtLSC*sXl+VrGJQCRv*4z+5HP`^N*mPMlY*R zb^XWDe?~8-+fSkYjb2W-pG9BeFMj>ybo+Vqt?1=+`z7>!>1Fld>xEta(02WI(LYBo zs}KLagY}`U&pFPYKMUw(_4T6XUuf$)&~K)f)z^vo(AF2yXO{EpFRSko^`Wg_N8gNI zR^K`5LtEdZil2WUdRcw=_kHqg|KNDm51=1QFQ?lV(a)!s)tCInPv$h+{Go0BqT_x2 z8`Wd=sa`)9vHwv=`Sq98_Ycn3<_~T2H?HdQpF=OJPc?sQ`Y!ac`f$EO%|D<1ae7&O zs`;1GzfCWze>Xb+(02aAPVnJBL3I5?+x72s zqF?`u=wgKrgG$iRKS&^N*r`o?cd;>i$ijpGPmJ+fSqanO;`kJz9TgTYqMC zzkW3;`1P07hwnG?l3xsMeI9))dRcv{^Y298mtIb{?@s?by_{~}m;PV$a=QHk^tk&Gf|Ls8s z|NGj)fiS+X8yW= z_4#GZKQ5X-v^}4?)b#aVOfRc17xkg7?@8Z@UQV~~M}Hr^JSy>E=C+4)kM{t_TgLHZ z_0^*DkvAs$XESCGza_TcAFcTPaa84l$7@8k|{K=pPeEXB)0o`Y=v>1Y(DGl zdX8uPCm!qfQ?~J1$&X3)L9*F{J)c8c-?WzB&qnmJ?QeZ}|Ev#feJlE_>1Fi;l4ICr zwm!7=^XUudW%c2Fhnjy0{bTg9`tbGG`p`Ci)+v7e)9GdP;h(2iAKLoX^h@bw_1mKV z-a=^W8=dC!m&x+`C#xS`s^s$RzkZ>uUv#?nP3dLz`aNN`^@p~;RbB6IqnFhWD}V6( zp{-xh$otXsvijt&-Ii?jVDpEzzPPdX|D=~~e|!FQv=5Ta9;^>-eRdP?|4lF3{?><| zPpuDa{T%wg9_QCzR=>_ZNH%-0KD6~?oBI40(#y8L&EGKjVVnBU)-R*)K`*OcnpYJem%Xcep)ntXzS<-zpS38 z-~RItZGAEQx%9I7RPPU$)89xhr`vx;|0unz-kt-tne&pLLfiWH(!WkGt55a%SLPDG z{;TL^^_5CyKQMo2o4*Qu#_@jrW%c2D54HX#^rzCx>KjG#hqn3q(O*U{r`u1bzk^;@ z-^M;jHhZx3hqn25xAg1x3cYOm+qtJY|7w?d{}H{czIpWe9opv4zs&nT>1Fkk?So{q z2U~w=>q}kk{e@Ni{>iq#t$j-L=cA#mpW4>@yXa;0J(FYDX14i5TVLra?_Z*q)z`NV zlFc5h4{d$(cHS?gmu>%&^+(rlN?_|ZxA%T8y{vw>O`dFKn?JPm>#p%W=LElgvik7# z#`@6KZ>4WfFRM@W`m>Y1kX}x=-%I}ny{vv~bpJ!!`Zr(i=l>18tbS3+)jM$gLR&w* zv-i8{W%YWGYqskb+WO3V@6W2{*I!m2em~m!(AKx1??x}D+YhB5LocgOb^k`ve?l*- z|3_)RfM#2NXj^~NoBaI$pqJHmjjn%a>nGCJIMJ`4tp3cXmvfW-vl+98)`{)wmwtTx z(izXhci_^e`Pcu0qJCWDS+@T%$-iHidvwVxi=y$*BX5lSb7VUoJ$LMY+s`}r>+e$4 z5B~b8eBwiWz4R&9>&;}mR&r2T*XuHFxY_PkXuIB3diniYKrgEgKfhWZ+WI>5pVG_f z*W1Y@o7wu%;rV};^xaDK^q-EYajE(3$HuOKz%j(0=Z?^u>Hh+u0KL61t`Sq98Pmb0f+WO7(r_#&nQ{Dd^^cT^~ z>Gpf+ucw#O?aSQh=YJQytUkQocKt%z`PZj^l3rGy6u)t) zUyrWI_mgmq#9`mi#w#TMzwvqg-=n=e8t)qUp2)V|@bx4!`GxTHWMr~`=n0AK^`s@= zPrdBqgV%FoO>6PLUn;rZX$oIKw%KJ@2%pJ@Lf zk!`;J-}C$VWdHDf{UdSs{I=e%?>Nq<{i%LFvW?sI?QS0=n?2b1gtk7Tzu%u*=w%zS z{%rdo+3dl3`QBvzY#U&EB(m)vo?rZaXjHO)cz)v(AL{vc_T9d|i*x+^WIMjC?;_s7 zm~DNb?fm*Z=KWRlvik7-kM*IgA3}d4y{vv!GOulB>*YI={q6l_7v5jmcz8Yje#gPD zX9JV{!|U;A;_!N$dD_9(`?AP4MZQ1svytD3{Bh)sk^hW*e4T^WlN-5BFb^vLe|(yuaTiw)=Zr^!~T=Fn_*2 zTGyZNvK`-^?=_Pjwwdku7TTV#573XJm(%Sh(!WM8s}KLY(dG|r^G~6lPcNt2PpAK! zURIy#^TllXP4u$*M$y*~p>6%!p785`^cjBrW%Y}r?^lGjzUXQ1&!(5vw=Pw3`}W_z z(AMvJhSw{4S$!4zAld98FZn67^;yq)e=ogk``hy;)%DA!A4e~%5AV0lAKK=xP5(Z< zoNiy2eiOZ{el-)CZT`?Uf0+q>{uS%_{gc(F`hH0T`U~h~_59}+_FwHkA7s}IlDu77Bof5t4Izw()W{blv3 z=ATX9oL)}1pGSW?y_{~pnEqLMIo*C4eG$E!Zoi8Db9!0*y6E*Iv|az%Z~68AgI-Rz zA2Y}MQ|tTvlhtpC<_~T2-}_JRucDXJ?eph(e;>W9esMH^Xq&&*0`Fg@m(}-;UjIW| zKW35lpX&Uv`f$Fyp{?)wrS~7x%j(BO=O5bo-CujZ zhh9#%AF;;!({la#%jzdY^M|(i>wf2bM|wHke#!UVKT0pF4?o}9^$TtDFQ=bPFQ?nD zqTfg_r`xZguY9&&KRMlgJ^jV>a=QIy`o8pXy8Sl#m+0km`E(3$J@kLl%jx#X zKL}0U86{t*H}LB(r`wmIzlB~-w=YlsJiVN5Uy1%xdO6*`3jN{d`1#A}_SNanrI*v~ zYti3EFQ?nrp?{HHR^KIh{SIxv|A%e#`@e)o`9s_MZMS-#-O#VU zoNhn+C+{z(m(_>oYp;KyZT_rZyzfshr`z}6<^4chX^XY+@)`TNsXKi99ntbSn0tHXh>A46NegT5ubtiDauhqk`yK3{(Uy{x`b z)Q2uvKm8c3AFE#-^`WhA`=`(U4!x{C{Ct_0{9( zHh&KPg^3(`S^c!A4{iMl`pf8L^+i!1+WH}f`B!MS(aY+?>y?-MVrc7!(~qH-)9pvm zFQAvx?Z?t@qnFd|C(s{%p5H$?-F`BC3wl|7`0tnO`h~XZSE-a=|C{M$_0>!J4K!OH z+WPusynlpVR^K&x{~Fr*QDwcKMlY++kDfoFt=~@nCB3Y^MbwA3zQJF7{?d*8`pfG3 z+6T#I4|&N?p{<`%&im^0vh8o*|5}v%uuXkv>w6yMeG__FeI3vD_o1yHO@AZ3tUfR5 zLtDR|{(gE{eaT<057sY_PxjB|*!D0z^4!RFyztK>mL}uff_`u0qtEy6S67L?U)`j< zU$1wP@mk42WvzD|FA(Our`y-3Kdgzbf4`G? z?fDYUXX_7b^EakHo?h1c|JR=<+PL){=+B~;)#pU#AKLl{=x?N#)mM#vzlXMd?6H3R zpQD%6kB;UKZGGJ=@8{9W>U&0gXzRz&ucMdMr~3DsQ|QZF;P+2fAO3k>Uh<2fZT>m* zr_sym8%OI8ZT$}VOXy|wesvDK-h{S(4}E`nS$*GV{?OLO)&!iM|%StbR-M-!Ber{oa~Be@l8<{Z5~L|NNn? z-+r?91@yA|u~8q|`k}SFA44yz_t69AAKLnn^#7!n)hB-qs$?_gB|n9>er9by;yQX+ zeUE7Up{=iSs`rOq==V=n@1y_s`m^b4)642B+Xu;J54Qf$Hh+U0pW#A!+4fK8^|L8` zM|wHkz7>5RdO6*`9sMwRS$(S4?*jV2)643^=bK$Wd16?!kXQ;n8IO@cqG<#P;Xc z@%w=?r}^`t*+u?*lE(3$=Jey}W%U!H*MrbD|GLxt`YoiF)!%F%B%3|h`a@ga@(l0)LoeI@cKz!oKWtMU z+WP+VRh#?$lhs$X4}xC4JlWr#ui16{1^))z3|kgHzjoF<`2Y8NN3wtT{JJ~wp`KqO z>-qUrz1Y_$Ykgg8ami-3>(j-MY-T&Z?eu5S%QkM;r+o6mHna7it=~)EmR?rh#o}aB z-=#zc=I?x_um2W$S$(r$f15wF%|D)gAib=hZem(t5^s@T!{jJR(+WM{Zv*~5^ z;rj#YLtDRxeg(apZeO;(U%#K}W%c^|tY(`(w9Q|gKC^{Ce`NLH`$OwPTVJ2PF1@Ti z)%(?E^jFZ!>ciiUHh*ZFzc+nfdRhI9=>CVczWP~y{hrqOWA*K#K6J_a?EjYLkNT|W z`@^BFAJV|*|CV0X{C|sHALT!i{j*t{Jyg8JUvIkb`f^g@aQy7ZcKq=5=aOVRe7)%( zd1&H8z5Z-&=<7eHr9XdUt$(^LF4@d^$xor}{70YbeIC86KK%V=eQ4_^(BDEYr`u1Z zFQk{#?Pt+HM=z^S^?qp?{VaM}eZ!Kgci{Skw(~FD$gf}4rGEWo^*K==+WNZmm(a`V zYeao$>)X;7(97xvMSW=NSJJ;iFRSkr^`WhAcAlUAcl5IQ*-;x<9#zAe3M``hQw+~kLC>O)(4WDFZSxOk z=6%J>{QPD0+0pAyXzRx|_x^f%S$&V_^)Iyb87;kkhF(@5{&`GZ@{6IZA4tEPURIyw zr@#ODhb~z^ed**c9@_Wo#^QAQBKALzUQV}PNq;-NtUlH2$9DQD^s@Tu(fP|iB>QJG zW)Ht5w)d+8`22Cy$8Apc_qP`(4v%+TWLr=8`R0yfJp6n!A@YpGhx&X| z;ZlFTT-V0$m#p&*Kfl}aCA8h|x%9p1W%c3b7wbb?znK0}dU-ix*yf(yVJ|+>-qHifB%QJ`CHQ$(#z@g1L()m z%jz3O^M|(iXV4eX%j$EYKD70#=r_>I>K}++e?wc}{(8Uu*;o4glhqeT^M|&+T4(QD z(97yu*ayjG4|&N?p{?(7gZI7YW!t}2@?*SxkZkr~eQ4|V=6nAvy=?niKhZu&HhZu> zwDse=c)yokw*9TI8-4x@ZGCZ9?@w;)*H2czA~}X_W}82>_2X{x{t9|oeT9@M!-e0=ohk@Y#h zg~@oWzCE1 zntup=9eP>)|MmIR#%=yd^eyOR^##%TLtCF&;MeaqdRcw==Vx~Qp{;LC|1`akn=HvOeBVrI&4gdwp49A0(SSSRdN@iFbOxfnK)#t)H9x zuuXkv>pS=J{*-I{`pN2>d%nL9ZT$rL%jjkGQ=&e!^)2r5`3vY}^&_J`wDl|LhttdI zTSR?m>#Owl`QMJe`xEM)9293 zn!jVzhqgZFZa@FF^s;&%J@EVqZGC_Qxd&oUUfTSjt?$YHm9O>tC#w&iZ`Oyleg=I5dRhIN zlCwW>{-LcOHqh7KiC$Kp8=Ze>>*qe;{V;l2eQ`8@XzK?*=>1Rhvik7#HZS?b(AJNl zuh7x2pR7LlW2utOY<+0!S3czPH=>u-H}ib|^Cz_Rl?Qo$1HG)iYt)CfzCZng^s@Sz zQ6Jj+vGkMaW%YxjKD71K9`^NrOfRR~Po&>YFRQN?%^%w4Uq)Z~I=_Fi`tbEGFZspL z*6*gjie6S;`9DlAs}H}Pv-v|?Kj9JY7tqVJURED|KRhq_#n9I04e=wsM=z@n|Gt6s zp{?&u{~5ikK3uQ$p{*~V-$O5}?`n>|<`+WNJR`VmjP-mkxG``f+NpSPch_$Hh*aAb072mZhBdL_a~Hna7itsh7~k6uo#sY^uU~U|*~abuZAgCDX0|@G^_h=*-RfO(1*6ZBmIl?vih8;4{d!R{Ze{4-F_6)%^ykvc>cj5`+xkOWU++m@e?GmeK77As zeQ4{O&<~-P)fdOzjm~* ze-gc{J})}|(AL*|#`~r8vik7-p3NWH`VREJ(#z`mM)QZZzL>s77r*|p`tbQ~^M|&6 zAAKIZtbSTFe`xEcj`8y!NH41oKVRGYp{-v+Kbc-u-_SltHhZu>wDlQdef}@$WgD{J zKhy1lWU~kBLt8)nIqwfo{^E~)|5mpBtq))Ctq*N|xpCgtqnFj6kQ~D{v-R@z$^O|k zz}7dheSf1Fj>?1N;p2kS#yKj;O&{@2pWw!dBfHTFTW*@N}+ zgUSBcHo*3DVtf7-^89-_8h^*elTUtKe)B(1Sr(1k@x$li`eZzOJ|5rgVAo1~sOMw; zi+(;!lX3g~DBJPvd@l0o_n%K_yB;r2^ZpxpS$!qW*KF4#wDoV$Z=sjfuZjB5;rZLA zo$&mBPmUM*sGARc{!hH>>z|X1+xg3yzfAP+TSD9VpDyD1(aY+?^F7r0zf8Z5URJ*? zI{(n&`R_{l@O*Q+AMEoJAL{;(e#_VYV=`{%FKhlhAKrieL)-bUf6sR~{1)$J_2KV7 zJO9wuZ>2wxUQV~)MSm{6oNk{n&)0tyy{tZb{jv3jw)Iz|zl~m2pA+4`(AKx0f1Y0c zGVx$qd(iP#*$3Fx6WWefb-tg^F+Kc#$m+xEZ+&R%Ytf%WFRNb}y}t`>{qBW6|Bdvr z`eDBO{m-Y+)(`r?`=Ru*`tbW1w*Ju8&!sP-m(};O50cFutPgE{&cA&A<8SrrC)@tD zk{`S6gJiP@>qA?g{h{|4(95>J^*(x_4_z`peK*aI)pxWHlFc4${?OJJ7W)xL(95>J z%|F&YNH%-0KD6~!mU#aby=?niA3k5K4{d!-`qlKZ`tW?M4{d!N`akJq^~K2=Y%^OQ z+WL%-{fMXa^!q2PA7dXRn>|<`+WIj|z3)IT+x~X`S;-IE)Q7fyI{h>Ba=QIO`jzyu z`mR3x{`o`O{Ix#u^&fVdpZ|U*ovlCo^ISXs(AMu-=6xf2S@W-s<_~TC+E2ajO)skt zpD#9lXzMrAzd$dm4_|++4{d$voZpR`hTI9)who34{d!L`txu1^Ox0s8(ly7{$&4b zj%^R4BhO20?{}y3es?)8e}=!oT8~@dU-4*Mw!r&!_=Lpae7QEBykDMwSoxAwTpEq% zM;;p4&M$mFb#;e>-%rj;_U~45WdG^C#P)uwRrLS&Jnc)r{x{#@*H6~<8^bZocK<@# z^?#rKZhBe$Sy3+!P4>6*Z&upR|3%yd&o(Fjz3LwS$A7Q-gJisVGRgeoe1he;BL6_* zTYM7UiZil(|HFEh%BYa^-`R^yvQ*8C55KHK*{rjMUrcYHeTjW5CX z;v4Z8{21Qbz>l{L*E+{trLP}<8E%G4H}vsaaJl6FLu1<$xEF7T-ovBuX1oFKz(3>6 zJAJ;to$tpx0Tno`)aCOYkJT3NOIx@jAQ>XAJQ9_uyK%)P;V1Tj2`$W?U8Dk89&`I2XTzo8qr= zYrF?{z{lU?>*bpM}rB^YC?e34Rc- z!Y|k0@bxsg#oZLQ!8hR| zJY4SK`xoI^x4OT>9ecWudeD!bdz-rt-qp)J2A96w{ZEbKAF%!c?oow)yuHc)SHrfm zaO2+YYjJZt2$$>QF~EMJOJ;*&*Q;^ynhYnJnViS=i<+B9$t@&9`pTw!SitG!M@(r_ypW;nD2iL z?tus3vXA@tFgzWP$FuPayaLb14fqQUD{xc10e8YR9`W_{#%JN`Px<^8;~acViIeYV z;+qoN@2^?U`u=?xpFGw*6z5NHPryC!DqMY{kMF{*UUOF);;#ow@Wpt-3?IK0FUP}6 zT$r(9rjJj;Yw#TQ-;MVrw)GEL;QL?rs9%rFh3;!{bzFo;f8gW$@EUyOQ13JT<>Qaz zhWKB&7e4wi-@gc-hNphy{X@9I68B8p6n~F9e(d9YhWYU};ib6zCqDio9=gok`ElQW z^>X*55+{Fu>ofOEJb8tC9-e`h;&pg6-h%hy+|Ru~X}Hao{Qm`Tb6kFiTIc&{P^>69lQ=-j5B`pz7sBo`{2rWD6Ws+!1;I$9*%e6a=ZNa znIn8Xm2n-MgInMxI3IV#Bk(Z11W(-O$KQq<{OQhm(&uYe@}0wsj0^CHQprV6wp(zs z((X}s>k;mEaX}gPMqK4cck7XU{CCT`3vm8l+|S`H)!g%NqZ8d*@dTXtlpn9YJt>my zT-*rfrM9~P&g6fH)*RQw?eI2yGp^gf z`$6~u{36c7Z{cV0M|e8^8qdZ*;`#VDyb@P<+Sk7iSI1?~@%7~5UicC`u%VA%i`U`X zaMrm#{*cD;2%Oo-$KSzy@z;1ZE;HKKw*}Y6J8?_g=sZ7OcRU$Cg{w98@s+sd`R*&9 z@#A;8(0w-^kDtWL@yobWGvEIcT!eqX^YEW|%0<3^?J+*zz0KXt@Cw`km%iA?d*K2+ z5)Z`7@oKyaZ^oxQ>+{uX;m2!_`{7k=Oyg-76Ncr5-Xv3-8~s-^G0gYnI{?pU9% z;iW!)6W)Sf#%){q_?8kEW)!q`Kk}UQg&9-vrQ_UN@i1Kfa^L?`+!LSnyzf7vjgJ@L zML1`?kC(r~$B%l!U4-}Hp?N-@@uH7cz0$oL_rR}A^zkiieSF|c?%b=~#rP-umq|We zr=5>)z(ep8fA{f~_=3sqdRP1Y|H1un?#n*D6EDQqUE}+oGR4O)>EM0`PwwPC<`o~m z?0WaDcpF}dpXu!5*G~2QN8jKcg$Lj0-iD`kai8-K+duj99ei2hlJ|Fi^YJc>SMBP) z4>!5V{Q~~$&F%$w3SNt=clYt%aP}?k%F}%QI{02Z6~9{I!i?p3F0DRi&Li}BC+rH6d{ zPrPT4JM%SP|F;jjtK%+%-MR83?#r}4z7bzM#K-T(cRc2P61N`ao`J8%pWx1T8y@?( z?|;k;Uti{McP{=7x5ke>;p6%EJ=_l;JHp3D;Ct|^cq{%GKlr5YzX?ykhrjOYc@I~` z-zy;#dwSHK7KR)65oqA<59R^g6}^aH+k8;7`Mdha9g|wcfyt5@b&h`E${?f zh{w(F<4?wGUw1FVE#7edinrnFv;6oOvwZv#+zd~{bKc~5xZGPD4_Cs~-t^-wo9*Kl z;jeIaybh1VQ{VRer{Okp+>3ArycT!CyKzrksmSIp%ovHA;=1qp@do1Ncq*QZ*Wv+l zegCR&`SBXfbGOHn@l$v=UV)pu@B3Gr?frOsDW1B($M46z7rGbW%n#gU-u8YwZjL*C z=;IIKmG~{~kGJCT#lC;dIexsl_y*hxkH-bL7!SZZ@o0R;JAS;jANlcHlsNhCz2j@} ztGGL!xy1MHgMY>k;>?eI{5hQeh5Jq11Al`1;(z0T_^@|veaYVs!e`<6_;$Q*tsnm> z-0VB|9NZe8_)kCH!gW4=5$>?w-2><2QFy`+KK>3~yTQE{Z^nnu_2X~Hr{Ve=eg7-* zaC}dR3o|-z^6?_P0dL3CH~aYM@A>^&hr8kIAAS5S-1)!mt+?4Xcg=a;cgEM_0r&+x z6|crian}3Z@5SwLi=X`XBXJk}Dc*ojobP?+4&VP4+yhT7aq^$9`_;!6;9+<*UWR|c zU*Yl#?D)yw2gRr0eYh!}^1C1ZT09ev!rlMy@wf2Ea-~YX{$GnL9px^&(C6EP&%#y8 z`}nmbF3hM}!QC6z!jG|kGrSm2&+`3$#{a0|uKIyrzhyWdKXAN{Z^3g|Fhgxapu|X^RfMZ_-xC=n;N)p z!c)$5--ENxbC1C1H+H{@pFZDRj3?lY_#b#L-ia$0`+AF8cwZNnzSP|cx5BsK;jMlA zA^Zh?7XNs;kH3LC<+=Zbb2_`%wcrVHr|0Rz{hs+@vHG$xGVnh zCLiyEw|8?tp4fi>PP*AW2EUL0jvp%U@tJr8ejndCge99PBN z`uh0UxB$1o!*E~R^-kaaIs7hOq`sez|BBb(S|9uTW$yCvEAS$GAKr{7;~xEe|L^d- z1Kc&1`tiEo<8F>;-|Oyyv+i?`!`1O}{MA4o{}q?N-(CF^KYlaZ66fJN@G3k4+n@8= zwgVSD=ssbYAFo=W`#d}Y-+))+A$Y1)a@58s?%Fp=mhv7PS25yGG#l7&6pZoEL z;4|?gd_A6zhu|&vbzEkQ&p#K>ecAmH{s@1CXHD_(P56=`_fC8*F1^y%SMMz!uZG9s z26z%~gLmUz8c*K$+cp?a$1mZ%cp;vXysx+I2V9uEFSo7Y7rveixNeD)?`J0Oi)~wk zr{mRlHGXQ9^@SNVllQ&0-TI~b0bKDb_fk9;*Z!yPf6LcC-W$JyXXE_UK7RCE-+z3G zlh2#U`$XH`!A+9SYqqVzE%7h7EzbPLj+c?q37>)c<1Tmtei6?|UPo=4k2m10cqjhr z8bAK<wUXzFZ7cB*{5vj}JP&L;kUS4;yBjaU zFXE+mDK1W)7q;!jlauRe+Y#&h_=o@3T?uF6lkji29v;2d_dg%Mgj?f*fB1M;+~rUA zy|^bHh5O-Y_yN2SkHZ^qF)shTuYY95;U(vD4!-3uck{&d{&xVrit)Qk`S^`^DDI2f z9PZ-}8E?Qv_|hYM{{^^FIrles68;sJKg!1|uJ`lF!l&VEd@*i<@5J5k z>v&H^Ki=1P$T9AwKlt(At>o^C+g5fzhKq2K#*g*!b$Bj5YJ(pyhyP(iLp&MZhR-|B z`$D_{kHF=s`1n*@znXg?Zj9I97I+uV!Jw0(VJPN;z-^Cx5xGOT2L?;Gd1@524-x@Y0FXS%oJPW9cVZt=c1&c{RW7(5;?$FuN}|M9*U zx5m5iP+aLOpRX9#$46}Sz6)-S2jW2`PX7Cs_&L1w96#PnybFJbGaCB%T3inQifiMn zB#9d3v3#&hu`JpWSP|H$orybhPSPsiQxm3YlHK7J3L-NF5L zJRdK?#rS7jzLW2t^|Q~n7N3tBUC;4xS3C*#%lGlOakm@YOL0&9J?@PU+u`$#$2IXh zd?{XvZ^i5J<9IuM1()gK^M8n|;mtS~SNO%}Z-sMkCww{XjUU8o@Y{GZ{s!;C`*4}R z`Fd*Y^!X~`*0?$@z;*CA+z@|=o8zBx9zOY3KYk~CHSUfF;MrY$Jfzaic;$lVz?df5G_#_?7>{ShC}+~dc47oU$?KIh|I@Nhf=Z^EmgXeznrRe|ua9-;3MhiFhFX08hc2@Dg01lplXH&c&0D@cFL8t8pP- zd!&!QjC0Gnm*6~{dAJ|HGj5It;oEWEU%Y=F_s5Iy7`y?`$K^}=@kf^Pz9DXSl>27f z2|tPF;?HqrdEb98US83C>JfhYN}29WI`*-Ad%0I$P; z!!7^nJyk{tyqsxqtET;dmr2 zpXKxI#X0zI$=9W}o`(1x+yoz!e4T0IEpcz$1+T-santg?e}6m`7vj=K`}k0N2cC>S z$Fp$V3cmjw{0Lr%H{vz8L-KX7t#>Pa3-7?$nLfT3KY+^~=htTou7$5W#`n*~ui!@b zPuv{mCtqjV{GIVK+zZ$JtB?1^WAH${0}sVFRQCNR;{|vYK0f)n+~%8u`{0FmIo^hw zW%>SPs`&X%z~yn-if7|8C;0JBJ<-Rr@DN-L|BP$n zw$*+ATs#-&;gf3kcxQYM?utLdy>R_(-+u_6h{xc4cs%ZLlJ7qSe}HG-xTwU*e_sE zpNWsf&2bHU13nG+$GLb^V!J-C;FlObHOG&?0KbJ-;v-M<@lE&|{0m-D$Hyz5=Ift% zy1Qm#oA2l|+;tiMwx0V!{BL|6u2|p4@5EQ&$MGioG9GZ2@BbmLpX*+YAICr8@9+_I ze7#-I_Wi5kwYWb1O9LOj1lPe`@l*Igyc>_lH=g7DLOc+!#LwXG@vn`1|82PS`R+Zq zd{g()r~CTbUg$mv=i~EmgJwRSkNe_*cp)BvJ747czkqw=>3A^y5HH5-aoOhH|BM&n z%;fu)_Wa(3&&0VG`~FRF6MO~ki0{DN@JQSn&%gum$9O3I3D3tB&+zpuY~k}a!29sk zxOGb(zXNx`!*N&qDqe+`;98e@{~tUSm#^pZZ^HF)r&hjydps5Q##1iy@h5Qq*6ufO zvo`L}@Ibr+&%qUv?;G3w=z4|ke;Tfr=WdBN<8HX^l|EjGv)j5S;I4Qs9)nloa##8O zdvRl2J^8+}t*0lx2v5dW;Ue4_e}a49O}HPf-p=P6jO*c7aQ@Xk{t>Qpjk{FxeQ8_I z27E5gy4J_r;&-oe--;LELcF(=k3WmcT<@NNYvQl*MEnPyj_c+6dWLrP{(4+4-#r-j z!ZUI88-08w9*%#*O}qH`31@S@_yWAEtB>d7tv9&~@x9&LFW?n;AzqC)Y5Zp2|Ck0o z-)ej|zPG!NUz6BAe_VEpyF26g_;EZ1&%m4UXSibz?|0&b_{4L3{^qy(cq^Qb`{KU% zIXnu#hj-!cai^YsydxU=@oV1ZZiwsPtMQy(KHe8^!%ySgcs8DRyYK%s?pomf4VSya zef+sT|5Dr-=lAyUJ8-8y?kDj){2I>e>*L?xYWPo_gHLYc^EJS2a5H>2ZiAo0#dt36 zaHr3=4rlap*E!FRKMP-;*q$Gg?(*@+82<`S$6N7dB`!?z z-hkmjORb);}_wb zPrGl#`|$mE?Pwo=9&g6);L^|d__w$KAJNq3?>ffE&%*cO8}KOnIG%uuaOG#c-;4`! z)`fojnPYvt6>dMy-5>A5vvJuMeEi?IKd#u!kJo#Gk2l3L@vV3d9)p*?==(3gtME_i zC;E8Ri~RVza0}e~B_F>N--}r@$p@F7p{7V zAHVrjA8&&*|KWZR*TFM!AzqKC;G5|{deH%Z@X)^@y~C=@xyo&UWdoy7FYQG#rPe(4p+{s->3+{aho$#^$z{F#quU+eP~;!APH3Lo!{o8jkh z*5^LH0C&Pa;zcWcyi!L$e%UYF{qagX8rNLq)=mu0salo!nLmV z^>pikN*I^81KZl<3>OF{=@Nb{2pG8f545m z`2I)T$nkMQycyq!{~vqz0v<(mK7M?))S@Cryir7oii(JkO#%d@8b|^JxvV50Dze!m zn`9w3cQ+y6E#9dYiinDeNG;xxQi>K85fv2`F||n1T1C83iy9RX5%K??dB3yC&g=&8 zSAFR7{CODVGv_jAZf9oBoH^U`KN|mfd@Ejx-@@Qbry74Y zUW8x3+whmT@H36yIiUG3z-c?K@tuYr zTB`Xk#+f*4r-ql}tMClG2>%ri`(ERJgs0#nUt0Y^8t@|g0N#dQ!)^A{_}lR2{nf{XH2>6Js7K&>T!ZK0dH8Mo3hvrQ z)9=KE_@qgi|9pHl-iR;4U4Nu^1O952J~ z+UfCr6`EgWTTR~!*W+<`8NLi}#}C@+57hMQ?DY76O3i;6_TugMJe+xuroRf;<3)CQ zywOgNe^sUV4?I}Y55Nt$06YI1*-Hufc7Mu3jU|017 z!n2N3PsKHO4sO6p@lyN_UXH)RYjEc&y8KUYU%V4%^Q*=K@Em*%UV(d@rt#miEbZ65)CW&B`89ZM?XB*E zx8q58U8;sJz_ZiT8*q7s`tWI*-*P+#d-`bjjkpj$hb#JN_%}EsQ$6q^&2JsP7%%Ow z;frx2{upn;Cts}TI}gzKMK}x3#Wi>XUWPkd!t(KGJn?kRZz?Xwf5g+V=|^quw}NMA z{3d*Du6h@~9k;(!<6k^P!%r5Qqz zR-)-|B>b$P`VPVa_(8%ON;Uki_;&m}ehzQI*OzJhf8#Gg>hJIglhp@Zq2-^5JK>r5 zWL#0L@dx8uYt$Fu`S>~9{Xz}jYPrGV!-rmJme=4p5BIPvugCBRyb=fTs<7sFDPD_j z!J{G?z7UVc&*3Qk9AAtNze?Bts;H*V!Z+X`?pCMa*Wy(CARdTc#?$Z?d<8!6YF*xS zxEG#p* z79V-7E^pj4El&o%0*}S_;Cj3a--%zwPvVXEpZH7s9d3J(F7KG>y8H}05bwmbxXr~H z{~^2$uf_XcqTyfS_PFEkH2(qk3|xgP@HO~OJP$vEx8slT@Jn@h?XJ`OC*Xc~687V@ zcq&f2PSf9v2jWNY5d0$c;rDO_KJ0p3{%kxFcf4NnUxF9kpk9xs%}{@jufW}I(EJK! zYIq)=h^ufZo`ZYcr12lYeepAR8QzJbvowD98!11|!WB1b_;{Q%TRj=Sj;G^+w`lkS z_yznVZp3Tx7W^?j=vGbNZibfU3_KLq;Q9F0+cf?gxc*-CcKjIb^n1;3BOZv4x=-U@ zh-cyDxX1k({vjTQkD00Yg>ep^jU)Imd=E~2K=a#x2jY~QG{0eZ04~5axCYP0Lmt%p zmg7{{hd&FXPAX7kC5ic#G!0183pRkLdDC z@j(20JP|*R8}LW?9^CO(&3_dhf{Jfj@RQ(OLY1B-KqHx z#HZqk_-uRwuE&e;A8;dn1%HXR;v@c|%R6l@%fsj4iTHQ80Y8f$z+d5)vG*>`ZyUZ4 zcU`K>yA7X#m*WZe13V2MGEeiHgZtoRxDdaEXW*UqQQYNGUH+$d0zT<(&HoNufS2Hl z@oKyPzk^@F+wiCO_{Vg4?dNO$qwoM+gUj$N{ChlPnWkTY=iqd1HUE$B zNZj^GUEamG2YvvLz;ECxy#E5tZzfK~OYlUz2G7Tz;Y~PYxi0_kdo{n=__z33JQ;t9 z=i*)XANZiBG{0~0QTT-WH2*GmJnn(7#s&B(T!(ky_Rnbk2i~vG%lF}v#HRgV+Orz& z!`I-8@B{b({4#zGZ^4H=p!s!tPV+k*KZHa0fK?iP6Yh>5$HVa^T!9aMQ1hRGd*g+8 z9A1mB#ZCBS+~Ij${x>)SANP>vKMtRT>v06%f#>4o_&NLz{tx!NpvybrVa@+|JQ(NT z3vnsF9Z$#4;)n2Nyape-Q1kx`_rWPI>hdSxG<+2ipN@HF7(@MCyAUb0s6`!`;W zcj67W|0AY64W5s1ExzV8O+OvaX;j~d@4<`k3j8#F`5zj;5wFAV;U?U9kuHB19*5^` z(DY^afj8ClcnSU;UW@1Ap6_b>KjFUkSv&@B#BDZe{O|E}-1SddzQ^zdcon`Km%OLx z7vj22>Zfr7ejU%nAL4DFYW(fk^O^eK#k%~?co-gsEAaySAkJvg^vkjD3-xRGJiH0l z;cxJo?=*h9KkM?>JJ94~2mfc1WPza_f- z<@j*C0guKz@O8M$L7M(9{7@(LV!RYTha0iyFS@*L$7uW$aTo`1-(xjAiidSkUyH}! zJ8%_Vh}WH>@mJt?a3kJ<+bz}dwC|zuvv4WC2w!)qhTn*1^;F-D=i)!(W%vbr{6LNW zPuvqX;bFMm*dXA)%>2u-Of<|4KE$4ejl&EU*os%(U0l!+78qB`S>V2 z12^LNctf7XUxGK`Rd^R(k2jCe_?z*Ucn5Buui;1kRm-yyr{kOg4Ihic_$K@iUW0p$ z)A;Y;0q3Zja1P#onJ%voAAzS|pz%+_vv4L}gvZ+HCu;l)@dx;3+`+Hmui@eNpvQIj zZ3;EKGfoMpd*Mzv3-`ri@Q!kgUxM3&)OENkz8Sxc|Afa)()jVR zP@x`Cumt3UrXW=Tm0AGhU;(7Rprst=G0u5ReGi_CSKuT5s^NdfbMPnl zm&-JK7cRy}K4Z!&z>o} znfL=d5vQ!u@Z0e~{5L!Sw|h?WtHM3;70+w>k+=y*@TwQcAE&&iUWp6w$M^$$=qg>_ zR(u9ty;{>(;SKm!y#GrY{w(f_|BXxVVb5#+ci`XRHZPMu9*6J58}Mp;#48%V2_KJ- zenIoU2M@-JaRpwEXXBUglXyMeh(Ew>Uex@Xa8JA)PsTIWX!#z(pW#Nl6Mv1{zN+!N ztk(RG!b5N>uD}EF&3F`k3>V@JxCVcX8}MN->GEdaK6oA;j~C)AaU=dS-h$u3-Ph{+ zw0~Li&%znlhtI_m@illlUWgyUf5T7UukjY#yr$);##wkVUWm8it+?wN z&F_UqO@9vV{JQ#DoP`(T@%Uf393S|q=2wR^@C-Zw--EBhOYp;ZC4LF7!C&B=_~^B| zye@y&^7g~M@Hkw6>u?Fa1z(4k;XCkKcqRT8H{zpT)8%i&eQ<|$TAnd@7_P&m_zoP! z&)}=@W;`1o*{I7~fltTVaWU@ohA#gmT!CM}PrRey-{FGy)II;E`A@)Oa5-+k3-Nrs z96yae!0+R&_<+|n|IV9O9`1?H#szp9z6a042feT9*WmGZ2fh_|{ktyjKAel2@MP@y zK=Yf4hvP@_dH7A-fPb-${Bcjb2A_{Vz}Mn0@gri>-)GXty8QPE&)KX#@D0uXpikAQ zI2Dh=1MxImf*-(J@mu($&o#e8)@%MfaTZR)5uAx{!V~eI@pSw#o`VnnhvvTtkHzhq zbosa7&iHlQ1D~`()2HD)T!0tiwqI#}>+n(ddwde^^rq%lhzH==cmm#qFU4tFHUB5@ z8Tdmy9JhN*^B;pV@Z24mK8zROyYXWDDt;Y*CpO2&5&QkhYTp_1PtCvc{^~j$#rNU{ zybiDVmB!zRH{pJ7Yks}jYIq?&17C?Zw$tzj@UBDDui}C2)nDOZ_~?IW{snj_ehk;( zXYu`bON!>V7WX<#{WY$^$G)Ta&&9cTHICqchim#j;E(WXycKW5ZI00RC%miqr(hrM zjDLrh9;xvk#lwzLe~5j!{YK4i2JVCJz!%{A@RfK8UWixV_4sA{J>G^-d{39x{b()E z2s{o)aRXj}H{v(&z>b=JC$7icHfjD#ah~m8Yy4`w3g3(%9=iy87&G;I;08jx~3Ezcp!EKJy@cH-!{8wCfyoRsElkn%38$3~bz-F_2`8{BKtYwd9F3!Yf zbkqFu@i1J4SK{B{m+?Y;)QOsY4IYjU__wZq<|!I}23~cldNLl?Q#~8Mo~eEkuO6WO z7hOfqBv(%e#haB}G|Iz%H<9>KG_Txr;E#83t zgm>cg_<&r^-?K&Y?}$&v192XX;%dAQ-;cKs(fnS*orkJ_z!US-XMU>7+y5+eEq=hK z{sZoCwt5X7JVw0}Z!S=G|4j4SI96SNx8Mf675^FU#QzkV>+$CEHT`zN7fw)nKiB+I zCaO#D2z)D^j$g$y@%NS+JZBVZ`rkB}{2Dy-ahhe1=QW&#J634?QMd=5h}%_acs+i$ zMm-C!!3*(v`~u#HH{zW*JXD*WiP{ z((+EYPQ$z4OR*Qv$2s^ud=6fSC*jBNP584LHUGcjr8leJz`Jfy@4`pjMtQbs`MTn4 zd=j37d*Yk%0rNEdGq^qe1aDcO;T^x${I}vkc=f{?UX2^^9K2|WhQELx!(ZSP_?T^) z{|h)1uf^x!_4so9*rS^N!}!)^>NoJTC)GdTi7V8ne51?j_KZ3o-?~bD37+tx`hL9j zW%b|e_^+zJ!yW&oK5@I|zwz(t(YWXz>PzwVH`R~e8E>oK#y#IvAN;N6_wsw{0k{!| z@OnH4zl~qSoA5Tg8K1aA^ZyJN;H~&dyaWFgdp2o#{(}#|zxht{Ylri32YfB=h@Zq= z@aMQ2K4GWk*8`hz{!M%Nbsy^Tr{YgGs~2G37WHfRvCq{z@KIl>PyAl3@^lA;(y^C_<&#N@+ywj{6o0SuhrM%4)_tg^LPz^12>(Z z{vJ>7rar!n=06h;#fwkU@JYDi$?6+%S8RS~!km8@-8KAad&Iv>x&75D*sHC}?};k9`G19f?AGBrOh?upN{EZ+;_ zoAEmQ3eM`U>GwZK_n&8gdLUkXy1Ewc#0&Ajfg1iDuFp~rJy`RbGgy5&_6$**-w`p# z%f-0Kj*m}lr{PQSxp*C(g`4nemOY;KLpA@8@N)b;@n6749HRL*;!`cl?^WPj+~FL} z&yPFfsdzZP8Q0@S@FM&#ydM9$y;;8e&hh!0|8H^U3F;s&yg)q@@0_Uq8qY0McRp0} zTV13cg6}9+Pr?u28Mw4W!ka~dS22aW)bspiVxES}S)bLAi z2EGknjQ@dAP1M78#5ei2LA&W@`BPcKA)|Yw%n6etgs{4PS%D;IHrue9E!9 zymw}6{CwQ=7WKt=9KH{)#&6(V_!nI?zXxvB^rzyN@kH#Iqv6-#g}198#RuJ?-h@xW z-{OKhH9X}vy1a?_WL%EVz+pTV&%kwf4!#RtahK-*Jf3*BdL6#|A@%$C&)EDfjJY1( z_^^hz?W(?csk$@17pLLbk81b`yy+=*Dc*t`@HTu0_N>tOOL1rX0nWi)kJIvWTB-4K za5r3qw?C`lx8W<@JL6*%id^_6%&zEdo> zfSwK5{4S7LzpRfm{t8@(->}@^X~4TkzZmCrXZzqn?D<&ptHWLK4Y&~BBR1t}z>Dx= z`~vYk|JM9A65bVW!9LvP6wPn^CmKIRY}RigJ`p$Ifp|X7$4hV-_WVclyA+q>nYaPp zhZp0gEH`+b#f^kF;g7{;{ZqDR{%7`3*Wdu2iI?Ff{1#66RMV%ON_t#?XX1x(6Mhw^ ze5UEU^&~wWf@k8pa1(wSr+lvIk3Nm`xIdnWXW}Nj1gA7<`U88B9-k^U=gWLtfE)3} z*z<*^Uw~8btCl^UIrvR+d)eOe@h5~Y#=CGMKD;-_H$EAse5uPDEH?S2;(2%`UWHfU z-=u2%u3u^TT(LPmYw-D&8$6feYQksYs|jC>7ZUE-s`;(LhvN-66@QM0;U6qFcna~M zUftf4@o#V)J`G=nPsh{oS@>prKAwjs;|K9YcqzUSKZEbaYw;qy0k6RC#MPsOL<0k|K|!-Md6d=@UlV{sk!v z#rSIcH2ytai*LvO!hgh{;>GwE>AL>U;KT76e1c_pKZ`SQ_ieg8N8qe))FrqOUxXX* zEXxg^S@?d!7vm+kX1nJ1G_K#Fehsg}AK;C62mS)L%h2=9^PQ$Y-g1NIFx;1LA0CMt za0#A`>v1Fgz2yc^6MkIW{+Aw4$DO*oS8xvg7rp_1j+f#6`e^zO@ZmV+d(H1eJP`N8 zXexDs!{m*I}PH2+yR2j7cp@G?9Xzk*leckovH1@8KT=HI5TuHOiJG_J=z z@B;i>+=zX6Coaa_JqKFvXXbMZp_C%geai`(p{`MrTt@n$>$e}|{z_WgAI zmg3{^Mx24$?XUR{#hLg#T!Jg{One#MfN#QY|3dToBc9Mk{TQB(U&2THQp5j=v+!ql zJoaSj`pm~2@G^WN{s8yGJ8>S)JV2LsK5oEOcn-cCFUGU++xULm_E(zU6F38}!G-u8 zT#uXZ0=$2JUB4~(2;9A`=6^E23J<^=@kre6K#gCBqd0(=duiK#-zay@|J@8UI5U<0duqQ>+7ve%3!AZHLcmlo`FTjuEM*J%7c!K8l9?rpE z;~VgSS-L*!@Uhs_P1AdEPn?U#<8$$RT!}a1%kdE>YJRuiEc_s@z)#^h_-}X>{t!3e zZ*k|7H2*^e>G}-A$KfdMgXiNsyar!@k2qQLyAWsLtMPPvJ6?((!5i^2xLtS6@9%gR z{t!p;H+V5VXfVgyDVqLR+!^=A!|)&+#rb$X4&tr29(V1b`Co^#@LXJo7vXxm5--57 z<0kwe9&xJXza7uV2W9K}t-+mf*Pa@`H_pU^a0AZA3vm#)J5AG1!Nc%%cs9NZZ^Vnm zUD|s*jkg?R-A})0!o@Xrso%E4@mF{=-akjvXU^C7hhZN+MQrk0dB29AL3r1P)Z+-x z!jlPKyimh0CA{lW_05E*JgUAAr{X8<^ncaxwYU*~C^qHEdRoJG5T5mn`mkJGpF(^J zZd|S5gK!fbFE;sk{-)uTgl~LZeU%;mE%lu^<)7*$I2FGnw#xUuhQC92)`#k^aUni< zh?ci$i-sSEQ$AJq6Px@RwyH-EUh}ou{LZ!6|I=|8FW#o%({ai!^*o%4mx)dOD}Q;g zb^N?ac-OY-k8u{>N&Ll!YWQJ8b@{0&>XWb!{}wkLt>FbYrK5VX*xLSG)eVFf;@fZo zewg@8Cu{tbg!{Uy*WnucAL4K9t>K0qlabKUN-;BqL&H1?< zmlE#D*ZeOdyd%CIXX4wi4?m0>$7=egaT8vL3op>{f8z%Hy&bY-wDJlEqt;zs-f-i%Kiqw%-n2JEZS{Qil{@qYQb{04k9o?ol+PZL}96CO->N}Yy} zC%owrbtU1xOVwB68hj_-c(sQA1$(Yhzli5gSN{{Q#9xX{c^YSG_^%4I{Ef5JU2qfb zg;Q?U@H50FeOH{1XWpXWA>4GE`V#EBLw%F&x$1jy*Lmv4?eur6U$x`kquykDf%+S< zIX;Kor*1b^o%x9RIPAlH@XDnco`*N$0PgyjhEK&=c&6B_zi)+x-%I#nyd1B5LBs!! zH{wr7?|D(fe;|AqK6IRxza0MtH{cAhS$@-6O`k{j^hUKGH~m8$#VH%q*WvDXF3!S> zun(`osT(!@TXs19LTt*j@?#A@;2bS~;V0^2aRbi4jbCW^S-1)N#U{VPZ#6th_+mWW zPLJ;<{>uH@S=axigm-PDeueNXya^ZLZ%zCZDgOZ)|KRcJXYjG&_7dKRd*PJ!8h;S( zh6}9p4W2Aqgy$cr@oVrhd>KwTR>NoD?szV4=%(Qh;W_wm+;pmjuf}bAs{ert)72m0 zdi*tR9H8NC&eiqZj8ny3QsjLDJ{Pw=UE^Ot{FH3Uvu3$#2wd@3%- zW9;yNrZ2+t%hh4L3}1m$YBYQn?vCf-v}DWAVyH4eyCJ;4^UQ1`YS&Vc3u7 zzpLR@cp1I~r+lp8H{kC0PTcUBhChVo;Ky;(*BZVWx80`x2QK_x{SmImU*pC$hgjFI zHihhed^pZ(r{Txr@z{$OAFkn9cr_k{yB?$A6L2P;gl8VF;q~|dd@c6$(C}MvM|>}? z@oM-|JRLuWH)d-1>v%hU5Bst-yb0IfAMkYCKA_uY!%&Ui1*eWyXJ8-B!R5FBuNw#LY#^l@NhgIm*AE7QoIq*!Jf&w{3VtfJYDe%cxG6`-@=P=n^IGr z2G45TOWgi2k7w~Tjh~HI;!$`No`_fDYTSq~#~bi1cq4ukcf3fK_cHE^H`!jU;a}tK z_>eL!Zz}!`&cgk04lc&S@HFhh*W&^_2am@O;tBXkT!>fWa{Pw4O9yG+#vkEEyc2K4 z9m+L+6Yhw&;}db)r*wPt#2s-O?v68YCO#8q;Zb-PF2o~n1@_@f#D_}%cr#9v`7;9_ zg#UoAZ`AO|@Y1){FX7`}Rd2$x@b|c4jfNi;(&e3kz1aK?gZYz#N8xkvxwsNPcCW_2 z3J<+ceHRX`Qa_5HdrbW|d?Nl2p719P{~phLRGl(O%bT}SeF8pynK~1H^rU(O?)G^3B2%@q_rrH#Gh;c;-^|Kk)j;)t}%cCe7yqn2e6p5**9vtyo=W&o zeAwSK{5*W0(=VVQ-@0yYkt%5W_&l^#qskfzK!y|gfDnT)4zq^c|!d; zHsfZRKL=H5`NL1CkH>EWPgss=aJuJypi+eGQ8+TO@BM?ffr#jZmjw9B2L4b z@D)#M__z3j=hZ3ITHZo@D!%Up4IhNVe^H;0&F>JHKU45H)^9p~nC*2Zev<9G7#~S} z@*@8BSeg^@MG}vtgjbe%kl={gGir`Ygv8>KgIcc zDZYv0e-?i9VO`$c_^3zJOYjuJSKtD|U&D+4sqr`BX)N!1{2KMu!58ZKWsu*A*vtC% z#|y}RINrwb=g0lXe;OXh`pm#J)c5o7b@*{yk5}XSIe*^8?{Yobg=?w*JB79Uf2Y3B zz{hZW55c1eKNq*pGtjx8h()LWj6itxAC`}&)e}M)NhAG zwY;ZLpLfGS>gRNP80(jfZ==2)iwmgls&V@3dVF4uk7N7ZhRwLG=FcJ=W_v%6D=6PP z_ymrZCj1u5Yg4P`Ka~37NPHLdVGnG^EjE9$@L?P;XXC%KKa23?lz%FI4c~|#<@~r8 zd+}5FcIvY?@JH0wU*KO;z60vC{C9Iacfyq~YI!s8zo}32a4q|@2!BEROYk7-ui5yI z)Xxv&-{2Q;ko@1q$5LN!!!O|uQ?$HCvVJGvWz>HI@S%7lo<{v$gg0`3ITep!``n06 zrabd;SN7jy_$%tOXYmH=vvqhh_5UUur9S+^Sf0P;`?S5NL%q0-wAb=|P`X%dx8;i- z{gdr*fx|(E!wz5V@NEv?g7pr9x>7VNy zzFjR}Oz5BG4zF?eZHKoxeAqOr{IUG{I6TDRGKa5m_yLDsaQIENo_w+jpF8}6dVhQU z&b-JfU(5{--|q0E4!`Db=ZoX>D|h%W4)1h$&?WKd$2nZ$aIM2PI6Tkc=NCbS$Ch8~2*1)1eyhU^9bW11tLoVD*E{^K zBmUQp@LyhL?T=XcqaE(ya36<8j_!kZF`{x*kPjc9+j$I#yI2>@e-r?V?WA)j+>e%tI z*x|oA{G!AEa`-ccJ(tI?Ut5P$9Pa4waSos2@aYZ@c6g-2`3|4!u;1YlhbK84c6g@4 ze{}d6hyUg94u?Bj5x@PqJAAssK8MR4zR2P09lqV+MGh}_xY6Mc9RAMXL$8cqpA#G& z;IPl($qrxX@H~eXI{bvgYaM>y;eR{)xx?EX-v6rj^*hwzP7a^!u-Dsl#78{Jq1!xH^9S z9qe!ihd(}3zGar_8=1Dtv_qzyGJP-8E}4Fi$&=;r>?hMNWNItZfifK=)4?*elPN`} z4l*4s(~&ZLEorvN)L#C5s7!~+bd*d-%k*oRI>~gbOkHI9jZ9r-I!>nJWjaBoZZe%H z(@8R&EK_%xPLZjHOsC4!Q>N2o>LpWenNnr)%9JKkx=a}|^^vKsOao>5txRXgbf!#$ zWEw0}woExP<;pZfrlB$olPOQ8;WC{i(+HVH$}~!*(K7jDI$NeOGUdxuAk$cx#>sS! zOygxbSElo1I$x#3kM49|D70MKlsYs?`nMz~|%2X;-nM~y}g=Cr}(`1<{WU7>@ zN~UU=YGk@lrm##AnW8e)%2X%Q6q)K}nkv&YnJ$v)VwoyAW%`Fq8)SM@rnhAJr%Z3l^e>s- zk?CETHp=v#Oq*o-K&B66`begK%k+s%|B-2nOrOg1nM|L{)FjgvGJPr2S2Ast>G!f+ z`IGg&{QEnZ_RsQo{x1J-Bmb8_4ISnG$H>%KrhYPI%G6(`0WzH~Qp@$M?Q^ ze0TNq9vcaUBfX=+NVIoOb#ZNFuqqnqU0D|?naqD9!Kz4g*k2N^>s?%2QtYqu_V(mu zk5BEN*{e7%`G`_BBO92lEEZm=nXr#uiY2}Nqm*4fv$M$4kgCaJ9{ku~-gS69f+tqerNp?VMh_gB_d zL}M|^0+p2ke_3s~&TKAO*Kk=;pt#ul&tDO$3`xwEbE`uw=T5a^#?Pyi-RCb0lFm{n zLU}Z=NHFTJ3DpNH{H2vdGqZwKfuafu5vno^w%18_tS#NMw)S$@=8qlhO-~(~-P@zP z+IFwvnwq%dW1l_2amw@-Hb{Oq*cx+EdqWFa|8)8r&ilbS3yZ{KsuL($;i zKt-UcI5=9SWHB@HWH0CXy#1p2C6jeEq;kotDy{Z;Q?p0bueR442}Endax%zSkn039IT1@qvqU7wIYslN0jsTTWK>1nynvUtT`tlw~`L=4IPv_$q^*GG*F@;&Q#uhRx&xrOA4xUbA93JO80WD^d`y>6HFvmPJLx3 zn1$rmgyaA!4VAf$_f)g<FkacPfDk%v&4`M4=Qzi_y_69jma+Qi*nLNCo23c#CYu&cV6)yhJ z^_nwVkCwcun%Zb~#bnnx?)B;>%dZFqYn;b#KkK9zZC_uTH@5Bx^Ux8_b=D2uxWHmp zaGKOAvP`|i$$oUyAKpH?HiPn~Ru!8A&sivMx^*(^dJS_2d#&Ka2ZA?Ewuluzq#{t} z+M%Xs&7rQ6r)s7JazSz@^#y7p!R$bd+~@?|p;GOH5Q8?Clh+uRPic2i%;Cq9O2gJwu31>rzdMAm6cbtrd| zZ<5|kxh~Y+e!2#+*rW5D8#%4d$iU=aEJAf?Ot9D-Wwphwy_J@p9Vo7?kQ>q#(FcWt z0cW1x46`w$QnELMtJX5BAkV7u->A7`%MCequ0|Le364#(s!+!{n&y=yjExjIx43JA z%TXUFktK}`R#u0n%BHH5t>rl1GpyR6Wu&tb#4@+LdP|VwT;DWv!>s3@IS;C&#+F+L z-L(bzv17z6wqRU5^O|WIG4}Omb*qeWuW2>7)KpZ+W4gKKxMp~nGbK=G9_3raiJ0f* z`kLy9obW_4v%QZs*I&g3=05UBX;xy|E({oBI|!a+WVC-}rQY=GQ$%dWzJK%YEHF>jeR;Butx5BvwL2*Goa_pU-MxF=L9L{+@8{jA zcK5{ST8wqw$*T;M1@lAG;05C%6;$k&|*z?#MuWZheipht1XV zK0!?D^d*uUX^FElH4-_E2vyk?cY@r^MP*P`prX1=AE1+EXx+J)iXy)z7?j)73a$kS zvZNYk@%d4?=g{k&JMK@?G~wR3sn!)t@BX!Jb{EB)Y92@Qjw5M#t^2*f6@lW(BTVyb z@@-%?tMx1v47a+iy!lmu8X_iNsyAP%jNQiSJEA&Jk`pWqNV}ueij%x}eX;`;#S&GX zvVEq7P>(ig+i-2Wq>UTyn60#KxFherc_Xi?xT01XzCCi~l)9ruv(3I=*SU*q)pk~$ z;tJDS`Vn4lw%naWgJY%Pbfk5{jPRy0%QU9i^XzCc&+Ceok(%n9*C*ATROS&amRovk zRw@gPEwX=XhC7j6Dm&5Oba&2PcO<*y{WR;5BhEeBKX!17qBgI2YOG-CEw;wcY|0Wh z(_T=^nPcpju~p46W!#ekP}-GB1I0oA*!;n1*@H%=_8vP}(iZfx?#x^49hoUh{_#1E zjAhxPjIxP-bdKIwhOzCKlWumykI%8WjLlifQTgMul*HNgmW=JM96iu~Y%xu0JI@R~ zTI@Fu94_&5?c=4zTsed61BOyb4su{7oT=$Y^~=@+BX;Xz&xo}k#%9C;-J-c~`rIZ#e^G;FHTX*ndr0$@`&(!jaEQl2-HYZl1<~i|2@-`>ZC3y>CX<{>+ zNn(wB)>dYFcnf~)%1O%It(@1jaxy1YP+d7Q$1bTg#~gC;o5akCPi4(C@dyOn2v%;Vx>1yAXZkVLRblurhyb zq$o|^PM6eF%NreeFJ{e2Z#l;#OfB;l2P)<5c*JVKma8x+1JXWgy-l-crTb&E3dY5q zS9x)gMvj(enKW{=Bq_ammXQ*X(mn-AX;VXEXQYP47z-U~ov*Rbk)A+F|Ni|l1N(aG zid{^(v*n-k3{goVNtu62cn|J4v|(WE;B@H{)BNv!|0cghS!v7g(w1S?C06areSLGx z>{wew%ei~gbP$&=!82=Ic+#i#xLC;_*yExleZGu~mH5fGWfbf3xBEN1=8e|7`JZ}o zH!5zMHeWpBX1gvS_G|f;Wl2&QNz-Rud}g~ZZ+^~My**_?zw~4(u9lZ3`~Cskvar?> z?3HHY9Ev|?RDLww@AvktlRMMuu=G$E8Y&Cw+Y$3D9vPMI?;ohBs4fneV0p)oD}Ow_ z2i4S6gk+vHjz+ZWTCYG&O>cSK7qvRYNe=XDE2yrnC@z<78^ojOqF22vkC5KAk#O&# zP*v|y;iL>j!Sq%mDC z%IRr=aGk%bE_UquBh|%|rJ>whrTwNOnJ+DUP`GYroqcrWTj3-0BJMAiK1}AaE=}~N zzhbCL9%W3%&O@+&f;M8!3K(t&B(z?+F{-19v1uDv_ z<$Zs7<RV~1Nph5^R*jY{H7|7&!<>wXtVfAxjy*=kw~blDtAnNx?f^>``37 zE7yoH$5o!JfqRwu`u!nkyU+8TMX+{p^@mFH#z(^Dn2?^a(&MGr2jHQzFq3RRcs7YdvA>|yGgTyyrgPI@V?Ind$`CRZfavXh^P?k<;$cRt~h4Tx6I4Bthq~M5&~A z_i2t@&^@>^N1DI(tdu+C%IZjOPi3@!O=@c2eZ5)VE~Z?T`6tc#w)DF|Tg6tN6%Y50 z`~25^lv7(fO;_-OQ1RsK>e{NPb;(JSQ%#-^rBQQoute^Q!$I>UuWy`nX2u2P1mgp} z8G#CUoDP=A*Gi^Qw9-oAO|$1(jbM6N>zkchC%MKhbGGdZ6^>ofaNn_2<|&tJqaDeS zNUO}EBJ1=gPR2RXBtw5fW|?XrKBGR;MbVz;O_vQLx5Cm_c35>~kUO!y@=#teB`hCh zIB#FwZ~5d6>&S7^YepIXi{!Q5zJF&DS6aOzO_TmIayKnEpXOVXD*2|{YB%tj&fIxb zriH}%Cxs-L#SY&j;nv~% zvu&KpfOM%&zGdWHj(lGcmVG%gP{VH;WBv0Lg3!Zt&5_b;i$16!TkbG}f%Esjpy5+eh z4`HSD6F|%PvBTTja;|-o7{BH8_NQgM*zp{fy03ZQ%a;#<`3|^c3a=G7Bpi}f%8IF@ z%tsQ5qV*YD6;4v%*n>>VY-9C$TtVcs;EF&TIcl<-5LeUwWE< zT<)lx(PRAbH+#gO{CxkI+_T5#<`?+0M~^BPGkS!36L`(%I?~15CvQdM{?oM9>TdF; zj~pk}wEdxsoZ7y$)VL#2#t4v&5KJ6hp2_zjdh`0nFV%b)EmdlTT?+dUh>z908{_9^ z46cAo4#I$ z@=Pmln!E!s4d{N;dY&guYb}pftEJxCU*0xIL$O9HmMtWorsYk_&oJ*CGAe?RNZzE} zTz${rXlc$cm0iCQ`9daKJvG;7mM1Ow<{Id)l5f%SBoAL*T!XT-N}J#WMY9U~V_q%f zO6g4EgsYL?&!3;!yduKpRq5l;ld#>aL8fyJobQI*7lgR$L7G`W?0nMw-of-#)yG=7f|U2=ZlMkvwOX1nBc>nat$84_K^T-Sho@+xL7^`;v1 z2QRD*ROqE`jCE#GTwPmJ<>Z;GvK*vV&9{&5Ca;v91J&G9_|4Eorn*VIQe*P-{PMTO zv6t45%R!M2!{iT?%KbZ8=CzWQTo()c`F&dEW$rPoyBqnAxLm$5u8vACsNLq#qA44{P{y#o+4?fWzwloh8U}VQ zZGu-iA4wCKjMOFl6y+Lap270WeWw)9dL&7Zp|r%vs5aJr>k4Evu)h8RtJ_o``$o__ zI7-jAJPFD5_9+ROF+76uJZn80nOdd4-<#U}wA8X!mGyKHl$N=c9kcehKvIjyUsIuI zvAlk{#ulVW`C6{Bbw#d`FPCK@W>I^beJta>U1jM>fu{kQTp)k1loqExE)mK$;pj~jVhmA`DwK7J{**`SWylzb6#$W{f* z%oSmGt7Cdu>9dM-$&-HQkzjM5H=k8A%b_TLDas(LD1%)^F?EYxgZyR1C3%S&L34BE z8kWxA76)7N)8n2zdj6lEADs&^8>nT^^yVi>=Zg#XcTMikniBLQbI;ntZ?fFEr>C3k zCT||g{G+QXrrJ&Od)|cQDX)&!RMeL3>#r5P}X=x1ku^B5>Mu*yc*O#~!yO8Om z=FUc%>>RVJs-vM&zDDryGAg!c`9MiJiAnWiI-Z-J;;tAaQiZ$X#4Wc)49Ucmfh&10 zZAbNoO7>u#W8GzHoMXP|jD7#Lnqv*@9zQLHgU~gJy-aF300lwz8%}qS-Sq!o9oW=W zw%v6GawXWS@0&(SuK?Y<&TU0oyE}WjEya)4p_#Z|&D!5QxpFbpj(p?fo?kiDA1#-c z`X&4R(bZg3ePi1{d*svttL(Aksl_b&IBK31YdLM6m7Xg-(yd|Ba_v5)&4ICZ56!c@ z{RWx0{UfCzTL%6)yEbTglUtX<7I9LoIMz#lS74vPQp3pmry+H6)yf=GTa|Af`*P(O zTDnX-Gm>s#RVCTc3Kl1044DDm5|p%$nQKMBJ%oE3gBFL zs%}~t{;}A#7GCe@D)Sa3@nSPaS6K@#ai{CkB2(#lEA9MyHlTzK4byx8l)H|6_vh99 ztS@Ub`tR$PO7s1!lv0jq{a1_6YBT!p`De8)`XEKBtESQmDO6dXw(oBON-3K_|7DLk zZx!D9psYDWJ0Qu|;^i_Q<;R#jm>$_M=Xx|8hs^xjYjKXf+SI8IZe*L_O84?_< zj|EGAB=hNx9fP-%a_3Rq{Ngfp6Joj?nWs|gb!KdCq_#*#n|IGIwqCxv=i3?hrF)S1 zE=LB*HFq!e%~UMdJeju$*1II@rEx4z8C%bOLu%irIU`twkU<-*q4lgh%tuP{G9$K} zmU+b9&Q6sUcKOmz9(Syf1DKy^UTsyPxmH4b$1UG9`m3971zUv3onk=Vt(XD)S%CRu zDjcqralhlD#lo8x<)0$8qdbenf?Aft6=))x50*6BSQ_pfbuIl-870p8{zf-yQ1*%0 z2UWp(*}EEMhW0nF?QP5ADw|=i4&2b@85$$|wT_rKP40 z9cg#Sx4rM*LFqkbth{;~73(!@&$sTTcK?W`nT?eXP^_;L;%R@lZ+ESJTP2Y^)__4>qJdJW%r& zN6GWGuAA=boO}gm3Y!zI^F_mU-4y>zK-LYQIV>HsP3`NLoqX}GMvMd>2D{=U7%VT* z2z2hz*%FNOmS7CGzL{3><9^L3wz7#onTn4a+X8VvaumxV{}q1($Q9))Tfx=nqfwHKwbq# z%0s1c88$Iwzz*~Car)0<9rk|r+bQM9oEy8W_4_TquXTKXP7u*ezXE?;Z6PZ8BKLY5w zw*Cm9ad!I%pwaf^nW{O%Rv#8L+HM{e>`2MKowYY*{4YK6gH5puUMyD2UwoS6yv2^i z+UE@r{IjNPTyZw>ER?^C1E93_7oFeXboll*uBsKd!`A-M7 zlF)i8kl%u79*ViOpK-7c{#G(4)ovvRxz*)hQi_Mu>C7ndslSlDA;?F zTJ|@^=FHxUgN$2P`C6?)#+tK!aUrr7JIf5M(7d%<`?(N4>~IgHmf-hAoSk2+VHw?5 zrsO*#&8xq{B#(OffLTy&9$|FFTI|kP&9X=9kt?4D1;X;Cvp|1*)_I?7)rziL+XT12 z31;n4cbq;6Zew+!a*!szjcvXIwbylT`fOCDrhBb+(Ab!^GW74zk^d_vr0ef>lY3~U;X@c7`XOyJPZ_bFxTg;p>liuPuBbvJd_l=w*)?W4E zVa4U(;qi!Lhdw;ctldX886>Cy^%2*RgE<3|Ra(xd5qYy~z9--J59C-$t%ovi-yxxj z3Nu9P;HhTl;k+E*S*{TR6Lm{98^_z%%B)P%@hyF#m^wy>*IurS^B_Y=CXL8PX3h^R zU1f4~KaIZvb1j!H%5slp_dwrmpWgp==kvI3*s)Ie^3vVv5dUL}W8LfN%2@+$T3>(J z8UDx~_SPpNi96W0>`5Qj(LGJNEn6MjwJ*IiYe=UA`FY4aUMF{7`X5ycxmnZkcV$GF z`2OO%>%Z;V*Z-A{_pX{{PX-v&ckaE-=tU)g@RU%M>7=r+w}iDQsi{Yxe7q(@@l2Dp zFlLyZyQR|gx42yPkW`Oy^2froLk5BGL|X}DKmljLT-~BrkgHpiJ>Od4Sg)iSDP?T=cBh-z zND?i&J;jon{z|g{P0yEDLOB*?uK8x8<&M<8McOG>`pbvpH$~;As*9z|sdV<45?c{- zFomkM$GLnPrJowfP&V?T^RWd;ZzbtfBwIQ*M-R@37f(b!se8S$S0AG0NvI0 zXHT*C*5aEFDMRV3YX6o?u*M&)_Sb}Jg7UZ=OB1k0+>kDA%{}m0y6KKD$zw6&&eMq1 znUx{nhdXR;<$xc?aZ+ui9v^KEZrBUz(T6c`Ij2L=IJxoi$LH{B*0;uS`sEEA3N!kDp(& zi%VKIH^6;=Bj^K@U0k#N(#T{#!!XVOGXkO1Q7Aw*`BW?T=|-U?-Yi z2h_GxDGNWWEd4~1|K74=jS{`@az-(Y1n!;yj#&K%nQkgch73=rA%Ws2zo|x(5!bBGQm>@WNyflfBSMl%dtC?)=ebM?}ZZKRQp}pX8mO zqX^c@n}%w;9lt8c%F8gCExXh>v+>IQG~JF0P&zx;r@+)L#{`lnBw2bR3yN%T9`?hV&^ ziyyU0Kl{*0TpwE%8&Rwq!6XNm^`cyA>gu9k%N}3O?Psbmjg=Fu2u!uQ-!d4YGpaRO zw3T6tF1<sJ|h&wl;tjGp{mt21Wvi`DoJdd_&Q^~Q6?Z7!@;ceMD~Vb|%Iqv z3yX23<=G~kUiI15Iy67pIOfNmQ{v}0KiI_2?=RJIFdCFEjqSUZ`0(Z~Xz}y==0&Vd zCS0Q91N#*b>MORd;qehNiUyU)_tM4k9dY6a<}N`uf_$v(lP{6SWe*xDg9YmiL40O? zbrrY->AQsFV_Jn;Me z+Z#W7X?5U4Ss_`uA2%qaxh4DAi`~koVWFRK)Uf~h!Sj<08TMZ<d9k!DGi&o@J5gZl+MOUUcFFK23T!oHtc5Z`%H4GrPmpA98sHKnH;qVxa_tAk1QDzU z=0UkK;5(?~^FvUNy)h${=}XsRXfql4iLC%SqI1l_*-GuF?tOrDcpP=s!|w z6B&>;Tq(clDj&7z+vryIL3*a0C|lZ#E35q3)#0!_l$ahWV`KpSP+6Hg2UW#>)+@ns zGg9p=2FXZ{^1Z+L#f5Qc{?Rq^7EpQ?l=$U@FfYYpoq!W$;!V&sE>Sdd@VY;YOBR#z zx9FOmC}yG$6B5UBf18jfUXo_eQ3=oQ#4UBw5|AM01lJ>d_D>X7LX!1_OBmhWiP}9u zUYC1Z$B`Lh$0J8bYX^$P+1-(#vE--oV#kKg8B#0XUp2qG(3#cIa_Q(`EnA+dWy}hB z^)7uNtU1zB;O&>OuRqdLN^Q@O@;0|;7{uB$tPpp5hG`Ay`@gV`rj)vl@~`G~G>EOE z6~a2|idhj`w$rp6vS{}&z4b=Q>XscFXhikDa#uxZ9nBy*xA}g`ZWCaB?1m_Qe)C2#WDn*j3lM4nEY2yK=Ubx`HrLIhp+!j-*wpKx4#pxKVh@yH=l^E zkl3l^3~4?YT_MTS#7;zTbmuLx#&Rn$Bg8SYOe(<`^qk)U&Q8t@@7j+jUjx zgw;)xN)rY&O^T(AYMPY8!q5mHLG$v)DFX#m0%XO-tg(!B^(Vs~W#ps_RP}7$+NVkB zD$AZG<*fx#Ei{8>XFCn+e^YdYxUiBu0k7bn1$lQ%+^NF{tN3{;0UXeY50%2d;xev9 z*9VivcS*WR7WyK|KmIOfFcDU1a@r0|WMNNVezG}6dCB(N~^UnC=%?AuvPiEqt@wxJJ3L`j1u zeltvx#SexNS?aYgK@>j~Mno@q)s9NXXIkE(tvX15o9q%CvZV64C&P%gej$E4c5{jj+qDlW5mdH_qNbjGIZx!U0AJ3(Al~lcJFw6uu?(kt zo#0qJ{ig}cZzI2*xJ*&lLOa zH!@ImK8!M&aT(F};ZQ)#MDvTo0HjPWv@R#MJ>J61V=fFgs|lKY2E%e%0X`HCt!(l_ zdx@tb4XvFfE)*c48l{ky$|OWMLe|-Eh`tV-s`_7D@NGwsgMSHq=!Mn)O2Z)WP2-Iu z?o-(szxIbI4uLaMqtekXs^!H2wGe_fP%zpvPZN07{7q9N7YIg?oxEooVm{ zvfOUok(0tko2t3pK~EnZjjV9E3OH0G0K8Pfl%AJj-}0e{|NZw1UtG0oXg?gj3gWKa z*5g0SFdIdXVYihqBU{28(t{H54Gn7G9W-6z16P8s+56m@gZadBOFI<=XN3C1vT(BnS8Y;`?~jRUYo4Oetg4 zh^GGjC3V(b`Glw6$p@UZaZ@SN*FmR?@y!UY&1RcFew_@`2!be1oteYKMrL zm$D^|h}f@|HI(-75<$|X%5S`Tp_!AsUHeC=pi5+8-)1D0d*JfNQ#~v z1c3}ye-(yf-y7}WM}e+<1`bQ70es*ym0|F~rJtiQzuV6F>ZI8SZiD`XMmr!UI@Mfo za52+qZzpSnYe#5p+i6ac6-p)ET%NZNbXka_lF5}nPW|}su%;La>eCqNTSl6bRFag= ztOCYBQ>oof<#c~c5R<3G{Y!F{C#_dja{6eFrs8E&{~(8U{rAm!Lw@)8(le7reQ+}# zE>=()3M(q%r!d1H3Gmjef-lV+WR9%RZm2W5<1fkT~2JCgycsZcUV zK`rJ&?odT(pu5^`+;0h9L5e)XBe4%lL;G=sP|`r6YXQfL?RvAAp@2>UX*!MXq7ESn zf4L8&@e@EHRjMneQ$;cz^q*{mD7uz9B{DgF8M*qVOZj;yrz250lY<(s;!`=Ppe41y zmvhZnC7innXX86ygnL~cCZX8bSR>5e4Caq!Qlj2W4wtbS>9|xT59M@CG?TRCs7NR4 zxOs^zw*(0Q^vT6z@IB&0PzE&aPtL_%+o_K4-ugH4^<7&h(brI#ES&@@t31<*poHp6Pj9oBIo zSTIgMJmpuxyi2Bg^f)(Z=C@b?O@U-0Q1d5K(;GLyE;01)(4B7P)xyct%;>|3KFXA1 zh#j2|$?gbWvJardtFb%FQ^~#c86rW>KLbS!n8OZ_R5GgOWGEj)N~0yGVZMG0T- zMTx0tAa$73TXRY*S}K{hl8+c@&JGBk7puj3O_NdAL%o+u8!QL+lPN%PTtbs*&jJ{G z_}!Hax@|2QRn?A%a&5;lIConN_feH8>P}UZ_6MU(TdJZ z1+7IU(hMM6oMkLu}qg~|ZNE%_Ce8H|xO)~5x1N9ll(^kc9xA!hfymt;KgDG!c z3v=E=zsa%=r&~b76WXde$*Lz8tgKkvbt=gDAx2X9+M}~*4W|ZgUT8hIou5kh| z+UZY%K-8oV+C@3k$&8Tr?z=os=tN?nd{t?kTbSNN2Hm^pCgafd=Hu1FU^rH{I-P?W zl_|eYLGd7kXv8`{nD*MfKbhSBf*6HnES(R2qF2Vlv+3gk0Af!wokz^qOL}y|^@?Du zO_5YGsI6MXp^Xzk$uCS-1Wn{nCKIm#Q;e1V!arO>0JKna_YQ|lvYl4lAHbC|&FB(5 zvVVy-aY!{8#-qju)JbPk;HOdpOR{^rj=-%RGi>2@@JGyK2*_sw(h=0T~m23XQ-LM^BWTbL__IR<4yl!hzg@zh-S+T2~ zl1N%@lP5F>=t^bsMzBGKr1z+Bn$ z4FHwBeLJ`m5x++7P$FZK=LV)!J8W@G$h)$}VHVRNtM5L;7boKx2+aMOjz(eH-FSfG zPinpfb`w#G-_+u)Zze_5Zscr$~y6~Cz4k`!wF68Gn^$;m*lD;TJsF2I+Qf&idjzf zb_Y6J%nWuUHU!l!!B093caj#tl3qPdfZ7vU5AChxR8Zj<*0KSfE%ivZ=gtY(Z zt6SQOTYou*^RM>IHl)OZeJljnA^q8NBCP7qMJK~<=fBEU5Lm8L zcDwIj`S!KjHR!H;XRHl#-tU|9aY=D>a0n6;j$g+g;oDjzy7zvt9`|mK(P_L&?!7%K zu+%U5!o`UVT*aCOi#fONmJFxekCTtum~!tQ<_NK=A2H2t!1;6o4J<+{LH+f=b`hg0 zxkftH?Y(tHAe}1fJ50~LSMPQed|x;7@{IQ~@fxuA=iTdeyNc@e zFzxc(_dV>lWcRMXWZ?0ndiOt374;GZxgPao^Y?;;wt#QZo=gm?`6U@V871^S5e&_CS0ET zz9(G1raf$NdFFecarvtDHsg-cGw$oF_qZy?ubXofocA*6n(*J}tgEVT57VxK{l4d2 zMOA92yFGo4E~SG1-sfILU3;5+$C=6ZTK#1O-`7pOJmbC0yaw#|Iq@p0+rzxebKm#0 z%h&Y!^JSj*-e+9Cs=ZCPlk|jp_4%@b@9QR9p7CBLTm$y|oNyJ@?P0>@x$k?znRT%KK3H~d0OsSoDSJe8*i2Ft z$M=JgdHyc}Xfq8T_7W6o#=(v_w5%Wj?rv2?&th+u1^ifkcUxta@S2+Q&pP!L3s&on zO|DRC*VlaTnkMIUd-W9`zNX^5j-$Tf;x!fLuX^b)h*FL_QBu)n&kF!| zrIytOV3BMf#@+Wh-7Bv!?vmc={VKk-OZ$#3s$1H3Y)~!RiuNdU@7;Q`cE{MULG^qq zS|mHsj$f#5C)%+=wQMWeBOBa~?Wx<~c5F{A+luzczPV$2>h{eY+f&Q7qCK)5@7SKB z^bM7c$gf)C>iJf*NVfSMTU58r@A!pk*;ceiP7gb_r|$HyV|!}ZRoQ_>alA`m^0eI@>(r-QiWI9Qo zi^!g=a=2?kbAYO0*py#lo}~^@bm}$3Cq)4KD1co5-mbtbBm6^0ll5=`ybwfZ9*v*Z zC0sk<$^S<=o!oEN_lPC=KP?I95KP(qTM0x0>ylo^cJ8)V zQ4<&RMhPH-dqPfdlF2EfCLP|%VF3g#h7YuxiXh!{cvUz_((4GpIf9>r&qHOcmt%m= zxn*X99|(#({04c~46yb9gzOUEbGeuV?1^-;Uijqv3D)q{A52Sl^->Y}ROHN|Qx5z6Pus9ZW9LPaSZEy$;VK#-!AdPx`?50gg~Ys=)U(XMpPa5|XGU?vY> z3&MpkC02+S2Cs%h4)HSdLY7Iwmq0N+A5;@$#IH91_?X%6#3L+B zM9FeCo}s$w0t>Wapi^ZQsl;yxY(1WqqtyhHvm7uCh*M$%kcZNvF_{R8ozEos2iwg8 zji{j-jqkUZ>Pnmmg9EA`;~yrrB9?;^{wX?x;33L6gMg?cnmcHLV0!Rix~Bo^EHNrq zz6M4f!p?GQ=~HjUKQ?QuIYR(Tjl`Q=C#zIPzCRJ}9#O$X)D4{f)&%WW0;1!Q;90`* znCL?@!nqxP(mKWME}!6!iGIHykLR>R57?V6{Ug9tVz{t%5aLw0mfS&U4 z_Md;^gLA?g2&T{tfZeIHi`Jh-@#lKG{tR9A;xNofZzax1+UgRo`ude#UL}fhYF{on6$uze5=zuIH=>>r(v>winHM4`FzRm)2Y0V z2nNnKW>?dSY;rfY*^D>rmnRSADgyRGwgi{(b^AW}=?lRQzBM$MFVa8P;~5;-pRm=L zfeP#t^#Kx@VE*~GPcxd3T+gthd>B72f+27$pEWyxPXHZD-#tqpPWZj{kUk$EwOr|1 z^jUS5a++5kz0Jes0baCJ?(0{t9KPIq#Lx?87w^%+E}-t5HWOD<(w`8AA8|Ckd`?fd zLgi-W>Y;RnSu_2iPB_~pi`>>1TOD9QHHj#&G_l-0I_5kNrpgCgQ((wM6gmKd(EL&U ziPOg#J2DQS;4zQXyrSU#tjTfF>8ZaPZD({b`?S7qzxe~prvCANe*bOFla{u(!F0LB zNdUWkNoTrp(jMX}G{6af|NIWrFB~$33?P$~{{K#vD;y{%qjjH=t8im)UpS150uXCc z;L;Hem7b{~2@u|969EQMYkfd*1czx{x&_|u-E^|-_WMO!;aBnKn5f|%6l`6t2KTa2 zcR!q7T>q56Pj0qzahs8}qSZ0g z6~(d8@sgvru_Pg5d^BXri<{79E0)Evj;MC@};K_)uyaVV(YlEgn7<1RlVU4tMPLA+G|`rtU`L0(m3}Xdy2@ zfh*+aqiaP*3S*JzgQ9g$ACGqyY&B0|*sbJdb9%X)EP8XGophg4eMcjcNHXKG%~gJ! zkJV|1F+wPsRf-pnAVtwfjIlJ0BG7%AYN*6c`2y(wyG6GP49^)(oGC)?Q=%i7YE7B^ zIz_>w(p^J>9hRZrnCRVfV1l)HpNN-7OOjmqiuUz0ox6IAi_L0^vGUaKw9C)k4{tx- zl=ydXb#{AO-gN)*se5}@UVQv;ck}V8pIkLCZgH>2>N168R|6$RPl5Q|4xtdd+~NsB z-FAUkWRiNb<&=P1{Dyf|F@B3hZU{(C`v@O2J>d>?7krvKL}Hb8^gIRx;R??L<-u|= zS@rr)({4BM*w#H-jY)IbP4>;9bB03j!=LGc6!wOf9hNaZ^jTT;odPWBlu(_K-~!E3 zFTFW_y|mdUILor)Uo~6_Z~)*{fIpJ<`vEA&LI2&PI#7!M13d3*M^}x*C?$?IUbG^j zq8%s21=}(APRy$l^XkN=FP-D4#!eh6{UD|~jD>$V(QOwh;_~W5>2_u!_5rW zvHD4;A!rXl10>3XJq2-9=)=C)@ zSUmhXq8X^I(E>7=B0*x)fpLBHuYZ)E&fU@BB>i26h$}K{>S^0`674YYlg(H6lIHJUU;;i-dt~`5t zdU_0mZf}*in%u7jtDlaJ|DQu(_~AD_AdCq2{>|(eYX1LzcwGGa{-5Xhh)?C(X_CyXE^8)Ds;s$$D&C@Lsehzuo_nS0N(u5;CfFjiwoFr`)csNNdw<2{Ht7ulcE!Q4G!{pa>{}n9V z#14aJBC-OXSUEhST;h_V94Tss@1~awiRV~V0!ta8T$(6sT2YeZPoSTcH$sq~65?_I z7G6=?>AT4f3nu+zNw3;n);4FpZ~|mIDOes=I!T@e$xf2e%b4jL2Z1z6oW>zel4j$( zCaGCxG=PeYaqG1{C`n3PrX!S__}^(tC@M82A`v=(!b$QYwyQfIL}B5R)abVOX3a>4lFh6a zO#H6@fspj+yi+xVic^XR1Y#n*Tli|NWQz(47o-YQu9GxfSw}Zs)h!vcz9>?@+E$IZ z5LG)RBu|VeB32bwwqDRBY$&X%BIr5-7-zvvfUK$>aiy~Huc}J0A{6`N;(jbZ)D_zb z&1@lUBn(S0^bSz7QWvNCwBWY~mZh&klU4Rk{(g|;P8jEDAnzpk0a}{^^G*`e@RBP? z@1qCkouuykm`s<`sj^DMQ(bZNV>NtuEGdzpd+GHUn$J|}c7f8P;jCQ3?re(kPN}I=brc;s#`)xxM>*_@(LA!Yx&l!su5LNrZxK#qO?&!Cw(qvbNIqCqKs1cQb3lkdj_=$83_A zmj)O=No~8I-+XQeyIVb?C+V?ZsD`SoppqJkFHzr&AEpS@%;8Mdm7~F7kHI*ZJyx-& z?SRbM6Z7%w5DVc&!Ba z4s9ktj7AZ^+sDuL#ZmM^*p4~1Cvq&G8;uNq6^ zRYQdgb}AY0PW0cI8duA@rfmh8O3YfV;&*>B)MARM1W9a7CHR*ym5{vP74UEN z0LbF1x4#4X_D9M5?8mB>FvC2)1sV3uF3iZ5(1)BNDDjdAu3^!GHT*FqGX$+>pI!F> zDkLSfUGR2P85l7v4~>G3a;P7XLXu;WX8dEhSi?HGg*3;H z5x1K(yLQ_nog(lZw@zYbsCZ#(pPiYWj+@-gH;fCTNy(iNyeqA*;=rG4=cD3!}JiOxi3Nk zAoa``N_a#KUXseHBnQud_Nxk~@Gr1p`ViI;M8pk6Jt0wtX!&XYpM7$S%eFrI;2!c+ z4~4Ar%5-IDVGy!NdE=;8`;fFl!(sMwHIt?6COuP%HtEOkd?Zrkcu{X)QZ9Kz%gEkl zRtN?S9WP$6@N%Z!H8V^TZ;(M7+8wHQF#Pv+vIgP=;3S5N*^DeJ(~YT%79Oz2iRx)Q z{HA@8?Shz&*hj`e@5sr} zrX|BLN9QfzSO$+c`0gtInt(q$$tEMp287(j`AD?^bv{sSK*)Cd*BGpLws}r}Tyd{Z zH1Bgn#)-Ycu_UM)-bI3batHOCRz-(2FABFF7DnqB`hpi-WelSoC_>sD0``V1a*xhQ zy2N{PNLTgL9MYyAk3%Zn2rwWYAA##Iqfou+Z_eXK>G8b>=8z#Dl{CZQVmr@mE#WJ4 zz(@`bn$ddkKp-boOHSscH()C}DJg&N$Cd4^cnl6%avv&|>>ZoyLwfGU>_^q{gK-tp z?~~C6u9oSe0Uk{>)8J7#WO+(!xRP_JY13TYhxS`WzPY2gr0LU1yG@Msr(&2Au`kN- zrekB?P#}=H%}1Z{52>JBi)Dd?Nlo*wv?>U=7v6BK`gm@S#HI%UTN%7Y=&uvdd zM&=XV0P(~QpTyqB-h4Fvk?HN?m`T}tv4#>4cIMR{Ptx>yn5mvmtdDR$D;F$6Zab6d z;}Yf=V%tj_BLrPl9MFEs94F+EnXNfzuMqM(_4&yp&z%r>O4!OPR|Gm+Cv6}C3EC|q zfpli22<;Y49;ZhuWgyE*k--a>9!QXLxedtb4ZDH@1rL+Wc(%l0oE>#D7aLkUJsY`z zk#ze2%Xw~9qctM5p9`22yzIa_M2ze*1Ch4D+sNcGWW~4CwI$0iBUOPmbu>niAukqd z^>{Bg$s8xl56#IpnvB@dXfo__137C|8M5Q9|9)RC=EHH_j!Nr?vAlH6rvj$!VhtIG zbl)i5(UEC8CQ{O-GvLZ6VN*R_jx!emIg-cKXZlKZ6iW`lS1VwD;C9_@7s>SG&MSAK zkRE7wnK9j_1>_Uin#LEi%*M)h-z|zboomO!!$U@E#G6{G7+v)HXPq)rj)pf2I9=Ug zk_X1H;pd@A?oeNn-XuFIXd0eR0gQ7+$Wghi?Qo58bWddEl<6`fh!s!WFM#n|e5X3o z-N#0_U(RdExR)^{zB9k_3D9VnPgn$`0BOq|Zwt}{@-?IPRs#Tqnh)72+*>uDz;ol4 zcZ!HQ-9>FyI=IC8^qk>d@MU?;HaqAEI&kJFS%0Z0pT?8Nr~IbPOg%kQjwv4l9EI-< zL0g%B$q86+8(G#8z>QgXnY9R7N$2ZjSwEVQw#_UVF)-9>=1Q>Iz!JmcsGMQKWHwM) z(gJd7VtVEltS2^GVMYcy8S$>0p(vOn+#Pbn+zHO6nWN)VgR8vE5%Or!_lT;gQ1GYH zlyb|=FqKc0Jc?&Z_{`-_kR#=$xwpw2q0BD1c2=`=DJ$opv`lw`cSFue!4t-64>M$K zZWUbq7t<~4`j+?`3-cNaceV%-q>H2%sN#grHMSCb?;Lkob{+0Sn`SFZD(!trVkkcs zs~lrFd`Hw7);!)d@f0@v=KPfF6+TubOEjrs4ZnhyRpFJ$RKfkOWzy)M__Wm>Wlkd0 ztx>5=RlF+c0qW=lGTkLtLFd^iN5`vFsL03=%V0M1-_svtipVv`J%;26xi5p0Lql3V zI%H_u<{Kr?eK!xTlT~mmYxB}b-#08j*8VAtSnuNX@XV3WiE#92DCW#aJEfgQ!?LHZ$tP;3G#W zrbQ$L8F%%f)OufK<+Od?X|*hD1%CW(T(?Pb4O-FGb{mvvtv38*V}ao%vjOYNy36T0 zjZ5USR3;q^GT;zLpPm6H(s7Omr^PKQpV?0%wAA1KbFq|SUqi5;w|(<{)KC3g7k$3j2qk-mWI$MN`?$@*RY+so$xE&(*M@S}!rpmV2R)!*G8`V$ zs7Ezb?gUpt%#jW=M{Zz1< zUWM%oHpNP15wNkO<3i1a3VK^5lw1Pb1v0QO@4r`wl&Y>IHfZbm`DQ$PhH#}u2Gyd` zD?Bhsp|B^6N%0E1DvnVVH&og~&-9+))EDSz)fd|RN{b)}m^Wj%#Eh=#kxjNBl}$=r zF`~IXyU=)Ul6UIB%ta`3N|~>?9DoaT1WcyHW#1iHCn5oh2Y}yL28BMrfCA{<%Zm%x z>kP+BJiE|gAl@0;fAlW?c~qSI?xuiBN=)C$@CW2ohJfma*a7MsF#{}(t0K89whylP z|63;=V2)@fMxAqTa$OcjM~R%nBa|x+5Ci}o;B+&>oyCJ$dAk^HX9y;tP*DU2<&CVE zw~V)Qp|>^l^Y>pVJ?Zt6(q6JKR@6=*$f)fG^u|rm&1PP?K zX5cz??I+P;40DwBQ`Au^l*g9|k~fH}tuA53Sz9I#_fc1rUxPo9E#|-G;^oFv4Tf(;II0TWH2CD})zgZb7n% z5rwPHYD*`5T{&DZhX|+u#rf~vjgF+~%q@lDgX#>hAvVK=ry?+ZSnLj;{9M%ykF3{b z8n>*IYvXSr2%A^IYVe(Zm+*4HmqfPt6vS4Nyb>&_lZTh*@ehjDhX5uN4$`SMDjk#2 zEJ)QNvD$<|7&VS6U$0FRJRU}fCJ4*!MDw|V#?-|6enBzA^e{3FVn&%fDu#Y3+hq%P z&keSwDrp)~szwrRWU-wU5AAGRfGR-$ZeaTWg*&4A<=R|F#FFBvWbTfvanw<9U$C&P4}lz>FXTBUxh#*gK9tas|?P~sq(%=H*BKI#|#R!@vx z(sDRO96X0+KrTF9$~}e8BaF}!*e5Y`iTORjZK?6S{2EBnGrB?Po4HB&yWGvK!1x{n z!E~fVOqe33h{F^)VK$gTg`PXR z#W|b5e^Q$2utdzLIxLZpc<(b|5Dg|tzET7c%w)m#x~pN7BCev!_sL@_o;0i)NQM?7 zZpJ+_j4VT$6;Xg#lBy^`Oi&#KNO;gk6D>p{3J^=dGmB7(;XR({JDw4etr6$EZm5bP zMEu?I3Tx0SPxi6dC_>zZgSP-T9F4EH)6L}OV-HV1Fzg6p2_+ zpk4>Qf8j zJUI!9Z$OV?S3pFZqy^2ypoEGX>*2lHeyKT$_q~9K-cyaQXEs6~ceGMH->EA%eSLmU z)*fsLB%{$vHbd# zN~_FtJM1wy$}y+lFvlK8qMUpgb0`VR)E#z1`j^0Mgk^up@ja|01;`)K&?*%>3M9$m zx3Gw;xSbD{TDdI`_C|-QzqA-u)DdM~=^QPx<`+%b`0>0r8^bj>nnlv_IH9@pmcO+ldV%ri?2PkyW)(`>J7u<;NLqR#J2* zbO1knAXM-OvG`Q%J*Vh_%y?yx;uV+Ei>1Y^pY(^=g?amN(u;Junemns!J`?h!U6Vm zGTZ9ibxyCe8Uw)Qo12T1q!$RAbktk(dzgArwi)mZ<+|w_gDAaHhYWj%=v0VgM;qKv z5XuZevLy(EWWka}l7nv0ZDYoh;$%ES=QCc#7)oTaDhbo>#)DZlu%si?p&0&fxR{3l zV%{eU)o)IQL3!E5?09q8?X)g0dUv?O?^yVH_rk^H#jf=hm)AQMecLH^Z!Ze(-rl0q z+P!8JepSt{_{gaG@-=nu{+VHXv3rl9@a|F{w%R)nPAa?W=%h2(?oDpDFqwCp7gTmv zso&Cv+Ob|LyK}uXrFN~CX4I}_(OEm!i?Tb{+iCAyZKu6!twm?|xjs7UM^a@ z_woh4(9WOtqIkvF;KI~hr2KVu{|-e&K~$~3fG9;Fjdf%hhve`r?1?vHv%f3bHix3~ z4$q)2ljz_BI39u#Yk*8-*|t?7TuUx+UcHAh;oWvVr1$o2|K0N>4*uMK?%sCF{_SCS zh;+}e3By2JXK^Be@=^68JcV$UgK{XT8H!7hq^rexeT6qka*mD;#F{-F04*V-5U?^O z_&Vyi*t_jlD5zpF)EV^V^1OXeFTCy>2(JpVjdF3sM@%Ov5U#Bb)VAD5cm%;NUHODN za;dX1Me8}g?!&|z18vxU3T_Yqe_RfUezp|)_b8w=S(bAwI~!of5_HVLo1Nu7+y~1J zK|bXIK^Pj2PraqkjSenDKLC(`tBdG5Eww(h_h}SGbE1&S*gP=KRRi&6y&*(PsIh0u zh)6dd(!i!35x_wPs2K&;;K*^L+66ZTA&gk*`wL5xqfryGkDwKN@2ekNcv|BgrE81g zid$Y{VrU5o)>2v_uL5x+&{$0pHB@&9#$(H5HX>`hHPWpsfZ9ERW$SiZXrJw9`Bb7;8FV zEJS3jT-B_L?RvAAfhR86qH?yqq+1Vum1NGPb_>YEIf+=!&UR)bo1S3kO=*E2ea=d! z2_cXc9UU=TsAH#zYPoQT(}aNj)T6-)8?7puiW;j=lVm9h8Jy(*y&cboIQ52Y z)TF32APp&oM+l~htokUIL z-IS&^m=5Od;ub_uR5|*F#A>Y4Rm{}#4&y9Mu6vi>fDL&gp=^g=$WCpFld?G9PZ&Zd zaAOcdw91-qNj5obmR%A8!e-^2^M?V}j%CzT7?qYP9FY2G1R{R-H4oFF$ad}Y=;A@C zcHG|jYz&mE&wv+(uVyTrw>Mcr2G0uW_Vzl3oTZN(@y?{FX$c?+JUA|A0Nedsxwo`i zd^VL|Zzn4pDRH3=J4~Mx@Z~GZMIEE%LcuThwXM(x@!pz=^WA8Uz`|7%Mq=Al-_&k` zCOW;M7Ckm&xcz`@OvFg75Nzs_A}|x&I0iyXGWf|mZFmjTwCEG{)@f;#WrQQ!p>yp$ zIj5(p!TlAERiH-{=>=FCJPv)>^4UiOd}l186Pe_JDCgfHxLk3Gf- zUxzkkY;_TeSmOpq-D$V*fHLj`d;aK3@ZShx*b&#BL}KEYwVisJItoSX@K)6LXbI|= zxn0H-dBxYWy&TcTy&QE&gfQ#~9d(F9oMmmBh__wy<{OPU%iC_K@8A*%D~e{@rM`V& zB<{+=4kTPNXel!SxVT47huAS16cDgHhtf9B-XaY5a71GhVZFrUKV$egj#t=6pip?m zZdjD^FIefY2G{}`Jgr%`0s7-<@g1GEfd@z*5DxLVk_= z?H#6eN`F{P)+7Ur9x}>Ky}RHeIK+vsDi>BvPq}?Sbvl8A$`Hfm#8|da9h@5V=k;Vc zDO%WnH;ePZ&+&@?7BzjW7$}&!?NHO-8ESK)#kV3I5kUZ}ICkAU0VJk8<<8$E?EVm!KdU$)yP zPXbs~SFyF5K!Q4Eu9p(@(t6onErw9P!!$bAOOV#1ix}#YB6=yZbF`hLsld*ms$%x# zX|fr+=*mfE4pqd=`Os(rzBRT+0u8JhVlJIJd?1R;<#cgBm|iW0-y8!uZHi?qYfmq9 zl4JH}lC0UAPAXvkjQ~jx518$=99^y!+uX6lG|m=AhpWQ8_sAQaGJ6YD18S;rS=iWw z5+f;;n3A-_$J8zu1({+x!4xtHVUZo0sCjYNix)LemAnq+ybk5OHcg{XCI)7vkWDhh zoFv^qo5a{B>Y&zDA@bZ@d?uZ%HPE`wEL4tDez!3qZF+eZs*1xgB4%`9f4F0W3X*Y8 zFt{YiE2xs(j+CSw#)_@A$Va?#hye5P@;L+P!v2t?uvu<@;E|d;gv|KN&~g(^VJ}hl zikrAYzxc&p+GtbSZMK^j%kDP)gj?>e7be9Nv?;p9CS`}_I%QwlRvH{)wP?PQO)}y- zNm^c;w1dD-;p%ZKqU|=1$xhE1e5y|RQrdaLNz%=tu4G$E(;X(o6tgK&sU7;laC?Ej zhb{Bs8Lf-jUBaY94Yd1&jDE58G(F=cnzCM^?jJXChc0r98%IU4d~vg0(1BjDo%#?~ zbIyr?`jAshKiCxA2__}G?OBSK?|M$zm#zW2s6QmAIrijWXw1=pQrM2xj0cnAbpq4G zrBcTR!+=52{8NL?%Xsd5uoS!X9t-;NrAAll_a0jbNBv+Y6qllX-|sz2@k?=vJA~d+ zO1AeT6C)tedz@F@KcfWMNOv2xO|Rxdlxp{(jRr#cMiosocQ1 zo?SbKxCbX3BkK!}H@3`fV~NCwI^x2N96C3P)4`5kb~Em(Dj+ z)-JR*DVEqQws*HyO-WOYeruJT_Z#;x`AzFLY1h18*OpdPIo@wmmUz>-L-SINtqo+dfRR?J&`{qXfUBgv`eYy5mHjo+R3K5{HawpT_(U9wq9(PU0JN5;(k_ zB5rS|o#59_(Z%w0ItlqYaX)uDaUXOJ5^0C=_w5`iFqdGR?D@Zwpb=LHp{mw9*yO;n zU`^8rkLZ+ITt;co*Mw8#C-LqxO?GF=MZ>(`I$tlq zI$!_(>}?1=@0ZS#wMgg5FXroP7R=ZAt@Cv~I$!_hd}lM^eCM~$*YrAH|Nd;Y7QG$y zq7+M`OIaG7^4Z^zdj3zA!r7l#3g@@Z*W7fz{>|L&{>9wwPm`-UnChln)x**5rlc3W zATRCAfi^hVADF-WX>uL@l&kpryCIjgnuvtdgv z9q2_u9!@6L5KAtP9%nnZu;uD}EIfiuUrO2SoyVMxCd+j zis^xRTuts*gVoPBu(udb0W!OK^G||T!|xTWrbhH+EKyee`{8l%^ZS3E=Z~|;`{92E z|JgjOzb{7LR_oDV_2zs#nU3DDO~!0In!u7ug=qQno^uqAjIdH^AMd~7QF{H~b9ynK zzWH%-R306?@r8u}h?h`K2zoY1(-d$uUJNTU5&jPE>sZutRD`u0=6#2)MU=Q%{e;07 z9$R(g+_`|-jne>cj2Nar33`YfZTR*zTrPj_@8C(RAc(|lhrB__ct|^(!}r!DZg^dN zJ6!Um)Gey+q#;B7loX^JGl?)gN3Sn@0sRiQzK8?*WH22n-wYTOpnH^uUPwxyc&>Gu zGP;P!aG7+;#B?U4qF7_r25z{nuz(ATQXDXhM`dS~H@-@jv*xfB7)U|UBW02g_y1&T zj>f+Y?T3gAbs8GSbvLA=Ks4aO zwqOa@;fNe;HF?U_IHX5#61Z8oo}|g1<`M7FRfw#5z>q5|uCQtviiW0w9U*)={_6zCWEm4}$0cg&Fae&BAiz&e=8vr62&}AQWCb^xuRdX> z2jLgse6xzJ1>YicFb+RiOTH^RJSkhUhy-%^kDCDn4Yjkb_L>VbQ5u=)rcg*q>k%$y zl0kVmNI5iV5*jO^AGq=v54q8}2uZEWctFidNY-OKB4*as_+Q-1t;2Xg&%rk>b*B3m zO4^~S=*MoxPcN*OJ5&<`-X_hGCcO1Z&Kyi=!ds#=BO3pPhWwIqEv51A6Q&vFgU|}4z>L&T= zY!v@oQ(W?s#n}WQfG7x?O9xd=l4L?7kN^`hEufIioSiJp3j{z+(yixJ0lCSdm@#lr z`f{#Tz6u)aU7ef~i1Mr{h+{^U0%W?fDl*#EG#yyURLl) znkJeDS`r9J6U{|E39<|NtlV-0B+iWx`kIC&Js#<78DpM=mC@PKp-Qu&)0-0oHQVxZ z%+p}I6wz@ezgPhOX}GDp1GS|y8dCFF$F7CB&Z9OvROvQT_r*>)sqS;A(yVB*L?Bin zCpzO;qBJ8~|5!nDGahXfv|)x4+ycrpp)&EpcTk^$@e*k*NlpZ1cH)y~w#oy7CJ?<8 zJ0-FJS8Y;8A$5RY8j?vqq69Av_t306Uf5d)q}OqHE2Ck5s2!gJ=>p28ZvTX0M3Cw) z)u_NOC#b5;ahjznr;Cym!m&=qw2=2FKj;z*r1NCo10g4(E>G?W!{I4Y;vi81K}KF& zr2X3qklvkGY@_%N(c%6Vi4v~8Nr7y<~J)YJhq z^4YGpft|_lQ;)242tCK3+W^hZcnQA?okAy+0@-QvO zQ-%4G=YjNh`6a<7{3*(T#Lu>y1uOVT!=E{U@#)Q@%bepr31WY8e#Y^R0%=-t^zD%1 zf&w2(xS(Vm95jLTEBbx~Kv*nn{v}Icy#|AfBAiXfSf;%4V%ivzDjg*<=_%wGKZ!vAgIyMy>fGvQxa@CL=yg-(g+e^8;lr4buKGPmT+P-5!!-f5x5M~p+kMOSU}H^ zYdH`VJnHlys*9`Si{MbxLC+vG&M`$NKMNzSNKfwMrl?AE1YW{LjR-5HW$0==I)_H>X)}c_NOzL%TiVwH!pv770X@WqOgq5PBg-se)GZ!d zMVcMmRy?vayEfk`3E4$L1xC0QK?m{Y*02_Iq_glE=?eJ!B+woLzA`LQU=RLmkSoJmiTAWpMpM+Ze+ z_sytxBhqy5x?SO5oh84T+Z7INj~f+90w-P^8_)28f+=`8dF^ zz;WdQVDWQY?~`W@KCWpH9uEL0V9STDfH2($#c_8&0BR^d%j4bVW-&=`o2=4wsQ@OX zgL(#w04;7FC5M&3ZkF57)J~}H(9JD)XgY6~pVs#siOJ0IYSUdu%Lzz3pX({F2Vluv zako&BQ2XzbkN41ychY_v&21>*0O>&;*V?&d#>DP-TS?I+E)ct#DFit5a?P+h(%;nxAYeCcWfT>`{+^ebnmxL>&Q?OQLkAQl|JUm60aL z^mPhG^R}httyh}UdWbOWmaG>LVS3*D!B<3uRrYbY`Tak3C@>r8en3!@Aj5w2ILmza zD9c*c###ANdi5O|8-uM%@&Q1tas`Q*wm`I+{FssYfoRuK zK=0@E1&F!gUmS{Rb@4;Jq>zZY-YkmsV6$DJ+l`p)n3WjsKtRW#a3hM!D@Pq0OP5xS zCFqjcu@oI{Dk3Mn-R1h54Vj|{#+coq*qlTrCov_NYv5zEHSGhPM94-tB8y(TBMLUX zZ?EN2JT* zX&KJ_es%d{EclZdK#NO%3Bh=L$}byjHfL3Xm)C-){O}c8TvSMRiDe^83PeeX1f&@2 z&#F%7QI{2mqRgUie@C~HZhipZE|k-w#(a->A-;uU1C$AFSmbzM!AfQZr7Y7*oMZl6 z(9C5zWs+x`j+Mlw$r*9p{$HiA=X| z^(W*KuOTDDi9ukOF^zklk#N6+A|r`x04EWxF5@vtH7=IwUY{%4!F4>IoKYEGee zlGiM(b5G;pH~AsRoB@U2!*Q63x-M~`3f-;~-q{Dru{Oa^ZcK4KNXKV=oB$7;t?#gG zKfQaHEys`0c5SCH1Arshx+KplT6o4kaJAx;HH|#=_oJBDQ08oNI%~Cy-~IZb#l)#h z{aFq-tEv5^T+O64<&d|m#+Q@ZPv>xtyu8r&6aD-5Kefuq+{mjAt%vHwuG8(AHOeuE z&oD=i_79jCek}$|BhE2CVPP5P4TFHF3DlR(arBF0NdHS7=)+1l-QqxeyIAdUGk(Nsh~O@?T48B&8(^H8{bZ7) z!Gd+d96u*HCY}AE_i=0IYGfUAlZ{ZlnEJCsmWFxB{>`=WjIdK z9w%!9Jk@pMr5tkvzWsV3mtTLEWn4+C7V(ZzyKuz%w!WJN>1IXo(_g4e;!e|Q9{ORO zhuu^SVa1AIHzTo}@JU5Q5L)A9L4$v=cGxQ`YlJWVA8LNli2R!@1uQB)o|1e?vG+=x zx?ohZK9aRzv7K*J(sZ%-wq2GFIKz+^J^qJ&(|PQn)oTClP1a(fx#~}Q9wYhr0P5t) zd8~X~PTq?mE%oTj+7kBMW{IpCJ*Hp-#x7C=a`1P9dBaYIptyZR(00k%hUXe#HBKKN;> zJ%=PgGAG}mM@91UK(-_FTlypLhf97QY_nWOt6qNpJCrR&eHpv{a zoumYnK2}?*qBvVFr$0qA0&PJ5?4Vq0RjEVP`PZk<2kkbiz}p8PB;~p2@GR8{`;|dy zfc)uH^i?*uIL5>J&+YSYfsi4SAz}_e3kZFZQYkuwWMm`tvC)dC%bomVLTV}d<0VY? z$|;mP;?!bWx_5`({0}&_f@+Lcyi({tbZ_N=|f2ot&1kLn^)0-1J-2 zfTwCZf07!W()K1i4P~92s+St@w3Jz%FzTW2eumiE`r}tIcFAooWWRw&ZW`E#+{#`- zjyZHd^Zlf>!c;WXl3VVL$S;lTjmR5}xprIT|4U@YB0%I#Wmn`)Wmn`)WT*Y(K#iHE z4G7CLX+>D3NmIfyP1}S0i|4>g+T)gK+8(z|)AqP!8ng#KG=uL&tI2%Uq;~pbXPY54 zbD@^h_DKzCySc1wXR6n7wH;hb+CPn4iy2#la6w$ z4<)DcYFYC0IiIez353H!Bu<{hgJUROS$SDX9ohp@KCzZf&)hhxVYzE^%BN!;I<66E z!TW5!dynqfR6&ojuhCJzg}TZbqIN3`yGm<=<{9>i5Ia#Dq z<9yIIB8+0CUGpO?55MR()M9J^8C53IydE=v(HP8T12yJ0Jo^ZWUFTDy2&vcm4ct!i zyWTKOl#XXNEj*)W4YBz?AjPnYfPmL=GqK9TbKGm--?5DbAb-ibM*Qu9njZ3 z?fKHMv5q|C!$1TMM@ge*9>GC9Ss*93v57ED5gQmDSWF%VNx|m>Dus)oLqrCQ$ZN;N z<#LNRLhEn~6jhi^F5xeE7!5vA(pT6OBK2?@@W=&i3OW&sdls|Jt1*Xc5fLfeArDT@ zBPs|ZN>PPxDl(H`wzXM=BnS36rqjByVOUJ~0DhfChM7J=2|M4yjBE)rRxWv}J!c8q&Hvk5?9?upl98sUig6XUFr}5|tHV&|a{rAtB@OINF z@r>{cFoMOZ_w?bmJY|&U0sriFyGN_>nwI4meW(w$3V{`fRn z{tZ4bgj8R)b@2h<8U)?F!iRlQXEk8Tn`HVbIB#CeM!mOsF>$i77^F(s@9xkRaK52) zGk9S#FkpnT_j8Es*l-e0Zhy{)6zV!50X9Trewt^qFBY>|Z~bmCF%DlY=gaXt*EU85 zCftua0ohkyJ`b0FVdUaSxRF!c2d@L$7r=#>10>^_j+SwY$>|N}!ug0ufKVXUGLHq^ z3FqiDrjlw%9mqr2r90N$x?z1GuSK^mK{ST-BIxvpTEX0urUy@0V^LTheezU4fBy*~ z3%C|nO%1(-t7Lol3^St5O_i{7AShvnc$g7whll9j8p*W+YT9Eh7%mxXYwtq>FjjO8{X6 z=~cS6kgAAI(~Zkua8N~NOm>y~MQvqp#8m}D1UwvzgXtNq^l=2HI5tu{KGM)rJo~$b z{3+EMZmMWNW`FRKUueEY-6h+U2oU>1 zB21>*J}?@*suE*CzNt?oU(`=)y7OOePB$E$;|~#1|NgstRU@zZuzD`)bo*_i9P@d@ z9J~KVIr%c?1Q3>~+nz)Em#CqlvRKxPZU`}J$T=*cso9Km&sFGsLYBYeloM9MO14;q z5|L%qHW6h)nH1B|RwT=JxKEgl$|{s1Zt;a9JG`LFl^)MnUP2Cu z6(+nb7upjjDvRNj*0@;ndEG~i_ZJhxR;@?+_upkbGV%uNkxq}-Ba;)YEjmYkKRcIA zPQFaE9_cbg=WM#%0x@az)5R^FiQukbD64OTmMr~}5{XBB z&0swJ!SLJFc<$)tBih=H#net6S9MR;gmIv(u+l`RtcZkmC=AT(q-!ezfsV{f%{EiH ze$L8MHbehQw|vt-K7vHp@_J2%W|TzF4B0sVRhdR7QLaKZMT@oE@1}$GQy1_=nURdz z0I^v^R8$;MOxpy664)<k54>~2 zxf?hD{z1>@O_V?-XTbK{&^sk$3J?-eh`AaynpVmDQQ1~*$-HN(YC(PG1u=Rl z)>Z4-+CHIk1EBt}@+Hm%xzA7I)TqxZR|5>GN?p4agyB^UOFE(D7JHsjkQln))!lfu z)LFMv^ zOkY^Ebu#=x(ho)?y=t(ZCaw0x>aMM}F$IPX!U*`sQA1gM z%`{{wv)1TCrVLvnqS}`hYr3M#;ss(!51ie2N>vc&ag6M>p{jU?v^(-SGzwCmVUQXX zk7sgKT@`PBRmBQE&ZdVAS4v7+E#leMZ%N}+FnCy$_#<-<&oQPP+LLkP(PiV}cb4pt))NzfnlFKMs-rH;AY z8iqkh;CYVUhBI6xCv|?~oOr%#Zt*&8a-v09=hSP|H07^8)Ntd9EEIIuK_?kp>ySKhEn zK5S=QF?6%pq?HyMGvwZnS4w|o2|D~@F&(QT31$>_dM6vlQbp09%tQ9=_C4G~??28Z zjAL)ENMUsE^P#7L%jIOzRS$Ef0t!AP8A`oqa!x6^H-}QY`xJ1)a~7NK10=mT-XOS{ zw2F=))&~^Ns`dVEJEJcey0bhu^eV`Ym!*5#pj)N82G2TfwAJKpG zA)2z4OOeeNcOpGp!tugRNjg&;_^KE&BKv6cj#JVbR)3038l%XO$~Y zh9*A2pi4Wh`HU zeXaD#Pnvz%m8%^ zP(w$felS8!%2)I&yh@{wB2d#Vk##4voaoTSTaxjDGd!%j+6&8bX>C;DYlK!-~_@WN!4jF(EBOv3FWb$9p{uEkr>c zLn}B{i+tR1dg80Rrm1g@jHZ8)q{}*FT1tn^w8f_3+k~>bb-veuNUaqDiqucl zbvvo}l3H-p8gL*Z0>3Uvl=2^rFFu{4C3j|p*9m5YHVJxN)(LEt_97EVQ!=jxKM{GZ ztw1KlNMuudkqTQ#YAWtb8IuqeIo7vl?j+S8#oexrL&>_v6;b1mVg!}OQHqw7Q!qNL zBG07wrHCdj_41Zz_SS*Xq(l`eA47hXKN%<;rTk*p^Y1G@f?}l-4F&~nG-J(AH3tco z_9Z*GS1$2z>E&lPPmd~R!}7rsJ#R4XF-vbiE{W-0kG=k;zzZ9{oveoofOFggP$e*C zn>?zEJ8cx})GJPxzQt9iJy<=LkIx7>E4<1zoVjqAoFdd6>(Tq|&e`hu@>y4Q%lQ-u z4-Cp7!pS`nr2n*pS`hj|>_GgH!zZi+kCaroC#>WH)4wigOcT!gsj}p@L?FC6oP;YMkK{jhw-4_v5Ym zYN*k3hCZJmo*$|D8OCEdSg&FA+`U0$W>6IX@7|0bSBQ0tTMTX%^G)ym>b^jU#7If- ztwQBVkh`cnq}^4ooozgFPKJoHOiGd-l`D!No=nQkYB1TXduT!2q@%K&;MCdczgOAv zB2!KtdjDLnXiVTC2l1Ss0vMGO%m9WGy2E4aA!0mip|HUF!nc*wHygc6VpetCZ>&^|wOdN^dGSdUISS)nyHA{#TOg$4pWOHGY-2O;IE;^+bh<8 z=#L%{X3}0xR};AF45qhu;epen-EDE_@Uu)O;?@AI9GL{*s?k9S{hkwK*hd{dBg4pU zXC8mOpMCI|R48Wx!YU1ou^)!=;=$Kl=;t_-qeo3t#2b{Koph_K2N4}<%rbE@jwGZn z@ABeZEM}EH(MH@-8kGc5tWb%F4xOjH>%saPp2_5WE0!&*dWo4{gnoD&#%bAV9jOb= z490%+ON=h`uOVw%sB8E+=58|l#?BD@E!*g391dW~@@+io%|SauER_Cd{wiK3xy-wn z#Q|(z9_KKAnK4x1jEfX)ok~LVWxO0+bf3Z1Eb;ocUf9%cvz)2lh@ehK95v`PQBX*x z%l$ondPQ^a1?Q%&>@+HghJerLkRN{}jf05GL*!qJ*;s8WM>vs9zpvEmV;c$*Y&-HS z)SYii8 zjix_8&_j)m(CRWi{4`%>1U7FYF1;BAeq{$2)4>FqT&xTa1B^tqM!O}CdW#E8k1ik^ z`<-_Ax%=Vm$D0!WF0RgQZ_AtRKR$JD@5+mhAMS2GUd3Hd(32q^Ey#r!yDedx%Hwd+ zx&FLe-|NRZI_0%n-ZzG+89HH{Cdb+D1?0B z;{qsTL-Y_HyL(@659nrpFdeVgy|3M_+~$Lu>j5na$0NKYt`>morTTDRrn<}dVl?i7 zNB`NoDB`x65sii2KW$SE%O3J-T5uA!Ak@Ib3#Yekwy6R$ zJCvd#Fw2g|RM5{UCR$6=r2Y!!0efW+ww*MGuU~j*s7~h4Ty4tjeDd!tFWCpn!DL0P$8e?reOdBC9*^qkPk!I+ z`pzJ~<+yIQO5Q5`Zb)q<(L(%NwukmxT8ql@zqf;_>@PPwGnKf~T2j6BXlukE{W~l_ z1*BI4l{WTr0R1M-n{=aYZhIyEIkT^Qtk&fF0bY}aVDNw=v0~Y)V1>=;uEgcT;YAxg zA2DF|^aPWr1>lO%nR#)Thr=L0aDK(sR58cDvKpP{_}knZuim*{FvovI)0$7-7n}os zg`nZAq;qTKto*C_to$YNzHqv|D{tSqQ>5K`#QW|B&?Sr2VD-~Hp2n^Pd}5Lvr+-)C zq<~=U_CXErY*3-xPseyN#vVl%p&lLnARgZf621yh8^Bnd|M&S0W~oQz9lsDB>eCqJ zEm?LZP$Ip!y)SJt9u4DGd!GRZBRI^NgHcn7_#?War~Y+7arSLr<7;VZiG%#dRCo z=iNT9%ovLJr$jkpQ4nJ|5QWwj*@Mc*;i#9=*mb+u!#e7pGuZ4EE>uOJuUzFDU$9<% zi3=;C4vK1#t19$Hlk#b?Sx&c))ke#FBl zscoR=CjaG#VuYn2qVei=D8PjK(lviw=FOK?mezX5rL@j5UL^7UdU5^STQdMaaWbC4 zL5oo^$7l_i@rP-5aD2+hR`)pQ7>bI-RyP)B=_kn3i|e0vPk5df8Ev(bq?>G$j6T99 zb-IXg#O@7U{h)0#jSM!aI6j-=vEv%*p~2($AKNimLU5ZMnikXWn?;m)c#cmE9qqek z48xO~?fjO`aftiWg@HlH2rrn3f3umY>hMDNZbFpe(1>W@y8VaXveFL}PBQyb*!K0~ zlF$pUp?rq`VdX99TDWNqqgE8f$2sX1)774Q1hV6HJs!p74jra=_oskYe=yk1!Kq_a zhaZ>`C0W%?Wh^bnYmtSd9*=6y>D+Xx{Tl27Oa`f^Y<(O4G&dHb2TSio-Zet21-o$hxQhj5oQ!P$gee+>$(P)y%0V zRco?UQMSfP+ZpgF?Y?gDl3CfAq%&oj2APG&Q8aJYNNw~IX0>O-tK(@#^ z=LO;drkG0Aglx-IRvol0D%BhZEGn80+?IkM3yYiESA#ETZEf`$Tk*Bi`y7lmsZ-ys zp8K1XtW8V!e!waKXY}u|D8@;Z6P~bcmg}d<16DdpfKM?2AjzNb17MG5@-Nn+VD~7F z;GdRU?j^`ui=(%c-7jT zR!lsBL&6=u-s;Y^_u^`W^Qd#)RnpY}`q9 z-@2X0eA)`J@x7JU>e>-rr7Fs*EfZFwQ@~yF?P2|bk42sbwzsR|v?!CT z(B>&QFhh+wLvqGDQ@&Z1P?;Z03|Dopu=`{%m8{WhkYQyBGt9;sW|%!vXWZVr^}Tk( zjEI#g@sdq4;F-GSh9ucLOh}l&c7&AKbvq|7ExCr8WB2dwC+q_ZbaV-zRf2xMKL&KXd}U z52z+ec^g_nN>jgn`YD3ZmbrXv2A%6jwhGZ!iL8ZM5NbBR;h6TvORzO)CWGMiw4wIeA-tb8`sTALL zEAph`Fon1uLEW$Ma?O!ecNblEo3P#GFsbVxWLiG_LzX6yZ-W-4bnGDs9SCE6O+a;e zMyS3Sr~Y)Ww@s0ovo8q@flMiuW;1y=g-@!!WCg1q$;>U#u` zOW~0CB}%QNtO!b=FQOWqH53M}vaSv~WK-aK&VjSwpqYjoa^OJFxGWwvU*KDXK%Uo& z`GR76!n20Zp80b97tD9qiwhBvEoGL<-WK(+Pq?Co@>js3M(tn}Pl6jfXXqVpD=>Fj5*NN*gj>DCP zjN9!0k1qgFV|i9puc{#-G=VUFbLh0LHY7|uG-XKK=b?}UA2Fc|45<=&#*ifSf)&!F z^oMZz)JO;+d0trY*H)`z5gYiIkeWPwh{PjQME~OWke`0kTeJFEEuVhoF`%tEx37V~1L+U$ft?P&byzVfc<6wDmR~vR!BnyjJIK!$ zXVv*LEaLPz!-5Jn}9w6Nj5vPbd9uC$Qm$)=1okC)VfIGdO;U`!HY>ZgDA{ zj<0aJGGF6=U0U(OM1#<{U*~AL_fD>GLYn+9Iw9@7UBAQwY41}0O82Av3u~08;;LBZ z>KFPRA!aAcYGETh9Y5^XJ8$nzJp}R$;#6QNlY*CphEffnm|6kC00uPEb+(IY0B0#) zPObi1yb{@%y4D{NN?BQqPaN>|R;Tb48mUaPLnSiJ!dRp-D@z&$N1|k%xkRGKOYZN9 z;&hrm>*~X4f`HH4DYW(!ZNdU0MV7I2OOdAU|0&AsEjdBlZnH0eoXUV*G`jx@#{zgo zs5?iZNC=#k9aL=o%4f1B_qkL}`FFJh^)I>AC+bN7u%*aSrUD7N_QCbt={4pd9u-zI z3j0AG3ZxFN_y(O5T?hg0x3hV9u~<>OEqW}v0dx$9XQ*az(9$f<;Qk1Ua6_Y>GH_(Z@xiI6hF< z1NFmPBsfQ14(P^lt(VIotr%yeX2Nc<5 zC!kADY87=`9>3HN?TDm)s<$xp3zI|zClN0ugzToI$Zs4@%01rN)K3ap zH<{t#N&S|my3m3UF%F%McWnzf$8=?wV>>^}$(J!7AS_e2C5H4b*$<<#*^e1g{*qNU ztRyx1BAT>LEh3|qAs}9VyXk$Dt!|>g<6=_WX#-Lf%g0zUkwG2}0)D*c&0Vfp(t5LH z&9&A{drMxkI6;osGipTsR>~udUd%S+-xdsJ3O1iMhn1Yvz~r3dV3wSGnbctBGA|g+ zO#iEg8COy@%&di#9wyg1J~tl>Q_mNgvZ`$DM5`*CIX*V2H+`IJQZl`MyThzX1c^}Ikua!)w{YOOK7J;v5T6sh33`3;v{74YudtG2K06eUG#HPL`R#dioekf z9jmo;6=4ZOe*Y`OF{L{S1xZbuh$gG7h$(S;U?p4_!!e?y!ISr}GF?h!v4$q%mQv3o zh+^GLMD!xFkf?OL;me)K0obvtqmyV?0XNYs08Sz+L_dp}r49(|;rGyV(+9W*6#&K~ zpi2M_E_@PbRmV*|vJiOcf3 zbc@(V%QHN_{2Mc9Q;e@LtC%@R~iP1 zZyGOuu^6(Te?>%y1c$)t&XEOoj;FwYmPxI(A$K!fRNZ8R+ zDNk}B=UrGUBX9(~(7CM>piD&z6t;vJ1i2+rNYj7cfB)2f4|@Fd1lNYRz>zKRR=B6w z(oPHo7h=u>sUDzfD)5HaP>NCI(P+JvHm)HJn5R<;Gt8P9WY`rp%*d87r>vkv&7S!+ zdlZx$Q=hYYaE=u*%E^~8LWX5ta1`X)cRUJ8SvtST-J(wr*E&Q)C{xPxIHIXP3rd}} z$4?=v)p_BpA(TOkCSRLrsOmLRn)Fv6@|4thy^9tE@gWG;Kt515LX)sdJtRh-hzufy zo86Kkzgts#b%Z9Vw)Qw^$tsV7su8#I!BWxbZ7XU-6~>Q|y-|cFskBivFd>b16t$>F zLZ%Ot?Y3CIVYTF?S3PIZQk^b}i_7T(c+_N2rbgm>@`bp(`gneJ1#iafec3D7 za_+3(`*XNl%7AwQxVG$B)k`(2k(+8w0ln1J`XoS;>@#xybBS1+uD!X_1x#mUh;ob^ zVNP--Wo}l=s7zMU7p$ZTLKD-2ze__0jZl;wmtv`$*Si;MF)`qk>^I^`=b2Kd5IT{Z zyIz*0s%pi6(9~}Rs?}ne;9P3xR2wbfOq^8-2&>wCMaYB;A`@w~K=80g$FTuE>Yj=CV_eG(Fd&NgBGi{2B=CrY@Mgp7+yKo!gB z28Q~wHFhIF6-{-@+c7;gbVFnoO#)Ar!AK~ysedF9VmGa!9f21no|b3J#6~BhpnCrm zn%e!>l2z`%LRO=W(L|N%7$$0W`fw=1ZPj?X;qE}2dn0HS-I>L))!v!%UvV|Zzw{DO zka|H)Y+WKVzxl1tst`4GX6?!P(S%?3IDdSR?xU4a(XgjYM!dYEV^||^b9qn4kepkR zbajj+TQLKkogE&V6c~sk%$(#UFZ^apg2ZuVKs=lsw${HJImnf z(9#5-rE@~k!cAVeEk#TZEggr6%u=?on87M-{iKGpgLf(#3T1{2?EQ!Bob`P$U48S&G?{yW0R3`CCUh!o*>A45rqSsBm3cjzKd3nZrnRpG@`|}O~WIPXy zmo0r2)$L*0<+<;B*5zyBNrwoRub2mU=6j!V`KtCd;||g@?)AG}730^vp?}>h>`0^4#}5>+&`2VYkaO-}{uySGBhpSEOg$tFLwyd|x-?@{IQ~;~KEv z=ZveUZVxjq&wbxBE?<*ubD}%i?V6S6z4r;1uWD}-uAQE6uioM+_`Yt!#O&;D#ovya}}KTGU=M|-{-8W zs&5a|u7dr(=UqirYNtam*jMOMD){ex?p4&ax5;;$nS8I+Usmva-PFr7-pkBuzqI3!vB= zf+*O_UsSB03WB02SWxT*J1UBbh*-Y=%(l00ci-I+)t{PsyR);qvu$>E%0IB~oU#AY z%g(u`zt3Mf223>vFGeD3PN20}ot9Tl{0Q|JaAXE`}k6_ViF}MNs?atgwgrn%K zKa>bS7-vz4`mjl%PYUXppBE94bQ931n7=U;20yS26L_yc|HgLoR`6PTdcqHe65yQ3 zo(d1KEWy{<1zunh=Ar^}07B-ldv}L3sa*tW_5ldqV+~hMa_);?JePl?t z#{?z?V*Vtkamr}G`%}bfp44oJrwytYb{v$tzCd;wYDCab0(|Mq;A8|@ylN6IfDaXkQovGJv#G-#>4Vd=Bb03QwTB=KxD;iZhqC}5 z{o!Z=S|)W~nJm~5m>Uq%PXwG`zzN43EffVSVF*Pb;j)FI;Lf*1)8tqb0v$F%X)m4e zBJ2bMB{NJ-gpv?nrHw8UQ4vq2tB94ig``l!cALXiu#)Dm6)Y3m?@vJtg|sMWFB?;^ z)LA*|ABlZP@!VlM@PT3i&%mHxz6dz-7D+goA`*q~G*a#LZp|wtni-=b2 z(+&EIxuw69h3+F6qdN^x43wj^YqG)^sR5c- z(OfFFP;PC?A?kGqDlBCHs2omFkcFibM};~$S1t;wYY_1oZCoMbQY2Xs^F}c864RY# z=v}34O+=5DxXwmxPNwfo^W83}-hhKycrzrqfCM#d%{Yh?ma^7>v3@k7l=AF&Q8`?y zyq3p{VAZ0TTbgWCKDDx|{E10QdDLf32S9XEEr4>+eCqIb*^v-+&kQgyM=5=(f^DGA z+)CB_)B!ML0`f8SwYZAv;Y=uj#a|t4i7Hc|kPfTk1THEIC2-sw0jNrLg`0R!2ls)} zGNO?!c@|TlW(}ua*PB775{G@_L|Zu+xkwW+ekds&3B6~L2zj4zvWSw*IFS!3I!!5W zH!n9=KFxJltND}^VxO{4bu_mUS*Y(FO>yf2MuQ+7 zzz8(3HHZCOzBV}XeIa)MeBJrcn-~7U~qiesUY>K#@T@fjfY2Pl2ly4(qB z`b4@KVq>SE&MlAo8|hB(tp@MlUG#TRT`EGIu#t&kF9aJl81I@gTn-sxJGLVd8>^Dc z@0#{xmnkGpE4O;J(*t$%sZDliD-eSj<=A2JD8O*$-4kdZsvQniz9DbDi|M-C3s74G zZxF&VwZVD=E-}!GOWi~YS0RNX+b-Xejex{_AxosWxTYwqW5sl(X9DsPf5)UN#u-KX zS^^W<+iLD1X?HpRmx~_%_2FPJ#*KMw6fGpt(QAY|0$Zlbji*Mi9b#Xg(}dc9aS(HH zub`X(fN-BAHbicqS^{>3Xo9*?h=yz7R$%P4i=v}k3lE26Lk7<0k&~c3qc|#yOBw+o zE+lTtZ7zR6J;IoST@hrU!vV8wY>?6ib_7jk@r}q*gZ-5il?> z4NvkKXRtdLJrIM92DO-Ewr<=K-QM_g!DQ@^1%y^$snQ+_b|A@&6N7LQbP7Xw17Ra= zM}=#gb|ei98F~seqRChnw4HFPu=%IF^Be!mi3RA&YT7l4)%o!(1|b z(g4_Or+8owd&kKxK>OrPa+4<;h{0;gmQU8M-DJw152U4SoCyCIXyD3i#K9vc3ke6L zc$6?6HpS(!P_!Zfh8*5j6YX$jB8bC$bdxG;B0+X^6Y~f3yI{gaW)Op@4Mof+fQJEa zTADga?ZL-J<4p}wuNT};w0X^=LTHL`!x4r-8b^l(tCsf=l_@}j7czB+hyB9ev~7sU z_Gp0^cRrW9svUWZifCyv9)`KnTI+H9#(1mCYU+IOZ)s&oJ$jcOHQHO>;47`EZm6rN ztTpZ$FmK^v2)he}H(|$EUVR`M3znz+@urHlSQw2<>@BpFAvPwKKDz=c8j2>^=9QDj z`!YHr0Z}nrK|5SFqwxw5i|57sp?F1YEBNF$2+6$#@gRy`yv9!EOUw}X+vzfML~N6% zHM^96xtUuac%iLrIz&^T(m&RC)&MnJwY>#(CL+)#w1F$OTsL=j&A+IWgMaZ5JLp={ zau=PSn=AQUR?>x~xjkKUTft-TfC{`|0`2MliutX(w5oF4DBtK|_MX|3MaOK(R=@1Y z4$z`kHfZ8clbga(zMDHgw!;|=;o=iLo{64-Keq`)M@_}W;BTA8(llhy!8K&a<6O)g z6newqJU_t9d^6`eKZS`;$orY|e#WhyI9Vk%B@nP5yFXpC^|hMb5I0Y^LEoXOEJe%9G;gf3vv)MF8Dnpl8w1LhKN zY9Uu4d@gft(Fl!m*}@GT!-|pnQk+51BiUHKczCGOau(2u;Sqvf=2+WUz~Dr|2i6qUBb0etiAy2sLGDE^`jk_KL z*D8|1xDnjZ-Lw%J=w|dUZ31??6lZJ=QJlz}sW2A7ZjMesEI8^(jr&_;p4m)AG>?5I zAfxL(BcQ>nf(b4wmkp+ZTNm=hgu$Il??vFPG7$2I;mSm!*-o5T%P+mAQm$^;vzzh2 z2yI;mP$L>A(|Bj#;kDK1DW%MxOgn|ZCfwg11YiVgh}wC3BX(D16x~*k0%`Y2T(0Dz z5{zfsGH`!kpti`PrUs~96HG92h)zBBr?CXSN3Z~(^{uHS$X6S{3ODU0gA!S%n4!ix z=tfR@ss|1=l_0l45F{y~R*j&zvMHz*z|;s&9DLD0s;O`yI5yOj1gT(}bBhRIjFDH3 z_??|J7{T$q#O$cS2##+{CT9&sV4Pl@OSL&{FhYAeL*ZCB%pQwDUg;|6j0c)qe3(c~ zvr&W&7YkEqw+l))1t8peD+tO#$WEV}y%W=vape(dE4|HgE{?fdFxBDmpg7eIo|ct^ zd51p1iBrgQEGMj3;yawi?MgfM8A{nVySb^nnF$o|r8~^faUj-?f~d4`CP(zfx-&R} zHnJ-4(n7=bh0x$q zB%DgL*7_mLcOvbykBy5eIYE5jr!W-kIJn*U=?RJx0tUz5`tUv(4vR;g(I-8$@gn%S9{cel>1P}b~b z72Va?>}GXTPdYp2D&4H2+sd2Wtk0yu+3oe|Z2Bj}kpBkmzrQ-28~%?i&Md01ug&bt z(9;cjnkxUHrRiM5zp*l%Ys=n%p?mcDS5~EScbpfcO=}w6sc?m84^^q4%gY8O0l5JP zo*vqAb6re`&A-I61kD4bn`m?yKawim<5x=y}`^#sR3-DK0ZAsN>_33dn@w z(=M;JK#HsCdz~m+fP`;`%XUV{B3?BMkW|_#^e&X9x?PC0i73TMW3pEv)f&@A$Zg{d)-x_ot^F~fJAYp3MMOvDBI05mFiP5n2}CE!t5c9 zCYe$7j)~G0)9$1WUhPM?JF5R<= z3Tu8SQK85|028vMB^dX$MVq+LN8{!2WMMKZ+hdA~kg!S|VIZ1{aD{Ufqx#~aAfk)| zN0f**qn%Z{Eyv+iLqY2zM}2}kIHc`wnuiY+C7~fhNz~yTwqHuXhG6P%7Sx_o3nhyFM} zys1^^;dx3hhEN0Bv1X^YITc^A9UoofP8 zq{4&Qy~FYE#tmdN>Q(6%GY7hoyKf4LNW`_~f(X*85Y9~wHB&JRo+t&`RLkM?CJi(y zeksr{T;vio3A5?AC~z6dA>WJ?rKd|{7_2{iVKCt5mWV3rNHobxyjl!awS~Be7(%tG zV1&xBBsxe;S6^#19$DvYo|!B*Ufy(Qsxscl9XH(yozK~D<#R!ul?r+G_G3Ju!4 z$lOHeAOmym*#WzYT$U5$eHti%YCBGlM1IL2TZ5sNR_8;TAhpSvoRAVWKoa=Yu`oNb z?xZ?!q>rSn=uE<~y#zIFXj(YCT$ad39a`%qD2ZzVRjTP!f`|<)V0d2lwSl0~;Q*yu zngWhpG|P!yL{2P@LWed`&WN144iGK^qMi;;z=R0Wq3Hxim`hoB=>$k-3%^ICTM8~R zR2-7tG98f8p)#`K4khf!>7Bp{lyptLO*#S6)kUwJ=~2p%Y1bj`87G46hV0Y|vS2`@ z&!mSAU~bYYFb#@^Q$*GmgWqt#CtyQ%EP?>$BIXUsRYdq2s}dM*C+u|Fm9QhM87pm=Mk-w|>_ zppZoW)WNk%eJxxDARHt&@|Wv}r)1gw-3+(im+8oo|~a~2R}qO%RE8D2>O zWRi~3{^0Yat>H)uAT*-|SHb2@psqmbFu-_Il_g(b*(mIy$^}&=rQEQc<`ql!_N}#w zxji!$Wmxh63laiUNzkPb;~Q9J5p4l!9=Pq%+rTUklR$nl2SS0)0#^}J$6+5-8;9o@ zlyT~bDQ&4(9^xLzGx$p37w4;ttrm1Ok8uY(*aO}JXH`}d&YNQJb2fpxRj8WJ9X(h1TUicFBq zp#fF(X8VQ+vgw50SrsH>bttv*cE*UtHZ%ClSjO3?GgDFW4l)|0SVkdHrs6~_A_+d- zKJG#^Gl{UHyr>W~Wv-C;iJ|^G*vX%%Ojd@4nUG|%NzPQ>WVw>D3@j9CzhEzGX|0jAcQx z&1z-a3YTnWED3M8Skh=AlBux8MP-B(+ju6(GzPxJZ3VbEp$-uEm(U$;&&51;Trr=R zM1&LtgEa8hmS_&fb9{-eNI-o00*z`)2e?H-9WvlN!R<*9H+<&h?(mEK9k*OBy<&`2( z{mo+KiG=W<3&q=F;D;DgwPezbn&@;xuE=+gmsgyHCaKj zP9m%rf9|Q-v3bzXtP5ZTK;I-Nfx-FB1@HDabw|^33x269IHKO2<)n^v$8J zN{W2oK?qh4@mo>^(zF)vp(s9?D`JtE2*U2nzTh_#zS)vuf$$_-f*+MzZ7Gdm@rjpO zxcQ3j5HS376E9$QzAEsM(`HvI*Rup?s%8BvET~pXCMHxXVC~9!me_`cFQ@WQOOSJT z;#Pnsoecu`O5G_W7KJ;pIm6;FZHTPK*^?a_Mzr^+tGIMN8A&II+ZJcfhy*5ECy$gW z)V(8hqiFC1NrBS&T11HSz7`RJbkfP!BCQ1Op|J6reJvt{qpw9$++CjD*CGM3`C4R* zrEQFu`$XcW+2oB;!s6g!kwEA!7L~c?Vm@F?>fxxaLzkGw)}(i-Nc)}Er6L8fiBwd- zVFbh|SWvvL(tX87t}Hz)k}A@vaoUhlr9i^58QmfxHlgXQdd|blG#(5|OVW8TBmn6> z7*ZTKXq2r4uXJqBwRJ=GV8}#{wtTW8mfj98 zel%fs3?exN2zq0wt)oMAkmKmyg$bdVETMsM?Kt{W1Sl?lAfR#O<>rpir7a>ya1H#v z!*i^2QOj{IBTh%POeW?)h2I(zHnr@(!tSV*m>jxkFt}WFPai;ti~43iMA68m zkO!Sgfn&lEV5o$yak+CY8E+Xp$0UOmUX2=_;cyw3k!TQL<$=~|Ss1)n6}wp>Sed0T z%^P83AD)VU>O9KJhqs5|g+-mZ?cREiueLs4oqO`sH%Q&BI$cGyp=5^FzymZ)0XV4D zij=9%OJPgn(L|yWZpK~^ziR7<1LC}~0Eu!dIoK4uY?f8jV~h(YWIy@Uz1upY(q6KPOmC;l1 z!~TfyZ7~Wz5(+S`!osY#oycYN7I?&ZB|4Zkbz%!0c$%gA4ytB@<{6iuTM)d{${yMY zdbcn>l&`d)`94;Qvq)PLE?OD6Q0TdABGx66_-X-Hinf>r#JdlzfhS4uBn@ET>xbz8 zOYJCN{eo9u3aFvt+a76+6AW9Bwcz)M$dfZqE*GmAcRPj^4hO@+;4MUJY1#{VL(@9} zo#h}}M>#=YPI{YKg5F50A9T3cWzRyz!2p#ErlI4@70}hU`s1+(1n$z1@h$>TWhzP6 zj+?9<_NmTm)>WvS!$ahaGzHvjqEMA^C! zvzfC0IvC(f3nra~sW^r`%ZSb*rbcqUz<`>x2kZ?^BRdC#*4Y7dl#F=+l+vS|(*kF} zfK~-|*fiYM)RjswYhvaF%pxj>w&Qn%=8O;w0eefdQ~)HT3=Bs~0@Ek~w++6()xf$K zJ51jO>=45Y5PUO-WjJ=2!%}51&>jJ!H%3Cl9VBRLUP8oSG(>J|d`p7-ajniDf%V@+ zAA2QAS;MQs);8%pD<3VGIwe8Ns{uu>oiZF6yRAW!+2gQc0X=WG^h7PSnvDt|=5WYj z5ZGF+i)_1)fX#rMiN($lzYcUsC~f3W*eMH28wAk4;8RPsYO?yk0RRsL&{43B1lprn zBT0Cy?M8yqky*2=l$$@LnOy=#M`X3CDjJCfS|M12exgWJlAv^C)?QH&0q!zkz+@c{ z97IRMm;*9$$qkhqv)<{ZFdbJjxX}czA_~a7-EtU9v%Fq)NN{j@jF>rkFffE&#drcQKWz~qg zi(C-=N>kQX1!i*} z;0y745+MwtsKZ$_kO7;b9oqEe95}95#ECGR< z(iy@wJ?j0p8m=)KBDO=2X9p92Sl~kI4x}XhE^^YUy9kE`nlN#n1~prjhDqFs-W6%@v#+c)ZA7`{kGURidTZw z5nHkd2F%@2sH4KqWkG;i4yhBt;y=8dWHM?_+NI`NoQMvrqqdeFht|BgOSl;{wAlcy zBe$+43_Q)~Sya|wbt-EF(HvJujn)Vv0Xw3$x(Fg+Au879oQ2yuP$8BcJ|tv!T=Lro z%*5_uuy{eZX5dyP8X%j~NCdIws8WF1U`miy_pDolz^=|{I7EnC0(8+qi7*(4a|GlQ z?Qj~peDq&sr-MDfD!^^>vLhQ`mQUV6iRgI9) z?l}6Hl(9jx11PPYi0_QA#5f& zM+(~}HHG5dP8Ni=(&h0+&?`GRZaR~Y41M8xI?_P%lUgBaZM$|laoL7bd=Lq#wWO<~ zA#hDaY%CmvozfvB0UJh@URYsy(%T1!P9dOfC;-!@2;&ObQ#E>4g<>HHgzWD~Mu+*k zf^qVjis>~j%b494$0Ow{lSJWA($~XIQ?9+TI&!n zK1kwzE_#JK{>YgagZyTJ3kaLPaCGDwSqNOz>C8%`B#en7(zH2(H2!3KxvA}aE$o?=YZwmXrn)j@h+uz^>VK#x4g8XK`56L zm+~a(wOk}wujM?c8&R38Du}bOtqR4&%2w$uh9tGcn8aILi2ZVvTV`ZDK@<`RYLRYq zk>lF>4ziL~OiZ4jwzEof4QW#5ajBz7lSDBK%21FP7BNQ6E9Ax;EgI7(Mp70wM>{kL z1oX9d#4S9s%Hz?L6YDA#fT$d7MtEVupU`*QG$H<2#p)aZdZ=@RCGi2rf-X<4N=TYy zBP2`G3wC3!Shc#G9jQt{-J%CHSfvL|QoALu8F-{71hH)pa-t|~OXO6M6T3kdd-1KE z1fsOuZ8=eIyWI66(sOyg5GkUdmBM>0Qo7MysqEJF6(co-a`ioMMJPi4{ZfUbe;*u0m%u3Npb%PcH+g7MNT4lC+Mf0N8 zDIrp{4qE2~o&BInDo+$SQIxeMa{9=L-5`-%TquoG%@;XqD+p*S)-4*kbAkC0tPj$V zqzF1#DVzu*#qrp)Ah!P0lge)GV&O&YQv$nFrFF-e5?HDX*QbpLB*j*WrpQDfDJHf- zpfqp|R-S|MYPAK?J?hbBb!#$UQ9JcWibe;8ddLdcsfQ`{QY6JjJxp<=9?gUqz&SGd zkWXks^3qa|Ky;IOv}||gUKtcssD~*U9Te)p1XZYqDfUt%#YR0$aikv2G*ge{b(1!< zY`16wMHSj$iq=buHpujsdB9r?_X)!jL>ZC53Bwaibg}X@vWTp$r;1f{Yl*^2S~TGa zYWFOP;N*9C)H9u=h(ZEJFgPNm8wZwE7G0@iclEH!bZZO3?pQ?O$m|n^z}P!jpe`a8 zrr60sQutgUm@%chWT9oZcGyX^x$0VQL5ele1&qDfA zOdX;indhIh0RJMH;MEP}d+=Q41cj~()VvOm^=gU9co#fa0pr2()7ngFEWRE}lwDxS zh_=J1(2eqcZZiVv^I&U4)Bx=k@Jc$r)G6>nV5z1%!Si{pz;|OlXc(Yt{&0Y4NrCJV zddYNURZuh)l;4?{XiEcwZBz!Mf?^d4ou*muPJu+4wAEIrq zR1`32(4}>8t~3)ZW+feY-4sV@LT9#fR!WpMJ zafc{t45q<|1XDrHNO1^I3j^L8+hS=jVjFF6W^}lY;I0`>q?;Yc1zSL7M0o%+46Kcq zn|^OA)flK&X^cJH3e8WgIJEa~6vqvLDXOKRoiLLR#+^sE08m*f%4x9SdbI;OP!Ke9 zq%li#w7^)Xs{SgS(4!!iA+T2+4FuZ7L8zEPfxxK-Q8CSj7tSv$WTt)9xzM+!2yn^Y zAypVe!0k8ao2F7fiIkvPWH9Ru4V2VKCMoEnP+JVkcte3ETZnFr!BjLfV1n9G!(qtL zw$FG>;2g7{9mq!O<(w+398N2n5wKy`hvVKq*qLZC2Pph7E-MRzd6L!T6QBVs~8Ywii$#$lmr zMHu;TU?VI!K>7B{tWKR)2|1sbYf=JgUVSo3o1(HxV+kLHGqz9-o@bv~F2`s<3S6G0 z1cEkm=B*kTn-O4!1Ml6&w%|!f^Uc{%d`yPoG~Za92m=*kA(dvxsB#b^5}bi(y5!IU z^gT_ojfKeu0p^6}-jiJca*ah{#ek}y6@tb%-3g3k=U{{ZchwvMF*>xx1z^0gbYQq0 zb2vZ+Q=9&4tlA-njxv*QrxjCHc& zRtgo1GFcXIA)m-LDe4iyNIYac7?gCDJM1O6&}`;|N+WTh$@YgzHsMxOTR#m3$H{Ip zsDj|RuUj8#P=H8+GEaZx-nhqJKF^GF!WGN`xuK6zqZ=opA#@hALe`+6>a3xO$8>8i zbXs0!KRU`vK=SG8a7yzC+ay7m$%l(YGbdLu;mWgs%!qLRBLbSbU{i`Y8F7FFYzm|q zkUh45?1+V!CZ0NX2+1G!wP8(LWFT2Muy7bysDZG_TU%5Le^B0Mnzf2_U8%}V+>z6&BoY}b1Ql0^K?lU4 z;I$Z-9X6tgW&(jtj0Wv1YD8m4eE(ZbbK81_t9N~8|NUlM7e2uzi$X-+tq^HVBAHILiB;`z+J zM2Wxrl2kHE zFm(qvN-PY9eLxKG>8T(r>22s)$22)5-cPJe#_|K8lFJSU9oCHQ9d{^PVpbJc)V#!8 zE@~)4V0rvDJ26~#;yJ8okJ#0a1P(xXNGGH|qo#S$xe=9^cSaa)FanMq0wI5x-7UNm zCptV0!qx;=G%)FaD9On#VoS%|6)H4$7ozZ@>ukpBkW(KUOfEfemUEY2N-?-pLYwh1 zz-~OHfthWmR4}}vm@J|+IG9LTz`-g7F^I&+fMf|cHXxVjfI<_Ja6p2tj7CAu;M8-l zZL&d|Cs8IRpY|yyK_jClY^99tCBR@m$Dr!ap9pNB4x-^aI^WUuYpg#G#+Tq8uC_e{ z4*rl&t_`5Yqytr2gWwPl%5^|FyLp*1E`&qjkmx!f8Ud4Pct3a8ZipbtXu_o+CO2FL zh)bVaQmJ4lu;RvJ>EQ65qT6q&*l-)F3^ok|iCSwiOk9!~2f~G$jsoZ~3fMrK?UeC! zp>#<|rdSS}7+(BshGS-Qcw4c7nb8sZTW&B0RMsra6ataqHp81Mz~E^nyDJ4R@4jW8 zlm15=xQI@refOGF5kR|AKZp*(}4QVrhK#-U_Hg>+~i@*@;fazJ37LU@JMKpoJc zh>*c@2L$GE$E&siXzo4{NOS)Hp%yp^8oFZKKwBXI*>-eT2gE2S;lP@k0u?jL0u8`s z)I_0(L1!8>q^<^Prmjp1$?Je|)MQdfuuh1rM(7R-6jFeJp=R={fMgXIN;zKKZ~(%| z8Ef&wv;cOc6x=pO;CgT5HORGw@1{0WT%{#s|5E_XG;kHt7KT(6vdRxA z2`L()%s+hXNLMjFXDN^JAhqq zMpquluwhyd;Sy}uTDYSkelM;sZ0TThkf)L$-J6+mmE zl<2t7^XWwsff`5zaOVk-M#iBxxqxiM^`LYNk`6iMfIhL{1-lIc^&%_{B0z=uq8p44cNn_2kXLR8G~`-kCs!5OpfYV_RC+*FbCGazDTlhq`vVi1 zTFoYHbSjZ+QN;^BmqtP?=h~4#8Ti#&U*NdO=G8}=lPGzpPqn#Eg^*;pFLIefG2Dr% zq#67uqPT&6P~QZkAr=HZ!y$rXTdvz>#gimoOdp@;0gH>O_;Tz|2;~Ac5R#dy92kb? z2u47PHbQbN?m^3OE+cg3)iQLnh!VdsK(Pw{uRLU^m6$j+8OG-G!$vxiV27>v3$CWCtE05~HllV$?K@d2#i-@rv5hWf2|5%Kpk}ld|Pq$c8 zC7racGZc=6!x$FS-{ymj0;KAR0v{#?qNxakZzM@DS(|fnrQoOJOH5XpXHC}PQoeJG z#!5-NomP?{u9Ree;^efTT&|K>EZjwRCs>iSC3(ICXICUJ&$!WJ^4xC1hLT7Z$iPxQ zz=A3wdRMS;0Z}+iSsp9bRR|Z)u2g#<8f->~xXI_-p106~yk z@AdeygeGXq>xPwQk2V`7X+dVhN&B7+P63$-C!0?%U3x!rXAZ%x}_ z6F~56+s?qVZ94zRXE%g1rG2~e>XGJ;w($pGrkzO8O)sb|D$5jZ1gHf{Cb`XhWE z#5cr%Y~(c2_@+EU{w(3>>7N;2L1uiorTEhGnFVy$AzVjId0ojkBjX2a2pKv!2!J_p z1_R|rDm5D852u3Oq=+*omx(5nuYl}iKa2Fq~RX%j?HLZ+W~8_FfR^K@2;mTq`vt&k|+&ar;ie2yo8DjY;C9L(PW;m7*D^4llOf^?2yfCvjHrNpOtDP;` zWlXl3Cj(ouE;-eei*^cC!M11|ID&Q*+KS-hHaHqy-U6&0+0Fs$lOCVXRnQK)(b0HC zYjwS^n0Q$6lTWYLTM!Q>aEqX-;~Bw=d_F%2fFez-06bt;gGELhLI=cw60Phkk(03- za2`U4^@=k7z$lk;8B1A&l3-o%c#h{f-~#Fsg>UvIAOTs#loE^TyCMN}8f|C+>}HTT zI^vjJ8f|NKpOwfqMJS0Qd%5-X4gd@hlu!5PgB}%2EyRHXjc9 zBcSBojz^!~V|)*Sb1Tw>AfWPRKmjjt5uh1?qSYXSsZ~|T$(ke_D9z`~0z~*W--2RI z@(gW-u?%Z06;#$xsTtauWT^g?jajKY(^0E{J8Q{v0lpgXY?s*+iaE*~XEv4DJ;WhJe_r@ZBb3AyyF{ z=~Y@>Za%Ax}Z2AU6&uj>}ULj-?=GOT0_gcv2C#@&p)B zf>6gophFdOVP?VN=_tFZ1*-s-whG=;tv|E*hFStlX3`jksL*T`_ zlQep|&^-{q-8dsfS=1pTwZIi28ct!LPEZRr>EPO@vOth#OR``LLI#yYb}@sROWhGE z{+%=+B!ut{q%u09HMoNaDB@~JVFLtYdS=Z6GfP^u<{_<#zBY>uYuLO5&WziffJDNj zV_`X27>z~OiafG>Sh4cy3k>1x(Sr5ZpRe19N_=e14z)vuE?zRJo6=k zBQhFTs^}ye28T`?4IxxCu3V!1Gd%21w0cDVH*Jf6+Q14k1CT4tfhqb%?G*9&#b9>n z-G{1;&1}M{me@LLY^`)Udu$DO>;0B%WZrsDzd8z?hakI?t7votw+-_Al#Jq^0+0|e zWh9qtcx^Q~kU+-})KMMwYJwXf!Ept#T6LOw#i$?+fC!|Tt^XG@kerQVvI`krwBI z%{iJ{B?8#opQ!-O&fGLeTo3xKSOde+HaJ)`!U;EFme#xmhm06kE*HA>Iur~ShqC*E zQbCa z;0lz;p>Z2bwfkgAL5o356K@E%#kkJ7B0>>}k)9Gbc^G#dC-9JzFt~438$k}p^frKc z5on05h-F}?!8%(lYM^*Et3#h}_$oklc;R7ZwjIp;d>L#nEC}Qm<}#gp@k#ZZ#b9q(6-W7?LZ+--5x6 zAmP-r401Yw(DeMQP8v8t^ap4SD5Lz%dfnk=L3S5I0T=`|QE#egfYX^$aLnn7d+?S; zhl3kp)G9KYG{yDxm7u`Mz}hB}2Dm%>Kst1p7IV6?&g)OC?%;jc{}GCBo4Tu$M`;R@99o`Rz3g)M$*NcY&e+RTBVs zH1#n_;Y`(R)y#1-_fNv+ts#mpTewWZp~h6A5mo0P_zRf+St;N$As&y$@mkqXFP|}J zgH%eBZB7~is(>kyz*=l;!^KF!3QI>1EA!+w@IvIPiha^dmo3x9GmEe!Du78v;j@Z< zg1CgLzl82B+nldIV>&-MA5 zQxW3-wSfMtkY)idgN&QkGr*UttauM>EW^R(bRz686mPo1f2U@Tx#mzd6|>dWy)NgO zE6%RVd4H$N`R1Cl>T>?ysn}(%IIBTsyIuEa?KW4ORgc|&r^f~6iYI2(<$}LcbD=}c z+05(0zf*CMx#Fy7U6iikMr0T4n}T^Za6qfd^l;W-WPq~(^GnOel-B0>hO`CSfRjLm z2W(IywE3_tTPHG`K0;HLDz^#1s>*Sre73Y=e!_dklm#18E!HM%ZXNEjxV4(fZPoUg z7D2j!$)*L_Ed6v1;LHv`xIr=2B8+qndUE;k#3A7%MY#*3I6vMje#IvGV26#&D78y$ zoi(y3@KR9XkqrjuBWQ9lhVUz?sxKSKzstSIMpiJk591o*0nfiNrmJ-fvoCi1BW#(+ zWh)EcqAcbk%gAxDZ;=m&KLN067byaU#NM`7+|t0poAvrZY~@rXHLC2;77z4>fZ-fWlNZkOJ0m)>%h z-gKAVc9-6Gm)?4}-g>v*dbi$sx88cU-g>v*dbi$sx88cU-g>v*dXL_Ek6xok$Caly zHBWCuzD^0fLOn%qXLjSNV=_!69Y}AtVb17O(TQScx1N;ci0arq`h?N@qR%tEcX}y( zm<)^3G}HB2V3<*cxl*8a&(JDEQdacL&kDP?5$VQMQ5 z7YlSK!)hteJET)oPtkj0I15eZmp+7fdQy?z^kO|pZ0)6`F_30@( zU33^7vuW<>J7PANbXpo%4Fe*baypf=Wo`74auw@q(w(cf)t#%?>NXs`Zo{tUHnB#A zwFwsmZO3qXbZWZ|lfs>+kFVRnuDJ6JeakoWt-ye2&er>*MRm*Xg2DPp65V zVwj+LI&Qt3-cB7xPce{C@0>o>^a-h>)*EEnKK1FTW71Qy+J^LEdWt?qh6!mnd0_eB z1LzoW^G3NAe*mon!3J?@nE<6z@Z?Ni#VU-j4P)$&r4{ziF|v@&dOLNh!T8W>1|Flm zlA7TvG&tzBEW4%eI~9gBi#i}I5HGAw)kuN`0Si@0UE;5?K==xWbgN1x+#ymEbCq^j zkoZsui*1}x8fQut&^9FEq19ZW4YPoSKH3CAqCQiq1uH$(I@QJz2+$^fydxALDhObK z&So%&60f|3yr$GK5EYS5Y#7fr@vaNOyBsFG132`U%f-m5Ni#+j21qE*=L%bOh7rQW zNRw^Q;$7IO$r5G(3l&--Gxmn;R9*v=S_@PYkIhcydHpghpim#CE3_1AW*|-ZQ?=bm zEKjva0@a8I>@1p;0oI0ByrO4;SHL!mN&kK$k%yGY`t7FT-@=>m$-SFB%Jk&k%?@Qm zo2EZ>r|)KeGQQ+@vqPEjrs)yY5a?!)GHD2OvqKrtrs)q=Jm_YBGQB=_vp*Tprs)rT z(ClV^GU+pPvp*Tprs)rT=k8{I3d}kKmYPI2JCqr3njSGexO=;6CiRPMb|@p-H2tAk z9o-zEOj;e?>`z9tY5D`oBB00_vUonG*@>?Cz`)xVil9n{pXxP^;Tjvr0!qK_3_qR3 zc7~r#Y>8XLcW}aC$}F5nM2xCd2Vzvy#uzm=7+#Yq1Z8T|Pe)U^e~OX#d$?gB(<1o0 zz00^4cb{+>QD^8I+v=^mkfggJaj{manXR5>O1PZ*ibmNrNT5LB? zDP39{Lfu7L8zRl(jq%dLRbZT2#`#mIuHsY!TD>kO~A_*fZA%+yBy2`aQ zXqcLYY9v}3T#VH;R12}CRRLbJ;z6v6(0~z2Dowx z9TjuqEt1Kw(nZ>)&tgH_lI5Ag)Lfiuv!)LNl&XS05aT%{fm3_C2U{@1?E{faEDGl_Pw~hpSbJ^@gi>h(+l)k#Hpk6M`kR{K zPzqsak_RjbSyICoo0&z0?F)pDve5+yALUP0lG$LelI)9>$wjF!88z6U`N$ zB9~1VZp{Ioj5}$KCS&1Li!UB*fzCqA03I@`twup}f6hnrtF321( z2$&Kd>fn{v`|7-7+&;dcH2LZ&q6EcMTUn{33{OD>AIldI1&bzIVK_*Ok`QQ{>-5r; zmP!bMmV$6$jOLm>giV+Xs%O+ty38MM8W#+MO;lMh5zte43W=E~gOCKCTZsXxbu>~k zhpbJ-V;K3&s*9%Z{9)kcT+YRB(jy1{ovTt?RtXsZh0b*bIH5|N2~Gfti%Vgnze(7Z zkmcje@%h2hq&)~xnSklU%Z#=&V0-?@~B4c}s1;a~OFgykJYAnPh$FP&jpQIJYWy`IUzIi^!Mp_B^ z{F`96G^7c3>r>>4b3)diX04a>r&;Tz6oNtG#jy3(r^uD?V=fy(qBD)1q0`d-Ny=L4 z*QDjvC(RWH9?cb>B3G){($%K9&#i_~)<77@rP_&e# zKu+_mZ!4cs0#_QjlEAlpXM$bHRb)zqea-;uE-I`av55mrYg+*xiTS2_fY3fS=oBf~pj~iI z=7QFrp5cNbxu9NT$RWfrAtS^oHequYLU(dC;y?o&$c8z%CP1M^Z$TcCTJI>7A*3!c zwSbV?n3InKUTo?QlG>c(Owa-s<1g&P18pk+x|s)o44iRzU@g!x8jnOLxSdDhX*#>Y zQ{a|M9y6U88zUrKM_YU~k#JW7&m12%8hX_h^F`w!Fl~pHC~Rsx*c`x)!reIpJZp=u9WI9n00VPC zUn{uZfO|?~Fc|SQg%Yu_zY8zmU}O&gv;5$P))$A1q&F`Sq{(o(4%I*?1>PzM69BYJ zv_(lFB^U46u9i?8`lkX~Lx)>pA-n&Zk9;GG4ZnANUAM}q37u= zbx5{wAZbedF@Iwy97=Xs>EQ3GBxw2auftg292v>;cE+NKR6MBX)PwU(J8T2^atI1C zlHx##rf7$Z5uR+KE$BGRmY56;4~GJiq_kl$@#Elhxg^{I3n|&!Cg+7gqEZ=b55lCS zgoDbg?imwpeYRk|op2;rIG7u>Xp`JCoNE|-UIvUu6N$=D#0ExVcUPutfHaY~k`2N- zDvw7~umG$Y$;7dj!NJ9#(h`^#U6)YFvz*EX2OH8rHcNq*kDHcE++14yw_ziB!qcRl zWqDoH^CWMNhD=zU{%}KAOs1D`Z5_e~J*kitV@OLxhph?l*=oyxaKugFu4)jtOUcR< zBVGWd?1~z7{u1drghnB!gP^10S6app3C5fKf#4YWAZg2Kj>aJ@v%Oa|s+inFaM%HU zABPiIxp*SRg#75OMzn;;gJ2z>l?p}zU2;Y$iEab!DYZlb2fqKLt5M_>{k+43Zjj$uanW;>BnxnLZCe}v7e%N1Rg0hTMI1wBhYDz+2J5hz~`r4Kp zYH0y4ij;$qph>c+MNHPIG)eKTDAge4P}!rDH?~nhGqzFNcZtN&wq;g;IGPNb{Rklw zz6M^|fr`8i`Qb^VNyio*Vb=bNUl2nm8V44HlAx^C6YKbf$nW$ild)m0?LbHg4RJ>BKW(KD#t9f@AXZS zNW3S3vuP5Xk!-Jm2@b5VlqK^Z)X6BENOY|VDBu)`6qYeY^{GagH-c10MuOz=1Ifln zkR03IK~n6D1WD4T4^Ni(3ry1Z3zDet7m#Lox0QNW%3f=RGv7vXmd+Xg7L_%?B$YM5 zH1(8+G{)A+OV>)RX>Lwftdx~r4=kqCC{9#)y8~cvr}-qevh zAw@enG0k>#VuE&bLZWnZN*%)RBEyC$31e*uuq+LI7Ve{^vSJ6R@+Smi4OLs|5+8u+ zgkw;SW=OY4uN=*grytFj*y@kRac*&0d)Z6|hpYqSG0@DbIv^#Z%p5VfB(_0eXs z1prebrbH|l2>HWg$BGKJ5S^C_2>5M3A!#@Xo=?Iw;30F%rD=e!l-}2*#5xF_*&ftjp@;-TvrCD9Kue}>^W|hpbYAUP zh~79FM`8Hr(G_Lbh$s<^CGm4C+!xejYGz?Os9N+MIkUwBB$XamG znd7Udp)INfm4u2&1b~%2J);XvX+XPk)h;Re<(RB6~Y6kqNX~U z3^j)WWI<=geisVb{DOt zbU19$v0xnea|HlU!d3>tDFTk!tWz+uunzI6(;~NBf`FnNf|Y?OD9ZD!9A8a+2}*SW zfYIX~=8wliNMzsWNC(gyH4H!qgR7x>Bz24E2DgZk_fvS7ZUebxMP;K4{HQ`+5^hi( zzA%~MREdUp_T}Zl*DAcphXN?DL}BIDASkA;Y~a$F*U{=vGR*Z!mnROgK43a&ji4`D zI}+~C&}uDDxX5K*9^GeS341FHR&&&A z0K*BJ2pJ)p{I#S7O=0>s;wK{=>EM5WILTtxb|35_KG@s%rUqv_Ozl!^01=jgGy@lr z558fY`{GI1S78~P9gKqj3|s97xi_k$C1C~=Z%st5!g4@Dj8b>{)d(9%1awAV@$)1U zBB8ijWUNMf%w zxX#G&0^+75QR%}c9{3qaMuFR(R64wb4rvrbyhMq|o><=n%5!aU7CSvK_;56WtQqtP z(6D3%Nm;f@a3ug~Z7`0fmB2xi8Y%Ta0FC3?2I4T<@I){S&k^JsH6Gz9hR-;bngkXa z^w+}8u;K|AOctOgNx~HD4EznY1@Kyre`7!t_=~Iq`H{fG)b36aT!r}BCN+iNNQw9( z(L^{Hgu-;xVj&cj#-d>u&ls+M_#ZTpPB{3>>Ic7+aWYa7P;P@A8P)%kT-=M5Bxp;> zxd7x6JTX5+sMJf+yeLTPp@+O30niBaHO4^(6CiSOTRMytWeaSn_I42jxYOf$w87z! zHFdyoqogZIjPv3}>8`-PaNZ*K3v7&qWg@7oT3?fbUA};V1k;*;g~VmSQ4yU;NL9K- zlkI(?X>>8#ivxRON=`)#sbq-F^^q(?og^KG5w~}%njO+c+eMt2`Hsm zM8ii%cseJ02>hSU_c#O!Zw5gaJnoUeGy`0@_>7(iw&6B_I}-jBZO0GVTKq-lIsSqN zCKz1&1q291U@yYobbJ#a+E2ncfRmE%JP8~(wp#cW3JH*nYb?RnNP@OG0S|`}SUNCZ za4^unxJdCE7b*O0!WS9%OWumfuQ1O7UX3I~U|t8w;s&@RUY`a#c}=YTsPVH=h>0RHxbw5xJ@V9Eh=0S3P#IXy`N{LYyU z|K-Ae@ViGaXRi^5?Aary4}6n<;3c}PJ<&Ajn0)vruQ)HSvB_PKn;-P#7UUIrn)ATz zjH|KO-Pjm#dzwMf!JTtlYSa7MO&hf5<$HcO<<>{yH!q(1Qi5ZX{}zALcfb9PnL7QL z{dTDDd*O$3e(%xc+2PN&yJ9nX-r@axw+WNiPu^?l^}F47#lw9&cim_4jlVs9vI4a!RXr(#xmr_J7-a^5v7K-+aYWvk&+>ch2TV@7Up&N4i!Fdg=e% z+b+8;cxQQV+#|a^_t8&xceJc1*!)~guU}7l{=L~}9rH(@rI8Cl%|C2Au4i${`3@pbr`!V5m#rSOI&XP^4Yy3bbS_WpMNvdNQYw!FAYYQvtv z9Rj;gUw_*(CrutXb9A`k@?N*}FIw@^^1c4^{nW1)UUS^XJD>m7L)G!$FM9UWL7mf& zzHU+cv{NVF)p5zw{XXAvb=xnm_VYe6Wb6aGpHa1NU$gY{Tc(YSFYfv7cdIM5T=ev;<~3)2yJ__m8x}Qx5P#+J<*TlFYQ}``ZyM5d z`hAb}oc`fgm%TaBeZ;Iy_ujhZyz5TBY145(Z#QO1-cGKge>|Z0;{$fz@A#WT1NWLa zW!F8Q>(%?dmeu#%_{JVNi+8`Ts(<-T#kX#La!921tNbr6x_rkUr%oHV^Omcgec;mL zF1>%7|J`={r7Mr$Io@}Sd->vrAJ{y9#?;~auRFkh_y;E)QMCKl+r8Cmo7?Yutg&ME zdv>3{*ITjc!hb%$JbuiEPe0kc{FkzW3ts+AoozW=~;T;JV)!kT6C zB6oi>@z1(>9UF&K-c{t;{AA&TXUl&$XxaJSocY%011|XElSj|pYwfU?J0qia9aywq z|6PV$UAFsgW%nKZ{<7Yu?(BJZ_466{qOm3 z(beY{=I!%m$Idk!4@YB9o%iI~ci(-_kJHZ>act3@{`a1~@`S559DC>mLza%OIRDO< zI}TZUS>Bw5@3v1Lan(M>Ej^FFpyd81pSyGV-mPbj8r{F*m)-8T@VOo5JvVCqfy?*0 zt+n{1lgD4S`Jiv^8{>|a?9p=lir1EoSp81^n$$Nxtvq6Ck5_hGU9{UreXo4&;+}!% zu**(MoH2h*^)Ew@JN&~l=KOx-tWBdQS8kl~-kIOOST$~!nGc2r?{eE&1!vR@?AmY9 z_g7r7^tryz_HQn^Y>(Jadw;ica#rHepNFn~=BUGuX{bK(h&5i{#Bu4?Ib z->Tn>tKYfi*xep1f9s~FuU_ez|6_H>vf1zXt~zG?vi0@tQ{Vj0_sKQ)?C4u^;tzfL zom)5IiHZqV?|4|w(#8JZ(}U0DgdgAb z%6s2^_KSU%{W5v4fd_1U{k88Fo!q$S+%1pyiq9O^`>L6PDqmmU`A<75y$S9C#j_6SbM4{N*8b<|M`pisb?3l|wc9V*y}Yq)`(7tqcV^|R zN46h4b^7=Vd*Aih8Q$;4J{G>?^7o&a^u&rcO4mMH`tF^@H+g^icIauBE%^G~W6zxQ z>^^zp+8181@SEya7W5f;!hrw$e#oZUyRLozt#jUT4|#0;mCv^B;=b^4-~ZNx$A92G zbm9=##nFj#*I)X=l_NcU2K<~`(_`a`)85>(A|qT9+UD;F@2) zoH2jQ!+-7c^ws5& z&v3~#yPSN=CG!^cxpTy4<;M(IyVDbw_KTnWY0IILe%)@b_VA2@*L*wm$A{l5obusa z?_NI5zvaULUoCuk&?n*g!DIIuJ8JIRFRb|Ahu=@$kbCMJcg39XFMPOS;G&6>f=_>V z<29o$$XRjPeZ$}G)fSvRXH5LDlfJlU;owzG7xsBEG34H9M?QYhPyc;o&H78neX=lo zK<7`J*Il^HsHVqG%0Kt{5rZ$CJ@}=r+mo9g>9whJBQ@o4|?j# zNiRJxdGY2ePTK#a?T+iX|L0G}d~rncD+?ak_KKs*S}!{D)pduR8##2_k*hB|{E@iN z*XyFk2aP`9pj#>)8qn+6IZwTN%a-i7xyNn$jF@sy^AmxS7XMIr@5_fCd(S7Me*XEW1hdBV)baO1CgyFR?U?dLOl9=_crkIZphIEIRJm$IdEtuN?AnV%*aQ_3cqp8!xQO=`-!FD}Nh1en;0s zjeGp}e3d@?eJbuMFBi>uqcj^1bul#G!Q%@bWtaRJt>Um$k^6Q2# z5AIwx?)U+HmQ2k#QdmgpqwULt^%FEql z)wTWmR6qG*%kNvh7(ec{KBxbf%6+6yS^e#Qghq4~J#ob9+o&Y`-Yy@kKH$9TFTb{;==1GT z`;Wcrpl7rm9y-NnGZErO`YUBw%3?3Wv36ET64vQhaNd(uMrn6f2~LDiBFXL zIs5F-pZ#KN+jF&VZ`)bbRy_Htr>-yG@N(tgDK&?k+f|Ws)OC;KfAPkb$HsU5>xnBr z8ozw*##?W{Z(RRlT4vm|$Ib_=7#Df`uIo1+x@5Cw)KT{q4<9<9|5tn5R=2M7v3<8x z^?823c~|VS{?CJVUitLeW51o_zk1XB=SLj2?!o7V-v7#9{Wd&OII-;08((_%^@SJy zr)c-4ON)9v{=|e2*T&DiWbg}<^H!d<{HD&+UqA5O`v+cl)QGD-dt%FNGw0S$Zdg;0 zxc9pm8-CwBZQVng9xI#Dcf;|OT}Q9KWb)lRhSyiE@%)f`?xCCKJX{gK;<*zRJ^65- zLwfIeVMp?-nMdU8HucKNIqr=oJTqyhwTs)_{zndoj9>Cb!BdYdzw+ca)-5fcm;Ce9 zz~JLQEByMud#0w}J2|=Mz==zKnE2%p`R8ovyko+()2Ghu*qCgezj?xQqhI;#>!rR__&&f>#L+b`zuyoeI-z&n;%s*h& zp#9Ii(e1h7weyb%tgN_w*-;P7-#D>vzd5@+Ir5cA(XjHN`;@<%8v6K%`m+zcX;{mz zdESGL-?(Mz%FUa;9Wcv(%&UtoxvhM+X$2Qu@%b)mPtP0kz`N7d|2($n_+MuY8925_ z&TAuruZC71JJtXE*(HPeBoF*^+O(ghEE#ds!KDX&^G)*yKYuW5#if6CeVlW)XXSJG zC*1UT(T2B9yyf{dg+CqH_RXG`UU2Y3b&J|M`}DZE;qLr*+sLBA7U@}4@wzj8(4A6K8eVdDF5KhyaA(kF&p zwdJsynn^{4lh6ApcJI>*dTsQaa{RqB_S^LJ(ic3rXKm@dcI;ydPI>>hRk!RJ+j~M; z+qW}4ohSJ(dvVr(F2CdAeXn@uiJz}JEgEsJz5e=p@4jK1&Wm@wWJcS=zjVDdYx#sb zXO~yM_sh?*!u^MT)6##!nX7s>zW2rz_n-g6)jyv$v}cc!)|SV1d~d?roe#|WaKbk` z-1m%kOKIIx>josx@s7CU!!bia)5H}`H1mV3R+hc`d}{^}VElAG?V-m!7*)Q@&P zdhyG(-|qF!```UOWyiN(ee;^r0-;G02Uk!0;Jb@<-0qLZ*UZ|y@zd{j`|-wAAD!}Q z$$1ywvv&HILu$4^@7#`KK3_R_uZw1$_tNOzV~^R12j5cAl^6QI$)(jDu0DsIyX>mJ9-MN?dH*|c#O708x@_L4VVgeR`SeYnf8E+r z+GD#5|GIY0oI9&*=v_5$ zUY9#;zu(5h-+1NVsXO_fxbg1e<1f|qdOEyk=bn*|f4Js>d7lnHuHTl>$;%%5^@h~0 zJxj+l?v(3Z|HrV6eUBX+Dth{*+$###FSw&&@P5zy*6?-1-EUm<(wRZq?&83m+kJZBkFNackET33spszZyu2u~Pw#ie zFQ0S&X$L(%xFvS$YqK9+{N#Q=9s1cvXFmSWGsn#TX6B4xx32#62=^&xEt>!8@?|dv z>Xt8^|LCG|XFYY{{f$TcdeOnZobu$5MSotrVepl`JA>}RW%tCceSYG>7i|0Lo9l;v zv~SCT*NVp;efN}0Z@pm3%d>Kqd^2Omm(F?n^$*uBs@ib+qVeDDeZkEATQ8Zj>Z9}T zKj?!suYZ1H>CnWhzm0o-_J*S_J^1+Z2aQ{N-=gt%+>le%zjx~0CqgYh9oi>&Oa(BOa-d$4?-u?Eyr{|ikHt+F|_Sk#r8}~f8 z?^($^z9^p?zpUTWH!S^q)3k@(vtvcx@+rG~edgqR)6QAFuI9=M z8vTxB*pWlAW1DAjL%hF#Cy86wJtMBRA^WZ^kn_vFujfW2W?yb%J zN*}u9{O69kreAeae8BSGPCV-76(7uQJz?QNi!Ryz$$?MYcI{qoZJB?{p%*@W>3^#h z&idbLuRYe>`}@S`wZr=nwxleAySD&Fwp^Y+cSh zHOI|;wC?V!k6(Yv6!eagqx&z^Wz<^8iC&3k7?_@GhM_Z-o2>Y?-A+V!r* zy}sUc!44ztd(@q`&5OlH?>MLW<-9k4e=1(|TI%51>xY+qxAdmMl5KlTK6%Om&t6zt z`s2#xq1Qis;*aZ&e)sbMsX;d^5*e%Nd9`ulQ{YleS%?3}kxyziiUA3AnckM}OUW!y^l(xWdgSw8cl zi}Jrs{+e|!1%+g~y})%yMALvQUGyngVh2dua$ zx?%16$6dZ%uRbe|?tfRq%AfKpi&i9m8sBl~fc(1$m(QL&cGGKfa;n-l7uxvSSU!GSM*aN?F(zI9VSdwI73H@{Qd|E`n1=*s)gW244L7EW7y z`FRhzJ}8-U;*=*3xOV$fzkTq^&(7&LVAA{By;U%F&W~R-kJ+#Jid*hWJ+<8zYhK*x z)JGCK{PjYwj?L5FTX{{d|2u2%;|{60vHxM0#(y0(edvvszIMoacU*J8mDAt*Xx2?* zUfFe*ACA0rUhR!9JUu9R{c%;(idQu6{`;>le0Auc8JB&SD84y$%m?!}6^9n=_RWAz zw+x-1THSfZf}J0m|MA;r7JT&A)IF~M^NSUiCnCo;TygV~mQObBcEokZ9kbi#9~KVy z?Wk#Ezy093lDf;UU!Pa`^mY9Lx9v5h^W3kB)}NOD@a$jr@3-4^EysVc_~yGS-<(kT zLeG~=KHGkmm8Z`;d(eWC%g!$C<=toSs$=io?TOrN5B_wIJ3jxVdD9!EcP-fExI1q> zJ7>##8^0W~apzmE{ogOu5ANLb#HOZgA{~=X9pAR)g$e(=>AI^1?Y(y4$NM%M@WOAq zpRn`c3yyr@=R5b@_LRF{?9raw>6VK-AKJV}#rq#WH1zAyy?$Q!?tQ@QzH-RC@NUTx&R;k{?|je#YjSD$_RW!p9!d&`S+ zK0ooC9bbN<|Km>$T6e(unZ?5fuIl=a|ICWL--=G%cyRSkHF>Ayob=_bd*61~nLB&O zzdrTRU$;MT+b4I39bR_(e+SlG{>-O$969deulAm@%w4$Z?QNDn?C$s5!UYr0UA#-# z_@y83f9UXcUOeKB!`807_V&(=`}Vx5|81Lh829wy^J*`Mw>`e_;khGr3MP(BHXU%~ z8GF?ozWauyd7~!2<_VpD!e2kuE=WG~$DWthedX@;e?KhjG4F=DqJcRjhd=V}(U;A; z;-~&sJiqe4|MC5L$lF)F^zt$7_a{!h{;r`*)~s#WYv`iOsxJ8B1AouwuUYq7^n-gp z9&qA=jXzgz_xh2&`Ztw7KL6&4y(W!$Y|9~|cm6ptt?`7<=dZ0RPOW=o&;3g}Kfh+# zYs-Etn=sG6$IRE)mN)eqJ!oC-lQ%W)_|3ADfVWEQJ^20!(}%Us?Ya2sQF9)6`0A^t z4Oy|K^Z%wi)T3|7u}x?Aw_pBe=gK92?l`0B?IrJg`038eXHEOy;8~lZk1yTf(xcCO z=HxTC`DojT>#i(*v~;^ZYnH#if8T?8zqEGrZ-2CW-DA`)KNWlsEIql$|89HhtW}?U zeCBJpT?f9mX6MH@KXzN=oc`~A{(ITymu~a&$oJbDT-%Mh|G0-&y;u0=H}yv!JNBFZ zZ`a=cnQr(vjx&XsLs(@==puv-W#!D4;~a9#IpLb5llBc~N9fAyQ$sxdvZx1Yk%7gA`%v(3>cuv1Rn#0tdh z*k<371hZHv;&p`SCQo|yd{bEZOxgmM2S$8kF4f17(;h7r(CIyMUBM{mNMsRCeMiyx z!N3jpMZ(xaoTsqUl7td;N!ziyFDpT@tuv_cJsYOoR>yglJ~57Y%vxjIS$V>4;BtTW zIMyml^v(Lo3kDU+-Fi?7aaJp<=;;KP7Z{1Y#%->?`E{B{iLDUnZ22MB+rh|%@WcuS z;e$@q>{WxCY8jun?cZRGQFV5(IJceKnEeykix~3o^2~R7_tY}h>7%Td$AQs(bN^+B zu4<`eiF%H5D}`BY*|$d$?bm3oZd?Z~Y9^I)LZNU@=fNRs8_wS0tvIU>w)(l90i|C~ zel6tTA}EKh#tdYr31v0ca!pTl5;9J)VkgDmax}gRFXqTLDy~>#nmymz5WR<5(YCAe z64j%~=(eOBbAQ_zmc4x_fPYXlHNIT-O;<}jL(RVs!MKb?UN1qzxH(^Hdba=wTN zdOs$>bs^i_%)Jz?U%^IWut&eNBxpDMj*g_gu414+qpP1iR~-7-_et_uT<|5ag)|;+ zY!_dvi=*D7MvRTd|smKLw4oVK)3Ao>3&7!dGbq+7aPCJTsvP!n3YQyd_pNZ zbCi!Y@XX&Zf<|d@ElCOYW9Vq^!!=7C67ITa)kdZlQV^zm$&pyWv^^+!PpxHH$Sw79 zwJb>To1D}Ze54fG&4CQP11c*Y+K$Bi$u@r^?*4?QN>XmUb`@wV(~)Q z_e$OS&o#XQjm94iN&bMJQv~HMWpNI61hC;e2~GZSjBRF4 zOI4+1GHSkjg{}fhxy~OZglKHw$i>}foOmfXovFhxU(#@z>`G}d#*z3rdj39jhv4q6 z7FyS>-T*$b$6sbmv`T*%2A!9t1RH5Ca}xHRI(?|gEQ60|M~u(jZJ>&YoGYN3=b%fg z45%xng!<-(%C0iu&A&>HpdtbY|J$23{bk?^h1Q7l{Ed+K;?l|_W8}r4Mc)@7Rgb?S zr|&T{Q%8I(E@unpJLgiqLT2x-7Ra4KVBE*)3*1 zOdJq~KIs?LGvBYFZ(r!q60X#{cyyvpY^udoV?UVJer&7s(KjK)RYRI0A|o$Wa(&wk zb|&Y)EKC<8WwL_h8HtDchPf_?~$u#>BojUB9m@4#Lw} zuNq&Qd-_x)GVsA4VJAIG zhA*W`>YO#P;Inj=EZ8!c#815VakCw9{DoeSFX{ECIc5}Oz)zk>NxXryy`q}ghUqXf zN$*iCGN2lk$Wv|8h$?XYD_N&BcF$Zhlok9K6&ElcND-%!lQ!2Y)OQf};Dta5^so7p z>TSD1A70{S!|L%EmR?{7LB`p^TflJw=blcIUK>CPXuP8^Za1GBeE0iu^eEO zi2l1$va;}e8tU=1SsplAW3$!ntX0J;b-ZaBDIqwKS`gro=;A&=w>i`eyVDW?+Fg=p zS~oq+)-Onhlseteva^kaHBw()QE=rRQ56V6)}!}y)u;Gu{Et1tf#sVIGF<}PE-Yj< zF}A`72WheL9rLC&YeHxIBJl&I_gW+HB~cTU4J+Yw?>(%#0^18S3sci!HRV1AQ);7O ziiH~+JxxU=a}?E^^$`}!Tg2!>NrsH~{?^aPlYL8^kNrkkxae&&pFT#s(oV<)B@bI- zx^lw_xfWo%DB{GlP9#kCfhN(vneCsT-V7R_PqoWzk|4(?ho9nOrrB166)eh)>@^g+ z{=5T1qVo)^4iP&mK;Pab>Q1fRsEk`!8?M0YvaF}@xL{3ZxZtF=KkLX2y8$A5C8-K0YCr{00aO5 zKmZT`1ONd*01yBK00BS%5C8-K0YCr{00aO5KmZT`1ONd*01yBK00BVY|5xBYf5F)( literal 0 HcmV?d00001 From 1929c39d70d5dfb502024f40ba8b296f9e49b376 Mon Sep 17 00:00:00 2001 From: sun Date: Sat, 6 Jul 2019 14:01:17 +0800 Subject: [PATCH 10/12] energy changed --- energy/include/energy/energy.h | 6 ++- energy/include/energy/param_struct_define.h | 3 ++ energy/src/energy/find/target_finder.cpp | 42 +++++++++++++-- energy/src/energy/get/aim_point_get.cpp | 23 ++++++++ energy/src/energy/get/predict_point_get.cpp | 6 +-- energy/src/energy/param_init.cpp | 4 ++ energy/src/energy/run.cpp | 34 ++++++------ energy/src/energy/tool/tool.cpp | 4 +- main.cpp | 58 ++++++++++----------- 9 files changed, 123 insertions(+), 57 deletions(-) create mode 100644 energy/src/energy/get/aim_point_get.cpp diff --git a/energy/include/energy/energy.h b/energy/include/energy/energy.h index ff9798e..283ad25 100644 --- a/energy/include/energy/energy.h +++ b/energy/include/energy/energy.h @@ -26,7 +26,6 @@ public: ~Energy();//默认析构函数 int runBig(cv::Mat &gimble_src, cv::Mat &chassis_src); int runBig(cv::Mat &gimble_src); - int runSmall(cv::Mat &gimble_src, cv::Mat &chassis_src); int runSmall(cv::Mat &gimble_src); Serial &serial;//串口 void setEnergyRotationInit();//判断顺逆时针函数 @@ -69,6 +68,7 @@ private: cv::Point circle_center_point;//风车圆心坐标 cv::Point target_point;//目标装甲板中心坐标 + cv::Point last_target_point;//上一帧目标装甲板中心坐标 cv::Point predict_point;//预测的击打点坐标 cv::Point former_point;//之前预测的圆心坐标 std::vectorfan_polar_angle;//当前帧所有扇叶的极坐标角度 @@ -99,7 +99,8 @@ private: void circleLeastFit();//利用所有记录的装甲板中心最小二乘法计算圆心和半径 - void findTarget();//获取目标装甲板的极坐标角度和装甲板中心坐标 + void findTargetByPolar();//通过极坐标角度匹配获取目标装甲板的极坐标角度和装甲板中心坐标 + void findTargetByIntersection();//通过面积重合度匹配获取目标装甲板的极坐标角度和装甲板中心坐标 void rotate();//获取预测点位 void stretch(cv::Point point_1, cv::Point2f &point_2);//将像素差转换为实际距离差 @@ -108,6 +109,7 @@ private: void writeDownMark();//记录操作手标定的云台初始角度 void getPredictPoint();//获取预测点位 + void getAimPoint();//通过自瞄逻辑计算点位 bool changeTarget();//判断目标是否改变 void changeMark();//操作手手动修改标定值 void gimbleRotation();//计算云台旋转角度 diff --git a/energy/include/energy/param_struct_define.h b/energy/include/energy/param_struct_define.h index 3e6f3b1..9682ddf 100644 --- a/energy/include/energy/param_struct_define.h +++ b/energy/include/energy/param_struct_define.h @@ -65,6 +65,9 @@ struct EnergyPartParam { float CENTER_R_CONTOUR_HW_RATIO_MIN;//风车中心R长宽比最小值 float TWIN_ANGEL_MAX;//扇叶和装甲板匹配时极坐标角度差的最大值 + long INTERSETION_CONTOUR_AREA_MIN;//扇叶与装甲板匹配时的最小重合面积 + + long TARGET_CHANGE_DISTANCE_MAX;//目标未更改时,目标装甲板中心与原目标装甲板中心的距离变化最大值 }; diff --git a/energy/src/energy/find/target_finder.cpp b/energy/src/energy/find/target_finder.cpp index d2dce40..f1a5bdb 100644 --- a/energy/src/energy/find/target_finder.cpp +++ b/energy/src/energy/find/target_finder.cpp @@ -11,9 +11,9 @@ using std::vector; //---------------------------------------------------------------------------------------------------------------------- -// 此函数用于匹配扇叶和装甲板,找到目标装甲板,计算其极坐标角度和中心坐标 +// 此函数通过极坐标角度匹配扇叶和装甲板,找到目标装甲板,计算其极坐标角度和中心坐标 // --------------------------------------------------------------------------------------------------------------------- -void Energy::findTarget() { +void Energy::findTargetByPolar() { if (fan_polar_angle.size() >= armor_polar_angle.size()) return;//扇叶多于装甲板,识别错误 if (armor_polar_angle.empty())return;//找不到扇叶,识别错误 if (fan_polar_angle.empty()) { @@ -26,7 +26,7 @@ void Energy::findTarget() { } sort(fan_polar_angle.begin(), fan_polar_angle.end());//对扇叶的极坐标角度进行排序 sort(armor_polar_angle.begin(), armor_polar_angle.end());//对装甲板的极坐标角度进行排序 - int i, j = 0; + int i = 0, j = 0; for (i = 0; i < fan_polar_angle.size(); ++i) { if (armor_polar_angle.at(i) - fan_polar_angle.at(j) < energy_part_param_.TWIN_ANGEL_MAX && armor_polar_angle.at(i) - fan_polar_angle.at(j) > -1 * energy_part_param_.TWIN_ANGEL_MAX) { @@ -55,6 +55,40 @@ void Energy::findTarget() { target_point = armor.rect.center;//根据已经确定的目标装甲板极坐标角度,获得该装甲板的中心坐标 } } - } + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数根据矩形重合面积匹配扇叶与装甲板 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::findTargetByIntersection() { + if (fans.size() >= armors.size()) return;//扇叶多于装甲板,识别错误 + if (armors.empty())return;//找不到扇叶,识别错误 + if (fans.empty()) { + target_point = armors.at(0).rect.center; + return; + } + int i = 0, j = 0; + while (i < armors.size()) { + for (j = 0; j < fans.size(); ++j) { + std::vector intersection; + if(rotatedRectangleIntersection(armors.at(i).rect, fans.at(j).rect, intersection) == 0)//返回0表示没有重合面积 + continue; + else + rotatedRectangleIntersection(armors.at(i).rect, fans.at(j).rect, intersection); + double cur_contour_area = contourArea(intersection); + if (cur_contour_area > energy_part_param_.INTERSETION_CONTOUR_AREA_MIN) { +// cout << endl; +// cout << "NO. " << i << " armor and No. " << j << "fans are matched, the intersection area is" +// << cur_contour_area << endl; + break; + } + } + if(j == fans.size()){ + target_point = armors.at(i).rect.center; + break; + } + i++; + } +} \ No newline at end of file diff --git a/energy/src/energy/get/aim_point_get.cpp b/energy/src/energy/get/aim_point_get.cpp new file mode 100644 index 0000000..243ea6d --- /dev/null +++ b/energy/src/energy/get/aim_point_get.cpp @@ -0,0 +1,23 @@ +// +// Created by sun on 19-7-6. +// + +#include "energy/energy.h" +#include "energy/constant.h" + +using namespace std; +using namespace cv; + +#define FOCUS_PIXAL_5MM (917) +#define FOCUS_PIXAL FOCUS_PIXAL_5MM + + +//---------------------------------------------------------------------------------------------------------------------- +// 此函数通过自瞄逻辑击打目标点,用于大符的自动对心和小符直接打击 +// --------------------------------------------------------------------------------------------------------------------- +void Energy::getAimPoint(){ + double dx = target_point.x - 320; + double dy = target_point.y - 240; + yaw_rotation = atan(dx / FOCUS_PIXAL) * 180 / PI; + pitch_rotation = atan(dy / FOCUS_PIXAL) * 180 / PI; +} diff --git a/energy/src/energy/get/predict_point_get.cpp b/energy/src/energy/get/predict_point_get.cpp index 45491de..956ad61 100644 --- a/energy/src/energy/get/predict_point_get.cpp +++ b/energy/src/energy/get/predict_point_get.cpp @@ -26,12 +26,12 @@ void Energy::getPredictPoint(){ // 此函数用于操作手手动标定 // --------------------------------------------------------------------------------------------------------------------- bool Energy::changeTarget(){ - if(fabs(target_polar_angle - last_target_polar_angle) < 30||fabs(target_polar_angle - last_target_polar_angle) > 330){ - last_target_polar_angle = target_polar_angle; + if(pointDistance(target_point,last_target_point) < energy_part_param_.TARGET_CHANGE_DISTANCE_MAX){ + last_target_point = target_point; return false; } else{ - last_target_polar_angle = target_polar_angle; + last_target_point= target_point; return true; } } \ No newline at end of file diff --git a/energy/src/energy/param_init.cpp b/energy/src/energy/param_init.cpp index 97b66a9..a25219e 100644 --- a/energy/src/energy/param_init.cpp +++ b/energy/src/energy/param_init.cpp @@ -23,6 +23,7 @@ void Energy::initEnergy() { gimble_cnt = 0; circle_center_point = Point(0, 0); target_point = Point(0, 0); + last_target_point = Point(0, 0); predict_point = Point(0, 0); former_point = Point(0,0); target_polar_angle = -1000; @@ -98,6 +99,9 @@ void Energy::initEnergyPartParam() { energy_part_param_.CENTER_R_CONTOUR_HW_RATIO_MIN = 1; energy_part_param_.TWIN_ANGEL_MAX = 10; + energy_part_param_.INTERSETION_CONTOUR_AREA_MIN = 60; + + energy_part_param_.TARGET_CHANGE_DISTANCE_MAX = 20; } diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index 2f57cd3..901bd20 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -102,13 +102,16 @@ int Energy::runBig(cv::Mat &gimble_src){ centerRs_cnt = findCenterR(gimble_src); // if(centerRs_cnt>0)showCenterRContours("R", gimble_src); + writeDownMark(); + getAllArmorCenters(); circleLeastFit(); - attack_distance = ATTACK_DISTANCE; +// attack_distance = ATTACK_DISTANCE; getFanPolarAngle(); getArmorPolarAngle(); - findTarget(); + findTargetByPolar(); +// findTargetByIntersection(); if(armors_cnt>0||fans_cnt>0) showBothContours("Both", gimble_src); @@ -129,24 +132,21 @@ int Energy::runBig(cv::Mat &gimble_src){ - //---------------------------------------------------------------------------------------------------------------------- -// 此函数为小能量机关模式主控制流函数,且步兵需要同时拥有云台摄像头和底盘摄像头 -// --------------------------------------------------------------------------------------------------------------------- -int Energy::runSmall(cv::Mat &gimble_src, cv::Mat &chassis_src){ - if(chassis_src.empty())runSmall(gimble_src);//仅拥有云台摄像头则调用单摄像头的run函数 - else return 0; -} - - - - - -//---------------------------------------------------------------------------------------------------------------------- -// 此函数为小能量机关模式主控制流函数,且步兵仅拥有云台摄像头 +// 此函数为小能量机关模式主控制流函数,击打小符只需要拥有云台摄像头 // --------------------------------------------------------------------------------------------------------------------- int Energy::runSmall(cv::Mat &gimble_src){ - + imshow("gimble src", gimble_src); + fans.clear(); + armors.clear(); + threshold(gimble_src, gimble_src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY); + fans_cnt = findFan(gimble_src, last_fans_cnt); + armors_cnt = findArmor(gimble_src, last_armors_cnt); + if(fans_cnt==-1 || armors_cnt==-1 || armors_cnt != fans_cnt+1) return 0; + findTargetByIntersection(); + if(armors_cnt>0||fans_cnt>0) showBothContours("Both", gimble_src); + getAimPoint(); + sendTargetByUart(yaw_rotation, pitch_rotation, target_cnt); } diff --git a/energy/src/energy/tool/tool.cpp b/energy/src/energy/tool/tool.cpp index 6818636..ffd3bbb 100644 --- a/energy/src/energy/tool/tool.cpp +++ b/energy/src/energy/tool/tool.cpp @@ -70,4 +70,6 @@ double Energy::pointDistance(cv::Point point_1, cv::Point point_2){ distance = sqrt(pow(static_cast(point_1.x - point_2.x),2) + pow(static_cast(point_1.y - point_2.y),2)); return distance; -} \ No newline at end of file +} + + diff --git a/main.cpp b/main.cpp index 9ad9f28..7bd5237 100644 --- a/main.cpp +++ b/main.cpp @@ -26,7 +26,7 @@ using namespace std; mcu_data mcuData = { 0, 0, - BIG_ENERGY_STATE, + SMALL_ENERGY_STATE, 0, 1, ENEMY_RED, @@ -53,23 +53,23 @@ int main(int argc, char *argv[]) { while (true) { if (from_camera) { - video_gimble = new CameraWrapper(0, "armor"); - video_chassis = new CameraWrapper(1, "energy"); + video_gimble = new CameraWrapper(0/*, "armor"*/); + video_chassis = new CameraWrapper(1/*, "energy"*/); } else { - video_gimble = new VideoWrapper("/Users/leo/Desktop/videos/170.avi"); - video_chassis = new VideoWrapper("/Users/leo/Desktop/videos/170.avi"); + video_gimble = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); + video_chassis = new VideoWrapper("/home/sun/项目/energy_video/energy_test.avi"); } if (video_gimble->init()) { - LOGM("video_armor source initialization successfully."); + LOGM("video_gimble source initialization successfully."); } else { - LOGW("video_armor source unavailable!"); + LOGW("video_gimble source unavailable!"); delete video_gimble; video_gimble = nullptr; } if (video_chassis->init()) { - LOGM("video_energy source initialization successfully."); + LOGM("video_chassis source initialization successfully."); } else { - LOGW("video_energy source unavailable!"); + LOGW("video_chassis source unavailable!"); delete video_chassis; video_chassis = nullptr; } @@ -87,37 +87,35 @@ int main(int argc, char *argv[]) { cout<<"start running"<read(gimble_src), video_chassis->read(chassis_src));//检查有几个摄像头 if (save_video) saveVideos(gimble_src, chassis_src);//保存视频 if (show_origin) showOrigin(gimble_src, chassis_src);//显示原始图像 - - if (mcuData.state == BIG_ENERGY_STATE) {//大符模式 -// if (from_camera == 0) { -// cv::resize(energy_src, energy_src, cv::Size(640, 480), 2); -// imshow("resize", energy_src); -// energy.extract(energy_src); -// } - if (last_state != BIG_ENERGY_STATE) {//若上一帧不是大符模式,即刚往完成切换,则需要初始化 - energy.setEnergyRotationInit(); - cout << "set" << endl; - } - energy.runBig(gimble_src, chassis_src);//击打大符 - } - else if (mcuData.state == SMALL_ENERGY_STATE) { - energy.runSmall(gimble_src, chassis_src);//击打小符 +// if (from_camera == 0) { +// cv::resize(chassis_src, chassis_src, cv::Size(640, 480), 2); +// imshow("resize", chassis_src); +// energy.extract(chassis_src); +// } + if (last_state != BIG_ENERGY_STATE) {//若上一帧不是大符模式,即刚往完成切换,则需要初始化 + energy.setEnergyRotationInit(); + cout << "set" << endl; } + energy.runBig(gimble_src, chassis_src);//击打大符 last_state = mcuData.state;//更新上一帧状态 } - else if (mcuData.state == ARMOR_STATE) {//自瞄模式 + else if (mcuData.state != BIG_ENERGY_STATE) {//自瞄或小符模式 last_state = mcuData.state; ok = checkReconnect(video_gimble->read(gimble_src)); if (save_video) saveVideos(gimble_src); if (show_origin) showOrigin(gimble_src); - CNT_TIME("Armor Time", { - armorFinder.run(gimble_src); - }); - + if (mcuData.state == ARMOR_STATE){ + CNT_TIME("Armor Time", { + armorFinder.run(gimble_src); + }); + } + else if(mcuData.state == SMALL_ENERGY_STATE){ + energy.runSmall(gimble_src); + } } cv::waitKey(1); }); From cec8fe4dad145734d6d79c789950a86c88b8788a Mon Sep 17 00:00:00 2001 From: wanpiqiu123 <46051943+wanpiqiu123@users.noreply.github.com> Date: Sat, 6 Jul 2019 17:04:39 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E8=B0=83=E9=98=88=E5=80=BC+=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E7=A1=AE=E5=AE=9A=E4=B8=AD=E5=BF=83=E6=89=80=E7=94=A8?= =?UTF-8?q?=E5=B8=A7=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- energy/src/energy/param_init.cpp | 2 +- energy/src/energy/run.cpp | 11 ++++++----- main.cpp | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/energy/src/energy/param_init.cpp b/energy/src/energy/param_init.cpp index a25219e..ce5d38b 100644 --- a/energy/src/energy/param_init.cpp +++ b/energy/src/energy/param_init.cpp @@ -66,7 +66,7 @@ void Energy::initEnergy() { // 此函数对能量机关参数进行初始化 // --------------------------------------------------------------------------------------------------------------------- void Energy::initEnergyPartParam() { - energy_part_param_.GRAY_THRESH = 240; + energy_part_param_.GRAY_THRESH = 235; energy_part_param_.SPLIT_GRAY_THRESH = 60; energy_part_param_.FAN_GRAY_THRESH = 75; energy_part_param_.ARMOR_GRAY_THRESH = 80; diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index 901bd20..d6512b2 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -40,18 +40,19 @@ int Energy::runBig(cv::Mat &gimble_src, cv::Mat &chassis_src){ return 0; } - if(++gimble_cnt==10){ + if(++gimble_cnt%8==0){ former_point=circle_center_point; - gimble_cnt=0; + //gimble_cnt=0; } - if(former_point==predict_point&&gimble_cnt==9&&predict_point!=Point(0,0)) { + if(former_point==predict_point&&gimble_cnt%8==7&&predict_point!=Point(0,0)) { centered=true; cout<<"gimble focused!"<init()) { LOGM("video_gimble source initialization successfully."); From 07af506821ef2bbae4fa43ef62fd33eba6e2202c Mon Sep 17 00:00:00 2001 From: sun Date: Sat, 6 Jul 2019 20:15:09 +0800 Subject: [PATCH 12/12] energy changed --- energy/src/energy/calibrate/structing.cpp | 10 +++++----- energy/src/energy/find/energy_finder.cpp | 18 +++++++++--------- energy/src/energy/param_init.cpp | 10 +++++----- energy/src/energy/run.cpp | 2 ++ 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/energy/src/energy/calibrate/structing.cpp b/energy/src/energy/calibrate/structing.cpp index 5b80be8..356e66c 100644 --- a/energy/src/energy/calibrate/structing.cpp +++ b/energy/src/energy/calibrate/structing.cpp @@ -27,9 +27,9 @@ void Energy::StructingElementClose(cv::Mat &src,int length, int width){ void Energy::StructingElementErodeDilate(cv::Mat &src) { cv::Mat src_out, src_out_out; Mat element_dilate_1 = getStructuringElement(MORPH_RECT, Size(3, 3)); - Mat element_erode_1 = getStructuringElement(MORPH_RECT, Size(2, 1)); + Mat element_erode_1 = getStructuringElement(MORPH_RECT, Size(3, 4)); Mat element_dilate_2 = getStructuringElement(MORPH_RECT, Size(8, 6)); - Mat element_erode_2 = getStructuringElement(MORPH_RECT, Size(4,4)); + Mat element_erode_2 = getStructuringElement(MORPH_RECT, Size(4 , 4)); Mat element_dilate_3 = getStructuringElement(MORPH_RECT, Size(3, 3)); @@ -42,9 +42,9 @@ void Energy::StructingElementErodeDilate(cv::Mat &src) { dilate(src, src, element_dilate_2); // imshow("dilate_2", src); - erode(src,src, element_erode_2); -// imshow("erode_2", src); - dilate(src, src, element_dilate_3); // imshow("dilate_3", src); + + erode(src,src, element_erode_2); + imshow("erode_2", src); } diff --git a/energy/src/energy/find/energy_finder.cpp b/energy/src/energy/find/energy_finder.cpp index 7f6ee9b..8e9f390 100644 --- a/energy/src/energy/find/energy_finder.cpp +++ b/energy/src/energy/find/energy_finder.cpp @@ -103,15 +103,15 @@ int Energy::findArmor(const cv::Mat src, int &last_armors_cnt) { } armors.emplace_back(armor_contour); - /* RotatedRect cur_rect = minAreaRect(armor_contour); - Size2f cur_size = cur_rect.size; - float length = cur_size.height > cur_size.width ? cur_size.height : cur_size.width; - float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; - if(length>10&&width>5){ - armors.emplace_back(armor_contour); - cout<<"armor area: "< cur_size.width ? cur_size.height : cur_size.width; +// float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width; +// if(length>10&&width>5){ +// armors.emplace_back(armor_contour); +// cout<<"armor area: "<(armors.size()); diff --git a/energy/src/energy/param_init.cpp b/energy/src/energy/param_init.cpp index a25219e..02251b5 100644 --- a/energy/src/energy/param_init.cpp +++ b/energy/src/energy/param_init.cpp @@ -66,7 +66,7 @@ void Energy::initEnergy() { // 此函数对能量机关参数进行初始化 // --------------------------------------------------------------------------------------------------------------------- void Energy::initEnergyPartParam() { - energy_part_param_.GRAY_THRESH = 240; + energy_part_param_.GRAY_THRESH = 235; energy_part_param_.SPLIT_GRAY_THRESH = 60; energy_part_param_.FAN_GRAY_THRESH = 75; energy_part_param_.ARMOR_GRAY_THRESH = 80; @@ -82,10 +82,10 @@ void Energy::initEnergyPartParam() { energy_part_param_.ARMOR_CONTOUR_AREA_MAX = 100000; energy_part_param_.ARMOR_CONTOUR_AREA_MIN = 0; - energy_part_param_.ARMOR_CONTOUR_LENGTH_MIN = 30; - energy_part_param_.ARMOR_CONTOUR_WIDTH_MIN = 15; - energy_part_param_.ARMOR_CONTOUR_LENGTH_MAX = 50; - energy_part_param_.ARMOR_CONTOUR_WIDTH_MAX = 45; + energy_part_param_.ARMOR_CONTOUR_LENGTH_MIN = 15; + energy_part_param_.ARMOR_CONTOUR_WIDTH_MIN = 5; + energy_part_param_.ARMOR_CONTOUR_LENGTH_MAX = 30; + energy_part_param_.ARMOR_CONTOUR_WIDTH_MAX = 20; energy_part_param_.ARMOR_CONTOUR_HW_RATIO_MAX = 3; energy_part_param_.ARMOR_CONTOUR_HW_RATIO_MIN = 1; diff --git a/energy/src/energy/run.cpp b/energy/src/energy/run.cpp index 901bd20..25e8799 100644 --- a/energy/src/energy/run.cpp +++ b/energy/src/energy/run.cpp @@ -137,9 +137,11 @@ int Energy::runBig(cv::Mat &gimble_src){ // --------------------------------------------------------------------------------------------------------------------- int Energy::runSmall(cv::Mat &gimble_src){ imshow("gimble src", gimble_src); + if(gimble_src.type()== CV_8UC3)cvtColor(gimble_src, gimble_src, COLOR_BGR2GRAY); fans.clear(); armors.clear(); threshold(gimble_src, gimble_src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY); + imshow("bin",gimble_src); fans_cnt = findFan(gimble_src, last_fans_cnt); armors_cnt = findArmor(gimble_src, last_armors_cnt); if(fans_cnt==-1 || armors_cnt==-1 || armors_cnt != fans_cnt+1) return 0;