🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sources.reviewed
1 messages
1 total messages Started by Mike Brennan Tue, 13 Oct 1992 22:15
v02i031: mawk - (Ver. 1.1) An interpreter for the AWK language, Patch02d/4
#27
Author: Mike Brennan
Date: Tue, 13 Oct 1992 22:15
1574 lines
60754 bytes
Submitted-by: Mike Brennan <brennan@boeing.com>
Posting-number: Volume 2, Issue 31
Archive-name: mawk/patch02d
Patch-To: mawk: Volume 1, Issue 50-68

#!/bin/sh
# this is part.04 (part 4 of a multipart archive)
# do not concatenate these parts, unpack them in order with /bin/sh
# file Xparse.c continued
#
if test ! -r _shar_seq_.tmp; then
	echo 'Please unpack part 1 first!'
	exit 1
fi
(read Scheck
 if test "$Scheck" != 4; then
	echo Please unpack part "$Scheck" next!
	exit 1
 else
	exit 0
 fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
	echo 'x - still skipping Xparse.c'
else
echo 'x - continuing file Xparse.c'
sed 's/^X//' << 'SHAR_EOF' >> 'Xparse.c' &&
break;
case 53:
#line 322 "parse.y"
{ patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
break;
case 55:
#line 327 "parse.y"
{ code1(_CAT) ; }
break;
case 56:
#line 331 "parse.y"
{  yyval.start = code_ptr ; code2(_PUSHD, yyvsp[0].ptr) ; }
break;
case 57:
#line 333 "parse.y"
{ yyval.start = code_ptr ; code2(_PUSHS, yyvsp[0].ptr) ; }
break;
case 58:
#line 335 "parse.y"
{ check_var(yyvsp[0].stp) ;
X            yyval.start = code_ptr ;
X            if ( is_local(yyvsp[0].stp) )
X            { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
X            else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
X          }
break;
case 59:
#line 343 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 60:
#line 347 "parse.y"
{ yyval.start = code_ptr ; code2(_MATCH0, yyvsp[0].ptr) ; }
break;
case 61:
#line 350 "parse.y"
{ code1(_ADD) ; }
break;
case 62:
#line 351 "parse.y"
{ code1(_SUB) ; }
break;
case 63:
#line 352 "parse.y"
{ code1(_MUL) ; }
break;
case 64:
#line 353 "parse.y"
{ code1(_DIV) ; }
break;
case 65:
#line 354 "parse.y"
{ code1(_MOD) ; }
break;
case 66:
#line 355 "parse.y"
{ code1(_POW) ; }
break;
case 67:
#line 357 "parse.y"
{ yyval.start = yyvsp[0].start ; code1(_NOT) ; }
break;
case 68:
#line 359 "parse.y"
{ yyval.start = yyvsp[0].start ; code1(_UPLUS) ; }
break;
case 69:
#line 361 "parse.y"
{ yyval.start = yyvsp[0].start ; code1(_UMINUS) ; }
break;
case 71:
#line 366 "parse.y"
{ check_var(yyvsp[-1].stp) ;
X             yyval.start = code_ptr ;
X             code_address(yyvsp[-1].stp) ;
X
X             if ( yyvsp[0].ival == '+' )  code1(_POST_INC) ;
X             else  code1(_POST_DEC) ;
X           }
break;
case 72:
#line 374 "parse.y"
{ yyval.start = yyvsp[0].start ; 
X              if ( yyvsp[-1].ival == '+' ) code1(_PRE_INC) ;
X              else  code1(_PRE_DEC) ;
X            }
break;
case 73:
#line 381 "parse.y"
{ if (yyvsp[0].ival == '+' ) code1(F_POST_INC ) ; 
X             else  code1(F_POST_DEC) ;
X           }
break;
case 74:
#line 385 "parse.y"
{ yyval.start = yyvsp[0].start ; 
X             if ( yyvsp[-1].ival == '+' ) code1(F_PRE_INC) ;
X             else  code1( F_PRE_DEC) ; 
X           }
break;
case 75:
#line 392 "parse.y"
{ yyval.start = code_ptr ; 
X          check_var(yyvsp[0].stp) ;
X          code_address(yyvsp[0].stp) ;
X        }
break;
case 76:
#line 400 "parse.y"
{ yyval.ival = 0 ; }
break;
case 78:
#line 405 "parse.y"
{ yyval.ival = 1 ; }
break;
case 79:
#line 407 "parse.y"
{ yyval.ival = yyvsp[-2].ival + 1 ; }
break;
case 80:
#line 412 "parse.y"
{ BI_REC *p = yyvsp[-4].bip ;
X          yyval.start = yyvsp[-3].start ;
X          if ( p-> min_args > yyvsp[-1].ival || p->max_args < yyvsp[-1].ival )
X            compile_error(
X            "wrong number of arguments in call to %s" ,
X            p->name ) ;
X          if ( p->min_args != p->max_args ) /* variable args */
X              { code1(_PUSHINT) ;  code1(yyvsp[-1].ival) ; }
X          code2(_BUILTIN , p->fp) ;
X        }
break;
case 81:
#line 423 "parse.y"
{
X	    code1(_PUSHINT) ; code1(0) ;
X	    code2(_BUILTIN, yyvsp[0].bip->fp) ;
X	  }
break;
case 82:
#line 431 "parse.y"
{ yyval.start = code_ptr ; }
break;
case 83:
#line 435 "parse.y"
{ code2(_PRINT, yyvsp[-4].fp) ; yyval.start = yyvsp[-3].start ;
X              if ( yyvsp[-4].fp == bi_printf && yyvsp[-2].ival == 0 )
X                    compile_error("no arguments in call to printf") ;
X              print_flag = 0 ;
X              yyval.start = yyvsp[-3].start ;
X            }
break;
case 84:
#line 443 "parse.y"
{ yyval.fp = bi_print ; print_flag = 1 ;}
break;
case 85:
#line 444 "parse.y"
{ yyval.fp = bi_printf ; print_flag = 1 ; }
break;
case 86:
#line 447 "parse.y"
{ code1(_PUSHINT) ; code1(yyvsp[0].ival) ; }
break;
case 87:
#line 449 "parse.y"
{ yyval.ival = yyvsp[-1].arg2p->cnt ; zfree(yyvsp[-1].arg2p,sizeof(ARG2_REC)) ; 
X             code1(_PUSHINT) ; code1(yyval.ival) ; 
X           }
break;
case 88:
#line 453 "parse.y"
{ yyval.ival=0 ; code1(_PUSHINT) ; code1(0) ; }
break;
case 89:
#line 457 "parse.y"
{ yyval.arg2p = (ARG2_REC*) zmalloc(sizeof(ARG2_REC)) ;
X             yyval.arg2p->start = yyvsp[-2].start ;
X             yyval.arg2p->cnt = 2 ;
X           }
break;
case 90:
#line 462 "parse.y"
{ yyval.arg2p = yyvsp[-2].arg2p ; yyval.arg2p->cnt++ ; }
break;
case 92:
#line 467 "parse.y"
{ code1(_PUSHINT) ; code1(yyvsp[-1].ival) ; }
break;
case 93:
#line 474 "parse.y"
{  yyval.start = yyvsp[-1].start ; eat_nl() ; code_jmp(_JZ, (INST*)0) ; }
break;
case 94:
#line 479 "parse.y"
{ patch_jmp( code_ptr ) ;  }
break;
case 95:
#line 482 "parse.y"
{ eat_nl() ; code_jmp(_JMP, (INST*)0) ; }
break;
case 96:
#line 487 "parse.y"
{ patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
break;
case 97:
#line 493 "parse.y"
{ eat_nl() ; BC_new() ; }
break;
case 98:
#line 498 "parse.y"
{ yyval.start = yyvsp[-5].start ;
X          code_jmp(_JNZ, yyvsp[-5].start) ; 
X          BC_clear(code_ptr, yyvsp[-2].start) ; }
break;
case 99:
#line 504 "parse.y"
{ eat_nl() ; BC_new() ;
X                  yyval.start = yyvsp[-1].start ;
X
X                  /* check if const expression */
X                  if ( code_ptr - 2 == yyvsp[-1].start &&
X                       code_ptr[-2].op == _PUSHD &&
X                       *(double*)code_ptr[-1].ptr != 0.0 
X                     )
X                     code_ptr -= 2 ;
X                  else
X		  {
X		    code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
X		    code_ptr = yyvsp[-1].start ;
X                    code2(_JMP, (INST*)0) ; /* code2() not code_jmp() */
X		  }
X                }
break;
case 100:
#line 524 "parse.y"
{ 
X		  INST *c_addr ; int len ;
X
X                  if ( yyvsp[-1].start != yyvsp[0].start )  /* real test in loop */
X		  {
X		    yyvsp[-1].start[1].op = code_ptr-(yyvsp[-1].start+1) ;
X		    c_addr = code_ptr ;
X		    len = code_pop(code_ptr) ;
X		    code_ptr += len ;
X		    code_jmp(_JNZ, yyvsp[0].start) ;
X		    BC_clear(code_ptr, c_addr) ;
X		  }
X		  else /* while(1) */
X		  {
X		    code_jmp(_JMP, yyvsp[-1].start) ;
X		    BC_clear(code_ptr, yyvsp[0].start) ;
X		  }
X                }
break;
case 101:
#line 547 "parse.y"
{ 
X                  INST *cont_address = code_ptr ;
X                  unsigned len = code_pop(code_ptr) ;
X
X                  code_ptr += len ;
X
X		  if ( yyvsp[-2].start != yyvsp[0].start )  /* real test in for2 */
X		  {
X                    yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
X		    len = code_pop(code_ptr) ;
X		    code_ptr += len ;
X                    code_jmp(_JNZ, yyvsp[0].start) ;
X		  }
X		  else /*  for(;;) */
X		  code_jmp(_JMP, yyvsp[0].start) ;
X
X		  BC_clear(code_ptr, cont_address) ;
X
X                }
break;
case 102:
#line 568 "parse.y"
{ yyval.start = code_ptr ; }
break;
case 103:
#line 570 "parse.y"
{ yyval.start = yyvsp[-1].start ; code1(_POP) ; }
break;
case 104:
#line 573 "parse.y"
{ yyval.start = code_ptr ; }
break;
case 105:
#line 575 "parse.y"
{ 
X             if ( code_ptr - 2 == yyvsp[-1].start &&
X                  code_ptr[-2].op == _PUSHD &&
X                  * (double*) code_ptr[-1].ptr != 0.0
X                )
X                    code_ptr -= 2 ;
X             else   
X	     {
X	       code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
X	       code_ptr = yyvsp[-1].start ;
X	       code2(_JMP, (INST*)0) ;
X	     }
X           }
break;
case 106:
#line 591 "parse.y"
{ eat_nl() ; BC_new() ; code_push((INST*)0,0) ; }
break;
case 107:
#line 593 "parse.y"
{ eat_nl() ; BC_new() ; 
X             code1(_POP) ;
X             code_push(yyvsp[-1].start, code_ptr - yyvsp[-1].start) ;
X             code_ptr -= code_ptr - yyvsp[-1].start ;
X           }
break;
case 108:
#line 604 "parse.y"
{ check_array(yyvsp[0].stp) ;
X             code_array(yyvsp[0].stp) ; 
X             code1(A_TEST) ; 
X            }
break;
case 109:
#line 609 "parse.y"
{ yyval.start = yyvsp[-3].arg2p->start ;
X             code1(A_CAT) ; code1(yyvsp[-3].arg2p->cnt) ;
X             zfree(yyvsp[-3].arg2p, sizeof(ARG2_REC)) ;
X
X             check_array(yyvsp[0].stp) ;
X             code_array(yyvsp[0].stp) ;
X             code1(A_TEST) ;
X           }
break;
case 110:
#line 620 "parse.y"
{ 
X             if ( yyvsp[-1].ival > 1 )
X             { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
X
X             check_array(yyvsp[-4].stp) ;
X             if( is_local(yyvsp[-4].stp) )
X             { code1(LAE_PUSHA) ; code1(yyvsp[-4].stp->offset) ; }
X             else code2(AE_PUSHA, yyvsp[-4].stp->stval.array) ;
X             yyval.start = yyvsp[-3].start ;
X           }
break;
case 111:
#line 633 "parse.y"
{ 
X             if ( yyvsp[-1].ival > 1 )
X             { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
X
X             check_array(yyvsp[-4].stp) ;
X             if( is_local(yyvsp[-4].stp) )
X             { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
X             else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
X             yyval.start = yyvsp[-3].start ;
X           }
break;
case 112:
#line 645 "parse.y"
{ 
X             if ( yyvsp[-2].ival > 1 )
X             { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
X
X             check_array(yyvsp[-5].stp) ;
X             if( is_local(yyvsp[-5].stp) )
X             { code1(LAE_PUSHA) ; code1(yyvsp[-5].stp->offset) ; }
X             else code2(AE_PUSHA, yyvsp[-5].stp->stval.array) ;
X             if ( yyvsp[0].ival == '+' )  code1(_POST_INC) ;
X             else  code1(_POST_DEC) ;
X
X             yyval.start = yyvsp[-4].start ;
X           }
break;
case 113:
#line 662 "parse.y"
{ 
X               yyval.start = yyvsp[-4].start ;
X               if ( yyvsp[-2].ival > 1 ) { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
X               check_array(yyvsp[-5].stp) ;
X               code_array(yyvsp[-5].stp) ;
X               code1(A_DEL) ;
X             }
break;
case 114:
#line 675 "parse.y"
{ eat_nl() ; BC_new() ;
X                      yyval.start = code_ptr ;
X
X                      check_var(yyvsp[-3].stp) ;
X                      code_address(yyvsp[-3].stp) ;
X                      check_array(yyvsp[-1].stp) ;
X                      code_array(yyvsp[-1].stp) ;
X
X                      code2(SET_ALOOP, (INST*)0) ;
X                    }
break;
case 115:
#line 689 "parse.y"
{ 
X	        yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
X                BC_clear( code_ptr+3 , code_ptr) ;
X		code_jmp(ALOOP, yyvsp[0].start) ;
X		code_ptr++->ptr = (PTR) ZMALLOC(ALOOP_STATE) ;
X              }
break;
case 116:
#line 704 "parse.y"
{ yyval.start = code_ptr ; code2(F_PUSHA, yyvsp[0].cp) ; }
break;
case 117:
#line 706 "parse.y"
{ check_var(yyvsp[0].stp) ;
X             yyval.start = code_ptr ;
X             if ( is_local(yyvsp[0].stp) )
X             { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
X             else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
X
X	     CODE_FE_PUSHA() ;
X           }
break;
case 118:
#line 715 "parse.y"
{ 
X             if ( yyvsp[-1].ival > 1 )
X             { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
X
X             check_array(yyvsp[-4].stp) ;
X             if( is_local(yyvsp[-4].stp) )
X             { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
X             else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
X
X	     CODE_FE_PUSHA()  ;
X
X             yyval.start = yyvsp[-3].start ;
X           }
break;
case 119:
#line 729 "parse.y"
{ yyval.start = yyvsp[0].start ;  CODE_FE_PUSHA() ; }
break;
case 120:
#line 731 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 121:
#line 735 "parse.y"
{ field_A2I() ; }
break;
case 122:
#line 738 "parse.y"
{ code1(F_ASSIGN) ; }
break;
case 123:
#line 739 "parse.y"
{ code1(F_ADD_ASG) ; }
break;
case 124:
#line 740 "parse.y"
{ code1(F_SUB_ASG) ; }
break;
case 125:
#line 741 "parse.y"
{ code1(F_MUL_ASG) ; }
break;
case 126:
#line 742 "parse.y"
{ code1(F_DIV_ASG) ; }
break;
case 127:
#line 743 "parse.y"
{ code1(F_MOD_ASG) ; }
break;
case 128:
#line 744 "parse.y"
{ code1(F_POW_ASG) ; }
break;
case 129:
#line 751 "parse.y"
{ code2(_BUILTIN, bi_split) ; }
break;
case 130:
#line 755 "parse.y"
{ yyval.start = yyvsp[-2].start ;
X              check_array(yyvsp[0].stp) ;
X              code_array(yyvsp[0].stp)  ;
X            }
break;
case 131:
#line 762 "parse.y"
{ code2(_PUSHI, &fs_shadow) ; }
break;
case 132:
#line 764 "parse.y"
{ 
X                  if ( yyvsp[-1].start == code_ptr - 2 )
X                  {
X                    if ( code_ptr[-2].op == _MATCH0 )
X                        RE_as_arg() ;
X                    else
X                    if ( code_ptr[-2].op == _PUSHS )
X                    { CELL *cp = ZMALLOC(CELL) ;
X
X                      cp->type = C_STRING ;
X                      cp->ptr = code_ptr[-1].ptr ;
X                      cast_for_split(cp) ;
X                      code_ptr[-2].op = _PUSHC ;
X                      code_ptr[-1].ptr = (PTR) cp ;
X                    }
X                  }
X                }
break;
case 133:
#line 788 "parse.y"
{ yyval.start = yyvsp[-3].start ; 
X          code2(_BUILTIN, bi_match) ;
X        }
break;
case 134:
#line 795 "parse.y"
{
X               if ( yyvsp[0].start == code_ptr - 2 ) 
X               {
X                 if ( yyvsp[0].start->op == _MATCH0 ) RE_as_arg() ;
X                 else
X                 if ( yyvsp[0].start->op == _PUSHS )
X                 { CELL *cp = ZMALLOC(CELL) ;
X
X                   cp->type = C_STRING ;
X                   cp->ptr = yyvsp[0].start[1].ptr ;
X                   cast_to_RE(cp) ;
X                   yyvsp[0].start->op = _PUSHC ;
X                   yyvsp[0].start[1].ptr = (PTR) cp ;
X                 } 
X               }
X             }
break;
case 135:
#line 816 "parse.y"
{ yyval.start = code_ptr ;
X                      code1(_EXIT0) ; }
break;
case 136:
#line 819 "parse.y"
{ yyval.start = yyvsp[-1].start ; code1(_EXIT) ; }
break;
case 137:
#line 822 "parse.y"
{ yyval.start = code_ptr ;
X                      code1(_RET0) ; }
break;
case 138:
#line 825 "parse.y"
{ yyval.start = yyvsp[-1].start ; code1(_RET) ; }
break;
case 139:
#line 830 "parse.y"
{ yyval.start = code_ptr ;
X            code2(F_PUSHA, &field[0]) ;
X            code1(_PUSHINT) ; code1(0) ; 
X            code2(_BUILTIN, bi_getline) ;
X            getline_flag = 0 ;
X          }
break;
case 140:
#line 837 "parse.y"
{ yyval.start = yyvsp[0].start ;
X            code1(_PUSHINT) ; code1(0) ;
X            code2(_BUILTIN, bi_getline) ;
X            getline_flag = 0 ;
X          }
break;
case 141:
#line 843 "parse.y"
{ code1(_PUSHINT) ; code1(F_IN) ;
X            code2(_BUILTIN, bi_getline) ;
X            /* getline_flag already off in yylex() */
X          }
break;
case 142:
#line 848 "parse.y"
{ code2(F_PUSHA, &field[0]) ;
X            code1(_PUSHINT) ; code1(PIPE_IN) ;
X            code2(_BUILTIN, bi_getline) ;
X          }
break;
case 143:
#line 853 "parse.y"
{ 
X            code1(_PUSHINT) ; code1(PIPE_IN) ;
X            code2(_BUILTIN, bi_getline) ;
X          }
break;
case 144:
#line 859 "parse.y"
{ getline_flag = 1 ; }
break;
case 147:
#line 864 "parse.y"
{ yyval.start = code_ptr ;
X                   code2(F_PUSHA, field+0) ;
X                 }
break;
case 148:
#line 868 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 149:
#line 876 "parse.y"
{
X             if ( yyvsp[0].start - yyvsp[-1].start == 2 && yyvsp[-1].start->op == _PUSHS  )
X             { /* cast from STRING to REPL at compile time */
X               CELL *cp = ZMALLOC(CELL) ;
X               cp->type = C_STRING ;
X               cp->ptr = yyvsp[-1].start[1].ptr ;
X               cast_to_REPL(cp) ;
X               yyvsp[-1].start->op = _PUSHC ;
X               yyvsp[-1].start[1].ptr = (PTR) cp ;
X             }
X             code2(_BUILTIN, yyvsp[-5].fp) ;
X             yyval.start = yyvsp[-3].start ;
X           }
break;
case 150:
#line 891 "parse.y"
{ yyval.fp = bi_sub ; }
break;
case 151:
#line 892 "parse.y"
{ yyval.fp = bi_gsub ; }
break;
case 152:
#line 897 "parse.y"
{ yyval.start = code_ptr ;
X                  code2(F_PUSHA, &field[0]) ; 
X                }
break;
case 153:
#line 902 "parse.y"
{ yyval.start = yyvsp[-1].start ; }
break;
case 154:
#line 910 "parse.y"
{ resize_fblock(yyvsp[-1].fbp, code_ptr) ;
X                   code_ptr = main_code_ptr ;
X                   scope = SCOPE_MAIN ;
X                   active_funct = (FBLOCK *) 0 ;
X                   restore_ids() ;
X                 }
break;
case 155:
#line 920 "parse.y"
{ eat_nl() ;
X                   scope = SCOPE_FUNCT ;
X                   active_funct = yyvsp[-3].fbp ;
X                   main_code_ptr = code_ptr ;
X
X                   if ( yyvsp[-3].fbp->nargs = yyvsp[-1].ival )
X                        yyvsp[-3].fbp->typev = (char *)
X			memset( zmalloc(yyvsp[-1].ival), ST_LOCAL_NONE, SIZE_T(yyvsp[-1].ival)) ;
X                   else yyvsp[-3].fbp->typev = (char *) 0 ;
X                   code_ptr = yyvsp[-3].fbp->code = 
X                       (INST *) zmalloc(PAGE_SZ*sizeof(INST)) ;
X                 }
break;
case 156:
#line 935 "parse.y"
{ FBLOCK  *fbp ;
X
X                   if ( yyvsp[0].stp->type == ST_NONE )
X                   {
X                         yyvsp[0].stp->type = ST_FUNCT ;
X                         fbp = yyvsp[0].stp->stval.fbp = 
X                             (FBLOCK *) zmalloc(sizeof(FBLOCK)) ;
X                         fbp->name = yyvsp[0].stp->name ;
X                   }
X                   else
X                   {
X                         type_error( yyvsp[0].stp ) ;
X
X                         /* this FBLOCK will not be put in
X                            the symbol table */
X                         fbp = (FBLOCK*) zmalloc(sizeof(FBLOCK)) ;
X                         fbp->name = "" ;
X                   }
X                   yyval.fbp = fbp ;
X                 }
break;
case 157:
#line 957 "parse.y"
{ yyval.fbp = yyvsp[0].fbp ; 
X                   if ( yyvsp[0].fbp->code ) 
X                       compile_error("redefinition of %s" , yyvsp[0].fbp->name) ;
X                 }
break;
case 158:
#line 963 "parse.y"
{ yyval.ival = 0 ; }
break;
case 160:
#line 968 "parse.y"
{ yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
X                yyvsp[0].stp->type = ST_LOCAL_NONE ;
X                yyvsp[0].stp->offset = 0 ;
X                yyval.ival = 1 ;
X              }
break;
case 161:
#line 974 "parse.y"
{ if ( is_local(yyvsp[0].stp) ) 
X                  compile_error("%s is duplicated in argument list",
X                    yyvsp[0].stp->name) ;
X                else
X                { yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
X                  yyvsp[0].stp->type = ST_LOCAL_NONE ;
X                  yyvsp[0].stp->offset = yyvsp[-2].ival ;
X                  yyval.ival = yyvsp[-2].ival + 1 ;
X                }
X              }
break;
case 162:
#line 987 "parse.y"
{  /* we may have to recover from a bungled function
X		       definition */
X
X		   /* can have local ids, before code scope
X		      changes  */
X		    restore_ids() ;
X
X		    if (scope == SCOPE_FUNCT)
X                    { scope = SCOPE_MAIN ; 
X		      active_funct = (FBLOCK*) 0 ;
X		    }
X
X		    code_ptr = main_code_ptr ;
X                 }
break;
case 163:
#line 1006 "parse.y"
{ yyval.start = yyvsp[-1].start ;
X             code2(_CALL, yyvsp[-2].fbp) ;
X
X             if ( yyvsp[0].ca_p )  code1(yyvsp[0].ca_p->arg_num+1) ;
X             else  code1(0) ;
X               
X             check_fcall(yyvsp[-2].fbp, scope, active_funct, 
X                         yyvsp[0].ca_p, token_lineno) ;
X           }
break;
case 164:
#line 1018 "parse.y"
{ yyval.ca_p = (CA_REC *) 0 ; }
break;
case 165:
#line 1020 "parse.y"
{ yyval.ca_p = yyvsp[0].ca_p ;
X                 yyval.ca_p->link = yyvsp[-1].ca_p ;
X                 yyval.ca_p->arg_num = yyvsp[-1].ca_p ? yyvsp[-1].ca_p->arg_num+1 : 0 ;
X               }
break;
case 166:
#line 1035 "parse.y"
{ yyval.ca_p = (CA_REC *) 0 ; }
break;
case 167:
#line 1037 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X                yyval.ca_p->link = yyvsp[-2].ca_p ;
X                yyval.ca_p->type = CA_EXPR  ;
X                yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
X              }
break;
case 168:
#line 1043 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X                yyval.ca_p->link = yyvsp[-2].ca_p ;
X                yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
X
X                code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
X              }
break;
case 169:
#line 1052 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X                yyval.ca_p->type = CA_EXPR ;
X              }
break;
case 170:
#line 1057 "parse.y"
{ yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
X                code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
X              }
break;
#line 2522 "y.tab.c"
X    }
X    yyssp -= yym;
X    yystate = *yyssp;
X    yyvsp -= yym;
X    yym = yylhs[yyn];
X    if (yystate == 0 && yym == 0)
X    {
#if YYDEBUG
X        if (yydebug)
X            printf("yydebug: after reduction, shifting from state 0 to\
X state %d\n", YYFINAL);
#endif
X        yystate = YYFINAL;
X        *++yyssp = YYFINAL;
X        *++yyvsp = yyval;
X        if (yychar < 0)
X        {
X            if ((yychar = YYLEX()) < 0) yychar = 0;
#if YYDEBUG
X            if (yydebug)
X            {
X                yys = 0;
X                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
X                if (!yys) yys = "illegal-symbol";
X                printf("yydebug: state %d, reading %d (%s)\n",
X                        YYFINAL, yychar, yys);
X            }
#endif
X        }
X        if (yychar == 0) goto yyaccept;
X        goto yyloop;
X    }
X    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
X            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
X        yystate = yytable[yyn];
X    else
X        yystate = yydgoto[yym];
#if YYDEBUG
X    if (yydebug)
X        printf("yydebug: after reduction, shifting from state %d \
to state %d\n", *yyssp, yystate);
#endif
X    if (yyssp >= yyss + yystacksize - 1)
X    {
X        goto yyoverflow;
X    }
X    *++yyssp = yystate;
X    *++yyvsp = yyval;
X    goto yyloop;
yyoverflow:
X    yyerror("yacc stack overflow");
yyabort:
X    return (1);
yyaccept:
X    return (0);
}
X
/********************************************
parse2.xc
copyright 1991, Michael D. Brennan
X
This is a source file for mawk, an implementation of
the AWK programming language.
X
Mawk is distributed without warranty under the terms of
the GNU General Public License, version 2, 1991.
********************************************/
X
/* $Log: parse.c,v $
X * Revision 1.6  1992/08/27  04:12:49  mike
X * *** empty log message ***
X *
Revision 5.1  1991/12/05  07:52:38  brennan
1.1 pre-release
X
*/
X
/* If using Berkeley yacc, we can put the parser table 
X   memory to the zmalloc pool.  This is kind of ugly and
X   with paged vm probably a nop, but for DOS and MINIX and ??
X   it frees a considerably amount of memory.
X
X   This file is part of parse.c via
X      cat  y.tab.c  parse2.xc  > parse.c
*/
X
static struct yacc_mem   yacc_mem[] = 
{
0 , 0 ,  /* don't remove this */
X
#ifdef   YYBYACC
(PTR) yycheck, sizeof(yycheck)/ZBLOCKSZ,
(PTR) yytable, sizeof(yytable)/ZBLOCKSZ,
#ifndef  YYXBYACC  /* with xbyacc these are storage auto */
(PTR) yyvs , sizeof(yyvs)/ZBLOCKSZ,
(PTR) yyss, sizeof(yyss)/ZBLOCKSZ,
#endif
(PTR) yydefred, sizeof(yydefred)/ZBLOCKSZ,
(PTR) yydgoto, sizeof(yydgoto)/ZBLOCKSZ,
(PTR) yygindex, sizeof(yygindex)/ZBLOCKSZ,
(PTR) yylen, sizeof(yylen)/ZBLOCKSZ,
(PTR) yylhs, sizeof(yylhs)/ZBLOCKSZ,
(PTR) yyrindex, sizeof(yyrindex)/ZBLOCKSZ,
(PTR) yysindex, sizeof(yysindex)/ZBLOCKSZ,
#endif
X
0,0 } ;
X
struct yacc_mem  *yacc_memp = yacc_mem ;
X
SHAR_EOF
echo 'File Xparse.c is complete' &&
chmod 0644 Xparse.c ||
echo 'restore of Xparse.c failed'
Wc_c="`wc -c < 'Xparse.c'`"
test 91455 -eq "$Wc_c" ||
	echo 'Xparse.c: original size 91455, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= Xparse.h ==============
if test -f 'Xparse.h' -a X"$1" != X"-c"; then
	echo 'x - skipping Xparse.h (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting Xparse.h (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'Xparse.h' &&
#define UNEXPECTED 257
#define BAD_DECIMAL 258
#define NL 259
#define SEMI_COLON 260
#define LBRACE 261
#define RBRACE 262
#define LBOX 263
#define RBOX 264
#define COMMA 265
#define IO_OUT 266
#define ASSIGN 267
#define ADD_ASG 268
#define SUB_ASG 269
#define MUL_ASG 270
#define DIV_ASG 271
#define MOD_ASG 272
#define POW_ASG 273
#define QMARK 274
#define COLON 275
#define OR 276
#define AND 277
#define IN 278
#define MATCH 279
#define EQ 280
#define NEQ 281
#define LT 282
#define LTE 283
#define GT 284
#define GTE 285
#define CAT 286
#define GETLINE 287
#define PLUS 288
#define MINUS 289
#define MUL 290
#define DIV 291
#define MOD 292
#define NOT 293
#define UMINUS 294
#define IO_IN 295
#define PIPE 296
#define POW 297
#define INC_or_DEC 298
#define DOLLAR 299
#define FIELD 300
#define LPAREN 301
#define RPAREN 302
#define DOUBLE 303
#define STRING_ 304
#define RE 305
#define ID 306
#define D_ID 307
#define FUNCT_ID 308
#define BUILTIN 309
#define LENGTH 310
#define PRINT 311
#define PRINTF 312
#define SPLIT 313
#define MATCH_FUNC 314
#define SUB 315
#define GSUB 316
#define DO 317
#define WHILE 318
#define FOR 319
#define BREAK 320
#define CONTINUE 321
#define IF 322
#define ELSE 323
#define DELETE 324
#define BEGIN 325
#define END 326
#define EXIT 327
#define NEXT 328
#define RETURN 329
#define FUNCTION 330
typedef union{
CELL *cp ;
SYMTAB *stp ;
INST  *start ; /* code starting address */
PF_CP  fp ;  /* ptr to a (print/printf) or (sub/gsub) function */
BI_REC *bip ; /* ptr to info about a builtin */
FBLOCK  *fbp  ; /* ptr to a function block */
ARG2_REC *arg2p ;
CA_REC   *ca_p  ;
int   ival ;
PTR   ptr ;
} YYSTYPE;
extern YYSTYPE yylval;
SHAR_EOF
chmod 0644 Xparse.h ||
echo 'restore of Xparse.h failed'
Wc_c="`wc -c < 'Xparse.h'`"
test 1671 -eq "$Wc_c" ||
	echo 'Xparse.h: original size 1671, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= doc.diff ==============
if test -f 'doc.diff' -a X"$1" != X"-c"; then
	echo 'x - skipping doc.diff (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting doc.diff (Binary)'
sed 's/^X//' << 'SHAR_EOF' > _shar_tmp_.tmp &&
begin 600 doc.diff
M26YD97@Z(&UA=VLN9&]C"C$Q9#$P"CP@"C$X9#$V"CP@"C0T9#0Q"CP@"C0V
M8S0S"CP@("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@('-E=',@=&AE(&9I
M96QD('-E<&%R871O<BP@1E,L('1O(%\(=E\(85\(;%\(=5\(92X*+2TM"CX@
M("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@("`@<V5T<R!T:&4@9FEE;&0@
M<V5P87)A=&]R+"!&4RP@=&\@7PAV7PAA7PAL7PAU7PAE+@HT-V$T-2PT-PH^
M("`@("`@+68@7PAF7PAI7PAL7PAE("`@("`@("!0<F]G<F%M('1E>'0@:7,@
M<F5A9"`@9G)O;2`@7PAF7PAI7PAL7PAE("!I;G-T96%D("!O9@H^("`@("`@
M("`@("`@("`@("`@("`@9G)O;2`@=&AE("!C;VUM86YD(&QI;F4N("!-=6QT
M:7!L92`M9B!O<'1I;VYS"CX@("`@("`@("`@("`@("`@("`@("!A<F4@86QL
M;W=E9"X*-#DL-3%C-#D*/"`@("`@("UF(%\(9E\(:5\(;%\(92`@("`@(%!R
M;V=R86T@=&5X="!I<R!R96%D(&9R;VT@7PAF7PAI7PAL7PAE(&EN<W1E860@
M;V8@(&9R;VT*/"`@("`@("`@("`@("`@("`@("!T:&4@(&-O;6UA;F0@(&QI
M;F4N("`@375L=&EP;&4@("UF("!O<'1I;VYS(&%R90H\("`@("`@("`@("`@
M("`@("`@(&%L;&]W960N"BTM+0H^("`@("`@+78@7PAV7PAA7PAR/5\(=E\(
M85\(;%\(=5\(92`@(&%S<VEG;G,@7PAV7PAA7PAL7PAU7PAE('1O('!R;V=R
M86T@=F%R:6%B;&4@7PAV7PAA7PAR+@HU,F$U,0H^("`@("`@+2T@("`@("`@
M("`@("`@:6YD:6-A=&5S('1H92!U;F%M8FEG=6]U<R!E;F0@;V8@;W!T:6]N
M<RX*-31C-3,L-34*/"`@("`@("UV(%\(=E\(85\(<CU?"'9?"&%?"&Q?"'5?
M"&4@87-S:6=N<R!?"'9?"&%?"&Q?"'5?"&4@=&\@<')O9W)A;2!V87)I86)L
M92!?"'9?"&%?"'(N"BTM+0H^("`@("`@5&AE(&%B;W9E(&]P=&EO;G,@=VEL
M;"!B92!A=F%I;&%B;&4@=VET:"!A;GD@4&]S:7@@(&-O;7!A=&DM"CX@("`@
M("!B;&4@(&EM<&QE;65N=&%T:6]N("!O9B`@05=++"`@86YD("!I;7!L96UE
M;G1A=&EO;B`@<W!E8VEF:6,*/B`@("`@(&]P=&EO;G,@87)E('!R969A8V5D
M('=I=&@@+5<N("!M87=K('!R;W9I9&5S(&9O=7(Z"C4U834W+#4Y"CX@("`@
M("`M5R!V97)S:6]N("`@("!M87=K('=R:71E<R`@:71S("!V97)S:6]N("!A
M;F0@(&-O<'ER:6=H="`@=&\*/B`@("`@("`@("`@("`@("`@("`@('-T9&]U
M="`@86YD("!C;VUP:6QE9"`@;&EM:71S("!T;R`@<W1D97)R(&%N9`H^("`@
M("`@("`@("`@("`@("`@("`@97AI=',@,"X*-3=D-C`*/"`@("`@("TM("`@
M("`@("`@("!I;F1I8V%T97,@=&AE('5N86UB:6=U;W5S(&5N9"!O9B!O<'1I
M;VYS+@HU.6$V,PH^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z
M($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@("`Q"C8S9#8V"CP@5F5R
M<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@
M("`@("`@("`@("`@("`@(#$*-C<L-CED-CD*/"`*/"`*/"`*-S0L-S9C-S0L
M-S8*/"`@("`@(%1H92!A8F]V92!O<'1I;VYS('=I;&P@8F4@879A:6QA8FQE
M('=I=&@@86YY(%!O<VEX("!C;VUP871I+0H\("`@("`@8FQE("!I;7!L96UE
M;G1A=&EO;B`@;V8@($%72RP@(&%N9"`@:6UP;&5M96YT871I;VX@('-P96-I
M9FEC"CP@("`@("!O<'1I;VYS(&%R92!P<F5F86-E9"!W:71H("U7+B!M87=K
M('!R;W9I9&5S('1H<F5E.@HM+2T*/B`@("`@("U7(&1U;7`@("`@("`@('=R
M:71E<R`@86X@(&%S<V5M8FQE<B`@;&EK92`@;&ES=&EN9R`@;V8@('1H90H^
M("`@("`@("`@("`@("`@("`@("`@:6YT97)N86P@(')E<')E<V5N=&%T:6]N
M("!O9B`@=&AE("!P<F]G<F%M('1O"CX@("`@("`@("`@("`@("`@("`@("!S
M=&1E<G(N"C<W83<X+#@Q"CX@("`@("`M5R!S<')I;G1F/5\(;E\(=5\(;2!A
M9&IU<W1S('1H92!S:7IE(&]F(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*
M/B`@("`@("`@("`@("`@("`@("`@(&)U9F9E<B`@=&\@(%\(;E\(=5\(;2!B
M>71E<RX@($UO<F4@=&AA;B!R87)E('5S92!O9@H^("`@("`@("`@("`@("`@
M("`@("`@=&AI<R!O<'1I;VX@:6YD:6-A=&5S(&UA=VL@<VAO=6QD("!B92`@
M<F5C;VTM"CX@("`@("`@("`@("`@("`@("`@("!P:6QE9"X*-SDL.#!C.#,*
M/"`@("`@("U7('9E<G-I;VX@("!M87=K('=R:71E<R!I=',@=F5R<VEO;B!A
M;F0@8V]P>7)I9VAT('1O('-T9&]U=`H\("`@("`@("`@("`@("`@("`@(&%N
M9"!C;VUP:6QE9"!L:6UI=',@=&\@<W1D97)R(&%N9"!E>&ET<R`P+@HM+2T*
M/B`@("`@("U7('!O<VEX7W-P86-E(&9O<F-E<R!M87=K(&YO="!T;R!C;VYS
M:61E<B`G7&XG('1O(&)E('-P86-E+@HX,BPY-&0X-`H\("`@("`@+5<@9'5M
M<"`@("`@('=R:71E<R!A;B!A<W-E;6)L97(@;&EK92!L:7-T:6YG(&]F('1H
M92`@:6YT97(M"CP@("`@("`@("`@("`@("`@("`@;F%L(')E<')E<V5N=&%T
M:6]N(&]F('1H92!P<F]G<F%M('1O('-T9&5R<BX*/"`*/"`@("`@("U7('-P
M<FEN=&8]7PAN7PAU7PAM"CP@("`@("`@("`@("`@("`@("`@861J=7-T<R!T
M:&4@<VEZ92`@;V8@(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*/"`@("`@
M("`@("`@("`@("`@("!B=69F97(@('1O("!?"&Y?"'5?"&T@(&)Y=&5S+B`@
M($UO<F4@=&AA;B!R87)E('5S92!O9@H\("`@("`@("`@("`@("`@("`@('1H
M:7,@;W!T:6]N(&EN9&EC871E<R`@;6%W:R`@<VAO=6QD("!B92`@<F5C;VTM
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
M,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@
M("`@("`@("`@("`S"C(P,F0Q.3@*/"!-05=+*#$I("`@("`@("`@("`@("`@
M("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR
M,#8L,C`W8S(P,@H\("`@("`@8V]M92!F<F]M(&EN<'5T(&%N9"!A<F4@='EP
M:6-A;&QY('-T;W)E9"`@:6X@(&9I96QD<RX@("`H4V5E"CP@("`@("!S96-T
M:6]N(#0I+@HM+2T*/B!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@
M0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR,#DL,C$Q9#(P
M,PH\("`@("`@5&AE('1Y<&4@;V8@86X@97AP<F5S<VEO;B!I<R!D971E<FUI
M;F5D(&)Y(&ET<R`@8V]N=&5X="`@86YD"CP@("`@("!A=71O;6%T:6,@='EP
M92!C;VYV97)S:6]N(&]C8W5R<R!I9B!N965D960N("!&;W(@97AA;7!L92P@
M=&\*/"`@("`@(&5V86QU871E('1H92!S=&%T96UE;G1S"C(Q,V0R,#0*/"`@
M("`@("`@("`@>2`]('@@*R`R("`[("!Z(#T@>"`@(FAE;&QO(@HR,35D,C`U
M"CP@("`@("!4:&4@=F%L=64@<W1O<F5D(&EN('9A<FEA8FQE('D@=VEL;"!B
M92!T>7!E9"!N=6UE<FEC+B`@268@('@*,C,U+#(T,6,R,C4L,C(W"CP@("`@
M("!I9B!B;W1H(&]P97)A;F1S(&%R92!S=')I;F<@=&AE(&-O;7!A<FES;VX@
M(&ES("!S=')I;F<N("`@268*/"`@("`@(&5X86-T;'D@(&]N92!O<&5R86YD
M(&ES('-T<FEN9R!A;F0@869T97(@=')I;6UI;F<@<W!A8V5S(&%N9`H\("`@
M("`@=&%B<R!F<F]M("!T:&4@(&9R;VYT("!A;F0@(&)A8VL@('1H92`@<F5M
M86EN:6YG("!S=')I;F<@(&ES"CP@("`@("!E;G1I<F5L>2`@;G5M97)I8R`@
M:6X@(&9O<FTL('1H96X@=&AE('-T<FEN9R!I<R!C;VYV97)T960@=&\*/"`@
M("`@(&YU;6)E<B!A;F0@=&AE(&-O;7!A<FES;VX@:7,@;G5M97)I8SL@;W1H
M97)W:7-E+"!T:&4@;G5M97)I8PH\("`@("`@;W!E<F%N9"!I<R!C;VYV97)T
M960@=&\@<W1R:6YG(&%N9"!T:&4@8V]M<&%R:7-O;B!I<R!S=')I;F<N"CP@
M("`@("!4:&4@<F5S=6QT(&]F(&$@8V]M<&%R:7-O;B!I<R!N=6UE<FEC+"`P
M(&]R(#$N"BTM+0H^("`@("`@:68@8F]T:"!O<&5R86YD<R!A<F4@<W1R:6YG
M('1H92!C;VUP87)I<V]N(&ES('-T<FEN9SL@:68@;VYE"CX@("`@("!O<&5R
M86YD("!I<R`@<W1R:6YG+"!T:&4@;F]N+7-T<FEN9R!O<&5R86YD(&ES(&-O
M;G9E<G1E9"!A;F0*/B`@("`@('1H92!C;VUP87)I<V]N(&ES('-T<FEN9RX@
M(%1H92!R97-U;'0@:7,@;G5M97)I8RP@,2!O<B`P+@HR-3=A,C0T+#(T-0H^
M("`@("`@<F5P;&%C:6YG('X@=VET:"!T:&4@(FYO="!M871C:"(@;W!E<F%T
M;W(L("%^("P@<F5V97)S97,@=&AE"CX@("`@("!M96%N:6YG+B`@07,@('!A
M='1E<FXM86-T:6]N('!A:7)S+`HR-3AA,C0W"CX@("`@("`@("`@("]?"'(O
M('L@7PAA7PAC7PAT7PAI7PAO7PAN('T@("!A;F0@("`D,"!^("]?"'(O('L@
M7PAA7PAC7PAT7PAI7PAO7PAN('T*,C4Y83(T.2PR-30*/B`@("`@(&%R92!T
M:&4@<V%M92P@86YD(&9O<B!E86-H("!I;G!U="`@<F5C;W)D("!T:&%T("!M
M871C:&5S("!?"'(L"CX@("`@("!?"&%?"&-?"'1?"&E?"&]?"&X@(&ES(&5X
M96-U=&5D+B`@26X@9F%C="P@+U\(<B\@:7,@86X@05=+(&5X<')E<W-I;VX@
M=&AA=`H^("`@("`@:7,@97%U:79A;&5N="!T;R`H)#`@?B`O7PAR+RD@(&%N
M>7=H97)E("!E>&-E<'0@('=H96X@(&]N("!T:&4*/B`@("`@(')I9VAT('-I
M9&4@;V8@82!M871C:"!O<&5R871O<B!O<B!P87-S960@87,@86X@87)G=6UE
M;G0@=&\@80H^("`@("`@8G5I;'0M:6X@9G5N8W1I;VX@=&AA="!E>'!E8W1S
M(&$@(')E9W5L87(@(&5X<')E<W-I;VX@(&%R9W4M"CX@("`@("!M96YT+@HR
M-C%C,C4V+#(U-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`T"BTM+0H^("`@("`@
M05=+('5S97,@97AT96YD960@<F5G=6QA<B!E>'!R97-S:6]N<R!A<R!W:71H
M(%\(95\(9U\(<E\(95\(<"@Q*2X@(%1H90H^("`@("`@<F5G=6QA<B`@97AP
M<F5S<VEO;B!M971A8VAA<F%C=&5R<RP@:2YE+BP@=&AO<V4@=VET:"!S<&5C
M:6%L"C(V-&$R-C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`@-`HR-CAD,C8T"CP@
M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
M("`@("`@("`@("`@($U!5TLH,2D*,C<R+#(W,V,R-C@*/"`@("`@(')E<&QA
M8VEN9R!^('=I=&@@=&AE(")N;W0@;6%T8V@B(&]P97)A=&]R+"`A?B`L(')E
M=F5R<V5S('1H90H\("`@("`@;65A;FEN9RX@($%S("!P871T97)N+6%C=&EO
M;B!P86ER<RP*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52
M($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,C<U9#(V.0H\
M("`@("`@("`@("`O7PAR+R![(%\(85\(8U\(=%\(:5\(;U\(;B!]("`@86YD
M("`@)#`@?B`O7PAR+R![(%\(85\(8U\(=%\(:5\(;U\(;B!]"C(W-RPR.#)D
M,C<P"CP@("`@("!A<F4@=&AE('-A;64L(&%N9"!F;W(@96%C:"`@:6YP=70@
M(')E8V]R9"`@=&AA="`@;6%T8VAE<R`@7PAR+`H\("`@("`@7PAA7PAC7PAT
M7PAI7PAO7PAN("!I<R!E>&5C=71E9"X@($EN(&9A8W0L("]?"'(O(&ES(&%N
M($%72R!E>'!R97-S:6]N('1H870*/"`@("`@(&ES(&5Q=6EV86QE;G0@=&\@
M*"0P('X@+U\(<B\I("!A;GEW:&5R92`@97AC97!T("!W:&5N("!O;B`@=&AE
M"CP@("`@("!R:6=H="!S:61E(&]F(&$@;6%T8V@@;W!E<F%T;W(@;W(@<&%S
M<V5D(&%S(&%N(&%R9W5M96YT('1O(&$*/"`@("`@(&)U:6QT+6EN(&9U;F-T
M:6]N('1H870@97AP96-T<R!A("!R96=U;&%R("!E>'!R97-S:6]N("!A<F=U
M+0H\("`@("`@;65N="X*,C@T+#(X-60R-S$*/"`@("`@($%72R!U<V5S(&5X
M=&5N9&5D(')E9W5L87(@97AP<F5S<VEO;G,@87,@=VET:"!?"&5?"&=?"')?
M"&5?"'`H,2DN("!4:&4*/"`@("`@(')E9W5L87(@(&5X<')E<W-I;VX@;65T
M86-H87)A8W1E<G,L(&DN92XL('1H;W-E('=I=&@@<W!E8VEA;`HR.31C,C@P
M"CP@("`@("`@("`@(%Q?"&,@("`@("`@("`@(&UA=&-H97,@82!C:&%R86-T
M97(@9&5F:6YE9"`@8GD@('1H92`@<V%M90HM+2T*/B`@("`@("`@("`@(EQ?
M"&,B("`@("`@("`@;6%T8VAE<R!A(&-H87)A8W1E<B!D969I;F5D("!B>2`@
M=&AE("!S86UE"C,Q-2PS,39C,S`Q+#,P,@H\("`@("`@("`@("!?"'(Q7PAR
M,B!M871C:&5S(%\(<C$@9F]L;&]W960@:6UM961I871E;'D@8GD@7PAR,B`@
M*&-O;F-A=&5N82T*/"`@("`@("`@("`@("`@("!T:6]N*2X*+2TM"CX@("`@
M("`@("`@(%\(<C%?"'(R("`@("`@("`@;6%T8VAE<R`@7PAR,2`@9F]L;&]W
M960@(&EM;65D:6%T96QY("!B>2`@7PAR,@H^("`@("`@("`@("`@("`@("`@
M("`@("`@*&-O;F-A=&5N871I;VXI+@HS,3@L,S$Y8S,P-`H\("`@("`@("`@
M("!?"'(Q('P@7PAR,@H\("`@("`@("`@("`@("`@(&UA=&-H97,@7PAR,2!O
M<B!?"'(R("AA;'1E<FYA=&EO;BDN"BTM+0H^("`@("`@("`@("!?"'(Q('P@
M7PAR,B`@("`@(&UA=&-H97,@7PAR,2!O<B!?"'(R("AA;'1E<FYA=&EO;BDN
M"C,R,6,S,#8*/"`@("`@("`@("`@7PAR*B`@(&UA=&-H97,@7PAR(')E<&5A
M=&5D('IE<F\@;W(@;6]R92!T:6UE<RX*+2TM"CX@("`@("`@("`@(%\(<BH@
M("`@("`@("`@(&UA=&-H97,@7PAR(')E<&5A=&5D('IE<F\@;W(@;6]R92!T
M:6UE<RX*,S(S8S,P.`H\("`@("`@("`@("!?"'(K("`@;6%T8VAE<R!?"'(@
M<F5P96%T960@;VYE(&]R(&UO<F4@=&EM97,N"BTM+0H^("`@("`@("`@("!?
M"'(K("`@("`@("`@("!M871C:&5S(%\(<B!R97!E871E9"!O;F4@;W(@;6]R
M92!T:6UE<RX*,S(T83,Q,`H^("`@("`@("`@("!?"'(_("`@("`@("`@("!M
M871C:&5S(%\(<B!Z97)O(&]R(&]N8V4N"C,R-6$S,3(*/B`@("`@("`@("`@
M*%\(<BD@("`@("`@("`@;6%T8VAE<R!?"'(L('!R;W9I9&EN9R!G<F]U<&EN
M9RX*,S(W8S,Q-"PS,34*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@8VAA
M;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`@-0HM+2T*/B`@
M("`@(%1H92!I;F-R96%S:6YG('!R96-E9&5N8V4@;V8@;W!E<F%T;W)S(&ES
M(&%L=&5R;F%T:6]N+"`@8V]N+0H^("`@("`@8V%T96YA=&EO;B!A;F0@=6YA
M<GD@*"HL("L@;W(@/RDN"C,R.&$S,3<*/B`@("`@($9O<B!E>&%M<&QE+`HS
M,CEA,S$Y+#,R,`H^("`@("`@("`@("`O7EM?82UZ02U:75M?82UZ02U:,"TY
M72HD+R`@86YD"CX@("`@("`@("`@("]>6RTK73\H6S`M.5TK7"X_?%PN6S`M
M.5TI6S`M.5TJ*%ME15U;+2M=/ULP+3E=*RD_)"\*,S,P83,R,BPS,C,*/B`@
M("`@(&%R92!M871C:&5D(&)Y($%72R!I9&5N=&EF:65R<R`@86YD("!!5TL@
M(&YU;65R:6,@(&-O;G-T86YT<PH^("`@("`@<F5S<&5C=&EV96QY+B`@("!.
M;W1E("!T:&%T("`N("!H87,@('1O("!B92`@97-C87!E9"`@=&\@(&)E"C,S
M-&,S,C<*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.
M1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HM+2T*/B!697)S:6]N(#$N
M,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@
M("`@("`@("`@-0HS,SAD,S,P"CP@("`@("`@("`@(%\(<C\@("!M871C:&5S
M(%\(<B!Z97)O(&]R(&]N8V4N"C,T,&0S,S$*/"`@("`@("`@("`@*%\(<BD@
M(&UA=&-H97,@7PAR+"!P<F]V:61I;F<@9W)O=7!I;F<N"C,T,BPS-#-D,S,R
M"CP@("`@("!4:&4@:6YC<F5A<VEN9R!P<F5C961E;F-E(&]F(&]P97)A=&]R
M<R!I<R!A;'1E<FYA=&EO;BP@(&-O;BT*/"`@("`@(&-A=&5N871I;VX@86YD
M('5N87)Y("@J+"`K(&]R(#\I+@HS-#5C,S,T"CP@("`@("!&;W(@97AA;7!L
M92P*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,S0W+#,T.&0S,S4*/"`@
M("`@("`@("`@+UY;7V$M>D$M6EU;7V$M>D$M6C`M.5TJ)"\@(&%N9`H\("`@
M("`@("`@("`O7ELM*UT_*%LP+3E=*UPN/WQ<+ELP+3E=*5LP+3E=*BA;945=
M6RTK73];,"TY72LI/R0O"C,U,"PS-3-D,S,V"CP@("`@("!A<F4@;6%T8VAE
M9"!B>2!!5TL@:61E;G1I9FEE<G,@(&%N9"`@05=+("!N=6UE<FEC("!C;VYS
M=&%N=',*/"`@("`@(')E<W!E8W1I=F5L>2X@("!.;W1E("!T:&%T("`N(&AA
M<R!T;R!B92!E<V-A<&5D('1O(&)E(')E8V]G+0H\("`@("`@;FEZ960@87,@
M82!D96-I;6%L('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R
M92`@;F]T"CP@("`@("!S<&5C:6%L(&EN<VED92!C:&%R86-T97(@8VQA<W-E
M<RX*,S4T83,S."PS-#`*/B`@("`@(')E8V]G;FEZ960@87,@82!D96-I;6%L
M('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R90H^("`@("`@
M;F]T('-P96-I86P@:6YS:61E(&-H87)A8W1E<B!C;&%S<V5S+@H^(`HS.#EA
M,S<V"CX@("`@("!S=')I;F<N("!&;W(@97AA;7!L92P*,SDP83,W."PS.#`*
M/B`@("`@("`@("`@96-H;R`R-"`R-$4@?`H^("`@("`@("`@("!M87=K("=[
M('!R:6YT*"0Q/C$P,"P@)#$^(C$P,"(L("0R/C$P,"P@)#(^(C$P,"(I('TG
M"CX@("`@("`@("`@(#`@,2`Q(#$*,SDQ83,X,BPS.#0*/B`@("`@("0P(&%N
M9"`D,B!A<F4@<W1R:6YG(&%N9"`D,2!I<R!N=6UB97(@86YD('-T<FEN9RX@
M(%1H92!F:7)S=`H^("`@("`@8V]M<&%R:7-O;B`@:7,@(&YU;65R:6,L("!T
M:&4@<V5C;VYD(&ES('-T<FEN9RP@=&AE('1H:7)D(&ES"CX@("`@("!S=')I
M;F<@*#$P,"!I<R!C;VYV97)T960@=&\@(C$P,"(I+"!A;F0@=&AE(&QA<W0@
M:7,@<W1R:6YG+@HS.3-C,S@V+#,X.0H\(%9E<G-I;VX@,2XQ("`@("`@("`@
M3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`V
M"BTM+0H^("`@-2X@17AP<F5S<VEO;G,@86YD(&]P97)A=&]R<PH^("`@("`@
M5&AE(&5X<')E<W-I;VX@<WEN=&%X(&ES('-I;6EL87(@=&\@0RX@(%!R:6UA
M<GD@(&5X<')E<W-I;VYS"CX@("`@("!A<F4@(&YU;65R:6,@8V]N<W1A;G1S
M+"!S=')I;F<@8V]N<W1A;G1S+"!V87)I86)L97,L(&9I96QD<RP*/B`@("`@
M(&%R<F%Y<R!A;F0@9G5N8W1I;VYS+B!4:&4@:61E;G1I9FEE<B!F;W(@82`@
M=F%R:6%B;&4L("!A<G)A>0HS.39A,SDS"CX@5F5R<VEO;B`Q+C$N,B`@("`@
M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
M(#8*-#`P9#,Y-@H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C0P-&,T,#`*/"`@
M("`@('-T<FEN9RX@($9O<B!E>&%M<&QE+`HM+2T*/B!-05=+*#$I("`@("`@
M("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@
M34%72R@Q*0HT,#8L-#`X9#0P,0H\("`@("`@("`@("!E8VAO(#(T(#(T12!\
M"CP@("`@("`@("`@(&UA=VL@)WL@<')I;G0H)#$^,3`P+"`D,3XB,3`P(BP@
M)#(^,3`P+"`D,CXB,3`P(BD@?2<*/"`@("`@("`@("`@,"`P(#$@,0HT,3`L
M-#$S9#0P,@H\("`@("`@)#`@86YD("0R(&%R92!S=')I;F<@86YD("0Q(&ES
M(&YU;6)E<B!A;F0@<W1R:6YG+B`@5&AE(&9I<G-T"CP@("`@("!A;F0@('-E
M8V]N9"`@8V]M<&%R:7-O;G,@(&%R92`@;G5M97)I8R`@86YD('1H92!L87-T
M('1W;R!A<F4*/"`@("`@('-T<FEN9RX@($EN('1H92!S96-O;F0@(C$P,"(@
M:7,@8V]N=F5R=&5D('1O(#$P,"P@86YD(&EN('1H90H\("`@("`@=&AI<F0@
M,3`P(&ES(&-O;G9E<G1E9"!T;R`B,3`P(BX*-#$U+#0Q.&0T,#,*/"`@(#4N
M($5X<')E<W-I;VYS(&%N9"!O<&5R871O<G,*/"`@("`@(%1H92!E>'!R97-S
M:6]N('-Y;G1A>"!I<R!S:6UI;&%R('1O($,N("!0<FEM87)Y("!E>'!R97-S
M:6]N<PH\("`@("`@87)E("!N=6UE<FEC(&-O;G-T86YT<RP@<W1R:6YG(&-O
M;G-T86YT<RP@=F%R:6%B;&5S+"!F:65L9',L"CP@("`@("!A<G)A>7,@86YD
M(&9U;F-T:6]N<RX@5&AE(&ED96YT:69I97(@9F]R(&$@('9A<FEA8FQE+"`@
M87)R87D*-#4V830T,BPT-#,*/B`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T
M:&4@9F]R('-T871E;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H^("`@
M("`@:6YD97@@;V8@86X@87)R87DN"C0U-V$T-#4*/B`@("`@("`@("`@9F]R
M("@@7PAV7PAA7PAR(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(
M=%\(95\(;5\(95\(;E\(=`HT-3EC-#0W+#0T.0H\(%9E<G-I;VX@,2XQ("`@
M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
M("`@("`W"BTM+0H^("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C:"!I;F1E
M>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(=%\(85\(
M=%\(95\(;5\(95\(;E\(="X@(%1H90H^("`@("`@;W)D97(@('1H870@(%\(
M=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@7PAA7PAR
M7PAR7PAA7PAY(&ES(&YO=`H^("`@("`@9&5F:6YE9"X*-#8P830U,2PT-3(*
M/B`@("`@(%1H92!S=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;
M7PAE7PAX7PAP7PAR72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?
M"'!?"')=(&YO="!T;PH^("`@("`@97AI<W0N"C0V,6$T-30L-#4U"CX@("`@
M("!-=6QT:61I;65N<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I
M=&@@(&-O;F-A=&5N871I;VX*/B`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN
M('9A<FEA8FQE(%-50E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?
M"'(Q+%\(95\(>%\(<%\(<C)=(&ES"C0V-&$T-3D*/B!697)S:6]N(#$N,2XR
M("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@
M("`@("`@-PHT-C9D-#8P"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*-#<P+#0W
M,60T-C,*/"`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T:&4@9F]R('-T871E
M;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H\("`@("`@:6YD97@@;V8@
M86X@87)R87DN"C0W,V0T-C0*/"`@("`@("`@("`@9F]R("@@7PAV7PAA7PAR
M(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
M;E\(=`HT-S4L-#<W8S0V-@H\("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C
M:"!I;F1E>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(
M=%\(85\(=%\(95\(;5\(95\(;E\(="X@(%1H90H\("`@("`@;W)D97(@('1H
M870@(%\(=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@
M7PAA7PAR7PAR7PAA7PAY(&ES(&YO=`H\("`@("`@9&5F:6YE9"X*+2TM"CX@
M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
M("`@("`@("`@("`@($U!5TLH,2D*-#<Y+#0X,&0T-C<*/"`@("`@(%1H92!S
M=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;7PAE7PAX7PAP7PAR
M72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"')=(&YO="!T
M;PH\("`@("`@97AI<W0N"C0X,BPT.#-C-#8Y"CP@("`@("!-=6QT:61I;65N
M<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I=&@@(&-O;F-A=&5N
M871I;VX*/"`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN('9A<FEA8FQE(%-5
M0E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"'(Q+%\(95\(>%\(
M<%\(<C)=(&ES"BTM+0H^(`HU,C)A-3`Y+#4Q,`H^("`@("`@("`@("!/4E,@
M("`@("`@=&5R;6EN871E<R!E86-H(')E8V]R9"!O;B!O=71P=70L(&EN:71I
M86QL>2`]"CX@("`@("`@("`@("`@("`@("`@("`B7&XB+@HU,C-A-3$R+#4Q
M,PH^("`@("`@("`@("!23$5.1U1(("`@;&5N9W1H('-E="!B>2!T:&4@;&%S
M="!C86QL('1O("!T:&4@(&)U:6QT+6EN"CX@("`@("`@("`@("`@("`@("`@
M("!F=6YC=&EO;BP@;6%T8V@H*2X*-3(U8S4Q-0H\(%9E<G-I;VX@,2XQ("`@
M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
M("`@("`X"BTM+0H^("`@("`@("`@("!24R`@("`@("`@:6YP=70@<F5C;W)D
M('-E<&%R871O<BP@:6YI=&EA;&QY(#T@(EQN(BX*-3(V834Q-PH^("`@("`@
M("`@("!24U1!4E0@("`@:6YD97@@<V5T(&)Y('1H92!L87-T(&-A;&P@=&\@
M;6%T8V@H*2X*-3(W834Q.2PU,C`*/B`@("`@("`@("`@4U5"4T50("`@('5S
M960@=&\@8G5I;&0@;75L=&EP;&4@87)R87D@<W5B<V-R:7!T<RP@:6YI+0H^
M("`@("`@("`@("`@("`@("`@("`@=&EA;&QY(#T@(EPP,S0B+@HU,S)C-3(U
M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
M("`@("`@("`@("`@("`@($U!5TLH,2D*+2TM"CX@5F5R<VEO;B`Q+C$N,B`@
M("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@
M("`@(#@*-3,V+#4S-V0U,C@*/"`@("`@("`@("`@3U)3("`@("`@('1E<FUI
M;F%T97,@96%C:"!R96-O<F0@;VX@;W5T<'5T+"!I;FET:6%L;'D@/0H\("`@
M("`@("`@("`@("`@("`@("`@(EQN(BX*-3,Y+#4T,&0U,CD*/"`@("`@("`@
M("`@4DQ%3D=42"`@(&QE;F=T:"!S970@8GD@=&AE(&QA<W0@8V%L;"!T;R`@
M=&AE("!B=6EL="UI;@H\("`@("`@("`@("`@("`@("`@("`@9G5N8W1I;VXL
M(&UA=&-H*"DN"C4T,F0U,S`*/"`@("`@("`@("`@4E,@("`@("`@(&EN<'5T
M(')E8V]R9"!S97!A<F%T;W(L(&EN:71I86QL>2`](")<;B(N"C4T-&,U,S(*
M/"`@("`@("`@("`@4E-405)4("`@(&EN9&5X('-E="!B>2!T:&4@;&%S="!C
M86QL('1O(&UA=&-H*"DN"BTM+0H^($U!5TLH,2D@("`@("`@("`@("`@("`@
M("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C4T
M-BPU-#=D-3,S"CP@("`@("`@("`@(%-50E-%4"`@("!U<V5D('1O(&)U:6QD
M(&UU;'1I<&QE(&%R<F%Y('-U8G-C<FEP=',L(&EN:2T*/"`@("`@("`@("`@
M("`@("`@("`@('1I86QL>2`](")<,#,T(BX*-30X834S-0H^(`HU-C4L-38W
M8S4U,BPU-3,*/"`@("`@("`@("`@;&5N9W1H*%\(<RD@(&QE;F=T:"@I"CP@
M("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H(&]F('-T<FEN9R!?
M"',[('=I=&AO=70@(&%N("!A<F=U+0H\("`@("`@("`@("`@("`@(&UE;G0L
M(')E='5R;G,@=&AE(&QE;F=T:"!O9B`D,"X*+2TM"CX@("`@("`@("`@(&QE
M;F=T:"A?"',I"CX@("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H
M(&]F('-T<FEN9R!?"',N"C4X-V$U-S0L-3<U"CX@("`@("`@("`@("`@("`@
M86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM7PAA7PAT+B`@(%-E92`@=&AE
M("!D97-C<FEP=&EO;B`@;V8*/B`@("`@("`@("`@("`@("!P<FEN=&8H*2!B
M96QO=RX*-3@X834W-RPU-SD*/B`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
M*2`@<W5B*%\(<BQ?"',I"CX@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/B`@("`@
M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HU.#EA-3@Q+#4X-`H^("`@
M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
M/B`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CX@("`@("`@("`@("`@("`@:6YD
M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
M92!S=69F:7@*/B`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
M(%\(:2!I<R!R971U<FYE9"X*-3DQ8S4X-BPU.#<*/"!697)S:6]N(#$N,2`@
M("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@
M("`@("`@.0HM+2T*/B`@("`@("`@("`@=&]L;W=E<BA?"',I"CX@("`@("`@
M("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@7PAS('=I=&@@86QL('5P<&5R
M(&-A<V4@8VAA<F%C=&5R<PHU.31A-3DQ"CX@5F5R<VEO;B`Q+C$N,B`@("`@
M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
M(#D*-3DX9#4Y-`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C8P,BPV,#-C-3DX
M"CP@("`@("`@("`@("`@("`@86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM
M7PAA7PAT+B`@(%-E92`@=&AE("!D97-C<FEP=&EO;B`@;V8*/"`@("`@("`@
M("`@("`@("!P<FEN=&8H*2!B96QO=RX*+2TM"CX@34%72R@Q*2`@("`@("`@
M("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!
M5TLH,2D*-C`U+#8P-V0U.3D*/"`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
M*2`@<W5B*%\(<BQ?"',I"CP@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/"`@("`@
M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HV,#DL-C$R9#8P,`H\("`@
M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
M/"`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CP@("`@("`@("`@("`@("`@:6YD
M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
M92!S=69F:7@*/"`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
M(%\(:2!I<R!R971U<FYE9"X*-C$T+#8Q-60V,#$*/"`@("`@("`@("`@=&]L
M;W=E<BA?"',I"CP@("`@("`@("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@
M7PAS('=I=&@@86QL('5P<&5R(&-A<V4@8VAA<F%C=&5R<PHV-30L-C8W9#8S
M.0H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$P"CP@"CP@"CP@"CP@
M"CP@"CP@"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*-C@Q838U
M-"PV-C<*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA
M;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q,`H^(`H^(`H^
M(`H^(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C<R
M,"PW,S-D-S`U"CP@"CP@"CP@"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T
M(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@("`@("`@("`@("`@("`@,3$*/"`*
M/"`*/"`*/"`*/"`*/"`*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%53
M15(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\
M(`HW-#AA-S(Q+#<S,PH^(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S
M="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$Q"CX@
M"CX@"CX@"CX@"CX@"CX@"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*
M/B`*-S@W+#<Y.60W-S$*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA
M<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q,@H\
M(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@
M55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@
M"CP@"C@Q,6,W.#,*/"`@("`@("`@("`@("`@("!R971U<FYS(#`@86YD("!?
M"$$@(&ES("!U;F-H86YG960N("`@3W1H97)W:7-E+"`@86QL"BTM+0H^("`@
M("`@("`@("`@("`@(')E='5R;G,@,"!A;F0@7PA!("!I<R`@<V5T("!E;7!T
M>2X@("!/=&AE<G=I<V4L("!A;&P*.#$S83<X-BPW.3D*/B`*/B`*/B`*/B!6
M97)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@
M("`@("`@("`@("`@("`@("`Q,@H^(`H^(`H^(`H^(`H^(`H^(`H^($U!5TLH
M,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@
M("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C@U,BPX-C5D.#,W"CP@"CP@"CP@
M"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y
M.3(@("`@("`@("`@("`@("`@("`@,3,*/"`*/"`*/"`*/"`*/"`*/"`*/"!-
M05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@
M("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\(`HX-SEA.#4R+#@V-0H^(`H^
M(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q
M,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$S"CX@"CX@"CX@"CX@"CX@"CX@
M"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
M("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*/B`*.3$W83DP-"PY,#4*
M/B`@("`@(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE
M($5.1"!?"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CX@("`@("!S
M:61E<F5D(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN
M7PAS(&%R92!E>&5C=71E9"X*.3$X83DP-RPY,3(*/B`@("`@($EN('1H92!E
M>&%M<&QE+"!T:&4@87-S:6=N;65N="!V/3$@('1A:V5S("!P;&%C92`@869T
M97(@('1H90H^("`@("`@0D5'24X@(%\(85\(8U\(=%\(:5\(;U\(;E\(<R`@
M87)E("!E>&5C=71E9"P@(&%N9"`@=&AE(&1A=&$@<&QA8V5D(&EN('8@:7,*
M/B`@("`@('1Y<&5D(&YU;6)E<B!A;F0@<W1R:6YG+B`@26YP=70@:7,@=&AE
M;B!R96%D("!F<F]M("!F:6QE("!!+@H^("`@("`@3VX@(&5N9"`@;V8@9FEL
M92!!+"!T(&ES('-E="!T;R!T:&4@<W1R:6YG(")H96QL;R(L(&%N9"!"(&ES
M"CX@("`@("!O<&5N960@9F]R(&EN<'5T+B`@3VX@96YD(&]F(&9I;&4@0BP@
M('1H92`@14Y$("!?"&%?"&-?"'1?"&E?"&]?"&Y?"',@(&%R90H^("`@("`@
M97AE8W5T960N"CDQ.6$Y,30L.3$U"CX@("`@("!0<F]G<F%M(&9L;W<@870@
M=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(;B![7PAA7PAC7PAT7PAI7PAO7PAN
M?2!L979E;"`@8V%N("!B92`@8VAA;F=E9`H^("`@("`@=VET:"!T:&4*.3(Q
M8SDQ-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$T"BTM+0H^("`@("`@("`@("!N
M97AT("`@86YD"CDR-&$Y,C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@
M8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-`HY,CAD
M.3(T"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13
M("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,R+#DS,V,Y,C@*/"`@("`@
M(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE($5.1"!?
M"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CP@("`@("!S:61E<F5D
M(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN7PAS(&%R
M92!E>&5C=71E9"X*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,U+#DT
M,&0Y,CD*/"`@("`@($EN('1H92!E>&%M<&QE+"!T:&4@87-S:6=N;65N="!V
M/3$@('1A:V5S("!P;&%C92`@869T97(@('1H90H\("`@("`@0D5'24X@(%\(
M85\(8U\(=%\(:5\(;U\(;E\(<R`@87)E("!E>&5C=71E9"P@(&%N9"`@=&AE
M(&1A=&$@<&QA8V5D(&EN('8@:7,*/"`@("`@('1Y<&5D(&YU;6)E<B!A;F0@
M<W1R:6YG+B`@26YP=70@:7,@=&AE;B!R96%D("!F<F]M("!F:6QE("!!+@H\
M("`@("`@3VX@(&5N9"`@;V8@9FEL92!!+"!T(&ES('-E="!T;R!T:&4@<W1R
M:6YG(")H96QL;R(L(&%N9"!"(&ES"CP@("`@("!O<&5N960@9F]R(&EN<'5T
M+B`@3VX@96YD(&]F(&9I;&4@0BP@('1H92`@14Y$("!?"&%?"&-?"'1?"&E?
M"&]?"&Y?"',@(&%R90H\("`@("`@97AE8W5T960N"CDT,BPY-#-D.3,P"CP@
M("`@("!0<F]G<F%M(&9L;W<@870@=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(
M;B![7PAA7PAC7PAT7PAI7PAO7PAN?2!L979E;"`@8V%N("!B92`@8VAA;F=E
M9`H\("`@("`@=VET:"!T:&4*.30U9#DS,0H\("`@("`@("`@("!N97AT("`@
M86YD"CDU-F0Y-#$*/"`*.3@S83DV.2PY-S`*/B`@("`@("`@("`@)#$@?B`O
M8W)E9&ET?&=A:6XO('L@<W5M("L]("0R('T*/B`@("`@("`@("`@)#$@?B`O
M9&5B:71\;&]S<R\@('L@<W5M("T]("0R('T*.3@T83DW,@H^("`@("`@("`@
M("!%3D0@>R!P<FEN="!S=6T@?0HY.#5A.3<T"CX@("`@("`U+B!S;W)T(&$@
M9FEL92P@8V]M<&%R:6YG(&%S('-T<FEN9PHY.#=C.3<V+#DW-PH\(%9E<G-I
M;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@
M("`@("`@("`@("`@(#$U"BTM+0H^("`@("`@("`@("![(&QI;F5;3E)=(#T@
M)#`@(B(@?2`@(R!M86ME('-U<F4@;V8@8V]M<&%R:7-O;B!T>7!E"CX@("`@
M("`@("`@("`@("`@("`@("`@("`@("`C(&EN(&-A<V4@<V]M92!L:6YE<R!L
M;V]K(&YU;65R:6,*.3@X83DW.2PY.#$*/B`@("`@("`@("`@14Y$('L@(&ES
M;W)T*&QI;F4L($Y2*0H^("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@/#T@
M3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/B`@("`@("`@("`@?0HY.#EA.3@S
M"CX@("`@("`@("`@("-I;G-E<G1I;VX@<V]R="!O9B!!6S$N+FY="CDY,F$Y
M.#<*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@
M,3DY,B`@("`@("`@("`@("`@("`@("`Q-0HY.31D.3@X"CP@34%72R@Q*2`@
M("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@
M("`@($U!5TLH,2D*.3DX+#DY.60Y.3$*/"`@("`@("`@("`@)#$@?B`O8W)E
M9&ET?&=A:6XO('L@<W5M("L]("0R('T*/"`@("`@("`@("`@)#$@?B`O9&5B
M:71\;&]S<R\@('L@<W5M("T]("0R('T*,3`P,60Y.3(*/"`@("`@("`@("`@
M14Y$('L@<')I;G0@<W5M('T*,3`P,V,Y.30*/"`@("`@(#4N('-O<G0@82!F
M:6QE+"!C;VUP87)I;F<@87,@<W1R:6YG"BTM+0H^($U!5TLH,2D@("`@("`@
M("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-
M05=+*#$I"C$P,#4L,3`P-F0Y.34*/"`@("`@("`@("`@>R!L:6YE6TY272`]
M("0P("(B('T@(",@;6%K92!S=7)E(&]F(&-O;7!A<FES;VX@='EP90H\("`@
M("`@("`@("`@("`@("`@("`@("`@("`@(R!I;B!C87-E('-O;64@;&EN97,@
M;&]O:R!N=6UE<FEC"C$P,#@L,3`Q,&0Y.38*/"`@("`@("`@("`@14Y$('L@
M(&ES;W)T*&QI;F4L($Y2*0H\("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@
M/#T@3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/"`@("`@("`@("`@?0HQ,#$R
M9#DY-PH\("`@("`@("`@("`C:6YS97)T:6]N('-O<G0@;V8@05LQ+BYN70HQ
M,#(V9#$P,3`*/"`*,3`U,"PQ,#8S9#$P,S,*/"`*/"`*/"`*/"!697)S:6]N
M(#$N,2`@("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@
M("`@("`@("`@("`Q-@H\(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@
M("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@
M("!-05=+*#$I"CP@"CP@"CP@"C$P.#!A,3`U,2PQ,#8S"CX@"CX@"CX@5F5R
M<VEO;B`Q+C$N,B`@("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@
M("`@("`@("`@("`@("`@,38*/B`*/B`*/B`*/B`*/B`*/B`*/B!-05=+*#$I
M("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@
M("`@("`@34%72R@Q*0H^(`H^(`H^(`HQ,3$U+#$Q,CED,3`Y-PH\(`H\(`H\
M(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$W"CP@"CP@"CP@"CP@"CP@"CP@
M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
M("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*,3$T-V$Q,3$V+#$Q
M,CD*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-PH^(`H^(`H^(`H^
M(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-
M04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C$Q-C-D
M,3$T-`H\(`HQ,38U8S$Q-#8*/"`@("`@(%\(95\(9U\(<E\(95\(<"`H,2D*
M+2TM"CX@("`@("!?"&5?"&=?"')?"&5?"'`H,2D*,3$W.2PQ,3DU9#$Q-3D*
M/"`*/"`*/"`*/"`*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@
M8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q.`H\(`H\
M(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%
M4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@"CP@
M"C$R,3!D,3$W,PH\(`HQ,C(R+#$R-3%C,3$X-0H\(`H\(`H\(`H\(`H\(`H\
M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\
M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@
M("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@
M(#$Y"BTM+0H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU
?;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$X"F%S
`
end
SHAR_EOF
echo 'uudecoding file doc.diff' &&
uudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
chmod 0644 doc.diff ||
echo 'restore of doc.diff failed'
Wc_c="`wc -c < 'doc.diff'`"
test 22396 -eq "$Wc_c" ||
	echo 'doc.diff: original size 22396, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
rm -f _shar_seq_.tmp
echo You have unpacked the last part
exit 0

exit 0 # Just in case...
-- 
        Andrew Patrick acting as Comp.Sources.Reviewed Moderator
              Department of Communications, Ottawa, CANADA
                         csr@calvin.dgbt.doc.CA
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads