From fb98fd1fe905f8327da24ed91c6b8af73c3e63b0 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:17:58 +0800 Subject: [PATCH] =?UTF-8?q?Update=2010.2=20=E7=9F=A9=E5=BD=A2=E8=A6=86?= =?UTF-8?q?=E7=9B=96.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新矩形覆盖递推思路的文字说明,补充最左侧放置方式的推导细节,重新绘制配图 rect-cover-n1.png。 --- notes/10.2 矩形覆盖.md | 2 +- notes/pics/rect-cover-n1.png | Bin 10254 -> 10816 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/notes/10.2 矩形覆盖.md b/notes/10.2 矩形覆盖.md index 7d745736..00e02449 100644 --- a/notes/10.2 矩形覆盖.md +++ b/notes/10.2 矩形覆盖.md @@ -16,7 +16,7 @@

-要覆盖 2\*n 的大矩形,可以先覆盖 2\*1 的矩形,再覆盖 2\*(n-1) 的矩形;或者先覆盖 2\*2 的矩形,再覆盖 2\*(n-2) 的矩形。而覆盖 2\*(n-1) 和 2\*(n-2) 的矩形可以看成子问题。该问题的递推公式如下: +要覆盖 2\*n 的大矩形,看最左边一列怎么放:竖着放一块,占满第一列,剩下 2\*(n-1) 的矩形;横着放一块,它下面只能再横着放一块,两块占满前两列,剩下 2\*(n-2) 的矩形。两种放法互不重复,而覆盖 2\*(n-1) 和 2\*(n-2) 的矩形可以看成子问题。该问题的递推公式如下:

