logaricheck-0.6.1/ChangeLog0000644000000000000000000000127711764403305013703 0ustar 000000000000000.6.0 20100713 Guillaume Pratte - Removed unnecessary code 0.6.0 20100628 Michael Jeanson - Merge plugin in 1 file - Renammed plugin to check_logaricheck - Removed gettext support 0.5.4 20100625 Michael Jeanson - Return succes when no swap is enabled 0.5.3.1 20100625 Michael Jeanson - Use default value when missing in config file 0.5.3 20100623 Michael Jeanson - Changed file encoding to utf-8 - Added support for disk inodes - Better defaults values for the print function - Reorganise source tree 0.5.2 Guillaume Pratte - Firt public release? logaricheck-0.6.1/README0000644000000000000000000000000511764403305012775 0ustar 00000000000000TODO logaricheck-0.6.1/conf/0000755000000000000000000000000011764403305013047 5ustar 00000000000000logaricheck-0.6.1/doc/0000755000000000000000000000000011764403305012667 5ustar 00000000000000logaricheck-0.6.1/setup.py0000644000000000000000000000324011764403305013633 0ustar 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Logaricheck - a tool to check disk, memory and swap usage with intelligent thresolds. # # Copyright (C) 2006-2010 Révolution Linux (http://www.revolutionlinux.com) # (C) 2006-2010 Guillaume Pratte # (C) 2010 Michael Jeanson # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # Minimal setup.py file for Debian packaging. import os from distutils.core import setup nagios_plugins_dir = '/usr/lib/nagios/plugins' conf_dir = '/etc/logaricheck' data_files_list = [] data_files_list.append((nagios_plugins_dir, ["src/check_logaricheck"])) data_files_list.append((conf_dir, ["conf/logaricheck.conf"])) setup(name='logaricheck', version='0.6.1', data_files = data_files_list ) # Renders the script executable for the Debian package. try: os.chmod("debian/logaricheck" + nagios_plugins_dir + "/check_logaricheck", 0755) except: pass logaricheck-0.6.1/src/0000755000000000000000000000000011764403305012711 5ustar 00000000000000logaricheck-0.6.1/conf/logaricheck.conf0000644000000000000000000000137511764403305016177 0ustar 00000000000000; A greater value for warning and critical means the software will be more "sensitive", ; i.e. will trigger an alarm sooner. ; "agressivity" changes the shape of the function used to calculate the thresolds ; TIP: use "check_logaricheck print" to debug the values [memory] warning=250 critical=100 agressivity=2 display_unit=MB ;1024 ** 2 display_divider=1048576 [swap] warning=300 critical=150 agressivity=2 display_unit=MB ;1024 ** 2 display_divider=1048576 [disk] warning=150 critical=50 agressivity=2 display_unit=GB ;1024 ** 3 display_divider=1073741824 [disk_inode] warning=40 critical=25 agressivity=1 display_unit=M ;1000 ** 2 display_divider=1000000 [filesystem] ; These file system types will be ignored in the verification ignore_list=iso9660,tmpfs logaricheck-0.6.1/doc/agressivity.p0000644000000000000000000000071511764403305015424 0ustar 00000000000000#use gnuplot to execute this file set title "Changing the 'agressivity' parameter in logaricheck (sensibility = 100)" set xr [0:5000] set yr [0:100] set xlabel "Megabytes" set ylabel "Thresold in %" set label "agressivity = 1" at 2000, 33 set label "agressivity = 1.3" at 2000, 24 set label "agressivity = 2" at 2000, 12 set label "agressivity = 3" at 2000, 5 plot 100/(log10(x+10)**1), 100/(log10(x+10)**1.3), 100/(log10(x+10)**2), 100/(log10(x+10)**3) logaricheck-0.6.1/doc/agressivity.png0000644000000000000000000030311011764403305015744 0ustar 00000000000000PNG  IHDRsRGB pHYs  tIME/tEXtCommentCreated with GIMPW IDATxy@TU3#efhKJ(ibj"/.emZ`㚸K.$.k l3|ٜa3 w>ss?s^'OT#5! ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;l!11QRT7|N}=FFFy6;΃iTA8p@VGΚcv+zAS]ٶmJrrrJII!@-D0GNN΢E{VZ988h駟?~ff&![~nڴ?#UϘ1O61j pjǏC ' fUGӝ>}:..n„ ]vuss ׯ߿Fqssk߾)S[W^EEE  `3f̜9377׿#F裏6lHG}$3fLHHu |=Xlى'jK4hͪ×-[f^ٛ7o4(>>^y$77ȑ#G/V^ݭ[7+|vرm۶۷ٓ* *$\v-$$СC򿮮?]wUTTt…~W׮][jU ̙3mڴ6Rs挑v) FFFn:;;{͚5GׯUk׮;vLLL|wI ;Xyyy{>v?7nkN81k֬˗~ ݣ'=:hXkYjcǎkykܸqvڵk׼y͛7?S?L$$$4mT>>iҤ'Ι3 22رcj*cƌILL޸qܝ ֭[K/uSѸl222rϞ=R[ѱaÆz#|eFiH*rIJ#~7kݖ^ʧp'|RN*ܲeѣG˜W=̎mO&LuvvVTe7#z~B9;;2`H,` t:!D=kLqٳ',,EEEIIIIII˗/ߵk}Wj͛矆ܼy͛)))K. o*9SV7nܢE o߾}+WOI,2tЋ/*,^8**O?5ʙ]=,ƍ<{ ?ݻSN]ʕ+ Yf]nСCm۶mguqq#SգG~w/_>nܸrw[~-[?0|p.XNwnٲYfVo*'; yyy ܹsWKJJ/^謯SygcǎZڵk˗/wqqQzY/HDDDtԩS/ްa?ۑjŋgϞ B :T }ݖCBBu9$$ǧK,q̙3?cL=yy ;uԠA .s=anyCuuuOOO?xKkذafBVS֒6lulȑ}QQQ… +oѣՎ:thz~ذa={tuu=yE.\p9Gg?'~JJk4_~j{'d%qww۶m[RRWmԪkRbapxdɓ'}xxx;wnٲegΜtRpp޽{μnvUո" sz#GlRQϖ'|ʕ+**&&Ѷn*7՚[x)Xzdam!;cf@@@;xxx4kܹs7nHKKkѢʩO=TVaSeff*w\.\0Abb?\7n($˗/wB?1,e˖^z9:N߼ys;^xV}:_pĈ/VȐ?6lɒ%x$4cƌY`u?VZeff:99=쳆/{Ş={={VR>|]vFV=|iӦ7z[8;;\244.))߷o_Ο?kRcǎ988\xۻܸq{)((9wwEfL{W\Y)/HMMmٲ^ҥᐽJj폋˖-[ 憄$$$!&LPj,O%*0zA !|˖-o-BGi]˒Sؘ7>zmޟKNN~JJJ&o5'hҤ{'eC}-{!pssSbҥsΕΜ9H~q\bE lޫHgϞ)3gN!}ݷj*9䡒)rppرcǎh̫VY* 9nQ\WWRw;&_+5k/5jT/裏[M3FǘazxxTևyqP$%%MݿC Ny=ҥjժRv 6,{iz{t={켼Vl*'C=ԯ_wMn 0ǧԳu֕c._\vJOa_ܒxT.V+FSIG\~AVOn R7ooݺըQxPBmͤOף*jZ.a@Y@ W0  P1`S;w.{WnSfff\\ܶmے 罖.]d?!:uT ݺu3oQy9*:˙۴iS'"^v-33ZgjJl;w,evZhѬY+V3k׮e{|M%iӦ@gddi|Њkܸq/R^^^\\[An:S|dddhŌ=z̟?_qa9ZOE*_B遨,hʋO_L"3NɆjvU*2K룣gΜ)[[>U,QQZG6S}qP QBp#aܞr;'o,Q-V-,,,ʕ+ǎ[R?ocdrU{ID{ncnʲu֕_IӫWMLݿr+ #&:99YwĉϞ={n!Dn*Ij gƱئ}S*/^yeYǏk-\PΦpBsu[xc|X[_Ǝ;۴?oߪCq`|Aoʝg)[n۷ժjּyF !N8LgoT}\555500… f< ;Q9s*W9̾b[^A=䆜͛7˸u]#lIAEqqYhGwvQ|}}G)_xoX=On|N裏6U*UgR^UDZe_T* / ?hW=S8(}s,[!g ߸q\7ipس>+gYpLR KqmR6۷*m>'ϙ3;ٳggyVJ wޱzkTT|ڜ;wk׮6w#ju@@lXͼI-U%l߾}zlKe#G@)-[C2ׅV?pG"akm۶Bdff>s)w2aÆ)᙭qM4Bܹs׮]jƌ믿Zm/I>lTAAAxxLa@Iƍ6Gz'7|S~s]zQXXdɒjU)ݻwϛ7ܕssste WS7 / ^laMcu1bĉ{BW /bȍ7 $oƌn_OoUw ۲}[2駟]瞜,hݺ,oEGGˉ/I&]֠zkTT_}k&8|``*('eCf6>ݪzdRmE| vo>|aR^?iҤcǎ !ڴiSjPNsƪWo~``o .\pAe.Fc}עu:]>}^|@Fs٥Kik;E_TTTLLLNNNN"##u|E?;z[ngϞ}~ie1?f͚}ϟ?ݺu|ׯ…~mǎ'OQ՟yq믿^蠠;h=??ɓE߾}S7O׮]#iߤoj3fLLL2*zgϞ!C%99yׅ-ZL2Ŗ۷;m>ا֭[O>}%%% 뮻ӗ.]zi!klll5:n5jh/..5kڵk |~mӦMXoxsέS̙3/^k. 錄g}Գf6>ݪzdjm-v{ K.v`T<}ᆱ<Pǃ^ziwh۶[nf[Bݺu,Y"`JAIC5& IDATMHH7e ;ڿgϞy͛7eرqĉG]reqq7|#gė|}}~i͏?/...^hѢEBCC?ySVuHL{kv_ʝ${HNNz_~YvZ̡^]գ?e3 om۶m۶q@o^_RR"]n¤:Oʖ{CB@@ȑ# gT˖-i}Sؘݖ݊VovqqMJԤI5kYժjOnݺ^|rFFƧ~Zj+~fW-+dLLL:uO~e{ᇍ,Cu111qyy-Ob[}^¬>}zSRR 1bDO?4pm۶̝;ن Z]ve_Bپ4lؐ;2`H,`'')S\|y<̃>V֭ۼy~z.]={v p+VXbE=. te޼yGmڴiUGELJxzzGqqq6l͕TI@@o6jԨVZZ'~Euupppww} .CX=l){ȑ#3f0`@˖-իVի}71u# 8EɌԘIuW^ʽIj'N1bLLѣG5kfZڷ;m>سSN<򈼆zxxtuΜ9gΜh&ZfݺuKIIY`A޽:u4iҤW^~CcŃ6mڇ~(믿LZ^B\|yΝ2VE#Zl+KpwwߺuڵkCBB5j9sFY_ŠG!ԩSPېP˗믲?ĉBg}ӳ 22?B%4:nڴiDK$HPPP~P۰Ҏ;OwWލ7?|4!Gy#Su>}W޸q'ݻ7hj-*(((..nĉm۶%&\j_~%>>^|WDH(Gqqq||\f͚[fϑ)Ê+//&,V-XXX5 .]:u "a~;.]RڶmQnv$|ʨ *#((hԩ?0hD{uGڰ. [ZV0*^,:v!av!av!av!av!av!av!av!av!av!av!av!av!av!av!agk:qqq&LڵJRT 0֯_߿oooF־})SdeeU]A،J[6lزe>޿ 6T^͛ /իuf݂B'O$FƴZ]~}oo3gY0,,lΝ`ddd֭׬Ysȑ~߿Z`{$lϯqڵk׮]7oSOSp2㓐дiSI&N8gΜcǎj1$mڴI&*j6mz!/dN 8vbݺuaaabH,=j]vɤ[vJ%݄jz„ r;66*P-H ;vׯJBܹӰפP-H rԪ" <<<5k&qFZZP-H Ν2VxΖ@ aW3dff OOϊQvP- APPP 7+GyJْ+)*qw_P__)ɩ^z|nݢƂ P7`v5Ds=.]"tHRWӮl0%WPP?=XP7@lty*AH EEEV5[sp3sF'Aׯ_wqq zTo ĤvTf.] 陓#*wesoToed&<<~0`ˉzU^zyyyPke!QxUvT*>(KƑ#G2%޼ys D'aR$j=zȍM6͛z{*nf4V!`)2,5CݽGٽ{wgu:ݜ9sСCRzX]oÇ_pAyJO4رcB6mڄYI*B%,Ĥcvҥ (?ӧ}]񀀀|饗֯_{m>uk֬9|nݺK,)'S ;[t>b#J%~駁n۶-''gܹ6lpժUڵ+f4^AMˑaIݷnݺvڐF988gΜQ֗bA#B:XvֱcG*ٞygyƖoK/tB9,E(XXXB8b$`=a`12,!a+(Qi:0X KNԡC: P7@S^^Tz(B=KhbOD`f͚eddWz*JREFF񩝶mۦRRRR8l.$`:!ЫD~>5Nw鸸 &tMf `+_ͭ}SLʪB ? jǏC '|l^z+ƼxbbJ6mv6z` ,Cb*;×-[f^ٛ7o4(>>^y$77ȑ#G/V^ݭ[7TOB֭[he˖8qBV,#{رc۶m۷oٳgMy{`]X*8hN*oժdr~… ?Ӏ!Dfff~;fł7oڵKQRIIG}$ 5Ԓ>>Zidl]vQQn3===;;{q3vV~PUB*.A,@M7iҤ+WfggϜ9Ȃ߹s'))iܹF>tЄ :ZEEEB>jժ !ƎK˖q|̙kj̘1cڳgO"""Zlw^zԝ-|6,$`rHZ2&N3hР-ZT*ci|6mդIyJ_ !^S-8p"^5jˈ#:ud9ڵk/bNRRR^}UvV~P㐰5tBJ[T@0@k׮+W!ڵkTkZ-4 !bccRPQ\\e!Dhha#%%%11QV?--mĉ=gPPмynAl֭rttlذa^VZ% ֥9rd9xFQT/_.oݺ/… )G?iUTgϞRSS>C!D|||˖-Ǝ6uTX;[]WtP㐰5^x8`iǎr㩧*w~lΝ; ]P?2ح_^nfϞg8q"77Wfee%$$?LujGݧOڵkZ۷orlBBL)6n !|||c*B "^zYe sUt<&l6$`9DNJA&Aْ ۷o:uu:Çކ#99wB888Xbƍ4h[o!{ B?~|B77{.^xȐ!aaaNrrrpp;==cRbcce)S۷O>~Ç !WXQ~;B*֭+8p@^:~x__۷ޅ{ٳѣGr6 $`u+$vw-OOϊQvG^xQY6==]4'ę$&&D5x`ç4ŋ}}}6l0|vܹ27s:>bŊ I؍OF-[RZmxxxvvN BL:Ռދv^! ?͛Xݼ:>h޼ Ϟ=+s۷OJJ1cƯ0dȐWx 5 ;XNBh),"v*(w-He-)(uu۷rä7jkj4;>?*zYAe zzz:Nn||z5i$!ą F9uT9[ppɓ iaÆr#==Ho޼޽{,YeX1&O|̙gyf...&l^q$q%-((qLKIIBW9wrC*RSS:urrr*`nݾK{I6mZBB׭[n:!Wllᚼ:wJ^EQcccӴׯ+~wnnn{׬Y)ߣI;WaACVk꫄vտkf P;9;;% *>B$Qf}X!ĭ[Z*w[.]=PE4n5//Oƕ\"7rUnR|4͊+{7n!T*ҥK;BRcϘqJפ6bZ6ӀDVU;$6_U@4@);eff3L+vw[^P{J -UD&sLSrV^[nzLN 'dxcz$SݥKJv:thΝ>~С_~EohKiӦ#cH Nj[lidͤfa^ /FZHKKB5RTV紤vM4)UQJ#//dznݺʰP%_Q_Ӗa75>ƍS^ʕ+~[cǎ-YfɄG}dܥ"cH N%}3gyT&l6c^}N ߑZ8rH;\~]Nn82ׯ_߷o(>fFjjjE\rE^Aoooʒ)${IYd˅mڴiٲ[rY! )3)ja!vDn89 P;Cnlڴ6oެݻw7\삛6m*))M`'xd.S;4=BoJ⣔[ʍ+>Cie޽Nn||RRR^~e!UVXQN!رcyR#(.. ԙQ =l(@]p v޽bvȑi)N7g]jP -Zhݺu9_ꀀ!ği4m988.{ʟ6T\\<{l3|'TɂK.-[0+++66Nnd|nݺ5h ٝp޼y~~~111B^L 8~xaaAgb =l(}'ꋵDNo>| %~ҤIǎBi&,,򂅅[a>}ȍ^~ڵk *..3fLrru֥:jZ1iҤÇ>UPPm'a72>ǏB 8pԨQ^{_~{wUHEbbb@5t3N`9E4@Mwҥ (?ӧ}]񀀀R骗^ziwh۶[nf[%KdJ‚;vݾ*I؅ɔMBB³>k|Zn=}ɓ' 80$$$$$䮻JOO_tӧg_TTTLLLNNNN"##u|E?Bc0mgƍgѢEO-YGrJLLLpp2ΨҞ={&$$F{`]*9m`MZrjjDcӍ1bťqmVv Z̎Gx("x4irŲ9f͚ ! dɒRΚ5....M4YfMQjcǎ-!Dhh'|"_|E\|GrttܳgOc۵kWϞ=u:'Y&M$yVKd uՔVѬY { ɓ|"F 7$V]j3ww[]6$$QF|3g*eRANqF!DHHH%:!K/$|Ν;M}/QQQNz7yWWWZѵk9s9sâECBB<==j]wգG 6ݼ!G :T1eʔrle?322>{BQv!)ja@Yeʥ!b.銥*uN: !~J,..n޼ŋ~ڏ믿k.XQ]->K.;z( IKzr}X={VFy6lHMMZ… IHLLܷobԩ6T +eH]*%vzrvvrN7m4˗믲?ĉBg}NiSLBp9l= Z"B1D;Ug$jcڶm[kӦMO?tppp|zݸq˗/OKKBxxx;viӦ3>_~޽F9~ IDAT/ [bH,p$B(,$v%00Pk4r׭[gW:uҥ@VשSBVUiFb'q7NNNC~;.]RڶmQnpa@57kV_.=j377_|_$E'`M ;K59 `vBqa0 ;XN-DAq0 ;X{nl$`M*CQqq0 ;X>8jsH 7HnHɱY[*f:pZVG5|<##CRTHS6>ӶmT*SJJ 0$`MZ:6N>7a„]ɬր|[Ѹo~ʔ)YYYUWP`yZvz~Ȑ!#ӫWࢢW^yŘOLLTTӦMΖr%''ϟ?Ĉ;v{5j;w*;H`M%%[×-[f^ٛ7o4(>>^y$77ȑ#G/V^ݭ[7TOB֭[he˖8qBV,#{رc۶m۷oٳg zhӦM{Ϟ=|ĉOV*`]5)qy؆VUׯߪU+ H_{ ~B~;v̊7oܵkT/>Hj%a}|ZmaaaaaGk׮;vBLOOή?~܌-|Ƹ{3z訨W_} 4BϘ1^35P59kni ??I&\2555;;{̙F?Ν;>>>IIIs5jTttC&L (((t*/**BUV?^1vX^3gggggg\;̘1cڳgO"""Zlw^zԝ-|rŋ曙3gΛ7oÆ W\4i端JMM5)PUk U 62qĘAhBRYJ~'roڴJ5k"))I]!T&Md)ŗ_~)|6{ ODfJz~ԨQ...#Fԩak׮⋝:uJIIyW]\\L{[ewvvܹ|w^U*$ڵʕ+Bv~V>MBXToٲEjHIIILLBiii'N|===͛wb[n߿cÆ {j*a.ȑ#7췍5J|r?}-v.\xTHյO>BpLJ8{g} ![l7vشS"߹zåd8$`MNŚ" ;`v!7zrwׯ̦ܹpx (3F``hپ}ى'rssZmVVVBB믿TWYZv}矯]j_}qƧCr1ӬFp=zS!2w-?ϝ&L[o%$$!8УGSN}׍52{꒒"7]h@ BVW:`ϔK JUxxx4kLqƍ4 *FwwRn*7&}~+W .] .w~{ѢEBF3bĈ˗[nڴi>>>6lPzuU{؍Ott* w7~B~ PbȬW={VYC#--ܹsI;VCꫯd]v=z(wFjv&W9]S2 RxΖTȄ]߾}ԩ<>,6aŊ7o7nܠAz뭤!D^^ /`gBݻwC {w;J+M2e߾}˗/>\bŊIRWn]!āJ=un߾]. -((ݻwϞ==j6Θ1cƌSL=zC=/ !:t?W4xh@ BS8`233冧gE(O]vѣG/^(ʬ.g}LSRR";w\›9sf rqqYbE $FƧQF˖-STZ6<<<;;[Ӆgee !NjFE;uen޼)t|A,X~Yl߾}RRҌ3~׀!C\zդm9s[o|hѢ?I&?Á7n\Qr5 ;XV/Dy؉!W,򔲳%%ٽN:}5|<##CnxxxKh`?}SWl4q$"7!k͛.T#-((qLKIIBW9wrC*RSS:urrr*`nݾK{I6mZBB׭[n:!Wllᚼ:wʾV(jllsPsu"{5k233{4ig8y?6n8{ONN^rI0}b ?YDWūwQWy?s15/mXc=^PSkefYvY妶a|akw154B!b$wf37gpA߯3p>8E$///++K+"-\%wI'OT7tSmmZRRRqSNU9X:.5r݊dZren ED-_k"oHgZpR׬zj,KDDDDDѣsĉUVƎ1hkM~aИHÊ` BBBĴ3g89ӖkӦwt:]lll.7crX,u4 ())p8jZND(o 𒰻8,,o߾u45jT>}߷oEg1jStڵ#L Nu]tq1VFӾ}Yf9RD.\X[Εh\R/e+0BD,Rn4 k/֩SU{2Tũy9vQQQڵҥ{Z2f*=秕jɸzvwcisԩ'.Y&L|RRJؽ+]z*2δQ8jܘ ԔzG&D*@4!6|2f4HuYۧ}V}PPseh;;wn׮]RmXCZ3~;upرڜ:uJޮ:dXX:@թ7ݭ,[죏>]vED.]ZbgtJ͸+ ;x~*ՙ);T~i >3!"tެ?SeDSNjn`ꫯ E7nT={NtMݻiرKz|=Ol^jʕ+}||Dd„ ޼[h#Z*z׻b_Uh'M'\~1 8PM1̬SUwGU{ 7\~ykK2 jʞjվ3:w\u|ju:XPP|Ϟ=%aw1>ÇW z[n%22rΜ9"rx@LRsr;^1k,u}G<,x-ϫ1cH׮].cyyVc=rw{\Lb4Ed٫WvdZ}ÇHxxx}O?^/RYYȑ# $.gʔ)ǫO=԰aTǗ^z !5U&MԧO>}\ɓ'&a1 'N25@A&AHq h#GNz'RSSwؑwm3&<< %%Ee-[RZq˖-jW 8IOO\@xxsUVVĴl277wGŒl0;FFFN̰/((hƍWi۶`X,ݻw6mZvvvhU_LLL:y'D$??_%22yog[-^oժU~͛][J`0,Z(---&&&$$D׷l;\bźu늋UPo{mFR{nL>';p@5A履~JHH) ̚5kN.99ySN66Vs'Nf͚&{ァRWvްx[|G߾}w~A4̰v,? ?O(dzEdݺuǎkal hm/FUv3f JBvG8ńݐ!Cf%v̙3al?s󕕕?CD `6r|ӧHfDhbϵ*v846 X"++v:4))i[nMMM6m7߬׵jjF۾}{ZZdRa!DHY>|*G ]^^p8L&S#|;՚VRǎ׮]۾}9>^o߾eeezLJh Wv RGI0q__FK,ٲeKVVɓ'u:]hhm7zh??9>೜h4hBx(ZYF\``رcǎK(6a3V PO$i%]bꉄ<,8kt6; ;zbHJ,"KٳG;t:.!!TiӦM:ѣ  ;x]"b*4Thj#GXbҤI TY?O.>Bjj=f2{9}g6\GY`|f=cĈݻw'Ux|92C 4hЅ 򗿸:n̙j\YYu)SDGGm'((K.>g}f=2lrFBO >E"%%4Scƌ׷hiiiڙ̷~O>0`g;j֯_/"7p?СCz~ԩ:OG楗^ڲe˦M6ojԨI&=Z>}zĉjO4ѣ&Mk 裏qjj꯿!aO++ a:۶m;uꔈѣUvڜdtX_"9zhFFy矓v-00h4޺7s=FuC Yj8K7m/{L&N_[WTTt]= ^17bXn?\ӪFw߽ǎ&"iii]tYbń rrrf̘6pzpPۓ:tu]'"6-;;a@CS]Xpٲe:XcaÆl֭[QfUY.55UDGG͝;[ny7:T\\lΞ=OWl6#"rsH``x#F=|A<>s%>:.99YM>}]1cƈh\repptCj"##DdϞ=U.>}[6oެfƖu]޿-%%ܹsjl6֭a@3BJbTI{4wgΜQ!!!./Qٿ'j95'-s̩ɓ'ΗL&ŋo9|u뜯*#/ IDATʕ+.vӶm?Pl#G#G={VDf̘Qً^~C:֝;wV***R'vi:w`#G~w*wٳgϬYf}QQQ#F8}[/Ξ=ϪW^yf5v .X(W2u6vIk|95gСAVz"6M=d|gCDYA;~駕Rv"ҩS'5 Mʍ7,"_}bƍgϞɛnIuܽ{Z=;vxI]ѣG|I1ͫVZrL07!wd4VU%XzwWBLӟHddM>l v&ʺ0B%i)>o>~SO=5l0^nHMFFF@5?6m={nٲe˖n=B 6l?taѢEΗ-[qԩ9s 4H?2nHeΝ"b2bbb޺u^z%%%{kaԲرc^^^tE[7 (##Õbq-^x5?֭[Z̎Ǐx6mϵ%\D;h׮݉':v("=вe˪\MJJzVkm׮]JJJQl&L}TO>o7yO~~~DDٳgFΝ;m۶maaajӦ%("EEE$)++kӦMIII\\ڵkO>wv|%Æg?ZvoxEЄ(8tv1TsPPPƍW^Ӷm[`Xw>mڴ:anoذADbbb։O3zbZׯ߼y󲳳kK! EĄ-[y+VXn]qqj a->v}ԨQjύӧd&O 9ޑYf©B\4a@ṵ? ~>}HOc^,n-gϞ޽{ccchiZ;w|ĉ?k֬i{*zj +{w׮]gh䏖̰v ."~""R$RQALu4L/[رcM;lͶpB1Iصk̘1a@ aQHa R^NLJ 2l6_jnϜ9Ɩ?W?_YY:tHDミ/ f#ǧY>}_m˰CpEΟ' !;;p`0"bŊہڷo?tФoݺ555uڴi7|^תUٳg{O09>oiii&Ia@0xMg)4R -djogZҪ_رڵk۷o5۷L0lh*$9:TX("󍢣,Ye˖'Otn-..n~~~Ws|GDh42lh_k␋ "j8vرc 51$6PD(vh[,RVF4ExPpG<ƦH l:P$욙ÇO<--M;S\\o' j̅A fcS}뮻^ooZjfmݺUD RRR233Ϝ93lذݻwGFF^2|lvvéSz-u??<ӧ0 ''租~z7O|Wٺ:o^OLL|g͛WVVpC%EE"ypb a׮]dDwwusNK6^S|N&eee_2Ͱ3VHq1/H5%%%K.56AMm۶ԩS"ңGW}I&K,سg^w>t:]BBӦMt:ѣG64víުjᆱRٲe:XcaÆt:ٺup _RJb@dۏ9bŊI&/00Pe?sOXXd ٳϞ=pEdjy;#FtޝWi 2dРA.\_ʃgddt3gzÇq~\so۶mMvq k5QQQw^tرcO;_:p5>rV:vxœn$.ΰSGI,hƌ֯oQQҴ3řo'|2`vԨNë:NJث4~d^z-[lڴi̓n۵k'?ٹskϾnagk6>ؽ{7.99v]jUaaa@@|KTǎk{N:fǏH\b)gX\l68888,,,;;Ŏqqqj3g 6ljatm۶MD̺|WD$66V[D7U|l6j???oL~nSV|hѢe˖u|߯[n6vvuuڵ}AAA.\W:k֬~ۭa@B® ݳgOJJԩSwرcd4iRbbbXXX^gΜQ!!!=v_~h&4/^{m=zѹs>ExUrC~_>y8PerP;j.\ "sUV"2a^=zy%&&HQQQ@@7GGطoΝ;|i}ݬYƌVq_<999Gm۶[+V 8GiӦ"N8ot}м]s' U%;L6_:0͵=vIk\?vvE$@sΙ3g7pCCml6k?-9"":.))IcRљԮ]* ;"9(>Mx1AHp8Ə?nܸ޽{X셅)))u1LJeuP[at:غu2kQk{IRSSAttt=ܹs_|EfR9{lzzzzzzRRRJJ^f{-Z9w͛7oϞ=K~k̙?ٳgGm۶*I)Sy+?55_ȑ#/N4iܸqzRRٳ{ת/VK:z:qo&w:>ʑky!"/B#t:ݼyVZUZZ7Ж 99s&44ֹkӦM[RRc^Z%TeW@UjժcǎǏ/,,RQ%AAAU&RmܸQԘYۜ9s{9uyA>*[g2F=p@.^xݺu鿦 +2e֭[7oޜ>s̗_~YaU2ҡCpCj՘:}w}W^^S.vn5xd=zy56zZqſ___kۧj[\#88gϞ6mC Q;uꔓ#"rK}d;uT;wM6*ag%O>W =U?j:uꤚ9*QvCN/RDœ/sÇ׿`Xb߯]}W^YhQ@@#n:of_JEʕ+[h%aw1>m۶u:f9rdAAn9rZ9zƌ7k> v}ڴi;w^`ȑ#;ٳgVV֬Y⋨#F>}ڭ0o޼^x^6mڢEvسgϵ^[ۓq쐰kZnԮ5˫_6QO?g}mSED:)i!X++kƗQQ|||ZVZDl6zL4y ϯYF;p8T-Z$$$T2j(/ 2dHbb?3EdРAZtC1D_Dz_ݹs?|ٲeΫL{.;;{ݱc[]yR&LxWUBa@CIl__|,_\ïb_[nO;v쨲n7o:ț'ӗHWTk~W)PSѣG"ݻwmr]wݥTUr1E޽k[j7̜ͭ93==}޽k׮]v&''>}޽m;d4/si'.]\ KII9szn5B}~Æ s__~Çn mEv HC®y=zҥKEdɒ%=z0a՜Ç?1cƤk+t8Dm׮].5eӮ _"iْ\ fQtLQD򲲲͢A}N8jժ#F>lI! !::Z|xǖ,YӮ]}YF ={vOs8"2p@ O?U{eV_ND:up;o JK|TqFuгgOM7ݤ:޽[Vݎ;$ѣO>UV\GD&L͛;2ժ_+!6՞TUwCC9,rq)_+i)>oza 2駟V[%&&4eee#G,((𒰻)SSÆ S_z+dddT T#oa#>gϞ5;w>m۶ 3zbZׯ߼y󲳳kK! EĄ-[y+VXn]qqj a->v}ԨQjύӧd&O 9ޑYf©Bho>u_fh4h#sssk5 fi9%׸Qyo5)hoӻwoY~}lll-VkΝO8?y͚5M>{OeRV^aESx}ڵ+22r ђv3IFmQ dzEdݺuǎkal hmFUv3f0lh$Q""f)P TnȐ!fVv}̙0СC"r}xI09>Ej3\ < "#"eJ#3DvvHMMu Ȋ+zlh߾СC֯_uiӦ|jz]VfϞEo`7>oiii&Ia@04 >E"DEGG;jUԱcǵk׶oj۷oYY^aTHET]`3o8(::zɒ%[l:ydqqN Fw5ǧ|D4F#&Fq)( $8vرc 5P7 RVFHB("$"Evh6M'%$Q} (JHq1Qp ;4C'"A"Du$07TEDzJbCuq`A ":vh ְ$$Q߾.]bG@+|)p ;4r?2":v(߾EDLI,{H~jB:vh0r":v0\H"Rb)p ;4ؽevn aO *M.n"aOӉE""l:v4voEO<-HD$PVh _Ul6 vhKЋ*b\Efщ}Dm:!T<""$@aXWCCq"b3HQp ;xo_~"R$""ee$i߾6ÎXאCC*(VyB v4߾Df$U$i} >e:Jb\E \n։P *v4߾CW)/'0 aO3OD JvJb\E Ҥ9P<-"R_oaHء)XMvác ;WCCD0XW5@DJEHI,Hء.X(p ;4mU$"|D +HءC'"efJb\E E'"~vee$"*aW+$ED ¦ aT "FJb\E WD('~$5$DD,"@EvZ %C2.ΰRpI$"">" 5D\ ;4"jX 0t%$233njӹsgl6;w_69("|DD\RO͜9W^˖-;~xyyyyyǗ/_~Ϝ9iXDDD"RfJb\ҼvW~饗Dd_~eAAAAA_~9~xy饗V^k"""F1$;a7o<={… ZhѢE Ξ=[kb/1 %%ס;t萈>( IV$rs ۵kכox ,Y?OIJiIVIɞYKb  vk]O>mZcǎ=x߷oN:ƒ%InH9$HI/M8UV-:qDzzzzz'>VZM81[ڵׯ_` *[qof#/SRB H.EFFN00ڵŋ.]ڳgϐ!C Ø0aŠ+?>cG߷o9.ޒaӽ$ݤDp]%`7k,ISL7o^˕+:gΜiӦIzwr]RrK^/˞={ZhAICR?NH.ؙ tzJ:|s=gq1K ΒXqM'xH0$9k];k֬(r\ vT)!\W.5kL>pœ`IlH9Ks V\_.=F=tн{&$$$&&<쳣FsϕʹٳgiҤjXbV{k3/֭[j[h1iҤf[yUgS) &L0iҤ0W_}u„ e-aC Oŋʕu0))G]f/_~}SլY366VHH'L{I5\Obu!2bd-7a„zh[l9}իmvذae-[/^l׮݁$R\'NDGG_tl6[7l )000""QF/^\bݻtm۶B{P#s 1%`mjwfz7n|eݾe\Ι3ǬլYs5.q3f̨QfΜ{W)R$ap}nU,^xݺuZnaÆ\:Innn{Ǖm6۔)S j\"0ӧ8rB{秿@I6$)1<䏂kp8$0ϟU 7nh.% k׮]1l/^(|ڱ$(عYRǎׯ_ ׯ_o6~<;t0 I6l(H,W4_̰KK#`rn:u-j׮]``jRʃ>;++ cbbFs %%&&?~p(ydIJ)$(ع}5k7oNLLlgϞovĉ\1ryUV΅bmX p}VBN:e6=zj㮻X,SRR<ءC{+W.xt:w\<}/,%9PREbI,Qs =z\r|M˖-sΎ7C'N7nܹssN]y{{_9 v[I.III \ÕA̚5jKjJ… |[xf=ܹszP S= \Ve}m>@)nݺU_`*|||F@@@>}gϞ-[t<흙))--?ϛd^222$XB<͂t.EKÇW>l^NZt۹sw q\CJFfͮUjѢŞ={$;v,`PPPBBʕ+ya{rˍLIIܹ I+'HSgHy><<@UΫWNII$n;PvoVR>k]sN]t)`Z?.)66aÆy^9lv7* … *UZ|q*7w<خ݃M(#^!7PaNSN/`m/<. .J ]v=$yJ"nuTR ? vcǎfcךNk.Q^jժU۷7 О]$G$%'JQs 5kּ{$%&&.YQQQ{Ӯ]۷Vݻwoڴ)Uv}̙f'(&f5$W\KM֡Cjժyyy*50a9rdttrmO?Zqƙ}ݻ PNzmu?߸qcJ0 oڵk*U,ohh91Ea $?ɞ))&1\lƍƸq&O\6s yGyV>H IDATaP .6̙3fcȐ!$%FVFL]b vfz$D󗤀_e6IJN&0s]HH8w+ ɖa%I .V4hXj+ѬdHٙ1fHbU,uXO>ݺu4~_\ 9BII .V3 cٲe}=}tΝ{)F"K?ΰcI,@aϜ93t^p8Hs1$dșd?I,7B"-I~RJseO$ _Pv 4o#ŖIJexI,إ{%c$\κ>HlAE )$|PCb()*Q v(Vɹ.V XSbI,uPC3R$=ap}%wX0r9^yXxK$7;PRb!]b ;r$Y2%ezJRB;9@I)~$G]RVַ@I$ySRft$3P,$#;$)6VJd|dyKRZyxH֭Z(ءhKRNi),L` v(B$+_RRԶ$mFdˑmlg%&!Ҕ:`p\(ءh:?$7I]&̂ݹs' ; S%;_hdIjTC-;9lIŢ֭% vy`FW22=vGUBEFv\;~\R-9!11GV!C6o|o޼駟Zz葘`rZdl$)yeKKҶm J.6.;;۴iӜ9s *X *s=sݸqoddd.]l69.K),QJ vsݶmW_}M6y_yI[lq0T~ vxGֻwodr\le::Y2~?kSr2bjժ-lN?I lYa϶i#Ðͦ;@+إ;+>gΜɧ.=F]v|\Kb+URzb vvX|y>r~ظ;GXJM'L*.Vԩ٘8qΝ;}I&xI$(@R:sې(eg-Ǝ-)))~gnz%vҥ[6{MNN=fr\&7I6pœa{Z[N >YYY{w?j]hQ:uq$wP$%(!W:UΜѶmjْfIիצM\C7mԳgO\$GJOw.{>mڴ9|__DGG>}:99ϯz-[޽{׮]- -!22&))mI Ebt֭[n$Of|۴iGժU>ҕ~ dۧ0,כawȑ֭[G;mZn}Q\<$"I*)C\*WX :+egg+>>ڵkϝ;yܹk>#橳gb-II'[k\`lٲJ2 c}YN݃:u9|0$߿$0Αƾs݊+#""ӿm vK< IrK5%)͂ݙ3:v2 vw6Χ[={b)I>$[.;tE!!d4+؝={l4j(n9gϜ9CKwHT5;Y (2 v#W#n(N>sғf/ xr]*U?OUV%]<f<.i^.\жmM.V 3˧ۿoJaHW̰Tf~GMHҔ)M.Vٳ٘7oŋtҜr^^q$O$6g.Mi]bzIZZBPXGmذ$ѯ_G}opBvv ֯_c=v]R&M(:$)#C>򑔮XjЛoBPX}*T0\|(nݺ;w\jU~ׯko """֬Ycǎ:u"%&"le_oo=$-\2UWѹsΝ;’@JJRR:ToK;:XÍ;?MM]C%i\]D,@AEΐ/IJ,e='oo%$hbʎRR;x5jo~ӦMd]^omHYY]b ;S*_fRZe8`awygǏΛ7ԩS}I3@JM|T]bs-Ugj| +}fW^9|ܹ\=vAΟ?OKOyJY?5[OWv61emf6nqFIa,\0--m֭AAA.]pBr\ljd뭷-(\`gZ_|Ǐgff8qb̘19{šV\p8C=DKr$K_cwH|wȑhN&Tr#5UZMg2dʗWff T`(I~.;QUUkX??=$͙_%qՂ]FFƂ u0\ cQrX*O$ .j(b J,}{ꩧ꫓'Offf^y{fnڵ$]QKIq6̂ ĉlob J+ح[cǎ˵:L>bH=z4 .f~s]؝љ8ێ%sG㏄&.Vx?nN_ʕ+r]7Iq lܩ;䥛YkZPժ)5U>4 J +͝;7>>^Rpp׿\ݭGfcҥ8>RS<LNRZDȑD.Vc6Ə_|ku 7۷o'G:R-u33oq$i\EFlP:X~0;v̧mf6q qes߉}ڗĉjV 쒒Fʕsq8yJf.SoU.]c<b;oooO7=wqq@? QS5yߢF ͟/PT^yWb`q|眷ؙ3 33pZ&ѭ Һu4+s=fcɒ%9^lٲ\Q<%Mp\[8;Iӧ+$Dә3.+EDD?pyپ},0(&I18ŝQa<='oo_(+صhѢwޒl6[Νnjwޜvۻl6IO=TÆ q\ͭJڡsz4{$_7$E!!!Of$UZ3wm޼YHp1$?$]G>L*VR߾W^}U۷~\`y'x">zڰa .fIrwHcjU;Ig^=egO]HqsŇ_x}Ѐ777  IJO}ZKJU~SX}ӐMg_5y2y.čdƒغ[A$E+aMN;B\`gZ-Kζ( \NH2d+ah"i#C?)SHp.Vs8gj $kZIڡ7j^^|QB6Kp]rFVVsCRR8e^Ѕƾk=$ƌA:@ bG\EyͳknrsȱS;$it= 5;P¹X'0$IO$efq>P @R</移w,-RRoQ^]'K҆ zA%&2@b;Ǎ+gϞ]III;wW_9s&;;;99yǏ_w}WT|Nu?5c C[iS̰sUiii p8lݻw_f{>x77o.)>>K.111EjPn!#Fhl~EK( (ع_~رc+W>|x=̙aI5k}zHH\oJTGutk޽jZS6g(F\OFFSO=eۻtһw;oܸӒڵk;nn$;I/.NJ9ɮ vjdڳG͛OfPs=&M̙sׯ7?ptb 6~Oo)YdjT^JO+=n=,O6CժU2U[oIέjҮSL|RiBmڤK wݺuk;H?02 v7n4ƍkd  7vX*`իWxzz7 vzN=:~xIC iӦ ] )>>ryy]J\pRJ˗/}{on׼v_7JQ%`gjVh 5x>Pg+, ÇzR>SRRb͛7K:w\jH/^._uv۶mf#**<[v{}4r>LjRkd/P\`7h `jժ$91mڴ|m۶,u)`Jڽ{w.]… j׮]O+%8AĽ IDAT^wOjHE:0UF EFj:=ܹԩߟXO>ݺu4~_]o6<;Z,o0FNOKnLx@7x 6m` va,[o߾On޼ܹsO:eJw^uǵL5jydڵ9׶o\;{M6庳n9s~'=$"IJHNPQI34DC/T5l.\w I%`g\ŋ%9sfС5j԰ZƵ[qƙiӦϘ1C… ݊-lۮԡCz5y{+;[&fMΝc?]gXV\HJHH5k֠AƎk.I+VŠ{I$)+ #mFK\q^~Y'NhH*)I'V-~cRr vBB%|7]vRb ?~#Gr6(o]񄞨~GRVo UF BP@%-ุܼ5k>T:^?V>z'X)"rfһ*1Q4`ƍ3Z:DFPX"+9ހ!#d%\WW^S\&NTJO{vm 8G.رki`$If =4W/W_U\xC+*3S￯`͛ O̰ísC˯kE3:DK\_T\zK+KRdڵSf7@[tyӉ]uoӆ b< v%M78O.\NtM/m^XX*Uݮ+ա7֜9JNfPfQC $Cn!iF):uJ *4T~A*VOk&PQ-gn*rxz'gmSrwWf>@ܣڵ:r!@AbK3 = yI_c:Vcu]^]KRl^{M eK_:{@;&b/I>ْd<']Y&"V^zI?ݻ\YvvuO>QZ# ҊvI3zZ20͜ӧj\>>GU]lF ;1wIgҔ6[\-u%KoZH:bQR.CjU=VRFc 5 v@$ygy(r_ҿ4ՠ~~O~'5}5`vUzq}RSt4fVX$)1aFYeWGGzu}Ϛ:U-Z0Kգ*URZ ;1OIrm]4]WISG/hiL}ܔ>㏫reuyt4PC$o]^tLǾWj믚3G:jUFV65mc~Ӊ%;:YY7uyB۩7&[ժ2D~3g4t$kٰBg%(Z)Ivɚ۫O_EUt![WujP:xP7jmݪs甒Mi$Ii֭u=Qp(ءd$f+z}["Vka~':775kf4b$=۵evБ#۵ْTKjR͛Ϗp(ء]QFKN.U_ЌQEos]D$kvm߮[{22t>\.I6T˖]F 3؃7/888..f͚m)IhDxcv*\ ٣۵sud U˖jB-[*8(蟖ܡCNd'i+8Sd%b驻ZBO+W꥗Ա%)%E[ջjR~O>я?n'\H\\aaD3KP B E 5v@.һuQ}V.B^"TU$9'EG;'߯,]q6UXSaajPD@wٳgKj޼y׮]K?nO{.INNԭ[/a& v(bw uj&jz1=FKP__IRFTLQLPz3yzaC5kFԴ7V@Ysى'JzKq};REr۱^7j iVh%7W4HڻW11ڻW+1QQLWU&MԸ;W@qP´i$5nܸخ~XZ#G0@GEFvEljEZTM|^߻KȪ&MԤ|Rv;ۧCt$mެ͛/QÆjD Q#5h __ =ztɼ ^zXXXXXXڵWZ3@Y[h8?%IE}-nQ5ػ$77խu#:|XA>t$~Ek8jt(5jA1!@!-Q H)֭5x/mܨx[͘.Ir8U[PWUcppג6,<<<((= ^zu/ouVreZbx`ٲebӁ^?**<>n8Iˈ#6lm>zZj|so½9'a B׮][JJJJJJ.^v3f^Ʀz7ߌZn޼gϞ={lܸq…w}m۶M6LjsÇ^zUjxŋWZ5w܅ d2C Ν;yk׮-Xk3fXdIii-[BCCv۽{wNN)S({eo'|RVVnݺ7|l~ƍ _DDDDm;jfDv6<ǯxy+ Mxy{:uR*EEENڴiSnnuJeddd?cYYY;VP;wnժU?VqÇ3ʕ+F߃{0a8ψ#&LN8f͚ŋ[ZZΛwL"}ڵkhhZNKK;v؞={LFCK/-Y@LLLmKbZի)))BCCϟok_j+W7xs"""o چm_`/èf  ΟGJ \Au54iۣKtnnotZ]N2E:w'|2%%e?Į¸8?rHͲ ӆ~N:o߾l[n3jԨ~?*,,yyy6y7>} 2鐚z#G!::ʕ+x!=sZDDDDM5[}0+¬ؽ[a;`Ҏc))HIsHM%ǥwg*<ښWǏ7j׮]xb?z=ŋKiǿRaÆݻKSm,Yb6tҼ<˗/7NN:mڴ_~˖-[nhOOObvqzu ;u^}MʼnYBCCM6ZDDƍ\f`)Ϛ5ALHHha`GDDDtQ32-k&VC|[A5߂Gc~!!Ȼ~ZCgL.7v5x]KtbX ڣGDjQ/$`%44o&QyvӧGZ!wؽ _ӧ1115;i@w}{o*q*#- iiػ}o߾Үt1MСCwބ77ߜ={vYYYlllDDԾeQ^ ͑#GADDDt1g¶[N vlɻ |QyǻAz ۣo_ * Ody醙󑟏'8;;S'44Q۸q:.׮]]v:v ;wm!6<{/!??_v2,**jĉ&.....NP 8pС&S5¶o ::8SN9s~XZZiq """5?98jh4-J(bLَ1_ b,溱4llЫzQǕ+;ˆAUUzWaܙ;"35UڿAAAڵ+((ذaŋrh`cc /4spp Ϝ9s11`JJу/r"""Vҏk0m ,r bfGE.7Йhp/=ryyP]ldg DځN/dGMO>vc6-50N]B ݌ڊW^ye =gϞׯh4G9rH||FΎHMM]lٽS\2''gƍpT'Nl׮]@dd"##Ů.7!DEEgaܚBBB)"""{#P 8Xz6̍ظ+~-`;C-G@ݻf ß+Wp 22lwKi)ΟfiooHY5Jqqc<f:N'3!6._\ɥa MJJo>E@@@@@~aܹ_[oեK{oVXX-Xnأ>:|7._fڵ&MԈ]qٓѽc`GO +Cp^薱u4Ur??vYYĕ+DV퍜d8wΙ9Iױ#<=ѱ#<<Сd0;\~]̭ckCR%$$hZkGQӽ{w777nuvWo8z+##cɒ%UUU up /6lXSSSnZRRbcci&nnn"'i8mu=HHHPձ**??/l͵n vZG8 `(DE#Z m b,-@||`6=juGנ, : m//Ņ!dgg'6j/tɂ ֮]믛t5_l̙K.Du:u$6nha̙XBR6mZ֯ܵ)S̙RySꉫ_L+9@{k~> XJkXبv6XԦX[&5L\jظ~ݐtf(ss'\]cG8:<<<< @P?>***--mܸq;w kXlǫn˖-!!!}UTjʕ+޽{KKK?C騜9s|cƌ2dHnjuRRRLLoR3jԨC>|Xl߿|\sΔSN>>ƍ۱cwV IDATw6ꫯj_xѸW_e`GDDDYBԬfy_©Fa=lmk2O(.6w׮oIcj\k=\3A>Ol< 6Zɓ>)Sf͚eccSDZr<**_bEbb͛7U*U_~ӧ8qBtsssk߿3gnݺy'Ndfft:;;;///1cyzzJNڭ[{&&&?>++KV+JooA͘1#00 _O!!!jJ3fhIo-_<>>իj(z)ؽ /ZY}#ozz 18wǔT[3BQC-3|)>ұD V#3]W<\7װ83M~ٳl޼in#FHHH|򽯫KDDԺZ$_#涮:^/d$=iD TGQkqg6 crP[ᷭ^`ii9zh^v̙O?4:"""65?x;ɓ@Z?̉B!>?FdaoW4rsq㆙Fz"ss3loggooRCeeerwwwٳgKLk>3;ji 쨅t7 ֺHD" `b lxZH}BA^C=wxbCD{h;uɓǎ۽{w{{ӧO[?pB^fr Z?n۶ aÞ~i^"""65?[p;rr;a*>ǧa1_#~#6vGw@En. AؾyCaģ;;NNpvFvpr2|6VV՝t;wݲe7_dŊ+V>utt\j/ Q[(SScp8z>S_#S|Od߅"ͨO^|"IiɧNNP8:r="""zZ,K+)223q Z訧iCYq01#17"ڦNwG'B=:7;,(@A+JGG8:ގD[so#QʩZ-~:#w[ d虘 <[JD5~YwYUu;3['"++jC_aJ{{ JX]DDDDD51gСp4ц ;xE1>?ù'DB`7yu`OGqaب9Jc6:PטJeG][h Eu'Z+FhcO:[x71>6%J.7~Jaf[VCFa!j9[>ЮaQTBJ%R‚Z9vF//df_^`' 8 >'yYj"z8~wlX'Fa!ʠV0W*듆lQMO% ڵR Fԍ%7=d6oFbbR,`Aȧt%V^¥ ,]ћA&3OPPj5nǂ5tu-S*pG5ۮݬZ """1wأ#ys¬vh+^ko#8;v`tL3#"jJ k PXh\i4(-EQaI՚?gė#;>E9jV NN˹2/5?J쭷6b݉ǧq0ú5\[!ODtMLWReesRh4B?)TѠ9zS++CgkkT*ؘثTBPpp ub`G-w߾Ey9 PN",JGg4H|"6ezRYD}A, R?66>kk8:Egv'BNN P^jW٭_p(fxpJ[ؾ7_k~> ev®Q1>~O@D05n7 RY[\lw ͪ@EE9BaT*XZB=Ѱx?66;3#"""b`G-!/u'jcL܌0 88#X_DD*ULZ'--NB(*Ng PYi(,Dee]Sh_Q'6T0Ă2ϸly Q[ñt)ΜZ -`1SCa^"O$L\̝VˀZ=NgB5,[Qa]R'h4e(`5Lg4n'MxI0g ֝įbԨA6'b^읇yp I^⫃?ְސIh_ڐ H}lQ!y''d" yxa1qIT3($!Pv>>HOGBƒI_"1"d_|z (HZYj5vtj5N2Cb2,[+2Gɘ<3Fc,!""F ld@u ŢG k|W]-XyM Œ#abÁ5?iB9Y,-1p Ƒ# }د|cwn7v`5V"^i1/%"""j8fV5Qg`}444 pGg<]w rX[,*?I!5?vԂ; 4vC`g c6l5\[e˰zLi=xabՂ0 E  (u3;aܕq8xf4ciy@cą Q("RݍozzOZZg[sQX󒐴c}:ҥ4L{/tDG^""""POPx@iaiVkXP%  V'~f>ihr ݗ-v,)w#v?U_y\};WVը>>q7`T X )ʫDDDDDM@0DIh;>0 YۜÐqhb$A騺W2܊G>$o-[;8$Tݺ%$&2 a6 X3~.A/=<B5qY-fjf$f0CM"z*+=V9I@R n̆f2cQ1i\#Gx%j yhَ?Yd$'#yt@'J^1""""jKy-Bb< Y$0[K(Oĝ'F4Y+Iƛ{טO_NN:-/ D 28v \oP $!G?q:ªUXI<9'`Bt#""""PJvCRthR?hv|T-ZHY`hrTEYdCϓX{pC iðap&.^#52XIH PC[b+~@HhDDDDDm7~KøXA=49fs&qAK1j<0=z=PZ~@x8/dA6l4=-lcx2ЏQ[zkٲ_|NOߑ"=r9 Gy;_۰-y;c@9aGh v@*JG:Q!t +P {wld!G#~ '1u#""""""Qt@=C(*859x̙ I";å(MCZ$"# 'z~a`G-B %f  UU8~O>+96{ T\ +>a`GY))8z]K(Q4у8X[x7Fb ry ;j6J;5vt)c1wwq\  v0` A o^=""""""&UbE=*^VAw_}>{O8@, AHgtyjLD JOOd2,<<OvEE8{z.ƕwU q8ñ8.+A=bx|C?;5΍7[0aƒeVUUv˩SJKKύ>mrrÇNNN={3fK/ԥKƈb`G-BК EEHLd`תY~~ G8 4pJwqQ eC "𘭡ؒƍ_~%Yf=/7{Ioܸq{_}QkZ5@c~\Agūb (a0 !N_şk,Ξ5X V>{2Q[xbԒ ߳9z^VT.\h{yy{{{;::jڌCt _뙈Z!v* ={/m \a8^5)"W):S,[>}1< xMptt;wn<[ӯ_;0`]vݱcĉcǎ0ih4_|HHWXowޝ/i"""jmQuTZi.\͛pvztD !H| );3ȭBE\q}c~ hj""z`{q3fmW(-:z#GZ!NA-B9  8v1Ld?S#r}ط>a݃>Eoi4-[̞={...VVVb Cr21nǃKP38sgNY-AI.%\#Y>Ы7z/zx=]׮][JJJJJJ.^v3f^Ʀz7ߌZn޼gϞ={lܸq…w}m۶M6v"_]]máW^Z*++/^xUV͝;w…2 xƢsm޼ڵk ,htr3,YRZZe˖Pvޝ`ʔ)J^no'[74~q0e/^缁DDD1uWG d=ʋ0RB9c:Ӑv\2\e\;C:ЫzF :uR*EEENڴiSnnuJeddd?cYYY;VP;wnժU?VqÇ3ʕ+R={L0AgĈ&Lt'NXfMqqŋ---͛g|ڈu544NV;vlϞ=&Oz饗,Y &&NZ^T={zjJJJ`` wpuuk}Z622nʕb7@uu~x ^"""jQuuu:W1y׋ tAgԘ d$_"BVb=<= lxa~zy慄ڵ+**6)G:}ҥK888ٳg`C>iҤw}788X"uرcBغukPPPͽӧOj666SLvΝ;'LIIY`??`0..@9R,##Ck߯_SN۷/;;r[n3jԨ~?*,,yyy6y7>} 2鐚z#G!::ʕ+x!=sfmչZmff.]`[l0DDD1 `J;Q\$KF|grWRr| R|6N rox@={wtǓǛmwppjk׮kkJz/:ATnذ{RT%KM,]4//ˍ:SN6mׯ_uue֭['+++jggg^5N:ccc}qqqbP1qF+WEFFųfji###ǧv˗/ONN6n\x /Z-B-B -K^P 1׋O?}w Qx `Gh&=G`@}va7-4.J(??ćj?!BPk=$Zԋ999I%sqqmdd= c<}AU;;; lh:L>]T)+ k3rHmڴd Vf۷w>̲?}W"%"""jXaG-6 ;w"1  2PA5vL IDAT4]E'H*Pd$3>.;//=bccwޝo iijj>|(|7u<# M<11V4777//@n|}}6lPYY9k֬QFYYYv3<}gϞ>}o߾Үt1MСCwބ77ߜ={vYYYlllDDԾeQ^ ͑#GvRR(++tҶmۖ.]ZXX'''D"""ֆI7dv?xɨiXz@2"UwR|Z~CP&Aרƍ?Ǥڵkbk׮R.sε?}}}%N&EEEM8Q):4000 d[XXDGGv111btj 3gKKK###;.7aήO>} 1bիW7m4}t^"""jm8$Z=.FB>~ѢEO=w}grlC!((]v6l`| Y^xioz|̙cǎƔ#I`mvc"""vԊq$Wfv}tœ~ӑ~Ӑt_1]>o ooxwFgOKM'|RUU%w5f̘***j6JaZ ݌ +z޳gk4#G9r$>>^dggGDD.[^fԩ+Wٽ{q=z455ĉE״"""{bR?)ըi&0nM!!!}QO=ظ ;jbz"]zd !<sZZtC1ԸȔ:|7._fڵ&MԈ]qٳMvҤ~b^"""ֆD޽ĉ,6>>1i@#2qWJҮJ(BY=5uB'Oxz*xͩ\~]̭c ѣJ***JHHjf׎8x?ʻwvƍ_5##XdIUUUBBB\CK ֽ{ԭ[lڴ I.7L+nP"""jullJ/׶CYaOOO^ """j:ZQzB/JTf!+⏈J&2 Q(!/yqiPz^r{'trԢWHKK/',888::`ڵI|1q[cE͜9sҥUUU|ȼ]NĆɔ|M_9s.VPTM֠+A%%%w<<<< @P?>***--mܸq;wPwTǫn˖-!!!}UTjʕ+޽{KKK?C騜9s|cƌ2dHnjuRRRLLoR3jԨC>|Xl߿|\sΔSNs={VL'5twy߿w...VVVǏ.т Č{DDDb`G(n"e!+pMf!+90陋\&#Ia WxA<G8F< {s'OnܸQӭ\R, ܹsɵ;o޼7oZJEEEEEEIϟ/q4zׯ75XXXH+`V8jw޽{'LnݺFCUWWWVVMo;xFټy͛\!gܸq;vnRtjeff~W5/^hꫯvuϜ9#sss_|E~QZ(xp+@;ݕ *T~37(/9YȺbq Jo-V ­QPwj.pqrގbÆ V:ydqqã>:eʔYfIi%ˣ+V$&&޼ySR_>}ͭOgΜٺu͛O8켼njdtԩSuwgeejR=hР3f)$$ZWiƌ8˗_zUV׽SO=%W_}A=`bbbf͚o߾cǎ]xƍ:ã_~ƍmz^ Ғkq3gΈ9ݞ~iuDDDDmQɎq#{gmP븞<o"WD{e(>p=)k.pi҆xwZ,\n^YY9{l1}ؔ)Sj.IM>QZJ۰XdGjvQW )3~\+X҆+\O]VmjN5C=J|XꯃNLwGwD g'8CUPf#NsN __-[x{{*5+VX+qժU,DDDDm;j`TIS_R,#z'A|i#yƍb[kT[b#?g ;GkX=zիgffd277{lҤIaaaJM&9;;3{^xA/x\%ݗL4&-;f &ZDwf㼛YP]v5=NGDDDԔo-[WvmFeeCvuر .zxx 4_7nEg駟֬Ys<[[۞={N8q۷ogoCe2|9{EvDtpp|ڳRxglc J-CYʲUe-k+pt N2x+rkV^%77Cڵٽ%%%/م\\\~ǀ{yzwo#H@ѭ ";"*Qi$z57Pu/'bGP#C:ZvDVص GiL&ׯZNLL**<Я_JȎ뿔.pqK=fُ(.E%()A5\kГb>QʸvOd|h-rDDDDDކPѥKzkڴiMVXXřw߉СCR}{キ|rF~ԩmZc :\, "\B%b"0泃IW3vhK@DDDD8$mHNNٳ\n> @.999Izk8p`̝YWUUO:`˖-&Mjӻ{Y1@\ .[fvDPb>)3Q'}Z&yt[J  %NpRBR| (aJmvJ(m`;HDDD|kق8$/'yлw:?+33S_paȐ!Үncj\nXXFv-EvDD 2lEC,@q~'F޵$(/Gy.r-` (p]i#&-*P*'"""Dǎ333hZ{'=gdɚgr[{xʙ숈MbBNDxO B@S2i=PE5BXq_멠JQ맄*`b[Ă$Pk [%|%Q+A/]$tbK w0p@:;;^|?֭['8N,~DDDD ..͛gJ˗ņomwEt|rsvMĸnZo>Qf [[6I|R䧁FzhPV TL u*Qhfz(䐛^!w%,`F~N#:!"""" ڼ{Ol&{ĆKmgv6׳3a ?GK$֨3T%Ct@M1hJQZ" 4jE75E(yZ-Zh%3a\'!Juma+ am 5CDDD``׶t̙3kNThĆBQ\.sӓTd22YY?B ""X6Ϙ(S(}zQ,A%,Dzٟe(C=>UY^ҿ =*KmVUUK/t?Iqq1ܩS)` ?#Fxp^^1v,23ʁDD<`g;WtЕT'*Q\Ra4 X]! +QYs^XI/86ְhcfKr0C#GYo0r *^a}TYNPuc52«[EEZ^g";z^`eeu/_Xӧ1:bbL5+X5IٚZ1&E|bq}?:K ,O@m Qg p 2AQQhR6ȗQksر'y\Tϰ(n{ dj.`)Z̼[]j%轊 \˲LPs㊹+. (2#30 ;993yc` O:Uuݻw߳gnnnr{ k֬#G4( o߾O $B. "&!xE'Њ DU"!׭ŀrȋQ\4b-)62 e KRVWt.~ҒF$j셆EVO2%&&={\]]56lX\\;wK۴o^\UbRRR<==_n Tm]bl ۶aD;,Ju_O쑒A(Ԣ~~$` Xm jY[yG®QT?3??rj????~``w}WCkyհ. u=iSݛ""Y -^alckQ, b5TXʩ`VJDDT~pܸqvB:C]l;w~g ~WQe9dYgPWUml};ŭ[?GukS9S:"+ܯLI`ogR`EBrڈ!lCDDDP*/rll,={9;?!CxxxܹsݘvzL'V Nn'GRczX""]àT*Gw^{urЏfff ,xw̘1m۶Z~x)>>>ƍȁ0~<ôiضQ}g KKXCR$hdj3ԥꩡQ:K0P` SeNEݬP\o{"" 0̜9Su&&&}]b&L3gΜq)))<̌3v횝}1VVV6l011WR\S~e,Z11S|AcU$3 H;fb&cX YȨalp nn'rTK|PZ:D~v Cjjh4W.ev;v _}QWW׭[ٳ_C}DDE/Х !"""mVj%ԥF9PL.`" ,"",)JhX'YB_`=UPU&}HSN:š" ,DF""255waÆcǎݻwʪsΣG;w[m< O|n >LW"!oз/o>Q`Z ݤOt` uOЉ#VJ'MXE(M[*(VPk, ^ƣV O~ &L0_f/oaF^qc"!|Q 8FDžD (k (Pw|PPZD ӿrE  9 S(V䱈b`Go LC5Ν0wxt0Qc&ou{]=q![*(XRC)-04*VAVHQ7ӝ`zhpsj >`p1DT 쨶t̫ QQ4 J% xU""""ZbX- 5D%Jy̷CDQp^~na=?p """"M*"C! A܈lxts*"dʲoT"vT[d E={qLx,^gpp """"O'|2u/ͼ4ui66"vTk|Uػsb:+}?Nx3H'@34+}6n:8D9KKo`fؽ" IDATBDDDDDDD;-bщuoX";/+x?b`G:ǟgP\?ԩxwvT[F2SuڵC|<ƍH 4"""""""_QmV/d8v {A"""""""GQ-Evu,d2|_ w߅\CDDDDDDD;EG.C7xiDEAM""""""":j0 (ԋӭΞŧ w 8C'"""""""K 9v՗gdm qϻEDDDDDDDuծ@}|ڡvBL ڶZ퍘-""""""" v wOm?>nD` ^|ɼgDDDDDDDTQZGbua> >J%vTdEvطQQJ[#"j58vTӜ2.`f1m:vP(x 1Z7 0Ljرɐ߆99DDDDDDDT#Qs~kϷ{wΝԩ03CFw<>鼝DDDDDDDTQ]mHOkWDD 9sX ^^=׮Qa`GuA;q8'VFJ W8:|=:wFPΞ}%""""""jB/@+c"ܸŋѼ9":DDDDDDDTu 쨎w4v98``xyC4 m/ DDDDDDDT 쨎밲Bh(._Ɩ- 22jvsazfQ%0:j+Cr2>[#99GQ0:ި^Vvs_1~<͑sV!#p-LM1r$_ܺѥ \͛# WMvTwD`wh_;ŋ8|ӧo㩧л7-DDDDDDDvTw.ݍo{{h8~]ѹ3,@B4-:vTwL5Wloɓm22s'f΄;\KѯڴwADDDDDDD1:5pP6me^Bx8n_ЮܾLjpqXg@ a`Guj &xy\Wq4Bݻ1o|}ၠ l؀[!""""""jQ t>éSq7&O.0{.~3fM<4y?QT$$%a:hW/޽#"...˗/Sְ߮9rDu2ϯYf "!!̙3;ֺuk񈈈``G@ (,5Gch((#8t?T]lߎKk޽K=#" yϫ58ڵ;wɓ[h|xTTK/q?TDDDdp_Z/ǼyؼɸqqX&੧@ARhcϰ};^V^$jBJ̙ӷo_777sssΝ;O>=}cǎuww733suu6l֭[̙3u'$$ ,{{{[[[d2r3R6bssskkΝ;曧N2Zm&LecccffԵkoO^]-[d2{{{BaY{xxd2e2Yn_G]Vk4OOOLfggkjue2Roo]L넑#Gŗ.]甈VQ08d_gw23qxɟ'ׯusI< yC.cG5Z۷s<1ƍ֯_oii`ڂٳgK{߿e˖K>ɓ'H{o޼))**|˗׭[7o޼Kd2Srrrƌs!ݝr\._p!&&K,r{}AAA+V߾}{ppf&Nhcc$7 fϞmُ? $$ں3[ly-*S"""j:Q0X\nm5Y3#Jٳ%K͞; V#7gyzS'x{sgtoo/ Bн{6mSNmݺ5333**&,,LĿo"377 2d ֭[O?=6dILL-0=ZT*$&ܹYܿo3tOKtD o6l03p^^^``ݻ;w2OիWqq}\\\߾}C bر{߾~mkk-[3FYeeeu޽{'N=z^x!))I&;vgϞbNNNf͊zqaToo蝹`ڴi6lԩS7o(s-Z(JOOk׮IUƮ(FΚ57x&OeGӧOɝ;wj?|E6K"""nܸQ7/\knٲeN<)M#T5@ = ܸ pp.^Df&dg9\sskNЩ:v,ں5;9r6mjݺJڸqu~W/_ټysǎsrr+VL\޽{VZU&ЦM[i/2**JOII)**hpmRrԩ?h1\ppp1U*kvaaafg͚UˆWxzzVW` CJDDDM ;7?{`_ڶE۶>\.) /%j5vva~ש:tah֬YNtk;vprrVKzr.Rf= ]:oݻw۷oBBU[[[qيʶ/ǔ)S>âM6vxؐ;?Obb֭[WZ RT^U?ju``XcԩG'vTovG}ѿ=|^ ǩS(:t@hF֨"{EFFƞ?>++KwA/INNs7XX_TЄO%V̼w:xyy]~}EEEf8p+T}9݇ssΝ>}W:"ׯ_ǎ͞={Μ9۷ӧA֝i4iӦzml80Q#ꍶ@]dinЭ#;srd$%DxW 7rsq$LIdeUyz];m6mж-W q[ly뭷ry9mrŧ~о}{csHxꩧzؿ|YYY"dGV*ֽzׯ_@@*۾|!!!;wmڴIN:aԩ}Q~~~XXn`@(..>}͛O.QCꓑ%`9`U޽ѻ#;32p ^ŕ+r׮ܻ 1Z[㩧JFm*U+Xp5۷o_PPFxWڵk,վ7.11QLW')vvv?t9OVKC=y?>x@T:tСC˖-OʬZ3fsvv͛/_njj*oڴ +R>88?sѣGdIIIߩSV,..:uHwg~B b`GHK7FxGvՒU\7pT*P*q.]*{) -ZMlYR'mxx0#?Xј޽{ wJaB0vʆnk~ʞޥK~AT&$$>|ÇR*w MNN/1&MZvmzzzll#9r$99ѣqaaa" *܄Zw^WVLwϞ=xQꓡ@  ,>& ={gGvj4HOGJ n(Tܸ1nOŝ;s,E npU+hfD%rss= `С:Z-+Cl\vťaU M/0kkk͛WXX_ϝ;]vOޠ15""Bv5܄nݺ?>>~˖-Vܸq#wwqU7n*]tZ`Rg~~~#""&3k&08XG4l-˖q&RSq6nzdCGIx'l wwjww4kAlDݻwj۷;u(U*#Ĩ̪ر{FFSSS˙lmmΝb F_~W{cǎ;v˳ܺu+wwwU4Vܠ򅆆+HGGǬ,3f̰hƅƍ۵k``G3W21THwӑtdfJ"%))/nbR2n͛E hwPysPakk+6_T,\2lر7n|74UL&:uʕ+5Eڴi#6LW]텩S~b GGl'OҠ㼼68q{w(:PTPmT*_~X={QDDDD ;`80=B''Y^a!) pvɟ;wp.HOٳ͚ãdtkh ͛lRҲeVZݻw߾}C #G;ދh4~oo%fJePPl۶msuu/$<K=?sEn+??_ -Z1u>LFDDHxؖ-[ZYY=xɓZV&+o=& _}ɒ%gΜ{JoS*G޻w/޽{:99SIDDDꥅ@p8UKKxzȰ?Tݻ%"KĄJ4} ssYJ= xwϟhk 4<))iƍ.\߼y-[&?}tkk/_~}Ĉbca1nnn#GT(}}}} ō7N8gϞ>H:+==ޛ?}:888(M6F)pm_8y-[jڵkł ]ƏoEݿݺuj:<<<<<\:4f̘ŋN2 tС߽{wmLLL0PTX1вQFEEEU}8p@M|W*111bT?_!sĈ+-Z;h5+С;"""j:Q}X~fGؠ}{3,7d{ *UI㊄z2\] pss`!'abbycǮ[ɓݺu8qY,--94<<|„ k֬IHHc=f̘1eʔcǎfU~z=z8s̎;bbb;v-Zmkkۺuk3UVRI&uaϞ= /^LKKS(666m۶ӧOPPP@@+۾~mB!z)(( ի׉'VZuС7o*6l^J͗GDDDD"+%%Od,3`11 * NNpv. ~!I~;g111&L`ԴǛ\v%""jQ שSymD,ܿp޽mB٨oTaaa igΜ/2#"""jQ NGIWYYAv=rnA [7*w2漇MHZZi-/**3gXtĉnnn쫚'w}ADDDԠ1zo5GJX[?f ]EE< tɒsý{}b66pp=pkk8:66LMyWSN?> `Ȑ!;v=}tTTիW,]UC.^P(m/x^|E Q%Y`ppaU{34kf*>7hFA#*P(^'ii 8966pt|$spSɆvvcjz׮]b52o޶m[R Yf͚5ko֭[n!"""j M`!q",Xj/'ry \"/}(,L|s=99R>ٹ#ox 4h{9{[e23<3nܸ+++RMd...?OCx\%\-- 0NAD~>r(P(]!#?\$y ƦpںdQO䵳#GI5_-+Rb5o@Qfo{{W\XWPYdPX#3E&lmam XY05,,JAKKۗ,aff523@&0H)DMcΆBO,{99%G| YCjKxcT IDATrummaeGǒ1"s9:NNJ2A"""""jQX@ N!JsvsOJ#~r9%'@2UW %KyHY)9$JC@I(  ְ*$""""'@4ЏBD VVO "ϫ_"dgPJ’C99068&TO:$BC1IQx ,v 5c`G ӫ70X_)V"@n.QXXXNO-SWTd8F,GNÇiU/l Qe1g/DDYIXQT'<%q^dPj#Ċ< E8(J@bV'iCDDDDrv5`.N` pD/DD\]kQ*UMǪpPwB@Q0<,J)S (YѦ̉bAAD0RoHDDDDO5p"'0H_s/DDMeIT*rBd1FX\d@1 6V?Lk'"W&%"Aa PPej E%#QC 826pDDTj3,? RV1ZmI_AT٢X̉ 1!{8:x4uolx9;K7-KM'e"Qc ; 9G 0j%4H `$e22'J JGdIЫCc   |Izl"""'`'p^8Qufu "ٟaiRT:㈥ЙYYdeIWC=(H4Lo,R-0QG]A!eN4^-汓?˼AMDDRF3 |a;DDDHQṕ GDDdXJJL&dӧOoW#"""FvԴY@ l6'R`)VQokԨQe?Ǐ?|JJJvv6''.] ]FDԄ888̛7~^2dGJ>Q5ky睎;GDDDM~|>`> l_DDD^lـh}``GT1`)p lft`*hLkD`(۷ϙ3o߾nnn;w>}{ݻǎnff:lذ[Bgә3gOHH,X 55dfJ2,,lĈ֝;w~7O:e)im۶M0ɩk׮|۷-[d س*..dR3%&&dnݺo׮]+{5L&5jy2ET6wf^F9JDDDpH,Q p~׀k@$<<Z㈨j߾;wt]|yƍAAAׯ?xҞmٲeҥ}_~eV7oޔ]|֭7oҥKeG&3f̡Ctwr\~…۷o/YX"??Ʀ8qMjbbo~QQQg6bmmޙ/_My?"""j=oK@/W 8 Q (o_p`Q=P(\\\wަM\~ԩ[fffFEE؄Mu!!!C pºu~'JU&&&~<߿nܸѢ∋5j΀FV;aÆ˗-ZH"}k߾}ppB~ѣG<ʶ7hڴi+Vi&c]DDԸKu͛III/^۠YffΜpBJf,[vx7{R~={:S"""j:U;`00˥]<?Z| {?0l03?,Z(00pN*ӧO\}\\\߾}qƽcǎiK9~Wkk;v3FhVV֔)ST*eddĉC{,Y2a„={C999zqaTʶ7ԩS{sl;v9p~>33kݺuNNֶuǏe˖ӧO}) 99?{{{Wqƍ*^~*­_>33Juq}ݾ} 'r!""&QtBNuɝD"=#G4~ӦM[VT7nKvJb˗/:f;vR'cVXa0r{XjnZ'if֭~~~Z/SRRjkk^U}9BBBN:U\\9-f .3BCCl`ڵ]XX_> ӳʁݪUΟ?UV˗/WQSß~j( 2X`) r/`&pZ `p P+4k֬SNtkZQ/$PK(tEFFt]Vmmmٳg++۾SLU6m?* ϋl֭ePT6lw6iiio_|!U"""vD/B鷅y4p8D1m6_DSt:^@{)}JD޽{ϟ]Buɢzףzrt&|||<.1V433޽{nnn:tu͛7͚5kƮPpww>|Ν;ϝ;wi___PJJ&_~;v7{9sDFFJo.Ons&&&+W/+WOϟ?/ vDu%H$2pHb*p] hxix퀖%Jزe[o%iSb}N)SO;tU~/%;L>zhRmmmݫW~sNݦMj,NG燅v w [[ݻw=$$d7oܺu1cL*5y f_WX Jk[! XLm30X \ؿDT־}rEHHHDDÇϟ?\J Iņ+ٕ圫_W>Z-m:ɓ'OT*:lٲaÆm+sneۗc̘16oެcb+R^ =>sѣGΤ#m.YDl\bQC`t:?p H.a!<}@ Ъtp?Xј޽{ wJaB0vʆnDv^[~}eOҥ?T*>|C);w&''OKKI&]6===66vĈ9 `"Ϋ^=01oUv !<<" ޽{5aÆ'aa`G`Yހu» -m h Z@+%x.tF(77We :`ZV\rexxxk׮4 ѲfU`mm?ϼy sk "FDD&խ[oٲeժU7n>nܸ*\pƍU[%K.IvvD _Xې}ȭt狱%\+۾"Ngiڈ鲕۲eK++>>=z755ߵkWRRҤIƏ/-XѧOΚ5kٲeFRRRV\t<''Z,YRSs 숨:)tLtOw< 2L'p=6 `8N>ɓ[lQk׮ &޻v?~s-Ztu֩pИ1c/^,;ʸ 4hСCBBBΟ?իW111V@i8Rbcccccۏ5***+($$ZU]n?߿R+xzz1_ТEc93gHݿW_}S"""jRQ-Y59@ ~Grl 4:W($u u[S0җfYzA111ټyرc׭[w\{{nݺM8q֬Y2O0a͚5 wttѣnj3Lr1ݽOGgΜٱcGLḺcnݺVmmm[n3x1cH0iҤ:ٳ'!!ŋiii Ʀm۶} н~eWP``oP(D/U"z:qĪU:tMBQÆ 믿^ʦMf͚wޣG^|9##CVyxx1b666QS#ȺcDJII48a9Q- t@@P(KSx&z|uig v99`XVTj9s0a; 0 >>ڵkO.QS211w+숨r+ (䥅{"1 PJgu*3J>NFn(բⰰ0fff\9s&>>/ȴAc`GDM` ʁ"@|Ain5t>Ei8,V@kJS{"Di'"?P"md1f }b05 iii-Z(hΜ9bV'JO>.{Ac`GDD<P tn6P G*'N]+#P1)@/ԫHdIy"t˜NԩSǏ2dHǎrssO>uU...K.eGՐ/*m۶/{_|=CDDDԠ1#"Dhլ.X&a@[_TiA]"+ JUxt4]Głŀbc'J(Zk.l^^^۷oo۶-?5d͚5k֬uppXnc`GDU{hO'o㢬$yOfPA1 n(Fbc1#jh;jg*u1ucs5ddi<Ra:-FA|?coX撧&AabfD7:T1o uTybfSjQYЀ+ɣoҴ=TJM4QE`p3P09Ya)rEzzwEwpT 1{L&HseY֊6]JDEU̐) @t IDATJD\j@y}Ր—=ͥKc&Z&`U(9fCtMƿUP~"%ZU2]yc54pYD`H1+V8|~낣Q _iQUeRJM|gɨ{Gm"y#(yx&}&LiE[Ѡ٥U3IĪu\j= t߿ª>x۾">w5񹻇e@M!s?`c9HWW5@2JBHݍBbM"Gx񢟟_޽jd/JVYn5 XU]+澔h3T~"edbMZ Pc";,4iTaJ᩿o:\TR*6`u/[+;XMq5cń6mzy#L?7,V)2PlKF84p_Y%q֞pV#ZuNL]-..vtnݡNYc"v"y"DMo_BJZH=^v7u}5a֦M^h֭ ,tGNII//蠠ČÇvޝwvoʕJZ׶m)Ν;{e˖iL;;H3-Zl[NMDD,]TX?ۻw˗E$88x_~;Yf)7nKNNV6Fa5 z ~ٸLegϞ&x{{HQQٳg1E`gΝ;l(IOwM6٣4oʕ+vvvխ(FZ( RWl5͛o{'Ξ=+"999&ۨê>\` ׽{we###dׯ䈈gv1E`g”d;w  h4@"q-[W8-[lGEE]988̟?_َxz`0̝;733SD:w㓐ء~5 _|5j0bĈ3g9PA`Ţ!,`A B`X; v!,`A B`X; vxˑ#GlãW^ .ϧgPzO?7k֬7Fь5Qpݟ<%%e޼y!!!͛7wrr 8qΝ;z= v+WN:O>-Zpvvvvvn޼yHHo}9*6f̙̙CyJk7P3@/n޼9nܸʇ|}}n:h z ɓ7lPyȑ#o ODv?׮]3נo߾7nl׮ kh88{/vvvT8l6{KksΪmJ;;;WyD`t=\JJxyyEGG$&&fddKjjj+<:QQQʶW˖-gF`W0+k׮UBݻ7mڴ$---++KiӢE{U^j4"cuӳ… qf̙}kjtr77[nS9s8;;l3gΜƍyء/P{߉H۶m87 g^lt%33gC? n׮Ν;G!j\u"W^ye߾}3gΌlѢ]vEFF*رc)oXЖ-[V6~%KF9ydpXٳg͚5:uE|`Gy]AAAT. PP[:"o߾={m۶=C믫ոD4XǏԩɣ|E>//rmxg>,"V>}:uȑ~͛7Ν;Wv7B;+*o;/>AmݻWy '"vvvfR7nHwf ODd.aÆ)3au:2 ٳQRRBzݹsgʔ)z~Ǐ\~S@P[ʆ2Ç+IIIaD'lDVZ)7lϩSΝ;S^ .ߔ7p_v-e}^={mpݟΜ9l?7l`㏿  a/mڴ6_nժk@@ĉn ;ֹs =$oH1`\'&%&&^~]Dw^aXVgڵ￿piӦuq̙"һwﯾĩpX>}\$%%:N՞:u*..n x" Ԙ]ZS6|}}͵Q]vmpݟT?{lewߥa-[vq=[^dɸq*JIZ,Z(++i͚5\_i߾}pp2ˇRr~}꒬7@P[ZVpqq1F=6D&'N|[6_~yΜ9? _"" d˖-СN^iӦ3g/&Mڿ? Sb>z~^zZ> 6 رc7n\TT??QQQN2eJiiO>?։]TTΝ;58p! ;Vu>gupݟ8y͛7HnvJyÖuOSVVrM6Q.|AzzFYz'h8lW7Pv-uzkCM6`\' N7qĸ8ڵkrr7 [+۱T8ȩS~my C*? jK]O'''\u1`\'"RVV6~xul]JJ 6deaE6nxmqwwYZZGyoa3͛{5@`޽aוwFOOvcұc~J!UQްFLT8,`P6,Y]v)GSSS=} [.7Pv0e믿6`ΝJhhF`\'sΨQt޽7l̿oeuT8>a-TSN7PvЖ-[HFFFED/[Lf}7RhȴZ /$")))M(o.$$ y -YDi6{lenPް~:;<a!,XbŊWVد D_~ШVjL  lu#***>>ήK.AAA>>>W\9tPnnҦEqF="QTT '!!AqͦNf͚Uu"Vu뢣)oX-[TѠYf˗/?~*⾁ vU4 ]~}6m Pyz@;vlՍwa~t`u\zwywkzZ8ر#??\R \zwӧ!Vv>988Hiii||6W^ݹsmv>yyyOD֭[gM\\\YYF6l=G`YLL;vرc&(Y^HH?G`ٸq\]]̍l2e}V}[l0mڴ̪Oܽ{ȑ#5k3dȐ9+Rm3 ::W_}ͭW^K.jmz}۶m5{QQoUVVּysFj5SO=O5ڿ{`0lݺu̘17 Xb˗)o CY%vӦM*<==njS9x`@@wuʕ۷o:uj3 tӦM:tW_}u5Nw={?~ѕ]vcƌO7o:u> sNOxӦM]v]fJJJ222ΝۣG\6mܺu;}W^I&斝z/=\ffW^ywKKKcccߚ~{:utɓ',"QQQ-2nߴiZތ3:$"ڵ tss+))9rȞ={(lј_h4"㓗g0ڵk3l0eAXE|||TT|w}y7/_."֭Vw)//9..8K.='Oh4cǎSyxxٳwꡒ#G&''+_N:u͚5o2dHko޼{nݹsgiii}U]]]曐hqqqxxDd֬Y~z(22R.9OWxӧO gyxBnvv2+vV2BԬnܸѴi=z>|[n]p!00RX#@}aJ,F v믿=}> //OD-[V!o6m$$$h4`7N'"K,1NDu͍76Æ ։ƍD>i{ioٲSDbcc C3fP6ԑtbccOaO_;|yyDDDFZP3v"DGGt 6({Ο?o>lDW_5٠k׮Jg}*F yE$**ѱSqeCm\lR8w6QcEEE0i]YYrc*9s澇ZjUSO=տٲeKQQѝ;wh5k6ztx{ϘˠA,X{k׮}Gʭ/_^E;`A~頠 )S:4kLD222YԱcGenjjjii6l  i۶ɳ{37.99YGו}"T<{渹͜9wTA__{ݻ;UM(yU4ȑ#E@VA~~ƍ+W1S^w ~xQZرc6m*"|XFꫯ|uoվ֦Me;`YLyj2|%ںu3Ln}ƍgUo̝;7==V0aBAAAoժU֭[HJJ޽{M>ᆱ^`}Զ%IDAT7N צOY,''SHVVEdVmժrGdWۿM.[\\ݺuN뛘8lذ+Wn۶-""[n^^^%%%/^z-w>gΜŋ?::zРA...?իsrr$h4'C2eJHHɓ'?ӧOȉ'xaaa䓋/VHD~IIIιvvvM4 ۾}{qqLY.6o޼y氰&M7ngY|ѣGǏ5uԶm:88cG:!C(SN"={jN* qKQٳc:aY|믿."1c, 0 55ܹs?8#Pa`NSaupp '*"=i! /rʕg̘%"cǎ`e _V Zff/8x:;v,>>ٳ"< .lݺuǎ"ү_{W,)))))!m۶UsG?/===Ml XР]6222((UVCOO8ѭ[7yg̘1iiiO>$/MbX{J,# B`X; v!,`A B`XV;G~IENDB`logaricheck-0.6.1/doc/sensibility.p0000644000000000000000000000071711764403305015413 0ustar 00000000000000#use gnuplot to execute this file set title "Changing the 'sensibility' parameter in logaricheck (agressivity = 2)" set xr [0:5000] set yr [0:100] set xlabel "Megabytes" set ylabel "Thresold in %" set label "sensibility = 300" at 2000, 30 set label "sensibility = 200" at 2000, 20 set label "sensibility = 100" at 2000, 12 set label "sensibility = 50" at 2000, 6.5 plot 300/(log10(x+10)**2), 200/(log10(x+10)**2), 100/(log10(x+10)**2), 50/(log10(x+10)**2) logaricheck-0.6.1/doc/sensibility.png0000644000000000000000000031003411764403305015734 0ustar 00000000000000PNG  IHDRsRGB pHYs  tIME.(tEXtCommentCreated with GIMPW IDATxy@TgAE\ЮRXU Kbju+rk/m34R417R4qI45w7va~5,lPu<;y31 =z i wܔB㏷~ްaCy)[SԩS9jZc 6oޜpsyyy۶m8qbHHH͚5+TӨQ!Clܸ1??ȣu֥KTs%@͝:uMgff9s̙3/҈#&O\Z5"O'OѣGPmIJҥKZ믿N49E+ׯ_7]ҒcbbڶmݠAǾٺuk׮]0,A( ׯ_ ۷oWHH}4i҄'E־ \uA`%//O~7nL@f={TNW^=333111))Iо}s=رc6m_uv,D(q<ȡCD~g 얔4cƌe˖T||||ƏO=S"k_j rϋȘ1cx=_s=7`Zj p֭WFEEZGNLLܷoΝ;;vHpWaǫl]Ə_8['"M6ޱcG?C|g"OC$8䨨:޽erll[ ޷o_c "a'N̟?_-GGG7k;v裏zڵ'>M6}ܹSYYYk֬yg[n榆ōܹsgqoQ`7Qټys^jԨZZnݺiFi{BIsQF~cϗ͟?GwsshԨO?rd0>}ԫWյJ*AAA}O\s*֝8qbԨQիPWVf̘UxOkg+%&??? @TTLt5kh4ErΈq%QQQƴC^ŋ'N TR5BCC׬Yc#GFըQ#OOjժcfyZawL<̙3ƍk֬_hhٳ ꐋ|V^7^zխ[ݽN:ݺu{Ϟ=k擖Bpƍ۫ 8077E$""B:rdsͱ{gC)ykh4ޙŕJk4n~W\\\ڣGGw^ĉ;xyyu]D֭[wM~%+%k޼yjƨΝ;ÒC{<ݹsgDDč7?sss9rȑe˖m߾_W4hᅴIKKS.YdРA-rww7SkQ?3 ,0}^ߺu֭[WXF)IɕY2x/%'''''/\p~Fln MW޾}ۿի\RxQ;gU@l+y_Í?u:݁8hѢM6իWZ駟~222-[3[ll!"CUwkb%e 0׏ׯedd$$$$$$ ̝;3Ϟ}m}+|q,+mfΜꫯfsRSSՉ1cƪUڴiSd|IWc!:titʕ+WlݺO?-P2\.\#K/4c ˿&j!$$ǃVo-[ˠAf̘f͚ۖ-[^*"O<񄧧gߕڵk_tI}O!444666''gӦM v@YZnZNqN81gΜ::uꫯJMM=}a 7ҥKӦMyzz޾}СC+W~e<==򎯾zvss:t?믿.\pڵuJҸq/tի_[o>,,, @߿wܙ>}o;vzoР233Ϟ=wޭ[>YJh޾}fΜi0 ֵkW//G.X… 'NPLWfV#GN<977w/O?;/)G={vvvvvBCCTr^Ev~rrܹs333߶m[77={|z~T0`C=ʼnȋ/RxukU ;Swg)ql3mڴI&=zoK.=qĥKt?;"_ո8qqq{V x'U?6m*.Ww Y#G}+Wh4iӦY;͛BZ;ϣw[CnÆ 1cDGG[tq{+5zj~Ecqqq$ܕƁP@JJم lhضm[~zS|r֭/_,"{mzMuZ0/ַo_@/j;>|e˖z{֭[6}իW||#.\hz9Ֆgذa/.Ò1]u=zy{RSS7nOŋvzIF-ZX~[nڵ[nU^=//yv*쌌_<bC -E6m2m "QQQы{Ak[Rm bŊ""rԩF :v*ZuI* xxxX"<<Ȳ5jM;|M~DKII{7mo]9ri{%'!)4W]رc͚5sqq߿qN9rJ%%%vC"_ոOz@nyyy6m2}ҿSI&sرw޷ovssꫯMIW\9==߿l>6 +m[d:rE rΝZjeeeoVK^p޽{;p+V 0@D:';;^zѣG c%8ڋ-Zd."uy7Բj'bGeE;::B "dG淝>}C ,_J*K$%T3gȬY <ȿ+Wj4`f\\\ڴiӦMӄιsT@xyy>;xĆZw-RJ+V߾}L.cǎU Ɩϟ6z軞 3f._~eXO>dV?J|My _BK[7R`ڴi>~xl-\P}͏;vZG]KIU"lӧO/WWW3Y:w; |7ݻw}vJ6nhCgϪ 7nlf7ΣCTۂo-ρȡC^)uժUj;d8ww57lraG]3SSSǍ'O\nnnn 4PU=--JHesjժvTÆ {]x#<O~Q:*Uϯ%Z;_YoԨQE`ӦMկ z~W GgU@l(]UTjR?)3222PtAʕUUVĒKӼϞ= ԩZݻw@@@+VT._\ AYJ_ܞxHz^]܊2io-| Uc_V}nbg!ٳg?''f͚ Mz9c{pH1_l <"хê^ߕN׷o_&tȐ!=U?cC\"gJIIٲe˱cRSSMHVȸSڵ+nN:6󔤄|y5:u&M̜uSRR)^^g._6~VZX3 ; gD{{EgggشbŊ1cƘWϛ6qοHf69hIJgΜQ ;vdT{vf=XVV֪UVZѲe˶mvҥSN9xVZaÆwdf6dȐI&ϟ?L mC@켤{TB,PjJ]Ywk31Tj׮啑a:ᦝƅБ&v/P!mٲM Od;<:L9{:t Ddҥ h;Ձ~Wz}ddEYf]5m̠K,POl٦7l`:޶%o>hР۷oWPaСK.ݵkױcNEuIPj1RRR%Z*svt:;׹s0bŊ6mZn֭ZW9xV`Jh 337h2ު+VRR޽{ʓ'OرCD:ud&akb%oRd9Ϸ!/~߄yDZٙ:''8I=E̴S:B!똉% t3iSΣCk[ojؖ˗FLuuwwwxҿߕ^?diӦt6" SJ_@@uBBB) fk绸l޼944?b;oly/خ]ݻwXb֬Yj5jDDD8 HI_RJUʲN9 */P+Wq6{.eU͌CN[o,ҥK/^|I3=k6籤[СCUwԥK]IL7Q%K޽ۆ7nl[.77o߾֭` )Ɓm/? ]b5zhV+"No^vM*Q`@dW޽;77}TgVr%1K2rF"rD^^^=_U ϾNR<3%Ğ={k:;VU5OfffLLի3KbnRҗҿd'ySeS͛7VZ/j֠A5kHRRq8gR~jvSN\pש_j w ^.JAkkoy6"i%ܕ+WH5T.''w޶et: {j!a#G!C/_z%BO<ٱSKDn޼LZ@jj\Ii>ҙF2d:5'N,klbƩWd -^mt᥵<jAFv8Rҗҿd'پSeE]u:ݬYY;sLܧO/eU4͠A[kYoRHF_Doֱc"C}_&Zm˖-յȆr6ǒ~P)ﵵ>1 s01WR[NOO饗|͐*U^pa޽Ɓc^xaĉݻwꩧBBBNƧvjժ=zdffΝ;w͚5}m֬Yʕ333/\?ǧO4\z_8qbhhh6m6l㓙yhբGY>Z8l-[:EVL$ IDATIl.y-[9rabbbbbbL75j(..ᬪ6>8ԪUKu* /)er*o%'4SNkĉZW_t6lذa:uZ]˰=裛7o2d˗ϝ;'BN6B ˗U￿M6|Iܙ=籤TlEСC C^^:݄s8:a~~~'רaÆ]YYYY8,8}ʔ)/_7o^>}>///V[b <ͻt̙3TV|˗wܹjժ...UTСٳ>>O>~O>NڻwFUTIVT)00022r֭ׯ/shϞ׿#Fzxx4o|ڴiW^FkMnˆ#?DRҗ2dܷ“^j)g6~_^zm׷cǎf:qDq33oY~?yG EeΜ9111ƍ{衇9ʯ~!..mΜ9T#at:]\\zYw͙3 g…"m0ܨ9ʵ:deei *P XG>[/Z(>>ȑ#.]JOOh45jx衇"""ZbZI i4__wy ySs~r &bX-& ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;+mǏرFh4{bcc{ݪU)S܁(5@JӰaÖ.]Zx}^֮]kش~7tɱtQ2JJ^7.W\ĉm6u`dddPP͛7WZu={޽;88Q+mknѢE-4hq{̒Νn uU'L0nܸYfeeeEFF:tH:@>Ė 6.znݺW\~!44tk~~~˖-:$"k֬@Ea*֢EI7jQQQj9::!L+Bqg{hDd۶m&m>e]zH˖-׷^z"rΝ3g  ~S *VٞP&Hؕ)))jϯ}_n(\R cdٞ-/Cnb4V49\V$[wwJ*qfsrrzTo \c-9///??VZ.]"t#a{I)㞷n"z(/zTo k׮]ᑛnݳ;_<,KD״Zʏ7ndffzzz P7@bU ;Te.]9wmIIIQF^ZbE(uŊ 23Oت|+Ԅ| E92hРw˖-#zTo J*edd u`ٳcո=:Hds,A®|V (r7nO ?*ND "lv9I sjaÆ EqF "?F@ v?/"رcGfR˃vȁVҋ]DDz&$WWח_~Y->… Ma„ &MDDD8@+NZJWWt&[.]4olll;Ν;C ><((͛VڿTXqŅ'@k䋈Po)7Ӆ<EHؕK.{'''1bDw}׷o-[ܾ}?6ZZ+WhѢ+|4`:酞KlyyիWլY˫yo։'K8@2Zؕ6m;j>}ӧ4@ T'{›*H`9vp}qCϴeFL#V/"KQ5L+"B:Pn;vlܹ#FhӦMZk֬[oow}^zy{{jjʔ)%w̛7OeN>m^׏;`0 8yNǏDEEu[}޽{[ ESʑ֭[.]rssZ≉wuyyy۶m8qbHHH͚5+TӨQ!Clܸ1??!'J8L:4iRxܹ>7n{ァﴴ~פ8p~7|өS"; jذK&%%i_ݙ>|Kv=s~dx-[lݺk׮a-Z+\~tNKKKKNNi۶mttt p$M 4sO&M֭㓛{[ntS۶mʕ+GFFݼysժUHIIٳݻuQZZE@ɓ'Hxxxƍ9z޸\re'NXx+zN'"+VttرM6zٳgTRjU3/4kڝEdϞ=*[hWvh߾ ;8%`(Ņ@r!&&/>++뭷ޚ>}̙3矿Lw;wJ$$$ԭ[W0a¸qf͚yСl>(...77WDze~ʕϟ1c8y؃k׮ݢE-Z4h`ƍ=%RϬY&L "iii*UrȌ=:11q߾};wر馡C{̙5kZZY~{nj20`[^jժL|I "Evɐ QO$YY 8A։Ǵiڷo/"Ah3|Zꫯh43fP혎9)N:-[4]g787nܴiװa™r2L߾}=<***999**@NDwl2{-ˋ  ;8FbSK@f̈eff߾}+WDEڨ(t:ݦMD$<<4("53̙3ƍk֬_hhٳy^zըQյZjݺu[rK;rH{g>>{ussh4~~~/_.999͛7WgVQW^^^ݻwuݼy_}GNjٲo-"qqq53f̙3gy59; r)kN=TOX^_d  ; jj={Tٴm۶ 4RIbccBHH t̙}QRRRzz^OMMMHHxx*L?ݻw_nz7nڿ\G֞虏O֭d *<9ĉ:$"}}駝_T/''GMGEE9sW^IHH~sοnjwUvmP\]2Sl(GH\\T ;FgaΜ9* ТEΝ;nU1iWozDΝ;gΜ@#եǧ@C͛76mXaM6~xѣbŊ_pҥ.]KnW_]`1bٲek֬yw֮]kl(D8q*wFׯOD$ @}^gc2tYS׮];ydvv3g~cOV/rvp"p7ʩEM:uԩSLy{NDZnnݺ()1`@#ѣG +/"Yرc,_|ƍ|x̙"?.\pڱcǺtFO6Gϒh4hlʔ)vR/_<|pquu]|yʕ_l?SM׮];vl``֭[U𬬬Gyk׮ygVZu U³޵Ph4v)S}z֭sUTq99zƧf͚K.h4z~РA7o4hPjj;6^,v+u4hbV[ 47oޠANAXJ <رgYnݺM0AD.\0rwyG ֥KI&9m]^)ժUS gϞV/4h\xq5L+ƤIN8ѧO;vxzzZ2dHqWl(w\ zJ+~'u \8zZ8}gΜy֭7|رc+VpB6n>>>U0>a|mi޼yqyz*NRs_kݽ;ug9Cܬϻロw5k֬YFDjԨm:'޽ 'E- ::9M{:*_~wqss=VJIIQѪ?lذ~ADZj5o<mO>:ACUkyyvpϱKܑr(hմiӦM:}/^\rexxxxx)>EܹsGBÊH_HեK_>kPqIDT"dgU|ܖ/_ެY;wFYdIZS1mgIfcת###/_."͚5b[m^Y׀JVE("zы0,(֭;uAMv~~~aZJJi?SaŪWnW:F^c7c1efJ*edd L '"f)*Ur9zOߡC3;<}۷O5{饗܊J4iҤ#cj5jd>f" uM6E%ž֭E?PH?[."." ֭ZPMیׯ9{0\99Pe˖u)pͽ9 \ŊBɸp)6G<3׹r?hѢv3fLg̘v'OvxQ1e 4YӦMO8aaY 8p"ҬYxtYR{yz(CL:s::=cˬ킃<ƍj|Ӟ6xƍ]vIanV}_jԩSsz{+Ղ1 TJ!9ѳ*>/^l4iҤQF"_: )Hp'xBe낃mfal B`t6o_~Q uY-lذ7nh0D67lؠ&-<ԯ__᲼Ar}U\YD~gc⣀͛7VZWݻw ۱ccOѳ<>=xxx\r*T1c8$6GHөkHvݻuD$88že^lp vp&_-A0uTbVM8P8-?k,\`PTa6lTăV۲eKM+dOڔN9sZӧ3Fx%K>0555::ڱgY~愳g 6mܾ}{y>|8;;[Dڶm[% -Zl۶ͪeUlp,v(YJ; 9?~Μ9M]|_~ׯw|+WWח_~Y->… Ma„ &MDDD`vvjVdX{ja޽Vaĉ">F:nǎ^|EV+"&Lؿ馬Aݼyӱ['>|XD;j(^ٳ:7pΚlOd*YYY=ؖ-[DUVUVʤ8!NbE\D$KD 9a @;w̙3_x&MݺuرccԩS6mZg}666vǎΝ{衇tUVUŊ/^RZv}IEDDMBBODD,X`iM6rʴi@ IDATӺtbZJ?2Ν;E-,,Ծ#Gܶmh֭[Ϙ1=c̋ QW޹sDnذg4U"<(h!Ōz  `~25j̞=EnsN߾}UUr2;8jԨ V^ի%\Dm۶uԹxbٹsի'"Æ [xq3fxWuER\NUVP׏3f…7s=駟nMLL# a7˗/7m455uΝ˶}]'%%U^1cƄ D$--Yb$2YYYիWȈXfM}۷o{nKꫯ"##pOˀg ѣ!‘wr2R?]v{=<<\]]T 80::ٳeDgͫW YWz'NieՁgnXXl<"rej*Ǐ__z|Kvq֬Y'N(.`0???V[jΝ;Ĭ]6==]VF 5^\|ܘ2eJV ~Hl asd[ՄS(ha0[l[ح|MJ$-㧟~j׮|wft 4x?ߖy?sIYze<:tk׮RlOKZB ;8^_pMe,j ;.=]rs =]v5ۛo)"k׮=uTY?+ϟ/"-+N瑘k.yw(6 vp8+N:!" *a׭[7wKl/_zjyyycǎMJJ'xIY)L""= PMCi!a 'N0 2g9rHIСCuѣnj3m۶ƾ[7V|}}?C f)qqqnnn*,ʄ+!GԔPBBB [)N+^zk֬[?9>NCYYYZB  ;8R~~WwwaX^:ohѢ#G\t)==]ԨQ㡇:thŊ)?]]]]])6err /I4__wvcO=SO=E(c^/""ի\NCd0ݬ` ⑰#ݹcv% v(Y."1;vpk*JE#wDHnf ;!aGnK,ݐ#efLnHءdyZЉ1zrv!aG}WqU v0v꧟~jZϝ;h4Mdd$)-[h4wwd eJ+N-//o۶m'N Yf |||5j4dȐ7bcc{ݪU)SZ7KyӧMc 6oiÞ񘘘;z{{ӻwo _9|J92ݺuҥKnn_K^<11QѼٶ/'J@YYf7F#-Zh+ruӕ:.---999&&m۶ 4(𴴴~פ8p~7|өS'hw߉HPPPÆ M/]4))IվÇ/]Զc퉞ǧ#ooٲe֭]v-/_2,68-H櫛Fv)) 8={dF VVVddd>}6h+"z2]rϋȘ1c<&LXbũSn޼9}t 'zYfyxxxxx;ydF-"۹sgMCmԨї_~i0 gϞVZ\vڝ/6/$HhDr$GDwpVQQQQQQj*{˖-S˱n2ݪ?W_խ[43fȑ#GTU46թSG52D{7nڴikذF(;W.S&۷1DFaԨQ#Fh׮iׯ?SڵKNN~===/b@COݟpNAAA...mѣ=#"zĉo~iѢEhhhn&(::!tM6HxxiB'99911QD"""Z[Ϝ93nܸf͚y{{Ξ= 6oܫW5jVV[n+WyiGeOg޽nnn˅:''y̟?j˫{"n:>fС'O裏N:ղe˷~[D5j3f̘3gμ;jr w hP#mŽI'@Uvmǫ{{쩲i۶m3hF QbccBHH t̙}QRRRzz^OMMMHHxx*L?ݻw_nz7nڿܻyl5{g>>[V?< jg6vP5cQxPqA"aLqZ$`j햄Kf^P0T\#L\QɅ2E*.803?~gaAޯ{pfY׍İ BCC{=SQ_4_mm-K+377,((X`AVV9sfذauڷoopcu6@ |{ {@K&n޼ʗU*wss#ʂw%vvv*> l'~EEEH``uvxp݀,\pÆ D$M}e˖ݻWckLOLL [*ŒwY\]]55(2Çׯ_(((u떶؀_@݇ " aT[ZcKO'WS5{_@T)))eeeD͖qKhĥSw䰄]``W)/\@D...ի-""@|СYf7n'O&"X>>> 5xU 4c9 nY({^? 5k8ݛ;wM59sx[dsƊ2.8ɼt^w Ks#{>qmvMرcY;33d7+hlPVVƶS^jpDzSN+L'K/7wKuܙtqqa. ۷QϞ=uFD7oޱc)GF.4a v`d ob־g] 6EGG_pA%aaayvse" 1cG:~gy'7&2LvvJLy `?45,6}L"r̘16aٳҎ?^TTԫWOOHHH`)Fv`ӾI؅MVVرcu_|1РvnݺڵkDdmm(;z{{GEEUTT2ڵk6l(,,?fN{/o޼ ׮]Oz,ao0>Xf nذARBB׽{ s "DAAA- `t/˫g^r(((l͞=٬%DEEkfmm jժ߮]aÆ%%%ݻ5svv6k\.8q";s#66V:t(wpӜ apdæp-t0} W(~ػTeؑ]U=;DDWSd$ #t8s挟۷/88RΝ;Ξ={}֭cݻw+X\L->cNx" M%ff؁x2"o2>Pӯq@aEF$}Dw7n4e2ODB"iR1٧N"Kb ;hrlCi)dXnĈ 6fG e˖5؊ h.H؁xr"Q#?O1=3y|#M6edd޽{9;;+$$d9>-_DP(bg !cDT[j=-ۓPHuu vԩSNE( =iI8(@ $hx< $Bv"RۻPfˈZފ*rt$"*)AT aF&iW/0@ $hx<9=yCSav`4<$bI,H؁Ѱ: ")ŒX-dDTQZoNDTMJQ`I,HAs` Z ۙ3g|>Ͽxr}QQxሏz|Z#Gx)M,X#JTZUUԿD6a Kթې ='U)'LLaYmڴ޽CBBXrM6~|r"*))5jԥKؑSUUu1"RuUWWd" 7}|d2YMMMMMGfРA:iLb}/_l@c":{,x}_9r$߿_yM+Ǜa.u29r=z$ʎ=uӯ_?viiiiXXј\hh{ܐ櫭e`e摑 ,"3g 6_n] nܠ;{a H؁x2"RB !=HY-yʢTUVV4#-iSHuaV`;%...**D׭[cǎăwh<`…6l "H4mڴ۷.[u޽ڶkT6++%8Xf ܐ.,ʇ*{׹34 nݺm|ŋ n\2666Va H؁x "~v0^,%>tdLj]zQ;2/^s[XXvcsWWWGDQQQ%Hq=zիWݫ|u,_OUrr2;®c|ڷom6'ryXXXii)-]Ԁً&~C*=<}ho[Uܸq}gnn!C֮]k q+>˖-:w\jjjjj*9;;'&&*ɫlOCQU$&&=\pʔ>h߼y\;wRRRž^SL矉w [_kг5j;ah:H؁ѰC'll&k"ޱO*+I*%Ғ He4Nz2#DTlkaD^޽ 6;vl5.f?[Q=8zG$%''ݻx<֭[;tBސʸ(Oe]3իF2,<<<99zO?58OuobФ{~v'eeQ&ёML+))Q^Vɩ:҅rLr4ŵ M4c[Q=u5ё5vqq8p`='N8`ϳibHSgϞe\p_Wۭ[n5&"L6i$eF.nP~$s 7Z?WJK{AA3qgqrs6#=ǧSN*] ^8bq=Xz‚[%?~Wٔa7>f޽{sݴi3gXvK,1zXQ4W^^ҫT*0aݻwte ;+@9 0vJ,4OӉT-7+hlPVVƶS^jpDzSN+L'K/7wKuܙtqqa. L!z'!!aDԳgnݺ͛wBސʸp5'O;e뼽333u5 ;0 ;Zs2'"=_kcCff/aÆ568tB C*V`pǃՑ ݝ}B+iӆ~.ìUꫬӧhYsqq ϟ3gYZZܹ399̌fΜiʇT*e ֗_~Yߝ޿?y{{ه `DH؁n&%*ۀXU E ;x! :M1QOKUV1wdavLJ߿|4D'JoL*Xnjx<ֱ|֭KKKM$:Ƨvܸql:7|ӣGoo︸8"?~<˙H7$555DԿD" NOO'}fff굲 `\HAasڵ|l вO>#""n߾]R(ї.]"={4cMM q=,3rHV8w^%&&F(ٚDT*}^JD*>#>OD.\P$HM$:'&&D:c V5u^& Hz#GoFFFvzf6#`,|s`2<ss_޼y]駟r>>>*ٳg?~W^))),{eaaRZ옑}Փ a)cOO/buuuAAAAAAڵ+,,ܺuk׈:11Q (w 2dk6lPXX͜R_ao0>Xf nذARBB׽{/ ɜ8qD"QPPPM>=33|~~㵵3f O_x VTTԥ7IR>~-@NIXJMSI[M/;;[tӦM۸qJeeeehh(aΝ2;v1cƍ/˫g^r(((l͞=٬%DEEkfmm jժ߮]aÆ%%%ݻ5svv6k\.8q";s#66V:t(wpӜ apdæp-t0Q}FRs>/ @wgΜ#}R*zxxܹswٳgO|ݺu,{n+t 8ԩS/^İ ;̰ctv |X++ÇR$}Dw7n4e2ODB"iR1٧N"Kb ;0&;;"JZcI,AXnĈ 6fG e˖5؊Kml*+$K" xkN:V¾*:"z饗'/d/le눈dzuk'=] Y[ntޝ;v="۷U|~dd$+'&&6~DD{Μ9|ŋ닊x< G|:9r㙛c ^cm/?ׯ_Widdd[oQx<eff*T63~I:w`Kb? kHQQQ=6zhHdkk׳oqMzL( &d'˯]9h [[[t~m~|82#Fx?O]<;;-[X233cbb۷oofffgg׭[I&:tH a?++ӛ7o:uEH$裏/]t{loov֭ʂ]6fDj ;QP(+Vjܸq\MuuuNNNNNη~k׮!ClOOOwt۶mr OM9۶mk~|>2}YFFƑ#G=:||6mZ`HҪ'&&zxx԰ c׮]Ν6mZbbȑ#SbwYYYicce///^nb777mΚݺu ; "%)b6]st|Z()A^QQQL5m۶Ud!!!젰6mڄ{zz䔔5la;FD*,YBD&*I&q6mڸ5q|d2T*%" T#3hР_=;;O?U|m۶]v|_w6&gϲlѣǏ\ 0… ;wk- v-3gRRR>Ǐ?~$"##]\\Tz#S]zx<=;C'N eѢEs?aYWW׬,yZJ"_t׼Mzz'Oh;wKD3g4y{{wرo߾}8t萶M]&ϪUƔ#ggg?ĉ R4yׯW<Ξ=;{삂՘Uϙ3g:tPnO???|AdddJJSg- kIvڵ`MIH*]v%D 56Qe}w$d_~%+oٲ˪Njgrss٢WإN:lvZ"rqq1 G͋7n\׮]y:赈4KdBCCٿ ,DB1c ++iӦ]|ѣSϝ;JƬ>222???22R%[GD#Gܾ};+SϰZ$ZK?q͚5nzIyy#GR x|UVV~OΚsk֬yڙmcWV1NǎwwHVNLLR$`N~~~vv6hWyV(:::}_zȑDrIs+Wq㆏Ͽ/"JOO֭[RR̙3 .]н1{|OOO@I2L`mÆff͚3R9 /,,mΞ=xb"rvv6k۶Me˖k׮EFF*oIkiiGH$UP.W[[KDb_&TT 3k?>+ߺuk۶myyyw 8yy .d:H4yCZZZ7nܻw$yѬe˖q GlɈrvt4’1ׯ԰/ 9Nd2n wwwm64~Vt?bm*Hص ϟgmki7++K&]xqĈXAACc_$Ymy +++srr5kԮ]ү[ uQ@PYA"'%%[S\Κiq]``W)/\@D...ߴ~W^]h w}5}m۶I&]rEy˗WXADG> =z4[kDGOxD//:tDT\\ADB099M6&x69sʥ.YdÆ 666o,_O>5_JJJYY) ܹsΝcc7Ql IDAT77Xl6Ghݰ] Y\%1{b YwFЖ&chv:nܸ谰0.t7x*" M^zŋܹCjwS#(lD7O^w^嫫WdD_EdՅ1>۷߶mǓdaaar<,,tRf/6FWgA(,,br|ׯ ~:]~WgϞ0aÇj3*--7o+/YD[3hqkX:QQQKaX{:t-:tgNG>,v2eJ~~7vرrʸD6 x*tP5ufff*Kn7lAd2{LH@~Ϟ=\B`۶m}ĉs{|FMDoߞ>}ҥK( [5ly_>'">믿zxxĉnnn2,++ɓ47esM#vl>}ho[Uܸq}m !C]~XzgٲeYYYΝKMMMMM%"ggDmx0<l .8eJo7olkk,Ν;Wcmr)S~g"]~S|[Ev-ɓ7oLD6m۷̙37yW;P'|D-P(l3ڞ={k2:r^KS㓒h ;KKKvD"і6[(77·%c ID6;vl5.f?Q=4~GOD޽{WVVۺukLk}Ⴃ<Ou\WZ'''Q޽iOBФkLuVB1k֬M6uI,?~Ϟ= UΞ=;--EEEz,//OIIaZXX$$$Ro z{y.+#X /#GݵkTlF[IIAe~dNNNlz Vqc9&q9kkz؈ZB&U?[gQO>ƸQ58zё5vqqĉ5.9<&D={l(Snݺ՟t31dI&lWFF.3"uvIw@B®`*}wD~D=v/ }9rbWvٷo_ ;Fτ\Nee+7@DT6www/(( Bv:OwwwzgONT*q(e,,,e\2z08zg֬Yܻwoܹ6mXeA '>>%,Ybܥ" N=i2//<GWcT:a„ݻwQ޽322˰6+@9aBS!֮]Ӯ];Phmm|em>|xAAA۷}Yxq^^w0E e ?y{ŪXxqqOfOd;NyIiYY٩SH|XՕk8_z%Vqㆶ6cΝ;s...Ա=ⓐ}v"ٳgn݈h;v0(vd \嫯:>}힦ƍ=>s!"KK˝;w&''̙3MR#ÑJ,/b#־'"oooW6 ;h: Rhuݳ4^bGEGG8$,,ܸa7,z'&&D:c V5uLlLdl@5D[o9r|}}322ڵk#4˰g!#NyF{{zKbE+,,\lYddd^<==N322شzv!!!,e5vXݟ_|1Рvnݺrkmm(;z{{GEEUTT2ڵk6l(,,?fN{/o޼ ׮]Oz,1>Xf nذARBB׽{+ s "D*sBVӧO$">߯_xm-nj0:B@܊\]] ;t "Z ":N_C7ޠgi"Z jĉ\m頢244M,RsNЌ36nm "߿vvvNܹ#+**rss#)S$$$\_pT*UN:h\r(fΜqFK_~%[;gΜoVjvv.kMFO{yy 'NرcÇ...W\NG|||tt4UUU~JlDF"899␐&=0`ӧuie˖p6_KS ~OĂ1YX<-<~W9B5Uk<;7 %ZreRR̙3_: B}Ξ=ԩSڲuDdggwݻwo^ X[[gyyy*Y\~" '[GDg&b6kI/QQQkY[[|{{AZ*//O[ I lذ!===((ёknذaIII{~و+zG.O8:Mл~xxi΄082{aS8YZ:luaF} [b:y PψGD(D%$ر`4̙3~~~Do߾zZJR;w;{i[eRvޭ|`Es1:uŋ64av`Lܡtc>a;ݰa^KH޽{oܸѼÖd= BSItdgg:u.]a4 $8:X]݈#,--l̎˚d}W\!c:w&"a6@CښH"y҆l = ;})4] rss]tK.LKK[xq:{{˗N08>NOOD,,6@"`[JHDԜD$!>X wQ(" T*MOOOOOW斚ڥK7p@D0l悄{}v551YY!Fgnn4ӦMwޭxνz *v0))!bkk;uԩS"v`vv`dmUU=_Im1=܇-%lc=r RjnmnpY$CaW[g7*KbC[Sg7$ ;0:vʒXam$Z=$ft*NX5UQnHvД$zɉ#D Z9$lmb=a!aƿDDuuzvsp "*-EC‚H*}Ҝ̉HA ݐ "$͉?~҂,*vst$"OPcRSl;6v!aFгvD 'G h͐#!"H&k"Tk7;;pvH؁ DDO33":{"av`|DDb=v!ZH؁xia ;0>;;"jlɖjO W":!a\>Q 4ޞ:t "wZ'$jj ܣf@년HDDT[kPg$uCO($z~I,t>mc%Z!agmMvdGDb7ܙ%@넄4:k ;0>;;"j:Xhݐd2C hŐ㳰 "zvav`|DD_5VdEDTSf@@^A XhŐ㳱!"0?[Kdv`zpP,x<} ,;1.5ґ` w,_E`3ְʺt$HAF#YɅ_E`3v.%(*;^p$l |\b)%(*;^d$%%]:pB]b"87iJ+($;^h$*l |\/ @22v6>gv6[ѮF')ɗD)h*WaXQY*lW6>=FQ,=vp=%Qe(;^HHN#33aF.;{z9FŒ] խ+Q,-vp=Ñ]븐sXfA` i$%B΍b |C`sKMi)h8举kQ,1vp=vYY9`$],YFC` Nw)ql | \/8g8ݥ)7b![X,.C`\ օ)LR,_B`7r*T],Y6n&I鮸#/![XkQ,%vpI\q-6n*IɗD*RR,_B`")C74Ke [DEI+6>n5D`|"$D|X匍bb@G` \;L+\Rnh,Qm۶իz!!!!!!իWٳ֭[n1$#qnhl2*_^b P>;vlllٳ:~С9s4nxرKRRXD`J>sv/9r}nݺܹsΝۺuk߾}%9rԸ` M8Q[o7lذTRJjذ[o9;""$)%ґ@v7xu`wuv-O>W2P /$eg_:IJ+Q, ^5i䥗^J=L$BEP$eel |O8qb:u/_zI<5sLgx^p$l |Wv[liРڮ]zy:<>p;v$&&&&&رcÇ /PyfQ,^5h`˖-Ǐ ?~Z̙C.];iӦNL6p5sԸXN$%]:ba(NSbw6mڜ9sgϞmڴ9t萳? 6襗^Zreݺu__|jJjҤI&MW 4^4F&&f֭oVHHܹskժSTo%I.\:RI$ӱ"]t&lҳgիT^G[l1ZÇݻUV O?t\\Ç)7/oխ~oE1%($_oܸ9s:~С>qƯ[W\9k֬ҥK׭[wޱx\FFFNRZeN %Wv/=zbӧ֭[ϝ;w۷0b=zѢE~z'RSSk.j\,s9 #SٱQ,(:4iq} 6,UTTTT N:~xIn+Wn_mݶ}FQba4FEU:ZKaJ(q}T޽%޽;k|Q4r Y7N0P&t/X,[W 4iҦMp;l J4ի'i̙W={CL IDAT[\""r))Q,5yu` /H:twؑs{nȐ!y,۟};3<H JbllfsWr8]v5Һ{gunwy>8uT#Rڵk+Wl6lؐ!C&Nֳgϝ;w滿ǍJvJOPBoqq#}λJ?Y̝;7>>^R&MVZ'w}>hƍgg͚L$Y, &ٳdޭsӉKNEwM)#C~ˋJ;sp8cǎdXfΜqz-W6Ĵh"o^|E=w\wT_*زe#I˗n6m/HjӦM͚5 +Wz(:tX,VZH$)-UQ.Y..NV% 98s8>gΜ-ZDEEY?~aVVܹ֕shذaW.]tժU%%%%}K.΃Ӧ%΃!:uxɃ.ҷ>$%'u$m&O~Bv6f}9BCCFddO>yeؘ۷gdd|w>q<$$$33SRZZZDDD/(eddHJIIYhQ#%Þ=`_*Z`WjZ͛/;`>ʖ-k4իoFm߾]ҁ%%$$+W.:׹s~ JII k߾UgϪNk?P|ugֿܻZ#F^z=zyp 6lΝ֭۩S'ްq))y%;sFW `.tbٲeݺu;{ʩ\%1W~1t(#.),|]Ӧ  LbIbݲQlPZ]r;qTj,crl6J̈-#tqDmCfD`wis]]^])0# ,{qU0Y#;v]mJ,c̊vpFff>g.KY'u_l,cm0;KPPN#--Ʀ阋eKngV,0# {qq/l9 Rܱ]x6X#.9;b]?N-0;wm9s!8Gإ#7K Ź]VV}'Y,9s(0;Q`$eg֍Sb%=$vDF!!Y#]dswũjUI6B!Y,5leI7~OWRfA`7tո*:ꖯ[JNS `vp;#eU6Xr2vG$f3!JRzU;I0@Ն ( @22XWjI A`72;΍#,/I+!G`72^pƔXwm:aC!!JOל9Tx?;'a'T)u*Iӧ_u A`7v0Ğle>_~ѪUx9 ,.Bd]d]>5RLa7 ̫v0;{V$i;uތn$IiiWNHUQQ֌x3 WԹsgIVuk׮=sLVV֙3g֮]ۿ*sIII6(VF) }'$[7IegSL6.;;]v/_fԩSҥK[ҥK{ӦM[zuXXŋ;t`+`4_x$%%C.Ί=vL_Mi2Y`7mڴ 6Hzך6mo͛9Rw}Sc/g,cwLMuY35en޼yF/[׮]L1.5>F`v8n >Luw2Y`w^QB9:XkeeǘM' ;+:Zvz tqF# J~.`v,eyz3I2Y`w- y[o(8XRR cL~B'1cv۶mq1XejP[O/en!!!.\мyg}vϟlϟ_~AdI!!!Æ (2R SZC*lk0XN?D1Y`WFٳg[VIYYYSLi޼M7dZo͛{ْV9sjԨAqUY ~X"CӧSmLw]tYfwQ@5kY+,L.rUƬXMdOI3GlKoiӦ?_|ѣGZjEEEGEEժUG_|?дiS[VIȸF7cXvժ' xI߿cǎ;v, @lkt3FynJ[oՃ/4uzR{>|nI_nT x;?cӉ?G2=m۪Z5I6A`7i<a㸎{S~4c(vp#%Q2vF`';!g.IcP,%75.F!!97-R h *IӦ矩4ӯѳ*NH:T*(+K/L7 4k,.,LcJgiJvX NRR5zyzJGy$ *^Pa`+_o-I6iBj(""zbkxn-Ir 2܌stRWV5>jvt*CŔM ??:ޣ8[|y޽ԩQngy&>>zsIy4UVeI9gVzԣ$s*(. 8ФIv͚5k߾}v=999sf\\\f:Du=bLg[ irJk;Ø1 ٳ?*(. ߤIM6gÆ M4)'aqHs:Y,F"# nU/(I'_PLLeggw%!!GydO<}}QԩStb٨,6Iv+OEFJRRҵ/b +N*_^z  ݻWb5k֧~x3gZ,Iw^p!5Mjk_*I:DFjhIZP[PYy& -Zd4ӳg|g1v7.,LҮ}#+vQZr84dgn۶mF_~tsݾ};5ZyxŔX|S֯gQ\a& N:e4ԩS@7ٓ'ORc  IYK[FIzah!I/, wy]t헭v¬aR*% nM='IᆱG2 v?xڵ%9ݻ?|ٳgϞ=r'x⩧N;ϰuM'BB$)pyFNh3L,\t.\m۶eʔ (SL6m>Ttt… V+5]ba(I酺vQQ9RxN:7nlԨQ}7nqƚ5kR`%6vTm{+d UvLj ό7}o޼yҥݻwYfXXb UVϞ=-[q5jP])`]x$%%:^7NR@LŢ~bb,X,۷o߾=%;?E g]?^۶#G;pv}ҥ`~N>n۷3gNHv~P It떱dh.$=l6J\d݆ F͍Ν;W^-b̞=;--mђΟ??{lj6"36HJ*bnEӧKzMJ\d/b4pBGM6}׌˗/ae ;gOIzumJk,;uѸ馛ssΝ;;ohأ 븆W/cgp v76G>v??[j)fd\X;}""tz9+,޽ػwoʕ IAAA]tmF'uE`%I.\ee.cgVM'KҲe23Y`עEnݺ9|KJW^˖-G%n˘c;CϞ2v(>\ "3Ϛ5gjVo=:wÇvIƍvE`ga'be ӧ[m[|j}W5Fju_ɔS}@8G島 `5jM7tnF￧ƞvy`WW|9lɓ%ij-W}6m[n1Gƞvy`t&r;5b$͛#y5@a,p!gr9Z,Ƞ/+/fexCO=Ә7\R@7c;IQQQc%))0IJKkx;Ţ3դիyO@LUZhݻnv2ӟR>#VI7Z5s Ԓ%QCz,{}z%eeeM0!&&ƈ$|?lÆ 'MD=gYBv52vN=Oaa7hݻym@ "##׮]ۭ[teժUؓr^%o%a;֭|jR[xsݵk /РAH??Zj_`Add$llIJ{<4T22n%d;fʹzʔٳjF'yo^z'Nn IJO+حњ5ZMJj@kתukݧӟuT23չ-& #6W%%b[s6[ڵH8vJ2YYY\mGJJ.n,cIPAkתAl_˻/3Y`W~}qml6IJ{ܘ]e윢jG^xAo2Y`׭[/x&g ̢^d.cTղ$K2Y`׽{_ҸqvA IJK+K2vNaaZT:H}{;{1Y`_>c.\h֬/cǎd ~IS5\߹]ɜC5h$o>dbXh7|3&&&""ruc.|؈IJLtWؕv?>]:p@Mw*6ĺP _.~zʕSR1|=αC-ޱc *DDD4jh̘1gΜq\ .;.I.]nMj65h ]]]w3Y`~%x֭{ … ۷G˓'Ofgg'''o۶mԨQ5ko]vO]v_\pyX.JwU.TfWdcY=3#,,6SN˖-ϿoVÆ %%$$taΝpIyJRvk'-4Tk8iN}ά8p\r.ԩSWZ%J*{4iR߾}e˖_|QRZZZϞ=v n+.$DRR\2vNFЗ_**JNU+Mί%)m޼yҤI}ҥKf7hϚ5rSe„ חgϞ%KΌ)ݪ׹-w蠍uҀ85ӌ!3޽{:t5V7իW8qBRLLL-d'iܹ.9c GEFJ҅ 4Ws}ji&IҴieI;J;3f̾}çNz+W4=P:t`X$Z{t%3n 4HnNM7iR;ܩz4o$ Əߺu *[ T sη~[oQR7W*]tժU%%%%|UN<;իWvvvƍ T:th\UoӉIrmAvvݻժ$}ӷ/%wٳYq޽;00pƌ~~]BBшZӧO ֜ g>JT2ghzFC ;֭5l|)Dv|McHb4hP>}n_(?S҈#ԩSOJJJtOW|=+]^qMH)=R͚5^|kHHt">;tGkF߼|=wQvK^_k,U?sKlllVVV!;)))AAA<7d]HH^їbyԨQ дiltttbbrǹ]ٲeo###Ϟ=[l>C)ED/\yv^u$M2reW>AY5j֭{ ТE]wit=(@v|v#-bo\~N423]dԃUNє)$. 5g֙3Y=IjY,۷-]O>>R$a4Ə_@ 6]\\3_7|#i۶m:tSgϞ=|ի^&I:3W/^HӸH\ԣOO?hVر4H~~<z';v(iԨQǏ~ԪU+W_aҥF زeKK(ظp阿d%}*UvNURJJ<;Ų`~ĉ 66mڱcl6[.رcWv7d˝mٲ1wx۶mk֬se>qDݭ[7ܫs[\b/x8ъ~\Ki9O觟䓒m7 / ޙ*Ν+ɓ\j\j1hѣScذa;wTnN:#=3UOշJ5oUUK~ʃ;U7hР-ZH:r]w/Θ1c񱱱׿$Ϟ=%9Kt9.5-?`c5Q$(H6ڳG#G*0PǏsg=mJ>%KmVRbbI;|[J*SW_}/sNo ,w4HҗR ј1ڽ[-ZHW_Ny6x .B%EFFXb>`4h0jԨ;7p *)@In̅kVr_C͚ZZs(:ZԠV%,DZ(U9rJ*VyRRyr6?pa6AʫQ T E3giLt7P<eqSbjƬGy`'?b-Rfڵ__,Qz_γyu`Ndl1qy`)IIInjN$GסysmۦٳUvd łvp5c݅|θ{FmܩzSڿ_oRcU{((ypHIBC%)=ݽ!=G[H /h?4hjl$;Z~Sb$)#o_4O<њ0Az Y,=4l ;]>%v3z&D!iJUm_6mRӦzmγjkLp_~nzROJv٩F4hիl֕+԰ڷ<܇ߔXO28.ڽ[g%i25o-7<܁_`)II~c54ESS'.IZVm*6VK}_|qSܥEITPl6³zVSk᧮]k,wKҖ-_T>s #7.$D23=t r*g5FA\bkf}OOV-͚,ED`Wo@IJK-*KZE?gj[k_v$_Ի*UĉJJp9{Klq阿QGP Ed(؃ҴZ;vG?K/R%~ `\-b#׬pIww􎤕Z>,U>T{wo))I'zuu颍y<\;Z~]x\QIC4$ILtڵ:rDeei"sG+D`W#RS=}/S4%HA't'<:zTӧvmIڸQ]zu_,o5".6r;aaD?MgvQ V~-[6md_5dHvjj) 8;I/nm:&$eݻ/[ޮfMk/`,W"H.[.8X*)vpc߉ ycZIbgimD^N:~\3faCI:p@Ç[SZFD`7$O&IyS/腺k 3hVm٢gQX224_իkHC;1%6;U22޳ȲG{m(]5Ҍ:~\'vmI:|XcǪV-5l<$/ Sbsa I6[1Ws5FkqP(*J=?d3ػ֩UڢEo[ZGOuӡUu:TQjRuZT) V$2d "y^VOz߇ٳ_`^WW/Da rM:c>.O+\Ѝ*ZO9sUxI?1ooerN""""""R(+ؕ?*V^tw?Ч틏?ϦMdfDDDDDDP`'V+0/"ьnE+E^Uݮٙ8{/m[ΝQ;5 <d2/0v 6әnqG]LJ۶ƻԩiCZ&vKXAYb ;QEs?s$&;V*ժń p oE` @x8&Ѭ;9vRGXAYb WKLx Uru#P?ҬQ#{ٽ^Q&NA6w8tH$"""""";\cښJcxNa mnZYɜ:Ŗ-"U8ĉ4nLZǺuDDDDDD$S`'V`vWz0f^HH(A98o%oeD|9[T p$}Fnx{3t( HXxĒ~MkZg$Ogn]bkK׮̘sogy1у/) N`TvΎT֬qcO6mRY)7j)z9K`gsV.ߟH"20fMHvQQ̟xx:ćҹ3+c̙Å j-) ,.˷&L; hB.]?xYQZy-o'#C &"""""";\c99JZX ~u#_p8Ǐg쉓YYЮ*{FX#7M:aS_k߃ /@^zUar^x˗o*{M֭#5U &""""""֠N(N$$K6ao[2a ; {<ɑ#|Mew&ѭ*C|%aaj0)B :a\UGse)KIc7(I^=^~:uxEj&0c2`""""""r؉uxc+@J,6&Ok\3Kݱc3}: p_̀xyѮÆ \6BP`'aTe+6JǨ_i=ƤO&<3l[oѲ%66};'ҵ+ӥ;S :ragoQ:.1`>?#Oɗ:{Ņ ̟OS6իlܨNDDDDDD@"W`᝿k1?Р?uW6*UbP8wٰ  3wF~Dp0;Ӯۛ;Պ\N#W`W0}we`em{JAUʰa yw[e б#Ѯ5kDDDDDDDXe%֨"r4./i}s跂mh{+w,wxi7s(ժiI':Yb9;\V~4ĦTM$}~W^)^^äIlDl,['<9KJbF}n]F૯8p"R|"""L&d9rd;v0ֿEr;]/""""R5PZǬO-lFpqMh +ll_Ih(|=oOִnOꫯ}Û6mڳgÇ#""bccrիWK.#Fy!;9sڵ+::ɩ^z{+T`EDDDJvb;c0sJ@t<W2Ѻb-uPFaNBvm;wc/hP&[ӪZѬUDJ'cƌ)Á]Æ ٣6m+M]=\2dȐ+WZ$&&ٳgϞn{ IDAT=_|O?Եkc>]ѱXu}黅-@D&n˽c2Q>뛋\a.vd.vyط}zzL˖lIf >1~b$%%%w:kCBBL&SF/g̘aن 233M&[~U\d2yyyy%\pp}uآE.]|fy嗍sɁ""""%Ċu]_6],YesaF1j.sg3;y))lmiܘƍyiW a^g>Uٲ-[̇89Ѱ!͛Ӽ9͚Ѹ1NNjD\\\7oޜ}e|||||_xsM4)Q6m>|3g,kCCCCCCG&)oiӦ^|255?uW~Wxk?èQRSS/Ҍ fϞbŊBncc3zz+))i=\QQQO>\ 5r fc_~yاOɔvڬ,˫X : ڵcɒPagCq0E,rFtJDp0׫ZHOa{O'1Wٳ={}~}sx׼9Mᡆ,Ǝkdaj>|x \]]wܹz܇^o߾FաC}޽{Μ9 'OG6mZrrr;vqo6&&&,,lĈ9:K om׮]SL1bD=\]]CBBf͚uGkF"R^3g;v{-8 *U~'Μ93nƌѥl򬬬jŊ@-u}0RW@@ɓ'N8xX : a"#9}l˔b&LӘ$&-gyKZbU5KoG&4iˆ; e9tC;iԈ Q#PJh"y[l]tԩkbbb8o޼G}ԲiǏѣDZc&M#h"7]lתUڵkgY9nܸ֭[={vvjժU֯_bŊΝ;k 0nܸ}nܸ&LO;;__߸8KWWW__ܻy{{? ,?7ׯ_tرAӅzٳg_t HMM\~}XXкuKɓ-k֬ivIKVEDDDJ65X @I'qp 5mH`g=|7s8+]Ɔ:uS70w5>?Of&dy774qc6aC5[mYEDD ʳk`hʔ)ԩSuի/\YfYYY~gΞժU0a³> \ҒU ޳u_n ,[nBB̙3~mOO{GƎ``ƌ3gfeecƌΜ9s֭BvSN=|pdΜ9p:Բ1IJJ{ɳX+Vc;qs`g;zc"2Cc49Nx:d^ R+G<,_}ƍDGs|rxx8QV?PDDDRX*\XW&ȡ][lC &x1R%:ubhLaJN$1Y!Ch>>ϟ߳gφ t}kffԩSec?PDDD "VbHӦ抙B)}?6)M7Y/fM|W^a 6m"*hla,Əo_j #pV/yE7jՕ zW_e V&<\ZdaÆ>,>>>D&4[o#Ocǎ>իWΝ;gΜb‚0a볯IHH2d3ã[jժ mSO=8p`ӦM@K~O6-Ξ=;dȐ_}饗o{7QF>}ڲ)++W_ݿ?аa }H ;|:8м9۶};Æ/QjO)Xg:fG|i.D;QӾ5iiDDʱcr8Ǐs k9.r&V-͟Z .7^ҥK6m=<ж-۶y'r~2gxf0W~/]ڵ>|rqNq.\HM%4ЛNbcCϒժ>e1Wjjޡo߾F/:wy'|/^/shccS\WxkO?#͛7o޼֭rJWWW+5ᄏaÆŋ/^|cl ?˗/TC큌>{uޟ}c={e ;B .lѢE("""R2)gX}{LqqZ5c>~qa/*U)b..9G #,'8q¼p dfrNvMTrV-jߟʕL; <800p͚5;v8rٳg]\\Zj5lذݻy`8lٲŋ޽;222--׷aÆ]t߿Yc=ִiO>dڵǞykq ޻wԩS7o|̙[ٳ=SvvmܹcƌYvΝ;CCC|||5k>÷haUV-YdΜ9wvrr[n~^xᅊ+""""% Z@@@DDxx?Ppcމ 0J.6nSюql47 (GILhN8NX'OkN <|quߟ5 ])EC[n9yd5 ""r߽,&!!!#RTa'Vc ՝W]*֭o`W0Yzq|bV]#r98P.uo/#3gUxFg,$'$%q0Nw5HIハm޴2=ӧoDx:EDϓG\<93"h@5HisjG͚Ԭܴ>-gsYO?_ pj66Qk\FVM6m4˗|EDDDz&kk&Mpq!9;ؙy9/g2-g(FMd4'R:ۛv93"rl,@f&gr,[bۼ=vVlaC6̹>53gntT9õkrJ|}Z5UjUʗW(z/ vBBHLԈLypU^?C>/z2c>&rqpV-jʹ>+ 8ss8}g"#9wΜ奥q gٜQW:T^DDDDS`'V]Fv],*P>y,#anCO=>"d6O.;}s8{s8s̃))oUb.ͫZ՜9:9vbMF\>]JƎ n5~Wyu<ױn;:С ]vSHTJZcSJ gϚû牌"#x3gHJ2v GpHPᦢʕ˾T3DDDDD CObMF`w%mƖ-jiF_C@x/}IVD3N} 7<4ϨѻpWͻCC2PMEyF[4OsڊOX-+6m7;IC–-li@Wyu(CpPHpw~}{kLLEytLΟyĎʕlooV;=V1˄Rګly'3|+>lF1j1n4o+"b*PBSDETg;HO7WWs~W2UR>>TBJT2LX no77پ]3aC>x"x9{PE$"DY<e.;s(ΝEBT=8~FヷQW"*Q+JX^)1lmiՊuؾ#^Ԇ6KYzcȃ6بDˋ ޚɥK79wK̝m6\Fd$v DDDDDR`'tYb6m!>OO5g?Vb+x@V̳+ӨQDGs9p!Kn)ɔe,r"""o K11TDVAjˢJ"McvkpmE+ܿ,ޥK\%+''s~W2*X6*VJz"""kYBBBtGNv*Pǎ}"0 c~W?C2w|גc9ᤆNŊTx}(Իz@zLQ"*E ;M:ah؉4,fMf|;9ݣ5դZID&w]`{c9{۳g9{nuNTFg|XtOz""""eJȷn7&ȼ3fxn IDATzr26ʲZ7~6x'7""RDgγ,_DL w|Z{Ry~W:~q`P""V;--F=ԋΙe/KH !_d<;}r=3$'rtͿ;a03oH[= 1Fxgl|㨴4.^ł^muEDDD4|Grl:ʕDt4^^jE6e"]沱txG2_}$==g^LLahX8;ûY^O'o-&N[oVg|b |P-Z\JVeJVrZa~GjRS$""7IN;ȳ|e4M ww<<̟==;ʷ;)^+VE>̎ JG0`HZ%,Y+\xךHS_%""..PZṿOn~a_l,7kOϼ;3Svbe 6m8|d%+4AW,e_,ٿP0̥"""ccco]BBqqq\!99㉏ԩ~G#Q񉈈HQ`'VfL{;mIFj O4ֳ~ K~(pG>*TCIOSɣnnT^ӹrݢn\\3ߝdNΘ(`v@B!!4i+IϞe K4/pa6g3.tK>Pw""RLOv + Έ9{{M~u|wRg|.WF|<ֈH{QuUӓxvP`WbۙΝ9ro;ٙJKo$wio<""RiG^u|­UWPO1Hbe`7ڵcJv`5\i՘ƍi&o^{#+WWW s} ..?cGG DD3eee.DDD2۟'+`sg6lPe`֬fnvgak':uk4)fw`|5$&]+뱱^W֗;3tWEJ[{.$$DwD xXdy!6nT]C':uӻO:֭aքDJVd%[[vC':3j:{Ʀ05}/11\X')d\RRHL$>ޜqLbcT@љR⒳EDDLXٝtyswTdws 28)# \H$q5WǾ%-;С#^cމ1^\II*3v3eF9 7~!G/ܹ|᠓9sp[[:DD%VꖧXS=C_"Z([زM[r7`DPG:vC{e3rߗBRM%rt3Qvvhst4w?GGݱS^Zs+KX|4vslw!d}/ؖ؈F蟬EDDK7\/wg^cx^-88gpr {{ʕOOY6yzbgw/"%=N;oe0 N";8ⶲu37y/{qhuG:]kZQ)&\F|a준qmm+[2oŶ)M[Ҳ m G=߉Hie)z祦@z:qqs ׮|cSF7m256YYOOlmolʳ*0ςAu[{N/vbߪ5QPΩ";SYdVnavc7܌- Cz)9:,Sy՛sƅ,lln7p0&%=N;oտ pg*qFnvc_b=lN`TܱX22HH05:?&#46YǥF/Ϯ  ISu]_HL&~bF6lPܱT 28Ʊ=?SH'~=׳ؿѬ9͛ӼPGgEDDDn|y섷ƛg̗#̝)3"n c?c&0'*_޼Ca-ၭJEG"prlwvZى~{c|`*9qí19̓^M'"""RJy*_;}~B?0HHrءTa'KvbeCEvb_|vMh҄&OJAg>gAH6mcq hЂA5q#y㭖)Qٟ\Ƶk32cX[|Gҥo#3SXV YuFVgH+9_?7g>&NT`' 1e:G9jH !?Ow#5䂋SDDD+",/1ok$`jo!3WIL$#ЁIJ")ɊmeggaKm1~4JMre srM++7»C ! grfMMj6qC6Q#QDDDDD0r<5@ .,sI|<`# a YX,]o.RTa'QkP/:ԩC 6{C9|!O|&anN8ԈFA5IC7"""#F̙3Dz~ǎm۶^I& tH1)s뵁E+9:Y}7o&55AwLD]qUVܹѣNNN>>>Zz|A#?ϙ3g׮]NNNׯ?_B+m ؙL  NJDNt9)q(GHս^n`$wA5A}WSW_}CK?ӎ}˘DDTvQ`W:̞=7߼t iiiW\ 7o^۶mΝ[V<rʐ!CV\iYgϞ={|?S׮]x(NJԨA{v!QAC:֭cTOzԫK]clԤ"eUTTĉ1cƔZiGDDDH)+onx~߸qW_}WN2r߶J!]b9Td''iߞ5táQiNgyk8pLzԫMm#CZrQ + r뇖)R%t8|pzlmqrŊ}lmm˕+gٔw9`]nκ233,]t?xU#,[ƀbJ!(GC q(Gs<'޲: $  +r+t"?w:DHHHF1c|zh){#""mZ[%Vt ݻѩ$##ѣ7[x~mѢE\)/l,ϝ;ZWwNXEvĉzEHs3 aD&.`HiNatwmjadN*VMc{_֣3w|KYzw~Gy$ ή\rAAA ύ?%̜9񱷷wvv[ѣp$;vL&o/^|ׯޤIwy'!!0""F#GO}gy& յe˖|IJJJ= x[b21cf6l7LnnnVreo-%iGDDDHKlQjH 5555k >}LkfeeL" 4oLS:ջu %#,H"3$Nqj-k2kR&5|N亸o޼9kΝ]iӦÇ9sƲ&===44444o?~G}t?+6m8p˗/SSSA;w\zuCV^ݷo_#pСC߾}v=gΜɓ'}y~ǣGN6-99;v8~~6bĈuڮ]L5bĈ=z̚5Gի]]]իw̙cǎu>|~}J*O?ĉSSSgΜ_`7c cazh))O;""""EJ]Yh"BYf9&\;ypJ5kIK~g|v'9T8V~5a|թʪ8c͛oٲ%wVRRҩS:thjjy}Q˦Ç?Gǎ4i#<ҢEtٲe^^^Vj׮eqZn}ڵUVZ~ˊ+:wl0`qqǏO0O?-G.;;__߸8KWWs? `q;vlРA/?}t!|E8׭5ZJӎHR`Wļ+\EGG +V M.]%,Ӫv1v,͛s}, [t.{Z KxwDq^ )5ls̈́#˞WrjR-"""==4hP+]]]sCSL1L:5{Zg^… 5k駟Ο??;{iPZ &<ʕ+-YU! {=KZg{`u&$$̜9wdر ,f̘;9s1cؘ1c3gܺuk!߿;+="tKKK4h1O<{XԷƲZW]bh{%Khӆgݛ={\Y/;G4IQDiNte"/s;ǹ]k珿~~UU=j"1b/e˖_uq]1ݥK{k㋍ſHeCmҍ:tx饗 |}Y 2bzJ"%7xe$sY)N|@ !s{lPT5, J1==}̘1:u:uʘhaÆ54DGG{С-bcc }Ѷm[<7umݻ%{>))i޼ycǎ_tQM6rHGG;:-["""^AF-J(+222F?M6|l ҷv5 ))c(H"ſUKV]<]jݚٳ:;yEXnAc}ig9kr3 "d L(/9sgyը拯~>h{d2͚5_~)))-Zhsppp۶mw޵kW;ȉ' 6d*՘܁]~]lmm322^Z+,[bfdԂ'x_OLL9sfN7a퇖{#""s<' }NoJ'xxmҤɚ5kܳbŊ@ttwXF~1+GGǤ$WW޽{C v1֭[e#<ǎ;̟Oz_z]SMID}4 US>g㢪m`pC}_JMqR,RsIzV߽^޼R7 MZi.(r$)n,/ a`@^χs>gpay|>< aر/^\zjudddddڵkW\?]RՃV^iiipGhjf64qtt5k͛\/?u7-nfذaF ?*VH 욟3f߿?VUc???Q WՀj~~~u;$Bq}}ٜt}/n=У`>D-+\]*oY^"lPc@y;WtX^; gGwVϟ?{ٳg###jujjjpp[)Smmmkm63ڡHD/kX. Rܾ}ҥK?ŋSNfu}v|||ZwQQQ{ ꫯxzzN:W_m=z-k7-fn^1kNNz;vڵkVZ1cd 4TPXmo0l0mΝCxDT)LFr^rRdQ }|wE[Ox^'<-`O./ IDAT^8!!aݺu&**Ja]vȈNHH;9BS;wN PyСCoT*UXXSvv6yY[71ߴŻ"""zPSL9v...55foo興ѣGoh4!!!by֬Y umA;>>;""PżD\!n`|ЮݱcGIվ{.]ЧO1JvĮ]6 .`IcZ'89\t'#9HMGz24ISWk-i%;-@>""ʕ+sB +Vعsgff}6l l')** Ӄ6bʕ kӧ(m… 1mQQŋZm^_f͕+WĚqƙb.va⍯Űa֭[WU^xak-Zt~͛7w999.\`kkc d7```?7|!"hmPLd %LE(qX.FhRF ڈ^r*b>lNKK[dɲeF+ J_߻wĉ0ww'TM68p ((hNNN**11~;~xaa˛k4v3gΌ7nƌǏv֭[^!ζe@@#Gbcc_ziӦIgCit…k׮h4ҷ|bMY!"""? iZ7FqjZSnnn{E/Q}F={kӍmn#ސ!C,X0gΜ0Mݻw?rի#""j©S r}g> oZQa`*(G~;vpBVVm'Oxbww?Gݧ̉wy:1l/>=K( (A4"UX/ iȔJ(P& '\p/טz/ϟ?dJeoo߱cǡCΜ9sܸqFw4hЕ+W: .$%%g=\v/0`ݺu'NHJJjӦMϞ=_~E7`C BBB"##ݻR駟Z;:iiw;DDDDq2IQ:wg3Q?`231dѶ-Ο/52IAl4ݭڠD~'UU*lFeaaq&,>Z6^jBF!+l?`W/DEbo"f K11EP>D>t/H Ҽ(cx"s \\"~ gKX򒙏+WDEE0a:"""փ5F ]KP1bm/]CIA}IU"40\"FSOw)%k+W b T""""j%Qh@` "#1e 0c^GSQ ''8U3-#\|5芛yFV|aׯ'$$T}}| &|LBL:QШ9x0 U +BA& Li\bO+ ,Rګ e*s|/BVPlݺw5Qi۶ʼnX[a<8tAD lLb@18rWt@ PpL9$kXK,:pT@aQ_C-L&suu=z~سgOިDDDD ;jcTa< lA~x\7߀ ǔ%(яz f #,L)st57nܸQkEagD> Bv6&Mš5XWY42=#?9(]MZB()q9|DDDDԒ0Fԁ+Nիx=\-[`kkCDdDWۗD?C^t j\W#OJY#\,iQ(,(ٳq Ѯ/Qc kw(En r#>QW?Hb> \`g;g8vNprC%~DDDD;jRԦ~~իp=={SBDD-\)򳃝=]«ODDDԄQp,_(0#:/M?O>x-т>O0y"4xG Dr'9vs=G8ZΖt5Ec[: 8Ye%"""5v(.ftP}UYkYu+zQS3rK P?QB\*?T3rjP>nUl`_'@9RWߪxWQ|[H2`g>O?!"`op""jV,aYOA{jEاZ ~"b2}bn }.p Qg{H~]z+žCa`G]`'|-yك ⋼rDD* j"Wt-F+:љh('*ׁGثO);,a g+X9QV2Aנ/"""jP 쨱8f4]e/ G { OcFtʋGDDTdn Wo W2)6X$(((@x?m?``'bȿʛ @""""} 쨱(=5k0g-©S8v }`rϰ%$""jXҫW>Q'"" ey+Ei! :U=E)Js(]} TSgt6ܐQfp={IލK?_ $6mx!̝,%C}9ȩW$JKPRla5_ JJP HtVAJ0"p(l6;cj6n3.kޞWOb4|=|+o2VDJ!a7)@dɠE2x !j-P $sb*|?[Xf"""zNE5B14QNX}ށDD|35}4]?oAFW]?o //^Z"""j2"jGc6<,BT?f N)h#*E\ (DalȴZ-=Ν;Us- tl?i|<֭ÿ lm1w.{~~ j`P'j@~*P61ޟ(' XjAdb@Q6(|:!j-KLL 5!vX@'>yS_++/G~ѫ>3'5L ܆ȼ>Z6vԴQ#>{=d|_S֌?=DDDD-R٠HEy MX |@Q0&yD4hx4~jOD`OE*>S ƏM5-vԈ/P|B~"Xҏ鉙3`zADDDDuaJgF klO1 B=w UB/[~bb'8i?L e``GM5`'ӢGLU꡼< ¢PwBLC'" d/"ԏ dY!LDG~lZ i1}U ^x*ŎؾII5>'x=dJ'8z"[PŃs"\HIA(QS?DZюѲ1U(8pŞ2=m(-խ `Lxz!""""j2"/Յ+D("A ꧁Ҏ(z1Y꯬fz-p;zC,ŋ5jOo&yQb`GvQ9~f22s'mÍW)SЁQkT<{K)Ԙ!nXdQɏ5-vTji>Z)֭ؿ{2 S1e """"f7q{4LY0#*AX+:Q<~B_ntСlTDDDDD(յWĎ]:&Nha`GM5ـ7ٺ~nGG CF~ Ƴyx:7O(.]BDDDDDr,ʘT1&a|r&a %7ggr%""""""jUQ`jէ#Gbzܹ˗0T*=K1`1s&v@R""""""5w``#Pc*\Dx]tލyСz[o* GDDDDDDD- ;j:K sQA7w#- .OӰ7xyb0,_ÇsFDTA||L&ds_y~Ŋ]ODDDDd vt\'a,]G'b 8ygi\/e|9t#1r$z pcΛ7oΝu۷`GFGGGGG ;jR%`ZpsCP}DE=h}44/eeeҲ7Lqԩ'N;Ν;w999YYY&M8p`}HDDDdQS[ x:'cdP*q"#q4~j5q5cPQˤP(.]ڄXм 8gҥÇ'?T5ٴi|}}O>ݱcG{wCBBjܹs/]daaQ/;'v^ $<D.Ǹq7JJpΝo!:oݻ{{vՅwb8;Q=xwWYY,o.nd2ٺu""".]tCM:w$"""2[?FjjVa'L?>Kop? /S'h]; X hg}WuSw"?gه{[7ѣz'%QK,.]̚5W^r\R/?s]~@v1"00׷… ;vO}7n|*9rBu۳o߾=gΜ'O>V_]~V3gryLL̖-[oܸ1a„K.z<=zw^llq̚5KY`|AIIIhhhUݗ_~)x㍖tJC 1յswϿs玿#HDDDdؑyxda<cbXݷ%%^G|<{ z@ϞݻgOt +5+ t[J2!!AMvv3JJJlll^|EiӬY.]:~5kּ ruu=zO>)\dɰaÒO:믿:GXSN㏣FkLdɒӧOߺukʕ6lϷ\VV۷Wn9mڴ={\|Y$Hnݺu)#Gի5ܹ311G>eʔƙݻbF???ݻRV?XyL9bƠA4s$&ō~sp}۴uCnUgR"2<d\.7֯_ $$D?:twށj 6ڵn۶M?Ю]+Wp)⣏>:aϞ=ݻw ]jS_={/+vZ… kQQQu8__ Mݽ6ҦLwv$"""2[ l ~0/;cG<5ٺ.6ׯ ǣ El,*~F׮n?UQ:~^z]6UuV2eJ&L 111r5rpp0xyyy͜9sӦMJ~>}z_#G'&&f޽!!! BTRRcnnnN@MmyG""""BgĬap pMq1nĭ[޼ (,ĥK04R?p}{p(pF߹s縸o .|ꩧڴiSU1D>}j&{ffffeeU{1bD5{ɩ'7iر6mp…& 曋-R*aaajs1JJDDDD捁e bfؠo_[aen.n­[Exo#?q".^Vkz IDAT;Ct-L&۲eɓjuxxxxxݐ!CxqXUΝ;b!""”T+vUu],+++**Q̤M)))MuQ^}˗v-u NLcV1ZLW;2'KOٵx1fv-'<=Qqy]wEb"PRj5n% :GW'-x{3#=z޽[V?ٳgϞTթnݒL ڶmMQM(mVqo޼@hhBCCŦN7!lٲs AAAoOoU54!ߣHDDDdؑ1k1x0RAZ㑘$&"/Z"5حTyy} , 2. Rܾ}ҥK?ŋSNqLjX8BSܾ}M>>>Mx-;|𨨨={|W<==NZꫯ6Kl='8p$::zҤIܿ?..BҥˣHDDDdؑafG,,r<yyw HIARR 6`coo]x'-G\._xqBBºu4MTTúv陑 ws8wR41baС~R_`V[cਨ(J䔝 `޼y-~xرk׮?ZrÇ6fEuޑl1#̎j''cdSnn/1iiHNFZ23umxna퍶m//xzBmQpD-PBYYZ&{Wׯ_h-[w^s;BSn޼w5Xk.rgupp /.Y$33344I_nOmĎ3;555:::""b[5MHHX5kVHDDDdؑbfGu ggY^q1RSu]r2RRtRSlҐW?5<<]+ڶ7<<ж-\\xوrܹsE$Pt0`i+vܙo>77 6HIΝGh+W4HO. *z?>>>EEE/^jW{Y[[ϟ?͚5W\kƍׂ{tZYYXOy>}cǎbV}.]O>#5) ̎ꛍ |}k|kI 22 Dr'>l*MCWgt%K,[lя?BPT111_{L8Q?sww8qJڴiӁ RǏ._IFcǎ=s̸qf̘1~x{{k׮mݺ5)) իl[ZZ9r$66^6mKkСC]]] /\pڵFYTIIIb A_C 2e-:x`DDD|||~͛׻w .ݱc3yG""""3;jDhW@ed 9HKCj*23tZV7Pc77^jZ @IIɱcǎ;VA``%oԨQgϾvZzzƍ+haaTGX!C,X`Μ9aaaaaaw~ՋիWGDD߿_Z)|}}}ÇzM߼yS ;KKC;v,//O?w=ڎDDDD扁GIfvd.ѥ 鎖)/+ 0\RklJ' nnpu5\ps;\\t]y}^z%Ǐ?*޾cǎC9sq8hР+W:th.\HJJ*--۷ӧѣ{v5V_0`uN8ԦM={ˋ-o>dȐ~-$$$22޽{* (~i͟?ʪsS(Gowq…,[[ݻO>7..C /cfGUn hWWs⢋~N2I1"**ݻM8'/Q hi^jBfBn x^pݺUFzt[.Z-rrca5|WGG^7qʕ(&L`ZGDDDz0C? | P dbWENN_ *TBnތ *wF=6mx ʕ+łZ vԬNL>:PkdgW,<0U^_'훕,S P;;89ppBKvu'_Rx''L3CDDDz0F|(;g` ! 0}~~z TPV냴=ao{{89UH 8;5..pp`M(_|_|!}P(nBDDDԺ>Pvˀ `50~8!JKFxuG~> ŵOҦFO$}ΰ)JJ]3''^p2;2u~aϞ=yBZ׻AK)V)G&j VyyPR!'GBݿ \{{]ឝnRʩ' [mYKDDDԬ?ZVYbiŽ9gs5`pp `ͳCdOϺU)Pu ,uYd28;C. ..Bkk] hcGG$VVQ0vˀ,`#Z('Gǚ jOeb\V1P\CtbT'=x`)^֨1AE 1"MbP (Y`G1 CTQoHDDDD2π=f6[ L|y1]TrB@7I# /n@1 X QާX)()1 $; b@CYYM|i`aTAK?(fUEJ{%꧇pZd"""2jU@:p8׀k'30xxhEDHDW㰴URTz^YdmI3(H4*4'8<3G}m*KDDԼ0#⁝/`ЗI222> .l]#(((>}#G5џ}Yя:AP q( hMT$}R*T5&FThN-O$eү|4zU* 숪@$p(Ҁ~6 OQsuuOӧIZt4[ERS8qܹs{5iҤ+ h\=1_.OJ!<&cR(H>U;W 8cU3}pDzmE"ؖNgl 8 ?2 *GDkK.mh 檲i&>}cǎb{s^tɂ}#ʪ%1Zdd,5+KJ`m]QzZX#YmtvT3Z8Q_dQEidUh44:5(* jK6~@$h[-`_yo ЎgȈ?X,o߾]JduEDD\tի:u*X+aiiȉ͂ VEZYRy,E!M+NaVےHS: c4"4ZJj<}Xӟa(5+%_= H.$?D@t:q<"jzZ6<<|޽/^LOO/))qpph׮]^F/TKV|rVVUǎGoh0IkzzwZ[[M:wQ{#_#4q7n_mڴի-ZdWڡVnӷo__~_rԩz/!!A.=JKK۷o⒜lRj3N<`Gaߞ={65Gwm^*k%~''F1ZhaT~FU(Et⮫| b`GTggʿ.#X@g3z{݁@O0Qnns=2/////߿JJʚ5k :s̬Yݻa͛7o޼u֥KU?RoS/ǾիW^ݵkɓ';tGXݻwϛ7`ii`۶m?oETڵ74fϞmׂzR?~\,LV_]~V3gryLL̖-[oܸ1a„K.+Vzq޽q5kS`>$44N*{7֚1c˗322;t0tW^yeĉF_tI, 2hWWΝ;߽{7??Ν;%boo'OOphOjɓmk:u5jX3eʔ%K>}֭[+WܰaC}岲j߾}ny\.o߾OzӦM۳g˗O֭[N0r^z~;wLLLÑO2s9rD,jQ}6|ݻwQ'ܽ{W,TS'ݽ{2}66J+Q+DMG Gy*⁛mp ҁt: ++ @HH~Z'ta޽j6lصkݶm~Z]v+Wȑ#RVU#4G}$uÞ={wj*'8Xpp={|嗕PV `…zШ:o;XYYDFF0**'kى {U)m//`4OdN,;#;z b\2 H<ʓ;hx큶@[n"իWM%,, 믿nA v:O2 &G9988 fΜi&RO?M>ȑ#wސ'JJJnnnR1gΜ]Vk޽{yyyɳgώo.M# ̞ > H{ħ2 Ha;^ O=Q߹s縸o .|ꩧڴiSU1D>}j&{ffffeeU.1bD5{Gh'xCرc7m… Mx7-ZT*‚ehsεٳg55kVΝGUVVvȑ#Gw2vD͖;3IT H; %@"PpF@[hx7^p5 j d2ٖ-[&OV O7. ʪ»;wSRήUҲGhj?64EyW/_^XX5&2|W^yEi~wDV;:cJQ `S@ / 8 \Ҁb  ހރg_@W@A;߁-4ϡADmر/^|Wlmmȵk>;vfv@V^iiipGhjf64qtt5k+W/bellCЭ[{=3bvǸ`vIĤDDDD-+Zk#б RR˿Lq1$ x T񕈚H=vޭVϟ?ٳgFFF[nIS km63l""ԩh?/Y)n߾]&&}>|xTTԞ={BBBlll+SN~Wu%GIDDGGO4ߏP(t_X"""jQ-I)^B.%wrL>kp'@8 @8U /!Irŋ֭[hDֵkWOOό脄)3#4Źs 6/ IDATJюǏ CckGEET0''lͳnַO?$z衿~رk׮?Zm̘12DDDԂ1# ȫxO5Wqߒbk,s,9 v3 ʛ%Z:2]xLꫯ_^,[l޽v(,,ܼyk>55u׮]r4Z=rpp /.Y$33344I_nOݘV7|#73;555:::""b[5MHHX`IDMJD{Lkыr#  5|5 <'/j 8V#`rP :+W̝;WDB E7L ֯XbΝsss۰a4_𲲲s6bʕ kӧ(m… ϶mQQŋZmeb_f͕+WĚqƙWЕ+Wzxx˞^5ݻw/^XDO>A$geebŊ?O͛wuj{K.ӧO:5# 숨\ZI^5*@j@UO(Jji^)˳lz׻wo777KK˴Hqzxyy}ו]h#""7o޼޽{䄇_p;,,,KDDD-;"jD:P*(TwE[O y[ R jU*eyRXM_P,e(*))9vرc*7 D5*22r׮]KOO߸qc-,,7dȐ ̙3',,,,,LSݏ9btxzzꈈZKO:ePqg=|0//W˗/_i̘1;v2Wx1Snnn{y@)Pۻ}rWki4mHM15Ea Z1goOio;jSּ#fQTP *gz303|Z,sZ|y#)*)"=t[T@`B*OnW!S8(SEEEty84܆mر;vܻwojjS._j]]]۷oϏ?>,,ݻw믷nݚ[VVwy/c=Vj]v]xqrrrnn3<o>ѣO?wK.iڪ4hM2>^zȑ#Ǐɹq`ݻwTTT~8s_~5k4i?|3fo4,RT/''7;;!-rJY^l8X!74X͏VPm4"M)#ؘ888?iov`;4wǵxHt _)ъ}Z;"zB)))]WщH~]u:TPLN&~izkeԡ)cd"`AfffJJ < n_:^mmȝ{_[2)%T,4{K*irozvl+4nuլ~z"MXPꖋI>HF)$4uiZӷ+ U,1*Z *1"ǿJ]snթCzV7Nui:ivi-Zx3LP~P~ ;D"ƻ~`\BP:EZia ꐫIdIf3 =&Zչ}i S+PU$R$rQ)w+`乘,FtTVROcP{9ޑՐR ޓk0ZՅ1ҪU ;DUN DJDnln[f^:FLF6JNL-37Ni;/>1ړ- ͫ{)#U՟TUvVOumMȿDD,"ru#W- '+;wohr$n.ȫR-jRn6ݯGSKΣW#:^8Hkn9::VMDʥbKC9"MEtȱǏ]X;V"v!`EҥKǎtR7@y7@p P{wQ ؙG&&&:;;#+B`X;5 _}Ո#ڴiѳg3փE'q%%%{?-[ 8^vO׏5*99YDbbbo޼7lذnݺW-[LI|}}<ؾ}{eٳgΜbbb222" Ph^_`zj5Fxbe`?_]۷ʕ+"4`~~[^nP޽{Çm0l0F#"F_vv.##Cѣ͛7scΝ?^PR9| P_\^^cz@"s:NpqqF=6@}q P{eee"rmWWjҸqcwwwƍ"}vR\\|Νj6V(` sqq)--U<<=:`0N:~~wFh4#G|\')//ONN3gNpppV5j?a„;w 6ĉ˖-2eJ޽[nݸqƍj*88w=<;3c ]f͢a5Cy51jhܸqIIIlٲeI&]#Fl߾pݟhժU_nA>}֭[סCz?Tqy̙_p؁C 0@+l̙/ (<<|ΝUⷌA"C'''WLLL``͛7E%%%[n 6(^^^mڴ_] ODꫯZJ 5u֢E ViݺuZZ?Ny&G5y;wܾ}{OO ._WPPPPPPv9|pF`W01cFTTT֭Mڵ+**JI4ƌHymذ!$$M6w}wѢE"hN>SOQi3g[l9eʔ S7oVN۷oٿL =zdddȶmFEn| j\u"'Ntnذa"蘗gzLy> G˗O6 :zh߾} æMrssgϞ-;6f 7ۧUx~[^n)? V``ND̄4pvGʆVaܹ3yd0lذHO7 Tw^eCTٰaÔg$''3vSu"`I۶mR̙3FΝpخy~~~"RXXx9z Qu"`^?{ORް'FO?D$(((44 o,\PD׿k׎ؙm۶urrruu0aMyA`:Ǚ 6lD7nHn*KyZ?ϟ?uԧ~zƌ"ҫWoĩp؊޽{ܟ$%%oz^ӝ9sfÆ ߿ŋ)oƜR^^cz죀D3g*> [w ==آEƍWyUJ*b5Zre5WaC:vrÇ.%%o߾$+ <;ԖNS6\\\,Q[/?,""By *?|믿~?NNNT8lNVV_;wn`` ''&M{ꩧLw 7Θ1'N2Fݴi`szɓKKKy?OtLDDDNDwܩqÇW@ ءYDu>lD/I&mڴIDvk.WWWͭK.333''$$lܸ m裏4͊+5j ~EEE)| jK>2P-1GBO0a"ҥK{6oޜj߾~lS!gΜywE_ׯ'hh l:ujmԎ)++T%''{{{Sްo R6~g*6dݺu%%%"A%JTeNynWQQ@ ءulmp ӳC죀Dt̘1[nU 괎hܸQa*+g4Eͫd׮]єe_|AyÞ˭zxx j+44To6عsrh1Ghܹ3rH)0ݺub&, ;SxǨppByVtN(oP[!!!mڴ +v`SY Tu"2N/'%%HPPPrr}:h4ϰ aC>e-R͜9S٣7;Ԗܹs؋/dϞ=;##CD:wԩS׮]۹sgZnnU۬{/*? K.Uȑ#vJyö92$$]v7"7hР9s|R={Do߾ asߵkז-[:99j4f͚+qqq󟫘`]y/PapFء~`E+B`X;V"v!`E+B`X;V"v!`E+B`X;V"v!`E+B`X;V"v!`E+B`PwRSS5F;w.@И3fLՍwa~͚5t`u\v{[zV8ر#??RR \viӦ!6v>999Hii ,vΝ;}#˫o߾"zjKm֯__VVhJz+"Ǐ?~JGwz6n8WWW1++KD&O|o_z6m8;;O:5##w=bĈ-[:99y{{4(!!ADrrre.^}ڶmoѫW/gggOOOCUg_^{5??Fs:δ`h4UYYYV4Mu:]VVFyg^_ysIDAT}-[=ɩiӦK.r Pvyxx(nܸQexѣ>6mڮ]^Z^^^RRr̙+V͙3h4V>KO:uȐ!|z79jԨʯGաCѣGg?c~~~yyyQQљ3g;wT7nإK+W䔕iٳgw=;;oN*"o߮I_}յkDdĉ...[Aݺu+88xܸq۶mtzɓ[n}7.]JyOn/66vڵ|)JJJ6o,&,ٳgOxx?<<׷,--m͚5-rrr_Z\b8;;O81$$ɓ+Wܾ}{Vm޼yXXX.]ڵkZPPp 6[:裏FI^|E77+V\x_~&" ,0mߢEZ>,":tpssjGݳg P35<FDFc,ذaCtt{~뭷,Y""WQw)//qׯ7DҥK/ӧ5MZZZPPz=z{իzHՎ1b޽ʗSLYr Tyڢݻw?Ν;MMMӧwG<("oRˣG>.믿^xtBnVV2+vڴi˗/7YݺuEݻw?rH1}o߾pB@@E9”XP4޽~S+O{gz]}Q^^UțD]v h4F`"M׋ȢEL:quuݴiSӦM-]tС:Xn]FD/eio޼SD CӧOW6ԑtOaM_)//3pHjX^vZeONN2UX~kftELiƯZD6mj:^O㣌{P-ZxE$55RwwwZ֭Ǐ/"o޵k^P%$$TXzt͚5"]9q:]z.;`ڷo"wW5kF'' &Tq .]$";wͱׯ+D_u떈ׯqft^^C>k*hrss-ۧOKO U6L+O}mۦP111~{;vM6;6992x(XtXؽ{>}ӧ2j쥗^jݺug;wN8p!U-??GD\СUڼy믿n:k CLuW0a;S\\ΐJM<FYbu:]bbbbbK=6p@PbԨQ^^^"z}]pA1tu XqqQf۷o58qڵk9rĉ_R*3KRZš"̣G*;O>}8p2ԸD$44رcQQQM4Nw 4}˖-jO>pqqZ|yBB2EUE"2yUVUrjj-gO2 w0`@wܩU$e! O,>^9T&j{N:mܸQӥ9rȑ#t |:a2h"\)O<񄲡<6ڴil?RuƨBe[hhٴLy0\Ξ={Cm۶pgׯl޼Ν;B-[5jT :ƽge۽{?QzK,o` "?|``ɓ{SO=ղeKIOOWfVO?MII)--5FmZ/("fڷo_IIIW, ۻw*Ojׯߺuk~~6jԨrcGGGeCy,qss1c1 )))T5"??zիWHIpUh42aΜ9տF1bܼySVA~~u*W1]`x{berkۆ  2r1cƴhBD^3{uoվ֮];e;`]&OiӦj2w\%ڲe͎n+))YnꭷrppٳgtǏyfoնm{LDgzlڴi?Cu^yopܸqJ6m4OOg5jhʔ)"y! m۶m;v ށ,Ybvb5ڵ+% Xt<ġCje˖m۶-""k׮^^^Zŋ?޽{yu6k֬ /&&f...NZbEvvK/$"7|sΜ9aȐ!'Ovvv>}_|믿ɓ'x͡ /8qbʕ"ұc[:wڴi .4 ꗖZ:::80))cǎ}W5kz7o^޻z[o5gΜݻcǎZ6++kݺu#J`PK<ڻFDa㭷Zd^:&&cǎM8ĉNwpp|Mӝz__re/ g͘1O>Q o޼YIIIO?u-ӣ}wyk׮&M<$??*"<<|Ν"ҺuK.99Y6==wN+f7[=z^XSRRΟ?Ob#2NNN233SRRDdu4h/_zjӧO1cXk7oQy/-##W^ yꩧ ?aÆsΉH_S.\jlٲc۷ ;Е%%%%%%U>m۶j."H}駟~ٕm` UVEEEzyy9:::99mvȐ!ɓ'vj=Vx{{=:55g`X%;V"v!`E+B`X;VE^r_0IENDB`logaricheck-0.6.1/src/check_logaricheck0000755000000000000000000004452611764403305016262 0ustar 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Logaricheck - a nagios plugin to check disk, memory and swap usage with # intelligent thresolds. # # Copyright (C) 2006-2010 Révolution Linux (http://www.revolutionlinux.com) # (C) 2006-2010 Guillaume Pratte # (C) 2010 Michael Jeanson # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. RET_OK = 0 RET_WARNING = 1 RET_CRITICAL = 2 RET_UNKNOWN = 3 from optparse import OptionParser import traceback, sys, math, os, statvfs import ConfigParser #### Filesystem #### class FileSystemInfo: def __init__(self, device, mount_path, fstype): self.device = device self.mount_path = mount_path self.type = fstype self.total_size = 0 self.available_size = 0 # some filesystems such as ext3 reserve blocks for root, # so this size might be superior than the number of blocks # avaible to non-root users self.available_size_for_root = 0 self.total_inodes = 0 self.available_inodes = 0 self.available_inodes_for_root = 0 # Get disk usage statvfs_result = os.statvfs(self.mount_path) ## Blocks # Bytes per block block_size = statvfs_result[statvfs.F_BSIZE] # Free space available to non-root users self.available_size = statvfs_result[statvfs.F_BAVAIL] * block_size # Free space available to root self.available_size_for_root = statvfs_result[statvfs.F_BFREE] * block_size # Total space self.total_size = statvfs_result[statvfs.F_BLOCKS] * block_size ## Inodes # Free inodes available to non-root user. self.available_inodes = statvfs_result[statvfs.F_FAVAIL] # Free inodes available to root. self.available_inodes_for_root = statvfs_result[statvfs.F_FFREE] # Total number of file nodes. self.total_inodes = statvfs_result[statvfs.F_FILES] def __str__(self): return "%s %s %s total=%s avail=%s for_root=%s totali=%s availi=%s for_rooti=%s" % \ (self.device, self.mount_path, self.type, self.total_size, self.available_size, \ self.available_size_for_root, self.total_inodes, self.available_inodes, self.available_inodes_for_root) def get_all_filesystem_info(): # Open /etc/mtab and extract the filesystem list f = open("/etc/mtab") lines = f.readlines() f.close() fs_list = [] # For each filesystem for line in lines: splitted_line = line.split() # (device, mount_point, fstype) try: fs = FileSystemInfo(splitted_line[0], splitted_line[1], splitted_line[2]) # don't report special filesystems (such as /proc, ...), # which have a total size of 0 if fs.total_size != 0: fs_list.append(fs) except OSError: # Ignore cases where the user can't access the file system (fuse) pass return fs_list class AbstractFileSystemUsage: def __init__(self, filesysteminfo): self.fsinfo = filesysteminfo self.type = None def get_total(self): raise NotImplementedError def get_available(self): raise NotImplementedError def get_available_for_root(self): raise NotImplementedError def get_real_usage(self): """ Total minus available for root """ return self.get_total() - self.get_available_for_root() def get_non_root_usage(self): """ Total minus available for non-root users """ return self.get_total() - self.get_available() def get_real_usage_percent(self): return (100.0 * self.get_real_usage()) / self.get_total() def get_non_root_usage_percent(self): return (100.0 * self.get_non_root_usage()) / self.get_total() def get_available_reserved_for_root(self): return self.get_available_for_root() - self.get_available() class FileSystemSpaceUsage(AbstractFileSystemUsage): def get_total(self): return self.fsinfo.total_size def get_available(self): return self.fsinfo.available_size def get_available_for_root(self): return self.fsinfo.available_size_for_root class FileSystemInodeUsage(AbstractFileSystemUsage): def get_total(self): return self.fsinfo.total_inodes def get_available(self): return self.fsinfo.available_inodes def get_available_for_root(self): return self.fsinfo.available_inodes_for_root #### /Filesystem #### #### meminfo #### class RawMemoryInfo: def __init__(self): # Get memory usage information, according to /proc/meminfo f = open('/proc/meminfo', 'r') self.ram_buffers = 0 self.ram_cached = 0 self.ram_total = 0 self.ram_free = 0 self.swap_total = 0 self.swap_free = 0 for line in f.readlines(): tokens = line.split() label = tokens[0] size = tokens[1] try: size = int(size) except ValueError: # The line is an header, skip it. continue # We have to approximate kb to bytes... size = size * 1024 if label == 'MemTotal:': self.ram_total = size elif label == 'MemFree:': self.ram_free = size elif label == 'Buffers:': self.ram_buffers = size elif label == 'Cached:': self.ram_cached = size elif label == 'SwapTotal:': self.swap_total = size elif label == 'SwapFree:': self.swap_free = size f.close() class AbstractMemoryUsage: def __init__(self): self.total = 0 self.used = 0 def __str__(self): return '%s used, %s free' % (self.used, self.get_free()) def get_free(self): return self.total - self.used def get_used_percent(self): return (float(self.used) / self.total) * 100 class RAMMemoryUsage(AbstractMemoryUsage): def __init__(self): AbstractMemoryUsage.__init__(self) meminfo = RawMemoryInfo() self.total = meminfo.ram_total self.used = meminfo.ram_total - meminfo.ram_free - meminfo.ram_buffers - meminfo.ram_cached class SwapMemoryUsage(AbstractMemoryUsage): def __init__(self): AbstractMemoryUsage.__init__(self) meminfo = RawMemoryInfo() self.total = meminfo.swap_total self.used = self.total - meminfo.swap_free #### /meminfo #### def exit_ok(msg=''): print 'OK', msg sys.exit(RET_OK) def exit_warning(msg=''): print 'WARNING', msg sys.exit(RET_WARNING) def exit_critical(msg=''): print 'CRITICAL', msg sys.exit(RET_CRITICAL) def round_float(val): return int(round(val)) def round_percent(val): return round_float(100 * val) def to_mb(val): return round_float(val / (1024.0 * 1024.0)) def get_thresold(value, sensitivity, agressivity): # Invert logarithmic function to calculate appropriate thresold according to # total (disk|mem|swap|inode) space ln = math.log(value+10, 10) val = (sensitivity / 100.0) / (ln ** agressivity) if val>1: val = 0.99999 #print "x=%s ; sens=%s ; agres=%s ; res=%s" % (value, sensitivity, agressivity, val) return val def get_thresold_mb(value, sensitivity, agressivity): return get_thresold(to_mb(value), sensitivity, agressivity) class ConfigItem: def __init__(self, sensitivity_warning, sensitivity_critical, agressivity, display_unit, display_divider): self.warning = sensitivity_warning self.critical = sensitivity_critical self.agressivity = agressivity self.display_unit = display_unit self.display_divider = display_divider def __str__(self): return "" % \ (self.warning, self.critical, self.agressivity, self.display_unit, self.display_divider) class Configuration: def __init__(self): config_loaded = False confparser = ConfigParser.SafeConfigParser() if confparser.read("/etc/logaricheck/logaricheck.conf"): config_loaded = True # Default values, if the .conf file is not present. # sensitivity_warning, sensitivity_critical, agressivity, display_unit, display_divider self.memory = ConfigItem(250, 100, 2, "MB", 1024*1024) self.swap = ConfigItem(300, 150, 2, "MB", 1024*1024) self.disk = ConfigItem(150, 50, 2, "GB", 1024*1024*1024) self.disk_inode = ConfigItem(40, 25, 1, "M", 1000*1000) self.fstype_ignore_list = ['iso9660','tmpfs'] # Default list if config_loaded: # FIXME : Refact needed, we are doing thrice the same thing for confname in ('memory', 'swap', 'disk', 'disk_inode'): confitem = getattr(self, confname) # Integer options for intopt in ("warning", "critical", "display_divider"): try: setattr(confitem, intopt, confparser.getint(confname, intopt)) except (ConfigParser.NoOptionError, ConfigParser.NoSectionError): # If not set in config file, use default pass # Float options for fltopt in ("agressivity",): try: setattr(confitem, fltopt, confparser.getfloat(confname, fltopt)) except (ConfigParser.NoOptionError, ConfigParser.NoSectionError): # If not set in config file, use default pass # String options for stropt in ("display_unit",): try: setattr(confitem, stropt, confparser.get(confname, stropt)) except (ConfigParser.NoOptionError, ConfigParser.NoSectionError): # If not set in config file, use default pass if confparser.has_section("filesystem") and confparser.has_option("filesystem", "ignore_list"): # Create a list separating the items with ',' and ignoring spaces self.fstype_ignore_list = confparser.get("filesystem", "ignore_list").replace(" ","").split(",") class DiskCheck: def check_disk_usage(self, config): return self.check_usage(FileSystemSpaceUsage, config.disk, config.fstype_ignore_list) def check_disk_inode_usage(self, config): return self.check_usage(FileSystemInodeUsage, config.disk_inode, config.fstype_ignore_list) # Common code for disk and disk_inode validations def check_usage(self, FileSystemUsageClass, configitem, fstype_ignore_list): ok_msg = "" warning_list = [] critical_list = [] for fsinfo in get_all_filesystem_info(): # Ignore certain filesystems if fsinfo.type in fstype_ignore_list: continue fsusage = FileSystemUsageClass(fsinfo) total = fsusage.get_total() used = fsusage.get_real_usage() free = fsusage.get_available() warning_free_thresold = get_thresold_mb(total, configitem.warning, configitem.agressivity) critical_free_thresold = get_thresold_mb(total, configitem.critical, configitem.agressivity) free_percent = free / float(total) message = "%s: %s%% %.2f %s / %.2f %s used (warn=%s%% crit=%s%%)" % (fsinfo.mount_path, round_percent(1 - free_percent), used / float(configitem.display_divider), configitem.display_unit, total/ float(configitem.display_divider), configitem.display_unit, round_percent(1 - warning_free_thresold), round_percent(1 - critical_free_thresold)) if free_percent < critical_free_thresold: critical_list.append(message) elif free_percent < warning_free_thresold: warning_list.append(message) if fsinfo.mount_path == "/": ok_msg = message to_print = '' if critical_list: to_print += "CRITICAL
" for item in critical_list: to_print += item + '
' if warning_list: to_print += "WARNING
" for item in warning_list: to_print += item + '
' if to_print != '': print to_print if critical_list: sys.exit(RET_CRITICAL) if warning_list: sys.exit(RET_WARNING) exit_ok(ok_msg) class MemoryCheck: def check_memory_usage(self, config): ramusage = RAMMemoryUsage() return self.check_usage(ramusage, config.memory) def check_swap_usage(self, config): swapusage = SwapMemoryUsage() if swapusage.total <= 0: #FIXME: Add configurable exit status when no swap is enabled. exit_ok("No swap enabled.") return self.check_usage(swapusage, config.swap) # Common code for mem and swap validation def check_usage(self, memusage, configitem): free = memusage.total - memusage.used free_percent = free / float(memusage.total) used_percent = 1 - free_percent warning_free_thresold = get_thresold_mb(memusage.total, configitem.warning, configitem.agressivity) critical_free_thresold = get_thresold_mb(memusage.total, configitem.critical, configitem.agressivity) message = "%s%% %.1f %s / %.1f %s used (warn=%s%% crit=%s%%)" % \ (round_percent(used_percent), memusage.used / float(configitem.display_divider), configitem.display_unit, memusage.total / float(configitem.display_divider), configitem.display_unit, round_percent(1 - warning_free_thresold), round_percent(1 - critical_free_thresold)) if free_percent < critical_free_thresold: exit_critical(message) if free_percent < warning_free_thresold: exit_warning(message) exit_ok(message) class PrintCheck: def print_thresolds(self, config): """ Print thresolds for debug purpose """ print "The numbers represents the thresolds to raise an alert when the free disk/memory/swap\n\ is lower than the calculated percentage. This percentage varies according to\n\ the total capacity of the disk/memory/swap." values = (256, 512, 1024, 2048, 4096, 8192, 16384, 32768) self.print_thresold("Memory", values, "MB", 1024 * 1024, config.memory) self.print_thresold("Swap", values, "MB", 1024 * 1024, config.swap) values = (0.001, 0.01, 0.1, 0.5, 1, 5, 10, 50, 100, 500, 1000, 5000, 10000, 50000, 100000) self.print_thresold("Disk space", values, "GB", 1024 * 1024 * 1024, config.disk) values = (0.5, 1, 5, 10, 50, 100, 105, 150, 200, 350, 500, 1000, 5000, 10000, 50000) self.print_thresold("Disk inodes", values, "M", 1000000, config.disk_inode) def print_thresold(self, name, values, unit, multiplier, configitem): header = "%s thresolds (warning=%s, critricial=%s, agressivity=%s):" print print header % (name, configitem.warning, configitem.critical, configitem.agressivity) for val in values: val_num = val * multiplier warnth = get_thresold_mb(val_num, configitem.warning, configitem.agressivity) critth = get_thresold_mb(val_num, configitem.critical, configitem.agressivity) print ("%s%s" % (val, unit)).ljust(11), \ "Warn = %.1f%%" % ((1 - warnth) * 100), \ ("(%.2f%s Free)" % ((warnth * val), unit)).ljust(8), \ "Crit = %.1f%%" % ((1 - critth) * 100), \ ("(%.2f%s Free)" % ((critth * val), unit)).ljust(8) class Commander: def __init__(self): # To add a new command, add it to this dictionnary : # 'short command name':(ClassName to instanciate, 'function to call on ClassName') self.commands_mapping = { 'disk':(DiskCheck, 'check_disk_usage'), 'disk_inode':(DiskCheck,'check_disk_inode_usage'), 'mem':(MemoryCheck,'check_memory_usage'), 'swap':(MemoryCheck,'check_swap_usage'), 'print':(PrintCheck,'print_thresolds'), } self.config = Configuration() def parse_arguments(self): # Construct usage string usage = "usage:" usage += " %prog " for command in self.commands_mapping.keys(): usage += command + '|' # Remove the last '|' usage = usage[:-1] # Construct OptionParser object optparser = OptionParser(usage=usage) (options, args) = optparser.parse_args() # Validate mendatory arguments if len(args) != 1: print "Invalid number of arguments" optparser.print_help() sys.exit(RET_UNKNOWN) command = args[0] if command not in self.commands_mapping.keys(): print "Command '%s' unknown." % command optparser.print_usage() sys.exit(RET_UNKNOWN) return command def engage(self): # Call the appropriate function on the appropriate class # passing the configuration as a parameter command = self.parse_arguments() clazz = self.commands_mapping[command][0] func = self.commands_mapping[command][1] getattr(clazz(), func)(self.config) if __name__ == '__main__': try: cmd = Commander() cmd.engage() except SystemExit, e: raise e except: traceback.print_exc() sys.exit(RET_UNKNOWN)