From 32d52eb6dd32c58016fa99e05078836cb0dcabde Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 22 Jan 2020 03:08:26 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- doc/development/elasticsearch.md | 22 +- .../img/reference_architecture.png | Bin 0 -> 112468 bytes .../img/sidekiq_longest_running_jobs.png | Bin 0 -> 34198 bytes .../img/sidekiq_most_time_consuming_jobs.png | Bin 0 -> 34198 bytes doc/development/scalability.md | 295 ++++++++++++++++++ doc/development/what_requires_downtime.md | 5 + doc/user/instance_statistics/convdev.md | 5 + doc/user/instance_statistics/dev_ops_score.md | 1 + qa/qa/page/base.rb | 2 +- qa/qa/page/merge_request/show.rb | 2 + qa/qa/resource/api_fabricator.rb | 6 + qa/qa/resource/group.rb | 1 + .../flaky_examples/prune-old-flaky-examples | 2 +- 13 files changed, 322 insertions(+), 19 deletions(-) create mode 100644 doc/development/img/reference_architecture.png create mode 100644 doc/development/img/sidekiq_longest_running_jobs.png create mode 100644 doc/development/img/sidekiq_most_time_consuming_jobs.png create mode 100644 doc/development/scalability.md create mode 100644 doc/user/instance_statistics/convdev.md diff --git a/doc/development/elasticsearch.md b/doc/development/elasticsearch.md index bd8a4e1c6d7..e3ec69b6489 100644 --- a/doc/development/elasticsearch.md +++ b/doc/development/elasticsearch.md @@ -15,27 +15,15 @@ In June 2019, Mario de la Ossa hosted a [Deep Dive] on GitLab's [Elasticsearch i [Google Slides]: https://docs.google.com/presentation/d/1H-pCzI_LNrgrL5pJAIQgvLX8Ji0-jIKOg1QeJQzChug/edit [PDF]: https://gitlab.com/gitlab-org/create-stage/uploads/c5aa32b6b07476fa8b597004899ec538/Elasticsearch_Deep_Dive.pdf -## Initial installation on OS X +## Supported Versions -It is recommended to use the Docker image. After installing docker you can immediately spin up an instance with +See [Version Requirements](../integration/elasticsearch.md#version-requirements). -``` -docker run --name elastic56 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.12 -``` +Developers making significant changes to Elasticsearch queries should test their features against all our supported versions. -and use `docker stop elastic56` and `docker start elastic56` to stop/start it. +## Setting up development environment -### Installing on the host - -We currently only support Elasticsearch [5.6 to 6.x](../integration/elasticsearch.md#version-requirements) - -Version 5.6 is available on homebrew and is the recommended version to use in order to test compatibility. - -``` -brew install elasticsearch@5.6 -``` - -There is no need to install any plugins +See the [Elasticsearch GDK setup instructions](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/elasticsearch.md) ## Helpful rake tasks diff --git a/doc/development/img/reference_architecture.png b/doc/development/img/reference_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1414200d07628a1102004eb19030c8c000e10c3d GIT binary patch literal 112468 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�IIsAy2o7QoT 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Ξ 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%0Da6u!!x&#A3-K$$Czok> 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 %pFNvU0mC6FPj-NI@ zdXzTN4-_x#ce2T|^$84a_(gJgm_ahHEGxKfKs2=%3yd6 z)+(K&{;uFck}OQ}9BouyFBYlol*WsAp(0`jgyN997V7#X zj)4R)v;Wi9SH?y4eP06(Fr+htbaxFUNK1#bbV^8fi-E+@DIqX~bP3WZf~d4~BOxFq z5+a}oi26UHUyWam;pi|5U=>2!^!24s=#$>!Db{(UpS%csMBnZ|c+_^l zQlUbwpWtG`E-tsz%~Hm`NxHqv@nynYH{?e>*QPu&l`ect+1#&GE9b39 zK((ya@Ix;;7Qu(lmSeGN55F|HRGq>kuRUa}Z}$Bf>(a=S-RUw)TWSquu!^%*Ku3nt57!U8N508(k&jZp ztYij96W_3`T51kbn@J``u=>v3v58MkMw}AZ=*`M+?YY%z+CUvyj{%mWks*Mo7B4`m zXWjU_Tlxoxi(@BVRudA}ND4e=WO?Oyav#%u?2^-Dp3MUaX#4F{!P61L_b$EDq zHp1{ZGn&6w{rdj3fWkBMoqZT=c}CG zCAKO%Xv5_YoF#7yV8iW0-j}2zKB@G-Ism+uxyMHQLq$qchtVcw3{Zzzn;)r8)jKD4)?-Pl#aF z12>W;FUuOz+!v0c1@Ai|>q&NiQE&~~!R2v?VblRLoOb8Moo~v`qdmTsc-hyK&3V)N zX=Mf$tA8shsQ$vZ5wbBbRZ8*L3#BTXPr$vL!pEKwF^EJ;Ty z5=o3OsYC9B0ORvsrpTg~9aA>P!>98C# zXK04BYz7-~$dZ$H_@2XMfiMxF-8+GS;)(H1y77fOg~;@vmBZ}z+K}>P&rIbqV&}S8am)UakGIY(_il#>Yk~Ar|DYXK}^|PnrWCd{SIw3P|A)0uq@b`xW-D!Q8z|?~NkbX+79)sdg zws^`hZsuKB0DmXNiR$tGX5Vr_L3o;h1_yEU#Zk6r9zY^sEhlH!B@bxXJ_ZJCKlj=T zvO_~pTU+l&K$tEU5@f~T`pV zEts#D##T$|u4yAbXspK)WMLz4)5aVq89NK#7+Br2!Wg&J9h1M-tA5d^rOusgbDI

