From 6d07c7263567522db3655509ecb6d5d2820578d1 Mon Sep 17 00:00:00 2001 From: Hector Gonzalez Date: Wed, 16 Jul 2025 13:26:42 +0200 Subject: [PATCH 1/2] platforms: add Digi XBee Hive Wi-SUN platform https://onedigi.atlassian.net/browse/MPIDE-426 Signed-off-by: Hector Gonzalez --- platforms/digi-xbee-hive.png | Bin 0 -> 41990 bytes platforms/platforms.xml | 7 +++++++ 2 files changed, 7 insertions(+) create mode 100644 platforms/digi-xbee-hive.png diff --git a/platforms/digi-xbee-hive.png b/platforms/digi-xbee-hive.png new file mode 100644 index 0000000000000000000000000000000000000000..c21d17f3ae1b83c60eea9a6421dadf98a48aa7f0 GIT binary patch literal 41990 zcmeFXWl&sQw+7g_y99UF#@*dLxYM}126uN21Pu}h5C|S14S@uLyIX<=3GQ?9zMtKi zJ2i8wW~%1L?P{9tefC~^t!L?8=frEOD`23Kpn^ak3?)TbZ4d}14fuYCj0k+DzQvIR zfe38^bq&0=E&Zt6J>6^_oFP=+0qzhgh`)m^2;{$1S>WJn+?EslY>m$ce}P1VxzxIb z?s#+gOXXXWjZlDxQoLejuD$vPQj^Z}-sg_v&>QAf|J=mZC8x`Wo#G%eQHQ5Xp5osA z-QAP(X^GJ_0x@24qNv9ZwjPfxvmZTCm{rb#9!J|S)g z3Nsf`hYULQ2R{vrF26iSQy<;_df?~p&2zf{!Pv`sfvq%;A#?=(jIkSFV%ao6mYVn_ zlSp56Jdxe-$b5&9OI`^QbGXG0UFOI6^<3weCM0l?%(u^X^N-6| zD|IiCrJBgz8#FZ#5jf|Rj_z~jrboK3OR;N&NxbTPVtOBsPAF%{K1Ce(DJGBpAsT*P z$$RVb=j}SA$Y0l>sJI%m#8OgEDkth}&B!()c6iuD#R-djt{;M5C7I}535mVR64^dh z*WAWM?@k%eaEh2AjSkByWfwcy*r&ZKLc6r?(2^;y$WVbns&APZsjm5HYxM6|GaZ;}w@Ib`k!Mq$s&uIAVdyu!xjz`EJy^)uYUIpAA3k;&3*m+t?l&u&&{Xnu$J`IYJ1M@fG%;vk>Why%RU zAwF9Er*h-a5bxfg?cSj7kP5w#p1$E~9@CeQ$zzAg716eO@)Rn#Dio3I2D|OCv24Qw zi^})bot&H%Jb0}nuC!$zQnZtCoJf}wN;1_yW%3z(M~HDgtXlote%bC3(&0k*op`z^ zaD_j2)s(mm3R^LWx(PSPY9C_kKNqO|v8$Sip@Wo2X%OwIbCvYV(s<|Z?iu5S?4g{` z_Rh=aTP`BFXxh09KAJ-mE({xH@B!Zr1{jlDzp&qaG{PiO_h|h>m)!I-rN)un=&OtT zTIEYj{rWWZBQFsvu4RrRm)&;xGQpRe9}J^2IVejp3`MjolP$lzA(F^@Pk{>{L0t?orkp+(sSyN)rv;o9~S=G>-{SlVpm~hY`RpPGI|GXxm}P;oxkmZF~E)1mG!0Yabf|& zt;Nsi(0?hV%mFZPD?G&=&kqJa8Xl0Sy^d!G(b7GsUMrm z>sIEECx0QkW47Fah=bTJxgy`xFl!&zfDopSKJ%zGZrkvkCHaQ;v^I3U0kX??yJsTg zhs~t%0zY*XO+^k4bc9&9S`)GAr52cgk173vJ9+^cU93oUSp6PlJ>7l%hfP$w?P#uV zzQ^S0MdF~(jm{Fe?i6yx;JeYU)n0BFlfORB(;(4RUGzWiAQ{C?Q%W$XD)QP8(L7e? zT&zn7C&YYgkxykJp*sBZ83Q$S;;^?J3?7U zSaZj{!z>Jf)}&YLSg@Cc{rf!@#!mUTV`=$ZJ#HOWrW%;5IPop^3u9A#b!yf;^t{Xb zHWba+7E(|99;zWb)0tu691Ii)Srvu`C~(;Y{L}>pUsy=0#op>1cA#ACCU-c}dDd{= zjlFfL4%cR&pYt1g`hxeZqWN)i5PQ6tS!yEcE?fL$@6`2`&7p2tG&5HTQ|_Rm2u}Op z?|Yp4sGm>bFLcpXD1YlB4I+t5&~~E>^C`b(-tX@G=!Z_pNyhNSDtN7`%m`_Bf{%&_ zwq>=zL2*Fx>>wT$R!Q<4^>bMChhIOUx;otGi}e?-r+XeZeL^wW8ui zVXMwW$kUs8VUMu%Q}%GG2#FrLVT!Xs<@r*4O^Mb)ud6EcNtFw966CKx6&cjP6c4Yj zoYfz{^lBc?u^b{v@uN$>uZKU;Q6`ph>sgU{+Dr2A^rr0GyhaW4CH6uPNoO$sRdg@= ziz@N5x{+Fw3|>q`b-`+QR(NV6vm@Q=OT{hCh3G}xxBW1KJdwUnu$tMKrr0!$1s3Ge)E5+nd!J^%g`zDIL`u@TT}7ZI0nMs}Kd=@EkFoieA6W zIDejTUKgX8_dvC`zgde_-)e~DDM))#S8^m|tSeD;QD9*6Jb4?Xs}OgRg)=LJRV#$+ zR(PBIKBSDg|4WLy6jny4Fs!XyJMAjmdslii_;=A^^(?3{b``>DJmEw<5V$<3cT5uO z*zn?Fv(i&bFQ%A3rt>gOsTGVZQNB|cCO^D$Byk4a_*trP8dF!wZvSgH=?n~}V~cG9 zDJ3G>g8K`6M0+7cM7a5*J&{+Q=EV7J85wb9xDXDkBeK#)`qP%`ZV_az+V!5fs7aBK zF(s51O~ud^ciACNf(5v1EIBgjNp&RR2s*;hVvAm!*D9n|RJVeOo^)03X+A74XDyED^uwQ`_)c&*=a#^bvzx=_18TlhpO+LipL0SF&f`FCqaj4YIX1;hmfMFNnJYnLzT}s0P>oD)5*-8e`v*QbMAN#qe zDe8^&m+P`Y!HxrOrKC$q+w;o8P?${H?X<{Jxck2D>w5U>N{~h`!38Lr7#w^dqTK2& z)M}it94&`Zcj@^Ptb)ieXRz+7e|a^QtG=c}MFr~z<1`YWv3IGW#%;-v^$i(HW8Ww+ zZ=#8Dj+@S*ClW5gN77{uC_HA3(tIYtopzYiiOGm`3V)>Y^R|<#{>(F@iMNhqA}UEA zGGO*B2Ga`-jumP z2eCKdsl<0eQ)wR3Q(2T_m@e#Evcc$<=u^#!Fd`w0&G$$nR(yNwNhrF86SXg0ee6X(8Q;@ritIC+qR6 z>3AYfPL~Fh*&`HHVf@|Uf7|(!O%e-#utar22Fw54~;V{r7MtkxDynKKpTeuJ1Cdd)+(-b1`1X=Ytn(Wl}i z%Q~KsW5lM~0X4-WY$$At&@#)lA(kR3%GnemtSkfRHg?^g0k6Y;pgC<&2|&8Az85vk zz%W<@5G+t>k}BkXjzF&qW}{J)&UvksVUOi_GuhhRgO{b|4QB?Yz{V33VM#mF%J|xs z_GkTg!4~cWc9`=7aYcMLnKz9~DFvd634`|zO6YfZ(Ju6LMtGI*h|*3t8{r}mdntM^ ziV1r)osy!2qs(pm$Fq&t42=wxQ~2A`Df-bfJrU#s z?WiV;IA?;|cvNba57lX{tBCH6*QaR5M9%$ljm~pO6beQ3<&x68G~eDV9@v{Bn<&`S zQfHY^)BL8Xo~Z;$A}J!|_3w=)cL(pt3>#%;fRcSQ4Js1qOr6_dYNN?0Idj}6WvkkS zEQ#lyw&LS>*U;QhDXr9$=n^qh;{p|k(%{n~$#E&d$if?=(geP#>S-Y-DdEB)L%f!+eumlU|Oj)%IQH-I}lIFHGGfk}wV-0fboLp=*-eJm`ts)TeAMM&XD*K&A zhx?%0m8r~&nq0ldOSMPzRiEGfK4o4i&wD%PoBtCZR~J(s;t*B%oeMsN@5GNfT2{kn zCxqH=C*{pBea1y)`Vk2_5JMp1QvB&XbDK=q=>fTZrA++0?UmiA0@T4*2fS1W)X?JGs<{s3 zn6#*O$8V*3__LU^Nb{>Q~lUs*x>l$N1ZjeF(oyqE73C) zyQA&G8Dj*|IvJ|%HM2P98oz?8-|Iz$HyTr}5Kg}Lenc8(IGamL8ptqqk=x`i+Eq!AE)DFp)viKA6nmpN&Qcf^XsVBW+kE z(Uo&5J8e{^G*pISh$d^L74ZV44rK;;@v@T1BI7hs@!V~H2!D{m$z}p6=_=u=Q@<(c zGBh@I`n{S7`!RVLW@Sk5Xv z=8%drSFSv$%P@j=pCo3wMC!{gqLyJ{!y_|H{MG3Agl*py+RE(QLS@tTBg>#KNU%0hg!15ZII%1Ue(mKa-#*&tJ z#n%~s9Uyj-VZ+{nO10I?^{0)^dWTg;%15ycSi5VKb@Lxb+ftt?a?ASDIeyy5udkkS zA1xK}<}y*|fj)&8%;lo(q|#1&z=<9x7OnxY6k87ZT3`s%Rxl3V(O~Dpdy@ZRxmX*P z7A4t4NP!Q|lCY4X0sr>s<0;33hfYtLRT*1!9VDsvO`Jw7C-a?wOm~IiKGqf1Fl{GO z%fVR_l0q0g7ph4<3UabgdUKOsq(q|;zc3Y~R&;0SH|k6$&F8oL;@dZq+MTCzJtjh@ z(vKAro>`C*t(QS`wrtN@HSkl&1T{^A71j3RF+0xK?iJAw(94M<|0`UuAedg;H(W=5 zz<+_z+F5jSd?>cWEmgFw_&O0g^pl)4DWcF%+7%Lq3LrH# z#kbGuUeSiT_twmYH~i|&iQY|x2;Y^0aUrZh0qw@B&o{Y62zdXa(d93h)kXpV6*$$* zSL8vnK%q_!8qbPy6_uYhrC|gi-;7% zL|=qvQ!Bm2`zO>O!cg-`=~@%}H1^9J2C;v-D*`hcb!8<=V%lBFH)seRidERRg3dEE zC>}~ePrdOZ2p+_W;Oes}B^7&6ji?e-teG?INm zC6iW6wWX-;TY^Yku92?=Nu@VzmWV}UH_h>Pt7(fQg~>3Nlgh(sc|ou1b9eaaHfD_S zRpjvFwK>-md-uFwQrfHD;E`c5bDq1KjLCae`8(8uHgoQ~JM!|NeW{n{p`-+Z1#s(0 z1waEj+CfG}Q%OeVpZ#W_%Ul$aE~W_8#E;g{sbnEQ5Q!7Csa7YHl_OIjNVF(zAu#d* z2kcYwIw)$JkRi-RL`o#;A-%9OB{xBkIz<{Vb=USz$30O&Ww#1G^{3qJ@oGOYleE{( zbM#e%t+get@mC%F`Esz26_!YrGt4zUKai#;FMRi|Gd8uv52yIYPxbb*Kbe6Q6^uy*6x1vN$G*KQK8}0J}YOAJ&eov$i8Kt=6 z*s%n9<-yd4&7T7jKN!_Cy?p%;+u!{$eYFZr?v&WEJ8kO&XXv-&><2AHja_bP1(g_C1F`m4MSX zS~hn9d6iVmFB{z;6D=TeG%Oc%Bbgk7pczXF}7dwSmv#;<`un1&9(4FCf*Rbgv47Y<7s zH!BE-zl%F?g8&2)mGF1Bw044cQ&~am99+d{PP%$&s2ps>X!QBiz-sO?5PJv3Ku?HH zpt`Pgpp&(b4UL32s;Iv(K)?m!ZAs@P<17hPfC`=4P>8mhmhcsq&F7^rDd z$+&q!sCYSeIl%04{tmv}G~%dKqMkOk!rHR({~!VU5~H#A_I4NMJLpzD>ol+F&Y}+ zI@LeCVZ;0p@gZ;r!1PUfy!P0Fi$%^xv-V(gp6LaB4%m z+~UfVTe2Om7F<{|nCkT=@%+|C9t+{x7=!tsH+%24<D}ldA*;ot9yLq}; z0yf~_Vrd8Aba%D;>%t$9g{3r=#AvuV!2cf6bhh-i1r`8~b2>k1~V-aR4|i|Cl#G;I9<` zRKhZz5KC`2PhB@RXEB;TOi}$=`LD}rfEU_WdRxj`dP4xBU~WEPuz)ZZzb+S-Fc-Hl z5119qEe!sT`EE82wgLZlv;X)UmFVA^QgrYF_7C`L=x;~Vfq4A=>+he=4u5$d71dw9 zBy4H@w+LRAz7U(g_ylPEeaYJ1($x+E1f72v=|9IE{u^Vk5#$o&wE{FK#3#th&dX=b z%PwfeC&vrK){+^5X@@{fW&3XZ3+HcAkn|X`Hv_HNcr~| z5S@Ww&-t%t{}1f~$o_x%`iIs0f4Kz})&FktKf?Ea;rd^={znM>k0$@Gb^R|~|04wc zN0a~8y8d5-3-#aUMTjd?-k!pYu6n8~KFAxX~ z@6R6$sGx`l7)0_`QjRw34z1T_W@v?K+!XgIm@Oh0ijx(sIDCp!QD0JlZ z5ri1oZviGk|Nq55c^@igl)2RKa2Rb-#2@A+i`PGf;s~Ex6V|7N*0+b#X|w8C0Cr(L zf5ju{<0Daofh3!I1yeHVlrmOa+n|S+%C2q3o`Pg$&`oSI%-A=Foe-j!n#0cYksmF= z;_rW)2k;escZ{*D23<6Bmft{fP?84WV*vSK77f-A%<)l>Dra1XV&3-l_P#n<>v1XM zcR6rzc0TeIe*KFhw@wa!FtB*{5MJukootsX3ONcp1^cs>GBZe-xs`2XN_ARSb$XN} z24|j^y^2YhE_Wn)`^?|p*4Eb1%8JJK=V-pHAlaA)+1uZu?{TDCxWl*8d&?fv#~*U6`*%1Vfasp%>Pu(>gIlyJ&+g=068a*ZK=UQ)xM zhn^m7ZLK=w!(xpp10H59v=r?HhiYm{3WH9KuGutiwstM-1mUSgULT-e1}eP^UO|w$ za?SWJUjfnI!?Yr<-Dh8dNJvSs0(;heiH>(U+0;AWtb&u?RXOk!RLSAX<>x>GSn^fX zMy!n_rvmC^l)BPO@38A4?1mW?Lks)t)*ek+v$C8rgX(91qB7#lkRhMZ%0QK zC!!eGH!G2oyJr?`3}AFbJZyO>QGbxDwBmMOUte+1amTI%FCU*6Rf5%q(eqK3cA~bU zQ4YORLCyp(d#%HgH%Bhou4jiP9WIKRs;a7*ni@R=0|WP@J+E6ql``@qGPM`N7aLe8 zpz)64ZcL=GyZhrVw|QEC;ryRJe_o?SY*^OusMw%G!8TBEMrVTpfn0oTt#I~No6qsG zH2BH#Z;_CY%1=JsyKMRCIpnI|zU65$ zV0+7y@Op1v3pqPG2&`)H2VXvR3Q^E=I2@91$nVUO2YGAj?Z+r=*D+H8FLAp^Mc+KYM5QJO9dpvO(4FS>>TF;<(*6-FF7f)SjdZ#q9WU?_ z6BQ-XV8|4b)54$TeZitVQa@W}Sr#ml}Mb{3+<_#w}d z)Od8Zk!DqZWI@%Sk7=7qHgw-x7(f)Nqob1^A0I!kv0)*ct^D;WMx{}i8!-|^5n&(_ zLLjSqLa7 zDNDq?eyVy02aDF%)=D$$fkSJ!ort0Bt~d+0Y;im8g2Lj@x8o8$Yg=3;o8}E~Mjv}_ zpBf%I-oFUn6ja|5RL7O$+VJcMY%swEtgG^%vv>-yuG)hZwh^5U6At{;p}+K1Q&V$u zbK@^ehPjIl)kL9Yp_Zj2BC-(sN;C@Bk{K^CLAx+88S=r^Yd#qH#hf0PP#J{88QQ;*0shbznoGA|utetH8qu6J4EA6S0Q+u_0PgFdHVr7voh7>f zJz9D*Jw1KjU9hMiKmRKPcuZ2ewiKITnh=lZ=O8#QY^KT|8??6C<#!TrQ1kZ5m7YMq zj%(x4(z%YBiuKYeZx}zPznRT+{xZpuh)Zp{%(qM;Uo~dy>_%6RETu>yR9qa02wdng zIPg;J$3IJ0!3^gXf1;VWWDyXwt~sB!IG?szZyI9bz*x3}PF7mVmsVvG zhDS>L^drA@88T76kB&xhn0E5=@$%v)4q7dmaJjo})1NO-O(Ql9gsfn?)N%&w{1u^7kO+ty5E_D|a+_}J-_Yq!U9iRbg@rInRnO1#uVV~f0DlTvVkB@r2YJgM3@+@ATM9$*8Awoh8w>FVj67t_Jfo|ZFCF@@r-rwK% z8YFik;bHw8G=VxTomJ zHyiFv12)3q;^Gu^Ow2E1B@!hW5JN(EDb{l<1A1b-v;urAOv%-d>s7zQObzi{^4yVG zGj=V5+5npEJ3Jx=jt}tioH1XuYipMR@@fEuCJb$tPEJnNl$Ms-)8T%#;U<=wzx<7n zi^viC^)G^ae-tnaOnFXr3*L4kAt7-!MtdL8Z$UBYm{XOu2c+g2z(S^56q^_g1u0Tv z%O>|O1_lO3qtRYulxi|5FzfB+WALos*yP04faa}vKXSf0OEh=3w-;>5*(#M$ zz!ch(MFP2RP-&r<`Aaq4P~b2q&YzmDhz|KSr6A0ww_{5qkDqrh|M2YCO~l8){>)V6 zVC!v~T31V=r^g4N{B{aReYo+euSNV^9qsLz^1s`j$5>{G<{=cAafe${3`eZRN;10y z0v=f`=)E^#?oP&7pY3nZ=>D}c3O-jd4ofN$k+a*r$*6I536=5;280gnI~`1n8^T-o z5cFcr|D4@ll;Yyr1#VNYy-3}6j+^k(An%%cIgpwwf$9k`91_5AoQUz%E44RmxP|z{#l;_g7P^f^NtY%; z3|Xk7^fF8}V6CuX4}SgX*~EH2#p)$ThQF%UW3u8vM7NiP11ai8XcEfJ_>hNQU#~;q zu2&Pk7YfKs>w?0lko|vM3V_AP`}=6IBDV#77kO$KcvVeo>*M8^`PfD>d`vY6S-)2O zzJ2iKFT{{5pPbm+vlqli9fWSW^HZdb#8@&xgz^S|gGtRS8eYJ7AV*A`=Z4wY}qG#BrW8i+8;*pt81eMtL!oI~Y*Ky-x9R zCS@S%y90YM;>Nqv;pPLTS|Aj3<;;?;`~yKsbJw}Oy9_d#POHGiK-Ef30ZU!+!^!-9 z$!#_G{ClWT@}}mjvb&D5;qRiRP57Ajk)z5cwvk3Q6+ShdatEV#g5m+fh2LW`zV7S{ z4-fBbY;0UyTzCuTtNsL1CY&ay8UkxQTh`{OX3Q8QIHMr`JN;hbrXTB-3jSaMR;(3b zalb(a5;UqRn7A5Zm{aCpB&|2wq{_fUmMlM>oRad%?_zKAPtwk#LN)~5md#tuCB%Au zH|n)ogMJ9QKJL*FyPR3S3;sl|DoT`;Obu2w0gW_!t4-4^I$xRal7w6?G+7U66bX7L z>CFm;IZw)P%}w)k}pWg;PAB{g9Jv+L&Jxl5lrlKGNrAk!+V&~`=gPcm+4~zXk z;@#CK7QH>RD+#%ZXgF*t%d7sxq5e7dxOl z=guE3jEszwxO=+peLe(IEp`|_$cH_8r{F^b1X{ZGyb+1@luU)Z)+$^LoQP0Hjh2X& zYk&kbJec?*^fdMPCiU6(Y-@0`EY02tXQ{Kww}RlDVofF%^Vj`EtoVgKkn*DAks|vW z->(jS`uU_@pQvzl9mkZ=4-}UonB>CVZlR$P0gspSv@w?UAt50@ftp9JC*4U|^6u`= zGV@X>{?IAFaR*Ug0$@`q1<4uAZL9(`13Qz2Ms) zxtv5X=_iMWJS^-qq-&l80%&)~J=bfGsp5Bg=0dN>?oit!Sx-g7aG>GmWc^y0f|whk zphVmjEz}nRBJeeb!k?}mpQG)HAL-RUd6Ll5mbZJXn-P*&gBx_hYqk#0`YleYLhi2u z%mVi-{k%=bF)%SnR3$kQW5viEmv_alJD$mq;a#ie!p%?ZK=3JBY%o<)eK7WLgJxrr zjCP}_*7;Q^rUD!9&r6${a76CfHs@rJHqUPtW(O@yc0X%Z?*4=g?<=l1Zu_Q?N+CAA zzFzX)#wtVxP0`%Egf78qi1MMIQgn53@ix45ENDRxWst*aOWkV2)oO#msto6)lIZVS z(O0*1yQkYFWc^LnjNqF!?454(wxP(iH8po(vLhBNa9*0On(V>hq1(H>V7)TFZ#B zjY#`DqKa-#%+7vopg@e&;==*zSs=me3Huz(c-;nz3keF^zub9r)jZn(-B1SXq>D&g zHKjhjp5AvZ7`NxVdcG9R z>^hFRhd#P2e+=1xqr92E9Vn++8z7-;6-u$*0*=!!eZ0D~Ne4a1=I7_H#g%K`YmY(Y zTg)=3kbm{wclF+9TY&wi#2YzX0Q^%L1 znAbtB%e!_zS!#8UOkUN&|vYffL=&r4;E8`6-$EE%L5@NGf6~5L|JLYX?=h%#y{s;!%~$dHZ99P zvNrg5o5q$g#WWoL^w|u@Kc@(11XA4^klJ6xZ@1U2-?VEty}>tOfa6F9aiRMXauX$C zAXVZwvq5>)fU-KFmAl3erYTm2T-4uvUhI11TumvXb_(psbt01_yYW!i8@~N`61%-2 zCD?nXC%EQsos&is1EZ&BN6rNBSxpZdst^Vm+3Kt);xwTpi-zXr>*w(r!CR@_W+y-O z&;~?VArc?+{7;+FH@nsmo~A=#1shH;U!R1bMfZgs8iNZ^?_Zb;`Hdr-GYB+?X65I7s%ue|Yt)(R^N_SN|5OAmqL(u|B@PY_9VaZN=oSt7 zlE}lj#SuTeKdE|~x=jVQStwW9z$+!+&^FA6pxUNp& z$;HKRNhsDaRDl?Wj!6fUC5KyaLG`+U6aqsW!_rXm~O=rHodw>^g z9{}}2GuybQVgki*>j$igyleZLZ~C8p_phz3F@6=!Vb^NpHbIQ^aCvhW$Q-OETVH|H zd`$gr%eKE$fimQx@4LYIgO3#UT<|BSqQq^2O#+h*4#}7##HFyvIjN&LzeqThFdiTi z4~cHFcA*|F4TmoTqyn_-;o#sx4?H^x>RQu)V|r!^{if;ml|Yqg z-ksk8dj*&&yBoe8z`1xq9Pkh=uTi{Du$8)9IilEKH{Dx8H-UDCGMH$kZEgz&gqz)% z?K-ICiBE|7c_oHFIOP?l*voM?eRt>JvN!CaNMTgziZrj)BWdA9e4S&b_igOh0b54l zRV$pOhh9m#vuB-QqN5{&NO~WBaE7+j)g3lnehc!idGRdw$azC@%{Q7xte7?-TR36E z{~gslzAUa`40CkAN|S&f3Jy0OzEfCa!?&x{fdmg5U=?p+v#vv6qRQcA3#yYT`~U^! z<$`tUYLnagr{~PwfKsExb~0I(vgIRrfzB6?VzJQhsxR{0mscVSO+A!7h5X^#-=q!D z5zDLcID_?qgRNs569TZt*Ls55ByKh$*Wb;#S3CZ?PoqO=JL>JY2xXuE=FTy#iyEXr z3`xQ;R+Hy9y@f@@ANMuh11063erwK`<8G04wHAmW0sFS8&RFZvU;mI9V-X z_n#QFzy#aeH_mU1T-R>C|L7r`S&{}L0Soe(VEo5#LlAe2_-FZlQ>bo|fZ45MVc4I)OEvpXJ1 zYYqpF8-YxCVE^X9&R~Bu;}woXd$AVD#u_(h1y=jut?6w#1U#1|qC$)=uhy)2skb;T zV1g;TA=vO^|82>Ws*1`;&#dm+;0s>?^mE2H7tf$UnKw7^Y=^xv)1jEtj;xPsT_?qZ zbM?m9m>T_??i=RMmqUtgc?5k9`1U$eCMUUkbAUivAgiah*ZFBG+6X zV_^~YHj6*_PYJM*!)`2YSkDj-l-0n-ecH479~X7;D}50voCRmt+g3bB<^zgz7fK;u zqNIbeS{8Jufwm;j5MjOTBpCVQ^9>CR-~ZHJ0Rqkl6|Q$ zcT@)l2bz@VpSL|Cw+;MYzFhWuLiMAtb+obyTz1Edb7n81IfFO7fVzu;fg;KA!(q(p zy@R8uGA6|;Z6cCSaoe0F(#9%0;uoZF_Rh{A5YU9B&HP?g-&&~)8L}{8Wh=j{t>7!D znk^1ns8{}z$BhF61BFFYO)syGr}M|q7}veM<4zN5ao~hF@^)SF zdCu&@Wf>LZe^~Da=H`z_I_W~gz_@&qwYC20?&K!))8)0M4T9LJDKh*++#sHy?*skA z(Qa>)1Mm!}Vb0mop_`SBw|CC2N`JS7yi23O;Z=ZZx2ko%@`ox4WRS!2(_>F^a8mbTUicd}QWJG-a%hZ~;4IPqf^&NNZ${?Bj=Gde_S4^vkYTkM$nE+<{2#1ZRFUrHl=CK@g}$mt_3mj>)Ki#N#|U2<=5(<@W30_vxBL z*g6~pCT=t|8+)>`en?Bf#@OBhADFX~_^k5*`);!$im}xDeaZSGT=4Ml(C_8>=luH> zRoMoOf&!AWQY>+!&if1kgxXqIkf^JGNrUuIkt}z-HRo$-H$TR!qeTQzoNQS;*c+v= zQ)F^w#vpJk{;Sf%eDAHXsQV3O_etr!6mowP9w&8f?%7RjD4hCRJPUU=e9>Fa$p^J{%=&&NS~`^OP$jR536@PtSIJ-u)tZ|1w}ER#4OvX zWl5wx`Y8ovq!po((6*Txxf?llBV5KkVmC@|98H8wk3+DHq8kAT>nN6u6*#A9>Jk(R z_{e0?&CDagfZq4s@(UJ2?bHs+OGm(|Nmy((L&%C@Zt82~$QC7sT$-iLS~6Z2W68!s zm5rZVM*#ZS;VgPkBt^D%L1#vCPhIv6+lJOq*;d1LeCw)VXv1U1^z!gj6ife1)K+AP zxOG?=sxNn;%s9#F<703eY-Xy6^Q%a%K5j_+bMwLr>ktnWvz3m0>%G&X*O&gP#Qo>A z>k8V%hF3y#PKK&<>rjI&SX)o(omOV7s;ewist>x2gaHiqEPK6J!$K|Mg9R5 z`9Rl1+qHp0h)eAQ1Cp{~l|yZ318w2=h}{6>2u%;18Xvgtzd4*@`{LUxw?o{2QxqjW zceaR_aOnsNUx}?OJqZfKErURlNAU8QcGzR4k}p$7?}ItkQeSG6^0xI)W47(VQNugX zrx{=+tb0C3yMs${fEfXHra+rd=}Z8tUKqoA3!?=7m{ov+Aj0T z_;Ns35jmnSh5y{F7IEloVcJ)KECR_*J~eDgS}wtrS&-{iW5F#LyO8v%kJ%slt9cPU zg(%Ku?$YGua`;O(PS|5x_27ylDE^%){A-H0`#QyLBl{j@3U5zZfFW&z8vh?dT zO6rce_v&_sLlR+$mmO5h{@U%+mY?cKpDITb9^P}3-}X3_TZMb0Qy4jsyk2A7`{vp|3E*j3yN&D@CzE2`)!Wm74enSyLHtCTe^mm#&ie?V}xW)zL)-pS^wYGxO2% z(mAC+c%Hu_jh(zOw*T#2x;P)*#UFwn|Z3m$@>;lQoaY(9fxVMuTgCo>%1<8Y}f{^^!D*kUDbBSKEY2?70;z73OH@ zW*Ae#MnJJ1HffUYg&A|$m2_CMk;E@QmkiM86{$|sTj z(1u2HVla0o$Gx35+JgaFSaSzd>(#&hy~aUx7ZC=e*6_HmXnZi6$x! z3WaiFOE>>f%2zXk9EXCXV8oH;cT=%BbSM#2Y(XEW&&6vQIa)t`%rY8wbdde9jSNA= z(TaIfkU#R&@JQU>Ps?969Rz38Q>b;~5G~_QT~7zjr;ugxg7JXhBkE0VEv3k;_M+tO z8GeRxo%!zEZlU26CH92Hj~dQo`)v5cn_+*ZPA~bqxPX@S9lyY2+1+bdhH2fuI-i9m zpKIU;*fS8dfIc!za?8XWXw_Fz9TX*>ijY#HVERsR|Ljpmp&of1B)-0Gr}0|Y2ZsRD zTyF+$(kEn6z>Wy<==DJaRaR6~wB4V^`LrgEGL|LXEk6*A(1mwf%EE>_CN@^0eBC6B zg2k%6X3VvWSlwa2Oxpp;EQg{nXM8(4{W)5si!yc|$KX^70o zwrPd8@}*g^c{MWSB$?zJjAAsI6S<2p$Qu zvy%G#Tds^i(yzntOl&QkeikZ^YW8P7k+id`ebo*mObD_{@Iz&=q@V8%TrRVL#;CXO zYgmhycaM6ilK663Ds9e*MD)|VmWI(!(jW7H7@D$e;GY=4nFfy(7$Gvbe-i2VP4j}x z(+F3H9bo*>7{$g|oCDLM3jA$4vdP*wvD6c0zB6L@D@@8gkxChy=H0tm#*tt7wfu zxbvOW(12Tl-&U}?^U|9LW_i`HrTaWgloXHNM-ygfb;0VyZ_6Nu_a$Qc<51LKVibSW z6HAqG-%L5i+PRk_M1n7tFyyGq@pW4KrnCgb${|)$c8^= z>5N=A|E12(1yNBj`9li7U;rl*lMQWh5k;iqkByCP`^$^ckzTm(YYlRwYVzeg{y$~~ zED8vHPga_o&w#c8@GQN54+U^HRy$w362G7-92+xZAOWe?!=?V?9V!U81yGkY#in_y zRX~837A$W5Thcc9*<_O<>L?2}(fc>0*CBJ7Lm&{vMYB zSgLPR^@tdq-YiDpU97%y*!UzUl_*T%H4~le6spb2FV|GaFF%d7Nisj-<(mg_jc{Ce@z)RPF!^T`03)CLtYg^@wWSY zDcp$Jhzf1_jobQN&?#AL>MMItEG7l05`X;R_q_kv0JCC79ME*{d%Rxz&Jl%bE>c$y zw3b-?fCq6ht52U&9sQ}$T+_`{;zk*n&e@Mw)^yL~(aufyf68gsTMu}N`nIjcn_l=5 z<-n}!rcY1(@!1x5+*{;`W7{OUF-g8@Dylfv+|$vC_0OEGeXO%k##ty}nY6c?*d`mu zSgX2VvQW}p-0|=*=yA+->DX+T0e{lhG9ohP5OnrWYH63MT&Wqd@`=<%Ay|g&sF9Aq zBG|r0e8F2`=Z1AS5K(-I)LL95Evzr^s`!bzU&{8T7b5VU{JES&D-)Vb3?X`9t8N*( zE2IDLN;JK1HG&aF+nVA%x&A z!8N$MyIXK4xCM822<{G9G=wbf8r&W3ykFI=njie3U~1-^(@&r7o?n`_*aV+Au09K8 zPsbSNLT;E?L!Gd^k*V2$%9{y|(-vO;U5}ab>Oba#?=2WxohG6oXGA9)-Egg&5KDtr zDMpDAnN3oe3L`SRaXcIs&OdXy4htJR`-e!2y&oH9a*ef(mTe{JE?PO;JYz<_`QC>J zXoz~jn2NLLlgiGluZ1s%7hmp)?u+T}i+#Lk0#wFUn)V8ZcCCL5+dRf~ym~`7uB+;b z5^CX3yG}M59goE}*{8DEQW)2rt%RT5(>uu>R~w0RTkUGcT^Y+tuw~H)-#^6gQp3Uq z?n^{=!5K&yt+AW4G%WpN0!h=nlVT{5QKNcOv4)wAc68AX&PUzV1H>A}TP`o5BVKX6 zcE_`PPt+~)glQ;}>50%eb`~<~{Xi&osNCh0tdV0)FZSF6Rq;=mE}mPsW2-hCmY&?g z{eejUo@J9L&c;$&_`<%A`UIdGCyBnGzwv>=_(SsKqso`KZl91sY_NC<^u$2!syHT> z^j04q*0+v2wyw-Mw7a~XQ-Axso>9EO+t*B5IoL>iV~;dq59G_kbaxk$PU5t^+#lC8 zUlRtAE&YNkeIP z8rqHTs&^Gq7QI#2m<|tUVim^UOV@@;67xg>>+1Lu zwwoJ(1*tB`dAtZD6odO>HlhN3Jo#6W2!P{_*fS3(e|SD#0i7H7EDPe8#ysXzi$y#) zH&%&^<&@yX=E1oJ6Q^fAW*BhAVs_>3>jXON#&2(UU*OZYnWvRxp#Wl zUf4IM_%xSaBhBb$j*qGrUGEqx>!wJB{ks^Sgc(^W!;J}3R85PB$d}ug(_Ax{*mt*7 zPgmKU+l7YB*HB|{X319KPB%ObO2fO-M8C+1%r+@25M?Gx{Tl15S0hZrfX$!%%5Fls zIeWYmTum;jMl>?Kz<+>oo$fJ9FvU$yE=48~$HzH^JUkh}4DotBKn95@X(HX8th!1z z&53-jYYfBZ@LcsTcN6^c@b7#? z*D}AHkw?sFdb2aF3(;IVd~j2%FP zcSc#6#$^tGvfFmoJpWc%j(+=FRAe1iRrJV~sImcze30_zPQ8X))XY*qMR*ALywu#Y zZ(6(0;kom)QV;c`Y6z1}%xKdy+@ijG_gouJE07M+EeBJzl^hwn6}K3(`xDnGy%0J| zN^rKfP#@TZNTKxg^HW_aN_XMFehA!#cM1&|;@^LfckFdVj8Y>8IjwK<@13OR|9H>V zznOq_{xrKd8>hz_k@t4_AZF#@is{pVTJTW;>U^zbj4$VF`>DmgI~(r8NATdE)u1nd z6hQJc9Nai$(#7?7!S>$Iqn2NJpAT(QjO?u`l-N#jDrlty2L|r*@*rSlcCR)Knf5eS zd$yV|`XXD?Vn|Mh3@Zcb5|WYSsZF0TEs!3|#F{Fs*kl;0KKhXP;jb`Ua{eK#kZu<*`1x~ z-gf#t<$N03L-FkMTzA%G82u>Vhn>7B_HeoCNghle-SoGn*AaEClP9ECIH z81wyjV&3);Q(ZxWP~->UR~0u;PviS7T7U}g{P6?)K0`5`i_BNh;r_+l%GO@gR~J4f z=fuj+>c@Qf=bE99IYeP!&qa1fBX{XGasBF<;k;SkR+*2vC@F!#A$Y_8S5H90#MDf? zXKT+rgZp|voW{}ZY+h9_kKNp*Y zSlK&B1g!r}vUEBg8W(H(b<|&*!(Vs5tRNVMp4r~@U5znzWMpwolOtn5`0XrU_~DM# z#PUr;;5HGHnh?A(u;F|E*YgzybRKjk99W~vHF(6}My9NW08m+*71r5a54c}G(9O=x z2l<}$!11@-y|1FfhD5-~ii$SWTzmnW8?yi~*oL}jh&@dpqGvA)s!p1Q)1za5qt1~b zkT$))9g5YInO9`;yXvR|L8R9JecT0o#DsiFmT^Rj7ofaY;o&La1z-Z1l6R9fe$4-9 zsAzyu@;@GwE}2{CehN45o!amf{}GKFx__S2ni^{9!V%g;5Do&hQgk2~oTb{EFX`w~ zM#H+T_PNn;$cfN>5Whbaeg@5Ik>0I%gE58Ogh?@wfTi5)Z>D-?)F+R#q0P?IHWRXC z9o>fRUQEw*Z~iZ%BNv|QPg2kEXRq&tu7e_+M^BJ0rmj)jO0E*UNxr@lqr`#{^+W|Q zuS8R_)uqRuod?siQ$zE6SqdT|UW3@vPW3AhPK8elCI7y3jM)>YsLyME(Z-dGENnYq zueRB7{xxh~OWzQiBCn?*=j%(dw5<6TV}w(IR8Rx#`_M&xyym_L;c>pir7ywqB7bu1 za9-=Z^Ab2XIUU+K2M>ImYct-*P(}f?h%j&GArxYB?tafj6hlET+^J&9b930)f^X!Y zzOy@HJ3CVMS3a*5axknglNzv{=Hp-5bm2>!+)bR`?RSOkfa?U_VNp$|*Kh0|mtDil zAx*P5<({q8a$sBD&Dr_zIye2^>lnl5ExYDHO}rZsKqU-wK+>;VQ5hW-gr5$~Qb`{FMDVe^{!IY<8uY+!gf zkp@AJSi*9rvYG7YR|2*jI642Y-Sa-S+7AP_NGJXk;GO3I<`C2W-t@kU+;8uzlF`-P zns&g|W0vC}yTbjE-r-0OGa`zEiF z!c(dBP2CxDh*JSIPy<3xX09FirHGJ%0#I%v0o*-)&axsyn7MYzU&hMHG&+_vOm_yg zIvz@ycV4+{QF5Qr#!SxKE9!rI+i%foCWLgdpCN#}a)Dpw=i8I;`uET8{t?=P#%oC5 zsek-(eT~c5!WtX5O)&k6GX44}X?J)sf)gJAe{<9HGGH>!~b95@TqlFImzF_0eD=Pfkt-D5j^| z6J0f)Uzk7j-2sl56k`+*arss&aNs+F!kiJ|NcDNTVB+j4k3e35fn6-V+(I1)3}8=h)sZchAXGi1h_3-KFh(OL`hW@YAV!D21Lxm)-3`g_H8 zE%e_byWAHJF%*1b`UpcGI%p%s=j- zhK^t7^HG52Dx(=}sLmN0wxzXf<4vKNYzyoRDMRzSyT1*eNvY$?lO$V}l4E^^C1s6F zf^Up0VB`L|dvit}Uxtg{WLW@gNAy^cWEp^03w?z#@4aE}3|qkDC8mPjG(Va%^|VAJKpL$+wLU*1^*$Xpa?Lo8ThZ(mB&J?s*oF)JvH}iy5l9Ng8)&h zdX%=C4T|FyyvL|_*Yn-18`7<*!l?@H!MJPdaP+i$JHavVLihW(p zzl(qH3494^3+cx!nt*+1N_>ML-ttp}xaoXX8v#Gvtx)=|U8&xb0RbI5iMU>+^LH>6 z7!ek@7Fs=(804!f!;&=gp#>y-Xsdw^gjV*}+E<_3GP4$KGz>FJc`qhDO?P!`Y*t14 zQl^aFAmBOblaX0D+KbxSG6B#MH9}nH_Nh6nV8xc<4jyfgepjDUA*7JLWXRvU z`3H?mNf$)SxWR@zW|-^i6nZR+2Fr**`Vl|#7cfKW{B-NOnV_)m=c(Z;WJ7?BNq-k5 zk%HA|@pQp>7&MV3VW@Ng3bf;j5us#1YS`SA1IlgD4p^erEVS5P6(Z_?b;EKbGl(Ca zJ-nsF0v8Gr4wX*o_FV~}&4p@I&+rM~lPmVV0&MW6hp&+iZtJQ~KJ^DX@2TMv4?}E= z#%_FIok2VPpWtRPsmvr|{ud+>y4^P68PUAJ`qKVpI2QOZsNH|Sq?tM;wd=6a5l!== zRf8VaCl@P86z>bPRt6lSTFLqu^;->~{6I%<-X0cp(1MG&d$t4K87Q5a($*E1XE%G>r|KgiUtBeaEp^X2RwOOm*C|QcZX&z zz}-__+*4Tzw6O}c%0ES8JtEnP`yJ7c`QzV~GT-*P|1=UbuCRAAL#`ZX48r$0UY@U} zd&3xGYxQw3;ce@$oJ$ruCm_}i4)7&`5OsP?J+~kUzB;yd^pSy1vHu@`UxE7-*g*tgWrHhQ; z%pzh4D70N8jZWyU%@9I+Vl3G+}_1QHzo>KN$#%SBZpU*bKV@#{@K!!Us7U?46`XWqKYLU@F@o* zWpP&hnPubmPuRKQ1PR#Ht$dO&vV$;{3n*rbbV_TWGha@VzeB_@u4It8wlZ$X&$|+V zXY;e)t>UJT&U+?XN@knX?3{lU#9!79hla?Z?tn6dB$A$oU64EiC2mX(O8CbJZr(zux;|l@IvN@QtITiU(ww0W#ON7b( zO*h<;sHuzYr#ZpY?3XmtN?v9qv|!zJmuI< zs?>7D8eKSXX^_?=*Q+N6E-2rT(jE6tPYoUZ(Pk&`KgC>c;nzVIz)&`=BK!3SyQlJJ z;D1h*&;-U}-nyy!NlEq3L)$Wd$7ArsV>_IrMLcOpQe2CaDuD(GJVts!??p*K=ki0Q z;=J7p%OJSYrs*`BD3#Yk^ByS_7I%Y(JjsnWKy?jv#6bs8{Hm!-3gxloA~7;Uf|pNn zo8{hQof#s>bk>fUp{~ZeVqMFdKJk5%eDg7uO;NH|bNUmh+&sgiYP}oj5k$0UtZRHtI*~3B|ey z3LI8t$c_u7FNvzFn>8(}*8z>%vHNz(HraOZsj`wBuyD!frj@{zSMVmfVk#FbMTF2q zm2{)T5K+c4Np#ajz=ckjHi7F~p)qlE+|)97Bj3^Vp_Rl-+Ijr1^HHh zwqyIQR@HS~>y5nbMn=xPXH5{x)R#S>N+y@LkNX0cB`0=*Q6wFCzox2;ht=@?3S-%vAkXy&EFM zAW6@OKFAKt*T<*U!rH0U`ov8yEEBz2;>_fAs?ZQ|#zqh)Z(Lm{wjk{`j;G)F%K-sjWPNTDsG2-lgw)v9`2!|LB|WOzs~t-yI#m zD5~W;Q}N4PsjBPoAr*1x9?(q1$8z=Z;wi2Cr(HI;*p(foSA}YQ8noq2uG@MWyxpeV zG)aIFbRHO87?_X*!_ZsK8gACbn=Qs#S5!2sz7%V}K5j5gfHr-FMT=x|A#wO|j#HEc zHJCEL%o3;NYyn0E3qV`t=2ZAGo2hekqAIv%9M-_TA@0@#7_9|G-DEd6=vG#CfzYF{ z4OHBR|5HG)1hFDkKKHxa0J*o%2QPpk~7^Y}d0`26>9u1u;yab8m$*%&!EAu~7k)w6d!fE!S406;%A|Ra34fqc))j&h_~Q0=BHS=H!vK2rCJJZ5+L!(2YyucRgps zU~}#Kv@k20;7?~=u}0#8utAi7tbrMnn88E+$+rkLka#&#kxDt zs%&NV@od-UPVYE2xUv$T38C(_X>|L7090*zUkT{l>@1U>X5;;@pP@as&3Evk2UV$X zR@0Ph!ugv{gc;Srk49Lrv2t!ZyWSw&LK>LR!2K|$)d1LQPTpBUH%b=QdJ#EO9u~;Z z4e-n$tRcIAXMpD%Hhw(H`Fniq)Dq9wg#e98Xk9JF4SMYP)62Qfw}oy?OyFj5CHptd zB_}2(jC^cR+VwDEW6=-n&O~f=nTSb@%WO<#@Vu>{|G^jv3Cnx;YhwXG*XqviV|X8$QZM3<4zH zu;ATV%-$XyunW$cjsW%ww)pSJYLE0)Q z$O?0SbU3ZqX&%jbQWJqTnwpsSpD4q|#R0ut{vFF!5O}yZIp3Q2-8g(7uO*RR(6$JJ zD09vGl4z#{Qh5lhRN7e(Fu%vg*@5RMK+c`5IErVS5bGn=vJz~;KW;@BMnrqde1FNW z&)>@~mk*Y;m1Iar-wk$V5i;WT+~L8tgrqY1>SBAI1uA5Rc^U?p~t0;{xaTa9uOyZRbnm>KlUq8>C(E5g0sI`gU*@6mXg! zHO+k4n>X4g0&4BP>p!;GGhoUsZK?QAX=F-JJF7u&c6=i0fNj7qds;4Fo%Z+~O(XLe zx*xU8^YiCV5p`7Wm`lY*)G#AErOosm`8*l%X0J9uSmq`tRcx`e z&uWZ0QyU8n$v-kP8FI26T5*78&BVvI#MOe-7>t!>On6`R_8>@uGwz)Qne=2;(OHn^ zStt4u{kOYIO;=r=Cx_MUXgzwfK#nq$GDEgsR*RAprkVN2@JO6PdR0QPrkaGsmSl)= zzk1iUCodV67mPt&nOd|!D>}r*Ev#DA51)k4!k4v0r3qc1?kk}bC0J~HW^wnpMS5`^ z+R;{R_I}p}&FA5>!Ry*DDe2|6rFhM+L-Zw=z*vc&7rU<{28w_XaNZ^_x7dF|AKW-m z9nnFn0t7p>!*KOa#(1Yrv=Od>OegshCzfe#^Q&rJt@l~BjJqE}+;;5&i$y$di@2NzZ6O)QPi{4r;mIZsp6V`y ziTP`Ss_?dn56p7AdTF1yhi>&CQn)Dr!gqq|%W!}_{e00fkBlz#kHmVv4LA}wC6@wf zgs-ySfa47CfJoy^INa^Kv7bZ?(M`0$G5cUn^`H$G1MF_s&Xo;s3{uTD-%s*zg_M2l z6L>`DF30>?Hnoc@(Aw)G=TJSBf1Dq=!oPknWOb*y@#?m+vXU_Uic^?)h`0Xo3c-9u z?&;w3JC!pG7uQ)shuDd-Z&r|qo|R%9r%a6cO78EkZbn9T}JA_*VM#)8S*kH z_d4_G(88jJoJZ;~(GLvriQ%Z{K$p zggd`H3UG08CCbub$1^FX5Wb7LhdW`En*5jl`Vf9&zU+Y&!w~slOUqDqStZf6bu!TS zN1M+s$L~Y5lr~tIl)lGHh%~I|hTL{AXyHT^XG>6z;NYjOlc+K|jNKWpKf2hHupBTs@5k%x@13t8Wo7Px=u6+kXk9Sr{TX z8GVTmc7wgZIm}5n^nY;lzw->Z%WGivHFGMPx{<^3&J8GjNbL5wy@So&Pf#;4BErDI zNpADFsZ6(Ow&#gMmq~jPL`hKwv6d^5q78a|JvqJoQXii#;_*aj*x`n5YnufZv(Mdg zL7Oe${oL=6fSvZ(?*KG*>7-CMx|kpDBFu>wv_Bas1+nOXOaEozFOZ(3f&JQcag6cG9 z2|g6%VM#}|R?M&nL(n#C%V$FCV|;h`;&(gk;Z=Ylj>~Rzx@uIINX`qZWaw^KpahiB z13{Dtn+n=oS&~)r1DBT^(ZgE>F<;12)jlT)%DbN4Kn;7{5_YPjh=M?Y71m3ad2bJS zZxsKT-(|7wwOtU0L^T^Z&0JK5nvVUq5c)KqmR0i?7|%4jj+{;@`bfd)O+LOs^o zc&PKrYxsk+dR=Vv!rmUf^N#dO5Iz-@sB0ul47clCFSo>IaXY@pM`c#c zW~*kj5k6D@&E^RB0>225uWM?*%t_PKXdIPw8#pFonUEE`dYi#-?Th_+czCc4xU~$p z6@K18623Q_JG}OkKA0jjz>TOO4SqL}kIO?(fmWE@_t&Iuws^4A1G5nesV+HkG%-_X zK0pZ4Sa3+}BZ#-^KoD+BSvw@cAjy$&{06-J%D#-uRk8dbl6rl@j{S8S*b>;V(?Q$b z>k&sW$@RgeXKo#s=f#AJJ0g+XvQJqQ;?Tt63)4?ggS9a^J5C2l3oLOivfh z9m1TOwc0}WW>0Ptq=!`M;-6d&`=h`7KIGKU)KsCzErfppBY64yzp{u)KT(cr#`D1< z7gwJ?KR@pRSvJBCXa92_8>%y=zD2A4I+5}qu2rG%KqPCiC8WcZWx$p6E`O{vUu^Sx zK#8Lej&5#7{~nv#(B2-U#T;%zg$bRE?RpS&q{R<6zP5yc-?zEnH~N9-rayRl+Y(Tl zTRh|};MM=0Kn05u?D>n@Q`f4?b_;WGY2Sp??wb3#XNB!SRqSOenBTAPkl0N@s&js5 zAeLlC%{~9($ba1Q-cw;NG&}la#3&b<`j+vV6Wy`v)^wrU9kviQxNHpC!&hGlir-?APp|9LzyPJCN1i{IX2nk7g-NweO#N>|Qz~2f4VE{=) z6Vq&z?7i!CXk{bSP%NAmd_c4DM; zCTd;p>!T%-LXXc5{5$HzDZtNP`?^W-y7~4TLh-z@HJ<$8O;;vqw>`AV zgBkMgY!4Q4EW&|0w&x$$&)y|nzGz34H*M_U0W%t}L`AN7eleOyjh~!2y^qMe9d%Yl z6HN`Qw({W52zRvW?dzUr8|`_hVu0iKmmQnRX#3^x?T&gD64KGlgV_o)elAGk`8L#G zRHGXZcP1Q3`%*r^)gRUFl%)k zW&Pve>v$*aPG!C^ew& ziBU~$?WKh&dtK7-@Uq_rEtUr|3co8(i&2dS8H05yL*$c2Ph#0TS;c$#_F^)2CtaICv?g8@jLW@kGnO}Kq;&?3#12z zjaOp~N;i0=f;jQ-;n1a6d=pUzl>t$2dpkm}X!PL4 z_SYYIh7xqir^)@d9n6 zA=PM9DM2l%dCOn|WG|^3eXd9W7*T-#tT@{ge6mw@ZsRB2R3yqXP?nn20 zzeN%MIWehtf+~-nOLwg4JYh#>tX~qsD7IY-nb}tX*7cc>X#_?;SP5klBb~Jzb$$@X z6jbTZmw2?f$M^Ev7ld5gBu_#;ySsSIY;^@XWa3;|UjVegkr8N} z2{%=>Da}NguJVmDMOAHdG@pd7=jFulPA(QWY8VkBl8*N8LeiZtwj{eA|5bf!EKH$J zl+IVJ*qF%p1Uwl+5|Y8$B6Tn<+kqc`TfaJvUAKjmgh?--Je#{wBngP+q;`2|toz zc#>pH9ddm6D}2p-a(6+FKn4Unl9v1~iUHXz_XD{P;XdC;Nl0|1%f8a%UwvETOO!SO z6ip9)uTiO$w@=U3>Q#5D|5PCn3T;XR}gn4Il;$8w~fK9w0| zA~L4FkWkXSbFQwf_5Fqw7qYnME%5f-1bA5QE{=L%Kl?o%?t8sHSUwua^qX|*HYOSq zevgkIWJi0xb$s(!hsmF{x=)lu1x%J&1_mQbOT-TAJ+WVkX4B{J@$uQYxjjF?Hrg+w zg~^r#A0Ao*d4k3+F7I|_5zK{M5??HSt!|)AN>IJt5OeK!X3eg$R~(PZmCxH0tU6#W zIKz(<`bLU?13ffHcNg&pOWQ*hY$RbyPehsm?ScoT(&Z;eql(HF%guPf0wMF^v0`8P zh8OAReo>=AAO%CF%zugLdVKi8b1iPCJ-xjvdbK)gV@P69@AFJ+`TtsVP&mVk)4bbK`g>PI$mtD7n42%#*UsZ5QHOKF>e#_SmXHZC~SOu{0!Li z7~;Se3^Z1s^Sra^T$IB6a5?x%aX{Tflub@67nxK6F3OIZcZ8FLUKUNWZfc9k(7T^) zop#J(4mhO}tErPMCiY}y}_3*ZyrpZoT{t)q3N!-t$j)E;?VeQ?}( z93YmTyOr}nGGxo!npL;|Zq6G?9i#hSz0zVgwJw#XOAxl8LSTL)V;rI581mtXciI{^ z(gd0^q_x`b{Dx)KoAX;W6r;{1Y~!gt%6F>%eql1X+@^&n4;f<2Y%{MFKk~{_fqID8 z2g4IcMNLyN6(=UUN=M1i48xmr9k;_JhomOZg>EcbmK9j@b*$!6Sg%JFORD%W(-k5K z%ED|gv$6FmFxYSB>aFEE!4lEE1LXj!+FRfea{J#8QcS_#f1JKLOgHec-WrO+ncly8 zAi$O6r2>m(m;;%Ivb|vbLt_~`ZWrWzcF?ty4r0_nei^OT&^C&MibS^o;EB9>^fJu5 zCDk?Uq-(gNPTVxT2FJn-&cKLwu_Gf6z1xvnI^p6}5HFkS2han%uy8yHx5LIrEXm7? zd{INJMpYCfofVyQaQtxYKE3ztY0ONO--WWm4RN~np7y5>i`x=VI)?<}tJa+8aSQ^0 ziT-<0ap&p|tYr%A_w{OmXY}bSdQHarrr*KwV!Yr~?V;RkP@Yk$j-S7n7$1YMMWR}Y`#S}P6l zij6>H6WuAv+27%-x5H`KHk!9Lp4EzIxM7eNmui|9QI##sBoq&qqmtYjleR7%!hKf= zn~~h#^i1G_sht)EoZeL!@n#*?t<%V+&~?(>H)MS%!br}@6<2KQdLI8tf&PS;a?`9b3mpE>)3sR-_cEO2U(g; zv0ldi%l$VIV%~@5{cRT&VFxvg-?hjc-9|~Wb568uUaVj8=?Ew{Y4O#=qG(ju zB%&UMr@RR4Su~=@UgpuqV$!K;P~Zg4IU0MbiE%02X44|qF9vdMN6(L)c3WnvBPZ^7 z!zqC`3h0yuurGfz!`T$dX8&dKsABgw!lT-jzGa4dNv;(pI&#P}6ay0upzTQFssy1D zbQBny`od*anGWlXHa1|)arEE8|0so-W6!VWc=tURHcwpf7v*4CVpLfoZgPSaHk!F0 z$*XTd(47(`mre~vTAGG(P2A?~$u5~fWxwz9PlzVa!finlAwJ)cYA5ha($`co{&C}-XirlV; zzdw~D#g`-2t{1w^qot!G3P1v(yd#Jmn)uVKI#<>(zy+O?^j?s(dA#toaB&+ib7^R3 z)YsPs*3_^75()YSt=@;$&jq$F;8BLRa_$8a7S!+rnF4ipd|DXu8 z@Z+0MWB%)CbD8Tyl``{lX^(P=9^I`%*K0T5x()|_|G+%R{+oa$Dr}tg`=*~9q?Vk)dUcd!YX&J7cCqJM{)8T08bph1WMh9zYnNlA+ zT6K+mz815Qi3uzaSX|&2x9FJilNq&<8ORinSCG$NJrbSo>X#@rA3$ErYTJ|)lwb|s z(C(r6%8)OBwf6Ktg4gYUnd5*|V}VmsN&x6_xHf7ezPPu1MNvsXg2fR7m!DxAcVI9> z5UDWaaoQRsoNOU5;9*r9WqqRNj~I|FR*SgvF$>!IuBf7B!nOPID4n2DjnOZ3tf1N$ zxfsMAzwd(&ajShlOvk+lr)N=dFUbYtgcV_0qy-yY2 znJ%0ss(=QsYfMu9Jp)|=7EXdUGIO^tL3gS3!jjGXWHTBNLFO$iur*tc|pl{k&6M21T2?3jd8LL6p*yH{$I4r_&?BsE?YBk0Z;Ao}J zkSg0OL5(eKqOO7~hc-B*orVXdLZVx5T#m&$B|yfJs|O>sr`d7MeMlGUucEA)AL(aD zlP!T|HS7s@X$Omy3sa6EOkY_w>v-KR5=~69+U#iY@SWYP9r}1V1_a%?C<;)c<@ZVZ@2TN|<5D!WYQ?pYL*MjzxeX@3 z+~jy5op{)e`i?b_(v>M<_~j9JrO1`Q6irh`m=hub(oAdJ`|~730#<|98M*K#wElTr zIuZIbT~@atEDjnqa_7Gd${m|5Gu5Cg#^n__e!#c!}7a-YDX(8iS3q0 zR#wm>3nMEk_&74IO?5Xg#m(l9ZiG5~ZvJsl4GD~mJ`B143td>crLg#+2f|uz8UOni z|G#1setUMs7r|-=r7()DwxdZ$Y3WOjfjT^) zjY0o#2`BSGo;6&wfIheRc0sFsUCmk>A1JZ>`G0+l%<}SooOXY?b7nDqb94cL$dF}# zZv@!?IohVjM_pK07>Xr{0fLZtaB0J3OG3lKvUvQT55~69K8O#$ek?_d#&BB|Q92QY zb|Z8yIuy;@h~Kf;!a~yhx7QuofovQgrz%6<18O^ZMGZ8pbNP82^xg-<*RMdrn>cj# z@F$>Gm~m*Hv2QhA{u?NduLlj(V}=Z^zciwQ?vFg5p~lFytGA`sH7zh9jM6lqHdf~4 zFBN_te!7qm1k)V55!AD|@!4a^<`3brr;xSNzr$h=)+`nkoo(xa;bGNF6RG&H$-{*< z8D5e#qeJ}1f}p{TG@mu}2fS%b#Az(z+GDSw=$;pL>YO`GD(+SzEF!KEC}>-J<;(Nf zLf8o(yF8qu-y^)aPy$cl()xT|3G@JilNHUMjralx8h&8R8w<%Pu*oh4mqep3sZxCo zsQ6Q4zpsy7O3In^vkEdtg?U!@Z;_?t1X}@)gJM+!Z)?U>3F<@;)!H<$RRRQSTv;$w z@Es0D#+!65?Z<)?+fK=rWpk1o*ir)IXUiRJ{$jmll~&D5xo#yS2e%zF=x`kleeCEw z@2S%Tg`Wi?GVqMy&8m<1{ulr?hIFDxlA}RVqtQem!xIPhLHan0P9Ab} zdP+#X_`IW;(=)v|HXH#8#gKIfx8Bg)_m5L-MK^dy8A+{3n)ih<<5Y^?VWwOLhH50l z1&yA{NS6y&R3fW^k^t|TSYN9HrpZ#w@u)|MP(;L-1fOeaJ=~VR?PU>GS{<}_ofg?v z{ry*E5a`7!3a0Oq0NT`|>xCyNQjTKTS?6cQ4iAhAf(rf8ZT* znvZ>QTSzLXU@A3rb(foe>U;m@tB#i)dnd!j0gH$?kn!&h_^)N@k}E7YGCG(cpS9CQ zU&?8B_jSiaA+7NIeMXjKr)BKoov%)suR}v*gPnEXPUPzCkpu!9uSmlQl=Pv_H~*Ob zqiMVZ;vngDLFPo?W7PqZ6M%$dhpElH>-Cl{&FR$VXAV7P4sY{qh<&=reFWX1jq84_ zF>2IsmK6Bn#>+&KDhX1?8v+6(SanI&%O{0%)dEu?-ZmNeoneAVCSv#ha8j_2mo8 zV3L*yYmgs~q6abJCuQ0e&8waAtk`{TVE2gI)Py=_@d*e6LfhsYtgH-gZg#J(so7p= zV6b!K26njsB3RHf5CxzeM`ED8<*v#n7%Wq#eU}q4u*IQJ+yfqr@<}nrn=bNb zH;)aU%V@CTM*k(L-l(L1AsTlRvZv}THQw?C_2*?t<{B^jo7y{{KQ2^F0zNH4Ly0tc z%RvQ1P73?A#UIawID8#xbZWQ&0#8EaU>Ul8WO*YKcGLm%O|N9tC4qxWbqUINt#?HR z_6+(uI)!p_a^Lf8H$h-gWEbj0<^Mi0u>}OYdr>Ere@Gq&n)hd!BtVF2!5bHYEk>@> zLpzh^NmBp0t1Tjc9Ba@?@xAm8l8WfUSG#-1yUg`1Ku$l&wRNE-EPI(r-#y&DX!nqa zv3~Zzjt1B2z*4k&x^;iS0Prxh0#_3iJ!l`ox`rNOqgv1*@gUMs(FV24QW37KgUU(@ zGPFJ2Qvx*ezH>Bq0}<*(3FiYpIHl&Gy9m|#3`kwmloq?wa<+jBXuXA-j!ZyN&D$jyRXaO4MDWPfa)dNECjcd{5v5>yaYlbu@?| z8_FmI+Oe#xtcfhgp2g|b`zSxrB$|io!?{D7W*vH9^tth^rUTA_I&g48K?=&<*IPja*!zjT5H2pBJOvg-HX1s`` zt-kJ?a|=knk8b>L9`^IrF=(zMMW~PIqQc}7o|1kz9!s-83Mm4fKVDsoQruMyfxyg= zXdtp)gEbvM>vO4M1{jz|EyH<(f+%^VQ9 zDu+i3GF;9Bxv79Aj9VWwl(R%Rl5tB69#vC1ZU9laak91)$Y$d31z5~I(>TfNhF#)Ad%3C$f?Xm2Q~xsHArfW1 zmOrDQ=;F;HwEKm-%fRxwOV>ny>%6P;kjgbs5>x;1PY`MHma=S%F2;a}%Ne!p@1b%L z>h0}KNuI9qcUSd4vc7bIkFU7h_@w!8dy|cl?&5h8!|~IC$!uJv`oHjk^X)OWt7y5S z_#E0ht8L}*RD%)+#aak#lOJ6fK4Lnsp)NjQL^}B6hqa8#kmKpb4W1pBCKBIuEEfs3 z{MvQfUeTLU;ZOMT!eZvBSSh}mkJQc zAH;d++ab;t7cT;p0Q?C>aq&6k`ZG6j6MYqEGhJZD;b`}JOt|Z_2g{nr6OG~$t`Xv` z+_~$*3>EuuyCgYMRMadV1z&S81EMkbn5d0-_YXYLccj_yP^(wMpuv+bf;a!-Ju>Hw zTj+D*Oc3>XtT_#+-_#&Nfd2om+NXo17z0~rs|5V6t>MrqKocz03 zGYbm~L$F34tMCL5#Y-;eIiYyLW{RvU z=F_9AO=dRa9<^yEv@r-QiKEaPkv%uCNV+!0$a(pPNfz&KNbUIuN9-GllPiZ85WI(v zPr=4L&}2`vwLT26>DbxK|3xHcqu8zFC%*RluK*3`fL0MhLQ% zjjC0S9~&t(8f3H~N_M=`UsVx0b~cqluSdeyB63=RS)Vmn{~ju>V>2QwL7X`ppX;m;X!lZSmrm_Jz?DGQp&F33d zXQV1*ni8q$+J1O?PDZJ+u#pm}hN}@2#);vG4`FsEGM&0!dw8Zt&yv1k85hjhn@ZJ) z=GmFFu_NS9>)IHotFX=jE-WZ5?PQ-#6(!d5Z2ue(3JP-hG|6I2ts67Eb4-ktlr^Gr|{# z3m3&;=zV8dRn;?Hionq;j2z9O3pmS&I=_h?8YykUcASv)YBgd=aiw=)%_ha6n#R9n z74prpPN#%AiPqADZR+w%8daLM!!5CA#7%0&*-cA*gAvg8ylwk=4KugC-p8@`A;qGO z0C){B6EzqH{oJLq0&=m;DXJgs-9x;?>4qBQ+$WV8~&6!@+@{xsoC% zpgp?%=7~wzE0m?GeYYCOYkXi1jxh6~sokV4pkX6v*|5UGWz`@y&9E zzNjlmYQD-b}a$R*UGJOM8vQTuVcj3e%{) zl#_bcqe?EhPgK!#F*x$}3|WB@JGh&W*i0|Qo%w0vi8+>socSJ<<%Es)l_@{liIzat zcS>Q@^j$xvYR``hI)9>ZCHg^^Jvr(Zav7tdMTsQqWOd)`Ksv*W_`=rRpA(HfDxW@z zsm#e4LZeju@9W&Fu)jY5%q74p1bQZOP%6kL5_Sap_e1rPe+P9zA-~3^4^&w%kolPu)ttf3}sXV6<}OW++d<4@b^%Ry|-KQrW1g&{E-6Y$WG- z@V{Re{>)b5C@v{`dMGU|Lg!XqPMVnLu5a6_2%ieejnR=$d}iC^yI_lW(uKCyfdAA) z*YWa(Nb${&FniHdUEPrf7E-(%9d#ZZezv98%6sym0Cy}f<|NE-LUjGnvBa*zyn!L~ z((nx(r1LWQe^nCdoT;&H6I7JGWD|qR?50^~*Hewe$A|V`+73euIHQ{I;O`=r7(YAf zGUF{D=1LHO;k{e+@Vz*Z^R#cF58zRtY41N6gQ8|N?PhJ09ns=j( zp`pG$8~D>Lt_KA3^CVdS^Z?KFLJTgddDfa|q>wFhFvf@LS?>9+ZpU#MaOqS2R5L!K zlQ*9NIwRpz$`?AamGnaV{LZAJ3&z~lOdONZEX#L5sji%=4${djEdeo+igqcHSL0{E z$H``Q|0E3`3=t@s#yxu&VZ*xED=kuKtB7`6aj&~Coho#BeuN`^9Nnd}7 zk33IbQIMRwspil*2JfpRz0)IR@9&*>sB=-2I_}OER}tTuL~lx+2GB?xw8W>AyHR~C zf;w?m_LgeLoca>Y!RScji6K!?rwnLpvK+pBGdR^$II2W8)P!UJr@}`jJA`lPCBJ8) z(O}*_T%}6E79{^s^a!2gjdE}+4|kSe%$tXo)N5rTFnDi#Y7IGoig%a!D_cu3{wl|q z7wCF-O)iqhmqIQxzSoo$u5bpHCFW+pbTYZ!m;R?a!xg06gQoso$>zMHQ0@Jj zUgRxVWbbP?;v|2RFK8<>)Uvi8(4adDGGKDSjOcfFWkP-qt|1EXpP%idpKbWGTp)Nj zf+JBL$VZ&OvtZ^XZP~}SX_31f@3>+XtQ#Tk??xZX z(LXKL`qO|W0xWP?;s+Z1+-U##hZPisis-mmuuX$;PVP^&Z4ps2-G6#71OMP(Z$p~X8|K8TT46fA7*yBqH zvgPdhNU{U^I!`dUo1#&Ow@8`)@|~srd%r*BNR}Mz%t*AP7)SOyf1G^YpZ8hzt&R0K ztTurh9NZ$o*_a%3xsvRLygGIMiK61~g}LS!oclDhG?OOW_nUlKXKZ&=Xg7c~&9<(; zwY4eImX)1Nm`#UjN*_$et_f${RphDcajb3vq|}6sfFTqM6+O{^Yq1o2j6;`5HgZeflYA?m7$h{Wuqe-?Nj0e=$V6BSD$F5P z+J~J`-V-1ElV1Wp#|kEQY5sSsAU)N!c3^+$x{?#KunJ>gCKv`j%FP|jlk;*^d}3&X zP8-ODo*(KuxkSRQX2$-l$X7fi7}l0M;v6n)jg$u>#~LY%`pJPJ5Y7cJ5&gWDNGxx> zwfm0mjVZa%*xyEo8~FT!CG#y&YS@rdEZR{tm!Gjas9S`JH@iS(4)z?^Lk~Cep&!H$ zkTiTB!3HT6xbRuzUqai+iZlFJX}rqP5N3ci_wWWvGFov|bgduDfp zc8@rHb^)I``7raV*PHpDX!M83Sb<=V$jurcHNN;y9dN5^|ET(Vz_Du%-AHweKsf|} zg?G0a1J)f$8ycP{Eqyd{aPyr~{-f;d7tRtnRuVbD8qUin>Y3^`9>^F@t`;`i6S6#2 zL+f7%W-D;rQD&UC=`79&N+EoG-rGerUbpAt*lGA*!H+qNsOaH-ju{ACa<cO7GS;Mc{K&rplGpz;gZM5D zkqxImz{1=CTJpxhhUbO|Q>1dlw@8N-m}$K1 z{06sSY`!&Uzu#lOAOB}vzhcW`xmv{tWKh0N@&hZ12(A}MACwjxaG9C#;QDl*B%pp~ zqFI0b-%}c;bP>kC^pdCB&@wfYJ2=+fqYTx~1E^g8fP5<%;elXOs1eU0bZ3 z#Zk*qv_h!ai3H={LKx4wdRV+Zn`M7!e|3MYiw==%bTUx=&v_2(VL0Qgs2>Ug!v@Z| zFTr^dgtm5~Sp-%{%&I2oUT-KHl`j}nVF*(qQ{K$(Ix8hDfl4gBc1N=GPJ18$IU?pC zF619pjk!-o$*xX6$W8xy^I0@CM9^%nfA(=T<1doxL|khvXL~s8F(A51f;A{sfH6W= zgoXP>SV0vgJ~uO7hGO)-(u9dVf1hNgZ)xdZNOfW{eF)Qq|R zN#AIlle)=tsJ^0LZ@#?;R+^35SLrDlA1R(X%o8*BaQE5AUQUjVk)dH` zT#uu4hVF>7B_19hB+_@A!MQG$TnKKnxWMqi_HH%e(Puwf;wwzK8>c3KED3g%^`r&g zxzW*4*Gjuqg*})m5<7n5AKm6P>g*iEQb~do|KI0|OS00uGy9haX46Q4IQ`hL#A(6T zYQVKtS2!bX?`>+7>0kri?MD;dzxj(@?bs67d4PUGcKogDKg)NT%fN3&u~zL%k~k)y zH)my7|MdUP=q4yIlgQFyRf}i0JOyfEnfX+sXyCE`fBIsr=j+i4=FgAoWsNh|z)KyW MqhY9yS9OT^Kd2`cbpQYW literal 0 HcmV?d00001 diff --git a/platforms/platforms.xml b/platforms/platforms.xml index c4a611c..51e747c 100644 --- a/platforms/platforms.xml +++ b/platforms/platforms.xml @@ -139,4 +139,11 @@ Digi TX64-Rail-Single-Cellular ?\[[0-9a-fA-F]{12}\] ?\(ssh\) https://www.digi.com/resources/documentation/digidocs/90002450/default.htm + + digi-xbee-hive.png + Digi XBee Hive Wi-SUN + xbee_gateway + Digi XBee Hive Wi-SUN ?\[[0-9a-fA-F]{12}\] ?\(ssh\) + https://docs.digi.com/resources/documentation/digidocs/rf-docs/wisun/index.html + \ No newline at end of file From 91fd1e42c3e474358dc10a9b45a2131ecb7ee416 Mon Sep 17 00:00:00 2001 From: Hector Gonzalez Date: Wed, 16 Jul 2025 13:28:35 +0200 Subject: [PATCH 2/2] samples: add Wi-SUN Get Started Guide sample https://onedigi.atlassian.net/browse/MPIDE-426 Signed-off-by: Hector Gonzalez --- .../communication/ws_get_started/README.md | 88 +++++++++++++++++++ .../xbee/communication/ws_get_started/main.py | 81 +++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 samples/xbee/communication/ws_get_started/README.md create mode 100644 samples/xbee/communication/ws_get_started/main.py diff --git a/samples/xbee/communication/ws_get_started/README.md b/samples/xbee/communication/ws_get_started/README.md new file mode 100644 index 0000000..4c27ebf --- /dev/null +++ b/samples/xbee/communication/ws_get_started/README.md @@ -0,0 +1,88 @@ +Wi-SUN Get Started Sample Application +===================================== + +This example is part of the Digi's Wi-SUN Get Started. It demonstrates +how to use the XBee Hive Wi-SUN and the XBee Wi-SUN modules to exchange +data using the socket IPv6 API. + +This application is executed in the XBee Hive Wi-SUN and performs the +following actions: + * Allows the user to input messages to send to the target XBee. + * Listens for incoming IPv6 messages from the XBee network. + +Read the [demo documentation][doc] for more information. + + +Requirements +------------ + +To run this example you need: + +* An XBee Hive Wi-SUN device. +* An XBee Wi-SUN radio module running the corresponding MicroPython + application of the Get Started and its corresponding carrier board + (XBIB-C board). +* XBee Studio (available at www.digi.com/digi-xbee-studio) + + +Setup +----- + +1. Ensure the XBee Wi-SUN module is in the same network as the Digi XBee Hive Wi-SUN device. + +Run +--- + +The example expects the IPv6 address of the remote XBee device as a parameter to +launch. To obtain that value: + +1. Launch the XBee Studio application. +2. Plug the remote XBee device to the PC. XBee Studio automatically discovers it. +3. Open the device tab associated to the XBee module by clicking on it. +4. Click **Settings** in the left sidebar to open the settings page. This reads + all the settings automatically. +5. Search the **MY** setting. This is the value you have to pass as parameter + to the Python application of the Digi XBee Hive Wi-SUN device. + +Ensure to pass the XBee Device's IPv6 address as parameter to the example application. To do so from PyCharm: + +1. Click on the **Run/debug Configurations** button in the toolbar of your IDE. + It is a combo-box with the name of your project. +2. On the contextual menu that appears, click on **Edit Configurations**. +3. In the new window, there is a **Parameters** field. It allows to input the + parameters of the application. Input **-a ** where + is the IPv6 address of the device that you copied + in the previous section. + +At this point you only need to build and launch the project. Then, read the Get +started section of the documentation for more information about the exercise. + +Supported platforms +------------------- + +* Digi XBee Hive Wi-SUN - minimum firmware version: 25.6.110.1 + +License +------- + +Copyright (c) 2025, Digi International, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +[doc]: https://docs.digi.com/resources/documentation/digidocs/rf-docs/wisun/wisun-gs_c.html \ No newline at end of file diff --git a/samples/xbee/communication/ws_get_started/main.py b/samples/xbee/communication/ws_get_started/main.py new file mode 100644 index 0000000..38936d0 --- /dev/null +++ b/samples/xbee/communication/ws_get_started/main.py @@ -0,0 +1,81 @@ +# Copyright (c) 2025, Digi International, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import socket +import argparse +import threading + + +PORT = 9750 + +print("---------------------------------------+") +print(" | XBee Hive Wi-SUN Get Started Sample |") +print(" +-------------------------------------+\n") + +def receiver(sock): + """ + Background thread: receive and print incoming UDP datagrams. + """ + while True: + try: + data, address = sock.recvfrom(1024) + print("Received from [%s]:%s >> %s\n> " % ( + address[0], address[1], data.decode().rstrip()), + end='', flush=True) + except OSError as e: + print("Receive error: %s" % e) + +def main(): + parser = argparse.ArgumentParser( + description='Simple IPv6 UDP socket client') + parser.add_argument('-a', '--address', required=True, + help='IPv6 address of the server') + args = parser.parse_args() + + # Create an IPv6 UDP socket. + server = (args.address, PORT) + s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) + s.bind(('::', PORT)) + + # Start receiver thread. + thread = threading.Thread(target=receiver, args=(s,), daemon=True) + thread.start() + + print("\nType a message and hit Enter to send it to [%s]:%s." % ( + args.address, PORT)) + try: + while True: + # Read a line from stdin and send it as a UDP datagram. + line = input("> ") + if not line: + print("Please, enter some data to send to [%s]:%s." % ( + args.address, PORT)) + continue + + try: + s.sendto(line.encode(), server) + except OSError as e: + print("Error sending data: %s" % e) + except KeyboardInterrupt: + print('\nInterrupted by user, closing...') + finally: + s.close() + +if __name__ == '__main__': + main()