From dbbee5199e4f433d6e7d8b4c5d988625e7c5cd9b Mon Sep 17 00:00:00 2001 From: Robert Jeutter Date: Tue, 13 Jul 2021 16:20:14 +0200 Subject: [PATCH] starting cheatsheet --- README.md | 2 + Systemsicherheit - Cheatsheet.pdf | Bin 0 -> 322209 bytes Systemsicherheit - Cheatsheet.tex | 3878 +++++++++++++++++++++++++++++ 3 files changed, 3880 insertions(+) create mode 100644 Systemsicherheit - Cheatsheet.pdf create mode 100644 Systemsicherheit - Cheatsheet.tex diff --git a/README.md b/README.md index a8dea61..ea62836 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,11 @@ Unterlagen zu Informatik Vorlesungen der TU Ilmenau - [Seminar](Softwaretechnik%20-%20Seminar.pdf) - [Beispiel Flowchart](Softwaretechnik%20Flowchart.tex) - [Softwaretechnik 2](Softwaretechnik%202.md) (work in progress) + - [Softwaretechnik 2 Cheatsheet](Softwaretechnik%202%20-%20Cheatsheet.pdf) (work in progress) - [Stochastik](Stochastik.md) - [Stochastik Cheatsheet](Stochastik%20-%20Cheatsheet.pdf) - [Systemsicherheit](Systemsicherheit.md) (work in progress) + - [Systemsicherheit Cheatsheet](Systemsicherheit%20-%20Cheatsheet.pdf) (work in progress) - [Telematik 1](Telematik%201.md) - [Telematik 1 Cheatsheet](Telematik%201-%20Cheatsheet.pdf) diff --git a/Systemsicherheit - Cheatsheet.pdf b/Systemsicherheit - Cheatsheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..41e127312c574abf271e7f5131eac07196f40a76 GIT binary patch literal 322209 zcma&NV~j3L6s6m?ZQHhO+qP}nHctC=zir#L?LKYW-S?Zx++>nF$(^10QK|Y{SylC{ zwaJylB?cB^=h!`d8jNQz|%uOB5%wYrsU|ii?%#H0~ zyf)J{^;Ney(ERrdoe5KCo6m+)%ChAwR76B9{ul?Hs~UzO$KurWwDeFvt-b2iWkMr0 zpMX!a&UTy@_>$A7fMGAD(4lAWrISkw69lqLA4_3m8TZ3pN}HU(Q%lQigsYUsq@Wq3 zC8UwlGd-8GD@tSXkzaesggceW(y$ru42$qdhkM3~Bp=*H#Nmr$i9s%hOh7dPVad0q znZYy?0Ay*@g-4aGWgAmuZZS2IQ-QEuASSe2$b|~{$kL^xOy>U)x6zFs@uEBvpp8pG zAu^4MFysx6JB1?e<&#qbdq^38T!TwQCSMB+AqJwU7>%K+^0vlH3;#{mk^+{nU)LDY z@HvUBsfPt-5+*>&2+b1>T9uk;V50T{DGhd;*wsA=`dqwlAwKA9o~Ka;R*NJ(Dl!A> zP9>L1`x{CJuPCJKg8^LlMRl>!zzq%y6XiY)Wj;iPx=g$M*aF2gkb0!I*g&Rjz9tMA6*fTYjTn2nVEyc|_eVLQmj0O_8_s);Lk$q3dN%erK3LugnMLxd{5%ztF|_3&W>d zJ3N9|(4{m>bh5J4u*=+PF|cG*sV~Kp=E=O;Ay=&jMke<`(kjcIDY&M1Yk~kN%kg)LM6Qz&Z-ZeUg7o98p z;F~ZksOVWIIZ~SlfPuW$TFXd$^1;~L+@W_`@&G_C6kfdSX}`H#tP5_QtSu8Q<*tvE z$29dj@YE&T)^)Pgk#=WwWqyeTtb%uEBQ&lVG8|JFRI{_{5Sg_I>o}t{J$yI|57A&uK#;Qy4KTm-IB-%c&*!iBNp`*hvEzgs-jTumF#l9 zN=~zDP2p>f!U)F#%W~*X;X`~}dwn`)!@-mxvhTD3ya;yN2s(x0nQ&6hJ^sly1UrW+1b*rlUj+9ip4 z)`!gst8nm{Xr$3i!Mlk*T|%th9`B+CuuSSU1ua~UdAVjuvSoV*qxuB{BRkE2Opl;-+3q49g`1s70F4aU2#v1 zW^oLF5ElW9v<_6riJKC>UpKUO)s*9Qs@ML1qR}1Gt4~3foj?m;9DY7^;C(_0@)iMS zWH-h1ho@-(*r^c9)nPK`TG?_0tx-W2cdkzZ|5}^Ds6{0iRd#8b)4iQDOJ2vw)fZ^I$&P{D<4a$)$)>n z?4y^wjk7S9nVzLYw4LQKbvZvV9!GMPNLNMvw_wr3L3b01U8LkMQoX1j!CIdt$W^(& z&;3-hc8vxJprAX zA_rgMYQ~kiIa$-&qPHvHkrROx9Km?@cKw{TgCcPb)Vop6!&+b{x1@)ViqaJIGyN!X?PwPW5l`D+WWEEuvY zLyBud334Tt6M}Kd9AKk!*l^pv=|4C#bf?QNzW>n_NOPn9eN>)~LCDP)Ha@L5vqCS> z!VW}C{+GqnO|=61+yuiIx)1}&ufG!adbImoZu|jVPE6;ax|8IJIuF~i zerCSJ`koYA1WKaDN_QbmnBReKJZM2courQr_MoCv+NA;{s~M^(+$z${VL~Hqrw!9g z&#a`u=clyR!RclyS+#I_a6J0EK3;V$rWxYpJXzS@%`R(;==dJUk)f~?GOv7g(%QJX z%ItMqOh>7;^EL>e+hC`n3_rucZQbE`-f&496e|^LD`6Clbg~*JK#?_i=9SO}FcR?h z2K9g_nnx6?njEXvI){>~PDF{%FigQ|@9IqEW5Wdd^AGz2(fPB2)Y`Ba2$ZFP?Lh-i zR^&+(STw!Dw3Nfc#4{`scr^Te*cBt0Vy16pe3lPwLDAK~5{rr!X+@9|qh!%-p+PFi$a6npjeDWfYN!<-sLncWAr%`Ybce zb&P5k>aBe=n5b$5a0$Mf4Ud4YhXOP7O6MuR&l>Rdyua68y7koa)duhqZk;RY5^}`l zd;eriYo@DEn(21dnv3a?9{P!(M^Jj}bXVkKwCRJIp>1^`gs|e8>1ge2n1R(){WREh z=2i-|2qax*X|u^@0YC5cx(4r&=?p$P?WF{A6mwmg1&JK< zy7nDy1?bOTx`)pfQYm5~xrxTPtm7(fo=$WKDRR8!TxT3Rwm?ps=jrzHlti_Mh{}Jq zG~W6&-agU2^5lkmVp-rVT6bHt$!V1kQtGczO{>{HPw*-?5G5PLlVS_g;Bw{#gn>?? z3~P1HlSbF!4yl7bKV?KZ;e>wgJ{~3v6^Ey{qdD(Gu;6+GqxGB`@69>_9<~T?$inx) zY~WM8Txjd`h77?F6)E2T9Zm?UbJv=u4b20`;R27wy9ZRO2H3>o4m17140vw`(m!zN znx^A$R0mo1SW z3^FmJqL&z*EY4S#?4s%0PMRAob;$(7i%TG`qvLZ}W2zna5=t9yYkHE!jK*Thjm?|TESr&V4<~ja0%g|IojI5Wypgnj%7S?glZ)<(4wuN zsZe7(Ha8op%%4gws*CeRrZ}5QNPa{!vHvEY(Q3($Hta_GSKNb5@Fv&?`r+x6% zPrEW0ep#p4LDa$f-5#MHMK<6u=&OMBW*B@YfQ1}S75I1UjFifhTvX+;YS+wKuq4g1 z2^&q;P^*VH?gU9Y=i`~_pwEpu;%-%ktvN#7%&(@RrqRCAc*Ih*v*s{QAj;Oqpt|gb%gxN<7aOVAXmL^6$q807`^1h=~%3 zvr_!)$T!b_$OVB`C=!9PBR!mEW9(Y&1$7L5uukZog-;e~(;tlEX4U82mFB>EK4mV# zoHO=wg_N^ujq-;MHppnJE;hOyEP(u?;v|C0;7wZ#(1!ZG_91Wd9ZxT$@~=rd2Z5X+ zCZPIHnzbvN5>94x*+DBF?f!^*pphB$o1I=QwacJW1Miy~Ud6fKd@Et4C@&b;SI5M; zJ|&X+4Q0tiEogb{v>Ns|VAiP<1!c`U-JS_#Kb`tHN(c6@X2GD%=8{3xpL)B8v^}#6 zm@-+F^o~gd)A!zge&wGmr9w+x<+)+10CkF#ZG>X8Tq=aM`?TsYH23-Q46-OZ${t(I0*hwan~U8 z`X8Kos%z5Ivae+U&$j!c$JpLLiOtZdm zr=i&pm9^)41WCqO%42W*46C3uvcYj3ZuzPj)oJDejMAMHxntFhr*^oXdNshIG|< z-sajSLjGNvAl?$v**)V3&4WH_SRFBlg)+`Wl%U@`4~jtx@=qRi{5iEVBA9b8Unmfw zZ8QJ9OWAR(av2#v86{cr1B~-qZZ>Jiq^QHHSVCkn8oC`H<&nIy3CC22K!JDU`~S!# zFdF>+rnES;v=P9!qwA4qrWEb@F%8)|kKldwkXXwh8LCh3#|_4G|9T! zKg!YVdRI9j685?2km;+=2c~sV;1+6i-Z#5xpIAHdwamy0q8AEp?-?k^lZP-?f$@QL z@Fznb5Axb5LhYlz57zRDHfP=b4g zsc&lL$klU1lhF)sqPRU4;jA)UJ4xg-k?b%uSQhhf)(s3|8?8R|-X&k)LLLbC!ZoWN z<`>{#ZC0u4=xBg^`oOAV|Mr9?mb`fI=8Pmpu`vB z%pjB-97FN zhIYd*eR$nDZWzQcpVMd2i-(Pz-ZNNI>-^Je8YlZTp!%iEQC#hnm-=e@Q#1-khOaXe z?dobL|GU1wrTpg|L|$K!C7H&8%*KH|fd*(ed=e+)5L>LOZG;#*&gL)o23aShV zO+b(RthysV4vuGI<`8H}H2RttLqDL~CQv^QJ4vf+0xu1ac?4 zAZW_ABaD*LW|pJX^kFF=Bv)Q$pMTP0?6K^Ei|Mb6ba|Y={XGD!@uvsfjuRTC^WLS- zpx4=$O5caJJIJfUni&2(RS;$gPYeZ8l5cnVxayMr|NVi!NKzi@3urrRYUc?Zhr`i= zGrj%54wz->hd?aDj;-66&hI2Qi0e!vGlE2_s;dCyIC1@Ryg~LP?6^+k z*S(0ny;BQ_=jW2kHO=QB6y@(iae>bAo_8ijw?(ne6&%}37fj626n1?sDRem0*wSp4 zs0B?#y#gs}gRXZf;uR7;n;41A7HQ!l>3bf0&z2EX)j)heGvY9~V&xWcJunQoQaY&@ zJ1<}~_=;=WHkKf+e!9t_ZW`ZQHc99j_J@~NCEaZ?^-KFE!F$8TV{;mbfqIRqXk}-p zZqq7=M{CI6CK3~7nO+`IwSw4am;xfuvimbQSPN@C5Pq@>ILZwBrhm;Sg3xa4%Jpi_ z>SC+fw0o1a(*j#P;u|R!#lUDR-2stzq!G_PT6$C#G~!>zhmIq4iJY#3a);nD1^g9@ zK`y>Dj^Zp=*`>tK2+k<1Lw%xq13V=~h#-c{j7v`K*}%WoYVDq5E!C^wqySUxBgdk% zLuFm8v52HD))TnAIQf+ zXStZykAmRfYfWNscl#(^nRWbv{9(EK7>V~17%q$uk*5q(yuVpDCzwb5Ii8(T8O^oK z#>@?3;8}|8b8Lu4FNDQ5(#qPKlpS*AUjgyu9zN7wjl_YeZU+aDY1Zz!;H~0tTTK%) zV##I|PI*B2Qt@pp%8^5U^BC5vjvH-lr0*;k_J>(&3#tm+_KeO})IsjJ(Y!+_v}Vio z3CCtSR2t_BoTln7f{b;8d0=vQe!X+dxv!(63?OnvU4q1pMv6tuMfaWjhk43%y1ZK5 zeXS7TDzwU5HBqN+gGr8SU>fJ|jx@M~O}?Iuj#g4`w)%sPDO3TC6Fimb3o5=TEQ;>J zq?s5U{FP#v_Y?>M;c?Bpo*Y;S;WbKSndz?yL$RsDKQ8)vpWZ@EydiZW`vq7&_Pq2{5yXevAho^9t<3j zOddK>)d;l5iQeU0kYF=Xl0{ph140)DV>b;%u*(k^a1FJi`>%Q&P&R^TSl%bOv&4sk z_he`V_M1*>QN?2sfP6JcLJbyRoI<6a>4e|4H3Z^FMYIa)I$2LXpK^|KaZSnq%8g2t za@__dtG1$AEA~}96?v0(4YBtRo}jpChUYTQ1`bTR~Gyv zo5|l2-30aOu`16jtM`bElYp0a>n1w--fIEpk_{+Mqk*?U&}7^*-Ec$~nx7{{v={Sd z+E%jY82%|WtJ==LTiMZo99#Cqcbojdqv7t7s+L+^Xps%1idZH6}t3H9ei=H#O;X9O{hmXf@p(JGiEM0W1w1k}xB- zUA;Ht1WTQ2sE_o5%~*f=A|L8)m2nO&?qz-&&$x;-2mfVpb+r`S9zF0XOAldE?g_nb zJ;EU3`^P{5M*ZsLZ#|4~E(JYo949UvPSI6NlEGkgn}&Qq=@Ro{ibNDQmjqj}&F3y&uUc!HPh;^w;?AqOJCqO|G;*tu1gAfb-GnO6 z0C914`?(R$I*#S-F1u(8-ADtqVU!mxEmre$RfhV;=CZOt81$!#qjp-+NfZ5b<4Ks% zDIkZx^LlOa9Q);lQSJ&KXyoZpX}am@a*5mgrFzRP>W#$9IYJ&PDcSM zITI0)qoU=aaJH%DTe&z%QXMAP(q0b{nq-65dk9$Yp^Em^Cf1i z)kQR-=DJXp9xVsN!H=*T)8DjD*b{~uzSul1}sduGQDYR)TTvfRC5{3d}U^IR$^=!hA7mg4b2u4Y#5mD zDlQoRbC6JT!%~|jKSg-`7!as>)1kTC#BhKH3vj47s#J2Wh0e%r{VD8o@)KM*+ub_d z`3}|9Yem2E^uKRCPf9unjh-daPzQ!T$>xrDFD@V2Wb|Btui4)HNBr_bKeNLMsM=2K zu9mFY_FQ17-Aty#Ko>NBdQlSEn-^pI%w7|&p_)$3&MZxhDPQLiG2YM>>J24p3%Eg<#u)WpN-Ky*_BuNv#;*}K(f5ePlf%=?U!Q-6x=(u*b>Ht`0bGa}hx!Kp$dviA z!Glr38hq9idrw~iKA&2?Q^CImLq8ujPR+fUVKElmL~WjfRZ}Vz$>go$J#%Hg;45Y# zs&D}`b5xpzd#-OBFBQMV){lD^tF{?SK1|WO!Yff< zwp0pTrJQfpBLI-h#v*oxL&`N+*G*lMWqM`$sUh=${~r0iy^J)2O`@w<+_6O50r8Ag z$Gz;Wx^I{AtRb}U6?^J;_a7wp6)Wh>ww=Z^7M3e1RFDoc&~(q`^iU47V;qdsl(HG1 zoI`$&g_WQ6je>`8t`E4h!7~ic9Lzcv&k^>KuwESgFD1skU3~0SC%bwuxM7Mw1>jw{8f9keI z3k?30uVt8Z9k1rHHet8B$mC=cs#{qEHb4afOx$&Gq1Vs0s`b?IuoBeEOc*r~!iG#5 z*ZR|ASn7pC>P?I0Q1+u++k9@}^xPELW%Kau9;|_iIGHBNgeC6&9h%$M5lv(@t ze#8YCBkYEg(lW``n)IFxjqN9PNa9iTG#|We#)%}cK| zgN!q|#S^>{mU?QmzprZZSKA#_Z?kHCaA|`Wlg9+oQf?hwa%!BRS73rm%l#scQG7}M zqx8UX!|sDf-tU38S>lIb^)`9p4s#}|&M&&^0$aQlKNjIOp5e=?HQB@QA0jthJy69z z%PNrxNrE*p!B3YNy4ApWCSbS+By5gVn<$p~3u!B+UuF@`?AmA)st7FP0nU`#mN5!1 zbc!Vxs}}Sm(liWVs=-xKcA!p*Y*H`K>sxV@k+Zx%Y2IsuS_OOX9>JG%hhlK&3<^lW z1@mR<4KwF;eo zlv!m?W&bg1ROG?5l6|!Z8GIThJ_V225J~?9jov;uK^ORPaSL=2WmC?X-H6hmchxs;+g(b)sdzY^1S-cf3^K_&2;AN>L8J*vOn%fQfFyS_Zx% zvoadtZa|+N5HH~&>}(7k){_X|!UhVC8SL44{{T~#PR&}y#t>8Bq*(01kG*f)A!Bfy z&-A0d?ZaU8qcXmKoU~)jVd0Dr{z-d3zqD4*ljV&U>9VtkfRe-KgfzT+&(3u1n1V`X zp6c{5B;J^%v&y2wPqkMojNq1FLOXi zC1)nbrhMfK6h2qEQhEdF9t;%w6!?G}EK!CVNrw|JhH{W6i*QbCFD0e=Rmfn{u}vQQ z!nSJxM&>=B?UXe=o_X=!a8C|A!XaKa7p8~tZ|)>izi|5{uLD{^Lf0OOl9C>%>6AMg z@Qa4f(YE`EG}C>acbx36Ab7R{8VqB7*YAsu$H+1PfJ;;V>E$pw2(@OS4?>xu3?hxV zm7?J&5=Iww25b#engzX8m}w`?qUAnnF!Y~m^P`L+V5uyM zIh1W=kT^;raWV36#KyU_bcAqAUNn{R_?=9mem3+`gJVZ`ye0{2$zO?3Q%o{P4jvku z!BV|v<&ik3x-q$O{#?uIQ^h^L_T)wTB^y&I9=tR^B#CDs;n&a((#efkr|H3U?KfgM z&MU8Laawv$=>($>glPuCEOD_}ntS9Szqygqa%5wez>lI{(`bWz?jMrXSTS3#KkSCz zointn>js!ghSwKzeFF&=-7Vmg9~-notDtkus9-P2$8Pp{TvL$vJ~@%PSCmm>y!N0& zS1n2g8{5=j2RrKi7PQ|N7x4*y&`AgC=l(kV5T`-w+jMXQjAKWB(OQqESfN@ml^;Js z|5<9+Uwz8V2II5Yth(#a2UcKy_cgIxE2Qhs|SFGE#d7e zM5j=HqyCKfkbUKoG%J7Six-@d_!k*8ENCQo6ts`(Ch?L2>4NwGUjgAiEp{LxleINc z@MIM%R5xeYNno3s@3O4eeBbg?l z1(wj?B&k<;G^W%NRhhEULQ;T}t$jw-AeTfPldcxnA%fJNY&enh>BCpo=C+anaVucW zJuCy}hfjXhuOS>kkUZ4RfYD(nk`!?+x=fx)foWh{4b}D4caHtFeO^W;>hTQ^T4QlW z?UP^6V6u`aj~)&ZTS}xk$p}rX&gER<;GJSQ<&_9xv5#niES4sfG?G1Fyg_+47F=nq z9j!7X;qqw6R?~a|_^KD;`U|9z-EY!T@h_cKQ#Jg$C2J?d_Uw46b!a~mODFfVN7VD3pvXZ}`aBkXKhXt{>Er*;FvH+`L5 zpP)z#S@m7ZY#gsv4JS0dS5DKKNfrkl^c8Jm2}f)Q+9XNg1~Y8UgvE|9QGgBWUn5{0 z8-VQ})U@J;YpNL)ky@*Akm#gSNRde7cPbuJXGgI2b_ea4M!p*$*H zdH>(CPSv)%kTRBV@O<2_mZCC0o636Lw(6vx(j0kpL^c|uW65$5DJmEAw#I+F5)_+B zkPtLqM;mgu<;|2>rk`XL#jYhWDBoxY^=QSVeKyNfml18&mN7O!DO#PjP)X`b;$+Q@ zR@}GXgJUP-)=LkIF2sGAoV&e(O@!9+T33IA5mY2ID5x58|SnR1?%`T)61_HJHs!S`UH(cLmE1e;wn%|=ishs8ALhIX%UU#QzF0UUGk>LFO|uz2n_GvGN$AWbV> z!L;32^0xIsTLBd1f7j-I&T~}wzn37&+UWq!}dtlslxS$8;c@r7HtkHU#KYZkN!xY6I$8^VTY%kG# z0DIBIzcLn007;*z}d)H}iS>Pz*e zzs{d#ES;9DP4b?LCtujM@19o~Hu+H+F9eizecs$u) zHvSsc&PzJlx_v6NXh_l5NORAKc>rCQO}ltOcPhw99t>qbDd}TJ zxNH&?Q7q0oUr#E}Czhh+x4rgl+v2Bp)t{W2j9$5P1vi*bc*{i7=ullNT6qqA{v@o{ z-$WH7(O-4pR1(mDXF3yFLzl!Jdw_t8+ z*Cpb;fv~jZ&sip!kz(n9H5(a+YY>NcuVa)fh&C5uZFQMwkcJx`cWKB@{D3@=U3DsM z>zQ|Eos!GD{X+^Wg;E7#xc#JX2H0|I-f1+7= z{Wd9a@Kq<1p6*4y;=?@wQx&h6tn$HLoa!IyqQ$GQC_}i@JfBs&< z@k>yec5?qE)&7h70#gVeJb__OvF3)bhX7R(NI@smG^QBzAI`b4AKx-WP)gda#b{Kq z8b8%AoN^#G?Wyzv6@dkGaYi^=ms>S(6;ajf`8aD0PCq7=op3(AtY1A>tP|dHqGZ|F z560(b8?{a8T{K~Mwbr#=vTlMtumRE8&};i(Z74Ehr~?zc*SAT-EgO%nj%@Il)V*k! z<-VYl$B2d>G^uX=M`#)YeI{01^M`7hM}Og4G!4HX%UTm(Y2P`&AEFm)k4BzkBVa86 zTfw7EtoJ=1=IRFgY7_WaJPD60!O%XeOQvV+TjHuPD)atF;c9AuX@TE+_ZXVMcwS358F1j|AHqH#erIv){w87Dv zzajoBUc^9dT(_D>`i}jrc51uGbKFW9b6M#iv)_2?3v1{LFL$~_b)woD5Su-Gm|OvO z6T7|C=!Q9|_VovDS{QkA7g<}n^{LuYm$5vrJzAXl(eB;=#@Ly{ybcwi61%<`X1o*OXFNnBMg%Hse9E#WX=PyiJ0o{VY7zt#s zD9hl{DKCMQpTfFiE$(m}ctEjRKG<=jvMjhl1j{R-)dRNcW#&t@c!30u4 zbvc7zy%5}G?EA8jbP@Lu9Zo}sF4AI$PSeEM_LU$&2w|>hL=^sBVd1*)P&{}aF$F_R zl0(NIqw{J<`4%?HsxLUC-^E7$=xBd?*O0N2GbF?%Wo8B&ucKwPcf1k;1*XBivd(FO zBg^%h%-BEd_zRHtRH3_wq8a2UzOktse&WaX;1VhHw;LQsAIJUR4Soy&eX5iyX&e(R zB{Wv8#TI-ePD(bs1?!AyMeZVz&|x7T zaWaD@V(`~G7WTDe4#fgLMOd2_5-s>#FQoLFGlRCauAlTId3ALz6Vzid%?AJ~Ar$BK z&kFNN5^ny*5A0gTioCzXlNT!zyr{PNi0-)+H9>7eOw%0q6X_H?zmEwN>5C#Sw;FQ$ z#CZ&muE1qY(f~U@Y5T1W4;#0&Bh8pKS%7uO1f*>Os_-);cGv3eTSN_~zo=BG^lC@} z(y49-h%nG}Co7~oN@A{<2s@u$eK~c-`L&i}YsJx%+9kUE&zw&UIS&@3LwnS`wmJZ# zbb%G{ryNmSudiG8*D+8vBkuy*m}tHG20m9SWap>!bWKh6G(}h^aZg?OEZU{7 z?yAw>y_#TD$^y#6=LP}vf3c!%QA;gcbyq5nI-;*np1NZl@QOcwZw22?!;%pSOz2HA zTfl&3hB~ZBmbHZk!3n$CEsK1|`7mZlcrw&5oQ3+aId`W5|7ustadSAYz7)Ave2QC_hXWk#7BuycUR}w2X zm1yR9XQ>xrRa=`OcRJ2t7PfHPo9272%zf>SELSqD`w}ZaX^31XV4iXVYQ7^<6m4PcI8n4ZM`VZF*HM3(GUF&ukUI72I#{7$@RT6eLvo zdhoW(*n?=Vt!?8#XB)R$P|~OXrO>{&Ufv63j-6q@5Yc1?8sZ^y?~) z10Rmw@kyug1)22aeUUlbER!X)k|iLt$K)CT#7hzzJpj#;XZ+Biii&n;K-yPR?at(| z`ZB{=QatrJvwZ>h6wism03@4bVJzvG=K%umgtY4hZx&ykL(uQ}@qV*Qk%Y{V)qc@l zWD$vmNh^hFlmQDT3gki8in-j`e5zNgu#h%{!?#_Ux->aX@`~NR&W@Y~0 z8&3Y;_%;*s|8+x2kDhks7MDlBt)X(ND@92T>4IL%vgql$L)X~3^VX5eYhE4~A`-N; zoU<~};*HCXA43LgNUU0#-AS2Du@p%Ar6*>8&&FOmr{M41;Su7TL7gMVti?H_qri>B zR|{&`RIXKz8^`X)iK)wDVbiCi!9rfeeNA5hJ{9kLbLV$m;_pu=U@zpiu;+!7^KPF; zE7lX7mJ-SVLm22c<3jy+%jag}GTr@i6q*xRFOyTC558MlJz483upNFI+x)Bcv3W1R zuR~{#PD7!2G4%U++Q`-t^_^>dY%3n|){&ddTIJ&bLJ=I&S z(37kN;ewR<>2^#sC%v1GVA=m}vEwJW^dUp3doaAv$b^YYZZ(vAiaX6tF(xgQh8}j; z$B}C*^RRO6uqF+io1V=1joXH98RQySBK4>Pr*d63WvbFiW+k$D-x_3XEWw|ecK1n*MX5Kvv+q=a)Mor$EK+S+^nhCN~P>Sf6! z+wPMnkEw~|f^VbI^Kq1wZcWZEAz!gw`P;YW5Tc!ro|bG6Q>}Qe?Hw*{Ura8?;MT3w zbeekGq3AR&itt?n;k>ZuV<>YF3(l@md`40m%25VhMo0gWQ;z)(qshf-Xi8j!7$e`F zg27sl##A>lE}L=;oyD{2U7qy~L zk1>w^099sTt(;BJB7$gjXL0KZ!@>73oRA0C6WpZ3&ChM5?uY0w{A>E51l^Bq^+=%H zs86NlxxnBXx90mnc5J2KNc@bqwt~(4I5N}q$RJuI52Xg9E=&g~y0TeCf_HF(8Su{K z&57}x5}ntI@2oxiq_x5|G{=s^$*NdSbB7EU`$iHU+pXH3PzVN3E^G)>$W-WseXHF8 z`kgG3YmHwG6@(O#L{7PZ$&5c(`d(j3<5p}WCE-U;>X=J8G6^+Uz&DZ%1lc%E)z-~6 zh^e#60aL4HWvr61d({_hu?y@LO=9Hr3>kkJW5*hUm#!-Jw8n_j7TzS9L#Ebetclsc z5@2mUpUYY_^38AV&U%`8&3z+d9*Fid=@F~89;T}- z)r&=yo0JzMaf2RQ1uFjWU?XGl)w2z|6-R~pUzC*ZuvMINZT>G$l8h;K7f!9RI- zBlDiM5Xx%1qCJAOGbU>mpas=$+^yvG)*fyqFnQDxq~3+f%7=(Y;a8cH>T&E}e(v~<|a!ss|hQ<`81V4Eo zO)jyGSlU2zjUf9e&m*iwHo@l1?APQ$wA#Dz>3vYSz-tRMH}dV(-jCh2lf~0hIHJX^ z$6z*3HRSuE^W%B8#{pw1OeyhG@>Ghi;-V*`UboCbDThvL2+J6kiswr=g|R}5MkfDcP4cNULf$;h2SbN%-Vx2mdO;E&uwyN@2kvRtWM)3@ z;7o|gBC!|mSgU@B!~d}KOZP5eqqSp9#7$;GgC;IPJ)S2S!4Zn|4EG5qwf?a}r|Lze2WG1V+?5{bV**39lp4FVgo zUqgxT2oJ^NghgtkmNmigv!gSlW|%Thp@&3O#z<`b7c;=(SAwb)(2dzqNEy%KuHnJ( z*2Fax=@&ST&m@xoG?%Grw3wnji3VXcvy*L*O76vmXl^(&NpN1%MaKZ)`BJnMJY2X@ zb=zB1m}{9hk}d|bwwE^p?OJXGIoORj$+Vz?zlOC972hk6oS!7CpaTS;0IZr~A{MSgrHdlWLSe$LjIz%ze|AL=siuVW}vg zhoZzmGXL3jafya={4LDYk?65Ko3_7M{O>rMfRKeUa3XU;ggQec^d1Xz@MU!-t`gB4 zG~cgF$^7gtk;;`B{@l5DDiYS$JFAJ9Xw@hSI5N0amvP}0eTj}qy1GY5;68}s$^ z{QXhr4;%ex)^>cD0j7p@nX2udQDiuUoCSV)oNNX8Bs($E;IsABScBRvzmS8^LkRj|#cpV4o8qMU$4aA|dUE$i;4L43RES!C<$iS-Md(JJ}4p@LyKKF%*KXzqrUO0-rboQg;lk+64Bk!^eL z8!43EkN+5XnXKt7HhQrD{>1$DdWx5R>p;lpW{lRX&qT-+Mex=J^Um;?6P)Dku$~Q| zB+puzI`1`nbI^<)AoIWh`d%`4QWj^xSCVawwPn#zAvF5VQn!oRpG6_X3+1ump{!a@1hg`h=LgwHX$2`JC0nKSvB&JF z+U!dv6cuwwd*6Uco8t(9U&g;~Oq?{0#3Gv%a?3xf9=_N2O(=hc!$N;|-d2ML_F}b; z-nYC#yPJIa977aUG$HX7+Xj(!wY1*cBv`;7;{+KS^E|PC{$An7ptw~jXkJ$s`je9YVnh?;UU-= zt+uI!qZmFq&M=5K!b~23pESz~#0FTK;$6L5nB^@L=F*QJJAp{}%9Kg6?s;e2w|GAovnDclRXUVuZnI-ms{fsX#$WQiul$fwpWN(ZP11d3I zd?&>S*%8z+TW?^_LVGgemlE^JaNY6+T06J5%s<+$S$dE+KRLbvg2#Q;bQ=djb7>oc z8ChlI##VYOWPC>A*O){2W}Da5O+4#muCkS2;}g_1{~%=W4OsVoon(z8&w4OSmOqG! zgzaS#h8Lz1%Eg|q8wmX3@(tfK6bcbZ*D?iIIn{02u%#ad1{S-;d%F$Hg;u6CbW&{w z4Dyf2O@F#$FWnyTJ$S1VoFWQE`pavv)IkLXY0IVW`R2FgqTmd)VEF9X!^!B5p0fN- zQsu^e#w5ezWC$f14Au2){+p*!!%g~&m4CX9&41xZ7OEq1raZHxUoC6!sHP5*bE{%` ze_1;F)VupYQ=^8!p+gIXUb8u&+wMR_>)@oU-jOcBbT@EesEkRcGYD%JjdYvY9D1q0 z#IDqpMzUnr$EWU-Mw-;5+_u(>*&Eu|5S96kcag{+U{c>{_B<;lLpRNjQ4b% z=p)CUkOyJnpTf9;ssX+8|HIfjHtE6yTbpg$wryj#ZM%E7ZQHi7+qP}n*4?)4o@eIE zOvHO);{1ZDii*mr%3SM80KPi9cDG+*roK$bLB6iy5M}N*W!oGM_wqbu}si z`(j*UYv5sR?fT*y4(G(ns}dQQFOm_`wu`9d=+G2a^%xZyX(^`e1xk2v4YO!*(=pMN z$wUzcxPv-p1xv8W_3Rmua|lUHQAQy5S#ZnW)Y8&@9s#bLiF4Y3=*ZMxxeIU+NwkTLPc8#X-dLZH2OT5DWSbaY0-ei zU{RyACNS02BrXO%sm7_ID2*!SK$kF-AGId-haX7wvS6$6bu|ZWH#xIm)5e2J&N|0# zqqsiM{rp3xPdS%GpU`@tx{tiLjOkX}67^ zZL3lN2T6#jemrfXPiWJ-jB72|7{g-R<^4slev_GKMfsX0-{xDb#nhzyTsqqvZn}1m zLu^@I&Q0}4R)+j(WK>Nkm0_s`Mz9VDHx4RBFh*cJZppKADtNUh_mnFfZ`Dbx@-7El6$3-$$7XkKuGCM{=i zfl3krvA$d9aW(mS8ynN(OMT1o^kO5(6-A&o$J$ukS3kqqg9G0+*bdn2rj-hWy-6BwF z9_wcRPDA)}8$WNP0k1N!jlbdBMPd8Pv~XpmqBbIs%vUmtyrc;(3io*bZaSOsYphkX zow=VeB5F0xaA>aB4yInqpXq*C9=95l4mee_@ zxt~tI5Jp1><`BY@=;S53ss=NWP-4QGgOIcKY&Wo91i+%23L0^q!Ptc$3IHE!X$_uX z59&sYfE!+WYunK{^*gIOI#~b1>b0!z0ap7Jud|gg!XHGBqr{B=Dc8sSKM6}&*!~|~ z>Hk7lI-{qRyfvQaw^p}zW;BBkjdT<2W>HkuRkAW_RaRrSg-9TQ1&=YYIWRyCuJBHT2cMrXcD2!T67gkL&M+yYtFqC>-f-Ihj1uo8gI^lKDzG*KfO

Fw#?iQhEnN#mest&Tv(X=>@WqAv{)leDkHDI7D9K`Qz{ zBQb(9(?IF&Nypx#CYVlwk-HeV4{rhgTdyW!u^h$CwMT}-rxKl9WX~TH2!FY)ea2rK z9kWyX?^LAS`aSOv%K@dS1%gKUp;p`X<+)PZ*9`oS zEvWruoYig4tHZ4Pb{h8vL$geZmBO0)V&nmhkMutgXse|ie;Qo1N)W0BT z4Y%}m!zzDS-fN#Y6z;~dTE!(`-&L9tFZgP!T!rrJAJ#fWP1??nx99nHiLVYT>EB!x zqR15?e4<9QY0=EDdxq%j$T{IN^qfCn^?(!J3x?{sD#9=_1HkvM${oO++P4o}l9|&_ zXvgN`xDAzrRrIZsvp$qYp3 zApO-&VHd(TR2ikVy5+6!!~4Y`V!hXiEQh&rd1n>Kn+;o7_LYE@Ra|_{o8mD@Df0PF z++|w(c0ruKLG6H4WaIH!v}tY*&i>t%jW4t!83pj zMHCwHDoKL>mZ-qVJ_P7`@wzQtY#p2M9bbApeR7 z5clgY_d_G4Vsuiz3JWAC?p;B$f!N-@ri%FLL9Z%BHx0(}miq z`rXq-I5_Fs8!PgZb0o<%lQK}D1bUS)@#R4s=QITFV9RhOQLB=}3TfT|TL(gGFvMf+ zm2YvsB_`Tt)YqiNyHH379I%PzIZ)_LA-lk0Z;`?99`svKEg^(X_nP0Lq^20yO{SRv z@@WyY?EWF0sV0_eDPn`C{-d68GQ^MU?P{s{N*AO(<5(^Hf45lF$e3*~1QSmfAnB7R zN*PhzKSFDt2{69rhr_x!+1vGV{zDqsK=}n{rt_Im;ZNO(kTJj;4G#k*6NnNTJpXt; zciV#EfDFZe;k^e@Sx9?=ygsUlmL0EeElk%Bx%6YWt*g7O|2s(f?H#RRkB9LH<9rI4 zY-wtAOHSPhq?a4AL_rx$fW>_F)76C#sOj-lU7y`c&H(lx1oPv45}NK;J^qxTaIA%1 z2R_bmK-JjSg%XrtJf^^iv>6;2E^$sVg?MYQ6=zW#=dr%3*lJ_j3n=#g%W-iX%Ay!6 zip04Z)5T81nEBo%pH#TYDceL`Lcllj{!o&ZloUS=k7`cnIzhVXljDWZQr87-E2& z9J>8xL7Z$P|;-qPL`(*a-925HB3qo4ot zP$Ee7*TFBB8ZKW}4>rG-5e;j~ZOxgX|78}0w;N;pwV=|#nJhVbn-T;mLW&TD5@nz6 z5}oF?&_GV#$`|tdx5F4!1t)l?A(ACT+lECxp%gh|0US)LL4{CPJqh?JMl;u#O5#yg zBVsZ7reMez#s1^?N2tCBGloiKM7Y@>T*Z~CDpbZj^Itgq0_$c zsb2)=5HiyB#tEvT|Ez&0e@qmtKM97`S;I(|H?_tNEHH+B*ORCVvlu6_yvACDF=bq3 z;m4sgd-vw1kVX9@=N2mU{&o&x*8I&eNZC4#@~EaBxpW%K>xHjpz@*t zPkSKU6{qwE2=d=Q;){C^f>v~mx%c%JY1_+JM_O}-K}Reg=nXYrNhS4sZUJT{K>Wbe zapckD_1B9wLI~2dl-Q&w5pREnX+@qV^k`Y8`-2nthVGwHYj%rs&w-vEW|=C?#lr}B zuBGgoQWtnWnIR;IB~E~u_<({za$M||p_L&MPu1Krnk#S<#+-K>EAs}z{tj&o|Q znyM(Kwq1}qoV5)P%i*h1MeE& z1%YIB>)Ei5(2*T>seQ@>M3;KIF*kNDImb3{2;Wl}riEn$qF znH6QasDs~8)IMAR=ZXBtpAUueR{SGwngNw4Xop#Gi__|jk$vOcpW%=#Sr;CM-X`;G z(wL&^+V~>#{N!1p`t0f19toWE}%aimucR+AKIISe0Er!&9H9E8#|Wms}IU$9Q?=|ymd!%k}!A1 zAzvzYo-L0Hy0Ddc{UlY=cx^U*gBoMI*hthEF>8dyhg0QoTK`PBv@9uAWSN&DpQ|b* zmHnhY8aOk7neh}PF2pEo-=ycZ<$AubgIx^jm}UEE&azdeTyj*T(gLu`d zIkYiZ@BL#rZTvEx82*=B{k@+u(WREtl(K{@Su#zUq-CZNqckplDX0HVsM%Z*0rH1u zwVdnvNGkQ}Sqd>~NuE;ZLdbf@`;aYT4gTw&BTmA2l=f?=W!%ioLJp;@a{$y5clglC z1W)`Be`c$=9^2*%gjJbBm8xj=3k0%Xk?KKxqo(?{#en~r8GwOoi=A$Xf6T0f|3A_h zf@2e9a ztG&aKuJQu|Pbk$O^6efo4>$m|x@qS)fzD~e;pez!Sh+)Yxw6S9|Kyi;ZM{F5l|4S1 z0dLLpmhihhXs12Ge{(#$gZ|(FnwIufk^NN0h?y4MgmjcFJmQ=ogoa4PsV>xGzNE)4muORrCazd|Y$qZX8-0qt@t0 zBD`70M$$A=OQh>-h7)Q>VnCs8+s(|F6u5DAV~G7It1*Tz{w73KyhYUX^Q z5MZ@PD`fEsUHr*2t84q$S%{~!q_5X4u-`iFPq}EI*%!fxBvz9?MR&<(Nq-$4je!m& zKP)s>)MB8h~t5rW}<(Wd}ga`=#s!M@8NC!IagxmC;(VyoTa zcoRel$qZcI1G zd2G99k|(uMgQE8Yv&w`PK4`KKA~NOsv8^sXy%T262Z0~PCKU_hO*4t)FfRjDZ-o1Y zUfrqmECd;n5bZX)SrhtaXl)LwCnEY=b6csi{M`EEEoG(p8X3%=`u)*O%<5G3siKq< zx&8_^Y`Mh3sIHhvO6{VgvU;yv^4(7tPG2ivvKot2duzt=0t= zlGF?KZW7Q+?t$c5@tA1qltaa%dxgjanz7BH_du4S)7fae-#;?ViGqcJ0>4NCrFAov zd}c`>OIov-gkt_#=?LEWQ|lB`CoB4*u3LyIHu%RkCOfbI^z#qx z4*)OyFtt@kMJ<#SQ%pcOv*MCYZN)O{KzWq(6F+9Lf1!A1n49bD;V_*CAO^LQpxHuK zHNT5n%p>v0y?W*@=n z{TB#FhBNIttmHsAOZ>zluF)4;qmXy({ps4_&ttoIC0O5*Ju5^+a-D!=b4#TdKQ2>v zGM&5#`qv`$ZyUvHLN7d5KqfkY~Df_jozy zVsubKT~XO>Lhd$FF^zrVKvyUpY2uX!F1aRCi*+%C=D`B{MXEHHtT`dI7lF^fyoYpc zq`Yyiv|0vRTAt0r1)9IfyKKX$I%DwCr<#U`9dC^p1=>4S&boG)^MigD`3_lU&0gz` zH|ZnZ!n4)mbjw#vgA(vefhNOU!fj5erM@s_V?Dc@I;+T&cSA|{$ETh47Z$1Foyv%| zYW>&=xCpRN`?u3}17J8bD%Z%GhQEqT4PZPQOXG;_$oEQk{H!)TFH`;UDGBNp@hI7> zFsqkLM!iR6LTIz-nAUj{zS%P~eT~}|87O*hUHkkYW=5;t^gvhDgjnnnbd3@apitv2 zPKM0(5E*}>$CSH zDwas?8rLQhrnl8SJ@rd{HrFJK6yafKs(A9v``KJRXx>-U>}nu5d1RtXdSZ#}uckh} zXs?KwSr!Z@X`oDvQXA}76gfJ|TGSg%1(;_d{6b%S1Jrkry=X|hcfPmUWW$MyQI zs8(UVwMZv%^5*u+d3x{rsWqUB^@?uetGl!$=EDn>?0Wl{_)BlqZ%DeOevNSKes}y|Lp?*(j_Cye2@F5F7ec53~Z;U5!1b8zByyK!8rsP{FJ^8@W4qC<%(q zx;O2Oj}tD*p()mX;IPm(k}26i0pO}HJyLOUHD_BbAy@6t6*E86&?%Q$K3IhCPU0oP z-Yn;xy>0#MfPNE-C1g@AOx0Ze2wgIrO9}J7U`Nna&jbI56Gfo2qjp_W_2Kj`G0l$K z=lWcC>K^48(nZ#3I`?ft!g&$y$*8{ZKp$@uCS|{AzY=RVhwsck3C3_rKhybL45e^%3*c+E7lKaMngY)8aOiF19$Z&5Rgyfb}vL8MTB4A6wY(Bj1{qu`;I@(Re z(a1!mvqU!@iZ1c{3d~tTDSCy==*8IFGFf zCNTK-Js#Eywk{$k-dgU$LkB0X#m$xWZPS`Ut!`iakz+GSx_uIG`}ryw)&tyfVBmlB zk{Fo2rf2EFJfvP}yHtO* zv(bh+u3s{ulH7wLo=GmL%CG!MKsIyPDr@I$`E(Sp2k^3J1Lx~OGT95Q=g@YhTSUK+ zp#4vC`TBPA3q<(oWBq?7l3AGkzl4JSKT0_(`~OQRXJh5~UniP1x9o5^k$eGld&bK7 zx=F0vz~Vr>wOje=V2%O*@d(BrR<(xHVpb|!9-sM}l61Bb)n&huAcGGcrX5bE9k`lV z<*|=t6-BWMVKTIeSj<*wWC%!UaZ$wUY?4gh=`XdoG4D=O9y^>60LnPMiA`9fDSyd| zsF=j7s6b_^*M%5eSV0w}98q-D^^ex6|1(|5PD1W+Q{@GkHz0U>6@g6Us)vI0I@VP);OpI|Ab< z4niRIckB-8h0tVNUkSEG90Tr{`y|*HRSn6=RmAeaVic-i3PurzNmMN`vO)=|m>w}u z6y*tI12`K*!+YUa!cdgV)g(u#p6fuX6XumrQWAk+u;)N0CUa++kv^j3P+HPbhKA8B zAh0`8@Qs1_iS+HUOyY}3N@ke0=&V#h!gS0N>QLBCU|3O^BMy{O&_P0i-c;!Rd^tcx zcp*S0oRGyx#K&CPI@i|~ADSzGIlzpXZ+R|#mL*`;9AII6?fiTo_IzdP?!7a|*g5h1 z>Gn}()C71m-wV7=siFA_TlNnOP8lTKRjMpDel4#Jz;OoWaw(`!^b)+z1<>6 zFkOqeIh>Y$tJiAAY)bXKw%OD-xJl3%yM1J$J(&K7(iau>k+A%PxW&D{zbhddH=W`_?h(`g88y`=D1pO@o!r)Yfz!9 z9rm;7Y%0yZ9lafoN2T5o?@@bJ+RB4*v9GHH?C5h=`muIcRDK-$tR5!NDUMVVRejht zWiaw$@uIEnFU`$(@^WVY%2D4F)-T9H$E`7kEWzdQRpB(YfB<${$md}Q# zMm?4B>E_=|5@dp^&%g-!OYpoIOCRAMYTpmT2&fH~n^mY$+LL>2;;b|j=JdN-i#gC4 zzRwwD)*j{8QHw3Wuhj3?uY!AprTZ^%+BeA?4-XG6v>Y|{0+t>Brs|clbxSb?ELFEq z%7-!>_hXD%GqCCQRKZN0HgCy{0+h+<@nxaeuxuTZV}&8*`BSyLAy3A$Z0SI|OkDmD zDuIb77ahhyeS*Psvxz$42xD_KrS+CUWfw003Rf?jFxyISZ44!HNiSAaPX#m=IoPrb z8K4a91j!!kh>G6Ogu56p*HJFkQaE$|SJn-O=BRNjk&DO0Q$L~c!^Y_%&x1yFwxL=B{0;G$n9PUbVA1X?n~q70*e;FD+zHkTq`k=+5bd~(uk4I zPI3oj8w}8dfY-8nVkuu)%uD}Mazmj5c3gbipa#ay^Ul&1(L&9N9%*btoZ_OTxo~rt zGnIl5V0+Ba2P{felreDg{Wz86-SktJ=9%MC{8p6^J9(r3(0e2fLw-Nk#N6c=@o~`~O zo#}`@efo9t`pWr%r46K$|35DSR#v9}v#Q9!%Ea}*4ffZ1m(E*~PQN#OLHFVCsi;QX zgq_=^&3;$hT6K66I^JsD8q^V3NnF7|n21xI%PZfP=ee&yMBr9pT}hLeNFW133JR}v zd7v9j&(pcSzgJ!VnFzWg%_CDo?6^MbvpO1%-}mVvL}(okHo|RQroK*kEhkzh(#`Go z00~|q4=-1Ygg@VzGZM&ojJxe0nlCo{;Ayv9HW_PqOV_nT=CF(}CpX}J9}bRE7kX0+ zwHH=X3~ji60Mmx8V#ca#2KqTZcfa_#kw8>h1YLOoEjM;W(Z13?zxY$NM8@0KMC=(u zzeG&ZOnF0cAugSM^8_-RX~C{I+pm`q+;2+euff2}r`;)pa`1~B&uqpejyh?cHp3gu zt4G()VSCQ2x>{m(-mQa`TFVWCw!8gl=ugtQ;Ryd${5+Gdv}WWowFv>i13l43^2Qu8 zLla^N(#E0Fi!MWY@jh59 z`lpYE-wsrbExZf+-fs z@&es~cdxtHA2tD5_~b&EBCUL2qTZ6-h5>t{#I;MTrTO$4S`EBEPA;Eqfo#vl!#NG8 zeI>|14R-nTSou23UE-XD>ma~m7DlrqXK4?V%9-m{<;Z6w7(9Or z8}D;e)hvf>P54}IeEP~T*BB(p!D36Z=%%)^HIz2rRKq1prGpRP^=s(kZC(e;3@zZr z!PW1+$HSw6^Oc5D15fFkf3UqVp{{s6sllSSABeY-(i;p_c!Qti1fH4_U!ew{akdFi zo}EP;%x4pJCDUhmH`GrnI5vC;XzGkJ*trw5%WjoVmrM-_OZ$zgaG0QS;)^9)3ww4w z9{gTPI0Nq@XCotCdp202aH#PbO?p>!m4dhSyq71_Ia z6m7q={q=zE#HJgCui!>8cnXLGD7xbfw=H7!_X!@ms%1F~eNNB7WC@OP8_3_2ddCb@ zha5UI$)tzi+(?}$;anM?Ff2o?8m_6kI^PFwiqzxt*Hs^2(%jI}2O8&Vg<4W|aOEz( zUNeG=vw9M1L@grP*{Dzn`ihuZWT!=E6>HJpbKNXeG_<0x3|6b;I&%LNN)361=msCI z7#qzRkGmrq{6xs{3NStADjSpmatFGl8;)y0w#XX^4EhKpI$F4O0XqLOe8 zoDlX27V)&>>nRA}pOKRpFeZyKTM<&Orrj`qMjq$pp}+XlbmXTL7B+#O{RYh7+qTui zfVa$}Z|ci7(u+5+oKBYcdbr_jyU?L=9?gencrg(@GK_BNwA=Az?FCMv;^vB>#YUrb z5P7L9l$fba4~ix17>?L{bNg?$DsYK>9x=m|%ui^YFoc~hC-tKVtpj1H*bs}&r9^a? z8P@(mu-E<9ka$KUG{!Ll=6kF1ACSBj*)PXiietMDQ>{6~(Lsj2vP&GlXN_$A$)%oR z&%{I)4L`g&ScY`EmeFf%jla7Iz~J7Mxv=2z0#ljE3|s}PfZV0TG)u@RG8Z&Y^2VuR zFnf*TG40Im8tWK`u+b$TuH1l6TkeQ5BkvvPGQEk{GJ+a@Y$vjYP6dYAME~=qdHKm$cLeaJW$fvE^?m+qtuS)|Z88dUfO6=EQ-;iRxX75`-Qx7hb9^-eRvR7$~=EWq_GEP%}z zR>>L9&hEX$H`y3NBpoUYbTIk(kSAeD=u33U$=&~Ss?T&;FKy{kL?E_zeVL8u&$3^a zQNoY`fKzJny!1QVwvGLf$`ZqhsWZHq0qk-!8P@u*q^24*ZD&gY=roDBtP@ zG_3tDw1WI$N@Rbm<57sxF>a>32QrU&8uA!PuuGaHoUpu^1?lUqEH3*Pg#Ij zvnW-P5=}2q5!Z@dL-5h~Q7a80YqKzvfOAI0bP7Djcr!Z-G8VwkJyN6_Z|XD_x1Y=@ zuGm@GQ;qWC16dSbN@eq5{g`Ty0THRS&WmX6*%GWy19K%hkAwBZZ;m=oo7c;!Elg}q zEE}^sKod>~xZ~p{JR1`Gg7@w$LHXiyL4~DR)GaMKhZ?d%qnP42se8QAHfw6pOij{H zFs?7@g3`o6i@6g&*3RTC-adZ+vOfK`Jm7ikkuJyky zX~&PQruV9?F1JQ1O^;tet*+CYk$a+*lvEf&xu0gPkLE31BV6!y2RpeSu;`c!qHBRJDi zXpIA_fkGM&yY^tnvP8!mWD;u>E2=t))cenzquoXTK1Vh3(eWkE1I$74Z?z1z1z12{=aGF zlg7PJm9xz?n!VXEHGK5&O)X+NDDPoCY+f+~H;FE^;^;Tg<3++m#L8IKj`2j|Gyjwa zAJ#tp%7i_Td!z;vla<3XZvDCa@a4u(>KT*?*LbM`dJC3@$Cc8`TMC-#sylCJ&_{>yPZ`TSo}0Jr(1D+hV;=k~FYXm?opN z46i0POph-s9qGDe4BIBKNX=MJBOl>vD71u)RL`ZF15M{H6}$cq35jxtwlHUCA-<*35=pRpiYkcv^`h@z=|wPnUVz>uumY;|{iEKh5csGmC%)+( zu9Rl`n}`h0VZ1gY*_YT@xWU2L01gy6f3Jyl$wl$mOdrUBZHMXJ$k=p~;UCup@+JsXy;tRgmo3!yo5!FN96Z5>F~>S4={Pu|h<#V_{aHTqvCq6;(|pn* z_=I@Qot1z1N5)L&fL#IMe|CgVy6a?uozI_)%&gAdcnh;{V!(+uYOE!6sA-lNPPaty zh5ju)(G*{Vc6+JZ*!sQ8nSMfZ8g9e{jKA6Gs0pc~mD>n>u$eow z)qWC+rU6;~?hNn@SOH8MP%uKRacv)f{>jv#?%wQ^$$ z$RN2{QxR5u1st;xH=(+Dwn|(EHd=}=0TsfM&@JTVHZZ~a@FT7XPRJtNk;2zt$4t7T zTskp}k5GMGAp(x%qv4eCU0!R<ei_7)7g5?UQ08_Yc$q7|P{LlIv19KC_*;;`wBQ zZ{%U^jX)c>v1Nqmnl;xSrIQwWHqFDHkPp=`CERMv;gXYCa9jHnInG?gLrGO)eKJZL zGakW4j~$~MF&cR%?H6RBgv9fC&iIJG?~Ua+rg`sQgy)D#Xu}>0a+Z$;cz<&RXD!>4 z&=m$0a>92f0xgUQ2w)Z*klIIe ziOp>}iX-1EbKe3vndeQEZ^kQ^Unm5WD34?3%FzLfN}#$zf$+#)r6dyHbyk` zfq3=qSr5TV@Y^B5rHC|$0ft$tX7Qqf#FDhtCdQS8y}^&IwqHt=qU#4%@)ty;HI$|-Heu|bc1<%TEaM%_{_h_p|%i+-dITmlavC*i2O$5}91jplzWpGNL zfY~nRKP6kUev8b2yvFJTxNuh=)e`oU7FF-EfW`dBK=S>TJElB-N6K-Vu97@Pl>wT7+aWlz`b%Fmc!o)WuSTOUvlInCEnJ*0>%d&L z^c1WGZ3#G}oIfb!PU31d_^XwwIZNyXyr-H-6kcY5^EX)rG+o(bvctrL@J33kcV<41jOAfx7%^{nMir2cw4BF9Be1*V!fzU=LnvW7dgH9TU6|Z@Th1*LocX zhXUF{LoC1owT(oH3ZZ12-`YcH``tFENxLLsf*KKtJ2Vh$N0JT)01ExCMmlBe&kHc1 z!yEforRN{x(L)~X{pRz^^?Em=Q3!fs^5`kZLu>`|n0A$&Yawgu zH@6OFy?QxO<``Z#+~3#yg!4+;4}|(9&w3ukj*NZJ_1z@mR7^=9tR`=#VNUs1zMI*AXI#CJ|&Mlv+$sf zVBjy|le*y4XA|hE30sW>74AJ2M~yX$MKq28v+LgvM#ihAS&oD9QrnEHRqJ&+D20aa zjw=ng^ofC(f)9cWnQ9DTStgCb#DW4HirB^CQE+`w(( z4$iQ(utN)?!`lKLqvZ$;LHtia&{=47=;^9|t?2hVzlz@=AIkX6pS1Nvx_%FfY{M-; z+cAJ&nQ1$199K=12D0qNdoh#b-@_e!vOQcZ@jZ-5=c6U95ghx$0$e?@PB@EUcQ*U$c=Cx%*JNGyAw_n5-C$hP zX*P7WwZD2qpk&PG_YVCi`F?5ydLCAv?lO;}P2Aa6uRVstr`Z5<4LsPz+UM~Bmf{7x zF+%X$vF4)u`U-00YwDiO?7{?^i~6Fi$L|IcyE>%-4+|0wN@5&8Ic}}}Iwtcr8Ml<$ zU$=W}94@d^a)pS;GGPO@v{SRSFf9Of-P&NC zM6}iI@nbI`NGZxd8p-G-_zj|s9R9`-P*;rR2(+6NZC61%$tgiK!k!xaTR7(a?|5?*XgGFStbOKbS{On$KD3_(ICY5UFSzupLXpSsDd)N=R7LJBK*ge(QA7`~;2bC4c7m zJ&%|N%6R3_%jH8zUpRzw^3+~B2G8I6-uk>L>gE69x#cd!nhT_u|Bp8iCi%^t| zllx3O#H#f9x6&6Hy*|Ur;I9Q?Dnz@wHP7b4;|}&pu>BcopV6d06!EqM>99TyejpN6 zgTPpDRIdAzkHlQvxzc|W7a9((_%R3-1#Imc2;5aXXtZb^uU_6S5pxm_FojrnDo_JN zT)e5+p1KhDf@>`S&EN5sFRC9e`SWBW(4k=7Yki}%xFLuO{`?s(U=Aj}_M%OLMQ7o; z%iquS{NUGLVIkWXhg zf_N`RMT`4m~6(+1}E9$1$8fS0Xc%?1Mkh?3c^`WTj&J zAFNbdtW2E$+oH#@o=)=CXzG7fs*GtFt_tFi(GuJQ+YUUPxKzzFy2;d{DWYUj;x{;AkwXw5huR8yXY`PMJd9lsm(9o?hO&xxeSrDQ7%^e|AoZeiW$B z%gF_uWH-~Gxnocd8o9YWhq*mwRafVPyK6%)RMLo?{?3t@^ZitIpTNTi)x+(fJ*YF? zuMPI7eh3obN!2q?-DR|CMo4ts)VCNGT~_7xBJ9F}*sAJC4g1BR{RH-OPzW?W9C(3* zA`GAzBKqA>5*~xGw?{H~#IesV%8BuY`sM4kiY9pKGDqOth8j}uFC!Eb;rpkJd%29` zr%p=J8Ridn*Pm!x*9OsOzODXKUPsTS3PYL>4@KwXM?}InPg~i&(qiW?Dm$8YgSkiT zIy}u=Ja0?9AvWU-{mHUd=YTI@7V^93KPVM;lQeAr!9#z6#fhV>>qfiE!%lAX_t7_! zE+}7*9yVQF1UdT&!d5Z@>HDvZW5G|Ty67CnUG)Uk-)oQ|xYn`i3C59}*X)X=h*Je) zy&HtB?ulctM&H(+PyY1ZegD2f=dX_~${gFEaT(vgbyF&ihe!r66y|yUFUEQCA0PrG ze)kp6r?i**jKjjKtHL+Sy`Eq653%kcGwEKE^TuQLOqK~=#6C!D9tT)N4+lgkoYlkd z1&*NiUm@eTelOqs%#sK1$Vso=E^tX6j>TyQh&z@f0N7=q18C}LdO1U^H-Qjd(6_bM z1|KM>e>QYw>Ivo9KSz3v zV-n~)bd%=(xRo`KNkwy#m>`7Vsl@d#DVcP+@XZ{oRNbhMAR4n6jT)JcKHL`YQduyi z7&>3%qA3r9x`8%eQ5Gm>p@K=L`d9zg48!2@H%)`SrM2KM?WId|1qQlbga@%B1 zI}I%}Mw@D5jgODe^Kx9Jj6X3ZRblZ9ra|=kkz6a?3lms5c&7l93;#raL^m1C$>l7C zciYS*^(1!~~`Rv*nSK5mDXmfHPuMGO1ixnU+K zI39tnnX@4N0N=I6@=+5FhMTyS(eJ?u!2nxrW}6D#pt-c(bm<~Q?qkiQ zfZ8QaXylip3DogiCtqNvIZlrN1`{hl^r| zY-k}wDiN|?5xP8)c;qSPe1aH)-nV2(Y_cX--dydFu@!i(*tYqsEr}Zv7Y-~H zv@b+=05IQvLfD9QX)%BIFC;kA>i=4TgMsWajBekFQ%dr-c}8b=%8X8LAweNKJf=+_ z%GN)7jX#$J=WeULkPmTFog@Oy86c-8M(~G-M8Cup%&(h_A5FwGflBv8#K=>7v{S=7 z(^!-)7nnX`zc(vY31hBB7aBRsxD|Mui*cAo?7$&k@i^er+*na ztV6(ltr^*=gSErfI4JE?DQ565+X1Q&Q1^V+X_&P>kB;q&`#N^fZl&+xF(4dxWsbS8 z)>e7^I0?FDkNRS+u3jY=2RvNhf6aw!6arKX#<|U{4MKa0&Y^= zxhXwb887~2oGI<<-#n)2j0sI7%ywUznBet^MgwnKBi()EW{%T$Uw$fqV7oDkQzD&R zI(ctP?X?^Zz;Ki3w)#Uksrl0kwFyF%zeY!s6aO51C4Fk12IpmhfYV3%igX~{k zCG^m?Vi@=ep1AK|R{Q;5jGe=hFie1K+qP}nwr$(C-Cx_bZQHhO+qUPAyS=lRSE#5( zMP;5mw5OcTE5m#O_J5~Z+?{5ZOW!5RM2~>0wMQDgIuooLnog=ZD2X9ZQ%?Oe-`pY8 zurm6C^D~OX;PjguBg&XCfH^&@m&TyneC)U3C`hz#43TzEGmU^{I`h7HxR+Ut3qU#- zEFFOiun&O$y(SpN3mT(J$4Lp{G&%tz{+U!XylhPxq~b4I(KG;ipPYHn*J( zOpG*tm84WekhB5pUyQdj8jqmtF@hd7aj8E2qIt5l3q@(CGhH2B&5aF>=_gi&=T_rn zhh~};xD@Nu))6qa>u8!{d(x&p(v)j1k*5a8x1v0Y#@}!3D z^p+@&Fg)mLSJk?Sx*9*X{ouyc>>@8tg( z2%N>U&Iv-3LSHo7Mn*@X(Ew)Z_EN3}Jrg8|ySyK5o@9S4XUfuy%nXvm<@R_!A0X%{W%#n->7yQVy>g|L@nm~R| zGlYlbMnF737!Tx@g$@IYV}I;hNE7y%fi2knB?4tAuVa?=QNi(w)c-6~&9MnhEea^` z)px)7@d3SYKP+t^$6NdUK^olu6*>3-v8a+fAjqQ@07Gpjn<_4!^kW57r4<`1KO1uS zZqWgWN=4xP3yye(`S0X<=Zd%BLLQ34DqGs$gdt&RNN&S`euk2TS$z;|aDdC&z)hCS^=XZRL(|%a`?x3Y2yLRJ|a7^eWDGRg71{0G$q~x4{ zf%g+G?hCw1iHj|fy!{Bwh7JfXNOboYj5XI!km@Z=SZ;d`v{~3go>6xv{xvWy>8Xy` zkFfQn`bof!b{{Z|57Qn{=LG%Tx3KI&rryqSwecT2nfHknR1a?q6X!86= z`1r)viW3%0>nbYSpG`TdTm0K3k>qAG$dUx>C0oo4T(@KhaD!C>J_#+O4&DOn3M$RS z3K?+83=oLBpWtxj9=0!&T;8X#b6$csN@_I&`l2GDLVEOE3vEi|RZF9%*Y7Qa@$Ybk z0qa5>i)@vzNh^R;9#6cVUJgv!^BmgK6q5N;vdJe)tNm_RrA&aK>SlIgI~R@BDc6aK zgDSSTF>266*aHF6B623X&T(@szP}=m{{7?ZGaUHcgUSgNwB;wm#Zlu*k7UG@(;wnm z2ZnoYZ8v%VO5q{KIg?r(N#Ot+C58%|h%3;e*ZL+&XYQH=jXjgv;3d9SM#&kWcrl_G zxs3^^{Jsv8h#_QT89{#51`gu;TO59A({|*RI4Z4nIgFksu32F%`QcOlK+h(87E7j4 zP1p3^aI-!Lvyqp=(RQL1zob-`bLhf)+1{tS9=w?%PRnwJ0Fu8lt z8*LnI(wW~bRxd_$ihSDBf~d<*&Vj2ipw2|oMkhmxz*I;QGs@%LI~L;TO;LzZsDFHE z&D{r24vZ#vPa~)GV0?9_GR`C1?vL1W32ro;stRgBS3mVw#ogwOyE2$i)-0YFKOx2>Vn z*6Wz3M6S;ojbu?b{Pml_wsN}`6dBh|!p(9@W6dyw2DaLc2sdh2TNr3zF;IzFf#vq3DluGYV@QxG*w<<}-qL!l^^e`Y_ zO~!PCnSXi5ZXcTHW|R9ELlj0i{jpyjFJTNS2wX1W)yH_N~a z2VNeks#hnegG;Ur20XVnJ?|N3#!N@#FYOgu6VjX9%W(TV6s&}Xn!OTn+4iI2m zQlB;Xj%Qes*m=pAB4cfI@7H!HF$*%xA>kSc(Y$F+KLWDxec2;G!{>Ktk_XE4Fe3l_ zP)>x%gPSY}mvV*+4<*cvg`rk_E`r9CGbWYLs#qjK)CxJwO2sS5>UNu~|BSD3CYH&9 zo_qcbywyr;3g(Rg`+Khdun`T1uZOfq*+nw+Ywuad^aI=;xoleq=4#*DM2Q;qcP#>+{?!PV~7QWk2%=>86qbR;g6V1yH zXMUGR%ZHP~OQQykS!FB*T$hDTN`^ix=M{tp zG33HDaHkX$IzV6vX6+Vs=%2&u~V{X2uHrrT`-LRT)T(%CG(g?lVKgdGeDlJ>Vtphrz``cz?8{&%st7 z3pql2Dg=m|e6LMP?&lWS7?VqpJ%Z@;b;*c6^5On8s-GzCEE!g=1R_^3!J>Z-NE5m0 zZVib6DN?q)c?+02Q5{nmbtz=6@|2BT#|TUMS=i`rt`IqFu(MD}EYRKwQsyKhBJL#XYFm{QkttpvwX>@#py*($b&=P-K?bO|Lu`e= zz18!w2rUL$Q!WhYI)UT3P&B;jvpx6Ig+Z7oQD$qf*c}=iPmZ`Mw=~IzVnU5F{&t%e zH!!+WzXN}Z)wYxEU44uKu$|Du06CCvm~w^4kfQX9-jEk7t++yqrII$ZRqVuC@xLY6 z5$TMNe?0`Sv^n74B*KwQ70%w`j%0QCD@dRTM$mn;S;nLyBOkcf1$^oP*(qz5GDp5N+3HXmWeas||ug-ezT(R@%}aL5sYoQ028(YZ#QXLqxp4T1CK4haz{ zInG0wP&*7zVq+kN8oo4_J`9phl;A;q4fyB%^8LX42S%iTEdqAV#KKMh)j;?}a48&r zvo_jBW*AkOK;V8`K@p%e->ms4s)_l)3(;N#q^xR8Zyo?cehZ9FOrtwEu3yHyE2|ym z%_E?&ZOmKjW0k6+B#=3}`V@^-o!Bw4SV+3Im^HGt>uOUky&EQp9Lnd6^pln64=^%) z2qa;d!j>vZ1Ir?#Ak~LjW-JtL#tW4CtXKJW!pL~%zJ|h@T zvFZ8o3mO)1A-zTmY%@$X0tKiNY%)SyiiHjq9K;+uNvOg#!lKhY^3uPikq9!ux)BM8GoMrq^M%ugeTdz>2sX(zG}RjJ+<4<*Dz7u8?2E;LU#+&eUJ3YF zp~mo!xg7t3@b-NnnBCt)Rs2WEi)!lzhFvw=A!u}vuACZuNXm%rjn(Kni#q{%F&gaz zSEqj*R0NcH!ATf+DpHox!Ndn#+E|7KJ~t6zQ?-wNQ$>e~{g$8Ve^15fw;3Gb*{PF_ru`V(ixuJ9+qrT#BkyLwP8nSYX7w~fuh_5D+EucU-8fPQnyst^NS2_)OhS{|?RGshlW-6A zyx7bO2w@;jW5{=?Y?#^O{+ioR>t9Fewr6jOMC1AM-bq%q1w@^~2tdx&FwCy*m5Jx@Z9z|R5s=@PIUjFh{@zW5qeEVZk?O9J}}MF$Gv z{rw}ya^$PdId~d*K)mW3ldZC38oImOVD}qw9Z+2v}%ybM|jG3}nWG<|L4HkeF;k;8E~b71t1D_-X` zTDSFKoqaN?6ga1)GrZ4>>~?UR&6;ANX;Lmp6jKTf$D{3`$|0#PkBzjUA?%vSUHQ~d z6?&3Ds4a2{F4-glZ*Q06iQ&FSS)`8RcF^`$w0bh47o_-(_D~VNs9%Cqk}C!WyI5wD zm9a9I8_NsDpby(oJ477BS_@GU%8`TS#@=1r>;IvZXKF!u_hI_G5oeW$e?)S-uWLQR z_Mqf5?KQFJROUVY$RY`4g|Y2Tzn0p|gT$XcxrN67Ogl`j62uWD2Z`1>RkIZy<5?8K zwdnE=n|ck(05_rWq+LDCWwT3STWAr6|Cy9%;>s|%pi6?;G>6+m2nlBu5PBR5NgwPPGgfMPr|Ax4T@2-$2Ak3%x7J- zV7+i9w#-xYG21p?Zhkg<=eeoqiP7qsaq?-mWXep3X<{ToT?!_)m)Y%e7Q7c{S%xmn zQlR(G?6h<@bGGS_wlpUS!w4~zN>V;9?=h`#Xc)G*uB+m)b_L^K^*lM$VW5`CI$A^< z+pxS0X=37N)xwF|PI?QuEG;1lh$fl-b2!a?&$N}xnL$Fle^;~!NqjQ9c_==KXfgb& z4aqB5B&+>0#xk|1<$r-{tIZLFwqhmtorh7#JXz#&mSzAfS^t8LmE(erG(Zb4vnjQh z1d+T0(G+$+O0~QOU}7vDs0cd-$7YMCU9l;yR*h?8hBMM!s&rGIkcE*!mSOrESIEq| z37J(;zR1s{+Adlzm+5no>L!S+0rYoW3k0p%AV&NI4`V7IR#0QAlr~K*7{;f@{0l=> zJ|k)lK#HlxuuPpDloQDcO8?K0m42iQf%ScfMF-Fr>MZ6=bw94Y=RL$n4wzeTsBkp^ zSBv+GsZa!oW0qsyS|hzvK2OTjvBS9IkprZ)TDW#M8(vnuTa6PknjOJlbaO8At|Uyf zt0L`Um;KJY5^dl;hP@@W%+O!t88CJV=J)1(>UHo0$$AI!$CSO4Mih4%@z0RD$YIhH z(sE5~+L0jX{J^NCl+rKpyg>9hfQ29Cwvg`qt3s{A+^WDZUb+kokw2tHUV#bhT>Niz zF$Wyz`Alf_Py$CCPfwqwd}$@jyaV&(yTTcB6Z3DGNw!IjsNZP2+uY2Paw04&K+ zw@ZYue48VC7TXQTtiu`02;yM&QhMTMk`DG9kv|d1IWkUBBh5@QuhE;YB9U*!z!~x*)ma{z@J!)hfZ&L7 zq<4s7jz{=d8KLEx&?;S|sd^$T(6~&L$SSR2iL0(2d`84sz1}61WoRG7Ce7HY+R(zN zgruGJlR$<%Uk&PkB0Dt59uJ!v&bK3OpR@)`PnBXgfiH8D0(S$JcdnxBa(cRf^$BNW zK$xYCI-**r<_m!g>j2G#X;G^a#sH^m7VzdIJa9Zzi@Y%5r-lls-T{N15Oire;j_tR z(G%!=pC?sm!LswBe0`=8m|JC}Hr{pOCEZGdgpboY9?$Enu>|;7RFMg+4v8l_ita)6 zmuRy@0W`c)v9uhJLEdx~vd5Hk?heQvOw^6Lz!CjtvSXzTJo=#C@H;1_J{ z#}FZ#GRm>)5)ONj%bbzj>4KUYN2^hmG2%WT{x^VT8Vv@iXd7&?8(-gOLa-=3M+mJJJq%5D9) z7EQ4k1Jhq&=0i0WcAiy0zQ7$?wJ;y4l}nzz2vYjh`(Xg^QSR|+aSyqUra+(H!iFvH zwaZX9ir4M0VDY9LWrovk;ZxVuV{hW>p-U>UVi|Q-C z4g!^>wFuVbN3+v#L`-=$L1Qlp0T$U+ZkNx}oZfoGtdkr` zX8Le*xp-(8**xA1h?$iv-lrHTs&tn@U{d&r?-gP9Lo>ZNxjYh5JM!jAhnAe1*QvwC zOZMQLM;GK5JWX1>T$804Z_A-f8I>Gpua;w*&PJSkS6cXDG&1A9jvR}z(qGo*tEhPx z!cXJ=0u83vRq!(plarXPRqI4&@CUZq7}mD&kKXwbx0jF+sK^ zjh%eAkEtE>vz4WqI%YvkL#%~xp$iN(bA*;Fg!Uf;_%=x^rxP5qbpB(oB|cB!;{41z zeQ~+}>9G3tj-Rs$9fh(veC7HWb#ykwZ{q7+gE_VXd4AtQ98VelES00Q)!f$b+2l6t zN|vk?)-FNZIS*WDWZ=)!{nn$VSFLN_yQ){S7us2PA-gFUC!fQ2*`$5Fa-x;7)AYD) z?g5fpYGa;I)JSn<{}T(#Dk{@M(EJ;{EWJ+XYaBax;3fGo%iODd#i6bPj+=X-F=_XpocnY4=5t$UL7A&ap*UW zbeOcVrGms*rSv`l#gn@(9eu&oKe}!Wdxz?V89C%VlSLFkdPLp`SUR?N>dyD+((T=I zMy$WHuDTx}Wcvn$;RT|qvc3P9Txf=SNOHpECD}G4DnlC#(z2NS$32Gf-=$0v^SQJe zs^&2Le0?y*S6dw+ZYihF!tQOJ6Z?*EYeO*)Rcmo|+j`;+Dtac#C9%bRf-;a)}t%DlPz6QEpnPPt;cy~wGMcZ-7prgvhA~AwHdPQ$ZXlYz;`_l zLpu<0SqC2syaSy}eZFcOav7s_dlQUODa3mFJ0sER|4Rq>>x(6={ugkQjphFbH#r#? znEtOFh8tdM=cCbty*KrH9d%SnQlfP9|F)iYwfca`-tqP*MX)Mtv*v$I7%Z%iBZSiwqe%SA*oB+Q%#i&WAh zenJx4&50<#1N+as5Z~-)&mcL!yc^c<=vby{{X~A^ZkKJMnD*$~vTd=%;I?dCLn zTK9PE<(QqzB#GrPWs*cl%&?yMy-w3bd5{M<`PLlt?Vk6(W~@5&ZlkDw?oM&cJo`p5 z2kiG-C}x0aU-WxoZ|vH9ny8+|yMBID3;Zn59H^usQmQpfvu(i*aKe;=ggDHbbaFG$MZ?eDZ>#7Jx`wpB>$EYJ%8vV0hi8@ zlfJsS)@g9aSmGgS(!OK?lql!3;EG=yb4a-pp%rr_LNyG>a^W@fe)HWaQ)(uU+px`D zdj5D-vk9V2qlQ_Wxc-5Sn_2`8e|jD%6N&_5sHaQv?$4b$Q_V@SdJ^!|x9yv2D`ZS$ zVCBbnB8o#I-v$FQVC2XDrx^VVumOwC8XUXyj^I*#=tc44Ak@sKSB znU}4p-?CPa=1rBh2uEkjWNP4(DoRs;ht4L$I4D8_7~+gzG8yA4U-QvBM@!$$H+Qa? zVeckg@{nTa+#zsu(yD=8WaEPtk&a_`}K|4|evaqCah{ z(J5f7>-*5?4Zieu;D#)!*z@yW2?j5Em?_cVzGL+oJBID&IHgHZtLquo@45FzM&GqUj`nfVNRh^WP!i27q~pV^qoa%6yRJ@z0~{?O_vx|g6^561 z#yB3DWc}92ntg5b9TH})O5YEs9#PPss)v40hZU`T-L5t@MW)|NYKrxvWAQJa$BjU_ zyS;N>sY&HF(hL)l?VkbO*fn*7y$xCivCiksT$?E9%*#pphJ(?(VfZDre|}YJPiPe* z4RK+zw_6lBP^Nco!TR(ybWRF;(9uJu@>HQD~j@ z8LN67_KVjEWy1#iQ?glmk_qK4j%Mg`*jmqLvBDkw%9WaLqte~o%2&@*_b-|Nf?&%4 zw>&cmR{>5DHHq9k=64ZlQt|_)21SMMPfv!r_YH%1MkxfipVLk@-#wok{=b3e7vqXd zzf3LRXwOJpAZl_oo!=#%1TSxzvz94Qj4(^)Qn1)LwgN)IR?s_arYIxL0UdP<457s% zN2UmncWV65B*Bq-njlF9g(b5p(ND-`mW6ATI_$XnxIk1WA~5A_ENWYrVgnNdKmfrM z=B5yoNOrc!xVKB+g55MCs^Ep3!Z6AZoV%IJWE>WpLgnVPaGL2XQAk>{9^_?N~9LXK!ME0m7s@jkmo}tr##59d)y6od%CTHhOMBI!u42VR+gC^{W3b= zS+C)mB#c-4|?$!RnIt?m5oL_olN$>2Z3KJ}yBsyiNnjC0$hT`(*m&BOkl;Y2fGj893({`p} zct5v%o%q0u%)Ul{|0d>XMVf)xTP2zHz?CX(71ph1f_Y2FB9SVcNI`!R}c2=YWjV_p_2k`g8RB;v)jn{`DV+=QzXAuSlI`AqU7x$P}p;${OB#(S7b=d!-G^1-B z178dH26D(Vtv7AZ2e`!cDp%+ATtKb`@#Ge_cfI z)#-z{HH^LN!;m_HxII>ssp_62iLYCnemHM-ZUgSZI&B(1LJH_zY}hF5rjF{FSWtA^ z60f^b-Z-hXL`~(!*4MtZ=eFgO0cf`{0nI3{LAGn{z~tYvTl?IxwVU;isi@#l-+yF^ zSF4B(Z99qU>he*1U+B+c1aFrU-P~bIGhWJ=zHnk~;hJxEJz8)*4CczHo7pi~N679Z zk*Z*jWFpG`k1BV}B7VaQkWYd${D7~Pzy8wg#iV{R|Y1lXrwKoGP^ z%xf*fg5#U=Nh=2~X$)Ck4*!VU6T&9I>@}dcu{($$iORV2YCtP zyC6FQ31H>ay3Y#4g=zDR*={zDh4v%J*K{tg^iB+S%iu z4MR>I4-XN5XqF4aYqF;&4Ivkv2bZ8wDu>D&Z-@&~&vAc#K>+&xXn^ZYz%8PGo-GOj z`@P+^<}~w|<6SdO6yJz>-M)>N8``ENEv*2Um|MT3rNsrntzs`aZ7lHlIis`$_*od1 zTn60SYy$*i`L(?EDoDq?Zf+36>=t>-dJb+3d$tw<8T47SA96e%vL;(+@5b%42y4@zG=gyRso`TE$<(Zt9W1EY-2 zlsOGz!){4~X9dl7zl!}=uTAfSxq+$H>0!gLQ$T}R|#yxIxLS zDhsMW6YO4CRNBu-5R`Z#be-=l8=Qo$gO zS8fNLIx?$s73}DW*U~fW=G@l`j;MG?7^#;Fl!6l#EvD7R=RMBO{u;Z#s2Aq)nDjJa zq`hh4>b!4=lvIUsIklF?ma@ZLT+e=U?c8NlleF_TC3>`bl~#BE^w;{P(@+@h?~i!H zz;n-7#!qHErnkakxq|~)6KnK*F(#4hMq2iaEA=6HEdBN_WOzs9vf;DVZBsv+v+b{A zq=_LHKv=sSP3kNL-+5Hb07Y!bxyX;q2PC%hF(p_JU-(zf||tfwN7Zirb$t1?bbeHT3Iv zkZq!st5wCt&(2;|*sBoWEn7r1)FQjyRF)(ib7cF3Cf1;(id9gf_8%^&-Zj7TK!G)J z^|I;&@t^Z0kH_B(?UC2XUlCW`u2zp{dG%DNl8)SVn$xl8Y~&@>THZfugm?YlIP)Fr zU%HZv2X3Vxt%2bD!dun$_umRRJz{?utEG{hZ@Os1#MFr!yV%<6aZ8K_LjyFK`KMA^ zuPdm`2i%By1CVI0)>YhF+sW(isoI~hzou>A6Z^+3uS#9|P3QDl2yd&uf!HK9+^_S4 z-QOU?QcV-}u^NLyM6UD^@I=cu1%Fq2t*KPYmeB2S5S8L=!kYohj~gB%h< z3Qg}V_YiPW}vH zk>P567|z=(jCoqnqvJ6o@8I6bSa*VT$vC z=6%<9r$sp0ybCU-d@^*3FE}3Q=^v&taCVdQQOphABL2_$S7ZfEEtRQidL<96dp%qK zIHsQ6%QWKx(-m z?rh@sH$A@QJce`DEal~O@LM87Y?wy`n3AI?hFC5(tAvqCZ^6W71y-fWB9t@BrHEUy zM@McOG;2%G)YgoBjj8kO9=Gh!;x8V~V@*8lwB4E9FSS+&+ZmnDJIsG1QUOe}#%7nN zb9s>lfI|5s?!o^UJ-8O^h1Bm2pRGEVO&*l$B&wiD#n_sTxB9*M3;Tfz4Fop16N%A} zQ@R^zFwL#P+yk)=Akrd3ZYr_w>#eV=Fyu*{LK$&ij<#>!B-0d}zZH$?R1(sbIcas@ zrGVZar4WD!B6EX%&%+eRxG?_N;mQ&PDfM51Tx21Pnkwnq_wKSKI_h#Rx8&16-Zz>@ zW_j8$8&YF|z#&;Cn;sS*teLQI1ul4ijFyjCqT69s=Pw&n8bWXI(H(V~5pdjX`8F|V zHuO5vg3VawCbF-|4jirrKkhte0LowJ4Chq}Gdzus3_tCcfD2X??cW7vd^%p{lfxk* zy}R&lT}*MhfPPwNe7fsRROgj?%sGc-`Yj*fgMYjr5;VK z_o`a$;T(mv0=koVWCw1bi_4Zc?vUMf13ePXD-0#?j1D^Wq||9y~uipJG3sw-$~yKVAMiZl83V#4tt93(*PL5Yq9Hzm>U{5iPHCRiw>PQJ+T}mGO+Dvs7 zbr`OC*i$AnDQ~bQ}eN&hVv#s}xw?{aQB$wl&kdXFBuPH)TrY6>1}IQ+wP? zag-^^)Rn@+V^MJ-s+1BFf=?$6&ICc_I$@M_bEF>FSyiK%^v{An*g&F}U2hU(@*o)= zqtfsEj9fcGcPBINTBdV39)*%Dies_P3L6iBO!YEKzfVBvAs@PNvDyw- z-<)$f6|t}JIAMw{CWC%Q1ffR-GRJzblDo`TZ;)PU%}^~7vg~&ejP|s%QWC>NF{%j} zgH$mwAWTUzF#&CGfJJ(L@~g*fvY$5gK4Ur$5=Pk2fBKm?N#IReJ9SZFuh~$N%a#)X z%xqYsFO;hWHV66xsmI2)lD{gp6N+J`*Br`?o+vt)tf!xmNpA*1)oe@0WlzCCXS8(; z5qnfsDy;2}KTC%@h3(Fd#lXvHh^WH5RG9Z_0d>s&0X?R2hNN6E$xN;%xBadCF*K>x z-rR&HN+b;A{g7xXEi>_Acly7$l_aR2rDiZtG`Q_j;kR8b^ok!zll1^lz&+y0N{+G+ z`nu-RZE6zUdWnO0LgX1~!(Xe6_^kAOl{B!^&HpXOQ~Nz9 zT!v$`5BJ(%C?jN(4Jm51D7)OO7cb>6ZOV(|dIZwP_fI}xS^?aZXomG}o59?(m@McF zU<*!%xvTiVXF&Uih}h1Y!A%a98TWqMFOEKw7E~R7jtZ!KU0hTLJ-9ln8RX*VHXAyt zTRPRIbN11OAA0F$eKioeUQ$s-)*b7o_d%S-nJcI?PaS4!v*`9gDF&MErEZh^gdwmhVkqtPc&r6wwmW zUpk;K#dg;vs=Yrq5k%0cGFy2PE(r|t`6Qu|E?Gny9H@ZFMkeFgE{gX&?i$1l<7MQS z>1mLuVl&h&oJVi(%WdWI(xL@%k`$MWY_Y2uYcxbqsx|{?4h?$vM5{M9U*1s&##JCN zqRXwciconk4(I`A<+5{3W>mgUWUjofW$-%2EoZ%cTzklFsCQd*UfGx^(02Skc)~M ziHlsf;^kD;OST?pHqd7;Igo-3ubK-Q!akAbUqKdImm*B{*&dQgusCzA!pJ*h91rKd z5)H6@2{BU$OXGdVv3u)5Hkn27`ISF7lc-8_d23g~?iimJSu|CTIJ(U>bzAlL!^nv_ zcsyBpTp%oykWrUdJSF=y8e344Ce7han2{K?ODaAX+jsFL}O^oo$-O4HL|-|?gC za)W`h(Pc}=+4l{EaSm%=im~r8UawW;oTe|Pt+eWVW#TTtV_?*1{JC1KQvGRcc)f61 zkcJ`aRUr?T*S)@-*L!t>(kpG9peUmaQHea2Ccw(-Y7;ZZw0At{_m?e>5--Tzjq7iiDpyL+Xi|{0@Ww@!{@3C zlt~Hnf*2@IM+KG2Par-W?o=Rf(692-6SB~j#D&s$c~X|XphQ2yS72fx%OD* zxKw^EKZa0SW&>!dVT}=7rDf{brVL-4S0)cHcZ*UYpPR~I_2y%JgYRALKF zByZrrXeW<4VRgh^c~dBxIpbvcFpg|eG2%9~ia*v@tK{@{YE_bzZZ}vmr>Mx*w@Ou# zm2JPTw1A`s-DE{bc8^K@vlPMPpYU!5qDimB;7ZnH0+pav2PUvK;|DWI-_VVh5899y zGatFOb#d#gQV~mpI;myS#xm>f`joETaFT&V_KP<&AjjQ=TTApHQkBCBOUgE}{X3h$ zDQ*IvO?VeLJ3rRv{yDIyoQWV&q|6kIYjZvZ?@fKOCOlgr2z<@5O*O8(HqB%}WV zrTojueQ|m6!LwDzOj+nJ+qj6UaR?z*GPOSWi`ZJ)mSfpl}}t=^QWpDoK~OO zsl7!$P1gCb?C5!;X1H4AoBOXFCrjMYg|r2)E?Qt~d7bkf0<~EssZIjexw$?_%7~>#2HHX8;W&^5! zbBi8j)TTUi*ryv(N*QO88B3j$^qhW%LUEIeVp|uKqSq7+ukuP%pw$;+MyydY#lFA? z#TFEy>?e{_iR{hsyh6=g80gpz5Atfe4?F@DM`y?7NnNP+a+Wo3SR@=BXC+pe@cYF- zm1B9uQ^pc&1h9{yR5zJs$oXyd(kNC^UR~S%7N3i)7Lqhm(-|c{GQ@p3flOUX#qZ## znjnjoK>(ieU&`|BSq@gPq(3a!+vY~1iCeA*hQ&@Yv$gHN;G9K z;zubVZlnYEf&x1GSA1EIJSJV*q3)^@ASa5g%%ErA-N`=^7y6%g39YJWr<5X1LWC=;;EThSer(pv3F>S9E~dMsY8#On-dJJ1 zN^KV5Livzw14IYv7P(wsaQ~n4Jh`S`=A|=qXj!E#vaC_IMaRYuwlOttbwX@ zjEb(MoYE_U+=TJ#Gxl8??)gBo*4%^tn^Ssz+R#7jl4E{WmTKKnv$M*%$dN}X|0W$; z;Gb%}J+!SxjV+{>&i{U0JT>XuTP+<8kI1XW)5S@WCiJ&nrav~+v$BkolRqv8Z5c;_ zdTujmyDn3$TZb}oUn;|ab|!_A%33}W>)gm_o=8{a=o>JVS_p3G#%VNY%Ufr>y?krh zvS?vA>#%Yw*d9Nq>UTR)zHW^~!rnKXtm(U<>~-}rLqru#vW8f{!jBRiGjBNE+M=n{ z4&-hmE4@%-Z=m(Mr_jB-=2U(sbvty{d>dQ(h?*ow{Lb#J<{JL9r$@Izt;t}(Dh3n(}%JKqTO|y)|Z6Y}{@7G~cs{_%8EPIDVY}1)s-@lKtKY7Xhj7{d_YxtjMGgD+;t2WqcZS?8Pm zrBhkHwnf!-;naAh%=$;vH}{hQ!YrLZ9v^ssDMBd|aJV>j>Skrqe#N>#k3Fv4EmMqA z59E3LEAxj*|K>mS(7>s-_z!FA za_|n`ka%4@pSw1~&t$0MW(}_l`tpcXS5pe9+NRa^uLgGZmsxgs4OEa}rzVXmckZZReN1$B1s0QI-CLr43U{iXeE~f0 zTSvH3DsKDY92CQa`&Z-bLDE*!`A^Nw*X2Eyx*=YAo%Ces)WSmB2iN?1yVjMi-fddc zm#Q9?S|4NRPw9nXv|z~4#NYXp=Zgd5d8p5G4Wy%O-3?>Uo$|U1ND|FH^hK8U{@DqX zF0?Zcuue}$Lj>T~q+(A^B8-Z%_09TuMEhY6Wn`6D>p#mh<07k3(Vf-8wut$WxIXsF z6X&P5I4Fo!(PJvuP{t@t@c>!NDs?8!l zT7Ti`uW=3s0tv0Ku+4x!?SImM0C1d-MXT?yYV}l z>-WAdZK3D&Mw>?@1#@Kg^kf~ZKYTl&4HqQkd%U{wewq1wEjMqpPN=JMQDz3_|1J6TYU`U0qro9C*5d(>ILi|9ou8s;z9i&LbCL{zLL) z^dy4HCV?=AKIU}9X&m#5O0fQZT}u0uH+lyRoMS~m(C13u`*i^Qo7_b8+^C<6AJWr5 zJ<05mmVWKryV;N7p0j$rbHCQ~e(33n{43Zoxt2{xdAkX*5_D7F0RT zCovFU+xYTTt8EPRy&<&cG`afLM)%arNdehT^-W)xQ=|QJQ*{$qUr~kjpB=%^WV8Lq z!^_^Z#Ki`=&|OVr&0R;=cbw1ai7ij*haM6piwF468W!gFiR8H{NaBE$%M%goE6h&` z2Jq)SnG2TnG^GO|^VYMM`1i!hIS6WpDTP^$6lLNMeH;o0)VSQ{iDkxE7KQET_wSHw zY1Nj-!Vy$!vpQf5XxLf|7CsBcPycHC>=_2%x!HfbN(e92jSMo^S!37kQOuvuTiyN% z$#2c2UjSeeb-!*R71wVdV%B*5p#dC27!Hm@=8wDIAmXUXcuFZph-PfyZ{8)=9UvD} zTY$fPVIKj-J+*o=u;`5ksj7+S%K_Dh2o9}8$ZsD>P9+g^9hcn`|FH)*)u`91M27=mNPHIc+< zPdHT^5fuPlNneXD?b0*il}Erm80aXVMD`mb;g>_WvSG-tae)Z|EQx{9Nr#^>7)$IM zvr}jMBNK0x{eV-EAxQbYJ@62F1nWINftW?x06fax_o`FRAGiQH>4bO8m00lie<(Yr z7}0_@Yd25Zwr$(CZQI6a+qP}nwr%sY?e4$lznWyeid}BWx}FDIRk+jKek7zl>`A0}q*rw>!Vc6| zT__k!BBDIKqX`vPRzyKR5YK~sbVNuJh^wl{!0kTw4fwAh)OUh^X-X28uRg+M!tfgv z6&FMz-gghQ(Al?Q8XiL(1r2Q>4FU zE>6PmQUY`t2(-X{_l9JW2L^?#($Iyd7^q;3XQ)z{$PiGt zJ^bvM5O8>9tWnSnXsQ*)t9{|!MHko9Vs}9Cq5bEjKXe1%>H1p@78hR?SLE@Ws41fbhcK9ym6cR?t{m|)lOUX7`5(>Bi31k z88RwTBV1>il5Ps+2mze5VCd;kN3vSUR zkIAlU{t-7=>@GgN`M+f&DS(ZXjPLir%|0tr((_$Tc*3~NCT$u-PgA6e<)AOrA@s;o z05@g8aJ7;c{d`4?0WZ_I@CXHOFMYVG83c^#Z^nN|{$w!XU^gTkfA-5j)n6y2Q6JIU zyCeHu`d2L6ztE6H09+dPS7~$7GnX89(|3X7Oje;V3f1*QZ%8{Rn8F2=F(=(R5!u)E zX#f*1w63*{{KZ$r=M#JogILcBhZUI_)7?JecY z_Y;>Rwc{xK@Lp_HG$@XaQ(KoEy5xK=F$1yu@)$-VRN(#Y>Z=!z5P(rLyZGDAIv_B# z8#*Tj)-?Ft(Q`=4~iog!H1DZ0l=0q=glCaiLbUL!Mlhaca%J1%;(_Unzu>dAT=zIu8 zeNHrh>fc^ur@`2lhAF$43S#LpP!zb<=bCbP9Z>~-@;DcfkHzjIOkF9I_JjlXaZ3(Y zL=6|`h<6M>ZbaAzf*A&IDK?wGz>9T|S-zR# z{ou6L@_U1@nbO78WutV*dviS>KTSo!=<=W#;hkm1tL0aG!y5Mg!W z?B$JfC15kR5&aJ5l^AJuR6v+OLd1VVHEcuU9S^r*0u_H*hh%BdDd$DjAas##!ov3X zf8SUu5hzZv!VnHe{EDhFfhKgrp>irpQEXiWhKVH@O*2`_p% zk_w`T_+yMua;JwYJ`SJgp9Jjy8TU+eFRu=&wRx3-mF-ySm|?OLzWIWU=*jf37D^eC znDRyzYESd#%~(T{s|T=Zj=pZ-C>by-Z0&|a5Mdi>0bWAXKEl3T%x%x8h%3vBK>_Eh zplv_Uo^|>#;RHy;8-sH+Dr^PMt%VRqW(l+Ee@vIp9EaqE7OX%K9ZpY~?cji(Jd*}q zsE9$<_e!OLfuvB)JmReUQ^MdJ&2XomH1JAt*C$s*UzEu}_=yDbF-Lxv#omv0n{RN@ z_wTMuUy3;ou|$a2c|bWV2q+CUeh%P|Fz|lvITfUUyR}IF-l7^Z_KsftA>qS^7tgdz zS_GwoVN-IT`}mGCQ|M7yqWl$svIJ0eR{`-H5tSrR*01RMpJFHC89h2j$zlf>RxB9h zxE;X55n>+0Xilpid?K@>prC6X1?5;qM?qodHsZG$s-}$G&Rs;rLrG0JX;o*Q_FXp2 zLWGD|AA~d#Pg@X3)cJEyhzmnpq9YYdQSsyVt2E~V9n~%@XU15KpQ80W+4ba* z!ja`hC566^J0IuE{l=J|dgaj*j9~?h02hIb7H3Mef4X;!9+4zhakdm8^C+b%C!DS& zBmkGvmZRVPil!3Ua`MVv;g>zvXTLlw>Wd{{4uY1$_L_zfSU9wP- z^JnooR2|1G1(%{ga{qQ4G?&ik_f}curw#p_n+;Y20J3w+X}J?M z9gLOxab&D-+^qKh;zV?-G7MCFaPbG~-a5R-F9#*7bjG7lW-34O-0_eJo0`;80&2po z1e4054;TIX@c{Tb#*4A<4Z7f^YW!vLkZF;j!$C)j=LlIdiDc!eQ5bO(I%}&8`q_vb z1?6z(Z}J+vF^@IkGpJL;@7i_m%_k@-s!!mg0FS1+3wwt8r_8NyHzMudY1LF|jf}EV zqrF!28uXzvB+P8p<$IpFHGR=uZT2UWSY5dGNnrmC(8^pEteYy30nX-obb1K$uS zn%k9~G-&4c1fN_mZ*5k(Kwl4NrHKDI|0qQ(=Lbf0ilj&j9Et~wmxpxhO}iOA&bXcQ zlKL+tJ3fW_>@C>GSs))T2H|~QIRA&JZXzA41?tPbV6GR0OGjU*8@LN#abF7JYhD}v z8PH*P_j|Dh&TmtKt2v0*v|$^DI`~VfEGRc#u+4AXQ5g?pJQ!s_pALU;S~#sq@=;<| z7|h7Kpm4myCa7j!r{AP_{FV|2_`5jTdTMY0^cKU0D863N>RUm?3L za%jw#FW20{hQpgbV5n$6fDKCiAgpK17oCcmH^O{Od~mH(o%txt0Q-ArKJJ!qO5pNf z*N^}&UFGvoSkQ;b%lF#!W{EzmNPMAxf^<_r14Q@p0?N~yxZw+kAvQ9I+edo+TWhG0 z>IFDK-+xq?d+sbQ)J`j(qo==k7(KG5zFnGobJ;`ziNJM4^dw6T*uh`gPRig}LlI*FoNT@b2Tfk0IdvMIXV7d^Jtt9I;sHZDJekjgU^aA?z#_cnWq4Nfc6R0>* z=ThXm=CNnr!Rl_<{76cg3b&{{i)(7Id6SDl*x5YPdT*5eHFnL&A}oF$Dd^WO>#D4D zrV-Tw)nCt40<>J-(;$A`hTr2m&2C*+_aoFh786C4SPzmNNsn@{Tj(gfTx6ul`Oc;h zA>00_nAx0e+1H|eszqYYobh9^nToHjX6Ei1kBt))zJ@S#k00b4FgJ%qLT8)^!Ey37 zA?Z*tV>!2|?Z|mRB57<>-C*ITnPl`&dlupHrpKQAtG!pK>Uq~``ktn7b9gm4gY$gR0%VIvefVbAm z-0lxM5uFCD%)L^p0jhkB;Zi@zIF)JW_0ZYG$_MaK;RiZiAVna?e7>L`ufFU8mrt) z2TWmx1^YK%f6o5%vM=yiF8I6`V5zYhJ1((Gf^#jFq4A&mQF*rg21P?oZVKi%% zaDlBbh*L_p{3-Tow*$Qn*;jZZ{raly?wmnDXcb-!8}s=pnaFiXm`7k|hTC}UYh9SY z{SeMD8!n3P__NDS)0yVs<7AXs6qh{Kih!u^NC&5=zA1-9X_Pp_pX`* zc^J^F7vu&s^V?&DJgkrui6G42=M(#&x4(E=C_NZAEAOE^27r{(D_j&D5->I;uWwXT zExMSK;&Uz#E{CNf`c19XasOC+)^^y&Zm(_?B_p>0pkDuK%OL=A#RKxItt*#3s5seFgp>Z`4RuvQ>b6O|}4U z$pqY%JRFvBF5Wruw$RhL4CLaqezK^J!48-5L2>w}4B&wTNoc~RnL0#KrP3=w-;wPH zY&Mp-W9PCacw2QU87`oVx;0@Gt^ARnu&SHupmH6}R!AyCO5&^cC&a437Nkub( znEXqRmsOsZ*(@(bfbg2!AZ(VHRP_sl8s3ZEsb%ZFOHL0o%}0ZB-!c9_0O zH8;9h%H-Rj}ii`9Wx%gBKO3N`Pj>6T*?7k;x5tzEahAO`P zXEQF9+oWB^Z5!u>tajysxHtstgZ>AT)sBPz98oyR_b_KoXMSj~DQv%JY4#o-dgs^9 zT{bX{E|JFpGtQ8AGFKsAcDG8F=(pyyG-!e4fpUpoJI9|FW<}33lSXUp%$w?}TJEQk z>`F4Qj9q@$0aCpx*u+!K&)Q&4#T{z;0+8_uJmNv8$_#WaT#+psB%C;|in**?#!@g< z(Sn7YFQAA!o`*pGPadP*8OhA00|+G^XYy^ekn)HU^%sZfha^{I0CD<7hN8l7Ao2Yv z8cF8yu*#hiB*ATgpM}`ZN%?Chi)8UD=rv)-WP$K<@q?7;CuPMvvSsTpK8u&xQxvFF zhi!#xapDRu*|IZp7S#i@=CshRq-Y#xjM(Nde41&~;dKb>Zfr~A77({ezK_1^;N>1# zM4M_Y@!kGKgw+|R8B%*3+uvs-eRao0{mk_QqWzQv|SzcS1RGe z#nYMUZNvIsz?Fh@UWs?*lib@$$Vh-63_F4ND`e;cr)&I+ju=aVhKhHv+66TZ8um*z zeatKru4$xcYK<~~XW3(Y|4kE&>s#Tt$tsquHE&|Fh>Fn${K!30`br~$S+ntv=|sCp z4Y#*klpdV6(QD_}J>b~S4dpE&PlQa4V8PmL)UHNV%3L_Y>3Z!m4MRZCf!SsEn#}^K z)>tIf#dPoV{R1$Wcn-~Mybl3$gYjUW^lLL8$)AjWXobry&+hqlN1RSwVF<^bNm&Qt zTb&~{hlOMMm1@V?b;-Wu8c7{vD=+CJZ=L?v2wpnwrosDq>vQk^`TeqS4t+$?7Zz=-s` zf&y!z0;UK8M~2yc-{#Q^W#q8#d4Tl=0?l58IST|naA1G65TF<@Ac$2zjzH@Pyx1Wk zh8SjYK2W`l&ilgmbY%s>wHTH?t4l1UTDvS3JCXs1fQjZLW}-+J+2oAVPTKC zF(i&Z2BivBA!_0{b8PPrUefPD!5Q_r8KPWYu=ZStr$(cX*U%32=Z=TaXx`@Pq>?^| z6iC}Sb7h3e)R;YINbql%Ard<#W@nq*=0L$bNUK&?iT5Hk@4a|&sAjirUT<-fPMc@4 zb7P4^^%{~XV&CnkS}ZK*x61&H^eD`3S6pTVzDI5Gm`(&Y(raG&`6b=CXd&$gqrifb zOoZp{!^c&X^;g8=7pOcJp@dLn>_yXk;9HM2s+JLr8WM0%jXPx;W6zVu8#a7WKy%Qd zGkjxr%0UQ5(in$Qtt1X7XJC>$->Dz2=*0kzb=D{NxAQ89bzFU#kkIMsH7g4;yy0`# zxP5f(MY#4}(1Wehv$^(3`;z$x)*g$`Wd#Y2ePoG9@Ny`-gQ*H&N1qU!PnLoa1|^h7 zkoI~hj?k2AFD1Tn(iUFpn8Z>ruq?5TyG}GSQ!8eN?JZuLgozUnsw=D`(TMAm1C$vn zlp2lT@78TCnLV-D81`rWMEYpn3ajKSk|T<)hZ1@%6qc*h#H(jG<|o)Z1S7CK0+M}( z1c5+X5JG&ZuTZ;PeyLT*<55UCuGI=l4=yu3x|^@DkqbGA24S?*jjunD@LWg+8GLe>1WYGu7jHo9jB7b$wjiYQi|ZQuGODMBe1^^B;a*fb zH!un``gungWz!iC1aviG5Mz#)EX z^zfc#_q(1|UTnk={DBgoqkoQ*2|KSeK)xjjVd;hP3O|dw8~#L&w) zn5_WOJ-M_^GWK8mU_`Vr!83NzS!S-}+MkC)?9}o%D{d;WO1Y(8H`BY;P^J8Yw+`+y z&26AQsxnn7bVhkC~?keXJnnC>oF|e{PaVXTWObB@0PcAHVq07+e_GpWwTVq2&K z54>3eMk{YD0q*7uYd**BFmSglPK_o^QWiEQ^iz{XQcDpkq@!KxQbMU?kG&qfAac5p zeB9GILQ~LzPLOHj77JBhl#U}u$1grAxN|07xUc^mVisnWvVnGK_`+qTy}%~H0Z$YC zylJE9#HGN6CpYwNNO*+&xS^hOVoqaFiA z;#Vik@I5z@; zUVk~lcii(pc2ydR23#cTbY#WM%BrBme6aHx92EuY>S+^kwn3peq~b`DI)hNY)*8(d z6&a!-B%Lz!7|8rwuz>irJijq1v;OEp2cL+kz$2QS-X|Zr&u!#?GL!!ki-Ml%|6nF> zCj7D}Zr&kB=q4q?;ok%P(CdkW&To6~0GGJ(Vqd%#fUK}Wql1LWAhLAVQJQMdO2dFNET z)8-uqi=y5ev&VrQ>L`;{33~T>Y$((%uV6o7Jt4989!e80ykxKQ(F_LsitY%(>sT6U45fk!P%aE+T?`%Ip5_+u$>F1nS?z#>zToU3`& zfYu&TA{{d2dpay4Gws4vVU1}lR!j##p4zuAH`4t47>oEYfD?UW4&ukYy&6a9)?bGz zExKC|Ct9FR`tYAG1mJ>V7DLLRVt%*B1zSz_l@rN>FsYa={Bh7SzJEBEmgMin);x;9 zrT$K~$h1#j;>X2`0qmaO(WbT=pHp@!@!MTHMRywV(6M4-WFY)2pkJo?QPF36KpZA_4h!jX$u^=myKd5*k5H(syJh z@TL)6uR#;My^FV?dO6x;vAe%-E~XktnT*^>j@QI;Mvfc;gS<*_BnMY0BD=q_<4cVO zcf|xnM|MWm7vbOa@C5q81Fmn1<^{7z6wUKN=0D zQ98r$1CdCOt`e;nbwg`3e+PrB22@l8J~)*O@CS#Y(C3ATD>#SKPe01JqYsIFzp-=s zkP8Si{Q5xKIteRLXO+5I-uLs1<`1A(e&|sQT#p(I2m;V(iS~gMy2N5CGL^{b2X7L7 zR=49e8pgN!_;ZoBgn9K;R~7~giRnKHDF|x@FzuD)B!KJa;&M&|h^e3Sk59*A6}4IE zn_}qOWPVBhGgAj2xOudx7;D_XzhN){M<8y)K98B7AQgl>%%G$o(ieuGp!qa`CKWfD z1P|koQfozW$K*j&i!Mdc>3i5_moB5KV=@!hi4sY)X_Ve|mE;uSOvdP^0GpbJY|p3KjMisHP6}0~Zm)v7s*{M8fVhi*giibwsDvW)D?oNue$lx!5Lr z)sM_mS#&eyEGpCDrdceQE}e)vdU8vqJk0RMC>FIo^HrRS*oeCG)di5SQ2^JLi5!fv zm-OS!2KcsWd+7Tg6Ho~FXp-2yL6c#%^{m0Kozm$Ae9}LEit+y7+?_kagGJQ=&i9cS zzOx~xcwENTNMuMXv1qsPkSA)#tL?a(CM@`gguvGPRmz{j7kZ}~Deb78pph@dR9EDP z&J&_0ZfbFFV=A%kqh&DI3m1Obv6qUHVQUXf6u53(?0Q602^xpj;PiZS=El==074=oJV)K#ZZ` ztN9`Yv6@E3;}tiAckPsuW>(Yp5m~&Np1sAD3yy>sfRwn1lF4KXSQ(xjPnu+aQ!2=d z?%0BfRNP6zDGfv9b7>J;)%8bciK7u|kyoFSCUZoYpTM%^VVsEs+S6~2#CIyFvb9jJzwXdr;1;Ab1Iq7{(`=_;L*?6S< zN+lTqG&PYb1zo*h7y5#~PccRA0CChv`{30=`@nsTq=YB%s%@y+5p*VR@uwrrV8YLE zsI`{6+XxljRN^{*##Kx=51-kw`0SmP@U@cHwxRuf4Q)fb57pYGOKqY!KHa`W_w`5u zBxRRZtNlu71~>>Z;ItmAymeb=a(X|c{$2&GQ(<$(y~SJqHrgGGGH7JF&Hnw%>Fp}; zcDK#q8Y&P00o5~L3>m1b~H@P|Zy^=`w#Oh zF9{rwOO#9)bN!hC*=5C9_vf7ms)_FsjDKl&+e5gjnIORpdSYjGRMS) zeK|chQ|yPS2q~lu&U{I|PTi%4eI8|Opl>C!Y+RP3GOO|s z*Jc;CAz?)^E#Ljs^YG#NEz7~WJlE1B&6XF~3gcVId6)U4i8!RZE$e1K zE!*oxED8SUI(ISjv2@0ph7Qs*+9&riO;Py17s=m_JeazjN+vF*=NOxnkaB1oKlDEr zb7JQZr!uVItP7GSyx6YCfi{5lOmPOa-u7Y3711t;<@=s#$Jis$nHG1m{0M-RXNlk)5Z9EkMni zf8)x@p^amuMXJ|!s9twHL4DKQFDqi|_O#nO-9$WthSh2AU1Nutj0;#){+!tnt!kn` zANq;x3CI0SXuyNQ?F|}B%NwP0pm7+Y>28_dVISM%$zR0T^W$1g1IX}OqNfIDOFX-) zJA)`Y;58UiQalk#@Dy9-oZsWw8n(d~jxnuu>lq$uvtuAa!*>he)FN}qW1aJNw5Mdu z9Z)`BtxV|)=G!H>r^0BNRZAJ^?C4qOB-1fEhFdBv z$1oFBQ*1J@+}YNi_?(QvVW5-=#ijG)9E;@256Hnsmj|+OJE(O<;f6_2mZ)FDs72C2 zn6tqu_lp=c1dyUJFyb`M`R442L3#zqv*+b=ETNK%HGmiTecs83qAs@U!b{AZz5df; zp`j<{W{9Q7H*oCJ&8$}d(+*}A7u-i2enscd@IcYe;Dm&K0y$BX)4#sISNvPiH8zsn zl#;9lLbBz_!{6S66>~w*4eFX@`nf!+haj01yu>SxXm}e98)nzU@SU*xkt4bLCzsp5+UFx!D29st_}CEq(LfhEs2 zBQ`Zr0({(np9faSGYBDnY{^abB)Crlc3B{3B)h|Ypj-U3B&Is!f;9&it`ipE%6`ix zHK0o=urny=DSPn7#1w%76pyRO^wB9miG8U*5@mx9Mgv2|Y`k)Hc6HaHX%_+B*V~)c zi4k$W53%YixFsKgZNX|{Ay;uYdhd`+d z$Wee@OAsx55c;0xe{cfDEQBsy!IANbcVKm#V-`wh{eq3rfcH% zHT>_8z|*5wr_Kf}uC`lZa7?QmXJ;--C{_3BB_NgK%gABi1#BxGD;4F_t;yK5=bGqq zPaHEvKmdDbu&6}rx=Q^;aEtL?-?MM70?-N1?{Fp9W)Naq)JNa#KJ}#-Zm_*KAk1zr zaa&%jWp6AeqOC$Xy=MCesX5!Du{tngPSb84uNa69{Yd5dDVp6HK=u_9ao`oK<%MzB z))%-mGK71^J0d_zVHX~8qc{Uxw64d2_}SxmQD$*P#N=~!3j|}tIH8kX`2!&(0x2;f zju*q1hsHRy1l|Lj1LF$3bN{)+e$h|{YgDsRo6Lz9Jxi3+A_tE>V#uRPV^!Lk6<}cm zV`4ZldY;B<&)79>C3}cQ4p(XG>E4u_^>oaN=-+>hEy^pv7Zaf%@p!Kk!WJ^~UQ}KT zM=`EfUZ*$03ccFMx&cq1ok|0*aC#OJLdG(@uPdQ{&GQ!K;w+5!(De1mu_45&k0yeD zzJv|?d}B;<#qZ%@<2caYagD-ar{+TYxO$)YqlpNeXa|qu?a3`uq^ig%vkUT1kK<7`KgtBE)7FB5EQ(075_KJ-r&T~-rTxv(~VHUj^R^BcI?}m>C4v2*S zb_JXm0Z76L>L>*yuLBj4wOuw3o2l%Yu48($q}<$=%1#?O^uu@oO7v&uZ;3zJ)_w#; zx6Z@CqQPmH|0gh(ALoR1VoE5vDCSqQ1;qg=$}$*x%u0%cUCk;7$Kmz(4GfisD({KC zhx)nYXkqgzF^~um$6F8yl!80c*X?9h&Q0-7>_it@I`j2KWPG{juZ$~of@KU07@&*t zdQvh|>8lM;J#ho?0l{~?C^*%{gV%3T>7Lm(48 zx|~zTA4f^<`?yk%DUVYZRm5gd&+6kNTD;8b=|t;1>hEZ8^4=wPR1?IsKto`R&UZ$& zG)+XMN6$<}!IFx4#X*g_8L4sgK_EUrid1&n?SdqkhuMOJrf?U+(FB?aq^h~(XUq>F z>Y38rUk^*MrNey`Us{@=^9|-nk~vkAq_vdO6$lvD$=NPy4~`r(r=An}Vc}Jgo}5!) z2m#5QNFWKL*dGMXJZM{i3i7TTwc+T)O@GmJn~HnW^xCa;T8_JL?>DaQHOaT{0^pb! z!rIYnFV;-B!qV^Q_m(QvnSER2bx=-#Ek?Q#m^0-!y3K-nl1XPj1I9VZI2gay7dV>j z^k}E6Kx)ZabDQv&#tSc`n`EY5cqPHbf-d<}1ou0lcu?A2`(#DdnFGOY_T-ZfeDus8 zy=pS>fZ68;0Eob#PM84W82j(2v^UxLVf7n24*1d9HXU_UI^}W9D^OS1Y1$)>bq_K} zwcXUsW5HEcO_K}lx?Boom17yw*>N{}PCFB&a#jX+xQA}5RIIyd_1$I)?`$BjzSYSC)#H~Kqou*Gf>bPA(?;}W)d~T! z)Gr8Sp+Y9E%9uT{E)%zq;M|Y-;WzL6j3$nP7y7UoXo7{@)k(wZwRoZw^#;~`*wto^kHI66+?7Oq}c{N z-Ib0sJZWA@Z6&e&;>vmu`Ki6hEQ;H0Q4PJy@aRm_f^~`gIs7&scCo_a7P5Z6``xs2K@3inw*XAt zllZePq8`ul?%Et;3$#5?1Rs;roxE!!Gpwey&xlD7!ha08{s12}C78defkxS4{H?Ui!mwab{ zBALU`?yG8RLz6l;^EP{*4dKP2oSU=^s(dW&x(G0Gq0v8g=u_%j9Gn%7mX~oM@Totw z&UVE=NI>8Kay~}4=StfSwI{qFx)1wxoN&I1sFNT(-oj5UH5^|iur1tfgHTtmj_76j zhrD#tL3mZ;QMD~?s<1&@xfR_81q~NZeo8h)=WsIutXFK+s+2P~e;AI*?I__7?Lt8B zk(ObZFPM&@FI>B!s9cv_o?d5jpF~llgGC`AjD-Y~m7%i%s-W2&`Ca{fy|*ok9#1eN zbhxxZBh>4t7MB{>s#%l2@DSLR1-{SU#k({ksQzP0G0CuCkZ3+^Rr}R~HDFa!$RmoG zy5L|q=H9?O@hvINt{BF`H>7Qs^iH?T ziQ{1N&Mf-{fp%cDWNNcJ6J7w?WLJx<5rtUv1{GdS{i_z^+CK9W_#L^SrnvA(ox=SIUJ#b1_)B4Xt0) zwq;Rf2XUqOjL^^9K8#+Uej!uO(B@~CX#`$pQ<#o)`O`2KZ$KdBI)VCeVYobBDPgeb zJ<#@fIRId_$h#*dTW^rWA^Lrx;X;Xn_bc)w&M_MA#LDA`(BLJVF4p2oF|W@AnQ!9l9CIJx-;a2Z58;E9`lA(WwPurJVM%Ux7X?oJD?J03VIH~OXzaaVPVv=5er z5)vSc7cm|@2Eve41SA{oo&YHdo1Tz^2QueT2=CO6f96h_K=Vpvhs;#N4*yxKCg>D( zM?-|%+!nOkE+6Bp(1)Ilc#nXPnwSN9-_^lV{DIHMKLa5sIU?zh5WcDdiZc?rKRyxy zCnxD4`kTTd{I+lADafs$8)gg=ijUCZCzkB495x&MI)w$;;8_PB-6v>i(9d8n6ATK# z#ntF9sK8HnDDDJ+yz|-m_XejHC{&#oNVvdo5kak~trG+fk4!-j0G;7mh0 zT%SNP7$;Yg7VxxP^E=2yNH0>cg})^D8BKmw4?MZlp3%2oKWDY0==4BL)KI~egHSoE z@8Su)&8C>Tc_jwDVKuM*(yV(CPDs&mMAY&?)$-jss^)O@dM6u1D2>cDfypq8%w6>J zxBUDK!0>_T=;Bc;W9_pfxrNF zJtv#_9tJ7_Pb+``vpC%9X^-=`vhGf3jD)>f<`UV`7W44I<(UTyn~XpBT%n=A`jA)O zbj>i;>U8|vin6&Cf%%>jscvwKYz}n<7&cg9%uta+(!Ukg(lw-q%316OCgwO{K$)?0 zjW|;2EO7LteSM3k$dUfn$XnsVxzgD?Bf~#rtEbGeBH!m8PaMZ=N_%HW3#Z85jpU}K z3#Yg7BlyjR%$x({Q^N4NT6dmA*EAm*-ZR6M$llm#F;NQU%OCqvF;}Jb1(h*a53I_7(V0M`c9`R*ns9GX6?RxnrEi6^+^R< zr$3O*NG4y~hGs z6zYZ|0wiSbq4;}sx(hE~`8x0F)NK>oY--~L7+wb{U@WD9f@W>yjWFSpawy0{g#8i~ zVrWSX)4<#a zx1JWb^wVFf2#s1*zr`qY)q1W(k+qg2f~F+qV$wM5jH5#EMG&2BDG(LoJHIWkz_>t{ zPmVQLYcP3>odv1{6+GO;%{{ZR$-2i__iGY%m2J0$?A~$ii+2h1 z-f=J`dmqw3cqa|;zpfYSvBjm`?^irDa)y}mnBRZ4nehV9ff+_-tU2IOTV1SqAtwFF z7LX)mO*n+PUGP8=Bs3QVLgy`UL=VTeQ@p+66oL^ne9B{IWXs;X^xf$6?5HaX%to=0V0l&QUY^BYVFrPXbfE?-Fq)-ww@>%trCDE?9;y3;#6J)S`J zBA-;PqYP;8v(=mtuIGld575cS$XZn2Cdp2~HmQ!y#1LR?F)TyLAz{+73kZ0dE`pM=i$Cta6v9CQF%%K9lB^FRom@9=yI6cS+9zHu=a9}UIvaA}qU6w*Qj%FgAd zqIYevzL=P3;#4GS>r^zQN2PYpfPQ-O`7?z5Ggy+Mu@F+8-Z%c5hyJt=7G zP(`!sgFgrWn1E{6YK?I&VRcVO`7=w-eUD2Yc-Y+2l`rDzRW99L^Ptz_J<(h)$o+i~ zLLZhuBsps5k6RHMzshp^OOw)F&Fk0N3PXI#-X!1(MtX8#Ad-5G7pi5oxQU!&Vd{^7 zRVTKzMJ!N%@l`(OxloW|ag7#o&{=x-alM<{=41I zF|yQsql(w`{P$uTOD^N1KoN#bW4UZovmuv9(?D(@c)_TqS2ES7GcX|Lk-J6sqm5v`*yF0a#VGw%FuTh@mJHR>caE=9| z02<#Jft~YCxh$&z)r3;iw}$5}%ND>9stKEJuhDc>F)q-CxHbsyD(*6zHOXf3@C-By zgK#BCR|3FV8YbRFm-6z;4P}w+%F2I!mycf>ZjR^w24K_}zd_3+wL_l2UMEgMhG8kS zs`P!zn|R2~V3u{9!v=J^*t^JEiz~P973+>$=F80O%$G^JFWuK^jjXezJpQh-_@%~O zBZ*y^jO$Ff#3^mHoJ>QjdlHn1ChE8A@TqH9KFT;|t!ehCgr%QItVPvaz&(<`DvFTK zd*!y;2eg({@MP99CDScF?`MAVYt*x=qkJ@N*gsg)W#<2Ba(N7AxfsRMp70z#i4Cr4 zgtyBpd1T|;Txe#B=ICxljxd^}qr3aom~l)cS(R=c4|ZtZN!38d2~`j&49j}(iCKs$ zAP03l^T>)Ic;1yhf;v|2`nr5w`T|yfRd4+V)1H~-zrh!jJ?u^J>EsM8m7HxL>16R4 z=;E7a&G8wS8UELBhG}&fJ8U-S?%CS8dLCt>cw`bFQ9tiK z8-G;r1MCe<-lFjWa7=gLQNRV?-O=!?>kTV9ozuO+OYsb{2tqsx%XI4Gp(P~}$tf0v zN_Qnft8r)3we)kt**lHFDH}q0fP&gP0DkDQ1b$={+n17Ce z|0FZi0ac%Z^Sx`i>kZjLuIda&K}Gd#!s%gPWQ2R5%teWLx98}qcBBY*sf`|naQ0w@ z!Y>vvV3xx>+aPeD{i`|9fii!m3O4r~`W(hc-V6Yo_;p%8a01vHI5C_}v2x_cPc zu-GkfYlxsK0$%?gbHL8!uTj)Reh(+3egNys5I^1!Gly6$nP~j=WFtHb-bG(#3I9xx zN%3I7qP|mQ3>d*ee+d2HxHmG1gPz2NIdoo>So`!L3?lmQr1(ABPh@Fxd2M|n1u)Lc zrZ-M>6?3v4=};=rqXb@WkpEf-X%uauvUtlsB6!Px=u*{f?rF6s>bUO({ygoW{K~7V z7+l^UNx^h~smz`6=9kjk9Yfeu@i5A1I`sERdraCYSl9r7Kzp7L#BEQA;;Jrxr+uN{ zUA0gJKDOqK3nzQp$?A`{cJbSBX0Phvr}tma9!{PgkW>`m{Ynd;=J%#=?`PLw0_q;< zuMW?b@9D;;ROjClAj{zTv}Q>S84_`}z;EO{ps%NAN6642NeM%OYzdhhtEz5~+{64S z-)!nP-HqH&&WYJYqg!R8Nw6d15AzQ4$ytJ4Yt z`@mcyb*D^FmX-{O07tOXdGe5}3=xhHl}XTY@{sCvBv1)%y5>}E2kD*YuMD-K zV^bEOW5IQ*bgq20OXcy^;XiBbB4aWow)3`;ak?csKKvE7sgCPh4T)R2quLP9Gw$%g zDz@_K=e)?zf~T0l&Aft;RHGDK!QJel{mlg|VaL)W0v{4QENiWn1d_UHn}}gTZvE9MzN4y7vVa46mO^88*2$-@sn*3h+}|4qwm#2#PEzOm;GfS{~QWS?$SKY)EG#{xLDTCZjP+9mx%B zh-a#nU%l%~wz~Qw?)t1av3EdB*AD&|FKvC$of!Q|Ux?mh&UPR-Kx)_zI{#WL1zXKM zxiZ<-+lF`Tyqh+s|1G@(kDJHVb2fV^m%7IOTe3}xC-s2ejy{5{9~;}NJ`XbpJ+Q?L zbX@`goX-y>y>A)p56{{RG_=9xu}oU`91Ya;)1bl<$vAGh6p7* zW4uC6^>mgQk8~F}!Aq~<#p0v0ViXQX5tz2KL`a}630o3D(rUci9YAu+w=dzhxFPpo zf~HPks%Rj1YzOR>v@0x4U8=~=Z4SKLwz$($Dlj44yFeLIDXK;XeDU!Vr!mN<8AmJT zf-OkFya#cqhCyDpK|Sg>F(zmimKk3*+G$?vjglY@#J33lU zn`4eXFSYv09(js{s7!5>UfRb`8!=8RR$>Vk+?TeB@Zj<4fdFXusw*c1zC1iH82aD= z4a8(B9`rN`d-^4vr5_iQ%vu(@T3eH!~Hirg}A&OlmsSw51@YyZS~MGs-VB69AWaOgw^gLwqhhXJJm zO9=?!K}|u?e*ZaICPm-IZXHr~9$H|xa?WXh7f6`@S$(3+OsfxjL;AK@et!HMjvw0Q z+SY6f4mOsbo)H3_bKDMLjG?cuXMzRPY>CQ+uh<)?jU3Ji@$lLJEeICWzJ>O4ZLsf9 zynL-ETFs8&lh|u_i@IDHd4BV>Yt0$GR8lZ$+La*-t*D*M1oQbmXO#l$5Cxx~3{TX^4+OJ2KJ;>q{<>Age zfPZzkpM3;?HwPmGd6>Y5g%N^09I$WHaFTgI?i6%1)}N5&-k__O2!%`_xYv8Lc(Vnz zPAAY#@5ITG4toT($Yhj)nrqTwnJluvMjeZS9#6wHs=a!~H#=kAb) zfqgrxk1ZzrW#fe`-pyoTCNa50z0wR_E8PCO1gy|6>b|@`n<2GTDClnvfzw>M6lwcd zxl@W2m9>#VRG1C<8pvCsG&s=IIcBy7Wi55}__I;dRA2pzt=*=$qKL^fNk)a#r-C27 zqLbB73r7eoIb|BXx`QppT;C0c^iT1PzQ)?Vw}HFyoiw&G(Hi1nY45LJ*K$2dU-wYc zE{VgCg4W$gRA~bUgpNH7VC%ADp&(-tnor@`Z;P1MN$}*kg91JuI~Kr48A50R78UWb zLoQn8(N*C_d5S+ zt7SmcI(-yIhx5F#qL3d(*CDDWUio~#sejAk)K9TK(enalcZ8q|I>bkS1DfLDy}mYG z*S0q%S(>2}rW0|YNIZ5THnH0oXU}Q&&bPh%n3{~w>mhc-GPnQ)(~)tZC{Q3h8X^$h z69zhaPaY4dW+=AYpBf^R!b#JC>vtljE^{=YH3W+ zQQaQ~0r=fj!&U(-2vA^1A(#!`nq-6fFN117&T!xx!jmBe#|i`a(uHHo={vvwQbKyk z3!ut7F!(uC!%zYeh5%HsfKt##q)G^hjv-s1ZZj8Gb6!bCRm%Fatl!_e+$_oHVz%4s zJi@n@QFbF^SWS@DO(Nzx9K`k8veCbKFhGU;dHuOOU3m$Te_~iupmPylTe>4b1gf7kr9D<)EC#UJG;1fWG(wgTgnYdiO8gq8^$(I*!)jc6dPCBNd6C7 zHv@ygVXJS^O!fx_2=8+79wYZRNQKMrg=XG|Djr=bX8Q7 z!H~n;_$wIXO0<%MRyr7VDE#*(^G;cnjmYVYmBH3jre3%69Q1QZ9y=KU>PQdUJbOX5 zThHF76Qol;fyL#Ao=oyO?PPk3tsRqrxliJN3F*VE4|q6}6{&LGk2U8do%kSa0w||? zv!}l*HR<8)j4Oh`dG_imwFpX?8jWj8|98ryo9?F4OS#ymTepF6e~ouhlF>4%Z!~0w z_zfSH0WO5kX^Vlec&A0$mr3I4YVOY4K^X&OuX?NOk8(GY>Rsg-ljI*;WoO*^)5L9L zkqZ*4VqD_0palteRhiOLz8=G+n%>|Pr=v|6a3XNDjAf2q>YD^8GlD)U zkgLtlIJpY_0nuJ^Nk|3laoj15(M6{52pwko3daQce_(%M$)7t7XiV&@v~DdnA(`Bn zN{AbCd-ubvWnEg#Q>B2l(u*D2Cq{VR#w^zl&l2s6Va&8?{uP!CqTLo@&o`M53aNB< z9~H(nRHZ715^^YE@Tq*#WvOgF)CZ1pHwAGmks);O^E8E*(OhsiYq{w|629p>D#Jpp> z!z7KrXA#~BAhC;*j-bB<1~=GWs>9q_Z^JZ(Wlbx1=i{YZh{ zGL=PsA-RzPLtb|q?|upi4BF#h05ZifQZq)09Nk{fZ<2wtoev62n_DwM?NXFN?V0IR zEp40MDgYcuskiSPdIXbSJI<0j$c}Ua>?t~3w^RrKcbF0iX(GNYsS~+yfiqR_bEf}X zfOecFfvO@fKjr%OfUgDFsy~r{2hyIxRk)#~;j0xA3n%ayQNZ1hkSLaLluG z)>H?E7d|4en@MsJ{2mxeoC_X0?paa28!G!FHHW(^t3>VPO`gn>n1WZ77a?C?6o2gs zRlLmvb@2pRsRPRn*VQ=BX*c~evmkb>y1iYBiV?n8MjHJ)QbaDr^%S|mCoBy4GG;n@ z{`{gP-r_s_sINs6p0H_VGLUJ`aycnO>yZ70XduXomF;mkCyAywV5&7DiwVT_kq&^t z9ValpU7Ib#qDc7aoap(6lH{uBg*av&Lb(mh-*dw?_#Zet8nxL;37sd!auAOC7l z-+l=i7p8NiHs`7IN4zqdw|AzNd4cFKpbLjl+5oCu-RGRpFh$68X6$HGo9wRxBTXq7 zVQ1kbS$eN;{WhJQ>n^ka01R+C=t1}Nvf|;=C4rD;&@c`&urco|?)(h;QOe!uR34x~ zS!|-(>dJy6yyXrPgerjus?NV`k{1Fd2&Wa4FbNGq294pA{%#ta1!v<; zo{LN&_e0U!qHz=k^7nY|qE9<2i^2l8K?NeODIe|mASGqCj_O`8&zs3^OsSJbiGeWt zbixdRxPAnH3vuUtX?dA?Wawer#GgiB?7v&M;dt1}LyU!Q*#M++r@O{ZUKF=Iy+8iP zXs%iyBV%JgE#IX8_{ow;X|W@&REiODBvIW6mJqx2IUy?x0Gdtu+H zo8@6YeaLLowxI3x5i7lU~suD%P&sQad&ln2V$# zCT>rFM@EJHF*1ELEeDkPSNDAcpg%FdXGmf;$^nMp67XbJ>Lxw?4O2k_Hd(w%fA_`H zaR9(r(vp^9QzSE-Su-9a?NS9L&cO%_kQ)PTebaCCnAX%g(1*47Ga2*}m(9LRB)P3D z2f{@m8`=s*{^^t5)X@O55d6lzwSxLihfAuN7Kp4<(IeQF@3!Q@DxrBbgS*ghxbE>4 zqtX`(xa_g9oShE?Ob`XiK3fDEfN&2a5EVVK$$BM#uGV_#AiE7vZS#m-+4zwigv(+e z9Kk;zW^-u#k+{)E#p*>saSE5i3F6OWQ1il4!(`j6BWb-n-Mi%Q<1qluBRwpclpVQ| zNL$)Or3}tG1VH$4*y7P%W4_bIev%<)kVg`bGW{TC{Aoh%v=t!vqDv7uvOShoK3o<< zuA)R<)DCIK_+}1$d4S5-z!>4Gq$4qn++;u@Y-=}9NS z5RnOnexHG#@7qTle9?gTV1IeM$Bt3_yMYB<`M3RWXCoC~e3m-1oZ%_{tu-mfegE0_?n!`9o zB4|L91rLV*$~jc!5TR3*NyHgm82(7mY4@jUE&g?&!jfxNsmal7?38XOaLZs$ff%?G zQNVkd(N(PR64iW5v&{&aj-*c}p%KuKs^r>eN`OkCL0#6cT~#mcG`eP!qNg6o^e3eH zgY1qvqdrjj)u;N=llJ|SPs3qU-8@|iuq)G&5NCv5^}nZPM2 z*xx#(LiL!ae0g(2M_=Z_t;JvPCo^MwG1vnZh|ui5F%j&~AqAc^Ws^k}q5z2!%4_T& zi#H-byT{3&hmL8d4${Po zc9t|SfL6}%&+=3Jm54t|`6sO{vCuoX2Z@aAIoH{4Rx)~HNpd;i1Q$K@nj|i)RX-}$ zplJzQF?hToSj!5mL97AeRRECJ0an3aT~wn=sB|HrRE_Ryc&deF^QIC!pZOEmN`rFN z^HrJqkW4<|5)nN?lD!DvGMb#3WfO`jXFf+Acj{Pui#*Yel2dq{7C99vL{CSPEu&g1 z^lY^zyI7LE>x1VWcezD&>Kwx@=EQbPg(ts*PC#Pkes=XqOs+$gR_5iEn#(wn6yOZH zfosL2!9Dd~$hrEvHR70%C6!+2d}41FjBn+Q>U-XAOzO#Gh}m-LQ-PLd^B(&!pk^6C z2EeUm^Gc!0YQ_10YGfUkN?cJzV+uz|13&}%@XfGsLt z0&5Sy8xbtcQgZ=mm5-;$mFIC9H5hMRjc9`!geo`rr;|sJ{;7-9bRbdyEL3mc;3*Lr z{z6K1O=B*9);uS1fUpGnG4VUZ;A(&a+JSZkE*oP*Ew+v~;>AQuJq4 zmMvn3ALP1hN^jcqWE*GS(f1-HQy!J!@xpLK)nTz1t{$c$jWG`7z!1#8ExP*XLC;IU z#td05>(td?gbAU{49m*HNJ?LrN$dS6ODWN6u*`)e`BCk>3wwo3qG%Hl^gpNPx*J*M zeF4IDA8oE$&meC>(Dw&WHoD&x3^QEle2*(@+5n5-0U8UWfhjE}hJ2aYn>TpAhd z3Eapz3d8^-)yS0>-lhG2XQ*l-`;@MnYEZZjFS{5n2c&1(OvG2L_CZ@-XoDaJy-}uo zFKeX{3pGwGDdql}Fij2`9;hhB#G$HMHOxK5&TW*qBkn}}-V+%avt%DIv! z1kko)-Y=ps*q8DFc)7{$tieSkzg1dHxu~;~`Q;>spiS|Ft=LCGHHY);h<3jbO_7H! z5aIZM8tSL;W+pb#=YuF82%{+^Hy?sIu16>-lww^A)4kw5?*&sJOQlqOBoBI2;2KG% z{T2z9;?Q)b3}l$QMGSxsvI;;N+h?}>ZK$LC*j|&Aw|UMH$=E<2>@v!bVO!&F@4hT{ zUk>s_Q&P4Q-BUrasbH=VY9vW{p|BZa7T?F_Y*>m`T}*f2NwZva?gi5C!%Sr%0dD+|%aUM=gdlr-YbzF`h8)D9%;GYLM zJynGJ_wSEkSnVAPot%5>CiQgA?dFp`R1QT3w{vhbI#k9W!(kl%3`f`IJ{7KiDS=_G z%=8^$rFJDh?wNT1u!^|?$hM^KIKS|xHou9vMdbw>+fwu%Tw6T z=36~r7r(!z<%QFFr%(G#GT+{1ao3R}Jsy#xY*FOihkO|YitgXD&a+)Y4@r^!H}tf! z`%L+2=mqKTXW|PFx}8M;M46aATMvzB73$-f8d@%2izqJ_SYB2(Etr!a0?!Cag|YMz zd9}m@yA!c3QPED6-oo-4%emOC-LdIwqm9e)<8QF04-Q*5A@=*uyKj+*QlFp+J-IBK ztSQNNpTuk4@(zBgMQR3C(F8kE?~eK#OG^7_cwW@wq?SY0h$Q3lH2UfY*Y3K_PKkY5 zw-!*1g?TV@ONJPl%ZG~!cwZs+(J^WYJ+l<1e}FluLBg6`^ftU zqmCl5L@xe?O1K;<>jKp9{-%^}45yCsRp9OnLc9xXmYCFTk2Cr`(ly}7Y-g!p_a@nY zY`=CiWpYdKNNuKb(SUJad%O`=SfWdo-AtSzMSqJ%e-_paz_gsPYC>LTA1M? z7Y-?LkT^ijXIAlq(AuBHO9}0Z6@f3*Pw^}^Pexj;w|xIl^tMqGM&r^8!ZZ8>b|w@a zkFf~YKwr6x3+C}>QkVI#A2b3Fb+U`~kb!m*TFgNNjm366{fISp&9Y6}lt;MceDLGH zmH8SEMOWev_%v@PDqvA(^&mL8Ok&x*yXT_KngIWIRU&k)(8S?G*L&bEF-DinyNg$c zvL|Gj1l`r-Dm>d2m7P=BKFg%GHJ?)1K6Iv_%o$Cm9wTc$H@&_V0Y%zZH#X_f(s#p07A){P8 zO;?xzn;$?V&)<0-faTk*!pj;dh}ChEx|I(Hd-B9u(&o1^@xLre9^$&x)C`U}9Ha8* z&ZF`~<2>cib}>=E$LMz}O@6&$=oqMVLMdJ)2d(cXYMj4_07t>W;g8^mT5FO*O9eSu zUkxY(EzReaEx^sekv3T6Cxm*iIym!S6=^}*2T6tE#y2KC z8Ql8H%6&*N5~|1|BSV1z8dA|22n1vxQ{NC3la|iZ6Zm!PJxo`pP*F+v5@6Qz&QWKL zc-cw~e|L)5(>Rq|N)j$T>GmI%zp>Z6Mq_tr4cvwI?X=paN7GS;P~U|UJbR{{EkF7c zTYY>m!7@-}65~~aSJ>lAY-<*kzR0mSROp zr4@7R1#&F0}(Y$S>g6LUJikU1rLgdBvu&{+fm60>cVyVr=;EnM>WUbH{R*~z~r+VXs#zMIJD z7n7!^jBxV0`}hVb&_nJdlSlQ!7L#5slJd~f+-=ouHk@1|mqu(Cw$M!7-={u)UZ+o* z!hiC*``00P(m^OQs3p1yI5fcu(%t~G&i$iLa=Rs(|7Dd~xh~`SD{o%2k7W9`6Y+0HKsxg+ z^wMH=;^onhNHJ=U&-opmRMmdQ@Tgea1mPoS`(t=h#*XuKv&?cRM9S{?aF`$T)pZSO z{d9h=iwgo?=%5;@g7DPSzP=FqYBs1+A81p*so(T=5(xJmcWvJ1w0NhJibd&1sg~u& zX9)$Ey13T89=P~QR8Q)wc#5kKvi| z993Rn0kwH~kAk)QzH#X7*2}t&4q7iCvZTkD++oKs1;UtPq1sGU+YRyoDeEXcoxG+$ zyI`{{bya{&aC|eflp7=O8rnmihI z7iVA?>4O19e&=tGt`HANub9OCA%P{gAZR=XM!VZ9u;Aqpt=v#cssm?4X;WaC8`AGR zCFEtuI_lUggOcR{NKkD-m37wWZ!6r-62j_3`u(Y>bXG#N8f9ogS5?+=z6dHr6uuA! z(yhMl8wPycdKt~#z}0h@UYz~Sm6+$ZOQE*buzP4Nmosu>BTLt;RS435QwAo_`+A?}dpQat z>*?k3*vLT)9fa^rKD`y`4xNH@eS1ovqw?tr{yeC?LPND1>r*v zOES(Mq^Gs^nua+aYYa~cC@4~C&iSP1%*Z8U4K8C0uT52W=d(W|Xp<8Wv!e+gD?~z# z8`jibx)UAT`6AJg>IJ2Rph^vLwP%AO1qc>vP>#0wy7&P6;@C51K&)ga+bV?OHNzem!@=G&9lS;#!d*grR>Hy#3HiCB1~) z6|B{hdX2+!o}I}Bp`kVC4coq*ZYW)Y7WNrV+#etv(F6Guz#ambh6Xz_-|zcY3Xt%L zXjr8?V33VChX@#T>PfFu3CU|rB{wE}Yjy5g30})5E*(zHJv&5pY zzaTqAxY)J8{E$?W!LxIUPX<MQjX@tJh@}V!?N5GS;8#6}W7=qtBIfk{O)M>VXM2s{kp*9BbWJV* z`jY}iZakq*y0@`h7Ae?r7N>GRr?AbtU1K_@#V<}C46U~!p3~-D7V>zjo-Q;%-z3t5 z?&0b^72>YvmJ(7Q!`zkwi|=w>8%2s|WQu}z3p*9N<3*;y>N9Lmx8wU3N<3Lo8` z;{qaIt^4F=c2v*mYR>K2PHMg;`?MH2pJM49AwCP8f{NgvA>7lCDfsUfOF2GW>w9fD zelmAu$Y3|A-BebPu#gt0sy247D+4w2u~&T9Z>VLiE=jy6lZkSklVwEP-7&1a-CuQ) zkk(+x+9EnW&O8?AmHQI9DJK;)?8KP<4i71rf52*Rm`Fnr=?eRr@8XFtf;|rlW@-F= zY+|WN;4ZBYfu}tCtv!H#)!sD$e!(LNu_+x)?5Hg!t1>UP5y7<4KS*TYZe3a?23xlE zN%!hZy+@#%l(uO!^QETmqYupzVNkOLvT?bx}AXSTGZ!Xict`l@vH_#~&xue6uo2^>{;l>*tFlyy%iwq(>vVDl;J zxzvi!*>CKZ*Hz5XN}sT?+r}q)rT6z#w*v{rCzxab)(e40C^>%3lE;0e7fl{ODMYb1 zO`k4r+;RgSX9N`{kc>&n6pqzjCVJ(Jb`z;as&rcG&i}~2WSnD6-_v_l0;AW8pRt~# z--!}89f9?L?ty0V*Tg4QCMByCXBt@T&s0fBAaqEJGRvW0qjpq=Xm+g#V&Fb{wtt6 z@?`3^Js~NddZx;&3GrU3+<-@7-bt2`P!G72QcO70$iymgs|>?K(d^vY*U|urnTX&8 z;H6br`f292YPxfrJ(Rh9;hE^4lWb}9IdvZIRqqRx?U#%i?ECFHWz5?x_}rrqbd@6# zC%X9Nw^rJF$HpHrkS9v{Yz8^JQs0`PtaABTl|Lr{SY_H2s#QD~0aLVH10Jld@!`VY z$_-ax$Ydmg@6fJrJ`v=%>ro7BZUB=;p2Wtnt%(q1?q%ZVA7Fpx*X%~H&N9!Bff3Y( zg@EMfRkOW%oe*(A5I8XfsVmU`jQ{p9BVr^+M!foTPd1mg%Z7M;u1zedfTt(eZRSDJ zL-E$Me~Ex2IZNcIBnvPk<-e`Z&KmE=Knq3|7kq*s`7=!|1uG@h@)%Acy<7M=R52SUe69%5Ry79m`IR; zX_9ak_sF?QIc0uX8L@*|UN*s=rbYoe1Kc%)=_eHl3$0lS4PUar^Pd-vD`B!DcM2N* z6D$#H40`icipg>c>8R1F)?3toW<7^_|LMU+)h}|G-L{W=MOAlS)ySk{&E9egw!DgC z>2o+@wo$6U#E;J!Apr#J$?&jm;Wd~{k~r15@shX>_Q-vOnlvY1In;?C7ZlWVWM7HY zUxK7rMjR75LBuM)T4C{BlFy|u6%qsz)NtvPNY4e@$~<(B)Lv&=Se(oXgh$u_cX}>H z15%aZW-lftz`7aT<}#dk#!fn=gL5yf zqh|HN4Hq|wGr28vmoIV{cq+2mg@PpbqfeslftIdF675%q0sh3MR5!xfD^h;&oeYcj zh>7t6fR<}Vlx}9+D5UAQ$V0*0&!$S)U93ZQ`D@Q-OjMLJsAR-;q#zQ$!n#{3OVK~c z5MT!9AqKMa;|Jrnpg;SN(8=aFfsvJ0&HpKYB;4+(ofKSsWjO7}oy(qTMgVQop2@wioD zr%{S>Lp=b7%FQ^$)ljjJ9!9-}RJkzo-bRg@{xrNYU?bkhWGsB;@*K0$NfBZr0AXUz zj4m6;;;UZzn9M-vsNT}Yq?Xb4(EfwAvLOEqqg-bLNsZ~bF$yx^hV*nN<99O-XGqBr zpL;0a%$TZPNG_Tu1i@Te`<xJCJJw-v8~uYYk`J_gv(WV|o{o8p`jQtGYHlSIfy;R@CvB(wYGBQ%%we@o8l1%Q( zkXm$$jX|vw#hazSOED=Pp51P0lvhczL4!2F0r_)5;E;m{JhQglZD>jyhbsCIAfnIG zCNDr_P?(@r9n~n#S|TH0*c;yFujBJ7da`*btcj}x;7gof@R7%I$dRk&lT*Q~b%myi zG)LkrLd;djJ47yv9DQq;+I4lGNu5F3tq^IEJMjn$(dCO-w(K8+%+$N5q%95MNw#R6 z6J~2X8ry;xzbbeB$Yh!pHH5)a+y#ZV&@oiGPIC%&hE%%?8adq?ND#?MxA6NME9dBm zdji?K*#?CDbpnMOPoJOxyhF4Mo@Vlh1caMmyssY|2j<)0{O~xgrdFA33T;PqrpUvU zSc&A#o|Rh>@_H<1JzA&vP8|*?JZ*T(+Lk2LuajQ+5>P?dU0L41R0hjH^b!om@ElFL zN(WAkuz*SkW~vba-iKWlldW-d6dCUpS=b&h%36_h@2#xhvgqFG;yO-B>IHotXSeis z3XS@zb(my4kQ~c?v^FF{PA0%KX4$8c5>-ecHcL0-VKN2z`? z9WygMq#neFe0&5G^6FO)rMiq247z9<<@<$ANLBwOI9Fl}CZu#>*rWG(h{-+YPkl8x z=DMeCYJygs-8uT0ay-inMD$Q-=R55cJGk4Z6|z;3X#|5F{+-(#o7yy0}L#e?RNx``lI&B;d8^6-xHRg1WwLg_P ztvnUAjy0Yfj9oP~oy0rbLxsQUAyiCMWr?cvNRyGjkH*;J?TswA4q|%F+Lul}BM}-` zUUgkukbHV8bGooyOiK~M%v7T*T;WFiR9$C@r6u>pU^%;4B@P`kxEX@&-G(C$u{!+3 zbF)14elt~i&KFgg+M1b^OyL)aeUa3%Q>fELRyVc9K|^Gs=D64wFxsQAYld=bk*Vlb6HOS~!cF-u>0q z<*BZUY}7|cfB6mI|#3TnEe5rF(r(xQiG$~Y1ibCa-%IMEi!jf)M{OX zTRa42d*y}7hp)^ut8+z$s_#-4n%&IBURghd*MfS6bsjaV-b_;E@LUdMM1Q{^v70;$ z{r8`QWWMTt_-I#PnpuM-jkDoTcX=dsiM^HCT}vq{2dY|I%nm!@A@@Iz+RDLrBsqSk z@=TN~-I~C}++9H@=5Q?+iedOfvM*NY)oYEgW)a^?;<_lEYz|k#{0Js8M6j_( zJ(oD;2;X`Bx5vQ!IA`Jd-G2UsK$k0qM+YSQ_05|=s=}YX{s&S|yE_O3JQTd7Aa5U1 zUur-(qH}ifOIDuhbL^7y`&p(S>OWChs@-g@Q5TCG*X5^LxI z>}t0tHaQ|n&LUZL_iZcXKwFS0Nu0GTQvWgBX3w$~TZ8zg<1=NOo#K4Ah(D!eJihCV zvD$>KHk=nWn8n*fh3}X}%Lt-whh^|h?FQZtZoHdaa^7|Pgdh6Yhy8TBD5@DatG7WK z9+YuX>l!jWUx-Tr2Wa{WV8S^F>bsn*TpZ$l1Aji7DIp*diLj`gMCWaPp;`6NB8_yB zb>EFyAk534?7m$><^;T|y$pfzb)Bf0KhaO%_Y|b?t+;;rI^Nd4E-+EA*uodR0SuGv z&{GG!aGghSe)-XlUh4ghwg3FEUq|OxylAr!IH{}ZgooUjk<&c-^t>#3P4isy4B_~w z-AY#Ss<~->6N`83ovG?l!|1^88NJ}agf3?{_(1eFlMFwPWXZDrV7k52F}+6$OS^%H z_vf&GxF}@y)`kFXqKSX<`7`nj(cW~Lcm-GO@2U>P{|bFRPwYq(F}U_~q;M7HIFXp=!I&Ki3|l8W`EIbH6!H4X8?IFJ^jy*(0)7v zsS6fxC@vny9(!fCNarQAcTZj?q_saM#LuLV#1`ztp;EdI6@$U{pB<;ODxfslj>wUo za;!OLgavb7i-M7E>*wAISl$cSN+|h&PEfZCE4e}>0c=i;1{C~S(^24b$e(=`w_Ja1 zn-Fw=(!u;t1mXP+49qV_HoKNO==j=;bhlYUm_*#yx8{2zL9!(1R+YIz^*PYW-giBl z5R8vQrM5#X&IN!tivUlCO2iniri$G%+lm=Hrvy&K0lQPE<#Q#OINGz)t5| zYCpvUbD;rE5>t+*Ste%ZTF6jOt#v73#o)IYp$qqmtQ>)1F571r>Wg3sCdRtv=!wt3 zcu2S+ze|?vQ*Ot`*VZ*OScD0D8M6WQX>~CF%l>oS6mG9i$H`U*{isR_vc|orZmUQi z-!VR)wMZww_k>+tAb&|mwuU%nzQGuKoscrCl^N7Hz1gu@c<$M`PW{U}9<`fk*+;Y= z?Ti;At=d*;HYUEpI9Y8+Bn|2?`nAZUcrQ^b!@y*o=EbcBMKH;PIV<_wh-=92Hb|J> zMf=Dkrxmi+u`NDRax(r?OBgouMod=r03SPm3>{HYFvYXW^IAHf&yv(v^6ov?k=Nj5 zuWg9zkS5RcMgaA}GdmbKqul&CO$#4Tb;Qj#5} zm#DSV8>=vgmp(V$#{eErEw2j$4!6sj>AQNDJXNk&p2}?mT_1_!5(P{4AiT$^#jO?P zLAT_cluIG+Z5{M5-c`RaetTEK_VXT#pI|H(CXZFXM4!b+(!AU82n25D+A|&~?=Hib zY|AQL40>b}9#75lh=ne#gymE>&`E;(ez2Bv6-o{B9=mT z4vXNjdWWqk1IU*Qr@|(2p*c zBCW(Q=X3Ru+*wimBgH2$Q@#Mqm^1c9Z78%HsFtbr<8qb;bo>RIr;kqLqlBB~nkb?u zOX?b@rs*Ash9>S~ZdEUh6#Pddaz4;G{C|!(#0m_l1_Vo~UTND|5#&3>$GzPfL6BKd z+`)R-VyCvA&eSMoyncXSEAKK`i!3ccqlqF3*_*{HKv_G)nLqTF?Am&f4Ycf3PdeMs zfHp9_^qa7|BPmdQO2z@``SBb4iG@pA>dZZsb?u@JuIb(UhWMm?;nMfr({Zx)yUggB zI13u%jM9BRN8@|~r4PqvN0vk!+t@uPbD_^ep?A>Zh*#{dCZAL!4SdU>vO+FyAB15l zJY}2k4y7QDeMgL14NZ9hXeG+@nrx-5VHBZHCYlVo7r#SWcd9zf%w>sF{4doPx7MS(go2rLIU*RWy4JKejvAif z#Lvbt&^W82*?OnMT(XZT@wR|5B_xsRl=B ze4c(b4EOL;(8oiz2o)1x3SXNKhi3f5DDK1|0q79wD|KKCkt_+YK(qzC+BImRCgkL( zX-O#e#2HJ5@2aHPCXO8DiBVD`)rWzhnl~k&Fcr$MCJ5Zw9(c#ZUWvpZmXm+wL;=@F zu8UeizJBG7^8osp^(!EL%cIFPxU4v-#Y0y{BHt6Qgd-Tw;c@nP9=FkEw+F%Ihi>Ph zguOSIvhldZx|M9D?qW{|xQZa-*|`29VdzWusRaDlHYnk@t$5%pS3sHY4*hHZz^ifB z3w259zOmMCK2Sw^O|vH9O#@!O>?0qi7U+)f?SZg55p;!p(zWhFM(*Rca(b4hpoee} zD3tO8-P$72Hrd2l%sOjdo*~@E;_;e4qDHI}P?X;44fYzJUb-r350L67S|C7-*;eZE zmi`~3sy`7)^YaR7t**55mRMr%hx&Y{4YL?*fkNmnWhXdMwvJ6i+S+O*w*DBPP!P$D zT>#iZI-7S|f47>vGGMSuQfg3X6=5BZQYYe@%J?iuAavC~r z4_+8&!JBY5;%m<$rXkp||K@2&xc07XZuXHsVviodXSSA?chq8;Mb)pvzVY27hS)y^ z{jn}Dhfw{48i`90r-HwW15RBZw@&f0PHy*h>gjjgbU;i~Cs!%6I~y&J2Ewg7b8Y+ z71JkRIFnkG*Ux*`eGmZ;q3w|JOb=lb`qtKTGY*|=Erz_+dH7|T?rnJumS+ih-v%*a z{7%^EkaG?G>FYLhO1J0h`a}J*jmq+VKht&r#Z>rn6$AwKSGTCZqyO2%c&F}^{MXe_ zmx7YkwLn0K;x#n1y%gmhh$vZ+sEYb~969Ur_jFgUC9}xln@EhF3`*K?;T2Yl;eL;c z&XKQ6GF$qUI_wxc-hPs$NaPK{k_zpQ2#|6Is3Nyijg~Ai6|~Sz)fTki?fS~kk+K9K zX<-L~-WaFZY47yPEG(G3AFs?w3GD`Kw5mf9i;MK(#Av^^+j9j?QLc1|#T5nF27Y)i z_)sIf);-s^m2ydzWkX$ZkZ5;atJ@hW3K;HJC~( zKS)pO?U>WAjBe9NR^{eNcs5=9eYBodBqNTOj>d8Q-b*XP{%qmo>lM|ZF>k6QEhNQ9 z-ohgSds1V`@at5{l=p<4i%mV$2WwTm zH~2RSDgi2-!dHDz55CvNKT#^8TvQ=W4&V2W-$5|qX>8z~c9lQ$S8NvrZX>v(PZlkn17Nea#Qr!|+? zMu|ZH)AuZ)y8qT0BDNYC@D-prvCzZjAsy!VqAEb4G)h9zy{PCD&*cJg0jdcjD)=Hm z3l%5D&+&F;SzuEjqSV9(a@N{gM(HflBVa+QvTTGO= zPNe70CXO((Mzb~ZlvyLW_Swb&fWHX}c;190^!Jz1_h)-mr9GNy1ap}@B?{rn3*vTj zamNNP_ezwg;`hr@1ekk8qVQ9$16(#wpl;o%tE+Zc&t#)We~$%>64T`Wq&&idq*B$U z8I^N5XxS1WqI{{p2e4_!0SXLzK!i{Pkk5xh-u!K&{flIVV+ik1Md>v+lB0L)t$F>S z^L=_l+h0E&n-T{rizV6{m@2Q2QzzNZ>jzL2FH{mq`mHjoBXgXBXG&G-TNDa4x zEees7Zoy-*4^jtVgxStWbhOk8TouRCBT2B7x=Q@gqd`bScI3K!E+iSi9nzB?zSC)6+Ty z7v+t1DBXS6NZA2}RVX+cl#f+g3I6xEfdI}3%ltZg(J;KPrqH15gt-Z-9PV9i3mDTd@dJYco-2H?g0bEq z!tKBQvgaa!$WlkX-o|p3%lPLzQj3Xm;aPd4>S(a-AYv~`ivXH}Pd~2Mo|H$cio(c> z`C#=!NJOBJ#uohZ`Is?E94-1~nkvuw5da zjfXA=L^?_KJ=YrnXGWNof3n2Gi(T6tZ;HhZeI!gtt@#HKOx5j&YSlfQvKI-XX*{&g zkFc;ZLylN*)yNyXTocme^kV;AA4ZXgujwv7sFImid;MFx8IcR=fYnNW@xl7`z{`6V zEBLh=utDpljYT-o4IkL856MklFpQ8&a^=RJr$3y-b=MQ$HKiEgjf(k{KWXq(pbr2J zzHt^5rkQ=x6*|euA5NK5BtS7Q1m7HVViN|I1$~8%i=*n91 zkbYt&1`CcWH1P~fzsWz!9dATM}=N5Uz(Nm6{?9F^7KM1qDV3# zW%_Kct(lbCg;k)%0J(HeNVdOY*d|XxF!QM+bR=`1f2R3#FzI*0m#{wuYG7E9ca%Jt zbrIdjnmxazjLo+2`c@}Sy^xQX6iy$=Q`03S(T3$cz(h+)B5%i_4wMMowV-~mPSl@+ z$5N<&)+vD6=XV~->_`hYQTo*s{+FAg&oM3cz9WY(NUgn|j*|u|Lt#4{?$J1tjXTxH z?$kkDMpI-A%0UgyrMtt2MyW^1mIOxF^CwAEcqzZXGTBh9=cq+$~4Th{8BbylgJIF zr+rC2#t&r&-r|6mQ{qThQA?LCy*hnWuDc=2XV4Gbrfeg4G*q<;JADDY1=ISCO~_w&PZpVf$MezPRu0IsNjY&wA4F`*y7 z{qSk-e&r44Og+3mZJmvt}2j_d)>R zVc3Wg!^*+oEZ5trmT~8^{zTNG*Pr9;cG7T{eFd=6pI3H^?E(fD{+uYdt17~PM~l`# z-c-DA3}X98F`VLOZ)F993);*`%Qi>KNF262U0NCjaO-3xw9jo>9?3+RIzE zot2$Pw#67y+8P4M55m0rBA+*rzbXW+_1%doCauXNo7k7wz(N3bDX0hVdTaN;xEi$z z^}iG3mxdU^%MA_%S(aEoi>Y-duS?G7SD;_)-ToCINN?d%?0!BB4^Ny_7hU7Ob)BNk z)diD<e+S3k94-TEHu zh{&taO&qNvTt!i)mC3NVYF9C9fM^3%T)Sn70&Y)4G)*M3(N-VymDjIXB~)?*Bj>5* zKxtx1Hnl#Ay!|hS{(4Si_O8|UjMv&7X|gGk&FQvrBH_4+cvN*&6;!$AQT_Bwy3;Hm zzk6zp!jGd^lS}^nj<$#bWz1@5+PWsL^S(7)A|56!XEhBuMLL)DzuD*UW(@9|2}{Zf zrBYx182u%)yg=wx@sS(vp>UG`juNhHUO`*jh-{Bc z+1NCZB<)6wdV9sANd9$IBvVVTQ52peX2FrkS>Byea-9&L))m*WZBC(M&r_lJ0FmWX zw)`jA(dEL8P#Hm4qcJoJcccIZx5J0d8Y8MI(ozlYDKL1 zUT&qP4|i2lq2O#1l*@-`Fq(h9Knuo#wjStn)JT2-K5e%bEHAm#hKgW|uM?=ui>TOm z!q+?&60-1k;XYR7N|g&&JAL839toCQvoTd@wTWLosxh)pJribt&Su6EeG@2T$-L32 z@i^Lp(UOGwZTnGldg$%~5L{FBmcy6b>Un5QPTjZwvnUEV=t~v#OaE&Px`Y&_}*`s$XBdcYpq)-Kt7E9V;2I z)FQNnSs5sMbEX+yMc4f0fOetPoZ2CxHZa7oOFLDi7H5Y^&TPTcnYS8X4xXo=;yzl3 z=1=C+zx%t-phf0QzFqUq%fiMG48f91Do2y0X?KM^%^$?JL#pT|xQI(CoKOy ziNC9zA5uMjS4>Ev-!Q&xw!%|7o?y}M|;5D4Z0j73WHNf_hhkY#Q z7g4L|!za~BGxi)-j#Sz;7RVE@mZj8pp%Qqt4s13 zw&6&@TxQh1KyCmu_;dILbvc%y8`8kgdvnf>_MK>_Wt3ePF46in zhEoCfiK(yI)c_;Q@BOqNNcfk+;apxu)NY7eI*J^l0#|7p1v1Xk;^Fw1yQg@wsHTy3 zGSrbDIBy`Yus${=+Nr#W!p-9^a{0oGmdrVQMKSBie8)IA-F{B>X5UIO8!8zH z@glbePWCz{e>PxgW@#h;jPji09eS}AmeO4y296N0-4c#(y(?5xmZJ5-J?ST=4{Onb!jPNLBX>798$a`TEo&|&J! zzl=?t(Rs`l39(?*5Ey$;K{Q+dAHg9$Y`STZYM)%WRb@rmm3e0sxaVwIK>p*gAa@o` zqJlJ4WwEM3;0>WFlVtS-KPdi~P*y)kO}GM5t*s3wx4i1XYA%8Dm`YGF4iv}}$${(0 zeQ$|ex2SR+1sR4zD+Z2=9`&yvh zJj7&smzc~nFSDdja1-N&#)%?=j+A<`|I7Dx)Z^}etan34z9T}_1^0BKAUn_j6?{-t z9ZDi-JuAVrXMq!35F8?oHq@P?a_f2$!?R$4!(i31$rQ$)3PblOQGX4EK(H({8MXn{a_hBk{>5xE*n4g3D(YR6Bd zIS>h5^aEDI%ASQGN#qE6m!(#HJB|5~?7ehAUkxT^uE`3^;~_!KHar|*zUZ>Ec80A_ z4n$6|N%_NSWSO;jCU#!qx-3aQSEY>tNFXCd#&>%2QHlkTzznw4S>CHNv2PB*HkRu* zX)8S+=}tRB*irG)+8sefIk~>?cOZ_=uKL-r$IVqEZr3t`to^DFqI|F&t(s3OqL`;W z?Kgr$UH&^j*urKaRVx#0LNJW;VYaO9Pq&x=8-#|F}k$)tL#MP3}PK2TjlB%oO)X`^b-?sTkI6shUK3)lI zf0;cnS4!C@FuYJx_(E>2Sft`VHoa!o&c2K^{ z+|ghVXBOHRk*Trz&TV(Z{JK0JEZEC#`SFWQgGsBCQ=sJb1Hl3SK@FRnH6}v?uAseh zJpq<$xG7={27I_AS%XBT0~cZ(co!(LWZVU^ z7mBGe8-bjo5syxAsZ@M`_?3W+{>WBC10*`Ki0ts5--w)4p#wx$<{Voyl#K;M{Dvmg z<(ppkQ7bVdxq(0q*{F2zyEXs#!3ryxMzibf*a$wa`zes%%GkOzCeA)8W27{3u0eHa zniVWW4Le0FNVIGmCPR-Og5r`^`?3d4r5MGo51kY<>sBU6nI{Xz_Y$T)HSA+6gmTL0 zKsZ(2U-$j?8B@;?ux(Et2|taix#_LQhYk+2F(Zl8kn-{dAX8@NmGEYw_0`juQP!=9 zCt!++5bZ+ka8%kgbcw<8UGY+t8Mp!mM%5kRU$Yjy6txwB5BohIMi?w; zLn~o8Wv!%ql#oW{;2G(4h*q7sq6@l{*|>rp!tTZfvL!Qim^v{ZJu?}eg!Yzh4;jBs z95~oTe=+{a-w8CO_kY%}7d(?p2RKjgsnLPA?7%e4;M$_SmGj-Lflv;yG~0&h9E z2!J3+?W~0hmKD*9a3-FHj&YNq)ht#P=EpP+9Z`W4r=O33M?3@~zuAXmZFZ`%ZaGbQ z)?`Fi-@OK!>zO|)S6-P+PgUHbMXsfgng@yltaq8P|Gd2KqokiOO20&{$#zw&;bRHz zEVQn3=;-pohK*;?L?auzIFP>CeE?oBBhy_*9<*uwL3v1oCW{%`OPt65#`mSedckRP8sb6 za&cgSoI+3^8;1z3E8h6i6zQdaMHD8@3TOS zG>q(2kQV~^hC^iCq7UC3Hadj`3sNax%0V+*KY5L-BhfJ!INS=(`nvMP(`3rUK8%?Y zm-L97O}twexTVpzXnI-Eoh>!XKM5SE9+X7YCIq^HLQG3tB|PyA!h7ZDgeFo;Bm76^ zwnxj4?Svd{*;|+-+!)OfsgBp)wuJ6D8ujKGImXQ?9>YOXnbFrRO|9J!kU_OwWqA%s zPAPOW&_&sO#uBDR+W6e`h_pEr@C5ps^xk_*--4sVoPux$hdMa9^&c~xe$U%i9kuxf zK*;m5^tbz!P-mYz2g|s@E2sB0RpU@U1{4GOSW=(lD^WA4#5SK9c2+o^(OV*k9=rDd z2C%fIj^nI}8n##f8T?^Y8@{n(q5Q+wQ_H}z%Wx)%<-W@^mxD+UR%~8{$9v_?Tnx_t z_5i zUz&FrgWD}oZqID3Z)NgoMeGaHO_^Z>0FC#}*Z&&MZ;%e`*?r{JvGWt_wC$zz0zC_I z+FqR=x}aCj1P>gu3Xu+`V~$i~hSmcCDW8#RDWq)&FKWp}5IISe99!J8y}m{)scz{@(b^TBok@1)Vh zN)&=Pra1(v(GA$vbW{x^6&no7g7D`(EV(27#faV)1ypDI%i^2~FO&xsl1WO+u%&5M zG+GX>nx)ruO&O5%35Za3p6u@J?R++&A_l9@=r+=b?{~}(mNf99S@`Pg3E>GsIL$x1 z@8=ZNz`}N5rp55r7k5ut%^rSlFwu_B*nA1Hm&vYW~c?#&+SskRn2tZ}$ z@U+o;rqjs-77S;vv8=iHkcGw*A=bNj@#-p=^-?rBx>2U3JUQ3k(2QD%Yy`#9BhO8+ z&@3*Q2VpTP`e)`P-}LD0A3WcrqN(WFqj7=MW_zIkP_ZN0TX3dq0~1)%M{pueVND$5 z)1Xi3sEJzU<9*C4RPeC2$Ln?Y7a(G2+xb7TLyrGycrr3F|IgVWkCxjeYsT$2imje# zPBVNUz5wH53E6m4_LT#xMHY`w+EtE_RMT{uvpd7FUb}y^F7mUL*kh>>ajPyg*{; z@gE_6*AdTz8QNHg;=@_8^ zX?OIXZG6UA3wOV9wNkV66Ky!CEbP+ko;bc|Cs%{eBDmqjf-eaC0WZ2G!ar&rtUii{ z#d-Y4rQU!skDl&??}L!X(7H`;y(Bq8C$?H3B{!~bcfrDQ28Wi(egwy_46$SP%0R4wWc zjJwBq7h>RDIb+HO+sw$oykn}#?=Cur`^Yfi{Dx98;vFqx1^c1PBMA2pTBgHya^w0~ zo7TK)T}7lcVX-3&_Yg#BdT$02))MpbD)rC?^J0PE-SfxWNcFsSuOEWM&z};6nvR4! zhzJ1(hifrZx^5ymI|H~}qK^Auz21Lt$@7fo^w^74xn@>cG~(Wlm}hfqF{ox$uQjxG zT1~^f%kM>M`f3|VE6<2FReh$;Ym-b^pU?m{O0xr5@oy&NzRaJz}$ zn%o!vaiSe&{C=h|*dLl%z^$Yaoe_cX95|j=#`_gO z`xr^1qaz05<#!i|Zuc?MPThfl9HgPCp5gua{}nXP5-{k&*b|WNBhW+F@fnd!;RQ`Q zg&i32GU=#~uVH>WCxX=>c`BZdsUEPd7=bS@i@znZS)SLK9dd-d#2+7N!HM7r#vOW{ zc0H+&S(gD3OJVs1F68C`2g*79Mg9$|j+YYVJ|Z#}qUOQUyO$>2;6ZC~FG_!kSQZ!! z@{8j)54&EjdeVBl8S3L71tm%-H;Xc)S(@zegbf&Lc*Z)hMESvy;KSUv5YI#ga&=yD z!G4U1y{`rN;P}6ja&EPUp@=;Zq+_|!MEU^o;Mdj332HT5o^2>;`^LQxwbCv3MQ?y# z$bEEcDNb8*^urwgf-=ANB?IFE-Wfu?R2zXdm_(rVa-!Y=4y))MZe6U?f;^0MgP~fTH;os=2aHT@VFC#KS2{@s13%c%UGqBnZf+UHPYpo%1bs z4y=B#I_m*@5E|)P7Q#80j@rzYzhiA>J11e%%GkgD(4C|+rF52e5H9fGa^?&l7#F^4 zL<(ufQnFqJ!ZPW^sarS1C=?FcBh(x$-%1pQ={LG^PEbBM>ee)AzB4^qwLvZ_2Rto=AHubjkv{rE$T;e~ zzHF1sq9}*wjMaz&1b5@`$A{K`wR94IPWy$g00f=We4X{zCp$@J#c$2(+sQFJwEFkx z-+|Tqg&k%b2spl}QrcILv|>_aK11xQ2ILOBQ^2d5&E4S5*3>MtIZ}PQk3OrUG+oK_HACTZuHCmtY~*6&W1u(q8`{xBew7qjWmK2GKGY&xgnY9R1CS&SbqpipKdlbocO#MX+bpB=b z;?>fA6-1Hlhh)ff(B01KyI6_=g3z6t z?dJNXVS0T`4Vzw=5S~EdXpB(LOvDPBlbabAe2F$p0DuP$A33fc;Q5nUR0uvSXn&K! z9v_d-NlY5iq&^lPD14V*{3Uj*-8-!VscD%|TN%KBK4M=Oj6y_qD(J%m(tr~Tq+~1W7L1<}383&ZRIHctca8n@$oRVm zLy?ZO05^*GMoJl#ue=^J5S`@FWt}aRx%M;3+@ySpnPS|Iu=8PSVX;MZfnPUuv!SCK z0o~%_ckB=PaN_eXrPghvi)PhLk6TXT?5XgPS9C!lJSqN=J6sKKM`P53G`U9xu<`7(xk!N%!Gbg%5tx!A?p{R(*F=|Wr?_UsuEmLrqM@~*d#h2#w5m{HCG1_V3PP=OI@9*1%c%q*$ROl; zw}-~^hlRoKP7>mvSW*v*A>>!1{ST|fC&q#TdNZWQeXyvrz5wIR z-Yn7{eT0IXAS?Y^U*z)9%&ByhEy%_xX)06b?A{=G8RY%_OjXEjbUMU;Z<8&0na6fE z3Tr$0JArSz1lFYpB}_f_3iXu?FjWcw8%Jorq>_*|aLx~AL03PkRnb{-=T@YN@0xNb#VU|xA;%>nIkvp)ZZ z*>p_X@{N{E@G+aaO-BL>8E4|yEZ+o{jJuS|cz;Dv8DouHM0po0V+2gdn-Xmmyo3uT zS3Rp&dGe<7`f#4p&S8s~@fNP4$RA%aaqG7RB6upiA-;y`>M}K(dfL^5{@|ynh35vX zg*#iaqjKHhKJQnWlsmTOEQSW)bWhXR!I;1?z+$@n&FZ_kb6k!=t36;k=xdM|m5z0A z%8D}rO^{h?&DL-;jF3J!!$H)DZ45<9q;A)f8+S>D%gN1%f4NSv5&|)QaH5(Q6XFi8 z%zFX{b4~XUKEII`hUCX`Vkj9$zjU9vgo8>lpCeBLkrm0>i<{@*o`ySb{EN2px< zqFjBUv>&l`ag@JSLM{}DkE|e36-@-eZl;qqL4|F?Uw`2GRZA}|8+XNL9cQ{arBQ|i z>E_9OpICP7-`+IMiD3DqpHQls4ueiP9%>?XLWK%JjMo)hdjS=%D~c&eX*wPnN~|p; zl8#HN92*#5FW3pPXjz>dXRPUzKb%roW(~)>>CYb|YuqyR>bst=w_!1&IElbu8}HLQ z+g=2Vlw~=sS0$>L-)$Y6qA-LbaDy>rUsxNpWEi1|^y0i_fSJ(@hj_!02I>0XpaPU) zfrS08+RZJ0(NgWqJYLfF_c$uO>Dl59hh8+??d95}(JtKEesm9(@qF^;SD+{LDNiosE|BiNRDoKlRW zz9iI%Bk-DPH}i3LSA!g5{#$3T)%Jx}8WGB1p(8ut$h2O5MCvqOe#G;fayJ)itdvCV zZ4&EVFLYVpW0+*Yr&(JhSyz?8Rt;vw%|6q?-~4W});It^YyFk{#)k1XS0*|Bbxm)8 zudY{^UDbfGx>vZt%?~2=YjKG{=o_MA%uB_Vb*hqD;-O@#O60KFAV78o4Tl;M;!ql( z1d=-wbRKQ6?;oMioKCB_j<#+;(a|iG{s|edh+^qmtne?F!!{WdnG~m zF%KMB2?Ef^`f8d!3w+&6bieDAF#|Cgy3pbY*|vyC6f@^oGOsNdB`#p?ToIgSQHP#E z!{!n|?DFzVaInIDG{Qot0_(CS&7VE3$ylG}Trzm2Xou+DsA0;Mu1z3yg?wZ+|`KF!rZgOV5hN>3rpqwRw#2@K{brH%N zenAkzW6uFSe)531WWs=7+)E{Udw3GeeU#u@rHt#;Q_R}FIKCZ2?Am9^ozZj8t<C3$X6%E;HOskLW#slY~$SL1pXk$Enl=o8W253E^!)#D*Y=U01~^6>f=Wqdp?0+v;DXV2qc}aM)Kq+MX)CV2DbWU^k@! z(nL>m@iTb*e*#981?Qwgp41`aUn?~7IWm_0VG(BxB%L(gQfngQf6W055ulNLV_Q++ zz#ZH;Xn5Nc)5}$zjf#X8@a>tte@`~JLjTer?4yH5_n>m}F5X{IrASRxd0~)i#?(rm z6P?Wc)5wqLUl`mV1k!GHRGXMN7Q>?B_mPcNSZBHQF7i13W1CL^ZXptD+C3FoG0ek_ zJS}VfiG8;_3e^^dY2V~-eAR3qu7j86t3sEpcI@>70td#pwiaCZ!IXRac+|LN^GU$5 z$4Fo*!HuRfl4Y(?TN>Y>lGrjjDiV&YzkX7tZn~*8=zLQG>c+)RrW!<(E68K@&iT0#ZtgC@9HrzG{C!To1ioHXEBQh{A)Vu+x+iL+nY*P5{MT zA_V(jvLPuYq%n(y1wQ8~<342OuFmi@o?TC|{OEO3o;IPxa?gyYbPDT#Yt()AlV#1h zgLq3cZ!xN&!n*@pA-G77kwr)7#C;mH&0Y~7TGr^5Q!*1TF zrLvp&ol_wjyV+!rYtmwTy)q7ouz8qpVrz|sfoRGt8woiz?-eT20ynr4){{DYA=`ok zEPk|C*fDNvGue2`YH{d@J^tC{ylr-t|Htf&2MYo^lFNSB|FUy=A0@@*Nr+#d*hCMvhIF&a!9M_zeLXO{D_F-W$Z?A9tU~% z`olGSr64^}AJN*p$y!%xw0tL`{mz@et5ZL*z)EiT-bK||r2~Pxl7?T^=g6Ih!gy z`Ti2!Nv63HOHA(1=@x5e9xZ?ZcYAqLn`uAzLd8tVs*0r7)dOl9V77-*N~$Hx3m-C- z!bmlX-AQi^hL(iLb%-7O2&(=k@V0I&%N2%TpXv?C?A`jJg@hwNZmAQ>TUX+B4@MUvcfoLe^l_@}h0UquxGEY;`1YSQm9;>hhs&>l6thBt0b=?sz{T(JhCdZH zgB^YU7JdSzlUNcEK=xGp)>=1O+J(7!Nu4zH(Z4dP`A!M43$IXDO?^*$sFdBB|!@ z+K+d|iTdlg0o(Dgw?T5&fas>zQQzlQ626-!L`$TU;)L5?`HwLcSO0VhzcRQIiX&!m zuf3Ua8$dGh8bdz7zrY(Y@NTdl2FV6`$}w_6biqNr_eVV$X-Rvo8qs*Ip@Z1!xfI=l z?}M98Q?}iDz^@`LLH2s}KmQO+W$Tv2fvnzISU*9lM&OQW^pIQE8mEHQbSZ4JnTs&= zU-CbVWl1A*0|_D<;q4;HLS#9=TLHCh_O`T%jS zta*FGcJm0RP`0LJkvEwFwInKd|HVh5rghz@F zoqB#!K4v_AQMKTtrD`Go++gKf#Eo)DJu+#ajO`AWcoLW;1wHG3bA%k3xTr*H4$alO z#gZ;wZxF%Y-3H9{V2Um?fUaM%dYc^ow80O|0p2xzRA6MMvXRClGgSjDZVIy_>n0-+ zFSHk$fj`95{b2#TAcQVNenOI~{&-dER*o%_xttjE%G4cXSEId{3w%0tR=T15#;F#> zB`S$yq}eHm<;W@JR`5fO&cXe0F8`o$5JijDR65+n+>Vi%UjxyA;lV@5aJC$0`M|tB zE0@Jr1Z1;89n-uma1pL$#FU_>`mj>7$5NwFKeJK*11?a;$>#I`_OdJUl;MNU{Yc*_ zNSate%_0_kQM0yXo1vyur4)i}xc7Qt+dQ7t?S^0dBAD3t=zQOYRTwTI+J@G-xbsB6@3o%`DUKL#nw-sM@O`H$jq3-NlSUn!lZo@kfA!QiP=V|32Mqvfm$_tZIQEp(q#} zW`p1?DgczXJ0{&)1HD|`PI7#Hryt{XxjnM8ie)kL&#n%yF(k41!e<7E9Tn*~KHGRd zJsf;?o7^{#DxH$3S=)B@x_Ew{5B>ZOA3DQl$!Zlm!O%v01#gZ=V{db5eDHV)T`PZC zYP=peS3*l=<3sPbaNd4iywAz@4Ym49Th$N$X-9W&AiIW-Ilk6RZFG}Uui)H_^E&qi z*X>m9)n1M(Tpeo=V#BfoD^6(E+;$ z8cnX;={-1&ldl^xyT&%L*|LubzenhG$RZTmB2L@BHuU08W8=vk7UqzY+AsbVd@}nm zaUX$h~hC*`QbuXJRZJI|C#{J7`}B zI|$k$c4qbbGW1)EQzzL0g7bo7=iS8T)PYo_0)z^{v+TiA|$;r<%8E$L$^H1hWtoP}LBjAlG zRhD#D-ao_H$yOu>yY3}K_8JR^whQ(wD~r{w$(weRKQ@bSWmRN z46Cd^vf(Ao)%%Rd_^O>8XXgR<&GZoTS|Cov7zC+(W{4*pA)8$DQ$<@RpaG2wIc0}g zFKouD=%^_B1-x5378@^X`cY9aPR6@kun2Z=0H-ANC_0_&F4Ni1ve>Ml-(bnQHOpKligGuRVZK zX~=!(nfGe?Hf=jy2;@mlyLAMBfkB6xI>GChJsX{)4)Ct!8ZrV7Fnf1X|jttWTiUer!}*=1rqjAxO^rdo0Atlf;M z>rd0@#xk%eB3?<$OJpSSt8WAF1+s*gZutVZvTXj&f}g5s#fbvQ16bW^_~S1WxCCz! zW4tw+ygOQ`*38fu@~iF#Mn(ahdQ zku5CKgH%0_kUbUQO#`M5ai5j97q(|5t+IMa-|2I8YXA3ovmK0;(_3SfUCjXgE0O|Q zaH5$4YBqg)U;%tY!kZ$$zlBnyEGR*ABEkZznZ-#6r%VKiegVz{91 zhU7gkqy0=n0UZsz(Hx2tw(~FFF$tSbmhdl-{qXIh+;NaBCF8Dugy+ym5>Jyw#}ZBB z2OxEv`B$cs9Kc6SE2-PwH%srSB`9wLMp|X%fg^72c;32E`0SrZp7d$W2zGQ9BugzQ zgT3G{kSH54;qgizB5Yd&e{ub~Nqj=wu{5f^M!Uvp|E?`9zQ5t!c?wKXUdITOSz}(N z%w5c{-F?t>_C00%t77K&eEe@G%BUv53qBOs`5#I>17u!HsI`yX>J10sV(L%%vFwXQ zxx>nB{ucY32M!1;M26&PotF^wnXZF4dl{94+IrxY|6oiaCYB$8an9JMOSWV`K5(|B z0I^wngtn8yZw0-MHonp*fJO1d9rFdo|I~$x!XM#2o^$dtvM2aAQ*NU`{XuII1MlVe zDykD}-=$rIJ-L8GEbzAGwxpR-CXg7ye@dAdG;-h^_+^xX~bk{xaT?Wo7Vt@X(Fpn9QNsQaut(eTi@rBYfcMezpmCIkL1%=2Q>+G(-KC=JG;4l!QN`F42wUKt`Tl0e6Ua8m=6 zJeR<`KIsgj9XJs9DBRk@3YRKdzZ+@k80bWR9dmi1Pjd(^8I)HH)Ow;%c-%{EL9ZV^SbYG^%-! z^oQde_5L3(ojQM*>An@u8_sq#foT~z^NTzf%uTga~DEQRa~QS0uri4 zMHaLk{k^oS&kbjfULn%okl)k68P&5KNi+=e4lW~^akzvM3Ky%o9vl~0d>bF26xs!CsOlJP<4wwxD1J}eK3r#6Axt#Utd9Qu}}4G*z?-(k4+NR-vh3rnF{gGnHE<1ohr6dFgUX;O5|!* zS?M4?Zp+n(=^DiQT)dHRYTdWR;s5ld+M}&j z11_7?XzE4l%AbbSiWiE$522p52XYv*53qO0b;>go162-_+@donl`VM6C;^}}>h!&P z$LMM=Dl10|ur5juk@==#Kg4A`|EMhC?-|1Q1A9a>knGh~r-Q;xG@ zL2KFcEsa%#m9DKQJ*F%l#*AtELQvUHNhh@IA-j5e;9bjgGfAWGN^w^zFQRz!whZUW zUolm?Js)}wHMdOdpNGj88j(nO1Xp_p-D6f$k?&QimGzY2P6%^JfL#e4t7}t*fs0oA zA7~hvD<{5EsNTT5b=CE4;QqS#AO(`o5H-bzhj3`VPJ3@eGsNV}LSINzCf>ekOjpC* z^c|@FZ9Fodo`p7|xGY>?Mt91nr82D>QI5gmB(PuxsD~3aXw0{SS7TX44kd)G@YeOe zQ!z*76>4$Eo!?Q0sb+czjt8KCJY0a{3C551RK?RD`4U?o(Cm=0_g8qoP)nwU;BZ9jO7KyQh zj7lunFD4VQezMQckQ9-TKmvoBD%Fd!_mfXiTow4p7M|B;+`Tgbig`O!7?UndU$BJ7 z<5EvJS42asEee*yo-w}+6yJGNstjD$m}b$q2KcBBxZ0g)6z^DY1oh5Zc;MGYy}dt% zK)N!~z`frl&5Ie6M~MqwH0R&^L*U(dcYf#Syyg;ErkDF;Y==d2Uv)$?Aim|c_+u#@ zizsZp5NlrtpEwxF***a&ee!67i0f;e9I&f^gq-#f8^~Qj|q8R{P zYI_)~62thj4M}77f_e3r%o1j^l4h&WI$jK%i(qilbgU&|C(^eAFWjpNq}TA0X`cuK zSnt_a4g8_b9WLZh^>#9-;&JSlUW zOC%N4T4oVV_5`T<;7e7*fN3?C*wrzXbwr$(CZQHhO+qRAA z?#!2q+$0zI5$CLT)l;>%EfT;a1Ps^9Gd$Fi14bbT&`ZfiS#1~mBPRT1nMpDiMT7-s z82#g$+>E;`e!t7s(>v%~J0d&Kfu~*f#(2vp?VDty4|Hi|%Im<*mf`J&eKdmwnoBA2OV7J*3)UW)!qrTAH2bt#^E7jYfgKVjW&e%ojF_Kk_hoNbcB zGgYT2`{E=IccwQ{)B#|1LCDZHjgyP}!@cnwhK%43&FU)jd@|fK>e0G$epU4h4ooTA zT08v4PJWS8*un^W>yAtc)2*E>wNY*%mjD~(-4tq6N^}ChQ02!h$7j*J*e}bA*;YQ` zC%GTSw~A$w6?4==)Hx=iFt);t7Nyw}1wOLct^1(XG_*RpV=xFKPJ@NcbvirVnBu~M zc1Bu%7*V^7#%YmUsQS5g)_kPeQg&_q@lJ?{&EPmDN=!NROr#J9a$g$jikCK@M-(=U z-lfSK8NZ)i0-$MGZ~_=&+N9?b$oHkXBYR^@PO-G6$J8t&q_sytZ@R~eSmBBrSgm-E z?HB%ANC{S{+Df>@i7pO~rl5qANY1M1N=8`SG==?In8jI6y3DhNLuF{? z1FQP!f?gbj?`^HMC!+94&o1DOqB&DDuhs9su*Z*piq%-v4fW(~_G0^0_6P2nG}VAs zRfj9`GUQ^(_c`GOM!K_BIVpZe}Fp>A#61quT3s~gPR}jon5->U3f}kAk=0-XZi_Jdqu)q27&eFpeAq?-hitc6Lx>!-l>X4#UOn5oX#ZbuW z(+AQ>aTlaIggOR_5)Qp&{lA$W%`3Y$3~f=O=m!wrc8E`uV&ldlJ1#m;oHFcafbGJW z()g`;@IE*d2*xIGLavZIvhg`Tp@3{)GX|8X97XeOxVYo@f$$4OTC}lZ+^5-QyM`xA zMwNJy#}*_U8)sm`yXDVXa~^Ie>nk(hL-cR(w|6}(GnAghx2+HWTKV|+)AS^|10D(* zx4KAE$KWmphcdB@rFEdb>o?L} z$Z;x7mx+tSTat@PF229)Jv@!rjTcbQ5^R=~N)_EhrN`vf{^9^NXTG!4tYDpPPJ?|s z@9%tLAs*K1+ZS$(x;*_>P9^rs^CN=>@QBrd(Pc(SMVV*ijR}w1<#shM=T0i9tb0!@ zNBOZNsNJRPFM^%|vczA_QMHBp=zP zUUg01bqcK*W1A-aD=TY5eO%oH<`U1*kgrFj&u|p``l%inU(6R&iRqGM1TttZURd6$ z6rPQ1~uosHjja8e9 zg1Pud#c(K3RI8OuO^8tex(ufBT^wt<`DT8g6ha2ti%^|my#RQ9qwOYnAK*;CEf9dT z#P$mE!38T_6`C8o_1^8XKrcZ(F`T?z4a`2bLftwtW+*qz_RiHJP)8>-}Am#OR6SXzi8u2u(Tqc6;r{aT=trt zgDQjnEE0h{#^H>ABx4IDAd}n+p>`p&g1#-o!7V{h5u>D8rYI!)YkSF;aAe?#u&dQ9S_;gWScI zDLAky+Fe2M+^Dd>*h$HALkdKhv7qe>m%EMV=|Jg%#FhzM4C5FrvL(VMO|invf~ObQ(4?-VI%}* z`j+(*kl?`dgIyqgnO;J`LeCau;dQgQMv2r7agGDcIN}`|$xHJ<8Inz9;Wd{H2>OuY zq-txh0!GsQsf+DSs7?!6H?@-iQhR6Nm$}4;mxq`jEcg~C?BRxLEJG1uF?b6Xg5ct? zj&BHx6$+oZF2|n~UBv5~^I+Ch!V5wnfV%yr_{$|t@gO{Eez`RHU1V-~Y_vV#J?&49 zGBl~PM`P@{`Bu+WFwy@6S7YDRXfQ^>7+kHUJQ)cJzMpxJ9rjG}0N%nkY$WRDw6f|> zzY4r{a%i-&TI4*TAlB84HNYSXzo6o$Z$-#e+;R_5IAX-hBf{q~Kp;K-Ct7>n_-IM# zD2UBDO6l$W!Lu5<|I~>Hyrf)-ZMVdjg&&Vi1(q)BV6tFoqB<2Zge9N~-^t*vBhr0N z#aUoZ#jqyw?p2%AQ{``;)m+M5F%-@Gdpfyuxs+~b6PdWV{;OBUlRiJ<@}8(qRolAq zNT-3GhG|LPYROrb@=H+HZDf#MB4zXs#KQVrwaLO}mZh28;T61lVp)Ojuzq#g=x!V` z01tmThscw00wOdqD5E%t<=KAW9_8>MjqMi6J-E_+eXQ4CnEnd>c5DLa&@0_h`_o|QL1PZ8E3~_`8C*I=; zb%v{t<%TY~G~8gW>I_PAf}5E5af>i186PWF?eEW9V`@=KxE8G-&?Dmmc=8 za8TD6psx{^oP$VwXN^DbFk|uS7T=A}|JGy1;AhPhW0nx@JKZ?BSiN!ZY`PY*Z~q|T zg|+kvd~_u(eb z3_(=hNc1vmmg9#uqvoQK7l~v?$?D?fu^%#6yGj}eKrbRvOT395mCWshA)2dvhvlZ? zf=nE&Y>K)3-8y*l<5xYi{EePrwN-VoO}<_J0%G5xn%vc5!g2{lx7oB4NnqoTX`A>X z{F`$F3bg|*_j2m7kT4L*xndP<^;A;Nt*+!7bv6Ck88CL)=3{`;?HP4&#L|@5%a%3$ zw{gpydXG3C;bqml`Zj*^$8|NSWB86P<_zB$6%*bbA ze#J^bUFYbfSKI6{JK9T8)|;@Fa)hzelY1)SlrJblM%UEruSb-&HzGa5j7Uj42fKi| zh!a_9YaDSVmN;e1a8t9~eK0B2iD(_4?~~sZ)T8JBaY|%lBVZt~Gqi-_;en$6A08^> z|KD1v^B-$vX78NRc&~ z4uj-+?!Qj^3K7U81@6lywd0nr&Ci*9HQPD)N1@-APKRA%U8ZSh*G|2>0o0k*ofDPT zUDNA!8*h!Fe{YCC$fsJb>8l)*PPYa|=+_<53Xs8>*M7XS(B52T)BLnbM=-zc8n*}Q zu+5HIk;W?5nu=m8nv+chY`0dLG+W=4Ja=`2T2&#j-isYQw#TuX5lRZ7$mba#8c@G70{kV{H^g8PO& zB}Pg2&QxY1BAP>qK^^%k67|bogA(KpFFQDWoc?r9s@aE;=$B5Vl};5ySHr9$jAjR? zX=u`vA5c^oj;PwVOt)I3qLQ;b^Uh@s+CbYE1YyE#IT2na|L>{y5UhtffC+K4SF zC}6b2>>rPwDoFkgkeWrZoI{T{M$BGFpfpv(lE>0&Fb^=Hn_&({O6D+& zy8fY*=pUAQ^9EUDx)?n)!A3`D&fc>*Sjk|`QkR@PTjttRnF;iHG$#GMo(5Hu0<{e$ zy$Eb=DMIF)JF=b9w#6~%I*wVV3knRg~Q5VbUz#A1PU3qJn8Pw@Yl$>o!h#`#p zAc2r}C^Q2m+ft0RO|2W?ykEERXkS8aAK)$j9{HErAwx7J=Uz?210tt}47PtA{4zcj z>7P6`OpXODT4sS=6J5?X-9dq&m5J)js~UNkk)wrEgrmXc*bSRac2=r5yM5S%q_v4Ou8F$xc~Z)iG*F5{o5R z;<|QESHs?IqFFfuI==uKN9K(?p&yZN-49BTszjpJC1oO zZ9n^o-4k_lk1s(pDFM|igh^2?93ObXc?}q4L5d;e>8;_Xo=+JinZX33lOy6GFX zHFA}?GCl8*LI>$pN=lWB42_wdQqCY-7P?W{*afAVfPSt#KR(n5fP}8%lySxIDpj;e z*k+OwY+PkKs0GB?vf>!<(>}Y^p_T$&i*<^1WkKwM`m5@uR6L(a#7jUq{VwuE7mz_> z5s>R>l|MJ^d|D{fN<&aI9^4vbNF7e)hiX{tt(dxEu^0IzZI>FUJd)bbLUf4mb2X*? z>r6wkny9FGDcrp*{v6?y#aBmRf~D1JY3R~9(aer-tQ4Gs;NkW3N95uo{qC~Pd8^R& zX2ym@l!NRyFWa`pe9?R7=Em1(cdZ1jVIhbsIs$QGew$gEF4kAke zPu?%LPF0yx#3Vp854{FNdDvkv3afEHWBUQdj1`|oMTpngc+i=N!nU$|Xf!UF8B#ih=23P;0aoR8Qm z$HuPIFAq4fRKc#xj2ynp9h*B;PIs^nxf*Rp9uL8d5*SwoMcs|fBOUi~@R?{Bji!WA z@S|%jiXwh`V^Hav!rXJpdi39EfNT<;Eyu2WTjpuLhe0Uzyq9m&BthM79+OevMP)Sg z2$V0jEz^|BuZbUPr4lVgd?UB3TV01!axM{zWOkb>MM{T34AyVm5Qz-tI3OajGhoJ z%fyT)u)%uBC2njUQASF;vNk<+ra5eE3*v|v9VEtu_%RExjDrOUE9PqmfUP`hZt}sFdz(Z~dlB_8+_u%xjz)Da^|88M$+HO-57Dg+N&0z+T$$$c){TW&jJZ}7MSoJcxQa_c(Uo*ww&cbNf3u4nz%+n|OGBf>e5Ff(T@T07R^hr|z$FQNP2jbk_W!0Tb zu5f)n>Pyik4U_EQvscT5#gitOu%eb*)kz?VOEk;0jRiM<$ES2?r%Kn|fcP1a9CYbt ztq-E`xdNE{hdPuHH~4RoQD8nIB);>a%Ud475V&iy%su6#Ynl0c$iJGVWb=M>}DRZSz~L%HDDRC0dLxI zojQ_UJp;ENIa&pkam}~824j{s<(5}BLdk+lo&(j?ir*QibM-sUcsS~*#+9)!j|}9b z#jDG>E9(6;lN#t_b|4#-P~t;M`G@H90gWvqb6nC+JOd8l>PS@;)?pcyN0qskV>>>V(`#hUT0VAcDytc5u2R@*SE=5~U!b9daFpi!E;X z_dBb!b|)btk%N$i+Y&R}?rrb4B%8n~=k~eZxXeN(t!?C1FuPgpzJ+YAcC`>ws4OGT zYQ3hC()n{-rOzAj{1u8wGs95Lm!oPFS>Fe4;fDpO(c3c0)0;WeT_4*i{F>oRTvkqR zpP9&+s|5=u)|*%zn*+d!>R@7@{#Qw^WaqY#%7WnDQ!^v_BJzvBN^!&jZi@5RNywTD8 z!dyYV7IL0Qy3x^(6P>wKz*39qmtW2b-N9Ojb|AE+KXbEX(gy-K|&1 zU*?Q}H^?NDcHUB>YKUsK?}_5qfU|!f1w$hPP$M1K57VczA&CE{DHVeVKNwrCW(_V( zdmQwqDE)>CtK8{DT!$sGZMb9ffaAw;8;X=TN0!&m#2SpLG(C~PVn#GK3FN^>qSM&a|Is-p4?}NMsgB_HZvsTWc`E{A>mP3o<{sbk8X=gx~kef6qzn}G!c8>(rQ<9G?DMRrerCCaaSgU$OTPwFnF?0!c_INv~Eei`f zLhy?LWji}5C?T6v+UcBU&j4Z8j@jAX7Pd>IL}-#~^Wll~pa#)#Zd=+7Wp;u-$quoc zv(Z$9j)h>iSMuH_v+hP0J~553zM!MQTL?RTc_r3DR*#%c9@M`o(TscdUlq`}knxZn9@(fzLYR zA07jLX-rMD1NF+%hM?u;rM#JHPa{*-#*7u!Iv`QRkQHXfQG62F^~{?x#4ctUd#D^r z#NFPi<_j@qb1*@r)-t=IT&V1K2jz)DiHsui!pAsQezJDLL?oY5bkA{wPlJDi4OH<>{9VWoCA2HdsGO_d zXk|a+{Cl}GPt$+KukW^DCnCGM#b`ht<+MVPBAOJhY#%e~K1nrapIEz6^a z;(1Yl8^4p1&|t2eb}~31HkETYSJl{T8`BDve5bH^L@nLOemW!nz7G?Jv=u3oTr|on z=wy%%DR1jT!Kz(88s1|v?n4HQd7UB|cBs-ccFdhRx=(am^9k{x_xJ?l_=%AP%RGN? z%u%lZwQ%L9x0_Zpn&~h0eQk-qX@Xu!AkF1-gNgQeGl80EVF!(x+S2)96TC9i%Ql*@ zFY87S_UItJ2BzHZOFmpN#57663-bgI8hw(C?SraytAUyn0u)!CW&vcy$RLC_#{2zE zgeZ8{&gb1yMe`8^jM)Ok!$KtUUyY0UY*Mf`)#G-JXe`v2F@;`#q@cn$IG)ou=q_H( z9X_rhDXsmL!;FLN-&s|jP_PeR-rsZWPr0RTLx@|)Ks;jeKt^`~I$;TxTq5DWwFEO; zdI}nNdzH4-!NGqJ-gTVg%ayU;+lJaWYSW};L927OP=UZJK3JxuJkPt&PCiu3&eQ%W?|}%!3vXf zQ$!O~-^{*K0e+{DrW-)?6f*}qxZBAgmBz|Jys%P&HU{?vQuUW{#FX68aYzR8%;9Gm zV8TrUF%rV*U5|Fd`#aa_%<}eC+OqKHpEw&yBkCc_NkeYN*Y$McfBpP~$mF%SA@I4; zmbp6))TPl(@)|8OsLgw--qgx8OY&7P_Qms)ZBTrTHuW>mrgR#R2Ockdr34z;Id=q1 zHIhuMn${algSZTbl>RNIM<>`gid~QbYmi6`i=J$o4nQC1>dypJ&k`bVK_Po(Nu`BS z24MNK`!$t1AjL?JXEcwmBYF2=(NiSc2o2?n0dxBrw1aGB-6K9oE4m$|qs0=- z6S$|4mJ;OH1vY4O3SM4LBD}vYYNdl=iE6#8deM1Cwjyy#xMmgQI?C_AfaO-**F{4d zq48yQ+>V6Hq=;Y)d!?t=Z2xi3p__o>yC+>hBdsZ>nZe>sSqX_(0bZMT`*`wOj?Dky z7n2K{XMld-d*?_aC~jt(1Kg-oH7^kGNHbJ!sBmo=G%d=B+acSL-5C85zj2=XWw=vI zV~+{-qpeS{GlA6xx~CH6UnrE?*c%&AC#+JsDNo)h-FZCGN@uBT@G(}Zymvwk!hbGv z2k;c&l$88^+|SAUllq>{DkaWnmSkyrNHznCXE8cggLI}=_QX_=dc@beaUQM97R0;92f$HQg0pgQK3%1vWSz*!Haol|JCO zJQ3gA^?GC`H1F=#X|;(UtpzLFF_aul^?n=>DT*T0dK}jx$sfe2mZL0WJKlboi*5>O zAi`sJN)o!GKlafuCsZpFvjE?8VS;b>$uPYS_w!q@eeV?T*RHm`WhqYV2lufZ$T@~2 zMC{BG?Eb;K?^`WKsI;$wJew7$?eQ!(j?imz@k?{R|KvS^49{}#LO^`cSuNF0?F0Wq zGM9fe@UG!JgkEq+F1H&bL|T{}CDQA=Tg(9XB?)JvBk-HiS}4rnEykd3(y$B{(h=No z=I^kkbED0pycc$<>a{y$t}TO>fz4NZ&H)-rq&Io#eheaJ6H^@i z2i{|_=|ZNyR`xGX871z3PmxH7-DpoZhMj1Wc6Q;|tcRge*l|_oa5PHGELmtSlV{G# zP;Y}By^24gA->4s4p;&Di{lqa<^~N*RBFUR*l4=pK*;u}cYSKz1V@PLLePPYh>v}N znKVr+OZ)wE0Y09x=S=~=9{=qC8$sCf5uFtEee|7%g_UX-@Lahoe`YvLqVwq1v-r2E zkFsHFs~3LAs9x37p?UaFS#)tn(nC%zoek9H$Huqxro#zq-GN!aS zAt~6W*x|qjRic~ai7Bz|S&}lE%)5RUY7$Srf;`COT*p8^}0SQ8Dk>l?s_ zAN^E6l9j<9SvXX_WITqQjNhfec;#GunL)OiD)Vrb3>f87!$mLnE4gQePvo~tcut>V zi7pYGhx&VMkp#%{O$g;#?D2$UL^ZUp9FE$ozaG*lX3Q$I(U@!JB@IToZX=T%Xu>nM zHcjGO**)2ZJcMDwSKpZ>@feim$<@c#xQm&~(F$Mn_?{@SxY%n?_?tkiB_|5jS!d@- zp`=n8r|Z^AaD>+Gw-n_A3@H4gj*TckQ*vg;WsHMoP7DE+1MS9Q$LA5f%19FtJB!V7AnX0=eBt=+_obZD2OJY_cv5W8ar=k2zs|p zAo(2r*?244f(#Ne*%>j6FY8pmC2RWN8wHMWG-16w?1SHw52g@+TJ7Q|2F@Hst*_%c zEnoVB#v;p+EL#kc3c;s`Phvjz-DZt;7N^UvOQ&4Ohe+01kSnV+<|W)QD$WPBbqO@_A#a|iH%}v8eU6wGagoeV+HSm0mj>1_VXzII~ zsILx!niDTZH4qq|)^lJP9gw_6+x}EmX0h%N{_R-`lYvjAF5s{&5{K|x>`9ae6?A+L zRKyHtA86re^fsR;0cw(^z=(aT{C_V!>FjBni%^V^OE_=@D8+1r%)(8NQ23h$Zz!M{ zK{GL=p)B+-|K_N`SZtiT)u;+%OSk*box(5}c)A;(<@YVksh#eodD%#+^B>PP-oeaH zR6V@`tv*%TLxxxW?q{Ij5KZ!M8H8Tq1=gp;370BR0b5pg?#q z6&S@zv)alisqt;)aNCK)wFlhqCuYR0i^G60`h2M`xfuP|wWG^;3q3#h1^;ZCGll(A zhD`jdBH*F7RS`9||0NOQD34e#q*VMINRhb!eP{}tg#N<-WSB{j-dLvZCUg;QYh4t> z7!%MtSo~%N{Ish+2cke$g`U2qR!|p167QhDRc{8J&h9)I4*V1fA2ihkj(2ikQ2#T= z#*5=_ijugY0QkL*GlUxk;cL^EkZFxGBG*PQIuwtE+kqQG`D0=Y(|HGyXm5AV2Rw{1 z2t~b}a|hB+ym5-v+*Bxz`h38_UpbipD@!B@XNVD7hyffLpM#Q0y&tOjnx;DixsY?i zk`v4T1)q*k`pxVQ5ITYK(o5hfbieJ%S~>GP2DTQZEW3-q!;jReUwE~!u3XTfn|Cgm zq7nDDps+lDK>?PJoyjcmJLrKo?7{X~wf>SF|9sUQd}{klNZ}nwbfi_c>-XeG5^E^@ zf7}O|*#Gx^kd2jv@&C;{{m;~JH1R)E!$*;sbcW6bmVBDG@x~nY*lukp&J6B9x10o! zf7%HJ|NA~TC-<@o%hn*DTtxCFN+g({c6nJ@mrD08z9#;&(3Z#B_4oQ>>X_nX5o1g| zO--ERA&`MDGI3o>!O^*cL5=;RlJ0bjBV+q`MMjrpj9>3(&8*j4^vCZLsZ9Ky z01|0aRiK-IBNHq@{GV*#lmDutj6T6`JI~VqYXJUwwry+)KxTL0E3cPiREOgEFnD~c z_mn-qza6+V9^^5U+97B|;rs(Km0h{Ih)2uYgGbbY<-?w5L`0i5b9=!z-cztTw{I8E z@H&AbwGW+@B}F9Zld)Vui7ns6Xu>-=Uj&XcNYF?`J~x&?Z}_5B39)L0B-TSCB@+`J`OK#~wJb;3 zJ{Nj{Xagil6YKRPulZj!zC#R(Ofm+iPMaQ%L2;!$sipM2WA1;IZIprC74{Aa>28kj zH!@iTAkM~;KNWO}APMLqg!hKWBP1Jtpc|u5%B+o=N9R$fA1o5~(4NTj?(O(L68Mjh z9xQcEYRdephAPo)e98rQ2EWgXr9=p?L(*?a)a4U9MNu|L3uaS8*4MhHK0IBrQbcvT zUS)AS4a!C4q}D1yEauBN1_vUKx{fF#1i@sB%pb4au}YJgjx3lEEsr^giTdd12Ihvr za}>kx{w`$Ua1dtp=c(_$2Y$=1S&d;N;Jg3vr@3iT;>~9PlpS%#E&+)l`Ee87sjlKC zbzI;KP~u4cm*y+TsHGk<_ouy^F%kO)Zhi2lV?;APrij6D(N;;QS1FkyBI>inx`Pm34KC1~_D-0u=ym zGE(QQGSh2V?Q7KAN*!WNH3HG z5YVMCxMV^Ow9;^!SVAc_m&70LSG^wi#i&*pZO9AJG*I-_cij6~@w6ScAuAhC{6HT<(mpz7lx zBsq9WW0CJPn(cG{C*8C1S*J&JkDx$@+eAqEpHTin+)PaZIKbd@Af$*P z1>!STH*QGn`&qi1L{j_tnN|ZONT226BSwiCGaC6#@vpU4D1&sRn+-U|eHZdCFn1U) ziHuIwn&bX^f#_o0P9x9iEFFgzC7x)!lK`CzJ8{_Pxp znrgVFrop#)^57@(703lERtZY^3I>0;Vt7{y(5X=M7^+0*4gX@#N?f$p>&`{R$`V`- zLKZKsD*5mZ7h&UghZK2m4_AQmRWL%QCq~Nrp9QZf5HmemzJfMaZXs185utK$Iq6y&06iB_D-)YR2 zScNM{CK))sE~R+l%KNd;9(7y_Rle3I+iT@+Kx3GNCRqN^if7^t|J2^=z_cqJslP-tKpw&W8f~IB~KgL@U^A(wUwd zc?i0Ea@3Kn%6853qv43@#?3a#u4JHis64y^p(sk8FuU3^Ziz(%{F^|YhyuWavS zj8?1=T1&)lQLc6@3&>7UJUF&>;M6m1nF=N%NG_a*P$UrVhm>!J6GvC;N;knym;tGc zH@%*If!PwNfM?oFT<%QyKn}T+tg>6V)lNWsJ%!z>)+%=(>meDO>tEu4%2$k6tMP^e zzmX<*eqn=PdP{9^yTnaMhdB0))XEUiVp#*zQl;{3I&DyFq*fzYwNCjXy~;Ae^Q$e- zbq|EIF%a|i0mWdbo6}9DBiC77GCx$%INi&|omA%DV8@kqKZqx|VBZO4H$9E}wU#h9 zCZk7MV_Iz=LQ{|&zss|MTdAfl`@^(i?SnTr+PDOLLuf`KVuz0?x01` zL|TH$CziH)$i67G#%6!TYMx@7h-hBtsQZ`h;n82l8 z{P)hul83VBvh4^1SeG7cwjV(%DW=`dVZHnn8>j*q?tSi5zabB&Rr>>rdNvj!qJKJh2fT;RQTx3qv5e*@$66nr89ENX>7nN%AF1 zs%UP6MV=Xu7+pq$4v=+k>kZGvWPYDr2Q!YiIt{w85c6wd5kv_dk(d1}W|L~EAjK&1 z=ykC81V0sh6bYxcQ3E5lMKGWCgI6+bs zI$0{yRcfS^7YWe4hKRtbqp*RUs}o+*MN2RceJnWf(9lVptZ)J=e$}(gWja!td8+q# z)A7-O#v@3uC0Boezh8v-`n#YJXul-3{;?#Ab-^_4OYHi8h zhL|b)f<8u0EGoj+-vD66#Y#Ops)~J#cXz{v_Ttv(cZD-Eg|@j+gN4DxSlQN@3JeBe zPx>IJ*G92BJ;@AnLZ}4V!Sn=>R&OR?1)?~)8q%Dn`gSl0%H&vB>%ZsGM@Gn`L`1E` z-{&Z?Vw#t8nr~LR5=TI>LA?GxMn2h<-HteR0t7)yxuJ1xbRhXI1OX0m zcKx(6Js=^a1}+?%HW7U~EW^DX>UU<){15bVc`~s21RvUeIdZhPI&O2E{kusb_&17U zjO3O3?X*aV;BDWYW!jfBd5EFe`~WQ(xQsdt+^IkK*oQ1iF z*$Ah2y#bdrUY*ilE@Sw!SES5KaCgFHTE8`VFThyKwQ15mTAV2@HJ&~0uFnmmhIX-d zSm&NXMR5$c!wg;M*s4@UiQfQclFsGH*Pl=meA^v{W0fCA(22Mv`o0BZNb19S_W>PK zeG7uwO(=YQx$7#Ff3@BYR5Qh>aMmvH;*V@Hv^0XODJ%$JITE7QQSvcvFq)x#ZzU>3 z9@cyOC@)rJ6D>a8P8ya_!%M)ThqOhBFEpns2Te@*%J>_Ts?C%nPs;!bb@LV@a%J** zJtzFeZSAUB0wO|1mL7VWc;=cqGkVJcoH9u*xi*WE7_B zZ>Y>TF*h3D_Yf(8q5eeY6jVcU&Q2HHE(_}%}JVgxiZAs(0~M-1=Y8@j^lA!!p?~sjMySELu?ox6)b#OTqta-d-M zr%ut<6U^P&#YjV&q&ShqOO8JYm~V#gBqn`3RvYDCRe>YVT5*3wei)vL(S1qZteH1b zR$zx%BxpGFXxIfufx6ClH__lpHlE_!rD<4T4U{M(3z+M~`!${9yrKh1IXdcXjOG|= zRJKS5Hzol(-EA@t?FUNrddcDc=+-W&&|xjbE}EU);pANG?R9VdXvA$hH)Xi`0iMHJ;0Ivty|4BJU}cNwayl`4}OVYg0-pu zFm;NXGn!bj?QM`)%N~=_Kh3?q%O(__LPbT!%r*>vxt>C~ca4K>1cY-ky!@NINJM}( z{Rg0w2(xlYKG(ViLfb<@cSvlKI>f!LULHrhwti15^OY4e%SCf<-dW6Q$v!`TOsZf& zz zjcqRV1N>x36d5+NtVRCN3C_SXWSH>dV?_w;+L`XnvW0FdvZ6UEfic9=@YKHXFrwW} z>$GDEIH%wK+qk~o&`d0{Bc8_MIH6w*$fn7eZulM;bZ$<$UZZYD7TQ(38jkesLJb$t zywXJo$%vhFSmI^0u|i+V7bHBEK314efFf>q+?@jfzKoF7 zG4W4pp+_IxMv%Ff6$!5?5`;Gc4j#Mozoa!J6<-+4rkQqxeE|ONmyk7b*xp=+hp?)M z-7^p*&)p>3AO?+$%aNKN`b8dKEA;z(5JdvHlt!=9nFHde&?DK+T3nn1Ngr3_(m=Il zNWov+k~}2wi?X-niZ2;A(V_XFgcKsS%3Qp+ttMZ0nWiOX@dK*76f)+x{Lfiy4y0#% z!4*y=TxcOM8i?Mzz<5Gvp;mMeZ{L5SyuN&j>}+3VGH6i5Jz|WTypX|vRMPgoWzk!L zd!n46*Ody4nxuOSHX>TYuXa}<_O~);0t5KBJ6Zmsz{}?rC1;Ra{QWT^E>8|t7yHYT z2NW`Pp;(dJxP%i*Okv6T=xpO+6_RFpcr`?e>1AwHV=xK9=oP{6<)6TqT zF+TH6dpkCtr%6#w2CO3%-01>vf*m=&SXZTlTMYa=nb9*cehJPN^*S8ZULj4K4ju2s zX{>NS^-k^HPvY&FWje_RoihiceW z*u7WU=Yw7xY~~HuJl@YRLCK@xoGS+Cg|Y!dHxXV{O^1FkS#JOhgFJg4g2_nm{OWfB z3TW6sjdLYHy*I~1hp7uovX}5#+-n=LLT)wgUOp<;Vq9>B?L`Cv-lHDWVRejkt-KOD z#T*W#ej34xqop-o2_!L@pJxHbY{T9<;}neLj<9h-Qs>B?{566?WQQMf`p&tS%xy~m|J)Y`qUQ`u1o=d+&Z1=wdq z(-EXM`+{w^n_M>s-|{&%_ys*#@BDwv5w-%Eq||>QQY%T;jhhcgmx;YhoG1k+!`xwxUe+NkcW@5UZv z2bRnCnx_!@1mA|aweCrFR~)7Mb7CfHQeBR?N3sAF3WdJ2uxrm5cvm!Sa@B;Xw%IoT zME>oCjoUP+p4;7b#CQ|~>YM`waBTBVKZywd1{pH4A3&Xsp+LABsHrmJd$5m%=hn%}df}ZE&Bs8QyRBF>}Xw3FYT?A^)C|+22SmvURyJ>mfIk z5+hwdH_r)^J(IRk$#8U|fwl9u=PRDk@s(Hv1FcttSH&{9nImI}xTK+b4$R;p33@jy zU;4?cUyj^EhE&bZkf_!M^x-1iulG*zSfl!&3E}nuID{csyb)OmF>J&OgN(j1>1Bgs zV)}ObU0U2D1O~&$uoov>Hi{e^0ty*Cae1z1B+8oRxr30(G@klat7bW$(>^h_-JX)+ zuUv0LeX{Jo+!c3>q%S*Ly|*`|V^@;uIn_SM&CM~PT!zEO&XxN{&%?KH3obQD4~8eV z=Loc3IX^!Ihhq@Mn`ENhTg4bHZkji)b?~o+9G=SFC6J5;rLq)nVB8g~%gq}{^&xz~way&yr;|Z7*TGfZ zg36?I^^P--GzK&9+Nab-&dmIDR78U>_d;G@=Ip#-Xn4oW2I7k~Y9i^t;xz$vjipq4 zt+U~Ksvm*57k{0Z7sl%IE*nK=k>qZaG7LBM+L!UhXOz2Me=n%G(9aKD^y)8bLlhe2 zv(d86vNlzck~FRYavnc&rd*N{Qmj7nX0bvn=BX6c#r_e}*d}e;mMy;w4nK-%SKa7b z(*r*euWMFgPWb%T>!*QbmT=Y31yz3XRk%jVW|;8RLkYLr*pFy+hPsF!);AsJ=;*>& zYye6IWSAZLbuEizlarKFie61F!pQ%Nv2zN}H44&oY}>YNJ3F>*+qP{x*|BY7$Jw#- z$F?zhPMuR{s%9?c=BxEp^~JjD?$z(x&u3RF=NdZCRraoS)RfNW<}U%_7(B%aif%G8 zgqGezO!uA%F%2yyWha3fp9t9x-*7L43_Z{B>fY$ZzctRxwSQL5bV2`lpR|fW2dlY@(bO5Gd&Lg?o|%|aP;==xl6Bxk1a z-BA5_6{NlXRf@w<647*sp&`=!0FJx?HyYYyiwg-+CBf=uOvHRQIqI9L%SYl%b5KIVCEPnDs;W!LV_DWutgvo2eN^v&_~)DcO`p1SoCmT zdy4$xtoMFP0`h2lFB(Aqa5U*Y5A|H7TN4MYFG`y1$D%qHWUfFov%8zvYfljoAaok! zTul~-Rbb}XrUq)stKABSH)mQX_U~w5G&Sw!axFP@d7!}{j}Eu#lN8dtApZUcPY%f# zJg4=n@W+HgIhE{T5^4MTLR5b?A^p|1UBfAJcW+i59Z8j(gZCQWq7+vBW<%x9pW!7^oy6zVWsz5 zqf+NALvrcyb(O~&1Ba*|T(kBE?y*EtEeB5P)SQ^oh-@h}l;AmluYP?mcg&Z!<7_fg zPp0C=jTni@#f4PmSEw2Fp9{X1V;*aIg~S3dM+3%OIVu7Jy^Iv_fJQzmj@ea>et^RLh18jYt?gD&|)k)%Q+v;%Xkf^bP2 zc;+h;LPVsWJb}`mDOApjxMcsX8yU8~i!^u~Y+;cD+tWEX8LO#N`m?`8Lq1f3H+xR~ zWvL%rHKyc{NvgkGF7N##ooEv53o;nSe1F^NnDwxshS<%w%+$7;?2sAsL?mg1m*@4& ztM8N*rJIV56b+rIrxthtK>%ZPRp50DIoWpMM+3|+3?cxBzcGC%z6Xq!!kDFN4fzTH z36!Z=&Q?&{OGEOo0mtC;XX?-3+n$s^o{L(FGk!dq;Xy7 zes%&FBeWw+(ucB3D`3@~X-CzwH)rdvU2LxH#oiC?_Zn3()Jo0$kD5^8IgJWtXN;Wo zWWD=1tdgiz>4?az2@K0(;45e&r_!czOD?T;8qn&vJDD`N1AMn{J?I%W?FX574l2UX z(#Q2MsvE<3HHX<(1_-VWjLsvdCd|K^}r~%0n zO@B_LSHn2h-G^Ce?Rtlq4*@`daP~ue?gQ)dKYqzbW`1t>B|OPlAp!2}QOxOe$>+M& z8baUOkLh4O&#jG@9s@j7=@;7j%3&+AlTQXu5gzEu;9}5Y^o039Ry!O7FnPA(56Z6by$Zo(GAttvr1nYDyW*&G4b88$ZYJYWB8YmW3@1i zxaM^$fZc&sbRFB*AoTAy-QdsnCx5ihqHfZlUx|oP<({1?OFebL?1=-1|N)t(zdyM)`$*9!BFhI zJ?y#k=;@@+3zgSCH!?sdm~Vxr=YaGvtTCQ7C!ac`=;D=|qW&hzKbVVuq$j_~E}b>y zQEY%orT8_K*SRX5nFX=Mv)n&bVW%d$ZVp~1+d8}T^_KJyc@b_p^GQkPS;KhC?<+u8 z&rau|_{uBu)a=uW;CMG-{4QEjWiD z;sZ1EU8kJiXuDf`)`PzCaQ0vCi%cFw{7GFoA%S{gZwdKcn_-Hyo~q8=qu#4YCFZCI zCgKt+D5xlXMR{|h21d$2M{=$7b%a@mG#z#s|G~cjy3OYmCY5@JiU$p58R5$+HY#eB z^}|uqqR^d&-%sD07*narSgsz{%@8imNT+Gx_J@4FxnOX__hUK@cARwwe5D+n?xdg){#Z@WFrouC3s>FSl}750WSua zbWcg3%^d*@E8N;e?)xsqLZM9=@fIF!K<`&qvgB*ktJhY1Z65j!s|9W)U^n#N*(Lh3|#$17bfa+sD*PaiE4~ih1(s}Rq#8)@Y zEzIoueMimdOa;aH5I7uOXA>mRj?1hOZ^1Meha6os6NX-ddEXnRlyrNKj5&FBo z$QPD)JflS=iDAi{TG6r^sBFn?Emd`s3C?DSZX>-8)E7gNH8&!L2^wXek4%Nf5zEnh z<>U^#9w@#xi)-3ln*EFV`F4C(x{3+WBD-S3@CE&jC^mG?BbyNAY@VPQc0F0{`l<)s zGqF)%PoM~)2+|!LjJeqj1^*&SsOUyL)9aardfgS+=ms;iom3AhtM0!hhnLmRdJX!dnF#YY@RJmErIiflt21p zeduA#R_mBU{5<~YVfoz3r<4e+gVbO^Le;e9M_jI*TJl@2-I7LjP#yx@e7nC0m-gOj zm~G%OY@qOn5nkfkzKxtThFdA(~oV!e)sM7L@jgWZHKT2V$3CO+$q?4Hq zuvk<9&dkp8 zzc#tgXvsO?al-Y^)z3HbtCA)c3jmP{3GB5A!GcL6*u~)~TPT6S_XJ%5o%P=UF6)}_ zXT6VX5qvZgxE{hwe@jN=NKP_zP>qU@mUY2ULr8)!Czlwr@S3NLI&pCG5T`6lvv7A} zxkfUJ#!SwuUwOH~=qWcZfoP2$={k{T66-E2A@vkOhu|?!#79nN1q&Y#Tf2<_Ll{P4 z;g|$#=z@cW=iCZX3>FF*MaPqfDg+;A7E%f~qsWq3s<%qc*R;Yh3%d;cB`FuH90(OL zGS8e))V!*djSs<+z(=JU&qay}oIH#TdP{+YI7TcVBe9B%#8&v;8&4|YCJip9OF!ir zl&9-Rv72I=X5V`P30oG?ENoDpMqy4T3a`XE#WGAs4o3#18i7Tz$t7Wo zDr%sBW4eiam7&nA2M2`}2^+HggHqTq0yOgvnko%S02wL=nu_A96w{X&R3t<9sTxNH z!7v6fyoTSwG^)MdoXsCL_sdphbYLxekdXa4)zt6-MMY^z9tb4|h=)q55bg%8Ep?Df z>NQI+mQ&nPQH5rmV87NiqNu7;hg=p?ugQ(N9Dp%BH++L7ZMD74;sxM9rLs zEI-6fIt7h5Cndc1!iT48om)JE$T*Zaa}9BM0%xyAr4x7zk5{?hz~xyvcbWBDAfgZ} zY1?}^TCU~gbpd!W3u-vzHACB=pA=Hkth@(7d(jg;fkm}o1lPW63w5Gy4=9SbmSDmD z#zj&v+Uha--GOY_R|D3;-Pfb9->1LT1vTQF8N=9qZ4cq_{n0WI;_*Wle#dRz z+|ku5yq>8~IHnPkb98d?XLLq2yF#a*aVNm@#rADf4{VDn$v10p-6Y$==xUo?wJ^C1 z{qt;j83l*2oPS)m%ficBAhurc$B%ci->>7{1FL|(ewVS15_bRU_0Q|Y>t`^lc;VwkWH|Hq=DVR1?E|`I!5SI6=l;I{cN#h<~$y#V1MF$*dg?7}O+z@`n%xabO&Ya%normtLYNqryayMRFHs{Kz>Uo}VG; zXy2L%!d}M}IR}H)^zYxeG&&ly~;g!b8cA%7K22X)LqDn7e*s}0SBGuA= z1=H%QMCGS*Xs}5yS#MTxK*XpJax90{{yRt zCKXp;e-;9FqG}a@>*WRP(U9%l#4b7BPJqtc)wK5Xjcb39IiuNJkXhQ>Y&HAlu9eIojEy=!@m8(QqXu+=?h09Ig*=;-B0p z@2Wl6JnAI=>YMeW#m)YFTlrhql7fSlAPb+2Dht2({nxVL0-{V6Z`_!WBMH%kE`QJ& z%>ePe!Pqy;p~j*Rtk$ah&Z;n?>qCnP^RBG4M7!Xtdw2)U5~WPKh=Mp<{o6+6v37FM zi;`P2K^7sNG7~TNJ*8x@PFfcIWEON@4H7jafs9{~>Y4nRh?;b_12&qjeB;Q9Vdwkj zaZRq!$Zj`&e&KaXu#eqHsAdkNLFbWn}Aey|x}E1&SVxO>pPHq*Xw_%PkxgV9~= zEL>`?{mE^)vjjXNR9nCC{r)aUPBo42-!lz6`+t{1G83_|u(JQZyuw1n%*Foye_4tC zOUB{mV&nWjo%Mg_BU@K9XCg)kTO(I9F*6efQ!^L=0T>roXEP%^7|)H^7f{Din^g!H zNz_gG@ix0nR;Tf{yh+moQ{&A{GE^Jm%{IFS(;Lj@-J754*~+?e|GJ|KeVc6scJ9Vx zn%;)SyrQVkyjoU%R!~$#AyxfDR#w!&sHn7{s3`FCT-}+W^^HS8XH92#R7px$UY+~^ z%}AbXpgciSW1$m7Q7>Mdz}Oh}z%2BE>A~UY$>9+&LnGsZ?}VZ}QbZxRQ)?r*L<^va zwe@VS!Q_~YbssM6%q-r3!?!uoz^O=_f$5nU>6dn1p|!D*g&`Pp^1@|v*FRvm9-J%+a&x#8hS{@7S6`6 zjK-~gxKp4X0X!g9(1(EGug#BoA&j;FUeLJMOWVt!HUf+`b08I18`Qw!P`r@lZdQCC zOPkLO;`xoq>tVuEn3jfroEfZ7Jsux$i-x8~PjkRi1o2w&J zD&}kRSQP9-(%k$2&d|cx_~394B$EqBb}Mcg`{!5Tv5~`ld-5CO9V8?nqYtl7;29)5 zDj}>&N&=xKBV}PV^uYSU=*aj*LG+J!!}K(e2`s5aU{O?782x3zDWNgyQow$~H?MXF zXiJvBSOWIIBJl|Ql?M%fqV(GQKd*yR?m{^KPckT-@q z1rRGMByQjXVDKaWKm|{TV^MB1+?`;^8(2IR%yEEw+KAng%yE+-PMF~Crq&c zDST%=<&nLVl^`^j{wWy$a>)1zQ2EwK{aF?M=|`9D(A4>ombBIZp zbaVP%1M%uk&};bWFVCj<(bhxewE_H8r?^A-Uj{eSW<3QYEDT8x4Q-ETP7bY4d>R1m z89Uz%V$AJ~Y>G`!Oz&2gK?*I*jo$^k68_O=-#Y|y15%dQ`rBfU zN`{3bB?}=hB~t{Ecn4zMOz`96wtn)Bfk;DY^By8#_d;?J2ma0?Ki9`QH-KV={h)lo zIssvce-p_Am7EfefE%KHgmeJM9{h;s$^uD52}WWMP`yDm0%4VX6R880JQ6-8={+O9 zPcXbd`k7|@ga|azehL$=qyNNo{5yUL6TYc_7bf^t1t8%DDqZ~xto!~Kxcd4p(B>P{ zDS&8?@KGsd|35zq0mvT_vlFxLC3!zd4UJ#qjg4=BAB_U+xF2A_**}Mbw;_RNgs(+x zUyz?NR(Fv8^Q^7k5jT(=ACR9DcHb4rh<(Qd&&L#PKMk*mU!-_TkV@471Be_yvERbW z$AoEq^RKAUU&G7KCgwjyKUCY-3eSiZ-9JhJij6-d-%#d1cN|Tv9L#Rtq-Njkj|Qs~ z0i%SyO+Oucm)}m&(}cSC|E>|q{Y8B(diLm4@~spg_KJFA(v6k3efeGVO$4|{e04&o z`w1je-TGcgM!X3KHGliP4)}NN@{`@$0F2d%f9kLFhh2?}arGa_pRYPLW+zVOV7=UC z)`Kr|t*_drqF-2ZasD2$0olG9tXbJRHVb#{e^5zOLEOyVSKY>W_d^F64%6(Ms&tCT zi#6&2<=VgZj=7G~Ep9Nsu+k>CG1kJMr~B?cP4=_(L9l$i*^BsZG$0+~fM{bCQU)pCxMJ& z(R|P!4MV>8e8|czS^$;V^)|LJV|SGDO>4mKPn&B{@lH_LEiCxC6ZG#m@3q(Z~ zWnI`CJP|`K2cVIHjCo?crT-)_kcL(@5e&gu`o1Q+SUkp<2Zs$t&nbZ~0>+@LNwK%s&R1E2w6748MtgfBJq5M`O=^pzWdb2X>SBEND z?zJnHXmoGE_Xt&=q4xm7suo4UHnBnoPn}GkW^Q_$Tr>dysKMUbY|bH`9=dDxJ=~7S z9m8c+D}F8`Sc;YX_m&*Ogk5+Q*!G!WU*%;1PkP+C(U~^0G`?%y#p560utT@vCc((Z zqlif@NMX?-zy&3}mLPd$43=aRTc3|p*4Funs(w$LGz9oA03{&qj0Vz@8(aHJ+VaoY z2EFDrTGem3AkFRZkX7{~o$o6jo=xqZC6SWs*#3Xa?8jF&Mbi6w3okL#_e} zF+Cbi12Q9V=&R8RtLpUR;}daHg)hDQ#vyerA)D?btyoLM<5eBa-sP&KPkx8 z1ft|OPD?31J4h_C3|qCiy%)21@FKTVpfOMAJ|8()RqREPVp-pWkyddc0_tW*ZDUJf z+ZqC|eX>_Xzd}_}{*>_O_?f(CnjZs;XMpjAS)#0?Xf@-m*0Z{|Au>0MPNiEnN6UHQ z@2SubSVbyEme#{K77Vg4BRP>jPRbJVW)N+dS5KZXA`czz?%AQN&=C?9RXrgS%4^9V zy7IzWwjZdH$Xys%vc&17|=;f+bb1!eNB zQtdZfRg;+7er9#VKypo`B7`vsaUF8fO$`zr+^sYGXjegS6Nj1a#Uz+p{`cVW01XyA zosV$fuUK=jouEURF!>%ZS^&>YXyjqa*4!1-NgHS5erw*$9e%6vv=tqK__q$sG-w!$ zU;Edp-;`o>1DaQ~^{jR(MXH!Z?UMx*z9fjC!!y`hv4neac0HS2n$#5-rHrJn8nOwr zu@W-7E4}k-d3wtoGo`3q|7L{nO?)#1tJGFj*Y%9_;GY$}maueR4nz#;V-O?AxH6Lw zE5lQu^edk(pWZsSyxD8Hc`S0KlScJ}JcAk+T3El>5bRSq)4gY#cL(tRGNCv0d(^ZE zdy|zYV$BWpUn!o20SIFu2FTSf{)Lt^&}V(EC|nH_mRH(*!VtoeF7?q|9JbD9C?m9= z0&leLKtdVLbqj~7`|C-!O|-V5d#k}j(p>Nbo8uOydW#+c`Uu|604%M35jDKB_;$zwiI;iGyz*jiA%9@&V;DmgN3$?$f ze9kMC@QiZW&nt?po5&zfXa-@N2mjIO#a>bjhnKO5kVb~ZbvU$|1>UCpdYVyvqT5Cm zjHjXqLB$MOwk0LDX>Gg3@TD%Kmg%yw6CLOX*iNt+>D{eBz|G*(Ay{3!6EO|$cKi@# zJjXXos*f|2TO)Jer<;%XQ|-QYD1e|1|A@;Gr8~9Q|K9A+ zgnpX!5U7$jYxC*8?T|=wD4a+}+j-1R=)JU>c>l-pv42e`(2*;ds%}L&7B)Ell>Eo+ za?gRzZk763!4OeK8-&#f9Wp~QtN>7hHA@Q>=IxSIN2+n#2MeSnPntM?wSe)`Mn9@U zXrm5*_4eTek5@k6g`WEk>Nf@t<6zGzpe^&SL^sdF1*ygUWk0E{P40S=3FH^zLAlbg z3O5<1@8NCo3hRWtYfBqzI2Qu9Xkgn4$$kS;q`$`STfX*W+WXc)Qv>fQZ%pZW1pVo} zUUG$L>Unvr_={zd1)0ZKMiXh4OzP^ zuG(!y7F5EFZd0T;yei>H9KwT_VjYp-3H zOqyH!4X9`*C|r)td~IJ$R6}0h=yYhB0!eh}u4A9rXmM%fCDji}mRt66TH6^St!DkV z`fQDFy?y>@uAhE%gVi<7OktQiC-mk9kjv&OMbYlVC`^HN-Id~f) z)&*#Ps>UJv99@PSPB`6VJ-_hieu>gAk<=}77JBG5>Bp9HJ2(M-Wryc=hV-xXAf*G~ z5Q!;atU18{nAlK(qTZ9OZUKU$C-2GxhW|2sAZGB_6b^?$nau&$=J9zsC5ei+5US0)I)ed*EjgZ@Xd_86J zE0_4LXEpH{c-1Kvt^tME23T@AP2{SNKv0*P{VVz?%kciqO zX1zsw!J`6drjCY*7C3JqDaS7#D_?;!Fu3YlAE7|@AROp8sIt(ys%G-NIGoTBmu}Jn zokUz`T8V~)1mIqOyS@rz>R}(lkb9{jpSG3HV%ROqhJ9MepiA}es4`lk#T3oQVdMyt z5$Ia+{E>hBt$s`Rg{wxT%AvgVN)*msIW9kSnlI(R#ROeZ#YFeWg2F|(&6wU|16N^4(hpDH!{W?*mQe4 z1fqr@Pj74U$)Q!5VLIzccix*F;6jep8|wy2;Fq__^yS^|k!kgB?YKRW zkwaK5s(lHu?&|bPc>?l~sL@0Flu)8lOP1y))CPBG2>>Syece-3$7bqRb+$N)OK@8pQjE&m>~kl_3FUEul)Jha?;kPmj5% zx0zX0m2@ZdyH*T7qkxYqJSeYCQFEO!>=(u2Z0`7$nEj)~li9>89Ns&ezkBuSg)+`$ zB7kb}SDhqA%npY0;R%0JbL^XNl|&X~xefji-fqiPdD?_{zL@G4RDj6~!Ua<8m!pUa zYCyj~RlP3Xz9qv_ZbIlseEBqZh@f5x&h;K}QXfcOJUZ{A5 zbcX%7!+SaqEbHoWmOCY{uwB8F+|qhrx4I@L?Rr&hUQ1><-b!{7YuIZ-Qs; z{b$0NO0K4S2x^;KhXG~c1*Ock=Gsc)NeE9YHvHU(Z)+tjVbSzjw6i9nz6Lq95Y`ns zNcTh%3KWJ{KpW5a6>%WNU7&>FCL!J+VUeKwTgPODaUoN%=O9{a#>WXWGgdm8oeqkP zoh0;K*vSpCZ?Dh8V`g)Hk$(VrB?O(p*3@xfoCBnLP1WX_Tv@I#W7A;>RuK7{;)jLp zjnA0f?cQzCXP02V-Z#aa6j+Mgs@no?q;7Jj3lVk1A#-Wlh}S4(pKssO%05!n8Lf8C zhvftKNp`@lY0hBgC$xWp^j>eG2YxMoS5c7diLwJ6olfAj3=e3~$ipvR0ZVHPZp$81 zPIcBUGhBS|3G8y7(M)SEYScv~7=1CVrt>+aW{$k8vAUCnRKT({l(q{)xS{L8V6paK zrUyrXLQ5}c2q*XC$yhO|3wMvlcxW=eotoG8n_sVX=}>Fq8aFxnKcWK#!hsx!l;IVP za~YGt?xz`M=tK|ZC|f{zsKPE24fS84^M5M&MW)G}YcRa$p1MbN#ShsKjS0M|oFv(# zMnNaN^Y*N?D4xd16{p2Xb5r6Oa~P3?*4Q`|iyQLLhT1_v;yR|3VE1+Q3~~;3LnA3v zKaMHIE`wWmJ41*=d=b$4zUx!;$EIFmIAIRjJ;~CTbY_ zmZ#Erozt&xmisMt0fF{fV}IJgSLWLzPMIQSatGgPURl95zNq$;8+ie?0)uW$Q&{>K z<+`{_w=Z9nj#r-0wg6X(=9LpIj;kh9umExeprd0|tZt%*$FHK*Wo!rvL(*0HiiR1# z8)R?YrKpE5FdQ(T+=_5KO67ne3=<^0JkTtF{mgGRGnGygYW{@m&#k{~!9Z6MzamTP z527Gz*$+gn8ansEJw>`jd&11wch&i|6gD-6)`XC8&*R)8N{@r{1Q#BV0>Y9|3S13j|DA; zt{kQSQ>UIz^iM2A$vWL+a3r6NSOZ%$8nQ&+kRW}UVF6)pl~b&ewJv_gbkgDnnB8w6 zBv*4TJ3_4QEYiU^$VV8qYfWn8hP714Ho?cuONZsQg>l;CP$NKM;Gf<2<4PmX&=Qqg zQNEE8iwLQo6Rg>CDT2>}V$b4`L}tmE&n9nkuWKvdIO$(LjTb4|qJi={Q;M_*qYJ}0 z%hDyt*CZ~^WlP`V#Ha}rlb0ljl?-E>UqO72QX)SPJ_J?sE z*@!D}bNF@MU;Ad!KfSIyg1q%*&8^fxQJ$?oEybtdm5-cbH}kg)5u$fjsf(kmoX^S6 z2o{&|0xe_V7I*2`zMXmx9G2VZGw2jb0?*2s#d}ESqK?xIqoWuplP}p>lfY!MQp-~; zTb&ghmKz>jP*9b1ZI`Z?So)~ls4=9hmsGEmdYbaDXG7kY!Kf3ZW|X@nL@Okop*|>i<6pK3+sif-_iUc9}6thM7%{v$bZM%gAk^cHx#s#gM9<9vu`Bn@B2o5>_0w~ew13ps3?n5R z8$W~A@u3AG4(r(KL;eBz>^-R((7z4!U2R7~JxX)c<<+*paI*vV3NLd7A5w#*SHWDv z`^7xh>Wb!^`_X2xZJrQTYS5dYIz*K~(vZ&s#coi^DZrF^(WO&I^xLl07fTGw+MO;5 zDePaIe|kEsoG*KEOY~oDa}_jte67ah#3qoomoIeuhGJ49T3&TU2neRC#u-GZPVN8&{JSi6 z2$)*iCk`U?rctB;Je{EmBRCPOboac*G2icWo_5vg<*QJopl+>PTH>u%y6%>#Cu`C4H#mOc=sXJ+Nf~L3 zPH&dK<8P>-3#;lNIWP$9ECNDwKkR=EF_7UQq;z{&od)`YRmB9XmUBy%6k*9x{VaJ| z#mhep$r5TCv@_&TQ`HN}r4T!vW80N0j!(7DD}`q%s`LrtgedFG9{`KK-=li;Uo z?DKl;c6?A;Xw}j**-fryl5>r)qj!y7d+t`=il-EI%qH1{g$rfd!*Ldmb0T&I@8@11 zn)z^d<5WYe>C+=aW}=X8ZWU1Vd52geq^D>Q-)<4w##C*j{+tm|YruQB8<#*>m$4Kt zAknTW59ZShq~&~Dfs|#OulBro9=?^#6TkGiDix)-M{;?6FbiCrN|iee9%!Wa>od`} zmgM}SprD{%=~hEF@7xtnc(}$6NY{AoRTR1>D?^I)8ic!Gs@Yw{fHJXdGWv5lP{zMd z#$@cE^YOt?;1rLa!st|9%)}B(we~uUl{6?&7qYx zik~dvp9jJp@i^ z+wy40p^beBH!BZ>W_kgWkjznHSqNyWaHM;IQ8K6eN_NJh!A~!;tIgw}4?jcK zlpg$8rtb+PMcs;x)XsSKt`h|#TY>)=!DK*VhV1I-BePTYdd-oeoFF*imT0+K zoRwhr-1%x=JMkt{(vS7jV{SBHkgYaU^tx?+n_}Gf%>Q-}1^>m()>M3s(5SvnbQiQ) z3OEh^P?uA4g!+5Wluxay{9Y9=I;YZ>Wf?YR zZN99I{`Vc+p@HN+V-6&cp2h5%pifSh3zXs6t#b!zCiwD1jqApAh&d4oVm9?ekMo*xN5Hwr=k0O@Dw^G{%D< z91b3~TkPeSsG66A6!8ei^;?+fO{j-flOisR2MgkU07>>FveY^i14TxfIWCE_DDBsT z{l5n|Uy7!SbA`-MIV|0Gj-p8W#w|*{t>LuF;yUfiph@QzIU8JQJWNS_r)Kwm4hOh=tU06X3Cj1UWiLhP(q|&RvMEJFv{+Mv&62jop5Ty>9cWT;U&8>sr25XQV;Kw{KAm43wq z?1XWs_fiG2R~orXD_f5oDqC7Oq>y6bggs$IyVu^TdK(ahHObtVdDV?r(%|mDR&Xs? zepxz1$bAxIqLptjScs8jGb%8ZolmeR#5>yy0H)j>y1Hs%y1NwGyyMwrsH5<7wK|GI ztK%3v_ip)-A2PZOWZpBA7@<=-pfx(DPskZ|1(}O{U_>`}3;8gFn@2rL$plTl4iMe5 z!H`Xz-9{0RHQ|fyT0(6xcPzx?G3nl`@`V5k2B)`dLRY8tw>|lGLC$kqbxXIDgz6N2sG=_n#I`E@V~+n!raY{ zr@CY@ZFlCKP^pSF+M@v`>ix6V<}tOFV>UAcNLJsqM^XCb&@v)Ddd`wnz&&WBdWgnH z5l6|B#e6i{!^4?z%`F%$N*X3`waXiLtqLi^krBie5vLzfi(`*Q7n)Nr{`VTjp zL4ENS`IBbIjenC8|M^_UmlRfFcR>#Om3DJ`Y&zN`r1S{OaHN0(3|iJo_y{X8I(=px zp@Fe1S<<^!QpjB{5Fu$<}igixmCzO&cit3epfRFLJ-$ip%@Y&_Kg0!r;CJi7<4!cta}l1ryx0(bd+D_l9te4!3>;o z1~C+^QkWI~?*dCDy|!Y$spy2V)8o(ijpy*Vw}yF->VN$;O>!}-ETiy*w+_-@&raz& zuiku_zqyV+n4gzRD@klZ>V*LZK-ykXIdT@VJI(0?#~8*1OB!SA)Ap|=w>95a&@s(C z2udlH{2@c8cL*2j>~+@#e=AQ|gd3#N`uT%vPej<2<2ch*;0WTIyNApN^J8IBi@lEt zbbCk zRxcKtp+GqpzA3qi86x z$3rTVv+P966mrI&b zq!}wD1@~{pciFDQwz+M$@fmoNq9M7Wox1KoAb0-sx-@e&k&BmO!?^>dKJ_|g(zv)g z(`fU;8x^_^WyWeOzTXDg5+m2r4RV-$rQk5p%w#3m&wZBT6Fo{dd{nnXN>YBi+YHNC z-^R>)=&)P;7X9Blvx$6b%>g^?t*IE&RN?|_Y+^R+LiOX?F28#FE)7lZwfvj6xZ-%b zHLUNS`2}P@vS&G}*LAro#8w^H?vp*j#9=q4l(+p({$%V5_=-jd8cQ71ajHWKJ~cWN zG*)`ftOG%nT@dm7S)HGGw7Trmx;gW2do_b+EXlgYce7(#=xz~Sfwy7r4ePl-@MZTQ z%p(9qX+iuxT{W~oY%D7-Md&RHr4rSRj(^ivSVsF;KXl+ zYb$WXLfgpCIiO$aNOx3LWa2t`Rn21kzPU!&3dChP#HsbhlWNzljOqy5EyY}xV{&O; zhnA(e9A7sb3XUMQC8z&8VO>!Zw>#8i|ip*PS=8rFadryo) zTrb~LD7GOa`!oVx@PoOv6V%g;kbn=hYbsl-(Qh1IHEr84y)7p_< z!@lFV17)4km!Q}SZE2U)n3MsL8v@6g3=fyUmV>uo@$7Na@_kqf?G44`J-u!- zy+G%a2g}B;H3gXRjLeoi0b{xJa*bqQO;BFV^Cp>9CC&4}%rmJLPqmhC<+TwPI)86PO6G z#GmmuEZr^+HcLU0qWH0wv%i2p1&bqdxa5mQZo19fmq8{o0c>oX0$Z|qosrXX8uhWvIl9#B~ zkL~vn<7+Ay5cgn`FAhqZXs1+aPp6A%vcY%FG%EN*7!pdF<#iuK-WJ!ki?_@fDJt?1 zrn11|H!C@xHa9VRP7+(4KYIPGTecxK<0{17k5KgO+o)L_+bF-)!ic3<=np?%T3aW+ zWW(OD`i%T#JV~M@psdHP!a09$+b#Xw8pN*Bl@8XtUhy#0wLb2?8{!|_oAbV=-Hb@* z6N;L!lBvHjJsBnsrlGRC1GB|W4pM}jkv602%DFBzR{6pVXo|1seY_4P$h|s2!3=+P zYaMbgr-A?GVPD8~oH08}z0f_efcv|XlZtvn>i4}`r*>8Z_$Uv9zhz`GD?}*!ULV=N zQ9f}xO6ftcKl9Gh{&I7kZd8Z-P@Ln_>A3bQhl}RM=OWq`3WBtFPN}%m)S5iX8=|pr z+IAGnBM_%#ol4Az*?|nKAfj@0Z$X`7XGdT6X-&rQMu6fsg0vWF(V%i&GB>T6*9i89 zxwyzYktNmz++<##CEg-0@Dxa3b@Nykhx6dpvX~8X*&OsUmoTZeR3yO$ohh z;C%8oP>?#g-9PbrPO%TmI>hC}d=M~hNoF%x*lSw08Y7KB4sa7FGS{<|-F%p!Te_U# z8m{XxP&Gh>tAXIf(Ugd_KpP$%&XB#qLJ8ISuqv|-wv14v3{LU*xn!#a;1{zxzz21z zxQ9-AlP>YJx3_Uu-umTB{BcMHn(vbDB8xrZS`pBAjF%KB50^QT)FSi1^R8Ik1hN0M z#nte@0WU!f&Gl?F8GD^9Ra-gu5Sn#;aa~h9TL14|ukwb<7`L~g--ib${eYDS;)eOz z^tV;1b_>Hxi8+*}r>XUYcv~4ixm3Wc+$;XN>o`{O3^#6af+g;~woP(ZBQn}ae$P(# zh9|d!%>+h*(5ITtLedDug4`wxux~0L7%x2v@SkR zg6j~TbZO1Ia}c+o{#9Vqw2Y^OSV2?`B^f2 z;~%b|ZsF$rTEK()M=my^kr`2u$o9Y5-aty5_ep(X?>)XgsHBOdlH2{r7)Uj6p54IY z5!TrBtmg$}TBe|dBC=fT$ud2RmRHAQ1bO)$6p#*%m7mjp0gp$WCm5if4j^2grK;{k zR@JeF@3L_d5Z|YWxoN%z#;Vc26(CnbLt3njwuW8!t2B|a6d$S{-R$taA?D1t?%^O!o zLv3)}~lRg~LT*ym+{c7b604AdAV0 zB6u$hoxotFG`*ZuDQBBf#M}cp6j-i)*b&)4FfZ7h7WhtR>|Vh)=y-I;o}fmm%Z^^L ztV3bl%+hLc7-R(Gf{W-8Td`_F?D{5i#ho%vH#??ecTh-ygCibep(R%Tn$lqCLzC!| zRXffc70P3AUifvZ{B^vdw}S4TWFfK+FJ1{@z>BgAmZfCdk0B(C??+ekj{}T3B{_*j zAGh%|#gJ$ge762hE}Zq<26Gg=z+9$%OLxjsNfnrP5r#Bh57uN~yY?fNuYJo}Pf?U8 zw%SVvgBr(#ta2<2w!(U(p4Mi6WcCMqqrXJ6XH3kz0?jBWt$@>FjInZH_lcoKt=rC} zdiSX92u}ocL4OPuDTlq%&;G-(^~DLD0O^03obx@OX<5eA${ML!4Z?>3kJ?> z%HLULub0%NjC&P3$3uD`e#mRF)Zu3-`mc%IaIbd-2j_sh`#Q@!y%HhOOM!11|FRfzhLq|ZuMS+@@j9qS2OdKC zD4#V1?dc&FU+_K~rNa&l1;JV6@6Rxc+4)27j+r=ZLmK7amwE_&=v%|H)bzOax8(GO z3BLfN5+Q^Rd%VJV8>S4ZZ*^!^oL3^rMUS;(XmrftSl~14%DniI&~t!G-+d;^A!-_( zmZr^d4BNZv<)ly9Ex1nG z?4$t&|9HMD6v|<~<7PO~-#oWq;v$soGC8zA-t(1}KVm&4#ZGUpCRrMoTaI<*No#UI z@G4FpOyHD`B@x@xr2-Xfv!Gy!xeSSVWlpxZJdui+WYQPM2}FPnZdJBTO+f?Tw!+{%4?*} zR+m)Xe}uHqZZjYoUSpBfgM2e4OVw;vMBSZk#I}Z2yuA`twX83oDQ2z-I31+$H{o=> zoik5=i_w;_nI>x1OhB2d6{2YBDH^Xjg{nupMm1l2EHk6Fns*pvG7Yza~P7; zS4zLUaUgLMXcwxptmvK`I9j%3rZ%J3m`|i@I;g%wVWFXEElr$4-v*sgC&0GvKi$1F z!s|?K-V7U|1E3l=MM_rjJVuTtBo*AD0WTj_C@n-MU@j}7BC0>Ohk#sy5r@wt$ygF2 z7gJ7tq3vvI%Vf}$@<%#cD$$sTh*%rJiaj(Ag>9{w2&H0sRDcA-<8<&}f}Z+5n*uav z4~J&#Rp)7ox|(dgJgps?FD&(IkL6fOnzKmf&+j(CiQqwl$B>9B zAx_$Tt7iboT_Z3E9(;}-@Qx8x9k~YkOj<=LHGf6osHn}XHkuLLsFM00jGa@jC_r$4 zk8RtwjeBg{wr$(CZQHhO^B&viZJH)+(uY3mY&QD`W@l%?EyNf!{cTNlm?R@2Aif^CV#c0B+DOLHuBnK#I+f-vO@-~ zL<1L6_s-qamv1oYBIhrrR+QR_uby)+gh1nAIQznq6lpycaWFT49YVR(wUfXDDdB= z7qnsYcxAg*Ey8=h1U+FIk^XCCgz2%v>pfZlbp68ZRG_x>lykt4dzUv%`J%ltNx~)Ov#nf<+ED0~aHQ);_u5`9(ye%{z~?HBnS}PTyP&$Ml1j5b7>V z8JynaWfJq_e&Ti==hp7WE(R1~UEfaipO?>GC|)yANf+*I2Z=s8EeSwNvCKO9O#`#M z`cyKE98VXKi1#m&&#|>bPpu%L)@=;NxpUO99~wkV#DYtYXfbmIr@O=!z<70YL(W=wvEQd?~Td_PlK`qorJ~^9dFT8BtQSvIi zHV>MljitB-j>HtmXcTlao`#T+hH&gvJu2ftS{XF@5;JbHE`_Wvc@=c0u03Tk{I1<| z{NMtoo{viiy6b>}ArvR%#ai(0EE1#o?5I8T!DcW69WkUD-4brZ(YKg^>${?Zjzn!~ z#v+VW9B(ml-(Tl))ur;&R;TN5vPM2qi&`+G&#Ir}x6YC*$e;WRq*`m-?r7_h)1;ZP zOUibnt!(LGKs8Nm_!sjqXUv9y`BNKTUW~~gjMSEbMr-=Z(uz$`cNbh3 z5m~Nfg9d|}sdT+sona4yZhq*iWQcs>198bQ!SEvG@j8iBATm6759Tf_bsx_D`AgWD z?gDcG_uUacmG~RRknSNLN?jRnAF0iXrXYx*Paqw@s6E+`2PH7hr~Q9`k;w;3Lyz*za@X2V(;dvCA=N2*M*2TE&vdKadng%#3$g+vpjjOw+Y0Mm4-q{EL3 zLTR`>GK-8BCHbMmPv2~aUfWp)yKnc;zpqJ3NQ|=IT`se|28y~!{9yKxt559t_U)N| z4L<#UdvKK3*{NZPvlBvjzTI!isXOkC^?;U>YwcY*3Sn>5rzCy<2hFAEr3C+vvSg zZhOp4BJMWPa?e*I{cW&gnR3)`lqS;9i<;Gm#&|Kit2>qmqQ4dEsd&3yIfvPm&d}>9 zdoUfWtsEecFwVx2Ggcp!M_)m>O!9(qiR~UU0T$JBM+j;MeVBWBZAA!<-*7T%%Izl@yVliTv=N#SDUQ z?&Y8wDA;C;(J*1!iOl;d$W>|o*<6iGKFg^8Ccf=*igd2G>LNTXIwE9TzQbcmAFd5} zZFp|4w_(%~y02#5?lN5|eF$}PeLGn~hH;59!a4<=d6Yc@)Yam00_1ObJpjsciuDqo z2v2l*;&BpWgorr$mT2T=cKW46xkZX`L)Xn^!IkX)!99ov#72XHq!u%|z~=H;o7(M{ zS+@iyoNsC2>Aj$MyBPhV?v&;|NZ`uo?6>$XC-cgB>SWqf2%K-n&}LSiS5^a;z$|o) z4mXE~MA}$>XZTRau|hf!Pi-%HtpUu7tWl|*!C1zM{80<0^wS6r(Mc;|(Fyy3_Lv~* z$hLS#p&X4JQhuJUEL$^5oCAZ!BTsOFLws_74wMgJH-oqEB5e-wI*b&iNEF<9XO{DQ?)=*^9 z+|Iq1^)^COfa#aGah+y~I;bXapPU}Nx4_iajb$R90W76-cTAgXNosSb%6@E4g3Zeb zq9`*=FZnr^p~RJ(a_Qh^`(*hd3!Jyf7AL3HFzE#15-H0CM=c4tcCz{9aTzQ!9G+Y- z;VB-@dav@xWzUtprTnX=2gm2tQU^`@lZtg)x8ZqryVJAJk6yFFs!Y5_Kr?Kja5kJM zJ^b}$$I+)JZ1{qmbdeEc7XshFW@P2Mac7^%EodXNthk-4_;J7AjsCMmIG9X$QabR2K`Tq7xKWUNqHqj3{Iox(ZuICY%57m4IX=4E8dHXn+m`-kcD|$ z5fS5U1)e>8Lmx!sDjt3g$ zEfjv7%vfC1hqXbG?^zK4bP+$+eCR%5Ej!8*BGawW8IklZNp?2=Q(bTLjszQfu#Llh zXj;q}Q!_qi%Xe9+M2IV^LaI?8=pwEp<@lWUwWdTTX%CLd?>%c6Cu=22_BBFY} zRekVmReAoHcwSI{g!o`j-qS`ES6$uUIFw|+6(mn+0}2PZsbt5#86$y1gT>F!%fn|O zCG+Pg#n96z|0rRwPI3+95mF4ILLgI)N<#^`$Va3s=NdLl(hcF8(1baK|7Cv7TC#T` zjCmdu47DfpW>&=q5WZ!5_lg_otUV0ifk9EKzl$JZPGNf<0>7XhOyn$xssj&f%~JnO zz^IjA(V=APrL)=Wj~bEMMf&wq zl%MXaa60Av_@tH>kY$VAUr*Q176g4{#Wd+9#WzuE3m&QhP)<`|THns;q<&D7t_ay_ zrE6?l!f+K{1=6K9@&{0Q&z-+>$DJ4mUi<8M>_S71aQaM9V~oDBH?S<<4Yrp4J!Y*; z0|focDg9P&P@=dO>v7Q<@}q=OX_<@ku|65nR9vEp*Q!HZN$%Yle{YrG&7fFv4#gh_ z5%KG-)$Qvz++InL4QuV#1hND-jZl#h?N-9}5Sp~&Mv$?$9!veI%dW6&&y$5&#)46Q5vDXyf{#_#x5E?~QBv8 zz#^>!J=^05I4_k*Zbyju5Kh%u2T3dP3f+QfA*65iwc~eI$Fk_x205h{oJ`#AT^Vfn zusLNnnul0(+uxA;7*a1km#AIcwYI!Bg1 zDaFuxLY~}OsVx1MaXNsdRT}i$tSCH7g(nO8cj&U#-hsL^TE?ol^7Av39j_?@DJ6TW zz8JZ?7lLkQx1kVb%P@vD`A7_ND*pf#h_7(y>QCyt+3BZpFYexyL)_-=LG9k z4h|DymUvMo4{n;e6%2HpgSd;7Ui$I;;d@Rj;!Wrlp?1r@bYzg_+@*!{4qc}WG`i4= z?I9CvOww6#2R97^;?m#dBAS*^6gknq9kKs(Miy{o@s6=bV-9S&{4=}+o0fezsbFTK zg&qI+qjS@o4<VPS}eEb8Sd>Y*kAfl?@!R$35_K{qptK+FC({eF1Sw% zHJ-f8s;F&tdd{;RxxN%kKJZ@>lnZSYn+bKO9iODx`_ZW)9M?M&PwZ z1MmiZ6cQ+M$xues96AYbWFYZjARn2LC14t)q&OZ2osxfjDCL~^Y!@*tM2_@7G^q1xKS~Eg{`fV9R%#xE z2^mVoEaZ{iZHT*1rd{DV{Z0fWyhWgb3m#&`b`H%f>9b)ev=Zpgy957rzWbX76vHpm zq6SJ2V-?q+)q(i-}2w%sl>Z-Rpb&%w4)<)qBw39OjwrNj2(2#M>Ky-lLY z)*7(7eG(&fFlW{x`6y@>K3O0_i#aBvkaWH1W|e3r$+t-Z{4QkCVJFP8=VSGLO5OYB zOK@k=cj5cbze=A~`<5$`#U{s=@K)5&iA$EAF}2fUee(uino-(xN03$TB&SCi3X15b zvl>~?u;o$6T5*P*jxV^u4q$dpK8Rr?_OD9lNJh(*;_2>d=~kD#zk>kP1s?MZbx)Kp z7?HHQByFbj7_Yz#an!c5=9Q!j?^Ts7NG)Jico{)!WppnrpvB{dZ&srrOAt;{PhAW7 zlE(!b2!i*n&MQeYnAa>Wm$l}}6K~WhO2HsXgU3dHN4AE&UpH@*p^S-ol_xSB|3p)p zk<2d{p zwc%?7TSyW*hoI;*b2;L{tUVn=oJExk{DPt9=-;I$Aq2#29dkBFHjs+3Rnq{adeiaT z4bg)fi|Arb_vy@94^wU%;8p7-7Y3avt$$Y;?}5lLlbQFh*R`&AXHiV5D^ZcHb8cR* zd+t-^sT>$&Kq;8zvE-CR-{U=!-(~0J6*X z2~@|p0e{I>2XqRR#wR)N?z&!(^}Q#JGEj$Hf@ws}CgtwNPlu>;Tqba99$kyQ*F%9m zT+^2r+q;#@(0qs=?{A(TMrRc#nZ5!a*Vju$i1lQ3=Y)%e7-L?s1UB%H<3(HRwjHrx zD}Amn4wB{F9YWRlU^}3Q*X)zB?ur`x0fYY7jN7k?r1!%cy+Ep{JA8cX6I6nzKq!X= zht^pLw~0EfcFA8+59MODDZ2if75J%lZ7o%Et^hB3C&&TgOywF6oH@6Lq-n0NO$nt! z(=OS%dF*3mD7sP;<_^{gk#3E#5cCc+gOoGm*ThEeS-42*2zrUllnlygTtN`~*Mtj3 z#nNDgZ!uN3hJm7MSI5x{iQMvTmEV{_+r?_4(*eg0E|89>xo8sG@6{)s#P0`t#X}G;Xx2P8&dNO&7M+P7O2H`FpuVK1I8~+4^FrJ{ArZp$t19CNLo?BS zUE5zd-y-`4z2m3!jXDDgXMzubIGeudk&zLTw6H97ZwFew<0^l^Nc|Gy;Qmjq5QJ@y z#z95DpyZrcx;R*cg%JDQcwKJVa(HOMmu>Rm5uOCzjrFRX&WW3=EX@@$Dzn9snWoCm z^2Wv;^`25nlT_;2FXR_A@Dn21(I7A=yB)-K(;uoHp&AG)=Q31Wr<)ovV*H(B1VD5pZ?B6YLdW(mDl-&ZZVK;1ksw)cwX^9dwc zv6|`}Q1EY^;+jTeLVz}f8R~d(B!dKMinKj^By02?w4wz5Y_L3P@vi0@{@yHz9T{u`jP8i~qpJ=w4~m>85}9JC1BN#-xac+AyTBZJK;h}hq1-t^&srBHfTM0-2oD< z;S62Q9wB5uub^xNSc>kLMwPd7#*Pjw5$8DgF~mp0P($QmOzydrn4w~i~W2XW44)*10~KpQ*(rH47kQtLDKaGp{TI3fPk+woB04U7bGUi>jv z#bLlQjoA0@Kk6&0UzJ<_HCs)_tAx}FvK@x4GUT7)qTts+5YR4Se|t}yD0eIfwH>sV z>K2}riHv{;Eeh2mGCA?M55}aE^s(wugx{?sPEhhexs2t zQz57dy7j>xF~JUS%1>xi9yPkRT)4hO@4rt@+lRCDB=7}`U?q8l6S`T;H#$S&^cz=D zet2rW)Emu4>0|)%>%(pB;6dYmv6>X?f57GEI4T2T z(2R?N0O8*c6*BB1_2K+}VKzb)sNYs*m$-;>w?yeFn5?U&U%FMjqdEq)tjMp^MZaSj_7CaS#e=*IUUIUEoBpUd^rOWiVjM+jQ!F!OOnbyo%mHHBCyc$F8{$E)IE3Vj}3FNhK$ zQ8nglY}uY6{|(+*Q0lQlH4q%9_>eP%b5{(mBaX|57hpFB7HJTm$|4*Xz#Gx=uMnl@^9&>nTX|Inq#hxU$@J z6X%zTL;1sqYT>Q%7KzuT$xd3EmcjJY>YWJ~0M9~$9#!lWqKNqynNJv)su5<+^O^hc znhF*8`NdcP0w~%2zDrdj1;KniOZgS+51EH(}P75^N@)p|!_NDRi5#m%l!i zm)gwl#;^uY`WJXjMh?w|E};o}8)U8IiltwErwRKJz(efmlAF^~6LsdWaGm=Mt4kse zsxVxwin>&8x>i_5hL}sTo`KN8$4fZt%L;G{%mp5Q;NHI!V=HlO!f}IAg%B1%)@Nf3 zl|lM~R(g_*;^8FuQ7tVJ@14W2#b+I$H06im09q3Bh@SyGqpR`?>p{At(Zb{TcRd;8 z8X@WoYy(mqqy_~zW>jRGb9tybGNq4yViaa=gYtsU} zDt}p;lMSurV!d-~*ppdV@{ebu+!a~hX=4i00t;Apb(MmajP#JW+~CZhSTuFAZ^sQs zO6SoTL?+Em<)zTWwRoAZi_seC@>O1MKy>Me((BDdqg+eBQtMrX3NK13YPM+3MtIbV%-6X^>HB*SP=7*pMUn;OmkO!_mJYRVyA%r; zy*a;LM_s9^4mr25+&7Ux4-=6A9olG0uc7?)F3e?bdKb;vGhE8ffJ8;}!&j&H&Kee| z>)Q#IwP~&oZ9Y?-cZJ2h7r$OLFIrbYYMWWk$*8zWA3-mAT@RUMI2&T{WK##M|J49~ zV~cf=|8X<)wESkbx>|N?Lc+$OVFyctdNS0lSIwG~m&sP05P|i#EZdTaKC-A0Mulg` zULACa_{iS1r~j%Qcto;$)8XmAaB1&&fFTy|QhDovhHh}^w2f+WE)-5o3dE8A-pE~Y zr80swsI~XEthhnuGjfZc*S7&r*qGuGj{Yig?@qt?}sJVIh5#b;n<;4b4w3w z)U2IUB=c2$OK|yV_RkE@(QAxC-cVqro*WE42*^2%MHm#%H=p19F#*@7--b7bbKqMm ztaoZ9sR*Djw3IA{fO*j-y3+dy$$dwRmbCyw0UdN+&Z~J^RO7Kk z`NHBob_qu^`*K;OWAs(OkPw~Q>JK~7^%eZk89KVZ$%hm9!|D~CwKXAe63xDR<(b97 zb?;!LPu$X!=9nVZ8j#m=WE$Xip~r$}0R|(5Z*(q+XdT+YzBD`@8|#R@Y31CSBDN;3 zR72X?4@;DO5OwDI19uefd$s;iPwt4c=NKAF|}xhs_*@Frg;iMA8!Wg6cxk6=EAn?dHTi28*Y4q2%d^`y(sR=%pj~X;A@P z!>a|&sCa^_RN;R*kJTzfaf|BpHrE6T3qWR&hjV>d$Qwk-nJ-IxD-5Wk_hy!xA!uLq zegYrITx?k{(>O&<&&@v6hJ(}udY1;RC&W4{LN#0xi2Bpq7}sGj2P_x7C@n1B+&U(fa4pQ;WPL9HEnD|d+ z%Z%Ui5&wEU#;@f{{sD7tfS~@TF{QUc8}I$CDWk7+sa}!mkv=AOOR!V%om9jIQM7gmssGR?+0~3LHL9>f4 z!-xpqeZUw+^IKW=eU2pUwVhWdBoz(_ZGCHB8f%(6W z|BL^|$jHI`|Kz{LG=nN*ucMX2ibSEWAyv0`aVPKJAQ5l?1`0V)-=J7Tp;Ibu@9dPI zQ2g5t7BV`Roo;{Yo_8lTC3>$vvwPrSLn67F+BZUq)wtD1hQWwyUQAB4_~ffIzOI1qsgfPr;g6njJi6?{j(pIhefuIeB?$ zf8pKy+j%i8ZNLHnPz2~y^*_&|O$oUDJA*P<*GK+6bLSy7I@&p)>Ki+|x|;m2ax`%A zQ;D9W0o<(6sr|9mF=1SQvw(fuVB~=|f_^PyKtsUt4NR`T$^>@?21jr~K!I~XT~|%@ z!ylWXsE2W2KzYo-%cm#-l5q#(`D0LjSoDFuTsQz+(O&w7zE8fn<5`d4&EhjMf_jJ{ z4lQ6CK-AT@0stqOplImu=%fJ(Z8e4%g_^`hexF86KYoP#m-QLvv zW=-X-#L&&q%&fZhcpHD<9=)d*5u7Bzy}THPM=(#^d=yvZ>o*=dyc&O8I$9CH-NIk} z#s{$sZST8aoz%osWx`vMsMTdJ=(EfaC;6GA>Y@F!Vq#*_!teoHf&6)=tJVF;=kJ_B zehZ9$X?<@7#%W zSV2zyx!MiuNAkYBf90*<{rR>Y-x`3|ef@rZ%-(nmPT>%^=lrIB+YMLSDmyQ@9HaeO zzS=++BY}8 z3(7v1_J51OH?+1qeoXFpI%?_WwDQmIx}oELSy#Y*J35izTu=YO-<$w>Zv#1o7jJHj znq5;HUI4PH)VtC(zB%dqCRzRHGjmu$st@<&*r>L|H+1U zp!b$NzWdMc^e=#Xqw|qF{-8eqsO$WM%zbzK1mVmj@c#Dyc9JuzQ9Ql3d>AF=(%eW^wt}^!!f2g1dyE5y9=b`*{Bx!mfQvnPRbcto7 zG|v=*5>Y38A|A6oj+dc~p02E(c`SE4;69py?{gvheb z>KrfJJbEY|PCfu^qlSVB6j26_&+7Fx)qsB^vOf_;M6Nr&4YT$Q()w}G{X+4h+YF7Q zQ=g>SgE;iX&}3G^Xz1VkWVbp#4`PxnF~F67Km5d=h`dAjnfH?1=H)wyK_o4gb|D1z zIfC|tmM#R)NlEb8Jkna2MlQN`MLcA*svL?;uhiBmLk?F=7 zBST8^GU8`hUG`=~$Mpft(2<$VA2jdWjz$Zn0%cgDkpQ1btOR`uLR^IiMSc9;GnD2Q zf=ZYKF5awIsjBP%tWo6|vDb&PB$wn*%ZqkBog*u-s!d6n#CK=SBrq|_tgK=U+MMU? zItGN&5fQoT=!R_WNE9KJi`qy9Eh8Sg-5BSLyRJme(I?%?>gO>ZCC8B2 zMQVsHP1KQT5ZM>07~eVDEBTCA7OFeK>MC+EbGtmz_YrN5i;@Y3ha*l^RU~!pajHW7L8VO`~Q@ogww+`E2{K$yEi@*&bPr*d)r%N3te$r)X1G0>s zJAH{Z6Q)5WcCSGfsU)Hh(*fDU`47&`4U)5iQ@HWJ z6VcPe;0zllw;Bx&LJop0!7kESCxUyQ*Ox;G_L0XN;F2bJ?Q_0l12nb)`eCt5oN)?tv})?!WWffX=oX37Cmq^RU;@=( z2GkMUSNZT^rzWW-=B}U>k0&hgbj^!O-(e%lxqkUqz{S^9kj(k%pI>M6v(16hFlNq` zh#9_DtOrbQ)Z4mhfH^IPePMir#8%o}OE=a2Yda>-&nr!oFQqv|BY45l@0FolH}9^t z!(R8=A-C98Id^k-T1W!aHNg|ZYbWf_x{szWF%Y~Jw%B-%oD);PHR&EbJXdi7Yc8W2 z)0(xDL|av%BXky0fI#90c=>m@z4QGU#0N<|=Zd^H%>T`C>3T90m5Z5ohpBrm$Dl@V}gZ(#EOh zH?>zuR0oi0s!T(IO-*qoo4WBkm3;)8KYf^7x06|k$x%gt{wzwG?YIO=DJ5X!7_(WA zMJg<XLtbV=)M?0Z?rGX6E~6?e@j=b+cyGG68G zw>I03)G?Lw1i^=|B~9fmq8-;1kis3tn5A9}law43Y3CjR&UF*%V0d~H{7#98ssK>B zn2h^LD;97|mFH&nFx^yeaLUA%4|6D;iXrixKY<*RXqPi;&S$+X{?>$t-lPnIB8E;} zIc)p*x%yL4c5Q3HDQ`<=2M>@a_7^mTfR; z%JRNF=t3V-wc?suXeYS7`$<_M8pX7AJ=t|7dy$^fm*Ebsor;1z4l3&-<_&Kbn;uY) zPaJGA0?Hxpm^j}u--8of8UL-FD!rIu_7lBL@xeFME=MqgyL;1;>l?Lm_^bjZ{E3e@ zX38t=#8mLNGf9LhIXRj6^V77E$At;e_U2`(*%Sb|OwYt~@;K3Hjhr&DG=;LI>~8o= z7WPT=*PscixDMy@UVsJgHCGWVa;0wheQy@ON|b%hJ5V!w3Jqfi+ukXRRH??#ZDwWrJ6YE7@3jm=uX`) z#Iy{yk^6;O%~~zf!)60Mo2hN>3v{z~vmPlN3XeZ$WxV(ljM!ojlWFK{C5PjEq|z$6 z9&oC86q^qrH`=1?iXF)Vkt>r`Dq9q15#FxfhM&S|=ZcPk263(SBxX8SvE-t<&lciw z%+mv1zKBsr%T0EXbQDFe^u+s_@$?R5sUCHV@O+@k@?Ut%Mb6R{=7i}PhC}8s+;@2B zWIO(t6eDRPQ^1Qp$7o4?RLj`AMIh>P%ec((4<<5MshM?^ZfQ=iNvh`WG*ry%lgmJC&rh0k3Um!lAE&M<&|5kscPDiZZpn}^obKn)afw(K4VOHP_b>FLR z%)NucCa|=Se|7%~eef@*=DyPQg>MLr=4e{zFoCSTl1r!@j;J?pk36NwQgMdEL-!rT1>tYa6i?_uW>13^WA{;WGcDwqLm?xZ7irWBjTG2p{v0jo`lhc7kX5{F^(Zu zoUx%xVInQ2n`;K;S0qfRDt z^VH5QT<|C$-%f)!#s$G}=qM|WHi9drO*|uB-`I*=!{az&qg`C+LtK_$7Pw+1H{rc} z8Y-wNJmpm5g596H=ftb@Y}rx1`HwAa8Zy$KZ&D>kapIr>;_~*fyIObZke}>rE@ZUT z5Gi_M5opuRd0%3lKUPp=z5?%bjQxFAg&Dg@qaO``C&{7jpz=-ZQhSG4p>Ve>)X)y$ z8W_ID0F7i{UZvF3yTp7WIJFHri)p%BUqF{bDphQ8FY;|sFe#51RL%*(G{#DPaZ9Bx zM^&ZtLQp!-I~nD@OeKam4;W29^DnKL_?R46`mlN8d$_F|m5Q$!-aG)I z9tE--VWQK^KauJ=ErjkG?b;`oDFyr2B(?xWY!)Ii_>}u4#c;~%4D3Q~GWrNg|U zgx8^DEtn9BgIV=7gpp@r>)9?t$9v8Hl69WUjVO&^-@P#5`NbXHSBw7rDi|U&lgWsx zt_OYfs`|UQB&sXKQZ3awU2*o;bY*m8B8&Kz*-gbqvmp|uJ#Th`kgy!EYyjl3@Y4m~K3Xn@H>PJhq zTwb(T?^!}%AojV53t2#F9d79C1JQC#)*`IQDxH?C zx!9Yr{o|J839JWE&}XQQBi$Jxo0Y+L3fS;sTh)+Q+_6o_NU{i|7i$$G#y9X*e`w!I zhC`HvYI4BT66%C3_v(DL|H<9gxV0-YBcY$U#3!+pjrEDu#b77KnDD2IaWNCpM5PK` zq__V7%k=bWv!r^908H^&#RfR=yTd1@j;bFQT7ME1_i@V~2K8UgNipxGx1QKdO%keE zVasZ1?!%c;vCt$$`@Gl6$-B|wwN%g4>Wq5zrbFI79GUX*L&4D|iO28YS=8nxC9Sg~ zf7uIaPmJ4zNn`K`L*L4>Mzm5tbACj2*IkCOv-QlyREZPkhHc#_HTiPyh+GspPk4%N zkFl>jpwL*;aX*p1JE)_Lp))U;bx(vdx+2Fri@d_(7Q~g`g3WK$HeJT0?LcytXM%z5 z!p5*a(wNOT^z^)^^4mc3-lsr^Cd5v(@#pbLxKYE>vzuHj%e_*-!Kh!4Ey5yJN$CV6 zQXwq2EbS&b!9k`UM?Ff8eq1nM*_F0dDop$!tzEb>M#pQiiP_bZx^qsQ_KhO!e;^-( zt#$mR53~!Y*b{&06?7qo>s6)_@t&$K;mjgv6b|LQCSP6lFk*ekCAZb>aJjs4HPQ4+ zE*dlsxZ{FD8|dDjZS&j(F%A$BinPAZ-ANyF!~3`pp%7xcu~W z${A|M+Kx&G!?nOqkBkE+B+SycxgtBdmgeSOA;QT87q$u;-1i5;EU4r#oc-JE#oIns z!b*zuWuhWX{Hicml0Qy&8_m90q5#C%ItVa*hntw>tQavE$<^WZK0%Su%M6Wqg7zS? z+KTt?zb;e<_nGMlaDj4m{Ys_x39N*6s5N3AM z9j8zUezNRrs|`E6g!^6J*zBo+%z=TX5}Ie^%fscVX}+GwAi;IIp~b=@)BiBUtr7jt zDzUPqo+2 z$=AXRXj^EQ^NjW-m3nVoFtpeTPpGJx#F*od&J1aUKy5l9%wJ1ETzE*18YB>s)F$phG`tOrN{-F+!_aVno_nLAPdl?bvsrHsz!kQ^|G5k|$=%>u zpA)^~buCQYI0wg4NbH$~52BT`IZas(J2LUR8b7v|Bo%6I$lD6@6@Ehq?ox-C<2Rr% z!7JQ5vrC|UdI~Huu$AjgQn(C7dSHaMyX?)LlErV7-PNT%L6y4vokfU!xVt@n6N2OE=IOsw-5rOwZShxU@VP+5 zfp6GdFRPQ04ovtU%AF-zE^O(tCdzn4H4k4#w(?;!8;OS=z)VerO5%ODH;OhnoNau? zrs#ycLaN!}NmsxbN_KUD>#XjR#uW56UkzZ*;aSV3B0}Eg0JC?mDM5ERrAK{wS7ln; zNtE)S7iw5-xIXnU-6{5vWqaov3wdr&ZweW|MYTGANnqgzC>j9aSeE);M9M7Jk#>%^ z0v+&j&c|RY9SZcxUxt!424$D+L^a(VxNptVE806|<$8)>bJuY|LUeD}g(*)$(r-Li z=7w-`GdAyP?Y{D!>Kbi%(Z#u zQrLn8LFym*$W2j8Fi|{CEE`pdZcO3$jqi5i^-9T8xTKF&sOAyC=UQ+X z1rEyg&W7OehQT>>!IQr7;-=DAS|*K=+)U|5oN_m><)mXiuX@=?#&sHM+%iwgWn$(S zWL-CU?CYY;-%g$xT|DJ&I*2Yz(3|HES#OtBw``flsB)p0%`trbpwe<`A-iK~LrhAn z1G5%0h~&2cJ-zu(u8tl*5uM%2tgUqijQtUm9-Tftb}4&r^`ok_D0nw5YZqULyf-ae zbu}gR9@w`hRbT`v5EL__#7||^GbMDJp5swh#whpzYZ2~M2}bZl9nPIx?s>mYoFX+W z-~qn4R`n&Q@C32L_Jb@2JW_6LQi~z?K~<2MEgJwVp{|eVtB$As*OUv8ZkOq%B9UMS zdX6&I$NU+O)SqbozR}KFQ@>jd+e^&ebJPXVQ?50mG1ukMh+ikA^75RLR8*2t5-4E_`Gk6`_Z9N1_1A^d=u>~k4PHA*U>Ssz{?+uv3Y zBCK$_I>s!^;Mb6m_Pnywn))3Gq`1O$=)ZD1-FLDP>@XB>wzGr%%nTtGQP;Jf+7@P5 z8V=>u*Vb+N;L4ad|H2nPve5SD}~YTo|GxF+J;9snCC4G z&lcNCm8j$eg{-t)Ov1%2y}Pr?%RyoNZ*yv_lI-jb7i%za`L*We9;U94Ywa2aZN7$u z8)KhRf;to@Q40!506sX=hK&hUVI9SY;_g1bi-N|-S(A?O&~no!rpxVj*v_dp;_}it z?T_Fuk~=0}P|XWZ_^L&0CICX(Kpksur1Hb1xFOMhmoEkLPiqfobwQvb29SNSSBihH z$N-zj2|~B;i|te6P!JTy(NkT4!mLI+DTOJtLaq~V`iffvEIN!2BL<0<_>%PtH@rJq zzaxeoih+M++LjF?9H&I~+OxxtnlkcwRO&=kV+JV#i1S+QrGR_&2j9JdV;}KzM$%m4 z=lcAE?}%?(e9EX9mjhi#ujf}dp?X3a@0oqk&~ldk`R8(I^1HPOC%RmSSX`xeN;Lam zXZ&OMSRUMB1V7{>p`!k>4S{+(Ow)ukVE1NpL*t8VvE-JHg$G@o5%%r6RVR??=3v_7 zX$@$ZQFmQzLm3GtI|N7KPw25}b*UfJqLTPO08`X$#h%7BKR%N)3Z-h2JwrpGWLC9)HXYW%R*(!n)T}Tm`R>Y0DN^sGYwOs* z;w8sSH|*#X>A-%~FMJLtkOs9du-}w@*D5h)PAmclq>-x6nelq{`F;cM!4%zs)5UM* z-h}4*MatPPHanOD=adVkrD4Q!?_7%nlV1x!jg8yer2j>_U3uNYUJ5EoViQF!gm7SI z*(-2`I7c817(;;g#B!&|()Q1Z;=C?=ojNwhZ$nDMSvGJAxeske@8tI9$Ise&4J+B zQ$2ufNqRzJI%nXIr61yDqLNb6{-i%UAB@wESq**zhO(v9qHM(1eH4V*9GgH7H+*RK z{*>QU7^N`ePq&DLid#ZKeaOViHyZNwY&mG(y0C@@ik( zr1MifxVTpRp13|Y)1-qwcf(U)_aS}e@c~RB4SIC+Dd8ji)WhrL2G4j{ZgvYL!xe&gYsu5tC#e8}EpE*g`b+ue0^#`c}b=RX+xrr=JX?#UPv+qP}nn%GVz zb~3ST+qP}nwrxAVov*gOt$p}c?LOR7)%Tpod!M>b_s=!Lpy0C@;TKBXc6MIH3QsDd zVCs&h`|hxaVh$CVb(#&zVI$HeyMwbv;x;sRBAPuFJ?3Muf397y!N_oAKm+9S_yF3g z?pMf_x_5P!sbR!~3wKeB|HI2uRfML(Timp{q7@?@vU}J!c8ejTdSkQuoKa1SJa2(A?++M?2iP7;J66O2d~8ZEQhD@Q zxU=$FXa(xVDl$G~L@!utxXA6q06pLkWIP^ zurgWhZxI@L7vvi4z%)Jyl|0F-j7?bszm#$LWcmvOxq+}r(uc@l`&FF5G}{`83nuSd zVYi|57R5Htf4hNmy*y|pqj?Ho&z|B?CsLoC)Y0q&roi8!F!u>;aj2+GDm9Br0>Os{ zkr(mz$X0dC)eGSs6KEFJyPu)gD{b`>e_fa1P?^+kz2_SnbII#y2TW21tI`@`xbLQ7 zDFn0^!+U8VE^@Ro6#V|};c>{%NQIz zBhm%PQzgs$h?s*x4?ek7DPu%6LE~}f&jr%2 zuJBWe{u!Jj|$-m4!UKs*o88GE)T=xR5?k{!Z96h)*P8WbIxyko3w4rbT&g6zh! z*8LM0;d9h@x8%|A#ThKl8&|H>H)li?5gq>hL{e)wXamOe+Z}n>FE8-$iKNy?+#!<7 zsh=f-NtcTbn(Hw3*>=v}-n`=q9;6B`N*j=tL}ZWu_WTEv{BOPeMMNFPzhqo8yJtkr z94(PaT*-BTJC92laK9z$&K&s(xSQ&deff+xK|5R5BI2D)s}KxP+2pc6H?!@G7~LrG zvjrLu^X!&_B*ys2UrUZcugk!OELXaXr5LM&wfo;(_eZoRH7Qzd6;e4_O7>g*BqSH} z4&L?j$0}kyWr>AElGHsmhxy+Tu@m!aZyHTPE)MiAG3F1lOCfa6?id3de$HgD2+W{J z(gd2>uc!IMJs;2Cmg)JHi4o3d7d5Auf3;d)@qAgnKrbVlLepY+U?h2XINW$%Ru;Ki zDq@?u)URf}CKi1NBLDPVwcF?vzo5LPzOu0Q9edKQ%TY98trCVRC@w^8{U9i?Pf}#H ze{Vw@td>NTDHCXyg9o?X<)Ga;;h=6|&99ZSo%**^k~69AbILgDYvv*fGk!kMNM^*) zBc4On0-N^X@_-1-ANJ_qADW6e49{yLCla*$+?Tk z$MBUE&D^m+@T?tio^pR?#>Z=7%h@G{IUA&6dff@AXZi=8GTcK%43TEF!8kc@N_~qk zC1XLZy|e#9wEHDmOMn*Oe}5iTu{(2RQ7`zT%Ufx|puV~Hi=5*MWyjO|BYwB(hO=8a zfhJ~q2A?d;np(r2)t<)s7pttHe$~lruWPH_vJr73bQ#p{N*Sq8)$^9$vPuxMn@vG+ zFQgwvNdd8k7^m5YQzN#dS%rWI&f7UcU@Mo0VQA3^CF^h?(HKFgrdfT+dFLRD~;WS=LxFS)6fe=w)Jq%|-4c~BK!#NO5ABa~NN64Dozwbh|X z8oVLJvpqv8ov12qjXC*#iOv6T`m%-WEFNl4@quP0ze2HFP{-Xi0`=Fgf_A;B8++1x z!nR-1(q-N*3?c+2MnpZfB(&&?**YUDP#$f}OE!iY`o1f#eA{+)N{1YMRycd`d|6WP z_Y&AS7Uz{s?e>xjs3j3K1)c3`amXdl3+>A|Lba`IF zbbVo%-tMoIR-;QF=pIB>ytk8E(e|bJg-_(iXuAfmzVIyV^ZSRW%W>UnbF_fc*F~#F zsL=a|mOqKpdnIC1U5cUJqASycV^W`#U6eUhksj+kRAlsAewPL_0ZqX)QHsw%dP=}> z7B~etzDHBg^AAjMikhB@q46M{k#_YYtSm+&q-DwZWchOUMl25#LnM&fy-O3QQ#k<8vG~%m|3N3r&h$U&gjv`*{woY-CS>De|3BH#|F=w-orCLtr$iI} zzhk1KoxxR-ZeMDG{3N9~M5wlP6GS*D;RYG|5Lp;ub&)|9B;6S7{P(`V`%ut+#ABeApmRsSW&MVT96D;?ZIK)xmgcdd$?vN)esELpdl(oP#~*m` zaZVwGc?O8EdCL{J5~egx!Gn0J#bLaOe2FZ}= zK|~-G2fv;Q2*FKokWbK+H_$zhuWlS50R%wr;&=2&feDxVd`F!?N%H6=Iq*5k z7Hg5*eT#**8<3~Ofp4y0{fV~ieVtQa1j*pKY9BLGphR9VO;}*a~BAuwkcc$!^ zBu@`WnIHA_4cM#K2jIgZF+T|b@AUA4@b&8B?k_H=>uo$EfCAX0U_f{Ud2@t;0c`^h zdI$OfF**QJGW78S2rQoY<@s*zeJWH@Pocvj0v72mGJclpNA*GKzR@6g_Hx^s_9$0` zfvf>U?O3^t1eniz06@vdZ5#k+(AV_cH~y;^2c(0C>)W;Q`vpK?8^^LV{>cC&rsYN| z4U}P@1Zx0*^ZxZtqUGL}IPLqX5>J=}dt~4$59kps!$G_Nub=lP?tk%ZdlHBV0@BtPAVxXoOoBl}!eI*$0zkvdi z*6mG=9r(KZ(w;yJ!vKro;emsc3E^G}>fxzPD7-(~!Hv%`*!Id8nYreP{NvP1+9z*T zJM~LXJZpmNwUR~ z{<6p@pEgeKDHZCWufy-*SY#_nSK5PsaDZ z1xF6v!p2C|xL@V{#a*RIZ~U=b_E37@!!_G{Gcp!1tuIHJ(&R;Z73dxCe~~jc6&3J| z-mSYiwF~JTf;5or_V}DC;wa-T@fYZ4i`M_T=3h@2Htr?^BP`kiN}-j^6FlUGvmtF{EVeQ6 z&1B9LsV6hdan^=tz=F`KFvhk;)B?oRA98{wGq!k1+6^K$y0HSg??&lfSj_e|cPacW2tg-kWBk9F1yk!A%++3DR6lWE8eOQY@XAep6rAF8}t)KH` z#=#X9{S~FG7|@<}cTN7B*=pp=pi`fzc#z+9L_123V$wB+N4&^G2&fLVag_js5K+pJ~pu1 z=Ag`|=Xf3wyG1ezoVIHrBKbMBc|7j5>5h!KVAj;>;uo(#MRQax3I(UkoRs2vGPi9v zG0v^6KmVd-o%Zn8F5J7EGgrsh`hks^B~b8^%f$qaf@1Jw0q&=R7e4=b;zRIDJ3kps zBfK&pwL$0NB2C`+S*w7R(z8D>-=!i{bec2T^T6CTKuY7j$5#TvV8KVNrrV(;Tx)=>&@E*E948OMp$ zZHqwl)=%t0?zZ18S|8l=%>%f^(S~|T*FaD3lP_BDWOk*S82{G^dc|F2T3=t>7%%D_96z@OJ{@}!RC@}^S7 z1KXz(p!ZQhf1P9C<&a)cT<-8v;3cX$(VvDro=iiVpYH?eyuQlGup+(i8Y<`SPHi0_ z`rzz7O6n5lQk9j*FPUnq6IdoIB@-Cgqg`avp?gYq*iTTy_|9((XF)&TBCV#-eTn3c zH4^rV7iKgxa7qzv2@r|2xxkq$xO{T+L94QM}Q&Ub|e7iI;?~p@|~R=E5n(^!r*fBl{ql79ZgDK zcXHi3i%~g-m)phxJTNIX34Y`@7#8ynzgneeJPy--!sIT=@sr<`xx5lfR4A3krXWcVi|F_`X%fS(*$QLicwgENM3vAWG6sSNC|t# zQT1CFcGtWg^O45LP~E92d75lAkp*+o6ag|tS3qW|eJdR`+>XesRyTjAbT3Y0DdXn% zLZR-+AnORqk9#9wGY%`ghw9@ZZ*wn6P?2nSj76go*Q~;O7Ck9|8TAc$hyt(ez`mt2 zL}pm6;YH6xVFBT+!sK+R&eDS+{WOoi<@ngbdpK!UcUtDTpq8B32^bxOoQ9~@Oe;6} zkm>0>vgH~z9|5Ap)phYAf*P--C%3cTawBF|ar2XWXOz<2qUxsXS~;Ch&e!at$B1*^kRcKtMdmR*QkOMHH#UaHb3J#qf_o-XD$0Rl~AdX;-sY1gemr`84u zrm}sN)W(anO^tk^rOApNLw@WL{BZp0mg~QCq_=Tu*NPF}5@8Vufg3or&bd<}6SC{S z9!!ZDGGur&GYA97L}*n(Z6;08>Y_=@C1%^fgLL%$!+osp#?wbe&RN}Nb`oeNK@PUZ z)!|&MvL;Te_*);%e1dDS2^gtD1josu>zQB+@1p zLyGUouqAsnV|N}DgJlXTt6PSKT|(Av%GWGQ5|JdM+I-Xo6sg2LKf@X zElGHz+S8dlxz#u@{{C7bfSA$81ZB2LixP5q5fjvZarxV`?LH+bT~s4uCnMe7UP za(A4B@LSg+y-N%7J6!o(RJ%i$yV0yErvGGp1{{G#5j?*N^t8FuExs=I*n8wt(}aQWjY>G0uHf;BaD_6?psG}xC@UtF87uhw|mHVdY~eSv#_ zu3NY5x;VJKP?Yg`{Li*RfEStq!6u0E(pk5Be=#s>p*HvE~NYLmbn4}b-j2d&xM zUM~b1uf=3hX|I>xY1UC)>Swk%i?88g$?nI34HX~W5$yGl-d|{PYsff5kd9-m&3YXe zDW@h$F{>BQP36YKC%AaK5xrC9NjH=tT zL&hM`l6}L;(=;#s2c=bQOjz8CCyum_^>BXNs8%bGdp)!~172d{JM%pUwmUAJ>}Q>Q zSGjclZtLuZF#uzw3vCJx%4Xlr?eP627s(3>zY4AfJlXIj}9@tK=?qE$N2Z zUi-6sx2FsGxRrE*kdPYP0LkVh%Tg%`F&yq=pk)IbEJN~(IPZ+ym~+=pU&ol^Xg~H~ z=X#>7tRP(cM%F7oE1LKFJmY24@T?w-udZ~?4z@)#+A(t9d#f;MveFY3HksOeLnr&f zP#9gIWw5WTSNrQ8tiHYG*H8c&-J2RpoeUgEf~{c`+S6zXpM@NMiBGp$)6kH6F{dln z3@O^5g?%+9y2utZf`H=iPuAJu+p?=bw%5_&QSw|d!^v;&=5YyN4t;MAa)CTTsD-YcDn9U<+h3Zb=8 zx|dwV5NNqptukt4a|-4Dwo}M5>-uZlaL5V1rB{+<9o;q_JAQ!(q}h~@Fpm+9P1Dl= z*74#I6Ma>^DaKEK&#s;y_fTzu#2-lucroYYlaSaf@vl^D`q1a&gRt$6f{fxM$}qA- z20U`1D8faF>PhMgk?IF8&sU=>Pp98ah8W4X!c^jfUX@Dj=kIW1Q03<$KHXNJ*={Ku zvGmf;NT-(&rV~3P5<;eO*((H5`eq`Wn}*RCeEmr>Z5SIi+`RX}1l!tw|DKhS`P)^% z*OuT86M`w&GBDe~G9ZEd5X`^6z|sj|DITJ8^qkWS@_Z>(;BKuc6Jp5fhB`^amh&9< zn}!Q%$QsVu(wv`h9DZ00XfALjCmUt>?W9jdJp`2T!Rvw31 ziz%D_y3j^-8h94u6nO62=sa#!LWN-p9_%jO9otCm{N~NHGu2p8ojYwzvuWC>WXa{A z3ynXJFRBcwk)`P!j`v=|1sp%`@y_losKm|61K+{FIO!nSZl7!Rvy7X*XNZ&>c2)|c zov)SWTfSe>?c5a{h)P0Xja+jSt1OZ&x@L^}S!N+fBjK6QeqcSAMFt|}{h8XXjcLb{x7*x3N%1~<)JaA&{aA;Mo04QT$z8F! zyY#L_#i~TvN+{I6cYv|aFP?S24Kk|(!pYuN(J6}XQu+?nNWV5k?yqF9D?Zyk9*43| zrVtk{V);DH!r)X*Tdf8@rCM``U^H{klel`=|LdEH-Ov2BS<3JLZyj}pl@9eB8^Ga) z)0?m-fWzXY<#e8vjzX(-jArVsT8zWL-Y_K7bwoYp(zD2{Epjf`h1^BEVDD$1|Nbz6 z4B^v{9noqpE9Yw7*Y;u14~a5h6lCh5P`;I8(p7p%7daP5q>FS1JX!O+y|8Xb#k0BL zpA;=lTYEcr9bpWQk7;|`lMcXaVDK{f)agIIc}=a$ELo{_UTUJn<%~r$-qI`meD#L6 z3vZPA#P`mRYg=#q_&!M^*9rb~hBUU2Y^E*~HH@PO;)^bD?`h}2E%Z5(DEi%cWEG{M zi13aRWiwR>UtgsK5%3M^NUzYCYf+@F5VfU9wQ-v~Q_%x3tUj4oWH@&Ch)2(+t9-fN z%V!!)gG+Drn%rylUDTm#Gb1lyHNDn&E*~yFG@B|L7|3w~h*lpUgqp%s@QDjYR+WM> zJ9UYJ1_`H}UbH`mn9>bY7j>_n_HpFUQZt~tk|rAY;(9j?-sn)6ldZk3O#4Qsy1TwZ z#RM~|P*9x2=ks~qDq)X%6Jva1cO>`Z(QcFb>f zR#{)(jMK58?XJVRugZvufgp#M*N9R=nwc|V@iQxA6)$?(rFs6u*}UlVN8E!Q^>6me z#M|+CrmqwQ#pdg^>^{du#1%qXV_%*B(z~^-DiEhY0v>8C=jZE(V((u)e~ zsYavIWo2Xt)~3cWw|a@LV8^y?E`+k0>2P7_e32hB!>AyhVz3rJ1PB;_H6Jf^@e9Fu6^Bl<EH$D*K1=YYy- zT(HZII+ktIyo_iFG9J&PJ|exHv_%iz z{aPY)CC!EIr2F<*Hz)ETNpoXsG4_SZ&u!slR8>9J-y=h;V#!{9?{TWekrXCg6wVr6 zN$g{iwgeMZ(kx?Q(FWUdO0@UKNz>4M%CE@2$Git+JTXE$7LI`R8%v=qtFJ+~a-vob zg8Qm&R-odZH&8x_?pcskHBt2Pr*?zKity;A4tv6z{rSI3F-nI=j4yO1pMrrDZ$)WX zANZEPB{Tz}HKWR(4%4E;s&1Zod6K{_3b7*6Fy;QDTPxl}&6;y0JlXd+nYnuMk*PM) zW%q8IM zhWWVR&`C3+l{J{@NMNNCTi%4ie7DakT4uw9O<;lSW>KajM)jjZmUT6y5QL6=?-P&T4uT7L_ivGv=`(sluopb{xPy}{wSJ3zqLv;a zfnM@F85zLH9VLqaQW(2Ij7|>bu+ezh_9ZVM=@sn+KcY0Y%@CmY^+9e*7_BDnlX5>w z=y~h`EW{#}Fo4q4K=snsJRJ$~Q!!(kOppF*gNamxJOYI9MXVE*_tG|u3&^}H-3`2! zE>pekH>M{?1j`cMu@6+PKhe&~fs`2Q+O1`4TE(jum1TNMQYU z7i!_l$I>tmi++XXT8oVVX7UxuFoDd8_3jJmmJ=KJ2}IhsubF^F1F5Xc46OuZ0%Q<& zG*--!1?}njXjU9hyrPc6<|jjLGsW~F)d-q(kPFcilvGA!5|Q}2yVQ14m#`fLEE_N< zc>VUw$&$+p+}&4A9iZBsD5;F+=2UWNn?RHHh35yh^z5;MA4sNdx}*Pz1p7y85!xA9 z{^I5RFYU!d$jr#Z^Fsw8$7j~9_T>(n71L~ON5`f9w(2wsYLRpW zEU}pZN**cZ(Ny2S*c1$6BF6FoFe6JN6EjOAv65n$Cf6niz*xLs4v3pu(_g3y;E3o1 zhRxHvJ`|n3`*qY$=ob}9=NAmuH!waqFg!U0YhY@2@=hR8N5UYuwYEF~OE?P^2OQ`p zFNtbo;E5nX10!?V$_RLb%407EuDiRlp9k>a5gI`{H!-t803StX)A_sFA<0GC09P0& z)8sXd0<;1$b{E#yb5g^{r>CRm*Ji?zuKo~7iXhlGI<|n70cHEe)CjWl=|h8}MqT>> zOh&>)ffXB@96v^DezCi`vbchQ?7+7C%j1q)+=Ru5!)H>A(PvdOfvUmv&onC!=;IXxCVFhOu*O*lAaDo4oZ*YOXMD#=m)2y`yoi> zKv^Kj1fRp|>z|sM8XgA+;s)}&DM^v_rK>$LMELTIJ7##)hRE%{>VE-xY$f%}t)B9? z)0fnfAE^=aYb=DhYh3Mx{NW&~uLGK@lFbGt7lfffT*zJCof3TXeY?KHtKI_cn6hgg z1u^)!eB7n@Zhc?|4YcO_X#;ro$QEETQ(I~|15CblnUs|3c={s!19AHLCi-Cw4EOhe z?7R8Aes(7*v9!M>ARcqu7YLmg{Z0v*?KYnTB6I=DKuZ7%ccAegi;vVo4ujs0DJ%di@l|>;rT6gP@}{sD5nwa@bDP%Gc(08U=0|G{=nPkrPf)uNWFez5SDy5>JSOP;(C0I= z0tcb?&#wCEPyvFaotgreUsc!3+U(H7m$n9cc|yIdZ~%CUz{XImU(^HZ9qmD)@bIGf z;&x)*qB()|XzjB9KsW$ z4Uj)Ywt&d*1%^Nk65bdbm_XA=0f;ny=ZgeJpo~(0{MNq>zGrkfTLd1F6oAm31FElo zR}lcRo7TV5|7lG8Ym|P3t^vzh{s)fy2fphcxRV?TJfUwNA#{szd^3Ez$jh1mgwcUe z?)2ZtN52q$#MA)T-ihY-3|@=o@A@Xbn|Lw^o|COGud$<<*Sn9qzw3T5ddgegF?z;Z zzA<{vTRsD6?K%L>51VvDVEFZzL{^LL8-`%+Vf5z?qjgQ-ZuEunY+y9#x zzkB;n`N9FH=Vx|sa`$XM`Ra?>>D~!^z4oFJ&f)!uXzBoCKZa@e!CrFErxD&8x$~Ab z$T{dVqlODytuQW~B%$^~mXkBV+w2P=n>6SjnaOoYr_22Jo6;Ci=m*XnN@e3g7ut~xQ=;f53ESW7^w zp9`h=QRAgJNEP{|!#|2xjbD7K-yj%op3wZ}4?C0Y59N>kxPWJ~zk1DUHuFRiK83+u zG+R1vEvCo4S;d49nUk4pStZZ+m*C!+A5jP}kd;>agv=+M(y#kMO&6049Zt(m!K`74 zekID{YEVmZt#`~okh_BgxEq|)ufnylV<%lvaZeR?ehRI&lwXCM+VZGLXy2s`0hg4Y z&<*W%;3bin;R359jtH_}SV?AruX!_SCmR)L?Ny(7FpGmL1avt;!7-GP#xxC&*FR;2 z30xYRi092nl~#^2;q3XLQBqN-wX4L!=c=jnjs!e!827CTN~4wK%VrGjD&EC6u3^j3 z#X8zZ>4Fm9J76!UZ}pdsNKQIxn8Oapbz6cS--)6)B`01M7DEL8i&A1cSvjPqP?F>D zR|q7#nFRH9hL^BKD8=Y8I*%nj(-CJ}Z#Z)Nl~Y}hhUCC`-X-kuOCLm8^$%f|su6$+ z5f4i_X0Uv@A*Bh?1CWn+BmapD*(2eMv`%7N&X=ONLy^zk)6&CrnezO6!6{=ecnkca?&{ug#kpLTsi#no?mVscDbF5Swk>HUwFrzkEL4iZCV~ zAGM+I9uOeVPcdTSi-VSLHdV50fXe(TEZF zN>#b$Yr!MR%A=wmBCQhjmd)a`{VL3c53qAC9U;URiO_}zcht$`?Ad$BK{)YO_QPAx z%|{jlz#)|(A<9!D*WhM?Bn=*|6w6H1nFL2m4eP{Nt|lkSd4>ANqHe_zVxrik0+iPK zQusd;Y~W3?5bNXQy!LaL!EiA*uPfiCpgC8OIlpIn6_RpNLYf)j|Aa0;CMoH`y#D?@ zYMl_i{v55Ick*y`>^|@;Y~#{+t37k!qG+KLg1r2cW`phb^V%apPEd3y`i7p?C5trg zW~x`;W8#0KPt<#BhD|HEzNJZ-E6;3YuJ|rp8SxmdGV|Q%&9(1-YL4X!Ptv3b8yz3^ zj=yRmE4~fj8!aitF>;(bLCkk)=#Dx=4ew~di1SiifE$o%n|7c;ljqi4-Vwy{Dtuh* ztar=>r5k0AY|eCLlPoa9#UW4)%2sTYD%!G#hE zHyv{%JvX{lgfB`4`W=jW759#B#ou-LXHPYg82*m~&?A)L{x0Bu;)5xoW}?3pr?Q+-SYr2!t|+s8`bw{9a{6x?peOq>ZF)U=xANzw8%~7Y z1H7jNO6-aFW`k^kn`T^aeU{$gp8a`WWD<2qV3^#tV%u|R)sa&No>?u~#0#`vPf(|m zD$N$j@*!?J31o@b)#mKz#N55xj+C}3tdGdTG`&oGit*PhhL)p&hWBr|PnX|DEz{SP zDg&a!FusyQ7Gmy>1)ZH3*_YW9z&G~S{qiP~m25w!q;J9?ZWJ}7s8mbxuEi)MFEn_7o<4|1y^Eh9(M{&$lEWtG!~#Qqf}utz-D0p zrsOsT*J{4w6c8*=<{7DcUf|I8qXFWBGv1jz*H|p{l-VeDuRZ~u91=3Hwrnc$4bPTU zbRLzMY#`(#CnEt9yeR2tdjL4g9py3LF>)36?!;-q@dBbv1MQ(CqA@)fF+R`pSSN14 z01~v-E{?b_5XGYlkI`cMB4xokfBKs>k@w$vyT23GTo?8ZhuHid?a+&TS2)Ym`ljiO zuS}?{P5ep+Gb07rWxjt0MKO@(k1*5!KBuBaq`Y!Od)Ez%sMU+5aWTT`&9ALl1kcb#;oA5ZNa60v1!|<)L z=AxhVOb|yNtgXNy_eGe=jJ;Y-nr4B55_*K3z*0#y-pRL;uW{@MX;jcw?n{g>D3&Ev z=&cw2E?XaP#q^t4t_GlnHO9W~a*xPY#arEblBhMly!bJ4*|tzyd}bq4`o=pOpr&-38}vwh=B zdkMQF={(^(`jkoLm>x{V?LX4@OS)SJMpT0ztyQxpnL2aV+@rM<>2{ zq>~e>%vLJ-w=?*5??stH%%iVP8KQWN!?iz;?!p)#=kbrbfGhz3R7)wdidju|wvaS>A>Ki>{ZJBKTeQ?G`q?^4oy z-g9N~K-bGS9@p+Ht7~?*?Ikgr<(Gql+8QS==6Xs+LSpZXgE!PH`m0)zD5?TKvTxjO z=OMm1iVjMhiyf2a(%k$uW6R;!X~L{~FDij?BPoZIE9(2`l znjR_(8E*N+5=MNr@N?OAx6v)os+7ZOzeOv7KX)>5HF?(}Z3@pkx!ZfvKs=CBQB7Gr zCNx%rJ_M0gA;!9WRL)vI6(iNVI!5p$WVj3(rnvvpkk*aUi9ux^l?&egOGNyO9AY?p z*T0`i<6$yY-HkRpD&e?VpS@+wc!|R+0Vh7Xv^4XtY<%-{gna36#ln$?b*)h$CoH~#uiRnh;bV91Ze zo*9=n2_NZFNN`IcFv?;0J5@X&xYYH$#n7xfD}~Mrw0NN>p;KSgs4O!Qqh;+OzjHWRA>mV&z2R009M`1qVkOdQz!R zu$;1HGVw1;7-xq|!zoX=SN$5@ev}UO& zz}8#Vh*5>(qSb4>{ERdPmJNSxc^B}N=8Hx4h{fQ6*dzfVE><~*A)V9`xQVefiA4dv zX4IP;2PS7w7Oazp7Pa%vdOHsri~(q(-xWzYqL26Q5;2*1KP&O-5^x9I`B78dHEu%J z!S`ag6;u1N?U=pWBGx#Br7B*`L&IaIX!CdO_hSge^&XR`5YW};M zqC`Eg4iu+_w)dxLk!X~XHYhN1*(If4`?^-Y72Lmjy677@iYBtob?63q_F0j4ee?MBuQ56G3b9G%mt!lUP;yNGv%!>vP3Xr43pnaxsdYw&3N`7^!nu+5q@0;bU zzJG<)%-WuND_D?!R%&EGHsKXDTdAj033~@#68>D_uXOWOnzb|xSbsIo_azVj<)dh> zhW!Om`=N*j;}T#o4f(hrtoZ&@g1_6yPF{FD!UBG0QLu>s9X7ttn?D^pv}`8#7#=A3Ve(4OWP-j&3vf2@dVGhT(<7{OFZ)4DT~TUY|(6g zFCECZ;tnkLGG!{6kIamSAbn>q2D%oEwotuT7{-?#+6B1BMf^~BV!h^ThjRwpWaxR5 z#=S@#uj>Bit-2Yf-s4)?-}$r);6@9@7Qh|b=8o*JVwv`4>8*OiNyhI?6*T5k>QL|I zF{x9;nH|-^aZLw_=(bsm63W`%m`@R4p24pCj_xSGNl7bvp`=NQ2gGqe)LNZAhN6k7 zGECaqhKOfh>N+NqMM2*>tTDsRK_hb^w z^4sWg$Xy62DXRGb=h(Jse2IF*iD)nz9ZY#|%fHN~VmDDN#IpG4TdI}qr%ZSKhuAw` zPOx8I>s4q|bdTE}El}B!OJ-#8R^qL>C$1m;kh>XQMw?HY6KTTTYhA z3>>C;;b@YEcC6f~ncr}96$#`AuEXf~BQv||tKVHcNFheyfS6n>_E-{q&YAi5OUSD? z!We;QUsxmY&36~963#$4k@UK|i+ZHQbi*B8QXyh+ffy4Qj*nt(P%f?G|<@dN0(KDmv4!T9T=vr>dN?}uP(EHzn8#Y zubo=J0RbXciX|+~G(Wfw(^tu|C`YVR;G=k4d*#6pxvPB&YPYZ02dh{0+WP z736%MO-5!tnw81wMKg?RQ|W9@tX~s%AXPo;Pd9?1UeN8L_u-|6GNR>UJ8qF>^~kTK z3Z_JCnh%DBQ3j$&N7D0y!&p^vdJ`)u4;vd>0uWF#hOe{b-n$MjIxlOaW6 zDn(@-Om|!;c2xs4JI_}7P5eEJ5M-m0Wk;RNr)jAP=q;O{E0eBFQ9SpS>ob z*TtnB2;M+0o_3g{#TEQS@$_8boKSrCWS%a1b1Qvl&s)()Vm^9#ABIAQ+9%||zcWRG zGsdTCH;^9)&{@5U^HEucp4kT2(kCx7EdOrE)3X zTKmn@%DYbFtysw=a}qsvjH-4TU79_ALu+PHPvu!&21(jo>vT*Wly3}Yr}1EA532O& zzwTU^BZ@(Y(*L8`p;wj&JdWYT33+GRCAJUC3rPn{jOh5`L;AdOoe?(`VUgst%2Wi{ zp;SVBV!Kw|nvgSIX|f5jn^mu17gp4nO7y?4Q^D}(t0hpW+uK}_f1&v|cylePX0}@6 z*~Qx$TKAF7#YMt#kw|veIiieSpd}cE& zcy8^r*X5)?!o+*ALD{62=&fT3c*A;+esmsT8;G*LIgw{sj(}Y8F^hhr9v;hlqttuy zCqZsSE$6){N|vtzJLyYgY$*9CMn1Xas-Ye)h)2<3*qJH>tXdp@Lj_u|#6 zwi0#OXwHJ%s>c-#?>FD3rCQVdU=pqiz>s#A+8wm;x)e#~B50Ml446xB?}LY1c5%R; zGBi8l9qXUX(*X5JEUzq!a((p}Yd<#kpG0uxYwhv%l&+EYcQZ^bWCnFa^b$i&4TBv> z!IFKrAzV0LX?05Wz&$Uut~{I5ldLoab>ljgsYw{>#Cr)U`(_+)BeTNp!Y+QFXMxXD-%zPCwQs`ZnWq3@XJKJjAU`F{R_LuT6!B6B7vSO zoZ~*xKMJX-#9`Zpor04(UP=NDhw_ET@G-N~h^WCrjxB~#*3`&3Q#Qh@Av3|=R{^cd zTe&#~G7H=MHb_gy))x4MTY@~nSWUj9NSSeTv{N|LWxG%uyLl>QhCjMBwPZ_WDGCMz z`A_nm59|{hb&)%VR*S=iHa=!sRSa-E6&~MRQar3LIc&V^rXB9V#X%+Oe$7rX`>IrK zlm{}}V*#x@&rSw`z8$Vv16MSRlTFKs=o-wG44;QCWiICF_{x zdth<=0UACs;Q^*O(ZQ2ZG9VWMnE^Q}TlA3WyJ-^9t8#-O ze~tbHbI#BYd>{eXkMEGulbi^AWBEH&VzwS?lsRFyi3cAxo5Dp>WZW;JY1E7r{S16% z%>G5wZMgZZY6dSAJTfa-tumpB$FG{~<6bJ5aLGJ?BGWJF^X9>io@?3DJ;I5j4$?g> zqh4MUTBoJ0Rv8AtBzng&n}fdQx>!fG;Q~_H))7G-M;zcf-4I~R%*PYx@9zfj*7$`1 zhr&$HMOIf31+T6EzxBhk(u(B8ZyfR>)M0?6g|iRii_P8*w%>AhMZX=8V`4p7mfBD` z!7S7+e24B05JPu?Q+?lP%jAastQb2E-?vgpw`~0JI z3@0Fow*x35h(3-Z*O2c%l=IZ_e{U`?r7YzGi56SHe^=t*G7txU@v>$=a$7=radw_< z!iyKeguhojjuB3niUMLVERYf^PuFlB5+W*MKiEjLVOTDOzSoz~YY0!CEUb5#U8ZoW zCYUI%;z>v)oXZu1{$A~Pw6gf9(`m3K+!_b$ZtX+>w8G3zTTkTI8>=LuKuiFGJ_2X2nQfRN&6R{E$KC6U zV5my2DOW!f_i{jBp-RZW{d~;)!o(SoaZ^YVpb`PihC-?Up^~Ef@EFD z#Zj8iRq|~(Oqp)9dEKSL)%Mf+*2IzR>;7)M`@wJf|Kg&mdByWS(x5L~$kw@=LM-D- zc`rN{-5~ig&GEZ;4IfZ|JzGfY`m+x?EC2M=7>*s!D1dbQ74qdML?f!tOE54hKczM; zA>$}4_)5AW`O}H;?*$t(xn{2T^koE1IKMwQP~hMjvH4MmRvtozo3WwYA!~DNNh53l za?{#Qzxo72dw#+^*{?^)E!|0|ERB6Ia_EpH6_?Shzay(v`(bb%Ou0oy>#3rx_j&+M zEt%qhKDf94-sCc8ZVVg>GH-0xoG@MBsC5=2FJKrr)>w-PTLfmA60bGl=-j1irM78Q z`lBi?&GRTPQsWasvtOAnJK1zRRR!h{Gi7Z$5<5#>`-F|e5bLa}BU`MGmZh@oC;%wp zmsUGG;SS}?54nptk;j^{8du1v?wu)FR@`Ykr3}NKt`wn(v&*sUQ;JY5m(%JEels-E zW&`;--0~o#^iKj`l>wQo&E4A;iXa2Vzj)lwAIHfceu`mx=%%dulv!4A`lsQ>18noZ zs(pV^b6$!eBFEJ1fl8^rYfo^8p2{j!`8c=7NZ7K0l{|XL$@{ivseGjqyqjsAgE)zOTTmIjx zNeOe<+tJf|4Kt(*%)L_lVamFPzCg&gh{K&KePYBd)h8n@7u^1fgxZ$_W^(f(ty3BU zuNZS-2QaG^d0E*Xi!-w5c<-r(cbdWFw2q^%<6JK3v1jkW zp$ubZCrPrbsq=|6btu334H10j$@?1#n^8%i>FvmuzluuVK^e zS5Zf4tI+cIwC$i~5^y}A<(|cK{;fdc_3~T-C&5vY#-P55y2;+~5GfP0`N@uVV{cFB z1=96)*w0eqae7NMxZQN~ys`iXJORKVov{d`3zT)Z1^a+P+>HTgh-_(w1)v zT8e8^;Wyx^`6@U|A9SJKb=s(u@V&3RgnK)x*kLq(khCi<;?vjBMfgwZZyZnf$2!oPv@_eJW{|l(U!m{5(_b6mHj8xtR zj(=3yhwBynnlfgt7KqB2Y{Cth!=!-23kj(?nJdUU|) zG#C@>OswsiEAq?ku>5lgsT4G|k+Dc4SX*&kR4e}PU zDCK3Hjau3gL%3s^bciz~6D2URNl?Ep5{44yoK$6JL za;fqRJ1nR}^D72Z=MVX5y$}!d$<2sDWj@yAy~79-0ATo)!yUK{G=9=HT;B3Y%2G{> z&1roC+&+eti=&>#k8(SSTs||caJbK@!t^rhF{u<7si2HDqVb6q8b*xXkkOCpiqZDit(P4j%69IG%Lx` zL4w>Q7>T(I4Xu`+%#vDtjyI21@(^GHt!Anrn$Px$yCSbP?=eq!@9L|)WF9Ec$&ly7 z^wJdCSVy(ng7*~+^v&jl0Vc((8pKP8XF!_Fmy&jP1}SZNL?X%U+@FW~Jd+R?$qb?G zv}M1~j@z|~6e2Wh^lX8=7}}oLJe^BBhXhb~WE^3SalaTh-qqPe#>JdRkv!4L^7V=D zF#(&T=_9DmH6Ww$h(K8U@@Mtx8u8Cajw%SbP`EC>d)$887ID#z;o|k#wXL0=CF^2U zU_Y}2V)3mz$QjN^6nd0FPYxL)^7io}vG;K#lL1(`(Wu%+JRWmfOMt^0Eb!+VIwvf} zdFIQiHwHcB{(U~Rnuf${_BN^%l0%ABDs@2n;=8<5N3W@uE+zTeVeE-? zw;5rCUYeFQf(Zly`+fs1^a0=Cl)acu5|8Jo$piDa8jYL1z!PCuNVp zhR`JEAMZB&K4ct=^DGoLG&YC1xHu17TpJeHsoen*lx(8yM0qFpAPZ)T?@*1Tp8iKE zPeS21|8wUXC4QDVk(JJKg^BoJm2(;D(v@9iz%W8+Npo&^@k9JH>^X?i^au+aw4 zd#mRspyn|WEcHdYOW(#YTHiNS#iAc*x&yP{5lMnnEPqLl5duq`!i@13))G{*b-x>Y z++q!;R0(haWi2VtUSfS?p$E7sWyWX72+=53GB(t$lD?zwf$5cDj)CX;?9V+c4CrZxUr zP;=B!QpbU)1VdTgAh!Uqe{E6fh}q#Ok)H`IRVVOc$OZB~U3w-@QS(rm&tnG2e}K1Q z-g{C@fco1Sllv)05U36%(!z?GHdqk@`?V9w7kBsu==Y$2}O*V@uob`;Hx8*6GY9(zH=KTz?0v0Jrl|7o+&iT_W7PM-ZA8}1n5iSGNvN_I!%HVjI zNvK5FYuNJ8X|F&+$H^qFlZq(oL=KjD-qQ} ztG5eXoaLO`EVp=l9h7%<^HxYlsf!!G1O*Jxqm*4gG&Fv5AXjKPk8b`KRKgT#LE)30G6t%vfZAqr-wN z2BAi6U1JFTpH3N)#3c-HUB$PfIXf{+1M)f}3R8~GPs0(zd64dD<)#bA3a-{t5S0@u zC}(*kUfHICrO#THI457@Q~Lp=^F}@7bkdOqXM~MwWbowQ__fwSz0dQ{lO0Yfy*BM` zLdUJyBAdZE>P33dNU$1SsAaP?5<{+e$i;YKsHb}N42 zc3dyK<{-CX`sGq7%#X9BvjAl1XJQ==Wv_jdf|J}Ap$@u(MBy{0lWh@^#2kem^G2{H zre2d$8e{Y_ME#88p59dmrxI2B*ppsas&s-bmsUl|k~1kj*AOSxhv6qN!nw_M=}b@g_#-2J7i zu4x77&n2+h;l_gFzqz?wWM9)w3vV=&rxHIoYp{3l`F$1agekVluB4D1TkD0oHhq(sq zN9g{*!Y+%0(PH8D4tusdJi{sIOXW91sBySUT;uaNxtP=-mQvtVn-P|C@h(+mZ1m&i z`gzHtjotX}L4j0t60&LH5z+XZHNQ*oAue6KRvh6P@yVLwc>uBP7BhVC!PJ|WVMYH1 z;zP9sy(r!=Pi-Xlg(Kf0Zqv`hS2vlMR1gtSXhg}v%Bot<^i}7*J&pIZ19JvZ3bH3z5Tx~Pu@kJZPGLnXJ|NB`qU8-5Mexg28mPv#b2sccL6r&@}!w+W! z?b8J+k>1TEOS3~8ab_dCzU-XnCVeNRCBbXtL^ha_mgIfN7xmMr9u+w~1n=$f%c+gQ z=0K-e^&j`Uij}wjVAJ~jA`@LCTJwmMeUh3KChFy?opr@W?9AO6dXw0H#83&ftHTn5 zz6wMBv|R@p!LWK)EDd~W5{!G23m6$uu|cqR2bm&pp}`SIA=Om;dElz;v0QXuo|`kN z+mlX4(0cBRPgF8*Kb^{7;I3Fp;qxD=pQcNWp~Ywi=73HFqd<4;WKrU2lG{^52ydLU z$djJ%35(zk*&9IUPi)m=9?#Gi_;(A_$^QuL{A)E(S)DJDgXI|8xkNZ_T1?2U$`(qW zFT9XaTfZi&qopjfBwfQM!4EH8k5D{RA-ht>mt_+gOm~d zuV}~*FL&-$lQ}9`-N&8$r6PA87;HP$mn3Wjc3WM%Pwob*KceDbzynXgHd%tg<{G$i zsxeIvrrm1)(X(q+8r>wI$rl%@A;IQC#-w{jXx@ah5lt$Xe^sMRZ4lQ^@V12KHPczo zHk1q+%ik+J5v`Ez@~WKAzSJ4PypcCI_=fRj%yJva{<_Y>i47MIH4u{ zz>uo$ih045sjmLMoA0JwR-II7>ky8o-?{FaG?`a%>8ifZN*(lM&z7i_u|tf26Zbdn zE}y|>y!J)e?h7$ePSqgX^|*&2iOA)O0T(@G;=9RKKK*IhAVZDdAlOT-4%-tNyFrFd zM=H+qwB}u}yN%3FUlqY8drj(1n7ge++$uGIk@dr}vC%2tFw-js$b;^K2jlKM3!N@l z)M6QSm_*?xzQ>Cw>gFn^1TeOSI?ZSDq76$~B)RZO?3OzG)~FH#*gN0ON{AO-Z?ac@ zEoy~MIs>~P8E2E&(+71_7)llcMdZW@V(APJ1083csn~JqzJ49nBFoa*rMLc2XFl=l z9nJ(~6}nlvN7{v)ejIF(EI~bwlmY1rdC4zT<}gF(G#JJ%8@v?9?wZX$KhYo8C5Ilb zS6g}$%=HH9=HA>&(ZHGVk7~w{@yu zLU&X~eC$jdWG@~06$GOSIZVN|E++vLRhW)xaXt{Bq|Z0*I|Zd=T=kre!qI{*ycsjH zt)Q7k9Wx59jaQRhN2r>rxfZs+WGnz@wybg#@%K_1gy`8<)r?C?K$rRas7lmz2;qnQ z$lym{?3C?&g&1Lwf^7w*abfM(Q#d>0=9PDK6z--*{#vO3d6$sr{9e_G26b{C0o_U^TpcwwG@X%N1K%Ki!O;aK%xhpzypLj# z2Ng(C2_`gS^~@0l%-_`w75JoL@50phI&R3|2Py~fGfUFDQQqJ4N6+hU->l?a^7Xg< z3e0ND_07KU%81$1m(-c0mj=YG8%FEWfk>FS=kUXp-nFBpvsrVjTc>1mw#g)2=67Y^ zwQI@bJi@2wIpe$MrLl=`h-D7kL^wHZjQ2Ibie?Y1gmx?4YRpXqHT9Ib2o^A_=I_A< z<{|`xMSfdIx6^UTTj*rf*2Rn1igSO_Oq+y>%sTFG(& zhX?+=r7*CJIwvt?4$yUGW4SMw`t63Oj+Q~8@rv3h zBgls=F+`=F<}mk)otc#Lo83 zcx{mjIdzIg9WN<#SG0y$v=<&Hqax8G-C_ox_85dA-{s+p^i#i|#JptxXs|)WL7yL~ z?f5Z}ngO+~Kh*9{J6r{$HtBvMsKIVsk`D7eyy`JSOCs=LW0=)%bR>_*BWo|{-RZDMjSNt>ZC zh;fk2-q+7>Ua)VSoZtVc89N4b=O(}}A*n^kTfna@iT#-_td8zJw`I8I|)N-(JYkEd{F8|;)1ERge7{hxzJ;Q zPo z4~FT2&D;F#TH?}WG@jKV!zDr-)R~H&WbtGV%mUlpGmZdYCr}0HuGK&HmmR$?cIjAa zXdrow*fyz0Sv78h>J+-CgsV=9)cs7heV2QAP&vXTZBaXX@@vWOum{^MKEzd^49;pA3#;?j#>QIqkMWx93$_FJo=( zhaGMC@?CA2|3;&U!0!CWyJVITt2$~Q1x~?=9YCk3R*FN!xMJ#BZmIBNzb^ZgwqptE z%$U5vd6{1j+dWvASG~JMiNiyDE`jCy@vYM8X+B@3@a+WxAC^n}C)Kw2mg##~^}&iv zqy9_^>O;^$0m9p=i=Kg6PYtK(SC4T1joXy2bIK$}>m=f~yF(vVo|3}>A)NrRzU6t> zV~P=8d~#4wMlgE-)zNh$#yE+#l|FuTfia@=aIP_2?<>95-JpBIei+YDLZb=h{+x$w zUatV`k!RPxa-ecK4&&w3QSe=UC)oibNMKENAN0`I;E+4c;x%9TlDThS}a@ z6Ha~fh)1xuO%jRR1}TvGFb|aGq;SlNf_HlP$APeT7Gxvbu&9V2o5%-qf1(QT%_OI~ z=qAcVtvtlWs>u^kviWUC8Y2}AIVY1~)^0RG?GlPrY;I?{2e7QescvKB?MlK0Llw;w2KvFc9%fO1 zg;vu%LRcLhvL81Q3yG%j!0_;C>vR^7X-6)7TR;_t?`+c+AW<*F+@&b0u;rJ{@TWs2 ze(;iHaj+7O^pE0(^$pobpz6cQcsY;cncIK!YUN!lCJO+L?f4F*f=`$u5r(~y3Y4pZic5d5rMtu^}7Jw3hb z!J|hu{^FbCDe(Zz*AVk?A_`q(_13Yw+&lURhCh1U^&j3%mDc%9ZHGMr<@w3I^Tb>I zSDQ?!C#zXA;$7i$?p5LK;@jMfX;p}j{g0pVrjg{C`uUG zrM2saQhxk1t=D7@m%fXQkNNL46HAPN)3f-8Pt2QAEb#6W_(H9p?sV;!92!$ovP81} zP)kVkw1gGZ<0$sQ4tj0ei#pF;n(28mHYKF^h<)*n_z=~JO_bpN5$fwSo9H^aO&#=ymJMwR`uC~nv0|OxzsRc0no@W$O^5h4$n7JtU zAk)fVs=4xa@^VD`P8#O%Z6|)3w-aB|k;Q6u-612&Rc2qI8+2;bQ8OwI5_9w0EDsuZ zLm@k_0OHoNd;04pTPcL|+IzCZ{^{4YV=<9DjyR01(}&)!)UkRO`3&K+1Mg}2OgRbh zydqm8JW5dzCC$$PoyG3WX9>}6k+?x6Ow)Lk$eVxuo?DR8s1(!e>iAC6eg!H^ld%SE z-%qfyYv*tsKc}kkOgpVfi(po|k|2I~togT*DHGYV+D~SCa=F{BD=LfEFdY`~OC78> zC=VRBb9wgiG`5`=zR-D8Qj2`=bHgfa+9u-*h>NR0TIiqsQ&d@e+(%1vizM=uRfgyG z#mOK8V7v#YAEa*xt-c%_gfWs5zg?jmjsFhA-ik{w{{%F_uJIXON^uS8ZL-Vl5#^g1 zGJcYifUH+iY@Il@KBJhOo$c@U7QD@or73E@T8<|Iw}_De#0?4Oi%h2e?hOhk9c%zqvp4V997Q~XCZp6>p>$>iUppAu z1M^LVpt10&JHp|NedEo1l??|zmwuwMPQrqU8QE0>gxFq@VVbO~uIk57tu;BpdY*es z?z_I@Gd8He02p!dONR(rOnik7)7iLUmw>w_jL9}km$kxp>6);6^oN)cV0@8k%`SxD z@f^_g;YUz|e;eFuNn7l?ESFg1nrKs+!VrN{$a#?&hhC_WA&O#mf%=m(9^~b?4EYXq zUIJ@O6I>n%+Q-aZ2DBIt^n6Z+;0KnmX}CuU>%GyHPO}}IXS>(QPb0!!!GuUd=WS~8 zFk$6jU-W>2{!jKP_2Qt3Ca9Ap?ISH#IbU&YJwM;;q1AOwaaKK1@C#p?o*<)aTBZ@H zUI23b^t)X@_g_PnYT`nUN!@)F{a&X5p2;HIy4kQ_ZFIk+94wsO_IUw$i483JAH>W9 z5S8mBs_OR{Euz!OOXIEila02hUqypV7{-x)+Iq+8=U`stJ}P}037h?0KLidKmcIXu z!e;v~6gCqp+yBL`nF-n1**X6kgw4Uu#`eD%?Eg;{F{<_|I}sf9HYZ^&i;I-BySpqf z2_wkx91)$ev?SyLG2TKhF(DOIP)YzH5n<9$xYw?C|Ht=__D{cgZ6?=;=QF=|K7cno zSZ!BQ5GgEZKut+921pW-5>9bNi76cjD3CZvuz-;XBAn^h;jbSW*=Zwa32#D0$@3pE zMe*UmjLS7&#*?h_VBue^e0o5HNI;Uh*rY^opua)_1uK6Ll`O3Wd>b%+fzKgRhZ90yQ;rWK+=(0J0EIaqaBjfBgM4CR7QncL{$$D~ zWPli6h1|WOa0qi5_6%Bb?s4x01q>zP{|mrLV&cMe?BE)f6vE9p2b26HwEiHz0{iE} z0g*z!cW)W2_d^pU^d}E0Qcf1Kt|v0gvlAwl4C$uOJ^VIExkS7dV3ObjCj?JH zPD8{19@qwUAgD;5tA7~lv%A|RJkxmf3KI0^NWmG{_k#2w90KH-2ed&=;!zUY3@wJfDLuI z{|f*9@C!wqp+k$Mef^gGsQe2?zoHHKc4@VABdM14K$15HR4sIuAkeeF5^S z&;-5!43_Y|c=N>dRc=<_k2>&`&f@{}Q&$?@l}3j<@D)E<8)z(e_JncvqjTA>@@dp(;L|4@01hSpb}c4EL?i?i3NCcO=l~Ii+JA-lj)jc=VE_tp_=HI85HEmaT>`r~ zIXDjt{4o3uBdxFY^yupP_M`d{|6XQVLW%8jySA6piwERC-BSF5e+d+c6p$@0VBSa2 z4{y&?rDFDisrk2H(i5JjKLzVYjqq)&5n>gsw-;p+0Za87S0}!6m*~A($63|jdJg#6 z?{3Tld=fc8VH?^kaML6KqqyVkRdsk<`CXT~M0ja0B=U)5^Qz_A?U$ZWP>@%QRhQ3&ZvStoE}>094%UHnr%8Oeyv=<ckt+@er*K^+*vsErjhF{vx{vB%vx*FP4WG9>Gn&7;*@mB zfmCu&L_Dmy)QN9%OXHVB&4WG1Rga;Mlbu+ZddSsV28W2t4Dcq^aHJnnYvs7dBWJT^ zdR+bn9bnP%?Js{*N-CC4pEhW+ zLfj3=_!e3X;SD(3iVOCJ=*AisHZj#KzSz#8$1W2QfN&PXrWi?}-_O2v>(H_q&cA=- z{m!8kVRGso;NA20&J^R)ZDt81u<)3!m_sAKzG@L``l|@oLmaix8LTCZP?Sf#ab6H!L@`kBn9lBY@NsV#$b=3Imt(#x$6TpO*G7ArS%@YFMdc z#ny-#&1vtGJa9bkcx*P#2_DO3b%HS~k^TT8{~U-5q;IAXic-w#gV>w=g=|nSf5+2>B(-xKdvN|(Xk!Uhbd|vE<~t9?v5PK;fA2TZiDZpgW>;$wI$2AdBQF&}eTlD8%Jb1)cx{w;cc~j=l zQGVlF{+vOQ)YpBOdZoXFEL4?*MLGALvN8UdiQ%3eeQEo-vDiyQJqlG|4Bgw#st+vM z@d8mZV>jt0N08EeL#$c{R|R)OvJZ zjw_8d?I@lgsK-gqe8MrxsBEf0u=Q&=(#Kk*U%`cVocNgTo+}+tm={ZLk#d zR-!A_t@GSF8Z!m-L2%a&MMBuVj?cj=+KS!Fap9AfWB7A`D$?tYGjHOnCnB1sLR)j0 z6&&G!iV8_Q;Tjc_#-9q(+|JK}{2FLCHrY4RmP%;JQ+wsLHs*;!tRMhFRnnIn8Mc-;Q1s!K@CtdR`QU(Vvbk$w!B_G_vYGxVQC*H zHClbV=Pn==zCzko$UFN3Z($79tPdat>O$Yfpp%feRIq;g7x!sc2%xIv+ZYg0^%7TK z0P4P2n)~+?+^H-XbJI2IZr(jSdQKsf7G(aDMeIhO-FL$((8<6Ke<8x(fmD09AoG@) z!q+97=!8vSks}c+=zOY1%{~#b@?cscZ-gb*q&hJ{RIoND)_?|oJL>!n``UyA$0+Y0 zJ;;1r-hIj_lcAGNb22U-wAz;Ua!c?GrR%Ce^O355`{U6oFSr!6bQ?q-jVRF~ z6z}SN^2mwwK7-#izms|nynzNNu__X`t zx~zSj1Am^R_cD$W9Yy=DaYFA|Dl?yWY47}lAOGM`HG>oT)Sfah&{b?N(W>A|E@bE^ z+{PwZ2`C0x>GU<-nQK)}U!s?7jw?Tw=v7M7hPL5WW582ElBVUvh0U@EmRc`e3=VVP z%yokK`I}Q=%#fPd#)T2)N`{e;-v^7pPvX?!VmLfU+jKk{1%u;-sE3?7yZ-SY4A z%Q%S?#^LH>6nb`s#Qo}8=K+{`0K1wIKM$yjfX@d-)b0e<4$JY6UEd8y^KcFGvRg}z zerR?d+-!8t-JO$D(=G}e(sve-&{Jm+7b1@xoq^FtJjTai(8wcypm3U4s94kjf2Z$S z2f6VR;e?J`!}cFbn}A=mk{zDL+aRb0Jd~CImD%|=AHO$tOHWq=b*<}E`6&y28}NxE zbt-_q^wfObeL8$5p0?)Z7M1sR6s!q8clGr11CY}~O_zJ%V><{XJTp}TWz_H8+1>;G zd=OU;vrEHlgK27hk4bBJjGQeLbNXUUkH8MDo9@Ax<-t@Zoc*pPd%1|6h{x@7|0Yt$ zY7R|l1QmNSWW*OaShx|s-%gj=y}bFUq?$hFX=6uz1|M=dHa$O|abGr7C4L$1%q9b} zoS9iCsriZ`Cm61EZZgkz;{**07OvvZq=(RH2lu)6^E z9TfP4sL(Y);Fn2Ei*IThACVNV0I|Z&3cjW3pkf4dvZqqfi!OZkZzXjnc9GHv97k*775PR6aEO{N;#b$^@{9aCtn@CbRj!>vZ$$EwN97l3=B2zip{dz&922-Z z1)C8nSHCs>N?I7t`;|b&nckhLCK=p}mAhR_zGdyPo(KG5dn_w zigB)*<4dfFK$PvOTdUd{PNhj`7qh~))(+HvjrH&p)nqyz_MvM&>vFpabUOYcrfA&3 zT`6Ur&~Bf(NI`L$xfn;AwiCh$%JsAQ4`f+?->P|jq>hwHYVvr{G-1emf}i*Gpv04& zBDN+VzqX02#ix*}Z={_ba=BktzpaTVF~jL5tqJ{!a~78CY4 zr10*xWW(*QY6EXjs_7lOWlOTTvbqCXChc`_uop<^lrMeOLwc#2-|IFiFjST><2^$` zfV#>dC%?McF982;kdg@n9X8ycuQV?KW5P<4gJ&%r8J9= zdo-Aq1fTX-#hH0;X|SMMtdW@@@@XmuH7>j}gg{9}dFUi~9B_H)AbU+uv-07~xpucfFI@P*U z1x6M}1%yHFtH50AG)VZD?1{SDF(z&=t?dkzdkFuS)=kLAq$qGjnaq2@rg9`EQOGRlsqZh~cWuBWkU>q-_3F!WQS5^45Pk zyMW)xDwt3El8uNzq~uPvHwsZfm&TIAJolf@X&H?D1ykhnMET>5I_5Zuywc9=?}|@dhR*uw(ALca1HXnGXOtI`%B*B4QNJO```N+$Ub-qiXdcx{ zcJ5T<;xi)P2tCS+ack9tNsyCDQ7NHhB7^>~*T)V|H_HQj<898GRt89!n%C$^Z#l%Be zenA<&I}K8r^@UFMW!Fq{#m+sb%kN&1;Qy<)1l@rW&SaT1<~FLsn1>ODq@=%>7m*6LadB{j$Of5FjX~lv0uwe{y82K6MJDs*rY*U!aAf*AiO+%PdZQ+ir+j?PF{|wPH z8`r`vy6o@Yrw0pqB4`4wH3s(kAq!jD*MqJ8OH$N3_8v%U^Q*^f`?Rkk9OI@s-ZI2Y z>qLTy4By?dx9y_p)961)_W;3OIWIIJ6Ukh%H&vB6XD6OS%f+4zy?5MCZE>Yxxi*Sv zRe;h#rl1P3M2$_nS-J?Ecp9CM+yBjLBT0L_23`caRz8qWZpTWrHzG zZI2q9SA-uWmEd=rF;LYTmYOMM#vCOX^~C_q1L4<-o5S-T6$yaqJOk^pXGD=t`bp+A z9mfd<#qQFSG+;53dw0k3{wa{pa$<(STm9pJhZeiPyn)`en}m0~!{g(zLRPjSg$$qG zWBY>2Yb-P5F&+n*HhHRSJ$*78gjnAM5YE2vEt!ZW9r3#e$Ztx-(>_3LJEKgwSxnL? z<>_1GFe0Y)->c}6F+)_Ac3q9-oD&WfoT7ewltcCZ7-=-#$SeGw!~5lH5pva-$@HwP zJgCxCTK}w+fz(?e`qg(zFQVXw`2o-diIob|;(Sj%S#ff4mNb|;1Ws1jKC5@5Z|z?u z&t6qep7G`G&4*nXHAn^tS1iyGvq&mKJyS5cCact&z|l`NR%PSVnaMPExY+rC5A%VW z^L~fSp^0CJKY>b`PM@V1*VQu#%J)xEqN-ooxoDkGMWE!6zNoA6TLS9vUfLC!yT90+ z;5pgQu)$HwrSol<)@8TD?=|O@GXQ%ez`zT^iQFyWiq-!CXIQ(wFhm=KCs%D^bnD4= z1M!FN=S~>oT*b^`M@GX=)#Hvj6wGBh&(K?A_I#V^nTtb6hMhz^QOfB%@7Hu`YKMl) zuAG#jqt06*+)-Y@DF;rRd+ely%tVnT~^&o1B2*647N9T4MAOn1Yp z<9l%k?W5&qUHj2LJiqfLi}%Qv36^{j*Pn{|1S;pCiGM(dh4F8U{Jy##>mvA@fkz9 z1Bxsz_??eJwfsC{^*Km7z(TEXP}tjIIznBDg5H=yAC{BH#UxDKGKvDM_k#IdgLNeb z+X`E8TQp>%anp`%AtX9G&>x!EW5F}V?cck!LorN-u0X4eK^K&B|^%VQO@~I zZG~K64h>D>geF1_qBGBD_8SN5;ge#Y@^o^5buLGP@;r334tJ2#T`J49rCATGV)J9elm0KC^F>AwSg35b=ZtR7| z7dX{T>gf`^l+!@+zlXluvYviqjWuFJ)RnAj=(j<9gq#Xd!Q94JrIpzaF%QHm){q=Y z1mN0}X^idoXKUt#st#%8FG&-oGsT969q5_1bDO1MhWx}U+1D~nb=GqFj(u^0RGk{F zziA6*hVU+(UL`Zd`6?43-U5=s97V2{N>+hKAzstFws=It=>F={UjZLS9NHFiZ?>}= zgAmj>vRbQsO%qm;Z%^6#lN`#ead<3+`_5B5i`j?ojV2tnn7=8j)JZqYa#*7;*zFt} zVHdS`uF(lGaobEz?gH>NNC|*5Ree?7-XR9yYam<6tGk9SP&ny{k3|fR?5fHpby{KuNGMdns@+ z6GV`@$&G@MVzza&OeOo%9COq3wZ_@Hu*WWBu(#fjy;=rmu)AHwM>aRNRO5Y^E1iZe)dqN9ZHAS@X{@`Z z1I#QuQrC4mXtEaOAjpVA3*m=Gx*}Z{h$kl%%pUC!yc#F?OU~<+QqsFtncg6CIE7Yk z6V29R`1j6kZ1|=DL#yztRHNvBr=%tx0RwyWnFWAa& zaD~A9Iri{4S$FosdaO{5=vZDJbjTDBTxrgA34l-mO>lafl1S%4q(DVKl`<2z?R-}& zq6vRkZDhK;p#MSOj{WwC>d}l&B+@#58m>!9ururiEMVKg;#1919rg*xzV+`lg|VkW zkrZ`rRPPL~2)*Io(UC;55jeQ`Q)+h9ToK%EG8M0{XxnWq6}!3zTwiF7uADjzsBh=CHS+ce%Y@#`g9Y*N(fT5De>XH(w9 zx`u`mX>AmL-rj!ILIGJ&b$#D4&8*xAivjxqM>}+K&jIdsk3q&U5kZPnImZ^p0QwJ% zuSYglmD`cA^HjA@{Mx*lBe8Fc%5C|EgRuF-tb4;rEpqLI2x5)T6Zkg3MM*lz5Fgk^ z|DIDk9)GfKrfU^jT#QJI{)pk7>^MEbR)y_?E2}MJG|7(j)X3zxA#E8cAI^hbQYnI# zFePKl3*C+jy78}w%lfi2=V%Hy0vmKtxVvl8gQ;j78Sf2LD9_EcHbKg;7Asy~Tw_=i zDP}{Dr4i|Fv77iL?})NBHJYm)b5#0CY7FNXAF8gwG`7`Qej&N#8J8f89q2K*Da@oh zqN7KIoW`n=bQx)UNp-qcweP+cMjHUOPLIt(GKhkc ze)8P2lAA)DsR-mPQ-s-CjR&)kWGcFp95u(%l?L6;eIEkVbx;MvHa;0HlwGOlVnk_O zfNvR)pgGaRxP)?*h;+@gmF2yqLQ+hPvdLmLn(M1}*GZ)_UAwk6KB$7GN)a#Uo^~G# zk=Y$$kbM8xpr)?jZIQClwe`T~21~xOGYkp-B9v|X=IMmr*@c!B6AfRWUeCN*Y|l)h zlht!Wwt(5a=H9rm#W34YJe8^qMch}@(%5%z{sHfk5RPqylX*4ad9D_k`@7}aH^kFC zBwlCGZQ~&1Kn`Ed@4M$*G5rs3sHBh1YTqK3v|Rfd`>zUa^(nV(dZpSt*_>(CBf^cv zN(yd!HxHJ=P1-L)!ni&b)Jv>3p+D|I-Z)iy(!-=m<~ylxP2s>hDj0^bJ@?#n$~`e7 z=C{inOcO`&dMWM<;*?rXOg1)@z&yD@xc`LVJSM4CDu%LQf-+@GMlp zkaC~CQVGIK0khZ?T#pMwTF;)~msV)LP@h55q;{$!XL~f?2sE9`Pya2w%<Ul?O=*II*WC3347?QXL~nxgWKC?0fSguY#m_# zqxcp<&e^-Uu@ef$YxB9?xqbOjJ6%$p;ni@j*LSa9{!)bli%g;pZm7&F18{R`uLpX5pb=d`fpd3%8w;Mcb9(YH3XY9}4-A1D z?jM=$ADEegH!!mRJ{1ab|2e*4&#bMW6D&agtOW|mL!uVBJ>$ovouL1<-~5~<3D^kv zH*a`Y?B~=epn>ks`~oN>_#cp5I>9!3o-80+pei@=G(wB`A8DZ(`~9omvr{8SCnsZ& zEw08b&a6M8|Ks>}X#=VV$PtXIBUBk600Th{Xe;QaHW4iVs?gHp{xZ{OWpQ=`;SK__ z2gi{?L0mhx4TV`lJ%aSu{Ey>1@CQ2WgC+p~?qwZF6I1Iu`R0Eyc1}T>2Hl!1+qT_R zUAAr8wr$&0UADT*wr$(CZGBV!IWaL4G3R35iyaxU^Zt$8nQJ{aOa5f_V1PC(3nL?Q zYeX<_ji4!Dvs5;sfWi>GqJ|D;ULYv8FH$6n1Cy6#f>W5rMqr#C@XsrnCWwu; zz^-oyX6f3pHA2z!_EqMxU^;vqfq5hU@XidR@4AfOY+$^}O&y!fNuUH!phG*OzDIE{ zRz&aFJh@cRI&g_6{qW>7aM@KGp;s6w27#IO%|00=t zu}tis#a<~tvan5_F?)2oi~ey7q`g(WXaG(6`+PtA1uW|oyBXld`}YGn^(kycso^ad z+k0rf(G?5)>K|?u^o^tCnNapG`U>zY#SOXxA&6!3 zy*vp=dl@r%>AyyoLq@wLSS*z~O@ZOxG^y|Q#4k2Ai~^@r?_B?Ruyx-YmGS2PwtYM? z_0F-n~SlknV`Xl~EbOcTp0T9~(C9V2L zM5FhTJt5Wsr~m!Yd`pD-M?m)eeI@k5Wu^G{qw`JAVO#$xUp=>140zw6_DtFTRRBLLoo~VAmPrEtegCJZ$mpU2 zZRRh|ef!u){?8LwTreld3?ka;wTxSE%_VTx%@wGF4#vy4yMgSIZRy9lB7{8m!k)Yr|l6;%A{HRDYAk@BO_6BHSy)Hn6a8bOdk6FQYzb4{&O| z1qt?JeowPY5Dg<}SJnLqzfab^^veG3o6tZJK3#3B@yVfh>z3OaH##}j$O~C6V6VV# z!My&fAjh=L&dcsarDwrXeXO3nts_e10l$!Adf7qb0hVdvbe@=l=qpb!uf7IaXYEO2 zmG<>nZ9Po>((Lnn9@8RY>}q!9>!G0F;v7(T2-|eU;00%+M`-P6WC-{Y5%H9lFLL-p$~QFw zUp*pzL+#Bg%cp2R6f0#mqaT3Y!ezS3^}58FB62P;6%8V|oRWDpTFWp&1Kup%2(^(_ z5J7#&`>#O8c8`g`vWuCj=kWDJLq`~k>c_{awj=)fSwSC@9C5_Unvc4<$ahUJ8DIOh zQdJ!)aAv-A>tqD0N9ay9y8NU?!IR8Z5m$D@O+7@KsNN10uEh5A`*izHeZ8-P=pFxl zWy6ajLB1>X9MQ}$9#uwssGo&?bo`QpkRH5*7|pcqFe}0ebRD?;Mhx^J_}Q++-#r3T zziB+!SEambZZZLE2C-qGr`xfn3)TH-g!GZM^xDAH?p~(g0f-vi)-~t0>eJDGt??~V z5tMtCPoLq2l9Q)Z>sTOu;SxVUH3^j{J-6l?X ziDu@&a~GuDkntX+-606ZV|F){Ze}XNB@QPFuEtLi+eM74kDhhb*U$3@ytAfY19;((V3AA1M(wDZbXDu&QP;?u}DT4e6^mF-yKVwW9M zGClGUU4cbv_efbfJBU)2_xTC*_(*UC*0~i7=VYJ$6jY4$@IWSLb1YJYUE#2mOrZV; zs^@2_(KQUGggIR+`2`anrv_@@Mrh791R9%63(XS7`0q_9e(;C0ZdAu)Hael=q`^I_ z6LenvvUUEI(mOiHV_O%W3Nj-|vK?7_7|Py?W28w3;jIyiNu+m$I4@ z_ZQ9Ypy=Xm(4rUs_X7zG{FW>f%AZ>I;3l+;RjYTi0VDyi%zdE7tF(S<5ex<$$C1uK z`uuc7cz!jcV?+uciSxebDA7o7A5HaDvSvxe!GzFW%%q52vrF2%@|}{-$D2tj|Fi~v zNRtGkuw(~PReAwzgNz&jm%iVZhwK(y!t7|it?ZG#Nx>d&oFNBWO?Qr_HGXIFOsg63-2_bl# z-G|y07Jbu0ZWKUNd2;A`gF?QuLvY;fm4>eVn_J9z05d4OP-GRl>bJ~NmJ9*$54(^G z8yv6{-n3zkP9jmTSsOdtdS?yRsD-*Q4~gYg3}e3@)TU|k0^Pfc{7o#qq|WzYy-h8! z;ITi4zcsB?Z1^|C61#}Xr6trIdo#`L)&D6zvc|rq1}n2cpZtuC!uYdV4VT9wm@Gw* z7nYdIkC_X41}rRii`nYkW?pg9w-#%`pW?LFhzlk`m{!q8)uiM3yid_8feGbSM~>fw zW{BI4Uyy)RTC`4u&^n(ZRCI-WM^LqDViYb2mGeB_x;3(cUAshy-PI0?qE=bgHCZl2 zWTKZK-~^h+D)C{5*MY3Zxuh(OT7!Jh#qXBs!~t$H%c zJAf%I=VZyfT$rTTJ8<evi;S;!%*qX zww=coc2s=0*rV2N2MA0jXWQ(T@55^&_4fPw5;Uc={Ar|HWgX!uCZ_AM4Q-2nN%2G} zg(=tAxK7d0F8J-yH@4lJU1LKFr zlwShq`6i|4n48h@nVaEtcmOqk)x(Kg0oG=00vg@lJ_kr!a)tFr<> zn!b&PKWk;)Eju3(NEYvfUZgra7^qa@^b=C>`ZZduBP+*G6`tVqucHKxG>sj~4hfk} z#kwSC)O|O{pI-|>GwD};Lhe`C>$x1sQfav4sl-2CLXx=WVmaLv8>hx`BE0!zfFT6{ zD$4)G^YBHq$lWuUzC`Zy1YXvUr2ag&KFlu-t@eBL;Nc0+l= z;pks-LuYV5;~xVBgN4zI&1@HI{$l)~IFIb)zIzd~p}Le4+r3M4j_3NlPDjt2gYU}3 z&mNIjXc$NYsfzU@1z4_O{hBV78Ykl?Cc*2uyI>!6bM*NPYA^1Jpy)r?g#`Uxjge@e z6Sy!9;AaC?Wn0JR0l?q{omY;A4nPG>^M1e(S1ZSS<5jgU2+kf~plyL@34kdE>I2!O zAsCN4@cVSie?#T)8w*Z<))m*WhXL<++onUNC4+Bvb|Z5yM^NWT?hC1q4DnX0h?t+W zdE=vRzKV}5KHeX|Ye6KZ)fQ^cT-$unUzC`xLb<8^z zx>#LtW@JA^oG79|jH5|X(`eZic8rHpgERRy`FiN6i1bED>+x;kj93Gqo=rj8#5}6E zpQhJU-5e|xi({hJXDCEd2fJ&3DQjR=>hL|H1rL78hVp7MWHahBUV4xJPqM)%3D?S! z6&^b%!7M>zM|S9axO3Sl0-R(LX2-h+1(eAQ*&@Ic%WU zN)Dc$lT8yY$7I7rkC03-{R%$t-}FGfc|;|e{ueAscwbqjmNA6rw2R&zMtR0R85^72RR+CB1n}|p%OH+T|Ep}}S zbSGgeE6E_Pzojd|SbPO;nOcbjfu!D#hy9jPFPyd&IG#7eIRc`-365+kQmwi-Y;)O!q#2nSyCb&9`2qzO$42N+LUPRx%j z>l9A(Fw^->uT#Ca8he{u^i(BR>wH#Tl94+Ay_?-j`HAB7uHv|5z5pdASv=r^qK?rt zI^J#)1|~6c1Vmex2`SOt{IxaTf{m+eUh7X0TS3@Hr3@PkimDEpbrR>QB*Cw92fFu{cRLS@CGDe~N!MTmdw*Rw#_@KgpGR8flJ5P>3Y zJMTgle#d$V=}3-0sL_vPE?&rMP_tV}D))+8GUn3sV-9yPC0#g|B>&-G5N$w0SgJMH z=Mm~u2UomF_BS-@)h`l2gLi?fyV{g;pZtvu-C1y{ViqdK%MLJ83pqMtJ9*miCXx|c~MQFkr5Im zs1*ghF6Fy8w+DV6RL3yc@8Y-@(nu8r_q*c!NoaSG#iBr*BjmLEEJNR2*E}J(z#u6t z!qaHgko4K1vnjjVYd;?OIr7-phM~dW=94RGB^HB9)z|KD*N{^CMN8qZBcj1RG&QG1 zXo816HL1Hqi*|_>dqECJbRm2}n02bDmz4c!>Gc z-@p$GI_X%P8>MEak~S;W%bjW2T}~H2A4`7q4&OwFMVc%~5WaHni|3qH+?*lllydW&R1D#k-L$Nc1E+I6x4#GPs%zIf9ZmtqtS;aUz`YTD& zSp%oG0_Yko`55Sr5@(8>Xfn*~5$gK25;Z@Q#Ha-(PE!5+h2Aa{jUx$;8}$nnc00ATZWp^B2X6wW3aw442IMee3qN?Mu9WmiQpj5<4tNxoHGL|tF*$rF{P^CN%atS{z%MTu2%m;_Djw7-_g z7A?R+tI|hm{{d}KE>{~^<%W5)Cb~n2#6*C{x^YI?^R#EtlC4i638@vaqLt8NW{)1y zpZ^FGgD;#@IbaaYtqoII)4A=oe>#x)(QDVvb?Ho8YE`Erk!6=oDH?%ekZ&E1gnL+R zn{c4=%2sv4y_}(<>(#Y(f3*2|aCwp$#yo4mC_B|~<7Q-r`TuR=ko>DX zmlkq%y#0?L{?12fl=BmAhRXX$f3C}n(a|pmT;uKO8O3SvI{9Es6$xuTtVvVrClF0JY z=qG>&K5DkHy|tZ&Q�(w@w-PS9TJ8w_mLe0hjogyW^#gcDSnKh~7mR61jqbk%+hX zfM01I8G&*uwUd=A=}vCOz1uOoLwcHm1ETm%B*b@#R>`^4qKO`CFkE@3VeEz72m<^f z4tgdsUDTmKu=G}>%VWRC&iu^&|4X-+iO#5ZJs>6u+o6X`=&A8lHSq+3`ykN`RK2MQu6=gs~vtoVy-+>bl z;3mIc&I5QSvHckAgnp|AU>+R&(*|6sNBZxHT@~_gUh4YhEi1F6*^$2vR3yPK%g!4m0=Bs2>UPH^L`6{WS?K%w?#zrIr|PYPI^_2idon`| z8Ca_hV0U)j0_snsDrToT{-dfTaR9r8^l;SQ(Hs4J40Ex`{dZ zX1DI%i+raXuZi(32xrHYY{q$D+Opyw_SM3rAj67AE%vZ3-=kZkZc!NlNu;|+FoHtYmRztqjj z3vO*C+O&_fy8?!`E*ug_g9Or8kE+n;ZX6s)Ye)lmIv^O2jraMJ(OebQkZ zxR|_!r~CFHwc~)8!Dlh|57-yZ)J3#A;7T#v`pyIUie9-}T4-&`;nr|>le_Xi-6Tr~ zn35-COGCO5f8zg!4nM6GGXUx&842XF z(qKPeY~7NYteMH;t3)zARp1tx>?MHP;d9L~U&p!P7zZ}kCW7@jFh`O~4B`z)#lHHS z3?L@dV1#ZsI_0qTEP2VM02N2YYw*iiXy30b;BfRLV?lvQs2$$Ev@>==t*E_L|gyde%XX+Gv3Du>;3U_Pair`=?YVhYFhX=Ge@`&0e!bO}vaUb57vp9i|FmvAuC( zUL1q>5K-lS;StW4b|uPIHZ|=qqgQLpS$g<-S-J{(i5lGjrIWam7}%!o{f@1YF~C)K z|0ZyMp-JX)ABP|YuhraZJQnTWL7Dyi$7PWR)v(rLQYhrqv4bM&1b(b2urq$RRCpUGGZYGnZEKBY!-kH}D~36e;ezKPN8G?0 zv5+CcHBoLH+dOp4Dc`xUHgJbkW=B{l^f@E?$SR5L(uG+=&m~QHvIxoX<4fQ+bFYpQ zR;R`+6*#1qzr~z5oD<_>lzEv|wBE_S7#BlUqmqRB1fFr*6NiC^Z&j}#VLV+UauEF( zFr1(oUmT~;-z__ywr38Dn-9r1-u&F1t`{H4At~!58e2^BH%s%CLK7=lGAX#F)RWIBOP$OPp>>mnr z?m~BJ-R*0%f`vM4|2A#*sj^)v7h7YjC=M8eMlKA*5A#|J z$}ccE($B$6a3reSq zG(DvO`3to)9#1y|nMAXq@Jx)?=9+!|vALbmMUs?Wp$sIH=>RQ9dsTPHY$goT$exQd z-_4yy?uZaZsZV>vF~CeDA8r!;qv?;b()#$!`3E*Wt>#2&)FI;6$ZoQmSXIMjN0G(E zuPXxg!hS^eGFL)1vbe#SZ3`BMU_O${=Yo5cBM7G5?Bx7^sM_R)D@9fLSN4hu86S!@cLjGjpf~2yj7$R$bBTJJzwQwflsMt{w_sX- z=hlAKeqgEc-zL!*y$OTsoIbwI)W8(`xB8eYCS7`yLqB`&*|?FMo9BO$oJ48d?IARw zrfB3|DN-?yiNGm|7z{I`d*McY>1^l3S&YHE4wRHS%S`6Bv-u~>vp(Rq5GIM2)=ys* zA{vHJykf?WAqH>KL!mj4_!M-&K?;H!K z#!BLc*Bro_&Dxk8tEAIqnZCl2trRCP+A3Dx#Xpmf1=fQfg~Gh#gZBOW-m-OZyEPDmZYQTEnfczP53R0Vorl~tkP zaia1_4%zre98k-1$=LESR-;%(pRy-6m$M4a9sb(uL=<)}ESlQ#?>4cz5D_F+{39ET zX2zqdZI?KSSmYwfoy+LbGxCX^zi{?!@5AOIK?YEk7D8qA zzt;jhhlt9r-_99P4P9x-o0mcQm5@?dG+?3xFPd17fZjb%(BMx8OA5pCS1GLc6TkOk zJ&2g_Zi{#NH{jnY6s%{gMMCM|T~B#d}YSFh)xJflNVWFviPVu@wr7KpmZfE=zdf_xRW=QV9PfA}U+&>Y^c zCWsj?()Xg)%~QnjWm>b}@6*{(PxL50QggG^Uozcn?;_kO&Sq=exD(41e}#n;c{b&! z(%DNGdQG)QUk?-dA>1QRX6Uo%w>TzsMAP368ARQ==Nbj(?b--0L91yaN5Js;_=K8x zXZ}%idb#QxTF4&AqC@L%rkU@6|6>D=DL62#mF_j-0Y6T_b2y$19(9_m%A0b9Ydfgw z0r6gkz(5Fz3ea77E4OUNGGyqr@}(S;xHm`(5=EB&Y*hRdjqA{?KPiihm_!e8Qe6eZ zsa%5IZ@1_?PB5#w`w7SDp2-0Bz5F2-E0tPTZkeU6X1jzW!450?v@O34c{Yqi`1i2* z)b`$|H*ZkXTUBADpRH>?nNt2D#MTa1^;Hrg!~euW@#+yudwn$}(>_P>Xv-7z77T!l zmJD;WPg;b(lShY{zQQw>$L9Cw^L}aC=Gum;6G&-sNg2*q!QK>9tAC?MQd@Ke zzXu;=5rpXQJKv!&9xd6@D&t1XgoW95@Y63M$}L`j9g26mmO|fATs@UeF^RSEKdD)$ zTPUHW>gHuwutgCn9ip=H#A7Fc4(7NrZSJDb8~cgcsa}MMAl_lOJlDDt2J6tUbJWN2 znnRaUx^g0EQVG#=LSxxz@fzbu!Lx!^Cv;1kJkqwB8FF4?csP;^`D;lihET@JC4P(Q zDBQG2-;q~8D~v2DQ|cF0`=*LGhX0E47UyRw_-#J{lp+?s*eNAW=?|w6KXh9#suDgC z37QhW+7s}F2{QGqFzV&OqR0B_Xw<3Lgv_1j#ZE85v zBM~}NMb=)2(V-Dh_qNJCI>fG@2{qw7g%ym4qha1SJDEnVlalPuXwDQI&Sh@F=_zbt zEG+-{FNmKarJ!f}Tob&tx~|;#C}XVNnMb#%$u2u{&Dudjjxj?by}{|Kf;ZY z2X=g)!fbObPOPQae+QVB7D@aLFR`gzFH<+o=cc7}@&XfKyskg&`AcZ_2);#oG2qC88hfnLC2)H`aTV!IP{R_ATbUKdmaqjpO@1M})8Uq0qj3K+G)Ru@&*rCKU9y2ee_4 zy`NDBidw~hWGoFFuM)zYpT$09lLk3*TwQ011pN3>ATn59KuKRs*-q1pAqAsFB!M*n zArAX>FO+VQJC3)ra(~fC?m;qkgHKrCytl7(!BheW8oP)7Q6cFKx_m=|%O*L~c@JsP zb3VtNYm6C?G8Fk?Lq1R?ebwrgx#6oaN9=7idO?zUTYT?U{92d3u6;cZIH}i(e+n?R zqI&e~5|qs@tqOtn4X!3nBxa%q3Whm(uGrX3<8k&{_xVgRi|gdYNR?oym!+knbG!a>^Cw6;}Dtf}tGcQAE5d>qIK=bAkc zb*!_7B(MdM?dxNk??;)7sY(vF^t`3Mm2^A7Rf+Fw$_!FCi9BGI!sTWRM=_(YCtq$s z(`HR&`;JDv6}?-yha2Xs{eqHlfq8EYzdn=!OEn~q8xx&gNV>k4RJO)jc+c&}lUx2r zG+YNA1=?)jP;k(ouTaV7X-epk^A(P3+3NO;py(%?=8QEYGCSJ{ohkRePcy5UYwmMN z{mHZ64?gz%0$a`99sCi#3$NWCF1lQ|l;@8r0o~%7=_?$>kfYt;Uj`-UfuTR7p2hG?~c5xKPd#J6@)YM2*whYE6vRn$5qGOW_U-R%6o^r5MBLcL$rN z72uyFgruwToaJ)5w(en5UW*Z@gQIbEik7R(+zV9)*AXk;I1&&2tizhfUjfLBtzjo^ zn|s|B;ffrY@T7+=@Jl7wlH8{UPBj#1Q&Fab+hi2H)MtFBOBi6V1)=l%a(?oO997Cv z5+@->e(Ev6ZPSl)9AnkgYC?bY*cTBj<6_e!zauo?9tKAWOCwmN|IQGF55=Wi+2q-{ zKe~pX-yYvA5FWF^9RfSyy^bd+;cYiT8Y`X~!Fl$1xm#DA$qb=dD2J%?N70HzFBV9t z=c8s%omnny;OH7P$X3&bG7fKD#VwTu%}!R6+@|OA^Ko}}^G8TFm!ZCSctT*+9y;!0 zcE;T+9ywE+B9e+B-{UMcuodZTg+9OqwR%5cS20)`f;uR%-1rm2Vc@1y zNqa|NMdj~QgV90rmFzj>E0D(Fn$Iq-RIwSawxy%Z_u^%$B*FKN(r%2FN(=;fu^`sQ ztXdW*Ch(n3{@Umk3Jrdx#iBzlaLn$>`ymbpWv!$mC*v)XvM@e6Nvdtwo)Jd zPfd-{hjv}fCwKI!jpXLOP=^>5l3NYQNAirX)W?z7*4}S-sy=PW*V}K~ypXOfYGq=(kV%1M@6u zT`66}4R|GTdkB$#pHHmW77C_>f093AI1pdghvI5ovBLg1X*AL(`mtPcDTqFPLATA7 zwY@o13oT2^5FL?*!om!jZi1hcpE((V+Qf) zE2+lE6zbBGu?8O|QIo1(HVfzmJ}(KUzHTrvB+9L6IA7D8MPCvvD#f3R1UBODwTq=< z((~#oowo$>o%@o`#b+oWAtmd)iL^P zYm#PYD*5mYE>DxJS7wJeMv{eW^5-^=tMAyne@MizdR0A3WP| z9tKT;>)x|QYtsD+5QNW?H&?|GuegwPd8dGjDbjAjA!w5jg(G0U1UtA+04e`B#$OtBqd|0q;R@*D3(@i?uiEaWzYjbGA^Q+? z_#A6}2KNpF3xh$5@8OBlc|HPvM@p8&MB|iW-&O@uBzt-X~p zKbJ4_5b#qJ9G2aAsITQJ&C|C+vpb>R7ynMhxh{sZf!xMU!sfqaph`7QbI{!5DJ7Fo zU~<>@+B&aV2^TKxbGx*VQB)Kja=FxR_PlGVzSptXp~Ws6K|&1Chkv755Vfu|aKN8y z^kX*9D)%&@Q4SGsQ?-jOd%xC!%<_WxM0dyO&}N=)Qw2w~s(~YRkMg5m6X`n|j4yk~ zSss$C>3vO~yvq@o8WA}sL|eYJDv~x=mt~n>fQW%C%8d(n4Zt#nY^eh!Q}vLUkb_)l zB-Uh&9iP1UxGB$C%GiL=qx5+ge{&zf>$8ZPImfSeQjxH}d?gP;F`T8&X`zM@7U%SVb_tg1k-;`{ho5BrW3A;mWEKKa|l zPq#NgtwED9s2r=UBez-%^R95(D^lyeib#s-&Q%5A&Ov#Q68w_#8`oYHM)BB79FnB7 zCQ45&c=H>6d{Nnq#Bk=l!DZ`O82FOYD=VbYIiEI)YNd)oF2SwpoT-(OUlD?%<(-BW z*SXgvHJt?&h`*}kB6 zgu;i7B~VdbkD7I{1g{v(u@Je~wP-VN<4Y)olLBSN8ZKMo#>@X=oEVWyJKs?67Csx@M75;0vq2;Oz%d&C zBm8;613J>I+v=VV`{Ol+ZDC|90zbi|$BIR0BiyaYsYL#{#m18;z8`f{_cu4f{6|jT zV&1rPj;JwowQJP+2F$6c5RgvpZ=;ww`oQqGJ*->HPcQR53Mi^CSRjj_j4lY%BUazu z&PQMsy`YFnZqq$dXfeo%B1ZE>l&*fX@jJuei{}W>=Y> zngrCiZ)>1DgACu<{o?D#a5cp7ODtxh7sP8cH;&C?;SUDq`pH|FmQo%A0$W5H5@%z+=b zkb*Qk1GP%~0iA#Bi)bjB@>iQ2&=7*e zk;kyX`mHW?A&~uBU(nEViJ%|bLHGfBV-9U(cGGzQ*9(P{;T?RFROzh^-KfLdYSfEp ziNz!Yd#;xiJ{+rjqoYZvIXiCUSx|g{gBDoo%k5Cl6OPm3E&4bMY0JB^jC_Mov-~AV zM!_XIKMP}ykY_{`eKf3YZKGTsgrUSmtW^gDl@-ql$I$@djr$tfI7Wm2`G;eeogNaeiD_6)+$eD?FbFa{(pbsH9A%E zwtG(kSntmphO3V1B#?3;S(Q{%skEm)6Li=C1NcH`I_-Ql%D%+xXC-&w%THEvp`boz zU`bwY>A&f7v4<`?#H{dh1}dDr^X2Bxx*cQJfuY47xYorY`JDp2?x^^EycLxCx_XRZMBcPqQP&b&#EM zgm~Wp|8Q}cgD)Xir`O@PP^fm1I``(<1&Tm; zN!PR@Vy(Jr998`jd2XTVN~H*qMBl8!Kj`G3gvSqdLQneSU`ED(nlneQ)FpjE)^7ky z+94m@0@S=?=68s%XBpL_@HL1xv3rs*TH@%12|sgNebPWRr}ia@cOys=!l{bQN|qsO z;scA)@1bEp55l5-$Yvh=h>d+iRW~@JHW^iAv)g74c8Iz0HuT@1o5$}+QVN!V3uVl38_2q5W3>sY#%Ph6?AN?g( z-tR!@F$-CI|G;Cz*qTE_8(Eg;vzz0~g_n2UxI6%&YnTex{{%vE{tqA|6BFD2<=JKA zU}9nUA3;b?R!*k>PY^QZ30whBswE8e;5TtA;`McP-xl<5P`K-#4-A^%2ZBV||PtN0%GsUYpv#Xz`+vNtMHq6uS)zKyz!GLtu!R=>?>BcCugwWMsr9 zW@MlT1_{9*+Q5I#FoA?Z%+5iZm`{ArgEETeCq8^+wkAGw=kUOd4c3i8JC`{dXEp&(nh1qLBbp_mx!!AEg9wSjE6nKQ98 zK~=6~1O$F4Nc5o0o&L48+_cECsj1kx(c#Fs={cQ*FoInOrymLuC?_DUT0ps1KL{8` zjIGx{nUO>RXpvSx4p3RKp269H%?Sd01G`LwnqRfh5guJdJ&Sys`@bp3^>1U^mv~^_ zU4C;=14ENH`&NJl03FKYqopA+GBPK&E3pc4bQ#Y8q8A_mC#d;B97?4Fvx@_eUyxEml3q!Cqf3$wam;f^8Ur4T*)nr!(EVM3_$$Y2TFe) zt8+ecKyXG@bZiznkP8sdmMm@hH%!g3A>yZZ(oxNkJ2;=-v)eOJgFCVSVFLE;7hzCZ zQsOV9-OE#u$Gi8J;s53!sYeH~4d7TH*GN7izq{dBKEikCcaRSeW)1yrcrkz;^!))} z#V^}G9Axt{f&V0+Tb}~l6B>DJ#sxt2eUn>Sn#0{29SGjrJKhIpV7O-l?9k4+wqBv)YM2^QUq9k_S})m~&VF0l3qHw!BwBfEWEUb<#3|*ABme zj{wdUfUA2z%>W?k98peQsxi-3nEJB1nyZC=tCQ$JNb#vhU)K? zQq5qSKq)u5{GRPpcY3p9K*I~4K84!NP56Sh{&$1v;Uk~Tw7>p=KAaC>2|#y*Qu_ym z?D;Pg(%|sa;xO>m@9Aa`_}0jiP(eBWV z;hVQZz^pf4DF0)w{9VuBSFZfoPeb|pr=jxw(^%pkL@-eL*|)y*vyTqP|CG05nb2#d z`b&S`bLRUEu}j_dF?{9gHLO?`*n{FwsiEPfQf>Gvqz_c9G-qyqZg1J!;? z=rTZb`Q^Pb)+R<4usHcvJ@#Hh@O^Oqd-E8vo1a;x8PNZNR$IO0$ii~%Z+{0PQaJ|FIBajgaHpd zw_E*3`mcHc7e8CFHwaC9Ylgn`Uw=;@Aa+AOgMFX)0aoy`S~)vRm02}8qGiw# zNG6iuT$sHxq3kVy2E3eo>81N08M{=B(hs_s;1)W4ojFhMqyff*Gonp1O*cGX)q%Id zq0*+!<|w!^*N$unlkvCyGY1hW(r$_HXK)EuQ}BfPECN2-3h|>33+F2G-N&UsG7qm> z)|e3YoThW+9sfKvrH%YeBU;2PoTP%&lf|0v33i03#%uJzecU1qtY6b}q`3BgnV8r2 z6p~%~tPhtm0^u%yVO0aNY*HP$Bj!K^YOsD#zB(Q191#ag|8G45y1eRRLJ{a(8w{j8 zzL~ajCF3@FF!#K&jto7TbP1}%m@Y(kS9HW8+uA&tQj4s3jLWoJ(f3%A-`b2IiezCj zp0B4o!w7ciV|HI8f=_!Y6+s#5T|PQCGbDyFB>He-g1!mEX#i``ppoJ3mP*jPf(4mW zOFtcbkx3`(9K5hsz0*d;Pl>SC|BO9-_?h)XGTT?=!@@IM@hu@B8*|TkRmwJHm#kAB zJ`KBuZmAVeMclb?v72SkvaqRSY4}@y>wU{4lS!3H)V{!vW&f}x461xQz9RvF(<=Se z*@?Xn8jYB>b}t`R)_Sr5f$zOfi1XWz9296d8_0@G(e?CI7=am)YSMdm!!I5Kv+j=+ zG5wMa|2rcEK+ImGP{0Z^D&!7)+zj0Nw@zw*LfRv0I<$Z=r1hbSC}t$SHg~&}7hO~} z#sID-sK68n&c8|_OZ7RtOLHy7;w4k_; zKOp5q&6kpzg-Yd>=T*=3O{Su^nt^`B?8zdZhde6jGl0Im{Doy*jp&g@^g8GVPB9kz zkj3f@?h`Cx;&#+bK$QbC{14%J*ieu`s>H6eHt^-~iX=C0w9neo{I(BJPsX+zLd}}J zOG=^Q!yp!QxiEq3-ZL_~hjKQa|GuK`(Oy}QjJ`b{XVBw=4@X>U-blaAZ}a-fewd+# zF&T>zHIw-{1bu# zQL^anxr&85Hlt9Is9D4NU6l0~RyD2;^=N@&mPnu0e0As@r5wiWA$+W@KI9h!*f_mt2#{i!4p^A_vxZ>v&>Hpb1`KO~ zP#bCXx&tdkZ!xitAyemOoWt{0%}}VbpK41zN?KVa+>ftqA8a!&Ahm`HEF;i_ zYD`2|D>n1eZ(7eFan9Kl++uOsH@TeI8QhZMC|$|zFJpzrKl_^z$|8CIK63T6Av`OAFe=5IV4amx^vUxbiZ9Y>C@IIE=sw#c=W8Maf5Xy4>p+ri;ds>x$z zR5QNCD_G=jK35|Tnl2AzLZsaeYl+cEFp;Cj5fh(V;dCHP@~{YOTo3E= z<0@(W@oTQB)*fY7`0HkQnDZMV-CS%*Y(%+l*A>dPK09(7J$Cv8X)sy3ElESiP0^^D zgLJ1DIc+UB3fGI{J@IG@UK184PKZXKaI=s6vkf!<5#gaCKo+=5RRXH?i8{lRA!Jih zOjXPgWwXP~9z4`Ec6g)XKym*G;h~PT>?A0Hv7yKaVcggpAxdH@kJ;BDE4v8!m84!} z;Xyb51H&!P5mpu-VaPY|A!P(qx0b+gISR{a{!KH;85?Ij`t(IUf^*S8C4rG*$+0l53{eu8=F#-2}#Sj$!`aAM5pF&?9;7n}LDy$28$&ufO6d zKlbj-T^`bv+c^E^E&Ck|!JMhCjt$u{6hgq*k{Ic|Dx%+NixmRSVOy6l+V2!BWwfC^ z7?0r2e83MiDO)%bGH^^O3ucQxYS1+DQuA#kcBdUXkg&H&;H2M%SYcVU5|+1F6Pmwo zjyDpO*X}Wq1%^9vK|Ve22}C7&!`8v+-1aqU*6>%;vlXq7zN)c6Geja*{#MaG8h%mR zs}(&Bcm7A>*`bjcq`i7K1Fgdl3?i23vJ5?PyZM%1Hyts|~ETd*aOLK+cO00w^-U#eR6 z%2t08eozj>v{te6i{F9-Npwgj*b0IW{Aj)oEAgNY9fJ}g@zc%0vD_+;#BZWO$SpIC zpRsp^o$P}@F4+NEeqHf3G<8!Kbg>pU)P`GeA06A-4QKMeHPbssI261GchKK8 zOuP(u{N4+O_S=`LF53sv@QUpfs^{Qxj{5fwOZmbov2X8z=bVbAh}*qOl@T|Yv%*M? z!`CzDX_S({Lh=vb>nTAP395=;rW7&r4}}vdyP_J}@OM1W2)$TNBnHaIU{m{oXd?9` zWCQ$tWEk(Kgb7F3JyADSSUQup#o5RqtZ?ZAn9qwbd$Jm&jTX3}zLw)gK2#GBB!t>4 z{Zw{r5bFh1WDGA^={bn{5>plhVT4z`<01T~&<$7kv0r}6U zTYh48LlZbz`hgd_cHQ@S}5eSOXii)}8EWIJ^7%A?o z##KAq&WeX}WQpyz4x@^LbxCW8+wpna??8`pkA?OVHbg39L70|RFjB(mkSUBIgOlcV zeS+ZulXt#S_w4`SY34nsdCIO3gc;EoB;>A zM17?uPLZh{7vi#hpI=bHO1zTPP|%h^D^j#FK1QU5Dl2maxed-JKL%PQ!LA9u6vG{P z$!~BIi_?Brp}*guU?_jBLQ`2-U+^=S%vbUpP#&||-GFj{nUkl{aOMVd>hED4-XVY2 zwU&*`je)2Pbmk({+d0ZF`{=HaBBCL#Wa%8H+#pgDho-j7J!fF7OShm$3bg}^(=K_s^%RJ@82VzzzS~Bm)Y>232U__?D7nI_3WJxB9S9f zDB7=o?0T+>BX@FwhZW9N{766kmHZi^Ti5G*>ybEvz2Xo4*y+}gke@yoQ?dka!^)KE zNQFDY!&op(NG%C~Xvj_7kg_Z2KBJ3wyXdFza;tpAy zTe8E>@`vjMgDzh5a1=@XS{mprRkV-X!|fxV$-dQ#SkTlS^5a$ME?`ID{?;v^Ok7D- zb#1+UrNEa>Q$CE`q5}Lb@T-M=!DHu%A@7)v!IXj%|G}*7VL?MZvd4F!!!MTRvx5T!MYGZDx+j(q9+#A^sVKF(LH zIr?y)-xuHce?96%&V+V$<+EBrE#RKJ5d>*WK(0T@e~ zNwI&s>A83#Vj-^BZnw%khpX)GPmdstb&|*Cy@!_iT0Vyq)I=gwxZlq4&x#aWnx08l zX(yJxwY_KR=GqSJ!Mi7Waj~jB1gZ5K=bGaf{ATleAjS5v6Tu=a*;u(VR?-1Mo@(-l zY(n0j=aqchelQsT!+0x%PaMb+H9g=2IHH!;S!mwk0gI3PWiIudvMcy!xW}Xd&*0qL zbc}4+FKw;*OK6No>{EBxhF@@hCyRL|`c6k|!Qe&C-B+x#^+I})|3Fu7^?fSM0PW5* zvXhO6o()YjQVQVN#KTXjeZO0!hu%Ano)#GIEiKRdD3*<-pTA{^{Pg>m#FqK@i)JtF zkq7Gr;DRfY+lKu>sMpQ;#F61-n@?L-Iy+kfu|&`JJ~rw(D0-8tBz$SoiE^Rb0s*6Q z;kD3u)4`EX1U^|YN)gJmDzxN_b0!tfJuAz|XuZ;5OGpgy{aOAeS4z`kq|nZ!J^YKg zDKae{DSLyA`ts=r4~DDN*K@*g>vSOF!a6*MwkR_z4`;cmV`C?+TGX%1AqIs~m>0uz zu|)AWNExL~s6!N(a#8Evk30 z0gNTM2HW=6Ms1r5G8eLzNIAo`CPnZPkut$+ATI*pxQNx8!U#L|N#i$#ajbKkRx1-l zhx=&K$UtuV5=t8BmBU2g#EQJ=A_N<1fl?iIc84ZEhtEVVBfHE>222UdB}YOlq%KJ< zCn1d;g?z%%^?>S$`K8~vk*N`+#+=j&v2Q-68kC@0{7pOxS_+PGi~@Sb-95jk(ou~> zJG0vm6Gpzmo~hI3NJIjo2d1cMdy3&bKkL%Gw^evr7g8MgF^dPzbo!m=V*CgU&VltJ zWkE}`YZbJT8$7k1Q@Op9fsz%Jdh|IjI42b10f-XII56s--`~oUup3z^4$hbd0vT}= z4DIT?6at}WZgGLv!e#n21XKo&M}F99 zuV7Ed?vyAFJGL1{z#R6<8xc+C#GIi#w%r`$}U5 zsU(Bw0Qbw$`p#Dj?!fSKda^9tOUbISB^C~Zu-!EQG6s~rs=z)P)@8|l=!0ftU0W9M zpn|(`euGs{yl|5yr>(fKl+0He((LKtT0TC^-COh|Z?@MmrC>%&|N7r|EMBM2(m4RM z+gN)tf+SQEL6Fj_B9yjVDw@9icVJav1V#m=!YQ=$NcqK5i?I z9#=YaYGEuQd_T)_yPh7`*F19Te?Bi$7T3ec>hl%m_N7iHef>Q1qMnV((UU1l3O>Uj zuJ(F`07^@D!E+=DwU(f_Jm;_W)51|Ua~IogPtoE?fm^^|IMN!52P!_ z=OKR$bcl(|K;xNmmXl>jJszKer!eRXKg3YhTdcYAcr_99%7UWyiIE2+qFg9jPa(Nf zSY^Rbq|ZU&-Kz2jTU|z{_Yd3y1Oud28RlYgb8!f>OHZVwlSz4TM3dGSWM2;RVR^8U zME&J0JG272{SMh?DpzWTZ;xz0;kNo2svS9%>NGT>kFVrT5x{*{sNR@Q16pn|itmqp zbSXhbWK~oSo-o4Ay|y$_O*bVgt$(o7(K{jSIY07AYzXK}faX04Iio$n!f5bdMn3BD zIZZ!0fqDHVu1Ejw*}nZNP5%?`iM)-LDi^^J7??U`6#@FLe@PbPF=vCt&V8?0P<+Hg z2cEFaK%EOvr=|}jg2j(ftJ-`wT=+b1Z@<(^S!zZBU8DV2`LQe7NNvQJ8+=#3xl+c* zp3vTJ=tJ8P9UVatHt0Zgr%ToHQJ7~TL-(gS#ue9UnoRiPncxC;rXW5<=x5}oQ6usA z^s}YfhPhZ_&n2iVhdI`%rH9(+)ULTS9xshMs~%QEhTDO$zA=ZhAL zTJ6YQvvptzdP)o@RxPdBLTEW(a#T-G0w(QA{X;t0q+nnXRTYq1l$Bj_YaVoYeKYTk zklp;`UQUO|zT?En@QF}$n~R*^bbL@U$p;%RPoE_dv9^Bpm(YqmjfTtNBeV;C^*Z2c zjg;iSYvgf^VrPqynzdoonW3pT;npIoxr#L)e{eva!4chHO&L0+bo8a-Sq9wgIx8H= z>#BeF5UR5?{LEkc((){nbX*ZU%O?G8;9`_2MoyH>$6w*a@_?8eBxz=@-1|%G!jc>?bw(|m-F zF}ibDPZC{gT;L}uR1lUg(eQa*lux4JrgFAg93-~-Pi4uigrNzoYk`s~&|7|;&`?_m4I=@>KvoDylCt6i5K1O`6m}T9tI4V`gE-6^9!!G#{=^B zUX@dx?yp#EeY=<&@-3LINjqC(wPQDx@EX`YB)b#($S=hkmT;Y&AsK!Y85w!^_+kT0 zx^Uj|Zm!FzoZ6PPegUTB%klKdM9r0vG+6k7Y)Sj}5{kk%Dec;!L3V5wC4x1uzqj(l zueQ8Zbv*sp41A?&(r)PbAkf)@w#N@K5<^>bovXU%{5vIxAj!TS-qeEbdtpd$8g&!g zQ+RL`rQJN5=lMNjh0=dXLEU@6-{oD|bMF^up7wNTS5|w29|eePYtSf02W_v}<T|DwtkLH^bv+DbOwCs>GcrjQpiSS zqw8?co=(sru_OWz#%lP=W6`1qOS(OgfzfLb*_tmF((uNDPP=@3WN3=C)`e1wugr0N z>dNFmPB|(Y*{~C>)&7uBCMm-1tINW4n29$;t)0(&5Ro?CtN=RLQ+5+}Gg-JY!;eguF{Bf%96vvo71srnADi@D;(CLPUdZID|)S?nBqQ z3KE2*f3p4Z!c*rP=r=(yy7GCL49!e|@7R_5ypn=qS-|DSEo!1%hFYWcI zC>M42zV_BPcoFnAs3Xh^YXON=ejRWKj$R?vKl|O@K-}Q&Y2|6avvI^W_mE>V|03Qh(M5CZ?Y$ z`g(QS4riT9hY?!IHcL%J30%QwxzQzV8l+^7hh;pFd^rPF`(ng4g;)1{KLgW;<65VU zM4Ro-X^0_&rGe2k5N$G(zmpMYBVmH{o28;fl2UQIuL&#tj472Z1Z&ZR`4y9^%s6u5 zpX_J?M;Tz}o_BO~M#kD@b@bNE_zDL(e84a+$k!HD#ybrp^#`yL!H$fu4NjLgzEupu zo^Lz}CP~La39+(9!-{oqPbD&9?*buItC$EgIh3-b>LZVVv-~qmESQGgJi!@?OYEYY zn;F~-ekv(0erH8Wt%&+DbqRhnbze&!j5_JJ}Ttn3%95JH&hZ@kc+R z@cX=&t0abg_Vf(D#t-L<5hzxC!w|li#BgkXzLLsIf#jzjeohA4!da)Gmn^*dMDQvx z8bfKTgq_3U(_0N|Q4r-mO+#5p9LmFbzdhfJ(VzBYqNpTlY9Ha0f1~Qk&9(o$Uq%Mu zE&pRHLUYl?DCn~t%r}*YbNA0$;?!puKfLAGpms`LcON9iZljfcF0Qslhwrl;%c3^f z?hjZh4|1maF)racU`o?M7@A5Otei3O&4oPH<*Hmc-WRjsER8*8lYq{ARyDJI@Rv4Q zxtP{fhdxx$i7_r{NkS4@*7kv2+OTtMqk06a4Vx+BeVB6w&aGPyjTNN9CIFdU1B9Zf zo-PG)69`^-r{egiAr1D(sqJ-s1li81jr&TwwT6lFyKR1_mkS~NOmK0Kq_A1F+>_QN zt5ia@ePH8j!Kx0wClW*Y;N6bmSw1_@7`Neoykj@JovoGt_{i(x?@bmEy42o=K$JEe zm8y?4o_E?^Z}~yb3Fm@mpl4h(m~E$!Ne1URA@y=`BE0KR+8_*X;j>JWZY>(xGb(o? zPmuE)+{>jivRS6U>hlAxR!tO5%?m}!!49YLM1hY1N%wIw+MU^ za?@JIb)V$i$|B|(bv{<)fE`(uSlq(5L9x<5z)V7rJ=H@wTX5wEcwHwKjVhfwl8*l=@ zg|8+@L8uS=#Gk;pcg*!MhhWU&*C~v-X|-?DdNk<7kJPq{tS6lDfRgK^3#Avjf-AT0 zdm=wb*J|taTpPSq1b)cmOEEtO}eO`@D$we?Wt;12h&rHyznLA;JxOg(; zrTxmB>9(Gvd@!mA8znfq&iJ^@M|5+cGUatpAQw(R;Bcnr8&ul?r3#5ZgTPVKgptR} z=zgw;Hao}0Xo9OL`a@niGf_&DCF+`Ws|L(pGYQDcq|<&PMH^Gy6rF69?>SZWRxqIb zvqc7z%v>|h2#c$$*h7-Xnmo7*+93Eds}#jzbl-NF&~s*_1XhgkdZ0oyh!qyk1&=s1 zD6;LE!1J(0pEp&6FZoP_PjF^G=>m9^YnXbN@}9V_Nr&GYyTqrj zJaO3}tp#bJuxG0@;w<~m?cP=zBCwW2^Z$W=)VqJ{wldi zKcXU>`9zi4udZYlO zt<3KMCp7^tH*|yGWo}mH{u{ed!uvKFDE0vqPq=XD38lB}Gd`KLPl#ki46MP73rJ&YXEK82a8y^lWroe1@ut-{~W8)dGQs~$DQ(qLnuTavjeyAUx>FF7#U~fa% zJ%g#MXU6Zyu%T$17Hjg+iuA-6%!rJmc-yC+>+gl|BNg;;+)lm_$35VI@pb3(AS*CK zV3={^qlO}?0J7M^eE6Xy4e}1C7ABd`#ix!N! z>3XQaaun^bzfIie=zMM&r@?1;8oUA~bX?H~g6l7U+)OD*Cn@Z$szT z{$v)CL_|UAG-)-mD+?5%9!i+5pDWI3;z{gbejsaumddyg%--gPbqTIpoVxM6b1_}* zcaKGz2^i4AGaSoaa!AHVSBIqWb6c}k$zDb16eflm)+#plCNHlXfI6Zo-DQ(Vxd zwHVZtX%h#fW95Bde{&h1+_^t50_sr1>UsOY;t#WK{Ger4%dX3|#qbU2O+|_79?w>@ zDORiv^SDX2V%vE3eVC&@jgLHST4Ge0DpK)<@0<)Fq6sEV%#Qz=PLERzzXAidedDQC zSFb_#jsIhD6R9rA7F?WpAv!|u&iYGhWkAA`a0KCylzG+8^I3byaVD*~qlIkPU}PH= z_t)yL=JVy>C8+p2d^=f%#wKIh@%^DE*3~s`G6VoEMg%b)W1~Xfh<(O$yjR1~&kXZ% ze=(Ab=5*`b3{Mg-c~tg2Vf^f$#(s4*qsD+%-svBmPd0FJ>nxL|(g~4Nogm_+UAxZc z!u-Ia#LKp0&uRPX?HBKOVtoQs(7q8g-Ht$jHnvGhPl?d{wY;DC)CP`W^;O&D?A~wE zD5^OWp)Qbp76yWd`6Xn?GZ+?f#S3`*y*W%%S0gR6Jx356$ZP{?+M!|1{XUJs zNF3-}4jwPjgU$;+{+w&UXaY4_mMDNMKf>tPhc6B4LD-@IJ5#BXQc~qHE@hzJ?^Nca zV#Z{{hN+u`{ME?Ha}!D%ndsj{OCZhnnz1eS;GU!KHWZ31)JhfI|2dR1OHQ|Z_w>#L zBUJ#}-_EKEO@zZ*kAH`vM~R_tGtynXA_{zfvz)&-l{0yAyVNv_Hb^>BV?=kmuaNw@ z(>&)@F5d8z6H>yneyS~Wl^CLg&Lx9Kv0FM4zDlF-CTSGS1I<5BK@`D1khj~-k>IE!q|2L&Oz+O^RQGzbCvS^_;HX#R5bGH*tj3yizmOdW z=v3*CAm-;@(lYs5e_n6MSH-O}G)HGhUk1+u>rn}uN*467)nL}iWx^z1E5F3$ucO6| zB+_dEf~y?`x5Va6tn*%VCib?fgKKxosF{Ii^1;Qy_q?VqzH{%VMZw;EbLx`z8XMo$ zw3kW$hz#Y!Y$(;Z7PSZ0_!!BnUP;CbI*~JQTs=PV&^n!ZLpvK3C@OEYil_PhLp5jE z&f9cW+oaEJmpM1HBG)n>d{x^KkCOPQs1M7}V!TUsC#NmUeKK1sxPER596R4^Ro3W5 zAy&WH8yEEPJ0pwGXTOfRFI_8q0cw=!GUa`l6;l4A&7OmL6g(EArdB$&_colQNuKQk4U026lbqYuOw--e|`_lZY|#3bv>^4&7U&x6GIGIk zCOxA0uA`LPYAd0Nhl%MD{qp!(Ke6wW@x;-;=YuH}E6T1&L~tq$yMl#2jk?nr6K`u* zh|H<463Ys}ekXKk3D%6`!TZw6wVOYTxMB?}jh5B6)(h8_T31X(G4ZJytgZ5=fZ>S> z+10ZSaR&)xEkD?H0hzUN8h4!f;s`J&QwJv3A=DT5{R!REE56tj&43}i`cUvA zM|Yx-Z<$QiLhc-e)F;-EzhJzk$ODsFF(@f8rwJ`jlEioV6qVuenV-(&KX84^!|B=$ ze$-fvyw~?cf*D`GRMLV8V1M-E5w6-Cra96PpLosTlk6RoP@2qjP}2&R;|$fnu^(Ui zQm{U5zc;Ra5mdtP1Do}<*ZS+`Qd;Lc^FxVAQyQ15HXCPE!8K1(*)?Vtvf~2}(be_| zK&N6fzH?5aK}+1xng@4u`SJ;Bv5FEnK|~VBcDn7GRVW z%UdVBlYyKDJjkiEZtSqpWYr4B&!ySBz$iPyGwHJL-16-uuEhr2Wt=^e&4ZC)zke^)&P- zp_6g%A4oG+3xc+poazb@tW6?r0n^WmcR>l0k^mO9kCn6JLpLsv_q$2rAPqh^c8`rI z#PJ?X9&ICUAT@jGVW5%KQwDFO#(tF=5 z;NFIou_0x*$%q9VLWZ;LPun8j!-4NTQH7{bh>Y8;`T8wIwA+4=~aTQP! zeuNE_9@uhoL6B$QgrFgO`21DHm_rVijA4_*RbEyokz+Yw_jO($Np6;zpDsukduF3@ezHE-Ril4GgOYR+t( z1p+Ne6|fg^TPH0y^t!J`>SE2(UEo5w!N1XroA0aW)g^R{hBb`PQl#)PQXl8F(Rt-# zqT_bt-Wo~zn@vb)f*tM|NtL`UEnZEGTC8EJqCVIo-hZN1l6x#x73OE3dps`x{B>%F z6^>l)qi$WAK5tH~bVF!i|BM+|`hmrx6z`5$QJ1S#J1-+o&KW+7lPs|et}CEqhjJy6!hx=>*^{ltW)!dUe5K2Cwl zhqhxByCgAr?g|>VU9^aBTW8y5<87NhfHF$P7{y~HlL4Za^&Z_E`lc#v2(IxYR~{$b zT9+Xjm}m^lWKRiZp!j_ncuZ&0yD=oa&iIF77|IC5 z%N_&Ub(PO7yoJ%ci5%>%K%IJZ(HnujwUlR(jCNn1yb1zg_Y;}2V_}RV+@_^|GT@(% zm3BpR^d}7jY!$X`?LdTm% zv5M` zdDKyl(aT20<+8tb>AtP3|178N#h#`K9O$E4|ICAm4XSm{+CCPIu*h6>x~~+il@Rs8 z4>>NJ4@>)k*f>I#{$hbyO|Qtf)%w$@8I-**Ld#B%dfS4OUfN}2miwyXReXgUiZS#H zf!~yKuJe?w4SLNXYiLeX6}eHa_iXI zPIZJPd+J}{l|Mi2cX^u!r$Vfxv2H>orm3HlfDSwcAD46oSPG<+c2 z0BKDb*Outi$}{Qk{;-n<)u|$LF3HxDx~7|Y$rq{e4XF?~ms`;Awl|#6z8#~jb z+EK0N69PsEr^Q8YMO&UtdxSXYS-@Bt+SDfu^q|fUL=5b_6y-{$lYZ#^f{}r%Cala> zi?D!O9;mwZCJWB*Rk!!5mF4YO6Vn?qUYoA{?W?24t&@7J%6q;yzlTS10-S~StG4Lt z=SxpnuOx+oo=OXg!_i*qD5WSU2U_CY``ZY)J*53^(qHNOb?65nK3Kw2pN!Y{ZH3+J zf;fXQ63jwz`pJA{?fD2#9(jnSB3UnI@tdRK?+gsNJmQfLTwZf{*Rg}pA{?INV^V$E z$648vl?%?!Q}-3BFl1MCGksp=E!LdIw>}l0%9B;O(iMJDEa?d@qy#Kb-f79%9kAPw zcl#f5G&~&L%<= zVO-h3592%gRFlD(-s>AA-0ps+tJdcnK2?2nY0)1{l;Nh*@K zwk#oIO}yBO@Sx*f*JVs|udrtuj|#aflsJ#f92aWMU#z4h159?)_y()WOv=P%*sB9j zxGx+4FGMeGoTls9@g*&O^S0xSFEUG-2|2QSbG5DxGyo6LzNjx5 z_XF6O?n1T#WERqbOJQlD6NOnLEYJ&nLb$lTitMxI#6;v`+x&%e!+Oz><(x)Ae7GJa zzoa-&e6Gw9c?G+Ku$yb%G`UIcye2WET3sZ%yk3jfho5|U^a=uGA2_7V>&k4rWO@*p z$6FI->LHZrF?NP#U~pe@Ha=yd%|fy}+6-CrmW$uX9Ze@i!iDLaJ!aZnRr)#CdZ11g^q zFNPy78f}f$l!t-&Q1+09WEn=rHkFaFoX5kvP00djs*#_Y(lWh<6F*lB z;e^8@G9gi zYSzd@5g~wqHCsS{f#L-(SJaG=iM%#oIwxHJCXv>^Iq^2G(Ou)Dyf7_=m5%K#go3^z z5oG+6fWyy`K`9pVByA$k?_9IKAOSi;OOXX%we3Q}FNWvJ@e8=nwK-MngRR`SQnrfX zD4A`QF1C~1ScUkH+tJXElKNx@*GJCi7=EgBA5ah)i80K2gY?;cgzZ42SJK5up3gIH zJ!+rn0F(xeW~FqKE%&lAXKROHa!6WR8xFR)UNS9-}RMEtzGY11+| zXt$d}0O(=qgPczwpzE3-t7wv5Yd0ytVc8cGdk;C@9u_5`l{$N}@-NtRKOfN(QKKof zeAT9eG)%`DL}quub#dYn)v=P%9^ED+Kg?jrJd+8`o5TpZq?Ck^00GJBwRvIc8@oO} zsIi2Rj7s&V=|keFM(!Ll#XvY{z=;nC9tBVOOHL%U87srl3$^yR7Z@+el&a?Mw_U-ss~3Iv-+SQTbizz7CMqz! zt}f@n9I|S{RIy%}g$Ds;?B1pHEL(>XV~M`bf?Xd}_=GL9lioT*ech$&TMF3Hf9wQ= z^Sa-`N7wc+#JYqgC2+L`^Lc*l0G+kff|#t(MWX3Kr_$D!brX$oR`2ps_pXA}#RMO$ z=g2~P*}nxifyX$;sDAND*e>#UT>793t0Ri8-}?Lz<-JNx{Vh*rFZVea8I_&aUJng5 z4#>4cYqv;6squEDvUclCg2}ATe|4Mt0PhZCf)~Ub!rY^QB$g*$=hjy%6~YURPp^2~ zNI!iE4+Y;NLa=Y%ghtp~Tw;IIy zAvf$*G;OiNtfojQUJ9VO zF%G*!BSPtnCfL%yzIs;OHB2 za7T*>B^U_`{Ezmhe^R7DoATfE&Q1}1d zmdWR3#Esq)>(ite8%4yP5M$|{?FDH-Z6r+SaUJCr&pm>2XuNC{f9l?h0&B?JjygpU z1ftG9D@N=J;RqyY5rm+hu17_fM>^s$zaXcfN4mKDT9!8Y%_nrg&E$?q?B)g){){uU zVKMqBR6Q)T1p|I?3t5~MMX02ApC-bAv;g4|OjOeGLPk8=9H{_9J&S*hnE9nRkR?j= zBQ;%9$Fn*#Sf3S@zvDf4ag}boxDgvUcrU#ds;-l3Cesoa)^!&)CUDn`C!COnOUK`i zZ+-}WK|{}Td4yYzE=@+z>O*pY-h*DJ)T{j0wx5~%KYG-xKE?|SZ-9RGE+refSOmZL z@*hi(C|A|To3Ph_Xy z6cMWhU%Wtdx3N56bkeVp*j8)Lt4K!)KCBai~%K6vn#G($0a|w)_xRcNK&w?&A z{vX`00&8(T$q62~EoaAXP&tNQnbSw`v84IUi1cgD^GD2_8r&&XjAicEIL7S-l#|zL zii8F*M5VTlT5_N0hB@yc2Z$rKDy~-qlWwK)tMa~tP3F`v?SEDdoFBL?6oN@2DTl#! zxlSMzfn~}t07(u#xON%iN67C*$`!7Pbvbs_=k0@uT;zQ(MVb9oE2TW9Di6Dc=3jp<7Dr(Ix`XO!{ zMD@v>UOp>0I%FU0MDX1*nNwy^kr9#84Ng_2$3ut8`A$G`0dXEX9LbpB#FkL+^s&Gs zkG>0`7pH;n=ggOKgoazysX>DQ`Z)=UJ^tn{(POn{f&XVc=q97zCvyzGG97SY94NJt znBjc2Si!Kd7peoEBlLdEBT}2_gX{}wPn^qeq#qtxvynf*Y$)_je9;dJVA;e^`Z$7h zL)`77^hY+{CyOI%$~d_AHV|AHA7zTn=l>hI_okh-KWd<+?MeYPQijZ{R=_gi_G${M zAdN$Tg1L`1VPC^q?LV17H{rx=#vCYCeEW_l*mUIGIZ0g%Uwq<@v{l7#R^={&ecaiBj8Zp!~Br;cR+WeOkOQsPLW&SK{maqBe@% zQa{UIaj6SO1zd(Fz|a6XUrOS5fV2R;M`wn15^@C;!od^f8efldO*mLw^aq@&Z>aRE zrUAFjzGvMw6Mj*iFy9)4E&LJ<7jn{=E|$Np#=H}s=@f$#hSJ$eSQ$35V?rsj&KqL{ z)}kZO{YW;C!I75$OS~HX=$LKT^aN$M7q zGK!6R@hn%K-;IzGVrr5x3DP~5e+{KQnG_Ya5;4u?qySPAn@!DoO}i3{T!@XtPr6pb zQJr4GS)Gzb3y zmje3l3qf7!c#)AoIt7(49fPV|bK->D@-ErIVoOan-FiTzVsFIfH|t z8$8s6yG8ch${wQoRs?Y z#)-p=zOANhRI-d+h zf1O@DGtrUsIANr-ONa5AuW6E`z^8n#z*!L)J11-SbGV8otxTk)oJ%zMjyNf77obE# zC2;{}kv4fblS|Q)BcRn3gaDiZ*=OcLm$Sd5u}cmgf_D<^PZgqRO3cR*p>gYNrww9Z zJXu{HntX0pvCX?qAFLq-@;DLsL{9Z)uzImT;lsr3EA)heDa+42^%`8h0T^U_`Ykmu z`jxv&!`1{nOvOW_<%>>hu|*$V^a!30b0QnxyWwzt4dULNR%N?ISg(rc;YTzdW;-3Z z?J%7n{otm^k@&)_mdH`4+bW5j_fe*hr*!_hkI=JiNwdF`T>@$10>)wg#F{X#BOodl zpG=-5fQoX1bDqv3Gwp|#w^_nBdc&54Sd2mnAZzmH`s4?Vwcks%ZtCWz%xD_X> z*)BKuSv%`buALc(aVoiL7t0Xea?upcOUi<)xJind;TJgGbQjco;RKlb2j^>h{Ge|F ztX0V_6F{G{;V%*9C0VzL6HEc{E6z^j&L+c(-k!^Jv7~c8yP-QmeTbdyRvmV@VNgrW zZWP?A+oI9o|V73FQPpT{o9NlAvAXMw%J{$n~eDe_f{ONTBLe< z&`&BtKx@Q4QmaM+2=5VJqTR*(zVt3DZlB|&zf@e zQf5J7L2Wv6qqT0Kdkc|K^>KsJk9`apcFm1(X+04DOF||25nM!0r$I;un?iADVyx=X zj}S_WfKbio|61W_nK3V&)(B{xuo{SR=8m27U~ z(*i53ApAHF9|Iv7cDgog2iP;gI&+g{O)TOx#5wxP6Q~ykjGaS}CQQ_3%eHOXwr$&X z7rWSH8(p?-+qP{RZ@K=CnD{4V@hv8I8JXLRjJ$czd46WQ?A;(R^_tHDm4X&L*O8Cl zffv^Aaq4Dn;K?td_~@1@@X7= zUwY)qfeh1%k%BB_Ek9$jRZ)YUb!kD(Z(|un{VMTm-)@V%kh<*5nI!4iew9NI*CC27s8&xjBT>r zCxtGVhVKWWNhM)?cDA%^Fah(P+;JrRrq*~vw_!o)PSD4@X2ArwCF2kUss3ifkV~@t zwemRZEY-oml8gx|UXNhBq>PIl<1QrKu&&^>0Kr>ZP8~6yTf|$0%Es7DX(_tJ;-94Y)tgS{cLCfyjB zT+bv3gCcQ6rUrMKtQC$!=3UsigL^Bxs|&}eFpmoZK4s9xYiND(2LAL4l=`525(;=_ zmZ~mg&dZ)lI+w?;(ao%-a*-HS_?b}=(^@j~$y2y0Kuw&VQVXW4bUKW7BN0%kmU0h; zO(d)iDsWD=TFWmgjX&_D7i;B4<+G#lv}X2U`dik^9xAeBn5VCY$ATWIEphklt9gNe z;^R>S=$iiOEPPh@@w&KUmD#ES=+fVWXw|0K%vhH2caVaHzx+V4U$9=U4{|HMOH$ER z)s$YbRZt*Lp5mN&y`M_s!1$;8E{q-+#1@w4N?yd??>cpziAgfTsAod8i5I6qZteQa zOrc3Y+Dx#T|3iSr$^0JzG-eL2|5t#<%*Dq1p8_-%ZZ_usPXSs?E4WgY?jn6OBxM^I zHeO)ozcC3U8rlyLwnx?&2v8h7Zl2FMZK`Hu3M8yT;{Rl>urzYl>r((s$%Mil-eZ9tNI{JB0v}4F5 zueCtbn0eq&;7Kh3JwxSOB0!N2MnI650YRGaL5lI&_$LxOu$V1MIHz7$-kxDFgZ=k^6{=`bIx3d4vXl&p;X)0)W)$^4x{O($K5v z`he&qX_1gFo(<992Hcg(l8A6K!@?jdLxN~43!|#3NLl+p!J0v>K=l7G+z8qB5e5QR zU?BAMCf64%fHYkT)%fr0#BwMh!eSEbfdd6q1t6`a!EuJO&w<}Ha0$r@W9OZK1%IMf zeQE-+?%g&5JJq>-iUK@d2*rrTa>p?=G-44HFpwCLhA@mkK|q0R8YZfg6scJIKuo?Q z^T5}Z@5y%uwn4yJ>U^MIf1P3gX+y&Y3`h0#9=GeX2V~{dRMimO5u&Vr=Xr6PV}~~< z7Y2bMfw+l(nffmfVdgDQ)_d1~sjqt=Ng{^N?uNocnb<#uLD_Ora^ORat;3fQeR+(* z2EP+dVL*Z3)ipLgLOTHm%mC$;rr>W9K5ZB%^a*C;`S&rxeEMYJWdm_Ak_7k>;qFZe zsu60!dJq9!96&rhzO^3q(yJjL1h9|6z|?_l1QM0~82kVE!{NWqIP3xJ1rohx_&W}? z?|XDt(2#=h+WZ;{*!zp}bN0QVoce-RW`gCb_?0lXsHl*#FDxVzzi(iC5Ml4NaQxLk z;PX3EVjJWM!10|@2~_V42KCvznP&Q)i{JUP4FuVXT0JeFLpRDH%q7 zn%o2Va2Z(4EN^onp90!ebF`71ktu3debKLD)>{jeCW{CZX7APj(iD0n9f z_!z!^Wy}mZ47oNu!eg|n`H}t^1nKD2)BGV~+^=CYeL~!w1gSBCUG=vQKNMf;1?z?i z-Dn5;DGvVvzjyjn1UZ!rU-id&1Gd`{O6&dnQOBa?#7s-;JfEHSD&P27^EU_<%A=fv zaWh_-m!TT!p(uJTkvWKgoSaoopx(&+ZHT4qgQ2&vb;D#x&Z1EQS>3KDO@`p!ZLpJQ z{7T;=b$|9)S^lydcH$Y6>b(ous5KptOJDYQ2GVz01@V1i>JO2YEG%QcAV zDv;Tge_c2F);0-MuYifLwu2vhswMZkJfgB%tV*}U^agV*O5)*>@$`shT ze*Jd}_*gM%*gyaITA}o;*jIUp)(tvij$|%V976m!Buv4`nl4?o3T!2851&Mlt)l>mEYGq`}pqCLvS~dn_g+kX+a`H!U%igkFOCl;~$dlx;2S~JH zr+;1FBUy;Pwoj4Vegx{avo;PD_f_?-%4`3hRT@Ck)QO^$0e;`mc!?!-3 zR|dJ4R%#R59)AFjxw)yUTbl$8otR+yNcTd`O@%fh#h`35zVa`Jv~ydGF^J`vay~Fc zX<>VJ98(ZqeR(yI$*ye8ice`GTWQiEuFMB>w|zZV!%-|^96NxW7}95g z%GLCSNLKHlu{V++WU3}*#2|yBv!{YxL}dgp2#ev!k9%736O+8?nT{p3L2oeT z^#|2w^*NK?P>C;$aV@Xe8X0u9>Zau*OzvAsKv zzs?%O5u_r+H4S(0l^aIgaLjmr?=IkN#~K14=U$TibFqd1Yg*fTY|eD&2B2zx`6H>< zzWQ7?CsSRyQpHKost)_aaugdR7zpkTx)Cn4^uXiCP0&J+s6{=SX86w{wf*GP)%{W) zd#F*kh)}Te;x;X?{Or^{>r}fdv!B;B27!(I_5(ECTQi*dB*B)^UFYDH%JB%ep29iL zrh`*Zk5hQ*bQc;JeT03yEpy&4)fL@8b@(!;Z*Sn7aH~7uEL(`$YrqOqi&!>eouK=f z5gj6yG$Xc}FX8HxLT2L-*dQ)WynMyN=~VF0UBIR=|04MjPJ4}VUCj{Ki-g*`SfW8c z>lqv^QR`}G(a`)lbmUrmZIX?OWahcU=W{&AsXnaIkM!JR_WE( zAHfPXul_@h#Qf_;de3G*f&xL9RM<~9%1%wtNBW=0|I#3nWk4+86kY^4A$`8A=SI?Q z;5$k-rb-6R{`qwGreC|YtdIDFtF%-+(FoJO^R;utlQXdKZ@knmiaJE-2X>{y-y9=y zTcPo3QDT1b+XKD>nOc@$yHzy5z-njfl7l|&$KCzW6pk&?OZ;R@1DJ?&Qxc7n`&{4| z0{Qjz^WUyk65>?qaI6pl2H+dI7i8;d3kyCdWa>J?@6<^~>r$pmhz7jKfP9le5Cp(P6| zy56Hawm5PS85uCHAx2W=nlE3>grq3>eX9_Tt45{96XCcZMga`7!A|F{SGKV}vnq=X zu|no`@qV!7RucvZ%D_BHMik9K^8+v_ww3656J4eA9{>PP*|F1EGnf8?-}O1T=3X53 zHA38ETNAP@bJ=7gS}|?Enoqdt`BDB>0nHtBnW_^(C*YSqIZeapFsj3lzkOV*5K{IeD#t2#9{h7Cw$2xq zBz}MIJt_!GNRum!8cTv*co9kt`~Ng}z)4v>CRAYVgV%{%;=ZjYn(G53>zt2k30HPn zLSX^uW|R)k2cdhZeVy)TQ2$Uf-;wx4X2j*~*?L_^+^hWI)o{X;X%98W%k`{2gqKq4 z2uMvCd}=WgfI;8S(yHdpysbg86?$@Wv^y__veg z9LbYolQuz1v94lTL|LcHJpy$P>rpm5$|#K9vObbzs)^7A4zLY;RVWe^$TJr1}?^q@C^9Ga}=n-J*JGtB^OqgA_j15 z!sAS+>8eDnf3@Z&E$~K1V!i!7+aPSXk|4%DTORs=cv_Uj(0|_8wtRYL_+GT7wnJi- zBIzn{;Q+>A5l!T>nRZx-yH{I!;8ABGBwz1nE>>OiuuiSij}HQXNuErkv{Q`9VtDba z*U5JaAQC!naVjRSre=D$v>h^X_sqQ>c5q4Y5q44>xIODb$LQIIx76@ON`T*dMfa;6$(`` z+}~pZ7Q?|u!~yodb2TP=Jw|!flGJ9+ST}C3)sG0|>Wwu>&-Iy~h*_@^Ri}JA(6OO! z_6nW>TVW2qT2Xp3eh2A%kV{3yh+-`Su*tPb368IR69rh|-qz_|g0R!UvedocyfQO4 zX~Ts|Wae$E4ZAn&!IKnV`L$Ks_?VMb+E~7D4eiQ+BZPRw=>Y)0XE8vDwuwwqAPTSn zlol!bkZ8GoV0>yJy7SkjVhQRzl+>E-cq~%#St4&pIyp(PUi{%-GDr&iH&@qA>VCr- zs$mc|Dvga={kR|snzo!s)O@e9ANk2m4Dd{yPoV+D! zTXg;;1qvb4V#)rLX%&C83gb~9nh)c3Tut>2%31{rQDk}Wi1ewFR7ED7D#R5S_O`;7qZh#$u5(uD6#a-h_SvFKgjPj2j9j}5x`$0HE#VfM zed(Mtg^0Epiv>7|Uog2KnpQtO^HW5?3tl|H6F#I-ms8QkgOLVf&5~c9CraW3g=F_@ z;N~iSpt|qB;0GD>#qLZy(WD;b%7xf@~-@1FxvQ2CQ#lMxW~ zZK)^>(hw=)e$r)3kZBZbH%_FL+wqb0DxxOnVQDaVq2`4QIm74m{IwZr8N}mQfKqLt zWj1=lelnOm9-j<^%qwsp(&S@h5Mu~H61NFd;uE$45=BC$nL$NrZQ$q^3jCc!KpUAl zkH5u4Meq1SeEOV9+XL$tf9isAfnb|`4gM*zRE86P~#XWCxoP%sVd=(`ehUDT44}3 zA$c$QS1OpY{3TreSW^`lu;k)~VZE*~rvG{i+}|3fnaVsz@6(R^zFbZgv?XltS1k8{ z$A2d~A{tlo<3`4IYgl6yhs|pJD1JfM;VazdvY$LZLFmrfowiLMIp(uICYgs{9+{nJ z&x|NtyyQPVj2xF6+0M+26_vw3aanV>!Z<{bQu^kr)TeK;XL{N?9big@N>G@MU3zj2Z1 zfNcQe&98)XKa6^mhx?h6@~*LSS!ZaeV@Q2EVoH(ra#7;&r*Mw|b^?Pt=B0^%y~``I zW9F+oqY&?5{>ngSX%;%ddbDInqc1k}s-_HcMeI}Tc*SSOwLx0pTqe8}je555M-z6S zB{1qSLJT=AMr+$(6>J<}9KVll*Fc1)*J3`E9xhm%q_Hxe3FVvg>$;Ug7hDwV6&^4r@+g2&v@Z&}BKi)goD&n7G}=4Sp>Y?#=b ztC#5G=aOGOg0-L@j6l3QPlFkq+u?%=uO!L%DtogG{#%vu*R1+SzQ3kkmTeDqwhq{E zOO1d?x5`}DKAYdnKI*3amF5u>6^2A%A2`p}cX;!DnMWas;0b=@S8NO4e{9|5`gMQj zXz^11eh#ly@e>hflkhhV>l%LQuL6t0#_%>2BSY913+K3bAXMh6r&64QKiV10rAm(i znX-+t>YPe)iPh{u>_`n~@BFbkXJz+$ed0jye^EBIDwJAYph&hZZ}w$Bsw731SrW-d zkf{U=g(N;;i}3UX?MGUgz4{-qdIV-mJ8AVD?o=s=>M;d0R@z zYHEK}TbyyWG|w}Yf5*%&i~{__l%1UqeG0;&eZ4TLAL9SkI!%ioqxh(O2rL+94A^DO zNv7<4PwKAbf&&9?!O)%<5A9r{7Af~Qb4Lko)15G3p3D(olME2+2<(*Hqdio+)%6w* z2CuZ(h-$?swnh2s4F`w{Gxg%vRK+Z5w%=a6%fYcNktL5j5^Y`-aSQ-B^eFbASBgur zV(1g&vs;BBqn#$!Or}qoVXND%-wnYl9WE1%Q*xbPHLvC_ie8r`b}_><&D&5xnsx38 z-CE|Yt)WNeJH!jaO3tn|wnPdxIwv_3U2SFjg>^aEZ!I#HlJlqSS^cK~+`ea0ed}TD z-J=r=U%K815$d!%-~oYa;D|r`Y`6uIZH(>C&=-Cp;rnW;)iRo@ONI3t+VFoHRy{^K z$>LT^7Vq!O$nLB}sHyOKATxlh4|9m%yjrbyEMs;??-`%4ar8h_MRJy6=F#*p(R2m_ z$zM{}BxRdol!n(d?FvNKZDvQ$%@{f=|L70pP^imGRTo5OQl@9SQ2_5n>v|H5{&UK8 zt{*mt)TXPSN1izg5ATmGSKwsBoIWg)rX8Z;n`{J19y~Ts26tA>TGci^@oKJBhD>7V zUadS^B!FzT*=Lv)<6a3c*3bAahMKZ1i)0xQBZhds^0O5BvZ>i8_Y6+WUuoV}LW??3Ls}Ce_eOSEZ!=hENcOLZL<5h&M(cM%%bH5Rbx1K_80}ok4KBz8mED+ zj-Rfp(zDGFARnx07do!MKi(roo{voKLXAyI&q7xrU`ButIMn+j_z7)Zb5p!8kh$yU z4BXT5P|)OrhoNtG{!O9sF;0u@C%Bed6QY@-%R?Rc31T7bu-^wYS601#I}yeKcR;wS^zD- zvWP<#?Bg}$5{!&(R2BNENy+^#`Ub!>% z>_Fih-%Jo9$2e$5@Aj$Ay+9^KMgNaJpY#ac9ia>}SKvAwJzjp}fuS6Y})ZhwG&*1d% z7m7Ftc>50m6 z^OC2mR`mzRg!B-#$7v#fOir2x$|GftCbbwR*eZW=urZ(BE}U0KF6Osyss!0C*{<)W z+;v{-kVV<|w7-1Zx(Zp`kpNJ#L~*sbCbU30dHge_9kb}xSK`h>*d3pkD+Y>A^MXL& zqR{Vw(lC9M6*GZ#77ZADzB5iS3HiReFmZ)PwMNZ-aX>d>yA`%>PCI%`c z2!&di#%BUS@eQ%v)=i^QfKWTb25kndJVh=6v5#@PIV)yGCY(78J)H+SOt$Rb0X9l- zhMFYXAEf%`85IBC@H!xEA;?MriPX}l3|`Nm@}0cv!MrsRg{g1zUl8>j+kT^ zJ7QiCY^F(WRIT_biw931su+_`JD>L|1 z!iY$L+Tipu;RtYYceAt=L5bNQ$%ls@w^b_0Bp-r#`D!h!vDYZGKiTYmi{}h*DIgRP z7G^0lW>`>=r!Tg9`Gs=JP7^$}IkQKej(%EoSZ~chC>*q9*DZasD_u;8GQn8jlK$E= z&B23At4%@c+M>!ufV!$#E;@v(&&d4H$CZs_^9YNo9Z4fz2 zogY9nvpk>^f%ib&=Gjx_`b$EovMKi z3r5Y)6Yl|~8@F_TWDL@!uxN7=R6)t%af;J$t8uUy+-Wea8@XcMgQ{y<`ezm$_PtJv zu{KAMoje#N4M7!m+^5|ivGNzvvhT0>d9velnP|p{&lHyTtMnouzj4fPAipgNv*kU9 zcJ_67rexBSWwHm7Ng45T#$jvAW(KXL^4!mM7p2i*U~-y`*6su9SrlVmgugA=GGOe2 zExN3f&ZfNGXc^{IZZpZ4ZQ>-@qU6g|D$xed zxCVlv_;k8U_1~dDzt$5LLa>+lw$!~M&JS;Ay=xV>M-97g zLMy-8H5mjp`I~(=S}eEjYgpZ*WA`3#*y(FhxJFs&*jTg(Vht|u_SwRQf?#+`i6r}R z-dl>~0%y_+>BJHSNXaBmcFvK!n=~PF3-K_PRODh=Omj(EvjUo6eC=g%7f)1U!)0^C zPWY-s0=NC{og4BeK>v~H<^9X%*hfhTwm~`^x5_b-9SIur9^7dTr9Ub!=s7xV*8%HbF`NU z;?28*ATyz&%2|SApos`t^d&vc;IFw!B~J7Y&5$3) z!2EK9YN##(Mx%XI5BJG+djzl(;j6y)N-6$|Wo5zV-X43yMCEfmJh9c$(Zr4c3pYk= z{sH8~+{%=}7E6<;`yatq?(QX?8)qZh6xMc74xBQ+;>{tCS~9zt|KT>(TwS`q4Tpsj zm^I&&EkG*B$`QP$&ah|CaUhzHW=H5x`^(+!3}=PSeVczPyv%ebIcWWMY-MKuvQBRH zfl`9^X{-)8>`(MGIIY$zDbGg}JLOn2`9{ouzNr5%&Ng<#%{LY~e_?DfBJ%jEdv)r{ z7hsmdxu){BOy&Y|fviA|b<1IeUn3ZIV0I8vwZ8lEV!-XFdPu;S`&t%qNm7!py%Len z5CN2l(4rM{dsES8BXy<>9}id;A(cW6^PP}=76gR08`2)=Y2L50+n0}sz3KIP>aR8k z+%Pv$`cu-!0{GZ?q*XUBlz*}+%vj9QXcaCsM^8T$O8xhQ@pGn>dJR&|VfjmgGhKLt^viY$ z!ISnY(JkM|zi^V?SIWwGujiKt$8(P-O{W_T?2!>{$7vzh?!GW8_tf3rz#Hg(DGAQH z*3xM$Ry_FtF>9%J6Ahct{*2AwKV=W(#|7vd^rHs2)~g0fMPK*d`JZ>l3HWQmgpv!ZeL|@$hx*5jS@esv-}L05WdQ|n+q@1#UXL^gjNbtN6oo5C!|-!MQar4 zF!Y)XUdAD5@md~pAi2afAO zM+yV&|85S^K}ExGv9!OFyx?3s|4La8ty6|Zlj|U-U&)<~UbW~A<)j=2=#mXqKWL+q z1{P_ZsSKZAb6K{R78=QKV80?UE%D8Tq38QkSB@q;(E&;|h4q zkupo`WE7nD6ID!}rr<_}f(_K{tsiR;H^Nk)4k(^sMi5}AefFQv7hjY_@Uqj{&Bzhde# zfC^Au4n)au%OB9HqE&hK4QL#A*#dbxu-pe;%0j%rkTVoiM|%Z7K3kL)cdhX&=l(<% z8ms?fK#^49NrSo7J0j~n=Kj6GG59<=p#8(Pv{Cku?FWI;)WhtnHn0?~jJFLAr?z4D zdlO5p7n2cVzf@Uztw{D14g0RIBVPs=cSUe~#r zesSL5wUK#rAeTBez4e7UL3R+L(=i1JQ{}_TjM_~Y(po_Fh|02Z(=s<9gKyJHBk%E} z(8!~skgs^I1lUi*gt~pr6M3oeP^^;Qqt2!~)=%DJEptgi|JUnkDx9U*D@Z?*f(w~e z6630DotAC9O05_6WM%-TqkdI z$tLXbKF;RT=Em*HYt1k`kT|{a3K~1HySDB~KAWVC{f4huW^~uDs>@9@tKN)bz11GE zUGa^SV*}@T?b{S$Mvb25_#>@Qh7D@L6IHLGb)%dFw(MuKYdy`GR%Ta)(M!`utaGJy zg#btdTL{_8yec9n!A5g@lflJ_J&U&|C57jlgtAgmNL7o6l`GX;3K^+?ZDf7GeWmEU z4WdWa3J+Ivh0~>gg)AO=sDu@JJlvxBfYHr)TKk(*=>`^1ZQa1)fv0iTkCodDxtgJNa%25A!KEGzX5R=$HE5}_n#4^i-G%gB`rP}^J;s& zH>J!+74*R{jX0I-Jxg6bK6v-rs5(egqw>8ti%y1bWYd)+?mG2d19DMF({I4hrG}}0 zG>f1$j*pb_^{*gZA4ktbgR+*$wQ+kDSm)Y7`d_+*9m)^5%&h2XOf#>0pKX~7Rs+3L z8}*Mr=C2hoWhBZ+>6hc!4IflI>bm&fN9_4rr(;qc;wiC@=QwlJ>H;rsc~i`qA}}vJ zE#e>;cgP5FY6oLE!RwTjYx-X5J)vfP3R}#u7Zw)jy0+QFJ1pme)dvfB8RjZ(LPo!% za<^86M~Bt}=Wsd19CJ)Zu>S_GLEK8jP@2k|G5di|2hMNey-f(Gu-x*@HC*27`?5CE zHnd2cMdMCE~@NjXh^?Lxdi39n5m+LKHd_ z*69lEYZKb(MD+-JMXf6q@tmhJQ&kr%$Iz=+hw?Cy;*jWNQDgilxGZT&7B1}Hnc?Dy zt_*WGsytzS6S^P@^*q6ML{dtmg?)pKm;ext6Fa||nI}G-d80epT#EmWrmC#mcQj8{ zaeg1H(i|Z8=2IJ#mWBOfrt$c4rI2=1l^a?}?plWv-Kq;O) z_-hp6O+S={fKxhQS_9MW5!$&@EkaLFHT=U;UVjqH(8uQbiswyhD+@;c~pG_?er{11A@1dOTlH5A6u}!*VV}HmH=DmPLm~6faFxZA2P+jP#7%n%d|)W) zxc;9OzYYD~eW@6aAGV7x-rFAkoz?SM6n%* zfD|_??*=#26AaV37iNY3kwodO$?UYH=}srzvlKV(3$j%0WZwfyGZsUpSl?1dN2|D2 zlJ+EV(x6SUi+k*=hDJ<(?)ni+pp)$%4<{~}wh)P?+H`4I$+f}EG;sq$D~>j}V0m@C zbM9*iCV_1Xh8A^&ECF&ld!1`%P0}-lE;S_x=mE7}$!zCzr_xxFQOTSz#!hi#_eR4J zOn)G#h1X)gP(i4AOPKkWJ4q@X0rw_PyfmPJJEC*PWwJh7W&FmIG1i?rRe~LQ*``GtCdA;*rp=m3do)o)F0kRMhhtpf9FdCahf zbfsFK$FSa&fBC*GXWj;IE^r(#A5`$b`^3HU;JME2|D7x-Tp&RD;n}n+JI|8%dxCLu zypBZ^@hztZGKygJced+mr`%wIs@!9YY)HIKh+YUk#YC$Hmg;jtvTBw^i+J-t)qHsR zi6h#Ebn1DKFKSQYUgLc7vtDNuZMGSUr{Yg=V{xnUnc{C$R1yOoz2sw!x}0$^lboWo zt(GLHXlqWpjb8kTJpH3pw z0Be&$uvM5sKVlLescBv7ip&h+)WMI#!sisk<>XEcbLa(TCIT)scbM`}9b zZ>bc(Wo7c9GhVG9Y4DkPFrXHz8YA}b3? zlBsGt8Bz&C3q-5Mu45kVhDL8*$B!iYC7f%?s@C8_j>#0}L`z0bY z+QZXBF1Yiy-o8dHy4)B#1XrgXrYZi~OF?g+1MiPj@AG<;MB!e%EGhas+VsSaz|X2$ zicZPl)T}lfpbu{=3}rOSiK3ChXxKt1P_%Egyzdp~MoGo#_hEEo?<8_#zwJvLcOvL7 zaWhjJ`cEKd-XahTNcz?2+S7rhuqtZu-s_Q75b4gtiqln}VpGH1za|{%DHr(SkZGmRGpjh7-{ zz7u7mb1hy64*58(6Ju=GDaJ#7O{CPH9`Wk;3$vQg9U)lBK)Lt(sBVOm=9U zJ%}#s$iqkmx-|IA$h+C-Xt7EEbTpB|wTN`Yw%MESDXfx@>0GwdR(z;a{u;;mXLfrZ zjZMZ>v7N-S)}pHWfkn&YRIq)trCY9zoFBy8Xuz5Ed=D_{kr-1vHkkVX#V>v$MV+qMc`xI5?%Y zfB-R4;earK74}If)`9M6wg-H)Fx}k_1WN?~nL?pGLvo046?EGr7y&^zg=_@vQ$+_s zZUIMw8O=aoSziD>ZS~y=j_~-yfdTpJ!wZQ?9o;(ld;P$Gh5Wd;G`C9jZQ1R|bYvU*c2WoK&GYoC1p#mG(U0KAqu(1tee$8&97t&t`GKwm{t-Vlskt)N* zArB7h_^wcT)x?@2uk6RaAu(cN!iyn!OUb1{gKin!dN}7e;444YXbLleabg7(PKcDh@4M$G^A!*)CI+?#)GP^l)u*7uH7+>M%(Qkt zOR(rgwuEa0JOHH#2K4^?=4~D_p9%_c^ZrWsxI2x`p`pyds8F2VAg?Cw=YaY5 zvyf?1ZB(Be&}XkaVZcvxCBqu<1@MQX2C98jI3z!hLJmW_w&v>Kk9^3MWi`jOWtnext)Dj6do@I72T^n{ZM|kt?GRYAJOOkK1$~fvzRKYK`zo$ z{F2bvGR??Wb}&qtMxzh4-YxhH*}=Z0c=LJDJOU|)4OA1!EMTO~51rkIzpda8v)GOF znNWZTeyDp|@RO-xaL8*EcDdLtv#a+~h^oQ(1>ES+%EdPe6~ncNto*f$`~0Q^?0{3f{4f{$>)mzB^XV_a5i*y2&PND(hEKw zoQ28E+oCyxb&S1l)8Na(TO1mG*-u!08+=qH{my(&Kcd(uBNNH&Q8;KTvz7B}R81RS zA@jx0I5n{({D?%}#-Hn|$iLJ#jQ9c;})?9}Q= zO0dUs=A$Z8y)0Az(PjsbBf22#wHzRZSkyDmhwRJ(c=@e-_fFDps104`rpyL^9-T6? ze7CnnN$q2K>e1iL+SKgQ!n9R4I8C}G=c{FeJ;5g|KIaJuwe_r3hR12Pp2%gvk^kFT zSij2K?YX3moLKB5`D_`K;#`Z&Zws~az(+LyL-d;>(FE;$@Vi{khHZhh3CG5-)_jC3 z_e$>VZ7>e?^JR;0dCsG4hB}#p8kZ>-k3Sk$jXkQT+lAw|GHauO&@~LM65_;TO{9Kw zts>xP=B`zaz&wj4RTHMj^?vW%bx(gfFDMoD<_c{DCivBlfH12co$A+%(^CA{XAL*F z7*}&mFK~Ar(=TTHX%(gI_K}7}{4CcI++f!Jw~}MCrG+v;-F@#x%r`+~pJ@+76!}dS>>O zxS@dVr+#VoxEs`3ChV{l4=L_N8?bD7oHHK16+`4(uA|TlVp6)s3uHn3(!W1*v%3D+H z^#{?Hz<;_2Yk5KJnJg#eSI~^hQ)aq;-YZL0nd4O^XV3wyrQpS0HKP2N=p;a8A6#jI zj+}^`gkX4b-U0lIWn2T))vZuBK;2w}kdsA++p_bfV5YEw&IrdAHmH2bl&MZP(7G1P zSV$j&)cg(DvgOG8A#Zx)ta|toH8t8*3)hbzzy9hYd#eXfN7^0+_pr0o>qLFz{jFi$-EFZuU&f+yaExmA5Kda&4c}hvC1CQk zIBu1&-@pMo-Ac{Aqv%@GMHh4KIE6e(hm7?rM$wQ7jAgs41j$KgqvXzb)$+B^vD$UV zw39}Fu|@NkBGJ>pdv6G6Tz+THN>DzZXU}tXNc7wfrM%07a5TG4Un0d5458-6<`Y}O z;_P6Bcaxv5)7GLQ5VMn{G34zynZ)%bdG+ng07uzEPabz4V_bZVeUnG5dh+naVk-bJ z%c|HgyrvLI>u5?^Nw>#9nx;@fzRH?uh3UKi2?cwr#400wdIU$KXxkzzEcF!DxL^Gi z$!$-E*>DP;O|=^Z3K|Fu$X)cU^LB!zg+L=j+~hvJgzU<#$6y6pNfbkoI0LGj6AE2my5Q9C=$!IWfGr^28p+Zd)>a1k4MRtX_Xusuwp3ljuY zrt5HF-e4qB6Nc~$*(oVqjhip|62Z-ve1+Xr*&H&zw6r7q!ZK2nCHsFEyN4!0v>*$> zW!q+#ZFkwWZQHhO+qP}nc9(5U#YD{RE#@cOyUaZKo#m?f;{1Y4OKfka-0d=Nk12xm zS#PDR<3Q{R1SDtjWa_zp;)?&k?jnrDl19H!&IP;d4oA#8Dyukfk2^TC z?+#*o)Vty#Q(LZsAD`eSJPYt+X|Fwpb5nWpMdXrvXER1E!rbTnAPOs^==IAFg$NDK zj5o1c42Bk-#1xhkF+Op$E^v;<5xagZOlFdoT{20T;qBxSqjhWfW~jVC&0zGR7-a`vfN>=bjdN4M}#OTrHI!;89y1Jk#duM?|u zpV&Libm)+|Di1f#%GPeLOpgwd+Ai@H)`iuLv``0KZDtt;s;g*=D6*NEhlL~5DypJ$ zs3;Qf>)&xyr%F+i04q%z(1DU41)cWL>dX7=-Dk{h6Y`ceQs=MfTqEB|7acOJ;iCCJ zc@w*O;z;E5r!Mttn0s4gt8UaStBMQYKNnVUk;+9Hkf@3a7kfvZZr2O^6vBw`H`$2> zJmBI(!_{(g7Qf<{v~#Fn}L8yxPim6ACy-${Z+eZjUOJCF`8*nauM&V=*68`UrgE=AhZB zk5-TuueY%0lR@Ga_f*tPC~bXD@aU<5gTiq~`yN`)Vz+Aj2M;$j!!MV#(&g(|3j7qD z*wMZ4LRK&P9tc8$t1>7fD+aoQELN1Y5n6#QMM0|c+sc9^74FTWFl~vgCfSWLaS+<| zQsSo0hGn7UBSeCn$T{7)-6j&rARdRh)0Gw6WT3u#amL~+y{-3B5M`Zmc_0-F%QZPT zJnlH6$n&|`EM4eSAvANSRIX3qJa^YwgYC(Sx&7>f+`tqo)lhI5JlZ4C^K;!%>WzER z^I>>WXmZ0KxlDw7*{+xId3GXG6}4XdCK(VG?&*@)Z(dwP=%hCSL|fB{^-=~=!-qW3 z(YS22_DLoWR1wRKcv^`5T;rXy>$5T)OT(B{cI*+4PbMSucldXks#O7jR9M(MU+7< z1(=FfCaIfVomINPJF{w6z`$yzx6zQKis1!$vqCZq7og)oAtJ6gFR3S$>LGyb}LWyhSwVORV{@*abD^x;`yD2npza882gG4>@g8m(DUV7;nl)Zx6;6 zgOAG`;_BHKm23dIXuau&f?WJOm;n%N(2?uD2U$Dg9w61hakZ@os*7c;<-JL$j*0qb zf8u@jP<>%*C!?WZw&hO@`Inl%rpj4wT`e+OI_tJcH)D^Jc`+-^krl78m0ZzPmSEHu z-36eW&w>;VnyL@kW1H}6BQ>dFmz}FH?3acjCmN7$XHYszvtIA(yGt8(g8X-&yB)Gn zXIqDvJZxtfRawYQQ*!~6L7P>ug~j zV{JeJ|4E76c9w^CtS+eTN-0wR%bKx1C0E;Iwq>u0$v5wNoj-o^q4-2c0}TQ>+BQb% zivQyZ(?eqixL?Bf8fELSB)jd@$vZTCwT^R2D|X=d`i59*k4Ig3#9*x@tlhp2#X{$d z`2=W5EJaP`ndJ_Jimz?Jl`?I4V-LcK355a?7oF;m`&YKeJY=Z-&(()m&Ao9VBG`U& z1IRe`^2hFYj_0h6m)hFY%sI+rM%wctv{kQbYVaa-KuN7)s3HdePYgiC*nYXlzpj&pKTGwVmQW^O(HCHIXwuUeYl3+x91^!=~ z<(WUq3~?PPkKTTkllJvR5EciPGj~S%>uFNX5T2{;P`Rn=}Ig?}=c$suC^QQ~42fFou zm(%SHw;FDSuoa0|)QrZrayIzLgj%^QtTu0oSKCYy#(TIe7yPUA6A8i7hfmy3q&W|f zVFdZZ8L*TwtKw+BcMLH#Rzr7Gm#69r(4E7xwnf{Do{nVr3!S-CSdhKJRE+BSkZv_V zNfWRp?G*bwG&s4@B!>^sT2A2slmgQZQCRnxGQ}WVS{i!IO0Py6yy>7rKsiop7gRYN zq%hQFJ){?i42SuIER?*PMQI+%hn-q1mtE+z#&Ju`XHd0;4HvIgiq-tV*K2me*Uo%M zU4~ZN59TF6r$**b3(wm{ovwjzIwBXBtWfu9{dxyWw9ZUiF0BIF7us;I3s%T^Y?D|z zx%6#3t%~pL8TaNsS@((0iI^3Q2tUB%A77D=O~dmc9<%m9$>OUH-gwH~lq-OmNwZ@C zPFG0wjJ^s;E#{;w%l*AP`Q++3xEHIviE6E6d81Bm_U$=3jj^Lw^qKi}i=4ucm-Q^{ zp9Yu9L`mYpevnQ}BjaA%A5AmTeS{dU{9nep7&EIZtg?~ys@8w@xp@;7u`jFWbd}7} zpjDbDAQQ5)HgKsO!Gp@pvYU3nBt%1%;YDUfsZRmDbdWyPvnl_J0Po;Hdyrw)HdDDl zW!b$>a|Gw!A#iIGF~qg>Fb^WbSW#+V9Dqm5yfBqz+2x5<6uWaUHv{m`Sg;WxI1R2^$5&-}1gLDe!Nr-*+(;`@mdA02 ztQ4x&lV>v`d+yt_ojP2sfiBhlMokx5>s|-7ua%mdZ|XP=!VV0@OPhSC#s>>8ll+z@ zmkygoNlz_hzz1M|df?2Q#Vzj;jFut-dvlfiP?`PlJ%*gt<5$x#PERdRMv}mJ=V? zEAQt>;}k<5^Z+>u79F#_THycMu3(iL(pi0CVgQic=^}HweLKC`7gY9GrPbv$OVzkX zp<{A=o2Bi}GOV}z1KVb@#l7mXNG-|n*TIcz%G_W`9Lr}1@v{Gfkq4w+xpWYcfPUbg z9Qh)+%w|`d@+F7 z!oS{@V*omAuPT9V$ue3@4*FPlc;8BohTB?5z!7)x<*DfI-8BrJ{qj-_IKFj0ZfjEC zDB2IK(5zh{BT-x1m$0cg*vx(ETN3ADF}FqM1Y7VPtQ~=@074cEyilLP9d4B<0gZ z8Dw+8eL=A=`3liFZW-a->M!@k`uu`BL;IaWgY$akd9OBD0iIu$OEL@L z)*+bO&P|?|DNw|eog1#{Gkx&yMDQw>E5}MVT*SE}?sAL{s1;%f$4OZjj+%a*kieFH zb=9#3hz70WKM8yBg3U87_BRq6kTx!zdR;|rhG^hI=2Ux6e^+_s?Vl~!rr2=*MoBIm z3#z26@M&%$B>VFhShqW9?WZ*wL_^=rP|u_ZJxt!$oDL?5<8|iN z7?KpXm`&no;ZimOR?isX?J9;*Kb4P-j6?Z#B~rfc3qv;=_@k?%%WnfXLdga{gxr=F z%!wps-qB!nm!G#`(I|}G9IqBjqm^gK!wa*kl{qPC%{k0W&s$u(sHUXjqr25Fcvl~WIqX&7h_CEkJ6HOdh80#Y8Y;x!>xPLrt1Bt`DWX zcP1hm!2IVd#bqi-vBsK?7>(!*a;y=Odfs5?)hF8qVAetX7r6z`pO~iwgj_2*; zB^uwzpbdUtb!0c;y@22YM`_+rFWsndozZF;iPc10J>5SX@%;juXv$Jih2GKpn?lB` z*#3U&0gl-9dJt8j)(_Qh$2p5&f%f)2VpPFtuAfiKNWM8N?W1Zp?;7H@;F(c3({E{X zNv^dP7vy3>(krrx33zxNebLd!NoP5%xRCvpttwpr#Om)afSI~6qfHs!tC!JT9k(G& z+9Ezjzw~1dow^L0e0hzXCvgLrGpJI@B#+xZA02Q0Z|FQi@~TFRmf503J?&&qMi5l- zV6ipp#S+Z8gRvwyMshzYrTML$>tOMv!;hqVx=@1tm9p}%+ z4V@p0GWHVpe1R*mQZMR{5am>hjnhp!Ct!w&G9yj$&vw1pHIKnitE!5tuB(}k{2bJu z_HiLM?3DnLJ9Aa@*iqfYv)2o6TS0>uq1jXy1jj;g?}T7sY!=^+rE#&h2lkuW$V{8G zpDc?VhuJ0)xvs7|693@qof2cux7+M2p4)7rnZ`9doPz0=N+Vkykgz8(?kh+^zFpj50}lWlL17Z9>s6Y6iDY+MEC;Netai|opG+$D zt9_R>n(HCbnUYI(8U6}`PJMh(@Sb%ZI*doc$4C0a0Jml@4+UNtlXoJ&5EsOWShwY<47H@r)zTIcI)B6 zA}CyzhHLXBEAH2JUhrbQJ?xJ-qPljfRI04ysdyPsC3 z;B{wcPXfH%FnOkzZ)cb!WgG8pm*7}Ck(|r6b?q0AtP^{QXdHR)m+$hYk;hW^7ZsJIDW%UyN!6RZ`Ymqm>eOC2l^8k%n5>-d?CPUvpwxAlQb0SfJS6-lhn1 z3Y7@&+s<+92|WGyVYtSP0=#g4NVlzO&&!vSH$`Lt&kQK)gR7zDQ*rU}Yb(H_^UKao zOwP^*P7e_o+*pQtY(+^Ifj+u4fOXmX5v03@VYCk(`y-`AXcD0Z?w6H`3or%=aDNNz z{FInYqfu_e*go-2ja3~ zLI92)7MK~xF@^~+4l9?c3_#8mfb-3&^1A7Vc`IuUz^Ag;yZ?RnjXSonPiKnE#8lT^ z7#^6~97xhPumJ}mm!hEO{N!W|md2j;!^&Lm2q^d|y(L|BB_%}&=8MP%C>CA;Bt>xg zaq2{CGP4p>Lt90=;?gTS_RIxSG?oB&a-iqw85dXyeQ)c7v@%1$B(~hW_H9vF4ZJqk ze|lpIZ3*rexhqQV>S(m+ROjLVJTCER2#83?J4wx717PFg;-d4{<$wQ~xzXSQS8H$* z@i7(YRTF0a=JXK41w@T62H?K21%UsX;G-?AEfAn)#)g15mlyR%c#MyrZ);-;RS&A6 z$%W4+1`aWh`g%7>!Kvm4=;fOjtaRoJ(fPCJ z{qBnv2za}zCZRVr6aerz3tTfhGi?L*2KwoX_t2~L{ZsPcn)Ea2_hb84;rDUA=4ZZ@ zKfD^qo|as-zK?P4&W^!TJwzA{fN(#XO4yGt9h3o6)!UapttuVan+2C!ClN+1iu_E6o`7p zPf3y!J#gmF4lSGwo?m!lV>miv(J;ag>@A?c${fzo+bYN}y@=aagMbcjUev5Deu-2OnLF*y=iqryFA_({KG+5@Z^OEJ)&mGqQ-d!WvmSKcb~RsXfd&RH zb%$UfO~6_Lr}la|+I=K1ucW`psfr?Ii~QnRAv4=q#xRe7+{1sUf|L4jVD|S848B6i zf^h$FU=D#j;xlshKFQd`P5-naAne5DH#61$5JMHgpv@v27~X*&y~F;Dy=}f?IyioZ zT+jaT>jj;CYxB(v+|K$L17oQBM0eoJu!eMK32ho)x{f_;5M0pUL5DRkK0Y=Bb$A^F zBKl}Vi5uMf1SAx0`T`bs*LwjEVm^xn`oz0D9os@s1s|h2Xg7(Ig0p!p>D`@5@uh#& zrnqGi6_dKf*Xi3$cJNXWbYK_g0mb=d64C1OE&9PFl7Rpns}s2X$ygTHdn# z@y#e9m$_~&sFO2-pY`rWt-;0@Av91x*l_x>cT|aL1icBgO(L3jdh`sXO@e>AQmDJp zXp?7U&243`>Rg*4ig&EKPAyqw66GUz$2|?c_yQf2bX!AR6c)9Ho`dnAy6U*rt|)ut z04X)*Lsp*^{MREB=jIx%Yn6(bU8^I!Ec_8dT)(z%)YQy-2u|S`BE?GriVf=IX*+_5 zgV$9MQ|yDzhVTx`O`WXk{SP;cWWDLz(@7C@vHO(2I%k0e%hTZwu%kO)GBM1{&Ntn2 z<<>sH6jQG70^{X~#zc)SzWcE41=DSd8xinv8MzJ=l+HX!;;*4y+mQ%eogn!`AW>Za zVJJwfDx4^wTJ?for`JeEZ1SmxE1fGSuCKk37)gyk7EK()DR&D!&K<5kQ`be9lm-#= zW-vjpMvuSlnd`TAOij$N&-> z5{DaD6;6cSKop1J5HE+GKVsjeBNNw;j5DzQP|sYqRdSASo0YwH!RFAVw8a> zW$pt{dn3C1b7KLo7Qlr(gM^2s6Qi=6@vPR{0Mx$avQlQC_T$C1FfmN*#qIlsZ0zrJ?jwQn%m##Naw+MtyP80F@&l;`blKwM&kxZSw2jZ?r_ zfY=DLtHEq(Amr^6rXJ3EK&l^u-7@tigL=m)9VI5aJ@6}NJ`t1-HM%yIJzb(-d(PMXV%LeBG59o0H~du_7xQm7lAj z)F+m}HE~;$&3p2I%LuVse$IG+Ehbngx9QirQ?L2j$Rf-fM?QnwA$=7 z1ady%kNN6(u?Js&(eq8@Fgx5HOh^@LOl_L(8TWuD?WJytIO;9UcQ}z|%i`OWYYurS z4D3pdwlfJANT}2G2ss2fQ+_w@*(32p>x+Y9hpMvPQHjX0t<3I>e9+w&1!~I zYlI`{=p~kQAL@}Y?}S+`$kqMygL!usMm)$6+9&bKlcu8@_b)4-B{`13L zdizRm>XsJd5!$(>+jf~F1^;0f5}961fU)Gc{&!Wyk9?{Gt=&6;^i!r_2J&braU=5S zZ%Y;(HW-S`?;eBwU5_dVzRa`OJ$F`Yi{ID_(Y_O+0c+a!2I$s2+sbl zyb?n7cF%;rM$mzGcJ>nJqM>^k+%b9t3Gk<~{NuWntjeSGTB;8o5`{Qpa?7gs-%)t{ z)dR6}ytlk~S@Ojzr@{Sq$=zOG!0mW4kD!7j5$K#ywn4k5gJ7O)2IY;H$AmGt^7si< z7TjM~?jHM~O)$q-dgEl>%?DjJ6@L{Z(0T^qM!LT0*ylO}z%>7sxPRlwSKA3)9b+~62^xTSXTwwiW zs$bW=x57~3#^3Ktg~t(AtbRpo_GZ}OJc+ZN+C| zq!tA%Qr!^rcHW&LGV$L&>W3i9kMY3NCV_j%na5HCHw4_@p{W5eu9f;cz--O!%yqqB zs+mrttc#2^7>A=K82td5khA>sqE2{Z+4A!w9uI92xQt39E?MURt_h}<>h;Es zs<(I$;CQ7LfRJ6#y2Y7BfSa!skug&1A0pDaVrbzHu81ip0CLPh3MZKvl%+^(2W zQe#O@`^=a@F|x#ra~6MWz7Q73um;TM)+%R(h8X2;-TpEo10&|yw~z4nfuJ*|t3;iu z)D+SqGW=VHZ|;y1hxOGo3Ghm~lrh&pR~g(?#gV0A1vX7_A3O#Ena|WX*m!BE|HbX|w@P18Z7N)uec!$^Z zwQz~DLse&~KaUh6+xgjF;^K#OYYRoyDa$X_(=D5C(@xvh@${l$;5XkT2?lveeInV} zZWwmBRmoN|31nwf`P_S+_MC}kT|=ZQipBHMc>mQI#q^z{&l6Ah#8b1}ewlTZwQ}>B z&fT^papq4ENwQP!;O4RBLJf833ySy`_d8H3iJ9K{GBEqudLY)IV0OpeD~z98=TB;e$QA>@NjV;X>Rs z&G`mc8(3H?vucmx8Dem^66L2?I(ng5>7%(9X~!d&}GkGB$j!mI`z5J zJ97ZnTTH77g=ppXJh7w~5X52p`rMT6>*>eG_WnP9;lY%-kqp9jG`@h@-RFC04`?gn zxU|vA6%%1fqRdZ$NxRO>tu1M(gfJz#Q7vMY_ssiQ^GzOZj>v(!ku0pa%U%9&wvR#yf%;~86G-EDE(WA*EuI$H( zSH0$3K(1!@9D9GrV7mcohfjo&66Q6);xsa}MQ#b*rCbcPOOI=Y@=Bl(bq^)GrBhWI zJUU%-!hX}=Y5%1p(IJeOsiHow2uC@$06t?HPrdCj^Ayl>b|c)vOL<|KRO*4ek<$g2 zvgwuw9=NVK5iP~|;j=+N1Z0!p+|r2GYHFN;H>0VMWQcaRJE%G>xuP#S)02y5Mc+Pt zK<#jI)IJwdSW!r~(Rb^kd_79z4;BZdR2Ja(ZssqV#EKeMjLwj?vu-DCKP1puP;mMe3px;c9H66&<8ill&0He6+ibIhQb=-4DV=2zeGBeSmML>i z+jz%_Ep$umJZhJbrxykRq14S2(FU!#t;%b~_6Yqgc4z2ReGoAe%MbvCzid9YKZNS( zLOP%9kQ5wi!%&+V>88mWuxwNqRY9)iLOl4l>j%%Tq=V2hnCG;SH<}jDt^fz!>(JO8 zaLjm5tcyL7PbnNs$*gi7@j70k6oU}8Zt|x`vz~~wjzrDIow_y(&gjE@f!|&N@o%n> zEj61;yU@@m*54u(dX)oEp*nu@jwVMj#j;L@Z*zOLV0<++DYf>0yz(b2Xe2M=BZ3AI z2xG1c)V5{QmA4?$yY!pJRF1b3?gV~&LRmCmz7RVQ3{9VQCYeCs&4<<)a}Bc#7<0^) z9&ZKnG^piwK9Z9-Rr3Z)wBoobIACf0Ds#xZaEv?xyF*z~kz_{XB@Uh-s5n)&L^$+N zM}`}N@UMu2yzy_sBG4fJme~O3seHCdFm72(thsQ4{uW(2=R+IZ3+dozz9q_Ist)+0 zMrRtcxgr%07luuNu^JmLdz{hK9eA|mGaHZ7w!y?SDzahc zps&g@PJkd;NUGSPUh5MX4y@L-NJs|97pKM62(M%uFonKfstrsjhS|a zF-o>+-uJ_wTHgTtt zJ+~-|z`j(Ug|Gj@;qCw*L&ju939cN-go#X4_q`4G_l5m>GNfP~&^$c2U0fX_a^5(& zFl1|q$LV0qOdG#jSQ>Sp`ci!mH=lqNxR>HL`y-`bxvMU3cEp=|!b@XbYmirqXJdBJ z%_nWoL@Yl%)vGJ#8LElWTYHC?ws?zJN9%O$h2W5#?16>)pz(Y9=u!WgaGjr+)a#Ph z)Q58eqD$sA(XZO_HKA8f)VCOJor@5L@m;w*+#wdevBbb)w^A?8xA+*5ZSf~xN#y+X zpeDxVA5#-8zt+<&v*X=bXn@b>{GLuUQHQEEaSR3iHXtpt7Hn$z+E-CsZ4S(&ky=b!G$}O7d+GMkqDuB04KL}!QntPR z>Rq3in3#=+Wkj~!^+B`9TdWn9{+_uPnzc-Bt8BThBsM6x2O3X}da0onn8$KYLs5c= z8(?RtCF=?e$OuN;R^+tg*dbeoN70_4%7P5-PL_@nRxN?818tk@?noEhoj4C6>0{{> zdrMBQI>RP=4nb0V^Jj+7uNTbvtPBKebq*{nePJ+W_IQ1r7eljQA?=I%lan?l%uT9uAPwb!z zGTkDrCqwKYAC3$#RG+POHh5T=P73=rj@$X4U!HwV^*|rTU*+I0c)Cj|rJ^X39ZVsD z*W*3wv+X}ij7me@4luMH$T8RUYux=}x-#p}AuU@pxxPV&&)tqCo0yXz3Q2k%;=sj? zZE1m#$3S;an~|50lkJ-np&JW~;y22GiyPw($VoRkJ5>9cLsDzaakg1xH{~x6mR1T{ z;&0AJTge^IA7_LUyCwjyk+%osK%=pAtMuq0k79ktS=4?4F)xu z3Cw5K2v8^ZVxLk+NG2&kDrvtXzVwFe5b~Hg)Eh#2wMprM26px|jGCfH%&N4a#%8x; zkjmW>65Fp*_dGi*OP5MGoF1;z0?wf`&aJ>h+@vjHtk4}IfAG>?!9e#ifzg|VY2b(K zG47v^CT*hGwf8<=QTH=r!zH`|&!BirytFzlnUNiEsdlA6=0C|{i8Z}^0- zDr(mQCBi)^J~(^wq##c=1yk=xgwwrSF&Lg;VbQ+>Ix-i+sw69*=oWB+4C9=YWs3&% zmB(6&ym6-T9M5`Il8Yj_@1dVJp%h&gEWzI{>Aa?)_<7hFl%v{?N2;mo`Ih)fWb1f# z7aC?DE3LpvMpun`yjNY8W7|2fv%X2UY0wSyMV%Tp-KjI~rVm1c;~-mu*h!r!WG7Ry zjlE6+{BeaKfWxt~ zA)fZ-F0{HCkv~?XO!osd(k|jEB~&U)ng2xNv4Z+4QX3BPLCiS>egFh;kuHjqfWf=1XPGpF6+2f zJMHeOiVxH?N(TxBipHMY`)GiT!#u3|RZ6e3+0JZTDtmJS7&4mRVtZ1F6Xs%_Wmffj z&Gdk_NH+@BBo8+%f{?#O>n?{l1Cr}KXSd1cTiiC&S}VRs6od&`XQ@83R61Kl4sgtVG+W=!IDrK zYX&xYgOYO*U9o#lnYw?+EBb$u*lzV0KY!$RG(8)#up27BspgJ7+0xCZC<4)}RoC4A z1q1@E$kEyNfe?OxQpXcIiNsj6Ref`CB|=;=P~!kmS_6pbU4}0X8K^?MNn+&ru_-Ns zy2725*x_t>+81!C#;Q0`ZVcwK;Fz2^B88c@kjZzL%SsDTA;R&OI?JF1RBSEG%H_OI zjo0uTmEjr+Erwo68FU_ZEo8Oye~OF-LNq#4q6 z*O=auIaHoQC`n$M)IY}(VWJS~%xnffM(!f5H0YiW}P$cJ7CFPfFe^_Pq>m-U7T%vuJ@Yb8~8UV5HkJJ6lL28 z4Hqu@1^QOh$lEc9DHNm9mak49TGhJ_AH-n??U36fsdNlb1TmuEFm?0BXh-6lbx?0Xew zPi*1G-d=@uuodp4^hQj*=9tOZ6UBg()H`f=EPMw|EBu7RH|k>hp1 zw4~k_2%3>2INR$pXJ(Q=(w=T;HiZ~Zu2OMa&Db|+W?Xd){1xbMB5^9R{Wi-SCrtU( z2}{no#1+p%g2~n42@mM$=;C;C>uECRn#u}*HeC3njQ72zvF8jX1u5bkw;Xn+C7^|< zc~z+R%+N5EDp3XG6;zD)vQ4UMX_SdB?;q=!FvP<)i3-sO7Ve4qn4Bu;B1||U-L#q} zdtfSt+dxsURL+$)pF>pXX(1x-68`WBmd4!Nl6_mq25ydn#jAljTy4fK@^&vN19Jl4 z+>ridV(_0|_CRsKj2R9^F1F2_?9sq;@Jx4rgBMP_z8HV7^d`T>yMk9Y2jz)I4B}Mb z5-EuF{!OyJ&h)=tKr_O3T5g;e2^3nuYm{bU7yJSEn9!Hrcmx9x=JPfkP_+q53DA&g zXQa7kL&J@Im06DSa_xnTvudPUmG?eAWYTc$eER53Ld%#h0*v*+>@B*gYfOtYj3@rtY0PI`h;ZLbvEJa=vp* z*L)#Gv-nm08v@Cehh8guKcH2lJaIRxG9b# z2Xgtf@GU-;Mc_Mp^fhDmYCjUhQkI7M1n1kTc~t6M>zPKm={?w1uW0#Bq9lTK#!1vY z8Y9$f_(~pH27tf2IgAhG@;D^c9r+8M9o zEP7cfeN)}M)~sPxnhReO3*E1!6nmmCbomH?o(8!X@q)*KR30}GRZ8ttL~Pb(_^%8w z$lY2yvLM6ZRI3l#nR9y9wX2Y_Lc`RIJp|h$X{_K@faW=c@8h>6*S<$M>_^qb;~x>( zL6$N}QgekldT2N*=gjr$9Jeuf>uU?j0)gCynT$i4*o(1?n+H84mkbViGK3)x}MU9XN3KU0u zyO-79`H&Z#`>Y6n1_fnEy1KxS~APcrSa5I}HmJ(t`i7IbCFv^o5= zBLVc$jdFL!@E$Kb$av1u@r%yyenM5ZVh{%_Y^EJVtFGoHf9bi-sqQ5=E5wxzNxJHm zg_HfcY=afq5MC8_v@jvUHRrA0R7+`}6>4x8)$#JO)F^cs3hmi}BUqh)O#8$|kt zWe`p2B_mx4d#vJP;w)xUOi``TdT;mN$-?n}#2v0MjXfu~Ej+J8wrV#+OU8BKd}*>k z1O+z1CNfqGjLHL2y=>gMD#i7$$@MeU$W%*ZKJjfL*eyNX9GS8KtB@qSRZ>U0XT<#PX-Jtz6%6$bQ>=zm7^6{K$ zodnzOvfXciPHFap%nmECGyXV2MFQNZ8RSu?Vyk#kpybP=FT{&GHzw@TG8k5+W#8GN z5I#G_GQiq%_R{H2oYQOoFwkH4bKZVmhC-bo6&x#SX|XLrvHay^;ugS{lIDVha2EwVD5|C9=8?ZQ5xF3LoK zH=ZB5yIZ-rHrJ)O(s4u=|K4bI!#*d@hzUK^LuRl+QV0|(()F;udXhi5;A`RCIUZv{ z4U1ICPn=p#4XUq|x`_PCfZtw~&;b6>OpnMg)#STU%J`f zSzci=DLB6j)pqBf{e{Mj_e8R6IQH4-y0=_ck~?pI97p|#O2gnwWpI0U{-Jr^c)Mmp zpRW9s{>DDdV}fMYnyZ(z&~r^4T{-o#Y@78;YmtcwZ<fW47;F|E*Jm*DVr~~w-!hJN(#|p!C-r04yg%J0aACiI+M-v&gPVOP(i|6G^A^(z8 zN9so?L$Iv;Iqnd92xg}f^#qlQ= zW(z!)c-}zEl6`!qX z$BvExm==EP_tct4B)a@}kG2{X;1zmPcw^lJ7N{J^_6ipF6jP-N>kdgZ)+ifpCE^{Z zO(T%)0MDVd5FR^#Mzpz_-Sw{RkQR=a z5-lq_1)0xdALPxFv;t^)k#juT_1&sOpQ zc;O$1O@k{-eP@JZBlDQ<#D18@-yO+R11w=+?BqlUl?|%TGk;_`+s>mNWU_v#l?(ow zn7tHyb7!h)A#*%xOJ*Fiu;pwjpP0u}?DrsTH4%NEcA(xRl)Lj$F|jNQ28i0@5{*2i zx;VMFR8pJxE}3w-e5lY@?&avF-SEUpurgyD8T`+ux_W8@ffeovAg*voE)gW*{`k0C zqi(9Cy;0-H8yS2E$hFOx>=9a00Hkk2s&in(Y(M>1l_JIHjGlm@q2dEi(e+ ziw7;cJ(q`~C%s_iylL+AFfc!g$VvkFH;oo_=_$(7g2Q^w#$kEC z`$y+ep}N&hF0yiQViI@ovJh6JiC8J@a76^s`GD!d7%FYv@pOjSwIZFuvO}gaM{{aQ z<*$PLjd!BaI;a-xiWsXe)`wI2!-iX{%y6ArXd7_j1z29Dcoq0Zx-*z%T8&Jb0L>;G7V%BWvw`)0qa#9+ncBk zMkEVwp_&5zo$C5h(@;Xp^ zE3vCW`dAx0u71C_r6DgYVhiu`jYDyPu7uRU zgS1C51|ilxmHG1qzZ;R26(}v<0%D{dF1JJ0No7up18+`zN~G-=om;dL&os_I%!ra3;?o|6CL3)8 z`_ulGHtFuSG_h+6aG+1GiD`e)zG3eUHN0d@(s6-wAm1JdLP&r9g*yMkZeWrHBvXG} zt=m)I>E;Zm%r;4qC)bsX`pWjKh`1LAnO`XnAJD=Y(Y}c{&(TWqcGwAHotmGFm&!d6 zG`c?_9EFFI98WBM<|tBZ?_VjbohytaW()6Nji&x|3`J7gMzpU5&V%BwrW_pgE0Sal zl-Twuo(;6<+ww}Bm(dW_)k4i<@2+!M>TwC8@{>|*QC(m6NaWsdP6SjpIrU}XkmC-_AaEgS z>DJ@b%nsD5X7sS@0|QzDb|Xn#71ykSz%AsI^h%qg4hE{5(}|5#?BMZrt-G{wed1#x zhBAVloyGExi_5vb&0%uXFqp6leFpXXM}u$)CJ6Aik97DrUoP1OYH+dC47-xK09sNmr1cM0?j<4(VdM@6pJdY=M2cYC0E|%ggf-MA79hV6Ml(xD>D4vS=&!IvluLZr6(f%)3Nddw( zwkJ3H9_Iv!6b5#Y-b)(*O3?>xos!`&N?KR?$7VZ7;`3{4x~0i`OX^2x z;>l>r|FP=O z;^{h%nVg~U7XItba+g|>0A3Y0y$jwI3h6b#?IyrrCLFjQz^cyAQh?B50@2yEB}k|S(g8);Aj${yK{&i_~72beHYjC@PG8j?+lssNZ0tNZHPBWYWmL z^ApMeA9-ROLEgB~*)qt`GL&WNmn|T<#q!R=fbpMb)oFQoN{IR{+U*9s7}k|LYrM=K zEBJ=$;Z<5Ze`_Q`HqYpnGeh4;S*}>?UnKGV7momF^k6dJ8M_lifMvQSy)QWd&X(?} zE5WL(6pxigvk3|TkLzHu9Scb;#x_|_F&|pJ;AjI+k7YUoNx;&`eRIV6V2fc$p_Do% zbBt=t3dKKR##)5GLM`Jr!MKHdpZr?mMoJVNr5`|u+lqX{oiOL?I_U5|!e~A{_gD9p z!Iwkb?uf2gYUU{E%8J;0eCKDT|t;PaB{6Z&A+5v zYqs`2#;k-TD=CeEGZOJy!S%<_+2yvg$5!_?$;hYT3|;XQTQZdx@kaUUsr@gz9b(oHYcgOp z6q7ds6;54u-S^4f?)h$b%EH^Vtp;f7`*e-L+@Qv_Dx81=q@($$iIqw|pdMBGHPP^6 zBVC!U5e1L;zr$HfI%_@c*M(SXeBN_hF8zQ1p^SfFlo`6Z&ok*BR{adp8bJ|jC0uGB z7mnAuqvw#Xa1R8=Rf>QK#4Yvt;?#Ov-ch|Ow`>n>h5_kAAaIm{W4=TsE9T!LPS!-y zj(x}!M1}j@?xC0o%zVjY(AwQ94duSn>M2!S) z8>rKeaUsb7klcx;ejv69@#@*A`J13^ONDX`6%qN_{}yC1MK1_|%xO#sss&Szsl0U% z?9t;SJpgOB8#!q?DC5Lj4ZT;h(&u#HzQM~P?UMAS%AyY}rLDu}z>!cFff3d?Gf#)Up#X*=03=GI?3!C}PKWJE{^KG1|Qj6=hj_skh?EfVDM{6KY2 zzd9l|=a8OI!6`2o}oDEKKf2GuCN|og>CZdzX3zkbG{HShA#A$!LFBv3{nwO(u;hWFia7 z@pohz^Z#+#Jc)KU$~d7G1<{*rdi@i?HcQ5B@PQKy++whHp*w^TfpM8+50xLvp%(V^ zdGM`BE%w6JqbJz#bi_MHq6)c8z?_dXaC-f!x@V6`U{fn4QMoyy@O6yjmr;V9ddO{5 ziL4Ns;GT9xxXO9x=lq%z0as@cgI2znco@9vy-@JG?}+jqQMAmE+bpA$I+ts&I%Q-A z7l$z1>l#wKVXE8J(W;XDOn!TI=$O~dk`(7YA#3|#_ipV^9H+Npt!QT6vlucmx_(B= zA;?Y=R8iV5uwin5XiXef$=wJ`I~v_oE9+pz?fBVDHki&O;Qm>XIu^xrv!y?w_UCJg zZ7QYqt&N{&JZPboL&F!c_{Ov6BIw=HpjIK`$2?ism9Q!WrC?>S^?9E8!ONziXZAhI zYT*L+teGWA;kEhB?=S>FZ~&FNm~`U0v}5F6VPbpQk!SgNsI0}Yig13B2nPW_5=s|2 zW7?51YB9EY7^>uq18VcF=Wc5vd6JVXK#z#+iUq_Vad*B9#q7(5W#-;} zvs_#%*Hd9_rj;%oY{oy;Dy4*wk{2h{wWM$-!wZ?JieH7z7|EUb-2?t#UJ2Iz5UONT z(5Ia$oc3 z5Ru8joDYB|G-!-SEB%a-RV|kksf1Ifx7ruj$ z3O|<{LFT5@{*c^~?iK-AXUz5y3^w_%W}i{~CaWq;V`(3z9`pF|?|G-F2PIIDiQkcp z-d;5*|BFTy4fp5z@mK23OL>I_K~?h!OA((K@5s!yy=3Oy%7K1&cK0aub3DakY@g;`k^iRn4Sj`0esb5>t~`x$Tcd z+<3|Zi#&R#}ud4BVWSo=@&?pM>Erfdz5Xpjs2lIVc zg^*M=M|VQ_68@g%e-^96O?gTKjw-f9Uo-g*qK8q$UTZk1UIXj;RRqq}Lh2R32o2QO z2sEX=Y1Kx%qU09Nl>GL}`&Pxx+mZA1EL*YdBt7VM@?_P#@>H)4M^&Q2l-RQr?AX>E z0wz}2eT>hzQ-UiAxw-^UC0yNw&ijDH9W69wS9b3)xJ-D5Dj z%=J6Fc}+A5xM5-uyswE1KsY};!)Obq{CH(vsF{P1ejf!<+JTXA|ONw)N%>NOIDz9bkgA>k@8tzMINfstf!Sk8>d^p zK`bu*q$}X3X~Q&Y<6A-&z@a3cclGyMNBQ!g&+&($<+fNn^`SHvQUYQ)E0uSG-Ayt^ z*h*vOho@U6P=(;pQEhoCdSM9~6xf6$m}*6auEZ`E^N)O1TO0Iq{%r^|x%TvIJVECe zOIQ8lZExpxzb*9{)7~vX_)(wZ+1gvI__Nu%upR^OSLOfEu*WZu+OBFZbkpbX=jl)9rj=)iF z384bkhCXlBnb!*)j0Xb2M7%tCTCwFQJABEDGR_4kf?i zN~ZC1Vs?80__3wW^m>)%NfWh6VUB~TS@r0f(>w=)$bC!8--Di0dsoq3;(%JMM6ULjb0adyWu8JPP*|p{c4DkoYBFroxV9>?9 zsR|j*M?$f;^y%p%1Z1{EmTeKx;IweL8MLMS)|ys$wz8dP8jxHaIiSO}^figr^IYvk z(zE%8?$?nD{kiCXZzhH1paNO`C-N%n+8&0I%Hpzw(~0qx>-ZVznth5EX-N;1yoBW* zxdlI|X!mk!mA6J6UG{>4RubqY6kiJ<>eoUTPKn>VXj42WjCl^ZLTXlEV_n_!Wzku8 zQL@%!L1_LG%eA^|dF|$w4;}0*E6lW@7P5t+6c!PE8Xd82npe*tS0SNT}r%h5j6jWWfJH zAFR)y`aXuLuv1Uj-8Kk12S0rRK4W38KbC zkd&`=_mKcmJVtJ$M}H_7fW?UxVLcH|VZf`idqGhmpSp*%cCu2r83FAx`z^Li=rLIar+0m(zx|rnQGF0FdWlQmCuNTi+v?8UCz!3$lCing zZLyuHeM(rKoRc`NPN7SAF)|k1p2d98Wg^D|A#7XY3b}~>bsGf7h~mB+fj#5Fqa91&kTXgou;iBsVID)9UsO!F?Z||zTRy?RmtYMksaI$C6j65hB z*rK1@2cudU#l&#Qri@`6W&Q%d(_pXro#-!swOP1n4SnwOj~IZDI|9dw=F7ixd|a(u z8L0*u-hbd7i!IahRG;Q*w!jBIa)Y5pHVJ_2{iKRF+fNNXvQ{ZC92mRpmzs z{$#awpB>~vzv3ftoK}~6uM)vS22-HjH-A8~`Li9?(RzKEufp8_*;ii;?un^e-hI~; zz4eFwMD`MX;>r{}!CFz-0#N>&Ro8aq&9)+`3ThDih*2hU(!hh(SNz~%n?YV;nP#B`p%xk!`V2ThdIcca}eZ5XPiy<96%gj742B|K2)yZ7AZKz zR~IP10S`~(xf`~VdQj%l$U>HLEi8d523x0}E-}7=o6$@i(=)iUJoffLdn|+gsaW+Y8d6p- zEVsl4LVo*#@1}GD?WqdVrAPg$kTYmPu83Yz?cYc7X<3%oVX3kOK9wY2VxM+W0ydKa zS4=IT-s1<>^CA}-XRhQKTSZzDNjl6`&JG??D%w#d?w`(zy?9Ttm7KhnmQ|AavtKYV z{LX`aVqW`I+VNC&TKfMEI9`W}*IY1jd!GtyxwDV#K|MVU)~wmB70`TTkc!&G_3g>A z>>Xf0_L4Gx^PL;?%Ax&DqT}p*X2BAY=80HOI@Bfb`|uBi$DJ z#Hd_um4T=>`-hRw#)rrbYLBLgjAn~|4{-8>X#Z51dp zD_B!g$P`K;V@%T*u{j!jXBgb^55;4{$HYbq1*$~A`RgxPh2n;+q-ucP(4xN(ko ztJ0XHJ*i4q`PSI@T|e`uvudpBu{*2N5fdtH(g)ldb5^hf*&GOpcq{ok|l;}eIpdLb37Gv*$ zx1x60sH8m=n_2sqMY2Yc#HaH^2Us;DU`Q5+P)U(r5kY&vW6>kmDHzrE7@aPB)MjHZlEzHqTp?MNF}5 zH5+|X!t@- zS8p#F`6GmEp{+uns%teP%12> zM>(49j0ZVne{3YpE$dVq(ve^l0n{I{r$6u4x9ZqXDG(1nVzJK6#1XIt^y4$Wp-B>t zzgHPSy4=^iorwB8NWlGA1=@r?G@k-V8ILkEl=8!+?FD-#JGVE}<)R#%k7A;%3C*cY z)YDN9*n94#p(=V{!?in3vi>$dGsV_|6h2xElGK10@a4yst_MQoAOcw|jhXlzI5V1; z1mMj{no+GK3M42kqyo?l%1Uqh ze@<`KnRRn%=dB$48&>O#Shw&tQ%8Ueg*vOD0UW7efvn?op|6eW^-C!^(R=p-|L#}8 zG19vWLdq3&WwXP2L0;}sk=(8(D5~*SfDM7WlQT=L!b!7VSx@fy>fH43bS?&eVJzLq zMoTXRQZ*vjXY~J*YAq_cwM$hjVaCg~b3^0i?tpxG^BH9%(euM9&e#$p(EYW;~5@CHwO+r)kC$yxopz8g1O zR#a5DRqPaQqwwn1Xs%2C`lRta(o^Fcp?(L*$$Kz%(;C$6+EuokfRj;Do=qJ*=Veeu zNlaFnDpA831pRYDO7Jecr!>wZ`~FYxQL z8=oE~`^&oR^*#!z*5*5DUqKHbrg5y*a}Vqzj|Rr<=HEp)yLiqmzO6nGE@s)|HCq)hwep^4cE54FWS2}g#y|%eI&44ob5Qsf8QMDPjl;Xz*H#pk{>Hxv z_iW5ekzE;bN~E=&@{{D2U+)9;F5|3oekMr8ODu+r`goXzeWM5c$k=nb_wHl$xiWz*5?H zBCALThN7h>Q&YIH!%qLnu#5%ZbhW67@hOfIb;Fz5SIkT0jz3XL*h;ora_Hk$h44bY zLr&RlAIGPB0NE*Uainp}4RK>prIVeuC3t_K=dPHQ)jUM~hm4m(myA|VpZ2Z97ypBC zVr-VD{-$8A2&9VV7s~B!?)YbvJQZyw9I7uFMQp&y-CRFee|L6Ix3x& z@_xeK`S3f=+dON_)1(1k>Yl{#%UMj(_0HW(&ggH_H8oFNWPQqB;!AROxr5E1V%3p_ z=vM}1yJ#7cBhl0EnKa;?{v!OBozG1hVEHs9qS5q7l&O$U7wHN~XWf_j5AlT;JnykU z^nHZzb_Y?OrOsPYmBl(!XOZT@-4C;XAxAgj%$A>rxBB8ek^Yd@(v6dmubF4SBn@-A zBZ%~PNA>caP)vqw>7QCyIjU*z;MLF$K{&2Ph&Z)ct9slKA?72jF{03XnEtyzxBN5eBm^zDdtgTx2G3Y3U86hH@bvYEeH!@iJgj@iJrW2Kjjhm->ze=Az!tE@RXlH zl`}eD{VQ=o>jcrkPCggcgOgjTJ?LE+i@}=+O zo}Z}5`&R0g>O=(T6&Vq$*HaH?eq3U~tE7y$TzJxd1-Kf%2q!tC&APUeIsp6$Z9RmK zA{A(krE?VJxC?PrmC!{?Q}KxiqN97?j{v@7uWr47 zNb~cAloz!_xtf0@$(pmFx984NdsgR2+2JVZ<1}hsQ3n%^Qz2aO86;IdercZyLL^lk zL`&yr@asoX6npdcM9~zBHVICQQhnb2-*Iw{^YVrF&!(T+$P=!rP=$LG!RS!KRIUr` zGJ2xTrDkB4>?VckQ477ETSCR!c|8)4PWLxLwFsQfO3#4$dWgd?PCozXT#Z{@T7oFj z+6Z}GX3fh^eg)mw<9^7K8c7R^3SQm1YY=_INmUPQ?N6u{PA0~sG#&~tPZ9sb0C`qC zJOlHs$Xp+y9qBKlHc`+?irK($vNm_5EjdxC-lQfWMkG-DnV(Ro%|(YF!C^h)g!|gP z*@JKGy;yY(TVg3Q&Lc<>v1^T}9J}V~Q2Ln}_Z5!f=|XM`l1?^x!E8aw{1hvOXiOxY7pg}Cu4WOmBwWZC{c6Y0j{phs(RYi4UNoby&qZRKbF7@y2DT> zU%`tnZLtO5XpiDSqqI2w%;3`w0>xK^mnLhVi^St@<53f`DW{6Myl}2+7IsPC_F;0qBD;_ht){E9O)O zYQ17(iBH)c_1KS42dY~u%7yLfQqGk-<6r_CpPo9!nidj`)IeDm{B{M!=Xr<2_ka@vZO7ai)#5o%*~pwS}MsE<(Zh| zo+Gc^efJc6=9AaBbhlOzp}CG<1$hXlqV28x9|>+pMa!iwFs%fxcBtTnEhsSxj$f2$ zEWPnkqTxWkvJO2@Z~ad^XquEEl|+qWkEm0lWa0ZW1I&C{ zVl9~V8Q@4g$n?&ZMeqk}1sQGJk_9 zcHPE=>c%aY$*-E(Af~}SmCE1To_~h(Q|YYD^yEK zOyg;wV?dczkglGi`G+vU+ZlJ}r4KMTmC+FbV5`H4jwDZKJy-g5xE@2`b$5K^@owjD zsU022uhHpYV3BPqV?mW<{%tN*-t|J?Yg>lvz4=k9B1!iccZ@bmbpChH_3&hF_WRwK z5e;CLdt@zBR?`;#kb#TrvEV6EiLbqFLEQfMB}(~gC|T?;HA#>f8p$AIa`6JE&#B2I z*3UNP>y~3h+L9-OLr78%2{tR&BkiNN(Q$1O)oIB;#-InBb`@*-^I(zf)|Ie`uN*LycPQRY&m;KG zgKd3?KDL?J2m%^)|h>)vZ2pzZX1jB4>rm^ezZ!d=s`w z`*$MvZ^`0HFPL9Opj~!EBS(orfdq5nYEPTQqdK@WZu;t&@RoqS%Z?v!4?`0CZqd>% z!*HrQ#g^^%wtgq>1V4RKg6muxH4`t_1GpBi*V4dNSWN@fQse%kjGn51p6 zD#n|6AjVhABcZEja8(X#h@ET$$sQUU>q-s^LPz|Pwxkyq_4cn#Fm!Yx5}E_Bkd@aG z6$NqdOVkI&5pQH!A|=5Pk5cN3WtWJ|j617NB2z&sQMv+ewy=?pgzQ%krLo|{|oFh6mNssY_pW<6j zG7gTfnLt5OUD71EWZpeH6DKPWL>qZ+OATq=n`j=LJdc^L_Bn%rLV_~}hI`K8Y@cYv z`e9k4)6P_S8nHe$H}i$f3@(KVST^xD=l|kHStb){$a+)UR`2^|W^OvElyOJIhO!iI z`X2mhuZ@FX+N*BGiKu)&Al@hDZVm69ivbq%o|)tnc-n0bL#OFFvlccvBZV9I$8Yo_v2Q>|V$m$lt z+T*hg898vMK(sLD^Rou7_H^=A6Tw6Y5?_u2(=WNF2y#HcdG8iXzo;RUZC6%*~}cK^1nt7~9V*qr&0UecykwTOhdLn^{q4coq&Tc=on~Z@Shd@dZCvxb(j^ zUNgj%tuA#X05QaPY0(Pa5v5RS-}!etimdXJqpIu^cd57sWf|>o$!y_&bz}eBc#ylf zQkTF(4cZ@cT$p-0yJ7wOla3=DUKL34&@Uuko96@5#Hq+rO%CkhvP?e5FPX)`&I@)w zOcnGhPt0`F}ZK&0o>52 z4@U%Xe1(x*zF5jcs-2_fslL5n92JcS+kFRUYQb?eCp`OwhPPF|e5Z}P^$+-$jbf!R z8b;j4?`0J(w)cKu^+LVv=0V`7BO&{Py@w`%{Zeku%@51XQbIrW5hU;^Gg_rLlGXiE z=A#5wpERLcZ(8^m`n}d0TX}k!_=+=~M-rI~U-=VshFzk3@j4096`e3wcMzcgsqC^;i}{{jiY_-mdJv`Uv(A7ISi z^Gf<3@mBq=q0$PnK0`Hx`Y!(u9|ctXglcv=#A$+?{Ct4~o$NlL=aO{5FCHXlxw)QC z&^=D3#n6-G8Y6WnQCGY)B(J(P@1Ny1D0Xy5(RK)cst9NN&6YJKMDyDB=x^9^;}LYx za~>-SH_WMX!)1f*Uu-CGr?60P0jD~eItk)e39X2F^{IrQ_NJMR(LhDceqL;`#2MGf z7KK?q?qdN%9&OYJLjpD3^2mMCtfm#re0I=#>%!8{^MOkd3ydvPDIw0r{3P*+lJ+1X6-`gaUkA^6t`7r>a$b{lo1Uxf%A$TLI(GCcvyq3W?`rg<2=FOXz1lVfF=h@*A|KP$|Pq45%8rerEr(>4P#dH-w+_TR;Wom)!gH%4Ty?}|FPjXjg zcMOI;pdFfHd~{H0D#AbwZR6Ni0|w!DV#UwLn%>Y8RW2i9!)=LT>5HziNi=05sXaR! z#&RbsIh9R+Xt?0Kb&}4~wWURnI#ogpzAv&b5@O2JItAVjR(-mE$!*fR8$Tv+0Jz=} zNdg6V0#xJ{9`0ohHSwGs5AHcA{E(94T3SlY-@Ob9cVy-`5Cnms3&gY`YYfpl{)rY< z+zzMg5cd_u-R$eTi(ll&Se*uIF(ePmAj~8i6d-~peY$cASpV4{U@t2Z{ zfDFxo<2K4~IuH2D&9vq}01?>A5k#jMx>k119Iu~;bE@QwOJHE4JN6iab2izE-xpZa zt!_fZmP!Z(Yo0HI)2GYY%-9{Du7PT=%9kWhwDntE5QxJMwiGzyH2#>H>Z&2rwy=~7 zv0zC=MmRWB|MX<$WqYk}F2?Z;L)2nX z*EDgO0CI-BYR`NxsyEtSl=d^~EhPCb)T}x0Cp!Nx#W%_BX)ImSef#Z=y^Z1llNa_SFivC0bkbFd1n7XX20~gf;EIioQ3P*XTd2E@aeu<$ zKOyp*^Cg5k>~cOztgX69X(@8}&*9&gQB1Py%ab5cg<_2KBBe9_w)o=P-Nu!Tuaza- z7C$;@n61{BMJQA01K{6{H(#UCX?zDg#1r;0Ls9<8MlH>In09Ikp80ALN>@j;QmAd zoadsiQ=^OYBGBT|4Wr@CK4M)b2Na#7RiX-rQBK9h$xQF2QxD(*JrlPTH~G9_hGF{XuinRQVqsgZHSal4h4@$fsE2rY^ssO{=lVLNnCR(BlR6H zlPkCf?=h+%=UTK<4M?s(`IkF!ERzDqy8B5>#ipSejx``A-U4oZeDAK6pa=#}P?q#h zyS;_idA@HqSH<^|FH0(5wt4eJPh%T-I3J#Mo`(NWW%T3qv%$8J-1P2aN;&q+l7YqM zAETzL?sSOe-lH)>H_3@7X9s%y??_1 zX$!S5ncjr*no!R=K$HVE|4Z-Z{2zKhGaDzz|I_<9I641!Z9FF@$N#na|9@)ZTfkM5 z^)NZ$7Pd*qIZ;4RL|fUyU8GjW;FyNs;6&Y})1;_Dlx4z5wi8hnKo+RsWeR2|7DL@eTT--sxf`NelNCPuVBS9g71(N+7 zhYQJo$QUAGfz2I(5|HdEaf-N!2S;(Dn3>0k*gw`v1}uicBE`oe9lqlujPZ&lFyS)c z&4CqO<0&)%M&k3+h-9f}fN-#Fg`EG)O>gV8qGRI`v!i8uBwE-w73F(LjAs&Yu z0QWhJF-q1Y;ey~Jz5osW>x-L5=%s}OrFrN8!jivZBfJC=B>6d=b!u?iA!v;Psyb`2)w+wbwmY+>RWdclMa?}Ys&<(gW?ulVoJ z5F8%)2eL7!00=ogxU8&>3dj{aPoLxEt9Jp{qf^Kq7u>Jk0^+BK0SdDZLmuP;u`#5; zAIf*Tk3b11#3k(G^QUz`msSKA7zm_M7&tE9jfrdDzo8INcAd-K@h+8)X$T==tq274 z{qglV4nofe1#)xrP58R|eZ0z|#LC3h^%{2HYYPJd#n`8z1hkiegaH8-95M{d3=Q1( zo2%v0SJ$f+@Pk?b(JBsv;vXrVyU+{s^0w*!U+rW+_!ny$1_-@2Ro^>dOjeMX5XTu~ z;IDb{FT(pT>RT<{FK5iJy)eyQP z4|6m2e5CZw$6xJbCBrAYvBB#(?GtpQ6Hw^iet;bf6C;%vWN1VEZ(+LNTcJVH30RP* zE0SHEfd(uO4A=)Du2+{0-u!A9u6Am#ywcOtm$QLs8$8H^^%R)67%&qG^a}-8{xTUA z3CJ5v-YGK3^9Q|2KrUjeP`)S-o1}jqMj+YOvN~}9;Z^7foU^l-d;d?`JtqSY3iumg zP{J=bQ~@yA8pH)yv-meA-4o`|;t_R=iUXCiNx=LNW9r)Mhf_e zqglGDLYFkEJ#9dRrGMqL>ei0vxLc!r1XF8=C^<#*76g2LR>FtMyht*_NILV4TCS50 zv(G!Hw{JcWB9rX*>#G@>_?mKVx%{tG)}-o6xo7oIz*6Z}Mr(E}3dKE2{0W3F016C@l138mRuSdHz#`ueIHE9>&DG^y^L92 z-*GsvMirCd01{ z?6UNJ`1l*3Y3{5%16B#e#?y~Qu1)Ea4@KO1BH{1$SUvs%E)pOM?doBM+HCS0HWVSP?on@Ac(;T%th1aRv zat%|LAkwN5ZDBW`$QWL|C%%FhTC63#>As{Eb;jZ0?q%TKK5aLCjuxiUZu4C(Sik}* z(g!8nC^V2xW=!D~pM_-mXk)cAEtEFS|&* z{EuUZkOYdrip|3i>d^PgS2Y}U&m4bLkJr4dYgJBBY%>ZMfyJ=8eiN}B7Gr1+3ZMEq zC!RwU;?f4P(iZmV`ETiRdMP}S8@$K1PZXG=D|hhnMZQ&dHZoA%dfw&ndEHl!JyGT(9igfX6Coy6gZ~=&L@q@-B^28zo9aSz*=9Lt`9VfBR-@ z7ODb2<|KpPb*#jlK{Miy@sI;+SNetZcNJxK!+~*3vmvLBJ?IEKX3|6+169qm%kK zWnW6jbJG9K7dRmoR^IxfB!>mRDa*686qF_Mi0X^a|P)GQEwXEQAe5_DgrNF*{z!pzRUOn4wJ~yf6 zg9j1f0yEUlVS>78RP54tZ-)pM4?O{$=GeUtqJ5>kAF@3rFPzEhe1Cm9TUM2gufzAF zJV?tvma4nVs$3)$#kg$zzOjv?ws~aMQr-6fF6e=38t7GN$QBD<%mhBA6Hme+4SQ1I zs=c84Ga~SbWkFXVzpDW^iqm zY#f?r%bgO+P&`a#SxQ!dB{BSf$H$A;p+Z5a6MRHg1D>Jb2`yP9>ttM{va(d3=N+#P z2KOnFOYC)5!d`?E*Y7(gVpPn_sz9jGw`jU$*w7#vsEH^do`iBBb0(O`Rr&wD9ng5F(4e6px{Bd-YOSYS69|6kZ&nCYSfH|hZ(!2 zxCHwT6)?@lK zrSa&Bokw!9{+S&6VAFkV(_Cn;sw3?E$~%c3t65f}ka1g1o{MxCms1Sj%hHMG)V5W# zBPAteoafCMVF!ZEJa?+)tvY1AZfy|Whio#yb$Vqu-EA{)z~gB|fn7=JDM+pZc~RCqwE!FAUWI^~5dojN{Ap)_U4?Ot z>XwihF|mDwh#LH4?$=?qmg(>5VU-~zP(Dk=&C06>WS#QaC*q^c?&I8nVXPgjNII17 zXtp2Qp~n)UEzh(tai(a-P-z5-2^ZqT`>^LI(49dT>N%$y-?5h0#V+2 zuOY`Xvcz4e?vr1!#2~Rz6JpEbW6LX7_YN`C(PW7=nI!GwS#md@)pO`lZ7eJe>-lRn zL}G6n6Up2FQqP3<-E@+6u83aIV=CNGYz$^St#&{P{tE#q+3`xN&Me?o*%VJcqHHoM8Lj%?&-0vBt5beP*ru z@~aRt#J5eDy=my!U(KWf)Q7QrO|gvC29T)qA;lI@hy-wHM?#dHv}=hN_f#n@6#NJ? za0ZqjRQ_VcW>y&jJxqJ^v^8}u*%y9b4n>4Epde<%7tXU^% zlC1~&5{Q6?v2pQ$sU1|Lb$@|Ei$LCSAyu^`1gGES#MxHd9tE>$cDQEyuQ9{^5Xp)K z?;P84h8p(35z*7m4EvRPE4|*LX(J>&y5aE3N~ywiYP%Dj?Jb!`HqrTVBh2LAO7rUB zWa?ogY_WYSv55;2cc!2mnF6|Ynz^VlZ%gH~8+_&> z-o#Jd_L*5tMZg?h$s@a%BkB9bNO+qNcK{=srh0T%KBh74 zW?e=8p;jAKSd2d4jx*O142kx3L;wkeh`UjM(&~n4;@l55>TZ9EUX!e^gZ+mwRlA0p z0{k-#L_0q=jikT5Kz^qSDPS$DRl;dX(l#$DnrP2F&qCST`hu0D+4+a<<(X(c^FANf z4a*^as{(CqT0|ogWmezEOK0FgV^z+J1T;+7_BPCjcuYBT=zy!O23+rWe(F2bZ_RAa z*nYlc7fp=>9Qe36Xcx|Q#bx+#RS22HTH9%Zed;|{p-@E)Ma<92x^8EevbV&k#Iuul z8Ls|mpbT7`DZ7HL7)n>Mz{~RJs{hJvS<;rH_w8T3>MBzom58*QK-!@5qkPV6h-Lxj z{L{1Sr-ELiNx>OMEma7??s$OVg4{Eeo`95sRpyv?HXc)IU)ZkegVOS838lpqBDt7& zS7pCiC`;HG9qM0(eadB!_^HfwA@K|kGk4r4(J?;CNYZ%uhlt^;2*&9h+jgG4^6=O0 zwc=^uIXESn9t&fEq&a9IADi1M|I%3Rq(+WK(&A!qzq$z9aYi>whpt#djob#9$AMaF z3+-fSCr|$;>BA&u{E-D%FA*m!-pf2$>wC zNg9B6mU@khR`Gn}>b|uAB<3$YFvdTLHXWdFBUh1eW>D1Zzq+z3|niQSf|l2c%~+Bpw>Ey-!>Xs0lm?sF>?my`(27Q_t?q;TSjE ztwvPMR{>{L6**Zip!N1@D&cf2oeyA-o*FUb6hYNx$D zs^F7rY2R4umsjmXK&HxWG}y9y-gdCiKzIh%u@g2&`xrM2`0u4O+BTu4nl^ae!tDZh zBSi6S`#xfg6W`JM$=Nw)diR=3kFRM;@_T9Jt*slPb@z9Mz=?M_+Lo(F?7d0ypO-R0 zm;t_6irkgOVg8JmOZy0|ylBR#eoKz8(ZGp%rDgJYIP>u#k_JJ~zLE55<{mY!pc2p7 zI4k^DwG)AQ*P|4E9>U2>chP2qYAj5I*;D+7Fgx!{ZuwwS17jU=Q(HJyNuwEC5>SUA zvo*IV_A}R6UE2BG_D&ehCG@Ypu7f4Ju=H0SdQ4)#?>ftzzl3R`Wl!QzIB%qV;16=> z?b1vxJx>LW?2SF{YQ(v;-60J5^Y)GU+BQek73Q*mW+2GrUlBaD-){PEmZ|a?8WYt! z>a$-Xcv6#hd@Dv>k+GMgq)m`31S#b1DR$+x4`8g)a<_s}rZGt3 zc7AAVW#W>zvE}~nSQcyj$}^E=uS?`PIB`zQ4WaPDn}_(jTUYdUHD@flY8eqz{`kIVB*6jD0IS3dMw zN#lON^96Lxt4rijhR4M$Ja#$SUmZl>w4+G{$IrG1R@wBX#Ujj+;|t{G)?f`jemLgj^X`!6_gwKXj{Wf;tC@L#;aiu^r3 z(^l|#_wW=a^wN>IM+DE?`bg(9J`A!D* zYAcs3N5825+Q)>d^NYdw493DL4(v~?V(H;*Sw6>P;<;Hyn^i5i=lwN^$gQ#c`Hh7_ z6406D31U(gr%arCQOOL(KarsNH|vd`#&zVFHoA$xi;J`oq!fvR75-Y>;h)P18>bsr zTyA+A9p@7|K?Yl;KduLxqeSe}9Rgt9vl?$MGe)#lq;6Y4nspESyEU zYDv1#bgC-Ogv=qIXR4laSte$6lC5F*p|MiciBG4ol|fjCkSDDUaSGcj@%>}pn&!YX zzoS;~X!A)Mjs3+gqI>stLi_J9vr%8d%r7$!meRT!`wq|Bo$i3GmW?>Uaa@4+#-fcp z%qW$-yZ{3L^h`v#)cQcL9@O$$Dfc^Ec_esdg}a+j8|;Iuz8?}J2eu=4a^*^f-42k*-MP%(eh##h)=f8ijM`p7<2s6VI|vp|&nD*=dp;e}2?W!|1Eka^Svtzl@Bn&3%7wi%tf0KJ`=rlgye!HjIft zyE4+Z(BE^#q;58w<-$2JS77|=gl`VjK&$MOMj9*qh(r@*?oKw5Eh3WompcV&k7kBr ze?P8=H?J3VQ=#)h<~#XGkBg%S&a-&>nH+z>X_DT`am}k~Q1sGsTcnobPjfjKdn zs&psimANw=A2TZD+4HJBME5WTR;*7Uif@GeC*5wk1V6y-jEdr4b6B`6m_Srtq*lzm4tS2ep$Pfq{7xl-xU(^AxYf*w_MhyzPp6iO7FOzOUj@C3k^%3yFbdN@9iq|9$TX>9EaLgWx z>|W+XYdE81d>gj=ra0)Vk&$T%EnHH`{oHzAHEiJt;)=A49Cuje%I)b<%24?XcPu>1 zo_B6Tw@cLADZy3!}QN_Dew%Ee?@U@O78G3747bjQo3kux%GlD z92{dupB`)v2M^!~?7swd4b7^rlKH)z`iL)lI2_+Yn$=|mRNrGvlaX`7-mt*==f^i6 z;66NnQKW(woZHsj6A3=_rp<&-e`i2bUh!mtXYmv8B!MNB{%-p>)9O{df(xDah#kZ_tKv%|%EQv$Zxu7at`8&l z*;4-7Bm>&>u|c$S%vr+~>W3HjI+(hJY4y_^`Wpm)b#kx6s(x#G>SYC8LMf$_Vmwfo z_rhFi8lmaR7)5dI${+;Q6vl$UFZN@n>WRQ0b~AdadM0uIEN07At5*|29mr%16RCsM zGw{C@70$62kJz`YTcD$s*obNcJs6>)DtHZvfPYwvWk-`C$~#Nsi83rG|^}GMUjb)GD=BPZr=Bq(KHQ#79bd* z3-K)DwJC}AmMg9B8nMqToL98tF#7=B^ly2RHz^-N;h_n>dYp|7LSvkz*1MV&NFI_5 ziQ@Mhf>^O-5~)5)(`FHajj1%UP1>2b=390TOOxN55q~v&hlNy#W~knQdx|voQ5_2M z;qYIOU5W4P{CL2;9B@ WgXDO2`CCWhAtnI2ujA)ZYI~$m);I114r+#p$|%zB8Jv zu?uBmQNe*4wRyUY;`dM6&0iOxrG(PkEidE;0o}iDtX~Gj>7B~uieq3%9U$_7Cu8h7 zxS){fB3aokr#rc0e&M(0UGc9w-uNszleQ_!^4&X>%7i{b(p26b&OFl87x(*|30f_! zAAUUvBDVQ)C$GwTo<#Cx1_i$gTgX9TJbU^ z*%erFs`z@o52^>w@SCgvvR=IA3g$HTB>3&x{+$EQl<~_EMY7@`iDyQ59&ZMuo7H1? z+DA*G^Fe0!2IleE@4&-T_@v?YM*pin&^!qU;6LTsT>mN8=Hy`fpIn=Zh4sI8)Uy!& z_XR>GMm9Fi|Kn2nn4erbYZIA0TDzc4M#NDI>U!?rI{AQ1Fn|ym8TU^osymf@6b~wm zUYBBV8wNv-SkGg&^DNiPH$ZE*wP7X8U0`f$OXO!Oo+VnAXP zUO*N`A06QU9p%6<_}=~j@^>83loS{ts8gs0kO~*DG$Z92R=5=Q$=*I#eM1;Y%iAnX zz;ZTR9~~|2>nDPHKr!DMv=Mv|h>DPdbse9PgmXNeAdVS4@F3qe4OnG58}2nB2v|pZ zyJOI04ws?48nVqSupMF>+y4)=-JHO+f&3_76+zd70aMW^;n4ZUaE{+7t6`c0+k)~2 zKp=I&>A?jvPzV@h;A_wUYq~Kq3HEwYSARuD#j~pf;{{0Q^hZ%Z(u78Nm#p zvvYbkDAYgTKrLWeA~%D8j_h9)TX^5NKtWoc>|pC$gNWaR>WD+|CSi=Phew0~*~R2Q zA(FSXkJ-~XgzygL^5zlSH>iQVgM<~dFwOB{>zly^4(8drr%8dFfzwE)FF@bxn%b08 zaQ~iG2arLU>ppWrLZd)$(NGW0K-7}oCc%LBKZ7*`_ksNA4S|9AiGbFSfZRA*A->^j z5BGt-gO9%9NSJT$oC3IjXpy7>dg*nZiM* z`qU69X9VVv7}xG+*$Us}5#0lbFoeCgfNFO0dUvCd?i&Jxu6Vzh07bomR9tLaQaR@S zW}h4sWZ=$_9*zzVpqwFZ?Z8{S5#jlW2z{r$gBAgV{&>L`1o~oSWUz#vrj@3WD* z0A!#G{lR{S*BcEh#t^H1pcQ{nyP@G((^wA&fPl;wLK;9I6cBswkMahoh?-R(Gf8|0H$dBghPaq!qtdICwnJ{ zM+YA$;hd8~Tm9(Rh;8jpd5Lc*{!iXZmxPLS5K~z9A9g|>j*edl;pq&{+CyLa(R0TH zsF+OrfbLq_C0w&R?-`F*a3Deoig-wP3}JcR&rcu*yCFfXfNg*xGtd}xXg?A?kZ3GF zkW4zt%uUPvEocBCBqT*T&)PirJP6nuSr^lfwNkEyrQ zn+^y>Dq|_EKs47D%>zIWO;3XZWd=^!=3EKR0D{`V{08L#ARdSTC}X%bkS!qqn3FG< z@0%;cP!M8Te|>ns+Am^835*DuF?d+9vIqOk-8LRDM{Y{o``RN9#%HZ8Vis2*-BsW9487S5fY<}^c?K~g6`;yxC|aqL-&^wZ;s@eS*c<*@JM=9h zdqOWSAEEro^Z-@zW&Sk^2M^I1Jnd*!YIss8#LgyEt*)B5WQUtYf;m}vwO{|HSv=FtvA*^Rw}gS4rh9n_s9 z-s5ZOz03SD%vlj?|SqL;Mp4qsP`-B*XTkSqO{9%42~-hC-KqsH8Lxy`iC=NcOZLQSE!>Mncv?e5 zMI#EVG_R&3a3@Wts#Xr&Y~bkqO5nd&N(G{esdkZ&lq3b3c~(A{lIZ=rT0<`d=#JqD zWrvE_y>kNf#)C*ZP1`EoPsD|uNNvir_Xb&<4^$hu!Y@rh8zI(fL-2Yu&%#B>>%ex5Q2wOdpphzma-_ybpzTF^U&w?JRBdq zC);!$FRCM8=C(9aBa+CfRGB(iXo($dn=*i5x z_7A5sy4QyFy|D%9uxB{~HTk|VN!l==uRoG{7oYT2+~On^{Roy6ms0V=yH9qL@XdC@ zTR)<)Z3)|g4gv313J7Fcjc#3#J`z3N)y z$&6qa_C5A#hkG%EIwz5LMBIm5DLh*eos)S0t={)63kZICaRHT> zvd0{Jti?$-=z|(f>NgCE9U4SzDkC7#pb+3vXs3(gp%(z(Hyx%)kVNuxHr}_cc=30X z*duWUku`oEhI=<6tjS8uR%v3tcl;qKSJYuIk8NKgakhLxUmH$J`D@x+R8;IAnP|aC zhyh%meI}){+)}+w)l+MpB-gvj{!z;1#IZrv`kyXS zct5V4P(6LJxKx-ayN(zT~h{b~s4Fw4CS?azkG}PW~h+2)!TfLa% zpE@}pK|J=y>+PS=p3HKoC?67o+O=_VzfB|68pD^p&k5)lPu#;)RIOE&WXW}L-06jP z)#2_MN*6Pnez!O_SIs(+{uX>DjlCZ}+Bk&x_R0{_*j+`O(npx7a_h=O>cL6Bj`2zj znrlaU3#g|cfhQ%A7uwo-=m29AZbW+4oXq1&gY_MvUj@IpJ<%#OWn5ED{qYu|bDkbG zNdi^us>6v&sJ_3_!I>rM`=s?F5O9vQuL+0iD+}1XzW8rtjsDs>KgZlD&09f1k2giy zERfl_Y8W*#`@kw%l4mTu5+9M6<rutdNh;RrsZQm&c;{&_ zRp}Iboi8>BTT;$0XDWSJX5*HES}@VPw_*R5%+UUW9QDS3cjRTY4m^GpY_KjJdaVnE?UVN4}bXxd^6yrNJA)R^!1S@#x)(kl_*P^;GOy86HP}$ZlWsN1{Jlb$*GX z`_p=<#lF}lYSCE!UI3Ql6n<4f+?p~H)# zsm(+Y$znoo#wC_4xxj82&2xlnyG_ilud5O#6&=OzHmvuy;Vt-e9@%LW9&J;vJo<&O z*rFEijcO4ine9g^8T+;0;nsKA67xeBIMevKk2k%?#D~%@i#CHc3^uNPi6r8<0tos@ z!|}$i@bSuRh|(~{nPkhXwftO7IN!3s9irk0uCJn+k*oEI_YtW*Bb*1k&Db6=mMz<^ zmtHCNeT_<-sorx-^M`AXp_En3$~~lnay>bDK)SLGZ$9?o^(xbT=T{e*PXW9|g1;!L zOPdng(Ov|i@5Uyg?FypkcnyTTPLdclMGd{-_GR^B2$|{J{Yn!?MKG}RcC#`4Mf3L3 zW+lw-Kf=2)Gk5+fFDL{`qv!YZdA&sM24gkSTcODb1$>~8K*X5q9l_209%{)r3@XHq zlNB7eXA^V`mdFy|(a4WEA;Ot$S!S>kIT?@ad+Bm^f9V_iw;4CLb~Z%0 zbVQ&Iow^QiHSOn}V2W&|S(Zdp65ImvGO*J)zwc&lf&u_kx4(mBdX#%I-b zybe87dFZj-lC)4Bl4W#s2CE~jw@}4zS$w7CT1#%aHj)9fO}vHEX-sg`0`^{v!}=8a zbES5Kze2uX{;j!Z)!SJ@v4~UeciDBk-WY%jLnR1m zBIoAAM!1RE|5%b=8qQm`5jwfnMD{_fTMyHwX>G=p>c^w|EAsfXETO$HkUg^I5EWEU zfZ-*r`=pgi*fx)<30yf}NT2^+TppU19VLuE)Rr3O;d<5T$g)rM>YECQy1 zu}DMPS~oHE0lkTUX`MeMeV%hOh3d!dwWPrL+Lh8+S8z^_!8zgA|Dxl z4&7IDoI(bdC5YuyH$85Su+0YbXvryNb~;bl3O)v;zjELeRjN|!M44GGFqP_dG-swm zeA*0=Q*Ql44h=bB{M$O(*xVXYO(8xe8lCijTyS%i8WH_~l%V%`l^2v)pn@A%=&T^9 z3>Zn_CW$>4!(G(bTKpLAt_j%h&wt63mX&DjPZ8=wA(ugD7v<>3_*;0avq`xef-1|> zv8~tByQN9luu9t9HM$gPu^2_26r6UG-fOD#SE^Bp|LNbW}3a&q{*P_wa4~tO{c)> z^gc%4?!(Bu&{xJ`g`~h|`1dyn98YPvNOx#rq^v#_A`x~E{D5y26Gv9_C||?l8)o%R zYesF1fE{;12&UeLIs?R1*td}Fr5H`BMl{0*sKUbJe#!Mq)XcQGm_*+iJFZ7obv+Er zC^^i1lA7nu(~S};H-C;X)m)i-xvBW62VE`N&?YK0;tg4WgJX9?uuZhIlG~MGoSgLy ztCr`*JaViy7R#Ju)X8RNxM*7%0x#Fx*ShxSNNo9`T)FfJze17deNm?TA36T|k3QX$BL!Thr?|nH+CtWf=VAWSmB?Dwf zRcp=4Pdv9-f(jGQ0K+=IlG{;>Q=Nu#e6>6&KjB<4C8L`AeLrR8wBiU~R$%graq7*S zPRj90X)8+#@9UDzuBZf91V2t<%ZwIl?vJ&&$eNm?uS|!*DH{_3`1g69>uua zey*X7CrdT%zY+5#c27noIi`@Mn&4Dtb#~I>x_#oFKo?j#J2N)W9AHL&( z)v*hvVCCN_R9@%cg{GR3md7Q<#C9RZxM4iUCJf=khV)HD{=LNS6}Y4R2R-L$v{UIg z1#8Zp)$1(sHuZ~%tyHF>;tXzF{z6Z;U!1;Mzq`dvi)IQ&^xa}&tF-ATc6)M{Q0l@tO?WxH;{jsNy=?Ne521Z&kceYQ8xzjF$h`X&F(>Ssv`7z05gs*1GWO%Keb8CAx|5&l za$hSEnB7kmPB*{YsOvOkRqJ-_*^i=hjaK`Q(phUCAQBtL>J(ZOv=MF?vmj9qb7mxn zdeDuQ8e&?zy17BX$cBes-7qqC@gMrIGtZrKRSzD!9ixrNFYQz)>LxJHuW)zgp{fUa zN()8?rVEl5=q4{w_39%jynT}PAd!mS9r_d~jwBNINt@@BOc)tXl+;%nP%=eH6I|^1 zKyJUveHwlc{f&!lNHEHgSxs?;FVtQa~9rfXmXU-W&tqoR&-{ zZ!6E2NsLt%oy;(YkuK`!?6bfiEEa0me(|N)0jzX*c?Gem;momKlU_`NkJN9pP~XgD zxRn!lG_?d`%|PxvmP_NvR!cH3J4U+wI5+vo@cB-9P{FF=HsIwIyCXsEqn#1?hOENM zQpPRKUgeaC&G$&ZW%>V@g*UxK+^`mc(T_o2HLe~dRxw6arvBb63h`m5#UE!AN3v0Y zf&#nt`3O>y29>9UBxlPUB^#^ZDZsqzHzhNZMDx@NLAQ3jrR`P73#;JmNR~IiY?U8% zOyV9MxS?y7bjJR;_EkMi34IhZPZCf^X&GDeo9jt?5-#$X#K(PRqx8;AGPbC)SzN36 zTWh>mtn;%0fdMZv`AE-31==)Dq{pM{w1h%!)bZj>aecl$l36vebFg3YE7rb63^uImR)dIz57-vr4g1&VoNmK8o7u;r1~qI<#p=6hb~n=cXp; zbPO^vD33;iF8dW)b4?^5)O)F?Xe12<}ZpE7?J zXyA`H6EF4?87)^*+&lC^oPfnsEqGdjkC)K{@a8GWIZKd6%pYSM%^9EG!i|G*nr`xm z7gG^6;fZ@vdq1b;g%5?n8Qv&8$eo4ldFb;p?j5ovh<#0XvkjPB2c}%_H`> zV!QS>zvQ~#o>yv;MFl76%~ZXpR|C#rzIm??{X#BGD~*uq^(!59ftB&$6c(yUD7CG!6qu3 z;7!SfC)HK^x|N_UW~1Yk)wtPBCrs*@pAocIRZwbalO0dm4n=2`$=tj8D3snLV-)QF zFwrYOEfLE;&kWu3MOvvz1fWvVJ-sl)vO31E*x*1dznrw8(T2AvlgsJFIhnQip^1jZ zb0A^zp7X2FcH&dEjg;J}M}yQ@c7s)TuBQETF60t^VrMGa-w?3Vylc&RbvSFF_O5g+ zNg9pHmH@Sq&qBJ%yAat}yq=VK-+lR>NsrP*DPB*{d}lU%tLJaV5_+LEtPop06rz%c zGn_J*C%RNm^WsNfXINr}l|pAL-a{MXc=6G!hVGS)n;}-qe(N-uBeXP{pV#0rxZdkz zwE7D#a=YOSBZBaDl6L2r$16U{0?^9G-(ema^CYazuw@PwwyI}6SwPZ0_PuB0}ZF%x? zBX)w8n9x@wA|XeUl?7A;+&wt+`#9_Tb%?0ApJM(UY^oB?6mQNb=^y-VhdX~Q+IE+y zAGqI<>Qpa2DRya@K1Tbdy_|j9LaE8tctF2zQff~j`os@-j(IV*Sd*4Dx!tV$`V^9o zd3L8?YGgv8A%{fuI@OuB*F2VMNL;?Y4Zo%P-KbiMbBNqDZi6t#J(GBcl57?d<8kyW z))4;YC&+U#UQ|(*n8}|}H?E1%`STi=Om9ucD#9ZRkLkYw_J)X#*=Rw@Mj*((tjU&% z*0CQr_|TVy_?T^n^eZUAEu&Onm|I)+R`(MjDA)y-D7f|_nT^7OcQ6rxF?MR^!CnRtT zOX4f>?BH@%j`5B0q~wZafOgYkvv(kMW?qqw@&n3;assO73%Q5AV}aJc1pO38-9|2v z3(5?a4cNLalvsQz?JH12Yx3W+KQTdY`7#4C!DXBLTI}^v43~(sz{u5Y4}TtS?CRp6 zl3iLqGQBJv-lW@W%|hmr6>Ez5$T1$>@6qj&d=_5}V=CYJTPApeHv`>H1A_Ez{1G%5 z+#WWysA-XJ69dUFx8~qOlQVM+ea4IOk>BX4lBV_0r1tNdygQOnLHt- zbB~S0X^sd;Q};Z}y(WD2PyyVi`sS$nDSPP}{X{I>Rlw%maBKG@gBUy3!tgq6>4db% z*?xv88!Xp5e{IBJQ`+yOwV2}>@JV;D>I6#BJ2UjTd~&?|G+3>(V=ztw6F9~XP)%`) z_IYEQUUp83WNs0)BuumkPRoC{+-%{eR+itNcOnoMZB5ha^dCCfE{A&dNH!1z1r}*N zCWMXRy)5u!hh@hSJU%^WG-<*|$y-AhL;Z|C)3P_YD#Rq1m-3#-E@E8945=xj?KT|K zkFrI}T0QYyn?zFePv1bo;2c}0PVsUr=Crw2ImmkOv#$M>T^F;}#N}K1{LTJm(#A?N zF%`sshoVX{7Z%qj<(GUW!R;0Ffr+r!QzCo>4c>V+=x$_r>ZLM;xPRJ>CfFdFDp&uY zy;zDs)j1}iTQ7j@!rNFHYJ$RoHV~OG*5ikuu3qNgi|r8&V<6Z_dG}YPV1!m1OA*0| zG$i~G4V#(>+=yMOIk?uuJ046JXI(_krO_%iZySc9!~q?@8tJG^c)5eWz4J?s-^CyqX;UEQoHRU0p=g>O+0 zXYuJN4s3J=L1zDXs*(m=tXOuIfO~6U<;CvcdWQ5(Pav!Wq7i>jdO0CqwlLQ@L9c92HF1sMs8 za4B3gT!b*aSU*JS2{nEFyr-?oL%P*oz8~6*%Qh2?{k5NUb4zPg< zanPtK{Uq^!Y&_> zx(j`iW~n8IE9OK+Od zO|>(>@>JYDH9%Y}_|5p*o>N(FZ#ye&8kPNWoVg!+s8ezfDp}l!5%2tQJQC5N6ulcK z)6#m@_+}rVVAP{0vd%zNxli5>#O}Y&>zChH`stFrbjVN^`nJY;sH;pRo)Fa6(fY|x zkx@FMo`o-T>7}|Pw>UBFFgFL$7S5PJ2lkIK7xqn>+SL zqA}0sfejU0d+Csz+I#l_P3#_aC3q+!RiA+! z0hxB7=W=zI(w%)4PD6!j#WLN!2+ch^tq}vLx{#GjeFz-!pSZaR&g&%;*sh$OIJegk z+TI9;8|l}BzI?aO>;i19cB%X6m$TI?UM&qi)mO;0rvq>^g#%vpeLI+z4CG>vk->UILDE{;%pc)%nF* zsit82^aoA#N6jO3g>y;}bp*Yz6|068rMtt(yv8}ZYi8A1x8)(~F=ZR8TgDYWN{Qj@ zmLUb$spou!{GMH#^?uh=O~W42bmEcDG1AMwU032?qNI47qSJbqxRp$n3EhAe|*O7N>k>F0SdI-+1^L|5UpYl!}nI=-Sfls7%hssGs6nt2Q?P z6f(M&^l%%ZY12CJ0LPJdhsbVwJakn|y{Pz-h2&be_3xB4BoFIR@YGbAPCHHk9*H5) z9R7k8)GVI(-wVjbI~bFm9Et%&o30=PiB4RVV~jG21`@|2e~@TAF|HP}yroYtV4y|t zqwfEn{(|j|=)S0O@d{414I_@M1l0r9ctRFR$ihq3Bi-deuVEg6y8M@2)t#ieL$L!> zeAF&`(Y=hMN`BShXQ4M-@|n`nD*t)%+Vz0cYbBT3YnedXL*(6iJ<9S7j=UZV9_-}o zZMV+^TeXz)f`l{J~*2+3k3r#GNR?34vwb?8xhtSI8BPpO}n{aOc4V?tt;Ueh{ z{Z0K<;Q6>j_h(!sMqSx%-OI8DTbnoe<|}?x77Q6Pb^mY5-EJ=PDCXDH!@~IP0d84D z+KVcaXBVMXjNJQ$Ro*d}D{()Y+45vC^B>Ez=i^fm1t*vR_rvXJ3JaQX0y63vgr=wr zx=;gS8yg)iSmqi(7mcY)MITmxt~-%9yPOPH67JPVfpAdkKk;+0Vl>h$F4QOfQOP)6 zAyFP$W_VkJ3Ww_&L-UW@+5^WlqYTp-gvgpa>4^aN9W0+KetN5F3hC zfy^at&5Eb|!3rv==n?nG_qe{slx8me_^I^M<|H|q>OyD7^peL{FCF_`N3qV8U<{2L zyjg^Xx6N8&W$tbE!T}cU2{Y0=4^=HdHdBm9c6(tBU}n0e2?iTaWT{iL%snx)jn0&> zKBS9S>MD~nQT1}~{ei4tQ@H;FwaLl!AE-@cHYSe$p*ER*mXmY+SNXrNP39jT%>NbJ zZ2i#@S!1xvN`|{o!)|ZWZRh*~0fn80WfXA_4v>@yCf=@gDRps|iU@I`+Vz<6jO)1p z)IRw}HHWpk>F`{4-<)DWVAJWsThc^;O9F$0Io>)rMS++sKRt#3Z*BQxZ*6s@!@_#G zF-pt{7|B9_#?vgpgP?y63a+4mh4h;`31V)^(;t(G12ZNTLah8^nbu)r~NH)nAD*YIDF~rcg%*A0Izkkb;t8Xjwcl6mQQEvJw0& zAfHg(JsxdOy&niJALZ<3f|Cgg$g9O|uJ^bD(K;P+4h<{-2KS0q$bfQd5Y7hN3A`^D z)FovZD07DJc6Y?eAEyrV`y4JHJn2-w!@tWPX+03&1fiuRoShwLz`#=n*S9f)1U9Fl zco^dOBN!8`TV@c+CqV^yf$RXi!VN@s2<~Nu1VJrs1{U-P1SCT?yEHq832_y;#r8@c zy^Dd~H1MuTqaPfBfehxS_ueNpI)iHtY+esPy^M1Q5aAo-`3E%PtxdeEBdOWV=)4>7 zU~t4YYzdG%Af4D}z(M_pl1@(0PYxjhbbtsIWVCDaAHDQu@_Uncdxvg+efne*%>Y?@ zAQ1}iSR;NC{6#=Lg9qu;*%tKU_ox2GF}%M8s=A~#1cHf=!NYvu;L(9?_{JGT*j=7M zF_?nO|+2zL`4FA{o;s3pS#W@ZS(i04z4BwO6YYCi{@^P64VQVD@_3SqX15z=6~K ztV@v}9??PoGZAwDG)Z))MWw*OVT3Sd2q zd(}rs2eov)ngg=8w}0|Yfag>DqfdK*K;@6~FBiORe!GddH;{=~uKhYdLj(iT)eY23 z-@0Y`DS%#Y`!MEz9lfoBfwpn>BVulW1J%wT7{ECWf4b%efdJ8;>lgMW5C+Jc{Aj-% z#=pe}fau$ICBgd001U_n5DrwI;yyt1$GcE7h2J>+nyh{#oKYvel9)4vPdIlVZ7x4` z>9ze3!rsD1%pMY~KZyrek$(b|4&*1sUB9a!h575_cZdHs$#J*@i15CI9i;2)6%K0mvL2J$Cl#lMI=>Qx8verI<_dUO_u|MDU8=jn6zykqw0h5>C z0k@)8fPh;OmsijMoI4&vA&=qMUbUlE{GAqohSNZtPo!UdPfkL96rio40vQ0s!6?V? z>aY*)!MxZ#05_vwu75GWSLgG#YQNDG^3AwuFUG;m zDq38?7#RImQ7P{&`qv3kz$qL!*ZSA2U?0wt0LcWX!aw&vw;yRRW*5KS4{!I-26zem zIs3S_{Nf0C|LNO;IZuw;+p9KE|k z09;!&JK6`lVLvYRL3>}ng8^O%K!LnMsp&9{h%)txADMHh7u1&02(b)BU7wu3rL{Bj zaIMGV+wRT5ro;9#uR9X6GVZcBqPtZnxVPwhtlXFh4m{~KZ-2$25^0y3^EI?>>OW#p zB)9Mdm$y9JRW>*E(;ot>Z6sr}Tp)O7^5p8{8#;Xe%t`IFlrw88j;eOv(IZQ@F(^1c z+7j#-S&eiA9I7T&?#5=}zgk{a9da4?Uhg)KjCbV&-*Q?vjJ17cyGGDFh1=rT$E&qJ zvij2ueX`waS7_z3%s9}$m@S=03eQcDZ!|e}2JNZnH+K+4dK$ z6dkLjT-5q>{r-Q9y;F}cOrU1lwr$(CZQHi(?ze5*wr$(CZJYDuB>QA8_QhOQ>JL1X z%36yv zG_sdT09w0_7f?m7RlEV3xVsqh#%?yIAImM)`9yD%qIomPTcp@35XW_+raaR1wgbdH zDL6Xi#dai^B1sA?`a_*wX8n+21TMq?b3wSDwG0Ebd_mPfCMT72G3WhB>bUDX@NI!- zXMjuz&}p9|T8j4VG%Q)6OBg3tK1cODvLrQb*l=G7>QxVrY;rl5VQl`TlB7F|^V=}h zY?DzT#oK%PP49b9$h|TIkzrth`JTP$!8fq`Rcx$bvn=VicZ}JnW*_PPA-ew6153Rz z#6qJYa5#Sfh;wkNORwQ4h>~=Jfu>22K=M(%=vC#v2WR*!Gd;J-71HsWkrgY=gFKdv zA@{U!2WJG=O{IE=J~w*(ID{4gCcBDrL?6FrT#V`)v_^86R?_;LOvP$FQ$eh^sdCLs}xt)Qq_`~N~ zRuaCYrxOe#gMkajce8q-cMpvx!oCdt_FZ^TY)x`?vRF?Dru%Nq$w+)D6ImAz`_W$M zZ3r$anL_G!k{FsX?Y#V|T(|h0MlbQAA8sw}R6U%Uq6fzu^9EIx?L3R0ZW{m07cHnT(3u*riR#Iq- z)f~IeW!iN=%Wik~?-nH=_kVcoxtFp&5L4xsUxUZ0u-Y3ib(?mNW64`_+*EHl(NAaG z>`Er8E_%Df;WUy4)X-LtNHMBK8lu&T;ADi|WnT=KGDOvoI+Y%i(Ta}c7_K`6(^tIT z^>(&~dm0P{gu3+RPgKH!+tfSy3ASgS4nyl4X+@xaDF*@>M@!=x!OQT8qzqbiUQ34? z;DOX_sh!;V5=oZk9nL$inxUZx-Xfg3jkz(_rrFQXMSvpY)_cB`yH}T}amCZY@EmQ# zH};$fgf)P;IBr!Z!~BB?YpQooS*j*Rad8hPNvRi#q`UYms8)5xTXW zI?=2ywo8Nn3k?|&e^nOw8&GlV;a=GqYb2vqKXk@|d5&{y7tq>z z2t-uv1dGB}BPK#<6dD#VuMv~wh`B_hLSv>4IAGGx{Od~x+zPjRbzbVxSeWu@3lnwi zt`sznpPdF+WK9cRy|Ex!pd`Ny9)qz~*D@$U_X*$Bs8u|oz7-W;fbLhJp0@Tg+e)#- zau?}f)xWppE507d>y$vsbak!#EjE*x2RS-a|ZZ5;lN&8(B(KYjFe zShOP z=JyMJ6D{6|ikA_DrwL|4Z~M;lFY-%$hno?N-<#xSAKu5n){T}O+;&p0HK9!JG{6Qu zAYn0yeImL*y7q&OV8_s-J*e?;re#-$J%>*PA7A&c8GGoK9`d0?z*Ka)PJs$nFq?AD zHC~{~n||u4=MYbhE9D^?5pZvzbporxA(UJbl+S>2M-FO+n#i(4m=${2LsEiVeYrOe zVpgn#^PWHx%pmcAkOTw|P{Z{(IPbo|Wwcai`6_Zz7r!&cr;S`?6NBVPx|>Df=1nM? ztf`tz;wKNbckkhKtiFu{G%umP%21PVDswS8eN>q&H7t|nj?Vj4w8|GRPs8*cru;le z85mrZ{bFs-CO;{MTffC!bfOKa?`=1$7537PPHzMg7H|+~@=mA`Hd4}4j z$Xz;enXqZ(yRkxXlN3lpT;;c#Q}N`oh^Mi}C5#ADOWR(#}=%Hj|nQ1mx12Xx-I7!|cjsiuGA^kT~HujZ~6oGo_f4Z0lGFQT8NL`FIu9Q~+C z$x`{uNhS71OJj3$)xtRchVDF>+N%_7!8@I~>c%>&<2sH;KZUGU;46#GAh45{Fh)tnMko5n6ly>QU;@_fF&*#mdBOOxCr| z&qK{!@?U?|Q}_ec8Bje)Ty?w5Vr!Tzytejb0Anor=Hv@d4segSgp_1XVCANaF4nb! zxRsoY*=Y?*L}>DSTZEX<@31MacNPzx@}`*Z0Dtd972C2pSv+XqBP~uGY*G9vqKqsp zH**xzKT1ALM`P^%=>tN;YobM8JJL1dqvw&<{Tc(T9O-HZRx6(6WvfSO;J;32VakTH zG_bYTDi%+9=Hv)(Y7*fi^XzPK)R>Z_<}?2tNF>B6kxkA7jy?>E77854L}RbaS8Q?+ zie7OurNcvaBac%A?a7dfOmDDD9viYXm_Axi@v4>D12v2pP4iC0TnnJMbo?M+F$Yz7 zL$bNfG|yqo@4H7uuZ^qCCZ(y0$2cZH>!}Gh_f^AL7b2r*dZ4B#gw#fh%ybwml-hRo ztK00YDml!Z3}2MMGgMBonP|eJ?6c>;>8bw3eWC@CaEABE{LVAi5=)8SqoC8bhmeHU zsJ)x1qZLZj8lCZ?Q86@?H*TaP=giFrCNx!%U=ZX7K%Y3rvV>MCg;zbEs)m7JSNUAg z{MxyWvz8G**P-LKo+QTBQUnLuV(OYPo~Cb4_h z%XU9Eh<}z;3{j1j9wHOt4%!BNzHDATGF*VF-Y4KC*%3onB6l-_V8rAsw`X$Ss@xSx za941!%);#_G*Y$T@s3m319J)GA0H16O}RoSQG3gh?zl$Y2D65$l~Bn&Q;=~dlgFG= z*RU^o^`w0*hudtPQtxJTV#arowgQo$W5wqyX-U2^>PU~!#}ddX&7Iw-GBn=V zGR&_I$j@nZk(_$HVpLV^L`%NJt=9%vIZA+pF?jZ8hRvPXSN67t^v@R`*|f-;jp+u# zYHbkQkOdGgx=N#V)3f~BIPu^Zcsm|xNn$A+im@q}JzbtAbL=y!!X)X#EEp&xZ+uL4 zxrL-@A~CjgG5pec(_80fYt)S#`j!aMXWKx$bq~2(q_=>5pgcBrf}ImV(~!$@h>5P0 zKFuqpv;}0qzGcAA&=o_=DKr}9Sy z>$9b_RVBS5FX~Csm*{bz>XIs-b;P*jG)d_1JyzO1y6&TcyC>lcb#Ym@uX_3NU=unN z%I~0f{2XI^@7%g6U|tHEhz};3;c%2ngxOpEGVyS1jQ#pbgXWugYNNly@BKE(+i_te z^A%hePEKY_o#Z{*iwU!0m_hy#1=|N^5y<{E?k4vM*mn`tkblP_J><2P3{B>7D89_4 z)owmaa?c5bRW(a`zb6{g&}N5ChtgljBs$|6q%QljbnzavRi_W5pDeZl!eTp&v#jgP zJX5%)0KGfPH3+9o(+)ev;DJu5p{Ua#y~jiLPI}abzTatZaIrFpTbe%h zu|%-ctfMg#^QVfW%;|c0RNwg_*?jgg&YoMsdp6i7B{$^_29G(jK|3`zeM|=D7G{|O zOQcH(AOA+qSkX^7+Q^VdjP8yIDguF%2L-u$>7I9Bt9Is-k8z*^D0C;bG+XmMEJ1&C zG%tFfkFA5!T#{`Mqdzv3Nkzq+!f6bn{qYMsO!uOL3M0VOxhUg7sN3ZC`rw!Qqrcyy%}&O4TJ3q)o+lWr z-hakqlgg=`X5DyD$bX!MmMuq3AHAR!{Vt$jk?=kt?VgQ9W*#1CycdJSuhvOnWUe7E z_M&p#aQ%sL6ce{N|4lSSb4jbqWXixPz3}B^aY2iK!lG6pKNd_1#yZlTY)wk)|EMz8F2(2cNG`N8Vo$S$-NtaLzX7uzhM7+CRX8!9R$WTg~HI1%lodU^)ne)lVKxjes8L- zjzT=~uUVv8@bcnsdZhu->Hs;>8}*G$1LxiwT&_JsNlXDB zuZJiNs#R7Sk z^iB>-i#=*4%1CVzWN1j3ClHR03Yx7qGAfG z?RrzQDt*F~^%{&}F~vMm9zE_xadasiYFJ&33NU`U&kGdYcEl#f+H1u=#ZT+8jr(Lw zT)su2s!^k<;AQ#n9B~?LKWcYK@V`j;I7{vYIaEn3m&G&n{kciozEH1hOqsSXoO*=%-K?h z&>BNk^hXry+{8eooA{J3sJWyplAq#_-mTZ{l;AIe-TX(ulv%gm8hX?R*!*l3L)Sv4 zUdu)|luSder0nSW?rbUM6a_2G$XiKGylj!=sAE2(RNkhjq$kc(iSdb2O$S6)EU7L& zitu@gEfz~OmUq8+yWx%hf^D>S;r)%So|rGqO1+*IrS1g;mwIr;uV2UJ50cBFmJBcf znbK+fluCI8frmUxLMo?#l(`GfRW_Ly-V$sKrAtTX&7(%JT$E?uLm@}%NhK>GmQ|4J z;QF5km3FDx4bv2JlYM_ZEAl5?U_7IuW%K@gx1BI%xNjnV;@Htg|B^2Lm;vGE@hQnT zaEktg-rO5$xQm{v69tyXeR)rcmg>G<=AjC1_ZrYt(LtlgBe7w|Y_-DbuDNfd|NO+bHxKQu`KQrG3fxHA-wn$b8bIZ( z);IAoK$W>^i7V0p5)Es*Kql1Jr={fJs*bB(?jbn7`ePc>k?H)_(-?%QZGM_u-mOis z!NQ8Tph|s3?NxXoq!C8Q>H|fufL$7d(V#(6>A+;SbczuZ=)9OjdpMF^sshwFS&$Gh zM~fovsdowI?uFRuK$oT^jf9&X>jcY>;r`)0-ckCBM88>|PTOXph_OqYN;|`7-a$|Y zB8n@~7vjg{bUd|rnhY|aE8U|64G_u|vss(JY*#@HIsY;~s^=wT3kVb{XD@8_Zi%{4 zVr`649w|e*1ckcJNKw~HDX|+FU(W6j-sU;3B03yx3j2eo?4XMG-X`#oicwXc$vune zr0QaIHhxYS)sUxg%%b|C63tggvi;dYt&JmxP)4&yqkNeEBOLf-Crf$}pRb>SH3(L! z3BzsD7MZY1KDZ?N!L*U_UDqQ^x{RmaUC)+widPNeN07xq zIN!u&%E(@O8h2%#>x5i?Myj@~tYg`xFGV0xLt`da&_|-hf^cB!WdT&YF+dAVo%98@ z)3wr7^{7`99*F$#t;;|-U!0(@_F?02?g6Z!f%NICUfht&CkG@4=4Eoce+wL)cS^K~ z2%o2xf$0JvcD7|4EuzTz@P-Y0;?lgXzDZX0_y}ciTMsTup1-K~2c=xnC<^!a1DlU@ za+21u)=ZaCxV9(A2?SGG&p2kjH*OG5U&S_+xuIRjU+f{{y8XoGJVN9lDC;{|knMDg z!pIm47jRU|1X5dAOb_|L)R@H3zY6vH8H`x7#D&UX4{4}b@a^vF?^!LlV)q!j>?HWX zeZbJp*23BMHdDh4(}85riMtI|Iv*7p{ts4kvm}JPgW}$~WNI(zk5}{6hx)w-cHZrL z-?{MS2??tSPQ?{b3+H~%|5WCmB^Pcp0;ch^isGqW@*(Y1%s_~W(?6k?ON(WQXc<(OZnVmlvQer2(SPOHs1N|e8a7MHP}U>GjltH1UO7ETe6 zxeiCK`J^<)Z7##dw@2kn-X`5fpF~=cVH&XtxP-tga3i}|olu0~D2*YX2~wO444QJ9_mJW8YR zsBt=xxq2ug3P=BizfX$xoh>FX{1Q*r&9PE7!em3<{k&{ib>3bg^^_)hzF{9$#vD^S zoqZSs=#j`eSeg^+IOK8i1X7y%Zyd$K{qK4vOeH5~09dgmxGW2&o%d3_K{!Pns!cE$ zx?*~*jG)!gTa*%f*ORi~*QCe)j1oDucU1FVW#@!yYw=3SzR3yavd4gt0nlL?2d^BQ z2rb*93PcRYSi;t{xGtC2b~KcPugItKYfuUt1+I+8~UI4gZh>nU-qF~q&-FBSym>-Md$UmH) zwCw9e=^f9%B8n|5WgcC(3RyGYM}shVW$dwD>|pLrAIR{b4Mc92yR%qsWF>V&b*?)Q zd%E5qk0|Mc%CvgRAClPec;p=X`8Da6LYKDzGbY2tdon8pw(TiyeMgcJP1V&Sf`h6C za>~4QfKkbq8_oCJvmVt-ZCX%WUd=3x>Y<(nEpYMA@O>JN>(DwI(~9+K)}ped8B`d0 z>Q5Dv2`b?$?@@}du%kAO+9}X0?og?aGKaZM1mlZc*WLzuR&{6ycp4#<3t0K8P3MI! z(5FNs>N!$yNcZCJX%+q*mcEH3^HVWCY^s)s~4~@z4ha4PClnwGG6gsK!(}VBThNN3TNe~Px}#OoVyo!g4>^#tVc`5 zBKiS7AXlgy6!R98Y^g?Yto5ps7S*ldw4+C3(_h&kO7`|y15H2^w!URG0Z}whE zs&q@$Qvx>QUgoT5jvy#uZ+36u*POqH5q}!@o zC?aUqgY(fcU+&%%+L;oT7s-A6C#JXh-8nr}_M16Bc(cyYwUB}X3Dnk=qR%XRpPAlaFa&3r;7rlDD4jljAVGl&Eoj>f(V;(55+7b4mfM+j5C^)< zPvO#~L>!2y$RrgtJ&5`z!B%OroDiY&a6yd{p_&|#*aa-ca%*(TLJrTVx8o`*XV)OQ zkk@19eV;}tH{$iu!n%&T6Y8wR(_2EQt$&$$=p`UbkW_@DOW?i3Dojxvy3>zCo2@(`F;3^-&wU+O^CV_O3WqMO z&Xv=1s+{mlep6H?U2inSdWT|Z4<^BYTJf5YrRM8hX4?`2RHPw(C~g6WHe^`)MtEr6 zWicxMZBq@oZpxfyNo1%G1DoLOxh&#)H&B|~VF>6pU}T!C!8Y!jMT362fLUy0AADQm zBq${Y&F6%QcT!Hj$k=++j=4#F4pWGt%bkn@LZ5eoSY=wn{!}i(bEUg&KUQFnq_pv5o$b8DOE`lTsr^Vxs7b`Evw@B0OKG(9QB#L~JuaO@ z$*M8q=-8U#)phXbqv4oH3QzV<34T1RMhWiT_+Ply7I5E%`;<3bV(S}eKPANHu2jN6 z+VDQcS*c_V0Ry5861SJ2vTkz!q6E*2MPaA+_}R5z)|46Bd!=aD+={S^LaG^*wK-?Z zE^0lIz*)AdX8P6%xM)70b9$AE7c8^J1L$G^}@k*2Y|XoN|$2w9s-2av|a)N z)V6>@$J%hKS=TELtbVFiDKF4M75(A(A{U|~CfQ`FQhH}KMQZYR20A744N^J-|LOzv z^r6Q zeaQ(S8MEkz{yxZYMy#ZR^B*)_jhHas#1uz|WN){DBMOU>vOaPj?0;?qs=?psRC#9d z?%VrHBlg&@Df7Z8JvlJkQL_8dmnm4k+DM!dPZ-V;_$aTA4qN?fb8}?3>LA-CaVK8@ zISXf?Wty$&-A@5$lVkQhtZHUzl^J`BHc|=7DTvr~Bf}@6OXzfP%9$3|RZl6`v7WSX zT11h^0NBU8uG}jNHow}l$#v$ zxx$^@)i^|iqspTnA!QPZE1r$l1c@zWueCkx3E0H3HTGNP9k%lv+^1X{2(G!ZGEW3M z-bOJsB1}-OT$|2!#c9~C(Gr=C~`R`lV^H-fF!f9Uk z%`Csf-=bA>6;ss9kf!wS6}xyWU@BB*m4Fd|^rg4+Nk53{UFrdZ6htK>D;&NHAQ>?X z2M_qPrW=?F>S8vX3LoynMCTOrJZw;LWT#8%a-n5%Uwx?neqe8WGkNjIFwbM2ftLA_ z2ECls0HT*-5I!T9C&k54RY=S4?=^Se$20SawS!%J(~$bVWpnCD^%kiMEk`SrX`|b@ z{d%gBj+P)pW`fjw3UGJ`PE@7>4EPKVH&d^QUpZ^xru~jME6Jx{%qinbda~x*m9m&_ z=y&bH3?5593?DQlFefx(F=NuGZqhO8rG@+|FxH%6N{fb$oJ)5^BpSnrXcbm3fW%CC z=^uQA`C z+dgYFTiU&^%P63OagZf>cCsEa(VV@U+j2SvxWXTP-BwQ4G&hoET7@?8JS;p(#TEi^ zO2v2Ma?j-No)~|FiBhlRlHuskOKU-;&+^qx9Gn#L?KGK|a%KM4#S79%&^p68s7kl> z=RO227|JH?ubR9|ebtBlZj1(7h=epprlka#!<$Iy=*Rd%9mbOy6Rgg|^Ia$(dN2hC zuw3$L+D3=GJCusgFk#5ItI8)Cy=T|WX==701K6SevTiRu++6VZ^Qtj3TG1?6h8;T6 zn#-=a0vdZ9>C%)M02lQ^3X_K4?bv;bzG}y#slYaM`p9i-4;yN++LaB;;_SzFklnYd zv1Bry$NP5Q2l*M0IU|et=Yscd$dk2{F=qIcvlgJ$1{! z<&b2AEX>beJb#)hIDg6Uou1jm_@IZ(hbT!K(M8*gsbjK>xNW|;Oh+z(ibg0E3tB7I3o1o?5_3Z$Dw%1bp&aLw_Pdiwiz�=h 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 l#4TWnFE!)ehcI`v6$ guaranteed properties! + + Relevance of Security: Security properties if any IT system are mission-critial - independet of its application domain + + \subsection{Security Goals} + Our Faculty's Education and Examination Management System + \begin{itemize*} + \item Maintains: + \begin{itemize*} + \item Course profiles (examination form/date, credit points) + \item Students records (personal data, registration to examinations, grades) + \end{itemize*} + \item Services: + \begin{itemize*} + \item Enrolment/expulsion of students + \item Registration to examination + \item Registration of examination marks + \item Information and attestations desk + \end{itemize*} + \item Operational Risks + \begin{itemize*} + \item Conditio sine qua non: Provability of information properties + \item Fake registration to examinations: integrity, non-repudiability ("nicht-abstreitbar") + \item Leakage of grades, personal data: confidentiality, integrity + \item Forgery of attestations: authenticity, integrity + \end{itemize*} + \end{itemize*} + + Industry Control Systems + \begin{itemize*} + \item e.g. Factorys, energy and water plants (public infrastructure) + \begin{itemize*} + \item "Chinese Hacking Team Caught Takin over decoy water plant" + \item "Internet Attack shuts off the Heat in Finland" + \end{itemize*} + \item Operational risks: Integrity \& Availability of public community support systems + \end{itemize*} + + \subsubsection{Message} + \begin{itemize*} + \item Goal of IT Security: **Reduction of Operational Risks of IT Systems** + \item Elementary: Protection of + \begin{itemize*} + \item Confidentiality + \item Integrity + \item Availability + \item Non-repudiability + \end{itemize*} + \end{itemize*} + + Specific Security Goals (Terms) + \begin{itemize*} + \item **Confidentiality**: the property of information to be available only to anauthorized user group + \item **Integrity**: the property of information to be protected against unauthorized modification + \item **Availability**: the property of information to be available in an reasonable time frame + \item **Authenticity**: the property to be able to identify the author of an information + \item **Non-repudiability**: the combination of integrity and authenticity + \end{itemize*} + + \begin{tabular}{c| l | l} + & Safety & Security \\\hline + Goal & To protect environment against hazards caused by system failures & To protect IT systems against hazards caused by malicious attacks \\ + & Technical failures: power failure, ageing, dirt & Industrial espionage, fraud, blackmailing \\ + & Human errors: stupidity, lacking education, carelessness & Terrorism, vandalism \\ + & Force majeure: fire, lightning, earth quakes & \\ + => making sure things work & in the presence of system failures & in the face of an intelligent and maliciousadversary + \end{tabular} + + \subsection{Security Engineering} + Security Goals in Practice + \begin{itemize*} + \item ... are diverse and complex to achieve + \item ... require multiple stakeholders to cooperate + \item ... involve cross-domain expertise + \end{itemize*} + + Security Engineering: + \begin{itemize*} + \item Is a methodology that tries to tackle this complexity. + \item Goal: Engineering IT systems that are *secure by design*. + \item Approach: Stepwise increase of guarantees -> formal methods required! + \end{itemize*} + + Steps in Security Engineering: + %![](Assets/Systemsicherheit-engineering-process.png) + + \subsection{Lecture Roadmap} + 1. Security Requirements: Vulnerabilites, Threats, Risks + 2. Security Policies and Models: Access Control, Information Flow, Non-Interference + 3. Practical Security Engineering: Model Engineering, Model, Specification, Model Implementation + 4. Security Mechanisms: FYI Authorization, Authentication, Cryptography + 5. Security Architectures: TCBs and Reference Monitors, Nizza,SELinux, Kerberos + + + \section{Security Requirements} + \subsection{Motivation} + Goal of Requirements Engineering: + + Methodology for + \begin{itemize*} + \item identifying + \item specifying + \end{itemize*} + + the desired security properties of an IT system. + + Result: + \begin{itemize*} + \item Security requirements, which definewhatsecurity properties a system should have. + \item These again are the basis of asecurity policy: Defineshowthese properties are achieved + \end{itemize*} + + Influencing Factors + \begin{itemize*} + \item Codes and acts (depending on applicable law) + \begin{itemize*} + \item EU General Data Protection Regulation (GDPR) + \item US Sarbanes-Oxley Act (SarbOx) + \end{itemize*} + \item Contracts with customers + \item Certification + \begin{itemize*} + \item For information security management systems (ISO 27001) + \item Subject to German Digital Signature Act (Signaturgesetz), toCommon + \end{itemize*} + \item Criteria + \item Company-specific guidelines and regulations + \begin{itemize*} + \item Access to critical data + \item Permission assignment + \end{itemize*} + \item Company-specific infrastructure and technical requirements + \begin{itemize*} + \item System architecture + \item Application systems (such as OSs, Database Information Systems) + \end{itemize*} + \end{itemize*} + + General Methodology: How to Come up with Security Requirements + + Specialized steps in regular software requirements engineering: + 1. Identify and classifyvulnerabilities. + 2. Identify and classifythreats. + 3. Match both, where relevant, to yieldrisks. + 4. Analyze and decide which risks should bedealt with. + -> Fine-grained Security Requirements + + %![](Assets/Systemsicherheit-risk.png) + \subsection{Vulnerability Analysis} + Goal: Identification of + \begin{itemize*} + \item technical + \item organizational + \item human + \end{itemize*} + vulnerabilities of IT systems. + > Vulnerability + > + > Feature of hardware and software constituting, an organization running, or a human operating an IT system, which is a necessary precondition for any attack in that system, with the goal to compromise one of its security properties. Set of all vulnerabilities = a system’sattack surface. + + \subsubsection{Human Vulnerabilities} + Examples: + \begin{itemize*} + \item Laziness + \begin{itemize*} + \item Passwords on Post-It + \item Fast-clicking exercise: Windows UAC pop-up boxes + \end{itemize*} + \item Social Engineering + \begin{itemize*} + \item Pressure from your boss + \item A favor for your friend + \item Blackmailing: The poisoned daughter, ... + \item An important-seeming email + \end{itemize*} + \item Lack of knowledge + \begin{itemize*} + \item Importing and executing malware + \item Indirect, hidden information flowin access control systems + \end{itemize*} + \end{itemize*} + + > Social Engineering + > + > Influencing people into acting against their own interest or the interest of an organisation is often a simpler solution than resorting to malware or hacking. + > Both law enforcement and the financial industry indicate that social engineering continues to enable attackers who lack the technical skills, motivation to use them or the resources to purchase or hire them. Additionally, targeted social engineering allows those technically gifted to orchestrate blended attacks bypassing both human and hardware or software lines of defence. [Europol](https://www.europol.europa.eu/crime-areas-and-trends/crime-areas/cybercrime/social-engineering) + + + \paragraph{Indirect Information Flow in Access Control Systems} + A More Detailed Scenario + \begin{itemize*} + \item AlphaCompany has two departments: Research \& Development(R\&D) and Sales + \item Ann is project manager and Bob is developer working in R\&D on ProjectX, Chris is a busybody sales manager writing a marketing flyer about ProjectX + \item All R\&D developers communicate via an electronic bulletin board, including any preliminary product features not yet ready for release + \item Bob is responsible for informing sales about release-ready features, using ashared web document + \end{itemize*} + > Security Requirement + > + > No internal information about a project, which is not approved by the project manager, should ever go into the product flyer. + + + Access Control Configuration + \begin{itemize*} + \item 3 users:ann,bob,chris + \item 2 groups: + \begin{itemize*} + \item crewx: ann, bob, ... + \item sales: ann, bob + \end{itemize*} + \item Settings: + \begin{lstlisting}[ + language=Bash, + showspaces=false, + basicstyle=\ttfamily, + commentstyle=\color{gray} + ] + drw\item --\item --\item 1 ann crewx 2020-04-14 15:10 ProjectXFiles + -rw\item r-\item --\item 1 ann crewx 2020-04-14 15:10 ProjectXBoard + -rw\item r-\item --\item 1 bob sales 2020-04-14 14:22 NotesToSales + -rw\item --\item --\item 1 chris sales 2020-04-13 23:58 SalesFlyer.pdf + \end{lstlisting} + \item Result: + \begin{itemize*} + \item all users apparently set their permissions perfectly - from their own point of view + \item all three together createda severe information flow vulnerability... + \end{itemize*} + \item Ann has read access to the folder ProjectX Files + \item Ann legitimately writes news from these files to the ProjectX Board + \item Bob legitimately updates NotesToSales with these news + \item Human vulnerability: Bob’s laziness, friendship with Chris, blackmailing by Chris, ... (see above) make him write about unapproved new features + \item -> Chris misuses this information in the Sales Flyer... + \end{itemize*} + + > Forbidden Information Flow + > + > Internal information about ProjectX goes into the product flyer! + + Problem Analysis: + \begin{itemize*} + \item Limited knowledge of users + \begin{itemize*} + \item limited horizon: knowledge about the rest of a system configuration for making a sound decision about permissions + \item limited problem awareness: see "lack of knowledge" + \item limited skills + \end{itemize*} + \item Problem complexity -> effects ofindividualpermission assignments by users + (= discretionary) tosystem-widesecurity properties + \item Limited configuration options and granularity: archaic and inapt security mechanisms in system and application software + \begin{itemize*} + \item no isolation of non-trusted software + \item no enforcement of global security policies + \end{itemize*} + \item -> Effectiveness of discretionary access control (DAC), configured by users? + \end{itemize*} + + \subsubsection{Organizational Vulnerabilities} + Examples: + \begin{itemize*} + \item Access to rooms (servers!) + \item Assignment of permission on organizational level, e. g. + \begin{itemize*} + \item 4-eyes principle + \item need-to-know principle + \item definition of roles and hierarchies + \end{itemize*} + \item Management of cryptographic keys + \begin{itemize*} + \item -> e. g. for issuing certificates + \end{itemize*} + \item -> Master course on "IT-Sicherheitsmanagement" (in German) + \end{itemize*} + + \subsubsection{Technical Vulnerabilities} + The Problem: Complexity of IT Systems + \begin{itemize*} + \item ... will in foreseeable timenotbe + \item Completely, consistently, unambiguously, correctly specified + \begin{itemize*} + \item -> contain specification errors + \end{itemize*} + \item Correctly implemented + \begin{itemize*} + \item -> contain programming errors + \end{itemize*} + \item Re-designed on a daily basis(many security mechanisms of today’s systems are older than 40 years) + \begin{itemize*} + \item -> contain conceptual weaknesses and vulnerabilities + \end{itemize*} + \end{itemize*} + + \paragraph{Buffer Overflow Attacks} + Example for Exploitation of Implementation Errors + + in privileged system software: + \begin{itemize*} + \item Operating Systems (OSs) + \item SSH demons + \item Web servers + \item Database servers + \end{itemize*} + + Consequence: Privileged software can be tricked into executing attacker’s code + + Approach: Cleverly forged parameters overwrite procedure activation frames in + memory + \begin{itemize*} + \item -> exploitation of missing length checks on input buffers + \item -> buffer overflow + \end{itemize*} + + What an Attacker Needs to Know + + \paragraph{Necessary Knowledge and Skills} + \begin{itemize*} + \item Source code of the target program (e. g. a privileged server), obtained by disassembling + \item Better: symbol table, as with an executable not stripped from debugging information + \item Even better: most precise knowledge about the compiler used w.r.t. runtime management + \begin{itemize*} + \item how call conventions affect the stack layout + \item degree to which stack layout is deterministic, which eases experimentation + \end{itemize*} + \end{itemize*} + + Sketch of the Attack Approach (Observations during program execution) + \begin{itemize*} + \item Stack grows towards the small addresses + \begin{itemize*} + \item -> small whenever a procedure is called, all its information is stored in aprocedure frame = subsequent addresses below those of previously stored procedure frames + \end{itemize*} + \item in each procedure frame: address of the next instruction to call after the current procedure returns (ReturnIP) + \item after storing the ReturnIP, compilers reserve stack space for local variables -> these occupy lower addresses + \end{itemize*} + + \paragraph{Preparing the Attack} + Attacker carefully prepares an input argument msg:`0 ...0 /bin/shell\#system ` + + \begin{lstlisting}[ + language=C++, + showspaces=false, + basicstyle=\ttfamily, + commentstyle=\color{gray} + ] + void processSomeMsg(char *msg, int msgSize){ + char localBuffer[1024]; + int i=0; + while (i ReturnIP + \end{itemize*} + \item After finishing processSomeMsg: victim program executes code at address of ReturnIP =address of a forged call to execute arbitrary programs! + \item Additional parameter to this call: file system location of a shell + \end{itemize*} + + > Security Breach + > + > The attacker can remotely communicate, upload, download, and execute anything- with cooperation of the OS, since all of this runs with the original privileges of the victim program! + + + \subsubsection{Summary} + Vulnerabilities + \begin{itemize*} + \item Human + \begin{itemize*} + \item Laziness + \item Social engineering + \item Lack of knowledge (e. g. malware execution, DAC shortcoming) + \end{itemize*} + \item Organizational + \begin{itemize*} + \item Key management + \item Physical access to rooms, hardware + \end{itemize*} + \item Technical + \begin{itemize*} + \item Weak security paradigms + \item Specification and implementation errors + \end{itemize*} + \item -> A whole zoo of vulnerabilities! + \end{itemize*} + + How can we identify all during systems design and engineering...? + \begin{itemize*} + \item Vulnerabilities catalogues: ISO 27001, ISO 27002 + \item Vulnerabilities databases, such as CVE + \item Tools (we will see...) + \end{itemize*} + + \subsection{Threat Analysis} + Goal: Identification of + \begin{itemize*} + \item Attack objectives and attackers + \item Attack methods and practices (a.k.a. "Tactics, Techniques, and Procedures (TTPs)") + \item -> know your enemy + \end{itemize*} + + Approach: Compilation of a threat catalog, content: + \begin{itemize*} + \item identified attack objectives + \item identified potential attackers + \item identified attack methods \& techniques + \item damage potential of attacks + \end{itemize*} + + + \subsubsection{Attack Objectives and Attackers} + Attack Objectives + \begin{itemize*} + \item Economical and political power + \item Profit + \item Wreak havoc (energy infrastructure, water plants, air traffic ...) + \item Meet a challenge + \end{itemize*} + + Attackers + \begin{itemize*} + \item Professional organizations (which may be hired by anyone, incl. competitors or governments) + \item Active and former employees ("Remember that IT guy we fired last year ...?") + \item Terrorists + \item Hackers (both good or evil) + \end{itemize*} + + Examples + \begin{itemize*} + \item Economic Espionage + \item Objective: economic and political power, profit + \item Victims: high tech industry(companies that rely on the secrecy of their know-how to successfully compete) + \item Attackers: + \begin{itemize*} + \item Competitors, (foreign) governments -> professional organizations + \item Insiders + \begin{itemize*} + \item regular, often privileged users of IT systems + \item statistically large share(> 40 %) + \item often indirect -> social engineering ("Only amateurs target systems; professional target people.") + \item statistical profile: age 30-40, executive function (department heads, system administrators, lead programmers, ...) + \item weapons: technical and organisational insider knowledge, technical skills + \item -> Your own people. + \end{itemize*} + \end{itemize*} + \item Personal Profit + \begin{itemize*} + \item Objective: becoming rich(er)(expensive life style, ambitious projects, medical conditions) + \item Attackers: + \begin{itemize*} + \item Competitors + \item Insiders + \begin{itemize*} + \item profile: age 40-50, management function + \item typically: career peak reached, midlife crisis, new boat, new house, new partner, ... + \item weapons: organisational insider knowledge, organisational authority, management and leadership skills + \end{itemize*} + \end{itemize*} + \end{itemize*} + \item Wreak Havoc + \begin{itemize*} + \item Objective: damaging or destroying things or lives, blackmailing, meeting a challenge (egomania, narcissism, sportive challange) + \item Attackers: + \begin{itemize*} + \item Terrorists: motivated by faith and philosophy, paid by organisations and governments + \item Avengers: see insiders + \item Psychos: all ages, all types, personality disorder (egomania, narcissism, paranoia, ...) + \item -> No regular access to IT systems, no insider knowledge, butskills and tools. + \end{itemize*} + \end{itemize*} + \end{itemize*} + + \subsubsection{Attack Methods} + Exploitation of Vulnerabilities + \begin{itemize*} + \item Human: Social engineering, laziness, lack of knowledge + \item Organizational: Rights management, key management, room access + \item Technical: Weak protection paradigms, specification and implementation errors + \end{itemize*} + + \paragraph{Examples} + Scenario 1: Insider Attack + \begin{itemize*} + \item Social Engineering, plus + \item Exploitation of conceptual vulnerabilities (DAC),plus + \item Professionally tailored malware + \end{itemize*} + + Scenario 2: Malware(a family heirloom ...) + \begin{itemize*} + \item Trojan horses: Executable code with hidden functionality. + \item Viruses: Code for self-modification and self-duplication, often coupled with damaging the host. + \item Logical bombs: Code that is activated by some event recognizable from the host (e. g. time, date, temperature, pressure, geographic location, ...). + \item Backdoors: Code that is activated through undocumented interfaces (mostly remote). + \item Ransomware: Code for encrypting possibly all user data found on the host, used for blackmailing the victims (to pay for decryption). + \item Worms and worm segments: Autonomous, self-duplicating programs. Originally designed for good: to make use of free computing power in local networks. + \end{itemize*} + + Scenario 3: Outsider Attack + \begin{itemize*} + \item Attack Method: Buffer Overflow + \item Exploitation of implementation errors + \end{itemize*} + + Scenario 4: High-end Malware:Root Kits + \begin{itemize*} + \item Goal: Invisible, total, sustainable takeover of a complete IT system + \item Method: Comprehensive tool kit for fully automated attacks + 1. automatic analysis of technical vulnerabilities + 2. automated attack execution + 3. automated installation of backdoors + 4. automated installation and activation of stealth mechanisms + \item Target: Attacks on all levels of the software stack: + \begin{itemize*} + \item firmware + \item bootloader + \item operating system (e. g. drivers, file system, network interface) + \item system applications (e. g. file and process managers) + \item user applications (e. g. web servers, email, office) + \end{itemize*} + \item tailored to specific software and software versions found there! + \end{itemize*} + + \paragraph{Root Kits} + Step 1: Vulnerability Analysis + \begin{itemize*} + \item Tools look for vulnerabilities in + \begin{itemize*} + \item Active privileged services and demons (from inside a network:nmap, from outside: by port scans) -> Discovers:web server, remote access server (sshd), file server (ftpd), time server (ntpd), print server (cupsd),bluetoothd,smbd, ... + \item Configuration files -> Discovers: weak passwords, open ports + \item Operating systems -> Discovers: kernel and system tool versions with known implementation errors + \end{itemize*} + \item Using built-in knowledge base: an automatable vulnerability database + \item Result: System-specific collection of vulnerabilities -> choice of attack method andtools to execute + \end{itemize*} + + Step 2: Attack Execution + \begin{itemize*} + \item Fabrication oftailored softwareto exploit vulnerabilities in + \begin{itemize*} + \item Server processes or system tool processes (demons) + \item OS kernel itself + to execute code of attacker withroot privileges + \end{itemize*} + \item This code + \begin{itemize*} + \item First installs smoke-bombs for obscuring attack + \item Then replaces original system software by pre-fabricated modules + \begin{itemize*} + \item servers and demons + \item utilities and libraries + \item OS modules + \end{itemize*} + \item containing + \begin{itemize*} + \item backdoors (-> step 3) + \item smoke bombs for future attacks (-> step 4) + \end{itemize*} + \end{itemize*} + \item Results: + \begin{itemize*} + \item Backdoors allow forhigh-privilege access within fractions of seconds + \item System modified with attacker’s servers, demons, utilities, OS modules + \item Obfuscation of modifications and future access + \end{itemize*} + \end{itemize*} + + Step 3: Attack Sustainability + \begin{itemize*} + \item Backdoors for any further control \& command in + \begin{itemize*} + \item Servers (e. g.sshdemon) + \item Utilities (e. g.login) + \item Libraries (e. g.PAM, pluggable authentication modules) + \item OS (system calls used by programs likesudo) + \end{itemize*} + \item Modificationsof utilities and OS to prevent + \begin{itemize*} + \item Killing root kit processes and connections (kill,signal) + \item Removal of root kit files (rm,unlink) + \end{itemize*} + \item Results: Unnoticed access for attacker + \begin{itemize*} + \item Anytime + \item Highly privileged + \item Extremely fast + \item Virtually unpreventable + \end{itemize*} + \end{itemize*} + + Step 4: Stealth Mechanisms (Smoke Bombs) + \begin{itemize*} + \item Clean logfiles (entries for root kit processes, network connections), e.g. syslog,kern.log,user.log,daemon.log,auth.log, ... + \item Modify system admin utilities + \begin{itemize*} + \item Process management(hide running root kit processes), e.g. ps,top,ksysguard,taskman + \item File system (hide root kit files), e.g. ls,explorer,finder + \item Network (hide active root kit connections), e.g. netstat,ifconfig,ipconfig,iwconfig + \end{itemize*} + \item Substitute OS kernel modules and drivers (hide root kit processes, files, network connections), e.g. /proc/...,stat,fstat,pstat + \item Result:Processes, files and communication of root kit become invisible + \end{itemize*} + + Risk and Damage Potential: + \begin{itemize*} + \item Likeliness of success: extremely highin today’s commodity OSs + \begin{itemize*} + \item High number of vulnerabilities + \item Speed + \item Refined methodology + \item Fully automated + \end{itemize*} + \item Fighting the dark arts:extremely difficult + \begin{itemize*} + \item Number and cause of vulnerabilities + \item number of "security updates" last month? + \item specification/implementation errors, weak security mechanisms + \item Speed + \item Smoke bombs + \end{itemize*} + \item Prospects for recovering the system after successful attack:near zero + \end{itemize*} + + Countermeasures - Options: + \begin{itemize*} + \item Reactive: Well ...(even your OS might have become your enemy) + \item Preventive: + \begin{itemize*} + \item Counter with same tools for vulnerability analysis (we do this for years now -> 50 Billions € damage taken...) + \item Write correct software (we try this for years now -> 50 Billions € damage taken...) + \end{itemize*} + \end{itemize*} + + > Security Engineering + \begin{itemize*} + \item New paradigms:policy-controlled systems -> powerful software platforms + \item New provable guarantees: formal security models -> reducing specification errors and faultsby design + \item New security architectures -> limiting bad effectsof implementation errors and faults + \end{itemize*} + + \subsubsection{Damage Potential} + Industrial Espionage: + \begin{itemize*} + \item Loss of control over critical knowledge -> loss of economical or political power(high-risk technologies!) + \item Economical damage (contract penalties, loss of profit, image damage) + Quantity: 50 000 000 000 €, 40\% caused by IT + \end{itemize*} + + Personal Profit: Individual loss of money(zero sum game) + + Terrorism, hackers: + \begin{itemize*} + \item Loss of critical infrastructures (energy, water, communication) + \item Loss of sea, air, land transport infrastructure + \item Damage of financial systems + \end{itemize*} + + \subsubsection{Summary} + Know Your Enemy + \begin{itemize*} + \item Attack goals and attackers + \begin{itemize*} + \item Economical and political power, financial gain + \item Professional organizations, insiders + \end{itemize*} + \item Attack methods und techniques: exploiting vulnerabilities + \begin{itemize*} + \item human + \item organizational + \item technical + \end{itemize*} + \item -> A zoo of threats, practical assistance: + \begin{itemize*} + \item National (Germany): BSI IT-Grundschutz standards and catalogues + \item International:Common Criteria + \end{itemize*} + \end{itemize*} + + + \subsection{Risk Analysis} + Goal: Identification and Classification of scenario-specific risks when designing an IT system + + Approach: + \begin{itemize*} + \item Risks $\subseteq$ Vulnerabilities $\times$ Threats + \item Correlation of vulnerabilities and matching threats + \begin{itemize*} + \item -> Risk catalogue + \end{itemize*} + \item Classification of risks + \begin{itemize*} + \item -> Complexity reduction + \end{itemize*} + \item -> Risk matrix + \end{itemize*} + + Correlation of Vulnerabilities and Threats + \begin{itemize*} + \item Goal: Risk catalogue: $n:m$ correlation + \end{itemize*} + + \subsubsection{Examples} + \begin{itemize*} + \item Vulnerability: Implementation error in database access control -> Contents can be accessed by unauthorized users + \item Threat: Professional team of attackers, contracted by competitor + \item -> Risk: Confidentiality breach + \end{itemize*} + + + \begin{itemize*} + \item Vulnerability: Conceptual vulnerability: discretionary access control configuration only + \item Threat: Employee in critical financial situation + \item -> Risk: + \begin{itemize*} + \item Disclosure and sale of corporate secrets + \item Redirection of funds + \end{itemize*} + \end{itemize*} + + \begin{itemize*} + \item n Vulnerabilities + \item m Threats + \item -> x Risks + \end{itemize*} + + Usually: $max(n,m)<< x \leq nm$ -> quite largerisk catalogue! + + + \subsubsection{Risk Classification} + Goal: Catalogue reduction -> major and minor risks + + Approach: Qualitative risk matrix; dimensions: + + %![](Assets/Systemsicherheit-risk-classification.png) + + \subsubsection{Risk Matrix} + Damage Potential Assessment + + Examples for risks: + \begin{itemize*} + \item Cloud computing:"Loss of VM integrity" -> contract penalties, loss of confidence/reputation + \item Industrial plant control:"Tampering with frequency converters" -> damage or destruction of facility + \item Critical public infrastructure:"Loss of availability due to DoS attacks" -> interrupted services, possible impact on public safety (cf. Finnish heating plant) + \item Traffic management:"Loss of GPS data integrity" -> maximum credible accident w. r. t. safety + \end{itemize*} + + \paragraph{General Fact: Damage potential is highly scenario-specific} + Example: "Confidentiality breach of database contents" + \begin{itemize*} + \item Articles in online newspapers + \begin{itemize*} + \item -> small to mediumdamage due to lost paywall revenues + \end{itemize*} + \item Account data of banks + \begin{itemize*} + \item -> mission-criticalloss of trust + \end{itemize*} + \item Plant control data of industrial production facility + \begin{itemize*} + \item -> mission-criticalloss of market leadership + \end{itemize*} + \end{itemize*} + + Depends on diverse, mostly non-technical side conditions -> advisory board needed for assessment:engineers, managers, users, ... + + \paragraph{Occurrence Probability Assessment} + Examples for risks: + \begin{itemize*} + \item Cloud computing:"Loss of VM integrity" + \begin{itemize*} + \item -> depending on client data sensitivity + \end{itemize*} + \item Industrial plant control:"Tampering with frequency converters" + \begin{itemize*} + \item -> depending on plant sensitivity(cf.Stuxnet: nuclear centifuges) + \end{itemize*} + \item Critical public infrastructure:"Loss of availability due to DoS attacks" + \begin{itemize*} + \item -> depending on terroristic threat level + \end{itemize*} + \item Traffic management:"Loss of GPS data integrity" + \begin{itemize*} + \item -> depending on terroristic threat level + \end{itemize*} + \end{itemize*} + + General Fact: Occurrence probability ishighly scenario-specific + + Example: "Confidentiality breach of database contents" + \begin{itemize*} + \item Articles in online newspapers + \begin{itemize*} + \item -> smallfor articles that are publicly available anyway + \end{itemize*} + \item Account data of banks + \begin{itemize*} + \item -> medium, due to high attack costs compared to potential gain + \end{itemize*} + \item Plant control data of industrial production facility + \begin{itemize*} + \item -> high, due to high financial or political gain + \end{itemize*} + \end{itemize*} + + Depends on diverse, mostly non-technical side conditions -> advisory board needed for assessment:engineers, managers, users, ... + + + + \paragraph{Advisory Board Output Example} + \begin{tabular}{l|l|l|l} + Object & Risk & Dmg. Pot. & Rationale \\\hline + Personal Data (PD) & Loss of Confidentiality & medium & (1) Data protection acts, (2) Violation of personal rights \\ + & Loss of Integrity & low & Errors fast and easily detectable and correctable \\ + & Loss of Availability & low & Failures up to one week can be tolerated by manual procedures \\ + Technical Control Data (TCD) & Loss of Confidentiality & high & Loss of market leadership \\ + & Loss of Integrity & high & Production downtime \\ + & Loss of Availability & low & Minimal production delay, since backups are available + \end{tabular} + \begin{tabular}{l|l|l|l} + Object & Risk & Dmg. Pot. & Rationale \\\hline + Personal Data (PD) & Loss of Confidentiality & medium & Certified software \\ + & Loss of Integrity & low & Certified software, small incentive \\ + & Loss of Availability & medium & Certified software \\ + Technical Control Data (TCD) & Loss of Confidentiality & high & Huge financial gain by competitors \\ + & Loss of Integrity & medium & Medium gain by competitors or terroristic attackers \\ + & Loss of Availability & low & Small gain by competitors or terroristic attackers + \end{tabular} + + Resulting Risk Matrix + %![](Assets/Systemsicherheit-risk-matrix-1.png) + + Identify 3 Regions + %![](Assets/Systemsicherheit-Risk-Matrix-2.png) + + Form Risks to Security Requirements + \begin{itemize*} + \item avoid: Intolerable risk, no reasonable proportionality of costs and benefits + \begin{itemize*} + \item -> Don’t implement such functionality! + \end{itemize*} + \item bear: Acceptable risk + \begin{itemize*} + \item -> Reduce economical damage, e. g. by insurance. + \end{itemize*} + \item deal with: Risks that yieldsecurity requirements + \begin{itemize*} + \item -> Prevent or control by system-enforced security policies. + \end{itemize*} + \end{itemize*} + + Additional Criteria: + \begin{itemize*} + \item Again, non-technical side conditions may apply: + \begin{itemize*} + \item Expenses for human resources and IT + \item Feasibility from organizational and technological viewpoints + \end{itemize*} + \item -> Cost-benefit ratio:management and business experts involved + \end{itemize*} + + + \section{Security Policies and Models} + \subsection{Security Policies} + Motivation - A Traditional Scenario: + \begin{itemize*} + \item Similarity to systems security:protecting valued assets from threats (human life, cargo, ship) + \item Difference: thousands of years of experience + \item $\rightarrow$ We may learn something here! + \end{itemize*} + + \begin{itemize*} + \item What Protects these Assets? + \begin{itemize*} + \item Navigation lights:protect against collisions + \item Cannons/Guns:protect against pirates + \item Reefs, drift anchors:protect against bad weather + \end{itemize*} + \item $\rightarrow$ Security Mechanisms + \begin{itemize*} + \item Watch:protect against collisions + \item The art of sailing, regulations:protect against \& comply with special marine conditions(climate, traffic, canal navigation rules) + \end{itemize*} + \item $\rightarrow$ Competent \& coordinated operation of mechanisms + \item $\rightarrow$ Security Policies + \begin{itemize*} + \item Construction of hull + \item Placement of security mechanisms(nav lights in hold) + \end{itemize*} + \item $\rightarrow$ Effectiveness of mechanisms and enforcement of security policies + \item $\rightarrow$ Security Architecture + \end{itemize*} + + \subsubsection{Terminology} + Security Policies: A Preliminary Definition + \begin{itemize*} + \item We have risks: + \begin{itemize*} + \item Gales $\rightarrow$ ship capsizes, pirates $\rightarrow$ ship captured + \item Malware attack $\rightarrow$ violation of confidentiality and integrity of patient’s medical records + \end{itemize*} + \item We infer security requirements: + \begin{itemize*} + \item Protect against gale force 12 + \item Valid information flows + \end{itemize*} + \item We design a security policy: + \begin{itemize*} + \item Rules for dealing with storms, pirates + \item Rules for controlling information flows + \end{itemize*} + \end{itemize*} + + > Security Policy + > + > A set of rules designed to meet a set of security objectives. + + > Security Objective + > + > A statement of intent to counter a given threat or to enforce a given security + policy. + (Common Criteria for Information Technology Security Evaluation, since 1996) + + Policy representations: + \begin{itemize*} + \item informal (natural language) text + \item formal model + \item functional software specification + \item executable code + \end{itemize*} + + \paragraph{Example 1: Excerpt from the Unix Security Policy} + \begin{itemize*} + \item $\exists$ subjects(humans, processes) and objects(files, sockets, ...) + \item Each object has an owner + \item Owners control access permissions for their objects ($\rightarrow$ DAC) + \item $\exists$ 3 permissions: read, write, execute + \item $\forall$ objects: specific permissions can be granted for 3 subject classes: owner, group, others + \item Example: `\item rw\item r-\item r-\item 1 peter vsbs 2020-04-19 23:59 syssec-03.pdf` + \item Result: + \begin{itemize*} + \item $\rightarrow$ identity based + discretionary access control (IBAC + DAC) + \item $\rightarrow$ high degree of individual freedom + \item $\rightarrow$ global responsibility, limited individual horizon + \end{itemize*} + \end{itemize*} + + \paragraph{Example 2: Excerpt from the AlphaCompany Security Policy} + \begin{itemize*} + \item Authentication: + 1. Each user must be identified based on key certificates issued by Airbus + \item Authorization: + 2. Access to ProjectX files is granted only to the project staff (role-based access control) + 3. Changes to files are allowed only if both, the responsible engineer as well as the project leader, approve ("four eyes principle") + 4. No information must flow from ProjectX to sales department + \item Communication: + 5. For protecting integrity, confidentiality and authenticity, every communication is encrypted and digitally signed. + \end{itemize*} + + How to Implement Security Policies - Some Previews + \begin{itemize*} + \item A Integrated insystems software + \begin{itemize*} + \item Operating systems + \item Database systems + \item Middleware platforms + \end{itemize*} + \item B Integrated inapplication systems + \end{itemize*} + + \subsubsection{Implementation Alternative A} + The security policy is handled anOS abstractionon its own $\rightarrow$ implemented inside the kernel + %![](Assets/Systemsicherheit-pos.png) + + Policy Enforcement in SELinux + \begin{itemize*} + \item Security Server: Policy runtime environment (protected in kernel space) + \item Interceptors:Total control of critical interactions + \item Policy Compiler: Translates human-readable policy modules in kernel-readable binary modules + \item Security Server: Manages and evaluates these modules + \end{itemize*} + + \subsubsection{Implementation Alternative B} + Application-embedded Policy: The security policy is only known and enforced by oneuser program $\rightarrow$ implemented in a user-space application + + Application-level Security Architecture: The security policy is known and enforced by several collaborating user programs in anapplication systems $\rightarrow$ implemented in a local, user-space security architecture + + Policy Server Embedded in Middleware: The security policy is communicated and enforced by several collaborating user programs in adistributed application systems $\rightarrow$ implemented in a distributed, user-space security architecture + + %![](Assets/Systemsicherheit-application-embedded-policy.png) + + + + \subsection{Security Models} + Why We Use Formal Models + + Goal of Formal Security Models + \begin{itemize*} + \item Complete, unambiguous representation of security policies for + 1. analyzing and explaining its behavior: + \begin{itemize*} + \item $\rightarrow$ "This security policy will never allow that ..." + \item $\rightarrow$ "This security policy authorizes/denies an access under conditions ... because ..." + 2. enabling its correct implementation: + \item $\rightarrow$ "This rule is enforced by a C++ method ..." + \end{itemize*} + \end{itemize*} + + How We Use Formal Models: Model-based Methodology + \begin{itemize*} + \item Abstraction from (usually too complex) reality $\rightarrow$ get rid of insignificant details e. g.: allows statements about computability and computation complexity + \item Precisionin describing what is significant $\rightarrow$ Model analysis and implementation + \end{itemize*} + + > Security Model + > + > A security model is a precise, generally formal representation of a security policy. + + Model Spectrum + \begin{itemize*} + \item Models for access control policies: + \begin{itemize*} + \item identity-based access control (IBAC) + \item role-based access control (RBAC) + \item attribute-based access control (ABAC) + \end{itemize*} + \item Models for information flow policies + \begin{itemize*} + \item $\rightarrow$ multilevel security(MLS) + \end{itemize*} + \item Models for non-interference/domain isolation policies + \begin{itemize*} + \item $\rightarrow$ non-interference(NI) + \end{itemize*} + \item In Practice: Most oftenhybrid models + \end{itemize*} + + + \subsubsection{Access Control Models} + Formal representations of permissions to execute operations on objects, e. g.: + \begin{itemize*} + \item Reading files + \item Issuing payments + \item Controlling industrial centrifuges + \end{itemize*} + Security policies describeaccess rules $\rightarrow$ security models formalize them + + Taxonomy + > Identity-based access control models (IBAC) + > + > Rules based on the identity of individual subjects (users, apps, processes, ...) or objects (files, directories, database tables, ...) $\rightarrow$ "Ann may read ProjectX Files." + + > Role-based access control models (RBAC) + > + > Rules based on roles of subjects in an organization $\rightarrow$ "Ward physicians may modify electronic patient records (EPRs) in their ward." + + > Attribute-based access control models (ABAC) + > + > Rules based on attributes of subjects and objects $\rightarrow$ "PEGI 18 rated movies may only be streamed to users aged 18 and over." + + > Discretionary Access Control (DAC) + > + > Individual users specify access rules to objects within their area of responsibility ("at their discretion"). + + Example: Access control in many OS (e. g. Unix(oids), Windows) + + Consequence: Individual users + \begin{itemize*} + \item enjoy freedom w. r. t. granting access permissions as individually needed + \item need to collectively enforce their organization’s security policy: + \begin{itemize*} + \item competency problem + \item responsibility problem + \item malware problem + \end{itemize*} + \end{itemize*} + + > Mandatory Access Control (MAC) + > + > System designers and administrators specify system-wide rules, that apply for all users and cannot be sidestepped. + + Examples: + \begin{itemize*} + \item Organizational: airport security check + \item Technical: medical information systems, policy-controlled operating systems(e. g. SELinux) + \end{itemize*} + + Consequence: + \begin{itemize*} + \item Limited individual freedom + \item Enforced by central instance: + \begin{itemize*} + \item clearly identified + \item competent (security experts) + \item responsible (organizationally \& legally) + \end{itemize*} + \end{itemize*} + + \paragraph{DAC vs. MAC} + In Real-world Scenarios: Mostly hybrid models enforced by both discretionary and mandatory components, e. g.: + \begin{itemize*} + \item DAC: locally within a project, team members individually define permissions w. r. t. documents (implemented in project management software and workstation OSs) inside this closed scope; + \item MAC:globally for the organization, such that e. g. only documents approved for release by organizational policy rules (implemented in servers and their communication middleware) may be accessed from outside a project’s scope. + \end{itemize*} + + + \paragraph{Identity-based Access Control Models (IBAC)} + Goal: To precisely specify the rights ofindividual, acting entities. + + Basic IBAC Paradigm %![](Assets/Systemsicherheit-ibac-basic.png) + \begin{itemize*} + \item User named s reads file named o + \item Client s transfers money to bank account o + \item Process with ID s sends over socket with ID o + \end{itemize*} + + There are + \begin{itemize*} + \item Subjects, i. e. active and identifiable entities, that execute + \item operations on + \item passive and identifiable objects, requiring + \item rights (also: permissions, privileges) which + \begin{itemize*} + \item control (restrict) execution of operations, + \item are checked against identity of subjects and objects. + \end{itemize*} + \end{itemize*} + + Access Control Functions [Lampson, 1974] + \begin{itemize*} + \item A really basic model to define access rights: + \begin{itemize*} + \item Who (subject) is allowed to do what (operation) on which object + \item Fundamental to OS access control since 1965 (Multics OS) + \item Formal paradigms: sets and functions + \end{itemize*} + \item Access Control Function (ACF) + \begin{itemize*} + \item $f:S \times O \times OP \rightarrow \{true,false\}$ where + \item S is a set of subjects (e. g. users, processes), + \item O is a set of objects(e. g. files, sockets, EPRs), + \item OP is a finite set of operations(e. g. reading, writing, deleting). + \end{itemize*} + \item Interpretation: Rights to execute operations are modeled by the ACF: + \begin{itemize*} + \item any $s\in S$ represents an authenticated active entity (e. g. a user or process) which potentially executes operations on objects + \item any $o\in O$ represents an authenticated passive entity (e. g. a file or a database table) on which operations are executed + \item for any $s\in S$,$o\in O$,$op\in OP$:s is allowed to execute op on o iff f(s,o,op)=true. + \item Model making: finding a $tuple⟨S,O,OP,f⟩$ + \item $\rightarrow$ Definition of S,O, and OP + \item $\rightarrow$ Definition of f + \end{itemize*} + \end{itemize*} + + iff = "if and only if" + + Example: Implementation of f in a Unix OS (heavily simplified): + \begin{itemize*} + \item S: set of identifiers for users who execute processes + \item O: set of identifiers for system objects, e. g. files, directories, sockets, ... + \item OP: set of system call identifiers + \end{itemize*} + + Example for f(caller,file,read): + + \begin{lstlisting}[ + language=C++, + showspaces=false, + basicstyle=\ttfamily, + commentstyle=\color{gray} + ] + read ( caller , file ) { + if !(caller.uid == 0) {/* is caller == root? */ + if !(R_MODE in file.inode.othersRWX) {/* check "other"-rights */ + if !(caller.gid == file.inode.group && R_MODE in file.inode.groupRWX) {/* check "group"-rights */ + if !(caller.uid == file.inode.owner && R_MODE in file.inode.ownerRWX) {/* check "group"-rights */ + return ERR_ACCESS_DENIED;/* insufficient rights: deny access */ + } } } + /* execute syscall "read" */ + } + \end{lstlisting} + + \paragraph{Access Control Matrix} + Access Control Functions in Practice + Lampson [1974] already addresses the questions how to ... + \begin{itemize*} + \item store in a well-structured way, + \item efficiently evaluate, and + \item completely analyze an ACF: + \end{itemize*} + + > Access Control Matrix (ACM) + > + > An ACM is a matrix $m:S\times O \rightarrow 2^{OP}$, such that $\forall s\in S,\forall o\in O:op\in m(s,o)\Leftrightarrow f(s,o,op)$. + + An ACM is a rewriting of the definition of an ACF: nothing is added, nothing is left out ("$\Leftrightarrow$"). Despite a purely theoretical model: paved the way for practically implementing AC meta-informationas + \begin{itemize*} + \item tables + \item 2-dimensional lists + \item distributed arrays and lists + \end{itemize*} + + Example + \begin{itemize*} + \item $S=\{s_1 ,...,s_n\}$ + \item $O=\{o_1 ,...,o_k\}$ + \item $OP=\{read,write\}$ + \item $2^{OP}=\{\varnothing,\{read\},\{write\},\{read,write\}\}^2$ + %![](Assets/Systemsicherheit-access-control-matrix.png) + \end{itemize*} + + Implementation Notes + \begin{itemize*} + \item ACMs are implemented in most + \begin{itemize*} + \item Operating systems + \item Database information systems + \item Middleware platforms(CORBA, Jini/Apache River, Web Services) + \item Distributed security architectures (Kerberos) + \end{itemize*} + \item whose security mechanisms use one of two implementations: + \end{itemize*} + + Access Control Lists (ACLs) + \begin{itemize*} + \item Columns of the ACM: `char*o3[N] = { "-", "-", "rw", ...};` + \item Found in I-Nodes of Unix(oids), Windows, Mac OS + \end{itemize*} + + Capability Lists + \begin{itemize*} + \item Rows of the ACM: `char* s1[K] = { "-", "r", "-", ...};` + \item Found in distributed OSs, middleware, Kerberos + \end{itemize*} + + What we Actually Model: + > Protection State + > + > A fixed-time snapshot of all active entities, passive entities, and any meta-information used for making access decisions is called theprotection state of an access control system. + + > Goal of ACFs/ACMs + > + > To precisely specify a protection state of an AC system. + + \paragraph{The Harrison-Ruzzo-Ullman Model (HRU)} + Our HIS scenario ... modeled by an ACM: + \begin{itemize*} + \item $S=\{cox, kelso, carla,...\}$ + \item $O=\{patId, diag, medic,...\}$ + \end{itemize*} + + \begin{tabular}{c|c|c|c} + m & parId & diag & medic \\\hline + cox & {read, write} & {read, write} & {read, write} \\ + kelso & {read} & {read} & {read} \\ + carla & {read} & $\varnothing$ & {read} \\ + ... + \end{tabular} + + We might do it like this, but ... Privilege escalation question: + "Can it ever happen that in a given state, some specific subject obtains a specific permission?" + $\varnothing \Rightarrow \{r,w\}$ + \begin{itemize*} + \item ACM models a single state ⟨S,O,OP,m⟩ + \item ACM does not tell us anything about what might happen in the future + \item Behavior prediction $\rightarrow$ proliferation of rights $\rightarrow$ HRU safety + \end{itemize*} + + Why "safety", not "security"? Well, historical ... + + We need a model which allows statements about + \begin{itemize*} + \item Dynamic behavior of right assignments + \item Complexity of such an analysis + \end{itemize*} + + Idea [Harrison et al., 1976]: A (more complex) security model combining + \begin{itemize*} + \item Lampson’s ACM $\rightarrow$ for modeling single protection state (snapshots) of an AC system + \item Deterministic automata (state machines) $\rightarrow$ for modeling runtime changes of a protection state + \end{itemize*} + + This idea was pretty awesome. We need to understand automata, since from then on they were used for most security models. $\rightarrow$ Small excursus + + \paragraph{Deterministic Automata} + Mealy Automaton: $⟨Q,\sum,\Omega,\delta,\lambda,q_0⟩$ + \begin{itemize*} + \item $Q$ is a finite set of states (state space), e. g. $Q=\{q_0 ,q_1 ,q_2\}$ + \item $\sum$ is a finite set of input words (input alphabet), e. g. $\sum=\{a,b\}$ + \item $\Omega$ is a finite set of output words (output alphabet), e. g. $\Omega=\{yes,no\}$ + \item $\delta:Q\times\sum\rightarrow Q$ is the state transition function + \item $\lambda:Q\times\sum\rightarrow\Omega$ is the output function + \item $q_0\in Q$ is the initial state + \item $\delta(q,\sigma)=q'$ and $\lambda(q,\sigma)=\omega$ can be expressed through thestate diagram: a directed graph $⟨Q,E⟩$, where each edge $e\in E$ is represented by a state transition’s predecessor node $q$, its successor node $q'$, and a string "$\sigma|\omega$" of its input and output, respectively. + %![](Assets/Systemsicherheit-mealy-automaton.png) + \end{itemize*} + + Example: Return "yes" for any input in an unbroken sequence of "a" or "b", "no" otherwise. + %![](Assets/Systemsicherheit-mealy-beispiel.png) + + \paragraph{HRU Security Model} + How we use Deterministic Automata + \begin{itemize*} + \item Snapshot of an ACMis the automaton’s state + \item Changes of the ACMduring system usage are modeled by state transitions of the automaton + \item Effects ofoperationsthat cause such transitions are described by the state transition function + \item Analyses ofright proliferation($\rightarrow$ privilege escalation)are enabled by state reachability analysis methods + \end{itemize*} + + An HRU model is a deterministic automaton $⟨Q,\sum,\delta,q_0 ,R⟩$ where + \begin{itemize*} + \item $Q= 2^S\times 2^O\times M$ is the state space where + \begin{itemize*} + \item S is a (not necessarily finite) set of subjects, + \item O is a (not necessarily finite) set of objects, + \item $M=\{m|m:S\times O\rightarrow 2^R\}$ is a (not necessarily finite) set of possible ACMs, + \end{itemize*} + \item $\sum=OP\times X$ is the (finite) input alphabet where + \begin{itemize*} + \item $OP$ is a set of operations, + \item $X=(S\cup O)^k$ is a set of k-dimensional vectors of arguments (subjects or objects) of these operations, + \end{itemize*} + \item $\sigma:Q\times\sum\rightarrow Q$ is the state transition function, + \item $q_0\in Q$ is the initial state, + \item R is a (finite) set of access rights. + \end{itemize*} + + + Interpretation + \begin{itemize*} + \item Each $q=S_q,O_q,m_q\in Q$ models a system’s protection state: + \begin{itemize*} + \item current subjects set $S_q\subseteq S$ + \item current objects set $O_q\subseteq O$ + \item current ACM $m_q\in M$ where $m_q:S_q\times O_q\rightarrow 2^R$ + \end{itemize*} + \item State transitions modeled by $\delta$ based on + \begin{itemize*} + \item the current automaton state + \item an input word $⟨op,(x_1,...,x_k)⟩\in\sum$ where $op$ + \begin{itemize*} + \item may modify $S_q$ (create a user $x_i$, kill a process $x_i$ etc.), + \item may modify $O_q$ (create/delete a file $x_i$, open a socket $x_i$ etc.), + \item may modify the contents of a matrix cell $m_q(x_i,x_j)$ (enter or remove rights) where $1\leq i,j\leq k$. + \end{itemize*} + \item $\rightarrow$ We also call $\delta$ the state transition scheme (STS) of a model. + \item Historically: "authorization scheme" [Harrison et al., 1976]. + \end{itemize*} + \end{itemize*} + + \paragraph{State Transition Scheme (STS)} + Using the STS, $\sigma:Q\times\sum\rightarrow Q$ is defined by a set of specifications in the normalized form + $\sigma(q,⟨op,(x_1,...,x_k)⟩)$=if $r_1\in m_q(x_{s1},x_{o1}) \wedge ... \wedge r_m\in m_q(x_{sm},x_{om})$ then $p_1\circ ...\circ p_n$ where + \begin{itemize*} + \item $q=\{S_q,O_q,m_q\}\in Q,op\in OP$ + \item $r_1 ...r_m\in R$ + \item $x_{s1},...,x_{sm}\in S_q$ and $x_{o1},...,x_{om}\in O_q$ where $s_i$ and $o_i$, $1\leq i\leq m$, are vector indices of the input arguments: $1\leq s_i,o_i\leq k$ + \item $p_1,...,p_n$ are HRU primitives + \item Note: $\circ$ is the (transitive) function composition operator: $(f\circ g)(x)=g(f(x))$ + \end{itemize*} + + Whenever $q$ is obvious or irrelevant, we use a programming-style notation + + Interpretation: The structure of STS definitions is fixed in HRU: + \begin{itemize*} + \item "if": A conjunction of condition clauses (or just conditions) with the sole semantics "is some right in some matrix cell". + \item "then": A concatenation (sequential execution) of HRU primitives. + \end{itemize*} + + Conditions: + Expressions that need to evaluate "true" for state q as a necessary precondition for command $op$ to be executable (= can be successfully called). + + Primitives: + Short, formal macros that describe differences between $q$ and $a$ successor state $q'=\sigma(q,⟨op,(x_1 ,...,x_k)⟩)$ that result from a complete execution of op: + \begin{itemize*} + \item enter r into $m(x_s,x_o)$ + \item delete r from $m(x_s,x_o)$ + \item create subject $x_s$ + \item create object $x_o$ + \item destroy subject $x_s$ + \item destroy object $x_o$ + \item $\rightarrow$ Each of these with the intuitive semantics for manipulating $S_q, O_q$ or $m_q$. + \end{itemize*} + + Note the atomic semantics: the HRU model assumes that each command successfully called is always completely executed! + + How to Design an HRU Security Model: + 1. Model Sets: Subjects, objects, operations, rights $\rightarrow$ define the basic sets $S,O,OP,R$ + 2. STS: Semantics of operations (e. g. the future API of the system to model) that modify the protection state $\rightarrow$ define $\sigma$ using the normalized form/programming syntax of the STS + 3. Initialization: Define a well-known initial stateq $0 =⟨S_0 ,O_0 ,m_0 ⟩$ of the system to model + + An Open University Information System + %![](Assets/Systemsicherheit-university-information-system.png) + \begin{itemize*} + \item Informal security policy (heavily simplified):2 rules + \begin{itemize*} + \item "A sample solution for home assignments can be downloaded by students only after submitting their own solution." + \begin{itemize*} + \item a condition for readSample + \item a effect of writeSolution + \end{itemize*} + \item "Student solutions can be submitted only before downloading any sample solution." + \begin{itemize*} + \item a condition for writeSolution + \item a effect of readSample + \end{itemize*} + \end{itemize*} + \end{itemize*} + + + Model Making + 1. Sets + \begin{itemize*} + \item Subjects, objects, operations, rights: + \begin{itemize*} + \item Subjects: An unlimited number of possible students: $S\cong\mathbb{N}$ (S is isomorphic to $N$) + \item Objects: An unlimited number of possible solutions: $O\cong\mathbb{N}$ + \item Operations: + \begin{itemize*} + \item (a) Submit own solution: $writeSolution(s_{student},o_{solution})$ + \item (b) Download sample solution: $readSample(s_{student},o_{sample})$ + \item $\rightarrow OP=\{writeSolution, readSample\}$ + \end{itemize*} + \item Rights: Exactly one right allows to execute each operation: $R\cong OP$ + \begin{itemize*} + \item $\rightarrow R=\{write, read\}$ + \end{itemize*} + \end{itemize*} + \end{itemize*} + 2. State Transition Scheme + \begin{itemize*} + \item Effects of operations on protection state: + \begin{itemize*} + \item writeSolution + Informal Policy: "A sample solution (...) can be downloaded by students only after submitting their own solution." $\Leftrightarrow$ "If the automaton receives an input ⟨writeSolution,(s,o)⟩ and the conditions are satisfied, it transitions to a state where s is allowed to download the sample solution." + \end{itemize*} + \end{itemize*} + + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command writeSolution(s,o) ::= if write $\in$ m(s,o) + then + enter read into m(s,o); + fi + \end{lstlisting} + \begin{itemize*} + \item readSample + \item Informal Policy: "Student solutions can be submitted only before downloading any sample solution." $\Leftrightarrow$ "If the automaton receives an input⟨readSample,(s,o)⟩and the conditions are satisfied, it transitions to a state wheresis denied to submit a solution." + \end{itemize*} + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command readSample(s,o) ::= if read$\in$ m(s,o) + then + delete write from m(s,o); + fi + \end{lstlisting} + 3. Initialization + \begin{itemize*} + \item By model definition: $q_0 =⟨S_0 ,O_0 ,m_0 ⟩$ + \item For a course with (initially) three students: + \begin{itemize*} + \item $S_0 =\{sAnn, sBob, sChris\}$ + \item $O_0 =\{oAnn, oBob, oChris\}$ + \item $m_0$: + \begin{itemize*} + \item $m_0(sAnn,oAnn)=\{write\}$ + \item $m_0(sBob,oBob)=\{write\}$ + \item $m_0(sChris,oChris)=\{write\}$ + \item $m_0(s,o)=\varnothing \Leftrightarrow s\not= o$ + \end{itemize*} + \item Interpretation: "There is a course with three students, each of whom has their own workspace to which she is allowed to submit (write) a solution." + \end{itemize*} + \end{itemize*} + + Model Behavior + \begin{itemize*} + \item Initial Protection State + \begin{tabular}{l|l|l|l} + m & oAnn & oBob & oChris \\\hline + sAnn & {write} & $\varnothing$ & $\varnothing$ \\ + sBob & $\varnothing$ & {write} & $\varnothing$ \\ + sChris & $\varnothing$ & $\varnothing$ & {write} + \end{tabular} + \item After $writeSolution(sChris, oChris)$ + \begin{tabular}{l|l|l|l} + m & oAnn & oBob & oChris \\\hline + sAnn & {write} & $\varnothing$ & $\varnothing$ \\ + sBob & $\varnothing$ & {write} & $\varnothing$ \\ + sChris & $\varnothing$ & $\varnothing$ & {write, read} + \end{tabular} + \item After $readSample(sChris, oChris)$ + \begin{tabular}{l|l|l|l} + m & oAnn & oBob & oChris \\\hline + sAnn & {write} & $\varnothing$ & $\varnothing$ \\ + sBob & $\varnothing$ & {write} & $\varnothing$ \\ + sChris & $\varnothing$ & $\varnothing$ & {read} + \end{tabular} + \end{itemize*} + + Summary + \begin{itemize*} + \item Model Behavior + \begin{itemize*} + \item The model’sinputis a sequence of actions from OP together with their respective arguments. + \item The automaton changes its state according to the STS and the semantics of HRU primitives (here: enter and delete). + \item In the initial state, each student may (repeatedly) submit her respective solution. + \end{itemize*} + \item Tricks in this Example + \begin{itemize*} + \item The sample solution is not represented by a separate object $\rightarrow$ no separate column in the ACM. + \item Instead, we smuggled thereadright for it into the cell of each student’s solution ... + \end{itemize*} + \item Where Do We Stand? + \begin{itemize*} + \item We can now model a security policy for particular IBAC scenarios + \item We can formally express them through an automaton-based framework. + \end{itemize*} + \item What’s Next? Why all this? + \begin{itemize*} + \item Correct specification and implementation of the modeled policy + \item Analysis of security properties $\rightarrow$ Next ... + \end{itemize*} + \end{itemize*} + + \paragraph{HRU Model Analysis} + \begin{itemize*} + \item Reminder: "For a given security model, is it possible that a subjecteverobtains a specific permission with respect to a specific object?" + \item Analysis of Right Proliferation $\rightarrow$ The HRU safety problem. + \end{itemize*} + + InputSequences + \begin{itemize*} + \item "What is the effect of an input in a given state?" $\rightarrow$ asingle state transitionas defined by $\delta$ + \item "What is the effect of an input sequence in a given state?" $\rightarrow$ a composition ofsequential state transitionsas defined by $\delta*$ + \end{itemize*} + + > Transitive State Transition Function $\delta^*$ + > + > Let $\sigma\sigma\in\sum^*$ be a sequence of inputs consisting of a single input $\sigma\in\sum\cup\{\epsilon\}$ followed by a sequence $\sigma\in\sum^*$, where $\epsilon$ denotes an empty input sequence. Then, $\delta^*:Q\times\sum^*\rightarrow Q$ is defined by + \begin{itemize*} + \item $\delta^*(q,\sigma\sigma^*)=\delta^*(\delta(q,\sigma),\sigma^*)$ + \item $\delta^*(q,\epsilon)=q$. + \end{itemize*} + + HRU Safety + A state q of an HRU model is called HRU safe with respect to a right $r\in R$ iff, beginning with q, there is no sequence of commands that enters r in an ACM cell where it did not exist in q. + According to Tripunitara and Li [2013], this property (Due to more technical details, it’s called simple-safety there.) is defined as: + > HRU Safety + > + > For a state $q=\{S_q,O_q,m_q\}\in Q$ and a right $r\in R$ of an HRU model $⟨Q,\sum,\delta,q_0,R⟩$, the predicate $safe(q,r)$ holds iff + > $\forall q'= S_{q'},O_{q'},m_{q'} \in \{\delta^*(q,\sigma^*)|\sigma^*\in\sum^*\},\forall s\in S_{q'},\forall o\in O_{q'}: r\in m_{q'}(s,o)\Rightarrow s\in S_q \wedge o\in O_q \wedge r\in m_q(s,o)$. + > + > We say that an HRU model is safe w.r.t. r iff $safe(q_0 ,r)$. + + \paragraph{HRU Safety} + Examples + \begin{itemize*} + \item Assume all states in $\{\delta^*(q,\sigma^*)|\sigma^*\in\sum^*\}$ have been validated except for $q'$: + \begin{itemize*} + \item State transfer 1 + \begin{tabular}{l|l|l|l} + $m_q$ & $o_1$ & $o_2$ & $o_3$ \\\hline + $s_1$ & $\{r_1,r_3\}$ & $\{r_1,r_3\}$ & $\{r_2\}$ \\ + $s_2$ & $\{r_1\}$ & $\{r_1\}$ & $\{r_2\}$ \\ + $s_3$ & $\varnothing$ & $\varnothing$ & $\{r_2\}$ + \end{tabular} + \begin{itemize*} + \item $\Rightarrow \delta^*(q,\sigma^*)$ + \end{itemize*} + \begin{tabular}{l|l|l|l} + $m_{q'}$ & $o_1$ & $o_2$ & $o_3$ \\\hline + $s_1$ & $\{r_1,r_3\}$ & $\{r_1\}$ & $\{r_2\}$ \\ + $s_2$ & $\{r_1,r_2\}$ & $\{r_1\}$ & $\{r_2\}$ \\ + $s_3$ & $\varnothing$ & $\varnothing$ & $\varnothing$ + \end{tabular} + \begin{itemize*} + \item $r_3\not\in m_{q'}(s_1,o_2)\wedge r_3\in m_q(s_1,o_1)\Rightarrow safe(q,r_3)$ + \item $r_2\in m_{q'}(s_2,o_1)\wedge r_2 \not\in m_q(s_2,o_1)\Rightarrow\lnot safe(q,r_2)$ + \end{itemize*} + \item State transfer 2 + \begin{tabular}{l|l|l|l} + $m_q$ & $o_1$ & $o_2$ & $o_3$ \\\hline + $s_1$ & $\{r_1,r_3\}$ & $\{r_1,r_3\}$ & $\{r_2\}$ \\ + $s_2$ & $\{r_1\}$ & $\{r_1\}$ & $\{r_2\}$ \\ + $s_3$ & $\varnothing$ & $\varnothing$ & $\{r_2\}$ + \end{tabular} + \begin{itemize*} + \item $\Rightarrow \delta^*(q,\sigma^*)$ + \end{itemize*} + \begin{tabular}{l|l|l|l|l} + $m_{q'}$ & $o_1$ & $o_2$ & $o_3$ & $o_4$ \\\hline + $s_1$ & $\{r_1,r_3\}$ & $\{r_1,r_3\}$ & $\{r_2\}$ & $\varnothing$ \\ + $s_2$ & $\{r_1\}$ & $\{r_1\}$ & $\{r_2\}$ & $\{r_2\}$ \\ + $s_3$ & $\varnothing$ & $\varnothing$ & $\{r_2\}$ & $\varnothing$ + \end{tabular} + \begin{itemize*} + \item $\forall s\in S_{q'}:r_3\not\in m_{q'}(s,o_4)\wedge r_3\in m_q(s_1,o_1)\wedge r_3\in m_q(s_1,o_2)\Rightarrow safe(q,r_3)$ + \item $r_2\in m_{q'}(s_2,o_4)\wedge o_4\not\in O_q\Rightarrow\lnot safe(q,r_2)$ + \end{itemize*} + \end{itemize*} + \end{itemize*} + + Let’s dissect the previous definitions: from a practical perspective, showing that an HRU model is safe w.r.t. r means to + 1. Search for any possible (reachable) successor state $q'$ of $q_0$ ("$\{\delta(q_0,\sigma)|\sigma\in\sum\}$") + 2. Visit all cells in $m_{q'}$ ("$\forall s\in S_{q'},\forall o\in O_{q'}:...$") + 3. If r is found in one of these cells ("$r\in m_{q'}(s,o)$"), check if + \begin{itemize*} + \item $m_q$ is defined for this very cell ("$s\in S_q\wedge o\in O_q$"), + \item $r$ was already contained in this very cell in $m_q$ ("$r\in m_q(s,o)$"). + \end{itemize*} + 4. Recursively proceed with 2. for any possible successor state $q''$ of $q'$ ("$\{\delta^*(q_0,\sigma^*)|\sigma^*\in\sum^*\}$") + + Safety Decidability + > Theorem 1 [Harrison et al., 1976] + > + > Ingeneral, HRU safety is not decidable. + + > Theorem 2 (also Harrison et al. [1976]) + > + > For mono-operational models, HRU safety is decidable. + + "So ... what is amono-operational HRU model?" $\rightarrow$ exactly one primitive for each operation in the STS: + + \begin{lstlisting}[ + language=C++, + showspaces=false + ] + command op(x_1 , ...,x_k) ::= if r_1 \in m(x_s1 ,x_o1 ) \wedge + ... \wedge + r_m \in m(x_sm,x_om) + then + p_1; + fi + \end{lstlisting} + \begin{itemize*} + \item Theorem 1: See Harrison et al. [1976], reduction to the Halteproblem. + \item Theorem 2: We’ll have a closer look at this one ... + \begin{itemize*} + \item Insights into the operational principles modeled by HRU models + \item Demonstrates a method to prove safety property for a particular, given model + \item $\rightarrow$ "Proofs teach us how to build things so nothing more needs to be proven." (W. E. Kühnhauser) + \end{itemize*} + \end{itemize*} + + \paragraph{Proof of Theorem} + \begin{itemize*} + \item Proof Sketch + 1. Find an upper bound for the length of all input sequences with different effects on the protection state w.r.t. safety + If such can be found: $\exists$ a finite number of input sequences with different effects + 2. All these inputs can be tested whether they violate safety. This test terminates because: + \begin{itemize*} + \item each input sequence is finite + \item there is only a finite number of relevant sequences + \end{itemize*} + \item $\rightarrow$ safety is decidable + \end{itemize*} + + Given a mono-operational HRU model. + Let $\sigma_1...\sigma_n$ be any sequence of inputs in $\sum^*$ that violates $safe(q,r)$, and let $p_1...p_n$ be the corresponding sequence of primitives (same length, since mono-operational). + + Proposition: For each such sequence, there is a corresponding finite sequence that + \begin{itemize*} + \item Still violates $safe(q,r)$ + \item Consists only of enter and two initial create primitives + \end{itemize*} + + In other words: For any input sequence,$\exists$ a finite sequence with the same effect. + + Proof: + \begin{itemize*} + \item We construct these finite sequences ...$\rightarrow$ + \item Transform $\sigma_1...\sigma_n$ into shorter sequences with the same effect: + 1. Remove all input operations that contain delete or destroy primitives. The sequence still violates $safe(q,r)$, because conditions of successive commands must still be satisfied (no absence, only presence of rights is checked). + 2. Prepend the sequence with an initial create subject $s_{init}$ operation. This won’t change its netto effect, because the new subject isn’t used anywhere. + 3. Prune the last create subject s operation and substitute each following reference to s with $s_{init}$. Repeat until allcreate subjectoperations are removed, except from the initialcreate subject sinit. + 4. Same as steps 2 and 3 for objects. + 5. Remove all redundant enter operations (remember: each matrix cell is a set $\rightarrow$ unique elements). + \end{itemize*} + + Example: + \begin{tabular}{l|l|l|l|l|l} + init & 1. & 2. & 3. & 4. & 5. \\\hline + ... & ... & create subject $s_{init}$; & create subject $s_{init}$; & create subject $s_{init}$; & create subject $s_{init}$; \\ + ... & ... & ... & ... & create object $o_{init}$ & create object $o_{init}$ \\ + create subject x2; & create subject x2; & create subject x2; & - & - & - \\ + create object x5; & create object x5; & create object x5; & create object x5; & - & - \\ + enter r1 into m(x2,x5); & enter r1 into m(x2,x5); & enter r1 into m(x2,x5); & enter r1 into $m(s_{init},x5)$; & enter r1 into $m(s_{init},o_{init})$; & enter r1 into $m(s_{init},o_{init})$; \\ + enter r2 into m(x2,x5); & enter r2 into m(x2,x5); & enter r2 into m(x2,x5); & enter r2 into $m(s_{init},x5)$; & enter r2 into $m(s_{init},o_{init})$; & enter r2 into $m(s_{init},o_{init})$; \\ + create subject x7; & create subject x7; & create subject x7; & - & - & - \\ + delete r1 from m(x2,x5); & - & - & - & - & - \\ + destroy subject x2; & - & - & - & - & - \\ + enter r1 into m(x7,x5); & enter r1 into m(x7,x5); & enter r1 into m(x7,x5); & enter r1 into $m(s_{init},x5)$; & enter r1 into $m(s_{init},o_{init})$; & - \\ + ... & ... & ... & ... & ... & ... + \end{tabular} + + Observations + \begin{itemize*} + \item after step 3: + \begin{itemize*} + \item Except for $s_{init}$, the sequence creates no more subjects + \item All rights of the formerly created subjects are accumulated in $s_{init}\rightarrow$ for the evaluation of $safe(q,r)$, nothing has changed: + \begin{itemize*} + \item generally: $\forall s\in S_{q'},\forall o\in O_{q'}:r\in m_{q'}(s,o)\Rightarrow s\in S_q\wedge o\in O_q\wedge r\in m_q(s,o)$ + \item in this case: $\forall s\in S_{q'},\forall o\in O_{q'}:r\in m_{q'}(s,o)\Rightarrow s\not=s_{init}\wedge o\in O_q\wedge r\in m_q(s,o)$ + \end{itemize*} + \item The sequence is generally shorter (never longer) than before + \end{itemize*} + \item Final Observations + \begin{itemize*} + \item Except for $s_{init}$ and $o_{init}$, the sequence creates no subjects or objects + \item All entered rights are accumulated in $m_{q'}(s_{init},o_{init})$: + \begin{itemize*} + \item generally: $\forall s\in S_{q'},\forall o\in O_{q'}:r\in m_{q'}(s,o)\Rightarrow s\in S_q\wedge o\in O_q\wedge r\in m_q(s,o)$ + \item here: $\forall s\in S_{q'},\forall o\in O_{q'}:r\in m_{q'}(s,o)\Rightarrow s\not=s_{init}\wedge o\not=o_{init}\wedge r\in m_q(s,o)$ + \end{itemize*} + \item This sequence still violates $safe(q,r)$, but its length is restricted to $(|S_q| + 1)(|O_q|+1)|R|+2$ because + \begin{itemize*} + \item Each enter must enter a new right into a cell + \item The number of cells is restricted to $(|S_q| + 1)(|O_q|+1)$ + \end{itemize*} + \end{itemize*} + \end{itemize*} + + Conclusions from these Theorems + \begin{itemize*} + \item Dilemma: + \begin{itemize*} + \item General (unrestricted) HRU models + \begin{itemize*} + \item have strong expressiveness $\rightarrow$ can model a broad range of AC policies + \item are hard to analyze: algorithms and tools for safety analysis + \begin{itemize*} + \item $\rightarrow$ cannot certainly produce accurate results + \item $\rightarrow$ are hard to design for approximative results + \end{itemize*} + \end{itemize*} + \item Mono-operational HRU models + \begin{itemize*} + \item have weak expressiveness $\rightarrow$ goes as far as uselessness: e. g. for modeling Unix creat(can only create files, sockets, IPC, ... that no user process can access!) + \item are efficient to analyze: algorithms and tools for safety analysis + \item $\rightarrow$ are always guaranteed to terminate + \item $\rightarrow$ are straight-forward to design + \end{itemize*} + \end{itemize*} + \end{itemize*} + + Consequences: + \begin{itemize*} + \item Model variants with restricted yet usable expressiveness have been proposed + \item Heuristic analysis methods try to provide educated guesses about safety of unrestricted HRU + \end{itemize*} + + + \paragraph{(A) Restricted Model Variants} + Static HRU Models + \begin{itemize*} + \item Static: no create primitives allowed + \item safe(q,r) decidable, but NP-complete problem + \item Applications: (static) real-time systems, closed embedded systems + \end{itemize*} + + Monotonous Mono-conditional HRU Models + \begin{itemize*} + \item Monotonous (MHRU): no delete or destroy primitives + \item Mono-conditional: at most one clause in conditions part (For monotonous bi-conditional models, safety is already undecidable ...) + \item safe(q,r) efficiently decidable + \item Applications: Archiving/logging systems (where nothing is ever deleted) + \end{itemize*} + + Finite Subject Set + \begin{itemize*} + \item $\forall q\in Q,\exists n\in N: |S_q|\leq n$ + \item $safe(q,r)$ decidable, but high computational complexity + \end{itemize*} + + Fixed STS + \begin{itemize*} + \item All STS commands are fixed, match particular application domain (e.g. OS access control [Lipton and Snyder, 1977]) $\rightarrow$ no model reusability + \item For Lipton and Snyder [1977]: $safe(q,r)$ decidable in linear time (!) + \end{itemize*} + + Strong Type System + \begin{itemize*} + \item Special model that generalizes HRU: Typed Access Matrix (TAM) [Sandhu, 1992] + \item $safe(q,r)$ decidable in polynomial time for ternary, acyclic, monotonous variants + \item high, though not unrestricted expressiveness in practice + \end{itemize*} + + \paragraph{(B) Heuristic Analysis Methods} + Motivation: + \begin{itemize*} + \item Restricted model variants: often too weak for real-world applications + \item General HRU models: safety property cannot be guaranteed $\rightarrow$ Let’s try to get a piece from both cakes: Heuristically guided safety estimation [Amthor et al., 2013] + \end{itemize*} + + Idea: + \begin{itemize*} + \item State-space exploration by model simulation + \item Task of heuristic: generating input sequences ("educated guessing") + \end{itemize*} + + Outline: Two-phase-algorithm to analyze $safe(q_0,r)$: + 1. Static phase: Infer knowledge from the model that helps heuristic to make "good" decisions. + \begin{itemize*} + \item $\rightarrow$ Runtime: polynomial in model size ($q_0 + STS$) + 2. Simulation phase: The automaton is implemented and, starting with $q_0$, fed with inputs $\sigma=⟨op,x⟩$ + \begin{itemize*} + \item $\rightarrow$ For each $\sigma$, the heuristic has to decide: + \begin{itemize*} + \item which operation op to use + \item which vector of arguments x to pass + \item which $q_i$ to use from the states in $Q$ known so far + \end{itemize*} + \item Termination: As soon as $\sigma(q_i,\sigma)$ violates $safe(q_0,r)$. + \end{itemize*} + \end{itemize*} + + Goal: Iteratively build up the (possibly infinite!) $Q$ for a model to falsify safety by example (finding a violating, but possible protection state). + + Results: + \begin{itemize*} + \item Termination: Well ... we only have a semi-decidable problem here: It can be guaranteed that a model is unsafe if we terminate. We cannot ever prove the opposite, however! ($\rightarrow$ safety undecidability) + \item Performance: A few results + \begin{itemize*} + \item 2013:Model size 10 000 $\approx 2215$ s + \item 2018:Model size 10 000 $\approx 0,36$ s + \item 2018:Model size 10 000 000 $\approx 417$ s + \end{itemize*} + \end{itemize*} + + Achievements: + \begin{itemize*} + \item Find typical errors in security policies: Guide their designers, who might know there’s something wrong w. r. t. right proliferation, but not what and why! + \item Increase our understanding of unsafety origins: By building clever heuristics, we started to understand how we might design specialized HRU models ($\rightarrow$ fixed STS, type system) that are safety-decidable yet practically (re-) usable [Amthor and Rabe, 2020]. + \end{itemize*} + + \paragraph{Summary HRU Models} + Goal + \begin{itemize*} + \item Analysis of right proliferation in AC models + \item Assessing the computational complexity of such analyses + \end{itemize*} + + Method + \begin{itemize*} + \item Combining ACMs and deterministic automata + \item Defining $safe(q,r)$ based on this formalism + \end{itemize*} + + Conclusions + \begin{itemize*} + \item Potential right proliferation (privilege escalation): Generally undecidable problem + \item $\rightarrow$ HRUmodel family, consisting of application-tailored, safety-decidable variants + \item $\rightarrow$ Heuristic analysis methods for practical error-finding + \end{itemize*} + + \paragraph{The Typed-Access-Matrix Model (TAM)} + Goal + \begin{itemize*} + \item AC model, similar expressiveness to HRU + \item $\rightarrow$ can be directly mapped to implementations of an ACM: OS ACLs, DB permission assignment tables + \item Better suited for safety analyses: precisely statemodel properties for decidable safety + \end{itemize*} + + Idea [Sandhu, 1992] + \begin{itemize*} + \item Adopted from HRU: subjects, objects, ACM, automaton + \item New:leverage the principle of strong typing known from programming + \item $\rightarrow$ safety decidability properties relate to type-based restrictions + \end{itemize*} + + How it Works: + \begin{itemize*} + \item Foundation of a TAM model is an HRU model $⟨Q,\sum,\delta,q_0 ,R⟩$, where $Q= 2^S\times 2^O\times M$ + \item However: $S\subseteq O$, i. e.: + \begin{itemize*} + \item all subjects can also act as objects (=targets of an access) + \item $\rightarrow$ useful for modeling e. g. delegation ("s has the right to grant s' her read-right") + \item objects in $O\backslash S$: pure objects + \end{itemize*} + \item Each $o\in O$ has a type from a type set $T$ assigned through a mapping $type:O\rightarrow T$ + \item An HRU model is a special case of a TAM model: + \begin{itemize*} + \item $T=\{tSubject,tObject\}$ + \item $\forall s\in S:type(s)=tSubject; \forall o\in O\backslash S:type(o)=tObject$ + \end{itemize*} + \end{itemize*} + + > TAM Security Model + > + > A TAM model is a deterministic automaton $⟨Q,\sum,\delta,q_0 ,T,R⟩$ where + \begin{itemize*} + \item $Q= 2^S\times 2^O\times TYPE\times M$ is the state space where $S$ and $O$ are subjects set and objects set as in HRU, where $S\subseteq O$, $TYPE=\{type|type:O\rightarrow T\}$ is a set of possible type functions, $M$ is the set of possible $ACMs$ as in HRU, + \item $\sum=OP\times X$ is the (finite) input alphabet where $OP$ is a set of operations as in HRU, $X=O^k$ is a set of $k$-dimensional vectors of arguments (objects) of these operations, + \item $\delta:Q\times\sum\rightarrow Q$ is the state transition function, + \item $q_0\in Q$ is the initial state, + \item $T$ is a static (finite) set of types, + \item $R$ is a (finite) set of access rights. + \end{itemize*} + + State Transition Scheme (STS) + $\delta:Q\times\sum\rightarrow Q$ is defined by a set of specifications: + %![](Assets/Systemsicherheit-tam-sts.png) + where + \begin{itemize*} + \item $q= (S_q,O_q,type_q,m_q)\in Q,op\in OP$ + \item $r_1,...,r_m\in R$ + \item $x_{s1},...,x_{sm}\in S_q,x_{o1},...,x_{om}\in Oq\backslash S_q$, and $t_1,...,t_k\in T$ where $s_i$ and $o_i, 1\leq i\leq m$ , are vector indices of the input arguments: $1\leq s_i,o_i\leq k$ + \item $p_1,...,p_n$ are TAM primitives + \end{itemize*} + + Convenience Notation where + \begin{itemize*} + \item %![](Assets/Systemsicherheit-tam-sts-convenience.png) + \item $q\in Q$ is implicit + \item $op,r_1 ,...,r_m,s_1 ,...,s_m,o_1 ,...,o_m$ as before + \item $t_1 ,...,t_k$ are argument types + \item $p_1 ,...,p_n$ are TAM-specific primitives + \end{itemize*} + + TAM-specific + \begin{itemize*} + \item Implicit Add-on:Type Checking + \item %![](Assets/Systemsicherheit-tam-sts-specific.png) + \item where $t_i$ are the types of the arguments $x_i, 1\leq i\leq k$. + \end{itemize*} + + TAM-specific + \begin{itemize*} + \item Primitives: + \begin{itemize*} + \item enter r into m($x_s$,$x_o$) + \item delete r from m($x_s$,$x_o$) + \item create subject $x_s$ of type $t_s$ + \item create object $x_o$ of type $t_o$ + \item destroy subject $x_s$ + \item destroy object $x_o$ + \end{itemize*} + \item Observation: $S$ and $O$ are dynamic (as in HRU), thus $type:O\rightarrow T$ must be dynamic too (cf. definition of $Q$ in TAM). + \end{itemize*} + + TAM Example: The ORCON Policy + \begin{itemize*} + \item Example Scenario: Originator Controlled Access Rights (ORCON Policy) + \item Goal: To illustrate usefulness/convenience of type system + \begin{itemize*} + \item ORCON describes sub-problem of larger policies + \item Information flow confinement required by ORCON is tricky to do in HRU ("This information may not flow beyond ...") + \end{itemize*} + \item The Problem + \begin{itemize*} + \item Creator/owner of a document shouldpermanently retain controlover its accesses + \item Neither direct nor indirect (by copying) right proliferation + \item Application scenarios: Digital rights management, confidential sharing (online social networks!) + \item %![](Assets/Systemsicherheit-orcon-problem.png) + \end{itemize*} + \item Solution with TAM + \begin{itemize*} + \item Idea: A confined subject type that can never execute any operation other than reading + \item Model Initialization: + \begin{itemize*} + \item Subjects: $S_0=\{ann,bob,chris\}$ + \item Objects: $O_0 =S_0\cup\{projectX\}$ + \item Operations: $\rightarrow$ next ... + \item Rights: $R=\{read,write,cread,own,parent\}$ + \item Types: $T=\{s,cs,co\}$ (regular subject,confined subject/object) + \item $type_0$: + \begin{itemize*} + \item $type_0(ann)=s$ + \item $type_0(bob)=s$ + \item $type_0(projectX)=co$ + \end{itemize*} + \end{itemize*} + \end{itemize*} + \item Model Behavior (Example) + \begin{itemize*} + \item ann creates ORCON object projectX (STS command createOrconObject) + \item ann grants cread ("confined read") right for projectX to bob (STS command grantCRead) + \item bob uses cread to create confined subject chris with permission to read projectX (STS command useCRead) + \end{itemize*} + \end{itemize*} + + \begin{tabular}{l|l|l|l|l} + m & ann:s & bob:s & projectX:co & chris:cs \\\hline + ann:s & $\varnothing$ & $\varnothing$ & $\{own, read, write\}$ & $\varnothing$ \\ + bob:s & $\varnothing$ & $\varnothing$ & $\{cread\}$ & $\{parent\}$ \\ + chris:cs & $\varnothing$ & $\varnothing$ & $\{read\}$ & $\varnothing$ + \end{tabular} + + Model Behavior (STS): The State Transition Scheme + \begin{itemize*} + \item createOrconObject + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command createOrconObject(s_1:s, o_1:co) ::= + if true + then + create object o_1 of type co; + enter own into m(s_1 ,o_1); + enter read into m(s_1 ,o_1); + enter write into m(s_1 ,o_1); + fi + \end{lstlisting} + + \item grantCRead + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command grantCRead(s 1 :s,s 2 :s,o 1 :co) ::= + if own in m(s_1 ,o_1) + then + enter cread into m(s_2 ,o_1); + fi + \end{lstlisting} + + \item useCRead + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command useCRead(s_1:s, o_1:co, s_2:cs) ::= + if cread in m(s_1 ,o_1) + then + create subject s_2 of type cs; + enter parent into m(s_1 ,s_2); + enter readinto m(s_2 ,o_1); + fi + \end{lstlisting} + + \item Enable ann to revoke cread from bob: + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command revokeCRead(s_1:s, s_2:s, o_1:co) ::= + if own in m(s_1, o_1) + then + delete cread from m(s_2, o_1); + fi + \end{lstlisting} + \item Enable ann to destroy conf. object projectX: + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command destroyOrconObject(s_1:s, o_1:co) ::= + if own in m(s_1 ,o_1) + then + destroy object o_1; + fi + \end{lstlisting} + \item Enable ann to destroy conf. subject chris: + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command revokeRead(s_1:s, s_2:cs, o_1:co) ::= + if own in m(s_1 ,o_1) and read in m(s_2 ,o_1) + then + destroy subject s_2; + fi + \end{lstlisting} + \item Enable bob to destroy conf. subject chris: + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command finishOrconRead(s_1:s, s_2:cs) ::= + if parent in m(s_1, s_2) + then + destroy subject s_2; + fi + \end{lstlisting} + \end{itemize*} + + \begin{itemize*} + \item Commands 1.-3.: + \begin{itemize*} + \item Authorize the steps in the example above + \item Are monotonic + \end{itemize*} + \item Commands 4.-7.: + \begin{itemize*} + \item Will control right revocation $\rightarrow$ essence of originator control + \item Are not monotonic (consequences ...) + \end{itemize*} + \item Summary + \begin{itemize*} + \item Contributions of ORCON Example + \item Owner ("originator") retains full control over + \item Use of her confined objects by third parties $\rightarrow$ transitive right revocation + \item Subjects using (or misusing) these objects $\rightarrow$ destruction of these subjects + \item Subjects using such objects are confined: cannot forward read information + \end{itemize*} + \end{itemize*} + + \paragraph{TAM Safety Decidability} + Why all this? + \begin{itemize*} + \item General TAM models (cf. previous definition) $\rightarrow$ safety not decidable (no surprise, since generalization of HRU) + \item MTAM:monotonous TAM models; STS without delete or destroy primitives $\rightarrow$ safety decidable if mono-conditional only + \item AMTAM:acyclic MTAM models $\rightarrow$ safety decidable, but (most likely) not efficiently: NP-hardproblem + \item TAMTAM: ternaryAMTAM models; each STS command requires max. 3 arguments $\rightarrow$ provably same computational power and thus expressive power as AMTAM; safety decidable in polynomial time + \end{itemize*} + + \paragraph{Acyclic TAM Models} + Auxiliary analysis tools for TAM models: + + > Parent- and Child-Types + > + > For any operation $op$ with arguments $⟨x_1,t_1⟩,⟨x_2,t_2⟩,...,⟨x_k,t_k⟩$ in an STS of a TAM model, it holds that $t_i, 1\leq i\leq k$ + \begin{itemize*} + \item is a child type in op if one of its primitives creates a subject or object $x_i$ of type $t_i$, + \item is a parent type in op if none of its primitives creates a subject or object $x_i$ of type $t_i$. + \end{itemize*} + + > Type Creation Graph + > + > The type creation graph $TCG=⟨T,E=T\times T⟩$ for the STS of a TAM model is a directed graph with vertex set $T$ and an $edge⟨u,v⟩\in E$ iff $\exists op\in OP:u$ is a parent type in $op\wedge v$ is a child type in op. + + Example STS: + \begin{lstlisting}[ + language=Bash, + showspaces=false + ] + command foo(s_1:u, o_1:w, o_2:v) ::= + if r_1 $\in$ m(s_1 ,o_1) + then + create object o_2 of type v; + fi + + command bar(s_1:u, s_2:u, s_3:v, o_1:w) ::= + if r_2 $\in$ m(s_1 ,o_1) + then + create subject s_2 of type u; + create subject s_3 of type v; + fi + \end{lstlisting} + %![TCG](Assets/Systemsicherheit-acyclic-tam-example.png) + + Note:In bar,u is both a parent type (because of $s_1$) and a child type (because of $s_2$) $\rightarrow$ hence the loop edge. + + Safety Decidability: We call a TAM model acyclic, iff its TCG is acyclic. + + > Theorem [Sandhu, 1992, Theorem 5] + > + > Safety of a ternary, acyclic, monotonous TAM model (TAMTAM) is decidable in polynomial time in the size of $m_0$. + + \begin{itemize*} + \item Crucial property acyclic, intuitively: + \begin{itemize*} + \item Evolution of the system (protection state transitions) checks both rights in the ACMas well as argument types + \item TCG is acyclic $\Rightarrow\exists$ a finite sequence of possible state transitions after which no input tuple with argument types, that were not already considered before, can be found + \item One may prove that an algorithm, which tries to expandall possible different follow-up states from $q_0$, may terminate after this finite sequence + \item Proof details: SeeSandhu [1992]. + \end{itemize*} + \end{itemize*} + + Expressive Power of TAMTAM + \begin{itemize*} + \item MTAM: obviously same expressive power as monotonic HRU (MHRU) $\rightarrow$ cannot model: + \begin{itemize*} + \item transfer of rights: "take r from ... and in turn grant r to ..." + \item countdown rights: "r can only be used n times" + \end{itemize*} + \item ORCON example (and many others): allow to ignore non-monotonic command $s$ from STS, e.g. 4.-7., since they + \begin{itemize*} + \item only remove rights + \item are reversible (e. g.: undo 4. by 2.; compensate 7. by 3. where the new subject takes roles of the destroyed one) + \end{itemize*} + \item AMTAM: most MTAM STS may be re-written as acyclic(cf. ORCON example) + \item TAMTAM: expressive power equivalent to AMTAM + \end{itemize*} + + IBAC Model Comparison + \begin{itemize*} + \item So far: family of IBAC models to describe different ranges of security policies they are able to express(depicted as an Euler diagram): + \item x%![](Assets/Systemsicherheit-ibac-model-comparison.png) + \end{itemize*} + + IBAC Summary + \begin{itemize*} + \item We May Now + \begin{itemize*} + \item Model identity-based AC policies (IBAC) + \item Analyze them w. r. t. basic security properties (right proliferation) + \item $\rightarrow$ Minimize specification errors + \item $\rightarrow$ Minimize implementation errors + \end{itemize*} + \item Approach + \begin{itemize*} + \item Unambiguous policy representation through formal notation + \item Prediction and/or verification of mission-critical properties + \item Derivation of implementation concepts + \end{itemize*} + \item Model Range + \begin{itemize*} + \item Static models: + \begin{itemize*} + \item Access control function (ACF): $f:S\times O\times OP\rightarrow \{true,false\}$ + \item Access control matrix (ACM): $m:S\times O\rightarrow 2^{OP}$ + \item $\rightarrow$ Static analysis: Which rights are assigned to whom, which (indirect) information flows are possible + \item $\rightarrow$ Implementation: Access control lists (ACLs), e.g. in OS, (DB)IS + \end{itemize*} + \item Dynamic models: + \begin{itemize*} + \item ACM plus deterministic automaton $\rightarrow$ Analysis of dynamic behavior: HRU safety + \begin{itemize*} + \item generally undecidable + \item decidable under specific restrictions: monotonous mono-conditional, static, typed, etc. + \item identifying and explaining safety-violations, in case such (are assumed to) exists: heuristic analysis algorithms + \end{itemize*} + \end{itemize*} + \end{itemize*} + \item Limitations + \begin{itemize*} + \item IBAC models are fundamental: KISS + \item IBAC models provide basic expressiveness only: + \begin{itemize*} + \item Comparable to "assembler programs for writing AC policies" + \item Imagine writing a sophisticated end-user application in assembler: + \begin{itemize*} + \item reserve and keep track of memory layout and addresses $\approx$ create and maintain individual rights for thousands of subjects, billions of objects + \item display comfortable GUI by writing to the video card framebuffer $\approx$ specify sophisticated workflows through an HRU STS + \end{itemize*} + \end{itemize*} + \item For more application-oriented policy semantics: + \begin{itemize*} + \item Large information systems: many users, many databases, files, ... $\rightarrow$ Scalability problem + \item Access decisions not just based on subjects, objects, and operations $\rightarrow$ Abstraction problem + \end{itemize*} + \end{itemize*} + \end{itemize*} + + $\rightarrow$ "New" paradigm (early-mid 90s): Role-based Access Control + + \paragraph{Roles-based Access Control Models (RBAC)} + + Problems of IBAC Models: + \begin{itemize*} + \item Scalability w.r.t. the number of controlled entities + \item Level of abstraction: System-oriented policy semantics (processes, files, databases, ...) instead of problem-oriented (management levels, user accounts, quota, ...) + \end{itemize*} + + Goals of RBAC: + \begin{itemize*} + \item Solving these problems results in smaller modeling effort results in smaller chance of human errors made in the process: + \begin{itemize*} + \item Improved scalability and manageability + \item Improved, application-oriented semantics: roles$\approx$functions in organizations + \end{itemize*} + \end{itemize*} + + RBAC Application Domains + \begin{itemize*} + \item Public health care systems + \begin{itemize*} + \item Roles: Patient, physician, therapist, pharmacist, insurer, legislator, ... + \end{itemize*} + \item Financial services + \begin{itemize*} + \item Roles: Client, consultant, analyst, product manager, ... + \end{itemize*} + \item Operating systems + \begin{itemize*} + \item Roles: System admin, webserver admin, database admin, key account user, user, ... + \end{itemize*} + \end{itemize*} + + RBAC Idea + \begin{itemize*} + \item Models include smart abstraction: roles + \item Access control rules are specified based on roles instead of identities: + \begin{itemize*} + \item "All ward physiciansare allowed to read EPRs." + \item "Allnursesare allowed to log body temperature." + \end{itemize*} + \item Compared to IBAC + \begin{itemize*} + \item IBAC Semantics: + \begin{itemize*} + \item Subjects, objects, and rights for executing operations + \item Access rules are based onidentity of individualsubjects and objects + \end{itemize*} + \item RBAC Semantics: + \begin{itemize*} + \item Users, roles, and rights for executing operations + \item Access rules are based onrolesof users $\rightarrow$ on assignments: + \end{itemize*} + \end{itemize*} + \end{itemize*} + + + RBAC Security Model Definition + > Basic RBAC model: "$RBAC_0$" [Sandhu, 1994]: + > + > An RBAC 0 model is a tuple $⟨U,R,P,S,UA,PA,user,roles⟩$ where + \begin{itemize*} + \item U is a set of user identifiers, + \item R is a set of role identifiers, + \item P is a set of permission identifiers, + \item S is a set of session identifiers, + \item $UA\subseteq U\times R$ is a many-to-many user-role-relation, + \item $PA\subseteq P\times R$ is a many-to-many permission-role-relation, + \item $user:S\rightarrow U$ is a total function mapping sessions to users, + \item $roles:S\rightarrow 2^R$ is a total function mapping sessions to sets of roles such that $\forall s\in S:r\in roles(s)\Rightarrow ⟨user(s),r⟩\in UA$. + \end{itemize*} + + Interpretation + \begin{itemize*} + \item Users U model people: actual humans that operate the AC system + \item Roles R model functions (accumulations of tasks), that originate from the workflows and areas of responsibility in organizations + \item Permissions P model rights for any particular access to a particular document (e. g. read project documentation, transfer money, write into EPR, ...) + \item The user-role-relation $UA\subseteq U\times R$ defines which roles are available to users at any given time $\rightarrow$ must be assumed during runtime first, before they are usable! + \item The permission-role-relation $PA\subseteq P\times R$ defines which permissions are associate with roles + \item $UA$ and $PA$ describe static policy rules: Roles available to a user are not considered to possibly change, same with permissions associated with a role. Examples: + \begin{itemize*} + \item "Bob may assume the role of a developer; Ann may assume the role of a developer or a project manager; ..." + \item "A developer may read and write the project documentation; a project manager may create branches of a source code repository; ..." + \end{itemize*} + \item Sessions $S$ describe dynamic assignments of roles $\rightarrow$ a session $s\in S$ models when a user is logged in(where she may use some role(s) available to her as per $UA$): + \begin{itemize*} + \item The session-user-mapping user: $S\rightarrow U$ associates a session with its ("owning") user + \item The session-roles-mapping roles: $S\rightarrow 2^R$ associates a session with the set of roles currently assumed by that user (active roles) + \end{itemize*} + \end{itemize*} + + %![](Assets/Systemsicherheit-rbac-0.png) + + Remark: + Note the difference between users in RBAC and subjects in IBAC: the latter usually represent a technical abstraction, such as an OS process, while RBAC users always model an organizational abstraction, such as an employee, a patient, etc.! + + \paragraph{RBAC Access Control Function} + \begin{itemize*} + \item Authorization in practice: access rules have to be defined for operations on objects (cf. IBAC) + \item IBAC approach: access control function $f:S\times O\times OP\rightarrow \{true,false\}$ + \item RBAC approach: implicitly defined through $P\rightarrow$ made explicit: $P\subseteq O\times OP$ is a set of permission tuples $⟨o,op⟩$ where + \begin{itemize*} + \item $o\in O$ is an object from a set of object identifiers, + \item $op\in OP$ is an operation from a set of operation identifiers. + \end{itemize*} + \item We may now define the $ACF$ for $RBAC_0$: + \end{itemize*} + + > $RBAC_0$ ACF + > + > $f_{RBAC_0}:U \times O\times OP\rightarrow\{true,false\}$ where + > $f_{RBAC_0} (u,o,op)= \begin{cases} true, \quad \exists r\in R,s\in S:u=user(s)\wedge r\in roles(s)\wedge ⟨⟨o,op⟩,r⟩ \in PA \\ false, \quad\text{ otherwise } \end{cases}$. + + \paragraph{RBAC96 Model Family} + Sandhu et al. [1996] + + In practice, organizations have more requirements that need to be expressed in their security policy: + \begin{itemize*} + \item Roles are often hierarchical: "Any project manager is also a developer, any medical director is also a doctor, ..." $\rightarrow RBAC_1 = RBAC_0 + hierarchies$ + \item Role association and activation are often constrained: "No purchasing manager may be head of internal auditing, no product manager may be logged in as a project manager for more than one project at a time, ..." $\rightarrow$ $RBAC_2 = RBAC_0 + constraints$ + \item Both may be needed: $\rightarrow$ $RBAC_3$ = consolidation: $RBAC_0 + RBAC_1 + RBAC_2$ + \end{itemize*} + + RBAC 1 : Role Hierarchies + \begin{itemize*} + \item Observation: Roles in organizations often overlap: + \begin{itemize*} + \item Users in different roles havecommon permissions: "Any project manager must have the same permissions as any developer in the same project." + \item Approach 1: disjoint permissions for roles proManager and proDev $\rightarrow$ any proManager user must always have proDev assigned and activated for any of her workflows $\rightarrow$ role assignment redundancy + \item Approach 2: overlapping permissions: $\forall p\in P:⟨p,proDev⟩ \in PA\Rightarrow ⟨p,proManager⟩ \in PA\rightarrow$ any permission for project developers must be assigned to two different roles $\rightarrow$ role definition redundancy + \item Two types of redundancy $\rightarrow$ undermines scalability goal of RBAC! + \end{itemize*} + \item Solution + \begin{itemize*} + \item Role hierarchy: Eliminates role definition redundancy through permissions inheritance + \end{itemize*} + \item Modeling Role Hierarchies + \begin{itemize*} + \item Lattice here: $⟨R,\leq⟩$ + \item Hierarchy expressed through dominance relation: $r_1\leq r_2 \Leftrightarrow r_2$ inherits any permissions from $r_1$ + \item Interpretation + \begin{itemize*} + \item Reflexivity: any role consists of ("inherits") its own permissions $\forall r\in R:r\leq r$ + \item Antisymmetry: no two different roles may mutually inherit their respective permissions $\forall r_1 ,r_2\in R:r_1\leq r_2\wedge r_2\leq r_1\Rightarrow r_1=r_2$ + \item Transitivity: permissions may be inherited indirectly $\forall r_1,r_2,r_3\in R:r_1\leq r_2 \wedge r_2\leq r_3\Rightarrow r_1\leq r_3$ + \end{itemize*} + \end{itemize*} + \end{itemize*} + + > $RBAC_1$ Security Model + > + > An $RBAC_1$ model is a tuple $⟨U,R,P,S,UA,PA,user,roles,RH⟩$ where + \begin{itemize*} + \item $U,R,P,S,UA,PA$ and $user$ are defined as for $RBAC_0$, + \item $RH\subseteq R\times R$ is a partial order that represents a role hierarchy where $⟨r,r'⟩\in RH\Leftrightarrow r\leq r'$ such that $⟨R,\leq⟩$ is a lattice, + \item roles is defined as for $RBAC_0$, while additionally holds: $\forall r,r'\in R,\exists s\in S:r\leq r'\wedge r'\in roles(s)\Rightarrow r\in roles(s)$. + \end{itemize*} + + In prose: When activating any role that inherits permissions from another role, this other role isautomatically(by definition) active as well. + \begin{itemize*} + \item $\rightarrow$ no role assignment redundancy in defining the STS + \item $\rightarrow$ no role definition redundancy in defining PA + \end{itemize*} + + + RBAC 2 : Constraints + \begin{itemize*} + \item Observation: Assuming and activating roles in organizations is often more restricted: + \begin{itemize*} + \item Certain roles may not beactive at the same time(same session)for any user: "A payment initiator may not be a payment authorizer at the same time (in the same session)." + \item Certain roles may not be together assigned to any user: "A purchasing manager never be the same person as the head of internal auditing." + \item $\rightarrow$ separation of duty (SoD) + \item While SoD constraints are a more fine-grained type of security requirements to avoid mission-critical risks, there are other types represented by RBAC constraints. + \end{itemize*} + \item Constraint Types + \begin{itemize*} + \item Separation of duty: mutually exclusive roles + \item Quantitative constraints: maximum number of roles per user + \item Temporal constraints: time/date/week/... of role activation (advanced RBAC models, e.g. Bertino et al. [2001]) + \item Factual constraints: assigning or activating roles for specific permissions causally depends on any roles for a certain, other permissions (e.g. only allow user $u$ to activate auditingDelegator role if audit payments permission is usable by $u$) + \end{itemize*} + \item Modeling Constraints:(idea only) + \begin{itemize*} + \item $RBAC_2 : ⟨U,R,P,S,UA,PA,user,roles,RE⟩$ + \item $RBAC_3 : ⟨U,R,P,S,UA,PA,user,roles,RH,RE⟩$ + \item where $RE$ is aset of logical expressions over the other model components (such as $UA,PA,user,roles$). + \end{itemize*} + \end{itemize*} + + \paragraph{RBAC Summary} + \begin{itemize*} + \item Scalability + \item Application-oriented model abstractions + \item Standardization (RBAC96) $\rightarrow$ tool-support for: + \begin{itemize*} + \item role engineering (identifying and modeling roles) + \item model engineering (specifying and validating a model configuration) + \item static model checking (verifying consistency and plausibility of a model configuration) + \end{itemize*} + \item Still weak OS-support + \begin{itemize*} + \item $\rightarrow$ application-level integrations (e. g. hospital IS, DBIS, ERP systems) + \item $\rightarrow$ middleware integrations (e. g. XACML, NGAC[Ferraiolo et al., 2016]) + \end{itemize*} + \item Limited dynamic analyses w.r.t. automaton-based models + \begin{itemize*} + \item cf. HRU:safety properties? + \item solution approach: automaton-based RBAC96 model + \item $\rightarrow$ DRBAC 0 ... 3 [Schlegel and Amthor, 2020] + \end{itemize*} + \end{itemize*} + + + \paragraph{Attribute-based Access Control Models} + Goals of ABAC: + \begin{itemize*} + \item Providing a more versatile solution than RBAC for these problems, especially for open and distributed systems. + \begin{itemize*} + \item Scalability and manageability + \item Application-oriented model abstractions + \item Model semantics meet functional requirements of open systems: + \begin{itemize*} + \item user IDs, INode IDs, ... only available locally, scaling bad + \item roles that gather permissions model functions limited to specific organizational structure; only assignable to users + \end{itemize*} + \item $\rightarrow$ Consider application-specific context of an access: attributes of subjects and objects(e. g. age, location, trust level, ...) + \end{itemize*} + \end{itemize*} + + Idea: Generalizing the principle of indirection already known from RBAC + \begin{itemize*} + \item IBAC: no indirection between subjects and objects + \item RBAC: indirection via roles assigned to subjects + \item ABAC: indirection via arbitrary attributes assigned to subjects or objects + \item Attributes model application-specific properties of the system entities involved in any access, e. g.: + \begin{itemize*} + \item Age, location, trustworthiness of a application/user/device/... + \item Size, creation time, premium-access classification of web resource/multimedia content/document/... + \item Risk quantification involved with these subjects and objects (e. g. access from an IP address/proxy domain reportedly belonging to a TOR network) + \end{itemize*} + \end{itemize*} + + \paragraph{ABAC Access Control Function} + \begin{itemize*} + \item $f_{IBAC}:S\times O\times OP\rightarrow\{true,false\}$ + \item $f_{RBAC}:U\times O\times OP\rightarrow\{true,false\}$ + \item $f_{ABAC}:S\times O\times OP\rightarrow\{true,false\}$ + \item $\rightarrow$ Evaluates attribute values for $⟨s,o,op⟩$, e. g.: $f_{ABAC}(user,game,download)=game.pegi \leq user.age$ + \end{itemize*} + + \paragraph{ABAC Security Model} + \begin{itemize*} + \item Note: There is no such thing (yet) like a standard ABAC model (such as RBAC96). + \item Instead: Many highly specialized, application-specific models. + \item Here: minimal common formalism, based on Servos and Osborn [2017] + \end{itemize*} + + > ABAC Security Model + > + > An ABAC security model is a tuple $⟨S,O,AS,AO,attS,attO,OP,AAR⟩$ where + \begin{itemize*} + \item $S$ is a set of subject identifiers and $O$ is a set of object identifiers, + \item $A_S=V_S^1 \times...\times V_S^n$ is a set of subject attributes, where each attribute is an n-tuple of values from arbitrary domains $V_S^i$, $1\leq i \leq n$, + \item $A_O=V_O^1\times...\times V_O^m$ is a corresponding set of object attributes, based on values from arbitrary domains $V_O^j$, $1\leq j \leq m$, + \item $att_S:S\rightarrow A_S$ is the subject attribute assignment function, + \item $att_O:O\rightarrow A_O$ is the object attribute assignment function, + \item $OP$ is a set of operation identifiers, + \item $AAR\subseteq \Phi\times OP$ is the authorization relation. + \end{itemize*} + + Interpretation + \begin{itemize*} + \item Active and passive entities are modeled by $S$ and $O$, respectively + \item Attributes in $AS,AO$ are index-referenced tuples of values, which are specific to some property of subjects $V_S^i$ (e.g. age) or of objects $V_O^j$ (e. g. PEGI rating) + \item Attributes are assigned to subjects and objects via $att_S,att_O$ + \item Access control rules w.r.t. the execution of operations in $OP$ are modeled by the $AAR$ relation $\rightarrow$ determines ACF! + \item $AAR$ is based on aset of first-order logic predicates $\Phi$: $\Phi=\{\phi_1 (x_{s1},x_{o1}),\phi_2 (x_{s2},x_{o2}),...\}$. Each $\phi_i\in\Phi$ is a binary predicate (a logical statement with two arguments), where $x_{si}$ is a subject variable and $x_{oi}$ is an object variable. + \end{itemize*} + + + \paragraph{ABAC Access Control Function} + With conditions from $\Phi$ for executing operations in $OP,AAR$ determines the ACF of the model: + + > ABAC ACF + > + > $f_{ABAC}:S\times O\times OP\rightarrow\{true,false\}$ where + > $f_{ABAC}(s,o,op)= \begin{cases} true, \quad\exists ⟨\phi,op⟩\in AAR:\phi(s,o)=true\\ false, \quad\text{ otherwise } \end{cases}$. + > We call $\phi$ an authorization predicate for $op$. + + Example 1: Online Game Store + \begin{itemize*} + \item Policy goal: Enforce PEGI age restrictions for video game access + \item S: set of client IDs + \item O: set of video game titles + \item $A_S=\mathbb{N}(where\ n=1)$: one subject attribute (age) + \item $A_O=\{0,3,7,12,14,18\}(where\ m=1)$: one object attribute (PEGI rating) + \item $att_S:S\rightarrow A_S$: assigns age attribute to clients + \item $att_O:O\rightarrow A_O$: assigns PEGI rating attribute to games + \item $OP=\{download\}$: sole operation + \item One simpleauthorization rule: $AAR=\{⟨att_O(o) \leq att_S(s),download⟩\}$ + \end{itemize*} + + Example 2: Document Management System + \begin{itemize*} + \item Policy goal: Enforce document confidentiality + \item $S$: set of user IDs + \item $O$: set of document IDs + \item $A_S=\mathbb{N}(where\ n=1)$: subject attribute (trustworthiness value) + \item $A_O=\mathbb{N}(where\ m=1)$: object attribute (confidentiality level) + \item $att_S:S\rightarrow A_S$: assigns trustworthiness value to user (e. g. based on management level) + \item $att_O:O\rightarrow A_O$: assigns confidentiality level to documents + \item $OP=\{read,write,append,...\}$: operations + \item Authorization rules: $AAR=\{⟨att_O(o)\leq att_S(s),read⟩,⟨att_S(s) \leq att_O(o),write⟩,...\}$ + \end{itemize*} + + \paragraph{ABAC Summary} + \begin{itemize*} + \item Scalability + \item Application-oriented model abstractions + \item Universality: ABAC can conveniently express + \begin{itemize*} + \item IBAC (attributes: IDs) + \item RBAC (attributes: roles) + \item MLS (attributes: sensitivity levels $\rightarrow$ next topic) + \end{itemize*} + \item Still weak OS-support $\rightarrow$ application-level integrations (increasingly replacing RBAC) + \item Attribute semantics highly diverse, not normalizable $\rightarrow$ no common "standard ABAC" to expect (all too soon ...) + \item Limited dynamic analyses w.r.t. automaton-based models + \begin{itemize*} + \item cf. HRU:safety properties? + \item solution approach: automaton-based ABAC model ... + \end{itemize*} + \end{itemize*} + + \subsubsection{Information Flow Models} + Abstraction Level of AC Models: rules about subjects accessing objects + + Adequate for + \begin{itemize*} + \item Workflow systems + \item Document/information management systems + \item ... that’s it. + \end{itemize*} + + Goal of Information Flow (IF) Models: Problem-oriented definition of policy rules for scenarios based on information flows(rather than access rights) + + Lattices (refreshment) + \begin{itemize*} + \item Terms: + \begin{itemize*} + \item $inf_C$: "systemlow" + \item $sup_C$: "systemhigh" + \end{itemize*} + \item $\rightarrow$ notably, a graph described by a lattice + \item is connected + \item has a source: $deg^-(inf_C)= 0$ + \item has a sink: $deg^+(sup_C)= 0$ + \end{itemize*} + + Implementation of Information Flow Models + \begin{itemize*} + \item Background: Information flows and read/write operations are isomorphic + \begin{itemize*} + \item s has read permission w.r.t. o $\Leftrightarrow$ information may flow from o to s + \item s has write permission w.r.t. o $\Leftrightarrow$ information may flow from s to o + \end{itemize*} + \item $\rightarrow$ Implementation by standard AC mechanisms! + \end{itemize*} + + Analysis of Information Flow Models + \begin{itemize*} + \item IF Transitivity $\rightarrow$ analysis goal: covert information flows + \begin{itemize*} + \item Question: "Is there a possible, sequential usage of read\item and write-permissions that ultimately leads to an unintended information flow?" + \end{itemize*} + \item IF Antisymmetry $\rightarrow$ analysis goal: redundancy + \begin{itemize*} + \item Question: "Which subjects/object share the same possible information flows and are therefore redundant?" + \end{itemize*} + \end{itemize*} + + \paragraph{The Denning Model} + On of the first information flow models [Denning, 1976]: + + > Denning Security Model + > + > A Denning information flow model is a tuple $⟨S,O,L,cl,\bigoplus⟩$ where + \begin{itemize*} + \item S is a set of subjects, + \item O is a set of objects, + \item $L=⟨C,\leq⟩$ is a lattice where + \begin{itemize*} + \item C is a set of classes, + \item $\leq$ is a dominance relation wherec $\leq d \Leftrightarrow$ information may flow from c to d, + \end{itemize*} + \item $cl:S\cup O\rightarrow C$ is a classification function, and + \item $\bigoplus:C\times C\rightarrow C$ is a reclassification function. + \end{itemize*} + + Interpretation + \begin{itemize*} + \item Subject set S models active entities, which information flows originate from + \item Object set O models passive entities, which may receive information flows (e.g. documents) + \item Classes set C used to label entities with identical information flow properties, e.g. $C=\{Physician,Patient\}$ + \item Classification function $cl$ assigns a class to each entity, e.g. $cl(cox)=Physician$ + \item Reclassification function $\bigoplus$ determines which class an entity is assigned after receiving certain a information flow; e.g. for Physician to Patient: $\bigoplus (Physician,Patient)=sup_{\{Physician,Patient\}}$ + \end{itemize*} + + Example $⟨S,O,L,cl,\bigoplus⟩$ mit $L=⟨C,\leq⟩$: + \begin{itemize*} + \item $S=O=\{cox,kelso,carla,...\}$ + \item $C=\{Physician, Anamnesis, Pharmacy, Medication,...\}$ + \item dominance relation $\leq$: + \begin{itemize*} + \item rule "information may flow from any ward physician to an anamnesis record" $\Leftrightarrow$ Physician $\leq$ Anamnesis + \item rule "information may flow from a medication record to the pharmacy" $\Leftrightarrow$ Medication $\leq$ Pharmacy + \end{itemize*} + \item classification cl: + \begin{itemize*} + \item $cox=Physician$ + \item $carla=Medication$ + \end{itemize*} + \end{itemize*} + + We can now ... + \begin{itemize*} + \item precisely define all information flows valid for a given policy + \item define analysis goals for an IF model w.r.t. + \begin{itemize*} + \item Correctness: $\exists$ covert information flows? (transitivity of $\leq$, automation: graph analysis tools) + \item Redundancy: $\exists$ sets of subjects and objects with (transitively) equivalent information contents? (antisymmetry of $\leq$, automation: graph analysis tools) + \end{itemize*} + \item implement a model: through an automatically generated, isomorphic ACM(using already-present ACLs!) + \end{itemize*} + + + \paragraph{Multilevel Security (MLS)} + Motivation + \begin{itemize*} + \item Introducing a hierarchy of information flow classes: levels of trust + \item Subjects and objects are classified: + \begin{itemize*} + \item Subjects w.r.t. their trust worthiness + \item Objects w.r.t. their criticality + \end{itemize*} + \item Within this hierarchy, information may flow only in one direction $\rightarrow$ "secure" according to these levels! + \item $\rightarrow \exists$ MLS models for different security goals! + \end{itemize*} + + Modeling Confidentiality Levels + \begin{itemize*} + \item Class set: levels of confidentiality e.g. $C=\{public,confidential,secret\}$ + \item Dominance relation: hierarchy between confidentiality levels e.g. $\{public \leq confidential,confidential \leq secret\}$ + \item Classification of subjects and objects: $cl:S\cup O\rightarrow C$ e.g. $cl(BulletinBoard)=public,cl(Timetable)=confidential$ + \item Note: In contrast du Denning, $\leq$ in MLS models is a total order. + \end{itemize*} + + Example + \begin{itemize*} + \item Lattice $⟨\{public,confidential,secret\},\leq⟩$ where $\leq=\{⟨public,confidential⟩,⟨confidential,secret⟩\}$ + \item Objects $O=\{ProjectXFiles, Timetable, BulletinBoard\}$ + \item Subjects $S=\{Ann, Bob\}$ + \item Classification of objects (classification level): + \begin{itemize*} + \item $cl(ProjectXFiles)=secret$ + \item $cl(Timetable)=confidential$ + \item $cl(BulletinBoard)=pulic$ + \end{itemize*} + \item Classification of subjects (clearance level): + \begin{itemize*} + \item $cl(Ann)=confidential$ + \item $cl(Bob)=public$ + \end{itemize*} + \item Neither Ann nor Bob can readProjectXFiles + \item Ann can + \begin{itemize*} + \item write to ProjectXFiles and Timetable + \item read from Timetable and BulletinBoard + \end{itemize*} + \item Bob can + \begin{itemize*} + \item write to all objects + \item read from BulletinBoard + \end{itemize*} + \end{itemize*} + + + \paragraph{The Bell-LaPadula Model} + Goal: MLS-Model for Preserving Information Confidentiality + + Incorporates impacts on model design ... + \begin{itemize*} + \item from the application domain: hierarchy of trust + \item from the Denning model: information flow and lattices + \item from the MLS models: information flow hierarchy + \item from the HRU model: + \begin{itemize*} + \item Modeling dynamic behavior: state machine and STS + \item Model implementation: ACM + \end{itemize*} + \item $\rightarrow$ application-oriented model engineering by composition of known abstractions + \end{itemize*} + + Idea: + \begin{itemize*} + \item entity sets S,O + \item $lattice⟨C,\leq⟩$ defines information flows by + \begin{itemize*} + \item C: classification/clearance levels + \item $\leq$: hierarchy of trust + \end{itemize*} + \item classification function $cl$ assigns + \begin{itemize*} + \item clearance level from C to subjects + \item classification level from C to objects + \end{itemize*} + \item Model’s runtime behavior is specified by a deterministic automaton + \end{itemize*} + + > BLP Security Model + > + > A BLP model is a deterministic automaton $⟨S,O,L,Q,\sum,\sigma,q_0,R⟩$ where + \begin{itemize*} + \item S and O are (static) subject and object sets, + \item $L=⟨C,\leq⟩$ is a (static) lattice consisting of + \begin{itemize*} + \item the classes set C, + \item the dominance relation $\leq$, + \end{itemize*} + \item $Q=M\times CL$ is the state space where + \begin{itemize*} + \item $M=\{m|m:S\times O\rightarrow 2^R\}$ is the set ofpossible ACMs, + \item $CL=\{cl|cl:S\cup O\rightarrow C\}$ is a set offunctions that classify entities in $S\cup O$, + \end{itemize*} + \item $\sum$ is the input alphabet, + \item $\sigma:Q\times \sum\rightarrow Q$ is the state transition function, + \item $q_0\in Q$ is the initial state, + \item $R=\{read,write\}$ is the set of access rights. + \end{itemize*} + + Interpretation + \begin{itemize*} + \item $S,O,M,\sum,\sigma,q_0,R$: same as HRU + \item L: models confidentiality hierarchy + \item cl: models classification meta-information about subjects and objects + \item $Q=M\times CL$ models dynamic protection states; includes + \begin{itemize*} + \item rights in the ACM, + \item classification of subjects/objects, + \item not: S and O (different to HRU $\rightarrow$ consequences for safety analysis?) + \end{itemize*} + \item Commands in the STS may therefore + \begin{itemize*} + \item change rights in the ACM, + \item reclassify subjects and objects. + \end{itemize*} + \end{itemize*} + + \paragraph{Lattice vs. ACM} + Given an exemplary BLP model where + \begin{itemize*} + \item $S=\{s_1,s_2\}, O=\{o_1,o_2\}$ + \item $C=\{public,confidential\}$ + \item $\leq=\{⟨public,confidential⟩\}$ + \item $cl(s_1)=cl(o_1)=public$, $cl(s_2)=cl(o_2)=confidential$ + \item %![](Assets/Systemsicherheit-lattice-vs-acm.png) + \item Observation: L and m are isomorphic $\rightarrow$ redundancy? + \item $\rightarrow$ So, why do we need both model components? + \end{itemize*} + + Rationale + \begin{itemize*} + \item L is an application-oriented abstraction + \begin{itemize*} + \item Supports convenient for model specification + \item Supports easy model correctness analysis ($\rightarrow$ reachability analyses in graphs) + \item $\rightarrow$ easy to specify and to analyze + \end{itemize*} + \item m can be directly implemented by standard OS/DBIS access control mechanisms (ACLs, Capabilities) $\rightarrow$ easy to implement + \item m is determined (= restricted) by L and cl, not vice-versa! + \end{itemize*} + + > Rationale for L and m + \begin{itemize*} + \item L and cl control m + \item m provides an easy specification for model implementation + \end{itemize*} + + \paragraph{Consistency of L,cl, and m} + We know: IF rules specificed by L and cl are implemented by an ACM m... + + So: What are the conditions for m to be a correct representation of L and cl? + + Intuition: An ACM m is a correct representation of a lattice L iff information flows granted by m do not exceed those defined by L and cl. $\rightarrow$ BLP security property + + Consequence: If we can prove this property for a given model, then its implementation (by m) is consistent with the rules given by L and cl. + + \paragraph{BLP Security} + Help Definitions + > Read-Security Rule + > A BLP model state $⟨m,cl⟩$ is called read-secure iff $\forall s\in S,o\in O:read\in m(s,o)\Rightarrow cl(o) \leq cl(s)$. + + > Write-Security Rule + > A BLP model state $⟨m,cl⟩$ is called write-secure iff $\forall s\in S,o\in O:write\in m(s,o)\Rightarrow cl(s)\leq cl(o)$. + + Note: In some literature, read-security is called "simple security", while write-security is called "$^*$-property". Reasons are obscure-historical. + + > State Security + > A BLP model state is called secure iff it is both read- and write-secure. + + > Model Security + > A BLP model with initial state $q_0$ is called secure iff + > 1. $q_0$ is secure and + > 2. each state reachable from $q_0$ by a finite input sequence is secure. + + The above definition is + \begin{itemize*} + \item intuitive + \item difficult to verify: state reachability... + \end{itemize*} + + Auxiliary Definition: The Basic Security Theorem for BLP (BLP BST) + \begin{itemize*} + \item A convenient tool for proving BLP security + \item Idea: let’s look at properties of the finite and small model components $\rightarrow\sigma\rightarrow$ STS + \end{itemize*} + + + > The BLP Basic Security Theorem + > + > A BLP model $⟨S,O,L,Q,\sum,\sigma,q_0,R⟩$ is secure iff both of the following holds: + > 1. $q_0$ is secure + > 2. $\sigma$ is build such that for each state q reachable from $q_0$ by a finite input sequence, where $q=⟨m,cl⟩$ and $q'=\sigma(q,\delta)=m',cl',\forall s\in S, o\in O,\delta\in\sum$ the following holds: + \begin{itemize*} + \item Read-security conformity: + \begin{itemize*} + \item read $\not\in m(s,o)\wedge read\in m'(s,o)\Rightarrow cl'(o)\leq cl'(s)$ + \item read $\in m(s,o) \wedge\lnot (cl'(o)\leq cl'(s)) \Rightarrow read \not\in m'(s,o)$ + \end{itemize*} + \item Write-security conformity: + \begin{itemize*} + \item write $\not\in m(s,o)\wedge write \in m'(s,o)\Rightarrow cl'(s)\leq cl'(o)$ + \item write $\in m(s,o)\wedge\lnot(cl'(s)\leq cl'(o)) \Rightarrow write \not\in m'(s,o)$ + \end{itemize*} + \end{itemize*} + + Proof of Read Security + \begin{itemize*} + \item Technique: Term rewriting + \item Let $q=\sigma*(q_0 ,\sigma^+),\sigma^+\in\sigma^+,q'=\delta(q,\sigma),\sigma\in\sigma,s\in S,o\in O$. With $q=⟨m,cl⟩$ and $q'=m',cl'$, the BLP BST for read-security is + \begin{itemize*} + \item (a1) $read \not\in m(s,o) \wedge read\in m'(s,o) \Rightarrow cl'(o) \leq cl'(s)$ + \item (a2) $read \in m(s,o) \wedge\lnot (cl'(o)\leq cl'(s)) \Rightarrow read \not\in m'(s,o)$ + \item Let’s first introduce some convenient abbreviations for this: + \begin{itemize*} + \item $R:=read\in m(s,o)$ + \item $R':=read\in m'(s,o)$ + \item $C':=cl'(o) \leq cl'(s)$ + \item $\sigma^+$ is the set of finite, non-empty input sequences. + \end{itemize*} + \item Proposition: $(a1) \wedge (a2)\equiv read-security$ + \item Proof: $(a1) \wedge (a2)= R' \Rightarrow C'\equiv read\in m'(s,o) \Rightarrow cl'(o)\leq cl'(s)$, which exactly matches the definition of read-security for $q'$. + \item Write-security: Same steps for $(b1)\wedge (b2)$. + \end{itemize*} + \end{itemize*} + + Where Do We Stand? + \begin{itemize*} + \item Precision: necessary and sufficient conditions for BLP security property + \item Analytical power: statements about dynamic model behavior based on static analysis of the (finite and generally small) STS $\rightarrow$ tool support + \item Insights: shows that BLP security is an inductive property + \end{itemize*} + + Problem: Larger systems: only source of access rules is the trust hierarchy $\rightarrow$ too coarse-grained! + + Idea: Encode an additional, more fine-grained type of access restriction in the ACM $\rightarrow$ compartments + \begin{itemize*} + \item Comp: set of compartments + \item $co:S\cup O\rightarrow 2^{Comp}$: assigns a set of compartments to an entity as an (additional) attribute + \item Refined state security rules: + \begin{itemize*} + \item $⟨m,cl,co⟩$ is read-secure $\Leftrightarrow\forall s\in S,o\in O:read \in m(s,o)\Rightarrow cl(o)\leq cl(s)\wedge co(o) \subseteq co(s)$ + \item $⟨m,cl,co⟩$ is write-secure $\Leftrightarrow\forall s\in S,o\in O:write\in m(s,o)\Rightarrow cl(s)\leq cl(o)\wedge co(o) \subseteq co(s)$ + \item Good ol’ BLP: $⟨S,O,L,Q,\sigma,\delta,q_0⟩$ + \item With compartments: $⟨S,O,L,Comp,Q_{co},\sigma,\delta,q_0⟩$ where $Q_{co}=M\times CL\times CO$ and $CO=\{co|co:S\cup O\rightarrow 2^{Comp}\}$ + \end{itemize*} + \end{itemize*} + + Example + \begin{itemize*} + \item Let $co(o)=secret,co(o)=airforce$ + \item $s_1$ where $cl(s_1)=public,co(s_1)=\{airforce,navy\}$ can write o + \item $s_2$ where $cl(s_2)=secret,co(s_2)=\{airforce,navy\}$ can read and write o + \item $s_3$ where $cl(s_3)=secret,co(s_3)=\{navy\}$ can do neither + \item %![](Assets/Systemsicherheit-blp-example.png) + \end{itemize*} + + + \paragraph{BLP Model Summary} + Model Achievements + \begin{itemize*} + \item Application-oriented modeling $\rightarrow$ hierarchical information flow (goal: preserve confidentiality) + \item Scalability $\rightarrow$ attributes: trust levels + \item Modeling dynamic behavior $\rightarrow$ automaton with STS + \item Correctness guarantees + \begin{itemize*} + \item Of model specification: analysis of + \begin{itemize*} + \item consistency: BLP security, BST + \item completeness of IF: IFG path finding + \item presence of unintended, transitive IF: IFG path finding + \item unwanted redundancy: IF cycles $\rightarrow$ information equivalence classes + \item safety properties:decidable! + \item $\rightarrow$ tool-supportpossible! + \end{itemize*} + \item Of model implementation: good ol’ ACM $\rightarrow$ ACLs, capabilities + \end{itemize*} + \item Implementation + \begin{itemize*} + \item ACM is a standard AC mechanism in contemporary implementation platforms (cf. prev. slide) + \item Contemporary standard OSs need this: do not support mechanisms for + \begin{itemize*} + \item entity classification + \item arbitrary STSs + \end{itemize*} + \item $\rightarrow$ newer platforms may do: SELinux, SEAndroid, TrustedBSD, Solaris, Trusted Extensions, PostgreSQL + \end{itemize*} + \item Is an example of a hybrid model: IF + AC + ABAC + \end{itemize*} + + Lessons Learned - What we can learn from BLP for designing and using security models: + \begin{itemize*} + \item Model composition from known model abstractions + \begin{itemize*} + \item Denning: IF modeling + \item ABAC: IF classes and compartments as attributes + \item MSL: modeling trust as a linear hierarchy + \item HRU: modeling dynamic behavior + \item ACM: implementing application-oriented policy semantics + \end{itemize*} + \item Consistency is an important property of composed models + \item BLP is further extensible and refinable $\rightarrow$ starting point for later models, e. g. Biba + \end{itemize*} + + + \paragraph{The Biba Model} + BLP upside down [Biba, 1977]: + %![](Assets/Systemsicherheit-blp-vs-biba.png) + \begin{itemize*} + \item BLP $\rightarrow$ preserves confidentiality + \item Biba $\rightarrow$ preserves integrity + \end{itemize*} + + Applications Example: On-board Airplane Passenger Information Systems + \begin{itemize*} + \item Goal: Provide in-flight information in cabin network + \begin{itemize*} + \item Flight instruments data + \item Outboard camera video streams + \item communication pilot - tower + \end{itemize*} + \item Integrity: no information flow from cabin to flight deck! + \item As employed in Boeing 787: common network for cabin and flight deck + software firewall + Biba implementation + \end{itemize*} + + Windows Vista UAC + \begin{itemize*} + \item An application of the Biba model for OS access control: + \item Integrity: Protect system files from malicious user (software) tampering + \item Class hierarchy: + \begin{itemize*} + \item system: OS level objects + \item high: services + \item medium: user level objects + \item low: untrusted processes e. g. web browser, setup application, ... + \end{itemize*} + \item Consequence: every file, process, ... created by the web browser is classified low $\rightarrow$ cannot violate integrity of system- and user-objects + \item Manual user involvement ($\rightarrow$ DAC portion of the policy):resolving intended exceptions, e. g. to install trusted application software + \end{itemize*} + + + \subsubsection{Non-interference Models} + Problem No. 1: Covert Channels + + > Covert Channel [Lampson, 1973] + > Channels [...] not intended for information transfer at all, such as the service program’s effect on the system load. + + \begin{itemize*} + \item AC policies (ACM, HRU, TAM, RBAC, ABAC): colluding malware agents, escalation of common privileges + \begin{itemize*} + \item Process 1: only read permissions on user files + \item Process 2: only permission to create an internet socket + \item both:communication via covert channel(e. g. swapping behavior) + \end{itemize*} + \item MLS policies (Denning, BLP, Biba): indirect information flow exploitation (Note: We can never prohibitany possible transitive IF ...) + \begin{itemize*} + \item Test for existence of a file + \item Volume control on smartphones + \item Timing channels from server response times + \end{itemize*} + \end{itemize*} + + Problem No. 2: Damage Range + How to substantiate a statement like: "Corruption of privileged system software will never have any impact on other system components." $\rightarrow$ Attack perimeter + + Idea of NI models: + \begin{itemize*} + \item Once more: higher level of abstraction + \item Policy semantics: which domains should be isolated based on their mutual impact + \end{itemize*} + + Consequences: + \begin{itemize*} + \item Easier policy modeling + \item More difficult policy implementation ...($\rightarrow$ higher degree of abstraction!) + \end{itemize*} + + + \paragraph{Example 1: Multi-application Smart Cards} + \begin{itemize*} + \item Different services, different providers, different levels of trust + \item Shared resources: Runtime software, OS, hardware (processor, memory, I/O interfaces, ...) + \item Needed:Total isolation of services (program code, security-critical information e. g. private keys) + \item $\rightarrow$ Guarantee of total non-interference between domains + \end{itemize*} + + \paragraph{Example 2: Server System} + \begin{itemize*} + \item Different services: web hosting, mail service, file sharing + \item Shared resources (see example 1) + \item Needed:Precisely defined and restricted cross-domain interactions (e. g. file up-/downloads, socket communication, shared memory read/write, ...) + \item $\rightarrow$ Guarantee of limited non-interferenc ebetween domains + \end{itemize*} + + \paragraph{NI Security Policies} + NI-Policies Specify + \begin{itemize*} + \item Security domains + \item Cross-domain (inter)actions $\rightarrow$ interference + \end{itemize*} + From convert channels to domain interference: + > Non-Interference + > + > Two domains do not interfere with each other iff no action in one domain can be observed by the other. + + $\rightarrow$ NI Model Abstractions: + \begin{itemize*} + \item Set of domains D + \item A non-interference relation $\approx_{NI}\subseteq D\times D$, such that $d_1 \approx_{NI} d_2\Leftrightarrow d_1$ does not interfere with $d_2$ + \item Subjects executeactions $a\in A$ + \item Effects of actions on domains defined by a mapping $dom:A\rightarrow 2^D$ + \end{itemize*} + + > NI Security Model + > An NI model is a det. automaton $⟨Q,\sigma,\delta,\lambda,q_0,D,A,dom,\approx_{NI},Out⟩$ where + \begin{itemize*} + \item Q is the set of (abstract) states, + \item $\sigma=A$ is the input alphabet where A is the set of (abstract) actions, + \item $\delta:Q\times\sigma\rightarrow Q$ is the state transition function, + \item $\lambda:Q\times\sigma\rightarrow Out$ is the output function, + \item $q_0\in Q$ is the initial state, + \item $D$ is a set of domains, + \item $dom:A\rightarrow 2^D$ is adomain function that completely defines the set of domains affected by an action, + \item $\approx_{NI}\subseteq D\times D$ is a non-interference relation, + \item $Out$ is a set of (abstract) outputs. + \end{itemize*} + + NI Security Model is also called Goguen/Meseguer-Model [Goguen and Meseguer, 1982]. + + BLP written as an NI Model + \begin{itemize*} + \item BLP Rules: + \begin{itemize*} + \item write in class public may affect public and confidential + \item write in class confidential may only affect confidential + \end{itemize*} + \item NI Model: + \begin{itemize*} + \item $D=\{d_{pub},d_{conf}\}$ + \item write in $d_{conf}$ does not affect $d_{pub}$, so $d_{conf} \approx_{NI} d_{pub}$ + \item $A=\{writeInPub, writeInConf\}$ + \item $dom(writeInPub)=\{d_{pub},d_{conf}\}$ + \item $dom(writeInConf)=\{d_{conf}\}$ + \end{itemize*} + \end{itemize*} + + \paragraph{NI Model Analysis} + Goal + \begin{itemize*} + \item AC models: privilege escalation ($\rightarrow$ HRU safety) + \item BLP models:model consistency ($\rightarrow$ BLP security) + \item NI models:Non-interference between domains + \end{itemize*} + + Non-Interference Intuitively: + Is there a sequence of actions $a^*\in A^*$ that violates $\approx_{NI}$? $\rightarrow$ A model is called $NI$-secure iff there is no sequence of actions that results in an illegal domain interference. Now what does this meansprecisely...? + + Before we define what NI-secure is, assume we could remove all actions from an action sequence that have no effect on a given set of domains: + > Purge Function + > + > Let $aa^*\in A^*$ be a sequence of actions consisting of a single action $a\in A\cup\{\epsilon\}$ followed by a sequence $a^*\in A^*$, where $\epsilon$ denotes an empty sequence. Let $D'\in 2^D$ be any set of domains. Then, purge: $A^*\times 2^D \rightarrow A^*$ computes a subsequence of $aa^*$ by removing such actions without an observable effect on any element of $D':$ + \begin{itemize*} + \item $purge(aa^*,D')=\begin{cases} a\circ purge(a^*,D'), \quad\exists d_a\in dom(a),d'\in D':d_a\approx_I d' \\ purge(a^*,D'), \quad\text{ otherwise }\end{cases}$ + \item $purge(\epsilon,D')=\epsilon$ + \end{itemize*} + > where $\approx_I$ is the complement of $\approx_{NI}:d_1 \approx_I d_2\Leftrightarrow \lnot(d_1 \approx_{NI} d_2)$. + + > NI Security + > + > For a state $q\in Q$ of an NI model $⟨Q,\sigma,\delta,\lambda,q_0,D,A,dom,\approx_{NI},Out⟩$, the predicate ni-secure(q) holds iff $\forall a\in A,\forall a^*\in A^*:\lambda (\delta^*(q,a^*),a)=\lambda(\delta^*(q,purge(a^*,dom(a))),a)$ + + Interpretation + 1. Running an NI model on $⟨q,a^*⟩$ yields $q'=\delta^*(q,a^*)$. + 2. Running the model on the purged input sequence so that it contains only actions that, according to $\approx_{NI}$, actually have impact on $dom(a)$ yields $q'_{clean}=\delta^*(q,purge(a^*,dom(a)))$ + 3. If $\forall a\in A:\lambda(q',a)=\lambda(q'_{clean},a)$, than the model is called NI-secure w.r.t. q($ni-secure(q)$). + + \paragraph{Comparison to HRU and IF Models} + \begin{itemize*} + \item HRU Models + \begin{itemize*} + \item Policies describe rules that control subjects accessing objects + \item Analysis goal: right proliferation + \item Covert channels analysis: only based on model implementation + \end{itemize*} + \item IF Models + \begin{itemize*} + \item Policies describe rules about legal information flows + \item Analysis goals: indirect IFs, redundancy, inner consistency + \item Covert channel analysis: same as HRU + \end{itemize*} + \item NI Models + \begin{itemize*} + \item Rules about mutual interference between domains + \item Analysis goal: consistency of $\approx_{NI}$ and $dom$ + \item Implementation needs rigorous domain isolation (more rigorous than MLS, e.g. object encryption is not sufficient!) $\rightarrow$ expensive + \item State of the Art w.r.t. isolation completeness: VMs > OS domains (SELinux) > Containers + \end{itemize*} + \end{itemize*} + + \subsubsection{Hybrid Models} + Real-world Scenarios e.g. workflow modeling: IBAC plus RBAC plus IF plus time... $\rightarrow$ Hybrid models by composing pure models + + \paragraph{Chinese-Wall Policies} + Security policy family for consulting companies + \begin{itemize*} + \item Clients of any such company + \begin{itemize*} + \item Companies, including their business data + \item Often: mutual competitors + \end{itemize*} + \item Employees of consulting companies + \begin{itemize*} + \item Are assigned to clients they consult (decided by management) + \item Work for many clients $\rightarrow$ gather insider information + \end{itemize*} + \item $\rightarrow$ Policy goal: No flow of (insider) information between competing clients + \end{itemize*} + + Why look at specifically these policies? + \begin{itemize*} + \item Modeling + \begin{itemize*} + \item Composition of + \begin{itemize*} + \item Discretionary IBAC components + \item Mandatory ABAC components + \end{itemize*} + \item Driven by real-world demands: iterative refinements of a model over time + \begin{itemize*} + \item Brewer-Nash model [Brewer and Nash, 1989] + \item Information flow model [Sandhu, 1992a] + \item Attribute-based model [Sharifi and Tripunitara, 2013] + \end{itemize*} + \item Application areas: consulting, cloud computing + \end{itemize*} + \end{itemize*} + + \paragraph{The Brewer-Nash Model} + Specialized model: Explicitly tailored towards Chinese Wall (CW) policies + + Model Abstractions + \begin{itemize*} + \item Consultants represented by subjects + \item Client companies represented by objects, which comprise a company’s business data + \item Modeling of competition by conflict classes: two different clients are competitors $\Leftrightarrow$ their objects belong to the same class + \item No information flow between competing objects $\rightarrow$ a "wall" separating any two objects from the same conflict class + \item Additional ACM for refined management settings of access permissions + \end{itemize*} + + Example + \begin{itemize*} + \item Consultancy clients + \begin{itemize*} + \item Banks: HSBC, Deutsche Bank, Citigroup + \item Oil companies: Shell, Exxon Mobil/Esso + \end{itemize*} + \item Conflicts: business-crucial information flows between banks and oil companies + %![](Assets/Systemsicherheit-brewer-example.png) + \end{itemize*} + + Representation of Conflict Classes + \begin{itemize*} + \item Client company data: object set O + \item Competition: conflict relation $C\subseteq O\times O:⟨o,o'⟩\in C\Leftrightarrow o$ and $o'$ belong to competing companies (non-reflexive, symmetric, generally not transitive) + \item In terms of ABAC:object attribute $att_O:O\rightarrow 2^O$, such that $att_O(o)=\{o'\in O|⟨o,o'⟩\in C\}$. + \end{itemize*} + + Representation of a Consultant’s History + \begin{itemize*} + \item Consultants: subject set S + \item History relation $H\subseteq S\times O:⟨s,o⟩\in H\Leftrightarrow s$ has previously consulted $o$ + \item In terms of ABAC: subject attribute $att_S:S\rightarrow 2^O$, such that $att_S(s)=\{o\in O|⟨s,o⟩\in H\}$. + \end{itemize*} + + > Brewer-Nash Security Model + > + > The Brewer-Nash model of the CW policy is a det. $automaton⟨S,O,Q,\sigma,\delta,q_0,R⟩$ where + \begin{itemize*} + \item $S$ and $O$ are sets of subjects (consultants) and (company data) objects, + \item $Q=M\times 2^C\times 2^H$ is the state space where + \begin{itemize*} + \item $M=\{m|m:S\times O\rightarrow 2^R\}$ is the set ofpossible ACMs, + \item $C\subseteq O\times O$ is the conflict relation: $⟨o,o'⟩\in C\Leftrightarrow o$ and $o'$ are competitors, + \item $H\subseteq S\times O$ is the history relation: $⟨s,o⟩\in H\Leftrightarrow s$ has previously + consulted $o$, + \end{itemize*} + \item $\sigma=OP \times X$ is the input alphabet where + \begin{itemize*} + \item $OP=\{read,write\}$ is a set of operations, + \item $X=S \times O$ is the set of arguments of these operations, + \end{itemize*} + \item $\delta:Q \times\sigma\rightarrow Q$ is the state transition function, + \item $q_0\in Q$ is the initial state, + \item $R=\{read,write\}$ is the set of access rights. + \end{itemize*} + + %![](Assets/Systemsicherheit-brewer-example-2.png) + At the time depicted: + \begin{itemize*} + \item Conflict relation: $C=\{⟨HSBC,DB⟩,⟨HSBC,Citi⟩,⟨DB,Citi⟩,⟨Shell,Esso⟩\}$ + \item History relation: $H=\{⟨Ann,DB⟩,⟨Bob,Citi⟩,⟨Bob,Esso⟩\}$ + \end{itemize*} + + + \paragraph{Brewer-Nash STS} + \begin{itemize*} + \item Read (here: similar to HRU notation) + $command read(s,o)::=if read \in m(s,o) \wedge\forall ⟨o',o⟩\in C:⟨s,o'⟩\not\in H$ + $then$ + $H:=H\cup\{⟨s,o⟩\}$ + $fi$ + \item Write + $command write(s,o)::=if write \in m(s,o) \wedge\forall o'\in O:o'\not=o \Rightarrow ⟨s,o'⟩\not\in H$ + $then$ + $H:=H\cup\{⟨s,o⟩\}$ + $fi$ + \end{itemize*} + + Not shown: Discretionary policy portion $\rightarrow$ modifications in m to enable fine-grained rights management. + + Restrictiveness + \begin{itemize*} + \item Write Command: s is allowed to write $o\Leftrightarrow write\in m(s,o)\wedge\forall o'\in O:o'\not=o\Rightarrow⟨s,o'⟩\not\in H$ + \item Why so restrictive? $\rightarrow$ No transitive information flow! + \begin{itemize*} + \item $\rightarrow$ s must never have previously consulted any other client! + \item $\Rightarrow$ any consultant is stuck with her client on first read access + \item $\Rightarrow$ not (yet) a professional model! + \end{itemize*} + \end{itemize*} + + \paragraph{Brewer-Nash Model} + Instantiation of a Model + \begin{itemize*} + \item Initial State $q_0$ + \begin{itemize*} + \item $m_0$: consultant assignments to clients, issued by management + \item $C_0$: according to real-life competition + \item $H_0 =\varnothing$ + \end{itemize*} + \end{itemize*} + + > Secure State + > $\forall o,o' \in O,s\in S:⟨s,o⟩\in H_q\wedge⟨s,o'⟩\in H_q\Rightarrow⟨o,o'⟩\not\in C_q$ + > Corollary: $\forall o,o'\in O,s\in S:⟨o,o'⟩\in C_q\wedge⟨s,o⟩\in H_q\Rightarrow ⟨s,o'⟩\not\in H_q$ + + > Secure Brewer-Nash Model + > Similar to "secure BLP model". + + In the exercises: STS, transformation into pure HRU calculus, dynamic subject and object sets. + + \paragraph{Summary Brewer-Nash} + What’s remarkable with this model? + \begin{itemize*} + \item Composes DAC and MAC components + \item Simple model paradigms + \begin{itemize*} + \item Sets (subjects, objects) + \item ACM (DAC) + \item Relations (company conflicts, consultants history) + \item Simple "read" and "write" rule + \item $\rightarrow$ easy to implement + \end{itemize*} + \item Analysis goals + \begin{itemize*} + \item MAC: Model security + \item DAC: safety properties + \end{itemize*} + \item Drawback: Restrictive write-rule + \end{itemize*} + + Professionalization + \begin{itemize*} + \item Remember the difference: trusting humans (consultants) vs. trusting software agents (subjects) + \begin{itemize*} + \item Consultants are assumed to be trusted + \item Systems (processes, sessions, etc.) may fail, e. g. due to a malware attack + \end{itemize*} + \item $\rightarrow$ Write-rule applied not to humans, but to (shorter-lived) software agents $\rightarrow$ mitigating malware effectiveness + \item $\rightarrow$ Subject set S models consultant’s subjects (e. g. processes) in a group model: + \begin{itemize*} + \item All processes of one consultant form a group + \item Group members + \begin{itemize*} + \item have the same rights in m + \item have individual histories + \item are strictly isolated w.r.t. IF + \end{itemize*} + \end{itemize*} + \item Solution approach: as we already know $\rightarrow$ model refinement! + \end{itemize*} + + + \paragraph{The Least-Restrictive-CW Model} + Restrictiveness of Brewer-Nash Model: + \begin{itemize*} + \item If $⟨o_i,o_k⟩\in C$: no transitive information flow $o_i \rightarrow o_j\rightarrow o_k$, i.e. consultant(s) of $o_i$ must never write to any $o_j\not=o_i$ + \item This is actually more restrictive than necessary: $o_j\rightarrow o_k$ and afterwards $o_i\rightarrow o_j$ would be fine! (no information can actually flow from $o_i$ to $o_k$) + \item In other words: Criticality of an IF depends on existence of earlier flows. + \end{itemize*} + + Idea LR-CW[Sharifi and Tripunitara, 2013]: Include time as a model abstraction! + + Approach: + \begin{itemize*} + \item $\forall s\in S,o\in O$: remember, which information has flown to an entity + \item $\rightarrow$ subject-/object-specific history, $\approx$attributes ("lables") + \end{itemize*} + + > LR-CW Model + > + > The Least-Restrictive model of the CW policy is a deterministic $automaton ⟨S,O,F,\zeta,Q,\sigma,\delta,q_0⟩$ where + \begin{itemize*} + \item S and O are sets of subjects (consultants) and data objects, + \item F is the set of client companies, + \item $\zeta:O\rightarrow F$ ("zeta") is a function mapping each object to its company, + \item $Q=2^C \times 2^H$ is the state space where + \begin{itemize*} + \item $C\subseteq F\times F$ is the conflict relation: $⟨f,f'⟩\in C\Leftrightarrow f$ and $f'$ are competitors, + \item $H=\{Z_e\subseteq F|e\in S\cup O\}$ is the history set: $f\in Z_e\Leftrightarrow e$ contains information about $f(Z_e$ is the "history label" of $e$), + \end{itemize*} + \item $\sigma=OP\times X$ is the input alphabet where + \begin{itemize*} + \item $OP=\{read,write\}$ is the set of operations, + \item $X=S\times O$ is the set of arguments of these operations, + \end{itemize*} + \item $\delta:Q\times\sigma\rightarrow Q$ is the state transition function, + \item $q_0\in Q$ is the initial state + \end{itemize*} + + %![](Assets/Systemsicherheit-brewer-example-2.png) + \begin{itemize*} + \item At the time depicted (before the first write): + \begin{itemize*} + \item Client companies: $F=\{HSBC,DB,Citi,Shell,Esso\}$ + \item History set: $H=\{Z_{Ann},Z_{Bob},Z_{o1} ,...,Z_{o|O|}\}$ with history labels + \begin{itemize*} + \item $Z_{Ann}=\{DB\}$ + \item $Z_{Bob}=\{Citi,Esso\}$, + \item $Z_{oi}=\{\zeta(o_i)\}, 1\leq i\leq |O|$. + \end{itemize*} + \end{itemize*} + \end{itemize*} + + Inside the STS + \begin{itemize*} + \item a reading operation + \begin{itemize*} + \item requires that no conflicting information is accumulated in the subject potentially increases the amount of information in the subject + \item command read(s,o) ::= if $\forall f,f'\in Z_s \cup Z_o:⟨f,f'⟩\not\in C$ then $Z_s:=Z_s\cup Z_o$ fi + \end{itemize*} + \item a writing operation + \begin{itemize*} + \item requires that no conflicting information is accumulated in the object potentially increases the amount of information in the object + \item command write(s,o) ::= if $\forall f,f'\in Z_s\cup Z_o:⟨f,f'⟩\not\in C$ then $Z_o:=Z_o\cup Z_s$ fi + \end{itemize*} + \end{itemize*} + + Model Achievements + \begin{itemize*} + \item Applicability: more writes allowed in comparison to Brewer-Nash (note that this still complies with the general CW policy) + \item Paid for with + \begin{itemize*} + \item Need to store individual attributes of all entities (their history labels $Z_e$) + \item Dependency of write permissions on earlier actions of other subjects + \end{itemize*} + \item More extensions: + \begin{itemize*} + \item Operations to modify conflict relation + \item Operations to create/destroy entities + \end{itemize*} + \end{itemize*} + + \paragraph{An MLS Model for Chinese-Wall Policies} + Problems + \begin{itemize*} + \item Modeling of conflict relation + \item Modeling of consultants history + \end{itemize*} + + Conflict relation is + \begin{itemize*} + \item non-reflexive: no company is a competitor of itself + \item symmetric: competition is always mutual + \item not necessarily transitive: any company might belong to more than one conflict class $\Rightarrow$ if a competes with b and b competes with c, then a and c might still be in different conflict classes (= no competitors) $\rightarrow$ Cannot be modeled by a lattice! + \end{itemize*} + + Reminder:In a lattice$⟨C,\leq⟩$,$\leq$ is a partial order: + 1. reflexive $(\forall a\in C:a \leq a)$ + 2. anti-symmetric $(\forall a,b \in C:a \leq b \wedge b \leq a\Rightarrow a=b)$ + 3. transitive $(a,b,c \in C:a \leq b \wedge b \leq c \Rightarrow a \leq c)$ + + MLS-CW Example: + \begin{itemize*} + \item Two conflict classes: %![](Assets/Systemsicherheit-mls-conflict-classes.png) + \item Resulting valid information flows: %![](Assets/Systemsicherheit-mls-information-flow.png) + \item Problem: How to express this more directly, by allowed information flows rather than (forbidden) conflicts? + \end{itemize*} + + Idea: Labeling of entities + \begin{itemize*} + \item Class of an entity (subject or object) reflects information it carries + \item Consultant reclassified whenever a company data object is read + \item $\rightarrow$ Classes and labels: + \item Class set of a lattice $C=\{DB,Citi,Shell,Esso\}$ + \item Entity label: vector of information already present in each business branch (formerly known as conflict classin Brewer-Nash!) + \item In our example, a vector consists of 2 elements $\in C$; resulting in labels such as: + \begin{itemize*} + \item $[\epsilon,\epsilon]$ (exclusively for $inf_C$) + \item $[DB,\epsilon]$ (for DB-objects or -consultants) + \item $[DB,Shell]$ (for subjects or objects containing information from both DB and Shell) + \item $[Esso,Shell]$ (illegal label!) + \item ... + \end{itemize*} + \end{itemize*} + + \paragraph{Summary CW} + Why is the "Chinese Wall" policy interesting? + \begin{itemize*} + \item One policy, multiple models: + \begin{itemize*} + \item The Brewer-Nash model demonstrates hybrid DAC-/MAC-/IFC-approach + \item The Least-Restrictive CW model demonstrates a more practical professionalization + \item The MLS-CW model demonstrates applicability of lattice-based IF modeling $\rightarrow$ semantically cleaner approach + \end{itemize*} + \item Applications: Far beyond traditional consulting scenarios...$\rightarrow$ current problems in cloud computing! + \end{itemize*} + + + \subsection{Summary} + Security Models + \begin{itemize*} + \item Formalize informal security policies for the sake of + \begin{itemize*} + \item objectification by unambiguous calculi + \item explanation and (possibly) proof of security properties (e.g. HRU safety, BLP security, NI security) by formal analysis techniques + \item foundation for correct implementations + \end{itemize*} + \item Are composed of simple building blocks + \begin{itemize*} + \item E.g. ACMs, sets, relations, functions, lattices, state machines + \item ... that are combined and interrelated to form more complex models + \item $\rightarrow$ (D)RBAC, (D)ABAC, BLP, Brewer-Nash, LR-CW, MLS-CW + \end{itemize*} + \end{itemize*} + + Remember: Goals of Security Models + \begin{itemize*} + \item Unambiguous policy formalization to + 1. reason about policy correctness + 2. correctly implement a policy + \end{itemize*} + + + \section{Practical Security Engineering} + Problem: Off-the-shelf models not always a perfect match for real-world scenarios + + Goal: Design of new, application-specific models + \begin{itemize*} + \item Identify common components found in many models $\rightarrow$ generic model core + \item Core specialization + \item Core extension + \item Glue between model components + \end{itemize*} + + \subsection{Model Engineering } + \subsubsection{Model Family} + What we have + %![](Assets/Systemsicherheit-model-family.png) + + In Formal Words ... + \begin{itemize*} + \item HRU: $⟨ Q, \sum , \delta, q_0 , R ⟩$ + \item $DRBAC_0$ : $⟨ Q, \sum , \delta, q_0 , R, P, PA ⟩$ + \item DABAC: $⟨ A , Q ,\sum , \delta, q_0 ⟩$ + \item TAM: $⟨ Q , \sum , \delta, q_0 , T, R ⟩$ + \item BLP: $⟨ S, O, L, Q , \sum , \delta, q_0 , R ⟩$ + \item NI: $⟨ Q , \sum , \delta, \lambda ,q_0 , D, A, dom, =_{NI} , Out ⟩$ + \end{itemize*} + + Core Model (Common Model Core) + \begin{itemize*} + \item HRU: $⟨ Q, \sum , \delta, q_0 , \not R ⟩$ + \item $DRBAC_0$ : $⟨ Q, \sum , \delta, q_0 , \not R, \not P, \not PA ⟩$ + \item DABAC: $⟨ \not A , Q ,\sum , \delta, q_0 ⟩$ + \item TAM: $⟨ Q , \sum , \delta, q_0 , \not T, \not R ⟩$ + \item BLP: $⟨ \not S, \not O, \not L, Q , \sum , \delta, q_0 , \not R ⟩$ + \item NI: $⟨ Q , \sum , \delta, \not \lambda ,q_0 , \not D, \not A, \not dom, \not =_{NI} , \not Out ⟩$ + \item $\rightarrow ⟨ Q ,\sum , \delta, q_0 ⟩$ + \end{itemize*} + + Core Specialization + \begin{itemize*} + \item HRU: $⟨ Q, \sum , \delta, q_0 , R ⟩ \Rightarrow Q = 2^S \times 2^O \times M$ + \item $DRBAC_0$ : $⟨ Q, \sum , \delta, q_0 , R, P, PA ⟩ \Rightarrow Q = 2^U\times 2^{UA}\times 2^S \times USER \times ROLES$ + \item DABAC: $⟨ A , Q ,\sum , \delta, q_0 ⟩ \Rightarrow Q = 2^S\times 2^O \times M\times ATT$ + \item TAM: $⟨ Q , \sum , \delta, q_0 , T, R ⟩ \Rightarrow Q = 2^S\times 2^O\times TYPE \times M$ + \item BLP: $⟨ S, O, L, Q , \sum , \delta, q_0 , R ⟩ \Rightarrow Q = M \times CL$ + \item NI: $⟨ Q , \sum , \delta, \lambda ,q_0 , D, A, dom, =_{NI} , Out ⟩$ + \end{itemize*} + + Core Extensions + \begin{itemize*} + \item HRU: $⟨ Q, \sum , \delta, q_0 , R ⟩ \Rightarrow R$ + \item $DRBAC_0$ : $⟨ Q, \sum , \delta, q_0 , R, P, PA ⟩ \Rightarrow R,P,PA$ + \item DABAC: $⟨ A , Q ,\sum , \delta, q_0 ⟩ \Rightarrow A$ + \item TAM: $⟨ Q , \sum , \delta, q_0 , T, R ⟩ \Rightarrow T,R$ + \item BLP: $⟨ S, O, L, Q , \sum , \delta, q_0 , R ⟩ \Rightarrow S,O,L,R$ + \item NI: $⟨ Q , \sum , \delta, \lambda ,q_0 , D, A, dom, =_{NI} , Out ⟩ \Rightarrow \lambda,D,A,dom,=_{NI},Out$ + \item $\rightarrow R, P, PA, A , T , S , O , L , D , dom , =_{NI} , ...$ + \end{itemize*} + + Glue + \begin{itemize*} + \item E.g. TAM: State transition scheme (types) + \item E.g. DABAC: State transition scheme (matrix and predicates) + \item E.g. Brewer/Nash Chinese Wall model: "$\wedge$" (simple, because $H+C\not= m$) + \item E.g. BLP + \begin{itemize*} + \item BLP read rule + \item BLP write rule + \item BST + \item (much more complex, because rules restrict m by L and cl ) + \end{itemize*} + \end{itemize*} + + $\rightarrow$ Model Engineering Principles + \begin{itemize*} + \item Core model + \item Core specialization, e.g. + \begin{itemize*} + \item $Q = 2^S\times 2^O \times M$ (HRU) + \item $Q = M\times CL$ (BLP) + \end{itemize*} + \item Core extension, e.g. + \begin{itemize*} + \item e.g. $L$ (BLP) + \item $T$ (TAM) + \item $D, dom ,=_{NI}$ (NI) + \end{itemize*} + \item Component glue, e.g. + \begin{itemize*} + \item Chinese Wall: DAC "$\wedge$" MAC in AS + \item BLP: complex relation between ACM and lattice + \item $\rightarrow$ BLP security, BLP BST + \end{itemize*} + \end{itemize*} + + You should have mastered now: A basic tool set for model-based security policy engineering + \begin{itemize*} + \item A stock of basic security model abstractions + \begin{itemize*} + \item ACFs and ACMs + \item Model states and transitions defined by an STS + \item Attributes (roles, confidentiality classes, information contents, location, ...) + \item Information flows + \end{itemize*} + \item A stock of formal model building blocks + \begin{itemize*} + \item Sets, functions, relations + \item Deterministic automatons + \item Graphs and lattices + \end{itemize*} + \item A stock of standard, off-the-shelf security models + \item Methods and techniques + \begin{itemize*} + \item for model-based proof of policy properties properties + \item for combining basic model building blocks into new, application-oriented security models + \end{itemize*} + \end{itemize*} + + \subsection{Model Specification} + Policy Implementation + \begin{itemize*} + \item We want: A system controlled by a security policy + \item We have: A (satisfying) formal model of this policy + \end{itemize*} + + To Do + \begin{itemize*} + \item How to convert a formal model into an executable policy? + \begin{itemize*} + \item $\rightarrow$ Policy specification languages + \end{itemize*} + \item How to enforce an executable policy in a system? + \begin{itemize*} + \item $\rightarrow$ security mechanisms and architectures (Chapters 5 and 6) + \end{itemize*} + \end{itemize*} + + Role of Specification Languages: Same as in software engineering + \begin{itemize*} + \item To bridge the gap between + \begin{itemize*} + \item Abstractions of security models (sets, relations, ...) + \item Abstractions of implementation platforms (security mechanisms such as ACLs, krypto-algorithms, Security Server ...) + \end{itemize*} + \item Foundation for + \begin{itemize*} + \item Code verification + \item Or even more convenient: Automated code generation + \end{itemize*} + \end{itemize*} + + + Approach + \begin{itemize*} + \item Abstraction level: + \begin{itemize*} + \item Step stone between model and security mechanisms + \item $\rightarrow$ More concrete than models + \item $\rightarrow$ More abstract than programming languages (“what” instead of “how“) + \end{itemize*} + \item Expressive power: + \begin{itemize*} + \item Domain-specific; for representing security models only + \item $\rightarrow$ Necessary: adequate language paradigms + \item $\rightarrow$ Sufficient: not more than necessary (no dead weight) + \end{itemize*} + \end{itemize*} + + Domains + \begin{itemize*} + \item Model domain + \begin{itemize*} + \item e.g. AC models (TAM, RBAC, ABAC) + \item e.g. IF models (MLS) + \item e.g. NI models + \end{itemize*} + \item Implementation domain + \begin{itemize*} + \item OS + \item Middleware + \item Applications + \end{itemize*} + \end{itemize*} + + + \subsection{Model Specification } + \subsubsection{CorPS} + \subsubsection{SELinux Policy Language} + \subsection{Summary} + + \section{Security Mechanisms} + \subsection{Authorization} + \subsubsection{Access Control Lists} + \subsubsection{Capability Lists} + \subsubsection{Interceptors} + \subsubsection{Summary} + \subsection{Cryptographic Mechanisms} + \subsubsection{Encryption} + \paragraph{Symmetric} + \paragraph{Asymmetric} + \subsubsection{Cryptographic Hashing} + \subsubsection{Digital Signatures} + \subsubsection{Cryptographic Attacks} + \subsection{Identification and Authentication} + \subsubsection{Passwords} + \subsubsection{Biometrics} + \subsubsection{Cryptographic Protocols} + \paragraph{SmartCards} + \paragraph{Authentication Protocols} + \subsection{Summary} + + \section{Security Architectures} + \subsection{Design Principles} + \subsection{Operating Systems Architectures} + \subsubsection{Nizza} + \subsubsection{SELinux } + \subsection{Distributed Systems Architectures} + \subsubsection{CORBA } + \subsubsection{Web Services } + \subsubsection{Kerberos } + \subsection{Summary} +\end{multicols} +\end{document} \ No newline at end of file