summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJack Morgenstein <jackm@dev.mellanox.co.il>2012-12-06 17:12:00 +0000
committerRoland Dreier <roland@purestorage.com>2012-12-19 11:47:22 -0800
commit3c439b5586e9200f7e6287ee77c175c4d5b0eeed (patch)
tree8194cef0f549fbb81aa70985401220c91f228ee7 /include
parent7b8157bedce2a7b5f07f7ec98c96cd6bd64a2a84 (diff)
downloadlinux-3c439b5586e9200f7e6287ee77c175c4d5b0eeed.tar.gz
linux-3c439b5586e9200f7e6287ee77c175c4d5b0eeed.tar.bz2
linux-3c439b5586e9200f7e6287ee77c175c4d5b0eeed.zip
mlx4_core: Allow choosing flow steering mode
Device managed flow steering will be enabled only under administrator directive provided through setting the existing module parameter log_num_mgm_entry_size to -1 (if the device actually supports flow steering). If flow steering isn't requested or not available, the driver will use the value of log_num_mgm_entry_size and B0 steering. Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mlx4/device.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index 21821da2abfd..20ea939c22a6 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -625,6 +625,7 @@ struct mlx4_dev {
u8 rev_id;
char board_id[MLX4_BOARD_ID_LEN];
int num_vfs;
+ int oper_log_mgm_entry_size;
u64 regid_promisc_array[MLX4_MAX_PORTS + 1];
u64 regid_allmulti_array[MLX4_MAX_PORTS + 1];
};
[rU]EN .gH<]y^Fh;V.\o_&Kmr|X|om6_/Q+,|0Z)U)6k&O!fU{aE8R9ZW50RiG1'kJ|D=瑃,o;]uY󾅊skv8c^>jVҊ`-g *c8J<,i ՙ)ku$͘1RǬuy}kǛ~|kuZJypdYʟġG̉@(K $z-wcԝ ]?_ W` s)eH@TtQNJܐ4L#ˊ~2~d}bH =dN;uXdDŽc/}Њ сuOf3פL^RqO?@m/-_XLұg5=G0rPӺvy,Hr;5Qa@ (ǮyÐހ8D@=2[I9[UlnmIkM(Ss2Wݫfi1ݮqѬe[3"$F+K |_˘_;]0~|z;j|r/Jq{ uR,8Gcc7o'؀[5tC^<Lb[F9xy?h?)ZC~ՎL4LĹaIY=aSB6pLt0l81Z 2RIgY@5ģ=K Ɗq )[ZGdRl2'o8c/)ۖb,᜙|k\IJ)>pEcAW~ CqW=q$xw.lo N;%IC6t `ܙ.Z>Og>'gbs=mnuRpFSd.oU9= S5奭Բ!+>?ɍGٌCN'![b΋:.6fE :*°cVâ2{o筯mwosa\Vh Xu,! |_Airs+||!:kbѴh/D7;7{륫p f9=#/A!hP8:W6m{gQNꅜt+Aoq,a)Hj-.Ɗu=t)MHaJ f~f.ҩ3,zB/|R[X/+I:>oG)FW({KO[ܝktQ,m(6P&,q+aރY a9>J v9`S7%m}vi7jv}HS<xpy됞2@bb] kxm eͯYUuSS8뚉 za+Yfwf2-Z,H7$_^p\[8;g__B.CT EEfdKkTF?A&:vҷ[k * A9SU xSBJF `f" 0?}1ik8}p7<.B iK }=4uX8 [`pВŲ+LaUn%Q]/+~Y3_r:W c|Eei`Zу*xb2瀛N̷>0p)ը5kG*D"1P}].FKirht^# +bgI.䗡Q@d8}Er`l2>iaw%;X( )IkG>d]3=m%^{gñd1& sBQ$A2,uc55ge:sbٕ.;GypƬxt<.fbÈ񤀅&'KקMJ (h(JHJ}$]iGy0ZT1IdYNA |h,JS@) I ]E bZ"UOB]*-K੠c6Fv$ï0lb?Y_v>&>4|&ÆTشJ tVʅ0 3 4*!P'0דY!4fÜ:1d [~Cn!vjS>{6:=n4t>Y XʍK[# vJZQeQ[-¶9&6u0%V#WXv'3mt\j0u2z:ʾ4a$t5ļ99# Bq?Sg&:1eRs&{Uey2\g;Z_18 ,<_kO<#/JYFu2Ѣ+9~9w8bpޞyy(ae7NPuBx۵UUdHʙ9{}}91[XYy8.ɷatTy(~j":&|c}G3Neq5̹~ _AI\~WbnQP;o놺{tBHh0hL<}HI"Il+y꺰'[:?7' |Ct_$.8lf1 gP8'`cxTJQGgxí0e M GnX8V*z|jЪ\dN=+6,ysn@/R4_l$ 2' Ӹջnw{>tjёiz(LS,\uwO%e!ϰ9>tJQr*^F-r˯VT|Q:AX vRTmܳ!6\q$Y5 0894ĕ9I)nzkeJ5= b觎P(5Z6鷫gGf޵x{yc9p՜UgYM%٪2ٛ]G=xwY:_6"?s?6/*Gn:E!gy6|A6zL},_nQoEv:>h JP_=: 0l;]*>k7XtYl Wp vZfqc뻬瑯Ne68e5]j}{n2+\WÞS]xDv2xa{*rg7shespcr6׻жMM9]$cCljv;\ד!|Œe^̆ގgpzy^ ¦cR=s9@^,YP, XX;lB(oՇk-qûdžLFq W=8hjkWrQg\Gc;YdҞ-nw =mw|?rd菗wH˦3*T_2:cmJ[Xp:<@[Ҕ|Ly峢a'bq:#w#QyG}t|EFR9zLeU{4,#&s|h:ނ=d4O&Hhal~ 6!䖤vg R2$І~V( B(Ay\py7wW.vTK9…*Q{)b079)"W]I 櫜|tqCsQsBzjκDXRz19o>u.njk w  `"-tm2 $I$CFVX#yQȮcX#`Ul8bcV]8VH UxH;+ ̖E\QYGx:õsjmmUUmv9ͱ? B)#IAQr[KiX9 mJE.-rϸ`qg ׍?I&#|d+N;|x|h9mWG&GK-!X@Kc5[m; PgūpI$M7ٳM!&$3ٖ Kvn)@fU(NINj+cVL]_EX>vxG¯UF൭JZ.1 l1s_3.ޠV=0mCy7Ae=/ߨPgG6sMƇUtf[#]*'\ϗ " *)x U?~r5wbR#Q|siV|^?G9Ͽi$yF/0Ho_y\ŻCK3SWԏ&TРAl|(|~It qNZmZ=Op}[n{sut1H LzM&*J s#I;kZJGoPL!G#qh~_t y7IJ/H܌9z禺) BzrPMM<:$`у!{x;%OX~R L~;FvǢi%ybž0f|Ĵm'z@!^|'5%--ǯˌd;{[E"̸[THNJ޻_oz3A'tp+{lQ,y5 mEot8^}!NN52 F:K],xr U5X([)+wi._Ǘ|cO*S.H t8A&DJ9 _Ⱥvq.Lء(T커ՙ\MG=$?`[XĴ*`VN\DGmAmn pF.;w}hC_qo&@+ C~Ûw@u% 'Egs*3 8S&Wc(`R56* l3[oLgcdaqv9М6z#BcbMaA Ä78L /b#SI2Ã9bݛoJ OK6c:b8:t@x PBϟ[[8A$Pb^(\ۙa*ڙ4|Y9כS{B#yO8J=!*:^ &zޯAx¥kZx;T-cxr}d^"1g<*JXݷV s֔ϥF#lw[u/m,>= I x`ÿ`Jzϲ9UQx=Ak~4Ez0r8Xs6y(.H R'K$+"ftA;:] /n8~u3e4rAm\PAr`E.!i ?R$oٸղ-~PVA=7kly-\:e]{)]|;,vqn*A+E㿎j5l|sY ,<)p9n( H:k s nnng)aнB~$7?Ǘdtw4`=Ri {5:՝go.ܕ7/ +\)P:u:)ϋ=d9ȉ{[manQ<ݶ`nRݾ!2;o9uaͲtzW?݃./H-4Ds6,fa Az43~=z|FzՇv_.G30 Y~ 0hèV_]mٳsgl|d:Ztϼ\txZA#MZH#) 1}E:et=<9cN3Y 6]weozqlSw5/kL$~=YEͮWL{kۮ:[~Jtn4r$.rk%2Bk܇.`-ݮ ؉oƯRݾ FH|ktwuvgJGps~iuW:_>Zh"b wua-x:7 B ZxpD ERwԠth?(@8 B@ r۩i=>\t7ªCs=Os \k^Oθ >d¦{fpmXchP(Ly,r+0|NeF,Bu@(mK݉4Kwq-yne@  2B!nE$ĀC3Dp8QML0 /6dp DP-\Ü>h6(]{Wg;a[2z]VF^V*=`߉z䁙f,cZݟ0"`Zy9 .;#DIT O+Ⱥ-T$܌Hv'D;FZߔ]Us |: :btH/_Lam 0oy~U=I:˩rc0^*J((!@{Af. }@G]OW<}_$B~]^$;0P0bu=>x"p}nwuE^[KA98Y9atP/k [SA{#@xg˿NӍ^h;_&y촟Fظz\}=`V!{_@ Z%rxl7ڼytKҪt!]8QЅ]\Cg X,V7fƁ#=$>~qpO# !y|W(^tۤϊ|ܑZ3 Jܕoy<TB{e#&8"_eepJ`N+F=j(-vHD{N`f\gݖh%M.p& UPpT|[Tu ~#<ϳ/RDӊu 1! XAw55Re~3L {UaϠT|z bNtg va!፫+\܏(75[et%+= )?)e W8gػ5[6 9 <.8=p2u^HP.:g.;FW#wr 3i.L'qBFRh= @O9dT׏Ʌ {q)Ӷ` 8|ܠ>Yx0H*h gj?QQ{En y{ tq."+1p+Nwl(6w6߅}}8q;"5'Yx[X)# -6lABN#4*_E5%CU=/OהqiN:g\U&Ge"vAtEɸF G.g$z' {[DYO4}iOd:,7MlK ?ND);G/AZs=iyhl[0cŨŇB-xOذoPB R‘3o駋_<C]1v?8ȔsKx},,H:Jm>x"xxBQ-,Y8gR¹0ha^{KT2ӽ]gN4ssh c_-ϣ9ݭ垜8[8NhIscsH ,#I.~le!=(1|!zO'޷|RUio 请<}{uaXy\['& E")[WI/'1O"P-?!Oaٴ <]VM(0wtR z9 U(8h"yiwCh~>YHz/Ge@P"n4sβ@W 1RЀr䢤8Z8 u ,gm6+Y.hh5/2FƿgBSk-;^;z+XmEXbQU-eAR+̿6^ĕjɪ'w TI z-՗369sHQTL|⡯G\:!lw3ޯ%& K - ̐诇'_: ޣT\4)yֱvۛ'l@C^_m-86dF^Z;XM| ~9\c1aCs@ma,߄~ƒ; B*=MN@R/pNinElq{k[bkڍx9>Zg#+=E~mwҭ⋒ Mh?^;&9Sxg Âiv((UYߐ6c6? \qDAܲ@56ǬI'_ 8*-!|{WNnPMTu}i^5SlOZgU8^X1gb4_=rG~jh<=WmᚥR-ErոVTOIq!\X2d}j|̍^TCs0# ( @MQ ٖxF I ~ŵ#'Ӟn#L8SjF.q ݛˬe?j-=F]%<&,abfh6;3E<]#5s_FVRA暍Gw88z\\QunsxQ9lrgkx+*.`@P&m0w$PG{k^@x@2Z26B2sv{AhDD@8g(>Ug$,Lox0p⣖@.GP|ܣRY `"ݯ9?"h[d61% 1gc0% Fry(@wP^6{60JL$I}NLk[DE`-d+̶"=&ʩ;*h@flwh=KlܢY*0< EEt \Y>t 9SPCpôQF6x4ې=*µ.ۻXA}ڍ ItX-}S>W" 8mq@tOK?7]=.bO>i3I&Ňpْ:=7.vH=NƤ[9 A@Vw?&;*QsBXsR!T%$hP;vu ؘ<[5\r_eә؏Z0诼Ġ啯 ZmГ_rcҼ݊fj΢iTΨ;vp.[9q~yF`@7[د\'[__+ +]"'G0o*G-9@'޶D!7r&ث\8ώ"DO.߽Ƹ8.`0L! rh 3gPWUoaQ*6DŽpxd5Ĺ[pؾ:=l[8"F_65A 2$ƿpCfD-j1Yԋ uR!}^!&. \nNii'1O"] F3{yvr*"U(}`XGа넳ᅧgjݢ.Y8>\D}IZ j!L0mTpw2F7T =Tȅz(W#^:ww[~-GRݦvFZt3EKHKp:P9Ưk@vD5X֯-̇n6kz9>ř}|SuF1L 48OP>]7O/z1tyx/X*ӚKCG1k)ecL Q ˪(6c6jhʧZyW;97Ӣr9?H}~f& MqV!$ `+5Ht w%jqjEW{^ 1.km"$wȦiA݀ʼnk=]|D/WdCAyH\f֠ȳ@r ,h0tsnpF m%C#5 ;ܨ8t˪)8c7[#tm2mo5gw-n}u]!_e?ϲtܣ=}?ʰvq/d \&@寧\zrS(b=D"PJ},̧':@bU^ ?x#6YNΔi]0u,)h( rԵЩ, 3l+9ƥCBgݥE[|3=OTԃDjXgO4g<>Po n.@Z\5k"}bkpȯR1gmFϮզlϏ_+bֹ| @@$8( A"9G\¼ p/{o|/<+ͯ8u ֺlpMpXnOLb6FymplQilX=ywX##]P')cAzL6AQ+%:ӷs:ehDm؇~dY1`$;_! Mi~tr@^USRx9[y~:Ű$o)A+G m rQ#I dwUa:1%#%q˲4$M%%sG!;C``}I'D-#t6# 4K 9v0h,x.ۦ_~bV@0˵۷#*b/f۵8JGjؙ:bGRGOxdRq.꼸UYgcn$9#\LPEpv*,Qs߱v̌59AcX7^Q ]IS- V>5u{DieZ m;6ιwb8nld62D AYFxjdlbzyyv8KxZfAtLuC)OQT)Hb싶t0C8֋Q[10]J45J*K9XO;CW(L᭍ln5p4f htGT"A.WKdx9i-z S=E3z쟽+9ZjUH1dQ4h1ì ^7PYUpVb3rwQ2/_ژ[j_glS7ݽA15Taod8M=IJRGqc2dq)#3\nV=Q\c/c/P`1z~o ;Է} [o#v9w:C9ENPؙ{l٢|q޽>UeSYw2)GH9b&Cws6$f.Le Dۂ0 ?;W6`vek)m:V1dmO$`QØwZ^]vQKl'pT@'5 bzֲ -(4z y #29+1#3 ʐW>+'zsyQBT~lksJ]ZrõZ4XԬ-U\%hI<=cX73€Fs͗EJ a:rz^ͨ-O }.Cc{=i~'>CA;#)-jma``2@Qq=z} 51>}/=}]:a֚ZK1ֽ9\㙖cWoNY$].\5'{ ` }S]cn?yhLihTHYb1)+-ˈ ~#dPi*`Ee+Ǥ~\/|I?U^ؕk)8lwۜ˘rT"q.>e 6ToPcpW৙Pf>K(\欗"fp9<0s/Am`0W"ͦ {r_͏Aw=x+?UYA]XZI?`qW8#gO>L}5"q\Z>^>4~cumo4@ @`CNU:뮡nbo<:I => -@D<gLhhA|[!2RZ N?m;eiPgɇ@Ow85|_eԚc'M*R " PsWoc?hPzX[!S@0[&6c~Nw_g=Wq,噛8HEJ+Nn4(M?z0Y *ZHӦ-);pNdz?3|@~ 6&]=b=xt(wv,!{y|^k6_略{v]NJ5&m_.#y{ѯ# Ah@_&VG-c1U莏=Wk/h|~d%|eK`>ITGGَ"_C9iyO6rv;˓&uN+!p9">}? xx+=&c Gk%M5ީ x/M>>OIe\ A0QH]mqN#U >:3i%NDLI* R]td%de_5":uLf?P$NL;rq,L)W *Hl,Kk8t+Pg!&Xh &[d/ dgӻ.xa~Ve=҇AC7 ,%O](t[~厪;og;YTIMv¶[Wj8h8>`8a`4 n,,No7YY'V2*`fv0 \ok |/@C#:A4mנݪ.JB'x`vc_" BI'#F#C<BFn/)V]"^Y8d]浄)'-DvnZF=I6qiP1ڝǃge}&g_W/+sO[ŭ8Ԣd:=Bൕo ߪbNqSUϟqH_kdqt^;_Վ°Js!Ul7@ފR @A k0&N–$YEVG@a4Q`ʣ~h+.=v3g˭_ϱS\jgtpbdǃjzduX|Hu5nvzKs.-M#B,ЏNuœ#GVu3G傘n[PJL7¬`ǭVg899UFT(\\`@ Due;xK[u{7͗4آdʏ؋`ϰTP=虻3]dz7R鼎 \ ekgB38(+t]퓩!XKI|p/<= ;FsaqG=E]v7:Mп<3{U/r<Gzt~_a!/Vsٲ$O'&,^ eLjj1b{_i{NN_?Q6= boھ T{|* \#iw}՘KR"gv^cxdur[&Mgx ru-l Tޖs٠YwY[pnaɀی[S~|j(c孟B:fKu֋ #>3[$uIѡ݁cfKJhyEih w17ooUKꁣcp;HX/ l7m4Gb>t"I'}+uU߻پ&X]|u ZDF1A}:$)ylAd6|;5hY`ԧChH9ECwZ/@Ors"O|*e矟IF1v*=X(#{3tF|y;2m`m(:)6Q`|_S0/)ud\SdImmpZJvb[ EzP)/OefՃwSql5ek<@nP(@'8mڌ6_0pfSD@y˫̽])֧ ]FG"܋nR[ "q!uGE ^#n/͐%Lj;獉&Ӱ8PƆXXavDx?se#Ty>vzB ^Zy;:bv\u5 ?77>? zM{n\j'SLYZu\o=[oVGrUʭs~.^چ@2=e* Ik^()!;^[5woﶔ]oZPEZІނV!J٪ı#-lfNw9v~pwG:|&X q@mJE@W9-}1a4|EH#qi \q#Dw>A˽E6L # vJSLX0r H++f@eb@mc'E1gBDC,E6w$~ם="615핪2W嚵YMTA|xZ>L^ΏqO5!#fS !>Xri ;dwK0F6|#.  pPd qfe+' O3$]l Õ4~0RD3RAzArCQDcMP|hoK.tȋu!LismR,tI_a/iC0J-dFvaI(+)ºܮiϘTc}Bl%(DnH& LlX|`닼i2$G8c&BwGw6o3]G}ray,J z{c9]p{wӤɐ$E()RjlÛ%lCs;!W·Q -?ʣuPPi֨#DhmxCX:>}_SO}{8}E\e7]izoe7t4l.nǁGmLecDF[윝u^ؽ0.?^cL1~P4FRT4 O;\N O Z^ U>:?+f4xͪNk*{b{xQ*`~;zX`,HyO->?Ch>דBo r+T(X|Os"5M})E/C ~5ptTz`! S3z8ӌt/6VinB2;ӱTa[),'P家CoQѤQkq }>Pǒ;qTCs J?6 7f%nHVXlʱ9+"J 5p-Ez5L"Ee'k8^+MJJL_[X'߄xf Ṗ6&]̑y5D_eO lW.Bjb"]&V Ac(:L,_eh͝,aى@ۧKLh?gyr|u _rkFaE6c5`}U^W[+>Cl0Q!ļ3Uv W^T0NSIdⴉ8t"WNGmUNWa5H=@yY#e+ \ò"b1&5AM[Z^[ؓV-J»^ RFE͇ 7ңrwEhH*/e^,L1wDн>dO4WU|8kzRf wϳG3P?[ qtCh{|",}V{c&TxATV/a.dÕ%1V.r =$ d(Nd/K_k?9ܘ p$bFd?k|Ҩ B=νxRCU]{Se엵k3I{0ke7f_dC.vHn-G]G8FpN>{,96ZĔ tp5c,um+pR1S`AX-PNP[ʽW@wF*7'7(Hɴ;lz0 t-|x춘{PY&¾MU/ &qC_Ÿ:d$Z+Yqe08fɏӜC}2.Eń|EG?u7AD=U /S4̈nwX͚ez:l/Te;.aa ~=(5Bd1O~k4~:bl8^WTHĜ'r1 XDS/Q_UE?=Gت:ېItaf6:ʆ;D> In&suz/lrC{G1pָoIy Ud*@kP&kV{I~"ꀎ &s9&"sI`3pb@Y~bކsHn]^7$ (emuA7d=eݧg*VLtDk{'GEqG`es`^ &*GoDr R[T _䓟K7O'zջ\ `s혟[n yW(vU*0U5CѲHb 8Wp F!.dk5Px>9Wc{eu,vLt:iEU4؍ٟ4?ڔBt^ZFn齧͜gqz|8Npe_0Hn\E.怓$C'AQf--4#E:҄LHPE7>?,Mě7~gtyXrF5Rrl':T҈pꣂޞ՚<\AOϥ |EP,[d)ړ䨅`@؟߅ Lë?TUs 4hYtw}$A%N®iZ鯙ٻv_n#2_?MNt }'<*Cef?tJh7,U'{y9z_}Jvuvw(fӭ楥cRs|=LcQGvm%?B eF*."(wp/PHN|N?zA m'Vߨ[YGScJ^/z ]Gbd#˥7(SZ@|I9,К*@ :2j#ĢGt ?Xu((I )!+#=cqԪ5%1txH$T .=`fJq 1XASv^ *smBo7cOs?!Jq*mP1K\ s=saxPqصrڛk~?jmm3 Y(=S09*4pbE8TcUÊ_b,N2fjXWf1{ Ȓp.3|H7pźH^ٗ#^$Oũ8B8RnP`lV6@(ӴFl)S!SXEw "~+-cFCR'߾1.?qkWIA=, ^mr ~ i L=D̈!BARz&t,B?yVȽ7H~mBr'|j "&!-VGFIDq1ZJLѬkܷ~R[ ("29ײt c+td*"CR,4ԯ,;}9NQz:oyWby=jd``pj= 'lmgu>v4@Ӷ6" oH۶r* 7\SugxAOnG]l²O8¥˕!p3=1k…?>dS:(;̻ maK O:̜ڒ3Q6kS%%LC֟(O4;$$sTvjPjIz`T~W ;AM*"_{W(V@̹Tu|̘hۀ܊ܦNc\.Ik:XI׺esV6b27 0!*3@7(n*>("#&q7 tJ{7=[CQA466`K>ǹND~qPi3 I[t;$=5; 0N$ZKEifVU;-sSk G_xW^nj%ICA:G 8n+TJ\UB?3USy̘_=j^9hlr(| us0a#y0O`%T{v³UKHF\M)jW1zZqcUHi=FIye T;E4JUf^$C%K+Vfm|؛58փdw0ԔT+ z#ZlXYLv2f9Qa`gCTE zӑ\F9e N‘eNLu-qr"]Eh[#j;Q0 sΟ]ޮ{*rM]Be7/C>A6A?9Ud;GJ,Ts,J}&gߧz |4K/XwQ3s_fڷ#'b/NnŞ;>;uR'H8V$졹-4[{t [C\ak`kY}_^i$@UyD ++f'4BnZ c5@|sDzۧu90IxA/"`#}Zl5YF Lujp7_2 d[d\Bhzəkѻ8 7W=,@}l0~Ε `YFeswb A:qڼ9~,}X+1sYj{ oZ$D-m3^u3YgFzSP ?Q3Pkw`3}W]]8h *wE\:֏n3z!~N츫Ԫ$3DB/I7/݆3Mf͂P m a]z}DZNn{T:W#sݫ {bּ?KNNrzz[(RiaUo  }#QûoX2w>.u < 8>0]% UZ#>wu~8^Ue~'*Jy΍o@bݨ6F$K:).#m)Rˏ.h*}-(4.%hZj?msTTGY"@7Җ]y}]1&`BB)]ffnXO @\/&}%׼xpP'g )s|5H~HdDu{`8_X!G h(M1'$+V脇VN勆|h+9 [ lOFР8,[ @Dx Z >O׫O 0x*Kݨ=)G|0xɵϸ(q7~ LF'( F "[TeHWjj&w?ʶsܷ]ws쫩x2oUBxݰL+Y{}-Ks/-" ʊOߞ|xi|eT_R i::h ~֕wFjun}hŦ헔jx2NE/xj6Dēr!BQggS7`!i(usJe?6w~7AAJ]dwr7*^ޕ%TaNխ0(8#K 8yy >ܠO,#ڕ@XC6Jir6)'l BqӌQ{}>Nbǰ8(%j*X#>ۘs|qsJnOkn 6jlKHF#?]`;dm wg\63BgW3y al FE˽A$'ğpa%tďih-ip$&gfBIFi+NϞ 963Fd6TsݦLJ@!a@y+)}1=)8;}ze# 6a[P{F9ވAxQR[,:L@[<!=~Bd]#J$mE 7ϖIy *UrV\dFY2o$0J;M8p?0]Bdp6;$-܁=ÏLNQ[q;`qJqx'l0/J"ar 6@/HGf`K{')TC|7ud[mihpTr[`X449lA8:u$)#K+/RWT?!0m4,dn9iWXge%AqW3 /t* a˚O+k0O7n9-^6/Q ❹|.*t,56m]4`QzɃ[Xʎ,zB+/OO' 5\LThG˴g 0}bvѵPDZ4{q!٥r[6֣#9?L k;' ],ZT|U?8cwHӺ^Kd<Џ;lE1?^C;[~1U+kYumnopSrtQH/N-đT p8 vƥ# QLBw:Us Ni/0O+,Yu%2Q$. !ʀ~aw"|jI43,d˳ٷ#?+ =B RCw=:*QG6"JܤW2r9ECzʟs~UI;)m k%J$˔Pdg+VfnLluy;ĆA߬<8̏^ :d's (5sjmSD֩D ٻlJ!ݍ@XgCz~|hI 2<,B~Sd&k4qQSnc{6QwG@_.ezpasA޾HktK_1 MAs焑ʿznϲ3hNDk0#"k8SٶƼ̯b\q7.mXcH`۠X6ńCDCEQ&2Ѣ᝹ е.thoа9ޫ>T/y Snq*Μ3C*b@AQ:4-ԑʿ'm, 6IRΪp ̰og&L%6H;)҉xݘf=QAx?"C8LhZRsy߮?њH[i uaryGE*!G~,6@p綿[J֬wE\Z@ehLQzHgn&nsD&5~*Fメjl!&:娓ºIj92~1ȘڃӜnD&!8EX,`8 4H}7Q"zWr3ֳ Iӽ5~z!U fS.^x^J3:o XTs!WӲN# ˷p?s+0^;UqtNݸF"y7~Pѫw1W:BsЗu؏Ì-^X6q b6ba(n 7u ºq?_FH:d&Z.gXY6xKl^D˙Y)]l#g.z8+C}, m%s2lՀD fp` (>;Iux׊>[D?!LVOfa2 )#^p;4\OaZ-"C$AL}~Q ]1Ki~%pyw0q9.6^NOS+xR"`a0\j@X!j3U\ .3jJɾ<JX xU^DWS8 Vw8Nsd^n ,#4sz)CuM|q[VLЃSSPqMNN4#qs]*Ss8ӵc2X.ziɸf8qd1EZT/afٛ/:?4Ggvr \k?,!deMifwSx[-%_򶶗O2; !vUoF^"Υ:VxG1{iӅ8T+TD֢+pxO7Զy]N=< LlqIxPZ,SܒgƤm`}zwh֝;m?NǞ]\cNM]Gty "/s;K@.c &IL@|rbG9~ C϶㫄RC`h5Š_kf }z\L>A6UWE pa,qRt =<Ĕw<\ٕ 0}%=KL}]xul|:&{?~)NMg0:k5ayOٸ 9pqTe mo|'/^2I8g`+k Ō&&Vʙ.xd=4}U;n+8Qh[71{l٦ɬ Gldb^4xOMl Bѓ+\=Qh-4pNڰ0]S^W#Dgq6TYFwilmK"ۍG1s"Y&:sB;vP="ya&ZуroNؘԳM]ߘkq\]X!5nApT'JvP->OZt ?},"IY;*bΧ j`U>,8'W]isspk~!w^N1#50YQYn6/+tKgyGwU[wuM"1ᚳ+̣œm02nm'v\#(h~|Xz3ܭ^ӆ%1b_lI9*8zgPģ~ [n[\?8MC}nufj8D_ߩkHbX %9 nMn1Fa8wtnDحhUI5q 33N !e؝8ء; n8].r2"ʇ1 Prإ3npllGG\n"ܾ芭+=ar9E`la<َ?խ+O8~HA uNvWIv|V"@P ąnr OKLbB!b 9ŪҫuIl~,5K0W10x t=K6$db+3ńի>_f;gǬ24aYWjN򛃸Qň!xVQNFyLb^Y֞,xX?j#6u!dPxnZ,`Nrs(;{J+EM}- .ᶳH(ej#M-c?VByDKۏӈ /C NQlC\`J,>PLs QfaJ ZFK" euS=RklaamY[K;74{'%{ %:Fk_J\sY e h45,;8m &X J;@-rdZ lzl.AVj C'/V*3N&7١}}KI} 1;P_"1ܗ8;=I.kYr 彾V~7':%IJ>R9{xX0o֌g3s"&R;n;hNو(fcF'g;8 I&=צ0>J5}Phtpfl\9QmD1"kgzYJQ(k?F9c_+yeۀ~kL1=@{bw|aXUPntM y3^w@-.˧YZ,M eUWg07g d`odϵȌ/W mi#*8_G>YP_J+ƌm-ˎmߍ5y)oU<ܤ2i3>ɂB=HvSk,k)GD101HL#*Mw|YœKƊRzρcO]>jD`|mj ^}R=р}] Z's.})We%l`z;'˺3\YT/;bk؞UTk= V>pmr:/S}-=:432{\<6T{ZQ }QlhO\V>붑)`J `T"+V1`a:Ce Ώ }m\vo(B"!Sn;  ŭ m8;(6`\'ɛꞫЂSqfL˲<]Y!2:8;ޝْAKz(T0P5ZHmIcm+cޱuEH^'x+?CMg@RÒ>zɳٓSTO߇uU9g~EW[*Nk=aJTYzhbR 똁:HHZԌL$S6Lz;s(,,}D3oGo^:Wp/0@/r[jgg&adSW*#O_YgAfn0nVNHOqmin !;p'́~Cm[?*Aқ5֬oS&Is 'HKx{䘋KBРgb^fCV.<*䊗"N /\Pk,qRf1|*-ng}&bvz->0pGb14:Yl3ѵ4V^]5oML[x֧U}P{YN9&8 m- '1ͣQ[f* 2RR8;BvAs|pf׎-1CG#z(/VMCܙh]٣g99l` KHL2Pdhnཽ~-}[9R"Bfc@77s 0,bYlBWB-ZEQb#fgaz'FEwh;>a[Qd@Ua$jAyS4SI!E_~n (X #|=$Lfk >½$^80 = sSb]rd Hv&x9ŨM m&Xbk/nd)&7{b|FNGw.:Ve-++?gC^~'n?f) HL`- By>[<-2.w?m1t>ߝs4۪=fR],^l'@&ukrNnQuQUȴz&IJX_SxSc$Gv.& X5$yASTX8y01(~7g}2 ecS]&M>7~K^[G{ڕ\ek5)t&TRd3397GAǐ?Pz(d9$BR5Z~Oy(\CBq!Cbb B/J<—^Aw_!O j3jOH_9:ŒbeԿ֚@cbc_ޏoҟml6?^L#EL DNuOwaG*?YYhH~o&Y_&mTp9`̳z=PRYJB$Cɦ@RZq<\W33VPVqpQNkǗ9P9|p)6>_y<-%2Cj>#əԬwhZF-nV})xHcIx!\pf:)gȷ)yqMзZN2/G^{kkt_ru 9D?..OO=E'Y x=A!xc;s^{EbA(T"&20w]Cߝb##P@YOoL^lߧCWdD<"/H|V- z?;u sk=G#޿S9DXp?ΊWW2'r'Hv&KU/FcC "bo%^,& SoZW*5TY+}HOcX!եzI`LܾO"{$sAP R"Μ?wFOH AC0ԛBf JIN RR 2'%PDǩܝd*,rAN&IJRL7N@:\B]c*$R\`]I0d-iO_VWꞕgWn.dX"Sľ}(:y?&ݚ*/s}۝ӷP;u0՗3,my|Fp/v?^;@À^O_clcon_ۧ{G;KЩg}/G7[(ptrص8Ӫg@dV8G7)7g ҇p"E3:bF?~sN)f3cb?/f]TB ŧ2T[gKhlh_-=wO>E֠~>.9 }Ƕwtҵ>HGwG  _ppѻˤsvX{tOJXt1?kxT$Jpp(ؘ_vF[qOTB $=h׎o2NM{}{|zg'2JnhgM>m^g3uN$eobIǝorp`3/c,Eg=Swo +nwV.g^>j{1#W{0Y#_ :v>n뇝g]Ϻ3mR].\{WԭAwk1~s mvR7Kuy<_1~f X{g \,VYS`*<}o5c6]Ge0۠pDGi?NDoiBnC<`A=sa - g.+Խ|lݵ0zsX8ps ee5wn9} .Q'?W -]dfDoxRW(\Nd4J{ZՉpruCCxn®Ó/ hF'[AYݹ3 Ҏ%iK,4ʽmEz}s;UDܜg&l60> y>5Mbt]l@a0Ӭ+M\k?o W>O=I*&=݈M֎zVƁW0i?k{6uPCGOcU+{.GU vcoZzc -q ˜luJqknKj^x苯퐌Ўn(B?q>WISh<¬s/ kI-Xff)M1]8$YQd;!6iBk7Bك2ӹ~WΖbEԹ`|9u9NzX류`_I gs 8@ENYDaox }.[}oWV̙7LcB1V{cJS)^mόK P ـD<rF ?IEFm7QUl?Ou&EnE%'58hQ,ŘC?̘>^R{/?6sțME@(Pr~ޯ>хoo[ ÂxhQ k~0Qg  hͻŶT|ឝnۯKf;Ρ0` ŅȈe QkNoWY D FJ!lƒ=Tvh!@ !tʕ?gè>%xti#_L~"#s*g~p'C޻™|d?:oͫ>ߗ8*  QP 0Zw6ٶ& J+[G +)_ zwu k P(!8m{V_u,#Kή>SyH ł-s ?|&]?Č,dk /ǿӯxN DDD58RCo *KΈZq|KV&|52f8\ g $ tA:F^J\Q9‹8 #XYfDAQzi"JShy ,c:69Ģona# d݌H̸ZOg$w!a_% ziz 6mն@1w߮Poa^Cl  EgZ5صSzT*?3bdcACN'nE/PiGS+A^P WI4;*6_ݎ (* Fr,=lKB$[].C$n^a[ I$,Ridw:trc ?}|3 ⹎^xeS=[T̉[e gpL̕,}#)]-UŇGCEEΤX~.q]WޝSWOJԢc"]]#;&8xsu8ފG[:xhxF?#Tid:Oc[/dYFgM׿E U͞.{ļKȿI|O˾>טc!DaJ 0s(Cx|,lCQ-@ഫbqsWHKT'[ kB =m\\jvBn0z8(.;cEl:@Cjʊ<PoV2jJ&kkX\P;osXm}̟W-VjpzЕ=A{+lualrsFЈ%8Ze\xIxal,`ǽgOC憜ƒmO1z<+ŖӰ1Z=:6厏͐?Y.K7ݯ z,^nh(Ø+%zhl#եmkʾNe6qi|}y윸yFV)c'{Ce'jR `Wk Ytmj>SK2{pke(qUsQ UK6H<}&.FUJߘJRMSw1e]z\ #/tv I:Ng$MƯ,7_UV*+_nH\4I]ەaddP,4VW[`/_B)brx9:h5u*[CaԺQvYxc]JPKdM\%BRq0F۷Bͭ`E5XTU$2颀@$UEX"o?_nd,/{X?G8l/c΋b%n}9WcΤޟҩS-!OʤaӶWI=AD`rOm.dzj.ٴoppו[GFho-,-koLmzI:NM\|!YZʢo*VW:a-yymiVBWJƧ#&ώwVmٱl>1w~}9n}ݳ)P F\^x~A(,zr||%ƴ!J:g"s`V)kG&ȖIZ%FSLM` e֖9O,z}[|@llݫZnT7Ţ~rN @TxdO3!M& G$%&,MxSRcpAw _UYΪUA{(:B\,gCpP%oiy捷 F%<`L_fAqkvXQgޗS+4BbϚ>_ aWأYż-|>: d_UҴ_,T9FmOACȽD'f(M܊68+r.O}/k v0 B?|І=.td}[ǷK2[pdtZJ%&B?f,/{TC>KBuE[?ٸ RB'79!GQqG~׮:vQn׈.:`+vY "8c+ѨL]'sz5uHL<_F -yc>8lf U7qM0'`8_Կ˃D*nd+„H@]i) j<u ֌Gngld !.a qh-d8}#U(yǟ5e B PRJE \0A13srIYH0Sxζ%+43|lԗrcUβ 5΃0&_4Zٸ0}.lA_l hH4[\$6qs c pI& eތDbإI"%|T;:OOz;c,2[wN$E=D Q>)A.q{'f^D/u7ggzoA=p@2M/ww~x> !"9~WK&v]bL:d.m OyaP> 7{ g)ꇞ;Ω0C4KJq6#p$ κۿ6U(3~;GxKq4**^ޫىcSn>K=,vdK18Eэ׫䵳FYྶ@d `NTp1 mfR.ꬃQI8M\[A7?vٿES`۫CaXfeVjH[m8t%LMB/6γTG Cdz][B S΢Zfר'<{z:, _~zYՄo/nL dmA6tɖ/WqJ8頶} Ә@gq䞠*֣:Pub DDH  rAoN*k9l-[pTR^lשW+LWussK-BRg5MF`J:(A8,F:#9m+,E!gZa]ʐ/h'[6"hő/./gZdZjGedsma.qڵ{^'Ƕy~YKosξ |qU˒^dp%}GĀ6[rgѓQ"aYoN6Sc[LFVn8[^ LNȂT TRp=R-6\ (*`SmlTӠfcFY|Tzvdeu'*Q k{@NFf#Xzh.zF*V6Lky x Kb va$ z ]4@&)j& rD]i#y}4EKgt*ѩ>Xw%1?-#'IxM'm-zњm߃ʖ[dFE$"jzI=IDsY~O!UͷGF)-UGzIPpZ:`7B9ןX_*|^- VMO59@P\RH @;PI>#&/,%TQ=}1SUE|w/ .s=ˊ'ozq*Ok6H"O1lXbjÃ|QO0N\N PqSb h}'7@mSRNӣ.@#ʿ!Ƙ#_= RYJiT%E5%O|,H({bTn2;}n`Ѭ_l{z=ey4Q:T'ߝ^Iu4[76_hV[*jp)ٖv>gُ~.?c%b/,1A uGR m&[vHm} Qгh{`~w5@x#"h>< %Ď( -6f0I/ɗ_=| 4ˉ DZMtzy𞇛)b9fꞌ&[|y;RIDlLNn+W~w$DfKHGPO|Ĺղ~/5Gj5z|~ a/|VMfvbuOo$<1`ԀK˪̂u["T$Pu_ItuRCy4yo`peg  c\ټ|P=-i5;p *@!wH Pm)c D4M/2.Q($F hi'Nwہ# 2 vJ^IێNfPE% !s!cڄyh|h9Aqܧp=h?$8f(;uUӨ% BJ`*fFi**ZB$ ` a@w?8D0L2L44423+1~[,h%h )"1%%/l1UHR!HR-sIYi4TLLM@LP ""#<~[-{`uT+6g;S)ݻ::;䟵0{w5ұ$V}~o.z@M"2q+O>mM>^yb"UD:NtR ŜߗoK7g_)DK6NY#_J%l,ϓWY%֦o*79Dh8>Q. u $EXΎYpORI/6ׯ=T=5thKz\ !2eFvB+*׍Qa,[ [ןb) 5!Ȟ4&&C L@(V*ו" v(Ih0xf~vgS̎t+}+MJ"N!z1 Chu-u&H6QQ^D< 0=<}g0a. @ 8KgOEJuWf#)ىug;,uMmja#i]7b1߈|[}z`g;KbWPw #I,ձ7씤5u4($MVvvz}ѝ oF\HpTvwIXH];<-I3*I&V}˥&s9E#ZoTH1AHcDAv(32=?6&g$ NΦA(=TW[&Cf3¥1kV z"-֛N,0h; !R^UTrө(læD(d?BH"% H#0-*(}d4I3 QW0 ndEPD@Bo\ЀrE+$,*~L03UR1ۢU ;wpo?eHT9PHW^Zޯ uw{Lo@J4>@>-6PFf!3]l 𳺷?jo@Dd$Q&ls~~)$$ pN@qXv>gEnpEKo$K+lGu)܂sXM@ BûzZe5\cecg$5ߞ:qI>Qc+P33<:{ߌљo.1S5 =*89}yTЖwYޱcgKF!"!U>.R o_ 1[_@}\Qn#wF?'ۼ'!,HIBBsBZQ@# Fza4O6  0J&7icܓ^8%35NPk})nCu/ BT-HQז5VcegVAWc酯cZOlG -.':Qj:JҲ 6ѓ'hn/=珫Ƴ۷1"ʹ/ŏjf!;ӧƅi#cs):[魵;e،nw;[3?TB(;hî@su "Z1"G{iDIb1=<&'(fu)6<' +X:iB3OaSYH^~}>#G9w0M (:ѷ8˶ )4kej"~?G*5?:CYFDI 2J^Nex&#8Mr冷YhM=uӷaKA\? Nk_FBy1Fk4fO.&\ ˂aatlRZIcd Yd~ϟ??8 ˳DB1G|tdWJ?3uoo(i ]n2.Zhqͥ7YW ͌|xNϦw Wbqn:e[N֦>o?gMsJůYzFȎٿ(û;g?k7qSOlOJP%V@*!H/rkH'u:t@(nۤA7y WIuT,}ּI$gL X00FB0e7ގiqHfwI??ƹP$3gC30WlyGlt4$A+/"DRt(QeH5) c];^1_gmj$^zWC7qJ3,E h}ENpaxk5–d݀p2nL.7mav FD:bQ#E9enr۴%^6xb!}`+Aob=㜻1 Li"FQ}iNAb*Ĥ.v` O,/;:s:K1a !` OAC`P>rxgގSRmu?*9J߲=M8RsKXM">[::c.= `% Xt<VZ:v]yd[gȏ{uRXWIy ' LCÑ@q[ij\g_ǴwXrGĩ&0;*N;²ꤴ%mT|L>o^L@BO~8B:n1{axU]^/Odk`,82dxK3POGdLYbD jTw6Ɣi|A#~\))Hֶ2>Sv#fS|]c@=nYOVɞ%|H4Cryp]m^>G -4]l"qTIw-6uIIez+Q}I|n @uU6t N%$t~S -[^힠l?pW5NSz| xV࿉rs/D KꃆORSFʌ0?N$G&i N^[ BP !P]0}Uv$ȿ7ymf+0?gL\2ìBkcUS)O.Y5Jqc s('Ȭvf;uyO:! E0xH~\{zx{C,IH1 POze7"`3޴92WUl 7RA{=z<>N`[rgi*@wF^^ms g_r/ϋܖPʟ<-P_ [ %yůtؖ]~IN?GDzQ17X>F zJ zzs{1ͮwiX]ΜϳAYmu4F2,_ ek&}oփlK4tǴlNx# 1]"HF?R~C<똌?HkkysiZ}2F;fb뷗9nui@$΂@5~ƹaM_@oȪ_MПbEߝS,f-i\3 ߭M3F2(-3bnNR& @#}X']6t?`\eky?no\ Gp(3N]G2ZP[5Ybq^GKo_%~;a!Sa(kNZt| :JRiE &Pg' >9jvcc%uD$ri+۫bP$E|;GRb.|g3X>nݼ_΁^i3þq ]&e>XS,Η%Dm̫8Hm$q9EfxrZ&i>dQ[% G` >Q{VV `fniCA3!%N@Aҙ-( qFRQЯ\x}7fg|e]h@ĎpMِo's+U#-ɆcJNGxst#>cxXUOw D"օ2S$El}8T'4ޜ9Za3ז@28sLY?5if?2@{Fj_vs! 4V(Go3zMOR򭁂㈛nw/7n/B_sȂb?D@ pb5<}d#S3 wr'z\.D4$2׌USKWR1(JQxmoo+T4K3a%nnۓ髬"@:n/EF1.W: Ic&IF-q9qll}Gj n[u>[rI]m n\LҕϾGR6W+ 0D; y"Kx's#{Xa&ÚWiC;hfd|`P$PH Q -Q6a\9.}\C,`?hpuG$Ƴ4 Fn0לge+G:41B/T\w 4&q^|m@ #0*v-Q$<|iM j,334(#L՟&h-'z{#'[!0?`< (w8Q&Dm߫ץtm!gpYw\2ߺloI3gtb9 z+nVXFJe}" bb~NRau$"bMӜE`0|yoߘ眯 cu7ɣNCF1F/%S?cuO$y|z4y3/8r퉞sx0ާQ~b@oB|#QWV܁*K&Xƪ:[ w-M}=,$6>T