From a8c114b7f5e065b444891066b46d98e8e2e35c60 Mon Sep 17 00:00:00 2001 From: "rick.chan" Date: Mon, 5 Aug 2024 17:15:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=B0=83=E8=AF=95=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=B9=B6=E4=BF=AE=E6=AD=A3=E9=94=99=E8=AF=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: rick.chan --- .../Applications/PyOCD/PyOCD_的基本使用.md | 12 +- .../VSCode/VSCode_ARM_CortexM_开发.md | 108 +++++++++++++++++- .../img/VSCode_ARM_CortexM_开发/010.png | Bin 0 -> 44563 bytes 3 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 Software/Applications/VSCode/img/VSCode_ARM_CortexM_开发/010.png diff --git a/Software/Applications/PyOCD/PyOCD_的基本使用.md b/Software/Applications/PyOCD/PyOCD_的基本使用.md index 1630ec9..f2cba13 100644 --- a/Software/Applications/PyOCD/PyOCD_的基本使用.md +++ b/Software/Applications/PyOCD/PyOCD_的基本使用.md @@ -22,7 +22,7 @@ PyOCD 通过 --pack 指定 .pack 文件。 pyocd erase --chip --target stm32f103rc ``` -如果需要指定国产新,则需要结合 --pack 参数,例如: +如果需要指定国产芯片,则需要结合 --pack 参数,例如: ```bash pyocd erase --chip --target n32l406cb --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> @@ -34,7 +34,7 @@ pyocd erase --chip --target n32l406cb --pack <"/Path/To/Nationstech.N32L40x_DFP. ```bash # 擦除整个芯片 -pyocd erase --chip --target --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> +pyocd erase --chip --target --pack <"/Path/to/PackFile.pack"> ``` ## 5. 烧写芯片 @@ -42,7 +42,7 @@ pyocd erase --chip --target --pack <"/Path/To/Nationstech.N32 使用 load 命令烧写新,需要指定烧写的起始地址和要烧写的程序。load 命令会自动擦除 Flash 并校验,可以指定擦除和校验方法。 ```bash -pyocd.exe load --trust-crc --base-address <"/Path/To/Program.hex"> --target --frequency {Examples: "1000", "2.5khz", "10m"} --erase {auto,chip,sector} --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> +pyocd.exe load --trust-crc --base-address <"/Path/To/Program.hex"> --target --frequency {Examples: "1000", "2.5khz", "10m"} --erase {auto,chip,sector} --pack <"/Path/to/PackFile.pack"> ``` ## 6. GDB Server 调试 @@ -50,7 +50,7 @@ pyocd.exe load --trust-crc --base-address <"/Path/To/Pro 使用 gdbserver 命令启动 gdbserver 服务,然后可以使用 gdb 客户端进行连接调试。 ```bash -pyocd gdbserver --port 50000 --telnet-port 50001 --target --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> +pyocd gdbserver --port 50000 --telnet-port 50001 --target --pack <"/Path/to/PackFile.pack"> ``` ## 7. RTT 控制 @@ -75,10 +75,10 @@ SEGGER_RTT_printf(0, "Hello\r\n"); 进行打印。 -该方法不但支持 Jtag,还支持 CMSIS-DAP/DAPLink 等调试器。 +该方法不但支持 JTAG,还支持 CMSIS-DAP/DAPLink 等调试器。 ```bash -pyocd.exe rtt --target --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> +pyocd.exe rtt --target --pack <"/Path/to/PackFile.pack"> ``` 其他参数: diff --git a/Software/Applications/VSCode/VSCode_ARM_CortexM_开发.md b/Software/Applications/VSCode/VSCode_ARM_CortexM_开发.md index 992b311..4e3118c 100644 --- a/Software/Applications/VSCode/VSCode_ARM_CortexM_开发.md +++ b/Software/Applications/VSCode/VSCode_ARM_CortexM_开发.md @@ -16,12 +16,15 @@ published: true - [1.2. 项目配置](#12-项目配置) - [1.3. 编译和下载](#13-编译和下载) - [2. 调试](#2-调试) + - [2.1. 基本调试](#21-基本调试) + - [2.2. ARMCC 编译器的额外调试配置](#22-armcc-编译器的额外调试配置) + - [2.3. 使用 RTT](#23-使用-rtt) - [3. 国产芯片及 CMSIS-DAP 调试器的支持](#3-国产芯片及-cmsis-dap-调试器的支持) - [3.1. PyOCD 的安装](#31-pyocd-的安装) - [3.2. 关于 PyOCD 的扩展说明](#32-关于-pyocd-的扩展说明) - [3.3 PyOCD 常用命令](#33-pyocd-常用命令) - [4. 常见问题解决](#4-常见问题解决) - - [4.1. GCC 链接错误 引用未定义函数 \_read \_write \_sbrk](#41-gcc-链接错误-引用未定义函数-_read-_write-_sbrk) + - [4.1. GCC 链接错误 引用未定义函数 \_read、\_write、\_sbrk](#41-gcc-链接错误-引用未定义函数-_read_write_sbrk) - [5. 外部参考资料](#5-外部参考资料) VSCode 的嵌入式开发插件具备了相当多的功能,这里主要使用 Embedded IDE,这是一个支持 MCU 开发的工具,其优势是可以通过 pack 包来添加芯片,降低了国产芯片开发环境配置的难度。 @@ -58,7 +61,7 @@ EDID 也支持使用 AC5、AC6、IAR 等编译器,以及 STLink、pyOCD 等下 ![工具切换](img/VSCode_ARM_CortexM_开发/004.png) -***注:使用“Setup Utility Tools”安装的 GCC 包在使用时会造成 FreeRTOS 堆栈大很多(TCB 中的 struct _reent xNewLib_reent 结构有问题,runtime 的问题),解决办法是使用 STM32Cube IDE 中的 GCC 进行替换([点此下载](./img/VSCode_ARM_CortexM_开发/gcc_arm.zip))。*** +***注:使用“Setup Utility Tools”安装的 GCC 包在使用时会造成 FreeRTOS 堆栈大很多(TCB 中的 struct _reent xNewLib_reent 结构有问题,runtime 的问题),解决办法是使用 STM32Cube IDE 中的 GCC 进行替换([点此下载](./img/VSCode_ARM_CortexM_开发/gcc_arm.zip))。*** ### 1.2. 项目配置 @@ -96,12 +99,109 @@ GCC 需要配置“Linker Script File Path”,这个是 LD 连接文件,该 ## 2. 调试 -Embedded IDE 不具备调试功能,需要 Cortex-Debug 扩展插件。Cortex-Debug 可以与 EIDE 进行很好的配合,一般不需要进行额外的配置。当变更 EIDE 的“Flasher”后即会自动生成 VSCode 调试脚本。然后按 F5 进行调试即可。 +Embedded IDE 不具备调试功能,需要 Cortex-Debug 扩展插件。Cortex-Debug 可以与 EIDE 进行很好的配合,只需要极少的额外的配置。 Cortex-Debug 会自动安装 RTOS Views 以及其他一些依赖插件,如果提示自动安装,点击允许即可。 RTOS Views 支持 RTOS 调试功能,比如查看系统中的 Task 等。 +### 2.1. 基本调试 + +进入 VSCode 的 “Run and Debug”页面,创建或修改“launch.json”调试文件。 + +一个基于 JLink 的调试配置如下: + +```json +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "jlink", + "cwd": "${workspaceFolder}", + "executable": "./build/Debug/.elf", + "request": "launch", + "type": "cortex-debug", + "runToEntryPoint": "main", + "servertype": "jlink", + "device": <"Target Chip Name">, + "cmsisPack": "/Path/to/PackFile.pack", + "svdFile": "/Path/to/SystemViewDescriptionFile.svd" + } + ] +} +``` + +一个基于 PyOCD 的调试配置文件如下: + +```json +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "pyocd", + "cwd": "${workspaceFolder}", + "executable": "./build/Debug/.elf", + "request": "launch", + "type": "cortex-debug", + "runToEntryPoint": "main", + "servertype": "pyocd", + "toolchainPrefix": "arm-none-eabi", + "targetId": <"Target Chip Name">, + "cmsisPack": "/Path/to/PackFile.pack", + "svdFile": "/Path/to/SystemViewDescriptionFile.svd" + } +} +``` + +- executable:带有调试符号的编译结果文件,如果是 AXF 文件,需要转换为 ELF 文件再使用,方法可以参考 [2.2. ARMCC 编译器的额外调试配置](#22-armcc-编译器的额外调试配置); +- runToEntryPoint:相当于“运行到 main 函数停止”功能; +- servertype:jlink、pyocd、stlink、openocd 等; +- toolchainPrefix:使用 ARM GCC 编译器及调试器的,需要将此字段设置为 "arm-none-eabi"; +- device:jlink 使用此字段设置芯片型号,如 STM32F429BI; +- targetId:pyocd 使用此字段设置芯片型号,如 STM32F429BITx; +- cmsisPack:要使用的 pack 文件,如果使用 EIDE 自带的 pack 文件,其默认下载在 “\/.eide/pack/cmsis” 目录下; +- svdFile:即 System View Description 文件,指定该文件才可以在调试时查看设备寄存器,如果使用 EIDE,通常在 “.pack” 文件夹下,如 ".pack/Keil/STM32F4xx_DFP.2.14.0/CMSIS/SVD/STM32F429x.svd" 或 ".pack/Nationstech/N32L40x_DFP.0.9.0/svd/N32L406.svd"。 + +### 2.2. ARMCC 编译器的额外调试配置 + +由于 Cortex-Debug 的后端调试器为 GDB,调试文件为 ELF 格式,而 ARMCC 的编译结果为 AXF 文件。如果直接调试 AXF 文件将导致错误。解决方法为:使用工具将 AXF 文件转换为 ELF 文件即可。这个转换过程是自动完成的,可以在 VSCode 配置的 EIDE 配置中实现。 + +按 Ctrl+Shift+P,输入 “Open Settings”,进入配置页面,在搜索框中输入“EIDE AXF”,找到:“EIDE.ARM.Option: Axf To Elf”选项并勾选。重新编项目,EIDE 自动将 .axf 文件转换到 .elf 文件。 + +![Axf To Elf](./img/VSCode_ARM_CortexM_开发/010.png) + +### 2.3. 使用 RTT + +如果使用的是 JLink 调试器,Cortex-Debug 可以在调试时自动调出 RTT 输出窗口,配置方法为:在“launch.json”调试文件的“configurations”字段中增加: + +```json +"rttConfig": { + "enabled": true, + "address": "auto", + "decoders": [ + { + "label": "rtt0", + "port": 0, + "type": "console" + } + ] +} +``` + +CMSIS-DAP 等调试器也支持 RTT 功能,可以使用 PyOCD 的 rtt 命令来查看调试器的 RTT 输出: + +```bash +pyocd.exe rtt --target --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> +``` + +截止目前(2024年,版本 0.36.0),PyOCD 无法支持 GDB Server 和 RTT 功能的同时使用,官方有同时使能该功能的计划,并在 2022 年有所[讨论](https://github.com/pyocd/pyOCD/issues/1439),但尚未见该功能完成,讨论也仍处于 Open 状态。 + ## 3. 国产芯片及 CMSIS-DAP 调试器的支持 通常国产芯片会提供 Keil 的 pack 文件,以及 JTAG 扩展支持该芯片的方法。因此如果使用 Keil+DAP 或者使用 EIDE+JTAG 均可下载和调试。但使用 EIDE+DAP 就需要变通一下,因为 EIDE 所支持的调试器中并没有 Keil 中的 CMSIS-DAP 选项,只有 OpenOCD 和 PyOCD。而想让 OpenOCD 支持某款芯片就要编写该芯片的 Flash 算法,这个方法有些复杂。 @@ -199,7 +299,7 @@ pyocd pack install ## 4. 常见问题解决 -### 4.1. GCC 链接错误 引用未定义函数 _read _write _sbrk +### 4.1. GCC 链接错误 引用未定义函数 _read、_write、_sbrk ```bash d:/gcc-arm-none-eabi-4_9/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libc_nano.a(lib_a-sbrkr.o): In function `_sbrk_r': diff --git a/Software/Applications/VSCode/img/VSCode_ARM_CortexM_开发/010.png b/Software/Applications/VSCode/img/VSCode_ARM_CortexM_开发/010.png new file mode 100644 index 0000000000000000000000000000000000000000..a772eda57e8d7f9f33732c97753c6baee25dcec0 GIT binary patch literal 44563 zcmdqJbyQSu7%qw(2nYyB>(Jd@3PYE4gLH#*gCHp--5}i{-Jof5RoXBO&NI<&meJ-=ED%}2@n z;p|cSseq)au?4zL##Rs{X5N8lGk3Y`;4Xzz$fFU7*1&M~NsJ4V`1Ymd-=}?tlr9{q zTB7p^)$MFy85xPLR@oRE)rzLwy)n^U-HqH)Ahjz0o?0!;=(Dh8u(cIOf+^=gU{rbK z%t7Gnq2dLHl}%CGELEOEleWjeEKeH;8{Mpn%-l|L<51CI+O>E$sS{&}0&N$BRuw5cB|F^_^mK= zmq)8CwE{A(CQ6nxWEC3PL$2ScZd95t%oI!s4*VLq5<013Uh66<3p8aoIc)PmWNjUX z6P;5XQC-{_Ig22LF5SMH?tA9s5BWTJeJ5@Qj3$xQJ>2rc=>Af^Z>5$3zPake-1_=@ zSBdE(4GmGleRcfdAU315yl-R4Ngt5z?&qhPwE#`Nq@z+GD~{Tjr79))QMexAKIkMI%3J(wf{aC>QPDmPqpO-cA;K zG@$Fg>o6%@^|>Atjjq42SC&M1wT3zK9OXHuE=D=YyZJKPnWp+4sC*=vTb4eN<(6R~ z;sO5HTx^FnFSCx7jN)|TuEC=eV;QEw&+hr5mirZ}5@o9wF4R1*K^Xy9hp%MC@|p5* z`B2a8dhf*_d)CsB){s+Ds#coCH8i-rdxubVJ(jP;cYP!$Cf0p%y!qwJm!9r!sg#|? z)s)j&7t7-f%ecEodgBb6bNNAA$GuuSlaNl^T|}V6;dE}OOH+LW;nkUG^c}#uK1Lt8 zZQg4LjR{aJ4C>xEi+?X9w;=fO(}a$plz>a%Vn}g_6!CLjzJ)X5OJiJtEYvV!{m(uf z2P>FAQ%k@?s=6*e$Hfollp4z{ zJ`Zg2HMre;!9D+A&vi?!MM(2B!Niz@g*tj;fG#f_5iJ{9ENuNJ1q^a-Y;06kvX-h5 zqdhzH>N7~;v=ft&3G=6KB5W!GCVZf1sRq4}`tOQz5n8goP(JBzlpcbo)_J+tnLomS5HvM)63xb>oW zP`dtMS%as(R!K57^R?K zn_%FL%l@L^%2Bp-N_%@dC;Qz|ZmIqF@ng9x*RvsELL?mKSpUaJIIhPVbHfcYyxtXVsV`X^@#?K{GRVx9sV2uIMOPm-Hco&{-UO1!Cp`By{^M^FwTU=keN^ zp|I2*Qsme(4bxv(wY+>(LQp(zGh2ku3`aDrN1nv$MZ`X^-V8 zP-BX-*1SoZo}LEYLP|_ruFG(pbXlleve+5cLg;pciYm&4NZR&oEVb)VV4G^)$!#z` zS0%@jsfh`*IfA0pp=9h|S|~RD)gf}chlAl3BUX01(rmiAa=7ed3(LuK?)lf!?Sb|M z&*O`O#WP8hr|RozLhFUY8MEPg+hl@|p_kt6Y>pFy#mIhVT!;Q&OJy0w{nJgm9PpZ) zV`vT21}d4mCB;RD7OiY)&Q*!s6T?-YP{FwK$hh!u$Xg^`aSa7ZG4U=8bQ!U9#M%P~ zf~VNsF45uf;rThg*v5X>^{d??&fs9EyNz#RbAoTT7Wa2_y%fzy;d56^$1ZaU^ZW8p z6?z^=VXPxNI>_N?MmcnCf%8 z`P>aBGRVZkqoY?K$}nENnlL*#Tpcj%i{~&M??tXXie=E{ea+Nf(_~Y)tyFxYVR;+4 zKH^5J)o8n`DO;zMmXT3zJR*JH^W$=7m>KKkV5&eco|&a(lbva7eEeiGj|;#;hgF0f$md520yM2=yEU)|a6A=u=hI(m*;^3(Y2f5>?E8&^3XzmjhESzTEDQ>Pe66$mHRHZ=)pg8QNtj~;rP&k z>+m~|g)$fW=}ha-A8LZFW&hQNUynNnM@NYv$bKybWdR~;YHIeDby}*z!r2zqzjCT> zee&}1Dx&P_Vp7x6O3kMfJ>TtFb~B~sxVC+@tZ!(*<(%lswRAjVRZyttdB%~IMe1_0 z#mdNNlFcuh)~JGIN3$x(QNm%Spig2z1#2$3w!Fq|(LGQW7GNnVit?+n+{JO3JwCN( z+v*ykw>`Z%o568$zLYxrG5k9Zn^P)&ydZ>mJ0q|KG0mpuD%zqhoI-I~Me6z2AW8q3 zH8oSlNGC*L6-wEaxZgJ}88f7eRc=f2n7g%fq6VH@84$`rM0KXWstQOm zeu*$KgJY&pkS@9uAs%AwiSEdU{-O}$PEm$(8{X!f|7~x+b2**uX{)R2hOPzodJKiQ zUl_~D%7%v(O^P-BI%Rr(bGRLV#Sg5I;<5MZHM~VaQqtpwLq4pq+^k1Sm@XUHfdQZO zvz9!udcC7)$JohuAde$6Z?^K$)_b$j9T%1pb>zU>*h7BxSQ~~7SP#p|^i%`g$uA}u zE2*ngH({=l@fANTfiK9@?2Wu1CyD1srb6e=%r!50qYZ^_=lQ081qaZxUxoeZAi9pD ziZ$Bv_vgFecb0sAp8$1z->^ap^-)|fjn!iRDg_z_h5<9Y-{EGHj+Y48V_7LIW@nbY z(M~i;g|Du6P@yAkc~Mb$el0FNZl9?C=52@4+onJ3zhc||wFSDDZhuMAUq;ky^F3J1qJ5UgWs~Dm zbnXB7+bNmE^gI()!4RCED|ss~rB3vLQ4s;RDKwhr35O2U^Hl93tOg1gr_?8dKX6VVo*-BfK77INM+VWd~E zL}qq~P*Of%O}^Z;AOB!@lO?ztD6Z9?#04;n2n&X$YXxubT%$9`NN>a(^&Gx*28)ST z`nw*{&FJgmLCfnKfw4_7&OZrOMGRKnCPefteJlLN=T zBezRhb-c^NykqLK`0Cpyx7U2%;Ah_nqX%$132VuT-j`-Nq!6@M5XcmkQLXcp*Amp&h2nuZ`V@tTN7hc15^kjGfjzr@&)1nx1zO zK%vCBIakYm6V={$Y{D&)fwNeF;;RFvO%A)7=)uiX8M%9lb(uGJ%W1u@wX4f_luzQd zOYq|II|?X@=E##Omd_O<(PqZ;m?Kq&VN+;jUJvbEd*H5lJa8zPu1@4l`U7J%|E-f$ zrb||CUs4**GXeb`+)dvN)#nB>YyBa#rSAW_op0>=9z6T4H5lm+YD%=_XtoV~+N`g6 zq9K1h+9S(0B9c9z|D((CCj{xX$*>9aW^3RnX zbpKd8i_4d`o}h;4gd@UueN$7AsHo5fQg&0meH%<|`-z*~rA-vDicErricg6%$kqyD zd2>LHI#d?;%X2erDw(8!%esrwSgUh(&}M(w{N!Gf6IVW3CJDh?NZR}ttC6jTC%jw& z7G1Q5+PifOdTA57i&zSLfh15Uj`N8B$yl|ox4$EfE3XXh=8XMveA7=kn3KKUPp6c@ zJg@UcHANJbBCF}Mw)Z&MUmV0eh?p85$M{<_4ODGk6pmXS5ARD@4}GM!vdH!0YXi+- zIbM_P@vIH#2A9$P^hUJ_!l49qcFz=w)N4w$TS5b|JZ3u?ZZGFsQMR2WHC* zrRO8v>Dt0)$aWd0me8yd&5u~=2o&E^TrNjE5~2NGMB0LwYtthf%)7uhHx(UWr4K{7 zRO84OH0N$C8wgM06>lXOV^aOZjwcAQ>TVqKR7huPj`6AYVDFr)Zv30I?^TeK+o+JaGMIf}!(bhYoMa5r2Xwu-LBjIIsujl9b1v-0ez zS}#1o?_8bQ%UM>O5`vl?p7tZDVzBp($-kM~iPmXt#^wCjE?6zD^i!7^<>mHa!sL?#9o1Ck8d291l zl29lTyTMt}_6vpf7(*T3;l#BH57x62d&Hs|V>tZ?&NW@L8(#CKu~kAy2H0!{4aO7W`;t*9n0f#5~Jn5zOzGHcO9C}fbTqGwbbr* z(A9Cgb75cfJ)=A^zn3)a9Ki4tJ}vv*e|%zUghN!l<*f=H&bh zRuz$Z!}PtVt`b^gx>_G&^vex24EURl|>b!$4ZBf{nSb+~#i9!-tU zsMmS9i-OIl=bx9iQJ7F=F}o2IhU0fD=9H*3e6@rnu`y-UMlaU-8(MphmAd9w0s5f!B^8?%;FV%Z+9|pXGi^r>e8PAa1}0^FYN*Qfz25a~+g^ zFJKo?x>z|5b9nIQZf31(YH9%S(FdO}rd6;0w9x!WPHyCM)@ERUZY?oTNK2x@eOL4_ zbk}=tajiX=r|GP>rMFzru%Q~eM8_o|#tLJG`(moElJ$V~z2guXHNl*nrbvP1UPSLS z8blC@M@}OdA|tc7gK-l}^OrdG?`&yl`SmMxEPHc(y+W5E81%MtWn>LDMS@VRE5nar zIRzuMFzPfHm+_+dgAgG^(y%`)>|y1x^S38=4`m~g%j}$f3EI`t{fc4GaL>> zM#9KUoVMC}&&51y{NFVY>Yt4s_XZ(FO{KmqgdE!&WitIY&x^bVIi?^D#PsipP!{9#8b{?wfC^4?k8 zrPzk^`J~}!t)I4A5EMlHw5ynA#pnqI=h)cTa?8N&**AY~{hdQvZY~@=PtU7YuWSJl ziG1Qn7e65_E)(u?*_qY3Nz+9aNz;CL`RoM-$@wkb>?^zU068W`#z}djDP=V^bQx>w zQd{wu9CoGZYjT*V6&o8H zO-xLztgM=DZ(It|JA$y678Ycbm8;z@PYMbOYHU_d)t+`<~}jfd&TeceIV_bl;>CLbNl=7?*A*{_s3@yM(x9M0JOaA^X z`C>Lqgn0OljgO3qnsZvkx3t{N6px9Ii(_%;7NEvdl9y*zNsf-jOc@}9AR!@crd*A62SlZ};CZb3m%U|>WrcQ<(4O{4$r4MAu<=|KX~qII`O z!+@Xo)x*A6CpoA2AQD1OV+t|rMaXRDvRAEZe<1MCBrXS15|WCwf{YAeW33mE#ZT-z zJ39itFBs_QL6aZs@1HX!m^QxOx4OKXk(*2L>bZiv{MObM=x&r`Wg#x_%*+ZhGc!v{ z_P@Oqkd>2*b0>WM{CRS6G7b(73L$S$aBvjQ4G0E_Y_z|Ib7Iw&%t(3AW_kL|IWYO- zebx>~V-o0@t6PTts@=u&tjye@gvuz|Sf<`lgR8XjuP&80QM26{1pP~C2$sje>3tLM^*>@udW|K^N$OQZz> zMo-qo^&X7`$*EN~CGK*yH|qq=@kjahWpDJ*NeELP;Toh#WUd=lS#lh=lVXkX zG$RTrDvlF+TrrqWGV`Wbnw!&bl?ZQwPyjU+0~1rT!5O5zGU*iFkdTmyW<*G>-DY${ zLql0vSwe!Ejt&I%*~9yofp)-4o}k2s#r{nf@^RokS98Q7$3{Ip6Lh)H;|$w_5uFFA^d2M5Q+sT6BAY)BnCT^t!RF);}Uw1A0JXwUDHjWH@NuDbEh ze@BF$eHA(|`_O*CBcxTbO^?c+s#O0V+VEN-@00ZSHpLP{8#J}ATXX6`cEp5vMx)o1 z94J>a;CB~~6yfv~oVLR1+Aw)oNUegS3`oa|ZHT(Mx^~Aa4i&j6(b3Tr6%|m(IavIF zwVUfpI?Z~(7nYZm<>P8{I~^sF$b3N38%4LUmY zdEM-PJ}S^?`$qI<^lQ4lv!^N9n!_aoc7A}?4B0Orcq)rVXeBr@AeVn!W)OrDl6c5D zK#|LU(dIob!q?%2)4*yXIXqP0W%@#cB4CaHmd9VGx_+FKqA7OY6=b9rb8Y$sUmAyC$v^ti>@E zFf%iAKG_0B3%oqtWl|s^BSU<6|H%_SfS_SXU5m{=h?QXU#>xs7vex<7#MRZcp${3K zQ{H}EF#u|Pv^Io@MO(hC^zbg?KkuxHd>A7Se%8m%UiRJl3|aG@ZH6Z**1ZJX`ZJa6 zj&pA`hB$tS40m8r;Skqtn~a_E$R&PLK@6lHv6$)DY!=ha8{%hzkLB#}ezrnbWYMG* z(!zz}O})!m2(uiz&gMHg+!@r)Xz+B0m47KL_}fl*-<{JeEKpV%h%BBh$lkQpwpX>F zhzohPH(pn2+!36o{{GHagmZ5(CMUnA9!YI5b-hdCOenK(2nCsuyFLe02RgdDVX&<@ z6BdK{)4(=JnktP5FQb zUb%Tt%=zbMwi%Km$~k!}Df_t=%ty9fKL>v4{B-0*lVs*~jQ?T+T+o)dC#=}*Oiiag zNX;&lvrxwNTj)B-N5y@fseK8N<+)zQ{6DJF^R_hdYN6W{(1bRNpgHC#1IY;rv9GEX zM13|vKb6I;y2If|Eg`s>dW`LJhToGRlCezG`iF3@arwdPhA{C=R(@e&KmUw?2kDvO znenl)uV258jE-iUp?$r-zkgRLn3&3{s)}(nUl8(6PfVPFatSIb@Q^Q0Pz)3aavzCj z{%IWEarq-31Y~`tVbE;9du*2Mh8I6rvckP_OF0CMWV2$jk7^pm7$fw&z7ReTWShqiqfLIM$t4M7$0M&Y?ls$>397pm#sG9;uMqi-Ijt&q_pVM;7LQO*IR zd3?G^tT=PsG0b|Wwe2?>RsG9VJ#>u30RIoir|7RIrPR+-Wxo!Qd!|C73=)IiSr7fN zU|ID6IiaY?LPbR-UpR>#4!J!x=3-GoX?=Vm*7#gmEWt7X7Qc+Vw z!C^L<_@Uj^)m6dx>Q8n1Z2zkEqq@=9Q^exf*Hd}#373v5{N?kr%D;_uqvA0ljV2lp zHGKEZyP()(Q81-Z99BO*##=DWlNB{dqTpdf6!R~JhbN;VVM%1g=gEhw&Ml@D?k`{D zMrZPax~LuY712%o=y3>)2%^1F!lQO;QfytDX@Q|xU0Z8nYRU&v7pTjH7EpjQ`};%u zTXjmd95Ej!^zFdQvV(*BqNtQ&X~5i^fPg@q_7qU}RTeX1;^ItfY_PF0d|p>ad3pK# zp1*b4D1=Ds5)YdYkE3JARQ#Qh-OD#gE@_9%EMLe+<(*eAlGL-ceZ`>RR~gl&BD6R# zw`N2`LqpGZA7o^#wkIpX!^aK3f~2pistRx~px#6zB?~J~mqPg}D=N09s*0KGKRylu z=q!cTE#Cj&@Q_Zck=uStSy;FOkgTlCHe`Qp<6T_<@>g8crOaGD&oz;wkt>eT<^>G% zD3uTV?G;>t5`&g~PlJ3_^EbZje;|E3WY$6#r}=?@Oh6=~y{d9iksiC`V?VtB3EIl< z{52z_Bb5wCN4e499mYC?Cu_(HJ^=h>XJNNuUd_LN0@2u2p--eQ&R74 zDHl|up6u{5Q{g;X<#{El`FYdIW$Pj7!_}8_te-^;N))gH6&1I*T@=Jgx2`($TD>@0 zB%(wecYmUAp$Gi|)R&SfX=&BQ9dpf!>bK^DAmfLJ4}*cBX>fmMe?Kykx!Eaplh!eX>!=F zb>8{2;>6*AMVbR$0k9~)_BD3Y z*8VV!nLW>LW>OMORgAI4*Dz^*#vEI;>UsFSby`FowJjS^P^2rOm9XKIMr~Y z$YT4;cq*?UPGQ8A(aF9Vf{prr>+r=_uDyzU{>dr7mqkTIErh-Pem=>! zN<~L!dCK~)Xa8=~xnSdV>4(Li`eSD5ucZ(^_rLWUINs(n%c!o7^#?;XxS4$&8}h$L z#LuX&S0{hPIB;y8DX>ycPD>lzqJ{DA%~@#d6z0Fz|1Tt*<8RUJ|N0gJLb)Jll0cCI zhm#YB^FNa#e4bvHk$nID9?$>KfbPh*VSfGU{XYpOKM)Pd)R>3&|1%~+Cw|tH55UJj zWc5GzhtJd6zQF+heW5q|_nZjJFVWTB{0}nhyp0$O>YXY3&ouv=T2t+czrBH@8aXzn zm4x~$dAr)$mk1mRD&b`P)r!$Jb@_<7|8ZdT7?CfMpjgAE9fSpIIhwE8TUrSvrnp5Wg5Z2mqbnK;QXjHSX1_UC~Cf{5hrekZ! z%T{IcI;U+?v!y#QN3!=;ZT!}Ef@7?l!MY5YgAe6-~SM&)l zu3LSlG}I^55dW?IJB*U*w2i3yf$3T699CzjGkj#wH%&$kq*O{MDSE9y@K?<*0fpj) zgonfhWTOjS!z(Is2h_Q>OL$`ZbL#nfUv(Jd;>K2U$ptnC4l$8YW9P`(Qn~VbZyBr- z!jA0>`7Y1P`0Pcierv{Ucx2+6>^A=AWAx8M+)6$4$4rlhY=jHZjN(yjld-}|3aRop zd`TZ6$LY1At@2LpZKlW=kEtC~V-0NR%ENu^P*Jg+P;N()#oMGEuIcPs6ts^G@ONuk zxO>#bBa0fdkYg0&UCL@}LePXqPsHYEpVHN4=gMV=yk=ND*`7*GP1Vro0YaPBfOMhY z?w+2@^VJj^YirK!T0nKkWk~=Gs8V5~kgZWZwV7BqsgQyVyljoWd1*m3B2itVdPC}d zT6Ga^wi<&q(+XNZQCla7gUEzZZ4EJ{F=Cc3{s@7{R}OkD3h+KBnT5;r+C0*4U-lL^ z-IO}wFyIPCJJrPCJv^n`?ZBbwG)Q;&I4QV}dEzVS6wx zzC)`0FP#!@9-cY3Qw?wc+y)63AqJcS7_e-COH)x&#+$w8ef01lI|m2LktSPXmCX-j zY9%GuTLE9t6_8U=ovsZ5@C5jtn7Ft&kLzRDSbp)Xz{bi7tMic&sD_w)Yh;eNt1K6Gl(89~c!wJN%6Z zwQ?nG3n`^Lh~f>TDRy86>TQf~cV;T@N ztX2F#&g#-e2{E;}G5PDUu@~0YCW(cJHn>zh2aJrBJ0bduv2i^Hbd?G^$V?80p$dE@E)Zdl={Jn-B6Qb z<4Ade@S}!@~iZ1uBRaNJyq` zPfQIBvkMB;RaEYZ237r!($Yoi8Ze&#yx!Kd^PDX3JHV@f6$_tH*3^`O`hhoG&py>@ zg|+FxCnm_r$#ZgYj&|p?`dbiPTwE+IEgwAi0u~-HpAD|(;r`0h(P3djIWp;BzXDg9 z$FE2Vxrg_E0p9`J00wu09dc?@ut9H$&1CS2J&{JOvV2WbMOnEwkz-_V@Ed4utc;B* zP>m$KhKBCy=<>h*8 zvo$tk5J+0890=4|PN@d4yfp)%O|#3@Ccb5eF|FV+1)&)^rr#~7J|P++3SUFq4%p63 zGX1Io&`_TpJ}+&9Lb)ZA!z>zL^eQ!-ZGyqAp%IPBPU|{7rpxD&*F%yK&z}<*pj*lJ z*;QBGuew$($lYAT4SDHXkYr&>OC#;6tM`4K*ZM5^z>NtR=D5OkW7bUkL~3@)%kNR^ z$k6BzL;N~hA_4yNo1_mT#+_l(W_@s|&QOaPLs(joXIHPZ?Lqu&%`nH~lKemnn0`>l zTI9r%UDj&vY(fOHM2Dhq$5e6=N%z)EcFy&e7%TV@=Xq7@kYhZy+mygM(m+b80|Km9 z3TWWV2w=*EH;W;L&&aTIr=Ii1o}Lm;4dYzlPiIRhbIEEoT(DX*GY9ulH(jXvpkH+q zsXL#P&!^U+2@8yf1Or3CL7nKK#KhFcdT9m1B(b}6tAj)b;!J6_hXZY8Vlm5-M zH9&f(YiViKwsm)JfRtKizbz&yNdmzPJnkY(0eKQkXEkc9GpnnsyLv#hqy_?D^v=z8 zy5mTLdjmiHz)L`;gi-58=@n1^tewzGpj(xU;k8827QUhE;}IDh+4+~2=p>ZxwN#5D zauHnd)Hjp5;rGN7FO6EV5DP_U{h4_l>BEo-6J3}?&uccY$0~P~EcOv`w|X_gVv^7* zcoaGHS~^`0!WKB)p0MNMH@-o4GOC@x#6#gacy!pKc>Ho`Khdmw0c(Xkf-rk3zDzXM z)~&x*O#x-Z`Gn7XXCoH|otdiC!hN;8q4TlEzTzeWvC4fSLB5RYSJX)ENu}aO!yFSN zPKr4F$=cdWeX_QmR#8dJ+(t)F;AMaAGt`6C5I@3HI|e!KMT*|XS1*}edgs`h0t1>9 zPpL282KsI0#~=O3_c7l7BGmU@|0` zilqqB6vJz>csDSGB5mDFj<@Yj6E4ydvZO4h5X5vypVG&#?dS5ubR&icC!VEU=&tj+ z9jHpfEmnl??c(OjwKWNAt;z{~QEy<0Z^S)F=i+|bnK}yex>v5C;(=ZtzKw~A`Ioo& z{rk5>(~EUl78VxX6fG5%01K=cG_U+}A|s~Z^sZdJN2uiipJP0eMp+!zc-sx0U3H29`7=k@jVcXZ)&wM;Du z7nciQ6(y|SLoqNgIzsTNsHsQC$61+}Hha549jry{6Ggq*zxxxxCSA!)H!zFguA?7( z`-aTDaU~Q-0F73k?-i<5%`QFPMvW7fb%3{FycF%IA?;zTaVoS8&d0W!TC3?4pp?<| z2vtAjN>{+k-+yWfUb+xL+owT5#RZ4j%WJZt8t1r-bJJd)%nh$3Z_8a5G_gUOEO2tm$TK}PEMjn5$>pR2Nq5-N z(6lVWKSYknncrBzaTALtAMP^`dKTC!?NBvOYFIFB>#h|3q2Rk7?I)yLi<7XLlS-D* zSdR8-bkzcb^}epuD14s^H)0tqpg%c~M|n?-O# zmKpYefydIAzFbXZhVSB3*p2#&98sSiGr*OK%^Ypog9Z~O4x61fs(K9TO|vqyGDL_e zsQQ}-(YYNWY!TQ!TGQIxmo5@=DNs={R!OyH%PtbGyTuy)SzNXD zNJy5PwLcE^+2;Atke0RxrUyWhkd>7MH1ikuEKKyvvkfk_wY6aWTzbto3kH0Wl9FK} zwzoHK24LQH@PyEn-e~X*nCxYRfyH0y2}cTCD(dR4;M)Ox zL;r+6YVX_?Gf+WOGdVsU2LmH2E)Je-DT+9jv{(|RR#;E~<|BGoSXh8z1YZdzQ^|ZD zH?0Ba6&IvNrltuA2~B`UTj@&xBNci^#tm5UT#CmH+!4#Smhg+}?tLZ?zq~vXK(v6n zn3;!1=*I|%@91^($W$U5mDgRJW_rF z1|9F@WKAKVcCZUDVWfrs%}YmTXB=#73Q9`G-8+2`G68pIki)lz6u#Rlz)e?u`SKv4 zkCu*3T13SE>sRNSD-MML=C?E-!KOpBfMqZS;69poi}y4)LpW+E zc}glONYVgD7XVEwF1FOxe(Tm+T3#-%sMz1ztJjPO=8^z59-dzTHWX|)ij0Z5g8~~H z7Z(>`2C_Ayrh8uw)C*Ah4K746^ONT~Mn`QoMss_y)+MYNT+jAIBS{}tj{(TR z!lLiu^%B*uMWx&*4D90oaZg1>1&T*sZ|}-LN|Vd!P6C@HqhNn5gMhd=6(8R%z!G4P z4mK@;P7jQkCIMU>c^cXQ)S1#imH-q5ai*wYK;klx%oF#3R4S2Or}e2Z2`F1&E|=nd zu^vsMw){y%a7K;BEgNiY93B~gn^iV8-c(yHIdW?jR&}+t35ttvg3E}CibBFf-n;}I z+yopx7Jrcu4fJ!tuNl(H%b7uOD=n4P(3k-ga$vx+Cz@t>cM7}L2-#p?!=1V(LrHmVP*zP^ffS$1Wok)`}Z~$?lw0PlR5i~rud-zCPqhtjv=~G)!Ag2PLM*SS@Zo=Z=s7ep!osEF^F-hGMWoWxz`#;O47E&I}T`J9zre)}cKCb0zAmCs${vLv? zaCNzx8E@lc`!NhuM-TVoS{ViJ)E$ncmQVejHDo?eZh{#9QQ_iaLX82Zy!K>hu;Q32 zzxI3Gy6v$s4F9ifl2T!{3oz4$CR@897sLHh2VR=aI>+@nBtN-$Zt)%(|~czAevm-_TtL12ah zbTdDc3xGF+i0$p|1*0u77sDVN7L%*9eG3Zq){yWB*>@zbnb0Uum z7*pB<`NW}J5r|5l1DOK5v)9(vbUQ*A{J?I>vFE&?BL=|(D^%-nt?FIc$D~o!GcZ{B z{Tt{>w(o`lU%v(g1$B0c7_ZtpI5-dzrT_pSZb+HLY91dIrQq&3AWoXGs27NAbA z&P;@k({^nT&>)}%Vd4m}9lVRmfwl?W=*D&Uv&+^R8}vRibq@M< z*IXPNAf>c+bbtap2XG^JTmV(Uz#-TV3*;g!TJ?!0559;?UyCxG z8khtLmz6$+ob>(D;W-FgSh1F&!J6KM7Qi%RJ7RTm$eZd;n0cjlVtg1Mn-dC$@S({*}txtqf0!AnZ& z3+DowGGi`~r+{W`3harWF#u3|`TfZl6%%tgoeOT<)MVX<6P7e58+D#z<>sx(!rMB< z>*EUDvw@;v_@mw$JP2A$V1kjV{DH)K(WDj|E7sI0Y)QQ7{-AMZu9LBxPI0jdr`t>c z$w#|(!%_y^Qvg{&&0I4I?(c(4yuZWYKisMu(}&a(-C z4iI*6hZ6739c?~?Kn~(~dL!4YrY|-?>aliLvpKjI7QbD`Te@vzy4pdlKJE#CHt38p zv$M;Tsn=T*S5{WI3F!Fv_*ht?;)WvDW8OnSl>~cRfdlm(3W0tJ#1Kf(r@M1>Tu!S2 z=wwBj4c!Z$9=~|~#)SqTNf2#g3F>=}^&B=Ud*@e2N4D!DET98dRE!oOuBj>J%L5&g z!G)X%sMP{~$f7Q7SQr@i+>Sp$R}B)n1RQXbGr+I54xLO)@;;CQ$Ix&5QBhU~@^z>( zHLv5|$GchX^vq0+`VL4983PRfL>mqy(@;<_u(B47p=Zp1*^cW8+;B?Y_4fKSSgU-z z(Eih>AC;A~)YL%%0b%Y6?x22w(X@4qIxa5mdVsyXJ&=0?KjBX|Uy>CfLNg$UH zDS;{W1i+=4OLV}i2zXs507b#mfD`ei1il3>xjj*mKF)Rmpd--6>9Z=z%L7mjcH9DT zRkPMMK$JGt3;1SHTAGfTS?^Vd#3|DHp`ie%z7Owvf@zBnB9@+?F({)1oVFs=m|({( z*cK{Q6%!S84JhehX?b93DJih=F^ne*^}iqsZWBKS{RJq?Kmi|f0&@fan92KV%^?6p z`%4U5&OPB(enf*J~nFfA=@ zg%n74u<>zTrvu^<{VkA-0P)6EMvsJgyfM}@G{itf6{sSAr@RDt>6^K*j0^)UE%M#2 z?#>E6p8bzdAa_-91kW-mQB+!haB9+})m{F||S`_2c)6obiEPqN}uA`-XKbRaBAIEMz&Bc1a^c}{JNkb!9`M?7d19$gE&}f2v#wL;!ly?HJis#ipf%pEs z=hv^#M|zSLmY10Uq5u8+chD&nDVN;Id-@DcH^u_}f%8U4mpISP+n$eL!x4gwlQSMHf~*_DmN*vQmP}RQqC|Be=5YTkV|nRL_r31<1wV} zW#tc_hvDCTUoTBE`+oM%VRz^A_*Ju->|*_F(apO5key3OK>_a8Ju^J4gQevk91JjY z#dVx!oqb_L!_3S~(#2>4mMiZqAm7wWblNU=n{EL>l}hH0d#U4KBSAU>RBoeg2PPG@ zpsT(pl+7JAsc>#cR=p9B$(08$UhqCR~nK`K`an=6sIVQI7~^_D@t=AGagou`xSmRBxVhK_c;oHcw~(-$jOEJAC?I?@ zvb02bQ9f`98sbqn-1yQShtK{>v{Z-(JdU&bFvZZIoSvgiudaN|d-!wDPhS45RVu zd7h+Lb{cf@U&eekefs4kfA8|@?-wklbh%F#e1cF}Q=O?WzM!cKPksW9!@k>Ibxo&*wGftkcd2#?n^iRajNCeFIs8P5|BJde52tdC z|3)=zDMBeELnK9}B*|E-3?U>T^OVeU=AoigLP9bp^PEhXlOzcl%Ul$h$vnTGReS%g zbKdK`*LBXHXZ^AFuDvYld7gXtem~Q_@a*D;z_`jQr+PU(8*d%s;b}J&+Q+W(+bUxMYwPQv-NEe7Z+WG`o!mM?dAhu)uuz36wJ=EB%F2q; zg6*EKFOlpL6!e&HS9eOV>U?#5q$R1Zug|7z=AK-Vh}YT@8p{c0&+e|SaZ67#nnpuSm`s{#sTR+^U1oxss;X`Gb{{NprX{luV+QSl&W0nTZs7#FvEL|RARj?rm^Z{b zp%|~M5F--SU=pRkQLfwH)^;JGxrC1jovQs3b?TR~tLb_hWt!Zyqeo4J7GLjwBF9|y z-FExdb5jLE;$mW7EuDa^EQW1$+OkIu%};sTvE0&S=T!^)ph>&mYC9+yrxz9=IYv+H zF`AYFofft`d7fXUrlz(o!)eq9=L_HtUp%qwvEk4pPPb=Ib4SO*L{a~Oxc&FXXoW&L zzew)x_;HGI=UoD%bD(lQJv⁢D?GZcEc0Y3q6JL&V&t-Yi~Icljlay5Xi8E(+mh0 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 F^