Professional Documents
Culture Documents
0G')0'
"G)1054/).0G')0'
:G571JH)71'
"EH6.G6'HG5'.)F'
/(HMM7G67F
#0E*4)71'!.F.0G'HG5'
%020)./F'"GF).)4)7
!"#"$%&'"()*"
I0.G)'J01K'J.)(+'
!"#$%$&' C3'>74EHGGL'>3'A1H/.HFL'%3'#HE*0FL';3'
C3'>74EHGGL'>3'A1H/.HFL'%3'#HE*0FL';3'>./0F7-./.
>./0F7-./.L'?3'
#$89:;<%'!"="$>'?>@'%$&$;"#='A%$:9
())*+,,-./010234563754, :>@<%B?;<%'!"="$>'C?&$%?;$%D
<M.20ML'%3'
<M.20ML'%3'91H50F
L'%3'91H50FL'I3'
91H50FL'I3'<F/H1).G
L'I3'
+"*, -./$)0*1$2
-30*)"% 4"33*,5 6#&
6#&07$
07$ 8$".$9
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
We need robots that hover…
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Optical mapping
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
:)7$9;%$(&07$&8$4*,"(
<=!>&?
@ A,0(69;)0*6,&06&;,9$(B"0$(&C*8*6,
@ <($D3(6)$88*,5
<=!>&E
@ F$"0;($&9$0$)0*6,&",9&9$8)(*30*6,
@ F$"0;($&4"0)7*,5
<=!>&G&
@ +60*6,&$80*4"0*6,&",9&6;0%*$(&($/$)0*6,
<=!>&H
@ >636%65I&J80*4"0*6,&",9&'%6."%&=%*5,4$,0
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
9?%;'O
@ A,0(69;)0*6,&06&;,9$(B"0$(&C*8*6,
@ <($D3(6)$88*,5
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K8*,5&1*8*6,&;,9$(B"0$(L&;74M
!N*570&",9&B"0$(&"($&,60&5669&#(*$,982
" =.86(30*6, C.6()'=041/7'%7P4.175
" O%;((*,5
" P6,D;,*#6(4&%*570*,5
>0GN4G.Q01E'"MM4E.GH).0G
>0G 4G.Q01E'"MM4E.GH).0G
!Q$&,$$9&06&5$0&)%68$&06&07$&8$"#%66(&06&)6%%$)0&
9"0"&R&9"0"&5"07$(*,5&*8&$S3$,8*1$
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$( *4"5*,5
@ <66( 1*8*.*%*0I
@ T*80",)$ 9$3$,9$,0
RSH(HG0- HG5'%0THM
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$( *4"5*,5
!"#$#%&'$#&()''*''+,-."$#&()
!"#$#%&'$#&()''*'' +,-."$#&() *''/-)('0-1#-%."'*''2-.34.-))"0
@ <66( 1*8*.*%*0I
@ T*80U&9$3$,9$,0
GH)41HM'.MM4E.GH).0G
BH)71'=41QH/7
?2F01*).0G
!7.M.G6 C.6()
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$( *4"5*,5
BH)71'=41QH/7
?2F01*).0G
!7.M.G6 C.6()
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$( *4"5*,5
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$( *4"5*,5
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$(&*4"5*,5
CHK7MHG5'=(.*J17/K V CHK7'
CHK7MHG5'=(.*J17/K
:)"00$(*,5&
!:)"00$(*,5& 8./(.6HGL'WXYE'57*)(
8./(.6HGL'WXYE'57*)(
C.6()'=041/7'
%7P4.175
=/H))71.G6
C.6()'
?))7G4H).0G
>0GN4G.Q01E'
>0G 4G.Q01E'
"MM4E.GH).0G
Z())*+,,JJJ3G015./5.-713/0E[
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$( *4"5*,5
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$( *4"5*,5
2-)(5$6.3 .06#4"'7899:;<'/=>'?-@#"0'
.06#4"'7899:;<'/=>'?-@#"0'A4.-0)#%
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
<76064$0(*)&=(0*#")082&8;44"(I
<76064$0(*)&=(0*#")082&8;44"(I
:G571JH)71'"EH6.G6'<G-.10GE7G)
=4G']M./K71'Z/H4F)./F[' ^.6(';412.5.)T
#HF)'=(H50JF !.F4HM'#47F'Q10E'
=4F*7G575'9H1)./M7F >H)41HM']7H)417F'HG5'
;4124M7G/7 8HGEH57'=)14/)417F
?1).Q./.HM'C.6().G6
&H/KN=/H))71
!.F4HM'#47F'Q10E'QM0H).G6'C.Q7'
]01EF'ZEH1.G7'MH1-HM'7/0M06TL'7363L'
*MHGK)0G[
?1).Q./.HM'C.6().G6' C0FF'0Q'#0M01
=(H5.G6' =)10G6'!.F4HM'#47F'
Q10E'&7G)(./'
#HF)'=(H50JF ]7H)417F
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2 \
A4"5$&!$5*80("0*6,&K,9$(B"0$(
<_)17E7'#HF7F
<_)17E7'#HF7F
]?"C=`
SIFT
]H.MF`
]H.MF
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2 4
A4"5$&!$5*80("0*6,&K,9$(B"0$(
9%<N9%$#<==">A'?5H*)75')0':G571JH)71'"EH6.G6
9%<N9%$#<==">A'?5H*)75'
9%< 9%$#<==">A'?5H*)75')0':G571JH)71'
9%$#<==">A'?5H*)75')0':G571JH)71'"EH6.G6
)0':G571JH)71'"EH6.G6
<P4HM.aH).0G'b'=4GQM./K71
<P4HM.aH).0G'b'=4GQM./K71 %7E0-HM
SIFT
!"#$%&'()*%+(,-.%(-*%
/011*..20334%5(#1$*67
SIFT
#C?^<
Most of the features that you detect (that show up) in the
underwater environment are kind of non-non-discriminant
discriminant.
8
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Removing sunlight flicker
Refracted sunlight creates irradiance (light) fluctuations
Refracted Sunlight
• Can disrupt image processing algorithms (matching and segmentation)
• Makes it harder to interpret benthic structures
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Our Approach – 2 key observations
! Observation 1
" The difference between an image and the temporal median
has two components
Component 1 – Instant illumination field from sun light
Difference
- =
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Our Approach – 2 key observations
! Observation 2
" The two components are (usually) easily separable in the
frequency domain
Illumination field has
lower spatial frequencies
Difference
Low Pass
Filter
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Removing sunlight flicker
Input Output
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
sunlight flicker revisited
" ]($"0$9&.I&($#(")0$9&8;,%*570
" T$5("9$8&*4"5$&^;"%*0I&",9&07$&*,#6(4"0*6,&)6,0$,0
" A,1$(8$%I&3(636(0*6,"%&06&9$307&
" A7G71H)7F'5TGHE./'
*H))71GF
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
9.*7M.G7
Finding
homography
Warp previous between the
Predict the current Coarsely recover !$461$&
illumination field previously
8;,#%*)\$( 3"00$(,&
to the current illumination field the image recovered image
#(64&07$&*4"5$8
frame and current
coarsely recovered
image
=88;430*6,82
?U A%%;4*,"0*6,&#*$%9&*8&"&9I,"4*)&0$S0;($
EU :46607&)"4$("&461$4$,0
GU F%"0&V"33(6S*4"0$%IW&.60064&6#&07$&8$"
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
TI,"4*)&0$S0;($&469$%*,5
O d c
O3 "G*4)'.EH67
d3 #0H1F7MT'
17/0-7175'.EH67
c3 ].GHMMT'17/0-7175'
.EH67
e3 $1.6.GHM'
.MM4E.GH).0G'Q.7M5
\3 9175./)75'
.MM4E.GH).0G'Q.7M5
X3 875.HG'.EH67
e \ X
A. Shihavuddin, N. Gracias, R. Garcia. "Online Sunflicker Removal using Dynamic Texture Prediction".
International Conference on Computer Vision Theory and Applications, pp. 161-167, Rome (Italy).
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
C.6()'7QQ7/)F .G':G571JH)71'"EH6.G6
! 9001'-.F.2.M.)T+ M.6()'.G)71H/).0GF'J.)('JH)71'E0M7/4M7F'
HG5'.E*41.).7F'5.FF0M-75'HG5'F4F*7G575'.G'JH)71
" ?2F01*).0G'7QQ7/)F
" =/H))71.G6 7QQ7/)F
@ F6(B"(9&8)"00$(*,5
@ O")\B"(9 8)"00$(*,5
" F%;6($8)$,)$8 6#&.*6%65*)"% 6./$)08
" :B*44*,5 4")(68)63*)"% 3"(0*)%$8
" N*570*,5 *,76465$,$*0*$8
@ :7"%%6B B"0$(2&8;, #%*)\$(*,5
@ T$$3&B"0$(2&"(0*#*)*"%&%*570*,5L&1*5,$00*,5L&
%*4*0$9 %*57036B$(
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
C.6()'7QQ7/)F .G':G571JH)71'"EH6.G6
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
C.6()'7QQ7/)F .G':G571JH)71'"EH6.G6
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
?'G0GN57(Ha.G6 H**10H/( Q01 -.F4HM.aH).0G .G'
).6() 2M47'F*7/)1HM 1HG67
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
>H110J'=*7/)1HM "EH6.G6
L. Neumann, R. Garcia, J. Basa, R. Hegedus. "Acquisition and Visualization Techniques for Narrow Spectral
Color Imaging", Journal of the Optical Society of America A. Vol. 30, no. 6, pp. 1039–1052, 2013.
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
>H110J'=*7/)1HM "EH6.G6
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
C.6()'7QQ7/)F .G':G571JH)71'"EH6.G6
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
C.6()'7QQ7/)F .G':G571JH)71'"EH6.G6
! F%;6($8)$,)$ *8 ,60
9*80;(.*,5L&%6BD%*570
! P*)$ ",9&;8$#;% #;0;($ B6(\L&
.;0 B$ 96&,60 9$"% B*07 07*8
37$,64$," *,&07$ .EH67
7G(HG/7E7G) HM601.)(EF
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
C.6()'7QQ7/)F .G':G571JH)71'"EH6.G6
90MH1.aH).0G
O3'=.E*M7'#10FFN*0MH1.aH).0G Z01)(060GHM M.6()'b'M7GFNQ.M)71[
d3'"EH6.G6 90MH1.E7)1T'V *._7MJ.F7 c'Z01 e['5H)H'Q01 %L'A'HG5'&
]M4_5H)H 90MH1.aH).0G'/HE71H+'c'##@'F7GF01F'J.)('
5.QQ717G)MT'01.7G)75'M.G7H1'*0MH1.a71F
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
?'G0GN4G571JH)71 7_HE*M7 J.)(
0-71N57*0MH1.aH).0G
! 91.EH1T 02U7/).-7+'H/P4.1.G6 )(7 #;%%& 36%"(*a"0*6, *,#6(4"0*6, *10'*._7M'
#;%%&36%"(*a"0*6,
*10'/0M01'Z"G)7GF.)TL C.G3*0MH1OL'C.G3*0MH1d[
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
?'G0GN4G571JH)71 7_HE*M7 J.)(
0-71N57*0MH1.aH).0G
! 91.EH1T 02U7/).-7+'H/P4.1.G6 )(7 #;%%& 36%"(*a"0*6, *,#6(4"0*6, *10'*._7M'
#;%%&36%"(*a"0*6,
*10'/0M01'Z"G)7GF.)TL C.G3*0MH1OL'C.G3*0MH1d[
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
:G571JH)71'
57(Ha.G6
7_HE*M7F
!"#$%$&' #$89:;<%'!"="$>'?>@'%$&$;"#='A%$:9
())*+,,-./010234563754, :>@<%B?;<%'!"="$>'C?&$%?;$%D
K,9$(B"0$(&9$7"a*,5
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$(&9$7"a*,5
Some RED deficite
deficite, yet – in 2010 test
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$(&9$7"a*,5
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
K,9$(B"0$(&9$7"a*,5
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
A4"5$ T$7"a*,5
F*(80&9$307D4"3&."8$9&"33(6")7$82
@ T"(\D)7",,$% ."8$9 "33(6")7
" O"8$9&6,&07$&6.8$(1"0*6,&07"0&4680&%6)"%&3"0)7$8&*,&
7"a$D#($$&6;0966(&*4"5$8&)6,0"*,&864$&3"(08&B7*)7&
7"1$&1$(I&%6B&*,0$,8*0*$8&*,&864$&5H1K'*._7MF'
Zif\jOklm['*,&"0&%$"80&6,$&)6%6(&)7",,$%L&86&07"0&07$8$&
B*%%&)6,0"*,&0GMT'F/H))7175')6436,$,0&*,&"&7"aI&*4"5$&
Vh,$"(&.%;$&",9&#"(&6(",5$i&[ ;,9$#*,$9&3(6.%$4W
@ J80*4"0*6,&;8*,5&"&80$($6D)"4$("&8$0;3
" +*88*,5 9$3078 6, #$"0;($D36*,0 %$88 "($"8L
" ",9&6, 3"(08 1*8*.%$&6,%I B*07 6,$ )"4$("
" J95$ 3($8$(1*,5 *,0$(D ",9&$S0("36%"0*6,
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
A4"5$ T$7"a*,5
O"8*)&*9$"
#VSW&Y !VSW&X&"VSW Z&$ X&V?&[ "VSWW&
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
T"(\ ]7",,$% <(*6(&
A4"5$ T$7"a*,5&4$0769
:GKG0JGF+
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Koschmieder equation in the air and in water
( ) * + ) , ! ) - . , /& 0 !/)11
( ) * + ) , 2 345 - . , /& 0 2 345 6
A,&07$&;,9$(B"0$(&)"8$&".86(30*6,&V"%37"W&)",,60&.$&,$5%$)0$9L
:6&*0&.$)64$8&8%*570%I&9*##$($,02
3/78415
9
(/)1 * +/)1 , 2 - ., & 0 2 3/78415
:-9
=.86(30*6,&)6$##*)*$,0&
=.86(30*6,&)6$##*)*$,0&+89:+
+89:+ ",9&8)"00$(*,5&
",9&8)"00$(*,5&)6$##*)*$,0&
)6$##*)*$,0&;'"+)
=($&"%86&B"1$%$,507&9$3$,9$,0`
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
T"(\ ]7",,$% <(*6(&
A4"5$ T$7"a*,5&4$0769
$2F71-H).0G+
@ 1( :+<'=>*'')1?",11* -0+@'/A)01/" 1>)":' (1(=/B7 9+"&:'/
:+C' +")8'+/" 1(' &181*)&:+(('8 D:-&: :+/)C'*7 81D
-("'(/-"7 +")/10' 9-6'8/E
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
T"(\ ]7",,$% <(*6(&
A4"5$ T$7"a*,5&4$0769
O"8*)&*9$"
I ( x) = J ( x)t ( x) + A(1 ! t ( x)
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Dark channel prior (He et al.):
G+*B)&:+(('8)&+();'),'>-(',)+/H
I*10):'*')D')&+()@'")"*+(/0-//-1()0+9)"A)
@-C'()":+")D')B(1D)$
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
4-C'()":'),-/"+(&')0+9)J<K)1>)":')/&'('A)8'"L/)?/')":')M,+*B)
&:+(('8L)"*-&BA);?")(1D)>1*)N<N=,-/"+(&')&8+//'/H)
C C
(MNO /P1 * @AB ( * .C /& 0 2 34T 5 U
5QR5R5S
I*10):'*'H
C
(MNO /PU
VWX & 0 * 9C P
.C
O:-&:)0'+(/)":+")+//?0-(@)":')&1**'&")$)9+*+0'"'*A))":')81@JEK)
C+8?'/)C/E))<),-/"+(&')/:1?8,)>-")1("1)+)8-('A)":')/819')1>)D:-&:)-/);
=/HG'?'-HM47F'HG5'H//7*)')(H)'0G7L'J(7G'27F)'Q.)).G6'
=/HG'?'-HM47F'HG5'H//7*)')(H)'0G7L'J(7G'27F)'Q.)).G6'0//41F'
0//41F'VV %?>=?#'M.K7'H**10H/(3
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Instead of depth-based
depth based fitting, first let’s have the estimation of ‘Veiling light’ in
depth-
the blue channel by Tarel
Tarel-Hauti
Tarel-Hautière method.
Then seek darkest points in red and green, and fit the blue veiling light map
(# optical depth map) to this points with keeping its gradient structure.
structure. In this way we can
expectedly strip the haze completely.
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Instead of depth-based
depth based fitting, first let’s have the estimation of ‘Veiling light’ in the blue
depth-
channel by Tarel
Tarel-Hauti
Tarel-Hauti
Hautière method.
Then seek darkest points in red and green, and fit the blue veiling light map (#
optical depth map) to this points with keeping its gradient structure. In this way we can
expectedly strip the haze completely.
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Instead of depth-based
depth based fitting, first let’s have the estimation of ‘Veiling light’ in the blue
depth-
channel by Tarel
Tarel-Hauti
Tarel-Hauti
Hautière
ère method.
method
Then seek darkest points in red and green, and fit the blue veiling light map (# optical depth
map) to this points with keeping its gradient structure. In this way we can expectedly strip the
haze completely
completely. BLUE CHANNEL CORRECTED SHAPE!
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Single image dehazing
Original image
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Single image dehazing
Corrected image
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Single image dehazing
Original image
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
Single image dehazing – possible artifacts (color, halo, etc.)
All dark channel method has some problem (artifacts
artifacts,, speed
speed)
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
j35 "(0*#")08 k&864$ %;4*,",)$ 5("9*$,8
Q$ ,$$9 ;,)643($88$9 *4"5$8
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
#0E*4)71'!.F.0G'HG5'%020)./F'A104*'N :G571JH)71'!.F.0G'CH2
())*+,,-./010234563754,
!"#$%$&' #$89:;<%'!"="$>'?>@'%$&$;"#='A%$:9
())*+,,-./010234563754, :>@<%B?;<%'!"="$>'C?&$%?;$%D