From 4e024728ad864db02ae1fe97b621f82d2cf3fc0e Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 28 May 2018 22:10:20 +0800 Subject: [PATCH] [BSP][X1000] Update README.md for X1000 --- bsp/x1000/README.md | 29 +++++++++++++++---------- bsp/x1000/figures/menuconfig_board.png | Bin 0 -> 22319 bytes bsp/x1000/figures/uboot.png | Bin 0 -> 12272 bytes 3 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 bsp/x1000/figures/menuconfig_board.png create mode 100644 bsp/x1000/figures/uboot.png diff --git a/bsp/x1000/README.md b/bsp/x1000/README.md index b6562a8ab..bc88146d2 100644 --- a/bsp/x1000/README.md +++ b/bsp/x1000/README.md @@ -21,12 +21,12 @@ X1000 是 君正 Ingenic 公司的一款面向 智能音频、图像识别、智 ## 2. 编译说明 -X1000处理器是一款MIPS32兼容处理器,由于[RT-Thread/ENV][2]工具中并未默认携带MIPS的工具链,可以按照自己开发PC类别到以下地方下载工具链: +X1000处理器是一款MIPS32兼容处理器,由于[RT-Thread/ENV][2]工具中并未默认携带MIPS的工具链,可以按照自己使用PC情况到以下地方下载工具链: * [Windows环境版本GCC][3] * [Linux环境版本GCC][4] -安装好工具链后,假设使用的是Windows版本,工具链安装在`D:\Tools\mips-2016.05`目录下。使用env工具,打开console后,进入到命令行环境中,需要手动设置工具链的环境变量`RTT_EXEC_PATH`: +安装好工具链后,假设使用的是Windows版本,工具链安装在`D:\Tools\mips-2016.05`目录下。使用env工具,打开console,进入到命令行环境中,需要手动设置工具链的环境变量`RTT_EXEC_PATH`: set RTT_EXEC_PATH=d:\Tools\mips-2016.05\bin @@ -40,30 +40,35 @@ X1000处理器是一款MIPS32兼容处理器,由于[RT-Thread/ENV][2]工具中 menuconfig -来配置RT-Thread。当前这份BSP支持多种板卡类型,包括哈雷2,凤凰板以及睿赛德提供的RealBoard X1000开发板。 +来配置RT-Thread。当前这份BSP支持多种板卡类型,包括哈雷2,凤凰板以及睿赛德提供的RealBoard X1000开发板等。 + +![board配置](figures/menuconfig_board.png) ## 3. 烧写及执行 -在烧写前,请使用两条micro-b的USB线连接到电脑上,一个是USB转UART,一个是USB接口(用于烧写固件)。烧写需要使用君正提供的[cloner工具软件][5]。请按照下面的方式设置cloner工具软件。 +在烧写前,请使用两条micro-b的USB线连接到电脑上,一个是USB转UART,一个是USB接口(用于烧写固件)。烧写需要使用君正提供的[cloner工具软件,注意是cloner-2.3.0版本][5]。请按照下面的方式设置cloner工具软件。 其中, * uboot.bin烧写地址是0x0 -* rtthread.bin烧写地址是0x80000 +* rtthread.bin烧写地址是0x40000 * rootfs烧写地址是0x400000 -> uboot.bin请使用bsp/x1000中附带的uboot.bin文件 -> 关于rootfs文件生成,请见第5节 +> uboot.bin请使用bsp/x1000中附带的uboot-for-realboard.bin文件。关于rootfs文件生成,请见第5节 在连接好USB后,如果是RT-Thread RealBoard/X1000开发板,可以同时按住 `Reset + Boot` 按键,然后先释放`Reset`按键,然后再释放`Boot`按键。这个时候cloner软件会进入烧写模式,烧写固件到板子上。 连接好串口,可以使用putty以115200-N-8-1的配置方式连接到设备上。开发板复位后首先运行的是u-boot引导程序,然后再由u-boot跳转到flash中的rtthread.bin固件中。 +> 如果是自行编译的uboot程序,可以把bootcmd设置为 + + bootcmd=sfcnor read 0x40000 0x340000 0x80800000\;go 0x80800000 + ### 3.1 运行结果 如果编译 & 烧写无误,当复位设备后,会在串口上看到RT-Thread的启动logo信息: -![启动信息][6] +![启动信息](figures/uboot.png) ## 4. 驱动支持情况及计划 @@ -90,7 +95,7 @@ X1000处理器是一款MIPS32兼容处理器,由于[RT-Thread/ENV][2]工具中 ## 5. 生成flash中的文件系统镜像 -在这份BSP中,默认把flash偏移0x400000后的空间划分为文件系统使用(即Flash中4MB以后的空间做为文件系统使用),并且以FAT文件系统方式来使用(RT-Thread本身并无一些文件系统上文件的依赖,不过第6节中提及的Wi-Fi功能固件是放于文件系统跟目录的)。 +在这份BSP中,默认把flash偏移0x400000后的空间划分为文件系统使用(即Flash中4MB以后的空间做为文件系统使用),并且以FAT文件系统方式来使用(RT-Thread本身并无一些文件系统上文件的依赖,不过第6节中提及的Wi-Fi功能固件是放于文件系统根目录下)。 这部分文件系统空间,可以在系统启动后使用mkfs命令来格式化,然后装载;也可以在PC上预先生成,然后通过cloner工具烧写到flash上。如果是预先生成的方式,可以使用env/tools/fatdisk工具进行生成。fatdisk工具类似于把一个目录下的所有文件及子目录都转换成一个FAT文件系统的映像,至于如何转换,相对应的参数是什么样的,主要由fatdisk.xml配置文件来控制,例如: @@ -134,7 +139,7 @@ static struct rt_mtd_nor_partition _sf_gd25_parts[] = }; ``` -当前BSP中,这个分区配置是这样: +当前BSP中,这个分区配置被配置成如下表所示: | 名称 | 起始地址 | 大小 | 属性 | | -- | -- | -- | -- | @@ -143,7 +148,7 @@ static struct rt_mtd_nor_partition _sf_gd25_parts[] = | rootfs | 0x400000 | 8MBytes | 只读 | | appfs | 0xE00000 | 2MBytes | 读写 | -## 6. 使用哈雷2核心板子上的Wi-Fi功能 +## 6. 使用哈雷2核心板Wi-Fi功能 在RT-Thread package上已经包含了哈雷2核心板带的BCM43438的Wi-Fi驱动,可以在menuconfig中打开以下选项: @@ -156,7 +161,7 @@ static struct rt_mtd_nor_partition _sf_gd25_parts[] = 然后在console命令下执行`pkgs --update`,它会下载Wi-Fi驱动package,并部署到这个板级支持包中。 -当编译成功,并烧写到板子上,系统运行起来后,使用以下命令行关联到Wlan网络中: +当编译成功,并烧写到板子上,以及把BCM43438的固件(43438A1.bin)放置一份在文件系统根目录下。系统运行起来后,然后使用以下命令行关联到Wlan网络中: wifi w0 join YOUR_SSID YOUR_PASSWD diff --git a/bsp/x1000/figures/menuconfig_board.png b/bsp/x1000/figures/menuconfig_board.png new file mode 100644 index 0000000000000000000000000000000000000000..94051cc68320839654193a01df3ded879a186537 GIT binary patch literal 22319 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 literal 0 HcmV?d00001 diff --git a/bsp/x1000/figures/uboot.png b/bsp/x1000/figures/uboot.png new file mode 100644 index 0000000000000000000000000000000000000000..6bed29e34c2d4df9d5aff6a974063386f6622feb GIT binary patch literal 12272 zcmeHtXIN9))^1c3v9U!FrK$)>5ZId{o!F>RLP-dS5Z%;{y5tu#n1LVv^Kc`DDReB20K88+ z%6V`Q05|}!ybU$t*B=x-3;+ND09^nO_;HWe zHy{uU1R?=oBoK_$b#vo4gMs`W{G`k8f#f#>z+fQK4dBM_0R{t*KNAoM1|z}9`}gl7 zkw^gGF+ew2S2q~|*aLuL0B$uva10R1PdU17HDGWI7|BmLNMsDZ{cJQvH+cjclLL-v zM8?FpB_|_ea*#PO$Q=H)(XD1LSr_n=mabb27!U&nCc6P*kiZ%@Kn@ZZ!>5JhCq6Ck zPjWHfm>6VovfJMTz>P8Be~@X+L5?Krj?}pA@zWmQ@#DuaKYuy=Bc_p`^Zzu)H0H!K z^3R{O|5EX@kdxEMKXMxR&HT&HJb7fVW^ZqABzbSI=HthYU%!6s>gpQV8yVqO?v1Rk zuk$m$<&%kd2>PP{@NoSAhQm zq;HUluWQhG4V7P2u5w;FQvrZ0Ftc0Np`lKzSxHfnZDHd?F*TuxFZBd_wU`lIt4l*n zqq+?1tefWhQx4e1x(ooXixALHFABVoH@aT81DA-|i=c+gMN;2njn$7GIP+{D9R(7J zZPe3K581u%7Bb(W7mYh$DISe$2E4uU*4$FsQtq;Fk;p4Ss1W%8L15MjKKoJD0Z^Kq z0sJ7jw{y-#s5{{hjJJsg@qU8}b^j?3y`9P)HPBexT+tb>=#3LGPd0F!JzO{kq z&pv`<%?eY2dz*gPD{{rw@L4<#y)`5g4Fo-iiQL#$HGH7VEk z+-aJVc7YLUJ3b0c-)#>1E0{CctUc85bbD_S6ze?U`nwJ++~Deq3WE7skD==!T%>#j zrxn5Sh4ev4+l{nwuFPJdz}A>5Pm76Z>Qp#Xvhi6p%U|j}usI@qCTm7e^(dH-B06-1 z`~oPbYN&pP0EFF4u{PNrYoxuKGh}t_(Hk%B)4hdhR#@EF6NUBJ@6jA3##%Z*R}e1Q zUyWC@k~4@*y_^Lsn7M_yWXA4czNW3KGz{G~l9vsw1QzFUiKJ`(C;gKSoEUolywYYC z50bxbTxJSm9bHpGo-gznVuEqs9wtQ{nZir4;gvwH4=_~G-WKC%vOYu4{N|pzL)wt) zTiC0T__VqBIbmY+et)UC*++1D3L)r)cbcmaCTa#xn}N-?jUMPzuLE<{cl7dmY1~8@ zYj^L9YB`<2Pl!Zl{-Fh;<*S`6?5`l@*O~ToE--6YTth; z)IQjgjmN<2Vb?Hk_5Z1F)&)&^f)m(KI#I|{PCMkE)qFKHvA|4I$Nk&9UY^*VMV!ow zX3--yXivXz$V#=@G%`qP@oF9R3KgEX)&aU$vv#7~d$ry8h7IrIC94Mw$5mtrWQrV< zFq+*neB*IYr^dU%*3U)ZwHdq?C4?|xI8LnX6iMMaSYPJh5z2P#P0UKV}Jnnoom ziW&yQ@cBxF%f(r{+FQxRt!BQJYxd*#|62DjIATwA%`xH7JUws65DG13c}4H6_YSnA zDQUz09;yZAiW$Zgh7q;OARnrf8O!|e-o&$?7vQYAq$mNk*D=2xf`Z%I{M|R#ocm`{ ziqW~?psN=lhSV(79r8&2ZKCALF~9x;p+Sfa*-d7ihd??i@YUHdhGPN2KXm8ocD1FP zB}~`gYEgJulqna2;T4R6`V)7+uIUj~da&bsjKFt3f$-?n{^2 z{FmANIgNS1A)0zt&shALsM@HZlgu%BCS~Ci+BiJirY7ydG%H|pJUF$}J+?M+W`MGg zY*?^b%c-w=5rOjZppb{X(BIRxDg;+{4CZHFES6-k*o}okU6HdZ9mln(KBGGQZF9YY zf+|untE>i_(5sBDQ(sx@0t1&CMAW);UZb_oHho64`7di`CsDW=p!CAqrWdCldJ{pi z*mN)2LcB!u(he!7# zqZ`SUQuE|~ZVD)~@EuUFe=m4vb7H6`F+27Vk??`nP*a-@>qyApEqPdUNy=Ca*@&mI zJ>AQBr?dl;@_JBzGiPKayzSLlu8G{jOoUg!GVj(o$ZUN0)x z#mhJaH%||ej;-1B&!3H|yt&tFS`+2-?n`##Pzvij$lwOGJiL6$KM^QB7@ML;x)Se~Vbnrp#$$L@w zv^!%RLCCg<*63&VD6i3Q98I86WY2e+ks zcZRSMPp!wAS8DMDRQp~oqdKz0)6X3yox)zw!a}T!0*C)=3IYlF-G+~rAKA1dDwcJRzL-rNwHQ?$i-pgdJWK2?{;0u{;h<>9uVg*`a?cExMQ?KzkX`&JO z%BG;&54H+})l^dwCIoO(-LF?FevLe7Q1uUvO31zYm^11PosYgz-q9UW+U*l20uhVi zrrT+d^5f-|QZ{^>t_p$irWaa^pZ+}SLHpOtN=*lBssrijA zq{cHcEJLPPtxanZ= z>LiMwgb4#*YBwop;$4)4LVK-|`fvwePfqofnghB|{fqqmeb3{sppAA8Yns|7M7!)I z83qxX3dhCa58HwtA{H-3eR>c6(N%Ly<(KaL!(@jV(xs>xc3NQAc$H%IMLXqqnBpYJ zQ~kLJ&0lwKsYpb)_s3maH(&nBJXdBNrcFIlST@I$^J#Nui#`H{31ltR=iENi4Q8K>4>3(QOnm0yT}GV}3QUN$(^J`-GxSlu z`wM(pp|Gu1=3WWbkJ-Q1EtWFpp2W$MsPSQXoQsDJxxC!3{ zPwW7=bcup=izfQ_aQ$;FH@Rr3jc|0r?&XmTPtxe&?D(HD%>!zxJlFvrPCzKG%NREW ze}!mZLZ5$`qcXe>5L~rup%#^>| zl;V?tzEQYJ63w1bC51S)9Xzq|EeSX>bs<~LX{tuR43Pem#5M=8e;UpIKHokBY}b6- zhue={p2$nr6S?3fq+63WmlU*&e8#P>QZhql%lV&rRRJ3Fz2jBIvR7|Q-S9S`*RWF= z<~c@~X@v*6>#v|5o#p@@{3ZB?DQQKU=wQkwN z3EnV$s&gQ?y4FeR-lWl@=dw-7huh?I_A2UgWaldwrEHK{6&$6anNO_hNl#7#g>yI^ zCa>;n<41gof2Y>IypX?EO;m(LX8G#)vJCEK*MKRf{7Ml0eIB+2EXl}JpLI-c$6h$y zWa`5CFMgRsYgDo?Uvnd1^2?r$SMHIr{T4c`N#FhEm9~^S8wSdg3Ty)5ts6>lvMQf9 zz$|A%cr-6(w|}(;`kv+hH8E+Pyi!fOp7@L-tppi1s$+f{S*m3mk&QqsMkbOvFu@J> zn#u&IXo+y&Y8jgS0;q}Wyz!=__U+5;mChbQALq{sU(Ly@KRLP!eUnB+{ILe99qBu~ z7g++#x-3Bwv?-h0whNnl*hnlbL+cTL&43{dO{{J4S<;fe_~)ai8;;ybREKdZUgBL@R=K=I;IcIyO@2x1 zHzm)bEF`Th8pbk?Y((z%nCL#ospZjH5;KKi^jZ7HzqMKu_B|w{P)T0z2~L8ua#%$x zrZ`3S^Uj^ab=X%F_`p-LKHu}ma2bh-($QH#(j=>I@Gi0w;13by`|>a zI(p!!g02NKEZADkE$A_SzpC7V53@w(MF;}FbrJNPqg=JAZS|Mln*Y*14$m%VRQ*CFcL?WOTR3sM zy(qA0emdU+=wFqxTuQ!&ZA;rpTCJ+nNK*!N^qk5KX!>G31$hGOB5a<7-ypneO<2!9 z-vC^~okkR_rW^KfUaMGxPwU<4?hkIxV>W*PR`;An;O8KnlsDiK6ElXA_u+H6>m0Lh zs&7bv6`cr_Y0Tt`2k-Ift3E;Gs2RilE_G(W6@5DnT)Yt0;OSv!0Npjm5s3XuW@LE! zv%$RYj0kK-5s{|HyR?u#3+?z+LSEJ#^EGuA8EE%dP+9zvG4u+hsCiIQ{dW#uk<9ZVv`W+QcgALX^8%wT7XrUtprYtfpanNiNBTSQ?bjxZ}&B=SHteot8lrL7Ir9e98 zLbJ)V=9W}c#jCm`)uZQNzNEdF#Hmjrg) zcCa>p*f4|d^71+BRkF;>X1vEq6b}{)MVU2|Yzu1CgdK_7-Kj{nnmyNa%kKraBhnGO z|Dy|ZNUJMA5lO6k>viO@vk^hyzRd_+D;zX2Jpf?ee-C^nX;XCL4rT#(omMppuX*u{quc`S46Fg*{aZ1x7xsjQv~tZn z;zc+(u~}8DCY5svmRlm=ek~Iy*7=U7A@Fe#33KhUw}r)(i(n6y5$@%;TKEm^vrBsf zv%O9`+@0+T6Z$yBH&_1M8&9$zVApfO!sQ!FW=|dV(QhrV`a`9LkL9&`yg%i%Tl2v6 z)xj%HAS^s$sis>;TeyLV=^txJE?1Y!tXPB#HW zK^@3qsG+ulZi%&R|4gtZBpMXOR%*_!EmbnK(_4?sDc70k*t4!$A>L8}UBr3! zLE)Zqi0?AirWuq)Ya}tWgj-o8PVZ!Yv^!{eqs4Qvl&s`n0Wm1vcvCvBy!>MCK%C2} zthhb5VLZ=73;FGYtoELD-R#X^QENWA`M=4jEMplj^6yEPXgEE%OO}bMB+*ygT+dm( zJ0cE4mV^Lp_Q&U%?Z%|K(~)##kNR1+(mit^eKiLz!NLXehlzf`B{PkNN_ zKFnLG(i^syXn0Z(?RM^q(r?#*y@q+uI%SG&1H@>r9{k%6P^TvkvAYvqxnjfLL7KeJ> z>eCIfU*GZw`W1vuvPOf~u2?=D4BtITNqZ{v-pSjxo=mpzwbC11HXjjZjMt>-|A zjXx^!cQDmn@G+;W))W4XY8Q1y1^m9*efEyeNEi+38OA>qoC1*iAxBqyx}v^ezRVV5ft_8s_>_ujjP??ld&RM0%Qo6z4zXP&K0<~&SJSVaEC z-S@k_H*pi%8g;yoWVYM+k|6vLr2%rn z%XHfA+ePLG+9#p@;ed`AUAU}EKue}fA7URB%gutHMn#Iq(IigZ2@0dKzO2MX=HQ&?pgXYwXq;@d>q z%BMcMM$1rz9j2IO+28U-kb+8dYha7IgCviYdz52pJ#fz2SKyp0S z*NUeGWxt9t(n9gRIq6Wz3>FGu+NMs|U^Z#UxL!Y2 zYslA?DZTGOWbPrbiiuWpuG2yWP%)LZbcGQ}sA7mJD|FzjTpjf97^rp$!nQu$fDNLa zWt^y`HJsGC>E3)XDZ?u%vg&)N0A6NXtk|>fC$axbgXYMVM-1mY zlNw%>d3wv4P~0uWFVE|^VSURVY*60E)(fqU@3OVPQgA;=Y*>{ z4`pd+RNOaZ;}-en8|_z$>o6y8@{-cN`~P8Y=39c74f9(+9BigJeSIF#=WJ*$7iVIx z=j2cuL4V|7lF{=EH7~w>pOZ*nr0a~v>&XyGfIfLMG%W}{Y&v4q z1~J}caz1vp+<^H$gj6q%dkew}8BO#;#$j0D>5{erT4ivf>xkRsYCk96l=r2jAzW$rR6O@%FHMwZjRK9*Gf|uj}Cbu zY^0{VUfw&EA>4HAigXL@-q`rw(fQ*WBi;yYlEkRUCEfWv=n|n+I_bNd`ao{sEzHkb zYlAq);TK58@TWvbQgr$sp9xs*!uZN@$^-W5-DDWu3fKZsywp~WJp+r~Ne#beqhQX^ zG$shBo{ER*uuvfz!TE`|FmridKjj^3JC3lpgPDs68o9vBmrj3W)RA%;;XJl|*y-mc zDXUR@e@BjK(VLm`BmNZXRTuqoYd}((15-WFf(Ebhp=&PHtZLy3cf_M<0TRQgxOOH6 zfR*`g%;=w1)0q-Afu~Vb2r{R+vx!%D%ksutrIWY$+$!QP^R*pM}~Z z>_}*m@-OUGqRr$IWIEJicatDRq3eD9rR2qDa6!L~uN#BxG6fZtq!1IkAYd!4XIC!f z5_)E3?f$zjr&a(O-%827EvU8cbzBaqHaD!ge&2`R_lv;#%H7;ECWM#J!MXdsnQoCb z$g!1EsP2I6=h?6~bt?OwBW-8TB)s#hhzRkDoN`?pNRw)@fn^}9En#Fd+Bz!c_^Sq$ z(2OVGJC#5hr+@Ub`>4JX^<`x81ycUa?Rieh3u=#J>6gfSe6b%Q*re%5|LJ?46|$kS z3XxUPR$ zBCITBzT%$9KB|R~2jC|@@0I077SyQ>qf#4ir#l0HUFkv}6+Nuvm{CWiJPXZb@O`K^ z0PK@&=(#Cq_|IGJoADP^vu5fPG(%N=KJ#gmNYGm=Oeaeo7t<_agK!(v656}8aIKsV z^>hBi(Ee!$_u6ABPJ|?01-S+5g(d`&?i8$sdNsbg!8n*7fe6b@hMfZycHN(A&xX4P zG`{oQG0L~ch$B+CDZ*yw8&1@gcV>OTc{7|nsXuDgY9)zT3ajrnM1A1l_eO>YXv<4o zgzq~kk}a;Q<1mNMHiNUi&q0es9+JYXneGVdODsY?t5z~7Up>Zr9Dgeh7;O0+ww&eT z!Lek&bJr3-bjJq%g*8{}Fvva8Rx&@d#LD^EU#EOEKkKexov90SvCFd<2unClSKto# zS-CDZP#QLszg~VecM^+3>5yD>pL8~iKGL5UfY}tVe*4gH_aD?^P7aepzMJ^- zsR@Xse(g{ElwPX8D!JB(mvl;ZNIL3+zCBWS>?nnsHeJnFL4HYB9WY)sPxR6gwA13; z_`jlsI{exBg6#>oij!fuyaYLgeLntC$i9MD#X>&dTzYeo^5)Z-zCgfpKK`*8CN;>F z-ZaFp)l)sKgC&75?yOqqQ|%UVtq9DPCW2)v@>D3(43*=sSmcjlk)&R(6=9j%ftIo zslS!}CC5#zZ;xuoX;VhnVjhvI)U8~>O}Bk;N`H;uHnp`OXGY<=KzQYEDl-d5$&J{k zKp4S0Azg7b9x7yhUlCRqaA6D<(znQm3cLmUY+WM-(l_>#3^ZYP4Qt2FsM?H(B}}{( z$bgyEVpixKZ26ep^p*6W{c8)j(pP`*wSxun$yB@YGQAkrX0TcZ zzxh1Gem@^iKmrY<0r*@Q*k2$ac0Q3L@|gD@mIRYZU?&6KeaXVjoMs5lSq&YQ#x+ky zJn>@)xUkK$12!waJ?Z`dvwzcEaYmss#+%!PYh4&#^Nv`WZLO`>w}&+lwK!|Le!Hby z%+#|{Lv-dA(Lvnpa3m|XiuT>G)0HAe+488*0CBS?M)c2}gJq{STXT~~pqJC}#p2$``y8GA4ga%i=^?|SV!}tV7Hao~PT%+~M*||* zceUeH32r27s&XmdTg<_2Od`29l8*>6Zq7l?b~cVvNtTIKwZlBp&!_)Q_SKbwpGZ@N zjGERH2Ue^f{Ibcg60`FWbveZ=qGI;1+Av){sAR!2ADgFvI1$}3Y(QxJL=QHR2I@gibPiQ-QPe6^ZNixHmXHLn5%KPlm8(2rQSCD(%=Mf7GChVdA$@Z5M zOPMaP2AS-kv6lO*oy-ZPO}f07%2N$o!<8V1q|BKDqRVjttKFHv4>BQM@gti?#*wq@ zW$s!{z+wn)Ew0(*H7RPMJ17^ zzne&~?xZkGG5TH}nhPvzRfwv!R-??+ZE{$S?ph`k^+KJDU=9j~) z8sC!Rzs5n|j86@~&RzOUmv1bw?iu0f^Smw?fWGUE(fQw2^x@KLj^48zHulGx<1b3J z5L2B}w9|@#T_8oeyo8CriV4(pHj@_U6)Dou*IgTKvWZ_e#p>SjS3}w}jlF#R zgrEL%WHKk{wS;2uYV8>o*Ur&YOMR+?V}mrm1V1`Qm|fk1(^reTB?I zIcX<`{wen6psY4vo^SM=)Dpoebw$bn=7s*l*EWF!tlTn!VyEUb`+d)>>{F(s)KxZ6 zj6a2j=CkaFHD~Jw-dt9IJZA)HH^a8oQ!zVf$Ez?jvuR}P&YS&|5Y4ivx-Oj8lhBN; zj-raz@X;*!EM<>m+_@Q{+hTs!H8vKUE%bD>7q;%l4QNGd$fP#bx4|IJFD#IAy7Wu` zFd2X5jGWy69UwGYn}taCnR zel1p``&r{QH_yPX7?R&vY_EUQiGD>V&dLZV^+T@*H)f>lq#cPe+=?PVQWfs79%e$+ zi%no1{zH?D&`_DZ8hK{Y->^l?(B%vclVShk|R3L~z!TZ;*)M zKe<7Aa!fzp54v>~tIVk=HrvbdjlQMWdoh7M-Sw>nIzvIm${vXV%av-W%yx!P&h>vS z>HGY@*@{RV8#+;vatqfC-bcOxV=I{}PV1&&M#oR2%pr-O8vm!rSWI(2QcB{Ub?uYTS|x z?YOY?Mo3G-P5rJ%;V@TmN<|_07r($9ATzDH5m?{s92dHm6@7HlF@*|uFd39c-)aw^ zWI4Dg-kCxg)76g~=n$yxCt+-v`zNJL*2h|yvJKL?FZglNFV#T@KP~$_3r)>^B1CkT zH05Rng$E04GbzS{lUt4yi-GntCQN(^K4dX!``s166!u@?(|v}`PND0_t4R}QApM3( zbE$P1W?WI&#cVgdE<%u>-GT#*Dm%ty*a#*-&{^J0J)jxNoZ%W<_bT^Byq4m~K*)8? zy+S?=K;2Kby34J?6VCX)CAK*R`f7p7{FhEo@&E~`OO9DPpe{TT5@sEBH%U?$62K0- zg!?j3ItUp`qAa#m;^@eYgO3lou*q@(va}nwVq&S%>_qVakLB+yY(1)UmXc?RF z+@tI>k(?3pB=|G)tthh*;WFkQ7Z>n+D-!Y_aRc-1Gh=t6L#a98p4L0cbU0mqeepiy zNu}yjHsOK6Ia4Yg=BM7_`nv!;DH{v{B3n3)bHW%&(a3Zr20g;bGHb-cs4g=qy{NaB&TL~k2AGjH z17efV_7^U$8HnBzBSw;@ZRSMVT>Awvk2NLPU^BE1wy2MjHSp+^C^esNhURW+Uyl3R zG#c>Pl-kgpx+JQ3HM}{O`i-MtRRG>kl2Rrd<8^yB8oe6KHpRTXm1gZKF4H%765rid zw(Ns8qQlI2P|O1XP#Lg5dguhNJAW+BuVPO4pesL+*HGphpTs`V6?Jy%rf!f_z+c4W zGCGitw=tp+(+(L|R*@#$l>I(+5(32tGcIOOy11=I@#cDn@v22+>Kd}`gZK?>rwBi) z1h!eF1GJBGi&EIRb$$mXpqm5m{oj6K5J^r@7WLqez(i2f4n?3y1pCv8NJ=fSrrMmk zXkH|;$%oL5Y0U|}Vq0ob1OaYe8S$n3QPDM^iNp9+`P`?#>mUt+S}9|dn-aZ9w3f*a z!cb&Bn1hU7S;{R4;>naOX)c5xiM}wPsuP*UKEGPNF&OQ|ZxbV$pUL07K!7GCvE{tR zrQH#X