Techie Turmoil

Get rid of caption inline styles in WordPress

For some stupid reason, WordPress injects an inline style to its image caption divs, setting the width to 10px larger than the enclosed image. This is wrong in so many ways:

  1. You should never use inline styles.
  2. WordPress normally leaves styling to the themes (as it should).
  3. Even if you wanted this behaviour, padding would have been more appropriate.

So how do we fix it? Well I just spent a while searching and found a few ill thought out suggestions, like overriding the style with !important (doesn’t work on all browsers and could cause problems if you want to override it again in a specific class) or replacing the shortcode function, either directly in wp-includes/media.php (just plain crazy) or in your functions.php (better but doesn’t work too well and not very maintainable). This last idea did lead me to find a good solution though. The img_caption_shortcode function has a filter, which effectively overrides its own output. So here’s what I used (tested on WP 3.1):

add_filter( 'img_caption_shortcode', 'my_img_caption', 10, 3 );

function my_img_caption( $nowt, $attr, $content )
{
	extract( shortcode_atts( array(
		'id' => '',
		'align' => 'alignnone',
		'width' => '',
		'caption' => '',
	), $attr ) );

	if ( empty( $caption ) )
		return $content;

	if ( $id )
		$id = 'id="' . esc_attr( $id ) . '" ';

	return '<div ' . $id . 'class="wp-caption ' . esc_attr( $align ) .
		'">' . do_shortcode( $content ) . '<p class="wp-caption-text">' .
		$caption . '</p></div>';
}

Shove that in your theme’s functions.php and it will replace the core caption function, with the inline style removed. If you’re wondering what the $nowt variable is about, it is an unused blank string passed by the filter.

ZXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZXZZXZXXXXZXXXXXXXXXXS2sp=:ln#Z=Xo==n=ZXX#XZ#ZX=
ZZZZZZZZZZZ#Z#ZZ#Z#ZZZZZZZZZZXZXZZZXZZXZXZXXXXXXXXSSSSS1Wo::Z#=X=o=Xnn==XX==XZXX
ZZZZZZZ#Z#ZZZZ#ZZZZZZ#ZZZZZZZZZZZZZZZZZZXXXXXXXXXXXXSSo>=lvino===nnX=n==o=onnZZZ
#ZZZ#Z#ZZZZ#Z#ZZ#Z#Z#ZZ#Z#Z#Z#Z#Z#ZZ#XZZZZZZZXZXXXXXXXoiZZ=|:vnn=vv=n=nonnnn===X
ZZ#ZZZZZ#Z#Z#ZZ#ZZZ#ZZZZ#ZZZZZZZZZZ#ZZ#ZZ#ZZZZZZZXXXXSniWX:|:|vvl|nvIIlvlvvo=vnX
#ZZ#Z#Z#Z#ZZZZ#ZZ#ZZ#Z#ZZZ#Z#Z#Z#Z#ZZ#ZZZZZZZZZZZZZX1nl#ZZvvI+|li|nI|||:nvoX=v:=
#Z#Z#Z#Z#ZZ##Z#Z#Z#Z#ZZ#Z#Z#ZZ#ZZ#ZZXYYY1Y***M*1*YYIIimZXZn|:==vvvnnIi+l=n=XX||n
#Z#ZZ#ZZ#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#ZZS**M0m#Z#mZZZ=ZZXX=XXX###==nIi+=:XX=:Invv=nvn=i|i
#Z#Z#Z##Z###Z#Z#Z#Z#Z#Z#Z##S1M8mmQm#XZX==nnn=XXXXXX=no=o==nni=;|=X=o==ivovlv=v||
#######Z##Z##Z##Z##Z###ZZ1NXZmii|#X===n==XX====XX##ZnXnovlvnI;_vn=vn==i:=vnn=i=i
##Z#Z#Z#####Z##Z##Z##Z#Yl###mWQWZXZX=mXZZX==XXXmQWQQQ#mmn=vvv:vvvnvvvvvvov<vvvi|
#####################ZY&#WQmZZmZXmm#Z#ZZXZmmiQivvvvnviilim#n:lvvvv:lvInvvnIvivv%
mm##################X0mQiiQ##WW#QWmmWWQivvvnnnooo2ooooovIiW#wvvlv:vv::v:vv==:|:=
WmBmmm#mmm#########2$QIvvIiviiilliiiivnnnn2oooo2So22X22onvvWW#al=;+i|iIIvv=vi++:
mmBBmmmmmmm#######2$ioooononnvnnnnnnoonnn2oSoo22S222oS222nvliQma+;+|i+|i|:}=|=||
mmmmBBWmWmmmm#m##ZQvo22S2S2X2SSSS2oo222S22SoS2XS2222So222onvIliQc+==|+||lilvv|:|
mmmmmmmmmmmmmmmm#evooS2SSSX2SSXXSSoSSS22S2SSSSSSS2S2o2o2oonnviiim>++=||==+vI|;iv
m#mmmmmmmmmmmmmm#voo22SSSSSSSSXXS2S2SSSXS2XSXXSSXSSo2ooooonvnviQWz|==|++=|:|=+||
mmmmmmmBmmmBmmmmSvo2S2XSXSSSSXSS2S2XXXXXSXXXXXZXXX2oSnoooooovns##Qc|+=;;=i|||:<=
mmmmmBmmWmBmmWm#vn222SSSSSSXXX22XSXZZXZZXXXZXXXXXXXX2oSoooooonviZmGii=|;|v:>|nXX
BBmBBmWmmmBBBmmonoSoS2S2SSXXXX2SXSXZZZZZZXZZZZZXXXZXSSo22noonnvvm#=vvlnl<=:++IZ#
BmBmBmmmWmWmmWZnno222S2SSSSXXSS2XSZ#ZZZZZXXXZZXZXXXXSSo2onnoonvviZZnvZZXZ=av>vn=
BmWmBBWmBmmWmWSvno222222SSSXSSSSXX#XXXXZXZXXXXXXXXSXSSo2oonnnnvvl#Xo:n=X#Z#ZZvnn
WmmBBmmWmWBBBm1nnoo22222SSXXXXXXXSXSSXZXXXZZZXSSSXS2S2S2oonnvnvvvQXnvoXoXZZZmnin
BBBBBWmWmWmWmWvnnno2oo2S2SSXXXZZZXXXZXZZXXXXXXS22SX222SS2oonnnIIvi2nvo=n==XXZ#cv
WmWmWmWmWmWmW#vvnnoooonSnXSSXXXXXXXYYYYS1SSXXX2SXSX2So2oSnonnvvvvvmvvnXl===Z=Xc|
WmWmWmBBBBBBB#ln1}+TVZZ=vI|!!!TXXXwgmsQQiW|M*11XSXSS2S2S2oonnvvvvvilvn=:vXnZX#nI
WmWmWmWBWmWBWhv@'=aa=X#X>n|_;+np<omXmoXonvnvs%QQil*1Svno2SonnIIvvIi=vvn>lXZXXZ#n
WmWmWmWmWBWmW2(:jmZ##wXn=+Idml)!!***?Y?*HHN+H+HHHHQivInnnI1nvIIvvIlevvn(|Iv==XZ=
WBBWmWBWBWmWD[=]WXW()8=l|+|]^=:=;=|||===+|||||+|<aiv&ae+1sZV||QliIl2v:nc+iv3=nX1
WmWmWBWmWBWWf;_mZwm=)o=n:||+===|||i|++=|+|||_wQvvll>QvvgWnga|+I3X|lmvvne+|v|Iv=}
WWBWBWmWWmWmk:jQi#i=|+==nl+==_wggimQgw_<aagvoSoovvvmWv2X%)nvvQga=vi#vlnnli|=<==}
WmWmWBWBWmWW[+Qiiz!::+vvl+<gvvno222ovvvvoo2XXS2onnnnvIo2ninvvvvnviimI:v}|I%|nZo=
WWBWBWmWmWWe(|il>+;::+li+nvnnno222X2nnnoS22SoX2ooon2nvnovQvvvIIlIliGI|n(;v=IZWo=
WmWBWmWWBW#[vI{i(=:::||+<innoo22SnoooonoS2SoXXXSoS(HIvvonQvvvlIIiiQ2:in==|iv:Zl=
WWBWmWBBWmWci={E=:::;|=nvvnoooo2222oooo222o2SSSSo2o%=<QvvivvviiliQmn:v=c|ii|vvv=
WmWBWWBWBWWmpd<E=:;=|=<vvnnoo2o22o2noono2o2222Xo2vSosmQvvIlIIliilQZvivnn2:|vX=av
WWWBWmWBWBWWhie1+=|=;vivnnno2ooS2o2nnnno2ooSSXX2SinoosQvIIlIliiliQGi|l=#Z=vlIv==
WmWBWBWWBWBW1c:i|=;=qvvnnnooo2S222nnvvnooooS2ZSo1vlnSnvvvlvvlillimn|:v=XXXnI||no
WWBWBWBWBWWCvia|==<mvvnnvno2oSoS2oovvvnnnno2SXo2nonvnvvvIivvlliQQ#v|ln==ZX=lvi+n
WWBWBWBWWWEvnvvQmmmvIvnvno2o22222onIIvvnvnnoS2nonoonnnvvivnvIiiQWZ:|vlXn=Z#c|i|v
WBWBWWBWmW1vnnvviiivlnnnoo22oS2S2onIIvnnvvnoS2ovo2ooonvivvvvIiiWQZi|vn=X=vXl=+::
WWWBWmWWWCvnnvnviilvvvoooooo22o2oonvlIvvnnnooSonInnonviivvnviiWmm1|inXXZZnZnvIvv
WWmWWWWBSvnnvvvvQilvvnnoooooo22onnnllIvnvnvnoSnnvvnnl0QvnvvliimmZ>+i==o#ZWZ===vn
WWWBWmWDIvvvIvvIQmiIvvnooooooooonnvlvvvvnnvnnn1vvvvl#QvnvvvliWm#I||:X=XXnXXvXZwn
WWmWBWWlvvvIvnvvi#WlvvnoooonoooonvnvIvnnnvvvnvlOiM8m%vnvvIlliW#1|+|:v=onv==vvX#a
WBWWBWElvvlIvvnvim#<vvvnoooonnnnnnIlvvnnvvvnvvni=wQvvvvvvIvlim1i=||ilI=ZZX#nv=X#
WWBWBWkil0!+!+i0WQW#ivnnnooovnnnnnvliiIIvvvvvnvvivvvnvnvvvIlim:++|v||I==XX1vvv=X
WWBWBWQ%#wwwaanwQiQm#vvvvnnnvvnnnvvvivllvvvIvvvvnvvnvnvvvvvIiZ|+|:n:+lnvvIo=I|:n
WBWmWBmmw%|0Q#mWQW#mWQnnvnnnvvnnnnvnIliQilIlIvvvvvnvnvvvvvvIiG|||nvv+{=v=+ivv>|l
WWmWBWWWmQmg>XX#m#XXWQIvvvnnvvnvnvvvviQii|lllIvvvvnnvnvnvvvIiGi::Xvl||vn==|vov|=
WBWWBWmWBBmW(=XWWWmXXQivvvvvvvvnnnvvvviQmQiiIIIvvvvnvnvvvvvIlmIIvZv=i:=n>in=XXan
WWBWBWBWBWW#QmQiQiWZ=QivvvvvvvnvvvvvviQQQQWQivlvvvnvnvvvvvvllQanX2=c|v#n==l==XXv
WBWBWmWBWmW#Wm#Z#Z=vnWiIvlvIvvvlvvIIliQQQWWQillIvvvvnvvvvvIlli2=wGnlnnXX:%vv===:
WWmWWWWBWWB#GX=vn==mwdillillIvIIllliiWZmWWQilillIvvnvvvvvvlllliQQG:|vX===i+v==nv
WWWWmWmWmWBWcviaX#QiQWiiliiiililliiWmX#QiiQiiillvvvvvvvvvlllllliQe||v=vv=Ivn=n|+
WmWmWWBWWBWWm,==miiiQWQiiiiiiiiiiQmZZ=WWQiiQiiIlIvvnvvvvlliilIiiQC===nvi=nii=Xv=
BmmmmmBBmWmWmknmiiQiQ#miiiQQQQQQZX1==wWWQQQiilIIvvvvvvvllliiilliQC=;+n:lnI::=(;;
#mmmmmmBmmBmmknQQQiQWmWiiQiiQQQ#nvn=XZ##WQQiiiIIvIvvvIllliiiiiiQQ6==|l=:v=Ivl:`=
oXmmmmBmmWmmmm##WWWmmWiiiiQiQQ>=voXXZ#XZWWiiillvvvvvIIIIliiQiiiQQGl|:vviv=vv:v:i
XXm#mmmmm##mmmzX#mW##QiiiiWQQQZvv=XZZZ#mWmiiliIIIIvIvIlliiiiiQiQQm`=|Ilvo=v=+v:n
9XYXm###m#mmm###Xmm##iQWiiiWmX==X#=XZ#mmQilillvIvIIIIlliiiQQiQQQQ#,=%i>io=|+|viv
X2nH##Z#######Z>#mZZWm#XWQQWGv===XX###QQiiiilllIIvIIIliliQQiQQQWW#=)>+==vl;<lI=v
jk=X{XnIYY##ZmWcZ==X#Z=v#eXXvv=X==X###WWQQQlillIlIIIllliQQQWQWm###c+|;:;=+:>+|nv
)en=Z|iW##v#mW##ZvI=XIn:oi=v:n====##ZmWQQQiiilllillllliiQQWQWmW#XZni:;::+i|=:=n>
)cwaXZ#mawmWWBGmXlv=oi=|Iivi|:vv=XX#m#mWQQQQiiiiilliliiiQQQQmm#####v|;=:i|:i=;n=
]mmpaawmmWWmmmeZ=vlo>iv=i+:|=||n=X=Z##mWmWQQQiiiliiliiiiQWWWmmmm#ZZa==|v|=i:i|:v
3qXXSXXXXU####z=l||v||+:i=|==+:vo==XXZmmmWWQiQiiiiiiiiiQQQWWmWW#####>:_:>l|ll||n
3#WBWmmmoqqmoXiXi|=|==;====++|vv==XZXXmmm#WWWQiQiiiiiiQiQWQWWW######XavXnlv|:|vv
dXWmWBWWXmmWWWeX|+=:=::::;=|+|:vIo=XXZ####mWWQQiQiiiQiQiWWQWW########X=+{=}=l+=|
#WmWmWmWXXWmBWCz:=;:::::::::;+ilv===XXZZ##WmmQQQQQiQiQiQQQQQWmmmm#ZZZe(::)w:|;;:
ZX##$BW#ldW#Wm1ig=;:::.:.:::::=:vnvXX=XX#m#mWWWQQQQQQQQiQQQQWWmmm#Ze';::.:{i=:=:
e**1I1mSnmXmWmodmwgsusgm<,:..:=|vvo==XXXmm#mWmWWWQQQQQiQQQQQQmmmme^;:::.::===::=
cnmiivmin#iS**3X#SodWXom#mggs:+:v==XXXZX#Z#WmWmWmQWQQQQiQQQiWWm#}:;:::.::.::|=|+
Mliii3#1lIIivsudcQ|0M*!Y1nmcI||iv====XXZ###mWmmWmWWWWWQQWWQWWmZ^:.::.:::.::.::;=
lIvvn<SQiiQWiInXe11Xsmggg%Xo2s;:v=n==XXXZ####mmWmmWmWWWQWWWWWe`::::.::.:::.::.::
><Xvv=VlIIIIlWQivnnno2SS2So22oncv===XXZXX#Z##mm##mmWWWWWWWWW(::::.::::::.:::.:::
#>3ZQnX<vIl@!XVNHHHMMM|iiilIlII6nnn===X=ZZZZ#Z#Z###mmmWWWQ#"::::.::.:.::::.::::.
==)=H2vo<0(<nnvv:::i+||||!!TT9H8nn====XXXXXZZ##ZZ###mWmWWZ':::.::::::::.::::.:::
ZX>nXWcn}=a=on=vvvi|======;:;:;=<oo===XX=XXXXXZXZZZ##mWWe`;::.::.::.:.:::.:.::.:
ZXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZXZZXZXXXXZXXXXXXXXXXS2sp=:ln#Z=Xo==n=ZXX#XZ#ZX=
ZZZZZZZZZZZ#Z#ZZ#Z#ZZZZZZZZZZXZXZZZXZZXZXZXXXXXXXXSSSSS1Wo::Z#=X=o=Xnn==XX==XZXX
ZZZZZZZ#Z#ZZZZ#ZZZZZZ#ZZZZZZZZZZZZZZZZZZXXXXXXXXXXXXSSo>=lvino===nnX=n==o=onnZZZ
#ZZZ#Z#ZZZZ#Z#ZZ#Z#Z#ZZ#Z#Z#Z#Z#Z#ZZ#XZZZZZZZXZXXXXXXXoiZZ=|:vnn=vv=n=nonnnn===X
ZZ#ZZZZZ#Z#Z#ZZ#ZZZ#ZZZZ#ZZZZZZZZZZ#ZZ#ZZ#ZZZZZZZXXXXSniWX:|:|vvl|nvIIlvlvvo=vnX
#ZZ#Z#Z#Z#ZZZZ#ZZ#ZZ#Z#ZZZ#Z#Z#Z#Z#ZZ#ZZZZZZZZZZZZZX1nl#ZZvvI+|li|nI|||:nvoX=v:=
#Z#Z#Z#Z#ZZ##Z#Z#Z#Z#ZZ#Z#Z#ZZ#ZZ#ZZXYYY1Y***M*1*YYIIimZXZn|:==vvvnnIi+l=n=XX||n
#Z#ZZ#ZZ#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#ZZS**M0m#Z#mZZZ=ZZXX=XXX###==nIi+=:XX=:Invv=nvn=i|i
#Z#Z#Z##Z###Z#Z#Z#Z#Z#Z#Z##S1M8mmQm#XZX==nnn=XXXXXX=no=o==nni=;|=X=o==ivovlv=v||
#######Z##Z##Z##Z##Z###ZZ1NXZmii|#X===n==XX====XX##ZnXnovlvnI;_vn=vn==i:=vnn=i=i
##Z#Z#Z#####Z##Z##Z##Z#Yl###mWQWZXZX=mXZZX==XXXmQWQQQ#mmn=vvv:vvvnvvvvvvov<vvvi|
#####################ZY&#WQmZZmZXmm#Z#ZZXZmmiQivvvvnviilim#n:lvvvv:lvInvvnIvivv%
mm##################X0mQiiQ##WW#QWmmWWQivvvnnnooo2ooooovIiW#wvvlv:vv::v:vv==:|:=
WmBmmm#mmm#########2$QIvvIiviiilliiiivnnnn2oooo2So22X22onvvWW#al=;+i|iIIvv=vi++:
mmBBmmmmmmm#######2$ioooononnvnnnnnnoonnn2oSoo22S222oS222nvliQma+;+|i+|i|:}=|=||
mmmmBBWmWmmmm#m##ZQvo22S2S2X2SSSS2oo222S22SoS2XS2222So222onvIliQc+==|+||lilvv|:|
mmmmmmmmmmmmmmmm#evooS2SSSX2SSXXSSoSSS22S2SSSSSSS2S2o2o2oonnviiim>++=||==+vI|;iv
m#mmmmmmmmmmmmmm#voo22SSSSSSSSXXS2S2SSSXS2XSXXSSXSSo2ooooonvnviQWz|==|++=|:|=+||
mmmmmmmBmmmBmmmmSvo2S2XSXSSSSXSS2S2XXXXXSXXXXXZXXX2oSnoooooovns##Qc|+=;;=i|||:<=
mmmmmBmmWmBmmWm#vn222SSSSSSXXX22XSXZZXZZXXXZXXXXXXXX2oSoooooonviZmGii=|;|v:>|nXX
BBmBBmWmmmBBBmmonoSoS2S2SSXXXX2SXSXZZZZZZXZZZZZXXXZXSSo22noonnvvm#=vvlnl<=:++IZ#
BmBmBmmmWmWmmWZnno222S2SSSSXXSS2XSZ#ZZZZZXXXZZXZXXXXSSo2onnoonvviZZnvZZXZ=av>vn=
BmWmBBWmBmmWmWSvno222222SSSXSSSSXX#XXXXZXZXXXXXXXXSXSSo2oonnnnvvl#Xo:n=X#Z#ZZvnn
WmmBBmmWmWBBBm1nnoo22222SSXXXXXXXSXSSXZXXXZZZXSSSXS2S2S2oonnvnvvvQXnvoXoXZZZmnin
BBBBBWmWmWmWmWvnnno2oo2S2SSXXXZZZXXXZXZZXXXXXXS22SX222SS2oonnnIIvi2nvo=n==XXZ#cv
WmWmWmWmWmWmW#vvnnoooonSnXSSXXXXXXXYYYYS1SSXXX2SXSX2So2oSnonnvvvvvmvvnXl===Z=Xc|
WmWmWmBBBBBBB#ln1}+TVZZ=vI|!!!TXXXwgmsQQiW|M*11XSXSS2S2S2oonnvvvvvilvn=:vXnZX#nI
WmWmWmWBWmWBWhv@'=aa=X#X>n|_;+np<omXmoXonvnvs%QQil*1Svno2SonnIIvvIi=vvn>lXZXXZ#n
WmWmWmWmWBWmW2(:jmZ##wXn=+Idml)!!***?Y?*HHN+H+HHHHQivInnnI1nvIIvvIlevvn(|Iv==XZ=
WBBWmWBWBWmWD[=]WXW()8=l|+|]^=:=;=|||===+|||||+|<aiv&ae+1sZV||QliIl2v:nc+iv3=nX1
WmWmWBWmWBWWf;_mZwm=)o=n:||+===|||i|++=|+|||_wQvvll>QvvgWnga|+I3X|lmvvne+|v|Iv=}
WWBWBWmWWmWmk:jQi#i=|+==nl+==_wggimQgw_<aagvoSoovvvmWv2X%)nvvQga=vi#vlnnli|=<==}
WmWmWBWBWmWW[+Qiiz!::+vvl+<gvvno222ovvvvoo2XXS2onnnnvIo2ninvvvvnviimI:v}|I%|nZo=
WWBWBWmWmWWe(|il>+;::+li+nvnnno222X2nnnoS22SoX2ooon2nvnovQvvvIIlIliGI|n(;v=IZWo=
WmWBWmWWBW#[vI{i(=:::||+<innoo22SnoooonoS2SoXXXSoS(HIvvonQvvvlIIiiQ2:in==|iv:Zl=
WWBWmWBBWmWci={E=:::;|=nvvnoooo2222oooo222o2SSSSo2o%=<QvvivvviiliQmn:v=c|ii|vvv=
WmWBWWBWBWWmpd<E=:;=|=<vvnnoo2o22o2noono2o2222Xo2vSosmQvvIlIIliilQZvivnn2:|vX=av
WWWBWmWBWBWWhie1+=|=;vivnnno2ooS2o2nnnno2ooSSXX2SinoosQvIIlIliiliQGi|l=#Z=vlIv==
WmWBWBWWBWBW1c:i|=;=qvvnnnooo2S222nnvvnooooS2ZSo1vlnSnvvvlvvlillimn|:v=XXXnI||no
WWBWBWBWBWWCvia|==<mvvnnvno2oSoS2oovvvnnnno2SXo2nonvnvvvIivvlliQQ#v|ln==ZX=lvi+n
WWBWBWBWWWEvnvvQmmmvIvnvno2o22222onIIvvnvnnoS2nonoonnnvvivnvIiiQWZ:|vlXn=Z#c|i|v
WBWBWWBWmW1vnnvviiivlnnnoo22oS2S2onIIvnnvvnoS2ovo2ooonvivvvvIiiWQZi|vn=X=vXl=+::
WWWBWmWWWCvnnvnviilvvvoooooo22o2oonvlIvvnnnooSonInnonviivvnviiWmm1|inXXZZnZnvIvv
WWmWWWWBSvnnvvvvQilvvnnoooooo22onnnllIvnvnvnoSnnvvnnl0QvnvvliimmZ>+i==o#ZWZ===vn
WWWBWmWDIvvvIvvIQmiIvvnooooooooonnvlvvvvnnvnnn1vvvvl#QvnvvvliWm#I||:X=XXnXXvXZwn
WWmWBWWlvvvIvnvvi#WlvvnoooonoooonvnvIvnnnvvvnvlOiM8m%vnvvIlliW#1|+|:v=onv==vvX#a
WBWWBWElvvlIvvnvim#<vvvnoooonnnnnnIlvvnnvvvnvvni=wQvvvvvvIvlim1i=||ilI=ZZX#nv=X#
WWBWBWkil0!+!+i0WQW#ivnnnooovnnnnnvliiIIvvvvvnvvivvvnvnvvvIlim:++|v||I==XX1vvv=X
WWBWBWQ%#wwwaanwQiQm#vvvvnnnvvnnnvvvivllvvvIvvvvnvvnvnvvvvvIiZ|+|:n:+lnvvIo=I|:n
WBWmWBmmw%|0Q#mWQW#mWQnnvnnnvvnnnnvnIliQilIlIvvvvvnvnvvvvvvIiG|||nvv+{=v=+ivv>|l
WWmWBWWWmQmg>XX#m#XXWQIvvvnnvvnvnvvvviQii|lllIvvvvnnvnvnvvvIiGi::Xvl||vn==|vov|=
WBWWBWmWBBmW(=XWWWmXXQivvvvvvvvnnnvvvviQmQiiIIIvvvvnvnvvvvvIlmIIvZv=i:=n>in=XXan
WWBWBWBWBWW#QmQiQiWZ=QivvvvvvvnvvvvvviQQQQWQivlvvvnvnvvvvvvllQanX2=c|v#n==l==XXv
WBWBWmWBWmW#Wm#Z#Z=vnWiIvlvIvvvlvvIIliQQQWWQillIvvvvnvvvvvIlli2=wGnlnnXX:%vv===:
WWmWWWWBWWB#GX=vn==mwdillillIvIIllliiWZmWWQilillIvvnvvvvvvlllliQQG:|vX===i+v==nv
WWWWmWmWmWBWcviaX#QiQWiiliiiililliiWmX#QiiQiiillvvvvvvvvvlllllliQe||v=vv=Ivn=n|+
WmWmWWBWWBWWm,==miiiQWQiiiiiiiiiiQmZZ=WWQiiQiiIlIvvnvvvvlliilIiiQC===nvi=nii=Xv=
BmmmmmBBmWmWmknmiiQiQ#miiiQQQQQQZX1==wWWQQQiilIIvvvvvvvllliiilliQC=;+n:lnI::=(;;
#mmmmmmBmmBmmknQQQiQWmWiiQiiQQQ#nvn=XZ##WQQiiiIIvIvvvIllliiiiiiQQ6==|l=:v=Ivl:`=
oXmmmmBmmWmmmm##WWWmmWiiiiQiQQ>=voXXZ#XZWWiiillvvvvvIIIIliiQiiiQQGl|:vviv=vv:v:i
XXm#mmmmm##mmmzX#mW##QiiiiWQQQZvv=XZZZ#mWmiiliIIIIvIvIlliiiiiQiQQm`=|Ilvo=v=+v:n
9XYXm###m#mmm###Xmm##iQWiiiWmX==X#=XZ#mmQilillvIvIIIIlliiiQQiQQQQ#,=%i>io=|+|viv
X2nH##Z#######Z>#mZZWm#XWQQWGv===XX###QQiiiilllIIvIIIliliQQiQQQWW#=)>+==vl;<lI=v
jk=X{XnIYY##ZmWcZ==X#Z=v#eXXvv=X==X###WWQQQlillIlIIIllliQQQWQWm###c+|;:;=+:>+|nv
)en=Z|iW##v#mW##ZvI=XIn:oi=v:n====##ZmWQQQiiilllillllliiQQWQWmW#XZni:;::+i|=:=n>
)cwaXZ#mawmWWBGmXlv=oi=|Iivi|:vv=XX#m#mWQQQQiiiiilliliiiQQQQmm#####v|;=:i|:i=;n=
]mmpaawmmWWmmmeZ=vlo>iv=i+:|=||n=X=Z##mWmWQQQiiiliiliiiiQWWWmmmm#ZZa==|v|=i:i|:v
3qXXSXXXXU####z=l||v||+:i=|==+:vo==XXZmmmWWQiQiiiiiiiiiQQQWWmWW#####>:_:>l|ll||n
3#WBWmmmoqqmoXiXi|=|==;====++|vv==XZXXmmm#WWWQiQiiiiiiQiQWQWWW######XavXnlv|:|vv
dXWmWBWWXmmWWWeX|+=:=::::;=|+|:vIo=XXZ####mWWQQiQiiiQiQiWWQWW########X=+{=}=l+=|
#WmWmWmWXXWmBWCz:=;:::::::::;+ilv===XXZZ##WmmQQQQQiQiQiQQQQQWmmmm#ZZZe(::)w:|;;:
ZX##$BW#ldW#Wm1ig=;:::.:.:::::=:vnvXX=XX#m#mWWWQQQQQQQQiQQQQWWmmm#Ze';::.:{i=:=:
e**1I1mSnmXmWmodmwgsusgm<,:..:=|vvo==XXXmm#mWmWWWQQQQQiQQQQQQmmmme^;:::.::===::=
cnmiivmin#iS**3X#SodWXom#mggs:+:v==XXXZX#Z#WmWmWmQWQQQQiQQQiWWm#}:;:::.::.::|=|+
Mliii3#1lIIivsudcQ|0M*!Y1nmcI||iv====XXZ###mWmmWmWWWWWQQWWQWWmZ^:.::.:::.::.::;=
lIvvn<SQiiQWiInXe11Xsmggg%Xo2s;:v=n==XXXZ####mmWmmWmWWWQWWWWWe`::::.::.:::.::.::
><Xvv=VlIIIIlWQivnnno2SS2So22oncv===XXZXX#Z##mm##mmWWWWWWWWW(::::.::::::.:::.:::
#>3ZQnX<vIl@!XVNHHHMMM|iiilIlII6nnn===X=ZZZZ#Z#Z###mmmWWWQ#"::::.::.:.::::.::::.
==)=H2vo<0(<nnvv:::i+||||!!TT9H8nn====XXXXXZZ##ZZ###mWmWWZ':::.::::::::.::::.:::
ZX>nXWcn}=a=on=vvvi|======;:;:;=<oo===XX=XXXXXZXZZZ##mWWe`;::.::.::.:.:::.:.::.: