From bfb5449ca79b8274846c694fc07fa30cbc814387 Mon Sep 17 00:00:00 2001 From: KJ-Falloutlast <479875948@qq.com> Date: Sat, 14 Jan 2023 15:26:29 +0800 Subject: [PATCH] a --- ROS/Scapter/tractor.md | 27 +++ ...f SLAM in Extreme Underground Enviro.xmind | Bin 0 -> 38772 bytes cpp/Algorithm.md | 168 ++++++++++++++++++ cpp/Leetcode.md | 5 +- 4 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 ROS/Scapter/tractor.md create mode 100644 Xmind/Present and Future of SLAM in Extreme Underground Enviro.xmind diff --git a/ROS/Scapter/tractor.md b/ROS/Scapter/tractor.md new file mode 100644 index 0000000..c26d65e --- /dev/null +++ b/ROS/Scapter/tractor.md @@ -0,0 +1,27 @@ +# 1.问题规划 + +1. 上CNKI和谷歌学术找现成的包 + 1. Fork Lift Truck(**关键字**) + 2. 铲运机路径规划 + 3. tractor trailor + 4. forklift +2. 找导航包 + + + +# 2. 找到的可能的包 + +1. https://github.com/aeksiri/forklift + + ![alt text](https://github.com/OrebroUniversity/navigation_oru-release/raw/master/docs/figs/rviz_single_truck.png) + +2. https://github.com/youbot/youbot_forklift + +[视频链接](https://www.youtube.com/watch?v=K8QHs7iJGtY) + +![image-20230114112024877](https://obsidians-pics.oss-cn-beijing.aliyuncs.com/image-20230114112024877.png) + +3. https://github.com/ErikOrjehag/forklift-mpc/blob/master/README.md + +![image-20230114112611979](https://obsidians-pics.oss-cn-beijing.aliyuncs.com/image-20230114112611979.png) + diff --git a/Xmind/Present and Future of SLAM in Extreme Underground Enviro.xmind b/Xmind/Present and Future of SLAM in Extreme Underground Enviro.xmind new file mode 100644 index 0000000000000000000000000000000000000000..272a4c5bd8052cc091217ca1c5f6ec4cf1765353 GIT binary patch literal 38772 zcmeGEXE39AH5F4M6XHoZq(?b zcmCV=_qp%y{rkUup6A7L+>UK#AA9!fwXU_+zV>;Y*LjV)3g!b4+WnsrDZBRn?ELfc z2zY=0(bdk>{=+9*7asNh>qK;LzWY-Xt=Te-uzW@8Py?nFROQ+{^wD8 zY2=z5EjrP^w@N{D5VSlrIfLOp4rZgA3I6v|Xt-0UXu*>cKL>{Yvk7&GD7K>igMV+f zs{RO@ZKTDJx0LJe~0P6!}Q^+FT9F>dvjooZ$${~)O+k{Ho;ejNur zPell5F!%+2o|#DY2?u<8&-jfsENF|20r^F_Z2()3o;^r-HZIWW_MCjwt-ND8y^OY{ za~6}y@pXsuUxN#IaorN_Y%P@JKiKQ5NI?3XLGVu35pt?pblL6$rZ=%-krt&Amp)z9 zZC%?VY+d?ggctobmHm|yxAt9)Ksz@|s1!G{*qQQDyRBo(T94)*gcg+U|JDAKLqPVH zO0wM(LrLvaS|b6w97-WzQpw5+bYBo?wn3FbCU7tM-*ul z)<1UO5C@cX_{1Fz>3r~fMneq32y2)RTeZU02fNAzyDvvO{Ib~&O>z$>)qk~Q`}2pQ z%A5KE{t4NCAmIpEiub+EFB0h4VRpVo;T~SXx(jUDAMpcD zblhcHzpRxNN7nrVprvteMe6NkEDP)DyfI1%$O67SbfEuHR(DJI4%xchGl@bXxsb~} z8|O+(xi8C|ybi2=7rK`JHL1QBqT3Vn+tbgHe!N*9MFYMS*Tkx?5UFfO6`>Z|K5$El z9){*qn_5f|Lf~&X=CokVuB6q>|FW4dAYE{guGDY;$@sAKPbJ#5{1nB;RSgvyC1f2* zVJmx00?K~AnK~jF76XM}p!?m_5f{GAsG2mX629+%NxZbY{7dfUBKis&^~XbL^HJ90 zvRTKA=A&QO<&pRx7cGlMWzEyHopNIO-uo+Hs4 zWnr+gFuAZy@H%^i(3+(6+QI4FbarcDg}G7wX5CjSd$gaZBN22WWgG6?Z~Oe-JUQ$D zj;(P-^ZsIFboYZ_;p!mhJ6=soo(KH=7({P5f`qH~NENrla70`|DZ8+&@RH0)7*lL| zd_>90FBuWv3*0b#hm$u~$DhnqGoMs`$L5XPdJ2N-Im7qSx z(Qo!J?W<^aUuz4|j&OpXuo`sQa+GsyIHFzMq7z(W8rsj>&+3vbAYMbe4^~*pR|Zq> zW3cw_2Ov^*f4}I8sOje+$`HX1pKY%mO$!v3kdAlCyVEv#@vL6oa#UZ6Cq|?&=i)Lc zV-50egt~fc32Iwvr_U$4G{~0qOQ3M7liQ+qnxN;lEn{(z4T+NUl+(*HbsZqw3(=0o zgzVn=KQzWXGk*9P_E1r&-=}aKaWyS(GAPy_Q68XAI#~N>hF|P4Cc`3D1r)s&HeB6o zrU#)Wz>e484!$0W_@B_MT{s{p=z+PFeb6;^gbr)aWZIN9efrUnn&jI1k&$d3s;(8_$*#X5n!A*2}Y zYxOZesOOpx>~N$Jtc50-we1>wmPny!y@;Eso$Dg${aA0M2Vxsi-#ABtt2EIe-VV&`bpc-zK;v4FH($~b9961UexW!PPuvzVOFw69AH zdu@Yp#2p3IufE)6av9%k)Yj0@+~M^qSJYN*j!WN^9FF4t(oR0%`sk9&#L-Fuz6IU8 z(13F~Y2=MV*=uHEcC8Q|q-F%iUH54Ci&Qq6D8%-;uPS%d_@()E^TD_@Qt;xa!x<^z zOhkUg9V<=+&rOp`x)-7u!#pJ2c68oEJ?*tnY9dZ%sEA>0yg^xFmgOC5h-I z->~dkNqYO8e4*wtv=T#l8<%i@%$|T-)!RoAQ%*SKXU}PG;_Jgr_C+zgTS))@!TG5B z=-fvbbz*6<#xrd7mDgDJ58Ijym}G$#{m|{+`F*7WV)_jewrMWC{{12Sitz=ro-xb% zpn>h?dCqkwYUpBzxQ=kR%1q4pY3urRgG>+`481Lzi);bv zhaJNG&~qMtP7j;+*4U9gk)BH8PT5q>Xo#tn(^&m6UE!h z++d5|$=A-B2^kn%I$up8qeKbsL`3l)Cj3!HEy5o$=I59=mt3Y^w@5ob<0sNI^t0-n zjMt#^GmeGwa`);y=)=8p203Ov@T7e841=lX3Ru|7anf?Z!eW%sm{-Ut_+t?-ERozh zmuI4dYGUw$wzGZs9anbkKm6P#rHpnAv? zEID|*3bM|2Yqh*r11XV)3p;+dM{0Bv4rQ+VgQp6~Y9nqe1n-3?K@c{^=nOPiCCLwK zNf$21{kwHUbUa4mT^3hVA!k&s6})7_Sy!1WR{l_P*K;*#ZRgkeYw?MCdLNSZV>~H8 zs#AY-%5c{sh(qZM9(1V}cJ$1;0BmrbzNje$!XE^{#2_2P)(N2L}^C%diE+ zg7&M--u{rNd@KS%i@rJB_q+33LZb?O{8~^;jj|bLXFd9IRpn!%uCZH_0o}xwf^Xof z^X#>$+lKJnliCleE%R0Gk7MI=w4K>tbm?D`K+v)v0$<{f5Zqta`m_g&T3u_~{teog zfi!3pu-<7(hqQ^>{ZABR=7KtTI@+FV4!FsUKbU`AVr84tS@|pk>6k*8-uzI%^kZbQ zcVEVC@2eSpVOoty&)CKD>rLL`fL64cJ2dmX#Wdg0G^FhL^%2oH7bQ+2RQvkgQ}vV(k}dq*Ph`UVp29$ zRxtet7M}ougWBEB-{8WjLRU`*uPkQh!`{-vYJ?5RnIQ*E%FeMs|LXAQZZ(+>e`3&J zAV?=Gd{A@L9*ze&B%n18KO+S@uywypf7mvSH+a`iaaKCM5rfJc!LalO?c8C! z);+;dja}0t1S5TF++5~#Yx##Qt&p~FpAL&w8{WBH-BDSIUbxU-QPpROhU{8p__<|? zJ^z(gtd&i&MOISupb^~RTx3vLw&}?VD|lB$d;cIk&&ZeQdcpueljbl_C*~i?ES_fZgH_=US0`2!#EkPi9EkhFvq8SqDu*zTZ>0f z&mOJMoy5mX>gMy+(oNwTTL$YWd2Hoje%D>PG2{CU6pi zxk&YjW!sHh1I&#Ei+WKkQkdHf=s#&NtiN5UL72Ryc`_8#&=Vxl7{zlO%(6eCZ!p(a zzrGt-ExN7E%cFBsXzp(wctyj5DjtB~47qqZHx&{igeowDmXH)q(>MklkOC|PD z{H(%7@YHWSU5{whCZ2vLdcfZeKV!Msf`=D{FD=y3N8^)(Wu_Qt`_jvci`Opy=z@sY z`?^+uD>aXU`1iOh?V$Om*eJ(TxqV3tL-#6yQxUA17dsMuvVEwK1h1;gtczF<4&d?I+G3yNx9)6-QGRgI z*G->4SXozLL(xIEl*t^WZS?a*8(x>nE<5k6VtM>`owL|;al%!qrCk65AH0$d5_XwZ6q)cYG$)Iuipfyx%?b#z9uKf4 zC(fV)&^=dvOK{@*x06U#zvr(O0lH--FZ7_ z%@Q!q-3kRKC#2njsW(JVkP=?G+*Yl7Z9)BH^gm|0l%0urD#C*F>+TH5`StvYBJ|i` z-0uW?v)yQe+j#Z}(i{^7n!;@iZxT5liQYBz!^PX=+Y8kgu8tBFo15ZX7-ryUfAVxE zR&jgvF5VS|GA>rmSlH$qqq)Wnc?+0NG3(-3%nsGHB zTG{tFwDc-os)AaeZs%7%ASk?3SCSQ@iXL|PR=M$KPv~8{LTH1@o<(3If^rORY3P0` zh9L9~1r4P6C^_(7fT&&r7wzHim4QUXuU&31X42Ge(t6V9ejT>4f|XGxVY zpo7l>dS)fEpC4>P{c^N-y`%puQ4sASrTbXar1dNZ`eeP5w;!spZz3W~mGElJ~`53p1Zb8MT}m+~R4U z(*P+Kt5>y8vQhE_ik(Vgtgs3ES{~%M6dMNzC5P0_Q|c`8L1UB*LC53mq@1@I&w2+3 z5iTR}FCDMIpz7|w@Of^;EZkTD@9!e+#nHx!vg`K(>R{nF*%#zlKw3tUu*yFXc%S$^ z_GrH&P@&R&Uq)xGudk2QxQzseTe9E2j91b2mb&s5OqKja&GJ@67EB%n63#7M*(CIbQ$e)+XCdf(m16RYtWo1a&*9P9|}#-*mpA_Zf( zisDHYvQYX4fV3SJWDJ7T*uXX=74oH{G>a>=_SH_KSUiT~bp>5X@{Xuj11WjrcH!Ql`Aa=Ugu6Eg?<(f9O zdP$Y>Tit{dz~>OVc?T{SNF8IMM}#D_PlvpUOZrYVte}5crc1hDZ$#5I#U~LL7gy1# za933gCR*^`HXCb#VU=i=<~35Rynj7h0DGa{RcT$-A>U4~@4$0M64OBQU7>mpw&Dpp zm-W-R*~3!U%i?#X^E{?X+n!A@rt&|Hk@7!2_I}>;d9uRi@1!5mQ%*zVJKfiiWNw2n zf?b-=2Fc=n$Q;s-qxJC8Xmy!R?h_;%Ah-&qeYp}=s=f~9#)Id0v`F$)5kw_ zs}LSjUt#@e0oXL2Gv&w8q>vl})?Led4*LV~3~;|V{9;~yWZF15uA zR$W&s_>e^|6IHRpMvgrU%WuOtZ;wWBKX1Ooh%MJ+69eC zndEgGeejraY0HpFuDoPari6ZJqDs^1Lasv0N_)UhR)c!;iXjjBR=_2Fc`S9=UtanA z<>&W4t&jtH5x1QneLZf?f*?jG^NO^x{Rl6qUL!M?tZ zdb<{Q57Qk=~ z|96{DC<(FNP_nQ6bTzf0&C8W`vv-hWu8c@_GA%iId0#`w2agk_(7c_itNr;BwL-P5 zuHJV7s9S7f1gL}HY`gzBFG9NGI~iD%-(B5!)%$93Bmu`{l_8KZ7BZWm=<8+@TesRO zk%QnE@~|B>(5>887!d0Q1u~%YTHP9(ijI;k%fP_IMLdmuRim({AWra&sQeZG`?I< zqjB7rS8Lo7s`wQyr~DUD-~awuXQyaWk7FT zZIfY>Mu}8+qm7xpfk)uMUbxoZ+cDNjh~ih-eX!j)B{`Ex+HL#Yvls4s#o$){1tUpP zGGp%_mu-$uI%q`xzCQ8$z;F5aab0z(u~y7$9R=6oviFT`W-_|k{P4=4E$SMUz zT;AiwtS~J6t>XR7{Dbw7$)!3Evv+OYpX!L%luN$pM!fTpMi+F^$ae(a@D-#|9ix12L^%whv zmwsp@Uvg7nGMOqtpv_wvb!;VlJ`Ii97mRq>?pYfyVFkBjMmt*M={w?TG4g;!fRhPv(j0zDlja5l&gn;M?B+a~k9#JDen)5QV#Yf5FD~Q5Ab&e%jjF1N#F{L3 z)gVVhG2`+A?%1Y(XB%8LB&j4WV|wgod}f(%|TfT#Rw%cL;vzj5mIr3+c` z+BYKm#r2-ceQrB<=8}(0j~*}e(}?*UDsz5h$X5Eeke37I*#yc*^;;j;76)n>)&*Ig zH)D{3C8Tb2|LV*RrITBY|3(B*iGQ#{)@`}2+1$z@k9B5v)pzljc>3X6t>CtxRe5!A!=5n?6t;5n!?iA9r;AR2`n*Nf^S;=p`X>e znw_)smw;tk#qy`RDEnK26&4P7$FBQl^@i7JsI3)KCfLeSNA5WsI)R*Z5H7032&+jN z&^!;)!#!q%T|zY>E+d>ZwkInLcS04*^2@Gk`!7W)I9e@dHny8AXKA8I!9H)w zpt|eoxKPOjy%}1Eudw|0E1>-r`@-+jn>FPM4jvkzoRDju$DhkSGt&Ya-dK%7Q)?R{;;;=RyAhTUHLLkM%VXfT-MOb&ZtXkL3hqg!K)z)<13Y4)0W^^xq)UPK68k0 zY%G=p&&s;Q&9wk=!3Sop6s-|~BY7?=C@ zba{31SIdZqUuurfZVKVT@7&CgAYaA$2;kFIt)%NNXPm&Vt3Y;(@3cwJb}Qs81>_zdfCG=Xfk{k{cKY?x5qX_Gm%F{bP%qOZOnfx~$w@mf zbD|K@qa*z=55Ie&oX8%X^ZHTK7AdYb3R!66@gXYIs`tjZtjg_0W!`+el_FjxA2#$` zod)FO!iGt3_H@_l+nfq>Bu52*@|+>hdwt_bg%<Q@4`D z;8R;!I|`Y}^j59*?3H2UcUV;?w`vp-M1R~(>LG`L1w?y~WY0n&V#4nEPyyVjB+x_LlD|x$W6Rf9= z%=9T}eOW$aP>)U6<9oxhE*h*V=}RMC6hXx2ko@&{nQ1>)YrCz&R2u|c-J+J-qhQj% z9LP#k)2jp5nuv3^lrZgjHi7A|;%U5+#&^+$-njIo`gsJdu;_C=(?JO%B4X|%9VzU2ixQmEdyA$f z6X8-n5k{E^O8aGRum}+U{!~gE0dWLC$iVpZif>A_&wkivq*jaz#xdZ&o~kl~hS#KD z|M6}pEK>5U38iUc7->C>yKGprYcKjOU_`S|iLDdVvR^~(xXpE^xy(=)+s72|b&le@ zu0-k#rk+@4=EjwifITuhNu;KC-@Px>l`rS)x2~bu_nOD&QXNs)jG(&kp3D$#)NZgC zcOET}LjC#n@H>2IJ~p38KuDuoGx~9bR%wZTadM)K$4b@e$zxvgza(!`r*v9Bgyo^E zO<6zi(3d&O)xkF7Jy`f!7NN6W4^}oB7fd{!;do#kT)VV7t>EhvCt$Am>ivE$vA!nm zQDPB^;gczau;~JzbLS%$8IZ&GfFq|5Owvev4tq(?^anXgke|~IlK+#E!~pVT|8Ms~ z0*1#O0E&VD5kSTowbBt2SfL47F^OHNiy&EmPI?4cCoYs@hz@?QBMAL%|ddtp{J?jaE*2Xv7@PS~Dsw z1{Qr)17{st2qe7fyGc*1e<;R%QB+peIJ2^_SedF?IlnoxgV^1QeLv|>^Vq^qL@jvq zoO~DXdZC=m9gR=v`!fpPAcg2cO=q~9OL$UeSKMvq!R1NTR|)~+vj~MkmggPce@l=) zYLWz~F?+kQ;m_2+X<=!;dI2ij#iq?e8zWZBO&i7?OLRObZ9Q3E&V-vtcV`5})-i0%+2Qb164`B3zLfhkvBM zsxvV&FE4d4{GGE9N#eee!?i&o9)A0l+L|iiOjhugBFMB0)M78{vd($BCs8D)%Gj(J zC#(E&EgsrnKl&J8G==gI96lG$<2FSG4F%hx^wVc^v(r|Skq8dq>+2)S7k;(EzBeao z(6fQ?zstcZPSX}-8|)iU)TOOCIp}Y&`^K=3i03g4RE?Cv$Msa>O;%Os;lw99+!OZd zHGHdJ0I4MtcMJoZr`z*+k$nR|RKigsUo`%zNp8t{yiItC(5M=M@!aG5t?S)%%?7X4 z-mEo~77Zp4Sbq{<*poSVqxY$G-7jYK(w9{m((>6pdZYVPHUQ(o$Y&OQ$2(KMz3-Ag zk%8*ps#UZZ#cuY(i+IupuK!#O3XL^JU2;qW>&Vsngvy|gB$znlp|DhVtIsqc3uxe9wryBatOe#+`kr>q&9>;&3$_(Iy#4N)Vmj>&=^;9J-lO>JZ^jzz;t5zNevbVO0&NxP%b|eo> zrlB*`_UH>~|DZo)?)cs$dndsa7-&94{xYvL+$B+{*Rmr+?5w1W(yV)!zfNyt3hQR- zvISv-w;Oxvx+P8mP<<~(u4A82POq|1QlB`mA0Ht`^ZvMu$E11R+!m;rPW`fvtxVI% z5C5njoFNtizgvj1aDX274)?An>MSC@BIliq0zJdwV{}LM zgHy=|>jpHX>nb;YGS`Rpv?)%<%wXXl zM?Ke0;7QLQ`M_4X2uDr>!gT5eD6-gvCPtYw>P?WKCzD`Q(uC=LEuA z47VrjI)@tShsFuaQnGw!B16+o)EyMR5H9e*ub*#jUO0|xB{w5fj{k5UUTkqN(52AS zo;$C2KXIckpUEnO3QmINtd!Z$TWZqAg_c`u7{5ARvawGxT!5cyH)^5Ntheped!?{h|avyIUwRNfT@>2%-q#`%pwtfz&{Pb$@a zU~pH(C$1+Ka7sfLM$)LYwYYVWi7x?F8y5X7zm)mgVXs|k@de-PlEq2(N=ePvYyE3l zS&W<(v-R^Lu3NPwX8(|zTZ@;%>;R+rxqK=d@42M+8(d^1Qd3KB1)@AlK>aer?^ZOx zc}=+(k2&>w^K5026$1y#SFo#H6J(8nh0{Kfs&yNAyfCk118F9)V=6$8Z;&3ETXOUJe{Ppi(` z(KCLv=om1)Rt5{-1l$RJ+?!;Fk|JzYna%#Rj2wNJu+rn+JZ7@7G=)S}O&*q!v5e?I ziEo&deJlwnYEHI=e~bvMxRfvVvtR&JaB;U$f3Kl$o}Sv|XTAd4tKA0pul#LC9qQ^2 z8hgneto$4fFY})3StNN(u9|E5dAeK8Mg@F%o* z^y!D=@5x3taW9$SyzM8KM^9f8g=Ym@Zs(y=nYx^-fLbTYh}>?WH2NpF$Z@|nJf-S4 zmuk*ww|%VLd)fj3LPuvt2;23W%sKu{^pLC|rI>|XI53F-QHayPq%!iPHlBk6z7PE# zP@=`tTX$%q4XN{ORuL^2|6quV*8^nEXN`*dy?uTooY;M}%wNeVR&$m?91@E~D;TF^ z0$E`Bj|3_-KrDUhbWVQ{i-S_|$ZtW=LSe5zJizF9FwoMG?EM+q)G3T|8uJvYMsTwr z`wDR{Rp3s4GG3_Y`3Mnya#{2x=Cjz6)f#F&dl3ZFX1diq@82%G^Pj6)nSmL$*@Esf zFS;NDJJR`Mlh8)mVBt=GJs-Jy#}}UU_%Ty};=j@*$wl@T{Vb)A1!9f6tMwFTMHtQu zxM0t0M4z8;7U~z{i|#Fxyk=iDb6p8}SsHZq1KXh|a`TlIXK9PBQ7c-rf$Hcb(mq({ zDwD5F?y9-vCmVtewjiguYzC0aaOI(=y$78D#mc*NWs6;R$n8{j$gC)tG)cfd-Rvrs z`eJweBmvDY`0Q-)4l#b>QV36Q>lK)+@HO%Q(NkW5)32X-o>6R^_5^p%D*t^oUCl)I zf$&wRs@B0$w=ia=_P#}8BfxTQ_1fMP;$Ma;75%1EVV02QKMMIc~8BK^J==ukZ)~(E7`ys`!==rvbGkoZiRN<+NgDwvrRfg1I_hOZ-5A7qgbS8!qv31&bFt{lQjulSynPA;R*4;6o1~1^) z@r2UL8EXud7exlzW0A?i$i(XINW9Ew8iG)iC$U~@p%cC*~IAE$drOFssqJZH)*(=jh&L;peBYhgAgOfZeY z`prJJVUN*oN-2tupy0j1K}rS=0ga6jn>Ug_Alp%7hE9K-_Yd7AH8+2H8v%1IDKs-F z5VbgI<-z+?UJBZpe|0n_tag#@Q#VWQi!AjPX;VYuV_QfvXaJp!qaWD_Ne4iyRA)7% z&tU}Suk(cv_Q?{bx0f%IPRh=qPvun%x)In@k$ZoV9&Wn zu>Q-z^hn4aX!v$0ciMw~jZw&Lg2SPiUpD9!MC$hAQ+u1S_AJYiY9cU$11poSls-4e zp*HftEZ|;A7Sz=(GTzD1&LJrKV?!Lft~PZ{ES^Z|UEtfpa|55LaRlkWowr9AoyZ>B z$wP+30})p=Og=j`y}5a)KZlFWDpwY(Hi@Wb#wsHccOb0C9({w3>+Hk?$ht!uN4VI> z1AG#2L_jql76-!K5~PV)8RHXsWMX}&^=K-brS##?-wBFXfaqq*aQX?8hrU{t>43NTz_G@;agH~lTA9#HeSflP?16z@%vy@ZNd6aBxe0NvKwB-D_QH zF6-$2$?hOYuVaUj^u`;2@&3w_1%5wQO4TeE@g4y7GgMn-a)S@i^(9XuQ`TP_QGguA z@Np^4>3}-iU|v0~&xBut?m6`3wr=6lTtlYGGDAy(OdNU0NpXR>OFC5tN8xLwvfSI| ze?r{GWzYtar2E?kAUX3cZw)QvDplmMFUoB*Ms5M-LHSI0vn0AEaiC1(!V~M&GiR$> z-ppGo@lQiW*1}O$nQMP6vWjx!qmrkc5>|qkd@@!W5(h>%{fWF5Zu)v0Z(MbXI9WW| zgpMp}0hCd{DPZt*N9DOi-!IcaN=~1xKlx4ltG|A%m>6pc>?{_dLa0S)$mM}i=S8gN zB2<7;=a9f#|M)?IuGAFMf?Y59e@tA6xT?)R*(^4}(K81h}Tt+yRqk%0Zes=PVxednK#Rpq{f z04P*uxX&7!(yWnH7pgq4??90Lo!%C0Q0N1Eoc8@lOHsT+u z10gKjj!*Mjl7fD6mP`sYN&DJf6;wHNSztv1i<|trAjG0mLLhass~z&C@AT~Ur|Te5 z@)wZmQpLs~o#(7BC&6Jijwj=FM^t}v9BN=~zPBEa^y@YsdAJa&k_8K=$_Lt2-Pd$m z=alhS--iYdzj%+a_f#+VOh&QlRezt^<%aLbu}_pQehnkuSQ8z3^LRuVIlh%x8QeqT zhjs#OqFNhBb}koDYGM4;X8S%>%)ukm5xYrB9Z4t5B^#vJK8uI@*a1Ycg= z6g}XCU6Pn*GHS0dJGEu`y#zp;NAYER;ZIi2(~p5HEfV43qywy?Noqu^x@+6^AB*=M zna{~FuR#_mE8rTfVc+mgot5U}o%d$c>~lk zZ2XQoYI_G+@y4jU0zUBt=KV4_BG@bvAh)}*B8LRkfRi#wRpRf<(1Akp_J2q6l)=Ko zENCri7>r9~z+G(Is4LP9T-VIDeai3%@cip~RgCva*ZYe3f12{-FLeKx7U2Jf&Hn#I zQ%xKfoBh*`YwMR=23bCB&l-fR$qa*GVkNk9bEs!9AqUR>WS*#_4S|EXBd7@~HaVwx z=*P#oe}rS5YcRl1naWoUf4nDXlj2OoI9Z;2LQ+faD2ZRa@yaVGFge@1`8eLpBWYaM zZ6ifvGfl2ph$jn>UWCa6An2MVe+dVkHss`}%T~cSqm^V=43FPHoO6v8mWDv2Jf;h9 z1meh$G?6SaA;1$ZscS+4SIBJKH6a-c^|qVl@0*HpF3+|ErI2B7UzyplV%qcQKrrQd zD9!wVm4<~CriypJ zqZcBU^$hF2J=%ZTGhl;7UPRaZcCSxHP^PVPYo{>)r5!zC`KG|~6>gNtMPc>uOzah) zx@W%XErLN%fL}5@zQ5FnZY9%G;z}SlDO{T&;si2kiE95xi3LR)g6^%2Y7yopk8a`wo} z&qp8~i#F`%8nwm+{W@Cg)3O(-7}JtN2-3dr<$5hwh&f0D`66EX>m6}D40GZo;He?s z6>brio*q+1vI#gqYo>>F1AkPr^w#(y@cC{}^9vHb7863g?yg=R|W4K1O&Ywo~vB zE(S*|Xl@q6@|jxhA;DUH0DEx4bin)#Ir1Nk*W-fS4)337ztM4cvpUn}^EkEcZ~g*aQ%m#zl9_QSDZyb0>p2ea zu#zG@Bz_MS=xhW6a%c=Y@<0N=%Yn~gC&^LvV22Y1lqv=&f`NtMc)0or&}2!MpOdn` zZ)bXO7;&A?_UKpX*-=xY8u=Yw=FS8WKrL@=&xGfX=~Ni9)itxzH+Y?)zb{^%E4PpA zBMH!lsXy2<)tTQI&d}MMWW-M^3+cCp8m3AE)G&{Z*fHX2M2bZn5VDOY30MsmYi$8x ze$O$5%9sR=-wTf9zhR2|vm0|HS_N;EnD(k)a-A6giR}|t2ZR@((5+i$gD;Jwi$?qm zjX@^rBsUAGyLv7Y*3B5^Daw#Bd}wo6q$AX;p&3Q$Kk(w?iHs-_ z$LaZ81`YNK2?g_G%2jSkQc~W2%+FpFZCs{``5u0fF*U_d{>J)DU0IwXSUC1#SJgC1 z3Igk^`agrW{rF8cDuhxvi_G#Kmtk(KAQak%5v5@hEgafEt~7HiZ6qXY*^W?h>*=Jz1KlvAg0(O2lUyuEJ@-bkaq3nS0PGyrF+12vo}Kgp-6H z_gU}cbnSomwbWPPrYONPLKQvx%&4^gYx^+`FK&Xd{!%KMCo+*|Z>CNy_(N}h=Iwoi zjQ4y@ue>+>$=&I!vGr@MM@)@3_1nBoh?=5zE3#idtB4vSI2MyDAH-Sf&5wrq_V%m* zi|S`EnYQ|gq9~hy^BA5^&1%ZOxuK(RDIkE!WN@%u<;5vhx&**-{pCqFpvMGzrn~OTi6=sSh*n;P_Ns1*b68Q|1ARpRJ1woQcn;Z zyE|hZMIb+3@HX7<(aDxkP8;n1gsv1v3H!!PJ{>}{NaspEST&J^cjxCwAA4H)ci>3Z)!S5ba{}D#YqGwaGnq=m#7~KdZ>&`_us(AQcO z@#-o+?K0Feo$ZsT%j+7^kC0KpEtSiv!_cfYo{kDsst2JL@q+Y5gYQvlt&Ajk6I4k@ z$7OYBre&aTc{zgTy|IgM8;~-ma_PlW;22Pcl;`y|=R`^O22I8_QAVc={GKqb?@^?s zdx+b|6c_t_(ajccMe=duk27tpQ-$5}`jfa)R3K5G3K<_E+GTh=sm>hQ^#6v3j;nmT z?KRhPz21fzvA><1PmGJBAp`4z%UQAMgQ`E3`N5;vpHC$l4q&~|TT8ShYzvyy%+&Rx znDY9f(olgAF>;^k;*qzjINKOFDW>&sD=8Nn-q?`T;#<`gf) z{cuFk@>XBT$}9Qp@f%HOAcw>+pH|=MMek_ZpkuQnZNB^ZA+#FFLqp7)25+3KT~9s zx!&;6_i=$Lb)ISV5N~{JKwYV^P8CdE>BXqjC;w?qe4vKTIJ7N2GmCF6rRped_$NR+ zN&r?!@rV3zm^S=){eJ1L?RyL$a+4(;FQgx>!O@14r@y*|wUx2ja3F_XMwF=z#I@cS ztWw>~g2c-h3?C3B#OhvZFdBa*jxSj-oz^TT1ow!h&;Nd?$CB>!1!kHoEvqcLTFQ&7 zM4{7V&vI+$@d6j>gXF#K)1;F zyk2FJumYkaAp2JpYhHpS)x7J?oh{@QJ}q(kj(2yd^_?6oUDJa@og1`6cTVHD zr{GqTeucaEIb-Jx&z568sJxO8M_Hye;AkIGO8K5K#bnApW5m}3N;~L8O>bHUaeicm znmfhf+You}?EQh(_n%?vA*04)vD7&3dzXM}o`t#1yPg=PiMFn7;-9J}B)ar2PQI^P z+ogp?3-mbJzjp6kgzd=C7XPVxyNQ1Y(uY`Ro$Z|V1lnRb#0X)qbs?kR>qwmGBjAt_IQg*N998)y1(_pSKR%`-|i zTX{%}s}Bi14+X_0kozrrX}BCrX6$msd805L0D{h0jTZ>|NOTWrUJ}4+yxE^E&Z_(L zk=L6DjVH4pPeQXK+XSb`!462WOlIZEBLico)2;92w0n_uU3_uE6wn2Zjo3w=5?Y7K zK$NBL9jMyZ)vwts76S2lfSb3#PhLGkIY?TI%A6m^*6T?ZrSq5$^)K7A9Mh#7r4Fw} zfy8~jcsa0D!%pdASvm}}6MkU*Ndfn$bf09Oi>N^&j zw{UIvAN`rxjy-(}A$TPXORczMj=JJWF9=#YYOBw$*XMPT7+0a{++9Yd@>H#z;qhW| z^WLY|zafl!=}iu$nwzy8x=6u+5lF0J*&`@w)B&8Jnn;ArExW-@n&RuLPY2T;0&Zcn z`ao2sPcEsB`%eic1PYeNF3fQ9^6b$IOBx!$rUg$9=iwWRQx8tESHLQ|!VCK}d@ND* z|FriVU`-|6-=eMx_TKdp3n~QC3yWA$EQm@~SJ-=#n-EAN1yDo`#eyPOKoq+uDow$H z3pTJID!O(>QKU%~MMVYlJ2wFY%llvVd-wl*&+{!BlH8d&Gjo3D%$#$k;A0h7JrlMu z7VMli*sW0E{XmnoElV1G&&EE_{?y}O182kZUcPm(gJ!YO>KRchf)=`U9GIo)Ibx;v zs`$v6*cVNquXr-Hgqv$~IZyRE0oSfhcR zVqTI=UYqp1Dy*}S7d?* z#{+4ryDy>1(e_7-k@gFY(#{k1>$o;U2REi3SCz=Nx2 z`dzxaXhDOy>cxOLJIpKH*Cy=?wz@`a*Iy(}eEBGS^n9bil`*ag3(upNRrt=G2hPZ@ zoi7ioUTS{HdA{rZn3&yg7$GDfhP)|oY~rcnqRX`hy1EUEVDax5nFc1=o|8%h^liIMn!I^Nr6_>06#R}X(k@W1|I zO3<uH_D7(C+_S;#}F6%1GBu9$V3Sa*4N)~FLz=Vm_0jOp)^3Cn^t z%W}sV_E@ku-OZvZwZYseE8r7K!aMg*m>6t;Z@!sbBvsG*)zX=jxkkP;&8zD1s%}F& zrmb)HZo1F@_#r`55$0+=Bss03M~02!S$1~$@%#52Z1h#ZPUWj&rfjk}hiCibrH_?$ zfpaf=)|=lOZX18sa9!aTVZ-2dBaAjI&d-I|@clopEgT3&UV+i74fb)4S1Ktpe6GIN zSKd56OS#$1^-*Qdi)WVic<*~_+nre32*KU@dna%E47gH!J@;nn3@7o!=Ukfz2e7Y> zVBJ1EmloB6z@&I5UH)LZYQdTywN+P5`l2tEd>K79{oeYdWpDCMDd~@W zG93~fm`eiqvmcy%*@Mr!eqn|(qJ3&we7^wL=DSxCU3d5LYsHbk)m1q=e5o}>>}rTS z6n=EOpL@CVR-$7<)s!dZOoxM0=g;40Kn@T4;9c<`ZcfU!`djrDG$AWyl3Cb|H=?kP z!&7aBzCmtm2o+EGoW39!CyrUUWRAR+y>I8~PUYd}7kkz&W>0qHTUG3r^;!(RUjDc63xEnm=QN& zfzA5!%a`1Xe)0HXS`Rphnep^6mtSc+qW1VapUg>HZ*Aq&iT|n9Q?4}sPr*x)h$jj=?w9`!qG^EZ`s{(aC}yOM&Bey zqeY`44-ceAVOBmTD}G%wPbNDbbJ^7DXxl@2uNtJ~JxxA(_1`IT>0Ej!FQu^kn-vGs zu3XCSEp+a-G}JQa)8df53yb>1=gIqxpFZ?b`m6nSJ~y0-@8Pl}Pe~6$Z+tRY=XZj0 z>vk^-)+FD&3bt+GIJ>&%_Opk~{q1f|DO+ffclP!1WWBYgCj7Q6B2=1xeR9rL*A2>d zPW-F8Zl6U;uGyaYV`~0eX2#JPzlWu!9rah&XNM#OQLP2~r;eHQhwV^~`<1!JJ^U+F z>&T-tV@SL8lg`XoGwSe&J@2io$1OGN72-GzTjM?vQ}j9h@$3QE_YoSvEq+3NpnM~q zm>~+T-pSn+D(okld}{B9n_x^O6&T*|6_+ioPp#2Ilb_dM^e_R=~bq`AAXp8>+v78diBX4(sN%sW-A!_vYdz4XNq@hOw;EImup6p zY+lqsf6a#t&d<#GzrE?}hc_k~WDAr<2%v|S*4@_CufmDmeTpGNkL z+uNSA=YiEcjhQ_(i+8nr++M%TneJ9^v#!**(Q7&$OFco_){wL;@skJbW7*+KJ>}Mh zsi!U84l<@2=Tv3Gl@pPQ)BVL4-bZfPyL6y(4oUKH$z@NAvzW2tC&fhOs{^xU?w+-; zv!`F^bL-jF>6{nCheR7B86Cabejf5+A$~XTjWF2BapU0QkIJ8N>K85CWCMQR$G+|< zZ4+eIa!xPssoP|imGkK(T=JA16hHcEcI{)&{qhB&=PXH7FZ1~s(aPn66**%2`Oyt8 zpYAMl^iX2%RwEDGx0h78WW)wjqKK<|>S`0?Eihw0MXlPl_ow?4a`u&nPZ_g_rqA0oc75mU1%sV%N1vfw zq2A?zoMc<>=g7H%6$MLhNByc{XZ;gK#<=Wm&mMc)6xc9tKVZH84?zmvAV{9tyI`UOvuwE1&dA)!7AS^>nfEY6zWhcj~*kT{jM07x&E`9VhN` z={lBYT~{;P-wAf{EZpRkZICqj#7Fa|4R0Vq88PET@${0>XZ$**yt>xgN`Cct=|ROL zgI?s>$cEouuttvTYuC0si`$hmr`^NYyJsWr{4w&rpM@tvx1jDHGF9IDc6q(=sV#e%)vlayvYHW4Fr>{liZ;r0rg1%Xe~|*zhENf5JPL#m5gmx^|)_Yv9S~ zix$kAPrG8D;$cU^u>%R!ArI~yvUipQdCWb{sY=_s?&C>z{@XiYyja?wqIY4OT}9_A z)~n}@%&d*>`!rC{JO8eEna7mKVXIHt2zm{!^Lg6N%}b^i7JYsyV@o_oWNtEfr^M06 zuj}^Zqu4$2BR;w=@|v7bRhDE*?u=U3Vp+SSm6xZU`B-qHws$Z3_Q`Rd?CWcvK6=`} z%@Nbn22MT=0|!RJ9XqSN+rrZFBCqvg&YTLT*U?JFF1vuD&yUX1#|w=^RvxW3T7EBg zG<`!!tZUuHzIGlJ(Gv#te^a{+u9Go&YkUd}bdxOd2k90AQPiV%iesnp+d8Mnt_w2a zhWC*T{^MFq$C}Z{wmDC@dqO_U@ZGWeYxmdM_Lh$=kwkpB*P+y%>4-^3IkM;GU%#d} zIAinXs1=oIDU|yC``%Yyz3p6&jeV>N?K^z<`!ec^Ap4Oci)ZO3{t9E`OZk7maedPD5}2hQXjT+ul(!3s&oYN8-MN8#syo-{UAu=Rnu^(+PaLxGIB2$~@6nxa&JULcJI8&#?OMNxJp9fZtS_v*W^TK8 zVwkt%`By0m+()sU^ZP#Z^Qe@Ls_lN)ENotP*MN15xPC{)Ch2+ImQqHfZ%d6d-m%@- z(Q#2jM7uHd4~O)7VUYBz=l!JWnXZMm3h(b4;L;Gcydbj1?P1Ld^WQR`E?@Gobc3T; zr;W7423xH6?af&sFG%Mf`Q*>7Z@;g4Wx%*{xZUfBu}0omc5a9=`PqA?pu5G~QCTG$ zPS*g?p~+~c08`Um>pvMlvXy_?r6rPciLNmyc-N& zUc@^ewD%xoZ>!(dRg{(Obui+Iu)l0_=B%06bKaJ{_J&V=CD*z~h6dkX^nS&_{JyI% z-Rw~LIr-GpUB?8ER=n?h3z5YCW;if(P~i>rij|{tNGG1;_Hm3mzi^m~KRcn+DCC5@ zpXi{Jor2KMeoLNP z;OI1gqUw+Ga$TY>1yVpqt1Vn4sbbCa53!D{J1-{ z_lyINUWZdvlgeq+xOGyy{I_06U~I%9+X;eoh6aLeQPuWNyEBYmU3hfG{bNaa_p6j# z)1HgCs^?WJKWvCBTX*;R6}^5*oHcXWb;t5!=DRH`_fH!Y_~F$o?FELQ7l`HoY;{pj zaLMb&uRf+I7ZrvYcF<%e-Wh(dIy)rUOLT)hED}Ajc)Bf)JxG4~>b1~+U+oizKTGo5 z$3&U++0`c3-e;6YV0`!=S5wLX|M4SYhp4+&8S`dsv%GtagIq3Cg?pVzdA<4mzD-u*STl?D8|=cKC$F{htT|q4Z8KwTTa#C5y>ckYvFhl1 zW73bly&96BZRzi@9R1{W4RHfb5_Oo9KW8dZAb=&z4?)He);Er47~fzDw)FTAadYL& zQLlZ+n}2w})kGCt*E?@vN=LPE|4WP2Ge@}2tcqI9l~k6EvuanmGk@4%gQRzV)?d)O zXy|$3($(1pbeVDNQoVOZqqZK)jIVZobvf98qYS#z^GZWn9|xm7B8k!{@777P`#awb z+KAjrtJFjI&<{MVrfNr{c_Z-u&HG1p$!)x7F(W>s!ut%h{1)if{WR$=Pud zu~t8C7D6WX7219taJ;hS?vc4c4C{)jy)y5mv*#5X2X8$YVRyPsUG&ClyZXA6X0jJ` zo6;>Le9Fke-#g8S9=#=I*rK}2^G*&fj*+qNn&iV>NA$sE*An~G4O)~N%t+ld$$NUk zAHRwxyXI7kOLSR2$~WWv@=-T^uNgYM*SyrrTDz_@BJs43_B)s)-OGjBX8$=DEo~c)wp8M z%d<8?>^HmL2Tkk*CtFMxztbPK>_zFsKXQD5mNinM+u4A`-rGd8j(X!>MhgOTn61yaVHcSlc@b*YW!j&-&m zo7X}k&BvzyN$Yh&yb4a}4~~L0LhMt$_p1Wiv$=}+2V;qA|Ejl4gcZ(bM=uY8P#x=2 z-k=CLB|DF6(vKOE;nCCDv0(j*9YIdzPxCV`AMvXjw%uGkEqQx2VgGC1lb*Gq(QeH< zG@skY%;kckUu^XwcTU$Gd#WETQH{uB|7sw+uqRoMFp(#=H6+f4>E9c3h+z;^dq<{z zmSs6?)Wio}j3Ki0X7t9_t|%T6ue;cCMf=H{4;0!1kU(_)2fSKj0lfP>i61daZkUlytM>q#3i8ZG)m*0 z({eVP&AKdTztLmD>di|N0?Hh2f@e@=yFG7E+M2_GdxZtjx3jxWnR)cG`0*64P+duB z`{d=H+idj^JV;pN`E=JZn*)Y>*M85vP&dLF+5cjMwef_} z0pw@<2!SDFh68I)XM*Arj059>yr)M_#Ax#q-9igzRi(rXjnq#%c4>oOp9P=OS5?@R z=Vv|Eo1P<@HR#IB$;67xnk#sCl*`~N!BQ*i%&f`pDULSUE7K;n%{L5J@&_xt5~tC4%*1a741!6 zv_IZyWSpVaI0k7W&hyQIHPshG`kx5VHolSNB)EKX?Zo6kM2^P)nisHi9h&2b#x>J} z5C4*EX3)R9{QE*w{kifUwJS^^nUqiQvq;ms_dYoK<(g-q$n_q`#1(Dy+P3es%%D@= zjkBpC+Ar`F>D42>XUsrI(Pq)u>YcCq(BG+NQ~s%K1K0tKDZ0Wvkm|9B&xFs<$2I4- zo>)CCT%aoq^eumB|FXpOH>;-nJ@h-}b-LAssF|RDE_TJUhWfQ}&G|`s=Lb*PX4u%c z9`F0~NZ;k}*|#bG#F2>42y1#{zSJU$NJz;lDcn?|}DT8tprHgoSi+F?l$T_)BLqtmaHjocw!0>%XN| z?3h*@3aP{k=B73hT!r#c6>93Plu3O_5*c445a9}vImr=~q6m#N(yC`E-NF}g&iR#{1fBI#EtC{HEw!tLB}Ts4Ca zxdmJ*htFnkS#%nP@-Y^d&c|6?o`B0G`L%AhaAo;HgID9YJoK}G%n8NvIPPhvNuswX^VWJI9Guyp=k&z#szs&}RBp->%Xl8%BBizgZXz*X zfdkupNvKMN^4xG>LlZYJ7LKtoT)^WqQCxuW1yq9D3^p5U(fgv+D~mTL6{e<@?v2v& zK+6^fDb5$E2x8D4+|Q(u8#FG4GEf$U!b4FulO_yI)9@E{o4(u(=clmC{rY5Ng#%dQ-v=C~{CX7sYv80iB2OsR9m9z@jlZRFubS zDhL!OVZdmRMUvlQKR*)^?gOGk$S=qTa8Is~d5HiV$k>YgN)KF&t7KBsW|ZL55)dK~ z1)Ve!K=1&11uAZoqt+C@22g^Eq~FabmI*~XQ-w(A25t0P46@}0GSe)UOd5;BWit6> zjLTt@8C;w}=5RPnG6#ChprH&NA4Q2)wQ5Quh&(2R#idXgWQ@h2kr_MzlZ;_Z3Yp3W zc=;5*fQAyf08EhM3Y7>4p7@fKUP5z$NGt}HjG$0pAmBn4F{n40ClkvEPJMZ-bVKFv z{2Kw*s)-$uXsVTZoIf822%6}8lOI!{Ql8rsnN$kd031`ETH!@7TU)QUh_7;kdg=0J z5^~T1TtN&%N|_i21QQa`Wb(I^M+bmp-9uB_|vdALGjJsTQ*KN31LKYVOnfGnf{}I{I4pHKrDkvODb%Q2bGU;xeO+aOv5n1gO78_ z95&c6JU)(bP$rkk*V?x~#>2|WYO<9TK=xfcnp1y-gNiWrbpW(xyv`c>pRJg$6zDtC zm-f-OR?82NZP|?`qv-D#Gfi6d56pr8)bNTC&J&EU&2}+{qXGe&hm%=cs({Sk5X#D6 z^T<4=fI;U|X-pQ27*KvJ9DmogZEDH)1fx-sWD2R)rJ(7+X^lHH>MPXwsL~Cd{s8oE zz%pvKER9TzY(zYTOeqtnkOinUE`ld>L64@PQXyhDrB(V&H(V;zWl@3!Nmk+tk-*60 z%V(kqf7MR?-xwWQ*r`gjc5-b7pN+Hm9EeSjxpX=gtW-LijB@xqvVe}#!EqOWtMjb^ zq~-cwpFSJwYyooEpMrrX zQ#jzJp;R6j<8XLn8XcoD7)+ePVh~<;Yf=8m-n6V(*CnlsMcDFMO3i(0dhlgXY7|eM zzl7ls>G^9O(_iziR0Hk?t*LkAQ-haR&`yv-O%EU07!XdLUHdv1s zl}<((I1WJoj7H(}crYV=E9EWS_i5T6Kvbd@t3)~{SgQa;aBRdhE*PYfkP*{ZlPHX- z@J^pfr%@5GVkS>vPew*CIIKz2rosDE26r+si)xDk6{U(Ot{Xp*5!7ikHj9OfVA7^c z;n0cf9M)7Q&gD`WG$>AEFqv#(DAvlE3St5ZBHE<$P6?e5N#rtx3YC6kjj_NuW}+07 z%*P0=;PY5yE{Dn@)2MWmPeth*8l3}FTWdwj-ZNN~Mx*k3p#iP?D*{Knwap>GF#(0g zV3YZ5CUBa{;F3`a81N_q#uS)fa5hTB)P7tmn?j$eGi85NtCo%SM36@t7o87*A#iWW zjSMB*ILx-6;W~T994pr;wzF;L+d*}>k6Z*?Yu!|c&#|dgI+ZM-qI@y~XV8H`IGaqR zU|co_m`43hbf-yXTLlVq$hd*IA|xiF7EIJSAOx#~Vi_2r%|jNQ&%rPjl|yFnD8MER zr`)Onj2~mPv@=-CwfX0Ksk|tPM_&{I}B4OHyGy)W) z%JC$%LTav!+`?~E4!_{3d1D@PqFK6(5Fi>)a#N|~=4NKz-rlC(bW;dAno+r2u9>sl zY_n-ZR7lm78Bq9MZW`#F8KgC3^Kny2#NW%PC96$s&I&kt{5UI-N7QM}}GaJ+up3QG&Em}u*zdMPMk zo(iYQgbWo;2^PFe=*5?a1ibIp+Z^B3&1vIFt-`=9W3%6{pFw3qzqOHcOD9x8$f&`K zgabtzLJTHBh*C<(tpSmshJ>=@(`6~UEzES;EqIMF{l@ky5!Dho@Sr)o-?Cq9sv8v* z$!RL8jN|1cflxeEimH_;s`!4tz6%+Q_f3sO2qo7}`r}CubR=2YyNQ$tn4mbqL#2pR zra~}S%aG%+JOJN_aHV*O2_hHcs1ir`GHnj6tSr$kekf5d+ys$9>{>yrSRn8LY19BE z;tfL~K@Ns~h*$zs#7hvdOsRUAuK8QcV9+?Ihs48;i&9iFA&bYQdb)GDOi#Y}rf2RST$;Rqd(DG)H-a7B~IBPyAeJS;~jV_?NxnnI3t~V`zb9Q-LNCFer{r zEzl(Cbgn=X2Td-}!2iPqnjpwfpouM5p&^tnVPAn}OM#{lMeS#8o`BT_nw3ycms+3+ zE70sN&_oc$R|FJjc4$*$n+P5RYEWb8o}EBkr?mx|bvodI2%ugN5LOVdu0V69K(iGn z{9W~Bc&XKx3T4tglsu{c6?-sP65LCOQ^08X>w^~a%eec^C|eK^)U2ol0UJRo3N*l@ z16mFO7l6M93j%-z(D_hZfBvR0!0ldK5kpNEV;rv1lPji5sF;$*WV$ndrZ21?3&T{H zEkuY1Duvlp#B)<23gWj&hzRk_69R!0S0UawEKW*Ik;x)36_CsrVw->zu@k`r3yZNh zq9dUzP3#>|%5k94lt(Fo85eePD1nej!6(WzmViY~VP-nGd_-m9%o9qY`o_wd+4W_1 z(oIZ#6(g#4`r}0_D?a3)iiE@V}0m2Kvx=4S$s9PGR@`|4>v`cS@JWmGX)fd$V;fkL?W6P zRZGD)5=+@izQ<4LJNw75JId5bL{9X7DS|7N=o088-w3`dL<$5fO5S%cSL+hgz`;iE z1FTXY16_%lB+YDz+R$Dpp6q`%2=;p(7^5SIC8w9|?opD=K#GuZ)PQh+Tn{ z$F8nen^3WKdqq@?DN=SawS4y~;(0|xh_>i4q^X)Hq&(nQ#kNBgJAinUrtElpiwakU zSFDXG4?k4Cc6IsM7{k9M9TYK5s-Orw>9~YOQ}7_N02@Y+EZ|=%p(f#j@3tx5!Sz0uIMj+s$-6-^x zgGlW1QA;5*0{d4WDq(5S=<`@wXgBnbrD_R=D=f)W3$s=az&X%`5Wr1nuB7E>!hdLV zD0JSUb|W1EbQ+yUGp(-;xmpG!EL%rE79jdz4iNPqUfKURD#Hc6Wbksb)YwAwMKdt~nhU6P_AvC>S{^wCsKL}q;b{9q%WUfVux44^*Pl-PHi zqxM7NFCzY;`+;DL_NN7{uM6tA?Dy^`Y14*y4QR}+dm9UHEef`3#Me~5-U0cAkQ(T= z>fP5xzutuSr6^h2dQ0NhCBKe2eJSY^^ra*OiM}rQHC$f`dPP8MTY@)t)-N51 +#include +using namespace std; +string s = "aab"; +vector> result; +vector path; +bool isPalindrome(string s, int start, int end) +{ + for (int i = start, j = end; i < j; i++, j--) + { + if (s[i] != s[j]) + { + return false; + } + } + return true;//相等直接跳出来 +} +void backTracking(string& s, int startIndex) +{ + if (startIndex >= s.size()) + { + result.push_back(path); + return; + } + for (int i = startIndex; i < s.size(); i++) + { + if (isPalindrome(s, startIndex, i)) + { + string str = s.substr(startIndex, i - startIndex + 1); + path.push_back(str); + } + else + { + continue; + } + backTracking(s, i + 1); + path.pop_back(); + } +} + +vector> combine() +{ + backTracking(s, 0); + return result; +} + +int main() +{ + vector> res = combine(); + for (int i = 0; i < res.size(); i++) + { + for (int j = 0; j < res[i].size(); j++) + { + cout << res[i][j] << " "; + } + cout << endl; + } +} +/** +result = +[a a b +aa b] +/ +``` + diff --git a/cpp/Leetcode.md b/cpp/Leetcode.md index a38ff5d..cc4ba0f 100644 --- a/cpp/Leetcode.md +++ b/cpp/Leetcode.md @@ -9,10 +9,13 @@ public: for (int i = 0; i < n - 1; i++) { if (nums[i] == nums[i + 1]) { return true; - } + }p } return false; } }; ``` + + +