From 58a9b2996d85ee5f7fcfecb6c13193444bf3cdcd Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 26 Dec 2021 11:56:37 +0100 Subject: [PATCH] Remote input/sink implemented remote control. Implements #1074 --- doc/img/RemoteInput_plugin.png | Bin 33722 -> 43903 bytes doc/img/RemoteInput_plugin.xcf | Bin 127850 -> 145817 bytes plugins/samplesource/remoteinput/readme.md | 112 +++++++++++------- .../samplesource/remoteinput/remoteinput.cpp | 38 +++--- .../samplesource/remoteinput/remoteinput.h | 2 - .../remoteinput/remoteinputgui.cpp | 24 ++-- .../samplesource/remoteinput/remoteinputgui.h | 2 + .../remoteinput/remoteinputgui.ui | 23 +--- .../remoteinput/remoteinputudphandler.cpp | 53 ++++----- .../remoteinput/remoteinputudphandler.h | 17 ++- 10 files changed, 143 insertions(+), 128 deletions(-) diff --git a/doc/img/RemoteInput_plugin.png b/doc/img/RemoteInput_plugin.png index 48159dad4cb862f9379db17342ee8f0252f7bcd5..eef18c16120d41d9634bf6b9476b8629813c39e0 100644 GIT binary patch literal 43903 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

|2y&zZ7gpXur1lB6Z$zAU&JN!XZQBjfp=+Q#E zaS9Ryg4L9lzm{8dd`GHkpFv1cu%d?QlRg%;O|a6Zuo)T|y@~!TcBlV55snD9mtac( zHe19wZM?VdFW-VK?yA)=kr50b-c6)WS;S4@vf|P)Lq&~tcfMJcF{SShf!%`3BKg|U z(KNp$J|n}gtV|rxpoc`{+%tx#G~pXJuE#m0WRB@wUzzgxWv*Syy2kLkA^TurnUUCM*c+gPTjT9s%CDouUopU+)-CNv+{??$DZZ;}cWYgqZm6t$jK?t(R$hC>rUvBFBcY6ZjP$tmzkh9q z)s3z#ebtj)y~w4riC2ZNrYrB(VGvuRjYk1zN8WhYJfA525bjj^CztD$R&0cU+Yu-x zI{Jf$lXTuRH8gl*R}#7ZTZvGQK-WnqNT8`9tkww0vhM~0NG~CU-Z(m%0Z4b@yDi`Y zX8@X4zPdMmjGr?&Gs*Cryj$Qh)1FUe-KSHm2ro_mAYjt)}xdf;E z^T58kA0umq52g{5lb=6|H7mnl_R^pyAu*9UMGw0OVI=^wG=nW5ZS9M??D3HN?9=F#?LOaivGx(WU< z*y;Ay68ca73o5gaoh=z(0^Wd!5L*SbW#AW|>f~88gYmJ?`8~gDYS=V(bRR2Zu2AR? z6~MZhnV;XZc<b z<|Y$Q(az3o3b#K*Tb!1E8A+d1)BAL)m2TZ9`6d0NAnP^hYucsL@)QIJ4dpvzZP=(P zaVR2M8G)eB2}lz1|76BooQb?Rsge*$2bSk4@r1+6Vw6$~@jDbdhzjzrGX|3|+h0M7 zu>zGy4MVJA?c%o%q~+)4~j(HOuI!aS6FhM0oth?G(k4Q97) z*&=o#gzK7uO}0hWAM9BKm+|?_m)+##H$dbOJk;rFn^z5X_EQSRHpad-r!2Cb-J_ne zi4>)@^<2>!ZB4z%8IpVTvEI^8v0uLibDZxEd()5KqHSkk7uq#C-)NHfDn6ctV8roc z2jE>B8_$48r}}fO-ee)6E&TNz*o?AVO_oFPV;~46?dSM8L#v4F+Kb#5XWIo%-(^6%``Y}O%v;keBgdTg+Q9zujC^dpZ58rQQq=NPZaAu3K2> zOkAD;mW_YBhJE4?XYx5m{6Zz zj_@ooVMn4so1Z7uE}hR_$}8L zx_io;L?Bk+oIk^i$}frdTJ?Iq7JenZk0Xgbs&jPpX${R=CT>mIf8BM^oRzJs z^5D5EUbI|WFK#lJT(Xx-KC!UI#zactPP;8bJP38J&PR=W*2JQ)E6fB`Fek&ML0|@3 zA3c-XlBrze?($}$=e#c0>YeRCFtYtuTF%+(cCik~!E!hoW5^Z~M~UC6|NGX;mc}fB zdzl$?Rd8dDIkYmjoJl%A$u=u=q_Td*=|?!f0yTq>$5xY#Ooe-xwGX{{pEey*xTFne&5$-{$1tR=k1sUjShhJpx|IuSNn(= z>a+w8saVxBL;6P|^fy1XKYeY7r}4E0M_p|#yOuCoI1F=PnmS7NFLEj#`K!E9=R!QK zvXhgDLIQ||qgnPZcR+h5k9{1fr8gVivHK;*qmm&N!2>upImsLp+@x?PkY)B)7caP; zSEE+vGi*5Ni0s-;khKhkWB@(Qe1?vt#WH z5dtK)Y~?O(A8agab=4^F zeRmpW%>YyV`1neX$pdy3=S(IoP&OpFlFN)+C@fYgth?_L*!l3aZV5(8FXZ5x5^>OA&;~o`0xKP zhEoOKA_U-hH`BHNC%OA0ZB?QQL$w3W7GToql3-b-&bLNB7Y`4d)j^#$xj?>~9@TbYNUGRgY25P1U^nV4$$wmeW>tVt7~v z`h#8Mp@cf1)G6xp}=Uxy0a9(f#R0 z@T~>T!uO}wVbr?=jS--qg^Um(62&!2-xJZ%57A=~ zMI4wY;_seRPdp3RK5zwJJZHFQglY}GScn4%w=zo4oy5=&!gzp5B19+^;DfvOwLJEL zys|{FGu(cP?1dDv@n>WcGol-&AqO{sgYeJlD)oveRMhGYHB=PQkDCMr

