1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>Ada95 - Object Declarations</TITLE>
<META NAME="Author" CONTENT="JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor">
<META NAME="GENERATOR" CONTENT="Arm_Form.Exe, Ada Reference Manual generator">
<STYLE type="text/css">
DIV.paranum {position: absolute; font-family: Arial, Helvetica, sans-serif; left: 0.5 em; top: auto}
TT {font-family: "Courier New", monospace}
DT {display: compact}
DIV.Normal {font-family: "Times New Roman", Times, serif; margin-bottom: 0.6em}
DIV.Wide {font-family: "Times New Roman", Times, serif; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Annotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.WideAnnotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Index {font-family: "Times New Roman", Times, serif}
DIV.SyntaxSummary {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Notes {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.NotesHeader {font-family: "Times New Roman", Times, serif; margin-left: 2.0em}
DIV.SyntaxIndented {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Indented {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-bottom: 0.6em}
DIV.CodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.SmallIndented {font-family: "Times New Roman", Times, serif; margin-left: 10.0em; margin-bottom: 0.6em}
DIV.SmallCodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.Examples {font-family: "Courier New", monospace; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.SmallExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 7.5em; margin-bottom: 0.6em}
DIV.IndentedExamples {font-family: "Courier New", monospace; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.SmallIndentedExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 15.0em; margin-bottom: 0.6em}
UL.Bulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.IndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SyntaxIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.Hanging {font-family: "Times New Roman", Times, serif; margin-top: 0em; margin-bottom: 0.6em}
DD.Hanging {margin-left: 6.0em}
DL.IndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.IndentedHanging {margin-left: 2.0em}
DL.HangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.HangingInBulleted {margin-left: 4.0em}
DL.SmallHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallHanging {margin-left: 7.5em}
DL.SmallIndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallIndentedHanging {margin-left: 2.0em}
DL.SmallHangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallHangingInBulleted {margin-left: 5.0em}
DL.Enumerated {font-family: "Times New Roman", Times, serif; margin-right: 0.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.Enumerated {margin-left: 2.0em}
DL.SmallEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallEnumerated {margin-left: 2.5em}
DL.NestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.SmallNestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
</STYLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFF0" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<P><A HREF="RM-TOC.html">Contents</A> <A HREF="RM-0-29.html">Index</A> <A HREF="RM-3-3.html">Previous</A> <A HREF="RM-3-3-2.html">Next</A></P>
<HR>
<H1> 3.3.1 Object Declarations</H1>
<DIV Class="Paranum"><FONT SIZE=-2>1</FONT></DIV>
<DIV Class="Normal"> <A NAME="I1396"></A><A NAME="I1397"></A><A NAME="I1398"></A>An
<FONT FACE="Arial, Helvetica">object_declaration</FONT> declares a <I>stand-alone</I>
object with a given nominal subtype and, optionally, an explicit initial
value given by an initialization expression. <A NAME="I1399"></A><A NAME="I1400"></A><A NAME="I1401"></A>For
an array, task, or protected object, the <FONT FACE="Arial, Helvetica">object_declaration</FONT>
may include the definition of the (anonymous) type of the object. </DIV>
<H4 ALIGN=CENTER>Syntax</H4>
<DIV Class="Paranum"><FONT SIZE=-2>2</FONT></DIV>
<DIV Class="SyntaxIndented"><FONT FACE="Arial, Helvetica">object_declaration<A NAME="I1402"></A>
::= </FONT><BR>
<A NAME="I1403"></A><FONT FACE="Arial, Helvetica">defining_identifier_list</FONT> : [<B>aliased</B>] [<B>constant</B>] <A NAME="I1404"></A><FONT FACE="Arial, Helvetica">subtype_indication</FONT> [:= <A NAME="I1405"></A><FONT FACE="Arial, Helvetica">expression</FONT>];<BR>
| <A NAME="I1406"></A><FONT FACE="Arial, Helvetica">defining_identifier_list</FONT> : [<B>aliased</B>] [<B>constant</B>] <A NAME="I1407"></A><FONT FACE="Arial, Helvetica">array_type_definition</FONT> [:= <A NAME="I1408"></A><FONT FACE="Arial, Helvetica">expression</FONT>];<BR>
| <A NAME="I1409"></A><FONT FACE="Arial, Helvetica">single_task_declaration</FONT><BR>
| <A NAME="I1410"></A><FONT FACE="Arial, Helvetica">single_protected_declaration</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>3</FONT></DIV>
<DIV Class="SyntaxIndented"><FONT FACE="Arial, Helvetica">defining_identifier_list<A NAME="I1411"></A>
::= </FONT><BR>
<A NAME="I1412"></A><FONT FACE="Arial, Helvetica">defining_identifier</FONT> {, <A NAME="I1413"></A><FONT FACE="Arial, Helvetica">defining_identifier</FONT>}</DIV>
<H4 ALIGN=CENTER>Name Resolution Rules</H4>
<DIV Class="Paranum"><FONT SIZE=-2>4</FONT></DIV>
<DIV Class="Normal"> <A NAME="I1414"></A>For an <FONT FACE="Arial, Helvetica">object_declaration</FONT>
with an <FONT FACE="Arial, Helvetica">expression</FONT> following the
compound delimiter :=, the type expected for the <FONT FACE="Arial, Helvetica">expression</FONT>
is that of the object. <A NAME="I1415"></A>This <FONT FACE="Arial, Helvetica">expression</FONT>
is called the <I>initialization expression</I>. <A NAME="I1416"></A></DIV>
<H4 ALIGN=CENTER>Legality Rules</H4>
<DIV Class="Paranum"><FONT SIZE=-2>5</FONT></DIV>
<DIV Class="Normal"> An <FONT FACE="Arial, Helvetica">object_declaration</FONT>
without the reserved word <B>constant</B> declares a variable object.
If it has a <FONT FACE="Arial, Helvetica">subtype_indication</FONT> or
an <FONT FACE="Arial, Helvetica">array_type_definition</FONT> that defines
an indefinite subtype, then there shall be an initialization expression.
An initialization expression shall not be given if the object is of a
limited type. </DIV>
<H4 ALIGN=CENTER>Static Semantics</H4>
<DIV Class="Paranum"><FONT SIZE=-2>6</FONT></DIV>
<DIV Class="Normal"> An <FONT FACE="Arial, Helvetica">object_declaration</FONT>
with the reserved word <B>constant</B> declares a constant object. <A NAME="I1417"></A>If
it has an initialization expression, then it is called a <I>full constant
declaration</I>. <A NAME="I1418"></A>Otherwise it is called a <I>deferred
constant declaration</I>. The rules for deferred constant declarations
are given in clause <A HREF="RM-7-4.html">7.4</A>. The rules for full
constant declarations are given in this subclause.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>7</FONT></DIV>
<DIV Class="Normal"> Any declaration that includes a <FONT FACE="Arial, Helvetica">defining_identifier_list</FONT>
with more than one <FONT FACE="Arial, Helvetica">defining_identifier</FONT>
is equivalent to a series of declarations each containing one <FONT FACE="Arial, Helvetica">defining_identifier</FONT>
from the list, with the rest of the text of the declaration copied for
each declaration in the series, in the same order as the list. The remainder
of this International Standard relies on this equivalence; explanations
are given for declarations with a single <FONT FACE="Arial, Helvetica">defining_identifier</FONT>.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8</FONT></DIV>
<DIV Class="Normal"> <A NAME="I1419"></A>The <FONT FACE="Arial, Helvetica">subtype_indication</FONT>
or full type definition of an <FONT FACE="Arial, Helvetica">object_declaration</FONT>
defines the nominal subtype of the object. The <FONT FACE="Arial, Helvetica">object_declaration</FONT>
declares an object of the type of the nominal subtype. </DIV>
<H4 ALIGN=CENTER>Dynamic Semantics</H4>
<DIV Class="Paranum"><FONT SIZE=-2>9</FONT></DIV>
<DIV Class="Normal"> <A NAME="I1420"></A>If a composite object declared
by an <FONT FACE="Arial, Helvetica">object_declaration</FONT> has an
unconstrained nominal subtype, then if this subtype is indefinite or
the object is constant or aliased (see <A HREF="RM-3-10.html">3.10</A>)
the actual subtype of this object is constrained. The constraint is determined
by the bounds or discriminants (if any) of its initial value; <A NAME="I1421"></A>the
object is said to be <I>constrained by its initial value</I>. <A NAME="I1422"></A><A NAME="I1423"></A>In
the case of an aliased object, this initial value may be either explicit
or implicit; in the other cases, an explicit initial value is required.
When not constrained by its initial value, the actual and nominal subtypes
of the object are the same. <A NAME="I1424"></A><A NAME="I1425"></A>If
its actual subtype is constrained, the object is called a <I>constrained
object</I>.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>10</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> <A NAME="I1426"></A>For
an <FONT FACE="Arial, Helvetica">object_declaration</FONT> without an
initialization expression, any initial values for the object or its subcomponents
are determined by the <I>implicit initial values</I> defined for its
nominal subtype, as follows: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>11</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>The implicit initial value for an access subtype is the
null value of the access type.</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>12</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>The implicit initial (and only) value for each discriminant
of a constrained discriminated subtype is defined by the subtype.</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>13</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>For a (definite) composite subtype, the implicit initial
value of each component with a <FONT FACE="Arial, Helvetica">default_expression</FONT>
is obtained by evaluation of this expression and conversion to the component's
nominal subtype (which might raise Constraint_Error -- see <A HREF="RM-4-6.html">4.6</A>,
``<A HREF="RM-4-6.html">Type Conversions</A>''), unless the component
is a discriminant of a constrained subtype (the previous case), or is
in an excluded <FONT FACE="Arial, Helvetica">variant</FONT> (see <A HREF="RM-3-8-1.html">3.8.1</A>).
<A NAME="I1427"></A>For each component that does not have a <FONT FACE="Arial, Helvetica">default_expression</FONT>,
any implicit initial values are those determined by the component's nominal
subtype.</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>14</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>For a protected or task subtype, there is an implicit component
(an entry queue) corresponding to each entry, with its implicit initial
value being an empty queue. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>15</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> <A NAME="I1428"></A>The
elaboration of an <FONT FACE="Arial, Helvetica">object_declaration</FONT>
proceeds in the following sequence of steps: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>16</FONT></DIV>
<DL Class="Enumerated"><DT> 1.<DD Class="Enumerated">
The <FONT FACE="Arial, Helvetica">subtype_indication</FONT>, <FONT FACE="Arial, Helvetica">array_type_definition</FONT>,
<FONT FACE="Arial, Helvetica">single_task_declaration</FONT>, or <FONT FACE="Arial, Helvetica">single_protected_declaration</FONT>
is first elaborated. This creates the nominal subtype (and the anonymous
type in the latter three cases).</DL>
<DIV Class="Paranum"><FONT SIZE=-2>17</FONT></DIV>
<DL Class="Enumerated"><DT> 2.<DD Class="Enumerated">
If the <FONT FACE="Arial, Helvetica">object_declaration</FONT> includes
an initialization expression, the (explicit) initial value is obtained
by evaluating the expression and converting it to the nominal subtype
(which might raise Constraint_Error -- see <A HREF="RM-4-6.html">4.6</A>).
<A NAME="I1429"></A></DL>
<DIV Class="Paranum"><FONT SIZE=-2>18/1</FONT></DIV>
<DL Class="Enumerated"><DT> 3.<DD Class="Enumerated">
The object is created, and, if there is not an initialization expression,
any per-object expressions (see <A HREF="RM-3-8.html">3.8</A>) are elaborated
and any implicit initial values for the object or for its subcomponents
are obtained as determined by the nominal subtype. </DL>
<DIV Class="Paranum"><FONT SIZE=-2>19</FONT></DIV>
<DL Class="Enumerated"><DT> 4.<DD Class="Enumerated">
<A NAME="I1430"></A><A NAME="I1431"></A>Any initial values (whether explicit
or implicit) are assigned to the object or to the corresponding subcomponents.
As described in <A HREF="RM-5-2.html">5.2</A> and <A HREF="RM-7-6.html">7.6</A>,
Initialize and Adjust procedures can be called. <A NAME="I1432"></A></DL>
<DIV Class="Paranum"><FONT SIZE=-2>20</FONT></DIV>
<DIV Class="Normal"> For the third step above, the object creation
and any elaborations and evaluations are performed in an arbitrary order,
except that if the <FONT FACE="Arial, Helvetica">default_expression</FONT>
for a discriminant is evaluated to obtain its initial value, then this
evaluation is performed before that of the <FONT FACE="Arial, Helvetica">default_expression</FONT>
for any component that depends on the discriminant, and also before that
of any <FONT FACE="Arial, Helvetica">default_expression</FONT> that includes
the name of the discriminant. The evaluations of the third step and the
assignments of the fourth step are performed in an arbitrary order, except
that each evaluation is performed before the resulting value is assigned.
</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>21</FONT></DIV>
<DIV Class="Normal"> There is no implicit initial value defined for
a scalar subtype. <A NAME="I1433"></A>In the absence of an explicit initialization,
a newly created scalar object might have a value that does not belong
to its subtype (see <A HREF="RM-13-9-1.html">13.9.1</A> and <A HREF="RM-H-1.html">H.1</A>).
</DIV>
<DIV Class="NotesHeader"><FONT SIZE=-1>NOTES</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>22</FONT></DIV>
<DIV Class="Notes"><FONT SIZE=-1>7 Implicit initial values
are not defined for an indefinite subtype, because if an object's nominal
subtype is indefinite, an explicit initial value is required.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>23</FONT></DIV>
<DIV Class="Notes"><FONT SIZE=-1>8 <A NAME="I1434"></A><A NAME="I1435"></A>As
indicated above, a stand-alone object is an object declared by an <FONT FACE="Arial, Helvetica">object_declaration</FONT>.
Similar definitions apply to ``stand-alone constant'' and ``stand-alone
variable.'' A subcomponent of an object is not a stand-alone object,
nor is an object that is created by an <FONT FACE="Arial, Helvetica">allocator</FONT>.
An object declared by a <FONT FACE="Arial, Helvetica">loop_parameter_specification</FONT>,
<FONT FACE="Arial, Helvetica">parameter_specification</FONT>, <FONT FACE="Arial, Helvetica">entry_index_specification</FONT>,
<FONT FACE="Arial, Helvetica">choice_parameter_specification</FONT>,
or a <FONT FACE="Arial, Helvetica">formal_object_declaration</FONT> is
not called a stand-alone object.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>24</FONT></DIV>
<DIV Class="Notes"><FONT SIZE=-1>9 The type of a stand-alone
object cannot be abstract (see <A HREF="RM-3-9-3.html">3.9.3</A>). </FONT></DIV>
<H4 ALIGN=CENTER>Examples</H4>
<DIV Class="Paranum"><FONT SIZE=-2>25</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> <I>Example of a
multiple object declaration:</I> </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>26</FONT></DIV>
<DIV Class="Examples"><TT><I>-- the multiple object declaration </I></TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>27</FONT></DIV>
<DIV Class="Examples"><TT>John, Paul : Person_Name := <B>new</B> Person(Sex => M); <I>-- see <A HREF="RM-3-10-1.html">3.10.1</A></I></TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>28</FONT></DIV>
<DIV Class="Examples"><TT><I>-- is equivalent to the two single object declarations in the order given</I></TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>29</FONT></DIV>
<DIV Class="Examples"><TT>John : Person_Name := <B>new</B> Person(Sex => M);<BR>
Paul : Person_Name := <B>new</B> Person(Sex => M);</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>30</FONT></DIV>
<DIV Class="Wide" Style="margin-bottom: 0.4em"> <I>Examples of variable
declarations:</I> </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>31</FONT></DIV>
<DIV Class="Examples"><TT>Count, Sum : Integer;<BR>
Size : Integer <B>range</B> 0 .. 10_000 := 0;<BR>
Sorted : Boolean := False;<BR>
Color_Table : <B>array</B>(1 .. Max) <B>of</B> Color;<BR>
Option : Bit_Vector(1 .. 10) := (<B>others</B> => True);<BR>
Hello : <B>constant</B> String := "Hi, world.";</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>32</FONT></DIV>
<DIV Class="Wide" Style="margin-bottom: 0.4em"> <I>Examples of constant
declarations:</I> </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>33</FONT></DIV>
<DIV Class="Examples"><TT>Limit : <B>constant</B> Integer := 10_000;<BR>
Low_Limit : <B>constant</B> Integer := Limit/10;<BR>
Tolerance : <B>constant</B> Real := Dispersion(1.15);</TT></DIV>
<HR>
<P><A HREF="RM-TOC.html">Contents</A> <A HREF="RM-0-29.html">Index</A> <A HREF="RM-3-3.html">Previous</A> <A HREF="RM-3-3-2.html">Next</A> <A HREF="RM-TTL.html">Legal</A></P>
</BODY>
</HTML>
|