From f62cbacdc11df0b8b35e9043e5e143e777e3824a Mon Sep 17 00:00:00 2001 From: sonik8494 Date: Wed, 3 Oct 2018 06:36:44 +0000 Subject: [PATCH 1/4] Done --- __pycache__/__init__.cpython-36.pyc | Bin 159 -> 153 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 170 -> 173 bytes .../__pycache__/build.cpython-36.pyc | Bin 655 -> 628 bytes q01_outlier_removal/build.py | 16 +++++++++++++++- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 185 -> 179 bytes .../test_q01_outlier_removal.cpython-36.pyc | Bin 1835 -> 1833 bytes 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index 2e5da7da778c48a9c58d7d055bbdb642fcb66418..af85b56c9fe8d817387c6682150381146e5046d8 100644 GIT binary patch delta 51 zcmbQwIFpgXn3tC;CV5NrL=JO#H~ozK+*JMI{JhL;3lmEd{qX#v?BasNTjn3tDpxuj9lL=JORAN|nc)S_bj#H5VO;*8Yn;?ks|#N5QZ%)~tXywvje Mw9K5;;)!wA0Qaa9d;kCd diff --git a/q01_outlier_removal/__pycache__/__init__.cpython-36.pyc b/q01_outlier_removal/__pycache__/__init__.cpython-36.pyc index 2f9a42a105b2b26ec10c60ac4d11fa03f7624d22..4cac9a5ce0442ff73285dcd7626c0532450eec8f 100644 GIT binary patch delta 51 zcmZ3*xR#N_n3tC;CV5NrL=JQLDE*B5+*JMI{JhL;3lmEd{qX#v?BasNxQda(n3tF9Mtoz`L=JPAaQ%$@+*JL diff --git a/q01_outlier_removal/__pycache__/build.cpython-36.pyc b/q01_outlier_removal/__pycache__/build.cpython-36.pyc index 8248a1626e901c868c177407620fc7ec379db180..bbaff7faf09457e7d1d85ba49fea0fc15d70662c 100644 GIT binary patch literal 628 zcmZ8f!EV$r5Vf6nlZIU?j=fc!x|aq-4}cJ*YA=;gg~VZ{AQTzfEY3Q1)=8>uwK*+6 z!=113l~XT#04K(gDpj56y(Ba9JTtam&1Tt(|Ne4H5c-22SOni60PR~Kfdtm5z~h?~ zk;GLj$PO1&(rO|i5${Mr1r?K@s7PcY=?-Jid`9!+4)o~i_PJmk%e7^uY@8H|cgmWw zH(X0*q&Vj7wNE~V@a4rF1_=)oi~=Trb3pqEXbUR~BBEto18V23HEQ+xFf1dhD!;E09Cynsb^fl;-X?*G= o6D6FJOCZmMV;L1=>klX_>(h6&6}^`4!#!#ll`6t?3ecRlsEGM>c5b_@-O6#-SdR6-RJOj#l~&m2yDwre|8i^6pL1ZH;r z50h7>F8u*aJcofR5_aCFJb&+dFYh_e=kwVQ`K`Xo2>D5N7Q^?~X#NQT5TJ_GRM0Mi zY)fkJXNo@C@iX-E9iIg{&>W9aM-{;~i z^?I~1y$&vQy2|79vPZ2{A{N$39byj7*jPvn;u`tAae8Tvk>Yb6Y5SeHIf{S1uRdbI ziYswlod|ysjIG`}(}^~C9Qs=NAlt@?wG-Z_!P`G%b@}vJWBQ<^a7b^=6<5`HFBKfx zo4ELg*-JNYfI#TMxcBL!ak~Yct;$$hu7UfQS%_07I5c>zF3H>^K?)l`cn2QfS)9Ju T80eLFiN783CBihD(f#~4xYMeW diff --git a/q01_outlier_removal/build.py b/q01_outlier_removal/build.py index ec278ba..a89aed1 100644 --- a/q01_outlier_removal/build.py +++ b/q01_outlier_removal/build.py @@ -1,8 +1,22 @@ +# %load q01_outlier_removal/build.py # Default imports import pandas as pd +import numpy as np loan_data = pd.read_csv('data/loan_prediction_uncleaned.csv') loan_data = loan_data.drop('Loan_ID', 1) +def outlier_removal(loan_data): + col = loan_data[['ApplicantIncome','CoapplicantIncome','LoanAmount']] + quantile_all = loan_data.quantile(0.95) + + col_name = ['ApplicantIncome','CoapplicantIncome','LoanAmount'] + for x in col: + + loan_data = loan_data.drop(loan_data[loan_data[x]>quantile_all[x]].index) + return loan_data + +outlier_removal(loan_data) + + -# Write your Solution here: diff --git a/q01_outlier_removal/tests/__pycache__/__init__.cpython-36.pyc b/q01_outlier_removal/tests/__pycache__/__init__.cpython-36.pyc index 5a057ffb73694628cef3ed87e03ee3a17f7410bc..9093e97f6aa204bf5d93e5ff73c9b49082f58f7e 100644 GIT binary patch delta 51 zcmdnVxS5f|n3tC;H+f6+L=JQL1pSQs+*JMI{JhL;3lmEd{qX#v?BasNJah( delta 57 zcmdnYxRa5?n3tDpxuj9lL=JP+H2u)x)S_bj#H5VO;*8Yn;?ks|#N5QZ%)~tXywvje Mw9K5;;)!vg00%)6&&bbB)i2J^%gnYgu{6;S X&o9a@E=WvH)lbe(N!_f##LWr-2w)bI delta 69 zcmZ3m-q-GbFCKV;- ZCgx=(=IQ69mdB@M=A;&HmSf^(1po{!7gGQL From 256e3f3bbd1f7d11c398a3e4776b11ca5e29517e Mon Sep 17 00:00:00 2001 From: sonik8494 Date: Wed, 3 Oct 2018 16:36:04 +0000 Subject: [PATCH 2/4] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 175 bytes .../__pycache__/build.cpython-36.pyc | Bin 0 -> 1079 bytes q02_data_cleaning_all/build.py | 17 +++++++++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 181 bytes .../test_q02_data_cleaning.cpython-36.pyc | Bin 0 -> 3403 bytes 5 files changed, 17 insertions(+) create mode 100644 q02_data_cleaning_all/__pycache__/__init__.cpython-36.pyc create mode 100644 q02_data_cleaning_all/__pycache__/build.cpython-36.pyc create mode 100644 q02_data_cleaning_all/tests/__pycache__/__init__.cpython-36.pyc create mode 100644 q02_data_cleaning_all/tests/__pycache__/test_q02_data_cleaning.cpython-36.pyc diff --git a/q02_data_cleaning_all/__pycache__/__init__.cpython-36.pyc b/q02_data_cleaning_all/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..92fc5e5c3e1faf7da5469e20684025bd7cc1285f GIT binary patch literal 175 zcmXr!<>iV=-V)6K1dl-k3@`#24nSPY0whuxf*CX!{Z=v*frJsnuNeJ|{M=Oi;{3eK zYzq@h6aDb~qU_>=#N<@{`TK_=2MRtkmQZ{Xzqy y_>{zw#Q5Z#)Wp2Zy!80QoE-i5_{_Y_lK6PNg34PQHo5sJr8%i~AX|%pm;nHyurGE1 literal 0 HcmV?d00001 diff --git a/q02_data_cleaning_all/__pycache__/build.cpython-36.pyc b/q02_data_cleaning_all/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d7063136bf90e6c233c65d57ea64dbb717870feb GIT binary patch literal 1079 zcmaJ=zi-qq6toKcOPb_FbESzY zMWP|LTuih`xFnKi#Ss-J_Zii6C<>aBQgW8WIw^88$z#E3&e( z4&<#|$qVNo*XrNg!<8M#Pn*nR4d$OZGp9n#TSYThw<@P{S-`?m_k%a{W{sIY3v8_N zsz&8k!M+cYHMh>1P_^-ky_CmVT3*poO?6vSJyFuK1I;{ooTw4_Fup(Ub!kr_{M&P)&&Vv^;`_)Jer4s$-q_P8`Yv_|CAco}F5STJrpCW}(K@acYN znspy+M+`nTc-P>m33f@{N8^J7tu(>(A^;8qz94xUw*P)NJSZ|gR7IYQpR7M!AMO-# ztV$a5VGJihk4K5pNerzYNv@Rbb14hUeR#O`h}dIE-S#9O5h}!RZ;}W$D5s|L&sq;o zQ!4<-Y2!BT;aj+i?}LT-29|dr-oIvCHC4tbl<`Wc4~$RClINfeOJq(nZu}A?qmWWE z(*S+SscgZ{=%yOO&6D}Ssw0Tv0_uZOYl+NDsC-Iwk%?q)@E<~h!?lOx%2glKbR_)M x$b^zpM&NEs%R^qbU<RT|b(ODR5@F+@0O|IIEejn$6nF@ULHgu4&re z+RSA^`yt%o4-izNB-T6vT95U_@C<@|MrX(++^jhA6x9BZ-%WPqAX`&5Q2A3zAx5^f0o~}IAXpPq2 zYqZXciQ!$PM#iUn>3JtAI2<5 zqqGkltv-{zJdOk27ef|~Z{mP%oCT>rP$P0)afTA(Y`rVeO}R%s2iP3yD)+M!L_0$rsGbP;ro zE`giNY6;zYJiGl6*T)N&b>Mykx7Yw7HAyDqck)gf=+bycC|T1cunpM4%yUm))h5N4 zgaynkj^?-xVtnJtZvaCw>H?QMVW|}EI=$^ajdoZHt+vTAK6nL$ss}$BGo@N-h^TQ47+c#gmp!hMsM%mdvLG&OUB=dVGy!zm{A7I`;m}Q2%oIa znGnc*$g=_Lqq}`)!$0)p{2-3I5`c(8`bP$Ih9h+y2h7jg_ooGW5+(@EaLBlG1a9Y~ z$%n|Jk%Igu(3mA(a>p}sK-t*ZHDJ{E!2w{(dO;pb7lJfr!ljv;X3|Xp8NPA*1@6Nm z+Qt+;uY#?%&g-Cf0|k;U1^TD19pl8FIdKUFlmG|-`0`8u_U9h>k0FDRQ26gc10oJ$ zPwE3>U=AvjNDCuzCeHM&@efnyA)H+~8Zx(+ahEfh^Ry)4M#6nH3{n~h7lZzL9whA5 zZFiLA5R+_gESzC?U9@erSjOO{*i3~C(vT_Zg^$iFeMprVW}K-?4{fOGfjMR3(rr@m zn?tvL47zfIKF;z>^B;lB0s&~GMRYR$`b-#)+PP>z`7*eqY;ckXQOZ}~iC;#sisA~2 zt04Y^-L2Evp;5CBnx<0c6#4Iu{H{1mc-HP z&IvVKXZy}wf37O;yw0PTa;%6{rEC`!r5&YMjLV|Z@f^+q>SN(uE$VVC1fh!N*^pm{ znHMgv{zPHTPY(*M_%p6qRQ~0&#O<{cMD&SL!_K Date: Fri, 5 Oct 2018 07:21:45 +0000 Subject: [PATCH 3/4] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 177 bytes .../__pycache__/build.cpython-36.pyc | Bin 0 -> 1137 bytes q02_data_cleaning_all_2/build.py | 16 ++++++++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 183 bytes .../q02_test_data_cleaning_2.cpython-36.pyc | Bin 0 -> 4758 bytes 5 files changed, 16 insertions(+) create mode 100644 q02_data_cleaning_all_2/__pycache__/__init__.cpython-36.pyc create mode 100644 q02_data_cleaning_all_2/__pycache__/build.cpython-36.pyc create mode 100644 q02_data_cleaning_all_2/tests/__pycache__/__init__.cpython-36.pyc create mode 100644 q02_data_cleaning_all_2/tests/__pycache__/q02_test_data_cleaning_2.cpython-36.pyc diff --git a/q02_data_cleaning_all_2/__pycache__/__init__.cpython-36.pyc b/q02_data_cleaning_all_2/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..328baa03de218c6b3a9c094cb4ca4259a1ebb90a GIT binary patch literal 177 zcmXr!<>iV=-V)6K1dl-k3@`#24nSPY0whuxf*CX!{Z=v*frJsnuQ>gT{M=Oi;{3eK zYzq@h6aDb~qU_>=#N<@{`TK_=2MRtkmQZ{Xzqy z_>{zw#Q5Z#)Wp2Zy!80QoSb+g{rLFIyv&mLc)fzkTO2mI`6;D2sdgZHi-DK{00VX~ A2><{9 literal 0 HcmV?d00001 diff --git a/q02_data_cleaning_all_2/__pycache__/build.cpython-36.pyc b/q02_data_cleaning_all_2/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d33a9946856cbf68ac5a7a2ace802579110fa605 GIT binary patch literal 1137 zcma)5&2AGh5Vkk_mo#b9mLI{96S*X9;Q&&Fs9GqMphAEIG9b&WP1w}C-rC-(LFuW8 z8xO!E@C3Yzubg-VE-+q-)FME5<(Y41>=}RK@wHyB^S%H1`Nt5UFX+^W0pEscBnXZ; zmWbd+2c!i$kYN##2zy^k#zjIBj0B#fJUqsvE!vX~k9d3>08T`^u|;0Lh{+u3k{+2S z3#88zp1wn5QOr-4AQpa%2JNqq5$z7J>v3io&7@#uUXH=AplT~~p{W*yI$-kc6~AI6 z6)S0_18Vf$LfL=%Y@l#}jNoxjcj-m!(K=CY^gr2wO#oN3yj`1k@YWjQ2Tb#zMeYuqV2tr3(CrcW?x$uRNT#t zg{8bMid+~MatJy|T=I-s&GOR40EDqFnf@{W@CJNH(vwB2#4iWq>L;YnLym9HM{l4$ zBcsZE@5c3;*GEs4-ZK@;#3)l-Kx>SlD0v1QGuFZw-yW4#6Oq}`{>mCX(_xfJN!LcN z>Rj?+HFXPTy=x1Q(ey!}pc5?N3qc2W@MZY)MX(K)U0kt}GoyR(>!PwQs;QpycoULO znN@|%Uk(3prr{sYG;B_!10QMQ|0Au^-=51!oR*K1!c}tW-$%Q7KAx)f1RZ|n@Kk%6 xdeMs|FP6RVEL~*YFz5zf{ZrzCcctrv;to@}9f5Fg?Xq6gaNyWVuML4=OW?V2 zlAOUvO(YS=0sF`oG6}Bp3aw5WjVB#kXi$5P6(o`*faroth_n9w8m~LHH&2`4T{7wm DLq{@k literal 0 HcmV?d00001 diff --git a/q02_data_cleaning_all_2/tests/__pycache__/q02_test_data_cleaning_2.cpython-36.pyc b/q02_data_cleaning_all_2/tests/__pycache__/q02_test_data_cleaning_2.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aeecca3d28b871bd41b338b89435e8c2eecf4c57 GIT binary patch literal 4758 zcmd5=O_S3$7`ALDaX$BZVWAY47HB#&Aq#DRLI(yY!%Qdbly+cTW{ion!NIYEw2EUo1()S z{WJJZ)e9Wo?r=ukM(75<-Ss12Mk@{R(#m{;kMG|Z68N-LxWhWkr_2w9U9&d6<3We< zuxH=m%&~vuPaVI3ogV+NyEow$9tajqj-^sU)z^xp;p9N6(-ciZnW7nLK$%9`q0G=c zEkJ3+)L2=%LRaB`j;_&lDD!lKZbDh0TXY-BB0WZrLs_CbK;8+tfu!A;=Ba^$z#n$Z zfcrMwVi!cHgk(T|A+MB{8fvcyB|FLhItrak{NGczl>yq70-w<99N~sKi2mujKLev7 zqb88sZ6iVES$e^|=e}eBK1X4uw6tx3Qb}OBpe1FyhdorpG=$XJ#D4Id~yE90x%miFq0iCH{A;Q5&Z z#$B}WJv;uuX&AIX3KUWzD(QcDWHSGY^{&y%H(^*Z0|Vub>+@~+$B&^njslH{p8#

