summaryrefslogtreecommitdiff
path: root/sound/soc
diff options
context:
space:
mode:
authorYang Yingliang <yangyingliang@huawei.com>2022-10-20 19:01:57 +0800
committerMark Brown <broonie@kernel.org>2022-10-21 13:04:14 +0100
commite9441675edc1bb8dbfadacf68aafacca60d65a25 (patch)
treebf3fecf8751d802af7a9e69338cb771e5292708e /sound/soc
parenta75481fa00cc06a8763e1795b93140407948c03a (diff)
downloadlinux-e9441675edc1bb8dbfadacf68aafacca60d65a25.tar.gz
linux-e9441675edc1bb8dbfadacf68aafacca60d65a25.tar.bz2
linux-e9441675edc1bb8dbfadacf68aafacca60d65a25.zip
ASoC: SOF: Intel: hda-codec: fix possible memory leak in hda_codec_device_init()
If snd_hdac_device_register() fails, 'codec' and name allocated in dev_set_name() called in snd_hdac_device_init() are leaked. Fix this by calling put_device(), so they can be freed in snd_hda_codec_dev_release() and kobject_cleanup(). Fixes: 829c67319806 ("ASoC: SOF: Intel: Introduce HDA codec init and exit routines") Fixes: dfe66a18780d ("ALSA: hdac_ext: add extended HDA bus") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20221020110157.1450191-1-yangyingliang@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/sof/intel/hda-codec.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/sound/soc/sof/intel/hda-codec.c b/sound/soc/sof/intel/hda-codec.c
index 1e9afc48394c..f2ec2a6c2e0f 100644
--- a/sound/soc/sof/intel/hda-codec.c
+++ b/sound/soc/sof/intel/hda-codec.c
@@ -109,11 +109,6 @@ EXPORT_SYMBOL_NS(hda_codec_jack_check, SND_SOC_SOF_HDA_AUDIO_CODEC);
#define is_generic_config(x) 0
#endif
-static void hda_codec_device_exit(struct device *dev)
-{
- snd_hdac_device_exit(dev_to_hdac_dev(dev));
-}
-
static struct hda_codec *hda_codec_device_init(struct hdac_bus *bus, int addr, int type)
{
struct hda_codec *codec;
@@ -126,12 +121,11 @@ static struct hda_codec *hda_codec_device_init(struct hdac_bus *bus, int addr, i
}
codec->core.type = type;
- codec->core.dev.release = hda_codec_device_exit;
ret = snd_hdac_device_register(&codec->core);
if (ret) {
dev_err(bus->dev, "failed to register hdac device\n");
- snd_hdac_device_exit(&codec->core);
+ put_device(&codec->core.dev);
return ERR_PTR(ret);
}
ҜDH)垞-ڴUÉm!zWAS鲴UCTI-g%vפ!eg6,6Ӛs#cvډZ#]pN- RvK46 ,ĄhHd:3wFן'oo.]e-/-0!syX~¹B86YlmZ?>g,A3{>G )!9K K"rCUbX[m:ap69cl5:d-Z4žN{ Hs+|y!:;]U+OTmዝu>syZ+w=, ǛbWlk8Bp?s|3/0+(HqwD( m{Zl0Ϳc [YOF.WONPl9 s s=@h6&3fBȨ{3 k 9=S6:|)Ό'`X:G()[\4nz.)̒r`U&4SlIBUD2VaZ,s5_.~\- Wj:ֆKUr,;nF9fY ͑"%:va SHbg^(uΧO_j6TDlۘEpLavTVe[ n1Rrk&9吶BB?tyg#߹x_"x˿}G 99!Ooʰ̓H`vTLQi 7_ʹݱe1C@B&zY"?oHG0y :,SZ x)CJj"|{8:bFh=ն]%TFfh1L4J؄rSs 9s{jĨ"5شPŀ}3/<,ksQ ߻d'VCo{akOQ+/ߒ)wBc]b<+UvkV//YxcGǜQbe.D$ԬA_o:WK0$-h!$8oSW,~;'EPxJН[m7Fy;'G|`m6hji6Pz2|duj-&EzN+*pD:]lddPc;Ys>&E&Qm#'﨣N.os޺^mrlW`[~]TVL2uc^l$dM d*5J\m'jM3kИεD>u\kʤRWJ7{Bp(Jjj2 5#<~0tܶNh>3&N*\IضnN_~>Zdi9>yOynNy+y/Ǯ2^V64k n;>n,~n#sتsuیDLArc!/~&΋$2-bD$ƍ'QlgG::Йzax!!"j4?FHM2AH錟qNrD"(؈KJ&4#66]^?L2|Ι0ܳsQX6jчI$ni7vV(TY.b_]^wQ'"Pv Mf e~볣o:Y GVqWɟUf4_fOٛ]K܍`W,^pSub/R٬mϙJ,Y{8iE*u-7c;ߗu ljTg.K{gEf^ҭ s5U/]z@4 ۄn+3beYvq ~i&Q;a\TLL"Z|PSj 5 ~n4ϊ[7YJg6Je?/E>,aHH^>s2=.(zj.hX/W7 YH ?OCH\MCyu[W XKA''sUUVmlݶ6cDUMUmF[`ccdIr =Faמi͔JP.2iGNI5Nj+c1VLO_'qo*>UF ˍFD3ۖXF5 3rI$I$P8anO.ͪl,!@MҮlzgvpї˫*rGU_wEnCaSg]YԻEEET@Ҍ04  @CΰA p d% % G& Q]I9NIw@}x;]E И]RiC0r LfeAS'g5@3 Sr'Cz8izϊr>!xWynWɊ(^zh2@5w[>La6U CXe~U?d]%TOFy4֞;I tgw~Q+;p">!Ld[Ws<ӏmo?m$"pϷnFШ~-U )唨_g0OX/-| 1M~>~N^BBX\=~[b@xU "k{t>y:[y[ty MKkX}G }FGs>(Qa,PH0~ yG*w#wC5^>.dq 88hyӞO+#9>d!:C4M7~޽y>1_cx:Ybk+qXX Gp1k`R,bCuP. `19Ipgcy~:,0'@d H:~&nhQSOCl1 BN1KN9Hc1NlL8Yyeϴ|l{<` PIf:+Jn-RZ&Ky$ZB dqAPA/r?DًnG@H{O+JS#Y̰; =ccՅeYW{MaT}};_j9ˬ+^uy:0;Y;UE0@p⯜_5]StNu0ƻss[ؤv@jv?f7w+ ,BK817B]jqzRy\qT5>\qG£<ji/ߴl>%l\^[zrD4u4 iqE2N=~#/Vvd$[O{GSJb76{t~_ ~yym7)|)~!^˿N/ ]NV b'(@@GzZmj6u}ްX'+ EpV"Y"lYQ?#t@{EMvhy]vh]pV,1!:dCs=r(>LoXg9x˗>=3uBH{ @(H{7LtMFtn Uhq793|jO>>DNK-虠T HG9tEHtؾG~ᘿvhS׈˟"xCҕ*'rPiѩrA"DAo?tZC(P]-Dzc sWnM+kw g`L8rL9{a"k|ߘ^|(6$$Cļ0ň ҇0V {oćV~2c1]L56J>]Yn_~uEŷXm<GXl/$;d$/`d<@hRagr \H^_7oV6:T])G_pb:@'*52苄3c„ lyPG]  ι%ThǍPh@]@т6~wHqQ6۸AÕ=0= t01!؈H6rx뺓@SmDA06dPSo%yj}v *ͦpŠd#[&B)E5 x ?^H< CI{UԿaL[qr |zٍSaLSCH& FCTd"$ 51 adag%< 4 M+xM2햹*O@K"SJ ^쟦OPpؘ,gRNL$/"!]Юu=w(&2Ӷgϊ't/߲vEeQ/F䍺OF6V_.Q=.O~Av7͐Q! 8ra_0% }9N|3\;>>wFfBª+w coL.\1ח3 Hُ@[*Ӡ6{qZy'~4LoKsU2>dAzx# 6>\ǞV | q"E )c'׿O8ܽ`tOTsw{K>`4o{l @_ec\u{قrAJk@#Wt,2ƕq~rǁ9t~G,LJlm|sYRXvՅ}×iDQo(Dn۱nÙVnKp湺D|<^h:8B[I]Ǻ:yD9_{6G,EA=n5<[[[嫳5~nE`2kZBt[6Db /!Bߎ1v\e޸n݅C D?ur_Dժ 7+Sß\ݗA;8-4uF=<YfPp?\lWxκ~Dk^9!>=>/z+[7v*PΚ`MIr<8nz`hc O+Xa8!ރ ĽZr7g (kd3|CeT ܾC!kD2qKwtGztMaҘ:M 2Q|rVv2u4̨Mt8p0c 39K J:i0h8# ir"PPLd]Dmp֘Ée m5K 2 auꑛYaK:8L8@ö+:3c|ٲIfl+CK>݄XSw  6#F]AȝE2mRjͯu,x.;iUJg%aeCf6c-'ۂ߲1e K%chm(> :.;(ߠ .a,"QV :䞚8y與nXɔѭr2g/9s6 z3@VcoM K]}wIMS!\.|!iP#17rqLQ)"W-U$o-YK{oհuɱfFH@RI$GS"?Mxk I}S\PeXGxTA(%;5qV\%b0X#ǻ:D<>2GɩH+w0h̸avgI,W@s8ܫ/P lt&j Bд~8OvZ7͢yT)Hh䌈DsdG +itI\@1Q}nۆ  ]Z6%F%,(((umr DRdHSdQQ Et㙰G {{׎<lef oEBUqs(V2C9ߎR͖lhy|ϱ-/'A=y|'V ,l7Z6ܞ`uJ *QBѡ:Cn3\'/7 <6!G/Pvm(ޟ?>.2 |I$,:)PǩmrTChgצOw^$#ۣ ffմ-Ag'u %qM X@/!ޛћ>tO_7/|kbWp$ FK;w*d{]ADn;׋'HpN rϖϚCñ{y [ˣ`MV"\o"Ϲ37V_OޡgU˫s#lNx}+_'eR$z?1 lI ЈHc+grT3!K6ŀe@#4e¸)統"Z;~fhH8zD"OT*LX!E8(Ǫ9:us mP\ٛv@gc?رbq)6:qOCd 9dG ઁSj0HZo~bsJso67@d}>?t!_$V.K -XpH~'Fhb $/ ܵ]9;jݑ 1\5A6#C]c;y#vmx9{Q&(lx | 7<jdY4}iOTN64t+)9O9M@$mWqQY;)BuCsa!4`!^=^z'xَ"0 Q,bQH\6{[xHmӵw?+OZdxX?n8hR-]30uѣGǛ̈́Q<<Ԫ: y랇.WC";o}֬#?'_Pɭ|3񌣷iό9qtpqpϹcLzA3ӃŇ1oI u|u}v4Pޔ3U YfK#[hbmB9o;dw|1HCbؤK۟lQzeB j>i*e(:cr,©R1)=4Jwq{Ta{dbz |J 坘d54SO)ۜj3B[{ׇà <óT0D+.2(yt{?ô/;.I|3,_zkc[$ȀpynUo^9b+:n@`M~QϚ# pN_>k9zy/]Gl j=沛U@Qp|HELiNЖ$5 xʁuzBG7- ۵PKt=:$bH s[<6Q*!5N6S\BDsHC?D樚@(5GW]o1Lޮ '<4lu^Ȝܳ}ZO+gnj R]LOc]"vyK,4.5tzϩ mjx>vB* ֖qz.5Cڜ Q9͓eWWss2G{A%Ԫ{=U,,ٮ`{ZvρǘpU wR tϨsZ`xYp| 8;̂M|=O}RP8C^#DL mס>ے nͼr8wJwR߇y,^u&ƶ (Ĩ#|VCAW*?[BnOG  B"ǯl:urrqf:︈9'Ë _6d[lH/`;x8@3ڲ 5ՠӞ\RI? O^`MΌ}lޯjRB]=@F~$ [~l䜚 Q@,^23?ulU aJ#ђоY᳄:qA?p9p3NIcD̠}l \'dݿs 0֙ ہGnV`@5W&yn̏A֙=O}09N `G=IY#сD(d>:E,M(/ }r O5΂Uk#8VĤ ]4k+>bI?~C1>_]rm^O6HA+Gv) TXqN$?BѰUrnxE(yZȅ?r H4[[z!8(}"#@0rS#A$o.k &% >7JhD]57a%& ORsDm*EϬF5Ղ|>֏Tk ވu4x5L$R͞B|݉2TB'`İdWPEBewiYn_6TwXd FbK{JkCl{l54Pyϩmk^NCϳeQD0RPXAHԏ'ANl6Cuy!'-HV8̏xz!'}|օ:cˎXUVo:&]?ǯG=ZV* 8纞n6p d 7"=\ʖnæBKN @6'>Sq#w C{h9xܜͭ!ccsפP"\ܻP^+|4ڂ9=ʻYHUtuvw,)<$*dfvitMth}$ҁ[h43QL'"GqBRCAg%:h-fu Ti E=]zSMn?.kr]$>v-Ms3}/m=p'/g3|{i!`H]ZԲt j1> ݜYd>aoɫ#/gP9hefU؇<{t iKI@KQ1ȃQ+r~Pi n簔3Atz0Š62ci*F? K>hMuMt֎4 &#eto"&<o Z;ۨ B5nTkCq?O|Q6Il>)-K;hr#~8mQ[${Y1t<ߤy}i7cVs/4UXM PZlZU)c'טµvts/mmKnY@Xwr3⤅W`-j\h}Y1νwfT!6LKnv?ф7nq2Ml#T k++}3k(Mst L^Ŭ8 "d1sgb_76wƜ}܄&K8%|+:<{dbs7fN|h5t%}NΎ>u|j@^Tm&r\c(Qf q .ѨЂI pF;&\WXW|k'v#<56H5)P{Q)ձ,ߡTm_8vW9W[6dc{ m߄PAH"??97FZjfKGו<yYȮhAA3qİ": xOqs f0ghvܞʙDN*P!L11sSEcrX3Y~~GKs΅JpxiQF5:qEg]}Y;<.rOa1?8=Z¤f $Uf(>[qc~>'G}8LyTE&_Uk=.Q[S%OQr2QO3{ OuA8->Q

