From 63d5f9b937c77f5e500f5ff0113f6c13b1168030 Mon Sep 17 00:00:00 2001 From: feyruzb Date: Fri, 17 May 2024 10:29:57 +0200 Subject: [PATCH 01/83] not working api --- web/api/authentication.thrift | 4 +++ .../dist/codechecker-api-6.55.0.tgz | Bin 0 -> 63137 bytes .../dist/codechecker_api.tar.gz | Bin 60379 -> 59123 bytes .../dist/codechecker_api_shared.tar.gz | Bin 7977 -> 7931 bytes web/client/codechecker_client/client.py | 17 +++++++++-- .../helpers/authentication.py | 4 +++ .../codechecker_server/api/authentication.py | 20 +++++++++++-- web/server/vue-cli/src/store/actions.type.js | 2 ++ web/server/vue-cli/src/store/modules/auth.js | 27 +++++++++++++++++- web/server/vue-cli/src/views/Login.vue | 26 ++++++++++++++++- 10 files changed, 94 insertions(+), 6 deletions(-) create mode 100644 web/api/js/codechecker-api-node/dist/codechecker-api-6.55.0.tgz diff --git a/web/api/authentication.thrift b/web/api/authentication.thrift index 673f89ffb1..630a2b2dfe 100644 --- a/web/api/authentication.thrift +++ b/web/api/authentication.thrift @@ -69,6 +69,10 @@ service codeCheckerAuthentication { 2: string authString) throws (1: codechecker_api_shared.RequestFailed requestError), + // Create a link for the user to log in. + string createLink() + throws (1: codechecker_api_shared.RequestFailed requestError), + // Performs logout action for the user. Must be called from the // corresponding valid session which is to be destroyed. bool destroySession() diff --git a/web/api/js/codechecker-api-node/dist/codechecker-api-6.55.0.tgz b/web/api/js/codechecker-api-node/dist/codechecker-api-6.55.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..16a5bc3bcb396010666077789a19b4080af81f19 GIT binary patch literal 63137 zcmV*7KytqyiwFP!00002|Lnc_bK6LgFgic`ufRIut)&>Xn#4`J9WT_jJgskS*(1q2 z-#mxI0h5q~F-33y&~D94|L-sAKpj99E&>!uRY&ZOOjOpHm3L(>gXy>6Cj9yB*{jp@ z%hNv%@!x1Pa&6myejklY&$C_QPnP43#$(qV*~XtnITj6aS3w1NLtX%-}Z8jX5b z zEL%SR`R5-$ejEpQnBzFP`FT!;N`HQW0k2Lk-d!3e=dX=d@6TVKU7fu@zck*wzc4;t zo*o$&rynlfzyA0N{d|O5y*|6Vx;XpwBl?B(Fg`Y3hu6^}%A$CY9zUV;c}myx)JSiG z`P{e*gN2dZhDH`9cc~F9X2vvL%m|cm9Vf;r4Udc@Tqf~sHAO!k(XLS2S(Ii;^mT=P zH-gldp&`SW@%7%g45y@%v60;-@#^N*m>BW3k=;hAF^i|GyKs>e=M^WViB03>eG=W= zW=8yD5hg~Q7~vv|vU?*~Ww&t>{R@vr`+*>`+aNQd)VN84MHVe?a3i`8!UV#bU~Zh^ zu1k|xEzkn->_a1%;$HGuEM`V9pVMyQ>^7tmjKY)*J&hMx63>r}APMt-%<-g;&}z`H ztHmr#jA?v#7cXc}w4w1M%5F(NWWZzNO`PC)ELX`gPQ#S%Dm(D}jGoe7p5mpX#zAyQ zK;s`_a%9Y+B%Eew648SEePm>@F%4E}h}zL!$S1r5iE$S!f}0Q>9vU}YO>gPMj*K6- zAzuF1doud~_bu+sj|gE?oEQgDbV!aTy^WTrr|alCyEm3$GDTeH`A zqg9q>!D5EaAiWKeFwJ|64vnwjBD{{KQ81T#7v{;2{O|GVsc{e|_^;&Yp?K=S0`JN9 zXtqLqC5DI}w1e>XFquXvn#eLt?xHls2#@iMTmpP7B~-hNSIIPdimumP5!04QcpWB5 zI3r)L@s58(L)^u)=sKDP_*Ufy94)5v72b-ktISx$nK6&(7HH?E_3D3Fi$U;hzKv+~q~#Xb2g3Deaa-;e7gzBBH^ z>20uxra^u|vLslfsAZ5N6#ivS|9Nc$2H76m-I2UN+DBoT)A()~p$iq`$Sfr>GxtckjYk6d2k4Qe5`m;^bS2DEx?%Z+OO-4k1kAS0GyC%U~CP zY#m+JT`&uc;Cm3wgRk@a{tI;J2vJjnfYX4YQo!g!PTdx97EMD&-pEdcGc-0LD_MrP z3*Mo8wzP|bU}1#62Y1VPhya&K{5_(8sO8CW87^kg@5a|~9{)JxyYMyiAXCI(02w|0AQgeRTH_Hq*1i-BYfSgm*#2?q|3R5{xNmU+^;S!X%vE8}n%K z4R74nXo2x$5!{7``JqRPEKIJ0DP|H!0*_>yTACEvoiM)Ur~V3&a?0bu6EEHYc4dX} z*ap%Im-A9K57e1-CK!ijR1(R1ipkz!s5nth{z$kK8KU~}BACx}vYoEJ-bEQD9=Y6s zu?x=}Pmf*&JP@YiC9xtuWz6m>xrHdGAgYXqNBI6Vybb2pMtrRnUYc=x<0)IyQ`#5d z_lzvZ*G4!Gr&$s&qUjMjg|ERJV=iHHE+Dn;@?>$H!^BNSD!c6|d6y zy>S;L-w^3bxO9|@TwxmBEHLel7WjF(50i<8no~D@9gNn-T7rNS4E3dTR(fWFQ*y^`3}vSTOi|yfOkL;w{5$ z70h$|`w=Je*^dYb8;f}H6F&Mh`i}qk)ATk-Zjj~_-v{&T{-^6C43CT`Ny6{(6jAaL zJEtlj8ZcM4!XqRPE)gP^NFAr=%hlI;G@aigOkK`{`y>9#GE4}sP4O>OvJe$FQO;+? z7)#5g5dnUVi3>d;OE{qq0V2D5a6AX$@6&LZp(~bV`E|q-Oo>W#Xe`NEh2y&mzJ*7| zZSXzBa$Y_mtVze$*GSTfjWnFkkLdr8?v`v?$|iHM(5A8p)`v! zgw*U%vgn3PA-D<9XH4d(>VCjk7L%@%I8A@T8-|uKjaNv5BL9vSMqtc?AL%N}&{F5& z4PgU8#wO3Df&yKvB5{~2kcp>M+2;LB`QhB>%gWE=4$G?9ZAgSM8547%DOX47P03Xa ze#a=&%jGJKU9pka@f_qNeigaii zFQZ(%ktkAypoh-{Nsi$xTHPHHL_$JMl-Wi>60ZjwGB$%P2%tOO$?@f{6YrEi}L!qNq%~z??K6 z^Q$l>vE6WK8mUr9g(r5M1mRE;-$e_AC`5rwh2as6V>pfaMB4ie-i(m+Bab{4Moz*k zh!#h==qzaQSV36amlh`s%m(BLafGfI=Z{Aey^j!GoP|hqIuhgwjH4O9Z**`w1=bo}JACnds*8dn8$eL2_(d-4aC%(XaA03+Iic2ck_gJ6|vt^j9RJ$kU;B z3sbCn$vn^4MlhS9zZ0bLh!`pKl24uPP?MW*M0P)oW)kXPl?qunX0vcHTixYytAsH* zVIeADew;;`hBr93V+3>fGGT+2@iioZK(Z?0AK4g{>jK;&u2*2W72E5H1W>Sj2}glC zq3aN*jI44I5?duP7ZBmObr0|wk!}QcQG5-|=7?XLYpgHcE0ht@K*z2U?hg$u81(oA zN)9WD3p24BnUk?Bjqpga%rI4@pbE$b;$U@$dIN~M%H_cH*!Z}ZhiQsWE&P2skERh) zfpM3DlZ4qg?u&AyV9*jwSxWO2m-W$zMPm*T_P&Z1=r+n3m9y|P1&kqG5aD%}dmst? zd7L32=E1=X=4(vUGIVcmu!4v92%cKHT82p)&O+i0Lia#86FLwPFNl#e3%OEslY|8G z@97o6I$8L8I2C9-ro3!JlJF)-h;ON=edPWC_t?0~MUWH`MnROG#h7+xMCumYLTKly zSB(fTxi2HQL&h^E(;(AVn0!ZuefrNhF(?+3#yQ&NQ$FIRC#tC?;XhXqbs-^^p2iEz z)bW|F(k#A1UTQR(Xn`zE({jrSL#cmDkwkjM>f)wuOz~xWhNL)`5nU6(jX^Q_r?#hRahrV%2YPKHm=UD-ku&A z=kL#dIy--Jad!Tf(|4!mS4YOX(~DQXot$5t{Cf8G?CS3rhu)lBou6KkD1sB($A^=P ztFu=h-=16;A3k1ucz=0H7%uS{&XIp13Dae~NF(ff!2TJc8Orz)ESE{VOd=$q;{{(E zD{L{v2*`=9U^OK+$248tVRa>^*inj!dm2w8rYaMu^4Z^<26S)62|-Cz;k%%hudF%1uo znA7`6vgk7NPc6b95McqC_UF-8EY#u2-5{d`b6?~`W+)IL#ZGegf)D~KaS&vg$x8(@5hrK-8aa=P$}Zl`6{9jM@=LU!hbd52(Q0r|=^D>xg_b>!3C7;U@$5%57Y&Ht zj5Ldv%K(`QkzBAs6Tc3k`6?j{DVSfc7F@u=d=Ll-LCye#z2bh5fy4Ch2;(6V(u>wO z+6S|#2ea=H_LW}KD2_CZ=qBVb4zzoE1t!PF$rP~#v<*4!MMIx(W-Z)`zuhAFUB0kI zr(vbrEf+Xgg#0&2hD8z)D z#mK(S^SK-G*EzLCVcF$pM0k++OI$8diun{(vZ7RS`-I2FZ}AVL4iSBlZ5ZBAp<}*2 z9NDs%3tkZ>cvJTXHs#Wv5h>+_6wen+JKUSXX*xF-33xy)!$@(8t_g)kH=bO0yf@cu zZ)V|jxR?=$+ju?$4Cp~}he=T`VY6N2_j#2h+-pYd$3dEg3A#VjlzLRQ9)G>3@&;ef zJ=y`jr%a;%Az-5*IXIIY$JWD0N3%p}&s8`7AZU#dIF0gzkSu{>m^* zji;YJKjpd#GEh*Ccb}sZCahHX6BO!W5%`3wpA zY#vlc5Lmb1rA4_W8-h35zJHMsUoeZxilx_xGlk)G{s^o(Y~;( zxy<=-?qvNM^57NhE6rz;BEYB1B*F%4M24Rtb|L#fX&4NeW*DRq^UTwo%RR8nO2cg( zK{CBXzH5pM+^zWO{{H^{v+)T}JiabETtAcc6isG=?j$47kr*Co9H0g){_^kz?ju)B z5H%o7j9SujaXwm5g%s0AhEz<_5e)$GS8O;7B8GEbJUPKes4xdW zc03xH#04cxC`bexn%h0$H$u1{Vy0Ma$fc^wJSq_VUwHR5oRQcsY;P5PAxx%_`n!); zPlz8!FesDo%Dk_9NF%ofi=F1`4#sLk)}An=mh25YfY?3=4v!2Qxj7IKv5^5?M(*P$ zPtF#Mi(q>vx>&>mi3t%7lVX8_Xd*n2hHVHo_^_bKJY-{DzUF`V@bFydqX(G;E0FkAJL^D4j(lmNwU!_G;9MD~OVjUjQh%PD% z0ga5wAs3DE-{hTof}%U;(KJg9#kRBc9WmmRgjo`!sORq?HQg?g7~K&13zzn0VR&c! z2yonor~^?K07Vo!HRR2Wub)U!k4RJ}a?XN!j1dt}LK2jgyO0E^q9=INmpOYqct(DC zcK8B+zskRppO4AE$+y4qpZ`j`LqvLd8&1E4$(LXmeZdj(vo9G&Y;lz1pH)p!OEfy2 zUk-T}&sOvBIQ$)vcl5)*{~)vYEm+Lb+u&Px#^uve`(s6`Tzx(WlAH9<`1ccHVm_wx zOi!fyX}mNRtNHvz-YN|-AHK|@`TPWvBcVlfZ3w;cf2;cbua_?|jVDi7{`P8mVbz5FWA9Qh?n$E9$%qlU0%Kaz&HA95(eMI15JNK+4R;p zxQ=Ed+9_{24bspUKhKpFRrkNXfB%+uUx#IUJARGhdA<>b@rM!4(@^M!G)%umOEN5P zSzZX8tJ!U?Al3~u&slgKtmfJCI&gZ|WZXGj%*aIk05Fn$Ou}rHEMA~XQHStI2?|Aw zk5?H(dGa@DBO?7XsMBYMIX$a7{`}e_(oolq(UJVT#Q6wU=^5O|v!l|%9~oo1yJA=P zcq=9YfB=V)FT8@*u|?Mr&bkGc;lah4m5VKR(rBTjua{Z8B%jOp0-_|MUMJ+aL5er{ zZIotZW(+k^apF}PCTWrJ-X!sAnKogz1RUmF{2Rco@^R_jBbx@AsnF|@@d?3wJ_I=^ zogzH4@DUiAtqvTUd<6!_tg^JVB|cfvLNm!uO!Dp7<(0^I(Dc5f(Z9lx@zNN*kbh6I zyQO8nkhxTjY@a?CT8C&nOYVktA?++WM`>emLk3MjjzhkOxIsS2{5$$L|BS3r2Y4Eh zgQtN1_=SSKF#i1KFOhS|n*Upf8bVOvJiK#-JIdl5>F*LoMT;A8>f*i}FIVa90frJ< z{88Yt`7SWJv^l{;dH$a2{Kw-00p}=_D6bHuqkjG;X3p}xb5)H;?jt65i zM+A=`!q}|Fgt4VS1^l4_E|4wa$S}4xj13zW@2co@H`%V#V?nT!`5_Z&02W#&#bA(v z;DT-mETwV8m5DYADLE1e!8}~tWVf^jhL%wlCSyAfha*j8Ixes9_%=x2|5$uTVifCp ze?Z_5bMzI^gLM2-==T%(O}M0m-A1@eJCu>>4{+H6el`?B3!(!%B}m?=J0=1Ho|D<_ zoaiO3I4Fl56ltqCDcTWqRF3MXocyQ=FgYuy!C5)|o>f0`^atkWc@xc1;73V}23n}3 zX!I7OWWJgPi+A{eY7;@4^q>%D**8d>400Uox{02o!;$O24(7Z#7R#0%98G%xJL z3yHW~VmUchsukhQ@I%G)WJDfzl2+GAN_aom95>9lD=uI+&Ry)Vz`14G$rvC&ZtIvI z1}QMUTv>#8H$5jlTs!U!kz+P}B{i>GgaD{midnN1p@()00th`@kBUpwEr-J?R%6wy zhIjBFs&HDR1*bJ`B+!f0)QME#L#lEi$zGgy!IJlQWPB<(c#e!Zhff)`2hM8#;(etV2%Kf5oWmS{EBG1s2&~C>z!ia4$yz9V5#~7eMVRB<7cq8;Gr}CJoe|%{d(#Ab5$N0Z zU~WQwiX5ieO~KB|wB=otPRf^mCj*LZAJOq+dc~gdUg}*xhS*0AR&@Rt!i-rPdC%ot zpRiq@JAtf`^!*Pht%%YQB;Arv_;5cP zFG=6kKBafT@&O!-DtcgzRrJ7eAP1w8AXuh~AXuRD*>V~Z1l(~B0}}+x5}QB-0WXua zP!a^o%~8{GbJVoP1T`(Uk|0=~njly{Ob{?kLxNyU)C9q{3IqWUs3Hiq2@?d{YEBSr zekiu3AP9KItW5<$u#P}y@^^4{7$S~6`5Q&hC@ zyfeUiYx{?4nm~tmnUC;^{P0=6@d_`l?JI8nAIj~JFRsG%D_`(7UV4R-zJre*LV9yR zq{o9Quzn&t@T>gyFy2q9@ZK3oPJD{^lO~8i>5ll$s0Q(!F++T3RD<}=2ts^kT!Z+| zI7fVE^ojh?4Dp@u!y|rAp~Kj)^or)&E{6>lJ}ZMA=JD5HF5879!w*ep1h-H}K$N;w z7-PV8kYNUzXZVA@c@hm{^_0Vw#iK2UEW=;5 zb*ZZd>f@`cay&+JY&?8X1B$ng9>;d5%8sd0l^wUR8W7oGz1gu;db49gdb8s;)SDfy z6gw`gH#@f21k#%wQ*5D*?ehj!DD2y-K~=@zr{>GlBJH$8VrFQ|MasqirF4 zt2ob3cp6l}b0+(&;HgMw#|UDvw_?bTlI?Nvx0-|2io!+kvJdOyD6zS1pp9OF(@|#wFGxmr6suITuXp1H-T@U zGPt7kn05@I$F|7Gf71W$!GB`@kE$dH>*N8c%>Oa+O!Q68|KXaJuK%j@f2@)Jqd~q7 zD$JcGNu0bwwY6Si>i+EY$<@iPCzq$sjOWG(<=J|6_WtzZ;{65sVT^zH%jx;)#mQUr zgNc7Q`FQo)m)ED~XQ!{xj~4#%<2m~I{l(e;M}D&^y1^?sW8zGrx)+e zE-%mCpMUw^v(vxv3Dc^%Urt`XJ3GhiUHSJ{uTC#7@dr=(aC!Cq0#9-5OTXvck0-($ zU;lcU1=%XiXZZeq_@?4{o&SZ;_07rI+tb%yuHJun_5S?)^wkxg?d7ZAPT!rdZTmv{ zvA}QV@A+QyZ~0J;`1{%U+0_?zw66H+2aGo2>|_YgY?RL#9!>lTjKvo$wg$)Ho1j>i^c`B4u#4aedDcMnNS;DP zi`y`Xvh+YY-lH5S>~36O!F)8 z(BabS=O+-aoX$~Tzc?vdcQ&Q2kZZ;*Ea>_QPGLK_+76p5(Gp{hPf>q_rGT}G^ zL{Q`b+u4kYjFT+@>hu;=KW`Tu<=;orP>LXza)J>R+IH+x7rmTWL0D|9M61KXPWWHIu+r*?%m@w#{+T z{^Qu5t?fVB{qq){z>tvjp5ng(Lc zsH<4h93_ep429IfOD7~Ap5lQ5Op!qF5(TRciDM{`LSh+-5=)LPTPdvIN}%BkeR&sV zxAANZiAB*@OA=VyiFH)~DmT*T2MCnCV5B zQ3kKL$`@U(`$8r8z`-l714Xa6Zqx7;44(sm0W7X5worz!xa=vG%bsGn^eL9>)r7J5 zsyG(ESs+W!w|N+g{}A;yc3m25LJBs-Lmo^nB#|7WZjl^09;)LwT%LmzhTKapSSqd45jHr5fS#TxdYZ!Jk!?xj8ZRKaWMceB#3@*D=DS@L)r zm3aBk9c0~I@rCwpMU=KqWj@?uZ>-|<*CAP2*5A0{QpUm!TPz=mYkAw`>WT|DICt6; z8>{wjw~`c=VS?NuZ{wRt9S%rW5-`oHC?=pUL{Dg9EED>Hxn-dNz$>Mx6ktFeEzD3o zrqDn!CR=0yrZI0W?RN{VTmh^3ai6tHB<$MKf+Z3*?n^C@Zn)n!Yb=dbV2S{FVthqK z+v>OqhwE5Sgm=)6O#*aJS`0)qn=FRFb$rLgJJ>!Zsa5GZRa$Jl6ACkMzFpa}R+Rfv zlp&_aaco$wtkvHKxP8Z>Qm^O_yD7AMtCg@tOeM;6JWs;?oN)hAlr)| z`|JDnZySlRzs6!nk``ijPl&C%Km+rV2NPxyio>ET#%V3c4j!2NHomzDXJ?C#DY~8= z1M*9qvw#uR)WvK&vgYTBu!@rEDUI z9vD#DXdkI)D-`Lgi=|Je@iJ_bSpqjyFjV#pVyAQj-m(olD=wuSFH=KnM%HJbdVa>k zvauacSWtnC1Mq|5XhmiqU0Kcw%D23h5g?F`!QvQp8>!}F$jMV)Z+GIV^@L$_@Oa7! zQl8y12ag9BB<0nVlJZowq&!z$rA(cG z$8&W8p0)VdCN!M#csr1A2ba5Qm~F@N*3Y)%DQhNqP_`XURWk`)9NOQmrP>kj1J07~ksKQX&=u#EUu>@$(4YBo?d00_J z9CXKZaJgt>fv3o|Dj}BCs9Gff?D$+;=%L+$3LJ~A1!8k`%OEfcJF+F(k?H;0atm^f zz}j8hvxR26{m4oTSX-9TwxWS;MZU^brOfnZyaFSbzHihL`# z75Nsk75T(gTF&caH9ND+5>uB@O(DTN2BX=wRVS-J{(*{<6-O)x2>{h%Tt`Ln z>Ua)^D{vgl{ULJ`!pp*tkJI4v01Q-{ZQ5kqr<;d&vt+~BoviyH4y?z^wbf?xnfFWB zsI%|yefIsjYqtS8LTBKAjLLT~n{m@qcfA{>Og<+>TKYXo|B}S3;#XiKzQtnetv5ZC5wC@$QU$CMmXlZo`6x(>dK9n*l2c@8a*F zwqa=-*5++kAnvsgIBMXv#Gx%&+LEO$Ssf@x-?A1sp0;OcdzQ9mZIS4!OmUnuC*Puk z2%RXD7G;OctLVF`yo!@i+q{YsD6isV)Htu=gk?>fjKI8#c(Sa8GOyxfoaa@XjPtyT zzDx2dPR7-F6(^=5uOj)t^B5E_rJQAvKtK|+ItSy#)HxU*MLGl(X&a9F?@X@6T#9d) zZgFC*pKfttDbg)YEGXUL#1e=f`2o@_bgspR(5M#S4~+43p2S(0PLpVv$*x4Dv?n%) z1*>8UK(3OW6&Bx^QG$WbB&*O5+sRA9Q6IK~>)PI(jMq zb}U^X^srqtRjczYlJ1q%gWb!yS2*}Cyhdy98_%y-rI+gTdi$qOs_)uh%v7h+d%Q1^ z8>v?rYScurA`M|)$G-tgE+2unZ29D%lMbZ@)r_rAH7Y+{tw43a#9?Cfm1>lHO&Qe$ zZgw5H#2_7&CJeiEWKwHPd-`Clqh3@6tT~8|(bJmFldiXCNUo>j^B$$f^J*T23q(Z2 z-PtuC4BjkhX2H*btL|ng#Sz_YpLQc zWOmKDQL+7TJ~&(5q496JTjKOy7_E9;gg?GC?AiG9OJm%!drUM>KAin;n9#RUY>;U% zpMMRe-voJ!%>@68P3?eP?HtB<386g>FPVkcxG4EwkMUmzhsCq{MD8W&__H{p5aIce zLFmb$G=)L1jz#tcOQ|KQ2u!y?+e89%d_70;MTak1 z?sF1OzgO)u=H*9ssO?dL*UfjHUm_7rNUP7rfBqw#7DmfiI1jTBXr157yMlNn9>D4U zeRcZb>g@fwcujw&`<}C)ljU+w*LwQ^7XAFtR-Bjmm zcj^QzKSeCu6egvb65S!p!4b1&(44jA8&jM))HGiUYlO9_cC6=^)?dL7=)x>aQcahe z)8*3U4NjRABX*+Al}FzzbuNuG41F#QvrQDbarnjW&GpU}f@%&f%e5=OP;smLCjU8&Adv#Rx2m2~Qlk4;Hv)f0=FCSibH+%CRpwWWn) znC;r|KHJ#sk=F7tjL-*w|wu$zuH(AsF_2_@$%pV^QD4UWwo@84JlSrrWGSm)<25dptK(cEaU=8q?UD-nw3iQn)gt6B3GT`|=C;!vh ze;`j~`#cEhW6{iHZDt~#{MH99iD)ng*?$u!MS+DbHYZi^n`6y?d67E?=_vtI^ub$YbRJ~mrQ+r^T(vCiq9kux+Ix)evSko)J zlLp@j!>Kgm?PFca)6{%xJ-#KM`{QF;GGg`T10|79SkgaZ?;{4R;KD@&hCbo7L5DVtE7hUOG~_&**i zvk;N0l3!F-K>LuyXc%0jFfW28{>ISkHdxH&`9l|iWb`NFr9uCC@#K#u75s_yD`pra zzm>0rAy)UpNFmjFl&FwYw(rw3+UJ*N#-ELZ)V%y$*mHHmW3{6eaTQHH5_iCHSO$rOl2i zDF)vrMha@m{FT>Vq_LRmbws7Al2+hpG7RgZmRCcfBNS@PuTini-SIqJ++?>{(i-LH z``6=ZhM#K4uhC*AH#t0{vd%GD%mLewqNpX(-!Jjke{?N!^>0ePp3}bm5GtA~(d}uW zv!@{9U7UV+`}ZS5#5i)X^EpH4SC4`)8e+llh+iHgXu`Y2d!gd$nkAgYRdqcDG}#wI zZ^P_-N!l(|M`!B5HG$q@}HkERqoj#`rHrtu1`kry#K4=y#HVP^K)a*&Y&)^|%9?0BF!|boaBHynQr|5YeHnIxtX^3wt=okwb+@DJesjET z?Y*qvbq~bh%4I1x!s9w}Ddi2=AfH<2+H5VSS{Hw}omW+tbnA&>)mOG#lWUa+Xvw;O z4mQlc)Ro`5-^OyEnv<me*#h+Gf*hsm$vB+Fn&i zym{W=&tZ!d*Sn9w<3=>t9iTx2JrVIGBK&VW&Q)LaXF9# z096v~cK5`dH0NKZl4EnO-+9lsmgCp2Xq&mcTokwFN*9oGuVeuTtv4tKbi5Z^D+8=? zE4G>c!$l+e2(D7r$Xq9`igns1q>2M=GMcJXH?m_e1M5d~^zJn~TZB(_+wbj-oT^#R zRtHV-dc%7hFI7U;O@>N!!S?NqlIn`<+svWWr9FG#($y7B*WlE0$1S*Z0dRvH8?N-( z?Ow@!Y0kY~wbka_dyReHS`OZ1P20@H3zekzmy^TDyFqT=8T+@EqpyYgTkdC9m1yn9 z&0bZTc0Dh<*mFB4y9BveA3IdEwX=gu>`e3aHB0BVa{sP6c?J1hz+liW9_lFA1U zz_4ilBHyyw@U0xahJDe$rLqC|7g|GlBiyY}g13*`O1sobZ7)TUTdB5dp29XOxJ{R~ z4F|RNe$NF91-@@S zOG~#4v+ZeGx?h)VmM4^To_i1_fD+feND)%Mq5xr63lK6~3)z8}Z^i#)HC#6(Sb#O7 zyIoPKD=ki}RkgdhB+-4>w^oQ~u%vC4AEfCYtat7AS*`#Pe}f`L*PFAo(!@IVW}5|x zs*=||$P#eP?_R`-V%IGsiW2A!2^Fe3+THGHu{SMRtXt2#xpcAC-fyjd(QH-QEMpW` zpv8>VmtcdE#u~S1YlV$9@6a~O8_GK6JqQ~>iS}M34XNK2o(~yryPO_iS@Ui;Q0htx z5Nj2dZ!SG_-}S8(9U3fYo8<;+`j6YK0pj)sg@Ue^V{0XXb*{#i$3>Lu+4mC;K})*# z8U;c6Z1*IP!ff_2pj^+svs;jKqj`FZ@CAA2TSYB&*zIi&R;XIemd7ZNsqgngKN(Rs z8*b1V)3-Uwpc9^NGgD@j-TURqdAB{X92Dxl@N2vOUh;=x;N7r) z%YEZp%*Oxpxc*xP({I5|`13sa`m=BaUjIt!2_6303 zj>cox9ofd8Mq_(yqW|5*2CUL7Nd7b$^{~j%Xk@Ve-I4!({`twzKN}~jEWQaBVG?BF z%=mgwFQ)M-zFS7~Ffk5B$K&zw=W-(g?~X*!uVVMFZBKO`?K@Epl+V7($Gk=B${SVUp#q&7(_-!eQ6}&KUYx_ z9y}wzJUe`WzhC9wGfJQE|B!Eg++k2n1hWz$>Z;5wQSJvMJS4bspUKNqB4 zMfZq0h+=B9TO&wbGC)z)2Sr1&t?9RDNoG}&xP*1mrI@u#IdkpOI`aF+&+*K)4|<)L z)oEhv+737~yX)!K-}U10=MV#&{w%x>R`cw69XKU-@`Yt$_#XfnU>}n(TP2GZh)%U6 zI#}cvsg7tk6V(Ed@H}fU#xvO(R%UaEa08zhVb2d$oPN}l_mT05^8&P= zpJ8!XT8ct$FE)Wh_wtTNzqJ!FsqwO3cB-!24vRt<)WiTxL^tk{LqERi^kvn4@Nqda&TH0dVROo?$9fy2JaU(uu-Uj`~ zn_S0AL2Jx1tm?}gbCaT`ROC8HDs+9E&V zA_~ODY9$l`R1i=Q(K#|kfb_vB03^^z7lXK*X&>xzM_HIy?!<@|Qfrwu78i@&d%XXF zob$^t$?gwmCoHO4Kq}h(OR4uy^k;$g(O+P<#2*4G6<04@;D%Bq$g#N=qGb8CiiiN& zNEZ=r=+;S@uj17r>taORMhj?-SjE@cLaKs*v{1F*w!6{udgyIslpwzL%_sRFdt>+6 z458Kfe4Rcow%!S4T|C& z<)D?LNyCW!S8>bI?l$F@6@Z#!cGATlj#)sW0okV6b$$a*Y&&>d6{h#fcwuhQ(&kEP*DkT!&)lEX050W$jDC?!Tdgr(zC^N zT&Ji8Lfds7Lnyf|FaXR86%7H72+x^&hfYf0Ra4os7ZOzhKnW?Dvi}M|&HVfHb#_4O zB0nv6p`S2p!xM(>5JakOa<5`YX`q4-QbFn&C$Hlhb^N>x--N3J7f8Pn*xFYDo0Fon zIi#OhdvQ~DA>bZBf=+UiHk%9_dhd;tq4%EMHuT=Jz|ecoZX9}#dthL2=slh?Z=(*q z_Z${_?>Q{=-W$=-d(Wu}z4u&I=so!YiZK?;EHs1yL-$rS(s{)ztj8O}e7?qA;HFe-pHlW!`Sj#7jK zVmCX!$CIF&B-tsE#jRDov=5-Sd^>bYcPQ!OCP|* z)INaye|)JVb3@7edu#unSUuSPCzeY5pID&%e_|Ew{}W5w|F=v8ZJLk=a02X{Wq%*6 z;+>KTRlsVQv1j}E#8%6UeoOoK#Dhgfzp==OdthL&$cSgm+f;~*6D~4Nn8-M>bCGdU zEi&4pkwRo7U)tKo?a^pE?c>_m+mqpaPvG&O9Ymdh3ntkojSRwbJ&dX+Bdo->w z`=TBPlKi&A7-{aLF;Zs?+tZ9;!1;ES9ks<#=MU2+td4TbrtDZco7f|@>b#DwuP^Yi zr@sa1ZAYsPuAYbB!_v1|bbWnA2&`PO?pw5c9cCdO<}wSiRayqlf*X0bEj1E}>sN8_ zLKBdCOWO!fM`%+$DYo(Ogrv{FWQ22*+QWtLz{6AsP0F^A2&KRh*u@JquHGbyVDL4p~%?gC^DfaGPY|_WbCL=1bE;1y>L)G;kJ>UagzVUm;rS4n2>)^_<=BbCd?8bK}}YgFg*u||Uh`vAJQU=~s-^YvyS4hbHf*(O>G=PoSEI#s7A zIPL@x)me(Yf+wnU;#u5@Cv-y3RprW~qFmnfFh^UmYOrI4%^`J1nnM-sm6oY^7h#$5 zL|T>^uC$GC%WJ*4rPdA$bpax+-JIf}U8#^~s!-SD(S{JLD)tZ@2SjF5iOeR8M1*>y zSZ%7Pm1VL4hC%6q6^bDNWV)(5bpit(v(tgGP*J4nTzM2JX{h2rk+?ryAMGUkOF7Mv4dlN#4)?8a3T_$_EC%hU8qs^#^O06?O zx6==b7HO)+^cY|5kfE!VeYQcSR8}3XYw=k}2j2el8j(={=yf3|bxIU=x)R$6w8@db zObPG9@s}8kWI-wLs=%UjAp60}%N>&T%`bHCo8MKfWsu)t`Uu2$_raU$8(o55IHrx1 zPdZ_Ls?vK>A;HX1i>*|$q!cbJtDgj9*A+?l0;Lul|+km)Fm3AMDU?#Qr@Hu z6LfZbqD0{J-`kq!cXmvQBO1n=JaG;+oOH3`RdCA@Z7c5^aLGE4#?b@}#Qcr##{<;n z|NPZ_ngQ5P-vQ9}D4|>f@NWKt3CNDc!&1Zwb`M^^8C~YA(|@b&+FXt5KU0Nm-K{1T zzG$IKt=|>-vKOn1cXZgoqxlwl7|CqCv<8JxvEPKth1_IO){rI7ZrP{)C`wx@ky%;5 zbhFXJyYu}Lk-1EQH?O%!OL@YbLroc#MHo9PGW*6FDIWQ>kW!ZvPB_2)N0U{r5j`|2 zsasT@P~>y_&YR0j-s?Q{7(!;}sI5vf6q=?M4Cc4k&**97xP-{T_Q`Nsyxu-^RXutx zyeewK5&>u$yyyRjxmv)=xbY484R(%AC>rq%>w`FZQs|#QbFguB%}dx>IBLUj-yJf4 z&dT_@mVxXHs;nTB?4Exf*WPu9!?9gjgkFBljZu)^2~~-HY|0Bd=i&dY-(KMjDD$B` z1G`1;be|ptA?sp0{;Jpds~upkWcRtR`Kl|TpOihgxZ(|kOfI48R>Mx@AQHt2kGC{* zQACaAkj4vD#l(NlcYzt`y61*NhlXLVK?Ll%{#!XZY;kO{q&()Z{VQE+XGkO-Cv8Ve zV4g!|7>(y8g`d-2QmOqnrDm^90l2~9q(ZgGt8g*ndlvSDO%C=1PS$D;#rKR;8N2z6 z@}WNkUVPs(GHJwbPZA5fMvJU+R_<479?8r{lWgLUt{C~4^A^d7nfOqDKY}1Z^;IPEqtk>GiMm?#%hryn%O{Nz@sx+_8 zDfHxbtH7x-Z{=GJW&?UoK$=Jij$(rKKtnMH4h7y+BD4m}(2DSLGP znOB3!!6z6AXcr>~YW~6M74=36Xxr#UDPma^fJ1ya)x^0==C<^$t;jRfRi7rkG`#!6 zEp#^rze5bnj`nEuiS$@23oVAp_C|J1d~mZ2%9cr+R-c#|+z*Ty>w0M|xCF5?yYH7lc3V}&98 zul@Ogqer6`w(YWu3k4dGpgO25E?FG$ur)4whZ)R94y`KlEtTvW$c@Dx<`gak z2*ZIjo*icwLvsL;!TbTmm?+AHbdQx;J_ea*FDAQt6`c_W#^4F7W^vpW2ne#e;k#fZ z^x|8UL+~F~(cf&Wt6#ISzNC@$ePvg`5cW1QLJt1J+@wqZ5z1l&ewe}2WI%Ka-@+Xw zDqz3t$?69GVXME#%EDc1jm5kh&F<}e7$(_?&T=~^pOi`#g?2Llg>g}q4w3|UuVp`S zP+`w_KlvSRN5Wh%v|8!wo$l!1U5=iIEezuHTmO1m@q&o{*o`64$9 zPyL?!@rF;SdmON7;i8Ui0q%rIseMQz8_W-KS3O@O@W@2ax(qVEepeT+OR`{Q1 zqtaNdj+w()y{qq;tS%A5bQ7a7=c7Egne7_@msJPEb@bggWpMSx{L9IZ8%>Oui-HZ@mVWDKB0;UA=}c$|W(D zj833{ANoNoH@pCA*$I)!+tqlVEYI8m<##l^B`3QBq!-HgdGqIV>H0xO7+B|De|bW1Qe<>-4oX^Sb~3 zkNc!q>m^m*OolanXthWMdt8Q{zV_^#aHs4&mtO`w= zD_wen;K1GrPs=}E#O&IY+B`A~{WdY?CgS7n8EziKZ;}?PLokV#LRBz?iAq)4uKS#G z><2Jh&8BxCX38SQw#93;;_>%g!wn-ji40(qI<>B)!d*MsSPD4r%DO7jCAsa1;3{z8 zd7uY}ix$tONmOpd&0sL!7nQby>hM5tU<>bcHKvp7T=?PX7~-@&&CbF|mG_ye;kmZ-E{kbL1q z70BTDwIa{u1GxX7FzR2bi6rF2zgJ2m0qJunk+IY^vCc4 zRU_PU9hdsOkO|6wm2amwt)m_Y{VH$P(n!phu=ru(Nx*SXe#MWf?BJ#I_|NA+gn8=I zhS2Gm?ksGT+!*gDZG}vraP~3crF33%l%xX*mW`jcEyN zNfVEJ4|oIy!!Gpztv-|*B`?5;-=m>EryXkD{s&b~uf`{~%r^5qrGY=Sa^im0V@Wji zZhg@p+s0bkVV`E364a|bUSw`?OP$lM1oU&Go2fsL&@I(YN?Kx-lO+4s?vj^dSYf43 zCI^Q@X_<-R4NrzM2TqcOHE(h2WfiGbgny@smse7@hB~JhN|VLB2%E_&$VNu_x?|M^ z6^Lx7hqJR>(v~B}7!F$ZW%`3ovY=h#Qz1{3U`4}?q??93M6Z%uUTD}d54*AM+{80f zQLTYs-+a|GdDGmWH%$2u#Yt`2IjX);h+9+zh^5Actu{}*hYJd1S{!#JS1%7{mJ+`} zi4ydHF~*78+;Zv(Gpg`*w>nD2p`4>J9yoE2ZAv(C&%E2nY~SwG-284=eZsgu)NbTu zrj|0hN&%xmEK$XL0)Sbn^%Ar-|IRxET0MBL9UAQ*1tB4Kf!2RshB1C4ZnhKOKwnKF z2=o#>OPH5nBwDS)Ci$OV6k@tsKKW|gjstnQV!~s8b$KF9R+eGHUH^|LX~C=Toz@W= zPH0}r_LFGrufjwP4|kufVc|9T1Vss=IA75YQR{w{tE+EdgdL`OF!)7!`FRahOcDl7 z{;lh6B!AZCL3>IU*2pU9}MPt4t>nYGDz>32Gri@=`q4_Fbi<-DAIaOFto1lcxk zH4)AZyMLQQe4tG2;kEecv?fp=&1G+%@?|Kv0n!n_5ng0lD_U8^uCJGB|1))tAtNLr z`RE0YIaE0&wBs4MevMuk!3&pL%l9od^)lX2N~~a+>Yvhj^z5~7yoR-`jGBfe<4RTq zVKIbWhxX0szdZoI+z1)$`<9dme6z#YiY+Db*XADB+NBzqG zwlKs6p!MDSyNHV4xg$jQ<55RzV%mct)3})hH*}{Tw(h4KpYUge;*smjd{E70m#30H z&MOuYw&}UJiX_v(uvj+A4=9?lWMdY&(^~XTi}qk~j@|=Q=hU_c)jZ2ubG%V5VTTm1 zy$5Lquu7d|3iAH5JC1Rqx`-}Sqk2KZ@{c@55$+6-5MO=JCn6Xo4b;&-1Ib$kIT_q= zu91y_hT5lBzP2bCZPwk>)1Tu62RTB)-(3{r{-L8l|M6I;jgIv&n{!&=Y#@r4c{qevFTU zs2aRbrBAqP7?V}?I7du zc$>NY>xESo*Pti4#q&L?xt%t6++8Di1x>Um(>ZXYfm<|Dc)bYe^G}<0z#^Z*EO88%K_|9^ zP7mHj6Lal!=}KtONDc_HlzD6{XZ1zXTM7>}lx6TRE-X^mt??oGa+8_+#zKyfjZnK8 zjZhsh*$Laq7G?qQnyX9?!|wS4Ta&XfAZ@G65RkTOsu+BuW?9%AC{hw<a(^x;472+aC6Z0hxr+%+ z*hG-`Upsq(5tx3f!B&ruZS1TDT=b}pgimL7R*x@rnjQ2rq2u5J|2_=z)s}*3~!#>u&7H+2zXx+7vnL<}E zCt6uPO{k9a{P3I(pz3-Yx*F}r<}yf!!clJpWzfRd03%t4-F?x?tZh;0ytSGU(Mmmc ztQYyN_lRwAmgbO8NWPa%&$t_bbmSKR6&kATwdc_6>Q-dHDgn@Zw+(G2dS&9`o~kX7 z1oD=CO*SXnOow~Kdgk=#4V-kVCBwyw&JRp54hW2;1WFM5W8aGLP&ze}4ZCJeXVTP{ zRMJ1Pv`GiedPQl>I0i>2_KtYg`S*-jc&G#Mo*TR0Vcw^?w~8sb`kiC6OeuE{!;$Yl z>NYuHZdk<~Wk*>enjlE5JZy5^8S zg)MrMgdU>4sZ?`K!&vci4-qan@&TVek9KXs8}@sFm7b+_j|8lnPW~)f359I<@EkHcE`d?0FO zvg(F|ON}Rb(_YMJil~{eIo_=0*U-^Q(fjojb=2`dx8k#9 zSF$D781IvqKXVD!Ef88Y%P#)bV|tyG>)B@e_RB>T;p1h|I-OAy?6eDq#-@fWl;5gt zRTlyZl%FXy)FUL)2n_|v29#q!QR_jau|W4UyFeSMP(sN`1VHsP+p7%o)7x$Q{XX)k zh1cn@s55hUU_(pszTHx)lci_p?*y;{eMXlAyb)OMzX;3jC=0KAUd>B3Ca8-LB05}Cc zR(2Jv0h~B&#DuJ6#na&aA;M|x1qVpb{g+;vU;YNiR4*RTim5U;=SQq^VO7K`*-F`t zUmb6XWEh`ARQX+8Gn)|B_6 zb{I8{n_C9@iCe)tGfX-L^6)Qcsm#%8atz4zlgtEJ_Uq8hB)wQ^%_1yp}-55x_JJ;p2#YBOrz(ahmlGirP2smd-AR{};7nSu8M*TG5Q z?Csq#R${rM4rEV5&>KQq?AqD%eDh!0R6-Cw)lMlcFEqMi1V+U*D#|=BYwLa|twaVF zOhOm?p3Q&XH?^!y1O<4i(oRB;NKPQTVhmGg>tmFXB`I+Q4$($ zn5PDeGPrF3RlQ`Y>RF7TC;S(LalRF^B-8ojmA?y!GPeJrJ2Vb}Xzq-5(*#v*-^9!8 z7#Ovqeupt*L-|aia~ioQ5fEa7LeWY>A8@F?sLAGNQn>Ck@|Lf1YfbNBYqCM#P-#TMS{nw- zBw$zj6ib17HJsRht{3{nQqNYrEE+&xz`iPduKx1fRx-tYU?b*B87q=ub;{T`xjD`m zzO(qDV%UwJ`C@Q+liT$XL`>=k(>5Q!XN3rdHz{Ju2WH;s9HEKqX(|fERrL2nqKenk z2Wzc80`gt+qlRd5LO1)rjb0cIREGHJRgx|(O2M1kS~GlA3j~bh9UeBBn*YLBB5L|& zfTDrmG@*QZ*wn!jZqv6Q{9jz@{#NIYI>P@hp5t4ch7yRTq9Qn+8JN42QQ~J%nY(14 zj;}3k`-($3CVD;xqdTYb8VD?}C=KF4AX(1PScgbv(QWTxR^7~h*@0}70f+jv3>x6_ zd1}x|76P%4WSxHIo%fI9P6(&M*m(&sWpzRQ*YvYA#%ArZ9gmRZ<_Ha5%JF`XAS67c zU4-{yp)|CKOwq}L>~Ke%_$vQjOzBavWo;_*Q)@}~*gKARU{}avb#VpK9e-N;BL35G z9&Btu7niWFQ54h9Wte5x{~}wcZP7VW zvn}SIwnOg1o=ye(tRHa44(rKVXo3FyiFM}HnlUt&aPiAOfMmHq6Zsq>IjR<2>Pv0L z)x*vuA|ZU8^JDF2M$ZLA;GEthgd3MJmfXy#v7zTK#rU2hBiG+>wy4~RM!Ij z2Sj3N!~}yX(C7@~Quc+_dvp?xR$z?E*^$N^j-hLNZt|)ZTKH%ox3yjpsIe4q89Q{8 z%_rO?*eX4&TEJ*<+k@0TbgiU5AJl`C4^$(9kWTpeF{-A*8-j2DzH0{l?$`ct+e(>2 zI_`OlCguI!hY=@}xFz?jWz*!{za*luSU!4(Ty;ZWr~2GjEDksAHVZ5S*qb(MQ;ehI zLjC)@FaJ3j!UmQup}*hSq_Oa=78Mq%kd|=)TVUyXt}M04;L9p~faF4LEZwSFMJi}@ zQQ2HqMl#thxT5r&!%b~P~ve0Obb%8*epB*fE>Nt^xXrlpfWvxBHBAMB5o@gUpe6H6lSS9NAvdX|#%T78u2 zkn@~u?pPhL`&!B*(GWBhV94%l-0Al+^H2yx4vC$}j-jQd5Hm6IwlGDo>)h+<@9(5my%Q)+WhpO0b6|tiQJyDpj@lZySvzNIsiB| zDdknY+NIHTwk}q@FUqOxr|hly9~qP?9?k|AT@(?eu5FjSFJg)~01+#@m<>Zz7R;$> z{H2557p-)st%vS)IX=~(9GlZ;cch~jEBhMEHt)Z`>hpazz#Ohqsw>m{=#YUyHtPCq zBdY%Dw2ulxWZJpsPc{&yrV4rL)J0l0jERslby= zWYadmM1sIU*A9~n2_V4}t}3c;R3*HCI;w9aIPGE;XV7(18Gr6q`$k%9;3}lU%USXo z%TaRK^rMp;XFZ_t17H56Yc))I-Gd&|LCBo{)x21A(cVPuwmCG^E~ z?N<#aS4Du(`&WY-k=h*((pg0NbWS$in&_^lsCrvspx)5O^18>L&Sm4HNF6)s!|FtK zIr6vsHb;)=oPXvy!PTz_I1%>^L+m`un`p9pHo;?>w22U)#W^pgZ9hdA18&Qw&Y4AJ zzb4Z%U17^!H~J7#id0P{ZDA<~+d~2i zd10w3HJsl?hOorqLOR+@MHA$x#Vs{KOaK9?W2ti~Zx()YN_KVQME^5?i?++YkD|Rhq~6R`+7;sVrJ{#xj*i%SCk= zVSd14ygRz}<20x(jBK~x9bX!dIYbh5LV+$7r zznE#}elMd|51au{hi|+ciM1;l7s`Bw-ORkimlF1^mu56tV*g7PeHa=$ldK(|xq)4Z z_$5)9rBt^&arI;`_+Mif%sF_c?9(SE8+vWsbJn>si6N`lcUTWYKq2m$UCIR7`v|N@ z21IRBzv2a=%OrlD1v{9X+PZ@siryvKt6dgu%M5Us1{`1a*z1=j?GINf&fLpfdTh*= z%$r5|0W}E^1lBb(AnzEczOrnIILfi?o1>*^wx&3%=_-#L;H36;BbM$odyWCpI8L+s z>o>T0PS^c>ax;`>^4;&+^In&ehAnO$l#O7iDaaT7zxfiw zYYIIxH+u%U6e*S4N24yfcP^AUYfMIEQu#HN7DKHpvs|bji3(v&Fyb1lf-No|s7L&U z_zp-9%uF~W#mk@YWjAUl)L@*noKj-GZR=<;!g@G2V*m^je;n1%i!2SEy-%MxSCP7V zYb+g);F;G-+XtGd`_sQ-RbZRq?0t{GW)sjUS$BKG5>9%i#*HQ$W98T3(BdT*g4A_b zgwia_G>3j|~s>H;p^=`u-omkc-{&3gNY>P-U!hBLd4Y*eBR|>}t&*!Laz~VTT;oSoWU=Kdyo}5)~?_NuM zl?{}Rtd&KW+`8bH+PXmex~4A#(lnt!E% zHEBanocndxLE=rn&gWKCpoxdhrKOBp_H9g$wXF26$@$a#Kt_U7Yny&x1x}qalVT5Q zU&Wfx7MIeu>`J+*^ZL6rBZpk8LcpeyfJ9B5TV}FcV|jjV>2XMmc&~3ehHp_%*kn*D zNdEI1*Sb0lo4YQgZJQ0+- z|HiM!Ty5#%#3O?w+Zio^se$FlXnd}xHfB$tNI-7tKd#8XhBoA4n_&bv_lx_4R1xcm z>RzDkPOOlJ)8pp36+maS5WrKmr3{DD5jFc$XRYJEjNPyw%Is<_M=bJT|8KWqzCHbhe#~H#gt0+;v71P zA1!aH1in*@I#{KgQHx^f_g*_?43I&f=T9g1wE`;gWRN|-$ti9CQs;;&_=LT7!KT2M z{VYzx4rqXNm0c?c_)zfd+eCV$9N^uKpl?!+RQ(9=#FF@5n1gFS4zK}HE$|xO6h|$L zk*0%B?h%0o3u1N+m|I;s{cj0PUF_qe^Z{wl zI-Q?oMV@G8`4d5zDkfkS>HW8cr$c{n*`m+b{#~(utXr49wY_4PHIpV@@x1WMEy=lL zPU&m=U3ct!K{aeyCPF=Z?)Qks34$DYjeVSqGgIX-tHh%b#k@I*(;kApGR>As(7q1^p zutI;0#n(x_Y6~{FhG74T4@L5%^E#;JmnpUsOghUwQSxfe+d!U8)nk!viUSJ_)_8yNu!)zQ-?aF#`TZM=`rhuD`2M>_Ln`bv-2WP0MR zxsDs=z;QCpRpTW==Xes&k^@w0u<~NRj{QeKh28WS1f|4Xt_uaH!q8K#4HaVF45b~o z-PKn=sd`E+Mz-a{QF_Bq7-|!7NT(i7`Kwq#-3JDFI`4Yy+~SR{t`wPmIqlH)d(iiB zCo+%kkma1E4Yo``c_@8DIH4>tydirrE>SkZjHzYii7j?|4Pb;jieEJm{%lKN#)^=FD zQ5S$ju2x@K0lthR&7M=YOj;KwE;$6STA7K~POW%O&+8)yTs&4)<9mm3`unHEu89!j z3DGPYC}6Vdk0J*?^Ust&-5n??`;O%K4)AVoKn$jD(S3vvPfujMj2(|dN|-`-*FG$dLs(ms!I-wsDc^?(ei(&xc6(~&N|oluq+&PnU>@t& z&MStwKOZZ(h_rp>-s`<9@}MC#Vvm@?AHgwB4{!+j!0>;UcwU)pO&#;rf`eQa%S{pUAT-L zt%)FcyPwLdu}lgAEPyyLl{4M)Lgpmzt4v|gu|Ps)R^c!25m@Rl7rIAx)G%HXBrsl_ zQ_xMq)^TsZ|B_gei|~}^h6@it_gb$3pr8}-Cc*oJS5-pVHp>RgC__fSC=8Qz+06>q z^@envx#CSDe!RFI-9BH9tT<=z|9Yc*8|(`eDKp(@w6C8r+_Km!svfY(u(EPrtwa zR!pn7LYhk<2;9ahfw<$4qxgLL_O`JsNCb=*AzF2aoX)qes-|XmyPq^P(MX6T{tHxe zGmCadNck=!iEhWhASI(a)gZ;As1R;cYyz$ZGo-l{g%pQ3)=DgBf7d$vBwk7^;*L*j zU8fAq_x9^6%?c!0MzEZhB5Sg<7lhm(|Wo>=a>2 z$j0lN5(%Z~dVr})GW@>=6ka&a5V5yC4Eds%CfWTAiDJ~@CCixZnHTOMNYD<&Ta`9# zGB2F0C)fL@3UZi5T($3~CHBx&CC-9q?7UHKQJ>=cK$9|Jf`kv1|z6>E80#T!vS=4ptW5ra|Zb|qmAQiUi z_6SUj^6YAX8~8SCUHR<2>$pn1!pRh2?|AZ&Nv19$Zsk7-9z0NA%Aym;hx zDe~Uvp?qEKLC$xgUuJM;-zb*J#iZY5BDYQdlVp{*&h3v}!akN=3T{2Jg3GbMCMq-N zW#%fhf}Xt!2|?WFw!N-7aATplZipdq-wFB5A6mfBpwX|r^$S+;Rz9+`5-gugoQ{Ba99Xa@PN%D2Gr(2{Ia=M^Zrzgmnc=3_>tLhK-^t&|zz$`#3h?S_*8--uHVKiB&`jt)9E0II3{v6`?u zu&de|>X-iW%QJ!JXL>mm-%r2RpWfLTr%Slq=%CoyPTB0cS4Qww`kMSu)^TloCL~k{ z%6f#VaTE(`css(n?BDQTyiW~8@S0`lm3JkSF!`_}9;@H^A>TeSKWhX=`iw1}l$MYj|0INZp z??+}bjYR_;W<$vB)ns$txNRR^y#Ltqywxc+(n4%%<=sQTCn60?RZ-otx$<*oo+bbt zXV%e;5tx}mxb|V}82a0#l%`oMRtb)3QG%Z7pL^D#8HE5?Yp=(UH7m&WGt5~-@ID{C zo;mR5ks_2DV&itoM-L})+NJ0k!UyaFoe71u=wkIkZONQ_Pwl=rF9ZS-Dw}&kca+ib zcWW~VelapV4B>C*BS(Mf>WQAzm=53(p$`PP*T_!mN&=cDyCq{)7Ovg*7Rj z3{|r1IY9+YR6s^+yK+iOA|-8==wi3xp*`cs)a{)gUTJyv9F3nef&tYf3&j&F^8m*> z#VCTGNg8S1WKBAzV0v^c-wtB0sKxZg$s)Is>NQ6tbS%EK#SD_T#Uz>SGJSRGHnAj! zw`NE!xH+JD>9EAVwM6WwH{LG^Cc6&Ri}|^Mc=!3gRm?vA)0g90p4o znPx{4xm6{#@1uOJ^Y>xd=F1ncYcsJE9B)n&p9&93P--{f7v5*FZlrlMse>es^;4|G zm=SldM1v#;!4>413o47M-)k(Uv}l=vshQSYdJ$8}vd@?6PMT zzs~UN(gWFIS4MbtqlHhSO*uf5TO{~teLTAmK*HkJArna3S^S!-V@Xsw$g{gl2RWw3 zJlpAP$TGW}Qjp)mTh9t*f<)Vjs8karX19#tXKW#8no9u&GB}G2DRC8VjIqd7(P3`W zwFVeBWtE-(1S{MY?e2e78l3@UNLo~SvB&knQRHl2O6duYARME^o$;`y)Ij*GWo(mu zSq)~T5yz-vAeMm4(+w5szX<6Qska|U|I$@rKe6Gk)=;07F5hsG#siP0pE%bEon)A! zL*F5_P7DbitlyrCf7q{G%ctpA;noB*VE8C#{EWFxfK=csI2#VHshMNpWu5&WSm|mw z4gU6d$>>EM1GJ1S&7a{riEw6r$TBF4cv<(ti&Ep{eB4d4+l_`6CHWAcCpUX->9j~L zaz`1Akt8ZT2%(me`2VP-F#jL5l&}TvL3(J^3SL(OD(F@T8};@&McNmySc@sXM6C|* z8NNm^T~KZ9Q;(Z?^6OfqDJX(KjHA`R;cf5ujPy!+S1^X};O@S#^k(>?cV zG96OkkNe-h6`$1ukdv96r@&OrbSJ4omX0Qc^5vug|GraJ%;`6UMR)hhPF21I>u|30v#F>2Pypn|X&T?Ec}D5gDawodGSwiTX2KEUzg>6L(uz$(+G`f+T8 z+D*r7`h=v{Rkny_2`R?JyisyP{j+y*LFznK6{(qy3N&Q`m6cuS+q3QPdPw9=L9`qj zUI>P>^tEWKt%4%c`1$;#Je?b<8)&R%Y~gYY?GFNw?98kQ#~ktE%sPJ*wqo|H*_;OY zH{lo_Vf3yK93eTd77o5?45qbW1_IV7ppi=%4T5C#s}f46`-5I26_r(WabYpm>Z;Qb zyE6fJ-?jBiI~&^jr?W=;7u8Q7U%CofJi5&&?mKSQ4x#Z=34h+_^NWP5n*KN5XGe}^ zQPQqdR8cb9a~*8DK#@LgL78uu%cBSc#LSjaq)ynmj1C%oRMd~WCPLPA#Zi-qOizj@PRu=Tm%4jbxmNzluyO4 z4#buSo@n^_iGFj(kXzTZYcXyCoYs(Jcoxh=I}1}G-k}mM=@8#DQiXH)xlILrJ(|0W zNAA|`x)@5=Eq-B|kkwXR_v+@8LELMXoDmZ#%L8j$Ypc}hz{oA;6$Yk3=wxAL=I;nJ z-U!OuF-NSDVrI^U2@VBhTZ?AvCfrlxI)#ikXEp;EvX{#met^b6ZCAefi6zzaXw0n? zk=qMD>GPM&;PJ388DW%W-mFYgrAOg!-NZ(+STig=i?ymK%T!Rh2KSOk%d9S5GrV(l zOhi7%%s}0!bnkQp-0TLPMyWh;1oJQY?w35qGR;2?5;llux)~Na8a3t`dCkA*MAH_| zo7=o`xwS?o^J!Bc4dbsReyh=7wdPt)ooDs($mKdGb;n#r=4`NX*zaNYOe+pO(HHF zx$60tL!a9`?b1Gz;uXi9N>JYOnrZ8heFvUg(_a!RR?JL$T3nS>QT?8y@4)ZwvNA+S zQW;ss&K$SVk4zPLqY?+HcDC9XC=MiDy_Z@9;MHVXp<+6%t;+o!_Ut)*`g~AoNWznfA7!D1A|5_-+gyQXPRbJ2$Xtiz`+0bL%@d_N|J2tpggm`! z(CH})G%a^jk9;E{7N7LTKeMK_-(wTTGZOw1-oxMik-x`$-j%{vePJhE`tm-8w)*#j^YhvjyZsChwoTgRgLYfqgpu^= z;nc((Z?u=|w!dtkR^)Txtt2%NKI>Cv;}FHf=<6UMILWZA4h9t*5xNc6g2t$p6o3qx zjl-nE7k!2b=bT}Uo=W-b9sZ5x=sc=Q2{1$%VcqXliKV$P=0Saq?euTK89c7KK-4!6GP5_CDg?k zki2MPZiVL=d{Bam-!S%*{foN7S%cL-g^b#CWpa?GvYnaN7&!pO`qY=Z5V%C~i=2;c zZYVVW)+8d%4~L_Nj4hZXC^C4De<3r{ppTI`y|TY&{E1npD>rM3$(qbgo+x~p;%PQc zU@(Jd?PjU<`>s@4%B)t25v_Fx1N0Gx9>T&wA0yoGtXER8q4h1I0vyF`qx9)OgEL>f zFiF;f!FVh?vttK;8dXr!NP6kHDl%Cw7`oE|a|fr&DayUt3IX`KE6Nkz>AU<-LBqqN z9>JDywXg3WRnaKhm~o5a+|H+M;L&bsY!&QA6xBhB+OR4tJ7Xe&BulJ+C~2Kpc((V2 za-J-UQ9)}LHX=%gR|D#tXBTc15yv<*SF6g;u`t3zV7b2WNtr~DVlKU02gVPpve2#L%qLpCt$GU;Q8z3}3eb5m038=2+Xb)c7u24Y$9=xu?dhfT<)-{Y3A zEgrbBU2@|gHTOUbLUFdZ$MXweq)Pphh(Wg^;`oW|M@SMTkrZ`U;bz&^)Ujpsb0X4S zwB+;`#PW1J&q!ELTyL9G)!mc!{oP@wTsn-awYeIWU0hxW>_iVrQ4ghjT}NGU9(7ck z`FzRn8DF|pdHc_u^mkfPG}^BZoBqOgk$@ah@vJ8}keXhj+FBuFN=xjG;2Ih2xt}Pxl=c>G z5TB3|XeW+C0@;+ozqW)(By2>%Zvp0++Tt^}GtzA684;J&Hh3^c?Z$L{P4Z^hlR({!J(bV^i(Y2)yw%f@N zRB*-89^1W*YrY1u_cd8F5*tQLkAO0^Ur7EW9p&C;{+a!(H8Y0|uA$B|!}0pD@5FJt zjWSHan3LlF+PC=rL$Ji`Y@e6LqLNc1le&Sttxz>}lxl9R4z1jMfBQJ$1fL))reUCa zl+{VV0v1+l909)TGpF&WA>(HaxZo}9OCltFA9M83eXVg$lAum6&v-<%LgO;6mMcb< z6ex)_7!oRuzUTuOl0UB_i(5L}V)fSc8RboKQ)l`0eC^MnvWtbk*sJQlaC{apwy^rq z0BhlF^G+L>2$|!liHt&vZj>uWr^Db&3PP_h&$RaBkkV2sA{IE0ap(KH;KPYs_h+6+ z&dU3^O6}8W)qeRRo=tfeWoCWXmh!uyhz$p(1xS6Cs!yVJVARqaMV)X)mjR@zkKK-4 z*tBtkHIo0V)qhA!Ba~~ncJz|EZf%+HAOUZyxTcTgY0miy{#DH)bxANw-U6F+R0EYG zuGXt0QUg@fv(&3!E4aGmkFWM)WpUDPyL1VUXAWK4{{Bh6=$a+vQDnv}0<*x>1Dxz} zg2X;uw*djk4j6=Ig|EzR`3#?#8ZcO-50PA$K-*uwO1_|Qrci#6x{vG?+jBCMcUb7_ z3ehL%89*$+bTb1BCgvGfv5X)@+^9`3ZQ6koY>{?IX?-l>rvqZAaAKn|-i<s{fiU{+x zMc^7g*hF!_M}GO4y+*W{_a*(V#{h@b5^IwOW8PVt$fT2h=L0n7ndiqYcluqY5jR!F zN?_|nQ05%Ltf8XzcmeSKpMjAB@emjlyavAe0X*Wg+cuthYfLmMV8)&de&Q@W2?#(% z_v3;Fc&9vRuEe8$VZ0^}_O@#i8QN>ukm+ltSX;8S^Pl;Su^N!Ne_*ZC@cyfHY0xpG zFF(v^ahMUi?peEk3L^-jT+eNnsjj-7OD+qToOZQHihvE8w) zj%^zqbB7() z>GaxQ9cOWm-VSyGY^II4I9c>})Bf;Ui1Lt9IKf@s4(8O=gu$Tb9Eg3B+jh@eceKJ z0_zp4esLs@v0@rlE%s~8he4E3JgiY#BH{}TlZRw_Z;Uj~;ygK)0c<+6XtP?)u$r&^ zLFSn0N~OdU0Al!f8ilZIQb04&Q9iS#mdl(5;m17wP)7AH4C1IC!P7*Xc4|Mt zx68@J(Q0}%5)5NgAz+sK|GR=S4E3x~Wc#Y-2SRCO9jo4-4TDW62u~tVngN^D)};+$k^va_f8y^frg?jc-ktET@qtJ#MHB{&H+Y8u zt70$v9b5I#0b@}uifSYsguUzWEDeOSswKoWK7x66A~6cb;W-%Xn~5^NH-oWjaQd=e zO(IRmu_kDMNVrWEb0|EmwG}>z;qYG0y`Z~XbA-m}P;->w9B#obVco)P9rw4+yn;Kk z*;;8-Z#r@1ow<^m#U?dAglP4QEkBuj)c$8OuDHmLQZ>%>)KQW8vq(EOaLmUWTqNOt z!l{7avY6ST(BLuEL;mA5dRw)9_EuX&N3Eyf zWgYu=pX;QzYoT44OZOta{WSVewOy=M-+Q7`rZkKZTy zdVicVoW+*iI7+0mP(;Re z-OZ_pLMeH?1Z{++WvDIzhhpD@7tfXL<>U)h4PSP?F34=#J5CM+1q-Z?lFP;|1g9=M z%Zqb91jBMZz83Q0dDwGBCoUC7v`#+D4LuHgivEStuj9_mJcm?F$Y%sJtVc-!`2+o> z7kN+1RJ~TOe)svSPXeB*2JUQG_yFG0D`dFE~ifn)Ko8e3-7E~@=dp=BEqPrKLBc7ue-G#$;rKY?y8MF6aI^wL)=6x zkk8U1b9k!=x^MA;7W6vB3pw9_3KW{%3E6N2owoi(jRYN9MMIrtH?mndNR2PR|FfnT z^qAYBK~<5jJWK}S9e`-d`MM1Y`=fD%_Ss+bngR6pjM7D{kU#*zB{+12x;#@idcx86qkf-R53WCJKECqZ6{O@7lJxnV zUypRcbNAyU_#49F^%;2U#VsH-lm-vPb3rWYC}H%hP_{{KtRt8fu2A@zzMwKXZ2rJ#JSbiwFdK?XBW%1YF!l<_y$6pWF@(0HrflHr3Bg?hc_$v$~&J&#jG_EVU zJ+Lkgj@)375FH2M8T-~maF47;1M|7*%c>3Xk==d=6$E=<(r27zqt68hv zU*G1noV=_WVM-Gje3<3!(Q*{b8#I(s6?sX`rJ= z!vTav+y|Y0V72p_Xz`I&VC?V3)S2`J334F{jPUP*29{vi`c#ydVsKmh>Vr^ammO27 zep^F?bo2w^h=qY%STHPu6cd3ugIphJgwpru_hFTY|r5u5_$+D679lV0&z0Tn~ zUMmPZePH{P_Z{KBmBa(l_CX>tUuBsW3g^|p*_=Nw+s^)+9V;8g6{E(+gIh)fQx7X> zbjk-wkL1P-p-^SC$>+CZXC!gG27(tQrm!t$W$jU7y{UJK_AwC<;YC zVBu4$bG!o8Xi-pU5qxD~IMSSvIH|aSw#aVE?m3jG2w@PL+c75btJ*imzER{XM)g zVqFT4I*bWyrF!RwOYpljYw1ET5WhLUBgytjHgb*iOfhnuzGjitU>vj@2e8Bh^o#Nu zlz^k+AF4A^W5~*?kLWVpwBW>|%brWDn)ZuwW`_8saLBH9i(3sY`dd{u0i9aeRMy+% z!-tR-vSJF79;vj-hv?tQ0w;!N620CRn)qHMW~8?d5ezS-rLbwb)my02=&#k7(y63p zd`%9a7oFI(ycI_s4Lc5>7Sn=QePda~D)1LIr3&x;t*(n;IZC5zjz^PVop$1B$!^nv z@KaB<6<{%Z$s>b5zwcQa#Itf)^Os{RlwtL1Cf}r>>d?c+7?#GJ^D=C4Qk(ZXcq=q0 zM9O{w!2_X3p{;oCO-`joLf4cH5hRK2Yr=D6+XCb9L1K4Qks?XR3W=6$v@>L~4QXt9 zW%0<>_`?;T@Hj3K7X}#@n$oQ&9m+7nPrK0%Bfs93`s)k%Kbppj6`-DS<@YOG(Qt~fiQ%|^V zl*^cn7T9rl}UI;bEpCXTJ zaM{tM9`H1jOCt&t#>;T{_&{S|vo$C(RI=Y;`~GgP4UW%^Q$t7R-A598*~ybLX_>W0 zjYn^J0qB+nZk0s>@&RE_bS(; z>S+32I@s)S1)gh9UVpJ0N%VJ<-uLZ>_xnaAdwyPl zjMiKOcKrhQAk6Q$v6B@h1&B{p@)aVqLu2=7umxkgW@uE6>t@SJs(~OBasdn>TgBdy;v^an~s=b`~^t%VCMqiZnyv(d# zeseHSg8}uc46X+Kj~{NGJNPM`mqB5jt5>Kgl$oE*G|rI_Ei0AbwiE^7CAL2DQ08J>lpX0W%rr^&W+a z>gM!3gcb|lr_Wv5B4~x~VjRf>a}(VMT$P)DEbr4O<;ccT8qSvUE85l}?M=v+K<>N8 z*=qGdI7ZtHw4nSWvk%Duq&#eU0k95-hGKtJJT;!xHEvvA0eR##*GT0fQ$9dbB{xWR z;k0mCN!3gJsq9tO&EAoA1On8FuOr1UKzA zXy7o=KVza+CLqz}?$+}_pn$x+sWs0xwaO^;?U3|9?4<|3@((^k!Cyi>yKlL`?~r?5 zp<7?gpRGk-uq5j9_vVtTc7HFfH3qXs4^z87*q{D?^m1n}X?(b|X5+)t8$(s2_e&Wq zO4?ifxX)O25CXWXz9Th*nWRfX%f}mm-pthJ_D7AzN8CbSo%vSFPZRt+hSsO2Gp0BL zF@ie{N!Je^{+pBw-Q3VjH*P){RHfyuNXlj7j(JvG%g-8ub*}GFHE$gasS+4(_Y8t} zesYHs;db_b;d1an@fMZ3`+gMc`An}Xkws|rPp+=cR&*jaNH^ck3AJw7Zda{~$E&2@ zfM{i)7yCWL#*h-wHtSO)1_&`?*Mt5MHm5(f4{y-8y4zubL(i46#wZt%_r}rlz{oe& zMC(-|Q*j46GMp^-&pjJb3HbIgtOaFn)T56qu6|ch*iGxPCi&dK@+*Zw* zG7lNMBBYDPBlIaT`%nQ+q{v^XMSak zH#kF)F2Ul84}|eNsiTDL`*LbkQ{gBNn!zl8JPHga-JPLRX1B;En?WDPF1k|2P4IEi zxb9E^J8$ywIp4kQnhHa^C&j%2Vn1A$J)d)NYBYh~h!;Z=CWQEGk5jxRoxb?PSxc{@ zOVyx)N`YM#U+~Q!ypdoe*L??wmPs;i_T_Bf_N7x^U&B+4$E7z8$A5*Mku^mJ7>Si!YN#unY(&xseLzuE09bX^ z6_un~oTC!6gX?~!W+*#>oAl3jyqIhD|#ho^>AEKyATGW%tQxfL0|?DE>=YcQ=IC5nea7|58>V5p~86m1&5)tcWhFKrR_3CV1Jaf%D9C1 zMGoHLUdj|+aPOvzZjlI*sp6&+8UL|VTjR)wp~XLtAz6(=FgNN+aI1&AS2MrF#Xp_2 zG?YVnBuCf-?3}*gZo(PeWe)nZUnPq}J=3(xWM;cp(L{quZu#&q#BTLd)imXt6jWC0 z>R-SSjjO9OO)smhPbm6-;^q#Y^>5&O`>h^@eaIa(`(%l%UCdvT8TeRhdEyQ`HFfc8 z(Q^Ww@4PVrV7j$2iC+Eb;T7TB)gco=8JIRjqnT(`BfUVf|1?lQMp)AFVEx8+Ju@=1 zrs{^2NH6uBozoz4kECf|*QzL2YK`X{PJ6x1s~4AWmRUOOh} zapY1AXLR~uZYT>yr|Ng%%obf7BWIOc63%j#>>%m`RoAtt7qwY+x^k%X`Z3w@RH_YY z=X6fTfLk_?Q_0t>f@@wjZ#(q2I=hH-_V4n;_U`b5rz^52+zCH7Z$LCX$-+~*W>=Z6 zO^DTjp@3`F-9#*L51C!-XxAq|anY(iPXw-s(K_xOn!}DRdYone;&}(QfF$l+$fbC->f~*)_VJ8nX4H+s^jX zO+FG3a>6z(GAQ~7)s(Jvh@jOwb4(~U0#b0t3WI;$H)iBg8FNFU2pwT5@covY%!J%V8EaGAt+dMGZ8YXK<&k04eh=~75 zP^u?50u762x2$$FVsE2>!x$4nye2gibdZN#?GZOBdhfBS&Ieko@Db69H$O&K(qm%m zLFo1pc~iY*4JGqut(Z=g_r=UlV8lVfE0jj_b7-GOw(kjb-aYZIAJ_hhYS1|{T4Q(= z$%pQxM0QDrZr?737GEg(*B7DPr3a+3`W0Ha=itPuB#mb1s{PJ565zHxExhAYiW_|| zwr|DK)!0KAf$JtHtZTM`leiIig$uVbqq`#;6L;BV!bW<6T!gIz7jr}d#G1zVD=6ur zq6Axvor6&vEv%j6=91u^eKHd4I`5eYzfgSzwIIKxkfQ$5BA()I{613H#Ja)B;V?2z zl1<I@f^N3AH?pw+;VW54gLctu+?Zi+kXEH^_5Ve2M(ChH zB5Osm`Ey6Z!9n_Tif4OC!fZPg5&7~))YQVnE3mM`!Jr+GM-3wFUJli5hFsMYGVl{W z5YJmb{H2koHdd&FQr0+QQ;8=oGe=(EoPOS(o{TO&ob8XQv_!K}|NSeTT1{h+#zbrO z@#JY-BWrlj4mI7II-7f!&AFyi_bm)PE$%}(_FVwGA4Wr-+w>LqMq}qp3A<1>^2f*P zD(g|GQo1R-MXJHYVd|!;!B?tP(FNX4(Y(eym$X6f8uU^dKvS}w!Ytao=hOja&`_r> z+sAAgolCcq=h0zht?QihU*EDXZ6c`Y0KqT7@1|ey`KnvLq4TE{s9}Ukmtg_Jpnw+8 zqh|x_Wn8!~^CD}O*GW=Ow%zzYuCc2I#tLj0uQHbrr8offCtw2(SfJ=y6^Kxwof#nE z>~ao3q@X1A{j7F402K_-0LcLv$a1%B2o^YBpJ@k32)mAe2SDqrSOXk)FcCNaDI4er zvG`P*cF%CwR0$8*)QUv5s6>j@me3zBG9OG{Ov-9JQdSKUVvuN-&CY?sLPCy@^m~Ag zSx=Y2FYK6#d8Mz=PeQDVGyd2&C})ox;HPe@giFzT>KYz`A8UQJBw_;0n=f;{YZ^pK zrCbtZ3N`JMh~b(v_%afBnweR!a^v>qG00>%1Lhd1=Ts8N$f276l;&lgtDa60skAYzL31WXK(mltyH}{db?oP_KK|l8v};T*8jP87WLC#} zoj!UODcyRsa^k_i<>Ym^$@XzjB03i9M-sjtAyr#1OV zt+nG>gS;NE0PlIP2jDvyHyI_YoX0`lx8do3c<1d$(p zO)0mgoC$%P?;MnGt1i0jl)h{TF?`)P?<_1I@t<6U6{kySCaAcnF9K|rc=Dp^LtyIpIGkSdQ2tohKtQl08u0o;OQ$&JN`X=PB0_|ZX| zEfKFGboHg~>y*j>RXGN(*!_7ShV!$2D?zlEs*&6bCEitKq*o&Aj4>x9E8dk{k>$5%#sxG4=2VCbd=CRjw}?}7@jzo-R!@>n(!`S;VRy(BrS%dj<5#H! za(BcgskW;vzGJ$r>6=?9>OBf;G~^~O;FMJJo`l?9_;Awm_CGPX71E@C-aw-4V!=Ar zs?`(kZf&q&8L2y*zoH@>`>DPMp}g)Sv`!b$AECG^Q2=_-L3DrCw8g0OjYY5J3449h zR)d{x9}}|nj}C46_X#_G)c)JS@ze!=uQ$}QRv^dm6&9NFtzAj@9}e;5rgb^D;Q5(@ z+0YlG6V^j_o3&(j0zT&x=xf$aODtbGwX{!1XSdap#N5hi1YMSM^%Qxw#7)qM$Qe_j zA!W~w?47#8LkgKC;%JCs#iT10>OfF-S!{9TE;>MkX1bF!QD0Ta!lN8b_>)Wqc}8%m zQ<#CIOcA_pGlVN(&Zl++D+afUeHxs+la|TKOwTTb9eNF3O*81Zl zl*81hzCGHVlY?oe*6mxUxEn!ws^AWmpUXL_+LuEKzGi{3*3ze+`Ey z5u7zLHa>4%O+KA1`L%7obB$T@O)G%K^|S2tLN^JT_c|ZzKZ2b%y+Dns-1fESY_2E1 zPh?YWJn-n+OY02{n4X7X(g!^*Gz;W0eu$_#o`NDQAKj5RZ=LFid1Dey-GCFs6hbig zR-jg?b@;Xq38OTnf#nTIYd{n_RY9JMBT%i|EDbI&=zS>vX_$;o@{Gs$1-a;o+KIEU|S6IA~vnvV*v8$lW^O^Lb9p0HDfyOfc7WafqHQ|Gw>R*oA53!8OGWAK}m7emjx#P^) zcjCzkyXtuxoyRc~ryW4Ks+8tZ z)o)L#;aIj_iAgSe>9 zy3RWdt!-!_YSmn%&THLF>Va3SD;S(=N}NMi==dA2_!|M>GJ;vbo^<` z9Bl$(*{G0XAgSSbRng>ljHw*`c1t}iH(JPP_I*qTjDj1wVkJM!;3Xg2&fbok{L6L! z44=Z->BhvTt^9_u6v9$?13pU@8_DX(=618Bl;{0(^#Tsb7}wJ`cXL1blD3cB7B-_{ z_sfE6j(~DFV0R9)3%!WB6IBn)8^5uEJI@5aV9Kgs=%qTAQWMhIZI0J?-ZebCiSy=N zaxmgFq8*HKku+dK2j4=&C)+dq$OvJza7FIF4}j>sAL9=&h+KJMgBV|PgkOLvktQ-k zQtadtaoIYIHAueQmI`NcXl{x;Dtdm9WZ7K2Ua#a)xrtJelISu!4r%paGY55fNj-IG z|A6r|>I-upeEopMS@*Q+R|aaowiy)Lg%=ClD2t5hzYbD8D*n^T7&+n5j;Np|cl_Rz zFuI1N3jUM+oa0K;o?o3b5gzR@1Hb^jsE zmJ8QaT$ZpE6N5!_c7S3ESvj$yVH*ZLRSMXzJvw{>V9?4CQ%qpgZKYXBLXioN!tUU& zvx65bcvJsXB@ur@cWq6YWzI2h+*xaUoJf_tY_~KNx+A?RV!uCOjc;q-?&;d(3n$=j z0pMT0V=IO~d6ffRf7d6Zf({=magBAX;X%M^zG9G1R>>R39FB%Y@u|H06lRv!tMb$$ z&gSxR)BKx{p*Ig>;Jvd-+M@bf3;`Nq6E7M^V1u46B@BXT{fHC{Dzd+eR{Hi1U#pNm zt5rL(U7bw8Er~zdS~18KpQ_>t%|%*l0^t_6ETzzeL(n)NO;P19R~&+x*4&bf(?t3! zsMrsm?8=xi+gzsTVRQgu9!7DLP?X$G5Egkgi>ipWYcTP}p3gA;auQ{EfshFTtMYZZ zI5Auo5q(Aq7%I8@gvkI>TnV2r=` zRHf+Ez>DVvE-}HloIyUCV~J)-Y_ndd&iz-JkW`Rjb?^5Csy$2{rgl*_syvK~W*)Wt zN;N7X`dzTbCUT}t=pQ-1zw1=8!YgHBsm|q~{6KHnHWHRJ46UZR{Ovjosh=k{!|%js zU$|z?-;}g(VkebZjJW@IFh(5E{rnQ2$1W*;;@o*4@Fur~gZ~+8Fo89Yr2y1L$-Vsl zv4@;)zi;Tl?LX)t?th^NT>Sr_2gSbbEO3HI3`zlxyS`>j+~VF4-aNnS(XnUvSmEHA-e zQMgb2ZwK;+Zd|G9+zHdI?8vXj^DyU%+RI~0ZcMm&(eqgjgMmYk91JbG{nQQS~W-l8A-m+!ve-7TA_%Y;>kg!jDw=8W|O@xj$GIF7lQs-S3prw30 z1@MkX{`vpdgV&klviHo_RS>I{YYd$@``Oi{SJ9-i(K19Vpuf9^CG+8K+xxwJ~y&(v7Lo* z`suQbaClx5w*yu3*aFs-YZ25cPpbZ_L4@8yYR9{1<$` z8Vwq5B?``8k0N`Y*m)~4uqV#WqlLh4`BWW1g`<$noCl}T=dk7n>6PkcGvr3O?Le2p z>*Ak0kL$&F2J-FBI-q}@Rb&n1>sw(_d>`*kUD-hw=DluPw(E5Y)plgOXSzIvqhopv!J#=UPXmMqUjNLl=Sg4d-R(Ey^k<~iW7H*eEt zNc{I~z28EWV(-ecGtSTOY<+$A&zH-e$Ip9BE-%3E<>B?2=7W6gJ}2PdOS-4m*TemDC3GsU#c4H?^X#AZ z9c7Y=cXD&4sQb$khjuuWLW4n4Ano{5)%#l*9_PuI+0N(4xBi)4h{J#J@_!|px0xPQ zFYd?!q(OR;6aPNezrg2w@c`=|J69f^K@DHwgZW!u7oQHNpP1G(`M*^?Ki?ltvYyH? zb2JEN6j0U<8eDuo8DLZhuRKcld{`fI1g;kL?(;tgA9Sff2{gg`$mbU_o z2_=00iKvvSu2HC5@=>~XK-gz1DSUey=xMf0f^POQyo(^-)izl-iW<(5N0s=saHDUp z{sc8aIqitg0k*W5dXW$wHicF$U+Qt#LaQF}k%jRg=o>LJ6Y!xS@sgQfd`{Fnm~Jk6 z8$S3+X6-YMPov^h?8ElSzpfi_g10F;6q=F#P3Rhx`3zxW{kZ*a9_1lD=t2ja3nsk- zl4CaxH)BS_#Do52erb!U1HtxGOSGKPu%NrMCbg~Bq|-(1V=0N=m0zM1|232xKQb#SVop5P-*&Mh4IX+C%rIhCt)K@Y^3gO&F0x zV$u(WPMsYX&nA?;$SD8H#%b?{$Xr(oT9ro!AR)lAJy)oJv-rxP8wzCWG6yQXloK6z z-dCiW3quE4}s31%aeWuBkO3plx-qAsdr*ip{i2G0@vR@jX2n%|Jk2I-P#;meTw#=#z|WsL(>lsgK~-jmEq>Z_E{ zIAytrd!1eVy9IkH>Kc%<3?@2R2Tw@nV;qes|GtkdXzcJzY$lZK<5&D1eDt%iMN=&Y zV;U`Z4SGxh{LYl@ar;%{*Ko3P3l6lI1s zoXs%3Cbdv;2qg`@P`BdR=ZmDNVCa$n!V!Vq}vwbr2d*oqY4)R@y~*vAIE;VJ!3nIS9?!+AwVvy zi7Uak5T{nZueF{pU&X6l7}>J>NLju5mbAMxAX1g`_kIv;$2naKBoeYM9!tr z?b+JP(#f#bqYUH6;nv&Y-GPCyeMSFzUA1SS1^#0DbAN{?Ze23*NRp|YX$BRP&Q2lOKM_sM{ zUS=K7sZu&Wf05}?%JtY zQ9L<+6L|cVkq~+P@_EORCA0pVF;FSZ+wYTTDLuVpj%^~r9_3ORwL>P9k1T_xKESSo zRz<>FYcf&ghHmAfaVH=`V-Q6{Ca;JUWQn@k%BMOPSC~i&34#R8&*_b0L;` zuKDMshKta6rGi&1Y;`k(C4pTdpl9W zJc{elfe0ua$CI|FnRWnFDknzZ{0f$Rfu=oNlRIK#$9!e}@sJ42+KzxfHiHnQe?f_q z?KE=iuxUov`m#ZO@ze*Ba#w>?X{#xQBrYQE6V(j(aWI^3)Lm_NE4B6#Y-olD=+$8O z`|vrjU{xw=6kIr-w(Nr9s5c(5<95RCu1;@$*R|pGv;9RLOtgMeFT@nJ+j>grmJz{e zGzb;L@S5o>xpPh86_cZH95rainb&r8l!$?<>L!2XUq6hiKf zK~O2%Mn_bxKDVS#E?-6XG57j!l_~X)rDin&3Xb_$Z}Cz6Di0HUvIuQlTk_^hYcycF28rz76Y@gPKzuMqTZj)yu%8sOk7bYVHf9zsk~=wlCkQ zyIwT$uuh}1jd}|!ZIQU@4X?eb`H|8q*eXHm)h=WSs8IC4a_VWHT@){ll?FX{Gd&@q zkX}s{7B}ZTqKPhX>;@Kpa9~G9w*YUBq7VNY{Knbcpd1xa3q-D`W2dE3KGK+Q)WX_J zHw1S#J0GTv7rmAN34(6jWk6Tt9)iMi{T*|~3$C{?X$UxvX*m&}C%Q);VkP-Qj^BMN z+3K*Q59Y%5uO<&-A7@NZ?ISPjN@>>ju^OM?J~gv1JVp+*f@&`f?5L^bt}J+pEj3TN z$81zw;v|FSxAqmAYj(prER*eQJ^k^1M1lY0M+P`Uxc~!)%geVA%)V`DtjB!^8Yw&eAxceVunJdL4UW>NYHE@F&hYsT4s#2Dx9#OmUi#9#XZS^u6G z>n@yKg~~xr_Xb=cY`}Q}LAO_Oe0-+2^&4AP&i!lG3O00yg6%!W<2Dx&o1dDRYQGH@ z7J2X?%+nchAgiF_Op5WLs%*J`tg6pK7BN3#B1)E@IYu&|IQmeN=>e#&e&y?cFKYbM z(mUgI`P0$t5$@U8=i>p;K!M!Gx1xW`a#o(NeOrfv|67$j_)}D47 zKY4h6JCIDL-2?vM#e==gm13(Jlt)6r&jL065WZpXXHDKUyJYUPaJ~QL5@N~k~Avk?qxooDV8?&`GUJthK%AQUYygyEOL*da}25?BBN22X1on8O?M z0Qq*vyo}2+X*R|Dsk1z<;MDesQOge*v^X4q3l9|n6pH)ez@^4(CU$~hwTbFM?<>f{;6>>z*KMIw3PUsVf&Up!0r9$_I~lrBi%y7 zB0$hgC4Fd#S0T94yx`$g*Crj<>NpK?^ycXQ@_B!7zJ$H=_i#zDQR~9&%m0ocr;q4u zWn(ejf^fSuw2@Fh@8iL(gQ>U(^ZTzTwH5~%b{?&}fh&hgYgvnT`>kc0SO$5y?@uSg zW$!Dt8R=yKg56x5uavX6Rf2|go_FiKH>r z7@wc}<^E|gTIO~mFt12dS9<=ox9Bi?=I{5OB4L*0eeSHiDWqF`#pnI;aM;P~mKqQ6 z_VRVhb|j-8Xk0sal55Kjzl%mYN=lC(nA_HK65S!l)9u<{{#si5;_sZ`+O-h)yT7H^ zhW7dbyuA-LDGJcn&*@pZc^h^|p7@?1dsMbEnqKD>H?_i=wY!g`QMaS#s3J?jm$kh= zIq5-ZF{)u}C6Lqgy}x3Vybm;aVm5sxd~fJ?l)aJ5*7;*xUHbIL6g|^gZmTQNeqdc) zx9(a}b44-t;P!!U&`m;6{i&(lqvrG4ZuqGFwjU$DVSp)(?gC^0_2jwCJ$qz2KI7o` z+YT7iRt~kXz{Pw?beSryFb$cr^^@d=>Ul-T^8Yl-f=1FAp zm4{&tdE>C6uVuZ^Qr=(v(@Z^;0tCOIn1a`a<4L;D|5)eQG)~%w$muO>RDVsz1Ej2n z^H-aut`9eU9sL02kn*NpEb;kxBFV%8XEWi9!lF@~g1kicu>+XH`IcMk;jDcbBKiii zM4Nu(w3kB>68cH8{D{fDO4^4Xqqo`kOs&qJy#G{Zp1)mBS}2{cH>nh%Ewzj^^J~e{ zB6O6H73*hf%J-&+bL`(KI@(>z#C~pV4lkOmAYSJ0H@d>Bojji7HDw4k;o$ty6Y_E0bId{xJ}_Sb3mKr$Fge?Kjn6?cUHtvILE%fVi0GCCKUV%99Zr(w3UkLF$zt^_*KV)Q%0ZNEDr6Q2dZ%WN2K`bs zWT3zoc;vlSbQ4~=2$^1>)Ug3zLaX;qIZ8WW8Y2J47@@XWpBy@X??q~q)^!Id`!)5C zH2YSi-m>!ZirT~kwA5{CefpYHmF?%i&&N?e=-1wVn+9zsEJHA#zWLp1amj@PfGkcSlBxT_achv!>5!=KNp8hwhMr#xEitwIir~h2;+wdkR|(-@ zoaTQZ&t(#4LrdG=S(mjrI7PhZ1h#PXW@cY-?H0Zl;wV2OsS25Q-Ky>_7q8;h8c!|z6gwNsbgiToomsmxsL5m=YG}r}I`wF3|GH8&8hdDp z*y;IaO>d;}f=Gt35Oz(Q178Wz9=~ln>Je#fAf+mK0`?Qs+~TJF3|2gpXFJYzyM8tl z36Can6QbR3c#n7ilODAa#iDt9F?V>jowtTtA2lkL3{2t)p4lH)kJ(!^Al^S{#Fwtl zH|$fc)EE8fG9S0ChORW2OOfF6wC&oK!gTD~fa}+_XfsMxjuWtDo}OvSoI7=U>T9;C z(-O6|%SD|Cgl(4`*14CZJ;54oT=g-rGIGP|RYrKT_CLR@4N@5dYNTI;7#v_+h%wtX zHU6QbJ5v~V&#GxWG%2cT>LseDZZVEFZdI&)Kvu1W996Ckj#RGBMA7kvS9QA*a4thK zS=j+p&zB10v*?A$U+VQFY&eX-kv2o;1Ntap`oY+Z;JbIyWxiX%S;JKW2Yl|TlZuD~ z|JoNKn7{YgF(n_Z8A4l!W@$A6YUd7TGY$_0Jp7e!6T^1~&+L>TqUzC5&Pm+ysS~|$ z=9xJDq&ZFxzLuy0=9qpV2mZFxiu|tOq6j8Fy@{Y~Mxh2`!Kbh!Yzbvb)hCM(m*jnK z)Vj zY*o`BFDfh{J~VhaFDgSk6nJ3*X&)Jxd_J@oX98GpZX}5AnDAgF5TsaU0-R{Rp>Y$y zT}<;-vI6-i*M25;+2!#`1pMiPRb9&s86#)RrnjXelPrHI=H^%9Xuj!m>4(CM3PMac+6O$#cv( zu==lY8$r{$pCzOHQKv1gXi3>gF-t63(Mcz|)v9MZ>jISFD@wB_maf@rvi>IS3wHHV zv-M@6zE_C@ZD=FHFVr{oR%>@+z~9c+_{S{AAHc!J$ZU*3jQisibtrHy z&$1PSLuX2SF7LcGR>+606B|}FDXCc~%$sH~7)2xzT84(3!i1!m-VaKYIM@pjkR(yC zBcwgL&QD!sev(x@K{mw;gKP==k!;EDgG8>qWcH{ABcTl`s>q^)q}|?SJaqeOGCW3H z(3k?Q0;P~*yqMSyhE?ajVojtliCS)P4-fcZg{oE-eSzYyIV4~xz2M!cx^rE<_&s`t zkVFi&ce?d#4RWqw*{Dm;R$g6)y=K+BldoN6Jv-XUw?Fd$x-)aD(x2__nrxEt-9z&t zOSrP=Z^$UmkHfpksD`os4J85o6CMcSEqJPp5 z*>und^$LCcU{5gA(DyKWllf{Ya4hkRYMx>kNrITnxu`OM)gy$p&h+dVJkQl~FWu~A zo^X>%MarnCr_5|NmIC|(KRV@$p=xNu3u1j1DGKdS30ssxw;wuNT1T&hdDj3>aH;q| zk((3{)e9b1ia$UO+VAK;Py)A$3g7;1taV$9nS|c)%=SpDvn_+t-y$$IA$0h{{GH>- z*DnP-HRmDnF9nM&I$60M1vsJusJi=^UrWL~ScS zeLLN4!PzP=Nan#fE!h`U*boZ;pSr#=I+G^qHl8F;FtPcB6Wg|J8xw0{+qP|cV%xTD zb8_>37ys^BU8_!YS9kSltg1S-_dY~5Yh6$6S03K}m#+qdmu~Wk!Y&`E>$gHPuYWL8 zuU;rOEBisVZu@EVAU1AMx*)Dpw@SPZz1sK52O2tRHgEeuyY@qbT!#^V1d0C9%y@k& zi)WJ;Io~azJs)mlJMhFrIOij9pK5WhupEQ&SJ*whKv;1fDM2d&fbZ!(u@ma8fC7-m%^w7iRUH(<&s>8&)jgMM6JQ-Q>c{>f`rB(6x!_bQf_|OfTmF~_ z%w1;T0l#bW`*592;J<`$K&Zt)30UvS-l&t&XWK zoWS_ipm3uJ*$@VA1gH#k8AWUual_ngZ}h}&O`HDt=^jLETVLN#`~CI!;Pk=?`Tg1= zQ>Yl4SX`aZK;?K9;Qw9bBPGds$M>YK31>_e0_KyOsdVx+&!1e{CjwvuLpxT%N(g~x+2A*W+lcGlrT~iwnw|yOouSIPm z<}m!dBU;?Bj-`a7H*_~hvjbY}b9rrME*(E)r*>#> zH{LXD$f0h$MWF0@vH3&t(hmrtQr zO5zU5qAnVqM3dK1n1gEn{#-~_bOrP+I!$biC%E=3b0>&7PBK{!&`g)MYh}khC7UU` zjx#Z~9b!?oa2I?RLt40N@(0P9RC1rW8zItv*tlej;ElnL{tp3qQP{4c>E|Pq+*tCw z$i)4J*@*CTJLHhYX!kimOq@Wj&In&0-pEi4iw`TEdFBLK@<^07#C+@F`~+(A!2E?( z8_e>yDWJ=*q|}dH%OfgGopuI0>=SAozkoHq&I-8uf``Dx2vuMm6V-1WqtS86fNSTm z@%>bnq8OTNBFmhOq$_du{cG2asIQ(}jnQ35a>&qajX!n_Eeiyi$a#_|>zSZU!(dM2 z`52;$c?FGcJ zm?2PS(idtgR;~a2Q(5e3jVZl@WbYT)wXe>jXN@Zh$iA2eIk!STaD zE9w$V`neV=cs6(Z$HK`Aix%ee+dP|z*{MP}6@mj=Mc=+ zu8o;titu!AtG@xjaKD^rqqsRu1>t2GF^IJ#2|X~?ffSb9M$j!P+$|q*!;;jf@HMSP zuSZ09gQSj*4habAUMkNUyjSJP(VnPUpEyRi;W1!EIOqHaH!UbP{t~oa&47B z@M{=j={Jy-oTDSbJ(%eI<%*sWkiaSDdxMk9WyiPkcPEh=ZW8S%@z;dHB4HEF=cVw3 zDX$C24944Hku$EBZ^Kx!uCBg%Nt?5D2?zd6*~r%)8@x%FSo+ktz)8u5FsOTh&KIWG4Znvr_TWR!GKAi)$Bxz_M^{^MjmRKvboO zCITvN0&P#>Jsrql<+j^5Kt}l(3W?1bQfqfU<3@tBOKBG6Ol?SV(djoiaaeNBI5fpC zgH_zI9LNdWa$NkNqZxwdyr$efnG&L-n`6Lbl>;uCvrAL9kQcm@mrm6&moVDGIu=!k zXp01sWB0f2l5+Pkime)M~_n@=kx-o_8 zUDl(m;o3Nnd*BvqHrvwwh{)yUcb z{@4?kowP4@h08479PtXdi~L6;?Gt0U7qjPc$H37XpS(pTgi~jLZtO$*3QGJ%L@$=0 zX(WSq&EEtzl4vpub@dhU^+r+g+X5(mIS77<3;=R;*x8^$pN34%G$aJYfY*%2CWEu! zaRp)Z37AR`QRgxq5dTy{sJryilVm$Q=O;;F#jUJZBbtr9eNu_5+iSbYHaZD5JA`Tb zW0u|dxSF7vdM;e`EriZKjFwS0oW@}onX0R7TRLg73g77&(53DDCViY;3~y7io@A(y z86DYo25i|Tyc#b8G5g3!nEYxUOXUiJsWE84 zrQQIFRHK(fK#C(3PHG!$l=dJQZL%EOmx$4zWJq3v{w!GOw@(k|i9cb}eO!i!mCA1G zCjea&z21xn;IH(H9uEyWO4Ct+#g+r&$)+a);iRg**TwY>tU|Fj;t-jRzc#9YfDZbG z=UmJ~@R2NQ>7bm6ql;D_LYo;96pe&NAPAKSp6D^&f4dRtBSY0@TD|+X30OY5XsVTV zq;ya`qj29_5}0_A>gq2GG)I}^E{((S)+yqWG6G&(TcTMiDn1`H8o|JY^%vEo<@l>I z>u+A0{HHS#joaq}KFmMn$O1Fh>gdpYx`yzzotdXQOD{G2T9HPtbLsXb z+Lbt1RDRJk+prEao1SD^!d!W7pq`=)I%JCijd1m^PVP~`N-JAvV*%E2@bE1IUJz?} zW}s^5RzM#79rP1&UtSIsbB+TADfbC|Tg?-(8wmhMUTeMGNYlrRVD|A%PTmjBiwTr5 zHl6-NIbCX$FiqGAQDTC9d21QIxd!cJNKFvytR6q*AFJrwEbw=Fy-~MWw&5QrT)Z62 zf`|%baGr^;Lzr3)U_Dsv&#>b3sVx}xaEzt#CK z7I|7)@XMuj4-=m^6He^;c13@nRZpn{hfjymSZfsi++w(kM8F6O}dB^%}eKL#aiR$^O|;jO_gY>(2{M* zQRzv&cv2n{b&bQgQXXwa7IHbRRm=0ny62Cv3%@n0`Zj)Rc%dvSH(L=f-I1he)~MOC zHmzM#gHEnKHZzhx-rOgYseu?i0Uw`wC>|9QCs}?8=x*B(-d%#>LAg>YFheVjGBAUd zUDhM-B?UF2_e6!PS{9<=fuq}@W~xVY!^OEtwMj4-SAWYV8ey`C_B<`=wwuM_{;XtU zFEb%fj8bkq?{abz;zHbfL3QS-0C)DRJa<){tX}Vn`gz&t9;Cc*SO~SS8&=&fLAt&} z+lPko-HCLj{6e^lU-0APS^QxnU9KUjnsQyKPLFp}UqPRVPzKqhbZrSdi%m!DDF`OJ zx;s`3*vz(f8(~hd8*Cd19NXD5*E^De&>kYwPL$|ZtXY{5OHOSV`wNV@;gIIW7?L`GLt{%MJY{e5;%^w8o+66Nf4m z1vK)%tiY4I8X^md|IM=4>_Ji}wJC9~%p%L0M0qUldF|9&@W{_ za9j^fk*NCJ)!v=GmlJ=AZ7)f4Vh;$7Pa9w$8#B zXUMlSYvi>yL!^+^ps}YP|1U|CRGmlTtEFM`F@>I2_n&Kb_(Gw%6Eox?b&jOcR6jw< z-1Nx3a$l>y{?W%@UdD#&=Wcy9b(n%F^X#!v(wnQFri+i{l!~Z}>$Y&k{)GE)Q!gIH z02knw4gT>4;aHnQizr264g3cbo9I zvNP#!b!UzzN7#!oN0&r>Mif@)t0=EXDPj|7+5bU3o(L@_G)S1ODx#cPQRE;Z_V?Gy zUObsHG7_f>C1ycBAKV0I2~9N@VXTee_Me~pe%s)l5Rml-+tc|h$l{=rs$gDLGGX41 zi4R~O5*qZbdAwU>n%MCcguYDh5JzcHV6^l6zQ)+l?Sfbz0_r{Zfshvh>al##fN(~5 z2=ijU9{PEHUK8zdKmCUu#iR#+hB4sh7C^=cB2em0Csyi>$B6dS5qIXANShITY)5+z zks{>*e2CPjkMuLwSL)3xQfiJ4O1qCNYCpl-2g7rYu9y51bc!4$RW6j)mthRkG%<{$ z;6|F>4~z7Ym8!rXkbH(IOLL)s5I zMB48sP+#fU#SVpq;L=N2fDFfoy9dX(c%U#(KMG+QU&fJe14kc}MsmqU6~HuFDwSru zP$bQWi%f>)3`jLz=>JX)6Qx58W2G$sQLGgGLo}<#f*YW#WW9Y|~DFT?rUHQ{Yxb-I(NhcWbQR&BBLm9?h%_$0Q?uYEh zU0VS*X`Dk1;IyGGxMlDcN6*-AOO8@zBRae)iTyLoH`w0zk+a%eof2w1h!2*Rn9>L9 z8BUXOU^XdoJK9|uDH>QGB&jn_UH>yu9+jY{964Ff(5Lijpfe@+E1Z*ciJxv!8+v0n z-KS<$)ew$AOF)_+8XEQVK=FRub?VZH(ZGTak;V*}N&Ieu?>JThDMVTUA#Kkro>`0g z&jm@2ZB68$QTY05Nqv@18-{4BF|5{l$+{ykBHh~6o6b`_x}_Sr%`A^o;T5Nzy^dUF;U5eJ#fH3D zskq#A55FI&1J8~#kk=yq)wiAEJ%>98?IWEdPSlA4-@A*RiAQss_!2zga<%N}ke%v0 z;w~Z-=!I>zR$LI;x!SN#+aQxwy_m`qdrPjU@tl6JOHnkAe0C@rJSbpp%r{Lg!sV>!b6`gO}wK`;C#Q58N_tNW=pj$~p0= z!kyBVelY7EHZbdD_Xyc_JUjjphl6qAiiy~<4Ll$P;)n1b#B*Qb-gL5S_;z&#A7s`w zEUs3~p?>Sc4qYtmCYf_42ZA$wfKdgA6o+tH(kRFw@z}x4bn2tVwZTB6^}Op;xD=F7 ztCa6`l?C_WC&5X7C>=L}`5V_YG#Lv)DQu@YQW+g26KsM}@&Fe2cC;#sDvq=UNW4}W zisSNpt!aE6IobxMj!aw;I~I=<%cr|VW0DcWCu#HswOPX@R8V%Up}bqhVgU;gJ>*ST zC?`k@Tm#on3KqLZFsDa<&qoI^lmIxW8?_Ex_#IrKMhoRS+d#l%XXCWw7$6`gPwR+ zH~^{bN|Zza8>nt)Kn$$$LsJ26{WT==QWU|Kxbw&E30iCs0Tb8 z$V@(8`2D|L+et0sjrTVN$N5{wO@&wFE<&`{AbMOZaIiF*1i)Gw$gV>$|1P(C{5F=bf*H&FBhi(zjHS~d(jEfb;OY|7_i=MTqiT|t*wHEc;n{BDB&Y=zWx_-|{gGY0IN>$?l-<%Cc3Ei7N?}MYdFYPzjoR;13@^Gs>8mTcp{9(X);zZ0xHeJn+HR=epA7o6ZEr-`NB3>KeLXPX1LYtu_VIc zUQ}L2Ly*o<3R^AU zXav>Gpg6@fAyJ1XYm~!{#jic+A%jZQ_T+2Ox6T9)Qb53!u}%ytiH*d5{$Q@$IG)&1 zWPxKfKKm*3tPtRugEc@ZNHF>bJp1YomD2Og31J^(A!~NXs7|3Uh%&2xwdyL!2z$72 zkPvHxks&o17QAkag+XI_)=ub#vZjRrB|8=Vk9MBT`-JY$pF)2e5XZEIdF?Y&Kfqv6 zvYTs4pewZeF~}>d&t8GU>Pg*33aSmBy^0+Zq}T#1Vk}%4zx~sT@C-?N zLHMP(&DRxC>Y^eeljk8)CW6Z&Xh$V;cS-MGch?-!#iqep)M73Lkpxurbz&$Z_bizRy;rSrBlA3w>+t~a;drJ~0qOqQ`)JBwd zuX#rZ8tuV^5pSjAmv)U&vLt)HM8TSA?9CH8L+CXq3?qA}l{12MbA|_k_*fl+FKd%>1sDWOsDJXGVh`tw>ql&cK`+0P;1a%1 z$T07ON%#xEQ>@=d*R!}i71{8wUED5^PS5o<22Dz6d924ph}-G3(AT#A1*D8hEn*P@ zpa~ch2oW_nA zfg-DK%x7En^nQ*3gTBu{^p+t(4^!*Y4wW})rjk-yx#@Rsq zUQQ59&PYxmB^Zh*-vRgfeTZ-C5?5L#iqyXBVvR2FHtb^2gooSe61%;&=wg3DG9NFL zhwavEQ-{P|gj*ykDus*<>`6q`Sc@a}04f?=2*lGT>KK6bXt{bME!j5$O_FFDQl(ZV z7}JDebyFv~D*_+7^=5n&*A>T92y-ObYa8V$E{_&t4d7sd1V$YL&!7;tNInM zD?tr%sJe$GR1RLDmZv6m$FhYgZ;KIS~QT+g??sA}~kF4oP^p}DUo|L8l7qvq6 zZ5zXs0Vl_a@!dsRa}Sp7+`sMWn~KuDr0DRJufj9Au%a>&6fxnc+?EjGkYQ9^nKqMCy@EkBP%AhpGG+j5MQm z>R>QtGn-!Lo{QtHcOEqTON)0_DM|l{7jZThKyWc5;_6eRy()8O2?LW{J1SlZ(van4l<$&Rq%so#kFLNO!~Y^T_% zdmQk-$|;lpSFNx{WBg@LBfGR%CN>g@x*-`Sm0n1Dk20EkQq=Ex~>9SMnvp(nZ?+XKBzad5mWN# zaCs1?|A5TOClovR7+Hs`=?e131z0L*6v}ae8gQ8Mo-~o*LY5lue#dAySQHiM>>35$ zr|cR)=HSy(#KBSQM*v4vca4D#R98X!%WUCC(=I;oS_W6>a$gK2I+lS zf7jAkFmxC+l*u&Z5EYIqU~cbha$9}wR;n|UjlUPT=7<=mW#y?Dzkv*zh#fjwQeCcc z1-HASMoCA#R?DN3FbC#tSedAUVRQ|C@e)YhkwfVq-C5*pJwH%d!kI!01sb&XK;M|Z zkHQ`;7}YmqkG#bmy{Fb-UZ)fCtu~hQ%c>`cc?#}0za!6)pM6*anu9OEoylhk2KgWd z`3Ou$jb2Twcu+ehb$qE(Q~MkrZF!4k;UsMe-V!AJY*FcuQcjwITux1K+u%=nwppzp zsb_z5^Z7-ud!=Zi%w2BWSWpRmk^i9TK5xM8qB%J`;QAX1A+B?sIPi!W0iZ$!>F;w0 z2zKv-#dYD0&z#11U>kgyQ03>y%agn8y>O!M{$AI|aU6b;>Z$ucjy38vb_@Kar{s9i ziYWh{?B#!-6*HLPZ)^5kUY1fI^PA`WSDJg9s(PMnERQQLw27U^O=>3@Zo_im{s+sh z`hEJ%?-wAZPz+2$%(iKSJ~t%qoaWoJvDG7)j=f^gV+Py+VxhtoDjnuNxmOw{sq#hn zJW}aQc)dth|DVhxJ2$CZ-8K98yk_pWY}wheZOUjt`O#PuxEYs6G3}(hRKvsbUM{S?ul%F z7m~w-4CNs)O}bafbd8C}geOOvB?NN@RI`-FQeN{J3NVKLqW zXhKJ9V+4uc63GA7_n&KB1iG#7$)vkyu*&4@92V^s5T*T) zL~K{cs5f){WqvgIA*l5#?)`QNsr*xxh4|`-Zw3pgh1CIv93ND5wF^>3bnLO}Ou#g) zYn}%BA}V)cYXl2)6R*>MELYHM=JxsYQAVV+Er7Y3+wpEXDDHm)z^8AGK;~wCMy@aQetDa(lKSo<}Q#jR$q%WXT8m1#=#6w3S zh>`HV$5QNKYY2Lp;Pr*)nu#i7jr8Xb4R)Dy?S?8)ukP&2jr9FV!&rh!VAyV4b>>Vn zwA64c2`XUw6DJLw@#$Qg2M;9~N9yB_F62-jtBSK()eRhM?kB(mLBTw*qTJ9@$?n`W zySIpr>5(jkFRXSZQz5A9$kF3(Oy%vpfz36ft7==%;kdcn)ze7z&|lHR8Xc|{LpFg= z8;rj&XMcX&Su+{wzTlT`Um85~f6`)lH*Vu$Zh@OLTF|`UQ~VA>^S|<|Cu(3k;gRo_ zy5>mW`x2}$`>uH-`6A8{DJ`&NkzH6UKXe;~H`6lgvhBi%3;Uu+3LD5sEV9P>P#+;R@yf~quP^geC!%MC9PVfZ7Zz_gU0Yxy&iY7awr_7K=pW>cGt z^EE@@krYrO`;>ZTYeXA#fFMn_P+4s5=PBo}GoqWKMflFm^xKK$)(obhDy~lEeh0wa zMkn1hZrw^J_-~PrGH^uJQDk%7{6FKc&mrc^~D@ zm!feoO;2nH9NCd>h_|*jCztpRax`qL`8hTN?@8A36XQ|4DwL2Tvn{^i&(-Ly1_U<)oDY@NB83U zQ28lD`CEgw?{40A4G7lGQpII~v8-#r!;=g&8-LGF5}80k-(9)~@a4c_ zJj+PH5dKPm$(P^2QYIAb{Pxw}*=-@x$7e%zF)lPT1wik>Mxkqvip7O2G~@Wf`8k0Q zI-tY*Dmy5@N?2p;Lk5<{!-GSbF)2Z*;bCp{jO6#umc2JaJjL(xof4-BTM{Nr1Nui~ z+`O{nQO`w)bU+d)qV$M&Xpu)q&Kcr=dgU?H9tc4e7?%)eAeJU6-MSSx!f%^5ZrPv( zQ=k55MfvtJgZ8!#g;4i+jexC$P}4sV0oV!ZLGFnFV0k}JgwUOW7+VoFdOSzKj)c$; zc#Q@85H)hYkJ1y=_Y8zk*U*hG%5zxbg4X8~G$cF5gkqZe7kT@dLY+S!PUyeJ zK@Q7bKlcvke|Fg$)<%L=K|v`@b54xyP_LM6*?Jv)q91J8e)@kO=S{|p^fZ7Ijxmc1 z5!awWDN-8iYkYWjHbYz=oXo-SVU&ak6+ki|q99IzMpb|WrGO<^O$bI(tLVb?Bc6lG z4UK(4`Rro-C)`apkP~`$^Ied52@7m}sO{P&PfCqV2K_!_4raTl?PtU-!%XN;*A*l_st@6)gu zqH@1aO!_@Ek&R;p?c5VbGR=yG;jF={UVU))!xdaiO1wIIa_(JtMJNZ_YaM0wm>cQC zzhul~$Fn$={b@suBA6%3wCmx@=;(gUw5vL_ebguTL1qYD&`m}drjM$<6j>XIxgNrV zgWZE(4N7Wsz?$L_7UXT|SK8LbQT}F$?pmIsuU00EOS&?JZZ~7p16_qC9ZNPs#YTn6e&m3t6K}qr6vz;^yiXNklqz9TZ6( zI@#jLFO45&M34BQy0L!89fT7Pgi?bO$l&4gLB*Jg0L|z;8;-kh+B|O(A}!cwaEVh> zBA@#7Tzdm!BW>{%d7cIq*5KY)z|=^2?k*NbdF-G8{QxyW01;qvB=j45@jzCX>C`ZZ zsD2_+3T+b}N~9HdXN21Q7cs?jC;+nwf1vdhWD&W*O@KC}vb)uSXlWIF#&kaBEqFAO zFu;T$@AhbZG-;4UkK`!7Shxa`%c8e+fe$lJ@vHV-a4EyNj~6qwlkXxO@UG1sVt|4E zG=Ejk*jmeXp`&8mgsBoTVQMWEcu$9IDM>8Y&EBD5fxyo^0%K>T>-bc*~m& z=)no7p2A1#W?6A|e$+2iG!~ZNhlLeYg`l8~?7G--WNvb^B+*(t=Q4eqNd`C8JkYSZ z0$Q@6==L^DoXM~U&NFlp7ugXvG#$t)?%>6{6DY;H z#DWk;*wMD^?*x-GEDEdwT@fnM(HtuPsNnBiTFG-?P}KJ|kZ_Gb&L$u=y_G%v3U}WW zhaH*}acAma1_tygIN8~qhvcWi+36lhKIrb?wQHd;I&$_u!U}Tn&^1}QC?-oQqknN;6oK0mr#4g7k@8AUA^>KOC`o$B;%NsxB+;;a(sj)-DYwT!O zuP%nQee=qk{)E4q{OfV}b4u=Ww{-nHN_11;xWvYG=A8UXZy3TV!H$a0`7b`y>ZJ?U z!xzDb&vee$$A{ao>tBt{;Bh;i^}ze7V*=wEvY4^!0+H4$T&J8z_vv;ypQ*8K&t(pu zKZ_h*ZZ3(`4>6wT*~g7mJ{Am-Iqsz z!i>t3PYXfgd-vv7*ArjSvovH|;LH7SjofwzU*}23o1M3V^V8MG{}w}WGxBL=@0>WH z#5tI^ZgtDK%>CbCJ^4r_F$fOfuvJVwi&`hyY2VpbmZ_FbPmp``& zV6bq+8(I&d4VUid>_RXC+CFwrpt}coK?>CzT;3FsYK6RpW;Um5H#Mb#peIy&K*xFp zRj?#8^QFb0(5e2pGL{+jV=B5F8_WT5akKvjYeY7rK0zPK5&ykx-lbZ6X^a#!Zv4!+ zjei%=h#!*mo-jyVTw=uOd!clUF$YO2E3Vpl4=5Y-dPNQSl6`hc`Lf6R$ED_&D@1dy za=S~O;*rcIDt6y^&u6Uqa@BEysh}0y?Za5O@_J8~l})4(61Khz;MN2%Z)EHp^l#YXJr4O_U7}e{7CxG{BQk49n_K@;>HRr zJKl(3ntz}rVeRz`Ss>vA06Tc!#IBS=M!0|-=#^gIo+(c2vy z7dJ|=b26L)%z=e~;yqnfVA((ccMC-OuPn8X-Mb6ZICgVxF9Y_!=QnQ|-Y!ZMTpd!9 z1l99(^{=KlA!d=^nsHfQpLzySimI9aM>MX}l{^gjqcG>+*QJh@+&Vp~_jL{XxKsrC z9QuL`YZ%bVOqrVPeEO<{W$YyaMyvHo0DWyM#MRkcHxhp#6nobWHdCD~bJP z&ai6EW>;ArM^cxpTA~dqhH6B3I%#z8t+$Kj&P#mjfu`v3Y>W>HzbS9i8Qt> zi&>&9j;`wC2@TW82Y5Z-Revgv5JkSgfr!1TUO5F5z^b#LLh4;h#q^ zeHW#kZWqIWl)L1MMO1~FDZRZdLUjCfl5_R2ynY`}${CB2$pO;Y{(IsJXa)dFmjQC? z+elQF2MpvK0iCgqihhq!5h(AB`-i(=sCz1mLLn>Y(DPbzB|ohstA+#do=3Y)c5GFh zgI_fs7rnCAR~zkbPoKgeZ%u*xXS(uGS}s?9XKJg`dRViLY$kc_M>CCkFZXaG%c(R( zjp+cXV}|~v@lYS3U-Az3%*Np`aT_lE_i3uIYXn2|LWkvD2nd~nqN}Vpz*~itk&QSx z3uWC7;MC{S#*5foB4yD;@+W%?EPWNBEEVK>&?4V^Q9w8&(nMM3xc87L%f(pUZ~~nd zK0S3B)wA+eypCus0!6gr@z&))isVl6yW?@!hE{w8Eu@1{@ADvpCsKu&q~_Gx{mL%j z>Yj-{m{3T(;(V1y&`U0BK7}yn+_NQ3_GO|%#`WEfaw8CR=p$#3)ho6!8h&ZF1+KH< z6@I$g{fqny`#CZ2?^4~{r_X!tJ;T?(n$1&O)$6aV{967+^|zw5+_nKBhvCUCJOdds z44-j327z~dCr(i*WvcCa&#ES9-I-Z6mv#6e(?_8da z`euUTIHpIw9}||sWFm8s%$_~~O-A|@LLn-saseGF90i$gQiRdPlu?X*7rSN2kb;K? z_nT6%j2|~|oRCn4SQ{ZY)}*6}o|%QO)hPv#^*9w{FlNvhD@74TS%PWf^~0GoL`;x| zhN%Vc0}u9yM7N@bvQP6VWpjDd-h8w1B`z53!HH=3V5Gs1mml~n9;yQ60tFF+Xhq8< z@&jNr$IS__tGseZgt%D(_tq-c8g4Z|at4Q~PSjhzD!gKkzf_NF_rBOD)p&~?JWyLn zq^)oj#XTVkqF_2%xjB9u|S#x*y?o%Mun}m)NBsEW4i?m6dd8}!=i+9i;J7$ duqCb=Ec~)8l~gHLOsX2w3w!F|04YWQ`CnBOxKscD literal 0 HcmV?d00001 diff --git a/web/api/py/codechecker_api/dist/codechecker_api.tar.gz b/web/api/py/codechecker_api/dist/codechecker_api.tar.gz index 3875d3ef7f4af5433227592e105f35a32e274690..9a212c9977741b96a8ead96cc0660ffb494bcef9 100644 GIT binary patch delta 57273 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 Sn0mNHKF7k~;zmh)f$~3?)S-0% diff --git a/web/api/py/codechecker_api_shared/dist/codechecker_api_shared.tar.gz b/web/api/py/codechecker_api_shared/dist/codechecker_api_shared.tar.gz index 4d607e2b2f3c9ebfa2544686ec7ba7c03a115076..e8f7a50e00e618433557da74c69db00bc9f6c4c9 100644 GIT binary patch literal 7931 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�F2 z{T&a17po<4qF3%9UdT4tQJ$B?eqs$$u*MX)F*^VIUY05uTf$2nR(jc{aFaq}OZZD* l?Aa790sh0bDut_6JjGKy#Zx@RQ#`Nz{4b|ZC&B>800438m@@zX literal 7977 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 diff --git a/web/client/codechecker_client/client.py b/web/client/codechecker_client/client.py index 730a83446b..1ca0bff6cf 100644 --- a/web/client/codechecker_client/client.py +++ b/web/client/codechecker_client/client.py @@ -12,8 +12,8 @@ import getpass import sys - from thrift.Thrift import TApplicationException +from authlib.integrations.requests_client import OAuth2Session import codechecker_api_shared from codechecker_api.Authentication_v6 import ttypes as AuthTypes @@ -130,13 +130,26 @@ def login_user(protocol, host, port, username, login=False): LOG.error("Authentication failed! Please check your credentials.") LOG.error(reqfail.message) sys.exit(1) + elif 'oauth' in str(methods): + # GitHub app config + client_id = "66f0228ec6eea4a784a1" + client_secret = "db8297561255880f62c7ea7a602fba6f1343e7cc" + scope = "user:email" # + + # Create an OAuth2Session instance + url, _ = OAuth2Session(client_id, client_secret, scope=scope).create_authorization_url("https://github.com/login/oauth/authorize") + + print("Please visit this URL to authenticate: ", url) + print("OAuth authentication is client.py in codechecker client.") + return url + sys.exit(1) else: LOG.critical("No authentication methods were reported by the server " "that this client could support.") sys.exit(1) -def perform_auth_for_handler(auth_client, host, port, manager): +def perform_auth_for_handler(auth_client, host, port, manager): # Before actually communicating with the server, # we need to check authentication first. diff --git a/web/client/codechecker_client/helpers/authentication.py b/web/client/codechecker_client/helpers/authentication.py index f222cea661..d29539252d 100644 --- a/web/client/codechecker_client/helpers/authentication.py +++ b/web/client/codechecker_client/helpers/authentication.py @@ -43,6 +43,10 @@ def getAccessControl(self): @thrift_client_call def performLogin(self, auth_method, auth_string): pass + + @ThriftClientCall + def createLink(self): + pass @thrift_client_call def destroySession(self): diff --git a/web/server/codechecker_server/api/authentication.py b/web/server/codechecker_server/api/authentication.py index 1430ad9fd6..4daa2c9c32 100644 --- a/web/server/codechecker_server/api/authentication.py +++ b/web/server/codechecker_server/api/authentication.py @@ -9,7 +9,7 @@ Handle Thrift requests for authentication. """ - +from authlib.integrations.requests_client import OAuth2Session import json import codechecker_api_shared @@ -92,9 +92,23 @@ def getAuthParameters(self): def getLoggedInUser(self): return self.__auth_session.user if self.__auth_session else "" + @timeit + def createLink(self): + # GitHub app config + client_id = "66f0228ec6eea4a784a1" + client_secret = "db8297561255880f62c7ea7a602fba6f1343e7cc" + scope = "user:email" # + + # Create an OAuth2Session instance + url, _ = OAuth2Session(client_id, client_secret, scope=scope).create_authorization_url("https://github.com/login/oauth/authorize") + + print("Please visit this URL to authenticate: ", url) + # return url + return "https://github.com" + @timeit def getAcceptedAuthMethods(self): - return ["Username:Password"] + return ["Username:Password","oauth"] @timeit def getAccessControl(self): @@ -166,6 +180,8 @@ def performLogin(self, auth_method, auth_string): raise codechecker_api_shared.ttypes.RequestFailed( codechecker_api_shared.ttypes.ErrorCode.AUTH_DENIED, msg) + elif auth_method == "oauth": + print("OAuth authentication from file api auhentication.") raise codechecker_api_shared.ttypes.RequestFailed( codechecker_api_shared.ttypes.ErrorCode.AUTH_DENIED, diff --git a/web/server/vue-cli/src/store/actions.type.js b/web/server/vue-cli/src/store/actions.type.js index 6744f6b982..0109504dc7 100644 --- a/web/server/vue-cli/src/store/actions.type.js +++ b/web/server/vue-cli/src/store/actions.type.js @@ -2,6 +2,8 @@ export const GET_AUTH_PARAMS = "getAuthParameters"; export const GET_LOGGED_IN_USER = "getLoggedInUser"; export const LOGIN = "login"; export const LOGOUT = "logout"; +export const OAUTH = "oauth"; + export const GET_CURRENT_PRODUCT = "getCurrentProduct"; export const GET_CURRENT_PRODUCT_CONFIG = "getCurrentProductConfig"; diff --git a/web/server/vue-cli/src/store/modules/auth.js b/web/server/vue-cli/src/store/modules/auth.js index f157a164fc..b1d772483f 100644 --- a/web/server/vue-cli/src/store/modules/auth.js +++ b/web/server/vue-cli/src/store/modules/auth.js @@ -3,7 +3,8 @@ import { GET_AUTH_PARAMS, GET_LOGGED_IN_USER, LOGIN, - LOGOUT + LOGOUT, + OAUTH } from "../actions.type"; import { @@ -89,6 +90,30 @@ const actions = { reject(err); })); }); + }, + + [OAUTH]() { + return new Promise(resolve => { + // resolve("google.com"); + resolve(authService.getClient().createLink()); + // authService.getClient().createLink( + // handleThriftErrorsuccess => {( + // if (success) { + // resolve(success); + // } + // }) + // ); + // resolve(authService.getClient().performLogin("oauth", "")); + // handleThriftError(token => { + // context.commit(SET_AUTH, { + // userName: "OAuth", + // token: token + // }); + // resolve(token); + // }, err => { + // reject(err); + // })); + }); } }; diff --git a/web/server/vue-cli/src/views/Login.vue b/web/server/vue-cli/src/views/Login.vue index e1af873e03..cea28be0e9 100644 --- a/web/server/vue-cli/src/views/Login.vue +++ b/web/server/vue-cli/src/views/Login.vue @@ -67,6 +67,15 @@ > Login + + Login With Github + @@ -76,7 +85,7 @@ \ No newline at end of file diff --git a/web/tests/libtest/env.py b/web/tests/libtest/env.py index 0c3b81b270..02e59b985b 100644 --- a/web/tests/libtest/env.py +++ b/web/tests/libtest/env.py @@ -366,7 +366,7 @@ def enable_auth(workspace): "oauth_client_id": "1", "oauth_client_secret": "1", "oauth_authorization_uri": "http://localhost:3000/login", - "oauth_redirect_uri": "http://localhost:3000/login", + "oauth_callback_url": "http://localhost:8080/login/OAuthLogin/github", "oauth_token_uri": "http://localhost:3000/token", "oauth_user_info_uri": "http://localhost:3000/get_user", "oauth_scope": "openid email profile", @@ -382,7 +382,7 @@ def enable_auth(workspace): "oauth_client_id": "2", "oauth_client_secret": "2", "oauth_authorization_uri": "http://localhost:3000/login", - "oauth_redirect_uri": "http://localhost:3000/login", + "oauth_callback_url": "http://localhost:8080/login/OAuthLogin/google", "oauth_token_uri": "http://localhost:3000/token", "oauth_user_info_uri": "http://localhost:3000/get_user", "oauth_scope": "openid email profile", @@ -398,7 +398,7 @@ def enable_auth(workspace): "oauth_client_id": "3", "oauth_client_secret": "3", "oauth_authorization_uri": "http://localhost:3000/login", - "oauth_redirect_uri": "http://localhost:3000/login", + "oauth_callback_url": "http://localhost:8080/login/OAuthLogin/dummy", "oauth_token_uri": "http://localhost:3000/token", "oauth_user_info_uri": "http://localhost:3000/get_user", "oauth_scope": "openid email profile", From ad5beec3849a189e639749f6b6a92a61917044ae Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Mon, 9 Dec 2024 14:42:33 +0100 Subject: [PATCH 74/83] fixed unnescessary passing of state and code_challenge to client --- .../codechecker_server/api/authentication.py | 25 +++++++++++++------ web/server/vue-cli/src/views/Login.vue | 7 ------ web/server/vue-cli/src/views/OAuthLogin.vue | 22 ++++------------ web/tests/libtest/env.py | 9 ++++--- 4 files changed, 28 insertions(+), 35 deletions(-) diff --git a/web/server/codechecker_server/api/authentication.py b/web/server/codechecker_server/api/authentication.py index 3992a24c06..365db06a62 100644 --- a/web/server/codechecker_server/api/authentication.py +++ b/web/server/codechecker_server/api/authentication.py @@ -237,14 +237,11 @@ def createLink(self, provider): ) # Create authorization URL - nonce = generate_token() url, state = session.create_authorization_url( authorization_uri, - nonce=nonce, state=stored_state, code_verifier=pkce_verifier ) - # Save the state and nonce to the database oauth_data_id = self.insertDataOauth(state=state, code_verifier=pkce_verifier, @@ -254,7 +251,7 @@ def createLink(self, provider): codechecker_api_shared.ttypes.ErrorCode.AUTH_DENIED, "OAuth data insertion failed.") - LOG.debug("State inserted successfully with ID %s", oauth_data_id) + LOG.info("Data inserted successfully with ID %s", oauth_data_id) return url + "&oauth_data_id=" + str(oauth_data_id) @timeit @@ -289,8 +286,6 @@ def performLogin(self, auth_method, auth_string): parsed_query = parse_qs(url_new.query) code = parsed_query.get("code")[0] state = parsed_query.get("state")[0] - cc = parsed_query.get("code_challenge")[0] - cc_method = parsed_query.get("code_challenge_method")[0] oauth_data_id = parsed_query.get("oauth_data_id")[0] # for code verifier from created link and original code_verifier_db = None @@ -325,6 +320,7 @@ def performLogin(self, auth_method, auth_string): client_id = oauth_config["oauth_client_id"] client_secret = oauth_config["oauth_client_secret"] scope = oauth_config["oauth_scope"] + authorization_uri = oauth_config["oauth_authorization_uri"] token_url = oauth_config["oauth_token_uri"] user_info_url = oauth_config["oauth_user_info_uri"] callback_url = oauth_config["oauth_callback_url"] @@ -346,6 +342,19 @@ def performLogin(self, auth_method, auth_string): codechecker_api_shared.ttypes.ErrorCode.AUTH_DENIED, "OAuth2Session creation failed.") + # recreating the url for pkce purpose + # no way to get the original session so recreate it + # no returning url or state + url_recreated = session.create_authorization_url( + authorization_uri, + state=state_db, + code_verifier=code_verifier_db + )[0] + + hashed_challenge = urlparse(url_recreated) + parsed_query_r = parse_qs(hashed_challenge.query) + cc = parsed_query_r.get("code_challenge")[0] + # FIXME: This is a workaround for the Microsoft OAuth2 provider # which doesn't correctly fetch the code from url. # the workaround is to construct the url manually @@ -353,12 +362,12 @@ def performLogin(self, auth_method, auth_string): url = url_new.scheme + "://" + url_new.netloc + url_new.path + \ "?code=" + code + "&state=" + state + \ "&code_challenge=" + cc + \ - "&code_challenge_method=" + cc_method + "&code_challenge_method=S256" LOG.info("URL has been constructed successfully") token = None try: - # code_verifier_db is not supported for github provider + # code_verifier_db or PKCE is't supported by github # if it will be fixed the code should adjust automatically token = session.fetch_token( url=token_url, diff --git a/web/server/vue-cli/src/views/Login.vue b/web/server/vue-cli/src/views/Login.vue index 6d8ddd0840..9e0bb56647 100644 --- a/web/server/vue-cli/src/views/Login.vue +++ b/web/server/vue-cli/src/views/Login.vue @@ -211,7 +211,6 @@ export default { oauth(provider) { new Promise(resolve => { localStorage.setItem("oauth_provider", provider); - // console output the provider for debugging authService.getClient().createLink(provider, handleThriftError(url => { resolve(url); @@ -221,14 +220,8 @@ export default { this.success = false; this.error = false; const params = new URLSearchParams(url); - localStorage.setItem("oauth_state", - params.get("state")); localStorage.setItem("oauth_data_id", params.get("oauth_data_id")); - localStorage.setItem("code_challenge", - params.get("code_challenge")); - localStorage.setItem("method", - params.get("code_challenge_method")); window.location.href = url; } else { diff --git a/web/server/vue-cli/src/views/OAuthLogin.vue b/web/server/vue-cli/src/views/OAuthLogin.vue index 50e7d0b57a..75a7452130 100644 --- a/web/server/vue-cli/src/views/OAuthLogin.vue +++ b/web/server/vue-cli/src/views/OAuthLogin.vue @@ -55,26 +55,14 @@ export default { methods: { detectCallback() { - const url = this.$route.query; + const params = this.$route.query; + const url = window.location.href; const provider = this.$route.params.provider; - const state = localStorage.getItem("oauth_state"); - const code_challenge = localStorage.getItem("code_challenge"); - const method = localStorage.getItem("method"); - if (url.code != null && url.state != null) { - if (url.state != state) { - this.errorMsg = "Invalid state!"; - this.error = true; - this.callback = true; - return; - } + if (params.code != null && params.state != null) { const oauth_data_id = localStorage.getItem("oauth_data_id"); - const baseUrl = window.location.href.replace("#", ""); - const baseUrlOAuthId = `${baseUrl}&oauth_data_id=${oauth_data_id}`; - const baseMethod = `${baseUrlOAuthId}&code_challenge_method=${method}`; - const fullUrl = `${baseMethod}&code_challenge=${code_challenge}`; - + const fullUrl = `${url}&oauth_data_id=${oauth_data_id}`; this.$store .dispatch(LOGIN, { type: "oauth", @@ -93,7 +81,7 @@ export default { this.$router.replace({ name: "login" }); }); } - } + }, } }; diff --git a/web/tests/libtest/env.py b/web/tests/libtest/env.py index 02e59b985b..b26de5339f 100644 --- a/web/tests/libtest/env.py +++ b/web/tests/libtest/env.py @@ -366,7 +366,8 @@ def enable_auth(workspace): "oauth_client_id": "1", "oauth_client_secret": "1", "oauth_authorization_uri": "http://localhost:3000/login", - "oauth_callback_url": "http://localhost:8080/login/OAuthLogin/github", + "oauth_callback_url": "http://localhost:8080/login/" + + "OAuthLogin/github", "oauth_token_uri": "http://localhost:3000/token", "oauth_user_info_uri": "http://localhost:3000/get_user", "oauth_scope": "openid email profile", @@ -382,7 +383,8 @@ def enable_auth(workspace): "oauth_client_id": "2", "oauth_client_secret": "2", "oauth_authorization_uri": "http://localhost:3000/login", - "oauth_callback_url": "http://localhost:8080/login/OAuthLogin/google", + "oauth_callback_url": "http://localhost:8080/login/" + + "OAuthLogin/google", "oauth_token_uri": "http://localhost:3000/token", "oauth_user_info_uri": "http://localhost:3000/get_user", "oauth_scope": "openid email profile", @@ -398,7 +400,8 @@ def enable_auth(workspace): "oauth_client_id": "3", "oauth_client_secret": "3", "oauth_authorization_uri": "http://localhost:3000/login", - "oauth_callback_url": "http://localhost:8080/login/OAuthLogin/dummy", + "oauth_callback_url": "http://localhost:8080/login/" + + "OAuthLogin/dummy", "oauth_token_uri": "http://localhost:3000/token", "oauth_user_info_uri": "http://localhost:3000/get_user", "oauth_scope": "openid email profile", From e3d6d7a2ed2e5906892760eca4cea9ba3819f0cb Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Mon, 9 Dec 2024 16:09:31 +0100 Subject: [PATCH 75/83] removed oauth_data_id, was prone to attack, now uses state for querying data --- .../codechecker_server/api/authentication.py | 43 +++++-------------- web/server/vue-cli/src/views/Login.vue | 3 -- web/server/vue-cli/src/views/OAuthLogin.vue | 4 +- .../functional/authentication/oauth_server.py | 2 - .../authentication/test_authentication.py | 5 +-- 5 files changed, 14 insertions(+), 43 deletions(-) diff --git a/web/server/codechecker_server/api/authentication.py b/web/server/codechecker_server/api/authentication.py index 365db06a62..ca75689978 100644 --- a/web/server/codechecker_server/api/authentication.py +++ b/web/server/codechecker_server/api/authentication.py @@ -180,25 +180,11 @@ def insertDataOauth(self, state, code_verifier, provider): provider=provider) session.add(new_state) session.commit() - LOG.debug("State inserted into the database") - - oauth_data_id = session.query(OAuthSession) \ - .filter( - OAuthSession.state == new_state.state - and - OAuthSession.expires_at == new_state.expires_at - and - OAuthSession.code_verifier == new_state.code_verifier - and - OAuthSession.provider == new_state.provider - ).first().id - - LOG.debug("FETCHED STATE ID") - LOG.debug("State %s inserted successfully", state) - LOG.debug("verifier %s inserted sucessfully ", code_verifier) - return oauth_data_id + + LOG.info("State inserted successfully.") + except sqlite3.Error as e: - LOG.error(f"An error occurred: {e}") # added here re1move + LOG.error(f"An error occurred: {e}") raise codechecker_api_shared.ttypes.RequestFailed( codechecker_api_shared.ttypes.ErrorCode.AUTH_DENIED, "OAuth data insertion failed. Please try again.") @@ -242,17 +228,12 @@ def createLink(self, provider): state=stored_state, code_verifier=pkce_verifier ) - # Save the state and nonce to the database - oauth_data_id = self.insertDataOauth(state=state, - code_verifier=pkce_verifier, - provider=provider) - if not oauth_data_id: - raise codechecker_api_shared.ttypes.RequestFailed( - codechecker_api_shared.ttypes.ErrorCode.AUTH_DENIED, - "OAuth data insertion failed.") + # inserting data in database + self.insertDataOauth(state=state, + code_verifier=pkce_verifier, + provider=provider) - LOG.info("Data inserted successfully with ID %s", oauth_data_id) - return url + "&oauth_data_id=" + str(oauth_data_id) + return url @timeit def performLogin(self, auth_method, auth_string): @@ -286,8 +267,6 @@ def performLogin(self, auth_method, auth_string): parsed_query = parse_qs(url_new.query) code = parsed_query.get("code")[0] state = parsed_query.get("state")[0] - oauth_data_id = parsed_query.get("oauth_data_id")[0] - # for code verifier from created link and original code_verifier_db = None state_db = None provider_db = None @@ -299,7 +278,7 @@ def performLogin(self, auth_method, auth_string): OAuthSession.code_verifier, OAuthSession.provider, OAuthSession.expires_at) \ - .filter(OAuthSession.id == oauth_data_id) \ + .filter(OAuthSession.state == state) \ .first() if str(state_db) != state or str(provider_db) != provider \ @@ -344,7 +323,7 @@ def performLogin(self, auth_method, auth_string): # recreating the url for pkce purpose # no way to get the original session so recreate it - # no returning url or state + url_recreated = session.create_authorization_url( authorization_uri, state=state_db, diff --git a/web/server/vue-cli/src/views/Login.vue b/web/server/vue-cli/src/views/Login.vue index 9e0bb56647..33cd8842e2 100644 --- a/web/server/vue-cli/src/views/Login.vue +++ b/web/server/vue-cli/src/views/Login.vue @@ -219,9 +219,6 @@ export default { if (url) { this.success = false; this.error = false; - const params = new URLSearchParams(url); - localStorage.setItem("oauth_data_id", - params.get("oauth_data_id")); window.location.href = url; } else { diff --git a/web/server/vue-cli/src/views/OAuthLogin.vue b/web/server/vue-cli/src/views/OAuthLogin.vue index 75a7452130..86e51e6546 100644 --- a/web/server/vue-cli/src/views/OAuthLogin.vue +++ b/web/server/vue-cli/src/views/OAuthLogin.vue @@ -61,13 +61,11 @@ export default { if (params.code != null && params.state != null) { - const oauth_data_id = localStorage.getItem("oauth_data_id"); - const fullUrl = `${url}&oauth_data_id=${oauth_data_id}`; this.$store .dispatch(LOGIN, { type: "oauth", provider: provider, - url: fullUrl + url: url }) .then(() => { this.success = true; diff --git a/web/tests/functional/authentication/oauth_server.py b/web/tests/functional/authentication/oauth_server.py index 578fbb291a..4f5fcad0d9 100644 --- a/web/tests/functional/authentication/oauth_server.py +++ b/web/tests/functional/authentication/oauth_server.py @@ -87,12 +87,10 @@ def login_tester(self): if query_result: state = params['state'] code = query_result['code'] - oauth_data_id = params['oauth_data_id'] code_challenge = params['code_challenge'] ccm = params['code_challenge_method'] return self.show_json({"code": code, "state": state, - "oauth_data_id": oauth_data_id, "code_challenge": code_challenge, "code_challenge_method": ccm}) diff --git a/web/tests/functional/authentication/test_authentication.py b/web/tests/functional/authentication/test_authentication.py index 950e1243a0..8bd9bda576 100644 --- a/web/tests/functional/authentication/test_authentication.py +++ b/web/tests/functional/authentication/test_authentication.py @@ -198,12 +198,11 @@ def try_login(self, provider, username, password): raise RequestFailed(data['error']) link = link.split('?')[0] - code, state, oauth_data_id, code_challenge, code_challenge_method = \ - data['code'], data['state'], data['oauth_data_id'], \ + code, state, code_challenge, code_challenge_method = \ + data['code'], data['state'], \ data['code_challenge'], \ data['code_challenge_method'] auth_string = f"{link}?code={code}&state={state}" \ - f"&oauth_data_id={oauth_data_id}" \ f"&code_challenge_method={code_challenge_method}" \ f"&code_challenge={code_challenge}" From 6148c4db269fcdd161432f9bdcc60896feb3e70c Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Tue, 7 Jan 2025 15:09:03 +0100 Subject: [PATCH 76/83] Add check for invalid callback URL format and enhance documentation --- docs/web/authentication.md | 2 +- web/requirements.txt | 1 + .../codechecker_server/api/authentication.py | 5 ++++ web/server/codechecker_server/server.py | 29 +++++++++++++++++++ .../codechecker_server/session_manager.py | 17 ++++++----- 5 files changed, 46 insertions(+), 8 deletions(-) diff --git a/docs/web/authentication.md b/docs/web/authentication.md index 7847306291..0bef16c0c9 100644 --- a/docs/web/authentication.md +++ b/docs/web/authentication.md @@ -401,7 +401,7 @@ CodeChecker also supports OAUTH-based authentication. The `authentication.method "oauth_client_id": "client id", "oauth_client_secret": "client secret", "oauth_authorization_uri": "https://accounts.google.com/o/oauth2/auth", - "oauth_callback_url": "http://localhost:8080/login/provider", + "oauth_callback_url": "http://localhost:8080/login/OAuthLogin/provider", "oauth_token_uri": "https://accounts.google.com/o/oauth2/token", "oauth_user_info_uri": "https://www.googleapis.com/oauth2/v1/userinfo", "oauth_scope": "openid email profile", diff --git a/web/requirements.txt b/web/requirements.txt index b827484521..07ec40a8e7 100644 --- a/web/requirements.txt +++ b/web/requirements.txt @@ -9,6 +9,7 @@ gitpython==3.1.41 PyYAML==6.0.1 types-PyYAML==6.0.12.12 sarif-tools==1.0.0 +authlib==1.3.2 ./api/py/codechecker_api/dist/codechecker_api.tar.gz ./api/py/codechecker_api_shared/dist/codechecker_api_shared.tar.gz diff --git a/web/server/codechecker_server/api/authentication.py b/web/server/codechecker_server/api/authentication.py index ca75689978..6dba2052fd 100644 --- a/web/server/codechecker_server/api/authentication.py +++ b/web/server/codechecker_server/api/authentication.py @@ -263,6 +263,8 @@ def performLogin(self, auth_method, auth_string): elif auth_method == "oauth": date_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") provider, url = auth_string.split("@") + # make the provider not case sensitive + provider = provider.lower() url_new = urlparse(url) parsed_query = parse_qs(url_new.query) code = parsed_query.get("code")[0] @@ -281,6 +283,9 @@ def performLogin(self, auth_method, auth_string): .filter(OAuthSession.state == state) \ .first() + # make the provider from the database not case sensitive + provider_db = provider_db.lower() + if str(state_db) != state or str(provider_db) != provider \ or str(date_time) > str(expires_at): LOG.error("State code mismatch.") diff --git a/web/server/codechecker_server/server.py b/web/server/codechecker_server/server.py index 56bdae5d02..83d38ed85e 100644 --- a/web/server/codechecker_server/server.py +++ b/web/server/codechecker_server/server.py @@ -23,6 +23,8 @@ import sys from typing import List, Optional, Tuple +import re + import multiprocess from sqlalchemy.orm import sessionmaker from sqlalchemy.sql.expression import func @@ -1016,10 +1018,37 @@ def start_server(config_directory, package_data, port, config_sql_server, "created at '%s'", server_cfg_file) shutil.copyfile(example_cfg_file, server_cfg_file) + def __check_callback_url_format(provider_name, callback_url): + """ + check the format of callback url using regex + """ + protocol = "http(s|)" + website = "[a-zA-Z0-9.-]+([:][0-9]{2,5}|)" + paths = "login[/]OAuthLogin" + + pattern_str = "^%s[:][/]{2}%s[/]%s[/]%s$" % (protocol, website, paths, provider_name) + pattern = re.compile(pattern_str) + match = pattern.match(callback_url) + + return match is not None + try: manager = session_manager.SessionManager( server_cfg_file, force_auth) + cfg_dict = manager.get_config_dict() + oauth_config = cfg_dict['authentication']['method_oauth'].get('providers', {}) + # Iterate through the providers and print the callback_url + for provider_name, provider_data in oauth_config.items(): + callback_url = provider_data.get('oauth_callback_url') + try: + if not __check_callback_url_format(provider_name, callback_url): + raise ValueError("The callback url format is invalid.") + except ValueError as verr: + LOG.error(verr) + LOG.error("The callback url format is invalid. " + "Please check the configuration file.") + sys.exit(1) except IOError as ioerr: LOG.debug(ioerr) LOG.error("The server's configuration file " diff --git a/web/server/codechecker_server/session_manager.py b/web/server/codechecker_server/session_manager.py index 4bcc6ace65..61189fb399 100644 --- a/web/server/codechecker_server/session_manager.py +++ b/web/server/codechecker_server/session_manager.py @@ -178,17 +178,17 @@ def __init__(self, configuration_file, force_auth=False): self.__sessions = [] self.__configuration_file = configuration_file - scfg_dict = self.__get_config_dict() + self.scfg_dict = self.__get_config_dict() # FIXME: Refactor this. This is irrelevant to authentication config, # so it should NOT be handled by session_manager. A separate config # handler for the server's stuff should be created, that can properly # instantiate SessionManager with the found configuration. - self.__worker_processes = get_worker_processes(scfg_dict) - self.__max_run_count = scfg_dict.get('max_run_count', None) - self.__store_config = scfg_dict.get('store', {}) - self.__keepalive_config = scfg_dict.get('keepalive', {}) - self.__auth_config = scfg_dict['authentication'] + self.__worker_processes = get_worker_processes(self.scfg_dict) + self.__max_run_count = self.scfg_dict.get('max_run_count', None) + self.__store_config = self.scfg_dict.get('store', {}) + self.__keepalive_config = self.scfg_dict.get('keepalive', {}) + self.__auth_config = self.scfg_dict['authentication'] if force_auth: LOG.debug("Authentication was force-enabled.") @@ -216,7 +216,7 @@ def __init__(self, configuration_file, force_auth=False): self.__group_regexes_compiled = d # If no methods are configured as enabled, disable authentication. - if scfg_dict['authentication'].get('enabled'): + if self.scfg_dict['authentication'].get('enabled'): found_auth_method = False if 'method_dictionary' in self.__auth_config and \ @@ -268,6 +268,9 @@ def get_oauth_providers(self): result.append(provider) return result + def get_config_dict(self): + return self.scfg_dict + def get_oauth_config(self, provider): provider_cfg = self.__auth_config.get( 'method_oauth', {}).get("providers", {}).get(provider, {}) From 1df88ffa012fabf2c6f75ac321d5c7f0f767c9a9 Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Thu, 9 Jan 2025 14:48:01 +0100 Subject: [PATCH 77/83] testing test cases --- web/requirements.txt | 1 - web/server/codechecker_server/server.py | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/requirements.txt b/web/requirements.txt index 163fa82081..41269548f4 100644 --- a/web/requirements.txt +++ b/web/requirements.txt @@ -9,7 +9,6 @@ gitpython==3.1.41 PyYAML==6.0.1 types-PyYAML==6.0.12.12 sarif-tools==1.0.0 -authlib==1.3.2 ./api/py/codechecker_api/dist/codechecker_api.tar.gz ./api/py/codechecker_api_shared/dist/codechecker_api_shared.tar.gz diff --git a/web/server/codechecker_server/server.py b/web/server/codechecker_server/server.py index 177bb2c630..643c1e19ce 100644 --- a/web/server/codechecker_server/server.py +++ b/web/server/codechecker_server/server.py @@ -1084,7 +1084,8 @@ def check_callback_url_format(provider_name, callback_url): LOG.error(verr) LOG.error("The callback url format is invalid. " "Please check the configuration file.") - sys.exit(1) + # turns off the provider if the callback url is invalid + provider_data['enabled'] = False except IOError as ioerr: LOG.debug(ioerr) LOG.error("The server's configuration file " From 0b9f8f9672071df64cfae868eab408d52cc5e5c9 Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Thu, 9 Jan 2025 15:58:12 +0100 Subject: [PATCH 78/83] working implementation of callback_url format check --- web/server/codechecker_server/server.py | 6 ++++-- web/server/config/server_config.json | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/web/server/codechecker_server/server.py b/web/server/codechecker_server/server.py index 643c1e19ce..88fddb75a8 100644 --- a/web/server/codechecker_server/server.py +++ b/web/server/codechecker_server/server.py @@ -1074,7 +1074,8 @@ def check_callback_url_format(provider_name, callback_url): # the 2 varible are here because in 1 line it was too long auth_config = cfg_dict['authentication']['method_oauth'] oauth_config = auth_config.get('providers', {}) - # Iterate through the providers and print the callback_url + # Iterate through the providers and + # checks the format of callback url for provider_name, provider_data in oauth_config.items(): callback_url = provider_data.get('oauth_callback_url') try: @@ -1082,9 +1083,10 @@ def check_callback_url_format(provider_name, callback_url): raise ValueError("The callback url format is invalid.") except ValueError as verr: LOG.error(verr) - LOG.error("The callback url format is invalid. " + LOG.error("The callback url format is invalid." "Please check the configuration file.") # turns off the provider if the callback url is invalid + LOG.debug("Turning off the provider: %s", provider_name) provider_data['enabled'] = False except IOError as ioerr: LOG.debug(ioerr) diff --git a/web/server/config/server_config.json b/web/server/config/server_config.json index ed3adc17a3..192c52705b 100644 --- a/web/server/config/server_config.json +++ b/web/server/config/server_config.json @@ -65,7 +65,7 @@ "oauth_client_id" : "ExampleClientID", "oauth_client_secret": "ExampleClientSecret", "oauth_authorization_uri": "https://github.com/login/oauth/authorize", - "oauth_callback_url": "http://path_To_CodeChecker_Login_Page/provider", + "oauth_callback_url": "http://codechecker_host/login/OAuthLogin/provider", "oauth_token_uri": "https://github.com/login/oauth/access_token", "oauth_user_info_uri": "https://api.github.com/user", "oauth_scope": "openid email profile", @@ -83,7 +83,7 @@ "oauth_client_id" : "ExampleClientID", "oauth_client_secret" : "ExampleClientSecret", "oauth_authorization_uri" : "https://accounts.google.com/o/oauth2/auth", - "oauth_callback_url" : "http://path_To_CodeChecker_Login_Page/provider", + "oauth_callback_url" : "http://codechecker_host/login/OAuthLogin/provider", "oauth_token_uri" : "https://accounts.google.com/o/oauth2/token", "oauth_user_info_uri" : "https://www.googleapis.com/oauth2/v1/userinfo", "oauth_scope" : "openid email profile", @@ -101,7 +101,7 @@ "oauth_client_id": "ExampleClientID", "oauth_client_secret": "ExampleClientSecret", "oauth_authorization_uri": "https://login.microsoftonline.com/92e84ceb-fbfd-47ab-be52-080c6b87953f/oauth2/v2.0/authorize", - "oauth_callback_url": "http://path_To_CodeChecker_Login_Page/provider", + "oauth_callback_url": "http://codechecker_host/login/OAuthLogin/provider", "oauth_token_uri": "https://login.microsoftonline.com/92e84ceb-fbfd-47ab-be52-080c6b87953f/oauth2/v2.0/token", "oauth_user_info_uri": "https://graph.microsoft.com/v1.0/me", "oauth_scope": "User.Read email profile openid", From 15d710fe1515748ca3ff06cc0e3a571e9324837c Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Thu, 9 Jan 2025 16:30:35 +0100 Subject: [PATCH 79/83] removed unnescessary try catch --- web/server/codechecker_server/server.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/web/server/codechecker_server/server.py b/web/server/codechecker_server/server.py index 88fddb75a8..15311f4a54 100644 --- a/web/server/codechecker_server/server.py +++ b/web/server/codechecker_server/server.py @@ -1078,15 +1078,12 @@ def check_callback_url_format(provider_name, callback_url): # checks the format of callback url for provider_name, provider_data in oauth_config.items(): callback_url = provider_data.get('oauth_callback_url') - try: - if not check_callback_url_format(provider_name, callback_url): - raise ValueError("The callback url format is invalid.") - except ValueError as verr: - LOG.error(verr) - LOG.error("The callback url format is invalid." - "Please check the configuration file.") - # turns off the provider if the callback url is invalid - LOG.debug("Turning off the provider: %s", provider_name) + if not check_callback_url_format(provider_name, callback_url): + LOG.warning("The callback URL format is " + f"invalid for provider {provider_name}." + "Please check the configuration file.") + # Turn off the provider if the callback URL is invalid + LOG.warning("Turning off the provider: %s", provider_name) provider_data['enabled'] = False except IOError as ioerr: LOG.debug(ioerr) From 2aadc99ad6b428c2eb88b4ef69a6ffbf669699c5 Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Thu, 9 Jan 2025 16:54:54 +0100 Subject: [PATCH 80/83] fixed documentation inconsistencies and added github pkce problem description --- docs/web/authentication.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/web/authentication.md b/docs/web/authentication.md index 0bef16c0c9..91c665d735 100644 --- a/docs/web/authentication.md +++ b/docs/web/authentication.md @@ -330,7 +330,7 @@ CodeChecker also supports OAUTH-based authentication. The `authentication.method #### OAUTH Configuration options * `enabled` - Indicated if OAUTH authentication is enabled (required for any methods below) + Indicated if OAuth authentication is enabled (required for any methods below) * `providers` @@ -357,7 +357,7 @@ CodeChecker also supports OAUTH-based authentication. The `authentication.method * `oauth_callback_url` User will be redirected back to the provided link after login with returned data. - It should be constructed in that format `http://codechecker_path/login/OAuthLogin/provider` wher `provider` is the the name of the provider of OAuth and should match existing `provider_name`. The `oauth_callback_url` should also match the callback url specified in the config of your provider on their webpage. + It should be constructed in that format `http://codechecker_path/login/OAuthLogin/provider` where `provider` is the the name of the provider of OAuth and should match existing `provider_name`.The `oauth_callback_url` should also match the callback url specified in the config of your provider on their webpage. Example of correct link using github, google and microsoft * http://localhost:8080/login/OAuthLogin/github @@ -420,11 +420,13 @@ CodeChecker also supports OAUTH-based authentication. The `authentication.method } ~~~ -#### Oauth Details per each provider +#### OAuth Details per each provider * Important: 'oauth_callback_url' must always match with link specified in the Providers settings when issuing an access token. +* Important: As of the time this code was written, GitHub does not support PKCE (Proof Key for Code Exchange). Therefore, users logging in with GitHub cannot use PKCE. If GitHub starts supporting PKCE in the future, the code should automatically start using it. + # Client-side configuration ## Web-browser client From 4393e5517ec87865a4dbc6cff8ee15d0f17b63e9 Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Thu, 9 Jan 2025 17:45:57 +0100 Subject: [PATCH 81/83] added documentation that explains the resoning behind fetching primary email for GitHub --- docs/web/authentication.md | 9 ++++++++- web/server/codechecker_server/api/authentication.py | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/web/authentication.md b/docs/web/authentication.md index 91c665d735..afcb61486d 100644 --- a/docs/web/authentication.md +++ b/docs/web/authentication.md @@ -425,7 +425,14 @@ CodeChecker also supports OAUTH-based authentication. The `authentication.method * Important: 'oauth_callback_url' must always match with link specified in the Providers settings when issuing an access token. -* Important: As of the time this code was written, GitHub does not support PKCE (Proof Key for Code Exchange). Therefore, users logging in with GitHub cannot use PKCE. If GitHub starts supporting PKCE in the future, the code should automatically start using it. +* Important: At the time this code was written, GitHub doesn't support PKCE (Proof Key for Code Exchange). +Therefore PKCE is not used when users log in using GitHub. +If GitHub starts supporting PKCE in the future, the code should automatically +start using it ,and in that case, this note can be removed. + +* Important: To maintain consistency between GitHub and other providers, we need to fetch primary email +from another endpoint because GitHub dosn't provide the primary email in the `user_info`,so +we make an API request to fetch the primary email of the GitHub and use it instead of the username provided by the `user_info`. # Client-side configuration diff --git a/web/server/codechecker_server/api/authentication.py b/web/server/codechecker_server/api/authentication.py index 6dba2052fd..a8f195a564 100644 --- a/web/server/codechecker_server/api/authentication.py +++ b/web/server/codechecker_server/api/authentication.py @@ -378,6 +378,9 @@ def performLogin(self, auth_method, auth_string): codechecker_api_shared.ttypes.ErrorCode.AUTH_DENIED, "User info fetch failed.") + # if the provider is github it fetches primary email + # from another api endpoint to maintain username as email + # consistency between GitHub and other providers if provider == "github" and \ "localhost" not in user_info_url: try: From 4b6cc2ef25f6b4607e0874fbe0225f6f02d44751 Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Fri, 10 Jan 2025 15:31:58 +0100 Subject: [PATCH 82/83] modified documentation and format checker for callback url --- docs/web/authentication.md | 1 + web/server/codechecker_server/server.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/web/authentication.md b/docs/web/authentication.md index afcb61486d..1a398d6f4d 100644 --- a/docs/web/authentication.md +++ b/docs/web/authentication.md @@ -363,6 +363,7 @@ CodeChecker also supports OAUTH-based authentication. The `authentication.method * http://localhost:8080/login/OAuthLogin/github * http://localhost:8080/login/OAuthLogin/google * http://localhost:8080/login/OAuthLogin/microsoft + * https://codechecker.gic.ericsson.se/login/OAuthLogin/github * `oauth_token_uri` diff --git a/web/server/codechecker_server/server.py b/web/server/codechecker_server/server.py index 15311f4a54..f107e18e6a 100644 --- a/web/server/codechecker_server/server.py +++ b/web/server/codechecker_server/server.py @@ -1057,7 +1057,7 @@ def check_callback_url_format(provider_name, callback_url): check the format of callback url using regex """ protocol = "http(s|)" - website = "[a-zA-Z0-9.-]+([:][0-9]{2,5}|)" + website = "[a-zA-Z0-9.-_]+([:][0-9]{2,5}|)" paths = "login[/]OAuthLogin" pattern_str = f"^{protocol}://{website}/{paths}/{provider_name}$" From e18d6ab2e370eedacb4bbbc187596e70e48cb092 Mon Sep 17 00:00:00 2001 From: Baghirov Feyruz Date: Wed, 15 Jan 2025 16:56:06 +0100 Subject: [PATCH 83/83] now during the login process all providers send refresh token during the token fetching process --- .../codechecker_server/api/authentication.py | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/web/server/codechecker_server/api/authentication.py b/web/server/codechecker_server/api/authentication.py index a8f195a564..deedeb75d7 100644 --- a/web/server/codechecker_server/api/authentication.py +++ b/web/server/codechecker_server/api/authentication.py @@ -222,11 +222,21 @@ def createLink(self, provider): code_challenge_method='S256' ) - # Create authorization URL - url, state = session.create_authorization_url( - authorization_uri, - state=stored_state, - code_verifier=pkce_verifier + # each provider has different requirements + # for requesting refresh token + if provider == "google": + url, state = session.create_authorization_url( + url=authorization_uri, + state=stored_state, + code_verifier=pkce_verifier, + access_type='offline', + prompt='consent' + ) + else: + url, state = session.create_authorization_url( + authorization_uri, + state=stored_state, + code_verifier=pkce_verifier ) # inserting data in database self.insertDataOauth(state=state,