From: rhoover@watson.ibm.com (Roger Hoover)
Subject: changes to 2.11 for IBMR2 and SPARC
Date: Mon, 25 Jan 1993 21:30:38 GMT
Disclaimer: This posting represents the poster's views, not necessarily those of IBM
Organization: IBM T.J. Watson Research Center

The following changes fix a problem with IBMR2 terminal input and
allow SPARC and IBMR2 implementations of 2.11 to compile using shared
libraries.

The files changed are:
./m3make/model-configs/IBMR2              Shared library support.
./m3make/model-configs/SPARC

./libm3/rw/src/UFileRd.m3                 Terminal input problem fix for
./libm3/unix/src/aix-3-2/Unix.i3          POSIX machines.
./libm3/unix/src/ultrix-3-1.SPARC/Unix.i3

./trestle/src/m3makefile                  Library use problem fixed for
                                          shared libraries.

Still known problems:

tools/pp and tools/gnuemacs fixes for IBMR2 (posted in November 1992) have
    not been installed.

formsedit fails on IBMR2:
	% formsedit
	Illegal size(13.5)

fisheye fails on SPARC:
	% fisheye
	***
	*** runtime error:
	***    Segmentation violation - possible attempt to dereference NIL
	***    pc = 0x1d3830 = Fisheye.Attach + 0x1add04
	***
	Quit (core dumped)
  and on IBMR2:
	% fisheye
	****************** EXCEPTION HANDLER STACK *********************
	0x2ff7f6f4 TRY-FINALLY  proc = 0x201b697c   frame = 0x2ff7f6e4
	****************************************************************
	***
	*** runtime error:
	***    Unhandled exception "FormsVBT.Error"
	***
	(core dumped)


Context diffs of changed files follow.  A uuencoded version of
m3make/model-configs/IBMR2 follows the diffs (since there is a
line with embedded tabs and spaces that is easy to get wrong).

--------
*** orig_m3-2.11/./m3make/model-configs/IBMR2	Thu Dec 10 14:04:39 1992
--- m3-2.11/./m3make/model-configs/IBMR2	Mon Jan 25 15:42:47 1993
***************
*** 80,85 ****
--- 80,86 ----
     the installation will fail, but can be restarted after you have 
     fixed the permissions. */
  
+ M3VERSION = 2.11
  PREFIX = /usr/local
  INSTALL_PREFIX = $(PREFIX)
  
***************
*** 153,158 ****
--- 154,186 ----
  
  /* When m3(1) receives the -O option, it really does this */
  CC_O = @-O@
