summaryrefslogtreecommitdiff
path: root/drivers/acpi/apei
diff options
context:
space:
mode:
authorJia He <justin.he@arm.com>2022-10-10 02:35:56 +0000
committerBorislav Petkov <bp@suse.de>2022-10-21 21:59:19 +0200
commit802e7f1dfed7cc7fb309995e0c4138f08977fdfc (patch)
tree736993b84576eae54f792db8c9719afbb511b61a /drivers/acpi/apei
parent9057a3f7ac360e068ceb261938e9ae2b1a7e654c (diff)
downloadlinux-802e7f1dfed7cc7fb309995e0c4138f08977fdfc.tar.gz
linux-802e7f1dfed7cc7fb309995e0c4138f08977fdfc.tar.bz2
linux-802e7f1dfed7cc7fb309995e0c4138f08977fdfc.zip
EDAC/ghes: Make ghes_edac a proper module
Commit dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES in apci_init()") introduced a bug leading to ghes_edac_register() to be invoked before edac_init(). Because at that time the bus "edac" hadn't been even registered, this created sysfs nodes as /devices/mc0 instead of /sys/devices/system/edac/mc/mc0 on an Ampere eMag server. Fix this by turning ghes_edac into a proper module. The list of GHES devices returned is not protected from being modified concurrently but it is pretty static as it gets created only during GHES init and latter is not a module so... [ bp: Massage. ] Fixes: dc4e8c07e9e2 ("ACPI: APEI: explicit init of HEST and GHES in apci_init()") Co-developed-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Jia He <justin.he@arm.com> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lore.kernel.org/r/20221010023559.69655-5-justin.he@arm.com
Diffstat (limited to 'drivers/acpi/apei')
-rw-r--r--drivers/acpi/apei/ghes.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index acab512741f6..249cd01cb920 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -1392,8 +1392,6 @@ static int ghes_probe(struct platform_device *ghes_dev)
platform_set_drvdata(ghes_dev, ghes);
- ghes_edac_register(ghes, &ghes_dev->dev);
-
ghes->dev = &ghes_dev->dev;
mutex_lock(&ghes_devs_mutex);
@@ -1462,8 +1460,6 @@ static int ghes_remove(struct platform_device *ghes_dev)
ghes_fini(ghes);
- ghes_edac_unregister(ghes);
-
mutex_lock(&ghes_devs_mutex);
list_del(&ghes->elist);
mutex_unlock(&ghes_devs_mutex);
ݖgi+X˂Qe?>B 1K Oɠt{|N#4}[}CD@[EJ8Zȱ/kM>ʪ"O=KJb0QB`7n:gP r߆[C?=˿Ԍ<55~T{}qc7?! s&B#*e$H9rȇK^2y>@&zG9Aݽ8ŹPVdQT!y=g|7tiOCPnrܼDF/1Ƅ/POokqt"%Cd;+sSߛ9r;_ꅔ n (WS]1zQnD= DUAͩL\l(pZ_0H$ zf(d%-[vrXu ]vbqpucg^nƸ=*B9 ;˭Ch%m{)Nw㞨u?da7"YP}cQ-C܀|(Sڻڂe80l:oQ1ŔF }ݒteti\D'DRr~@ /8gZ[U1kB.4wGNV^IsӄBArhѶ Y'f cQbq–%7q&uL/9ZQtYN~8\l|E}Ws ;꿃mR>B}6I1X?ܺڡV+?ӥܮ3`3jQ (ag9.MldHR$׆Np WjekmWݳƌMAGɘ44@HHDL0RSi<6fb(&"b"1MeLq&n:t]H4 a,Z% oy?mB%,G6-YO GAo7>f* ) f"Z&Ԛ΅<6a E*R{ AI?]Ǡ2\.tSx}<鑩mP\_,FXجeFT'JY+J<,W`Xal\mt4:)YNuy1goՇ%{z~9&o?*tsߴѺlמrn _^=^c~P|1zb-|^Mʗ*8Br.|0w*۪M Ƙ{n9ZS~:=0zՉkqGжyY{H]H˻"<^~"VT}nQ6WNnR%~rbN!Iԟo>@>]uLD^ Dueo _ahxaE}0 ЭPq0B4IwoȘ!XS; tr0,%vBc_!:l)1`| n0>8klziY [uU'gNE&Z33'|;{{8pJ}ŗ_zŠB !@.,5m^0WSH("$y|v00KEY*PWr-%jZ,B_pv~ g~2 ߮ߒzqyCD*pPg$cم<Ky:' ^WѶ8pvvgf? ]uW/En ( =mUd$8;Xth8V#j:$&㺣?p Ɏ_Jȋ~{iLPP꠰ ^1R `S<{QV!hzO3[ጉ?aLKAz-R{_Yjr>|[1[ Dn_ҽjƂ@S;HpKq|"ߓ`Z?4p*ĉҎ=~|c$Ʋh))ORks2K y7WQ&?^tJ2TLJJ&ASLDj" LepB 힯!F;4-ק/ ܯOy"XQ3:'W? MmI\&!2dRq->K?;%(!0S22t{/0Q3#Bga6 Y@U%yqPBNR\[&H/ݚy;$Ru @DMu=3,DLwfG1(홞O|᣹w/:;ldi|[3 jk%ػy`WqSFOW@Sx KoL$SzJwHbECS\> <ӏs˫ ũ'Dh0Tci㺺mV8C$2#MaR4T_Q#ѱ{l,+1Yat/LM7ʦSF|}TYUf9~KYD|g`w(. tAVs8{TD3зwIC sd'CC~C L&›faWKp%ֈcƇD/=gyf$d]xKG5@]`"5ب8|??)WҨ+Gcvqм[T2`x`v<pr'9u\Ws8&,xg`+5XG 8s{3SF`r=Qv`v\z];ۏ]BTdPj%ϔwtzjQRf*>7 fj 9<ܷc^y1J q;n2O98vQB#6р`{ *P(Iܣq뿃p!OF%u.POfگRݠBc )o1^lҶvH#W$ W^1er(1-fÿXA^V~%kOm%nsa/Ӡ-PF~Zb ͱᝃ`yp+msL~~~|l," `]B8;їN %t70b%'E}w85Gl\5 #Xn2 _*`;^οVͤP`yKڂm}㗌2}`5⸶\3>[j7 B%B/\tlg+/ߊrd(8`=ʍ^ $P g1/+=-+ 'qUH(uj{/mY׀Dݧ١P]ZGK:y|$C/&JK@M iӗS; +$J+rvv К@(BI,6wPXsDRס^-%D%2;9-e0_;;. m0lhc~1&{Juzr<]ÌV8߷A)\=:Az@Z (>&,y{[K}5I?.q>;?qo;CʮY/Sb#I;-?>Up~OϿ(o]Onu_/(6u殳ffVct3A @(_@y?cۛ|FZrI^ՐWݍˆ  eWAIWY~۱z[ZD=!(/tDZ6s9U9%iߞ)^͢|; et꿨;1])*p̓sD(C:.ćC%o=>^nL/9ƬBt[7:91EN.@RPZmMr6!Ū?OKя&c]?TO'Ti6>ɶw)6If.`aGD|{gܢ#߯45]ۆ t+cXiLXy_[ÉPQqQ!1f§Add̮FDt7nJMW[/NA5(ν~ ;8D@xA 9|ơ 'aU @UpA&&8>yi*:7w9t('iH$7+mZ\C ߎ ZKQc$C\x}r#gnltmݐ#I8X5@% 722JTlM8I]oF67;@7P]')%ᜓ'7ƞ$ Ð@rޚH;6wB]ϔu|rG .i6j#~[GDGOB41qJ@ 1&06kxZޞ-U563C:K6d_Nz2x ߃#Xo SH мXy ނkpTqK-~1Kd 4f:;`=) ̣g٧wn횟!c-ѫ/w;z?~_Ot;# V>Nt:':/gV ¶=VJ\巁w7FqiNg-=MJ9]2[2=Ɖ Έ' 1bgzeEb7Pݷh~0<[0zd%ݰH{D=.ۀ߲p@ z3~N[m(rLSm7jEnshۣâgaN^_WA 5߷KV5>uӪ|+)h:\B ;si5< ya9Kb䟒;cpÏUOva_Vcխ@nvp-rW%pXu:w3:H(H|a c,3&syW' S tw&, gCiÚ:l2e68pw8ZAi~rMDvucDOWfHtF^X#s:ں]UM!{lw_"w;3j+'E6NViL΍w[dBRI^t-Ȭ igChOX[yQ|及LН^=uDoK. 'KM@)ϝ"i?yd9a\]0k\#'@@.iRWKuTƺæ;hBt7.k w\ ҶnYaӮ>~#\_# O) dtw[ -7Q#Ԑ ,~"Id.."BVhJN25be![\Oq@/gIsF" bIQNQx>`C !{I p@ ݊8Zri5{n0b ΚIdLtY:&'A{ie y[|=TYȏz 0>qLRΞOɭ?O1Xnpg-'4s#J 6Nm{Q+EOd ,lDm ^K,.ڡ+z&ڳ : #7C]<yP5xߚ_.w/e.uρM*\ *()ڢP ".t0+u:$:655/&|x=A,Jn{)>weꐠrT;J0z K3pu<_\oGE; TQ1{<ڷ P}7SQJٳ efxǿɄkZW\A1inwo]L녋(3nGt[Na0o,-UG])X\屛zB؃ g5QBSз}zV4QlHÿ8EO=szabj_>(r(yHyExkA(uꖝ< z1Ҁ$dKgNJp7 }*]kR_ez B+lѧ@6m-e).`G+e,V=p]8}"`)Zby g$*tr`9V+j;UPuPdBgO |#'t-uVJ3jlZH]a g cuH[F YK@<|doOWruD&t? Z%"Ɩ*׀ˈ]~UN8k8C8O [vƱжaSIYӢ7n:>M[GPr]|wQI>nnuhzo< Lk!(64} ]ᇫnTg !aғN#B"WR釷^ jZ'lL>x":ݿ;Op+cF؈F2 >1%,{'g>S ^ִc6s:FtN=%xѾ]+Ŵv`L9P.6.x8<,4EOeq+v@!Qkt.% KjR?;..`27 pr"^KF×@'7'zug]ql9if&\%:gm`5u9:V댇>y!z<m=+cBpƸhӆNCzݡcVHIewL s8m˔TiԞ5 IvpͳWբX95cVG?fyܪjtGDsgH` D\ STUDLL{SRygC.Ok`jD>OimhHӋ5"$aI/6j*lC+Vp鄤XX|EGoqM?.u|8‚ ) V:瞀0&XzVF]uw"az@(m 2ܼ:$J(5n,޽}w!G3ٓSI2:ì~#Ɍ$$ ϓl WC-t$s_u?chV;C`^ Ѥ9ZU y{ {iTsl_͓ؾb Ú|]-/nW(AqUaϴz6Wz~@=E~PMjd"V m4᳋h($R:bHÚ Q;xܸ]oBSlW}>C'<.`uǐчLm` P **hR21lZ}D?^ΘnZ\<I0ɋpeB&$ \Z+vrh@'?O:J 0vY˩㾵?@_^EM\PgSR1gIPzP 6l#VH}oMUL#ﮤ 0/yu!yz[VW:GM"(lYKʿiRI".rU_hOC; +AAӌ?0Nv 秋`foWWῧg-%hmjm*; +ܾe4Vcg9ZZv0#9~XaW8js+؊37Y;)!CǦW6ASH@J*OwC򘬠~^/(@(4==Uٱ@0M7Tku[r췲kIZm$8[G3Q[X` q}0%YmOu4)! ?Cd]]9 `X|?,{> k)G-q_jDQ9b ~ v}KB*NIOUt 5|cEȡJr 4#V٩;7s>lqFqKm6F޾dKGOelT=)A G@kkaN.1N[~ԥ>*2-Vhdqm/('WXQp.{zX:kXo݂ e:;ja|qs^c\=?/JΈpި o`4DdC ۯ玽j83D/W! +MHwJc7IlLA-Y&9"(*g9/(c~ (0e<-;{)J9GiWLJ)}mgWYF/{ݜZ:v@:J=\9 pV^A7%!gd|u.cUadk3a+@uɔ3T]U&Enru7ctH"7P%yc\i"9d8&sʤC=ɰ~!-$WzBR۳AV+L fz|VG(ݹyqxuV;]YM U!~O="O<Ѭ֦4r8D!Rc@ׇ{<8k,h7vp](IA)8N3o;UQ}_6dv?V:xHɂ/A<]q:ɇKexv~+{DxʑQȄ K$TL}-+퇚qS ;qt0 {6jW;ȼl aj.!bkYP-SXgO-D"mϔ0 ^˲T%no0n@qKKuwK0`I.GETihIi^7lr1fUW0Վ3YǕ~qbĠٍ Zq{hA x/02". aG-Pdʿ=nOG z^;9i*L PB8?FseP+-!]>TTHqZ\f7$Z6b:77=(z 1\\n@{0pmWn = {pp)ܹTlS5& Ѧ&*-b RWiŭy:(pqJKL執b"YyֆJb *9c<12b UM(JՁglogTbCS$iɫoLIFQ%唪vˣʩp]KDZP{0W_J(lrگ 32讃d,.1Xl]۰m,B$XKn̿L4MS{Zq@BT>ldxרqe*XpӍq^ z=?g: } BnN~w_q.'Wu~1٩Ij `*-ϱ ]ȿ߅:{;ơ@aӎ>H$!2vG-|?1󊁘B>w2Յ0%#fcʰsd"ñKu1D]w8;giRi2~0 ]z,6REәIqlo{d T |? v%ǏJ )cB@ի1d9p 8A!x_7B[6 h_" S`˶8 Tϓ/6`2D;J`I 2-;K -0$@FPUUo ?#pKI%Y]pD4$o?Hu2 Bhd޴j~<Ч@RǕֱm)9XI- ."^رWt)yWBcPD_%}hx<6=ޟ-ezɪ!xzwo/&oz[6^ yMxep5p_X|ݗUfw(|6x !s>֣5p'c8*+ 諃=x*=raIaQj|; Su%Ɇ^Uz izjw/>p×4zstJ ê.\́GVQcuH0+q 3OZA`4bB1=/w' 0j p~GsV4'$ 8WJ6p} :MJqj4zA Yh5Q¡PrV`__(_Iv,dK)i7w{mn 9RC!)P&Cv`ΝS0Ftl4X =Їzd)y]n-zU32ٗ=Z]jԇgxe!-dq q6yrbֱˆj+5ar.cVfӋͼNa3Z+cֲC4n cafC = &.WLd.MHkEa5\j3X]&Łd{Ѿ%uAPF,m~5 pL5 QF?7 jۥ(҃icQ7IprdӺҬ2(xQ.wV<3aۋPik@AX\}tfZKpnY` S=e9 >r\1䧂<Ը}B0ꐾژ"JB9o냰*尦  wc=* R}N;ERBA:!T~c7m&U \. [GDcUIp6F8o`eȨWl;6 *0sp`MDJ?Rbmv>vPMMJW SF`;6kqVnq" >Xbˇe-J/.~R?ͮ0o1  "2~!toZ;9fH4yrܔ"E'sj;]*)RY f75%)3äY6]Dp!EI y[r禎UZhlKarac[.c?bgi Hd\ p4Vm $ϙ.^~=3WO@z3-k 2m kFNHLgѼ}Pb8 @j qܥu*%6o>R9 "9x1 ӽ{ iI0ƨ9UӪezd됫F,0 UvI:{q_w뤝Yg渒=XƺAqI=ov&(6WlR犓\+:Y|-J2(_r4fLj8`cUNZ!.)p4ep͔Y3]Qf2ӱw8nY X dR?v,2̕p Xn!Dw:nk#DNM -se)̅ `fk؅ Ӎ;H2G}V XEq G)S-[|~d|;$I"DZ趕Z2HHrUAl~mBU6 F6pyRiX3Ҹ0cHvkuc o@`!Aou>.9~X84;78 (~v1tN4\kQCՂAņ` )Kl=g6T~MA@@!˔Kq ͷ'c}6p=5P64!@"qfU[mWzBnMRsW-ҋ)@ c=#۳MA6 ?IR<.f[|2>B4qlMWso hgŠv|C +Ӗ-N?Yh?Ak~.&q'|dqwICɦISM 5~E߻^FeewS'0yIX]NK3&US7O|_6pXcÜ[tNǫU6у#(R2wB>yp 6æP|Ą>|D $ "ǎ4Hs}"A`P [d֥=rTq +զk]l/WlH"̧s_p٤m'TC@-p\#g[~ϡS鲸>Sd FIV*NUX[< lyx(g~51pZXLY5|EK&{ɱ;[$];ņ7b**NT 73JIx]Xq zu"c;A3&*.:vE 0?h̾g}_N+'*g3o1|?O6ߟKmXHs,c)BFK=!G}`~ܕN֝V.úI\Pj s9(A\6#  xx_wvk}9lc{#N`0nGneSAGH;6T󑳈u-WtUq25.+wg>Bj YXPX*/U!>|g9'csձ[[%<$¸d=gFQvY|e*(>G_yg|;|#C'GP;ۣeNxqy X}p̐0 AK69U%n~R )Hx%BFlh9QY{*]#|ݽ |X^ AơSu&4U$:HtA?n D&:(dAzG$(<wJO^:$q`ЏB3n+!"a!L_W*Ov u?R8G|!NCE,0yxȎY>T╨Q>a90Vu=VDVuV(1%V(jn@Wj>BbDz gY@-\m.>ԟ U$sG~:kG@2M& 4A6+6a6Tq"Bm)[t*}+E氽כh|>ȭ"|V%fmWM@8*OA1B)pm u8/2DpFA#'u.eQg= Gp,!rtnE!9p[pv:|{: /VA]{^r_`u-ҩ:k^W4 RoU¨vJ:$` y 򯫉\MH\)P U6xU9LcՔk_=9cϥ'oE~D0G[RAHb8߯ӷ4qlCSP>2"N![wbQee$P-҉'O`p5(.j혺qYFeP4R3N KGrt%8GsjFY@FD/ƮVsv3* ɩ@a;W$N Zr-U]6D&B }T¡Unkl(HD!Ƨ" & SIP?eKWFBɔ:trw _qLkw⬔N"U\T'd½[/?R5*9$"|KV1J ᅩkrxh"YS)QHT7:Qs^%g/a\7KRkCjQٕC ճGv\<@3:a.U0{Jn8Gv#ߍ cj_ mc}D@Tk5^9f:7 0HP&pic %K?h 1M! Crall9ŰQ3L|DE8j Hz9$wT92ϯy 澌gHXas"/vʚ=Q)~Sz'u7@Cdrc)nck4)}?V?B( /WhԹ   W|9@" 롾1-NLDҊ3A>;R<(>#pxG~z1J9uS׺ KQ6SoYij8}Ғ&45~[i;Uh-P43cZV891Mva\Efԍ/+嫥/׉[/bnM w)@R=6d׻_PXw|eNBx6%9 Tx}–\!@#_;$rGC}3 br|@<,͓ix0Iܸ*mbY]u~]PTܮ\oJMtreQ1xƱ"tmEZfRqfD-ҺDs~v=w\G;:ј |<͠"lb-G1pw<|vpHs3u"Լ ٍNߡʪv#^Z99 .ŻVWMAFi?N;o 4m>hMOn#fq5p髏 `U=@ >FFCF9c->,a.3nIceYQ[/xȣӁ{ds,? sK?LlfNR<6wLVTr,\h2;IVO8?YB!d%!6Q1#pDKr#LXdj1Xb@L2$cZzېׄ$M%3ы+Ž+a=;ua\mz"pu7"6"Zg ‘ ?˫>P9O tMIY1h"Z1&`拟%N1.?t4;wӡSTB+ub=XLWuT na&A ^(hdQUyⵁ8@,$\rbtDSisX)Z@q LInC[̰y7'mr2Nes#SkZYi?/q0E栅wr!KϮ*NݥseCsO';:䍡'U;xV3g 4sPR3ab&y>HƩSl"sKFJ ;P^=CKB@ wN%3d pZJ/ѿ~zTrrɗ యazAUuqY(d`X3X:L/2THU[|H,uN4up6Xd&OŹ_^n3 F2=z~z#BEsZ4 !e{xu=8W0ҩIQުHɉaM,e(+(WB}b 6p(qA.!=}K 6HH,P^vZ59.Q֗Tԑ^v0Tw:/:nWP=)0)yn(DF S,GL 9fȰV"@S@`ur1kVPJy FEgz_w*Aσ5ݏg0Po:{~G BX<7'0^Q^[}běaZiup[ه~BO[ՠpM';vpcY #gG8m[}նԏ%AQ7 @[ рqfI dߘ Z2A[zźl+WQkY]s¾i7.( ^@PQQM莭/ƠLX‹ d~nkAj 'VkH_V!1_fYD`RTb2 YoTU|NHU#y 4]T2?Ȫ<]+CC%F+W_] "Ǎҽ@=3Շ-n /B}88x©;M%zܠ%^|U{-BR N4ݰﴴsءC+>'P=f7۸RqzL?3؎@%VIRjD"qk3*}"[ذGJ^vF/ςtSw_Lɸe[HP‘вe>|%++ioNz/QN: >A2=#{ A"[o$G雟Uugꆟ~!gsb,޸Icyc 됄Җʖp$~%B]"+.fS`U&mh}/\ {yQ탲65T*L!fn5DD[t/dE} dyw`JHorr"I|2|>=}wt S8%Ȅ롹MكõD}˙Qsdɇ>דFU-v\e]|7bUPGgwG(k;589$ښ YEІ}(ĸǓCX;.YM6<~̧3a)RP:⪌5loٚqB,M맱X2073!*jNG>R{ Z}{,CvL,fʦ޲Z ڸ% .!_et0[kH렂PC?$=ڲ@{0Ȭ#xg um V |^LV |"O5i29຤o*fq]s yTЉ<zI#z}340wZ]\dicJ }/cկSLwl6g\<9miG$ELIeP%4HF%ֱxPD̈LBAp\h0Gh$ 1/?dho#> SBzbC~H"}qbťWO4FUKiLe%:\zgm+bi~9O˞8;|EOq]T9-Q{72wEL`;~C 4>v6j^YFθML(BWnǩh-~N?OܛempG1_ $ 0YE@rWVjX{U{jsGBnLٮh>K'Sa BXU%ȥvك(eܮ ]5LLpCBM#@D\!JG771u.X~Цbyӹҧ@ nŜg"AM,>Q8×.~E48@FuC}4_ٮh9b#H W);O.eqYf*/.n4@!mEĪ-Q_d(Q=1^]Q7hd-j.$*1$U",+e9"C:D8p2g⇒:@^8×9t<~Ӥ7.uXFͰ1-z[T.s 8GzѠ\u!td!w`NDO)X{[Zhd}=C,]yq#_;e r# b ̚t65-[\{w<t9^vM@/G<'`:>FÅgUY$I!V us-k4[6*&n>UK2&a+ ,ڋ0}iiTý6nl$#L// yrLQPI|/l{a!h}-(|?ʀ$-u SRܔs"Ƕc' cԈ\zp者kԄ7t:,xaY#A@[uNrd;2Nl9-82:i2 @AH(hxC|韢|mR.jx F3FF9 ձi\s4$x71˲׭NK{3 ӟU YSr򈐉pn3DY'd<E!IsK%LUMicP/v.xt؂e*L"JL $y7+ȱaNA0kUt jQ ?A {&nj:Fl%,g:h|tGLM4&C^b~ yFr&ƼWd/4#.2Ų}wZaEybUf8=/^^4.'Ϣbf g> q(c4PJs󅚽ıߞH_][p\^}Q6JP9C?א:r(WE~u#Ϣ|zUʶ)IlRHg @?yqB4skA`Oq{E&yMcل,v#q(ՌjAu,xUSG@>~7.o쑮9;t$s"L*9lac "qz5~+U0:@ GA*Ɠy>ȍ!PpxM[l$^Lj2t.@Rx[r񕄄8sCQՒH 9S*ŵruQr +D&(e{Dmv-XX-0+Ե|7i Sg{W=(KG&itG[QlQ ^1-9>7Y_ڐE@GP- /o]x8TS0. *F\R zࡖJĐAC`σ#x㓧阣AL9>=@*4Qǁw<,(}5 C  Pf y@Hh?2n 3IfQ+am/kgyz=|#`m鑙a(n˄[U@y5=c=0#< KTC]* u)^9P/ ab'K PE5K&ХOE=jKs}>Ru][~|^m I?׻cJk95aCX)h>}_<}ΰ/P^|cnRtŒk'N%1h-2" m>|֔xȀjb 1 :hX)ǐxR־N#ϰZ*AearT*6;HZ-nLLbU[N%:ALAFR<)t|pFrh1zhKف˭fޝi=c/ 9E d0[ӳMD%CP'iۿ%ϛ -r rfV 1:s` f}8<]oEel231&5Ūt!GJ 틄˿gQ;D8@,,1ftVZ#0g4hnX/JL)Uq-`0C ')* 8|r= 뫁y d_v cGΨ-**c"֡{_6] Y,丏Ib5U2  b(>Y:zK0g8T)HuJ\<1c!\qQ8֕47C ^̀|7/O=#ֿɮj^2P(0GH3@rgGO}22S >KػsT χg\~ +T?i cc5Nowѣ8ԫo?[9(9͜4Z%k~3'9XG$[;E!dN_drjt[Cg}֙C,CkiW!=C3̄qGiK3?;$OPQ *!P"{!2W`yE SJ\f^B\P7jŽ}[ d>-Ԣ@,x eF^bo)|` G %*!Jh(rQ#L{}?vC<J1MQn}CN!G\nÞîsM 8L d$|^=K!`sXi<[iS&͒zikx>T}(79p (b#{mq'DC[h[t^6! P˓&䕰rNÁ/SbӗN:Mb(s rx<_Y06c!{ O127#='D?@HzS}\>~}*T5 rwxiI9S4̺)XzVS(uɣ0ᥖLsx&74z# I<8unh')~v/7ce#:M$ oOv_םz07>طE`d#]J(X^iC\j%W*q#PoiJ{Tw:]`UjGW AQ,5MPԷL*F꼖St*v}.x A"6{u׿Yt"m^0GOlZ˦,E,9&TMEkdM}?Fuܑw%$ȉ\av=B\]FRbl`娢I&5漚kl*8y;2ś$GwE^cg4Doha9iaX^07BZgj'ӺgDyQOvPL|jz߱h&|zoʷЌ7%T2a-%S:ﯟMuӡi|iP9*;VgK[CLe >D{9q )kW6y%fNJ+tcF!CU啡;gu@ts%J0( UpsJ\oZsSLvP)H%TT#FAfɯC[e,- FCI`J,$аYDC0 S[9<8hcf_pFY{1Cr9Qa^ROXw#(\I|K;(?pHb*Ӎ ~\%CXCs@x[8S!`Л5$Q:òg" z,2]?Zߊ͡ q*Z$D2Syķ`yq*Ԁ,\6vu7'#rNhp}ÑeBxֳ9BNq[o{5WbLFv·O,H%q4`.hr)dEQӊ-WM/*v!dOZ9TאMb`:gH~Of!VB9)AY=8qV6: ٖ٧ Z[j+^.[w:s/NJH䆠D@ۮ!^=D[z"։*t--#zN]S8=+ES6@s+g(I]zbF!Ö́"i(B ;pTD,AJcf҄lQp^.լ 21|6y~2/3, dRsd07y}W ok[o% 816I![<{]ny$n*nPF`ߡܪ(yAK'מ}\c~Б|BPr%kKF }~BM 6}x}ǯ_n›Wߎ:r7QfZ ʗ(Hoaءe>w#fo@s~ ?P%)H8va}Yy W v,!t =V ^Ǘ1$]P\\cuP u!ؠ NLddk5kw!o>L4%3OK?ƣ&IrCxTG3X00fD\dD*ϐ8p;S!jӛޚRͥ$ !΃-$vppmgOـ#п$/a¡pS =Uzto9n QaŨKK/>#|nC )#1|MX-"˼Ў=!@,^ycKQaZBBfv '՞ QΥY 4Ƞ/]Wj9s|i U>ѷQ4r;/W'󹰮KmV̴Ct૟ijHbtBǧT#J Hr! 9vQ"( ?7jM@ muYV0KVPZT bM'3,YB^wfrpPϽۻcFϧˎ) &ѱKk(2GnDDkA4/mZl9Q\mwUg7:1;hrJd*xo"=ȨGR:'2omV;ɘ/O&Q]9g]K@ ~C]8~ ô- d˸TE/9*\Q46輸Lf1(#LL ^x#fN; cC'!H/J&eaѯl6i=6R)1HD]mJ$>1$PcbikBpI Mq-;np(ZF=8yZ(Hg}u D<ۃE9=>(ӧ!71d.Y رatBey,x)Ů5X!w=y1m;߶a }4~zP5%ȴQq#}h\/0bl YmU|kF?}ݶ<7kO̵=x+K1ĆPPq~T?G* [c ˎ fp끦;HhAizĠ<{-!EEw%'Ǻ3 "ѝh%f2@꓉ZBg7eB:Bo2~۴,\p_a3*fH!ySG%Ԁw7eTÀ$FeDhyCnciD-RB1RC0Qx1swZ}ԍX-*l9gD!(y(,਽j ].[SSόA|/z;N)PIwg{vK@/rToJ!^ JږUbaEow+nE] x zlEQXhPvJU;ൣ`䥌"~2f)&`W^OU7Jc AgEC"a-%|tِ֭_ӡO1BÏ |_t4K(ļx|ЙWE؉Ye/QhwP6:Yumi"ʂPLjJV;V͝tg;>sc[p8^R?Z~guvG23x=3 !siX9ð4ܚ U=!Iu,a%v^i~`v` Á$F?|RדTʩ1B0p|wkA|c$\d$?~qX~G~djDp& Dq9g*Aѣ³n!MɪEN-(mk1@`#a M:Xi42Hʦé\QN DtS*YOEfyZ :I F:슁wJyEڃWp[w+ vT=B;xgwKdGt ]owQk0)U.xA( [iCt>!jtM.88,f\R4Dt ~;@fË=G!,=1j.TzzXR X3eeo ]7펚)hl (,`!j0hjN47n-ϕg!YdH!~a %|Q{,PD1[҈4ylJ 5$ 7qY=^CbڲpӐ%"a1x߯1͞ ֚3~h܅ V#F&rBGSG^;J"|_Y;P UCɲ8Q$cT"i~c oyyڑo@|qӌ! >4DG<~7&125/Š7k.ZRC^V O߯ 40TհQ[݁P{ag#;i%?RN!U&g #hS:w.f$*^8lDx˃gWJIvkR*Ax\wMP=Lږn.Pٺ] }C y?㾧 t;7TU8aW'-Iqr=WtЇ FbuNU!zΆ<̡-""K71:F۔R_v#E,rj6ݸU[P dt!=$)&xSЕR33^G`DA> OƯrV7QYUzqV|" _n9t.;ОJX 22U`̋^MR_ fK;^,;Fh# +Eڻ*ϫt}1Cg BX H2`Upol?9o_uk O* ]K Yk T+7>NpT#+;Øz޷(:y ř$}/JQzǏt?Ӊ8D =( oxÀ-Fm.d$6ʛ?̭,B!bPI=6 y0LU(=?E?䀟 IBPМq-().o2/ RNCH*)Hr,;b?R_''Б^, YT\C?G`;TY e?_ԣjQ_Yy0Su'zt}ɝNf~? cNZN,XpQc,c(4?gU#}{,7soeho5_0z/w0'h[=5#BTZ;24l$ᵝ2(a!2Jh`| cWvXlocaF[*},6[k:W}im=^ Տ[_7uKi5rr:b Kɻ\*p/6!3TXӞ=V\CFr"ڲj\E,oΐKc9.nQc\GM'l`3kwo.GE^ |ώ|=;) ^wOGwW8 OўbT?c{o Ǘum/0_U8ct[wi$UK8sqsX ]zN_K09 _E {\jJwmpu4}ڶfz#s[_m[o˜=<s3 YʊX+1V$/etS qxek1f?kzk}H6w*CgP"@ǡwS΃p?O7}lXsѽ'aE!t?bCB;X+zDBlq?Gm?^fqۧW2!rǴv.uFOUcҼ1,߈hVKJqFS\?b{˰tiP[6^H!jCjv{9Cy*Cf}(|~bo*~k`ߧ/wӡAx&Y<21%/dbXǃq,D\,Z~ϧߪc,߃6Jv* >dokW@Cf%/LIDm/ZWpW]4 h!?r0~n~O~Û|v0ۢ|P(  3ǧJU?^f7?u%=ڽמ=^#ڸ:<`>5; 6ɥy;j9쩹@xvV@Z{qo_&:-Pmea~/(eφޑ_W_@a|3e$oQ5ǙEAxQkhA9\gth^]i7?Ɓi[}-y:ƨYPp8i}.WVK A`P ֠-NO1YcH>jO_*vKYCiZ3` Tsl { ,Fqe-JD>}3 ic-oʦG*oMZ,TW8[m=E]FR38:gPqYqv[Dj"e>`i1Fb #z_)Z gནW+8~T8x@KvdG;RX nhN~ _i\YGf< CjUas=z18.͏P:Ms' XACAq,?/Bb? o_s0K`̹=s!ssWUY_ykQ7_\>=/f1~?ʡlHc?o2fE=ܓ2M*|a[q|^$wux?[F`/Lox]W6 ~4%gjAN)ppve-Ra[]AnIQauܚH"Ac9=XoH6CMU[& a?W5հ/ֿpi Â"|X21YPo:P^y!*OR[GfKl\b<~W T6eӽxd<}h8c(:nΑT[%h+١7[]6C F=]YYMq[v˚lj9 ,' CmNL<}D햁Q#]{˯b d*l/J$0 8~vԭ3ps.bن1 ȇok%X*X;jH=4gaQ,H Gx5Nd`LQp Vp9mHaj3p~ۇuCArO`vC\>>Kj_(V O<Q#fiYm5H7@V‘XH(I|,6x GGd?_IMղp(I5?LF7ct ?(DDJ *|;Q%.L^p|Q^eiS=9mu9ITNj1zN {zo6~_]Ǩ`AOI"5%z"YfU&X< &:juj[uJ8b!Y'FH|߄PMҩC:"e!T0:y52Fo@=C;eOm͊HwE5uK+Oi}܋ܾESn7-b%#2 +L)ӿW~ +]Ŭ{,9 RJH` x]uҫ))D[8:jo;|a6,A۬qpMa܊ď:YOGnݯƸA5͋A=ߺU-?+4^B X=@ h6B&,1<,,cI:+GXY&~5`H:6jI!yX9pR;VfpҨ;S7O78 bWd?qR717 ")h$)'Ikʥ+ށNe ~bj8n9hxV[=ߘY'a;ꅖZ.-5ؚy1f_&P hkqgC1>ļ(9r{GQ h87$Y6[fgYsWK2T9W8^I)8~)޳ZCupN9kR`A%FI+xUE,d(p|>p %D ,U0.W8qyk% C>>b_L3^Rp. `Gq'dA; i;0J\pvE E?)D6T"  A4'N-YGoAsPW=^: I$cߺq5L5|u^0:OƛY6G4 B =ZqƸפC> Ҽ=ͤ=Lko11N]D/>EEuGC9IO,&pV1vNU5h=z=|JCw޷uz"ror?D*_=IQPy̮e )?%ҥx=V7ءȡy[+ Ť!}!)|8{V96 )6ޟ_!M?z0 nWYk8{C VݵH D yq7:oq>sL\Lub H D&2@ D$")WAc^5ZR t!83wkvkݹ|os.FMRvc*h$^6oMJ(Φp;.zgݖOLD1Ey`ػgpA!/O3\̸c=Cs^fd h"BD`Tec@pA~㴎R ȯmrtD+ܬdk+}-ܰAAf sY}7GS 7}`b~wUGklǞ% eAseo5@aC 3ߞT2pVͳQZ=Wm 1\|cYs'TQt }˶W9zd뜣l٭%A`3s0r6f-1|ݷ=6È&䚎[4A◰^)? @q}1UbOk*q|~hcNHO+*XN$;jygh!ORWD"o`}ja᫃5侞-\4V=|ixv&0X*ffQnh`=9'xe/:}My&Xi$}[e\A.zeߧf zwQsiQ7hh@}tLa ήaˁ]3*">\I ;4$ 6Pv6mщɐӥl@34qJqf/;6'ю$@T҇w`9 20;.$#x e;m+S4-GZ7_4Ѽ* xl2O8nh` ٿLhHNnSH DoΤ1dDe,!(pErDvsytB4oт&'dC2ҁ'Q"eO_鮭oԜ`n^w6(+To6SIH4}nzm{'e @9X$9=O¹>t $*;1(\*R&:ȿ42Y~GMC;KPU~VkÜf햮` [ fS̐;(ui"n/eLB xȰ xΫ_c;񏛭Qn ص<ґz@On}9_}<\8JԦ ⳟL/kgr~ZRJMcp}W>7d}qZ9N,T#tV7N,dTV)x.EBpB:&F:.|`ph5g F/k[&Q%ʁ?"V[5AɣMxcڜ=uL9w%+N@"QnrAAG`䉄6EP(ą~#xyzJq1Z:d_- W6P,rB a&yyԩ˪O9A=>"]ܼOzFa|OCG:5,KU&c#ny[˚uy/M&MG#P'3IhQi>{.B=g>!|ϒ/u#xM )1|髐>Ft{ HYמ aY6:eVH$,zxv>2SM@ yzyx{ :%]{I~ UK6(DWW  +F&VYbK7>6)HJ0`{>+"b߂`(-H#]^]ju@"M %,hHW# ^NjD,5m5; ֗ dhHˇo֢Jb"^u!c-W6:eOjPs@ ~D8ƲD{\N%4+AD"$"M] J9:齱Ӳo8ȬGq:XޏW=f<m!pݺ_+17UѮ?E&&+!Uͫ{kZJl얥>kpRɕMɦY֐5c|ݣΛp|sJ$TӃ%K_Ϧ! .*yr޴_,| 1}|HCOh|{l5,fC<0x(& mH}QHeZ_韢_ߥ\O׮|e=A)Lԃyav|'~0c%T|VHOЧPpM%J_κDȼCP`G-76.9=!Tyx \4=Qql(O_V_Z""+I<=uڏLk|;P!@)ry6` LGt\?Q'u˟<Ք<&,ܺ=Yy}>Q!G<>7ë8"WY$|۩/%"^Oi⪠[Is pan? ( sN7ÿ֤!j'ni˿EC_T"<)/4~|OerxټPQĽݔSx '[$!0H2l}l>Zc^ónC1٦^l@PUT3|zyy|+;)9LsG% U=!ˏW7 lAƹD{(F\yx !b Qŏ3=CGjr 4}aM&}=÷#͍񦽙r8՞^LTR,Fl}fB l҈QH"6Z<3B># :gxng2 7g O`&cDr1kylx ׻ E8تvg,sQA1 P o{*RRleh fNK]!yrsv/.XF;e%n벖]^UjikEصVSvq&<#qZ9q0ՇӼMELELEUPPPQE QE QE#TCTQCTCTQ@UR"NM/9w|ϳ-/û簾@ʋ3wp^So xȤBuw~_NB{#hvnQo:t`TRCaBGC--ĝV-CбhLxZMn<3ubJ` LH.LoB' {M{'; o6=ƭ*(D!P) ( DfJ*&(h$i"(i(J J 4ןnpDI00I0-JR+1 ,3Eb&ih )"ĔDCDDRHRKEQ!+ EDD@"")(Ǝ̉ʕ^Qӯ^H؏.DipTE3a bqQiL ˰ (lQ<~v}_w厬hpkU+#gHr9J`GKDoVn@։pc+Lԛay:|džO[Q7=]98/vU99pBJij86Iڙ` t>E uJPѪRyǎ.\Xٮ}6oPc?7CܼC˩=!dP g@}#xɸ}fI2)5롼xsd "ip:Y$KBX۟PN$ݲ93zt{Lʠw 7@q jsCmxhB3}a B$D.?|>ytR[@x_; bDHe(su~ 7:߂0/(^SL *߽ M1wuJ݉0Hhi]*2X]({!'n-C>uNrGg澔pl WcCx|n@@$HTDB:TdHtB4"JR(LJI?H+N AU,Jaī@BQp%X j**#QWmUUQEQTu")B8(~wD(STU5@Kh1)%2SQSQ5UUBUUTURsqf*kYWL3R5`3<,z~<Zf$C&JJ"B  mY l}>Ј/(I&CyzUUU3v_2c ]7 n.m lP]RNZ ^ԅr5tOק[EfBӐ82I金[HIծl ƎQ,bo;hou80>!gMlvIYU}~ZTVrKrPoRuYh"sHHq |̂pǿJ0c*a[X8Y{؃':0V$cM{6 %vL'~_"WgwMWqjLMƒfF-йWv}Iv?-6ӭc< b=q `Hh``䑈" , (8WgTO 5[ܕԯpR06z+t Ha2K{¼r0(A21 dZS;~-aj}nJi휪Yׅt-n4-R2:5KbjɽH~K<%Y*9.z%3! \"Օ CS#< D(dFKo$"_K?P>tA+r4DAQkм̈g9?ףJfr~(oN ëaA_eOk-rdݷ8{|GcΩO;kΙ`#IݕdRm"b"2X Dtkuholy*$QA@L(TYqk\[SGINs`PBdQ` z|"d--vIfo%+TY6XT{#zMM\߿qa}m l+;#k$Ɖ{dI Wj[l;r]$BAV<2ڶ۩]n<$d`P{(:?YG#}H_B kW? [~-\0Gx/?*1g߆ڿ/sª:Hc7opZNV[BWkQmK*+c~{?GЛkclKrv(rk'ue9gͤy!NһMxegy?uG߯<_Tc?}+a~WB*vW/?pI >;*+B FCT=G˨Q=@gdD$o:t֨^l3POVMX{? A|4#/. 0` D@UKIT&FDhsJ%!vA@ͰI'ҙVLH]6(CBxۂ}+ JPn\C1<@r<`^SyooE1MK]bȃwD@2v_̨vP)B=}^2m&v'EvǠL4D)<Yq k9;(BEá:AwzƊ}=6q3K@ù<(T.ϸ]W=Z+AسVV߬0 _Q@f€=Hhoݘ:v5 m8s.,A[rQĆfhIOUQ\s$C}|~}|rkw,x.soQ᜙z?@cpݧ/<3fGh,3[{#nt\,L{gOC++GԳ@%&$ͪ-sCesvvǘq??XXH-ΑZi_Yt,˼j Zp׳+]Bkݡ[R䆆f} ?CiX@PBPW+()ٯ 3bʹW:Ջ*)JHn[К7M0_ܷArjN<ƉH@Ba'\ut8E.ٝK8Y@l脤2'Q*2rYb,* H?)# 9wO%)_P't8ʫoѥu1%lNZUӼ<̺/ƼŎR(PǶ8Y (6Þ":Â{qB΅U2$q?9WQ22V%:{@^eø $uo~D<ݏxe(y^=vgjP7U!HY2snr!y`,(}ru`| T1j:!ⓟ*و>Dq7Ll}i*j$@፵_Z'y+q+)]&x`0QqJiiB0>ru dEEVީh