Return-Path: <John.Harrison-request@cl.cam.ac.uk>
Delivery-Date: 
Received: from dworshak.cs.uidaho.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 21 Sep 1993 13:43:18 +0100
Received: by dworshak.cs.uidaho.edu (1.37.109.4/16.2) id AA17815;
          Tue, 21 Sep 93 05:17:18 -0700
Sender: info-hol-request@cs.uidaho.edu
Errors-To: info-hol-request@cs.uidaho.edu
Precedence: bulk
Received: from ganymede.inmos.co.uk by dworshak.cs.uidaho.edu 
          with SMTP (1.37.109.4/16.2) id AA17811; Tue, 21 Sep 93 05:17:09 -0700
Received: from frogland.inmos.co.uk by ganymede.inmos.co.uk;
          Tue, 21 Sep 93 12:48:43 BST
From: David Shepherd <des@inmos.co.uk>
Message-Id: <15305.9309211216@frogland.inmos.co.uk>
Subject: modified resolution functions
To: info-hol@cs.uidaho.edu (info-hol mailing list)
Date: Tue, 21 Sep 1993 13:16:27 +0100 (BST)
X-Mailer: ELM [version 2.4 PL20]
Content-Type: text
Content-Length: 24506

Ching Tsun asked about improvements to the resolution functions in
HOL. I have handled some of the things that he was after. Here is
a uuencoded, compressed tar file of the relevant stuff. Basically the
enhancements are

1) in a resolving term 

   P1 ==> ... ==> Pn ==> (Q1 /\ .. /\ Qm)

   the final conjunction is NOT split into m cases.

2) in a resolving term

   (P1 /\ ... /\ Pn) => Q

   an initial attempt is made to do n resolutions on

   P1 ==> ... ==> Pn ==> Q

   if this fails then it will expand it into the n! permutations
   of Pi's and try all of those. This is a big saving in the common
   case where all the Pi's do resolve

3) terminal resolvants are not added to the assumption list until all
   resolution is finished. This avoids irritating extra terms that occur
   when some results get added and then start to re-resolve with the
   resolution terms.

The new functions are

RESOLVE_TAC
RESOLVE_THEN
IMP_RESOLVE_TAC
IMP_RESOLVE_THEN
ANTE_RESOLVE_THEN

N.b. very occasionally a tactic that you would expect should work fails
with an obscure error message ... after tracking down most of the
problems that affected me I could never be bothered to sort out the
occasional lurking strangeness.

N.b. its all in hol88 so I don't use it any more. I haven't done a
hol90 version yet as (a) the existing tactics seem fast enough (at
present!) in hol90 and (b) I make more direct use of MATCH_MP on
ASSUMEd assumptions now to handle the difficult cases.

--------------------------------------------------------------------------
david shepherd: des@inmos.co.uk                     tel: 0454-616616 x 625
                inmos ltd, 1000 aztec west, almondsbury, bristol, bs12 4sq
		"They didn't like the rates, they don't like the poll tax,
		 and they won't like the council tax."   - Nicholas Ridley   