E>c)X?a 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 literal 33722 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 F{{!t(Bnkik literal 127850 zcmeFa2YeJo|3ALDyEFnC1x1W#XrZ?yfdo=6384$2Hz^4qL@CmXKvuCoJ}UO|2mw3# z*c$;Pil-<6JEEeZ(o{ft+TG3n{h9gf-Chbp9_1TSXdCz=i=5{CN zOuH_6!Gx=$=XL1VQPZ@bZ8)aELw^tAxBy2`5S+R=!qTCl1Ap~!IB+E3xS0JE?;;$> zaMYQMq}xuIF>TtU>2n}!6nJ6!tVvmOCQXcQF`jG8koYx1PFlV{~j zBpt*JVw}nLatXV+TkJ10)vO&Yhk!Cpu^Pgej9|(-||azIyhgIngq{#jm`9ktxrX zKU zo|z-Mqr8<6^5YOV8j(N6fQu@GgY*4kHdxoRXm8&RrPkxqy=-@PR&|4 zX%67Q8okTaDK&fPB&7RbDV$Q5d6XxX1m>xZK&MYX) zHxg^V7CFN~f#>FPO@-i!rpr_Go+DSG0<=~>fqCa_92 z3tyh50or&z3*OD2rg$3w}0^d6k4g<={H3X}PuoT1H+&%`T5%O{})(Ikcda z_B`*ZHNj9jG_lb^?#hrnvDzUurEBt5uFiw9XjR_Im5;B=%UeYOVOmgLEzJYbF9qcZ zUs$;2UXz!%#taOT;!3&*of)c$HMYDEmO?c5ij{e*Ls<;gYkGwh zhgKXp<(>UUKU-8gSVh2-a@Ylhh=+rP_lpP=7MN2HJ%^m*AflhdYbYZE2|Dw(N z+91TI!Wm7z`?(p;_o+;87qj;oLgmGS*x;Re0F93sTCe9_9afu*A)l$OWSfnr_l(9ZzbH*-=JsF2HPG+3Xcq`*W zjL$H>#rPrP*NpoZixk!lWvtKGoUx0-IHMjGr+6s1QUQd6o~mq2*eSbJst+&%j#tM8-fH$T8fdY83Hci`ur6C|M7GJ>r(aWq^i$>_5A$2+@Qm#o6dlG zdH(-UCsln8tmjlW)m6?jgtNVN9>yW28=(ebXSq`1@_b=4ADk!TPv*5eFB4Z-j|kM! zvw7I&!Km;b=)d;ic$51v8k3A>Kh0ybWxr{-ut7@`BU()|Xkq*Yp`@#A&^Exi)iY>2 z)(C^PBMjR34uOBMn5Kcb`d1sYbz9TJ=RdPv@VK>ZPcr~$hQV8RoT(2q^2pF5BTN~2 z!4>>ukkMfpYJat#3_BYRGWx83tC5#c2uU8nns@6KTOkATR0u0>qk~-~m#!(?vaJv* z_K+62mdD@aN6rgz7r3Y$ne+S2e8W^Nq=|$-HCIiumF+-_ttxF+pW0`tvd3ySnkJ^t zYCQW2WrGTo30bHDFSRq)Wo*LOi7}mVFyjQq*^J8=?_+#|@ioRxj9)0ctgga_gBdx!hO=4b z^cvpBGN;$@HI_NOhF`G!3*#|`m)jZZGB#1Don5<##yi&W4f)HDf&Om!-1P&Wfukcv z${hlZGqn~2&(8(V&OQP962m332`v!7i|>y66e99XtAU zanN;)jqehx`*jI_hn*FDAIi@BGi@mzgGKXvv35Gjm{ntafE$Xz#Q`8LWk5irz3BpeY@Sz|4UN8eq#5<8ch20F2*BY0I=}9-MDc zQL1)LxxRQ1ueNKR0hxpB{*!}n8dQk=XYndYv63r`D>;YAm^~BY{Q)7!UZ~8RlI)rz zQw*hBHOm23P-aFxBzd4z*4gqyw4k-Ne6b$!@}(`8kF(bX=ZiOyE@{@-^1W-}DO#JK zzi#7({QR{PfFdDfP`+4;LRp^=zfb8|m%k2$f*{VCa_%Jy7r6T8hMO6^VgrPZiNURV80Vc8V@9 zRoTC}qBWh1TmCMxoZhaLUj0S!Z!0h1BC3v=UE{h)lU=LZMP6(spfE;`9hASknH{r6 z>D!;j$jis=W0Xv;?;QABbXEEmeHceEUc%|v@mt2<7)uqlti^aK zV=Kn4jC~kKFaP>{X(_*8Lc-Vw}pjnDI`=|0rzpox-*} zmC>%hlH2kAu6EN|UdqUOZrZJ2`9;Qe7`HM0z<7w!s}N?(Up>tIv-Ipnpqck)@&D@Z zntuKBT4?n%n+F{BOc+_dqpp@qaq;VNHEFsbe{N0U)HAJde^R5GTb>;<=X;J-`vaeUZf%&{mS>Ce ze9yURzqM}E&*wA(3JK@_iEOPq^zn6fJodnGn7OSzUjYYhd}qGaUuXxO=HR;^z1IMQbsCN#n* zXIKu-TZOY%faZL8zYzD)Uf@pTfms&0$JoD*+1$@;!}7D*!wjnze!IYhu^b&9fWg>@ zO!`_JZti>br>FKx2V<`^?Q1r#i(H8M*s*n?>Z~tR;}C{mtt9F{drE)$cO9P*>y6qA zQ*Ltzn{v482gGZw!dkp6X82T|Pu;aq(qYBh{Ho8&pmK*5yTjP{bZ93Z6EC+2jrp$- zjeRVAdsM)i>7ZtSrKw$Msk~4}wviO+YCwXoX|Mgv{$o@uR?Mn@> zr?XEb99ZFmG;Guud=*+%NjHc}T1b?L7Q zU#CkumXjI#Gmd4P&bXBEF2)s%FEYNvxQ+1##zTx=h4JSxUe4H#k(X2x7AQI4HpYh; zpJjZTaWmr%g~>sXB9~_(mwjSW*2gk-XB@&fk#P>=O^o+5KFRnxMrgSd*RpY!{FN`osV*bYJpCDy~3W-+{Q5?&MT)TVSwzk=6p%q3JgJbL%kB#z8{=Yt1ZwekC=fs^?Nw zQ7C=jw%Oc>0HPHuNkF+)zGWJBK&9QRiVAS5(y&$_^5;fur*tZ< z9H%M`Yvm%pO6PAYjf*s{k!A(u%1Txm?%;2)d;df$E}r_BnzTM$5Bd2XM|B56v@fb! zR$P3Iu;R|*7T**eC!xUnmYPFKT1qR0(zRG|DQTwu^z0t2-@(oyTSwVKSe}!ziKd?H zBD*{&uGMeaNap#<#T2?cLpKD=hnN^H$ol zOL9=5*ow@tWGgJ)_7yhtZlyq^vei-O-LlaXf(ymx>a3!zgL`H%sd`?t_o+@U$BAJ$@nkKZ&U?iH zWPG9TawV5OxTEOk`y=_zs$xF?1{q-8bn8&zZVebwK`_TL#{`zt`^(AT}xjADO z#-5DB87DK&XS|j1A;xDI-(vib@oUC?j7191nRI{oV641hP+qnhfy<~N2ek`Dn}FlY z2e_vi{Hn0PYvf{HIhU?nh$~x;Gucghx^b=PUx;6ZaGk@|h4TWV4c3k>!2K(i$h+V? zDF3#xd4R!UoT()9X3a3&f-1}cTI>?J!A^y;fTgaGb(UK%@Gp8HzHb4{f6lpd%pc8G zQa;h*a?OAIdDTDj=44Hu{JFL(&|C_%=t4-o16MwS&F7~V*P1^0<&}v-aP=!-KVGg~ zfr$^(z3faUKF+khpK${*Pq3lP6rCUch>VKSe^*F5!4MNyf5_2HrAa2|vAA7cgp%`kZT&o%Xd z3!gB3v0_Q9mJ0FepOtwlNkc1=unhCUz968T-n;@`XjO<*EPdomm>>! zZ<0b}fZwyE5Le^(E!hP5LlLfYHu>JA5XkiYC9CaTrLhZ({U*F{Xur?alp>a8

33 zHBBV>1n-yMu;GXzOA_<^!qa8u=3NwAz2cXAuS4?86Mb1g0S4{dZTCr@p5i9xFeEZi zpf7nFvw-r8a&O>QB|$L6NEWJNuGTmfF>7gcSp;2&^>5%*zvMGLxv31yQ(>b%W!%Zg z<{C-9bKoD`L4^-?GG;Q4XS|NlV7!MhkMU*30>)1ncQGDTI7ERqB$DN5#tw`V8E<6F zW8{^|A$%W0N|k87%22?UrNmD|rKN2-M>dAS(P!itt9 zn<7|}_lvrUFrTIT|JWH<{6+P%>U!>PW2&v?hV4QtJF{AN=C$14l2wbQt47sWn>C=O zn$`CTGs7nPFcXm>i@T|ei_U5vRla}vCmOPysdukQhAi#C&BIaMAt?O_s9J_>=Ne(i zp2fA_F||-s=AUV-^5}d_j2Qql!{8m0Z0h}Mzad&kz$*6h(7kcnR$kh#AUx06^`?*7kk!=r;%Q+@9dMWiQfmDcVSj> z$%VePS&kp$D#EB1v z{10ooHIAXo7EoP=vTnIRTH}|S30e$ZZieGsD(sp#MxJ}R=E_RWfhv2b(q~U%8A$#tg=xjFTAWGTzMi0OM1PZ!o$Tzhd0OctYVd!HgF% zHdBZpbWJc)&t@LV4}wAtX%~pL0mqpSUe9cB9C*FlASae=kc&d(!g8G6A`q@z&4nfF zwJyLe9^`_a19Bpqkw#mrvPPm@lq(I$I#5cMu5|EQ^OOaYVe4JceW}tePz$fhgv6U$ z=?O?(AsdpG@+k0|l2)_Qe~#by^y|*0!)0Mk&nP^zc5>$Ju!0d8G+sX0D+&?fJF4Gi zPOq(5uSNb`%7tuO1(i%u{Xb;n(tVca*R#p(bgi0p{ePm79Y>>s8f0V#twMfoz){^H zY#p3iEh9UwMi|*=akY5r3>205XByHxx}VD5s*u5E7=)=$m?xB9Ev9e(&snQ5_@d=XkuISuwluPk|d%?k6QLa>zc z#3K|JSAW`p&l1Vxt6E1kzv*M5IR{{(sW;~W0@s_79XY39u0NMwmp11TtaAaUT1SqA zQM%t}0*gS=6DjWT8O#AfairMwYtdIr!vaqAZZgWt`bzb57Ui--Ow=CR3(B5fny zXCXrK9{skm0GxR9lJ>PP8uFu<&*3Q5|KK}8AJy{7#q|~z9zF5NBJ=9iSz@kf)MM7{ zYEuv1RAK#_@rhsZEf;h9y3Ve`=ChSKpLb8s|EQ94pqk0=;hV|rZ{}+%-poymUoif{ zcue6ezRs+=EH`27#F)-Fm~jH*Y{q4b_bHtHG~*$KbL13=rp;N(@&^j%@=U@!wyNiK zRQh?Ti~||77-upP_2X~ea>iARuQ0yL_!;9*j7JpC4`RH4u@PfO##F|Ej9H8`8E;@* z&bUe;MjQWsAKlRX+uCc9dF=v@su!0q_T~kwz;klL3sg!1DOrxwu>q{{BZZlgaGr0p zgZ+0tQd6$9VrxVB7g(_cl#VrVx}3bUED{t8txejT3gyj79rlMx9cR#G4XC z{v|7!(Hf^?Cd-$g1xC7wnr8d_U$f&s(e{$tuWFF(B|jc~9Xh<~+FtkoPW5cB*cxGb zoy7&tg}Jr3RCG{;G_+!wD4$RsOFHexgd#!K72n{ZHUG9 zQGI?|_zYq_tSLb+0HSp4S}h!YG&j?hN2_t;U+4_e#5Vdg4Sj8fmK*Jb$d5# z6)T*iM5ea7H5Tv&pe=>lObM%kn+vySelZ9iQ1Nh7yB02g7Hh|nr}!j{{n%5>;g$K2 zQT_?*pZt6kdu1>BUEIUg6r|_&_@q#+Ec4h)rvRwPcu? zV8unuC3mQ>TRvsv9kRDnvC}t~W|r`m%fCO*?aFc=#!-ydFfL-`>*PMFWMj9&8_;di z-wlb3QyA}OEKsKzncvS+RgVc z<}tp^Sitxx<1WU-3U5)M-4e-iG-C%wCu1h#c*g4(4aR#I^B7-dEKrD&k37qV-3T0P z)%qjAXd#2-bPShM$EmI5Qo4mOh%CqHEkT@Wi390Uc_Hn;*F-Y6#hw1jAl-3+TAFh> zO@Co7`DKnROL6{i>4qU)F7v<3nmPS? z5f~FWE7$(2Zf)hJ2I?3Z;#RR>Zf#|eh4fk~DuFYdEvS5AfD#L$13&xq`+XOoFrV@7 z5C6x+y|fCtt6(74Sp{35@&{n8z~s+GTzUYPp7wOjsmx;^_%MW**a?4^&_1B zgb%!$#!e7=dwaB;q7H$V>>`1q5&2ULxSB>kRU$n_4QD?yQ|E2P026t2W(>T(|Ht!@<{_Y@?*M7 z!w#*W*1#&>;2U(l`3B!kHNrfuVV@?ty&a0q{4;9~KZ@J?m;pdD4Bp$bO?~@JScdX& zXkKH0J<~g2Flp^`ze`D@p$ee-R6c}QI*l#@cKy}8bg%fCg* znOVe3qVn6vK#~Xc2jh!8F^GU~--Pm4dyr()m}W7)ul3;PyD@^l(Nor`C4a+*KK)~d zp3YUD0irMTAPe|vkN2_`>SH>{ul%TviI~WUDQVHJX-xB&W)#(WQPC8i4QfHjnYlw= zV@|OyTWss|!mg9wJ=)m6zM6|aK0ES_Q^Oe+g+wpt8h z5jSy_O?bc0=H!&@IdNa8KYn=I)#5%Du{`_z0rulz+I}f!0p)kw!nP6Tb$)?9s3hkK zP-pXywIdyUa`8nAK0Z?X%>&VVwd%|Z)HwPzn{IXKmnhuw_wVU`q5SgfzgMfU2evVO z%ec3abD+9gSNglt7zZ&j-`qWm3e-=pw8&f9&wta{&FtY5+SBI7%Z zoX`7yVEGWESK5NMm?_ylR_#)#wjN2H0U_8X=RrtVpjF&UE zV@zi3&p4KGI^$BtyBJq6zR38F!m~KCGe?l+M|h4IT4W~dcgx}bAO$S3Gx~sqif>IT zGBY>00H5o`Rq}Ba%i;fI1Pqcn@>e*_N_4^C*a{-R(4!`KU^42fus<3|j->=bYhV^^)zF+gO zb);%quWZ>q+!RG-{+VHrALbP#jD!NdUqf4E@%@@rYhe21!BAKkf=|rAID)@uRo=># zkDGgFVPwEdA^tDU;CGvA@a`s3VnGz%m6S>-eUUbgUg(5(60KO7x0>GLgvDiS>cz4z zlA!P6ti~@{&FigH*OS+lewbjDzToN98*j}Gw@6uT!1b?rs~0=bM`!4TPROHN564yU zGAN20xRDoE=O5~x;=?ppvW=Yb&i&aFL(l6w0U0}eyJ0pH2Lo5W;j9p zX4W0|+jo~EF(rwY@eZnIefbFxt7G!jILo?`h8Mi=8(jC&YQD117Y@gl}%jB$(^j6)eGG0tVYnehR}rx@R0bTNL#xQFqC z!e@dRFJf%Q7{{2wIFxY`<6Op@6;@&L)o!dc%xe^IRNNMb0Wa@Nt%wb@TuMVA4a;%r zj`et>Q_0tcey z!yz|1MP00{aL%4CupQ+F8;9B0fOBv%*BmzSAnofq-%>Bl1e)-5({iSXVS#zepw4A&5CX!3B;!AM2#YnDaaGq?A0X_`Hf?~FTe{Pzdy(< z4{k00m4%>bn?6)=HhsbPVHihp{b`dN=eAo482N! z9qi<^AJILl#KB;_bk61@Wxua$ue(RO#X*N&@;s{Cmq$c9y)1V7VR6u|7ta>QC+m8b zC!xAa+(jzSyW-z=UBtH4OZye=>?~Eor>E(9=?9*1x;R)%7YS|jlEvaV9a6aN9kivj zUYz>JuSq0_=w(xO9TY#d);+I_SvK8EDtLt0*-H21h7HA}&yMwFqGbL045V~-Em1b0Oa3R$&U6B@^@F&Py~X#6BRRU>X<0`VRNVP}yq4h0 zLqf{9&Da~Z9(DiW%5_)@>|CLoD-`{-YKm+^1-i&WD_9&V#QIu#$*hl#mh8Mg!J!v- ze_~h3$sPA5gz4@c$HXlT-RsG<>7HBB-o6p5!}X#EQPn>!65HZ!`pGMQ6T9Ag=b-pH zF;sVN5EQ*w98c8s`^5d{>nBHfPGsqN>Zjr%#N8zR8>{QdUy8@jhGvPwGV*WYT3uf$ zZa-i5ye96k>qVK~Lveb%TV$X`%o97&#*=p`UMze>#ysfluj_A#+2`q=-r~1lz4!%jhprzHePyB_;nXbe`?`$l6))KI zqD^Aj(l_3JZBZN=ZnpR$SU+;VcuLnF6K{3a^@LBwY%oce?@#vSbMEYf68S_Nb_nk` zy+U<-U}AHye)JCUlCHSiU;zeCw zF20!*pLpFb?s;H}PduZLBYBo*lejlr_iUhI_GF2#aQ6?2C-i=$$I@{VBfSUX^;^Vh z6oiVsNW72OPl{&{J3|}_)=ORyHz7s=e0#)5{h)Z)zP{`Sv19!mHoe3U+jKp?2lBl^ zJcJuRh|QUL$q!<*evilx*2{htQ}vVKg6^sK6%{#tAT6?gwYeA`LaM?LqTP5*UZS<%(H-t#+g3#!ji@gM?X zpBFpusBj)`WPx}R)ob`+QM}{ZQt{g$l*B@@3s<@gHTAO+u^|@0vr5Fy*Ixfw93Ekw z=Y3%oo>9+del98AxgrheEEGF&GdY`&6@PteEP{r-yt}0MhbMZXeB_113m59%TR%zC zz3ZQAsf*4R=$@gTvGCoJYj^s4F8jHr#g+bC(>m9*&NZ!bz1F#2tLFDwa!~kzUee{? zJBsiwG4%fFPySN+$Hp=64O@Glbl>y68tO%zKMYDjMw!=-os8^@AjLx9RsB2#K)KEo;`v_J2#4r zy53Lxk$|De8{%KOo-5wRupoA?7;&kN{Tn}_8&2|+bkQ;7fp@ytqU-O7MHum|77roD zV(}L8w@VDuUlPj@AwwM2^8xg>`h#gLuuIUa}dj@gp%6Q9G52 zWZfg;5j9Kf2#A^|9zfI$VzK_E$ileti0GXl+!*u>6Tfgo&)$UtZNGZ{5J?y}J%hIo z=p}E78})Am%B%EuF~BK`5PzWf)t@kiC9&^6h0#u)cu*$42+3#5pgtb ze$eY#i0F@Ri9_@U#A-zUSj^Bji|NRCY?(;Z-J%;ZK0$1!6BgSuO7<_*_1SyUFt}ML z)*=3GF;IU&+=}>p#P7PkOAJB$rQ$8lPwC!;`jCU8&_4|l`w*$SI39~p-)r#B7w_r% zTD%mV25fh6{Ib0ZlXoqSAS-nOp4;8xHC^xFIflU(LLPxgo+7%N3%Pl)}W91**^Q^e=&u!C>eUVLoxHMrg6l|Pprd}|O@$$T@J_YaxAitpudHCAC;H#71C{?=WUoCDPd{QJ2N`S*02?^W?On=*%QevkE^ zGycqYRN=>M6>g!$4g76cz<3)YZ_eEEEX%yPa|`El%MRA>XDn8TH8S~EcnM<*#(2hF zj3XGQFfL%cjqzc|XBppS+|0OxaX(|R!mVM9moTdrdeL*d1mj$!P{Wye9OCU$Y1%(Be1Eg!dpG~JvT_>?EIpP@{8YU1$<28Og6i< zRp(ni0dhfwd#da{O&!js4IIeB+4+qXU+;7_jht?ra+^!4ey_{v?z9T5eYtqC!fg7&>5nINBsJAt@e}rdd&6zNz z1`hvpWU>H9D30oE9BYX4EPvY$`UPJB@DTBnMk>tn0V5CBJU>)&4pg6HDgAeRjolNJ z{Cfw5$9`cvrVuo)y{C87Fi+RIMR3y~crj(vx@AZ^F#IOeuhvFLhahOpH0y&dH&m< zZnbHT-TTx>TNBrOyrH(%@YQd=ex!EdfukRCAYRmpgmLZ|{R5o)g-khkNJ(4m?FVhO z-k+{Luros2^hKDqWvsUGE-iHZt(t+snF>@VV|I*BJ%0GGdrNQa646A{#(tpPkI~$U zdo=Cog^?mk(}sOXr*dGxsVC%BSG=HUEro5@-rZkm_ur{$|G7!io?P5Qz>G=%old1d z@9wVxPCYJ9t$(zqR!3ay(DwUJJWpWj;fT-aLwFWPI|NVb2vYvX`D?4^957+eH_l2lHb*fDdDk<~0 zOY}c|=u}V4%7OY4rs_~D)S+ChSXCzMr=g0}8S#?w5lkN-Me6IBfY4pu6N#dYo{?sQ8f?Gu;~Yq_TQ#oxq0{g zHL=-;PkgRlvt!Th8!y$%5O4BcWb0KK&#oU>RiL|`)Kd@6(;r!@cR4mw&+=q6knwJH zA>O@ay!*E43789g_kN0}Cu0l1i7XZGo_7!rYwvQJ;=oJ!dd`R2zc})sjCbp2Uw+}v zR`G860P*hU{QaJKcu8XEb-M175pxb-smB&^#7X-R@ok&F7dP2?%$Hl^`ikEAltU}^ z`#;o|?uzYnZ_(5S@{VJ7-w`|UxJ}=Kf-2qpc!I7!@#~HiOHLZ2{y5ln7&ksu_Gkmc`}~(G(BIAxYB#>!|GIJKR|gMoy204`(dWDOuJ~%t z54RY1eRJUV!dq6HEct~49Wr5mJ69>MaX)D6+;YRsKfh&seCTH5r(bU}_Pk{L_@S}v zhfPMomj(x_lg)N+oCGm>_dIFbDV7_?OTQQ&7aGPVn+@ZO^|y(C8^-g$(Wx95aOw$p z)laq?#{I%}c<<5QjE_GsjBW23#^>+cFP0g`suOf71$vME7I5ludFsDPo-l3^|8f}n z{U_ck?lO!Qex(x;6ejP}Z09)1W_+{m;4)*U%P{g^wp`En;REBQT?NL5ow!RG7;rt0 zI(6B>jmDkZ4;|WmhxOFEb{sgc`6lC$6UUaRKy|96omcU&11bS^0*I&DIn|+a?VNb1 z=C<>5{rS26oXFhL&NU|YQy~xbR6D0SbgrG(+;&d$?plGK(ln)AZcv(jEc=TiKh3~8 z!umr8UrE4vcGm8VcK!H62ajz?*5lXg+Eviop_j(4-hZ$lH9|ier>7oW)M;8#Fa4vJ z;?s9L9;s`o4RY*WZfJ-4E(Be!__U<2&@F z-F1D%+c;%-mwR!F_v<-`x9$O5&!KJL+YDXrTN+uK9w!eaeFnYw4ZuFu+~ugOp7bla{ttWzHx zhdr7lLod)vzh0oHezzQ($|=`Jf5r%H)(`q#K!O;6h=n)m`oI!o9INqNcTbF6_FGqd z?SF8=-b>IH=$!rce4dh6xLV)za;(1SaD3d2PTlySXTrKyLs6m-Zh2l`u=m6lBXp-I zwUvDLtv=(Ju5T`JdrH37V^7!kb#Hk zf23FHYCv4O9ER&+2*%H9L|myaOc#&U(!Dem_P$!F4>2|%291Kf_g3mdj1Lfl#=qV> zD)k`-_AYyA2-B^^;?AbT!kigT^P*HTc|Ds2m>q1;jsqtdp37~E12qtdp37~E12qtdp37~E12 zqtdp37~E12qe4RnXd>rY#ksyBfauQk73f8()hc)t)w-#-Me7JyxGn5W+qCnxY=uEW z>z0moZRN~}XwgZ|jEJUHVX%JuiC>Rw9-!-Y?mfDFGEHcqpKcngAN#s{mzTEaGk?qM zbkouJXup1>u3vLNA2~tCP~b|^V~DXGd+tP2Oo=`77WVUXdu&H62TaEBL^Q>A#M^%A zPO~av=MeuT+_BGo*&Tzi_=QJgLh8bvH#gunLf*;a;Cz?szp%HE#zgo0*iWBSGJ=zz z)Sr?M)`i<%QqnyxZ{M+92Bq)IQdPHY(ZhBSEp(U+tyR(KW|6i+k$n1K=d`b3UO!FQFUfI z^Y+fMXFDngWAJn7hB&)qr=n~U!FK;QaO{FU2jvcQ+Xm49UEJ$5dkQFGD#>-FB7 z4s3noOG^ZA?$^jd-kUsVhME4v^OoS>uR1wYPuhML8ldAy@%&zxTyPX z+V$fz@p}AI`;WfaEmRivZk~xT3;U!0=<%OCs6X~uYU1W+RTMAHytqHUgNpm`tB>i2 z@WbB!tkt(K()9^P%qS>5_qu1P!2h^+gZ}!O*rYFW_3hW|`cRQd_j9RU#Pcgu=zpNl zd;EC3Y(t#>==SbOuLyb1crI#Ag^K-;``5>Q`|nN(Z@#R@KevD9P2O&l%oV!(>jhNk zMQ=ac4?l*`r_s+WuKSU1h9^$A*t;At^w<~P)9=bp%=qSC6eUXEqozpAg3tQ&m)#qB z>d70AA6n6gVptan*&k5u*ky|0#JNh22YRlOpR45OnEV`*|8tp~hAee7-Ev@6W0~%4 z)2e<`Z>zRgL}=4t(CCYrFp-whi3K5R02#BjxE&Z7E(AVW=&+?5lf{ zmwsnUJ}$0G{^9!M?$7`9^ZP?=$=;#z5v!|? z?b#CkHf?*>ALQxTt_`LsTerlsY1t-MyGi$^bg!T4?VeIg_oNJ*Q-85%&cGDJPM&zBFu-_u-lL zN#6NpK=I4p&z*Gby5A;;PV(+s;tQE)pXe=o+cxp<q&!{%6l`yNrn+i{Br!P4v!_ zXU?@xD0{f{t=n^K6HeZ8;`#~q9hp2qTyLM?ohyUqII@dwd3S%=7dK@Wd|=Bi`~Bb9 z2+j7+QK6w(r88eGo&E7i+kvuUk7bEP_ACyXZ5!{I@JNn*y!-gwZ@&{f-YXW`$9reX z(`MPn9r|JOjByiJpPatz$eeMrwoDo4US=QXoh5^3+Q%NecH_a5CqB&`JND7t`*%Mw zcI>8-XKiD>GgWv4(|28iG2ZK>ZbpNvyfdV4dV|s4>F{|{Cr+t9$}?pm{O+Va6Q*7? z%{_HO-(N1Q3X7(nf4+{x{Q2i7_|2bx z((eq-pMPG1-#>;!roTGYmp_t%BGImRN{n{J|6hLpmVN<1M|FPzV8gkVKkpxYA;>HQ zyVB7Pb^HY#9L+eHakfMynCH-YGdX_k*HqADhQe0rhoeDB>y(_S9!5}RcO{Q)s&I<> zVPnvB-za%WCxy2?p>X*ig^&NJ@M-++3V%T_WGZ}Jy-_mg^`Dgd&b10ZyYcU61G(cVQDxT*nB~r#PB;TTHhZK@_K66K|qM+SK5f z;#U2pVKPulf-*@eyN9==Sbjy1@HSH6Xd+r;!M-(;QZajla0bz4Wb+w>@ty zZEZIL`-XQk1NFB&AzqK?E!`J*Wq7PF@NI91@Oa<$2M!4DTy@~U@c3#54hm1G`pm)M zU8@cp65j1pfr-Ar3imlAB(Y?|n|Kdh6@@f3IH~wPuMiZWLh%lBBp1yQVhi3@XL%aK z9VtaWitXts(E6X`2)pyd6d@Kl@&22D2S3uDdi+6A)+;qt*DvV$sh}@(kl7=`E%f1#n(-M`?t?U}F_+$zRgM+)eZ}kX4 z{y`xLo>8yt#ycFxeRgEu-Pm^b&M&(D(#p#amKoj!Z(vC}a-%--1m6Bra{X>!5Gqfw z?oGoU?!%v9+P}x%`7%gP*?9-ubN}$TaQ$$v6N7a9y=CKMQ2f?M8z2N#GE6_*a|d3f zn7dh*L95oSxm1Q=vi6Trdv3z=!M;8!=t$9W3hEcBd&caag1v;d9NN40fO~JoOB;q9 z8%yc+3GaZdi3z)NuwJh&q~EwZneu>UgDlPx_7Z{Zf@YwepHG23!`sr`_XuxIfVN1G z8XiNC65fO$F+7?eA+({l@i45?Xtgrwr%g$Xg7l;WNfB*YT}D$1n5=Hos$Nr4iGlS- zi%jN>fzy^h6#20Gq2<#u>5^^18NITzQe$*|^z!>Jyu)+<^3kO4fQH_Dm@OOCd-Ox~ z?(jY&wK_PXMas}Ii2N{=4@+g7uj_Ti5k0{X z3tXEr6i4&`M+|ehu2me70giai^@3A!M24eV*;Vhmo)|@`cLztz+~jhRKOG#AdDp9z zaztv?9D(X`Dvn60k|R(BtKf*_@G3bXscMesRwYNEnN-aY@ron5D2_neqq5KyM|4me z(N=LpD{w@kjML-@e;-iU$l@}vL?@@SLz8kH%oSjXX5DN~>ID7$Q6sQK^NwAU1G=uJ z?5Rc;vEio}S;T@f z`b?frh>tWMqM$(i~%cYAW85>#tQ_tt*&ex-l~?Z93K1ZeWd>#*FlIDNz_C4nqo_X~s;& z8pwiYvavw1MrW`FM!0E;HR8Y;y$xfCVvSg^#w=q_vSf`|utq<_n9-N6)d{RIG}ka> zO95+SOq^FKYjmiZHBfm@#TxCZWDQiwDp;d!)vVE`YSw5~C2OGBRLvUA6>G#O)<9dN zvS_4O;|j$Zmnqh00M@vo<7u%5UJS35Mza`1B3gR7M|H2qt{eWA5p6s@qI%S0*A0K0h<2V{QN8N1>xREwL`P5G zsJ`{sb;I8=BGz+d)Rpzvb;BPU(b+Q~YCt`9-SBsgi1!SP8d%Tb*0%WT#k&z2ACcf0 z6g8+GyKeXsBD#78M-8sWt{eWY5#2mPqK4FC*A0KSh(xJkw+O1l;-Vj(8ysTMhb6in z7h*(cBAtn6jT%}{x*}wk@ch-mP%j6xGFUD zI8>>3-Z?q7zYzCV9YcsG)6$B?6ZSOEsHjo(q#Kq-X^aU?I}TMEVx*@Z6))P;J)@&W z*OP8oy88wp#)hUJhbmpBaa8=b(lp$Zh9lKeiWiGkmQOe36Ze}b#NF2W4RgA!cbe>; zDZ~`JrFg@V-AnxiYfo~&D2}GtEsrQH$-P8AAU8cATcUe-v3SlQA8|;c`%@vdg-ZcX zda-=cC+JD1^<1=19PI6o^(DAlSz4(OGsC46){P<#5A7x^5vs%=S;4ZVf#_xkv7?q0 zY+c1-N2#Yw2z#kGX75@=m9X^WH!FIA15rnV6Yy-sqFPe0C5R;vLX_GQRQ2uR$&AVj z?&AJZ{FG2j3iZ0Uq3WXAh@-RH=@!e(2BVrvoTq>x0S&H`Y=i7l8|;MFfA)*&SC3sc{CY$OPoJnh_1Ja8-=VT5-qzDIs%JfR-SD@K zXf3&cUE+q;l`)8ga_TY9SZJ!AA}4g2?LsXq7aU#OdF-4eOJb!bCR zLR3OM={g#UA)z3>%N-5fP&Q0~rG_7}(Z@%EG~Grfae0 zsz>SIP`KdG4t++AA2%$c6*v?M;?TILIB=+R-EfIRyF_&Xhf3ECmpGJegk8!%aVT*- zyL8LMp~+Fn;85wh;Sz^BqnzMS>AK+(ho(iPfkS;RIMn9{hr&-BnjV!74wbGOE^#Qa zJ-fvA#Gx5c8Q@Uqy5SOslE7{e{D}n{U%ag!IMk;{%Q9T90pL&yw!6F=CxAn#-;gdi zwEMqoF8mxN=>(KXsp%76biLCb97;7xy5P{1e&cRm>w4Yg8VC+W0C8yFb*}rsq14?- z7aY3S<|=*f_USIyAaE!Gh(m9374!h7^p5Hc4uuO2y*~eGBhxw61(}wKC~~Ly_B|;83X2Wg6>UcUGDPb)3YZ@49ZPG#Au1i9`FkT=T8>3l6p3X|g-p z)QX8i2Nbw&2Z!Q$f*aWmC=G17&^U%j6b%C;nzYF^&1^BMt;Ep)2_!n+^+r5MltxQ&Zn#9EXkQ@Fn_Y82 zqLvodNeb*zBP0?{ib?{BO4kjSNVHp2H;|}w-EfISE41;pp7^MEkf?OsaEU~T7T6_n zAQG)WAr{U7iAtie@Dxat*eNwTyCq1}M{*$1_I*cLAg}qAml8!Uc)8a603gH)`A}(V5g3BnoA;-6`TgqE|#+ z0TP9a$=7xvPH%Eca45tkDM|5d!J&T|)NK0i1Ve&SFfes<|05Qlb(>I4pzt{X0KXlzt0I8?fBxWu6(uv-Lw;?gB^ zv%7;seR{O4v4+tD97@4-y5Laf1ayHtz@bnkIh~nvjU_$6p`D{TgG1pG zhi3H8USupVjGo|7sE9)|t~aKDL#dKU7aTgqW|S_SFw8J|fkP2M9GYb;Ne8D;#gr~M zbjrahDs|MT{;3&;aaGkZ3?n-&ZK;tB z{_7gm6&wl|9EvphfV{r;N)c1(Mp@ZoOCQ+wP z9GZdq1c%~zf^*%pY#cO(n%=;7Z{72;7~~5(4?h?(H|U25xY^u3~(rf zZm1HAdVxbx$H1Xi8pbSeC8Wu^1Fem2l~jS!0qxp{S#v&~b*52?~V( z3LO+-h^3%VS$(_ECS4j1t_#@t})1LFsiAt>hJr$6vr`SOlN8t`6;WuLs5YQb>AK+(g%U5ZOLRmOTA_)z^)!!a z4hog78!k~Ou>!lq4Md?87{o$3pis#(7M22q5;=8nI-7w)eG~@@Z5{`5N{nj>3MG28 zIYnboXoIK*pisD=&<>$a(J8p08`7y5)E0ewl3`5h+^j{HY{R(PA&0x*(2B~)Xj>C+ z%PAP%Ufaqc2g_LA3y>q5IAV&@C(K*2bl${_=D}>xm)Atb)U}xOkuB?5tog_`buET` zWV^Z+8$PmQU5oi18C%z4xkq-cYcbKATKtjmbuE^9WI|nwksjH#uEjo&>{i!ef;UJk zOWrEP;$W!@50D}g!;-`!Fu<26t2{hFicAVkE}h~&Da6uXX)=Zdijm17DJ8x4cy6Z% z(h3hPCr74)I7`-vywO-f3zi0WXgN938Jt>ti}*bKDtz`nSemvWz9tjBAcW?=~rEC!<&EEXV37JJaOY_Q8U6)XmO7c3SaOBS2ydMbSgMUmz& zSS(Nh790G|`pi^+6tGx1jbyRz&$+HmOGC72U@_RNV6pNl$zr#;?gonub-AX4#bEt{ z#mcKBi%oq0#U5ZWe}Z7K3OdPRecvt^4i@w05G+dF;b02%2#CdchHfZ*$K@*6@Df;z?BW0o8PAf%2KXL2Sj;c5-7HzGKNg0;VyG8j zF~0y7lP0rdF{zeTF<8tmu)Qo<>`IuzU@=rnu$W(9BU!STG=eR5v1Bn{t!I;1vY0e| zE!MDPF<)y@hOlHY(n;%AvY5~Cl`JN$T^grL7PGcPi=``Bj9RQTawUsdTeHQql`KYs zP{|dN#d?Hi3+%j76eBE>WU=1aS)t=a0$2>gMX*?a{HH9|#p&$Qym6Bjoq@Q7vS=$R zC5ttS4|RGInt{bIOazMs$dbj{#V4h}wrvj2`pw6C5xra&&7Jy5U?2P16V9T zmMoTIjK`wmP_P&*POw;jELm&>Ryq67qL?&5!D4|5uvqUUi+iQ|qkzTAX(WrK&o+jp zrS+whq!|hpE3c9)Ho=$-7Q=GqaIhGvI#{f{O0w7>V{Uh_m_I?VSOuMAu^x+-_63Xi za|jlzppz^%)ffpD^A`wMth|a?EWNgY-;N}glF4rh^azN>(n1%P;-M^AJQplRmT7>7 zo}*+j*u(tL!D4=aEmz56u~1yWHF!ZDOt>Cc1jkr zwnK}tDOt>CXG#{cwq}cUDOn6Gp{Bnii|OG`(axk8VUZ+@VO}jX1)D#mJqZ>IkWbBG zc4|_Ar+nRW=;UGL$q$wFhMq5{fb@|xVM5H;E z*yZ5T79)mYz92(M7^=~hR{ugWf-@Y3-C|>^#pAG+c8jH{R*%El*e&*^T0RbIXSZ0L zYW+B@qupYAss-e*Si8jn#mpVnj>9_JEw-mxLJnL!rlsYuc)P_WRcpv$33iKR3Qokz zU07GU#XbcyVvR7Yo84lif*+x)EnP?A$)qKlek&{aZPN|O%4`izEXHnB%knbRIr;n4 zLZv;)+iP2>@P5|IAr~$kN#6Us!Tz;oN0NBXCe*5@J^A>1LcBb&cmJs_pjv5$Qf^lb zSbnxAm)$GGr`Oqeec3%uh*gdhcj|U=M6EpAQ{1$l72scuwxyJIKP+~1$D|*vI@_G? zs~&l3Ao%tLQRXmJwBI$@x;SlfmR?;VZg*l1kQSjMFzotKyo-4@2w*ST1{-W$rFNux zugp-^a#(6f#)yCYBK8k4qaS@+ZjB9GwGM-QOl#92X=1otc=kNiUzy0Zw4-XrY~T`h z7@5gfl@3W4BM^P}%OjPgY)e0?w$ui$XNRSmsTXx0HEzzc2gHe)4tYJKuXf!AE^i}! zzSFY4Uy37FD#<1{<%U|8xkFRMP*sw(o$jmYgNIy(v|%^Iy55aB@M{mMXKYLM%zW^% zkYslcfhBp~Mc}4Qy}{N6aP*@KONFXJwj}rSLJSH{BFp@KpN_WvLg!x-cVIQVOuVjY zE+!$daUef9(fzUz6P3=M=%yXQ0RK9=@y$YPp3=SVHK>UnsU>nK z@}7SSs7OET%a+ z1+0sQ;Y;S$g>mwS>2`~muGYuHI#fzx7Ly$_lVriQwOb5#418fMgte}eC@n_3+Lsd+ zqqrH}2aVCC8`eY-eRyO9l`OA@#sEi@)^BFM7HRrBy=XU*V(_Kj^J*NY?P7DI8X+^>`Z(H zzcTw}XW}zA)H=HCOnk<_T1c0jiO;A}E9tT`@tH*EOyHNDiEj!(t)&O9qSFL{>`Z)9 z18Ol{b|$_F0yRw_I}_hDftoCkor!O{!I+NRNF0cyfA^MHST&{nQ=+S%Z z<1W`-YRMf+xvM!~9Uh&@LYM2wEOaKAV8FT&HViLAXX1R$wO%d3qZgrV&jA0jJUWxK zeAk+E>P+OqyL-seTl%3h`IqZGbS6qg+oI8#_*d!CnT&qdHCuKjSkgvk((5JHqv#zV zpfjP}(&$Y5%k}6?dUsco7U)d651jL=>y7?q^rLDAb>Q;7>`X8-fzBk;?()2LYacaJ z0kT(Hs{_~aWoLpWkIrNuMZas1ny^4;qV`?~F6_(BM5bQUebBH;x4rFpCmWp!G)P}< z&kkJYmz{~c)3RRAxYqSXXCiNvc5kCI@vZlxGZ~;t5}nCtmus$BthBQmor!1L#cda=At*9eNSkN)GUE7(iz-ev|7~>P&DJ`i&JX z*NV}pJ+6Ax5ci((8r>mMIL2rT`?3UdG=uK{LxX_#UW=YVSz%P4~ zij2V91Jot~a%FE)kxc?N2+&lc>`i`i>rC2FI9>`f}Nm}Tk&y$Q@<*_-$# zP}DSv>`f{%rDZZj?NE}viEm0pO{~b?1iVhY$-wOF&T3;6dK3Q!0;oFoAC2Awwh?-h zWNaLWMQ;KLy-A}C|2_irCXF&}*{A4DFs*{#q;Zln9=(a2V>tl>r$duy%YFjco4{m3 zchNDzDcYhh;c1p`A-?Sd2yE*}LGOX-6?7Jz5V5_I(3jATc>m4<1h;oM(US7mK_DMFYy_s=u6<2eTi=(M(rsG+)Y5! zG_o)8P0*-m8rhflrfJk?tz|UqOlY`iBi#KdGsXyy$a|_u3T!2kUa?+5_*#EbB$}!H9$a5 zLVM`ZlOT`0X#qV+Mw*&9LQj&`d*pm$K~FRKQMIo=a1(>>&zq*f_G(u0J_TvX`Z;(BSOuZ<*Pv5~478y$hq9=g{>8maK zfx8`KPa^NMtUJmx13ihnRoc;yp2WB70X<1CRg&mQuvuWFS**0%A3ceG`vZEC0gKc# zMo*G?)mZc-sd!?h%8ki{H1s4WMBWd9o@CHcL)9Sk8WRkoJ9>?tw4p-QBIxLM1JL=m zNT4SfoQq8zvQDBWL6)YVC&AKpAEiSVLO(A6__s}Am%7|F+m6;LkyuIXEnYE?e8o_Q*W<*DCUl}r} zww$0+KXQmj@D9q9XHt5DYfCd){n#O*t9Ni_L}%{+dDf8Ha*9g*=pmw;cSvSLymz1s z8fr@_?e)sRvY(gR)o&J(Dwn)N&2x@xSi(>F^!Hn*|HtzPUiU;x`c;bFVVN?Q_-(K@ zJSAnOm}^Tp{=)GdDJk@ehRVbe6`CpUfKCHnKUth+b7D?wy3EO%!ou3icK%nMyIE{en@{)+%Qbslb%jLWH^PGSz5ej z-OLbm?q}M_)YSFAr1t2OK1SS^V2%yNb!FkK#$BcypD%J$;Z!Cb zRiT;v1}@lvi5*8W%9qZ@6PYR&;9`3trmvvx>EwSXI zgEwEB=e^UGc$|LkkXV(7Qo?q)HNt~kao!Q~?7>+@nfGiP6i$VmI9Rwo+BKr~`$SR9s5Hak? z4%tHpBq|Op{+ji6e(X9d3-om5|I$U`<2Sa^jja3Ir{rNTO zyhYVrBSS*qNwM55M2ZpsTxU~X{F=H(c0Opct#r3vpw1gw^H$_#n|an__IvEyfa{@Q zTZWBp{nyN$BW<_i9=AVxcmuAik$oHLds@OH)4Dz(Pl}|dLp7|yk-8`4=>|1YYpkzL z8G&DrBGm)(QhOn;w` z**<7UoMzSHK{2-Iyf3QTN}V`(m8wuOZ9$;l(FL8KqWYd7jtqLUD$KNh3sKj?!A}#X zmf{*UxORuDv;IW&8FdwvW>oG=eunBZf?QkI%T}Pwvn_5&HIP_`2EXF=H_-YwNo|ng zURA#&`61sBejcU5&m)NItZLaqJ8l3iwdKp?b+Csvkufnn-T-?5SJr4AT&j6Ja`2EL zgO!791Hm5N;J99350DhV9{8{16$zCV)L0VnW*@Kz$hNX$2gttD`%a-PtB&>(m@JNi(>%bnc5e0kTzZfU*2bs%-fInb=D?4z2@`f<} z5WulQ!5^?QmK`}jT|*gv2;xm);1Ae+%MKl&pka*G2lJ+I@Q1K@dw<@6O#t`D==k6g zV|p@9xdO%!f#2`>V36VHbdV%wEb-7HRtdjLM#MS?1`bIb4ifnJ!O*}!=B@FdqDgLL z{DHAplOiH0Xx0(NABLqOpds_#cu>(Kx3YI63}|N+U4nzZ+8Mks_1#{n@!Ff=zRBnyz+$DAsbT!})oj5jTWMFD6CS$>V zT|fYvkp~q`ax3Exopz<}0Dq9h5h!y^EBC%1J>!=N;15_R{{9au;z_|D=A{0@_(KHx zMw|ff2i@m;f8I70`~eHFeftNOFrDBJU#1=c^?!?F2FprS*=0#yUD&eykecLx2m*hA zDhB+4|FY#AZ22)`oeuu+Ht!^$0oTZYKY$X~_c8@UhJTfs zIs^PczCfKE{NboA4*Ve$B+@+I0WPDRcjI@l}f zFbF?;J@A|ugfFkYk3snG>beZV+kOpa20`{pCkF9`Q(Y~C7(6KI9UsOZ+Tu~vL!=(B zfI+lI{!t9Vlbd%-FY*~_3I@@_Hz3frB^X50zc$rq9$YdvjSPf_Ac~e{2 zXkIp>#~ig~{GlapdIS6c8%*#A{tGSz{@}@*2>bz?RM|NNl$RKPkU5|i_ygl#;ul;D z>)>^cr3HV$o?3QR0R`1ETK^_*@&N}-M&A6x>%bKt=F#Pt4@zTE~U zM1v%8Gn9uFrFM)zFg|Kh_yh(<8oGl74x6eA48&{oz@kZRW&FX5qhYf-WSS2Ap}V0Q z{Ey(7@}QzgZe{O?7HDS`?Sq3yO$r`q=+ni}FE|)t*Q1K;U1Vr!iVh(m?|v9E($F`; zFd!rZy!}zd$m!E3jeH0ELGIE|ryDg%7ZM7CCB04us`98}B*dK90PqJUN$|lLG(8A| z)5CzMy=-tER4kQSBSS)ajECn9_(MC64MU)J3_UOzu^$Bn1h5%-P|+l}GX4-U*)S3O zK^9fC;1BP{_vspA(1SlAC1FBu@CPiw_U#{B z!gPW^3^z;z^_S(KH)Tbs?2aX`E}bQKieZcc;&t!`5K!4AMPAOqP$MP01OCvS_g?2U zs%{JZ0Dp@Z@P`fpfNNU7AE09ae`p&S3Wd@j@CW$KS0?c z`=((3&@$36W~eqCNcp0K^7dFf-^J^@Wn4k z5%|M>d8w&=O-hOvlugZ=wjBd}z#m@t>kCbrKByqQU|;*3KP1?CfIoPFLPFKi1N?y) z5AXpkLBi+)5^w1>mM{W>#0$wi{Gp9gk@JVv_KG_Ep{2e4UjER6SKr4Un)B+q{K3P1 z4QKxFioMc_KfLTz=im?Z0`Zr}U#$||52GOr6iz?14`ZWsS749LX5_3)2wY6_6Lrgt(7MSn+(9_)kUQ>XW8ur? zs|VH~0QwknKUJW#JY5;cZo0R7KvBu$fZ*7RXLJFbGXEGEKH%t;5H}XboZ+Ck93jsG zj%38?LOw75P#GYQ*eulKt_cH|dpr3~P5y???oK!r3`e)>PEFOXV^kcaS5p=con5k5 z!;aGY>uw#{h3=`fzEd?#&8vGfWs%YuaF3__Egu!!h4Kcg3USk4A*$)A}^ZoGvpOjISLd(wMRDzggd_+@YgOZ)J7Ng)~@=4F5$po zoC3_w+AgwMOq(g_r?T8HiSp*2zm*!&fO5nEz~Ki9OK|cp#pfG;?HXpped7S&1cbS8 z(I*#ua?vLjeL^Hv7kzTcPcHe%B|o|3r+-F%k~emKq~v=!KT@#`98aQH!ZvG2*zT(~ zVf!kS*zTt`VH+HjM8Y;CD6#!QZNjz(D2as0|LB)X`$)Njk5oP$$&53)17Az1huCJ2 z)a?<@o+jz}1_)N)pm7VbJpXL_us?-c!rDLcd~>ok@C$ghjWxipL33yvLZ53Rg(_Gs z%&kpT+n$S0-uUf{E^Xb~NMXD-)XlR>e=O_#&wpeddfUxYz=o^gL6M?XznS4Jitz_sTk8Bg65ut8R1y-r)2FZ*V*}`)1;{*i883 z%+d~}E;YW1$BDdcYzOo(#J)ZY4`a6>b`zceRLBv72il1@U!cuRq{5 zu}*z+4u5rP8n16I;GrwGZNflqg3de;XCu`6PkZ|YjCwXs8a1E=S)*p|dG>&H&&(*i zd!u&md3J|&&+bupVG|JCgDE9qI6 zk(c)H+8@-LD^f0HoY=WN9JazPB8{l66Y`o8?T_r9-OkrDTNi=R5j`ym)cj zRBLQ!uwKrn)=1lA;77c8aa&d20W{m1e(^e%-5J$)(pGy94|(t6Hmg?IPUF2hyn6Eu zya=aNtE9~`&LiKuxJ{~+94}?%noAsSrL@V8_we^FZlh|2?G(B@xnc(+4X0Eqq>UK6 zhrD-j8&uygaO>G`cHx0eslJgm@O80Xm1H}K`U|V}q5h;QNm|eA*Q%ED`t(y*dHr%} zEwBGxwak`=aZFP!lfK6a`j30>TwKq^_5N$P9*Ev6ej4_J;~@Tja!-+YdPdpRF>11X zr!q;>WJm(yVhzbOv^2`=;|d%QZtZp}=$@9|?-IdY6#b`7hZG=Cpz58F=M9cA?lSx# z?X`%OKKS-ffL<8~C9?p1nyk}r#o)@(g<4+Q5S&zQ(JxrhfEN-P)bM_p&e%;aj&u%ubH>J z-=wNj24bRaQVOn>8|y)~QT0hG8VIGksn3Chs5~~ugQUt%I8L>yFKSC-ewl;XLkm%R zdCHSiRTu;Pu&MWc277!qYOhQ}KWQ_FAapMK0gVO2QCks)T4*3+;?O3v=mcv$kzjNmR z$C@>H4*PcJx8LrNmn}+3$w^7cC}HKIw0!IG#*>f%9`xkHR+kMY6ZtmgH0%zI@%4=$=XzSBg z|EAM2Rx`u-^K zWvp<2*2nkNI?MQP9v-hW|LbRIKJ)2 zqQV`1Br_s6Di_sVj%K8<2P?U}*d!yWC`X(I*X~xLS9EDF`YqWv1%EzWXwW^A64igzZ_^iZO2_u{KA=WAe&tf3kWMT3dH!Ho*c$H&s%)OBjHqjdnyyHjE%>vTx#Xk}SpGx*-AAC9U+-5W`Vl7pRf7D+6(#vmm z7_KES@wuFzQ6~+@m++ds%Sd-^fr`omgAE7^^Jfj!dzZa!^Cx<@_FiE$iSz4lM4dKg zj&@jiB<;h~*T^hbO$DOXr^GzZ<^*vL1^Fw@du2Gt* zud>g;;MAB%xta!_$<8_Wi1oolq_PL<7Mmg(1n#s=>!;Zv3LbK&+}x$1tfhHXu42Y6 zPjh9dsDQ1@GfZjfC`O?eRa@-;3{#>yTKhf2l&Q5vw~(6dzZ4g23WcSXQ@!3TxaQ!G z;XQ87$*VK;8 zT1S?mb!d&fH8IuE+6PucF(xIVwv@ODo0a*8oLU1-p{9O;fnT1s+nmfgR@>?pShM$F zSg))^d*kqYM`LfdfSR`s7vEkLC@fE`m~O`{_kM<{it&_v&p7IOJ;OA`j*+TU?C}g! zAd6OJEAlkgB)icgW*-a5MIBt!;i25aMIAg`)WIb?xMT;$D?8TxaZ!i=dg_o+&p&Gu{+IOb2GljfHlQ z5+0{2=qY83P^i8b_+9?7b`();H==oa2pCL3W;!;9)p$Qf70_XlFbjP`#xe0vww0Y! zRMjIlh@lAWnTqairyEA&Fd`^9iG+EmK$DjJirc$91)B-&`EkVXgnkX;{A~&e3-cl9 zKhe1`#IobDueMOY;iq?rGOyB>KTc@iFbY3oC&4wNHL|U!z^UY4Y%9WO_&aJUK~F+E zhcb17jLuZ1rirqx=;Ktp)Kp_LnK~2uS{p|gE9}mIBx~%mZTqUR?c+y}1BsPIHQy#$ z*ftSZj(T7%{*mqYsu%w#pGpoaR<5mGu|@S`^?=nT>Kf194`Ls;?Lm7|HJ%QVdb*58(I5Xros@23)Mol7D{`_ z7)+X0lf~z1?o`-6i7&+>afo7Ega*{gb;kfDG11wQ8!HkfX-PYinDD>^`RI)H9EeHF zmSb~7!Xzk2R2&E+<9lN$aVRDrTMjK036q#0LfN6#d`~hI6NfFwXN!bMPSWBZ1(Yc- zKQGTzyi!F*A^nPk2}RQ0WgN_%a*j=fr&({iyeq_BAqGLT7Lu-tav31oCh#xRj)V(8 z3H7FvhlkYCQ%TKUlbW|~31>L`d(`=F2@~4Zp71_opb3hP?GB;!%p_$_bE7K3F^^c3 zCfh7b5ciO)>6%(nu-O-aFQi~d{&tD?Wc=fHpSYUK-)cjyE>!U^9BU2}8+tRO+pG8x zP>eFkj&R!P_%^U61z`B5(Pt2`!7oQP|42se`VOdpWOxjsyv3_;&WFg)IffrL_EnH- zH%)IBabW|**JH3XFo#+!NnU7O{3Cv92Y%cw4uD(l3iCcT%=lpgUbT0b?{F`oiCOMc z!JYDE!lP^g?lYf#l;}N>#E|=ye4!2hV>qK>5}4uoe~tADZ#bKU5nhc$TO$8D7pOE(?!YuQz?198PpMR6FT}O)Kfa; zUQ&Rwc(!Z;|MQm=pmm_q(br8mM0i4 zzK6jihJr?99qhHYdhX$pmVl&OUS1xi8YnoguEjrV%Dsd zb)ZVwUANB}rv0R#JvTm(B0!a-Ba_q$%i#(405hNTQqIXI=T)57%N7Tgt27q!BcItv z%&7Csvrq*mFNCi#FWHg&fFR$>2AyLT0hFA!Yptv~JK%{D_ zHjbtCL(g3H#jbwxzJ^rkK_rB+C&?so=+rnCE23lmXVmq0PW~qC5M#wT8g)50XNEhO zfg!rL{2=*9i4HSf6e0ga~K_G7yBSz zV*+Y&R`@~2yM6iFX_bcl#dm{#&G}=>=Hk9k`Lp@pf**A94j~Y>qaMydC;kfU<3q@W z0S_a{g`t*QAj`=GOWERjNUAhgf38}sG*s-CEEYuNFc^Nh_ymW2D7i3LW*B!~U?_P8 z!zWuUiySBqCl`jQjh8+tontWU&Qlr8xx1ZE9!4$F04<;9eREx5@R9bD=4N_T|wX*ivA3`oZsaU8qn18r{E)e3~K2Z0O zi!HbCjGvq5)PZ^kxyU%6Hdxa4-vj(ea`BLvyk~|PqX3*tF4zKbkqZ~O;Btmbx^PJs zoFOO#V_>O}D_znB*-c;nuSpm1DypybeYUyPS6jb1+~J?{3iwl?CBW;c=Uc!{zCPUK z>p!2MxGI81D{52jSg+%*=_)G!s<7-}0Qqjp$T$)KJ}p~D!w1HD&FzxoFe~^Xuk>Op zzL-q9xD$TmWuIK_)FI_lT6)5lzWWXEvORQtDqVUh)F=6O`k)}v>(f$Sce_8VbZG*h z4lF^4sX{fGgbg$tZ{qq9jk-(yh7$SPx;{=t3!zQZTIO8J-Rw^vUkK1{OaYq~=Ff;8 zwSEuO2OW|wYXxY4?S~FQX=_P)$XuS@8KA=C8N>2fCgN>bHrTHBdV&i1Wvz%EH7N@tsnFn}9d2l1j56UXHs-c}VcBWY?i50loVm zl%G;;41TV`B!eU5&p#LFpY|Oc-L9p0qp$ajAQsdLZbgrgi4|t0u`cJQzYUuTy*p(J zFLUi`=Etap6|PudQ-5XA)(%9_CN@H_PW&B543QI z{I$Y=bB9ciH$zDGsJl;mN8Nq$IqL2cz)^Rffc>ho*bEsuVwzose$`1bhLk+EOsGl| z>NO=yQS6G9&n~sDToDWR@qY2&JiFTZO}rlKRv!xo^H{xW-MZH8&ZPf^>()haT@;sV zV*axzF0+FQd?gUuiCQ_JG5hcbX9>@ijXnPIn$)T_)MlQo{_jVg7VMPOSleY!VL+?{c7ZaZ(*?Q~ z54N`fH{p`N9sZ8M9Z=c(o(^z<88@=+7kI?|^5-IKtv%&uCHok(#uzYfWqbKwFeXsh z+V7|lS(rAK6`coVY-XK7k;Z1R8a5_C34*TFeg!-s^q}?&L*@TIhpL+^&vf;Wrp2YdXfylRn14?Vpro@LYL6IS6 z9yyNr>?5HVNAA+>OTKIKOLrp}3LD9Md=Ipbx-csci1|Mc6`KR zLt1S2C*DrJ8}qM!Ds^D(=={=THmWeqk)4KbV{qS37x#^?bz)p)-{7BV?tcHUE1!#I ze4Vq8EcgHIL;;7(i@x<@&2rT-j!Lu@QuM7)5Y`Zm6X>ad~6GT2XZ5Z2GsjD1QHcpck7N~(C z_Q7!=A)mg5BgRW7ZQPC^47O;T10vc~fkl@N_6!W0U*3IGkv_1`Pj3a9M>(2%s{#t& zNhv5VJ2oO9U{-og`pkfUJyl;RSy%>k>E2E3xn50JSO!*Co9oep1!KSnBMw7j9)|&W z$cc@)oY;Vgh?tR9Z4wk;kQ5l&SSN)BHXv(Y_X&-sS|@Z51a!#wiH%2DCyo!nm38q= z;-q+;oEs@}Q<}s|Q+VCvCL^TDJU2--+!VXJpseKF^v8!w%RW#ImnPX8s<+?xaQNs0 z1+k9}mu^jSv`kbDlhXDohn0?uA3p4x+=2|luoJdBNy=f;M2`8PYN&Zx&7RqD%Au9B zDn1&zs3dkMj!+&deaM?9sE1U|`YGRh{?j2xjwy$j?|eA~twW>nbNE*-4#;Ib8ZXO>SGwi#{_dY3^ z5Hs%gkujD}R58*x-u!`TVBzS)g_RX&5(WO`>tE zJsY>NO$JC~dG5U?QPO)jy(Yo+wz%FF*W04|!1cDccnhbD@l9O3jxhG1MMXE&W=T*6l5~bw%D9hJ@M>~rFM-;WhJ<(cOvR0XB-BHGX z?tU$R%3;>Z!@b#oPM=pM=G;7+o0z!ncEzpLiJzY>F1@iZarLbtW7_PCw&I;`^3|C= zY_I`O$gZ7Uxwd+4;^K8=QXDbsWCnVTWbh<2Kl~;bf<)O4H`W!9W|ybjP6X1nVr61=(wv-MKTABEu1c)= zs$jn}7IW{)ABkC#AM5MHAz>; zV5wLm#oFq|781VhMDoRluTAzvsrE>yH;US-b z5QYjzvgjg@H1e+gFI4!> zEiLuR^y1fU7hf46LuGves5mptF3KqzhM>W#P0F%TYb?#SmX(#98O9y~>+j6hIOk#d zZJK?%(_|y=-|AC@x6J(6K3vV6BnD&sD!Uy#_I^v|9jwR*!nd{f%glYQI@keJ6p(eS zZ@Y-?g%KRe>quHVoQ0XT5Ee3N^8^$|EQF0%%3ET@{IBmwQ1&6I95MN9z0_pphhpHa zzOCCtt0FP6-?9b3u+I#EzY*-zM<1Y|W zao4HKw-0q?aR{x$)l{CchZ&yBaEO+|yaOV34)%&E`4CUR&%XfnoTVN8w_WwZ(g?S8 zLu`>1#~6};!{8qK0zd2E$!HRXU?4zrpsg$5wKeF(ykjfi5fx)y3Op287oh|2YHh+z zOX36!pbo@YBEh!KsQYa@){cMiB-V+5bf*l4H?VRr4JaMMJVZq>aF+dLZ+qY5b85OB zU9~)fy8V9Aiy67wVWSalkvmf4CS;anz>W!Cqw+ZzJR5eXxbRSf8|CynRc*@o7Uuh~ zboUXU%(R_(Gd9DM6prsm*6%KKXhaXB_1->hNb>P^(0YrvZpi4?V=SYG=-89Wlg5eo1YkU(?%0vyZw^*pESe%-_qq>#b$C`YH9+=!$EN^wRv{?g9z+UW~}& zx?>p3-H!pYu!zCrj+0@k?KIvF^W)D-ea_j#*Yx^NGD~hu(?=h^U3hw=e(H@|1$(28 z*={d(WQ4{=jZA5{YLbQ8l=~+Ij2uOJuOP9muhh^c%3fGNabbYzPO>!n+&8C z*VKCBd#N|C6`a=(-ke#!C)%kSEM$;(2Tqi6Nv0k+b8jp4)e{C>+1X#e?z~E0^Iq0U zCnTA=W2iAy>1E^eDaO?dX>i3{{g)=kygWeDYu8Xv zJ6wTLb$OYAjJc?~i>kY*x|06ARJ~FCHq45+mZ~>u_(q4;{+14JG;CB$)$70E-9}^e zexp8nNx_a49bVH&9k{VNEBT}3|Bsd2HP+&cSCtxTtCG`=G}0I^cRQ*>h*$VCpuBzn z8k^66u7?RACm~)2TE9)H$@zKnX^p1;rMu^PYFcg1%0J?x>2WSSdv&v2wyY1_tbMsp$_7kEcwvv+3~;u%s-aoB;WnlDzz zp4N=HsnK|7Uv1V#qnUYBlX9eIGo?myLJ~qe!zwQh8*xr^^KD>FJFV6j15+-X&Q8^| zoqx%=s-<&Bb|GFMHM=wZk_Jd|SxQZHrxqudH`B~cRcUGhFB_b(WHOIwk{>Hf^Yxui z7}{&4qckInnrDyKbo}FVv$Jn&njQUEW9}(Nu~vv@Xg7<)G~s3~L(}xRR`f@2&3n05 zcJ(UWIO0l9_QqD4t(A#RgD8afN6xtO+ORsW97gb;cPy{x1;H09&_(ba61q!_cZu=; z3Nb!G0h3Vqh!*Zr5JV;O;G}W6G-7GK=KxoIU;}cMMUJv0_+g z!4QQQ80z42t?eu@F1UPHBKO5 zWnB+%0UQ`PR-Pf?%R2<~f44 zp5sAk*E64$HJbqiH*_VHh%hrGc6WeaK`_k-f+;*m+~`hp)o|*PIY(Fw5nL$XnXaND zd+-@~e@Ad6LCjFZwG@6ND!OgjK+|uQ7BIUa*`Nqs7CbP1;Z+g=Y2^JKb1q@$Kt_<= zon$7Pdv`pyJj2+f!iM+y%ooYb{eiHrK#WstSLK-m1A2uPDWYa>QAE~)LmB(tJDk3b=+Xqt51-a2c)$Q$6;{9mD=igW zA6U_emfWBa+gDz6V=wtvCsUBQi`^ec4sHq#!6uL0Y?;wIPfgdoa7a&oGd9kVMAxSf z1j{b;=C|gL3s?S0p7AHbs z5+PmNt*d_VZ z#grX~ux3mVP{f!v^VuuE%Hs&Zq!}h-!0mHAJuT{Lc3oWAeTd^GC_csKJ=go}dY@hI zv+I2p@u^+>8L_Bc{Mp5y|99|bc;ozChk`cDQvOfW_F7? zijj*?Qw>B?eAj~{WUnzp&}7FkRc|2Km-!`JwXUVL!)Wqp;?I@f{wzLjEQOr2ZXYGD z{4+_>0~%1dh_uhG*3s!b0GnsQv0TK~7l!M&O$Ks!kWdeD*#F98{1TR=W{M^oA?`_*t17lQ2zUuow)_Y#HK zItjdB8$N-Z{=^9n@-PdzFC40YcpO0|Z*1N}$=@SBldZP{5fUVNtL+e{aq+18%tl_0 z8@dw??>EkVOUb(s_{$b%I7`&Y7RIGO8B^3?v%v%J+r6{ZbSbK8nqSb@B@vX2?|2KZ z!}Y!$&8@{fzQ|q!IUn)&@%7B^w!jWTygc%BdC^aOh*H)a&AvK-w0o}|HCV#!J%3tt zSkzzzu~7UK6YbXb2(^zuqOO(hTIsHpZg(kl(R3G0|IerC5F76GfM~Fq%sf~(ScrdK zGMG?rn?Ib#4qB~}WVP<0@ZAN*{B8b-z6?U%Q4G5ySB~Q!KfrU#w5p^z(4>uD74ljQ=BVe?r3`LB*>%6{o4^-ykcG2UaEM zGq15zUVP)8dVXDg{>--b($=Zwcp74P3zlMR^s2<@O}z_hml1ET74&f`ETN<`v+cEl z`b~w4u#_=H)RqeBHr4Vj4K#Q1q(YO$YPvx(^`eB|H>Bqp5)@m>^#Fpq{g2H6zWC^d zjcnZCI&v6H?=2nQ8ak%YyOuFSy96{KTgN6kTR_5-ZuGB&LP$LS!zF7Il#S@Y*#u<} z{Zs$-;^CPn|0@)VAMpPv{@GuD{0H-#LeUoKD{{WxDTSimyU5qWfBoRWLr2Gs8~fpV z!&s|3{?+)m;h%x40}c39C?3Z@t7j-rh&&R7#wq`zQ~pV({NJ4N^_}t!obnBw@=qhr z`m_H%h79YQUB8*gBT;y;ybXUyUv(OIzprqMLJ8Q zOGUa)q`O6WOr#e@nkUjqIW2P+>GL9OF4A^9#ZSVY?)kU<+si70BBA#G-``)|=d10T z-G{6Hy5sZjF4rCZ`az0>+JBoB%gTw0gxY^b^KRjPw|F1MBaISyKctM@EB+tG C;a~3n diff --git a/plugins/samplesource/remoteinput/readme.md b/plugins/samplesource/remoteinput/readme.md index d7b0c21b7..142f2db1d 100644 --- a/plugins/samplesource/remoteinput/readme.md +++ b/plugins/samplesource/remoteinput/readme.md @@ -10,7 +10,7 @@ Please note that there is no provision for handling out of sync UDP blocks. It i The remote SDRangel instance that sends the data stream is controlled via its REST API using a separate control software for example [SDRangelcli](https://github.com/f4exb/sdrangelcli) -A sample size conversion takes place if the stream sample size sent by the remote instance and the Rx sample size of the local instance do not match (i.e. 16 to 24 bits or 24 to 16 bits). Best performance is obtained when both instances use the same sample size. +A sample size conversion takes place if the stream sample size sent by the remote instance and the Rx sample size of the local instance do not match (i.e. 8, 16 to 24 bits or 8, 24 to 16 bits). Best performance is obtained when the stream sample size matches the instance sample size.

Build

@@ -35,22 +35,54 @@ This is the center frequency in Hz sent in the meta data from the remote SDRange Stream I/Q sample rate in kS/s -

4: Auto correction options and stream status

+

4: Set remote device center frequency

+ +Uses the API at the address and port specified in (12) to control the remote device center frequency (kHz) + +

5: Remote sink channel decimation factor

+ +The remote device baseband can be decimated in the remote sink channel and its center can be selected with (8). The resulting sample rate of the I/Q stream sent over the network is the remote device baseband sample rate divided by this value. The value is displayed in (3). + +It uses the API at the address and port specified in (12) to control the remote sink channel. + +

6: Remote sink half band filters chain sequence

+ +This string represents the sequence of half-band filters used in the decimation from device baseband to resulting I/Q stream. Each character represents a filter type: + + - **L**: lower half-band + - **H**: higher half-band + - **C**: centered + +

7: Remote sink center frequency shift

+ +This is the shift of the remote sink channel center frequency from the remte device center frequency. Its value is driven by the remote device sample rate, the decimation (5) and the filter chain sequence (8). + +

8: Remote sink half-band filter chain sequence

+ +The slider moves the remote sink channel center frequency roughly from the lower to the higher frequency in the remote device baseband. The number on the right represents the filter sequence as the decimal value of a base 3 number. Each base 3 digit represents the filter type and its sequence from MSB to LSB in the filter chain: + + - **0**: lower half-band + - **1**: centered + - **2**: higher half-band + +It uses the API at the address and port specified in (12) to control the remote sink channel. + +

9: Auto correction options and stream status

![SDR Remote input stream GUI](../../../doc/img/RemoteInput_plugin_02.png) -

4.1: Auto correction options

+

9.1: Auto correction options

These buttons control the local DSP auto correction options: - **DC**: auto remove DC component - **IQ**: auto make I/Q balance -

4.2: Receive buffer length

+

9.2: Receive buffer length

This is the main buffer (writes from UDP / reads from DSP engine) length in units of time (seconds). As read and write pointers are normally about half the buffer apart the nominal delay introduced by the buffer is the half of this value. -

4.3: Main buffer R/W pointers positions

+

9.3: Main buffer R/W pointers positions

Read and write pointers should always be a half buffer distance buffer apart. This is the difference in percent of the main buffer size from this ideal position. @@ -59,11 +91,11 @@ Read and write pointers should always be a half buffer distance buffer apart. Th This corresponds to the value shown in the gauges above (9) -

4.4: Date/time

+

9.4: Date/time

This is the current timestamp of the block of data sent from the receiver. It is refreshed about every second. The plugin tries to take into account the buffer that is used between the data received from the network and the data effectively used by the system however this may not be extremely accurate. It is based on the timestamps sent from the Remote sink channel at the other hand that does not take into account its own buffers. -

5: Main buffer R/W pointers gauge

+

10: Main buffer R/W pointers gauge

There are two gauges separated by a dot in the center. Ideally these gauges should not display any value thus read and write pointers are always half a buffer apart. However due to the fact that a whole frame is reconstructed at once up to ~10% variation is normal and should appear on the left gauge (write leads). @@ -72,15 +104,15 @@ There are two gauges separated by a dot in the center. Ideally these gauges shou The system tries to compensate read / write unbalance however at start or when a large stream disruption has occurred a delay of a few tens of seconds is necessary before read / write reaches equilibrium. -

6: Data stream status

+

11: Data stream status

![SDR Remote input stream GUI](../../../doc/img/RemoteInput_plugin_04.png) -

6.1: Sample size

+

11.1: Sample size

This is the size in bits of a I or Q sample sent in the stream by the remote server. -

6.2: Total number of frames and number of FEC blocks

+

11.2: Total number of frames and number of FEC blocks

This is the total number of frames and number of FEC blocks separated by a slash '/' as sent in the meta data block thus acknowledged by the remote server. When you set the number of FEC blocks with (4.1) the effect may not be immediate and this information can be used to monitor when it gets effectively set in the remote server. @@ -88,7 +120,7 @@ A frame consists of 128 data blocks (1 meta data block followed by 127 I/Q data Using the Cauchy MDS block erasure correction ensures that if at least the number of data blocks (128) is received per complete frame then all lost blocks in any position can be restored. For example if 8 FEC blocks are used then 136 blocks are transmitted per frame. If only 130 blocks (128 or greater) are received then data can be recovered. If only 127 blocks (or less) are received then none of the lost blocks can be recovered. -

6.3: Stream status

+

11.3: Stream status

The color of the icon indicates stream status: @@ -96,82 +128,82 @@ The color of the icon indicates stream status: - No color: some original blocks were reconstructed from FEC blocks for some frames during the last polling timeframe (ex: between 128 and 135) - Red: some original blocks were definitely lost for some frames during the last polling timeframe (ex: less than 128) -

6.4: Minimum total number of blocks per frame

+

11.4: Minimum total number of blocks per frame

This is the minimum total number of blocks per frame during the last polling period. If all blocks were received for all frames then this number is the nominal number of original blocks plus FEC blocks (Green lock icon). In our example this is 128+8 = 136. If this number falls below 128 then some blocks are definitely lost and the lock lights in red. -

6.5: Maximum number of FEC blocks used by frame

+

11.5: Maximum number of FEC blocks used by frame

Maximum number of FEC blocks used for original blocks recovery during the last polling timeframe. Ideally this should be 0 when no blocks are lost but the system is able to correct lost blocks up to the nominal number of FEC blocks (Neutral lock icon). -

6.6: Reset events counters

+

11.6: Reset events counters

-This push button can be used to reset the events counters (4.7 and 4.8) and reset the event counts timer (4.9) +This push button can be used to reset the events counters (9.7 and 9.8) and reset the event counts timer (9.9) -

6.7: Unrecoverable error events counter

+

11.7: Unrecoverable error events counter

-This counter counts the unrecoverable error conditions found (i.e. 4.4 lower than 128) since the last counters reset. +This counter counts the unrecoverable error conditions found (i.e. 9.4 lower than 128) since the last counters reset. -

6.8: Recoverable error events counter

+

11.8: Recoverable error events counter

-This counter counts the unrecoverable error conditions found (i.e. 4.4 between 128 and 128 plus the number of FEC blocks) since the last counters reset. +This counter counts the unrecoverable error conditions found (i.e. 9.4 between 128 and 128 plus the number of FEC blocks) since the last counters reset. -

6.9: events counters timer

+

11.9: events counters timer

-This HH:mm:ss time display shows the time since the reset events counters button (4.6) was pushed. +This HH:mm:ss time display shows the time since the reset events counters button (9.6) was pushed. -

7: Remote server test

+

12: Remote server test

Test remote connection with its API. ![SDR Remote input stream GUI](../../../doc/img/RemoteInput_plugin_05.png) -

7.1: Remote connection indicator

+

12.1: Remote connection indicator

The "Remote" label is lit in green when the connection is successful -

7.2: API IP address

+

12.2: API IP address

IP address of the remote SDRangel instance REST API -

7.3: API port

+

12.3: API port

Port of the remote SDRangel instance REST API -

7.4: Get information button

+

12.4: Get information button

-When the return key is hit within the address (5.2) or port (5.3) the changes are effective immediately. You can also use this button to set again these values. Clicking on this button will send a request to the API to get the remote SDRangel instance information that is displayed in the API message box (8) +When the return key is hit within the address (10.2) or port (10.3) the changes are effective immediately. You can also use this button to set again these values. Clicking on this button will send a request to the API to get the remote SDRangel instance information that is displayed in the API message box (13) -

8: Local network interface address and port for data reception

+

13: Local network interface address and port for data reception

![SDR Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_06.png) -

8.1: Interface IP address

+

13.1: Interface IP address

-IP address of the local network interface the remote SDRangel instance sends the data to. Effective when the validation button (8.3) is pressed. +IP address of the local network interface the remote SDRangel instance sends the data to. Effective when the validation button (13.3) is pressed. -

8.2: Interface port

+

13.2: Interface port

-Local port the remote SDRangel instance sends the data to. Effective when the validation button (8.3) is pressed. +Local port the remote SDRangel instance sends the data to. Effective when the validation button (13.3) is pressed. -

8.3: Validation button

+

13.3: Validation button

-When the return key is hit within the interface address (8.2), port (8.3), multicast group address (10) and multicast group join/leave (9) the changes of parameters for data reception are ready for commit and this button turns green. You then push this button to commit the changes. +When the return key is hit within the interface address (13.2), port (13.3), multicast group address (15) and multicast group join/leave (14) the changes of parameters for data reception are ready for commit and this button turns green. You then push this button to commit the changes. -

9: Join or leave multicast group

+

14: Join or leave multicast group

-Use this toggle button to join or leave the multicast group which address is specified next (10). Effective when the validation button (8.3) is pressed. +Use this toggle button to join or leave the multicast group which address is specified next (15). Effective when the validation button (13.3) is pressed. -

10: Multicast group address

+

15: Multicast group address

-This is the address of the multicast group. Effective when the validation button (8.3) is pressed. +This is the address of the multicast group. Effective when the validation button (13.3) is pressed. -

11: Status message

+

16: Status message

The API status is displayed in this box. It shows "API OK" when the connection is successful and reply is OK -

12: Remote information

+

17: Remote information

This is the information returned by the remote when connection with its API is successful diff --git a/plugins/samplesource/remoteinput/remoteinput.cpp b/plugins/samplesource/remoteinput/remoteinput.cpp index 7cbcca41d..eed96a204 100644 --- a/plugins/samplesource/remoteinput/remoteinput.cpp +++ b/plugins/samplesource/remoteinput/remoteinput.cpp @@ -60,7 +60,6 @@ RemoteInput::RemoteInput(DeviceAPI *deviceAPI) : m_sampleFifo.setSize(m_sampleRate * 8); m_remoteInputUDPHandler = new RemoteInputUDPHandler(&m_sampleFifo, m_deviceAPI); m_remoteInputUDPHandler->setMessageQueueToInput(&m_inputMessageQueue); - connect(m_remoteInputUDPHandler, SIGNAL(metaChanged()), this, SLOT(handleMetaChanged())); m_deviceAPI->setNbSourceStreams(1); @@ -164,19 +163,31 @@ bool RemoteInput::isStreaming() const bool RemoteInput::handleMessage(const Message& message) { - if (RemoteInputUDPHandler::MsgReportSampleRateChange::match(message)) + if (RemoteInputUDPHandler::MsgReportMetaDataChange::match(message)) { - RemoteInputUDPHandler::MsgReportSampleRateChange& notif = (RemoteInputUDPHandler::MsgReportSampleRateChange&) message; - int sampleRate = notif.getSampleRate(); + qDebug() << "RemoteInput::handleMessage:" << message.getIdentifier(); + RemoteInputUDPHandler::MsgReportMetaDataChange& notif = (RemoteInputUDPHandler::MsgReportMetaDataChange&) message; + m_currentMeta = notif.getMetaData(); + int sampleRate = m_currentMeta.m_sampleRate; if (sampleRate != m_sampleRate) { - qDebug("RemoteInput::handleMessage: RemoteInputUDPHandler::MsgReportSampleRateChange: %d", sampleRate); + qDebug("RemoteInput::handleMessage: RemoteInputUDPHandler::MsgReportMetaDataChange: new sampleRate: %d", sampleRate); QMutexLocker mutexLocker(&m_mutex); m_sampleFifo.setSize(sampleRate * 8); m_sampleRate = sampleRate; } + m_currentMeta = m_remoteInputUDPHandler->getCurrentMeta(); + QString getSettingsURL= QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") + .arg(m_settings.m_apiAddress) + .arg(m_settings.m_apiPort) + .arg(m_currentMeta.m_deviceIndex) + .arg(m_currentMeta.m_channelIndex); + + m_networkRequest.setUrl(QUrl(getSettingsURL)); + m_networkManager->get(m_networkRequest); + return true; } else if (MsgStartStop::match(message)) @@ -218,6 +229,7 @@ bool RemoteInput::handleMessage(const Message& message) } else if (MsgRequestFixedData::match(message)) { + qDebug() << "RemoteInput::handleMessage:" << message.getIdentifier(); QString reportURL; reportURL = QString("http://%1:%2/sdrangel") @@ -701,20 +713,4 @@ void RemoteInput::analyzeRemoteChannelSettingsReply(const QJsonObject& jsonObjec } } -void RemoteInput::getRemoteChannelSettings() -{ - QString getSettingsURL= QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") - .arg(m_settings.m_apiAddress) - .arg(m_settings.m_apiPort) - .arg(m_currentMeta.m_deviceIndex) - .arg(m_currentMeta.m_channelIndex); - m_networkRequest.setUrl(QUrl(getSettingsURL)); - m_networkManager->get(m_networkRequest); -} - -void RemoteInput::handleMetaChanged() -{ - m_currentMeta = m_remoteInputUDPHandler->getCurrentMeta(); - getRemoteChannelSettings(); -} diff --git a/plugins/samplesource/remoteinput/remoteinput.h b/plugins/samplesource/remoteinput/remoteinput.h index f9250b947..e23abf282 100644 --- a/plugins/samplesource/remoteinput/remoteinput.h +++ b/plugins/samplesource/remoteinput/remoteinput.h @@ -419,13 +419,11 @@ private: void webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response); void webapiReverseSendSettings(QList& deviceSettingsKeys, const RemoteInputSettings& settings, bool force); void webapiReverseSendStartStop(bool start); - void getRemoteChannelSettings(); void analyzeRemoteChannelSettingsReply(const QJsonObject& jsonObject); void analyzeInstanceSummaryReply(const QJsonObject& jsonObject); private slots: void networkManagerFinished(QNetworkReply *reply); - void handleMetaChanged(); }; #endif // INCLUDE_REMOTEINPUT_H diff --git a/plugins/samplesource/remoteinput/remoteinputgui.cpp b/plugins/samplesource/remoteinput/remoteinputgui.cpp index db3d9540f..475cce881 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.cpp +++ b/plugins/samplesource/remoteinput/remoteinputgui.cpp @@ -84,6 +84,7 @@ RemoteInputGui::RemoteInputGui(DeviceUISet *deviceUISet, QWidget* parent) : connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); m_statusTimer.start(500); connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(updateHardware())); + connect(&m_remoteUpdateTimer, SIGNAL(timeout()), this, SLOT(updateRemote())); m_sampleSource = (RemoteInput*) m_deviceUISet->m_deviceAPI->getSampleSource(); @@ -351,19 +352,16 @@ void RemoteInputGui::applyPosition() void RemoteInputGui::applyRemoteSettings() { - if (m_doApplySettings) - { - qDebug() << "RemoteInputGui::applyRemoteSettings"; - RemoteInput::MsgConfigureRemoteChannel* message = - RemoteInput::MsgConfigureRemoteChannel::create(m_remoteChannelSettings); - m_sampleSource->getInputMessageQueue()->push(message); + if (!m_remoteUpdateTimer.isActive()) { + m_remoteUpdateTimer.start(100); } } void RemoteInputGui::sendSettings() { - if(!m_updateTimer.isActive()) + if (!m_updateTimer.isActive()) { m_updateTimer.start(100); + } } void RemoteInputGui::on_remoteDeviceFrequency_changed(quint64 value) @@ -615,6 +613,18 @@ void RemoteInputGui::updateHardware() } } +void RemoteInputGui::updateRemote() +{ + if (m_doApplySettings) + { + qDebug() << "RemoteInputGui::updateRemote"; + RemoteInput::MsgConfigureRemoteChannel* message = + RemoteInput::MsgConfigureRemoteChannel::create(m_remoteChannelSettings); + m_sampleSource->getInputMessageQueue()->push(message); + m_remoteUpdateTimer.stop(); + } +} + void RemoteInputGui::updateStatus() { if (m_sampleSource->isStreaming()) diff --git a/plugins/samplesource/remoteinput/remoteinputgui.h b/plugins/samplesource/remoteinput/remoteinputgui.h index bfd1e91d0..1aaa91f14 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.h +++ b/plugins/samplesource/remoteinput/remoteinputgui.h @@ -61,6 +61,7 @@ private: int m_streamSampleRate; //!< Sample rate of received stream quint64 m_streamCenterFrequency; //!< Center frequency of received stream QTimer m_updateTimer; + QTimer m_remoteUpdateTimer; QTimer m_statusTimer; int m_lastEngineState; MessageQueue m_inputMessageQueue; @@ -134,6 +135,7 @@ private slots: void on_startStop_toggled(bool checked); void on_eventCountsReset_clicked(bool checked); void updateHardware(); + void updateRemote(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); }; diff --git a/plugins/samplesource/remoteinput/remoteinputgui.ui b/plugins/samplesource/remoteinput/remoteinputgui.ui index 1e8aa6ce4..ca3982d22 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.ui +++ b/plugins/samplesource/remoteinput/remoteinputgui.ui @@ -236,7 +236,7 @@ - Dec + Rem ch Dec @@ -288,25 +288,6 @@ - - - - - 50 - 0 - - - - Effective channel rate (kS/s) - - - 0000k - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - @@ -365,7 +346,7 @@ - Pos + Rem ch Pos diff --git a/plugins/samplesource/remoteinput/remoteinputudphandler.cpp b/plugins/samplesource/remoteinput/remoteinputudphandler.cpp index d7e82be9a..fb78da20c 100644 --- a/plugins/samplesource/remoteinput/remoteinputudphandler.cpp +++ b/plugins/samplesource/remoteinput/remoteinputudphandler.cpp @@ -26,7 +26,7 @@ #include "remoteinputudphandler.h" #include "remoteinput.h" -MESSAGE_CLASS_DEFINITION(RemoteInputUDPHandler::MsgReportSampleRateChange, Message) +MESSAGE_CLASS_DEFINITION(RemoteInputUDPHandler::MsgReportMetaDataChange, Message) MESSAGE_CLASS_DEFINITION(RemoteInputUDPHandler::MsgUDPAddressAndPort, Message) RemoteInputUDPHandler::RemoteInputUDPHandler(SampleSinkFifo *sampleFifo, DeviceAPI *deviceAPI) : @@ -55,7 +55,7 @@ RemoteInputUDPHandler::RemoteInputUDPHandler(SampleSinkFifo *sampleFifo, DeviceA m_throttlems(REMOTEINPUT_THROTTLE_MS), m_readLengthSamples(0), m_readLength(0), - m_converterBuffer(0), + m_converterBuffer(nullptr), m_converterBufferNbSamples(0), m_throttleToggle(false), m_autoCorrBuffer(true) @@ -149,7 +149,7 @@ void RemoteInputUDPHandler::stop() if (m_dataSocket) { delete m_dataSocket; - m_dataSocket = 0; + m_dataSocket = nullptr; } m_centerFrequency = 0; @@ -213,6 +213,18 @@ void RemoteInputUDPHandler::processData() { m_remoteInputBuffer.writeData(m_udpBuf); const RemoteMetaDataFEC& metaData = m_remoteInputBuffer.getCurrentMeta(); + + if (!(m_currentMeta == metaData)) + { + m_currentMeta = metaData; + + if (m_messageQueueToInput) + { + MsgReportMetaDataChange *msg = MsgReportMetaDataChange::create(m_currentMeta); + m_messageQueueToInput->push(msg); + } + } + bool change = false; m_tv_msec = m_remoteInputBuffer.getTVOutMSec(); @@ -227,13 +239,6 @@ void RemoteInputUDPHandler::processData() { disconnectTimer(); adjustNbDecoderSlots(metaData); - - if (m_messageQueueToInput) - { - MsgReportSampleRateChange *msg = MsgReportSampleRateChange::create(metaData.m_sampleRate); - m_messageQueueToInput->push(msg); - } - m_samplerate = metaData.m_sampleRate; change = true; } @@ -256,6 +261,8 @@ void RemoteInputUDPHandler::processData() } m_dataSocket->setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, getDataSocketBufferSize()); + m_elapsedTimer.restart(); + m_throttlems = 0; connectTimer(); } } @@ -310,7 +317,7 @@ void RemoteInputUDPHandler::tick() if (throttlems != m_throttlems) { m_throttlems = throttlems; - m_readLengthSamples = (m_remoteInputBuffer.getCurrentMeta().m_sampleRate * (m_throttlems+(m_throttleToggle ? 1 : 0))) / 1000; + m_readLengthSamples = (m_currentMeta.m_sampleRate * (m_throttlems+(m_throttleToggle ? 1 : 0))) / 1000; m_throttleToggle = !m_throttleToggle; } @@ -319,27 +326,19 @@ void RemoteInputUDPHandler::tick() m_readLengthSamples += m_remoteInputBuffer.getRWBalanceCorrection(); // Eliminate negative or excessively high values m_readLengthSamples = m_readLengthSamples < 0 ? - 0 : m_readLengthSamples > (int) m_remoteInputBuffer.getCurrentMeta().m_sampleRate/5 ? + 0 : m_readLengthSamples > (int) m_currentMeta.m_sampleRate/5 ? m_remoteInputBuffer.getCurrentMeta().m_sampleRate/5 : m_readLengthSamples; } - const RemoteMetaDataFEC& metaData = m_remoteInputBuffer.getCurrentMeta(); + m_readLength = m_readLengthSamples * (m_currentMeta.m_sampleBytes & 0xF) * 2; - if (!(m_currentMeta == metaData)) - { - m_currentMeta = metaData; - emit metaChanged(); - } - - m_readLength = m_readLengthSamples * (metaData.m_sampleBytes & 0xF) * 2; - - if (metaData.m_sampleBits == SDR_RX_SAMP_SZ) // no conversion + if (m_currentMeta.m_sampleBits == SDR_RX_SAMP_SZ) // no conversion { // read samples directly feeding the SampleFifo (no callback) m_sampleFifo->write(reinterpret_cast(m_remoteInputBuffer.readData(m_readLength)), m_readLength); m_samplesCount += m_readLengthSamples; } - else if ((metaData.m_sampleBits == 8) && (SDR_RX_SAMP_SZ == 16)) // 8 -> 16 + else if ((m_currentMeta.m_sampleBits == 8) && (SDR_RX_SAMP_SZ == 16)) // 8 -> 16 { if (m_readLengthSamples > (int) m_converterBufferNbSamples) { @@ -356,7 +355,7 @@ void RemoteInputUDPHandler::tick() m_converterBuffer[is] += buf[2*is] * (1<<8); // I -> LSB } } - else if ((metaData.m_sampleBits == 8) && (SDR_RX_SAMP_SZ == 24)) // 8 -> 24 + else if ((m_currentMeta.m_sampleBits == 8) && (SDR_RX_SAMP_SZ == 24)) // 8 -> 24 { if (m_readLengthSamples > (int) m_converterBufferNbSamples) { @@ -374,7 +373,7 @@ void RemoteInputUDPHandler::tick() m_sampleFifo->write(reinterpret_cast(m_converterBuffer), m_readLengthSamples*sizeof(Sample)); } - else if (metaData.m_sampleBits == 16) // 16 -> 24 + else if (m_currentMeta.m_sampleBits == 16) // 16 -> 24 { if (m_readLengthSamples > (int) m_converterBufferNbSamples) { @@ -392,7 +391,7 @@ void RemoteInputUDPHandler::tick() m_sampleFifo->write(reinterpret_cast(m_converterBuffer), m_readLengthSamples*sizeof(Sample)); } - else if (metaData.m_sampleBits == 24) // 24 -> 16 + else if (m_currentMeta.m_sampleBits == 24) // 24 -> 16 { if (m_readLengthSamples > (int) m_converterBufferNbSamples) { @@ -413,7 +412,7 @@ void RemoteInputUDPHandler::tick() } else // invalid size { - qWarning("RemoteInputUDPHandler::tick: unexpected sample size in stream: %d bits", (int) metaData.m_sampleBits); + qWarning("RemoteInputUDPHandler::tick: unexpected sample size in stream: %d bits", (int) m_currentMeta.m_sampleBits); } if (m_tickCount < m_rateDivider) diff --git a/plugins/samplesource/remoteinput/remoteinputudphandler.h b/plugins/samplesource/remoteinput/remoteinputudphandler.h index b7d13208d..c47f27827 100644 --- a/plugins/samplesource/remoteinput/remoteinputudphandler.h +++ b/plugins/samplesource/remoteinput/remoteinputudphandler.h @@ -38,23 +38,23 @@ class RemoteInputUDPHandler : public QObject { Q_OBJECT public: - class MsgReportSampleRateChange : public Message { + class MsgReportMetaDataChange : public Message { MESSAGE_CLASS_DECLARATION public: - int getSampleRate() const { return m_sampleRate; } + const RemoteMetaDataFEC& getMetaData() const { return m_metaData; } - static MsgReportSampleRateChange* create(int sampleRate) + static MsgReportMetaDataChange* create(const RemoteMetaDataFEC& metaData) { - return new MsgReportSampleRateChange(sampleRate); + return new MsgReportMetaDataChange(metaData); } protected: - int m_sampleRate; + RemoteMetaDataFEC m_metaData; - MsgReportSampleRateChange(int sampleRate) : + MsgReportMetaDataChange(const RemoteMetaDataFEC& metaData) : Message(), - m_sampleRate(sampleRate) + m_metaData(metaData) { } }; @@ -79,9 +79,6 @@ public: public slots: void dataReadyRead(); -signals: - void metaChanged(); - private: class MsgUDPAddressAndPort : public Message { MESSAGE_CLASS_DECLARATION