From 987dfacaf518d4e2ef642a65c0931b422065974e Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Thu, 6 May 2021 01:47:36 +0300 Subject: [PATCH] App Inactive: Support disconnecting when opening in another tab --- src/App.tsx | 24 +++++++++++++++++--- src/api/gramjs/methods/client.ts | 4 ++++ src/api/gramjs/methods/index.ts | 4 +++- src/assets/app-inactive.png | Bin 0 -> 100085 bytes src/components/main/AppInactive.scss | 32 +++++++++++++++++++++++++++ src/components/main/AppInactive.tsx | 32 +++++++++++++++++++++++++++ src/components/main/Main.tsx | 18 +++++++++++---- src/config.ts | 3 +++ src/global/types.ts | 2 +- src/modules/actions/api/initial.ts | 6 +++++ src/util/activeTabMonitor.ts | 19 ++++++++++++++++ 11 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 src/assets/app-inactive.png create mode 100644 src/components/main/AppInactive.scss create mode 100644 src/components/main/AppInactive.tsx create mode 100644 src/util/activeTabMonitor.ts diff --git a/src/App.tsx b/src/App.tsx index 6e1a19cb1..e72b669f6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,25 +1,42 @@ import { FC, useEffect } from './lib/teact/teact'; import React, { withGlobal } from './lib/teact/teactn'; -import { GlobalState } from './global/types'; +import { GlobalActions, GlobalState } from './global/types'; +import { INACTIVE_MARKER, PAGE_TITLE } from './config'; import { pick } from './util/iteratees'; import { updateSizes } from './util/windowSize'; +import { addActiveTabChangeListener } from './util/activeTabMonitor'; +import useFlag from './hooks/useFlag'; import Auth from './components/auth/Auth'; import UiLoader from './components/common/UiLoader'; import Main from './components/main/Main.async'; +import AppInactive from './components/main/AppInactive'; // import Test from './components/test/TestNoRedundancy'; type StateProps = Pick; +type DispatchProps = Pick; + +const App: FC = ({ authState, authIsSessionRemembered, disconnect }) => { + const [isInactive, markInactive] = useFlag(false); -const App: FC = ({ authState, authIsSessionRemembered }) => { useEffect(() => { updateSizes(); - }, []); + addActiveTabChangeListener(() => { + disconnect(); + document.title = `${PAGE_TITLE}${INACTIVE_MARKER}`; + + markInactive(); + }); + }, [disconnect, markInactive]); // return ; + if (isInactive) { + return ; + } + if (authState) { switch (authState) { case 'authorizationStateWaitPhoneNumber': @@ -49,4 +66,5 @@ function renderMain() { export default withGlobal( (global): StateProps => pick(global, ['authState', 'authIsSessionRemembered']), + (setGlobal, actions): DispatchProps => pick(actions, ['disconnect']), )(App); diff --git a/src/api/gramjs/methods/client.ts b/src/api/gramjs/methods/client.ts index b708ff0c7..901b01723 100644 --- a/src/api/gramjs/methods/client.ts +++ b/src/api/gramjs/methods/client.ts @@ -95,6 +95,10 @@ export async function destroy() { await client.destroy(); } +export async function disconnect() { + await client.disconnect(); +} + export function getClient() { return client; } diff --git a/src/api/gramjs/methods/index.ts b/src/api/gramjs/methods/index.ts index 493f05305..6ae1d87cd 100644 --- a/src/api/gramjs/methods/index.ts +++ b/src/api/gramjs/methods/index.ts @@ -1,4 +1,6 @@ -export { destroy, downloadMedia, fetchCurrentUser } from './client'; +export { + destroy, disconnect, downloadMedia, fetchCurrentUser, +} from './client'; export { provideAuthPhoneNumber, provideAuthCode, provideAuthPassword, provideAuthRegistration, restartAuth, restartAuthWithQr, diff --git a/src/assets/app-inactive.png b/src/assets/app-inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..f2878d7fe74f4530ca8c3e19c14afcdf63ea5b85 GIT binary patch literal 100085 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

