From eedb7a100130de6358a6c7ef0017b007546acf33 Mon Sep 17 00:00:00 2001 From: lixiaocuicoding <1306850299@qq.com> Date: Mon, 3 Aug 2020 20:39:24 +0800 Subject: [PATCH] add monitor.md --- README.md | 1 + docs/cn/monitor.md | 54 ++++++++++++++++++++++++++++++++++++++++ docs/images/monitor.png | Bin 0 -> 54961 bytes 3 files changed, 55 insertions(+) create mode 100644 docs/cn/monitor.md create mode 100644 docs/images/monitor.png diff --git a/README.md b/README.md index 7e0896f2a0..162fc8441c 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ CURVE是网易自主设计研发的高性能、高可用、高可靠分布式存 - [Chunkserver](docs/cn/chunkserver_design.md) - [Snapshotcloneserver](docs/cn/snapshotcloneserver.md) - [CURVE质量体系介绍](docs/cn/quality.md) + - [CURVE监控体系介绍](docs/cn/monitor.md) - CURVE上层应用 - [对接k8s文档](docs/cn/k8s_csi_interface.md) diff --git a/docs/cn/monitor.md b/docs/cn/monitor.md new file mode 100644 index 0000000000..8021e27b92 --- /dev/null +++ b/docs/cn/monitor.md @@ -0,0 +1,54 @@ +# 监控体系 + +## 概述 + +CURVE 监控体系包括三个方面:指标收集,指标存储,指标展示。指标收集使用 [brpc](https://github.com/apache/incubator-brpc) 内置的 [bvar](https://github.com/apache/incubator-brpc/blob/master/docs/cn/bvar.md);指标存储使用开源监控系统 [prometheus](https://prometheus.io/docs/introduction/overview/);指标展示使用 [grafana](https://github.com/grafana/grafana)。 + +## bvar + +[bvar](https://github.com/apache/incubator-brpc/blob/master/docs/cn/bvar.md) 是多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值。bvar 数据支持在 brpc server 服务的端口上以web portal的方式导出和查询,查看历史趋势,统计和查看分位值;bvar 同时也内置了 prometheus 转换模块,将采集指标转换为 prometheus 支持的格式。 + +CURVE 中使用到的 bvar 数据模型有: + +`bvar::Adder` : 计数器,默认0,varname << N相当于varname += N。 + +`bvar::Maxer` : 求最大值,默认std::numeric_limits::min(),varname << N相当于varname = max(varname, N)。 + +`bvar::Miner` : 求最小值,默认std::numeric_limits::max(),varname << N相当于varname = min(varname, N)。 + +`bvar::IntRecorder` : 求自使用以来的平均值。注意这里的定语不是“一段时间内”。一般要通过Window衍生出时间窗口内的平均值。 + +`bvar::Window` : 获得某个bvar在一段时间内的累加值。Window衍生于已存在的bvar,会自动更新。 + +`bvar::PerSecond` : 获得某个bvar在一段时间内平均每秒的累加值。PerSecond也是会自动更新的衍生变量。 + +`bvar::LatencyRecorder` : 专用于记录延时和qps的变量。输入延时,平均延时/最大延时/qps/总次数 都有了。 + +CURVE 中 bvar 的具体使用方式可以查看: + +[client metric](../../src/client/client_metric.h) + +[chunkserver metric](../../src/chunkserver/chunkserver_metrics.h) + +[mds topoloy metric](../../src/mds/topoloy/topology_metric.h) + +[mds shedule metric](../../src/mds/schedule/scheduleMetrics.h) + +## prometheus + grafana + +CURVE 集群监控使用 Prometheus 采集数据,并使用 Grafana 作为前端页面展示。 + +监控内容包括:Client、Mds、Chunkserver、Etcd、机器节点。 + +监控目标的配置使用 prometheus 基于文件的服务自动发现功能;监控组件使用docker来部署,用docker-compose来进行编排;部署相关脚本在[ CURVE 仓库中](../../monitor)。 + +monitor + +1. ```Promethethus``` 定时从 MDS、ETCD、Snapshotcloneserver、ChunkServer、Client 中的 Brpc Server 拉取相应的数据 + +2. ```docker compose``` 用于编排docker组件的配置,包括 Promethues、Grafana、Repoter + +3. ```python``` 脚本有多个。[target_json.py ](../../monitor/target_json.py)用于生成 prometheus 服务发现依赖的监控目标配置,生成的文件为 json 格式;该脚本依赖 [target.ini](../../monitor/target.ini.example) 中的配置,从配置中获取 mds、etcd 的信息。[grafana-report.py](../../monitor/grafana-report.py) 用于从 Grafana 导出 daily reporter中所需要的数据信息。 + + + diff --git a/docs/images/monitor.png b/docs/images/monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..abe387b785f2c6b4924b92b7cd7ac5d0a13ecaab GIT binary patch literal 54961 zcmdqIc{tSV`#(IEifEy-q}3K>nZ*oBWtqh?V=(sJFf*8y8H}B}leLnRAtj26lE_kt zY^g?4vL{QSC<;ZS-=+KhEZ^gJzQ5va!Z(SigNe z1OnM$VUD(gK*SIbh^U#wT5#v+ie)1NB5ljVIP;i%Y5;=*QA3#h{YecD^=ET=Y6!F% z9PY#6==cTr(1LxKTpbpL2X2AinQXrRY5>LW?=f&F9I6d9(1s%HVF)#Z33T-hfz*NO zLtXzK??a=o{vil%0|FWZAKw5LkInU0Lzsf^7Azix0j}UScqfv;n=|->LA_u|FQg{; zXu{zzC{7fzRRG`ti$v(_AW-18hLyQJ0j~x(1D_cIbPBlOD86*|>LX_U!E7eDgEi38 zf$HeN^z?NM48eVp57j3);J>J>E-91}%ne|({$3Fbp@Y;h_?veM&xiK+U2{_e)WO%+ zB#07bg^%!e4%80^R8}A6g>xu>kD;;IGzORxu7iT)!xFeKm~VIfh@J`{pJ$`yqS zw`1_aFswk>-@}oPd@>!$g=1~>z#UUVnxCyjAl?P==|ke6ZLIBaK5&*j$%eoUz~M12 zA$nF3e$FsMe?A6E;&IVtJ}5u%m=npG?~e{-5n;Z5`h1w4GZC!A)YXY*PbFde?L+jq z7KRaiG#_960E8ZmZ4Ss=(Vd|%Jzh{4j^WSnb);D{DF_pw0&G~QE1Q7B86t2NzDRv* zz7NI{<79xcHNaV7V0;G~dz^!%kKG@A@JL8Jl%>xxwF(a-gqqm0F%GMe=R0BS9DRrs zB$*t@Lf{MnLf9;(9+DbC;@cYFgRR2Ru8au%kccoFd{~eV**OS{!iPH1C~Q|V13wqC zi2+zagb9rk#012G5hQCOiKp*GwhCq2(DVt`p`k=yY!DlRr8$NenPTj4M; zdyEZOLr5?y+}e?7X&p}WMOcM8*y%A>&6Dj6gS!$SZ|?%!(-cEtU<1M_biOObk7ggr!Rwjee3>>*XcWuFmZooIXct5Z3q(O(ED;zE z9Pg`d${=y9u`r(i2Rd3mf(a)Zuw8vkFy?4nfTM4SwO=5|0v<>w(p`LfLnHXeKu(yU zqce-(ql@_UB!g%5>CZh={wp|gY}U9 z<|Yn$K{%qJi7g(*@e4*f68I>BK9h!r8iexrHe`w&+1%BdYa4383Jsu=ZDAp%1VF`- zjxn%_VCfm!@JIxc@K9?)fUnuAX*yf@TKI$#Y0kDTp;msubf6hCe}bzS(N~Wh07sfz z5=@}>>`;uMnWI0=-^Z0{ML`GKP+1sT5*&e!Ku}C<={7iaIG;>(vBpvyk!W)tPLQF! ziBpIHBf^yH>`!B2EFA3&P+`GnD^oODf6s(@1Q7oODZ0#)>E_^!R(gtZq2&54ms5ldQR0NF>q#tGi)rZsgPB@MOo5tk^ z*$0QQef7amEGfj!k!b1@Y!DH^z*yM8Va^yU0@uONE&$vLn z5qv)`6BcN0fwQHXV=$|p;pfbuTk%mgh(Me*m5wuk89E!9Mv(Pg!uT8n-jC$Mx8Vh{ zfcIi?KEWX@szI0!B9P&WqOr_Y?K(go{7MY*<)W=gzW4w-9}IL3LD~8ugVF?5>dfa7ar$Py zfeu7-;EASY;oyye_c1X+u`DnSW`P!=3?~D&xnl^yB*@H$Y7i8L^)(G=P%T2xeqjN8 ztRaw{W1ydp9|3DkLtBMe>LU>*Y!uZl(8-!=4K{I81D3fxKVtQhldClzPr+K6(|A5` zJDjbx3z^O&m_|5Ja13&In76frIgMjz?%?8srBJCRXo{s{M2Mv+gTnB| zGR>%ZTo<@0el=)@1e*DpnELZAO)z=}E|fq&(=etl*VfJ;(1jgHv^Ic-^MbATL7X52 z0!uX1qxnSu_TdyL-&8N0;|NEPd)Mk zZbD@Gv-J=WFpQPHlT#?2%QGe5oNRnTpe{VFBi~1#vP#nqiZV1Of%$^`t-)7&M-wM| z8b{w0hsKf2x%L#iH4?!#wdUzF$sv9)3#ut4!beZvHJD=;7>>1b4uIJOqQWRaJST@h z8ajw(MTQy@?Ci+atl%IN+|1qyqzqUWXA6d%zjGMQmP~U(gs_l?0Td^;o}o1_%#JT1oWzLKU3B|)r^#b|G5Cgb5HNwK#k>N}5 zbLNJzt;`K5hT-TyM>L%iYKyQ4hB+HJa|}6fUu#M*+|ED9*4f0LjnFeC_#p!P%qVaR zOIsU~Wk858)gdh0)XxQK3v)E{v*FRLt%(efQvst5a14Y+gxK=gWLE=3pnim(0}4qt zaCLIT*&5<$AS-gvx1ka_Fg<@#fDM!D;*a)01rhByp+GvW5&FJ76Bla^iUl?~4i*_m z!PCv{0)lBsKQk9Qlhss!Y3dSSXy6>6XKHH4Fd*Tb^&H8eLC#1b*@1f1=rfr58=pzIr7;|M7TYR3#SI6{84y(u#<@u8^%Ex5CK&}0{%$> z7+V-R)SeNFvUKzfw}pqYgNPt6HMI@4i14A2$M_IXP($F(hD4k_#?Rix zk>-rX*~6)pNGl{O&?Lmg6oarNhdQ7`V1B+FQ+*28o=U|U@>~ePfE?by(a;VVPNdTD z{-!Wzo~utV)P{jF3}AsUWJ+VWI`A9_{tSC+xE_aR2u1N>2#YWn)y&t4P9o@;GYs)~ zLk=v!(JFW~bE4RWfry3;^Igqz5g;|e{wufrljwr)|C}BWn4PafBp{GI5DT=4J>PRG zSF(Bs=1oG~Bgq^IaeHG5&R8}Slm6>ioVcjTp13%zyP6_*_v~N)!_zp{{%-n=l#iFV ztg-C*J#Mn7HNEM7d40drT6m^)ziQR*@kx7+gN?%6Y{3`7r!S?K_7TqtKHVfu-}rcg zZT;pWWWVwr(f{!}VfsBJyh8Y*(r+{tih~(V*zN%xS!7I z&{aIu^q)cX`l7Dw3u7|9uQf!H6miFX&Kx>shy1sI*pmK-M{m*noO8i~c0B&rI4xoM zA0{5E<;|y7-A?xj0YVHCFWOY6qT#URU*erPAJ>H#ypK)zd+v)zmQUsV*TimMV*ccI zMaO-s6LbE5II(+oXTibaDBfRhCqDIX$wi}-o9h3uhr!Kfvc9%#gRAacRo@;p>JF0| z+5fh{Dj@HNA!*XZ8F5XiDh5D8Hvf5eNE?WZ?V-~6NflU>gf-CYxtmGGL z-Z=>D)!QF zEta-5vt!)yUlZ-|1^3}&P=Q+}ptTL1nU6?*W}oYJ^WVX3ND-*LeTOo4yZRm&X^l_s zL~1^K1JMZi?-4Jf0Gn;J+q+(?0mG=T(mPmiJylH4LFV5+c?y_Qm`=LMhEH3i_V4{PG{=$~wJO>)9t)yk_sO*Gmp z5oetwFyhB>q#y^yO`GeEUdoHAmUp~|Mh33b6b-9YKT>4&T3O@DkCQCU4| z=T}$_W`BR*qVSkQ+Mjq2HWg*@xx={@R&{m=lVL$8i7{^wUi(SLnAGgo4r$TH&5z;j-$aw(aLHN%)M^WX~S;M_M9@X6l z|Fwg}c7W80-nqBRzL0<cvtrTlutI-9WLdoaGi0sULcN4i z@}BRF^l?bf4hVC*pSbK&US6KDx6j*gkrI!`jXISzr)G~99_`=unf!ZsNgF~J;cu_M zU)W#)iP_|BsPbqkq~gM8f5StLMBH;>od-iQ6>@cx#(u9gcZzFbwBm-x-fd0RF;b%j z$40({{Ou0ku*PI{_O3U4cNN5Cv6=fWf3Yd~YoZ|>8KX`up#b6?pdzbbi8_TLE2QN? z!kZ-$n+f*E=Bo{2A;w-1n%F|wB3B1;fSLvIJ{F#vo;|I!w{guu6?w*}IphK)i>U2tIpHH*&Qe+c4Y=!aZ{EK7lhk8P5Mh%Xx^=_6{!K6BNJSt9mnQzeBfp$}HsnL~7 zN=^|V2;!-g@PlSwaj>~ru+Sw)bxWfBlGKr< zqPXF-S6J$IacDE+0{OkFXZ5{gneA8)1sR{(1H$i`ZfpXiPNbem9?v;(5F=UT8$iP($KG@(onoHI!jnVGk|Hs|yx1+uK+ z*vl%-ulDBc^Q`tR;`gqFWNhtWQd6-rc*|?1WsYsA?x1f*>zh-zX;czV#gF^&R}wo^ z-JCC+Xn2C9YUn(&C2O^7+Rg>}Jf29En#~a!=6K-UQpap|e4Earfsc^~|fyw}=?*s^3+1eAcM*g@pMvais)V*T&CoTM?(7{NG=I@LNuj6Z)@LU%OfL?I`t-GaI;51}#Cu#uFvE zj#1|*Jonw!T4=L56I*i%+5bi32#V`x?Iwp9_luG6o>mb5=F=e7Hwsi@_Ez=v@0T~% z$@nYB&q8)IuOw_xN*HcD>3i>uBc1%?(@hys-P$=>?CD);L8A-vN|{NJQ>?25kDO?* z^SpSp33&`7S)HtSDP?##@=}1|-Y)Sf>{qP~o4OF$^*O5T_idIhI*aDW?9h1_o^YbS zz`3;IFji56uduPMi-8!ek;kfsBHSJ**bX@&cdd+zd=J1H*cvxW^}FtZRAt#V0n&#O z1{q7oMhyZY3&@27atE=e6ioV>F3Jb{yb$|+K#c$RPQjhw!7!@B=t>yt-KZnV=~8X7 z;+~6&dxm;1;V*2yLhy_?O5OMRh56G3(po}i>6;I|-!3eldKA4h(nl|Cz7!d}?zW|z zBtG}xw#eyPeL1bfvyS^sGcfzq{mYy1$DnV{$&0%;ryjm&z4vjs=D^t|)A+}qt-cGT zt3uzhU)-5lK0)|l<@2~%Peo(d<#a&0CacP(SPVY{`?x zIbmVT^>tDin{0;e*tnN5AFY zPcFMNd^%5zpUKjQcN<_N$!V$YH~TvLtb9tmQr|+CT9vvve!qAFix)CwSVoh|jGNy) zq^O7m_};Uvl7bz0>Gj!n3A?XQBk;;dnXg_Of8d#fPT zJ&Z+i0_;3LkeaNNyn{s_3ExaL9qmFSE3r)Dk^(F z3(UL-60wa*g5($P5ltJ1y6(b!vx?Dbo5UxGA;)&aaEG$P3hj8Ws2SA^sV1r2`HP1jm$T%VO;`E^ijHArZ6OywGzo_j z-kK!bxYw_)nYa%!R9Y~g{^VRw zv*Aiam!fSmn8kZeML({dxQw8kdeQoRV)ijYuekJu_<7smu&P(6@z%QAW*xuUGtYgZ zoLF6uFS+x0KxQ{IAf{&FwtaPTN=H_#7=M4|nv#km?e{p7+0jFkWsA9c9KQ&kOV@_y z@kv4rY(aA~2zy?1Y!Mmwr0(Cp%P&!h2YIpFj3l zT~PJ4^PuFct5?kDH|0@1GaH1isOW>`?~C6jL4Fhlb&9s$)zeK^B?-wTt<@4PG!n3rKO(3oQP9Lx>d_G4GWYiU{sKMJ!_)%#kmPyKBf=onj+;U&BTmIEOxw*L$6W*-N znMN{sUJvf)i^n_*JiqTr7gR1uu-*Gcpt^*)aA8ti-P-%C_@&*?@RipdYRk@|cEuJ& zaH@&j7AXvq{Qg6aZ zwB&ncdREm})lXB>`s#I-LO=dbl;8a(yxBriCO4Gx%ecE-j zTONxJWOX_hr5UM4J*zBu8>&jZJ9)^(^Ab1=WGg1gw*Fa`MQ5)f3m=o2^>k*A*~&{2 zB+PsmAtwpkt8I_l_+hzwv_=2cRlwq5`sZh*vIv))a*N&ru#Bxwrz%xo86NMR24kpt z>#~jip1Vkrv}cP)D;Oxqx~{393Cj@eOhtkV?Bvsdo8of4)UK|CI}emhKE7j|D0N_J zJ6>@=l-XBR`lBo6-ipW1;^viC_jORHS23Qq)rvMxNI&R!Q#RftG@2@xjn$5rg(Kv5 zo?PA!%V-yPMBB?E-Y9;kO=!Xo9(I5Dbv{urvcW^e8Xyz+Y~GvD0&s3srEbqPbE)+t zs~2CgdcjH(ym!8-c2ojQE>x0OhTiy_1OBv(lUr@|!!uz;;1m*qoe7&Pp37GZ6aQjh<(A^oN6Dp89}ZluiD~#t(%?(==**{;==O#L;N0JY4hT_+C4bWue&4sEauzn_hJ^N$tdj7#V1C{eIY(h1h zpfvvH63c&&Qs?sLw} z<8`=%L68{qP;;0w<(Gd+*Zum;E?XSS8D+;VxwY?EE3FXMTTUCja&lLL{-dvHm*@&R zhv^4ySChBiQ#=x7aNa9saU%KvRpZ#oVtXw4**VRH?z)u|(^2Dx3_e%9zSDtKnqO~` zE{GabN`~%F5-9U)oP9e{<>W=Tf?MfvaBf9bNx68f=KWbKPLIz?Ot;;+nY^Pa zhbM18&?zKd-o=zEC%2r&I81Bed?}<(bAFMtR%*V`sCTwx0B$#v}k+P{#~{ zxca`WU^_8iocEfzwMakBLbz~%>KXA-t>n?qPaW|quYRx@*OYzNQQtZF}O9&}nY`j*b*1g-iqZj6bcc*kcJiuj*_}M6}f^7yi8< zgG(E~9J{Nu_WO4Jsf6B!?|pRL<&VVJV{Ps&pZ(>%qJntUEBbYd1fnB62g8_nd1VNN za67UvB&Jn6_sUl9r0vcF$6~%^Tpqf}eev#Qs0OSbd;+?8`0qPNhTDC9Fltsj(2yT#y$TLHa(Mcrk%hqjLAnJI{rEX6a1Z!rvoc!E=(GVev_+W=9Z;Sj=vo7!)4&qM|FSD)IB3#*OKDiTk7$nssC1 z5$#5ZBi1G7ZZs$?~xu2N89`qBrWv&MaXs(snh0Y4$!{ucD*azUXO}iqeWS9=VkwPA|Ke>oH#-(R% z%uZJ*jF0*8HtZ`1Guzx4Wf+W2i4~0dYrY%TKd{kYC{6>TcbRT>rLjRsH=6cMQATWt z@(&3h1EyrnZX_73Vy{UmehHUX1@u}s%~h@Lr!KWRI(6L6d8A_l-B1O&bzRgc;ppk3 zk6Pn2JU1R)<_ttk-a1@L;>>JUdhFBp!6WP~^56yThfF8zxG!T^usu01@WhRL%`6Sq zkrRrq`7@UlyGK4WZ6P*Yw=IZxW$8pen)X9*DLde%2v0O|<%*pa02G_Qg~?zKz)0e{ z^wf|oF9~%lo~M@vY_u*bfF}yOHha;Kn}3p`10qHb?=_*UN!ALKH@{Eyc5oS}9&a(N z${sQ@q+O%!=*rhk4}X3t?wH4`eWs^peSL#yE4O+_Z}Yu%DccNa!0_T5tF;mr|GO%1 zt0t56v*h`~qAx)!YKjWkcr756j9381dtF-HA`?J`&iLP<@vZp5(xVk#ZkL6;5xL+f!3&YjZaqA{UlHKiAUS&+ zkdydS7LnvF|h90H-8G1BjQYpR(A3gAm2Qr#V4{wy60nCrZ zOPt$0fdt?_US}+2bul{X!8?zGlb4w53!U_=rvfwN4nR>vMgx~;2Oxeylu$lNF$rAW z_u=-!NQcTFdhCT|=${TWN(LEiqOqbVr2v#0-cxV?$ON}gLS2|R6Qq-TMN+8MW*s%nV{>6A znVDG@XQ`-uun!i#^9!K>Q`Ek=llZpc_j#$GT0MEU4mrcbe^$KQ8sZUOzcf+)e(p>A z?sBvK$Z?&tHM@~w_7JTJmejkc^1Swp$?2GRuj~$5$Iml>W6i#cRil|%nm5Of?yUNk z1?lw`l(PpSbMuIoM@@%}AqVtoB14?k#sBC?xYptEBs0nVTPS21=6=UJ>bFVv;SBSX zKyg_RmNCB+%!OOu%*rCZMa2Ny(d(!xXDfa?@Rvbt(eus3wIaKwunX;#d$Qi4Nu8Nb z#P2uWVJjUg{cA4@7q=k-zky@<+hgD5;j)hc7=c{q0{zy+EA$?#?@^$vcj} z#16R)dz;>`JRl6}7BqfsVI&DWJz%o+E{zEr8na-&55EeeEfT;%k~Ls}3RRA?eOhtT z@h%zww^oB^Z|Q((-8GQTwC~zx>U*0ui!X$29=S8W&iYZ=WA%{m#}Y-WQXC5~fFUn>inZF5QymuSX$FOcMw$A_< zsC4GM81w>iOei=G(v@2xukLs5`-6-*dPRrO?T$ibqwW$b^-cn2xCX@+##T?3>GM?}k+acZ0J4*pJ}2F7k} zH-n$qpXiY*FNQ4dA+A3{IF`IlTaR{1V#KEEbv*#ZUIQ@ljMJ zD`fUe$}z~v6B7HR75HsIYqm#_%`&rYB!A0+?DD&%NhwQvr+wRyClsXBD|}f zT26bM{H;d4m{jqJU+1tjh z3pI%QtB7RZK)zno0w?!M5VregvXKfRV$MIOHgzpQoWq;c&RBCxHE+r5z{lcgy;a^# zw$+#9{5W(_qJev_Sxc>c4ZD(7?4qy(FmB<_x!GxK>@|k07tNPQt0fntp-k&ye!cAK z`Yym8GxpL%rW39NDlq<2G$sZYwC#P|gsY)aOtoQdeGizL&mx#f=-}O%~A4x=(?fUli%p)QF`}AYux%zjP z?46NSc~Y(z?~Ra{bsmHJ#X3v9#CgAGpYOg~7zE^$hS2J7D9Jg=TPt$#7$kRc`k>2F z25H2-llpmiy%}#q4>P#EbPV&scCvb&;<=>^qm1Zh*BwR;@<%le7L4o@!BTd`E(a|c zDbiJc@v|?>J-UWSa?=00vH`OEl!tJrrc3bFB%KMO%#X(3tDgtzp5Q_}P|`%a0^MG|8K z9|S2NW@w9y1U9S_jrt<|RQyBrs_)v9;YWJZlwPU51a<)`{mk>_ham$R8qIrFcW>dD zZJC-aMy-sH9|gab5Iv(JaXx2XF>6*5aZ z0`xK^=C*@f6T4;K=&G!O^Zx63fAU%rs5+!YC+qiDgLSrBD6q+?DKzd$1M~a-#l6OL zp&^*lM@D-k4vT3Yy?yK8S<64$YCdVrYU9Jz_j^F3t-tA#BoH4nPH&P9$_*X0)fFA` zNvheHpO7*DkX>>0?2`m=$eTE)F0eY9x5IP^Y z*?osuch2>6aOc!w-(O9srI!Lud0bnaG`rEG_A2N?QCEBPUlPnu5}cjDU-UM#Enre5 zg)pxi&`AIi!7_UKY9m8i{B2J=aI(vg1;E(9IdvCS-23`<{i5#PJCc{RZGEop78(9! z%=ujsdHEgr6??kJvtRhlaGxsm+sAHK?4Km2)07Yr4LT$;&V~UIiWXDVsIpmNjzZO! z_FuC3--j|e-Yh^cpD`bnr^AUk`;e^iE?tskjh{DJ<<(Jw0E-& zRoetlr<*kLvXWlJWq#E_)MQ5XMeqF-<{2vleJZ)noA#VgU<-fWJEdQze|$$;iL=)j zfp@V9zr{!X&Vja4(Sx;*_dbDVNB7w!hWo^o4KJU5(qf026ylGUL_c~MM@~qWThY`` zeP*95yuMa-nBx&QvjwLBR zpy1sS?;>D`vhj~-1R z#d(Wpo4(^sZeeNOthiRPxY6b`sKh6&dftwY4Qt&hdfeC6$L^Q@NPzr+7_6x$X>K@_ zM(u}0ZL42`45D`K5F6SA`7R1oOS6tZARObq4Q*4RL))x1*N{bkVhik+OvHJA(sdN6Bhap*2i5C zahDu2P7<6?{%|$A_ENqBc5>*<|Yzlc8Ztxv6TIF_HS zKoG5LCXa1{6rYz)dvrvp-e&fPq~?ahAA!|8+sy1(w(P44Y$t-9A?Bx=Offj0J-&|p zwz`oP065p;X%OJ5uN7|yYfS&L-g|pozsQud_c}-;WO;2p6#@!>FIU99H9=d!%wb6C zdn2)-?T`YID8`+#+TCIchvTLpJ?o5jL%Opg2G)ie#LbHsNyIIk->qvBqYxJ@!tfs~ zh#nV|Lo22)v{ddd$> ziw=eFOx8$Ve;y~CkD4}v91tCHMU5jqK`cQx70767S9a6`nhC zf<|Q|^%FbF)#Ek^bKd-15U-!fT1dY9SW$9F3-SO`-B$7Zk-^4bh0UXt*}WStyh?Sg z=#^_LElefkR$MfG-Yi^Roc+3r*!uja2Ek>*LZlua{5$OD*k8KEFq-J`KBUe-P2gQjj4ld5LoFC5=SAM&sR=K=pa6 z%~npTLR)>qNu6C}=N+58ACAuXSG%Uo7Vm~&1rx-~5gCKdsM}NF_XEXU)u~5*PN-ar z_;h38*RY!05LqV*w{#Mmsa&FidQ>E^jH(9;z zRA=j})op$48}$lM9FTp#T|URcMTQ8mxj|rU@okE4PF8&IS?Gz7GLFsAi<6Oat3=2o zJ%xNvNm9fTv((Z~^gdzS_hUIMwLX0D*=HOwbY55IW=&>V|I6y;)c#kDGV(+)#_T@osmY`T8dzm<`d@$pQ;V0>nTba$>IvK1HNQ0mR5wTCZ98!dudiZdg{>3 zvje5*(sv=<9!Z$M253|8bM2F1@1pf(ZE-t-#2r2E%~f9kT_LStvrCxyI1;tRMpd_9 z<&UGDN@=?qSp`b=dHf@4o`X=D-O8@Wj$}ow65sloeJbb5k)w{6k0z}sL8>kVrDVRP zVmnN}`bfzy4!E`?p3yeS2o{M`X?yn@a_6>To$s1WlkkI$8tuID+*?)Rkkn*O&PDBY ziif87e>D8LMW=r^W={cbd6xX@#ni3Z{j&#j$P3ekkS_ni=ugiNiC(;1thARz=&V2s zmlvKKZK)Z*lw!8&@YeB*+>J+m)U?kVPk|h`?8z>r+TX7)uWYSbdOIyEBK%AlaI9=Y z^$&e{z%({YFRW#v|1^6-Wj4pJ_Iq|p-tMDl%ONslA?LE0&8caAGto;W*+n8HPQfD0 zPbVS#P|9dlmS*&zRI~8m+0;Ns;SNe=dD+ILe1FX!Lssi$SYgF#IW9M{f<70V%^F4- zV!fvXiX(frU@ufVobEW_rcgHQa=Gx_`q^UpCTBN>UWsPqjV-#8(1VS)u2gcKyQtZ| z=D}ts3Qm*D+fZUv8Hbmq%AKi-gWKh_QwJCo9a!hkUdq?^8AN3XQT*j2I{|dr3~=65 z+^%p{S(Bp6F$W+0{xv;1-|h7TV6WSlJAIe7YAti?Mb@Ez8O_v-DIf#4-mV$TzFuc? zeC;sp=#on(?jAj$SG#K9*wN+TO$MN*!I^E-A5BnVCFbMYST$<*@88caKT=s;(Ou%A z0(-6X>JtvMUc0PjSjxFRFf(OG@u&_oSxYTv!{>t;H6^ba4|p^Q-{G-$2$t}R^T=cI zDYu-IwjypvJHtr#KeVw`=zrhYUZ&y!=}V&WnnbSkgINe@Z;5qkgnm$0^I3SXoq|B z-c1GQRCQa0T2K+`2`s)f0}y#k=nQhD?fRw+#p;T2)JO~6La6t`MjQ0FFJM*^vsgcO zA@nf(gjGOA{L<&}m$@Ia!dX{kV2zF6qQ*A7-Z49s0@THMt|V{o{-&oj^>9&RMCMQJ zG-3636Pd>E;S24o_R&f$Y~I3_vTcaar2!{$hpN)k5rJT#^8Pt$R|D0sZg6QRy6VBP);G+LG%&7s{LQ&5BVp4E9r1)p@iq z;-4eX-nxzr@NJs3Gq(*{!1Q+%-VtqoxFh_1dPjJ6KkLB;06R(nYZ|6Nk6r zh1EwoY7Mv4x>!3Nt(DPudra5Wa5ZM0-Gb1eKBB-g(l=H`)I#Fc&DMNKP6^eS3s*0c zfti`qw@OK^*&shKb>Y}CT1+)=^fIJ6XeD~K@5b2Xr4@A~_v80UJJ@L7lWrlG=Pz}c zz9l>HxogXj15^g8`~V?>erbBRW@qx=4b##TFy8CypYCK-_4k&MYPZWT%pQh}F z%7-%zQq`a+n4j4Csd)DK=9%G>yU74|X!>0BZkL*(GdRjUPgYzNie{R6@09;m*L6F2 zo89~AU7h>0vVz*Iw_#LrK8Ve~hKp{6f8#!%De4BrZ%c-oDwT1reqNaBvHUyk0m9NI z>Yc>Ng|QF-(;W)!`Q=}pI9^&y^6f_SLUxxZ5~Z5BN>PtCR8hY6>T11PYwY8V5%U@i z)mE1r5`!|!+Mf*n7VzU5l1HvocpcgmsZ(_R$O2ujir(9BitMxrq`oty`n6T3E z_UX(vu7@X}*?mMIU|1v;n?H5@@bi!#6z0W;I=RY{QE0 zxP;guk4%2yKiG2}&sHv^kP~*sPDj2=d8M&CxOH!b+%2^WetA5fa1cdi@t~sz%Z2v-- z1pOUqoqr!=b;vDtW%^gs zvvbc^+xB#-hmL9dg1uIs4Tpo=8j=5Xc|(RI6#i|1+de#1-hK*{_GYf+42XhSNebp; z#%Qn5y_B-vzmR&nqD_beY=Irj^2y-Y-10SB5VwiEFpnwqN$GoCTB5gCGOshw<7B_! z$m%|Mm4<(g&AqNoc=t{YsjdkR8{gC{P2xFift|OuYLY%g>+@3=8#2=vJ<%Sw2nyl5 z4ogvwZ$Lq+t}#L692$M$=f+J(Q+-bvs^34=-473Vr8-sjdu6Dco3+31-r>R^7FH8P6Ab7?4Pg@J zmz7r)saUr>#z<>QMcnM$Zz=3-vARcB$y;<#(tUF~$@qCw>b=!MThhiCvEQEV`%_Q? z)&DL%h?`)Xt#Jm`>z8qfYcO5=!&4Q?UnyjJjjh%6+Fn!Xo?=nuB!6b)Fs)@<#w5A> z-r+a1DRITI9xCB6Y1Um}x4UMM*GvUC3HQS`-L^J?a#Jzxd-3fFAy%l?y;FKA#h2^vKx1yc=3QutFN_toc^+bXXJOC%` zq(}e2LEu>52O`ZY^?`=(QtDK9OftPzF2dSF-x#nd!gr~*2UK+}{&@>;z!7$oZRH_&6GM7k|0!#Q}E2_uKtn zqAAq24GUo+PtKeSTEJC?rl?W_Y3Bt8RH@JIKMN_#Q9QcOZ=wV8VhvQh9tqhf$}x=F z4XNIL@*1*A-osyFgAs>i50;_WOdMuC#TtD(K=eEZ#*@qkg(F z#sLN;rs{Ab$M}>o0#yQ@{lPF_Hcb*VrT=^l@G}=Lpx|FYesrz$tbh$+^R6d=IxI=( zKXOMYpDE}RuAf}eFH)l}&svb>w*5&64yU9GJVcfi>Ze7b*3}<@{Df4?)%!ytMGSV- z|Ag$)lPP-QyCr}ESqJG^Q(p-A0*kGVo+6N@A3!#WL3h>vN*1bqhuND+uHqsJ*O}J; zi;}OFFBCk3K~^9`9+2k{{+jyz)cVtq9^u0ud*imX)h({XLgtVS6sg&tJ0U3j?xP~! zzOPSx_Kk&PfFey%#wTRX>ROuqg-GeGd$o#tp@!uuff(dsmUrVAr_(m zA#!nJ9C=J`OMLJ8dM^n0ZwW_;ykO$R6YS8kSiLL6aovn;Tz-;bx4Ea((Z`?e?^vzQ zj5Yti0`1EU&jO#0=;pgnJ_mxL+JPI=U0{!#tkAk7C^H?EhJ>bdto4pp9JYfTf&X5S zjN=N=msvqdB;y(q+@6m$eIl+g_UXL*Kp>?-g)bzXf4chbLa&TKIVA?S&ZPBRg8ck$ zgGHQXNC8#K())YGUisjoJcYGSqfhP}y=2zH<(F5jD#b=oaICLm za@sli87at)fR!<~sLQ|KiPs;5ppxHQ$g-H)Qk0NwvYHD&`>oGxb$nZ23t1VA9eTe& zP`PcvW-e8Y2TLAuk8n2Iyc9!_G(Y{ zlrcupkb>=jT1Vw+hVaJYDw?>BJrm)lU@TE= z^Y)`F9Y&i;>5A?9Dur(6fY~G?$Xyk`TGmON3@mm@J|oq`YnMZaZ&@pSk>}nb13Ed! z>ti5;S6o&%F-H&NidboE%QNLLQQf*_xT6~r87cBh=ruFz?mn%H*@7^dsJq?k`MpE{ z@mgEoEl?zo)!Q#8?>Ggnn4%*)r8FCOrKt&9QlH&kFP7)*u zgXAPC0yBV!pePw62VsaR3`ueZQ9v>xQNr!Pz4y1*cfQ|Q_nv#!a{sZJnfL9kuBxu; zdip6WI)v}#rB_7=^tNdU;m0b}mNAdor;(-3#~nK-cVwhmFF>MDqW1A$3Mppyjhq&f zAi6TWudELjvtJ{86TZ>U<|Gwy>tJ86mSh$pFijewqs9~6cL+1*7rJ-fg9Aw^B4cdf zTQf#h#ofZx%kwaS6YZ|tn=fKjcV{18NEW5d;v}NtaEVesz4-k5mcsaYK*;B8lp+fx ziM&4#tAXfZg`k`iIqrN9lR!rv5JPl1w(o7nv$zRWe!l}rMQ_W;_jo)GYW*d3<`Shp z6AFe4MVH?(J6=(;d@sG;GAblBKw#LLCTDvevPw2clO!PX-!TT<5pE0OS(3 z2`5EU*B~&M&qwz^U+zzhYO;tA8mM-+G>3N?pT z?%!_SIr&;Q+6{fC6 z;Xh29#dMBxU^2nVqHgTHpW-=G#}N|qrdZqdcmpk=;yp$X#Oc+1cg-k1@p&QPKc954 zg)5Oql!@8vl|UZ})X`j|gOo&C_l6axIXtcV`Ba@c>lSfPB}KFR>p6M^(cjcDLrsSl?<0TMBztef6xXe{cS7q d5I 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 cwP#N8azh)2Ba&04Vc?hAO|2WH*DZqo54;EN