From 57f501cc8fdd5ebee56baf66dfb08cb7e06e7078 Mon Sep 17 00:00:00 2001 From: Ake Hedman Date: Wed, 11 Dec 2024 17:05:49 +0100 Subject: [PATCH] Added VSCP_ERROR_INTERFACE --- .clang-format | 1 + cspell.json | 9 +++++ database | Bin 1507328 -> 1527808 bytes .../database/vscp-hashtypeevents.sqlite3 | Bin 1507328 -> 1527808 bytes src/vscp/common/vscp-bootdevice-pic1.cpp | 36 +++++++++--------- src/vscp/common/vscp-bootdevice-pic1.h | 9 ++--- src/vscp/common/vscp-bootdevice.cpp | 14 +++---- src/vscp/common/vscp-bootdevice.h | 2 + src/vscp/common/vscp-class.h | 2 +- src/vscp/common/vscp-hashclass.h | 2 +- src/vscp/common/vscp-hashtype.h | 12 ++++-- src/vscp/common/vscp-type.h | 9 +++-- src/vscp/common/vscp.h | 4 +- src/vscp/common/vscphelper.h | 2 +- 14 files changed, 62 insertions(+), 40 deletions(-) create mode 100644 cspell.json diff --git a/.clang-format b/.clang-format index 558af559a..fe1790709 100644 --- a/.clang-format +++ b/.clang-format @@ -22,5 +22,6 @@ SpaceAfterCStyleCast: true AllowShortFunctionsOnASingleLine: Inline BreakBeforeBinaryOperators: None #AllowShortBlocksOnASingleLine: true +SortIncludes: false # google-readability-braces-around-statements diff --git a/cspell.json b/cspell.json new file mode 100644 index 000000000..3abaf2c92 --- /dev/null +++ b/cspell.json @@ -0,0 +1,9 @@ +{ + "version": "0.2", + "ignorePaths": [], + "dictionaryDefinitions": [], + "dictionaries": [], + "words": [], + "ignoreWords": [], + "import": [] +} diff --git a/database b/database index b1628d11ad25d780a0481d9c05f7faa779d8e0a1..941db677767a136580b214263b934412d5aa3652 100644 GIT binary patch delta 43557 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