*uap@)xljA<5CAWldyO9mBA9 zQKi)2DO+))t)FDGWHI9%F_Ftns@+9mp?C=3fWNG1-1_>Ic+mPCL3vfE9*I%V-QTjO zz0JTet{$JE07x_>==JtK;Wh3xS>mopV*lU(pr=EbBWl?I`u%$IdJWpLmUzaC^D{q0 zJw8pI@RQjN%$x=0igjQto8b&{>r*UIOx{A{AEpFvLWqr;()c0Y2 zZ+tsLtxPoFE?Am!Dp&k-_j*3v*_L3q8JvHh=TLu6r%D;78gfChMEW)H#AsS$cR=)e2(V^96Wvgq{tV8f1HmzH)r-WBLfys(`y0 z*4KwA@g3`4A2n`+^GDFN!c+R|_$vqKY3hZ67!@_~db0CsLDho`YYn^B<(F{RELZ6H&5@8t zIX<5LMdcP8W7S3{U2|x;LQqwK4_nt9=P*vuuu?DK+ z88vC26Ul9#h#Aji;?~#M!||5n{U*V@&NV+H;xef>sOk3~6bgIr>NNKabee#(x?hgb&oN$O!v*hBOjy9$1e=gNg81sc*KdZ_8Ks3XEr+CZ$9W*Lw(Z z#e4T5LDyeQ0|Mk}L^mJ1A?GwN!>_Eb2YF8gQg&!`Kx2j6pbH_1=g|bg-j4iC)$b=0 z7lB{1(;cLp9|=F(e%m-ws;z77@_YCag(~K`OrU$56CtJxtc`B-*jyIJ)J#V2ZoU;2 z=7B3@d3I?bcT$$Z8}w&Up6~pWM0mN^oo@AHT0*N+; z!B_c_zIu@iW#6o1ZJJ1>$E4WoSe;X@;M0V}q8gc!#c5N->A76)%+Cus3b^H9_es<4 zo&Bfm`qP>6e6q~P9*gFqiigKd& zePGIEU zG`yIb0^Nt_byGW*tp(mCLS8l?7tJsT0C#hJuboy!@#mP2%d}?;w&epJbfE|8j{{G= zNgfRma?%n_G051+8I*KVG$l4r%4L91NerOu;Mq-%BbTzan&jgLo3kMUiW z>=#nh!eJXyue@{Owi*gl%^duV3MrWpx>JMeaQD%9jx(8-0>0Dg$A{kXfIZf`Jh!W((3=Imf>T%VvUHm-`zi(GZzDeQ5Eb(yas*hLDP+Mq5f#1QU$(Rc#9O9xu|klT_AW#V21ReiWL*v3!r!;jmW6 zSi)(B6o-R92Mc2Pyepg80SFY7-$p-2lKwV%YZ~1qTf#~dY^u(UQ}yJoLmb?c8)+=l zA;8>=H&|f~VU3%mKiE6w&Y5iU<=fjo3AM84aKuZmdVo0#uV+ecj%_D4w&5e(JD;@i z9fr*$vlwcF6Zdk|g@zHxPad^^o-6DCP3fgshxD`*G5AzdqknG}&5lNCN8g)e(~I4* zSFy#Zpm^Yne}DcI46V{!+^svG-{s(Dyv0Gsh}B1G)K;j*tvF_#T$Ifz%q)%RW{{D4 z2f%oaC8dzi9Ir5;s5w>3S5$r4ilQ-;eEmTijh-J2@l6w#jkJfhLV2OA^DEB$(9Yk!kl+Me{_nVw!5^vQO zO6WC;squ+JOt{f{Q)D(PIzRFS@{Xu)o=TizqfRbeNyTo8` z^rsO@cDAspKS;3EtLHbNO9J6u$Scfd9+G{GvAbgdB7ff9(vfIa{Gv;MPOV~ z8`2bic74Z!GTuQYhr(-kO)2#j0XB@R@$k!!$~GTQrN-qmzcU5|mcRqsMGg`Y5|w>- ze|6v@N-hRUMb%#HRiiuqDt4vaqO}%0g!Oo3%g5}Lm>#A{?EIX30?OEY=>Kb~_wT!J zpa2p|1=n_NUyrJ{1>G3Latb|6hq|lW;`six-`t+410}e5eNp=Qi@JotW)L|1n;4hn zSV%2ar%!9ezepa?kEx4YvzqQu+mqkv8`)%^jYL>~Ceu$xm?}5aRLwfn;FJcln`IGc zX!_V&u!b7bpxKFSh+K7lVcY79N&MMQDmsY6r34fXZ;Lzklla7AtWT(Nn8dl&ZK$kU zh2)J4{X$5XP`pE{rN+*Z$Wi@q?0A8&TejiYW5;ojisi%4rd1Bb(`KnoW@IL*Y#A31 zW6SOhH}~f%YxhyRc6mOED}PA!(($=XUQv;l)fM_@+ZpLNMmw~8%PP)J&V;Jli-P8n z%3nz7l9Bc!^;ibn1GlH0qxTJ&&X^O2=+H0NPGVlqwQ#o-o;u^$s3(+mLgUOY@Slw@ zkM1#b^%l|7#H5|vJG%@ncb4Bjo}8_9TE~+VK-$~eeY>CAOTK$J#$8dHE!JV`X{nW^ zdF8X9?K7-7w4zKFBGYg20#+%^*Ag9iPHyV{zWauU9 z!~!_{6nTI7hzf2a<{2mXMW)W?z_yh_w~8XuDkc9td34g&ui_;yMc^J;X>>P!W^h96 zHHTiAb-hGU_3d{RtNEKX+IKAbQ%BhX8aEqZ`;%G&!ahvk2I1^xHV&5_7!moy3lBNl zCk{XMR%A=rnTq_wXg!B*C{5Vek7~_`s&RW5!veDv_a0??4Bbp5SBa2lUW z678e-E0bQ`@aVHMomM^y7!Pk)?>|QQXC>lzo{_0&kwGs0&aYq&q~?mJ&Rd$RKd76Z zUMCs+Zcy?S8GjL-?&GuG)>k-Ek`pb!E&pNBi_6kG#9qH)?P%xE7-Hon71Yqn?SKlF z{fYGSbf36{g=@SVCs5v!llp~*xTyfaw86l1{TdiKf9wPC&%>49JmUlj*pe`iQ*#MrsHAd*V{_Txtc3$!>Z{g&0!uPg& zIN&%7(rePwKM=({pMw7}WEx_oexae3G%D_aeU1Gtx^ktBXGYo1a3`(Yni!SOnO9Q#G~U$~R`O!EuM*pXmS= zvRYE#Zhsb6RtrgLrt0(R(+@SZRK6aXCwR3>OQX`c-CxV7f$jxF1CDXap)~Yz-+KlE zzW+xG4F=J|dfH>{2PjGtvM9H_)m30Tq(@3jgjVUp0U}zO>58YabnDMf;Sduf^A^(C zk3yV+=2-gdqh2v_RGEb>7=o@kCDy_m7sw7-eCZ@*b;CldNENnzu*p>KH@0#bEyCA+ zqRXCSdmi3zO;~Jztn-F`({b;_WsW*HZQ=2OeT4P$mmtwt><@gukjA_?P*{4(S;l$# ziENOjcMJ1nHG`kty4Zy3!AJ7zBrEuJpEEfU-0d`$J>BO$uOEM0H+6Au{M>wo)?IkS zs*Jds9aTAFCcJco;UGYjwZLj!$9aE8qV5BE7Pv2xcoFM)Ucb$lq}mZHIQCAt))YNr z-ckmjUgu-rA)&GWMw5-|?PT1Ch<9%*ZGsYZ2@%pU2H#37pu^efg}=qS=hHCt!n0t`4|Dy1 zR&ioyVt#`#<&`8a@aKb{+#XwFc}EbG&f4@TLxkppn>7Jl^B;zK>G&TI)hmxyd8+%- zv^#&bRti~*ea^0D>gkTNCzF;<5V=fglk+f>y=iq?Al+jEnY&ub0s&vjeX*FTo-MO1 zmEZ|bNae1D;hlg9CC)%zu+9towS2f-d%1xT-LYZT4)O2kX)Ph=CFWl^%^A-o^izYf z_uTfQzwU~7`vf@K4OduUminWrSk1|L&E)HZBPITPm!uUV`!G#bE)1?YD6M5qwKCcz z5Z&WGxg(k(b&m*K*@O1j(nd>)Rp@W^BcR)|hFR{H30up-{&}-&K}ZS6dUW7Wpt1zr}_2P zK8nB3(~e4*iLS_ARdK#%zq@cE2mYbCe5oU&VT+eg_TcpV`KXTh6vVecyGpYoj~H=P?k%f0Q9}_gsDiyt&*1G*6 z1fbz*?#+x+JFiRZFiUjqFU09R?J`SjZyh9x3^T8FyQk-Y?h2%6xi3^Ybnz&>CO&Vs zgY>V~>vGN?X|i2j%cW(MJ#xdsWYnq!9>2gA8(y&P`JO#IC@fHw7vezz?Z$kF5u+9{)EeAQ43UyR=`*eixZWmt8p?Y;xDf+MFUlWxc|c}lUbb*w z6E|T5?@uF0&%k_a{~M3hTsOa86zS;!54*5&#_BaB-68(l8c6g$b^9pOo*{ErOt0&p zSG}!IJXdM0N2gZ@qk=X0?JgMKp1SeeIP3R!cqj@hG?8pnfM?{IBl(=WIJyx;b#%!& zn2Pv8?j_2K$x=FtLR0-Sc+}g-QwLm}F@chVT}wS4jsu5RdLFAd8s?>LC(Wq!? z$1H^{_)SUC?LvitLA(Qi1EGn_Ar|sVOhcw`GXqkSC4g1m4gQh3u`3@uC0^P)s;Y+4%`a zv>GT4MZC_;3DF9;HC#K-RF+2iC;8{Ow;1VQ_CRmyU|sKF z-etGMUEoI0YamQ2@!=kS`}1Q381*DC8^%4^yn%vlU|hjC$rMKvKZ+bLJsP8ZT`g{Q zUfmtZ>)a;2_<7!oHE6^LSDgi8xD*qK&(zTJTvQT%UY_$OzSjh5H7(m77A9-!;^i0r z6LEMZ-_nQVpJi5PD5KK+IMX0|oe8|-PaO^jX38+Fh1x}d=<5tQVty>6B95lP#+p7` z@a-hVpKNcq=+mh6JnXf1>B}YrrHx`%jY4`A8Sf&~oB}7I`>9J#E}kF0U|6JA{vW!Y z*N9F2`a;ohL$rQG{uQ1wI_z+xXV2~7hrECE4BImL1o=#6p?JQ&sPq^DFMXy%RWuw6 zj#Tgl*2`)Ym(7#}{2`V;p~mX!7EW*n{zi~{KLqqhy*Qq$p4;VTEIE(Y@u$O_>Ws?8 z)lX{G%LYlSxaIQaw#meRKW5KsKl-MRf8KM9{ieoMN^NU8jedk4PNZVW6VQ*z*qf1EIfC5t=>3yPJp6vR2=eB5XCv7kJ>|fqumaH&dEc?h8C6qUTOMnL^ zU6(z$9nJ@vZ_6>lt$|ap)ILqXF`cQXv0+)IRp)*b=vLr_j91-d(jfI+craquKc?Cm6>Ohj8*eZMbn$Q zUJa@F5!F5(U|4TYoGls65$G+mSl7q8W5;Q9cW!NZ-U@nluXXpAVcB-_XRNs zLi23Feu6G_xRP7R7QAZ6x#*EI-7-U;rl8>cTgkThqg#-d(i(3}FS4m%rQN09VpR3uNclvL{HEU_ufAMBDHMcfgsT~H-Ayop z|B~y0iKN{`Vd@jMK+5o(V(pNY#u*a51Sd5L(ZegO47o4P)l|14&Vg9`jz@|;)ze|x zE9TeuDuor@>}{E`j`Pq|>Jq`6RGzDXZ}0&37p z%w2LUaLzB+V3lnAYeii=QiDjhcN3z7RQQ}*w$2b(XC?poYk>9jI)Qo)n$-Jzf$3Ch zl$K@lZI!&itAg|T_ZwvAZr8!qo}izrxYm@AZ-ljFm^1m?2M5z9p)iE{+l!?VNB97| z>7-X>QMc!rVz=UnR$1vQyy+ixOJw&hv%1+_vXi61U?+gF5TzopSK2eKPFeEqWX`%y z>V{x)s@8y0k8-npytU`XvFAAl;(GgnSSWuSusb;Oz>#%I4CgAniE97lTmW{DJ+;1` zf`-aqBbl3heb$&+3B?Qso1Ly8f zjguV^_4JiOD&xUZfz1QM{)pw`HF5=NKT4ighraT@P9A|Ac1yKZdq>U!OO8#$kG z=Sid0$Wa&@G=h9A6a50*Q1yIxf~{1#yK80fi*a(bQ1oV}(b`V~kt|Uw;W97XEmYdu zPGjS>%{A%Rh&6$y7ZK7rX;mB&kE7O4PvE>pN58oF?%R#Wr%}+ky6@ASYGtKm=Z5qb zUUI=e&#}#yE!2;jAB|qXevR9(Io>p{2dGac))E%&T@76ur1YWhZQN>UOMC9Nrgff* z;M0!N@&fNdZ)qUzw+E_~KcTb;GIESWOy4Td#!BcJ&8GiKgmu9%!F;fhOq1jN2a&D> z+9mLfL{zB!ppboppT{ew@gha^uUclgp{qp(d5shIWr_Cji=yGXL!@tTNPQ`Iq%IYE zoQdD0{$qrXlo?sj$DHE>djDnq!Z-0D; zP;C8{)LE;LYqRk?>_vz%U_lY1*mC&yEAQ)+U$(LoL+P9iuh~-UCk4*ApNHyj0(a-}eMY z_R-nyntF4X7kxi>K5R|e5R&Z@vlw6SKpqDUgY$APFBGPP0zJQ0v7K$ep5A-I(Q`53 zyv1%^V@b7z92X3F80ETqeUf-}4uIZUJG9ty);SCI3JSbV{k)XGv=@0iT7bo|>}P&v z?IpL^b4#Xv;!b5(nw%66_3tTm%=bvVBz8Cn7R$O?Ra8Y8nd0PmD;OqzeH|Dlm)6gS zFhC5CZdDW-DtJGZR$)r?nMzjEvEaV=9>EJN8-8fsf6+}Kz3Ard_v!hCNb<^e$anl( z&+RXx>@`rhLAEX2jB%3wOC@P4!j?{q&Ey@G;5^LJ_kRV#^0$>4+F*1fr<_m(%a5uZ z=#C4? z%VXEAA8e5mMUk8t6;4@h>9Sj3;LyYbQPoZIgx7$bZ4z*7cBLbn$bS292j-Qq}I9B#J=3gpHt-$Arx$ z%7u(s(!Qi#+)%`a`3z~9KHCI^{%?Oo2Z$Cj@*jZzzV8^c&{-#ElLU5JNi9Zr^sQik zFd~&H&6c%-#u+>gBW)rR))l|^_x%3Szk$t?ELwcsg=poZgt72AhzVM*`t}PS9Os^O zM|(xxuIYxtWbz%u?p>%)II1gO&z}8HP9Y&F>mKi0ISx{Oc(cjkyM@RTQkV+gr|#~ja@~EGw=jpzxxvS#uWu5lB}z|)R{+?YIX>aB zH-4Y>Jo_3RzqZ`Mz?458l+xnd@pS;y@5-UF^vv zWCGqPer3VB^rv&2LmS;-6Wfv6U~b_?zSFvy8KshH^2scB(u}%#^1( z;%x;w(63quT6cMP5;|TW2ahnjZB-&%D9sbk(+TRV(L&mfg<%Te?#?w4H@vXg`R5^z zj{LXwssFmv%elgIC~VBy1BND!2%{~9WM>sMEFiAPl9kyB(Qx!@y7KUhvr#ap%KH3( z5nB2*g2jr(ema)`2m{v5@!Rts=c*D!vxOsBp%H!_dg-UTJ=@&7y9-|qz+s_#qapnc zUB-5!cuX>^kG-|k{js?pg=i?%DB3Dt#*2lRA>d(@3?{N-a&ifG)Cw3Cg*_vlt+mSl z)vC)eTxl6M)f_58-3D{FIaHfM)_|2r>WN#2RVMlB)9Py!XGRQ2{p!%DAMWdW&c!#j~WfJYto6EBbgEe z-5~g@?PxUATFs|awCl3OEPVP`v9l9=K1@W)CP|-aZxd!J6qJN_-C%p^uJc-tmOh!T zFNnsw*gZTpnq3Dt%Y&OHm=?jkX6{hTk85vyE+pZ;^3MnDz|nPZ)*E;`wB`U~6g-h= z!_m~LE1&P~YWLjFAP^?^N4U_@7>2MyoH_$HrcTni6~(dk?_vC9!fRZ^eR^q{eV@@BKbgF9NmI)wr+5~brz~cUx=qQL&OUEjVO-{Yo#=d zt;8_@_CukKP)%gbQK&)jUmSJJN~EvQY}vscn#te=sU9rK zSo+am)APp6!~W2l8*G@b294kR3-tS2Jv|j-?Kl?oV+1g!&gBqUwbP<*@qtdXAfVxS z>_?x$2G9RzBt8eLoY$|LxVv6tS1n*8zsGRAD4b6bYJ8Td^h*xzpBt9^!a)RY9dJuD zL>rbZ7o~x}8ae%uPA(=<^UZ)l2WR+n9FanefY_?40-BNz9fC31-H)v;v%I3e4Dkt& zjNWp09AtB7)6?wZ>yJ&Qij%SA)|{57hj9VnqzaLSfGsZtZc>SB5a@&L~NZ`A_70_J?8H_ z4m2vE07szuHjKYGOG2)FOqUcZNLpl(`n}|Gqz{)wgo{mUg*KhM=WfXnS8p<{nt3GV zN&7luSJG*b^P|l``oD3Z<>2?3RrY->={-gbCf$YhPApcK|8faMC}W5EnQJ6%j z!a23-$`R6%eEQt}#V+%)AA)tsCr821UNpb5Vo;(NYNu?3z5^eH}*;}Og9~(WG0@6kAtgkY}{b%jK)om7TCxHTj7x4 zQBc6TNVq@_>IbnTmKw=_QVk;y2bm%I$r&`FHCa4no;KNf&L2 zrnTMT*26-k6BVIFUW5(X>X5lwn!Gjl2lWro78FA!CVQfbOe|PiE0+s_uTpg`J7gD~-mkOIf;$VF3 zh8+B_o>cVtldH2LF09Vl*&+0r1WzeUg(t;`jB4+2WK|(RK=Ay{Tj-Kj!(YV1TO1NU zMNJ?$+Zc1F4}P-4R#V-+G)_o$4&Nxtkv4p{c?C7>WctR#Q5iUob|~_uUjM}1#pkyi zaL(EP;}@G%mzy2*s6GjU$7(QJ+uJj%aN?criDNH zRISSMg6mu+@p$6)qgQKIG78j-J3{>+;&TJT*T?UrJCP8T!$=-XY*(n`3Y{2?^S;gy z_4^OQm^@~0^(6^$tCrq(eRT5IEfZ7qE4CWH2TzT!zFB1;Ub;rD>fG>`!;DZhY~4^R z)Dl~f@U>NABHXS=C>}T+JADz`v}F;AhnS+PD4cEU{yymj$%K&Sqt&Q~( zNb#0K+-SOTp5Tq_VC2RV`CN&$<+BCJjtIu21o$qKz#( z(H&Z-R#h31G{Q4t8{XW6cMpY%+@87m1Xu!>1skFZTrgvu-PvT&gEuxlq$u}Ew(`qG z9%rJ6Fe6G$>-Z2zt7E~tCV$W+xR7Hiq@+>3hqhAJ+xlHQ=Uonwz-%uzoskI=FB!)R zna6SVJ@*sNF5q1xaQ9x>*(v1etP|qu71Td5@s(^osvP}1L^RpD_Jr+8Ci-LoW5ciQ zo#ONGrmv!bV?$cqa&l~&^4Dm7S?w9k*hvQDS`Yo88ZOs`RP!H_W5}QRiq5qYF>d0g zoeygB=CVQZz3Zif7zNBHrK`wMTbj)6birr_b`qsnl^+fbzY#`wE`QkaqCP!W$NS1p zA1iqog&nM+$~=D+vsYTkT1D*k_sjH*Hw8QS+gJoeQ21T)XaH>EeelgChG9Q}t&`gF zN3pWa4cZ%Vv{63?Bp|FT{BO)g2;rc=6GWCz~#iHA8xf;QkOO`_`l^s81*<&on-@D!4E$ZGJ zeuHcf4_h**h9#9pCvr%opykW*8%)(>-{Q?if$~o?aM|YatV8q>1&}#ktbSUlY7Xr9 z2G+g5MX?h1%+6Zn`KM(8FXrgfVe510WlwSApwY6tpr0_BMRmg$Y)ma0FalG6Odq%G zyZn6ZV1Ed*V2tEC3KdSVs{Cnhu@tSl6(iIqYtW_m=IbA^Bev-qRWE5ph-w~^bf2xH zgYu`u%G#!KTe0P$Ov;@%{%wcwwHq=4Ux^exz@rhzK+>!KrcK;vKagT;D927ILvEkJ*9l#4R^C7enSlJG5TSgJ6p^3JBwCqRDacoD|J2in{;RFX3+r0XsfE_|O7(+iRDXMEpaLlw@z$i9MRT zFbmcgL|b*>&lN2$ufqQ2^N+aFef&Z!eU`+>IIXm?(U5Zm(0Ss0^{#W!Q?}{LB@vft zjg3WEtbY8_&=8Zv>v{TqLq}`x6wCn!5iU(ZuUcT!8%vTDmqxRLqj*p>_M@g$!&ZCU zr4iewaL#jS18c7D7cwfEsdXG#p4W+ml14A21diR)^=uSXLofCyIoO-BX`wl6lG*Sa zc1fQz_hPNqx0r`fY{ZGUV+cgNqKzJ`R1f$`8F3`66lsOm9&=-Sm2C0q@$Ij_C_Yw;PUT5}ulJOr#iA6V zSd+h-?X&Mjy0kUs#&(x23-h!4ilt5qWwQhH02*U<=I!ZqMg=|8%qSMz(|< z^1}+rjgD%lUrgyHlqo(Wg+v`WRy<>s*tTKq+oH_`b0}SMOnfsu{EkQtz{Q13=&NjO zP4<5gh$ng49Y_}yGInb`G^kDcXkv1C!JMbH&}`s#dU^^!W;F+RFw>~K-t|x&@-HvT zExONcJ%e1mtolE}vK1qb5K7GsMVRPXAg8Fr3MjtC1YBqk67Hq?xv4a_$#6@^jtNbw zYqFxDpZs0~YKKt5;b8|Nv<4mxQ3YJSpOB=AZYZ*^)i;$WGVTekrD_rV_Nnd#>%}sd z=m&l0Uy-Dz_QAHsJMz+COEX{;E0M23kL~-shKlr2%;v#I`fk3^WZ`f*MiAy(1#f;M zefWa^b>{%1y2yJx>El!V3BUXiErUJ_5Cp+9|*Bq@8UE6Ok* z6WqH6C1tkm$E~{pmKoHRHYNJ}(=nZ7BQ>kB1mDOdV`~%}n7UnD66C%-)d{`s#7I@~ zl*CDEC~*DkS`h$X@ci8o?z^$mn=v7b$mu-a%BDw98^N3X6yXyagx$%S^lQ2WLxok( zwT){De`0vsOBNX3@0ychd7ih9H!{BNiH=uzsxZf=(hXjPP+$EiV%P`*hxb0rfCHX} zVBY6`uVXa42hz5#uC2=*O2(ojcYsBcs)-nIZ%N{Ot^GZ?6SDdD(X?}z0@wNk;>+lC zfd4V3_>n%WEx%J#iq7XCj)ZeK zPbR_EacpE4G#uQ90+#)c{Ok`e2>$C^)D*N>fkwTBof*N1gOQ~9k+qFzO~BKr`7d;X zsnDdZ&zK3sleEp}OmYSqx+T6C>Li%4KZ^}Q=oKLmN!SM5f zE3X|Lom+qssuA?@C7Kc`&D`Q}Dt%4v;1vB5{6}tDn`!SE_ z?M7;f2;Z&x8%j>QBPAF7=^pjll6)*lq8%JvAkyHcA@3}TtPZu+x7fjcGy)<88I)Vb zFdR zq``5?>kN#~uE5~CRE%xM&Ti|2o1uSgemWUD@I;XfA z@80Bgc$nOf`A!8UJoB|Cnx=CJvP~0cB$!}MLnX6S?kl46f@#@fx;u3j?S3yA%8&yd zm4`n52V_GG{63-K{=zLAP=YrN#PxX+FMW|h_c*ue^VCG;dyRE|Y;KlGqBeS-93d!} zZ#a&XIZ7J}WqYID-yU6pdY#mxM@xUW5fzVw@c|G2H|jXm*Y!WSVZRd3W{UR27c|vB z-B-NNCS)N~lKU8{*=jE=`K7NO*M2_U%U`ZjD57VGj#fOx&M7@}uU>{7ZF!ew_PSHh ze6_LN#P#MVdvAdVwikGpE34}6^d}Osi=>ivL$r~#|dVSwX@12>-+bJvY{kW&1IXpt~Zwq{3KK5+3Hq@p?RD>f4e2N zE;={Mav=o%AMmsjuHqkW&x|J5Q(`|!#%dG_hTEPliLeNY8lF!U zS#0=w^kpUN6U$|*Xz?ac9)^AbO0;L@Wtfo69?QBdNFct`4bO0A zdhdmO#Q+aLys3A@I|PXOYftqDgp>nh5421yRfI|=g=7oiE28N`;Xh+>Oz#3?vsCFfJY5J{LZ%l`%!pL6)q|3Xc-1|GTsiv~go!D6V7 zsDveQYTQd#xzef0k!5+$*%GgfpaIjDb=>`!^72k`Hxm6MUR zIBRRVLZgy&7({8ofr<>y*UmAL8NPSH`9zEa#INtzt;>wBp`{;qQXXR5^-oaK#0DUd zPze?Q96HewJ0!_;5WSq)Y&vvDp=gNut)Au^xrzqf^=d79u}V&GfYZB4qWL(6(kSnX z1*}1tOAgifSi2qxxFkw!PlUkD8I#`P_J=Rf2lt14N{w@zq))Nu(;Ry51qSLZ^pD;| z5*!VP#dj4slQTXC7bc6B0aDnd)fbJ@S>Im>zd6ff>qDz*9bvmCtU3*f3I>Qm1xw1At&SrejN$X+b6;VSM z0w*7ikQ*Hm`b?z+5pEvX0m}(X0 zx)IO-4E-yKhS!Nbm^N79q_a@PFZoiE3<3fiW!6bkxkBQ;9lIo^A1@~VB5(S=;y6pJ zwe~!yA>_!#A=<#vXTnd&$F5o_zTf*vk&?WKoVaSG|J@>DzV>}cYNDB-0_op(3Gcf> zizxH?>d0Ri6-g+=I1O47x})9-TqjP{vtcBPEGtDC;8A&bUgCV4x0_!i+{-rqQ6I2x z_X?ldI8V*DSGP~fxdm9l{wh{rG~?uK^9S6tICY@QH4Q~U+rs3@PEKI(dUDWX(!Eag zyIDQnrPOWEtl$y(NU%z@(u$Rv!G^>{UJbn_7IQposZ*Gnb>jC}MM1|SY)asrh}}EM z+;7`E*p0s58OfxObv+^ccC*LCl^585r4Aak3j9XD9#Y8m{dDuQ*BzWI6L-iz>FIx* zTePTlhOSaPZ6!WKaRxOyswMZ3?V$ow;g@|k?NxYVM&X1))*tX!tK z^m6^%Gvb9~4@aq7Flg`sI~?|xq24EM8ZiU>>9v6C{ZMzXol)KLc| z;DQgBmNin6#*e~yb;f}rEXHxJi`ppjSM_&%OKDBCSO!@iua2F)dp?Qh_PyFQ}=oROop-4_(oN}fArc1Fq0ZNZY|)YOO%|PVWeRg6^eqRgBkVlQhtmdhBqO} z^5q$jdRWC`F|-;8XZ%TD&qCM@uK(by?YWT=TUuQ0xeX@TVZlHA;=H|{R(4wCEii-0O44TR-(gV(;RXl)zOL^}>#?qp_NVP-BwF5L=J zinBGKhriKM-=Ciol2wrGhocesb8|?>CH}I6f!e&fCD!?*V`|9E<&yg;T>szM4$p`w zg|V!IlB>KK5lQaF!XCve6-Q$&c*#sj<9&FV^vRhBNEpseaB!lai)7e8R!dc^wtasz z3N*a=vYdCN2YTjKH)%nVkUMk~1|sjziJh(Yjz2%%>chk~eS4noq;Mp12=TJsl>ltw z8q$~^+?FqN(@iydSSH5CZmvO-FkPVPW~H!u(twV@bB|7VeCFvw-E^kfXa&l>`MA#= z<;fj4URr$`iSeQlY zIuVT=kG=nAB%t{<}aa6%?fC%$9p6@H5>74e^Dml{__j`xZA zm?n?yJF-LZeb6HvB3xxG0bgH}8c?&nCtzqU?}g)s-{e%#rNzq;BxsB)w_4Dd@-tI; zCE2`0$1BP$EN!{b?Qi7@TtJpf(n86Wp|!UrBXay+fM;YF-h3=5B(%SOX6)qTRP8@j{1LWUz`HEyiG;m{B#@(J7+*I0hyk&4`4fnhY!phoQCJc>EMjdI z>+|u5GvcZ|m2CTzxu6@voIPop^Dv9po{N2m6GEP}&A^~{=#P|FSnIe7+moDa7IGCF z=g_Kb-?O!jRPbBV@#2Ik=luNC8*6?l4|Y?UY6~Y|hFnd7#+W7UoGW0?U=aA&Ytupp zHgD#C)7d4ls=c#_N@`Iaw!8OR00elZhzv=}4=C;tBw0NY;@J(pzWsA~&wQ|`1jG;xCgHV8+4~K@W2&C}8)rAjnen5Tob^nqe`XFMDYU9J$?V&w0xbg|G5Usx zV7*6hRu&VNY1i&h90{?lah;x*1314N0ZQ1AYN%0$1;nZ zNTrbMOpf7N?34ef*L~>eg8Of-C8F}k{%^tyPXRi#rD=6pk>ic-wJ9}32zV|L0$e~- z-#^C`h^wQPc|QzkdyqPXhM&$yFlvv6u!sboyA(QcqUr-~$V{K^Ks)DO>$D;31(gXY zn{~85|En00T4wLQ{|?iZlSXVnCczsOO2UvuP|UPT2;ppE(YQy(QCQnEBNr|BG=6zP zkj51x?|zkfRh7mJrurYE&iWy$E$;es$I#L(4bt5pB{776q_lK*mjg&hOLq+2Idlj} zDBU4lLwCG$pXa&v{R7TV`|N%8S>Lrj%UUDj#-*S^ zTpHhtJLnEN0zU*$Frozd^Iqt{bNQvNi%&alPKMg@nIv`}IU#tYdTX}<*qB}s~ zIlUedWCgENm)9!(6WfvNOD1nT22XdvNuTqv?pgt`7Zo)$=it9}NJfH(De;F7jDmZU z`^!x`KSYrD{#H$9+8pv%bPVJ&S8d&aJEU0aZB-ik)>h@Gay#%ByV?&Dq5=Q}MJWKFy7Mo~0 z^%lJ=V)?ue%!p5TuRT*O8Hy48^-TzsOJG_&>-MdR#GV7=8;Gj+0p!a{D&2iweH3fx zbyMyM5V~5NzTRZ0<3U7MPY#lbwn~JT5XFEiTZWuE7Qfj(8V9hML^}uzWUp6*V&j48 zN}(V5PO!zlo4NcNSReGky|SO%vv-`>pPyIU&x8I}J9u2XXc0W(A3v&FwXfO%(+D9W z9ky@Xtr^9gX6coJ*H)NBGOQ2@X=H@;gIlj$&@6Q>H-4LEWMT@;m!?KaVTE7wb4fg~ zokA{Av&5c=6_I6J4FUg7YhT|n(BKH@T8lkym3E3fhn8S#^U&MC7kEn!5)ot(4c%q0 z#@q7gon(+R+$0CWN^O?}47=~XF-bnFjI|sI=<)@O?A28Jcy=)iAt)4O=zMsq6~ig+ z_d=m6Z-~%3^KqIxe5TQ{P+99y9{8@D=}kDXd}y3>IByG_j_UMt-1GBu@<&q|nU=+k zEbF#I?;F?tn6aND&n%Y*$!Z^`1gF@hk}w=y2hwOY7$t$O3EH*!{!Ph*@Tc4w$cDm& zl_WOvKOB;V;?gnPv))+%>1eQuJE%Xmiu-Mio%pz$rVjyl@0RaH%@(ExvDH%k%x+-R zkDQ#*2&dgN*E13;wLql-j!In@y7hE#W^O$>O+GN+oGyDQKjuvF--sI-Rkiu}DEqm= z=QDaz<_j+K{u54l2qrjNgA*;yAY^=eL}lN_)L!AV79NsnFxtY%WuLP}QozFNxoCh& z`2W0zm1^d8*SfVYxLj`0Pe{DdI{81Vr&CFw_&=!m{JR9*mzozJE(Q-s#O|N=467YM z`3$XOHD)(5G0(%lZmH;am^#e1fHXM`;5K!6<}j5F-z?el$`o#?m)Gb(5Xt>9)Dv z2kxo?{a8!_=4)&mo3Aoeb~z~43^tC$v)J%8MyglKmPA^DJ*Hl+*z6+0*Y(-}*aljN zAMDgW%{-aqc%C67OOknhCP{6VFSvd7>LLLo`41ZU(Ech)k!mdMq4+l$k6^;y5 zwf|d&M>6gH;AaJ2j|c8QPA(X zH1CPMZliWSZ95&zrx8j_-RA7D)*G`0lqOTbD!}_lP%=>Bm#a81V-n_w^Ob*VMBXSP zj3ly-tj+UbbIKbTAuJ$O2=G**kh5giPB&f-hQiE=*S4zjEUIjVHT0_Nd0BLp@t2H; zc8#{byW~5F(Xqpc5p~0OQ4>wof>vn`rASY;@jNtsohQ*-XwqF{wfvZ_uGu$^pW=`< zkn4$3C_trni^?jD`w?YOE8P{xRpM5y?;QqPdB&PBz;Ebd3iOFkP(RNyN=O<-;8TAx zN>_&bE2SbH;|LS(M@vZi#@2MM^TY3WJ(EsTH#aq#k8}HUk*S7Rdq3N{6Ah6Ogpl{} zSiDFv@()`5ucK{wHcd6nl?gGwR~t<8GkWNkBFIStLs@6tXZ z*JpKZ(7?4;Uc;FB6m$xXHtMy5YxEp z(LUreY-JAlbD&jo1-Z|H3{rXMoV4=?{J{5LI)B(M#CVgAbE#KF8`4{8syy8jA#Zf# z+jp@WSsmX9`P2Aa4cP;EB85htrzReNxFk5`kl?6dGdD1G3?4_`S^r4PID`k!?5s)K zO}2xiOO!lK8t5t0)>*WgMX+SoXh2U(LyLe%g!0>3nl=&c58|;QW-`T>@sFDN->-au zKvf(TW87$be@hnHti6z|)2r;AGJIK1qUo-^!>3T+I#XYFMg0^{iUvUftl&q_XJ7WpTgkOB z8MJ7wl4Hu10CBZe;ULQ?_K5}~m<)JG@Nkmo8c6MIo&)=-{)aMo-NB_ZNE?jbm)H!U zy&+eg&##jo)cWvN%-=n?W!;aO(em9kF+8!}&#th@-eRw}&zJbx@VT}6m zHQ`pFA%zyl+O{Iy&NhLJx6->;RlVwu#OOp!e5&SQ?hXOVC7kauV=CXrTCA#}+APnR zdM)#LeqfR@n*X)u7QC7qG=H5sFY=R%(17j@-<#tScO(WPSM(hFEeoT#1Tdd-3RpIp zD4>DC-C&=53a#ZrA*HC-))Pgez9WQ&TRuWQ!D5~W?rFe2_U$zN!%4u>b=!~a;c>>= z_vS5`hm*vQrZBsGbw=@AMRqZu?8bBoV}f&2MN=-TG$W^0$QSpJC7(G2fjiI5=TlHZ z!FN%satj*bWCP9n$DL2`?%v)=3n6&ff{qSn?p++EoF*abnR(x3Yke==ZBlpFMOGr(e-S2A8Q-VxGmv znz|O(f=MzQN31-Q=be7=*mu6``)@_qbOu6{^Ny+)9BaO`OR*3Xh{$1p&2jNMV3I7Xl}29K#NomicgjJh`6^c!@~Q z_>vz+g45viorNQ&HZ-8Wghe9Bn7mqLq`A zvUh%|GKl~eB#?MP-|uWey$?*4&AN>zsS;r6VlQD2Bn5<*VAhg1bXH0pHJ?4s!lz5S zE&OiqS1a+LQ9$$qzi_3WQY>YxH_tJ6xS~*#Qrq=mn9bwBqOXZ{i)JA98E?@btuc$1 z9qr%L!ny-Gb4c@Q?H5sjfRKmKHOqj73Tv-ug zVwaQ`n4fC7vmL#L--gm=?hV!ti~|= zhN$7ObqrBmPH&pMo=xd>82v&i_X%Dz&K7(IMYH@djZp9@x#Fm53=pty-`$=A)X_2o zZbkD$k!N|^`ISVZ|SR1pjE>n%4 zQU>a0vspr`!(Qb69VPo8!voFVDIddsEzHYV&0q2hPQss!qbo{|xQT3qboDgv8sXjG29jM}9v{LFENpq< z6S{cwnVRiX)IoKKCLuikHynKUnuGvA3}==@QUdmaWQz-!cW16C4iM1zq(K3E&R}Kr zO;(K6DHG%04qPl61!%Kt++J(pqlgm*5xo)`| zMAvq6&H=&U;6)g2;)Wi~3zolnty5`_z+s1YH00Z*-YAgJ!eu~o3Cf0$_6258h+T9+ zLIpKtZ{0fC>e7(ivePF@QlVMhF-3bd2i$}Cx7FK*#$&lRID`~=(!WdS1q={%SXes* zEbL2R`u9H|=Vu(1-vg?|q=l{_ zQ^)q^?alg|R{`R!z7w0PEk0Lsx9Pv)^aMltqU5=<-4;1*ys$%+7z|z*3WES)h}ykv z@TOiy)>@AN>$uIl$&j^Xhf!4yP_HTCU}W#%h1HirsP6#Fw9ohm#JuEEJWN!V8T{o? zuU!nr>MLH?c`#T)!a0Y{RMvYsot)Th(W4iFmrs%}%zsY5#=#5O2)j5LjiWWX-SgM3)*(b34PK6Ag?Ki4%0P`evz4}T;^cWCZUbZY z>#eZwUvi49&e&UCKEuD5W6#SWz_{J_e7nts3pa|JDt{WgPZY?MP-U@X!k5?t!8=mvn zi%vQ}H6zElDb%DN;&vaBkEX5d1yl-14iCZ$JG>SoSBCE`_T$%l84|PKn3}#KlhLD0 z9_ta~eO;{f`PVUjjVlwWhY%3dzZiq7Z_?ExFF%Vn1JrRN9>!%U!2~HEBhuMU&ELYa zu^#x&&65~rOBCxHEgb>HF8?YVuLodWkK`HtN?0$@NHB2zXc=2UnXex40o{MJ-imwO zJjjW9uQS9hGOv?$BF?Us%zV2!GA|>~i=-*qsK`O|V@2_zMX}%CmoU-J%Tw~KEDDX} zlo0mnpApb87(7cK09-TZ8Vr2o~|YV9_f5}1siUv$#NsNAch3b7Mf#~XU&LLAO2ul{&(2< z4QR|@Z>8H@wgaWt-9BNhUFWYfQeJMo<71`llP3D%%^7M{W1jJd2!}>T4 zreUTV>b=ZN@-aq^7!!G3s2Kt|#k#1tLRcze-K4ATurGVDsZSPFhxVoW z2>7#e*)_+cgGk^4ngn5G*LkKi<9NAaihRaq12lN+VUN5PX(A<5I{3td9Vyh`vi39? zAwmTDsTi_nh%-b7~QWV`@rTS zwu!Dg^sn*VpKnZmvyG;g{Ld-dJqAMov*KtU2ntr#82{#Hn~|Oh=3+Xg?(WSN?0PRQ zDphz|@Bv7~xHb6uhVtZQ=wWhrL6ea8a1h?_t5=ydX2JW1g-y)QUFmf}t-}_dNNMl~ zOKzbnZRT@8tCw!$O;6yToa+Z$YwMjAQ~ddY+DAXkxcK-JahTwjdgAaa|{BfG~gl*QO6H;A;_71PF9bccp`YAMKp(%bFxhz!-0* zVeJ`@)rEG=c{Jqe-`q-KNDq|;$~0K30XBCqF%^p`L~Q3T^>d3h zszRrrc-~S++J%F{-`9VJh0m+gWq6tnG{Ns5=6sV1u; zR{pTxaBk*XW<@}$>9XLKv=CS?WyZ+-h)b)N?C#_=vD)Ef%texwn@x|FIXeoz!NtMB z`e=PgN{fUzQ8A{HI!45el-1z&y*PY|K<6X?3c1bksC~G)oWy=FyKYTGz1Bgw9$izf zi8-IMSh)?sJ-viLyT|$k)zDOB`QE^-)@8s+=s1&rw9qi*4ou0L}WVnG#F8k z?6CkqLVMbToVQ&As&Qqd!=Q@&MgL8J1=**mS9jWv46=BP;0iVj}x2i583!(*e0LOw=t@qkS@K=Z}p zs}m+zk6sf_dEc+0AKW-V;y5q-Ef0{NGm%bpjMqeKBL`#~^1HrY*L<1%c5uuY-~E`Y zp%x$IY4ol3--`pM61?-`Fr^ZnA~GT^i=Ck`qAnuNvMvQaJ@Wt!Qbbow_!~TRj46?5 zvrsRpB<7KiqwOaYR8%~f<387i$$fs+PSy8!f8$}T3TB$>AleL4-+2#M(B~(yr0p_; z{vETP)61g$kSMg%yjC=G(&yo-JOrk5ozj)iwH18Y{y4^b3Cy0ny;FGIU#|IlO>6nZ z{zncj={#Xlw2Hh!bi3&-4o>CNXff3}RS{ekyx?{ii?YNsfFRamEZQva&UdAhy>w7&KUZ2#r0jUc~C+X!mR2z~VlbM{`gc7FBdjlnxLzH1y|1qZX zf^dHlEfin!79fNiD`2)SP2^N_Yjbg*V)4j`4|MU4ITLl30ex3($UjQCU*XR7F$CtZ zM4whfD?lMC`n`L(LY!(QQ%-*DFNY~(u%XeO(2BtC6 zM1yweatQe^MtV9|`S`{&PJGAj?^)(`O96=aZTVj)U>O>U-X5JOG&E*m>iROv88$7jT|gMZ&)d2TLq#&|Yawy05c%v}>k(~rMTl6(nR^LAg?#35WgVZxGr zKNH4$ho-sEjwD^suQvoo3_hUX>ZL1~V~GYeJi4ay)b5U5AP4f8^N8n_?V>QO74ISx zv413A47>4so-&1Z#k2~PUFdvX3+gT^bFH9HwQZcN$235k>+?Ahc*|TS^XYw)Wwb5Z zXzfXr8_sW#C*^0iSo^d*@d*Q8MaQ1tU<9>amau*iLtp_MtEae;yb2^_7dY%u?v#o(?_;{6ql3PejIHsu4+ymLxV7N8EFu2(7 zM|Lrz2yf6Nz0Z208&k)M;ca=I_O`Y{_a<}6d&scpg(>r(-q6+m0cc5>ygrEjvUY3E zL;={BnWyK%B7=dznY_j$zYGUlBL&NxI>vySMr}Dkg_wzgL93N`ME|!wJODQMqJa@Y zcja{hhPe6<--WNY*B#QKhZ&msydtv4|Fq`vjpyA1T(hNj^=(3j>0MJl*de{S&aOTvBS_gZ_BKmot~ z?@}j9j~7OLESZ=jJbMh#{jk5pPsf{4_4ht0t@c*71QqwJYp5Jnxcn9M@ffN@I0vO} zT>J~JMPSrs#W@vkW;VmZOEkk0LUroCPPm0Jn0sMS!SP5w4yShqkQU%aM&UGKfadaa z&eUxfT^V6WQ~68o^V42dPPWV5cKCA`BJA@cZwztcbFiZfW52yV#6ZOO3egP)b9%qp zIbA-lzm||b+kFeuD56&)N5LAm4X%?hj}V z3`k0=l~|$NQz0{T%v-Y3I;mGU{**2f8dsrQ;RWwXq$yfwurW~cKuZmzZ%)Ge`ArYI z8TWs_=C35$+~zf87&bF4AVY30{=J+J+FUA z*s%;tc9YTW8+5z7tMR@S4H|t`Z~~GrS^@$686|Br;n?zcKuOE`pkLf^uIGfv+jm}1WcojfLNABN zhf%_Shzz7+1_~TB@59!1Tn8)C($L}x|H803(I*0DhsTLipDI2ck{Ne>y0||;R$X@E z%dIs@P5zV_UnWv8q5v!qVU&tvf}x|Yp~HXE zj+W68&v;NPB6$+xZz;*NvEHq%o$~pXSiU1(o)>6&PHY_D=Mr>@Ogsk<|OF>BgU zw{h--Z6R>!dO({Y-5@D+cds@k=cw8%^z=z1roJBhvgqG@1g)XF;!cklYG7_{i> zA)(TsS*nN9w-ZGx#S-$XDI;m?%kE4i-jzwrqEY@*I&OT`pIeY#BvwC0cheLy25!d{n zv`I=KLyBn85R%Uj$JRE9!Y=~Es?|(HW3#CyFI#SK5_e0>A4F}HH!oc8v4RcNT_mtn$(T3KjtTZCwO4DUL9AGM=c?K{esK#^k2y;tu zjKvjvIQt~Dyh|_>Ek$vodUui|Fu~GQ&MFBoHy1zGwVrJAf56LZnAC^(j@}$*wXRM@ zV1va$3~)`MEqoRmc;s#+tOXXCtWiQyXvndRH){?J`Or_qml66Io8bW8#~c)$(Su|< zpHhUyDxEM$jT3nz&IUnQNiOrK1-G?}b5Di!BnV8%op%!L=^?*f$x`C>-^|GkpQfxJ z!raBZ@8yLmhG!!{B>}}`a$z}>yPQqC@LpDA#y-o;X@9^I))_UzBzAvqLZE%NGm|%; z;wMF;aEwG4Hdy!<#^t%~?l*ZFT)#M8RGB;Cm>8+<_F30&l9&oc%lOO?!glq$hX5V} zI&FtiDWIJ)V>TN%TigggOQ@qQO}_&18))gi6o3Xf=l1uPI}lteewYtC+qx%}yz9t4 zJDkPry05A^zpm+y2bZ3}Y?}JvM9F{u%8ugie|j6CS25AwFO1tEUVw5+G1=Bo#!_hB zu_kqR&*_e)4~+2T{_I*CUx5pfkBwGfhF8~C|0V-UCCNMmep&9Zg7le|gda3o@ciH@ zw;Kib_-r;WhA^nGJ>M=sb%XOK*|(e0*@v|a%-mGn&cE$RK9ULe8m}P(S^f!aPb?!aL)!yQo8DRieqXG?VPd=InaI{ zq{=NZn}JY{h=gupg_qCo3}c`Sy=*Y=Bf6XmO7E(t{JcGL2}>gQ-=I#QSF)Ka0O8qF z$zE5;;oOvicI+Yj?^ma~Ap76il^AQm+<+!ofWR0zr&{ihgKn<30D2UO#Sa@F$;YfZ zXoupQ0`?HqCMWLi)g^X!ePeCafg)LxreHKy*RcqeA)7q1$2F;x52j%hbFc@wxld`D z?EIGZCLquA8~1P5ALc|m&+n??ul&36IN78?X!*EeJ`cwp=kx0>o;MisZ9%V`PMzl{ zP{?bu^!52U{8|+JPk)gJ@W3GP@3{Vcaj-Jz>VvI1qZFGr6od!*{#2=W6e{atI!qKL z2fr7MG>J3F1giNHV75VqWr!GHU1i$VwdUMEM^~Yvqp7b}T*_SOB^FvV$@iA|1AYJI zlpjBf!%Hp;U1s6(mrr7`!TRYDrW?Bl-yLOJ+N?UdN@BzV>+_aGi*kOkQx;a13Ylyn z&7dE$8tMZHQ7RO>sKW-{_-68hjAZApuZ(0H#7bcs-=SHKA8Hyl-gUH4IsXBSt|iz@ zd*jRcq#|6l&}2Qbu{KaQ7EhezaI!QJjm?pQ0v`cm1~0S8_=T;iv>QYJ*V6VNS_m|+ z29xA}X)zRgOrIT$nfcl!r&C_)M(ES#&wRNeOw{su$%OpQtmNlq{zy}rx*kxMwpy6uzsY8{vi{;iJXjjqGI zp36u56n0{QwE!p{_f(ME+=8HmpPOdy%JT|Pe&!z~ zEYaC?1VT}?@J}8Xu)ibxkr;s{HAnHOrgd6`iBF%DG?dxZ;YDk*3%1rP+Jz9*<;yvi zqA-XqPVz zZT1&18#RdK$hZ3qqds9T?=T+4>=}0X_Z@B#U2&kq0KbqmNcYn%M9B8ic!*?f1bmnB zxYH&o{zATD)juGCiHbI$-6OB8+Veftb25!fV)O8xYq8^z--Y|T?=RE~<+hMKbS=+(; zMPxx;747hrHQ%sj7#wp|a+gW6`u_Nmi`{p|z(bPxhkHYZWh#O+J$|=HYiY0$JNSP8 zx6wa}#{Glf+E%vL`u0m0D#a-m+|J;o7OV;5Gtn(B)!NS8e(>#j5bB^?;7jyyJhhAK z9;htjpi-)kDRL#!!#XPbnE`Z&Hut`%w~2De(ScmqF&B(QqlBFxa-o)pQ?)T;OwvRN z5AV{Zn@sSwA@QJ5#^XITy~FfxdxMM;>kfzCszuCXhe}bsUixHu^fWS#g{<$+a5UhP zo;sL&M!SkzniZzf+oL^hp7`F=AZ+~co7J5`y>06jYPOD-R~0u4<^uT=enm(S*B)6c z%j*Lqq#!tB5QGmx6m2B)UY3M+n4_1aXhnnvvZG!FjL zQ`P;9f6;x2q)TG6DYc+8pmGKJh(QU`Y7 zSOeM9Cv6+5z!lL+Nd*72jojZOSIkDfNl6e>AH3&VC9iY9P=n(!492-2Cy>f`p6TtS za_YKIs0lc6IF%H7>n>hnoaO58+_UuG%bs@?MyyQbtP~Z88 z#QKjemE|RVO;u$?SLbw1<4O`5q)<;JpxnS8e7T4z0rv{bB7ORN1!EF zvyP|`kgRrnTlWHuic*ag?$pfknon_#_o(gYiY6^x0JRo=AwDU=is3USJwj{` zzB-9M;nDQ{H7;FD^S(G|T)6WUMS(;xHE_z%Bt7UHMt?ja={EJaAsuw5Hu(@Wx&Q}@ zl>B2PeK7itA5xIvy4Nde82A!=vO@v~@|IbyZxdq_Tj-&f1~AgeIUm9~wfUdyW(B%o z`*{IO3IizgJmx$cruSn8`=S%tn`LFyjr>ltC_+RIZOv-d+0%&8JKOZ@zmUnf3cl6B z@--ioq?CL9hG=+E2lJm2sGU-{zP_B>(F6{x`VG4q*&U!zzh3YHn zo~)_K79g)LnR*!Ey~_wLnA(i0k_u)T1!Q-NGY-p+2@9HOGMnLV@^}+axrmCj!&~WY z3}#pk2XY!z?n@GB&_xv#(6EVpEEDOov=(7@u~0gP?j}4Xp#beGXNL;o)LigT&KeE>5@2D~nkoY&c#MUb zRA#zKHZI4uT91ymy9%^hXj`(Mz8tw3od{F7t-gA31Q}Rn=7^RtGqj+O<>G{RLh|Pu zSB)=)pw3&aF&k5V_(Ph@&u0mB-@rWFiTAyDx9k3y*E?+?tXrV*jM@7=L$T+C#gXMZ z2ut37mx$#QQ<_Ds`{@2c!G&efO>GRgEJF88^2hiMnBd#{v@eaYu)?+;*g1TUK%{W| zX=#VC;*#VS4wc5ZwVW?aSl^mi@3Y_Sf+M*x#COCB@_AX$PV30Cn42e8-Q^`5@{BxJ zr=0v!FN-%Id@M9^x7r z+|<-3&zWzbrw!fA$L*Y4sj$Le-ywJ46vDDjSR@e=ys|bDek%qJ8cLZ__u$ugS?h&B zW`HzrrE(lYn1vp-BJJsMjVrvm5ecz)Y@LAO$x=?UDsZl(@DRoskSdYmi3Sfmg+dhM@x@Rdu|_#H zNbck5_QZyVhqI`U-L5MY)7~7+%^P+-ed{%{5O+}hSl>hz_k1aSsc*qV zXU@*vKeMmjHt}GyK&PIxzB~@WY8sUl;Yg(Ez<6{YEyYbf0N`VJWvEeZwAXw_|5W~{ z1X)Vt>cOYr@0*VmaV{?BzJs9>vlnLqjZ$C}r}Oxi^IPw`vo0ObdXV$_(%5^#bL8ie zokA1;iwcU5h#R+SK`|Y-YBr)_juMYo!pO+sRJW$#x zZ}uljSY-3%f|0D~5Se1OtrF&H^Y5=4jieMu-LYi?1!Syrdr7EDzb~vf!#Yk{@3vr_ zWFp9)C_jelrZ%rdQXNR++bAe;60;;8b-w%Yp;B00e;%ZsM@5GMWz9>J;vav{PW-`I zt9cnaFWj?#_b_?N-fN!iKQnlXNqJ7XW5@RK2v=*HKgw0Y#c}6XS51Q>Ak?tF=fJ*< zl`g^~4}5#8=Kuqu26SxBPMh!ucdB!*nzwtQ8b(Ftlo8kQN(J0s5FO1%PANPX*JX_W z_GJ{-VbOQqU|uxtcWUy=rblZkr#(e93H0DKAR+Q}d-Ipac2;K;T`R7EE${f2^}vC@ zf>6?@wKlh3FCnB&mqUf9D;-|(4byHCFLzp;oSZ%|&xn&mpj?B)-DZ5?ulT?_x6`h* z(hO}1s*^>J^tLV%2Ihdv3cr>5rB12}MI)UXEF&PDWh|Gi2v(MoP3U`RJgn&Kei}x; zfpPx271>cz5F+xdjjXf9^KMiW=>#DYx+}(4-J{@$TeET!nCrpez_01C>@cxUG&vam zt0{ZvYLrxtt8Q3LXAImIXVLz-7==y%@_tJCJ6^=SG$jW#S#;8gk#}O=le$!zNNG#6 zH{*$!4SOG@JYKfxt4+k4esZy*lt%FTm7Ps6rA67~MYDcKlX^(W`@Ya}^CI4@t`9pa z9Ebh6Y$e~osT2F9HncBR!|(T}&W^LS@1kr7Sj7J;eXFEYIwpI1^u|mE4UNyL0QiNz z;V+7|_mi7E2H-%uqPSSuf)7J=?h9!FF`*+{34`b20%=?ae(Ezl54+z=sh{~-;~t%Y z;_qL?qkRzqCI@#IyPtLxYG}_05c8U2-5rWf0{MMoz>#k}k@?C>$~CQ*UB7G7yocWd z3>aI_^Jr^%mFG;shJ-fIsl1U1e z4+@`+s@S8I?NU`ZQngkLfJw#JcQPZ}%z5pPFH+&@HQaB{T;Kasbq(Yh!!Z>-MtfFo zn$XGWL9$CTY81jdpU1FkTC3cB?tlLgByXQBzFv@g-6Am*f6Y2ML@_H;%r1igP6aYa zf017)jF-}%1}~Nx#LLO7PuYK7QfEc{}ra5zzROpbGo*7#xRdQc(^rePCy8{?oXUFQV4E#F{#8_!vx`CDJUsig({-P ziB2ApPY%gQL>+@2=3RaMCg=yBMs}ItB}I^+|C|c{aR?&AzF?F~AYQCKo5ip`z@(Bt z4rGx3m=po0m^1gHsboxAd2oWp5ZrQbfC0^JL$YUA?kxEt*5KoybFy(P!jt}~I1uHF zVs8G}?_UP3<%$UVZxRQ!)^{B>;C@amN)bj}9rN|_3>bxIci{r?`>}!iBq)iDK9YMN zT0O$+`>#R$Fk@`v5!*2@LKat#n3u}#rEtvP3f-}CbY96GH|PfAo(w=E&I@beBvfiZ zivxxDE~$I2e_p%?2{SbPL{^jl3;ZWh&EkhNFV`F9)H_U|<@3_WA;v)bvc&F09=+B| z(~t4O5CF2Z`BzA>cLf&E4bI`)^sQIwZ@Dk~<~O*z{%0?b;Q*hjefagq7cZdzpAl5*&f(v`^X1jL&tq?W{%#`rsXd|+ z46u+T_x-_st8qgZi2cm=FwVwI0js3ER2>9k{5oW8vIii5WK$^MWnFQ;faK8A1?K0j zE8O`tb!cQL9)e2H4xIG9ONP&}|L$$Sl=(r!9blCz7Zb_X2H8=+Yv^{QSgedcwVtvKR4xMiH~8!1_f{<7g?7A+v^Zfs@z zXjUw1T}w7xLu#J>x%uG-@eA7qFe+V~Ky47i>fxF{I}@mgY#Bl>hk)FR+rj!=vRHv& z6WN~aNmC_+s$-dpEN-gITQ8K%T17DwX~WHpaCvP;dZ zzT8upHD}|0B``>&oux&XNX5ZQU!_rIXPM0Kw2SZ%u8?w^W&oUg3RT^sUiIs#1nu8o zC=I(y5D|)a$~yyz>=Pm^@F$dT2rVre@a6T3w(9=S-As_YIkp|}sk^?m9T~qDUd|*s zsCH(K(2^68`o4_p@!tY{{1EZRm$%CcK5KMB^pEZw;%ZT;O&EY547tQ=kFES0535{fgOjoqc;haoaUC zGD3?>wbD;#7;!d4?zQ>bh~as`Clh;%u7E10b`xFBA0b>qYFYF_NWmgxz-?FOtJ?;d z4cX@^q9kMx6mTG2M~kKi#+eL}k*o6rFOOrVRFoGF2*>Qcz58Rp$0~)C97L{Utc8UJ zZ^pWNvBi9tIGSb;8SeP&difPh*<>x9el-9;B+$(3RuoH*B@yQW2~DHUTzw$ z7am8RC!naa)wg;09O9+NehTP|6mZWnb`p9XD}6fZeqf2gmE7BRUN4z4NAu?0<^nL4 z%PcLK|M_Z4RTO}*Ft38B#Yd8H70~Ff6t*3;)a091V2_hDl&nkc*KT~4y^%P~iZccG zi{sP7-MFBQ0CsNR1@hQVv>z_?>}EOshboh|ZXS4Gn{3L1&DTzDs==^XXir#J;AMlfe*gJftzO%@4n;6wJpxMXaDsr{ADe(Q)iAlo)Rq0fX8>`ev&~$Qs!O4 zE1gbrIF($;+6VWICvQZzQDnAP+dr~t^HGNu@r@9wruU&z1R6?arYa4BmM%1orJr{R zWVP)S_QrJ@W`p=?Qy%&SwUkpB!CS7gw_F6CLMCob=9d?<=O(%ueLyXR9iob70@zez z|BR02H+yOONs7lO%w_(%Rl0x}reH)u5Ralb(Dgh$n*b%{j=-cDdVL&8(23SgqoJ-1U4f4A-QVh27DKMgvY{BtWEl==7q zyD$DDUKN_1UdW}Yyhe7lguvTM9k@v8e_(zJr(v5)m*OWIpv9BStVfMf*IcIoN$qY6hZ{a7@L@wSYysh(Bnb;z0*tPYm_dm{OSc75Hn~` zed^80scsUFIr_)#)~2@z%P_lpqg2vw=yHz@2M6c=#!J~MrbAJ`)`8xExqOAraV_I56?3mPh{MP&R>V5N#9+H#z!{k~5IwF$H=*X8*Po}Q zsxEbg%;JSxfcZoOVSXjWnr^Gwe!Jp&xx8+Gc9z8%RXe}C4bP?eTIx~@lx27kJyY~_m;@39L z$#3_m*~{1_M@HbEwV5-ingwl^rM?N_m00G*PdQK?RlU*pb;P$5OV}ga6IMI@wjn~kQpz55X`i}h*!}Qr_aWuS zZ44VWABKr$s#a$WdNw?qA_F+qLJpRU3fl;F3OajJlk=$X_;goFeL0e(C9up901{IA z66vkEe)&12QAAO=lvw~@ds*?F)IK7uTzi*_&QhqlBYaXjtWN!1?s&Q?rQWrtMZ?M6 zRZ=P6a?V#=bu3WVOO=<;%M~fETKErGhdB6dKaCoOoVcbxT@~IWheF2uoK|->_QU;# zd7E`he?1Gg!+?uEP8x28XsT_+UmW+%5y=QD(T!7l@IYESz9;&EGMkjeh`3R|-O5`M zrHuetp;sLFZ6*4;y9gS@ur}$QT1^Tip9YSAw2gPY-5bG3=UZ<46465mu@C&xCeiNn z+>p|qwm);&wH!Kf`&G=W()m^kEBe~fks|O3()bn1?Yi}8;GNKRsxu!Genp0aJfIem z1O$~(l?8=#=JFER(#9r|2(da%rP^4+-0l9`NTr#9?*0g6Oa{3(rT`x+z@bbAVdIKG zDW|c8H-gbYrdLX2s)dsKz2Rn$!lisR*Xg_L69V}Qa!9S0e;O*3Rn@)oVcUFZOvQ~B z6wtqWAuPxxxwGBd!cr0N-(H=K#?TSB4m?Y+^(1K%VZuM3&?g9vv6kGqx@>7Rfz@5F zmX;##0nYOhSq}-y@U<9XvgzPUom>1tHjcNP zY(|$u#Hz)kwT!IIxMPQ ztQ6(sOoLUkUcR6@op(QRy(a5UO766_mK=BGnKbR>of*x2^#K2GVci`gU-DLSKE=-5vJ` zSTQ0(XaS-bC;aWK!0>{MzeYcT2@)vyZ|U5*r<%z@rZikQJvV}9?t!QvAa?T~k-TV& z+JQiVuWrZ_B+MBVXAl@UoP?QH0Ki!H4kO&~S>8$=wNC@cu@k(_je&uuZGOY5nw@2z z$zy|E0d6Lw6-8TV7O8#CauXeEm}=r1i*sxnh_Es5YKc#Ew4RGE3F+;`{^QB$K#eu5 zhDQM~Yu}YvIF?_o8b?N~BziaKZZ#?V9?>P*wy!t)v6GbYWE{K3I6k4aL*K~x`ibD7 zrp7e>Uml244Hkn;5wjI6am+30`xQ2_xEj|7SFYE01&-X0sS5@E&HRNUj*k?aUZSnl zi1FPro!4r5dJ2547QSASs?cXth=G$Tk# zH%JcBoq~XrbT=a1O7}DO=l}KhyoKvJW1oAkbu0;#OqMTYKOQ1^6kV_L5!0ZrKgyCp z4*PV5%25{;8O6@9*K_ltFn{$|We=Z%@PlJj+Dew!N|6F_hlo6r7a;>hxjHHOifWcR zO<81X+6xtkqPiGDF;YvmD<&bab9M$B86t^EWwAszuQ*Ig?Zr9D##j6wbLVPMJnG#= zt#VMm_51I=&0UCnOEQ+*iSkF0s0=515zWwFh46EJHwI3^*L+{1VySYqpVKvyfW$c2 zUTf+WhzW6#Wve3=oYcpmH)0LxEm{Y^tO|XWAj4QyLH#kd!O-NaMV=t_EZalV9OL@9CscpBRm-VILqtWku;(o{= zdm_h_U*X0Ptof3N5{AEQ61ZHAS)8#?dcxfG{x~wI~9Egw6n|ky&_^%7FL>YcC&Ry zpxyJQ(krX}DzP9bW_yu>hOFIe1HL@^DkNso3NP>(D*7d)c82RU+9SUqj0!OUyA3m0|0m@$D=H9O2?cq&suyC!hC*h&^zc~vyjgD%6i zF5p|AidZ?7J(h?Ew!Fu`3gnlOy_=bxp6VdKpSHZy`>D+2;aP)CFI4tCJk*cLiWJ$9 zvn2kiOr&*#(S?;xEla}}>RnL`oyG%=^LN7XvxAy2; zjRL$f5UhF8hJL(fB{xaoZ)Q}=v+ME-RZ*Dzt;hyy?RI|3?pQ1y=4NdpTKr}XUBwyt z7+F!+YNifHDSeTvK2d$afusQ>91Dw`b_~*SUOuQrNGnDdE?2KBS<*c*#26;Rsxv#Y z4{tv2?_%r2YcwKaq?2Ukvvj9rA!aU;@0b~iu5vk|@8I?;#}Jv2WBDZPnx~z@)1SdM z8}2DloIbN5#fg>FRa&{&m?F5@IgV_V^jYp;3nL#v>zp2TUYZiI`45hKX)OK7PsRKZ zBRgLuTAnO<8*g{mm@%p1E7jh}lfp4!wgju32}8ssyE}BcZp~Y^BtPXaX+8nax%KFhJll(R&YNXQ6~ zCo6Qcx(R69G@7~AJ!KWFl7Te&8z&~68JiijAP(G+oh=*>C&c^FA58qY-U>Tm?eqJz zUlNoXrCu?z(Qn(oFA_`jV*3!z%26W;E(y4;5Hg}MGQz321UZ%ZP9=;Sa*4-H;ZzY` zq$#AT1BptGh=L=P03SaG<9==HcM|SbQc^-pL1Ez$?k2&Jvd_($>+EleK^jR!>}<|gH?%DQ=THEy#)RJTF_!!(8^lPWNsSxZdn?A2F+8C3-Iu)*1uruAS<$j5+E5w zSbr!MWA=50NavltK{j~Pl*Me8z-s z#?jSpY~Ac^d_)Wqbkl%ig?jkQCB=<=Z!v_uI~N6rNL$EFm`EeiTi=8I;qTHlXnl^; z$>W5STst$)aM!jW$cU6UeN@41$EDgYEEw?^Jq2P6ymhblKXUn#g_Xj~GRD|x5fN&q zYeez%IW^6qf;z)wm(88JJ&SsjoXDRCZbR$70-|wz$)4%kGx1QB|kAwg1q#E^Hx zRq|ctO!7K659$#V=>DjN5%q*4C>K_QbhS|9V{Cpi_sC$dL~;!Tth%~!hd|)L&RgJ$ zIjBQtE_vD@eR6bDYd@UAO~tZ`%*QYm5y-ChD0z1MO!(n>8jl&YXUKT|W)U0y;OkfR zzt}2ST{1DJj03;)u-81p)Tq|18cm91HS#`on831zc?$bnE#VYrq2=fTNM>Hl5=9t{C9AuYYs*ij9`RytJIcv3HEMdMp zg{r@%oX|Qj%|JSw#fCf6!)-yw$NXY4Yrps0VHNCU*%KTZwvYGKxnksg_a3bwL zSfs_nsbS?UTnm?2oTxf4%LwS8NA}J0U-@#q5F_H&yG@d|S+Xlcq^#$+;}VzOiVm zTQTCc-3PKyxWj_|ipt-giJ+Z!$~hVZBk}dXE5Bfqki5keL!Gyu7ca-bG1Jv9)xgub z${3|RSL!dy)-hN^YJ`8*KB)Aq=q*9o5b8K(oZTJ{U@mArfCQ07>$xk53%C*A)J1*; zs8O6VFwQwM5n2rr`A$9JY&A==qKatIHjTc&-jEVY^NkO7SI3tB5~?7eqw#qE#aFiK zLK*p}zGwM%rfXWW-4=oXsXma+^S?rnI+J(qk|vzb_@X{fKN`(f2Ff5%SBgozS@_O- zuHYdQIvz#JBEq-7HhdNM1^Cs~UNI39)$AP?Rk?3Yf(x<|DxTEiPFA*eHa{6^zvA%5 z?+gCHdpOJ8v`n*ubRft4zfQXlwo05^>Ki6gRM#{ws-?)wSpc*dV@SWVD_zKFg{d#@ z(x=F!3Q1ET(pL&cm!;xRy^7zg7|ZgbpFoDe5x?WebH|!2Owh0n7u#MMoq%_W$}(fT z9+jBt^@$6ECsO*Yq%*jr^nh2s|vu^LcP%Xy+I7yuB3}(}H6OBc&P7{T5QoI%J1X~4wFHpH`{wl2ok+N1E3!GyIUA;3EYldfR%s)Q zU|H&!^Ix3i?P2>wcR4ZPFe{-9f%SDOiM)_r*+gMsUbgDpU6rfAl#7>V5uipd#tq=B z^9vp9f>M`eG0`4LQFnV;xqgce0$O$$6Z_eOflXOXZMKigrfP^-_W#2O#3mVh-72eq z!W~1r&8=T_wdC|>SdgrN;-b<55gEg_FdIEaUV?D9_l z>hW@(x^KxoI8;Lti1kvwQ50}R>^E4-HAajU9!H3`;|>e4t2eD{ z^&h(0BpaRO&LVe9r4X**4m_NiU54}lTtE0>&+9E!xnG>2I^hw{5`96jta+y$$2qLu<{B&a6)B1Pk*F~> zp#U*e;&4WVf__yjnQxzXjAEYBPUCh+xMAlM;+VU{w=nqDh38ka> zjnObloYr8K_OOWK%QBPasN*N}EegOYvXyb<*eJ5(JY@%$|F(LT@-T)b=p#EPbc^RG zFgJ|`;P4OqZt9*wDPcPg7%hUkw+1e!iVY>CV}X3bLRgE97X%m#@@NUUX2hAd#(CB^ z3H~xsoO5OxrsZFmod2Fno({{H~dZla~pDxq51g5uU~Ep8i&mCa>XTp=!AJroSj#h0`nZpKda zwc`m5m+xl+!f4SceQ}oLVo<{AE+78_G3jMCzwI9^7}w{*=IfG?wNor8*HUW?(ZhXz$NBitb5W_wifFWqu!>xnK=mJ#VipH#}g=zQw9k zxVX9*iYH5Xb;(iUgo8b|c|s*8?De$ZY%e-bPDRoEv7U+EodA}Avpx(j%$=D5^;=66 zz@22VD3f295U4EcVBnKzh%3A|a!;nnu8@ zP8Cs$nC)Atv})5SKPZY#6gS7ucm|;i204w^zW-luGOY|O`JVhe?Pxt9rnmj{&q0j3 z<$9PO1~LV|O!&ei-*~{;6+_L3Yj7WkGn1=Iaw0(%ghYqJEf{MMG<|uoOkhUAC{QUC zf6BKPpIn9O4b=t#khkyH^EpjF6$+Kv7E7rn;HhJC(wVZZR^a#16zTaFFDU6F6Pdh= z%KidKn$w;5q{(OXr`ztOeo>hBXi^Uwz9z3FUDpLE$U({Mv+AhxJ0qeDZgu$!G>~OY z(Cdz#Vn)}u8_5&_Z0hbUa=M^TNnaAf(ZKAR!MbFycC`SSzKfiX!SWhNaRAhJ5~VFB z8xb{5oCzgQL$6J#{!EajB====?zg8#CouQXv*q^%xxj-%8bAm91gDIr@3R(vB{rtb zE-(=(vLIBVk_HIh0GvlqB}bzS=kO%l(NU&AP~Z2Hh@R`;>e2^Ys{D6Ezltm+5YL7Z zN%OedV1H!7Hkl&8ldO@&HJSWKpigfMzs&EWey?`SJr5f>sDD}*CWF9Yy8_-qBW~RP z+KD-=iNQax{I9gvHg5iiwu;?{`!@EM>*)|Fj3dCpQzl)7XCx(%>v9VHaD#nXFX5P@ z-b}gKkk7Opcu)jcgMFLyPhHFywoYJyH~I_htHq|XfDcOZ+GDKjGBut#d!m(Z1uz8ZgQ^Hk@V@(*$D-j&gWTha~46Kzr6! zqmCF>YhjMtnSQjsy=J_=`_Nz7khePFGFCQ%B8P3EuxvWn$Q_2k zA&Z6@l@4Xol*mT&Nn*Cw^6kok9!Q_+X>C;5wORhQH=SGqFEs4*&qh|Eo(93)^V0L?8wSIgH%rQ#Lt`}P}{pVzNaw*qsq!8YSD?}Fyq`L$yTk4bxl^S&C zirYflsN7sn%jMEMH@rO5oi(tXEoKzq#GUwfxz7=f#oS$IaEoDB! z`75jMO~Lw#jJ2oQzo3l!;P#WFNU!mE@QkUUmnZVAQ9>5JfAse@*rbT@n3>e?A?0u8 z0RfRJiez`D;!^Lk2G(z0WYBeVI*FPj?@PY?_xW9t)vsPdmw%U#T%C3eEU!Q5x4HN3 z+kL>M#^21oZkY-}g~=l6RZOHayXneJ9X7Fnbkf+Aq>&AS+4Zj`7C7NkT$}9)6+6XI z!;&ZTGydWmHeh#;)d}>WIR&benrkHLMOBj@0E0h>iSyMCS<7IXri&yxUdaS_Yn;kt z=Qj=x_B$mT!-X$ec%ioS!@*?2A^sR#&0(fJvWpbh2IqC0+4#G}BrHQGYG=h?9C$1> zC(=v*0M|JMV63|)8jEtJLJc*<-bf{7TkAQ!MZNar(TGw%+Jm4pzc)_L-ats_H6yCa z43c$?GU-roG#6@jEK2KcXJ}HyPBF^<%RN=`9Gh63--?XMjC6XWVtOa`I>KneipB(0 zl0TBuvY0@wRIj$*7&o(BK#Pv&g`xS564CHNE+?MT8ElwBWKO$mI6PAz<48A^B!)9j z<}s9C=7EZW-;{8)3&$XQ|4-J+2mJE*Z?_EkW2fds7AVY5&Gp>>8TWx|ApEHrBgK@a zea;w!y6IVFWLAG}-mIoG$k80I>5+uD%SQYWhO$}7sb=iy;?L!cNW3Pi$_?dDBuupL z2VERzIttZ#U1gSzcwhiE9Dnuv`SejUvAX5mJ4q0&=Sc3b_zQTueLA)rv6O#u8)4j4 zN6(+jcW*0=<&hGP=ng&e?!oUXn;ra?bI(c1+-&ElQCs>Jr4OsRINJ2`Lg4 zQ|ha_eG`%>?Zkoc5=yauC(~19rz0J~s>0lh&_{x3g3C~|>F%2#DZxqlI4!)cZkpG? zpW?G+tv8%PoORPHo!A(R)Kg7+ZT*6zyi z^CBrgYLl+_*)0%06dKqTe@-^)JG5WV?|*r_n=jZHOlHzJuv-0${o>mrgP?Rk6k*DQ zFD$t5e|`sU8-bcb@86>wbrjlQ{;q zf9{{nFAS3=-z@bc4l~TO9kc6&$!X;kClh3WRM%gKm|_g9ixvFB<#4%FU)g%S0flSk zFS_n8r5=0s|8*Sl{_x}J7gK$hG>+L8EJ%Vh>Cx_`2Dczu^pMOwLh~iLemCBFzr#RT zbmd}~Z~EqvQuDu#>-&2)El#lNCrz$suJQ_0_#NSy_&YM@f){<1$Wg@Q!{{-$s0iUl z*ZR}|(3H}Ex*g3J1Y{C6*3p12XS~?5CPDz_Zn~`7jcf)z@?ja3h*?Id74UXe2A_Nz zMX?6?eho;$-7N z=QnlDqP5ppM5vT1t<9l+i)}b{;|TaA4WA1O1-XSzd8>l{U%mcY(#6r$JiH_zb+-^{ zyNbZtZ+COT=_w$M{QQ)t@ps>t3tnX9Mlo|=e@rvY;~;z5o0+xL-tZj=OU4xi`lh-h zf!1Jasd!1MIC~#**42IGCeMSzsb^+#U0&NRK6WT}1K|P5e3jx4VpioJD`uPMtqyS9}G*RaA@Q8bxJ~MVw;% znH&Q39NA|DArPm#nx=hkSpHVmnPvX4GvfN=ujFqndgvc@R1$36+&hsT=_SGU25Vy> zqgh6$2Vg?ZlZ=k{m!tD7(%Lql7V5j^?;tzVnU{gRw)KKH!a9}e%QEF;r)0Y|o5c>5 z!Y*#&6<~&;V_q`Y4GQ^r=1@_0K>x2qTFpN4R&~;h3_VuO!4jjSFL{fUdEUq3Q_-l+ zUkvoTbp#ST)9cEELW|1)*M_{*i!SrRhfbNZ(YCFHX4QZ)tJ1srBgmsi?b+;-YOo{r0vXQaqieG(r1nVRq-_Kt>M`oS#|0F8lRHM1{ z?y>e&Y5br8Jq!GK4LB5667RXakOCu*ec=-S3oFiCxIWo=NFLFCKm7NWqh&((4h4VM zw$)mqd^8m&+1W4UQNI!1YV<2bX`fE@V=5hZQ`XkZXFf401xy` z5^Y;Y^E(ZDI$l@z85mH&i1cSvbjROjOZ92napp7Wkng0lXYo?~*AaQt8vMwD!bM<~ zGN(nlJAwAL&;D`p{?cb`1I%WBRtt1xTyX%RBU#BX^3|6yucH3m*{z)Y=X7jxADCl#e)_0iOSWt z|6LL_k-u>r>LOnGRXh7Uk~ZH>5-k|Np!BfW*0=#&X)j8H00(z1=0g#bb4yv_2_XLC z4z)}3RXbKY1cgmKQUGJ<%?MR?^tm~U0tZ$zYrcRpQsUKkG&%AW%B8gyFlSL>xwyyf zEEnONy4u7G_#>`2iwL^rR=JxE1k+@<4$;C}dzzK#6x>#4H+_4rc9KRfivy6A@nP2) zfgrN%kOoAtY9hj&S z=1LOac3}Jj!kg&SB(lnI&)!THI}{=()s?GzN~b$|rFS8S$Gzi5WShz!uTO!(jQ#b` z?cx@Jq4<`1WIJsz-XgLr*`$hgA5jLw`tIcXhdfoV=lNfj%*)u2k_}mOR{UKer>HCm zKk;~OCrerxppv$;D-|sUo6MJmVd68WVi1?)=V@*0^TSQ75cT1 zqDQV=%|q+}WD(cF#Pw!e>~uQ2$NNtWlqF%-s_$2m5lB~B7Pt&`*~wjwgWNuc1_uNY z)F5B|HH`uRO9-Vvq#obhagi-5AwVX#e^71x=#6JURy7cYe`nW;FZ{b~cwu(k+iZcX zQxXw=7(%M&@@;c-)5=u(S=_CoQyVB=f}5zK(fAZsn7(21@#>hszzVHTm*GgiI+dJh zic(fMByY<3P4*@JS^%oDnU)=DdspLrB z(Hri&%OCIK$yI@VXpGyFuNmn$qKS#SDJ;7xHA-HVU=GYc{L*RHzT}>Ucwom)`3v#(8J?}zc6R0; zw-*&9*L+PHCd7|LuS^_D60sFo!#=k|8aLjijDE5j}m|9T5HX` z?ZXQXvVxe_8rOe^RJ;8XL(aSTvO=DWEwD)1_=5BNjl4U7>zK^$dEPUw7f#Fd zP5X`Khk2k1j<(Us@5k`&%q{6mp7(u!U)U*gI5$^rmrOMdvB`df=Hv3_EE!039k;%T zIczYP@RuE`)v+<#Z$&^MKIRu-_^4QsV}RHTW+U zktQE;St!eRK}E1QK;sM(IP07@v_=#IiC;7U*L2F*c-43qu9{ z9>b6G7vjpWq3SvDdaEzF20wT8;cY0o@^=d8lPh#Mqu1;T32Dwuz^$92(imUAmp^78o@NzP`uf!=4m8-~#|!p*0oYwqD5UJXZ!#>o`qy6+)x z&EFO&vmMu)lv_4jKA}b8<7z=$z?KDLfP`k0zSrDkUBoR9GCPDMF|{dIMoXUPk(0U~ z0N^M@#b0rThtNJo7pd?ijX41D)?`TjG%kLat)~J>_aJiRO1#d?fWZ{;o5Y_Y(AK`i zjq{bH2lL!^mvGjt4ZDHJT)CwcXsg`I?q@l%HfzRBNp*!NOARn-Vf^Xz>t7@~MogC{ zE2|ewyR5we)V!cWJ3G-O;7s7VAn84thC>*U0c|v%jHCy-uBcd!7ROE)H;Q1!-HTf3 zHLZ{YrsnsJo}{m;aaaY8+r}`iGMD_CGc`R-TO=Su=cU>Km;L%x{QMIW`dIc1oF(@^ z*KhdT-amgB%4vQUWb&8C6T1bE{d>~9{#dkc!WOQgJ1YMEH_g$jXF!@^9!VPwt^B@I zLwv{0QK^Yp?)lkHs9)DTgRZtMWuHGLvq-YH2~vbT*$8^fBQ*QFP59-kIP{ZP*lfqE zLa`YfN7pf0f^-IYqZGdhyr854VXq!TPVGk=>_D$AKdj~jr{-v@zn%EVnsUjXBmssg zOfys)ktz)D?v7Jk>l?FIx(<=U0(Kyfp9JKz^s5$vk~NNx`9uQw?D#Q-cXjgFpzp@4 z1XG84`B-2ELhp?p1X`K53ZvV#*XEm6toWR(y6p)5xj17j@@Bhm$0IKP| zx7H=qAYk}AC;FV+Wp;k?<%5Fr90pjW$VqfCwyrb4AyLqPh+}TM6zzOnAhp>Mpm$DT9ITWzLxUSb=$dVsSnOTk{t<6{pbX z8csR@k0pZYNRL$G%XY)&FiKQDwHF1~uB=tzD@+W@9-O>35m3G;K6L$EZ`guJs^8Kz zGCq?LIABj=qyS9IpwC-!;~?v&dy3M>k=}6frp(ABg^}R1%Gk$MWZy{T#hwMi4NP?F zO-@|xPbg}cg>fPh_Z@V^fngprYj&bY8sfZ`8_Wq;f^R{V6d^Kx>GCcKy!lgt=$drx z+1!biKdkGtEn>N-<(~tEW2L7rZ(nAP*tIM$E-6?#cI!=;xvVhC~7R`F%%&#_P?og!_CY_ZF_w?>#W{<&fK?-r@+{;gauv?Q!A^AFDlsP*Y>LC<8i|f@ry+rR_ELJP?3vuCAXAn za7C)h+)av9F#T#*T?r&%+DU6C zM!Rm~;jKYxQ*S!WlSUXg^7*KJF8JGv#k**<31*$5dz2w^kbhs=%y}#5kY!Bd3)Qbs zTot$ohZ)DFtoxQoaWoc{`OV+U?Dv3R1>`V^V*pN+AKP3uQvCUQ%=dz5@_0>dFlk+R z6njhpOAVxmEoL^8t8VjLN-RHou$<_aJzjiN9BXl1c?#R|8 z?~$10LA>c2@e5!1VaH46eIIEI4tHVHSiw|Ny$=(oS4RA4inFv43QQMs)D3PlZ?b^1 zmg9G2^Pd6a7QE8nW(%lqSh$LKj=*Y`F$c@3zF{#MAs<;2g2nVkz~P|!gh&{X-~oSk{Add zi(!oxC=O0;<}kg#vlwV<4Scm*AmP{E{ZkJUjfAg0OC5lL`urhEu2$>_stbtTa&p{o z977{a;bcWp9~b(N#3*B3laZi0|^mHB)mLh>Z|Xf=S!? zM|16A?8DG+w)Ld;Dw|LS>oyqX2E|eKKc5+A;M5b#1-u+XTwY9BgwEL!4a3sHdkP74y4&gO0Rxj$GKA zj=AmSRD5meVuQ$~k?WlIY#;NtxvNIL1s+3ZKDUXc0c|dkWfNpGQnEK#Tly&t{_f~7 zJS3IR$U&u(aU^pz=fXaMda#Me+)+mbqv}OT9)S7?NrOqR%te0U9%=Ydty*eyFgI`L zyW8(oZfy&tYp?RNN0089k(n9!dL5(bGl?Iv2x-hJe-0ZZMZSES8l+*cvf(Gp>%Q;O z3R4C$S4B}4oYs0Ll6JC^3HQtGR;V!6Etj!UHVS@%DvutD{}wM5$$z6WTdlolDqU=5 z#>|ut$jqqfjqFR`U~ncQd|FjQMvGP*E&9sIYtuj3P^q+OI076EjJZm+wEB`w-+?jn zYUlC8g_+Q+Ck!yff-CiT;w9kt2juz1kmSEro^q}-{Q=FvxF@&~Ga6eDWWU7!&O=3E z-KPv`Ob&?z4oSP4TLkQ7Xn-6&#;ZlbR?I?N{Y?n(tw3 z#))xM5#`w?r%6aj)tfQMReZdAL``RF!Rl9hPFCB!P};_nWC-_mI3kN#B10&Tzl>eq zQuj+Cnr2QXp$^lbI!?dhQ1OFxDRK(!rPeiO9gSlaimo8i-?3EKIVT=|v#0t}2bdIu zoGslurQAUxk5s>^Hr}0BB?zwC!Fjg0u4u?hz|HYgeCx&T@@Zc-gz(+cCDn3P>4hjo zOIJ^fGPa^7^uc8vwlug)ef68eVPWJs)#AXA7yw&oI*cy7nc^w?x%?(NDT50F9=M#v zr{LE%0aFQns?zgoBkXk>+h zj#O}8#Pp>E{17(}9>>UR=kmXdh9OscWMbJpmx~-jR3o_+1L6f|iIknvxUo!OrM!A7 zB%Ycno#f|-is5MR#kCRUquNzMQPFT$C1=CbIO0qov82h8_D988@Sil5t5vq0pU9(I z*{6n4f+mXJ3eVm3Fx;mAvT`_fmBEMmGt9gG%7l%l;C;FntmQ-e!x2phbM19k2RB!& zQF2k_>@VJN!yVx^NBjTk6VI_crmvbbcoI zztka4dc&U?{3l;CWwz|KV*BEG}zacR((tks;beQSuqp1>MN=@eT zm#r%mn~{jM8O}-!lMZI)3LEy<4d$<{S0nnJ-Yxil5|o#V0}un+E;z5e@lRX(;aS?( z@Wn>3Pm+W++w+q7d`UiXPYAxMm6%IjkHKG+;dXpg5=$;wW(u+G&5D8#oMyaKzJ+a2 z*IhlJq}V0wts0u(74}~QXeJpa$fCsUL}0g1x`P^cwDqkOS_-W zyy8^4DdGxi?777AeE;hP0Eaia#Ss>C5C1a^{zIsIvz(8@vWffMkwV-_*MQ|IK?FB8 zeOnDs08oK`57A-daWk!ZXGYb4g-mKdr4nwezx;VWxs7LkSO1OS%efJ!^TMNcTf*WI zA~DZb@6&vl2)>6dimCqPcI*wehK*veVf& z?a`M3uY*s_D;TkPRy6OOfe?Nqf)m?7SFi$`3Ed4D2 zW#wp6QlCq6-Y$5yZ!*|0dOS7Jbn9^50>epTeZ|yY{vqvZaB8sIcsTJUU=pDl^^DQH zH#0+-+*rEBp6+b_dD>;81hOwWqd#TMbNcrkqmyIcXc2W12mvrYIfP@yL`oBM!)wU@ z>es<6$4cvU+#*QTs6cl=jIa^a>}AG!&n>kFP*l{e&lO)%!CSLCTvh0MzMyWptawJ9 zA*sgI)q<<2@FCl(uY$eg$Y*@r$(8%OI!@hLYcewI^1sHuJEuuZNoduXW8CKIkny-d z9*H;OB?kA9IfA+Qlup}u)wU?_)uQWly_4fS)TU-;|K98E4t-4DSfT7Ygh|=DH(ack zv$K_i^CXo>y6FS`7++t=5y5q_R(-%d;a)_LOQynCF%Em9Ux-4j42{)Ti%4}`$x5b5 zk+snUy+#->=94^W6yj~JseAH^12VXk)FSoen|Q>;#^64xB;l+I>u#yq)5Ek|bP)!| z*wS?1*?wT;oK3HA23kG2+$Fsst05YZtS=$1yoOBsNCiS;xcjv#t^E~-!nEEPIYN0g zcyz{O)0&S-_Q7ryfCXF9QZH;CFvJ>FDvvg^~! zJQ37)wj1;#kNwq$$S-U@hJVZ}e8*T-=w^t~D(EXb8c8UL)}NRR1=f=!@_)sRHz0Yi z{$VZBoIO2}Q7!{L$T(HxtQf}8)@hv2obUBiZpXNDM#+2Bw87Ni0(d&E*y>l^EX64U zGt##~f>}m!05RdeWJzXD%PxTCPf@cs>-ZQ2|YOwF90(M z5}bQ~gXb7huiI4i)u4f>R!dd4oZ`CWe(u!k z>A)*Evp2w4w+P4GGu%V1sAu~EM zkc2=TZszm1*Of!zo+1TmXWVNK||vlx9Je+}zq2TJUY$F6KX^H`cQ zXt!Y!?jjnarJiR&68`8!Wb8U2ydJI7|CaJ2z$DNODI|sLRCY?9gRc>!- zrMEVEmXqtnnWL|u(e$X6;yI)-IFemg4HWp)@6c|OIDN)GVqkI#%72n(=B+yO*EP`~ znsPQsNS?M2d+ohDGE$|G2~<$|Alv9-mukB_8tL24<}HoLbg=in@f?0y74?7Ud`?nc zf6{ipWXdsu0`!8m|1XjB|Gnl6)*B6GKlOh06K}c4cje2QuFBQ*kNOd}y>Itm3F*JA zD3uC2yhqf=8l7SVT)Sdsa%6ka)R!nUa)rtI*)jIh6i$FHAQVYo3BA3g7J*;wUpm4O`Mt}QlTk0+q?3$K5Sa?$vjdWPIGXEJe|Zo{_-;TmV>kGIY}G7 zWtwj=ODZbKh(H54kV(YQ%7jYLJ3rPKP zEAz1p^c7H-*D%?x0BJ@&%+=*&F3F)oJBZTHQGY|gf9Mp?%eyOKjOTp5Z5yh z@i8Vxq<*vX!1pq=2<$UyGOq$BGE@eMsph(Z1(L1L1B4Pdx5}-N&#>4s+ldQW`*#S; z6_5O3_3Hu)HMm$*SZvc?dMD-=SzKn$KiYGMJK$UGG#loo3GLz`tVr|Z-U{FtrEnq* zUDsE`Oaw33P^-q0s-r7+HXB3C;IUm_oJ98yCz~skTH9sb7QKf)WpBrDG#K(@EwdFO zNUakqEBSt80Ax+VZwh|sQe%cUmZ329W&J0YBu4l9#o`r%s8F&)mn?!8q<~l6qQ%vC zaw)LazQH&FVAds1yWeET=!K0rv0{b-8DruB_YkR@s}DbZpFUC?t=>z3b>ta5P}V4{ zg#SGUE&!hsE*_Yq|4XvHz(PYz?eCG$j<;YqZ4IkKSNeBGZ}y7nMlft)e9{x-QuzX|TzQ|#Lp zS;%4p*>3%b=$qZY{!+~0ipAe$wyo74JbjKjJ=^hnwmN|x=e=C~purH{WV9%5qPqio z`nR=b3@P4RLY0@%*)Ox(-JtQZ8=vzu#qKwE!*_l#mYs>4)w!ken7ycyimu5%A)4d= zQ)PwVT~wX*VJV3>T3xxs{Gg|cJoZd!yytSJ4lRQdh==oI%Kp~lK}kh*Nm_SH5IsVA z(dsLcXLxg;lEl^v5oJ{JN()DGg#%FbxV~=l%CBE~uaaZggY@6#`MXu`6FiZ?pgv2^ zS0b9pnR1|Mpz0G?wq~#jQTcRk#}+#a1n!Q3wp8HqmFSrY>nwj&cR3fuEgc_pNi0g_zW$uTrDf&?&rf7LyC{DmfjfrQ zJJ_V<8JU_Z2&i_^vj!wY&UA7s*La1Y>unL?_t~>#Jo%Zw(HJvd3>dhwb;>EprU+Bx zr$5_Z{IT|KWiHBZ0dkhG{|muo4qx4M(&0m?W%*id&-X3gxU*qhU)X2Qy8HNHW`$S; z9L6nRTrE*JX~IwZwIq8wy-gbc^P8iejkBV0AyhD579j_aN61_xLk4KSokKbXY5AM_&KZAgM2%j6iaqCi6MqLbqgJyUsCTe!|O!9S;|5 zwZ|SqS_2eH@KpY<16?FNlU`nTRPf==J(nz$%dVm-3Lf%F#)3m*)LBZ2mmcx8=#Q~E zIbH911B=(?0jeyIo_nlzUeN1muwNiEG8UExpu70I z3b6!;Vb(ZRWMyOM)sm)1%v#G>>1iJUKQfjtJYZ5pQuVjSMRi2oEg3B z3lHs@QXl$~2=U!qH=t#hYiR^t#EEM_yOD6wTUoHBWjyJr1$@njq&6egvO^oeu4GwT zpo%KqZwH@$l4g8Zl+RttO|F!j%VR1D}w}TUcI|P^D?(Pr>4ga2?#;9R?WWPR{w>^WFR0^Q)nsnLWFE_pYw0UbWWj1Z17rojXrl)WYRV z{HmAMkB^@5RY?Jcg3|%bQW?);3b zhf7uL24m{6MFhiqpQndv+g_S7otCVJ(rK+(daymEVJv8PG%?{?9D63kVa+ArA!Itn z4O765qWuQrme30z1qL-TWqCCHf@0#RX)kn8ZWE^MmL8$Q{4dz{M-O;0xm}eON~E(} z@{9A8bX8&|(B&KBMfV@69`U6fc1Q5_mEghPSN5vmWcu@DzrfX0U7hH0_9BJ#o8{_K zn>mp#v^Xy3s#Bom`nT9xd9ncbC5{}q*juRoo@tZp9q5)x&@5V$jj@(Q)_QY{IiFhE zp4PHt&AZPVfzD&hk>RK$GdJ3-ES@PgXr)Lu&_UTx7y#C8xK2VU6G2Ma$v8bHc6j4! z5*fidpi*SPGyDhT3o(Gi!qfv}W^TgX8FSek$tCcJ5ejwGkjP$_wMNj_jZc=R83uLeBt>d|ehBSkJe_q^x>;u}QYNbk=F| z&(hThlp*OWS)BZtAz)#pp0J}c*=xn4zZaa=&7&t#dL1+glVKPQFRM%4-udbn_+{FZ z6T2Yy4#vB6_Bu5AO~9=*ha7c)(HHIM#4f!2*6S+x+|aY{PR7FX5#)J;bKnPtH-0*s zhT*oySQjg~?*)dH0A|P5=AY(l?4$AuUWd3f!s_7`1$;~q3^z9W(TjS zndE8ET!^7)m_4alyGcxB@Xvd0qOOWUIa)Z<2 zHX15nM`f`XAU3o}IzfDeUwf-a()~9Cy0Yp7vioJ(dho-8KkIK(e)ML~LsxVOz@G7q za1kV*Y z$pCG#5Id2KBVEFQ47GSk+!Ab!Ztn;c2@&ewQVrTIdQvB6loXI65u|IUp<)CcXw@CW zk}~hSDIqcP_$azqz(iW}x=dP^vSbIIgDMFrftt~2UDRxPyG2jzOC?XPbUo!CG^r>Y z$G3KafH;)rJbyWl?oxO$`?m`!xD2;FGJB2vk3V)_RSxC0$>gPad zFmB^qH%FvFzNE$lAsBh6SU0-ggjWhtX+TSsDfaNv?63|n5xfvnnRE0GJI1(=I({#0 z6$U;v+BExk{08q37)>v10fWtkwy)s=8WBzJvi^6u#JhSbm-m(E+_PTN7EKdGlvB;{ znPKDZOXt!ZVaylE=ZEyYt6RD3AAd$j+97xB5<`IBL=`dKxPk`YaqJ*e1^X2S9sB)h?wN^!~wylE zAoXMx!U0IL_zRPYM=VO~yq>Z53@%DzyCAEA7zbgoq| zu;co38P$MVZ$uYvxz7F5uj5+YX{RdU+DUd$>EX~8IpStHnm7Sb^+|z%xo^}=frSIMT?)-nMf$PpLWc8eK@h%X4TeCsoa*J6^<8IS`D;X>B;u60*5Kot?Yz(^H4 zf|=IJQcQw5-8n-e2kTotT>UV~ef%!L&Ha=3=BHK2ND6b0tErp%zXe;&v!9f z5xcKTQ`M$%oclna?9HsrY;W0&(uV;4x~P*~=Y9r>=VCt?=W&!w+Q?q}Q_oqQ;o4h{ zxNr8-#_WGGFfnjs&uvUm8=iYNWCglzai1P)Pv5xw)IjDNt}Kk!4V&OfC;z6_y{9GV zjLJ;s{Qd=QA693tFhdyW8N08N^I@WDOuYkcPB@YmDC=V=3%5$#jSG(r<;U#ze8=*N zWK|wYPTtws`%|E{?O{$wb4*+)ks!e%Qr?*&7X{d$f|I(HrO*>pUuKul`mt$EgA%hI zn&H#6=RBX;<-Fusf@bV0OC?Ngp{2U^1PAH5N-aNa54}sQY_tjdhm)+JQ&A5qH^Xbs z%wyb71J8awnzRCR*fH;7^Mj~dN5Q^I;27eY)y(^Sg*v}k>EKX?^cQ@e-Y-p!u}BT6 zJl5A#Q~U&6vNXtLs4k|fW0JqBDlMu@*~o8yf&4ta0jcu+=Yuv%m}~4xJm+{F6jH`D zB|gP{jwq2K`@A>!6qb@fY%tURGUQUeegMQWFXtQpVSXMsH zaqF|bc0om+VwWHIOftf#E)>E9z{KZW*#l6Dm}yPw7{nmSBd)c*N!!n6&QdUvUtx~0 z9e>_TJSo$i0S7PQmMzX8ywNmq=>Eq1%Rz=nzZU#TAzpm3?!X*zl@ovqurEDNPk9u-bAX)EO0-AKttnZX^l=1C~>jG@cfVynHEeRj^|f zvt!AF_~7hu#v-1qaSZfm(X)=|)(NTopiHfeF1UwGLBi|YXgxLZV=s~nF{A9vmacJ8 z8vaQvL1=aXc|Ma$lt6(THBPDjktue|kYt8VdwRV`0eLr}5}Dz&Ior?gjdbLXq}#tC z0(89s`wv@zW(xK!hbR3<9$$V(zTbU*xOvC#>$cGLP7o#fK^!=-& zt$~rI}mjZ171y(z7W=7YK_cERv+$C_%n zAAn#hdRzh&Yt-$U0vj#41WactOhjI8x@;3X#)LO7G|`lET}V^94 z$1FPN-UWf=r=ZwpF87GKtmiw+;e|st4yT<^sOaN5hhXc=H@zls#H>DopJk)=Kcxfm z{-L-qVNEcs^l$Kf(tNk9sid+>y;O@7m|F@9AQbha!)nu9k9ha?@4`+Tdxwc&(5q!+ z&H2;Hd3$3ngDQsvkR$EwqYhk5qXI!Y%bz-?yrX^LLIG8jR$?mV+(=&p>wpvFGMcx` zR6#kx+oQcsve0MsB<#tAAJV;VoQnm>^r7FF&$^k6I`$S)UxKYn{DvN85hyyJa1;i- zs8o(Jj~f?P5pKHUm=li&aMcTh&;7nr|Gd@F6)U`wZw|$4W26Z}?-7Q9^bWjuf$!=L zLZXIWRe4oF!Wx4oHnH2U2G=QPFvy9LX;?mdQn0|2>O!?Y#3V{4CcShWyL^twYJY;3 zQ~Hhg`N#J^5Y`p6-I*y8i2^$YR4Llm{cTo+G_7sj_MW+V-;x*s z3p6xxE8nyg*%`EZ;eV3S*xvp^t~jmj%RX*QL%Lurx-}j667O8U9B?hpo|&lV2<~C$ z?VGLNSR%0oD5H}v9CY`N8Trnu@}5XU=ZJpC0?qb2Q`y+Aei1cwWU2c+ zXu^Xp7yV#gKq@-KEGU|B-BDlCW;|CBXC`Y(6PST$H?b#AkkLL8NJitS_eAO==ReDI-16zr75~n04Aa#X%5vbImymsqTa8Fljt~wa zwLHBi+n7il2>0w_%;1xUxQY6Sz)XZ#O_}#CX&n3553Y1}=gs~6x{?v6z(*0~p%84^ z5|qL7O&krXO~lLgFjOviY5OT?-%sZ5>O{0?bWjM@Lz()=j`R?)T6N45yA8A3J5GTw zqQlhpenaQ$Cjip#s3rdX9%+_(Q!kE z8-5*qQYHM^ykWK;w%mr8D*c5!-P^k{?I?`{>9BlLk24rS^Yvbq=z}=d=aELx>Q+{- zX7^A&gp7jvhN%3XZ2OS7nk2E!Vv4=bHK}%BPHQK>*2~F#>O1>Eo>WowJO>dwls}it zl8uZ?s!nTpr7VlB^kHMifr}5_Jsq+kQ&F5EE$_YV2ulE%U}}4Le3gM&5^rk2Of0Un z3K^XNliB%EEjnC?r`XqP(<|`9m&W$!kmVAp=$^-gq;Vm84n5YnW$$ysqb=`@WGD zA3T*)(7{Bl(v8a5^tJUT=M~As)5(pUsa~cycY{2Mjk%8;9FYp|y3rc#gk1-`wMECQ zn)7oJqwl%WE$So0GIrc)-1AgU-U5(PoPq2@tq}fVr@#m(X`9*f#D_b2~1QEe$QK9dN#QX_>;N3 z4&H0I5#?90N@!Se7-?j7XY-s{lnaqvJj^%&v&5-VYADYk#`=Tp(vUcqU+KKZE_CQ$ z*9F`F;zoQkALR>xug&e%CGWrqmtfq`!IYDo*JD2d#%}C`Z3iw^6qK!4vhZ*338dsS zg0V>tA0+G6a2KPA4Q?Yatkk-;H^FZ0KwCJ)@B5Xs;c)>WYpMK`0j^LsowDieBoP1* z#)lpE5FrM-z&O)_$kPM2S(IC*>^t!i0&ei*X$QCH6bvz$Bkww=qHmw;pCA)bMAl0g zmcDXzPA-!gtz=oWpVchcm|nk$9*X9>x9_)q3KEI$8p!tQ8o%hpa_P^IF`D)$eQ9OX z(-C}eS_H0kxbZ1%H}Bgw5}JcFNhGlo;gVY*9N87r^|@KyagE_0U`1l6@? zqZ9@wE`v2oANQl1fSiNNxE4di8?sy9P@lcS;;#eeqDauECnAn<#UL!^EJ z5ez_im*&S^;DB{p$uV&Xkd@YcjldZFEACm2OwYJhSokdmLlp#8c^O*>4~}5lz>dt@ z*|}1?NJ?BsI4WpUjwZ;9ol!x8*Rxcp3MGNz2q+jx!gXj4d{Jl)sNtUr9U8#TuPM|%dpDz?o(a*?+izKS&#p(!(a}1yRse_J$LBqPoRaG!9P(-BI zzF9-6a*$&lu1c(XY>%B5`3PlWnH?hPm=;)M7IJ!i*Y<+s`m)$1zps!na8>yadHfix|= zu|RmnLQh^VMR3oa<85K^%){Nh>kOogWz0lu@8K|HKHNZ?_Bv5J9ZyyY zC`qggeO-6(wco5~!}gwnmC|Q4VLjvb&8w=CR~Y zV}9aW)gPQon9aW4u@m^leoyAicnpr437&M-py0hc{c2K34l3IzI5R)CA>!Xb#P*m?i&8)EXHSt6jWsb58C4K@bP4>SA9rixz{S}cd1cC#Iax_4m|Mv#o9xrHvA`g) zc{w=Fboq))_E6?a4tw*8BL&eMXM$1K@t&NNz)J0OjhYsqBrU*xf?eaA{Pt z;B5Q_B@>J0hWvZ{T21v;&uJKgu_Y0Y@Qk-f>iXeibasN#$0}Xl)L7;rDb^4}1Golbf6Y-sDe>fw%>O52p z0-!wx#u_;l>gp#8@m>+G?((w52Y8vKbRNkivI*G(26pcFM4u@>ijbW8}b}TWO4xsE$bFZWE3PEKS>{ub@jIn5@aIX{; z6j*hScsH=%WdxN?FdOzKrWX18e8W3xdg(yV?C$5@zLjLls#85jimeXAH~uAKoe|OAA8v7C0yJfbR5$JAeK%=x z(L?zZFM78>KKPbl2KZgGu)W8|@ka@Aseq4Wpcu^8E+N{>tjYh&F%_fvWzbW7kuY>% z(0%CQpvn7sHD~gqvib3HEi?qpI`SBT!lN_JJqKw^@&2ez#cnQa&3`B&SDDE-8{o+<5KCy26c06N?H= z6M7MryS8e-yH{f@q8~0WNZuins+KCkb|%I6K{)(9`1t!c`X(QppvuI)C}Co?ag|9G z?T~9oCr%jlRyVHFmwAs{$iB2>hXS4-R^c~eTNdf~wwG^*)74~R%~)ln{$27R1`%xi zd9N&Rj-)JI{NfkPMh{n)$SRE|Pb(897Q1J5k4eBgulM1t5rh4_hc>U-QoJaVMpcDc zuN)jDp2eFe0^XQZmL7&<^GY35hcE-SG+wImVD>fsSs|7bO!?Y32hMEz$x`9_c+1Ny zjGMto-N;A-Oe9-zAvq^6ts5-MYlaQe7;t_aG4Q5crO54cb-04#%E#>sux$}Wc`!N! zIw}VTS^AD$ozSO_OEi7Vqsf`aId$~4ajD2Ft=N1x9#s24w(_a9Q|?-6mmJYb6|tmv zI&x?NAbFv>;ADJpyrAW`D=5}6a8Uv6AlLlqMY$h;Bs1sY@BRC^8m3&F)^8hoCB&&r zJOSeoIc}P3_j#tT`tg)?;G?KxVNv=}5=!f)9tzpo(z^8fwd-R}(O_gX_)gH}j@7(D z-^Jb4LeW@fkpIIp9QIqshVgG3m#@S*9o5X<4QBg6VI(}G3M;Wb5l12B6$CqTNRtEd$hv0BOQRLJL?>+HEFaQq4DInB&R zT1ZU#F^ruN>Mw^{(PIPpacc?!{hjGL*i1{ozziBpsNJ4tS>$!XC`tWnu>6JZvFG07 zV^W~3{}Ubg)oxI(E%v8eAXultLioZWodJH6+cJh=$HEe*C{-bGwGhM6A}Ud*^wWzX zVrtf)auLmH{7od6Yj0Wh+-38TXP7p#p1#g%IgEXN=#OvFuV{v@lRK_>ztd25PRzqejueCg zA}o#ezi%Y6f^n4kpgtX8Wy4L0QJj&-6gHt%eW9;s^R!_5k^hH@p%93~7t9b8c@2Dj zL6IeMnaG-%M1<$|5&O&+$|1K;Z-YS>DuPe4TrB3^N?jrhrvhM}I-}#{i^2?=P1Xl+ z8(?DNM=UmQ$qPF~dC2)cCBh`Rv&8O8k2aGUackS3x5!dI-bSsYs%rn0|iMsM@*g?J4Em6)JQ(Gb*RgHe! za?A(>WVFsO3l4fcM_?Zf+Nz8(p=?wbc8j1$Z`^NKP$aFa(82V!o>3`UlolkHaCy04 zb>|Ad=<0X$?LOX8&n9yQ&F8H{lindA(%RM8z7C$wF#rOynhwj} zE51ixK?y?)p+IzXlKGe$%r47odq~u{ItFLYoEFBKqp7^duUwdpBC^ST!A>bzL$j>C z*+8)sQGrMmTIiH<2YD*~jDp(Hchgx4pm~y@S~s%Pf<~;Q)7yI7P$)#a2dsKjG-QOq z{Ou#?C=&QIah_N3W=17;n22ocC8({6+QS2~B+FKEC}y-oCB0^zy@RycMxhBa6aQ8l z3h1Sy(fO`qqrIyql&&n)34z;jA9eNq6*K-)7_3m&!RuRCxwHWQ9&<(XQtb61>#5T- z2W?K()LtPeC^Q`iOYv=0!)OumBd;ej6L!*X%2Niv=Yn6~E@6yIKwr7DfkP1#2C)8= za}XZcIV^#y;KM6b26}#(b@ILgK}3v2p$PNJB@l8KGUx0I>|t9*)IFzTdoi^h{9Xsv80REhP(uz<&_f$FJU_*i*43q8!aMH#cW!lI_t3XeaZ2DTZfv*!=AdqK6q!vB$*+n!I4|2%sZna<$5B z?P{fKCM9}vyX1CgJ8*xMlNl@?jiKS868bxi_|3$-q7cN~%6WcRx+sfw6NdxPhaF|x ztNGb#LS8Rfd5BCw7Mv$g`|>>xKjKfWM1ATJUVDOeFz;U2Z%_m~^X=lI1W!o5e{j8% zSn~lx*@4hExNhc*b$w?+7r`^BpH-(tR(`ZDLxi{Vr?DwP=*1LsGw!-o`|Ku?dh3yZ zzWH9BO*dZQiLr;&f}EPpE4VXQtTsw@z z=_-Wfsdge`Kp-MD%ljj{>`_bNW13|fQiQzG8v^JGA2^_Q_mPQx7?o?&?<2w54Qqtq z#6+Iy_XV)6O2-o3QaETa1S_ny2+ukzC?Q{jfG&{;scsNGO39#U7ARLSYn+MP7g{;?%_-_ zXCya72+gE<;*#Lf_t0-cz97-#l8F{A3{gDOAm#JtPon!kr>E^b#ES9RgN;kOZ$kQ9 z7Nc(hyLIdbZM2M0_-8eZN+DtIzK3T8(Ytky&*zgSb-iXHs59>-$(-sZhn+|M-_>*X(hi(#} zZ*yOa6uB8_ATZ;!F=Ooal{5~S4P}c!Y7mQR>**>cc!>f1nECq7-DdpMSMZ2rI4V>^ z*`v)KP)zHAofgxo?>^?#@N_S_5uXSATIw4^iNWQ~m~BQmQj|cApjDZf1!zW1>hEKlFUwgqMG;xEQVfMld9L4zF!8f71UwY^_Pe{)m=8>wgmM3TUGV6+G zm2h6&am%#RZeApjeBp3Tq`k+NFiITP8HuNGhE777uV%3Xy&uIMEmW3}k95JrY`MRD zVN3~sz1P2L^`r=J%9{9n*3(ZZ`Pv6R1P#?i`x2kbqGs^&=ab0A{*Moao#Ai{EXfhOtT! z&l`C>9NwO4bWrh-Wavkxq>1+y*6H9kw~$^#pjM6dbJ&qp4qisIUn?C;3Vxl?j=g2s z2ePD5LW|uTgZVW8PKdmn2C7Hz#%74F$#d8hQI4cRlDC}E`*Rjcuhp&V)3)R!zB;hO zt^y>z;*3+GQ>~>v^vVr?JiwPK4D%upw}`u)lKQXXL<>{b`a}woD!|E7%qAHT*mV*% zkl3D#2vqWK-d#|8rmk7oqz`dJPK2&dG(_)(i4NE7Dd&wwh-<;{e znYTx@zxoJZ$P~S$#l1$5?bifQgZD10jQAA=oc8w;=>+r}`pzsawlBoReU)7MXhwEb zZ$!$DaYIfx-*wa6MEc|;5q;@sD$lwe)C!>)sxDe|@+S@oKIW7f35F}pXTF|cMn9_E z&F3^BtJ^8Pp|vBjevGqCeUR=LAaL^&;&UDuS)i7YMV*xVKJV$?CU$e1HGk|fr7se^ z?G{HF(AU=WB5}EH5cqDF$JMtIi9M65N>{RcrEi%&e{*_GVA$u~U%`)m1HET3wys&P z+>OHZUh}bSqN$$wD??m95o*qnn=K10eUvt*YJr-9P?K=-oPr2DsLmrKv<2EwY74E-be~;Z_Dj#BCt$ z53VuT=bPW$R|1*}O6^1_An7Q;D`N+kpge8~VT;PelD3z|It z;{n~TiB+cCq(h1WjPHJG{-o4ObnvLn$y-=cSiEve({?x~zRDDR3w&ccf>#2g*hsN1 z*s|;Br*0_QN^w)Zng{Film&`e$nBtD`R&Y&i8UjJQU8eCzzrU`(L zATa)Y6G6`>`u>NoqyeYNnYk?g`&Wq0@D?HW-$7J5LgA{(?@&O3R7B3kl2jnmZgwOE zi1_-++I`h$sP7BXG+3+-p$yc~BYbe92tKK0bsob=eR>T4n}_>1UJiq28t#Y)zt4xC z&9%YM`RwE@e~KpE`S~jF{nGI{G8+kwwI+o>Xd<6(SWx7rN<77iN^Zy zd#tU(FXYhNzGq_5)i7-;v$F-s1(JFsguUN!TL{+51csqnuf_jpejz&cc*Qm05llQa zg_$1`Tta1hKKAu-5LUk}oo#mM9ez8ph_C~A^v43x+=`dyd;7b{cXXI>n{XRZXep=8 zyS4D*BV$V`n!vyH#ax1J!H(I5+OGDHOTG2}7=Df}T-EzlDQvsRyXD{_a8a4r_! z5@cYk%R)YVwg1e|(`b;#hm~m3(Lj9ew{==D)o&~Og)EL?TJ|4LD7SNJuWIBJzZLw+ zy(EG=aJ$vm-`6yd3MKbfgT)ytJ~6>u9!75rcl8{fex|GS>i0%@Ck4@c*6Q}9%be%! zl$SG-vS+S_D+Q=J3nK6zy&iRK!+^JzP*2e(LC2RPh^?XYab@S}zOC&3go!U*J>+s| zGwQOb9z5T~7sRO!50n!;ZZs5qN*w%YQPXbO*)AuZxn6`vH-5~QWnnsA$|wmhg0w{Y zLHXeJn8YgQ1(8c|WDrA}hdaiM4V_q~wx@Or;-lu_kGu%~Z34+qqqY^ozVpb>C46Z4 z{&Rn89NW~XZpX-GF3NIo5J0n#J{|I{@S>W6Zm_iQvf{q?EjME+5%bEa}!$W!_;wqMTQA z4h0mtiK!Q@*)YWHFlUy#NK&F7xaZDYBQC#(M1qO(N;a=b6P6L43ja{FQC9nN#H|*4 zKYlj*DDOjX>j@Qesn@J2yJZ52HXLI~NT)Xi$16bu6@ODVZ=18g7X5Ud;46|_w^i-4 zxF8PKy0)Qqbq99qDgo^sk_9vQ7JUs?qV4IZ1^Ihclndfq()uZdjEulzFu~0Y%P+@J zyb=OtL_3Y(O)!)4KR3v#fVn5QCGf$e|Vo% z0!P*G+VoI*z_F>&#XJhUAG(!qN&U z1n%PIo@CT>+_jU_uH1~D)<=Q2L<{N)ikxx-(L_cAeU>VV7PH)LHcRDd`O9EzP$7d4 zg!h+!03Wh?#ZwuD&n0eJI1M=TR)senyx%ufmE2^sF4e3VZH%EA>Zz+*DVtQWa&*H| z4EWB-djvO*y{CuKyxDf7#t!AKZhnDd)%0mQo3urFY9Ra@=u5xPH9usXLQ)ayM zD)BN@J|}Rh`^DM&`6{E+NJkEZoGc6obbX2$o4Tzq%@m|t?%f9WcLk-l1tVB+Snc?czr5NMXyt0v>XG^ ztwbN50|y5S*80B>=*SUCFhCMPxk1ujmEJib*I@L`LjYUcZo1Ww zd)*whJmM*?anPR8#`{tHXv;~e9CanUs8liwgKTF3-|+WGXyR6}#P;!E*B-d;rTg?j zC~p<#2sw&;jHM$VUU=UjmKSDtd6CB~t&+W2ttILDTlw8RKAp=hrF{!*Sm4Q|e`t&lZ6^s$$w^zI=JD^N{BhnE54Bek7yIb)7`ZjDw$bDD z98v(KoJ9KAw(#LDH1Z8H@-YgHk&b8SvM_6>OV4?Z0kjf}=4hI17YQ zceVVDuf9&|pyp8uqfwLJME6Dw_)2BH-FFXLkHmqdyWt=#>}HJa;ISL~{{|1w9reS2 zT;s1!eh>?D@1cK|o+CN`J-;cd`2j!`f+na5#FHxsPCDsr*Q|;DnEv)rOd1|c%sP>4 zmzjJ;iGzb##&t({dNJ#IZ=GLd#n3rrI+mf@maz4PBgeeLG{X^FQ`Q-xB{WU6G(@{ndTsI^g3ab)Ejzez5 zP4hW>QPt7pkiagWiGKV7XBy@DjD3|2=b@HvDkZk< z@*&I_ano!Tk_L3-5e1lXQMb=XS2+Y&s7m!5k=8_1XcmQXv8t9V87q7z8#kb1NT?Bu zsV254drpE1;m9mR5S9-sh9MMBp@Dsmvj(@u<|X@wVh*SPozc;&De)u@%UQQYq;miK zqYQEPZsa`facp7e5>0dGQ1nUf-{27z={*1X`v)9;5p$WhYtfJXAgP>R*!B*=aOGDd zpSbesA3sacnNAj{gyKRGODk6{H-{-Nchp|EtkeSjJRdTV+D5{KZ02vO6H~~=DENg7 z$NwfhVOEdKM+D$kMaN$g{MzrU^vcLXZ2e%4UB-kMgxMB*RDAc{TJo5{mpy{E#HzOQ zeT|{kobTdch`JLsGvWks~Oo=z9^ea?fM;-MWli z2_=Lr);2*;SuKrxZSQ(RVcDlcr-_2LKd~|PV1e&`#YcOZ1!NjnXZqCDX!jL8{sIR( ze0?x>N#-w~&`gOFsW#7FPxFuk+&kDkVeB$S!x^Qg3|R|Xy!JnITA7+pAhbv)C)%P% z`72N-%iXnpTX0qbEA!ha%egqbkDoUbg$4M(+9k{z3SN=-MdC$l|MGJgdfdm z`*^j9H=HN%Sw6u!@)bx{l1I&$g3Dy}Q%$E8a5yG4XY!aMD(|%$|rR$G}!9O>9T%=mmnnxI`l?xBTO z3{L*zU$4#rkJQpwPxS(Am+WmY_uP>?;nZQU&cUMXB-+|RE=#-}Zd-zkBbJO-mATdW zFx=b-ooeRBzz*5%aGV#6e@}=>#77X!?#A8%dnsnAb1}~-LqI<_7<`;Da(jNfKY1{X zAG{o4O}9Ma>wn}gTUsj;Hq<;DE3GtEKVi2yMB_E{zR(-<^N3hDWY<)kHxk?09E_hg z=`d|-%N4WFEt{z9hlcpM$hHW7^mrgt7>I|3;ENY`WgLNh_jNfiQJDy`${g%Pghf8= z!m2j}?}Ia&297 z{3yZ>F5<$`xgzw@8c>6V;KX4&E}`cJnJJ6ZcYzxT5~JB+-v%+=<5z%)$OqD4nUlz3AnmF zn~FgYD(PLf=<+@htVCzMeU_zJR~&t_eRbtQ8s^?8=%KCkn$=7G zOQ-O#Dm=BH=kAee-Yj3eZBEHE>I4x^t_pG1MFErXPIn$e=3!Ihc@t8ZE1!;Vy5#m3Z^e zgz0O@#YFYW6p37v-8+!x>3axjf~nvlpQ#e(epc`&TZTV_=-lK~2|p*h1?7eti7oQ) zq^hjuJQ{r_bWRG?vaje^&o;DVk1xDa7T5)XYF|crp^ie1PeQofeo+mR*sC#uw{HN=}1)Sz9{F*U$0z#`O4t3_GF*8whb@dDT_E| zKTM>=pB^sO?3F%L9m#e*#3}3j)GraHNAip*euk_1#XPx)Y!y{=yR?-jasgL)i^yZf zOBi0K>dC`93@ISqdA_>le!i;pg?hXK*Suq2%OTB5N&)4y+5y6tyYC85@)1AY$TqCJ zfWFv9&D88aLArLjOzyQ+r3c_^Wp7^yKwqFraAC~VIRy>Rc83rz)yo{npQ6${VOmv| z7s9_6f&V6Qz#qa(2-?JxEP+3UXUO-(k;DT4sI=h#u#W$)4N^z?SO0%&0eNVEzy1HM z1xOS8tN;IL!E3|Nn0P+d%#q;C~y)-_QT; z4-zAQU5S%aZZtP)P`+g}?V}(WYg-+}Rf~xLfa=H-pZBY?eeQvAB>YWn zZ~#Ee{PL-6e-7+Br)eLHmtu?qv9ADtAp1Xyg)c`fZJB9~X;8b7>e@yE57OPk|l8x6%Cy&c&`8eP%ZgVc=??NpY}9|t=fx8XD0;!pswpQ zF!jR=DAUl~a(n%vzoQL%EVU#{p5@K-(Qgj}$Oy*Ut8sfL836#(MEm|ml7dr(tFS}c zQbWyKQZ2#^*EK_;!R;eTHF{0}hnznH`Bwy}mj{*QZ7B|G6G!n2N7YdoLs{3<8 zI!Zntwj9+oOvfSu01j`&(_=qq>0b@D$TZy9pRO);pu|hKHMF~~Vi9ePR(m>fuk z(ZCFDXJZ~Thn1D~zeD3C&a^6EKV;}|^y#YML|4n*^^D0uX!4r~#b;*1>*pHt#pt?X zwco=ge&S=mdao`(+?9UsEKK71YW~!8bo-A$V=O&Zvmx}R?0ae17d zgiYGZ{tZe^ZRhu;xNKDp!t;$~wr?reATa5(;^}AB_3bEgm(%M(e&eeplFEV2{YhGv zdK)tc>@gE#nsX9=O1mwXK55cuty!_@>c}-d4gFqrIs6*DS+opsbAmm6VhH4Neda`C zhPQ^SX>T

WL3qaei&}nt{3(OP^Kb3y4(Dk&sMMSWra*G7cQr|dBLuWGHO(K z!~Xr&mo;Vm!!mJMOI2zIHKg-$p<*?o4I4Hu40bJD+X1OimDAe~t(QKa742U)4m%X# zb9=_=Z67@8JP`nZf@RwU^A;4Pgl8cyg=N5i8DvF+U%up&6m~nuwdUfIzBmAY3M=eQ e`M)i|9SW+pF}ignCv33+0E%*|vX#=NA^!)^117Qn literal 0 HcmV?d00001 diff --git a/src/components/main/AppInactive.scss b/src/components/main/AppInactive.scss new file mode 100644 index 000000000..e2dad3c4f --- /dev/null +++ b/src/components/main/AppInactive.scss @@ -0,0 +1,32 @@ +#AppInactive { + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + + .content { + max-width: 28rem; + margin: auto; + padding: 1.5rem; + text-align: center; + } + + .title { + margin-top: 1rem; + } + + .description { + color: var(--color-text-secondary); + font-size: 0.875rem; + } + + img { + width: 100%; + max-width: 20rem; + } + + .Button { + margin-top: 1rem; + } +} diff --git a/src/components/main/AppInactive.tsx b/src/components/main/AppInactive.tsx new file mode 100644 index 000000000..b9c68fbb9 --- /dev/null +++ b/src/components/main/AppInactive.tsx @@ -0,0 +1,32 @@ +import React, { FC } from '../../lib/teact/teact'; + +import Button from '../ui/Button'; + +import appInactivePath from '../../assets/app-inactive.png'; +import './AppInactive.scss'; + + +const AppInactive: FC = () => { + const handleReload = () => { + window.location.reload(); + }; + + return ( +

+
+ +

Such error, many tabs

+
+ Telegram supports only one active tab with the app. +
+ Please reload this page to continue using this tab or close it. +
+
+ +
+
+
+ ); +}; + +export default AppInactive; diff --git a/src/components/main/Main.tsx b/src/components/main/Main.tsx index 6bb0d2a8a..0a8e46ae5 100644 --- a/src/components/main/Main.tsx +++ b/src/components/main/Main.tsx @@ -5,7 +5,9 @@ import { GlobalActions } from '../../global/types'; import { ApiMessage } from '../../api/types'; import '../../modules/actions/all'; -import { ANIMATION_END_DELAY, DEBUG } from '../../config'; +import { + ANIMATION_END_DELAY, DEBUG, INACTIVE_MARKER, PAGE_TITLE, +} from '../../config'; import { pick } from '../../util/iteratees'; import { selectChatMessage, @@ -44,7 +46,6 @@ type StateProps = { type DispatchProps = Pick; -const APP_NAME = 'Telegram'; const ANIMATION_DURATION = 350; const NOTIFICATION_INTERVAL = 1000; @@ -122,6 +123,11 @@ const Main: FC = ({ clearInterval(notificationInterval); notificationInterval = window.setInterval(() => { + if (document.title.includes(INACTIVE_MARKER)) { + updateIcon(false); + return; + } + if (index % 2 === 0) { const newUnread = selectCountNotMutedUnread(getGlobal()) - initialUnread; if (newUnread > 0) { @@ -129,7 +135,7 @@ const Main: FC = ({ updateIcon(true); } } else { - document.title = APP_NAME; + document.title = PAGE_TITLE; updateIcon(false); } @@ -138,7 +144,11 @@ const Main: FC = ({ }, () => { clearInterval(notificationInterval); notificationInterval = undefined; - document.title = APP_NAME; + + if (!document.title.includes(INACTIVE_MARKER)) { + document.title = PAGE_TITLE; + } + updateIcon(false); }); diff --git a/src/config.ts b/src/config.ts index 8899f3b53..7c877233a 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,3 +1,6 @@ +export const PAGE_TITLE = 'Telegram'; +export const INACTIVE_MARKER = ' [Inactive]'; + export const APP_INFO = process.env.APP_INFO || 'Telegram T'; export const DEBUG = ( diff --git a/src/global/types.ts b/src/global/types.ts index 0ecba995a..43f13da82 100644 --- a/src/global/types.ts +++ b/src/global/types.ts @@ -383,7 +383,7 @@ export type GlobalState = { export type ActionTypes = ( // system - 'init' | 'reset' | 'initApi' | 'apiUpdate' | 'sync' | 'saveSession' | 'afterSync' | + 'init' | 'reset' | 'disconnect' | 'initApi' | 'apiUpdate' | 'sync' | 'saveSession' | 'afterSync' | 'showNotification' | 'dismissNotification' | 'showError' | 'dismissError' | // ui 'toggleChatInfo' | 'setIsUiReady' | 'addRecentEmoji' | 'addRecentSticker' | 'toggleLeftColumn' | diff --git a/src/modules/actions/api/initial.ts b/src/modules/actions/api/initial.ts index 30e2eac41..287cc723f 100644 --- a/src/modules/actions/api/initial.ts +++ b/src/modules/actions/api/initial.ts @@ -126,6 +126,12 @@ addReducer('reset', () => { getDispatch().init(); }); +addReducer('disconnect', () => { + (async () => { + await callApi('disconnect'); + })(); +}); + addReducer('loadNearestCountry', (global) => { if (global.connectionState !== 'connectionStateReady') { return; diff --git a/src/util/activeTabMonitor.ts b/src/util/activeTabMonitor.ts new file mode 100644 index 000000000..96c5535ff --- /dev/null +++ b/src/util/activeTabMonitor.ts @@ -0,0 +1,19 @@ +const STORAGE_KEY = 'tt-active-tab'; +const INTERVAL = 2000; + +const tabKey = String(Date.now() + Math.random()); + +localStorage.setItem(STORAGE_KEY, tabKey); + +let callback: NoneToVoidFunction; + +const interval = window.setInterval(() => { + if (callback && localStorage.getItem(STORAGE_KEY) !== tabKey) { + callback(); + clearInterval(interval); + } +}, INTERVAL); + +export function addActiveTabChangeListener(_callback: NoneToVoidFunction) { + callback = _callback; +}