From 8e2b8e6be7a5f7a545b4e93ed19aacc05c05b9fa Mon Sep 17 00:00:00 2001 From: Shine wOng <1551885@tongji.edu.cn> Date: Wed, 25 Sep 2019 15:41:10 +0800 Subject: [PATCH] begin conclusion on heap -- heap.md, not finished yet. --- thu_dsa/chp10/cbtree.png | Bin 0 -> 37064 bytes thu_dsa/chp10/heap.md | 144 +++++++++++++++++++++++++++++++ thu_dsa/chp10/percolate_down.png | Bin 0 -> 50258 bytes thu_dsa/chp10/percolate_up.png | Bin 0 -> 21743 bytes 4 files changed, 144 insertions(+) create mode 100644 thu_dsa/chp10/cbtree.png create mode 100644 thu_dsa/chp10/heap.md create mode 100644 thu_dsa/chp10/percolate_down.png create mode 100644 thu_dsa/chp10/percolate_up.png diff --git a/thu_dsa/chp10/cbtree.png b/thu_dsa/chp10/cbtree.png new file mode 100644 index 0000000000000000000000000000000000000000..6e8ce5526f844cb9ecea3f28ec1234ca19b242e6 GIT binary patch literal 37064 zcmdSBcRbbo8$YhdOoWo1l94i!9c~=SP8208Wn~<9PUI!?+jI7^1ALuYhTX9ay9QCA3M+~1aTdLAAJQ9jeIUza?T(UH=1=4x6hO7 zj^&*br!rYtS0~VG=)|fj3_6kOL)sDk`xkW9dd|p~xWqX2{a;(&iGd@DiOb6$a0WZS z436#hTa%bLgJ=~(ZORw?L%NRfe#dzqw*-+*USDVxbSddH6~If{m??NTVI`bXT+o%- z@8NU`x-9=6|Lff2a_8VUDW_5<8M|txJI=98Liyd>D;SLTcAs*F-&QU0$};MmX=7LH z27TA|h?B<5=0h}|oD)`Y<>a;Gf)RSzV)Pm6B`M_oF*kPtnY+@y51^($X4T*r6+#^q z8dShYX*n<6G%(fsWNmF-9l&c)PQ$NFE{wraaKa=n|9MPjp=i?Zg$!?s3|_*)j!1Nd zhIr>M-(`XiXAtiTt^_baa#NfTHS?Wees^#0-}Ph}Ubyv)mqWQ3%2DhY_8263#ryVI zrXMo*6+#OYPhR@XasI{=8{#{AFwMX6jB2_9X=E)0DrV`N#vNMY2sjL8wG88%!wRoE zH6KK;DfHRcx55KVS_6x&slib!8XLTvziBj$ilSABxpK0qunQty^;dLs2737ICL_hs zLX5`V1sCq--d_$Srn%D_p56UL+6zksn?sD<81>$#QwV+V_edVhiwX#f5)M-+a8;cG zRbBkyg>&&Qa|`$%Au;lIZt53yA>_bBuboUZ^mddJnXFiIW&XV~dx4#+>;^sKI{v4QmWQ9) z;_vg}r945rR)0U)Y;&8*XhY#XS<+-X56Q=SJc$`yu}i2tFvrt>&r$voyjv$c{L?~` zpX>?|ZG~g6JXxHckw>})d+6#=v16n-MuGhO?Z2-UHa`p!3rM%l zW4s6Wt-bSAZ<}|;#^|ahk-tD8=1)8)yJs?xsg)$= z@$yOfItaYJ_#?(7bm841(R4Vy)Y9`E<~J#cJ`y{7g_zo59DlqHtq zaFT33Q;zU`e~QM>a=mgT_veM1-wn#_=A--$Q(eZkCdBI)6TMr;_t6W$5v08Xj)0u= z$1C9(p3?I?kX`Gw!Q@RUmVn6#V-9|mb>;c)@bkaX_n5|faUE^HEh?IxdrQonBx$N} zp~}9lWXNcY+kS?@P>Wpq+20FY*K68178)I`Db>#Z{3*PM<&HaCm9ix5X4!bZP32OC zd6dkqCH3i3TC)3T`>RDg5A;g7cJHp0j@hkMu6*%5ShC#|d-l^3>jYfK1L&DB=7T}% zTTwDQ#k3dd>kbaYrh^DdvYa!UxZ2~18-|s)uLZt|lkqCu-z}@PbsaV(+bXLipp2Xv zD0pJeU%i`_OV0Bs(-jb>gkfS z$3^CGQF2ETJAOCAoMOq7mn1x%6lEQW}=}c%(h@=u=oPNqNIq92`6NGTnpKi4+#CFgncjD1S<+RF3At(wCx@G%t&XvE!WPVC$MnCIPWQ`~pgd?lw$%yG;ctJdD&++MwH;(MII&4eKbW;~t+$pd=6p#bFLJh|MAy(4Om&HM0k~Ha^!-z$a zPuExZzz4U!U8^}dSeZv)4l_nf0;#*S{0?+j>{v~k*fWzALo#x$Raiez`4Lu(Yj7bJ zi5?jmX!CA^Nw6|tz+C=8(XyQ?>?g00Yl5Rz1g5gR%gg@WgpOe;D z#&g>;I&-OL!E;Lx_9`g)-s%4u`|bEgIkrx;0^{&TYFk(&6+ZgtcZgi<#!PGGb8YPicn%={p<@;>0=mY{90LAyV~*SlOpHH@ogCXf5-d$FsR0#i@TPD3C+Srw1Kn9G0E!k-=~PnN&^y z$jN!WH_##K`jF?kKH7bTx=M@hI{Y;G`d{03&Q)IPN1H{-m|G*TB6i~vc#?WnIkcDCTo#HuR!%AnX=#bITQnAt z`;NVDa42vZo+bYHsIbSMLLnfTY8xuM)K2p zgqFFi>V5hvZ2xm!nPV}EnFMD@RD8lYT5>hNvAThm4Y=>}in&h)>bUiZ8eH%x zVzT%%YM;EeuED(i$4snEr~2p2O$@*2jgxGzjSby7KHPG>undBf7;tgLlH0wC29n^+ zpehy;UjpZ3?ximuV-uzVCxbmmDI3zpx9XC;JeP+d(Doy{p z(^rG8+xNH#o-3b6#Y$uFRSM66pa0h(c%)AqFZANacQ&Cq{#S*;c=dQG5b{zRZIyh% zVf@D;2fOk~|?&}8=5=~ybYA}PH#9ka93s=e5{)Uz~%c$Bk&)(d?K zxnbR#RG$UP0v$9oBHezYVt^YlKTP8@-%zFQ1!#sQJ{~{d5Y26I<5Ryj$U@#QOLy<$ zkeKsO^an#BJ00TxQ@pJu*|^r%eER2->+7GmDu4t>LoOVK>12)^{T%9P@%Q!H2p>da zE?l8Mx#^7T?-I5y6XaI6^gM`$qByiyUd2WW%T0i(i#$N0g@UpW&)wA}g3(_-ih+-N zi@Wf6@YKT_`i0|XtuL*v=@Bpb8GCOijd2VJlKI>w>^SwvSm5n3xYLWr79dE1Bu)y# zyV@7>AG-sWjrM0idv9qt4QPnR%|ywep*(D@5I`9O@T(K!E<=VH0NkSSQ)VYF&j=)c zL8cr!l@Bx4C#uGdKKTv}@hD3Ie`Mo#)WTx#jwLHUbv-nw?IMUWu;##(@z6fA>c9oy zqRhJ`7g({A2nsS*_^XP|4*r2$g(=7BP7tj_FLG-oO|8kr#a13HXW7cFtoVueAARvf zyB$wmRpu*?YNLc6r_}f+MeFv?(m?A|ueB1izZfHgqBmW3{@OTFw6WRJLQh|wXp2p0HAl@;(>v) z3+CBCI=M(RQsHFb)O23ioovwCVflMzsl!C0oADGpm^LL?sq;~+F99ENpzlH(S50no&)dS_4f*oFM)DZ|rsF`4ej}dQAY?dpvHIjxp{A@?CV~<+v8OEoy9mMK! z!kq|X&Y*7>GkOxoGVH5Y3p=X`mdO(9(G+1+^qa?a~t(zE2mh)K_$-HF(aMjjPiJqM5t|0_r8EAn;Z;v7P? zR^LHp32+8&%CyO^UN&-LkGTujuOsJ!m^eht-&on$6srTwc(`WoCjx=4njw5$5>hYE zDEUx5UaS#e560=7(Vf7yO!IiBy(KvQ_jC}SaXCEMf&Tb-y$Ty2ttC5hIKy%L+jod8 zB))1Nupfedzc59=+R??5HV7noW6~xW#Eey@jjz*R&$w7^OgEc{u(=9(trjRhnhqOS zn>hSAIP@|PjPm+-j@!IHIgap{xW%SNVq_Ej3y$ZEhjI;3ZpbaRt!6>rzUGP zC_nn!YY$&+B^@8~h@New*X#)meT z16VJFinmbqz5_PZ8!hugwMQj}4@ZHAvwbcjUchLb8Yy;5daXEm1mp)bIOqDDG1S<& zQbbM9BESzKz)#Of&LDTR5w*pgFbNI_e>l`9rX@rm68!| zUkUw6L(V;P1`EtiYv<=ptJUFxUmvmJwfh=(8z|gt#r+6mzdVvsA9$>+xz+6G1_3N` z4R!6av1y|m)q4u8^9nojUT)R86qYFN9O*Pfz8o%T`B{Hy@5+RGf(%-5ziMgTpt^_i z!xWUG;yF1fstR>WVt*R$kb(WG1_m7FF}G0gGvh0u>#mIT&08} z(+gWG_w%@qGKr zXo#4DiB%8e7=RT9`DYFB^Nd*oiSwJ||9y1WqlC?(X=jM{$jHdh6`c5xTe*CFD_zj1 z-KMae+Z<30G!@(FfvNoChgQuhd*C2l)6kVLg!eVicYCd0Xiz)$-%0kT(WAx?#qsT5 z)D*1Qe!%ND;bj%2^C7{x<9qUv65u1Ezrm&Ups@8M{kLY65wIR;yUdAAn=(P7x14P7 z0PvzYmRB~}y&j6lkl;X0ac&NqdQ^g5_{NZ1xm$Uk5Do7*3(|&uSg;Nj$pNSVh}~jj z-b-|!rT|+7y&Lx4acijD`y);g=1{(Z#w!paz#?#KPc^wOROLSSTI+wef za$6#DacVZHpLhH5qeDn@D2J&s{ut_o#43leKajQEWd++s+1UD)W>AhIvkRJfWKeY5 z>ywBg+u(;MZBuX0gilw~otvfJZ1LcRIAx!6+N@yJKj zVPU7z7(!D@{Qw95Pada2h&kh3>*O&aE|2xMClPL z^eS5vmQet%_gin%BMl9WW{&#;Q!#+d|6_o3Y_ay$8+WmP#Zl}tX!h07(r0RJ%^Nd7 z`5Mdkp^>PgA3%E#q_lfjHei)=RxHKmrgMC{SkV&zM<$ArAd$=fe~-4JnGe~Nc| zR6OiGj{eJM;fverO&v_{B&v#60HlQ~KeQ$4fzMYYOo4Q8ZB0BCrbHhm8`qxWJlWqW zo4I?i078pk3`a{;Gyfy6EhCkG?UleACOOXAw6_rMb*ISO$xyF!v}8m@87w}-H}*hu zk99p0KFDpZG;yf@MRW{duMGe`u#zlz{P{3n)#F%|ccD+|PF>XxhLYdv=`e?>ogrhI zIg6jM1!!+Q=6|gy71ih06Y{S_q*4Mi)N&h^-iUMy0SMQF0(LUR7MtWTA9r7t^z0@5 z4aD2dGbej^Jz?>f^w(hUfzm;{C1yzh6R-B;<$*p0o#^`pf=Cl%Eacv&9A`TL_O5|M?QmILBw=K+o6qk&-L4oHYafO|=*=^o<2*PX$SVU9{i ztTMlhlJjtPrl5%c@WaiQ(Y^m?kDr?6>8!mvl`LNX$};l+1<+6@o;uqF(MbF4TE5S; z5_rgA-0(Fh^wK|l^BO(5(LcB#(c@YM2V**do488V$*|O{<5dqd0G!oYm3F>T0W1S3| ziBas1EMI*z(!;5TC8WmC(>-)N6^?F!ocG!-H`kKvp@l zTZ{CSe07B19?&Y|SKnSi;_K6_1{V?+uKeRI_eqluP7ya+gu*!U8~O99pRxNLI&1+_ zTA$tfxBNnbjuu+(tBSZU3fb2(|8m>d zH3bce9v_vMH^h85-{=5I{P#y(367w~7z4_2DVJ^lMo6YH zP-o`6JhEO~wecON`FL8pxzP+ARz_(F80QCA1E15P#gaV>Db2=itM>9T*~n3XuMglQ z)~hT^uKu%zD*4ZMT2aI<(Q%UY{w_5Lsh6d3!fwboQTyaLOmVSws?bB=@St6C3_SYm z8w=Jc?jhfS)xk@Wi-a<)*OfOxI(EQLKHP=!e%?Pz0a?v|q5%abW$=lep3Lz-v4|6v z3@lOwVmQH2|8u5-cp3h@3tG?rMBX6UV2E`4+t~kO$h0Z<|5zvVkpIR{1qP7ILu+|5 z;J?>PAyffk^&nm=?Emh;vI5j%JuiM!6!>Q$tWWO{L{-g2mPsK@Q|}@wA}%5_KEABR zTu=zz{p$CB(ptNMhXw}XZC#ItEtx;(ZTjkkdgnuC4l3CLLN@N-j)c)0`zbH@t18^D|B92}9B2MexMb0Q5 zG@kN3h1!s}4M2z%ci*s^9Sr^QTrr3_LhU&3wP~A=u1cD#I1zRx^g`9^WEE&50o8T( zl0>foCS`kNsOK!3Yy+Se1}JZ0e6qk@oLd|5ssWMcB=f)P|XA+T}6b_(E2 zj{Lrm?tpMN!({bs((UFOMtsBy&(D!A3{%kOkZ%rVsn>_H0dDkB3hdG4avs2&^7wo2 zTsMoy_e`bUHPE_@!9uc%E9Wl}#iD+T^DK%SA|3}_(C_pUgXb>cR3^yzqjXm>|##)Ff{*#BFv993|z+-DM;~>}Ca9O8-bG#j!-fY`4M0;NC z_Uy~tiWXLvpW5cNgx!~)iO)&YC3vk@{OVmA%=(N=EGZ$jxlCaUSiX;Ein3>TGvu54c@E0Wi{9Ny7HPS`+n^PB*znN#1n#0PU?LJbNZSRiRi)SV{ zhL?3KNiL;DXKRlES`15gHK=7Q3v&sG)hr7+SI`aXg9sD6xbYXK6S^N@BNHQ^orhQg z5w6ersn2IPosvIl1eDj@SvW-OMMlK;B6F`5GWyOTW4{{7-*v<_F8uV}5;JGFKuYX|m2)137ZrExeo~VN3kZ~R zZJaDk31fN(uu$9BeWxj48Mgr~ql>`!Ki<0N3HV1|dm(0@lqEnJmXRv51`Y;OFq_*v zW{W!d1;jWt9`u8!{1sDN0z4bS=j6%QW^=Sg0zRKv*X0255P|vN{=;r~h%JZycN4u< zEGUk586-JQ^{WZ)R0~J3bfCa|e$~O&T#;T&R)}K<+)mva2;{;5T`$vn2I}J9r%JFL)etfW6D@YxN z&CTsVHOGZ%drpU3+ZTSXbgac+hEtiZfgm~DoQ^Ix3AyQm z?i?~ul@vNYT#&2T;WidpS{%a%onPzB{H9Ls)?;K>c24L!eXFP>y}plyRwcfwE=~*S z{RqUk6cfO6XKOS*lha97(y6=l`DuSk4(Vr7W20c&Ii-OgqPAiRMKmOz4UPTY+0$zE zedO77=y>r%s!o)TStjaZ2EEpuJ_F-TYWbKHe>I7>iqV0CirZ(^xg&Z2HEr+HE)H7q3Xp&D1&`HSHYZJB)M)s;00?IYU0cH5!Q*k?>R zr));uwuo5ECOh-K-H?D!_+ZuhwK=?Z((Wg?j#}B?;kRT&9)@=`l#TkXl?-{Vs3iYY ztvqozB=XV{%KjRNev|=u+VryHLwo)8=K4?R$T_-5Tm1mjiC!5EjGRiq&(53OZ=4j{ zzn~C9gB)B{*xz<*0uGe2lMDna)Z<>Y-pe_iMx)2;0M29kdAQ2H`X)2DmPh76>q#KgMeL|Vb- z91Gh$sc=lUvb4-6dw4{^`t|7F6Q*LLzQ}0|2L|^3J+G(w+orI@kO<6hff*`R*zCzv z5pZ8+jlQoRZZG=sJi6+=fAM2|6W>%#RafOq<>Qwe9gWNC<2VAq zxb7=TUI{M09zWtG03nUWU}0xSFrR+ldt9@-mx)5xgUmJl(bjBR#(6 ztrc${$yT|pF?S3Vk2uxrGtNPJ!erbVlXlmVB`BUind^^F=~}~fnEh_Iu3rZBwt9)) zI7;_}rA)rD|7%9jex6X4f{lDmC~3519u>6OkK@rYl! zhA)8#NxG<&-OE|x8&MID9Wvvk$@!F3pjvVN#@0GA1~ZNpm^xCxYys;V!B6ml_;#Py z_@j-4t_aAi&(yJXp!Y{UYN?urG67>epR+sX`-nn7{w44EX~2J6JGQ&~Lx9 zwA*J3fhiUn#vySsTd5p`wnL!jTI+3@j*VOVA-$l!pO`!jC{~Z)hpc5&&dWdB$J+Yq z9e)FM*P7)za)SISDfOd|M?g(DTBBk2teL_sz6OUL^O9rKeCoEU@%EVM6SF{`NvXlq& za%3o{sK{(I(W6Vz=M%8=+~ewE!zO|H{F<-cIc;U;_kL8;Ew`wu6}X=KU9ul#~u!}(x)>3jUp2Yro${?Ewg$YTPw%+8BEW%10e zo=M>TI%6>JJG&zw9$5Ez>!{rDy{>v^w`#s1GclJrB?N8c(0l<+`ibfWU)9q0%)~;0 za}Xo*<$QaZgR<5WznVYvx#Hc(jbA#Pl&5x3dNfWiOqw((le~?k?P<*SCqAav2a+Km zM#`?iZ9?Diyk;NM5E_fykyXz1?$uh?8xcZ|z_&h{<$BXP(7!mlIT+{+c4$2XcC%4p z$1v$8K%w@$exfDB)jjX|fB20EJ05b`OU`#x)p&-W1y9L)@6?f5JgW?Y&t!{DWhig= z0`9%LQpTdPq=5{tF>wg=Y^y$RpL%3k*xO4ovQT86c4`RY8I_S3RM4nBN`4(3d0a-d zK$$-hFEpK3d*q3*^h#I=;tLlY38YbkSlsw{7^1@~1~;R2^q1HnVH#-r2~5Y`{m>LVZsB0-0t8QDeOzn z#pwJgr-VKGaC{-tE_oNB0pr^}{f0$cU@-8KbX5<#%5E%e(CZqmCk{VuY~D;@_nL0+ z#iJI&qXiv;?sDVZh=+An=d~L69&aM2olzxVCs5(^>~|`-8lpucC$x2C%D4N~6!!19rSXcQ$E7xpfAE!Y zbziB2PkZ~TlU?k-4&TD9QVBwpEs5#2RD~U_zw0i$dowjVw{;F^vS~^%((C1oW8FUR zN+e>K2=$(sv68LHkylFja zN4oZiMR1pr6Hq4tNxLqdLlI?LS~lB;Ad2s!Wda*t)N#LW*;Vd)9j7v5ot}4CStKxB zmm92I4W-Nsq>*eg=#JaGJ5;8K6-Rta=?nGbf0Uh{>$z(GZ1BrB&+WjO)+jB*z7Mf! z862}W3f?|SOz}z}{YkSatDIpXST)BprF#vOf7ZToqF1g5hv{SlGoMRo9jY4*JayV^ zjLo6C(g@(K zZ7a?b1vuTjWNF@=5NF+eGfZeEl*jyy503Kk{a{3yJT)k7*Y-n%*a!QmViT2N_}n*lp*}@8gte+F zs!~VZeLKd*I?#ja8mQQWakZDh6+-hLtd`C|0--T9@uFHRMPxMjMCYu!7oIQmh!7ZZ zZbw#8?4CsPRZIf~DK$H*XV0p^=3vO%uSR!G6J~5~iBI{4yyUohb7*h<49^$m2fW55 zsF^gu+It-vr1dBEXip=Zjqe1jA3z)>y{-IvS7gG(v-{;3a=s!94 z)OwUff0$=(o~n$)_=ukZq98#DRLG{O?Y=bkhuFLtvR)pzkXgcQ?>#sq%`6^kHThk+ z4@m>X|2s+`f(}NDEKnURE9TNtj%twTH$;Yie6`ymK0ZC+9m&de+$9UPia|j_10l)- zK=-Y%1gx^E=` zVe~^)QOe8$`UYY(Q1Gp$zG(n&_X6@;9gT`>=Sx{R480p2Jno6-(_WlF(c9gI2sV@- zltX?0Y86^d+a zKS0WorgBM*NkQ73|IW1{QX?662&C|j^Fl1Yv|UV*z4fRv%&7&QegJS4CKtibV(08< zD9cTHEn!-le5%-eF22{R#W2Pfr6>6GoAg!Xx9Wr0pMt1F#yG|)k}YW|kc~#XLG)g0 z{U8XLBmfbd$3JsjBpp>}5mRd~pE4ycX#XgpJzN*s;}*p(Q_a~S2)GOWgjnhpvT--# z%LnffJf8sjlXn{;vcXbM9ck<6&|CLx6C+(|E|FX!g{phDub9pfaoD^w$LhSJRoK4C zS{RAw0J{H=uFYW=Zi>t8P;Xcm$T#q@2h(bnNBkNLsktuUF7|}STPSx2i@~rrb^FO} zwp|qq@&WplF_PfR6QDxu%Au-EAE@`#L5WxHkQ86wz28InXS?N{2fs+oW-)5(e~IF@ z$pS#Exl%;AO#a<))qb#`cYUrV=)A}^(yM{0oG~2wpwCMj3v6FET{jgTzzIZM%;$?P z^|f5QHby)eJ9RmM|1~v&WnfKC0@P;|5T&M|ZeWk(2i4p6TwugPpwZ{P7kA}jFE748 z6Op~eqEi?$JKkLQl^^UP1d@y?uT|kG**-50pY1-^!Fp8B&&NeI``s7+47MJ~;}o$~ zfS8;Ir5t-5@f0}g-Hb4bMnT_=2v_eh&y^g-bzOn%*L0soQ8ep8NN@%|4e(au9t{oE_rz zt~r5eb%{fWwcp<~9OL&+NCzGINbP|l?SS?ECd6{FiVM9^xef;>t^*92GN z)TE%C+`d%1xG>B(X!PuKn8>ZiR?i$gfhefZtKElQnf2YuJn_81lU0;k={<>ue1q2$ zOcsAnCAYx7>FzSaSd8j`K+JSvyF9nF^w(WiraSKWGFg)!^^6KamI~!RwREYoF68H9 zUyYa;2a+nlD?MI$ugdT;o*1#JME!7^k?KL1NY9;tF`DP6r^6zT$c3J!Y1*t;NlUfz zc}`x1a|H_4R{TBNSScr0gj-LX8q$;Ql{CoxYVBIf{ekEj2;Lr-RYD3vh^wGXtJ9ym z|A709LzJpG@_e7*vWBo-|8sj^rxVks(-g8WHCwDvJRK@~t8z3k>MIv$;Q;=LipM-Sj^N00Axm!QDf1=PVed9s zl25O#iUqt&fp}(&Ko0Ymddd^T!1l_X`;wm#uFP~bC=6Zw2%y+2DwKQ)u{#znt+trG zl_F-gHL6?wOg`ohH|7@VY!Bit>*irSQ-UkWtQ$eAlUdTl>=h_XQ1VExa8PJ;U%$3+ z=3tphsKpk5)p=>mzNY0HGeNfFp68RVS?nx(x~ASe4PwA-MA~1H3b_M2ZdHg8iZAiO^q|8xy;>vnliP25WHI_(HxR=6fDat z!O$;07G)WJx6f?ua?)L55KmLzHBdn9ng^n_Ze{FnS5v8tCimbKo}Cp4zfFiY?6uUA zaG07W9fYh%3OrnDDTDNpznpMx6tTDL9ei=?s^B5L4Pk#t5|h5>iHhwqeKDYC|8#LE zzbrP}JRnpm^o!Ehn;;~4E+S%Ofy*0X#hxCp=-HVU(c?<^5d(0)(DhsVr(x$enZ(aB z+}4GiFJcw&Zoydoe!74NzM970IoOA3+=-I!1{5)4AhE~>UqO*Z<`iROU-l|1MSbWw&fHFl29GG+$mUlN7w#zfbh8?o-6gF zW-JQrY#47$Fo^bfC{=nmGD^_T;T=3&8N48W=koGMW10i^d-kQVZ}!N_*j)B2qmma} z2r_M%5tgrlbUt30+K!vxWus1_=<1r%3>gj+)BLJkwU_I_IV*`^Ppxg-bSQ!KML_k< zv`Y;XDIp(Dw-7JHz*B1SYTGV8)k*YR{w`Kaygxp4VtvoZd48|Coj#{z?uyn+x;#)o zEx{i?Bbk!O@Gh$HlMl34;3>4&zN^fWpfc0pzEhK0d2f=U;nU1pW&+z&(ygTwR>L=r8rltU{z8^5kdk*82w|?>r=iPDuE*gjY;GmUuD+QF{H1 z8u;9r1CaSV4&*`Ygiso!X!NBscU$)&fPynFJc z_bdNE{}1gRBwa^z=!8I99})N~tYFB-!RCXT5E|smfS*npGa`E5B{BQH&5JFJ_svso zr_e&iiB5*PMD8~ijAb{2LAVI#OE8%q-#41M@H^ifbY5j=87gOe4NZ6ImTVmd@_|S0 z`|CJujYz|#&AF?_(DKDLPz=vpq>iP3xDrNhIiXJv)Rz7lqb0udT;IG!bRIzJV$)_xHbmer@1qiJ^02s`MTI%2 zE#t#8DxTO{_wP_o^_U=u5LM@SvM*9Dh0~!&bD)Y+VsWeB^g8}+=VWr@COdgU2sDM8 z2_`_inPK`HG?-GD6h`IGsvpXLGXlzVg2z1`cluhn9~Om0(S-j33<@9WIo(h zYH&3rKcMMU+3>@kaxfXf6fo@s*FxT}Q03K2{s`xM7mANu35U0Ho|v_~p-MVRqPcW` zes<}1i7M2?rb5?15t`t59NR1kC#7MsHt+gkTzo1W z>T*!|5Cf;wuYOj-1Vj(tb0RJ39Ai#tcZS!5-vk~vEl7uG=LKj)+x5O?T+_iY-p!-& z#g2#7r&b5Z2&Uhs!B6jg66q89#_5gLFWtr(zdWNe19Yz#J|Gf!7#^f!E>zcLX*UV8 z2uoC(OwGthV!CBh9yfd^7T%kSO@uT9YW)p-M8pAvdqBTbcBO476J~YkR@1@nnS+HY z3(!Ovt_&`CMIjTwAgrPfv}ZZ?V8y9#nYC!;vook@kOTL2)oN3W=gwhN5_FC6GN5LVra+7xrX%4lEN5H=&-3ONhq17 zm>U&wM#NGcFxJ^8)m%;QuZ65qH%N!!tTu_q*g;vF-EZS3vma5;(7(q7MN<*R0&58h`f^7%u@aHmcQ2#5Q_~(|tF9Y-Z`@R3ZlYi;K`6XgJuC;@b~!tdGi0Y(`1N% z8uhj=3JOEtHn@5>N_Z!bG!E&5ef(bH)<{Cl%> zm2SKgBbgU8vIecECY89=7wF~w!Oa7NeVn#gtASZE&|P5NfAjV`Q$BJ(HjF->^R;hD@OXhiGYK+j@n~fpX1FH}Dg)@0 zyty*5;DdEp`g)il{@ED%T!i;Ws%pRGQ#~_Y-OgvfaWGu3wOQua8UIx~59paWW_x5u zaK`*$PnRNoZ2+eTZvD2qD-C2I_xI;UeHm{WFQN2uf$%2`sI}rj3WosFlX$2Z&Yw2j z_kJLgxWk9IF`Kq$s|V}+Fz((0%{bw#ic}`kgPoNHaCCuhdK}2;pMJno_+mFe2}PL5 z7u%scr6iMPpQ?EaZhA)}Nv6zWGQp}vGxquGDApI&WM?h6CV<{z1b^V0#|k76!Az2# z>MdppoJ_LT#ZUtjqUXVx`dikk<@1}J*;@Qup#QR%{|D0h({-Sg5x*Lbsls}Mt2z-f z*?QT%_isG>={qBjZ*FP($<4=AN)VgRBmf`sd^g~(2&nX9BRXCKZ3fgt=4f#Kas3S$ zVzcqLY*$@@tjs*@k%AJLkXP$vh8(%B-=_NgAsPq~jJLjYZ}sjYi-Dzz1=Ng|%dMX3 z-zgq7PI?1*x%FKMwclR6C?27m^wK`xOo)54N${&FDtV->ti=2|{u9t2V}Kd`ACFh_07m;J0ON-r(FHI^5o^Hyk* zW}~aLuHS(56pDr zoP#PBj>x(SfKn4EHRPNCridHRltv}^?2hF8KKAa$Xx&-j+M2u?6`!2iI(qOrxs?#$ zg?pJBF*nM1B|cz*SBdwfF;eYJwU8=m(XIYW+h^tP(F*q9e_+vqnDo=p zt4Qz9l-Dr6nVPtHX&tVF!k|-$sGhZl;h-|r>%2Zba%bnK&iq^Hbsy8x|&CD;+&74|Jb-U(eMP0dUtaAB*r-U3yvMHf&TPdqt35$5zN(!_y}DvUsa z7$CDb%YLhP)#6a;=qrXr#?|{Jft*APxnf^K$lYHEIAy24w~jYD{cH&ccEzEufk=YSW~{xj_A+^%;CHk?58C0x zPGp?XgPE#mp__%oGY(zl6zIy+&iP;hUm(RzjZ627V*;*>pUC;SjMwfqI;uV}PTbfC zwo~`lV&!~66n(12@3y}AHzGZ^Aep)7yZ#+BHhBWnda|neQ*t2@NX5RGMAiak)F6*Z z%rWipXabG#kt+3R!}1=8+KdIDXMF5jL^C84nI{NIE_C|!=X;E!c(j?8hP-Fa*e0aEs<9D_Lcq(50aNTSi(%Y&U>$5t;2c@$*3TbMF_#mqoBd(LjaEDOOAQ^IPOmKYuQf} z55(=$FRs2SWui{2zn%{q7xi=_ig7@>Sx|04FU?|9va2BD6)8g^;Zl*i>Z=@s*pE0Dm5&C%aPG;mNY=tG`e z`V7z|-KM$o`!CD>MbM&JlC^t`Tyq^Le^wIN!EhJ}*bP~=GjHR`H!1CF38jV;J2GB$ zu!-H_h&ivfX?27)6vs1W>{(0^mpouL751;5IKF@yMY|&-KY|O^iA(9HZQjq-cuPDG zlDMh;Al#kkR<+H$l6czgNdFpt`fleglek|6Y4|(%GEw*QXDU56ZQP+Rahz9Xo$`@% z`1*eOGdn?MJVSLb^C82;7f_!jE$1P>pJ&Y6A8SDUxL!cPBaF3E(Z~XA%lOTz1b;qq% zSPIzlY0UAF8?Rsb#Wb!_-w}&7uri^g#@xg{J$>itG}-DNbJ@ugzdpUrg=CBt)c@tG zHBP2Eu2;Uf{0sp9WGSL9sj1!BEb;y6E|DIaBA$S2dyaCUTF+YmpfwPW6+g@LOiw1S zX6mjJ)P(wrs!2501$hw75B2V4Nh_7vO=N$qBy?A;V##v*UCs8x`^WX!ZS&Lv_7g?; z;P0Kc7{x1fk@5^x`~0F)VPolt+6VNS)mq|yP!}=|nCwjoyCX|MFt>2aKb6Iv_Y5R= z;9Hry2vDo(Omx6FIR^#lNOwIhm(XpidthAf$u3opiPjNW9o|8FyuT<(msh=h#X^rvefBluzfA=vFM744g)-;fsxC|&52Alv3YJ;nKiK)Y(4~+*AB}S5 z3!RqKCf_Ge#Jv4RF0|C7{(a#a%UL|Z0g(lE|4(&q{T5Z*wtrL79a7RQ(nty@B1o5t zD2;^V&>$%#4bsR+BO)y*4Kflslqk|QzyQ)cH1D~%@8|h`-+$oUw)gtUOGjL5&AHAv zj(z{^taq2=9!qU9@~)%o85EH>e1F}mxHyPnDxf`H)og26OxAp6lrv_8*h0oeh6Fz4@NzZBBt+=+%^_C40DSx6yBg23(;njFoPv}VoE(xsgB1s z8pR|fCcTMVM47|ZEiboN(}dxlg_OPqR4b+C$(5J;?4N7U>vXxaQ|tJJhfo5**!^pL z9d>Q>sLwy#^ z+MNeE4dgc3*4Bj)3J)RYtb{|h)}q_5+p|7@%8hH+IYzZoRkjRYBBDKL81IMeW{cZs zbff9#ntMP;!}$=*TvA?j$>D}gCp{iMkAeuj$PMk{ju%sO4Q>yPU9#SGNM#9bP^&w; zsV;+l7PP+b;_?J8>(Li{v6uVk=a-^1L8Et(k@)`cgS_REsMN$mlCd9SGuV~R=a8c9 z%MBhl@k7ZXK3s)b?4b-go0%5B($!p3PPqwS-u0iH3&32Ho~KP+MY(Y*GK6h5M`{_# z6D{;vq^omE-ojVregA0KMsfh=jVcWEbLuvItp2VcVuf7>MteR4J6D{S4<82Da>6M?2=(HM?5%FQf*z7I zbPtn48IX`F0IXo8uE&3pc{H6wDeB{mVqi^kp(K6PmfsC@n}jU`Yz%^a%_u<9s4NIh z#pJf>bMu~z*P}}a0(FHZ5>l#+j`1>A#JO0c=}+gH$i%LG1B z31^#o`pte;US%dazv;)t+WbVlXK&m2AFqZdHZ?Ups&G(;lwEy&SrX1Yp979}hfCI| z31&BeLzg9nZ;GfupH*{XTaAh$oVtf~+eM6!fQ;GFR6Uetl!#}&j9FM~`^7uR^*xcs zM~XY!ijz6MgfTWnU5>A*Fc>Rx{Vv=xPA&kX73OKK#5-0-fq!@guAOyI1X*}bdyUpP zCu5RcA{rJH0qXC3K%1IAu z81e}Bvt4WxxE@oH%V&2kP6;=!|CSRl0UuyP6QuBJYnV>ESy3Z}+TH1)$ENSA_K!OB zpPJIi+hgF1<3~MuSiVCU{i2&AzK#C6&Hl=e?Zw%#H<1)eTNV@TAtXk-*e_A~QuaAo z6ulIyJ=JDMiPom{mSz9bs_i-9Vx{_~<5JW7B-t2P1N)@gcE}tv8;RYh8D|4= z3;f^n>JDyf%jmyrc%w96-ZDHDxE1JaD|!?+E^ppSco*-1(L0$f7tp~MQ#wOYY|OEl zk`-UnObj4XwsK&<)%m_Gy*@b|OL?#CCse!#ntgn{tPIR@8V%_ITmG{WkSuT%Hpc>9 zQeH1F&3S1^^^{!|xZ&tc?Q(XsQ`%m~{bb#KA*y6WRtNpUmul#G&9oU}+o9@AytU`b z?F|%>b^R}F8;MJ_*4QF9F3)E#i*K9kv{-TqKP*?S{iJ?sa|UQ--m4;O)LWsaZrb3J z0cmWoS#ZwyK9QD6cHjhP7hlj}8~=DsHh`n5cVt)44tk53BQW#Xl;q%fLrsOX(IKHigOX!1-wVI-U`Lm7JHS##I4}@(1ng^jGugD!S~FLRRH9*Y(!8q@h$1ns<^&4Evkw))&s|%;uozCM;OTU; zO!)5Kr~%@#q^e!(i1$)W0BG{OFef-mrU(BFdVsd>EE)PI+Pu>z!r*Z6VY%LyB z+^9#~nGbwOu7B^qAOe1|``&9m?sqMJ%VYyC&soB;!-w*bWaiZ zsK`)!sh-o-(8Q0~w914-Dm|Lh2=m;5Q5Gz~BD6FrczWREn#fY!-qruSv{60UH%_aO zpMp`UPb*h`wrvl>fCP0171;;E@@JW(T}(bb`NG{Pql$-r3K$EvM#H7C`qsEU`cwK7 zG@A^fi(%2_=M*yED#albW>9zAt=T>9d;W;%n()pU3KKt3IX`ddFMRN^q^*HU(2^V0 z`OWc8w1xjU?<^KZRr)POrRBWvm;^o;<@!q3g`T~5Qf1~$_V7fgTgNA@mg_sosG$l^ znRgUFlHx6Gs~Qh+2|zV{Q#4mQ5TW^=dl*MD40XH6g1RXt(AzI27t7B8K9BDQ2SF_D1U*DuCDgn2PW% zfTv_$9FTeQ@cRw|wq;wrBA#A*L5JH@^b2aDnt|DWY*fpnW-iL4V5y11QCA$Zd$S|& zv@gTV{$`L#gI`Y_Jmp>Pa=CK_eB4WF&o1o^B0dxE=}r}*1%gqDFzs=J?(#ep>AYGw zOoeM;Z=?eGVfj5-Mzgp?E!N*9*U0`6S#m)pMCT`lqStzUMV;WdLn!6PA9ci!fTc>8XyHo3=vYqQq?c!dj2C8ap&!)Z% zS=&4UU5a-QF3cN;wnlZENIDoj66E&f0ur!*ZN5fQEX;}&#uqY<|NYZ4ILlTI^9iXV z1jxcm0@q7R_EatI;N@8aiU>a+d-|{#MkD;R@A~{K(?;GO)WCJ+l4UcXVXBO~A%bal zS}~IT@jRi?V3e{lxUcVM^)*F7uZoc*U|PD!)5ujo7N3Dbyy*Caz86END~+#S11`#F z`phe^z8NSFZ33dn@QMcr&K+9OnI!jSLw&aDvYrmJf{kZm-frUw< zp!&YsP)B?}f;6u@rU^hXin)G}EYlqvSARGVHQ~fMLGlt!(CFNeukB_akJ2DjC&zdh z`Xh+AI<;Hariv&jI*#57Pp~?(SV#CbE#su8pt|n77 zD-JZwzAq{J%(k1e7%J|*5ReY;TT;#CAb&smZ%N1wwOr}HwFktY`$1K@E9c_(SAa5d zg+Wwf+T(U;c!)bqpa2BMyV#SfWFg#-@B`v6YyNckQV;6yJQxIn3 zxslx|W@}3*o7-Mj2K)TZM#4Gkne@g_Xp~R!PIqc4)ebd;ND!&X)@8urEl1u-i19{3`=)5fjvJzoIT})zGqtrQj^$3NA+|QJ%LZ%ugHgo z(=67WJ#|*)uaVADD5Bxh(V8yiA!EHWMm$gzfEM(&ik=l(R?wjoYB!k>>A^H$yN_KW zk@A8+;K68Kq7unPQ<;Ooc9@m%+hP@Il=!_ci?7uRVH}|0^75?@YMAd9oKm^%)m)fd zILF=h#kd+7gxQI+k`j`h1`K8l)LFwF_AeBON?rgi1o4bO*zCgloUdLYN9BcBJfs>! z@fdEz!omPTOCUdBXV!;6<99d_O}VccVNqFFB@97FhN5MV4cEh@X;XW0!$a&yb0nIw z8Wm8(C5^5yn$38IqVnzs(y27Zx0;sYj2&kroMmL5D>W zgGQI`bUMCw0P^;ZS4p}`wp}QLQLX#z0xejxV)0>aG@)^HR;wKPOO)>k$!1Exyy?`w zsgLt|l$7S%Ix4P7M??%CqAEeYX5o zqqH6VgTu^f#@i>mpI;j@aAq_{qn*NOSR@p4vzRI<6~gx~-mvZf`Q;6_Mg9C;fF%Kf zP`RB&!xkWu#a$zam;qjHb6VS_LW1=n#^WiB3@!Z-tJ6))v~&j9cgu$Vvd{ec_y>)uU;hSWCxqQz1IU?O^0XG z3co6sqWU16{g-#t^cp^CRJ(wjgRi=b4bT!RoV?(J)V4ON4GSNv5B^?b>(c?aRi4Lx zo>AxL?ws3r3A`F0j~*PueA7tV%F!2{nK~1SW_&C%yHP&@>Pd&Z$CbU|ksSBe<#|5M zghX;kMhV@5W^I-zr4_kkzQ1u#F> zA6u|pPtoV<))57wnJ>9yEQ(X7chvPBqG(O;xzh+6IGs?C5}B}>T1H?;W-7~2eKkS| z0JFI!@_`JMz@U)Q>I6iDz`U=nN=O^}R(22Zl7&zmN9)%UV=|_yBfCnk z?5CVWr-?049(~vJ=|N^~SBN*Vh#B2~^nI%lS|g98S_;VC^!tMcm;R9>cIX>c_c+0L zrBq|d5$wN!=H6|M_&MgMk`Bi1oK53VdC>=>l|F-yFyN4Ld>wX!FMr@dpUda++?!GdD^C z#%rT?BA(NxaDcXewyEWM5Z?*TRFJ4Jz$pL`NRd+nP4-SETeZ?^zkI`yj^JZqS_nUo5J+CrDLjA(;R^8{YGVuN3=S_#zN z2RdY6R#)E2)JcX_f~ARPwdp>APT=<>&NE?&6VHM56c3u(u&iOVC+5>F@eH>oPD!uy zx&g!`>VKXclK$OavrDf$?u5@c;Z@6Z*fqR8S`DYb_antwy>Sr3Xh(k3&2Et{%JlWd z0&)IdGa2_M&wmg^jz-X%PQlv~H^x;0q?|`?Y+XG!np2kPPRj;3Mbz6EdfW{b%TDfx zo}r7NcTkOpR`{azG1UV`nBhcPb(jQmP#E{MxW+1?!cpa&W#c=YtP|D!mK7wepn8X_+(t!68}L!&2cWHgr2r{|VnmAkOGzL@ z@LL(`QGR=nsebsEgzfdc5RMSH!3(~N_{w*n15tLnNXqMvkBCn&P2^7rkrsw$S*8u1 zjTpb=yd*?4uFSN@*jRnk+ine3YvS6GI?J{OTHD&P6^6l zF#!x_9nt&PeN9awqBM{mdw9)3y^q}8UA|0vgOTVTjErHfkK8sQ@P8$+*9iRaDJy;$ z@fE0KV8oIMQC>h#yx~A3Un$KUzX*NpHkO2vEqA;{-gZe`B4J1`u#C@RVEUc zmEXNx;F~!44P5W1#+5F;Q(+f^Oywbr4)_mEPDCXspS5i%fdbtj##jJ-$u|i9GoiL1 ztkD)Yn1UBUtMjW+Epa$aC|V(g*|nucp^x^h#wn0OIaUa2CJ{a!h@r(vBOBR#d!1Sb zh?u?fy>wi(d*1)hCmTxi3 zd}wX+N6nK>dX}S_D!5R=dYSzstaXA~M_|{|x8Lj+!>i**k8mU!L~6JSO6>MNuf+Me zHI_?R-f8wjW|+4_@>vczCHH1CzT68?MX?Bp@op%;TXXq3(Ce1r!ZRv5?FQ{@2cH#C zDtPSDO2-pPBGCIu%$H}5Iv*J!7ll}S1MPE&kv|u1RF+=9jg)X!N(die0r61HL9asj zFYO!Qz3ZNopT>+ZnU-XD@~U$-Mkbc&JB0k#bzH^L961@TYb3boh0fp}?!1q12 z@LmC0jj@qPY%`s0RL?bZXT*mBMuV|%6(54h2ET3hpqRm>DR8+!f+g(PrOd5qqss<@ zNXNRMw@2j)W6wjAnn3$d`B)HaauRn7FJRpS}LZP6m}KmA6olhR!)C7ED@a(yDrjzf{2@H|Y`Bx*GsCUO(QTx=3v$Z^=el z>tV}ruEr+#Kd9D!1u9fOUwt78_L3HcKjZ-?Ob(llk7W(En}A-v4S|%xcwD>=#SG+HWP?Jg-q(C#%%3yko3*+7U361B+?8 zX`7rG*mXdF+026<(cfpqY}>8*9=2I$LK@j=pf+D)Fn-2}K5@2zuL zcl|Z3fd-x9xpi?^o^l*TBQak$RVee^`5f^eIL;sQw`=h!z?zqDv<`y$_}6oH3ewAu zW%jaP%%?~_)Ll-yylru~S#*`oJy)L#5&37QefXAUtbbrYi`+(tk`CM^Vwd?2LD`7ytzAw92_0{lWdt&YByI5WgT7<-HZ$5y%U=D;jZsa z;O4)js;LRruV@07Q?ku8^6ncZ?BfOBe4^Jsdcg0{{@#8!%0RA7-k^mNpZ9->{Rn2Y z`A5H6>)~BODJ|RPiA9NLd|ElH{fn5MekNR*3UnWeGw@afi-}`qr#=pc)wR*Y{rFi@vufw!QYxbtCfMrb2}tv2s!( ztNcv%RuT9zhNQ%B_zAkNAxpR#5-uQSsjqQLu!%uN=Ut!z7r5-TzM?hLi^X*_X07X>nx3%_Yn)eur@}9QpsU#XSn{wnL_S_luDY`>hJkq63?b1?vy9t1d)X zQmGC}mEVh#u9{l-YswV!*P-a*VfeRG*6d(sRf zT5RjAeXprfbsOomi*q~+N@YePmfO|>p(nl~D_1NGC)7Zvn+qQ#21R_kmzrA@53%QF zGy)U<3}@BeM=xKsCai_gJwo zyeC;TWxvA%H=v!^M%ajC26|ck5wF#4qwgV^=c&z#&-l^qf_9~dd-JUed9D2-AUrtX z>S>eku}gZ^DN?>;l;$^Q!C7U($MH%`V8V^n$t36gn4-8qw*oH|)Goh6i@2=;d7^+Z z1b940FuK*rfZUkP?Aq3)%E0sL`L?u)R#c|S^v*%xy-T$~%~68SZ^HFHcPK>5bs<;# z>t}2!B3P3re6GP!i@mM_qRxl#kpLW*$W0G?XL0^qt+@$L8~Rk~(V=dt>-Xd-+Lq1O zOx@ny35*1)0)#>?39Q*|Z*Xs^@GKNF*F2-PoedTPQy`S!g-?AG2)B zQ7feM(CGR<*qYtlZPO{t)S2b;CmE%N!kRdW9o72=mQ?S zC(C25EB=SdA+LYsyxsxGrN~{QkKXSE*Jr)@n)th;a)r?Hb-%Uf$bT%2?2%7UiKO_NkH<7?JV7PCwgoV##vgW=qH!d2l z`PRSM3`9@A(>*#*K{27=V5_m|F)a;}#7G&_XyQ}K9i4NpGpHt@ zd1eXMBy>7pzU`lXj@9>z8`9=_gd#~YV-f=f!e6nE;ZyPVhx_9K=5f}+t#5-x`fcE# zp%Y;rYN-s=DfNq?{~G|UM!h!n(S=)}YJ?TW!St^$;x8v>6{YHL%)ANA$8t}BSf(k1 zJFhY*$++%TFx7qlH2ptC5UmXN0D^XfU`PkjK(Y3yqbIsXN^Cx5WRUiI*La33TaV*BH><`7Jg2;f5(pprJ8EXf+n?z? ztsJJH{jCW5U^b)OzUtIof4Wd(#=}_ST!3mb4of0_KLny7&R>7*a?qM=U+tZevln-^P zgSZ#%CMq<)Tmm*y(qw(^@Z-nH4tZc{XSn$z(--9ozwAy+=1d=HY)ChWQ|z|`JnsII(#vNPTTSX! zSQ8?f({0PQXgBI-r|N;AA5Hk)P;RtTraI$OQl+0hR5l6+Z|(?W?IrCC_;xE;45RR$ zaUc-VglhUMdY77!q(j1TLThh5RwSDQaKF}rzhQevT$5HHS0w#rnm8y+zxr9QQdFe< zFfvQdKj-$7%u-VF`fG6+2IP1{tn1T1d?x$&ip?q+ZnJ3X@Df>O1Re|1+4h^S^!o_h zZO(jd<)2*uqtzCupEa1wX6X8Ap6Dw=_hBHWURoa^z}qLsk>}tr@3jjb8MJt^p7j{i zthjmLIGMLq?;hJS)V|ikloyFVUp#%U3@Vq2z~-{8%_R14UJenG@UbV&b-(lH()SBo zt$MSqEa5Hh`qOkpCOtdTGp6jV4lf4Z_57H_+^Kfjb4=~)G}KB^bP-CSA71}08&V#3 zV&jew{WAzr$OW)}piHi-Fpw}CuT^MnG(FmV?!XR){GNiEL8{@Y>94w5l2lKK7t4U0 z8Xf)Nv15PT61{lAIN{2Vc;Za$?>*E$84r3>p1Y@kQ3iQB7=z^=k?Q1TYce}HT-DHW z1mt996=Gk5!Iey@gS~!#m*p=Op<6iZ^4w6*we8EocS^1dcRJ+@d(Wes(5J2L;codh zR$Ruoq+yN#c=%-hWY_o;d*#1EaYjQDB7FMIz2eoGO!6s|@0L0V|EkhP$l+YCUFq+M zAe!rXK#({Q^lwkF0$eT~;Y}Hd>wPDb;?$x}SrIR!MlkO|5>t#?DPak}=MkPaY>iEH zvghW@(sf4Y9Z5zASb!KC@B3brVO*O*3_TI#;VIm8(s=ok*JH1_s2wZHw2tWoX>A|n zRQ>8R9e%W*b`)^`qLiR*Sx|EL)P16G<@?v!4@DEMDHE=w&n8@h7Onx`hb%PlK1Mwf z{&?P9NE>b#!g3?~fvlZ1rCb0ontBi32qiW$xTtWouO9j#<4dWuXD~f?3*>PC%J?UD zFpwb!$(LE*)a0wkIS46x6BNWC$A;c%Jb*`o*hUC~{prSkC2Jef;LkvKhzhWm{NFzS z3W5lygq$D9|2iIkWFDBy!9N9AJpORK~35R_%wvEw$VEyJe0H^Q{9t zM?Vdnj{D83f7~)Qok7!}Jv1b@ z*}g`)y%_Jnbv;~t#_l2Y#1^o?K!0gT*x~cm1o#kSwWzJ@GfDzcJWb=tnwqd>Gjf^{Amfua4=(6nrXGM0UY4deBKu~4@Ezh@X zicE3qbPOYSg`ymaR}e3aYsKQ_Gvx0|L|p=Ol_b#RnRDLooqN3mzH1;k`gtuo?K(3Pj5hJndLoA|ec!14?>QM!8$5gJ!L-vLHw0sZ-ZHAPh(VDm)pQ z#7GNlBk;ZlTbKs&=hn?amf%y9u8_l6EU!I0ys~YD`^kOp>Z`RCfpFUFVG$Xd=dXK9 zF<=S13X9`2A?kG=EPX%zGb_XO2tbkU}w&rYITK1m(8^L*Z*Wb|FR`}_2`OL5CTp4 z@HE!hyE%AJVA$=Vu$G$9qG7}hn$2;ccHmU#JiVn31AfzI_b2*iq3By6PByd~AV*VR zRDtXqyY_M@>(XFSP|C&X-`Cl~1i72TK}t6}4%bKs^>5Os>7&T^N83PjCm8x~3rL`? zS0w(@-k{Q~d=%dU&vqh?ut4w=3%e6Y&`@RuMp4aR&K=Y~hB?>Wypyw)4u3+b@Em~a z)4LcOTmt)321WNr{K51lu-D+2!#NS8DWJ@2=hf&J21V57auI<%pgO7Jg}~FC2OysJ zqbhjj_!MNWaXRj<35h_n#+BM`kiEmk=yo7*8+8n%=5Kb@#%zERwhKU7l#iQ1WD<0f z`aVMj9%(T;0dQcFfy%uGF6~-~20vV!WN<}9u;cipM9hZ&buhOVFoB6(&js-h0;Yl+ zfc866;b1XZ`p?{tjt@7)`@e8|$h83Kd`ET5=wI3=N*=+^{vA(Nto%lh1_#e-oJQ-uv zKLNb$*DnjzL{{fs267-PAMpo&4Ox74g4vpVCfs(Co**$G^L+*bCI)hJ6+FTae)8tE z?sGOVt8n9H?+P~%eVcN=0bcXr!)u$ZK=a!rpu{Ojy#rhP@pcL1U}>kp#h^woqqGZL zK}P0g0hG)G2+soQsBn%1>^7^em|+@iC@PN#adlkGc@vnQ|eq1Afb>MvMBfKK>oBW_r)ma5`Yu?5`*@+_JEGIZ8}Zf z#Q*8-pWNp_fO`8%*Kia7EC~No@9%vq!_gT8NR96R2>y5F>b0vrz{_K2kemXg=UPvk z7#SI5G&S)6)aa#zgxx^hf!pyex>R?x7^FOmj41FLB8_Fxg=aExnRK7DKsX_XYA}+c zVd(5X<7|ze5fy%Ues;WP_}%X$T<-{E{a71G7pUU0!%e=gfzGVd6)&>P&>TdVTm|p0 zeKx8DV!2(efPILH*sPp70P70L7PVAfWnQBeRxH1J<>fhJRnGqobaP&NVQgpLm^^?s zVE1tl1EwJzyu+hFf!sq9ocIB(A|u2{u_A2^w;~Ls&;U1w3AP0#jDvKxgK=#TWg-m` z`i>FwZ5C~3XpzY#ZxD%A1X5U^%8pyb3aumgDqBJC#q=TUr>v4D~W#d$wf`$@Pks7q}68S3hVtpT&EuBb~^L+**m) z>W?<`=(X1|U8mlr8(@?liCjl?pyH0E_rWj96u(%k))n zFQpX=4;LI(Yq=mnWF&8rFDmZZfWkjDP6C=!LhiUq2#i{J>%l$AYn3ACTW~0N;It3V z6%51+3$hOoCne~5Q37f3p;3c>@6(!7ph>md>T*(YaY!9^4L*G?uh}1nWhC%q9qE^7 zsEAB_)iUYQJT9)RrJ7H!YIGfZ8@MJ1Px}RpQ2PM-I=1}p;~9{|K^py4WV*_GNH)XG< zf4uE;_k>Rwpfg9VFO^DlAcO=m{FEj`O(rR)OsG|5XN32Zg@1XDGL@||5|ldCWL1r% z<*0Q)=EQSwui<5^{ww^htIVS&UVk5#wgZ*%1M#1qf!1%=uYD0BR{Tm|kCyPL!`~D=h=IwH(h2`U{zb#OQ2*9k4i_3!lA-BNAYn%Q}2Jwt9 zryU?qO8q|(sv?(y;6-V-KO2+vu8tS~=e}@Au@8Ua3Cs4y&7Yt@I7Jvr3IT;Msq+AC z?J(i%6-=+O40ag{pm)8wmI42`25wAgS)wtT?xSMhNhS!4;|2-ToIg5%$I|J(n&DCh zruX~?@Lr6v4$-{^0lt%e@5DWSk}Yc1dyZv-j60k(I|fSRkDBF8Dr?LFO$7D;Rrj_1 zt}pdd-2B7&SP@Wd)Ikt^3~o$k3oOi*X^$4Sq(;UoBh7dRsyt|fn;K#aE=`Q||7Q&H zz_Gpyh;|-JyTGCjsh4S}W=3z{MViXIeje$R?gL%yYxd9T>!X%*#9<=7=3r9OmbnMt z)gV(&yT4#GPK8Zq@&vIgyBuKJE=5 z?NBopx+z$DXKXzQg}MJ6**1r;YsfyDAxg1DU%oULR;6ZJxFO{c_rvlWJSt+heydBG zgDUFq6is1ZGs;uoyg8u>(4$RWf4+B-)|-XffhvtwM2hBDv=6}imsIu%>o0|m+v!d~ zM%{P+^ODjDz(tj1MgCBtQy7>~S4I3q$XD|XM6_aD2zA3ho0O<|HPglBtCM|rZVau?(cUGH{@2b&=i#fQ z&DRAEh;|6Ag3bQJ=?Wep^R_9o?=ztWig#&1EptqIo_Aod;~U>9^XWs#m@#=5f1SsT zX1SleGIPfp^YEd}h8^%-rw`XZr+%}*xfBgoWwFU6KS*~3H-!2vV}nc`{wow6s0e3P zWq!c$fW|o;({YooOwZ-wleWw?8nyKdE@h5Wn&?|Glq@o^yy;1GS%`J*)sr4>U*P(J zE$6CCfhw5~r@@;i!o?}1%}iT@Q@=H7HGL>d8Z?v`ExfY?~B#-w-Nx_#=E zAiKl>oeb-jswN`-fK@H`#8%S*?1a&s4mAEAg!Xs+@JEfBVe>~=(r!YiZ7Qru*Y;Mg z`YxV2usDEqkNO}1iwZ==`;O-OVX>1vrk3 zWkGy9IKrGgs)K0|NL;ueGHrO%AEyEE_N~-*2O6CyR%z5`7z|j?27Jv~)N(W{~TOwHM{ErZR244a83}ozGyGJMwuxINede+J;Z9Ckdv*^C*A_#S?J^HDA}SG$;+C$-Ag@acw@n2+ZY-71Vab{w?hV*v^oV#GhdZk=y{|`e zPp6ihT3@&qffTI#|J^AHpoWVz>HQUBNoogN5Ejej9A~@7r$63uRbW#wJXT}zN{z3J z!2T9Q@I-lgvIoo3!*lq7>rlai5lTxotYyU9r+Lus4mbROR^xXfeT1aMrM`&6n!-foLeanKlyFMX|W8 z@dntSG>pB-=2tTD8q-R^?)IPC22P^U50&;xH8F^oN3f(d0I_0^HW$gnvCxXlDlmq7vDmm%N&h<;s@|tmo5EdX?xt##0>BvxB4sMcQ zqWRBVsLEK1*6@YnGPu<@q9U1}aflnI&bdO)7P`CTa&8odV=X{{>YYm#Nr=Bb*AZ56 zO0N1BfLyJNR5M@NnA0q0%oX%>zYI5$Wef2K=CtvTRt-{(Xo7#p#Oiq!KkHz6{e}h# z^j$v?w@$tU_ZXl&N>oc;1T9mxQL^&o@4CsOu?U**QAkkTQWxB#^Ay&?{75{Z!5U9-!n7Bj;R}D>L=d`;__yj@e%Jo6C*_?(!)-AT&WzGhg8l5(T9^DE$hp9 z6IyMYW6t;iCzB_#SasPhN|^ zcJvvyp+7a-6)P;}vkDeFDZi4+O|<&>E@QAqd{r{N&cYuOK4hZY>z#Mn zEczsBp)pNj|d@b~t64<%mY0-s8aIH^QTxkCN)^BtA$i z#QhjtXRY#Ndm0?;8^6xl9}kt(;OI6sj_T|FGtYWj(C^;*oSx^u^^PVOla#oVuiJ-Y zM;XyfiERnNTp|(A&~ds!>OrsM2--)K-FvjQpW`DZ9q`al3H$~_gv z39woJ4UV^Z7q%i#7Xv{(P0YcQKln!Y`jXP*3B5@#X6jUBORc$>jO*6N;Nb^tY!$&n zht05m#DFHzk^GnK%`X1pD5k{?nYf#0GUbmqdJT;(d!uFbU{5+=k$-3QIx#7> zw&18QU_X55e@BDNm0!q}T%QDCN=E#_BpK-=F?Nr9KNI}K+=^iT=>Kn(?HZ z?t2gM#C&qqlVM5K|3y+Oy#zsGq-ZJ=pC0Z;P#aS|W_oJ03`($|8$gTXQa&z9(b)yS zkZ62fC@2NPnEV2CtMl(5K$XItBI!`Uu!h~9TwlA;FB?jkx&fv$mD>iMs5+;Ok`I+_ zijp!OuUeap3dX7psHdOfNGuOv6z~6*BxR&Vf;2>h`@)G`kt=rPH=6uHOC{|5L6dqY zP>vxk!_+$qGaiGjD)IKLz-|S!TBfrvx%1CQC>#jUDTkW-4`yrW!aO&8PT+o^Ly!y* zNRx{+P??XJqiPIi6;f#r9YcZbyt<&nP`5RS`QJ;!8+u$4Vq_lpx9P$noSwwCG*I>X zFVuI<5&Nit69Nm6-T~NF%J+^IKl(FPPdxgBR{NF+5LHrsLEzvWV;014Mwn=C_SD%* zHxBS+zPFXx2jv5O#65eBFBgy~K|4tEE$H>U+7khry+?x4gnSGDh~iT%d@b{(DIn!Z z&lV$~L@7U!Ymg=l#I?0T?FzEJt9C_IZWe$HLZ2BUN@)R~(P%xVhDA!v_xhLK-Pfs* zf_iI~)HFJzNE+UZoSi`p_0k8wHG2S)w_hzMErq*-taezrp(KpaYZhskY_UJ+deeD` zR@4nCxh26(wBa-K`FC_t2KmfR2sUo(V3Oo_wRqviJSOOi69A1A;%_0<{yNlB76c=I zvjrq<)2D98r=Mi|}&NlV^aod7Ca!Th);Q_Rjx zoh3O-Q1eN}7v@2t`VH{-JMaVImffYlrc05e%f?=(Z$Gmg{Nmz=HVYEksMp_+CdfRq zIC$Tx8-`CId=sR6O+@3a1~x`}L!*BT9Q&b73{(Oz0MxpxUlDT10WjkKcfXuKOYB`@ Y>qN*Hpup^a1^!ciprcZ$Y!UkZ0H +class PriorityQueue{ +public: + virtual int size() = 0; + virtual bool empty() = 0; + virtual V* getMax() = 0; + virtual void insert(K key, V value) = 0; + virtual void delMax() = 0; +} +``` + +> 优先级队列的实现 + +可以有很多方法来实现上面定义的优先级队列ADT。例如我可以直接用一个最简单的向量`Vector`作为优先级队列的底层结构。调用`getMax`时,就对向量中的所有元素一一遍历,并返回其中的最大值。同理,调用`delMax`时,首先调用`getMax`找到这个最大元素,并且将它从向量中移除。很明显,这两个操作的时间复杂度都是`O(n)`。 + +我们不难找到一种更加高效的底层结构,比如在前面说过的多种平衡二叉搜索树,比如AVL树或者红黑树。根据前面的知识,无论是插入元素还是删除最大值元素,都只需要`O(logn)`的时间;而为了实现`getMax`操作,只需沿二叉树的最右侧路径不断深入,直到最后一个结点,它的时间复杂度正比与二叉树的高度,即也是`O(logn)`。 + +利用平衡搜索树的确可以做到非常高效地实现优先级队列。让我们进一步考察平衡搜索树,在平衡搜索树中,本质上维护了所有元素的一个全序关系,实际上,搜索树的中序遍历正是对应了所有元素的一个有序序列。但是应该注意到,优先级队列并不需要一个这么强的条件,它只是要求每次访问到最大元素就可以了,并不关心最大元素外的其他元素是否是按序排列的。因此,`BBST`的功能实际上远远超出了优先级队列的要求,而为了维护这些额外的信息也是需要成本的。 + +因此,或许有更为简单的底层结构,它的维护更为简单,因此上面几个基本操作的成本也要更优于`BBST`,至少在常系数的意义下。而这就是我们要详细叙述的平衡二叉堆和左式堆,其中左式堆在[这篇文章](leftist_heap.md)中做了说明。 + +## 完全二叉堆的基本概念 + +完全二叉堆的基本概念有两个关键点,即`结构性`与`堆序性`。 + +`结构性`不言而喻,完全二叉堆在结构上是一棵完全二叉树。如下图所示: + +![cb_tree](cb_tree.png) + +这意味着,可以简明地利用向量`Vector`来作为它的底层结构,因为此时父子结点之间的链接关系,可以直接通过它们的秩`Rank`来体现,而不需要像一般的树结构那样显式地给出链接。具体说来,假设根节点从`0`开始编号,则对于任意秩为`i`的节点,它的父节点的秩一定为`(i - 1) / 2`,它的左孩子的秩一定为`2i + 1`,右孩子的秩一定为`2i + 2`(如果左右孩子存在的话)。因此,可以给出下面的宏定义: + +```cpp +#define PARENT(i) ((i - 1) >> 1) +#define LEFTCHILD(i) ((i << 1) + 1) +#define RIGHTCHILD(i) ((i << 1) + 2) +``` + +而`堆序性`则是指完全二叉堆维护的内部元素的偏序关系,具体说来就是任意节点的值(或者优先级)不小于它的两个孩子节点。即 + +```cpp +CBHeap[i] >= MAX(CBHEAP[LEFTCHILD(i)], CBHEAP[RIGHTCHILD[i]]); +``` + +很明显,`堆序性`是相比于二叉搜索树的有序性弱得多的条件。在`堆序性`的前提下,只能保证沿任意一条路径,元素的值是自上而下递减的,而在完全二叉堆的左右子树之间,没有任何的大小关系。但是通过`堆序性`我们可以得到,完全二叉堆的堆顶`CBHEAP[0]`是全局的最大元素,这样,只要直接取出堆顶,就可以实现了`getMax`函数: + +```cpp +template +V* CBHeap::getMax(){ + if(empty()) return nullptr; + return _elem[0]; +} +``` + +下面重点阐述如何基于完全二叉堆实现优先级队列ADT,即实现其中的`insert`和`delMax`函数。实际上,任何数据结构的实现,都必然在于两个方面,即首先利用它的某些内部性质完成相应的功能,比如插入与删除,然后通过有限的调整保证操作之后这些性质仍然是满足的。前面的AVL树是如此,伸展树是如此,B树和红黑树都是如此,这里的完全二叉堆也是如此。 + +## 完全二叉堆的实现 + +### 插入接口的实现 + +由于完全二叉堆的底层是采用向量`Vector`来实现的,为了将一个新的元素插入到向量中,最简明最高效的策略是直接将这个元素放到向量的末尾,这个操作只需要`O(1)`的时间。但是这样操作以后,堆的`堆序性`很可能遭到破坏,因此下面主要讨论如何恢复`堆序性`。 + +应该注意到,将一个元素插入到向量的末尾后,只有可能在新插入的元素及它的父亲节点之间不满足`堆序性`,而不会影响到所有其他元素,这是因为前面讲到的,堆的左右子树之间不存在任何的次序关系。 + +如果新插入的元素和它的父节点之间的确不满足`堆序性`,即新插入的元素大于它的父亲节点,为了恢复`堆序性`,只需要将这两个元素交换即可。这样一次操作之后,虽然原有的堆序性得到满足,但是新插入的元素又有可能与它的新的父亲节点之间不满足`堆序性`。为此,我们只需要不断地重复交换操作,直到这种冲突不再发生。插入的过程如下图所示: + +![percolate_up](percolate_up.png) + +可以看到,在这种插入策略下,新插入的节点是由下而上不断攀升的,因此这种插入又被称为`上滤插入`。为了实现`上滤插入`,可以首先将`上滤`操作进行抽象,形成一个内部函数,在`insert`中调用该函数即可。具体的代码如下: + +```cpp +template +void CBHeap::percolate_up(int pos){ + entry tmp = get(pos); + while(HASPARENT(pos)){ + if(get(PARENT(pos)) >= tmp) break; + + get(pos) = get(PARENT(pos)); + pos = PARENT(pos); + } + get(pos) = tmp; +} + +template +void CBHeap::insert(entry e){ + push_back(e); + percolate_up(getSize() - 1); +} +``` + +容易证明,这种插入策略是正确的,因为每次交换都可以解决原有的`堆序性`冲突。虽然这种冲突可能在插入结点与新的父亲节点之间再次出现,但是此时插入结点的高度已经提升了一个单位,并且至多提升到树根,因此至多进行`h`次交换操作,这里的`h`为完全二叉树的高度。 + +在这里,已经可以看出完全二叉堆相对于`BBST`的优势了——对于`BBST`而言,虽然插入操作也只需要`O(logn)`的时间,但是正如我们前面也提到过的,平衡二叉树的平衡并非一种绝对平衡,而是相对的平衡,它的树高只是在渐进意义上可以达到`O(logn)`,却往往具有一个比较大的常系数。而对于完全二叉堆而言,它的树高就是严格的`logn`,因此在常系数的意义下是优于`BBST`的。 + +### 删除接口的实现 + +为了删除堆中的最大元素,只需要将向量的首元素摘除就可以了,但是接下来的问题是,如何在摘除首元素后保证`堆序性`,即找到一个新的最大元素作为首元素。 + +首先,为了摘除首元素,是不可能调用向量的`pop_front`接口的,因为这将涉及到剩下`n - 1`个元素的整体移动,时间复杂度为`O(n)`。为此,只需要仿照插入时的策略,将向量中的最后一个元素`last_elem`填补到首元素,这样就保证了堆的`结构性`,以及除了新的树根与它的两个孩子节点以外的`堆序性`。 + +为了修复树根处的`堆序性`,可以将`last_elem`与它的两个孩子节点进行比较,并且将其中的最大者(堪为父者)作为新的树根,此时树根处的`堆序性`将得到修复。但是和插入节点的情形一样,此时`堆序性`冲突有可能传递到`last_elem`的新位置处,此时只需要简明地重复上面的操作,直到这种`堆序性`冲突不再发生。删除最大元素的过程如下图: + +![percolate_down](percolate_down.png) + +可以看到,为了调整堆的`堆序性`,被放置到树根的末元素是由上至下不断下降的,因此这种删除策略也被称为`下滤删除`。我们同样可以将下滤操作进行抽象,然后在`delMax`函数中调用下滤操作来实现`delMax`函数。具体的代码如下: + +```cpp +template +int CBHeap::proper_parent(int pos){ + if (!HASLCHILD(pos)) return pos; + if (!HASRCHILD(pos)) return get(pos) >= get(LCHILD(pos)) ? pos : LCHILD(pos); + int proper = get(pos) >= get(LCHILD(pos)) ? pos : LCHILD(pos); + return get(proper) >= get(RCHILD(pos)) ? proper : RCHILD(pos); +} + +template +void CBHeap::percolate_down(int pos){ + entry tmp = get(pos); + for(int p = proper_parent(pos); p != pos; p = proper_parent(pos)){ + get(pos) = get(p); + pos = p; + get(pos) = tmp; + } +} + +template +entry CBHeap::delMax(){ + entry max = get(0); + _elem[0] = _elem[_size-- - 1]; + percolate_down(0); + return max; +} +``` + +和`上滤插入`一样,容易证明`下滤删除`策略的正确性,因为这种下滤至多只会进行`h`次,`h`是完全二叉树的树高。因此,删除最大结点的时间复杂度仍然是`O(logn)`。 diff --git a/thu_dsa/chp10/percolate_down.png b/thu_dsa/chp10/percolate_down.png new file mode 100644 index 0000000000000000000000000000000000000000..8b3ec123345b23237253f95668e42fb9cc4541ba GIT binary patch literal 50258 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