*J'#a5<&lG)ھuEaHs(0WH*Z{jQ>9ba.~Y Y#/;E"-L? `cðbåqK oEA׏zաb td@m׿l=ۼ;-fa.ۻY`4dxEVOZRL $.Y`Xf Eƃ0BAKcGٹ;3]kX"]ܤfW\f9V5 f[ VڢIKw[y߄1ne]h`1BL .@|+FְV_3SzAy(BzVp'zkgă|dnp-2DEXA" )-JEu!v60oHZԬޱ._mK Vd:^^LByvg$U-2gMbdSTr~!4v\rZ^i`H #Bܔ$PbIdB+x+|t~} q @^}[/d4L?ׇ:h[2Fȁ_{v%k|H\" -P:JR43HlR @]}' P(Sim sC{-7|/T|'u,?<3A4m7ukĜõ8f1X.i@\\ҰhpFNn|utMahS rÞRAvrd!GscOmX^b;ݐ\liJ}G,_a.>5^n1',.\B/нSb@̣Y 2rvp5&os wP)~e\FWnkTH[6h|h.%6FE|_il' aQWz;>9E2R`kX'ފz;Z01R.dG"K[3v̝UO^Xo?ŌtFVs 2%{0vuU=_SvqS5j˃˲!:YH{5Z `GZ:M}9䚖cbqZ_%oCE@ ^6ʈh+ٟ|f> _yN]{2vjݟisݥsA0l>@7;?$|QG?0f?ag6Rv JMl+l JdQAj ii~e\5 w˅ #_ٿqҡQ܂C7 rux@vq `/]\W^ݿ%ggڰkoN;YSQ|Hz+ B30nc}8F^F7<|o a]׋N_Xz$xwYC=]b2M7~glv= #z}>ei2eIwz(o!`w9QWQXsgC"lIݽ]G&n#/ŻDY2?1W7VxuYp*8 QȲz[2zٍ8vOlr( )|QO ^BDp6(,('%D\~:^EB}Уŝ6Qi`Ba;y5Of R <$XD2 &zUvKgQ JnW8ؔ4!56U?Wm[RӲ nj'nTrZ)ʑa$ t6˨3W?ibBULWFUN+[9 TjtɌ8s(XhOg(ɣU)A :Ma񮱙H^TэxʪFnyANgsM,v Z:T_l="[L" 0)SfQ/쨏sFk>Ǡ+LcUcC* )Ub "܃#+J6)! ݝ&5=ft{  BR&Ds;(b0y;DѕQ60iu?enؼkt6#MbzNn+TaUL@"Ҙ:% pf֨5~ݿV6& +&/ {Kރvs6RZ3}D7ӝTDal唤wLߪ,Й2u}Zj%蠴$J@ysZA-p;d РZES|8[C8yN13zaWe#}w/$w'!Eulj;Hyg+7$AƷŽ5~KڠZ0˺zN+8*-ٺpl4X T,) H偓0%O1r/T$3?m`/ O %à2Fa{Os6B6CQ"^A.Wg ~\WY=$ұϑnOlX@ 4ibO= ًbBeABs*zWXst/D(H8ŋ,,Ca ck-,X6L\m@_Vx @\ ƱH@$AAODzh.ӭ+hxcLqo_|:t:>џRfOYs%ұ\vOz^:vS֪{\V>7~P56jE]H[F #9DZ+:4u׆`c5p"$#s"vAl(E뽯,.z1KYٲ)5L(p\2峛):8\\tA2 ϲhθ׫mv{ 5j}h˱UU G)?w+:pM;;ήr ۅѬ59X|dt٤́<ӺYsQ=20dJMXUBH}\3Ur!>  Jw?,9x>Edt{*y J63h4{78mjKDjuQkTFNפF\  [QIf]CZ)̓/կo28om""zc Xȥ@$7?b=- (=uFv馄 mChPcMD O `H n!eJaR¢ԕa>Ls2kt]WKn}jq/% yKnǼq8xt*kTx8ufo,Ө2|Zs|>U[2Hx=ywӂ3R$f}V`(kCx_dg(6>9 e`Z|g> \j{ 'of!*@v2J4xBe^jtJWNq=XtV7U֩P"|0 @VQGWw$\ To GE,AxP'uI%X_nG* }\=`PHMh00IM(V/ "" _'uk~SG"G<ngfN&C13aw!sڜB40C&<vBnSg6`~XK\[{+f#Q0xx-b֖Pe s{)p]%0 i3aGY/H@P~V>]Q@?vSR_gDUo☁oK}<"w kBxmV{x_/WҷvA&{#qRS(v[3d<&Ôު*^لPnm46FLܦ u~ZΦuKѤsOTkfv81usIʄbRR7_hXlU+O]!pi؁N|} ࠋB)`6~ܣ1Hv P +ŧ{|ZҤ;:y:!CGR[E$<$C@5_ ~گ=Ҕ/Y#%fM&dzr8$Nltx}YQ vfK+Ox!$ C|eGݛC $^}'9%4P׋Qʊ!ڝӀZ}!؛E@l^8Ĩ%&`PB\ث#TbJ1EVZ;/ | DmsytC d!UelNgq5wsD5=.mċ,zmjo7<>@/p>nב᥷ʄp\E,P$F$&$}hHE, Y3X1 /@Q2+qnͷMN? Ynׄ%fԎRd<؍̶[h<|G&'{ڐd^)75"k(E t\&K*gªGNM b)~vL+Z{=,VY~mrK|iEDÛ{Ed#@ys/Qz)! XN&UTq5t֠,J$G>sR36<9 ?w8g.=)@u:q5B`+`le#k@_cm d gt vT  Q&FxZ%S4]yuWw8>X먜q-R$u spevwKܞ|mg:޹"to3d^&#cꐁ {V}$t@P!AexK@9|LRsHשwsH+[yQ!3GE@Fwl}0FLiq̧ 3)ȋpH`زz3jEiccj=rVw GJmI;_UAD(s\]qcsd &Yōk@$c'=Y)i_Y*7O1y#â iMҲ/W(\iQ.sxSXnq-ل(teaGgu,)]gez! Aa<FDG ۰᢮{ d~>daF ;}rQSRFKΗ/NL wύ쏿GU۝T.W&T>v%vs]'bR&)6#P͹᱂E]Pxە1{v,UX-DP#=kF~>  ɷFLp"!(D yG*P$WsJӷ/1}WL@ mq|+5@MN=xupFe-x4*+lk<87 a"^LvfNhK /O_q~7UVMK& a61E 9< jr?*\K}o]8(ʖ*D@b/SJ{+QL- 5%Ѧm!5oQ[s^Z(Y:&S~ȺgD^s{VpNN5sr!h0",[랎N܈HJP)ϋ ?pw%Elu0VC"/}.9T< TG&0J *X(?\n>0c KCi"Fhʘʤa Jq#ޱd=J8@ V vF9ڗ!.5Ruǣ-ag"2տG4ܢ KA1W !&ݎ?@Ph-k-P41nThH(@?/u[t;w˄nsl"F)/zJ Z{bXL9R?[g52ל+$dΏƎ#Qo+jϭ|] DY|!AHF0TFlcok†CELrl:?h^. b;4#.pEuz=,5 >?C9_ɹ) tJCU~0z'<8խB$reu&q0\Ht {?CS5T1/JJ}Wo|kLbwzx\?I5QN BQx2fobA,"#*-'/6bZ8M)l%e*!U~od[TԮ޵w"qn5kKx{~߈{ U~TuJ ;v:ukaDwm>}FY2B67O}?LFG'LYKcض){'ѽ.GTyPн][ShGn8U_.X+: c3b$O[Wӌ!sZع/Yv<ŒׅÖnAϮ4LP uδ>*OQ{v#;:9>@ =D7t[ ^P'֮jF>٬?seHa)"0\PBD+ <⅟^|}:F]K ۡvd->mf.Ù1vNwj6QvtX(ٽ=JQ J EJS<GȠs}W-b,Q=MWDøNqFɨ荰TQY  [>W%bN/la:k&Fy}blS<wߓJ_e$h5M;$$ঽ|_alO*v|wʉkϊg]? Ac(FWy55ڙI/)úwkCD.5`sʊµ@Nf6Ы]]ZԽWOV6+o5vh̥ xH<D j4(є8"#qH5Wze;k>sxŋ-aRaPe?>\AVW5J7XjPkąߜ%>w ֮ޥ['zcMPw3 ķo) TL6PUN6@G5H^{ȹ6RW׬2Hvo72׹E hnbC2_cO,BkFRbrTZ~q۽4N=b9s|5[mQc8D$pȢ)K1oF.HɚqBÿ;۬kjtÉx/ҝ e=W)3~LD֚U!4)Ý/w)O_!p,E1hXr+8}E|m{{ M$ g<.If9!S (⨴?]wobfp ,f7Ybq-=(i_uL8\DS#o.5+t}'1?774 aGߪ'(|ٚ9@ g.1MN~#ʏ*3fBvy{>劝%*bdUs ]nQnD3xz1 EۡN^UتkrϷK Ѫ6qS"^n`J0p~cG h98b8 p>y#rN>ts}oȈ~Q?q9#y %%dtr|ӑ J32IvLa|N^n "?~N+*,zS/U@jtڿ_.Ლ)U@ ;4ͤuU;gAR/@_H\ܟ9Jo2u}! >HNfmj^[13 a̰*^{⏅?;3&Q\ULMm(aZD }Z7/Te-wPǛ3-+ ku#}KOпx_0 nzg {XC^֨*8I*۔G! oUPDCngda?zں)`LKk]>$%K{8Z扎TT,whpH$4؉2ѭE UUq,YP[.XYtj OkmL5V nAxI7MREh7 PPV߉|{RX__WJ3/W[Fޓzco\XVN;S50MN׶3@ -o- ,i7Vy6P=!-|h8$'U-3rx8C{v#4˳jWC3w!8BLܙC{?K" }^?ߟ]fqY9Ш[ΰ/-f;=JNFeΘc7|u&x #p?fePߚטdt2 $TW~3\,g/(tb+߄^Wjp]#?dDFyHtwpq-$Zwy["tRld{\'\kpO?9JvN0٠i0r]/UUYUs<{aoZ5n^s "D+UkyKA@+ωrtccCe$ P2C & oe@38{R?Zz`dg/PAI脄7okq8icBI~Jy>'A;f]C`ߪ,$#Ưc5F-Da tE}{?}OvW6t>,&mdϑ=NR7(2fTJ僯}^9?#w8fCՄö! o#EO0_倌Bf8T0D9V䏦}NltN3ۏN '@S6<9yyBuB5:dPwb;' m"1ȇ “R=Eϡ|?Bd*!G5ds0>%Ac9",8M؃%J tgߘh00z}ѸX`|n'H4`*@kx(J:#NiqjDI/ҍ@\d!r|D۝K)+Y`W0UߎnipU)"ݍi'GJؠ>O^Qng}K'Nl:̣Rl!<{C͍3C!(ErH31zGAlbyfVNiXO_C6hȌ Bjkd?Co=U`|NHEG^Qshs/0So5]aL!&2c_.-{8BKe"P:qcP}Pigަ] }'Qu D% <γa#RF%Z 8+G{+'9 !ŤJF!Ǣo;"G wp']i_:dm| nm{x]B6fm/}C!HU{RRdQp|sm S-B3U66Vzmx\|gO>jmBxQY$ m6-Q]L?g-XczdU%c']έzF z}W>cQpO^W#B¦?a^_{gx NLMFpDwrgKMd5;M^3^|J!6ܔV fގ,-n=$7Q+h)p6ӫ72~ȼY \ƑU"]ޠ h@RrpּG4 !P/;ݽl`vvVwluĥ;E0F%iDÆ\G PKw+V{1u,kbઘ೵- ȿU7s[]vncf -*-Tч7y›.&VJ5a=Q.7]{Cs |;@cMg_ ;u˰Xcg&Aw9 Ed7W9_\™3btb)vGU(Etpk)EW6`/Y(Agi?`CHS{͎O)>iR#(GPŊ`?Y ݄Z'Z&Wݹ$VwJ &Z88\+U[b ;wYhT*JW&9|qf?]~Wٻf.NY PͽQ7UAFTI& Ak kGw•Tc]HB\B &.Y$0 :SNA"ij|튧sPёFYPL/Drf=?Grfh헌}DxT3`jH~q3%<.S;e%nzDy}%{S_lᬆϭe*\t]M* 7xI& gX}lEpW>Eik-w`qgQsS"ƥNS1⹚Zm^pL9P@ qX·v'gnhۧS)&:|;*9瞴sSir_xc1JK;6T#CVPLhvAIjw|:R(h|q6)d +1S[S N=}]<+4s =d膕xRx1%=Fpک$}!)mNm*Fvm*Lb8EP:)W*O/RY#8/g"T(2u mTG\vk.P^`LzA񹜫>oӺWY8У(G*0]GuK[Me!`zr9K-mӜ)pyΰq7IRGu0I"n2ÂrB=\mJeK"G$Z64j9g89gό݋L;jFy:~lP 滢N;uQptv$ӑFN'wYU:iN;><4 \)Dgl.pHnu}l3/QSzz 2˱3VbN-3uE'm.NB|{vH ;g36&(|v@O6Ǿ+bQrMWbwD;90 B/8WW~5=Pa6" zS16*ISkQ?cu鲟Z)s$gZra8bx+Oe:7;XHfT[Ƃ{ kg^'& fQ&#B[5UhBq9!,*ŅdB/)J\$h̹o9|Jj; $Z4]3#8<<՞s#dXė|f3{՘vg.hF0G.ElvjNkYP7N<r[Z[ڥIYx' MNo12j8; x~2Chx]5j7")AL_M[ڻQa1ՍGc^B&Sw7c^&"p~I'jdF;2Ʉةۻ:r{Kσc xy\TP)AL_*n[o)Hƞ~zm$5! i's/aV_&v=O]ێ τDKgf&O½G~ܛ;vX*fy !e ;ˋ*y|*,u7W7+fq?wkV bRV l3Ur3rֳʵ.XX"'\.&ȲOiu8Z!ĚkW*mN1,Й2f5ӝG@xP2D&t U"\5C#GME%n}le6vNnRݓsqNQVdgK*[:nM'X,;߭dM~mcg\Dp5 /V񇹼t̒?ƹ><~nJk9s̑u.'ADo|{-OԒwf1yߣe# {GXzs[`6j:kc`8;G~ .JZetg/dR qݝdړON_H3[=F>m+hYFӟ,=n8z^j{f?9UaS7aD%$ΏO"oGVGqsn!I|d\ŸnGv3!{(@D;EO"1͝>TYr).o5&IQ1GfQՉV[VWq#>\2J+i/术gbon/Dw3('_o0/X@> vq0tzt\5YpZtL?ʚ0f,nc} UN į ֒H0s.`R3s)0rPI)ӧxCO|QQES/g18++TBN?iQBRI}GR3E;po [N40?T@Y~V"A"(2-Zv*@<usb6y.M^]ۆTpJγaoh; :Bso7;z(P @S&r atR\bP[`E;ؗrBSYmZ];Pg9  j#σ\$4Fjb)>%j@k y8Wn6[Jk *M-P4d8AdaWD*D3TO5IȄ7Ʌ*Wv78{>c,A̎ϘH|膘rvI ?(sm|ˎŭ&ϙ/) s+ynǨ´U"Ks bȦ0-un#%R(jVp^9=-% 0!#[-gWhf c`RI_ƢQjdHldpMazB19ÔZu4!b?NC| 9WjsC*y{vi˜ŕ%(*& 5̞~:qN ދ=,9s(>Rc ? 5⥷9y)oo ;(P3wc 'J,%S3DpZxKymWG"5׺ *Β摛{k- (dByO_h[ڇEK_TvM5ǔl`4Z.T\%J\᧙m&SҒ5 Ƣ A k1vV_4Pmlx3dR+ 8mo;ǃ NHrMB3 {;яGoQJf%+Vh:MW٧=[YBҒm90[f/ .[`.`J22(AC5.2/dnwk}$φJɞfQ%n3Չe_<7ףGsF{S 3^M}[$AQon[t+ĨYZ N[Lq `N$* +A`p:Pq":]qjFO SK5 ^@REԉ座{cLO裏TY>!Bv>舶bfxfFP(W$. )N Rh}9 IKjGЕm߆(E\p_2wh}MƤ4/#Uۡt  yֺin?+OMB4nf#^:cB_ zF{%ڮ>mP﵅Q c`L[!(nZnG7m?[Cf"X !pX/|"+(cކ_T7γ-`G<6M>1hCiGvrT00qER(z=tzVg?:K[{(2+0rXX}ri3Wfu6I{͚g>NY X民؊;y!ΰyrc] [sz*'.W-c  ̉|" -)/a{/ո!O3~Z||\](;kBiB]v,75oL,ee{ۆ(CƟs`Blw1)Z|bQ9~dvpuPޱMW W՞|#cIS36Oj8ľ%x`- E1@u>b;\hP^*9Hhji٨| T ]9U'haQPAXiryAy4ΦG'~Dp͟ʣ\uxvGRЯ=bXR?ǧ6>=\4CJb X (By"B:4TA@PWETBy_O*z(0ڏɡ'Ug'ȺcZHD1_`?! t6x29WV^6tg<ʯx@׃|._q\`Y}{L`=f d8#:X\>BόcvYZa-r%0 aO)qPP*<&yu E*L>i [$Sj\GKih0,?x L&aS-hfKf߂zLD{:s1.OKэKQM.~& G`DKVzI(G~XWx,7&/c,!HP)>끀#[{! o{ZvQ׶ zsC?P x!(%PZÄXCcH !'8wSY &}t@Q6b.8@ '_/2Ƽ 8/?Ԅ4w/&i៟>9e+8+'(ی=##_n0)uQo:L tn5 o&o_1꿯~vjNos+w&+>F\;PWa/'g8Lmw_ݭ|/0?VC?B{goz>e'G#v=05G? AΉ9!"}E4wUa6ԌyP{SbkR 6!dQe͂n:6#ٟ[LTo+?חAQPP89?X!a=5?w$pY48xunK!>Qט^1)Twƶ]|\{d7/:+l9(ad!7)|",}}QoE骝x~CǗ(OƏ6zk=9san7 -xf:1ƋbuV7ѱókQ'T3][-vyx[mn GVrkz]!۩=ҍXA{^\WV?نph\~krܸn q&is6iP z>Kt gt&|WW{A͞<Nd_G{M7W®HK|]֯"$J4~bEr?$A,;EEAu"Ti/,.ؘ=ᙋnue ь3WYKѵxԻHve\BbxylkN 3 ƬM4/spt'P\Am?,ۂ_|E<0<_Jxi13z+*;p 3}2T@W&`$82 8_OB,lvQZDc>Z9p&l9JI[u46L VChG#oF` <>;ò>;=8&PhU40XM'`J|`Ym[{7|AyF]y>HۅcC٪W[S4fzs8$!{Xe,EI*/#ȇ.(/hƢZR,P%"t hem- ўޒHN)O-Z}W/GCl {tמ?J W]':oE, zZNK\ph=,}!dP7S/Ø6-wLspsr ` avXz)-d YD>[C,5coҡ%??꾬r lebLP&]?rExoޙ2N@M2ЌaTjX媸aQ%_?_% U YrQ dBGb|>_ҽ^2h}mC_"8)0'6|}^lTRb?נMgvm^nAc}17}?ǔYC[`3=3Hii ͿgeUŘlH?M\=,Jn%#0xxs@mnz%k3UA?.9zROH|Iljd {ilŔkt&9]@W4py؃ (P(62;{<0HE 7_9P`&ѿv09pQ׮Ȉ)Jgw8O9vi5\SDl l~#:x)rTk8?׏-Vv=͕%6c(f}_xf @rs|w'a| tr;׻iSyW 05}?_+ s}ݗy7d.of$ O4|C٭}zvfc|F9I7ZYN'*AB6^.PcٱiG% 8ffر}$bs^I& _Vnhxw/*kL6ljՠe'Ù*PPQjV+\VH%v##,ܙUXG.O؊ 1NW 4fC!5L!Ing㗢zj83iap|z?^(T"E]hV'=s^w f"\bdZJ-bٍƾ^\5Z6z逖&p+܍do$ֺ u %`f;3k_2S|.5xah,ΈPHszŗH@ N@E"%GUmTPlFƒ/VcF:d#^}N{eQ^3vv9s7Л{-r~I}# K:S1e%+.%ǥ@Ge="" UU"f?&#5zNJMҩO00/ٜvTnAcIckQjٹJ\GaC BA%~:9sK2s,AC뽄oxxI(;a CvŌ}=ʛ$BwGvHP-GB{t[̐S,L8#\O^"s)<m5A<@ V6P8wݣyDNzb=Fb)QPR  `2cO'E"ʿ˩mDEP qX8hok# 0zTq>rEAYD rHc3'C_=QCK| N,ӌB2ۘy \0XG-a0߰/;l/5ͥK5c5͇oh(pUm/.מ,5Za[~E~rd}jt`:$ 3[i[unnjA`ч/:hMn{H$n[ټB-1p[]#K"a7b)1ZsD`r+k, }V4 gfucjv2T;"A`ވd 9'QN{GW+gt-s1qw#EiN;V5Z""9RU[a5ms}yWL [9v$JvsME,4թL bMw3K߉`ur~ϋ??Ty__nMMrDUұH蕎 v(bȦ"&Z2U~v@`rt m}DMJbCE|Ob,ᶪΫwm= %w.I7&k1E}a?`GP}+oeѹ"FO&OvW],x5S8+#]v#5"5WFffD|E:9{-n+6LGQckJ{(^,;}ͿYg|#ի"B%^ep*6n}4;sٕ_J LPګ׬*_pvjp$D0]*Iq燲cҾ] Ul8~GΎz)o7BMnƂݖ.,fե^ؽ.4lf]v=eF, O-Y}U/Fߺw]vzW~m)a:yp 9\[10,PQP\-Wd`avqlVX˥劼>1);4<83,rԹ!wRE(Hۨ/M&l - fL؂.1nK0 ԃ9%{S_pjot2L=y&W> \퇳Έ=A5FWpB's>^1>bA`$>e""nwu|ls#ރq/ml-z A=.vh.ۡ!~<: gځA3$OJKOpl&b ` 0hjyԹ22%2`(\`9&صIlkh؀>art!!u cGI(4p;Rޭ{O H& 2.voZTu:X"rZ qs2Wr+}-,F WJ mǷX61iD!:\Kxg3ad8ѕM$}uVGa$!nC8׍1(T:K60em]4`QI! mr 8dpL&anjT}5 @ >5y)?z-8~Yh? >V\n,{9zXo/W[W?=Og>SM>n7~pv{Hu 7(9 ':hp.’,p`I$?x[G /XۖD E05#hLOk͂Јoߊ^uX?7zvzex0A۱܂K iTcȌr)JMFMvAs@Qe ]raw u-~5"sg֛\1nX'ijM?ޣ3Q0مՉL18]{`Gʕ`كd;oˍ$CԊ4X$<.7eL!%甗HplֵhKWBj{:\cyW^ٕj/C@V1&ˎV[$FۀY0xhF8ڮ7: `61eO\ϯ>#飯ndG~ 鍠A}xGe\8] w~3JyMs9|b%[vHR=+r;$`;[mQZ\/80l% g3<Q(y=pԮ226֚Q՜NrQ1n0Ù%I2]ziBi029Ffx| V\ttZÏwX|_e5ū#]^o ë۪OkX썣Sӷxi(g%~ajNHt.ox u+DrGQ\hG y|6TDnQfR.QIҜC_rCKRhAݭ u TRHrXܻ/ 3!J\]زԠ5<5!67[j]x;V˞q lĂLn̝m1Ap@0 Jۈ}J;sPl54beh R2|Unp&6刲`k.jCd.;6f5puY3㎻Y,+6X莛%0E{gz$LuY xChϫ]K0B5C10 cuE_kmXhl8VtO§ zNqG~k^f:2 uP>JKo{'}d)f_@pnʇB.ۉ[#2I,kLMXVttZ*8Y=Em2[1{V  ,H$~*HTKbhZ`, B⺍?mfydv답7Rr.ƷNnP-a>OݧR#"h$S:\ 1sNZu-1-Yc ]2x Οc Z"'Rm&P,0E˕bn5kҭ;pȗg1ܮ]XFw~cN2#n`{#I#N3h-5YGqI@]R $ @ICiB"ĭ|44gTժ߫ H@4[zGdlol;I/'nC{ D wߦҨGe󯞣^ehISrlyaԾ>5gsj6R3s%iŃ=`X󠳯,}v?'gȜa D Dq ;@ 0 <03ZX^] PK&:=vYjAo -řM."ajUQETcICI4c6;ǟG_N+|6E#X@?aGʍtF`biB[_fC:@߉pa 8 (Zyp^Q4ݛ%_`q9]1hR*JZjWLb>Dck(™'=fmheJE=Ç>>ij>+9GR\'{ɺF:Q& ޭrϧj?  ďz 'x mZ6\(A>ڗԐDT<ˣb"xO8 Aԥ3ԁMD׵˺xט"sAO} Mo5 K%DḚ#/@z\yơSg䱘nY{Pӓktay0n['nS?5=s$^2!!˜!.CMQXuOp $ˎ_]1@2_Xo5!َӞNF/@ DvYxzQ>W'}c4KnA;Pb z$@w*:8X@]Pܞ0 DH&-|˄T˳"duB|DPUb^Vj NzRV !hk3;{PެjohGw.ʋBEID*B:<- $9~o(x> hH( .& ݱh8{bwav0hV".@ $t0[{HdyAĬt7A8}@!}遟cx#rgBTy 5nGM`=!Fܾe,G3gnE@]Z|VU>|O ARN|!\c5twI6uI206\>z!i,uc[-fʡ>8>Wu"S"EkuϽQT?:gb|m?Suȏ bߪ~`Mzfz S8D$!x*5 |nb@cӯO[ р74xD Q@3f,8"No"Y6i|OB6=0^:D;ΉHf PrP Ckw @r>Wf"FtEq) N>9Y>3ާ_}!!BR܁ AKE.Dr(ZJ(#5iLDJ y%qB0t(HJI(XZ! (:L03UU  pIF(R`<޸xe)F($=Ox4EGp%$F"oκJy@0E{ 7 d&vZq KBS /@"O̳@PE2h"gLY{CN4M8Z> s8#+pY d K 8UZg@_=np,urZy9'm ua:=XX9%cG;Ho-63 j!۹Ov"q> y89lF)A퓝e+W訬>$7xEjsI lF1 z%mܨ.k͙q$?wF}m{qo)΃TEdG?ޘe7r&2@0!I4PJq)9޼u?ϮO) i̙mxZG%":⥳IFZzvDA}@2|W(ǒR>g PF~<53?=;,ÅS^>UT`4沯Z]n.t-~1Vߎ` QVHb/IF4P=' `ൌ,q"ݚ#v oho?F;<ӧn5ۢ`+D/U0+>]ZA탅J{[S10 4(/hB{d2`G a ?-X;NY&nZPA6ҟUT$ u0"\EAS2d6at4hum+r8QQLYZqT̗4.kXkzM;]\:yGCh9Bd;B!#tLiGA*"=UdYGO[C~Q9ߤsZ_",BUk[0?"ug _q,K6=ܣƻf7nA#vMz?l+d 纙nlwo[/T~o~^]5_/ÏqCg=?|R*( 7o^D/1)DWIPXDQ` Ba9[*W 6TF cQJ7~_sf8Gm.91$q/56o( d{h*(x yZB4 Եx&mOv$ hQRz)*_`@_υg/}HQ~ ZK?Q pG$ uI0J'd_OEv\6et! y3 e}*"Ԍ@6P`f6\G#3V)!'[Db/f޾X |{Hτ<I[&Qy4G.lYAHE D Sa=408q! kf`fLpv븆HRF# |?Ã/9߁@{/E3 ם$ީ]u vsZs %ݯ "Ɏ}+t|oIxL ypW;L_Ud=zR}`(ġZ"IV| ##VU'GjMo xRnu>Y~#MFsQ;Rq+%ZQ_0apCf{\l|a]1nn;'Q!(YP)TD Ud0j@v6 ԤQʺ:qGo* oW <î{OclsX/{smφ:<wtgf|8aCb9]b8d'CpIFhב2,|Co|SlLP3[i_+׽7]2ݚێ1M+&"**ڰǏ޻Yq {lswWdHʒM,tDFZapF|3~. M;080K L {=vG8ƴlt(S]}b}d˃DR$\2;_ |ZF$#}N4~oﵭd'Jqnlo"axJ4j*/l7`ptY[:ϾKQ9oV{tkĮR zot,O{679 vH%2k8ek VE7( m` &oTuw4G-ʾ(RjHT:h>^8XOLkgfP:$3ƒQʡT{Z0IdGQPP?N;&YplO'4hM v*yM0AH}@79ڣ){.2">u\ٴ.˳@89i(O0 GST ȿ+ $"H#Tר+" T%XTvfvTcxw!ݯGKĩS8"$c?fsUkHCԐ*H˻Oʇ,8~>Qx303Gaݬ/˒ p|vI2UDU}ΰp٧c]$XĐI2xPL $O7|uLֵ_奟cymХtP P<\niBAԲUȋ F~7 H> =<5ӣ'3Ʊg|{3B}Y߭(bQrv޴MÐh$9c0+GsFu4gXpOÙ[G9N@Q8 D@:5iBPF@T! \Nh_H /aj}fjjb03by?zH@:g=W!/y4TV"):z$5x F9ň,0^NegP AHCuK$R-#mX(Ňcl/r"?odeK-Wӣ`Hq(D٤XՑciO$qژ_84v@̘a{ԍU:$({27w(cgiqfA}Nl |q]Y(tA":_m^c.Y_+q2Y6I}7v\MfiTlJJB_M?ܭ zz`꧿5p!|%/򊅈