--------------------------------------------------------------------------
begin 644 newres.tar
M;F5W<F5S+VYE=W)E<RYM;                                       
M                                                            
M             " @(#8T-"  (" @,S$Q(  @(" T-30@ " @(" @(#(T-#(R
M(" U,C<P-30R,3<U(" @-S,R,@ @                                
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                       E('-P965D('5P('-I;7!L92!R97-O;'5T:6]N
M<PD)"0D)"24*)2 M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T@)0HE($YE=R!2
M15-?0T%.3TX@9F]R('9E<G-I;VX@,2XQ,BX)"0D@6U1&32 Y,"XQ,BXP-UT@
M)0HE( D)"0D)"0D)"24*)2!4:&4@8V]M<&QE=&4@;&ES="!O9B!T<F%N<V9O
M<FUA=&EO;G,@:7,@;F]W.@D)"0DE"B4)"0D)"0D)"0DE"B4@("!^=" @(" @
M(" @(" @(" @+2TM/B @(" @(" @=" ]/3X@1B @(" @(" @*&%T(&]U=&5R
M;6]S="!L979E;"D))0HE(" @=#$@+UP@=#()(" @("TM+3X)=#$L('0R"2 @
M(" @(" H870@;W5T97)M;W-T(&QE=F5L*0DE"B4@(" H=#$O7'0R*3T]/G0@
M(" @+2TM/@ET,3T]/BAT,CT]/G0I+"!T,CT]/BAT,3T]/G0I"0DE"B4@(" H
M=#%<+W0R*3T]/G0@(" @+2TM/@ET,3T]/G0L('0R/3T^= D)"0DE"B4@("!T
M,2 ]('0R(" @(" @(" @+2TM/B @(" @(" @=#$]=#(L('0Q/3T^=#(L('0R
M/3T^=#$@*&%T(&]U=&5R;6]S="!L979E;"DE"B4@(" A>"X@=#$@/3T^('0R
M(" @+2TM/B @(" @(" @=#$@/3T^("%X+G0R(" @*'@@;F]T(&9R964@:6X@
M=#$I"24@"B4@(" H/W@N=#$I(#T]/B!T,B @+2TM/@DA>"<N('0Q6W@G+WA=
M(#T]/B!T,@D)"24*)0D)"0D)"0D)"24*)2!4:&4@9G5N8W1I;VX@;F]W(&9A
M:6QS(&EF(&YO(&EM<&QI8V%T:6]N<R!C86X@8F4@9&5R:79E9"!F<F]M('1H
M92 ))0HE(&EN<'5T('1H96]R96TN"0D)"0D)"24*)2 M+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2T@)0H*"FQE="!215-/3%9%7U-03$E4('1H(#T*("!L971R
M96,@9B!T:"!A8V,@/0H@(" @;&5T('<@/2!C;VYC;"!T:"!I;@H@(" @:68@
M*&ES7V-O;FH@=RD@"B @(" @('1H96X@9B H0T].2E5.0U0Q('1H*2 H9B H
M0T].2E5.0U0R('1H*2!A8V,I(&5L<V4*(" @(&EF("AI<U]E<2!W("8@*'1Y
M<&5?;V8@*')A;F0@=RD@/2 B.F)O;VPB*2D@"B @(" @('1H96X@;&5T("AT
M:#$L=&@R*2 ]($517TE-4%]254Q%('1H( H)(" @86YD("AT:#,L=&@T*2 ]
M($517TE-4%]254Q%("A!4%]415)-(B1^(G1H*2!I;@H@(" @(" @(" @('1H
M+G1H,2YT:#(N=&@S+G1H-"YA8V,*(" @(&5L<V4@=&@N86-C"B @:6X@"B @
M;&5T("AV;"QB;V1Y*2 ]('-T<FEP7V9O<F%L;" H8V]N8VP@=&@I(&EN"B @
M;6%P("A'14Y,('9L*2AF("A34$5#7T%,3"!T:"D@6UTI.SL*"FQE="!215-/
M3%9%7T-!3D].(#T*(" @(&QE="!N;W1?96QI;2!T:" ]("AI<U]N96<@*&-O
M;F-L('1H*2 ]/B!T<G5E+"A.3U1?14Q)32!T:"D@?" H9F%L<V4L=&@I*2!I
M;@H@(" @;&5T<F5C(&-A;F]N(&9L('1H(#T@"B @(" @("!L970@=R ](&-O
M;F-L('1H(&EN"B4H"B @(" @("!I9B H:7-?8V]N:B!W*2!T:&5N"B @(" @
M(" @("!L970@*'1H,2QT:#(I(#T@0T].2E]004E2('1H(&EN"B @(" @(" @
M(" @(" @6TQ)4U1?0T].2B H*&-A;F]N(&9L('1H,2D@0" H8V%N;VX@9FP@
M=&@R*2E=(&5L<V4**24*(" @(" @(&EF("@H:7-?:6UP('<I("8@;F]T*&ES
M7VYE9R!W*2D@=&AE;@H@(" @(" @(" @;&5T(&%N=&4L8V]N8R ](&1E<W1?
M:6UP('<@:6X*(" @(" @(" @(&EF("AI<U]C;VYJ(&%N=&4I('1H96X*(" @
M(" @(" @(" @(&QE="!A+&(@/2!D97-T7V-O;FH@86YT92!I;@H)(" @("!L
M970@8W1H(#T@1T5.7T%,3"A-4"!T:" H0T].2B H05-354U%(&$I("A!4U-5
M344@8BDI*2!I;@H)(" @("!L970@=&@Q(#T@1$E30T@@8B!C=&@@86YD('1H
M,B ]($1)4T-((&$@8W1H(&EN"B @(" @(" @(" @(" @(" @*&-A;F]N('1R
M=64@*$1)4T-((&$@=&@Q*2D@0" H8V%N;VX@=')U92 H1$E30T@@8B!T:#(I
M*2!E;'-E"B @(" @(" @("!I9B H:7-?9&ES:B!A;G1E*2!T:&5N"B @(" @
M(" @(" @("!L970@82QB(#T@9&5S=%]D:7-J(&%N=&4@:6X*"2 @(" @;&5T
M(&%T:" ]($1)4THQ("A!4U-5344@82D@8B!A;F0@8G1H(#T@1$E32C(@82 H
M05-354U%(&(I(&EN"B @(" @(" @(" @("!L970@=&@Q(#T@1$E30T@@82 H
M35 @=&@@871H*2!A;F0@=&@R(#T@1$E30T@@8B H35 @=&@@8G1H*2!I;@H@
M(" @(" @(" @(" @(" @("AC86YO;B!T<G5E('1H,2D@0" H8V%N;VX@=')U
M92!T:#(I(&5L<V4*(" @(" @(" @(&EF("AI<U]E>&ES=',@86YT92D@=&AE
M;@H@(" @(" @(" @(" @;&5T('8L8F]D>2 ](&1E<W1?97AI<W1S(&%N=&4@
M:6X*"2 @(" @;&5T(&YE=W8@/2!V87)I86YT("AF<F5E<R!W*2!V(&EN"@D@
M(" @(&QE="!N97=A(#T@<W5B<W0@6VYE=W8L=ET@8F]D>2!I;@H)(" @("!L
M970@=&@Q(#T@35 @=&@@*$5825-44R H86YT92P@;F5W=BD@*$%34U5-12!N
M97=A*2D@:6X*"2 @(" @(" @(&-A;F]N('1R=64@*$1)4T-((&YE=V$@=&@Q
M*2!E;'-E"B @(" @(" @("!;*$=%3E]!3$P@;R H1$E30T@@86YT92D@;R!'
M14Y?04Q,*2 H54Y$25-#2"!T:"E=(&5L<V4*)2@*(" @(" @(&EF("AI<U]E
M<2!W("8@*'1Y<&5?;V8@*')A;F0@=RD@/2 B.F)O;VPB*2D@=&AE;@H@(" @
M(" @(" @;&5T("AT:#$L=&@R*2 ]($517TE-4%]254Q%('1H(&EN"B @(" @
M(" @(" H9FP@/3X@6T=%3E]!3$P@=&A=('P@6UTI($ @*&-A;F]N('1R=64@
M=&@Q*2! ("AC86YO;B!T<G5E('1H,BD@96QS90HI)0H@(" @(" @:68@*&ES
M7V9O<F%L;"!W*2!T:&5N"B @(" @(" @(" @;&5T('9S+&)O9'D@/2!S=')I
M<%]F;W)A;&P@=R!I;B!C86YO;B!F;" H4U!%0TP@=G,@=&@I(&5L<V4*(" @
M(" @(&EF(&9L('1H96X@6T=%3E]!3$P@=&A=(&5L<V4@6UT@:6X*(" @(%QT
M:"X@*&QE="!A<F=S(#T@*&YO=%]E;&EM(&\@4U!%0U]!3$PI("A34$5#7T%,
M3"!T:"D@:6X*(" @(" @(" @(&QE="!I;7!S(#T@*&UA<"!'14Y?04Q,(&\@
M*'5N8W5R<GD@8V%N;VXI*2!A<F=S(&EN"B @(" @(" @(" @(" @87-S97)T
M("@D;F]T(&\@;G5L;"D@:6UP<RD*(" @(" @(" @/R!F86EL=VET:"!@4D53
M3TQ615]#04Y/3CH@;F\@:6UP;&EC871I;VX@:7,@9&5R:79A8FQE(&9R;VT@
M:6YP=70@=&AM+F [.R *"@HE("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2 E
M"B4@1&5F:6YI=&EO;B!O9B!T:&4@<')I;6ET:79E.@D)"0D)"24*)0D)"0D)
M"0D)"24*)2!)35!?4D533TQ615]42$5..B!297-O;'9E(&%L;"!A<W-U;7!T
M:6]N<R!A9V%I;G-T(&%N(&EM<&QI8V%T:6]N+@D))0HE"0D)"0D)"0D))0HE
M(%1H92!D969I;FET:6]N('5S97,@86X@875X:6QI87)Y("AL;V-A;"D@9G5N
M8W1I;VXL($U!5$-(7TU0+"!W:&EC:"!I<R E"B4@:G5S="!L:6ME('1H92!B
M=6EL="UI;B!V97)S:6]N+"!B=70@9&]E<VXG="!U<V4@1U-014,N"0DE"B4@
M"0D)"0D)"0D))0HE($YE=R!I;7!L96UE;G1A=&EO;B!F;W(@=F5R<VEO;B Q
M+C$R.B!F86EL<R!I9B!N;R!-4"UC;VYS97%U96YC97,@8V%N(" E"B4@8F4@
M9')A=VXL(&%N9"!D;V5S(&]N;'D@;VYE+7-T97 @<F5S;VQU=&EO;BX)"5M4
M1DT@.3 N,3(N,#==(" E"B4@+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM("4*
M"F)E9VEN7W-E8W1I;VX@;F5W7W%R97-O;'5T:6]N7W1T8VQS.SL*"FQE="!-
M051#2%]-4"!I;7!T:" ]"B @("!L970@<W1H(#T@4U!%0U]!3$P@:6UP=&@@
M:6X*(" @(&QE="!M871C:&9N(#T@;6%T8V@@*&9S="AD97-T7VEM<"AC;VYC
M;"!S=&@I*2D@:6X*(" @(" @(%QT:"X@35 @*$E.4U1?5%E?5$5232 H;6%T
M8VAF;B H8V]N8VP@=&@I*2!S=&@I('1H.SL*"B4@+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM("4*)2!C:&5C:R!S="!L(#H@1F%I;"!W:71H('-T(&EF(&P@
M:7,@96UP='DL(&]T:&5R=VES92!R971U<FX@;"X)"24*)2 M+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2T@)0H*;&5T(&-H96-K('-T(&P@/2 H;G5L;"!L(#T^
M(&9A:6QW:71H('-T('P@;"D[.PH*)2 M+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2T@)0HE($E-4%]215-/3%9%7U1(14X@(#H@4F5S;VQV92!A;B!I;7!L:6-A
M=&EO;B!A9V%I;G-T('1H92!A<W-U;7!T:6]N<RX))0HE("TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2 E"@IL971R96,@04Y9('1T86-L(#T@159%4ED@*&UA
M<"!44ED@='1A8VPI.SL*"FQE=')E8R!33TU%('1T86-L(#T@7&<N(&EF("AT
M=&%C;" ](%M=*2!T:&5N(&9A:6QW:71H(&!33TU%8 H@(" @(" @(" @(" @
M(" @(" @(" @(" @("!E;'-E(&QE=" H='1A8RYT=&%C;"<I(#T@='1A8VP@
M(&EN"B @(" @(" @(" @(" @(" @(" @(" @(" @("@H='1A8R!42$5.("A!
M3ED@='1A8VPG*2D@3U)%3%-%("A33TU%('1T86-L)RDI(&<[.PH*;&5T(%-/
M3%9%('1H;" H87-L+&<I(#T*("!L971R96,@9B!T:&P@/2!I9B!T:&P@/2!;
M72!T:&5N(&9A:6P@96QS90H@(" @(" @(" @(" @(" @(&QE=" H=&@N=&AL
M)RD@/2!T:&P@:6X*(" @(" @(" @(" @(" @("!L970@=R ](&-O;F-L('1H
M(&EN"B @(" @(" @(" @(" @(" @:68@=R ](")&(B!T:&5N($-/3E127U1!
M0R!T:"!E;'-E"B @(" @(" @(" @(" @(" @:68@=R ](&<@=&AE;B!!0T-%
M4%1?5$%#('1H(&5L<V4*(" @(" @(" @(" @(" @("!F('1H;"<@:6X*(" H
M9B!T:&PI*&%S;"QG*3L["@HE(&]N(&5N=')Y('1O(&AE<F4@:6UP=&@@:&%S
M("IA;')E861Y*B!B965N(%)%4U]34$Q)5" M(&DN92X@:7,@82!P=7)E"B @
M:6UP;&EC871I;VX@*&]R('!E<FAA<',@86X@97%U86QI='D@=VAI8V@@=VEL
M;"!F86EL(&AE<F4A"B @;F5W(&-H86YG92P*)0IL970@24U07U)%4T],5D5?
M0D%315]35$50('1T86,@:6UP=&@@/0H@(%PH87-L+&<I("X*(" @(&QE="!L
M(#T@:71L:7-T("A<=&@N87!P96YD("AM87!F:6QT97(@*$U!5$-(7TU0('1H
M*2 H;6%P($%34U5-12!A<VPI*2D@6VEM<'1H72!;72!I;@H@(" @;&5T(&PG
M(#T@:71L:7-T(&%P<&5N9" H;6%P(%)%4T],5D5?4U!,250@;"D@6UT@:6X*
M(" @(&QE="!R97,@/2!C:&5C:R!@24U07U)%4T],5D5?0D%315]35$50.B!N
M;R!R97-O;'9E;G1S(& @;"<@:6X*(" @(&QE="!T86-S(#T@8VAE8VL@8$E-
M4%]215-/3%9%7T)!4T5?4U1%4#H@;F\@=&%C=&EC<V @*&UA<&9I;'1E<B!T
M=&%C(')E<RD@:6X*(" @(%-/344@*"A33TQ612!L)RDN=&%C<RDH87-L+&<I
M.SL*"FQE=')E8R!#3TY*7TE-4%]34$Q)5"!T:" ]"B @;&5T("AA;G1E+%\I
M(#T@*&1E<W1?:6UP(&\@8V]N8VPI('1H(&EN"B @:68@;F]T*&ES7V-O;FH@
M86YT92D@=&AE;B H,"Q'14Y?04Q,('1H*2!E;'-E"B @;&5T("AA+&(I(#T@
M9&5S=%]C;VYJ(&%N=&4@:6X*("!L970@8W1H(#T@35 @=&@@*$-/3DH@*$%3
M4U5-12!A*2 H05-354U%(&(I*2!I;@H@(&QE="!T:#$@/2!$25-#2"!B(&-T
M:"!I;@H@(&QE=" H;2QT:#(I(#T@0T].2E])35!?4U!,250@=&@Q(&EN"B @
M;&5T("AN+'1H,RD@/2!#3TY*7TE-4%]34$Q)5" H1$E30T@@82!T:#(I(&EN
M"B @*&TK;BLQ+$=%3E]!3$P@=&@S*3L["@IL971R96,@251%4E])35!?4D53
M3TQ615]"05-%7U-415 @;B!T=&%C(&EM<'1H(#T*("!I9B H;CTP*2!T:&5N
M($E-4%]215-/3%9%7T)!4T5?4U1%4"!T=&%C(&EM<'1H( H@(&5L<V4@24U0
M7U)%4T],5D5?0D%315]35$50("A)5$527TE-4%]215-/3%9%7T)!4T5?4U1%
M4" H;BTQ*2!T=&%C*2!I;7!T:#L["@IL970@24U07U)%4T],5D5?4U1%4"!B
M('1T86,@:6UP=&@@9R ]"B @("!L970@=R ](&-O;F-L(&EM<'1H(&EN"B @
M("!L970@*'9S+&)O9'DI(#T@<W1R:7!?9F]R86QL('<@:6X*(" @(&QE=" H
M86YT92QC;VYC*2 ](&1E<W1?:6UP(&)O9'D@/R!F86EL=VET:"!@24U07U)%
M4T],5D5?5$A%3CH@;F\@:6UP;&EC871I;VY@(&EN"B @(" H*&EF("AI<U]C
M;VYJ(&%N=&4I"B @(" @('1H96X@)2!W92!T<GD@=&\@<F5S;VQV92!A;&P@
M=&AE(&-O;FIU;F-T<R!F:7)S=" E"B @(" @(" @;&5T("AN+'1H*2 ]($-/
M3DI?24U07U-03$E4("A34$5#7T%,3"!I;7!T:"D@:6X*(" @(" @("!)5$52
M7TE-4%]215-/3%9%7T)!4T5?4U1%4"!N('1T86,@=&@@9PH@(" @("!E;'-E
M(&9A:6P*(" @(" I(#\@;&5T('1H<R ](%)%4T],5D5?0T%.3TX@:6UP=&@@
M:6X*(" @(" @(" @:68@8B!T:&5N($5615)9("AM87 @*$E-4%]215-/3%9%
M7T)!4T5?4U1%4"!T=&%C*2!T:',I(&<*(" @(" @(" @96QS92!I9B H;&5N
M9W1H('1H<R ](#$I('1H96X@4T]-12 H;6%P("A)35!?4D533TQ615]"05-%
M7U-415 @='1A8RD@=&AS*2!G"B @(" @(" @(&5L<V4@159%4ED@*&UA<"!T
M=&%C("A215-/3%9%7T-!3D].(&EM<'1H*2D@9PH@(" @*3L["@IL970@24U0
M7U)%4T],5D5?5$A%3B!T=&%C(&EM<'1H(#T@"B @("!L970@:6UP=&AS(#T@
M*%)%4T],5D5?4U!,250@:6UP=&@I(&EN"B @("!I9B H;&5N9W1H(&EM<'1H
M<R ](#$I('1H96X@24U07U)%4T],5D5?4U1%4"!T<G5E('1T86,@:6UP=&@*
M(" @(&5L<V4@*"A33TU%("AM87!F:6QT97(@*$E-4%]215-/3%9%7U-415 @
M=')U92!T=&%C*2!I;7!T:',I*0H@(" @(" @(" @/R!F86EL=VET:"!@24U0
M7U)%4T],5D5?5$A%3F I.SL*"@HE("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2 E"B4@4D533TQ615]42$5.(" @(#H@4F5S;VQV92!A;&P@:6UP;&EC871I
M=F4@87-S=6UP=&EO;G,@86=A:6YS="!T:&4@<F5S="X))0HE("TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2 E"@IL970@4D533TQ615]42$5.('1T86,@*&%S
M;"QG*2 ]"B @("!L970@87,@/2!I=&QI<W0@87!P96YD("AM87 @*%)%4T],
M5D5?4U!,250@;R!!4U-5344I(&%S;"D@6UT@:6X*(" @(&QE="!T:',@/2!I
M=&QI<W0@87!P96YD("AM87!F:6QT97(@4D533TQ615]#04Y/3B!A<RD@6UT@
M:6X*(" @(&QE="!I;7!S(#T@8VAE8VL@8%)%4T],5D5?5$A%3CH@;F\@:6UP
M;&EC871I;VY@('1H<R!I;@H@(" @;&5T(&P@/2!I=&QI<W0@*%QT:"YA<'!E
M;F0@*&UA<&9I;'1E<B H34%40TA?35 @=&@I(&%S*2D@:6UP<R!;72!I;@H@
M(" @;&5T(&PG(#T@:71L:7-T(&%P<&5N9" H;6%P(%)%4T],5D5?4U!,250@
M;"D@6UT@:6X*(" @(&QE="!R97,@/2!C:&5C:R!@4D533TQ615]42$5..B!N
M;R!R97-O;'9E;G1S(& @;"<@:6X*(" @(&QE="!T86-S(#T@8VAE8VL@8%)%
M4T],5D5?5$A%3CH@;F\@=&%C=&EC<V @*&UA<&9I;'1E<B!T=&%C(')E<RD@
M:6X*(" @(" @("!33TU%("@H4T],5D4@;"<I+G1A8W,I("AA<VPL9RD[.PH*
M)2 M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T@)0HE($%.5$5?4D533TQ615]4
M2$5.(" @(#H@4F5S;VQV92!A;&P@:6UP;&EC871I=F4@87-S=6UP=&EO;G,@
M86=A:6YS="!T:&4@<F5S="X))0HE("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2 E"@IL970@04Y415]215-/3%9%7U1(14X@='1A8R!A=&@@*&%S;"QG*2 ]
M"B @("!L970@87,@/2!I=&QI<W0@87!P96YD("AM87 @*%)%4T],5D5?4U!,
M250@;R!!4U-5344I(&%S;"D@6UT@:6X*(" @(&QE="!T:',@/2!I=&QI<W0@
M87!P96YD("AM87!F:6QT97(@4D533TQ615]#04Y/3B!A<RD@6UT@:6X*(" @
M(&QE="!I;7!S(#T@8VAE8VL@8$%.5$5?4D533TQ615]42$5..B!N;R!I;7!L
M:6-A=&EO;F @=&AS(&EN"B @("!L970@;" ](&UA<&9I;'1E<B H7'1H+DU!
M5$-(7TU0('1H(&%T:"D@:6UP<R!I;@H@(" @;&5T(&PG(#T@:71L:7-T(&%P
M<&5N9" H;6%P(%)%4T],5D5?4U!,250@;"D@6UT@:6X*(" @(&QE="!R97,@
M/2!C:&5C:R!@04Y415]215-/3%9%7U1(14XZ(&YO(')E<V]L=F5N=',@8"!L
M)R!I;@H@(" @;&5T('1A8W,@/2!C:&5C:R!@04Y415]215-/3%9%7U1(14XZ
M(&YO('1A8W1I8W-@("AM87!F:6QT97(@='1A8R!R97,I(&EN"B @(" @(" @
M4T]-12 H*%-/3%9%(&PG*2YT86-S*2 H87-L+&<I.SL*"B4@+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM("4*)2!%>'!O<G0@24U07U)%4T],5D5?5$A%3B!A
M;F0@4D533TQ615]42$5.(&]U='-I9&4@;V8@=&AE('-E8W1I;VXN"0DE"B4@
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM("4**$E-4%]215-/3%9%7U-415 L
M24U07U)%4T],5D5?5$A%3BQ215-/3%9%7U1(14XL04Y415]215-/3%9%7U1(
M14XI.SL*96YD7W-E8W1I;VX@;F5W7W%R97-O;'5T:6]N7W1T8VQS.SL*;&5T
M("A)35!?4D533TQ615]35$50+$E-4%]215-/3%9%7U1(14XL4D533TQ615]4
M2$5.+$%.5$5?4D533TQ615]42$5.*2 ](&ET.SL*"B4@+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM("4*)2!$969I;FET:6]N(&]F('1H92!S=&%N9&%R9"!R
M97-O;'5T:6]N('1A8W1I8W,@24U07U)%4U]404,@86YD(%)%4U]404,@)0HE
M"0D)"0D)"0D))0HE(%1H92!F=6YC=&EO;B!302!I<R!L:6ME(%-44DE07T%3
M4U5-15]404,L(&5X8V5P="!T:&%T(&ET(&1O97,@;F]T(" @(" E"B4@<W1R
M:7 @;V9F(&5X:7-T96YT:6%L('%U86YT:69I97)S+B!!;F0@4U0@:7,@;&EK
M92!35%))4%]42$U?5$A%3BP@"24*)2!E>&-E<'0@=&AA="!I="!A;'-O(&1O
M97,@;F]T('-T<FEP(&5X:7-T96YT:6%L('%U86YT:69I97)S+@D))0HE"0D)
M"0D)"0D))0HE($]L9"!V97)S:6]N.B!D96QE=&5D(&9O<B!(3TP@=F5R<VEO
M;B Q+C$R( D)(%M41DT@.3$N,#$N,3=="24*)0D)"0D)"0D)"24*)2!L970@
M*$E-4%]215-?5$%#+%)%4U]404,I(#T@"0D)"0D))0HE(" @(&QE="!35" ]
M($9)4E-47U1#3"!;0T].2E5.0U137U1(14X[($1)4TI?0T%315-?5$A%3ET@
M:6X)"24*)2 @("!L970@4T$@/2 H4D5014%47U1#3"!35"D@0TA%0TM?05-3
M54U%7U1!0R!I;@D)"24*)2 @(" @(" @*$E-4%]215-/3%9%7U1(14X@4T$L
M(%)%4T],5D5?5$A%3B!302D[.PD)"0DE"B4@+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM("4*"B4@+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM("4*)2!.97<@
M=F5R<VEO;G,@;V8@24U07U)%4U]404,@86YD(%)%4U]404,Z(')E<&5A=&5D
M;'D@<F5S;VQV92P@86YD('1H96X@)0HE(&%D9"!&54Q,62!S=')I<'!E9"P@
M9FEN86PL(')E<W5L="AS*2!T;R!T:&4@87-S=6UP=&EO;B!L:7-T+@D))0HE
M("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2 E"@IL971R968@9&5F97)R961?
M87-S=6US(#T@6UTZ*'1H;2EL:7-T.SL*"FQE="!$149%4E]42$T@=&@@9R ]
M("AD969E<G)E9%]A<W-U;7,@.CT@=&@N9&5F97)R961?87-S=6US.T%,3%]4
M04,@9RD[.PH*;&5T('-E=&EF>5]A<W-U;2!L(#T*(" @(&ET;&ES=" H7&$@
M<RX@:68@;65M("AC;VYC;"!A*2AM87 @8V]N8VP@<RD@=&AE;B!S(&5L<V4@
M82YS*2!L(%M=.SL*"FQE="!53D1%1D52('1T86,@.G1A8W1I8R ](%QG+@H@
M(&QE="!T:&US(#T@9&5F97)R961?87-S=6US(&EN"B @*&1E9F5R<F5D7V%S
M<W5M<R Z/2!;73LH:71L:7-T("A<=&@N)%1(14X@*'1T86,@=&@I*2 H*')E
M=B!O('-E=&EF>5]A<W-U;2D@=&AM<RD@04Q,7U1!0REG*3L["@IL970@24U0
M7U)%4T],5D5?5$%#('1H(&<@/0H@(" @*&1E9F5R<F5D7V%S<W5M<R Z/2!;
M73L*(" @(" H24U07U)%4T],5D5?5$A%3B H4D5014%47T=40TP@*$E-4%]2
M15-/3%9%7U-415 @9F%L<V4I($1%1D527U1(32D@=&@*(" @(" @5$A%3B!5
M3D1%1D52(%-44DE07T%34U5-15]404,I9R _($%,3%]404,@9RD[.PH*;&5T
M(%)%4T],5D5?5$%#(&<@/0H@(" @4D533TQ615]42$5.("A215!%051?1U1#
M3" H24U07U)%4T],5D5?4U1%4"!F86QS92D@4U1225!?05-354U%7U1!0RD@
M9R _($%,3%]404,@9SL["@IL970@15%?24U07U)%4T],5D5?5$%#(#T@24U0
M7U)%4T],5D5?5$%#(&\@9G-T(&\@15%?24U07U)53$4@;R!34$5#7T%,3#L[
M"D=%3E]!3$P@=&A=(&5L<V4@6UT@:6X*(" @(%QT:"X@*&QE="!A<F=S(#T@
M*&YO=%]E;&EM(&\@4U!%0U]!3$PI("A34$5#7T%,3"!T:"D@:6X*(" @(" @
M(" @(&QE="!I;7!S(#T@*&UA<"!'14Y?04Q,(&\@*'5N8W5R<GD@8V%N;VXI
M*2!A<F=S(&EN"B @(" @(" @(" @(" @87-S97)T("@D;F]T(&\@;G5L;"D@
M:6UP<RD*(" @(" @(" @/R!F86EL=VET:"!@4D533TQ615]#04Y/3CH@;F\@
M:6UP;&EC871I;VX@:7-N97=R97,O36%K969I;&4                     
M                                                            
M                                (" @-C0T(  @(" S,3$@ " @(#0U
M-"  (" @(" @(#(S-S<@(#4Q,S4U,S0W,C8@(" W,3$U "              
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                         ",@/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]"B,*(R )"2!-04M%1DE,12!&3U(@5$A%($A/3"!#3TY4
M4DE".B!N97=R97,*(PHC(#T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0H*(R ]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*(PHC($U!24X@14Y44DE%4SH*(PHC
M(&UA:V4@86QL"2 @(" Z("!C;VUP:6QE('1H92!C;V1E"B,*(R!M86ME(&-L
M96%N"2 @(" Z(')E;6]V92!C;VUP:6QE9"!C;V1E"B,)"B,@/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]"@HC(#T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0HC
M($U!0U)/4SH*(PHC($AO; D@(" @.B!T:&4@<&%T:&YA;64@;V8@=&AE('9E
M<G-I;VX@;V8@:&]L('5S960*(R ]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*
M"DQI<W!4>7!E(#T@8VP*3&ES<" ](&-L"DQI<W!$:7(@/2 N+B\N+B]L:7-P
M"D]B:CUF87-L"DAO;#TN+B\N+B]H;VP*"D]"2D5#5%,@/2!N97=R97-?;6PN
M;PH*+E-51D9)6$53.B N=&@@+G!R:6YT"@HN=&@N<')I;G0Z"@EE8VAO("=L
M;V%D7W1H96]R>2!@)"I@.SLG7 H)(" @(" G<')I;G1?=&AE;W)Y(& D*F [
M.R=<"@D@(" @("=Q=6ET*"D[.R<@?" D>TAO;'T@?"!T86EL("LQ," ^("0J
M+G!R:6YT"@IC;&5A;CH*"7)M("UF("0H3T)*14-44RD*"4!E8VAO("(]/3T^
M(&QI8G)A<GD@=6YW:6YD.B!A;&P@;V)J96-T(&-O9&4@9&5L971E9"(*"FYE
M=W)E<U]M;"YO.B!N97=R97,N;6P@"@DM;78@)"1(3TU%+VAO;"UI;FET+FUL
M("0D2$]-12\N:&]L+6EN:70N;6P*"65C:&\@)W-E=%]F;&%G*&!A8F]R=%]W
M:&5N7V9A:6Q@+'1R=64I.SLG7 H)(" @(" G8V]M<&EL970@8&YE=W)E<V [
M.R=<"@D@(" @("=Q=6ET*"D[.R<@?" D>TAO;'T*"2UM=B D)$A/344O+FAO
M;"UI;FET+FUL("0D2$]-12]H;VPM:6YI="YM; H*(PEM=B D)$A/344O+FAO
M;"UI;FET+FUL("0D2$]-12]H;VPM:6YI="YM; H*86QL.B D*$]"2D5#5%,I
M("0H4%))3E0I"@E 96-H;R B/3T]/B!L:6)R87)Y(&YE=W)E<R @<F5B=6EL
M="(*"@H@:70@9&]E<R!N;W0@(" @("4*)2!S=')I<"!O9F8@97AI<W1E;G1I
M86P@<75A;G1I9FEE<G,N($%N9"!35"!I<R!L:6ME(%-44DE07U1(35]42$5.
M+" ))0HE(&5X8V5P="!T:&%T(&ET(&%L<V\@9&]E<R!N;W0@<W1R:7 @97AI
M<W1E;G1I86P@<75A;G1I9FEE<G,N"0DE"B4)"0D)"0D)"0DE"B4@3VQD('9E
M<G-I;VXZ(&1E;&5T960@9F]R($A/3"!V97)S:6]N(#$N,3(@"0D@6U1&32 Y
M,2XP,2XQ-UT))0HE"0D)"0D)"0D))0HE(&QE=" H24U07U)%4P          
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                   @;&5T('1H,2 ]($1)4T-((&(@
M8W1H(&EN"B @;&5T("AM+'1H,BD@/2!#3TY*7TE-4%]34$Q)5"!T:#$@:6X*
M("!L970@*&XL=&@S*2 ]($-/3DI?24U07U-03$E4("A$25-#2"!A('1H,BD@
M:6X*(" H;2MN*S$L1T5.7T%,3"!T:#,I.SL*"FQE=')E8R!)5$527TE-4%]2
M15-/3%9%7T)!4T5?4U1%4"!N('1T86,@:6UP=&@@/0H@(&EF("AN/3 I('1H
M96X@24U07U)%4T],5D5?0D%315]35$50('1T86,@:6UP=&@@"B @96QS92!)
M35!?4D533TQ615]"05-%7U-415 @*$E415)?24U07U)%4T],5D5?0D%315]3
M5$50("AN+3$I('1T86,I(&EM<'1H.SL*"FQE="!)35!?4D533TQ615]35$50
M(&(@='1A8R!I;7!T:"!G(#T*(" @(&QE="!W(#T@8V]N8VP@:6UP=&@@:6X*
M(" @(&QE=" H=G,L8F]D>2D@/2!S=')I<%]F;W)A;&P@=R!I;@H@(" @;&5T
M("AA;G1E+&-O;F,I(#T@9&5S=%]I;7 @8F]D>2 _(&9A:6QW:71H(&!)35!?
M4D533TQ615]42$5..B!N;R!I;7!L:6-A=&EO;F @:6X*(" @("@H:68@*&ES
M7V-O;FH@86YT92D*(" @(" @=&AE;B E('=E('1R>2!T;R!R97-O;'9E(&%L
M;"!T:&4@8V]N:G5N8W1S(&9I<G-T("4*(" @(" @("!L970@*&XL=&@I(#T@
M0T].2E])35!?4U!,250@*%-014-?04Q,(&EM<'1H*2!I;@H@(" @(" @($E4
M15)?24U07U)%4T],5D5?0D%315]35$50(&X@='1A8R!T:"!G"B @(" @(&5L
M<V4@9F%I; H@(" @("D@/R!L970@=&AS(#T@4D533TQ615]#04Y/3B!I;7!T
M:"!I;@H@(" @(" @("!I9B!B('1H96X@159%4ED@*&UA<" H24U07U)%4T],
M5D5?0D%315]35$50('1T86,I('1H<RD@9PH@(" @(" @("!E;'-E(&EF("AL
M96YG=&@@=&AS(#T@,2D@=&AE;B!33TU%("AM87 @*$E-4%]215-/3%9%7T)!
M4T5?4U1%4"!T=&%C*2!T:',I(&<*(" @(" @(" @96QS92!%5D5262 H;6%P
M('1T86,@*%)%4T],5D5?0T%.3TX@:6UP=&@I*2!G"B @(" I.SL*"FQE="!)
M35!?4D533TQ615]42$5.('1T86,@:6UP=&@@/2 *(" @(&QE="!I;7!T:',@
M/2 H4D533TQ615]34$Q)5"!I;7!T:"D@:6X*(" @(&EF("AL96YG=&@@:6UP
M=&AS(#T@,2D@=&AE;B!)35!?4D533TQ615]35$50('1R=64@='1A8R!I;7!T
M: H@(" @96QS92 H*%-/344@*&UA<&9I;'1E<B H24U07U)%4T],5D5?4U1%
M4"!T<G5E('1T86,I(&EM<'1H<RDI"B @(" @(" @(" _(&9A:6QW:71H(&!)
M35!?4D533TQ615]42$5.8"D[.PH*"B4@+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM("4*)2!215-/3%9%7U1(14X@(" @.B!297-O;'9E(&%L;"!I;7!L:6-A
M=&EV92!A<W-U;7!T:6]N<R!A9V%I;G-T('1H92!R97-T+@DE"B4@+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM("4*"FQE="!215-/3%9%7U1(14X@='1A8R H
M87-L+&<I(#T*(" @(&QE="!A<R ](&ET;&ES="!A<'!E;F0@*&UA<" H4D53
M3TQ615]34$Q)5"!O($%34U5-12D@87-L*2!;72!I;@H@(" @;&5T('1H<R ]
M(&ET;&ES="!A<'!E;F0@*&UA<&9I;'1E<B!215-/3%9%7T-!3D].(&%S*2!;
M72!I;@H@(" @;&5T(&EM<',@/2!C:&5C:R!@4D533TQ615]42$5..B!N;R!I
M;7!L:6-A=&EO;F @=&AS(&EN"B @("!L970@;" ](&ET;&ES=" H7'1H+F%P
M<&5N9" H;6%P9FEL=&5R("A-051#2%]-4"!T:"D@87,I*2!I;7!S(%M=(&EN
M"B @("!L970@;"<@/2!I=&QI<W0@87!P96YD("AM87 @4D533TQ615]34$Q)
M5"!L*2!;72!I;@H@(" @;&5T(')E<R ](&-H96-K(&!215-/3%9%7U1(14XZ
M(&YO(')E<V]L=F5N=',@8"!L)R!I;@H@(" @;&5T('1A8W,@/2!C:&5C:R!@
M4D533TQ615]42$5..B!N;R!T86-T:6-S8" H;6%P9FEL=&5R('1T86,@<F5S
M*2!I;@H@(" @(" @(%-/344@*"A33TQ612!L)RDN=&%C<RD@*&%S;"QG*3L[
M"@HE("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2 E"B4@04Y415]215-/3%9%
$7U1(12TM
 
end

