From 5f6ca4f519a1a9375628102f284ab059fd0ef4a1 Mon Sep 17 00:00:00 2001
From: David Warren AudioHardwareInterface serves as the glue between proprietary audio drivers and the Android AudioFlinger service, the core audio service that handles all audio-related requests from applications. To implement an audio driver, create a shared library that implements the interface defined in The following stub Note: This document relies on some Doxygen-generated content that appears in an iFrame below. To return to the Doxygen default content for this page, click here. Android's Bluetooth stack uses BlueZ version 3.36 for GAP, SDP, and RFCOMM profiles, and is a SIG-qualified Bluetooth 2.0 host stack. Bluez is GPL licensed, so the Android framework interacts with userspace bluez code through D-BUS IPC to avoid proprietary code. Headset and Handsfree (v1.5) profiles are implemented in the Android framework and are both tightly coupled with the Phone App. These profiles are also SIG qualified. The diagram below offers a library-oriented view of the Bluetooth stack. Click Bluetooth Process Diagram for a process-oriented view. BlueZ is Bluetooth 2.0 compatible and should work with any 2.0 chipset. There are two integration points:Introduction
+
+
Building an Audio Library
+
+AudioHardwareInterface.h. You must name your shared library libaudio.so so that it will get loaded from /system/lib at runtime. Place libaudio sources and Android.mk in partner/acme/chipset_or_board/libaudio/.Android.mk file ensures that libaudio compiles and links to the appropriate libraries:
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libaudio
+
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libutils \
+ libmedia \
+ libhardware
+
+LOCAL_SRC_FILES += MyAudioHardware.cpp
+
+LOCAL_CFLAGS +=
+
+LOCAL_C_INCLUDES +=
+
+LOCAL_STATIC_LIBRARIES += libaudiointerface
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+
+Interface
+
+
+
+Introduction
+
+
Porting
+
+
+
+
The BlueZ kernel sub-system attaches to your hardware-specific UART driver using the hciattach daemon.
For example, for MSM7201A, this is drivers/serial/msm_serial.c. You may also need to edit command line options to hciattach via init.rc.
The method for powering on and off your bluetooth chip varies from Android V 1.0 to post 1.0.
+ +/sys/modules/board_[PLATFORM]/parameters/bluetooth_power_on.rfkill API. See arch/arm/mach-msm/board-trout-rfkill.c for an example.BlueZ provides a rich set of command line tools for debugging and interacting with the Bluetooth sub-system, including:
+hciconfighcitoolhcidumpsdptooldbus-senddbus-monitorThe diagram below offers a process-oriented architectural overview of Android's Bluetooth stack. Click Bluetooth to return to the Bluetooth overview page.
+
\ No newline at end of file
diff --git a/pdk/docs/guide/bluetooth/images/androidBluetoothProcessDiagram.jpg b/pdk/docs/guide/bluetooth/images/androidBluetoothProcessDiagram.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..6872180189905c38708c38358afd602503347f43
GIT binary patch
literal 178909
zcmeFacUTllvp76tL4t?`$tppVoP&T!mMA$0NDd3Tz``z)*32;=f(i%%DoV~#KtM%7
zQ6$GDNX|LO{d&RU@tpU)zk7YY`#$#{2BxRFx~jUmx@Nj(y0;tGf%^^}I4I7T*B`9{z;NM(&9RO5uycWE>6jQ)+a!i{Z+nn?3SWHlWb*HW{ofFN^y=pf((g!b1Pt4i@&((4`=pu=KKqN-hu zCOjS1j3Y6dqy+IWnfIu=0?Rb&f((!NKW|O5vMzipOmzs!D(*J+8?&LIf62>7Ze8oo z(N%WfttcQ|{}H$=bKwgz2zsv4q_pwKoT;YKsnpLwCc6B9yq*`f0PF4S__OUFmN5Ip zKl{A;D=+TJ@Nsqjcd?1sz&G -dw*UTpWU-T4`+<8 z%C >)yggH~L%malwFKuzmKv3VNP>(3@8Oe$1p`y%zVjRgtBdEu5Yi0u<25Jk!)h#!Om zyvv7wO&y;a5hCzPMkUS6e(8h1g{N*^_lcVCa@T(Crtfp~)f7sf7=`e<)4AyKn3v~O zN!J2y--qkHw+UB}ww{tM2(Y%*FbAN=1o>3mXzw&O?r1uaUs%v;#>;yz5wLBg7~7?; zksf{o#Lac*S$izuv<`>B|5Lv{@n5=d*c?~s@z8&W0z)D2f9r~x2TvV)E$%YVyZxWB z FZn9qU938>A{@97CB4P1Ew+RKyGI05084w{>ODG}hfk=y{z*UhqCf{@m!Mu@w4 zvnk0L6<-~Da1gK=9-wT$c}#%RdOe^LsI3jQ+N5nv=&%y<*kbrOI{f^@ 5~)Yb}*vI(_&y8DE@ghPsHw80M5 z+)xj5Vbih% bnSEQ2@43n7ne&ifqd|b8{AR z$!85?M03z(8EYTw *lxj1N63-n1ZOpF{4n<^{Z1Hh&4s7vvcV^+7M>k45p|1ELeJi|)j7s D-0yh6hMtvz71pYE_mFJXXYm2!s{+}xQmS_Q E?z79VnHw$mYK(I7a9n9LW$ss6?VnfD5a!bXrGLR6&rRI>kpmLTk1jd5!kJSb zbMy1FBg^aifAy8el*x|Z-(e>p`6wVcayv~zfQ-tW!Apv9^38kNkle2TVdaVt8*q%A z>An78erB`boeQKoLYfL0xf?5!2xvf&@M)m-^|IXYrY)%7tusEazSjTR6K^l@X?jmb zdrvGSmOG+zbo}Kj9zMI)ob1AW9r-w1-)&sy4yDr>{0zc8ROM`pd< ?}wu&ET;|mHI&qlPq8%q_-k#42Rq^XA|ZS~Lv&BUiN zPEV$XH?q{@F+J)PYXfa4N5vUbU*`HzcD=0Zfwh-|04{10<(efs@?*<9an%Q1|G7;~ z&qx)*r)(S_qoscRx~5``_ne$!apwAh`Ll1#Y9PrNW1w|*&idR&Yq*fP>8NGy!$Dkf z_~LWDNCi3u8H1=+*k{(@9oW1sz_J;fWN3mnR3>e<|44peLWgVL7(l mVcQd}*wcm>8)KlRYA_d=O ze)q)4IK);_H2=4^GpUEoEc@I 7tCFG}+_?wMla!hD6t{u?c`JD+F#;q2-7Q}sD_0*dzn_r?Bs2iC$7 zOHV)tTI@jB$tI;8GEJoO%c_!mH=O2MHcW8itO8@K$CZVi_gvN5)M86!P0H&UBzS5L z9z4jSF^CG>c=%|rvPVucw$Ib Z2Lo<6MhSS%# zsm55wz6$qc(j4Qw#6zSE5@3>PeH(Qn;afpLk_f}TQr!LM{)+FpN;vsWfKL^~RfyVV zI8SrmVU*EIGb4FFPpBq? SqmkUIUZY+)qH(){?%AI}qCiVFN6sU;$3bzPMbBft@37hQ*vQ2sOoQ zQjqjRPQ~y2;M9F_R*fh69n{fiUB1FQOp;~#V^0bwG(`k%oFhz`TzcIYW>*3dy?XfW z3F6Gn+c6%zNKa*TqCJ7ri_Df%Sknov^5H1GFC-%rv`*KBRj=rRS$2;ohORf0C(Gw+ z*k8b2+?$`ic{ETb6;C;au6sf58QQ>VYX5{>*D<&!P!r?Ca4lz^+Wzp1QO9M07KHg` z=AECbymUUrI*Ji{=fAud6dgTB>%8k3YodMW$t5X^%~55Td~Ju|;+5&+Yg2GG-$0k~ zJpt48)!CVK=>&V4s3E-iR@Y*~$Sc2>8|)EVb>f?DZjQG&S$yHms$~T`-ZN_A*OL>% z*h6!(3i}t>F7Re)js&H&|I{(+D&f(XJ2ceOIrHk0w%zJ^!%R6uVU}&^vrnZCyx-n} zE4^Hw-MUDp&WAPy&HX;&%M~$kYYI^I6yNT9y^CsV_Kh)FsQ%((S7-LaqjPKuWrS!b zvS`#PcG~@oAD^(B9-#U2*rCL{)4*8hweQ`?hqS6vLb476U5igI1V&zM_BV*EPku6{ z##_{NM)#Xb*P3X!jKW#Bp8}*2pje!NiXm~vM4-R;W*PuS{DBtvRdjj@F6R^Ha9a=O z3CI#cJgx2`puo>*v0hk2h9Ua4V;AzZ?DyCmDPRM5Hu(Cfr3p<-JF=FOS=@jz8m3RH zSq=Jb$P#+mUt}k^Nir*xK1xi=D>p!uWV^yIsONM`!duJhhQo;0`0R?`S3)?w)gPN3 z6R}F+(Kink(r)?7nw~j_`SG?OIo0mEPSba_hZQ*nxk (~>s gyiahmH=8lL9 zo!#gp|J889i*yFb51X*hMs185zt~%ZQ6qw(-A+u->(NEIT|+N &Z}eyUul0?KFsSZ^88I?wM6jwc3kg*;?2*=)G-`}^KT1UdO8AT!w<~;(#Wq; z*=5Jq1c+tLTw93EEyU=WQ_0~n(o_96RxNdOFG&Dh-Kgw?AMk?hBYyWgHTUOqd0Zb| z<2~wkR1)Eto7I{a(a78Wl%4Nh@s1 Y+yRO9-lvd2 z8p&IkG+`(`KEDgaA1d8ebcS}kY}w}YPqq7#aJ}IfO7DX?W!krAmS;aq$VI&6n9I{W zzfHe<55APJK}c28s&HX3GT)=>K5EWeyR<1;(@ Wr2c^@aOtPckh$IITY5cIed8Xh#$F5%F5kyJ`yb z_~PQcCHiOS%b<<`@qH } zL!G;FoS|tkr1Ms6>u86L&)xI5n@3oLZbQ_Ku#R7&3$6zIA73!&lRRZZZxj?G5XA-F z1*`X0dFE`n5|p$f7%DHHkp)5=6<(qT7HN{MVgMZn>W*RmV1=mujiyGZL3yK|nbY)h z*4FQZrcpMpig+I~VLymYrA`>IC`RPCR!%(2d8PMC8Snr>egA^SUYDHaDYUc6EXql! z_+&d<5hEFrmK)7Gu9V~Rg|WX(;Q5aw;T9@tM_+cp4_Lq9_{65d$`L7M9iwdd^r<30 zcC($g@IGg3%W3SjY GK&Raf=yOWk+5ih2+)&<~P^WYu9`K3|pEx4vr8h*8@db-{xT=4;4apiG(g)=%Z zws3}WlG-7lzk8Xdmeo-Spg^^VMkXca9gnjBnS%m1u&MXGPP?m;{bW7cVJ~`J9jC8! zP6Cx*QQGLhs=T2;wVZ@-w%K6VqVq3H6i4L1K>EyKFXOjl(bOVg(Vri7AXkw9D jRP+8T E>By3HRDQE? Pk#iDkk*RA~= zM`5Nql{vnNUq1^pWkgqA@+|PQ>^UDDm^p5iPfD?rczzQTB^n{{0aKGGtF)R5yQ8{? zEUGk$Z`%}fOdgBqj&? J+nKl9Lj*s_FJxq-0!bS9PU!ws za^|oBM9|t?($Wd2I s6({DyA;}bDf&f9eD{0}#>8Q;X4bb4d0++e+e;f*Lkv!#+bZzO zTARv|ykGDBf^9an>S{08CvqisBkm>h7EWb{^NhCi@%9fYc7-5}JsTP6u2*H`aK>c4 zz1p7qb^i&&{U_iTe4s~f+1?ebzRd7@+abw(G(v#8Q|T{xHg9GJ^v#-t)%xbbKQqyd zVh0D&Mkk;O38a<8OQ*=-E(?jym7#I%QLBeQC3)bX%Xcm4lWqB)Ob%(y)?mWehf7 z%%6NdqZM^Sy%M7Pv;J{Q9^LnO!!kEbclem_^Qf}x_tGqqC$bwr>|3SegRK^i=0*VW zn7DCFdjdKSJIFpwKs?DWpm-(!^8ned$PT_)0S3&@_+QhLzu^f2>D wxW)iHqapUQhnmWIQq#~{Io@er^DRV4wMC3S8L`>OmldPI=Y;m3a>b_Db zDwZ*#3Axr$G#tanRTiOLJ6tdJ2M2)+28!(&x?ciREyb(1_rds9bMvHB 1- qmQ5kOs9I5*uS zF*aJqO1$LDQdxr-!Hy^Ugr6ImdY;6c)uW)s$V#cgWhG{m5Y~NIRvN^ond_zOZw$J~ z{9c%{Vo?4kP5m=JT{@mDdHv82ug_MzKW|?!89!KfFB+Ye?yImw)eDdIF9BL8jO)bo zYwud4;?a!3@9C1JmI||NJ=8Je*Jz31F(W|$(c-qk4(_g@hZ^xpD_UutPUt2DNPR*= zMUm6O+Cvy`qJS-b%>-ScfyGtx-*;nEIoMu=>By|fjox>jjL5Fx^%g4!rH6=zOqR2! zoNZZkRF$Xo!DGqR@O~|;`J?NNLUlf-%$xI5EQ$3s;cwC^GNz=w0<6*(99U&)$O5km z4%p3lnrcnG&XlcO6O2!>9bWWuG*x!d8k36*zM;q|Qhhe*Ud;zub+Z~PMj9wv?sJ!6 zjvw#s&fM;{v0*?zjb`bLgpL>>80}wNu(=#-$ZGX%JOA7RCH1aWa2lYOvhsdY*ye0( zKO8z&qr}q;$#pB_x!s~X#d?t()QG$?j#fgwe?hr8 -l*{mvGO zu5J)$D98v^v)^$H;DXO~*tSI(SzCF
qUSceC2Cq-Fsj?AGvp! zmp)xxznOp;JC2H*@xGMsd*FfQi*y@L-9H-xt#O@BcGL~G$TWfxSlT{u 4UByLC{sVTLFFYsL{Mx^u>!Z3xewup{vqoQzw7s-QP|DFs0Mk6Xm^ndleAwOJ z{&nr1=;qwnw+}( mQ-c8Ms>`{V{3~eej=rStiy3lL~OX)ECF_ zV3S(CQL_^e^6>^3t%Yj{n=9QIS|;Z2+K*{piSMQ&wkAX8Od*Z?L{D30*Xam~>oQGM zqvrSG{wQ3v&7;-|R%>JaaZQ<#rVC8}N#4Fa{mQ;>^;q(rMS!HA+A1t`&o_~MME_P0 zCIjtFF6mgbS=-eic*~CD`DEL=clH=6mUxK{%a!BRsCDYN*7?rG3nwJ#na?f8$0bun zf8*#gS{+r+*tmI >DfTZlHY8Jw>M_7saA zLmm3ekXf?l^FF{?HcN^kI~K|aj}A76)VkE;#I9&(bwG495fz`#L4dsN<9_Ln)J0r2 z!5$B5mxg(J!TTcC$$?VY_KwFVAdGJzYa8-F7Uu2XhnKoowd(5O+Fn;uBnQ=FWxE%d zg#bQ;^3lvLQG4Pv7`|A+1i?jjP{;x=xm6%j%*dKL)*>}X_IX>8l{R3Z$JULW2rO`A zO~Gbs<|F+}4U!|GQ?a3;)@q|6d`Vg83)+3`O-EV^>-7hP9zK%*D(-$~GhA=i1dDz* z>SBqf>X-RgUUS3L@5Xvm%p=35U#js~@-X_?V+_gbass+j+XbCFf-UN4d9wM^q-=g) zhW32zp7&~=>f2
TPMZBkg=D^^ uY;jgDIt8hy7${D1hCx~tU=0g5T)SYNiy_~w3qJ6>rYgNE)j zIy)Ttpcc}UVg<&KQW9VvMRH%->IRc=Q~6tzHzv|ZHCO1%k%K8?R=>j<^`i=9u21>h zdYtiW>u9gALy=tx8(3keOm)RUt^(B;g5r1IKAz~Al(lp>$E4Z`lH|dQ1G*V3m~sit z -d!#(wkABizeqX=OZ7;gn+!Rks zsOv${4W|RY)Y^2^zLYf~P{WH7n!ig-;j86YTRXx$o|rtBd`rfWZ6+-=Oi&q6=#ng1 zQMw*zWGY>1PjK(XCQ3bR-J2+JJ`L^eyDk-iiN=!To%%iPea!P$?n_vi#y+adQCGTY z9$Mi%oL_m?f1-f}=n(u3?EUMeEpWjmT?qO>@Jd`yYh(#Ph3?YRYx~q$4Ex-xs-h 4|W~%bq$9ek{-dX5f(v2QE>Fm>$legLk$Tmpk;EA$yx68~pS;)rUm2 zXbhUBPM8MQRbGLLT1c~AFh$My!pdvL*C$!P&RFb|_IVLhTCn4m9kXQb+J*7=4ThoS z>_DM7)B#^&C1Dzk1hzRWw!+1A@(8Jw4O`_Bg0DyXd^`T+OR6&Bw5p`mS$4gwoQfF( zsF-BLx3^>)rcm6(CRzv4SS`x~T6y!itdUFhz;y^T=?h>7(0=e|-}yxoSiebI`b?@$ zd4Mz)9?fD{EAY$x*rZ;ZPQAztpTlmo?{HI~wxaCvkWM84IxsD^_QlO6IXJ3@ n>*^v@)<1G9a|pn!H}?)L;k!)T z$H53MrG;4; j0R-?g5Dxsd>R2j&q` zx!8At5bbAB(m{f)%#sMoJA$wGO(&+(uLQi*@C?|SJ$^S^ AWaq3n>;?)lv)P8j__`YQ0ofx0Ok+o+PQqz=bFg``@oM0F!k>W!yQA3R pGahY4y}iy!b6tk;`jmq_ zS{meA=>n9meaKk$dy8wwTVqmMwIcpc8WkKpZxO{Er}vC#3dCmz`Yl{vVjai6m&Iw1 zJ??!xo}^}*I`;${y>`l9)9X*q1R8bZJsCibeZYfL!~1E8axXQgs3=p)NnKq6(U8sU zk5B*q3F{3~8-0sR64FPnqM4f%g%K;-xwfEw0_t=kS0;X|Fw&E#@dejO00xNC(N?V^ z!X2D=?c&; {yL^gSDO+(FK?QeIs)jj8&8sp$033(=i!e`akz@zUX}} zBJc%}n%$`a{XJ!F1?d;wr5ZEo@v}WArHu=FQSwQ>xal*BBe&DUfah?6G*SRiGVE4> zu#>)xT9h^S+FLgH-9QAVOu4#WhuT|KNV(p~NaT83T)auLdhVd+9HL62J*=gErNuk? z9UCy+P52-3Q7w5pZz-7U8z2kE6HjxZGbFNPjzLnuHNSyNSf)ucvP_T_^<|MO7(J^C zpn8%EFg*fAAbDuT32dh -ULmT+xBo6qkkjNB62l zR^+d8n^6I_T6%46^MRip^rxI;{A<+ ePvB0s5y$wJWo}(Km%* zkm@tvU}osvG?^M@4Xdd+W{AH$tZ0xjuyLzXf>DLbL_rzyJYH;HC^JDxf1b7=1ayia zUQ 0W!|7Vh*8 z#VGg?-dqCIWITjSfHZ=MN t9uTNUnX>Xr)u_oY4R7L#azsJz`C-|lH^5$hcAXyiDH?hjUB>JeoXl&H$z8i{ zWa#AV$HP@L3OvufgCx*Sq2n=79)Rs;CE4`~#@5oJJNK|>qDh2pF)y#j^Oj1=r0w&u zDi=}LV?z21_s;?^$iPLN=U^1P^zSG5d!zd&xhns1d*(?pypoBWl-}LML++cHPG{jv z**X^S-`W-%W@Q4`v)djoHesj9otRAwaPD0Ap9DV_|MX)VG$LCJ53nFJqc;0f( ?$ljpJU&}pb(RNv|tAd)->8^RrO;!fLxraR=f&C}V3EauPvcrJwj zNiu2!947FbHW82M2$=8rBT2?| @eb_n`OYr=J{s~C!pmjxH&M<({XXG#rACE?%Srmv9m`US(Jf2(2pE|?-D9)7v=#D&jfY~GbY3Jz`az?_!d-xBw-~ZD z@dmP2nFpN9cg%U&S2wdSs% 9B_AbMWep9IPgp=G^DOAODgS2+7l0O)52^uir^Ue@#zm!Qh_oy yxw8?ob|@TaolvjWiRQ|FgD zKpwo@x}SI;6d;z`gAY6whQC?ZIP-yV*4Q(1T$%AosU3tKjXEqz*9*p#0uw=|Bq5*o z(e S2C^-orIB1bAVnflQ> zAJ<-c?l;kh9|h9B2N}CEP9G+2vdRU|L%el23;o07knjW@r2_{GgCtJ}j=D83?a5Cz zuY2zqrZ}}tDG0F%8yoj(uE~X<5IQ_2F8U&CRb`QN3U7SD!~#x#TUkE#rN*WrP)m zO(J9|oVUDvy$E`0W%#(g(Uc Sq@SNq>A_ z(zDcl wLECHTIu`d;pFT#!XcNr zCf $Vw%XT?Ak57cy`cLf9()u*<`ihE@^!EX9OF5<+GOGF?0?mwDZ%swem0SMdi zPDMZDsPYEWszTVI!7dApA@B_s y>-?C+b-E>@y9RXBtk804Et )=YK$b!*S%d*m`ST%k7LfQ1~TN5O5ER{IFU#g2>GO0h6w zNwxQby5KQpmwdhlsEYw^ZH*1r>G!?QW3VIV$B3U 7j5@0(;g-5&1E-3rov(v4f0q9(GoD@v#{nqzR z7^Cv%gp84&6IM0{p0Ys|i2E9TG0G~;BADmzPU$B6Ifqg^gK3%;~54;*7Sig^f*CkDmEUGbv%@P;_?J^XjYZ6~Uo544C9oQkU<2Ig3m< z54UBn@+b@)u0H|k5u&iG9)hh=i3L}|C=x|@d-1-jY9(3zrhERV0oB2dh -Qr1~poQABn|G<(--8`+WXx=#BpPn5wzXZf zs3YU9zg7U;WAFDMP-uTC_H{&%f||3QKf8{|G|!C %PdFSbwM|BTb2@3*bSygy2@+>`SqCo+V zQS+-ltR7=oZx&{8`@Qt1&BJLnf0iZi%tsV@Kce3X_ocvgv0LNS4x{g2R@jZ` ?Z!?Pk5EkgtB}qNbM{zCn948*VB=g-&wF$srNys0t z+i>wT(Nk5sgv2hxvqIg@k^neb9XcCKtWHn|?lS?z>6ubSM{#-ka}+)q>Nu z6HbnRqGh-(-P 1{W5n50x@UoT9D6)qJ +U#AHc}J4e05+g~Yp`&&sTERI*7PfM)_dBid!U(d z_mKIxwZT A`;f 35^?KKmwv2ri0!Fs%5}IyNF|3Kyq>Yeg&hl>fUb4HT@o*H z+X2a|NYF$SS@0NZcZh7_;GQRz)({_>jm=GTB7qrco8aWn;QC3yy?k+JEPHh !fuKSBOe z7pkv>Tx9Pr6@!%$Ii##GM_?~& imdraDgyG9YA@Jsx7+j z<$rIbcSyq|b~2?jPn^8iyCB4P{N@wtvu2G*&7jizsB7tii*|S0wLh)eUft=kc-eci zNlMkPD%e8yLm8hTNRdvT`7Eljz*4{Oa_^U1gKWC*7c<22Tqv_a;d_Eku%$#Cm4kIn z+GwJW6Myd7?4ep|o#!T|!@+S#Rw?^hGd|eV>G+e8&bg|~O{}umuxe**QLKWu{W>e} zIicY(Raz!4O6SW75lI&)xZ $$)$a?UDQE+-j+${854JqdyKzG=XYL7yJ_|T z@O;oF3Z=|*ou=`AC2{NG+kz<+=N^8mbVjPnYhuJ9Ndl^mEx3PwseQ8qH!jxnE-G(E zLu-`UkaD+Y*}K3l?S@527hk*nRi>ab-I^_B3?*l@v>?y@R81c8^2*VKe|5?I9N=&v z57kBc^uY`nCd1fJn+t`_9Uat7*eJe><*V_PuQXfcsR>vtF6@*0I6Yde?lPoT>5_sG zfT}7)l=S5Y>|FhRO_Bb+p00j;kP0mY0x`0j*WMz{`_$^~!jXFxpH<=y-s6({@_q?f z!YTy85DNdG_;ofBLY0SSU)L*0uUZuJXG*Zo{=rN9vgsc@{*TO%%J+tm+M0v|beT1e zJ;0%Gv=XXU`=~lTm49&lypot9$2nTLdkULbP&>{L @ny7k0h`rRVLA?#vmtV-9@I1_TDH4`H~->NFeEG#lU3%}sj7ICdE z+ITGBj(V~#KVzKd67m;wRe^NCy_P@gZJF@wW*3q#;mWiT(5vfmwXTp_fAwdv-$~lk z+H%ve?EVCc!G{hfKkYoJ$jr207l;0(x$KNS^CFJiqMYLB>?_D1bGBX?ni6Vi=K;9~ zXU@I38hM5sVJm;JeB&oe7#-UeErs1|p1jOe8C(~+x0Dcc0-7^gfsxOfW*s1!eqn$} z^4G0`QxxWuiuE+=cOuE#AK==B)$amSmG=r|KzZr@fox`Se$s!rR#H6=A+F=J)8`Ro zvvBaC%Mph7KGjHc>PlR9+$vYHwwWi^zQV&4V0CtP(V9Ok%ZQ~{I0eH>l5<1#*KOxi zzC>U2d?ozagI&f)k-6^Y6UhSIa{}l2M)H3@UD03sInRFaUPkyDn|y=1!W$10852@d zz)Q2jn%v%587f@YnWT(O!B0(Sjh#R hS=A0;+B+aovf(X zb%%s0{RDt0XpTx+>$xfxr6jAU_rN+*v9of1ZC*uM+mhm5Rl&Kn640*nwYwGH^Flnr zsek9I&|DWKJ-KBoD$w~hE#33RPVOw29S?4sMYTIR(D$%mSB<&lUP~or)mmCZJcdj+ z`Kb)tyX+k7m`#yI( +Tt2`S&k(gShX;x4ksEDCp_FYAe5r zu+cVIEVENpV-meN!1rQq2HA&Pjsh+|ZlI*r>xt}-n HmD`{s-N+=MSfHT-0%>*%@bfn??O&r>7MN6x#0CcN z0S3l_!fbi40WnbcxTAU}1yj(dZ1v}Q(k@FQqPBUmJ;$OmEu!Mhad~|EPXX;e#;q^L zJVH2qS$W*dVGhPh!)>DW9dYjn@4;;&H9P!zmwPeP6|sbe;NR=Uv*~1Gq~sAsP;ENJ z8fGqzSVc*}@?U46n9|T|b^^y=XIK@1YnYiS-`X}e!&f5_lPqplTQk??9*Xiom81Jb z`gAnnN{9w#?>Q)hKQukH8sl$m9>Z;zj1}7IMshQ}y#7UO?8Ci#_ojuj+ah_cW^9`? z{>Wqxt6tPCvg0_XrDpJE5=sM4mhjlTwF67*9(YwFXyp*O)-i?+2X}ubpjdrti8OpW z%~^Sc655lA9jqG s4m%(4iEbM_ $$nh8k&dBGvfcsdMOgsWs(ZoFO%@AM1Jag;XAQbj1cW?7(_Rz=yLpq(ss%ce= zMde{HRu;xZ4}}%0KXxVD&|mS=c5X8 *9|1LRqS|zE5$x>X*w?#jCm=Ps ze6m&3HRO`o3CMzJ2S{BnkFNu%zr}%RoV(X4lK8KYKv8))>iF|=KZc~k9t|e0cm)H= zSlDtOIJKN4) ITB#z(S4c*fb zyf&gQe_qoX=Ey^)K#V*ez&JwDsZuj3=cwt*hUUz(rld;Cb{L2pK6?kx@If0`^k$>7 zBP3*6#(tvSl=R~@uW=!n_OSV#X(Z>a)O+Kw4J=}!#SdtR zclz4GbkQ=Yl{O70Ag_^Ma~8QRTQ73G^1LqOeM@k>mlnLqI-K@w!QPH}R@kPOH(-EL zA&s@LSbv)#k1gd)NIsi;X6xgZk4DZ_jEo~Wo~)%4YWGPd9dRvA0!8np{jbptm0)S> zryA3}H~pKYj1Efvtn@>?%^K}Xj$q)i$-)P~ZTgt>d(Q5ADG=9X3CjnXSM48;;w}z| z 5_-(%0WZ{MW2eV5K;tH3asZRZr8ZhD_sO %snD_#TOHo^<=(H)$8++ZpE2 (2sc*R#H1>?H}QH;&c@yYl#A383k4_;qUlDv`<6!YX#i$=bjh32{` zpF-$cMsQB_QsCQ8xPi%aYG2DDAO57n2)y&Sdtlh9zOAX|ECTbawc z;lPOP|GHlLXFdXSB{Tq@WNL>w2$Zr;Up)aa9e5IPIXusk_cs$5p_H=x7E)B;DS~Nk z)_~JSPXljljl41WfAIF6VNGpo+bGN402NRH0hK0QKtPCqs7RCE1VoT3C85^ =(1bcXM1=4IBy$v~gk&*98)Zv5{x6yJC>qDNa$zFM >Jo+#AZS9?t))41hXd93bB zlWqFF^6X8B)^lo T{GlgNEip)n|&D$BA{itA(u(oH{D_%ec}(^g*ZJ^f`_+h<>BLjjhl%grPY{p=(R zOEy&<>6Oy?`iyVw0B0?v)RmsnBw_j7nJwa?_S^K&(sI=2#h;q#G=|G@NlaLMdOTCI z%10Vq$)WC ~m&E(4ZOn~S4VD(ui^PYX%0`15V$!aTK`jWLdY{qSJejg(clo#y zN7{!HN)fm9>LE`!P&114<*Sv9^kkTK5tBO!oBClPV>)7=<)MphH?Oa+_#56g6J=0H zVtM!B-QnuXV3uW;uRjTz`+4g{Usin6FUz%NUF8T@3Kys{V^+K?C*jGt1p+(lIC+mj zTE-~!V81z%w2ieSMxSJ^7EW^K?Oc19)YECBc=&NbPY>eT1I3Od7L7jeb0>O&q$R7T z%>HRX^V$}_X-E%9KYGOYwv3;KbhW#&=mhP%@61J94~$m50}c#NQ{TKtmX$(A)LFI| zOr}0KnY#DP#cfAKZ`N4?VQ*wn>?YGVw?`ct)jV*?E}UCyyr^>+T3aun Ypk3nN z$Q7tiVc7|J*kFLNG`c`Fs#_y2_h4J)MW5@1_)9w(sw!_RIUjspr;!w(kz!~0?Xx4b z2MFzy=8<04??)fd{~~**on4F1b96cSlQcd~59wpx2cauQCQrl+&I1H^eul0cN4pqO zMQ<8}6dhh6?cfJzN9uViJXT^!#yiReP{pafM2oEm*e)YiYJGJw&+4Hu6B^P&^Yt*s zf%tAki~&{So>heMjX-kl3I7~LpFP|#i0-n+WW}|}yvxg!k_k@|6Vr8`=B?b|>dleW z^5ZFz8XiiyZI`iP- sHk=6fn@n^ zWgBbj=EF3Qwa#KMUQ#EltOldReL6Z#AyXvWj2{zM9E~mLDJ!{gR}ASiXWLSC$ah*! zJ3>nF |!!rD{N?7 gphBm;6+QU?CAl zd7oFGBecy0#GS?<^_A{ud&jkM|H! axatD8y_&+2}4hC-y3WId~~$LI+ylle;3(+~IuYC>fG~Ij?x;jy@ %a?QKytbdmC2kM^n6_zW2N%TxEE%fn?^1FgGx(CLyJYmT~nGy3}0{H7F z14V;pCkz zXKyG_Y}6ame^Z~au(iSxu!oW^_I}GspqjHqq-n$WB8<|^w6Fu*t0HCRbqB6 z=dh4GIbz8=#=I>!IOdFV7xkG`%lo?NPFD}pyE_h1k8;+{FKMWpFo}^1y$s@r7cNUH zeNu6%IES}Acc=7;^5YXtxqfs~w}1o0=JWPtEsrlGJ6G%L8bhzeTFOMapW-{C6y##| z5A}W0*E~b`jGSJbdC6|pi}-@g_$n;% ^@2h^Og@lceFO?3xlMDLb6 6 z{LO}wVLGIlm^QhcfG#7b@oCz!=padLwty(j zFK0Vl_myTimHpzy!XD{xsR$7**O(TfMll<`1e>tX-Qc#>+S)0n`<}^_!u6WMXQ8VT zwKSVrH!C}Ow1=G*FxeOe+S0vdX0w}0Uct{Xbo2J-nQ`3S4;3CKjouBu9y$DkDuh4r z^34$Dyr%Oi6`ApjJgD3d+FK0oHM`IE%{(~rxgVXvqV=_v{>0&)-clGsz~=B)PgMQB zFVdVe%MJ{RU_AKq2dCLmHgN+W;Y|VvWCx^evIEjligf^dy?#%I;7l$e>iDDYK8Hs` zB?q(O70%t#dG`D=Qt#Gkc>Da^d*!5*HLpojIb6Yt{Z^RD!Q%b>@Ok`{x>CU8t=F0+ zcV%)*)DRY`1d1Bk$jk^I+ga>yZ%NOm;s}oVAUG6_Y~+-6hKipxfW0)K=k&hlo#A(V z9FrHM*j8Ri8e1ty3mO&wa2FXQdGKs?sA1c8nCi8l0X!%-;c96Yb%?lX;`i~bw*7Q_ ztg6b3aHlH^QY_w$8V5U?xgUq*=%hi#KIJXf-VxDFrXL)~9(P_of4B^7Y_qDhcu!=Y zNQD3fp{`wxQYhPl>4p^A>uJT9^zU>t@qcx3mSOiBMOj&?U3e}mko01?M1i|so!deA zelUidSq$D^zQY0%fIPa4pC?ae#pQ)COBA pBEFP3I1hP}lZ5o(@UwF1v zxj0J}&3W6}P<&S!oDgbofQ?Ce9RzZWyQOy?)l{`)WS(Tj(1(#GS%PCfy)|Hr&WQE$s(n*-l_E_=Bcwt;ETlq%q<<2?5*Nbvq7361SPf E;63jBH272lh zaAvNs2}jyoiKe!B2*?$%XXs!vVrWyorjD{S@H&J2Jc;&po})UinRqy6TQYbm^ 8tNt`(w|fN1ur0$*E8eQj}`ZFdfm?DN0U+JW_M*wRm~rfk&4KcoK P$MY+X(pb#=8stL+B+T+9?~45* zgF4Bm5t&!XW6nH|G2dD2DDs1IS*guCh(epf)6faV4g;@?BcrM&cFbf%Vv-{0WvI G@gu zLa{Hfac;Tvf$sY2$b1`RW^$DdZqt{*udEBdNcgfNsbEtS2{A_Qz5*GoKS^TF&1VZ= z_v|bTV)RqglfSoZnCI82+IW4N_e?{$sZV-G3nJpDG*z%3Y@_+z9l@Xw0d4eL zQ`Y-?w0=vlrL!q0pdG1JQy~(TUe-4;&Jp0B3MQzJJo~5_%9xCQx+q;OvcQWYYpS7E z)0jkfWW(HGK0Kwg+^%2kBTG(Jesu0hWtO} J3`nwVN2R*YfHbm m7z_MA#ZdVnS6l zW_PMprU1+1|Dl5y-R>03SHC-HRcJeE4Mn`c1~o>U8P|kILW!vXoaNDHJU+cz#ZV?B z5DGk=j>UP+eTQ`xnPF>+6xDlFb>xy)^zk1eij6aI`Ft&+26<<+X`i`RpGEEQLTp+f zo(1 v9 zC{g%H4Qt`ICXtsabAq*sUoGkmaz&a3KG|j`<#NjBat0(j;X>^YqD3Dn^wdJ^dgl(` zBL(9z^z2Y9Z)spU>I}u`)cx9s5%g50@EQCV`YMV_F0#uSJ2hNumE57K$?I=&BPaWl zLO6e)B&g7XSM0HIxndJhsC5BNP*(GT``KKBLTJ w2wwY(IHWysOU6Gp3pad+E$!6O`8ZCOjbz z(op4Y!)#DC*G1l(fDm@i^Msyr7^JTHF?8=jW8#;vsb&qqlb|B!>`^G`^DnZbUu5(3 zq!`LhN)qN+FWWo3eI)veOdKd;h$CL6Sf-=u-;ImiCkGBB00Ys0mh+|LJ;_6-W8;5n z&2M{=xCbx+@Th(DGDPgI0wFwf>lc}**F2i3omVn2@i4Z*qZG#%P#ZQ1kH|#fuY4dh zZ64B(!TD_Gii=@&Rg*`E_#C|Ky3;@=7YufT>)x19Kn!#0>EO};6;m50T>kaxPX-+W zgtt2skZKYKaANR`9X|e|F7+8O_;+oc@OHI+Ik Wqv`_kmv^Ji z)mgg4pOG^Fo_GgRD?$m;gV+R?hJxS1SwISU9I?J6&b2X{e{e>8#ht{ns2;us*deM# zDreUiJJ(>Nn1n!nf3zz!**_fR fXO |&2IZj5a-rO}oWFBH0pdTC zCs~NapB`Ulfs;nGY3n2?wJ--N8}Lb*NM=bc))Q<1@oK~GpC6Z$SKGY92)DPpfSnd7 z5G71#+9IRBcPlV>?bOR-Ta|Vax!RR7nCMyRjx5@c{N~K34}D3|KDKXA+iKFy1;u_g z6=ouTG{#-4@1=cf`|E*hUsg_%rT<4h=CW{5zmQP`p7Dpe_>a`$kHgmqu0%NcM)mVE z1Kq^fafsCo_CWHA-K@^!XnGfG!@G;QNoD(HCw~jT$-jJcol03qVc)_cHTc}+57L@s zluo!r$uY|19s-`E2UuZkkGuR~kE;cX5T#55$y-xI;0f-ZCcFdX700=dFAaVsKW`3U zN%Y$selV-$#)9~a;Oo0``I@;4Z0$mB?s=B=vtXRL5W <0$(ZxdbBtDQ@*!p0X?7Kr5*}^{o9X{e$J( z+vSJ&`TYCa#ZMHJFL+E7-d?41ca6SrTZ)wMKsNQ!7cVmK)M11FbT av1(AEA$L$==L4B5m z?E4EKTP+iQ`YA@6(eKUYo-s4@-|}0ah&&Ze bUhEtN4->rX-@DO$$Xc;nLexGwSjqjx9m0XKqWhdOHXr`1(2`1zr zqFQC1YmeO-q*!P<6>c@mEvDp**JF~>ve(9gP>dqizAojy&S_;FZOeSrrK);!BmIK^ zHNQ=;S088BM`|ky_kP=nUdAILAzRt*=-05i@+FBpOv0*(a-|rh1#Wr6c2FHkH({ 2lR_!N#&R znDgJTPh%L=GZ(3YBW$gCGt&zLVvMx;lvRy3g+%qIMiY8Oj?g`Z?tzrG2ZAt|7_Pfj zWo~y*Z(i7IqVUH+pYdGEp{3_lc#%_hAb}G!%Gz!=&UgbisA#4VGALs%D9Rt5qRv|? zrI$3c*6$fXnH%GjzGm-_ySu;#)Qt9=UP+g^)uKW%JYTO~3T^ZM@(F-?fnHwq-swS4 z^N~dLiWNZ`xK)0o@W3jzR`Y9V#KP9j1M!4+U(jFUw&LPLIR(btvibWe6cyeMbn3L8 zLIaprC<15ypQ0_l{u_Zh2&LBD{6$s^GA&p0LRNPU5Fy|o|K7r+_D|kiO*nA|5%W2@ z>*P;_sfS_{?j=R*q@JJM&H`=}vS{BwJo36Sczz7kK^2kLuGw#Fm{gZxCG2hb=EPH) z&%+jcbm3rk4tr0v8PD^Ay1WlZzsQ7PbNfzPes2tgVO`jV-Bjsth0;9R?H^@EgMFs# zZ9CU(u-Fk+u{ln6b(e<3;4Egwinp^?hOJ`$CC%5tXjjB9tq(TPNI&e;Q17|v@Z_NY zOL5nw>{4lNwG@+ZQD(#TZ=q7Bj^BU!my_+wva{zdHt )mIm&mp1LkAApLZdQ`;u8RrDsbz75^9`&{6)|+zjT2G=5?U KL~8;2r8I>EY2*p>W6IXromKQympuC zn#M4i;g~VqHAZx!P2xaBsVhT$LZ@j-Y-g7z4db=?TNS1=8HsHl$b63v7@-OA12T(K ztRN0Typ5nitKMj|GQ-9eLT)nQtRTg+6yzk=8$7fGS*%= 3#ou 2+2qCCHDKa^aODbDo`ryf2e&FXobi>!j!9#N33iC;v$zL=5?4)WSTuw%N5(c$P z$j=G-4l-t1m+m&t=U8l>XEn#lfV-{F>}faG&kOd7OIIEOckY3h{!%Cw(=&EB; 1BFX9`>Z592O8J+As?TbZS<4_HK7;JDvws zz6+H~8%Mhd#J1PSKL2EAkpj}YwE vZLko3#KT}r&*tTgY>-T}lk`5w)g@$qtcgiu1xD7{u5&*jwT@3s4ZM0Kc-3$Y}A z$5RIDY0t $c-7?M0&C32{2exUN>5J_Wiq4=E0=SguJn!c-z!h z&0tP>vE?m=(qgyJT-NN&Sa3Vt$}BBn8R-q$uN=^w<9fEuOXpV&KIki!zytZF4A|XU zytcL0GL|qtoAh;uOxXv<1^fxxMQ};?wnV&BV}aImXMdlBo(+$XuClZ;4-43AbeH%X zoY@2kZa-00w&aHiJs$mp9+U_I4b#GMC#f3}9Wco(BECoGL%xi%F%Uj9K_z_?)dp1h zW>g;)n7&BO7Ia+%ww@zNjft!7u}2~LX!R?+!xfsib!NDGr %pFT@wMSub?$SX2Rar$!K3;m&cjaV<+^D?>x PYdbFZ?BjMG+Q0CURGk-*?HSjEBxq12lWWhI3@s5bL>f2 z>iXAt_&3|_uRn-e+`Rat_ZQiER(%A6SYO2j6Qn^8EcJb8;z{go |cJ+M^7>V)bLOBfd*!&Uj(EzX#m`!@AudGuUG%WD*DTL z`^yLZ( ovgDv0l+lM2Ar->!BW(S7_`dwuwod`JP#Mqm8eM zd8|%P3TPf{6jkr3iP;d^h%eXj5w8@hDb~hljxy>@8=wc$V|s^tG9{H-yC92vpq?J7 z?O~GZ>`NnNAhda=$ds Jt2WipUGf`GN>Ezyl&tXiFO5QS2eM2Q=h zz%!%v@XvP*fU)iA?pL}Z5_GM74OZvv4y}=f;l~NY=x-eZ>WYe2+|tvA=pG7uKW>vw zRTMJS9gzW%d~JjjF?GUQ?cng32etKe!c+Rt!b}_wA=2B}g$+0HfG j2cV _nWww4j_!;18{b)KP-@8k+!Zug}-VU3>ByvEGHf zbD~JL65_B%>YEg2t*+iob}`*Lyl8>f58N~t+(0 GGfbps1FXe-ALoGvLBEd+m2xMz!MKl)<6n9Gc$`7XP?sn-*8=MkeFd`D+9cE986 zf#jEB%+n}L!MiCmS30tCquEs8C~86j^*9Y`x*n->6Q+G#Pw-*+%vI7V=465a0cR)z z+gy1S) K%6uLa-%y`V^XAs#}k zsMEC$S=d`w#~*AN!-9tz@Z`8dwzwSi6q2m4!hWLga&UB ukmW;1&C`g<_8yeqZNPJI?W}myRqo(O^DYjQpvaQk$3tr?2abAMcEAq)X4}! bJ{Dpq6d-_Xd&m(={YfMEftYHohYs$=Ld%+T)So_iZGD4L0jH z6@Z^uc>!>k*%%zZDv2J1VTeV AOr&U-f^jy>Z$~plPS&ph@B~GkII$WA;vg< zcnj2{5|0_v3C#WE=WF4dY=f_BUsddQUU;VZVK*hS^xf$hW^k=~9q*o>;eyLq%k8rs z8b4PLTV_df4Nz k +R=mAUk{Lf4HPlD&)MAK6nLZsb#U>yRhSW!O-KWRY;riAhDU;l46{9k+k7^W~j z-^rGRkF-t|?FYW+l{~KS)r9I0Qzf|P*TrQj%En-0-O#$E)lbSgMs_q1)D@{S3l04? zpYdkqo9Jo}ijhVwEga9@D6QqoI 5_AKBP5u^wlr-DGxvC4KPb7&xNu$B3f!wS->@ye~?n%HM!L+F7(($SsYd%jbD! zvDv|>XqA?uZ6Q8VZP cw;HLnimBb7~ZEft`XRmYcjDD)QOS
_LAb5_e1f{rL7lr!DSC?!svc+D8Fu*;<+Dkqs&8$ ~1F0*%2T|k?vXcSc-`y(){XV!?+HEU)Y4+MLVL`{_NZRtm1pI&)K$C zkNS$ab`6&&q&0b7i7@*X1n3fLp(bV=@h8s$A^`{&!O}xvxs%k~Jb*7aI$G-5<5S-g zmhgt}vQ4$a7}0AzArElvla5gYS^IsKc3gYD@6lTRFS6G#rjjcfmD6##Y3{l=qQg8# zs;_ZL2zj`UF JzsrL 1)oGBK>^M%9}36k2GLV+H-Z}YaTW- z+cI+7J#Y3zT3RI@z~sr%!|=WQJz+}Ln#C?QX2)sd{Y1a(CfFcCIYd6DICXMNH-B4a zLf^2UUGr!&Hg`4vxGk5eX6qwe^s$Kp6o;$$C`rD97B5rh78rE0V~YN|({`n#lXI=P z$8I9K%`OhtvmoF}6O%m#LAk;5wZw#T$C5E0m+snWsH#doA6#Y!FB-l1i;M##y-=g| zBrAk7gb!B_EDOdqL|m !LK{yd#vGt ovG0Ao#CxenT8gT(OHlThBuWz8=J+u8s!w{d4;!$E!AlO9swxZ4?5^NO z#&tYnYAd^?PfCUVSl}2x|NLqQCZ$cKBQ-NP_f7@1lWo&O?$YK@V2cv`*F5%G>-Xhd zwgTFqiJj;ePom0NbVg>UQh5)}bvV(W%WOsabWKU 0^wegYYs z8Scc&pe38Mv{IN4 (o8dgZC2A$5zJY{Uf?3y|t`2--NX=sXCRv`Iw@5Mc9l+l}3Xs zH aA{wWyjJZlWjUoH?tr(b zg0Z(ZliiCblg@VTtR iJZ@o4pED zzS?S 9ymUKkp;omC2B1zR%2>+>T)`m zt1NBny8>%ALS@x%CO6yo3sK!kI2%nqz4`u>eVVVSOa-YDOvzA#x@36L*@G2-`lITQ z<>N_>=i3T)=w({ZR}M+cqvIhL{)wBKKO7TObhv5X%WD2=XV)@S>+8@>|8h$(oKq*n z!A{x!4(|1Tmw0~&D92}DaU~_s9nK+MN(=!8QSWkK_c^*9-v<9D73lBX?SFd-pgO{Q zRdfAm5b@e>`_$+t(@qFLfQlERl4OY3EDINyjpJT$>qMeX1$;6Ka2$rkSQ6hg_XgxU zCi8AEEROH -11*qcq3@1eXo6i!o|I3<59v@8lq+6bP# z5BA$x7LG~g&fAkeu}XDq+e2oO^R#}2b@Yyv(}b$ABh)6B#hkDri0WlbFr?I!Vd#Y? zzR&dW6Y?GR@7RTFsI@4o%NT&IJ3}%txFKP*H)4U$pVEbbd>nDZL&4dF)^R;! *GGsU4xepqGq`42SiKD)5*nCEhRoRs{m%h);;mAk@R%^zH zos&!tMez#X{9eeCQfU^JXK`aO6V4k`TB$UNf9E~EJhdZvV{rwS5yOXq3^)wK3J&|x z4j! gXWGVBE+zFz~uU{T_uHPIy4t ztWx9Z3VE%;hi|yN+>sg1jAj`jO_NE$ fQ vf&PG;op5vo?5W?Ls&Rt(v`LiwF=CuH^r!DiB^)2Rgb$^D-Nz*Zb zeJ%@JShWbDu8sA*+C9om2f}w=gV(cpaC$o|EI@I)K-ypcv%_eV8{_Qw%3e3_g7G?o zcVd8!9p}yO6tm_5;)o{A8Gyb^f&XcUzo!KpbGrRdNZzO1sw6m7Ry~?x@_MG~N=n`^ zBajcuQ-`e79gS2UygCN_N$}tCE9Qj|QcDc{l5ZCfmV&1ND!5e15S76f!IV-UYs!Ba z2GZni#1w)=nl=bIcsh0k1=#6DUj8CW*ALtHrj4C!Xay}LHZL$NhGQUlvjyy(!L_4= z3$XGjG~#p=-oU?no0b8CKC%kWo)GAlkvPrV2CbPZr{%xT|6`MjbFfOrl