..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Notation: item | item=choose one; ?item=zero or one item; terminals: SMALL CAPS, underlined or punctuation other than bold ()?| (parens are terminals only in rules 19, 25, 51.1, 54, | only in 55). item s ...=zero or more items, separated by s; item s !..=one or more items, separated by s; with s=";", a trailing ";" is optional; s is one of: empty "," ";" .Abbreviated non-terminals: b=binding13; d=declaration11; e=expression19; n=name56; s=statement14; t=type36.20 Dec 82Comments: =obsolete; =efficiency hack; =unsafe; =machine dependent; n56 means n is defined in rule 56; n2=n (the subscript is only for the desugaring). CLRMFullGram.pressCedar Full Language Syntax3.3 1 module ::= DIRECTORY (nd ?( : TYPE ?nt ) ?(USING [ nu, ... ] ) ), ... ; ( interface | implementation ) 2 interface ::= nm, !.. : ?CEDAR DEFINITIONS ?locks?(IMPORTS ( (niv : | ) nit ), ...)?(SHARES ns, ...) ~ ?access12 { ?open6 (d | b); !.. } . 3 implementation ::= nm : ?CEDAR ?( SAFE | UNSAFE )( PROGRAM ?drType42 | MONITOR ?drType42 ?locks )?(IMPORTS ( (niv : | ) nit ), ...) ?(EXPORTS ne, ...)?(SHARES ns, ...) ~ ?access12 block .4 locks ::= LOCKS e ?(USING nu: t)3.4 5 block ::= ?(CHECKED | UNCHECKED | TRUSTED) { ?open ?enable ?body ?(EXITS (n, !..=>s); ...) } --In 3, 13, 14. 6 open ::= OPEN ( n ~~ e | e ), !.. ;In 2, 5, 17. The ~~ may be written as :. 7 enable ::= ENABLE (enChoice | {enChoice; ...}); --In 5, 17. 8 enChoice ::=( e, !.. | ANY ) => s --In 7, 27.1. 9 body ::= (d | b); !.. ; s; ... | s; !.. --In 5, 17. 3.511 declaration ::= n, !.. : ?access varTC40In 2, 9, 43. VAR, READONLY only for interface var.12 access ::= PUBLIC | PRIVATE --In 2, 3, 11, 13, 50, 51, 53.13 binding ::= n, !.. : ?access t ~ ( e | t2 -- if t=TYPE-- | CODE | ?TRUSTED MACHINE CODE { (e, ...); ... } | ?INLINE ?(ENTRY | INTERNAL) block5 )In 2, 9. The ~ may be written as =. ENTRY or INTERNAL may be writtenbefore t. Block or MACHINE CODE only for proc types.3.614 statement ::= e1_e2 | e | block5 | escape | loop | NULL--In 5, 9, 17, 19. 16 escape ::= GOTO n | GO TO n | EXIT | CONTINUE | LOOP |RETRY | REJECT | (RETURN | RESUME) ?e | e _ STATE17 loop ::= ?iterator ?(WHILE e | UNTIL e) DO ?open6 ?enable7 ?body9 ?(REPEAT (n, !..=>s); ...) ENDLOOP18 iterator ::= THROUGH e | FOR (n : t | n) ( ?DECREASING IN e | _ e1 , e2)e is a subrange. In FOR n: t ..., n is readonly.3.719 expression ::= n | literal57 | (e) | application26 | (e | typeName37) . (9) n | prefixOp e | e1 infixOp e2 | e1 AND (2) e2 | e1 OR (1) e2 | e ^ (9) | STOP | ERROR | [ argBinding27 ] | builtIn [ e, ... ?applEn27.1] | funnyAppl e ?( [?argBinding27 ?applEn27.1] ) |s | subrange25 | if28 | select29 | safeSelect32 | withSelect34 Precedence is in bold in rules 19-21. All operators associate to the left except_, which associates to the right. Application has highest precedence. Subrangeonly after IN or THROUGH. s only in if28 and select choices30 33 35.20 prefixOp ::= @ (8) | (7) | (~ | NOT) (3)21 infixOp ::= * | / | MOD (6) | + | (5) | relOp (4) |_ (0)22 relOp ::= ?NOT (?~ (= | < | >) | <= | >= | # | IN) --In 21, 30.23 builtIn ::= -- These are enumerated in Table 45.24 funnyAppl ::= FORK | JOIN | WAIT | NOTIFY | BROADCAST |SIGNAL | ERROR | RETURN WITH ERROR | NEW | START |RESTART | TRANSFER WITH | RETURN WITH25 subrange ::= ?typeName37 ( [ e1 .. e2 ] | [ e1 .. e2 ) | ( e1 .. e2 ] | ( e1 .. e2 ) ) --In 19, 39, 48.26 application ::= e [ ?argBinding ?applEn ]27 argBinding ::= (n ~ (e | | TRASH )), !.. | (e | | TRASH), !..In 19, 26. The ~ may be written as :. NULL may be written for TRASH.27.1applEn ::= ! enChoice8; ... -- In 19, 26.3.828 if ::= IF e1 THEN e2 ?(ELSE e3)29 select ::= SELECT e FROM choice; ... endChoice The ";" is "," in an expression, here and in 32 and 34.30 choice ::= (?relOp22 e1 ), !..=> e231 endChoice ::= ENDCASE ?(=> e3) --In 29, 32, 34.32 safeSelect ::=WITH e SELECT FROM safeChoice; ... endChoice3133 safeChoice ::= n : t => e234 withSelect ::= WITH (n1 ~~ e1 | e1 ) SELECT ?e11 FROM withChoice; ... endChoice31 --The ~~ may be written as :.35 withChoice ::= n2 => e2 | n2, n2, !.. => e2 3.936 type ::= typeName | builtInType | typeCons37 typeName ::= n1 | typeName . n2 | typeName[e] | n2 typeName --In 19, 25, 36, 49.38 builtInType ::= INT | REAL | TYPE | ATOM | CONDITION | MONITORLOCK | LONG CARDINAL | ?LONG UNSPECIFIED | MDSZone | ?UNCOUNTED ZONESee Table 42. TYPE only in a b or an interface's d. 39 typeCons ::= subrange25 | transferTC40 | arrayTC44 | seqTC45 | descriptorTC45.1 | refTC46 | listTC47 |pointerTC48 | relativeTC49 | recordTC50 | unionTC52 |enumTC54 | defaultTC5540 varTC ::= ( | READONLY | VAR) t | ANY In 11, 4548. ANY only in refTC. VAR only in interface decl.41 transferTC ::=?(SAFE | UNSAFE) xfer ?drType 41.1xfer ::= PROCEDURE | PROC | PORT | PROGRAM | PROCESS | SIGNAL | ERROR42 drType ::= ?fields1 RETURNS fields2 | fields1 --In 3, 41.43 fields ::= [d11, ... ] | [t, ... ] | ANY --In 42, 50, 52. ANY only in 42.44 arrayTC ::= ?PACKED ARRAY ?t1 OF t245 seqTC ::= ?PACKED SEQUENCE tag53 OF tLegal only as last type in a recordTC or unionTC.45.1descriptorTC ::= ?LONG DESCRIPTOR FOR varTC40varTC must be an array type.46 refTC ::= REF ?varTC40 47 listTC ::= LIST OF varTC4048 pointerTC ::= ?LONG ?ORDERED ?BASE POINTER ?subrange25 ?(TO varTC40) | POINTER TO FRAME [ n ]Subrange only in a relativeTC; no typeName37 on it.49relativeTC ::= typeName37 RELATIVE tt a pointer or descriptor type, typeName a base pointer type.50 recordTC ::= ?access12 ( ?MONITORED RECORD fields43 | MACHINE DEPENDENT RECORD (mdFields | fields43) )51 mdFields ::= [( (n pos), ... : ?access12 t), ...] -- In 50, 52.51.1pos ::= ( e1 ?(: e2 .. e3) ) -- In 51, 53.52 unionTC ::= SELECT tag FROM( n, ... => ( fields43 | mdFields51 | NULL) ), ... ?, ENDCASE Legal only as last type in a recordTC or unionTC.53 tag ::= (n ?pos51.1 : ?access12 | (COMPUTED|OVERLAID) ) (t | *) --In 44, 52. * only in unionTC.54 enumTC ::= {n, ...} | MACHINE DEPENDENT {(?n (e) | n), ...}55 defaultTC ::= t _ | t _ e | t _ e | TRASH | t _ TRASHdefaultTC legal only as the type in a decl in a body9 or field43 (n: t _ e), in aTYPE binding13, or in NEW. Note the terminal |. TRASH may be written NULL.3.256 name ::= letter (letter | digit)...57 literal ::= num ?( ( D|d | B|b ) ?num ) -- INT literal. |digit (digit |A|B|C|D|E|F) ... ( H|h ) ?num -- Hex INT literal. |?num . num ?exponent | num exponent -- REAL literal. |' extendedChar | digit !.. C | " extendedChar ... " ?L | $ n58 exponent ::= (E|e) ?(+ | ) num59 num ::= digit !..60 extendedChar ::= space | \ extension | anyCharNot'"Or\ 61 extension ::= digit1 digit2 digit3 | n|N | r|R | t|T | b|B | f|F | l|L | \ | ' | "lp\Rqr>srsr"t5r> $(RsrE8srsr"srsrsr!srsr#srqrqsrdprsr dprsr dprsrdprsr dprsrdprO*qrA'pr!pr.I hujfvr>wXxyxwxfVqfxwxyxwxfVqfxwWdx/wyxdqdxwxwxwxwxWcLwx wxwar>wXxaqataxwxwyxy xwxW` wyxwxwx_q>` xXwxwx_q` xwxwW^xxwyx^2q^xxwxwx^r^xxwx^r^xxwxwxwxwx\r>w Xx\q\xwyxwxyxwxyxwW[(xyxwx[nr[(xwxyxwx[nr[(xwxwWYyxwxwxY^qYxwxwxY^qYxwxwxwyxY^qYxwWWxwyxWqWxwxwxXBrWxVTr>wxXwxyxwyxVqVTxwUH%Svr>wxXwxwyxwxyxwxywxWRUwxwxwxwyxwxwxwxwxzGPr>wXyxwxwxwxwxWOzG'yNr>wXxyxwxwx wxwxzG Lr>wXxwxwxyxwxzGKr>wXxwxwxwxwxwxwzGxXwxzG JB%Hvr>wz yGwxXwxwx IrWGzG tztzFr>wXxyxwxyzGDr>wzwXxwxwx wWC xwxBrC xzGtzxXwxyxwWAaxwyxyGxXwxwxwxwW?xwyxwyxwxywx@#r?xwW>zG$tztzW=at5zG<%;-vr>wzwXx:r;-x:r;-xwxwx;sr;-xwxwxwxyW9zG8Hr>wXxyxwxyGxXwxyxwxyxwxyxwW6xyxwxyxwxwyxwxywxwxwxy5@r>wXxwxwyxwxyxwxW3yGxXwx4r3xwx4r3xwx4r3xW28yGxXwxwyxwxwxwxwxy0r>wXxyxwxW/0yGxXwxwxwxwxwy xyxwx.r/0x.r/0wW-zGtz- %+vr>wzwXxwx+r+xwxK+cy+i+cy+wx +r+xwxW*wxwx*]r*wxyG{yxXwxW( wx(Mr(x (Mr>(wxX(Mr(xyG{yxX(Mr>(wxX(Mr(xyG{yxX(Mr>(wxXW&yG{yxXwxyxwxyxwx '1r&xwxW%gwx%r%gxwxW# wxwx $)r#xwx$)r#xwxwW"_xwx"r"_xwx"r"_xwx"r"_xwx "r"_xwx "r"_xW!!z G{z;WNW tztz rzr>z!rwXxy{yxwxy{yxwxwxwxywxy{yr>wXxwxwxyxy{yxwxwxy{yxwxy{yxwxy{yr>wXxwyxwxwxwxwxwxwxwxwxwxywxzGr>wXx&r>wXxyxwxyxwxyxwxyxwxyxwWyxwxyxwxyG xXwxyxwxyxwW xyxwxyGxXwxyGr>wXxwxrxWwxrxrxwxrxrxypwxxyrxrxwxy#rxrxqywxzGYr>w Xxwx wx r>w XxwxwxwxwxyxwxwxwxwxwxwxywxwW zG&tztz rwXx Yr xwxzG  N%)fv,r>wXxyxfVrfxyxfVrfxwyxfVrfw,dr>wXxyxyxwx -zczG4,b2r>wXxwxbxrb2xarb2xwxwxar,`>wXxyxwx`Dr`wzG,^r>w Xyx|xyG| xXwx|_(r,]^>w Xx ]r,[>xw Xxyxwx[pr[x[pr[xwx[pr[xwyGxXwx[pr[xyx-zZwx ZTrZzG!,Xr>xw XxXDrXxXDrXxwyGxXDrXxXXDrXxwxXDrXx,W~%)Vv,r>wzxXwx wx wx,Tr>wXxTErTxwx TErTxwx w-zRxRrRxzG,Q;r>w Xxyxwxyxwxyxwxyxwxyxwx-zOy xwxyxyxwxwyG xXwx-zN3yxwxwy G-zLztz",Kqr>wXxKrKqxwx KrKqxwxKrKqxwx-zIJ3rIxwx J3rIxwxJ3rIxwxJ3rIxw-zHix HrHixwx HrHixwxHrHixwxHrHixw-zFxG+rFxwx G+r,Ea>wXxwxwxyxwxywxwxyx-zD#zG tyztz,Br>w Xyxwxywxwx,Arwyxwxyxwxyxwxyxw-z?xyxwyGxXwxy,>r>wXxwx=r>xyx=r>xwx=r>zG ,wXxwXxwxyxyxwx:r:xyx:r,9?>wXxwxyxyx9r9?xyx-z8zG,,6}rxw Xxwyxy GxX6r-z5?zG,3r>wXxyxwx4r3x,27r>wXxyGx2}r,0>xwXxwyGwyxXwxyxyG-z//wx/ur//ywyxX/ur//wxwxyGxX-z-zG".7r-z,,mrxw Xx,r,mxyx-z+/zG<,)r>wXxwx)r)xwxwyxyx)r)xw-z('xyG xXyxwxwx(mr('wxw,&r>xwXxwxwxwxwxwx&r&xwxwxzG ,%rxwXx3`$y3%$r%xwx$r%x$r%wx<$ywXxyxy-z!wxwxwx"9r!xwx"9r!xwxywxwxwxwxyw-z zG,,1r>wXxwxwxwr1xwxwr1xwxwywywxwx-z wxwxwzGyz,)r>wxXwxwxwxyxyxwxJyK)KyL0)wxwxwx,r>wXxwxwxAmByxwxy-zDzG+rDzxrDzxzxz-ztzLrztzyztztz,A%)v,r>wzwXxwxwxw,*r>wXxwx9:'*wx:;F*wxT*wxwxwxzGtzxXw-zxwxwx4Un5]wx5n6wx6n7wx8Jn9iwx9n:wx;n;wxwxwx>n @ wx@enA,wxwxzGtzxXw-z"x wxwxzGtzxXw-zxwxwx=f>wxwxwxLpfMWwx,r>wXxwx6 6wx7U 7wxwxwxwx, r>wXxw, r>w Xxwx wzGxX, r>wXx Hr x Hr x Hr xw-zx56wx6#7wx99wx9 :wx;o<`wx<=wx>?nwx?@wxAyB.wxBCmwxDucDwxE0FwxwxwxTVk( ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Notation: item | item=choose one; ?item=zero or one item; terminals: SMALL CAPS, underlined or punctuation other than bold ()?| (parens are terminals only in rules 19, 25, 45). item s ...=zero or more items, separated by s; item s !..=one or more items, separated by s; with s=";", a trailing ";" is optional; s is one of: empty "," ";" .Abbreviated non-terminals: b=binding13; d=declaration11; e=expression19; n=name56; s=statement14; t=type36.20 Dec 82Comments: n56 means n is defined in rule 56; n2=n (the subscript is only for the desugaring). CLRMSafeGram.pressCedar Safe Language Syntax3.3 1 module ::=DIRECTORY (nd ?(: TYPE nt) ?(USING [nu, ...]) ), ... ; ( interface | implementation ) 2 interface ::= nm, !.. : CEDAR DEFINITIONS ?locks?(IMPORTS ( (niv : | ) nit ), ...) ~ { ?open6 (d | b); !.. } . 3 implementation ::= nm : CEDAR ( PROGRAM ?drType42 | MONITOR ?drType42 ?locks )?(IMPORTS ( (niv : | ) nit ), ...) ?(EXPORTS ne, ...) ~ block .3.1locks ::= LOCKS e ?(USING nu: t)3.4 5 block ::= ?(CHECKED | UNCHECKED | TRUSTED) { ?open ?enable ?body ?(EXITS (n, !..=>s); ...) } --In 3, 13, 14. 6 open ::= OPEN (n ~~ e | e), !.. ; --In 2, 5. 7 enable ::= ENABLE { enChoice; ... }; 8 enChoice ::=( e, !.. | ANY ) => s --In 7, 27.1. 9 body ::= (d | b); !.. ; s; ... | s; !.. --In 5, 17. 3.511 declaration ::= n, !.. : ?(PUBLIC | PRIVATE) varTC40 --In 2, 9, 43. 13 binding ::= n, !.. : ?(PUBLIC | PRIVATE) t ~ ( --In 2, 9.e | t2 -- t=TYPE-- | CODE | ?INLINE ?(ENTRY|INTERNAL) block5 )3.614 statement ::= e1_e2 | e | block5 | escape | loop | NULL16 escape ::=GOTO n | EXIT | CONTINUE | (RETURN|RESUME) ?e17 loop ::= ?iterator ?(WHILE e | UNTIL e) DO ?body9 ?(REPEAT FINISHED=>s) ENDLOOP18 iterator ::= THROUGH e | FOR n : t ( ?DECREASING IN e | _ e1 , e2)e is a subrange. n is readonly.3.719 expression ::= n | literal57 | (e) | application26 | (e | typeName37) . (9) n | prefixOp e | e1 infixOp e2 | e1 AND (2) e2 | e1 OR (1) e2 | e ^ (9) | ERROR | [ argBinding27 ] | builtIn [ e, ... ?applEn27.1] | funnyAppl e ?( [?argBinding27 ?applEn27.1] ) |s | subrange25 | if28 | select29 | safeSelect32 Precedence is in bold in rules 19-21. All operators associate to the left except_, which associates to the right. Application has highest precedence. Subrangeonly after IN or THROUGH. s only in if28 and select choices30 33.20 prefixOp ::= @ (8) | (7) | (~ | NOT) (3)21 infixOp ::= * | / | MOD (6) | + | (5) | relOp (4) | _ (0)22 relOp ::= ?NOT (?~ (= | < | >) | <= | >= | # | IN) --In 21, 30.23 builtIn ::= -- These are enumerated in Table 45.24 funnyAppl ::= FORK | JOIN | WAIT | NOTIFY | BROADCAST |SIGNAL | ERROR | RETURN WITH ERROR25 subrange ::= ?typeName37 ( [ | ( ) e1 .. e2 ( ] | ) ) --In 19, 39.26 application ::= e [ ?argBinding ?applEn ]27 argBinding ::= (n ~ ?e ), !.. | (?e), !.. --In 19, 26. 27.1applEn ::= ! enChoice8; ... -- In 19, 26.3.828 if ::= IF e1 THEN e2 ?(ELSE e3)29 select ::= SELECT e FROM choice; ... endChoice The ";" is "," in an expression, here and in 32.30 choice ::= (?relOp22 e1 ), !..=> e231 endChoice ::= ENDCASE ?(=> e3) --In 29, 32, 34.32 safeSelect ::=WITH e SELECT FROM safeChoice; ... endChoice3133 safeChoice ::= n : t => e23.256 name ::= letter (letter | digit)...57 literal ::= num ?( D | B ) | digit (digit |A|B|C|D|E|F) ... H | ?num . num ?exponent | num exponent | ' extendedChar | " extendedChar ... " | $ n58 exponent ::= E ?(+ | ) num59 num ::= digit !..60 extendedChar ::= space | \ extension | anyCharNot'"Or\ 61 extension ::= digit1 digit2 digit3 | N | R | T | B | F | L | \ | ' | "3.936 type ::= typeName | builtInType | typeCons37 typeName ::= n | typeName . n | typeName[e] --In 19, 25, 36.38 builtInType ::= INT | REAL | TYPE | ATOM | CONDITION | MONITORLOCKSee Table 42. TYPE only in a b or an interface's d. 39 typeCons ::= subrange25 | transferTC40 | arrayTC44 | seqTC45 | refTC46 | listTC47 | recordTC50 | unionTC52 | enumTC54 | defaultTC5540 varTC ::= ( | READONLY | VAR) t | ANYIn 11, 46, 47. ANY only in refTC. VAR only in interface decl.41 transferTC ::=?(SAFE | UNSAFE) xfer ?drType 41.1xfer ::=PROC | PORT | PROCESS | SIGNAL | ERROR |PROGRAM42 drType ::= ?fields1 RETURNS fields2 | fields1 --In 3, 41.43 fields ::= [ d11, ... ] | [t, ... ] | ANY In 42, 50, 52. ANY only in drType.44 arrayTC ::= ARRAY t1 OF t245 seqTC ::= SEQUENCE n : t1 OF t2 -- Only as last type in 50 or 52.46 refTC ::= REF ?varTC4047 listTC ::= LIST OF varTC4050 recordTC ::= ?MONITORED RECORD fields4352 unionTC ::= SELECT n : (t | *) FROM (n => fields43), ... ?, ENDCASE -- Only as last type in 50 or 52.54 enumTC ::= {n, ...} | MACHINE DEPENDENT {(?n (e) | n), ...}55 defaultTC ::= t _ | t _ e Only as t in a decl in body9 or field43 (n: t _ e),in a TYPE binding13or in NEW.lp\Rqr>srsr"t5r> $(Rsr18srsr"srsrsr!srsr"srqrqsrdprsr dprsr dprsrdprsr dprsrdprO*qr'pr!pr.Iuhujfvr>wxXwyxwxfVqfxwxyxfVqfwxwyxfVqfxwxwxwxwxWdwx wxwcpr>wXxc*qcMtcpxwxyxy xwxWawyxwxwxaq>axXwxwxaqaxwxwxwxbraxwxwxwxwx` r>w Xx_q` xyxW^xwxyxwx^r^xxwxyxwx^r^xxwxwW\yxwxwx\q\xwxwx\q\xwxwxwyx\q\xwx [Lrwxwxyxwyx[q[LxwZ@%Xvr>wxXwxwyxwxyxwxywxWWMwxwxwxwyxwxwxwxwxzGUr>wXyxwxwxwxwxzGyTEr>wXxyx wxzGRr>wXxwxwxyxwxzGQ=r>wXxwxwxwxwxwxwzGxXwxzG Px%O vr>wz xXwxwxwyxwxywxOOrO xzG Mr>wzwXxwxwyxwxywxwx zG WLxXwxKrLxzGtzxXwxyxwxwyxwywywxLGrLxwJ%Ivr>wzwXxI@rIxI@rIxwxwxIrIxwxwxwxyGr>wxXwyxwxyxwxyxwxwywywxwxFZr>wXxwxwyxwxyxwxWDyGxXwxErDxwyxyxwxyCRr>wXxyxwxWAyGxXwxwy xyxwxArAxArAwW@mzG?%>9vr>wzwXxwx>r>9xwxK>y>9i>y>9wx >r>9xwxW;1wxX:r;1xyG{yxX:r>;1wxX:r;1xyG{yxX:r>;1wxXW9yG{yxXwxyxwx 9r9xwxW8wx8Kr8xwxW6 wxwx 6r6xwx6r6xwxwW4xwx5Cr4xwx5Cr4xwx5Cr4xwx 5Cr4xW3z G{z;W2NW1C tztz r11Cz1r>1Cz/rwXxy{yxwxy{yxwxwxwxywxy{y.;r>wXxwxwxyxy{yxwxwxy{yxwxyG{y-r>.;wxXy{y,r>wXxwyxwxwxwxwxwxwxwxwxwxywxzG+r>wXx&)r>wXxyxwxyxwxyxwxyxwxyxwW(yxwxyxwxyG &r>wXxwx&r&xwxwx&Ky&wyGx&=r&xX&=r&xwxwx g&Ky &wxzG $r>w Xxwx wx#Wr>w XxwxwxwxwxwxwxwxwxzG!rwXx "r!xwxzG !%vr>wXxyxYrxyxYrxwyxYrwr>wXxyxyxwx WzG-5r>wXxwx{r5xr5xwxwxr>wXxyxwxGrwzGr>w Xyx|xyG| xXwx|+ra>w Xx rU%vr>wzwXxwxwxwbr>wXxwx*1bwx9* bwxwxwxwx*bwx6*bwxu* sbwx *!bwx"B*#)bwx#*$hbwxwx&* 'bwWxwx wxwx wWZx!wxwxwx r>wXxx _ wxwxwx Rr>wXxw r>w Xxwx wzGxX Jr>wXx r Jx r Jx r Jxwx # Jwx   Jwx#  Jwx   Jwx" " Jwx# $ Jwxwxwx>%)dv,fr>wzxXwx wx wx,er>wXxwx wx zG,cr>w Xxyxwxyxwxyxwxyxwx-zbyxwxy -z`zG tz",_Nr>wXx_r_Nxwx _r_Nxwx-z]^r]xwx^r]xwx^r]xwx^r]xwx-z\F\r\Fxwx\r\Fxwx\r\Fxwx \r,Z>wXxwxwxyxwxywxwxy-zYzG tyztz,Xr>w Xyxwxywxwx,V|rwyxwxyxwxyxwyGxXwxyxw-zTy,Str>wXxwxS.rStxyxS.rStxwxS.rStzG ,Qr>wXxRrQxwxwxwxwxyzG-zPtz,O r>wXxyxNrO xyxNr,Mb>wXxyxMrMbxyxMrMbzG#,Kr>wXxyxwxLr,J6>wXxyGxJ|r,H>wXxwyxyxHr,G.>wXxyxwxwxwxyxwx GtrG.wxwxwx-zEywxzG,D&r>wxXwxwxwxyxyxwxJCyKD&KCyL0D&wxwxwx,Br>wXxwx-zAdzGArAdz ArAdztzArAdztzTVk( . TimesRoman TimesRoman TimesRoman TimesRoman TimesRoman TimesRoman  TimesRoman  TimesRoman  TimesRoman  TimesRoman TimesRoman TimesRoman TimesRoman  1j/420 CLRMGram.bxLampsonDecember 18, 1982 5:28 PM