ioV>i2^qc*rCqolb}XXk7VJ zjNGsKezK^AVa-fP{)yA<#fX2&12s{xP6B?pDrGDY zl#`7T&zqHHS3}Z_oK`I-PkVymvIz-k;CvYU7y!@FjV%i2FU=kgF3o=Lq;C2sCI(-s z4H<^}V@k##-n&k>=bqPkDU<*eC3Sf|ldgGCXi}+H(LHb#CrkeC3Gka8#L1{Vb(cuoet`1!Chg8(%e2XuXrL!mKHNiods|!XrgGYa0|4j1}(6?>}S?3iGN3{2-TTbVsEJq|F*)#LFsMQTX!V}~qOnLR~VJRf;- zJUfop2Eg9`z5%$Q9yFGcEj%nUXHW#wAbtRdx%k)mC(U0cpw{e$E4mK z?LgAt@?PyDWN{W0d4GDRz@YPZRuA7pUH?f^#*?6eU-|D|*!=38la-z+Xc|iHb*RWE z_m#i@W`vWfDYZ=MjW9QxtJ-UNwsKMByQ2k42OowLxf(3~Eegjm;I`*6R?1HkADP(h zWgY+W=ZOn2ZZ)nZoMdX+j={Z>lpk8u`JGK2FVjj*YL<1))HP3+&W51aUcI8aYIfFK zt%J(3&2zntUhX+n)cT5=K2&;i+I(lB_BgP!v=!&HfjwcMCwNnqR zkY7$)l`F-{B)6MfuH!DRtSrjLSDYQlmCll4OTG;%h7ygOP246HDxq2gTjof@%4$fU4%ScshrSKXRRZqj4FO#M#=CL4^kZhD3{>H=Z z6le#&h*bEe7`dE3@>amJ4gYe0*C=~{M)c&DNBOuL^EiN{Ch#bqc}E64M#eq>H?;&k4#kO3V|2JVt8xvQVVEN_5;~s1V<1ME1847 z@`GQ1&Tice*8T#>U<}RNL^gHy!4MFkfK||@ohZ@F0zF6Iy&`kMNlh%i3M(m@0nAzJ zVzH&@j$_c|1e?DG5IGJvCkfo{Vt)s-FCM0)ef>C&YpPKRy`D4;8fin>AK^a$U6>Xa zaRL4gy{M}(u!D6Y;tO07Ygjy`X@(Ix-0KXZKW2q6ES3aRn#uk#5iZU*B&OC5SCUTetaNd>I4nk^tb8 z2xh2|09l7pwIHRN=_0p$V_Dt#q(BMmrOd9ER80sh{BgfemQm%|eVqfeeiOQixdWNP zxSt4&(5!52slCqjc6nwAG;e+B2>9IvfOOeNUthK@QGA`UR}lFfC~d;FW%fEr!B7zF z6VM3ucKik^|0Y14Y6YEBec8DNr}3pVpyyy^rRRQmFeG_(zn4YdaQyQ+klK6;B|up5 z3i@uC0bK{t3WS@GUMfQwmyi-elEV|*G9kPHp&}+I-UFVx&aOZ2=q9CWjV~Gb=Qd!r z1vNSPK?gJ(KxIA(OVj;2u6-3fbvx^T<(bRKx#Nw9Sm%l3IiD#-3Of1vM`_~~&=%5oFL%p3_%bK1{j z?Nz$oK!%i0l#8#&AnDIb9{~5-*atFwS|~d zh2t0uaA`eX0V`fP(%$4=t2ZFIXPgJhm&@cezre=XnhTh#ACicDjn{z@0jtnppg@>M zQK4J4;N|q^VGYK?JWo58_O=*qEroFAOFo->Q)sf_HKCkbaLA%p?f&oAWYWo<>jFl zMUZU)mC)scnd4g@FZZOT-2Srh8lmaC{nqPEG8-`Xd^ct0p(*l~`x^9qfGv*H{AWKB zdiM=U`g<}?O2U%@5oI)n-f2q-lAlzghzZD87#;v3jxYdP(XEozG}(LIM@Q$p9h;(cImf%-5(rB3XkpTL1-+gN4N^+ z^zx;!zH5a4Jr1p)tO+1T=oA!=#(~3dyGjuVf{+MFX1Tz0goV{uX|^}MJ|%^uAM|#} zELy+>8D4T%f!GrsMJti!&KXWK5hvDBL;AqU-Wo;r}N!Vf-7xb8%z~_l`DcG>yxLv%%=!d9S-# zXivFUHPKugRyg$9y|-HYcdX`Ek0c0lHx7WRD3a5&S0WX~NCkInO07{6|B|YxoJw&; zbaG_)X;HelH=Z>g#GmvBv)rZ*l}SyvnRcqUUs;@XP6jQf7%eI)uov-ucf`Goxl5D? zZv&edSwYIwK>!hxesbHNsYl1hG!QUSV4dN^j3Mj$`v+0k?=`U=Js-0HI+MT`fNe4q zbbPe8R*ywqh#f)Hxyl%7pbHPEl+TJy8bz?7O~d{pO68TaB&m$JHQa+~GYdVt@iJ&t zZFKXBn@KoEkb8Dt(loG8j`iUimY_}b5X`)Roi6U1DPMd2t@tMgtP!r}{XU*)69>8s zo&lP6qK@_Nx^Jausc}UosM^$nC0iNTjwR$8vH7(9LGc@ z`zXb&X(pna15a>TNp;JS{WiVHHdB~<_7)|ENxBQ|bz)79`#=V;$j+YF)A`TBbt3{`nm>voH;oV(4_qRSukTy{(|vdJpaL* z6_Z~d`g1^dSm4$(kYwy7^iy)E+bP0) z?RBtX(Q>psjmJrS6_;FN+w-90=5`Jdrg&4V)vGsW{QBVfxrA%3DcYQh(d+Z9h3{4; zQRfnkUNLmh7KD!~#niD(-paBqMywD|`VaR^cuk~u(~VssLac0VuW)enV5Ft&vEH+% zov)zAfw}E&>vmUv5_FopXs`devCP8Fh3DeK7L=Aao7PLveO0z)wU6Skd?b*6vJk{N zj(l^L{zk|ug91Aj{x-{}u%KSiBx%FJ?Rsv^PzyY?e*_wl=V-uPo?Znx3`) zssy%-&&S?(mLEo#_mwsC{{_7w%#bv>ZYRe9lp`J#MkId)_&W7v6MkB_{Dr!r3Zm`j zq-65qHHZEy(WaVJFBd&kuJcB{xbLUE; zaRpF^j7vJ0*a@1$P^vNc5sJNNqG756t$0xxIj_TX^{2FY^=2X0H;=K*@SLa9R1i_^ zp5PlO?^D>EP|Cv^dJ^dRr^|dbix_ewB!$cZ6HL$L=YaJN3QOO*x>0>W`Qxry?V=RI z8wz#p8$b(;Hb(XDiKFTuQM!qy$gQh5*s-N)XG++8*%(c|4{|47{%h+w0SnfW4nwqt z?#vf3?d~xP)rRU(!;6&g>a1XVb!7UQv6ylLK742_)L9U@1d^XPdWrUZ<(tNnX~cCT z6@4F%fN+_!G%?93<1+bMJ1b!z#l(S_;Bs?9dx0QWK#&iuNbZQdsFE*9u&OrVn>Nz0 z&;9g&iN3DHnSY+5*8hl^YTKs>#v#adm-LN>(9PK5;?q`{)!Zs(bSb%B-;~$q6m>~WgbxQ2#z!)?V#*5=7VGR#IlW2d+Z#e2 z7mJdLmDdjJ)B79^#j7q5w75>%#4+~2#=#!_2*IW{<50z&#I9&wE8tv>+bF8}M4~`Z zX_KzZcMfeFm(N?D3`8n-2ruC`i8>>b?5nts7(U$oI9AN7(&vmCF^4Ngv54|84BT{6 zL8Vx~Lad4t^eq*Axct8PJ`m-Z2pQ4`T-)4ktco|~;59s}SZ~sXJbyG#b)}!skpwD> zZ;gBw0}j1wN4S^a%A9qaZM}w|7W9qb3unciJnG`1X4OYHz?B)2T@u z@=kxiHp|Aqn|KX&nszhJvc>3ndgMztoM-AdI_n0*^LC+Yt6^(! z`~s8I9Ks71V2r&%Z)>c9cAZB~NJ6CPT%;@sM`J2}ZFT*oUL)89m(U~Yz!(Y!p_@?1 zgVobD?=Q2WKcJrZBVhbzHnG+?$YfsvYS5SM86S|PNx01Tv1N+<+vp>dAkfh$^d?Lv zVzlazCGpdN>|6j$Xa`JVKGOzO4c$oBEG~%W>cQR?khS9y(;6EZ`U8#iidQM@j+oci zM+TDUX&(PwaV9EwkSQhJp}71l>(8Et0)(eqV!j|R#oUl|x3IAXV^NBrFz(A~^dc7| zMN-@QWo*0S@)aV3fGQKH4CY2v7zQ0<7Mk^@2yZ)EoB^t)WZ)*vCO#&#)!VGPTJL=B z0^s_60Pkz?1OX=4Qt$@_gTm<1Fw2+9y8bx2&n7e3>jHKcGbnT-!Sz*B zmH+Y(Q+D*ttOq96O^?V;$c>~~pZLoJ#?@htr$Ml?$#N(HLX&mu3(kF)Ac%(!geUe> zHD%VGa|05N@BZcDfP@|feM>7u1zAM>XZ&*Z*vn|h#azJTT=V$%zkyE_#Wc=2L{UkV zPc<;Xh%vv_`(=9G*690-Q3*hpRTvE_-)UOIo4bDF@7IyR-)A@72v+$C zbsANnU3|8`GM0Qc%^$z$s|G(zol+SpgX(8X#tB{e|6O-ekVCg)mtRy5!+c@0uO_xIl=Y-jWwq2wr5D`C6==zAuTUwVwd&3KOf`W=ED~d4W)% z4so_y{#zrNN{r!^ISF#}c<~}9xidblRWw+8EU)GSV(k(c5RaYyZm%Mukcqm(2EPvK zf9KVoY!4-fB`T*VEYtk2$@M3%vJVB(!rq&?iss*X{7u%U1OaRCXw`K3><#@+vQccpl7o@b{83ZVQhXwB75aZIFq}~U literal 0 HcmV?d00001 diff --git a/doc/development/img/sidekiq_longest_running_jobs.png b/doc/development/img/sidekiq_longest_running_jobs.png new file mode 100644 index 0000000000000000000000000000000000000000..73f74842a2f3cd0f68594ea94c572be9a107cce7 GIT binary patch literal 34198 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 G<^KRIxG>59 literal 0 HcmV?d00001 diff --git a/doc/development/img/sidekiq_most_time_consuming_jobs.png b/doc/development/img/sidekiq_most_time_consuming_jobs.png new file mode 100644 index 0000000000000000000000000000000000000000..73f74842a2f3cd0f68594ea94c572be9a107cce7 GIT binary patch literal 34198 zcma&NbwHcX(l#8dP$*goZIR&G;>8J2yjZaU#T|+}g&@T}xH~Og+?^u9rMN?JcL@F^ z{hjAI=X~$`$D2Pk_q{tibImogvwKHEJ}O9IW4^`&007uB(&EYh00tNUKncJ=f%nk5 zBnH6WP|ZZ;MFD^c2-cke8vGu~QCaFepmdmY2Yxg8QBGCj@$r$1iz_cLFE;i2>gu0> z>9nY%?4#4Ot*xyetF_?q_^WG}si|phQAKKQ@%_WY#nt8E(Q!;%d{u43(CAn~W`2E3 z=gsYHdw0KsgM*Ne(D>xk#L42^{6cX>eQ9Y~OG`__LQ#5pMt67j>Dl?(#%ABZQ21<) zy1F_T47ME&-`(3+s#^#M2rwTCOj|0Gl$3J$9UT!7;WL?Bwb`Mdps;klowZ!mxi`Fh zbv!Y<5HPU*rDLUaWj}LzPc)(S`_O`Fc8gc-0O3nA>6Ci2qR!&Ardk`rZvcS5o{YGt zs@vRtno?L*GXZp2+6QT~-|acA__NS&PsF!}Y6H9;6`eUkKDlPjEw z4E)YGgakh4Nd|%ruf)#A(QFbsT~mW>RqlCwkHT_a*nH-%u|8#fXJeao#y;)Etq~M6 z+M3cou2uqD8-|-{D_p|9Po?vV1xWH7WfT<^jc~JU|Cw#C1Vaa~3V95jg3pvnnFM!d zttr7$j21p689{UN-ne{{x!mZ-_Km+g@12CxbvvLNPEIYfpi)WAwilmntDMRGJzCGr zD7$E~bxWIG%zp@_M0w)HUFZsoZoEB1#<<{*N@%-=J9y!d!d~PC{S_nO^CZZ1L?Wv-KEwJFGbpT%9^feh>s>}WEAwVyascAk4+-8(SAeB!*}tMWTAC@55gz<$GDqrm_Tfh zwh3&zI{d}})8-iZ1HyWK;sd$e$=CxGH4^$Q8bBgeU*aNmD?QsGlX??I4wIOVUgPuf9g;VybNuEMzC_}13 z8GhqqOsPLj!r5CZ$4=e=zL!~A`>f>hC+<+Qcj@ncb$h1cS1bnpjilOG%5D(#97q3+ zp|n4*4iCU!IPTESv@g8+ZcJ=8n#_CjHV0>AfdYhE2E7`$*) z&GS5D-AibZr^Kr5mlUlei8!Dj;FG9E`TGX@FIjjUku^>^mQAI$5?jjBjipUQ%7&T! zyym-aqC+EX8n*+b4LxyUOZlVct#Y=!7!7z=wOCObc0*tHb;-^6Nk(1F3|~|_J`Xzd zt70HrnJJ25QKAQA5$Q(cupDq9Gn9qCRHx-Xu0c&g_P*A9L$p_CJi6uox^aq{(41k` zw_Di)oDp8*!k5{@K8Bj2ACCh-s<0FKGEZjh@|`B~%f*t@HYvpyt)Hg4bwySbS+!_$ z)4H#pF=hGrEDfVlBgqzziC`MHuQ0Xy;^mhYAbmLa{Or{FGRk7F3k?v^O%MB6RcW3r zHtF&+d$!kE%_79NcIxNxxAbnVVwTD9(`Q@V@rRYp@%c3Dyjl;{mlYk*3z~13ub+ZI zr_pF2{jb`^lvv--E%T-OXPW*DAOm&J{httgaWBh2!q373n4#MJDhfw-u+AR!J+}12 zEs78)Zaf@UkoJXad}UIYIOF&c%;-sl$r?k#mg8q`$+SA0i#m#t@Fo-+1VZOAc=qMT zl3gC<>#P@?A`Sb0J|0KADwhY}ZJ1SPl<291Z6{7WVxo&R;K`1H=wW6>T)W(Apconc zPZS#up{I_5D;G%I{w!IExJQ`NZ^~14qJB$dz4>!*$;yfS>lL!7vIyG@K4Tmo-e_FQ zbFeC*UgnMPFHz&T5r~U96LKmlaOgA7ti96lN5l6>0RrD;<8dc~kt!j+x^)(xUV(0! z6|lg@mMO}RD)6Ge*mqTsA7p;#R8*d9T6Lm+$>o@mb-H@2@)tCsR!bq@1AI#2N#Ch%a4D2RiLN8JNa0nOi^~WCqj7c&@_*sr{IbMwcUP zwlB^l09n(l|Bx0SqmE(f8)4uFdCS}Q#vPeAL0-8-|=IRlj8Uk)PVMiy;~ypdG>jmvG*p0{7xROw@X}o#I>g!gGahJz$QH{1{(z-C=PhSFsmg zN_-J$`LV?Z!qO?l8RGsWn^;2}8}Nk?i5u3gc&yasgPYV%2P0n>cfqPF+A172mlalN(yw1Mxl{fLH2vZeH9ev!Mz z4cBv}M!5c(;{S0he^+~o?!xs7As!ReufBT>BU}S0tGnzHtLR}oBd6K zgx9gd?(~@4(OcOam`0Jcl#*8-&=B6 zw1T9@k$J7Wd&oUtuwI@r@&5Yd+xZY1%Z3H2=#OSlsL8xb$Q!C3{poY`v34LdrCr9XQn| zX~|}O>xBzU=lnUsYp;Dh>TZW5AU!n@XKb*J)ZKC;3=|<@PNV^)@|8Kp7zX;51#egzR+h(m8F{FCIguqg|GmAC;E-^XzN^boG(U*xZ!*-?_dMM^Z0+(JwGsm0p50fC0Fqj zSKueFdo(z*@>u9hE5Jvcz*jB0p;QiRe|*%0Kq6!~z9#3*SKq2$ z{a~V*Ax$m7PmI)iBJ2eKz;sjvi9{oG-hDnfE3L5z33S`pQoCk2@SVKl-6uF^G0_FN zRcsHmOtS3RvIaoB;&8oRu}0nh2EPH4c3b~ZD{VWrik|j$4Ros@`SzCVt57^-lVs!( z%y>8pb-p%d;d$jaALO}ubU5i1BxrFpKfp2B*}8gIA1~_40R*p=d8?mI9wz*npDzfg zbLAB}a^y_OXM0SoBh-rAx>)LgaL+R-cn%3wJw8}1&wH(x*7w=!Ii;)XcE$|FN`&5> z?_JuShA~K}r1e5&1Oi$j?4CL{^l7+V)-)tnz@G}da3hxaE8VUL8}Fg)OSaq%phwcp z<%+6l6DLeUUM<9VzdC~Gf;V7EPlUlXv}Xb$8GOuq24Ke`{3aPfXTe>PtXe`JC2fWO|C zenCCp_Z!4zlv8srl|~1YLJ}>A*;7%@sa# z<@yx=lwdJ&TKMR}yAWJbCGz+k-8J@!$;q)=c6x|v9_7Ot!hq+*a;j*VbMoW2E7oH@ zxT^p_6fU9_0U=rd1rX8tz#pREuYdJj|Gim9JW>Gwr$~sl7ah?8{^@(PJ&k7g+kK4J z;hH^g915m^-5|z~Nw3*%@OAsqPstItZYf~YjUV8Zd4#I=vvo1CzebOlH>m$*@&BUT zI|od&h#qFUHgxI!?Z!eYuwXbKCPeG$KEyG5y_4zET2kiJh~!82YJ{&^OxJ?+`r(AQ zx=dv#Eav6oJlu|;-{KM|rAI*RW=HrfaQ3rx=Q;X%Zb5KC^ZZOgscc}$1ym?Lf5gLi zZ8h_`l72sxyg0oSl;j;aD>T4J{`aSRro?F>y5_~?v{F54>-Jx&1y&g2F3@}@dd$${ zTeyK^)EgAxZ+Q>8@vG`C(h9hJK^bRHW;;*uRmciUZz-?0w*><2YMs9DPg_Y~MhCo) z|3>JH7nU~R;AF+bEG1r(2>DP%)0QpQO-8L;ymx@bG|~7&Jgpzf{pI(E{;ZxOI9csg z>tc67>qgVUG(gJ=Cg&7cB@h!(ixtoQgBo){5z6muJnIa#IWNplTK(_hha~8K$Bh%@ zJ(Pg5pW>qqoC!UOHy$!^tve9})tqPS7oOfTVcYt+{iLRQY(d#qfgDNWvFxZSGAW(L!j0o+qeH#Ce>3z$#3qhuL~qf4raon$;n-2QMnH& zQOHc=u#`6UDhYB*ikhF(PRi%iid!drB3^#Y{N5n6nhY18eWN&qpkZC&l*K#DVVD1% z)M7$v>2t<>f?ZW(!qTc9aXZ|rH+Z2M^iF#amZ-wl>uKp4iQo96ag`b{9f?(=QtHwz zJ6(&va}5^i&ixU{tsNx{^Ys;c#{DagTLZ*@7L&^Rp<5T^@Hr&-{XaglpW$Bw*|WX3 z-$u_xGThF$NMczx+QuDc`(X6MkI$NPU7yg4Z<@X1sNMRxfg`i|l@+4&>{i8q6*MV%6S`y}Mj-(E?rj^ll8 zPlnLteNO8QVo3)L=}0qdJvemvCQd{MdsEdf*NoM-taIj$%=}rfn58X8pr^Zocr1~@LS#&=} z&s~|Kh-W6#`25&{~O>Byd3*JEP++k zr6|a6Z8e%IYt(#A0nra)U`hIM~M|bNs^yn646ZvOB=rVPd+r!h$suYI7lzw zNCj5@DSKvBU5A;rmL!PZL($?(kiNK>jS1_EPnYXWe8Adgh}yXF_0(X)aQ#i^1n^0x zuDIB8CT>$w;w*_9MR$2`kOOf>R(t0S}XW@zAm!an> z%}cPspi$8Z>|ENj=y*X&wXV6Il}SpfT$jlWd}79;FhgeXTq8^D?9k83>@SpW3Mgqm zR97#V#)amoXr*JS=)c|Zq3P!L6uQ%&+mRfgeMsenAyh0ORy`Afdxev)+oHZ)0wFue zb}n|e#%}%-K0C=yL{^d!P0*X?l3Os-<$CtMW}4~Kq)m;$Xio9k3#IaAwHo!s%ISE4 zNgI^9hN+@Ck)L`tcRKM}d-3nObu?HSGAq1vuB(cMrZ2bAiWQ+fBWvSlUeuX=KMd7`DErUp<&a0+fwW7PmR>4J|i?{X9P; zlb@1e{&aP5V6Rq@KV=kA@)+8-Sd~dlELrvv*fBR>saH4Bc<>;6Am*4$_oxUzw31)x zWn6!66mAvtth(G-O%ZBY&!1~e`qbj}`gj@#&_4h4!HtgLuuX{1@ssDR%gk7)>nr$i zZ>8n8)JPZw{3zC5OoeD~!y$*JV79mLgU4MxY}>jgXk;9I-t$rgJME>O*za;)!Yh%N zG}y@la!^5lI53v^z~F5cTnM2Cpi2izLG%XyS8p)9@QNS~mU!?f|2qM20#}9@0{ns7 zLkt1Dfxruc3mtA|7PHydp;*nFol9}M2IaDQA8h7DU z>+JotaYY9H;l4*VluJHe;7@KtRJHWN%^P}zKT0PRz1E+_X9d%@zH+7vje~W&pj7f_ z7T5Cp&eXtUaGkk=$$ZId+JLpOHAi~?iw5wLHENlvHy1x>PIul6rFJ^eB}#ye zXT=VmaK(TVxOBj2j9MK~Eg_iMR)b(0ih1_Pq~hS5C5e85h@^pQGf zkT&Z#<>42vOf|U`9j{-XbRh$L$WGX6a$joR97o~&U_I@{b|w^iUDdD*HeFxq(9x1t zjiBOL<;oF)yF3ijSm%DdiFF-oY%?sC5a$RYY7kz0dEHB+9K+=;UAf8uN=Z9_FXzh$ z$V98H6qoE`wUWo6NkX2Z>x@J{wLFg`=uR86yEOV#BLpJRpBjz?@bUc9slaS4c^E8n zEt&sd*I-(Ikk{E&8m$)H^cHSY6cNe40Y*gf{|xYd$Nq1k{MU>-EX2J3dclxls$v~~ z*eI}w{jgzG1RaON6^o(fU)asedEb6oD*;@3L5IX+=N_(r(&mCvV`?ip^2~o(`IT zUjG1c-wi~P-PbpaA@cc1!O3hFU|Zk~S>Myyi4B89KaJn*CII@) zBz-H2sJ_dO`%SIMMu(%u!0cZ6MmG0PQZRU$+nG$Z!fC!pk0g1%(Mq+7SuTHBT~x33 zV)DS;>QC6>Ri(;WsGE5Y zp#7XRquTSZU=L?U&$%-vK^#j-7CF}NCL1~N+E+4Q>EfA>7OD0#pX-3wm6qi5VGy)w`asvxyo~ zxz7CfYKc6_o>vwMJC+}+D#V{fBa{76&yMemKX0i6HYWz!Ky??NRsVb*0cTxG% zZk*6whavwy^JZ^w{mnMnF$?f-nvY$^N*@Xf*9Jx4@+6C48d%BAqpoSl@}q9}s~AaU zkYTaEQ|pEXgj8Gc$H2;&`=fCu-_b>)Ulx6PGynF_4bn+=^XMkj`J4cf3NQLA5rU2c zGUpfL-d=6Xr#Eev33=SyPS?7?*3_S$A2J{+DZ! zd?8)9@~|q9&EGt87?h#W8Go<<@*whCOOr2z=9*Z@>hIW3$P!k1`v*iB71~`xQ>3Cq zlzZ~?uypbF@Xr6-Xb_d=|J;E7w+IE}!WI5oo&x04Hq(SM)f3GL=tMd7veYmw(YK(n zd&?ls!e#f70qqp!=FwZZYS{YqZ-;!X0V?znF*~XaERko&R1s1LLn7e64SZJy!pW3*NF1i6@+Ne0moklJ(suQ^74f9opw@{;PO`!7b7E0T#`K9tBkuZtKedX zTWp(0%OB(m`6gqOGvJf#q@depd>4sv{k-ywWPe2pgpMNF&vichXzhj`B3QW^bNZ1t z;rcG0s{vl?7sel=hR3EJEQt?Dn;Lfh>QEWyGJ5?%+>Kfux9`#gL;g1!?3=kTcra{qbzx9cc>w*$BiMCt#ls*McT+2-|mFB2E= zXAKt$)$_WBD&E`*-=86gfbULVu${I?_!;EiD*l(f|3UI^+WrTE&(9hoPj&>{=lS*S zaBkb_9L}#Lm_Yy^`8Zgn0LyjK?}_uRI2KRNP`Hr1kzD@0mpAMv`88j}n7qAPD1Xlz zxaCB<^EVW>r;+NDaFvb=l4H0C-jt=*0_E+4Z?xcZ^cKYwL+y5 zl?%t6+#(>0@o?EsV^|p9^rLZu&qt@Jb2JhR?fFaNNmDdkr=w_|1Gv z>2*>&b8>R>XvIMXS1IuFkGdaRsMfAIPfD02`30QAgJF}C0)$(Aki&p^ z7C<|oCJvm9hg&D{d zHdaMo6HtK2N+IAh5#;~KMew)icn*(&?GQSkJc7}R;|aj(6>w-WCIAQ@oQZ>5wNXD) z`zL_G!NFyS-YyGL%gD;V3YmGo$2n-&VFIkyzLG-cx)71#K55*{)#La}&}5opX;{V) zf;ssRT)>K?;&sp`IFPF=Qen4RINonTpYs{k*iU0D5TulL@%#nfBlQY`k61|D>|Qfl zYpN-yY5$owYL0KOPY({tBXMhFjGRuBdmJt z)Bmwn%X3aTFL!BE^7699C*tyg!H7f;{UEm%wt66b+c<0CA;ejIB>9(S(u3bh2+t1r zZVIRP|E`RU&JS<4jR1hv$4;MaCz~s@FRRXHw!-gSQsLzd_4v>Z+OuF z+`pklANWk+ldKFw=@Nr!|B0N@bNn$lsruBN8@wzxO3&B1?xrT-+!ysqTTmw@CV< zt1J?cBXyLn@ATr)GHVgp=zg>8-Hfm`bp}Sj-9iL+J{@;iugMl+OMJ(*@Lt7=gByHp z@puVBY0rJlIU)LV-W-mBkZpWMv=#sC72LH)7rpP_CG`8xh^L;9_0_jmWry{CJ4DJAar7p48C zQh5JhV5=}{Re!i;c5bmMVhf9GW;EDi_IOewQ~PX^#y`g<#eo>4P`eK= zD{~%wRq_w8>m`=N6MiejCe>Je+-&lstXNA*lPdoBq5nH3en2Ro4g z`xi!c4O`S<>^-y9!4){!A?)z4j67lW?g}oeA}BuTvvih(RrB5tnPZpYgHGoIiGi(K zYX>134k?%Mr8!R>ihZ;N2c@4F4WL0gPTF#8*2r{^|WYh+qyb-Z_Ty zKcEom*%6cfpVY(1h`*A(H?Q2~_itiKeF}unKBiAM(Io%%Mj=Im#YiaZ>>&uDYz2j6 zsOKw&1lfBRO=8ORh+zZ;cS@2UAS1=vUV$(ji+CmCQl304X4dF7*(qx4LF5 zyOnDKa|27C!}iNjS7th;l!89W?+W^FVkk6$qlADXkis>1sz(ZgCnob{NQc(?1XIt2 z!Qk*=DMm1$-5VD;PSwNjPuJ5-2m(oO8QnO=-xzc<1BBR8Y=B3SZD5(L-1%YX_^#mC zpDL8sKDw3v-19d8;28&x)PGU`w@V1&CL(U|2qB{QH-PNx!%|-_!11u1hyyt5``6MK zz*J&J54me?Vg4H=M1Tl>NjV_FvHmMGh`{{~-TpN^=@A0|iWmG1J_dmhfilLEg#gc( z!82#}NyjH{4@u@~DImZ$++wp3c;Wj}I|~@>{ek=4{a>AdGuP&?Kp@tskWY$vK%e7m zcs`xLzlYauuQ^7dfGf#9qXhp2PWly=6d5ziiHzu_L?{z1BMJdBPv0P8z@7Ug^&V!f zDe@0ch$}X5LxLmU8UYG-b?pG{uJyxZ`P=qsRbeOHzeq&`ArcNqwzX&)LK%5qwY5P1 zh*DF6!Lp=}Ke8vu5SoZdizJb-w1wzWUctWPsr&tjQjRy*R z3Hpsyj|I#>$fH0kjG$vm1k-;*0muK(y7>ha{RQn-t31Hh_EO}YBho(?y6(KeLI}Yl zHr9D;U-O|w!?YsPw@-aDmt=97GNJCFhY7_KcgTkD){N@_)8m?#{$2t&uWgmJL>l zr|@k*E~(ARZHd9xARZ`kb#MzQPk&eJYR3yRFS2b}v19!9_BJ(cLH8%kcVRtFdbIYEKhh0O4^7IyS(( z^uP>+u%pF}&mXpssTXc79$u-iU3V?Q&1BZk%Xdhe!VCf+jTn@+f8!+vGv`EWBa?@t z+WvwGdgh6V!wlw<$5_*b9aqc3k;-*&s~oGsFZ?0P%cm#s-(Pq&+AiCDAZuGH1NW_6 zG3%X@=6p`pfzRqW-qJQ-LsuD@|Fxk>D;W4rFoG6jT{BX?1)-?It_fB7H)Mm zP>A#fzaspIL^w+5g!=07lH}zl7>0cKS4MCW3^U88huH_7okynpH$&ddYg1k705nw* zG&WrrFYjt6;*LufiBJUYNI3lZqX?QR0A7LNFHjT~EkM@i9ftc>ZH5bf>m;`EzyopC zIP&Y|6EX(Hl*AnxUSIbnR1Lopg99u!xx}{SM{D9Wt;Kd$+sx^CWT(#}YXYq(&V#!g zOZ@*96j_d2OL`%}uKd)UNx))vT8}WN3}J=fqH&Eo+1gz5_42g9$HjLSf(emXODsrJ z6qZTjEEYG5_ROp!{Yq_EStfkz$O?ao`FVYB{;{sm^lXHt=Y|S1{d}?#oZO(BGlJ0g zd+Bp;2dbxq)-$%XZ_O8vBO$8aLRGU{E4CsN?fci8V8*e9MS z9i9t@NOv6{1uSzg)K#CK+0b77Kft$>#Lr7q4V0enev(MQz2CBPWnZAq@))lryD}O3 zqdcFegpob8=O3;mWYt=&?WorZ4yMf-diKQ?y|%(}Ht+f!cDB{HYw`idaX}Sz6jDEH zYL2;cyhg32Ypg(|S+{Q3#?kjaR+UWd;o=r09yF`_`_6p9PjzMzVfi|__C#ky#O}2M z$nSaks?>EBA1{T!v9THo75x?<-q67h)4YKls5M$=xSFy4oQg`?uqJPqkF;$-CDngY z(~Kfd_Wt=A@BKV+?8ok$ZlsTd)7b?vu5z^?0xJ)!`&`wzRS$QnLDbGAWBczH@E%t(r#&&pl?PM8mH^Q!5EIRt zFxZx@$omt9HQ-_}=wXfOwV{I)TWo|>khFa%Pz(r; z_TE(<2{*{+=%6m#-Kiwssqq}scJl0$5f~Ktfqcpy1GpsA)S6b%KNqw~sntET^ZtP9 zKu;NVS8$J%s-mXDI@g9f-?-aYdWmu@W31kE#nz6sVi3=}0bB+EeXll0!{!y9qVg2T zj>Ye>J@HZ=)kqnb5_@rs^wjqm%~tWE)8)kYx~~%jY}-#gAIhuij8crT|pU1yl zHr{9e*ID~CRk57lOP2{)3!PO8}0&0a=x4mHhDkN6?Ed_%4(Xwt#-WBW5>Pc z@v)P{N5#5gsJAqHY@y`jWp2;dFpBo$(--YasG4PpM6=pyrG%oD zt;@?!={UDjy;4hy1((6g+sxP$r>owZR_RvkM;@}vx76{SjbNMCK&2Y;`A6zntWD-K zF$chHV$sEG@3v5Hun&2{+<0NFkq}>s$R@PcIK~n z9RpD&qiKr)RMOKteu6QY$f<{8T!R>3dTgp>QyjblQMIGXi-}7b?4^a=<$50M>HSBf z`N{FGEB3SRkcQS&tGWyiuDb4w*4pHrGt~sCSbHc6-xcr8%mPQ{(VUA%FI3UaBh-Ul zN4`WUR#8*SLec2s#MbR;3jaoi{6e%5Bv+6a7M4f*0-i?w~))O^rkwcYQ;5)J8#qPLJT$eD%OhQW4_Gwg{;Hc4t9T> zeAe>!8Zhy8@(Wh$!;ypsIj^luX-94;ew%nKWckYzN)w%x7j`$Mk%-NUQ*I&Z8wa%Zr^4@9-uWc?V6eh^CqX=`55g zD9CsFgMPh#@v+SIaBhd`$uBw%2I+wvB@;~3m86}(I zpD}|yuRg1JkDi!OzrtFgIq8P0OdJ{+Ql-@~nDIXPrWVdNfq2 zBxmHD-WY^xV<7Zm-Ly8AOvjVePc2h<4XixU3k+En}s8$G0%?(u)N5fX! zxHQ+6V1!}{>pajktepI6xdBrhn+Jo|Ouk@c;y(C!yw#ac7>W1|KHR4=2M@MoE}VZW!P9 z$(Z#-d&dNbxrP%D6q_X6r`8@am`rpPSMe3cUq$Ua8<3B6=|KsX5jUm?DSpW4lhSGp zAte|5mXm6Gap{|OtMoOqR2d1(k8kSpX`ynPIpTiIhU97NV5lyj#;~r|n&%if>+0es z*LydoXDXs-5Z}0TRM5gAC{MF#0KsiFv_*Cd?d(*somzRmaMuW9n8@3M518(o#4MpP z8Kv}xkt6u6Hs?ubIyP}3oKK8BiqG~~9SQpTxGFUZUldzP8NZr$`xZ$?xf;UrCjqm+ z-WwzD7mFJ-0&WTiuiW#*>xy9=^C}U?Ijo)h>dKY)#`N29uw`fi^_QyRZ*`zoj@}zw zElN^U*w$RF^2-M$4p229I!NqnEaq<8$^D z`cVrmxfc@0&7Moek}e^i0ox0?V+A*HyPe^J7L|`qF^RK(n16r2ME-VG<d%rcm8OEP!&7FAGi_VLHpk8}QiWLvo)WHgiUgc4h0g7X{uoHS2flCM;& zq8PgZ6EuyFU7i>QB8vc5QhwrHy@P#x&z6c)ii}s!ZMx$6{a&|(N_3I_ zYcUfF|MjGP@hH99b*}dqm~eGFyC1+GeegA0X{|SF1E-9#V90aj_}I#O)#CZ*gUhM3 zCN-x;_>szEiXyTwHs{jRz}?4^p33y>%&thjmbyEb#>6uahGg=Z%cs7k=?Bf1hy}+N z04;0bEI%Be1AW-!)9*`0y;M9^s9cM=g{Wx|q`IQvL@KZn8SE!2wTmXysx{HC8S@<8_w_olEbj z8nM&I_2J}mH3WA~bp@=5y?;T0r%l2crSppV__6S6ds4!gGFJ1^yV_#?{}DL-+F`e#4n|Pn+#q$sTjm>f-+rA*(LAU1qBx}^W`@;MBGz< zsXi;LhGv`Y>9wd+E-`0VatEJpwyVt;`*d2Y$f-$op3`}Z$vHkRbD0lQYu_WPo@W0T zTgS<^M2%{havFB1u0uuCvMv&kN?lQg>!!CXZL1;2DY8{N&>9w%#9Ad}1`%@K0h8ic zDnV~Mt7VkcXkmh+c{vRufG>36nk`HF$KhN@G;d$oI^pDtzUXu-<@{3T-L?r*5i5;;ca=x1Tut@6&f0Rwy?RxC1w-TfRCqtVBeJ-e!2j*53kpgSs`3i| zKQ9bANsb?IU7%6hrH>CeMiB&=Rb**+O^c&7K+q*t4U!IO9|;izDUy-_(~7gH~#V;ZKeEm9dh5hpsdrG z0Qp#qa#CMAdWoH~r#rEFPNm_-J~f(B%HfPF7{A`Z-h1=Fgr^;ToG?1n%^5KSL(wls-87bYW@N>y~A`!(4 zL%f!C$p9k?=BU&-&-MB+t;+(%#{1gM=F;{3bM}0U%Sg|K9~C0S024#i9GtCu;;pc< z-_gTvqj`V$8&}4lr7dsn1(+{ajz+pk&X;{JRl6N-*}v1GB%*v~&tF;9bfC&dZ}BN_ zj8)8|FUht`J9r^-8QgU0a2_M7XocnwTRB21g@-RRmM&#ubj20pk=k-?j$D5=q(#H= zc0oRQ=%`D|_bZWK`f_&An|XWoO+eJvc3t1BB(_d_t{GwGl)BUB$u7V}Qnw6$k~N}X=W3$oeoi2! zxc}fQ-w$#gj9*SxY$CfLJ_3avnA#oi)3_0S%@$7|_U1hiF_s*MN;K2ZCog&YOn5go zo@=HcdY&#ZXJ$+N&cs#WPvt=Gdcvi1pu_FntD8~z{JfQofIA=3U|kW7#T``P7V^6^ z8fP>QKp*i$SjRq=m}1?&-?+Cwk9LQ!<43JW75#(`OJKN+bnzUH=@X~SU*)ae)@g0u ztmd5w-#Se0Zl^(Gy!T(Iv(>6|@37t@%i6j-T;86}$7cF~e7d7}oKON3IA_c& z{D`CaKMc_r2KYcVSOYbMG2Fjwa9M_K3Ot;wB3a+dcDS49V3YigoG)SjjuZTDSebsi zmt0d_U+~e{#kaRRl3Y0XRk_;GSW*K3{US2sc{4%2o?kV4b*3ENMax&+{pvR|-Uq*M zec0Cnz&q+}&MAz&xct}2Qd1~D)M3o;l%9e8WET!4Mn|NxN$S0ZW9AiJ zcFvfeP@`8}c>Bpk1lnXe(nP#c=zlUAO2-_jpJ3;u;KC0fj}kuICr-VL;c) zF8eklvQ^3&DM{{UMUwSY+G1RdfGak^`|{oIiMk{^cUvU-FZLWqie1TT3SYi4P3g?d zKbC*Bi4|WISI$q8m#~Ukzl2<0&j~3#XA8-CfNkrOYaV_4QW<$VK|8!rGaqaSdCx=C ze{hM-VPo;^W)Od+5jqW;OZpbwGH5ei`}U$V!p^Icd1^L(lVz^=n>EuEX~}dZ>5v09 z-u25(5AWX>=bIDtHJHi+E9hxv^vdu*H9$`|*B`3==OGhR7=TXL zXn%;_BAn8C!#b_X=QYz4!13<0y}ohTxEX51Po5T}im+h_^HdY@(=2wiH_L$NCo*uz>xAs`b7n63#1asD#uevS+9P*>P6*;8zXEcrFEN7BZ?gO zVz%6YKbS?LC_vMGelh7%KL=;yU{%U}+1t zn0)+~$oD=8m*;4wQ%sgx0^ti77TqD}LYQ;6M*!CLjSjkDO&UMnM5Bu^9{jiZ=NwjC zw?;dAu6JXeMuT>DI84z~u`T8ewv4jmG`LA`r34(CJAb_OoB1}6%&GuJ#tN>j4q~+f zX7i1ai|F z_9dm}H9TKm$F4aWArtBx|Ql-}J8 zl6@W+%}uO>k@iaj-;?XsoR#&>c(?HQ8%7FE&-2vw6(YU1KLTI2>NY@>$ye^0InjRz zehgzUJ=yKvx)YdSEjJI)p+lG*oUIPG?RcA!wGbFHochK^+_^61ae0)8j@x5_8tYr4 zZM_@yd9pw?$GL;+aOR_>DE-!J-Bu@+?pD#VJDCd$3>A-of*R;sNt79z>IErA-1>!H z%a)IuPoCz=vBdR&A5fkik8y6BO0kw7dtw-MC+&NgPQ=9aTQlq|2r#M98p5B<%or{u zI%K_0Ot(2*%ztc~T>mk~I(veGwI6wt-ANsA8n$aBq2o9_PC@Rk(DrUs0Ty~j)VC_j zi0kAvzUjKXo|AG4#mGG>cMI@)&(k4kxAWcl8*45Rr8_!PoxyjKT8Mos!)Hg9_|ay3}Q7yHB2q z;DmxyJY1g}#9}uFSl|Kgx%uX~me1GpaORSz%&J1KZd#2sHk}LA&Wn4XX&93k!;n3N zk#qY`HZ2+WlGi;@Cz+y)1D=uUR<2uuqmtrlfHZ%8Xj8n)6Js-aSD5RR`%}jn;&RUO z$mDa`Z=y?YK=@8ojyn6`_ciuU0i|^xgz|hR znP-crER*^>XR5FS%NBHh4?I5Hz?2IzfWF1#1Yw8V&9cf`GjrFiKXB^QsnaEUSM6QTeohLkh2*B)WYf&s`h4tNqPA{L zS{})$z3lTh+jn>Sk~?&a-$o-~w=5MSuGsL~5du6@3*9}j)-W?u!P0Cc9jjsaxDv!Z zoJQ9~_r(qB@l&oz!YU8JoF&ueLuNkPFze^|JwJAAc`myo{XoClz^P3i63L8e0=PrL zLEU#SOO=VA_)sqBpRcO*ClrR|7eg7)&+~JMk*WsO0-gDjX#2>p5N`7eEPpa4s~Fj# zL7wmJe)U6IpPI-%ytI8b*P!3i%~o(h3zvP0yXvu5p@`fLscj45JN40ARPnH#3FjZ? z)yTJ0-hW^j5Lb+;Fm;w-mX8WRX$I7vB)%I}Pu8!=KM-$!>^^`GQuddiC`x-*s(Afiv`alZHf6{7=&1TPbJlqo>1e zBB6gGf4Gc6UAVO_0+aEu*mtl$%uv-N99iGUCGQ=pzKFl^#-EllI9@Dh>!vCfpQU(S zFDd~m5);QD)X!?Ovzt`AMh$fY<@FqOK*opC%@lcj4<;T@I>g?`?Jt&gitgUqyDpH% zpqU+m2g($75opsE8fnVL00pDkCeb^9=lRr~YT#|4R zm&0_nLo?wXq#hgoK;1? z;>*JU5i}XrN7JK2Zz{nOuE_KQ%pt7zmP~Q0eUrm{a^|l9K2gbwdE1&Tj~)dEuP6GMP^__s}agQZnj zM{W1cSND^1SIrzEozS= z>}4FIq{ZY4cZb#w79=X7hv3mh)?;P$C}oSeB#|yDIlz}uC%!BG#8iOFJ1z*C+ z-XbS6t_B~)(`_Ntn!!-{$f>r*nly~t5|4R=f{(2}Z`8Ht+E8&}XHqA3O?pF4Ucyyv zm1bmQ5AOYe4=aoJR_#SIU~xHnXeJK%UjGKBf*6k=hAXVbF^v>r7stw@VjL^?NO^Ff zp3kqZDyf!{MI)cK@{2rz|D27u99$@AtQO;$#ZS2HY~IQ+AiAFb9iW?r7(45br72}C zp}o(XxkE}#mrW!j_z{VgK%C&S$vQNH-+hg^CH21saUIE|-DZU?b(~9EMUA_TH`1`)3m(n1*@(yd2BW=@bXzD65Gesc#3_ZO491Ck=dprDl5oz<%sz)o8`8B9V zd?brhG>afsuSDa$_hn0iV$lg}o_i36Mcbzi&+r#Gpt7TfZn?-rkp6y)~H_kh5^Q9Myj)UAXLpX(p+dFvDs?_d_ z$5TzH$^A(IrmcE!M3&l0K&&bl6`KA0T}j?C2~$_jRR`iY7IWK};t--Z1UBT_rlE8Y zJ4gF5M_Xx7s9udm_F{0_q{&D-h5olTzG$St^&!date}Imv;(5{oP>O%4sqM55Rs5g z4fgRn=Nl@2f6%{%=Xdm6Tm+*i;&;Nu)rD?olWs^^McCF$?Ngo<;VJN4kI+c3%Xh7; z+^(|g*DNPw2xmW3`)?T>OZ8o)snogp#&rgr9*kYjkE*M(=qG$|4K7-fU4>~jC}|H% zWDg7TwsC<8&vpeO4}*$5y#I6tom_HXK5X~wn9lnsEhjVq-dPajZh7mHd-hvcu! zOt}iH(FPJ5D;FHk)BjMPxmJ#N_e8bKUxg=Q6A5EOxHYQ78VxSgs&M791~lzhb3n*9 z-j6l->_z#&07%l0uswsX`o{j&>M{y-iU#?p?%a3-rA12D7F)7 zvfK{sR$6Do>k3A*<0VCzuI0shi$3ChNR;TC$eLENcjmT+x8dHLJ|5LdjS5Pe`gKRz zlXj09n;yG+cFnvuHu1e*++9{p#yn2HskzFkKr!!s?5leC`#p_FrAmfaK9}9?Hl#Ry zPCOt$5>q<3zVSByqvn?F>A1^OX5y9Pn{nYU6vb*=vn}Va5|0DpFx}#U4bda#mU4^R zv)mx~g9)rPJ9%axT_k39a~%tmVp*cKqrr>FxWWh3i>Ms!ARZ)darvxwVz364&ppqK8V-AXF4`lDQRnuT;Cy?rJxz_8G7pvmb{SbaDL-TvXxE+U zw-$$Aa@xb!)GmI_5?;UgWd1_%E(!xBN0R_o#Jnff)iC3)dDG9)4^&MP8d+ zNmLA#rM@8qdSFC)nY+7ga6t0u9H0e9@0OJS%TE15b9epNpS@SQs6qVRYO;&H{!4*f zN=B%FW4wh7J`-vD^u{NERdsJ};Qm#W@$&cxVWf;;RM@~a5bs6hl`1}CkTSov;PqR57*z0oVR2Tr7sP+C)x zR7jGO^quNkkJ%1}x(XCjY|a=3z~FcFpLDlImn&RZ{1S=ThgAEyn$Uq~>H%g`FVT@N z`EWdlY~)#}^zd3jEygKXRH zwXAh#(k^t1Ig(ST+n82k$QC6j1RJMt7DS}Cfw0p;fRe; z+heEi{hR%=rLNy>2JpbCGpAPZ{K(Q=m&a zEWv!sjRUs?-lrbJ5HZPmNI%#7_s0vc{1Fqu2l!*)f`Y#5TN9Ct@~bgTT^p^*?0(ew z0{foro<5sr?=}Bbh;&+E&yu;?+Cc=YU%?h3!mbPB=r3eJiHwC038!#m8J6@JO$iCU zd6F$qT^c3xehNweaSf|mD!W2*R17b_Q`@$ai&nlQgqT%TC-8Z^S$N7^2xSpZPv|P< zqmLk+n8`EW2dnY0Dk!}+uW(}woN(ias{Q8fb>PV2mX*lf$FbKa;E5USeakSA!Lfa| zY`UnCbB`3DS5;vaW21hq2u%(X7JMLVD&0LIafZvz2nd@SdO+y-EEpr2E4=s11Zf`$X+>e ze+GNy3&}bdeEVt?i9h|{(_JF&nD>SIWD85|GbAk8Wd8&L>2v%rEk=Z#jK?KPU4r(G zf+v}1fa5eVL5KO}Uz^exfMqfLrT|i8M9uHN5ub>cNVqHD$={&P<$z`6OXqosJ&i2T ze5jxM-0WQ>t31;GEzsfj=;l=Oe%UWvg;V_Tc;#kb=<%N?rO(oR(1Gn1XJbnO$q8O^ z$!UKpfe>)a^CM~zJ6)$g{BDlVjQf2NK6h8aDh&*XA0Q~=T6XJh`w8&T@+i`qsH=`E z@>VJ;Y`jq(RW9+#hSC#7l33~T@6+KF10+k2BE_(^uhk+4)#h_EJdaBqK|$k#q}Tlc z2S~n1kl!WZ;hws!>v6L0!rEeX%xPqLFc`KvZI?M_Ya!7_I~a&d@3O-QBLV zgR`Ah+6~K{9?K#|0+<`L`C2H;yTbk{gE+fo@Jrj+IVLFe2$kZ1)OKB4XRXi)Gk`yC z@E>pjE%A}iRY1Dl&HYdxr6&)BO~u^B@*SdSn^rVT%%_T4YIv{AY?esTAKi(-5FU;Z`MCBzBY`%U_K;H7Kv95K(-jb5sA8k z;i1!y$UsgIk-angL$0IifBt7(O1#mEiO0N=*H-gJhn&YaIBIKc4%4sOIFHF8xU#NtiMJEtzj4B@%y1`|Uy zE)7sp9FJ%^AN}b|{!y&0VgchsKAG?p_D41#x2-E?W2<8&>q<;? zLD^|*mwX3JyJI#^H(pcIUXhYITR*pRxe0Em*f^c!Z!-bsD9h2uuM)W@gJCzr;2Msw zK^jHhO4}xhJ{19vE&RFs?t}fD7$+J*L+y#h-nQ6k?$>4EW$4u+tmd|>%75IOQ++g@ zi=2HI*RYZ8ky$VK_0jD^k@Ueu%5D(0FjVvk86WVcf5#Y`$ww%?%^k7N1W4DW;} z-N)I3I7xG2s;bEXDf2K`%frrngqH@JSSSio&e+GxzLBA6lYl-(Zv^S7@Wx zi*d?6GK|72kcevnOW|*dbme>}o|pq{5PMw(O?X@-Yn12f@>zw%@VIwu<%Z$oynC`K zv3(E@wXV4RegVBSOHlvY{c-v2SM%>!Mt^jQv)fHx7t>^fJ_q4-7_kubjC`7R@*G+@ z5k~X0Md&D4Z;m3&6Y9A{iZwzzgH75~;?vb4omS}D->=V)IdPg~XUA|XiDCiu(3D8` zoE6t8RU}2O3fJFnU(rbGUiH_`+evo#ZXr$6`+<4!X_Oi|FQVpNn@cDp{aM`Wv=zLwKV+Bo5NW+pipzz z`29|qH!;YS(zLFIw!E1Pbg12v(Tk!@1?nGoE0vijXU7vYxm`#5752I))C$2Q?Jh!1 zSmv|NffvjT*`D)PD;Tv_qD#fAR5W9Bqs{i&5010nHo7%?zq>szjt9(lv&_*7qG=QR zLz|jL)9iQHE^CFXOH%u*;)HNmQCf?97Ze>k?S1^@c2IDO&VS2ml zi#?4mx0#owV7mIv6FZZS9!_tzHE+g^;8)nMJ3pzXN}gZ~Qa%~2!)K1r@R|f;;%~mx z)Uq09(z+%Fou+mMmBkIes|}XKC>DXz#H$k_sqfw)-pE(JsLrlfA#UwhF?~f_90b$b z`*<2-o-qGI%Z#6-ju~Rs*H0bOR{DDz(rtqUw1zubFclhFZJEU3tOVfZ)(#%4DwG$l zf7qmL|GG+!oVkcdC!!q_I<@Sa zQV2$&%P!eta#aM#I%w$nSVU%ET7KK4F*raOI(_e@qpT!~2^6F?R1@fk1$EN^I52_w z1U-BZVp_voe!Ev{M@M#Vls+YfoU2DAw*@N?$vnW>6zM)no26XqgvM&Mcd5atUW?FZ z^*je5H1!QE5kGcn<#o*5n2CJ61eCxVmLehV}^bt5H7ovD(fwxEE2h2P@q#w6r##w z17{AU>hFm`{mSt0d1-0pkHInc1?$K_hA;RO?QuP>@pJ>0HSG!4?f4@zHwNh!V>1wh zN8|Q=zT%9?TTfX7M*4;kP9J;DV~^|=PVrZo!K?3E_%VN`|Fr9k zoS*p4=f|C%>;gEVLHf>kNkrwkc}g=`;yNpSwp@LkZSi7ktut#Fehx3k4UC=|#Jr=8 zZjo(2@SXm7f=x_2Vq?;-#R>3~O%CADL-UL<(Oje6m+Cd?*l8o&g2+wHr4_bk%*xa8H`qcn}1y=k9+2knFb+$7v_hC|A5{9Ybj)a zG)CX8id%zjzXCd-)sjSZqhy8#kF&x1f=tAtb(JMr8UhW?%>z0Icc1u0As~$2s4w~bTOk`GDt^sJUpG=;je{VQdPCpI%dR<;sTHh0 z&m<Q_ttPm4J{3jLl&;T)mx}I!VE+xI1@oCnEf5 z%?>?NN5d(Xk`SY%G8_&-{8OuVMKn_ZbB5Cg0du+%bcu=8Nmq4C)ouz74ksR=U)ny! zWZWdPT$-dco}8$rTpb{IIu@D#cVABGrt0jqe1V*r8lAj}@vEc(ETXojRs|+sNaI#m zT2`*&bQLA0+AS2&)}a+rzA;kgBxX;^BYUOQ|9G3ZND!ZE%cTaLXTwWNzrt(wwoWjM_!#HFpUt9?<=I5pW{Nc19^r z=5Ov9KWH>r$fZ(y&8DamKcCIgGF4fm&dL8%vWm7uQ}XD<#QfVc6OI+NAGn!UIUCww zDdSf8B6hAD$1{SFt5hHgptFkRz3x8$cggV-*31NHm@I+|U5*4$`GtvY5e^B0QPd9T z%nJ!$`1eKHq>Rk_m>psQEl=VBydO?T9ebFTKnj+nb6D#i3%x{_KscV`m1eSf6y`6o zQxxmOaMHCp$FB+WO7g@qxxAl`Obz!IkD|nNKl$){2L%w(Qca_CzYGZnGgG|Ll`1XB z_WTOd6hPZGNqg#q{_>g^g5w`go5GzHOSnyVX|w0_71ldoM7^@crtDL5t@B0Q1P`Gz z>#altFrEV&JYWK^lHyUjr7f|3_!!e^+CEyF6F-w^5sW=S6iG=L!>_6@xd+ir?0A7F z+t)#K5VKYulvbuY6;G*B76!D#l{L?7Xg1Yb1K2TlSVxDp&S(_6w>3)Zp^8OoxoEpA zT`{gD;!SwC_xV!;iC6;I=uBT8T>xN>{t_9y$LC<>%LhVF(qXLEhV0ozy@UL4_BxtfZ9oV?9J^!#tdi_Hoe}NZb0P)+& zZljGzBi=8-GQiGTNg6td;>GfMS7X$9ZHlM`H^w4+MWW7fXJ1pn?ww=?w|p~h;pm2{ zNV{xRugLQbl)55BCC}@xx(S4p_7tFy?LK0m^XTu)&}YvEb&7Fz7j25EN(rWH6It}z zFEde|k0|WZ(mv}$J&;-tdTZttgzsuJsbK;(f}nkqm%{0#=b4rr^e6IIVCm~R{``^_ zW#~9c;ht&1$9zsb!l+U3_E*hBu+ISwQ0p~7j|EVHa%^I*Sj!Z=Elu2xK>$s3zgVmq z9`u>W)SMfo3VH%4#@K)9J9<XSoB9=QB&5C2ysSw@=^9>PBEY3dNrXqYc$11=D77 z9`6Dr?vF0KhcLRl7-?y5y0HF|f|j&*|GoNeQzqw$jFgnrIq+lVe_Q51Z`=g4@NM}c z!_3p-O}N&!q6;7S3SJ1z42fuxI8xY1;BRz!hozX)-ZYjaq*tmwttYYigEA8ES7{mJsG)coXZ!QiymUZv zX0Cp=KV-c=fZ~lX4-${;tz@A@ztuJ)`Xm_0I=mqvenIN)86&v}!i)VbYxMFD^<0O^Zs7Ek-cLqm@9 zQy4(L(OXA*6L(xj3D{fMUlOwP zi%l*r{nFZQbW%fBzq-x)SAlh?zM{S1kXb6gsvXe70!%5(1N@zeF_6({;;0g9LfTTL z!LaW_%uz3XW~dtM05JPoQ%b9hC4Z9>TQ1LH zRpZBK{c%5``?qclbj_6k!SAS!wA6r~CsUJX%;I+YTJOrg_`_N1zBzS6H1+{$o9YWzOHxuT(FGu z^67`J2TUsO=8Ovoow{w9fL`6*D@d)^q|T_(FtR(& z#UQb(JUUK9MV0;(-)a5LV$mk|uR&5$OC3&&^Z_ZBW&kc6z)i(_1SUB~VakR9!F~2| zMs|f@9j!FI;Ou0ZW%amb{W4-8SbC$>=CAONn<6MckSD+7@!o{`Q0+K}bPM_a}u zc&;U0gJpRGo0!;@bc}0LJSqtrjkskgBwpjwL6IQU9WP|tERJJTT`*%5RP`7>G}wnYo1h&?z`-LNQ45n6QmRA!45kHc+_ zf|zPTZe#A0=#i9P|2{1zXl9GgjC9N`4fV|Q!((Nt;CBrN9N1a-%Q1UF<&O208^iE|pyaKuI*MxXj9witQA&lsmNVt( z1?&0V4?pxAuS_=Q1&coes%A_tuCv4Ibrg{u!Zd$~*n&8hI$Q5Gx%19o~CMV_qVfaMLEn0XNWQ7C;7gPa#=; zH)81R_DCu=OLVJ9eae(8pK!7(BqA)2not4h$}a}h%mh3qz=Yn6;4Me5udsZx5Pz~% z_6dfhO-qEQLsy^hoG$d0Q1}(Zk#cj!_17xppx!_~xNrk`i$Z)ib3G%9!x1|T`9VLpZ&|3!kAatUe;-!X;GpZEfaD!~nY)vy; zbUc0fLWQ75Iw~S|#x#=Vkp#v|9RTli$Ee~x!T}i7d@a&TqW=eOjH(atkHB1Aq9#0rWuB-j#&z!0_20l*M?#tr(^#9T;u#1|#_#W3s2Vt{T z1Njhv0Fd7O5gJ(6`F<=zwz84to1Jmbt$Cq0(q}84>q*?l1(moKS_S&qqw?3X4S4bA zuww%GidPdKs(;|U>euRxvv7|K`#>rqjf7~xat-x(Z8xIrL~?&k*u~;af_=I6@R4m} z8;30-eSYchZ7nReeoKF(!6LfOWA~P zxV8OTu|)*_uX4@m#BGXv_94ui{PYAyW*ihgt`r@1W7@PwAq;5wY|n(vxWgysJ6#z~ z%-Q1{Kl++^Xw*$^7R~hOUFCP#Y)!xN#wfz@?6_l;2d z>O@K1c)G?O3^BCFl8847&=T&XOvQpzhM}gU{F71UAu4f2=Xk05X+OSd^#c;Yt?WJT zeEan*_S++pAVOrkeNk_8#RApfATV+uT8_m9EUeQhhf?|##;>g|)AQ4XNskpmJqw@W zmpXud)T|+GN_q*5c264*{H|?S>OQD(d62Tiio@Vvnomt1fgD1yAx8t7KH@<&4S8W4 zRJ*0`ZT zu)!3#dQ6&HM~2q;Ew`&F!xDvqII0m2kg}h2tVi;foRb6TVv;^xLJCRrrhytUTgqa) zY*Os*7hOrDg4V3EuyFScg3%|yGp;HE`BmK52I4ERNWGDiOQkMGrz`Y^?UTJ~Juq>1 z`Nu2Oa>1@?6vV)$0%P6&+FXyC1&`$}f<+N)2E_hDB%di|o?oMVGy4{if=l@J zCCVHhzEv+fdr#r|p+h+sZS}hOQ4$0{+exL(FYPL+L z?&MdVa{}Ho{Mb0%&F9eXhy{$dhbLe{f|Qo-U!c0Q*(eLVen*)_%*+bghQ?#Inw69t`pwzZ}~HI zh-E6hbd-O(ynuU68OZa?HG!56f(40UcS9e40eU(oXq@LiW`LlGB z)$w4mmr`Ouw5{u^#P-y!)2l!&AS*XH4y6bWU~w?4Wmgy`pW11k=6GgpRp!w3giddT z)^8#Bs-79pUTZ%@?Z`(!0DU>PepowIz@MbE)E->&d7FFQ;X9TfFXVX>Cxne3eap>1 z%0QQSs_7zM;@7)+T1BNuw;6>L^FJwMek5pg3v>|CdP*>uXR!WMZQf^-o=k^9Oi%C) zIk!wapVFWvbgy#g*{yri2fbbYkqogQSUn(JVS3rcjrf$BE)y0f@={Y`>lfp9Q%BUs zK&>$=e;0D3IW!{DCYzFQhimdBs;wLIE2YVkqA%)}0Fy5zpIJ}>I`{QHP;gn?QG+5& zywKIq0akA38n-ASe<)114_Dry#GJRfp(u|Y&IvNBYnI@ja6`ree=mGk|I$gVBqap| zf=cW^k$RDW3WmRBmepDr;+OtDetVvV{5Xdzlesz-vp-9`8tOZVmG$TN|;>6-XpS(;4y;jI z1wqE^^t=^EQCn5zq|R56E~)|q8{|`)zXqB-BLTt60l|n*Td)(_m!>MHEq#(N^~i~H zFOjlDIVRC64kDZB0P+?8k2D&iYR<1`GLal4_U7F>;ld|ADset3_P@{?rI1@#zR^n1 zJTLMiFd}QG$Od8`&%~}qAQfcDHc@+*rZ>O`VI>2w+-Nq@<1o+DH~m%5U!l%6{I#v}K`RLwLuQ`o>Z@H@f>JcS87*j%zc@uq5*0_ zrwBMZ@U`P*XAIsJL!LVC$8`Rx&E8?ZdV=bb*1*W!%akX^_`@|h$j#A#xrtm1BOlC7Dn z!ih%G*GN?W!iBZ~@^RC<>6@G)4pk&z_dk`455MQQgbP&2BK|%8$;7cL8K=Sljwglx z3=ib_Nc!$B91Tk~i^`;E`!?=q+J;PwAAJO`y&Gu)B6}Zj@R>V;efUHgN~xxFHi8D}vocSfM=?TsCqcC5gQ#^VHl-R^e|vs-TsBUgGKG>C-OH~>Ha@?u zlW;aKhfN3Nbcx13eFAv1*QJkh+uuKCnk2SWST6COK6`eyA;YY8b1}U9?&a4e$+L7sAZo zXciBZM$15tl^!=7m5?9F3S&0u2Yjjm%09RBUxQpVzLPqyY7f?I-HD5XNu#*5?Y?IG zJC5zL!9pn!=YV1Gk~eO4dLS(MTQs%MIJ6UTLpI`Mo&XOdWs5{s>EL zFmZ~R$pZL3&`RYk=Y4rYOP3W#@r4W1_p#Jn(^L>T6KwBsGrd+%av8BifV zHi(>g#sna})NyMk>BxeX%OJOYLtX7WpT)tDMPktVUUCrvC{=2AG-`*IM7CQMn*=A? zPfCJBf3@&!pF#%D@HZhpj@pCce&Ie%!C0pDX9Wmgv+A@z; zvp=%Ya2*ozfO;{ez;MxMjMf^#2@mlt9U9$K|0PO*6!3FS=CO$ciXk+lP~Yp5i~e`J zhwWnfzv|%VkCgPkRSW-D=J}&UM~mGK$J)+cXB#%#BH7~$@}%9kpx*%h7V#;i6%6W# ztFv>Lk)NmRfY^t~sY!Odmy6nV38f!lOh!tyH&%6ais(O2E$aj#fc}FH#O3*kB5CxQ zHKTzi&X2h?=3nyeR0A#mFHd0YU1L9TxGQ2yONVa~QfP7g^%TDG{D!p;qv~+Cj&dQ# z#!owEYmr2P{$eVc%bM2P7Gd>y9QA&FDle;qNf>Z%@JGUalPM^4 z?mOwT`j3hJ`3v6hfZkm!ps|cn1v^@K#t+sM(^&>J2~(84W2VGu4o!RGN$_Y@o@0%^ zA33Ao2OV=`ve%)T!t!BOwy6UTi0XUirv^!=g>UUFMA9bYiF3A{UOFvtpmA~#G-;Fg zH<)?N_9|o>KOg8a(nDQ5tST3-1pTC|g`;+rf&N0f#kcT2j>pc{8f*lDe|cCvYxNO6t!CpTd` zuH!3y`AM%lH=Fivrs7eMSmkl1XGtFn-xS8>f%Q@_c&rSMi{I0F*Nmc6{b{{thQJxZ zENam((LPY6z0Rx&!fz>BA({s;ghtaiG8o|V5xB;pOec*JGFi03bzE_a(4nmgh&QtA z*jyL@3CdK{u&fLx>4JvBb&HpXEw{_i*BHb!In3JYJfJpNG^S90>!%;{VbHJ5t~$3M z2{7LFVV;)S&NCPq#n+L55RiX#-q|P$=L+541!hdnEHiP*F2lw@gY~1hvfEsn1?=Cp z6^+)Jf%U4O^tkM@>+EqAg*8*cx`J!TIcLXjl&B>sRnvasSt!J5T zwMd1gm<11~6m64z#sv2FLjPH4>c{FC-sa#21q>6*RuQJ6B7X#GDH{Rw>twEs^D+ZO zQ5YRyR`@wg?Z`5X0ofHW((t}mSHMp=YEtH+LLf%@D=BS+BLUY_Hf#Vx>bwc6zw)># z@hGNGs@pTQa5{(-z`yh3cM%!}!IyJX$=iBe-XFjyfSli=!8=&M_O$@Gbl6!c#nYc2 z_3x+*U|^fpIN7RbH7Zd&GaWDU(Cq+4N|lwY(JABA0UE$EjtarZTzl{+dP&`sVey|r z`$F(Nc`yn$m!Kos9qKfHPx1y1@YojX4`Dt$F=PD&NuAFjYSPo*&ikz$xMEKCYhc8{CQkT9TJ`h&*^faRA}d55%dj#&{${^BF0CEAKQ%S45xx-Geao zP@=qPlby&K9m`eWFQ8nAk}Q|=TNV1ds7f%K?n|93f$3Ix*Y$g*9Q7LLo@nT4SCKjO z&_P^B(YCAPl9mfqQHtZ254dIQaCxYa{>sAhjZ}P>Vi*0YKoSD%F~D!srLXu>dai*k zz(KTQJP8shT7wldfxI(`zZ%f=O|hMOApX(!un^3~ZGKd5_CsD3!Vyk&FLVa^{0a>; ziDH@v-3J3yJ)zmCqvQnDHC-Pc%9tq?+m!6Rz0PvZy%%R@#%^MB#?6WQKMpYLXJB|= zL$H+d`7a)=&hkApvWs1=G8pQm(PSFar=v`7#vMn!o-$&qM;{LH zf|mT%g5qUXu5LW6!}4f2lsG`C^RAt5+);m2XQ`}Fmdg@IV@P}p`9_cjLi6|)1D{6* zoA#Vwn@qCI71Gq~?9Xk*0D?~FRta(_uR|?9J%-czj`NZJI?Yz$roh6sux%%0c<73KLJqp-Kgs~tC9^#o1vh7i}Q+Cp)c``jFHiSEJ+t&4R zu!Qw{iF+Iklqj2~X__#iB159c4oynQX1Ir^50gyo4CsC+Q{|L`+kSkOB!SDV^MGRd z)YQ~6K#A*z|Ip)jvyQTGYU;v$b*g#2`B8XAl-Z7*D)?qxzDsv$mfh#uc#~`L`SwM# z%BRV3g^f(v#4`IWg*ruPQawH4;?x!^_VJs>>Nl|yZw#R4OzWRg>j+SnD>NQ5l}^2l z1uF-O%|GECS0G*A6^M?(Uba8io%G=w`$eOB%cgymc;G_OgicA*ru6vnYZo}p*&o57 z#aVElEy6SQMD@mV^RU>fIVpLItRbj9O&H6ZpHzYKATY&g39WU@S{p1c;ulYE?J#kv z9Xt$pFhc0iM@ZL*v8DD}>s}s@%xroe%V&1xf(zZKe(;g1ed_2)Por}iuj5IPnIj-3a`Lqex5k{#k;e*j9|dx zkVo{cZh&Sqr%F7_Me13g$iWJo!FN2P4&kj?B*G6&i2)wtF+P8h?}O_OJ!i3%TwzYg z+|ZTT`6YEL);HW+6se&r#@auW+qD0K@uH%Lx2xt^tK|-aA^&`+<@|Os>9sos;)nI8 zf<=7%sF)ow z?AoaM#y6E@Ke{+-gOOkTRzBydJnfgH<)UKjUrt zn6d+e(gF~W!@0irH5EhubipE^F2B;$JBLG+(!YeGfa5Hl>+XWRMtbPk)>KwnD)OTs zErha}|LWL8=o=w3eF;Oc{`KB}ZOPBB`Ht;LTt&?s}9Z33BMosGF zbLZwvEF%Zdk2luG_(%#4fw?jCskh#{YCGf;;2buU(;y|(#l9_7yCrdtFhs+lbu^w< zrC@T4v0kyC#;;~@Q`KnkYX|_b8{cfF5>{+CrxSf+&2;zEMk#1CKP`AZ68Tle#bc-F zP6N9a0|m2n;tB_EcQ;E$1-_?8^K;_AX0CoKyg2g(s1ut)TbH5=SMN@I&MxL-h;+>;1oUp0Bq2A_ll zTpklBoU!#J#I^9bH(uo!UAqDy>^h%_ptNFGXUVAkrCDba$+4=boO?z5(e@Q^U$_0| z$4GJRX@`lyP4(=>L2q@(WF5UTroX3G{C_a&=JH;T@$YE5 z3k#Wpi%rBVO*5=QVO?Q%s301U28TtIs{>Gm_c3!YnV+-p2;ZW5K4sm8x8ZKHsT5XF zyl5)5K9CR{%`l!sue9dz^qu?;Sq<6WnMav4aa*t2;OQq~OUa*jHKsXn@8r(ITk#cH zF;g6U(?tl+UyBevYpvd-yJdC`{p$A9*I6a(kQye(2nd0J@|XkRfdF0|JUSOM}|CPOqa?; z2CMx0bPTilD~mvR4j0I{Q@aSaP45zB@3}l7 z6#}=5reh`Faxv~)kUQW*bgT3av#BYn{Zc zN82qtjTh3HOgQPRlGyC<%+GCvs^cUKn1sjo#aVoen|{d{I*%Z~t4dws3EpHQ|K z1XGlKssYHdELO^;S`5?>k|pHVr){mMZe6^wS9g%@J=dE!_8dGg?`bE}L%S#i;5=(Q zwo%WgVPLM_v*g&}Ggs5&m2VYn3qF+wDe98j_r)5s`t(n-mdlFpO>TAx*p^g)g1oAg z`;974mgsmZJjMrRYLiZrNaU1KZam{kC!YsC#-);8I_^vo>1cN}2n_&jVS z>O&l&k{_z? zH1G+iiu!nVHBNK?*GafQn@6(pDan#QJn~cdQLC<8_Fi+w#vma|s{;RTvMAzY`hooM;^^6lgK!os#TL{hETD9T zEDKneR?1ab7K!mvgPk}}@>k22lhax2&}&-X5P$|}ojwQ`?juh}+!bT1DMgrB))TnH zv(3MU>Fz)-v~2V?SF&t(#Af9O$XVk0rmeUhQ(SlGExqzK(n<#t*VvyN>uD>{RE)Dn zk1MK~lU4N@s%^uIK7{xqLA;H>6Y{q>z&Opan4D|18OXDUrI;Z8lR4QbXl9>Y zVU6PmgAS)<6|hLWJ-9(PyR7!M7kO6Ns6p5#CKLDS#5zYmYq8+UORbWAu1-mMb3qH^ zI2Z{GX8s5+POPdAbaV+!#0?{>(2HUR#j4rg>jKp)PB_Hv@Iz@x<7G^9n>KWPf?&Or z`2xJQeINSHDM0q5U!+;cuse!`b%f)=nBgSe?kC!q8J-E9;88yLdUlH_P+Rb9M@N>f zCmjUfnQw!ekq4h-JAj?3+G+hkYCH{1O39N>E|ewrx*JpG9$?|_)rQZbX-pQ#{XzFs zIeLE1@^)x8gYPkGBOzccIGOJWcnV29t=FRqad)b_O*dYcla6kFpiF8wRnG+&K|jWx zi4SVn8yhqmof&u!y+nEZd{P54n9$ziYz|pXxX~jOzeh~-Ev!wx$ihY*oMw~zS{6bE zeEGRmNfihTA9Wjs6lS%M$Vh-E%3=J!*NFdLxpzws=uB2Xe%e7tWaJb80G3vkDv|u~ G<^KRIxG>59 literal 0 HcmV?d00001 diff --git a/doc/development/scalability.md b/doc/development/scalability.md new file mode 100644 index 00000000000..70a4cab39e2 --- /dev/null +++ b/doc/development/scalability.md @@ -0,0 +1,295 @@ +# GitLab scalability + +This section describes the current architecture of GitLab as it relates to +scalability and reliability. + +## Reference Architecture Overview + +![Reference Architecture Diagram](img/reference_architecture.png) + +_[diagram source - GitLab employees only](https://docs.google.com/drawings/d/1RTGtuoUrE0bDT-9smoHbFruhEMI4Ys6uNrufe5IA-VI/edit)_ + +The diagram above shows a GitLab reference architecture scaled up for 50,000 +users. We will discuss each component below. + +## Components + +### PostgreSQL + +The PostgreSQL database holds all metadata for projects, issues, merge +requests, users, etc. The schema is managed by the Rails application +[db/schema.rb](https://gitlab.com/gitlab-org/gitlab/blob/master/db/schema.rb). + +GitLab Web/API servers and Sidekiq nodes talk directly to the database via a +Rails object relational model (ORM). Most SQL queries are accessed via this +ORM, although some custom SQL is also written for performance or for +exploiting advanced PostgreSQL features (e.g. recursive CTEs, LATERAL JOINs, +etc.). + +The application has a tight coupling to the database schema. When the +application starts, Rails queries the database schema, caching the tables and +column types for the data requested. Because of this schema cache, dropping a +column or table while the application is running can produce 500 errors to the +user. This is why we have a [process for dropping columns and other +no-downtime changes](what_requires_downtime.md). + +#### Multi-tenancy + +A single database is used to store all customer data. Each user can belong to +many groups or projects, and the access level (e.g. guest, developer, +maintainer, etc.) to groups and projects determines what users can see and +what they can access. + +Users with admin access can access all projects and even impersonate +users. + +#### Sharding and partitioning + +The database is not divided up in any way; currently all data lives in +one database in many different tables. This works for simple +applications, but as the data set grows, it becomes more challenging to +maintain and support one database with tables with many rows. + +There are two ways to deal with this: + +- Partioning. Locally split up tables data. +- Sharding. Distribute data across multiple databases. + +Partioning is a built-in PostgreSQL feature and requires minimal changes +in the application. However, it [requires PostgreSQL +11](https://www.2ndquadrant.com/en/blog/partitioning-evolution-postgresql-11/). + +For example, a natural way to partition is to [partition tables by +dates](https://gitlab.com/groups/gitlab-org/-/epics/2023). For example, +the `events` and `audit_events` table are natural candidates for this +kind of partitioning. + +Sharding is likely more difficult and will require significant changes +to the schema and application. For example, if we have to store projects +in many different databases, we immediately run into the question, "How +can we retrieve data across different projects?" One answer to this is +to abstract data access into API calls that abstract the database from +the application, but this is a significant amount of work. + +There are solutions that may help abstract the sharding to some extent +from the application. For example, we will want to look at [Citus +Data](https://www.citusdata.com/product/community) closely. Citus Data +provides a Rails plugin that adds a [tenant ID to ActiveRecord +models](https://www.citusdata.com/blog/2017/01/05/easily-scale-out-multi-tenant-apps/). + +Sharding can also be done based on feature verticals. This is the +microservice approach to sharding, where each service represents a +bounded context and operates on its own service-specific database +cluster. In that model data wouldn't be distributed according to some +internal key (such as tenant IDs) but based on team and product +ownership. It shares a lot of challenges with traditional, data-oriented +sharding, however. For instance, joining data has to happen in the +application itself rather than on the query layer (although additional +layers like GraphQL might mitigate that) and it requires true +parallelism to run efficiently (i.e. a scatter-gather model to collect, +then zip up data records), which is a challenge in itself in Ruby based +systems. + +#### Database size + +A recent [database checkup shows a breakdown of the table sizes on +GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/8022#master-1022016101-8). +Since `merge_request_diff_files` contains over 1 TB of data, we will want to +reduce/eliminate this table first. GitLab has support for [storing diffs in +object storage](../administration/merge_request_diffs.html), which we [will +want to do on +GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7356). + +#### High availability + +There are several strategies to provide high-availability and redundancy: + +1. Write-ahead logs (WAL) streamed to object storage (e.g. S3, Google Cloud + Storage). +1. Read-replicas (hot backups) +1. Delayed replicas + +To restore a database from a point in time, a base backup needs to have +been taken prior to that incident. Once a database has restored from +that backup, the database can apply the WAL logs in order until the +database has reached the target time. + +On GitLab.com, Consul and Patroni work together to coordinate failovers with +the read replicas. [Omnibus ships with repmgr instead of +Consul](../administration/high_availability/database.md). + +#### Load-balancing + +GitLab EE has [application support for load balancing using read +replicas](../administration/database_load_balancing.md). This load +balancer does some smart things that are not traditionally available in +standard load balancers. For example, the application will only consider a +replica if its replication lag is low (e.g. WAL data behind by < 100 +megabytes). + +More [details are in a blog +post](https://about.gitlab.com/2017/10/02/scaling-the-gitlab-database/). + +### PgBouncer + +As PostgreSQL forks a backend process for each request, PostgreSQL has a +finite limit of connections that it can support, typically around 300 by +default. Without a connection pooler like PgBouncer, it's quite possible to +hit connection limits. Once the limits are reached, then GitLab will generate +errors or slow down as it waits for a connection to be available. + +#### High availability + +PgBouncer is a single-threaded process. Under heavy traffic, PgBouncer can +saturate a single core, which can result in slower response times for +background job and/or Web requests. There are two ways to address this +limitation: + +1. Run multiple PgBouncer instances +1. Use a multi-threaded connection pooler (e.g. + [Odyssey](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7776). + +On some Linux systems, it's possible to run [multiple PgBouncer instances on +the same port](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/4796). + +On GitLab.com, we run multiple PgBouncer instances on different ports to +avoid saturating a single core. + +In addition, the PgBouncer instances that communicate with the primary +and secondaries are set up a bit differently: + +1. Multiple PgBouncer instances in different availability zones talk to the + PostgreSQL primary +1. Multiple PgBouncer processes are colocated with PostgreSQL read replicas + +For replicas, colocating is advantageous because it reduces network hops +and hence latency. However, for the primary, colocating is +disadvantageous because PgBouncer would become a single point of failure +and cause errors. When a failover occurs, one of two things could +happen: + +- The primary disappears from the network. +- The primary becomes a replica. + +In the first case, if PgBouncer is colocated with the primary, database +connections would time out or fail to connect, and downtime would +occur. Having multiple PgBouncer instances in front of a load balancer +talking to the primary can mitigate this. + +In the second case, existing connections to the newly-demoted replica +may execute a write query, which would fail. During a failover, it may +be advantegeous to shut down the PgBouncer talking to the primary to +ensure no more traffic arrives for it. The alternative would be to make +the application aware of the failover event and terminate its +connections gracefully. + +### Redis + +There are three ways Redis is used in GitLab: + +- Queues. Sidekiq jobs marshal jobs into JSON payloads. +- Persistent state. Session data, exclusive leases, etc. +- Cache. Repository data (e.g. Branch and tag names), view partials, etc. + +For GitLab instances running at scale, splitting Redis usage into +separate Redis clusters helps for two reasons: + +- Each has different persistence requirements. +- Load isolation. + +For example, the cache instance can behave like an least-recently used +(LRU) cache by setting the `maxmemory` configuration option. That option +should not be set for the queues or persistent clusters because data +would be evicted from memory at random times. This would cause jobs to +be dropped on the floor, which would cause many problems (e.g. merges +not running, builds not updating, etc.). + +Sidekiq also polls its queues quite frequently, and this activity can +slow down other queries. For this reason, having a dedicated Redis +cluster for Sidekiq can help improve performance and reduce load on the +Redis process. + +#### High availability/Risks + +1. Single-core: Like PgBouncer, a single Redis process can only use one +core. It does not support multi-threading. + +1. Dumb secondaries: Redis secondaries (aka slaves) don't actually +handle any load. Unlike PostgreSQL secondaries, they don't even serve +read queries. They simply replicate data from the primary and take over +only when the primary fails. + +### Redis Sentinels + +[Redis Sentinel](https://redis.io/topics/sentinel) provides high +availability for Redis by watching the primary. If multiple Sentinels +detect that the primary has gone away, the Sentinels performs an +election to determine a new leader. + +#### Failure Modes + +No leader: A Redis cluster can get into a mode where there are no +primaries. For example, this can happen if Redis nodes are misconfigured +to follow the wrong node. Sometimes this requires forcing one node to +become a primary via the [`SLAVEOF NO ONE` +command](https://redis.io/commands/slaveof). + +### Sidekiq + +Sidekiq is a multi-threaded, background job processing system used in +Ruby on Rails applications. In GitLab, Sidekiq performs the heavy +lifting of many activities, including: + +1. Updating merge requests after a push +1. Sending e-mails +1. Updating user authorizations +1. Processing CI builds and pipelines + +The full list of jobs can be found in the +[app/workers](https://gitlab.com/gitlab-org/gitlab/tree/master/app/workers) +and +[ee/app/workers](https://gitlab.com/gitlab-org/gitlab/tree/master/ee/app/workers) +directories in the GitLab code base. + +#### Runaway Queues + +As jobs are added to the Sidekiq queue, Sidekiq worker threads need to +pull these jobs from the queue and finish them at a rate faster than +they are added. When an imbalance occurs (e.g. delays in the database, +slow jobs, etc.), Sidekiq queues can balloon and lead to runaway queues. + +In recent months, many of these queues have ballooned due to delays in +PostgreSQL, PgBouncer, and Redis. For example, PgBouncer saturation can +cause jobs to wait a few seconds before obtaining a database connection, +which can cascade into a large slowdown. Optimizing these basic +interconnections comes first. + +However, there are a number of strategies to ensure queues get drained +in a timely manner: + +- Add more processing capacity. This can be done by spinning up more + instances of Sidekiq or [Sidekiq Cluster](../administration/operations/extra_sidekiq_processes.md). +- Split jobs into smaller units of work. For example, `PostReceive` + used to process each commit message in the push, but now it farms out + this to `ProcessCommitWorker`. +- Redistribute/gerrymander Sidekiq processes by queue + types. Long-running jobs (e.g. relating to project import) can often + squeeze out jobs that run fast (e.g. delivering e-mail). [This technique + was used in to optimize our existing Sidekiq deployment](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7219#note_218019483). +- Optimize jobs. Eliminating unnecessary work, reducing network calls + (e.g. SQL, Gitaly, etc.), and optimizing processor time can yield significant + benefits. + +From the Sidekiq logs, it's possible to see which jobs run the most +frequently and/or take the longest. For example, theis Kibana +visualizations show the jobs that consume the most total time: + +![Most time-consuming Sidekiq jobs](img/sidekiq_most_time_consuming_jobs.png) + +_[visualization source - GitLab employees only](https://log.gitlab.net/goto/2c036582dfc3219eeaa49a76eab2564b)_ + +This shows the jobs that had the longest durations: + +![Longest running Sidekiq jobs](img/sidekiq_longest_running_jobs.png) + +_[visualization source - GitLab employees only](https://log.gitlab.net/goto/494f6c8afb61d98c4ff264520d184416)_ diff --git a/doc/development/what_requires_downtime.md b/doc/development/what_requires_downtime.md index 841a05d8e61..a25d065f735 100644 --- a/doc/development/what_requires_downtime.md +++ b/doc/development/what_requires_downtime.md @@ -377,6 +377,11 @@ This operation is safe as there's no code using the table just yet. Dropping tables can be done safely using a post-deployment migration, but only if the application no longer uses the table. +## Renaming Tables + +Renaming tables requires downtime as an application may continue +using the old table name during/after a database migration. + ## Adding Foreign Keys Adding foreign keys usually works in 3 steps: diff --git a/doc/user/instance_statistics/convdev.md b/doc/user/instance_statistics/convdev.md new file mode 100644 index 00000000000..a1a4eca191c --- /dev/null +++ b/doc/user/instance_statistics/convdev.md @@ -0,0 +1,5 @@ +--- +redirect_to: '../instance_statistics/dev_ops_score.md' +--- + +This document was moved to [another location](../instance_statistics/dev_ops_score.md). diff --git a/doc/user/instance_statistics/dev_ops_score.md b/doc/user/instance_statistics/dev_ops_score.md index 68c5bb48c3c..a68f2a1e92a 100644 --- a/doc/user/instance_statistics/dev_ops_score.md +++ b/doc/user/instance_statistics/dev_ops_score.md @@ -1,5 +1,6 @@ # DevOps Score +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/30469) in GitLab 9.3. > [Renamed from Conversational Development Index](https://gitlab.com/gitlab-org/gitlab/issues/20976) in GitLab 12.6. NOTE: **Note:** diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb index a4c44f78ad4..f07d56e85c3 100644 --- a/qa/qa/page/base.rb +++ b/qa/qa/page/base.rb @@ -177,7 +177,7 @@ module QA # The number of selectors should be able to be reduced after # migration to the new spinner is complete. # https://gitlab.com/groups/gitlab-org/-/epics/956 - has_no_css?('.gl-spinner, .fa-spinner, .spinner', wait: Capybara.default_max_wait_time) + has_no_css?('.gl-spinner, .fa-spinner, .spinner', wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME) end def finished_loading_block? diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb index ad5b3c97cb9..940b7f332c7 100644 --- a/qa/qa/page/merge_request/show.rb +++ b/qa/qa/page/merge_request/show.rb @@ -155,6 +155,8 @@ module QA def merge! click_element :merge_button if ready_to_merge? + finished_loading? + raise "Merge did not appear to be successful" unless merged? end diff --git a/qa/qa/resource/api_fabricator.rb b/qa/qa/resource/api_fabricator.rb index e6057433b55..3c06f139738 100644 --- a/qa/qa/resource/api_fabricator.rb +++ b/qa/qa/resource/api_fabricator.rb @@ -31,6 +31,12 @@ module QA resource_web_url(api_post) end + def reload! + api_get + + self + end + def remove_via_api! api_delete end diff --git a/qa/qa/resource/group.rb b/qa/qa/resource/group.rb index 0824512d238..a30bb8cbc77 100644 --- a/qa/qa/resource/group.rb +++ b/qa/qa/resource/group.rb @@ -16,6 +16,7 @@ module QA attribute :id attribute :name + attribute :runners_token def initialize @path = Runtime::Namespace.name diff --git a/scripts/flaky_examples/prune-old-flaky-examples b/scripts/flaky_examples/prune-old-flaky-examples index 7700b93438b..4df49c6d8fa 100755 --- a/scripts/flaky_examples/prune-old-flaky-examples +++ b/scripts/flaky_examples/prune-old-flaky-examples @@ -7,7 +7,7 @@ require 'rubygems' # In newer Ruby, alias_method is not private then we don't need __send__ singleton_class.__send__(:alias_method, :require_dependency, :require) # rubocop:disable GitlabSecurity/PublicSend -$:.unshift(File.expand_path('../lib', __dir__)) +$:.unshift(File.expand_path('../../lib', __dir__)) require 'rspec_flaky/report'