From bf398c7ff565bb20c10a7fb3a42e7c282472e020 Mon Sep 17 00:00:00 2001 From: David Skrundz Date: Sun, 15 Sep 2024 02:10:53 -0600 Subject: [PATCH] Initial commit --- .gitignore | 1 + .vscode/.lua-format | 33 ++++++++++++++++++++ .vscode/extensions.json | 5 ++++ .vscode/settings.json | 11 +++++++ CONTRIBUTING.md | 6 ++++ LICENSE.md | 7 +++++ README.md | 5 ++++ changelog.txt | 5 ++++ control.lua | 30 +++++++++++++++++++ info.json | 13 ++++++++ package.py | 33 ++++++++++++++++++++ teardown/mining_drill.lua | 14 +++++++++ teardown/on_resource_depleted.lua | 48 ++++++++++++++++++++++++++++++ teardown/on_tick.lua | 47 +++++++++++++++++++++++++++++ thumbnail.png | Bin 0 -> 44038 bytes 15 files changed, 258 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/.lua-format create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 changelog.txt create mode 100644 control.lua create mode 100644 info.json create mode 100755 package.py create mode 100644 teardown/mining_drill.lua create mode 100644 teardown/on_resource_depleted.lua create mode 100644 teardown/on_tick.lua create mode 100644 thumbnail.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4c4ffc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.zip diff --git a/.vscode/.lua-format b/.vscode/.lua-format new file mode 100644 index 0000000..c729fb2 --- /dev/null +++ b/.vscode/.lua-format @@ -0,0 +1,33 @@ +column_limit: 100 +indent_width: 2 +use_tab: false +tab_width: 4 +continuation_indent_width: 4 +keep_simple_control_block_one_line: false +keep_simple_function_one_line: false +align_args: true +break_after_functioncall_lp: false +break_before_functioncall_rp: false +align_parameter: true +chop_down_parameter: true +break_after_functiondef_lp: true +break_before_functiondef_rp: true +align_table_field: true +break_after_table_lb: true +break_before_table_rb: true +chop_down_table: false +chop_down_kv_table: true +column_table_limit: 100 +column_table_limit_kv: 100 +table_sep: "," +extra_sep_at_table_end: true +break_after_operator: false +single_quote_to_double_quote: true +double_quote_to_single_quote: false +spaces_before_call: 1 +spaces_inside_functiondef_parens: false +spaces_inside_functioncall_parens: false +spaces_inside_table_braces: false +spaces_around_equals_in_field: true +line_breaks_after_function_body: 1 +line_separator: input diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..9ac1454 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "koihik.vscode-lua-format", + ], +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3a7a685 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "editor.detectIndentation": false, + "editor.tabSize": 4, + "editor.insertSpaces": false, + "[lua]": { + "editor.detectIndentation": false, + "editor.tabSize": 2, + "editor.insertSpaces": true, + }, + "vscode-lua-format.configPath": ".vscode/.lua-format" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..2f4b83c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,6 @@ +How to Contribute +================= + +We'd love to accept your patches and contributions to this project. +We just need you to follow the Contributor License Agreement outlined +in the latest v0.0.x of https://github.com/Skrunix/license diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..161d3b0 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,7 @@ +Skrunix Software License +======================== + +Permission to use, copy, modify, and/or distribute this software is +outlined in the latest v0.0.x of https://github.com/Skrunix/license + +THE SOFTWARE IS PROVIDED "AS IS" diff --git a/README.md b/README.md new file mode 100644 index 0000000..c49035d --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Teardown + +Automate the removal of depleted miners + +--- diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..e7546c9 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,5 @@ +--------------------------------------------------------------------------------------------------- +Version: 0.0.1 +Date: 15.09.2024 + Features: + - Initial release diff --git a/control.lua b/control.lua new file mode 100644 index 0000000..68331a5 --- /dev/null +++ b/control.lua @@ -0,0 +1,30 @@ +fmsl = require("__fmsl__.fmsl") + +local next = next + +active_tick = 1 +passive_tick = 31 + +require("teardown.mining_drill") +require("teardown.on_resource_depleted") +require("teardown.on_tick") + +script.on_init(function() + global.active = {} + global.active.mining_drills = {} -- [Tick:Entity] + global.passive = {} + global.passive.mining_drills = {} -- [Entity:true] + + recompute_max_mining_drill_radius() +end) + +script.on_load(function() + if next(global.active.mining_drills) ~= nil then + script.on_nth_tick(active_tick, on_active_tick) + end + if next(global.passive.mining_drills) ~= nil then + script.on_nth_tick(passive_tick, on_passive_tick) + end +end) + +script.on_event(defines.events.on_resource_depleted, on_resource_depleted) diff --git a/info.json b/info.json new file mode 100644 index 0000000..2a0a715 --- /dev/null +++ b/info.json @@ -0,0 +1,13 @@ +{ + "name": "Teardown", + "version": "1.0.0", + "title": "Teardown", + "description": "Automate the removal of depleted miners", + "author": "David Skrundz", + "contact": "david@skrundz.ca", + "homepage": "https://git.skrundz.dev/skrundztorio/Teardown", + "factorio_version": "1.1", + "dependencies": [ + "fmsl" + ] +} diff --git a/package.py b/package.py new file mode 100755 index 0000000..e056236 --- /dev/null +++ b/package.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +import json +import os +from zipfile import ZipFile + +modFiles = [ + "info.json", + "changelog.txt", + "thumbnail.png", + + "control.lua", +] +modFolders = [ + "teardown", +] + +with open("info.json") as file: + modInfo = json.load(file) + +mod_name = modInfo["name"] +mod_version = modInfo["version"] +zipName = f"{mod_name}_{mod_version}" + +with ZipFile(f"{zipName}.zip", 'w') as modZip: + for file in modFiles: + modZip.write(file, arcname=f"{zipName}/{file}") + for folder in modFolders: + for root, dirs, files in os.walk(folder): + for file in files: + filePath = os.path.join(root, file) + archivePath = os.path.relpath(filePath, os.path.join(folder, '..')) + modZip.write(filePath, arcname=f"{zipName}/{archivePath}") diff --git a/teardown/mining_drill.lua b/teardown/mining_drill.lua new file mode 100644 index 0000000..b010809 --- /dev/null +++ b/teardown/mining_drill.lua @@ -0,0 +1,14 @@ +-- Populate global.max_mining_drill_radius with [Category:double] +function recompute_max_mining_drill_radius() + local max_radius = {} + + local prototypes = game.get_filtered_entity_prototypes({{filter = "type", type = "mining-drill"}}) + for _, prototype in pairs(prototypes) do + local categories = prototype.resource_categories or {} + for category, _ in pairs(categories) do + max_radius[category] = math.max(max_radius[category] or 0, prototype.mining_drill_radius or 0) + end + end + + global.max_mining_drill_radius = max_radius +end diff --git a/teardown/on_resource_depleted.lua b/teardown/on_resource_depleted.lua new file mode 100644 index 0000000..f9ff965 --- /dev/null +++ b/teardown/on_resource_depleted.lua @@ -0,0 +1,48 @@ +function on_resource_depleted(event) + local entity = event.entity + + if entity.initial_amount ~= nil then + -- Infinite Resource + return + end + + local surface = entity.surface + local position = entity.position + + local category = entity.prototype.resource_category + local radius = global.max_mining_drill_radius[category] + + if radius == nil then + log("max_mining_drill_radius: " .. serpent.block(global.max_mining_drill_radius)) + error("max_mining_drill_radius is not set for category: " .. category) + return + end + + local miners = surface.find_entities_filtered({ + area = fmsl.box.center_radius(position, radius), + type = "mining-drill", + to_be_deconstructed = false, + }) + + -- two tick delay for dropping product and finding a new resource node + local target_tick = event.tick + 2 + + local add_table = false + local active_miners = table.remove_key(global.active.mining_drills, target_tick) or {} + + for _, miner in pairs(miners) do + if miner.has_flag("hidden") then + goto miner_continue + end + + add_table = true + table.insert(active_miners, miner) + + ::miner_continue:: + end + + if add_table then + global.active.mining_drills[target_tick] = active_miners + script.on_nth_tick(active_tick, on_active_tick) + end +end diff --git a/teardown/on_tick.lua b/teardown/on_tick.lua new file mode 100644 index 0000000..b1245c7 --- /dev/null +++ b/teardown/on_tick.lua @@ -0,0 +1,47 @@ +local next = next + +function on_active_tick(event) + local active_mining_drills = global.active.mining_drills + local passive_mining_drills = global.passive.mining_drills + + local miners = table.remove_key(active_mining_drills, event.tick) or {} + for _, miner in pairs(miners) do + if miner.valid then + local status = miner.status + if status == defines.entity_status.no_minable_resources then + miner.order_deconstruction(miner.force, nil) + elseif status ~= defines.entity_status.working then + passive_mining_drills[miner] = true + script.on_nth_tick(passive_tick, on_passive_tick) + end + end + end + + if next(active_mining_drills) == nil then + script.on_nth_tick(active_tick, nil) + return + end +end + +function on_passive_tick(event) + local passive_mining_drills = global.passive.mining_drills + + for miner, _ in pairs(passive_mining_drills) do + if miner.valid then + local status = miner.status + if status == defines.entity_status.no_minable_resources then + miner.order_deconstruction(miner.force, nil) + passive_mining_drills[miner] = nil + elseif status == defines.entity_status.working then + passive_mining_drills[miner] = nil + end + else + passive_mining_drills[miner] = nil + end + end + + if next(passive_mining_drills) == nil then + script.on_nth_tick(passive_tick, nil) + return + end +end diff --git a/thumbnail.png b/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..54e393e904f9d57b7cf62aa81dd493b212ef2cd6 GIT binary patch literal 44038 zcmZ^J1yCJNmoM(_!QFyf{NnBs+#wg|;%>nqxCRaG?(Xg`A-D#2cX|1L-@e_gw{LrD zrca;Wu|C~3HFK)Nm6fDXkqD6>ARtg>Wh7Mp_HqB*2vC2Ymej5ne>)fpQAJS*h}u}> zS0mWJV{#K2RYeF0FIor)|6mA+=f5ofLkI|000hJ_2m*pH6#@d^A)`%2;4h$TrY&o( zs0hLMmqvhqg2aM={!2mry&yut5HSCuAt3%*`rDv$ApZ-^f%;E0E(iL*=zj#6cc_yg zAfVX6>e?>aiVA!t_O>iWruN2WEFQKF{|G<`c<}utZOvSa$USUr?40>L1S$U|!S|Q` zhs{b!{x1<1Ye7nFMP+hvdnYq;ZWaIwfKmvFoSa<1$<&-rRYK}N)c=kIDJ@-G9QasS z-QC?;+&Nh6oh(?{czJnQ0qm^o?96{9n4LZCT#P)J?VPFpZRG#jkuY;MaRNKIfbH$b z|FLUiZ13tKNJ;sRqyKFGj?>Ho{9m5zod085e<#TL55mgE0$~0Bskwm7{};7?kbkTF zYhM3$C-9FkK4q|nnT?JF*w)O>`EO`KY@D0||8ny`kpBww-~Bi{N!&k<{s-?ri_k22KbxNGQu30}U;Ajl$`Ziz~zKBofue z%8H3^56jiqL29P z=CjzSF`rhnzp}qa`E z)!l3cFMBnuyROqt#?s}2>C?(mTupRC&Q?3Y$!3`a--}L)@^zcA@E2%5N7$aZJkJ^u zOu}h3f6hPlUL|cgC+m3FVC{bNEU8{y57PdUIRw<^7^r9;u4BAwc-( zV@wcnw&c3pWY9i2rlG%)EoB2PrZ-qk(pdlOrT>e`m;KT%nSb$@p5zrtkk0~&WMh<2 zRh@0RPSu>{SQWGVpAJh8tcAJ8wj;&rCZpE%7=M4E2)oVD$uiyECI7ZG#Zw`~{Ii#nQ| zSth6GodV^aL~a68gyKAS?M!&vqa@ki6OXgsk|wBotphxQ*0~oG zD36~@ON+}Zl#qs1UDa-g7i-T9e*5~=DwX}NtWs8Zo^y;+cK;;G@0t!iNEqi@$tYF1a6Jk&O;)-7^6 z_H^w(*Zmf-P(nc2ee8%KupCpNE(dumUo`4TgBy}0kER3(dTJ931;Q`IJKp9AWwpbfw z*%DPN?j7HPI2h$LHOj}EsutwV<~tflhMfufRl>w=bx>)IPIL+CeuDh0+O0LgL0rE` z;E%McR`n#EmUs4KHGow=4hoCt6{ABLGV@sH6&B`$05*}o`-c$`&4RYM&9oLK0k>^k zJPPYojkWgMnY0$!X|}sd^CN6av4%&QKAij1HCzi#F2mf~Exp!P7KFl8Bm7sIOW*T; zD<0?&>ghN87%aw=`aObnrJG!HEXLpW7SqjC$+qCDVi0d^cOHE#7?oBJRT{cF7;dLX zKpJqGi*&Ftvvx0Q!gxo)JD9seW@K>Esbd~S(BP&N0-^#>2(tn!9pE$ZYU;*p$TbG*Ho zWT$Ky7z8#h#=Wp3i6PEXUU)>hGC(BpRvR?j#X$`^Yj9DLA#SB{xV)6RAQ)q0KseE+ zyXa4;-bZY;5FyOqO;3N{izN8$<%F}o+RyDmNkpr*%^5Mov)XA^=C!3+-T>efgM}}x zscg#qMeJK#<5@ssL+_wCy)By9S&QGIqytVlQAbffu__#z4ehFG@BtCBybs=35fk(l zDAuW-U7GRA+nllN$N9KU*FAp2NUd0-GD-`P#*vFi;eqL^v$3utJPI~Z18jBO*f6^+ z386F!r#{d7$ltX!fD@zyj`p6;dN;QEdB~_;of{)p4d2lHZtp#IH_}nnDP0V>b&`@( z4Za~Oj971AkO5q-8zmC1$S1Xu2Mtv*B?A7-B;OvWI zj?RWrlMx#dgCq>FsF|y?tJeDT^mHDoAplJWff{F|Z8`5kjh+?Mye+J;K#JBuU$ZdM z);YS!^VGxjAhzmS$yr@PD~e?Nhp^~N0h@Z~{G=|kW~47cT$0NKqzP+z490;j?dG3V zI2M+lvRXO{N(AtffTJ?M~{Z+DFXk7!W-|2`WAmE@^EMJc{ zUk}|)nZ;nMKfKBnAif+qf=;LtT`xCBNCg)NCiYtWncFsLHOUr!N{sq6MU4@#JY{D> zTwe9uq%w8D8;j1lWClB$Q}GS8Kyr%G;5VwF^&tf6b>Qspdg)CF(~I?l%{8zTo#@=Ed17vbedEuX7v<&2@XLoaily8=ycVZ(zEL^E~?2FM|P zdaBSMdKAJwNTt@4eG94FDljhMD~iSpizi%h*iY&CSx|aYCI9TS>cTr6nLqAUYt%E%bKpMDp?I!Uu?YGS^e@)Fl`YoS*wPEU;>3dVVxZO@Q__dotzbjxoEw^FWJ1 zy8rkJPo85zs<)S#iU7v*Uh+bo3+(h38e8lb@%=|3jVTr~ToxB{rhy^!)5wjnT~B_y zgFoWUoCGm(+8dmK?B))(na(md$Uxt33)w1% za|>7G!-G)-F+J|EEUt6aKsBtH3&xn_LO$Zhj(At@F;HH%YJgvMLbv>OwFC62qx0hW zciP@zguO>dmW59Q=_4v&&AQ^`*pL#wcw`d=Ln^@ zrxbiyIq!u_NA~t29=eD7>1p@$)k;_=mohky#LJ!gt0juUtEgA26i{gqI*+mQgc-*UjCR0RZE#z19W758$md^^ z$-+*B_iBKZH3_Uc(pFl%3M9Def!`eUDiBj<)0TyU=}&3CVzJI5M&CinKJ>`$R}rC^ z;!u*EWCn(7U}Gj_O^s)1h>xXe@oB04>Q|A*74&q$z-%pB99>a}is}R= zqUS{Wnz=x2h0=0c29Os~Tn*O{o~IxEmy&G>!cujz998?Wxx{R)HL&UTvE1B3z@L^h zNm_#Y`;HPgHyK}){;Lu2d+5jcG}+WpwY__{m+yUgwV~g|D7K+%<2WfX;|u&bV;5@B z{%(M7qvs~j*6d1X{wG&DuP8__x<8@J>OhrbpG!&(7-$#=nijSy?sg}J#Pg6cFve$s zu7K3e=O^aN;MzxzRi>Xz6DUxwR<8O%G+__|8PD7pHKuhD0XHLkd4|v)%t}FZJVn`$ z86oS&tOO^a$;&-|=vY-}8Kx36Lv!B$Rr&q4C!)OsxznkB+`p*%TjTF&Ut&z0E5u`J z=b&v3AN>Z4agQ$9Qg1;my`rau2&Yo`H;jJxu3mc&F&kKdYbzy7dlq~KrI$-f;3tgF zE>0XClFF)z*Q{uCkR!nzQIfJWUABGVqTl1j5fL*=Kw5HN8YlBs95Wb4Gjs2zg7N`NAL-M6wJbaJ z+2-BP&&jS`4<6TK9k^XDj~jHXcA_$MVj2b;)Xj^X_`sLp_-$FBF7r*fmSd9UDI#*T zGu!4!P@C$ASA?dsZ(9P-WRbN?6UJ(d)ZF=K>0y_Q6AFg^jXH-nmB3yuN~p|1-BDXDQ|RY5<>hh*47pZh?LOl150^hu%G@(v7l75lhK5|cOx*=T+A9*F*sjKJ(rS5jpOkhn zs&(_}33)y`OwSGn2;aVDzrRP(pu+!t`GO`az`Kz=wrH^^Y1qU5g{~i{q?<5PPyp`I zG4~fB)tL>KePjRJtZF1*1mAU5%hh&C5^o~**(66vz16K;cmtW2^&a+j04}z>f?~ke z06IKfcECENBm`}=4M*(Iv zmdB8QH*e%gVp#64zl~~>qV*$N6p}rg>j*KyQvaA^^i3c80?u;k zi}Ib5RZ|k|sAsxw{WI)eH_q{7ja&I7;O=%tw7kBO2i0<9tYoYhLLilExB*Uxn2<5P zhi~12X(TAwR`8<=$)eumzEG^(7C#Kl=gLP_StGu^8ao$G(M1!PCO(fxatSa9dpF5k zVjDsYK+5Dc;%plI9q2c93T4O^Y5ETs@5OOhKf~gDL z3Krd7>!?0c%?tS0V+ME}YDKY+V}5q_;M%QbOOPsN0VR_aeUzlKZM>8%wT!IM9nvqQiK)nPHU zFvx|;d7#o;OfE#7vCN{{BAd_gMG#e5qurx@jKY%%zC5Snw-@H>Zhrf7`A}U|t28sb zDqX+GGp@LS7Lq_8b<9ZgY_*akSMiy~r~(e7s?M!glek;QIzV*W+QiD?tbT;#2@eh$ z0pjiQqGFn`5K>b`zJCnC0Un1>{hJkfW*T1RYAL5gNr)(F>e-tP3_6!0ScC|@R=SY0o%fqRY~ZlaGIZtnV5__uY<4> z3LJtciJ9@`qfT^Jk=lJ;hxe^bk}=!S-qMh)$3+-!EiAFIu|IyxX6IP?@}o^iw8>$~ zelB69g#XY);7I;`ducuou!5K_C7lMY?iu`vLm$Bd$Iw6G#zk;C0q<2DG?Bs*BM zDxADZb~FP`UL^3JQjBqG>uXFI^IF^UFZAky?z+7@lp`Uv!f+ z{oGCJIQpUS=jfSb@@S+d-XGTT$cRAMEN!!59Q6V*)Yl6{_nq?9Qj2N-`9<3I0(>F~ ziO)&A6e~qRO(f{wj)yxWWiXonrvAyL48yFX@X5d5(a>z;GHL)@A(^Uw$fJiOs>=v> z>&Mx(dHTmmcDL_ML&GN5$LWjxHg@ngFZ>&z{MB5r3AB#28=_$X+ zeTG7Yg-{pPzjT4IwlQ{O$f+DebWy^erbGkzZyLGxg<+szuwUDVVXNUfg+L(w$Ue|% z`P5ygyCYa?CA#EKh*z)`hf`@QUpZzBQ2X6!IHxl-1jL?E+_1*o#&4!pP-#y!e0bKt zRKfBbY+9Pz?&>-x6?D6QsI*N}X2q|C^;&$((wuTK*h2kfxa$Jdq)lN{S{mWgLp_Ty zgM-w8zz6>-zl?BSzSSA*?w=k!lgAI49TA}Xslf}sH7H?pH$8oDkG8#Id7^nW!SV4D zgfba}{joEMi`yF-OX}kS^`EU;bQ3X% zz!?dGo~&fOBI-RjK`^HxWD>fTl3O<3$SBmNA)I@)q_}YcpZMAv$lK$j*@Q%x=@kT0 zrD>aIa_zSAbP?T>H)wf@UuzfV=3u&BwLWIEU+q5*zWO~M@2?LJ3j;|`Y`bFG2fbc8 zc}Umivb&HUr?acSZl10neJzTuPNRtb%4e7X{{e|H+nPn{B~f?BZ9hNMBMHWheK&6!*tC1-G7z!zAXN?GWVE&m%qBK?~%BJV~wE5$1g?Er88$#ODzrsc%HD z;${`N1LV4FmJcGRpige>AK#0hjILHNpiqJ75yk{<8R)Pmo@l=D-vfx2$>hjO54nOk zhE7X{;YpL!e6KIhP9{9uJcGd32$o_tJRbK?&X15XN8KN%*1weq%IFs$0RgS0^8U%? z>1vy1jz*v>Qh`B-O|=stQDTuVNLAum~l9?;1mKAvm42fY& z$6XGM)*&2~_Zh)4bV3o(&*z@V*hY?G6~MuO@48T*n()lW=9r*+A!7&da{9@U{=~;I zKw%<^CmwXTq05-8av7~J^TTpCeI4dClF=?9(OW!66_}x&z_8ALftAVOm%S|T43W0u zHaG+?UbUIxBPA{u+YaJHzjL>N00sbdVBCO zneF}YhfX?7&aQdSb=lXq_BlWMb@$%Nv3{e|kyFEG{rHy%$4prmM{5nct=$iMnrltj zli12h+aD&*F+T@>QNtYt#R1U@gBHF?CSzj5m>=R|Wl6!xfFy7#svw0RL;N{WfLs+! zN_yH~J+#z?m`J4Hi(&S0{gn`iI7L)-5vk~Olt<8}kmzBG>40frlxMsel5GQ}SErDQ z`V`!Ik-MG&Hai$-p!7%obp`RG6dOieVdHBYttUgdsE#ScoV}j(Dt0Pyg{}U9Z?)A7aSx1f*E?RF8}Dz~f}QTI8*e-1$cmG( zAz43-z9_Y=z8&AN%2F1D@0B%mkm|@K`S0rwo=L0G8RGCPvJniBX_woVt(O%L{9@ql zB{cssGdRW|ps!Z9;x&IH>}efqVmeN*!cc4!)r5H04!fIgmC>U3$?L>@B4Bs*hd4^ zx}d1528{u#jp$b?SUz@JJYZ0OMy)bU4;;!Br)bXwF^>2e2G#UJ2iik6zxu#OHTE=Z z!-fA$H1F%WojbMg^p3n}38jnu*p57KB>h_b`{U2o*SAeS*W@s)@wRTBj%8f@X5{{O zyafQlYe0ZQlp*uB|8-EZX-8El?!85SQ2y-3m3C4lM~-0FTp&6uS9yH?4MJi_>Mg`0 zd|N@4F$ppBNe{D##3{s9gvL&+1QR1yhn1g*CZ4G*)UG~nK|2%@4GLj1mJRei?K$=` zFUL-*1lCHrD?g0)A91*@!m9cVBnp?z3nvK3?>7`a7+??Q2pzZR$9^r#&QR58#8ZVi zB#!NM75`bPfMLQ2DVP!o*l_aDGD#w-FcxxVGwIp=8Jhx!4#VPx__#h?GiTQ8SlWGW zollL$yAf9QZl!Yr#)$>2rMHkI1VRW=S!63R9vl2BXz=}Zkhfq(f5o1!ffkac5J=}= z4fIto(Zu#_(ktqqxTiJR11e*O;?1ij1@h_IPmx6;%r!SeoO3$l2TK=-uS;ymgqJyN zzqPM^Z*%o#1!lO8_MIZ>=1(p#s-fhPgFIy#Yv#7FpjYBzme&nMYUHSmS{KU+DnT&4 z-gFU+!A&)o)JE?%@P7H}D5boZ!j57hs@Fwxi#66T+DQb+t_-%W8-qbB!F|O~;+BO@ z$^qAW_7WyS4x;;s7VoyuW zJ8XZmE)5g9wkt5bZInL70%4aY`Y zUN-bX!$R>Ci|>rLhS9iD94o5$GE_wzI8y_KRU!wZt3$qKXbO?y(d(byacr0bYAt_j z$rB*ch2s<0K>V^@oGS$I8pFS)&;XDl(aVWY#fhPd<~S?`lY9C)ApD-$I;n`*(MfnX z-ZEVcVmobx+aBLg!B+-c{!VX!p;5UQ|8|E2L!-R!VEWY_lsY=VtTdrYWA5?8Cq=e( z!|a<8xk9EYUm5cU@{>qw{$~W*@b}A-Q)ItM_any9%U}79BXG*FXVRoo@-0I^k;)~O z&(gFLA2o-(sZ=^KYf0$xJ|0I&houyLpyI*g825RqsnA_PD~Eai zEJH!8zwO8+)s?6Nbi0h}dZ5O>S+Vhei;XZ&O{z3|EbC8T<;An|wJJtp{B=!pl585( zZA`7BAEk?e6hm;x=fs{&JeUles8=b(SdytE;An6j_if_mK6^UW|BUwD)p;aljnqXQ z=p`JnAZGSYS^5sE3JChrRsOKZFd)F$ad*r&w7n!qIo2C20Pat9%t(mqpizfFzjGqZ zhXU~&Mu<-$a26u7W}+cBr4r`;mt>3yil!{mWsy|hI zgLlO`8+6L?b0y@YfFZLD?_#q8nVXn9ho^uBG40?&X9+{=5DmUS2hrU6khj#0~P8R(A&Z94XP<7$bpiIAm2C*N~giBBNx z!~-^Gq7#+i{oqD+N7)Du>nJV_uyx?ai=V==Yw~M8YVrXOHiAFcru=b#2#r)n{=iF~ z5*baiU@#^B-p(ykqmKAPJ?WpO!L%9bjkXRg-n`Z8Emq}t`3af zs0g24U2E(NFYI!ydl;{t7H+$VjDTt!EhPnzCVizkt#H=jAtD7ZsmkN^_3F5sf zqqL(9IO~%jICjfap~?~>z_OBum`#3!*%ryDxFhT4GRY6uUE;A!N-;cl`XPuscrkKN zl^>rB?u1T1l-W*P60(DThxjTBFELR|mtS*nS~|0~B)Vun?x80J)iYOzCf3Ti&5LfF zss6`QnqpFq}@e=u#|E@Ns>_eS4yW2BZNZSAk9_M+kRV zZcxOS26;a6)sQxb7Zu#KjcbdFqtdCLlFSZb2e=pKN(Kd1QWrY+D34~KD+jX26eE{@ zDikc(im?fFN%2@}qN)n~;b1CJ?yj1N#lYT=OUy$;g_m1> zmvA52n%PA7vA9~d&cKd(Fil~hwi{}Kl#u2L%t~^RbNPi+B55bbLI#68#04P~Irj4Uv!Ldt8nTIgN+-RNbNgU3|c84>&*AC8166J z!7%(mGB1NcHE25*q5qBjZn-htHR_Y&v(^c5UNWB%O(r`Knb5C7Qw~bu5@hNO*U%1h z3WQI<$T6Nn^pp5)GMM_>|A(UL%bznPXBG#<$oSm@y(M%_nIs0x=4KV{v2aRb)qr6% z%b~+Dto5AMwc96B}*|i6!1cwlzHUaeAY?}m+?Iu)I ziJvv#yDc9sJ7=4uP2Yl!A{TeV+LgpA?d0TB2Gd<=hE9wYdl<$%H6$*l#ORJ>%EW3dSE9Zlv!8RgaAgHoC%(m^ z^L29w20e;IFw$fB!jRpcYEt`59pv9#l5UY0t{tfKbfg71&ADfw4z_l~iD$j-&93H%o{40Edt3`1c%Rf)ECi z6tGn-GFc-hcO54ln-n4(N+72~3M!yJ-xS_mG~JT6&z$5=z_tsu)}j16l{5{%I^%$W z5#&`NzCw4*!|;?WuXpD6x_Yf<{*L70o7dJP$OG1L)T2hC~eibRTRDFtH5n^<$s3I|<}n%aDxi41ENhDaHWRNa75 z-(nYO#xa80csi&WxABV0YU)%eR|pGAO6DMdRw0L)4+Mr|HJr$OD#?2eojmwO69p9y z;!E3T{>2n362FYx`+Ui?8Z6w!~C#rvhhP`D2*M8IQ|T z-+%+uTb`GL(L9@=+vZXr>D`>WKK``TK%b!gd02&E!7M~h0&5_RhwL%EVwswfZ78o6 z&c?%ULf~iG+3aXXGunH&0a>TmF#=Y!j%V56T{r34yYqGx z_$1J+f8H4$hBIImq87V8MqoGLHF=&lQz0jBpps_E>z3b#9H{gx71drOv2MUJ`ZU6h zpe`1V`9M6GcC0!(dOv@?nAF)5^5xIAHru4WGCr+1O9%-?DhE>78Va_#mM1O&{1lP% zJpE`N&Z~2mQo7`cLLpRo3Fe((`);Y1zB4J>h1iE|jUb>~`aLswZqXtAan^Xt+yFJNF9hqY7;jBQ<*fIaJ#GLb`&4y5m_YqG0az$8m@jc5)tns~ zI9qW}?;7BXA{LGi$ZDKIO;noK#4Gxyni%Ls&5G|kLO;3f4V=oxUelIx} z#IV5DJE9&1=<)upRdCYx)GL0PT55?J%!xP|l3cTLc{j*nrgg|J$-zwc{i*Hq%8hwD#CVhOf^&2NtaOH?S7srbVm@ zcY{s)p4Y>EuNNOj+3%hjcn6DG>1SwVVmnqphnuz3;Nn*HH~Q&XXzQ{CCq&HOX_1I8o|tr&2EUfp6}C4#e@OAt%O+a{r8ibL zksbz#Xqh$u>o+DaHgbl%=QoH2#0PX^WR|1BLV-a)#i#^FYj-d;k~`aA`P93b7Qv zk#H471rhFjw`b9UT24X?Dk(7;=iJyx21VV!?x2`ZBAXsfx&1vsBUT@8#ytxPmUeHx zshS{XHP9xXX>dVhXHC6~lFT~YX%IdCzT1sM?5`;PVJ*Mzq72zfc0#A0Pe)? zEt@Nn39IZ|TT9aM)L>M63bm&oS?VmJ6AKT-2RXRu-M(?wEh@JED0Miw=Z+q#vMQ57 zr)$#bk!>f=?&}bYhXqcCF`H#TBVg>=(J2aSz})Qf5L1DCFv8><5*EYYBxq)!U?7%J zTY@UEkt+k)jDJc@#aIO``S2*LvO#&n>y3P`#N;Q>oYV8nC^s<#NN#Hg0GJrPd?3ib zGk@n0K+W;a;%pOk?mMc{ZC858n=le^z+K@>n0>dh9IT6feuN z)!O$UozZ+v`&I?ojA|c5cVjD*t>@{e~`%R2z;&7!9iwK(nG3Cem#a1Wpk6!=!8Y#sqsZsvaqg)fm@1fB z%`vtSf3OxHdbH-mr!H9mH*7o+(kdO_{$o8ZU;{8e&BTbHjY)}oE>v|Zic!J#tL!_S z*;y)fJgQote3|Z94F1_{f=86ZJaVYa*&T3sGNoO~F)u!pUEW-aU|2j}`E#MMm(0x( z*S%x~0Mc7d#b@_ehrjMHiT@nrAtyiXCcu61`igrZ1QdwQyS(3*Qt>nK1mw{&QXf5q zWZ`U|?Cl))5k>uM?C$8g7020}kW~Evm^_G9v8Ygs3yemf z?wwc(-Xn|Q4^nhdsP-T?5~bk>>u>Jer0+tMMyYM;<{Qw^9^i8E*QyvV3vsCDR4#ZG z?sbdqsYgn6*1uLVj(o`>`UDN^_liSPDb6SC{|u);1o2@W!D3{??kL8U`G-osN7)Dy zq3nF%SExzsrCpG}%GfERabcV?In)%2S3>`vC7GA`unf_zq(EH>%yXB}mUhKd#CEvN za1WSd7>V_qMR+gex8J7c9W$dlE=LGPd28nFAp;8_4BNDQul`$RLwfHB6}|NsGIC>R zAL79L;)a`*4mZ-kFj_Ahl(Yq}r`PoA{qpolFXTNh7Y`5b2K?dG1#h;jvY&HgWTa9- zqF)Qz$k2xVbk634OQpqHVpEVd*;!_x6q?Xl#*woU=o**Kk3udb9H$P}%G4zyJj^a% zD4t)GiwAn!eM}aQ18$9yBFiAmRS?Cq*ns_C;z$07JstQx&Kf@ic5U|uxYw4%37Ra+|kbn@7 zcYRRL|IgVgt)j6L91L<-9(=!MbFwU4Do#4SW)@!?C=&6dMeWN+yazdKwS?HAU(T3; zQ9$8p`q>JboF%UnnrqHGtDlzWfC9Y)!M$xb2UL&|=}0?3A|&r?R(3I`2?>`A=CKur z%#@W!tL|JANY)Z>n}`6M)&7emiC6i>D#-E{?%?<{RX8-NKbKn` z0m)S(OFIJ7()}t}{b?h(1W|%8+a;ZG9AT84H&e5xx6juZ7zkoc`T+9*aR^tixYCeG zi@9^Hyq2)EwDGLJ6Mp(mQ0JrFBnl{zgVig|jLiXZKUuC$w+Cj9smRV2mxS z$hGtd?)1vrCdfT*X5~nX_d%T}2eNySUEJ1?Z8=#+XES&4i-W~xorR#6#agF!bLvsA z4xXh#Hd6v!KMaTaW1d>{sfT54`O++C_6=WhFT4xMs zLuOy;?Y)90^ZvM*79x>QVJD1*3+i0nK6}L*6(b1#LMDWow>`O#bh4b^>k(TkHmvj` zagAej_1ndI@y%1xfpp}Pli$bI3)#ov6MlEGy@-ZTmO{lgh^t%RHtZ>C18W2{iex@u z3+|u?XE-p<)Bn)qk0xEYk9j+~@C#xZxTA2a@M@;6`h+^o4FbViJLo@P{63r|O3_-R zmMk;Gv6PriPk(X%jE&o1p#HRL>uQMtH1~oC(8A!;&TDJ8@|mW)yKuUQckm6Uyaemu zC;~roputZ8P$FEPBM+LRs4>M-K`&b__xru1g{d=THH>NZ3wvnhm{zRCH#EeUqoKvd zY3-dKz%)gug$tlCf$gOFIfq4T)4N@8XbbA`P_w)g zrhy4;se2(w>I&^_PfS7F@4zYb_6i(;KLrpA`aFwA5T+`o(wB`Kd5{$VGhaF6ZyC)c zd`iG%-nZf#BSTy^t#A7vw~=fwq1`g~i(586=C1eKpzO=vEwfI44+0mED6r0XxH>Cp zV$xw}iK~}M6tYh?6y2WSPzo`a=&Hi()Lsl$f3+Fgxr~NCEfP#O@OhUsXn0T}LkTev z4kKOjgOM|Rj38VF*rXDzHVx;0N<6Z$CmSy0ULra*!bq6C1+^%0%j?-<$pmkZqQmR2 zV&;XI#Qr3s2GsuG|A5*7X(Cj8gzYD8zn)zf8n7Mi^V*Z0sf0QN|Jt`H<}BL7BN1aH z6~CnHa%!>KCSM(KbTm06~YrQ}36 zqimmF+jiIel94^S%Q8(@&s_0yF)nP%{rb7U!FN8#cgu<1Pz6}TjgR83g*!%Gndo1j zFk~y(xV)ZqfjX?D_e>&5zlL%w^bqZy-8So=gQQnODaDMh_|srhe*{-pm1lGYE+_dp zeG?NDUXn-*l~|%{c_&AuOm)8gvQd-S3z1|QQaVY`EaUn}{P7^F!taNGE=>6HCuO=-vod?wQ0nMhzXl}>a;q;2!2;wg!< zuAbT?_N9zabFk!bxFZBxCyG9=BDNqZzHd*tq z#xVP!{c&N2di#;t9DNRC`6f+Q+BmIXsmQ1CMrjRczZ2b|Ry>-ry7rmY<}z&*u=SwCmm(09uj${z}C=K|#^7-V$6&9m7iQ-_1;MvjR@D%-@i)KwAS`v`Dm(iI$j zDin74=6(^+WQM8eedjFuIlAELAkw!-B5dCQ#Qi?KMM6CAhG*Szv+WY%ij`-U) zQ89AZcQ=0HnsGo@wOuQd1ic-b%F`hD@`K*&)0L9((9~)L$JhEl$`p!?-S|C}wafWb zv6{nf27UgHBEuX7G^gamdw582?4+2;?zA$ls3yHnGoJZ0g2-k=kv{ng-tJEb1jI?O z%SzNNo)*!N^K`}9=z2uM<=Y;yHH>W`>thWv8$E(t<8|aH3ads`H=MNGY?ZxZ$ee*r zAQ%P4D6Y~GWU+Hz3IQkMmeK}P$4->OR0KFXd~3q-V!C4dX<@oQmPNxNCavKHtlJs@ zxCn6aSR@AeG68_!_!?dKl^&&I&v>*Bri04nU>}#gV*^g;QRmbQ3pF<4^>(k%L$fo- z=c6gqT3)({mL^9(=pt?jO25Fo&8(UvRtgC&qz`}O*?~K^y*m_5=iFtKl^fuYsZjiN z0*nIb8`oDOykn{zMbNo6Igqb{6aI(m4iy$v5OsK|a(v!BdSuOz27y#ZN^+Y%M0?;Iz&!+i^Q=%#X5h z+&i2N@tOQp${5LJ!0Hp^8{zD=mSnFhb+Ad7QhR{HkP$*H^#oIZ1vEC?3lg|xq<0RN+hhFQ~~Rai~J<={&ud&#?`$?qfkY8lvv3xj=v=$ zQ7GQ7U}kHaQubz1z5xn`TQ}J{;iw|aeM5kbgc9GUXTwc`F5w8cy>WS!Caj+hjGo@% zKoK{iZ8L@;6;Q4s)&5 z(fDXP^d(t2I75?ba@!8k+x6EXah;Cv@)V!NduaR6%IUO8W~__OnmcJ{dO4l`{`~5Z zi&3`A>hB;)nOeJ>!G4pV##l)VU4yi{2rjzyfS~yEiN80A-Sjnf!|!45Xb+QrbwH9 zX2nhj1tB{#LAK>E>!5J=_H^Ngf8j>b&-uNf)~JzZ6mD;;g|WYi|8&8bwh&t%!BadP@!A*)B%rlvbiBY0L6?-wPoD~(MV#jU5(OY z%x_sm0_T*Dr;bL}n%`k=f*XJ2?PoRRf_ziOsW1D9Dc|xw7Ci`$DRX@hmSdJ z@R}0>n{jL&e1NNqK-e+ARPlur3nSJD-BB2lUp{00(aa|$&?}PM-*173Y=P(AVd3{X z){pG+8)suniR_wVbaMx(Z9cF%w?Hh_TE(^GH&jD!9w<()#~c@$E*gk@eLpbFi6Ugg{bF@q9jn1&@uh&Er>6 zR2_~)?n;#S9$G6v0jiPm=}~lx9o33(Vu*Bwf4d#7>MSFn5Z*AdgvoNWcaZK3=G;|yMQ}jOOE(a zV8j3uEzFpinFC%kkY}c753oaHf-PguN49DQ~zwN_PCZrx*z1z4e+=NvwgPkgg>LVNnR}M!#hJFkmwt42<`UMOxpH zgt3_h&k_<}JSgf4{ki#I8=J6eSV`zR@UrogR91|wnkuE%UZJ(~G4mtWzIO7&Xe+Dq zhW<`ZPCu~ff7LaoqZwm zAeP4@qbxRa@BGR0eSC{Hz+=ZL62pe;fo}sl<1Y zO^fZcQ=IK9H5&qqvqnqJ?p=*W*9OWWbNNMfQ9oAzDp1=G**aC-E~YAEKq96~Uma!{`?UcY*M#w_H!k@C^M_a9GOj{zv( z^@duPx>ca=_#xV+;UW43r%TW;`aB^xd1WO=f#^bc87Ck_ej)t;|04L@kblKB21u z002M$Nkl=dic*h7dJX`;802gj9cZYKbQ$h}+m8DTTmwLqo<1Ob7Ph`byP z5tw@mL7wF7qGDd3J>dC?%R<+J!3xFWXMjJ*nk}Why}Wq)!Rh01_~-8)=uf{t7(ybj ze?G7VHhFt{^>6-<|NR$VJX=8yG?Y*t^1^((dV1pB5vKhp7;v%Fh)XP({NBhV7pBE6 z4?t~>48j2kv%Op`i7hA(5Wj%}7-E(RS&n!s!x&H{{It}Wg_^1}!! zf$O^z=rSreT}^juLI>O+th)eLbPr8SCjKrwu=3G39L@rehCe{(Wd`3iTv1C?>Fy4+ zekap?@(bso&u+Dlhj#@Tx30V1$aN2f5rePzF&F9rhpCgX(G3J5h=m{oG3Y|8_bdRZ zN66JLkOK_l%a{$btYCDggu7iv56ld;%x89t4zZI2<+pmkRC* z$T6x*l=q}!VhWzbEiPnzur9$wZYhSRlU&bL2V~TOQd~$F6v|SeETGrkaZ z^lq4SM=S)s?Wp$}HzZYdd!yj~{gbO*d3Jq`o^X+A_Xk`K>YqG$53lkEV_b)cQrWJi za^Yg+YVw^I4eRn-)XMY|Y9nC01GvDo8AO~EYM8P#(7JT{YNuUPTuxEV>}DGITtW)r zI~&;Zt#UPA{2f<+nq2DK(rKj3;eKz%IjCyrEpeIy&;R0TE{TB4`ly7^u5p>WfyHZ( zYBkvV!+ytR} zD&sUw#mGLIj?hNbCQ_yz+M6hfzMQ&CVGM)2ISIxGV{WGbm1-!Z82!WBiGEO%OqBAv z!@wqH@@-6*5cg#)&(WZyDEs+ltc2W6N0Cy8T8gd!7no1D9m*fPKXu=>N_Tf%WJ@H( zt?AUksCQryPPpZX@&w?Ub8Rz?7X&+#Xm|D-^5J{$fAH|}W99Z!V!&|!#BvDAatAyF ztmlC|O8S{Vpl8pX(WqQ4=bR-R3OJpp#F2&3keu=FK8=qD5L(L6(GUnO<$y-}KhJbsNi-Nmn&z1-Y`#l-1 z0$y1FMUDsX0veR^8Q+xh8*wnrNfEdW12->-hs`=8%ZhN5K90d9nJ#x9Hpg}~Qg_>V zQJ;RWJbPKAd*bN#k4L@1rEOJ_F_{dLiqskHX0e$gnVHTGk4E8J2cu^Td&wjgf?^r$ zkU|}}?80r*^+WI~$Y%THumADY^RGlEE;p4iO~0dhqve?dga7%qd^o0OUbKccK73Pg zlbe^H^9V#&1QU0+>=Io1byo5Q)KyfdAKhmNjMEXDyqcGk01yHIF36jsp@ZcjlUR2c zF#)uN~b0g+?{y<&z^C@gMv@)K@H3!xSm`Uz_0@D=}Esvjn~Z=ua=0`X9I7QmPG9n z`WSqC2k4nIsTt=YeF-E&Zv?|iE@Vnq9+B!=Zs|kUNkFj6ZOv7n63rFmt%nb1BkqoK zmhRxoO50WK^4Fhgi}O^oGtCOQr9t1r7WrtBb|a`Wzbely;iKp)+H`+4kD zUAo@eyN`Biw_cK;@kKf++v^Lgo=3>zO_e4!(U4p#fJq*FZ~uS`=jyVg-AuS%W&zW8 z4<62*96wgH%jG%J75SVR$_k`Za`$_-6qicT$3T)QIF;QbH|plEIz;#629D00g1 z1=l$ZO>i(_R#FuYzQ<+F9PmCXvhsEyfvLb0t5fUFC2zi6!i?ZT)`Hzk6dUIj;3!uezPs( zm#JPl|V#B zB!JiRWY-=nwRjRpbtV1&boKa7C&fSPi*`J>6H=6KJ( z{Poyp@~2q5_~zuj)5C$yC%<4Os7Mgo(tThz*$N6Q{=rVM76K29E3yWdWm;<=e(>Q( zAAAI}%uyrl+HSWni)bd(?PiaCchOR!GBegF&$L2rR5SfQ`!E0dFF*h0)%7PXDupr) zMkCsLI28k;LRrX+k24-l!yTWR!l)9}t{V2$OtXoqYO(A6{Nv9-rP@-CTx%aXU;pw~=v8>6y_MNEsw0Hens)UCv2*PtunY^$adv zaYIle}X*tPiK#rf#0!9sJplwyQ?S~^xU+ds)=FWMG1;FjSB*7$kq5F6KyXOkjy<2 zmjNSSO5S^!F!ClJUBO}C%49NX5#;x`>y){<#WtNM1=lANDPJ#kG7!ulGrjha_xd(L z7sQ9+FoeK-1EVD(Zx{2XDa}(OF&7sXl8%Cmfxav=Hp>s+{K35k_vdlBe{lTkU;c`q zMQO}u!l1Fqw+pu$w(5gwGdFGb+i$;)CVOwZ|M7V=-6k12EwCODozjJni${${BTCw) zNTGtH#^-MaECiAQX%QSIM`IeAV+zMOl`h(3y2lT`K6`a@eNBIhOT;cO&i~+tKk-}u z*J?21lba}r%*)r`pswfoNG;@ib$7az`M4^EDk>zi+1U7{sH1IaMy z)$N8O`TqC6KakJKxccJDS4e$Mj>jd0~{Umc)|zVsZQJ`S*VGhlb0v=^(kD zueTd1Spz327PO(MUAXCuZRZmo=(!1hN(4te?uXuB3Zz8TLDdv+C%kQQZU}f@onI{1 zD_n89Hw^;1E6rp&^Z1kvQ?<6Q6=zTx7H3JM8H6Dc8r&8>VK$!p_S2z?HFNxgZJ=KCCzEyZKp+60*lyZBUJJ zFLWC5Nk!oR8$y=^3&r=-+l-Nsu9sswpeKsdj*Y%SRO(8qWfYT+4e7USN|%Mo1-6o| zX=EK9o)D91Za#eY`2F`kc<0@x7zkX^)#W*Ass|4qt(VK|>nqs(s^wBw}$9AsU!UJ}!e27zcvSmDaUwT`hL_0s(EzRf-Tz zG(IG_iAWR>I10&R<=J9;Z*M>}gJ|T|StKQljq^HuVu9~4_R@2s0!WhcCzkGoeXbgZ zvxCJhrW1tB_Glkj-2VRT_)q@nXt`QYhs7H@QQC?R<+9PkaI<@K@?eT=gsBvs0bl9X z-7eqEZ|Y#kQ~(#!Q70gZt}<52kU4|4l78V?2(nq3rP^S?zZaJmMI5JDGMY>ej!!_f zUw-!4%a`8XhE^?bejI_>X2dYtW&zxvC6b#Zx%DbsI($-94Y;?ItL z_IH0z$b}`QL}P>*iZ}p;0=D;@7&Ek`v{TwadKmO|9efa)6tmKnVewuLO zMv|i50hqA7J6%mRo9?wGSJMSak|4{$U0%QVeCBmrZ$RsEBR&5L=aBM7=oC{v4M?@( z?Uqt`G#u{Y9c>qcuwfKFc=Ui~+4FB+AoqaFKRh@Z3?n#9IN9ST(alI(IA9LNTHkgAg!Ke6-xjcW1`?bVrxJT#o)qn z7UYId9s;&|N9dTIERbwq-9J)T0U9^U*d!jIxopZO*gPiE(_u0fp}niR0#xG;?CU%6jU=b-tqxb z|8Gh6^x{xj;g%nhT#Ndjv zyPVa`ay&3-G|;AeojTro{qi(s2{x*$PJQ3|rhW3sOs;u-H5h_vq@tp2)R)*{2B(<< zF6^kx$pWSEJmqI6rN4XK7gT;`8OnV00VWgjxG`ez&xxk99Th2<*ir1;%=(1q&1`yp za{4%vncaN%)?TRc`f+tzj=pZ#omtCk{X<8v#$>bi$-IX1u;z$k|*24=k#BEwk!|N-A_41Hch7p1IjN>p~ob^==#0q~FpXnT}K&8jmYj*AtJBbLTbyUfvOf>a1* zQ(KC-E*L!oVR3d)@c?vcmsM}k?qdWGqv2`_uoy41B$K0SN<#pvqvqhGK**W1J`6wE-kT*ictcCV+B zsZq!RoGX_u!4RJ;W>~sBqG=?=d$=tQHfAwu@X?B#G}wna47NpC zuMiySJu()|ddMJMBqO7)p1`_QvqujreY7%kxRaC%fD+@V18=Y?CO6RvUCBSR`=LXA zz%)X}Fls70fKw)eJ|%NvBuj;YNK3JJG;x4IF6Y--m_$jx+p?TeI*-QF&KN>CM`bir z{l#$;3+~H{p25tI*uJDeCPpzZnd4m8nLJpr)dxsK30hf9#iDW8+&?M~$HQR@%Oij&aMt5Pmdu)va3alO5x@j@ zVAm*proP90b>~)P zA{F&E=APGm*NSoahZxug2N*Z>1_`{3gE;j##robJ{kjQiQZiMpo6J6eN*Aleb+YsD zVBd`|cRFeht4#Cb`^z`C-B&su?#JoEr_+VXM1&YH*fp$9Zlf`=USGu~3Z40J+J)+} zkGG(g7+^uLgTSGdy0Y@lT$!{cT#5mdgr-~Zfvu}1z>Km>;&YjzfQ7?u4;S~{Dd_9d zM~!{&0PR)ITpCST$lSM2CA_T)jv}!%2tK* zDs?ELV6IZ-;KM;rr-G`T2x&B!*rVk?PY#<>Wu(Mh@k5!c8r${dyO&>owW-&;4|kor ztGoLv6BR~-PA)Ox_G78Cd^d>F zfeY<$L;$_;E$mk@zcG97dgS9>7Y;$J#DbdUH)A6q5umWLh2>}urWscCZB2Rzxv3&7 zK2$}g6y>rc+59Sgin3l0CnCOGwTfNXWKOCTmSiwnwC-d4M!qm<)Pyhv2*zon?7~}6 z-A2(wOko0C>NsD#c9|NCN*0DCRyzKW)VGH7XYZ*l^e#Qy+fSDgCE$n`+RqfUQLE>e z=clMC{Fr5q=6jFtmy7eK&pQW)1F`FyuTrPa#GhzXlsZ#uKKbk?$v^$(KaNt*Km1gx zw0Zf5AFbBa=2LVUx}_c=n`0{554YdJZ9H6#19mL2ibOSz45zD2O%Fm`ZgSXr5MDof z_6+Z{*J+BbN_&1!J|)Ke8_RtRn60p z1@i{O&T*@C)=&xUW`P;h-BR)P)EDoN14`VHAPrOX9D_7mt&F{giPc$&nICOURwKb8A%mm*! zmy>&;Ob94+I@GH5UU~5F@IY+OKKulF!jl~z9^PDE-Q3?FH=DXzuI_GYhbMa3t>tTC zyx7@01-J`$gU=%H+b-vwPOEYJR73|`3R*@!%N4TNW+h0?kyDLh3NE}|%n%~2&g%Ng z(Aw6a;S6$f|7Li{_JPw?4p^`3!J*~E3z~Hh!P;_ZU@RWA{nWXWPX%7-_1wCbt@C|A z@8rzAtE-4NjLoSsFJxL6*TYPC&uOF?VMViT5}5fDU}t8n3iRxaC7i9_4;c)Ug>Aw z3scT(q5kG82(~}?>bGjmjVIp|FT@N3HVAOy0q(B;VLJJ4oB3eEhQx|%v9D>{Y`r#N z&By&=A27d3Jkh4tI6NNo`t94BN2kY+KK`tBbVerW+M91*!7UN^Ivp!s!!dUsTHJ~- zN}2AvZ~k(3cgF*$Ux6tO&QA2Mx9%=$>Eg-3hp+~pAI=of5~D>42U3%m6g2;7znPD= z%dybIDp(Y&)nderz@Z}=$ILCp%m)%6A;T9icp4 zm6t>rmV@Y8Hx26|j_Vdq zGA~jJ9v5lq*!rGS>Z&)zdQhm9ud~0;PpX~K^25`*yt`Q|>HPGTu`p|sn^x*TM#1>a z$)=K^AQ-+e5(I+A% zwr&lB5#AsPVq&tnlSj`%A;uAY^yv?9AD=&Z!E0-1n+#M8m%Z-YP{)3+e|LHHaCak6 zR0^Dox|Up`Iq8~p-nZ9RnzF?{pkx2%?CD>vUOGBxJ~}!6?xAL+nj_Nu`WI_NTjtf$%}8v_G8f1??!d>Crr%$)b7K&-DUOx@Q3s~1ZQ;}BP2FZKWYB6M2B?vXs6uDu@0h~cB4EH< zHbgvzT3sxxj?X8TuPUvZY_+*jDKYsu5DuZLg?MHfSes!neR|Zne>orDWs@gH{j6ic z^h0k7Nq&4BLje)=y78bZUEd6vTs>om)nssTc6jv37l?qr{`WDLl1OiGM0S^wM%$a3WTld#dkgPBfivDLnr4=YR9xWeOT~V z)!DEOoK@M?mj*{{ulrH zza0!G7wyTLZ(gcdLI7_&R!IrzQ+IuiW)qVFjo~-Obz!?-PT|$ty?YoX|A&A1QPgHb zw6-{SG?(3zlS3ZWl9V(Bg~F(SR1NWA@$6fx=GfWy^z2~31wl4Oej2g-`!_xHI|=gl zpY0n@$;CPsQVb3@_Z2@*nqGVSqh~KZDwJxvW^OLt1|T-qk5t<~GIlbT{nKyq^Y#5? zIT`ddcm#=3_$(CGgMnB-?7vMdhs`?o(OIP~uCA`_+gVHRv+Mn>3$){KLQco9TS^|Nh(m^Q%Anw%=(7;N~BF9$5x_`q6pezyEJOsO!_rZU5(g zX#e_k;^^oE;mAk{K6N%6p-uhQ|NLis$IZ>d)%B$z*q?v;3;0&V&xQkYQ^ zimT1@{ocy1*JagIgM7(Ua4@2O#K}-7h|*uadwqNNI`;l_TAkYq1haU{-P}lyM*PJZ z?dmv!^O$!Sh?D#aNkgGsJz__L-Rk3DhyzMu8-RrJQ0R;8TxyJy*i{EIi7dqU9)xoN zyU=#mBF`nmw}xh4Y&UkqdS?=YRblmwglXBps_5US_0IP>Zc2>3%6Weet;(BRE_ed4F{yqLsQD zJ43mBfa~>$(vzB1YPtNkH#dautlIe1-~aL-{`UWA-&{kvz=TxCyAuWi>i=mOIN7ts zZUuQfs=?F+W60~~j0|^lfs%CXz8&osSnmKIb2=vD+v%*g-ErJiD0d=jCQ;ZB2d9#- znfK_uqOsp^j)cvU!xO3i~Qab>} zK5U&`VbgYWEiBXv>aQLh3&2=(pV%58+*|B(yX>WgTJZ3?9a2`?&04su5S6-lX9e|G z`ehCix-QbPcu0ST<;aD?iJEaLJKH;%4+qn3Ki1WADY4^iS6OB$s56065Ga@L+pS*v z;rpL||C>Mm_VvqeAP|d+5qb&PG0(M|t-`E$ciC`i|ESW)+0JaP!VMnwFqdy09#{7E z=i||RuWb&JBEQ8M)4@<*y-{5|IF&PssMT*J<)yp>WDCG3i~-?^8<51g03AkfKCx{! zDIt<0qY&oKj`p>ocmS?u2=>PjiO~yV~YYpQ~wp`|a0YCpZC=t5B>ojvmQVrC*ENoBYc^)eq0_$8UpV#QD=` zbvDsfjF!tigSFmXzBxLLK{kx7krb#dtLP7>5bn!w<#FldXwd7)8CI)Nzi&jr$1grO zJUqF(*Lk+Qy1Kl-Z&3oVk`^VOBxiTQnt>&@{DFL`-?bGC*%p~B1HZ>wQCD-ZOw3KY zPvFt=9AB(WM>43^7_eGp&;Hhn%Lj?EyxO^+oE_ZW-eE0By$yDv*|}0_#cNNd<#O@t zirIPS3L<@GfmrZ)Q|(jZsr!} zA0K7Zy4-nx>em21qL28%#(8xw95IA?u5M)`hY3u|jDUbZYh{+OM~C=iuk5ybL&F5{ z<@WsPi}80~18q#+K!0YRq@;NN?=1paFQ8S{^EUe921 zfBt><;v)3>!+t?_8$e4*I2T7?$! z@W5R0j+s*ZhuhrDVoF8sp7P8Ds)Y`FQ{tL`el5=o?fBwZ|X2DC2@~5SS`ul}_ucxFTc94)Ks^a1S&##eWs`9 zd5JS4p}y<&kB?4-Yr10z{GiwN&fpM4M2dxi)ZA;DhE%Utw$p22X`azeT6Km8CjVc0 z`M6ScSx6x6!U1%!5MWMKSBF?jfeOtH$;UVO!+O1Mk?f)IqDW@i_ZAung>k`Ez=McZ zK0l;acqto$r!b_Egh&A67X@w5#leMrrn7PmRbI~iLGhjVTB@?!2dO?ra_qXC56zwS zkr;c~FcH4W*GZUMum6%iDiqv2j4tm*pDsn}YlquP>}_^WP`x~W{vN9~#Gyg;)xMZh z?u=H9Sdk=w3z}=p3Wktr^xTceku{Ul^27E1{Y~xDpAcV%?Lgr-1}RB)|5GwmT`oSK z!8l?c$I7lz-;_!{S+0J5ef954mHv)g?4W~`2^U{zqccr!T&z33Lk!WuU?>V$YYPdQ zyApi#GlIBaAGKPeTrL~NBuz5`8^6G*sYoa*E6@nqqGLV60hnDlBXJwUh)hv2XH85A zUWwHLQdpjIGaQVF{}(@h*6*6T${Z|Sy}YF^M$-9pK7-$Zkh!YeQj-|zZyAP{OEevdWIJvOy7mTuJ+(JrZ!FRW20K8u6&3xpHd{WWGC@QLnT8 zifQqHaDlhKAT?H^p-~vQFqdQI$wjO^C2OtD*kh4XN2Av$8k0=c0+{ZyL54`&rJA>nO$dLQ;^|GPI3T_Yc}sMB_1TN*)?t z{Q9bG9y7z}0}=V<($wd>>%sHmNUJHPXBDUOLuRqLSPLFGyx?sHUqUf@W{h}ku~f!{ zYYD$er~!^J8>0Z^4}LcjDlVmb5Dc#$%&B#O-%eSuIi8%gTb0x2yYMcUGXas!XR3(5 zoG#v&7uD@-bA{iO8_Ple2lFv5OPKO}%ol}$f9!&%i+`%;c*|heG9z}X`{Z=i*1XZf zB@(XH+cGd!V4yEffFhKsCnWXp<5Od?PS4H@rBd(VWx_$JgZu1kdcR)3={|(z1fU14 zT6-M^ZG?c_n!`1NPR<2wU{tif;NK~Mu)V3l*d)2*qXQ(k2Z)IjOjx8LK_I&|MJ6~KYU#(_!!f#O#UyZ;=_;y`WS_b^`$Rj}1C=P;ab8^jmnhwYX$%T}IYGQmM{~uT| zLp$d|_xASrfcD)M?x0;#ExoF?OP3X#qKQF-Mj60inr{d`aE5K5Sur7w$>M`{`bP!v z6)7IODLdT(D3LPwZIM}tzUefp$e{W=-vRKPuWN?fP*h-Xj8bu7(y|DKclkdMoNqD3 znZz$+J%ei{s~L^0Y85_PK~csK&TKNjYLDRWh_z524zblWw0HaABXC`GyKrgzAJz@< zeqtd_i49NVe!3p$HGZI9%v6gxWfV!zWVd= z;p1(ERoJ%guirGA4_1g{(@m#0?KVjQ7FU`FUzVz=&i#KjpVk>BnBRK!mvrLy_2Se! ztphyU@rfl1VLKv6WaO6H{&)cRLa`zfG2JGrvN4hkC*YG$KW{Xu5u`{|CX0&sh|n`a z6Og2leqIZZ!Dj}gN8^wZuaX__A3qRE!}b z+tkg3=KHm>xvlIQP!XZP9$@uJnKGU8;UXUv0E@xrp6=67gVAG41p6R@q}*PPyvWta zg(@$Q)K7U7Er-=wePHTATC$vhf2^~`(fNz(yVm;ZjS7*mD);A)2i1D(Z~r}Q`{2Wm ze)`j2#2AhNe6=r;`(-+#_w#Qy%TjXtmrUxn)qH!s>i5TCL(r=2Yt$ANL0XJ*CEqwp z>V5V40o)HmMj`~-n2slXxK|>1*sM4A8kg7C)964+2Hh`>Ee!;~=CsIG4IAsU+}PU# zO&CTSqiaGEqI@~AHOOo3j13!Zlp;ex&j7xf>>>b<91El~lm*0vMPrdbWa^XsA(|LB zv!Uu>l+w(@W)&jucAbu0bAn4kn&zbZN){0VU2-Jg$iyO56C3T294}ytDj4T`F+f`e za1;aR1c1e|1Yz1sfQ+Ar=dx1atn@%^8a@2)WHRVBD(j#?cZ*;FhiOmOqR z(fBhRHaCes*76$MD~n{N1{csUAL!2eV2m)vZfll?CBg>D1Mcfwh{yCT0)EEs{P>Ix zynOlX)#Y`}(lsbPH9;Z4_mcfH4^>T3vDPDFzBA*;HyTw54-}Yd_tWlgd@$M$@35ZQ zPaMY3i7UbyH#i;xaJ{S}*MQ0V$8{Oyto}3^@qlbE-{41f-RW8y} z9iMN1^0WN@;jneD3d|0x(+@_&i^~gz67uO~m?o?k#le3nCifK5gDRVpF7e6HL9{E< zBO_C`@Ti^uv>#)S7#pQN>JsF0wvNDy49An<*WbRD)p6YZy(W9?-b^fD?@+!`sk5TK zZAY_^-l>{g_?cB~gq9AfO$ZUZo%~RrL`*c}3MdtvUN4Lz^~@YXklft_wG=_U#WP@QkBaRE~Z<|9Cij5-`16D99)@@$4?2or6@fm>$KJF}S24r|@e z?TBLa0SZNY(JT+}5}oxbJN_uuib|$8aW6hGaOQw4S$hUOFp3BT#7-OSn!)LoxN(?{ z$%6=(yfUwft!>43rd%bbUP}Ijx-DNB**7qs#kiV!J?sbwuUK+h>-CVEB*Bq!n;Mvh ztt|33PRRUh*oV_XBrO`V z-HVt|A(A(WTsA(F!(YDt9=V-|>-S78S=Wy6K@I=OD1hJxD#dEO6rF66C-%#b3cq4L zX7|9`R2)FAlQE%&t(c71r{934y6}d>i83rb}uk^czq0W>Bu2(UCZ|+tq{kApTueh}c7g^OXW*Ud=(D1@m%9uJaUs$fh zQ)ra+esEqGG56~D#2w6|lOrToJET}Uu%m<^DNp<9y0|3rXqlM7x-qcYVeAM->td-! zSVKk0mFfCZ6Nh$_QFf$%?=Pxd<9TKDQUX;pD3%V89WrS-21|0^pLrc`%T6fgxg%po z{G+9rZ1H5243K!|ul=)HU6^h)n{|8T^@+`ebX7kLoLXZ)y=LLogMJS<)&VY#u^$BS zECNrY(qwn1ACWk@bb^;dZdooT1X^L7P0$48`orn5*6Z{V{njmUVDtu5Z^NN2x$5$< z+%Q_uEw8u!S^-n6?tJBxMy-%fHjz?LBwxwcJQbReSe~JMMEDIn4W#PvK{*f&MtxX_TwGCo1lIg&~g9uZcPPF2-;No*^a5D99)^kVUC1LRdd;Zc(J4Fhk~Dx>_|_ zs95$M^X|h4nC*pED>*E-AwqzbNS!9Vw!Xx;G6oI^Cp4uqMgmw$gaYV)BCcFDVdA_+ z!Cq3Ov{}iST~#WKT0L`bB7r77Vpfzo*}BSXxCW8;DhN*@0s&`_cjiBItJZp*hhao)V9uzK}3D&D_$ELK%1!G z+^EubT0M)q@X}KCH!Lu^1$F}%r(lOeA$y^#gj|ioZ1|^7jTHb}zQE)X|B~W5M z7rs$Mt0{2zMc-rEaqW=b|8GB&?u@m=Il>LfUtSs_5IMyE(U-(Vd@+W31u&c zNj&Fx(7H2kIUPgpcN1$rx=kou|m4rmDvGd-j3ih zl4Q>dU5miDta$0j&>>RoVHDz-9BKjvB1sX^CzlH7X#Sz=>7*t+r)#7L|5I$FD>C_* z&8N7yK9L#ikPa@F*XKLlQ`hh+{D{hj@iZb4BQdQrjpgrhx(FSOELUAdaLDG)oBj|; zL@NY#Xta#B8a>%LK>8*U;+X)L;>)wXobZvz19_qNV(6| zYywqDjk_WaTUEptv!q#RW3a^-wZGrRqBS=i4J4&&i5M|aNvzfo=Yv|#tU^w8=N`;K zV|ap610H($dGi%;a^-{=sKy{K9GGz+QecCVaRZGC4^x!?dQrKH1d|>Fq5->!Y0T{DZ^pzAPhm8y<(wB zqGlML9z#T~Fffr?CC#{a*BbL=mK#UZqZ_))`S2~mdT!o~BGc}^F_6x=p2 zK{ayJ?h78H$*PbxINNH?zz=ryHZ}xPCEyvQ=VIQ6UZaI}5pqRhoLx8!b%Mw`T`H)Q zEdwS=w&6l8+;tT zwDdeJdGlbAO-<%uJTT2zvPj+qTPZ*sC< z<|a@JH=?o*14to84TzQ#Yws)#y~Vro%x$wdgj>G1SU) z%IO5Qq=9W!li3X!Gb0K0e7q6`=(vT^h|+-fq8hxKSi21HbSP9Y@^=qUuGxTlOw#r} zvNws0mVADj@e5as1-tse=}0KzCvL`z%T9=+z8vK!ZDNLg#H@@|O82*)@Gdf0ug1af z4opS>s?a#j3^uX0gkmZ9;^DjkN^ZT9#rpy{!1f?$T9CnL0!6`v=3Jk)drW;NMpe$( zRmq760Wc$IkiL_^(1utEvdx&rs1M8oI19HaiZBW1t~NO**-d)?z!0vnvgyI2 zhSykHF6tP#{2-i3bG)7FHKtDBO(QuhGDivhu6S_z7=3#Hr`=E(h8_?F$)&UYA=EOn zqk2|CXB&ci$WkQj96s)0Folftr?XST!tL4}O%kB-xekf>T@S#KWx@O78ICU&qJvXg zV+;dk3rUDVb8KbB*1!rii&S4K5MpDtcz#ySe0@7`7`1Zc$zJ}k(UtL6p&uSvQo(%f z*Q^~(8iRM$os3CnB>URVdD|#>xiuwI>Zqp5B@u0J>LCfEPlyX+j!d(OR6$qA;JcT9 zsP3Ie7*sONTIq{0M~S0KGCHj{c+{hq5mBT}=+7}##v<5j-TkqXD`GLWxn7FxQ5?$o zUPJhF@KW(<~{;O6txxfZaC-NX$ukFX9CKN;!O9%s?${Q zh;}3Wwr23BE;AQSWiS?hmhuao`WB7bYD`%{G!9c2YATE+Y5l*Fc_lzQ~R- z8IoaMpH^&6g^ODUnpKe!YY1?aYqN{(bz6xjYf+$mJm&{B)p~)pX%9mCSwZpMYMZHP z29iJ;K#7PH;*!X@8*Y5vgd!|frO3_`#Zh6(_5@!F7t4PN1L*RiLg773Z z{YC&n{G#;kyZnj0J~R&q=(kDK611V;y66cUhy@g9zmgigsA8iVQb;Kktz{16-N%Mx z=;;(?255>F4%vME#RE>EBP7jl~jDX62$Qm`c>b`?O0nes`I zT|9I67a&@WL@v!Ebzx#iH!W5niwvzvOT?alR0|nQtVn)DC-{FJ$U`b?SrO~B#V42D z$w#M+S~LIlzF#kAyOWi)hgX*b$BY5s5BsaTGC3|b^Q+;q(oBALG5`L#S!Aicxdk!& zR!KVoU%Qr|lmZb&05LkJKEX>1Ua0!X)GQPwHc#&`9Dn@SW_d9v{O)xJ;przY8d?_G zvEMN_$~5OiU2pB}LiiAV>wUl-Mksi&BZO+`c15jFsiHT_gZY^MK4M z)WuZBT^s*#(IQ)5VPrvUmNHWmq#`#<3Waef!qy?28auUI3PcEi@p5 z;XP|F@oLF$+4wT+Xh|(#g{o3DASbLr5}?0Rc%uc~Paf!4$eVOF_b6^WIEdSjV#-d6 zt#Eu80jI5yD!qKqVrY)FA#-&=K*7mhxKhd{0d*;$cIr1x>?Y9Q|c$A`P~G!_PPeio0H^P4oAm zk$@kfOehG4FAgR{7cG<_t#pMfIBbn#30fRNz?dN<=Mf@r$V`QoBu3};T|nL?X9TAXJ~@_trXMK-^Vp=boi z2)kU$?p$FT_hZS#qh>|F!9{m`RJV(HYI=?!Xg1O)?83&~?)0u_H6#2Xdvf|{o!{T2 zMC*md!O<$6fBWX5-Fo2vuWzn&;%%3c=SPM$hdS*5HDJK?)1RHyMRy)VG{{~muk79}IxqpdG?c88 zg1eXs>nyyR0XHhh)m%PwPBV+WS$kMIBTgBvNkUJsu zMJ;`medS31sic8)(7n3@fvbofoj(3A|J8r>`RAW147yQ`tnyqv)8BpfZLiZ~hmTLr zPEVeh4mFz&5cYN^G(OWQ_!mz`;AkAR^Cc(fS2&~7y`uMzA)bmx$i*s}lI`$qE_i!b z&7U@8m@!wuzUI1Rj?~Guq!M3W%)kkxo?Ze%NPtZiNpj$mlNdAP(IH*qG&z1a|@unEykU(?#qz=PL;CgIx39i?{f+JfEldzTr_ZOJ>>nQ;pC2DTHZAX)Z~jc4 z9GoX}PyR@vNFk}G2O>tthXfW$Wh!~PS8^qiOIYDeXKd{t+vsk{rNedQl%9bSNiYLG zrcuvZRbv}O%4ChL*_Xl!|7@A_>(Rn5V%&mmkxH47;1P6o^PR!^i-loY4#Wx>{xrZm z_$@#y3Z+KVhwliz#0Xx&Qx+_nXEzg1RtKmP%8~9+z#V6vhw3ZUTAdKTKlSEzieN48 z@ScPXS|5O*!iwh*BM5{c1k&svH0+T3;E6~1Km&}KA1DQYaM4XVQrEiy6ZG`B=Env@ zDw{bxFYg_#+NJelssSZ(GVe$7xn_1y>=$j05b>2IZ-v7e$XCp0otBv;JR+yzaJNhq zpGXfJw4MS45gEEzIRZMh7z4>?3BZd5d%s<=DQ?Ylw+%zPZFj;84?FaXZgm# z{rx3p68>dZnI%E26N#jhx<=3UOU>QzYTD#SZ4M9kA+_cs#Z3?Wp`~PiP|BymY6}I~ zv^QI(OG>$O`?&1~j+#~ko55OVQHh2C$DuOvF3uhAV0k;UlQLiSpNI)+jyMd3M~83JYpsF@VI;GC&YYX|pT~M;uW({2~XwUy@A4 z)~O83W)f_xJ3SK@3IZXjIvT->1UEDkd6*QX4Hb+5{+o;$2U&TM zFrFL7QI+h`=(iOgf;iA0-5Q?y3x5k{`l2hXGQ?(_y zRGXo1H+tTwPa&eDS2$ZZ9u$qJB~L!y|ifo+LJAu${@g|Bot>LA+Lq=IHY1ZtBj+YO3hq?E;ws_KJ{ z6qA%I=JR3INS<`|alO`WxBvJ5<9{Lqh{HaF-K#wQMbXRw%z$yf^U&&S+87c>Dw8r* zcPTR^bMP+1jk1W7N%HIOz6NM{$VT&V6}P5duT{Zh6(@o=8p#-26rrL#1WPQouZRlV zr_b=YK20gQ2!Ns`$<#qJpdw>U%9&ATbeEYAr{l#zcPL+bb3ejvX8-T|Q;vsk7Z|!T zVyY%c-$8e>k-P5bY`>=73sRE)`NcHC^)mLHR6>QUu>zUPBedq;yHYYZ>fX`qlrs7n6yG$RwSOC9zpv=KlnJetx?7$XAN zFrBNb(S4%V;WisYKCI26AOdUn}Qa^bMaQnprakZh0OffS0E zGo6lHEx~esgF(l242Nx1u0k%B9iz42l(4tpe?dgJri9`}8Bva4(+8&m^VL0-%Jf_y zt4oKMW{2RYF4lMHs;a2|v0XoLOa$l;#`StpBNk&wyrilP3{VV1by`0kGQIskC?)tx z=!?uE>5z8jQ5q1@rh?fDxkvPl9glJ4T100CzGu4wQ(EBEW~0T(x$B1^(A?)g%hy%8 zJycQDk5I*3o%Y2{gda0(kAXZV>p2kE^-CZ5e4)R@ zLqa+~d(4>Zf~d^V!O8LQspsYbHMt)hpPrpPmJ7-$`$)ybtwZf*7 z!|Pr(OVe-O-hF%B{o&K(b!&OmChP7Za>=@3?Fz*LY?`vO)Y|wRD+pKAAl?-I#dq^H z&;}MLsV_zuO0r>bfJj13IWjqzp&yrK2@xm^jERB*)tHGmfnC{CQ@bSOzB{>W4{GJI z2}&f={8&??v-%+%VAt5^0`wNobZM^Fb*zv}n+z|=*Oq(R`U4ZEvKL-pwSN8j6%)e~ zxife3%{PCEzyOZA-J*aF63dE9$%h{u zUn*Dx)|xTTdNE4)*;TIGbR6>89(-Y&J zf?_NGW;dz2K{0q4R8iT%fS90sn*^%{?E=t1gPz9y@V91%dn5Uo@Omus%f;He{Vdvszrpg2^$X|IcD6gw9Yv<%uXeW*7cSfv z6SkdqWbNJSpY-O@|Rrb1@KAGIr12HCR%mAfnK=}wYaG3gfvlR1W(o`m=xaGD~2+#in2%t=d^qw zUV!Be=r7<;mq}oRPlbH>{P^VL@Tgkfd;R9^<>e(#wAv`}ac3h?G`)gtyhL7sdtaAy*i~W>;~EHs zyJN}y{~}CEEgo^eNR@3HYlP5r8XE=PX7CVq#uawd@)>^P#jl0>8i4a0rA@K<9BtQyb0$pXPs9qKm zJ2i~OkIaGJB%;tj&ez2AYnCBOF`~#I!4&{O5TtMgoO5$wm!kHY&D-+K;l=!|+48(; zhg^&}i3iq5wJz-yl0x+Hc(Wa3Yo!tzfmN!Ytl?~w1@56TREwQ~J_lnTj0g$-NJg|n zuO+-Hr#poY{-U!`mfouYZyb8qH#crtI=loeB=UBjRm@Q)>mT>3=Ga6G;`Bpx_-20_ zDLJ5oYReo}=dn}Ab0(3N{WM|p=FF^jA1)31NWQx=2}mC|nbJ@8UdXA6#4AdFGMNeUgRVvU zLZjA*fXJ`eeGu#;3K!vPF>TOqDNXoY66W1^N*n|QaSGGu4}KPM?+<>7XOaT@ldwKj z$(%RMTnV_9aR;#Xoid#Dx@m{!}i#WXOCMtgtv;aI`r)J`7h>D5{6FX6FZg$~Ax@g4l7P@4M@ z1ajbU_3>}69J(BFd>ml}Zl=5mVPzB1i4<9oa}+G0BTK^_tzqu~jBuF&Jdji9y6&o|rJoUZ!36N}i2L8@A3ZMZ*VC)=|Ny znW$se%{KAnMThajID(R^ZgW4ZMg`jpC!D zS`EJjg@nO_(F)3`sb_TR(P|eMmv@iZ0=#1EXLat6kI*`|!M$Y+BGmI=W^J(7p@KUt z39ev(yt{x%sN%o4I$ykcp!dPRanm22)!j4=c8k3Ua8@192xsdra&^Pd(#eBjvJw=a z9JrdHRl0<35Ju)&P!se?qV01PU4kxe-*#|1v>8xyMwo=ac;FWpXk>gBPf5pV$||ed zPvS)mwREX7v1T!xjppzoI%0!7V`>GgK}A&)QQr6slVXAE*EMuqw^dG- zXZuyiGX6aP#iuCfyPMW_dtBbkQB~1Zt z6DE2HUSm@j#Ra~FnW z;1H$@WEth0B@^f~rx0Q4 zLxBX`J`B$pD?PEe>Z2J8w>cywIq+d@TTB zkua!stJc1q%dU0b$z9lzR1c>NQ`;>sGY7ji9;O??+3)f#!U`4_g#YRq$fe2732^7j zWl#*`^w}Z2BP;3NJ@kVJjPi}Zx?9BPu_l@ItD7#g&l{5;YHr6-3M?>Qq@W=R%*ikq zl-oo5LF1pC5!~D1_;rktI&|=xDVCRAn3^IxG3Xm|oH*+m^_Bl8PO1)MzK&Ppo&{R$cmCJe);A92&zRvfs14M&qzV3`Q zNq+B9-JiKWe{X#bZz1CMh(aD-bmu-%Cv*7(sM^{3ZO{tCkXQM#|1hO}TdEZvTFXNg zXP2M~Qv9qdf!)Dq=rsCm=zMgFQaPy}NdpVTTs?PxV)i#e05l?RcA0?}Nh1S^Anl=o zl^p@uA6VK^Y$=a*gzhl{X`6i$S4;<54VxZy{AH*Y(HzW=r zMmS<6730obSrj+%3+C%4bk#^eLAR+ME_fO^bq96j#ZD0oo2(c@o47Uak z^Gd2d7E-ZAWL^Av)g975y->37pc2J`Mr*2KV=E?h#6WrucvbE(%-L?W8keDU1nlFH zlEaprH=C@TJ?gq*be&SEz#76xu;rBlJ}LbZy07cs@^#OkCA9l+cJ~Q3>$N!>{21vT5eaX}cq2 zL(9B0=Y*?SC-1a0r1Y!n23n+l__XG#s4eM;|K8y--`x!zTJsowv%YUnaBN%y%M^N+ znxvJghohVB_W+5UwU{LL~1a6vU0 zx8+o$atnKp#?hF@^yDZu#v4y<@8id3^+E)1J13hBQ!h|#G;jkgQo~Adye8%GOhghBL7s)-W+i!)1pvTnxk^@Ew$4E6@ zeu!j{Q#=roW^1_Vvwqu*FV#GGSau&vyfE*D@bDbV;J(LtXwJqYak`=5ZrK{n1ZhHW zV(2j#A_wIm>rn&r@zESE%+lt~nHxk-XaJnwJE^MH-*lN4(QNUyE9kQbw2Gb*=M)GPh-&|X;WjPsxVTi;`p-~Vd zuF@K6%BOwPQi_-xsI>`flz1~7A!t@s$f!0f`0h^@5_tBT~$+pw> z%jA1Qz2V)VcJXPWYEMz%ipIE7YQGo-PAcv=xQFnw!pk5I3;dD|S9MdatpG@`f7U_&vc$iI1 z;m9v!nc4C|X}hr7DLqMTF77&+#(BPf8&kTG^OFZ4$ux;hwRLN+w&v)n2hjF7wwKfn=2=lX?~f9aNDMXtvrEk zq>_<+>geUzTS*9kl;I6s=cc^P)a)Y6q*TiNF1ZJ#_UriOayt8vSa|05(J$@_<#qvX z9amnCPl7y8pdbOm#TpwQPf8dD=D-9^mY9LjmwnqEo5Ja!U^9M#fdcP6YL>VnxJ`|T z6HMeI!#Lin@Wj$DD2A#5v&2(UYFiy#7DVe5H;FyPVUr%(r^ zo=>uJHD1pgl+92FjO=nFg_U|u^~0C-dz&B^!--X3y#uO4;q}Y6;lO_SMY(#|=xRVL z49eB?w3Y6zdYcp;KyEx>LE`%D*pdHHSeN10$b;1|M3;W;b-7Y<{XReT!fHQ)Yu$VA^XhP#>LP0ZCV>rC zM+X@k3m#zFUlF;aoO%aLAJ%*l1xpVnQx{HJ<=QTi%*v5{V}GJ>xb{+>DdJ&?xv?gmOwyZ3 zeDdf3Body$kOw2XP^sL0z2G0f!ma|@{%m7Q89O( z#))grzw6Im-wl0Hb;93@ar`cnKt{rEJJ`#!oNkPr(@IM$T%N2(vL(!WPk1UeYW5Pm zx#_YE4IQzQ=pvA|2Bize0_g-=<`U)Oilv&|cyhQHr)QQX*BaHU`_48)b4>WiuO1#o zT(dydu$R!8Rqp-{=AArmmJjR2gL*-41V^p0;C=8-3_UB=VXs8*6pJ&Wz?O5eL@cK= zDMwoR|`#kC{owq61w+Ec=oh5etDH|ZFrcwfZx=za(2G)|>kE4&eYphQt zd;Va;xNqo97yH^E8YP>>oj7Ai8bQM1I=@r*BA$yZtx=A-)HIl0vNz0^pf^HJ`&h%P zX@|_>(s+8GZEcF$mBiUCzK`*O|6&>DU}RZP{h*=?!c&Q{K(4kMMFGOxDV3M~g4pBk zRd+j>=c?(usXlmHz>2M2Z$8)*JorIv+wLh3tq|M<;U5;&CE%q*jT*}ut}aG7WD;2y!riF6%VF_kqTB(dNzGQ+;_VulSDOy1rrX(c*+ zQPV~Pq^i&9QQ=U7ru50#M$oY}JyQh5Nr;cRmPWuKDl(A__`jfp=c!1{5%yFu6)e*K zwE)VE>Odn~LI5u#Z}e1ArI8FR5j2b3t;Q#R!w$>p!d}IsYp`dSS0citnVzD=#;8(x zptpKnpoQwO|cuj*ebU)Sjpbmco242hLNwA zi_MZHZQQ$vp#c@TorXLNm!+5!@JI?xXtf@ogS;O zC6yD^#Ulb#)i#w3QV-vq?YT?)}fjD9ua&PMVazCm5U zH|&ZSF$$BSxN;UeQ(O-RsZl>I7I6ZMt?h|c$Rq=yMBUf(%%DZY2=WSPa35BD1r0WS zvE)G-Anw=)`6(qh92N%;*Wc}?p2^BwxB+0k=z%#l?w9tkOp+neq$bC9Il0}saSi%0 z42BJNc_tkQWVsxlDYXi7yxH3E?$AAec?LWvRLb;WQRtuF4R#4bggI!0)ls`B-fCb!lx-%n7XLhv3037Cn{X9A;73~73pm0y` z9)=WJv@**wmR`e$ELyDvLf#pc$IqV~$%TQd7NU>(8x6nS`s0&>pc06tcYYm&$>xWW z#IKHr0znaKPL=m!th^^bA?J0ak_AVg+|NkTPv zc3eF(49UV%y9FWzCffj!=n{Zt@hC!@cX#A$g9aZBgz)l61Tprb4k@N*YFJ=gJyzYL zv4sv%FfW7=y)wB0cI2EXY-!USF#bsuT%X~p;BC&`sUyH>_0eo?ZjDQoW3i}|PS{C5 z>`w|IL*FdqoVydSdIq}WkE9dkZO5HRlqSMqP>yIV!(eKV&CBB3Xjn+34o~-`-qXnx zI7^HceS>OkiCEdhd-$Z}!baoB$NBkk9dvGeNO1|o_MKB&x9#+usBA2o{_Iix>0zY_ zEKBF?1>}Uup!99WX>=O6t{OT;%F%1aUXy7K%)Ny+NS=U)V)~#lB#bNc{W1y0N?}1U zg*7v8M(bUAm3xF-ykn*^>jZ#-fTVd0bJ3wjClu;S|5JL$mIoTt0qm`7mn8A)rfVb4(uiZ+PIVq5(MV@t7oAX#)Q z3??5D7-=$%nsL$6)jp1@YgK&=j_+>o)tUMZ9vZy!GxPCxXwzVL>_~#5D}D@4ddfo z9UpT~3z%lS9fHQIAv25p9G~D#f>l-wh>~$kM+#g~>RQMhHN$VhCR~^8=2RiHXZMdB zRQ%~>eS~9jH15I;y1y9YuAC1|RUJ``5OG9$7RZ)=&yaQ;e-yofT%i1cmJ*K*<4($L zLr#qv0z<&~oy5+nFX&};Hywg5sgKYh=7Bt+yen?2-su2lr`1c8?RAk5YyG$y8iO%3+f_~CoWNcqk+_o#CV4=Y(oD?--BlB_2^Ip ziYhE1SBhr7vXn3=Hz8zr7Q0v==#)@=&*_By<7n?Y(_l^Kf_&lo-yc0^ASek(n2*XN z4C1Kay@M$2y6CQ=x$sOg8Ge9~IPTBisx12uryNSWqm=pN%QmBE#Y2!{Dlo7_{!rYx zNq252lQ&9z_(|i*i>fEA?v+0N@VQ}|wt&!G0xID%p8o#_ICXA+fgHC_00000NkvXX Hu0mjfp5>)U literal 0 HcmV?d00001