summaryrefslogtreecommitdiff
path: root/include/uapi/linux/errqueue.h
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2016-05-13 20:53:56 +0300
committerJani Nikula <jani.nikula@intel.com>2016-06-29 11:16:17 +0300
commit664a84d2c77cbff2945ed7f96d08afbba42b6293 (patch)
tree3e84fa54dc0e2d9039175f255abb81446154d0cd /include/uapi/linux/errqueue.h
parent4c2e07c6a29e0129e975727b9f57eede813eea85 (diff)
downloadlinux-664a84d2c77cbff2945ed7f96d08afbba42b6293.tar.gz
linux-664a84d2c77cbff2945ed7f96d08afbba42b6293.tar.bz2
linux-664a84d2c77cbff2945ed7f96d08afbba42b6293.zip
drm/i915: Refresh cached DP port register value on resume
During hibernation the cached DP port register value will be left with whatever value we have there when we create the hibernation image. Currently that means the port (and eDP PLL) will be off in the cached value. However when we resume there is no guarantee that the value in the actual register will match the cached value. If i915 isn't loaded in the kernel that loads the hibernation image, the port may well be on (eg. left on by the BIOS). The encoder state readout does the right thing in this case and updates our encoder state to reflect the actual hardware state. However the post-resume modeset will then use the stale cached port register value in intel_dp_link_down() and potentially confuse the hardware. This was caught by the following assert WARNING: CPU: 3 PID: 5288 at ../drivers/gpu/drm/i915/intel_dp.c:2184 assert_edp_pll+0x99/0xa0 [i915] eDP PLL state assertion failure (expected on, current off) on account of the eDP PLL getting prematurely turned off when shutting down the port, since the DP_PLL_ENABLE bit wasn't set in the cached register value. Presumably I introduced this problem in commit 6fec76628333 ("drm/i915: Use intel_dp->DP in eDP PLL setup") as before that we didn't update the cached value after shuttting the port down. That's assuming the port got enabled at least once prior to hibernating. If that didn't happen then the cached value would still have been totally out of sync with reality (eg. first boot w/o eDP on, then hibernate, and then resume with eDP on). So, let's fix this properly and refresh the cached register value from the hardware register during resume. DDI platforms shouldn't use the cached value during port disable at least, so shouldn't have this particular issue. They might still have issues if we skip the initial modeset and then try to retrain the link or something. But untangling this DP vs. DDI mess is a bigger topic, so let's jut punt on DDI for now. Cc: Jani Nikula <jani.nikula@intel.com> Cc: stable@vger.kernel.org Fixes: 6fec76628333 ("drm/i915: Use intel_dp->DP in eDP PLL setup") Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1463162036-27931-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak <imre.deak@intel.com> (cherry picked from commit 64989ca4b27acb026b6496ec21e43bee66f86a5b) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'include/uapi/linux/errqueue.h')
0 files changed, 0 insertions, 0 deletions
Ѕb]Ant&&JF@MB5ƿJcF{DX%`k>́^1չ.=-x@MK׎g׉A<]0h&GqO1>̺Mvv.`uz6MyZ"=[j@;ݧkF@uȻtA5*}~H(׃ dge7Ԕ>7Nc]_0iG:\OMRO>pX>un}Q=ͯPRnt% Coł\ >t+8M? k=ɺ kf|bf x~@20w%4.Ýc8 oElɑ$KیPfTFt}iKp$`0i)[>ȈQ(‹K>wGdU/tJAmWS=z|GM쮍+',B8;:` lQM5t5o϶[ւ稩M@uB}hG+aG_;V$TdLfF('j5;4ݭI{#YwA/qr6b{^yu@IpgƐ>KRBwMb8'X :}E%#.K2 H9.P"euۡAqp<"#kC<#2kIn!V2>HxD+i9Y <Z, DRд\'3J]oP I$G8gqua&ƫ~i3?٥Iޖ~NxqHlqI5>XE]ڌ*Z|0l Fn+I/WG$hcH1+t.ynڌv1# ~Vb(}sB}&㟚Cn[2%$M?#hѴߕv9Bw* [5 ƴǯa`N i8m:夏9;{ QZƿWdi_$E1mn2t0Y襵:dd%&<T!;BoS ۏ U4qBRm]܂97;G0)Gp-I.Q}Dђx !|HVbꃹ6MEp5.0p~;#f ޘ[ZKs,Գviip$_!~]^%oҹc<6(.lZ2w1~xș MRbR6d&[}_u$C}`,D\k>ޱ_v#jsC)u 3A?8JC$mCJ}UB 6j_I'Blv؞OcÙ/;zc2lѧhӧ .#mnm%V. X_༼]l{ͧ'IoW[fOo.dssE̽-Ksrbun!ipr5j2&y7M'wlPH caLa>d)KG604^iT}Rha *~_[Q|\3VԿ<ȹSKoﺀ~G9ڦ7i4 OvEc,Nk5 f#,_5/ jv<'TS|z\˖q 'Mw@Dp֍8ɖb;_5cHstng:4tA&w_>x2LK [#aw>qd^O3,j 6O2Ez2TFYW (}pK#̟ea/_^/λ_JhY.~yϻ_O~g,y&09"^%?y_\_uB97cO"4OUd:7Q^j*Wޘk\Lr2YΖ529yCr.) ]oP`\ήHbf7cڹ7AE6v#Ge2s7mܡDMJlM\Foސ ȭCS7C'ONtTczv.-{W]ZM5Y|R ֶJkifI[E&-a_pPH߳#{V~Y+8x*w[&˫ k|I}x]QE@H9/@\' ;N"bGto L2K#xS1*tT$DA=Du)hU}*'j7hx+A +xWd_KVL_g;0phѝU6چþ:'J}g['ÔI˩0flN*|0Xp ӢAgWq Np|qoYB[? ꖿVj2n7IĥgɄLNEO˦w. ;=4 ׊ 8YإgYHlt0Mh&uz_ SӹiHf>Pjո^G~!>" Ngi >P]VKxOIuA{V(T.g?ȜκZZ>m Ꝟj'mEvޭQtzCT`L S&Ĩ jy>R@Ri:&/%ڙ2NԝF"|4szt PD;Z4:Mz>Xoe>Nn_)B{oeC2S,3 FlOLyg 'Y-Fջ?H-`[uǴ&VH1)dT U⧺ L?ßqw0/Gͯx8zWkzQc-Tsm5R| Vvy>C-Z^]|P&g1qd:_1Z ڏd\ҏ(w|(JLFɩjN1Hԟ]$0?bWs1hªAY !oa,ԖB*O;2%kd%ujX&(Ln<-hMtTsЙvR &dFK}Mg(^FHCDPmD1U}5Y}0CQ;U\sPÁ5b^AFÄtUX򇈺N[U{jK4 )~r Fev+[G2|&!ۿIs`2jS΀Nj 6,d@n4~I|Z&J dXM( (&?-.*]_lWG-X*I- 3*jb9isEnV!?uf" z }1`}ѩڼ4iƀkRQ1kGTTB&:Ct:ݢޤ0oi4ZFz;yndθ'.GڪU0`l}9'IZɺ=ЩiQM%{2k/jY(eky.k3='5WȣdyYWEM;fSLDjvռoЩi#~Mm^-EW孡EHHgܚ`Y4k,0ϩT0ci94l$4!qHTRi|_psY)1}T+{V}PԤ %%mF=h &j>Q"N+_/Ki$=P *AbƤ;\"DR*Ii"^ih9유N^VJ.:p*e"hn F͛1~d{[Xɏ(1\a4Dfz$yذuM:J.1V" mӣU͕8Vz5v mO\OHcn2K˗#(o 9hkgz:3RRrTςzx6 )Ar#xӳ"-k:$CK !X1`>F6'iȬ(h^F)&e2wdB+L=Uƴhf ?I~\.'p,Up!hqVRnf&EBa>ve`h@UϑI;ᕺHM`Dj-K*QYX֚z22UV3m{M)>d_B +17X^LՐjs ;eb]mz5HI_g|(Lvx!G7IF>G=Ӈ>,ݜUuLb_gNW{/+_Sz5ZV]#;|̜ﺶYa1mV1xkH~hc>6xčSK.eG\x K֭M614 A&vM$pERljbYt>fj=/#(to +#?^wpg.ӠwTӐpZL The1};1 m-u᳇^;mxmKOa֋F6pW1fAXnOBC'ki./E"^feeڀewZ֞c?D{Su"̻Vi&ыޯM{!g, ]o<`nI o6#&gɁ'̦^s:7{#8Ml"pQ-V1\r_sA89ZnU$ţʌ䙍VZ=#i#_Xf˾lonYXMrI\P%k6ݼ%Qo*ciREx)tRei ~mgV%.o?k: -Ȏ$7 MME+Y 9%:OAAqA^}6VvH R6z-3N{,ZϮ2:63DϊoGGw7C4܂5 X)UMhV ,j(YY` |=٦ $l?JBA<1.r~Em, yh@x]ʳw$Otm:lH'UzYy&mT'AUx/GfqO6jezJY~lF=PҒֆ8|YZntfqJa5Oj&ziNCHj0Pj5ƛ!BH j<^!B; /CZo<؅'?׃5'q^X(Y\wwI4<:tdI`q>z?]u$B傺`!VhG#vC;skreQ-ni=Ӳqw MU`_g`r}z `QU*]11-ݮ3Cs*euY_-ӫ(0XAF,q%k],\Ta)wvT2TVD#/̋Fv" aF*^d& 4p1TTQ%D߭+%8o4klm?Tqq\m+׋ =$:d>~rQpȯL/lmVWdlr`0P?$! f&_uM/Ț:5V4&'J6iZ +/n.f* N=aA]Z,$xj:a+rIIRAUHcH(Щ58D[T#2i̇6{Qs%jo??!wme !R0 v )2gMZ 鞅rBq-i0YDf=%#"-h) m Odz 1 f{A/Ȭ]mQ%Wu9p -ֿSBG_VAC$`Ǝww&+Sm1tIh6:QCMo>+Y`s9B-O{F $tSGgoxᖮڭfj4[1(}Z*!pm$7Lkv\HN矢_Tn :5jP`l&ѓũc[F=k7w6wn[r84>3OL-O%^ɶxr<@D c/+o'DCfgvӌu4\361X]xLNY5fAUD1)uufshv;e_Tɲ$j&kb:9-24;.g܇F` 74~zך[tA hmn2'Ʋt :p~H62a< "ڭpF]т1X)90IwMkQpHx> ߲_L18mlm2-E;AϓMC`249d0i;#-gmop8s_.8^Qypu$-0meȱ.+ΆT,YLWh:DK @^3n&]EC~k#iB5NxFjwi&-Z}SoZ{\|lЛQ͓(Uz8$:V,҃'"O'YSMFczjVK1a`Q?0צ-;q~|˨6  1Zs0+YմCD3h&ڍ3N`iq R?m=Հk+ 1"_㽘!3Iꇁ:XxBevv̱}NmF[rmq%mX"5\rR]`k 쒾s[rUqL]b38ՑtDLV@B\#Wf;M _p;hХ]p@xfX'I\!O\peBMaK/RDs{ϭ vSo$Eߏz^3/+1{C`Agop>%Ep^:VV-3eRLO/&:>:1Hf7;Rs~ق#jv7CG < ueqsIҞ7c,j$ vF L#i[ s=NQ8',ۜ]GP>rGD U&5򜭩Dy5K dDb,7} Lni&7\LR@?ƶ9ޢYL2`SMFoF]fsc}`#dGFd+(d>c0j/QE% #=\ߒ)}|.͌mDv?xb'k 77Y`#:qq Ec>C_*q^ @TV 崠ܝy;j?3Bق> 6^!@ӳ=tT@: xpp >w7B@Rd]"$?$Q u&H&0q(g*O!S5!76ɵf(eh: "3ICE.-6$l im+q|rms#Or owXf ,NWa44Aw;G~NTyd`lӛt\^֖eꞡ@ZX6UsN!P:=D D|m&,=*.$+*K?nL̸լRMm &5&Fyb~M-otodLvή&{ `Y#,~}8!L=F[!ߓx$M5AI{ ߪ ҽlX.?>VdC2$wAh;4a<]/݄aqLְ +O4BQ/ i(H"If5.H2OA<QAUsw_&Ga>_0k'zd|}U~gB0]5&2|VKmoy #'qo\lg$Umv>P73Rs%5BAVѸcr_,EIcv ƼnJzg~{4oES޴&[@ZiUѸp)*qkKOp"Iez Ï0ע7b >#͋$꽒l'ӻR $نDk{+Rb|(r.. ] kQ߬vMia&. eT'hǴD|e% BL| yW9 ^ʡԼ.M }2"<~`hEC1ň}R*SHp1 M u$a+Tm|aZm]+(bP0iELW8b4F-|`"蒓̲4VUU@OH`f/ЌXd:zy/gl #cFÃ%'꫚whja>"m]F85(uVdܱj_u\Ց V:EB^!5=8$I)LR[w,;n'lQS6b}=!$0Ҫ!8~v,YQ-#@> }l`&{N rFA%"y"\n$O%$+To֖M^-̃j+7CIw:7jԙԼ۟fs0Un}zMú Amt ?4Sc" ȧHYik鯾r cBJH:>xҖkr ;ϳ'DF ['CDA> qET:nώ0A3 x>_nbA@+4k9]5sG>Wp]_-d<^Xz;CUf#YH ף{;"@9N-L^ UqɌYB#ʥK~~q֥lMWqA(1F);"ә|1n:m~wH*h5:- 0Xq[=Ztq` s)Ґl7,V

9x*qDcv;ݵ9 kNIu/ynhM5.m5ky_M@vCQ8TgNO>DV$rfMKwE7|ZZԌT#vN#C~5BI9q֨$NkC>ܦxs%61-vBu8NxYSQSoibz`JXU4Pjk9sy&ŕ|H2@-Y‘mz#Y[>$~p&KO,ԸiY7?F.&Zmy 'esHjEB[> D9S!ivGIgǘo< ”3#s8 э5&[|P,]^3 ,-)M) #Rx6;Ջ/u1N7iN79J~Npai5P:ҬP>f,PͩJ2kkt 5*kƜdՄ26aw,[|V/J ڒz蚷tAFb25EȀ9JzrA߫ɴv5Vχ>@ =}3[dl׻H/#K[I׼V(|ra144]=Xo^h)Y^6YSzJY\jh.S|<Çx< ,q&'*D.0&3/&-M:fC04^ؒ`ד mm"§$4t)wG յcX/EcqVogQ?7 hЀ?/LJko^"[d-+u&<_~8\Ur(:5˸1x#!QQ6{f] U&^+O ^ A2_#:ej+ k$G+Y׳>HZ훚xK8!Y-I"`XDpڽc &z%B]EFC}]YM4p"]t1iFĚ9EBNڸ6C6YT$J׉ɳAeyY҂//GrʹY56ܘvֲ)5¿cK D Ľѧ$&S9h Pi)*]1#3 17}ALabӡq:L,3:_-''u {RAҷLzb}ZmH+ZY'_yeYyo<`.DhqTd?"~>2Z{RGS״1 kmx)\ԮA|atMCjY{"a2v@|{.h>΁,Hnd?16la|/zG e?՟e4ktaQUxKͶ-Om&,d:ogrC{}fC t,;hwp(Y9b]Z+%}&Li M.^2 n de=gE_2ŢV]ixV[}@Eơd<+lVu3Wn މMP"ϵ1*xBZeԁ6LyeXt8iBzY[VBJϭ{7Ie\i"@ rO N)#gθ yT\fUH ZJ^ϤP6Bګ&xmP=ךu/M/2 ^p\5>1M"Y\ΤG#`anc:f~&l&Bφ֞h1[ N}|(c+"㝬mRUSX. -2ZmK];$lFipwH31F8*zD/L7 ~V.ȨLfᚤD\b3&ڀc 8 f p \7]70suNXxN@eP]֢)פ*[7cIl}e<3vzqG@R>;m+јg*%L^fZ,5].TrH4Qi M?(' k yRQw?ps<Ѣ34iQ/oy5 =fR^YVדj\J&}_6 )w.K >}6"# |Nd4DiYi8(IןI^qsPuI5mQ| WqK 4ߝyHi^h1"#%iѢ+&7Vf|Nusx^mdZ.- dot9Õt& >)QzMT uQ\`.FF|-v!UCc҈n`ɿo #c/PeCHsd^MWbo:jIK|ll8(e af͡yǦ_@nt^IHӲj8\uubC^. v2F {'{C5845ݵYw.]sSGуyz_ȍ:/Ahْr}K RR؋v8V.\Ke4#f34PZ51zŇAj, I$?WsLJ9ዳ5 <0K/Լ9Z+Mꡔ,{Ts v?X"PT__- !3}JT.3٘Jz4vY E,{s0sbz($?}yрݝ1㴆ϝTkEg+p J]ruKfͭPpYx$ğto`/1͍{EDAY]!i_`vc}4U]%&rٱNr.zAfa˛*>[=꣛`hZia'/r#^fWMm0/Wǡ"$#E$V61S_uP9{h2eu* xi]5hG@d w}.-z&0+=fk0Ѣ Ƃcs-cѻ<$nxŦǛiLVԌ>%ʊ WaYJJ)3:L(O*"8 e;dLgy`rAJf֤=nZ5'C"k6A}!Kr6VWQM봧G#P8dԎ%?a׾][om2 .3bb>}l\/֚J)$VIfmLjg69< CxB>M UN-wUY^hYKlG6>sW|=*8xܓ>fZF Tx!6]1<[a; ,/[Ihv҇3)mF\=Yb)Au{2@qc> fD;c; \s~~'ª!j隖!FUZ/NO((>c&^bᱝ(2fe4ifz[f3+<`Jw-po8]68Tԯ\OW_n'_.'HS]4Vh|X$$i6M Jm0JXy)19vwnf(cY&R^9=Ϻt룮O2+R&. S(Voh*RRflcxmm0nDӣ ._gB-[p)x% &n]"u*M*4*ຫ.ƣSN?N{NwhT`阄iW! yUswHz8d5}ᐒVgRSOsLL#Nir̫8Ϻo=y]vTIN=} ҘֈOj%--p<58쎑va)okYM_.UjY9h>֜{r>Q ѧYS7Hpp;S͖tݍVQ5뽶^ʧsc ?nysȼOEcVCp ~m@$?# n׈RĭC/D6 P2!CREt'\U*sxg BL]dyfga cTՇ<]McK!8kl6[iau.LGPv5fD5ڿ`4c|Yɪxl/0Ɋx5z*L8O$fl.qd;߹VOToS r\Z /zjFMlOYz>Yr|v}Mk'W˴*pLCC ]v@{@fqvS4xfo:.5qP]+hؠFIfmt5;1"9b$H:F=FVbϑb,KBu=Xt)y)Nj]N),xp'R^Ҩdy@)DG!*)ӡco6`+mzVͮ\f'>zI2v eD>#wg![OFؓUҸԑB3lr IMi⫓k2!׋ ;z*;2%ٰ?gBC JzMuX{z P׃WMGzۭZ3l$r زߤ¿'Iw-= `m8NM$Igy?1<ʘ)) M /oFw:c {Rlu ϡS5{zC^Gef-̀c&cU!Hk!՝{|2<ƤYW))X٤ZzON{&u Sϙ:Ri5 aPX'm3RL72@q*:d#&IZ|/H>9ǜQFSIS,@mڵN .3퉓0OʼnYRtF"q,8diL^rh9Hhd1t򼜖r-D]Ҳ'0*AfU0IAOFR$O(a LMa4Ij^fPҫ٬uirrǞ88u0hu>癄Osdxf4ԃw&B+;M(Ӳ},4;Qvh#W{ǛS˿ j%KiF.bzv)Kw8Pt,'g d}ISD"+r svZV{Өg`hovݒ1Kϙ ֗@Cz {u ގ*2 {x ]?&E~yt['8k;6Dps>e0Q'DdGt!6/QMn[r:L w/{s*u~g9UٵAh!MJH(JEVj z@5*(%3NVBr)a. ͌VBSEJu,gnGa#Nqg#Aƈڝj=ANK];iq& =$Es]NKk,,7=3MqZͮx<zJپ\WCI#?f(+BEa@D${1`᥁UY @Yk/1".8Jfǿ'"VpBrÿ"5gacoۑ.n ]# *#Y3s'CX:RlU cCnͅmI֎!x}!7iTd$Fоhp:[e. ahs,Z,0΂L&1`05Q=쫹_d@0:K&3^G:[FS'lw[n0vP:Za:奚]њ,gZ"fdGR$ߏމ:&:zy6hPhM,-/ tF/ڄ#&o@F@l8 , 8i5$|V&26D`nM)rDfWCڤJYjtlVɜh. _B?؜F}hF#PZ4?!C: HZXqN:Ory>YU_}xkfB)&/ԕ'n Yg1nt 6}0m3MF -V `oҍHWAVhu;qM^-"ަ'ڮnɀHB#:,p!Ǟ=x)NkAF:ߞvnL ; ҆!WRm yR։飚;,?ŢE'S>Im3S ]j|'%;< ?ʹNL3o?{? @|=&:*fcX/~yylM:R;[5^ =@" !ɩ\^Vg u赏*+rĄFYGN_m=vf"gXR<>dȤcWmRژw|!?x7KJv-쬬~Qh倻>@9UR,8ָz]{Tu&jF]5J3ZS5d 7MLfKZpǒKw`My2Α [hJiRH]lCc}Dc4I2L^dn[>>iE./!u=BKyrb@Nj؞D46UZFEr!ӠkOmK0%?&+4=f]^ JOk^}:ш eM>e^mAzGSaE Q7x^z$AljH:4Ig {4d_=0[2]aթ [MYHHo*S*u=ބ[HPN!Ι@MHc1+bc|!|1NnnAo0baƁH2<߲H5gJشYgPnG=`uVG1M$d#ՙzF/LE>g&\h'1-H65ds7%h?X{<_]gJ} 轾ܛa:>cj m~gDB9<7]f?nqoY%>7arN\-mdZhH ܈lq\>k^I+b99;,~+ƭ~oR&i14`M?6@;k3%)ٟu D:owyy,IT‹LHĥIw/Sf4)=r0ؖ}(%{p,ڢp,|ﮩ;ν@B0-_P/dCf0VT:,SS %2z 'IbV 'βNSLgr7P`p9|!4 .ɴw:ktlY'llQzaiif{;w8\zrO1EgHEOߕn}2Lz5> ZI0CTu+"<+EOڟ y#+۬Q(Lf{A'NrD`\?qf~[$ %ۛE8fi)r(>T9gG3QEvVj7ERŏ:0cϿUQK?;aH/Ny5LJc-^ܡ3 )H+3LǻV`1Eze:93+[dRcg *LWBs??=sD|8FZ`4Ԋd_fNQɳV$%:91Y-˒\`eՍ y#d  ;@l DVPe -7Rt8i x|[.51nJ dtZ?~E8i.$ipJYQ۷F;P;sHKƓ(2bEVm 6>6mh#]5% MvK!o0%;rp%aVatkȅ@l6%n1u]Õ," ؍N}7$[TEl_]%϶ǥիM)w4btZ#9l@A!TQ8~!oG&D,[rj'@i9[.F݂[k#[l# ɭf'PҰs{FQ[v|N EKT$kň\?̇'/vzWQɼӯ\-8 ).l s&1A?W V="*Dh>'=nv{1|ӕQ&˜WPur\&שZ }y.8>ѷ3zd9^ؓF<[hPP|,$nulihN5,rD.R80Ҩ‡k>a5e\bk;M}{,.* ie"hSŞwi 'I#{*"3&q,%#5eڬVH_8ʏJalQ#U€ rHVy- M֋XSD" ^[oNS9PMD'2+bV6 Ҵɜ~RR\^CUpfUK'!<^#uպSqS¾Y~쐮f# Ql)H1N|#ڜ WnbͯX?O~v?ZF5TzƟ߽ƕHk6-ZXjBJ, vUYRni Gx%{l M7FL_zn\ҿ;h!.JZH-&UIit˯i],Qc*cfZf;ܣ5IA~wdG1e ;7"$:78aZqR(҄C]~OJ^_~:iV(ŋJzVp::9% 6׆*g91YpŁm"nK >}S?4\ik)Fjy.V>1kbGm6䎎f,j5n@9>|W-u xG|A9Un^y40,Yq@~Tk9/\{'"DO#F_*aƉ[T(+%[:õY>;6]s5g٢9I%F^yG/>/Vɑq95k8TUM2 o^V`:HJzM Nv((x^^~-c&Zs6'= qM~5tp dkR#v?3ީnƅQC:QFfHi@+5x #LftCyG{ZxcaM.w02].%SQ7eOyRu?i z O=3*QÁ[s E-gFѳ's%LόQvr, 45/ e!-INQLFdap鯅#-&n0c2i\Q v4@*vVr13KD8)=Vdbr&٣ Dn#ZHIxlvz^qzI™'Vl {1&}ؽ0)at.pe]JCr3 HST$Y+&~^9^IۋoTxbjXBZfV ȜgFj/x#<$( "=PjbG{4Cq@͘$iBmn:)N#x"$w%INusU4]~~ 9f@{e `]0}_/I7 D֗\뷺nZ)D*;Aok\u,$n ơ+y"/&ÖS)-&7hN&zR3"Wǥy$A6vK{N+0 XRN}aXOEA ϯBOëc&-ρ_"ǎ_Gnj!S}$  G 1N鹙uZv^ocArH`9rD?M:6 hQ+)NLϗpkfF+rykoᣱx9DžnGӫm df&9̆[Jirv d}<)M╕$C6yO'IX9m %5i:q}.֐f)<$t6O'K VĿ.@ qqtYbJ 43"Z/4 J{ /<jK]ί$tKݏ@ ޵~&T;X/B:62 ؜RQWVSM#*˘s}$<9t]m&rn<CZ*%g,f'?q?}N;NHp0 N=L' ;hN٠QO fOmvtLU&n!i8Cqlb@|K U'~&AaWk}oZ?XAAM%ЃM&n#k|XXkUZFjRc YJ.2Dv+v[͊9Swv>u",]T,BR%@:+ GK+}Y-R7NvG]# ՚3j0M=#DOu:=|VES\m OZK[ 350e][86}3x.PЙ6Ϳ{Fmd<'g]ߖhnwSOը#˺_GOS:7^#Y@nl7R{f.-::) jNG՚Q?Nڢ3N.V^^; $A:+dpJuR}lJeI%6*OiDIAK`Xc`HWLb:BX{]u$/J j&]^uq'=U}s MB55ω=\frxIOh,+*.є 6ŬtYtn"ڔ^肉ij8<Ǖie(.U6Gu@6&tdw_ܳPpi1rL]ا3VdpF 3L4c'Ӗ2ه|qj2 }zT8aFv tRJ#FH؏;MIx,hI3E=ڞɀ,AMp n05l|j\^:O!oE[s|QtvΕ/`,)]9s!Y5,gCڏ 'ˆYZXVrF.)8ҭSULs@#!3z<\&^/"V)~@l[],h#˷3bL߮M[,+BtxQhliT~o놴jt鹞9a1νVLqjQlBoǴ/DS7$gt% ԤFR ̺La&0^ش&pHΕv܆iVxi5gL̀ŹvL*Gãef҉ZE^\cx#FFKZj.J*:4~?Hcе&VÔC_Xb6sMsa]ӇBb6 Njl13ϴ">kz OG geնE#*ecM9ȩz]Ub[SCQppuGnK;Vog:Xg|GZ)`iD$\Z&ATCAINJZ=GK/{}mtF(3[[z/\;)"Cj_uҤ!j:D$bjUp蔰U;qX5 6@FfD &7/s$9btn9_遶bڻڤ=YZnM;8I0ab[f%Q08pENwZPkh꘱l6uwytb.p68*"L?H1LQ<7\\ݐiU-Ln6( [4FstcѮwiaB\T~5Y`d"zTp5kh",.gȦ8{fkJn:+?*OL0I! fڦ?-2'̽IFEO@.dRz^+#',O!A4Zi: .,|N/I2hG3a'D%d1FU0F~mHW^,g+Ի&ڒ"giM`p%6k zi "rYh*3f~'+_8v{\hxshItRyVd*Xkzh:l=+n+s4rv%y|Ņuo tNtV+E+"Il+rATa|<ā\@H:"3P=):;:@CؽzB+$HC^)Ka` lSx-s"hrh@ (lc#b h| d|/Zi+FkdDI]lnCUIq @Hssnثy<俧"K!:ԋ"!gUv9SG> ursV2'!jq%Vh1M<Dկ奰Mh;K*\tV;0@"1{CO}ޢ`xq ˿^~KfiAI:͚9w=20sP8%mxyd8.rԷ>j$䶂V8)o0£&T-TTo7|L5{jTWaRjQ ma"연^9kqz(.͈?Fdl]1ۤ] :vߧEFR8 K,,YF|Π%ނHvp9AoͬBBU(EbCvOw ! `OƠRoIqeΎ설kf%;ĆykVh?~:|;tn4gG7:Vq qցSކɊü L~%(ӌ nz9}D۲0g&3z-Z9CJZ5+Q))?:/pܒQtV#Q .ҵ @I|mD{mgw\|-:=y]|=I;:<[4:F^H]P,nMsJ6~z *!;˃B5q@i|0ٿu kJisځ9of_IlF9)MHI5 :j+!FkbAb ۡQvP6_x"/އ" -TΪT &vkS a\ tVɋh<|w2"HHBwzI/VAРbNot$DRjzsw`W5PFh2 10h1꤫ڨ#Cb6FMiWlO2g#~J\p*:(MkZ (6 u8,g*ADÀdA&I akCZ$oy{ȇ߿JvL7s:-vDwR>NWx~,F7H-\=3_tmA塝Ip^[䟥ã EЄgQa<%gGb`aȠS;VT#Qj=#Ղˤ.1(%^[E]|Uﲊ iIrgXX|^8(xp:RNRF5*vٱoA~ # ز(֒.ArFaY[T\քqz4iG,'<7R. #³>AgE /s^;}3, rŝ̈́JMymð/@9 #8/OB/e|MB<{ ޢ6-ҜjV!-@kORTr TaEC89U/*O;*h$P1haDx.Yo_rhT`8˔RrƝMtaUخ w:$ɧ/ IY3BXi_JH N;x eF )i^VjzDӆ,_h[.ܼv6:ICMC:@ jaB/2ltqԽt44~d-tb'0( 7y U9F#O,(_G2EYzF<,(Y35ҁlӭ$ Hk.%3]>L>ֺЇMq&UYREfn$?V>MnSqzOۤ̓O}R紻A:`F>P8r0ie3WG_UA ,dF@:{G1`N֙~ѧX^ђP61b80ei*[4\.2) ?[)p\U6bcekz/H?R\;M|{f .6Mׄ]]Uz?wPo֫NfBu 7O0⡑~'4B3>I_3')Ȉg ÃgU# YN(ad>ݙGCa;Q ,lDGD!ABGi#6Mo&וRjQĕR(mL dHcq*eӼVрMO4D iBYD vDGZ3Z2rH!TN5ut^@$CJ{eS2$u79&3o.̨7r,¹T-eBo#;I%H_bR5ѧL˳t,;zfU7Iۢ*wKTN׈˝nciaVDMG r/S°PzIп+X^y&tEϥwfS+|2V[LFn]hu2_QW~rbhu'/&,xClzOi푣8=鮎\]"oV'ޡnʝ%йn<\Q%,LFzjS[&AuOǧ twΞyxAio1Ց ;Gq-k9 L[ќbw=籛 13Ղ洜k/Y.}7nb=YnZ]1cnq1L!p `0gXIML :@QSY1]Qy qhZGN܃b/XJ7LA5|:cBfdp H&&SJ gm. Z͝^|;zWV(>.W^ĺަF((TE)ظɬڪߟnk۪'5Lu5Yg)p OU BA\}X޳'xF&˛QGIЌ nk# i6~HM=1Z (;0N 3ICl:Mz&}ׯw&QBQݙTkԠIH#psj/s\89V ,ɔ|F1#Y`# @nхa,A3)4 Hz e{5&%֊|㹬{5]I2ȲI K8Q }ihɖTg 7%l]gdÅ{Dwn'rmI/Њ)Pɚ8X!.<{>0 5WyA`M_dd@VnrYt=}A5ת> vjLUf/'nX/huŇ5tW<y-9zt01ﮐ2`{ij@;wxbI=L̞VGsY_">%)>ځbD=EC/ƃ7_cr13f[0į}J_[: _w \!׶" :QZx:E\Ǩ4X} ~crIf)a,).kl\+j^}|_B<67ZՐ3B2 BVSV y:V^pH if|0k.r]D}JvWMJI: QB)e$t97E>6Q͂qyDqmSǵoc-:7LqwO'chi>(RK:m۱'\M >_Q~{y˯w2KTx•p{W𺓥&2i7 iddQi]6 $DFO>yS&zWPoQ0m.ͼJPwGC岊(J>LEDk]rBja =؁GF!&bƧ)amfpT `SQ8vz$#VG_u1'da2$nkń;~6׫nNsZu gw>7 *̜94=6Xd.I=6,cВJ4V)?(Sr/xgc͒.r4C)sсϣ֜v檉ROi.V)f2L-a nt\2`)ΖrZvw2xOf@#ҷ jbA F;YZws7=0 zs}U.~0,j(c9 CI>řniGAT$\%YQHؤ XMfדjO m[`U  ZAJR*۔:8m9R+{4"RTzj *GIg,$fJVa]( Aff8@ݾ *0IKko펈'?Ĭj\5q E i+{krn_*v_hM xǾ覎൨hkȎ_>>ب}D{oSyOyA䅲cI0>G,^NዳxevR}&-% KfBE'Z= y Jlf4PM0C#7¦ɗg"M]V5 IeJQlুSTaZ5\ucFO:_/UӬ9yXv4 (} 7j@#[\NwmNgwݙ0r;ZS,UOՃOH+ytT^Yʓ6iE&!2MBﲱOv#D' r/b32HW&r1Q^Z$d~0qkhb D:ZOJO!͌4&jit].a&k.ԜQd~ Z\xe?w`L9'"X/3cO3ΗlM"ZIlMFTxsrfJW&[ װuMF%.D_h9"j =n̸&Zie]^{M=-# l/~P 5֕VćwiŞEݔģLo atu'y:h2n|ƒo" #~s6:ɲ2JMu:P'D@Ok͢ z Hk$G;ohm$޺j&J%O)kyUưjek|+ϔfXh gbxRsG L7@\e<W<3}18F9S$0Etli]!AthK~+"o+)U4@Ffv7}ր=29xDCX-p)%7[!ZG^6r]v-.gRWpcU O4)~k&*-wgAVbf )IoCӎCq tEF,#\}dxN3] ZSCV&t4(G7$iϡCr,GXp_3ŷ\ h>ԙG~w ͛]mLQԂhT3ՔL3W[sg6:$cW"pyw(? sXA۸jIdL8m>.p4+8;SԱ,/E0nމױ72T'4~en|x"nc۰#H".{^R`-A\m*hũ 1آ 3epBĮъLjwr~_S]P2YU7j74s50 )m gF^ oPL#8F$miD"ch/'qnHݸQmᯉll-,O ]3z!EJ|1Z"x,weJhXE ׏d <^XĞɱL-0IJL [ڍy SB7؄3Z2`zWl5{.-zjۅB5(ae~FL$k#]XkdEƴ ~^?S,fAO$#[#үHrv{>HlN g(f  Hx9*[΂*izن&P)3P,֧}\J(.i$ aYY׋= .  %-]eF5]Mh-/./٥ʳ'@ ON#6-`"O:&-+[^$qwv} |#3^RD908 EF#V ^GwcRC٠'¬/K'ic77S*p4REIBdekh "f715W ptyj3ny'}Bwl<v6iUcbbJLRZjʎ6W[e$4~œ`tI7`NsB|sΗzDz6-en3f^\f$@R{+":5ӎdNmዱUwOAsUb)CR3H04VS^vEGd)k(:DYM5=ض*ȯ!Ij/^{힢ߘ'?!CUco +'Ts٤{5"ؠb==dD*fvIJ#axS+$"Fjj@>>v wdO]HG搙<;<цޙTiޙtPwz)`oJ8^gק_׿bqAf2C]Dp3(#D%텂lDЈF ]ҧy@QOPWld.ӛ >2@MPez{v6ç# ]`? hoa@82%Ȏ]ZV=l6>;لZĽ~Cu$;3]jW8A SGI7Ob͊]Z >=kb1 gi&gm)ǃ3.ei5_ON RtZ`3l*`B3ݣAC+vIJ%`m>2+,%6|m4*6D&>wH;:x8:";#[3nlzVC#زSsA4 z2Z*}w/!c_Ct gL!ioୗ. mN)ֲ萔>+-jqxp\F?TbEottSKnEBO+\ҎR{:N 3 h:>0e4֊q>(p1Jx iz's&R͞!^ܨgv) V@zf vdxG9_gIxyq^YW#?Ot_.x%4<`nN޿G ݅LE3\Euz͡4d$%ȜAKqւ/ʞ~i?,wf CzsNs8Oj{j;@&yݥlt >wzz4o!Y'di14Ԭ!9WW}x&@&cZG>)^0Ua(og2R!if}W~o_qQQ[w}pԓm+/)Cm8iilQjL<|AF&ߖe$ݛ@&3Uj>jF63FvP84_ݮ43A^h7ZZPX\OFB0~ڦ 쨲&bOCX,PwZg @0) \dJ+Ğ);w=߫i!w%4Vm.pkQ7jxg .u:WJN]?)ޣϻW\ ~lwU.$1t=O(xtl@ }UD%YI}$$H'y]~Qm "}|OdpYwMNfEW̴֪|cFSdF́1tQ.8Ct d{آs{o| {q tuf]'_{!]vIsKp npt͟gzt/v*[:ijQ/'ZF$&o\N\E]&p@`hOzBZ&; LgKk6ZI* ނ*<ٰ 8OO7u'r\҇_~t0 O(HV-G> ;T0-- meeT2,/o.F2?:= aH?F{\&0"+U($ل2UJ"JbP>=3Ce(iP+tǡq=d0؛AJ*HW3uDJ/Mg_q]Y;7 _N uh޳jo4Ou;Ѐh ã=v?0"6#) [!/ޓ9\*;u- 27Yf1RR̕ѩQC@f4T3gMCB&i1e17h ur`i)(W>Q/חJR abHp ZeTM(cؿ8L{1<> PNȰ]/*s[ $h4"d4N5 b k,M!q6-ZnElk]SV𜹜'خa=cHlxD8M9`퐬DafN Iǜ*%C֦¹G(&B;ҝ"'\ZD0V(O|AFSE@N%KȻLj8Iۮ 7Pݔػdwϥ3'?>)2w|:|A֭OQjn{@ݽP05B]$ZՏ )Ii[ºR*)֪\? S#ZIO5< -$?X@?DɀD?OGǷmQ9γ,-.%+3Dkx m`-U!RAYIYS#tI5T-Hsf$R]Ixnqd;3r ^9O81W5 4H|)x"WҲ7{f~[]^f8 rM:EӘLRK@̀Vْ$=ZЮpl: &U`Q% H] BFF_-Ol+ Cn6`qSצG=D^Mjpw;vg U.],o+KdE;XoGr;P: p"#}2Ap`E_|Ĥ&Z9v)H:i:+|HwC"fY^\?}dFG<&ypRl[C(cLtZ7}BϬmgԛM_gs JL>Εק}'zjP8tsr mR,p(!2'v0>OfNSڬ7"5 =Z;2~@:= #ͷtf5yw3]OlƩP2L_}`7LDtWs6ZO{y~FVd8V?%)t>^0EGZ$ \LA7 lTT~ 8} UMn=Tگ6T⑅Mh]?+c\6 4J#@/mxegsЧy]ޙL!U(KNc$\j:RIA|]gwKLF{PM'&Eߘ.1e 0\hzF"~Fד^@, meҺ$Z֢#X4mf@-gO#* j'(_G睙9KѠcFKc ckطwvzG/I-'^,ggM^6**\ཱ8]Afxa^52WsZb3|i4ypN!V.g/0Onn;\׾tmalYg:Y^jYz 9dA~St]*%R"ϒ X,sڃ>獡~NV{POn}\XcD]Ixɀd'^E?'' 61 /j ,\Qt-E8*uvbr:DI{+[UoBN,?Ç (v͌Tr\oI<.IICB5pnUT3*==_EX+FHHi}*CʮlN ;OB~*\uN䀖~z yߔdi.'\;b}5[A9gD7·+{|uc޽O$Cߴ7d77`i5۶l5WuY+ؽ^NFI|ըlt[-ӗ I{?sۍNWſr1Zr,7BWզQc{èSD!?ChKd0O[gWтgo2f ɯvC<+s "SF q0>YU9 !x'0 E(qIj/Ľ|܂7yd{7D[=l}7@:e  I!0jmܿ[nDpuV ߼Qڵ7ߝtD=<{DVH37߭g\^NG2С(I$=8`:&`&vIXs:P&|Gr*d[`6`‹ t?|[fe203M1+Sb${GSl7._.e<%\(p|:k\;wŏWBc5;z669UŸw~o\xMk;$+$dnxV௎PL-I_ ʗq[Ԡ319Oh$r?ѨwOr!T)7(_wRNICUxNxJռV3vIFqw7ՋH|}q?7Sn:( ~яo9"]x^5Ӣ/B3nbQroDSdxf?!w?> e$c*;%h>#cvi\D24|L985njR0<׋9lIgY0++e'$>a10mQ*DscaF&>!z< L7 v;е6:, ci f#d=4Tah+?`9]a$!b44i$gGWsRJ1w%Kr0pe%~N_w'*IuJGfF( ?M֛ .s^UR%Zt1:82^2&pJgoJ .JI~DZaU)M*!h^=3qJs1V71򢲓%*-4|lܑXo}X_ 7)4K|`,g[05/^#!8T[ev^.m!oX8H%M.^ r.>2ѡ~WɜPO8".Qo֣+ɐC{IJohtQ.\>$&(+8VazIRXK}K%V!:H`yM, e cR!#Eyo;J#]`lJ|J@M?ϊWE6'BiT1V,}QУ,mWתJ>ow2ڭ^ AZ_i[WO\ _0SmK5{7z`mfa񦕂[-#c*Z9*d) o@1 )nh_M2–!ӇS#""ڟ"!+h3wFZ19W C܈>V& :鋉zRW˝P2 #;PyD w8_$Y§ȇs1$nOcLۆ1vwϚ3$D RJg7"2+$@v{M*q}#ٚA,!qa@zow,sI=ɪQ7z|wh,O>[[2cKo~>tSʙF"G}RJJO *~?5{hf-bǹnI[Z: IahT^q`qs XpH?Aa;.t=/rՈ }QAP& juD\nd Wհ*#4b.+ i1kwe+ꇻv*u;лv@!Q:A9`,՝,IWObp6C0QKenvʅqBrzV]Q܂h 㻼wy{wy꛷0w*vqkd[0b p+o;t.l,h0nطQݽ5ˈ d[ഃo{/Vs]_{w8 Án0g~]o<>{ w7 1uQW <+]nn0Hݪ0Iƹ|5!ۿ_OJ½=f}o~qݜK;ZTw*~waĴ:L+.UP ԆuާCٲHԮ~ 7p?PG;_/?wZ|= Y!!;kNMwg2z>4LC05~6kx;+Q/-a|yiJN(,&W4fXg2rϜa3DHpsL%'8I& $9 )a^VԌ$)Je*:aBK\Ǵ@.ЀOpL=+ϊ8g#Z \L!{+U)܏Fq€1vO4˄0 a5ClۛtQ~ANw1P)I8h{?iF\~.q~݅C3LS'hR3,a*^q2uJ*7t rpqB-8 9}i"ۿ{u}ίi.:=^۠/oijʹÛWYPN8 ݫA;s.\.w]|O2SV4ge_5\0`1Һtw+G, zIT >s G!X G3#ܢcE IqO'K%w\‰ 9RL!Ol E HFr$ c/4,*| HԸbdƜ W#᭻2k6kͻx@2zZ=L"=NhsE" I栚a#җ^Ae"u&Wra^i!n64U .4I\mOwṨ uey@'iS0xqt*3M cD3_jA"vx[Bp9セ4bQR~mfW |¨ݐNq8]sʿo)YsꑨlӾp7«POBt3e>O{N?$* X"xs"C0f =V؝|_fC B[ QbIoy9W)`5e'z8`5#Bb$ `2NVW0 u% MײI}PHeDWl#!gC4^d(ns~"Q7:Co6913%`I#TaT1^ 'n7v6wG|d;$qMk\MzO<`.쥹tP\-.\M{SQy?k:mn淶q"k6f(s 8ό=IqJJNjj[~{Fb$ZGؕ&qƀ;INkP7%0?}"P4pCxTNH Ө[Moom5Ʒ}X;:+" B?^R Q{aW z;guߣ4N:cQ{օWCeQ}yX l 'c:٥<ü :(Fe$\UB ^܊+SIgtt+S{@>W``IـmҲ N ֳ\xE8X=R, .g)!δEy٦_8h\z8 /EI Cf7 :ih $} # Tj3:Tи+eP N:P%X k N۝3n+K[BKгIW,5*%|Ѐzف V+hY#)?AE2*ѿ e;bzQ:d(SFE ,4< 'ޜ7<:^2.»@}5x([ĝaiex--R\ӭ8]gVJxLc? U B-ki+dUvxM9OqyAvmWHvhŠ>a dD { 6IcNcw\KP>Q=4i4_<51>ErFlձ=x"$2q6 N@FG bŢ_6Ρ4>9I;/E#afzK#;{1o8%KeK U:  f^Wv,bׇ`w @-5v8awx=OC>DJ"%#b3; ]Jy_qE̫+ۏ?,h6ݦq0r`E&GK"w圳@I6޽Nݟ7a; 0c8D[A<@R4Wbl}U(4OW~K[J@:D 1=CM'L䊶 &\bFoS'# EQZ-`Mk+u[1߰?]@'fho:{[ n ]f9\I7LI[v2CfDZMpFjkf7*2@A^&UildB0IjPn0$ ^\d;)atLQ]6E7,Q|H%k٧#b@RU'nBz;,hTtb=1N