From f6af059a0619a22fa5d1a660a70a97e57e382b65 Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Sat, 2 Nov 2024 03:16:16 -0400 Subject: [PATCH 01/45] job titles --- code/__HELPERS/game.dm | 5 +- code/controllers/subsystem/job.dm | 5 +- code/datums/datacore.dm | 10 +- code/game/machinery/announcement_system.dm | 15 +-- code/modules/client/preferences.dm | 28 ++++- code/modules/client/preferences_savefile.dm | 9 ++ code/modules/jobs/job_titles.dm | 109 ++++++++++++++++++ code/modules/jobs/job_types/_job.dm | 15 ++- code/modules/jobs/job_types/captain.dm | 5 +- .../modules/mob/dead/new_player/new_player.dm | 3 + tgstation.dme | 1 + 11 files changed, 189 insertions(+), 16 deletions(-) create mode 100644 code/modules/jobs/job_titles.dm diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index e177fa2860..cb68fe61fd 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -581,8 +581,11 @@ if((character.mind.assigned_role == "Cyborg") || (character.mind.assigned_role == character.mind.special_role)) return + var/displayed_rank = rank + if(character.client && character.client.prefs && character.client?.prefs?.alt_titles_preferences[rank]) + displayed_rank = character.client?.prefs?.alt_titles_preferences[rank] var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) - announcer.announce("ARRIVAL", character.real_name, rank, list()) //make the list empty to make it announce it in common + announcer.announce("ARRIVAL", character.real_name, displayed_rank, list()) //make the list empty to make it announce it in common /proc/lavaland_equipment_pressure_check(turf/T) . = FALSE diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index b8f5c68dee..af28f2edf3 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -464,7 +464,10 @@ SUBSYSTEM_DEF(job) else handle_auto_deadmin_roles(M.client, rank) - to_chat(M, "You are the [rank].") + var/display_rank = rank + if(M.client && M.client.prefs && M.client?.prefs?.alt_titles_preferences[rank]) + display_rank = M.client?.prefs?.alt_titles_preferences[rank] + to_chat(M, "You are the [display_rank].") if(job) to_chat(M, "As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this.") job.radio_help_message(M) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 8195666783..bb0f786fc5 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -138,12 +138,18 @@ var/static/list/show_directions = list(SOUTH, WEST) if(H.mind && (H.mind.assigned_role != H.mind.special_role)) var/assignment + var/displayed_rank if(H.mind.assigned_role) assignment = H.mind.assigned_role else if(H.job) assignment = H.job else assignment = "Unassigned" + if(C && C.prefs && C.prefs.alt_titles_preferences[assignment]) + assignment = C.prefs.alt_titles_preferences[assignment] + + if(assignment) + displayed_rank = C.prefs.alt_titles_preferences[assignment] var/static/record_id_num = 1001 var/id = num2hex(record_id_num++,6) @@ -166,7 +172,7 @@ var/datum/data/record/G = new() G.fields["id"] = id G.fields["name"] = H.real_name - G.fields["rank"] = assignment + G.fields["rank"] = displayed_rank G.fields["age"] = H.age G.fields["species"] = H.dna.species.name G.fields["fingerprint"] = md5(H.dna.uni_identity) @@ -213,7 +219,7 @@ var/datum/data/record/L = new() L.fields["id"] = md5("[H.real_name][H.mind.assigned_role]") //surely this should just be id, like the others? L.fields["name"] = H.real_name - L.fields["rank"] = H.mind.assigned_role + L.fields["rank"] = displayed_rank L.fields["age"] = H.age if(H.gender == MALE) G.fields["gender"] = "Male" diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index d06366c021..1919d424ee 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -17,9 +17,9 @@ GLOBAL_LIST_EMPTY(announcement_systems) circuit = /obj/item/circuitboard/machine/announcement_system var/obj/item/radio/headset/radio - var/arrival = "%PERSON has signed up as %RANK" + var/arrival = "%PERSON has signed up as %DISP_RANK (%RANK)" var/arrivalToggle = TRUE - var/newhead = "%PERSON, %RANK, is the department head." + var/newhead = "%PERSON, %DISP_RANK (%RANK), is the department head." var/newheadToggle = TRUE var/cryostorage = "%PERSON, %RANK, has been moved into cryogenic storage." // this shouldnt be changed @@ -70,23 +70,24 @@ GLOBAL_LIST_EMPTY(announcement_systems) else return ..() -/obj/machinery/announcement_system/proc/CompileText(str, user, rank) //replaces user-given variables with actual thingies. +/obj/machinery/announcement_system/proc/CompileText(str, user, rank, displayed_rank) //replaces user-given variables with actual thingies. str = replacetext(str, "%PERSON", "[user]") str = replacetext(str, "%RANK", "[rank]") + str = replacetext(str, "%DISP_RANK", "[displayed_rank]") return str -/obj/machinery/announcement_system/proc/announce(message_type, user, rank, list/channels) +/obj/machinery/announcement_system/proc/announce(message_type, user, rank, displayed_rank, list/channels) if(!is_operational()) return var/message if(message_type == "ARRIVAL" && arrivalToggle) - message = CompileText(arrival, user, rank) + message = CompileText(arrival, user, rank, displayed_rank) else if(message_type == "NEWHEAD" && newheadToggle) - message = CompileText(newhead, user, rank) + message = CompileText(newhead, user, rank, displayed_rank) else if(message_type == "CRYOSTORAGE") - message = CompileText(cryostorage, user, rank) + message = CompileText(cryostorage, user, rank, displayed_rank) else if(message_type == "ARRIVALS_BROKEN") message = "The arrivals shuttle has been damaged. Docking for repairs..." diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ddf2d71cec..2f1234f46d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -101,6 +101,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/pda_style = MONO var/pda_color = "#808000" var/pda_skin = PDA_SKIN_ALT + var/list/alt_titles_preferences = list() var/uses_glasses_colour = 0 @@ -1449,6 +1450,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) HTML += "
UvoA93h zl4`1^F(AHUe53{}ZqLH~G)I~Iq|(3j>ZYHDOf-FMIzG7;xs$pVdJJfNbG&6C4k#&) 4vd^kEb$6doWV*mPYtG d^& zQ3nn9?cO^OV1|}NSU|qWRJB0h@~L-#4R7fAv-~Dq!=7D#>ne;eKaj*ytAdQf?#3c& z-;-aPtfHLIX|3Bt9Lr?89o0wMQY^}@rcfodvWDe1`xl{V<~R`GcHw;MRsYTLp!$9v z8eoCQg?xXbv=WavsB`q$i q7_)Ys7a{N62HUS|fmsX-Sx}*TE#z*U5I)v{_honX%|(OwBkDdO%5W4kZ?rSN zXG$<32XlQJ<)LN=0A5gW$+xB95}HbkPGA5nlLHqF5uv0!cRD%pmTkDSS-;cm+wqXj z7PeNgwJ&6mqISBXObCUtdBNGk8&?CiSR~g7k?GsVq~E+A{~8U6$MW(WnW&q|J(4@{ z3Vn4h2*++k{218Mo~tdIN4|XCl0a(wCBzQRw)<$q*&Gkjuh_Ui_M=6K*dv-sQV5M{ z>@#P)`a)UhYnOWe&>8n3o}e3OXR3^y47=7SoHuPOAo87S(_w}GRE0HBrJMr*WX)=s zSIId*UFbs5=JU7Py^7pVv7y^eX7}o9bik_b7QRVqpOHe!BiG%wmU*F$>S*WFCTYkx z6AuS&Z1f-ZHHmAKeT(WB*_2Sv9NDbPBeug5?};B4(VHkrm;oS*qhcWdF!$bQ=i{R| zMb+kg)?>cOwAdfYQ=9?boER_o;7KJmz%cPSs3)^AcKMq^pSe9=9?d9^!};EL#wi z426RU8 *D1di$dAcKL{n1vVc~4M6G!_IEDO>B#m^}qqe1^I_+tAc<-)`TS-(rt| z0JVzpVcEFy62Vx4-=&9xJmU}VJeem}p3A#_)Piaf7aA%&LxQK+`r>U@RTEC`isAmP zKqp?NDKYGCv~%BluP{Lef4AI!q2genItztfG5arwpqzo0_M7JC}z$n?~aF(a+Qhu-vd3vir(KtV7OU~Hx zkBk3EX)re&(swi_alaai1JF#{0OhvR&;PN9=eh9lW;|(BAl3uGpibSh!L A|ufc zVdR?Boef3_3dD_@DFcb^TugZ}6avDdIfrp9ri+vilVBDSkz?X@vq-CIVSTh4C0<5( zheX*S6t@VTBdQQu+;D?;K`Wt>_Wi_|$C8RKEOzE)vB-iS?{x2~&ApFgl0tBQmEO5^ znj&*Z?-&c$e^ %$oK`nLDM*{>(&aozy=*gzFV@eSwgH@AS`=@^Zl_PmhUboWz+e><59B zJk#u42T>Du@N%ix>!EE6XUc)Xd6gdILIdbi-TPWOwA|rivaAn2STeyZrBRYe-#8`5 zf5w@UV0AgbjASqN>@ca6GH>6dJF`xhz}@K-rIHZHc>47~E&eH>Rq{gXmAcXtjE|LV z_zs$`hSy61Qyqx#>0$bwNRA&q`545Ff-GVr6^m;_ZwuwNThMSER!%hnIeqv$kTtui z1v&)?HVs1wpZNVjS9pm9b-r$Ffd75MTbl^nCVn3yrwF{Rwu%vE|CC=WXY~S#0l_Sl z_NHffk?U38IV5usc#Eu6C8?gEM`CE}w*z*Bi1w7Z^d(aXmiA$GwEPcli1p>IrGW=4 zx;-whR8q+3T15Vv)OM+h;`#5}T2&vSIV?EeX{iMuL$1g1rmpTU#5frJde=;!K>wJ4 zsA(A@^wV+8Lilo8ig-P_t#0^*^60l-KwdG_nstE%%d2d|2o+dQJmw+_PW_Oq`ZA}+ zn%){5+c`y+pMEiF%YUdcbfAx;#_(^7oFUcyEYJ23G#G!nu}tB&zG72KYz0`+&WDp}*V@Art)fn<2?9d7ral0ns^fjComG;n~% zbVp7!PJ{OvS#pJjL!g>$p>2m+wLBzKLIAuLg>!@r0;C^w_C4fKENwKU#oq3mE1JdQ z(k7}v8v|5&$fOx@sRmT!a1w_<`` agXawPaM-Ai mDH3rxi3A#+VhCVxL@OeKG&51p^dbD?cDp-^3Y`9?OHYr`U*h-AX_U!^ zu`ZS+U9wHBalfuYNZgYsM%&4!pCn+0l!@VWs(>Lq;>S$Pl+v!_KO_v>f`iLaZ#@hZ zz5ZPjPoDgB`snj2YnO`ve=yY;B_70+@dq5s9 AlbEtxzc5L=kKJ7sJT>3oO-1+-l^qKz1B T4ZKq|JVQVaq@}Waqt#N zDlIPBJ^R;2lZ7>*U=IJQ;3b$I9@8TP(N&ahPJarNJ$$+`mH6%cDO5jF_H~Z6_JB+{ z%Xu*Aazb3d(X1ZF>C06+Bw!t{-g}>Uf8&0#uI;fQ%0}3&{M0YShjELJR74+LgCl=# z(EG7E&0wD>%(@OiJn^0p653OkT~nv0q`M&fPcdwNTD!zo4PIV~DvRO`^cms VZ935s{jj9<}NKhwAVCWnl-Wp-y2#D^zmWl5$zf_zel v8b#ThmJw0{X?A#;=})884(2 z#(9VOQb!DE0|W5L4%1#_bAwE>9V;c+^$p4f0tu*e;y?ykjIxJOX5 h1;PE^-$`da+C0p9*cRgQ}Q5#pf5eZ zzzd7v^IxHP=8sYo>{@5OLHx-U3wsHf6Dw6CQRyh-AfL>%`Pm`X|GxK~xifex9|6K1 zM>wdi(z~+ waj a)9y0cTXUrBZOMr&VBg&yKQ9pocCp!%U_Cl_ zoChLHqXw;ca^YKg&fV}Lp=9e8)&K0w;5vW3^;OU&TVrKukCx?>Nbq9jyeySGf4Q~8 zbE(MM0N@5B=p`i4yxX2W0Nb0iL$8h*#QqxfP7wfB(1hydo`ldv+7DjUH~+(0?{=an zW57^SGpl^nG9G_@IiCEyUmNU^M O~(8Bc6*#W?I$Gljf*`51^7Bm%Cv_* zL8MKP`~^_)E-2TBGYQVgm+qn1I8R5(<4+z;1jY$YIMfY{jD#g8lV)XSyFc7GSDGF7 zf;jrCndSHJ(@{lgp?Jy7rN?-|?*UU8e|n1X98A*@e2dmFB-MHHCLzEFGJ$eF{u{*u zf}~fx>2&vi^pN7*EK4(17%E$6D~CG4YXbzUAP(1XHkjzuFehv}ur#8Jra7&Ya@nO1 zmjfdI6@~jPe;wjyXm029!ZabFCj-a=JGUJqeSzuqJs)kK+08>RjjCW<$#VHYz;5}W z)-icSgTe(#SKc_Yva(uS?vB3l@sZU1HXJgJuW8N81nKxflu+ub8YR&taLr`bdr9F@ zi#FrGAaTg_O_2)ZQ|g8yZ=4tRQpx4TOW~{8Bn`FC-UYlL9i9kJXJb@*AMmpsOCI0$ zwnyFVOdvP(b(*2G|Lr~qO|rQgvrCG6C;Wy(-4`WXQ6anqwT>QF?FBU6_KAsR3$mC? zc&@{TF^}X^!ovgZ)~oPv EpBXc-Vmdid1e$IkvJl9T_ z9vn8gi1!;r1j8#PPX3N;+h84c|NH~7UKT$kbt-fhm?0JH-7L=hOZZs=UEnzkl|2rW z!oGhAxGYER$N=i_N9l9Y)`9~()5A41xeZ+b=t K($R3` zOKKJ#=3>3Nf{WFB40~Yg%OCgM(3Cz64gh+R82hLq@r@f#=i{d16NQB)=fJZCvoXU243kZgOLxohY}HE|ohc+0&H8}de){~91W=Q{W(OBVmN zOSJu}v7!IJZSqVUg#3)g$>)WIy&ASgTIT ^HT&Z6Il4~Uk#x9 z$Cnz%rFJRncH`!pQk}fQ!busj5T+3_(Er|&9yP@Z5z8N$&UCKs4A)V}4gSFvW!ImU zS}#Rah~_y6_In7J`gy7!9RQx``f3!1SgK }UuAJZjNMprc4LlQM`3areTau1NM*DCQ6&Au0=Dsh>a~MjX3G z&$!BCsN^hK2PI6mgb76_OyKhr5l90~p6igo;)TUNG$`rgAtYMRA0!=vX7O-yoW!8G z))q*HKp9~RlA9q3u0A 7RRC;E_+ zh)?M6|9G++qM0c!^!v!fP@;vC*r3cecR>l4qk84}cf9+T@baP7$U($NpQF8$!M(z^ z12(jDTPy!JRysETm1dS#k`(y%$c5yLxPn^HyW6GF0Ib|KvQMd)M!)Y%22tcy(p2JT zOK;`3XUp_GAJi+t?eNbp^HZ=UZncK)Kyh6v=R#B&%WXzwpeZ=vlYvH6 T{sp|~uJsIk9l6Eo zvefX+=VnRFdEr31B79JywlOfb`6L<#U_-=eW-_vgk>#$%DE%#6I&;u9zM-vCmalX< z`rYeRWkB)o{OhkxMBDDrEHeUK4AqV0cWhpZ*$7vF?`{4f0>W+!%20=g5xt-fDrZe0 zBGDZ*uef#PhLx?f3ti}!L6DLZ9Us`0K>-GMeH&Z2_UEf|t!`}y|LvWTcM%hRBZzLl zr89mfy!V (fBI{6GTUlpI+JdUniCug0&+D?d$JwXa*F~YHZK3DpJe)L zCf7m>2F&rSuZy}UKa9`ablvPh@?2q`LgpRcCX@X$$I;mq2-i9N@2B~ )=odC8d^XP{=Hz!%o ieZ(lr#QR6qgA%TOS8|HLfeyDTp`Hs}r05dc5z(694W-DZN@+>&s zX~oG|V9-xWfl9(9>x~E2;Z#h5aM14Z_wNHu5?_!CcTn&&Q+mY&5hG$?i1!UrIIC{h zQ)a9!i6lku3{*FeR8Il}3!O@CGOZeM>vcqN3zh#$?Q^Z?OxW=s_}*M3k#`fp%7VQa zdW8NJS8Y8Nf;W&W|Gq!Dsp7W`Na`?G3vQ_8y1BaTpYHA&zUsT1gqQ$5*@*bwwYy6Z z${!%0uSsa6^K#8v6+n@Zk?YjMrGE@)%VR+_HE=sef9yCq2$m(r%Y8YE1N`(5_pQFf zguPV!dhEj~4Q~PAxpo8ElrO=<_%|0! }-7=+v60Wrlo2} zve7{kS9h=h;-0}lwJ75a#<(ZfC{&}0Xq)<;f67osrC;#A@}`m2hD{WeL2)a0ZEL)e z`AG4aZLq@|yV?7-N5KexMA&{iM2c9@ZeoF`XIp?h2;dwVM`uE^h!=!?OYJd8^#B$@ zkLEun6YxKxZamnfI0cTMoVvB2ZZH$d|BR( aOr*=#jC_8-Z`UG)CMElC}_lLR^0#izWg^tev?F0iS_%Yc~ zuP3Ura)xyV*}!RVtwj?IxN}3 q=Z0uvw45LaV|I^E5k=H@Eh`J+hZKigS}sQD=L-fYPR#2EG@Qy>Eh zx0J`~oGgpm=g9v4lam&LmG}rPy+-hTqH66!`W66SF!%g^jccMV{q+ouwoX16_dCI< zUw+fS!c+|Ih}1PbAdbtkBASecxz$#~Cr4&9sv}-)902MZ=lf`%W3+1AaFz77cl2iP zJm_RbXyPmrW Kfz36e(p1d7b^VS;~$FHYW z91K@(k-124NnmXD1+Z|!WEmMMS#!NY?-*P(cf*Tcw2iSX1F90Q+gNOtJ7Xj`m5bC> zM%#{Luoy&Kr#XWF|M-=@KXi+0mSy#wU+P349B(Uns1#;?eE$XUf?(nT0WjUL^(>@p zh^F&|f>s;M*FR4lzWQmTRwEFKGErp?W@ly&@dEoj1FEZZIbLG{*_5 !1=UcEz+O$49_mFSl8cEx%-lAAb|TYH?~ zv(Q;B_&@Po5iZu7^A2_YBpbS6SmaHb%$g?>j*5LId>PHQRPk7Zau9gN?_yCU{Pgmr z@YDS@%cR}d`iCizfFolNm|b>jASf>Tj3Xg6_4D64N6)IYXQU&)tOcjX%<4qnAomsD z0Hq`14@)R`=dj8?mH nt2y+X35{`u|6__s z&nssb=xdB{k?O$)<&lOyfX8~Te(ItXxH@y&m$jJ-QMkyV1CJh?IIzPJY?+br5FlO! zfJS7zJu`~q-zxPO_SU%Blq6iA5{S8$tQdSCWwm~wIl$O_$^Wn#KzA(FwHx6mK7+43 zwf5DW9)8VRc=m29R*?vjOZ_4Y`*vb{P1f~HHzES zPnOkVgG^nS?2BJLS~*9UXCUtrq{s#%iCMk`5mU#8Yg=OD yerBjL$9uFL&cAVuasomXQFF#Z)y-{+ZujOYyFtVl#rL0E?kniLh zX+nBdH0AT>unG8K%R)fF#XtEPhhFj**r)LtEI>JG2h076|K}>U9&^M3!Nxsnj2Np& zi0vsDX=3?c8#x#uFE60Z`;`6ha6Qv%13^g^Aw>{3FrvfG_J;cwqCq TWp!$AY z20x#<`o(nWc4!CotHFt1w&ue~mkGvN2|~6x-EZ%yTIW5dy*u(p oMUK=V?P82Mg;s5Uy6Q?(89ZHG?t{eiPdFII%@!b9l`GQ9 z?G60b;JShW=usokeZ2>n70h|~Wmt2=(F~pt+D$uu21W WzCn3;<*nA`=U?-$Rm48};s9a8H#~poEBpRaAojERH z!p7MR6_pN5XYtpJu#jxrR+?s_boVCJt|$T{;jVtA2>sE^D?4CadCjuM`Q^B8_$SRd z9E@18n2K?gc%*4L%vX+n4!|HM&oje@tqqL#ORmy>DKF=J)Se41dnnSTGWJ5E-^8IO z1_RCZ;}x~Ukq!qZA1tW6Ag?KZh|xuVAg;U1JwXrQJ;RvhT4y3y*5z#x-gi&W$)B&N zl&|RH3oeaS-^X3&Dkv;a-~qIcCf$iooxOGE*KxeGCMGnPc9<-FhBUNUbi9(Tvkbaw z_2Rl0-_jU=vX(0hB5o>-X<_q~x|jeD%I~LWTtc;%E;&|DT9i^)w?DpiGCc@6w2A?y zna@182?3RP&ECn6x*)8<_LB5;WjG*-Yic5X+DYnELNk#1hB%KX84=zboPN6=wO!X^ z%N`4AbY32Kl(r|b q{QGe`aR*O)K7^QOafWE zI7SXW1)1-D0cD-6<#wL7lLGsHD`*JlBs*q59?#(e2`N4A3$-`31pVGlyEj817{!F7 zz=RhO{Kw>0qyPA`qc@QyV7Nu~Cz{*E*wstC4x>Eqf (9dWwx#UNroyW>=11 z`K4g+qPObCwMb-<&3Nq{Y?~oFGiG=CA@BWDTF0uSWAhFX8P%ZE3@=kCSSz%lIHI#& zofLe`K$HZ|V+oQ=LE;Ph6O#Vr#&3$y-4G9Tc!0?r%-_njKd+=m1pgnb$#6{;e^xuj z{0o!BmXMb`c F)?y7qRiVMd3=d%BRfUlZuKmYxQ z7kTfysD^`5T`w2?OM$E%8UxU%FTMh)#m)(i{XC??>xb@CZ<@v3*+zli^#K62Ja=zQ z%#Am1X*u7XWZ~u6 7k6<`ZymGqTWa?E0H2v&{tJ z9|&{u{bq5NdCr~jQ1V{-K9_;OX#opY*LWf8J_F~t3}yo82FRlH8agtD;=##dTxYZ6 zV4B&b3_x+AcI~CL{PC2hqRpMhd&@L0)x~J`rJy!|sCB~a^WUOyE%&1Zp*(99nYefr zo&N~}dj~5kE6547F`#3RDO9bML~8@1!xwih58Q&T0Y*-}I5@&7Lo;K@tqEY?tv-*r z!7@P;=zn9-v~ufullOUn(e)dBauSAjXg7VG-G(tAb(^_9<;KDIC3U({8*nP!ZKGI; z+raO))c%s{K{;qIP0#kJcnIQNxKQ4XIrZLq+g@DrLhcU`=Lo^N0{l&bviWST4m)Qv z-7EiZ7b~|0=b{W}|6jOM9 z_CCS**2={z1JPk55LHpdzd#(d>djzTYz=R%^5d?{oyh8~ZYFl`ON|?J?J2###&;aZ z-MvNaczU>f)9Uw8j{vVn8gO=5Q wy zB`(CpfL6&FfMhYxx1->BH_04^Zl04-DG?%ns#sy3frYZ2j>Ze+N%QMNsZzU#!dtX4 z%Ygiwi(((^6AZL>Bx6_ckfae32==l@O;`#$A|9L>MpicW-SvoSnSHfm(B#$KPwYO( z4cA|>?9sZ~l*iG|(u8+OOpME4B>Y@-6cXimUy%Uc2psI}BI4+t IL)o&uNSn zbp`KuE>L>7itrikES|r*1?;6cX@{5({ yN&ByVaaWb5V*Fuf{yJ_g3qJr74d+=IR|?cp}qY6I9K$5iP&l<4hoxL_cL z;VOwh!(Y+|S@vj6E3BCOPM ?aWmI4~no z3xyc*7gEg6xtJZM=0BLcc3qJfyQw-}@A<(2w=FEf{yq^mkyyYhBwI+E*g&r49JfhJ z+OiypHw6kH%{FM7q;GMT#LJnfG8RK>-dJ-8YyR{nhLYiERBFrv!dLPX4tRVeRDe0= zb5=5P&or48EpFc3_t-Se1npH{ccUzl*)^Gk?8Z?5MU74PZuw4oVXn(T{memL$`!0E zg8G}@`|e>>vB(v@7913d?lSylqvHG*>-I;h2Ib(=glsp?TPMKXTwqjbV{bIGKTmmw z*EbTkZXcGPxA@oWZqAnCPk`vFOa>%*h6(q&n>tx~2^TNH*Zo3+9M-J}JRno86Pf#} zMi|DWscd+s#ZNJmXe{^l{nLN6paAZd&rWxF+YD4xgUU!;Z@wBhU ?wuA*oB`{Ib%AJgc1{r!>N_ZLPyz=Knwv_dD^H8QES9HbA{2-PX1C@jw1g zAN|UbUk`2D>Ol{U6E+;n5qUm^_rEkGBmVit#9aN4|Dzls&k)T-3I9Dk6u+pG9r$mq zTO$Ijua!1pk;v1~DcmA@3H(Q8(jd`q`>_mtt-cof$!hZ~PpwXj{O}s3*nHYZK4A8N z(Bg)|e4!jf oT+G#bzYWS zBJ9GTQK#~-vWQjHzSuKHJX%Y+b2^8uT(Ed7#k5K2o~wr=2_8rvA$XuUthW6wB;b#I z;;8L!1u?xV8rHjF$hVTQ?tOENi5;|kIX-=>3U;A?#!Ij9(-qHtYwBh9e7*NR8^VTW z?SPTrwz;p}>{{%)*4ES8i%uiqV$-uTHa52K``?-diU7*DOL$jdaV8s<+}f`fmLd0r zH*bDI;8vTEbnP-5S9162T%Ch8gv6HjK7C fDO-FIs!qfdgZ z5`TB*=>Vu2=_A?0a_{yy+RTfkux1m(gj~3kbxc>}H|7ow 4>y)e8;>!Txjjd`bL>mj{o>B96)wt@wzR}IVzf@OKYaW#4NMFF49!n zGaFPn>a&8snBs@N^$isbW2uL022*dZ{qc4kymhs+!{p%Lkd%~M?`MGUrV98wcp0|( zXDo6n&9*JER~Kmc#6yY-wDQSeBA}1>^{FH%V#@ME7Zgcg+`0kt=rhpVf&LQiI%zwl zb=w2xaC;Cw{`1Nj17JkqgAbtIcV#Y4ENBQce>zqNIy}cDIK8|mW^5tXU>C$hzS7Sq zX!>J3z2WEA+2GDema=u7Uu5)%I?T}UaRmiSCR#e$Jey_knd@B52caJ=W-E&yn)g`i z5pC>%1+o_Y88oTWLs+5#za;0_zxMTUHFs$r{<8$))PO@@178xs3|36Y0qUgI?QS}J zI#ke^k^*!ppHT|gPYJ6^!=hw{$a4U|2sx+?_~Lp_rSD=tq3;aRww9kaBBo4u{^m3% zh`V;;yW=-jVC~r>0|`T&~3LBy|`IV1{I|GQRkg)~C@ax`(B62X`6*pmc zA8=93@AuWaq0HeaIYL5;N%bHBWo>Qf*VFCn$3Z6!&J$F$OL|a#3V_^oba-5_AAPV+ z4wUJlSbGZBK>BBl6Xe)W549sHNYoNS0SOc_o#>+_Ch`Zij00|TlEEKrBf6{@Bp3eC z%e*x>LhVmi{xL7Ek7jRQabfwSvLJWj0fO3EO8oecw-(_niLyVy0GRpj5j32;Ki;|8 z*WBWJo^~>F2FFw&Tvp_|k(#>t>$)U}{}eIO(GWu}B {^8j0ZRh&~n-4 U+Al`50}O7TD~~l58$c|pG!S{)%7C`qqmshl zT4fJN?I3}9aV&wzkQ-&tjM^&lvB{rR*$uBcKd ^m~SyLwY|ZkGvrlzt7g4x;n`)XL2FG;r-GlY$EF3> zx2ue9UJM!n61yjxLUOLZUnz@-L_XMJJ{z8|Wj@1my?@78kV= L7A^FN89BK z>Qh$4dH2BeIqu{v>k_|#3tf7j$M*b^Sl9+j&Oib^G) re0nkc&5;g0c?f#dDu_c5hSM?p`BxtG%#jyZEIEB@24ET zY}Y@)r@TN*fpXD@(7r;BjcO;L%de5<*%F`|M%qsqy%AC7?$bK&Z02&C_Co=df9LG$ z)zXAN3;5zpph-3g7s7n*%?$={u?BNPq5 cfQ%isPcbk&KGAN^f5I zA6Z55u@^cH;zf^VG2E<;XXA#fCs! v@6st0=^oe;|>e>7t4MFU<9S|31vYe*OA|$LM@MEiE-*h$spR<_wrh!9~A#!Pw;R zywy(#R+jicSUvYxJbi;Z H374hTGA4`NnT8*Z^(&9U6X&?Vf$u zF^;lcl@B1Vm+&axQhI(Dq76>wg~+X5Rpe>d5Fz`I8S {vg}>E0_xO{ z3* (Brqa7OI{7sz-^D_;Fy5Jx;Rw4dd(Q-X}JnPL>DnW^Y2w zodu9cprfju0*lF~-PyI(^N+U#-xmuU@e1S7iP$ulUP;KpM_6QB-23l8eo#3gWBGS@ zv`s-hDg4a{Hi9#JyN0ym?q8m1& `yb-_i@x}W4^93Bx*yVZO5=thrN}O`~r}MpxT4H-46Qgdm)1t8O#{<32 z>%EZ-rLIrEJcUYjwBn0jXaAfxBN&Oq=s3Gy7W!aoCk{hJo*I+Tu>7*XP@LP~Lk}Hf z$}35too;;)Pu$*CzPr2I7)WeAJ3m*77`8iGT8}DecV`M{T>+}Mb4{I|pqlok97&-6 zL_~QZ2P`XF>kwWdT*Zs_-gSM}&<6lpT-P6vuYQqD8CB}bV23$g3_$MbJ(~CNV}Q6! z;@8Xw^Vdf`0vw-64$!?$SF;-%8#x1M(y2|;Wa8!vDdA0mAUGCN# &VT3z3vz#t`>jnCVBiC2D_(CAV?YX zfiBm)wOt|{$X0ztjGl}UTsQ!hk|NH2-j3^s2h3w?^_+iVnUJ~&o84xp55!$GDkY{$ zHY5!4f2{62S7E(TRh~C>WtJ?V|B3#t6DdBTDOO6%o5P@lfd3}qm5ATgEG(U2hpGj= zmb>u8Jv(}j!#%?n@t75`&`AK3DyRHUf>$Ri#$*@ca3#u! rAUBn(i28h*Em(CWjZ*oYC9ET*c@KE?CSonC}-H zKM_nv+GwIp^%a-f(}sSQCx<0S-tHW=oWiaAfv@w|@--|&&*pfI7G~`5)WEHuo84Kd zeUuBk&oVR2_=1T%Uhdi!Csmrq?h7CjD|?2E*?uPrqzx0Plt?{P2OIvbdRHcZ2>$d{ zKKa^b%85`KBv}ms|1EcjbET($IX(V)O{I9O3lB>Pbzt{9@<0+Au*@yl*||u6GuDj0 zj-+w{lxMpX%;%q|XBdNkyR&Y>!PP3)^^S<0NoT1;5H018%y^*-75qxAme=t6!zvv% zrZ$cVWEs(cb|{>1muH4N3+R}K1{=;-YGQs&`@VY7gCA fiQaTq;>&T31qkU}6mtN*~_@_28xz6|HvIVf2-AEoyX9 zAGTL7V8%_{N|zfFd@rTZPT#`9lmJ|KPt8WeAq0TMOX?DpPv4-AF#3+1In#CRQkfRn z?8X~gPfvH{>ACL`QjeGD08~R`ZiB>iwBmJaE9;WC!_nveQ1VjvhyM_l3S8X)5wKlM z^o)#x2`s@-Sy{=+IiT{!ooR|;m+`?+j@D=RjboirZ%v5Y zZ{vS$C{>-dDH6Xz1wZ zA>u|A 6is$|5b#PCU%0lenI|NgNsK*Dv`un4p@VDK zM+w=1ejEWDClSTK`zOg2>E{ms^r2lBc_J|F><9cV)?X}4cb=Y@O*Ysxw{`UWoJk|I z;aa|>ChtQY>Cfgr8w&5l_1o+t!_yD3RX=+U)O3&>(o6bYuy&oX&&M%bFb$(v@}qHm z8^)})T@tSi%t*XYJ1=rY?@}HnZJ*)^k*lmC#qh)o)g*yNvR7mTeSJ+De dG=ePvJ_QM2~o?(Xic0TSGu1cG~z1lIsT zc5w|FBzOoANYLQ!t|7PtcY-?$dnfna_us9rzO9;?p>~Je?m4Hs&(lx$(VlKJ4n=r{ z{12d7s&{_#mi#TqWD7a`?SWYbW^ki}4rj|pFTNeQ4>U*-Uz!;gPLOBZmNu;^GRjZs zwImqd9XIMSBG#Q>?G^%^ifHA>LE{fZEDCG$QT~OSi jwH7wEP zS4#%~%jgC(G}9I^`q|tJbu@UAGi;Xtl$LjQfMw=U_CT>J3$( zdJt1uXTdH)l&qr6ezfH)@&}IRReFXBRURT)gsOe(@0FU!1ksfhEkVKg3gJ_LG%_ Y> z0ikMr6-Pom?(XxW*#!!;Lr-BYcnJluGqT7U#4Iq?F2U7o)W=^%U(N>*lcld~9O!Ss zr=g$*06FNb*kAzQfDYsn1)GoH9+;(Au-(k7=rVY>i{ Wlm2Z8BV9Qe!Rksx0eZ(+RW@l%Q zGUP<0nVaQz%l-L w9vp!u?;W-)(|i6Pm%|f4_CA_CGjVC=UGPKT09U z6kM0a{9h&?OxcPE_{SZLfU`Rxo?_B-Ype|L{JRmZnZW}b79U7&D}NtF1v613eHo01 ze8%iM6M3!=G%#g+(Q9?ahSFcFeq(-L=R}G=){zU@wVKntvaQ7AJ_l~Y;1&$<=gMRR z@&iQ(^2n8}cN2NidE`t!RCjP6%eXCzF!WETce f 4r&T9FZe#VaW1+GP->{Cd#1NSm- g%V?+{_M+;TY7^2tb|!&i{S)r9dh$S@M#p z!rXcC#?*MViMl@_{V9^}g)jd?qx;wIH=+SX%uJ-g>m$<^jIunho}mz>uvvbYu$DD? zXZ%Q<%K3WZnq&WBWV&}|1+GjPcq*;fVPBIL!rwPcC+eB{0k2S0#@B&RuDlj!YjA-W z09XRf1i~}r@JXj5q7-E?Hzwpb2*iF`qbz*bi8B``0f6}rJJ|IuE8mAf?1xn8{QP_k ztk?$zM@BXetgWrp6!EvBq $O9&q1TQhUYzoT`+gD%d`k+)8c zj>_(V+uO6vXzDv8XnJ~j<_Z#iM9_=2;Bu2W%f6o?w;ZIm9M^pj5pGUcEv4wXgK$Op za-GS48WX)aRHnRfVy1@}qXD|bS^_PuDJU{A^9@c3{0-7SWQKB&eJon)^&a?~3D% o!|pLb)6!;B#GFmiZTpXE202hbJ*H9LwS2HY^jCxBcZ3O%R}N2 zn^Ea{)^_eYq1jnu6$1aG>W{1qb*P`#IL=&K633m>A$IUx_B-v*65%QsU4NhZu$&BW z<5?aKK^h- #HR> zs&V de)45T3~*{f*VmSgz&!3vH3*odR~b?m2z{jZX^nfsY-OQB9HmS zyds0s)5#hT%IGg0wub8*a|2D+a6rh$QWjlh_<*mR&SE|UCHcYQ?Q)~Qm#n%#13y p*=2h*kUw gNtY@ag;A z6!-{g-JgyJHJs9pZ{OA$vPhehCRtrh0$e)uW{1 ;ZtXjnCNN|+Xp=?SY!LA z8NOqSkM7VF@n(VIY_-zC(oZq95!!Cw)L+ZCG(1Y44m4(+=A7b4J^BK7mzxO4z_`Yp z{&}+ I!8O2nXwP2d}Z38+* zY9x-$iHdr9#7ra`UqU)>u>VwS=f{w_t#u+ywFmk$zX >Wz!V5I#N*T&0Vn2ph t88hRNs?2s7v|S z?{uj=^d 8p1 zV3cMhR>Qn0c7Lip)ZA=aEtUW7f-mvYr!Xra0|8Ivn^!EjCOSHuf9-8;8MwHxBFUV( zt~o}U?kPna5;uuh-Tof0v<-lII^tE3Fs#eb|BwIHJG#+gp{Gi2thI$!HP>$hF_I zNdAEI3Fi8z730Zo13#H1pQuZtYqs13#S?5{qM?CZ U{L1$ZVUWEwS2Z _{c z3idQ>&cCZHTM9gG3oiK?Bni#{giiVeaMbMKaGHcf6R}|)Cj{+$x}C{Ha@)*cq7eT^ zk`90 O1QYj~EX(!a5{Y5m>H>r~B9 M3$B7_5R$6{PTk z7grLb{Aee{9s~RP`)hQ{;FNK&ML+=A_r^0nh(1~fpiVcTfhUL8mAnh~zP^ncH_0NI zG+UZf%c0p94zZr*&0?;LYqWfJxKKxw_qr6H<_`@V;$EA5XK>i_H=HS=gmGO3LyDwA zL>(Bu+mqgX+2MeBmryf)qwd5L(O!?t{Dwaxq@LsD7>!|$+W}+s-A;l3bH{~)tN7f; zm<2QZW=H;@B5byYQ@;nE!ZL!iv~W%HEc(o c)Aek3xs84~xryUk1URt7ZgMAao)L%gnbd>jCxV}vMT|~+ zq#Q70sXCn6HZQ$qsnBt7SOf%`Zz1~IvkLp5bpv%_V~0pf>zi$i<0bv#MK(5_R5pTF zuePpYYJV^i8ozn5%l+lP4R{pUB`zo)OlZC&0wW)R?O2)25E{3lO0tj2MZ{f=EzSUt zq>GClk5H0{s?i1o4T|FW1I^_iMCI@tfC_%}e-p6z2cWNl?H^fjWKbhw{@7HctUci~ zB5QLY?AOR0q2Ut1H~p%F c?JN!lG64aMCY9L)`h>Og%aOYmg-@wd`+;n_@M;=@bhhyt1-w*NX$$Kvh6~F zQ4<9PMKXm_vE^unK-kV=tSp*U9|gZ!Y$r%79c=R4Wj@S&=34O#Lvz1~0hd}#1|*bx zwpmHG9YGGg`~*v-B_kJcAikl>{t+1e#_RzRkf2?RAL4CZ?LC W&zn-j zHyXUe(KFjs%Y)ROpaFk6I4%&%Sm2+9?31Z)(g0}uZ )18poyJTGEiVkKZM z8ZS ITjk+6zDwH_H(VN)|NWsHX%KsZVN6p zp`ZUF{sAf1cEsA(scMZ{5iKMZOZC+&!tVF`RI*krrvIGHwmO+dZ{?-Nn$>1x66j UL9=rrj` z_t@1N7FYkL%TnEM#)^oJYEv#F4|f>mcWZOebkv(WI}t}mPNt1+vIK%t4s~FByl&p7 z!-Rwm;8H)3ynb|CgR(F6_4O%MYQ3;318XjNjgc%*JA<1I@bJvSBO~**#x&? zVm`e}d|=aeL^j7(yLQE~;Pg!mt@~#@85uLEP&a&fT;P3w^P1gse@e3qffi gLD%~PT!e*&GR$cbo!N^s&kda+(g5({p&Mjs6=c$&KeusmltZl+_Qr62y zm&D!)`dioPSO`mAO4f$nWHj*Qx$oB$%q%SK59X3T_U<{(umRvbZqbzVT7nvny%1f4 zjU Rpm}t)s%vvOy;rj^<-=kCz>Ii ~xeONbj%E?5C&pSDa}1 zE+6L$rdWDyK~FH{IY%_SF~Ofo-mLvwQqlzT`sNh8?MvS1(F xevN q)zR=F8v3W74bju+j4$aS}|LM7_1y)FwDD2Y_1-Mt9ub~|Wca%wf z{BkF^lr0UB5(>Qc5(JNeaf~RVixV+BUU|ip+3q-^TX-Marn>_xb@`Zpt!ks(=fXJd z;}$s!?f%B@@VEDd#vc0+_~WxCxAlU(4KV29>Lv?P16R;{75N)@01F8uh8#S@X~jZk z0~d++k#Bjz6IP6L&J5Cz$v4<<+gvS3`gM{F-Xp`joT u?5lGI#A2e^A!4U=DoYvs}OqlO; zh6YvL-_Q7ziwiQn>p B ;TPtJdFn%uAVoKWE> zL-4X?2S1fEUmP2UYyZ2j8P+>L2^Io+3E;K~ e7^zBVXlVH3oLpR~H ^BvR@dU$+`a<=2)PdASsunYx(mHClc_xQV7}7^4&We;O+a)oEOa= zbl#(fDGxcWF|!B0t$P9#`Zq+T=&evIZ|U`^{q~IYyuUxXGlF{hlg%Fe-QEq01e(do zNR*@L5O!HKdzF@qb!<31fZm>DIcWSYnp4!7cJ37in++^);&T7Ds*c=x%#!-w!_rR} zYK=Go)SYK}c7)rR(j;*09A~{@tbJtSZmD0-+&aH9xIADhwb3m7V!KBL)}Uxhh(8V6 zlurF2H^(HUI$fViEmmKzpIEdtlaLn+qWj?h*-QX5>)8p$dzxC-yxRgB`0D%DM!$Dh zBk+I9i-C{y7%_9O&FwX5>8qVc9BuyZ9UR#vnnbXZPE2XbccllGKBlF?uGub@2jA`r zU?-(Nel2NxbmJi?6K8krv@{UMhhw5#Q572_2#N^ln$(vBA==iuAhh!3w4R-v(N`v) z3JRsD3pLpH@O{RpZuHnKT@#&&Zj%!C+`*nK{^&pn6?I;Oo=}H{_1~0EN^6ZNoY+ {Jn&Y3wV8?=Q9_|7_{72(=f#$Mu zGU>c#h@Dc%K0ZFeu76CUemf|zrX-Dq8Iqjg;ovBOBwQ<(6I20xiL3|3#Qs)A%^yr# zYM6GpW}J;?(6(Js%HBLoOPw5tg83aEWXOS2k9dfG;DXk?_!#M%*=@_lV{I}PnCCIf z&jWrji+({7_i%I4<9f^g(UwQQ(kc {auIQ*X*g1Psavm||Fr>rd4 U2TYDg6GB`pb3#&6iw-c5 z @WP%8dy3`r8mcLY#BB+reb67+FpSX10{tNbo@bZE~ukB=+H_G^nv{c&FP zEt?kYOzd`rq7}?*8HuD$J}=+2?CE~^H{Xc{N0CdO#}iCE;M$0bA3OA7cY>j7qO!Jl zTF|PSS!pFBNY1>b4nA_&bea$y&0%VKq-ts!VhJH$M4SAu#tm!n*GjUzdj#a_fp{8e zOkl6JBrk*rz=S{&+8;HY4OQ4Fr+*}P2erL?{+0~LSC @5^Gwk^wN5pL@=edu^K8&)1ybfM`ETW=&L&?0^hxH-|W>|h} z&)Un#&5dnkW##Mjki0fG`E!PBIZb*h(qfbB$F;Vig%RwICj^Oc<_V#5Xi>vT-F+pm z;(Z?9eSm#F*TRB0C1i4UB9G`bj3ZO&691f%BVMvmzY8oMwX|joAh($~`9|(ZBwtG_ zh9!+wu4}ThyMD+I8rF;~a?C}9?6m$T=jYxa;O=HRjR$bu61U%G&C&4qezX~#KRY^M zPmuIZ|8V5$J|jJcP>iS&{yi}d7W;X=_WN4>JL){XCxD-)6$_|WoNOQ0BRL~`!(Q^{ ztNwiLTULo@-uCsbD P&wIXq7ccvsc}R>n^_^(`&mZ%@(lzIe5QgW_tmZlPYN$=C zF9P73n89)z>eJ+=^Vgd_;hx|tQe&h06KuZ2kfyUQ)d~nGC4M3(U^$ImdE>#A^r$Q- zAfWG0qX+vpa|HY2SXmE6F&5Ee?yB<+s?>JXpw1_}Dk?)VCohF`zJzedKmVxy<}iknn&_fV^1ouf zOOU_rdRZz$pN2#(X-B=@;Gyh%XI3hAM zb&ND!J5&A!ym=R3e$k5aV0@M6ctpR5POs@VjS$7~6fi9w5-%UYw6DtT&^SFYCi1={ z-&E>~Wl8*dEYfXnMb*VeiQqIIlSB}dMFg>z2Up^o^Ym&}mgJPj;^_(7-A+DL+pSFz z>_iwVooFid+Efb>;VZ#Yl^|MxU-X>slm0D&K8$Z``_1`T$LD5O?c}5tvNw-kEESMl z01Ftzz#%CxH50|ez;kdG^AG@Dv*jNFTB4Ydsi`cZhw*lTClz3}51|4@N9OOOGyiBM zAb(B@SVlb~H~Vo3u^;~35{(R$5P= Lj%H-q=^NL z0np+pvZ0-NY^&LILJ_uFPTG4wp*mOJAI@sJy23f|P)OeFeG^m?pFk(^Zx->ZN8#X@ z04rcbjz3yfqhn+1HSR9( Fodg{CqCoNUR|~TqfG*1$^p;0P9M@zK8y74C_sq> zv;+P`W!Cb(Z@KAWI(Kfe^jh)j*0-^n<3}8etK-ttzn_Ve5}UY~$N@tUKguC~Aq6=P zObPqt{=<-x(z9J2%hOdqy>d&aqtP7zjegKdZN7$Urym#oO_E=}Ic%3yJ(ko$0kX5( zwH0AwqZ&!6eeLNUcE8Di&acCNk>NZxf6UaUrlx+KXXCZ|H`AIp#32KwZ|jf%v9n#s z0QV6og%?Bwq-#gig_!-$ejD-NJa$fB06Q*4GHkZQ3tBdw|NiabQ3nka1z`YRne~Q7 zK8`cW(;1j_?4-B0+Kr0q9k}&8(Hf5zrRjv?x*~R%HYH KqNk z#KqTpqlp%Cwd|+c(CDwTI>mR{2vh7$bXYdE>o)R|&rLNhIKe2m=0{2UCni*^lLjVu zfru#Om_FANTdu@AScP}$u*6bZ>fYe8nwJf(3nr70{Wv{fa YUJ=EX4;;B{A z?#t62@sy(MvpB^`qcvT)vG;0 z^IVZ3?uqK|R>juO+P{?`jYk+EAhSD8la%#<+i~=$*|QMSKQx4ZTX)ECtxqGSG^W7l z7fv ps{LY;UB)4^z>EnaV4Qu5Q$26*0P)B{h(ui+CtbWCp%Bm z3Av#C?aS`UJ8kOb5Mq&~-G0Tnb@GkDe`_`vz8f-BY(v|xc?tuEl< T)J==}V&Dc>soY%B4nNNM@ze(}+VOhfO ` )z3sjQv$IV6sW*IioGeX8D(ID&yu^-@X!gfAS|bE)F|j zs^am?T+$0q8JAj=5Ow^SI}9>s^$Ab!yG E|pfiIwgU&~rE& zQCG)v^X2U(vXtYxYP$qn+LuOh5a`?rmc)2mE}suR!+KtJPIIR%<(r%sX5K#XYs5#K z74L{+ZxvDqe`{T{!LUB}v>&vZp-2u+%F%8Yf|@E51@1GtEujn>r_Y)|r 32uBPOS$+>}947M9~~-eN%jY&4~mS2XIG zrizmb_>D}K7)3->xt6M{eb#sM$#(fzOVIEBDSec9wZ}InD>#j5u2XcECp`^zK!bX7 zELRVAFPxq*Psw*J6(9_JLz;Sh$zlyMC6Iy9T_^e8x)B+nHEG~2Y8-`-?3bey<%u;o zx{W-Zf6nnr38K}lTyBz2%E(tOs9c}L=eX7^!{&Vc$AR+TX44o%b8~ZMun*MP`T46m ze?2=70 Hgal>3-p7}Tup*WS%#+q$k3cgvHWm S>$fIZK8Yx?+Ef=GQV` zqBOEpGgV5t+9BlQyu! S`ul&^u>6|ED70nf-{t#0OPgZR7W(lWO6&L-d!Jb< zxFrX+p`jr?6BAO&mrU*F0jUH9NErxSiS^~xZyvOEPGf};0W->HJ-9_4B02LuwmS-; zdyBG1WK-zEPnDww;mZ8S54?tLr|94#Cpn)MM+zb@71jy K&xp^`T57zz969r z8ydgMvRIjU8|7yI$KPT|Uo(1SYkvOhmGG`M4Z@GKt21-Elckmt(QWM;twf>-+Ed>1 zLA*X%=*gK_S~5{|;t`GBMZRqv;aXU}3>ibQu`0cOG4uU3nfKQ3q`wykKy`vezAk)y zZ@QFXJhusjiVbc0a1MpzEWHVqWAN0~SnS+H)*ohy!+kf?(p~PZ7~VR1=>$NXyS#qY zmQ7xMG%BRu3QRRdHTsgre`?PKJU@)voC?Q>2Ot92&mQF)zUyNH*bcvy)+xit2^2Q3 zWp&${2xMxB#K76fwr6D$@LD1=oY3EUk{rHv_QmF5vD;n(1fNf%dli0~kiiwapE4s| z709<)T)uW}zddTzWKq{3RJQ8!f;2o_RvZkYOG{N7-8a9CPguL1@M2Efg$E-%iMbiB z2edtSF}bitU~cd!+$wKuDu3J0XZd5%Ym6r&my{QTJ__lY=YOs8^XGA{0XEXI;B zMrEUtu3y8%>U3v}3gv8 Hh~b`F~=UYLXP$VZ8&RyF8Rh za9;Ct^SxwW*Q6QF43;L#KCPw}(^ir$X69icxLNCXz@LJb)kH0+g`<(9F(iH3?&isY zbVOrW&-gALwtMLS39`Z!j=N0uS6DI|p}lR@Y&T3Do;)!K(CXlnp-hqyh0=1e8N%E7 zJ~}|uAE`&bj6OK{z`oV#Q)7tJHELKczL_6RBAE4b;66M!_}-AV=+E{f@v4Bdvyve^ z7C#KnQF~9>tX+y++{5OxH0(SgFE6j(-drzNCk`iDqaRg^6<9N>6sq>u#dz<^iC~$7 zFh&$=u ?J!1D4>H7}(MuA>3kh%>Z74Wz91{Z=j}-Sch%R z(!@--M&=7qqtA)?%T)ZjRRYTPTV3!QUzWaNN&fs916X$OwtiW7i$wqBg221lW|#Aq zjoU$Q-o)|YguwC0{q2XB%r%#eeX&^guN$QmR2`qJqow;GhmwT;SKOFXI(}6(g8jLl z|9o&q)H@XtoS*r^&5b#SK+=P8dv}-A@!>`>LHZ`NqA_y-Ai3}qkl>~L;n-pg8k>Su zf0$!L_Cf>AMViyvl%2-eK$AM03m?+i ;jG#ZDUG9Q!~k+N=!>@ zhbhCjS>_1$4d;`cogDy;ib7Y)k;e~JN_8Q4@#2+J)8YFK?zn;>1f4UwnMRiHkQovh z2`~J=;_P$R9Cvr&B+Phtc;T(;>AV>4CHtbK0R=NBU2A_92Lxi4Cz#+c7#FK|q!BRW z$f)Aipnz@NZ;6C_%}k<&iFA7#t_Vi55%pjQitA)qCEMzjM;md}OibikNOdX_8#v`J zRReou^guy&uP4mz^Mc~^ZA_Yri;I1)4oE-&5P*n?2#^RDTHTZq;)#!B3nIe=OiCpr z%t7})tAUXd((u-4INk*B5q?{JWpoOgcJilHxKfQf)AWw+85xo7*~IX0HyBk}Iy>Va zAt4FBos`*r4(2leew8ET^S{@rgD$0uoWd}nWA*pdHbS0PqBG(VQ#w|&K cM)J$GM0huZ6_P1L?>J37;7uN~6AxBEL zEj<+r<`SOU`IhQ&K)Qjlo5?)|_y7&+ oDE9SWWtS*bR0)embt{nyAG+%`P_8Q^bpPijW$G{+1Hc#E(Yzl0^ z#3q+>6J|jQ8&X~xqjKjmfglZCA1|8QJV9O2V(pfO`w3jli`)mMDe&bw`Qzkr4NHh1 z-pegMcp!Bj9T%6hmSowj+o 6Q=@Gaz68wUn<3_W^iGb6+ zUrecs?epE*j&Lu@^MA{JE18?)6?c$9r=YCtY3u1B*u|e3Mg%7k46#y+)`NZYfSSHH zyDo`!&iHU;vn8rlQPcNy<3h8NitHrS_s?ivzn~`{aYU#P&qK~XMbpV9V#i@pj%TjW z8t+WQ0u0x8FAl5a3l?^mERIKNGre+zM*|RmM(cMmFZ8-U&LI=kn8&(EGczN1b#(#2 zXARWFNT%A`3ECaSbDZ<_x27n7B_&~4fSg;I4D2`3x8TphU_)$)!!e9eaX-XjyVs4I z21a}c00_1AfUGOUnuq%*43D?JvFrS>zvk`jfG~XYM;wzoH7$LdA eXC(3Eg1U(VTbBFvG`149 z&`Hf8T_GZuJO(BHVWI9_6H$gYQyMl2S)s?Y O&m#q?XvXWY6bQ(G? zjm>%Qg$0o5mnn_*moE!IEG%06Qv0JJ4i20i9v;(ay6@4O|5dAL W!Vibl7oR!Iu$^n8XZOk1lf<8{P*gX;1P09eME zj+eay+4h!_d-7S|4GHgB%zLH9#4<2&ah2Y_WoP3ALEVt0+@B6yH8wCElJ#LBp!wN% zj2;-`5F2V^jx(}SDAL>74Q0EsCW_CGe*PNKG%{&U3qO9>o%iM8S={!0z{ pe*0B&y)Qvoh)5(wB^#w+ z6&CTbi~DI#CrBj|a9fl4<@CDDrrYL&`PX^3 zByI*S;le^_`Y;O%g{hJKMy>|A_MGEIV=%Cqtb+(OrD3F!y70Y$?l!C{W_sEaAYh{g0M@2_C;|Eaj~F@eY7+pcT3hCblfFcA znfB<7kZjTUJ*DT$hs={iMQ~W5E-P&lbJH_HJ#>QfW{M7`{@F-}z9$kOH;>1ly3kcrKWt zPPClyL3nYY&HouNQ_2(;R%U3&e6o}^_;4Kr5_{DP3k%7?MGX<~=l#(<%|HTO2#98$ zU0xEyD35}6X (Vf#FfjZ8Fnmo8mM zt^;YZNE2D#5*e{4XI qAaCK#bXM;)xhn+&oy2tT(kgk=Qe|SsO;pp_li~XJHi|L`_bg~ z_JB<2tuHb%GW!-+WKUS3Y;UoT08<3h?K|t#P&7P`eM$f8GIRj)ctw``;+HjT1R=do zx)5w=rQP9V%=;Em#>|M)Wp(xuR?u3b(IYL_0la@K`q+Q**x*R}v?QXf;;A@gH4-?l z*MN#-IkQRmwn^)j(m>U4b{*w9B3cM9J}-|BtYu(&li?aBB4qdGcWd9gu&aP5pCM*X z2#`VW$I=VN6BpkRUUgq*b%#4BVk3QM5)i> `t_KQh>nBD2?`By_ zlq?nWatV)fC?+N*AYNhxI^__H*n|W;1Sl#&mP{WUM74F<<@>;m7au|nXdxf$w|`0b zZ0i?E_(T_nta)w^ll*j9kvR4R>DgjUGG{2%)qh~ldMuxT&LklwelI^VryMV2aFCD; z9~m~tUGD6~Enp3`eUK_K4JWB<5O;<8EL62Y0QGO0#4A!Huru9V>zR;l$_c2>`kOU% z(nx}qXA@0effSeL!_E0vqI*qPN<2V+7lFQ1ue|Gc^x`Ia5pvZ0uA_v9Z~7AdxhOBQ zx`C6vE0Y^}ka0)L;K{e*VoX88w;O@#KU-e%h1Ukp!Fv 3&3g=%H$i=e4FK}5hxot*VkMVHt={IK) (}^P`nwK?LNJWE zIUcoh7Dn|UaKicTak(NZ;K?<^ftjY2(<_c(wovWP0D25Xoi%>;=fU}%R$u_wmyv`N z>xC#61qXw=K^J(3!0CM+=6(y+RrfiL8AkbF^verr;nzwZe4N8T?OGp^h41UZ{K3Df zUZW9b%Y5x6QFzOyV>*_L8}9O}Ae{a>ARu56?1x3p`9!>(2@l6QYEcCfPKtBCq%zsv zu{xJPme}p^S8VfkZoL&rf3M1Q5=F9A@4{wVTbqTFaTMz`>fle8b1L(59fSNy_@lX! zSpd+3|H5HB{zHi$gfF8OIf&wAMX&@Nkgo;x5NzicrvF5=rp>_*=_fy3y}1h-Hzp@m zFbbm$8nz!yWLOr_VUwwDX-Hc#*ae_d3D_Q0jM;%yk sInYE1(bwObSi5=Ozu$J`ofVuyq#IT^Bd}0NG;kR7&; y)z;0_W3BWW#L_)*mPIacdUZ{7bdhz0gUKnH~jR!2sj{wPf z?~f)|@!b{)fq8r#&<0`Cz8)Bx>v$W8Q* 19?hn5|Jty%1saDL zegUyrhy$h!qIjQx#Kc5E4m~a|uBtSW1qpz_th90aO%WIrChZyo-@kv~`n7vENa!2p z(NP%P{Q%p=M-Cs0*fefdRNMRhP) lPf_wZ@T$5`c6TGe`2nt-t=2k&krBg!0|Eo9otH$N7Ji0% zBAV1Y$^I_ZM5w}*qnrN0#)O*iJv64H>+1n vh9jbWxOcX2AApt_h!3{cAS%~?{4imoYIw^71o2qt-VXpBD5n<_(n1GQ zsTY?RW*i!2i_*a0w#V@@xI*FJZ7cJAT9ugka)O?{Oc#tBxRBO7$phq96;~bspJoAk z1=u?-fZYiLSnH*O{&9e#Mn9^UQ9Nugcq0#+I6olQ9wYN&HQy={h7OAe@6egEjAj^O zV3^_S!la3F;SE~b6nYP)jhGbPz%W+ZDNU$hY-dU63Hjwd$Xwj}Cb1WlpD+$WUacqK zv^r;gB5o(be+6S9{t_=kVWxzniVL=7kt@h%e6p_iN8uwpVfn|vOH5?{rt+V+!~qNp zjA)OTEdbmlf_a$Z|NKBS9-{UFZyldZs<4F|$-W{#c*_lKd!zDDhi%OB*_*3CaF1$$ zM|`!tO^rw1EYk+QS U870PVvX&_@DTKu#nb=>(}_V=I?kg z;J+tlQcp)N)f_qQ6O#FEo57q9B3izd(-lwqB_%70cI1gqPzLdfw!uT96q1($n2f~g z==utMd*!5@3w$OICrDX4-mI6p`g8fJTj8V-67x~At4l>$6!V fhg9w=< 5KHy8-M1wu+eNa-pu89OWwwl 7O5 zIc+FdjOs%}Ly;0Ej&* +hKzd(SAoXh9{=1hPX4PJir-eLfzcdBFBiE?WE{Jw6U@hSE?z!aJPob))u07azkP z4XuAW naohpuWDIMO4u5+$Kko z!2;%K-Wu#aqh=fn>6&sgUKbC-TzBO-*cb~CAY>%|GW6cB+G1K{Z$v7OE#c?c)=SZG zC;hSKt(lKuE@?@M9YZQ(#`Psev5%{R^Nla797`QO=^Qn&jxC_($sT_of`g w=^ zOtarwL2n!VqY_#o!2v@+=Yt3COYQUBycYtNNOFFm^?qml#&NfV?73d=kD0QeqP{wf zP^W&flB-=dhfO%~7h?py`HK`g&ca=`F+Ei-4n+xQBpw|iP%P!vIc$)}$iaaDs$9(H z*fiQ0(1Y!cW)%GHd-