From 5ae648d4173354191142898da2493cc23dfad38a Mon Sep 17 00:00:00 2001 From: Joseph Yates Date: Fri, 14 Jul 2023 08:36:41 +0100 Subject: [PATCH] boards: shields: Adding support for the waveshare pico ups-b shield Adding support for the Waveshare pico ups-b shield with documentation Signed-off-by: Joseph Yates --- boards/arm/rpi_pico/rpi_pico-common.dtsi | 9 ++ boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi | 8 + boards/shields/waveshare_ups/Kconfig.shield | 5 + .../waveshare_ups/boards/rpi_pico.overlay | 18 +++ boards/shields/waveshare_ups/doc/index.rst | 141 ++++++++++++++++++ .../doc/waveshare_pico_ups_b.jpg | Bin 0 -> 39292 bytes .../waveshare_pico_ups_b.overlay | 19 +++ 7 files changed, 200 insertions(+) create mode 100644 boards/shields/waveshare_ups/Kconfig.shield create mode 100644 boards/shields/waveshare_ups/boards/rpi_pico.overlay create mode 100644 boards/shields/waveshare_ups/doc/index.rst create mode 100644 boards/shields/waveshare_ups/doc/waveshare_pico_ups_b.jpg create mode 100644 boards/shields/waveshare_ups/waveshare_pico_ups_b.overlay diff --git a/boards/arm/rpi_pico/rpi_pico-common.dtsi b/boards/arm/rpi_pico/rpi_pico-common.dtsi index 54f12e53843..680d2032449 100644 --- a/boards/arm/rpi_pico/rpi_pico-common.dtsi +++ b/boards/arm/rpi_pico/rpi_pico-common.dtsi @@ -112,6 +112,13 @@ pinctrl-names = "default"; }; +&i2c1 { + pinctrl-0 = <&i2c1_default>; + pinctrl-names = "default"; + status = "disabled"; + clock-frequency = ; +}; + &spi0 { clock-frequency = ; status = "okay"; @@ -149,3 +156,5 @@ zephyr_udc0: &usbd { }; pico_spi: &spi0 {}; +pico_i2c0: &i2c0 {}; +pico_i2c1: &i2c1 {}; diff --git a/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi b/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi index 93790191e6e..747b0d04e40 100644 --- a/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi +++ b/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi @@ -24,6 +24,14 @@ }; }; + i2c1_default: i2c1_default { + group1 { + pinmux = , ; + input-enable; + input-schmitt-enable; + }; + }; + spi0_default: spi0_default { group1 { pinmux = , , ; diff --git a/boards/shields/waveshare_ups/Kconfig.shield b/boards/shields/waveshare_ups/Kconfig.shield new file mode 100644 index 00000000000..38da89750c4 --- /dev/null +++ b/boards/shields/waveshare_ups/Kconfig.shield @@ -0,0 +1,5 @@ +# Copyright (c) 2023 Joseph Yates +# SPDX-License-Identifier: Apache-2.0 + +config SHIELD_WAVESHARE_PICO_UPS_B + def_bool $(shields_list_contains,waveshare_pico_ups_b) diff --git a/boards/shields/waveshare_ups/boards/rpi_pico.overlay b/boards/shields/waveshare_ups/boards/rpi_pico.overlay new file mode 100644 index 00000000000..e8fe6525af1 --- /dev/null +++ b/boards/shields/waveshare_ups/boards/rpi_pico.overlay @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Joseph Yates + * + * SPDX-License-Identifier: Apache-2.0 + */ + + +&pinctrl { + i2c1_default: i2c1_default { + group1 { + bias-pull-up; + }; + }; +}; + +&pico_i2c1 { + status = "okay"; +}; diff --git a/boards/shields/waveshare_ups/doc/index.rst b/boards/shields/waveshare_ups/doc/index.rst new file mode 100644 index 00000000000..4fc35403b46 --- /dev/null +++ b/boards/shields/waveshare_ups/doc/index.rst @@ -0,0 +1,141 @@ +.. _waveshare_pico_ups_b_shield: + +Waveshare Pico UPS-B shield +########################### + +Overview +******** + +The Waveshare Pico UPS-B shield is an uninterruptible Power supply (UPS) +module designed for the Raspberry Pi Pico which uses the Texas Instruments' INA219 +current/power Monitor. It communicates with the Raspberry Pi Pico over I2C + +.. figure:: waveshare_pico_ups_b.jpg + :align: center + :alt: Waveshare Pico UPS-B shield + + Waveshare Pico UPS-B shield + +Hardware +-------- + +- INA219 + + - Senses bus voltages from 0 to 26 V + - Reports current, voltage and power + - 16 Programmable Addresses + - SOT23-8 and SOIC-8 packages + - Calibration registers + +- ETA6003 + + - Switching charger with power path management + - Up to 95% DC-DC efficiency + - 0mΩ power path MOSFET + - Up to 2.5A max charging current + +- Connectivity + + - Raspberry Pi Pico compatible (I2C) + - 2 pin jst header for Li-po battery + +-------+-----------------------+---------------------------+ +| Name | Function | Usage | ++=======+=======================+===========================+ +| GP0 | None | | ++-------+-----------------------+---------------------------+ +| GP1 | None | | ++-------+-----------------------+---------------------------+ +| GP2 | None | | ++-------+-----------------------+---------------------------+ +| GP3 | None | | ++-------+-----------------------+---------------------------+ +| GP4 | None | | ++-------+-----------------------+---------------------------+ +| GP5 | None | | ++-------+-----------------------+---------------------------+ +| GP6 | I2C1_SDA ACTIVE_LOW | INA219 | ++-------+-----------------------+---------------------------+ +| GP7 | I2C1_SCL ACTIVE_LOW | INA219 | ++-------+-----------------------+---------------------------+ +| GP8 | None | | ++-------+-----------------------+---------------------------+ +| GP9 | None | | ++-------+-----------------------+---------------------------+ +| GP10 | None | | ++-------+-----------------------+---------------------------+ +| GP11 | None | | ++-------+-----------------------+---------------------------+ +| GP12 | None | | ++-------+-----------------------+---------------------------+ +| GP13 | None | | ++-------+-----------------------+---------------------------+ +| GP14 | None | | ++-------+-----------------------+---------------------------+ +| GP15 | None | | ++-------+-----------------------+---------------------------+ +| GP16 | None | | ++-------+-----------------------+---------------------------+ +| GP17 | None | | ++-------+-----------------------+---------------------------+ +| GP18 | None | | ++-------+-----------------------+---------------------------+ +| GP19 | None | | ++-------+-----------------------+---------------------------+ +| GP20 | None | | ++-------+-----------------------+---------------------------+ +| GP21 | None | | ++-------+-----------------------+---------------------------+ +| GP22 | None | | ++-------+-----------------------+---------------------------+ +| GP23 | None | | ++-------+-----------------------+---------------------------+ +| GP24 | None | | ++-------+-----------------------+---------------------------+ +| GP25 | None | | ++-------+-----------------------+---------------------------+ +| GP26 | None | | ++-------+-----------------------+---------------------------+ +| GP27 | None | | ++-------+-----------------------+---------------------------+ +| GP28 | None | | ++-------+-----------------------+---------------------------+ + + +- Power Supply + + - 3.3V ~ 5V + +- Components + + - Power switch + - Power LED + - Charging LED + +For more information about the Waveshare Pico UPS-B: + +- `Waveshare Pico UPS website`_ +- `INA219 data sheet`_ +- `ETA6003 data sheet`_ + +Programming +*********** + +Set ``-DSHIELD=waveshare_pico_ups_b`` when you invoke ``west build`` or ``cmake`` in your Zephyr application. For +example: + +.. zephyr-app-commands:: + :zephyr-app: samples/sensor/ina219 + :tool: all + :board: rpi_pico + :shield: waveshare_pico_ups_b + :goals: build flash + +.. _Waveshare Pico UPS website: + https://www.waveshare.com/wiki/Pico-UPS-B + +.. _INA219 data sheet: + https://www.ti.com/lit/ds/symlink/ina219.pdf + +.. _ETA6003 data sheet: + https://www.waveshare.com/w/upload/3/3f/ETA6003.pdf diff --git a/boards/shields/waveshare_ups/doc/waveshare_pico_ups_b.jpg b/boards/shields/waveshare_ups/doc/waveshare_pico_ups_b.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53f1191db5a035b7a22bee4285f4375acd7f3c07 GIT binary patch literal 39292 zcmeFZWmp`|wl+Kj2!S98?(Q(S!$5+&yTdTR;4ru*!GZ^O2<{Nv2?+@V4<6h@aCZXV zkSCAqbI!HD^S*!IU0g-qQ@z&RYptrT?w(oIci--o08iwl<)i@!2nYaG_#fbInI=Ta z6KV+n$jLDS9svOGij9B>K!BtBN{oQ~YwG~VB)_pc95eowc>u?p2oC@l@U1_*a=|e! zd>aX`I1m2jfrcXe;&}^iUx8O{xFX6wwlZ=`s+3%8oE&W29B>v6E^Z+Xej!dCN)7=b zULGMHJ^(TR@CF5d1lQr<;^aVx{R1Pwj{$i5yPcDRF0);XB~v z(XYR|f5!bjtZ>P@S%3uK(Zh!*50M|CprD|lK0-ss#Xx`j7@Y_k2Md>sn1Y;)n3R-~ zmW_dunw5r>l#!o_m4lOqhlhee5G24Q!p6cX@@1hEG69L`+A| zz{teR!^_7nASfguDJ3ltEUgPfLK~tLv3KLZtfnQUfzL0!6Biq!@}d@ z6B3h>Q&Q7%^YRM{i;7E1YijH28ycIMTRwJu`rO^~rMGW%Yf7|p^2+Mk`uB|= zn_GuR$0w&}=NFe(_kP{``DgjVvH#-NQ@CFbkdP3OQ11Ogc;ErAh)S>5l%EBUUZo z%z|$JkhZd(1*Y)D=y~gZi_Db3$0p6<|ds8$0JO-FF@L z#FiJs9iIuyvk2V*j7RHgpR~Vke9`yp*&c#pfi(+DF@*9J*Q5PskEL)`5&n1e>(+Cs zmpz86h^4%#wAzfFOG~TOrS3v6+M<6%`hOP>iZM(3I99*SVkCOzlU_XKHy1_-?Cr({ zALVDBVMLWZK6XQ1tzIG0Ls>$&tsgMBC{n2%agdw>42v8ENv$0?iDt4SjNTX&o6OBY z`GO=;*Ap{!U}A$~Gd1O`dnXjwUy{!rp7Fo_(vPo8X)ap?Iotyb|2S_0iyRcxhNqMxVcNHoi5g@U4#%I7<;%02M4RUnw1@A(h2 zHh2qt4XnTx7Gq|d#&Sf`01H25@3fsLBI(iadD5YB<2WC3t8!0wAf}fk)UaFb6B<|V zX4B}miz=Y*74=d+Hy)pcy~*4ef^|a)9CjE zuHL5pFB_n;vIDl{VjH0=TYl_#s0GRSXcpIV5}6Gn<6ezW;Sqz9z-*Cb@40QeThdw4 z97q2_-qO;W!?K$p*j#ktIM0k_Eb#|i8@Z25E-K^WagSR&Y4jvzJ?FQzfjsH9;-u`U z3?BYUUg~A)MY+PbVC?An<#u7?G0}eBmLj64anqc$D#SyIPS2L?am#b>U({#JVYPak zswoaBlg2J(&VsnP)K+7gxU(q^*T-p2|LJuNXXMk12_pmLWSI&2cTE;hYWw`0FTC3U z7(7)NbGpE}NA%-3KTXq-a?Z%JPB+cJ$7#`!ESB^HN3;fIwnf`29DF|g+1@@`Is(;~ zY9dz`BP0*UaMNdxIH@h}$@y{JR=!^7U-NW|Jn@UKN>h6Pj-mKy@0qLCG|>`5oeN4K zOtXVx#=vmP1^D@(fyx8$kf?eXW46G#3kyYV!eM7C5n5WBSsvq2n*xc=j9yKgzbRFy zs*`Fk2uNXHh`a+lIXka(l%1$>W307xviK$|KtxLZUd4Oy)ptiut&fD&{Tmrm^!6eVP zyL;noRzz~4Wzp1@wE0Sca07r4=Yz=-7^s)EVeA7GzuY~!w6fZuf_=3j^Vasyjkj*e z5DMadQa37l2cQ((ACHkQE3?(GaS^YPKw`nc7Ag2Zn{_i~Ps+P9*#p$SX;f^ikZ>&6 z`Z@=_Dks1pLUp9c%v%)ER?Z7>^KprC<4@Drd+`=)tU~pD8~%|4<2Q#;G8B_`-!so|EfPjc$iu%qb2sVHQP z*%l9c23j7|WX>WYzG)V)`Oz^2qg5cKp~EvKgWhc~ZN`2r_EEI%(oNuv7hh=+BH%<# zPiIPFP`GSyAN|@m>DFgRNoT(dn%xF|m{Q_7$6NI5e+t44HqdsG!f= z6c1G3hBu)UgChe>K2}Y4M;xrGrzYSZuV{&eIu9R}aT@7Yb(JM1p_uTwMoHS=m|~+2 zA5}^bj@frzmb>vYW)`7&J8#iI7}SJ>asU| zS-PH7!P;dPE;CBrZ3dFqf@gf`+}votZ|EGoZEd<#r^*7X0eq%xjSZIQC+i7;6??CJ zgxxXP&i?Td7ce`D}R0CXWCZ zw3gRAHNDN3)Z#WirNcxBo!4>R@;24Uq#!eqa=MaAm5r?Ba>Bk|Z^C3Sai|;Q z<80=TMs&oi zauitjHdRgiyD$fy*#J?cS&?22r-kh28jALN@A0Mbl-)37D^0BU;eg-ky&R4NlX?5&&3SAbB)=pAl^{JhgH;}p{w(hih29tlAkuX zO^xhThJ*@66OGxv5I+A5o|)x6y`oXXmm_&7m;UmUXA*xu^+zzPRxaAP90V0TXu*7_2A67h3KLT;2EmsI4q7k4--B(c|d*n+7T!?X)!hV@5GWYT+ z$iKelXJUQTLmT3P)ub$ZWWcgchACRSI6Zr)P{&?=@J}0>;2^E5h3@FK{F@4wV-uAX ztcP13SCJL0ueb0@v7f^q1{3a=}lET^ST3`N_%jPsUv`1H?M!eH0~ z%j}vrov0kyoYvb#2+Q1@4zAD{mCcd z?-?15{E?dO{HCv1tdkhk)NoCiBN5cqq~xCex{=4j8_3eCi^fDN5j=T|(uySB^KMYw z0o#^_$BMcCjZLnJ*VUso@Qbhe^v%Lz1klM_{Q7zV;eEOn%iy)D=93)ylV>wBaz!S7 zMO`fJJ6>T!DsP7`bSR2EwO>lTXh_nCT{g#y|)?zW*F1r z2YAj>&!XMevN}#Na~!Sk2CGNd(pE0|J`X%wmiGK!vYqyGveN7oB%G1Tk};M|kfEww ztm`bT%!b;C59bZ$%D3)?%R!IsP*%#S8wt^GoFl=rdmI3 z=TKglSU~rkFcMshQZ$~nTB0_a@FNI+r^E_u52jvt4yD~^Z3>rrhgOYPmAiIZ_;#`| zWTscS3Pw9>C|vUq6NzX(L~UxUs@+s!<&m9bDv*u7$-_k@Wm;-Sv`tHiKq1|v)p}u@ zgaFn{HRt>WKoN%5j^<*Ul~==A!IRC(3rPog3mZ^IJx+~nd{7Y#n*#3ZP9>jvM-CkK zHpRbb#|uE4m~tf;(H9w@ljA~|t$PIki9OY6g!0tk^wReJYhhj?jC83B$^=h zW7>#F#EN;~o`jQ$m{m-PD#{^wY9*He2DOpeDFHII&L?e-%8?hItP4M#SOU}P<&1?g z`*?ClxJ&Jg7mj6O-6S7+DsP1K47+X!%-?=FsZ{S*uCLc_37Ru9md$5*%lHO=r=zfb z$CV^X{o|^dv>C1g|AB7l2GT9ww4VOV1+0s|@e#g9FgT9LlX=Ks-E6mWbz6Uk$8^7~ z%JwOdW?VyGH$%t`AukIw>M&`3nP&eLrogS&w*Jges%^mqw@!T{R*>iWNjIcMk#q8s z_-%WyrCsx@CtzW!$W_Ge^Fy3^V}9>EF}DOelf3i=Gm?8B32Dm15~}!ZK_PjBJ@ZEV zlr^F%U6~RvMr`@;JdrFLtNNtb5B&H}vQ@2iL(UU^Q5x~u4NYJDKiNBxQ&nqXl6sWC z?H14$gxHsI){)mK`!+f%IS70_Q!rw+?x><0dNXM`|0s?ZX(NcH1Egfpn2g3;joHTm zDv6t`^({H7s@GxQ9b~SUmyvWNhT5E3#K{kNiFj-JZQ2;vLiZVTfw^7~Sg<4!eJu}l zRbd-HLHu&NkeDpNrB3<LRvGaji*JjO@+TA*Es8nGEP?T?6R#eWFmKUFBp3DlY?03?*Jy_Zc?1O z6gw9rF``-np>ynxJ=r$L9wEo#Qx@5VIEK&ZHRqTXGostFzfLCP5I4%}SBALJG3sy2 zj5kA9$rSW!0wo(Ejgo<8fSb`bAeEy^XV$$oU;u=7l=h=*Z&-SU)l6pP2S?H*mv1w} zcEMtkN-u^2+HlE{&1dr)b(|#&)?>f1d4X@~+tFO{nj5qyNVQmmkM{O+0<GlyX9*acPF*20gC|PZL`z^%y*5r5V!cy{Q05>`r z6yPCd1*2#AugQadnVXU2gX?XO<+1!JF zE(i3VGT>!9r1eCyrBRN202m!H4y~Y63yLWxCTQvTOc=ed4DKD%SD(7tQYpR&=}`hg z^E<1^2P+uOMFaK`Gp1PFij7Sel0gHNZ`bJe9@_dCA7rFKYUT_alPJYJ%KMl-=eMG++E0` z#3?Cwcsk!f^_84N*0U|a(@Ob^*S!T8u_MxvalSpE6~|D{EsZ>VTh>N&)ab_{Nc@#^ zScg@dtu+%O>=h}QZDmc51T|tWDCGBjpRa<1)!vOVG={I!*QapWH_ZS(5bZ%l48T|s znp-pam(fVp!d8Mqu+GmyT6D@IWe4pK@^SYz_oCHJcJBb#GpXvJ$?Fb_Fgc=I_A}XqQ9NzLMVvcqN4(oq5m<$Nzk8AHI zvS?C85Q)9T!*oe{Gr|B?mM!wK*|7ue2&n|S>74`;_mI4mj&UYaF22z0X+OZY znc@^nXN@&w_0){y6kL75++JqT7)U!7d=-)?`c)c5OU(6nf3${rf|uZ(L4W`*M~W`j ziQz_7Rl7_p?xNLryHRqo_^}PK$qjXdX&I}}3O3>p`rB3V(5g*6C~ucOtrAalj#5l> z$I*rW;%E-~o6=&sY0*s(!KPYUO`y3m=!3ofgldgHnDwBKxdRTt6Z-jeYkv& zpI*(FB(C;C;Ih5WCyk)$Mp0vbXm*fEcY8pW7$#4}W60;eh}n@ZanFx(?f{U0lDAm= z2g6;NIz~*OzWT)24c~}k__t5+9Y1Zqxl*8Q8k04mLL88Sd`I82EovA%18^`w0cujX z_Z8vG#r9`@QQ~)D751Ov2H%i%Y=JLND-pXITY}HZ$g4_+*zk?|N*IJ?T!hheiZ7C% z#~6(b$ow=9tOa3JS5W}{mRlF!$=SqrT3o6d^HrZ$ma?&7qWbjkYSHo1pYT`lrni<9 zgsKF7iPEi_q2CbOt2*UPq}4u@Vuf)V_VS5Ly7!8n7KtW%Ag4mRaT^{k_oYjt4kP(YVF+>N&qi-p6n-xslF_eis%h5oBDZxBb07M&fCbH-n5fKU7Bvlrp;vhjE9nhJ6`2QPs% z<%H(d>WXrk>a7+MNlxVPff7pVb7o9_SrjP&glC8XEPE zuMj_8dt7P91e=dJxHXwg7?xvlRLr_dbMH=_RJk@Cbi{itPmYn#@He>KK0#SwLEFkA z*A8#x&0|hXZaWc$=?;|R&rrX1Qu-8Fe5xfjFn;B_nLETDJojdP?~*>Ynbr--+r4wp z)-$w=xI4JyXZQjI2tpXL;Xz2o&t6RGGvWGmhvy^xL?!vrzM!t=2K35R%`j@b0_Y~B zQ=5nLwJsY6dP_B$n7=dOhmFvqwrlKGMW5|h5?iDgMYNu%EZ*pZ<=tK);UO06 z;Krn@_w8rDrj~q1LtvYuyIF5fWXq(Vp{NT~pqK1DcvQ3N(z~=1ju^F1MYHL0qx>j@n z^&5s2!ls>`l~21Vf!YMm5Yfw8I5ww#nyxfgxD5jR_G8<3bH~K5>3VJ`xo60tXqqy^ z{N*PprwWNh+)*8(NMm=Iv3!57epc6`x5gIZlYG{y>mbH)a;2%b!r8!Cr>(_oGdg9E zCZ6uyj`C;MQXHYK%@rTtmRe_?TOORpBOOB%B*ohE;;lv6{tfp* z#~nap8di#9Yv(n6V<%QXm7x`q=~Zf2(Vo~kNaL<%T(q1W%qdZ`Vc^ViiofNrb_&{V zALStvmS}kL&45*+75v??q(bPKl%qXzJ}O3=9IiD-X&^wePVE^o?%x$*({L)hjT5uc zdZ-lnW3<@JS!Gf<-#8Z482g?%0Wp37?9AP58vO`!6@J3fXpB_4E#elYi&knV>O9it zJ|FhatnId)z5y=_)TisD;Zj&5z7dPK15_EC<%p1zzfW7Zc+@XTM(g~cheV~oRhqLn zeGAMapKcW0(Ifk{jmQEVBJdVX5Y{htT4|s?QFjM;x+wo15+d-F5Y*+g{9-A_*t4hI z>|)_cp>_1Y=7F4rfQ7OaK_h*$l9(1T?~H5-*%%EzXa6ykK#z*aK{>~T+(>$bpq{Id zLdEMS*-~d6U~O=$cveMBUpvLe0Bj1Sv4vqZ%Qw>RTYN2kVt7ThRh7t&QJT~}2yhA{ zb))rT`f*88Bjux06c(Ji&Z~h1#FA`|*PWcNT-AVD-vN#$r3Zq1y!~;%l-t)`OtVsZ zbciHpfo9u(mR5$A%9SYDHQGOUBK=H{JIp!Kp9XK#Gy4;2?k2HUIBEMA_HMw^Iq$~! zS-5{M3r$BhO-!A`PWQx#fPZhnybU+**v%+IlnQEmFXFc1Vcv|&awfB_ty|o@1B4UR z8~m1GGJRz`Pb}y}$Ajd%ySXrWntP)aaQJ2UO7O^(O25*u7{9z)=!abjwLX=FHA&(% z_&2gxb-6v#ZsmYl|~IZ*VL-7DU2 z2*IrlTqs6^V*3DYZ3uU}hEC@EMmPJfaGbmXwd&@d@MwKMgcP&Xr=64HO9v zMo3+nw+F3g`rZ)crw&-4casFhnCOG$pO|?T>x)lxF;|qyNV-d>>Gx~P9=nrb*}P~L z8O7O_)vw_p;Q3*ev;qksoRK43R(mMNJML-KDfIqzxbjH40(QWZeA~M_fQ84^NtMOH zdEiMlrZ{pwNfFKWEM=qj^hPb}yT5bPbrCp)P-O(wyD{zTe^ zIgf#0ppjlpUEAu#kF<#dE+N~kBZUVm43OTQbC-wD$)4Y8CeM7&D_6P=ecC9VgPtDX z!(eyqwtG3{S9T+yP@$`0wN48>Z#*?As&Jj*59Zk=MUnkf8(q`Xdjn#DPDc2SM5Sgh z@l-IldMcfzvxU*RpY!dLj&_qeZo{WQw#0-ZZqCZ{l`3+Mpn$Q`JHQVmLmW5WK>Mw8 zJ~=uIX}>|FE6uYc9scvj$oW`2=Or|c13KDBqgKzY{gU60PeGv&do#O+vv;&=jGdZ>Xw|Yv zT4)>(0R{hyi2m1zFW*vLh-^>h-VO$gEg2%*0YC)T^#pC;D#o_uUX#z_NU8#`B@X|Zu)K+-NV||)k%n*-2ujC zX5nZKVFNqbvwNC3v2(ILa*}{p zLuI{PAR6AvnqY5Ru%HFCm?)))r;w+;lRd=MjMCHI&H*Om38MZ*E(FK-&Fs{azeHSZ zLDahN6dVah7YHQ}8xI=?5S|v~&P5I9aIvryQkRte%>e%dqW*2FhldB72RECeixoSk zpr9Z-2NydR7Z5H1gn2o*nt1{pU^IU+NJ3y>7pRjf)X{t* z2a%HmQQtEOSvZ2B7DB%u55GAF7Y76k1ak{=19{9XxPWFn{Cq$&0d5WmmzlXagq!bA z9yte?tC<5Ba?b;2W`n{>;9bDQ$qU!#G85zi@>uf0RpGio3y6RqpShrbAcTYKPkj{^ zD0~>1+5OX=dmaloj~O2~pBbmQC6F5or{LkV-~*cT@PdKdW)}SX`~p0@JPUuGwhe~LJ}?zGgn6!O-DyN5cOY) zWB23ij}Xg3Ves8vzelbH#Q8U}gHrw)H$rCM`%ws@hMBoTEU14sg00OQtRV373EroF zh(Z5{5DSd4k|B1kVBJlrS1pa=AfH=VK zbUfgX2zM(8O>z@X4;Oe3-BTfm=%BDn_gD0*N z!E@u80D@*6MF7ZP zE->^S{8_+mF88Y)?h7%z_9OHnf|27M**-pdB8I0%!b5e)^oEO2I8GW_&BJKd*2x<= ztUArN9QxjGtZS3w?#>nB3AYyjkdWX2+{f@90|0-==I=JgTmV4e6u#u(&EIY2sQ^G@ zFaSU}^LHEVTL1tn2mojp{{z=v8=uyej|4 zW_{+G*t{DUtbc!2N_o`z2dZ-!^A|Fhhu;otpE zWPgGPAA1N_PXFBhZ!u|xxCDAL5U%w<6il<;Wi0{5FUhl{A8*?K2LS*U)u%V*u4*Zl zP)XgetJh9;xDely|1L-_@kWz25%slV1#E?ZMYtcwsm@hZ^wa&Sk$)|SU0*!46u%6o zyc$U?;O816J_$Lb7lL&4W}EWI6bk*TF#Ho1rkQS*=A&IgkHT(`yaMWad-XG0F|h)= zf~A78K3RRywwnK{Bl61dV;w^xO}fnRW>%%Q#%NaV;~s*7$X(-+f}}dM(9}hJ0;xPp zIxNime^o{J#1e-qXDJHPhpLY|8YE^K?hB%KV@{7w@qEOu9i8;H)MwkUhT6wVgFk|M zU1a}78-?S=n_MOK)G=YVdLUDU0TklHaa3zuYjZfzGjOu1V%H`Vc2qm0KigxJuQerF zX0N!*+QO2F^W~o`&X0!rtgMEia=Eb6f~|o^b3<2x#_g80)Ag2hRG&Hw%FtTA7Zk4l zn2AvF_PxE(X@iWi~RHkp>cz4^^r?P@c+?1P(oYlRhb*a1uXNb+*il3qYB;+c|O6GXpp(>Adq z_Q!8V#7?cCqY5lb?noop#ISsedPBkyxa4)2^>N$GTFQ|b&OH0La--M_!fPcimRfzbCg}_P|vgeG|O)00MyI^r_HeF z%os#y3#1;6L4{<`p8aA*03=%LCO%4k-J4{b+N=)=Wn4Xb1&qYg6yixfOVHU_U7=k25~SsxPOX|zF`^)F0f}o-por}P9UfZagR1H9~|I4GOw&F zDfHLxkUZ6ER_M=4bt+At+4z2O6)|@`H5tDF$xCrfW%6W~1!{Yog9Jml0FG%(zt{yq zjN&)d%XFLZ%vT#_A>(dC?VIjNLE59*qk|gQ3B1Fl1Nc%l=LQOy$J~?SbW<#0ujq04 zh6aH}iB}ahjr}ddT-6Gi?IKS_Hi{A(amWD(CzdJq%#S=hHP{sB@$Ct5$ZeC7gjHvm z)6`{cmn#%>`er8BwYc&InN;lFw)@GvYDh}1j-FuQd5m8^Pk3oFGpvx1dOTv&gOgq9 z0c*!#qO*`vVDhJf&nbS-J@2{Uvu6#2z@CEJrq^4)U*BN8k8(6qBGsf{;c~HbCZngC zmuIMB+CAcOQ$=3FX7hM|QeR^+dkf3 zFBA3X{n7p1TXi(~V6rmdm041zHuw!W085G6DdE>NiO|Q*u8)IDH@^u3a(nbXB{gV{ z;AseD&@_Np6coDg!qbI2pMvax_9vuQ<82Ch3712WruA-@-hOGrna7QNgTT}Z*Xqf{ z<9qJOIdVm85fGrk5r6oX-AAbEDfy8dkyZse8@|zzA}QFgefi`pn_1zBbk}wzmom@y znWYPfC*^O(`{g$6g-pgb^t1ZfrrJ(EZ+1B*7m4|@TNTnzZ=2O)a7U^yYy@Ch01i&D z(=Bs;O;U&->!yT87}$;=HuHk2n?0%JLK;EWa_>VoZeom z?QSk(U?2@w-BA1L+`ft7S+kJYlpxd&<7m3aFw)WWKv;cJseVDOAMEG}xU?Y+KPtDqENp7eLtW0u75#CbBY z?6ds@`#?|V3&7)tn{T~;nGL|AW>j3ZkBrBGRJqkzS*eyV&l5@&fTVWzPe`u^agJU3 z1XD&+&J|ab9fVFf>rtx=D-LJBFVf_Z`MPyaffV@$rr23nPf1^R0)+XL0^k0@3J~E| zRI2{gubewUrL6a`(7n0AD^mc*yG0>2+>yvrX{zKk`Ua|8#$PkVTAjH$)0z|+o#ofz zcX&Fik!=@sc-C+X5~^rRSvvqA6gtHJCItYFh+Nt?fLV^aA+EpzyUE zI+Q$3$|CLW>IBg8V`%(3um9i^z~%vw+RYTf0inCX{RKfSf#VOmmj*FN@%}tDiU_@JXFXSruIFRzvS2V*uXW zWK}919N;ggbXL?0tH3GBJaijwtJ`Wg0>^iHA}o6@0RQ$0PUU1aU~zJMj?+ytTAZa; z(BNd7SZaIFdPn_bUip7{PEFRI$g7VpngeF zb@KxzY;4Z;tl|5}@)F>H_~D`8pLY&_YEp{&pX7`T7lqtd`LCN+cx$x#_Div^^)S3Z z>{ND4{$q~#Q}}*chLt@fGz+O6ZW1w5i#am1lILuc!$6Z25GF)@^?3{MV8NAu9tcm*)YqulA9xL9pNdZcqzu_ z^eJ(4Ag&hGw3VQXQ7(KHNj@PSc%Wgb=5=!975xdln(*N3c9ff*pe0+#+e?j3FOV0F zapn?Q&*9+i!?orm8;aTb#N-UrX+D~@1P{HD)FI%7jC;-`*I?S2!|Tx_k+$2+lloXD z=H~aSn9p0$uGm7$&lubBhE-V3HtC-udZ=M4C>aH)h$cr!UVK#0fC+4vjPt~7uAlNe zIU3+@{Jd02a?nFPA9xM*YY!nev|BL>u+5R0Dj*W6Tmo>sBV_7dWrTctneO@EIYWH6 zJiDUo(1Y33(ho5LSfZF23I2x8e71ly;ZQcv3Hfx6DY@JqB4D?ys|m2805f$PQraF=hV>IctHvv=M@KJ+f2KIbV0 z$Px6}w~k(J8A%*v)Xs>Xk)2jel`Z4?{#xA1U0ptN7dDrE$jO696iCRvD90%WxM%v_ z7>@Pt=9CSny?6GuWC#;Y*oK0z>`V;PSQ!@69uD1*vOeVH&J#uGrm%niK9JYlt8YM! zImG_uG?(blSDx;D?;m63UE0k*6A3*bz602rwG0_N7EmA5{EU9;dIOE^bZKB=h%BeAQ zJ~w%_tK4eelt~hS;e!}8HF&EOlj|qU5H|R#%ktxEr(&+UtKzc{J3Yc1g4@fRgKgzW ztJ>tzQ{FUy&1jBX__+u@v;iS~0!e_&shTaQNdaC#sfOixg(r*Rb2 zppu)#&;&)Z%RrIF?J~K+bEXacq+Br^95JRgygsh7=}B8o1;#-e_f(N(5j4F-@Vj7l zsB}Ka#Akc*I=$$;zNe?bM|Z-vwWawEkYU;O+4^;{SomNUWC+W?q0bJ)ITh^2sQp>J zo|mT6G}TV_MfAD^l^|x8`}|n3xd@1ZT!n~_aeUStJFKNwa(OXspkVV`N8?ocId4b% zVtd8uZr0=uzKgpF5d*}_aJ9Qo7Z8y(JD5j<8R zR-d||ot7fa$Tvv3LnB9H4A)J5m~>*@qlakt{D)sm zmS5rG8U?iRvhJH!KgE2!v&4hpy3#~Jj`oh1y-uE4T1nMZkXOs!$B(LiSO>f-D>SK6 zpgvkejj$4M;l>E76hs|uc$aD3H#L0+02}FHTzh3%ao>+0oQ#_&DHg0W7vPrP+kpOp zSk7Ss+pDoJ^ph%V1+y_ky&1@oGLT&TD3QF!iY;uMJ6Z}9W8i_JAn}tNWcopL#4l1Y zW^>3H*J~?AD=7A*{wJyWtybr!UJ~lQW6EQ#p(5Vi=nQM}?1s^$DjON&qIGUs$9lFj z{a%o*&H~KOu(^!$-W+yXEuh9mYI5g~kaO)mwUT9CE3N>xm!Sp%G>CXyjB0&{L$ueP z&=>=S){^hDDCegjjP&}bTe1)xvtjaYDqpm$IL8nHOTJfG*gDV^n0U?3)BefwS+@|U2Rqe|i9gWw^5Mc3(S`dSK+EUs3Yrt%4gB0BM?s{(Z|+6_mIAEryD=H2jD zB&;iHY}yEWUVAFrD;ghG=nO>H@MJ?4%z2L0dncRAUj_zeENPBTkh!*Rekk7Lta)iN zR%Lj0$u;G@<~C~bq3~lNUO|-Qn7xMbTA_yRE(oMkK@*2h;#Nn6UiObHJ~QH-0{Kxs0A~y$~)j3$IB&pw?<@Nv!cex zhf`Nj*Po7eY|{5LAKit#bno34UtK>%QRLi2hk-9c<3rrpZxHB(Bv*>nZXWN(XO+8M zE3jxvv&*jxuyG?KW?>O&GEE~}QkJ|N@_DefktEEn!bZRW+l+o&i%EirH$174m&d%O z)6jIZ9=Fzi+j*LL0yebVn;!0sE*qo6eRGR?R^z?>^YdO&um>$V@Q0u&SMSud6~1p} ztF(=<>1y6#jKsX9?oU*uI9L{JkqB+&ItZ&WPU@40O%khG)1*e1S0~Av;Vt;0a4~9i z@06|lJ3xdNxQMV7ozq9H{lH4C_oPd8SB|JLq$aOMB~q}y+|u_mVZ0UUlNVpvXm1A2 zKOEF$v8JY* zRF!V<@eU(BUBV)&@Lwf+wJJv(C8>B(s@TUjAzoNhCA>MsI}u?YPzl<;O=#K^N;2ze zBt1OJD;|zd8wj93Tm@Ookw}>GtTKYKgnB7ZN{5k!M?$qby;JNw4D`I%##tz&$+WFH z>{RkDp}>GGQm1mghWArx=dg*Xn6PGyp1uU~W-^Q9V@GmMqqmcdX=D2CmMgB!0w;uZ zn=!MEw{0|{7y8ifoZ2t`0^8}4LIZKLdCRYN&b0HB6a9Cpj$(;Jglygq(`2-H_9&xe zecTwZ3B~B96DjiHrFhlB_}#9pKDL!_@IgY6`@+?Vp#5+J{ZD-zoMH7vhG-Wdsp_Yy z{(u)!dELGmKo4fzX3Ilq6s$aR8bPwt1x(`f>>Y_cM{+32<1kf?$klZjz3sSH3I~xn zNu#TT&hdFv`JRWTon=>ciQbSjC6HKio!7T8Qjkb5mN-gZ#zLV`cy_28CXiiSpjYFi zDME&z34duYs}({*wnVI`ZY@yFvy*#v?S*cS0-kuxCpEzIsLY81-OM|q_uy`O2t2;@TXvn!RJsaYb)HehD7Qnw1L9v&4CRLW>ETwE(Oeg64;uy&gq3sW}0=h zjdarRd|b#%^;NJGmxY4p-oe-6(hH^$72Gf~%qH1gOVcvU<7v@{gN&P*5`}J$m@c1+ zi)XjaZ-g#sY7uf0Dq_Ntx-VrDyQEamqO4$WqRmWkv@`0@xq+e^9^@&-4eSgKPLpA# zz2#(%m{F_snfW&?DN=C5L780bVfaBq^W37dmIrOz3fLS2BH=PiXJUxv)r+V&BBOMf zt9h=$d9nDeeP^`lcoavt8*`&!zIwSJ@`3fd5yizeP9^)|X`5}ijvU7{2IC6=5 ziy>QVg0KFapkGF^l0&w}FJ`1A0I60UHzoFc&<4_tua81(wF(f!DJjg1 zwLwm@x|T=d3b)Qhf#73E7}x?|f!rzo^h(Kk5_^!x)kj!f?^6Pma+uXt^T-7r@wfaT zCfuNJ@#Yyn!!x;2hXeDbIj`NQJ?Z%ay%|N==bLfNlRnk{M4*G;lm@_O5T;)<$OCvm zK)Qdk9K77mAXJE)*zg$y{^qaeYT~A5zvqw#f6O5ZDj{(7XX-rSKVaA6k=Q>hxJt0j zA7^0y7$s7OiLPCFv$(7C=mS-aH57-26xGaIF`@RXiEbo+L>F2#7;m_2pTi&#xg2qN z!9+qIA-y!6>q{?nG?^)9Eb;Bl+mfF)SyYL%y=!OI)2}w1!WS3|7qRP74RyB056PlY zle@~9etbYl@2^G%Z_D6JK?6;xJt{5i|7^LkE> zL}bFUG(LHuX3BiXCS?{ALuy$e{F>ynjg?ZC#D0^wCK2FEb*L2@U3Zj4)92Z5AxcJl zlYV*cB(Pv!Lm0x zxVyW%I|O%vySr;}cXyY;f;$9vcNvD@3GNU)Kyb_BoO93pzWdI7YrXzw)~a81@4aXC zRCiZb{VF&o%A7lw7>i(9M6Q1fYEQtu^w?2-RY5?bR99kg(kGc=@79+z^|+e4hG=`{ z@ou#5L-*E0a8J)Tk}@4d#N1Caew^=`t%+*CU~2ZtH<0w>CXy+Tic>Ts2WB*eFHjNk ziH49DzQuK9M09y*5i-(tM1L}u9V68k_f5t)pqtnC0S(vve6oFXy+GANg1z!sNzOve z!!0T2+Rvxw;`c~SHIXxXB0wtz`}C2jf0E|JpF5%Gd+o)J2`nWb!vZoL?*s90JCMV$Vx18KHBthn(WwCXP9*+n_(Klq26WuDM2>J}OwPjJu6doWy`T07E zyRrVURU-_VVoxedj@E#`fS*UE)s*^HQ`eYhxdF5a3#GB)FR}-;4^dY^>IHej`mri1 zlsIO6IO~)ulpmB-F{{XSsExr{m9lR%>oz3}>5>LBXqj^fazWyKyF!$$!@U-|RFAhg zkHx-%44LPjo9bsqc@>rfgi$)4(&6O#r&E1KTVhLnhRf6gRASB$2kM%HcgrUBhi!ur z-%HzV%ukT-qbZNQpXQ~XU&fH~NvJ<<*W)uw%^ho%`(d4XtPFJCirTbtvqqZ~$ITDE zR{>`_?&VZ9_GMQ0?{$h#5Jm9wN?|*S07(f z<}jC6jy{>L2Y*w6d6RoY**VJ?ee{gh)E}8RE*&?_4rug#LGV$slMDXLU0zn9w|}dT zn=8ook;fk9rV1ifrK zR%f6mZiL%bqvW$c)6{#?_HXm?loN^%N98eU-e17}_J{4{M+ZPaLBK)4K|w=6{)5}| zBmM&tg8~X2lafPR%?yj2om15{RLne;N}{+)oy%0iEv#f{{`$Y%pRl4I?oXc=LrLg6 z4ciqWzn5fInXWHcb*Nc6+dmRV?>gH`3=>y!)#3!ayn39yh>h$2EX!jxAhyD%H1THT zB{^r+DMIs~_7KU+!kAH37q2~MvbH{SeRti&K#wSr1m;>PNO?;CSi4o_zJy(um1Q9G zOMkm`kKN?wfr*PD)#TGk=-eZ&ncpx(MW!pz^i5o~tfOgDf>S$1OHBOkttqKAM?|6u z0ENhdt@luSa99o9igW1!_l0Y3k_Z#^weXmS(<+sM#a$DZQc$WPxs>{$ar9rlYBL#* znNgTUPX6lBxN2;qioLohH)X||mxm>%--N)+UZ0kFY3zVO30mo!7eNCC!oyL&B2FHAW^^S;Xh?Sk zIMdjU-qfIHjgN>_K;Z^?OXST6C18g}UHnOJ8l_^cDK$|ogXCtXnNhX1^XlHxEx1T= zV_d2djFO6Y)V{T<{qC(|Mb+Z-=ataA1n~8bSzgxO=cx|;^+NyJ@OqTQDKeXZ5ERkRXEU$rU{0pW~)Y8gm0%_ zBCB)THl6@q2KzRgbVeZi-tWAtV{|-m%+?UWd{oWwyed`bz{xe(L&;WMeZm8m!veNY zFWS@U%uguV#A4&MG=AsJL8aZtxPf2(F%Z5I3wwl4_iyL&_`Kg9%*-W`TG%Tnp+SbCAZqyD{%i@1+Prb&(Y(cO&o8g*5vi2Z1@bA26TR*)6D488Qu zIO52DRELhfYRI;>pE8img))9b?TIeLE2&(ln#!zWuR8t(#H9~-V6hl|O|lVG&#|(y zb{)6U%1Ogv^Z1E6X*D9O1=o#F1R=V$AMXjR_$5+^Lqu=__Dl=9QoOsWm7Gw~n9H^o4`R>!Z)Zmg$KSTM*mvXLm56$^bhB9Yf!y0IC@n#*conqQTc)FnWxr%k8NcAaVHfNQFC2BIK{VYGgY%G@rK1&@lxf{HkA|q)X}-_+1j*80S7Z?pqithz1Z7Q=&KL-6X6bHTH>lQ8mOx%&6<0Se%WQT9wi$(50V- zQ-w8eP3W~DQ!KF=Yj-6jfJ<*EN?M#vszy;zacC_VpCUeEzGY-;a^Mq{+RjJF;DUq; z=wP4nza(=IU3*&AZAWHH%4gL)1(y?El}nytx0Vt{qJhicrAMqX26*U?5Uzau8pAZc>3fBdh`47L>7Aw^boFLJUoR{CK z4naswM}dllKCymZoNm%>H!7HTUy|A+uVbgnj5q$`bLfCd25R*j>lr@HKIg&H8BWh& zF8y_U!1!BA%&{kS-r~mzAq$g7qF|TA=vu}v5hEhDmf$vI8IqPRJw)J4Fw-3>X}T6l zQFlBiBI+Tre#9P*y++hkc&E~^U3X=4MnJW|*W1qAGUjFVx$de+J};+jPgK04pJu@h z7B?6aZHykyG%6Xvsmnnr$(^UMzU(}V@lxcH=_m`>oy!7{+8F3ERl^v&l2Vzx1Cc6~ zqsxNiM+-cml&t1jrogiHzb|oW#Fi&L#Sb=aZJMMRO*23A_iL+8IgMJ!m`Ay zqP6veginB;ipViR!3_bhjc(4ETwzdVS3wM*M|7g+SDhyfhw)g|(5flY962%q=M?<%ox`DOpOD#ciuCvz=iVtXFin_@qWP`x%i=P`MTlZa!?W0 z*z#3zsKOt?`JF00@dm6SlS-Q2Vmn(mTR(~jO?Xik)w!0xfNM9@sB`_uB#Oz|XcSD% zkJk(WYN6D>NLo#(PGw$N1RG8snCnthx~I_GW<{E_?Ae2p4SlCqgUiWYL`Z+&jy1;` zu7dVqR|3BOT70gri8P0nIs6pRLvI`M@vo4oZflTMQA@4K%&2ArXxKeoSufImJYF@G zR>?QWqRxjZa<^)Y*;+6fBtDH&g~eIt`XQf~hJ$h(A=S^K8sb{|r;l~mU%|uG3JnF$P(A%A_Eo1vopqtS9Eu=;oW^8!w zg6=J(-ves2CZev@8)N0qCQ2IGSLXkK#e~> zm#nXfip?f(8?DlWK&;D`_!!zZoSvBJnKB~A8YrxZ#9{ec5-H9wPjhSNT4Rh29$eCJ zXqW^#bcMCW2M8>*^4-Rp#y}`)TqqY$*H4kBEzEGX?1=?O5^D^Rr`(lDU?A`Q21d53 zB>KFnRvr&3KIN%43HHzRdVWef#cJandRN|YWwRJ#a{WtZ-non&5@H4aMb#g!geSJ{ zX|)>F?&Z^m>Btia!(X%b!@zhqGVoMvaA2v})3*C>R^-dBmj3b6^zpZxUskI=!D()D zAShA7_OUNP%D1{Gi3g`@>3V~Iuq+93vCR(|xg0UE|IWvWwG98#`8vY*Q|+X91Ji^R zA2=+BEzM0ltG3!Z;G;=L5Lw4DekoL`J8!m>qSPCrT zitG=LTFy>YLdC%7I6}t9|LS!+Nt(^%g2bk(*|OM-M=^7y7~;>F3)01vu8Iumq0nIx zlm?arcN>Y|`#NnnH10^Pv6RbLKRLwk%IN8^+ISoIhxdYEEKQZ%VUPBxsx)WQ@V}<+ z^b}DfnO8@2?YAmj_sRPvkseyBtHB_%SC(;TQHWi-y zvdu`o+2b@nmJsy}v2PxRz3pjQ!+vK1kK2Ecaj<&WUXjjc9sCM2`j+zi?QCIeA#QQB z>pq5nR3Oo?xT@;Msg+vHsDP4u1`pmJBJWe|ueBjaW*wO4YpY9rf@MWpX*<4(WazEa zClzMmsJ5s$a7(CGOI^O@Fj=b8k8kjGK6Q$_rMtLN7m5W7=NppYEOLR;&k){f20pj& zSBOVA0jUOfp=%ZXpb7cS_qLlKzC9-j!Wv+KO{)f;g~L@iNd96P7eAhhccMLvz2L|%gTF|R^+6>h?dK}Sb)>}L zDw~pOI(-+=zKU*$D+*L-8Uh2i$OBbDm{izBwv%y3e#Fn4jbOsjS?6Oh*NfruB@q(G z_7V>K#Yiq|5!8k~_l?xN$0y2p4RA>UyRSRy%C@D4&?lVMF0fXI<#TtF@E%4V_PwOm zY$Zexi2BVo+)oyCsL=~s-aNxvDcdEAuBcO%jlDV7m9Tb+7yA?qB1hH zC;OQ3HOM#lF^n131fEW<{GIbXj-XwVT<75D!Q~?+>Bemq)?vSj_kJ-XPU4j_^74srv2)E;q+=bLX%LdtAc~AI`@om3DoX0(Nwf-;P}`w_xw$3IuF)#5-N$a1hSO zyF(NW!6?2<+xx>k=*XjDBj*LvDx#S~z5L`s_0BMf`#E_viyljJJ-m_WQQ)Y5Ge@F{#Db>Dy2; z?Pl$0?>5DTKT8i#R7>>zdfCLB+JyKL8r7WRtup^s|74yJ;?ZhGlwn3>$4Lb>kQOE4XsP!LQ#QM^vwikXrn$L)<#CEytqpX7x#s%4O_Kc}Puu6(j!!!qF($llf+3*jQ)Q8>>c@R&Cnw z398KaM^tAXxFp3g(VY!gPrEFfp+)o`Ik3KLyN6YLMz+wx`5x!%j5+#d@+Py@3m7)@$UwrBW|M?k zR$11`P4Ash>}$sg>F!y5icp*>RdT{UK_>L`#0zJx|DiSz3KY>BO{a?$GmdQ_8r~vN zM5O!+kX#X}!W9C}_2pIY!p|3mG`KS;Phc5dQ!y=r%7HmPD8yi8@l#HJK_<(R@WHjbL*)13wSbL z9C2^6B^M>tzEswm1N2vdMtj-alB}ewKV^^1fQ#TJs2wuEn(N^Y(A8lroLB-){$4Bj zKQ=hT=$Tr;o$bwHi=e?cD61o?$CYMEjMQC#Z?eiUG-5AiXw@0hpwBZL%xIy{VZQ%o zS7a-O9~x2hIuS0T8GtXrY|!lY+wke z&YABh#h`-2k&Y|*xsOCKH0_^3i$T@3R8@ze*RaJDwyphyQAc9+H|-lMnuxt)O`x%g zHr(Py8Eu)|rFsWLc~yQ_LVJ_jASpe$sr6v#X4TdkDI6`Cxtq@}8l&I2=3R)Je&0}j zmYmJ8KA*_3uOd1k%+9ouaX<@@XCz(w*}5vDXO*>U?{eskYV6`OE&XAQIywAMsvvMs zh=Lc;3ln~A;p|rF7dsYJ=xrX^czz*2g9H5qoHA_yb3En6k5WM-G~W{)x}3C$9|$GI z#E4~|u@g)p${u7-92*~Kw$N@gL+XLS+0~5S@UvHjVdHD_LcLrAq>v0H^qkeMeIA61 zf0N|6aSu)fCc=$ET5CEw@+XF&=I`mDkdA(Mrp@okW6idtImEQ79T*x}b1D#g)bTBt zy2Qp4fn)yQXK|=3dvoX|YywmZ1)bIn?Hu1+u#L@|c-P1SA9KBqRwqe2iAHgNu5iqyuPW$! zv>UKdW6$Du<0&2w_eADi@<%{Jx=ybt>WWE+@k#4>^GFOb3B|TZ{42Os-ua0@$!6IS z*Z)&^AV@FyW{EhJyc`6VOm|G{c*i_)|Jn9J)8%CXx@-x#U$XOMj-MYWJ2cM^UU9|X z)F9#9n(?@rg|=a=$=zGib=^?biV1Q6 zl{|QgutL_dGxugsU*OvY;`gn+>34HY{X2T#=tlYV{yA&dxKX83`OyNC6{$n^``tQo z3sjY#s&+@3q)TJ3VMT@8%QZcry0^I^iUAn!N>*^#+3ZiD80{@{b`>^06detw`YD*6dgxt@h}H z_RaScU^P=!YaWlxBTm4B&^;CXHeY9CIfzwA&9Cx>LBH#Z?F=%A+{S>fm+ApgtEx|3 zL92UC9FAHD8aUHJ^$g6fuzeN9d|MN4}@ZqG21rZgkGn(WL#7uh7Kjb!L zc=LU<1vxM9XyRsF<`8952*gI_!CsiU@rNNj`}wJ2^8Lu^)jdcWy6G@*yRoOiD0O=? zx!za3tyc)0zVvtYENuXXsXdMrl}267(Ee|b@?+LjD^;uwO^{e71Hi5qYr3ui5$EatQgVKg-ZI1SK62fWH6< zc(H#Y5QuSQu0B^Y+pfA|kL#)D{|zXhyc&i~8$C9+09r^AB|kFM|J4x7KW{Pf$;q8D zOpWQrs1g3xkAwgP8>f5^;bKTq9Uo=UPS{BPU-~GhNtUL<-L>lo+A(xSmOlT^NS2M; zS(zjyrN~Xza=YnMcH2t%R|n`U=HGt-0*y<^cg8JO6RLPZYhwRG$b}-i>;p<;IKHwP zOE3RXUAO(GoF!qE{i9gTVO5qLZgm*+@9nB}r+;1qBCUv1$T|_`n|yHN#qS^pt~@8| zf8H%REJsg)H49mUa5$mou0SrNQ{%s$V%o3dm6w}5@Nu&af?tlVN~t;RpO?T>RduhM zT(7T8*7+#}m43mT0{Kt*f)LuT`r@6=YO17X+OQ-unzWD1!H zwS57d@-I2SCg~H~g}VJaNM8JFn%f>t^FP%;xDDWh^Z|^+N3G%3#@&Wld844?GrlFwLO<>Hxr0Ch3e=K|N^pukS@VX;M4d-!w^t z#Q&!phEj3uW|iXqtquS{&;7!k`cE+cfN54S&F~-Ne`rDgkXZgV`Ny+U142F&{e-QJ*G zaiYCaSrw$#6+xsD2u8@}y2sB@PT@Rk59mluTieQd&*5NQ>5+Kn#A+P=x=O*Xl(YZk z_fa~QonKbu{nX2KEJ_5}oHYj)i6rKR`L%*3YIB-^&+;G-nuubT_g!NbE{nOcCwwH_ z?unU}s9&6K0B@dDcTibazF))f>lMto_*4$BCvb!P;PYd2_~1&@TbCDeqa=zh0rJ33 zL3RcEzTH0T=2YHl4$44;qN48b8c93lWPFDTsh(AeUOL{$`AF8)+aO2-I&8ks^^tlM zt}_WzcghktROl?{6>zK)@)^!%aDP&m6E2Rz9QAQKUs2wGmy6Pp(tyA$Ybt`ORz<*) zluRg<1>e$t$8Fex_1n|UpCM)+sHT_3uUGRf8J5%J=i$RT+b?-6-xjl~h^7qjmKV)J zcM-z75EQV`Qej%AwVf`7Ln2cGD4b4%&Z?mHe>-N~S&-A*Dc^-CT)+Ps-sD$4?87H> zp$j1~6#Nu%FL~-|y6*U<;QSihZuoMY1)dhPW~T`!>v7Myq(C*XTutdKLNdwX@hI$u zqPVkzyF8i38CJuGB8oMmvR~W&!EYvDak?}Gl`C+hd*7+AXaLhS1@18-xWT? zPABB&o34ayd{s74;Meo(I3ruyf~a$4aHC^0GxbZvB|h@bc-S1DZE4(gK?+h$Gex2p z$Tv&4OB0Sx<3n~}x+IeexOO4q}<2SBXxP$pAhH9yS)gRY-Ln&sEBJGnbx~5H!6Mh1F#gZ+w3%yA5J|mRLb3ycepW4Vg;x&58b)VZ^RQN+IH^+ozeW zC(@UH(=kU7_l*m+(B2pL;1;0B;iMGE--RhW(F>>E5Fb3Ja4xc*L0KJE;-5D!0|OlM zQ%%4$O_$d!ujXM(boQzbNWuJX?hoo`z|O8{LP(9DM-EH2$OM zqe#OO8_-5?C<)+Ztj#DF$vZC`t&7l9&S0tjIRrPOH_meP0=oNV^kERY5W^T!ux`Xj z>R92V-hnnN*5=6aK%+sf+|5Q5-M6=$$YA#i@~fT%j$r@oPW6uy_K#qtf&Vtv|FYEo zFxdZ?AU@8v(En|$|CN>bj|k5XV-3d7Zh1)vAQmBDF6?=;re#izLdclO(t8unE~Nfq zd2Q=|eXU@C|6Y4FbdS?qFELEqHVm=SQMkBzqyBn1ndiLBHyMM@5}&fvpj!gQ<2w4- z;fI+%id5EqkuvmkJGXO&eU#)Op$NlAAEs- z6;&M+k*_9lH(-mt&MuJ6GRU(#AOIRMztHlhM!tkzB{FYg63TlaX^R!81m?Gs?GE6l ze^HO7M$WU~`U`MH@~j*aaXh*$I7lB0AK<hVxd&5dL`J{Q74zD)rI6h;z9avbWu?7wjA>rB#eI9~(LLv*4Ts~c% z#HBRXd$3J?hNIR2c8e~Y`slSwOv^g?h2GUsI!doEY*%I8!3GIl$5(wa62zJWrbtcF z08hjB4p*Q&qtIX3R9SDz2aZ%o$yA4Lwj5)_$S@sU&gs&?EjMI2>xl+{=}Hl)#~V!R zpDV^30g8PQA#%*(o{wQ^_g=!}qg>!FHx*x>$x`Y_x(K9;!o-#bW+fZm@9Gz)X6l&Q z?nl8UdS8qhSty9V`d*Cy9s`Z7p~@Ny3P~NCzOxWep{eGx2=~64W%q?Og&Uv@=pjwL z8ISKt`T`D;FpS4f2*uZ(O&_D*BCQt>3Txks(w&B}m|5EH%%~XqIu86h;u%|ZA17J} zfxP%*zbGcd8`IuPQC~^BFc6g&a(SD;A}UuvBQvk9VPvP$oiX~fuaAjAMydxeQ6#^{ zF&^s_(ch9}lxRM)WL}iU;+Q&Ik+ic2Taafd z@5n*c>%I(8s5iUWr3bB&_sLelER;q~qZX9x?aYrMX*Zq?_^@eLv8P!3>@Zz?w5c&f ze*sx!PKt%Aq6<<17!lWqMhOs^yVgTb!q$OLfM%%1ad0XJOjv69ZoW`1_Oyue)Bz2E zcQNZx_lbdMRBJt|$ZISmcM4pT zZYf?2;a<7TEil-!ykN{`_uI28xX~RtPO+-d@a9t@Ywh{&$U*DmOX)f9(0rOsN(B0vK>{hlHcU zq=CUZrPI_v%zMc$O8$i2_OT`}ETpm#uEU>yf)z;SnP>_FE-D9f#RP9inXVq~`D{Z& z!bHmWe9*V*5l|1vhq4S_SE6aQgAQ=Bj4Y6|I2awSo!rG+ z>tr31##LG#rN1>nZ{5@PdPW&NPNHnu>@cs0O$WLevI z;Sz9aB$_nfT%>m+x|!-+=XFc-BA;xtxsmF!ZuGaD3ge!tXyS#R3{J0Dd4)m0pBkXY z4;Xwm|CXv7GW{TE4lk@M1l;qJOZ7#wLeg~BDTEion8tP?RFo465aktczeVQesKOjfe;^c z!D0TL&HrD45U!!cL+GlhP4ndJVprF@|C%*EQjq>JYn(G3UAz16vE~|Qs z;bY009l}QM4GU@4deV@f@#g{@n1yQQI95n1ldzTMEK-gyLyzo+vnLUY^Yv9q&%K=mR8(4S!48oXmQUje&kRd1 zg`@IO0I-p;l6>k_Rz9+O?IlwfXIWCo8?Df+#7^87HBjCN2hf(MgfSCX93(-web~PO zrvxHcS6^m>*N1?kS74H=veU%3XwY^u#ZZ8M{ge75OnFs8*E2Qp}@Bwp8^1{tkn z=Kb1layXDc213o9OWcfsiqobxGd2p|jK@7DVCKv^B>)2rLGO`fl)(Onk^E#RsV^0i zWB@6eCAXo}?)mv^A|j(MX=x6+N}8oF*Da6=Xfl`N8vx6rzQ=0t)ikH|0S-vY2CjyY zbVv42TI)b!O4$c@Gwd-~(=Q)BOcB%`5U7`iAu34&9jCmP*41}^x2kb88|b*%+K>YAEv4saM0Ozn*%)28A5#^$(cYsNv^ zT1-_zP(7&dbF2;EnN8v3PCthfH!fjCs_HUD>*8_h7h8@QpVsu~T{H^{%;55(4yyUx=~EA#2{isABy z92UezcnC{n9jQ5-LLwKpQ%IC_xM--Eq3{NdNiZ0upnUmuD`IMMymraBy>jf0O~uo6 zzQ-M{PMjb!=Odt#ZK_u2-XGmbom4Ka0o$0(mwAoHVZFZnlprlx6}qB3OIUeAz*74% zBx`k><>mA)7sg)2AD2YHsCqEE^oE7fIG=lA<^k2VehLEv$8H$)^EOX;!&4ZD2d=RC z6tl2N(Uhy|m(e|xWY4h5N?whs{Y7~qIcBasr10r8eur*pnYwf{EV5HppL|Lq=GsZT z1JS+69<3}|+*0pqN6-XWZxO&~%bfw9Fd=Ieo+-n%K_Qim$inWWXaO$tSghr%)lts} z&50Vo8Z2RwO7LChHw2URB*LKTVSxPhJj?3LpxvaAJ1RD$n>Rd>ytlDAI&z**)^Pwx zo(oh2dWUxjJ+-bypGJo`;#{AkH{Pc)jf#$Wx^?p&Xe}+Kf0dvJwP`@_(NnDy@b6Gt4#!P!C>G;sD7n~5>N>I!K>typZke#`o!EZ9l?##<*Ae!0) zQd3-0nojz#HdIWS6n)iFFq3AFCmg^6&Yk8labltWyZJ5f)D`i;Kfd=pqNtJ8xVVpS zhqO$q$7)FJi?-*gB{`Isp@1O~Q-g2DYXmJ$pW>fSX5EK8G(>*!)QDJ6M~FC%J5kC+ zb`iz3P>f1(WO{0@GLPV&W0B*Jlq5Cvbt3q0fQumEX-RXY&f;%_VqEiRJVuf&r?WRK z?ozXSf()=!9js(^M6fvedsG72w&pf*5QDTL?9?;A+!3e} zC2g5PW$FrA)!DYXGIfR_1z;lmq+h+EqTJdk7}?W{r-0UKcGzceR{J@@T-6R`*hefr zGxWJlhpg9?CoPgNn!YPm0+<Q z09xJ^sT(BGT^_Gjr_;m;)?YXytdh{Q8rRB`eJGNlGx0GJ4xN7;5`z+dXJQ*|faAl7 zZq{xxjhJGAcnZkEM$P0e#k8qv#Z)ab(FlA8FR3+HwH@r@Qd_v+5WOsSC zaxXhnrHTa9tS#raGw5M4OD{N@8l#plagm%DDyQJ|M5O`*&NKC&_>6&oIxxHE?2;7$S@c`NPC&{$6gso9b| z=17O%%QY)F7o*8vNOIliWbWxxCb@3O$Y>?bM|G$x`5(RldY;{4*4?ForU+)_NpPMp z*~i^&L8GKKF7;b?EJP*x#st~(?Q?&Ehxw6o?~VlgGfy|R9Db^>-*g*=nvV73@FH%Cm`{XtA@(gL@3$U<~^gh;!VUXL971;Fc5s1Ntv1i?Tb zJAdrm!H#{5pS;+ptvnDG_a4LQa7X$~s`7%b1E3~<2y3!qd*D7OBe*zc zHeY5z6}DhZ_Q$B|wMgP@*hzAKUztp3DofpggzcsIZr6vQ;DTYchk`Kcj-lWV!`FVz zgF9@FmrlwC1Bc_+H!NS9RBj59y8bH3n1Q`1g1=0j4M%!Z3xkk*2f0JKIqh2Msw*1W zr6Tn+HT~9T;G@cLhl2k0!j1;#ar^Bs*_W*ou&#cfLSDdy1wO?9K5)0%ZL1$_w zFJ~r)ISB)|WA&Kf&xJ&+{k!Djnm0;TO9IIhS;m%7Rr%H7a}mPDC*3AijDIfihlx`R zhSkN>eb=wgU1iPsjR7%8QORq6iuY+P!^km_CFUtHQkWHw4C5RIX7X;7nk{2kO=KF!g|uVrZZQ>YBp5NXnq9TAhqd`1lk;r5^(PD4%*515n>4 zE_w6zx6vmN(n*4PMpY8NbS;k1&kMd^6N+WAooCW(_JGGbuyV79nnGyD0c}aa2lzUY z4sDiVkQE>+!Wv&v3S*UW*NaorE@qU)DlNccR{RiD^K=q-P6yMH06GcSd#N#A%Lo}~ z!%Jhay?vC?N*w#fz{8v|+>JP4gh)$vY|Q0m(f(VVdNNT(QHbjhk+1K2DSyIe6wI^_ z8iWaio-muY(@)OmzyKMlU4m@KEQnk?9t;ax-+`Pj*x~{C(}C!4I-@7;2_guqt!qx^ zFhuNMn5JB3uq0+6Y`YQ6>2bAQ;Z$+yab;!Lhr{8qC>HXE+a=nP8k|eHBKacz0)7KI znvIvnP1`;KV2Wyu7Pc2S=X9z>wu-QksI+zfWT_?E_$UV|bjL?dNUq^6Z+mQCHGK_x zI5F(+07!B+Q$h3H(+mW9V!KJMOEMs(h(8cr<2q?|dk~+NL3WEw`{o8aabko4vial2 zhm8UyJDR8xT~{)Q>X(Vl$1u|J>SrD(FbRE(@VzGwbmH}xe@6ChIj0d`+ zEb4q38hucOIV0k>Hb$fBjp?N29K=+-0po2*TIjCG5Pwbq@8Ki8%A;b zppjd@>0P|oYSK<*gAN;+A2)ORU|;>Vei$Q!*r2C=C>-C?>lYxmGY4ub|2z zkdV<5na-S3V?WKjl8OfPvvkeq=!li%fC#PJS|!UMzhE}hIP&#nHTcuYha(qym zXj#S3vyDPzq;I=bP%pI}I%U<5hB)*?mB1Jd6;-%51%=9~vi5-wo4n3e-eQKxOHose zm|Nc}b3{yS`?EtmeufDWggluecxMD(8up`aQ8;b*2gO?6Gp90B-CC6~Xsbn|xVV!! zUPR6x=}Lbq;G(ZI{k_z0enmut{cD0VtNkK00hzc#mA*lt+r09uGX9bwS8uRo3K8Gn z2fSb}F}gItTgCjV$*~lUKI9KWnj4aV81MXa=XRZk`54|hblN<-*O9h3y5EM<=h!rY zp@=gdaZiYdFb_B&Rgy+VSoqeAni*(rqH%3xSY-B9&%Kv85UH1rh_zHJ>FG`MZ%B** z7M7h)nf~(2E^5Q_?7?9Id%Kw{Pf?Ne9js$NoAmk;P>=ms0PFuc_{eS{kt-Y@!x|$H?oA8p7Mk z(`sO?eML$v%^}aNe|W+GKMrmYOI-;Vu-*A-+?4!`hbw~4JNjFC(eom19mYF;FOAgwOb8{WSk(pi0~L0Pc_%Z48__++R(uV;%$mP~aZw^)`G>U~T>a zC>z6-{_GOrxcjQ&>0IhE#B1495Lh1Sf24p54DU8S$Lnj)xg#3Xz-OFMw3m>`arM=a zxy^~q!K~iJ&R^N9t>mkE9$^*b$_`+jlj2pDX!KjnPLCqx=pY0=V3D3itL@!`NUgw42WZ zKj=U-W;qY#p7uE6RiL>fl_eK3x}$h)Pob>Tg(Ou4NZ*MLqBU#C?omrq*j(_xqWeUSK54NInp&I0 zSbmmQ2jd%!)#+!=heSLIw@=rj%DBUupJ6B|1nc4}M1G|FG%=2KX(1ho5Bw00kbvlJ zKb&e2uflgZW!Nw|>BOtL;yp^}k5%{Hl7>vaQi{47gm{7XD;r#9NUmG4kbszV*kk)f zF(@JkT=<06L@dDtXK_m7VjtIF>EyGE%ZQa;VW&pU4#0;!X4#N;IYl+k)r$rb+RWJB zi)QOe;-Zc}Q(AKe5t7QmKr%S)xR%90Xpd>ST!dlQn}lO%8yzlphZrVS7t*xr91!IJ z%pC^x_RO@doF0%Cnj?!{dz*1pukMAOG67Oh;6KSk7HuBkVMX|QhP*dgh?Ufm%5*-* z=kevQ$riEWk9{RGx4yj% z=XbU`7HRzEUGdPiB?Uwj+s^e}d{S~+*YiuG8H^u1#HL7AY`l+|yiDSfqXIBVm!hWn zXv?SM&yrOB67ci5yJrJ2;xfAft8Y!SY5m35$1wzl>2w%eR%mBOlvvjI+CZ48d zmIOg#gVjBp6Jn^K>hM!}xXuhoj2RG2Ax8+b!igP_5TyQ1w{G`z*T9JOM7Mt zF)sfA2k_(ZJki1a)b`~V`Cwwb0*PPZp($Lwd`i&F4Lvhm>Qukt8eTYqL%53&In1U( zG-?a>o*p{n7Nr(_Ue#3qQDR-?z5vP&@^&wh!O zE;05W^8(w9ws3uj!<4H;Kz_28 z_uxRWww07{9LqJ!1ILKLV?b%Z!Z!N}VUA^y{-A&=@J#F3Ntf{|(dFg#{{WE05fa7` zvw*hhDZM95XiAAqay1-OwIRYsii$%Y`waQqug715nk?0_=)RwC?#{FPN{Aw{4tt>N$W2F9aBy zLOGT^s+@4s;vG#NUj!kI-7o`<5W41Gy#-T!%abi4bJWXuC`TuGoQIeB`!D3{E_oGey-8vmcUyD~B-sXJdsoBjM)FXQk#@E+zP7Qz!&)nnk4kVg8-NZ}W^MZgwqT+(q2E@@Yvh?!e9uGSS~Z*OsN zkHA>66?oITLzg#HsIihFj~{Ipg1MJ z_+=q{yv)=u(E_C#2ezRU@Gnxnm?+`@0NJG|v=5vxP36MZhzZFyr;;&oV$IEd1W||r z)-blqviH;|1Hj+775M-%1tS@aeg-e1@*`G2_G+jH=0}1y0mOC-;>V^{MqOJVp;|n6 zhGPj%Q;V+?BRAmY6tUh^4%QM}vH}s(v$2kAiiK@l3iu@j6yFpwxCKRmA z0j?6EP`A*6J6&-Q5taUmnv2Y6LvZEvLq2CZ{w01#Y%ie`Ti=E(tbBI~2J|WJ5;SER zJ{L1eF#^^hhKkjI&3Xu3X2<9pe8MLlUVV%T{HmoP$NUHvbLVkF;;Xns0nt93 zan#DHi8Ap0$eOgs<-pfuv-47xyLy~n2BCgm#3B%=@OprE@hB^af-JlIH5r(oT%oDU z5QK-}b?AT!{JPITdpttDr4kyv9YKMyLa*0`D20~=t%20tjV*rXuTwJx@!Zb}IFwa# zM%s%j@L$9mF9T7KHr)l{P%AtojCL z{?=xL#Nt1KmAKH3bEDwq7VNp-j)-gXRJr`UAW>h3&@l`D0JY3h*Wk-}vo8m>A^~Jy zwag*_4F~6LNRPdb`(cQr5Qd-&S#Dc-A8!z-?tugI(K32hG3$PdL#l=WdE`>R_zFKT F|Jg=(l5hY3 literal 0 HcmV?d00001 diff --git a/boards/shields/waveshare_ups/waveshare_pico_ups_b.overlay b/boards/shields/waveshare_ups/waveshare_pico_ups_b.overlay new file mode 100644 index 00000000000..381bce67c74 --- /dev/null +++ b/boards/shields/waveshare_ups/waveshare_pico_ups_b.overlay @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2023 Joseph Yates + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&pico_i2c1 { + waveshare_pico_ups: ina219@43 { + status = "okay"; + compatible = "ti,ina219"; + reg = <0x43>; + brng = <1>; + pg = <3>; + sadc = <12>; + badc = <12>; + shunt-milliohm = <100>; + lsb-microamp = <20>; + }; +};