From 540a41a5834e590948e075c0db940222dabc4dc0 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Wed, 5 Nov 2025 09:02:22 -0800 Subject: [PATCH] add Ep3 battle replay test --- .gitignore | 1 + src/ChatCommands.cc | 15 ++-- src/Episode3/BattleRecord.cc | 25 ------ src/Episode3/BattleRecord.hh | 22 +++++- src/Episode3/Server.cc | 8 +- src/Episode3/Server.hh | 1 + src/Lobby.cc | 1 + src/Main.cc | 126 ++++++++++++++++++++++++++---- tests/replay-ep3-battle-input.mzr | Bin 0 -> 69250 bytes tests/replay-ep3-battle.test.sh | 10 +++ 10 files changed, 157 insertions(+), 52 deletions(-) create mode 100644 tests/replay-ep3-battle-input.mzr create mode 100755 tests/replay-ep3-battle.test.sh diff --git a/.gitignore b/.gitignore index 597f9a43..d95a9c5e 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ build # Files modified by the user and/or server that don't have defaults system/config.json +system/ep3/battle-records/*.mzr system/ep3/battle-records/*.mzrd system/ep3/tournament-state.json system/licenses.nsi diff --git a/src/ChatCommands.cc b/src/ChatCommands.cc index c096146b..20c3cd1d 100644 --- a/src/ChatCommands.cc +++ b/src/ChatCommands.cc @@ -1882,13 +1882,13 @@ ChatCommandDefinition cc_ping( co_return; }); -static string file_path_for_recording(const std::string& args, uint32_t account_id) { +static string file_path_for_recording(const std::string& args, uint32_t account_id, bool compressed) { for (char ch : args) { if (ch <= 0x20 || ch > 0x7E || ch == '/') { throw runtime_error("invalid recording name"); } } - return std::format("system/ep3/battle-records/{:010}_{}.mzrd", account_id, args); + return std::format("system/ep3/battle-records/{:010}_{}.mzr{}", account_id, args, compressed ? "" : "d"); } ChatCommandDefinition cc_playrec( @@ -1908,13 +1908,16 @@ ChatCommandDefinition cc_playrec( if (!start_battle_player_immediately) { filename = filename.substr(1); } - string file_path = file_path_for_recording(filename, a.c->login->account->account_id); string data; try { - data = phosg::load_file(file_path); + data = phosg::load_file(file_path_for_recording(filename, a.c->login->account->account_id, false)); } catch (const phosg::cannot_open_file&) { - throw precondition_failed("$C4The recording does\nnot exist"); + try { + data = prs_decompress(phosg::load_file(file_path_for_recording(filename, a.c->login->account->account_id, true))); + } catch (const phosg::cannot_open_file&) { + throw precondition_failed("$C4The recording does\nnot exist"); + } } auto record = make_shared(data); auto battle_player = make_shared(s->io_context, record); @@ -2288,7 +2291,7 @@ ChatCommandDefinition cc_saverec( if (!a.c->ep3_prev_battle_record) { throw precondition_failed("$C4No finished\nrecording is\npresent"); } - string file_path = file_path_for_recording(a.text, a.c->login->account->account_id); + string file_path = file_path_for_recording(a.text, a.c->login->account->account_id, false); string data = a.c->ep3_prev_battle_record->serialize(); phosg::save_file(file_path, data); send_text_message(a.c, "$C7Recording saved"); diff --git a/src/Episode3/BattleRecord.cc b/src/Episode3/BattleRecord.cc index ce77edb7..c0b5d9f6 100644 --- a/src/Episode3/BattleRecord.cc +++ b/src/Episode3/BattleRecord.cc @@ -174,21 +174,6 @@ string BattleRecord::serialize() const { return std::move(w.str()); } -bool BattleRecord::writable() const { - return this->is_writable; -} - -bool BattleRecord::battle_in_progress() const { - return (this->battle_start_timestamp != 0); -} - -const BattleRecord::Event* BattleRecord::get_first_event() const { - if (this->events.empty()) { - return nullptr; - } - return &this->events.front(); -} - void BattleRecord::add_player( const PlayerLobbyDataDCGC& lobby_data, const PlayerInventory& inventory, @@ -256,16 +241,6 @@ void BattleRecord::add_random_data(const void* data, size_t size) { this->random_stream.append(reinterpret_cast(data), size); } -vector BattleRecord::get_all_server_data_commands() const { - vector ret; - for (const auto& event : this->events) { - if (event.type == Event::Type::SERVER_DATA_COMMAND) { - ret.emplace_back(event.data); - } - } - return ret; -} - const string& BattleRecord::get_random_stream() const { return this->random_stream; } diff --git a/src/Episode3/BattleRecord.hh b/src/Episode3/BattleRecord.hh index 1296c7ba..23a23730 100644 --- a/src/Episode3/BattleRecord.hh +++ b/src/Episode3/BattleRecord.hh @@ -62,10 +62,25 @@ public: explicit BattleRecord(const std::string& data); std::string serialize() const; - bool writable() const; - bool battle_in_progress() const; + inline bool writable() const { + return this->is_writable; + } - const Event* get_first_event() const; + inline uint32_t get_behavior_flags() const { + return this->behavior_flags; + } + + inline bool battle_in_progress() const { + return (this->battle_start_timestamp != 0); + } + + inline const Event* get_first_event() const { + return this->events.empty() ? nullptr : &this->events.front(); + } + + inline std::deque get_all_events() const { + return this->events; + } void add_player( const PlayerLobbyDataDCGC& lobby_data, @@ -86,7 +101,6 @@ public: void print(FILE* stream) const; - std::vector get_all_server_data_commands() const; const std::string& get_random_stream() const; private: diff --git a/src/Episode3/Server.cc b/src/Episode3/Server.cc index c6b61192..416ec094 100644 --- a/src/Episode3/Server.cc +++ b/src/Episode3/Server.cc @@ -231,6 +231,11 @@ int8_t Server::get_winner_team_id() const { void Server::send(const void* data, size_t size, uint8_t command, bool enable_masking) const { // Note: This function is (obviously) not part of the original implementation. + + if (this->options.output_queue) { + this->options.output_queue->emplace_back(reinterpret_cast(data), size); + } + if (this->has_lobby) { auto l = this->lobby.lock(); if (!l) { @@ -2579,8 +2584,7 @@ void Server::send_6xB6x41_to_all_clients() const { // in the playback lobby for (string& data : map_commands_by_language) { if (!data.empty()) { - this->battle_record->add_command( - BattleRecord::Event::Type::BATTLE_COMMAND, std::move(data)); + this->battle_record->add_command(BattleRecord::Event::Type::BATTLE_COMMAND, std::move(data)); break; } } diff --git a/src/Episode3/Server.hh b/src/Episode3/Server.hh index 83fe19a2..cb43203b 100644 --- a/src/Episode3/Server.hh +++ b/src/Episode3/Server.hh @@ -76,6 +76,7 @@ public: std::shared_ptr rand_crypt; std::shared_ptr tournament; std::array, 5> trap_card_ids; + std::shared_ptr> output_queue; // For replay testing inline bool is_nte() const { return (this->behavior_flags & BehaviorFlag::IS_TRIAL_EDITION); diff --git a/src/Lobby.cc b/src/Lobby.cc index 033131a5..61864218 100644 --- a/src/Lobby.cc +++ b/src/Lobby.cc @@ -313,6 +313,7 @@ void Lobby::create_ep3_server() { .rand_crypt = this->rand_crypt, .tournament = tourn, .trap_card_ids = s->ep3_trap_card_ids, + .output_queue = nullptr, }; if (is_nte) { options.behavior_flags |= Episode3::BehaviorFlag::IS_TRIAL_EDITION; diff --git a/src/Main.cc b/src/Main.cc index 80b2f5f0..f6675852 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -3340,6 +3340,7 @@ Action a_replay_ep3_battle_commands( .rand_crypt = make_shared(seed), .tournament = nullptr, .trap_card_ids = {}, + .output_queue = nullptr, }; if (is_trial) { options.behavior_flags |= Episode3::BehaviorFlag::IS_TRIAL_EDITION; @@ -3365,36 +3366,131 @@ Action a_replay_ep3_battle_commands( Action a_replay_ep3_battle_record( "replay-ep3-battle-record", nullptr, +[](phosg::Arguments& args) { - auto rec = make_shared(read_input_data(args)); + auto record_data = read_input_data(args); + if (args.get("compressed")) { + record_data = prs_decompress(record_data); + } + auto rec = make_shared(record_data); + + bool use_color = isatty(fileno(stdout)); auto s = make_shared(get_config_filename(args)); s->load_ep3_cards(); s->load_ep3_maps(); - bool is_trial = (get_cli_version(args, Version::GC_EP3) == Version::GC_EP3_NTE); - + bool is_nte = rec->get_behavior_flags() & Episode3::BehaviorFlag::IS_TRIAL_EDITION; + auto output_queue = std::make_shared>(); Episode3::Server::Options options = { .card_index = s->ep3_card_index, .map_index = s->ep3_map_index, - .behavior_flags = (Episode3::BehaviorFlag::IGNORE_CARD_COUNTS | - Episode3::BehaviorFlag::ENABLE_STATUS_MESSAGES | - Episode3::BehaviorFlag::DISABLE_MASKING | - Episode3::BehaviorFlag::LOG_COMMANDS_IF_LOBBY_MISSING), + .behavior_flags = rec->get_behavior_flags() & ~(Episode3::BehaviorFlag::LOG_COMMANDS_IF_LOBBY_MISSING), .opt_rand_stream = make_shared(rec->get_random_stream()), .rand_crypt = make_shared(), .tournament = nullptr, .trap_card_ids = {}, + .output_queue = output_queue, }; - if (is_trial) { - options.behavior_flags |= Episode3::BehaviorFlag::IS_TRIAL_EDITION; - } - options.behavior_flags |= Episode3::BehaviorFlag::LOG_COMMANDS_IF_LOBBY_MISSING; auto server = make_shared(nullptr, std::move(options)); server->init(); - for (const auto& command : rec->get_all_server_data_commands()) { - phosg::log_info_f("Server data command"); - phosg::print_data(stderr, command, 0, nullptr, phosg::PrintDataFlags::PRINT_ASCII | phosg::PrintDataFlags::DISABLE_COLOR | phosg::PrintDataFlags::OFFSET_16_BITS); - server->on_server_data_input(nullptr, command); + + // Ignore commands generated by the server when it's constructed (these + // are not included in the battle record) + output_queue->clear(); + + std::array players_present = {false, false, false, false}; + for (const auto& ev : rec->get_all_events()) { + switch (ev.type) { + case Episode3::BattleRecord::Event::Type::SET_INITIAL_PLAYERS: + ev.print(stdout); + for (const auto& player : ev.players) { + players_present.at(player.lobby_data.client_id) = true; + phosg::fwrite_fmt(stderr, "Player {} is present\n", player.lobby_data.client_id.load()); + } + break; + case Episode3::BattleRecord::Event::Type::PLAYER_JOIN: + case Episode3::BattleRecord::Event::Type::PLAYER_LEAVE: + case Episode3::BattleRecord::Event::Type::CHAT_MESSAGE: + case Episode3::BattleRecord::Event::Type::GAME_COMMAND: + case Episode3::BattleRecord::Event::Type::EP3_GAME_COMMAND: + ev.print(stdout); + break; + case Episode3::BattleRecord::Event::Type::BATTLE_COMMAND: + // Ignore the map command (this is handled separately) and 6xB4x4B + // (which is only generated when a lobby is present) + if (ev.data.empty() || (static_cast(ev.data[0]) == 0xB6) || (ev.data.at(4) == 0x4B)) { + ev.print(stdout); + } else { + if (use_color) { + phosg::print_color_escape(stdout, phosg::TerminalFormat::FG_RED, phosg::TerminalFormat::BOLD, phosg::TerminalFormat::END); + } + ev.print(stdout); + if (use_color) { + phosg::print_color_escape(stdout, phosg::TerminalFormat::NORMAL, phosg::TerminalFormat::END); + fflush(stdout); + } + if (output_queue->empty()) { + phosg::fwrite_fmt(stderr, "Output queue is empty, but expected battle command:\n"); + phosg::print_data(stderr, ev.data, 0, nullptr, phosg::PrintDataFlags::OFFSET_16_BITS | phosg::PrintDataFlags::PRINT_ASCII); + throw std::runtime_error("Output did not match expectations"); + } + // Hack: don't check the last field in 6xB4x46 since it contains + // a timestamp on non-NTE + bool matched = false; + if ((ev.data.at(4) == 0x46) && !is_nte) { + auto received_cmd = check_size_t(output_queue->front()); + auto expected_cmd = check_size_t(ev.data); + received_cmd.date_str2.clear(0); + expected_cmd.date_str2.clear(0); + matched = !memcmp(&received_cmd, &expected_cmd, sizeof(received_cmd)); + } else { + matched = (output_queue->front() == ev.data); + } + if (!matched) { + const void* prev = (ev.data.size() == output_queue->front().size()) ? ev.data.data() : nullptr; + phosg::fwrite_fmt(stderr, "Output queue front did not match expected command; expected:\n"); + phosg::print_data(stderr, ev.data, 0, nullptr, phosg::PrintDataFlags::OFFSET_16_BITS | phosg::PrintDataFlags::PRINT_ASCII); + phosg::fwrite_fmt(stderr, "Received:\n"); + phosg::print_data(stderr, output_queue->front(), 0, prev, phosg::PrintDataFlags::OFFSET_16_BITS | phosg::PrintDataFlags::PRINT_ASCII); + throw std::runtime_error("Output did not match expectations"); + } + output_queue->pop_front(); + } + break; + case Episode3::BattleRecord::Event::Type::SERVER_DATA_COMMAND: + if (use_color) { + phosg::print_color_escape(stdout, phosg::TerminalFormat::FG_GREEN, phosg::TerminalFormat::BOLD, phosg::TerminalFormat::END); + } + ev.print(stdout); + if (use_color) { + phosg::print_color_escape(stdout, phosg::TerminalFormat::NORMAL, phosg::TerminalFormat::END); + fflush(stdout); + } + if (!output_queue->empty()) { + phosg::fwrite_fmt(stderr, "Received extra output after preceding SERVER_DATA event:\n"); + phosg::print_data(stderr, output_queue->front()); + throw std::runtime_error("Output did not match expectations"); + } + // Hack: Set the CPU player flag if the player isn't present in the + // recording (normally this is done by checking the Lobby, but + // there's no Lobby during a replay) + if (ev.data.at(4) == 0x1B) { + string mutable_data = ev.data; + auto& cmd = check_size_t(mutable_data); + cmd.entry.is_cpu_player = !players_present.at(cmd.entry.client_id); + phosg::fwrite_fmt(stderr, "Overriding is_cpu_player with {}\n", cmd.entry.is_cpu_player ? "true" : "false"); + server->on_server_data_input(nullptr, mutable_data); + } else { + server->on_server_data_input(nullptr, ev.data); + } + break; + default: + throw std::runtime_error("unknown event type: {}"); + } + } + if (!output_queue->empty()) { + phosg::fwrite_fmt(stderr, "Received extra output after recording completed:\n"); + phosg::print_data(stderr, output_queue->front()); + throw std::runtime_error("Output did not match expectations"); } }); diff --git a/tests/replay-ep3-battle-input.mzr b/tests/replay-ep3-battle-input.mzr new file mode 100644 index 0000000000000000000000000000000000000000..5e7b9c6406a0e4f302c26e12662f1c1649242160 GIT binary patch literal 69250 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%0A?tx7&^)&f=qQ%FosynIZU2rH_Oe{LAm(5dV~z z4nAI(iZLBJhxR({Fw6AzY@E%pl8k`+a-t9nZ1fry(~#6ewAjhdxvij(r>2ChmY<%&73~o z)LyDT9=KH1`$VXJ^f!V}9z4!`>EvA~-8XsufwA2YyB6vs6^#2o&DfKVBFW7{-4PQb z^;djHANSnN-L@~tm=w)`O)8sG9#RD+52UQ-sc@7u=s>uD$*J>!NmH()pB{M zr#KKs5x8LzP%>?(uz;O}!WtL%rs`S7q=J8jfWBrB;c_esBffU{*2vbC1n z$skK|{*mPrJ%Uyt(sz->$(L~F=E~9^vrEvQ31J z*AQGbb4lrP=y6b1#<^uT7>8n3mZI*$QTk+94J1AcdgW1rV}1HvJ|bW z5D|~4Wj_LCC8dnYC&0*AEb4C~x9YYjdb8e#RXCoy%QSh4h<-q5SgXqmbrV zEI%6NB?YHb>p#Eg#OPwd*d{w~_UAnARUO(+wnvIDW0*x?z%1?Qgm(CFJ;p!4vM*DO7kyoGl6u-s?yi9jc ze%8>&h-c2xKyT-ZA~o)g(OHDFM$F-~fUW|DW|cuGf8axoX4od!U4MC1 z?`VyJrJ=^3y{L!}qEsjMPC02@#EOaA6}KoSWt`kxoJ=P_F^9Xcy$sh3Zw}$?51uQH zn{sEsxYQxJ^{l=b=he&o7}+OuuzHr??fZI11&Ajl!%zi=uZeBF6X0+;oCksx2u z0g3uha|>WU)D^V+#a#{c&1AW%7@%Y%C-3dF(K_L_G4T6IW9k(F3@azln5{DqaOwY zHg3Q$AU!qC>w7!oCpQe=s3xX;s}C>P^{t^uX*6=U&I$o-?ugR zrKchD>u5PjHrEWWjEGeQZL3#|%*w~2= zIi1HNh5l}O9Y<@MEnH@G)rup}A4gARU5UsV$6ws`A=?f9sFCYUx| z&6^#05Pvzf8?`l%hEHsEZ`iEO6k&F!-E4HkxC#HB&r+s6r@MjOL-Z2cN-FokqRhuP z$nTN>_2Qr-%%>;Eq1Zwj>vFDDA8IY!%@g3ge;0sCQw0UzzZv45+xPyLPxC9FbK{bcEFTrI1zR3;z(- zo{lDyFKW-3h7@pU`a)j4ymksg{oh`TyRI?`z028Zo;EQ-b7p*ie2xA`?=UHjFeXRswMFvs~>{uRDk2MV^TA|E_2w$?p!yY>8zynzT|S4$EBM zcdrTS?Ps=+CW0fG_kwdj(+fPOS93k|@yG~bg-?bwCQ4^Qe`xLL)1djwus$T7d9CYR z4=P7>lgt^|mzE;P6{U$$6S6uO5K6UwN<{73f3MX<p$!PzX#hG4wwGaNh zuE~G(y>Fn^?cm9k8&6YUy6$61oTxPcWm?Jqgw9xTBXMt5B97sS7Y2Sz&L+2db;43s zx^HIO=p4@X>dTQjmtKU2*0#p|Dc>C2Shj96Kl+pbl#J<@D5X_P&>&*nEu8jj5$*FW z_qt!xp8{{GK*Z_Mn-*Z=%4oVg`}!r0Pl^d!sSkg}Q?fg1J;_C`xShH!Rgrkt4`fZd z{uZm{O{m)=ux1Spvj^r!q8hyKgp6>9S-DudwT2xlFF!_f`OvySjDq2t zm*lc0_R^E*-!12bAav&1hOoGl84h2(CzjxN?l3~~1rmlVB(`wX#c2J)!NE*${&Db^ zXDQ)E{^1U?_WWj1oK%qSJ;0Rgw%?=^=sh@O`VDjE9=8l%7Z|~Vsqx6p=GhfI;tuih z6zR%?QbHut8iT_{^d_sUsL9%}FBR&177_%%+%_M|qDPS!VtYp_#;h4C=_QmyPo8zd z;g`g1^We64I6vDop{8yv<@H};MB4D^7vl+e^sfSc zLQmImeEoA7ys^p3G*+&!!06N-#%b-ui5%VI1Hpp}H&A@8OwG*hpE+neK9$ob>>H(f zMSasgD7S}6^V1`F3{KAT{D9fpH~Z)eAn9Rz$IqQE2I0}2=h-e4Eva$7jfNnS!IC0R4jfGDu-W^#k9b}6|6#01T0xAG@hY_}iifpzYU@O`Z*WV`6m<`iQIT=aY z5AS>NvUzsf)QA+Z`S62IVH=;e#3I;<)OftZCxt3*rx*4JTxEZnr-)iHk*tSbP z%#bLN{J6os7`7A_u34AGA7P){daG+sKwzU&GI`sI6n=Sc*L`-N)e}DW1g8?ja z8C*q1k{>}?_WTjfv?vP9WG)gP3t+qqeMKhm2eU@!;r8-+`N;iJ8-#x(jk$SMl^2z- zB+DmeZ|sYolRVrKIf8F-l8=^#)YTynFugd*0TKu-KGT+SKXqdlv zI@D%${>jLQ@x5(lRLXT+y~uC>55C4O8hKs8mSAD82x=2tS;RnG1&vME4I1pk1?JxH z*Zhf+nn#5#AM(uMwjeD`bHGm?MVGdgD_z3w;1K(V=vV1c8HkK;y*BaEV;URJ4=~@$ zOO{5f4?UG~AVk2TH17ULhV|l7kI#8t74$gNb$@)4QiAM{o|*ad>JJUv$T`iiCn>nE7(YDjdPB%=*#o}@x0BYIMS-BVyhon*GQ|nf zT)vvTdk4vI^)#KJQTwHjuu!*695=p|jHK5rPKsQ?>X;YLC=Ce_JcM(Ek`lBIg%1&8 zSlak{C%p+bEBRj-)&H`@HAyxaVyUt7czb>O{_^#T8t5J7)SA}WnSGi{Gur_rWB9$Z83yA#W&^5*EA2$t3YGw3!%B68$B4P z^K71k@AIN^fB&XkY5miUTdzh}uiaj_45j+nRzJ?#r;xrsLK%6)L=%38Qy18#o2ZLJ42WOQoe}>F&!N zy|m*&*=7xc7kSm8N{ahhZMrz#i_2^TD$YwGdtEV(;QjQfKc43cKO!38JXP;3fM^!l zH!S~NKg59fWg-1d(RQ5nBpZl&`9c@RzuKuuo}E1nz6)zcFE=t5FkMuskzgp42u8wq z1G1@8-DtSu@cm&@ku`4c9ZJ{zdZrLn>;n{aAx?4#@SnG!`s?We@jXq}f~mmAP+`7& z)8g@cE2I?_f8qPle*gx2!Nffm9ciIGcehu-Kgj|=&x}2DcG>=oHO~{w?xX^}c-?t( z{lzxJb=a#J_MF~uJ_Qddx_&E%`fA8%Mvo?cYZSrH_`%!12A?OQir`bG?(aX>p}lr; z)c1#xD$J+5LRF5E(}9i7_fMwiKANJ)o?={*=ERQ+EA{WMDIQ&d^aukR1OI;OQK($I zM3mto3kB<}<&ipzt2lh*{gJLt@@JSH`f(xgkLfRP4|K12b?jfZS7j`MPKTtapsp^( zNlEh47hdgAlKf-gw@@OqG&t`j!`4a1E9^>yBFg959k#BDTjG|gY!a!w zEH6a7{zfSac09#Ig2?*ghm~*f+}^a1_hQdc+@L7n-u|v5inti}>tyPh2eBI26GI(w zX+O8$&gJNxc&Q1O_Uc#*=J-6Y+sgOcJ?N?+-CR~{my3TcCn7pAUFgZb| z2v&E#-2dL#KH0Bm7pB!;OngSZ&+OTI#UhjF_`~|oUw1wcBp3AV*)hKUiDdo>^50u@ zVtA#w706wD`Z8`8u1rY1R8$2)2-AW~{lO$`Roy)N;fUxpY_bJuAb8V;C*NObLmnvINkdyq<%eO!p~Ez8gE^G z+(pq*U)unoItQ?1#QL$4pFIJw>~WeDyO6Kw){Xwh;IcD!e3;uT#Q ziGsk&o~dIF83@QZe&>%W)mdnVtV_Nv)nrGrgwkU7#jBrjUz5%zV&~upPR~4Uf3(

