From 10fd9afa6f11b9fd9abcb8d0597f3ecd4846b62d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=B0=8F=E9=A3=9E?= <2624970078@qq.com> Date: Tue, 22 Jun 2021 12:24:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BF=E9=97=AE=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E9=81=BF=E5=85=8D=E5=92=8C=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E7=BB=84=E5=86=B2=E7=AA=81=EF=BC=8C=E5=90=8C=E6=97=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9main.py,=E4=B8=BB=E9=A1=B5=E6=98=BE=E7=A4=BA=20English?= =?UTF-8?q?=20Pal(SPM-Spring2021-2599-=E5=BC=A0=E5=B0=8F=E9=A3=9E201831990?= =?UTF-8?q?641)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- app/main.py | 2 +- app/test/test_add_word.py | 2 +- ...test_add_word_and_essay_does_not_change.py | 2 +- app/test/test_login.py | 2 +- app/test/test_login_security_fix.py | 2 +- app/test/test_next_essay.py | 2 +- app/test/test_signup.py | 2 +- 演示视频zhangxf.mp4 | Bin 2940676 -> 0 bytes 9 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 演示视频zhangxf.mp4 diff --git a/Jenkinsfile b/Jenkinsfile index 434c00f..9366ee4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,7 +13,7 @@ pipeline { echo 'Building..' sh 'sudo docker build -t englishpal .' sh 'sudo docker stop $(docker ps -aq)' - sh 'sudo docker run -d -p 91:80 -v /var/lib/jenkins/workspace/EnglishPal_Pipeline_master/app/static/frequency:/app/static/frequency -t englishpal' + sh 'sudo docker run -d -p 5000:80 -v /var/lib/jenkins/workspace/EnglishPal_Pipeline_master/app/static/frequency:/app/static/frequency -t englishpal' } } stage('TestIt') { diff --git a/app/main.py b/app/main.py index 9c60b6f..72cfd6e 100644 --- a/app/main.py +++ b/app/main.py @@ -228,7 +228,7 @@ def mainpage():
''' - page += 'English Pal - Learn English in a smart way!
' + page += 'English Pal(SPM-Spring2021-2599-张小飞201831990641) - Learn English in a smart way!
' if session.get('logged_in'): page += ' %s\n' % (session['username'], session['username']) else: diff --git a/app/test/test_add_word.py b/app/test/test_add_word.py index 05f7961..0cf1865 100644 --- a/app/test/test_add_word.py +++ b/app/test/test_add_word.py @@ -10,7 +10,7 @@ import string driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME) driver.implicitly_wait(10) -HOME_PAGE = 'http://121.4.94.30:91/' +HOME_PAGE = 'http://121.4.94.30:5000/' def has_punctuation(s): diff --git a/app/test/test_add_word_and_essay_does_not_change.py b/app/test/test_add_word_and_essay_does_not_change.py index 61af4b8..348521e 100644 --- a/app/test/test_add_word_and_essay_does_not_change.py +++ b/app/test/test_add_word_and_essay_does_not_change.py @@ -10,7 +10,7 @@ import string driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME) driver.implicitly_wait(10) -HOME_PAGE = 'http://121.4.94.30:91/' +HOME_PAGE = 'http://121.4.94.30:5000/' def has_punctuation(s): diff --git a/app/test/test_login.py b/app/test/test_login.py index 2fc5d49..11b9abf 100644 --- a/app/test/test_login.py +++ b/app/test/test_login.py @@ -9,7 +9,7 @@ import random, string driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME) driver.implicitly_wait(10) -HOME_PAGE = 'http://121.4.94.30:91/' +HOME_PAGE = 'http://121.4.94.30:5000/' diff --git a/app/test/test_login_security_fix.py b/app/test/test_login_security_fix.py index b836b6b..3baf18a 100644 --- a/app/test/test_login_security_fix.py +++ b/app/test/test_login_security_fix.py @@ -9,7 +9,7 @@ import random, string driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME) driver.implicitly_wait(10) -HOME_PAGE = 'http://121.4.94.30:91/' +HOME_PAGE = 'http://121.4.94.30:5000/' def test_login_security_fix(): try: diff --git a/app/test/test_next_essay.py b/app/test/test_next_essay.py index bed6a92..6cf8c80 100644 --- a/app/test/test_next_essay.py +++ b/app/test/test_next_essay.py @@ -9,7 +9,7 @@ import random, string, time driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME) driver.implicitly_wait(10) -HOME_PAGE = 'http://121.4.94.30:91/' +HOME_PAGE = 'http://121.4.94.30:5000/' diff --git a/app/test/test_signup.py b/app/test/test_signup.py index 596e53d..f46c5cd 100644 --- a/app/test/test_signup.py +++ b/app/test/test_signup.py @@ -9,7 +9,7 @@ import random, string driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME) driver.implicitly_wait(10) -HOME_PAGE = 'http://121.4.94.30:91/' +HOME_PAGE = 'http://121.4.94.30:5000/' diff --git a/演示视频zhangxf.mp4 b/演示视频zhangxf.mp4 deleted file mode 100644 index eddf7ab59e45cfbe97b3f658be4f23d4561d770f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2940676 zcma%hcUTk6*XV}cdoL2Ii1gljl_nx00@8bx-V=&65kXWyl%^ok1rd;v&_O^zL^=U! z3P?ao0)*_%`+oO#?{}Z)`{QmlGiT16X=it4PXhn|>KPUt>=POk002b5KRMwq>k{E6 z6A&yf0{{SpXNZRfApY)6fV)fB3K3vNs8djql$Dp1k(LE?p%gtF%7ms~WTYVIwq)?T zYir)P^@aExbY5^D9VM$M50!wr1%-G(W#pBiA+m~!3Q!km84o!*6+(rvB!NK6{HB4C zggjK|jvj&1-NTJgp%)Y!?eF0k29=eTmXnZ`mQf@iy~DzSRi&gNBO@gveB3>P{9OVi zgF?Kd{uxEmJ1oGTKob-k<`WbcstR>;admOikcNhMcxuQ%-923WgWUWyWK^Y9rJ*i? zF8g2gx@#Tx7oc~PYSnW4Q z<4m&~@CQ~x4&?d?7Rp_vF|v}dgv3v`{FQ2}t;12CpqQ|9LFsm1-wL+;U5Id3L!HCJ z?FH;(FS^m-52q%p(~a5w2!GqYNeXgpH1k`Y&No11mWFC P+#()sv|1HNR5Go6GzA=9-(Rw6`h_V?u*ELSQ%j+MY5G=5^OjK}*N) zk(CdZ^x#qyuA}@p?+xvz4zt;at_yV*KA2qDvews&u#FSOx-!lW9CtG|*5kos@3>Jq zeQSIyjj(WPU(kE0A8Qch$sMmBdM7JbY?pVfQmkF>mHCKg7M~IE0%|F97~UZfS|W#B zg7%Ch8NXx3?aE`n$M5;go!WF39q$||c{yUp`M@ta3r(*<_g-A23A@WT8}gTSKLLl| zX2?sPv9%i6ojP>+O>~mX+rXFjK%zRcI_8lhk>{^WX|AlT6Y`ArK ;y{^5HEfvG{# zer(qw4fWmIrOWQ~2jU>l^2HsmVtnv6T#6jI^EW*;>dzt$5c{NOQQ|cL?u`gbJZ2z) zkS^NTiQj2WCeF#;>?g)5HKO?Li?Ax|S>n{0v%mNL&2NB{52hLk8~sH@zmjvZ>4+Z_ z9!5D`#k63>lN!TkSBF#Be&0FT;e>^@|MmIQy|m03kHSM31)rw{@~7`G|G6vl{VPde zW#p0m#xeKF2PqIKYeKA_o@oBA?*&3mj)vD(w!c2J!)g6C`G)W^=)%3ai3Ph;G&?Yl z>pQ_sr8ZnR{gP79K?uLDZ2i-eK`>bJ{IFh-pJ3bi@rlX$kB8QuwNLV_9&HN#?W*9( zU<`#&q(a3FGUUKLLlLv5Z%UHoR8u!^U3!^cWqc{!*E#Dqjl#ZFQtz$XHFbieza)ND z^C2PW)@|5TzxNd6!^!XX4D|H1r5}uGrDfK-J!g=cAU;kcHTU|wTuE{62k~Lug`IMi z*J=#Qg9ofP**@BubzUlydSqGbw_V-U*b=|-Yg>%JJ!wbXAUuNSZ`=juDgV{`! =_4-$0?%g;%^)fy$Oy(L7>Egv-ZSbd9f#sU#X^k{!0_4?x#ixUHeX_s1B zCMIXVJ@8L_5qcem(}F1s;;Tqei$?)?4u0U4FS*5Q?e |BflIcsM;d^>O0`Y}ac&BEU@k(P81svS&N?XRfvNnSqnA zDf8EQAvNC^p7mE~h;8ttKc-}ozPr7)*x|TdlH iFKkws2h^4UK58m+E8J5QoUP*gb IZp)D_$Yt)8q;O~sR>9E<=zPV`No`e;JsSC&I+@W0l_AJ4|$I-|s z;ilqJmTKm$@+foLQ{{`cW~5zZ^SMiTICb{{S^Z7Hn{~C7yL1L5uU@his3DA;L}$Tx zIrzDaGmE1mfXMinn;68grdU9JbIaVD_7`_o1K-aHLEHLJwmeA@B;|6?o4Fb&w*%GL z4;*+h^@4eT$-|cQ@AH%7LuOr)^z2(|wMszGav1j?xFZQM=rvfnXx|ky-gm4S89Z~6 zbaj=?;Je$y62u;z@$L55`m8cpmy`et6mt0uFnDZ2dKZC#kR*SzSa~Z2{_!v&9j>+7 z%0OJ|+H rA` zsYaee5ez--O_UsBo;fF8cp?YwTdz(cZq8z4lQ%33uVnsoR=i<}{2tK)x=$p-R?Sl? z->l^$ Kf^@XYi;q2}65!gSErX;^4+lCx`==Z};;Gylt9F7SDRp zq#uOHR5vSWre(61e2lpk;4_cToD^$xwbdjyj#OtAU=zCIW*egMOtrS9Q8s_NNV@(r zC>pB#&|SfPDRaW-4W3B-6ud-E3n(k7)}IJ>O3)<~o8^p!Ro8V $LQ*ZQXkH~~5(^QBo^fUKt zFxy3@A)m@K)RclZMlP|^km#+!>doDF!D52$FpWCleC5U-ACVY6?3?EkfY+DJBU|>q z>VJFhzSelE`dv8~w~`hG+arV-ZyMKM>G9;t1KRFU*>@nF4A1aF_ega3?Jg0lH1HtL zd~IN7Uk7$TYM|&**74qjNa(wWzZ!F4X0Gv5*u}h?Rv(#l-oT8;#rkbwF`T9AmCbGN z+ejznOFZU1R)icL$bGgksDv?5twx+@OfGFe`O(K!MJ6wQfU`kI+eYvgr-Gb$ud6OW zqB(W7j+8s%-ECP})_<1eoBn#lURF(>s&an2DBk$~Q_kW59e&?*_7Bp(0s!E=aK2a^ zuRJYNw`nK4&Fde5$B;(|2BikAvzP$qp7xW(x~>hjln?~&ghS{9y3Y3UwOpm$qw?xJ zdQ?U=tU)VjS=Z};84*r|@23;+DWFWd Gcvrm6kSV>!Hv9hTgdld8{3w_9eJ-rtOY}g9m1xPFy9{q(*x$xLFheZW z@M{5utB~z(7Qa+5GmeB=Zt>cegxvd?6FfoS%eiyGWH|Y>jBm=`Y(+=YU(b$J{Ig-A z<4TH8=N_dwrSUbcFfiy~fR5~!Xt$R3LUGo;bI0>Mwurw}M{z@rr!V;g+YB(L3U`mQ z_vgK1SgMeziRm6NPU*ZMrx@ucC?XOi3m?7>OiPR(G$LmmcDWj4XZ76S5i1M?hVP^e zJ^~}{Ub@-{bl9(gnoLyF9R0! zI0R2-&c^D`PlwqfPQKyhT2$TuX8OSUNPd2My^yDc0BENk`ecT%{Z~)-!DxL6nEn?u zYH6&V-FzjuFT{?qu*jPHAZ(7y4)EXqz@_qYLjQXlJi!ZfRvOcN`6N+c)l(u}vFzf2 zn4~qAbMm251Kih f9+;wrP07}r&?wXK z&ya=Mb!}cnE4Qs2C1>#lj{&M}wg Mb@ydiDZhJ)N4azi6ZMt zWl2en4w5n0)tq)e3fwsAoR?0ZX%>C)vaUj*gGIM-UAS-y( h?8ODLu$*u20h8Uf-X zO-~$C7KC^iyvO)B&ojrF$5H;dd&k9EstmKlG+VjUh%=qwqVWsjVJj#x>D=7VC1Ct< zcq+q&1z o6+bg`qHy9ny9|S4zEaAw*v~!vAUdsfWhq;0er6S9 zr5Bp}*}K+NR}?hz%i=TxZ^wEcY&Ya;%`o{3uF!LE@q3C>p*_7gJSN{W3teM`bv%F4 ztS$)tm36p$Sg=&14xU@i;ZsF6M&gM$N?olB9NvnOmIuFxRy*l33W(D$pc~qt9sYng zr4%PmAh!09x`;#(WUdbke;9Ypq0^W5$pIbjb)t7N JGT z4A2P`Zs5D$h+eDH9~B|kUAOurwuZ8*z0Y{<+%9dSy#F%!RUG~DBOBHTeK;vy`@V4` zu-4|C;=cwxmtJ_Y%co6&!CEK$I+v?cwT%A$< o;mwA4v37LCNMbde z*v=;lM=*b@AgCqPk~v3V#x971k>TwqhhlyKGU}5SI$r4TUWq>+l9<$eukb}E!&_q< z{Q!-~kz=oWQw8qH7JVk3d3@U8oZMMCbu$Bh)Ah_Y!^^UlYC(X~+uMQpd3yke$hvmG z%Ax+nN3>({{9p5;OPO&rc( zb|L_#S<-@Un>M;xsZ0$%esSwczo_Yx3zBeho(*Xk^id1f(*ZAWs3&6C_E7u;#L|-c zQ;I%fyr%>Mx^nwuiNDGu#fGRqT)r21A^%2S`K{h^lec`^o^B)3FqWD4psDA_4IZ=T zgp;?Ul#xoeU^JZa ^Ybsn_Rhq}n z%%Bk$KmGlp9qJo|^soPxvy~8aN&iT$Vicg%_j&;h5-f5P@Xyz?cQr`bVt$g``1}N! zD|{=v@(0TfHy%q#WH5f?r;-1PDRlC5)M*MsXEKwkrdk}bY)m)su=2Czq7dfS`_>YC z%b%h}5P=U$N%7+#=O<3M=+{=VI=!%4OxaG`$<-OmNc-O=K!Mdh#x>{0BtNy;RE6+2 zvjX4*`)2O<$489Z ozGQPiXALL zH|3lBaSX35c}nyw^ s>p*t>*+EuP=n+B3%bc5XkZnOW6uf4S-tXtDybLP_h zn*(pFAx#94J-d%SXQeH=q53=FV{eSBbl$fh7|bU5cSxG%NS23~CjGMZG&xgYi@cjn z03OJr+T&pwy8MN1|CzrVsWbFpXjoE!ei>Xf *LaDyh#cYAw+S#c_BuhVFusS&y+@$r3?E;|!#l8LEiJcH?uexz^wR z2BLa}?3HPU?m2aWz$9aUm+AQ5U=8%Z+~hB1`zCI!T8}?UEK+x-TF;)#^tZaQ>KOyh z@mU4ZDB0cjA(lg&8~!OHPwjtSfOverY(bqPL#d7?t)z~EIf?PFt*wihcN2T4Wsum- zkb#j|pIHPEL3%d%7aGI|c5^FDKecZgJ3fL%efGS +PnyzBWehp#{R2tnZ=vcB7@~P>Bz+b60#Yg9s%}NK zx}B|>OOZY|{G!0OM$xa{{ 2JrwEDL;sE?|sGuUSEcyKQ0`Pz`!&UiZUXOI?|{c6%~c~BST9oUq$`_}c_)jI!4 zskVY4PVnMEp>$_E*;5IvBCe8>w}o8N!b 8 zVyj@Qh1;A6zU5v2qJZ( XCMURTEWNrw!-)-Q!8cFLj9>cp;|rN z+%K1!@3K{gwV$l9F90Tc 6bHlH21$jd>$A-IEams z>U*+tp1NBD8q5EbeLAvni9k}5j8gS=KdXqOl;(Xc`^ELgz^)|-CVVqvKxuIeyy@Ag z^38AFPXOiJyxTJ8M@xe20O2LNpY*6?Jg11uGs!xttJdIY*T}O~hi~92j;YiTTEe?| zPNGJ`v!d6rGIaEHw;eW;Q~XXev>~TVT|ZUz<(zAwG5adkd&Dn?KcO|mlEg*won2i} zCtFS5dnJ~nhR3}uDn%)^MW&ao{slmY%%@)lo;C*G%5`#OlJdu4$rlL|y!K~c9pdMr z+}w;U)>rpQ$!rd{_rV46nj&vWM`z!%c9YXjeJ&9XLlr0Rl8gg*t36zxYiXr~jJ`5l z+LY;~v;?dlWk$@{QY>?}HpfO6X<_g_BS0djkKm|rAX-S*qIx)c+jgwJ4k4YuK_f=a zDT;muP7VkeRhw!%UmVVZ2i=QUK5N(!kgT)V7N-yYX&W9KC@2xBTDo(9e1zj*o{|q+ z0FgjJtzJ&Im~8H!>$2k9M HRP8VDCMfWdDrMKakI*6xH z8>YqZK-D8$vEji=4t!UA^!?#ZH{bnU@)nk{GYSn$pMi@%>HGXS0EWNsJyd#9bQfOe zd!fK}pmzctIVv@Hi;3ONsnBC6scyY~ma)V0SSqB^^_vorgc&ikLyp>{VeyibyLa~R z+tnZM$$s|hT6ZXdra;Y+ ; z83Wa69t*f)8*u|aSxcTNcyyv2o1W>+o3|zFO}+LICJvA~C&`L-vvzbU|6wE(ZqWN3 z@K+y?^}u7&j)Ka89E0P}ZBrTZmbQq#-|0WOYyFTrsT9QrNr%g8v8_+~tU9_I5Soei z8^4q?u54H}Te#g>d;Yb?nY@P~JXXOwNkQT@vp2>bndDXWbR^n~5PGet3#X2wy=;$` z_#Jc_3{a5&r8vEJ|KeQ(gSEF7{EfJNfiR=&Mce}f{WZ2X5;~)uQOB4@_Nnmffv8|w z4D9!yMBfj$k585MM!%!9FrW5l1aeYujmCn9l`&N`5VrJ%*t9AVdb3h@ht;s3a=}PI zRIAB;EaDn6qiXD$w_*mrmAwYjWl-8_XS$}H%_yRT>_!4Cx$|zX(QoFVd#4=%{x~O| zzjO 8uapGksYx~4F=aP&Q z73r#2?p}8 6*W@8??xD$P2Vm8AW z4C>$M@~gMbrZejvZ1rH3<;(TCd}w|LDmkr}p>`v#0>2C9Syz;FT8LDbha#1HlJ0>9 zM1LRj!AnW|TwL!BCm&(2wtQenJl#H`iQiYsp(OPko4dY!$|3mC+WERLJ<8|WT`gu_ zbM&ec+?cu%i}X092j|Q_LtiqR5Y4;i;}PGd-YV{U@jGb9QO)W~pWB-(gOtj^!~J~_ z!~ 8d_yn>(*Aa{vZqgTbAn*@B9kg8krC2yu$T z+BEM(D$cCHn{)F;!H+7jZ)1n8*={SPki|lO8y13uwZmTjd6#fEV4vWriQz!*xu9x* zejgn|reqCVt%frdu7AUqEgVR4rqY+f1rBZk-B0D@gq+YgKvpTDdjKR~dl(wfvT!!} zMb82K*(XVLEy^2U+nlht2g5@AS+2SBv!BFK3&+@YVP?@|uLfhb*V9S%s}gRc!w`1Y z-vrL1Poj#3B8QIDtbJBt^+;^rDG}Ayc*_F#=zAkO7X_k{4-4WXDP`AXk$^ULKXn;k z_Hv=uH|~HCCs6qI0wlPD{=M3?rRk4(_bC9IPsR5}Ts_WV{yUFleaEX6YZu=9CmR!a zCkQYaJn;3>B(Su_aJF)W`%ZvWi|7BCX*ffK8bXQ`Ibfh4ZH;2pLbLDV|0&CgY5vb_ z@H5=^i*5(lwHVI)kJ&4s6?Nhy1mNss0`8cu#w`UyCFBPp7OCHWpt*+pan12lzn1@8 z4|8&e Ks<;P?&*DrgQW|lv<%#>=>rt7n01W0 zc|rlw5}8qkC*mEJmbEmm5+YWeGVnkC$IDwdn TO#GIsw{3KILab7R9K8|6>&Oh zi(^WlYs2X+)nS4zSQ7azaj!E-Ac_DZX #65zjQ1B&!bCyHc^+*VzlZ6=CD5O z7;=001Jeh7kb|zZ0gta9@Y1Zu!k kueJLr&6Sf zW_A&eY`j&~b*~14Z(lMVyTSKUFcyvDS*5Eof)hp4o7gD+hM56gLJIq;45pVmUMdYv z+i|3l!X8v(LD(oERZ|}eo?9U|8_hv~tnq?`I`_rNb5g%-#P@nJ7~wrLmO~O#e7xay z$ABJk+sB#cEBAh(oQkuvue<=2qq$T7TARgQzfwWp$q@G`=Q*+Guh(>T5O!w1?;yHE zphx8OB)1H~HCkHoM}D?WotL~`vc;$5ViB!PEYU-sMvwF+_d6&maXP}oz)7=C$Ock6 zg~{>yT@chGp-u cQNAn3?U3l6cR=wqF>zqDHqm;y;xnNeZ?|}`M z+EO9p&Z36blgkjs&gpB*gN7tG`|s>>H3WgHabyN&H}}d#n3lnPLxp~k&~^$e<(sde ziHsE=&M$Y3hkHYl<-SRnqyrQH{P|tcbXh@hvAM%TDe(yZ@dCHMg4+Z&c`PyM7tlH> z!qWaAC7qFxfs{Jw<_~lt(H9L+YD$OvlICq5dE`OPhlVRu(vigA$)4H);7rYG^mB1c z^r3Um=s~A;cTo+&jj&iymR|E+f*J+(pp*R}#7kx4ZNzUh8D$1$_~S<9T( ;Zc|7Y@p_wWs;47y9zu|wrlK{ zF{3_wOk%W?GXqNK-=P8Y?g$6ft @@!>=RU zPau-H(1a6W>8lBLKwf@=ThL$+%DW($Me$?0d-jJndLp6p=X!f=k4WsOP>cBOBp!!- znwny*P;WI;zyJ38Z{UAN|G%)QWB4rL=A{7$OG7k(SRmk0@6zFWUOZc*P =OxI!@XZUkHL$H9B29})*%b=>r7kG#XdnC$GOf>0}jom`NR zuQA+}eazrge1@4$1D)$1Y^Fu3$6&r9z|k~yqDMlZ*U_bYzsX6242h&sS1cgy1DcTP zjXdXDu8!B1qC~!?6&(eWYxu#_{GPyuc`doz6J`e4x}`>gT$6GKQkM9iOkBOYD$Wv? zHC-70Vlp4wxbR0|bM)D KrAv^T*E_?PsTEiDSvW-r@{fd0=Jx?H#42Xn_kUJS}R|c3V=Fpx~ z3c9kC-qcM=`WcktUu`S{(V;r| NF~Tpmuxv+sLyYs~xF3A8=u72N z^wp$oq!}aSQ4Sz^7s)Zlv$Cq2#W_xu>UL2;^Ag?BGw;SMH9Mxh4%$a@F4yj _G##V~ocaZlkE}q9e&&+h z9Q}QaiNF`|YD*(QjDkC9m;u=coy*fJ8k`*h)}{_{(fYBk3^MO9SuWY}(LF+py#=m1 zp{}&EnhZqvB!kL}?9xhfgTr7bnI$BtC`;N*Xy;a2v#e^^&L_WMBByK+UOHV?eSP-s z7xu3WYF`B^@Aa~8myxubg2(tC?^nc9CR)-Y+Ch*z1+l9Vf9ZY5)^mgaHgdx_R>`C< z;soCX4$$a5B2Bu|h>q)-FpwM0hFI=x00MBg$xVPH&rE)CEfD8@Z467{+g2(DLw7Rn5A561#*QAonb_*qn)G$m z^9f2a%7ZrNO=GZHbqPW(BrQXw+JJzXc_lT^5RPuic5RCD0w51Fg*{==)zfYg% lxy&*)$q>O3rRhe2$@f?9qYzYVKF|MVwt`RS z@0Q7@61;28O5F&p`Hpz&O5SW27Z@IFsW!Pw->=PaauU1Gape7dW;B0)u!Oco+9ln4 zii vtx|0X_YQSQB`Wr4_z7vilDBc3Dd1j)R5IVeeIaG9-eDX%O^>U<7Poa zVvS7jbk4UXdbLT-{)=(tH2ZI-& I2Y9bV1<3F@-dF29Or}r~-Tw6-Esm+=K#W zEFO=kysemPoPvUE^Ro2G?nl~T*^E5ZYH^tYK*AL+C}eDW=Y6P*7#=_Nh_8NkS97a( z8^V?%M hU7!F3kR_tJQosjV(c~! zV|W%wqnK5ArNK2TC0zOVY5W%Y5kWOjaQs4Mg#z1 COUe0 f$M{8Rk7o8gUs)AZNRTqW`8-ClFZy!( zGKdqCbgx2MqkQ-4%vD`}hIv8rDHuNOEq9gY$97o5Dpl*|yMs5{S_iXc_pTws>>G^` zVC(=l(#1xF=c~Q;Sk{M4p=;Fdku-7G+D@ME?o$#8QQ((YfLh5Q0NH`C5|t8DN~z7V zNVk?$a`CtwldCC%eNNm_yzg!f#QzqIh}9kz?l)Q)801x}Y4t(}NH@5(TFirB?W-4_ z9}U57|7Ogc)ZNqv6wllm(BM6PE0^4U6T3ns`g1bnHf-UY$gj^~73e2t$q|;vT-SGh zkb{>eLt3Op=PBr=y-9bw;fK Yb&mxPDZb>Ow(ahJh;0#YTI%Sdzxk*>(}aof$4hA0G!v&E>kb+$pLq8k9^Guahux zs8+K>OQU22%RLz>LgTr`sJfME88r|i{sm8$pPd#nut_IU7IE-kj>X%q>( *Xz)ap}Q%ix7XC5E&bDR~*Sq^-Sd^n!nl z@(IT@IlWN$<*DQ44Y_a0pw2!6n?JxW7Aa3^8>An7n`~!Ctflg8m#qlJ31)oHR~jn@ zT&d+M5R!kvK~c$7HzcF-j>vr|$x5Qq9)Eu1vor jtutFNaanDD8{DaBCV5L5(2b5fO9x*(D6UU{HLXW0UebrW_+P~R zS5%YT7e0! p(7nEARvTZq=N#|Lhn_jOH-PnfYKC%P((zUqBNBR z0VzsV0cr1!-*5kK&bd2hkFhgCGIBw(#+qx+HOn)f={l;`n*625=~-;<`9ItRM}raZ z-)E4XdGiM29;bn-nbrJlx+n72zm9ci#)d(z(QeM=#qNWDwc-{65ZOuwJkvx~3bg3X zmNAjLT`$jx)aUUhjS-61Bd|5`bI?DJQ6s)+wt1yc*h5yw=c`;STO6rYH0wI_El(aD ziPM#R5eZcMY8T4IPF#n_`qV@?%Ha!?q{odJMM %zfRSNz78nk2PRYY!7pm zI69? 2Ew)T7LH8t0+ei?q|D`);=LsddICN2e#Gv~)8u9wdk znjI+L|K|gl0Gy)VzFr9Idy>Wh!Mxg|*{eF&)_Dkmnv@<}Mupk9WOVTB{OsPwH=*tB zMM}XOi%Pl0`d&gxM c!gA1aqq}OWaGXIskA)z)f)$rLYuZ0W+MIJ^A?jH4pCRaKI z@`Xdjv-7?;x0%e&v&pxAt5Ukv0g4l{wHZ1-o5cBbZTvdzwaINr1^Z${;8LG5+i2`Z zUbGEmeXr~|5C(AY!E;%`v9Elgt`^M`dg9F;F{F9r`%fMO%8fr{G;A>k|2Fl5{iJiH zMP@X^+2aw){=VQbr#H=ww2UIv@ssl|H=cIXy}gqGPSz;r=bwgwzqy%oMs6g(c(8(# zA+hiMFS+yo(`)k$$2V?I@}+Ma)_Yg~pPb77{hsYOSmt=D2OhJfLPH<*SRY#uL*M_Q z`!Ic7`sRm!uhP;XEv?hW*F)O=%a3hSam1h}JXrwwja*LfVFS&0U8C>A#iJsu5N4 z*Uzf3-n}U4F_xnK9WDU?u_;`XD+vd2oOGqlje|jFbUb-+XtrP?XRva=$|Quz0++cN z9n#N4Zrs!bzB+$6y1i|IxC9}JFW4#z_ltPsKm|APVxtQ+;c(yJL5Lth!tWt~>?>sd zB_7CZ(*0f#AYM%U$c(j)MXD-papZq5Ys3R@9~k<6OdG2Z=eReYd((gfzJND1NLlA{ zxgJnSINXKG$B17VjF}N=R&7^#L~$IR)9}GU+7A=KEuo~Tb=Ev1e3vKCc7hW0`1lum z71#XrC&tJQ1dDsks>9)H_rJ#f;(oF{VcvB%L+L2wm=}hpdPjbc(C|ndXsV%M_h1xE zU5EQ 6-qGD7qJp=3)Q}E-I}VWB+e{DclZ#o zaxnf`boQYUvGg!)Z_Z5fMIH-|X;)3jbDb(iIIk^oHGT}QP5E8U*irxv2iQ)OarK-S zIq3xD*Z~OIS{;(C=%W}Vhx!9Y&abSP$eq%jF5wuaq-EP1sQ@=QUT7BE17{P3tKop4 z%y($yJhw-V{