x!n@56dj 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 G1pFWJA7aD+ literal 0 HcmV?d00001 diff --git a/thu_dsa/chp10/percolate_up.png b/thu_dsa/chp10/percolate_up.png new file mode 100644 index 0000000000000000000000000000000000000000..070b8f8198305a015088880f979fc6494c30c996 GIT binary patch literal 21743 zcmd>mg;y2a6D^H^fLuU8Qo2K=OZpPh-Jx_!gM@TQgLF!VfV6arA_&r5f^=Wv!sQ*l z-+O<>b1fHACuh#=*|WzeH5GYW>}S|WNJzK}P#Fy*BortT5;F564DglDD0nvD1G1Zj zycE)xQHmY#37WO!Ye^)ex_F#hb9C@ImJ3wh4G9V2{_q!h*^1g52}vtdK}J%`+vH#g zGev90U&3XZn#ongVu-;rI;Y>&f=S$UK1%yZ(m&b4OU75{CTN8M$c1HUXpzeVuia&c zWeeGB!@e~Xv)49Mvr{T~zPo=<{qg+Jzbj)YCkM6+9~H{8)R*GD{Iv-Gb9A@NvGVO~ z;E0F-{P7RLf`AW+AO1i6kg9ih;K$0lmnrN4%NF*fH7+hHDM!V`H%QXdoEqO?qPnkt z?7_2F@q?wEtrL?#oqcn~uk6d>cOC0dW3{0_suh!c5!6E!(mL(JDcMzV6e3?HRP)rg zxr}uLPO&Est?=3h76loOcg>G@jvl28-`C*mm7XWpF+jM37v#(e}GMB;HU}pcGAU(Egdhd`(D54^%wt4kBW??XaJ|E?u7rxM1*5cPpJN$p3c`$70D25sSbx2XI`NQ#AW zQI5D*?i4+>d9chg(dIOikfoB>S(6R6eLi)U)ogVV-gwiOyE~~G2%w(kEslSc*4x>`;YDKG@wni_E!G^p)OR})H*OnH@8Zw4qQynpN^J|Sn<=5?gg;dl8I zRhHh|3BstBnHL|+K=7!TpD;1dyicFk1SyG*Wl#pf=;gfFGJbs>@67G|)P>N9%OZHw zl7!P*2orAUjmC%`Y4dNPx#sF4^-wz0k&!k~3Su#cmCkD&M`~DzOxV)wymDwGt!VI! zy3yweSiV%4)e7P+?t{43p%D+a4B;VS#B;UI6k+@Y^1P42|<0)6SW6ddI~G757*>B_2W=$|2Bkf=WKmtbKf$tSau>fC;BlaAcwl#L^MlUG8Wj z)hxt?vt~F-5-Zq=v;vFH>m`%kLZari`bhfN0-3P)7i@o_*_2rPR>MJp;2Kk9L13e= zHwbT4W8|pzBO?WOn zNqv7pU3nCE58pjP93D-w)wG|U=e<9xP%8+&iNC+X-@EQSUk);E{{=H{Nn$X;A@CvR zkKx-v|olupM&ljEMv%E@{1dgK4L zsx;#yi1D(5e_}Naij3LjOgDRbH6)>Pk2t#jV&c2Qz(&T(%|}Rg1<`af9v@JII9Ne&*tGYSw02z$aA^%h z6Ne14DgWbN7(yEs0rv4xOOo|1BX<;8X&VtY42;Yk><`Jv+3AO9k3ILDH!-Vni9fd;=e7jQpYL{4A!lmO?d=S*>zJ{ zvoXaLc>Oa$zZZUsj25*`D$p{(j<(a(o|x zPOjJHSv}3aT8@xGFgQ9abo%@81f(lIt9g>82&t(ZOPb@?Y3~RDk4-U^_&(_*a3})Q zpzz$wBYUkcLS%jbD_#ci$%A)@faDXGDd*r5&6gXg4gJ&t?qw57Gm?jWXu}a- zwuJ;@7QcDe*Ljx4T6On0Em*a+I7%dT5sP2-x{5;D5jT4l6m>CH?Y(|kj_ZtxAUF?4 zxI~0VoBisEbv!G6WkymR^ry|sS>Epnk+T?H+yq!@V1AOrV8nVh(vxcMFtH_<@Zvef zY%Q9`yu~Q2B-OQc8aJ2E(UWEBbUZX@GIXnEve7Sv;FEKY>kec#xdh|KKjI4}SC>iK ze@>-Qh?rz7Ejm5P90Kn`c`!VFveO?<5%PY%!Per{qe!`KG6ART&y)#%+qtuzw5NHK zFSpkr*`-hIh67)&YtMW!uHGDRz#02^P6f{Blk4+8Jm1Z`gODxEf}oh$0F&s$Gt(WR z68>@yyad;O8Y!%av1%txqB)-Ic!$Z`8#Xz(Hms?=!>*L4>PH(M!ln)=$D@{Q1bMO|rFudS#Qb29C#Y--&tBRbdsOvs&I)Q2 zIm~@EA7Wb^aa?Rszim%x=+j{^v14kbCZzvrHX2Wagj8zX?6h>V7xW=NWL0DF;0o2m z?|_dl5b^$mclG^Kvq8gadb?NtIB< zZ~oCuRqAqSw|P1OWEj#a=WW#Nb7pnoj|~6*cX^A|u*Nc2##A~fbbCkRRjnZiYR^PG ztN0Sz6p|U^kV3aF1Q&26F{YSo6{?m_l1ueU7z-hNJ+(bl&FJ}sFJ0GVrb<<*_uA#% z43V^=T{a?O-))cPRC*pRvUI8{@>`%bF^&PO}@&! zeY+i*_gY2^0+6!Cux*4=_AwEO=Z&iPd#ziCQ%>*;y~Y|jz86(VFR79hB&J4sInRDyG!3&{O?NWzm$o*!`n>YxLg;25qj%H+lEh zc{S!H>IMdx-l7WXF8>^SeZLvBxD=$4qA%CKOJx;R35`@d7#aAvn_-=IC){LaE3pNk zeDu{?Lp_c{$l{k{Z?5x)%TPL|*1oPhZb@29t@z#P${O_W@z3&=T%A`^V(+ii{%&nm z#E@_qD5%=mRS0_@=PN2IeqF86)XBPH`q^71`c>HFLCF8ZSIr_y4AxI6^7eirxmbk8} zuvRjL=|;62DNP z1MAR%XA9hPvNT1shhahd9S@kY8fk)xt95Hkh*9Ni*VGi?*4pI;sbCJ)ruqzBiYYn= zB$k1!iQXb7_;&ZWW)-auCGfuf3SXk`hrP&ERmdY((Ov_r^R@r$|GpST_i5@gl1}1n z1QsM}ijG2#4Lu6li=eNfB~Vw$nEDJ-E!jq2qTe7^9k_v`;s-mMcAPK7z0uQ(M*-h0 z_V=8!o6?h|EzDOF^W`4|qdBnK-Wz2<25033AV90P_QUpR3zH&s|2vU;v*1m)lPW6o zkz6rDd(=v(41HpSyrA3bXtwcp|9(F|I0N$l6BZBORlmdVy|B5xIwt4_Oic zw~Yd}Xggok%AY_Eq6wo)cDjqpi{_4;YLh_Yb}HJ_FU@jY)dL@*iP@r0XqSD@{}nWz z{Y^8qA|6HsgMLp;9&M{DDxx3S{V0==nYrs=ziWQ-E%Lh`_gpLRbc4s~B3@rexz;%( zBvxGCK(>4pXJik1(1zuGFLx?&SNR?1BSXa0-47S_?VX2)?oGdO(w^q}#C)>Z=z7Rz zrmGDts-S4RRwKXX4NqMC>YbMeYGM~Z03^^-{+~4_O0@p>kEBZwmxx9?5yn&>Ewjnz1UwR|T}0-#6*Z$21?+3+;@^}Zd6`os6}tPuymlKNu$p#j z*lpOnpqJqVv)Oc&{=7$R^rnh(f++ii_cwlMkK=!XN4DdVv*}c99{y*E%iU~29E^_^`*x?#yc3_D%SugO!4m{sQu@$lPp8lMy`F=3b0Ai;#C z_3w#varO^Cd)KZdh7H~lsW9w$zPjj5PB7^YdoW#n^kkRIF>DvDL@Fj_ zZ~&Nu^!SQGzEb2VtFZrh#By*ba&r2C<@~{at9)=FOpk*vdF)GHj740JziD3{E?w;H z{Z_xFiex@{ZeAO2T?1TbYb4{dF*T$l3%z;ZC>R0)T>Qzq|2dxXtBXg;X$O{bZ2ucE z1{_-Y)Mo&OVnU`5z=QCv3p^p%I5^tx-hIuK2<&`_xVv-prFP?mVSqJi^quww*;@H=Jl(ACCW^==SIC}+NL2~C~kJW;oh3O3Wxq16_X zN(u|bj1m5k!t&W)P95ay1%t8VrFhih?44eMzjLGIiX8^`Th}k8qQGrOxbKwcYPW;q zHUr1mQ8G4N$(mS31;Ubnb-`N4{t@LDV7-+~ZC){X+8W>h!4n!Un7&n2Mj`60Mp0(+ z99RmKB0(25ts;d06%)qapYmUTe~r^MI?TP${$eC_AV!BSkX5RZ1CeNJNx033B2SXp zffw|H`=`4FSJV9-1?~Y%E#-<mT$lp_&n^7rrGauKh? zGI9YYJ)Sp9-#qL_(s`zD>2}2SeJ^&4omM(Ino60$mcZTN|C^MR*jeTR7iLXd9&#l{ zpnm&0tNe(Q(&@rxrPF^mjKt*k@=v_sQNXNd2LyDo4)66x5!ziHukC_-ig1PGiRDSB zMq9LnPGSQ4*XWe=bedKpja_rc+7G7S6&{MG_Ii&A7R->lcO6!d?fS!CaEflE=J6+r zj@#3pb|5+3t*q(v%{&dg?ETy(ub zKNkiT-XsQI^eC(OkNWe1xTU_K@^7HQ`+!FDk4>1BIc)?eD?jgYE6X{Yk4d3|c5VFg zd5-!m7>GwFz7xEl>J~9F7yp(!{3-y}oA*OA>l>QTi4E?k{qQE0Rl9%8xZS&Mc3MqO z_8lf8lykby&Dt^O8id54;bhoRh&Fv;KaaO-rdm%tm?%!nG`s~Y8kpuHGo4Bnn(77?Gr3eVpl>RUNRg7 z5cUU|abI;QsH%Fs7x2TYjg}$e0_LA1?r#9UM0I%#tupmaVRBTS18+gyL4g^u(L-8r z*~9;6;u2a1h=j0O!v_CXb-qP=OKr`tyN3ZJl1l^1VuxHnWDi?GPz8n3n{bT?-5fXv z?%5DRgv##<*!5~(`Qhs%LcnX3*7JiMZib>0@BUyN;r4*`VK`l@GUDCdePw62`^TL@ zyav#)BJ&Se`{bDvI6+q)$#-O0()*|Ywq&&S7-o4M3>+m#7FtiFl+O!3F7hroKaTIeWt-4t7 zf9MYxP((hNB}DfCtn1X6R0GPbJQpzg7nP=WKZHxGZU2-^55{^OEjQ})5et~#0LshM zKB;A{NhyspYK8!NG|cjUw@gs)J6UHb?^-)f7{{uy;JJROD3eGMwM*cBv~2804OLR| z1JfL(rlb@hE==#W{r3!4uy>vBVa`)G7kkxXGN+o^B>bf>7n=Oxo@5n8gnTbUDH zN_8OgGN|3v;!~MjFgGMKsS0=Uf+$pYWarfByHlLjP)DM2@u)(#=1T{@sQ2-zZM4R@ z{n^&9T~)-UYJbu9^LxP4X~sO|(6~HW;hJ7n{F%n()qp$2ydxYP%$n3nz)%T289*CG zKRpuD!X@XM#!#92`WBGucV&ARnq_{KoQ(oujerHJQZ#ykKZd24NLn3|);bqm)Zr^CuZ zQCi^zLl>c?0lI*%toVcU8jJ3i_A6sT^_{5-W5b8h0W<)k|0989I|srSOqs+2uOb2; zQuJaC4Gk?Ts}eqH?D&b=*lrMp8_{;sx^9b8Z&&Md%UCC_&$b8n<>p)2X8MmZ3uCY} zg2}}^vjxq{+_$()XaiPch&snEsfmUR>4^m-4ZgmK`gFcJJ`e1>`fL(~ZJL{moI7d( zVU4_iLo<8>j_UH9GN(q50a`^nfC&~2aPjr&-^LH8^Y%6RV}Hxv0BBX|AO9<}`AL@> zEw(A}ga%igN*xYY(Wkngz|wFT0s^SSYgMVP2PDNH>isc1Y9sxTalO^+N=M|#dYA-G z-uu%ik6;O^dUV5^czF*ixT4>$prJ_EWj}JO(fCt8C0z&Y;0@_fuTQEBakkyXn?S>SdT{iwHpoi9D~~L5%6`h!u6hhCHUoB zwY=&{8&hG@-g0Fced!(H-v!j+|cOezHE0 zKwJczRb<|Ccar5qSdo>BYpm||@cEou|509H2$lxQk2d%#ZC-wPzsn`B0ZAE#5P#ME z6}Cg);+3Gt=$aYw8>8nVsVRe|f}Z=c1swuJeCp&_5LQ(f8diK&!ns*IUG}$lZM%Zi z69XrwFE^(@xdw!wdRW#?mEbIN1{A)vz&$wgyS{5@j-v zyBiNzB=uovGV33eY@$F+TGn}h^*e$*kCr*&x?IeJ#4Yl#$MbSnX*vx9>3-(j zkIEW5R1{S8XQD*8z^Uz5oX3`(BfHQEh!0{ro$WTTvUn9YzP!AF9aQ>bth(x#k+8lB zJjM*nXHb|e7p{GQ8>Px!Mv9Km^)-iF#Bg=~vmtE4;a)H?5KNyzkP)+KYs@ttg7IXZ z0xvilkB)Eb2@)vW?F|uT7ZRgv(YJ36v|4`nnQdrevAz_zHVzl0< zr@i*(K+>i^GiuX6+luMJ{BL#*m-|HDM!DCHG!JzbikDi#TR+lG{BNSWun5p+noR>8 zDfpb17c(c>V_PS>{nk4U^3cJM4#N_xuhQQ*<~CYcuh=f&#jgVZR^17TMx{rvUu{FxlMmI@B}@mn?UMw5pC8$&)Rzalg` zp(8r9f{?%B{TsCjFhFGh31j*>Ty%rAf`MW)(M+vZS@ z4eN_Vb1v%7ceyR%TB?Md!=H=`s8|`fXvK@)ool*g%R*qmyk66IdL6!vso&GNMD6;z zV*JCnn;*sZa?jX&Pk8>Rc_qN`SGLd}#b`Bsalk7HzuSxi==y6CEj?6kJiHpcXl$TU z(Mseqaw#*7PkkV)T~<`{MJ8ATl2*Lk^u*65(uN6|g6}Vm9>LG|xDawO=dp+o4Ev1| z02bA2sL)q=a$jOTs$C}`raKFx$BbV%CViZodvf)dn0DWbXqFI5y99@XQ!k2u%62U! zaKsrrz)5_rhBuY@2yvN7nt-8M*F9n%} zYxipI;DPn`NGHt?lYNj5x7#Ro-5BJlq?*gHPMuqmvj&xXNkWEpHEpS0qM&3SxRuqipa{V7>L2jyxcAD`X~c z&iuF|9+HhX&GXkaoi`O1-YRyg?5kSnZq}~ZODuOLTEfZ+>t)AlX%#9Rz6SC`&!Z;t zk6$>1Mv3rKD9+WGO4ysI0R;oQ9@!tj2HQ)NrLyT7B(oP^GUG1Z6|y_uQ{LcG&?Bs5 z0{FdWT^zH`@Kj#%%d=xSD3dv?Hx*e7L{Dq@d;d+S}S#HfTm`L7Uz-dBQs6syd2{Z1a8p+hh45t{l z&umsCUCn&hnqGAmBv1H7SOV5~-a0=zG*x)wNN!W!n$yHnE8fMDF1A#!Z!z1<5J?6_ zWy-YkeQWAt^JN157-bceCjOM$+p{ss+Gm^`9KU=YM})FYDA4N&0=^`BjpfdX2yk4k z!MmU`?fWjMKCGx`l_8yw8^|Osst9cQ!it;qzHs^LD6GcePqD)NEQ{mL7YMG$e-k*{ zZlJokuN#ZKc>c7(en!RK+BW}Ns2wirOw04+q=NNVZ3*nM?*_=7AP0^EWVyh6!K*B& z-{n&|-I~b##>y%hwFgJdcQ7bU%i_)Md}C#!jPA|;dM^bU+|QyIPiG(6MV*-U#^}ep zk4qpeiP~T$$oCB)=Q*RlU6(oq7(sbZz_;VgCk=obDtTNh_I@&b;>W)BB61Z$k z@+OBr!hDA#+|0$utDdusPu(i_XY6~8mjR(swHo?@pHTz@FQ1*Ay@BeddGTZZ4}C?7 zAR(`XpjT=a!HCd%ej!ZK-CTFymt2WJt|bTmvJa8UY0$({b9KulDJUpdSfJ_&&2$9@ zYBxI>%cC{ghiwa4X^XI*Qa*J<*EIPj7uqhoay~lpC{>T21IL29NR@{6`w=!KR?_EW7xUnY_UVLRW5sdrBHND!0+1Yljd#+rwR9GB8 zwaA6K*&My$j@PA$sS;W|gvJuyv_D(yVWAa2nkT{K>D}DB^s(U`nj}Ut>F0}H%Vsl? zRa*1p`DfTV|7KS<6o_}eUbR7d#=|OSrp^XUMD}KCNQPpv%yTzDDYM}XI-3EH>q5Xm zV)*7yL`IO1!kTDjKemnAkDdw-^8S_7Xnl7@H;2ted_0Io12@n$O@56=rzKD!_BBkcbXYa3&$-lmNNGy%PkKe9I+(LQX`75 zUr!|wX~m6*jTfT3u^i;#J}?x9F~I{Yu**TRyeisM05?cMLMy>X6`#NEldJkNovjL{!}7DZ=wb_LbT#+tV#vWqJ*?TtxW`Hz(G_|@)3GTZDHG8Im4!W5gs z?;IH~-bR1MT^o__%~r0DZm{ZOT0c@601hmdNoMVDuHQB}yo3!8U&Z?q5c^PU*elxC z>nu^tJG8+>kykhx;hyQOqQ&*IFS>$5e1>Pe&IvbMISXeh_&w{hfXj&dRdDDNz@^0>5||j0|Blf6Od%VNAYzhDcHXCf$!_Tvub#!)5y-nja}O15Kqx%AJKU@H22m!!}(BHIa*Mow<~?lw&FYsQaFsI znbZBu1M!U(T7T*etYm%v#kn$4=S07M=MSi$^%fW2Y=pC_oSGPRlQy)O^mXpqB`}{7$w<6B`a+-&fW7@2w&_n6H%BlDzl_lus5Bp1ihGm@q2V zVH~U{!F|pFXXF>v&i+5w9^^UISSif0Bm(-q>U3LYS0twId8%R$)qK8o;a5Os-|F2g zMJ@jO@ykdXc5+pFc@{5$(4)Y2ViYssC9&+s@w{(t-UAHt10&>S^b40$z-fsSaY#f# zSj23%R1!Na3BTB5^0aCOw9z-u92X#aEVWe}=h_$2dMG9HyZ``VR9N}+vg`itPoT)T zQYJaEN>X&2&Eo5a-9J|95=kWQkg)wa-38(j!8Bd2OvLOPRjJzUer3jW^p(~Q$5~^; zZ{h2t+-5UL?YT#tHD+&_-Ou6Q+|ki@ON=wK=+Vvl-Qa&QzPgfr`?cXJoDNYBQ!0>BrY zlPyI{j?n!hc*9(cNG`Y6Blz�?8qr%HpHUDC$v^)PTSw9?9sW!NCmsvajv%!?s+@ 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 c_KyQt@WnOkd!i+8e5*NJ>#DIKgo52T>t<8 literal 0 HcmV?d00001