From f6e9b4bd2b2ba75b80b42cbb061750a13bbd6581 Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Mon, 5 Aug 2024 16:27:16 +0800 Subject: [PATCH 1/4] - Update the trace description by removing the interface signal details --- chapter2.adoc | 23 +++++------------------ external-debug-security.pdf | Bin 222421 -> 220379 bytes 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/chapter2.adoc b/chapter2.adoc index 34899a0..2ce3a5f 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -92,33 +92,20 @@ The interrupt can be disabled by `stepie` in the dcsr during single stepping. Wh When debugging is only allowed for the supervisor domain, M-mode interrupts must not be disabled. Otherwise, debugging might impact the behavior of other parts of the system. For example, if a context switch for the supervisor domain triggered by a timer interrupt is suppressed, some real-time workloads might not be completed on time, resulting in unexpected errors. === Trace -When Sdsec is supported, the optional sideband signal to trace encoder, sec_check[i] cite:[etrace], must be implemented for each hart i. The sec_check[i] signal is only cleared when trace is allowed by <> and/or <>. +When Sdsec is supported, trace, as a non-intrusive debug method, will be constrained based on RISC-V privilege level. The availability of trace output is indicated through the interface defined in <<<_reference to the trace interface doc_>>> to trace module. [mtrcctl] ==== M-Mode Trace Control -For each hart i, an input port, mtrcen[i], controls M-mode trace availability. Setting mtrcen[i] to 1 enables M-mode and supervisor domain trace by clearing the sec_check[i] signal to 0 across all privilege levels. Conversely, if mtrcen[i] is set to 0, the sec_check[i] signal cannot be cleared when the hart i runs in M-mode. +For each hart i, the input port mtrcen[i] controls the availability M-mode tracing. Setting mtrcen[i] to 1 enables trace for both M-mode and the supervisor domain. Conversely, setting mtrcen[i] to 0 disables trace output when hart i is running in M-mode. [NOTE] -For a homogeneous computing system, similar to M-mode debug control, the implementation can consolidate all mtrcen[i] into a single port to constrain trace capability across all harts. +Similar to M-mode debug control, the implementation can choose to group several harts together and use one signal to drive their mtrcen ports or assign each hart a dedicated signal. [sdtrcctl] ==== Supervisor Domain Trace Control -The Smsdetrc extension introduces `sdetrcalw` field (bit 8) in CSR <> within hart i. The sec_check[i] signal for hart i in supervisor domain is determined by the `sdetrcalw` field and mtrcen[i]. When the logical-OR of `sdetrcalw` and mtrcen[i] is 1, the sec_check[i] signal is cleared while the hart i runs in supervisor domain. +The Smsdetrc extension introduces `sdetrcalw` field (bit 8) in CSR <> within hart i. The trace availability for hart i in supervisor domain is determined by the `sdetrcalw` field and mtrcen[i]. If either `sdetrcalw` or mtrcen[i] is set to 1, the trace output is allowed when hart i runs in the supervisor domain. -When both `sdetrcalw` and mtrcen[i] are set to 0, the sec_check[i] signal cannot be cleared at all. - -[[trcctl]] -[options="header"] -.Status of the sec_check[i] sideband signal across privilege levels -|=========================================================== -| mtrcen| sdetrcalw| M-mode | Supervisor domain -| 1 | x | sec_check[i] = 0 | sec_check[i] = 0 -| 0 | 1 | sec_check[i] = 1 | sec_check[i] = 0 -| 0 | 0 | sec_check[i] = 1 | sec_check[i] = 1 -|=========================================================== - -[NOTE] -The sec_check signal serves as an additional signal for the trace module, indicating that trace output is prohibited due to security controls. Functionally, sec_check behaves identically to the halted signal. Both sec_check and halted signals cannot be active simultaneously. Reserved for future applications, the combined state of [sec_check, halted] as 0b11 remains unutilized. In cases where a trace module lacks support for the sec_check signal, the hart may alternatively toggle the halted signal to restrict trace output. +When both `sdetrcalw` and mtrcen[i] are set to 0, trace output is inhibited at all privilege levels. === Trigger (Sdtrig) diff --git a/external-debug-security.pdf b/external-debug-security.pdf index 684ea35b1feae87b97dfaaaf3db8651d2ce3a854..333a5ed538d5f4df0385cfcb65a3c4137a9cb903 100644 GIT binary patch delta 49049 zcmZs@by!qi*fq>h(hbtxJq(S4bW2Gi-Q5jCgMickLrZt3bSa25(%m5)((z&ZuJ3)H z_xWqb*?XOR;ySa|eXl)J1LzCQ=y7NGoRplDswf=FMiyoYM#g5gE|ef3599^lT$cCu z5lSE@_umo-{9AJUnL!EU0{v}+xc-*h|JpqN+B^b(`+0fm#9{A45cy5{xj6+OlHr^H zPDp1aGd|a!fhZjB9MtWtOdL$jC_!96NJBUsfDfY5O_vbC2sgm12w{m}1+ROE_;+|; zo%b8?relthECEZJDj^D9?S9J+%YF&b4h4(C6nq9*(f*xDSKEeA| zt`22SD}@OmGb6ViPx*EFfgjK5EBJ#o1nLwiik5|#w%GRDaGk|CyyET;TSnbnJ{hkN z4yRr&#<<3qYFxJ0-4Xk3gT*cD4SSqG<12D_Rsx06zoAW-o9R9B5sCU$Oa5; zDhmud-I8r?jV{D(+Oxr5`^nl0gZRo;x5)LIC|SCb;IEsd!JSKkVBLFJlu<#V+i2_A zr;!}%93^zm7rO((Dz%8-IYt-dfsfQFyG|{92qOU2?3esuK9i(;a8$JC%(GeV9IaCH z@6`9vtil(&iM|PIG;O#W5qp~HyyF+AO`pvkF$HVe@S97>n_VP|wH;)) zkm(_x@YiA`58K2X2Ph?L$Ezr&1_UiVoS#WXT@|xPk91sb;(kWc9un9EpYSP zs*Q+tV^cHvZSjV@-&wec#>(DP5-QAE$@p#1YN4)rWQ*jtQ4uG&e7v0&LourkFE)S0 z`dz+R%z9VoGwhtl_bK>SszH@JfKf@#LD9FTBa<>BN*IQsAcTR_kQVv8hV3$fyUAIP zuB^TaG#>`Ic0F)!wqA%Iy^Ntqb|>^st=O4tRpMNtzd0!7e3HK6aiX}Lpk57b8DK|T zLR_zCk-{Wz1QJC##Ofr89s$P0kBCLbs6B8|`hSu28M1)BSY`?%3eK>coPc3Rb2d+L zk7I!OY5k@#=Cl@`8<#X{0&ajxr!)86m-rU-&#YUC!Tez1@*{6kvKjY^I`bn0rdm-< zxKsJwEaDT4YKWgIl1~v_U7TTBZQ}E6-B9%XlI0eEF@(n##o`LEh8x*SRSj=n{6zA- zPKSNLR5E1gg#9f$HB3ro9xbX>hOO2r_$YwYDzD{KyW7UB#Drc3ftZ*L>VkmR1M>U| zFO_sCMh6ZQiYFt;zzZWjb^f7XQ(b$m;Eg#zztmM=qzAh>N$3HSiui3NfEB)uXTXqF zCeU`w`9aV!BBh2iAl%EA40Ay0*XXS=UtW)a%goC!Lm*A+wXkivk)*L<9pY}D)ePbt z4E`U4No$LvLsnHO#oE2m@X{OG!gs;lznHPG2$8@;+`)d8&Q$7tj1mU%x~60kM+B}E znjg>Rt;}sE24py+s;``@M(cbxD&rLchBlZpO)!p_6EvQN)rsSk(0yKP4s?`?FKb;d z5^r(@F`YFHJyr~0(_TQ`y0MF;Uf0tkc2@*+V!@gBm4@pQ6@E_P?8GTm7^c!wiJ40) z7?c4!vf3WMJo}|wB|PN+jh*!nv+DaodyU-<4&DYqYw$ZStBz^!Dd$hbEtx)PjjBiC z-P)e?HWO1aajX8ehg@jOy?PWHjp1`CIozl=i>M0dzCLWqJXCAQrMvamkmJmLr_Y&4 z)q8F%3X3RX9%J5(6P%x`Rx?An4<_`h=||>)d+&l=5?}u==7Tuu+P!savdFbJToO%Yyn>19mWhql15Hjf?lc5*Ozp!&t?2A#6>cwe;e~1Yl%=5Z@ z1&(m#IYv=bTug*i?3EV0=CKz#Qz;<#1zA|w8^(6lx_YXAni6Nmv>$5Q#M^^;RPq^cr{bVpp z8z^v}6CPn*YdMq(>TUysLVlfOp=}8)|8hfhzUEdHJKcqRh#>)gk<+g^D>;!VP>3V; ztFv>9l9;K_m5&Xw>0tga8oi`&4{uTM<%&eK0M{*?UNUG7sp3a`GY4D1j<~v33rJ_j zN7iZcb%@2C+o7gVk?R4dax0hv@o_t`GC1rdi{ zq7BQqZZ0@h?rI}&jBl2u4stLFhSLEA6ItDUA1xqh2VOjhDQe~wsQPkZ)gWWub4l*w43md$q%X5WJqr2>%z{k7@i$nR;MTMv&d>624tPfC z6ME_=a=;lQNt%+gbZ}c6hiRX~B|?jkjbFE0!49ceP+rH_u{BPB*{m&e`gZ-XkW;n; zlc)QIuIoDwT{BejnNT-VQ`}|Wy!gAx>cd6Id-Wkdk%|bny3laq=ktxn2~ccC;4TZH zM)uNF-k*Sf7{!PunWjV{->FgcH>_-z#)rHO>fo6<{9GFEs+rbm6n^+>UrirGRsA!X z_k2PaSVU1EWqC!Dwk#(yQG1k_FB8`SMzgy7l>Pf z-N5OqLQ!+4{jA$5kR9)!H;eFtd>0}9$h$CGqH7=+M^gJiy=6-Nvz~RfJCsIIpQKh+ z-P>D@p8uya?_$%tvvf40?&+g$Y%_y~H<@QZwQG0wU8?kRM^=ut7bQ*$4*>_2IwGru z7bisuj+2;r$1mpQ;l8{fo>a~XUm@#}Y>Mj(5huA-j4>jQ4mWTc>+ME6w>6TWk!O8N zNpf`p)>o1Dwyt)c7+{B)7{s7C3Ouyk>sBgR)GD1o7|Kf+I#;qB-yf94AJyyM&e(Wa zD=FXGgp;Cn$6cpD^Dgqt@s+!#H|0BKC|NaS4--G)PF%nc1{~h61`%9x{jWK*p9X|4 z?` z&tHzl|BvhO^Zje{|0(O>A)2rdpCmuRf837i?>K>fl#q|N4lDTx7NVa-hDOQ7`*#u- zuRt9`>J}U7r!wOvY*8VamiAybN)mH z4-4e~J-n_Y&*8bw2jN7-uj42_MgOm#x6v5oA7ou+m(q*>`fG+LiI_x z4tLfQ=f43tKU3iWywDm}I9l*m-GvyMCTzbM&5M_gUM#i9XxrWHI9-^4jLfD`3NAL} z>Ui08{s^#$x@7G@;Vf~9bbD)*wv}s1<$j6U*X0$APyYN5$I!itrcPfzg-(jZIPu3D zzuTSe7_o)!Ruw`J<4%Y>2I2<7=QWX{-W$r(;G6J{F_f|IC~?=BnBTyhd3ej|1xVo7 z5YsR>*zDr$q?3(yb6Y4dT_x(|N=C-qGRj%lvd^8Uj;JAm&0K~}>^hrh!EDHUlDaaD z3IPo~`RnY#!q?6fqjOr=|M9VEU`Qp1u=hkG@om-p#>vge){ZEK^rRwW_bRji#j};M zOit_FIlcA6dm^!fCQQPFC+`yCuVfPhW7YhnY`O(q~tu2$L zguOc48ClqGlPLoyE#RdG<&>?}OlL0bAuSufCoWfeuf7@9qFb1MVb;YBrV>4deeg897;Ix^ww zdF&^2ivAjDVS4wzznyS);x?Kf76k*`yl z8%@8$b4k$HZ)D>}7`*&2!hQ`AhnU$#43Sl~kqykJ2FkVWO-=L^H+D!`) z-h=96U9ITAL=2?E!<(b`t$;P-Pd6Vn!>~V!{(||mmPh8~`gZNOQ@VBlP3Ltke|68U zWiYmN7xWu!MQe*RwBD-GRpmj*APR4M8jS;d;+B-`Yov6#>#gJ!4C!>sgL^-b&T&71 zs!|q!2M*tOI2N~JSBeyylkg@`WD(u+18m-D?a+A)JPC!Hp1%VfCVfZH#*v&F->H znZEN;aPMGjtUK;^iku2@r0cQ4;@a@Mb`l}F>axTi^&d^PM$>p*2N14Xocr1d>U^Ck zQl&61WB6*6I}|l#!zh@L_A+-9r-oNIAjM}9Ji8@X((Fy~#kj(~nwdH}!E;~94Z5X=T=xeuuOq5H?Irc6W=p_m zPOzl~YqQ%nS%^gn5TFo1d2Sl}$@PCwgog3}Vmj*_&8CK}2!8s!|YgxEJ)$5niZS3iQKSx^<-l{ja zgUdD|RvLdzKdNAi@ym(<9uoE6qRzbVonCSZ3w#|2usYr6)e09er12KL#hX{~+*Qdd=WL3EZ=n%E78ZN7FLgN z^MDZ|Htf#OJImGME7;PWi1R8N0kJoxb6^s~;`aE?Z32(Nl`6BBJNawNh9DWLBb%QX ztY6=a=Df0ySQRIKL>EFB*qJf$HQrHW?}xJ28UJ4y%~Q6!Lul6^hNrAS}0AzFJ*_>8qCc%p}r8%^01|$ixzDSIc#+@U16R^ z(V-}XZSONSF|l|<-%CcL8Zj7vjR`Or70;1Xpa8;%x#9^U1oD{lP}w2k%4 z+*b}pEpH8QTLMelWhH|1C;T5~xxZh(VQCHJveP3N$nyGH`=-=My*1bFZylr_m8;wz0w!F%OQOIG-0qb#%e(*#?kq)+inUI+lL zng_zC+G^Vt*CfYYF@0f^%}R(Um3_?G(EFGwd8JM2GCDk1gu0tGp@2i3d*N1W(UM%` znfj|n+HVmOx{Ai!$BsIXq&^28Q24MPa)axFQhViY?$|H21plrd`mrTmgYl{QV@vlt z_dEN^_%`GC#`IU>eBHkoo`TeVz2%6-aw^m0@^Ko}6YUh@@{GJumu!KQ_`Itlk>1eh ze1lcE&|hW+v@q;EieSz<=N@noa@w`}`bnC6r*D?wg!ueI;5;-+Q9R=kyyW}wwQq23 zfrFpP#{lvpf3Gtx-qu7?`*;|tOFvSdZ#+jtgYRWR56xZ{r|(l5;C zL0UjRpZA;SXN^yXL$|DY2kxj(*qNQ$`)1XFd0;`oL?=dZWnxzY0J1rUN83crMax>$ z)j*SfNv6mrb%J?QM@Z$xT+hvNydb*jw1x93$%}lzXOsy6080 zVRt=7^Y{8U#Mzuhy*J-E_|7xKLsvO!Opr5aGNeDE*Ly*f%;(^e3_d^O;837hs>GqH zpiHwl^%kUHELhy3ouhK8kqqXkP;0<1#Ecp||8Vs-gpmbjn??98cT~jyd8(2&a6fWz zw0{1){+xBSOPBG8g)FO?I^3rwoI5I^&$|D?*@-TJb+=L!^;&?>Mmtl9Kiy_o;p*K* zvKpE2@e8Amp>7|6*WfBg^F=r0EhUx1u=T3YY=@IMBL3dfz&D~KZ}$NQ-hB`PqAAl@ar@^$Pt<5 zvPipj$!~hO{fNdoFX_93yC~gYCrUM1)tH*F-_D%mSQ`q@bp3WA*gC|SC-{}e(>Yrq zTmgQFeu*A<=t?1-z1QJX28%r%ao<2L>1)L<7{NNOZt|3uEW2*B7?bUh9Bi*OmjPK@7@hz>kKq*s3tqZ zomN=IYE?d5f(O3r<&%JlnG@Hp6lh=XIfBIGrb}Q&lx~GsmPkalvwYS~?@~#XUZudAv_M-ha5b=>&uCnuz_c zXB1&z2>h7fxZna2368_QrQSY?<`f+$U0*%D=p9e5tGu-Z{73#d@6qd2?>PYU2F_;Y zX3l2zCT5hb4wSBz&xNzmbHmEs)y&!acg@tn!~kM6M?}WM!_E!j=Aq=`YHVd}Yvo|!Y~*O^#Y73@860V&?e=?yto9-QjBF z>h?SZ$o*G*F`E6kbI%=o|3IE+m>OF=cl?L?d{dnrp0EE8#(NZDVHD^IEC2}_SO<#> z&&9*f`Twe+v9_1L#Sj$!L>$Iq$8IgWoc&Go>_Cs`{ap!j!V+zIMLeRl7rLlwSyAiH z>YtM(#&`Q``=Tg(4^G$Hcjr%!Uay`Ws#e~v`1P2KuXdJzpDvbGFys((4)OAFsor)b zA7iyCTi?#C{a7oyweDXzwe|)xSFOZ$Rvb0l%gu=R-nlF5oblvgtK97!x?XQ{$bFNI zuW^9(M)iZ*eqk7llT-zW*dQZz28;M?#opcvwm&#uuN?+l#i@CXzy5h_s^YNrjXr(R z_3f;20zCwc=;G!pkt1b09Qv|!{RXU#yv@VcPh)AjqdJ19w{Bu9`H>@FgFiro>% zx2e`R7eu23GnxUkusQ8J7Fx?wH?5zz4vc=WKRLA`HDXm35}IwYpIt^)o|%gUxDIH( zGO85EvQ&1^2o^H_01Vy*lQV_6oev1h=e9VGsw89K@D2r1*{R+aOX=z)*cq875qB?YXZHDcSbT_gv|HM`l+2ex8ZO zlrZHcwFl?C|2u3kyOEkiGoY2j#T3L=ma+ z{Ty699ohn;ZzOdQ+p`mKcyKp%OgpKpaD{-+Z|(sBGuUb(uzAt5+=+`^lVY1AA}lJf&E z-Y~(L3K@k3UKSz#oT^J3>Z~6+>hmv*`HRVYy%-q1Zq5p97VmVu>ilCSS%AnVnJJ3{ z{2loB8!{~cm5I|rMF$`5IK*#Y9DX<4%$Fom#uu z=CWP+J0*hL?nIbz0pZ}Am!a}Ia)QuExF;0tR7yoi`TCidCd!`N5Qs^2pWlYY)_3@` z^ia;uH%h;G!Kn9>jsT0kyi}O0iJ>SjqM4ts?!4&+x%zCtq5aKGIv-pot4$^Svly6T z4*7A@ln&s%udDlAxGa~%W(j0f(CS(pGP~o4+vvch%NNby6c=c{#`(Oji zQ(qBx9h;qjWu~}f64?kbm z$kW5FK0gOT#>{Js6x~msBvV2w!%mqb!_b`Y+Hnofke7AeQ zZ#r%#j*~DMvRs5%CPzR}4 zUr|cZl(kL>dRgg>6Z?l1P-`LSUMDZkr6x({%d3>cJ~ga^iUeEKPH|hEZm*m;zsOdpMNn(K^6+k!7Fk(FBAn;fJvJPz zW6RU(&8YV0n7vSBqJ!6H(1YVpB2KjCexD;|t9KHGYH3SV{32#$EYTlziIL&J6V-1z zvfb@_vU9OLV)sRjaUhCFr88|Vk7lZWrwn^o-GbMTkYMZ7DU2dnCbO#6 z!Cc?{<)1MncVwCE7*dAbqnYgq#3pM-ne8YV$`6Y*b(%f$El#?5*k8jwUZ$sn5JtUgwPW zprdYk)&q}4_2$+FW&AkJvtFy^2L;4je3oHZ%}h0Ja2xKUxN%BJNxU^oH%rA(@ywUD zG{%6OZm73uW1LsJO)8j`{@h`NXY*i9z3+fY@;wrA-y6br-+oQQbfC8R8GM{i@F4>t zAC=z=+OoCb$hJnqapap5>ao-;39qi9f?Dz6Vxs zaCwN@C|=GqWDUEZNQH%|dV#|otdJ*8ettQGqfXLA+-DnwQM9H{`OwG3f}T9-?RWX6 zkCL-cx{um;1N&#c&E#cW_23Wry2p!Gk}hVJ7nASLFmR*n)W#5fQKNK=5^u(OSv}a| zrkqR_0yR7{N?o&&JE9WjZ^ZeT#M z<~AC=ginfb5_hQuUHhr$@(%RlhaomK=*6powWk^SlcD7^7^1miW;H?i>2E=Zr4_xu zKoa$V`>2qq_h-UNxp=OV+a|Wn=ltUkuC3IGMy1XgJ~caKMw`oBRh< zN%87EY2Rn!bbn6E;41L+1N?Nl55Bl~=yXUY=zDh-a%nEgQFz+U)r7eQ?s5rA~xcEbwrKmz*}px?;>=#aNRiJ>#k6+~Wk&Sz>2T@?e6 z|BJuV3;ZSAK+ZpG^$#2U59fEb;WwbJ052378$b!Yf(4*M(fMErpzJcRlu$ctfB>4n zZ)*JCs5)!_^|O7%X^Ivq>M&ml>s( zK+fN?;5WjnSCkwIX7(1Yme2VPh;ldmb4p<#W`iH6{f^}Vf%OP4P=eeW;g<7_(iYoz zxV1cDA#e`Vp1pI$K>ax)*HTyYduGzNTD4>`Y>xG>V&6M6h5bN}zpBo!M~^#yj({`x zA@6S=Htub1_GUg=eDZ(1r6~HL$-%G$DiPYD+gNnx=-vC_angue>eHN&m6$;D0G1Pw ztNgg1+1Mv5q+>LiAcTJ0?sftvo#}m~?=RqY=NzPa%Kork@x4=}MrSOLf<9s0Bh2{5O0VA`_&!DsPtJ5PCd@A8;3 za50zBDR7rBi`J%KYZLCBsSaMSbis#e_0FvVg>u7#j=LCEnJi=@MZw+pCm1n=3Enll znSQTe)Z(m0-<*bZJDLDgD#cR*i4gr6BUnQ+k}wj(u3$xBg30{7zp@5u3V^rX;Cwqp zddE+q-%pLDnPPTJKFmp|n*o4?w*OM$(g@ThM*D1k%u@Zc8Isk!+!aa~fTIZWDQf3a z3zQ z>Z+pkhd9s}#)M1mJl%#|a(67?0UDA0D^3?H_MmG2I^JUyS2C5sEE}aFwgjEWwNK2> zy(Q?_p&T96K+rrHrNKHlyCwV3tQ4WYtO!P7i6};&pUv?k;H!%NrY%=*B|#$kugo1M?akO7dE%4rBU)Gb7fQ zNqQ3x*kmO*j=d;v*-{-|?n(NF`CDsS`dQvHq4Xy`=*)%96UHC1I-+(KC}q?2QA>ae z3Y$-c#f>Mmmo$U%XS+>V;yZ;EWu2!tZ)Y!iY!E1e0?jeuDe1v{GL56}kF~3kKufp@ z9`W!+W6Z4qfEcUK8v=B*T&D?a>kNS(kE3I zimhnze|WGg=;#5{21t>%7{b=OoS%SDzTX_Cnh#DcF$&HlP&1Uv^=i@)M}n;V%d;lz z#&g%^Cf_!jxA-G9HLQ170|O7s9h5+H{=$teEg9S>i{ICcEWdxSq35e9oU29g{Ejwd z9AvkA9y3ER;8aQI!0_d&vP2=fs%XlAq3t#CF8=-gPt7*4l;Z?xKRHuN(>-55M#0_H z-ua%ij_`i7R4{s5u;x&bW;-~^f*Qi5J+g{Izq_I19-xAnOae-pAu z#g6^no4RE%Rh?Ps)%nm_Tm#ye8ml8HZ11u~dy@u8G5fNHigYR8M+h#NhKd?-=21_F zF!dvxh^vCux)_D|DTS=m@nW8g*3Afu%uYXdT91+dD5vlhnylTVGp1!CsWC681an;6 zX-JJ>qnIGW!pjXvuV_WPGcGx#oD>xWiwEK5###mQoatVWR=~fe?Z^++Zj+K@-cH{t z2(sAQ)s}6>jOgug%t@|2$aNNA8gx^U7zsSs5+fG7h+B{644h<{pAyF>_{L9Z_+4(F znHh(HgJA+c0V$XkeT0LTaXs}10V4j0Hlc8CUdZ!z#49gP0XO-r7hIyMRH`^C0vcgq z8g>#m?E8}5fJ_a+BxUU`r*d56%ZL`vv#%yp^i2M@eKk2wtoYGJR0Ri5Y|AVc$f&p9 zIk~n*dI*L~R+_9^EOsP=Tol{2N*wR)>An_~A~U1wT(*bfR;g-e_2S`~x`-R;bds>f z)S1L*_j=x`P4^HfVJ+*EJ>f^EwM3Zo)>fDOrm}+W@`E> zUqtmVJg%>d`|k3Eo@I7@G`m&{s98GR*mJ(}UL)JTV|^0{17j5&P#oa+dHf6mAvd5M z<;`yI;uQu$LckIVKLY;AYZM7UD?TR<2;3!v7Xjr&~SWRAy~;d`t1 z@J=XL(`Q&6!zaC#t@^y56zm@?4^DEX_?mD~MQa<|$s5p?<*cohGxs)@?)!T;BD4!) zV)+bBsq?yDh@a4i*Uv>4Gv8~GW`h+41u?HemRv`Kxb{xlWQWIem>`>$cQN#8u>u zVjC#S#>#LS`%fW{^4Bot<1;^8>Q&il|=>w$ruM78o4X#4zJ_7SemRxrd$Co~S7X&`iPX9fB@N?n z;3sSf{b8m4di+4($01W*&AE=S){pDP;k4oRO?%z;xE*9%uW{bLe~M9@2=~uSY<5@U zkF7x`sXcXS>)YNf+#$D#+SbInX{A`bf+k`L`#qiyE`TMkhQS(h4v9v~qWWXkzCS_& zFh}bmSlaAM?r84sDH5phX#O~LU^%&=PbPqFSWeJ0<2HqMiUBbHux-d<1}gNe82}#v z_#Es0?Y6;ZH+y0>9}zgrbE4`i2n}5g)|G&Hii+2lDc;Kga$Bo-+U-es-u4A1pBu z5cpd|{7)Xv&-*W)J*77gv)PB;KBIYp>g;R~&_`N78-Rg$u($B$g`x+KVYiufve82a zO+s_Lemg{z88KT(=vPa4yS8 zLa(%q3jAuMoC~(J&*t>)LW5&*5_D~Xc^u2#QT&n1RzEp0KdN31XBowYnXFcQUg>6- z1(D{^c`VA3kQ#SQ8B*wt3o@)(XEh5W%RQ-9uZx3bP+6akWuq5 zKA!fk-Gmbgf&+-oo)a*SeXGdVBNX?UVrJ;L)M$XCISkdVOw1?YPs<(NEdl3V0`I$T z^o|8Y-s`gz;ys-0xt?vUp_%MLm5S6j98Ozed~bXOZ_Y+)uzq(zI2>3Z7r9WSr`s(7 zQ19_c=L^(UqsNc>vIX6`+iPL$+RGPr6h%r!qat7oUrz*PXBrKzJ~Q(~L>nQt{t&5R zw2D*=Z;E#vd1y)6??pc#aaYL|{^Fdjmy%$ATb(_mH7+-aRPyHaUB0~Ajg#l&O=;MC z;o!UQ!2!!~ogX2oC@S5I-)%8=W^%s2HY@LmD*wo7nWSzfEMf(;@*vRRvMf{8ZCvb$ z?(hu&6RCa#r#8UgF&eJbS9ZWM9$6veyiwNx6=!yEWgtW9aVx40_DesJZv;}y^yMXL0@&@f>AoKr{3y3a-K63Fp%-3sn0lbXR;MT?#oH zj{%yEU0RzaddMAnq0mg1lOecF_>1*eGB#QgjBV}C81wkkB65+cb4YMkqRdN zQh=;l#!Q3CsZ;oqZ^N|-QH$}z$sBsUTXLBbY8Vr2V>Zmg)t_%WtDN&}DWiw$Y~s)@ z4FZeN$;)}u$k@rmgq_oYK!2Bc@1cQS@XB{axRnw9tSqXOq%ODSN2_}M^~s>n%cI+FOk1Bi0$s7{(S80@D*we_rV-$GX6=S| z8AY7Y6-S;8K8tM=%R_fKW8@`U?D=1hFz$VVW5ipK4^HygVcp?KaVio!$+HJ4I(wX2 z!d_aJ*K#0YS-T+5#MHgHAZ>S5r+;NWgQT%|Z4nsY z6*+zxS8rkeNy=0;R_IELPk|)O^XSQRJ&t#*R9hq>rDYN1C*I>ZJ_kz)cys&kL%Kdl zZiIp=4(1zt7clL2r5HXDbLD~mFds73V(7rv?5tKZDI#;SUH8L>Kq1JA6b2|_8jiIr0e5}p=#@x@$E<@ zpz~0`1zXTdN#+&T(d4JQY~q(2Nli)1!B8tu(kLj{+(gv^$ePcFDuNb`8 zEoy(?o*+dDy@?CiHL6GpL(dM$fi_^5t?|GufcJy|`J1`f8_L?+YsTxj;^)&-Op>{1 zQt_73dQA(J0X#zy)Mg76WfzVMZuN5H9xuz=0xgYfN)NH*1iZCLYKZkg)qag?-CPwf z5!8Xb49^;_+xhi-)h$^=S}*r6uB}@rTD{SX%C(E=p+^E`?L`RA1SQ4==n^*GGqcFq zV1;aG-ruEIF%+dX3|0_ckoCjgLWAqzkJo~jRS@%J>S-#|+0?s<%_ZV%3#Qe*U0J55 zn3+6uY9dAI@nL7{x^TYPO}RIR4X&* zzR&!6(fxHrLKfk>^7=qaun`^c0sxO;TaHy14_ojJTY_4jGkSB1fBa?WshON?Qk;G(;aq^9M+BV~9Bi1=}v}A+0 z54B=POf)g^0=Wn!v&mGJ?2BQiIcek)(Hknqdv$AKqz07yP&JmpZ@8;%R4I`PJ}|{a zPMu6ht5Qz%dK!BLETvUS&(sttmA*larX7nZw&!~fut~wDlPhe^8P8Lk`N8N_DE?KB zBmxmbF&93E6{w>6{46eIawXOmC@KK|Bk1d<|`ZqR%XV@F} zfBr8wvy6Gkt!;V=(W+7B_fjq=6=C6X;DLbOOIeqJm5?J;EJv&Cr{ibTcp>EG_9mVo zSY>k#`^TX>vmrVt_s!f}Fdtq^QKp~{6g1}K~iG>}?`|y_6 zqKfVAQ40Ywu^J{_p6=@jX#xjR@I3SdSmF(eEES#1B-s`cxUANQ*ahVWhp-slzAlNv z-?}h^tw(tLfb_5}&@G7PfD zRli4JIw6~APb1NEU2uKe?EU=3$rt@Y*tgRB5w9b0{$+m6<&ufEYMM^7uOkLlX9!h+ zRgB+m+cyRUw@*>itVTjpzc|)%lir@C3@gv}T^g(kZJ6Z0F#v?tY6^S0mIEM!1;_w$;0#e802)8_!;rHGv|LhHSjqlz{|=1Khz2k0yv=iBR^Vs z0m%435Qv@YIcLH1>^u6CPvB$c;rpY206<807d6y@62SNp2z>5-b{zq^c-f!*G(69~ zA|N}Tz@KsSf80p_>jIvyfbZD}^e5v0onr@(!SOtcyFXhK8WI=m7dX+vj(_2K!>Z>p zPQV7~)h{7l7#5S`S`Q(sY(_L`m|2X3D7QP^Br&eGkia zX%|OFwZ)}I?FE0oZ|zveXy(^8dHSd_63%;{g54i1ay(?lVb zFt)QDh!#&P${iA|Ft|n2_ppV$RHv{*Q@))I4iqC`;;{TKIw#@i5KL3HFL9xuU&Jo=@%YsOWJqa>$^l^ogcnXY#$xtj85DdxINWP(G~cin9-d%06ir^d4EU0rlt2n% z3k%O>X70zKKA(dGTB8pYkblU%Fg5F+&@y_gyYCZVdCMYJUbD#G`{3?IA5zB7%a*Ex zX1o^J>$J<#JlvKUuE$T!ZKC;THqAQ1 zPgB((N?)A0U4(<>#hD7Ucg54rQ?pK2)y%pSj4H>XaHVZUr*7%QMfNm|yIlz?!BPBg zy5S==(uWR#^d`1&6IF0*N_1KK z4H8hU7Bzv?5wL8xQjxB6=3s^TXkSum!QtQ?HewlWgDu{&)kb4w%$EF0DSAIO%SGqU zKFVRQu#%+%CG`;ijwO{q6OKrF*QV~cs}#i`ML&LIQEB-(#%2QX{KMHW9L>h_%_8RlG@kk~4i*+_a3*(vz{uWdHHV@QHz>AhCmo(-q-pr4t(Gg3*{^0|Q4W%%JUVSe5gT;{ zf>O^pV%UoGb}g)lcBXzrByyvon~BKe-N-V8W62}qYb=RuwN;ZWiR|eK2d)lkSLJK) zHU$*v3Amq|e;d%7C`yre8LZEFn5l-M+I6Ho0L~Y-?zK_12H1(JVgO!-R#d*7W@HI< zuy75de%sH*+)C6Wsv%7hF%ZcTt2d`$H6zr$g=q7bNu4l*gYHt~{hpiDi&@l)#TbOC zA+7r=Pat|c^GupFw&~l)n2ucgyKg4QY|G6k9?C}?wgOlb4Jr~WhtA+Z-rz9pblM$p z8!#4r0cY8YzH@Y)JM*&2ov-kCUjB9QX;Ilzk%j3e?$QWAsz}ax)<87Dko*qeZb(^5eWKqORflWdjsMG$& zG`0&bwJ>alAjsMU!>4AfL1ytyWJ3pc@2;fhATGeh`(@fTT$|I=}7=R;1*@l!)= zOW&rGn92;(u|UirNqcA69q!{J=7Wh3^BxVZicp^7~F6aIW!3I6SQ^tr&005~y$ z{^Bt{JDy$4ep`7#e>YDu8n~FcI$K#7n7BAU_j2+>izNU|2!E&))J7PV298pI5BebS z{LKalK#3&*+yD?%NfIFN95MYJLuEAhJ=?;}*}%lo$jbgV#D8b{@4(*^Fi{E!K->O5 zw!ShTt0q{O=b+Nv(%s!5DWG&W(jlGFJV;1NNE~Spk&-Uy5|EIP5|9)`K|&ft_zvNF z-}m0{hqz~Uc4l^Fc6QF5-F;+XtWe_iT^2?UiF%p0aLK_QfkHAcbck%a9E=*^xmTCX-J{{?~KJ^%^$Qv-&A{y*C04P1>IV;44%J~??dbl8ii$r#LhyHvgi^`BsUSoNO$$Z?(rQ9~ zRJC9_*VAXO7VHt>-(2-yyE}LVc|i4WfWF>T8#Z_67B@I}P%mu+8@mlFt|v5yjlgah zo;}*Vb}qgv=jw#?{C9aC3CbNIB?u;(t+POBBj+7LOl~Mk{VNOKjaxyR-2Vpza>D;5 z`PF9c>rO%B*Q_9W@d<(zxG*A++8U;S!S_FF>`=Y8HH;2?YjtJYB5N2uIBNw%gX}zW zSw^vjq1Qvk6uGt||Fs<#mSNbJc|F1PR(%2}g}!vN|0MCyHk!Zk@n4w?9E4~A{5+u8 zQ^;1>ZZH(^0)iy^Pmo;h$I$}sLnn(tr)ii@V)-33L~ee;dK7nSL#2 z47Z8+|H}R^eG5RZ1Xp=*sdk47DK|E>pXTg#Pu8y(N9JXO8f{^%SAFcu2-mM&CVF^=oa8uZ(1-m@G`jHGXJXxVeDP*tHT`uvhy*05#py?K+o`(f(O z2`qPu!S2E4W8Q{WEao<7duG;y)7lrm4X5CLJj|MGzLHNLcyG00!CSyF^6mZIf!qok zN?IP)GP;+FyphGSnlJ9NtO%>AK6>@dj$TLIsr7|9%Sy6m(YUPz>bC&ZO;FKj#g zpVmhB6u3FrU}5y8#f#WE$u!ZB(254rSAC5?zKupL`GMerKW>8P7|X@|wG`}o_-3M` zLCsGYqYg1(yUP0_t$T1o(WXF3g!!krolg#JkQpNKs$h65#12LsIC5r$#F@`h9LBBu z>OPUZ%4poo@(8*^K8mm-_Uw_xA963?JC<-_B^bofs-b>{atAU5gE4WklXUSQ}6K2QPzP_E#@RE0-K}~Ipm1Yx+ zwZxlpl@%ku8EX?Lz-2nJcnSqW6!QrdPBBoK;nS@o?g8x=Mg4i`ZA6~rmOaTH8U!wh zKMV*R>CGr=NYPH8n>((Sux>`}hrd64L&_$sTm0H?K$Hy2cd(Y8Pn3RpfLnvn?Se*7 zZa$N3{$Q3V6wAz7*f9%$j(ss3kkmxEZ^)Vl6ZpFtIm9o12=}D?>Pi{XOP%gWDQXOg z%FDOdi96}+OMG0<8F}`6!*W_|vuJ87($v*?lfNe-sr~83)-N0T3r23uyS$@P z;dhUrjVU10Q|5p#6{<9gUa2{+kS7!CSAo6oo*h{D&aczhXm z6TZUuka(c9ofm=+LU7Q135I()c&I?y6_^Z+uij<_cFYg`Z+aJ~M!Y(`QO`gDWFW!> zE_dJ|LZ8T>h~x7=U;k_cZsss(SKHOyO@h}`5A>dV^L#Vc30{ss=x!&Wn{X|3gAaYm zyM|xk|F>tCO|N?l0{oyl*I#@CMt}vx<_7M7 z@=O3HhT#8%P^f7L6F>*u9(6f0k3v)c=#Bh@9^i*&3Qh)qmgu^-Om0>-|2|eD1U`l; z0YQE+mH`l>_HuS}u(a_sbF+k|SfT%GVnJv&y^{T^hfE+nGbG<{20-Vs!$ug;L8X6n zmV^ahxZ1CHr4tu$fCUf)3z@F_h60+h0#^U+{3t8bfcLKwML-UAKnu)egIfJn!4)hD z1Xv-Ba4A75o`q0gLLj#qG>=1NDlmu#Kmq+Z01ohw6(GMx8sY$4z$vzWJqlmrz2=1Q z>e&H0@Q@QQ1i3gMDo}~;x;B>!-~>xJpuE6_8)^%EphW@+xgnSY=QT_l9OHyqEO0|@ zAqlTaw3ls#z!5G8WrhdP1!cG)dQj=A0u>DA1=zsGOV~rczeEptA)-P&*Dy`6?y>}B zCI%ocFGS@kM}df#_0OEU>|GGqd z-5C`@hzH0I;bjW~`XGh?R12-<&|KHb2|<*fUBWI`o4`6DKrlt{`bh`$zbsLS0OHpi zKMDif;E5na34%QVJ%yl>f+*zkSMnT*K($*pFjvq<7;2lX2iyh?#QeB_vpl3=WZ9cmmlfe))a4_zu~-`KAfqCrD0*c;56rwNQG@YnkO>BqA=Tn3LA5z5*UCcz zl~f?_kGg@Gf`Bqar9l-kE~I!Q&{`F$4ZMMQgD3ygLi7Z|02PRozdGa&5VBB;D%8|Z z9q<7EmISWZs%t=Oxzr$B2F<^0KWRXOdv0JRpsqSpE20GmTy|Fw+`4&m1mPMG(S9w+ z_YgI&OG4LrP1S~oKD&fD>Hw_Qp@mcj(j1Z2HOv$&xGX`A-~b9}Uzhl=+cxV$2J6-a z=)oL4NcbxaE9gNwe5i8`vj+!tAb~jbp|E7AdtIWtZabq7@z~G>&_MzNfaZE(4V6>L z%-sW8-@bkubJl~h+W->)19UL}8ev@EFH?X3OYmwgK;^t|1)&-WLUSMq=<*0a1JU#$ zOmb7`&vQdSag2P5o?7X6^XbR;2mE*ZFfCXk4LEWJ-gCf(g@n576GvG0Vv}pzq zlV8owf4M{ZexOVQmGhcA^g=882x7Hq0bnLBj6-&L1lgI(0qU;q6F^Ez91_e7I$eAz z=v4}Y$|>XQ2|Ws+a>_k+gY3m~o#Ol@e|_Q6U-CkN;F1M!H_>kr1LUxP6zOULF*9|A z;-`@X;0TVJ0N5#J01}i(KzMv0jwz(^EACJ=GALmQB>cr8fX+i5T0&NNX!ai*O)J3h zTF*qRH^#nlIUb>#r|XUi{l~&WJRqVq#LvR~+QRGL7Z*r}@-~pCi&#K;&}U~z*fJX+ z^DlcOaM1!lx-q#BFX(CuSqa|~8ec=UK=Kt9NEHm+M&uFVzpT8QNbv{qT`OofjXVaJ zE)%8&AAkUyv;wfnZ!~#hf*bQ(dlPho_^P!6)SA^AGHIk86s?490Gum5318P5U0{F? zHjt&{?18YW+AHQbJVH0#bUl=y(;vI`5Y}s3C_IihLs3i80SaS~EO8D1k>XWu`qyyR zS5N&l++Q!b5$eW&|5Cm5pubzs1bCr?BD`RNEr17>J-+6H401XGkvBd{BmAG?EquM8 z@pt3e)k%@-*3Nd z04Sb#${}qmSx&A#Cpxu%n7Zf27 zxp^)Za;^-E3f^~x!l~*LU;qT&A$r7a044w}7Rq=*o~_~r86B!a2BW;7i3~yzxL$=L z0snYGLwL{qZ#}Cwz<5P~;@=L%dv$~f3Wqo9x>`WH;hW#d|WLyh-(vGHaC;JrE! z^>2ADm+45rhrUo}Y`q}DUcNvnxC5CPm-jE7e`LR0wj%+VpFp@M-Vp8!KPWU|2SfJu z_6D$_APcSG(SfDjkfxITujL~FseAxT?3;f54<%?xj|3D8fF@yc9|+wp0EoWUz>U4G z#?wEt-?Y10e!J10rZ2?GJrGE|Y=(Oop6=j4U(&ATo`29Um*(g}7eC0Xj&R@^DipfRFnRp&Rzst8Mh) zg8+!V?^7VBdu)^fLU)D0(e3HTI{ZUBug;<0S{GnnFKq##v80DliX7*KO9-B<+kQ z#hI9!z-`Lt44;ZMC{L>i; zp{1ANE%Zvk*l=>Jnuv}j>*?vV1o_+!`q09&r5_2AG8g_ov5>hLLg`XzF{k)mv?FPU z%luwU_;s?h%`(=B{o-D%+RVK?m0s+Cz5E54X-1c|Sb+L0>O0GhO0fT@@9%$>k;r_J zkUVF9=lE4KBzC*L^&M&M&T!7zG)iyT<8@ho?0!4yVHFWLLq_^q;1lv(=)Rty;~&gZ z4*I*R+0w>nnVgi5iC_ElX+@KT%i*aav&e^UU=syR>Ff1-8mGt3UUfk zS-J2?%3xeLod`V-qVcNF*hTEKUu*cUg74$gnlnY|_mWKT2~JV5nve2xKC{pw+F-X> zmnDj%qY4}0qDKl$wpDo%>s!QXi@D`SER9l&l)BUsXBX_dS4gzgn0b3&wlMO9_+#Y!(<7QMa8M1;^d+8GF2g$Sy9JYTJ&%4( z2H~Kz_Xr@=2!>tQS$f6I`d_=#adLu2d{ z@BW=UW;`ou-hMgZ2A`ALVY1!yDH`_rKC)KYp307J;{chjZy3hUrkak7*x`!#I@?X9 zyoHZ#?rEFm0mME5$=fm-UWjlga#0j%uDro$Ap~eQdm-do76a zm_h$TsH9xpQ$h#rpSJWHJ%1dMn@-C{!-~%p7QLvMDuPQ~?yU2Ugtb#WxFgk{*{N*O z&P>QgSC~}XiH85;S-jI+OeGBfqoovNwrOaw ziQJ0QvbojeBHx8?B%4C)J%+Gv)0Y~=8IBQcG_>%!Di1Ff-5)A*f711c8^$s_v~?QB zP^O;MB?sQsX?pLJAdq1}bRKLf^d(zdU(wZ@+1&Bi1pA>*h&K^ov2dMlF1*9_vCjoU z?=yEe8c}cv(VG&<&cb{&17m~0)xuB40q}a!W;i~PFOuQhS~36fo+ssV&fA=A?}Y z)g~~WS30TlMBFww5kyd=RwnEWQ~FMnHIVfPzxeRgzbX#z0%+vL6!F!*cte;rW*u!=dEz?}_cjckQ=v)4bCgRtcP3 zzQE^ooGi5If25WgP}LpO+qp^D?zaD#%ggD$Q&zjd!@~*ppib9reV|jgrO+wV2sm&x z*yY;WelFe8#q4-XX5Ex@x4xEC&%@n#$jLm3>f?AELYkc9+8Y)JV~kBB8GBXTR-&4M zpbCo`?Tyba#tK-ZT&ne2tX54-^m7;lT~FcdIx@kmoX-jjUnO^vWA@_|zJEIqJeJ|H{FApecw*M@x(eEjP9*xaxrrkqLL`}SrN z2zPHg+`>)pV@qI}?G|oua!T?vG;I9vIl}wabMG+f@4Y3uvuPRG6_QF15W8E^ao#kE zz>R-!8hJgBH|d)!V=dbws7BK$%MEzSwbqP|LsjlhYrZwARC^_aN(~uNjG_QRnA9>B-}iRm>xv`TCeHkb9wOe6%XGD`h7{ z(fb0IgZ0jDrw-JoC4j*I_IQX9u^2aIh!N9zdxsk1gF?Jpe=1fY5uXxLjiXEcUTlR4 zVi3PpqeWK?Vvy2ZdZUhT{~o*EEq`Kf_?R^5>20GO-&9OD$`0jR4R3Mk*Ww|Ja+>pJ z;Vxq%w7DniMq$72d_jNZO6C%Cdx(1{wodMee`LzUpDEYho@~YMV)x1{e&w%9=nup3 zb;eF{2=yg8rzy>Tg@3~mIiFSX@(=nEd+`dK(4CKfeg=Z1I{G&e^9CNQW5R}_%M2b@ zM41O*X1+g6>|)#&d6*~PNtqgGc|og$Edty17CJL4K3?y7cVXuLb!j!6d83Qi?Pr(w z#;>)wi?LrNy{SlX60T=mUj<`1DTxxqCj2?G?4z`XJ4@61(~DDI5eU`Ma=7WUo25*c z2mLxjZml_MJUCx!kGHEG`~F%* zXS>8XJLk%=eDaUvx}xGg-;Gk+RR&n+eV<8_^t8huRJ3<#)}O|4j9rgks)%)Q*F(Cm zM*i-Orx?zm8L{@=C;UITgrpC!~p}w2! z)nrsQ?XlEZR$8`S8m}tPLD`+WC7p$jOHnp0Tqq$bIJMRpP$pg&v-mWZP)v;fX-GKM z8EsOjnu%?EmdbiT;+D}0;(HIGFF)X+D++P4=E709Pbj!6h#HuD{T!3}$7zLqv2(4e ze((D2x}9&MJh@n>KcGJ+`9nNC+ABR1`)rg1P}@`^?xG z)@4>V)X{s<7*&>=K=4R(WV-x&E0%KZ-gokSq_cKZM`YUyU723fxaRi->V&QETbeIr zdPC=56`?Lh#s}VG&7rkDirs16(%nHFJaPUMdcn-}%ShK0L-CdqhV9+Lwc9g%>&+Hx zzwY|tZpzM@g{%L}Pm1K=2t<-)Uy$U?u^FM~ti>STc{4Ai`$LlY052ZaATmn0i#u>) zXiGYym}%CEO|78vu-nZw>9}{<3trSRo^+qB=oafc>3fQqcZ@3Lmlce<{Xh6iuc{S| z^N#1Qk`ExhT8MH2ScUyRAxs;7*DOqp7;r@kL~fIdEK*-5^GqzuNBR!8(Rc~__V63c zp7S6)TI0S~^gK4LYo)i&*_+U0zK2f~1F4f0nqD*Jx1mR1eJ0#7$Pud$-w}mBZA0d{ zor!r$qeqcJ;D8}c;?MgY-_7KMVQxq678lD~F$ef(&aUH~)SaoWwxol;M{%Y!zO-9$ z$8is2SGGP}B&_u#t&Hu4FYZMb9v8alsfYK);=j#cC}6Qpm3uSsfv?Ns@I^wJ(P`cH z<j;zj$J$dOx>>UvV~qJc)zqqRn_S}<)^a4#(U+gY%2|)CoGuHAD+&Ps?ZQoeqH1ONYKIS|>T^%?J zr_AWvu5R^EUexY1>F8}=>!Esm`vgEj-?enBa*vGoRrz`{pk=7_`}>vm-<5AW1j=Q! zI2_qFeHuC>97tB*J=XF}pqDeDjv0+9*Q_0XyG?w*~&%R(T>!4k#Gk|d|nDo7uWfnnvY;nA>?$(j+su2{rC%)1i{yEi=i z)ypf88HFMGP9;4cae=lxLIH`tuMw?t919!K+9Y{@Fn^TQ@1sV$D`1^GO{IweFfv%+WYyOTHs_& zI;BVSSWS;>4YKbCGKKBgSX5H+MH`1OtnL8A>=i8oDlHA*a%LMbcQ@;C@ zM&^(kfEcx#PFOQLQd^!Z5x&5S&nW-!^}Zx2$fH1=dd%*ke2yKcoR- z2d12lBHw%^gD;(0P_v{I!td{xi}4Chp?_+RrcbP6bH4~~dHdF_jF(lQprx>JAljbT zC3D`a@8^tmqC>qS%QBAu#_$%0TcBS_Yhwhf*FK%V+?=6+PPRy~b9xEu7OU!hcy0xg+b4KhE;**T6FZyc9wKW^;+70OgwZSbei|Kx5k9trKap9|@adO1>QSLOP zS$$(dr~QCN@U;1dc>es0LL=YT@k}m1kohk-#hi0(acI?TYYYTl!tpNdz&Dz6c%)L- z9QQ?|l{wCe0{wma@$J}ZQdaKoR0f|tVS@vw{wS+&`{R(6Uqz4KcN0PU_}I3?R@XXQ z)tVA?avu6%n_kp6t(64FN!3@mM`{axlBz6X+x}FvCV+LmxRn+a0DiNk*iv9&*99F& zmJP6k4ZLc@i+MNj3Lv(+(D`xuu_BV4=%b!> zxO=nPR-jFwhO4Gs0)I)hQj>?cLL!Cdx-QxzW%KSC35`qy!b{?K>SJ4sNxEld92$6G zzo^eP@-H&c5kd;!ZC#48OL<-1Z@y2O@yI_ON3ziD{OnPP;23-mSvVzGUaL97=$@d< z+o;wdQZZcB*Xfx1JEkr*s`IIx@nqfh!UWu$PB8z;=TGnI8LNFSx*t!uyUQN`iHcNy z+;>PD5=&BMho8Q@+c<#Q7(EeR#OClJqFwVqGjrmtwdQtcE&N-SnWD}}&d-G;@qk3cih}AwRWNK<^5x)2P%UjPH>g3V8es-T~t?mi?7}w@INIx_#z~;*x zU5)!8E9Ff8zL8NWqI?79o zpXc<;`CTiiqby!{NM>2o@yg4Q@mD>5)ib3%YApFP>U@=&+F#~El!Xja^P~GH0{lJJ zcXOYm?42zu&MvfiyA|Khw6aR9&UZ+7Bvosc->TO|c0Sb8w) ze)*Ii;&kI#!@>MgxewY*t-?s?Gds61aisR)7KDJFoc-tb;B$>mztFtA#m~Q;mI)q) zd2Es+aJ}!G`jI~9_dv;?HWsyAJ^Xu7K4HJIadG!H`BL0276r8s){_0c@@b>svtaGW zFZ&<6okumJ7ha{cZIi)N91v>o9>8*N-W7Vw83%1n3je42SH9~qANR|(|+q#{d17AHd z)Sh)%#zJ#X@JHOgYx;=_@qHjg8=OdS{cJ7J&HUKHlk2x0Ro21smunRr=PJUg*BhUEKXq8N{KO*D?HRy$8w80XVs zC;M-Mg=U(!6Z?#(V%kA}IvtS=dB-N*bTxOm3@b}pJ07chFAL}i4*C8m9~L`HL6nMO z`B{HodQd957fwOS&8lqG=XyJx)jFF@;H6w!Q(nh}c5b}vT1+Ni2< zG`nVEUUK^B-57G!IU&y#LDd7gmkM|xFD4o%p*so1U$wz82Np8$Jy6{6aN6=E4NNlf z^jSH1X1S?DWpo(UYcrb;TJkLdKe=X}?;_n(6mBw^H-_)7NwnP$aLKxmxZqpnMDArh zvx%mx$v)|Nm=QVP+>1+s9grCkXjW&Z+ZD%8?iTIL&GeKBt=nS=?d&38zV(FCbtf!!d;5cKYKg|O+1&ZJf$Hgo zri<0{S4AGcLxsM4llU$%;N`=L*yd3*co*?~i^-8f*p>iJ zy(*>&H4!J*$HwLYjsSJ$`@CIQpTFr#;8il?vHQ|{Dim=pB_%o5-si$Q!x=7<6M2+} z^XUvhyv3l3ICnT2tAdu(di`PhPa;a^(4vRm6)FfgkzpAHc?-vtu}5;f?S3Z~k2rQz zg2Jq1CgHj9(UEMFMU$sk<%e68=q_g&b$ftgE^OLwr>0A4Uv9gvZEG=|zy@~`Fd{?rvqAbrN*ZiwYDs?!8 ztmWMjn3rE97?jWVWdIpj>%P z|5N<(@XdvD%z*LXpuq~2CR6fhTHoK! z3vp40pN9euKWk=ZKYlFizE{*Me$T$?Pix@!$kbHEJG?x1F3haI#b~xYk+^%%bGWH{ zc9bVLG_z^rOqHE&irH~2Y}wd_+FYXFsLHWl4A*qrHN2&O)qME;MX>XEZyzF^$w}Y) z6h8-%<@<4`aV@s%`y=1>kOY3Mh4!gre)6PnjkjG0>FO>(bu(43n;Jmtc*f=F-%Dvi z9k+`pF+(0d!Dlz>Q5$%awbgF1&88KQ>7c^a+A8S#Q%_z4e)@UuD0K5om(6F{{`JbQ z{O52gT54eQRQa)!MTi-RSzOLRwA7m_r2h9PfBb&ZlU?-M+>+7fP4%S1?W>Gi+m)x- z?WU4PRHR~To#Rqq9-L;<0%34OYP#7pn5zx)N}xj2`9wW}767FT(&ch8XWJFnJHk&W*GrtM$!DHCV4 zb!xiPJ_!8W+7cFsH+COp-K}}HsiT;8P?q&Y#&2)alfc0E=zU9FSy-ul-{g}3pRmV@ znNphO!_3p4)Dm7hx^Fo$kP`B2YqYqM%hUYim!^9c>IfaL8RI^nNOkDR50RrO6Wph7 zgg;9&fGQL&L)OT=hH(R6;XD+F*!TqTUX2`N-uZB6UEd^$;A<4kI_;Rk1w zk4g6J_%un{BtAJ_4JTc{-kQ~bC2$%7hVvQCX4YAX@)+wDfF?{A;{ZT{^Skyki?b0=mXfsKmfBin{ z*9K0pl8iNQJm(V-tx~z~G~%RQ$g>VFXv2&^#$qeM->ama5zC{dm_1pmF+^8jF&-qr zf9hfS`sZ%j`}ff`INa1UP4|)pRKGeZsuJ4FY$i*M7RTH-`q(7H_i)CAqr(YHaZtGf zo>L>MMuts6PDZE8zbnjiOJnUj1hc)TjE6$J(`-`3mVLRtI1d9{=5PP;ES@w;gAI-J``Rg%Ga%#@x{n@ z6rV?6JYu5jDilY;o}+x#!10&?7^0y;BbO=da@2zUghUnb-pf=!ZpBwPn8@ z&l0!p$C;@7{O0^n47OCN$ZC`Pd<3qu<=FJ(Ac-GUN&tnqX~*!4JvYBl$M$6P;)T!_ z+BxFsa#d!=wz+cbv(|UE`6g=;FB$C*xPEqMq>AG!=t!}}9g>Ydl>YHx=^eL^70y2U zoXC(D@WN0*-~@lN{)t`&e;<;;7s)q7Ete8jYnIDo>nYCfiOAQXLIr@Fk zA8#vS5}}K1!{>;=x()C3o?F@u}}FO3Lm+qk11JOSg1&MkD3I<^bV^yN{AY(asAmpey{npVZOSLmugKb zyL`I6{(fRhoK2UaHm1by=f%bM7TooYFbw?!!#7x}qU&@R0ych>V!4>@#=wW1`xUpF z4nIs|ZGDUza2hIN=9?a$6x8Eh$^x~0BwK=@CaKPb(A>)J>U^_3p<8{rRa>j1Q@FfOKZEUA$C1axjBbC76{%V0muI*_ zyw%bs!OJ3?{#;cRS(Aul8ISc&|2J~Q2qiRom`J$vB)U8pboFAqvK^`qc34n zFVziW&x&NHa7yzZNhutB%yU84Qp@LKvu3KJE%(~dwjxAbegoICqf#AC-9i1s-S|1u zsTi= z;u@O`*9AU*J$V$XN)#vYr4(hLnyBbD_Cl;$L2u8S#MUscTbl6SWYb%sAD9tZ4BLZ9 zx4+NkQ3~!G|BNj1H@t0tTf3ywk;l`fiC7uh7-1!Bp}idH1eS{Y*_6K}>1BsOtK3M# zH5Ri_DEvv9e67BIdQ++h{xSKT!)cXG^qweZv`Zj@!lX;&xQ;5{Y0U$ zEH)XL(6wdhohk>=7Nl5G9v!UtZ=}iNgzCb69&A=jdODe=b3a;G^>cQ}CM9;b_~fTh z#>FnjrE2sBT}#(#oy+RLfh97j$lkC?S$Uy?w7HJd!ilx&$+w$pbTJLEpPpzuj zTtjf9){Y3j^=@ld7O!I>Ve5EY{A^Q+e|LMBD^GTZ&|aH$h6yiOs_HBAFFELz_GwML zhDV;H76>(=@R-52_0lj`6WA$cg?)w3Ssq12SVATN=8-@9cUOKd|LW3<0Y=TOdsguC zBry=sCYTj;oYBe3fwK_Jvnce!KU_E;Aa0A_!epph|6Chxot4hYk>%%P{Y_ujEO$fy zQ#S78fzNl&7ybiH;#~UAZC;sysX>AnfOw=jXDOP>&eP-yIn+bUsnepI_Ad33QH($5 zr$S-Q`@%oSWGwA8g7+~39!UqS#V1WOARkl-e!#IrvS)jAEtSnve_MoGOB=_ebN^mA_ zX|zCuqfT)3JtPYRc-uJ|Zd^{@Jqk)OOQx@~s^lh(RFC-kX^eBkN?#Ya`O@^Or8}~y za7>oa=D&X1zCZ?t+u5=&rP+NpGS-rp@l`I*GwE%sz33<3V; zK4U?(R=W16ixcc{>3ht@3~NIM5e9k9r_a<-+$v`I@fMp>t-OtE;__`%GR+ zR*~K^jLUPYtanXGmenRpL$8ejiA`?U*;%LVfUh!MbeR0Zd3K`412g6Xg}7($d;3Tt znHZ$VeZ{zPUh$x}kumyj^j>_|K3_F;6PH@3nN_wXA?ku}E3en^GrbxRsI~nSvVze0 zyL4f>df#lfG#d#kEdF>ZDE#MVF(v__KZ~|=cNlRVeb}F<4@s_cOAw-xy~l=8T!`9D zL{N;bLeK;EIee3HvCVjr4)Afe=Cf7aiu{e3N84pq%^s~DYGlCzww7$#mg~NxqzRvuYX*$2?P?~aR+v$Uhtww4DQd+ zqR>u13!F>1UvoF4XcQ-3ZrCT3Tk%h}Ub(Zf4#ynw7us00ZVDeRNeT)*J^F7Jw6!Pt z`YcMnnp?YaUcc^iy>B$QZ#nMB<>hS)+DcbxAivXswWVra8Z?S;mTl`Bh8QC3) zhgCZD&W4}KxP8rEal}gC7mvISIhMdNRG@<~N>B9L%8|X+Btt7PQY;glMVXB*7ZX@yk%90gX2!$aMq3Vd?s`2we=T50s!QNpv!;$~+r*H*`y*N!Y+ zCZ-mh-1GBp7^h9A{`m%z3;)D%=9I~e30hp_g6D|C*-Hbd+FS|+l6{8-H1jpIKYn%) zE!HkxCtt}(&&ui)TfRgpBpVZeAsGkp|YS=;80{YP11x2pj8v2BT@9h)iI zCjy#p+wk|nD1`n>?NvB0FdF|vi6htF606ufDwA7yT*9ULe4a0i4!hgu6Q6>lj&s^m z5yR%kIH+>8^EJd_w4flnROI&@L3Ua7?~k2D5c)=0=b^pkIoUpAQj3~|y5}sKVaf9z z$WHCz=(!K1<`5rn$u!$gdd{TxJWyfx9m7Y>?`nZRzDw|l#W_vNt#KfoFjvp_OL|I< z!c4Db)Ti(D%|8&5q~Tl2(4Ay*OUg*pXzrjOc}!F)*!%-~{nlQpAbC_3{gIB6^6+rX z^O&J3{WpVbb=G!vmS6fNl`-#rhOQv3dye1mS)gD**d28LFv7<#+Fd7V)AMXLgVz0P zY^t&*JW;cHZ*0V}6S~YsxO07aLZpPb$-M`<4z$nuu2RE^%*phdU=NLV2KIy9BA=&8 zdgI+YxvMiX?;eJ`$urtVB&$q){y=B%F2cYLz$u&w9+=uI*L%fMz~KRCl|y7cEj=Jze(So`uSz#bCM%Im9DDtP}Qbp zSG6cPuL{qzUzJj8uhC93(#hP0Dys8T>RQSY9J8LN__7H4vRGD>;P&xVkn)n=b^kaN zgE81)t5^8rr6u0L%yi@7{krD2EoJvYHs4lH2zY(|JXBRzSH)mxtSvhGrALQPPG*47B0>M|AoxKRPI`Y;CZ#C7XkbM}(`F({|rR=^=;%)evtS$mG zWTw<^^(cAN8fAp*!>D&@US!_pxc_O00Ddo~%MW`uF?cTCbx6wh!3Yh>$3nGwa=KaM zZR^~rKK=~SDVGlj{c-~F%nuH>r3C1jZEiQ+MbN5#xs-~$mt#EQC;D1ni(}kcS73SgXDCe9gc* zxc1P@TJ%;ljZneuP`qHafV-|ftAZ;N7ol8)Ja{?-k(u-KHJL`K#(R?KcwB=%+&(lFizfzU6=tzp1KcA%#OO&Lps#EmxDHQ$e-cCgu^e>h+3)sUn%8 zhU7rnvW|efhqxv59H)gXHJyw%wO>h^k5P7fm*>?5<*G)xbz(;i9>BwOc?$snI4prk zct^-mh>uGcoT~ze0O$ZeY#G|ij8hG`KzANcH{sRiECT|!FK;0F_zv(vh3+Ndzy4RR z)&O85f~?^HLA_@)AVv?CR6&Qq=9i$&;0IOEHhQvUz@;AgwK~1q^($*Y7$RuW450>Y z02;TziX{m3&o*@W z4CI=QB%F}b)Gb#;rx>2VjqyeH{P+|iKdgO7u2=Z57bDiH<1aJLQucw7`VRBbF5EP; zYFN?12yw3oUsnwgRi0Ktu74IeP%Br5E-&wa76x2V72$p7OAD+;M$KJfSr5xQop$~Y__<`$Dkj-6GVE1}t<+nDMj@@#-=dr!RQ7lo zlnn<~IPrQGTs8g<*I|UsCkxt#*u~Zh_vOB^tRwmp31Xq_it~k+!1PI$Nyopw zyeo89@??(UEqr@w_KP0(X`(-jOl0g)jUeTGzi#oW#;kZGo;xo%Bnh=4#)2e?q!JK3d-jf#fXr&j^%6adsWmSD+n#^>SX`IcvyN&1r0-b7X@**x|yaZ8R|r!*wz4EvG*`N>To`n;8V<=cFFQ^f@bFagkC=vcIVv{PS5=`yS<== z_QFLY>M4p0Arg#RaexcHWLBhfFG7|ODO@us)izBWL00Tp#6g8CgJDR4N9#mV!PrI# zE@S#VYH5m0>4v0y`K%3fwG@9|b#liQB!;%RrpIbw>vni@g2)(kVLDj$A+;@Ui|V~v z7}+{_AAZ1lbaThJN>qG8&|~p2i8zh?Q(mWg9$T zx|Phh(x}3@U)*(!E<=#ND#hw9!@HfJj8NZRoPb89`QgPQ0`gF!BMFWllI@{f{Mpn9 zq@BHVFYWRd@?)7y+Zk03@fnU~Ow0}}S7Gs1iRPAfUz!II)EOYFyHj9f_fmPly=$b0 zT*M*`-h6XoHKt+Tvvt2$VWvh6(ZL?AWXzxwSvCx&a6Y=6(c8v2LBSe&qYp* zZR5L(=Rupf!JPAT$!y7Z>{~nELJ5Ao4g6tb^QGDANpx(e^Ob^vc4qs4RhO2Qota$Ox~iVQG6cd>MEKnp~~nt&3V1wh^UWT`lgypcEt4$ zl^lKn`XW~`rRABBHbO5#?B3TZrdWR}1$E3F?tN#x1=s{TU6*&z8vBEJeQ z(q`I0iuM@)8b-Z}HE%f-;ak}ccTxkJGZqQrNrV7KmB2z>E8NyNg;00^m+0NfV{xsh zJT>~*P@7v~T}wr>$xK*V&h6c%7^dSvJ|tVjj&xpwKlgI`rDFbIB_->vm-u&u>mKiT zQ|g>>k!4ost(USLEUR(O|LiVl5gLn5&|O_^ad<-0O8Ig<=rQ3JZcIcsf*9$gSXZVP zY02bKNnX^7l~`9Uu@EM>GWPn@XelX|4CXLe2l{V|eV>G%P!4&E`jN#9b#&(_y}O8# z*5wiw5y}5m;8Gb;@DAZ4^E(a;0ejdH;%>LUotWW?Ag!SfVRbUxDuBD>$YgprbZh9# z$DiJq;o?MlWP9(&M6;~lICRsiE{!m{PKhbUkd}GdG*-9w#dfPF!;c>ObE6Is(T1;< z^Djv)%<9klzqYPBuIBfP(?t{_4Q(w&rMpMd3T;Hu9!NuJXzP=bw6wLS*)C~nXwsAh z(k_XH7VYtSuCLYS^Xm_BB5w>^x#4TLRm&9^7g-Bsg3*e|I)M zW+gK>D{m25ZL&0kS>)kZd zR)yW)GBVirzT6DiTl04n6)|f2Y9Dgg#f}ZxmAiFXLuF_DOkW$fchM!wI+Y&BxBSKs)lTtp2db!({>85+>gRISB$9J}QzH6TOesTUHjqE2Inplr| zclI;1n!|c`&j-%xOyZ_(=yoL9pV>3izSYcr_4Yjb-LDqkF^dq3tc;)825r*y2@m@h znSyNAoE~{+u8IzMpRVpsi?~#910`;4d{Sx5aOVTMS&Um=x!;-%Q`5!lm+5=QK5StR zRHfB)Q)`FcToKO+S;TV=>+i9@zjR05XdtpgxFNsF z{$g8QY4FP7$m1_n>FQ`2)jjt28gOg$DLb&rG`)^I_c*AdX?eHPao#0i=er>`6m7|T zUuUl+C8EleFljz#)q9_kr^Tja54tl`=)4BF1kcJOn4h;e_AsZ$GS2 zJ*60Hs^q=(eH|{8XZX`+ zsYoaxL9D#Z6PLsF=Z#=DA7ygF<5a@?PLW{f+>^!%;M=M4nI{6F7P@*3Oa80OK$ zo)LSCdC}IWuFbZw&6al)eYS~OqMAe%PpH<%cHP31#w$Czd6mv)EG)D=Q!eWjl(bcg zNH~ylp+T;pJ+{+XbUa%`>#nkKxohs&O(y@qzg73JW7(0*t1Z_-^SK08Vy z13737y8C`rT^;>!YfiUB@bLhy(09M*g*vUA!(%tZ4rmJC-HU8Mgp zK<`@CJ*o3)Qy^yBmgB?E&z0Ssa_v1((|=t|sOqexDZg;}rj7Zxhl`z7+r_c*M@sE= zZ?28?uW}6pnVk&Kn&yFSeo4-cbM>PP%n#PnR;!tXU+XPhT@W`qrZ=)MazaB#*YVXL zt^Id%clW8AJM$hLF|T~Pvh|GRWy6~i9}LfJr7L6TNd9V#-d$grQf}ZhVZ@%-_hrd2 zR9JXv$H+`=O`TlQMrgZ5r%t)6i&n;EOzK^s@i z4JU_Gn=D(sVIAm|`9hiLzjbo4Hk?c3a1-OCfdJnPv20euNIY}Po(mf`N{KLN>^3+U zIOK3;l-^@Nw#;dWp@0G6i2JzWR4TvR7xqO}ebs3aL%cLKVecx${mLhEN<4Da+U!UEtyH+3c@->kamO39CfX12J{G`Y&4Xb#3=fbWsMk zTnoEyI-_H-OJieU+Gdu@4j0MjPX*CeW^WX{X&~gVrP8sa9ZV_6g?O;i;+5JPF{2(k zLs8Zb-a7Op?v4EV;VGNfqcfT*8*}yy4AH3v#9!RqOA%BG^{Rft+GwaUHvgtC^kNZu zLMY|HN{o!;9gHZ&L$%*hWmu5;q9~hkS10M!B|%Nmd$ixm+*DT|RWHO3I6?lo^M~q! z%U_)~inuB=DXe6jsl5S;uQ(N7Avjt}KIF=f-bX*?u;Q@f!Q)U3s!s~WB*DWsROTz0J$!|!jV&l~ z3!BsJf$s+%UPXz~v;@31^t6SXMwp$7X)IkXZz(HS{2YBS*2wjBpi9(^v?#SJ;`i(0 z813!*C!Qx2S>>Pax`Hvz?(OE05v=C3sEk7?vSK3O+^QLZblR1qSwB_!R}N#2esM9k6ybdM(?5#J3XBcKWuWFNyE)J zsg1XVaAEHa4UZpMkIEN=juu`sU2tE{vMl*HYs7jNzdQMczaVcLbaZ(twZYEiD30YE z+u7Ms{QWV}Lu)m|&%Q)YoaUm-S-Ib%U2!dsiM6L?k&v|bI^RRa>S5iAd-6F^{aIa2 zgUDNx#(M+LCo@{6&#Vqsx)F1k4cZ*KJTtE!d%nWT+Jm=_)2cn^J#e&4$im{$55-G1 zy>8}Q-cPT4?S)8t1el=<{Hnn>81L?z4KnAN$u}FoOntz8P7o^`iBcci?PdCM$aN#n z>Nk!ly@7AEN9#o!h{bF|UH9iuuQ^nUAwc2C+sD_(~Ku6ZoRpDL9IE3$K8+-ZL9VRemr@a`afVp_?IxUOZ6&P@B+zPGHi zEB*PgOA zr8l?qtV*>7`7Ux*cSHS~%6sjPsj-$5e z(vOPv(GIbsZsB3o@Fwlcy!6Pbe@0B!MShM;q-vZkV~d1HGW#vwAl{pj*zQxobWz71 za_&5p%zl^WSj~v-XJ{Z|)i;$mAQ#bnHM6M$f5_hHhW6T^BscDPshx@PVBr*5xeK!0 z5KtY@{K!diQS{#PNQUv+D^0B4g;3e;5M3eb)*}{DUzFxP*?R6e9T_I#XBv!6IBqT_ z5F8cbu(!Iof|E0)hx2i{*=R+pd%Vot>CA#-OiPu};mKNFnJr1EG>#cnrcdfDlUQK-88LPvf{ zX>rokndXJ}7m9dZgCqMjm0irYKIfJ`k~L~B5?zGb-=x4)t-5{WNmOrnPPNT- zbgk=3VbOvj(WryxJ>ral$|YshAl}p~nGSK$L6+Nh2CU3Z z?&5A=?J77RTmM|;&CPMx$M$o*q%oEsQSz}vOYg)SLqF-{hVn23mIW|&ADbGt z-5_mpKTyE<edILj? z*L{26rFL!03Y(iKhiGi&uU18Eec(QJgkS6uQ$w_>?9-Z)g!-I_+v__t$!#^It60llpr8DKF{|ErCj5AhdRFSjPjbz3mCha33jXhPgUy9C zL+4u}gf4j{IK@S&+FIs*Xv!J6h{-)0!=zxrTX%cLFEE9B_x*mTH8QA1)nIv|V(ZmA zH$TrMj~sqEdvE{w5K=xq{$-jHA;yx4vp=4k-O+3BrD;FhG4x?K z`!cy)#(~&8hfRF%#|J^fHD}-KZ#;q0(UR*tU^AJ|GY%0y;aAJ>{KJFENW02kE!d~Io*>7&|ldHMY z&hGJG5u&wRaA|j%A`RqbOz#_7iE6wP^D$gJ-DDwTU*3gF?24P9h#PFLxSWm^3z%-F zES?X0>l@*KlUZ)RJoToGZ}s+L8yefYn|8Q{Zpgt{iEyapU42bvb(xpdS2UI1D&G0_ zS+uhAk+BkCi%{*k;gx{z(y9YSx8u4{Q;~<~H#Z%*^-i=TpZ1<&iv}&LIX%lE3vHK` z(fs&M%ecG>$Gj`@Wh;>1@Ymj~qQ_xBY-UV%jPpp}ynbHsUhc`6HQ%C>df$Xc z6Bn9k30BAMt9}odnIJa@wW{GyY%VTdQoL=owWK88R6{zGQu=WJxYv^F1xG!tg*?iQ z@Zm#-pTqhiv~+sPAGJy@FI{1+a%9jr{>JXCcXBJC=7mq=nzBNQEwrp1pphQm*1Y_t zpn77q`jay0mGtstmt6V5VY6}L0R>(a?V!0rj~sP_N?lQ>&UjH9fu=F@%v1H9Yv_j@ z7E!XbpTouGO9$QiOZN6?;lE2O?b&S-ld`{e+q~9Zy6Tga>L%wu6kJ^vUdS1q#wi$^ zGl{#%yw0%9anPH0x+V*`nqM@KJM$yaV;~~)bv+?!@P)9Y+kDMFrUP6Bj9RnqHH^tGZ0_0WA|7~P7k4SLZM4@(m<(ie1l@Jm!AJaR>+n`)rV6uy?AT= z`)UrHt-*yKQtAeUu44@go==u)IE+Wm4Ls5rkoV1Ie^V3b+ahYn)ngH9@-P?jrFx@{`sOsvBgNJmSw`^?R#&%sRUGViu>heeNcaK7pC%n?w>@IRo{lm215i zIsJm0jTxorssm;7PCMY)y-*T<<<$-uo4gXT8*rawEeiJSZAUK&KzsScQiJuk_+NRY zi1wxHIKbGDc)_l4Q~hbC7s~F;!T~!b&m_@)7-i(Vz2CZc6YT>}?Ziz1M{^2e8Ku}8 zKgopjVH(ss$lG=vN%kRG$8vSYHY)EV#bX62p5oUfqBX~h3rl3Y-&kB5s(&5oE1vUW zELL%Rhx|;8g^-@bgt-NTe{n6n@rO<9xQe|!ZQ9iw0wJF?<-L53u}5`=|8{lHS5v#Z znOb?ZmXIe8l~NT|_TfVXtg51}uv!jw$L4Kuj!w71Oqg>f_XG&^-fGBs5f%M$f$l}R z*qhIJQ};gGk)De8kMD5NA;~Ir^$FRbtb!}YzeQM}MYZxolfCH_p%nW(wx}@+)GqLG z_~XupL!mE+zL{RNQzsuDaxs1pEpAUN3h$5@uiAos)$@%eQfGX}tV+*#*38gnii^Bg zNw=!hD^+x4*?7b!fz_S{_9&fiO`nSnW!<4w(30ed)@h2aH(H1pv$k2dRQff;pyAbzGT_w5nkNo-BmWbC95pG zIne2oq8z$IN&J#h<1ft) zbaA*@bEnx=RzI-zu{`1bvfAG~tBB2^(X-G_p>>Dm{N?B6=6f3QDr3Fo@T+m!^OEz+ z&UEzEFE;FFbj%XpmZro5Wj~AjsP9p~Bb3%@4>>2s10c(4RkhD&;&+QP zrXSS51rja>raR7~uKZs!}FIxUtq*EeR++w!_*CcN7vKCI?M@@Ivn(l`ossdjn| z_60<7J=G45)!9I57G^Z#49(+|lBA6jJZHMZ6*JsbZh+PQ7KW;AOI;I+A~ZjVzH*W4 z>d^h~Gc(WMI*Xn=Me%p0yp*a-G{W*ZiEemG!|eVpY*Jv*{Anz<;EhK%TjZCIj4vlo z#|yeOJ`ibOnte0WdN9T-1?s!F9e4ZAWS)n*>x6B~TkA3+czWm3E`Bmyy&&(JBzL=&l|lxLNI?&y8U>S;6mmRABZE@^IXNa zWAGEjuODaoM@F`2v$iKHw$$pSe_Qi^+M~m8s5#3j67zVluBQQ{l5rL7Z<Z5bp3=x61D#r z90T8bfMaB8fmIkC1vDP}i9vtljwfLdGRBjz)J7ZY2a|Bbbu0w`iznf!Wlv#rM9|g@ zj*+NcPyV3;{Ku2XNEU*|QgDUClPT2Fng0w1V<|YKeo*iTg(INJ)T+Ac#u7kPMJ$8_ zK{skRAs*Zh7>1)z;A|z}@kGQ}JOQCI1U!-2kmToPpx@UHw1K0xtN022#mLlhxG;ir(A*8NFab?1o4I~00fU3-41^{SK$%GdA)eYr1vZ#~+#rESEzk&~14@Iy$kaX} zFggmT>rcIZ{}>-IA9B}3EEcgr3Xxh!blq6+r5gktz=-h85P^OE!!78S)dRXpt+EK4 zknl%NzePes6RE8iV00veri1o>SonznMy=JnZY%^2jL>u5&GF+*)w+99&sJ zc{ysW*I#tde@=%;pdcqC6Oao78-O?o<^OPtfidGk=iL@-B=QqgoQ6m0`-`wqNDQv5BmX#(0&rAwELG`|8WZ#QG}f* z5h(w#^%orxPp#*=elwtpF3)bQDm39)W=ykHAROV!`0&pZJeV0Z{~!5D^W5$bedW zdi@3|6g*s6sip$H843s)*69|N{}e19VMf705Lc0cB_pmPz^JWT)@_D@1FNjZFc_eN zFfjpdMI=Ko)&Pr+gNIT817&St6M_JG{YlWk{b9)PKo$dhCtSBc5J35D%>KlG7#xuT zHx?Kii42cq!S=9l>j*F$7Jd+b!6PX^2fpmT?jR5vfJAsC3ouxm4o(L!c;E?I_@W6g z83PQ+bKN3fECmY}C%}NyfyI9S1YhJu45q+y0Svgs@R$%_7`P<_7}z3gK0F#2fnV6~ z_zw^gVXQ#|3@J}M1}H3iLJS7(Wq!1Wu%0VfT^AUsg(-^%bS$OJnGBd!x3Pk{%NAie!R3P!T=8ie?$Zr7NJ}~XW&oc7&6d7xDry(;FSW#Eed#2gR>vx$Y3+Dz>)&&5^OLQ zSUtFP1{fA@*@1;ZJVb%ao&XmokUB`ve{b+tU$C&&>v#GyuGb52HgEZj?=63}b?Z9Q!_aU;f&S>9pab$m059tZc7Gn|kJX z-}b%j{td}@=@uVByAFPmM_)z(=S*C;dz0WKH}j|;R~D5&w7a*uEv-)sir0R3_&j-> zZ=EA|gxf2;^qoEVU9zxV9%YzWdo!za@&yT>*8uUm58g>j060)vh~(Fsk~fEfW%s`K z(1%?)ZAauvC$n@x`F3~ZVVyY-+8;ssXTaNK*X*A=f_)vJH1JW&t9|mJipci5d)}MT z-ystg-9cMsd7VjgQ=bR4>5Fuugme+BFK^C*d=I)z@H*r_<~J&g2S$ASX|oIYSXYA* z5ySUU4#{4?RwSGB1bZUEC(i`y zLZo+33*k|WZF0-S9z6p=Q<&8O^SXq`4p~HUN3BMnbbX4g{i=M9WD2__5FG1MVK;Ep z134M4FL4O*H*}*FiLm_6_jS_Byn+{JudX>rbrjv94~+vRe$b$wR2A#`zLilH2rY@I zujhYpL>`$hRuzj@)cxX4i6CdrP@#g$4?tYFks)$>82{wD^#M| zzku?`Jf-Wx)+*vtQ~EXw6=?Aw09qb9rcK)2kef+*fNe1?xky_7PQxJK3>&ddNk4bU zPyYzM+ptGo^ngz`paIU;>rQl-ERT|BzQmrnKoQw1%&NaPuPu?WAfzLZG1jM8SFVei zW=|XcL>IA+{0G6YY}Cd14>%%-N-ViTNh?I#y2GkgA<75k&~jzC#+`j)1j>OqEVf`C zfOsWv=hY$<%rFlaH_Y1O)_CEZwNx-`K-w@L;AYjumm^257TCCt2{xs-c`KRwYSTS% zlBXXur4=^mSZ09yHHO=PV=3CTvqr<~0jY&B>i~;?WSMQHA0)<1ZR@OBt1b zbnVhCvDDqNq>d>U3&@%wkurW6q+8g)X}DX`*kHrPw(V@9e9l!n~~(_<#ymYOl`vdv@o5P+Zx#PSY!UxoBW+X9Y&I zFvmget6WSwq=#T)Hn6(D$}n4BU(jumqN&x@M!3`H9Frb46mg*EsyVj$-t*G;O4QBB zvJytekLpGSKas2YKl7C%AO|rXEZkz}=PhH+53vYr?j= z*bu!XjJY3L(9*aifry=!sXA`+DzkkTpri+p(%oLwFR=3wk^c|jVeBCqLW8u=9J&n! z#p1TKnL9EBc6Sk7W!SH+;y3((Vs{n~CR@7g+1BTwfsw;xdzjiAh5OpeYEoWi>t;)| z#N`F63_Dh5>(8cMx}~H$$gw*jGIrmS7QVKCWY<}sw`gjx9jh@7=JV3p<vKFZZ-;;1{=nHdN zS;Ef?L!GTM+|n#V7%X>Qsc?Ag2|KtTX=LM1Zbb9J@ou6cG{--|yL@I;`S?l|PvW*j5(impO85iHLHypzGhrLo4 zBz#?(h^Cxx-&koEx0j~wvajSYra^O>TAThU8@gVRc+-rl%B$pVF(u4Kmg~yPJ}?FU zaZMw*kT2i014baRCi=0_VE&g%A>!8q@>Upox0O$6@>YHB5qUxpLbUaGYpi&3R$wBU zSt!=Z=f`u-3{W&O2@|+W1c7X4aQ9PD5?k}eivi!yr83U9@rOlGcIL3RMe%xyjVB9v zvQUS}Rbt?l&E@!Nm4-@2H13NG2GPEY%1 z#C>|tn_IydL<*ZprB&M`=8w8B=i=hzKAuO3|5E8~bXIUv16@067~ZLI_rj0ssEB* zG{nPp@U7bZzFg{h$;hI^cjX~_R`wtyomLcy#9AwV-fiQelOx>;QO?~BP5mAm<*mkh zz@lD*ZbkIgiebTgw za2do}gkHBY3cO%Q8o}0lu|Yr{=qxF0777TzBmEW>s^Lg?W&SzF(ZExkMvC)1MpBAm zeBtfVg#%kB++OKX+B;f41mVs{mqG)s-|#6zI-g+gcmV`;?Q!n`b(9He@Bm=KbqYm- zTapj)zjzJ&7uWIp3*)%B>M)Xj!PEamf9#xp(I7k5Un_Pl&_C#oos0e77F)0Ws*Rit(4G_MTN`_He~~GB*Tv=s zKDVF*He|v&hLTgP=e}nb1a+Xs59oj05!97-DWLqPAA3+7^FRGoGpYzMBOHKY9rnUU zy#H8a9Hb(`CJX>H&_11IyRAW7pLvZF49`1X0H)9(4d9Bh%k07IP*hf`i)GX1Etv^a zNNslY(5$XBj?R%kgef&XT&>uyI6Q+jR6!`?>H6o#yL*F9vVI}#fKy7LC*t3(6IoIM z+&@#518b6{tjBW5!EQI-_8kNrZVY|bUupxCEzG#Rcdb&%a)M%K>Jfc1% zqhWpiY%xI21#OZlvytv$=p#Bqlw!=uLmdAROM!Z}(FzO1El^x%lH_Y6$H{)8nshGt zHgbDn5~Hr;kj!yqvS!0Ju)DF{)EmPZN|>!@DdMCW9VzE)_3C_0z53PZFXjM)Ll>vQB9=`Ofa#6^`HTyDbKq*LJGR;p#vE2Mkg_Hpt_ zdl1fQT_y->Z?s`u?L`Vm%j+kcEJ^)pPT=ImIF5E8h_^r6kZlI%*mGHTpPo3or8IeR zzzG%*6(v7(?49eF_!IdD5iaUXcMPV{7yT+J69<_lK;Iux(EK_bl6SRtk`>Lm3Ov8# zXPvUz=7ioB%}l6WTiAZPa)HQ;>N5d@BY6 zueH23Q=U3f9=T@U_ck*HVQ&_|q(~0Mi zDtBGpNmCxVIvr=Zq;35(K`L2JTStniR+9d58@pPaTJawK=N$~$+mQly#S?pr?9-V5 z6=-G+Hy3r*t-WbVl+TWNA{jq1!U4%gq;E^Tdl@U=p*W`bB+Z_Pj^bdNe5~+K0PI{O zWjEKD*m@(*(2}S0@!)XD$`F{)ew&CBZ>=cQWfEV$`$u(UlX&t;5q{@|?#zL4Akjx( z$_=E0je6Xd-+vyUnecI!j_Rs`bwG}^nb6go&8XPLt_W1+v2hy1HQzA+?9qann;nwr*h?+t6Z( zUc|F@%kv4uj|XC^i@h6bQNn15Ni}#)js*`|n;|Uk;0A)#t}0Wu@w_ca;SZT?Kgiv3 zX3>!NzNam4r=lxQ?;b!=3Jz2EQ^kqf=EQRe&~QN1Wl)GIPtB1l_>^o-WYfN=T6@gs zp$z|88@{3_KZPaSu@X*^2`3up<^V;^qMT|F<=!BP&ORO7l6}EMtkc7shM+X=(qx|Y z!&#C*lBMzouI`v?0|qDhXVOF@wMoSlahisW_9kXrqc(|PEFuVy_#L{}er1-HGNK{A z{w+q4+WAgzPlFl)v5uc^OF_sGiHUKRoSyo+oBeQ0QdfzPwG6k~;?h_&wKr5}Ugur{ z05pn+6z&zDe2!oA?WSF27E76=&BvTSaeY-E96DL+nR-EAL-I4z*@A=v*^kipn^I+u zHp(&5=L}Mbem}fZo7{uhDEJ!qLk_C&-!;k6Vj}TX>s+k3Se>@Xt)gH!hc@v|u0R}= zCtubsrbyQ(TW0Z^7nUNubT&}?u=$zI@tfRpO++QCq80(&P6w)QkK&4&R7R5>Ry0XT zMGJ!vh}oQtcfrOYuV{+}Qf721sZ({HLF-aol|fV#SD!#M48K=%ML%(u8Fl_tC)qA= zaSbsKUb(ch-JaA`w<~E?Hg%4*&hT5?hb-W1GlfU5*p75|W33t#pD!`-!-m!IY0Tp2 zX!{-$f=Xoj-q7rF;ni7jTsTsPqII0LyGgf3g28DH=}r-iEUu5du#cUK5l0n-+1&yc zB8ToM6JPwMz$&A|oL=47WW$GOV8!|T%u?yg03;zuQ|XR(2CO%tLjLV;FQ5O{kcc6& zX~&3&lbM1MrsvGXC+A8T-@s!yEJ%+vMya_Ds7 zP}yNY3odBk+UW3|#UZ$WZ;L_rLVzaFfrZfIAteXhBoFB8DZe2M^si_}SE|Qs;aPE8 zOhS2m0nfaj@{=p%mY}o0Zqkz!7VVL{W^|kwJ!$na6eKp1SdUEEI#%ySu?>i;L7uRNsS|2K|VMT15LB`b_%i>J}$tM((H_?L=E;DBQaf z5CdLBp**89+QQ4RSN(##S;*39*JF9hoAAYck6}_sh@9ZO8A-T%@TTfjd9W_N0b*)a z9^=ar=S99gqik^!2De!^v@M3tY)N?>cM!?nb-mlFb@t-)^Ix zF9MzZ1WHE@_Cdl@A>`XEYKRs})L{TA+>G}!{WVDxrCosqyu4M>9W%8n-(jkR%WYz& zhc7$9iw>}qT%Rv9)6PcYI#c*KgVR29`u%L|=sf$b?k;6{TvRtV!ZKY-6y)jnGe=u? zSPvAMKce6FD4aGn>;Rc;SDR4TEv7lR>6!|Al#tmWAMN?ckevQz90attBp_45e@$Ng zNYkL7T}6T}1h0aWLW)(_50ePx-aM=()ve(A5sHddj#!!biubZGz%kzd)4_SX4)H|2e{dEM`p z4EJMSga%JbZE0HY9Lp|@R5Q3cd71*5b@etN!%Ld?%ad3LYn7**s3C0#J99(-K6)(l z)QxRxJH{-}U<1X=t_u<6YOXVeZu*e-H;>*YzNDiICKva`AP+;LBBq|arI@8ak^vL8 z)?eKObZ{3Uo+D_b&qo(xwP8aidr1YM~vb8cmvV8ie_P8?S;?#b#Zd{SVSYEmBK7w!%BG zKBtHgF2uLDnRi~fEZ?!e!?1JC?I*A{dKFG?n7>m$?Vm$`pFY`x9!~Dng1an)i5C(k zFkjH8gmTMV{jQTySj^to{oT4Ci(6N6X9M^bktZ-bVBrFJ{*nTozZqa2NFDeA3`jtm zdkute^RRHU@qocVb}$zU8z&IL!@F268~22Sc8HaIkPBZ2TlmKz+i3Rr0_SA=>_D3~c=!JPH=u zvjGqUVQ1mu0U=h(HjSCn4vFjui6u0nizI zu>4?SX>aai`Al$p?}AB^T1OQJ=^?~o!3Jb6ht?*GqL|*h0ep3 zlm{?}=VFIp006HfIsU#GbSAdWrXT-!d47z4^80@}T#Q^?ou9in{*pU7Qx_*AW79wD z{ddpLBTPP+KX-6KU=9EP@a3Peee~LC2=zAPtas)>-4@-GD4b$J*+Fzfn_IlB@i4JWIY+S~y8tA*9lzI;u+>~A(4;qg+ z$H=@w;tJUxEqMQy@bk^pheU8!zW=wzu3Y$zf*;z;2?B8T-LIiETuVbS2$CaWY*ruN zp;h?1ceftlenhrBeA=q+{mJ^xNC#9ML~1O#&H9 zWPs!*x@KPgAPu`oR%-t%At-*5?uD6`ZUgc$hPuA7q|@#TsT!*uwgKd?s_{a3?e^Ve zm@7Z~kAgm|xG#8%)*=1|(fW;VDO^R|ehB1&`@Ls7{(4dqIwVb3Ci_G3YU9i4fcz$o zez7&O4@t(l-~0xC+|(O(BX3uF(#X@jSGu0)86ivvRb@r%J}9uP&q$x7TQC}{njvg% z^>??CXgi3!CtoLoM`TY)P@=fskt+~|=&uhRMCbSW@8fIgg@p|V3L5?Jx4shC@}ka2 zBAw*D%Tv#BHf{F1bVA-r^7TWr3 z)6A0@`M_4%ojMY^9)gGW+r6&<))DaIq!X}T>Oy@uOzKI%_ohebT0C=|u{u~LjcC>~ zM|UKHs5ge+RtatFG}*ND>$O$6Cb<2@&ee!2_Y$H@pn$0$%cFEb1z0$=B~De`uNILm zx8QWVZ%1YIcEcPi5dni`+YzCI7QuN3Q$E-V68`Hxgz#&)-y= zN7a~7+l4q*&TbpFn;xghhW>n6_`k|6km0B3lH_9qS>5ng}%+r@mjm>KL_l zG1h7JF@w#^2@APtpUemgan9f}zoN}v`h}B5Ww?v;^=pKFDHTU=aILk2@{~1wBCKVv z?OC)Uw6qNC)FQkz-*Ls@E^j`LS9iK~vHRJ=QSXPfdzq5wM^GPHp0_VqzFAJ`W)RM< z&yFiwjIX+hn`sj#BVGwnJ5yI=!Oo(t4X;b`l=@_;4;mNBOJQ~zC`l=LTtFY`qpWl4 zh^tEqm-@69{=v-4E7;%>N-{k~-1JV6WH$LzWw_HwoPI`z_y@Jp zu03LDSvi*#o1B#@J@xf;C0bach`YMH9aF#>gh|&${EMr#L+q-y{&UL(cCibJ`d$-p-Tp=#;`TlFcs9ur2pXQwuDZ@pT9{ zlM&kaq0EGTMl~c)Pn|bhHK4jUqb-KT)=9PHv=}nDwq(aTodDn3ar7vh=y@^feU5sv zzTN0(c#rd;<&-kKIE8qf)K+M4w^GO9aKuq&PpAFfhI?<=#m|RPrUi!DR1R0~>z_Z< zYzUmvzKDCO-k_)wnL4xcfSR||RJ<8wVjO^`egW4n)x<3GOQt8+b3E?MRbZ}l$+3Up z!^E;%^6J-n$rUg9)isesN*a!`m)*D;v-H{wCLT!US3e{veC>z~gw%Qj!(~(~%2-kL~9X7I#DBF8b zmo@bFO6b7Zo|n1`IdY>I0D2uY0Tq^eu{y|9kHa z2%;um;C%%C;EE@XVq)Q?mfjbJw|z@Q4(n@><9|UlX8I7H7VNu%A{bl8`UXLO&Y8G& zQ_z&G+@8eGY!zH8MF_eIULLLCn2nJC&meU`MFV&j!N(S?s|EMW#7p z4j%$MIvc&_7CgO?TO5 zH^@oGWqkH2?8zV4ioh!%7m)Dc=krvjASv_g$i6}Y6rp02Q=R}7VP5e%5$PcT<2}CE z4fDCWQXEXFE^LBxa@u`^wDvs7%$?zn~XK~6* z6hmiLeCgVn*=7qpJHk#DWZF&JAuXvFaa<*!K_!L)VCu|Ak0sh6&%O~nXg`cr{KLkI z6_vi43u3>bKLIZI>j3Vg_dtRev-cFZw>?n>wOHo*%Z{&Clt?rjg`HNK6$huT$Nj5{ z8maXl9&r%!WysI2Th!ut>iN`_{lrpP8 zKeQ5;eoV~hm-GWG_aopMY8>pjruhz$O{)D!^BssjDN)V??Fw@4qGKE*vVk*YE4$=s z;6K1$;weq9w=G|AP-a{+yO_Fan)~7dh|Oo-JGDkCk8`P&h>-anM`KODjJL2%#7Ty8 zj=sgs5oW$yCaSPyL^~{`#>Z(XZ8r;o$ljn{vTmVENN6e!+D_F#U%bqx=Xamay!Fo) zZG_WLpe!_sWo~(6LbEl=I+(bMM_yI_+H*+pD`GYRR_#n4QwE2YcD7s^@0Q;q5lGm= zEX6&JhPBLyl+-)b&}7i)M98>Kre9?&E~G$1At^BJb~uQg?E}NG17qmk(2Iz}Otv*d zuI+ZK0c7B>6*l_{C@2jX`}b@AC{Fcj%5zcK0hN*Pca{pMzam0KNz!_iYX_qVVJfg< zoBJTsLo zi+yS_S{$&ugNi)4i}pJEQ}gcpf1R4VNHh)I$?cNRhr*P7kQ3 z@AyM@lfcku+N5+_N%{Pm>-%1;s35#-L5%9d_rp@z?V*$2GA3OLEJ2mXZZ{S;b39oc&1@s@G~8S@FXbB zl7Rm5w*SQ?2*l3v%qIWmIyn=J<|$!xH~?M%B%y1bfdul8dWX)cYOiKzX>4y|3Is#` zp@J}fasVML1pvSTaQ#0qjCugqXIEqNWqon^v0n{NqcMUn>UzZ*k*_9}6i__lqY?G} zeQDXRtbHH)&bp& zV~f^OLB017?i#^O8 z%L~r7>$6sx3_;m%ov)v+yoDQf=%ESP+sBAKFa-K@!rwUPzvYe;zDSJYqU;7IPTSwQ z<5#d*-OX=oK{w1j?M~|6-eCInWH064JVeXvvX9P9Z7~Vzzk9ER#O`Ks~6=OI$RoifB6vSqv?%gZ~m`z;b-f6RY zlTm2|YL_W(QYF7;jtybME5df(y=L;ZIwe4@US-xCdaPx)dLtV}h%bF6dHs?gs-amE zrc-S0j@7Cc(JxJoAPLRIFJ>m4T)ciEHlj7e$pGl)j+Wkv9%a^prK-H_um1X#W?BO3 zxh4}=1XP;q3hH&aCWwrysEBvZi9_P8BeHt$^&(T#gZ$OdSX#a7T~tG= z3)g^W)wq1du%Ggmf#$-~aWp-<-VNNl0XvE!bnkb{6p}uDZ_5ZWZpap9`K*+G>JpzL zXfBewXi7=osUQJF$BkG%7u#u-XisTEQBwvtyNdfRj!D`{FX0r)r~y`l-y47>NbEpa z)`=3}iGw;NA(DUC*qmRpdcFOIscTNER>pSmi{--m6Z~39-vbXujMq3_W+pj7B*-?= za$Vttp7D8_dY(8|S#jDRONMYn-Ja=1Vq9v2*4~)N>w*x<4KX`)&br)+*5;;W~VJapRnX<3)eT?oF`;B}3wLO~~V*5IF+b>??jefMV=sl5F zIMK{{chf_dqbcLl4Xd@AmKkY!-qjIm2>|K%V(W&jhP|c+X?Mv=Ns&arvhZO5>K1ZT zBq;F0kcUfyue$lO*-f8q1~x8q>b0@VB5`K`MK$*2*f4s7*w5-AEM}Mfa1t@=b+3Vy ziONDziX%kQZDcef+v+0SlaHqa0iQ-2Kpf@4R$;)_{cFW(};jAuBYu4Kf0W3C$J z3>V%=3M6Dgk^HB!_eN7Cp?P2S>5<@uoAI=`Rp7CqYOs^>iOBNLGCE6l6L8@i?LJX* zL4*`lBp(fAw@K-bs2=ia}PQRK}N#j^?n;YK!rP@EPskDVb#$8DG zBtp2nv|ES{Zn7UjSKvB>HpGW4HJFi!`CH#yS_dSi#J~8REahCw*}70tx5O2kl!ZIu zc&k(Y{8Y*Cj*ga75s^!MOyKC7ndQ)0F$31kv}rKbrzpNR+f7WlC6G4(hs7WQ zvwGT3szUs)HFMC%xvt9EaeR1EpG^8~0XUv{^!S(-FQ! zC%u$@FUsC@hy|-{y9VxkASc_|LJyNODHJ==Af^2j<5o#YkuHE^o07BK(*Iz_dU2Vy zlU3%m@Z)T`M1&>S9*@TVs?eB|Arg*)G3gJb)okb(5)O} zmyY;8p0&VZ;SF$I<)|vqucXwNLHh{9uV30}^k$K1v9yI#iclIdHMp~QVPQK+JPn5$ z6U(hH!4By~1bi$E^C(nDNv8!Dj$6ORBl~WR zV7VA-KKx>--7!`=1>?b|&`n~+IOv)%M#UfuHq30qGp8S}dCeIK0D z*FH!1`1dJ8+ulhd)2@6JZVD+j*kj0V!wyriBzLH#`J`PZ#br}7UU4#EJt;vQ<~H<- z1fNx`8RGQCGL~zf&Sbk$I*U=O^^-SBVggtZhp?Zq=@sU9dJ@U6cXXCF9U zevUzdlBBcZJVcoAb0CGH1*Tqa~{NAza37+VC{{7ca<_`qw=iM)Apq z>4XTT_-P{a^HltWmZ$VkTfX>dMK`atfN09xSIR8HXFeec%r7!MZ+0K%5nCR-!*16= z?Wd-GHa?*RJ*IbPolpVqJJU2;#IvpJZ0Nlnwfy(ryG5>Skc=PvX0JAZ%hEw9&L$x9 ztF&gJt@+<@C+g-qe~QHL;n}!h082nOJR8?PC_LfEJuxb)IQujHelF8;%qK+xJbwY~p8@PMBz`_60QyH>`0oh(5AOa4+WzMZ!M_lkgB!x~jD!C>1c&9Y!&Co3%oG%0 z5E~2RS%U#`us>fwo)Il43z(CeixbEJhOlrYOg@n6gPt+`|Lz^k0e)7L{)cza|Aq4Z zV=W-gXPnLPKdoW8Jn&R73MK#@ArJQ-nF_?o@vIVY@jQ!3&%pd2nF;{}g23Vc0DJ@< zcF14hV^()L`e!4d&$Y%L#>cOGXyh58Z*2Ye2`s*~z4}3UItqt%(AWaJeY8_<`;^T8 zgGfLgMC|oOM@GiWQ7L_8=E0lS=h6i)gbifL7-kY6r|_+~lRs0QqQm3%F?$yV^}e5V zdAfw)bM}2V`1YGc=<)9SVEUWEZ(EehUIV05TBuA#^7Qo2{SgUzLAg;p+c#>{5@LiZ z<}{0=NM1&D1Zj->S9DcKe05qFGz7sK!&Bsp| zQ5b(BP17q#7)}^JHoS&9iVeO^&hV|%9fE$8vb4fw>$#i-p*SuA%teYJ^wn=(A3>j6 z-?U;yTPb^t{_I`);LDqWr@tAUb6fo?eMYO1#%%26v&U zd&*R-<|}3;Ub?x0xk3>u1yZoiYhgu3o|QAZwUkDC!3YHkqbLX3=9wmBOrnVi5tDQ% zV8$l4lG2E8azFV+7MGdyfA$(G&XRT#^j)gVLOB6HPqUBYXf+3B1^+a72y!tPR9 zM_rIzNN?u~*Jtjnqf>*fPpDapl1d5HwfCwaMlwN}BE$BMHILWC#iUl32wKKU=|VS? zY{>(-UwXCyP}1IFBePuY!C9Jt%@KI%hE8m4yBR*J8D=795XN0$A$;!fvk3!8c)pDw z>{9&T`o4M953Ry5B$1KSL8Cg9%%Q+?(~#RZ_!TjN$Pb|72r?oabL<%P^RA%`HG&8X z)M2^y#IY}te^6s`&w#ZmP(yIbse6u)Wet(Q1-jjS_nrc4eh6~-w1MpE3;yhNUW}M@ zG_~l826tjugLaOnA8w^C1-KJo86l}zbDM<_1~+s z-Rr-njj53YA%M(gE-oaL@RXn#xQ#rjNg^Z~zx^zvKw{!xwQu8GI;(qAnY9}RBAG}hO5}tGcev0+eeIh~ zDB=s5k{rsmDxt0e&hr85C_P(CiL7#k!Y%gQ_trl)-X`{=u%ckD98s10V)eTvLagjTxj>m0T#wi1to-Z>NChJLNe-*5);>-RQ!iUbIF&M2367nk zHC%J1ODgdcbhOq~)mlJb<}Z#MvW@$Stcj_%?%#Zvg7KQ)?S+KYG>;9O^l`lU9x1}? zbh{Z{RR#>628#n##Igm+qXh*%3Zp;l_iijqV>B+QvA03RZl;y+l&6wXK_tH(1 zkMDftGN#eDuq|;>U!2`pjfkQid*S&YM_taYl&M84-ssYI*#in7sr3KrdzIg z2#QPg#O6S3nRcdN+;nJqqnB8J6HfHC*w@cek4aXHd_M~(r^BUpaTIf6C+%l@gAUyi z%g;&iY7F;`*1Xe@Lj$Kpu+ygoNOiTg+y_e?7}PXe`};3rU6~>C@`K`4u5U7G*h^34 zLSAXpCeB$z=Z+Q(WAuzA7$~MEp%@WF@oNt@V4FldW1314T8-6|t?GUa9BT$ye446~ ziqZ6R;(+m-Fe&-^(}wWJuy)b**M3l4y|aj5Qgo?ftufB7sVKP{$K~zce*ASB zB%h?Y*K5}|b3LVR1>CxL zecT=y*4>rK7@{ez`g*Y=QZhJ_&#VG#Bt$*yUPz1kD|hHdR#pjAFxUJRIq)=32YP}F zM-0a{-RT{qwD;rUPsEk+3ovdL5C+2MpwWqTsiUAG!a)GJVH*aWEx|%5C?Qs{&IC(7iYkehbEs*o0i4=j0R z_ZXNg!9#6H(9K5birBbnhQTnzYp-Q)EBY}>}-#6kxr)b%YAbYX5D&(r`e53uUxZ=mGs)SHBSB0R;7#p zoT#?urye)BKEjSlW=*8(=e4+L<8^Z(ZQtVdZY7f)#4{-%_6|5p{_bgmi`kOB`1~d83Z0!IHwql#+jbuD;<&)WP z0X@inCcaU64vI6l^KQ#De}bZNJ#@808mDPhvOFktGm_8^$UM6HybTWOU1@gpZfiky z4Uu7k>2zI^dj1;n4*cAs&QTweJ7(7?dEZ9pdhC6ewxHL_s{&1#xW^A{Agi zhp{(xyva+g1F(FI*8n&f+iTYJZG{$q0GJL3aJ?pppW4*0I z+;DF+dYdh#@(3OrIJ`mnn4m-+HO2Pdc#(rglP;EZ0FO;!^EY~%#+ImhX}ybwwTMYt zlu2kr%dj1NqI(a~H4Z%}+O+%0y-Hgd&NF%0I5Xh%InOSSSk%okft}(Tl{Is=Ry-AZ zw?@`CwCx_BoC`_ujRO$=@)r=tU;YAuB*dl2!hX>Mr2kb6pdipcRZstor-1&X(Esw3 zf6qAo%TpliU>5f0;RotvHg z&rxd@HZb>}LMs*?HqJj>=eg1i41#Si0?1*dOaOdD5Cp{jhh5M>wMOi=I0;sNGF~8I ze#hw={9v{OUq?65-)cw{Ws2}>#vMV=Smd40Uu+8-2(7@mnpg8hO+9%T>WwEDgrv zJEwSCg`K9}X=~C&(3w}$OorT<^DV6 zN86O>zq>?0>prbKc$<^~WB`hTvOt^8L?3NJo&*Q9AO`c8F(C05h#PNXo%Z}35zKI1d z`#wJ_khZx=wJ7BjKOc7wLVX%?Cd+CPn2@tuSQ1PtL_^i`Mm#wU1`b}+8@U=0GE!s3 zOfpHGw@q)>Ci}hUF7Y%c^o>-Jmx}I`zp`k+!e+g@KUHb}tx5NNPF_;x*yA$+3`mJ= z>ZJe(yU%;G2aQDrMdjMLBw|Shy-6qLMMt;X`#Pj??PVoO;quv}1YS$Mu4PH-)eNwV z-RN^JQBo}yIdx^Pr#pm|Gez8KmhO)EjXR2amwm98>=%WFK<7sR_mY+t(9+o^KRp-v zn3cCZ2##>)Ju+!f!7nyq#Y8>G!q92+1xI>{ji|Ya5tLokpUoOg@3=M+f?6h-W>YI> zTcvgAdv61~u=ViHN*oCmCvQgKrc05*ABdqQrCzn5ums+=y|0OONq)1`#Y?v1MMNV? z81^}N^m0y0GB9P>WN5A>Z$wAiye>$gQZF=7@MS6+8w=m@i`ePl)P%qLh2UslCOu_H zNe^7f#@s0rkPjemNsXS7VqU)g6vm{Q|FinkGw50N?!?19v@OlpjDiu`{^jRDLC`F zG&2^>)-h=FkzC^#pM8`og87jvK4?cRhZ4F5B|9sGPt3waXFejA2*Z?iyqKa>rR#`V zAl({%-EhxBzr{v+ETNjzES-&ta@;N6Hn?wL7V0Pv5!d*r%WhC(*+zR6$q8@ohkLbD zND>`Y1Jp`2O>=KFt{i#d!mgdyXCT^<5e4yg=a3>gP3})qN^=?XzubNkfIIaeeH&`V zleL>!;HIDx6C0xSB3+QN-)cY<){OwPk@A95rjh1z&;7sqj*FvO{@?U0u`-pJg(&&B-}t6nFPuL zYGd72P8q`qS!b5fl=oozrF}z@$+tS2`{@K6B}%=f!qi-WoEULGuDaK8HY&0UURt42 znonc66-;yDdyx_+$?89auu%)Yx`=k|^7F&v_a!w{;9n3Z1LJ&fTX*OX+{^@l! zsj?`MD(Z9HTdgzIPyfLmKeiE^MGLa?UL2eaK2&DmbD%n_=IiE?*S33C>v@vu`<-UC zC%=&H^kAP5LTljMkR~YEMX`q7YvuzSXeHGvJ^_sJc@c2QTHWgLu5{(}D}H^%F zjle}hL=fpC0xBsDl2U?*D4o)s(k&_c4&n2>pU?OA&wcILot>STovqoKy`$8`yqtV& zTs+*olziNLY<&NCL|-~C!>UPPoZx#w$eea*!NTK%tZ2~nGZ!BluK?sG%m+D5Uo9{s z5Q2Y}vj5XMhrs`96$3vC0W|SbP2^;P+-$u3d_0hSPTn*+S#8q+>e;<_lBWUj%dOewbPJloGRec-k6=JPMv ztZGgsC`CfE(!C1CTOYpp9W=kPc-yl1?P$zwz6w`lf1MuKwe)N4p{DKbj?ZaoQ-7+S zo(X4|G=|jN4x*Xe8)v@hSFa0g(VV?V=u+ki-JIc0;fHoEVeLxX$m+6E`ckcjT{ zg`#JFT6oVUyxOc}MjnaN*3EefiBR@vC2}9NfOcFN!%c(M}0zAIH^$>P?bf z=uC5!1qE)O4!?b|MpQP}eJt;2qAHdJjQ97nQXZKMl#v(Yp780V;jrfyBVeGWl79&B zBgZAh{KQKMXszj2-GYfXq~$RMnK1WAH(_-VjBwJ|V1FTwd2dr4c8gma3a*c}44r9t zT=ZRJBfm9?amU>^(AE6p_h9Y9NJqreV#S68k7+{8lBo|*E$v*{<_@~p6!bBjoP=_m z!hIA)Q#CkWd`@l};0&_mt7*oryCuPxr5uh!-?+RWjNu(ggPsty;dZo?yy{a)I<9)^ zW5E2~DWh7k6?Zd}fIwa2H+(cNanC0OQEu#eJF7--uH#r&zC-x(V8!kLqIKA+3&K|D zE#0Z6{Z}N$gLe=xQ`=JEt`35WlH%$e0wr%BW@YKxFq}#dcPR@AhUz@ZEnPilTn?N3 zbuPcWi-Ks}?MGKxR)Zw6*#0qvU+VEvoY*(%TEhKc+pSc!7{IIN5k34smBc7s4b28E z&h5@81_w{ivWL2i{=%8uc&Fv^6+9w=%V_%5_tJ*t~RVdK}?+ro>jPqKL} z{Btd1_J=ykBYm6{-%_EmIifDpsLcfNIiGqNCy#x6&v99D1)H62%}*h2aMO;bN4YPl z^=!dY{VF1!&M{g+3cV0`E<>2^pWkujsg>$G(PPVd5#)5=WM7IK{t*|YIn7d)*)KR{ zg(o#2>P(h=IQ;O=W|GiPYFDrR>xJB(_E%4AjrF@%Y5m#qEAF#egqOVT6~&ff(5Asq z{A23y{P)ig-bsOwPb@hWy0)~t@5tMB>yU@jNIl+E(mw%CVm2 zg_A43jMvtes-27tOlIJ&ty9pa zgWmf=O@T`17X~|ns0q74EiLnr^Y1e}n5aqL#ln$(7L1^VV{cgmu$cv$%N+#1U1WL6 zYN9y(;TGRp!S@DT+`I0oPsn)}63d2ppSL@uaU0(=usv@eG~vXu{iapi^5Q-+8p+~V zY3Sn5qrh5G7zx0`4GxRKcpwKMbTOD9@$~~w48|UAw$|2`ZpP*|rnXK{ z&<7_cXe0#>F;z^4wfEK_{gvp16&R@q`9Sf3v#tOUSf&WWgVGHO zkQjd{!f3!N>Sz^VLZFEf3`0|DlkL|W_0iG`SO2*W%zIIjH*c=!zOPd?HoB!|E~U{0UJPq)mHcE z!Fpkc4TeVhR|i_~s}byO{0vwM@cg4k7~r-c3<==njNhq*#KU#@d;$h1&)>tQK6E$r zuMYA2dlSdQ4|*6u%s)4Vq2IlJ>f!IL93ONm#|h>e!${*DhS9+ZBiJJh-ha7=YH~x5 zbzxiu5?w1Klw|>(Ows?{MnE}B zf4h+PvI{XedH-dMmk*rwg}SoC4u%q+K1Lf)xlRV++rtC^J`PaX9_9}4aaOn3!_=&x z#ASwcHM}3TjR#|LdqE?*sk7isl5>2ab5^k^@j^|wT)NlS`UOy(Szsv$e) zVvR3S7pYZird3T(%QLvtAUyhjiZmzi(LY+*jQpi9&qoWe$on(K@3sh9e3J4^n*uOd z$KlX~O)ReA+|=o1O=^lYoL*Z)X5HU*s_SLVr%gC~?WBi-&GFEpo~DjSdGatFerQ*< zoMspxMDTkqK-%hCBBHw`y=tY+qd2)R5#-f2g+YU&7N+(tZ8gQP`m*AR@2T74U!KW` zJzUSEeZygF#%eZ|r?_$Ud3FR_O}5L?Mw`~$;(n>L7b&i|IThla8bDW(+Ra*T`JIg& zN}m)?)m@AqBt987)7X^L((LmoQ}EH_uJK#jnCSRbd*V_Y5~PW&uT{R7%o9g*pq97% z;;FF6EFSY_?&56E8{d$ZwduvdxYc9+i#O?E;igP3o@2&Z*+voG?_JGEmX8G3L?66b zcyn%@SOS&rgGv!h)glyBo8_k^%mcl51kWNlc%?n^CaP!zp{9f@2)83il4eZ)DLlTbt;!rEDdIlj>NzvJuY3b z71^}i{?u8vX1i?fvGogjVyyLLpYDxnHhf!VSH$lw`5%v0P*DhW2h5td8rmP@V=JXV z)^Qj%Ip5V3hsrL`4c$6ljZjo}bq`ZV7sy=1#Rck*!?Y-_oId|EWT4&nU#k=!H`qH4 zqej1+&acNQlyg1~P1un0EHo#{Ou%@MFK^(X@JTRe0?OyV944IL@B~Z>CQwZ>2|MD2 z){4J*d>}M_NUD?W0-Olo3sL~RdVm1PL;(0XuFY(Gg3#h-5kK?&e}=U!C;!c|#(%x4 zaPnUn-XKfY)o`bT!Y;38aDkgclEBT3E^q@ca6LJ33S8Cu53g5m&s=i`(Xc}Tqr$j) zhUT9v3sQg%bS4M1!1q)DGPpzvn1ZYnz#V9MhbpL(0rb$y=}Hb5g2QBhHTvKA`Kt60 zIY198Pyy&510}!?2ylbClmIU@dAy3&b{l8(8Twohic=?>+CM6(32gR0} zdpJM~=amC76k_S^?B-x$?P=;}0c8qYcOJMy1(<=|WB>}-O%51?rPRQk_`ET^_=`+N zu!#=90ei@RJC|ilAUhch39O|6I4}hM@oK*0Zu_XpU^?ou9|p216YFk^fxvCZ5qmFyI!jKX#vjvO38y3LP7QL z-#V6{G#$VX&fWhvD+TmofR_G1dO!o*V}K}yQk38f2gEVOeF(K1BUI{gA8-YiZ&E_n zrLqiAsSy)YBbfovhg_*4I4DJXT`J88u!H){kbed$6F_!JATn5UnKyKkrwOXFK&2O# z2;TBQJBu zMLI4k1jWD(DcB4v)XG%@QLF$bn8kjHh!xNSDLJ4512#YtOub1_T(@w_2B9P5gi00J z0UadW|2A8^ZsX7s}h@hLq!~ffR12fuA>dE}#J) zRC>$#5q*=Hkio^G5v=hYVB`<0T>_veZu(wClFom zI>iqLNkeL^!VfhLnIvez41T}>1E@hW_5Gvkl^b-OQdS2n{JXf&d zCI!t{m-t{pPz`Pos8mG?(x)jQNVBe}3KoJmD*oRBEs#+ZYF9@XQlb?K=H)P|xs)JC@`zesOBFG|5xg&Po#MN$ zOC}D%y}!((d;sLGpZ@wzne)-j2MSdC1 z&JRA2hNuyegfy%AG6nH2eNESyBqS|1nd`hKVD@EdQwmVO9HUn$(o4Gd!PLvoF==Q- zQp#SZ$Sw;|KyMjHcQRxlQT&jB2o{jLPElR6=NpnH!X3gnd_3fdH)&TvwIm>IeGGzM)RLj{wHm#7pVC5=#olwkcP&k=M{hLAcc z0S@5BO-kUJaFNFl)6ptW-ItFcwkTAuQ%u*TQp!+ii7HfgMhw#TWM#k#WK;W}Pxfm# zV-<+B0yO}7fq)CR2hxbaD8OD7;4yUV0_8a>L4hEpDiFC>oCm1_Y|wgpX~zRq)F3fl zorTU+0Zu3vIxo?H{g+f+!3L-S>@Xg%NDW}Ud$lT}vMZXpdqB5FS8F0@r3DS3yXrtK z1k~gV;DO^>P*1L@11ungHncFl+gXys`xVMg(uRaMz4L&m!dOL-HaqftGRxeQ0MfX?e+n0U&lmD*~4Q z-z5w&`1X<&SyKpb&H#wLDaPTt-VFVfg#a&@YzQG#HG`DsLLZtAe;Wdh5b(83uax62 zDc9Sl8{W7Ct~Ou);Nb&vi~t@G*Bol}r51n&UKjyWVAy4sZWu#K-D`f$GY%+Y0_6Qe z&0qGedsu)UoHm0Hu$e;gtg(PJ_=+S3H;B;y(<{|+u>c4lqrnxJfEfgqV+n!L`#}p$ zj2YDIr7-!p{t@Q&^C5pZxPC?CF9(8GJFtH^;JHM~1!h@61TdQex&S2XtDzuj4Go1w zGiXp$n?nsgwT1vz%z>~=0EirXkjMtW1Ox@aL#zdOYmyrhsrK(32Ds#iAuW;_W}oOp(*UU z6<~TJYc8(q=NSL;3;Ca3jfra%|HqZ}+N~Cxu!9=TvIbOdaDd7V06E^xE8aI}{c9gt zFxUYCb+x$~k5@v$bOf+){tF5@$b#FhkQ}8P0g@y;NHv0N07Q`8_C{Ecna9})AiQ$0 z{b#iP?WG$!|9`L5!C5chE;!-@bqwXD4x`us$zY)?G=mN~1DN>#t#fm?eq9I6<)%(G zjy=E#yRKyG0+8WeTZjJl3I&|;f@m-NTLY|i03RYUoYbjU>1(tunMAq8s#c;sks}fTo*E zg(blLZ_h$DG|1FP1YS5pqv*&D8t1Go0L?$p;FLSG%$0Zo_y7bM?gFXsT@MJT+XcA) z4-nb^&iLHd55)Y#>7{9m7@X0CHlBE%5Haqq0RKNV!CX%O6Z=2vdTHT;ENFD#nkUo_ zG`O`j{+TJIoIRbOIq>hGfgXan*3uj4{O@GQedV_OS5LS(Zb-b54%7x@nIi(%FXxVZ zFQ_46cc2J5*FX}&$GLVj|CfU+Lme&n+Z)mb3OA@nMLd9L2)OhK1pJqVe=$R*J6aIk z7XoJY1Wf+&iVt@C0(b6RO=aBIn*YBov|h>v!SA{S6cED;i2S!^n-8?O{P2TT#4BSP zZPF8Hy4-StCNu(XApQytqJ;qaW+A&F1u~KKdqaXWcmiR?@d3hAZxrVLit%~`+)RVq zS6(WR;BJ)czkT~(CA+kl-SqA8695yOFo)>G_JKw%lP@HptIYx=&j0rBwONf03qh>o5zuLMR_{{rIR&fFo&Z6xc=j|F(6$ibO3xm$lg|VK z8<6$$(pCX&)1VJfz7in7;TPbA)bZwFA}B@yas(15ito)r2Z@4!dvN(O)<%l5vzX}} z^&|>c(vGS#xw99R_g(vAvalsdfeKs6I}UPGS&WPK@YLpFmB?KBK?K-NDsS)f} zP9`PcioMz0QCMHw>P)ogh)$nuXm9Xd>g-IuNOiaBPL3rF#gR<^bt^*^?q0|Fq-0%( zLed8>_fN>(=oQsH_&J<_N)NN*`Iofvb%(AW=DkfXu{AkFM7dmly?gZshl(DFN`C11 zSKgPj+Y(v~vR`QC_r4;Zv)YqVjndr7UW^hVliDx3cX7*-;%gc|YUs9oMs<)k?n3;- z`&Qns5?jc_&r)3Yqm?m)-ufTbsqm*()Nss>h$84#hq#&u-FKYKRJ99p1{qis*)|nhm!2hb~EPH9f)EWX^@7oV>m3old{1{%KnO zT+U-monG+yo0dlm7kD+V*WOm=qPP16O>e2@|3a2yC8qC}#>vpbW0UN7r_SH2@50~T z!wT;vmHyfbCY|HC1R#2|j!8^P9xLAEda)pV-JaB?YA1dYK%MRsF)}iXrPRAd!`D{$FLEBFfK8PY%AUfgE&52 zFz!v#+jM?HRr+?x(H{x%DWI{6j)sAn9b0*VwuY8&fxX?@Dx8G4FQ;*`VcG8F2@~&= zY1X3LjV((>w#dr5g0DkULu36D6?q@iKNnZ!jOl6WsyZ=pgGqSz@Cg={7p*LbF;1fJ z49oZ;6b5t67t6Lwdt=@=-O7_@F|$F{jb}b$uVjHDgjryk* z1%Yo-VTg%lthLfqws%&BlD#!vH2H%ZMY3!+SEPJzej*sXSuSeQQV$ZyIlQ|!|j7`NI_Zc z0Lt*Qs>DEIt-2PcSiV&Ad*?4q1SZ~z8!5Q@Fq%0Y8RN)nh4|bf$QP{gONW1PwLEUR z_5GPU8W&!At@n#+AZmV|PK9=e<8nH)>_lDgRwU{StG; zDkUAVKOJ+|sbH^_)RW=hl)fPhSFM;G)$r4%TO$K}8E{m#39^$KwXdwwKSm_Yt5rZG z4NocaLj44Ev!`0;7)@$&@nJ4hcTZ}T53K1tVpt+g&;(7Sj&ua=8xNk*G?oc$?1?9k?FEq5~qh{QfTmK(dG6yF62zQ6`RStLrn54Y*4V7b6iT&uKi;A zM8D?c5EHzg+uo3}>fq3B_m<7>Ovq&B`){|4E7zE~Sm8d5;hKTdp>8VP_@<D6jtyweAZ;*G zt`in{l93cEte7G!tt8oHJKW38s!KN$z#g%abHRtxZF?wGsD1h>AqXVC_LM;x4@>-^ zO=9v%UALgTUH{d>Fb6))KtbVw>)m*k?Yu%wyIS723hyK&IM+4^_2eP|y8xLA0xgX9 zs!b0macaKf=9L+y#;+|s)UD3Wj*NQwT(?ZNWg| zd9&v*{LXQr!$$3#kTGW++^`fJ7OUB~ zZ<2*!gvfPGKQUNcHVo+`9d#UkGakl#rdC04D%JeOZ8BT%sbv;fk6m{gVMEkV`zw{4 zZ`05L5SG_|{$f)>US-HL5vh?{g;A1DI?h!78QjG#BuXQASCC5k9YiW|A0(Qm z^ap($#PyQCHnU>HNIb1l<#%}8o+g>eO0<>^>5o!nyesj1#kTK#mqfOY66Yv<@-=se zhrk}4VnoQ~)70{2vKCEjKcaNd_m`O@7-TtPQ`j?7j_tH~PF#TePM7VwYA#ZTDsoxV z00x{tjOHmWEMa*zqVMZMMBcq5)$jOGqU;tC&bpf}?DKy*1pJBiSQW@v6$Bhm#Op(` zSY~%|OScFLu|F}ruSAy+{So%%?mWkjunbI6bkE>WA&Firg|`COHZaMqTNMp$2hHe_A?59hz%(+srgfP^!iNJSTf`HmYx?F6M+bkOwKcBBs%_<$301C6wiKE z1U{EZ!gB2n*ExH-@+bO&r;lvQymo$gzwBge&2<%l-PCKRiQ3Yai}KUS`n%qK6 z6FgmgB+%|?uv?wSkLRp!MHWk>9Wgzg^3~nh`?+z|$}{J8kCq}9?aaHD)TP7km~h_`kD5}R&azdo)^PC5 znKX0$IABTEMds}7-|Jc~HE4D^_^_{%_vz{&F-y|Wj8A+S%^2QKs;{PGvpJ=h&)*BV zV66IZt%q>rv#f8FrkL*IjlFs+%a4OFCXW45<_I-#A+AVNv|;vz1<_e)mSs7K_{>lh zJpMy=<#*P=rk6r~eBOr5N9mhV-=ouCgx>b{dIHvor`LTEMMOc9Ck>MJY0kFM=-Y6s zu^I?NtE;N*ua*=etMSLvu0``zlk@pxwfz2keZt@!+F{Mfd#+&QXL{S)gNT^qV%x7& zsw4x_CH#c)-aW2$kHx|sFm(BFH;!49AOgO~@My%hrO9Z4YgG8eSWz@CGaN^czK*T& zKKt^8@R!Z$`mE0_;+Ygw!Y6Wa<9!@&qz+M6==R0@y_&)eoHM82Q=l!z|KeE3nr)ut z&|jXJhc~<|&Wy!367H>GU-^usl#cd`Y+v@Q7uE5OO{uojcN6FOmJg~{pYhaROMMT8 zPi5pinu&-B6lH!-V{;h2T|cY6&DD8aG7x%U%dlfGY=WVH=!9WIoO=&(jAvDvb?x=% z7jGp`d%Y~A=!_oK{MwzXRvFw?+6Vjy40qJVdnKG#$@clk7_tJok4YMt3BpMn zrA~9pJC~`Y+Zgk7*rIVS4_()X2 zP z+!LibLE0Z;5TiMljAOBlH%Rbj=t_93FxjsU!-w5R5W`eNC&j8Kq{SE`+TW6(K!zjV z{(f5-`9l9WPnP(C!w+XEiaUQaUsD${car_y+dkP=pA}DBYA57%^1+c-s8qhqsq5OWkMgeouIX zxNzNtjrKBvetB7ySm_`NetSn_Mze9)9(L5y(fD9PvmR_-LzPqYHfoUUYu7*xhL>wJ ztf#Hf4K z*BapC_VJ^oPO$5`Y|}x?9<$1#TDfZ zbZ(XjB4V0`4$*zusOCJgBpR%hV5+e6l3j+P2Ht1alM0T>zVpSNZHZs^ant?bCFdFS zCll<;QIEo6BVWu#p=QU%Zz;4{N=c1Q;2DzpE~6|PcBti}w4&FWKj_)pJDM~!mJ4nR zmT-uW-yXx2yN3vK_$XW7ixaKm%%~{2vw3fMt42gyh2yaQd~$l)u%7l6J4v21A)7i= zN9q9vO_I;*pRHZEzq$Vz2I<~9yj5+Qc!d>;1 zLwpLS;YCxKQjMf|naUdl#oLYvrt#=P?5(Q9(JtA3*~MdO`Th6uI_$=jUQHBmB)Cca ze&DG}A0I!e@t&sK-bZXxWvDRF4Q49>klqLMIO z@qY4I@t>kI-!la%dA9^b7ogNj*}@*)5jrD144Q z_~9zCNhSTe){o~h^_9uTj1B95=66*oCEYGisx`9?u+useZPxLATFBU>j`e#k(MG8I z;9jvfL55kxBSiLAZudP!N(^|tj*x8!-vRqbM@PYuP`SDLcw|9c{ikQJ;bgLt6xzc&E@6MJ(_Duq?hhZ1 zD=KZ~%tieuL|v_UP?vxSf1zaQ3qBUD_T7GRIHBxZt~&+!~{ z{=~$fSXzl7aw31S4c14}+;wx0%bWkugZM3R$jjm|ZOllcetzZSEIjhm9&#J>N?ZT9 zRh?bs@S-#KjdC7)Ph^J2PpRzq;(!d*bFy>41U9M+o3n_gJNK}Lyy`=LUUcm29wVnA z$bIxls^uW-Rj zbnCVJ>UP=j9X!^t+a%#z{!KQaAvgioD}HRZ_O94Nq>8oC zVtu4X%|85vd+m72fO~h3-a`^KqN0x<=neI!;!~zI^;_u^hCESWcZm(ppBv%rYdtDt zqK+#RV~)p`JyL4)$0xJR*>nHWi~Fs4xZ1PDD zrdKV~e7w1&dL#*atH-IDP%1CMPIjk-O;g?*tGh+8-N8_?``6t}b!{x(3WJ$@#uMj5 zi|Xpxs}5)>sWg_62dMcN%m;MDOWTc8>btArV_y7jz|`Ih8uUCwk6*(S$&aDMo{~dM zc!z#(v1Twmk4F6ceZgCSn@GR7Z)ZENuMBxc8h`58+o>LcdpCS!&$8bF9;8bh2?a!c zo_+b!q>_q1zSBDR_#0i#S=?r0 zL7wRqp+hs=O0cJiS~L`e>e+PpG&>~LJL6wmBZ!z5`}JEJVEt9@4#kSNL}V1Mco)Lw zzb17uS?&)w!Lj7ItT{_2QA`KsOb&=+=)Rp{HdY?D`4v@G3C4@Fbdv3|b`=E4hoEB@ z_@1fYC9^8#d#`}L6G6``OIMsqVxp5nYV%orf0l3D4vf9$K8F1g3pM^D3kH79YxmM8d1qodf3IlvedqtnF#Sek*vB zI&>-OcXa10m{z&z2ZRh1Znx-i^z``t$yQDa9MF!*Ks{x(#ir?<`}kc}vAuJ5;Zt*0 zV!1K~372eRL*|#Cnt3rY%hB)N`L1JK^qM_ca_>_XC}&lOFG#fh%}Xf!_OtKF59fEA z@;_J<&>v~R*YueCsdS#7Z~C&p&DBZ;V^W?U5h3-T%;9$F`Nob$piq&PajBMUoNa8e zknP1suXRHIZKK;hx!3=;zwvBQX7vx+*~Om^IB*F8qa|@e|HeP-6w0$K2Cny$egyqm z6WK>ASEwUqD_j{_v$uG|fN_3{qN|J;FQa!O-J6XW7p{Qu2p41^w4JGXKu_N=(PZ58 zZX4$-qUt^P7&-R4k`LlI6J+q($U);1lOMy*;`<5@6$CoYMAvGI)3s;hMeKj}H%NYH z4iZgkT`k~}VO7|q3XK0=fNB`XhE7;Z8#q#6-}m+Xnq-W-nHra>l~J6nRMGO{Y3(cA z=VdC2%b(#*7mdpsDHk}%#&3={qk+V>H@H}9>%+!xy4uF~*s%zdv+v5OJz`V(As0s#*+1Tac`bZX z6h(UdXKwT*2QP{tO4S?^RnVTtzP|X-&Xf&-4?Dc218EASwAA5;5S|-nEI!Roy^GnO zQ+o}t=ywBNf##{le^v=MUC`K-juu$_U`KkCQgd?_m^yK{=x!Bo1ku^oVk&%A+ut`; zdT5|h1xGQSZ|^8#JgXZq6jA*l{c2)ZJ-Jidx9|QbzWqV4xfks{Yx*!oYDYdxt(R}% zrYrvTb)q6g^c2%#t&M>o3R*8{By;Yrxo27STWQ9#|Ms0D{b#!sgbzQ9dc6FBpmBU6 zJl(sXWkWu19}pm?*emWMksPEAc<0qe)5S z)o%mO;PLKN!dolhZ&Qw<)Zwx`htx4_~R4I8O(5!7qIFQYQm9>35G&mawDV zNhN#hKK15RIBW|u^2}EXjC?TqMY~Z;@95wnV3o2>J3!>)qF73_Kwsv$Is027?uz5) zFG^>=re*3MJkw-JX@w4FTz2w;Np%wD4|XL>so;ua)2`pZADMGAScixf{4d||8Wv4| zE)m`y5k?y-iR)_nHvC)W71^5Hsxrls^UtM*7cc0P1H%$TK3Cva&`MM4H8OTNI&iSi zwCw9O5?U}>zc)zjZ5%dghyL+Iiz9(IURRbn*5K5K9KL{KjPADYrJo|olU;SE@!R1Y z$vuAfvb}S~#s*^qM^44Mldbzt+omLB6Zj#~Q5M%+yht7Y7D2?FKIgAgzr9sB-!>qB z7Tq6_>&_w8Q|C0O+lJn3oGw2|7n54tbdR12zpa>d!0Bta_)VWB!r|-N&9~+Vg1mhf4>N;xqV1p$!m9UP30eMcV<)AQLtYPxb-9CHhNoJe zFW|^-1A}{~HjAqhM)iFSC5(*a=EZOLPE<><#2YfDo21P)Oq&uO4v}#wrW=nC$b6U1 zcZniemW>mY+(o5C$$56XN{JMa&lullKup+AEh#z_T_6zuXjvvix ziPh5g2wtH#s;OV>Q&tM=WUC?G`Gnh*BW&3@B^*99H~n$(^ng{IH0y)Nny0`IRtgR{ zzh5_ncC24Ok+nDQn>|SO6-`lmHyesWbOG%&Az*xMxz6kJ`IjO_oxk66>-mF6tm@385q>fMec(wNaAl2 zSkYAM;;1(hJ6OKa9cejKu+bTQF}~H9{F}T1|d*Py+cQdP@v#0z=(l+cD2}Pch&a)KW_x;Y?%=qE@b0~M5 zjdca}9YU+zoX0B*J`}3nDU+8Q4VzwYMq`z!lN_tRC%P|bWRmf%%g-kO6}o1%^Frv7&WXt+`voBLy_h=yxM;{(>Ta}CFEeWuDF zZ8V={2~0nY&nK**(eZ`uj9fK3)Jd;J!p%mUrR1@>_m0Qkx)2;XGeu*{&y|Ft%^`dV zpZ7&&vsF|zhezy1I3D}Ec6ddq>3(jgw6nMM_stk&%p9lR!bnu`3X z%Ql(b+}ufWvF}|-)b}1GM{#~bxQ@V|&ZCxrdEcq>mU7BvjdvxZP1Vxz4X>=fDrjPe zAMzG>Zh4a?{rQ?S)iqn&o;p{gDL?IFwI*foS|oFCZMO`$Sln;(&neoR+Z%WL7hD^Q zV^KRDvVjMCNo6w$KE<_7?tut@xP}pZ6N~(!HOc%`T3*L_-Zog(r!2id`3M(zgF@dN zyVE1BVE#fhuB~J5PARR>>m0_14Bz+s?K*zDVGsM*Tf%M6x=Df^iU~;&^GFZn*@S6o zsOEy9C+Ny$)zoEV26`MWezJ@BtdLONXN<*rjHkfUyh3M!@rqLAZs|jr(=>FIoa6?H zqsfs}%#Fcp(M5_2yX{Vkowzjkqe&h^u&(Aa2Q?2{<}$~hm7n+Ywzhg|%15?;2#1#v z-+y!XnP-~+&qiP22%dVqfNpv*qde6fdMax`i2%Ok(+Vv^hvK%2{k{*JO>?6HDGZ1G zrltdj?aZSAhvRzm%$lwzYL3r^WI@$byl1>;$SsWH4SlR`=!aq>@9+~-;a^)n+z-u* z#Mp^QL|EL5rjyQL75vV*>qZX>1`G8GjLlbir0ajQSd%YM#NQyH|%^fOeCg^ERLg!Z!b5PJ& z;!6%pozhFHFL37=e}iL7LcDG=*jJ0F>*Amx=OTAvpgsTPvq6+CDPh5*=m_;T>1RV^ z_=Z>*OKE~y{pRv0cT}<$Z6DPQP`B%yDotWxE+ERZJ_}vr=_^B=Ow)k}sKW}1MpCU= z7A3#-6R(^hZVx-fd~)`VU@qsd={)l6pvEiqhkp6zHveZ^st)u0?87BkPaC#8 z$Tz#9l$e7nHzGz1>PE}5HDs844%YPXJ9n~CHJdvge$V5aDi6;%uXL->vR|JVZ>o;D z^Yd;8$t))_p?O;|6P#5N?wotCX7fk+)IHS5oh)nTgWcmhe5`DIN@PTNk0W0ynA0Hg z%aFlXp8o!JUzGFRkGO<9R7@>P`Y*z?(nu+UFV5`9#L@o9#{WWnQgvWYTlv}BKgZ%s zx|*J4+NhA=fj_ro8aYYI;}e1@9K}Crdlq$Dlpk*Glfw|4>I^kDx z$PYf#M|#zM_86lDca3fCL1dFt5e698^Cd<<|hDgC3+sNp7K%NguD=Vtl7)=pj4 z%Bv@*UoN?}s#3Uo#ojAq*vnke@mo@NJz=B6;!?1VxO&cSw0vP>9T3&%L#y@mH>5X!`Me8R` z7QAmGo*7yJQ!c1Sv=8A8pV$PxAZs@hGmZ!wtbGUuuw;uK^6x)co5%ayx18mU5t}EE z(m#A~i~@TrrDl~vIan}7DH}r;wMZOAhpdSfn|TH&)xQYZ z4>k5iCekxtzKh8!|NbLS1AXVrA|S?(@}+DTnZ!D*O!z*E*P{wJ+Zbh)E>ibzkto>N zpA&XDk>KdxKK|P==~4GYJ^feWe10-SdOqE)=zp8P62Tzl_}EI`Ey9S5kAUhb}vNYefI;xvp$*YdD0LC@Yws=sX4EG5Uj=03b)GQz;mhXQlS+0#S* zo9Nukt=ODE<$DJPDK8Yr?Tu3P?TATkoj-gHHkz-72{;4{t~M?e_Yuak+l0cAv>I;f zJA18(dNs((s;la5EHTL@zi^0evJRwVIbM#mQ~!#N@S%149U?w!VjMnoxx2Ec*gM^N zwUv;8x;mX)Qx@?Er=(}}0+7lMpocuQ(|`!;g^sj0Eg&2R_Pzat6`WF=Q#o-)?`PAT1i7p>0M>4m>R~u`D#8#gtRUQV3xxf~OyqNhW^DYd&J{p6uVf zIL3o31ktxvCuT2Ey24F7ECd{?EID7qtSSENudXE9I6xhUkT57=ATYV@ZZ$CHJ}4Z1 zkKLzqY@;-yJ8G8QrcQ_iAJyJHC25RpCftkW{86mwSZS`F43kstYzwAs5{|{lq(clWOE286lZ! zqs*^dtx5u#gnaI_N(DyDCI;r-aY3C1oU>r!o}A$=3xsf{;0xEd?An0w=B4L-@pnC4 z&(c-G=*e0xK8_eLp$HJ=Ydz$iqfDEVyEPK?I`8oHx0)~U;{^lFWJ^2qUVh>!`FHkp z`(2A0Dz(zZb+*cBnoyP$-yx)OzMU@jfhT9}q)|LHU40a%O2&v%fy{OuWH)cD(AFo7 zr0ONes_*9nXPZ*V=iFtl>N|Xxovfbyx}0_MUh6AgqsLuO0=L2hlOx_t*MXpdXc~vhwE9&q|Dtkn zHTr&>eI>+2p$UN*9&fjwR)xAZ_)AG$4p2?Kuat>sv6DlTTmCJDAl-y#PAO7Vz|D66 zH{to_0X!$00abKf37JyRZ!`r{`u6_Tln3@v!nef6_Zp_z{A9r-rC3r7(0}E^a67TL zMrG4>ayaAEBd2)6Bv)LV-#nD5Xiu?!C^>vTfzEAeUY+s-E zCY!q0H4Dt8@=7i;W*YB=R@bO};T7iR;j<(``tegezTDw-aC@EYdsKXsslP+7;7YLA zGJSX|_xgHnykm*IMaqY?__ysZ-=Y$&=S!ENuftnApS2p4bDJZ$a}X2Q3DJ+X?0Qud zi^di)IG5P>mqRCbZ^Rh8El71g(CSvy*%jE}T0<>U+L8@k_J$RFL!ajHr$&SMJk zjE1EW4b?pHYh7{ssLs7U(z1UTx}39kuGL9S)Or>cs= z*7WdJ0}IOcjcrtf7cC=&=2|~qDQl7r%K za)nWp307vOp7%WDsf%%wc;jMeig%k(;jQr`CoB(PQ#W_zR>I@-MxqKb8}+97j)#A$ zV*`D=m?XHQwGb0A+%RqQk$QAt9l1^BL(G+x2PiLP5Sk(;q+uqwhnL0YB>J)VP!p5weHV;?+B=1Vn0nDJ{k-r! z74@j@j3n)bLEl$_dSohb#t{snWzwv0MAo>zC{)jJiL#g5P6U2w248DjF~ZT`J6Is- z25Vdh|9BR9SZJb+5M(zL+4FUPO60C7c?BHJ&pDhYk||WA4Tm%>rc5GXJW6OrX?M}& z)N$J(*q^Kn)iLF1b2E#>ZM($YjK^|M+VjI|hC*v+CvVYZVa{$KYLKsV-l>_SOeXq* zYXGzonUdapK!^KV7eD!a_eHFMZcN`GaoVR)zL4fZ8eUyfF=bTlaVj0WFM_O;sn{0q zm4W9S%#Bnf=l4TD#w3^OJzn?t(CY=o%XA?)K5pVz{9;$|8zJk#Xhj9}k&G<^8Esa$n2Gi|1#&`&n`u$IEE2XOe!7`Pa3{9CW>9xg z(1+U&d6+*#$YL%=(os07D0jsR}dXYYE>0 z=w#`^qZVY$NCI*GT)?;!K_BpG0pxU_G6t|>aaeI!a5F!4_Hb6WbhEVrC&r-ImeT^j zrP^y8&_M#fegqs*q5taPy?j21gQHrg48TSJH5LH8YNJX(ln$)>1x5ILAA{mWa903a z@N5k51Cv*PyVZe(06!AgwF>zh2j4}YtX`b~Y!Sc*TL6Bw%>tl?2r6M9u!76Kp!VKk zAlwCMSD=_kR!juE>cSO(8uH|??pX!g5JB{N2zWT0oPs<8|9A{T{}B|=nM4O~@Iy1e z8~%CJz+H}|VmfL_UMpcmgpJYs0&Onk&|Jc|oUMf#jfMTGjF+k^BeA)n3J(e&J$)tp zJNaDBHZuq50lPEY%pt-x@${-nK0V$Ny9&OK$Af8qx*LQki3b9wFAgvMSSKgD_cR>V z_at+7P)A|!N)_NlGVMiTsB7PbJNT1P8DNdHuUgsL`$@?oOLj&EscW-)?!KhpEtazB zbZhD=bS$#>@~8fUZ8od%W3@0^D=P@=#U$)hc9_?5@cg(r?j2>;98Ul5pW}tRoh8fY z%@gNn!KPPpp=ABX4iwM!ouSG(i8PvU2axULR+78f`wu3cj|hWrdRT z#h)+gn83c=5pFi6P>Mfvx==Aj_EA>Z+^4$DIJ-|?sysTsi9j~obXM?UE%!E3 zMyxE5op#GhBb}Z$Gt)!^Qy=~cp{4n?`QiKrliO`oZBaoKTMgxnQk6%yLtd+LJ&Si0 zLl55+F5BHJHxYj&RL{lmgb?mZAmQnm;Y85xmPWR**#K}gvZsbou8naPNZ>_p}*BVoY?#KSoWu?z@$CHc8d(WM7 zc`R62bjj!V-Id2aXSU8g5S~eisWWVAqidKgYTB_waf_V^Iz=l-@8^&3-C@u>?@0gp zvpkQF9Y^I7IkqMb-F@jG5Z{)3Q%_>I(7UPX;9K>~5{}eoH=l|>jWel^dY%662h_5* z(GvMk-%e6SQdUa3zU6_k9H}nqQFMG{Vobulhj_0K)2DIvTDlKoI7qb|dvHG1o!9HP z37-+-eZr=$AR?b4i)^F$gOt+_!jo7A=(%d-(%6t8^<;!{e{ryws^ldpOj+8jHhiD2vE^a2AKHlP{ z#+6a5R(<8-?5i5t)6X=9O5dnH4u{;nH%u$J`JsvqtVYafTY!4+$NlqPJCbV)4JQ`Vu+_dIDlqa_*-`M5fW zE&<1d%}P#r40(0gZBR;_^8)U0&WbGjWNRWu`vb_vLjxbZ4!8 z8}Fl7*6R;7`P0A1+zFQn3YI!N7f-h>J#TpO^Gdd%~KI8##l>l|r$ zK|#AglJo9_vC`-xF76~@+2ag5kGotH=B#?(f%3qwolx2yZ*<(c-XWo-|M&a%BC%5^ zdM|H(p5T)F3Hu=D21|RonTmJ1zU&8?6JhbJwbBJ=D|NY-#Ye~?cYm&zu%VqJWoKa)%`o&G451>Dl5Z7 zmEP_d!U8DrhfvMuho`^ zS1-M?)hxp)>aNDz35KLEwT;Xc^pV$~Ah)J3JpCE0!=-n3d9y#izMnTjZ7Z1}nriu) z>Fpto8B@cM_Tdsf9Y!a*r;JTgZnX}mVr#nyrf7D{>GI?+aa(l1TI{g+`gW&a)`F!& za<0jctc;rtL>icWm)TE#9~NmgI@W(dgVlfAt;qlf>=_Juz^K%&)oLCaXxHjB3FxU+ zvqa^+gYPQbR+62r=lDQZ7vkDvp5f?W5&)hzH#p`njFOyzW_W zzUD~F(7Bzu?y62YZ++PE-fw?B8!0}G8!2vov#Y25Qk=|h+!V7}`Rq^dVXj>sWfWLLt^5v39k^awFBOon}>F!Ukwm%Q~MP?Aq0pg0-xpH-id8%ijf}uL;K+G`%0& zf_q??aMm|tDX-lrgz^zEF(tW)@ z^gW?Cw@(zR3f5>8dbwm%mVUupcZUXBv!}L9;cF??#*5|zIuR~Q0$oPy`o1XBF*owV zwx!B&2d0abhmRh(d0kjSj)BA!f0X?d6d=H!+R-y$L60I2Ysg+V_4CWOiL9n4y}ALq z+eiogh;|xg+rOh^#j;b@PyO=3fNVsgifKN-a0^e%jZ)+5N3%`VHeNk2WT(H`wsVR3 z=Zz}6e2%WCm-BBdcZ?6^F(`c@hkvL(f2<&lCwtMQMrzyIOJ;?m*`-y6rt&&NMJz5#?R)zN`0GvU`-+5z&?V*3_YP`uzIny_k8a zOWUGzb+_cR*_GApoXD%XW-2@Jl1*fv`a#nGmYD;-9OZZ9+o+L!=VtqQ0=FF6IPBLd zi=RVH&(;(t^FEJX8l0~X)w{wT)KtNdF71=oJ%L)f?Ivia?X}#6 z+dK39m6ywC=cOcr74PtnAaBMfBIKPH%oq71jhT7A8f380hI4+;KRkV}IBE4FY z^0=_55nt5!Y_bXKWfyyLKw^jY$42%iFK-!kAO0qt)hfO_RY$W^OOyLoE=MAoEyK3_ zNBKp~&|Vp1f|<;^!u1mk1m#CY`SZVxZJAuRbK%wO@+5B-zr5rZTP%9z)Pc6I0uwKw zm`4Fcsv;uPVzMy!*2#w(J0#ypGYbKY0>d%t70NR}>x z`5hLO;R0a=8GUvsYoEiEU0SpLC#&uDQiN~Z3VhZ5xPrr8+FWG!+G$CxJrBY6+Rc5dE++(w-V=XL46%I`m2(~XW&%YB6tHRu0wYOXG$SXVI zk@cc*efgfZNtvk98}0d<#>=i2AFCcN*?b5QU+8qFdaTDy-TM(6QSt$Bw7#@hsIAig zj(B0$o#QT=UxMAlRDzcncmwEL8c?UM$3raMUCJxdjVP*eh4+X-Ul3c%Qu(8JVgIFL z6XKZ`yS?vyH~Y2z!L`Q5WL|WgV$c`2@$1I!mCi?=)b~?NxpHBodVd%3iLD0?e7w14 zqw>^v=u(sR%IL>dy}aOl?9UJOSkJ36E)P6IV>Efsr_1OBlvlS_AO7OvEAiTDhx#!+ z$Shzrh+eXXaaMk&;^)}ySf$E`KVr>AJcUJk~xYM+mQQ5`MGwxY_F6JXfCnfYV#^r-vbJmN?97jLY_c~x2 zuHbOF|N7K4o(nVrbyBg{dH?9@UFWYjEj@@!@ep9tRaw#FrpI$1$Ya|>7AX zUI?~oYFBWFV0D6fBRPb^xV}f#i3psS@ui>gD6L|QHhY&IU))+=6OvA4T+w(JC{D$? zk2X?^#w?auB*m!q)FSG|qEtcX*5}+Q=<>EN^25oDg1*=He>XTWyi3Yp$gV1shqGMr ziSfj|M%i%K>0i`^&$DSB--G>w7QV)~JL<&0GLiK=Htke5=%D85oTS!gM-;d&9xW&+(3B*~Oa`V}G!-L@IA1 zRjIPB+>CHeyGLP6pkuFdzEG4E_+os5J;%v2ObM8i(HfnWR-ISX1~Q`=r_`~dh3TW) zv8am6PG;d2Vtq%See4=r(`TFiN{WZR{djFBa0{C@-F3c6^8J~y?9f-OpM~`JUm27o z3|Le-6UXfa+k8czEYueTDMmhP_vSaqF{zvmdRB!+CAXj}GYv%tPLHpz)v2}{#xUrO zx+_$CU~5;`b6IviFkZr?9$eqNY)W0u%Wo4dD}E7B6z*;K`es+J5Og9)&zg3 zaZD+j92z>XXm`jkSAy7J_UZ|y!eS;*)O^Gum0#U?AkzS6GynLti{{Y}TG1NgzGA*# zE55BMO;7aKXL0dyeyAq$d4;&fgi;_jT$A$GTII|uE6w8mlg*HFT5|K<4X$M4T^Zr} zFTE$MB##&1B)n@>FRf(ix~`{uPkChSy)=3#X+5L4f?7*8mviQoE7l#9t}ccA9XeR1 zMk1u;mpj(;GP54Uxc0sFP%-wby=E&eThSgZ`khbih#)1cU;oRYV;p4#NlKrfCz!?j zi=iqb7MYk%o*%z|2ie;N6BCLF>0uR95f+a>G;55;ES+}Cex1F~PNp?@-5@7+l0K@% zuljaat?B`90f)f29G}tGk{Qj9tBUaY{QL&}V@c&Hc(H3%HikDk_n)>JnqNPQ-h;K# zvb$v0^G#&tGlemag3;mV^DIplges^qA6aLG{4JFwPe0RIsCAlmFG#s~O+zttx*)CA zEW~|my3Z`xzXL+wv}diOPdkN&M4~`>flBY^+ngw^KEYIQUH**4HnU zkPH;-Zum4ks|ylTZMo=mvhL;0noE1cj z;uAd1-LZDFl3F%)Wp5oSICYJ=!VGG8F~JLdqU<_!W-3vxJD+`$)6RV`_PSw0?T^WR z@ICgLyCtKH$_^qo} zl=6T{t}LuAj#=%&hA%_JyPKw(W4weHT$(x|XFC*Ah|?(Zs`H8Axxz~x)sDX*Gc)-n zso;;Uc^Y8~6{~z=VVT>q8n)%&2M1Q^s!yK&#PxW@q&KubRg^ER`l*A^jT9qer6Zr! zNue)($3Fh(#y7y(?F4-GRP zYm3leT@bV5d>Uh_JTx2;)|B4D#04q&dW{K$VM#2wtsZxq z(JHCx3-+37wH3O?DW13Ll02cteuA3>5XZK1cmu_hu3&AY0PAF zbJk^ae_+Es*zt{%Zm=#Y5U$%XsSk@qr3Pqa>Lo1fh2!avh@rxRisd2{i=WB%ph zm60x0_RohB&V6q<`Yki{!^PfiCB_%wjayzQm6SarYTUBubW=K}EJoyQk=wm2_<*dM zo1nI{Pk~r7HDVjBsx;s(QmFb%-F4Puo^E%z++Dx@k!wo&kaXwVC%>8!jV-%#O_x3(7vyT^CMX!0Q#9%72Ju^8c>j9^rj;W7f@TT`oe%@0(2yRaYpq zyC!Q<{Uz^g=~a~SZy9zTGnbI0j>K`sFTP@}tfIY@L4py6>b_F-vKANgM8!}kPwfrN)yB#79ITwb_R)=5TN@Fx9NHecD}9<%9*XSTwbvy7>B|Uh z@6*#2`(5s8t<+tO_D%`FS2tj3`bnk)OSlYx393MW=Ab`y|bMP3=VbT8-#u> zl=CgeKYx**lxYIKAUf6iQ`5+}D8tv^Hzj%0%WQ`S@wuJHcL9746$cpsR?2KObG)GM zK5>`#*xSD%2gKP8ztp7fep;2rQ6^c{xxK$X>Ab?(P64x%k#oO4%^HU}%MK7(aiqp+gI#=QoCAtKOgjo zD@LhuNNcyHdScrGP8zaF|d?5R>>s*47^AC>Ld29XUY%$drdD8?s9jTE8-OC-C$h@U3?~ zrcd9S?N%Dk=6tKwm2H%LFRAQ(SYUCh&-}4PMdL4op+WTZz!akHUd!u0>5Y%bhj19F z?2)S@{dTvmSQZwLGp6b@d8w_HFN=qk zYHF;}^~;KK>uu&-HL{1sEpWdCYqO!Pdv36mQ!H;U&N}i>s#;&l6)tipl5o15amFeQw4z)*hs`@QEeNuTcfO ziL=4>i!!&0=PgOMBjrEc+Cml0lYE(|l>jz5_8G2)kOI3~QT zz6A4&sN+Q9f>+{2n8)OBW-e=R?q?B`YwbP4@)}EMKZC%ltw+OSEzjoPZHyVxcaSYI2vmRC(|1Fl{npP=5D zUPtT2X&r^L7o42Z2$XDXwywo*GMDYu4^BH2ek9~~&SQS{i z&WVRE`P#QNZ;3fg+>6`kw_Bhr+Ne!%aFkul>nQ;)AT`uu>+lbA}+`;z`kiJ;bJ>z%d2@CDwi-n9FsbNJjuFiQBfwJ;2 zR|gko$9>PG3VZy|7*%|n>8fdS%yda}P8)lWCFA++qkQX=u8$x4hW3R7Y?wM8-WX#{ z?K)BCxtvm1$V<&(_w(B`$R1Uh{Xr-VlK;Y_?rEl)*|BrV!6BresEdCAH=c|?r=FdL zDoAEDyg4cS!UxZzt>W%Bs?XchOFwx10vemln@0bVE`{zn^Nd<`ses41pi(vmnP4Zj ztfruT9kP$1);wDpZyGt0=Q4>ddllV%q}wBa+d{AzZN`)*<2E{cC=A-ivo0tPZTJVr zQ}@zwg)2_*Z8sGQ|I~BXGq>vN^=PBJgU4*otA^6sr*aEjh=5+yM!e8UB_1#mIT>A9 z&*IlHJo)TZr@?NW_lYYx;$*>7^fK%8QBE_-(@_$2CtWF4&01-zjQMx`t*yGuo2^xh z6tW1FpBSCkIBgXU?-=O6BD7M;jn7WU-E0_2+>SfPmh6m5FZ+1@>C;imc;aqmb}5@ZT~GOQYpPWB)n2_@ zhHQ-mFPwW*C(d4ynlQHS^oc9yQ+!%=E>%s18cA8<3P$g$3*7tdD6&B^Fh4HV_ek8m zBx=T)|3eOYWq|>IuV{Q(&*U#5@9*o-6}Nzzn!N1%=d~w$5{7g^HX4_>4B^y#x4iOgwT7! zrtQLv*yP@GK|&WR-z-+XSxuwkIikg_+8HNoCq1-wacP_B@f7{4J@HI0H`uQB4(_@C z_BmJVZV{9WBN=Cl2CQ}gY$&1F3nHkUvAJw0|Drh&l;Kv|hu@a516-(We|3>;8v;GZ z7`aj2C_I5&bd4Jox`m!n#KwnWV~b@cgAc^jMNp!#=42FaY@i6rxoC)tiryNlri|i_ z)mB2~79Br`3f=;UA&OdLP={IQ@%OE|d15m&K@&U$GD?`n7-2z11<@0V=0#8^wgN(e zA{ixAJPPy#ty4j*LbNu3w7-2W`@pCA;15T}(mHv1GT>){QP!_#ObU>KPQ z8kcRxDA@nK5Bg&e3YkV4ut^Y)#?pu*;25n(CJe(9F$j!Eqk@3Rk!fsz|6vgL7mudU z+5`Rv(l88x0J^8aFbb{18yut2A#BF57y@Xa2g67RP2)j}KM3(c(2Ni9LL!!eSRIi> z>wUO+5F(A^367CzeOWilk-#?pjY0qJF&<11zQ=e#dV!cA2}f&k4|^e=)+8N<5os;` zU>FGyVEu^!{o_IJH>4otpBer)K{AEbTXXXZDLABkQ1A$YBcRE&cDkFMC4lvkAS6g@ zY6}y@(|R#(#_(ubuXq>+bcnzR2%90`iMW3j4E^JF1U!idS3dzyruBh`4MM>pRzg4% z5Cap?wBDnepC$Z7$MPozp$P;Wa)tyv;JAc8Oh8VMK%{kG{PTt2eI)EZtNV9x1Tu|; z1SUrTi~}_P`yzVgv;TGsNd2Y%e_f1-2VbN@2$E@CAvX^U+#NXxh~IEI0tVqZL;@E3 z-x$!}NryV z1Rt1$#v)<>360yFbbu~NXgsYc^I!V^SN$Z=aT75xjzD9H+N6FEL}~q{VHkWM+y6*F({Qzth{!-g0y9L&fqVcrU|>bG-mjYnCJ|^vPn$6cghmcb!PA(w zV1mFh5g71p1V%z6F%ktV1tCZNOZ_zc|Eqp77KaElpcul#R|ha!TkcI0BxA|2%!URL z01tQ`VRAUarX=>4{>eBZau6H|VMt^g896XuM}n&w6kLcBjtuGrxUm8ZLJmTNl}KO# zWFiG&=>S6%C1hag@NEJZB8ibf?ee!)|ET}SBphPjDHsf*paex2!kqwyFhU9jS%3g+ zb6H2zKLtcqxZ6=Mo808DO#~Q?U5objugy>}6oe5{@Ss~iTnmr!)tdMpEtY?02m&gH)t3$Z3U#$42{sV$!c=`lGppmo2B8&^j zAp#e`2*`y1P6?QyLqL#>R5cC_cQFhI$_OI_%7^VI*h?H9sVy7jn(PnAmUwlsE*RE}jUoJwluePa?n({vQJ(0cHaDv!uTmE;bJjiiiJ2 zvHzkIo&=5th=-98i*}eqOqxW2pXorv0R#^4_kjXnv)XCV2_$F4iph9*9tLtmq$`j~ z@EZsq2l5)<^1_p;yJbZNov=UH|OTZ&0_`M?{ZG&J-iq$tkaY@4KUQm2e;CEsea18?Zbb&a8oEivHh>av; z{x}x@b?5{fs)&Olz<{5?bqwMR!nVki|D6H;+*}G4X$7FPM=YO0L|PSv42zB+XrVz} z1)B^JjoVzZ(>51ek-#s2Xw^BwoIwmlxHb`ZHewLKN(r|#B8GxU*R<>gzhVVh2-K$V zS!0PLxTS%61w;-ff+ITIJwU8QYzauA|D=uok{G!5Lj)fpxUYfl9mwj4m_o!8;0H_$ z5gZ`kPE7>vv3VgNiGi~R{O|`bWRXE6fcy^A3<*@ua8;AQH3veD3{C;?XMqCo@FYeC zkqxeXa2o$dUH{gC6p%~cnxO#ufIB}03+_{41B2^~f2-+#lNgu`LR}O*c;n`WvEb|h zk3?8BxM_o}4jf^@-6{N8JmSm`VL@Vp-_6h}d$_-2(G(o~+>Qm5r0_{&L0*H$Su9{D jhZ`%feLTphv7u*B0^sAGv@ Date: Mon, 12 Aug 2024 15:08:47 +0800 Subject: [PATCH 2/4] - Update the trace and debug control by removing interface description --- chapter2.adoc | 78 ++++++++++++++++++------------------ external-debug-security.pdf | Bin 220379 -> 220820 bytes 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/chapter2.adoc b/chapter2.adoc index 2ce3a5f..5f5d3ee 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -29,27 +29,27 @@ A pending request to enter Debug Mode can dynamically change from a disallowed s [[mdbgctl]] ==== M-mode Debug Control -An input port, named mdbgen[i], is introduced to control the debuggability of M-mode for each hart i as depicted in <>. When mdbgen[i] is set to 1, the following rules apply: +A state element in each hart, named `mdbgen`, is introduced to control the debuggability of M-mode for each hart as depicted in <>. When `mdbgen` is set to 1, the following rules apply: -- The <> for the hart i can be configured to any legal privilege level -- The <> are permitted when hart i executes in all modes -- Abstract commands without halting the hart i carries M-mode privilege if supported +- The <> for the hart can be configured to any legal privilege level +- The <> are permitted when the hart executes in all modes +- Abstract commands without halting the hart carries M-mode privilege if supported -When mdbgen[i] is set to 0, the <> are disallowed and the <> applies when the hart i runs in M-mode. +When `mdbgen` is set to 0, the <> are disallowed and the <> applies when the hart runs in M-mode. [NOTE] -Since each hart has an input port for mdbgen, the implementation can choose to group several harts together and use one signal to drive their ports or assign each hart a dedicated signal. For example, a homogeneous computing system can consolidate all mdbgen[i] into a single port to enforce a unified debug policy across all harts. +`Mdbgen` may be controlled through various methods, such as a new input port to the hart, a handshake with the system Root of Trust (RoT), or other methods. The implementation can choose to group several harts together and use one signal to drive their `mdbgen` state or assign each hart its own dedicated state. For example, a homogeneous computing system can use a signal to drive all `mdbgen` state to enforce a unified debug policy across all harts. [[submdbgctl]] ==== Supervisor Domain Debug Control -The Smsdedbg extension cite:[smmtt] introduces `sdedbgalw` field (bit 7) in CSR <> to control the debuggability of supervisor domains. The `sdedbgalw` along with mdbgen[i] determines the debug allowed privilege levels, as illustrated in <>. The <> can only be configured to debug allowed levels. +The Smsdedbg extension cite:[smmtt] introduces `sdedbgalw` field (bit 7) in CSR <> to control the debuggability of supervisor domains. The `sdedbgalw` along with `mdbgen` determines the debug allowed privilege levels, as illustrated in <>. The <> can only be configured to debug allowed levels. [[dbgpriv]] [options="header"] [cols="25%,25%,50%"] .External debug allowed privilege levels per debug controls |============================================ -| mdbgen[i] | sdedbgalw | Debug allowed privilege levels +| mdbgen | sdedbgalw | Debug allowed privilege levels | 1 | Don't care | All | 0 | 1 | All except M | 0 | 0 | None @@ -69,9 +69,9 @@ The dcsr (at 0x7b0) is always accessible in Debug Mode and the `prv` and `v` fie [[maxdbgpriv]] [options="header"] -.Determining maximum debug access privilege with mdbgen[i] and sdedbgalw +.Determining maximum debug access privilege with mdbgen and sdedbgalw |========================================= -| mdbgen[i] | sdedbgalw | Maximum debug privilege allowed +| mdbgen | sdedbgalw | Maximum debug privilege allowed | 1 | Don't care | M | 0 | 1 | S(HS) | 0 | 0 | None @@ -86,7 +86,7 @@ The RISC-V Debug Specification cite:[dbgspec] defines that the instructions that ==== Interrupt during Single Stepping -The interrupt can be disabled by `stepie` in the dcsr during single stepping. When mdbgen[i] is 1, `stepie` disables interrupts in all privilege modes for hart i. When mdbgen[i] is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. +The interrupt can be disabled by `stepie` in the dcsr during single stepping. When `mdbgen` is 1, `stepie` disables interrupts in all privilege modes for hart i. When `mdbgen` is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. [NOTE] When debugging is only allowed for the supervisor domain, M-mode interrupts must not be disabled. Otherwise, debugging might impact the behavior of other parts of the system. For example, if a context switch for the supervisor domain triggered by a timer interrupt is suppressed, some real-time workloads might not be completed on time, resulting in unexpected errors. @@ -96,16 +96,16 @@ When Sdsec is supported, trace, as a non-intrusive debug method, will be constra [mtrcctl] ==== M-Mode Trace Control -For each hart i, the input port mtrcen[i] controls the availability M-mode tracing. Setting mtrcen[i] to 1 enables trace for both M-mode and the supervisor domain. Conversely, setting mtrcen[i] to 0 disables trace output when hart i is running in M-mode. +Each hart must add a new state element, `mtrcen`, which controls the availability of M-mode tracing. Setting `mtrcen` to 1 enables trace for both M-mode and the supervisor domain. Conversely, setting `mtrcen` to 0 disables trace output when hart i is running in M-mode. [NOTE] -Similar to M-mode debug control, the implementation can choose to group several harts together and use one signal to drive their mtrcen ports or assign each hart a dedicated signal. +Similar to M-mode debug control, `mtrcen` may be controlled through various methods, such as a new input port to the hart, a handshake with the system Root of Trust (RoT), or other methods. The implementation may group several harts together and use one signal to drive their `mtrcen` state or assign each hart its own dedicated state. [sdtrcctl] ==== Supervisor Domain Trace Control -The Smsdetrc extension introduces `sdetrcalw` field (bit 8) in CSR <> within hart i. The trace availability for hart i in supervisor domain is determined by the `sdetrcalw` field and mtrcen[i]. If either `sdetrcalw` or mtrcen[i] is set to 1, the trace output is allowed when hart i runs in the supervisor domain. +The Smsdetrc extension introduces `sdetrcalw` field (bit 8) in CSR <> within hart i. The trace availability for hart i in supervisor domain is determined by the `sdetrcalw` field and `mtrcen`. If either `sdetrcalw` or `mtrcen` is set to 1, the trace output is allowed when hart i runs in the supervisor domain. -When both `sdetrcalw` and mtrcen[i] are set to 0, trace output is inhibited at all privilege levels. +When both `sdetrcalw` and `mtrcen` are set to 0, trace output is inhibited at all privilege levels. === Trigger (Sdtrig) @@ -116,10 +116,10 @@ Implementations must ensure that pending triggers intending to enter Debug Mode ==== M-mode accessibility to `dmode` -When Sdsec extension is implemented, `dmode` is read/write for both M-mode and Debug Mode when mdbgen[i] is 0 and remains only accessible to Debug Mode when mdbgen[i] is 1. +When Sdsec extension is implemented, `dmode` is read/write for both M-mode and Debug Mode when `mdbgen` is 0 and remains only accessible to Debug Mode when `mdbgen` is 1. [NOTE] -The `dmode` being read/write allows M-mode to switch trigger context. The trigger can form a side-channel to debug disallowed supervisor domains from a debug allowed supervisor domain if the trigger context is not switched. Although the trigger cannot fire or match in disallowed supervisor domain to enter Debug Mode, the malicious debugger can exploit it by setting a trigger to raise breakpoint exception (`action` = 0) when it is in debug allowed supervisor domain. If the trigger hits in debug disallowed supervisor domain, the external debugger can indirectly observe the executed PC, accessed memory address or read/write data in debug disallowed supervisor domain by the checking value in `hit0`/`hit1`. As the `dmode` is accessible when mdbgen[i] is 0, such attack can be mitigated by having M-mode firmware switch the trigger context at supervisor domain boundary. +The `dmode` being read/write allows M-mode to switch trigger context. The trigger can form a side-channel to debug disallowed supervisor domains from a debug allowed supervisor domain if the trigger context is not switched. Although the trigger cannot fire or match in disallowed supervisor domain to enter Debug Mode, the malicious debugger can exploit it by setting a trigger to raise breakpoint exception (`action` = 0) when it is in debug allowed supervisor domain. If the trigger hits in debug disallowed supervisor domain, the external debugger can indirectly observe the executed PC, accessed memory address or read/write data in debug disallowed supervisor domain by the checking value in `hit0`/`hit1`. As the `dmode` is accessible when `mdbgen` is 0, such attack can be mitigated by having M-mode firmware switch the trigger context at supervisor domain boundary. ==== External triggers @@ -143,11 +143,11 @@ The CSRs tcontrol, scontext, hcontext, mcontext, and mscontext must follow acces .Tselect, tdata1, tdata2, tdata3 CSR access condition in Debug Mode |================================================================ | Register | Access condition -| tselect(0x7a0) | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| tdata1(0x7a1) | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| tdata2(0x7a2) | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| tdata3(0x7a3) | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| tinfo(0x7a4) | mdbgen[i] == 1 \|\| sdedbgalw == 1 +| tselect(0x7a0) | mdbgen == 1 \|\| sdedbgalw == 1 +| tdata1(0x7a1) | mdbgen == 1 \|\| sdedbgalw == 1 +| tdata2(0x7a2) | mdbgen == 1 \|\| sdedbgalw == 1 +| tdata3(0x7a3) | mdbgen == 1 \|\| sdedbgalw == 1 +| tinfo(0x7a4) | mdbgen == 1 \|\| sdedbgalw == 1 |================================================================ The fields in mcontrol, mcontrol6, icount, itrigger, etrigger, and tmexttrigger are read/write accessible only when the access conditions are met. When access is disallowed, writes to these fields are ignored, and reads return zero. @@ -157,11 +157,11 @@ The fields in mcontrol, mcontrol6, icount, itrigger, etrigger, and tmexttrigger .Tdata1 fields access condtion against privilege granted to external debugger |==================================== | Field | Access condition -| m | mdbgen[i] == 1 -| s | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| u | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| vs | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| vu | mdbgen[i] == 1 \|\| sdedbgalw == 1 +| m | mdbgen == 1 +| s | mdbgen == 1 \|\| sdedbgalw == 1 +| u | mdbgen == 1 \|\| sdedbgalw == 1 +| vs | mdbgen == 1 \|\| sdedbgalw == 1 +| vu | mdbgen == 1 \|\| sdedbgalw == 1 |==================================== === Other CSR updates @@ -176,18 +176,18 @@ When the access conditions are met, they are read/write accessible. When access [cols="40%,60%"] |============================================ | Field | Access condition -| debugver | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| extcause | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| cetrig | mdbgen[i] == 1 -| ebreakvs | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| ebreakvu | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| ebreakm | mdbgen[i] == 1 -| ebreaks | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| ebreaku | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| stepie | mdbgen[i] == 1 \|\| sdedbgalw == 1 -| stoptime | mdbgen[i] == 1 -| mprven | mdbgen[i] == 1 -| nmip | mdbgen[i] == 1 +| debugver | mdbgen == 1 \|\| sdedbgalw == 1 +| extcause | mdbgen == 1 \|\| sdedbgalw == 1 +| cetrig | mdbgen == 1 +| ebreakvs | mdbgen == 1 \|\| sdedbgalw == 1 +| ebreakvu | mdbgen == 1 \|\| sdedbgalw == 1 +| ebreakm | mdbgen == 1 +| ebreaks | mdbgen == 1 \|\| sdedbgalw == 1 +| ebreaku | mdbgen == 1 \|\| sdedbgalw == 1 +| stepie | mdbgen == 1 \|\| sdedbgalw == 1 +| stoptime | mdbgen == 1 +| mprven | mdbgen == 1 +| nmip | mdbgen == 1 |============================================ ==== Debug PC (dpc) and Debug Scratch Register (dscratch0 and dscratch1) diff --git a/external-debug-security.pdf b/external-debug-security.pdf index 333a5ed538d5f4df0385cfcb65a3c4137a9cb903..22140b6e0a98cad4ffd11757c50936ab5c0a4002 100644 GIT binary patch delta 44649 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

#qV{BE2X^rAkdcsTUKtG5;Bm4g}3*5C^*5R;$t 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 delta 44259 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 aL=+BLdqy8K#mTdQB*!Kuwp(ux+y4OSOaos4 From 688205770e84bbfa4fe2c94f5983544f89f9c245 Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Tue, 13 Aug 2024 10:29:31 +0800 Subject: [PATCH 3/4] - Remove unnecessary denotation i for hart --- chapter2.adoc | 6 +++--- external-debug-security.pdf | Bin 220820 -> 220819 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter2.adoc b/chapter2.adoc index 5f5d3ee..b16b879 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -86,7 +86,7 @@ The RISC-V Debug Specification cite:[dbgspec] defines that the instructions that ==== Interrupt during Single Stepping -The interrupt can be disabled by `stepie` in the dcsr during single stepping. When `mdbgen` is 1, `stepie` disables interrupts in all privilege modes for hart i. When `mdbgen` is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. +The interrupt can be disabled by `stepie` in the dcsr during single stepping. When `mdbgen` is 1, `stepie` disables interrupts in all privilege modes for the hart. When `mdbgen` is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. [NOTE] When debugging is only allowed for the supervisor domain, M-mode interrupts must not be disabled. Otherwise, debugging might impact the behavior of other parts of the system. For example, if a context switch for the supervisor domain triggered by a timer interrupt is suppressed, some real-time workloads might not be completed on time, resulting in unexpected errors. @@ -96,14 +96,14 @@ When Sdsec is supported, trace, as a non-intrusive debug method, will be constra [mtrcctl] ==== M-Mode Trace Control -Each hart must add a new state element, `mtrcen`, which controls the availability of M-mode tracing. Setting `mtrcen` to 1 enables trace for both M-mode and the supervisor domain. Conversely, setting `mtrcen` to 0 disables trace output when hart i is running in M-mode. +Each hart must add a new state element, `mtrcen`, which controls the availability of M-mode tracing. Setting `mtrcen` to 1 enables trace for both M-mode and the supervisor domain. Conversely, setting `mtrcen` to 0 disables trace output when the hart is running in M-mode. [NOTE] Similar to M-mode debug control, `mtrcen` may be controlled through various methods, such as a new input port to the hart, a handshake with the system Root of Trust (RoT), or other methods. The implementation may group several harts together and use one signal to drive their `mtrcen` state or assign each hart its own dedicated state. [sdtrcctl] ==== Supervisor Domain Trace Control -The Smsdetrc extension introduces `sdetrcalw` field (bit 8) in CSR <> within hart i. The trace availability for hart i in supervisor domain is determined by the `sdetrcalw` field and `mtrcen`. If either `sdetrcalw` or `mtrcen` is set to 1, the trace output is allowed when hart i runs in the supervisor domain. +The Smsdetrc extension introduces `sdetrcalw` field (bit 8) in CSR <> within a hart. The trace availability for a hart in supervisor domain is determined by the `sdetrcalw` field and `mtrcen`. If either `sdetrcalw` or `mtrcen` is set to 1, the trace output is allowed when the hart runs in the supervisor domain. When both `sdetrcalw` and `mtrcen` are set to 0, trace output is inhibited at all privilege levels. diff --git a/external-debug-security.pdf b/external-debug-security.pdf index 22140b6e0a98cad4ffd11757c50936ab5c0a4002..df21bbc031f379209cd07a8b98fa898d96c60aea 100644 GIT binary patch delta 10973 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 delta 10973 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 O-bbVn6qHw2p!pvc3|zke From f713b3cd8363e7a915d24070bf59860f754ba7c8 Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Tue, 13 Aug 2024 10:49:55 +0800 Subject: [PATCH 4/4] - update wording --- chapter2.adoc | 2 +- external-debug-security.pdf | Bin 220819 -> 220818 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter2.adoc b/chapter2.adoc index b16b879..0960ea6 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -96,7 +96,7 @@ When Sdsec is supported, trace, as a non-intrusive debug method, will be constra [mtrcctl] ==== M-Mode Trace Control -Each hart must add a new state element, `mtrcen`, which controls the availability of M-mode tracing. Setting `mtrcen` to 1 enables trace for both M-mode and the supervisor domain. Conversely, setting `mtrcen` to 0 disables trace output when the hart is running in M-mode. +Each hart must add a new state element, `mtrcen`, which controls the availability of M-mode tracing. Setting `mtrcen` to 1 enables trace for both M-mode and the supervisor domain; setting `mtrcen` to 0 disables trace output when the hart is running in M-mode. [NOTE] Similar to M-mode debug control, `mtrcen` may be controlled through various methods, such as a new input port to the hart, a handshake with the system Root of Trust (RoT), or other methods. The implementation may group several harts together and use one signal to drive their `mtrcen` state or assign each hart its own dedicated state. diff --git a/external-debug-security.pdf b/external-debug-security.pdf index df21bbc031f379209cd07a8b98fa898d96c60aea..a10d113ab024192c855f330fa4e921925524d1a9 100644 GIT binary patch delta 8280 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 delta 7495 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 v%1py`tt-D=l^K5dif`Wnh#<~9oL&bN!