Re: Encrypting a table

From: Darren Shaffer (darrenshaffer_at_discussions.microsoft.com)
Date: 03/01/05


Date: Tue, 1 Mar 2005 14:21:10 -0700

Glenn,

You won't be able to encrypt just one table - it's the whole database or
nothing
with SQL Server CE. Some options for you:

1. if that table has no constraints that would prevent this, place the
table by itself in a second
SQL CE database and encrypt that database. switch connections in your app
between the
two databases.

2. use a simple encryption/decryption algorithm on sensitive column data
when you
load/query the table. a sample is attached in C# (assuming you are using
the Compact
Framework). Credit belongs to Paul Yao for offering this class in his
outstanding book
".NET Compact Framework Programming with C#"

-- 
Darren Shaffer
Principal Architect
Connected Innovation
"glenn" <ghan***@softeksoftware.com> wrote in message 
news:u0nog%23oHFHA.3624@tk2msftngp13.phx.gbl...
> Can anyone point me to information related to encrypting a single table
> inside my database on the device?  I have a table that I want to store
> validation information in and I need it to be encrypted to prevent anyone
> from messing with the data in the table.  Can anyone tell me how to do 
> this
> using SQL Server CE?
>
> Thanks,
>
> glenn
>
> 
begin 666 crypto.cs
M=7-I;F<@4WES=&5M.PT*=7-I;F<@4WES=&5M+E)U;G1I;64N26YT97)O<%-E
M<G9I8V5S.PT*=7-I;F<@4WES=&5M+D1I86=N;W-T:6-S.PT*=7-I;F<@4WES
M=&5M+D1R87=I;F<[#0IU<VEN9R!3>7-T96TN24\[#0IU<VEN9R!3>7-T96TN
M5&5X=#L-"@T*;F%M97-P86-E(%E/55).04U%4U!!0T4-"GL-"@DO+R\@/'-U
M;6UA<GD^#0H)+R\O(%5S97,@8W)Y<'1O($%022!F=6YC=&EO;G,@=&\@96YC
M<GEP="!A;F0@9&5C<GEP="!D871A+B!!('!A<W-P:')A<V4@#0H)+R\O('-T
M<FEN9R!I<R!U<V5D('1O(&-R96%T92!A(#$R."UB:70@:&%S:"!T:&%T(&ES
M('5S960@=&\@8W)E871E(&$@#0H)+R\O(#0P+6)I="!C<GEP=&\@:V5Y+B!4
M:&4@<V%M92!K97D@:7,@<F5Q=6ER960@=&\@96YC<GEP="!A;F0@9&5C<GEP
M=" -"@DO+R\@=&AE(&1A=&$N#0H)+R\O(#PO<W5M;6%R>3X-"@EP=6)L:6,@
M8VQA<W,@0W)Y<'1O#0H)>PT*"0DO+R!!4$D@9G5N8W1I;VYS#0H)"7!R:79A
M=&4@8VQA<W,@5VEN07!I#0H)"7L-"@D)"7!R:79A=&4@8V]N<W0@=6EN="!!
M3$=?0TQ!4U-?2$%32" ]("@T(#P\(#$S*3L-"@D)"7!R:79A=&4@8V]N<W0@
M=6EN="!!3$=?5%E015]!3ED@/2 H,"D[#0H)"0EP<FEV871E(&-O;G-T('5I
M;G0@04Q'7T-,05-37T1!5$%?14Y#4EE05" ]("@S(#P\(#$S*3L-"@D)"7!R
M:79A=&4@8V]N<W0@=6EN="!!3$=?5%E015]35%)%04T@/2 H-" \/" Y*3L-
M"@D)"7!R:79A=&4@8V]N<W0@=6EN="!!3$=?5%E015]"3$]#2R ]("@S(#P\
M(#DI.PT*#0H)"0EP<FEV871E(&-O;G-T('5I;G0@04Q'7U-)1%]$15,@/2 Q
M.PT*"0D)<')I=F%T92!C;VYS="!U:6YT($%,1U]3241?4D,T(#T@,3L-"@D)
M"7!R:79A=&4@8V]N<W0@=6EN="!!3$=?4TE$7U)#,B ](#([#0H)"0EP<FEV
M871E(&-O;G-T('5I;G0@04Q'7U-)1%]-1#4@/2 S.PT*#0H)"0EP=6)L:6,@
M8V]N<W0@<W1R:6YG($U37T1%1E]04D]6(#T@(DUI8W)O<V]F="!"87-E($-R
M>7!T;V=R87!H:6,@4')O=FED97(@=C$N,"([#0H)"0D-"@D)"7!U8FQI8R!C
M;VYS="!U:6YT(%!23U9?4E-!7T953$P@/2 Q.PT*"0D)<'5B;&EC(&-O;G-T
M('5I;G0@0U)94%1?5D5224990T].5$585" ](#!X9C P,# P,# [#0H)"0EP
M=6)L:6,@8V]N<W0@=6EN="!#4EE05%]%6%!/4E1!0DQ%(#T@,'@P,# P,# P
M,3L-"@T*"0D)<'5B;&EC('-T871I8R!R96%D;VYL>2!U:6YT($-!3$=?340U
M(#T@*$%,1U]#3$%34U](05-(('P@04Q'7U194$5?04Y9('P@04Q'7U-)1%]-
M1#4I.PT*"0D)<'5B;&EC('-T871I8R!R96%D;VYL>2!U:6YT($-!3$=?1$53
M(#T@*$%,1U]#3$%34U]$051!7T5.0U)94%0@?"!!3$=?5%E015]"3$]#2R!\
M($%,1U]3241?1$53*3L-"@D)"7!U8FQI8R!S=&%T:6,@<F5A9&]N;'D@=6EN
M="!#04Q'7U)#,B ]("A!3$=?0TQ!4U-?1$%405]%3D-265!4('P@04Q'7U19
M4$5?0DQ/0TL@?"!!3$=?4TE$7U)#,BD[#0H)"0EP=6)L:6,@<W1A=&EC(')E
M861O;FQY('5I;G0@0T%,1U]20S0@/2 H04Q'7T-,05-37T1!5$%?14Y#4EE0
M5"!\($%,1U]465!%7U-44D5!32!\($%,1U]3241?4D,T*3L-"@T*"0D)8V]N
M<W0@<W1R:6YG($-R>7!T1&QL(#T@(F-O<F5D;&PN9&QL(CL-"@D)"6-O;G-T
M('-T<FEN9R!+97)N96Q$;&P@/2 B8V]R961L;"YD;&PB.PT*"0D)#0H)"0E;
M1&QL26UP;W)T*$-R>7!T1&QL*5T@#0H)"0EP=6)L:6,@<W1A=&EC(&5X=&5R
M;B!B;V]L($-R>7!T06-Q=6ER94-O;G1E>'0H#0H)"0D)<F5F($EN=%!T<B!P
M:%!R;W8L('-T<FEN9R!P<WI#;VYT86EN97(L('-T<FEN9R!P<WI0<F]V:61E
M<BP-"@D)"0EU:6YT(&1W4')O=E1Y<&4L('5I;G0@9'=&;&%G<RD[#0H-"@D)
M"5M$;&Q);7!O<G0H0W)Y<'1$;&PI72 -"@D)"7!U8FQI8R!S=&%T:6,@97AT
M97)N(&)O;VP@0W)Y<'1296QE87-E0V]N=&5X="@@#0H)"0D)26YT4'1R(&A0
M<F]V+"!U:6YT(&1W1FQA9W,I.PT*#0H)"0E;1&QL26UP;W)T*$-R>7!T1&QL
M*5T@#0H)"0EP=6)L:6,@<W1A=&EC(&5X=&5R;B!B;V]L($-R>7!T1&5R:79E
M2V5Y* T*"0D)"4EN=%!T<B!H4')O=BP@=6EN="!!;&=I9"P@26YT4'1R(&A"
M87-E1&%T82P@#0H)"0D)=6EN="!D=T9L86=S+"!R968@26YT4'1R('!H2V5Y
M*3L-"@D)"0D-"@D)"5M$;&Q);7!O<G0H0W)Y<'1$;&PI72 -"@D)"7!U8FQI
M8R!S=&%T:6,@97AT97)N(&)O;VP@0W)Y<'1#<F5A=&5(87-H* T*"0D)"4EN
M=%!T<B!H4')O=BP@=6EN="!!;&=I9"P@26YT4'1R(&A+97DL( T*"0D)"75I
M;G0@9'=&;&%G<RP@<F5F($EN=%!T<B!P:$AA<V@I.PT*#0H)"0E;1&QL26UP
M;W)T*$-R>7!T1&QL*5T@#0H)"0EP=6)L:6,@<W1A=&EC(&5X=&5R;B!B;V]L
M($-R>7!T2&%S:$1A=&$H#0H)"0D)26YT4'1R(&A(87-H+"!B>71E6UT@<&)$
M871A+" -"@D)"0EU:6YT(&1W1&%T84QE;BP@=6EN="!D=T9L86=S*3L-"@D)
M"0D-"@D)"5M$;&Q);7!O<G0H0W)Y<'1$;&PI72 -"@D)"7!U8FQI8R!S=&%T
M:6,@97AT97)N(&)O;VP@0W)Y<'1%;F-R>7!T* T*"0D)"4EN=%!T<B!H2V5Y
M+"!);G10='(@:$AA<V@L(&)O;VP@1FEN86PL('5I;G0@9'=&;&%G<RP@#0H)
M"0D)8GET95M=('!B1&%T82P@<F5F('5I;G0@<&1W1&%T84QE;BP@=6EN="!D
M=T)U9DQE;BD[#0H-"@D)"5M$;&Q);7!O<G0H0W)Y<'1$;&PI72 -"@D)"7!U
M8FQI8R!S=&%T:6,@97AT97)N(&)O;VP@0W)Y<'1$96-R>7!T* T*"0D)"4EN
M=%!T<B!H2V5Y+"!);G10='(@:$AA<V@L(&)O;VP@1FEN86PL('5I;G0@9'=&
M;&%G<RP@#0H)"0D)8GET95M=('!B1&%T82P@<F5F('5I;G0@<&1W1&%T84QE
M;BD[#0H-"@D)"5M$;&Q);7!O<G0H0W)Y<'1$;&PI72 -"@D)"7!U8FQI8R!S
M=&%T:6,@97AT97)N(&)O;VP@0W)Y<'1$97-T<F]Y2&%S:"A);G10='(@:$AA
M<V@I.PT*#0H)"0E;1&QL26UP;W)T*$-R>7!T1&QL*5T@#0H)"0EP=6)L:6,@
M<W1A=&EC(&5X=&5R;B!B;V]L($-R>7!T1&5S=')O>4ME>2A);G10='(@:$ME
M>2D[#0H-"@T*"0D)(W)E9VEO;B!%<G)O<B!R97!O<G1I;F<@:6UP;W)T<PT*
M"0T*"0D)<'5B;&EC(&-O;G-T('5I;G0@1D]234%47TU%4U-!1T5?1E)/35]3
M65-414T@/2 P># P,# Q,# P.PT*#0H)"0E;1&QL26UP;W)T*$ME<FYE;$1L
M;"E=#0H)"0EP=6)L:6,@<W1A=&EC(&5X=&5R;B!U:6YT($=E=$QA<W1%<G)O
M<B@I.PT*#0H)"0E;1&QL26UP;W)T*$ME<FYE;$1L;"E=#0H)"0EP=6)L:6,@
M<W1A=&EC(&5X=&5R;B!U:6YT($9O<FUA=$UE<W-A9V4H#0H)"0D)=6EN="!D
M=T9L86=S+"!S=')I;F<@;'!3;W5R8V4L('5I;G0@9'=-97-S86=E260L#0H)
M"0D)=6EN="!D=TQA;F=U86=E260L(%-T<FEN9T)U:6QD97(@;'!"=69F97(L
M('5I;G0@;E-I>F4L#0H)"0D)<W1R:6YG(%M=($%R9W5M96YT<RD[#0H-"@D)
M"2-E;F1R96=I;VX)"0D)#0H)"7T-"@D-"@D)+R\@86QL('-T871I8R!M971H
M;V1S#0H)"7!R:79A=&4@0W)Y<'1O*"D-"@D)>PT*"0E]#0H)"0T*"0DO+R\@
M/'-U;6UA<GD^#0H)"2\O+R!%;F-R>7!T(&1A=&$N(%5S92!P87-S<&AR87-E
M('1O(&=E;F5R871E('1H92!E;F-R>7!T:6]N(&ME>2X@#0H)"2\O+R!2971U
M<FYS(&$@8GET92!A<G)A>2!T:&%T(&-O;G1A:6YS('1H92!E;F-R>7!T960@
M9&%T82X-"@D)+R\O(#PO<W5M;6%R>3X-"@D)<W1A=&EC('!U8FQI8R!B>71E
M6UT@16YC<GEP="AS=')I;F<@<&%S<W!H<F%S92P@8GET95M=(&1A=&$I#0H)
M"7L-"@D)"2\O(&AO;&1S(&5N8W)Y<'1E9"!D871A#0H)"0EB>71E6UT@8G5F
M9F5R(#T@;G5L;#L)"0T*#0H)"0DO+R!C<GEP=&\@:&%N9&QE<PT*"0D)26YT
M4'1R(&A0<F]V(#T@26YT4'1R+EIE<F\[#0H)"0E);G10='(@:$ME>2 ]($EN
M=%!T<BY:97)O.PT*#0H)"0ET<GD-"@D)"7L-"@D)"0DO+R!G970@8W)Y<'1O
M('!R;W9I9&5R+"!S<&5C:69Y('1H92!P<F]V:61E<B H,W)D(&%R9W5M96YT
M*0T*"0D)"2\O(&EN<W1E860@;V8@=7-I;F<@9&5F875L="!T;R!E;G-U<F4@
M=&AE('-A;64@<')O=FED97(@:7,@#0H)"0D)+R\@=7-E9"!O;B!C;&EE;G0@
M86YD('-E<G9E<@T*"0D)"6EF("@A5VEN07!I+D-R>7!T06-Q=6ER94-O;G1E
M>'0H<F5F(&A0<F]V+"!N=6QL+"!7:6Y!<&DN35-?1$5&7U!23U8L( T*"0D)
M"0E7:6Y!<&DN4%)/5E]24T%?1E5,3"P@5VEN07!I+D-265!47U9%4DE&64-/
M3E1%6%0I*0T*"0D)"0E&86EL960H(D-R>7!T06-Q=6ER94-O;G1E>'0B*3L-
M"@D)"0D-"@D)"0DO+R!G96YE<F%T92!E;F-R>7!T:6]N(&ME>2!F<F]M('!A
M<W-P:')A<V4-"@D)"0EH2V5Y(#T@1V5T0W)Y<'1O2V5Y*&A0<F]V+"!P87-S
M<&AR87-E*3L-"@T*"0D)"2\O(&1E=&5R;6EN92!H;W<@;&%R9V4@;V8@82!B
M=69F97(@:7,@<F5Q=6ER960-"@D)"0DO+R!T;R!H;VQD('1H92!E;F-R>7!T
M960@9&%T80T*"0D)"75I;G0@9&%T84QE;F=T:" ]("AU:6YT*61A=&$N3&5N
M9W1H.PT*"0D)"75I;G0@8G5F3&5N9W1H(#T@*'5I;G0I9&%T82Y,96YG=&@[
M#0H)"0D):68@*"%7:6Y!<&DN0W)Y<'1%;F-R>7!T*&A+97DL($EN=%!T<BY:
M97)O+"!T<G5E+" -"@D)"0D),"P@;G5L;"P@<F5F(&1A=&%,96YG=&@L(&)U
M9DQE;F=T:"DI#0H)"0D)"49A:6QE9"@B0W)Y<'1%;F-R>7!T(BD[#0H)"0D)
M#0H)"0D)+R\@86QL;V-A=&4@86YD(&9I;&P@8G5F9F5R('=I=&@@96YC<GEP
M=&5D(&1A=&$-"@D)"0EB=69F97(@/2!N97<@8GET95MD871A3&5N9W1H73L-
M"@D)"0E"=69F97(N0FQO8VM#;W!Y*&1A=&$L(# L(&)U9F9E<BP@,"P@9&%T
M82Y,96YG=&@I.PT*"0D)"0T*"0D)"61A=&%,96YG=&@@/2 H=6EN="ED871A
M+DQE;F=T:#L-"@D)"0EB=69,96YG=&@@/2 H=6EN="EB=69F97(N3&5N9W1H
M.PT*"0D)"6EF("@A5VEN07!I+D-R>7!T16YC<GEP="AH2V5Y+"!);G10='(N
M6F5R;RP@=')U92P@#0H)"0D)"3 L(&)U9F9E<BP@<F5F(&1A=&%,96YG=&@L
M(&)U9DQE;F=T:"DI#0H)"0D)"49A:6QE9"@B0W)Y<'1%;F-R>7!T(BD[#0H)
M"0E]#0H)"0D-"@D)"69I;F%L;'D-"@D)"7L-"@D)"0DO+R!R96QE87-E(&-R
M>7!T;R!H86YD;&5S#0H)"0D):68@*&A+97D@(3T@26YT4'1R+EIE<F\I#0H)
M"0D)"5=I;D%P:2Y#<GEP=$1E<W1R;WE+97DH:$ME>2D[#0H-"@D)"0EI9B H
M:%!R;W8@(3T@26YT4'1R+EIE<F\I#0H)"0D)"5=I;D%P:2Y#<GEP=%)E;&5A
M<V5#;VYT97AT*&A0<F]V+" P*3L-"@D)"7T-"@D)"0T*"0D)<F5T=7)N(&)U
M9F9E<CL-"@D)?0T*#0H-"@D)+R\O(#QS=6UM87)Y/@T*"0DO+R\@1&5C<GEP
M="!D871A+B!5<V4@<&%S<W!H<F%S92!T;R!G96YE<F%T92!T:&4@96YC<GEP
M=&EO;B!K97DN( T*"0DO+R\@4F5T=7)N<R!A(&)Y=&4@87)R87D@=&AA="!C
M;VYT86EN<R!T:&4@9&5C<GEP=&5D(&1A=&$N#0H)"2\O+R \+W-U;6UA<GD^
M#0H)"7-T871I8R!P=6)L:6,@8GET95M=($1E8W)Y<'0H<W1R:6YG('!A<W-P
M:')A<V4L(&)Y=&5;72!D871A*0T*"0E[#0H)"0DO+R!M86ME(&$@8V]P>2!O
M9B!T:&4@96YC<GEP=&5D(&1A=&$-"@D)"6)Y=&5;72!D871A0V]P>2 ](&1A
M=&$N0VQO;F4H*2!A<R!B>71E6UT[#0H)"0D-"@D)"2\O(&AO;&1S('1H92!D
M96-R>7!T960@9&%T80T*"0D)8GET95M=(&)U9F9E<B ](&YU;&P[#0H)"0D-
M"@D)"2\O(&-R>7!T;R!H86YD;&5S#0H)"0E);G10='(@:%!R;W8@/2!);G10
M='(N6F5R;SL-"@D)"4EN=%!T<B!H2V5Y(#T@26YT4'1R+EIE<F\[#0H)"0D-
M"@D)"71R>0T*"0D)>PT*"0D)"2\O(&=E="!C<GEP=&\@<')O=FED97(L('-P
M96-I9GD@=&AE('!R;W9I9&5R("@S<F0@87)G=6UE;G0I#0H)"0D)+R\@:6YS
M=&5A9"!O9B!U<VEN9R!D969A=6QT('1O(&5N<W5R92!T:&4@<V%M92!P<F]V
M:61E<B!I<R -"@D)"0DO+R!U<V5D(&]N(&-L:65N="!A;F0@<V5R=F5R#0H)
M"0D):68@*"%7:6Y!<&DN0W)Y<'1!8W%U:7)E0V]N=&5X="AR968@:%!R;W8L
M(&YU;&PL(%=I;D%P:2Y-4U]$149?4%)/5BP@#0H)"0D)"5=I;D%P:2Y04D]6
M7U)305]&54Q,+"!7:6Y!<&DN0U)94%1?5D5224990T].5$585"DI#0H)"0D)
M"49A:6QE9"@B0W)Y<'1!8W%U:7)E0V]N=&5X="(I.PT*"0D)#0H)"0D)+R\@
M9V5N97)A=&4@96YC<GEP=&EO;B!K97D@9G)O;2!T:&4@<&%S<W!H<F%S90T*
M"0D)"6A+97D@/2!'971#<GEP=&]+97DH:%!R;W8L('!A<W-P:')A<V4I.PT*
M#0H)"0D)+R\@9&5C<GEP="!T:&4@9&%T80T*"0D)"75I;G0@9&%T84QE;F=T
M:" ]("AU:6YT*61A=&%#;W!Y+DQE;F=T:#L-"@D)"0EI9B H(5=I;D%P:2Y#
M<GEP=$1E8W)Y<'0H:$ME>2P@26YT4'1R+EIE<F\L('1R=64L( T*"0D)"0DP
M+"!D871A0V]P>2P@<F5F(&1A=&%,96YG=&@I*0T*"0D)"0E&86EL960H(D-R
M>7!T1&5C<GEP="(I.PT*"0D)"0T*"0D)"2\O(&-O<'D@=&\@82!B=69F97(@
M=&AA="!I<R!R971U<FYE9"!T;R!T:&4@8V%L;&5R#0H)"0D)+R\@=&AE(&1E
M8W)Y<'1E9"!D871A('-I>F4@;6EG:'0@8F4@;&5S<R!T:&5N#0H)"0D)+R\@
M=&AE(&5N8W)Y<'1E9"!S:7IE#0H)"0D)8G5F9F5R(#T@;F5W(&)Y=&5;9&%T
M84QE;F=T:%T[#0H)"0D)0G5F9F5R+D)L;V-K0V]P>2AD871A0V]P>2P@,"P@
M8G5F9F5R+" P+" H:6YT*61A=&%,96YG=&@I.PT*"0D)?0T*"0D)#0H)"0EF
M:6YA;&QY#0H)"0E[#0H)"0D)+R\@<F5L96%S92!C<GEP=&\@:&%N9&QE<PT*
M"0D)"6EF("AH2V5Y("$]($EN=%!T<BY:97)O*0T*"0D)"0E7:6Y!<&DN0W)Y
M<'1$97-T<F]Y2V5Y*&A+97DI.PT*#0H)"0D):68@*&A0<F]V("$]($EN=%!T
M<BY:97)O*0T*"0D)"0E7:6Y!<&DN0W)Y<'1296QE87-E0V]N=&5X="AH4')O
M=BP@,"D[#0H)"0E]#0H)"0D-"@D)"7)E='5R;B!B=69F97([#0H)"7T-"@D)
M#0H-"@D)+R\O(#QS=6UM87)Y/@T*"0DO+R\@0W)E871E(&$@8W)Y<'1O(&ME
M>2!F;W)M(&$@<&%S<W!H<F%S92X@5&AI<R!K97D@:7,@#0H)"2\O+R!U<V5D
M('1O(&5N8W)Y<'0@86YD(&1E8W)Y<'0@9&%T82X-"@D)+R\O(#PO<W5M;6%R
M>3X-"@D)<W1A=&EC('!R:79A=&4@26YT4'1R($=E=$-R>7!T;TME>2A);G10
M='(@:%!R;W8L('-T<FEN9R!P87-S<&AR87-E*0T*"0E[#0H)"0DO+R!C<GEP
M=&\@:&%N9&QE<PT*"0D)26YT4'1R(&A(87-H(#T@26YT4'1R+EIE<F\[#0H)
M"0E);G10='(@:$ME>2 ]($EN=%!T<BY:97)O.PT*"0D)#0H)"0ET<GD-"@D)
M"7L-"@D)"0DO+R!C<F5A=&4@,3(X(&)I="!H87-H(&]B:F5C= T*"0D)"6EF
M("@A5VEN07!I+D-R>7!T0W)E871E2&%S:"AH4')O=BP@#0H)"0D)"5=I;D%P
M:2Y#04Q'7TU$-2P@26YT4'1R+EIE<F\L(# L(')E9B!H2&%S:"DI#0H)"0D)
M"49A:6QE9"@B0W)Y<'1#<F5A=&5(87-H(BD[#0H)"0D)#0H)"0D)+R\@861D
M('!A<W-P:')A<V4@=&\@:&%S: T*"0D)"6)Y=&5;72!K97E$871A(#T@05-#
M24E%;F-O9&EN9RY!4T-)22Y'971">71E<RAP87-S<&AR87-E*3L-"@D)"0EI
M9B H(5=I;D%P:2Y#<GEP=$AA<VA$871A*&A(87-H+"!K97E$871A+" H=6EN
M="EK97E$871A+DQE;F=T:"P@,"DI#0H)"0D)"49A:6QE9"@B0W)Y<'1(87-H
M1&%T82(I.PT*"0D)"0D-"@D)"0DO+R!C<F5A=&4@-# @8FET(&-R>7!T;R!K
M97D@9G)O;2!P87-S<&AR87-E(&AA<V@-"@D)"0EI9B H(5=I;D%P:2Y#<GEP
M=$1E<FEV94ME>2AH4')O=BP@5VEN07!I+D-!3$=?4D,R+" -"@D)"0D):$AA
M<V@L(%=I;D%P:2Y#4EE05%]%6%!/4E1!0DQ%+"!R968@:$ME>2DI#0H)"0D)
M"49A:6QE9"@B0W)Y<'1$97)I=F5+97DB*3L-"@D)"7T-"@D)"0T*"0D)9FEN
M86QL>0T*"0D)>PT*"0D)"2\O(')E;&5A<V4@:&%S:"!O8FIE8W0-"@D)"0EI
M9B H:$AA<V@@(3T@26YT4'1R+EIE<F\I#0H)"0D)"5=I;D%P:2Y#<GEP=$1E
M<W1R;WE(87-H*&A(87-H*3L-"@D)"7T-"@D)"0T*"0D)<F5T=7)N(&A+97D[
M#0H)"7T-"@T*#0H)"2\O+R \<W5M;6%R>3X-"@D)+R\O(%1H<F]W<R!3>7-T
M96U%>&-E<'1I;VX@=VET:"!'971,87-T17)R;W(@:6YF;W)M871I;VXN#0H)
M"2\O+R \+W-U;6UA<GD^#0H)"7-T871I8R!P<FEV871E('9O:60@1F%I;&5D
M*'-T<FEN9R!C;VUM86YD*0T*"0E[#0H)"0EU:6YT(&QA<W1%<G)O<B ](%=I
M;D%P:2Y'971,87-T17)R;W(H*3L-"@D)"5-T<FEN9T)U:6QD97(@<V(@/2!N
M97<@4W1R:6YG0G5I;&1E<B@U,# I.PT*#0H)"0ET<GD-"@D)"7L-"@D)"0DO
M+R!G970@;65S<V%G92!F;W(@;&%S="!E<G)O<@T*"0D)"5=I;D%P:2Y&;W)M
M871-97-S86=E*%=I;D%P:2Y&3U)-051?34534T%'15]&4D]-7U-94U1%32P@
M#0H)"0D)"6YU;&PL(&QA<W1%<G)O<BP@,"P@<V(L(#4P,"P@;G5L;"D[#0H)
M"0E]#0H)"0EC871C: T*"0D)>PT*"0D)"2\O(&5R<F]R(&-A;&QI;F<@1F]R
M;6%T365S<V%G90T*"0D)"7-B+D%P<&5N9"@B3B]!+B(I.PT*"0D)?0T*"0D)
M"0D-"@D)"71H<F]W(&YE=R!3>7-T96U%>&-E<'1I;VXH#0H)"0D)<W1R:6YG
M+D9O<FUA="@B>S!](&9A:6QE9"Y<<EQN3&%S="!E<G)O<B M(#!X>S$Z>'TN
M7')<;D5R<F]R(&UE<W-A9V4@+2![,GTB+ T*"0D)"6-O;6UA;F0L(&QA<W1%
D<G)O<BP@<V(N5&]3=')I;F<H*2DI.PT*"0E]#0H)?0T*?0T*
`
end