From 8a94b69767245bfa8bf87f8e52a55554ba5618af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9C=B1=E8=89=AF=E6=89=8D?= <1024955966@qq.com>
Date: Tue, 10 Sep 2019 08:59:40 +0800
Subject: [PATCH 01/17] jvm
---
...\275\275\345\234\250jvm\344\270\212\344\272\206" | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 "\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206"
diff --git "a/\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206" "b/\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206"
new file mode 100644
index 00000000000..e797775aeb5
--- /dev/null
+++ "b/\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206"
@@ -0,0 +1,13 @@
+
+无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)。
+
+
+掌握了JVM机制,就等于学会了深层次解决问题的方法。对于Java开发者而言,只有熟悉底层虚拟机的运行机制,才能通过JVM日志深入到字节码的层次去分析排查问题,发现隐性的系统缺陷,进而提升系统性能。
+
+
+一些技术人员开发工具用得很熟练,触及JVM问题时却是模棱两可,甚至连内存模型和内存区域,HotSpot和JVM规范,都混淆不清。工作很长时间,在生产时还在用缺省参数来直接启动,以致系统运行时出现性能、稳定性等问题时束手无措,不知该如何追踪排查。久而久之,这对自己的职业成长是极为不利的。
+
+
+掌握JVM,是深入Java技术栈的必经之路。
+
+
From d793bb4a42d26171cd033b4d8e99ed0a7fc2612b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9C=B1=E8=89=AF=E6=89=8D?= <1024955966@qq.com>
Date: Tue, 10 Sep 2019 08:59:55 +0800
Subject: [PATCH 02/17] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=20=E9=9D=A2?=
=?UTF-8?q?=E8=AF=95=E5=8F=88=E8=BD=BD=E5=9C=A8jvm=E4=B8=8A=E4=BA=86=20?=
=?UTF-8?q?=E4=B8=BA=20=E9=9D=A2=E8=AF=95=E5=8F=88=E8=BD=BD=E5=9C=A8jvm?=
=?UTF-8?q?=E4=B8=8A=E4=BA=86.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206.md" | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename "\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206" => "\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206.md" (100%)
diff --git "a/\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206" "b/\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206.md"
similarity index 100%
rename from "\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206"
rename to "\351\235\242\350\257\225\345\217\210\350\275\275\345\234\250jvm\344\270\212\344\272\206.md"
From 6f7f2cce78e3168e9418e656b269554dc6382953 Mon Sep 17 00:00:00 2001
From: zhuliangcai <1024955966@qq.com>
Date: Sat, 12 Oct 2019 16:37:53 +0800
Subject: [PATCH 03/17] =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/system-design/data-communication/dubbo.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/system-design/data-communication/dubbo.md b/docs/system-design/data-communication/dubbo.md
index 17a08d8853a..f2e0ac48047 100644
--- a/docs/system-design/data-communication/dubbo.md
+++ b/docs/system-design/data-communication/dubbo.md
@@ -251,7 +251,7 @@ HelloService helloService;
zookeeper宕机与dubbo直连的情况在面试中可能会被经常问到,所以要引起重视。
-在实际生产中,假如zookeeper注册中心宕掉,一段时间内服务消费方还是能够调用提供方的服务的,实际上它使用的本地缓存进行通讯,这只是dubbo健壮性的一种提现。
+在实际生产中,假如zookeeper注册中心宕掉,一段时间内服务消费方还是能够调用提供方的服务的,实际上它使用的本地缓存进行通讯,这只是dubbo健壮性的一种体现。
**dubbo的健壮性表现:**
From 9e6bbcb5a78fc18eed97c2389a0cebe0b8c92386 Mon Sep 17 00:00:00 2001
From: Kou Shuang
+
推荐使用 https://snailclimb.top/JavaGuide/ 在线阅读(访问速度慢的话,请使用 https://snailclimb.gitee.io/javaguide ),在线阅读内容本仓库同步一致。这种方式阅读的优势在于:有侧边栏阅读体验更好,Gitee pages 的访问速度相对来说也比较快。
## 目录
@@ -142,7 +145,7 @@
### MySQL
-* **[MySQL 学习与面试](docs/database/MySQL.md)**
+* **[【推荐】MySQL/数据库 知识点总结](docs/database/MySQL.md)**
* **[阿里巴巴开发手册数据库部分的一些最佳实践](docs/database/阿里巴巴开发手册数据库部分的一些最佳实践.md)**
* **[一千行MySQL学习笔记](docs/database/一千行MySQL命令.md)**
* [MySQL高性能优化规范建议](docs/database/MySQL高性能优化规范建议.md)
diff --git a/media/sponsor/WechatIMG143.jpeg b/media/sponsor/WechatIMG143.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..5e1b53b496252d515066a3a99b5c633d9f183029
GIT binary patch
literal 52098
zcmeFZcT`l%@-VuQtOB9}Dp5c|at09?5Q$38l7wN%FoYop!l)=HN|vbPoJ4XGP?3z1
zbCet<4QZGez73{x?!CXTzPH{#@134Cy}PTcyQ`|JQ|<13IC%Jtj7`qd#u5NjQ~(YD
z07w90yt4p47{UX80Ny2l@Hh+r=6JNf!?t+rKXFcgIQ#(U1FYcR1yA5Od>#x(1=s)t
zKlA2+&q3fM<{<#Eo%!{Yv4ESynAEM|2)L^?+=)q6mPvq*UyO-e#SCiWcm%u#fPm}b
z{Cwj4B1~XFkWXAt1S|@`Ps00A|KTA3B%SzG4_;^z{;x1#dV~l%B0T(`v=aT5AH1u7
z_`&1(D?cajewBeIa^iQ{rxt${2PlG1P%=NBhl7W!!0BU7Ol4Jo6Nldc^5Ym_@$d-m
za0GY)oF*Y5AtgCYN_v{|)X7tnR1~LAQ&3$vcaG}ZxeJu1kKND5kI29Jcx0zek&%;~
zAtyg`o}8Tg{EYkmiWO9Ms`DEtxWv(mso=3O}*uJ#j;G=0Qvv$F-_ zS)TQ-L%5KAq8Mq6H=jS{g=}z*^|90T5OA`KNOlIq80rLZGP66Vu`6%%!NC>MgA-mw zTnX(($hv0eq&m}4WNIjuGYmW?$y!K%q$N9G+n~~PK#BF~>l8~~+EDHiNv>~qlM=Xa zLMm}h0nG>t2m6m%LdZS0FxliL&FB%f)C+stZv;}Jq3PPj&oLBx;Yj?gHRV%OI#kf^ z8k@61MItf1+F%2tDWu{!a^jL6O7dSrv28 >zTMo5iO(A uOvmP=lyldq*W>_=B}7hR+Y-|0?GwXZplJR)-GTEVp^^l!#fCMQ6dVwc zxx`ZOk~ZA;Ehq`pA%M5HGbHYvI0Z^mjh|fN0^S+FaL>YR$P9z2gPOr&_N5G!Q;Twi z;kS*LKwY=QP}sM*FdN^RS!Z0@Ty&f$Z9$4YiFx@zWhNDqwolO!pgioElKG4ok51!p zd%FXQA)6Jxj8!|pTY1;qU6uk~!DH?o9&a6$J45RDI4yCm-N#35MpFD<^UU3X9kVLU zTvN2rid485h6&e-lgdoAJd^ZHCu9lfhfUmj`{?!f*3}u6(o#LR*3Lze$uA3apXy>e zh~lLtHl%!r|1w6OK`l!-y^Y{1Ka <%`JgZ1A&~g`F@>hI1k63wPxzrawOFqKiwx=(!D~F^cFW9YqOa~r zKCk@x7ME{n0Q-3z#*+o%S*ZPut7+j%%bocz6E{C0(f#8Xll%(>pinO_yKgKCChmdP zl$*Q`yGH4Ij%GHGqnWLmWrq!|fg`Up;4;k@fzTqKY&Xf^64&ZR4#sP@Y$wE`qE6 zx*EHs1WMHMFr rF3>nz zd??Z6iPgiJ#z>l%N9@cLwZ4~M{ostEtY&~r=HotWpze}nl(aH#BO8Ll76pBuV9Qxf zHf?xuGVU$=Dx7D&PN<|yaK>JSnkgiUWhBWjtUiq^?`89nEPklhYZa|~%&*YC&zcS( zt8Caz?D8<}YX_Zh{;@ep V@@O8u0bKNj*y4csh6?@4_vR%3dJ)P JA z4kk+0Z^6X&6wcw)%G0CEPuW+t2Ru9kuI(cOGWyLwhdZhj%c&=E1d{tXuCma$>PkBA zI_3`C8ySB_oS#c2X{Eap*_~j_6MVPlC>$FVOV1Omyv=V*mvnmri!9B=svH8DB^l=_ z3RIDiK3<}?7hf`;-P_*EO!t8#MjKFK4>F+<0S2tuisuYn)D~`U&f_jC%pAC|$LV&z zm*~h;H8O30(Y&~-kKvqa!uWw#WTP`KW`uhPC=NhB-~v+@av&!qUpHN9OxA`b>Gbsu zL q5Pd-VgE@5;F11GLl(^ppmctDVT+FWERRb(reEHg;ib zVhDbu9vgp;<01VmK(WiouwIvH3v9iDJ#kZp9v`wt<7^`tB2;*WvU?T@mlEQnrEZqG zJ_-yi^|1&D6&|%Ed~_*lR>lPAJ~?O@%>8{5U>8FeT#JlR;uAJgS4>wp{h(0hj(LKy zd{$OwT4uuAx1KgOHfB*N85t?s{s{>Q=WVVg+)slAvzrIq7UVyfLwa?5w~xwTNJl&B z>O*o?H2G^M+5o(&jq`?ncJq7(5%}RRI)cAU3Lp$#$~_Pdyq{I1zqrJ{l+v4K8#HL- z-N_W_7yKq++}pt9R1CxQ-p;c@*tuNHA#Mmqlc9r*1XLJ|>Z8GF5~pxe-loN-jQq zu+{hNKC|YWK>v!h%-e`N-L-eXy-Ucu&TUpRX@qzRyn7-P$v(ZljN81 N--zE-*2m2o?++G#lM|?2+Yi4h#A))Y7S~ZtPh ?~ze8FaL6mf }ggO>@elHn=!-!^(@yCIUkw=WAzQn5-YQMoBDRmGgz zTGh-tk(n~1^c{BF+uB5Fu#@9)yIRtTw8Y}H=^Zr_o{1*M`Z|$&!$V$65|(T(@m+qj z$ZO%vU#~guVcabSkmUJq3v!sn%md}a4ag%2HdZy+KeB42ZQeEA+r0bYT5b0EC>63S zfJ5o7HXxvM9zR5R%@)Wc4H!qRe@Cuf_rPPUS`p69!>EjDDAO%X*EtKP<#?fCwH!@>zi zbpw4axyONOI+r{5vFsUXAt9md Whb zX&{^JA%jKY }*4JH(G~d`a)!1+*Vwj T5WHYQj(23^o?$rm-=HRv4gs~@iB)WM zK?@Yphx$4*^{@ zbls2_Cyc30_!iJZ2R6k?P~gui*!Mf#dZI!fO9N!=fh3BZE|i3OG@@)vYHW#K19$Lo z9XhWh+AqEW2&oi4rS55ac_nbUxDJs0sT}@ED&AGD{1tekU*Zth&O3PTU|`PJ4K4&0 zKZhtA#UYdG_QVgnN9F#k1NOXOhJ{ie!G(Yimuc?Lg@6KR=%^nnMNB;11ZU(4WGw?W zx4_esr!xH^`(#W@9bJ(q1`!M{R+gk*LK>SUO7HKZR_+n gS3j&ht{cxj^NwZm}E^AK>i7MZ>$!f5;5UdQY@>A*=2 z*VwTd* YLCsVpqW2Us)C+s}*SBDpzLp1)qlbVf&d@xIuf{cKrKWyjTe7^b#7C)Q-M~1A z8j}>^ZXr-wF;v(I;~(NO64LAuhL7EjNxPSOs^rBglSm?Eg%`>U-j3< ^+^u+CCTIXzhBeNVz>S kh^F9)1@ZLLIb8edaU$}N+jRBB(ir`oOp{LBQr %7~!E4uR04%nxh zO{c1Q_3+lK;%mR2tx79-hQME9G b?& zm>Od>%vC&1wU-mDXW|7Cwi{vwUvn~kCnE72OgNwT5pBARl}Q*@43yn-Lq=rXSmUSD za)t2TQjNtuTx5HM)mxQ{+?3$-^V2Bi2N!FE21*2!<|LDkDVY3L214|!TASO0)A)p# zHi!$(s`XB6bf6ezaP{L4@gFYViugQ`Lyj{z1f*(}9>nd>Zh0hoTRE>{3XBkrdhZrM z( M^*<8r<%r!%_cp+>S|&$H!Q2p!LIizS(xk% zs>j71jz%IQX|a*hK~Wqpzc`#1;JY8DNU-_ASD~~a(&aN=?`0b^AK$qfwAV76Kg++I z-(i=$zWSxB%)_7O^j!C-K6lU4?D7#ykvUVw*A2b4!PlcdhBj*JXx{d;RJde>)@Mv+ zz>qK}^& <*Y`9fl apAZkh;bn-J`~ zz%YfgMqU*SR;#?WD=gocxujaF()g{c)N(vIFQcWt>P7@iyGhGfqw?O}TN%N*tvVk& zZ~9+*Gb*ifck#KDA2y+wCG6gelyB+inn<0Udz)uI!WR8JP+O|#f^~U#;0fW|TK*gy za>knT2i)F`rr{gArX5v|d+{?-Cc{a4nJ
Y28bo zHqplRBSw1DGocDOv}6$21g{=K=9b@JXdSJ-bE`av)f0IJ$mo;CJ9tV?@&Q#c@wo30 zkURup0xaB#HMjM)6!-NCcTII1^vhMhWquESn>pOO-q{wL_5n$j8e;F^yWP?h5m=Oc zs$No9oXb` znc!bo0>5eVTCYWNU>&;exQdG$9Sh*u*_Roihm}b|dK?#KbNwW%H~ClTOz <(1acNsLpD`)CRMWrM_1`yqtYU <~5vazl67Q^J=^A(ztP32^KV#8A}d@ z5DCe$NS0iF*4<{z6nL_Uc9K#?+gN3Qk=A^#9 <#6e%A5CIwmLjZ1fe@21kc7@`%t63}4r@_e>}lw~Z7a@I24hZZVx{n}T>q|&`M z%c{gHOZseaqQ1^jb8>d&Ev?0jW9v;WbS*9(@*mN}_swUdZbpk0YH z8{QN9%9v=}y_(2P&Y7rFzT3PGx^4kREA7N)tcIKj?f!1mD$!_mo8}DvJ{R^@rmMTk zz1#!aR_7grsQObAdDZ8JHf%Pu>OvO}Agx}J<)@nO&3(y@;&wN@S{!wmCF+@u>t$Qb zz#HnCNi#TO2N))XuiDQZ$-^7;4$j?t@EYNmUsHKN!PGZY9NW?qFk!gm>d0M4Z@;D8 zJJ7`CZFTvU!! DAQRmsm2S3}^Gs{)?ZNj$HR yRIP1r @`ilsmm3kuw`_-H)q3l|`E?FEmL-EM=h%r^QW)HsY)fLt% zQp^=^>gCF#TGqJk4+UbAYmokj0HWO8%61=IV6)8Vc2Q+A@iX{9pfoR9Qr0pJ)Tq+R z`MDZrdIy5k@Rv;j=yt!GUUOj-GTr=iU|4R%$}A#4LBwss3L4giuq>T#a~@chyyaAV zX!@{@+SlyC^mo(98l^*k+-g%VkGN5?OR22!8}7#Nje&!WUBlc5tBEzZbGUes=v_O7 zUEYrAgEvoc^YY2l{fjI?WAP7eo&*hiDE9ean^`H !zG>BySsvc0RQ>+q$#V$)yW^vdA%H#$6@hbpg4 z*;X!DWEYHI^isNW(>-h`aG!U1r>0Jo&Gj>RAw0spVJ^XIaHk6o?fs(jYwqmX!f
<&P %bj5^NrlnomH3#d0B{y)WndaVVUd5)tm_U zw_U0`tIq>ybV3F
<-RBfw| z?=pPPYW^-c2CC7t&Gbh&7ricASW9u+ge^baUx_s({y{O<(&?xWJ36iz zF@}JUeJ_&ww(({A+67k{F^3W1(#8&NJ_X&lGiwg?XC+TJ8QD|mJnp^5M64x~(GLk@ z+&XJAw|s}9q4wK%x)7_~{)x=7>niDls@Ci<3i3iRi&Sc1p;V%RB$ur)M#LkyyzNWg(3bA4Ixz=t1%K7?ps7*O z@J~;u2|7C~)9f@ <^C2}B9) z#fNB6LE=24e0oAMqlK&pO>B)K#ha6-M6KX2)9_xuxP&t?onL_MKAO92yp@plu1Fj0 zQ+C-=pCVBGwlZnbCw@w;hwPs(G2~86E5LM+oXGiWn>5pz_Om$);(~M3?$HSQ_@Vf` z8hUQarLUI7V=4*Y&c1nXfL ;$z@;j;Djsln@S`<566mbok6 zZyGx%u1J+k7&4w3jPcCLXtO_Ewlchbhv sJSB^s66Qn)o z=4n3Hf$ey@dTokPfo)4 PRPX(H>4LgcJJU3 z#n^P+q-cog_vM#SbJthfrAG_7O$CD)A&Ca5&7%V??-z?*{g-LVM%>;T8r@V8XF}4V zW}QgU7G2nQyi|-%2D?0bjtWy <~DqV`pxkJ|vlTb^E@f-H6jo8l~N|d}2QC-&Lh`K@qzH^ZtS>j#| z{jfS3U_Qlnzv^z?8V|B!S02J?P^Q6fVID_#XN%Mzz<*ZRrM-zYqSI Lr;_l zPQ9ckyno$K!uL`XCAF50zIv7;tDR7~V9z12<+o>bdvlX4c~p{O)10Sr|Mo`FYaa1s zTZYNctNAr=3exfu+4Nqf1Qs|=B`*heMDVK7ow1^})d@3KHj11IOz>j+ET>J62t}x^ zu89Zvd*|o6&rW2`8ZMC !2a`c-)_w0UMXmd7x3^v ze8 xc}t&s#4!_wrV7vZOx_w)OIA$!78w zex&!+@UA~wK(uE0<)*>})j30)PH}NyuVc6;S%syrENU{qNjN9e@YCHWf+WkUX?^_@ zqyFVKnD~|%*9kG(&5@JU6f~MMA~>y%k{x47lW(I49cN5@PJ&1FNNJzgFo(W%BY(19 zbG?3$n>Jn*#sD6DAgQ=DoMW^(<2+)Ya_!?rJvYNmDiSmwA>9f6c(+w{&xn5XL@QDC z <2je1yr=G}RmBBG0{s>)RIURSoSC?NN9UZoRoPb(?ki^zjs=H8`WgD=$6hR} zzN;S{5lfvPw@M)>H4FrjPVTVT;yv1uIR9Wlyy$9ms3L%uuH&g~nx%7O%~(;IIjDX6 zP=F}x5fk{WGrIF$6r1}I5eXFw;OQOQp7+k%*Xy;$-p5vqiBh+ j9Z2ostLOOL*`F&oFVFuaEa9hIpG@%xBzy;UcLlJ09^uoi2~aM3rV zE8nNz4_?j95~aFqV=R+dCV$uYyDsO;d4fv}ITZUY50HB;n^v{nYtu+y_a|MBK8rmE zxfT!1SMQr3hPAy9%wX>-jjO8|GTHQqRHF!o3|V`i8(RuHTa!zi?AtP0J0=T{^ot5N zn>4K?;SwL;*&py66s=A#PE{%Kd}F*AEd4S3p?bd($CuBFlne5;p>^jsY1Kpr65D0@ z2Wx_d#=DyyT+aZfWu@?}77IOhGd{_X-U|Cj-E)HBkFN9-mGQJEr8adoo5xJCg*MRy zhRaY#Z}iT^bIj>~XRevi&$AbD_)@hO9tw1Rp=-xyhb)9EuC#LqKhn~r8p++4_wdlc zIOCLk@J6wH)mb~dcUN*u=5t29 <``f!QTxWMpP! z#@(Nfq@;{}xP!4E`N+n&vK=Hfw^Hqo{a(9Wx~iLDxBn7P`wZu8MWwbg;5U+#m;h3? z{9E9T#CK^a@s%mdLB~u}!`rHT3gg~NvRQ-pRjG~%eKc3?kV-?PK$uqd48Q(rY4L^- z)~?KM^hsma{Fd;Lco(a~we(k|;_pzbuZYzQ1Y4*NqIvBN EKjaOhuM^Fr&BL18 Py+ zrHFk!RSe}=UeMLKpPiZ=XH6Mx+CSfX#!`CNS086tqiayPdHcD&{cf!(dIm4{60N_R z)_Rm&^=Z6KsPu!XLD_v;%<~14>Q(H)`irb8wwVGWOHnrwwMq{ak7n#fvEU6qGL6S0 zBaZ$dv?`BB=r#HywGl%PROO>Gcq^X{rAD;A)d*86eObsUM45VWo)sD67Bs%UxyI*6 zt2)s^`*pv}sGic$g4($`>tljEm%)6@*}RJ?6qL%^3}q2fDHH_Z{c2=<8Bb@us-B;{ zKuw}v9hW@=3%(L4%+~yw9lzJ1nP0M!kwSlr@!(w-e&R+u0epIsq-mgq7MpASgpJQI z)BgLjCCd@R5W vYcAn74gG!E=`?!jJ$0)-el2hCI^1b&9CW0%IPAA z21s=JTwPhMno@R^3nR(z ) zKCR+DzEYn(ZRnj{RFf{JQQ_42MUqTc&Dznpz&NmJfVN*sT(jfKe2hrmnC^NS>mIiW z1cn@3w0ch~GFx#V{kl%{?g+2Qpv0YyGg)hIq;HCzVO3C~_dPT9@Sb`HiVXaiEDwBs zZIE6`k8=|JVz!3J-8k!N9;G>TM9I|%-<3-0Ytv6JzQZP#E$=j3o}D&$Lwv6zd+-ow z*d 9YD_G>F^lgGlN^KUpeq!$J6UvfH6FO4(4@Frjj z59fsBsHeMbgrwPq-pe-jB=JZHjqr#Y(_TwNR1TuO9Yj^mWS&=%4mCNx{>&7+7d- z{gHcC#V{nhIu8EnJ>&x <8^s)!3eTZIs3K{m zCVqHBr(#n@n9*zAJyp2V8;>^L$V6K7fjgYLWn(E9=2+XaEGGIOS4EGE;maz0e(}2- z{^jrw9YG(z2Mv{!_X*DGhO)winK|t!< 5up0nZSDFw2B3vzVSO~R03kb(;jarRCU&D|9HFEM%J$aaMp6Y%12!4o9=u9Vee zftkBwD{c>CwbGv9QXB3u@oMjZ$X3T`NF(>W);n7}0b|GFX&{H_x~^QX&0VI+s5vd6 zIBIIFfSk_)>>hd>U=Fv-_jFcb@yE`AbFDSw6k!-mvRz z&d <}<&s5W6BH_xbsF3NJn2Bh5GZQb;8$~eCHS-ax&Ccp zu>F+VujcoB{8Q|ax-uATy}GD&{{T|#t<6J6uy#jUQSVI69upr^yQ;Sy{-CYMHXrVk z<)?y`<#CM?1n{&m!7vT_#ZTqvKcDUBSIib$=IzY86Uk|#Vz;|ZAeAOYQ?1;nB<@|wx?Ci>~V_4p6-+i>pwr|6E##p1qg_0Cq0a8h;n-Y?a=b8t~_Iz`Ur z;H;&~;&QuhZqwyx;-`i)B>PsQROH4YI=0YJ;F!@5aPr~)ujSL+-n)bswj9ID@ub)B z6Kdj`^y?!|2Lc(2n*RX51~Xo)@BR}9(o}U+pEdqMVsN>9A6IWZ@wK|Ut1;PnhOEg` z @ zER!s4Be20%U=>+Egw <;P5P??LXD-x)2Bu(z_+N4ar+9>CogyzOQ}Hu&kkG)0}<80xC}QZkh*B^^vs zE`a_ut+aQhCGe(IPauBZ^rx$PlgwVsS@UM)A2#xR?e6rx8p$+77|9VKRmJ2~WJ0RI zqMDCBB&mNbUYY)98~eUKX5qdd{FLhMrR>eAyXdKYLGDfC +U9_p zM33T$JUC4s{AMiZF^`H&sn40*o8w <;p;Sgmn^X(qv|L;YLvzAc}NvJ2$%j z0GLNld~c)qS-U <@*|+-VVdvL!F6EjkTpl-UV=)` M~m*Of$+i6&GXf{Dw9a+&MRjDmXE5Mzl2y=?VrVwwB`L8A$qd;r_2*UzbC^ zQ}-v7c>~*fh`C}pTc2+USxkxWFa#{2z5@(lkA#&hWF*M6CZShkcc*oH*Zy){UGbmd zuV!z4u=xA%<|*;rqnYa6!I0b7EQT{`*WzaFEPhf9CPEBOPZM96pvCO0eKkxoLrqg0 zlca4MJ*v_?*QpdtL}|vK&-~pQ?Yj=i$zIKFoXyQ!WEWh+ypUj7&^xJc!Uj^nvanM3 zEXqM;Dx}t(8{g&~@%Q4_^LN_Y%cuGmy86dA^7rEkWiuEmoK{sU>G4ZbU;Ha@Y(43c zp@vwWZRRrgq^6dlnd+Yllt^TBB1s^qa^)eqRzz{*FAwv7tA{~vZ8xrM_NxBNb>4P6 zl;sV~0Vc7e6;Y{YO;n>IwxAlGDiWaANm;!E)PK#tA^fp%JzJFRy`$9s05I{p!yikq z_h({NMU%~7I*S36qNR@o*}ID!w) A3iziyZ-+G?L2 ni=}+4$YPhTNN|Mbf)6vMgMC zvt}i1@*GxPIO#ExxJJ_PF?G`1i6Tj)4E|K|{zKEOf#eO_+b87Sa^E>)maeS%eG%5_ zWca2L!p>4Z@tH=g5@`cmWV5KQK?X nhm#IPpjj{U8$$W ?-{roojhact3{(N~OU{%2#2RZY9_Pwq- zuWgr>Zx1qRxKA7X59(;aWd8tiMNmmb{?CWt^5~rZ0K$U5m&eEd0F79TFUhX98`*m= z KnwSX>>qz8=qIdN{R(X5_%E) zE6$tV`82%0xHLy^v9OI|(v)gOQZ>}oHSOb!ob>7Z+ sGF(2K3DF1rZTdg4bhRV&27HV+utI(zcEP$;M<*u^ix9>EM(KPvB>VSykl|| z*Ii^0(>~el+{10i$z%OevD~(M$(nE0xl~d+09J|ZrBkKi)CoLjKoke6Kk04B*4Zik zL~X9n`NQ%vrZ!Jw=5Z$~+as#8{gDsJ3My>Q?Z^zza_xA#^RK9)$YLj|hPntcQ|=OK zvh_t}Mv0`TXj8hbNBMe}cT0QJ8y&@uC|KQHTcc^$Dn@Nilp0`jZy}>lsVX9(qTtj4 zy{GbM?9P?n-vs*mX!K6=-JOTDdKWdE>1>Ab-dh4bv&rXo9zG0TU{+OA?HKoF_F4)B z#`YZ=D}NE3yomn*OIzBg%9Rv6I>YaDw%y*_o9`~St61Q DNq_ilF}h(>&kwFSj86-XFL8 zho tUia^08jvU)2?vO0a>LCGpL`m z6HrH}BZ2FOkKX7yYr^?;?;pQVb?*!1*SvoHLD#%5ms(o?05-0??_Spabof5E_|=k! z7u@^H;x_8SZAX@}ENqz?Dz1$0&+m@h$K>ZJ1~W6d_A=zLlod}TDNS2f6pbt)OsJYb zOrS3sf1j+N_U7wp+r6%y^L&i9*B0cA;+3Hj+vs9E)gMbRp{jx?YfgoqlfTH5DYCzo zS59O4i>u`9Kbt*il8beA1zykGabvO@hEBxD;;Q$~KO0RZCOG%xop~NFACJUB^%&<$ z7;7ryd1qy%sIx^x6!^zQ`wzPdb <7SSgMc* zaIgOW<`4Y4z8?H8`0>(vBe46kC$WBYZT^p&es3 KZR{Gh0A@FsZV|?T5 zXWLn-Eyv#7$Z^r <-XAE{;sdu+XwlW?rcxT-iX^zpWHn|@OR<1 z(~AkWdnqv)ii{b~;Vbb}vvro;$K^6~2|Y%CcV=^Y)|!r|Qey*Df;?ji6|M~s@Bn20 z0FZup`E@RG{^Mb}o9R8awKx0eDwi9L^nttr%d1NQd}$d}kRyULw=5`S?IWyRO_}O_ z``$ks``h`C#-9 Iic180s %(^T()SMsk{{XSpVsj EmJ|Grz6bo1`2PT(`5W?c<&FvVe`xpiLY|g`Y2>BF%eo?`lW}HuX7k+pj-L-b zRSp@qHsY_R`&unYJZnoM%Ni@f3X2#djL9sbjNM0m`SaH bO2Q^zYCA0OgDF@8mw`r~Y2sgXS%FXl3&h8w<8^s+9tY z2HaWQ*F(GLx3&Xp?#fNIPrD*8&6vm4!-<{iDXC%d!y?9#Cyg#GW{~|py+;TApP!#n zFEQ^v-}|4*{JCoW;YYJ2q-tfiU~+UMW-}W+Wz2aIx|sl0b3!!`D*QV5o&3l%-_A3x zer fB>R zHpbn!A@;@!nC6Z1GDsD)hK=j{ca%o)0%TMCzu4#->@PoT+^=!W8!t27M;6C-5O8Et z$>J|#Ay69<#^+U3gW-XXF{Alj`~=@$9Y2=7_v!7~OD|k^_sC2)YUTHw?=?MELu6;S zZr{jkZHr4KR6@FurQ2I}iiWmG(Pf4z>WYOPL3VrEz|mV2IFYMgm#0LY==1fDGJBI} zyxK6i*f#fpViX`qk+7CiOd30vP)!L?yf_MT_z8#pWk1VCpSZezZGS7QpKf-R`rHR2 zx4W)S+rnW#gwRspDY3P?>kEv@U^hm}S!>#|j)^naSp!wpxpF+-6n5g~+gb} <9F+IyJ$KJ#<#lG*KWN2TqkOE#ihu!)#5NkOHX!jN{Lr^Be#e qg-SCyX$ =X>#)#y1h$AjbeXEoUZ~Ht!)t?79@QK1D~OhAw>sJCoS^j$1vO* z{lJm8sn3yeKLXQ&js%VawR2LsR{UJ){>1NR{{V#-^zTsZdX3@Oo8Nv>;kJ&}qO8T^ zr^{DE@>jTPnwA>O&2~2zO`?j5N7Xd(rIOdZfhLVv&HAXT6aG`yaPC(YdsJT8Tu$OE zC}I^fG*u8p1^_050|TI6AN;7kRMT|an;yUUF=R4bu-h9ax6`~2%wb7a9`dTiRng <_IO_g%uSPA++flvo*PXz#@d5C@ zoAB19HR#omja)|_Jp$d6*qc8U@dNp2{5h@6B!4A7JbcIR%zt$CTy(Xy8I6IFtM4eW zv{?MELYkgj4OL}rTyC)?9bHLr8y}^KsbC_viod9?YCSX3%X?{`dFGwzQ~lN4*u-O# z$;X9SfyV=lK<{w&`^$42CPQb@RvK!IT(k_e%L+=raZ{yb+efVxpf2>N{{T?`05?DmK(yT& z()#Mtm?E;VGK7;-t1%&JrAyIPx`?Q1; <#gIUxYNBi&?Wf z4j#7au8YrNd#@$5=x8%p%uL;nx@U(!+1rl`Lr#+AtEm3~hQU({Vq+^w8$~2@A(5nG z;D|z2hJa`D>PXrw_S Mv-1uM6G4-T <-WMr;nu2*Ny5+)#)JkSX;7my z73*Q2_)nM4u9MxJH-!FQkoA7#>7S4t1%cfeJ Ftuv`lcDSF&L=X0If119VlpUjr0Fh&F^rzlhZ)<=^9?)2SZFl~g z{HLj_-_Sp)zSNYdkLg;3{{YPkT36>zth4#P{Px{n1%5hXt9s9B=5u|)-8q`>x$6w{ zSZOj_V`gVsiYl7C=3&OD>bC@V>D{n+(y|)**qPlPo|<%JS96#ns*1Z{br}0W$X2}f z%yLJ$-K2Xxk_o3$+FnGh0 >spPCUGXFNef)m!ZIAP_t@qE!KbxN_ zww^Axc=YvVKPR{HJyEmwENQ>CZARtp9nnQpG281uoius;rG6nZRrEO&qotmhR8iHE zTD}dmaxKD^oyJF?;xqj5)=OVU&EDbj4#R!OdyE@*BkeM ?P2A~yjP)qrga; <%NFUN@L zI{mhCJ5Lj|c3v|XN#ol4%WFYXfQN2jsO5&1oaExeOzwg-gHysJH@3TqY9ay{4j&=b zAA6DQFE;XT)bHD^^f$YFv-eyFqqLGU9{A*=mtqSY20#I+Y#K%WbYILXbbJx`{fEbO z&fU#T+I{y9^x69puxZ~Km=3V1!q8!Vif&5fs+L;H-O!YKh)aa0N?B=IqMBK1WJQG_ zs`c%`f 8K64DOxZI%HtPFBX5!J46#i)Xm0V i!a N=$m_zof!C0xEZ7?O&4JMbp0? z^M5FJc6zR-r!c!W4ZjZH+c <)Htbn+rbWhbx-^@LkbEpFS-Fu}_9mf&v^Ownj|R0`> TM@7<|iw7L_d-meMN*xZU~r<)@~gUIdOiL+>HQjEczuG <2Z zsD^zs`I?AhPx5(|6ed#lGqmhGMhE%7)#uhw^W*J4*n4Md?X`u{%f4Pw?ihIj%JRrX zdqb62q6B6&B=-uNB>w<~2+OPaXm&!c=^csGeEwMf0DUNV{{UOsi>P#3v$w`b{Ik?? z>^0Ym?rzr-e`FxI{Lh5n%g}Uuf0it<&HTN-7sfp@Me(bsK}-In8!r+yuk|0)em~as z&xFYwPJRYapUa2&x=YSCP~CISIKVMHdyT*&)Cm}BALSljXH?_=019Wr?>+I=zYqGa zV)fqn-rJLU_h#m73EFrmGtkxND7J_2`W>MiCOTS-)cd18nYXB+r;3r%dVGCTYX&VP zG{T`k9(_wb#T#2K$C)=9yV# <=)>mzCv!Q9A;y(Wv0#VT!!w)VRKu;S{dmXsaqjB?VMc=O=Uh% zr7ZEXVyJ&+fIIdP!-?p3e>Wy_Qc2HyZP1tMZI(M5WF=z-V+dF!LCpt>>=dtXHIcGd zel~mp?4Huj{P^roiBjbM0MkdnPW|iL&r$576)t*h<+BrccdZU{0TmuvIjJ`W<)WnP z++9o*wP`#Vcp$5xcqV$pQB^`qmEsRa`|mf|Si#B`T*j;Wt9Y}KW_+%P(QZ|$GOJk} z5-3oWa7LcD9sX5cFzCK&d~KJp6QL`*4?njzWq!@yIBHG5O@-K7k9*>1=;O`i`u?Ug zrme|ikro&$Bdmccan*>_O(jQwPU=wV6{R}HZhz%g<$df~e)kuUykX;QMWj?>bgY9Q z9wbnZ%0mDvL1sQbccADE;e5LHkKd>|_l5H7-amez>)sd3t`jDjTDLqZ!0K52HA!Ve zAJv$jr}XFBun*UW`2+q#(>Ian+qWqW5JE+MW`Ga0`g&)FU;owI<>DyK1i-GAIveZb zB>hL_;eW^ <~>mPkIZJhVrYt;EIHuuVhB8jQaCC{ z(EHJ-={rDF>0zJsWFIhmk6d(n^-rf-@VfSoeyQ~9-WNcHf5wi5%6E1b <=Inklx;5Bnjm`^)HO=*CsL{VK=kNu(eBkgofY_903FBiJL5;le3ln6-rWt=UA>jt zv^5ya4o9%IMhA6P;qmo#0;;Bq8&Q{|s*;wPqNPK+AqvbcMg7!(*(=e`*}d <*03Pn$sLT*17x3*>n6SKBv6AiX@=HABAVQ{z|xs0L0;BXjxd V z#;1r3YD*u))u`cG)PSRZ^rugDwpV9oJ3p&>{{XQv{d YYx3$G}EV!IVr6JQ`7^~n^!Pz`xn%H O6KY}&G?C8x|cNJKrU@w58vA~cH2*=5X z1!KqIW59?+6(v{|Wh63?K?EBRLF5p9@1oXLMr3s%!J!8P5yT$4_wKdVz5B0q?|$pu zOo}9l1w}&LP0SGT4CEVXVk}k#Ba`)G!2FS;o*fuL1aL;TcZ*a%0&vzxnezw_6UC2e z`IURa;ik*a_jP)fja$@5qs~{43?N%XOKTD=0N``<(KHksdJ}TzE?n~s&+iNRjkq>X z4RrhoP6{{@Fb8VqfRh|)5-f45q-dd06a`gP77Czn03O@wX^JS|jUk3Gu_yolC;%J) z9Rb}}@t2@FKX!H|`|3WW*?oPydv7LlU75J{&L%v5S9|4-ODmW;4aHK7TOn8cQ#)Bc zw&%%HA^y?#MU4=#RREqn8Qt!ih4ePo_m`4M3?hiEY7|fkFQA|U@*NJI@6ry71V0J> zAVJ#F_oROrIxzPn+nS?#N!il%meQYl9pP6}^^@+QxM#)5kzK^~k~H6X98@f)Sa96? zZ^DaKzYJ^jrg}6x=J0I=f!!ziEjn~-Z90F4O=(Y;4vj58`Q-lqT>k*jr`^v <#G7T zu!sraidBw4SP^G^UMi%9AZi_HZmv?^TST~VYU~-16Qq^kNZ?5FJu`J5Ms&|XZQ7ls z(p_7y`loHzWa{%(_ <(c?Ar(| ?{^6V*Vj@@C;$TNSb#i*cn+rR{+;TLr`S8!wl=?9?7h9&osmU^$8Y`hh1;0C zZs^`rdvMkqBzu!FNlg`IU9sZ6MOT@gLV*>StWgB;RSZ}t)OxI!mvdXeX)VjOtVEPT zNmVUM=^O=V<^EIFTqja>X4~J}!?m{m09@>hFK2cIHX@IF_7*Q}VW_vJ?xVm`M?r+6 z+*_KSjy%R%lNCo2$4?Z~Iz*sp1K)zEC4!Adyh@)VA>2NpkIL86{A$Dx~C)wV cC_JBxPa`roGdv#&EfgHpA--#@TA`)Talw)&}xuDZTD{m+)$*o=L4 zcOeCKR;FPkW6dH>Q!8BgT)x#K6=Xmd@u2?z4^bB|U2`>z*868L?sr$aTx+H!mRTM! zm>;Aam_*6~iYOXr0SuI?i*xMFtGW{n{pQ <>y$7UA^x$vzc;&b@4 z$kWv>D{ Nz=b$u| z*$Rh-Sc=UTo <+Nap <5CJTpfNB5) z92yFY4u(&6=%1jQZFDzE?9RsAeZ90gr(kVv(B1fff!%xWZtYw?7jte*NUnn >nEIHtN z*{7K4HJ8>jjUA-Snul==R0SMM5%@>X>=h&qouY<|A4?uH6-@;mJ`NTtXd|VG+fy+q z1WJh%A=s5bKBSZCC*OeS%e$p2*4FOE8iLM#DHwU0 !L{{U6@Ru37r zdv~vPe`W2=KI6r1>}~^lU~$`%4NJK&e{eBbg~nwdsiTsvjVk3uE{qCF>OodubjYqK z>InJuy|Z`SHd*Ak+BXTUu3k2byiQSyH8n1!Akffx`3{uXt);cM9@WY0Z1&y4<@RQ0 z1y!~(+fyNoqpI844Y^xF_{zK$ULsgphHOnnIzt0flrb2Nn_G{2AP_+q=`1&QR@YHq zTiiNcBZpTELx%>TgK-QFYg*SmaoPJjX?6D4!)&dGwlEtrXYJY;F_;alwXqZ!4ZnrQ zQ!a=ov3QJKJuL+dEJ`>?<5eHi-hv?0MFN~Uz1{uo{lxcI*K$pDD{6OkEX>D=W@1S{ zGJ0(6F0|{8+uJoeE48}+0A%)V&8(=TtgPByg|#qS(`?n% LQ+ zQ6w(W7Ky-RAoK6cs^d$jEA!7++xI=oXu37z!8Egk;kXq zueUbt$H3tBuFJq-HjdZZIO;q;+}nF&6+wa9_zXrm6sDlXVQ|>GdR%TV8$(YT#|#ie zkw$ &3rmuVS`J2^Eh%*2)?@g$Ob`Vc8vlO$l4 zXdr6JCV8PR6mKLlJTg BM)tLmbprl5+Zwph_* zs;G{Jju=(sEW#*}0n(}i75Q{<%FYxs9V#dXkQJ>5=1KcWJp}z>@#mv@Q!l=A{YBKf z1Ff^2o06o=b|zb9ZG2AO$nR{e4OVKlk0ZJ2@zl^wnXRU)+;#G#lb2 (s>oH(UtdyUg%J%!ZFNkOO!n0zvNN$P#GTaobX>^JYV1j%8O{KpACMFtgQ+?_ z`lr*acwKu(zf}5l?+dPL4y%%MqT5qg5-;>sAKG^O5B4XIdlfuzIXu9%^Q;9rEhr`5l=EB;UXMZLQXOwr>2^pAIjNp_vZktqyuenYu@ z{Mh-Q@CtSR*4;Gess$d)GG9v%?SE7LvHXwrBi%(93i0a%8%^kF<#lKWd`5%v{_wVSQkeG_r8AU0;`hT5InEc0|Tnt4`h~$5<1bzr3 z>InLKsTA_+h7zQM$NgW+uDpNmx%cnOt$1B)eZRk-e*LT7dx5?&e=q*l`3=z#)KRZp zcfCd@=4R2v_Qob$Rz9k$cWoR-#Qt90+l76fCRU=NmV&J39$NURe&j fczi%Wi_QLqmc%-}kikm+D5rl9q3e 4vILDWFWcIg5zQf4W{{RoDk2$z% zrrh;ZxZuW`keN(W(rfD+9}s9EsX?04=ZbvJanz)q$?Ow&J3P_u(A` G_&lWgW|`ui=pBB9M=-kv&HYcXw9+EJ)LmB@l*00(3IKk5KW9*7w uV$cx>w%nC5i~ORCDLRbX`meLQrx1FN=Y`Q-fK{y)6VGq?J7JXBk! zrJ}(=y=n3O7^(32*(n=z#YYo-vCql&)e%TWPT4Hzr1c7%hS(sqWrq4{nmW>>$bZmZ z>h&FE3?9bvN7LDOyG8GcV!18)*JiAM_;vpPb?KV?9g%AM5#4Y%Y0*DDzDM?d!9D)~ z@;Z+#@h?5tJvYDm2Cud%bDOh2Mc3PNqjrYf%x-#J!7Vq(s_&Ee1?*~!G;|eDhNi8r zj6*EyvowhanQB}}&@{b;fi=!3KFwMAbqVjhh0B{~J=k*F#k dRh9p!xkz$I(j`m+UfrQW1*+| z(sDeTb)}RSx6i*l+bIiiw3)Q&MOe&VyhKM+*Fi^VOKMk8G*-lZTl~BEJJBD@t8;hd zZpy<{cUEg|%az+ZqvNF=Ph)jwU1743L6_Rw`+I+;yiZ@};oH;U-Z*O%;VUPCvZ)bi z*#k<7CYD(3+D$$5^2i@ET7QG6@058*mN)NlEp`OHak3<#T`tImd6*q96n{+9CcRZF z`l<@4C4rzM59NRJg6{sM?#T8$JJ)Iae%X1<$6ma2ecSNEy7GOIu(r < z*$wfrmvFs}WzDwbY_Q7e>LH@NxRw;T1@svXweXm_F0=&oZC{(6s~_^>+Mg_UM{aeN z+}yizcdPC_ <>C2FZjNK*Sw*$U;BY|%4@aUJf&%DEpFhH$`E`~Oz6rxQP}Gdy3&pm z00BSv@%+O6Y<#%M^`_I=z0>ip1H8KzCoKDqYjmH+ZR^?D&V}pBqf`77eD{Xr>~E5L zZ?ATCPb7&>vEbpU%4Qy-q{R&tOwh{$HyrayR4c7dqLV@Mt5AKMdOqeaZ+R<}qulPV zc1_Lf?Usop&FoOE)WVwLwn(g=SrtyI%0fq_YR;jQn*;u4-RtsG;`c!9F5BsD!|N=5 zUl+M{p2OU`Z+CSj J~Txsphu4vaX{g= `uqLNg2?h++|A&yBL%Fh!9 z4M@;AF{+YFVD^Ha8a{aT&gI xudB@GYjOq*6nczQ@WW40C=Al@jmJANQK&Uojs O@`9(<4TjMl??(Z^Z-zifH1k>bnqL`Wo`_=yRG;j;7< z`8}JK%3(44lNE{FxcW)uslntc_U=}ex)^F!IV7a0j#UL6So)xn0m$RjhPF*-Z)&S- zW3?&zc%qe3SGUN3K^XG{ap*elf06w;@t <6> zD{^Z}*zJqAH#Sb1KeES6=4oL_0Z^s&vMW{HP*sjPTVb}|ZgRXfQ3sJ$q!v}hK;p$m z6T-FXr|@6SW8-~q&Mv~(wVm%$emr5mHg)!AZsSv=J6z`vbXN8b@=fVeEj%4u`}j~( zY-z9qRYYlu4^X}$(=?V~T&If5ud_( <7{_P7@iv>+!S`;9o5)saF*hS)|gD$O~(7Op*f| z=>Su-)N!qU$ <|gLhJO$IQO&Z;BhA543AG{Vr0mYcW|(o4qqJZymdn%TiEfaZ^&l z^c626NhY+=U6NpmrvRTOI(jSEb{4(Ax{bu|3=CAgynZ^CsRJRDXOb>hTa{>1d1@mJ5wUF z=>?oImx(7Ty{c*#1EX8>hxw5FgV`Hn;MRZR24|?VRG%UG%e%MFXXo}U4$$xIql?OQ zPx=<961}ZA@PC-