diff --git a/notes/pics/rect-cover-n1.png b/notes/pics/rect-cover-n1.png index 021a58877e7ded8f73adf46a87776f4eae3b9797..d7db3f9185c0459d65a0cc232ff37f2ff2d5506d 100644 GIT binary patch literal 10816 zcmW-n1y~ea7sq7*S-QJnk(64bLvR72*0t)IbhJdf zy68i~A2#rwD1`t${QMavN<2wu_}kZSKPoZ#Nxy|XM`H@tz#?Ghc}J*cOu)$S8pJ+} zipMDJ^BjYJr-M2G}X z9kOi=A->31A`FO zx6g!y3HmMe#=H}nXk-9~cgmPcOD|)$iA*#Ga_Xepyp>i8)ibu2{t`)WzHGImPZF#C zQ}z-&hs)pg3t+pdo*d2S8eWXt+f@JWmJwx~0=8i9VGwqOeWfj($m^ZhPm^GG3%|26 z8gd0n1@-=S8BQJkKX%%h7bs>jnutKySQwM|`y!Ll^~!&-LeV4oux5jjThdH5<{1<$ zF;~L+33lEXkve+_al(@!U(n_vC8nL>7O`Dg$|Z`$>R>JcbvWsK{{~a}@lXUA7;zGV zCjCsJkV&4PECG+ibMJurBlQdWVOpyM!h>@{LhvM$G{oSbvn50SNV+b&kd%-oJhb1) z3TKih0FeSA#9p&cOhtZMJqzx>{h6b4Qe)QFt0buvcv0A5tMM2(NEy2=ix|vdqIXJx zsN05K6OHl-ElfOQ7aCwmAKclJNjEfROzzjYk!*cS0&l$4_gJulBaSs?{e2@qLO zgpCmFTVYR@=%sR2#h~|sGfUsE?G_I9UepOL{T3rH!-P?=lTHsv2_r1nytg{?xW4_$9gM_-JePJ@vKFUZ zbxQ1x?eCITllt=S?frQxSx`}j(`?n%1U&Ys$__pL72d=`>ZecBA6XDZ&03lKDJwU#EhDKioK@o7$VPJ={NBLz~! zfkTCaAAEvr|JE>S^5ysv67UO5SWB({fWWOLd&$u+!=;#jQkJaXWN$bd+ew4+C|-RI?JbQJ05SH2B4M z`ek~(aZk;sMrpk|!`9FBfuf3LqF%+BXmUn6`MHPV{`usQMSL%C-lVw8WUsp>DwcjF z^_0}5;oCrVv@(E2<@)!xh9HEsea@H~qaJ~S`0PzC+lm#OrFBt}^$ zzgRe6?~Ao@k(GGjty=WCt9$B8g22#e4U+v6iWsKRLuwUvy$CBjPwP1AG|#$(AJ-rb zQ=>GbKifuF=gfdCCknsLn%QfnO6WZy6Aewq#B#v^l&G3b>`)(FmS6!V>{&;(PYu4w z9hX36%$)eQNjMv$dMu$?JSP~Ao)Bd#J~ZJqoGODcfyhk%jhUv%lAX@Q!W7>7&U>Yf zHYIxn`(+{7Tr5GhyBS1i-uD!z!*$)E7@pp zm~(6e^Ugv1hkl1VZy*_-)w*5<&mtlA1 zIEV$WJ>l$QL3n-?w+33jGrYD1me~A#BaCrfpw!xVLj5=T|r$gXLhhU`j;(5i#L8UaqH{3HbtP+J=Bi z5uGV_hRsELA>lOM!zBJ5|CigledO&B$V{ASJMRl`cXt+13F4srcNGMxz$4J2I~sXH zG%DkIqqQ_>(urN!oT zwPSZmC6U0tamLI2eT=P87VYG*C)A=FbyKxTV1jAh9X%p}g!%--Cj_tu4dHx*Sl7OPsmbh7C$ z5C*jprFJU}>^W?r(z?2@^IpW{h}cO?`yxbg#zFzKnBzW@w(G&yRCJP6WbY6G(k-?A zx_}bXlF^a>XYFj5LArj9jRF^vnU7b&PIKGIA(BSKDQ#f|DyY=MpsrY|5HGayO)VX_B;L)2G$P-Hjit7!^9k@x<{UGbHS z81e^1@l$5*8}E$hZ^=xh5^Bkfg5C?FIe9ki^k6su39)a?tKVjM!ewal@(gB2)D;cV zC)fDd2|(D~UoMniT~LGHxA1jt{9){w*^$9E{3Eqk=PMoMNu}qU9z9Qr&BgZPk=$2x z7Es;LL3Z3W%eI3I+2CnB@kq|t@E!~L%)V*vA}}>9`fc92U)5PxL-&H=^tA;0DF7PU zpAnD@&L?4Hjfw=RFfx^?w8bva3ChGT&F0z!fK|70+I@llho+6jsn<5mE`FLcfF!Y) zr7b^9gKfby2;-e^W0#}~WQOXemuZ^gKj)yl+4T~;jy^g-UE))oz2H5&!+KqsRcLw3ZRk!5U&qf8C$n<(V5<(L2}kw1YlUd z3ifbwg;WY$o^)^5z1qExRL!AJ`8bJ00Z-lU zX-vIRAhZs#rBH|brXqxhv#r`J$+E4nxYJAB_50o=9dC$2%`!ux6*3p;pN|~)ZF$1I z26MJ&6pFUN}d=u0#2!PqLe7CS-_j`8R%@GRJzq&^# zB+;XMtD$yGOjv^i8MwC3$Z?M82t!9`eMSv$2*w+6{G~R0@TDl#qz`#iQ$A}}nxk|y z=&6s=R%>&-)n(K|@7(d(zH|2;y#9yivMTcy>F1gt@b34trOtt1+EKl$*%8G4{erjH zK(tKTQXW<;RUsIBXCIP-N?T$sp!5NcSE@hfW32 zjJU_M((|K%y%PBHkwx4XIXFp%zEf-+6#|-ZwzXwYc7G5vYpjtxe}X_ct0e)N@T=C& zzy)c7LQ&Q)b?>QMGe=F%#p`4HZ>%XIO)TlMmA6*3K1j>WRtitTlJZ5WoKSy8) zG(7-9dQOZ`gtIh^GaX?58lVmB>_4W{p|r*O*fw? z*2CCG8d%ztvCwwh)j3!Dq)nO|Gw+PE8Njd2gVD?_i=3vlUu2=z3U-Uj_j71pEruE> zeDI*vTc?a|&_#)I1fjIN#z$RWZ|F%=+;_fC%~joc1@~U(f8JbPCS`Oi*MuD61ApC!qnySPC!+$MX z@i_v)h8Lv9muAuEb*yn8Lzs3@#uoIm^?`9ZBdE@uH{{{2kn%byKf+^>7e=ZA78i?>@tDXwnn+R}cgd-}l`X^isN`&A=ulTTFEC3di#uuxOh_ z)`u3#=lR3-GZ71IC9ZgN#m1@hgF6zw9`<2!hcFim64vUOR%uyN9>e~tBd%wuddLsg zVZEGq8sR-V?gFmC)73IMmD-Luw8Nlj#ngJokq9N^X}bHtkH1{@4X_~&ZSjKs?Gv~`jcKA*@U3}@ad zc~V5yq~=2~t5UwTqDg;r^C+`C#wZITow|+5Y-<)@imxFhl-`N^3{{wU7JBhZO}AnD zn!3Zh%*n{~6b4Ji?Lb=~-5w#|yWYpbs^C+puaeFXkE(o07D!&J(yh&Lrs2^i>~Z%l zjYmKaLXcF_dx^ElMqzsF$$cEW#bj4?-qf}B!jwglYf*Kkh7&`KaMYb<6o}bh-8l|{ z6H0uT$&`LfxDYo-5B8pv_~%c2RG~DRU8nrCcXcpeL{nPf2sU(#xb;FVH?l;6re!bhYxkq?1LRe$I*&*8|W`T}>BqX4wUj&{0+jtx8BBD6EKD0wRLr~ydojs zjnj>DwpoA0kNgd?Kf6b~&0@IpV(6K%3`Lif&W0VFW)@Fp)%Z z(KyJb+OU(yrY?Ln{eL-vr`Z#MuXMYtFc*t(bh-;|p%f{XxUDA#p0O|m-M=d~ku#@k z!8V^>+1Csc$kfFSJj=@Pkq%FgNrp|6liKZyh*LaQG5|Rhet_yCjWD}v*f>|t9ggRn$Cyx zzXiQD7y;BIY6(%pPB*k@`aIOH;>V=RLCRJ>aYfYp%`S15;!lJ*d{$ssOl4VQt_RHr z!J=RpzfIZ|#(gPlSc{FDeqJW!Om`kc&-v6j>Tyt3j}#VbwZ&Pmo^T-(AXHYh!uh+r ztF$KIObvoO&(D$i1i{p8u!tefrR;wHDt&_0p1_^Pst39$@TlojoB9>w)DSF=e8sY4 z8BgkLkbZ_`)t!FNY7d*B+VG%=Y}ate{>qz6`md4fIVIYQF_~%pg@_)TzvsI%D$Eo7 zxm*f7&4qPhkq~GdWjqSp=QMp+SXU8UdPb+U?K_3AiWZGo3gqo3G=VUI0H{g`yLQBd z-N`_i0Q1wIMTRDz1(Q?G0)>k_)BMU^Wf6sE7ufvFA@8k*$DKc;+2pE-CyF}1$u3)3 zjn^kP0US|4C7E+S-l0;P$)PltrI<}79;FMbV431W#Pz$h@5CP#|BJ?Cpu<}4HTCuA zUEx@!4iirX06Hl2N!HpCBe)fQOdc;)Rdruqk@-2TGK$E{!gO+$70Qyie@|<3q#f22 z_vsCt31CEW1)Hb(Kuv>^|Wg&tT2FuWn;B<$rCXIVZi+T+-yfW)2(zz zm7K3TOm4E?GqL_7-}7}ewhR6*=uIrVkxk}q{$Ek&8N~4jbNdUD2T9cjHPH?dtw$;5 z6F5pGQKtB@6Cy`>aooe~g{FiOOVq973IAecr@7Qot?mB=iR1=w@n(c<^%rUp)!|_s zc<4iVW>iS_XQ^oQP75r;C8pnKywTM4Z0bMFy+Fp13I6gWY({{nt!i2{NWT2*_fuXp z6>0Ce(l>Vu`jnV;ki?FkiKpvzKtN7tAaMqF{l(8F4-Lj`&c&1RY!*}{d1IC5rCU!gDd_IVArNq}65Juuw{mct@I+q zzN#G6tf!Kl4)dg(0XBEB+%IY{i_aM_RP>V6wNaz&++N1VC+%*JTJbe>-sZofaU$;f z1)TYG?LyslL@N~-=y(Gw4a!<0_TwZ^drqF=rr+1RrzGq%AQnkyZ4A9+$B-r%cZZdDFgB>< zY4Som9+UBc22GmQQ?G2IG*ViXtR5lX7ag^Isy<Ic4iPLwnHhU=XdgmvjRjP;Q4`j_a4TAVX(sY` zUjvfgV))n5lMjxAtQZd2PE)WH^!Q~At z>;*vmvvv=?tOm_!u0;{RGu(x%HK{ToY)H(lHU{4aT@S|E!Wa=`)pJQ@%6@Tml#CqG z2j%J%G;tJE`A)|datwtX0#Ih}uj|^p_}x}u8`DXo;J-xgh^fjT8YUL~O6~St?Iq3% zI696d$48cLQ4WAl_G3qNkorz~?dg*hkOW#?wrelz<0QxZh<;D?R`<)s%SNp&4xWq( z9k0?IXV%X$g3vb`q2#NK2m36k!aHoS1Vq?ybd}|TZ?in+&XOPIe-FhTe=Z4c<;{;c z{INwCJviJR27bUcB*{KAl;U^{-U1P2YF&tr#Xq3fmL>2>6GV^nz0cO;4%-}!dm)_k z%55dP^FxN^n2+Va!@;@5F1wbmq|KgaIdNRhaJA@HgGO!cT=QVvW(^DSz_y4v-ivg3 zLhGLfy!gG%1nrm#=!tOuVKKSaL;PUTi)F@z7*Rb&F#6a^gUpOW4kg;0`;~$#^rOog zpfHldPWRIadR9CfL8jhiPwJN+bw_!3_?>UuF~>s@I9{}Fo9)WL!ZbHusKWrniPHcL z=`JG^NcFkWZ*{4`3?0!NPz(SERNj%=1a8Y?_$8J&8R;MiXhzr8v>bxW^3h+KlU4 zg0JTF@M(nKO}$#IF>0&x-u%~r%olUt8B!5ipIclM8f4w{+fBGX?&5h;?J(~BRhA>@ zw$UAM<#-!H0`jfDoj24=h$(lt8zNQ{zdI;-CvODX5>5=c8Ki&wcM`%{%vs;;s3BK;{@88Gn<0^{O7X; zkEzkeeNT^}p`jxGAX-{l*K3~B-%I3U?BBh6XK!C|7P5XZE%lTX@=)@7YV+}L+r!<8 zQ#~mNJ9O35F7u!Dk||oh`rZfKfsG!Z;w!Y_x2xB8H}4j>OHJPRG34JLvo@DiIT*E& zYd10>1W|cgP z$#LzhG+-L!%KTY2fc{zRxZP^DOvP!jF7MW@YbTcTG;9nCzv+D%<_SJ~Lw~0p67qy2 z*Ne5<=Js^#+m{o9{4P&F9Oo8%k>huk=-a*9`KNC8_xJmaYsu-0Y|Cu`eB(+qE5)zo zv|w|an@=~pNm_MmjaH+H(;<%+1$T4h6(|aYfvqBDyHiGeNx_#TO}DGAy|+Kj9?vsi z+Va8G#@r$2p9;iJ7UC#*g@wWN!U`#U|Bl>XL$}Blr$wNRr__69G;S=qkcYFEMy-KA zp#{H=j%cZ)(!me^uDY3Zda=)QYK@E7>2{8&Uf<2t8tNH|^3?U-{jRR> z&5mw$S$z)r&l!8K7L4{=!J*huMs7V{Bq_^wO+lgohbugnB?PG60*;@(R!>*C8yPG zQ&L=9e6T6LVtMH=H|msA(+=Nsovp6 z&wVHc-OZR<@OeKf{==c2)ZoeEHh#!bZ;)8jY~SNmeapgV5`8%~WUxb{S@w@eS7QG~ zhhXuy3X?0|oPGR}%>9XsS#gdD#Dy*vtgme|7+$Km+ylRk#HH>%Ppf}8ke9mKxbF2` zw#gv;4xJXin1oKBB9m=Pu)i5F)Am=Qba>;cFk3MDq(GL=Snc%QbwA$yF=};QZnT;B zQ{N{kwRu+CwsH5jtxp98?A{iVI!{jOzV12scUdl#z$10PJng#PNh)j3v;uhdLakBX zX#@|icM029CVeIuP`zelf5y)i>M#KObZKsSlRj7En$S|v(LLTR_62`Wa#`>6p2~iO z8(eQ!5JXn@3$W00KTQuY*ms;PPnQJ@>OXZ|g3e1H@qhJQkAe53>I2pw!tttf{PinqYIE+#GKk7mWE=)crk* z(2$z56Yq;Dp{KK?kfFHS+r_kr{l~}0>7ZlJmQYl}b&rXcZEGGA5j)B7lOFQzx|4hL z?Ok)+Ag(nm?o8Cs?U!#1F#!jwjfn0M zVkdz>uW!!IzVXzi3eB?7a6;?pKBWx4dN@J2T7jCp_enrPq~>lEzN>MB`J4f8IPwTS z<@wJ+^=ji`N<%R;mumsThNor{FYMWf0rzwb7+4Rh;U?eA^~`KiZk+Qmw2r0QymL;AqD~BTZo|zEa&w7j0xV zu{83my=9@yfeH;}hk#;(7l(y}P~D^|8>nYlr@L{!O@Z{q(ssSro3WKOcOLi}0H>ij z#~Pt%pVhBJHF-6LhGqK!KX41x4Zga1E(0=1XUvYU>h}JldrF!9Vd9geHxg~Qm#>@Z zlo;)AkW`|T^YO=hQIMlD2U{%DA!l87$jC5fB8h8`fqDCAZsAUmpz!>fJIf)dKtAdl z>zuZ+2KuiXk;e9tV(C;r4UOlSwHPvO+H(pdUNb|=rIrmDWUr$ z@`fyss$0=g=}07Hep8#(_91B-0+pzvEn}S7q0PNh)1R+kk0kz_Qzbh?K$C8rRwzQ3 zr)eBHx%f&wrh89nV{Z?l?J+He5C1utrC91wv=p4q{$3=g=Io1c-bpVJINPIOCW?C0 zokW(m4?PQ>m75!Q+<}ynlXDEoEGjDcFZ;~!iky64S4jE({d?O+fYb8@_R?ZDDoRR` z;0IyJberXyo123J`$xBt%@KDe$+Zeaj-sXFPMx~E!Va3BWp6LH!}?{v z872T*d^`?5zM85kw_!6_OBAT4&g+@2x49Lx_>85n1O)}PB;^3XG{ZDtOhkx}Poq+s zjK@@&oZxb`!?Rq|(aUR2WN~q^E$II5Y`L1eMl+DRBe2QS6@jTxlil>=zxyOQ3CCKK zW_v?L4c4-ln_Zg9o2Hl?Eu7*u9Wx_o+&5+?(A@{@SZ zYwdhEZ>BH)o@_pCK0RJXQo9QK94-xfz;Nr>Pahi_b6IT#vQUjNH$E;d@WK38gWPMJe?8N1kR3-c#G&%nU7i|$gT3`<@7 zJ4vAZzUf?%4@o^YJ8|V|1(H68`W?oRD5KB`5k2kUdN-h#^eM$eMEtkr*>_ zW;@jZNXIOn_#R1wsznhAHs6!+rB*GFOnAD^&!?*~{*V-VyPTX%_;GJoKwXVxryZi1)0+2H(XlT06MyQiZsv5&#&3s^*I;z@qSI0oa2tc5Mu25PT8P)Gb%d1BDj(Jfq|d zY;0>Ie+2dJMi?L9@h}(Bk~4qe8kdJj6PO1Y8_IWKD5T)v;?^3qx&Hc5IxTU%c5@?q zcnS~>(0#y76Zi%P2di~!!%odNI!u6k47hJpR1`3je&0(fs`vB&IsVwB&DEsCSdMcJ z@CG~@VO~*DQGR|+?hHT)0Ahe;c;G!6;0jR@k&eLIbB~Ui)D-}+4-O81RQ=INGVtaU z;Q17rWdNdH2@19bT>WNIO5a+gl?d;OYfD;_qST*uYG}xKcZw@0+%f6Duq0ATJFC#nyc*AgD@?pn(&g zeHvu!=Twe6{>8P+U?i^7LXE{sRVKq0$NB#L*N@4Bk=wx061Hsr(>LDv)G;fsgBzAb zqI?OC7?L9V^o7@SmfGAlkJr20x{g{674@A8g71C-9r<6W4jzXNcYols%`)?G_o) z5{toBPR_O(F7g>P`Eh=XpQyt+6JRdYx-_FSO31~5k6btTD(3yWyV2eTgiM?CqXRMF zT_DHy3h7s$sN18u=VP#Xx4P`Va6edVyczQv{?dqOXwaJ}ytSF;<^jbtzAP{M^&@tr zWwD7@A*BlMglmGq3#=A-ud)A#Np+ddNRIL2E94#2%rwOF@$3mjoRXlOhi7gbcqR0i Mf~+d6PR2a!e;j_eYybcN literal 10254 zcmW++bzD?k69%L~x>HKJ5s8&tYNZ>b8|iL%K{};FN{|!~kcK6sqSsZ4DqQ{XglDMOf_NH4j)0&d*ae!i%+tD$@8p3`v3bu;x2|!I? zcBL6~bwLfI!ZiBEW73CV=9Ld;K;_3D>kXm*jMCFUAfuS_O`C(X*x;(*9MlYh6p9lo zafKEREL(CjE*GiDQ*a&TQAVG06|&n@#*XJ)OQ>jpJ08UJA|WLyEn}N9IEMW?sxw02 z>Ky3^cDw^4Y)qa^KuFdB!uP&TZK}>@b0jt)1p?TPvUQV?Y{P&qiD(#VU{1oezZHv_o8}_%SABR5c@H! zonzb{GxPwZbf7<-Kq$Sr#cZ7$VwXEjj50r`mNbf8&xIo0n`~{6VXfHO>k&ylb}Xbs z^qnpZ!t%TEw+^uo3`8>H)naKUu|=sQ)G%rxywGD?x5 z4be%EjYI2HyuwE(%ZZd5V(H+SW(>O%)akzy2H&26qVo6#x)Jgkvy8OsZN_J#1{phk ziMhyw%yN$n%t~hBQ`a&R2KjJ`W{V(REB!2JHPf;6a(_u^6Q5oDAcIHNqwSP3 z@hsW#=5C=JNvBEO;}_a@4o=@!`B#T^n>8z5NtZOrx8YYvs_u!y&3s!|)m~-kN|b0; z)T&`zCzQRBva$LpwNBPy+15{r@3$Qx325XY&(o&O(eK9PqoGb6n!w*8nHy&@L>P$m zWIU1~?1&?rVv65&j1mTM!Ws3ph3ph8(q(Di%#+|NI7SDLQO|Tg&ntu zoZ+ZpqlWlrr-~jo5MG=u#=vHb$bp;(a^v~to4z)-E5@f^>F;MqTCK z;*ym5x~sL`k~dfuz6bBPXCHwz(k2Y42l>M`yt%9v3><|bZpO;N^S?-Mmegy2kG~r!c8hG$>_!a3pC7k6$Z=l@)vHVwF2~`a} z=A~Pa9;E!Tm&Ren59uyRcGa8gzQC3-I>!8^ZI;4(6g+cS1tN^gF;m(zlMn$rvp_uKUG z(w!|4=XSbRp}2ycLiXn%_>`6pS%1VeN+>~#9FvLXIm2=PI`iEGpE|n&^D6^qVfL%T zMXk%>rA7za!*>p_D(OKs-ljjzF7(qUb}0A^M&66oFCT(zu21q-uQ5Z>5*peFb~qs~ z$vIPfWm(HM(U_O9K7jTTwkUq(C>ofFD$BzAU)GW?LEZS{3r_N5;ozLW*zS(?(b2hbY}XSDDuN+tU+1`VW3(zRt_0JW@xI z3|hb0@8dq)Z?o9hjAZ@pNaEm>mCJx?(U0Pw0$e*W3oyOxCgmjKJv9!!k4z+ItQt7B3tg%gNxi&TYebSe}0ad&NW#Tl8_h= z5cOM@w(akxp{1puWi9eEEyCcsJKW?|2Lp{Bz)I$~1h&U8FGeAL|r^HKr zaHeff8-~BeSv{6bla70hU9KS}OriT}J{~`wUuJ!&8qsRVt%1l#i6BTLi9($vaa$2m zsczKA*X2l;!2~9#YGII?IZkvGH8NtaC0}IVR7xz=t}6RvM2egAGCJ|T?lEC!9NA#QH$ zXP+hXGc5M^jzK<4k9a{GAsLSHbj8eHsGZ`x+g9v|pe2)&V}8kYF0NxVAVFi4?+1@o zq%KZik%PC5K_YYefsC0BHK2-S6M^S7B~RyoZr9m-OX4+`0-{oG92-M?3Zqz1$&|e! zbPCNJ<4+Y8QP`_V(K=)xi;BWO<8Zj`D!zW_8k_0cF+i9&5O?5^D3f3?9*cVT4a_l_ z{{S=|!7Yp|j8-=0UZk<@#`=ag^?9Zi}{v~S2l(d zprB#*3|N1y0Uja71g2!K*TA~cWsj)UO?Kxg`^;ILH_{+LEB=}t_4R&4sjkW!&T7I% z^pm>L7@1d^!*;T;_7%9QLvb}|C!#xy>^xT%vtteI6Gl&~RA?BhWg1L=11EiJVi@c%>J&Ylbxgs%1Q(7mKt9h|6)Y5yt4+UA917YOAx}cEs(P4_`p; z9r=xh^3ju@Mi0l~q?m2mFp2}!%H(sw5RG0T4 zn&NJqxKZGK`OH{&~oslufq)aYa7Xo zgMGzp3}AC}a$uzt#7D~%Ra$9Uo_zk-u>j8f$;Futscq)_#Sku%nCIb?<~_xI1_tvW zW9Z@fZy?swcAl_4wp*q{SVjaEkiJ!{gW!I6&5Hr}KKN_&N@V_(MNxi;Qlg0 z2TR;sTh15!VTSLj{sC!})D6Mj0V>OG{gq~s#O1m*b6d`2q&V!}gIw9dk!-1xcjHiP zjv*+Cx=I42Ys|*thGvi9f8AU*lduwq`1zA^hIMVj07Y$P^rnbv3aag}0@tlA^4tl!6jO5nhnCf;xbbFx8GInf16qDEvI?9HcO$=bT?i*0$SvEgB&Oi6FQ-UZs}N zhx)(a;+rm7$q;A#k)4nHOnF2}yu8Sfj*ZDhuA!b<=VjY)lUB5@vEQFQW4Hw?vB&Ne z*VE!?qWoyz-@92OGGypZA|WH{wcyh#52fvS_G$2HrUyF7Ly zW16?0E{@!}a85Q^!)uZX0#Ncs8uq|^Y}lp8TG!8nH(hMcBr(_lILmRpdHpnn+Xe8f zDm_FE+gMo|hrb_leZ5egGO73kgx!Ig6W7i3Tl_8#l@aeRA}mJieCkj$negtJ7fIG` zNbxti1E**zRo8~pXYod=J=B)4>JL$V-Q!r3RM|OOlg%P|6JseT$ZwP~C-m$2aU(S= zjd*-isSBLfw+K+>H#;>e{%d9w;38;9K-(qpB$4xF98bt_tNg&A_{#2+7~iy>4kPt! za@!=&M8`;@FvQ*f!CJUmu0GWNap_L-#L1|Xpd*vyKPh3s1|=7Qzo`&*OU7}&dH-YYX&gKBLFTv_X+>@&+!dtnUu-MFI%5x9nGog(+AP;dM1z}b-OhNqMj@p_Q;b=2u zJPo_%?yNdrQ$Fa-sOEvr^(R8T79f<=5$hAL>y!&Wmyu@L8d6jD|1#s~lc^7nL!_F?ZZG4;#8`g4Fr7UhdU8Ai2|lN~f6?kRidhFu zDJZfnpymDo44t{0g^JcY5=;vTFwTUzH_p&hoy%^PU`u9YpekjO8z-=VTtey!5q+UI4# z-Q|^RnUq$2+(c3;iA(U9~~f@qWj0jxY5!qqyzlQ*0^rqeTt(8;|?w#*T^ zPor@Jr6L3KQzn0Q-upkDEYG_v2VJb6p7s!@&nU_BNcOI+vxf`P3%Wp=&PYJ^vW6E> zo7Co!-OPJ(Pvb6c4bhMDwrt^>uPfDi@KTkTRM2)5yB-@erwyOh6HxQXwCg30Dr(ueqe!4s@coeu@*4iD-KsTBff&*a@n;;zYYJdNiajDH;gl1 zy8mFtiHHb5UFzrBnFNdVa9pTn!;e>+5fe0nZs{VaQe3rW!vALn#zlq3ikZlrf^x%l zpCsJA09m{|;%d=gBsOYgcg%ouvT-4YlK=o}j4+iH)J}diaD76AG|#ZK;xf7tt^TB@ zv*1!?x%%bUd9Ie$p&*XeKTtP?qGt8_HQN+BJKj$MeJSoQ9`d2hf906#`u?U^eMRGz zo9C!7Cvj)MGnsvg8m}es{kN)IPIf9Y1EUakaS--bUPmrSI~$d;RF(ECRI*Xk!jU#e zIj$&tQ)J*k-;tGtk)gJ5ZVodVlTKhDMxEYbC`6Pk2C&Y%_ZNRy8yfjK+(l%}kQ+OP z&E43^sI7iG4BrC0joph1^LUJ3PKjF-X=F@XdHP}AOZxjz_}yoZ8cX7F{UAQQ0#g~Y z9;4vTb-KtSLI2p6hSVajIeAA0zPUxsq*A|D6O@ljznQ0f6@SZ?{D)B;-mP7BMU<#- z;r1Yk>ohA6PpYAXP2%XHgctS*jKkv+dkDBh)82W)crh|_6#}E?wpR8y%PD$JZU*E#@}nCO*6ph~KExGf_FC?? z62|mPb$v^-VmnuMJi>~~J~p8gjA~8R$FL`Uxz;;p9)j*p;Esc)Jy6s? z_bclpmrtI-bsIM`)mc*F*vc1wa%PU)kikzkP*_==9MnZ2Y!5K8iPCJ}whR8BF1nZ!_Y-~E+P6Hx_e zEv)!STxc_hj71x7{Rh)E_!Hi~L}7~f?}Aj#*Yj*98P2lfY)tav#fz@TBbTmg=!r^4n$Mr0 z>pY(|_98rTL}1(zXBDOPds^S34W4ue?Y#*2%iELt)MZ`Vs;iSfA&B*!(9qBq7Pk5dWnd$!Dzip=j)IXqC zOX-|?!#mmjgCw4}lW&KE672FS&kVx5wJx*yBV*%{2(1kwYpuu<5KKv+vrqI7|3x3S z!t-Afim1$-1j5Bb9=7OX_F_3}TKGcet3OJTSehwWfAgqhSljhk>)A$zl&rSI4?G(xcs#V7cz3-*@~ot%H{aZO$sPFc3y1e`sqy>GoC1B&#ZIPa%^fSg#LcUM zwR-Cj=k}u})wNMP*4FaP;kLj@Snfg@7i#B?CKnAQ)xi|(7wod-4T89c^f)%5%l62XJCJ~R@6S`msKpbyf0xzT(I|9)CZb+jTjjk@w8aXYz{#b`4|6q~w8bCbC`n3Y2S-~#pHXzWc+ zPJS0~wZ8Rue@#3!o+myyFn|zWzf1zm4p44b3@ZUAQ1Hdvk6;~kukGK2AO|r-qMHha zU`mV2E52D{zwl31l89NaTf`_Qw!^OiQTOfNFYrN9VAF?9@@D7Ny9LW6r$3#vryCfO zH$BuY9d78sL%`CPISw@jQ2)z_Ki;=HnOiSj-ywd^b}-r1A2$x~8TEKWI-jRrtaf32-<>=ufVDV73%EH^c-`{?GH1 zPpb_Am%Q0(W#R6$swPa2P^WhJiQQ-376?lR&mC^tewitM`5%tz(?O`e@xS_1f z*34{u`Oni;BCR-GAfo4kbF1}KksSA#!kZsWLhLmiXTzL7I#QyWoR-m1y6#s`I&XKs z?0A#XhjAVK{+aqUUbN*8%|T zfGriA0C|LRiVFz1KR;fZUNpDC^8=RJT<^a8c|fOM33-0x)T^}bJL9>q5j~x@hf89$Ybp4Xc+?ogBL;k&!DqfYEvXB-A4hH z82EI7n=!06__r%?iRRJdx!&$o44mpi8C71$^T_*qs+fO?00at!n_4)Hy zO#g^!`Uv=AW6-@fUfI7x>`#=A?<;($cI9@g_}UNrT)xD!VXwn`W=X;w=}wKhlNec`V- z-p&@k^WCv8Z@X?b;{?x%lW4`S8h->OL<_sDjq-NF-<|lK1Ex<-3PddkKD4A?uD8aC z?FKhkk7RIvXbSwRRgh!(F9mXy4ykD}m&fzB81J~ZKG}XhBG98Od6l*r+wRdK`*POl zifpl`r-wIa|2=uoG9as4ZKwmExC8tOeclt$T+hg@A2;_LKjfzO^z;-+6hXisXPfBt zs!u_quu@8AXQxl+c^kWF?ZGEp}XWZ zMFTDMCHrO0b2mD>9V&jT(}r07`)u$<*vWr8Spm^AO5>%cr)O&VhgIS(TsQ%lv9P?D$=*8RfNIq=cz_yik?}u%Yc7bc|@P z@SW=bc5j+eo}VVqwp>$Yprj(PK?;-0E`Btm?o(3P0RK6NvxFCUY&6UTx$!6;H5!%S zbevkuw<>ooYr87E8|CAh62kEIJ!)&O5EvF?5wjB2f)4L1B@3*-*BKiey$G_hfmZU& zsBrU)ok@U6)IH5MFsFFIuTI|cjk);;iGuj{|A+ZIz}h^SqLbVlkxV-K(5Q`c;#3NN zP^~+@xe>`}%g*kQMj>ilIWzA1FAgYJ3VWI|`|lT72Fkef_$;>|C=9h`{)c%YuM%(H z^g#hUddT7ZkMRsKdpT6ek!OBk7}LxJR9qR*JVkBH($j+##EQ1PL}-I1_D6$1CLHOL z(h+?EDHB|}!^2->jQ@##ETPRKJ?KFZXD-*b#Nr;K5KP%3A~&3jn7{9hZbbEwk` zR*kPvE+X!*U4vD&SSdrGn?)eY#W$y0vfU8NEQdBrW3J-)rH+{Z@@L20z~SZND+X8Y z4(`{6u>ts~C?ESO18{8$FB04h-HOv!+Ne_X{ql=b^WPR)c&`}ZKts&y3pLzf<>6bU zZd-5V^Q3nv7e*!Kx%iq->d3-jZALuBvWhhJ(vMgg59FMp=5+eskzQ_Sko3D5@nn{b zuhrGnou0ahsf}M=?9Ze_O7dxrJpbs1{MAz%DX7rq$n6=N#rZK5>GDbV#gHY|$E$3& zK>}D<+sf0}_xxm`YIAe=!otEC zfR9WgcPzp@F|WTvtOeVD{1)r2QzJ{RiUx8B?6>I-{feoXX|#YAMp z8NyuCvqx(wFQZXel)_Ft_9nmf^hkUEb{jHZW*xf$-5>tcGYz^dl8akV-8AS;e6e-~ z08Aqwwg9+!g|o?ROa9?kyU$7R(=Gf**V7%7LgL|{u4f>IQc+U_5N>(1Kd!y44ILew zjMoGNw9z8{Pu2iYsGf-*3*qAqZ-}V>#U3!J3@#IJlFHm;;;5ch5*gR!nGX*A90imk;FH(b&bb#wzf92?qtK>E%eJAkwoe2uV23cSbx?qU~iJa;Ru)zz4!O~4*(T;O?e$1 z9}nKdE0IePw*F_{F$GRYr9c!~;bPzomK(VO1`{eJC_ziBOp zE3mo`fZZmJ5*i#FG{C0ks)c#`_~7H>5=@8ypn!rR&F0iB}HI0#&Lsv#A=|aKY#GQ2fLwIA`2b*>U$U{yw{&8jn4m6S-1q`L z>mM3^miVYi%0t>%e-{PEr+9O>D?11o8wWTNa>cx`Bg@*`19pbfK`IHL@ySU7#WTQ! zjCFl`M@QTlnTUX^%S!_X1$lYZd{B&{7qGZO5*@cDVaP0Cc_Cq8@5jset(pA%e83c) zPnSQEitHR6akqKVZ#{)MJH3yVj{pA=NyMj@096peh__6{)PiYxYWYidX$t=nYtQ~y zW4=%wkFkiez+@N^I8^4!9C_Jgxh}7!HgP#`+U2=FP0FcTW!eSQ50~#Vxb{y@x;7%I zKNnZlhl3l;dcs5!uMZbx!S*?wcYnX%Jl@~mKc5#or;Y3YASi+WD0On+w>_UQV#+lu zazTEY>|X2Lp+M|t?%3g0R_&WsG{^(_5utjIn>CFdmtn)+=^(wN{{`D2 z0yr)53JQQO)s28Z0s8Ol@3RXSus8aiZUSWvJ{}&OM4(74V_G4wp7+VxW6pdB`k_pb z!$kf&AmT*f(?^~@Tz5Si^JD^^g-=U57DErh|SKs%kixAQQ_G;^IX+#b<|t z>|9)UmERG1d3p7_#m|rI2&AapOoPRh!9eI4YMeLuP@%n0rywW~FiUscz%d69h;fPL z#__ny7vYTwuC~E{;I#3hjz)rOe=OCTVm;t1 zzic_DT{Id`JxLR?n6#jG577T<2ViwGz#$N`Z$O^`Dxl4xKNesCjC`d~Olc`7e0S3I zGI&k@Inh3zHsZeQ2A>zvB#0`XNt&4$TSZo2F!_09?%N}Z+|WUG4^TEH(YGhYS4SgR|H(ihGmmC=Es;$Zu?gKVQf9{**m`z%^|JVhF${xLJsX zPp+;8Em~&+5IBCxKbN2aE%7C4Sfoc59Jyy(NQGg0dV{nPUEhqEVzQaV`KOeW3Qr|N zfL;Rxg`D9^Ru1<<3|M5RLReFhd%}UEh_|oosv@rYCIt%^^h7q?X a$uJgQd6~