+ 
+ /* These macros are used instead of the ones in the template, so that we
+    can have shared libraries */
+ 
+ #define library(name)                                                       @@\
+ all:: lib##name.a                                                           @@\
+ clean:: ; rm -f lib##name.a lib##name.ax                                    @@\
+ lib##name.a: FRC                                                            @@\
+ 	$(DO_M3) -a lib##name.a $(PGM_SOURCES) $(IMPORT_LIBS) \             @@\
+ 	   -Y4@/bin/touch@.newlib@                                          @@\
+ 	if [ -f .newlib ]; then \                                           @@\
+ 	  /bin/dump -g lib##name.a | sed -n -e \                            @@\
+ 	    's/^[ 	]*[0-9][0-9]*[ 	]*\([^ 	.][^ 	]*\)$$/\1/p' \      @@\
+ 	    > .expnames; \                                                  @@\
+           deflibs="-lm3 -lm"; \                                             @@\
+ 	  if [ ##name = m3 ]; then deflibs="-lm"; fi; \                     @@\
+ 	  /bin/bsdcc -bE\:.expnames -bM\:SRE -o _shar lib##name.a \         @@\
+             -L$(LIB_USE) $(IMPORT_LIBS) $$deflibs -e _nostart; \            @@\
+ 	  mv _shar lib##name.a; \                                           @@\
+ 	  rm -f .expnames .newlib; \                                        @@\
+ 	fi
+ 
+ #define Library(name)                                                       @@\
+ install::                                                                   @@\
+ 	INSTALL (lib##name.a, $(LIB_INSTALL), 644)                          @@\
+ 	INSTALL (lib##name.ax, $(LIB_INSTALL), 644)                         @@\
+ library(name)
  
  /* Give the value 0 if you want the m3 driver to pass -L/-l arguments to 
     LD for libraries; otherwise (value = 1), the m3 driver will pass 
*** orig_m3-2.11/./m3make/model-configs/SPARC	Thu Dec 10 14:32:37 1992
--- m3-2.11/./m3make/model-configs/SPARC	Mon Jan 25 15:43:13 1993
***************
*** 35,40 ****
--- 35,41 ----
     the installation will fail, but can be restarted after you have 
     fixed the permissions. */
  
+ M3VERSION = 2.11
  PREFIX = /usr/local
  INSTALL_PREFIX = $(PREFIX)
  
***************
*** 110,115 ****
--- 111,144 ----
  /* When m3(1) receives the -O option, it really does this */
  CC_O = @-O@
   
+ /* These macros are used instead of the ones in the template, so that we
+    can have shared libraries */
+ 
+ LIBEXT = so.$(M3VERSION) /* this is the extension of the library name.  Note
+                             that we build a dummy lib##name.a and keep the
+                             name lib##name.ax so that the m3 linker
+                             does not become confused */
+ 
+ #define library(name)                                                       @@\
+ all:: lib##name.a                                                           @@\
+ clean:: ; rm -f lib##name.$(LIBEXT) lib##name.a lib##name.ax                @@\
+ lib##name.a: FRC                                                            @@\
+ 	$(DO_M3) -a lib##name.a -X1@-PIC@ \                                 @@\
+ 	  -Y3@/bin/ld@-assert@pure-text@-o@ -Y4@/bin/touch@.newlib@ \       @@\
+ 	  $(PGM_SOURCES) $(IMPORT_LIBS)                                     @@\
+         if [ -f .newlib ]; then \                                           @@\
+           mv lib##name.a lib##name.$(LIBEXT); \                             @@\
+           /bin/ar cru lib##name.a; \                                        @@\
+           rm .newlib; \                                                     @@\
+         fi
+ 
+ #define Library(name)                                                       @@\
+ install::                                                                   @@\
+ 	INSTALL (lib##name.a, $(LIB_INSTALL), 644)                          @@\
+ 	INSTALL (lib##name.$(LIBEXT), $(LIB_INSTALL), 644)                  @@\
+ 	INSTALL (lib##name.ax, $(LIB_INSTALL), 644)                         @@\
+ library(name)
+ 
  /* Give the value 0 if you want the m3 driver to pass -L/-l arguments to 
     LD for libraries; otherwise (value = 1), the m3 driver will pass 
     the full path name of the librairies it located */
*** orig_m3-2.11/./libm3/rw/src/UFileRd.m3	Tue Oct 13 18:45:11 1992
--- m3-2.11/./libm3/rw/src/UFileRd.m3	Mon Jan 25 15:37:29 1993
***************
*** 160,166 ****
      status: INTEGER;
      readFDSet, errorFDSet := Unix.FDSet {rd.targetFD};
      old_mode := Unix.fcntl (rd.targetFD, Unix.F_GETFL, 0);
!     new_mode := Word.Or (old_mode, Unix.O_NDELAY);
    BEGIN
      LOOP
        (* make the read call non-blocking; we cannot set/reset the mode at
--- 160,166 ----
      status: INTEGER;
      readFDSet, errorFDSet := Unix.FDSet {rd.targetFD};
      old_mode := Unix.fcntl (rd.targetFD, Unix.F_GETFL, 0);
!     new_mode := Word.Or (old_mode, Unix.TTY_DO_NOT_BLOCK);
    BEGIN
      LOOP
        (* make the read call non-blocking; we cannot set/reset the mode at
*** orig_m3-2.11/./libm3/unix/src/aix-3-2/Unix.i3	Thu Nov 12 14:46:07 1992
--- m3-2.11/./libm3/unix/src/aix-3-2/Unix.i3	Thu Jan 21 14:26:01 1993
***************
*** 756,761 ****
--- 756,762 ----
    O_TRUNC  =    FTRUNC;         (* open with truncation *)
    O_EXCL =      FEXCL;          (* error on create if file exists *)
    O_FYNC =      FSYNCRON;       (* syncronous write *)
+   TTY_DO_NOT_BLOCK = O_NONBLOCK;(* puts tty in nonblocking mode *)
  
  <*EXTERNAL*> PROCEDURE open (name: char_star; flags, mode: int): int;
  
*** orig_m3-2.11/./libm3/unix/src/ultrix-3-1.SPARC/Unix.i3	Mon Jan 11 17:26:35 1993
--- m3-2.11/./libm3/unix/src/ultrix-3-1.SPARC/Unix.i3	Thu Jan 21 14:25:58 1993
***************
*** 827,832 ****
--- 827,833 ----
    O_EXCL =      FEXCL;          (* error on create if file exists *)
    O_BLKINUSE =  FBLKINUSE;      (* block if "in use" *)
    O_FSYNC =     FSYNCRON;       (* syncronous write *)
+   TTY_DO_NOT_BLOCK = O_NDELAY;  (* puts tty in nonblocking mode *)
  
  <*EXTERNAL*> PROCEDURE open (name: char_star; flags, mode: int): int;
  
*** orig_m3-2.11/./trestle/src/m3makefile	Sun Jan 17 23:10:22 1993
--- m3-2.11/./trestle/src/m3makefile	Thu Jan 21 13:46:37 1993
***************
*** 12,16 ****
--- 12,17 ----
  source_dir (../src/trestle)
  
  import_lib (m3X11R4)
+ import_lib (X11)
  
  Library (m3ui)

--------
begin 644 IBMR2
M+RH@0V]P>7)I9VAT("A#*2`Q.3@Y+"`Q.3DR($1I9VET86P@17%U:7!M96YT
M($-O<G!O<F%T:6]N("`@("`@("`@("`@("`@("`@("`J+PHO*B!!;&P@<FEG
M:'1S(')E<V5R=F5D+B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("HO"B\J(%-E92!T:&4@9FEL92!#3U!9
M4DE'2%0@9F]R(&$@9G5L;"!D97-C<FEP=&EO;BX@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@*B\*"B\J($QA<W0@36]D:69I960@3VX@5'5E($]C="`R
M-R`Q,3HR-3HT,B!04U0@,3DY,B!">2!M=6QL97(@("`@("`@("`@("`@("`@
M("`@*B\*+RH@("`@("!-;V1I9FEE9"!/;B!&<FD@1F5B(#(X(#$T.C$P.C`P
M(%!35"`Q.3DR($)Y(&MA;'-O=R`@("`@("`@("`@("`@("`@("`J+PHO*@E-
M;V1I9FEE9"!/;B!4=64@36%Y("`X(#$Y.3`@0GD@;W)G87-S0&EB;2YC;VT@
M("`@("`@("`@("`@("`@("`@("`@("`J+PH*+RH@4W1A;F1A<F0@8V]N9FEG
M=7)A=&EO;B!F:6QE(&9O<B!)0DU2,B`J+PH*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*B\*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B\*+RH)"4E-4$]25$%.5`D)"0D@("`@
M("`@*B\*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B\*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*B\*"B\J(%1H:7,@8V]N9FEG=7)A=&EO;B!A<W-U;65S('1H870@>6]U(&AA
M=F4@:6YS=&%L;&5D(&)S9&-C(&%S"B`@(&1E<V-R:6)E9"!I;B`B4&]R=&EN
M9R`T+C,@0E-$(%!R;V=R86US('1O($%)6"!697)S:6]N(#,N,2X*("`@5&AE
M(&9O;&QO=VEN9R!I<R!A('-I;7!L92!F;W)M(&]F('1H97-E(&EN<W1R=6-T
M:6]N<RX*"B`@("@Q*2!!9&0@=&AE(&9O;&QO=VEN9R!S=&%N>F$@=&\@+V5T
M8R]X;&,N8V9G.@H**B!S=&%N9&%R9"!C(&-O;7!I;&5R(&%L:6%S960@87,@
M8G-D8V,*8G-D8V,Z("!U<V4@("`@("`@(#T@1$5&3%0*("`@("`@("!C<G0@
M("`@("`@(#T@+VQI8B]C<G0P+F\*("`@("`@("!M8W)T("`@("`@(#T@+VQI
M8B]M8W)T,"YO"B`@("`@("`@9V-R="`@("`@("`]("]L:6(O9V-R=#`N;PH@
M("`@("`@(&QI8G)A<FEE<R`@/2`M;&)S9"P@+6QC"B`@("`@("`@<')O9FQI
M8G,@("`]("U,+VQI8B]P<F]F:6QE9"PM3"]U<W(O;&EB+W!R;V9I;&5D"B`@
M("`@("`@;W!T:6]N<R`@("`]("U(-3$R+"U4-3$R+"`M<6QA;F=L=FP]97AT
M96YD960L("UQ;F]R;RP@+41?0E-$+`HM1%].3TY35$1?5%E015,L("U$7TY/
M7U!23U1/+"`M1%]"4T1?24Y#3%5$15,L("UB;F]D96QC<V5C="P@+55?7U-4
M4E]?+`HM55]?34%42%]?"@H@("`@3F]T92!T:&%T('1H92!O<'1I;VYS(&%R
M92!A('-I;F=L92!L:6YE+@H*("`@*#(I($%S(')O;W0L(&5X96-U=&4@=&AE
M(&9O;&QO=VEN9R!S=&%T96UE;G1S.@H*("`@"6-D("]B:6X*"6QN("US('AL
M8R!B<V1C8PH*("`@5&AE(')E<W5L="!I<R!T;R!M86ME(&)S9&-C(&$@0R!C
M;VUP:6QE<B!T:&%T(&ES(&%S(&-L;W-E;'D*("`@8V]M<&%T:6)L92!W:71H
M(#0N,R!"4T0@87,@<&]S<VEB;&4N("!4:&4@<&]R=&EN9R!G=6ED90H@("!D
M:7-C=7-S97,@=&AE(')E;6%I;FEN9R!I;F-O;7!A=&EB:6QI=&EE<RX@(%1H
M92!T<F]F9B!S;W5R8V4*("`@9F]R(&$@=F5R<VEO;B!O9B!T:&4@<&]R=&EN
M9R!D;V-U;65N="!I<R!I;B!F:6QE"B`@("]U<W(O;'!P+V)O<R]B<V1P;W)T
M+G1R+@H*04Q33R!.3U1%.B`@5&AE<F4@:7,@82!B=6<@:6X@96%R;&EE<B!V
M97)S:6]N<R!O9B!T:&4@,RXR('AL8R!C;VUP:6QE<@IT:&%T('=I;&P@9VEV
M92!Y;W4@8V]M<&EL871I;VX@97)R;W)S+B`@5&AE(&5A<FQI97-T('9E<G-I
M;VX@:VYO=VX@=&\*8V]M<&EL92!M,R`R+C$P*&%N9"!A8F]V92D@:7,@,2XR
M+C`N-RX@(#$N,BXP+C`@9&]E<R!N;W0@=V]R:RX@(%1O('-E90IW:&EC:"!V
M97)S:6]N('EO=2!H879E+"!T>7!E("(O=7-R+W5C8B]W:&%T("]U<W(O;'!P
M+WAL8R]B:6XO>&QC96YT<GDB+@HJ+PH*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*B\*"B\J($EN(&UO<W0@8V%S97,L(&-H86YG:6YG('1H92!F;VQL;W=I
M;F<@<&%R86UE=&5R<R!I<R!E;F]U9V@Z"@H@("`@("!04D5&25@L($E.4U1!
M3$Q?4%)%1DE8+"`@.B`@=VAE<F4@>6]U('=A;G0@36]D=6QA+3,@:6YS=&%L
M;&5D"B`@("`@($)524Q$7U@Q,5(T+"!83$E"4$%42"`@("`Z("!D;R!Y;W4@
M:&%V92!8,3%2-"`_(`H@("`@("!(059%7U1E6"P@1%9)4%,@("`@("`@("`@
M.B`@9&\@>6]U(&AA=F4@5&58(#\*"B`@(%1H92!O=&AE<B!C;VYF:6=U<F%T
M:6]N('!A<F%M971E<G,@:&%V92!V86QU97,@=&AA="!S:&]U;&0@8F4@;VLN
M"BHO"@HC:68@(61E9FEN960@*%1!4D=%5"D*(V1E9FEN92!405)'151?24)-
M4C(*(V1E9FEN92!405)'150*0U!57U194$4@/2!)0DU2,@HC96YD:68*"B\J
M(%!A=&@@;F%M97,@9&5F:6YE9"!I;B!T:&4@<F5S="!O9B!T:&ES(&9I;&4@
M=VEL;"!B92!P<F5F:7AE9"!B>2!04D5&25@*("`@;W(@24Y35$%,3%]04D5&
M25@L(&1E<&5N9&EN9R!O;B!T:&4@8V]N=&5X="X@5VAE;B!A('!A=&@@:7,@
M=7-E9"`*("`@:6X@=&AE(&1O8W5M96YT871I;VX@;W(@:6X@=&AE($UO9'5L
M82TS(&1R:79E<BP@4%)%1DE8(&ES('5S960N(`H@("!7:&5N(&$@9FEL92!I
M<R!I;G-T86QL960L($E.4U1!3$Q?4%)%1DE8(&ES('5S960N(%1H870@:7,L
M(&EF(%!2149)6`H@("!I<R`G82<L($E.4U1!3$Q?4%)%1DE8(&ES("=B)R!A
M;F0@3$E"(&ES("=C)RP@=&AE($UO9'5L82TS(&1R:79E<@H@("!W:6QL(&QO
M;VL@9F]R('1H92!-;V1U;&$M,R!R=6YT:6UE(&EN("=A+V,G+"!B=70@)VUA
M:V4@:6YS=&%L;"<@=VEL;`H@("!A='1E;7!T('1O('!U="!I="!I;B`G8B]C
M)RX*"B`@($1U<FEN9R!T:&4@:6YS=&%L;&%T:6]N+"!D97-T:6YA=&EO;B!D
M:7)E8W1O<FEE<R!T:&%T(&1O(&YO="!E>&ES=',@"B`@('=I;&P@8F4@8W)E
M871E9"X@66]U(&YE960@=&AE(&YE8V5S<V%R>2!P97)M:7-S:6]N<R!T;R!D
M;SL@;W1H97)W:7-E+`H@("!T:&4@:6YS=&%L;&%T:6]N('=I;&P@9F%I;"P@
M8G5T(&-A;B!B92!R97-T87)T960@869T97(@>6]U(&AA=F4@"B`@(&9I>&5D
M('1H92!P97)M:7-S:6]N<RX@*B\*"DTS5D524TE/3B`](#(N,3$*4%)%1DE8
M(#T@+W5S<B]L;V-A;`I)3E-404Q,7U!2149)6"`]("0H4%)%1DE8*0H*+RH@
M5&AE('5S97(M86-C97-S:6)L92!E>&5C=71A8FQE<R!G;R!T:&5R92X@*B\*
M0DE.(#T@8FEN"D))3E]54T4@("`@(#T@)"A04D5&25@I+R0H0DE.*0I"24Y?
M24Y35$%,3"`]("0H24Y35$%,3%]04D5&25@I+R0H0DE.*0H*+RH@5&AE('!U
M8FQI8R!I;G1E<F9A8V5S(&=O('1H97)E+B`J+PI054(@/2!I;F-L=61E+VTS
M"E!50E]54T4@("`@(#T@)"A04D5&25@I+R0H4%5"*0I054)?24Y35$%,3"`]
M("0H24Y35$%,3%]04D5&25@I+R0H4%5"*0H*+RH@5&AE(&]T:&5R(&9I;&5S
M(&YE8V5S<V%R>2!T;R!R=6X@36]D=6QA+3,@9V\@=&AE<F4N("HO"DQ)0B`]
M(&QI8B]M,PI,24)?55-%("`@("`]("0H4%)%1DE8*2\D*$Q)0BD*3$E"7TE.
M4U1!3$P@/2`D*$E.4U1!3$Q?4%)%1DE8*2\D*$Q)0BD*"B\J(%1H92!G;G5E
M;6%C<R!L:7-P(&-O9&4@9V]E<R!T:&5R92X@*B\*1TY514U!0U-?24Y35$%,
M3"`]("0H24Y35$%,3%]04D5&25@I+VQI8B]E;&ES<`H*+RH@5&AE(&UA;G5A
M;"!P86=E<R!N;W)M86QL>2!G;R!I;B!S=6)D:7)S(&UA;GLQ+"XN+CA](&]F
M($U!3BX*("`@268@>6]U('!R969E<B!T;R!H879E('1H96T@:6X@82!G:79E
M;B!S96-T:6]N+"!S87D@;"P*("`@9&5F:6YE($U!3E]314-424].("HO"DU!
M3B`](&UA;@I-04Y?55-%("`]("0H4%)%1DE8*2\D*$U!3BD*34%.7TE.4U1!
M3$P@/2`D*$E.4U1!3$Q?4%)%1DE8*2\D*$U!3BD*+RHC9&5F:6YE($U!3E]3
M14-424].(&PJ+PH*+RH@268@>6]U(&AA=F4@6#$Q4C0@:6YS=&%L;&5D(&%N
M9"!W;W5L9"!L:6ME('1H92!8,3%2-"!B:6YD:6YG(&EN=&5R9F%C97,*("`@
M=&\@8F4@8G5I;'0L(&1E9FEN92!"54E,1%]8,3%2-"P@<V5T(%A,24)0051(
M('1O(&)E('1H92!C;VQO;@H@("!S97!A<F%T960@;&ES="!O9B!D:7)E8W1O
M<FEE<R!I;B!W:&EC:"!T;R!F:6YD('1H92!8(&QI8G)A<FEE<RP@86YD"B`@
M('-E="!83$E"('1O(&)E('1H92!L:7-T(&]F(&QI8G)A<FEE<R!T;R!L:6YK
M('=I=&@Z(&EF('EO=2!U<V4@=&AE(`H@("!-250@<V5R=F5R('=I=&@@1$5#
M;F5T('-U<'!O<G0L('EO=2!N965D(%@Q,2!A;F0@9&YE="P@;W1H97)W:7-E
M"B`@(%@Q,2!S:&]U;&0@8F4@96YO=6=H+@H@("`*("`@4VEN8V4@6#$Q4C4@
M:7,@86X@97AT96YS:6]N(&]F(%@Q,5(T+"!Y;W4@8V%N('5S92!T:&4@6#$Q
M4C4@;&EB<F%R:65S"B`@(&EN<W1E860@;V8@6#$Q4C0N("!(;W=E=F5R+"!T
M:&4@36]D=6QA+3,@8FEN9&EN9R!I;G1E<F9A8V5S(&AA=F4@;F]T"B`@('EE
M="!B965N('5P9W)A9&5D('1O(%@Q,5(U+B`J+PHC9&5F:6YE($)524Q$7U@Q
M,5(T"@HC:68@9&5F:6YE9"A"54E,1%]8,3%2-"D*6$Q)0E!!5$@@/2`O=7-R
M+VQO8V%L+VQI8@I83$E"("`@("`]("UL6#$Q"B-E;F1I9@H*+RH@268@>6]U
M(&AA=F4@5&58+"!D969I;F4@2$%615]495@@86YD(&1E9FEN92!$5DE04R!T
M;R!C;VYV97)T($1622!F:6QE<PH@("!T;R!0;W-T4V-R:7!T("AO<B!W:&%T
M979E<B!Y;W5R('!R:6YT97(@86-C97!T<RDN(%1H:7,@=VEL;"!A;&QO=R`*
M("`@<')O8V5S<VEN9R!O9B!T:&4@:6UP;&5M96YT871I;VX@;F]T97,N("HO
M"B-D969I;F4@2$%615]495@*"B-I9B!D969I;F5D("A(059%7U1E6"D*(V1E
M9FEN92!$5DE04RAF*2!D=FEP<R`M;R!F+G!S(&8N9'9I"B-E;F1I9@H*+RH@
M0T,@:7,@=&AE(&-O;7!I;&5R('1H870@=VEL;"!B92!U<V5D('1O(&-O;7!I
M;&4@0R!C;V1E('1H870*("`@:7,@<&%R="!O9B!T:&4@9&ES=')I8G5T:6]N
M+@H*("`@3F]T93H@=&AE('9A;'5E(&]F('1H:7,@<WEM8F]L(&UU<W0@;F]T
M('5S92!T:&4@=F%L=65S(&]F"B`@(&]T:&5R('-Y;6)O;',N("HO"D-#(#T@
M+V)I;B]B<V1C8PH@"B\J(%-E="!#0U]705).4U]&3U)?54Y+3D]73E]&24Q%
M4R!T;R`Q(&EF($-#(&ES<W5E<R!A('=A<FYI;F<@:68*("`@>6]U('1R>2!T
M;R!L:6YK(&9I;&5N86UE<R!W:71H(&%N(&5X=&5N<VEO;B`N:6\@;W(@+FUO
M.PH@("!I;B!T:&%T(&-A<V4L('1H92!M,R!D<FEV97(@=VEL;"!C:&%N9V4@
M=&AE(&YA;65S(&]F('1H;W-E(&9I;&5S+@H@("!/=&AE<G=I<V4L('-E="!T
M:&ES('-Y;6)O;"!T;R`P(&%N9"!M,R!W:6QL(')U;B!F87-T97(N("HO"D-#
M7U=!4DY37T9/4E]53DM.3U=.7T9)3$53(#T@,0H*+RH@5VAE;B!M,R@Q*2!R
M96-E:79E<R!T:&4@+6<@;W!T:6]N+"!I="!R96%L;'D@9&]E<R!T:&ES("HO
M"D-#7T<@/2!`+6=`"@HO*B!7:&5N(&TS*#$I(')E8V5I=F5S('1H92`M3R!O
M<'1I;VXL(&ET(')E86QL>2!D;V5S('1H:7,@*B\*0T-?3R`]($`M3T`*"B\J
M(%1H97-E(&UA8W)O<R!A<F4@=7-E9"!I;G-T96%D(&]F('1H92!O;F5S(&EN
M('1H92!T96UP;&%T92P@<V\@=&AA="!W90H@("!C86X@:&%V92!S:&%R960@
M;&EB<F%R:65S("HO"@HC9&5F:6YE(&QI8G)A<GDH;F%M92D@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
M0$!<"F%L;#HZ(&QI8B,C;F%M92YA("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!`0%P*8VQE86XZ
M.B`[(')M("UF(&QI8B,C;F%M92YA(&QI8B,C;F%M92YA>"`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@($!`7`IL:6(C(VYA;64N83H@1E)#
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@0$!<"@DD*$1/7TTS*2`M82!L:6(C(VYA;64N82`D
M*%!'35]33U520T53*2`D*$E-4$]25%],24)3*2!<("`@("`@("`@("`@($!`
M7`H)("`@+5DT0"]B:6XO=&]U8VA`+FYE=VQI8D`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("!`0%P*"6EF(%L@+68@+FYE=VQI
M8B!=.R!T:&5N(%P@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@0$!<"@D@("]B:6XO9'5M<"`M9R!L:6(C(VYA;64N82!\('-E
M9"`M;B`M92!<("`@("`@("`@("`@("`@("`@("`@("`@("`@($!`7`H)("`@
M("=S+UY;(`E=*ELP+3E=6S`M.5TJ6R`)72I<*%M>(`DN75M>(`E=*EPI)"0O
M7#$O<"<@7"`@("`@($!`7`H)("`@(#X@+F5X<&YA;65S.R!<("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!`0%P*
M("`@("`@("`@(&1E9FQI8G,](BUL;3,@+6QM(CL@7"`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@($!`7`H)("!I9B!;(",C
M;F%M92`](&TS(%T[('1H96X@9&5F;&EB<STB+6QM(CL@9FD[(%P@("`@("`@
M("`@("`@("`@("`@("!`0%P*"2`@+V)I;B]B<V1C8R`M8D5<.BYE>'!N86UE
M<R`M8DU<.E-212`M;R!?<VAA<B!L:6(C(VYA;64N82!<("`@("`@("`@0$!<
M"B`@("`@("`@("`@("U,)"A,24)?55-%*2`D*$E-4$]25%],24)3*2`D)&1E
M9FQI8G,@+64@7VYO<W1A<G0[(%P@("`@("`@("`@("!`0%P*"2`@;78@7W-H
M87(@;&EB(R-N86UE+F$[(%P@("`@("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@0$!<"@D@(')M("UF("YE>'!N86UE<R`N;F5W;&EB
M.R!<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@($!`
M7`H)9FD*"B-D969I;F4@3&EB<F%R>2AN86UE*2`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!`0%P*:6YS
M=&%L;#HZ("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`@("`@($!`7`H)24Y35$%,3"`H;&EB
M(R-N86UE+F$L("0H3$E"7TE.4U1!3$PI+"`V-#0I("`@("`@("`@("`@("`@
M("`@("`@("`@("!`0%P*"4E.4U1!3$P@*&QI8B,C;F%M92YA>"P@)"A,24)?
M24Y35$%,3"DL(#8T-"D@("`@("`@("`@("`@("`@("`@("`@("`@0$!<"FQI
M8G)A<GDH;F%M92D*"B\J($=I=F4@=&AE('9A;'5E(#`@:68@>6]U('=A;G0@
M=&AE(&TS(&1R:79E<B!T;R!P87-S("U,+RUL(&%R9W5M96YT<R!T;R`*("`@
M3$0@9F]R(&QI8G)A<FEE<SL@;W1H97)W:7-E("AV86QU92`](#$I+"!T:&4@
M;3,@9')I=F5R('=I;&P@<&%S<R`*("`@=&AE(&9U;&P@<&%T:"!N86UE(&]F
M('1H92!L:6)R86ER:65S(&ET(&QO8V%T960@*B\*2T5%4%],24)205))15-?
M4D533TQ6140@/2`P("\J('=E(&YE960@+4PO+6P@9F]R('-H87)E9"!L:6)R
M87)I97,@*B\*"B\J(%=E(&1O;B=T('=A;G0@=&\@=7-E('1H92!P<F5D969I
M;F5D($-&3$%'4R`J+PI#1DQ!1U,@/2`*(`HO*B!$969A=6QT(&]P=&EM:7IA
M=&EO;B!F;W(@36]D=6QA+3,@<')O9W)A;7,@*'5S:6YG(&TS;6%K969I;&5S
M*2`J+PI-,T]05"`]("UG"@HO*B!$969A=6QT(&]P=&EM:7IA=&EO;B!F;W(@
M=&AE(&)O;W-T<F%P(&-O;7!I;&5R(&%N9"!D<FEV97(@*B\*0D]/5$]05"`]
M("UG"@HO*B!);6%K92!M87D@;F5E9"!T;R!B92!C;VYF:6=U<F5D"@H@("!.
M;W1E.B!T:&4@=F%L=64@;V8@=&AI<R!S>6UB;VP@;75S="!N;W0@=7-E('1H
M92!V86QU97,@;V8@;W1H97(@<WEM8F]L<RX@*B\*24U!2T5&3$%'4R`]("U$
M4D5$54-%1%]43U]!4T-)25]34$%#10H*+RH@4V]M92!V97)S:6]N<R!O9B!M
M86ME*#$I(&QE="!U<R!S<&5C:69Y('1H92!S:&5L;"!T;R!U<V4N($EN(&%N
M>0H@("!C87-E+"!W92!W86YT('-H("HO"E-(14Q,(#T@+V)I;B]S:`H*+RH@
M5VAA="!A8F]U="!#4%`@/PH*("`@3F]T93H@=&AE('9A;'5E(&]F('1H:7,@
M<WEM8F]L(&UU<W0@;F]T('5S92!T:&4@=F%L=65S(&]F(&]T:&5R('-Y;6)O
M;',N("HO"D-04"`]("]U<W(O;'!P+U@Q,2]886UP;&5S+W5T:6PO8W!P+V-P
M<`H*+RH@5VAA="!A8F]U="!-04M%(#\*"B`@($YO=&4Z('1H92!V86QU92!O
M9B!T:&ES('-Y;6)O;"!M=7-T(&YO="!U<V4@=&AE('9A;'5E<R!O9B!O=&AE
M<B!S>6UB;VQS+B`J+PI-04M%(#T@+W5S<B]B:6XO;6%K90H@("`*+RH@06YD
M(&EN<W1A;&P@*B\*(V1E9FEN92!)3E-404Q,*&8L9"QP*2`O=7-R+W5C8B]I
M;G-T86QL("UC("UM('`@9B!D"@HO*B!(97)E(&%R92!T:&4@<&EE8V5S('1H
M870@=&AE($UO9'5L82TS(&1R:79E<B!N965D<RX*("`@(%!!4U,P.B!T:&4@
M36]D=6QA+3,@=&\@0R!C;VUP:6QE<@H@("`@4$%34S$Z('1H92!#(&-O;7!I
M;&5R+"!W:71H(&]P=&EO;G,@=&\@8V]M<&EL92!-;V1U;&$M,R!C;V1E"B`@
M("!005-3,CH@=&AE($,@8V]M<&EL97(L('=I=&@@;W!T:6]N<R!T;R!C;VUP
M:6QE($UO9'5L82TS(&-O9&4*("`@(%!!4U,S.B!A<BP@=&\@8G5I;&0@87)C
M:&EV97,*("`@(%!!4U,T.B!R86YL:6(L('1O(&-R96%T92!T:&4@=&%B;&4@
M;V8@8V]N=&5N=',@:6X@87)C:&EV97,*("`@(%!!4U,U.B!T:&4@;&EN:V5R
M+"!W:71H(&]P=&EO;G,@=&\@8W)E871E(&%N(&]V97)L87D*"B`@(%1H92!S
M>6YT87@@9F]R(&5A8V@@<&EE8V4@:7,@0'!G;4!A<F<Q0"XN+D!A<F=N0"X@
M(%EO=2!C86X@=7-E"B`@(&%N;W1H97(@8VAA<F%C=&5R('1H86X@0"!A<R!A
M('-E<&%R871O<BP@8G5T('EO=2!N965D('1O(&-H86YG92!315`N"@H@("!7
M:&5N(&$@(F)A<V4B('!R;V=R86T@:7,@8G5I;'0@0D%315]!4D=3(&%R92!A
M9&1E9"!T;R!T:&4@4$%34S(@87)G=6UE;G1S+@H*("`@5VAE;B!A;B!O=F5R
M;&%Y(&ES(&)U:6QT('1H92!F;VQL;W=I;F<@8V]M;6UA;F0@:7,@8V]N<W1R
M=6-T960Z"B`@("`@("!005-3-2`@8F%S92YB("!/5D523$%97S`@("UO(&]V
M97)L87DN;W8@(&]B:F5C=',N+BX@($]615),05DQ"B`@('=H97)E(")B87-E
M+F(B(&ES('1H92!B87-E('!R;V=R86T@=&AA="!W:6QL(&QO860@=&AE(&]V
M97)L87DL"B`@(")O=F5R;&%Y+F]V(B!I<R!T:&4@;F%M92!O9B!T:&4@;F5W
M(&]V97)L87D@86YD(")O8FIE8W1S+BXN(B!I<PH@("!T:&4@;&ES="!O9B!O
M8FIE8W0@;6]D=6QE<R!T;R!I;F-L=61E(&EN('1H92!O=F5R;&%Y+@H*("`@
M3F]T93H@=&AE(&1R:79E<B!O;FQY(&-R96%T97,@<&QA:6X@87)C:&EV97,N
M("!4:&4@=&5M<&QA=&5S"B`@('1A:V4@8V%R92!O9B!B=6EL9&EN9R!T:&4@
M<VAA<F5D(&QI8G)A<FEE<RX@*B\*4T50("`@/2!`"E!!4U,P(#T@0"0H3$E"
M7U5312DO;3-C;VUP:6QE<D`*4$%34S$@/2!`)"A#0RE`+7=`"E!!4U,R(#T@
M0"0H0T,I0"UW0`I005-3,R`]($`O8FEN+V%R0&-R=4`*4$%34S0@/2!`<F%N
M;&EB0`I005-3-2`]($`O8FEN+VQD0"U!0`I/5D523$%97S`@/2!`+6=`"D]6
M15),05E?,2`]($`M;&-`"D)!4T5?05)'4R`]($`M3D`*"B\J(%1H92!M87AI
M;75M('-I>F4@*&EN(&UE9V%B>71E<RD@=&AA="!087-S,"!I<R!A;&QO=V5D
M('1O(')E86-H(&%S"B`@(&$@<&5R<VES=&5N="!S97)V97(@8F5F;W)E('1H
M92!D<FEV97(@:VEL;',@:70N("!3971T:6YG(%-%4E9%4E],24U)5`H@("!T
M;R!Z97)O(&1I<V%B;&5S('1H92!S97)V97(@;6]D92X@*B\*4T525D527TQ)
M34E4(#T@,`HO*B!.3U1%.B!T:&4@8V]M<&EL97(@:7,@8G5G9WDL(&QE879E
M(%-%4E9%4E],24U)5"!A;&]N92$@*B\*"B\J(%1H92!D969A=6QT('!A=&@@
M=&\@<V5A<F-H(&9O<B!-;V1U;&$M,R!I;G1E<F9A8V5S+B`@5&AE('-T86YD
M87)D"B`@(&EN=&5R9F%C97,@87)E(&EN<W1A;&QE9"!I;B!054(N("HO"D1%
M1E!!5$@@/2`N.B0H4%5"7U5312D*"B\J(%1H92!D969A=6QT('!A=&@@=&\@
M<V5A<F-H(&9O<B!L:6)R87)I97,N("!4:&4@<W1A;F1A<F0*("`@36]D=6QA
M+3,@;&EB<F%R:65S(&%R92!I;G-T86QL960@:6X@3$E"+B`@5&AI<R!P871H
M(&1O97,@;F]T"B`@(&YE960@=&\@:6YC;'5D92!D:7)E8W1O<FEE<R!S96%R
M8VAE9"!B>2!D969A=6QT(&)Y(&-C*#$I(&EF"B`@('1H97D@9&]N)W0@8V]N
M=&%I;B!L:6)R87)I97,@=VET:"!-;V1U;&$M,R!C;V1E+B`J+PHC:68@9&5F
M:6YE9"`H0E5)3$1?6#$Q4C0I"DQ)0E!!5$@@/2`N.B0H3$E"7U5312DZ)"A8
M3$E"4$%42"D*(V5L<V4*3$E"4$%42"`]("XZ)"A,24)?55-%*0HC96YD:68*
M"B\J(%1H97-E(&9I;&5S(&%R92!S>7-T96UA=&EC86QL>2!L:6YK960@=VET
M:"!-;V1U;&$M,R!P<F]G<F%M<RX@5&AE"B`@(&9I<G-T('-Y;6)O;"!I<R!U
M<V5D(&9O<B!B;V]T<W1R87`@<')O9W)A;7,N("HO"DQ)3DM"1DE,15,@/2!`
M+6QM0`I,24Y+1DE,15,@/2!`+6QM,T`M;&U`"@HO*B!4:&5S92!F:6QE<R!A
M<F4@;&EN:V5D('=I=&@@36]D=6QA+3,@<')O9W)A;7,@=VAE;B`M6B!I<R!S
M<&5C:69I960N("HO"DQ)3DM#3U9%4B`]("0H3$E"7U5312DO<F5P;W)T7V-O
M=F5R86=E+F\*"B\J(%1H92!#(&-O9&4@9V5N97)A=&5D(&)Y('1H92!-;V1U
M;&$M,R!T;R!#('1R86YS;&%T;W(@(VEN8VQU9&4G<R!S;VUE"B`@(&)A<VEC
M(&9I;&5S+"!T;R!B92!F;W5N9"!I;B!T:&ES(&1I<F5C=&]R>2X@*B\*24Y#
M3"`]("0H3$E"7U5312D*"B\J(%1H92!T96UP;&%T92!T;R!U<V4@9F]R(&TS
D;6%K92@Q*2`J+PI414U03$%412`]('1O<&QE=F5L+G1M<&P*
`
end