From c9b2ad15a5cf949f9c13947feca260040e28da8f Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 26 Mar 2019 11:20:45 +0100 Subject: [PATCH] adding ignoring ATT files --- rowers/dataprep.py | 3 +++ rowers/mailprocessing.py | 2 ++ rowers/tests/testdata/emails/ATT00001.txt | 3 +++ rowers/tests/testdata/testdata.csv.gz | Bin 12523 -> 12557 bytes 4 files changed, 8 insertions(+) create mode 100644 rowers/tests/testdata/emails/ATT00001.txt diff --git a/rowers/dataprep.py b/rowers/dataprep.py index ab3bdd13..d32a74a0 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -1345,6 +1345,9 @@ def new_workout_from_file(r, f2, r.user.email) return (0, message, f2) + if fileformat == 'att': + # email attachment which can safely be ignored + return (0, '', f2) # handle non-Painsled by converting it to painsled compatible CSV if (fileformat != 'csv'): diff --git a/rowers/mailprocessing.py b/rowers/mailprocessing.py index 0618edb4..32e7f3b8 100644 --- a/rowers/mailprocessing.py +++ b/rowers/mailprocessing.py @@ -137,6 +137,8 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False): # handle non-Painsled + if fileformat == 'att': + return 0 if fileformat != 'csv': filename_mediadir, summary, oarlength, inboard,fileformat = dataprep.handle_nonpainsled( 'media/' + datafilename, fileformat, summary) diff --git a/rowers/tests/testdata/emails/ATT00001.txt b/rowers/tests/testdata/emails/ATT00001.txt new file mode 100644 index 00000000..b28b04f6 --- /dev/null +++ b/rowers/tests/testdata/emails/ATT00001.txt @@ -0,0 +1,3 @@ + + + diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 993710d91613a2ec4fb695a24e89d762ec5b6566..e6191802cfebc16d02a607ba6fcc2c85c0e5fab2 100644 GIT binary patch literal 12557 zcmV+oG4jqIiwFqF{Fz(=|8!+@bYx+4VJ>5Hb^wfh+pc8EaoxKB{lh%cK;ba2k(rM+ zX~6~zfsh3F(P(lS^q8D!qNhno{(7$!5xFCGRgK^wG1FbAPUWh|xZm~kt3;%TM1v{rS6J{rLIY=dVBG#ee?x^~;|=_mqD8-KRg;TYt^J z;YYvu^!?|b^tEqz%g?|5@rR%IDgX4FzkdDhSHJ%Y-}1XJ|N0q!`PWb1zWuDf@n@Xz z`RDI`^(Xw1pZ=H6pTEaxzcvJR*l)i4^`~$9FTefa=Wn0%lnc^tzy9#I&;R4|Pk;RO zzn@>Vuk&L7|EJG?`0}^UU;q91!TE`dhsDA3)?UU$0;NFJC@=i*NM)BmeQu2mYg@`tsLrxWaFr zH~8=V@vlGr{`1$zAO8B||N0(uc>MnJr>{T!^vA#dyY$FS>gZXfe58l{uYAl$|7edQ z_|tkM{2-U{$oS(Uf2`CW8ULLXKN;h(1h4j~zgY3sHuQt|#=NTJky9x-C3)ZvA2luf zsigIhL~469yp?C+kiY-C9B9@@sWbPK6;XZw9X_CbWE`?S8s51aRuP4qR(TY>trr|! z@!pp4^U?Y1t>6S1_!n^Sy>m7hZI&*%EUAw?=ZB=$%Y2lzJ|^B)X0m@eFlIYiL6!^T zDjyjivQja!J?6)%kCF)tpOOK{Xg43NE6AS5qdown5hTz^V5}eOAvl|_>RWSaQ*s3v zvw-BQf0QA!&qvMaqs>0LC^S7#q1AwfH_K93c#+@uQ4>!b@&PQ43kT{4d`u9u0e)5D zJ=VZa=TKPqpvM3l!0LQwt+=;UM(eYr%B#fjef8FyUgc2>=)Le7KC{}n3a7v6aJIt_2CuYD5Frb0X!!Nk{FuCPFnr&PqW{!~ILvA& z=W;SOq8y46ztvW)fLS}ZXJw`0Y72a*Fzf7nQ8>DttuQ5EHo{y6l2`Bn=I`SJ?+{AD zCLcgn1Bnj<)jsgm0Sw3zSu`m!vfNlsKfHCe0k$kSr}qJ}LwF%nxq{njZ=~;1#uGbH zp^bnhkb4N0LL1Zw15zmzy}qa}92$g$q5!F?>oEbX6ua6f0gYdMbQKgr1H-m8rMF6G z6VSjoEwz#k-mB!Lw8S9l$qI1>L<;!wD+Yte2Q&bV!EH+dVfPgSqBz8SUU7LWlCtX^ z&&fL$huio$>w;T~%#=ICxIrH9xe%sRXTv2|&@QjJ=EXO>Aw{8Z*98~SyISel0poJl zhX7lLLW17?P#)iaCs`ZVsOd=5W%o@c%+PA&X^IMddEa+#9n2^zgP;&N@Czt7MG|-g z8u&x{052^2XW-+P9c>Cb1&B zWvnpNvJ6_544p3yyNs1HbYNLTHz?f=tVT1_ad1i_L;n)30x+~W&_dS@(%sQ!@b*X6 zo8v((eSnluV}x7P%8ldvg(Up8mpy-*Usqp-p6^8>$-vq}k=YF+G$52;;Y<2UhVd?4s; zlpV?s&7oGMY<8$p+K>jbQ+XzULTf>hLZCW0Z$N`45;pHs4Pgz0_+p990Re)oK}x_c z%5fFSdRs_J%KP5fVWf6-|OXz-DI3LEgt2 z!WIZ&5y*IMxA7Ag-=SyF$7s|=j!|{4VjMt4nTP3Jj&WQGe_uTo_pJ z4t))bpw)ubniunQezOM6K&;h|H>_ciDC}dJCCAHZ?Q&Dbsu13>nH2Cl6)ujJdDm7{ z`i>f0YLu-`*~NRf6zu2?k`6{J4WNOk!gES8A!#5jT)qb5DF>G}$6~0%KvDFeQkuaQ z8X2l0Gg16u+qn5^G2Ab@U<9@0K`#jcuedXLsieR?z?uyVumm5H=^;UjOt8sTT+|8> z@RFt)1`;@|R}S-~S^&0T>jlU?3^O3Wdz{J}ZMy(Xbsr1}c_W|D@y4mp^8tORjTlWo zrd-lCco!hznzO{R6`FUw`drhU71SqKnUfT%*`pyi=pE6ikt-vfEW+vwh#Cp!FCgBTVJ zDnRn6zjK{vyWrA_M!a;7JKpn6TT)dxQqQI(vfUK#=(3Zjb!i4r(| z_%QIw0Ox{|9ruZAg!f9s(=nK1AI1#&phI@et%r-1XhiALSEVWZf`Hqm8oLj~6Hj=v zGQoV+7N*hkRt#_LlsK5Q0ha*|XJ|As0o?yYXOJXS38MFd^ZCrr}!lg>Hz%Z-n zN#HE!0_cOD)!;#FF-PLpB&Q9$EqK5WtMxZ`Aa zXm+lg$!+j@M0>R_Ki+orx|D@lbvf2!@xlmq&lk@#?Bk# zo%cjqR15eOV^{S>qoiSk(DSP1-r~RuVRJowaVjD~a594XL<@5x<$?i3oDCHbq}*p4 z&M;|+UfNptnah|^jB$49%Z-|h6KZj&(2@*T%}XTK5?IB5Go)$`1PTT2I#fEaf?@*{ z?d3_Dx*uyG!+at7t8FFo4)HqTI=TqvXX zn3*9w{4H=T9iEQRt8}op3X?bp102>1;-1C@c+&VV8lLJu(|TQciyWgK7|De1ujY$i z{Zdtza-HhbT%y!71Q`b+9D`GaZ`=^olnQ47iXEXdoSs4x%UqHkY#_sa!R`)Tih)F2 z(mpy9MM<5;%BVWzsHY9`$qlP15O0>9}Y z@E>&Ti@_LO$V0N0A8%m8dV#Ir>Wf7T%vmhW2IZ_8fT^co0rIRli}-hWVF7cpaEVlC zhn9kYosbLgB=qUPm!$Jo;VkYuVx|D@aYxW|K(5JQ804^8)Pr+1r!IoP!jQbeDJbgC zP$38AVVEa*&%&@%6-X#neAz8pU}l&AD6a{hmVV}`SfLA`i{RsgD-OEZ@dh=_6+AL# z#5@;R84l~GWwq#)X;t@ST*0bCJDvjFs+OzwQ{0lXMc2SnF17&ofeC2Z!4*T57~*^| zh%gZewi%SRS{#G{4x2Se8^lcp7!f>kg%*jJM^HCy#XJH7jDPoE_Fky|(xGP?ypg%c zx?PRdl{D&9nJ{LJdbWB53tdCy?u%+fp?$%k>>qUA2VU z0;H>ed26E;gRBw8phhT~gq%v%<{%7ln6C-(g%@weOV4E>jXzZG``e$ zA*+XB(;~PKGsFneK~U(0wWv|xm?9jeJV++2XVO(JTELB&TT-z#as4XkzZ{sZ*fsJv}I5}VN zN^^j2EiZxZ1xlyMumDbA&ui33eF{7uY0Qoo+7=1Ac3Crg{)epMs)4WP0S(zaK?fGw zDH{d`q_BC3c*~pMYXyaCju-}EICK}nS%_NCZwU-}F9`7zVinWG4M)H;(4( zMdRI8cAUEUi8(vw@x;-szSv{S;}1($l_LmC6JB?PKiirliXmhz(OrZX;>Pgh@`=1S z7(-qIIb3jXwDB`vFY1l8DxUqQd9%he)@bhLG&N{L&fvVclUwg0jwWoYv?+Cx+C)O1 zQSK2ALF%~%vIWSc)fzKse4RxmvnD(BTidaQ@iJ%=UXCCpGC!QJg8-1G)(vB3V%9Oz2^YgS!3a%mdaR!| zj29KU7aBo2sFz9_nN{QpB}YR6V=2t7vCwOUKLv&xMg;On6?v5{{eJLJuEgzvqK0#T5V1klZyC@6F99yOa%A^Y4dMuhh>jrtuB?WJ zqVWFO*r~3*T|*5NWMhjn7P(_QIZx>aW#(-(H|59^7Q*<~u1&AjQ z&zj~TOB;+KzbqS!56l?UiXpdTJ*9dst0hL(OOb25#N(OWCD{2kt)XS+h-?;B0s@C# z$qe-2S(KdMuFl#Q)QFr|ryp-vS70r4P25LpW-f_ixw$`)vhFl35pWO4dV0;~x5ENY zg{^TB>u(LpmY#xIhj%8J1u&`!2d-eOzMKL${QNYBv4_6SO8*0lzg6wY9odmT=jpm- z7H@uI3+|{I|eW_?q=0NNVOQK~mP{A-5;4o+4pbD4FQj1xuB{WAcjqdH# zQ{<{fd31Ijy+jJ!L!Aqwe!s(haA<9MN zh;teZKNt>HlQvd+T~W>%XV+rBen@t|wywh& zCpn8r^rNdeOY)lTZYq^gcSaD7>qXp{sQsAk)2d;X5p_s1L1Ag~$b5jHhQm;YeQPkm zeN~e()}+)mz;$`Rn)(?)XvTpY%>?Ex*1ci2;%AQx0$c%z5~2uD6CaTnm<<+U(_pSh zyCt+jb|t@h7&2BQp-n^~0);@1p$JxXFLd3a$h;vw>)7>LQmF1AGT@QJo6QU1!zd&+ zOKZ%6;#4wf=i$&8G^D&XLt%)+oVCT~pH&qxK30TM!-{J&qP8cZHYcj2AgTvA7t{%gbZ9D>M-1;0kONLxZlVm%#{8G>j=@4(;LsA?;X0872!7pW14U zF_Rp)3wXoDL%vbZo9~*Jpb8T+TK!BUu83^w5g9D-Af0Z+Ngc-OU1SU1V0}~-t7Jdk zu!h+Z)=8qVV<%-Ym(C6m<*^;jN1D7TatNkjyO8 z4V*IXT?Qgi!k06fYzgo~rGh!(b!QmEo>@zNm;XLgE3g_ALmoCuCc;D>t++cgfpnn7 zb)q(=9l)ytr=}XW>PNon3NtGQL<1r&ANmq9l^P>HauIywLiMOZB>WlIhB;RiKY^~S;@SQt*-g}6h1!k1#R z=TducvaqlMmDdr7fw~69u!rSh`hQyePBZbD<*E6AZ{*0M{e;Lh356d)-bT8$$dn80 zP{KmE$=%Jq=NRzAXK6(2}LL-5OKFgbkXk;;hR~3SlvP##$yD|x|v~|_hE4#d^X74+5_ERfPQ2mvi?7TSx zVTi+;P3C3mFvqJ{Q*&oUzpFFCSjZ_%<*}GCW3j*B9amLsLllQ-y5Xvd6*h}3Hl7c_ zWLc;&zQGTf0tbxLs2e~=JJleD5u1ZWzF~@&Rl3AZfuZf$M0nX-g*cg0q;*)@hrYwD z8yTlEY8xS2rO9B;4k3(s?HoLS^&OF&6{z32;7=+!_xXl3OxdFQxtc+(+Q`1x4}HZW zCpjrvignUiy-fQMTZWc2x~5?I2oy^*bG0`P_95(KN?Ub_pUT?4Qc4`inNEb%**pvkm4Yh z+!g0c;j?bU!@aAimw&1H$*NU_%QI%WtqX6sC9l$zyt45C(`yd0LtqBosxFI?NZ-3v_Pz*&3MMw| z_`q0xtf9<-k|YLMDH z-(=jF6-24(IqDz}sS0lGgRPbW?0=|1{qj$K0+t;z&;%$VXB*mi-R!4Ef9lOR+(nywT-A! z>oY#gO4ZU28#*-4UgE`*bTiNXur!(8ShePpq|H!LK5luy zxuWa*4%sG!W(3&+vjr0l`u8$S!6xR+M957^I6Z~G8Uh0xW(#uPWV!PU@1|%P^Re;{ zt=Bl=W@f;7W_~O+RHGkZ-#iReJ3Rb0IQ|GP1y+(ndZ(pg{$4wyBkTjb6@#xU3>G_T zphFz&(w14U`mzijRoKQ_)s61z_|>O|ftAA)xEDA#@8)}io!L}05`5qy^mB!C8XT?( z);(iwKs77|JZu_u7a$7lMs4;$Ap!=~mPail^nqEE_e{H$$5JyU zXV79D87^)!I(g^$zj;OixpU%dmZL-jY%4;R71oT3VD9`7n~gg=6(7rD7S@pWWECqm zEHYSz5I1o2W9+2sa97({>VnF0Q0Ay2lrOV);Jqc#5mTG@B-NxdKCAk<1~Lp7^Z?r` zw`yRJ0#BG-oFd+ZDfxt14Ca7VT>TbJA6#Hj`O)J7QR|Ia)yh!6zpK1-4sNt;6Ujhm z01R)KGAIHz)mmu4$tlXZdC4$95#Q= z8`u^+p>9``sK%|up&3wmv71O)H?gCng}2a2_oXdLygxhNz=n0}>>ygpi=6E62hZwu zgLPE918ruZM62CP&Dl8H`07#R98raPE_O$i6Mh4;8yxS~i%OT9xWb;%=Y&JEbTI;l z5&DOg0LyOe=Sb3punkA3jV~$M_6%f6=_qXZ@KZI7hynRUh4S9qufRM|-|L4;P%3Ju5lIQMyuh!U>Barj}^*fh~NyRDlP0KRD?n@lee zeA}e&MtTSTG;FC~fd0|J)ZMj3u@;+)^ohC{vW@76yjEc$2J>7^9iTZlmb_6b4o4j} zPG>9TGSr;GP(LjvX@1Yw4iH7nzENfDq3P_bN%&_Lu{`HtJZj}`2q=o$nJK<@+2xUV=bl zW?>Qs{tai!qJG~gyPQ|l=}W!05i{f|Y#yB|P(U>YH(ac$?IUT5H@EbYHL4hFX|_Fu zf+#1_72Hrm9RnkLg~YD^Gd%aVkyK>aF<>r}5LZ{a`g*ImCnohI((7 z;^Giai3HGmrF8U&4Rn&8o_Q)d9SnA&lE~hT)|phkW0j3nS3g7}k`Qb6}rz;DxspxKvX>zvq$-V|7tlwg%UG5H)X}w9`GBe3h-xGCQKo5)OU0qAU z?>VB27oxuLd)|Z@3e=D|@GyM~YNwi`S#)sKwNv&H9G!AHM6PV$&x$P{`N%DD!Qn`c#S>$_$QWVrO6FA_uKZz%({?CxMQ1mqy?mS9LdE zOFe)S4pv?3qHNbC5X=YXdCdgRBT%LyTh<=Q>x$@pyAZpT!uqYRNC_CFAh=^1q0O#V z1G=ac>$e7j!?#zkb)W5Edw^wA;__BX-O$0ESqgS_2V1XDSucZSSAwN=lgo{`%bgj= zqqDY@2HG_QT5uV3ko48noQ%px9)`JZ2##3-GkeLmmEb@ldzqO@P2xH&Vh$ZnFvPNS z6V5HVmlJZj<^2#YBO)#^6Y$qdKbO0lc|QeaCp*w_0nNHft6#+BO0B8k5zAGk)uNZZ z8q};%^~PSI?mk7!naBkd02h1Kui&O*vy9?O11EZFHyu>(US5 z{6!fqUe^eVQkAuLJ)1h_7RyPDWLXzzJ2vLbOsykz3imv{?Eh;A((JlIPV)>1AkdHTQLvc12%20S^t%jCTGMsvr)cvs%d( zD0tsBq8T$AYoqb)N$CR5_N>HGqJp=_Pb~kJS$X|9^n-RXKcCK%c-pY zdHrG+Gb>L6AwS)nj?hlT7LX8{o$XL_K;=l(T;@`8q^()sNwGo;eag#+$i~F(R6fOa zw$sXcz4p=l^Zn z(3mHMFW6-I`jVXJF*0z>o(p?{1{gYX4Op$m$iTbNbH!%>9B}0d>{8O2 zOLj#p>zpR(EaB^dC*ItJ*V~ji~7SRnz5fERwt6^>Q*qVI^N(o@a*Wm;KldW;*sk%|jVOkwT4WVo>sZ8tP~p zR+I+AQHQCky5YgYWez)W0)>Q4)g86Dp4eF4#zsXV%J&6fmtvON#2#WJurIWQUTikS zJnJYqN6YIux~F&zkmC=t$Nfrk=Z84*)OGqa({D3d5-AqPKQ4YAFA91)6+5uH_&KXr zF_>tD5ny95+)U=}poCi*7BLsu2RqKNdh98~C0TUDfUpndPcqGPd2%SSITUj{6lFeZ zw(VFdBip_h?ZtcbD1wotFaqaBGle?#*$y>~Uef^>&-?J(3Kv9CV8k_BxsnoYLZ;7M z+;eWsWMqzayeN#hed)`DaPtG_<;!4Ko(d1QgqFi4hKG}A6mObiZe0E~!VuDdon@Kk z;E)a+=&log;`TSH9YvFGWBIH}wq+o*ovEPdI=NrdJ3eg!-P<`-orOcE+$6`Lj{J6d zM*-HD@ys=hAItgE)`k|Hd*OCW<>9eK@g#dTyvoU%%y_aP>9%_-RI~PK6^=DpMtoGV9+ z#ECw9mBI*m+`_rDd0&Cq$qqD(9a~YGb-)#!BLO*7m$=2^NaIP;!bT9@X|}zRM?rB! zD&F!LQBagQI{%-T2&g(`P}oq={=;&j;xr(RJB(iEs^3MuY{=Q3SK9(%O62hILl_qS=exws0j_J?YbET=&tAHO!vmYka!skjBt0m$dKRE4bDZ zH>ig!&t|V4wYxiOhXnIqn8nVRRIG6eC1Js6CFe?)( z#~v28gFzZClvZq|1S^N#8=UW0!`x(!8*tN!4xSfZ1U2W~znE>udbT%Y_S1eeH_$c~ zUc;q8h+G$U+dvtMc1}!5YXy}#AD$+eMj?-l!6AqJgPbh(e;Z`3FIn2Y(OUHdq%Ge~ z^}I5!wl-v(qkn50D@c!tFHoJUP@yJD)iJl%4W!hoaElD^+z1?SSh_(XCUB3L4)*Xb z-FF5VX>K}dzMJgn#>*B@zO8!f#)*CzY3>APt|y7C{tJy0nSHfIt27Ex5%`MNuysSr zkInFA?Q*lEPj?q1*OSCmcRhcMZ0Ufv>TRZ266>ZJN&;fi5#uCP%uJEs!`r<#*>T0z zXY+Rs=rRWIrOi z)JAXD+HBIb!9^arX{z~NOGV&-!{lkEvkbG%jr)DGR+QQl4|?P@&TZ~Rla^6~f z3Z6D2%hlDgqiJpV?%D7x*J!~HvLd|Ey3 z_kNqa@bw|%%mu95I-K%L$&2^fa5%P641L{j9DSHVxFvPe;mQf?T+p@T_-{B_?&0tRjzd+ zCF=tXI08+eP!m~)+cT$k>k~;$(pJ7m`o_j>4Xj`4;DKii%wF5V1~BI0;dzO)3uuo@ z(zQ#Z=$dty2LsAAK3U^?gobX6YriMrSFx47mJqtKrtJe_1=JTKe| z#BpCnj@_P}%;mTWi4p&Ia z184n_MGro^;h2Y2z=p@afW#MoyHnSO&*svikBE`F+c#FdXRwxe$;-ByK4*l+u_!ij zZ`?gnI>URgZY$%yfcH(#tzQrv@d(6|h-dca8UbiO_2I08A1#F94Pr(CB4e)c$R zAIU1O=$AkGBXXU!rZEb|LpS=yRtj!lWrNDPk$Y}9jy`N7Yvw&9lZm@-9SGdaWa0IA zDmpB6IVp~|on*Z&P|ka6#cZj=k(eAUsMJH}V-U{X3I#i^eL7jfGE#!878Rw zOlJSG$>Q~BA4QtjS;?cHDQ#OydVf~|p0`$XAw)ik1P+I=G=AIDe)OU%OatPu!xT1- zPONTfnxQ!4dFqf)@nq-!FYa<%X*eUH*mg?qmvLY2$gLZTFb#*p4tvlg7K^ke{mTPx<7=eUyW1knUCXINGs>C4`cgaPclh z4Nekm^3Sk#AGV}#-FC)V3#dMxLuZ4Y`jI_NuGs8o#~OyP>)1!X!V)fLoa!8ny7Mhlwwl6cqB zUK(1cp%<42oh<R_gS%Mp%5C`}6OQP6>y ztBtg?HnMIT=w&cLi7-FaA@jZp;#@$l(Clo78kSEuSZ|qc4v7M)C1yFMZTc;F zeOgE3gYk&j)shag#E`S*kK0>U)YhAn*Lqp@jdzD9%618=0a#voqT04L5})OBdsq!| z8W4YKQJ6l_1g$s+^Pz#|L%C=U->-B%7wp3Q-i5aPCT*SUyp3PEZK!_*uB#Lvc<(pV zD_#TS_`?QruMna^r#qL9GFSc3-OrYDE$6Zml|ZpXg^uo?tA&mQ<=y*GBeTV15g+rJ zZOQY|-@;BT<`hrQhzJdWBM$S2d*ntn0}R`TFU*X5 zDqmO}dRRbc2E;bq%nF~LNSBY7BH2%uenRgKeUul;Q*$W!%!lR}X*qKEgQJCsTj>V4 zdfp~lZn=BnG$4*U%;B8c%CY@ra4FmXdkUH}Wz-%t<6E`={aq+%yHt9AEk2lIc($xR z7av}0!?*B?fDMm-fv}BCQRC}doWdv3K*3affLd`cNp`P;?!8{x2v61V+>mISRjw(Q zqY&Rc5q*@lIotpMh*+r%SUu@%0&bc(o&3vj7YmN8bBHyr5UwVtIfZ2`*4LxtNJqnnJ0wy=toC#ebGzgCP zvWF00CT42!gl^@76Njc|R_@-gAUg!`#m0F*811PtIP3E$CEMGq!NmAG8g0|8`qTyi zxN2?moDMIhzBzSd&jKY>L*meDK-WfFagBmsEVlP`m7RWU`G{SVu`L%(25B*qaZiJF z-zabuRk+SJwNm+vKUx}kHSC}~pW2YLxN5|%8-gQlfmpcQbR$O4&JD^Wwe^i@yV~Jd z>lDq7S7v{0JDSHcF~%9MaE63qp6ou7w__x*?43^tR*OT3hQT5CfUKd;G~?L#7~-y7 zJge;oYtCDzRCCPg%E)Ws>fS6D@we!BD4YNeS)aXfx2*ZRPIjP|X|&~FHp$1Tl|J;A z9@6T|BiTOhEnV53_oZ&scs2x-v)LI4FjEW(sEC5FGIc z#H^)F>26tC(J@QiaJW1bo1e5Hb^wfh+pc8Ck==WL1s`RgaFo}`%tu@D zzy=IKm@zPqMoT;x(-PT2v#FW!*L$sq$Q`-s6bGgRvb#>5%2knZzwIA>`u_dj9{=-) zAK(A!+vgwu_T6uOe*g1-dVKf!&)fNtiSPBobmqi zcfa`y{>V@N+xz?XIPJHFzz+M}mtTJRw*T_`AAbJ!Sx>nj{r>9@e}DfU??3&^xBvb8 zs(qaw1Nc9_|M|<`-@pF*@q>T<^7Su&eE(`c|L!;c=gTjDedp`{8Snf2FYo#}|M2B2 zkNoSO_=7*bfBwtISAUN;{{x8pZc<0jGUY8j?0@BLKKfgG6v3a?BjE?R zj7P>FANg&i{>b?6toX?ok0p4uPyNM;x3-}l#5d+uC6Am+$tlSLe|W2D;ZG&4wA zqv5SQD}BlVWxbU;b5B{}LbtjCaLu@A7!n#iMN%R?4J&R*^W-1%7t*1w~S9%sTjc? z^KI2f$wY;Z$UtLMn~&BNVb9}HA3)KF5Ktrl*0=Q#9L!hstvR(Rxq^UMK!%2G^tk>B-E6OSA61|SX!r|ECMO^~tydsVVM*1%8aP)zus z#{d>!>U?LdxUN-3>$9ZF8^qat_12tH`7v)Z}oQwwbKE%%bAqT|bNcxTm% zl!-6x=xTZlL$^kMbf5!W@ckdFkYY=J8#hgK)6p#%8Mn~|ERzoE+=3k#Gw%J zTW!?}jJ1PlR#y70w!nLevCiHXrJ>u|>5~M;MvTi4lJalh_CDV54k7Dr!U175g!m-T z>kVHTr~oUGEtA3`n~mj^!&_$?V8w!SdLJM-L={q$D>$t7M#?T_Hn9`arxCaWA`UT9 zT!X?tAcI0d>x-JfaX~uB`;ei!9uv4qu^XKdxcH?fIrV5DRnJTmO0n)54a}-a#hY;#sNcZ$Dr-V zQ0(HE%UC%>*Of(RgRG4Mc>x zBG#&ggeSrvoc9m%f(0mS`K^KMC9o!Or~LmCWA<(WVU1qFo(3F=_D0Zo}m(!5Uvyc+QEl@hH!(SeUaL|`wld`I4&s~)Zx%XZUw2|dMN|G39NI6UIsu=X+c5F zi)T8&R)ZcO(CWtnXxJQz_Lyd+@v<7T+?1IrM0IS&1olqFigRV&6%#ePLk4FWO{>#% z@dhqMI(ma#gZWAWVgRb}hmuT)7KjQjuE93S!I{mm0CJch3Ock$Gt5FWLak#)h(Bx_ zG+!+S`h(<;ptC&a`#`)EbS4Xx6rcy#vEkmA;6pO~9_Wk-?$|ntIsg(~(p2qF>biZ( zVW3pzVF0!kfRw}N;(U06Q(2;I^WId=!Ag)N@`)R7oQgXixQ7~o(ez`=C0>KK0P?Ll zD|9~C1M&si0EN&e;8E06zQi#AZrCeIxYT405?+V-9g8Z5`~l7=o5%#)X(Y%Q@=(2| z+D-XaE<-i#tF_AvfUE*I6*2~G4nK2pHZ*N8LQj;l~1B*eD3R^jX^$utk>u z6r}%5g!zsBgPlpM)fM4PPi#OnnrMm-HZXE3AxpjV0bCCR2@N77@a6DfV37fC1r0lH z5*G+>lyIkGfQugH3ew*pspg==aZ0q2^v9xdMXBB4SNM0fZrKcJb{p>Qui}XYI+Q~$uA$$-?N%D z$cfzb0zE5y&*rpkSBzoq3O;9BtReI^Dx@0!>g|=I(m~VIn@r*^$-w}3SS+|g@N%lT zfOuWtB9N{Z>h>D-6Oq+^<#q~Kcb{OWVz?NXF^C{igYyFik3PX*Y%=l79p3;Pu?9J~ zWJdwGVZp#O&?$WfmiP%H4=^o)71O>WZ@|^KqNv!ww6z;$d)QbNuM##ECZ$2H7Tm1C zpzqKDcrVeXtzZbW_~`%|whW>V1!C$JFGE4{3pGOtGrU2nvUZS+@63{wlaSkz@on=8 zN1)_ts|8mFTRazG3SLa5(}K~J>s0rRG_rGnFH9H&Kh;^q0Crv!uev8vp<1A>0J~}` znjH-Yg#J`DcNM2y@S5x6i#rj@fqM~@Cz_EP5f@AxLS!g}AmTn7Aj4=O2x)8K2QE}X zp~b|E>3%E_hJix( zR@+ME@Zog?W;Fliw$ZGXCw%RdT`ltjORCP~(nCjSoMsgfir_6UiJ8$iyeM!gJ(-U1 zsdTWkN{=`Qpbh&3;ZEa1J851R$WC>JX`e0?MMhD-iUh(pR|CcGeQBjjiB9!aF4^fB zVv7S2Qo+^2*KG(+N`)f;1&+WM-b|qdW$H%{2EwpVu&IN0VF(dkw71TrPEtRxG9V7Y z>1iW;a;|C$xSLJ4sN3hXaIWSA--1_HqX3dm3lk(D=t5Kv?rXGAWur)+YFH?c7+WM;Tm=kU8|@T?i!cV| zzi6s(Dm|Nn0NgN86T%9A+{}|6$`}}bs!q_{PPmm$7`To*nBiVds?f3$ZpBw~ux7sy5m!gw$BoAEJrEbxU%!aFKFZgCT@$AU{hpjo%W zD*HL{Zemqr>>8V0p_Caqoe3LpL^tGFWI>v=#EHqWGit#*=yEczLcj}xhjrM2mK+A~mcYx@-0a51e7$J2+RBbHS3dz~2Rxp* zxYZBl*3#?4vPP53T?xW=4nzK*XB@oC)vW+qM@AU$d^fD`xM<^OK3U<;zC zh+L^qPo6;J3Ui_5Dv-c10Bsm7a7~4yWeLEnM3JY!!&v^k6t1DZC`m8I+td#;7WH6WeETf+= zvqoq15qb@?x^ooe;MgNV5rM2g{xz+#PKJf#!{W|yI4VrDR7(T&FiV=~;9CmRGSN5;H5aE~qgr{)G=Kv~mrB;7QrySO7XK z6>Zmm%iJY*Vs--GBXl+-%LX>&R5w0{Eb?_PNB2B3FldPIL zuLz(!zXq8U#I$n(F>DpR;9NAS)>08n1?eQovv)I}0Gk5@ur61&Vy7irB+*ZYHBlpi z9pUy(ra2;q{=!XVs4b2%%vEDriU~O*WY_w+enNIXwXVanCLxQ-@1v{1O7bxg-Bb*t z;EVVfw~D|oQPD9kr=`0rBPxNs`@-Vjk*)wW4F@2H1#7UdeN_`H)`ryVW{&X|sonrv?XgGX4>J$hK|BCD;v*7+tHC;G8qDr!Yl2p)EK$|NRIwlk#UY9h z5Cl>Sv0vG}%5@6^^TzkAOV`IVe|4Xaaf=+@XeX-dYYj9G-Y zUa9x1!kd0-`XphQdQo#W6drSW+R}!Q+=J@echb)yR)e>mk`$7ISMOO${oS*SHlgxa zHUR^OCRL-6;w+Cd{YlC+v#20zr<#E{M zT=Y*^dX%FigVwB{+N2l9|#$_Y|M4 z6v^5~7*Lx-r8a55mP0c)SHgtCQ<{)5w5nGMm#l~EfR@pJIqj=O7X>`;k|FM}KwUZ+90HmqJ7?5Y zLTD${l~Vm!01P99_h#^8NoIzqPH+M*QtddN`c|2D^cjoKp4U6kO?e;oQS4T~yG;ZaHeC7IQ z){Bp3KHNFB2mUWCFv;l7w$;yoDzfDMa8zY#v-Hu7v( zSQ-+^s$P#B<%C-t?gutdqf~EfJA!TDr(JM6^dvkawoEQn`X}28i$QrE!4ybqU;sR9 z6I1fjifEc3&ny$o2Rt5!9bF!TtqCLi2m&_JtqrAINQaUXqD+o%_9e%FQ$0&7nnDAs z;jbX4z)M5mnol2E_UY-<2qQIUl!~(}dlrNx=#kr&vCXbD<7{fluc$k62pOnxwJG63 zyLP7JUnQ=xBfHy#cR(_$(pruIV8cdDmM*4SR1#)QW_j4LwoJI>2=*?t&vlfc_DVME z9wv2o6n13*U`Xq#t5o9k!STAsA5xuLI z!Fa}LOI5L$+G2gZ;2l?WYU2~fXPV%uP8GIgEOu%SU}TY|F-*Y^nVbfU)TjwSLpv4t z!c5Jm7WNU)!}-w`M6zIFO7T{M0`2TzfDF5|7y`OO!eS1@ zf3lBMT()~XHBohh{H%L$RKg?C35?bQ;j<;;)uzJqXoC?%jMo*P__4runIeP$Oj%u~ zh@A7H4NgBQG|a#Q<^taLVgK1l&45MT? z4xQPL1;iQ<;R?XVF#fF869>i4P+p8b>#52$2mXpdTT~q2*o5z?@m!Cp68IB%84))a zI>y8tBG7>~a7_n2n1m+W;vfLG1zhmQD$^{uHtAHVb_RG^=~?<=B8R5GE8PO{;Z3z4 z-hAgb?d^iN=!{o5M7TS6LyQPmF@r>bLFt=ALhRD39}I{+AacqA8s25TvXzga(_>nD z*$rfQ0(rMTHy?i8YF{5gO5==Q$wwaSD1w28(>u%NWrtQ_LcywZnm#C+PQk5dVHmfc z%7IjvLD#c6Sai0OA3)9Fh(`0oj5}2QVxK!Kago6g`EWYe{Fo$b*#q>m zV*xO%QK9L9V%lkBz=4ngDd_K!X3Zxtn?a;N+_H6ZMVs~=uZ_^mh>rz^2^JcZ?`4=G zP0VkJkcpCTpa_381V9^x2~yr5{ek?UbqaShGJWNqL zeDyXs{|EO2c97$0r!8VyT^oucZUemK1D`8Q5?fZFE*$C7epB%FvOF8L)dpJCC+_OY z)u#ge%AxPwv74J;^F27uY}pwJK5Y^Dt-@gj4xR+No?$Ye8Wx}qD+P&9(EO(N8(Vb? z1EW=~$s|R`J}VIcdp?$0rdiMG@~+*sTPl1qZO2x&lEAPsw7NVw7kbv~KBmF}({KQB z*eXaqV#scEW_uBWSI}#D@IewEfHk4c{8)J`HB@rO9@hKd@-?FkcAo#6r%#_dC$MHY zsx`p2Jn~p!uPF9&r*qh*+u8E>SQdJ)c)N#gNJsm?%g+n-jMpV5|YRmc5W7-peTY#8?dDfc9Jc z76>1gZvpkuM*`XEjakpi5WT;ugLFBIV8@L^%9cKvg?n(9_VyHfUWggWPJdxC4w)t**(LK)^%YexBY@6C?~(6Cfp zBhJm9>~#?ODQiwoHK%z3Wm4F}@q2A?sofecnAQ4XkKPUVSi*5KSoF%e%8TUV*}?&$ z8W_M1v(-5x%_d5P%?^k~7F=uRx#dRR?yzCc*SsNZ!3ye3HHnhgS{x_=jTd`$lwA`W zH(GcCofKc%0K}WK^MN$%S7(3DT3%yhGd%cINB7rJV-Bd9Wecq_FEv=>?24;Lk#R&R z?774oMMn4pOi6HpU9Tva=eNRQ(T9YmvUKX7P5b>#i*RLk!E;dOg4c$_)8>*CU2ul5 zq;wRNk1n_h^$9nGT_l`OI-4RVTdZKVb@cT*nS;7vtVHKr^ty|Nq^g{7JKNRhdpKJ` zcGgu`shxLgm38`*DS&9&SlwxAy&qS71WZ#Wmo{V&Fe^-_gOJ0D=>Wo92ANX|>V4%T&9C=bYN3$Xda2Aj zG|`+jH~!2SmWn(qM6KL<0JTs%b6b&#eAQ=Y_on9)YM3+j{=)N~3bpGrg^rbY2YJ`w z^Pp~F^@w--6mSz0#|5@qt9&6*G0)LEB?uX27N%X`xNycQO6Hxy%CS8iKhzr=J};fZ zs?k-#cUL{Z#SN=!mqwc64J7^Kh$@Cznk@pM+jBx#hN>3diW0s?4W`*I7A-CZE_32660dq;lgSezNM>-o7^$6Y-~w7 zC^M{6N#vuAzC}$H&TVDajQ#uQqK8)I+(*;qE`?%9+&%P=@c5h$}IVf6Di%1KIkqNwOdELeyt zA$yBgXU6vqR5nmuY7lKcLZIDqMaDuQS|As$6+TzeafVJluB?ZqqAMe&3D(*tbGt*> zx5dV_+#MzJZAh;CT&g? zpHRuMk^;vuo6{_dWCN1iY{7ex>MceipIU6Pph)TF)hVgliL)N<6_JjEhOL7wd+?|0 z>!$xqfty*Aa*EIZ5bic;wD4~_J!D|nfhKgwpsK5HsYn}ZGcC51O1!X-QdT{DRB{}8 z3%+7vqg>^d0<9Ln_%-(afP(acMt~evSynXA@};q-^k8-jk?X zC%EHDk*@AY>lNtgHL&DKq_kghxd?YbGxK+Jrk2t`wT5^J?tqR_e)JwEW9pHI0qz?D z0ZRa8^Yu0b9O`2iFq550Tzy6KpiTS+SC+1GxdrBO;!U>%9fDoNvjw&Q&UfkOo{}>` zr@-uFq8t~>tgD~;MOLnWni}P>a%2iDn!l^z%!*Sl>LbqG^Jj?;xo`sAg5N+NvvXvG zo%@Tc6ev!eQ=qo)W$dE~bOz8y?>K-i{R9pvl;QGpO?W6hS?<<@sZMV3n8cKl^-{KD z?aR#6F;b^+LD9=zN=i07qhW-d8v^mJz&qGnF-)#Fi$?zBdrj4-1v=1HLpzc@ul-3M z#@AMJCuV6s@x==8yWpj0YfYiT;m|efg={c_H(etxG25^<8gBkc7jm{eB^L7(xlNVP z{VHwwD9yF1M7zdWEV7&iZ!Q>O3))_(WSzt7SNnfi2O5ah>Bn@0XCk&ygV5}3;>>}Q zQ$ll@m&p09X6+rtDj#$cFaIDLt6rb6qife}9;9@Py9>rN+cKq?uO(T~Y25k+|ELo&q{3jipspU`b4|iK6(qmyiyoHbN!a$9Q$nI z471jBKEyLM{GP(iMwAe7C04Fvg4>Dd!wL8N7&8!=GY}ut!`!~{Whc1SfP>*>u+L2e zh8ru(;o`!3Ni=&mJux>feupr1bVz4erYAVS0&lqM?3=iGjS583MA=wAjgf7^#cXHt zX1ea}*JO*&V?f7tjuB_!$R!t^aq=O*oNQ5m)rTB&4fDnd`m`06MaM$8tWo)PY}q>r zo(-&WuO=a$3`M%FiwYI2ZBT_109=82TNefXX&lvz6BDS%E6;|l9yPQ(M~JsyT>dXB)0q>^Y)G2t zbS@#CJy5T5CUe!G?Q)-$ z-)6+=qSMZcIzcm{wglx`mrOU3`#0;U78GQ*v7%hVs2@tW5a8Cu9W7A0qMZs;(po`ZjzgzOUQxVb zV<6tJa1e~eo@v9&eH=@BC0eV#4726CC7xGO)K+1Pa|mvYV;$x(1O<9?CnuCbsXF%c zaT_L8DEu8mJ2wKN4O=!yz66dj`@oL(rOUY>6wU2J&3B7D-8|Vg#Fv$b-Kfwn8_f07 z%+4f{)qkZ?A+t5LXxT&|DgrJV4Qn>E2G|U2*48mg({y(qay^M#b-(c2$QH@J)MPWo zs#3SSPzex?j%X#R0%mFhAKvbby^hP5^|ml(-0EAcwWeqX`I_2&)O_H&#kvk9X?K*> zmh~OJSiP*o^yOLMA7q4%Fcom7Cfobi{WW^KmNb*14KDA{6-mvPEh++{4Wp*X$TH0I zHZGUVTHk3?Ja&=O_O_`zrMa2!$t7#`DF)iiD_8%>j)l4Px=c=Wt&;mIZn!OORJ7Bx zIW0^ZyX6a)t0;61Z0M?4jqfM_e)l04EFpOarZ7uFMwI)I7<--UUT(0jF4!*$$t~AP# z?msu>_*OP+waqOI8%Jc4<{YZ7bJ0{oze*>mpE+G^;8M=CwMofW<89rrjzvyA90$5% zrODDM6z1JylM_cc+1J`mM@JWO?Gj20lg2rjVLoKl4yLN{0jJc{lWwq!S?SUZBRt(5 z0-f7ij%xd}ayXZ_M3vpwM%l7~+`^o3TLQF5Q-xbqi*@dv$i1B@k#yuASK1D_?a8>p z-*GxN<<@BNF((pZvS+J>&pLWCYp_&+f@sDtC%H+OC{1Sl-=t(*M5wmi@ae23?&!QWDU&`+qtc+{hlIU#rDNo z3g@27-B+%;+`~zv4TTi3`fTyzmCAkTBigc<;;W}qV5K(;R#vQBcSJS8My2W$UHR$W z%gY>y?ZsI6l>X_!t!4L0D!^32!Gc#%nBf%N=s>R_ojDK)TZinPUqSbB46pHAt1?Qa zjI1;*l;G1Bn(l*Q`(ksg_3SgQ%V)H88Do6FZLP+~;Liu2k;A)iR$IV6M}T}5s+mH# zHf8{>R`kbmSsSo!7ASV#^!3pYujYo>)@H18^R!cWsQwzq=IJLx+&X;(c7{X>{VW07 zXjyXxsR5Uh4|FsMmZM#|A_>|;w*D&j6uN<>$l1b-t1=}~sJ3q2emXZTGn?C>8P>Xu z_ruST1=<_R>u92Efl^nydf)&Iy84Ol&EhP;&XsgTY0K{Pxs+E zsk>KV)qBEenb*5)!{&1iXB_KFBTvSC8l^Kb2fMa1?h9aFh9(e1yLIArg_1MD#vJp-AXP*;u*2RiNw!SvNw@ z4TsRf`mtEuLll`|>sIvVRv`{8^p&os8p8@<0Oz|LC-w-6tn zXaQ$JSeCvm13y~06{Z0p<}h}RQwFP>I%X6N>76X4{|ma@7Vgc+{I#8a`*qNl zt8wdfB22?U%wh2wH^I(v=?ZSM)BOe+y2v|$=2^qa+8gWcrS0U9dQx{60`gON`zhbs zxF>ONk|IKYjl6}E9Bdyvhc~%sg0rTl4kku}K)_-4xG%ZUq`O+fn?);a`f!$JiJf`^mJOJh z9b3^cKGuo5?;bc3I|v0QO~;^Le6w||Dwm{F*^14MCeSc-UB@H(6<~00;8d??)SV=m zvX#Q-fwEI(wwq(VkT7wsPru&c@S$~tns{*o&RK{jSi?f(Vdglr2 zYvP6zZ>8(a_jcJmB;#4i>P6vst5>wMUa@XF&JpY{IA*1#I%M8g9h@u96`Gw*oMGF9 zL*$m0=Aa~STJDtd=w{nSy_*NC^O=2Ew^G%-aEdnSmZSM`R+b|8P`**rbAY=51KH%r z=RjKE9S?s9%h(_YI4m01Aa_gX=yM+$pO;3!u7PyoBZhl5zuR7Vm$tH_d@NmMU(9wm zm+VlW(8IRUxzvuZk@y&x+oMj1(}3_%H(}gFbEx86%csbdH|3l;d_BY}@HTJdwgdemYF!urNqfBmUGW+qf)6XlyaYy@Xlx?3!m$OEcok6sBEV%oFQO=}q>AC?C7gJgJQqW~1A?Pr6yuC5a!{ly~ zm9?*gqwNNI?7&V}d`|5Ww(^jz^|(E_$zWQvQIDQ^MDq08;ilIq^WJfo*i103g@C~9 zXrc@Y$8xDmaoXY*xIu^Cs7%jVw{xwJ+PAUon{D-IH|5(x-p=LC&?1u$#L_)}`6g~J zmNqLwgFv`p=eQgTzNo>i+>UCxZQ3MfVyZ)?C9fCfwb-bSDl4#T~Ly&rQumd#_yw+oq5E1Do~; zn6-7xU)8~!v*{4FNJDfU4O852^u4eUci1@S0fZ>sYzLpEM=y?dA=!_Xe&X(qdz25N zrUp;)nYGL@_i<#`2j}b(_ooeT^1O|G+_LJ#X+Q`%4BnjDH?jR+a3)N=Jt)f=F-iiO zl&#t`{wkca{UE)6tO=OAcXoO|*91P6W^Yjv0UI8o59`PLF}}D(9DI%mbV=0*Y!!EZ zWVaXSuH~i8<5U#SEq=Bw>U31no5OeJ=^=odSdCkyJ^PA<%+hm{G3NyWDj<1-Rn@OuaS+e5K zb5*2JMt=3Ab`oMG`;j7i&hWA`N&U~tV=YCbJC^Qkzjo!t9(d}~Pk(7$6<#CANO z=6Rp$QALDHKe>nH%()VwK_J}A;z3-QO{v9mu9Z*H8=6m9xqFX*Y=7Rj>gN6Itfvay ztj|M*>>RUh4&&))S533(vj7Chs&$`pB)XWI=1`735Ry<0331oJt?jDf`UAgJYys&i zJ5Sj15rrr-TdtUV(PDhzp0(;eJ%1HCxKuT@Qu*jNniF~~Y)Cwx1(3ADX=JV&0^zoR zE8MlY;UeDV?p_kvTC%ha?C_Lz&SXa(vwv*una490#u<5V)`HWH?C_D7;}$U7oezao zvqFf5fp~l1)re)9`D=XaY}aO))%F7x=dBf~Ibiis-h>v>v*?s0Y&?gH&mOc} zN_$=>6Xj+6Y^9Y=wy}n!k2LbE z#IuXaG3fX_G