3)C ziWcA>x|wcAQY)?5a!?x*NP}2*%$}9;nmcZ>cff%$WCYg7s@$c;W7>Hck7>^ca90qI zY3JB~K}>rz4vZoXh`={|^24_{%SOd%w}rIB-ot(MJffYKTo=(E5*SVJl15 z_9>_m%Ocw6i6a9;Nx7^)(VBj0r{L&lY*X&G-eq;lAIf*g3*;n=AfCZHVGCam>8IiY zv#H)wPl7iQbVM)qb0$Q(=m`+^LvD-H2dFb3$`WS{#6160vN$3zorLt!N5K<^+&=n9 zluvH#1Hmg(`8e2P63*>`#qxW4Ss;&Lc|bJ7(gUUPOQMJaQ|Rn)-D_szfu&wF(rg5) z;ACr_sV2czq3n>Jk(z+bjgp!iC}eD8#1Y8<1aBHHLjDl{l)yYXbFlszyD(22rk|B0 zuRSn_uIZ*XwWXT6BB&XbGI5}A1q_HU4A0=e0>%65UW${1^iodD-}PahT#6&B)ASJ-(g!@0u46N`RI*?@t=|H~^DX1V zG?WaZk3o{h2rQ%TEYcn9&HtCBP#H|CZxqG-44o5*)J^pHd@+=v`OQ9{H4|-{0hyLqZYevY__|%6qy- zuqcvKV1tn8uGM0BYp$uYg6$Liw0he5H^}{P7Utr(Xwt^e_p3bF(-HTTTRr1|>RSn||zCBC0n9JJ$DW zW39a{0=_7`2}}Md-Qx&y8x0ask*Y*Jn(X;pl<7OC#4nH@8syjM8UCVvCh5;!6u(1a z_n=PSc}edM@rhAE76FLUHdpsCYXlF9m$A4os8ZJOp z?dZ2>b)T$)OV@$G1YsVX60VK52smPy^;8iV=gG_Ssu80Qx_#^QaXf6aJ=%&y0 z0~(5=i9hIe88Q)#x}x7<9Y8oLb|L+L~&)X7wyo;fOuUN z=m+9~gju|JU_a>%BrXs3p!RqJLRu2&h$I92R`E0?nN{!4s`Ct4ygFpaS}y6!g8dj8 z!WSl*RK7@&&LOcZ*q0t3WGi{qn>Tnsnvwlwy0Af20TOf_FsU^5FA z-|<-%EOC7>nZo~H5VUasH6|F4<|K*2S0^x&NVQ2u0*j>^IvJ!7`GH2~8IWL%pU04F zN+O|aA*EDdz5(I>{4OoUp9zr`47qqZB%cyfgTv^A0^=E$Z`m;${~ ztzxFQVqFg?gJfi4O>i_dDvXa6p85x;1=HFwDiPGN$|%9gL}vQ1Ojku7qdmECofN9Y z2jS5uLqeiphJ4aQ!qZWP3^kG8tdqjT+F&MC*BWs6jHkwW1HzCqsJ;=%g8#8gM#_=!JCaov1v%~ zG*xEXU6KnM{ysr&N~AP(>0r_v?v`#8^$9^Ua4?V;ZK6N-O7Zx}9wUck2hP32kgPoE z5atQ97(r5Yhhd`|?=$wxU^VnVXnfCJ4|I7Le)87?z&1-z#cEDE2HKqRhyhQ7xR=UI zP<5>Y5>&whBh$0Q5@>ODA%WH?toIKVaFuPbI!$!tG2o98hleUpF9Tw=E=0!x}kS{#`J+38~OD;2AF*h zha_6`@E69-knf02_{xCL?kYO#d&6f{APi8&kT8pNaO78Gh6Pn0F0dW8f+NMD*rMz_ z)*lxIB4nr$ODDCrMYI|n*}JMN99JJ@>taAAqkY|N@V^gP$whu!k(HMjy=~17cvP@! zunm%9arY2Qj>XFwGi)nDc%lo;a$|8^+zi{}4%4ET1F5k92T2MS+Z+mH0HV>YCVK?GgN3BN+pmID@7{|)|v$& z*9uxzTZW2bgB$7afK5`gdWnsMr^!Npv-MyZvhKBt3+qMN;TGF=hgQ$+fjKNm7BBzs z9$PWQ`?5wnKNd$qYOJ7DY8L9{BS&qgZAhgrJ!|WW;k>^5ylu74^G0Bn9E)*5x3b(= z;<9?3*1l$gv~c{;=h?A1G3Q&h0V>Zm0LM`F0Nw=hVtt473HAIGp4^n#n`8a2TK0*0 zRy{X4Se`77o%)$=xys)K;OwSF13B)q4=j(0`jmPeXvdOfaV+G_dPLHddTt5iY|BXI zSaQXd6Uq}1f%9|TV2-n1g}hv%SRYP*v)PYeC6cYz!Et!oOx*E z2#jR%Nr$Xjtr$qE6>47>0`dH>cd`G5Pz-&wn;p_gcA{_gu!Eu9k$%>T{oR3n8E3a( zjUUr2sn)fuS|1=$sgI(+^tV6Ea`-)vWDjLI{2ouX_rnkY_r*YH1`%+V2HPQLR~PzK z%Ky{amj^~wWb3Ez?M^z~oqM}4-OU~XD7&)nTaYCL5;l!MSObJb2!urlJ3*2_FKHA_ zv4{qD2Z7*{QV;|jH{t^0%(x*gZ`6@RU>x5lg8sg9szdm__viDko1Ch9s=Dqy_f&o7 z)K^B5=3+#tHz*4=`Fs0BQ13fK&E(Jhjb}Brn#(7Ct+5%{=6`vnwa^vfyf5b0Vj=jo zrny4B>9^z)y%r0xG-P_M845dLaxE?Zxz-#l)Kk>lVHATeDSNO{4y@$NU?Z%s62`E& zCSh3myiiy1+Yn;`^4{hTHELAe8#8JtZT+lyu23g_IcZBf3$dj=Ukh~TWcUen8j3WRzDVyC8ZK&bjKlG?d!peY1#$c-G)(Rvk3}4al@3lY_9E+k z%0vVB(_sE>gggg?1LcaV_z5m<=DvPs+}rTWOwAaQ+?@xCoxygS(_WtKw#E+8i7 zis{v0iw_MD?@ci-gLLWWRAU23mj+HV-fDj^!CYeemyw$i^Zf2P?AhS{&?Q~BC!a{} z>C8_$kvQ3rZhyv}glT#Oq6&qM4K`14UWj85ylAiO#|d;HU%Wd5U6>_y%{2Cal%fAD zqY|VHXJ;WFF^_)^adYt@VYg6d8r5dJh-(vGq=lx6U2~1o zpl~RdXKYc9nvoz>X(&21(=*+U5IgD2;tYh6NV*}_JzERq%8U0HK%*v#T0|8~uQj1##nJ*Ll67c1xZ7alq#YPA;^L>^WrM7#;@g+tW zq)XXLjs3Qz;@VQ9#I=Ne8sW)tU0{^h?U^6qm=6KUaWNsv`ifAYsJho!Wm_cLFNc*Z zj04E=IzW);X`up1T3{Q-Kgaqh1B z^ub|QbqNf{mCSD#3?|+mMr^}Q@lWh41Jgle8D7mqv1qeV;tsR-B=d;Zg?&u4*+t$%z>owH<^ppcS)S2uM4der=kEt*N`#_J;d9&5qr==tHoF4cxJ0aLCo0EWnqFj z%cwE>raa;K+LP;k)7{JUtSc=!$N7e{*f}g|N8(z?za5+H*X`}~%~}ggM=0mFho{&d z<|SHA@x(qijh^>&V=;DP^}C-;qm`WSfRS$lu6%Tx@fdLBya$cbYSGC|4tS|RSpf)E z3%3wQ9>U{lF4|S#{bgUqm}}K;(6E8L>t`+8One~lDN7Zrw;O$uh$~kc-&GvX2dfQe zLt5&da1-(Cb|dP^2=mIAY%Bib{|Mu9ha1t5jw~M9A+8l>HCuOw8;X59;r<$ke!C3f zYdX2h*oLivQy(_UTs$`*ddB!I;AgDV!hZ40ZleMmhXWrmVm3>B@QAV9<`Z)tH7>?? za4~nwWAN1nF5p44S60j|B)iGcg?owc9yq$5V&r2+0X*?5j~T0+-D`bY^EdHUgIn@m zE!<7iJdO_>k?IrXI+Um>y1M&^>G&&cWN&Q4OxzSbh;A39#r-wW{Gr5^ z?zLg$yJOf1jpZj(%Te)>^3V*(QUNhkyo<467ftjb>h}|W$Sh3@cMvK2jDIjMf(j1c zO=wLdUc2?wa655)zp+Q*0vrjbvrVS#s=~)&oLpT+?rp4CcM$Ky7}@T5SSuXv;unlc z=Al&%4Wwio1E_Uq;cRj8MVM@s*zpp+UL!?XwXqUzc4swQSf&U|xUk{E^Rn@05EPz% z8Bb@J$a}@uprQczG%;e8wG*Q}Ej&alK4feLInmWamt=L8Bhah-2x1uUB z(e{)`I%cE>mOB2+@u*{#UFy4ZOM6OdY|Bh|3f8&6Ufe7^Uz|Axqq|3}KMwykPmDcb zYylbEXD2YBPzyP7Xxy*$sqQ&ic(y$KI$3SLxcFx{v{|(djjO<+HFnNaHpg6V4Qh>U zhG_Vv5p`vR*%`y=MAe(dnExZWRzp{KdabolA7SD$F&{6~G*R;w#&@d7ecOmK*RH1K zV`q$1ful1DY?H;BcZ@Q%ux4UZ?mroxE6i)^iN)YWW#QIw1}tNum{NlWJwaToF}ABk zy`tu!AqO?jN-Ydh^!M<@azy!ia3*(&=I_Iq+$leQ-vGthIXasdm28fNUS^! zAGJcfavDBrx%l}seAK;9ulWmn)H1pDL-J8eWx+=Vq7>{WdBVfp!Nlu?dt{j1B!|pu zrL`fma3PHehs?&(@1>BL7G5MW&tOWlP@Fr1DNzBxGCU8o*Zk zV)vJZRCuKdHxfS&hZ`dn-L1lnBvj$Xh)?YO+E|(Fr9u^Mq(TliMihj~;l{Wy9&U{A z`b~u!<0bKMV!#nKyTDaQU}Y-3(UwUok`)W#hn%@L5sIx0af z6p!X*UPncmic3FZ9o0mHe!*vtrv)mEPj_+{Khj8qu3{O*t8f*@M_GIs6=@&~u92Ss zo8Wb0uR`*f%$ORHX(h(3Hdln5yb9`*TB6x{(VV2?EWF9O2{Y$?Tq+nz<;u(>oOhri z<8f)NnMa7qCmtE6QQ*jU1Wuhy6BL#_G#nX^bQ7OAaR_@?xj5Oxr@M=cx=cjIJ5ya1 z87JKw8IQo1!zk$ZB_1JkBOV!#uv6z5SzQT7#v{D$R*`X1q$1;y+r%`(+^iB7RAihA z5gGrv!fW;d+}zu1f^drAW>Co3#pwxVK!92&NrpF@Cx{s5d_5B<81TvyH8idvK{E4> z%{ho>FGR>gcM&1a+cv#pBwbWCG&?5`jL%P)S_?7b$N=GOWDdmgb4(+10G6MzM&^C- z@HNMbsb?x?9AU&m#f%}PnDM)Mb(%Q>#5{6ja}%U6yci!@I?^Nd^f8-O*9WhRJ1a7h z2abrd26e@K;LO@*a}SM-AhBYhAu$NEz+aOe$&_o_m^dt8xGDx^)*!Fhkf?f&sI&f% z;ReDi7J@MAxJ@MzE1Djv35K4RZPlGjWH{x>!p`Q~%z@L@1dWr5dNbV&niREcSXFcc z%~w6lvzQRcW4%mJij0vv`k2U-8Z8&}g9bGvV%{tM4NQ4eoo*tPZi*})1l=IHpEQ`B z8ZUMgMT{53KeZGw)iy1XD}NtmBEU3JzCWC<6Xfm@bnAF|PZr(ETj9|NIQHq$fk9`# zt$K|4DCQKhaxC33OD?+8d?SucGsg?p1jh?;|3qfUU+*@7Qs>EcCYT=(S_aL6cnDern8;a;z70QXL%#Y~M zn$BzJx=<#sGk?^84`1IveO)8ZY&5^NVf*!Ko6Ivr0P}Du4L2{@*}gix^#9veksK8w z`{F1x+ZWYP_J!QUCgo)%rkeHY>#cl*Drl)OMRF{n(!l-LeO`fYj zgYGE1K(Y@_g39SNTgrV|QC^^C!a5*Z3?eem&FUAe zv(W98(L;DLE}q=rg>Ixes*E8m!+Z{7!P6U*HN3g((s1xXRUb2V6YTrQacaMbT=2U2 zIx)6%dV~7gNV?ympVv@+`Zi1ff#1rLxVq}A@5Oi|&NDwz{qgiFMmYuhq zHA@Dgs?=Ic6-FUV7JN!0+e~Jip=+vaf7YBtr?`}TY2wtI_A>8lGs^**mi^zEortF8 zJ9D~*?b7Mz%pYt(0XkkVe3MLBC3lSSk`*CNzU$+QNkQEk?IKV9Y~rx1&f@G<^E|TbPX22CX6q>4xn}-? zpzrI~O`Jz`o4op)IY%9&4FFH2xb_QczUIXt=;$peh*z0gO zGue-UDaLlh+gSc>nDYlMISQ|!IB-tS_A&>~X*}Z$UaxOltBIo{oqtP?4kITwsI4X* z&T_WbqC-W4*4`7qa6fD9Z2{*gerx0Hh-mHYZN2ApkjOQ<&09!RCE-q9P?u!O%C26} za%9QFJ#b}CelT6khd-qzL1%N7wv$}$=Y3jN4u$z*(8&h!<#dp~z?bYDOq$?JhIw&f z)EIh2z^ma@zvRFeCx~65qviQ5FAgr5K&9Y~@hbfnmOH^46CE#W?)19j>?mWyQw&w= zUhDh`L@S!EyH|Swawd7XVz9lKf}${($7Ta$**?cmnpA=?$EjJ z=+33bsXLY4_2e=ty)E>3rhLTFMpZcb4k&T7=puRYDQ{DqFjW3EtyF1M6*}XJ^2!iO zvDJr^9({q7R(T8I5EfT?Z_!m;G$Z1;O?>qVhNk)jFL-vA$s^U?#~(KFT{)wX;Ypp9cJre13bK6KL^)9&yb_(1eBmjO^|+$!m@>jE zJCd}4-1VXJI(7|sOI+pbPMGn9dkMyue}nWLHRxSlM?Z`SX}A!CG@xkV)fMjOu3C8Y zOD8x>qHE;$XS|Q-TDe1R`4WTTDrYapJT!bW^U!GJy4?3IRBPp$eCK71ECkKWZ<-37W)RB^gbn03zfga9 zaf<9B6PR%InF)^*}^ov*hWZFG)vE_9qQ} zO?0)o$LoRfIq3EHqGd8(k2K#HII6K}zRo&xqiNX@a|~Ayg=s#Qe6FPrM{2O^%8mej z<6D2t0_zOut;&P))3)e0T=EYcd{=cikncPBUKGeRx5e$+KBLaCWqj?Z)6H z6~5~maag)Mwi4tf?sCo*!Yk<0S9F{1>!!oE z&70{%0#SRpeKwjz3ed~*d~J0&x33rYR_It^Xz_VPBs_#Nm98`)-E=N`IU>J3!w16m_=0eBxOj z$Wi*qzdYw#ZpYU>^Pum525u~5{pIRTIGto|^p?S5>_J~+k^WboQ?8S~DH<@&Gq3o% z0^{@^@^wV4F#V9PyKRVAe#mzOZl>E|-&z2g&mZ<}fS2j|sxQNV-0RiHeb;=-Crk<7 zi3rmTosWO$yQpEsasS_aA@WB}KJ{(W;E$@#_^`Ky*H+U?v7f{CqOZPi&ei;~=&Y|- z3XU#0c;43oN0J{G{%a$u{v0L5okTbstM$yXZ3JkKQmDL52!{1t2-LQP>+Sp->g zdqiPBD+D%$7+~$U%@#)nSS8BiGNh(-0aB|-x9ocT zgeOH(x^;_tt#(m+R$FL0p711KvPJfd4Py1=XX#es_?(~NGIcM*WiilkE4Yk>I}1_M zE6(0w4N-|GjFxecLd#-2(`U4drGEfg)(D5JWDUWS;4eCZWvsdmEQ|41oxw6LxdE1W zioG#TqG8yZ%TyXdjFD4LLtrVVA?zDwO$RT#kzpN2wDMGjrFhwa!VS7ry-Nx{i!nCJ z@R?G{@L9|*wq{~~NK6;)M_BWE|_NTbrPr9}wUr8S0+@JJC;#K>ygiUyO)9qyo zV$G#*taVAJ%+eeS@EPNM44-k=2tLzC#!|(C3D*0zrlRjeYYzav&nLp_8jE$gmWc0p zA`G1G;Ix2&ldOL!kdM;>r~qjJL+PBd?NhABfbjL5YMn;hE@hgvMdkD`?uClAc>pm# znF!|ruoQU!vntYbyRc8U;#(%zs`upKE2FGB)<-nUvsT)Aiye8^Wt=k>ngMIsyyO=%;!fxWLSuoMAqA=guj6|7V@~vX5Z&uHSu#<4jvBG?En1Z#r2^CI? z-7Y%JwHAQfYR6owMuBoFoJ8H&iqsk{)?Qqm2Xkvj{bzGiUBq56cl%gdl5%bhOF6eD z#<($u9Bs3$G(l-K?*1{xjoB8tD#i8P^JDB^`TGiKBe5tyG1I*w#>-RwzH(juzQ(Z0 zssP_ttV^-wqIk4WMfkpYir2VAQwFRHT!RlA2XmD(l*tY~v zEL-$jYDH~X;^b0m8{&*pmsw?M!xG1&xEHr)SbJ1%4~L}o%*C6AqxzO zt+ZO%RC+HTcf@z%6tge&HnDW^{c3BkO7UTYn+g@et;Gh2Giza9{l(gKaBBV33zOYY z{cuE%_EvAO_S5mt2R4$$!hMoc${QfAgsr9`ZCv6JSnPDss1z1EO?+Ppi=8UMWl%Xq zbl41w<%OO)#f5szQ7f`o`0y{cSU|Kna>s}^cbao|ViU#pVc6^haX12-9Z#*Y&2kmO zs@;wlW0GvMEagyVEJyY&C;z~Ei`YMKVJG;9>aA8og5(ZBbyi$oC*lBH0(-<}n zep9Mo9_|G(p2je!O;TAkFR?~1t+c8u>)9(Cy0rrdiQ^J`C8j3Yv2pd3quTMXW20l9 z7H4fio?}VRuGNG6FKc&qK_{HeQW`H`IU>uV;Y# ze1^Zb=I(z(rCX_V_q!o+#T)4>qxVoFedO>0G$KBjvN}6g;*?fzC zu;$6A6D27TW%(~bYf9BvS@a;O7$e`RAQhwQ>YH&Dqv}LPT$EiWN{MUDl5IEM&^lfg zJwaOUmTx^pT65~^2jVL3suTI+qC4wE_2OE`$+i#N&^kpHy+~Ro%eSgY>!iB+jpHhE z>qL#>qKS2)hH5wPKdCKb{MLBmvt-*7^pn2y3kQN5 z+rRPu>h>&F^)gEq`9aXG1)6K(*pL3+_*z~4(Lal}@J;(~KT@$5%J9$r_D);TOEPe~ zhCKFfHC#Q*Yj3ytU37a3Ev4hVN;bO0=1&%1JsJE(cvt!D@-<(et^O-EC%E)2cd=5f`nj6QwBS z4+avwRS7Al+?80oq~j~{WkMC^i#zR`Ius{LnHK1%*&On_7Id}C`nS?mml>_mW=gSE zr!J^kNGZ0}$pW>qggO~EbX;5||eIEH;7rMG-{qA&i$&8+X4w@&q?zX12 zs+@JQCbhDpI$2|-zB)b7C<&Y48)pPI+dXDoc}sPVr`V{Ii9ycx>B1B2*Ld&jcCG=gFBR|K*(k6$UxDe35M zBfQH37e(Ro^-SSC5cpP9t`1DI)vI0;z*@hF99|r#Pw>q2O@YA#&pc5Yc*71r=$>!@ zr^+{wG8*Whds@_Xa*n@;z_|UlJa#3JXA^z)2HbM&wg5r~X>#8~fqc!=jH_;%Upmi^ zqtbT=uE|C_0v9Q?;M^5hs{t7*-5qFS2bgnUPhf^7`Wz0pZ8!&zlvX_krJh!GjrF-n zjx_m?pTQjfbo%Z^OTdu!><2u#pCJ-Gg^zGaL3BM^u5cN3R} z`Asn|BXEm+=(|AMWFS1RT}DeDxH0kwqf6%a$4F?NfK#wU;CK6`X~liz=AWoDedPK7 z(6zT5bv00vh&VwbTQJw*8B{lLIXD04bosF}i24I%UpHL`$VXCwTOEkvcdQp2Zik;M zsviUfHCXO#6bvQ7N%d$EoT_;;YxU));$ze+csK3d`cEqqVfWVEZK=vIt`b^bnw$#u zmR`YLV%qrNNAiOX!IlosnA-dMr+Vb^?BGCbs~u51S`O+K%+`P&#d?s+Z24`kV4j9( z#_+zRdZc{1f3VCBPt@^_;3yDL$#p}h{$29jVRXGyHp;|RtQ`_ek_$%$Gc-{%Ea;ZU zvV$+`p2@1s@uh=O8{gYfp#)^Tu`H9-aU5(Gc{K(f5&HT4B#|@7J=^K z!MlTHz@eIq5B9Yq_B~-zFh>IrwSP+R3T>pSoF4p>!?Ez$ykfAe&kp|6?kLzarFg3B zH$RA|*c7?DAlSVXf)gKZ3l2`fx4-@#lIP2!$Af_4X34)lN&nB3J)fcL47vSJ!DWdE z9i$wj^7(T93v|6lzVi}Y=gHPDJS zjMJ)*1s~8n1uTEgx211t2ev@b>G^tg`N-?RRVExs!w-XF$&t+eTX2}evydxCr<8S0 zy{&G%#IdgfF)`-e0D=gg1vlFf8_4)FINE{OfcPfZ)`2L+@pHi!liWql1dSb`{TA|s zMc7hSyh8r^V{j8O5HQ4$#4rU25JH$C%%c!?_8dq6 zk+dk|K}7@+MQLZjSscLQjG*Fh6h#GR9Dmil(CfMPe!q9$_x;{K?>)Zr)i%|=s;jHJ zx~r?J`mEnmv3~ue&B?ATNkR*^__9&fy;E6Z}n{RZ1TiB0nb{` z3eO_XTu-%Uil^LD<|*=w@Z@?1c``hGJl#AUJ#9QKJ#ik>YwzwGZ02+q>=U_Ex*Wj@W*CjlImSv1i*=c7;98F0~8od^_9DwA1Zg zb{D&St(|Nq*dANAiTgMAkM7IvFWjHF-*>;`e$D-|`#JXs_ap8H-1oQ-xc9ktx~Y4M zdxJaVu63_+FLBRz&vaM1C%VVDi`@n8Ja?9RfIH3I!=2)8=T34rbGzND8(F_t-& z7p#x0bJkndtJaIwGu9KBFm03mB z2rJhbWMx==tZr6EtBuvtinC11W&UAaF~2pxG(R=Zo9~)$n5WDa%%{x9OlIC|9yD(^ zcbnVIt!9H6G5zKmbD3FV&Ni#e3Ui!UY8IOLX11AWrklOYF12QRGuccqJ*I9F<2U0+ z!Vr(!%My;{RSYpgKW*U{oL}QFm zY!n!IMwT(aNHcmEDMmXZ$!KP{4b?#UFZ%cT*ZKwhBmJBhc^Le^{vGv|+@;o{Zkr~- zjOeJq@)0?S|C=-3`kCS`7;UnhkRS8Vxf5>J60uwFce|wP74UrQv#jt_IGW+;A;G z(vSxbH*mI4LqC90Ln=t(kJ^UL@bh~^JAl76v;_ETg9qR*4JyE&H$wB$m5nO^{ zxZyg0Uu*y-q|Z0hf+(a58w`M-)h_|~Y5i1y|Eezp_(?qoQ2Mx@Gxt$F$VvLJJ`Ujd zdQS9%dJEwD^&lvMcz`d)K*-X`SP8%v zVw~OQV_XK$#c}{X8_NXvObo_edOFq(;8U@V0H2Jt1$ZLHC4D>=FG2fH#Jupw<1yZ+ z$6{O(kH%o^rH7-Oxrd@K_R@najD|n%jPQQ!kHD0X?uZlsygf1; z;B66@IMTjIF2H|81_Rt1xdz~#2p^i=k-h+TMPP1AJ0m>+?ufJpcxwdawscE`583tz zOl|4r2=5+^@WE<|@a}C3^X}E&6z2Wg8s?*NV|XFJEnzP9&0*flO<~^4#xTrnsUggJ zxiQSez9GyRtq;T8mSSPfVl>SA9SL)>hr@hwg~ELR2E%+B2Ey$C)`gP*`or-6*N07j zwY6ate%6H%z_lSRq8mb-i8Y~F09S{m0$ddu4{&9OOK3%iH@Q5N4RBd#0Klao-prB^ z7x>~3Z)Q=5kM6<{AIh2_pLz>|(*e#8!a5<%3l0J}H^?XcoM0`lG&{f>o)wr1aAtrD ze@37`!0G@O=JWvPw5pCvXj`E@G5VSe69o_`gZfD{0RV4*8=EM1)w({yI!LJ^n~?U>cPM5&ZkE=&VJW+odI^?A9ijB zAf+{cPJEVhKg#XKxuWr3`(ub1=yz!<{s+p9}BRTA4G?G&IQn8Fy<6I-*K4X`R-_3 z$@`uyC3*|gPbC;5Kk{=9((KE;!os80`p@jz8b3@_w1A5e&G*j%IM2^{n(K#tqd9)i zZZy+h0dR&NW(2DCmjRsahw(>M{t*DD`C))jr9T_sR6p;@6n_T5$y}kl zloBO0Bo6*Fi#I*kgr=qM_3@JD*RA%{R!2K+eg)C^8xsBW!2JUmGk~=##cE58WRQcDwizvO|M*9>6=x# z#5b+FdVy$XDg4gvSuLt8s9w1gzFabU>Fk;XKKS2?S+lEVIUlW0PZb zW5G7qk1Y}}xi^}7^_SHf35#23A-vC5g3RdJmYnFgExlSeL{HB&zW3!_pXZxV;|QgC z!P41_VNe#=%v@YK-#3kOOye?fTY3JnB}?hGnYe$#sNB3l-?W;VrM`JJmD53*^J}J8 z(^Hvv0*(IUN~Yc_?4i5n8Xa15$~7~5GnRpgB+@uM+;O^i5wjfBq`ouin05m;=CJ z_0m~2)0g#fz(}meSJejY;g6!PrIEf%f=yWCmt67jln~ zW{v{f+7Z8u%;2JC99e^G@k6?QW^wIi1Qljd-I zE!P|_LKuPno+OABnE$u3|AShS@;_1=_FFbqrzRTGG0EOy{b7a-S$|y{;br0fw2&Jb?N&z^3j9%Zd!8>ZuP$-Kla$&SSBrWX{BT<=8s0Q z=2j}@BgB#pNGqYclX0IcI{$f`h6c0U&*Nzr4Py93-uZ#-j+gKegfiKRQF0vYoGkOoT!F5s2$N!Li1aX`rfv%(2{0sOlq!)3@#i3PR{&fP&_yUIz zx{f_^5#Isb7R`p%+79V;U*S4L0?8xU$ZO`<^3As=Fez3@98fJj}*Xm;uYd_B_3 zc%9PViWbg?P-i&Oujk03;QRy!xwV-&1mVIF(TN>Roz1h!O)zDa zR`9a2NE_eZ%GO-QuOc*w6@826BQ%jc@*SRm^a;FXepqkgG&ST097B3JM;3%@TRX_J zUCgJ^O+>z?mGrXYnG3$Ai2Hf>FpFAlGiv-{WauyI{k20{J9UqmsBBQ&u66PwauzAV zZ{iXZkY0v9Zz2BlwKO$}JfPno7_TczqNp=Tq_0rrkiJGR>>rd!w_w0+e%r1xmaXQ< zB7aItr(({%@niA)RrE+Q`3kM1yIYfWXa#NChCGRu)AMae16oFF+5&PZ{i-e5h?dYb z?MMi(UA%2FsYQ#ny$863bS@$>y+(Anr2Aai@<^D7m-CJS$ zX!gCzM13a5<<@1(PQ}!6WtTof;QYzN!F^q>T!*UZy((FWrqk{kx$!1d?wcr;NS;c& zwR@3OV-^^V`mg#H?FVhLdP>byR=O^`Cd;qNdE^n&5#NMMaZ5CpdQZo-lIvRf6WE2W zq!rTn_J|7VJZVllzpqj1vA-F;r#s2i;uRxeNobKj zyBAHEe9w%3gc78SmFQw%lLVnGZn{{rZfu1p77mo0l{q zm2Qk9R9ASF0{{Gu&W9zp*(=E`zl%N|Pv#<-c5g->oAOdtp$iSBMe4xm~#vLzXY&^o#~k?d&ls;)NDjgn`j$887P_qo01L1VLiMK9ML zR6kc0*-yRewS{tIuD>HYbPf56pbqTT!6b-Ld+N(3A6Wj8exK91+$?7%`Y3XmxR(0fKm@J3} zYp$XGj>N}`KePuT($?RKUP&Q)Q4+niGdYbC>AWs5U%45Ia{Vp)IYRn+l~RcPEofy| z5^OpWFSj!BPRS$L>+D<`yPt7ywW`d%22vN|ok!zJYOx$E_V;Fct|kAJQ7^Wnh%{ii zu9v?jySpz*MW_dRFP;B(XPykcK6Rr*`ja%&l`ia02BR+Y?*3#5>P#>4zfx$o0i+If zqK5{MUz?7{%a)9$OI8o_2iFiZ9al@VG@>lpSpxlJz zV2=M9)^;Yz!}o*fI>FZBtgUd)?+~kuLYq?~!Q9pMvvIZ@OhNmMri2PZsVg-@0K3H@u znqggS_<-38lRo}IY}Xq29;}X6*OES1-Y~_V$p%%D_gzh!iDK7C?r+RX`gt|rO2aQx z?{ys&Vz3@AMM)Lbhw>T)(TVYYtFdwe>4kM+O~AKt ze=9lJK>CB2On(j=vWVCi42hy8&~Y?`6)z(OZdwn#d@8x`G!1RJGE8obK7|gx1|3ZE zk7VbYNI&ds{drM0tm^&bMAm;hQ8Buf4Y`%1VKjm*+(|ZLIn>HOobB+Fofze_fk84F zH!UQJH-QgY07#^|T9QPRur;pa4>?flFJ-6qgR8;Wd-EfiKF)J8`{4iqGfeEgxsgTf zL`T@Acg-IWN$`(iU))U+pf~;fMXdW~5Q=^s7e+-it+i8g-IHbtAG<cx`b&NH z5rZvyglv-KzzTmEJF}1ceAT4LjbwDV%Htd6+vwPFn5dRZnjz@})hzjQ;@{@g$AOAZ zV5x7BRs@x^!ZTzR(#P`_%A#dmosVC8m!xBT97m3bq<3+Uo!=v8z@0wSKla#tFA%x^fzGt5fYUyOYYUi zx9SS%G7RT=s{#9`^RKG6cj@Pd48Bt61tNRcfFDSSqF3?ai4ASi9sc(JO3H~GBK~Qt z{zDSRsFKBfLhA7S@?xtX*IE9fX#!E9o+LzZSD!Gh~9%qGQ*y9LBjulvzML19 zM%oYOUxJ2R2W_Bb%ri>vOALQ4FC7u-Q|x?N;kVvFWSM^*8&W3!hz$Q)US6fE&FkvKt_$d~4!YM? zjxMQl@!Gk;nPaHGm6gb9w^?b(99<`KbY5`&XpT-|@63? z7p(wVCL6U%ehO<~ROl!(QckzHUCmg}8{~^f)%nhm-A$k<84No|AfrxWh3n+k5NgTV ztp^$DEu3}+xUYVBpLG_I<#h=xF39Ieb7qElbIq6?m0eip?lv?iQm8vrH@{%XEWKX- z2ZCT+K`F0hxVV7@~{a9>%U+LhAJ73zh*Tt(=m$zm@#*f@PZP>XLY?`H^g|C}Qn)$p1omB1h&%26-H0*O#pK z(Xl2s_JMrSO*!*ONYVBk4 z5~6qK$kOQS_72iMA?IS$jg>ql-{V4EkG&ut)WG?0=v8?T)>B2x(MnkOK&G_#jI6R( zlHF;TtgY*_Kl@FX0KHkx+c2AT?lnLKkv5$i@k7-&k>1lmCUyMV_XTI=mk}I=p?ZEK z0T$`MDECm@&!S@=$aPp8_fdX*pI*FUN$jDn?j}rn)n%}(Pvj#q>c_siz*Q%mo%@1M zR$;>wM$??R23DoJ9X@tRZjKxipd!*M-RW)WW%&ZkAJ*zy`B4m80WdMKzGa%jL{@vZ z``8ciCJcUv%|FSHVRQ`}^$VY*!h$KNPw&luo%`_pt_NKjI0JMvV(VJ^YL=_T9ffX} zo>rI5XMBD)fui3Vu0+_(ZPT?HqpbZgw~K&-q2BBIRz_DNNbj-gJ=NX1N~sI39$G-4iVb>0arI*H97jt#>`EIy?20-4orsuq|^(U3b{p z^?b$`u5CuoQ&&5BrpYx(D|Jxu4r(w3REdL%b5Oegg^KAJ>Y9c|v8Ok$I6ZpbylQ$hLjt`huUj{hzoN6X(=D_tuQ$zmfA@ zaAoNF6fU#!NKs#2(t<7h#`PUSliBR=TrUw_Y{pY|WwoV#Lutjv|KwVvqiO6UQr;oD za2k}|IIf@b<&!Sum<&#XRfbX%ho-X&$x3sKs@U&slm{`INtsXSsmRSFaqN6SmkdMFK~4I{qd7c zBOnfs)&2o-f7Z0<`&;a(rYoRv8kPPuuTy{X1MxG++JH*WU9YT13Y}c0G$0qfSfrfKY3UGS@jvmT~96mKzkuIbZ}3r(5VR&>gxT_?0 zt~|v*K&2;U!Uq>+G8@;eqwkGV4&l1BbmMp>h;E>9<;vq|4Lx11%tNbb)&ymhwu-BC zo`0@GbLvrLIj&ntizX^Dum|3nsC2>ft9(Uc%4B6P*4uLy%Kb&%oa&bjDofzDXi%jR z*4yzSam415qs|dKAda5mhz%XNdc+R2p-ELrqu!c-k?XJNbd}g)WhF|cIn$Nxs1-dk z9mF7Zno@sRdzyQ@9We(4#4eLpm+o^uxyMj%F#_WFS-=n8AjCxW!3*&O4&H$l?4g+o z9J~|gBeRsd9H&Hna71hIDNEg^bVjHdJv2wzjpFHbbCqMxc3R9GMxqPH-?9%867bSj z=P4n_Vh~OuQCRY6K8t<=qxo4R`=}ic!%^pysXH-V!&0__bGKc_nCtmro6v1 ziAp}U51UFrY+4ijnHdf?C*Csy=3P&EdX+L4^`L`SD-mbE922PQ%j+c3KgOFslCFVn z^!+u;U2yQOzd^~=x(Jm9M~)B&IC4^)t+~eEr?-P!IMg%WY#vDAYzU_gui2F68SroJ z93lrg(aLp71a+hr)+r5o2VTFzpVeJZ0TtBf@d|TV(|VYa1+;!W%nRY@73y*MO*@%x z+GgKQl)wmj!Vh(Z)51C>g!1XDbxJ)NMkfW7yHOrBf}jFJ>82p4KrS5>0u{)ikAy%4 zvj0?pxI19t3Ka+pp)ZD&sFuYyx5A7ZT6$jThXaG@mWVP04Wg$b%3w5*x}!=R%A}j4 z${(P|j zN(#EVq6c!@@-GwVsr~l*W|zQ3E|zir+BOco%|&n;9~zjz;)@h-aOSo};=4G7nMzQ5GXKS-p%ZMA2S_`pcIV7GE}>VuM}+J4y{;=a@R)S7C( zY~~pE8Qt|8b)p^D!s;3231xumCD%}S5jlnD04v_(TAl1~7FbE^_b5%UX0_j|v_fb( z8~hK@3-HwL-KXqzj#xq!KoYI#k+J4opbAU4NQEj0?B*`u(FiQ2J8uU~SVZ+ZU`{S% zTkhcWYUrW;%3az5KIw~kq|(yQ>{OBym`}IdspRSNI3Y3dg(R;|eBs6w6Q5)MyNN%C z_Pz^5C^oWj{`?+}u)v+^qL*5FW}13HoHvCsfUw$eMW`a4z)bq;LFGorpF7S!01oba zioujnY0+MLGRX>5(=QGw$HA?8=x$}3bKef6+HQ6-&y4@_T! z&OV~tt&3evxRMtg5&NG;huo`FAdT+07ZgXO6Yo>zY2tjA@9#rTd}A*(;)8H7b2btF z5!av<8tiP~Lh~0>fjaH;%p%~2p_TW8;$XV#eo!Ms&+)$`+Ufztj{~)I=L5>`IIxcG zJO*w799YXXKCA>W-?tu9K5|_56YIE}^G&-mJ-b-htqae6v46>6r(?(4ll4XbwzRA6 zPSIOHD%|I}qUkuuOsp<>T)F(G{!*@>*w=(|T~740p&!hGc7r~a^CZ_Tv9k%?5`7W6 z6%-qr(5>^`J)P;~Boe{FHuT)npkJ-&!DnCvN~USg!j{&G-t{bKR1&@AIZ&QN+Uj}G zsFw7-=Ru=d(D^R_GJ$^i0%%loy5=NI2Y!tV(-JgFw0G&8J;gMF;uI(}N?`w{Q9*GG z6dEOpAP8hOi4S_|&X<&%oP8_LpJ38OuRw>}ZLX{Bw#{Yr}KL)V@1ujD)_$6w*;XshtJFw5UIIEWJv+m9e{ ze4pYsg5szllnzAnr_u#8o!-IzBd|j0g4fU|{s~GqfcAI|1R%VmV*7zAiS&3g&rhUl zFoVAGI;dd3KUGkaUCQ+&8acuAKQ|-MJik>ig5rQAlu{rar3{KqR466K{x?b)Or<4n z0TW_J6-p^S|C>?<#l|X>QqZ`%Lsglcpx9i6eFXC;YLcKh4GI+%6KiUvG8G4VQ1=;7 z&hGS;GoYN^9N~j<0<}as^(%Xx**w^lV})@fhHbs3t^i;6hO^3cXPXr}3w)47H=nkz zC3Y}{ZaD`#i#Y#^odp_9q(@+9ffM+9?anI0?CfV zl$VJS%;VV7SZ21EzYJz-6(&=IL+Q^Kz{1I;?|lwBl0y%D0Txa+ExHI6&Jgjhjpleg|q;L2JGTHJn6${~nMN>AD|a!cU;q zk1zqsIT@jb{v;I^O-BvIo+{K(VE?X$!euJdP!wHN!?CpY6;MO5*$Op0k?E-f4IEAT z{0tgcMt}YpH1K-fm~-XFdFEGsI9N)JU*V7-ZiL01pPIdmo$69= z)E7J7!rquW9#(Wm@fOk5ih3L_X9ub3HrUf&RnJ^)b zAPAeu+W+AtpcR=L5=T*?a9r5z$P4z1grJbl<}_1br_|`z3F=3VS5@qkf9i!i z3;Xx2t<_UFSWD-%Q6olh9j7I314R$TZD4RMt!%4`+rYMNY02Mj18*|#)}K?)yMB?= z@EBIX)!(r@7%3a0&ib*$1zC9zy2u zPy%l~FI?*STiIi8diEnSE!3QOJE)%^XM-&Y*FsFoOiwcNO!pk;#qsQH3KVOwo$9D4 zLKu{uMSAa$moJUr)V3HgI@5z8-w^KZho@nn$ zH)}(%!;0l}th1bkgr7kyr$TFBAXWOr_x9`j&a%0NR!DXSYoM`M+o!zkazix63OFcE z0cZ5EP&>BZI`ui^TDPYti&yr z?B3Q`W2LrB`KQZ(dsh~h({dsZ7#`}v=1o#xK+Yxw>_OzqOiy#x?RyWz7!3=h@OHDq z;2RTMZ}xlcK;+s`Czg|^zKCF_vhvk;kYlBlhpXa6HTpr+V=&JM^?u}dAj-lOaSj0} zIflrnkdN&c3H{>S#cz@9e%1`*X6?B0gR484jJB}$CB|w*3POF@+q5f5$eynuT$TI@{yqoUJgy9IOUJ-^&CNFZm1te4+7u7t>qFf0NSH>!sbxO$C7^#@>OYDnze72&zPoZkMiTy?XBi_}LDM85T0 z!Ut6tiQ~f6J^o(fqWS=GoYGLz-QgF$eG=)yP%I5kxvF=9;O8r0px~%|%W9ZoP3u*q zdnd{6W|bOawONYhdW&4bhSUin(60UqObZELfl&4|m$y0ny4s^L?{rv5K;uWSw!731 zA&{vm1on&4&tlY_))brpHWQUqmxTqFxaIy69%FdE0 zmOgV@sKDW?R{mT6HoOf|_*0)VtU1OG?R6D{#$5N8K93EJXV*Q-2TvF`LL)&8E&r~O zV>xM|k-UWcsgYw?%{~E!YSN>mpM6s%jNoJwK15aJd% z{oUt5kp?gE>~k2riL3NHV;3-}xdxJX5ZSod8{mxvhEPVJ@t>4& z^3}2=PXB6|P)76GkZ^Z{;wOqS21R09%=Z9HGjOJVevETIfs+txm*D)*wX2-1 zfB32@$L*Eu{vgO*+N&VQbTR|@oEo>8^JxWgL*g(GYS~c?0&6_0-ic`MXH*S=lL)wC z$ure^5!^X%Il<>aHJkbr|DDeIJj3<1iv9X5jK34hC)O#Lt1a2#EuOphIwj0ru}%r} znysMpVsvXHdyqBX*b3_larGcYz|g?3?y`?_R@4(-G8)OQ$)7@v( z6R7Eus>Ht|*`2MS#z?{%Zmi#N%vK37KUHuW1WprpcGtP59 zgpCNxQYzOFAM4THdkB%T&{Fo$$FN3%-+%MJRJc=J%<4Z=;eKEdTktvHVd-!spze}; zk9(2UNht(}l0}+CwKI>-vV)u`ZX?eh7!w zvWm+vcG?YG6eGfO*``$QDZb0BVcFlQg)VThZ@8lNflK#CuBel6Qweg}$d=q+x*s(k z)&6ib@_~r^#fsh#7Wd%gTe`^9pP)5kyOXs_Sq{$+E9?l?782xQ?G^1&jAZtnropW? zq2~-O4PoXnH4pakm|IzTS8_M#-^(9L?}FT3l%phUvfp}WM7HWZVPQGuZLRY07Mio# z67P31X&%N~)A5Su?Eu#@G5D)g`x;}nPuV2ve$g?<2Y5*Cok^{bQJ2q;(w(qLFRT?Tc9fHj!XiJbT ztgV7AX@*0pX1u1b!xOdZAvmW)xHWq;N4x!MC|zl&0>U|mY3*2Ss8)keD|RJMyFnJR zP^9l9^9KDBEn7Z?TT98K<+I)n3>|~j?UQXtcHzdCV>D!0gQOJnC(Y#MT zq1;1mg+cbhpod$8x#I(m*f1B)iql}ozK?mYU>xqv-dm+LBN})(bX>GyoKxsq1PrxQmBQbfHhp z)V^t2s3}%dvOdvIDi4qyQWONR+zNZc+>U|9$~Dm%^{&-q_Vae{*VqWB^P<8H)hfMr z2?+JKn06UMBEi=iwKyV&TZYqE<3bIBoKo3=C0a|;bX-%6Ly~nte_c629;MzR+D>AH zGuhcD%|pPVxVT-Dx%2+=4*1&&$A!5Q3YTseXE;4Qxz+m}^fZGV41gFoIcuL}eWssP zULeP$eZcV+IqV4!VK3gH!TnPfd+z}M9n3Bt5(Kp{H-B*chEk71@bi7%FQ6aXNe0bS z*berGJG|dRT$84&U+8Zu&y$A*r=}6+P8ArHvX=CGlAg$ZI;MT;MBi~_3+H3k!`fF) z;2j{xB{;}ujtF_d)jgM2d2PS`RX1lJ$-LnR14_Br$0Bc0Ll^c>(QKwilI;eGUU*gt_yAGvlLs zJAyp4Gh810YJnpm?v*3Yo%UXYMn|$ok85y&z-=I2O4m=*64@tDXwP=7?ZnKW$k#!WU`hq+A!->&H4)cQ$}`vZE$?J2+(br)D? z(zkZUeT?OByYLux{#UIX%m;`FOfvOd-ygZ5TP zh0w1|E8I2AqXqDYjh~UT95j26lZ|Uu!Ume5T`vnzUy_|{7UA>xk}k6l;ZKo!6gL?judo3ZPtVg_FZGIOVbpvj=j0Phy{E#{CMi z;@%WIW&)8ajE7y{R7A$o=U$4Er8fI49Kli z0+A43mg_Kgm#|+Z=`IjWLU=LTlmiUui#Yw#4P){hQs>6TU4}KttE)fhA1W`AW3UE! zx0>GYYF;mYL**!^-j!8x-$G|sIoRqV2kTx7SUDUYUdg_iCpr)xUcsvrZ z_dR^LoMZDg6pnPTmuAF$;!NDLlJ&NJKv_Xbq_Z&oC#~SZa4p|=2E@`3TT~x62c)@< z9bBcSfUd0-#5Xo8b;vAS7#9aK^#(S7s@|JG#Nm!Ay^|yKevU5Eje5yFEuc2N<_iNvJ{ zq9)i%ALx%O+eoFblYDZxXGCW!n)E*0s@lI@PbWxa@9qGaa=2|oVI}K9#SHF(16ssF zY;RK>>?nNo8zNb+LpUu2f=EN4<2~hY=ZMWV-Jy3Q$ju%)03RZYy?aQ|Y7;Rb?wG5s z!3wwPT^$nrIXm|%H;}PXe<0CG4!4dpW3gj;JA&fbfroh4;@GK2^)z6oN5so=_HZ$I z;Isy_L~t=mvfk4lR(6op(kLJ?SPplMB(j^I)q4;yz@C1AbJ2qR>m|@Cci0!z$x|K zSr9cn{(^3@s^dTxC9!o+=`BdpXcgQ&`H{A)-)nk4xhWn(yswq4SM?qG0@qGg8+kYRfE*-i$hAPFC(%Q;$W1&Z2&~faw+XuY*e~LS`seY4YB0{*>0sV%d3kcNkt$Hf?>Jb501y5k)Dx! zh}$w?uO7yZZ!}((Q2}e*Vg#{>F~j4c6Wcf>Qg1Q_^ZcUuO~$?8C}!>U7`MAb95F79 zENbtNe5Gf+hyAz=e~Zld5pfu)*g|{`0d*xVmCddZ?xn?rjb=Lsz3h-tsfsIJJZ{ID z6pl<`(EdObcq?YPj~Mq5h%CPRxB*eCquH0o4Tv!-V`rZ>E@E{3{uiDz2r6YKPZ|SV zEez>q$!@f+fG^=E{TZ#BD?&cP+0x zKCMGtXyv=cEC1Jt_arVdmi>0txCx27bvz|RQXS4<1&e1V4&yuodHItio0yjki2YWs zmv`YGr7hBA*ph~k)W}Ra^(P}8+^skLWK?5txBmPy7teII_gCX6GOIX0>EUh$h-Jzv zcrUVp?ua-=6h+E(jClTi8#vFxC5d}tM4WsI!;3Vi4F&&1ZaXrSQ{V~wPGyn8|0OcH zn;P>B{y))wW9BK z_TfbC4$`GhB)iax8LxwXDd74*9)NFzq|>;Utw6WPO5S8eXic2cWb6WNKxX@hW6z7! zea=a0vKc{|Fy~9bQF{D)*x%o}2npV#U1S-nY-{cYZdyl{KJXCy7aTy!G4Ka2SwlAO z=PubNT;>S`p>}>1`r+i~OFu|R8uLu% z%MgyNWpVLl6*3~+v5TEVecnw-)XxU&8mEzN&7DSm`xxBDpsTBy-ogYKuVN3iG!Oil zonI>1$<`9n&~H)qx;~N*keRrZbXF>bj-;D@HR^_YVa&ti(hAK)%ERR3x`9!PWoMdM z2r`Y<4m7VrVBnt|WadI>0kg8qOr&d^h2k(z$>;s}kCc2Xuq?`b$=J!s|Eq9rdlM4T z6gH%z3BE@cJKV{H#6NNPadPr`{~#wnib!RYuqV2h=XoMNl~X+wN4wDE0+R{P9Twry zz-$t2d&oXyMEQj-F5?OHq6e4eDbvaFXeZjO&|D=Pmbj{}wuMu;`5pU|5$)i7(JSFE zq?Nq@{v!@!-WR4VpI(z4tZFunMEF;>ABSnags0krDbBt&bM~WbPsF_3?cPop{ z+0jJjdx)D8RoiZ}3yo+?jue5%_s)W*$g>4-WIq_fkU8})MPB1%VKAxfvvToLtfY`(t_rg0U} zX2k?$9BCG{AqUaidXuU^jINsFNiiUub{$OjKhX8CV6=uSjBe2(^h&vTkOwitG=`v6 z;JFnK&}m6>ql4)O6U<@aP8N#@9nqwS&`F32(^Ev~aO{5$l1su-h#H$@M$t7?uP_@$ zst^{zIHLO1V4P|Z$A?8UoFER_0*iGy%GG3R3cosPO8FbOFID zWaKXe z_M2h$)gfa_!-W~x=20-|W>ysPr2vtM-8>GazY&FGDNzC5X@R&HGYZ~P_}ia_;TENX zXO$5Zj#3c^0|VZkhrqmvqebk%Eb}61N>%w$a;9YVRL815@ubN(xgjGukrl?w2NaSX zoj|uNHTy$O)bmTtHwffJ?OJJ`mU)W4M}ez0D@FfGJ?grf6gyXKaxg1e$);>KbGTP> z&#h(!PfY%OCzw8Ra6oi2`+dDR5QBk~88G`}Fpw68%(qC>W>Z%mQQvayBQ?ys+3W!M z=$X+OY{~%>Ou}lmoV*_RKR)318>L|#3AqQJ?#hrIe8*qj&@&PkD3 z{~u){v)&3?QQ@V`i%j%7ZC5NJU~$w&XN!3q$@Vztc}vI#h?vn?Y~<}Gq*l#j<@-Sh zJpbPPpyb|bUaK8Ynv?S&w&U7u&`z%=2O)8vOpGpIjmON1j&#oQ zJpHZU&iBec;IqOB_^cebA-bBKe#iWS@3E)fHIpz}$v!`4wt)Qc0a0O+6hwQpaat_c z3}J|5Sadm?{G>Soi)&(B9Bq^A6ra3_G>6pu=u&p>Szx^>2cA`UT5|ttNrvnij-Ljl zxDQ*mEsqL|LFDEOS^q6J|B=|hC=YeRA~#=@w!4p*PHw&xSQ!<5Nyy3X=rnm{AAv;a zmC+m6={L-uVNqGL|E0G~EVA@%msBZ1z{?={Q?gd7gvn4WhZAEm>#17FL?^tN5h1gi zLut+#G6I<;F<}IWynQhokhh6X6;^aGjbM%BY5Ib?NYl4MatuQ0V7rdx_vQE`cGrhwIwmA$GIxR%z{gT8 z1{Vpu&Wfg%{hcPKw303M36XDh$qiD>!`5e7_ZZ*~O&w<03b;eFM_T_-#WN;wn1kef z-e6NFS>p-(rx95ZYr)QySrFbMe4Ry+c7y(^a%`*xAsWrusc{y(3B^PA@miXc>9kui z%<{6X6Rf9I$j1J%(t>1eeq)TwBfaweqQHFpAZ^=3F=56)ZvW7~iYOGxtV@5$D<&wG z%zm9|K@MXphUUPp$d1Dz?f*}Ho%)df|4(GDiU|uwya4cLIqS2)g3RlVoQK@aEek|L zY~WBCEb+3KFwDfG0K7hfM*;39WO=MTYqi?Cf<(SHhzFhp5XBkS$!{UDI0mmAth2y_ z+>K@VEjXigg~gLs@4_1q?*NGE@D9LY*<2Xw%+dLg_SZR7J};MFMPyzqg+00fo_v6- z?n4chhk!Hm(alx~hU;5+E(U)4u*uu3(N5qV82*s!FJ|J~Gvo|JZiw|_*3A|y3_Y23 z3p|eq;d%BB&P;b^?6Ue0NNygu7o-pOygBkT^f}b_-%2g;O&# zQa~K!tQGP{h~&mH*vJFc(-;!4J%=n6tB`A;VTcChUtUe|?;q>SMjp1FArR{2y$>b| zJZxg#55F{fpXHLFA=9DRIV^vIV6tX0<3S6~e}h@v!<--CGISF8IX`_j!jlVRX>1^~ z9=ATxoJ-ccSRTB?a?(m*p69G;tPSU89na^leBEk6H{B}78NFi=tHzP>4)O^HIm|)E zImoYXmE%cmERX3YEjaQIW!6g;gp}km^A#Wq(PWEGTb~j%l9j)1>CSsAa9Zuw!s$Wn zn-+wgUCS!ow%*bmzlBJ~=h9%s56b13^p6#@yFa!b!Xg$Oi)4IJ49WO@Y(=`q#Eoud zWBXPP&B6bWHxYAW%(>HzmO+dbr*`3Xxi_S=TgBk$U?tyJva0haF)W@1;5F#HZ!9-k zcf~rapz#m%a(@fqN(`P&`PO-{4Y=l6_`Kq%GoZ|wvKykf#yAs@XW{=<0$KPFvO1cV zh*ttc^YBVQHa2_3$~d~bN%c8g)fn!NHIcxFvm)&wWs9@Au$lWcB+{mFW+bV*gPfWG z?ST=|yQO;whA6W6Np7$gCa}Ab-Q%!GFTh2S3%O@92i7 zID}V$C*g}qbk~Qn!hTM1@4zCx5R2CW#OF}51Dm~L!nZKs#vVN#stbC!FR1ElK4T$8 zzp}*Lk}gYkCxQc@G2Oj}@B2o7_!XICSUefPClkBv8aL>JbGcfd(${HxFgz8&9vJAp ziQ76Ov)o<*FfFNydujFi+2D7vfG{R$2`u?FWvzFBrH}Bx;+qI&DtJ!Kc|YPPT&i82S9vb zJ@4LYPN#KQn6(N5uS0^F&R8L_pj)o1SQ9wR1<4e>01DF5(Bca^4# z?OePFAdv7FKunc4OZCz*&3*~y40}1jh6H!auC#=V1@T}R7S9222H95r8~|BZ?_#wn zHoSx(j{M?5071>y&F-sL4a6_ki|xI%v7oDij(q1jM9ji^;a?Ds z1BlwAudx^FBF+mJHO|a%>VAflhlqK7y~%Y)ycHno!dn6N%cfQ@%#7k~a9$B;I?^tV z6R)p;w`|G)2dTDJzJsN*-pziiu#aIaj!)tN-7tO32iaYt>LDl}j&Ja!04D)Y3Z#on zH!L0$xQc=Y1uE?|UX;k*Tx9>oqsLxfV#8ZHE!f-3Y!5~W?6Vd8@8;~{D%*t(v3v6e z1^#+b;5;H)eLVYVt$iQAWIX7%<1lRHj|J?W7#>#nJOrP?HRh#=4eu2svoB+|iVfjp z$b|P=F#DrWfybh>`Xu&KgM9!y_jT3$d4W<2xv!Uw#xF4H#YtGaFCdWczQ7ctKAlUh znm;eVk&xaao)?(r+#HI>1w>_dTwo@yPopp1X#3&juxP8@2sejkx7r(=n?vE&5H%Zi zD@(}i`d;++o9ub0C!M>^eo;J00_QP!Qoy0MF@CmD-<>xta*+fQvH`1ceK%S_fvC6< z6}d>F404egjC!%vi&P|z{4*74BFU=nOpWdK6DWnA+-}boxoM6kLwtPt8GC{TwulaH znz>FlACF&->pReqx7ziF@CHqZEb?OZ{zRn>Cb-@QXEl54)i@vFSXgw_Zc8tHVb3$_ zM{>4Bs+~Z7Fxi}n>kH`Nz4i$>lP~;--Q?_}A`ezD0C}+U&4hY!FCbFw9PD9bIZ3R~ zr>VEuw?O{*i?`YHoLdI*5&_gnqJ8qrg}8nweerht5$8-U-XGxK^N0Uj2-oMZ!~5Z6 z1sQJl-f16%NcoBbHaz|*E^kEsk7x|?f7Y4(>c!=#lhyX1-G=5Az&WaZ5dH0-{R*U+ zzjVkBi*R@>vf9LlIf`dIuD^!9e7AiG@+KcYY_CWCY4$z#bKO6ZJd5p*>M%QBbjGRd*ex7-K@=;{@E9-@;dS+ea5W0vn0BLmw&3;Td zN($?z&|B^UHYU^ANA10kF=yUy?}3cDL-)g#uedr8-VKm>68$q_?=r5Rz@{FvtDVGj zU>hDL5Ntzc=z21$emtH1p#3TuM+ZG*$Heohj#C5bB+*N&lmgRLFE(o7)DYP9lRYzV z{b=^c!*;UsuqqZ$ObW8_#AM94rk=mxB0OEt380hfNy7D|^zldSVUDFD99`lA$I(>} z{s@GHql;tztD~!a6rKFI9TiFLFt;E>TYUXzCfY2cUf3+c_a!L&^;*GkdzrIIiJZSz zKLc$C7vgmyFU|2F3S8=Aip<|H*bfQk_nffn(Ly@#NjnU=X(yhvH$ZM$(Np$eG@t(Z zlpXqCbzOOU6h-!@yJwQQGTqZmPYxhlkuwnP0O2%p2M8hv;YcDPw+2*5ID{ZcFmoYj z3KTTB9;@M8mXyk(-~j@z2Hh19WyJ%<6ZEGd>+$>6s|myI@AKoI4zH?TSJzbatM`5N zeI>X25NaszCDgE*-~d7mNh(l7ZCUkvw&!*4a%CRte8gMhnA-?5Qx(9>^VI4&Ebpjy zpmGPRKI$E;%x1@rdXXcMIp6T!ugrQT{DxP-G9+@$`<C_7PVab;OCy0#cozd+x_gAH(Zj$>uU3P$`hSYiPo6A|ew3xMJz&4N zdj-jnrO{7!pigu`sIJt;1Qk|$3WKi+yX&;K!c|Qck|qJwl#}2-R&oZdtH$!fBE2_bkEcA)@3BcxApJLLrV9ICS2S8E}eufVl!Q?c{NTq}hgK50{ z0`!5jzU^~wog<}jUQwM58_hIFFq!OcPj$82Nx`KYuM9SSt%4(;(=cvJ^Z0DD-TqYavl{c*T*zvEtn-qi1{MuV3%{l?abORF0 z)VhLRp@o2A*`z1D_o~4pHuzg_6lqxA{?@yhQu#=nn5qauXU!$=Bndo|2}AaR6t;VS z9&wVjB?~5G*IBS&4;H)(3)Y>D`QEz-7WRejy~`b0jYf-V3!@e6%1-=%Pg$23;5jUY zhz2uB&`-TdAfnk$+H(ZNG*;-Red{)963svzOdgoje2cY|i_UKk{+OSDfR z<+}yX+N}o3?h?_O#29e5t7@$idPoK`(<1eI!A@gd8lvM12jAY>z{K4LtCZ4m}DUc(GGo;~Xr0PnvJBAApuS z#cB`+$)&GX2C}Ozy<8cEdXQ*iGH^rfkSm;EKh`BlUx?VmBT4!R>FLu7 zXS-d{oDX~Fs=+?&vRAK^t1*hy>@`t_q)BsX8WIwe(=5@@)2*ixEc;1&jqRfLckL$i zv^rK<(d0Cy;$yb*mciNVIYWN}-^;N+{iHIBwKVkyKtO-i)ECCQHUY9ikdE_lruO(PAN*OkwSCI6`U?QhU^wqly)mfc9-lHb=QAUs4>e5 zuFW!3NM$9b5@u`e;8b=Z8QnL96{P54qIAjd%!EuN+QTYpkw^`bs#i%TndTflRn9r` zk7>@4a0AV`iEKtQ{ERoVZ<^_wrGHMb8LC3DnP5I^-2y+zcou1)Z$#Rd*6I2I?4bBC zT}MvDd)VGq=()RDPHTOjvV@hj)(68DzR+491Y3BewSK>H*E1{I=n6K(u4=2p7%k$9 z+UwZ(u~57sEm`PU7=^F6#{|h5(y(uo%3<$L56%}iP_htu-{?N?ay2-Qjmp$(mAUN8 zOq~&RTc!03s$9RG3EsgU>#74L@v?2*bS}Y3iiMt^B2rYG^6qqn2$`f%kbr$!-jGxVMT4~2fP$hVg)1>t4c^NZ4c52(KLJrsdB+fa6KT~* zcZpS_);E;F8iwlqk$%d3qka>pc=TGz!T&#xtta`M5K*H4Iv52ym#}YF6 zqCD}@_py?(dY#13DHKYTC=}`n>EfMe1xIQ{{sP2Br)k)0I(?#;mOVrTnwC^SPRmet zA*E^AC~cgUp>CpxrX`BfnV6QY5G<_NR)Cb{B!pQiQ$tL8s4p|- z<13lX^5^3#*@s2v>-S4zMk@zuo?JPE2wRXDTEs7nl>_$km*}HGSma|C>tK_T_e;dv z?bUh3I`G*d&Bce{TdycQ^xa>a{Ubjd*1rp zuY;;jSn;IF!lv|0Nj&aW0iHYf&*v-kbAtbTXuXaU#iRL_Y8~5LM)8FqXpqa4VIo5U zwH6r?>XiBodRU;ukq4n0IW?zk5 z#r0;s?GbV71U`SOxHVtAG9H3dp7_;8o`YS;d#hugQz5V2F7B9#t@ZlrF?5*Nzf=?K zU!*=59m3f{PwT*mr}1Nd*56iu4{v!+T&MDRJ0NFU9|2yOF0~_1!49Q<4}No zpDGf$omhzs+0=BR?~dE2V?WsJ`u(DJZs-517uQ+*rRUL0k_SV?U2%gT?jkY6kWjIB z52Egp7}VXT6z$ef5%2htehRDP5HrCB<{Kp(y!pFTY<`{8VXpV^*a*knZS@Uy9 zx}%0x^VR3ETyuxWa)HaOV^@t}trtBdevL7qRlM0}=yf%;l7D#tPjrXKa*6pNYhGif zKdrdPa}={Ari7-6XIO}wM=?!e@@w-1JmzopDVmEQR6#hW3SduP7UMaA5B&j;RP5aI zqZl|ge)cDfV;4EisO^ubE6h!N4!=!U<%_TC?<i~QEf2HvkJe?P@| zT|peSHVs#oPkudaZ4>Jiu;DQ@^THI&9acHDHT~#(=V6HJTN&6EN2XVhztwB(?_CP; z+4tKRrxYBLAnZa_`>wIlvl+%o1!(QgcE+a)%d!l+T}+%<>lSiFt_6@wahmmIo@ncuE(GA3pe`Om*Dl%LT>2G|iz#GpRU?BPk zI{F|ZN2Zik$Aoc)()nDZpa8o&iEkKUjMNa;Jde^^?mH(2Q^T0xb3HGNTRbD*L_E$U+dcYng%M_DFHP$^cn@BoD4J{2DA=?fnM0M8o-k zN?fH;BVsc>7sTePDz<%J3K`F6(#(tx!s4N!Dg5~jV8X(})NK-)U}0(uq^l>0nfS=` zHlQM3Qekes+G-$aGEqjsutmOD@mj`C$0cx;9N`K4#GeeeCM^XqeW@Hw-zzGt-FMF# zh0e_(7DhbUBkWPo=z zoA3F=Xsb~UH_48r2Z0?6nr?U&KYtM~Bn=drfqnC$8Hw);p6(@MwJ;u+j5aYMCa9?$ zWQDCCIY3Pf&*R5`GFoVKLW6jVcCp*9f_NDWnBcVTQuj8^ z307oy3H68|+R_t2wDrV@mLq~?Swfh?&pDmH;Yb%>g)2;^1S6}jtgd%)UdG@_4wr%U z;ltP^+!6HGKC=9u?LZZFl50e4TYAR-bo7C3yOdwd^gV_SSk|K*OEx6Bn1f- z^j937M57DrSx8g(kv`7fAtk?(__Nf>7y1dpYQFDL>}uYc?{jE!SM%85tl{z6Z9rodUm)I1ontsNT&shbEWj#QG(T58XE$@L7i}5mJ{dJMhyOb8QKkN{OwBLRSh=e;u>&9VHNdtzV?Da znOz0Fu!{4leRqo>kFZ2y*1oO+GL!oAJ#x7=F$)@uq^Q$}X?*CG%5T z#28KG=eGLBh_e+s)ry;1^ND}*wbERK1B2#`BdkjHIq`^1PHZ!YwB)tV`m)5)5Dhzg zvoxhW@3qI*OM_jTx6g+?JU8&o^1he7CtJMF z*ObrPLvPxNZ#^Pf+L6C>Ox)dppL-KS$3;Hh&=8oZZ2J*sQ(n^GbBcrv%ik5Xv#_KC zThs;9Cy3_y4H`$S)|xxgMMwsQ>=}q{A9Gq-{YPTD_2$MWzEK*s;S^l(!F2ZIf4b-c ziL?iQ?`vQG1cb?aKlr-BEDiZVyi#9&?@!{DviXz0__}B=+T1fZ)V7PpAG`<>>|f21 z;w;2bin&{4ar#9w3p8Pvoa*=oa@hpML?-eK)4}gcG_gr^DEq)^_5@gIxXdhs^oF?1 z-bh-x)MXxo73$?SR{@&*i`!fSBh=Glj<74k_zIu-t52GY8NrE&99`4-r?%!d!frg+ z&a4*Zs(B}Kli(KZ$uz-cA&0E65@+fuHZz$yN>x8E?P~T-QpU2qIc6UvkA0DY#*E?3 z2bhoBVLJXc)SP1~x3G*`(5i{N;1+Wh92NG`B(opnC}64BO)0#9oc#_+VrU802Ww8j#` z(;h*H?QEqPMTl)d6@I>j?CUBsqAXx5)|=}k<)7d**#H5jMdk@j1gDWO4yQ%t%AP`I zYbp_Nni`qIwpW`EOFxb9Gb$teEHay#E7JT!*hnXc+|EiuW;HP7e}~LUX$~bwEq)Y< zoJES6H)8HmirB%3Ss{%w1qMmEpcB+=Fl{1_CrjL5W+d&_TB>K&TIGi(r(`D2a(mRv zR_rz_Y->}ZN&MLjCZb2=AP_u8Y9u@sMdIL%W`D%~c5F0nLhSGIMicN@lve))kBQ3v z4UeTMi7f9SbRm7V2^}Myada$7pKe0ONI@ey=8DoD6^icftwXP@u_uZgO8ab6l~^7YN9`+ zJH6RS4|%$}P1kbg8D}=)u=m@3Q<4xw_{vkYFxpJK6QMIunI_VCzNxvQ^rfe;4m}71 z4BPTj+3!!ApVBcq5=TQ>Dr-FJZ>u{!nk4qDK8Z{2Yb^tlzVB=4|+AOy6lfAx#~DYV>#9G^|5;HFVJGI|X3$BHo}}=IN61J}v;)h0-du>pLtCCV zPe}YuMuJ404cP0VMsHx3Uce;F5Pe6JOg0hlw7YY(E%m54Y?Gw4*(KUW2q{#k)SInD zcJyiPfl&gBX$DeNN$81^8Kw^^q-pG~3T$jx7A3EhKB!ceKB!R~baW6ORQRlt4qjg zxe4*UnXj2uGP@5&kLZT3%-k+F&`|J*T9iLRzekPU$Oa$5?>v;feZ<@>F+mC*(QSLS zn9F5ckn-=64EcA*sL?^J3A0XarXg%w6vk*i(Z1}1zr!SDvsG`wB+-h2OcE)8Nvf-FFn0-B$nJMcAl)#2 zF{JzQS@S>k%tQ-V+I!|(Fn|}|Gq=M422Vlntt|62ro&_!YvLG>%c9xwJu}fs{G&6N zY;q$i0owA(v}YzdkzG7%o`hXL@PYY&jI8Ix1*gEp{r{)LPI&$nY^Ie2Ow_PxQfZ2NRbMteALd(7|U!+i|)^BYWBoq6@^t1en z=4M9`R#{qh`79~2eQ7Rnz^im<1Ix>#XycdW8o3xDJevj#5{`f9UKpjt2z@byRAd}K zp;cZo>n}C6)q?Fis7b=j34IgN6KwV`?G1LW{zi#ZGLk9=bax`bXUmG>3ZQkZ_xo3{ zZXUmbpWNxs0%Ik+8%mumE2dVsISO~F&SVkeceG4u#t%L0AMWx@ZIU$1Rh{^@-LFpF z=gS|VY88F^@R0}o&x^l$^C?gGUsT<_JfP<2&NM5xn#t;yRokeNSA6@xU2e*|)Fy-Pl8f=MPou8~hzq&-l0!Gp1x5@A$E} zX)G`OR9y4;(F?eG#>A_7WmV7UxG3p*t&`&Nl$h3Ac*pOBwu!v-f5i1>e)K1ybwa$V zKc+Q5E^2zc)@gBhdQ58p@2FbPHkFs!#B~Zknt-e4)_B#lnAXX0QR?+ti{tW)m{tJs zrqEW%Oa0myG4fHzv*2c4!F8zLABB{sbY>x)LkY9-fi&)-Vl53 zZWgoSGqkz4^>4T5PFX&x;x50PU%uIDt+GS8RzDyyS97h~#eraj!!7K2UciGRtE}se!nA5l)=~uFr$g=Sjir>l3{}}j%)gJTP_{+ssN5!)^expO& z&{p-7#6^iQ(Oq#-f^1ezk@W)3wtTTjJZc5Mc$>H`=P9$rwTzFLgR7@Bew!ZCv@9<2 z3K422#Wb$5oc5FMC!BXP?;7jRz>H{)jzY835rs_$E--a_M zMK30m+vBq4jWSzY)=a9e-(aOBq6?ZaYrW0miI=yP_jtUh9+%!?LvAs&Xom>knD4h=9YZhpnOFKu!B=R-wp)HT$SFR`vL#(n%Fr z{tnD|&H9FwsD7Ope^?h-?Fp+;G3wv6;LE4-kteNW0pS$=!^%|w;XL`C^|}oZ&iu0$ zPPDW*|Io_RJS`g=ImeG3MmJkO@k2uc#Udav;u8yN_!fNUXSjNrQ@wQyD(CreM&mcu zuRQId^^Mp-?)b`DB?w-X-&h@NfMa%Fwr*2B8F9TiQtzJctzvAA{LOL$_n;?{1US&? zE4TwVP|m-_6I=1^zgaFD_)t5Pz-*QEcL&^9ZpH8Lbd2jBa-AF?&S^&gn%eUmx45?B zk0k}ZwFABhHw|o10pFwt#I-Bmof3$s2+9v?ChBGK?JWX@F4#MzL*TsTf!W0%Twho< z)<06ryDwSMWWU9~$qX#C1Jfz!fo1{IIn)a`dwNpkM{}wc`$r?f=#$(M+By*2uh3_ z9XOEy8tA{xKRrdf!~mW%OGSx z@Vfbd>O|PIK1%{KRnPE7eY4Z?!CD`fEX>=_OHl-fX>ysUB8_eJ>Plz2%21^*D|{w! ziod-w(AMr5+j#%LbPqqgEif1~%F*R{eCWEsSi#7ORtlA)`Gxg?VgVeD3<}jF`7_}_ zl?~=AYhz%XFkkmQBkf3{&L;w@uw0%e17LdIN}upqYpryovcK8t#U6S(Pz4~T`7?nW8_=UE zb%9AL0uj4*1}+QsbnTwNb9Vc@XN$|H^YQh8FKqU?>t>Ws;{y%^5G5<%+YSbLw}S_fBA$IkTnqW;tATqG5Gzhnl2JaFFVMtw4nJlW z*E@K72d_`0 zq*=(isjvu-HBDZw!_=gPoT~mWAbpl4 diff --git a/resources/database/vscp-hashtypeevents.sqlite3 b/resources/database/vscp-hashtypeevents.sqlite3 index b1628d11ad25d780a0481d9c05f7faa779d8e0a1..941db677767a136580b214263b934412d5aa3652 100644 GIT binary patch delta 43557 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

3)C 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 diff --git a/src/vscp/common/vscp-bootdevice-pic1.cpp b/src/vscp/common/vscp-bootdevice-pic1.cpp index ca77139f2..909347b88 100644 --- a/src/vscp/common/vscp-bootdevice-pic1.cpp +++ b/src/vscp/common/vscp-bootdevice-pic1.cpp @@ -40,9 +40,9 @@ // #include #include +#include #include -#include -#include +#include /////////////////////////////////////////////////////////////////////////////// // Constructor @@ -228,14 +228,14 @@ CBootDevice_PIC1::deviceInfo(void) // int -CBootDevice_PIC1::deviceInit(cguid& ourguid, uint16_t devicecode, bool bAbortOnFirmwareCodeFail) +CBootDevice_PIC1::deviceInit(cguid &ourguid, uint16_t devicecode, bool bAbortOnFirmwareCodeFail) { int rv; // Save our local GUID m_ourguid = ourguid; - // Save Firmware device code + // Save Firmware device code m_firmwaredeviceCode = devicecode; /* @@ -359,7 +359,7 @@ CBootDevice_PIC1::deviceInit(cguid& ourguid, uint16_t devicecode, bool bAbortOnF // Set device in boot mode cguid guid; m_stdRegs.getGUID(guid); - msg.data[0] = (uint8_t)m_nodeid; // Nickname to read register from + msg.data[0] = (uint8_t) m_nodeid; // Nickname to read register from msg.data[1] = VSCP_BOOTLOADER_PIC1; // VSCP PIC1 bootloader algorithm msg.data[2] = guid.getAt(0); msg.data[3] = guid.getAt(3); @@ -566,7 +566,7 @@ int CBootDevice_PIC1::writeDeviceControlRegs(uint32_t addr, uint8_t flags, uint8_t cmd, uint8_t cmdData0, uint8_t cmdData1) { int rv; - //vscpEventEx event; + // vscpEventEx event; canalMsg msg; // Save the internal addresss @@ -640,7 +640,7 @@ CBootDevice_PIC1::checkResponseLevel1(uint32_t response_id) // Response received from all - return success spdlog::debug("checkResponseLevel1: RECEIVE OK"); if (nullptr != m_statusCallback) { - //m_statusCallback(-1, "checkResponseLevel1: Response received OK."); + // m_statusCallback(-1, "checkResponseLevel1: Response received OK."); } return VSCP_ERROR_SUCCESS; } @@ -688,7 +688,7 @@ CBootDevice_PIC1::checkResponseLevel2(uint32_t id) // Response received - return success spdlog::debug("checkResponseLevel2: RECEIVE OK"); if (nullptr != m_statusCallback) { - //m_statusCallback(-1, "checkResponseLevel2: Response received OK."); + // m_statusCallback(-1, "checkResponseLevel2: Response received OK."); } return VSCP_ERROR_SUCCESS; } @@ -855,7 +855,7 @@ CBootDevice_PIC1::writeFirmwareBlock(uint32_t start, uint32_t end) } // Start at beginning - paddr += minAddr-start; + paddr += minAddr - start; for (uint32_t blk = 0; blk < nPackets; blk++) { spdlog::debug("Loading flash on remote device... block={0} {1:X}", blk, blk * 8); @@ -865,11 +865,11 @@ CBootDevice_PIC1::writeFirmwareBlock(uint32_t start, uint32_t end) } paddr += 8; if (nullptr != m_statusCallback) { - m_statusCallback((100 * blk) / nPackets, ""/*vscp_str_format("blk %d.", blk).c_str()*/); + m_statusCallback((100 * blk) / nPackets, "" /*vscp_str_format("blk %d.", blk).c_str()*/); } } // for - } // code + } // code delete[] pbuf; return VSCP_ERROR_SUCCESS; @@ -882,18 +882,18 @@ CBootDevice_PIC1::writeFirmwareBlock(uint32_t start, uint32_t end) int CBootDevice_PIC1::deviceLoad(std::function statusCallback, bool bAbortOnFirmwareCodeFail) { - //bool bRun = true; + // bool bRun = true; int rv; - m_checksum = 0; - //uint32_t progress = 0; + m_checksum = 0; + // uint32_t progress = 0; uint32_t addr = 0; std::string strStatus; - //uint8_t pbuf[BUFFER_SIZE_CODE]; - //uint32_t nPackets; - // uint32_t minAddr; - // uint32_t maxAddr; + // uint8_t pbuf[BUFFER_SIZE_CODE]; + // uint32_t nPackets; + // uint32_t minAddr; + // uint32_t maxAddr; if (nullptr != m_statusCallback) { m_statusCallback(0, "Starting firmware download"); diff --git a/src/vscp/common/vscp-bootdevice-pic1.h b/src/vscp/common/vscp-bootdevice-pic1.h index aef815f98..d84d49ccf 100644 --- a/src/vscp/common/vscp-bootdevice-pic1.h +++ b/src/vscp/common/vscp-bootdevice-pic1.h @@ -33,8 +33,8 @@ #pragma once -#include "vscp.h" #include "vscp-bootdevice.h" +#include "vscp.h" #include @@ -127,8 +127,6 @@ class CBootDevice_PIC1 : public CBootDevice { MEM_TYPE_USERID // 0x200000 }; - - // flags // CONTROL is defined as follows // @@ -186,7 +184,7 @@ class CBootDevice_PIC1 : public CBootDevice { MDF is not the same as the one read from the remote device. @return VSCP_ERROR_SUCCESS on success. */ - int deviceInit(cguid& ourguid, uint16_t devicecode, bool bAbortOnFirmwareCodeFail = false); + int deviceInit(cguid &ourguid, uint16_t devicecode, bool bAbortOnFirmwareCodeFail = false); /*! Write a boot block to the device @@ -202,7 +200,8 @@ class CBootDevice_PIC1 : public CBootDevice { and status message (const char *) @return VSCP_ERROR_SUCCESS on success. */ - int deviceLoad(std::function statusCallback = nullptr, bool bAbortOnFirmwareCodeFail = false); + int deviceLoad(std::function statusCallback = nullptr, + bool bAbortOnFirmwareCodeFail = false); /*! Restart remote device diff --git a/src/vscp/common/vscp-bootdevice.cpp b/src/vscp/common/vscp-bootdevice.cpp index 9a4283b83..5510d31f3 100644 --- a/src/vscp/common/vscp-bootdevice.cpp +++ b/src/vscp/common/vscp-bootdevice.cpp @@ -55,9 +55,9 @@ #include #include +#include #include -#include -#include +#include /////////////////////////////////////////////////////////////////////////////// // Ctor @@ -104,9 +104,9 @@ CBootDevice::CBootDevice(CVscpClient *pclient, m_guid.clear(); m_guid.setNicknameID(nodeid); m_guidif.clear(); - m_timeout = timeout; - m_statusCallback = statusCallback; - m_startAddr = 0; // Boot start + m_timeout = timeout; + m_statusCallback = statusCallback; + m_startAddr = 0; // Boot start m_firmwaredeviceCode = 0; } @@ -162,8 +162,8 @@ int CBootDevice::loadIntelHexFile(const std::string &path) { char szline[2048]; - //char buf[16]; - //char *endptr; + // char buf[16]; + // char *endptr; std::ifstream hexfile; uint16_t lowaddr = 0; // Low part of address uint16_t highaddr = 0; // High part if address diff --git a/src/vscp/common/vscp-bootdevice.h b/src/vscp/common/vscp-bootdevice.h index b7aaada77..4e35e3741 100644 --- a/src/vscp/common/vscp-bootdevice.h +++ b/src/vscp/common/vscp-bootdevice.h @@ -274,6 +274,8 @@ class CBootDevice { The device code tell the type of hardware of the remote device Must/should be the same as for the firmware we try to load. + This code is set in devicInit and is compared with the code in the device + Some (old) devices will have this code set to 0 in this cae no check should be performed. */ diff --git a/src/vscp/common/vscp-class.h b/src/vscp/common/vscp-class.h index 6f904ba6f..c40801ff4 100644 --- a/src/vscp/common/vscp-class.h +++ b/src/vscp/common/vscp-class.h @@ -47,7 +47,7 @@ !!!!!!!!!!!!!!!!!!!! W A R N I N G !!!!!!!!!!!!!!!!!!!! This file is auto-generated see https://github.com/grodansparadis/vscp-classes - Generated: 2024-11-05 21:03:46.717561 + Generated: 2024-12-09 21:43:36.673255 */ #ifndef VSCP_CLASS_H diff --git a/src/vscp/common/vscp-hashclass.h b/src/vscp/common/vscp-hashclass.h index 7d5a80341..eed28b99b 100644 --- a/src/vscp/common/vscp-hashclass.h +++ b/src/vscp/common/vscp-hashclass.h @@ -2,7 +2,7 @@ !!!!!!!!!!!!!!!!!!!! W A R N I N G !!!!!!!!!!!!!!!!!!!! This file is auto-generated see https://github.com/grodansparadis/vscp-classes - Generated: 2024-11-05 21:03:50.106254 + Generated: 2024-12-09 21:43:37.667848 */ m_hashClass[ 0 ] = _("CLASS1_PROTOCOL"); diff --git a/src/vscp/common/vscp-hashtype.h b/src/vscp/common/vscp-hashtype.h index d189b3edb..edb2a8fb1 100644 --- a/src/vscp/common/vscp-hashtype.h +++ b/src/vscp/common/vscp-hashtype.h @@ -2,7 +2,7 @@ !!!!!!!!!!!!!!!!!!!! W A R N I N G !!!!!!!!!!!!!!!!!!!! This file is auto-generated see https://github.com/grodansparadis/vscp-classes - Generated: 2024-11-05 21:03:51.292883 + Generated: 2024-12-09 21:43:38.327870 */ @@ -51,8 +51,11 @@ m_hashType[ MAKE_CLASSTYPE_LONG(0,41) ] = _("VSCP_TYPE_PROTOCOL_GET_EVENT_INTEREST_RESPONSE"); m_hashType[ MAKE_CLASSTYPE_LONG(0,48) ] = _("VSCP_TYPE_PROTOCOL_ACTIVATE_NEW_IMAGE_ACK"); m_hashType[ MAKE_CLASSTYPE_LONG(0,49) ] = _("VSCP_TYPE_PROTOCOL_ACTIVATE_NEW_IMAGE_NACK"); - m_hashType[ MAKE_CLASSTYPE_LONG(0,50) ] = _("VSCP_TYPE_PROTOCOL_START_BLOCK_ACK"); + m_hashType[ MAKE_CLASSTYPE_LONG(0,50) ] = _("VSCP_TYPE_PROTOCOL_START_BLOCK_ACK "); m_hashType[ MAKE_CLASSTYPE_LONG(0,51) ] = _("VSCP_TYPE_PROTOCOL_START_BLOCK_NACK"); + m_hashType[ MAKE_CLASSTYPE_LONG(0,52) ] = _("VSCP_TYPE_PROTOCOL_BLOCK_CHUNK_ACK "); + m_hashType[ MAKE_CLASSTYPE_LONG(0,53) ] = _("VSCP_TYPE_PROTOCOL_BLOCK_CHUNK_NACK"); + m_hashType[ MAKE_CLASSTYPE_LONG(0,54) ] = _("VSCP_TYPE_PROTOCOL_BOOT_LOADER_CHECK"); // CLASS1.ALARM = 1 - Alarm functionality m_hashType[ MAKE_CLASSTYPE_LONG(1,0) ] = _("VSCP_TYPE_ALARM_GENERAL"); @@ -1103,8 +1106,11 @@ m_hashType[ MAKE_CLASSTYPE_LONG(512,41) ] = _("VSCP_TYPE_PROTOCOL_GET_EVENT_INTEREST_RESPONSE"); m_hashType[ MAKE_CLASSTYPE_LONG(512,48) ] = _("VSCP_TYPE_PROTOCOL_ACTIVATE_NEW_IMAGE_ACK"); m_hashType[ MAKE_CLASSTYPE_LONG(512,49) ] = _("VSCP_TYPE_PROTOCOL_ACTIVATE_NEW_IMAGE_NACK"); - m_hashType[ MAKE_CLASSTYPE_LONG(512,50) ] = _("VSCP_TYPE_PROTOCOL_START_BLOCK_ACK"); + m_hashType[ MAKE_CLASSTYPE_LONG(512,50) ] = _("VSCP_TYPE_PROTOCOL_START_BLOCK_ACK "); m_hashType[ MAKE_CLASSTYPE_LONG(512,51) ] = _("VSCP_TYPE_PROTOCOL_START_BLOCK_NACK"); + m_hashType[ MAKE_CLASSTYPE_LONG(512,52) ] = _("VSCP_TYPE_PROTOCOL_BLOCK_CHUNK_ACK "); + m_hashType[ MAKE_CLASSTYPE_LONG(512,53) ] = _("VSCP_TYPE_PROTOCOL_BLOCK_CHUNK_NACK"); + m_hashType[ MAKE_CLASSTYPE_LONG(512,54) ] = _("VSCP_TYPE_PROTOCOL_BOOT_LOADER_CHECK"); // CLASS2.LEVEL1.ALARM = 513 - Class2 Level I Alarm // Event types is the same as CLASS1.ALARM = 1 - Alarm functionality diff --git a/src/vscp/common/vscp-type.h b/src/vscp/common/vscp-type.h index e3ae202de..a21d62f37 100644 --- a/src/vscp/common/vscp-type.h +++ b/src/vscp/common/vscp-type.h @@ -48,7 +48,7 @@ !!!!!!!!!!!!!!!!!!!! W A R N I N G !!!!!!!!!!!!!!!!!!!! This file is auto-generated see https://github.com/grodansparadis/vscp-classes - Generated: 2024-11-05 21:03:48.911038 + Generated: 2024-12-09 21:43:37.152426 */ #ifndef VSCP_TYPE_H @@ -101,8 +101,11 @@ #define VSCP_TYPE_PROTOCOL_GET_EVENT_INTEREST_RESPONSE 41 /* Get event interest response. */ #define VSCP_TYPE_PROTOCOL_ACTIVATE_NEW_IMAGE_ACK 48 /* Activate new image ACK. */ #define VSCP_TYPE_PROTOCOL_ACTIVATE_NEW_IMAGE_NACK 49 /* Activate new image NACK. */ -#define VSCP_TYPE_PROTOCOL_START_BLOCK_ACK 50 /* Block data transfer ACK. */ -#define VSCP_TYPE_PROTOCOL_START_BLOCK_NACK 51 /* Block data transfer NACK. */ +#define VSCP_TYPE_PROTOCOL_START_BLOCK_ACK 50 /* Start Block ACK. */ +#define VSCP_TYPE_PROTOCOL_START_BLOCK_NACK 51 /* Start Block NACK. */ +#define VSCP_TYPE_PROTOCOL_BLOCK_CHUNK_ACK 52 /* Block Data Chunk ACK. */ +#define VSCP_TYPE_PROTOCOL_BLOCK_CHUNK_NACK 53 /* Block Data Chunk NACK. */ +#define VSCP_TYPE_PROTOCOL_BOOT_LOADER_CHECK 54 /* Bootloader CHECK. */ /* CLASS1.ALARM = 1 - Alarm functionality */ #define VSCP_TYPE_ALARM_GENERAL 0 /* General event */ diff --git a/src/vscp/common/vscp.h b/src/vscp/common/vscp.h index bf51f6dfe..2d426e27e 100644 --- a/src/vscp/common/vscp.h +++ b/src/vscp/common/vscp.h @@ -656,7 +656,9 @@ struct vscpMyNode { #define VSCP_ERROR_SIZE 64 /* The size is wring */ #define VSCP_ERROR_NACK 65 /* NACK received */ #define VSCP_ERROR_READ_ERROR 66 /* Error when reading data */ -#define VSCP_ERROR_READ 66 /* Error when reading data */ +#define VSCP_ERROR_READ 66 /* DUPLICATE FOR CONVENIENCE! Error when reading data */ +#define VSCP_ERROR_INVALID_CHECKSUM 67 /* Checksum is not correct */ +#define VSCP_ERROR_INTERFACE 68 /* Interface error (not defined etc) */ /*! HLO (High Level Object) type (bits 7,6,5,4) diff --git a/src/vscp/common/vscphelper.h b/src/vscp/common/vscphelper.h index f9ac520f5..95e2d0ef3 100644 --- a/src/vscp/common/vscphelper.h +++ b/src/vscp/common/vscphelper.h @@ -28,7 +28,7 @@ /*! \file vscphelper.h \brief The vscphelper file contains often used functionality when - working with VSCP. \details vscphealper have common used functionality to do + working with VSCP. \details vscphelper have common used functionality to do things in the VSCP world. It can be seen as the main toolbox for the VSCP programmer. */