From 571d548bb86f9bf7eba60d5ee4d1c744a4163c69 Mon Sep 17 00:00:00 2001 From: Jaska Uimonen Date: Fri, 20 Mar 2020 10:11:10 +0200 Subject: [PATCH] add mux/demux documentation Signed-off-by: Jaska Uimonen --- algos/demux/demux.rst | 138 ++++++++++++++++++++++++++++++++ algos/demux/images/demux.png | Bin 0 -> 41697 bytes algos/demux/images/mux.png | Bin 0 -> 41331 bytes algos/demux/images/muxdemux.png | Bin 0 -> 20147 bytes 4 files changed, 138 insertions(+) create mode 100644 algos/demux/demux.rst create mode 100644 algos/demux/images/demux.png create mode 100644 algos/demux/images/mux.png create mode 100644 algos/demux/images/muxdemux.png diff --git a/algos/demux/demux.rst b/algos/demux/demux.rst new file mode 100644 index 00000000..d0962617 --- /dev/null +++ b/algos/demux/demux.rst @@ -0,0 +1,138 @@ +.. _demux: + +Multiplexer/Demultiplexer +######################## + +Introduction +************ + +Multiplexer/demultiplexer component copies its input audio channels +into output audio channels according to specific routing +matrix. Multiplexer has multiple input audio streams and a single +audio output stream. Demultiplexer has a single input stream and +multiple output streams. In SOF codebase multiplexer and demultiplexer +are implemented in a single component as the operations and +configurations are overlapping heavily. + +.. figure:: images/muxdemux.png + + Multiplexer has exactly 1 output stream and demultiplexer has exactly + 1 input stream. + +Configuration +============= + +Component configuration defines how audio channels are copied from +input to output stream. As ASoC/SOF audio stream can have up to 8 +audio channels, a stream-to-stream specific 8 x 8 routing matrix +defines the channel mapping from input to output. Because every stream +is fully configurable we have a matrix for all multiplexer input +streams or all demultiplexer output streams. 8 x 8 binary matrix takes up +to 64 bits and is controlled with eight unsigned char values. + +.. figure:: images/mux.png + + Example of multiplexer configuration matrices with 2 input streams. + In this artificial Mux example Input stream 1’s channel 1 is copied + to both output channels, Input stream 2’s single channel is copied + also to output channel 1. + +.. figure:: images/demux.png + + Example of demultiplexer configuration matrices with 2 output streams. + In this artificial demux example input stream’s channel 1 is copied to + all output streams channels (1 channel to 4 identical channels in 2 + output streams) + +Using a routing matrix means also that this component can leave out +channels or mix multiple channels into one. + +Topology +======== + +Previous figures show that the routing matrix is difficult to +parametrize to be easily understandable. As it is sent to firmware +with 64 bits, it is quite tedious to easily see from hexadecimal or +integer values the binary routings. SOF topology m4 macros have helpers +to "visualize" the matrix for easier configuration. + +Example from pipe-volume-demux-playback.m4 shows how to define 2 +routing matrices and a demux component: + +.. code-block:: m4 + + # pipeline_id, channels, matrix_rows + define(matrix1, `ROUTE_MATRIX(PIPELINE_ID, 2, + `BITS_TO_BYTE(1, 0, 0 ,0 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 1, 0 ,0 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 1 ,0 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,1 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,1 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,0 ,1 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,0 ,0 ,1 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,0 ,0 ,0 ,1)')') + + # pipeline_id, channels, matrix_rows + define(matrix2, `ROUTE_MATRIX(5, 2, + `BITS_TO_BYTE(1, 0, 0 ,0 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 1, 0 ,0 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 1 ,0 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,1 ,0 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,1 ,0 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,0 ,1 ,0 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,0 ,0 ,1 ,0)', + `BITS_TO_BYTE(0, 0, 0 ,0 ,0 ,0 ,0 ,1)')') + + # frame_format, num_channels, num_streams, route_matrix + MUXDEMUX_CONFIG(demux_priv, 2, 2, 2, LIST(` ', `matrix1,', `matrix2')) + + # demux Bytes control with max value of 255 + C_CONTROLBYTES(DEMUX, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, 258 binds the mixer control to bytes get/put handlers, 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, 258, 258), + , , , + CONTROLBYTES_MAX(, 304), + , + demux_priv) + + # Mux 0 has 2 sink and source periods. + W_MUXDEMUX(0, 1, PIPELINE_FORMAT, 2, 2, LIST(` ', "DEMUX")) + +In the above example you can see that the routing matrices have only +"diagonal" 1's, which means that input stream's channels +are copied to corresponding output streams channels. + +ALSA control +============ + +Multiplexer configuration is loaded in kernel/firmware boot as part of ALSA +binary control in topology, but can be also controlled through ALSA +controls. The quite complex binary control blob can be created with +a generic python tool: + +.. code-block:: python + + python sof_gen_blob.py -a 3 14 0 -t 18 -m 3H I 1B 8B 3B I 1B 8B 3B -v "2 2 2" "1" "2" "1 2 4 8 16 32 64 128" "0 0 0" "5" "1" "1 1 4 8 16 32 64 128" "0 0 0" + +Producing following output: + +.. code-block:: m4 + + sof m4 and ALSA conf format: + ` bytes "0x53,0x4f,0x46,0x00,0x12,0x00,0x00,0x00,0x3c,' + ` 0x00,0x00,0x00,0x00,0xe0,0x00,0x03,0x00,' + ` 0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,' + ` 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,' + ` 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,' + ` 0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x01,' + ` 0x01,0x01,0x04,0x08,0x10,0x20,0x40,0x80,' + ` 0x00,0x00,0x00,' + + sof ctl tool format: + (4607827, 18, 60, 50388992, 0, 2, 2, 2, 1, 2, 1, 2, 4, 8, 16, 32, 64, 128, 0, 0, 0, 5, 1, 1, 1, 4, 8, 16, 32, 64, 128, 0, 0, 0) + +The sof-ctl tool can be then used to set the parameters through ALSA control: + +.. code-block:: bash + + sof-ctl -Dhw:0 -n 22 -s demux_coeffs.txt diff --git a/algos/demux/images/demux.png b/algos/demux/images/demux.png new file mode 100644 index 0000000000000000000000000000000000000000..3d87dc79991a263d08f7c17eafd43ca5b9b82e70 GIT binary patch literal 41697 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 SV$FFAGS1W0&t;ucLK6VTi-oxW literal 0 HcmV?d00001 diff --git a/algos/demux/images/mux.png b/algos/demux/images/mux.png new file mode 100644 index 0000000000000000000000000000000000000000..65df01bd27d70c57257c314f702ce384c72c4bab GIT binary patch literal 41331 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 literal 0 HcmV?d00001 diff --git a/algos/demux/images/muxdemux.png b/algos/demux/images/muxdemux.png new file mode 100644 index 0000000000000000000000000000000000000000..ea4b96a35de5b6f72a926442a48e8eef0031d1ce GIT binary patch literal 20147 zcmd`7c|4Tw`#+2isVF5$@=6p%S&On{Yqex6YqE^WlI;6BXrodjA=z3iSwbdbpHV8y zV2YR+%v6RLGb4mUq<-1E1`~YhNy2QbBFoqNQ@lrf{Y zXqx!7qP)ejlrqYERIK{vD#qj2l#!q5w{&*VYT3E3k0y9~C4bq=*(>Y<%-*>kL$C8~ zC(duzXOrCmno_7|YlzD-gxspw(RA1rzq$W{#;r@_w|EUjt>ZzKH;vW{_n?2a6t8HN&kX}+_%#TzeKr@oh3kGEck7-Tr0=w-&B?33+y|paUs})nOwZ27wl|nN&n9`56TLXf5d@oS8?3Czr24Y(?=11f_zvBue4xqAJ&8}!zkj=a5|j==%>vT+_vFb<4#q?0n206c&5?db-6$BsBtIZ#%C-co5 z=^57fEy)X>K^7i=Wp*+QzHGD^G7X0~FJo+#W6NmdUcAV#SE-}NmMfjrmgRj_jd#9h zRlvso*)KI(OTgilPmSIes$FKcO@HL^$If~3E1WGboJ=N$>WO5HfDl-3n^HMatWV@i_F%TWbA z+l#JOZwVu8AYih+vxfTy(YNZPU!3%wmHb3M-maih8=lNoWMz;;8fGSZ!fL~56HedR zIN+(``ed4&ctFFxY6^JCVXu70?I&qHF}rvh??uH0A*|L3GiDqe`YNamYiqaI)U(8P zC4CR|d!~R7BG)VR?07=mSl1n+VN+0-PF-BAb{y|toxS_rWA|J1R@vsA&56648T&J5 z_Bj&;cFSea4hL;MMaVw*epmBAy0ruLmVDl1NW$yRJN+xOOzd-SEfV;Y<%$L0K&vhzM}Xv z^X}Mo+2&z3)+=k+hEA)tugj%0Y`m-J!J!bk>hTpJeT^~t^(Pb0SilV8uDB^SBbdbb zoFkKT%B`Hq)XC?oYXw8viyo45@3}MCJA;Oas@|M>X6;;ow@1DPmBNY)s=~Fuq9>nb z=4*M+9|!9P#v>^UwGvvfs-xPF7;>~&I@u%+t9HjE<>`QKz9!y_F)t`WQk64d9`;3j zB4q9wWaz$iGYTd$yqJ+*pIJviaB0K~jNVYutzkw4n1x{8Y4X)B2k+0DCa1oiIr}(J zh<=PO9F5#pw3wahWnQviec*Tz)~loF4mZp+4)JNKKJ+RWkk1vei=$jHDqoct?D1g8 zk$0$R&8gQal&M)_stb=F&%aF2myr0OkaMQ7@AlnIYS0_KY+hSob-%0Ar5b@c^XNc`u+&iWgayE&(- z*4Z%Y%Oyh_Rd};m0jx30eRxAR&AI5+n(h1zXs@mzgRKXYPbSXG!skKIBc-hK z@6FVdXMP>)eb?DGl!jf*-yESNN?6RlfBtQI<#dH`aFHBm}u>Ywk`VojbEUTxkUnbmbSV^XH- zHSc?AAAiils}snhoV?urA>H)E>D;xB7N^ogPN$G>2GD-oR7}rYPf0zMj~YPG4Ty++ z!^Tq5g_$Ayf3^Vub=k(*QVFe;kY^?v-l*#-qxt{1p4=ZNZKFx)d#%wt{lDw1^ z(}Bv+S6-RQExg&NI`#Hy+stSA+L14Gp6;b~>~`?X@~U2p+>H+=A75V5E;BlFdnY;I z;edxCgXI0+XqfEF@shhGZ?}H$Z zhj}&w`7w~Ut!lBiq233?t(s}ZT7<3k-NyQIV*~RQLw@%WZHKYT!FlZT)PR!CVRhqvr`*^K zy?R!LD`s(2ul0#Vr-zAoo4p+|$~=w-b~b|7aT$fj3)Sg8ufWGUt=)1STWyqk`b>F4 zynv(L5)Rj^jEC24#2&84%S0f`3j)m!5e^wL56g=V(Ukn_Y(XF{AMUWy8mnK^aR@%p zt=ckI=`dRF6Nq@oeC{YS&qza@%A&CjPMu4Ftx`A}CuKfgaABWPVbGB#)wSGLHE^huQht*sM@wW+LSB?a|2!gAL2@3O%Cfz4E>x?v3L+ZvY4j578f(Je$Dp6!Zp1dw>4{b zRQdRiEQoES4K1waVrT=_$7S5|dFv@rAq+x9eG9k~W$%8`|c-Y_^)wgC!2H8|}jrhc;T2!&yIY z2(QX-^HGB+dhOUE%1QqIaH#OdGGv1eMFl}-Mdx&k{jkt0W*@G|GV#aGH!XB9sk?62 zhoQ7A!{@QxSreEMjL^_h=4%LFPD5$KSV-|>_lSP+;!eGd6i!Rt;xUICW(04;5+nm> z0-w+zq@#wHXF}4+9!|wn?5!eiztYiRas>4PR&QkmaKn1nPoa#?~xrE$)cyfSX&*KJ~@hNN%nqM`zrAPnc?&VMB9iuLk&1S(`-z- zaYBKRv5dUCpeJo#(O@q8L;9UtMEu6_Ljz+|7t`IOq`xgJ&Z)s)B{UkA%S?39Sbn{+ zi!|S$2?gxTY@=bpumdr~Njtc%Oornw<-72;hB=`*hMp*UHl_dD;Bt##hMz2tD%pGt zf+LPL=zO)usAF?u`x8C*4%mD!^5hG6!mC5v^&w@tEn-oL+30TXoIypiNAfo8;B}f; zsj%Q=o|d=yTqZ}55O`4|=Tp@^6>GmWqPwczDPMCYn@m1_wa2bMf-M)?Y1$$BMTt2z z#`NlNeB(5fMX>FJbikT39Qe;r1gIP}O1npxrf@~@Ue)-L5J)n?PhG%7xQ$}uj zrk~v6Rj0^o9m^elrG%TJuJd=Tzd7nHqFo?Qm_pN;z;kt*9uYlS_U<4ejd8NxgMhi| z<(bFw!XjfDaEHtfX<`#A)0vNTqDQ)xQbhUDaq zfW5f&G!uKG_e8h#A3+SQb)COow^7yNI(=@ifP(NQ7vL;G;K1gOo}u*X22VdpU>n$a z^!q(ryo&h;2E6Ykl8sDrRlSu(uB-u!YopxY0zM3aIk@ct3N=vJT?sHCkbn-LQUte( z1A-=mUZH}{|LGEf1^hf)c?F@!#v}VX+Wv}Tf4U+yJw!imq;sRVdwc)2SdE;7_t`|{ zk7(U3FC7J-pnC!;)Igm#(s}RHX%%X@Pqlu3KK6WV#sy-bx^H8iqre}*xxo&KkFcH1 zzhWnM&II=JjL1|(eREjTJG{YnX)YtCmKx^}}b==vjNebpAL8 z1*`swp#jz`R1rd%B`HB2fa!k-6Ct_DH`~EuXN_vc2XIlZ-*#E%Fy*wC+vPT(S*cE- zvy~Yzjk9|Sg9lJI$PDK~WuseLNY-%)#>#&+6tQj^IFM1&vpn`9sXGUADM1JW($;?( zA@_A?RGnye)`UC{MbB{ZYO$J%7X&w5PrQb!2DXCpHff&HsElxna-Ll@8Kge+A^2gK z9@O~);%qm@-@h+JqxyI*B}8hr_S+f;f1NtZRHK>bxM451)AgbGMwRlS3J~t!>)S?DsO&WI85PQ)z0}0-- z@RKzbaX1}T_G=K$o`mf^_#XrFmoJ10W-oMn2cwU$5GNFF<%hsoOGsy(&-)J@3V-ie zB$T8#_F4Q&PVzmsh>}+ehi4@0yQ;2j98lMcU=<&)(f;}nHK9Q@2c?|(kb$wA0Rzb) zEGp4A44o97P9Er=azI9D2K0+9M1L{C`Cu%vyzTn)LY<0}D+`A~9L+9P&7hlb3M$If zSgF)595!_9_%&~b^faGaJ8_0_y~DkEp%QqxnSnRjYK z;92wVCRPHq%E-0&YkEkxU7VOI-(gE}&$3b^dHKtF6$Gp7_+ttii%LV!)YB+3NV(i9 zL^2wx$+-3?|4_}lTNHtMxJY2DLYFu45(NU(+y3C!>L=RtDoo7d>xfXoSzZa}liO>7-Qw* zTVlAXPxKQIe;8v)R$}Tf3#?yRg>+4i_xRNb)ePx3e&!w8u@1PlKSG-F4%zV}ZIb=A zg;c*e>j^HU$5O!QIV{7c)4Mx}A=d64N?es)5|mjN@p;qtcbiC&dxMLUz{3BnRLPgH zFe$q^s7j=alZkgv#kPGzuk$Z?>BbJR6fUm`K=V4%c)D@*$UvwuQQDkn7+AMlRCTYiKj7!obkRD~4n%#*XivFC+-%#^n_nxb z-Pau>d?Mogg(n5im*eeZvGTaDIl#Fqb~C2%nWq()>+v{3*WuoB)5A8o0@;Q;Ldd}f zR@XYO{cG(U;P)4PGcz>I?@=Q!@$&8o^@hA3S+Q2{?(*RgCm&&(s_k)=)T9%In;rV? zBsHwD;r9(Ui|$fnPJ_%o(9dt8L5HJB;MOgVhtAF}DIyI#sw!UHI^y9l8KQ!MWjy)t z*HlHFP<>;gAElnwg*N_J`&_;%= z<<)i-C_-J`5L-#r*YA=l|756;8+D%MqVc z)TJujGUhynAF*SiNHQCvFAZtMbp60EVsN<=oYGjDH{U%HdFSgFvDK zzub3WDe3SstWtINZ&7Z-w3lJ~e{435;bx1xC*pR*!v2y?x;aT7X4=S?3SZHPuuH2H zO!i-4`76H(!9-Mk^(1?Q@AHqfe+_&m@6^v#&2LTiFRX?DgTN-9&?TO~H1Y87?yrH+ z3?}t=YupL^Bil9DHLz*;t0h5R@cY+;z)$~{ac46y6EL8qlrb61E=a>i!S9tlZr{d= zrM!n412WobtK8V>oVs~oFR62w^Xye4LgHbl9UrB6VFI31*`41g5G$x3WLdqCUzTlLket8aRCMpnD6Wfs5SwhfeTay zNxTXD<(rG2ADV~jRoTVD ze=aK_(X?+hoc2!ULS#9+maMJOIbiU&M5acCLScTO>Z7JP!8G6I7)42oY8tzfq2s}A z(~dJh@JP>z=%xz|r)Qz(Th*xDQ7u|g3_Ft$VvM);%)LxHeA!UNCxbmZ+dbvOd4j`u zRK~O{Uz5|P-a_84h9>v-L}c#dN#b*!Dc64lb_SM-YcR3%$TeVh&|2Y*ABTjYijwrB zdllxxoivUsJ5NP@vbp%Tjj4X& zm3TeH8i>-1h;Z1GGkCDN_1@?Lzh{ngvs_-}1r}Xfe;zdwn$pv%^W}RAzrXm_9BT4+ z_iZ8e%h|}>0Tlgq)8E3{7w~2`juDqiQC+JunkLV$pQdow7~j$kM9X9S+HaF6vtr)l zV{xg8oR-y8TnxRg=oJz3Wk%l{6Z=B}7q}#_GVRdvZ`c6LuhB!adTU#POtbh_#N;fB zx$#=JZo^tBR7fH9IiIE$wbSF3J}0AsE%qW#|I5DCdV0pMMe=KPiIAF7qryO^%g(N=*-`Qq6t`fkUIkx;o(`Pr~5>EZc-{eVE9z` zKHhA)T1&95;Ni5|92z*n9yGQa``bxTJS{9fI0G@w0jb^}KiJ^! zyoYxv!^my)$Dl*S5arNp=IZ*bBYHeZp9*=i$x;}$g}W$ecS{;l7r`E_L)YPJUfm7P z=m=?|(H3WBr#xH-IjjFxsYvd5q$Y0u`Qu*>B6>bI%Y*jr1*T%pD~0C;K2BXPMC!~! zG*l52hx{%jcrtaF8kDxsZWP^3f9$f{-zM}wIPBkRTA1tlHvNYy7vWlv^lzWPVo?9} zC2(n6rwm0)kcIwjMSmXs{~awZ1|b)UvL2Z+aT>j?WRJuj+L0%M-qN>LIkms;dQA*G z0XP@H^Hy3fEd;u-LlPJC>Kk-nOG(VxFWY@vP!! zwZk@?XKv6(sNOt0FeRb*o<5>ElQX7$?L}8VCf0lQvzo*iAS@VjZDq_uG5lKfwae}o zkw3Ij!?TsWlv&@;be*}DrhKILjZSS<-OP)a*{$7HkBS=AFr~~x%oO-aP;;q1HJy*8 z?>6#BMVKJn{Er5`j#_%Jt0NF|Z1(zEyZZoHtaNhEWv1csZcV}?A6ZPP1wcb9LCR?V zg3}=YPg+|pK5AW>NPQ%y`}4>wY+?1vZCR(QcBM<@y9LZ|s4|z(uOcQk#2^iDAG}{VQvl2DY*u~*1!e%P z%Ks7Q-ai!Ezl2Q4?bo5MPimXI51=3f3;#SIi@_ehT656B7w!!KL2g)GQ9*4R-72dn zrc3zjB4xVReX^m#&zYm&rUK$VG|N{(2ggcU5 zk=Ti!T+Qtih%uZ^BJTJgF+DqBRf1Ly~x*l4wAa#@hlh6P`Uvmiy z``)qzMv{9g$1sM6_aqm;#GQonue$r^@vejz4aBZjiQvH^axTg55OGly7~B>B@c@u| zzjtNmK3zVT;Sb(F-BKgAS6=37|27xr{o7Hwq(Ha-cWHo*cb*2$4=nL*zciFWWCQGO z7Gt*|_TH_RGdFhwDfa>c0Z`SgCBB#u`;u{QRV?y;;LxW4jz3uLq_MHF*H@A?{VUzD z=@_^ttMZ?~53e0!8yKWjYZD}++eppVYIF|nX!R6@pl2 zKa5-jz_|<;p+^q*aYC4gi18QK($W=1X8K=`g=DRzvww09oV`U*k^a{HI>86=A#=yh z<|HW|2z2g0^BYb66n23?J=d&Y;7XW_@&EJXwUq^T1bD+_Zj1%DApI>Mf-2EG~ z($)Vru^y>dQV*u%)=&<6Ze<@=Hf&bCXe|h-}TyFu;njgw{ez}*& z0Brw@i+|bD{|w3@%<47~*xs=GybA(y_5|{{XBhczMwep4gjej4G8WU~%*?fL9ziWk z>1xyv;Q+}}nNmXmj1Txx56{^zDo&JbpzsOejbYqM&=EH)`kP#t`zEaEks2t12aPVr_WwICNWW&@|tTXxZ z@1#W*q%-Ls*Zb$I-zR7YE(S4Up6;lU*teqqMg-Zw<`mC&+RVjt`PpI|fmZwLLtLds z^DfN`EfYr0e{hSSb%E#QAke?otG~=s;X?}D$5688_RDYFV9re>dD34B_!rNGCLAr2 zjsj?g_A%6&*HI`ci60(D(B2^eMe<)6)g8MyY!e#bxz0D)yE-yoU3TP+9@*ZVndwp* z^Y;FKNDkTz+csB#Z+!Bib0iXf_o6UqE|uYtQ>-`s!w><`BGl|J>jC+aj3|k=|GQ4% z^V|m|3eCc!icu}(Sj}LzxL%I>a8#5`pYTYrnH81&E_1_SYVLel(P3pMhvFv5n_R>z zU~(x$!E5Gw)cXdEXqBis4-M?{LWIXgr`VJs+RRN~=d6+-`>kJmb=DX|O8S+hC4#M} z^lY~}DNQD4OpkQl$Lc`RkZi<*GhxGSH-r0aRARd@3wG2QfGICll=zQovt#^Q`;wBO zyh1w$cso#7;7R`>;4j;J`?~u=P~xs&l{;ko65s^L+MoG{dar^ z2J&y#%N-Z=5@ZbAIQ#g|`ugP@p+ExM<*!`(iuB(VfnNdOmnZxWx3XetD^-MF)&%l@ z2;cs4pTPedi@Vb99)yhWxPEEZz=${e!TRq$U8vZzZJ|4cB$gsg zmAE|d-R|Qq2b6EOruiKt{v43WGF)cNEoYD2+x!Q_x<~_*@YhSIO!fcXmo5X9^Jly` zhsEwlOQ+szm1KU0Ya>@-4FO(+79s#4pg4u;kEU{@F_7nm*&Z}hH(Wj_Hxw`qL8Ter zRm~j_NGcle1YZ?5Toq4;3_4s!QCW z6EN(RGSt5}%ZvnaFBirfQhJTqg8}!2UFhoE?J-d33O|ngk`eU3Z;M;T`n#j)>aJ?- zUxNeq04kn^A8u${87=gN;&HIgwU}6ZcRO9oexugpf#jw{2x)LjqVL~~twK#L`o%6Z zA92-kC44c|GlFb{y9)*tN4ZLaDyjeVnp^mTwjmw@^3F>Uj9TgQ&B9hjW0B&Xhn z;73RyU>lIO%3OGsA$D{*dU@(nL}kRd!N}o zl|<)6=Tlf?y85|i&$A&y48*=R2=#W~&fC<(T`gcFeA}9@^ZW0n1J1Bep`F&}R||2k z)$*d=lNLOhYST!HSzEJSx9T%rAe>`&AGXx>eG)aiou~@!b|t$yh0&Hyvh-YYQuks8 zFsU_pgOWsObMa)|+VBE^t-;86! zB~N_H!JZ+?O#bP&O(a2wr0WIpbq{&7pI|0x{P?FGd9!_}BCUdZa5F|@(I*c2jH`7X z_Niy5p|`4etMwKhFV`6c9HJU*MeTh2 zJj*>S?PWf{n=1nlGQ<1<@$FJ6ZegIFJ@1D}{v5KpiD1#6N1pIQ#Vp=GH7_8SQ)S4C zj>U>$np*2A`J5_0I%cAOUKfjxfZx7Th_mj%dd-X!ULB!w04ZpjL~t8Qw?9ulTDP;& z`?y~8^BTtYi%C0%Ao7w_?SfiVnapv__$<#cy`60=$py*z5#{$6@1-|@JalD4Vb#O^ zpmKLIPW4BhqmPV_r^9t$G;eln5Qodffg6t8h8c#-1gA9Oh(DTML#z+hV32db^3~Ov z#G>Rm8)mQF6F?^yOSvoPktdxh+`ptlxPLo5!mkS5<~C6C%7ihOCgwPVRI4_rE z`Xn0_`N#^F5|N9D&QU9=tk8wZorFB{z}YpYOk_aT&bUsCsxgK$b1v zk~=Qb;YPH)^@5OoIiN{t&xDNrcH0zX-W?yQBBUBLrG7++znv)nnHxLTzPDH^0>-EF<;_^V7KP~aao)C4Oa^?%kWgUl((86$rPwa;td1EK;P%OzA8+WO&zG#8-9GIJJg=nhI;ftYI}JoUCVobkk{`ZkcN% zQ7v-J$l%k9*u_8<+OgHO-X`&WVJs{w)fg?^EIjOP^sdP|#SRHmxdHVuHO$=uh_l(< zTqmclCS9~>Z&7A#0*_xmKF-+m#acV7d-j@@jZ(77|Uy-n(5%{-|#pzsn=SIg61t={JDtQU3bye9OT5HfMmDFD6KT zaSE8yTdzT_$}5icAjo_dW~;6bzJ7>c>2BBkfeyBtU3I%?;|pVF42>gHI@YdVhD}Y(<|`dLsYMyz5q%zdw?6}#y#6&z|*QV_}bx5Rz0D0|I-d-M`A@*>rB2+ zNkvNi%?tf0=P``gc(tjTSH(A!j_3ATpmB)z2(^74+X6;WbE!TZhi4b-<#TquAIOz{ zg0yK$tn|o9!3iFv-F7MIPMOd_?G^nx*Ed{46YL*Im{}%MdUeOs&0sNakNzj!Fb`N#XqgdjTn%x+14yCMtawcwpMhD@c6{5vk?@6AO(Yz z0=WB1MH3!Lu6c18n^3*_Y`FgC!0unOe9YpoN_+5tNGajml+cXsz5RO ztm{dEY4mS}Kx7@oD(ThXySNJhiiA)gFT2E(n+zG&@AjoZI)mgcK<@S__>k%u-XXbP zQ_qd}Z70_GE4`NT(lY>l=XXPjw_!pM*CuvfRlv8gwd&rVe}4G%-YmAkny|k;Q*U_4 z;7_D>4NKCT{5X;z&^0$PR>bWF8Z6i?T^SOPe}!JeZ5t-za{1ePr_698Tkmt8*$=YA zJ3_0BRt5;%>m`CnL;fx!AZI`9950gSgxf(p3*Xl&iLZ3ylDR=hZ0&>RQ=nhJcD3cheJ6 z76g{2xjT`S_kYd~%TXf64|H8zzI?#E(5mZG#nyVCy8>b`NTO!N4+ko6P!Q=Fo>-;usJnZVgnvHH!LFD&n${%nli?Lj|yA4o;iyq}6CT*i- z-qp;$Pf*>b8!}7EZm`pt0d$vN5qfy-?v+w=m_YCGp#C~Wj+hs?rGZB;EMr=v^?Y= zyA6kc19~+kBcV3hiaKyZ`NaI(+1s-Op>-Wzfl>@W(R!KDX>f2B8Og4r*GsxPFV-)M zXwQG{mnc1hn6~w<20gb2+}%0On!0!&VF4%Wo{DA7a7dj%r?{>YI}lNTSBcUe4L2hNjA-}GJem6oNw3J0R3%sVYk zYzNF_D))q-mrRj;3_ziuOEDgL%saYo)kW#v9yLy=q7ht=-RLWN%y1+ol|Mk1dhR>t zicvINU%@7>6%@I}VCkULt^#xU1Z>BG~@T1B~y4ZX-bKE%(Sv`aHfWPIaG63JEZP z#nBS&W?AS_^w(EraPsklxg3EPszJeF`hYs7)lEL@-ZmfYp6p!AyW|h`)x6ET9B8ld z6R)Fe%_FL?rufq=bw*QZF&|UFf44t?+qa795ovfaVWl@>2WX{6bgXXkz&Nd`wQgLK zg01`xEH34TC7Bwta~hn&^ed&Fq_JoY+fWw6orwv&j?`+K^?`$R?_HjT`rN*Li z3}Sd(1i0&Q>+v`%9!1Ls;&-sFW_vQ9Xo`N#kGXD6%c0&5DoJ#^6rki=tm%H!&&fwI z*|4PGKm~59GxI~Sx8dl^iJ`Ep+n(}x1UQ8iH6A(d*Be9(%G{(#KdRI$KBAKWGxVKZ zKJne8pr*6RNm4Bhp@0Zmt$D#w($iY+^tJ@Ruo@hWdMM`<*8=uH#?8iKyF&gJ%p|U% z<$_G$!r|k=iTMWd4ase{9;fGd@D}mAy{&EwR`NaBD1Gzf!`VTjfOttmeq>{(pc651 z`#@JDQioaUzLgveN7c}ZbgVQ3vs*W8AP~XPq<_AcF%I!QVi>raG$@*2$SKAx`LCi+ z-$U6O&TH%=IO!8LL}J}`48*s2%XdczNz=`279^`-To^CAOBXL zLmVYDSLSH(SA#|A*W$`UFVQkMELX+1q{|c+ zvY0wQ@Iu+}l1!cPph0$n^gjd1(H^m#@F&Uzn-7_?ldk%8LMHNbxQZdS+ z3Wk&YYhCVJ9e%)yFMRX-N!uhC6Cj(_aeMwmS24S*`aRL38o&^@+C$4Y4v?bBDap~J z^chY_ojYam+Vc3IVHx65%lo@RisMwrTM=(W@}et{hq$Xg4rYf`9?!LZs##~>rk3ee zRR!F$R4{6d(X=x+W|!IkpaHndmAAQO2US5pT^E$6{Cs^uF#QE|;@UGv8@kr~3i;5X zBN!Cz!NcHUlZ)7AE|WSD8^e0RsmKkI#qR6nDEZB132;j>;CRya)!`flb76G``N0Gy zU7zvi4uoN#!p?O_2yTPW*(Olu;U0Htt~w84tGe0;Hd(fccE`+h+!`n%P|Xo+_`;ge z=lSBGO76-*A&A_@Z4LbWeF=eACNY@8#R{Ov&z`M$#fJFv8_PkKpU^}j(AfhJcQ||s z4}+qOk3lsWA`#!JH|Y3*fM~vm3L8*w_QF;z67MuZs(o=JVChqZ~ZiQ~C zM%rCJPfi!pez|iz_dspXxXQdITZ%JOvj#de14V903XxM5+w$pC+hPRZLt6|9_G_iL zBlDP7NAhAP%B5cE;~+jScMQ#M1*QSn`Egn<1Y4Z%M=_IWekV2clXugxi&kcxlvbtY zXEeFA55}UT{E7|}h_VD=W85uK5=3!cXAyrG*RL!}dc}fL!~{jROF_i_qpCv-P@xE7 zP+x{eF&G*(75lJQyk}k>f;5Jk+CwTfFLD~h^;@8x(LD589{aK05Bm@V*~$dV3hiXS zj&FsN%Sasr`Pvoc$aH&CypabBVshImdu-Rs!569KhT7xC=|7$6%V|s|gkDfxUX#o* z=-^R<5TZg#wmDgU`TA?dA zmC%+!3FGH-*qwMcDL8a61#kG2!Zsn4sfm(q&OwF0F$6a1zFYCSqGWHpBhyoiryDOk zQK+^Be3t;UNMJA#h310$T6rkps`{$KQaqBOe!jw_MCFDH$#{eBk4ky~u5fPCZO&Y+ zCHmQts?>5z<~75MMdMLU`$D_Z->ScmZyQQk=exPR{GEEsGZ~EVAevpyM7D+ME@@X~ zg$^X3Pc1tlZSlO>LL2IjKY^G$(DFYL2hNcEQw__Izhoz?)))rrZzVp11<7R^miAas zjdQenooKXmpBXVky0K-X$kNk1%koM&p`b$W32pmRi7&$$0?nWT!)>v$lTTCbR;TsD zFMGkkuN^a<4tjgC>0O*4vpmc;))@bHM<#69a9a+kup@(xv&Sk zIvL?f;D}3g4O&P8?t!92?)|x+r<_$*6MzaXP_rS;G?I58e+cMSXW_%li}2O8+K~3J zMsaGdk7SV6w&NV&z{?Qv4rLA$9#*dxb<^vRooffvTQKw z%6h(^FX;8Y&LVrALcsTG*hm`g0*AgO4Xc37)F}^%@syv`^g+@r1u7D@s#wQa-D}4q z_8l+8vL4EZjm*yFF&~#*+{dTME~>T8ePRlB(RVg4xZzaXTvbHY1;^&H_Rb)0PNQw@ z#3=TD2svbe)k|Xsp zO9|@AC~;Ma9?ywAPp|xj5GFxqBP3JJ`tVoH4oO6#c_mW1)$x5lBDH6q938+}E>O*F z(~jXR1^f{eftmI|F(!)5ZkJg@G6%}cd>84aamnKpZrLw9(GHc<}#GAXZWEl1y;}@VnChtW0_z?MRHaWtncfFf^0uzozdcIN~Qj@p+u2~KNN49qKHrSg_i+Ghg2XQp(aI6t$Q6v$4YTygw% z;=bxp+udQPj~9gB8@XoY?ZGSA_p|Tm`e^r?%#bk(?b)rsoCj>&Vn>MO@($bPwrZR5h7Ok4j~6%U zcb~kvR7Q|xowXZaEy~lK;01bEmcj0R$o2 zrXzc)Ix^h6_#il-BNiy+zrd#!yQ!Xj(meiTHso>hbLgyzG^6t%d$v#ZI)TA>rjPTt7N=q&g{L>c-9iJ)ni)gxfLc3P2ip>k3UKG2l zO5A|q(?)0~c*xG_XV&}cy)-R2Wb-+CFq1vWI^hRO&2*&ksR9jsy52M8H(7b)5fa+s zn$-=Q`hzFBZVsp5!xkD?)<^be$ODl$?m0^6bla6%A|xYw^Lyf3)$9n?N?yCR-++bD zk58n|fG)&4dYa%G%=!mkhJytBnL?*@U%swp(EaJ?Bsh`(#;IP-r}*sWL2$`nH!?u ze42ej=W)*!kT&B8Q-+q*-qDupmg343P}u{g{t{R>v5xw|erga1Bn_v+4(c)=&Fi)` zZS9wC&OB1$*Z*dL-@l~1MV26slTfxA3X{9FS9AiTVkMXeAG;x}+SgO$h+VvnBQ23z z$0IM?nzGW<+>4mAL1R0ib0q-pauxl+dXL%}D`Dhf?;C3+8NcGQg_e%`xzG8}Avpe- zx9R|+^lc3YF@=w8>O0?OUk+A!pBY?QEdR#sd#L!aAyJZEF)fR))B&N)vdTSR7oUJn zKJbrhLCUP@v9!#5uQRyi2jmdqu<@%vVo*fBFqmvEh}}dwAluh&%HKB?6Y8^DHC5HE zEeOfV^cueHd7{q9d(iM{FWPj`dcA)N%E(K&qY-6lkj4s7+hyx4b*8+uL%1U_)*JOq zXSA_1-f{hf;-~ISZm3E0XzutctpBLDL*WGOFp{RaMTc%2Ve6l-M>t3bB3ZJPlJ|C? z(%9`x@qe83yxa6#cTA`uJczv(1M^kBVEJ+3^v>psrt%Mpc{9dQ6u`A&hjx4ZfA-Bl|rA@dg5MP-3x- z@3TrBbeH>01uI`t@aqc~K*|79yvf*J7!$%hZ|bTw{;*YwX@Ysd{U8kdtUUkg!{9Zy zCJf!+VsG&OS4PAwi~<58j3i~>Fn