summaryrefslogtreecommitdiff
path: root/include/linux/audit.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2019-07-14 13:22:27 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2019-07-21 18:24:46 -0400
commitc9b07eab0c8760bdd4cf8624c482ee145a322a3b (patch)
tree5a28592ddc747bdadcaa2ab8f0969baffa6e5f35 /include/linux/audit.h
parent39145f5f0cc924b494ad55a2bc9c1b4969b5a038 (diff)
downloadlinux-c9b07eab0c8760bdd4cf8624c482ee145a322a3b.tar.gz
linux-c9b07eab0c8760bdd4cf8624c482ee145a322a3b.tar.bz2
linux-c9b07eab0c8760bdd4cf8624c482ee145a322a3b.zip
audit_inode(): switch to passing AUDIT_INODE_...
don't bother with remapping LOOKUP_... values - all callers pass constants and we can just as well pass the right ones from the very beginning. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/audit.h')
-rw-r--r--include/linux/audit.h20
1 files changed, 7 insertions, 13 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h
index 97d0925454df..543763ab0354 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -252,6 +252,10 @@ static inline int audit_signal_info(int sig, struct task_struct *t)
#define audit_is_compat(arch) false
#endif
+#define AUDIT_INODE_PARENT 1 /* dentry represents the parent */
+#define AUDIT_INODE_HIDDEN 2 /* audit record should be hidden */
+#define AUDIT_INODE_NOEVAL 4 /* audit record incomplete */
+
#ifdef CONFIG_AUDITSYSCALL
#include <asm/syscall.h> /* for syscall_get_arch() */
@@ -265,9 +269,6 @@ extern void __audit_syscall_exit(int ret_success, long ret_value);
extern struct filename *__audit_reusename(const __user char *uptr);
extern void __audit_getname(struct filename *name);
-#define AUDIT_INODE_PARENT 1 /* dentry represents the parent */
-#define AUDIT_INODE_HIDDEN 2 /* audit record should be hidden */
-#define AUDIT_INODE_NOEVAL 4 /* audit record incomplete */
extern void __audit_inode(struct filename *name, const struct dentry *dentry,
unsigned int flags);
extern void __audit_file(const struct file *);
@@ -328,16 +329,9 @@ static inline void audit_getname(struct filename *name)
}
static inline void audit_inode(struct filename *name,
const struct dentry *dentry,
- unsigned int flags) {
- if (unlikely(!audit_dummy_context())) {
- unsigned int aflags = 0;
-
- if (flags & LOOKUP_PARENT)
- aflags |= AUDIT_INODE_PARENT;
- if (flags & LOOKUP_NO_EVAL)
- aflags |= AUDIT_INODE_NOEVAL;
+ unsigned int aflags) {
+ if (unlikely(!audit_dummy_context()))
__audit_inode(name, dentry, aflags);
- }
}
static inline void audit_file(struct file *file)
{
@@ -561,7 +555,7 @@ static inline void __audit_inode_child(struct inode *parent,
{ }
static inline void audit_inode(struct filename *name,
const struct dentry *dentry,
- unsigned int parent)
+ unsigned int aflags)
{ }
static inline void audit_file(struct file *file)
{
n<TD|kKB'` ' |w;g[){goSdj6(A/aSjkjF7+ gumnԚ[1ޱ_z<, p/KĴo1S^o.n~Wl`!/>g9;nraGNCKes׿n+Dnk>P6lRԮ>9tٮ~j=v&ly=6!~=jK5"oT)Q7x(v^ⴵqss[?tJ53ㅥnڟw*7my-v̌#%aN!naܢ~b à%?_,m@[@Wr}!s ] PA ^ͯ^FT4p#V+hRvJD!$C?*mÌFjrݿ\o(m3hsi2aȬo; l mUSm>Uk!RGh;s[ eR80"D%5e8Thǽ|'5s=K/ ! AX酷v\Pr!FA $e UFIVyO͵cII"G} 'Uvuݪ9!Gp`AfP,apKK͸կYl6|a'.:VoӪQ})>_\ uzafטuvmdDGOGn:EAg|MN+ρ]&?Tv/?o+[o]ϧ /=: 0l;]*>Vn~mtYl g< 2q{=Zfl:ދZyc.0ӛwpصwөn2.%pvWf1ܷl/eTN[,Rm  sN/~n {8] zmG;OmC>]}ckT>+ze矏|tʾ{GC֒C+UCoO\3eBog 7z  sgC'l+>bmXw>O5w4aS1av'_5Bo~WƷ>?pV\¾2r%7"vI=;q7G)X*Xbqל8~|:>s/qu{),8Sŭn`|~=OĸݢOWl1nӓŬ98uAlUoḱsb_K T1P-o9 uXGoGkg:ޖqTg.]UYrd lh}$'ܽH ܃bN4!?*"tj\qnG|(#+J3~D Rq0b* h,@>n $>jzDΰwj+ sTtdGH;g & 8>dG`2>Ӷc$=$ǻ+,NJ K T4\(KW `PhdS ",20-L4U6dI$# !b7] F*5`U,j*AP W1rV?, mf1(kߍVڶUm;sm #ͱN뵠M5\Dsܹlx: DSRIT{NRmAHM0;!C$gV\ JmuGF~fթUUpv ̪C*U%& 84K?I#g"$bV4ԜGNʄ蝝W}ʥBY!)߬@@M)2_d?wx_Ό-~ᩔLWeOi_B9sP3_ҫW=ԭWwYEk`UQtWs=d %'#;HdT?օnrDt8 QP%>=#{eesH_N>(&ջdf6<"4 @l.۱ CdfA;x>MS]}' ܝrsrserȷib)#+w_D*{Cʼn$6WW,' pJ)@ʹ>q쉖ww}Im7x5֑vC9]B}z-}=l"g$ŅSS}+q6xEJs k#㭣iV4eA H=25ʯs sserqj@&Z]L;|HP<+3,u-ဢ%X?jmFb?SJ[ێ)w*Gh!J?$&}-KPninT RX9|.9ywazbt`!ܞAT!`L&ņ0YPr[Mglyf^݋XJYI.&<(vvU+gEL ecX"Uo|n >))]i-,knzMPXB'YGU?vIv 㲖[ͷw̲jwcwU1NkqWr;+89;0^b$R$TE볰jF'Zv{恔o@H\}}B={e ugV4LDm)=tqi=kM"A52~6NR@&A`z8;8q:>ތf:O%9š;Oǝ~>Vyzz`zsyHX[{n!p"wo*ޜ|l%'p^̳ 6y?VhOR0es OL`Jz%淛6Ǽ ylEK䂽as@Hf9~?'8GDǣ0VO R,~iO,xXv`6YL$:тi bB6s= 9>:qso}ϖt$ߘ}woWwr- ;@%J uȫA]yM7J{==[rY-5t.͝~*y߱+9e ,it^?bKQ6iD}>z+u0v2+.쓀%73osa~ h_\pp(4F) 0(6}}_g:_=owկW6AA`~9=NCp<>L~`G'٪G}=te>oKprv߼[~#H{עsnt_ 6yޣ!!vliA?\1{y^]+ F$N5 >'?wv!"_?"]pަ{#3))&.oKm]- Km^י5}[{5&ź@d;BVcejNa8 '؄E2 j "Ć?[LCE;˥.r: "%=9 3ups1uIn.örWn{ 5{"'_O"STa[47te>{l __s5PyU酲1E8vw{zY_jD.u~ 32- Pgn wLAr7X`sxyVrJHr5r1=QʕWa)p #i Ř,߄h2!`1~ [19LA5sC2E?;V jA$=8pW/`Q(>l!@wZg u~@'Gycl#]Քe8XZ3J;G6CWӇU*q0بp{5J^ Z螺3܇_r?o_tlXw_kꚢjmnvӃz!;:8J;;˺X5z闧ƛ]$:N;|8[pdKxxy. 14u<-oW!1x^7~i/ 'LGLC\TN 9L_KM.\ DL`Φo١[&^%sS"gAv!k vD\4 60m CkeCPBk .ۺ PFZiƶBiu-Ơ4I (OA@\.&+LQ>mJTR)}lho٥$qlIq= ,\ TAQ!txP;ˁ mC=񁦛)*kZ@ Rg؄rOQQMȅ1&h96k# ~uS&yQ .CeDs[VFrdW<[9DQ2N~zh; {>{}N4[m8 ƃ}T#֟x*)`4<:]vcXÈwNs֒tzW,loGh! t9zE?xQð%/nοw} WLjl;}mzzlP໭<.i4F$6Rѽ)Qz&('4sՕOރmrSé[)ے 0sspy߫ PJ>aBKĄ*86흛Hnx]!9R(k^u:тgly-&Rct<*6)x9;(91fQcc:ⒿƗ gޑfˠr@ܼ:;268~Dfn\y#V|Yh8½{LJ-rn[,TKZkr:ߥmQqkzS`vv,t\Z$.qk$ fHMuې濘iu7%+d|7ekKɱVߓ_U|0Oh;Nu|:S-,=M}h@20p.0kr" 2p|,0|eSd%sHbZY\^ ?X@t4 Ѣ MS]cAm3 A$Ah(0g=$rxRE|1)ev4-y:p!5Ҹv7tPm!RI <]e/}@oȁّ@@ 7o0(deI j].[wȆߏՠ#9fLsH<5nӃt-)DQԈooF̉hq"t B>˜(A!z,kz%-8ԉ]I#P{%++j礩g}Ea_nC2yQn, b.fC}65},hJ Rp ã06]twKl<, !9)6_+ Sbo(%vFf9] D`GZ9eUu׵V#ŚȻ $tzE2~}ݑ{ Pv{<8!: R2Ft n\%@v k ) `̯*HR%p뷅"pPrw( A 3XL5_!8ث͍Dy-̍DoGduvk7]E_`!PEBn],A áD3;x 8ebkӤ6 ㎱h<EQT}}Y_R_/ŸL"y68UbbQ2$e nClt1)EJ$'pa£2w f>ifE&8;t“쇎 Pۓ԰drY8zg_ay]$#㭆GVе_ Z ,,)GzFm\0P.Ann[=~=\g_{5\;A[u7v+gi߭<ׇވ$[&NQm?%G~rrG ,n_'[՗7? ?Gx < O|6M+G[pIOAՇn~j(EzA.)Ì/#ި mx<ηp>w/NzϚ`]BK9t<3#&+Pt$jZ"́,9 )㿓DP,78 ݄v>TR@ 7<(H{m5_fμ,jb7-?pFd"4x/f]bw?{<=eE19g0laWΗ9=wyۈ{Mrx{y8DG{ #ġQބl(DoVr-9vMTx~4KEMޟ5՞+jt;%OE{,Ulvj9:]?/$#_VSgצlV+ \͌G v.9nܶ0GK-\:* eajEKv H M]l|>[dl9:o@q'k:LS5鬓FvPX- x]PXSir k 1T8K9?5r,pl73=n' ^.vU8 ]_6cd0um ؽdx|37n׋i/nsg@^?[Z``^W˲[C$7@+ơs9m"[:? RSO]=%_2\& EU!jBv3m>BymG@q#nX Z~%7sg6VI¯oGܒ$J>E>=h殝Y$:p5ttBGD9V3Q~[&)K[N׷t/{S1E\O=*!mkt|v~\ש3Iv/K]I Eaj#|?Z-D y( C6kxGi#շFP laf;G@ 8Mt"\Eⴄ[{X%f0@yGu$5r^/Sj cEo6a~5804֩1à̙%%nS \t2(:0mDS|9(=9%,׆~놾}\'1>bln j; {QY|,=v6`ݏ}sG@0A͒=t=ZU_nR foFC4!f{]WFRpo.*'U-o\m$$ĶlPN∃d2A-@_/SBMN3~|T:j_}(5<_N?0 SA VE[0P,O1x#C2EFiTj+Z*O~rkmr sƦ|."'ѵM{ܰ>gٰ|wᯘx^ŅM^D2#$cDy9Fsx.(>% ]t]k+춛Ri/^p]z ? ƴgb€=%D 8!A(6@0J oQX+wjȎǞ.}ΊE+evE\$V$!9[%T/}}h;}$htl5SGϏ0b@KKjs8*l \ðjPR̴yl!JMmpޠKlNk-ۭ O|zfHdžB( u4 0R@n4KА Cblk՗x\8 D @`6Dgc)6I}ɷݾ 2)3;7ᙀBe }₃^ Ɖsv>PSa\>\4Yl3( 緺AO)` 0A/B1uDžUλ8;fNAEb4sI->σ9z#[~<#acvuu;0fyy]ompb-pQ9d7??_EֿWzN -@ldy"ӅY(' (8?7IB`z^iAm*ɛ O~@W2DErFD1ŻÇT_3DX4X|S5t/~̯}CPx;N6+a\n7Dw,.q{6IVG^Q2[E\)ٖ(KtBvyԺF8G\n)qJiDS+Gz cs/,9.j+:T @#2b,6iV`}ھ~F̥z=թGDx@CMޗ{Ng*D=mc)CLv덑Uaj_DzZa7sH~P1HZ]@ kM/ n"{_]ɦ2y|.Ơ L)Pg妱olSh˫ڦ^rZ' ^Eݗ;]?=zp  *QމaN,^ؠGʁLLtv"d8d1oKt1 >K"^Q3DD `PX&Xpxxl"]p6=Ofj0W6$V8 !@+xy$, Wcn~ (Î6e2lEe4 $Jn(X)q^1P!@W?_cc%۟}7 wpY!-SB(ly]lL 4|%\q_c9?q7A yרA0Mx[&MWu<:iK$us cѷ7- 7opcۼ+8$f>m*nI3Fjss40G<ܜ^[an|mgա ۡP\眵n,rdBZTutʧr(>[vZr~#mye0Ohr5Syv>T4AAmܭO=6$/.*_}ц޺B?Chq V30s D۸z#9V+l&kN\CSu~DͻcpfSRA'Ċ@~X&aVcij"N0" E IC kP3 *Cxِ!Nf'7^T_/|z2 J&u  msem)!Te9jp7JqDV_@aWvhBX<6 :xk ŵ Z8lN=;iNX-h욊jsz[R I hyLT@wѡ$AUljQ["ݼv67P:%ݳ3&`_;,3~wwzEݓ]X#}&RŒ!, i@UH/W{d|g%)mhxri8[-e sslu<]/jO.w{GDd}%jΫ"':zX5 EDz ,DﵮsPT*ȭND41^'KwX=vǝ.@ A c9W7yؼX#r.S$i~ LH"(*Q눾қ9, u谄b")/?yNxvJ@}, ^(уj<# DA%A,D006sRժF?,G0K 0˜r;i]zy0f{i-/=1(iPֈAapBvbK4qjd9P,OEʥ_é2>,OX>r6FzRXfUrg^_g쀹3`Ek?"sMҞo10e7s2[E|v@Pt( y\YP:9 ~|RcÄLvbD"rh "G/{1F:!/=TğzBoaנʷE_FE2 u_i M"{HDc q 6zJsgEIS?~El5T݅Ze1vG) TA-r J]s 35)+a@_J8iMV7r >4/e稪T[\챣J-1pҎ#]۲ں @&׏=-]QY\. (4{=E@E| $O?}Ar;_\ѡg\` 7 @򠫋[{PVVHB?4J$ Mzv>Gѝ Z<;A{\EsG3tCv#;cc8;E2=ݩE, >ѷ]u#!ĿeDS5)m‘E- Fpse,nW O ίA˪hC|p2@ݦv%41Dd1 mf[F@2MVx_x[<2-Ix@B\)@4i9ݒ }p0_6k?ђ}㿖4kiL~polg$2ɂg}m ee]{% %U P4d0ڨ=I0C+TBVZXyRq@f6Ѡ!ړ}Ae,O ҟϸbJ9 R-tfC-.{-G}qC @|ip2L(jx/[>s>0MC,m &Ͱ5u*gv|8*)H=V C9x{8M̖-IS LO;0u9;>׍1fz0[z fcd17镹=`[ޫQ,_ùWoL,`Y&Lg H RqvPQmb!'^$uEi'ʘ+4xD8' <27'a~.X6T^ oΣ:b@ Z9tӲ@beByt:o)Ո*!T,7s~2du+u0v;.SH3/?toN{zު~p'ACϤ65٤ pbõmn ?H&8DVgX_So Eiv]88+EʬGLi0/g_J avaʼn 2`+أsp:Y˲8c]ș,d~-WѶS o5M(#@O3 ^2w X+\m?sAS)qvLL@ZwVC/f@su#tp+?;'amJժk^9tRI{PVx1s"~J  ,PVp/U|ȷV `U ;H~k2ߝ =˘#G6CƝ# l)|#|Pû5K%n>YRerCMqawǬ(u~ly_Oۀ~c?Ak :i?m ζk"`'@(2tf6s)qGQ Y|Q c/%,.k\[h/lS[:5 c{N &~f폜T`uA"=6ckFQ0JQ.8B~,T KС &p${ æA]07^M3V6 ,`B nGPs_yQE}vi`5X+4 ṏP-^ ƄAQ5f$lvFWHO;+u'[(81GܪQ]&>1;b=Ҧ:c|'xܷ.,(#.5[Qi54V80^ClPθ]>'^McPd᜷wlP+W-_UL!(JD)( #d-զau9#]$rYy59#P oM!niןm,wǀ.]RA$M ~蜹$?,ZK QYBІtƷJc`VGD7_<.cӯsʉk{\iJO3JveϽjμ}}JyiJYcSi]M%}BBd 4/YiNwYg4u\l׵I]?;q:AJQ$Yc9Ko@7.:bFNTOo< 4vrP;; B!j2%mNW}zn 6/1y8C7 O.&ۋD3FPjÙ"<͝=m-uzcXӗSuwu. (P.X^B}II/&6[v5Zn }Әi,qQsTH}rgtl::N xcl+2G.Bq jAg~X m@Q-&ɢ"ݾ(Rfn!FP0*g [J:JE9A(,E 0thkvJ=_w=s7(N(~>*d09AOF2&a vF3(@ 1RzDMM3`؟9B 4ݴaӍ'a7ԚEX9A:*HJ,M̶YK 6\ߑf{T$G?&8--6ڷdvo_aP<DZkyᷖ5@I^9[JB+کK]:܁Pڳ 4PaGC 3@. @Z@i>d`CC>Ȍo<:~Ѣ[ˏP Ww6~N;D>{A  qւ-~ws\OJ{}}"SYif:)W}q!ǚ<#F28$d:rf 6tbb" |<݋/,xM=Ͱ$ɨ|5 lvJ{.I7!G~=sD7&#,z @@*Z!= q{4{4n϶_6LⱣTGjH7%xgǝNnC _ LhlN1$Nq$R C+qc /4!=X$qB{t#"6N /5Kk{0e$!"m!xQ![̕ED椢+B9FDmGŽ0A;e =IbIAN[)1(K8h,ilE*_+a5JС4(~ml~㹱8]ζXQusn~\3!ƺoqIܓ CH9i}284u][aqt{/XW#/@` IKQLWNթ{7Iv,e\55u$%h` >3iJfsH7~L!V,7Q@"4M8G;鍷Ztq Gt#Ss,f;˫#vV}!ĪϱO;feP7 缐?~gw39a. UzCƝ>;UT=6tS PY;DG,xM3KKXU>evM'nςSwO@T YBGiĐ?+x/2{sAs_.Ѡ[`v#yY$0&- Z;M(8ĶmY|@,0T9wXA#W|Tj!\GY( j[Iiy*/vC#19-Z+XSi 4%^+4^}ۭx(Q`<|{rJ:UOw Nom*@f˅lxϑ݈~z(EsG  ' K )ǻ,3(wx /l@ɉ(%y= Ȓ0&I׬׫J8NBy J5߈}EZuVq g&1ɏ|$ok&+<0agwG93@`9CeI24o?h"k@6-'3_>BzU2(Nj@}l|Y.(ټnMaCaYpp D8ʉC=߿rG#XpOzIp.{> [p) @[Y!;r6.17`j&$l`jKh P5U 89~a¶AX\EMANࢦ.`.0g*7i?Ic vژ~wJK s [Q[pxFZSu8}/lnILijEw;}"(>BLm ui}V÷+1}zi jh;o]DäU.o % G3j(D1;j\sv{ }tHB"^%淓ѷDqTIЅp[zM I$&KyB#ErR{fD3X!ݹ2뿀t{(nVM =1_n 0xD:FX@uνDE~=Y -P? ry-j^y;'Y!NH=DiAf >@,ijZ@aozr7aMTUZyP $ YKt֩zU2HCV+V-,MOl)A[,  ?#/eYWB=F9ظA?rkm`.I}]W"oKrw:'{N.i i:D{8mEZ;@ ҕ葟L#GXX?cP˄J!Zol ZQ:"‚lRh%BCZxwvuHdвjT"<mA(CףࣥSs DV흽76l'q zc㥲cQѴ4d}&cd_>}.lq{&m@ "r#dDqֳíD0;pH7YA"TsXppwpn{[@@ߍWc#g|:-cU!nP4z~f ÓIY\  B<$DmuFn'Zʔ95>v> ?V  >-Q)CF3.%A񇑰lOq<`*-|khBQ#ev/FVJ[)-`s@e6(źc9 N\Mf ǦDS1q@`m8rjmndec+ nD̠K~,-Mg( 8bBhﵵ }{5N8*p]+q97e[_ liK*̧tϭDk{ >M=;':ubWЌ+[!4(ߔ>q$"9twZ2'$B SGx1͉2NRd5T2w rw4F$nrϏ`;$<fE>! f OS ͘€+W0זHZ드>p(!;dN14gcb0E,k"._>=ʀSHTu>M ( ĮX$ijA 6EZEȆ¯d͠?Ki\ p"?% [t ݰ'}WomЭ-v G'1 ͶO 3\Z8/s#7o#@M ]23ܸ&F}-٨%efX0>p͇떣3y)g3yި]Jq0յED d`7- Dv:ê\r@cb3|l߶m?k|;21Vo^eQ6O`#6@]K f@Eu#I6`~7#u!#8l' b)bCp!5l7n5Y#kG:T % +2z+GPn2|ؒ!?tA^$EE)|F$Cf(֠Xp*;OݝqtaqbE,KŀŏHH?S ?ӎȓAm ~no;RƑHu{'T>Sc1璶KX b!ʭޑpcWCxiWef<\)Zn5h|}ª=?dZ/^5|YE8vc(V і˝aHN A*3{hzU82_!D\+]Qq !~X/0.9``OfNn#(6Ut?u`bf-!*Ă iBZFc&şQ0 lр~yn )F,e@?~X`s?*TN(~@d?!V@CY?rlEz@zRy㧑[mv[Nv(ϯ.xӒh0R16߇y)VDI#.30^>[Iwch9>مV˿ʚ~7c8E-hrFW;ϝWUk"&"m^Sd$ yX&}ֹ@ݷ3n TAo!".ՃMߝ˺θ ̎۾JL;徵8K'&B@|N6r@DUBrwm[ hXD;˱M4X;JaD&bHo|׹UZjO9[Y+#ڬ}h RUl 3;  (VthI<7edEг]Ă5:qd-J /%Qmv…0wCJY{aC )VE݈H֡pp+vC[5l880 B[ZDl5-6øN}lM?UV)]! Hӭov7/ӎrye;cS&1C"A8E/3ݼ0|mVWYl[)ڢ0ɫyf[jMI^il9DڭE&(/}oLS=551E'ˎUurǒC&[76ʾ.!Q&Ig g`gc*ɘr5‹ 6*aj4:'"m[)ex`mp*jԡ/pf3EAgq|ə8}9x_6~aߟZ{MaaV>}y1) Z}"w=ІKj5OI/.Ԑ&M`yahf"a"3>|4ojHh֌޴>֠%%"QPZH!\ҴϋWW64ldi̩g KTFk"S`Ij" g$8r&kS'=يE ϡm:_y^݃٨z^33̺ \:T `K2Qu[,$[ O7J^B%T LnJl}3wH;+8fyDEQ*7ˏvB%%$h,Ln<|ڸ.$f&DǬjg0 (ViP0Si{ʫCk7NӊEmHdUA ^kcR"v|3B7/:Yjgh- ^ftóx54Jqn3[~$PS"fI"rF#\-/߫$f~pٞ$ zZ0ju·c~i9,[` LgGa!t8 H>6)ʺ7MPa9N/jAǕ{B8prD  ZdeY 7tz4J9WѶ>*+tk=z5Gy SqZȚ^?0NEeg062 pfy!Y9 @ΟXտdZ=N)3J:ʆ#GB`;ȜIY!oi9T IۙAIO{Vkc7.NRKs^Nr!Ĉiԗ|-Yә@F쵈>ZRͿng.9\6r٥ƀ<Ż :؋N Ϲ CynlX؋W7gLy}2<T|oFA-|>=k^a>#-rh`TG;jцǯo_,,ݜ`&wVvƜ@ZgY|z{IǍM`뚔`4&,[Ψ(6+k>UrfhJ$]$xkakC0{| =QQkb`ei  MtZV-W*[Ǔ@IQɝ~;jahP8n[U2Z;DoxPnP&Gql DdG 3yבM_JH*}f[alxju@y<;wNOln !1Vlܞ΢#!փD2&`7q_VyӶ7wES>ܼ!@8v[o>j!`C5 /7 ]њN^iM@9ssܩ.b0o`)4wY,31d!QBIJkBoƂ]ޥ87a}C|[Xp[{4/I0,t @>q|P' 5 j %6)Uݻl i(?D* 3d WYU>L/Bb<ʟl| IfD8ޗ-G_{;Ikp5uUd9wsg.jGN14g_tbq8@q@[in/o31njOB,R@lKef>AGBAwH8?UV7B23KIH mXhTxj{Ɛ89ۊSpBu<(sڐBgU΂XKq!mGl-Guc`6e>3d缻 pXiSGN1 6""0a`bAIwbAE$Y5Ejau9lǨ } D<7Dwp4M;[ ?&Ԁϡ@j֍/ŒYL=I S @V'X ia.XRJYu)Y;24D U ;_{żf ΝtpƋȧGյFе7zRބ"xJSL3< A᩠`R"KࣞsUg7J)CdRx!DŪexDjl6|n%nG|=@vl,tduT0e4_;}ߣopӆpwCe/G;6Pahzmh#yP2AuJrKh7?sFφU~a" }!1֮`⅊/_[5<˗KpYv*r xd ƍM^t@Pv?,1,(!3G%u3)ogJ *v;oFk6bXl,N IRB;8QmÝK.; %ҙȇ=*خ`@t+mD9IiKmK^ QOWh 鵶Be3.ȣ.o{> ԅ~ j]CCEʃ)(y^cWlgv\` < D`4)Ín^.0DnlV{GGb%S?[~c Դ x>d23:kIF<"ON;$Cv!?D9=L\$@@Zg(ᆼ=;-vV2 zf_>4ƪ?7ԾYB#(t7fĿe3hD,bL {HdqcuU `5 c[/Fg۟d7})sٮV!'>G! Im!%ADm*g0%5Hkwi<=?\XVe`pʤ*9 ټIޣRjT AE$W&07:H -cWԝҖYFW{PuHf ){,9o锍A]>7&&pVyņ._'OY߫YyU6SXY3\;/ZUFc7GV<<ɷՐ>_;_:'Ɩua\$e+;J춗n!zFeTDMV%dH ̚LBƜ[5[ 0vDpf"Ae[]&Xk;swad!r,3lWEgbBNu6R:W>㫙 yME T@ P :QV4wlo,sI ߻-k"_YS$fvP_f}Y*mϛly!C:T6Ɩ>uP25&<G\o#(#M3Z/^xC{ۃk"^@GrYX[q( Ya g׀ QG,]88z⷗|nz)׶ssU,Gir@:<_ZFqfn\2)2@[,c^VYQ?AOu6K`#푏Aw ݌-asB9(ۼ@qM29eL2I~+b#t}Z= m#a:wf!U/Pc2U~>n66o*`Em IY4sɂp(JtE8ArGj?\!n/u6˽-:q]TW η}@a|I ء,GqI|q4P!xs F H.CGmJ{ly] 9:]꾻5cc5h-5󛡱p!dpY+h;. ᵈU!4{<^xͫ:vuL`%dNz]w[9A¼#mX s a=giYH_ϿCC 4D>S 齡y;*,PʪIчm3м \L[b|ޡ藍Zݺmo~y'y^~(2 7eH3Р@mBGK_3`'_ ɘ oWv彳GH!!v )<@ K{(A-(7Tr0xX.Ne%x~^ғ+hRvōL sUcl qS:FdPlej688n6jqW&#mu͎- z [H$H|NaB68T񐃈[E쳊oĊVd"c䋆M@1I/TQbJw?mZ]l);1Lp@Y.CQ6՞_ r eo6P}$2 eP|q[ȝn2i@%ۧ#9AT8h2&Jngl۾ &w =lyaX ).rs7* ܄hP~#Gm/;g"ZГ=;QiͼVFކYK#BOMdqlj6gx!?ZX0<+Ʊ\Qp)>!@cUt6-N m@.bb.jt1U@`ME@wrS A ́Dbf6@^"jZ\CHҽv*; /QxyUvp֕߯|{T)DV\V㶶 6jGD2"ܵ F ^-2lnK HYBnRoF-1:5[$ `vYn*Fc% B2kf݁b@NS6wԀPrϘ>tn͟;mTfy) eAi Fڡ+5F# éh"z$t4 -֗fÍ"-}gj38 鶨V{[$pCH" n V8҂k1ZA:e7, M'd M^:nՙ#" Gyk pHb6d`@{h\cSڶ<9qxκZyBp4;bYC\q`8jË$AgGCn!b6 oOƆF}XqU Ʀ@Dm,sK/"%jRH)İ62DZj#%%jK;Azxf7r}<3e5ZX4nٞ3dgjlثn- پ$ tZDhȊwD J5?d8HPX*9 ?+5.\Sδq*p\.a$ MdW4 xg ?:d;x] v=yIQK}F(}uU6j y$hn ~rҴm7Ԯ9ۋqS"z|,~G)gK!xN4C?V}hH*OH9~%!?m+ȄV eN?eĵ}^M`}R6`mU* cNK06b$" #^UxH[7xçr5 [$AbYR L[qA2&Pe3*} De #s6U1 [ȁNbi5 FdӢ)|q`b@Ψdj=/gC: z }0 qXBqp. |_~]M(1^LLH@<9$6LR{H;5C [|BfP{z >Ҏ)h-;C9&>"O]vvvuNIQ` ` |qSFþ?қd37pܼ߯lR#੄t5hgᥧg>?PBbi_q%uW~|U=*PGjZy_F dbWcT&,8J'C߱g ͦUb)qPhDaBri8>y& e_*s!n@WC6t\v9hi(dŠjN"zc*ƴ>m!8qub@O1Nˈo׬xN@h>u0NE*M Yh'\c~*z st K$R # _,RX@>nlCQʥY ;ţ2(6~5Fzx|]M@XFBg N:2ȡ6YܗVi@n{ 3f7V M~nÂY8L~tj)7AC59:O{$81V`nAK lҒ9 { X\4Ӂ:8fL[o@6xg=Cw)"Rw;Cnev\0i$0}AoZ}0sˈA۝\Mm>IV4w%@ W JQqD9 !P\ϟCO &ٸUC("3"P[zzy;G8O1*ȉYl"[KnjlSd!ؖ;[U"gȤS*euVSh2/t1/7c<^NJ` >>^u2wD Qh1͆TI,MAՒ6ZF0 _] & 5=jE2Cw@}4 7bl˜?}.dz6Ȱ&Mf<o$d7z H9aY1EXj=[o3gbſjv+7GJ?8Nv^dPo FϼnY-ٗpyj(qōqoCHR& $؞~6쾘ឥw[P)\UU&$ s)A&M\l!_akWtt[F(X^|V*c6|azc Lmjtk:KV04>tRB1RC3T(|Bݱ&tys;/$pp Hk?Hu6&[7q -xz0/*OeA)[;=рΊ)[(<~MBsG"px,#8`8nMۢMC*KbШ-u~*}уa}bd ?$t)"F<sz}sآʇ[Ae٣YHÿqچs"CXvm4vϒ/1ТFKcO7_G+nd`bF66Lcg1˨$\ZC;0;TG pgn~yc<6vf~,- ,G`Y@/[X#hc"!_a?Gk#=[q\? 80T.!xt) ?c!qmr4 ):_~f<wqpt͈GX5MKW b59X@b켙>tީTUBi*k9^BF ZMzX:LH -7V޷b& 5fB#js bEUc@#[J~~$#\[~2GTM^ vgE"878!DA; -,_ΰi;~[)FE߻8ڛ"ƾ"/@baP6#D =C!$h mD8@|O-Ԍ3 av#E&I o8u"b0N}u{UDhĪ8ۉoϛk)U(B|%c;V֥R ||4t>F6m! XRAF\%ݍo-@4ŸxXNٹUIZW፠?hfo#dqCP z(1$䏬I+,13;~pyɻKJ-ۑ>sv U%xrLƦ<8׿0&̔:Ɖ{rrf~b1h_}a5-&s-j?JeYR?k_Cz% i\E8Bϛ}_ak +4b!U&g`"8ޞB3gxXqzFE\Q-3im޾+awVɮ+H+яIpW9N\f׹Jtƌu92}ZdVɥ3{_ٔĨ<}6=? !l.\\۽>NPɻwӴvl} W ~uOs:VΨ:3tg.ףzEҎ/V(W\OEXd^יGYCcf5"Kw"t`(MRA) iY!a(?]xAU1CM3* (-D ]G}:Z 6l0@<@ C?o0宎EXKͬl:<Ǟ :ۡ=_\{D+~\IN,@Mާ >+a cNq(AP0_:tA%˰l(} "#dnb xt|+8=:g9"ߎjq!'!z-BEbha9rXn79ϥ%|G[{l!E!|%e?.I:)1 p@_!o~oO{,j#ٗ=~6%]߿^y ϊ0GQ0g Cgi}yc{xl=<TAbly?zdC' 2 !0P~{P44#Kf+wD{rGsrhj* '՟^HQl BP #pO9:6L~w'."51*z=-"^hw|WU2Z`Hل*|2WDzrAQu_/j;Jt2MWf0kǨOn7o`xjǧw:z`"ml/FVXy?!>q| __."~}NfutΩc+%v+wGk=?PNP< nuŘ]~ y6KDp}]"vѿyTlh/՛˗egH/lJ&bBͺ=}̵mgo2nGӞ.nJ~obY}sY?o 8!S*u )zЕν·8\-Ge@Sz RieP\1z|=}hWY0`AG"潿ڕ,UOR,HRAņ;cG og?~\|م'[y4Qa֟2[A(Z7񪞰B zءࡒ֍"?y>B6!c"-s =Za쳈R~CRʯ/|{B 9DRkO+e[L(8F=5̘G}AG(&Јy]}*-$@( @J8(:P:\-r :ZவF@HW4m}7x_>?5 ?e^qVCpqyz}D{f=B{팚]+iNNAԓt:8(Pzlcʾ^?Ovu_6gɏ3wKe=^=X-Y= 0,(dFWk~<>L/+cc'^N>~kxjMգ[}y;막ps?tL}}oҞ›!ނ7o$Fdx`fYi|6vn}Vb׳6kD݄oq%XdyP+d9{wG\>#~6#ў,*{0$ TQ#X` Bƻ|kY̻۲˟i"^ȉ-ZT;_5~Q]= 1C$>^a?kzg-at~4h?[o$%l0"h*UW r03|+zv:,Va?Fk *T(0vRwgNo2N3ҮGY=I'J,4(QsẲEV[qwOD!j4 T \O郰_G[>.^D(>fG'-3rqi=.O;ފ}u+h2N~h KufMmM<6{!w-!Hd{+N Xmء K|AUa{ǀ B9#ݯ)EkzIQ<1PIoDz*" HpoD:nL` 7L:i kG'3 b5Nb8jC~lR.H3KԱ( ?ag}mXFa*Fb'\^0k?)N2f >'[a־k~*>G7*vPs'W- 9r nXl7a:Xm|dqgݞq(7GiEH V &(Z""e(u)"h"<, ݆ .u.aq0h% Ԅ|`` WdW"12*:(2LQ̌|j`(8a݉`?qKt"o*)%M8ŷK4RԐՀ^ &@ʤJ/am|$vn.~TQwl `eYߩFWoəoӞd}A1nVWS W~zv ym׼_DDa.&҃ 0&fE(9e EMv*bd L8j0_0Dl⏻h{Q#r K i 靑P_ϴ_O;+n6~JVwy'3߉۳ [5 B'qD":pgafpHbsBY A`.K3ݗ6,3_d £:6W+̃Ih &wCe˿ڧSȁRW,Kc7>oȨc@!OC(EdMewK*߲ᾞ i~ <4;^ojp-^{\+By\Qbk5!Ԩ7@7).4 (v,*Y9H"w־u8If +Z=#06^[k/˦qo@91D(5; Jwu^6e$z7< yEmSłU`(fȂh~]V8^Ё`>^D PQ>B`UFKEO+4Q,$ `b#qeUl,iP6%HDWx Hd}~|VYǀGY۾ 9bH"-~uלv_M}r>[ݵD:G ɟ764o.D_4EӀj_rf\߯lg:a[LQC,5rPd]1p$̀Z5H۩( c:yO+%0u .@=E/%z DŒɥ)`짷ez\&<ҽ"6wkɧn^aQs.B:튍 gGL\"4E r AhJ~q)I_~ ,أm ,f{Qoe@ 3PY_~S{> ky-m}9S,){dwqCy~A00VmEbi'g`+_CƏX-Cq=v!?7D\EPl3/SiFOeC-r}o!rl"+ l*N{â#uI',JkGY<#P< _{~[q›7 ōNf?no"̶J05_b*H7c>12\:nx!pAH34NJIc/R@>9Lvu4Bꆫ7KW~,KX VW:K:#j◳(j9}S(zǵjmJ~zYdP4 D`{DGm3&bF$?G8.*dK^E]vm`kkmРHt"ԉ1Y _FRT:cK_|>3- fUVef+8aj[zUV4'[A춺*krxU{C"6U/?ⳤx] #t1\i+./mx>8Lv?\}J!e-jmtL޿K͆+tV`s?nu>/=3ӏ+w8!$B~ϲXl)pWb3f[XM:9l1ۊ/RjwkوQ\]}JGvm8U0QWsXz'LV6 jq#sяvVo7^]98+X"(I|#$6:襌% v/͍¦$#& |d>$OK镞: zjKjٓ;^BZ\Q"Xj'ae]d#ӳ,sj (nAx Xz M;B!kv#MсID8|Os98NgWy!n.60l|fݶ @7m~̸^;p񐖋?KĻ`$?n Ps~Kcbҁ~A<܅ujOrcrV _uΙ|iHMgKB $S.M_(#;HTNmYgӋ%)վD,_|Kmx")Ke?mc)0;ɁϞQ$bSlO} ~|YUj})*DPQ-Z x9|X.;fv*)UaGju=bwG/hzɁCjمl7z]Qo$97~ޙG ?O* > TB `EВb$ҬNtd֙hpf!" d|}^=IS8r,M'4s2D }w#Cӎɋ@LC:CSM#{~ow+h\$v3Psz '! k(V\lcp%Wf땖:k<1?}07Yt.,g_y{|gA+p=wZqͽ~^ mT&:EHzlY?0 @s>չmht%I?NR$%ЈIʭ~.&܂?Ĝ"h~Ʒu Vvf~|м϶#1ݍ,νFwN0X/V34+ DTx߂ֿA;,FpIh2?'Oq5}>(,\:go<&cd\CvaJ$i'm^hE`yu>+/GIls@t!={A\G VCl W:'aBNpoy /mB}7:.!~p@qMFX}TaNnG^|<( -=\A\PN񿶚_HHbF[k%VV`;]6Fܹ?x'vׯ[Z`Vu+HtCzt 8ߟO'| 79`LI$ځ"i8ɋo?d ѯ<ǵVT(y>!6)*\wZ8K_ףk9XKy^~KD?Ł$dp|뙮x }س5bMÜU/sK_`.+\%<ږʛ)S&ۓ[xCtC@]y,}ϟ#JYǑ0W}lN>߾9/]U!` lI@)BU`__u=.xGpDox]WH#Xz1Ǖu[m\~'~OGX@?`TPg%?5AÆiH@v`Ǫ;um0Mk6LM}mm5Yr^D7ܿ `m.1LB(| ;B@r2jTq*駗THm}g!˕Aݧ8sT4T'/O~Rܚ\}Aр#,M<f J;z SMaL e<KTY$Z)|] k\%:$]-u!?RE4}W;H{*-.~Rjg[_rliW*#Mΐn7o\]S),mWQ}M჆*t $_J 6i'#jN/^ovVs |~-Ep{֪0ʷqQBN6|yLPN{ïHQ&8*Vz#ˆd D1dUЇP ]6 =zXx}ђ50K:!눕8ivh1^4 mrtB7ۂ΃|pvW߇lN3[4N<Lo(6{ڛ:!s9bKZJrÏGt~)LVHcvDՆ`p 6?@Hl'~na] 'i8qa/9穮2 uܷe ii( /j%t,׫^e}ԏˆHl[HE^{g~~Z]Ϙ`(|" Owino&.Z(5}#:ku^2j(#d #tF,

koיyp4!v2w'< puhxā='g@g;v\0HgM-`r!O`;nbE[;7e>_]Al9-ZeeM>2uq+n9V37"ebQ J >9Rj!he Bp71F;ۿu6Y]Շu?ۢc3ˤ8pZ*ɞf<9十( Cа\biڔ*H+s.uhx۳´_)ܺoaUQt0" r9Iߜ$ gR& Lz$̫mÚ9O.ߐDQ9FS>uMzqݚQT;:u|aݪ4cv平L{?tee 뇔%3q6ضYLWs?lϧ Ne q6NXkFjez ^[oqg7jһ?+ָwhS] wH3,n1g<4Z,66жSgmZc16]67),Z^E`Km*¤xX`PQo<$`Eףk^_(E^H0M`JaH(m409hf SO #̂M_ K@#?OOUY_ߩ^O-  raO_Bj~B)d( 66>hL+UW뿧8 \6i>PQbCYُ-))|,YΉk>\|mVa짍X1 ҫϊ 3;j듻>*>;zar^|GrˊGf:P'Ob}R~59wTdo[iW | jќH Z~t\M*@>͇s4D!su[8퇛+FNZ5SSu@N˨P[y3=ؐ$ ##u ~ +  Y|):h[ģT cjH@$;5WCGS)pW9:~gY1$-C34oE q6 @t!\@9:|_@2# BW KY$1E[vF*)b>P6=d'V+c* b{zxW#=t) Aabx&B."T~QB2s zdz|:41\ayy K[KĄ <}.@b^A * G ,wHZB\&e=?AgH_~-@ bhӠ3x2)-PI - -z#qݰ[Kp_6FdRp6Vd@yTIxej0wG6ShÙxȨ0(d(d(*(j(j)*DE*v{W?էi̝~?ww? `;UR~Wn២wg+` {$!r|=t@8gO_&uNOLK^GIžk ͉3!⽐v(<#1w÷X IZ7-B(Bod ˢ,P&olDfA nh$xI AH0@PT34QUT4)C@TT4 4%% fӳQ$$$CCCC-JR+ ,EdM'H$@RHD/$$! ) B) Bb"jbQ>|1fuԭܘ$Grn YW9|jnTE]h|4Aj탂I üR=aRJӬۑb9Pu>g馢 )w0ЃLnu( j:s-ċL14w#s9hjN!A!C-([~AМ}\"Cd!b^@,8-֜Ze|@1>c^}pu_I$g`??A+HT{o4 S"p_跪~ 41εýUoX?BsQ2N믲pK=~ZfKZ0&]={dZPr#qr{gѻ.D̀flȚ\;IcȓY- rHח9X&H\mݰ ę}^sdhD:מN͖B{߁M! o<>LXKS^Ej` X_hP=+- )ܟX}Bo~cY!pi:: ')ގ;̤) ņ Kb"FV]f#ȼ" = ǂi~_g~<&Л.yZ|䰘` e~OǜU$%;^fM"B IODEB%D(\ȑi?$q"ЈP-)J2d0M<SE\*"&RL.B+OZD)@)L E_ڪ}D U҄EU&uI }Ԧ,MMP-PЎ( #1PL3PX357wǟoP 㘥Q30fX8R=] ֽΓH:`7}I$Qh}W koG/Ca$/!Lz;T D}UO V;Oh, 0f<śK'H2AS $5 ,gK9{39eӑbdl$:X֤۶w8e/l\j/?NԾ"7/@Zv}k\ETIZ&6B=7 ɩ8y3@d ~d2!) h[Isrۈe:*h|- ($1QGgGį@ $g6)D wQK0oMb`dX"{5r55NzqpX 3Z Od$ H~4٤ebRCr;s~3HH`_ۧ%֫!L!T=$#&k|ho=\(.}n4!ZSK~-+>S末WDMgf89ҋPRP4'XTr ٞog>Ual8` nԭL 3yK~<~iL7"ɭ+DiCVf ^,Vy@7 }iqA+< XTRKZ'"tLw!WX/zTcccb0L`>R&G"\_p 9=h" &"ĄcA@/LkƣfsU䪐&ɜe)1VeAjN4t *d,ҟ$b=Tq ( zd@ ]>ќwY+Cg^n &}iq.quVv05k7oW{SphAR}s~sq3?%B&- ~~\IWGJSwodt[)񖎇MM̴ta/nbmzZ9kw5]iwBX_c16KaX|Է_t{G˹g?hQ8%;?j m{NXv;y?lzjJЭ{L@;Q$V fiD]qJ(N\o5&ΰ1MϨK23I  KLOע4$[@D/jGT7hס/c=Ӟn{GB{~(ga,_a7@ZߘHK!w?yRBN8A#X,݈jD@{>"I"_nIs٧} ˬxq텑 H_05!؏ߋQiLGb8@$,nZuo3ܜtٿKՇRF%݃{Or ]oKWͺ IC#&KQ8a xp*M:v ]9uFp @  fˍur(;;!y;.hmj҉"}vp~p N33?N6$r6BscfIJGk[ Cl[)U J).2:Ԫ p Vܳn=etKVLƀA,6,M-kg(ua Acד>rzxka=l,Gȣ`ܜy]Ƙ60&WR_ W-u{cԟ\X(v\"WʨP>`@@WeACw%cr̘;ĆFL;qHdF#yƒɐ@(":cló|z?w<<^9z4+0J~Sa \;%.S=Dq 5?jհ#ˏOll&A z5\Yj[2#|V78iuq >̀"*IFGw(!p^Vmir.qx.ݧ:MEJR, PW>#հR/q1G*۟ QPbUqsc;K9~YyCCd! P q\?,kƴ(u,ХXdCR*Tr&3&:Y }< _~sCǕ?sc,{-,u QNu@"00ƿ5p3 z}t+qr11njFN6~oo+ܮqMsҀ@Q=!xѭx^gG-Ǽf%"a&5Hu4aن8OM> #F9yU{@dB9tڧ6R ?2@k~Uԯ?@#76.qf mN ?3XH3H[ <\m\@(?,ނW\F(-_ G>{zuMeڵ )JutNG'sh)E j~ Z^;êUp\i_`T*B&8q>l1V`b`nP| YK! }+h…ID$%7c+o\k0K0bS챉!TTﱼ!SOf Npl CyCB?VH NQVC|}