Onj&zLE3lK}COZkqda29jUZQGhLE}kIaX#P|FxrK)Z)P|!i~-MGO~lK4`qo! zm%v$;nJr{y0H1$jX82h^k+}&mwPk`>Vnnqs0B=mq!T~G^v?MpfhtPo`E(YHcH%1h` zp=XCMb8cRE9}Nf`^;&|LYl{ZGW^dhdMFnQkutg#c_SkzdikQS%qSNL``u%&20_n)F=3oAYYaR@1MS4WeffCEKK z>ru>IIItvv>g5$_*tQRgVB3~C+inN6>!Dt-ZQRVoPxu=495+h*B#KigK0xsyit{Kw zL4m1~W5D5`qqu@%e-RyNxE0}95bJOYTs0cRNW+ziuC$?zuc%e|q?L}>{84(BM%Q;k zG#-xQm#L>+*Q3!U)Vd9O#-0-fZO?sLnX{Fw%-l*=Vx$zHTDOjlRI?A9N{n!D`7blB zkH->Wv`MoJI8vZC9zkTI6AIkT!eIfNI7sqHl3wICJTem8Jn}Qxl|t;-aSG?>upU=* l{8JP)6v*W)lBIDyp3SeoxfOws1}Tg$H3ynOHp%v+=3kk?B3A$a literal 0 HcmV?d00001 From fbf4f3c62faf8ec9ab253a5afe3a52c5771c3453 Mon Sep 17 00:00:00 2001 From: sonik8494 Date: Fri, 5 Oct 2018 07:50:27 +0000 Subject: [PATCH 4/4] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 177 bytes .../__pycache__/build.cpython-36.pyc | Bin 0 -> 1207 bytes q03_logistic_regression/build.py | 11 +++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 183 bytes .../test_q03_logistic_regression.cpython-36.pyc | Bin 0 -> 2297 bytes 5 files changed, 11 insertions(+) create mode 100644 q03_logistic_regression/__pycache__/__init__.cpython-36.pyc create mode 100644 q03_logistic_regression/__pycache__/build.cpython-36.pyc create mode 100644 q03_logistic_regression/tests/__pycache__/__init__.cpython-36.pyc create mode 100644 q03_logistic_regression/tests/__pycache__/test_q03_logistic_regression.cpython-36.pyc diff --git a/q03_logistic_regression/__pycache__/__init__.cpython-36.pyc b/q03_logistic_regression/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9321a04820629c483f4b63c0fd06a7e950a1a54 GIT binary patch literal 177 zcmXr!<>iV=-V)6K1dl-k3@`#24nSPY0whuxf*CX!{Z=v*frJsnuQ>gT{M=Oi;{3eK zYzq@h6aDb~qU_>=#N<@{`TK_=2MRtkmQZ{Xzrd jcr5bz@$s2?nI-Y@dIgoYIBatBQ%ZAE?LhVx12F>t8gVeC literal 0 HcmV?d00001 diff --git a/q03_logistic_regression/__pycache__/build.cpython-36.pyc b/q03_logistic_regression/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c18639bdf8001ff58cce03b9165900a93dc57739 GIT binary patch literal 1207 zcmbtTO;6h}7>@JZmQtXluR~Pq-h$09gq-*aTqd4k%>*0;>5vm(K>}w_D{CU ze!=!zeBFt^u+v^=?F5L!q$Tp3C(rA=e*O5#cDvpDvGM)%i)&dwtvi&Vuu!9Wea5wd^S7Vp^X@G+odpt}VxKU%DH`5kw)i~fwX&bkZ#n5D#h84mc z)|sr(25nY0;0Ei|T+2Mqe7uU+a2NORI_|SJ>#`nOXZ^}Oa~CXa(WTE8-k|8%8nkbr zQ|oAe^zyMH86}b)$AmKp%-W$CCxuGlcWf+KQ6wS*b|n_s#nik+DN!={2wX=@6;GIq zBum9L;Xt)1Q6!2vBUzG-&76BgwDsw!Ax2z~EXpOLNvurGX;y#3=rAs>b#Q3X2m7}O zx{N{Y`U)X>F!o>+`w)~>SvPL!PEZM=Q=2+t=ZRGzWGNdmUg?=kX;(I~06QhB(2cL$ z(kcDQz6r_zq;QXPXE)Dz5|d0FWU)w@UfmPq0o61u?WSUysevbLSY108iIR>%!F(su zv^ofNa1tp=l1%#mSfO+Lz{%l1(Z`Dh6>;g%b~3^ui&8^;vd&M96mF5#?YHUtG=&Di)Q8`t{a-Xh174CX{B zG|OwjaA%Q98F(o!YT@)Qv_B(Cq&ztvKGN4>SHr7k&!Y$48`e9L#vgj`-|K8e_x(vY zpI0(JwSN0wm7=YAt-#a@B_lL4_HNYfHw$Z*N|9@HqR~utV3u4lVbz2+6O81w3+{wI ea5{Via!xsWZ46j!LI~lQ{@!*Ia0rLjcYgyx)o6ME literal 0 HcmV?d00001 diff --git a/q03_logistic_regression/build.py b/q03_logistic_regression/build.py index cdbd506..e351aa9 100644 --- a/q03_logistic_regression/build.py +++ b/q03_logistic_regression/build.py @@ -1,3 +1,4 @@ +# %load q03_logistic_regression/build.py # Default Imports import pandas as pd from sklearn.preprocessing import StandardScaler @@ -15,4 +16,14 @@ # Write your solution code here: +def logistic_regression(X_train,X_test,y_train,y_test): + + scale = StandardScaler() + scale.fit(X_train[['ApplicantIncome','CoapplicantIncome','LoanAmount']]) + log_reg = LogisticRegression() + log_reg.fit(X_train,y_train) + y_pred = log_reg.predict(X_test) + conf_matrix = confusion_matrix(y_test,y_pred) + return conf_matrix + diff --git a/q03_logistic_regression/tests/__pycache__/__init__.cpython-36.pyc b/q03_logistic_regression/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04e6a0b9bb201517a17ed712ad69264751bbf242 GIT binary patch literal 183 zcmXr!<>iV=-V)6K1dl-k3@`#24nSPY0whuxf*CX!{Z=v*frJsnuN3`^{M=Oi;{3eK zYzq@h6aDb~qU_>=#N<@{`TK_=2MRtkmQZ{Xzrd pcr5bzC8@GYtR$ literal 0 HcmV?d00001 diff --git a/q03_logistic_regression/tests/__pycache__/test_q03_logistic_regression.cpython-36.pyc b/q03_logistic_regression/tests/__pycache__/test_q03_logistic_regression.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..98a12663aa957b0aa573f063535a00194f4c0ea4 GIT binary patch literal 2297 zcmbtVL2uhO6c#1fRvg<&+ca5*VbcQSARw^Yw1=hGh89^+1PF53fE8RYl@%FRE+si6 z6~sn+a{tWk`vtr1ALzPM{=!asPf8p+P0)3dz{jUY>XGkzA0HpJ+s&is_h0_3Th?FJ z%md%nQ)v1R5ZvNKT9lN%O>O9H=_D?73643kmegsz)Lq#~JnEHtO)ex&+62AM8*(ve z(N<~qWIO554zUCoEb)a2q03@(pz zinWP*fW!MgoD*;z;YKeXTB|y^0;sjyWcFe4AcHT>%Gnr(bHKPzxn3z&g0(CnR=s# zEE2sa;{uTVAPWF=Hh_KfP98i8Zy4_x07jQGyk$yvI4U-9+D-q5)9CKP4mE~uIUX55 zxdrg<#~sb(1Ra(+`4W`boKzXX(>KN6IXrh@)_7+MJr~C;m&OOG=0f{C^V7`u2{X}a zzh5R|en#M2B}KKsS756SbZQ9&=AaUHKr6n!HIxgddJU#kkPv`m=aV71^fN^S>4nv( zMC1!lfStfoV-FlojEjt&;iG*xKDdGcj-GEuL*XB1%2&eVDy?wwW9`38^JF;crkp9o zMlZMgQI-R7#l=J@2>zxHYQ=Iz)P235YQxe<6n2ypweoM;xcI$rah-rv&|O0iA~1OJ{iC39_MhJGHZ2;@BS+crKiK7QFvjPvP6Vo(G0^RbKBx5|14`(^9&&|eq44rF zHW;zOVCXK~6(eS{M8>bWHx#GK;?+HQuwC)u@_GuHl-*Z(EV;rXPxtmBM(WL