Nz-Z!!$rDg^Ra?9D-kLEH&)C=0Twu=GC{UOa)(>om+I4eJ7DB*eyR% zu0xMLxAw-LMpJ>{wQD&#DHHP#zY6kw8&)2=fYr>eHC!rL3lgz}x4$qtUBPkH4*`8P zl8z|XUORh^Uvv_ES3{FSe_IcLFr}F2wRwyfbiM24GM zcc1vmr?vU)TlhSUpN{OuTPAS&YIK^KX&En6wF-`nf1)fvcEbBo;--3SkQ0^U`e}2k z!O7~*yK?>QUr3I5(eO)hmJ-ejcOHMf){>4O{`U#XC!!{?-rCN1!}ljEcD}!)kfNB9 z#(%n&LCmxk)VNyrgq89G)hBd?UUcHu$W_O6#z8j%T`~z+zO)e!GwB@0Y){|y=x53N zAV^_P&10`0!6#Rq!4fOw5a?~UQNxz$0s?LIpT3mxUjTv6C==Z<85?#|?3qp&`E6kC z&igJi*0M=&=JRn^KZkwayz_Vc-oaVuRW>q`ji_9~l1tT{f`!FDcx_Wzag5;dG)(?| zyFO(@eHrK7lyXvj90o7Ag#t5-y3D)3AY|3&prjr&&;fXIG^*uGRb6~h^p z*W#X3wm^l5y|Xv!!dpm3oLJ)ivr2^QElrEsM0qx(o^?CS>A&arY1EGhGVQ!2{k9>ubc4O) zV8#X>a$2?X{^#un=CTK@*78(uLG(fI(H&iK0gO{Ul1lyX~F9K+L&aBOX+7#Q-GN&BI#Fn$wW1*|qLumdu8`+|_$kslJ)G@{f{hrSso= z1X>BcE2Y$T@h;NvsYuHw-3)E-SB~XH?!)f?HwL4Uc*tc3$g13irS!_DE-u}^y@S? zF8t6!1IyQj;j@?H;d*R&=vs2cGQPftn?Y)v}=hBIB>5b`D`bhr3l?|)GWtUl#MDB=Dr!p$P0@4 z{uW~Hrh7Q>HUe=ux>Jn1-yY)mA;lZd=@z{qtru&_HCwKQQmPx=PhRX!dH)Ixp(s_# z+1yKteDo>+Znar`YRBtT@cSaU$%mVAGv1s}?q9auAlRHWuH5RdDRWz2Yozow?nvW9ci3`mnpaoxx!R=p1CNti9ALhOzae zZNc?p;u2$K)@t(;JMUUI#lHQQhDYaHII9XyA4kr>MUOz5#Z)LXM87%|Q~UzcA6}nu zDI33ojV~UfqnWBbxHQ~%G}u{15Ka(&?%=;|Mss1UkHVaD5wnWv>@V+-z3~Z7@#TYrD9B-!h?IClE+NC ze?-Ds>89bN|8P52jJmdNoEhc8m!*zAK0S6d#Ld^I@#QoB0^g$QE5CwO1U9JAmMkxLo37j>7&e@;L@jSfktxUVe zGBgwkbxiusao~PVtgf99V>fQwGdj+l5MK+7NIM%G2g~MHhfPf99Z=zRL_*AUSOD}B z9fU)%EG3Xq?+W9(eCG*zFBDXn`g;wbQ^aW}i|D^s`2ST{LW0fRlR2bJ2fa5~aofPk zJY*9f9eOcEF1fN#PnmXXnU42`2!jnYL?usG7tXJSa|_MThwc&I*(Uh_xjkPlY#bXO z$eP{6ByrJZ_x|I{M|M~V=qd=92+k2u{Fo{Oo0Q7L7TGx4-eH@yA$aNU9ws3rAiDKu zor3!hl}}eZhj{iVC6UDr;q!^?388)X8}wwMVq+egR=EQQNWX+U8}=QP>bUSPd?n=t zZRC!GH_^WX2M+E~+iv0zF%d|DKuP#_ADsqoGr0#r-5k=SWn{&78|qO1Vy_{5kClP_ z@HpGf?0i0*&&KyapMU&cmurU7J0uCP)aElZw7G%6^h29Nm4WA68x}TdM$)6&2(Z{o zkPU(&oL@-=&H84=?#;t1*+1yY1gGMpKl%cJ^rh-0vB2~!|m+2^?0gqblPyV9=B>Jn zu2%+pKPL^fU?&0*gMGmywRE$nedeJ*wk3VGc_jC@&WeZ){`#&GS9yQRJTUKQSHJVV znyXChD164J%QC+fsh^*d8m5|+T$;uC(}G7u^5%+0u6$+xQx&M8Z`XCchAw#P^rf09 zLY287P}xZync#QoXpxp-W#xHD zzAlnlW=XEx&o`^djr<<5q1TA?k7RP-Fl}-X+hud`j*m=<)D`_;ZD8y zJ5|-c(@#DpjGN-FMMujt#=OgXT(|-A03r zF_)OACvz>=W^=Tha&{Xe+-B>1)pvStY;q6e;W-r8$1I-;#w~qHb3*%`=l_nN=#wkV&kOb90ql>igge=p6Al zup!zO25lLkqR_y_OJKU|#}xStSZGS+le>y3^C9z89`0cTnxClg~V zF0HcNGB9I>treT0TfjFpm@k`b7GGf7UlcsFZbsZ;-iUxY6AP0IHtDdU8j!Wk^5&Od z(=fL>HHYWqrQi$sCV)sITQ{su_tym-5ttb%~xK!zDLM}c?Q|EPNNxFo(Wei#@KO=WdK zO{Lv-vqj1l+LT<aV^2{SQ*E=CQ?u$RE__289~7 zWik8u?|l=G{^?a}BbKt101MR2N1H5s(>-}4%wn=;hEdFf=A24WNQ_*Or8Y=XCm__O zhhXZv@Hllo{35JMouyv(Uj5Emy#iquq_$NtXg|Q}8IzY~_fD$R5nqYM@MOe0SWnxVukR1tXn~>L^?&K6^wz+d=XOiF zFaEy$7yfR1{%^(m48`pN*6z7p92pMIk@@Yd8UtoQ!d{NdHHIV8!1m$Z=)pGT0rlP>;tu%p3abdQaz91}X1*uQ?b1Xn#P2xmq% z3f;d8n``S5ufAA1HMwkZa^n5u_~aO6azukv|D2p0>DNGO1n0Xa1G7mCf9`7|y@YQB z%Ue=gBLYk_V@01G=YE;W0A5qLc`HG~*siI>Hrqzx^w=7VZgDEc@;flhC<}3HO*T|2 zeyAK|*yiz-*k>6-!!zX?1Gp930*--)@cWJ6;B_S7q*X*=0ay>e!B-l*Ajjhj!1h*P zL0JId7sFTPb-nigtm-Pj>NXyN$X8Ay z3R9{17_hk@irst5d0zPz~J!rt@l6MuBP4p z_GyBRW0I4ZZdW>yZLurDpc(&3WLQWokzouVW5@&ww}4QPL}mnqNTv1?nU%CbyWU=b zm&m5!7o>{4wMS|b6;X#_t1-oX5p{VJ-@$=4f076ah;TuH=jDcGL4nErTtUIGu%|`! zf{4(4;Z7DyE2Q8FCR^NaC`s1qykH2tH) z_+)_)^f5jSANy;C3!jaLAH?Ir*N9^{)5`G6fy1;riX_C69^y#C1bPpOBs5?UtsG0O zgb+#S_O%z3OZp~A!ea(~@nP&Ji!t{EH5_WrRkHiBaCU#X>Pf%WD(YbOTS%?>nXdZ> z53~CXK9un@k6phOmDJx7cea1aFexSHO6v$IB@wP7rEu0R0xMp|Av)T|z{Yzac76K% z3I0iJh~KYLSce6IUGG*h30f)nQ^f8+wq^=cDu)mq=}2p-)$stSm8N-`b#1;&Uv0kT zuYolwijKpUTi3?Z?eNx|^Yqc3L~H65x`VNGg@;i9w9v$wfx-L!f#0M5&VK}beA6&* ztH=47r;#2A-N|3Yp2gF}KOIZJM*&WU9 z_74Y>HQ`}of1hQ0{WXr;wr_N`TVku(OSWCU)OPh!*|PR!E7!bPZrjKtzj9gP70%r6 z0DrUp*yrGb8$u3+9XfHy;N9^xbsEPN%T}#ivDN;xqrKhM<(pSe3CE_RCn-S(?1MFS z2kaJ-gTjw~h&Xg4X20eH+0NE(<>F=7Ws7ZBKD13-VTYVr9X_IwvhBkG*gTw-?5IVZC1pMZf8miQLU}MefdM@r~oGq6s)5TH5|!YV^~% zKv~2tGu?0o#u@FFESfMym`6WO?Uo58X1Z)MXSAlGYQmxWCPusVjRzJRz{LB1P9Df-L#>7y0}bwl?^`Qtb(w54s+&D#UarR;b9t@P zT|0rFyoh#6>_))G@n%VTMDP7S^KI1xB(% zE84|S45G(Yjn_R%9mDjL+IE`ji4ZP-u%OyWsy$)g3}|ij8%;iSrp4z0P|tu`bauu7 zx5-@3=DF)pN8uz9rI_n^XNZS8LSVTMtm1bQbQDWG%j0aR}GMNc2BEp!*C5pLQ{(_9A}X5n4Zkdo%{ffiOWe!zIdm zg~Lt1SJ@+{w3@+tDXlJJQ{WfsAcbn@8GMDy=wTQ|I7#0Er^Jzm3885RcT?<52URbO z2aQUrafABd`;=1zOQVGs9fG>$zCX?2HWyubW733^MjGLyyF*BvaFUTPQt*V$&cbGm zbAbcpSnZpTo6n1RKxtlZ+ZYa|#kIc}fRf5noh5`{>hw5IDC~3;ULcHi#srcGt4hUv zjM%awAdAaAzJLMegG<*?g}9F-$#FmVDv&41!6NJ>ImTZry(WZ-hZme$9pL-?4n%!T zdQV)c|Mq~|AN#gYi9K7Z&)?R+DpU1mz_EW?JH5{(_WK`6q(l|mMmj4@-?U-)N+wsVd@d}kD1lm1ok4-K? zXH6$G>7DXZ@zn6c$d#XsXwA>6VDsgy#d|*efERAg+_8nX21T5tp&-WwVrnzP%uqW% z8-Q8Fe8G8*{RmrQX|tif9x`s=qS$IITN42lwNduqp8Mc&&j;;~uGtgcRQO%$jD&P$ zIH>5O!ybkNPwKEL!bNh!B~X~;()1Hq#wn{dLeTE-r?)kROJrXdlJrC8{F1{ZU&mKO zGbGay42i4b#WZHPn!#mm%2_C{^Y&B%0li zK|z0(JRYt+)S)~s3moe7P>H+ZZD_3sPySCd_C~k7nG7D*oC2fY}~SNsKa?oIfb7czS)hseN0?#4*wx8cR{*?fq}RNU33O^Ts(%e znK-+af}Dn>WF|EJ1~-olMP8XCC$*bF7*e~-nnE6iY8W!3nAgi-gcOykh8cMkQeI$p z$als06TL?CB}X0v@iLZZ@>a)c+qnB z!UBW6v3*3_5>HGaIKLH?*?ETIF~h4#w%@8LMNe=y3JgI-+dfL?b3>0xx~PcB5sT@6ulu8wl&^;_6yjIIWUd0qB84*|S+rs|mvx*CJwk@-Q1yTfFAX}TJc zf0-=N7sIF^R=({7()iJCjHC*4rBix(dO1>h+U=!3hVg1<&w)rO;`5u0@BrJAV|sgm zi_lX?W4yA2xFc@zfMMXU2B*+I5c3_Zg6i79DU6gd8Lx3uK9e8EA=oh1aGT?SasRBW7Hs z1v!ALbeQUi^#he`2pzbw_)Q z8U5hoc*5g=5%Iv2+#0X!VkDgg!l3mmn0hWG0Y^j1jUH|ERmgG+!2sO{WdRBnCw0Ky%MEzAFU0ZAHsw*G zJ=y};CjvWTFB5A-oyrGz%HV@tvPBCjA}47woN+- z?{NY_v$C1CpsE+Yw)EPr<`oO8dZ*Do^-|TW-P=Jhbe9spkbHKw5dw#3B;}Y(b-!Ev z*|vfAwfAQxlh`6d*7OnsQ*|$34E(`v%)w#=795i{XnB1DDsd7i;0}R-YZ#TNsp^f) zrY;;I58$a?(pn`Y1Xx?D`(_S|jZqZR*@jRJ8d6BjrEUBes|UKP71EuCXF*#`g*4B8 z{(CVX5pBIwBz-A-b0`4YSzP{aq(k;{^3!4s?F6VM^ z-=&8??fSe^Jcf6zCR1t_wo}wSJ3&p?la!~*ohW1S<_QJ}hgJn{*;%T)S};IFAz<-4W1QSP!1K8Ip5{j-5?6^tQ@TEk@|&?Q9Ej4w z2(TOLV?dNT9tT}7_yiE8oT#cM#)D{Jrq7AtUDGXyMBI zHI}t$?Yz3}(g%)U27teYqn;v8t)ffgq9@pzNa$YNW^Kx6y*en(4_Y#%gQ&G8x_W_> zPrT)S;l+)U+EMy^`UvWhPIUUnelXH(J=LuBT^-R5)|r7!m^-m4q7!FH3}DA_nil22T`cYDaS~&jbIJWR{BZ%;6lV%Z%5cfo~A#9`0Al--7Ms zwV9G@E^U%)nu7XFg^V6sE@5{us4bb49QvrH9jv7Pk!H4W?-46ynLyrS{mhIgCMI=c z7HQQVai0YO*5K0R(gk8Z{(1NRdV4`E_@*BSJ}TC{AREyS>@7GJ_d<=5KZu+2CdFw4i!KI7|n;R>-60kEOF ziMAQ8mJ82=D33|zGTro;@xvg>(*}9E%brvVG6>MICv!$~ZHhsRXWy=kl&TJzKU*`K zXOHycp|JR?_tQ4sPG!HxcqE7*ZG4BLi*y$!Z-9~}VF9+tGuW-wxaThRxaS(IR0ijy+eeD4BoQUP1sA;g&(PM#%^`*?W#> z9c-0E`^wGXzH%4q_I2PU-hAP0R9k_ZvbgTkWW@HRb=;GUX-n&V+SH{N#GUqATGtd| zrf*Yc0rx%R#@lw5xwLLBdn(_i?wH&8wpw$H{O=y_?lwmB{8p9QI;rGSx#`8&&NSnGd9$maPn>rVpI!(YeZ(!*^ z8huR(rz$Y4j5hF-0^1kXiHA*2FeJF(k!xML*K*fGrahpD(FT19db2^$_sH-57&mvi z2gNP@I|jskuFQBHZtiiDs3$N(g2ig&5ediNz#A?a!Jsv!8Z_w=snnXck|CL?kk~RL z>vTE2Ntz863`yjdC8nTdXJBfKY_%rdQkNmYE?m|P&Mq!ERAOXO?i4NwEH<3ZYGkyh z=jN0#bqFq#mr#TMVhk z{mcoTkHpcKeRV?OczA>>aXeRj($|NUH5X3HvYb?h)3P+1&-yB5>!EO^EZkiLO#G4X zt_+*;eTocxM0xc6z6`n=WR>{x2-YSlJW!EA|B(*`)=m)a8aXtl1mO-(Gjw%3ac8+N zWy4x~*VG_T^+Y>mTV{|ipP&<0(&Wo`U#tmAP~IjU?*t;>0}*_JOg5o4PV5pw!4WsH znm>DeR}&*{`b;9LCa_(YYdTdEM#8&3u{sUGQX#HfSv3(_EM-cCL>JxfxCt!up&vJK zI9tjT<`B`-dV+;H1W1_Uxkvw>iQpD_zBMQZUV5paRu(P50EI&ebBssFu))Qz^S9%I z<8*5Xk8*xBN355}!U{qZc=KO_k8K}G;e&NEM|@3orP+v9>L^2xAc`ZN$gk$SQg{%5-xoSiS8X;o~~_N%gNreJZpK z7B|9`TacA^o$2tn-ym!}>5pwbeG(Y#Exk+HrBFrENqz-=IqULCTr2%Z`pG^}I-0HZ zt$#3^XWg#N6XEqYv+jbBirDN|ept?|@cLJAz&=&UxcBH^jIK6PbG(Gj9y zTRiS8(ITMT_a`USAWC_LDD52KRN~n|Wl3q*!Sq_N6{Hh1tN&45k9!_B01V^T`14QsXZ+ zFFic3r!=C)g3MMp(q2#S6+N0QSW#YZ?(li8t1iftuVtY9O^txQ(&3tWA_l zCpnkZHq&pHx|V?g?XEUBdYS_y@jei&6Ays2^(=Ra>L^6n!9xR|lCKToTcclil?&H0 zAfX7IB3!$);_E)B=2^Mu#-bkBzDLMdE0>Cbo^qRW=8)u%OHQF%x#SN4$?H|Y+%G)$ z7-O(rv;i4jRL;*QpxSI?o_@vUk^q9vlB)kauS$ylU<*2@Y)@OXLS%in+l^HdIQZGC z$1khmriWEcxIJnD4n*_SQQfME=`i4Ek}_)}iP+}ya%voLU2C~yY0_S_WN9*Z=244n z)&wGKJ1vm5oo-&A+qF$aH6y^_FdYH5WT2$Lb25yH0mH+!2&Occcu$rJhKHY(2S&m8 z@UY=0Sbt|g_R@HyYQhqsD|LO}QGQr>*kmGFcsO)G85OaIIP-UTw9Vr4Fq_3Gus@}g zVj^6$%JcUhO0iJ@Fg`2Fai+vR*hSC0&ho%ay3yaBa@9N>N;S_ot}7ar=?#Zv`uTUq zfRu^a1B7+2)dKXY=09}%T>__pu1d6<^XQcSpRRB5->?$7AaOv?_I>slp-gdq z`jd}}`=)DjG?dbrUdao2f4X+{T^MKWFej&~Tn(=$_}+4ZUj?y?o^dxZNdx!Qi>$iT z27c1PEB+wE6SO^QTJbbQo8g6g>dk2n&u#kr85Cz)?ddm!RrQ*bqd}Tx<=Fsyo1R-m ztj3WqV1Pfb2>V@|uI0=curIP<3!Cu5()LG9IgXE-itx5<@FRr4y6nuBc9}!qN0e@N z2l2(b9YDm4d9ekx^dq~_pit_^%YdcMfe^4%b4#gWg;l733lEkWq6o-RYymjpj<_X< zOVK{y+q(Gf=`rokz{6sF{FM3*TGIXEv$crTN@dkXb>bOwYkfq7exbqC&92q+6mO>wjMU)a1xAhIGNC1%8rUa5I)PeBL=RW z6EBI?$U$r+@uzA&##}q6{7apaG)-TYb4M(7;?c z=@$@;R=KK$!Tt?|bESgE#m#|UaB*`HV1c+e`>t$-=mc^3lADKH-#<7;^S*uT6JP## zs>FNhA3R?4@yL5{?H+sbitv%|xk7U|SLos(KB2|Op%QI|6BGlkTG!lIkRTBUpY?>{ z2KBVixTy7akLe&r37~ON8*y;U;QQJa=I}PvO&80#AHdc~j+)mB2`60^*nsV6U5h@@ z_%1ZQCVFxC2jM;X>m^zlGqm&rw~bC%mH^JG9}o6`See-gq(s_ToKG~dYyAMyqZP|R z8sxio1(3&Ag8T@iOzzxO+YDvw=vaq z!2SFPKyl>z@$MomC~jbwsLhvVkeO~oX8hm(lP_iYbH)V?1f2_)Q7_j^{Ct43Z>2s5_oPC$Tape-y8?Ae&H-c&1l1t=rAp`JF=&v z7*nTUBLT}>n>=lj1Zp326r*P$ikjp!cBaL$ zKOwvQs2Q@%s~{WL1G0fHcXc)Rh$t-hTq_)>#=f17#%ewdPnX5sC16LgI%Ay)MWZJ= z-AhqJyMr#-ow_)vr-Y~>PVCw^^V*ob2so`YGGOfZKX?~abqI5))D?kyaaJ=9JW&YT z2&QU0Vf93WA7?Y+=cEH}91G#b({0theu`W?ocY&6k!u83K!mH{S zk6|uVbp)OKsyffla2NJ#Ty8;IVDio$gw~D3uyZ^kAYOD}G8U?`HV#H{8)7$JGUUW= zv=F()(MkwG$r{&?_1f^CEN!Q2#3eDy?ja#NseedMgp#4Z8#gEYV7&whT*clTNt(1kpl`<#Rxt(rBqE8>JnvmjrSx!m_`I$B2Xu^$6 zyxK9m&e)nYo3DqI*gVBi=xJMS16L+y&5t$H@70dsboZyvXnhP^Xz0h-!b*`$vir_N zb8(0+4-X&BSbMaJ`UeaDm8rw}ow=^|Zo<{-5EkqWUOaJPdOhRz2G$nC!eq0z)#d69 ztam>c;EI>OojB3f!l->t%;R%BFSUWb@usY(XU!>b8NTXG*~p=psGSdtHlLa%F2i;= zXadA#?yH@_%B$a%X`|w@D8pudP_oC1%dFsS;w-2VOq`21+8li{#*2*-V)7PBct3$Gpkq2biRj;&2 z_gMt|&fVBhoitsIKCeC~`StGC4mXXpz&32I-4YpZ7fX24fHIe~x6Fg(>a`TaAqQY% zdto!DgSh3MZPf&(c~|%Ujew+5reGJ5VyDe);6LON(sXEvWW@E{aTzSQ0=3{xv2QfQz5kP3Q ztC``Z|KC7D{ckR#dE4f+Jdp$80Q}HRq_h%okbCYd;ow%v04`9pU*uqk5IMM2x-vx$ z#4wg)n#h5E#VIWxsAse^stb{Q*|X^DwlwKE0!rlIS>)ynYT%F}2V?u)u4%CB{BngG z?iOM26bl*?YLhaF0*}nD4H!CQD@D|ZTaWcgBwKL^n@YmXZPVkOBpW{$Tv}~azTqQP z60%^9kY7yF!HwhL>Z{(@qRQL?3ms3)74GGJF6`tuGl!uIuPAw#vIW9iVFwlx$;dXx z^s7rdY>t^r18h^RyjBQR#hZJC$H=PUnQ&EcGKHe0kwj6IgB;YT;&HNc^Uz=ftnl{q z{d&gCHfmGw%Pm3>>DLB8+bwR3JR0;1klX9scQkC@{RRykXcIQ>-XjKXBg9#chG{JB zli-Y3Z$(wl7R>e?FmB8DXmBmB5^>6jGI2JG+NDlit> zr+eBE4N2$!T)ZLe{PjC9Zd~#*#I*0&=sTeZ{?EwT78Y%kkD`snEtZKsN*ggtKytah z`KJgZm-WkC)y*4-}_tBz<*@{DOkM6{k;>Y&Ye18Aek0UJOa0{AjkFojwTj;AHOqcMUb1(uY>&(nwT z^Y)cIlj=(wjlg3DOiX|xArMzA<$Gd3#@(Lc=aHZ`MZ%7UC13+1I135q=ee(YEp6ui zG=*Q!gY$n5H}-s_jgr7`A7A!)rIepX0DJ0@oYS`7(fGW%O3BZ||2oOBY-d9a^-7@= z9p@m^s*2u^ywSfruL*3+l`XSxd!^QLwaB1Hl*d0^%dF*E6h7Ado-_$5j$?i4ky}}V zN}502WK`)?TSu?e@Y0=r&F`u>5_g-Ta@=!4)jx`RV}>B(-h`Tr^^b^G5fS25gjM7H zd4W>;{t56fNk1$=*Tyq?vR~JR7#`u_nXm3Ab<%sT@kY(cx(3YF!UibaNq*r`qvLN9 z=1m6V!@UP$?QmD~c6QtV8Xjxs^J@;%bmG=h#0Uu*5IiKsss#@jF35pO+G&!ScA9Zg zA2q;5kkmR=?u>k90vAD?>?FO!$N!p0v)hP?u~(-RFNHt87%f)>6Q>f-?tN%64A;Hv z={OTg+8!7$RxCoGDHdL4JDCoO{zV8yzn6=Tgc;kp2q9*8Iacmw>dF=&Fv4W7pL>~S zYwL^*bYHptZBkIWFcJFLq5yIfWt!n3jJx_rd5~=*`!yb!JDl`7;|=?@$r`kV{o2at zkdP<6Gc)imReC3{^m-_`uYN^>`)aSQaxgjl#K2(GhcjF6^FIeWMTyP{t8fa3X?^-; zRx$6-h+s2pIs;e9yNA@jTU_dATY>zy8xv&dY$K262+YX}wzJ;+j@k($1ocnH(WU6| zt2*P#)2=rb3!p_^O9w%1B{g(ND(74ec{3Tml=O>U0@=o(L2*)#*9Vl!)fNN|ceb}` z)m9G>7k8HL0FrdrHmU<&DELH4FU4keAj6|4Lcv2#A}k^5(4E&iS)0qovv$o>gl?bn zG8`dr{bmsQv|-`t9oqqyEE38Pp0w4yYv}E#x2pJ?(YBi#JMX;D`;Z|yPm5&>hKTP~ zNTc1d);s*+Sw=c(-MIOPH;an*@rNS=?t=M~8Y%DBJpx&o-&+>ZOIV9vwXoB|KqE}F zSg?GxkGRkP@t|#m%Pf_~7;37~`*3t5cnGG(ApJyYebKH`KkB6UP?ET4!F%B{QtBd@ zb!s*e*X!bwJDWM`dw{ia9U3-$pBLMXrN}fzC^EzLpRwCT{!Bk}7J!doeZcfQngGmI z&bw&4Jv|cv3vcb8rGcA0gU{K~>M8rMBqkv$H7ftAh@D>O!3~Vtrs`p`ul>Yg=3y9jbdygY`oZG7ZG>cb}1LuYv5z)U@4GV>_y@_-9B6fE#|~dVZapkFX108VaBc{2vW(t*tHx4G5jnN z^}3&URL_VUWBBh$UIR$KYBrI37o=OD?mUd=&g#VtVLmB?yAa9%E+euu&5pgDaCAYr z%H9ah-tO~vh-tf)uq53s&X+|Ds6oYzuG+ULt`N*I3@mt%@ZR;Z0!!Kh;V~oA-T<< z*8A~aT;-|Qtaj=|K+hbC){LLXE?zr>%wyIGba0pZaXh6kLaP_;YxWPmqJpm{!^@s ze`-S33;I3O0fhc9tx1prF@&&K5i1BVL`N0e4M05ZiUR+8hR05OniJ3+6DSh|m_pvG zl=JrcR$~MK(@pdR0oKoz8B>A)5*%!lzeZ&pgulJN1xhUR4S%2#X^l!qPQ(9Xr(>Ee zApT7Z#7ViSA5Vc^(k?!gl^QS#iz75*f2Tj&a0W?~t zu4hVBLqIVYp40v-*Ltk$r$osFLzF1la~H2yluUfuApOHJ{GkKnhA41b5&vtPvUz_V z5pMH7Wm?k|aI9B$a#M(HEmI@hlq57aC3#WnR9#>?@o?g~<{&0F1*en8T{-6bp<$IEn?KUQuY$Jwk7M z=LG2<(SUSs%Jx(u(-F8rI<+evvpY*k_e_8}e)Wv1k=Tk7Kk>YD7FarA&ozP#6^N1gFOWkRWr1q}LTM|GWYKEC0Qm6JXna*K=6)Y~b+PJ(a=(@WVx+0o;+@W7 z)e_vhxg^MzZC)y^J!bt;rOG=XWvcS>T&jCi02VZwHIO&pkBTD?;7GIN=$Qkn$7K5y z(phi>76BL?BT`9$)oi%V;y8tL2OQ9~Ra#Dm6+$Ntprl}nfzP>wN%?eG0ooqGq$^yf zPgJiys3om|2gBrL(9$P_Xpl%wA9Q&r63IDbW{{TMk@ghy#hOo#gBM!^e1lx`=_??u zQS1*MvIcd@?UZBT)>VJa;TS;g*b>D%s}RnSd0@@ErN!=6lT0ZOl+o~Kz$2x-uqwUH z20S(qn4lRkJCdz+JL$qpqo6>@0BG8L3nn zm~3wJ5TKN$=koymwZ2j?fGPPS21sPqH&Q)u7`25c7;yXBXpNB+((g%m(Kho8(fdu| zXK8Qm=qKp>l1XNo?S<7gy67ru8(m{+8#N0$ZT~Rb|Hc3r*#$&ecMNFwM-S*#mjA%> zwOa5zpuYgfc3#pZ*CjVG>`jE30}Wru76ipmr?bT=aYQ4hCHGF z4-MU!-V+G=&g>eWbbe1D;ETW|H(kPSC4<2Q{4r07`AF4om)kj7JaqQ`e|TuvqSlcA z5k_ntw-@#q4Hnt23;`|J+}K?7d~FCvY7VFJTte$N2`6z+PV02@pyE&$Ls|f6BFra* z5%1E+h}X>D9YU4UEdtsky$sg_A)+d}E$g6GEe;9kBVQz%(L*Fxi3SYA5NpAC zaal1ZK?_`5fHK`~d1z_D`?QRak@*=mbB#iqni00`dQQ@5nF2IXTK-djwg_FGp$OfK zU>sS$p-CHSDMHUwb#2H1%n(2fS+nsyV1`JY$6X_}>{*jd86yDOT*T^Wwaj_}SgTIc2d2jiredJ6dK+6_;SN47vb%?%;4r;l)(sEM`*`0JH`(yF+<m^FB(AYqA?N1m&H8Rw6Cz*Rev{%Q z45wgL$wB?K6_jQQVDp-nYoTAeBspV*&f3KR4$^5SsJ?!(lOG`k4#9Ro8&f=9+#wx4PTR_EDHd1s$$ z2XUK94&>bND6J~a_Eb-layyAgRi$Us6fjyLZl@=BfwYsT(*~?lu-~d3I4D51!+0z7 z8>eS-tp=wz%Rr*q5&GI~9QTbdv7^%g!TQZ*>KT58r&8N3ebHaPQ@gdGH}y@`N=Jd5 z+)aRe^{mmOfipn)vrA|WP+SVB%2aN-<^CW7f!?*}S!)!#gYb7DyTg5RiHJuzqa|@X zqntUy-Eiiya@`rUrh;k<%-b?a;0_F!(ilGQlp#aet!|w%A}Y_4kmb=^m8xGBNY$_HD?_y{dZ%c!x+3so_X)`FaEO(3M*vy= zW){Ktgw+(V1@xmkPcm{iX*F1DjOa1eKEegC=-`@viKh2%h$^3s(RFiM=D=+8O(A%% zB}?BE;26mR&!}}gjBiSaX#GF+W5Yk?L*8u;Ob&&ldgXYruemE`Dx}z;8r{)a4Ysk!n#}!DOTO$BMp*0f7SC)VFChySZ-NUJCqHYw48j=#PYX2ma%Ut*Uef}Nn+pNZXgE9wfW|lHMgY+0 z8an^$CZAQn@&I5Xigf@WjEq2^M_Pz+S3`1lpli)qrq)7 zG{lGhllbi_Je>30{d+hlWWb9!-{Z3WA&1h&xF4>ke58$9^h^_|MbA9i2YK#!M_69d z3ru!QC!8^}kbC`Vycy>5>iH2ZDJ2{Lhs>fQ05|li@DG$-(akl;lKXm(y{zAoGG7p` z820Z(aCLLB@NJbzN%nX0b#p_Uuw3cxd9UifXI<7^aJIOfMr`0xIM^k96pnjIvjsPH zPZB(KPcpM-mKHqpotON6?m=#GJ@`BgII8SMJq6N6ecc0`JimOX z;}q}^Z|24IwDI$TvlAY4QFDzTYOVo)A_%(si1R?OV$tnm7c<6F8e#{Wpy-Pa{&E_K zJ7@Ay?t0gH9#Gpd;MBIbJJ};z6qVBuHzarv$7vwMHU)pa{eZ=30R5pMoAJ1Snu`x? z+mt&RcH}WvPM3u}Zi~H0KNI=bV>7+S;kZ_n$8X~~{o=JK@NX3;$CFI#RvddGdcGko^)&nO*b=U+CW>RjY8j@#ov#f1ENI3J}Jn0k7qFcUw0_2)^Tc1cT zn5vgbFEBjcKOu`uudB%-#yL52so^c9DC71A+=Rj57mCB=2yY_1bb~HL(RD4U0yo#D z>SsH2dPS4-8E{QhKyHJQ<*jtCwAr2Xo|Ko3~k*BVv>NriC3~Bvg~T7bC*S-CkYE z|F8M?QZ=V(F=8oz6?IapeLIbXdH_}=^hESwbVz7ydsLScg+a(rS{~0$i>uX=cLcci zf9vnl?(0e3{p0aS-dTOQ!OP5e$Qw9Blp#@$e|Hg68*m%I$u`9H{7FG<@<;L6Vt`60X!ZCyX3&Dt6e`%COwAP{0x-HkG$}p zT3luqTVX-Yi)e9PejR|5hyN?Oe!Uy;cp`pf%1G2pH@km>ni13|th?QO9{rWDyAP<$ z$KB$ubZ=3)*0;bKM8WjYcCuDQ%pX3IDWkfVv$!AVzqoW=Xa^noPfJtY%bC%aR~wxBW7HeNBR{@*DUS z-V;(a@OykCR75!1t9xY;tnW@XvNqX89QK@fC1i9IO7<#8dyxJA?CfJdFpc{*%zkj> zt7l(0t&U#k)hDGBP#Ls3&vb79aPOT2R*a8u(y;vC9x2^3aTi#R`P4b}OgEC$rW@&M z&++XO1`&`=`obV1xG>1);v>JlDkARcC@AlRlP~yW>;^MS-brKuFEDtzj_;t`duDjV zK4PtZpO{5}AJyxU(v9F^mXBJ=l+uZ_0{WV4IGEX!2HhOUanjhT>!C(-7+%bGbDOs5 zGn%Wj#Sld|8#h+&-D1OuT)fYBzyP%{Wb)T&saR@(6ieM!27-QnI1QQmT004u0{oJ) zA9#vS{^Jr=hA`PXiD6q0fLZ9L&VkWgfJ_t_1lHdfXpXGjlm$6=^%Nzh|abkJY!fOgSpj6pLdG=fz&;l2)=Nyejk3%}+vAylkvhb#bp8>vs zkEJG9FOw_ogd|*8#nUS9wg1!_s#cZ86@qlB`Z*A#)kQ!GUIO7nyBxzq*+7M_EJh<~!rnR!X^)LK~nc%Q#Ia?i3^t5`O&#>RLQnkPv6`C-!6!jZ0XeC~m#bS=`F`79Yju6CP~r>g4m& zhlcokR%cgi97903!LLc3Ea3C;CpTT^7ZI;bf-`rrh8UBOImzeK^>6$`hQjA)LO>NZ zHT*hXFkb_zuq&wOr5e>I`slJ1TGg>y)2q72*rv5-Rcdij*;^piyw{rXAAk^D(TBzJ z`G(ojr?>d0xxL`LB9YmARqA8eE&f!+3qIcn$>%SC_>LpUP&>_O>L)89szb3jVP+mc#DNPdAN0a}xzeb(?;I*Jc?th6nRK_}>})Vi6y2Mb2xw@Wn%<(LPm}-mqEX|;w!hMA78Rg48*?y6 zOQ{PdCt0nn29BMWk8F*>3~6fK{pOlvu-}Wb1|kNXt^ly8{U4`ptqb>JyPHP)7J(Kk z3Wp%SD1teg;l6kTn*Ny%{xr+l5C11esvpe$dS zBha$q0Z`PwN}Ju6uK^uo=lUGLf?=sQ0*{kpPKM&rTr-5?l6k9?pKtA)qqs!>8}IcG z9oq33arAE~T7Fj8h|z#A2qoa*Q{eTyjrd-U+TiX#d0f%kDV_>q*Jpq!GmlGPh8G{OKj@?WMQa02E5g$Iyc}7V-r`nL* z?Mz9I8+=-xL-HrCd!8fOpR|Zuv_DQM+8>wnJSQV?C-FxyptU{hoFLYZK1BHtpTfUW z_hAruqW7> z468G*Jnl0}XH;@(7!9ULB!?zV{RV(YrkLh zB52wEPjdc9iD3 z=sW;*HhaaiUmP$Uq8`!J@{gEb)JGz>%N7iZ5Qa{~=Nsb^$)&YRt`T{fIFoChAgo`J@2=l{La z#r1PF_H(>aTtIjLxN+|hjnF@CoW(a|fDCP70&d*@!`8XSwfO$=f5(~*Yi%8-149%= z<_9* ze!o9+P&>QUf1h>zF*fo?%}%s*f{;?zfWebD#I%aKasGZ zO);qVnmML!DVclnN-H!)*I!h`V5@fkubYgIOLi}a+J+P{Aa`s{^9f+y z(ztsir1Zk(``ZIj%E%bylrneI9sE_L7c{UEJ?(y9W_{^}GnKxLPWo$i27m-&UbU^D zCPeu|r?a{iIxY8EQLgfb$8{m_cZzbcAM6@JY6d8a{F>c~jj)rm>5G;oW4owyn!0X5 zm)LfguxoZ-pwu?m;=2}J$q;Yx-DSoON4|w2KThClVHou}D4FzN*)L5o=>eJaU{Y}) zc~~rE;l>z4VM*1=yn0P>i2Id0rPp0QsAKkZND~rka ztV?xXB9{+cb^MG$T#~y4;li%=OmShyvDj+$ey?RlrSAXr$^`P$fa zo9MUHB(>v1R3*GaBC7NPtN8H`{i6f z`Q^k6rR99FFxRl#=6}*?4mL>fFEG|BC_JE+o+F{p-aWkHHbzU1u|~K0JvnfT4|Qbh z=dfZ4-4HuE->F~54c$j^%P7hT-N$|?K+-DBOVIBdZ)GI7AGnNEs7f;-BjG~#XF;ax zZRVm#tZpqQade9rdg4<|3!&qQh0Z43dNEy2Sv=iB$K{=LhS);qIC`-TI@m(z*y*{5 z)Gz{^l81$L&wpUo>Yi2*9N0?`d`i-aje2YF)X*ePXDo!=t^23zd1q6k3|l0nJw;>? zj*h+b@~o#IgFJuWoBQm5J+wxu*^)6=>Gn^u(@sDKdS8NT;$NuBx`m0yK*%dbf4 zSOrlpJgJw=(6tWgYlfU8b(_w_yl53X)xs&^1W#SuO_N?kXYj4-B-0yLMa)YDQKAT8 zyTZ@H+KHWO;I}#QdSAegD=n=1@cLdelwN*o8i;C@HSKI|fkmLrWKAkDvZg%^b?wci zA;#aDFz}|^$u8tgY>X0C*5qRTqq$I`eH<97lXU~I6_D>Znfwb{kdeQ?a(HUJtuOMD zOb3CXs)U#%HyO6jVzAZg0NZ@YAf$Y|mB3KV}8-hI(xWvrdw;Z-z+8HT3t=<`qE z%HL3UpTsTBhHdW|+qJR!rF*sy8tjWGbFmM9gg3le9i2e*;G{N{8fYqQTJXxC#z2Me zRy$87BfOoFXBfh-xVP=rrSvtJ7x(JYc!<0~BwhoJgUxuf&<=q^>~`JLIX)Tja4u?6 zT`bsjA`AgUN)GW0#aAy7#8(d;IXp0U=vFEODp?#^ii9WCxDU#>yWoAEuY*NHK{ycH>elj?5ueUQ)xORdF%uUwF8PuFqFQ-1{Q~oe8Or5JW|2i4Q{BdhyEAriTl7ly z9?FWN92+X8h{mxAIXdSB;|sSWjhP=xl17}p16w5!y8kIss%u2S|UUD3GeaVO=_ z-R^U#e0Jz=7JWK@%eVHZ-KQSP+BLD7N6{|}+hy$z>-6BV8(6*cHG|6M2yDZCjPx3 zgGO*~W`g`f%F)mfwL86=Ea`Slr0)j7p(9QoW{Im(#)l%Jx02@=t#~9pk<2SNA^+fK z8e=i{393&6bLAFB_yI5|;RmPX^I)|fSGJF(*lVGQDfXV$#@t6K_9QMWpGLznhr2Pw zo_wi0qtu!Fe7;3D(x=t*2)c(q_ewLKCjPG8f;cLuV`~D4*ln&s#!qsU-(=;Vpp+~7 zg=_fA4unn4hxr7_A*zlCORtnfqW=^}Hs<&R$gnr0FR#E+(O4L%DSdmTQlw9-6xnBW zRl)Jk*e-onG)1#CkGG*i;;>e(wMEdjxs7q6p{Vj2TR)}+$uM7v`XMXrLKfC8FDmBn z*>P6IUjFQn=k#LGv&L2w`$8t$Tr3GClI#PIcBF@#zq{oK45QIWDD*Y`nDZQf?bdBI zW;kPy-3#%2QcNtYu+RACEdtvG>j&*ECgqTFa#bD(bAxW+ON2w@r{%5N1DupgyaMRc zo_GZqC>60WUIEkqNQ?tRb_P7URl;ybZJ@Z4n*ZnRF9;>P!Yd~#qx3WEjycsLu^A1rmQ-M4xtBe3ZrB`~U zly@o#!#j0)X5raVx`1Mn#v9gn&cysTz_>W;6K{fuDMe2WFz&-XnGORCJ!!)R{L^K; zS?7m`h&L3<0&J&(mJk-2rd}F%mh!m!H$g~VCFnJt7dK27kYq-c05>KYE`SRY$xycH zipXqx7hS;eUkE$p2t&ncL);)V>tvuU+i2L#6&qlmbXqeAtLa^?A6dx^Iv=t#>!-4y zjS{}#25aaFoW+IB*^t7#>HweIx&i6QvQzx*>*IZNfogL(LOv!CR|~qE+7HkLGZjkL zCaf3B7<56{`As)A){If~k3_d0VQyU2*h|Jl%iQzqz4(k`iYlXc|Bh!JHFl>)>;Xmk zXS>DPcBjyQ2}rKY+hiCQrvi34 zd%6{5?TYIPa*#!Y;w-t~?Sf6>kI5Lt*;D-((@k+ub$+2=x8iKFa*yKd$v1W*p)<*~ zi;6alHnG2$LrN~fjyAauSZo@-0dkdmuRCfn@R0kp%Ago|rZlMjy?7x8sxju({Sp z|5exQN1go_j+r=)z%i9k0LT2a)m(B%K1Pq2R$CpRfruaXytdL>IG22AEemJ2zM-|~ zeyO>pcdf-YTE@xSRnx&~xt9PTdzd#6^69GElHEbrL^)`-?hptadAC-Te$Ypio^gn~ zYsWupda-!dEi{Z8d~~IS4>)BMyhX0NI3f=a86aeS=Ob_o;|V0k3y|Vn35X%@o&r6? z>3IeR(6r}PP@D}>ft+lJt=#wrH~oriBe^}Zp3bJ+E3NPDPZ}}LO~%|gZ)B&*IfnEd z79t4=x(b(0k>3x06jR|0r&9wCi2-Ij$|ApqSbK#d!6m zmu({c)dja#tVEMv=NtJ*_t`2hpHz*SR88n?&S_-*-SUVG1HdKk-)>rqul-tDu2eeE zxOnpI>paSLjc(f?`L;PuJ6VY@Rz+;qD^B5@b55SsODE%%<`# z-P85C=G&j;r|#_QJld6MSTOuHq!aA-h@4KU*E;?JTG(u17=sqJP-q!>e6k1^dOFP5 z$&>laA(;7Wa-s8+HbfZl*`TD1KrZs87-5ShF0ZZBeP{oz7Lbj6Ixqxzn|tH8IGA#B zDwc5Qt~cUN!QDg_NO$f8jRY|aSvPe-3A)U*<5qXkpRgL#ifvR_4d+9*G-a?3VLjy= z&W-wTFPhX6y?-q=snv_CcgFtqH3Bb|^W4K=#Zqu>H0f1oAclgkW6bANVnwuC-T@96~Q6EF3yXt zVvigz$)oexqSCx8qe<-PbMvu$tp$O?%lxK`td3eEMr0OaBVw+klA$qK+H8FwXV~}@IVIf@4!(x-g^YpX zMKNC(MZyZBw5^^-!&<0H%pu95IgP%;s2~GwzWfb2WWDgVdI>|QqE0@Jp3|gxLHW`w zsZk01buDSdhQhfeDeu{tbKyQPPIp^`O86uwBT+xS&MvDfvp{q~sx>`$DW@yt3t92f zA7@M6jrsy!xzU zSOe4h;e#9=9`bsf?(se$A6X671_qd5T9?zzbFhp#eJmUVl%3pQ)FX1;d00Po$A?sS za=3vH?=G9y1saW9=9Kh|%ezf3zCfs;7~*)h-N!Nx@-1eOE3Ms^Tny#&ZnJ_fSs>Z( z&yZ^1EM{rp|dE&e<-QUFYzTX!2|=Aq#C% zMHXi4Ic#2~z1FcVMQ28VpDXKJwg`UDsi*fve-2!}Df&Y?R8AEA3IF;iLXWAb>-SR= z?P2>}lK0r&QiImF32U0q9X2u3B$$|KL_SgV6gH4?*o(Is0`eLx;`L<8BtA{>l>eBc zwOFo2<7llzbF>Z>);)ucg}g{HC}_be1`pYn0LJ120dpUx-Kb9Fecbcln6O&&utDPI zlYH$2X`O3c*=F+K0?Y(0r`j?OTXU;do7tyNqkpmAa{HY&^f_og8QHz-qbt<%x{SuS z72lf`3yNy0woz3U+SXJ-j75b?bd2!ap8G^wQ+b>jI&02F-59B&YGWhCwqJAu2~HE; za7i-s;|nP_(FHsH6^f>N&u&?RWl zQ!26+!m<_!CTh`02;BE;yL!DgBZ3O(Dd{)rkvA~_uhO&RRTFh zt>70lK%g2o$*y5ougQzNTb@xDpk(&7=~E*Cg$q{Hd8yk)9RAjH_nwQ=s+coN=`k#y zwb8J1Ft=SEz}}I>L{ZJmb_IUlx9nejWsAenDBxEnT2ty>)+R?G_)0KPE3pCuUwHsZ zQD!E*kKii>-dRx6Gz)rQr5P4WOVYH6X`P+4gB#lq{7T1>Sd>2-my{JNT*=0s%jai* zYqO)cH-e$`$!yA&G}=q(BB*cLf`8BjT?Ovd%F~939m={@`-X^L6v+5Q5)}4Oa*}7(E49X9qQ_L(#hyq z8TDo;)nc&ro+jmXjjaelAI$rwy!pr7xMh2}=3{s0A((d<_)tBRD5<3?G zQpU9Dy$m|g((4<}2>>o5(|;69aW47@=dwyQi}Z&~N9<}cip+yBr%{>=zpe>uj}I{N zw9M{BhWXZmC(d2#E&9){Ci430sTjNhX-@GJufQnRPI~Qh_gyhGWiUpx#Km5GcEFS3 zR>%m2#lX3A#*`p+9p)wdan@|CWeI2ivlbVX0OzuI39=AXexL-Am9$@SuW^>1)^+xa zg3u%I)yD>H)t`OgUr8XydHuwLpx;XKPaZAa_V(%Ihw)-00MEd*v}Q~ff8=v~drYM* z8Cw(KZn~)S9xsm=drReXccD2a&B8|=hqxO=h`m-bY)YQ+UMeYHBlp5{a-4-nSofk! zqXQI`0?p;^Y>V*$QBwN?@`^iOtj_GI@*i;!E?+tcT9yimGGIqO^fly*eHKA3_>I?> z?S`y(Ojg;DirP9(Tiaj8q9mYxg9M0#BanG6? zaXp{^^2D03wl$5FJqqROjD~W93NU}lQp~60Qg-jlNEk0m*{!R#pXMDj95I|?t}`vg zT;uaZ*)Z=G8DnwDz432ZYl=BrF$td_0|t8wWq_l)s!^OA9gj>Lc5xJ9>SFeLPbt5vitxlj^L37=_8T7R8=#bE z{Z99}x>RFIy)vAe7763H^a(uGSnqig)z}e7fX`B*oK?!1f(sbs0;b?ls4B3hnBvG@ zOiHspj??S(Mr}tq@A+{oF?59V@bf^pQs{`m4$SC3PPQ8GJu+Z@z)2|RAU8yzO)(*t zb1bz~c?lfL{c}f;u2$%BEMt5qutprqsIRl%Yap;ht33MVakNe#tnOUbw3Yan&=Er{ zuglR-w>*(??RZ8+C5{qA*9+}ZV-HO88H&fNT+|%fC{=V#4aTX+1u+;B11!^j2G(8u zHVn#(D*ZK3RbeOf%Hx)hi}Nf?-=`#sO-U2BFPoc7v4tP~5ShnTInT7~bJq@wD`c^$ z`-WGiH>`N%@*b<8RLS&zOANjO}W&3v3+dy0oT!6(JT7MJ3&STDsx|A$OX z?f2}feopk0rl>5NlcnB{yRUn2E4(8l|Ga1`_1aJ@h-T2wGK6m^4}&1LG<1$TqL;giQ7e>pxG zsJZB1uks{u|KbkiKUk9jw+chM5lJ)|e>=51^c;CzH<6i3?!MbS%*>_WnYk0Ib5nm) z^T`g65(>#lP)TykSD2Jy6SGRER5C}0M>k(=?_%b%>R(Q6yOLd$q(9Ki)nfoIY11zI zQ()t{Dl<;)=~5Qevv4fFvgj$xo()+&E1AQOf-DY+Mfo#jvrS_ErRK-vtpF#9mF~s9pM_!a*WgIC)BgO<8?$8Y}*6~>x^d!5|bVK zGWo_ex1EayJQ7jpwHq4iO$!p%{6#L5iPw_6MFfq{xd|eIAzDOm`Y7kh&XYGC_v@CO z2VqQh{$!%vh(L{8lG2B&O&K}?$y|uswKzp~KDCkgG37{va$_?2>FMs6#$*bbwq#=B zv`&%e3|X35+@IN)tl8x8_H*(F>Ca5qz#h`neTBcEmW>*L-4M&@3(v}fHeS%gsxu-B zns~J_`nXvZCG4XyhqLJE?BJVO{g9oxh19vuDFUUE9d3lABYWpwsd>oWIq!-uWS=^& zMDt0Cjcv(WyRJNGOeT^VlMMiKSlp`y1x#bI`R(s4xQG%LwJy^65jv)!1s7mfQs@|* zi*e>78;!GFPms~^XkU*L%}cT+*GWb691Y3!gzrm{g=_gU7gG=E9IDFoo9Cp?&z357 zk@1F7v^>=TFTId0d8db^FK|$_TmTHGAp?@4dco)~^&1U@3iqoq7qbZ!>{F%LA)>Ps zNqM&DY=&}w%A7;rks?LqWk9xQmrlt8RC>_tS4a))+A`+|C>#i=FzHq64)j)C>WRN= zKR}s3P1KK^Fgw7E9+YGHMbqgoJ$Us2A2EZ&o$W}kEIllzq9~hrijq{BO}N9B?s+4u zr=a8JxNq!z3nhG`kGpZz6Qm@pcTc@HewDU>u)j7X!{a<|+R*-`t#^xhtF!51Gh82C z9RKzm2$px>BeLb$50D(FL5iLqL9kp_i^!Iy|G)`gS%-+3L3N5et<1VU(Q~c$b)aBQ z*7<^hxxPMIwwK&S;nbd^9Mj>HN^b(cwf*i(XJpO_-<;TX=Fd6WXeD$L^QWE+@U2`s zF$kGp)2yP6T1vZ~yMO8~4S&{96%uWDaW`6c%s{v4@TymfEvLcUqC0RPX<{DPk3<*` zOb#seC^LjY8TmyN#!usG4)%C;`!#Xx?D?p42&4nR%b|(JFTLXO^lIsq;tIrNtl(_B zAqb&? zkzG_>^narP4OVgftlazXKbu%kJDJ2qNZbqOMeP>yqDaL@JuDzz3n)n3i*(UJuQi}{ zUfkFE4Hz%_m&?9upy|Gl%~1hsfbl{{f!w(^7-WFquzpC7ao2#tsd5-l9?su*{v!G5 zxhfc$q24NByk;y;mhkDIf_F}?I!9~W%Xc%8FZyjF*N@^%*E11-0D1qCw~2hgB$Y;ul#wF! z_>T)A01%&2=~1kXdcC@GkaQ!UUOVc|Yy8P~de+cS z9MYWzy82_R#rCNI3~G|tV}KR*nbCUV zwTAkD>cam5sO#6SK1ja~!}9J?KfV`f?lc7QBEU--_^vy@MyCL;rx%lg5x@)huIjE( z-M>?Smn9Y>y^;jGIdsXcJ<^;c*GGD2afyTG>0AWRnrwm5j7!x+*u%cR@}>Z<17)ef z2;ikXcyPE4_%32~Dsn&_qzrOCrbZI3>7gx7I$V(+M?Q}GtAq%UpJBo!&gjoyssF-V zqLI{AxQr_PqypSkTLg$6rwDtRE@elR;!gAUTKLobKzE&0It_5we&wRmKzDsmIX#-l z9(kpHI#j|Q(LDXEv|l%6g$qds6vbAM6#vnM_eq#m0KD?_PXphzr^nzl7@6r8l#7lP zX}omSU^!Bw+X}FwyPb2>~A zfXwcJc`Y5Dg0-j>|3BmB$@g7F)B=rhyg5u+NuYVF5o&Y{wl1zLqI`+@;(A3V_H&V4 z*}Vdi28vA)v2NX8$D+jYy1%*!NAK%@swv zf4WQ^2x)u=b9cmEk83$4FW)vJ*eC~r`g+2g!5rCr{!}nsa4<~Wp$~4!PD%^^@6;WQ z>Pvwki+GHmQ!ahu|3wrW%mn?(Jl?Fd5FI{^q8LXa)<>l$F- zH7+Y9T)lqwTVBFQzJK%rO112ZukgB_IADP8xqgepbM@P4bvwr14Ox1vk3Y3{;0fwI zn64!b4WIh;S^2%HYziMM@C+OPek>OIzWz%tVWmYSw>p71TIBMZ$H3;7rNDH@;W%ik~HYax?Pdr zyM~6~yR%`Te8Dl+lLHFAR|Km)d|e-0jqnk0j@CAq@h4w=9-sA!_4@@w(oP))HS!}d zOk=Z)f!k1Xv*aWoW5yGtPg1=~_P-E=(&j_CWGFYe)H@OU;koLIWm{mnxD zp->t*`j|V-e7!z2P@?6#-{|GTN3kf5_H#>GJ#{8)dJJ`@5$<^ zGk$Fql?-*<985}EjG(RJe3~DE+@(k>{-*ow07i{o@7~6T0j@7SpHn)fx+MQfYTF_D z&O(*nSeVbRg`S(+`+1d_Y6ZM)fiYWQgo3_N8;KwZAZNbu z0z`|*em?~y6iB#Ex)3ix!uCGC51OXG54=}WuTF$=CO5e9DW!iqjF`~9n@$4;h6OIn z+Se0VU+;&?Khu}{2nQSwO1Qiyl;WMx?6b{X!72lsBFxDsU{}f~4Q_#8Rd~p5804Tm z*98l=1=jf^<%5SqN5TyQdZ3JXCkq`3ieqg=%7+tWec{g{WSNxnzMO8G3&l4ywt>+` zpYF}TEbtb4mOM$naG+){tuQ6=Ku|;}b5{NC6*=3SF0ET-hz=b-P_oa%yOgQ9TdkC- zo!D65In0%vpp0k*@0Fckn}_Ueh0H#5FKRm(Pn4Z-4+!Hcq1LcE_%X5*B%JJoc18H! z2eK0n<{aE>agJQ*_U-qY<6Y7Is64sms?HO7h-_{LZt6JdfW+c(LvGBL>07xgR@i+i|*F3$JX5ryg+e*_F?y&pW2I0u8COkn^9i zx8d-*Fx{-Jz3Kblm@(;(@6y@wF5p1Xe;Y&fZkgf!_L zq@*qMBOu*Aq}NAa3%3rN7HhtV|Hntrl2%W71gS!+j%B18&Nm`8B^n$aCc`ohh)>!G??)d zrFqmM3PIN7WD^b_&>F!h<3=yL^u=UHMnBg@M?e3KN`fz<;!E>>Z#kZ=UYdsponMb3 zI;Y@8-pj)ebl__;EAnD?5=--T9=ZC!0lo)ZzSN>xg{S@GHy#k&&CrK_E5ToXcl$wa zX&&WjH?}m-MK`baLG<$s_=ZE_g;OzkplN<7esJjDZzwBy0BDp`pc_Z0xXfEp9SNpp=+KsvYgWU5of36lF{+EA zQ;`2ETw4u4q$npQC9}U1zFjL^ zUaRAfNk_o6f2ucI!!>!SZ?=pu3|3<)7vmGuyIKK`3()KWHtzFBeTXNV-`OMB$aYZK z@zt;^AFrktclxjY>)M8Stj@yluhjDCSTGR?D)2t|m99m>(6z`TjEJvsc(zgG*H*}I zQD13tn96|fR)zNT4b*4)X^7LmT7l66&V_d~=jmYs(-@}K#eiYo(-6y!mNl=aX zNq|YtIUf5}xR7e`SGbV#xQcsgfZDDgl^*_@P~%KJT;t5qS30`AJ98b^nCq;p z?!)xwzOvUn)snWGmw-zRIOn!1LVuor^Mk`%Wv2cYn%cVV#Z5YIJ{AZ5__0lov9mt# zhILSknQq?J+*>~vXRqr_Z0r`_*A$srO^f=4IesBUV(vfRDzz)u*r?`L=k^}W8EE=q zch9w0R@ua1+OQcWnKtaPns+=hrNa!9(%}(<6LT4zW*E{EkHjWruI!VUAx8Geb6Oz3+Lg*uIE@=D8Vn%_fbrI6ntGLAO3m{|SYz#?L8o_%7(2xzOy*mass+KhA! zTPh=+7*N4ThvyxQ`7_8={u@U6&NN2){UFYff`jV6@-Sm+eqkVi{xEN)U@&&|GaljTKmg1z1#BYf^mL7ExcQFs>(U=DuPP_gq zoytxbP1%>J=coHAzqZmlZv;*AH5h03U9HT0tc?OAa4*|cmdTf;vJRFBk*q!jH5Z1$ z8!&SL{bt|5A`1k(A(BmNtma1tY2e{DbfjIoX&Cj3f(DBqzI3jqs6=a;s3iDdeS@Ux zRHyV`i=h1Wl4ihioX}U7X}0U{XvGbP*0nEqzryUT*4Lk`e{fk#)bytfg!fI(cKxKH z^ZnA|??>f?lZvq9ns}wOCGSaMX2RIVVS^kDZlE@)@9DwV${8wgx$hgsU(PZ3K`4|c zz34nSkCSE=fC^5#ZA{f;)~0gp+ME~U@MGr8L^V45FisjjhKT^i>$Ck4f1wB1U8jtx zmvkIB8>yFq>LT7mJ4_!x>QESyY78Di!qdiEM?bNX&mhA8*APLm``)uqPgY_>F_Oox zKP$^#5>t~RBTu4^zWmV+lc2<;-KqSemfZKd`hT?b5#*uW zn;bV_fDRpT>=O{Z-lphXjA#|iCo?V^3q{G8`%KQMO_|_vHeC5xS_yO?0{7Y7%`&Dt zlgz{-1Fa%7-PzOmigD!z&3#;0Mw?e|@N~^KrmY}1O(4s(6`qGV@DBOG!EV7Y|{3WQrF*lTC*wfJ!!*H}oOn2;ysfd&v0S|hX{kqtx5IKkPhDd?F=5vz-b$!%P z#yM{l4EAbu17G|?D@~1Y&helXbzFmSju`T8b3}o~ghw0lfMVoBgR2W!$>f*h0`YBy zSy&WM zt~GtfCK;=?U}JVR!Ws9VwIOD7k1oOM`R}bA4Mk!LRq#Ah?`%kcEAjI@i}j67VhhcQ z(jVP_{jhtQdz;`NmF6w~(q7aAKvkuK&rIrP!K>~GCphjfcjUWbCy z<;|{AGVBqldrWsTip;Ls{e23ESG;qt?P(@#WYY?NG}C-2VZHS3l$dvYkYf9rLwNoa z(a&a{zZRjN=ReW{yu%qMyDbh9A`1&=omat4ABHwO_FbIW98XR_t0n#eY^#wxLyI*d43i?Sd^{$w=g^ z?E*WkL~}R9RV(q0=Tx>hfX@`M3OmFwT7aMy01odwf|Q4N`)sQ5-Ocyzzx3noZRH=A z*7~*U%P(2!$}btH?s+f2G`qC#hl>1?v66wQe+t!FeTbe>j+I~1&hnREa#}vagWG@U z!=KI1cFHgLcIoa(@p97b7e5ScrtT57vCF2zgdlBXjHu21rXFl$Vs$bUPv{52xZ!;- z6w43t8QJ7-2FgHj>KaBU3$BxyGrN5R*C|SZ>l3kdBi9L3vbftdmz>x!tD8Utzj*@n zxAE*foV%2R+ZN4z(<8X9S)E>S@%D1#UT}WXtWLD8nZM(W;5xf`0c@t?463DE`L|S- zf&X2zU7-P!!!2AQhjulwjCafA{jML`JLqyq39E{b?9FNZH8!4o8xU6 zSDZ;1ap>(4XKLZZnG=?dhESwDa{kfHWL!{YG7j}S7xj#ur`Wml#O08S9X7_Dbv+@@ zBu%T!EB`e2!NIht$0T*id6{3%cV&n(SvS&Q+lOQfW`!vKM*UIx-DvjBl7`K`d_4p< zeWNl%_jZ>uDwtJp9~6EkR!kmWIrJmTQo`?t>=G>$t^kv>ijZu_93+iuF+wu0ojQD7 zQOmeEQ+4fb*!U>Jq{o@najEU%%(Wr&(l9A~2F6&dIMZ#wAR?@Bl-w`eJwx0s7h37d zg$8Bne|v<}BB6wr3oY06iJjy^BKn80OzE#&sDo>zt#Dh?ALjQBTz|R#s%4oNjzT{e;|-Jl@?pn#cZZazJpCEeV*9T!8vT zuI}jz4nVbzX>!g0h{K$Vi97LenfGz^(^eG+bGvsZNzD!b;;ICME30K8=)s#7LE_b7 z4yla=B%Upn@Y~ichQz#O38a*zkT|p~1;jOWDG;uOElWWl{<#$N;blF`4%CFh9A3Yl zo$f;IQ(>kGx|%235DK;Ab=M-{&^!Z-a7Zsk#`rd4X;W8ObjfaRbjf}1p0+O90P*jD zvgGobuOPw7ir&s1P~Y{HQ#r3n6U(VY?l#Rcwg&OZ#shp^IXY+9Vs|~5+6#xK9>lqV zVu6Tzu3YL9{VLZDIRm?HScaI0;!A?2*7jk}!1&V1uA_**8{n&Xww|4BSIc2i(tq*Q z5G-NkBnp|?zLXX~bcWD}e=X$XcEIOeOi(0an-cr*<*`bso zcHbuZ&*Ck%9iY|1F9^Ci(gDfBE=1@J{0hfJ&Xl^_A%~*rcjPuu%r9|2_mAcki90zF z(^KzdM$Rkj?cQ`^TSM&2=a?YN$FpXXo|t-K2=})@uO?#qS;h%NG#Mgb8i!Vb!<*kc zq|>llOVKYk--7k&@BEnwK03y3&Q{BM!1-y8lIzJJ%zqcfRUv=YDr1J0V*IceBSjgb zrpD74y9Miof*Ysx9>$P2jRo>BHqm9EyL9%h$LfsP3k8Sbd2l+F&L(gC)%}R+pET;? zzfVy*n}}*)`UlE~<=@n@I8401{jz<5twx+4@;s&t@3Z6Zvj%?*N3LNd|K_%2H2+I% zlK0GAj;Y>T?yMS?oYY)*=V#u^rRY$+JvL}1m*GI3_oor&^wdEyeS=YbOy85%J}Fgb&Q(!p&YK1=!g5HI6q*|M;Pe zt=g;W$EU){N6!&<6`Q@J*9wl^ALrc&%X_Va7xfTyb?*x3NJDJ#Uqm|IV-3gL%+>$0 ztG8}A|2M;+V(wsPgVx~QJH5{Ec?D%~T3)X+fj2e5AW!lH(VkcAN2KeR?B}q8yej7+ zi)aUn=*i#@&M?JbOzJ-nQ5@gk+;0)hUL|z~9eQc;Rg??zMM_o5noxvcF{&|%k;&1Nfl!?&o%a8M&B3h zLo16*z*=r_W|GMn;T+jenGy-RD*Jq#qoG$n}{Srz5^kD z@`sH-Fs?HDKR&et1P;B#NE!ylbu>IJDecN~D2?Z|7}E1^w!~jCZMxM`&@GV)TMW=x zVTNwau4{(30tTQk}dG=oH#oR zVasY0OWg6vL$l(TVQ*esDH66g2wNuKzl8V6MTYQ^o3Eg#Su}pVORTA_^h9$tMvpf}6l;ca)evxXbY0o~?#5V3yR4gMMtN%zP}mr& z@jj$6cC&bXA*qZE;ksq+$)<(OWn^4IW30!*Lcu;Vx-r(h>^vVnj`eMf)vh*&53TO| zs-##FWMc8F5L96O#QD073)(8U=WO3}=TVlnRm__4t`QC!+&>NDvl?kXC@JsVb-L!j zkwe$qI-hb%5UH+bZdlx#9eHkHHFA9?&=Z3!fJ~)0D_(BSOy)1pxJ)9c5iU~;twhm| zh5(~Zv8go|5H|JEiON6fcOH{FI_ROuvJdkVGVtVkHNa4_BNfElkrpB{?3{I)dmmL! z&OQS&tMY@j2jAx8{L!DMa^rbvxZf#qryY|E`8;Xt6#CFH|; ztG`3zT`gR%8|3GgYsx7~_q}eo>t-PXZVMt5Sy#YR?FK7cIF%(|%DH=pLuh&=pJRs?7jyUQ{HM)@K(E_X8qV=hpZMZ+HVJpnN{1IUmV7dyk1>%I>Ped z%*Be=tnHQJ2*G+&^lI97Z}f||;HMT}_1FUD)*H*h%933YpM2*lHeF~zD>fbShtO34 zz7GUK!7oIRb;vhxY?y%rupSt;0C7&On6l~noK2^iz18#H_>d#1$~tL6?>T*qAMed~`xZQs=X#ycVK&1MaDOFRZ(AOh#jM zRNPC9i#J2xFuS%!jzsUStgcU#KcXB8kw0>|SoJ9pqI4$%S88-*<{C`*@iQY*;YJ0c zTcVo~OZ28U8S-pa)_d^G3={V&k2jSEumExS{45NN6+>G#e*wL7N@eW(n)nFuK0~Bs zlspmsidJD=!He1!C{aOPE&?QV=ik4us8x^YXu9G8(Z0<==++v41WtVbnyLT?F~1a* zH?6eAE>Bfk1z&EVgJn&Diz$dW447yjOBWg-I%dH&DwH&-FY*c|<$s`L0AIi*?8d-} z^vA1q463xSWr#jpnzy@?KMwTCU;r*GUCcP} zsoRLIyIl&D)yDtxSCdk7k$nZbiqK;K4G=)p*{~N%Fbn+yrJ>8HR9X^=W(b7p>k)%? zUKi{5Zv(y;i&Z~i&6jOrDOAvJfl=kx{ZSnc#&5jyijuaU`u%^J_;dv0;|hB8&u6+5 zc&qkpz~463dp{kk;LX9O$V_4ZR^4@yh)&Hgv0*LHRSc@*`2}Xm*AJc7Of&H#A`>=8 zgbop>NL7MN@4~WQgqT&|c^DHv4TWcz)!a)z2hU39$M%SJvV+nvsaDZzsAyXBnjq=t z2*x5Z241Bx=P;rM_S5s2LQw-*Nz~vjNk{PbG$>u=8)6`W`OyViKEX%ltTMreQBlHE3HGhtT6B8->9!;>;IxWJ3lDEZ+h|p^Zkt6 z*)tV4=7ip4^eJxK|2iKOn~o)sh)4>vJmk=S4GbQQXM7HdT`?1}Gc@Y3s5>}SGRZ8R zVo#~aT#2hJqJcd%0rqtJahtQTB1_a>zu_*k{PWgAY{upjHsGz^(T@IIeyZ07u~-9# zwZp0ZvZp(wXBc3yW^s`3vrG7z$3QH;Ef}NciWr0|?Du>m9T^ocV6Ma;ml>_F)ZTX*x?e!p^dgga8_lDcCpf}WN!>TV=lTU8Y#Y2R}v|Ie(T@1G#3*dP-u~pGm=?3io~d3stk^r%oG||f_1TQ`a%^V( z_<@<2K_eE?okGD)a7a(}Dkb{Kjd9o5g?0Su^-j|Mh+)JXHv(Zc9aDlU4| zTpklWN~#oU{48z1ad_QINsor4pUhyjzD5%<-=FHd=1M|#V%FqJkdE&~McI6%ep48< zN_yOU74_@lzLHSiG~&J{9F+cC$4f9n*_^}qdL40S*ID1Vg;;k<%So=Zv&LbTt=}2l zBSgP5LH)BM`r?$SI9i-?(DpgKwsCGcYH@BF>y3JCP3Ds^CiC5m=S~%|jiv7Rd7!%x zZU2eRbMI8}doCS<fIXUOJglgNLANHKN0E>(Zao}aogx%SMbL$Pyu8Su7IW+cFF=l zN&^P`Mi8WQD=?+0mT)V7@nGK=prZzuD7bsyTr7T`a(hV{NWihrCV({!y1Nv9Qww%q zvkE4qD)6QHGDd#NV1%!iIYp0dOIw$epF&$V17+bHWNNws>x;BLweEd8?j_&{(lsM?`3b9#%N`ZG!_^uY!fIlL1Jo7l{u8)* z9!6NDL8}V;*kf%gcO>gOn1%1Joaum>;jr{*Y}tGnc78-<44e~7^*02tW6%0MTpQm7MO_(m-<_*n-U~mGi|`DNyOHaAAV}}3!kmn1 z!RMf&tcOpX&z`qx^LwwuFj4#6Zu0`0o4NH{Fb)av>cEn20UeoZfk35y)gP}|WKy6P z{7pG|e0RcfEPihCU1u`!yG*G;=jDQNI~PrIChrd{4| zMcDeDcb#G{@17z`nSD~X(}0Rv=PRr=gxGzGsVN4m9dg?TYP!6>keRveSzUv$6&b4w zl0A@?jO{}un`PKpCp=&qav6;Cr$W0BsPs%I9|+VKUML@yg3c?DOlSEP0HfG*thPXE z8be1iixpeWLN*uY$zSY}%ct5q{BxuyvYRlewe_xxQcnBUyN}=O$GG05;$819p57a% z4n-x`yXJ)pt0s}`;f9B{q6P0N4lonyDWZw8g)Q{sCs zm3r?w9>nR4(C9rzc)h*E<6xoTUIbN$|7?Fv^+XKmuO^0(TOKyAJ*9=$E>zNK&hpzF zBx>ah>EVc+p?&1Gh~-R-wgwZUG1yq|_mYejg}T?r$hP{uWEZq=4S`JXWozk2GS-T4 z#9iJo^dmEgZ+zQ1xk$z1B95@&{2h}SY6yb5KQ?V`r*|A!oom&_;SJGocqjcX8CSp~ zGrswC3wSq`dj!0|a9~h*K? z<9+A%E7QJ^=lL)H?sK^N#Z3Pew6JxTORv}Klo(C~V;;GrraSH=IWJ-G^4w-|f~IXz z+oJ@ANi*!KBHKSpElr`4UA4vx*`Zbg#jVhU83Rr1UbG@N6eiG;*hHS{<3F00l6T-Vh?QN)`En~0Wxs{ zk+x^6IDx9F}Sz zlr4+$Dq)5c>V6}CJlapQB~4RwUR@o_R1mRG={!#=n zO+!NG4=(Q$z2bNyq4Nwnf|y=FLgytb5%Baa5;~8yMmz(ptidfX&>Ha!yk-r$qT%Xa z?NgGXzs$q%jM9P9o01=0j&~)9XJGkPS-arFoayK)Dq8RXL_$DL9sBrXt5W_}E(SmH zN1UG~E>j22RDFT&%AM|Tp(Svm9~;_KX7Fw{Z!}aWMsjIys5JCmN&s& z4?pCEAVQ(h9@nAP!4E)wPC{HNke`9xy}>YubnWnu+b-<-KW%+^I8^T&_v|x@F^gdk zO^ec(N~=km_9T`N+O8yfScW#pFa_E<}eB!?H3ZT~wcFb#@o1|7CZX=gy%EmeHQ4_ za#Pnk5Ni1c#P$R+ijvHR~KX#So_G=aO)7R=x)8S9s~r8hpD3T|BEJCBhf_l za5S+mih3EMi5BawsDBznAqnxNC!Ry@`?hk(eb1ipO3^f#Z1YFa#Q2;cm0F-G6;1za z)8}qu0$XjHMR}umqGo(x(Py#w$0d@aQ~STZU!qD!&6yDo283`-5)saZ;;i&CjyLYHN+zw+}@y5=$q?NomS*|jT}kZbv)Bz z-^Z0b1r+1a5S&~%y{ol=vMW)42I6|{qI&|=EHImABi%=i9w!CA=J3QQn%l^D6m5b5 zispFCDNEM7iuPp5l8+4?981ocR!-%u=JlyY_duc_qJwMeh9&yfC(VEIsUh0uiUqp& zv`dQS1Vs0+dWh|n+BCuKW&8zbsp?x}>n~n|8hEJ}{?)=A%7gN{rKwsr z02%GP6E2U$urmQaEL-?13yEiUUe+ojT{@JJ`r_+a_J01}8#1KP+|dFdHU14EaB%XT zHY_cPzUscVL`?6~AvJa{lxo`{G}!q7Vt@^g3c>z-2EjpKqJDo@4xQczclN6`ZEpl< z4n{Bzz1g6J(BJ|ELW!16Ca(zGd;g;R+DnI0(nCse z57G587Z2evxrba8H`9fe4nc_olF6?6MI}-47OL0INnKA`u9y27%(TIxMi_l;aWd6Y zHZX;c3dE=bti%J0Q3vdOdI?5Lzv&2&&i?N!)yQL<``%R6)Gnu#N+jCXw(3c+0TS&q zSX5P;TW{2`M@^h+<_sC_bCHyGtf0SvTK8WG83jgr>=ObVHnWE%3;rn@H0jy9K3U zT<@&l{ouD8B6Gwh9{=D!3oR=>0_)y77dIXl1L@*uV|@~1USqDKQM3&kJ%POdlakA( zt>X*sWk z!sQ$2-t}fLnX-ZtSMZ!h=Q4u0NoSv;6L0@C4^Nf(oP8P=!iBFY3-^C8H=LXMnqM&{ z0xk*Lal$R0yw3<5*c{o=#U5QEz0X4~NhJG&>Nzj%2b75Z;rdm~E2$vgpZoj_Zgcec z!8YVsbBKUBKP6i;BY>ngx-@FbW51HeRf~qHn0YZ=ug0Eg#U#Vhf)qx3CWYb_uoj_XK799=jtNqIH3(l5E4D$HBRpT|7Ry~nHkq(gGM2GeXFkr zz!vC~C~!K?fPdgNW=o`SbpEoy&FIg4p_uqNXxp6q$F>F}E7sEpm_h6g3^U)7pjhu# z6)sfd)6WE2DZ342seW4=_C;f#{amc`uSUwgq6y0Ghz8#d$yvI&AV6}Kzizt>X-)!!U#Q(Y*YvngaS8fx4#>4r0! zV^eqkU}4YjL*mnPmaH`0s!M{9KID}~JavAKusN3J58TY#xw}7gIcWC(iZ(|950p92 zFRyG;!V5>6rv)kh#_!e19Rp7c$)ou1u2}t8Ri*8RLfcOV)!n444@#acpZ-ippfs7_ z^;0QL?uD;~q8UcP;u*C!pW*W`In?7KCnG!}eiMZ!%|Lu4-+Ixkd7>E+E0hRj5dwyP zeCq!T7><9p00|gQQwt&VwOid(d%X83u=x@}@oohV+m1<51KCJ}PXYVImkx?|(PH;3 zEOtbV@o`g!iNhQ|lPD;;2A_r#I$KyRG|5OF*lcE{BgH4{adJjPr)f%u<_=$Akph)N zGsX%KN?+%9=P!JfTWUK<{0~gky)tlyx+-<#)c zd+`eEhsl*RA0?z7JF|_|f=%R|1y`=mxP5m{-74+`gGGd9{DM0d>n|%TCQ;&8y`&_Mn{Dv1&Sp`YSx4BoLyv6T9JwTdfY-M}+G6BA_ z#`5=k-qtD* zg^ke^bKSSWd}C^02H2mXk{09I)i&L9TliEz0ZH`N;iH9#LA{w=>Ls&E^K6_$9@C!eYc)A`W7BvmY$8L>xT@MlJ5 zd6B?0tLnbMk)D>sHOMY6q8ninSzMi1oyg+*oUW4EQt%t4wv3W9RcUGGqD2{Lr*dLq zvjxJlFu(W7MM}&$odaWj9?AIWI}he#9@4#=5A*%D{1}Hk6YC2Ow@o}RASLD!FMxTX zZ7uhp^{;+VIMO+7X!S)Z`RI)1w1&mw2kv+@O1@dK4w-)#%{n+j^38hMqQ_zfIjdeO zU+f?+tb7i4=FLYh#O3XjH1!k5ZPOMZiC@1f+fQ23z)v7zM|w79kUrR0VmQkz&S(-N ztcl*^#c$d(Lxm&r&*JmE_R)`vCXnx7VvGKlB*YSuCRj-q{$o&Ul7`>c8``GhCJ=fH zBQ|=sEdqwZ$#I>hVyfJsCuvZR?PTqD*J>u1eM_u>&}nbrX#KG^7}#vaJXe%*ylr^1 zah;uaU-~s?O8@#6xUr|Z)WJ7^gP{Mbp|$B=n;*R8PCv1n{iMy$wh77#Ho1_WBDow- zEYTs`kz9`4hQGNS{-N7p)7%F3lkn~GkAF+dNg~B$$;m(`p?Heqqzx4|Ck2`BgMZ?Oia`3zZ||4_>;P3*i}f>o1UBcp#kv| z{vX-!fXBnK;aQK#5AXa$cl3^aApzDw>FsQ=i*tZxP&)oRvs%zy4g7+)1PO2r*fs6U zYD)c5NE-89*(F|w+B>rlgGOG~s{U`iu^;FJ)J1M+{J?gRl<$fTl0iW^5Xw?xf*e}- zJ!UwhS%wc%gELS-2m(8Q3vg;B znbGfv^k%#Ul->MlXH*-2kCtH8S~Zs0X9E#k!o+D z$}uiOeFXz1*r!8OY`gB73l(PRf)q^mIaW7~{)_mr7!t=MzZky?UfTQu^nS9cwipgk z;NmY-eJa+ZSfDj2E()s#1ii=IA41^!%TSX+@G+~sSefdgOx4p$e-?x8RKhPn?_=7! zi>2j)-r_K2Dxcg}40wG$ROUQGKm4ay4Rdqz{$j96ZG(u`l*elqARU)T)Mn+|+<)Rq z)RH~?K4J;j2`Yn<-XkzgKf*W}Z&U))^ws1NfbeM}pW4j%MlmG(7YyNr_!&zSzhOsYsI<=G}2>k=ZZEMhMKKhuII`fNEfS{ zz-_%Ph66y4kwkN?p?EEPWcaN&D>yFKP4kL2_uNF@6O(4_y&tz~b}E`nE>aKUVjnZ# zo3t_8=u~Sgv(5ck15eBvx=^Ddq2@Icy9%ynSGkH>Vl1{BF+L;z^7vy5 zv1RJGUz0QPN#^5`l&rG%0;}ueH7{t`S9Q);-M@3J;f^^m@yMAS%Mxp-@|ZTPV;2AB zGUtaTIQClShweWfZ5Jok@P8RE+gEex!13#-5C7vCDb-|KU)H}?1q*Wz8lJZ}q+h=f zsL4jv3|5k1VvXm!tFPgRwyc9=6KnLvCGTOu6q{I+;kdGY85CWUKdgzqyXv^Wi_-n{ zcVC#7%fnSj>gLm1s&y|`ePHL(@P9PAf86Qyui?M$XSGM)CXfa2t1Nm^2g`YkPvRG$ z-S$`P&Y&PGMH_n51N))0VHLBAf3~?`U{m|(-b>(M35ve|mUmIm@-CXVeN~|#ji1#C zYe)C0ynYu9Z0~_}*i={v6+31pU-$5n;7nTalgPTa_fL*-DQMKsreqqL_RhA%dN{fI z%@~Kg^Fw7Dh7YJ|G9W^BzH8LSf+3 zTv*1`FM~50g~xyx2di|R3v&kj*nGfHXJKFbgbH#mV}+V2^f3!vWVvA*9gD)9UCI}2 zR2L1DFLKdL;agcQak0I?zxzY1nF2XwQyA6DWG>+`MRS(BBnoK@w)iHUCZ=0W2NiPQ zFpTGxKP_=ssrj|)d3YPD!msRVdP33j68BB$qUV}~g6DzcB3=~pfgQT)bBW~xk{elb zZ~3kp!f!xfSQ#g3bayM`i4_k|p^Fs{YAECN6 z3P}o6Jh^3h$>w_cJo{Vw_Rcx<`^v%U3n@J8TGdS(go%;Xyh@W@Y6DJU^(KGHoa-lI zMI&D~EBmh8tG@kdalE9^@5KJ~K*hk=1f+aRZkfk&5B$O7MJdMFp;vaseEuFk2D0}G zw=snUfpqLBeL*6rQf=6!!ytzQQx_HRPuua??|hjqk- zn>yeOKOO#ByY=P+HKpJGS1b$|V{ApuwR6KXwfz3wf+!YYLQ5?!zNHqp7c27jc61}x zm;>K`WpYO}a*5#zPf!0}^4)Q9hwSh7uaF=IPx#bSd!^g>q$T{S8o0)!wpsMASiy#M z7>dnF`7QFkxsV)4lHcN!2%;#UNA$-XtC92vVs{uwqssTvapil-)}sCZ>=MI}D2KOX z4EvWk%HhqlxA;~~{{%#??b#x-(BUm@?xHp55~{n}L@CzRouws)XAhiQk_}?W__KQ-`R~f5&batS0j@ygMOITBl`8@JU$sC z(IQi0JO+$#k>tD8Lc+zvY4~1wsO~aON6_$%Lkl(r4Kz zv1UGROd=nk^i#G(5cm`GYTO8xGD33i8*%oHdao^!#{WC&$r z_B>>u*nGYzPea3l)O?cd0`~NA1N@c#8Rjv>Qxdr1h9?c=7?BwZE4N+KovWI!3VlGLGKRzphu= zx@Ng^m1w^`&^(f(hBlV-T1)b%U#6Dk@tK|v^A1e6t$=cL+L@+?P>zmg?FqiIR-N?t zIm0px#y>2`pO)iTUv?{(^EEy)7)s{&dMndRWejDS@nk=5 z%4!I1LAEx{-#byjfAmufwa02y>tPcbjvc{msMr8qa;yCyJBL}SX6LvzL4eNaZo^Mp z?oktT?$NdDzHag+%>-IPJTgF> z$#nq>9hQT;?@31Ab@n2orK=|6f_h%!({`h*PU?szI@c-Yj3`aA-q|bQ03VU98g}J9 zK+_KjtY#+*;B3&vQ5Y!kF$#$vmY&-lTO!Iwq^y*5Jo+*=o&C!~Evj&Rq!6-V=v}H1 zZ@HZ*N^Td5ik91vp%XtMbP*huU)dV|rMxw0Y*>=yqG)xLLlAvkScJF2hQ9xGk;0~5 z8sW{^PK)O|c2p~41E{+AhPZ&8wMv9}po`}}`K0VnX7dv?O0X}RWJuHU6|p^j2W#PO zdUB{10mT0i)iV9~$?^Zz#-{SWtf(`H&w*7BX9z^ui}p*1B7(d30}0x$yWW< z%2ul@%}q!4M$9KAlCJ=~_|{6a7hx#`O>>IPu?Vau+8r9e?VPjp#Z{ffyCZvv`a9(G z^}tf-&Gd}fbW+8PrXLhLhO0&APJyY6jbbI!ze`kaS;+@PtmGqOEHhQoWAv?Et?VpX zu%!FWrZ%xaLh0(?jp+u;fP9KAGl&Gmm z7Zcrj?d_saf9%uFdiwA85@wt|%2>NA&fu_3kpteR#cDI}r%^+<3g>;ZVKfqcAG6Qz zyjy^IbmKqAp5&BAFBiTAiKh`Un=O45G;B#dw`0Ayq@MpK7Gi9&q3J#f?hWB)9|ive zHeP&b55dUDJL}gNU(!iCG&y(A{t>%oof#p^^( zX3&Y1JuqTj7!ftK&4GP5}y{SmMJp2X? zJLo+j3NgM;rd0KfPb3 zEr{U9k80(ep%>>_Lz6+|or&vFB3=6L(XBTrv8E4sXM&UHW1^%CMo5&iW3aO>ij+y; zGOqO$Dbs{V%1kKJkuu{?jBAC_;+^ALDVJ#&X*RcbjZLfWH4Q_#%&l;ofFu{GL2}A^ zVr$xV8g@2x4_qIBDyF1ND%Lgo?q-~&%}umnMFSe!V%rJ=R3i`ps%MiRB6#H=gc5Mr z4h-KO=`NcL5y3H25K4f43Ybq*k*=`=2v99@Km@3EIY4kQ-vN=(hr~v$fM&_RHgdzM zFl)XX(VrUF%e@UjKJ0jta9{)27@%tt4TjaHa#vb_`qXBz(CY|oZ{9WU33ssI`# zKn7786&_C1*dYq_|056eZ_=@)E$;ahkbz}#as`M%O?7=+UT4zpk?%o| za{ns}h4VmCgnoK}>G4Fm172V--bgsO-y2NZ8l58W%Xr$AEru!W`HI)=ayR-gSZhZ39v`YZbT#CPr%8d_dTiN3g zLMB_x-La`Pu3*|QnEs8o3DLDj+KX!D0Z+o~sZTx1%Wr6*ccCehS zq&I@y+sI&N@x`;tC%YMyPu{do>n0DR-P%ffSO2MaD`(A(t(BbSb5Box{EM;kKYT($ z0EV}=LJTfC7Q~;F4_)3hu7DUE4m;EXA-L+V@B?oD^(l^%;ljz#&+7Tqkz2!e?f(RJ zo?Z=+xCz+$f_(m(cw9Z|BHbKcpHxyvFK-PmruRe<>Uq!T1|#a#@(%t=qk6$fe#Li6 zJ%~36PP%L8Fe*4;0;8bZBsj@%HLWK-Ey~Sx8;-t(jinJY$WJj2d&+Dns?^5w#K$La zB@a3*pw8az2cz>pxi+E?KRD;GfHpJ{jnZC-?zmb6pFr$nx{ihKA*7sv z7w%Anfbf#B?0j+|IAUg4xxKNoeW9xUn(b{mR{NUU*LGd=l#Z3ua7~J$Sy$+U*kjzO z(pi!kN>YTR#_MXGSP^23RfI4i9^I@_gz!gb1{5Jnp4^Np$fmy!nVK1mJ)4P+eiMvi zrfL_Q&3v5OhOicx*_j_MMn%VV&~x*+lb@uE9V4v#4(!Kmj%hsk3VHYM2Ah{|3#ww zXBfZ+*z1i*&df!qe@Fg!gG_+_7hy5!I^EY0q0sZC(TD&NU}GZ^$r-I;h=j1N;70rpvQ1bX2D>QM(d_H zLwk~KSI{R$3gRiD&V2SL!&KW+4JO5afi8HpEZY*}lSltlolx9Z^K5#xK5pXZ-q(Sg zW--H|no0RXeRuNO;QB_AznoROym-r3aqa|~W$pyyV%9ft0YrO0+n?8vN4^wI0;NRJ zB-ZtxHewCg;~ZW?o>n?$Z;Xa~(5M@5vpIuMKSl%s?}tlKr#Aii1(owgmA&h<23&V1 z`V_+KA9Zy^-08yE3DLJAVrWl6o`*H$U9(PujlNK**7@S747_GJ*%teQQ`yh&xsF$vv^UQLOP~{Q%F19 zT?APbyMNz=nZ@q3v)qbMcyPiTqxS`OeQyx}<`RuqOQGxg)PRyZ{wd-x=*O@27oo10 zdNrZ02p&}m%gyOn%Yh`J;h^?ON| z$FXl=*y+zJ1>Jy@3(k7~^SaVUN%u`-{a9_j+XTLUG4dN_FiQyA5`>x6 z4rvhfd-Ep_v9Q^W?Fenv-ubSRtR2ws@cHckkoRm@f-LwiZ%3Mh1MoKGA4FzRE{DKO zO%4Tn^G0;j?Q8jjcgGr!O(GnhQrL+2_4He(aw0xq?Vm+9x{tHDH-#YBi}v-wt$*){ z>Dv)3ac)O$7yUhT26gV`d6PRR zPR>TAPUdPeCyM27BZ`yZ$oK&a#c5IM;|`Tirah`B59i$FlB9alA&;ODW_?Dh3q&qK zPdjXtd=J&L4ox8qZ>!|al|6?C^w<|2<*)b^Cz>eVjaz>VN-#k;zgU3JzBe2fnaWfl zvFy@j75tk+Rkz_sNGOav{)#+8O8-`Mt7w6RHpF9xCjwf#p+mHtPHF{=oq*Qf?n``W zg*--rjUX+K@{WbOHi%T%y%*-yhtPSFO}Sm;tT9v!Z!Zu~C2y>c7)Zt1Vo&SDA+koOEiT+TLX{_Bby6JO zznRe!UM4A{K&HJVREnB8b5QO7diedk7h%xOk1B&oJJgv;Gtb9pn+4$rgElKZSM2s>Rmg(wjN4?dt$v6ay#o%*Na6m8v@q(7MzUs zm37{6cvc8ZGKVwiQ#^kR5Qoxx^~Q%Mid=u{??UzN;Yo0^{i>Z7wPiyV7?kvlZT|wgBFvAB?GP{eOQ;t&#Nb+Acz(O|I~uU?2yCa;*Ex>X%h0qk?L6tgMA=J5Gwlj1%!EEa z$@9l=Nt^9ABRbj<<@0mDlX<%Du^9(_4-otJNoD)7sx*U>XcHDqkKHJm?rgBkc{1gy@=J|=wB zzJ69>kznrF7|4;29S7YU8zR^)Td}HStc_vG*a^n)XZRZosbsA2u}QKx$dbRcWT!#j z3nWW^KP1Vs|8J7~21;8W+;!{|o+XU7KGY=(H0qLzg0%;M$?+rtAw-NV7+8+3`^OGE zTY;#167XT^zoyN=)@Pay!|n6VPx$3y@+;}c9Kd;vTx;`^g6201&X{jNgA!Hb@`3?M zQt(wAVD-z}!+vjD2?xnsmn(LNT?P5_9SMHeOy}mn=nZ6LyI?<0Oinu(xO?kx6S+-H zW*XB10$Y)03BQ$$x>=Fh=YV zWo(7y%_r?%k5qfwoB-t54$I=qAUk6y$IaZYKho@MSDgA^ZF&mSravEQ2iL(FHfq>q zSMrK~H>wjs-j|N6WjBXmu#)DbLN(|XKVW~K#D)#~ma+$?u-iHB_|FsJJCXLw*Z|kB zN@D9?^Lq*oupJus7fRR!-D|q8H4N;ud$5Kc77mdDdiwoZc?YFf_uA|3wo>Q~Al-Lm z@(wyy-oaJrWYEJqFXbLnJ%F7kSlw%eYpEQ%MSYK)Khksh)5nEz#x$GXV%6*kYv!Qt z*5k_tX7A?!{v5s16$1dYQ<{SqL?#m}cFH*+K=$V7UU1?L>gAk3r_-Do?Q!p9J^#4& z_?O$N^BlmRi5h8`$I9DoJ&moeKdV~oyuCD1gZ*gl=DK;7g0L3p>lxngm0iP{q*ZKh z3WPc~{LyHn?s-ngYxtIG_`?=ALuB;ft z^OOeK(6ld=lhqp$N3*R9-n3g6_8~3-P-or7^}uoz#^wUNc8hy6!3D_K&Bm#lt08&HVRhUpVQYfV13+O2W#PSM(k4 z6r$OWHLn6Wi>4z$bydI5Fiu_GzkKB^p&D>%z>Wc^Ry~?0COtic4kbN}TeK7b5usLg z++EHvQ0+Nt%>3^}fKk&{9*hT2(`Uw{o&NJw0ClcMkZMZ*reOcw^8h0Sq}u9plRSTG zOX9UChtqcG!^YV^HUduVco0_8Wjo6OL+wwU2M}sKf}yU=L{MtjAn567*nk!WpKVst89~&0fx+b;QxGbo}|$5 zbo164NaxRwD5>6)IG6Kr8|;cQoVTt*CR@|a>B!EtB~B1YS+c<%7o=dLE#2p ze$+jQ6d>;99;!$8au3IEN5JEaP|@jn2pqsD8q)H&?Z|^KP2Jj5d%aX13_Zcu+US|1 zCYHbPzokx?+)`WrY}6jn+yozP;FTtyC}(>+bY~1;$D?9JD~`3u0TD*(eZvZ z;4yq%+#g8)AI9fb56a{Ig2!Wr!1L|?=c_@M6$j99c#Ni& z_vL~|lokyLwQQWH{Fd9#f@=7PICBtPbw44kE|q-FfNL8kxd*?Z46mt;bCkjE!?nIG zAHb&65MVxsU#^W6QNw?z<3uZpWVHYVU%62$4dN&9?}(Wb0#9gVfbvG`-x0Y=96s;< z5BhOQi&1V8B?5UFo1cczKzm46Gr>+1N|sg&-kIQ>vZD*ngjTC&6_#^Vr2yA9#YhSM`wn9 zSH~2X$%dE$f#iK1OKPSaVo3#yYL?ZNA2btNmLC-C131<}c-}pEuO`FH?qi*YfiZWg zMW2TO9leOBT`{F7cQ;3>tYhM-Fa10QtZMgyBYYKrAW=>`5ZyVRrq@7>__ML@KhdBA$jc z>t*;A2%0*540l2*{%#jlb@3r&oQ{57uPE*(-kg81$^LT1|& zrE0!){A8qAF@+c}RnzcNHFv{Q;#82VlQxXGPVJ?nJygev7 z4L~PuZ4zyUu)vl2mM}aJDmuM(36dv`Z9Cb6YyrzIv+lwG;)1a{g5SmnJtVX|yV=C> zH^!DOR|Y*K=Jb)^gIP{tFRlKoI(sSQ^c1|r(jS9sWO!a-nQjrzrZ0L=W!25=kG zQTmau-eV=c7AEB(koQN2yuY=O_h-=QN8OODm-q(knD5hRl$3lMH&d$x!Ij=7w~Ph0 zGEqg;LO@eZX5vT9g*rocfyxc%%of@nqO~j*weptG|3veagray$j*MQ4;ImlsJA+tx z6$EWM-QKPdvW2vKRx2r&e*xaZ+=JA+DrUNn~#8< z9M4A@v(O_kl0$qxA_`Z~g@nbwc7qw$Qv^1ic2t>63zGJZ9mK9GpAND+VNcb29?RPS zW+D*WVivsGag-A?d)mqvyd@`wN#w+gn0Z8p=fs#5$jmq~lba@_P_D7!DAy^JYZ2cj zraYotGZ~~@W1!;9u2FWn?wXTg*{ky=_3C_U+uTSDI*!DkE}h$!B3WiZ;8nW(GjB(V zyp~3IR*TDkMaq1L&=?(;EaP^I+c}Z^&INFaG-t%`90#Hc0>8xsuxG_dsNM9M)`EZO z#f)Vs1^-?m7W^BOF?V?i$;H&@1IZ;gIBFv^oqmp!!b~^0J;+QC#W2&4^t|V!c$}h- tTAA{kC81;fbWNnDoPMocF!r