small footnotes
authornsz <nsz@port70.net>
Thu, 21 Jul 2011 12:35:24 +0000 (14:35 +0200)
committernsz <nsz@port70.net>
Thu, 21 Jul 2011 12:35:24 +0000 (14:35 +0200)
ann2html.sh
n1256.html
n1548.html

index 18e4414..6b27ecd 100755 (executable)
@@ -229,12 +229,11 @@ END {
 
        for (i = 1; i <= sid; i++) {
                print ss[i]
-#              if (slev[i] < 4)
                n = split(snote[i],a)
                if (n > 0) {
                        s = "<h6>footnotes</h6>\n"
                        for (j = 1; j <= n; j++) {
-                               s = s "<p><a name=\"note" a[j] "\">" a[j] ")</a>" note[a[j]+0] "\n"
+                               s = s "<p><small><a name=\"note" a[j] "\" href=\"#note" a[j] "\">" a[j] ")</a>" note[a[j]+0] "</small>\n"
                        }
                        print s
                }
index 7c91502..ffaafbb 100644 (file)
@@ -548,9 +548,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note1">1)</a> This International Standard is designed to promote the portability of C programs among a variety of
+<p><small><a name="note1" href="#note1">1)</a> This International Standard is designed to promote the portability of C programs among a variety of
  data-processing systems. It is intended for use by implementors and programmers.
-
+</small>
 
 <a name="2" href="#2"><h2>2. Normative references</h2></a>
 <p><!--para 1-->
@@ -879,7 +879,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 21 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note2">2)</a> A strictly conforming program can use conditional features (such as those in <a href="#F">annex F</a>) provided the
+<p><small><a name="note2" href="#note2">2)</a> A strictly conforming program can use conditional features (such as those in <a href="#F">annex F</a>) provided the
  use is guarded by a #ifdef directive with the appropriate macro. For example:
 
 <pre>
@@ -889,14 +889,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
             /* ... */
          #endif</pre>
  
-
-<p><a name="note3">3)</a> This implies that a conforming implementation reserves no identifiers other than those explicitly
+</small>
+<p><small><a name="note3" href="#note3">3)</a> This implies that a conforming implementation reserves no identifiers other than those explicitly
  reserved in this International Standard.
-
-<p><a name="note4">4)</a> Strictly conforming programs are intended to be maximally portable among conforming
+</small>
+<p><small><a name="note4" href="#note4">4)</a> Strictly conforming programs are intended to be maximally portable among conforming
  implementations. Conforming programs may depend upon nonportable features of a conforming
  implementation.
-
+</small>
 
 <a name="5" href="#5"><h2>5. Environment</h2></a>
 <p><!--para 1-->
@@ -979,18 +979,18 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 23 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note5">5)</a> Implementations shall behave as if these separate phases occur, even though many are typically folded
+<p><small><a name="note5" href="#note5">5)</a> Implementations shall behave as if these separate phases occur, even though many are typically folded
  together in practice. Source files, translation units, and translated translation units need not
  necessarily be stored as files, nor need there be any one-to-one correspondence between these entities
  and any external representation. The description is conceptual only, and does not specify any
  particular implementation.
-
-<p><a name="note6">6)</a> As described in <a href="#6.4">6.4</a>, the process of dividing a source file's characters into preprocessing tokens is
+</small>
+<p><small><a name="note6" href="#note6">6)</a> As described in <a href="#6.4">6.4</a>, the process of dividing a source file's characters into preprocessing tokens is
  context-dependent. For example, see the handling of &lt; within a #include preprocessing directive.
-
-<p><a name="note7">7)</a> An implementation need not convert all non-corresponding source characters to the same execution
+</small>
+<p><small><a name="note7" href="#note7">7)</a> An implementation need not convert all non-corresponding source characters to the same execution
  character.
-
+</small>
 
 <a name="5.1.1.3" href="#5.1.1.3"><h5>5.1.1.3 Diagnostics</h5></a>
 <p><!--para 1-->
@@ -1009,10 +1009,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note8">8)</a> The intent is that an implementation should identify the nature of, and where possible localize, each
+<p><small><a name="note8" href="#note8">8)</a> The intent is that an implementation should identify the nature of, and where possible localize, each
  violation. Of course, an implementation is free to produce any number of diagnostics as long as a
  valid program is still correctly translated. It may also successfully translate an invalid program.
-
+</small>
 
 <a name="5.1.2" href="#5.1.2"><h4>5.1.2 Execution environments</h4></a>
 <p><!--para 1-->
@@ -1080,9 +1080,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note9">9)</a> Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
+<p><small><a name="note9" href="#note9">9)</a> Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
  char ** argv, and so on.
-
+</small>
 
 <a name="5.1.2.2.2" href="#5.1.2.2.2"><h5>5.1.2.2.2 Program execution</h5></a>
 <p><!--para 1-->
@@ -1103,9 +1103,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: definition of terms (<a href="#7.1.1">7.1.1</a>), the exit function (<a href="#7.20.4.3">7.20.4.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note10">10)</a> In accordance with <a href="#6.2.4">6.2.4</a>, the lifetimes of objects with automatic storage duration declared in main
+<p><small><a name="note10" href="#note10">10)</a> In accordance with <a href="#6.2.4">6.2.4</a>, the lifetimes of objects with automatic storage duration declared in main
  will have ended in the former case, even where they would not have in the latter.
-
+</small>
 
 <a name="5.1.2.3" href="#5.1.2.3"><h5>5.1.2.3 Program execution</h5></a>
 <p><!--para 1-->
@@ -1264,13 +1264,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 29 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note11">11)</a> The IEC 60559 standard for binary floating-point arithmetic requires certain user-accessible status
+<p><small><a name="note11" href="#note11">11)</a> The IEC 60559 standard for binary floating-point arithmetic requires certain user-accessible status
  flags and control modes. Floating-point operations implicitly set the status flags; modes affect result
  values of floating-point operations. Implementations that support such floating-point state are
  required to regard changes to it as side effects -- see <a href="#F">annex F</a> for details. The floating-point
  environment library <a href="#7.6">&lt;fenv.h&gt;</a> provides a programming facility for indicating when these side
  effects matter, freeing the implementations in other cases.
-
+</small>
 
 <a name="5.2" href="#5.2"><h3>5.2 Environmental considerations</h3></a>
 
@@ -1355,9 +1355,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note12">12)</a> The trigraph sequences enable the input of characters that are not defined in the Invariant Code Set as
+<p><small><a name="note12" href="#note12">12)</a> The trigraph sequences enable the input of characters that are not defined in the Invariant Code Set as
  described in ISO/IEC 646, which is a subset of the seven-bit US ASCII code set.
-
+</small>
 
 <a name="5.2.1.2" href="#5.2.1.2"><h5>5.2.1.2 Multibyte characters</h5></a>
 <p><!--para 1-->
@@ -1485,10 +1485,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note13">13)</a> Implementations should avoid imposing fixed translation limits whenever possible.
-
-<p><a name="note14">14)</a> See ''future language directions'' (<a href="#6.11.3">6.11.3</a>).
-
+<p><small><a name="note13" href="#note13">13)</a> Implementations should avoid imposing fixed translation limits whenever possible.
+</small>
+<p><small><a name="note14" href="#note14">14)</a> See ''future language directions'' (<a href="#6.11.3">6.11.3</a>).
+</small>
 
 <a name="5.2.4.2" href="#5.2.4.2"><h5>5.2.4.2 Numerical limits</h5></a>
 <p><!--para 1-->
@@ -1558,8 +1558,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: representations of types (<a href="#6.2.6">6.2.6</a>), conditional inclusion (<a href="#6.10.1">6.10.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note15">15)</a> See <a href="#6.2.5">6.2.5</a>.
-
+<p><small><a name="note15" href="#note15">15)</a> See <a href="#6.2.5">6.2.5</a>.
+</small>
 
 <a name="5.2.4.2.2" href="#5.2.4.2.2"><h5>5.2.4.2.2 Characteristics of floating types <float.h></h5></a>
 <p><!--para 1-->
@@ -1810,24 +1810,24 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 41 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note16">16)</a> The floating-point model is intended to clarify the description of each floating-point characteristic and
+<p><small><a name="note16" href="#note16">16)</a> The floating-point model is intended to clarify the description of each floating-point characteristic and
  does not require the floating-point arithmetic of the implementation to be identical.
-
-<p><a name="note17">17)</a> IEC 60559:1989 specifies quiet and signaling NaNs. For implementations that do not support
+</small>
+<p><small><a name="note17" href="#note17">17)</a> IEC 60559:1989 specifies quiet and signaling NaNs. For implementations that do not support
  IEC 60559:1989, the terms quiet NaN and signaling NaN are intended to apply to encodings with
  similar behavior.
-
-<p><a name="note18">18)</a> Evaluation of FLT_ROUNDS correctly reflects any execution-time change of rounding mode through
+</small>
+<p><small><a name="note18" href="#note18">18)</a> Evaluation of FLT_ROUNDS correctly reflects any execution-time change of rounding mode through
  the function fesetround in <a href="#7.6">&lt;fenv.h&gt;</a>.
-
-<p><a name="note19">19)</a> The evaluation method determines evaluation formats of expressions involving all floating types, not
+</small>
+<p><small><a name="note19" href="#note19">19)</a> The evaluation method determines evaluation formats of expressions involving all floating types, not
  just real types. For example, if FLT_EVAL_METHOD is 1, then the product of two float
  _Complex operands is represented in the double _Complex format, and its parts are evaluated to
  double.
-
-<p><a name="note20">20)</a> The floating-point model in that standard sums powers of b from zero, so the values of the exponent
+</small>
+<p><small><a name="note20" href="#note20">20)</a> The floating-point model in that standard sums powers of b from zero, so the values of the exponent
  limits are one less than shown here.
-
+</small>
 
 <a name="6" href="#6"><h2>6. Language</h2></a>
 
@@ -1941,13 +1941,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  statements (<a href="#6.8">6.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note21">21)</a> There is no linkage between different identifiers.
-
-<p><a name="note22">22)</a> A function declaration can contain the storage-class specifier static only if it is at file scope; see
+<p><small><a name="note21" href="#note21">21)</a> There is no linkage between different identifiers.
+</small>
+<p><small><a name="note22" href="#note22">22)</a> A function declaration can contain the storage-class specifier static only if it is at file scope; see
  <a href="#6.7.1">6.7.1</a>.
-
-<p><a name="note23">23)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
-
+</small>
+<p><small><a name="note23" href="#note23">23)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
+</small>
 
 <a name="6.2.3" href="#6.2.3"><h4>6.2.3 Name spaces of identifiers</h4></a>
 <p><!--para 1-->
@@ -1974,8 +1974,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 44 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note24">24)</a> There is only one name space for tags even though three are possible.
-
+<p><small><a name="note24" href="#note24">24)</a> There is only one name space for tags even though three are possible.
+</small>
 
 <a name="6.2.4" href="#6.2.4"><h4>6.2.4 Storage durations of objects</h4></a>
 <p><!--para 1-->
@@ -2018,15 +2018,15 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 45 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note25">25)</a> The term ''constant address'' means that two pointers to the object constructed at possibly different
+<p><small><a name="note25" href="#note25">25)</a> The term ''constant address'' means that two pointers to the object constructed at possibly different
  times will compare equal. The address may be different during two different executions of the same
  program.
-
-<p><a name="note26">26)</a> In the case of a volatile object, the last store need not be explicit in the program.
-
-<p><a name="note27">27)</a> Leaving the innermost block containing the declaration, or jumping to a point in that block or an
+</small>
+<p><small><a name="note26" href="#note26">26)</a> In the case of a volatile object, the last store need not be explicit in the program.
+</small>
+<p><small><a name="note27" href="#note27">27)</a> Leaving the innermost block containing the declaration, or jumping to a point in that block or an
  embedded block prior to the declaration, leaves the scope of the declaration.
-
+</small>
 
 <a name="6.2.5" href="#6.2.5"><h4>6.2.5 Types</h4></a>
 <p><!--para 1-->
@@ -2209,41 +2209,41 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: compatible type and composite type (<a href="#6.2.7">6.2.7</a>), declarations (<a href="#6.7">6.7</a>).
 
 <h6>footnotes</h6>
-<p><a name="note28">28)</a> Implementation-defined keywords shall have the form of an identifier reserved for any use as
+<p><small><a name="note28" href="#note28">28)</a> Implementation-defined keywords shall have the form of an identifier reserved for any use as
  described in <a href="#7.1.3">7.1.3</a>.
-
-<p><a name="note29">29)</a> Therefore, any statement in this Standard about signed integer types also applies to the extended
+</small>
+<p><small><a name="note29" href="#note29">29)</a> Therefore, any statement in this Standard about signed integer types also applies to the extended
  signed integer types.
-
-<p><a name="note30">30)</a> Therefore, any statement in this Standard about unsigned integer types also applies to the extended
+</small>
+<p><small><a name="note30" href="#note30">30)</a> Therefore, any statement in this Standard about unsigned integer types also applies to the extended
  unsigned integer types.
-
-<p><a name="note31">31)</a> The same representation and alignment requirements are meant to imply interchangeability as
+</small>
+<p><small><a name="note31" href="#note31">31)</a> The same representation and alignment requirements are meant to imply interchangeability as
  arguments to functions, return values from functions, and members of unions.
-
-<p><a name="note32">32)</a> See ''future language directions'' (<a href="#6.11.1">6.11.1</a>).
-
-<p><a name="note33">33)</a> A specification for imaginary types is in informative <a href="#G">annex G</a>.
-
-<p><a name="note34">34)</a> An implementation may define new keywords that provide alternative ways to designate a basic (or
+</small>
+<p><small><a name="note32" href="#note32">32)</a> See ''future language directions'' (<a href="#6.11.1">6.11.1</a>).
+</small>
+<p><small><a name="note33" href="#note33">33)</a> A specification for imaginary types is in informative <a href="#G">annex G</a>.
+</small>
+<p><small><a name="note34" href="#note34">34)</a> An implementation may define new keywords that provide alternative ways to designate a basic (or
  any other) type; this does not violate the requirement that all basic types be different.
  Implementation-defined keywords shall have the form of an identifier reserved for any use as
  described in <a href="#7.1.3">7.1.3</a>.
-
-<p><a name="note35">35)</a> CHAR_MIN, defined in <a href="#7.10">&lt;limits.h&gt;</a>, will have one of the values 0 or SCHAR_MIN, and this can be
+</small>
+<p><small><a name="note35" href="#note35">35)</a> CHAR_MIN, defined in <a href="#7.10">&lt;limits.h&gt;</a>, will have one of the values 0 or SCHAR_MIN, and this can be
  used to distinguish the two options. Irrespective of the choice made, char is a separate type from the
  other two and is not compatible with either.
-
-<p><a name="note36">36)</a> Since object types do not include incomplete types, an array of incomplete type cannot be constructed.
-
-<p><a name="note37">37)</a> Note that aggregate type does not include union type because an object with union type can only
+</small>
+<p><small><a name="note36" href="#note36">36)</a> Since object types do not include incomplete types, an array of incomplete type cannot be constructed.
+</small>
+<p><small><a name="note37" href="#note37">37)</a> Note that aggregate type does not include union type because an object with union type can only
  contain one member at a time.
-
-<p><a name="note38">38)</a> See <a href="#6.7.3">6.7.3</a> regarding qualified array and function types.
-
-<p><a name="note39">39)</a> The same representation and alignment requirements are meant to imply interchangeability as
+</small>
+<p><small><a name="note38" href="#note38">38)</a> See <a href="#6.7.3">6.7.3</a> regarding qualified array and function types.
+</small>
+<p><small><a name="note39" href="#note39">39)</a> The same representation and alignment requirements are meant to imply interchangeability as
  arguments to functions, return values from functions, and members of unions.
-
+</small>
 
 <a name="6.2.6" href="#6.2.6"><h4>6.2.6 Representations of types</h4></a>
 
@@ -2295,7 +2295,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  designators (<a href="#6.3.2.1">6.3.2.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note40">40)</a> A positional representation for integers that uses the binary digits 0 and 1, in which the values
+<p><small><a name="note40" href="#note40">40)</a> A positional representation for integers that uses the binary digits 0 and 1, in which the values
  represented by successive bits are additive, begin with 1, and are multiplied by successive integral
  powers of 2, except perhaps the bit with the highest position. (Adapted from the American National
  Dictionary for Information Processing Systems.) A byte contains CHAR_BIT bits, and the values of
@@ -2304,18 +2304,18 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <pre>
                                            CHAR_BIT
                                                      - 1.</pre>
-
-<p><a name="note41">41)</a> Thus, an automatic variable can be initialized to a trap representation without causing undefined
+</small>
+<p><small><a name="note41" href="#note41">41)</a> Thus, an automatic variable can be initialized to a trap representation without causing undefined
  behavior, but the value of the variable cannot be used until a proper value is stored in it.
-
-<p><a name="note42">42)</a> Thus, for example, structure assignment need not copy any padding bits.
-
-<p><a name="note43">43)</a> It is possible for objects x and y with the same effective type T to have the same value when they are
+</small>
+<p><small><a name="note42" href="#note42">42)</a> Thus, for example, structure assignment need not copy any padding bits.
+</small>
+<p><small><a name="note43" href="#note43">43)</a> It is possible for objects x and y with the same effective type T to have the same value when they are
  accessed as objects of type T, but to have different values in other contexts. In particular, if == is
  defined for type T, then x == y does not imply that memcmp(&amp;x, &amp;y, sizeof (T)) == 0.
  Furthermore, x == y does not necessarily imply that x and y have the same value; other operations
  on values of type T may distinguish between them.
-
+</small>
 
 <a name="6.2.6.2" href="#6.2.6.2"><h5>6.2.6.2 Integer types</h5></a>
 <p><!--para 1-->
@@ -2374,18 +2374,18 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  for signed integer types the width is one greater than the precision.
 
 <h6>footnotes</h6>
-<p><a name="note44">44)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
+<p><small><a name="note44" href="#note44">44)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
  bit is a parity bit. Regardless, no arithmetic operation on valid values can generate a trap
  representation other than as part of an exceptional condition such as an overflow, and this cannot occur
  with unsigned types. All other combinations of padding bits are alternative object representations of
  the value specified by the value bits.
-
-<p><a name="note45">45)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
+</small>
+<p><small><a name="note45" href="#note45">45)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
  bit is a parity bit. Regardless, no arithmetic operation on valid values can generate a trap
  representation other than as part of an exceptional condition such as an overflow. All other
  combinations of padding bits are alternative object representations of the value specified by the value
  bits.
-
+</small>
 
 <a name="6.2.7" href="#6.2.7"><h4>6.2.7 Compatible type and composite type</h4></a>
 <p><!--para 1-->
@@ -2439,10 +2439,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
           int f(int (*)(char *), double (*)[3]);</pre>
 
 <h6>footnotes</h6>
-<p><a name="note46">46)</a> Two types need not be identical to be compatible.
-
-<p><a name="note47">47)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
-
+<p><small><a name="note46" href="#note46">46)</a> Two types need not be identical to be compatible.
+</small>
+<p><small><a name="note47" href="#note47">47)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
+</small>
 
 <a name="6.3" href="#6.3"><h3>6.3 Conversions</h3></a>
 <p><!--para 1-->
@@ -2502,10 +2502,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#6.7.2.1">6.7.2.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note48">48)</a> The integer promotions are applied only: as part of the usual arithmetic conversions, to certain
+<p><small><a name="note48" href="#note48">48)</a> The integer promotions are applied only: as part of the usual arithmetic conversions, to certain
  argument expressions, to the operands of the unary +, -, and ~ operators, and to both operands of the
  shift operators, as specified by their respective subclauses.
-
+</small>
 
 <a name="6.3.1.2" href="#6.3.1.2"><h5>6.3.1.2 Boolean type</h5></a>
 <p><!--para 1-->
@@ -2525,8 +2525,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  result is implementation-defined or an implementation-defined signal is raised.
 
 <h6>footnotes</h6>
-<p><a name="note49">49)</a> The rules describe arithmetic on the mathematical value, not the value of a given type of expression.
-
+<p><small><a name="note49" href="#note49">49)</a> The rules describe arithmetic on the mathematical value, not the value of a given type of expression.
+</small>
 
 <a name="6.3.1.4" href="#6.3.1.4"><h5>6.3.1.4 Real floating and integer</h5></a>
 <p><!--para 1-->
@@ -2544,10 +2544,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  values that can be represented, the behavior is undefined.
 
 <h6>footnotes</h6>
-<p><a name="note50">50)</a> The remaindering operation performed when a value of integer type is converted to unsigned type
+<p><small><a name="note50" href="#note50">50)</a> The remaindering operation performed when a value of integer type is converted to unsigned type
  need not be performed when a value of real floating type is converted to unsigned type. Thus, the
  range of portable real floating values is (-1, Utype_MAX+1).
-
+</small>
 
 <a name="6.3.1.5" href="#6.3.1.5"><h5>6.3.1.5 Real floating types</h5></a>
 <p><!--para 1-->
@@ -2626,12 +2626,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 58 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note51">51)</a> For example, addition of a double _Complex and a float entails just the conversion of the
+<p><small><a name="note51" href="#note51">51)</a> For example, addition of a double _Complex and a float entails just the conversion of the
  float operand to double (and yields a double _Complex result).
-
-<p><a name="note52">52)</a> The cast and assignment operators are still required to perform their specified conversions as
+</small>
+<p><small><a name="note52" href="#note52">52)</a> The cast and assignment operators are still required to perform their specified conversions as
  described in <a href="#6.3.1.4">6.3.1.4</a> and <a href="#6.3.1.5">6.3.1.5</a>.
-
+</small>
 
 <a name="6.3.2" href="#6.3.2"><h4>6.3.2 Other operands</h4></a>
 
@@ -2672,16 +2672,16 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 59 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note53">53)</a> The name ''lvalue'' comes originally from the assignment expression E1 = E2, in which the left
+<p><small><a name="note53" href="#note53">53)</a> The name ''lvalue'' comes originally from the assignment expression E1 = E2, in which the left
  operand E1 is required to be a (modifiable) lvalue. It is perhaps better considered as representing an
  object ''locator value''. What is sometimes called ''rvalue'' is in this International Standard described
  as the ''value of an expression''.
   An obvious example of an lvalue is an identifier of an object. As a further example, if E is a unary
   expression that is a pointer to an object, *E is an lvalue that designates the object to which E points.
-
-<p><a name="note54">54)</a> Because this conversion does not occur, the operand of the sizeof operator remains a function
+</small>
+<p><small><a name="note54" href="#note54">54)</a> Because this conversion does not occur, the operand of the sizeof operator remains a function
  designator and violates the constraint in <a href="#6.5.3.4">6.5.3.4</a>.
-
+</small>
 
 <a name="6.3.2.2" href="#6.3.2.2"><h5>6.3.2.2 void</h5></a>
 <p><!--para 1-->
@@ -2738,15 +2738,15 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 61 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note55">55)</a> The macro NULL is defined in <a href="#7.17">&lt;stddef.h&gt;</a> (and other headers) as a null pointer constant; see <a href="#7.17">7.17</a>.
-
-<p><a name="note56">56)</a> The mapping functions for converting a pointer to an integer or an integer to a pointer are intended to
+<p><small><a name="note55" href="#note55">55)</a> The macro NULL is defined in <a href="#7.17">&lt;stddef.h&gt;</a> (and other headers) as a null pointer constant; see <a href="#7.17">7.17</a>.
+</small>
+<p><small><a name="note56" href="#note56">56)</a> The mapping functions for converting a pointer to an integer or an integer to a pointer are intended to
  be consistent with the addressing structure of the execution environment.
-
-<p><a name="note57">57)</a> In general, the concept ''correctly aligned'' is transitive: if a pointer to type A is correctly aligned for a
+</small>
+<p><small><a name="note57" href="#note57">57)</a> In general, the concept ''correctly aligned'' is transitive: if a pointer to type A is correctly aligned for a
  pointer to type B, which in turn is correctly aligned for a pointer to type C, then a pointer to type A is
  correctly aligned for a pointer to type C.
-
+</small>
 
 <a name="6.4" href="#6.4"><h3>6.4 Lexical elements</h3></a>
 <h6>Syntax</h6>
@@ -2816,9 +2816,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#6.4.5">6.4.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note58">58)</a> An additional category, placemarkers, is used internally in translation phase 4 (see <a href="#6.10.3.3">6.10.3.3</a>); it cannot
+<p><small><a name="note58" href="#note58">58)</a> An additional category, placemarkers, is used internally in translation phase 4 (see <a href="#6.10.3.3">6.10.3.3</a>); it cannot
  occur in source files.
-
+</small>
 
 <a name="6.4.1" href="#6.4.1"><h4>6.4.1 Keywords</h4></a>
 <h6>Syntax</h6>
@@ -2846,8 +2846,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 63 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note59">59)</a> One possible specification for imaginary types appears in <a href="#G">annex G</a>.
-
+<p><small><a name="note59" href="#note59">59)</a> One possible specification for imaginary types appears in <a href="#G">annex G</a>.
+</small>
 
 <a name="6.4.2" href="#6.4.2"><h4>6.4.2 Identifiers</h4></a>
 
@@ -2903,11 +2903,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: universal character names (<a href="#6.4.3">6.4.3</a>), macro replacement (<a href="#6.10.3">6.10.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note60">60)</a> On systems in which linkers cannot accept extended characters, an encoding of the universal character
+<p><small><a name="note60" href="#note60">60)</a> On systems in which linkers cannot accept extended characters, an encoding of the universal character
  name may be used in forming valid external identifiers. For example, some otherwise unused
  character or sequence of characters may be used to encode the \u in a universal character name.
  Extended characters may produce a long external identifier.
-
+</small>
 
 <a name="6.4.2.2" href="#6.4.2.2"><h5>6.4.2.2 Predefined identifiers</h5></a>
 <h6>Semantics</h6>
@@ -2942,9 +2942,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 65 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note61">61)</a> Since the name __func__ is reserved for any use by the implementation (<a href="#7.1.3">7.1.3</a>), if any other
+<p><small><a name="note61" href="#note61">61)</a> Since the name __func__ is reserved for any use by the implementation (<a href="#7.1.3">7.1.3</a>), if any other
  identifier is explicitly declared using the name __func__, the behavior is undefined.
-
+</small>
 
 <a name="6.4.3" href="#6.4.3"><h4>6.4.3 Universal character names</h4></a>
 <h6>Syntax</h6>
@@ -2978,12 +2978,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 66 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note62">62)</a> The disallowed characters are the characters in the basic character set and the code positions reserved
+<p><small><a name="note62" href="#note62">62)</a> The disallowed characters are the characters in the basic character set and the code positions reserved
  by ISO/IEC 10646 for control characters, the character DELETE, and the S-zone (reserved for use by
  UTF-16).
-
-<p><a name="note63">63)</a> Short identifiers for characters were first specified in ISO/IEC 10646-1/AMD9:1997.
-
+</small>
+<p><small><a name="note63" href="#note63">63)</a> Short identifiers for characters were first specified in ISO/IEC 10646-1/AMD9:1997.
+</small>
 
 <a name="6.4.4" href="#6.4.4"><h4>6.4.4 Constants</h4></a>
 <h6>Syntax</h6>
@@ -3185,9 +3185,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 71 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note64">64)</a> The specification for the library functions recommends more accurate conversion than required for
+<p><small><a name="note64" href="#note64">64)</a> The specification for the library functions recommends more accurate conversion than required for
  floating constants (see <a href="#7.20.1.3">7.20.1.3</a>).
-
+</small>
 
 <a name="6.4.4.3" href="#6.4.4.3"><h5>6.4.4.3 Enumeration constants</h5></a>
 <h6>Syntax</h6>
@@ -3328,9 +3328,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 74 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note65">65)</a> The semantics of these characters were discussed in <a href="#5.2.2">5.2.2</a>. If any other character follows a backslash,
+<p><small><a name="note65" href="#note65">65)</a> The semantics of these characters were discussed in <a href="#5.2.2">5.2.2</a>. If any other character follows a backslash,
  the result is not a token and a diagnostic is required. See ''future language directions'' (<a href="#6.11.4">6.11.4</a>).
-
+</small>
 
 <a name="6.4.5" href="#6.4.5"><h4>6.4.5 String literals</h4></a>
 <h6>Syntax</h6>
@@ -3393,9 +3393,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  function (<a href="#7.20.8.1">7.20.8.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note66">66)</a> A character string literal need not be a string (see <a href="#7.1.1">7.1.1</a>), because a null character may be embedded in
+<p><small><a name="note66" href="#note66">66)</a> A character string literal need not be a string (see <a href="#7.1.1">7.1.1</a>), because a null character may be embedded in
  it by a \0 escape sequence.
-
+</small>
 
 <a name="6.4.6" href="#6.4.6"><h4>6.4.6 Punctuators</h4></a>
 <h6>Syntax</h6>
@@ -3429,11 +3429,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#6.10">6.10</a>), statements (<a href="#6.8">6.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note67">67)</a> These tokens are sometimes called ''digraphs''.
-
-<p><a name="note68">68)</a> Thus [ and &lt;: behave differently when ''stringized'' (see <a href="#6.10.3.2">6.10.3.2</a>), but can otherwise be freely
+<p><small><a name="note67" href="#note67">67)</a> These tokens are sometimes called ''digraphs''.
+</small>
+<p><small><a name="note68" href="#note68">68)</a> Thus [ and &lt;: behave differently when ''stringized'' (see <a href="#6.10.3.2">6.10.3.2</a>), but can otherwise be freely
  interchanged.
-
+</small>
 
 <a name="6.4.7" href="#6.4.7"><h4>6.4.7 Header names</h4></a>
 <h6>Syntax</h6>
@@ -3485,10 +3485,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: source file inclusion (<a href="#6.10.2">6.10.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note69">69)</a> Thus, sequences of characters that resemble escape sequences cause undefined behavior.
-
-<p><a name="note70">70)</a> For an example of a header name preprocessing token used in a #pragma directive, see <a href="#6.10.9">6.10.9</a>.
-
+<p><small><a name="note69" href="#note69">69)</a> Thus, sequences of characters that resemble escape sequences cause undefined behavior.
+</small>
+<p><small><a name="note70" href="#note70">70)</a> For an example of a header name preprocessing token used in a #pragma directive, see <a href="#6.10.9">6.10.9</a>.
+</small>
 
 <a name="6.4.8" href="#6.4.8"><h4>6.4.8 Preprocessing numbers</h4></a>
 <h6>Syntax</h6>
@@ -3553,8 +3553,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 79 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note71">71)</a> Thus, /* ... */ comments do not nest.
-
+<p><small><a name="note71" href="#note71">71)</a> Thus, /* ... */ comments do not nest.
+</small>
 
 <a name="6.5" href="#6.5"><h3>6.5 Expressions</h3></a>
 <p><!--para 1-->
@@ -3620,9 +3620,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 81 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note72">72)</a> A floating-point status flag is not an object and can be set more than once within an expression.
-
-<p><a name="note73">73)</a> This paragraph renders undefined statement expressions such as
+<p><small><a name="note72" href="#note72">72)</a> A floating-point status flag is not an object and can be set more than once within an expression.
+</small>
+<p><small><a name="note73" href="#note73">73)</a> This paragraph renders undefined statement expressions such as
 
 <pre>
             i = ++i + 1;
@@ -3631,8 +3631,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
             i = i + 1;
             a[i] = i;</pre>
  
-
-<p><a name="note74">74)</a> The syntax specifies the precedence of operators in the evaluation of an expression, which is the same
+</small>
+<p><small><a name="note74" href="#note74">74)</a> The syntax specifies the precedence of operators in the evaluation of an expression, which is the same
  as the order of the major subclauses of this subclause, highest precedence first. Thus, for example, the
  expressions allowed as the operands of the binary + operator (<a href="#6.5.6">6.5.6</a>) are those expressions defined in
  <a href="#6.5.1">6.5.1</a> through <a href="#6.5.6">6.5.6</a>. The exceptions are cast expressions (<a href="#6.5.4">6.5.4</a>) as operands of unary operators
@@ -3643,18 +3643,18 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <pre>
     Within each major subclause, the operators have the same precedence. Left- or right-associativity is
     indicated in each subclause by the syntax for the expressions discussed therein.</pre>
-
-<p><a name="note75">75)</a> Allocated objects have no declared type.
-
-<p><a name="note76">76)</a> The intent of this list is to specify those circumstances in which an object may or may not be aliased.
-
-<p><a name="note77">77)</a> A contracted expression might also omit the raising of floating-point exceptions.
-
-<p><a name="note78">78)</a> This license is specifically intended to allow implementations to exploit fast machine instructions that
+</small>
+<p><small><a name="note75" href="#note75">75)</a> Allocated objects have no declared type.
+</small>
+<p><small><a name="note76" href="#note76">76)</a> The intent of this list is to specify those circumstances in which an object may or may not be aliased.
+</small>
+<p><small><a name="note77" href="#note77">77)</a> A contracted expression might also omit the raising of floating-point exceptions.
+</small>
+<p><small><a name="note78" href="#note78">78)</a> This license is specifically intended to allow implementations to exploit fast machine instructions that
  combine multiple C operators. As contractions potentially undermine predictability, and can even
  decrease accuracy for containing expressions, their use needs to be well-defined and clearly
  documented.
-
+</small>
 
 <a name="6.5.1" href="#6.5.1"><h4>6.5.1 Primary expressions</h4></a>
 <h6>Syntax</h6>
@@ -3683,8 +3683,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: declarations (<a href="#6.7">6.7</a>).
 
 <h6>footnotes</h6>
-<p><a name="note79">79)</a> Thus, an undeclared identifier is a violation of the syntax.
-
+<p><small><a name="note79" href="#note79">79)</a> Thus, an undeclared identifier is a violation of the syntax.
+</small>
 
 <a name="6.5.2" href="#6.5.2"><h4>6.5.2 Postfix operators</h4></a>
 <h6>Syntax</h6>
@@ -3827,13 +3827,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  definitions (<a href="#6.9.1">6.9.1</a>), the return statement (<a href="#6.8.6.4">6.8.6.4</a>), simple assignment (<a href="#6.5.16.1">6.5.16.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note80">80)</a> Most often, this is the result of converting an identifier that is a function designator.
-
-<p><a name="note81">81)</a> A function may change the values of its parameters, but these changes cannot affect the values of the
+<p><small><a name="note80" href="#note80">80)</a> Most often, this is the result of converting an identifier that is a function designator.
+</small>
+<p><small><a name="note81" href="#note81">81)</a> A function may change the values of its parameters, but these changes cannot affect the values of the
  arguments. On the other hand, it is possible to pass a pointer to an object, and the function may
  change the value of the object pointed to. A parameter declared to have array or function type is
  adjusted to have a pointer type as described in <a href="#6.9.1">6.9.1</a>.
-
+</small>
 
 <a name="6.5.2.3" href="#6.5.2.3"><h5>6.5.2.3 Structure and union members</h5></a>
 <h6>Constraints</h6>
@@ -3936,14 +3936,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 87 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note82">82)</a> If the member used to access the contents of a union object is not the same as the member last used to
+<p><small><a name="note82" href="#note82">82)</a> If the member used to access the contents of a union object is not the same as the member last used to
  store a value in the object, the appropriate part of the object representation of the value is reinterpreted
  as an object representation in the new type as described in <a href="#6.2.6">6.2.6</a> (a process sometimes called "type
  punning"). This might be a trap representation.
-
-<p><a name="note83">83)</a> If &amp;E is a valid pointer expression (where &amp; is the ''address-of '' operator, which generates a pointer to
+</small>
+<p><small><a name="note83" href="#note83">83)</a> If &amp;E is a valid pointer expression (where &amp; is the ''address-of '' operator, which generates a pointer to
  its operand), the expression (&amp;E)-&gt;MOS is the same as E.MOS.
-
+</small>
 
 <a name="6.5.2.4" href="#6.5.2.4"><h5>6.5.2.4 Postfix increment and decrement operators</h5></a>
 <h6>Constraints</h6>
@@ -4091,14 +4091,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 90 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note84">84)</a> Note that this differs from a cast expression. For example, a cast specifies a conversion to scalar types
+<p><small><a name="note84" href="#note84">84)</a> Note that this differs from a cast expression. For example, a cast specifies a conversion to scalar types
  or void only, and the result of a cast expression is not an lvalue.
-
-<p><a name="note85">85)</a> For example, subobjects without explicit initializers are initialized to zero.
-
-<p><a name="note86">86)</a> This allows implementations to share storage for string literals and constant compound literals with
+</small>
+<p><small><a name="note85" href="#note85">85)</a> For example, subobjects without explicit initializers are initialized to zero.
+</small>
+<p><small><a name="note86" href="#note86">86)</a> This allows implementations to share storage for string literals and constant compound literals with
  the same or overlapping representations.
-
+</small>
 
 <a name="6.5.3" href="#6.5.3"><h4>6.5.3 Unary operators</h4></a>
 <h6>Syntax</h6>
@@ -4159,14 +4159,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#6.7.2.1">6.7.2.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note87">87)</a> Thus, &amp;*E is equivalent to E (even if E is a null pointer), and &amp;(E1[E2]) to ((E1)+(E2)). It is
+<p><small><a name="note87" href="#note87">87)</a> Thus, &amp;*E is equivalent to E (even if E is a null pointer), and &amp;(E1[E2]) to ((E1)+(E2)). It is
  always true that if E is a function designator or an lvalue that is a valid operand of the unary &amp;
  operator, *&amp;E is a function designator or an lvalue equal to E. If *P is an lvalue and T is the name of
  an object pointer type, *(T)P is an lvalue that has a type compatible with that to which T points.
   Among the invalid values for dereferencing a pointer by the unary * operator are a null pointer, an
   address inappropriately aligned for the type of object pointed to, and the address of an object after the
   end of its lifetime.
-
+</small>
 
 <a name="6.5.3.3" href="#6.5.3.3"><h5>6.5.3.3 Unary arithmetic operators</h5></a>
 <h6>Constraints</h6>
@@ -4259,9 +4259,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  structure and union specifiers (<a href="#6.7.2.1">6.7.2.1</a>), type names (<a href="#6.7.6">6.7.6</a>), array declarators (<a href="#6.7.5.2">6.7.5.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note88">88)</a> When applied to a parameter declared to have array or function type, the sizeof operator yields the
+<p><small><a name="note88" href="#note88">88)</a> When applied to a parameter declared to have array or function type, the sizeof operator yields the
  size of the adjusted (pointer) type (see <a href="#6.9.1">6.9.1</a>).
-
+</small>
 
 <a name="6.5.4" href="#6.5.4"><h4>6.5.4 Cast operators</h4></a>
 <h6>Syntax</h6>
@@ -4295,9 +4295,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 94 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note89">89)</a> A cast does not yield an lvalue. Thus, a cast to a qualified type has the same effect as a cast to the
+<p><small><a name="note89" href="#note89">89)</a> A cast does not yield an lvalue. Thus, a cast to a qualified type has the same effect as a cast to the
  unqualified version of the type.
-
+</small>
 
 <a name="6.5.5" href="#6.5.5"><h4>6.5.5 Multiplicative operators</h4></a>
 <h6>Syntax</h6>
@@ -4327,8 +4327,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (a/b)*b + a%b shall equal a.
 
 <h6>footnotes</h6>
-<p><a name="note90">90)</a> This is often called ''truncation toward zero''.
-
+<p><small><a name="note90" href="#note90">90)</a> This is often called ''truncation toward zero''.
+</small>
 
 <a name="6.5.6" href="#6.5.6"><h4>6.5.6 Additive operators</h4></a>
 <h6>Syntax</h6>
@@ -4420,7 +4420,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#7.17">7.17</a>).
 
 <h6>footnotes</h6>
-<p><a name="note91">91)</a> Another way to approach pointer arithmetic is first to convert the pointer(s) to character pointer(s): In
+<p><small><a name="note91" href="#note91">91)</a> Another way to approach pointer arithmetic is first to convert the pointer(s) to character pointer(s): In
  this scheme the integer expression added to or subtracted from the converted pointer is first multiplied
  by the size of the object originally pointed to, and the resulting pointer is converted back to the
  original type. For pointer subtraction, the result of the difference between the character pointers is
@@ -4428,7 +4428,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
   When viewed in this way, an implementation need only provide one extra byte (which may overlap
   another object in the program) just after the end of the object in order to satisfy the ''one past the last
   element'' requirements.
-
+</small>
 
 <a name="6.5.7" href="#6.5.7"><h4>6.5.7 Bitwise shift operators</h4></a>
 <h6>Syntax</h6>
@@ -4510,9 +4510,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The result has type int.
 
 <h6>footnotes</h6>
-<p><a name="note92">92)</a> The expression a&lt;b&lt;c is not interpreted as in ordinary mathematics. As the syntax indicates, it
+<p><small><a name="note92" href="#note92">92)</a> The expression a&lt;b&lt;c is not interpreted as in ordinary mathematics. As the syntax indicates, it
  means (a&lt;b)&lt;c; in other words, ''if a is less than b, compare 1 to c; otherwise, compare 0 to c''.
-
+</small>
 
 <a name="6.5.9" href="#6.5.9"><h4>6.5.9 Equality operators</h4></a>
 <h6>Syntax</h6>
@@ -4565,14 +4565,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  type of the object as its element type.
 
 <h6>footnotes</h6>
-<p><a name="note93">93)</a> Because of the precedences, a&lt;b == c&lt;d is 1 whenever a&lt;b and c&lt;d have the same truth-value.
-
-<p><a name="note94">94)</a> Two objects may be adjacent in memory because they are adjacent elements of a larger array or
+<p><small><a name="note93" href="#note93">93)</a> Because of the precedences, a&lt;b == c&lt;d is 1 whenever a&lt;b and c&lt;d have the same truth-value.
+</small>
+<p><small><a name="note94" href="#note94">94)</a> Two objects may be adjacent in memory because they are adjacent elements of a larger array or
  adjacent members of a structure with no padding between them, or because the implementation chose
  to place them so, even though they are unrelated. If prior invalid pointer operations (such as accesses
  outside array bounds) produced undefined behavior, subsequent comparisons also produce undefined
  behavior.
-
+</small>
 
 <a name="6.5.10" href="#6.5.10"><h4>6.5.10 Bitwise AND operator</h4></a>
 <h6>Syntax</h6>
@@ -4743,8 +4743,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note95">95)</a> A conditional expression does not yield an lvalue.
-
+<p><small><a name="note95" href="#note95">95)</a> A conditional expression does not yield an lvalue.
+</small>
 
 <a name="6.5.16" href="#6.5.16"><h4>6.5.16 Assignment operators</h4></a>
 <h6>Syntax</h6>
@@ -4843,11 +4843,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note96">96)</a> The asymmetric appearance of these constraints with respect to type qualifiers is due to the conversion
+<p><small><a name="note96" href="#note96">96)</a> The asymmetric appearance of these constraints with respect to type qualifiers is due to the conversion
  (specified in <a href="#6.3.2.1">6.3.2.1</a>) that changes lvalues to ''the value of the expression'' and thus removes any type
  qualifiers that were applied to the type category of the expression (for example, it removes const but
  not volatile from the type int volatile * const).
-
+</small>
 
 <a name="6.5.16.2" href="#6.5.16.2"><h5>6.5.16.2 Compound assignment</h5></a>
 <h6>Constraints</h6>
@@ -4894,8 +4894,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 107 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note97">97)</a> A comma operator does not yield an lvalue.
-
+<p><small><a name="note97" href="#note97">97)</a> A comma operator does not yield an lvalue.
+</small>
 
 <a name="6.6" href="#6.6"><h3>6.6 Constant expressions</h3></a>
 <h6>Syntax</h6>
@@ -4969,19 +4969,19 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 109 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note98">98)</a> The operand of a sizeof operator is usually not evaluated (<a href="#6.5.3.4">6.5.3.4</a>).
-
-<p><a name="note99">99)</a> An integer constant expression is used to specify the size of a bit-field member of a structure, the
+<p><small><a name="note98" href="#note98">98)</a> The operand of a sizeof operator is usually not evaluated (<a href="#6.5.3.4">6.5.3.4</a>).
+</small>
+<p><small><a name="note99" href="#note99">99)</a> An integer constant expression is used to specify the size of a bit-field member of a structure, the
  value of an enumeration constant, the size of an array, or the value of a case constant. Further
  constraints that apply to the integer constant expressions used in conditional-inclusion preprocessing
  directives are discussed in <a href="#6.10.1">6.10.1</a>.
-
-<p><a name="note100">100)</a> Thus, in the following initialization,
+</small>
+<p><small><a name="note100" href="#note100">100)</a> Thus, in the following initialization,
 
 <pre>
           static int i = 2 || 1 / 0;</pre>
  the expression is a valid integer constant expression with value one.
-
+</small>
 
 <a name="6.7" href="#6.7"><h3>6.7 Declarations</h3></a>
 <h6>Syntax</h6>
@@ -5038,8 +5038,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#6.7.8">6.7.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note101">101)</a> Function definitions have a different syntax, described in <a href="#6.9.1">6.9.1</a>.
-
+<p><small><a name="note101" href="#note101">101)</a> Function definitions have a different syntax, described in <a href="#6.9.1">6.9.1</a>.
+</small>
 
 <a name="6.7.1" href="#6.7.1"><h4>6.7.1 Storage-class specifiers</h4></a>
 <h6>Syntax</h6>
@@ -5079,15 +5079,15 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: type definitions (<a href="#6.7.7">6.7.7</a>).
 
 <h6>footnotes</h6>
-<p><a name="note102">102)</a> See ''future language directions'' (<a href="#6.11.5">6.11.5</a>).
-
-<p><a name="note103">103)</a> The implementation may treat any register declaration simply as an auto declaration. However,
+<p><small><a name="note102" href="#note102">102)</a> See ''future language directions'' (<a href="#6.11.5">6.11.5</a>).
+</small>
+<p><small><a name="note103" href="#note103">103)</a> The implementation may treat any register declaration simply as an auto declaration. However,
  whether or not addressable storage is actually used, the address of any part of an object declared with
  storage-class specifier register cannot be computed, either explicitly (by use of the unary &amp;
  operator as discussed in <a href="#6.5.3.2">6.5.3.2</a>) or implicitly (by converting an array name to a pointer as discussed in
  <a href="#6.3.2.1">6.3.2.1</a>). Thus, the only operator that can be applied to an array declared with storage-class specifier
  register is sizeof.
-
+</small>
 
 <a name="6.7.2" href="#6.7.2"><h4>6.7.2 Type specifiers</h4></a>
 <h6>Syntax</h6>
@@ -5162,8 +5162,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 113 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note104">104)</a> Freestanding implementations are not required to provide complex types.                  *
-
+<p><small><a name="note104" href="#note104">104)</a> Freestanding implementations are not required to provide complex types.                  *
+</small>
 
 <a name="6.7.2.1" href="#6.7.2.1"><h5>6.7.2.1 Structure and union specifiers</h5></a>
 <h6>Syntax</h6>
@@ -5349,18 +5349,18 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 117 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note105">105)</a> A structure or union can not contain a member with a variably modified type because member names
+<p><small><a name="note105" href="#note105">105)</a> A structure or union can not contain a member with a variably modified type because member names
  are not ordinary identifiers as defined in <a href="#6.2.3">6.2.3</a>.
-
-<p><a name="note106">106)</a> The unary &amp; (address-of) operator cannot be applied to a bit-field object; thus, there are no pointers to
+</small>
+<p><small><a name="note106" href="#note106">106)</a> The unary &amp; (address-of) operator cannot be applied to a bit-field object; thus, there are no pointers to
  or arrays of bit-field objects.
-
-<p><a name="note107">107)</a> As specified in <a href="#6.7.2">6.7.2</a> above, if the actual type specifier used is int or a typedef-name defined as int,
+</small>
+<p><small><a name="note107" href="#note107">107)</a> As specified in <a href="#6.7.2">6.7.2</a> above, if the actual type specifier used is int or a typedef-name defined as int,
  then it is implementation-defined whether the bit-field is signed or unsigned.
-
-<p><a name="note108">108)</a> An unnamed bit-field structure member is useful for padding to conform to externally imposed
+</small>
+<p><small><a name="note108" href="#note108">108)</a> An unnamed bit-field structure member is useful for padding to conform to externally imposed
  layouts.
-
+</small>
 
 <a name="6.7.2.2" href="#6.7.2.2"><h5>6.7.2.2 Enumeration specifiers</h5></a>
 <h6>Syntax</h6>
@@ -5416,12 +5416,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: tags (<a href="#6.7.2.3">6.7.2.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note109">109)</a> Thus, the identifiers of enumeration constants declared in the same scope shall all be distinct from
+<p><small><a name="note109" href="#note109">109)</a> Thus, the identifiers of enumeration constants declared in the same scope shall all be distinct from
  each other and from other identifiers declared in ordinary declarators.
-
-<p><a name="note110">110)</a> An implementation may delay the choice of which integer type until all enumeration constants have
+</small>
+<p><small><a name="note110" href="#note110">110)</a> An implementation may delay the choice of which integer type until all enumeration constants have
  been seen.
-
+</small>
 
 <a name="6.7.2.3" href="#6.7.2.3"><h5>6.7.2.3 Tags</h5></a>
 <h6>Constraints</h6>
@@ -5529,18 +5529,18 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#6.7.7">6.7.7</a>).
 
 <h6>footnotes</h6>
-<p><a name="note111">111)</a> An incomplete type may only by used when the size of an object of that type is not needed. It is not
+<p><small><a name="note111" href="#note111">111)</a> An incomplete type may only by used when the size of an object of that type is not needed. It is not
  needed, for example, when a typedef name is declared to be a specifier for a structure or union, or
  when a pointer to or a function returning a structure or union is being declared. (See incomplete types
  in <a href="#6.2.5">6.2.5</a>.) The specification has to be complete before such a function is called or defined.
-
-<p><a name="note112">112)</a> If there is no identifier, the type can, within the translation unit, only be referred to by the declaration
+</small>
+<p><small><a name="note112" href="#note112">112)</a> If there is no identifier, the type can, within the translation unit, only be referred to by the declaration
  of which it is a part. Of course, when the declaration is of a typedef name, subsequent declarations
  can make use of that typedef name to declare objects having the specified structure, union, or
  enumerated type.
-
-<p><a name="note113">113)</a> A similar construction with enum does not exist.
-
+</small>
+<p><small><a name="note113" href="#note113">113)</a> A similar construction with enum does not exist.
+</small>
 
 <a name="6.7.3" href="#6.7.3"><h4>6.7.3 Type qualifiers</h4></a>
 <h6>Syntax</h6>
@@ -5625,24 +5625,24 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note114">114)</a> The implementation may place a const object that is not volatile in a read-only region of
+<p><small><a name="note114" href="#note114">114)</a> The implementation may place a const object that is not volatile in a read-only region of
  storage. Moreover, the implementation need not allocate storage for such an object if its address is
  never used.
-
-<p><a name="note115">115)</a> This applies to those objects that behave as if they were defined with qualified types, even if they are
+</small>
+<p><small><a name="note115" href="#note115">115)</a> This applies to those objects that behave as if they were defined with qualified types, even if they are
  never actually defined as objects in the program (such as an object at a memory-mapped input/output
  address).
-
-<p><a name="note116">116)</a> A volatile declaration may be used to describe an object corresponding to a memory-mapped
+</small>
+<p><small><a name="note116" href="#note116">116)</a> A volatile declaration may be used to describe an object corresponding to a memory-mapped
  input/output port or an object accessed by an asynchronously interrupting function. Actions on
  objects so declared shall not be ''optimized out'' by an implementation or reordered except as
  permitted by the rules for evaluating expressions.
-
-<p><a name="note117">117)</a> For example, a statement that assigns a value returned by malloc to a single pointer establishes this
+</small>
+<p><small><a name="note117" href="#note117">117)</a> For example, a statement that assigns a value returned by malloc to a single pointer establishes this
  association between the allocated object and the pointer.
-
-<p><a name="note118">118)</a> Both of these can occur through the use of typedefs.
-
+</small>
+<p><small><a name="note118" href="#note118">118)</a> Both of these can occur through the use of typedefs.
+</small>
 
 <a name="6.7.3.1" href="#6.7.3.1"><h5>6.7.3.1 Formal definition of restrict</h5></a>
 <p><!--para 1-->
@@ -5755,11 +5755,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note119">119)</a> In other words, E depends on the value of P itself rather than on the value of an object referenced
+<p><small><a name="note119" href="#note119">119)</a> In other words, E depends on the value of P itself rather than on the value of an object referenced
  indirectly through P. For example, if identifier p has type (int **restrict), then the pointer
  expressions p and p+1 are based on the restricted pointer object designated by p, but the pointer
  expressions *p and p[1] are not.
-
+</small>
 
 <a name="6.7.4" href="#6.7.4"><h4>6.7.4 Function specifiers</h4></a>
 <h6>Syntax</h6>
@@ -5827,21 +5827,21 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 126 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note120">120)</a> By using, for example, an alternative to the usual function call mechanism, such as ''inline
+<p><small><a name="note120" href="#note120">120)</a> By using, for example, an alternative to the usual function call mechanism, such as ''inline
  substitution''. Inline substitution is not textual substitution, nor does it create a new function.
  Therefore, for example, the expansion of a macro used within the body of the function uses the
  definition it had at the point the function body appears, and not where the function is called; and
  identifiers refer to the declarations in scope where the body occurs. Likewise, the function has a
  single address, regardless of the number of inline definitions that occur in addition to the external
  definition.
-
-<p><a name="note121">121)</a> For example, an implementation might never perform inline substitution, or might only perform inline
+</small>
+<p><small><a name="note121" href="#note121">121)</a> For example, an implementation might never perform inline substitution, or might only perform inline
  substitutions to calls in the scope of an inline declaration.
-
-<p><a name="note122">122)</a> Since an inline definition is distinct from the corresponding external definition and from any other
+</small>
+<p><small><a name="note122" href="#note122">122)</a> Since an inline definition is distinct from the corresponding external definition and from any other
  corresponding inline definitions in other translation units, all corresponding objects with static storage
  duration are also distinct in each of the definitions.
-
+</small>
 
 <a name="6.7.5" href="#6.7.5"><h4>6.7.5 Declarators</h4></a>
 <h6>Syntax</h6>
@@ -6059,10 +6059,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  initialization (<a href="#6.7.8">6.7.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note123">123)</a> When several ''array of'' specifications are adjacent, a multidimensional array is declared.
-
-<p><a name="note124">124)</a> Thus, * can be used only in function declarations that are not definitions (see <a href="#6.7.5.3">6.7.5.3</a>).
-
+<p><small><a name="note123" href="#note123">123)</a> When several ''array of'' specifications are adjacent, a multidimensional array is declared.
+</small>
+<p><small><a name="note124" href="#note124">124)</a> Thus, * can be used only in function declarations that are not definitions (see <a href="#6.7.5.3">6.7.5.3</a>).
+</small>
 
 <a name="6.7.5.3" href="#6.7.5.3"><h5>6.7.5.3 Function declarators (including prototypes)</h5></a>
 <h6>Constraints</h6>
@@ -6218,13 +6218,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 134 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note125">125)</a> The macros defined in the <a href="#7.15">&lt;stdarg.h&gt;</a> header (<a href="#7.15">7.15</a>) may be used to access arguments that
+<p><small><a name="note125" href="#note125">125)</a> The macros defined in the <a href="#7.15">&lt;stdarg.h&gt;</a> header (<a href="#7.15">7.15</a>) may be used to access arguments that
  correspond to the ellipsis.
-
-<p><a name="note126">126)</a> See ''future language directions'' (<a href="#6.11.6">6.11.6</a>).
-
-<p><a name="note127">127)</a> If both function types are ''old style'', parameter types are not compared.
-
+</small>
+<p><small><a name="note126" href="#note126">126)</a> See ''future language directions'' (<a href="#6.11.6">6.11.6</a>).
+</small>
+<p><small><a name="note127" href="#note127">127)</a> If both function types are ''old style'', parameter types are not compared.
+</small>
 
 <a name="6.7.6" href="#6.7.6"><h4>6.7.6 Type names</h4></a>
 <h6>Syntax</h6>
@@ -6274,9 +6274,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 135 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note128">128)</a> As indicated by the syntax, empty parentheses in a type name are interpreted as ''function with no
+<p><small><a name="note128" href="#note128">128)</a> As indicated by the syntax, empty parentheses in a type name are interpreted as ''function with no
  parameter specification'', rather than redundant parentheses around the omitted identifier.
-
+</small>
 
 <a name="6.7.7" href="#6.7.7"><h4>6.7.7 Type definitions</h4></a>
 <h6>Syntax</h6>
@@ -6674,21 +6674,21 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 143 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note129">129)</a> If the initializer list for a subaggregate or contained union does not begin with a left brace, its
+<p><small><a name="note129" href="#note129">129)</a> If the initializer list for a subaggregate or contained union does not begin with a left brace, its
  subobjects are initialized as usual, but the subaggregate or contained union does not become the
  current object: current objects are associated only with brace-enclosed initializer lists.
-
-<p><a name="note130">130)</a> After a union member is initialized, the next object is not the next member of the union; instead, it is
+</small>
+<p><small><a name="note130" href="#note130">130)</a> After a union member is initialized, the next object is not the next member of the union; instead, it is
  the next subobject of an object containing the union.
-
-<p><a name="note131">131)</a> Thus, a designator can only specify a strict subobject of the aggregate or union that is associated with
+</small>
+<p><small><a name="note131" href="#note131">131)</a> Thus, a designator can only specify a strict subobject of the aggregate or union that is associated with
  the surrounding brace pair. Note, too, that each separate designator list is independent.
-
-<p><a name="note132">132)</a> Any initializer for the subobject which is overridden and so not used to initialize that subobject might
+</small>
+<p><small><a name="note132" href="#note132">132)</a> Any initializer for the subobject which is overridden and so not used to initialize that subobject might
  not be evaluated at all.
-
-<p><a name="note133">133)</a> In particular, the evaluation order need not be the same as the order of subobject initialization.
-
+</small>
+<p><small><a name="note133" href="#note133">133)</a> In particular, the evaluation order need not be the same as the order of subobject initialization.
+</small>
 
 <a name="6.8" href="#6.8"><h3>6.8 Statements and blocks</h3></a>
 <h6>Syntax</h6>
@@ -6812,8 +6812,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: iteration statements (<a href="#6.8.5">6.8.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note134">134)</a> Such as assignments, and function calls which have side effects.
-
+<p><small><a name="note134" href="#note134">134)</a> Such as assignments, and function calls which have side effects.
+</small>
 
 <a name="6.8.4" href="#6.8.4"><h4>6.8.4 Selection statements</h4></a>
 <h6>Syntax</h6>
@@ -6904,9 +6904,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note135">135)</a> That is, the declaration either precedes the switch statement, or it follows the last case or
+<p><small><a name="note135" href="#note135">135)</a> That is, the declaration either precedes the switch statement, or it follows the last case or
  default label associated with the switch that is in the block containing the declaration.
-
+</small>
 
 <a name="6.8.5" href="#6.8.5"><h4>6.8.5 Iteration statements</h4></a>
 <h6>Syntax</h6>
@@ -6939,9 +6939,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 148 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note136">136)</a> Code jumped over is not executed. In particular, the controlling expression of a for or while
+<p><small><a name="note136" href="#note136">136)</a> Code jumped over is not executed. In particular, the controlling expression of a for or while
  statement is not evaluated before entering the loop body, nor is clause-1 of a for statement.
-
+</small>
 
 <a name="6.8.5.1" href="#6.8.5.1"><h5>6.8.5.1 The while statement</h5></a>
 <p><!--para 1-->
@@ -6970,11 +6970,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  nonzero constant.
 
 <h6>footnotes</h6>
-<p><a name="note137">137)</a> Thus, clause-1 specifies initialization for the loop, possibly declaring one or more variables for use in
+<p><small><a name="note137" href="#note137">137)</a> Thus, clause-1 specifies initialization for the loop, possibly declaring one or more variables for use in
  the loop; the controlling expression, expression-2, specifies an evaluation made before each iteration,
  such that execution of the loop continues until the expression compares equal to 0; and expression-3
  specifies an operation (such as incrementing) that is performed after each iteration.
-
+</small>
 
 <a name="6.8.6" href="#6.8.6"><h4>6.8.6 Jump statements</h4></a>
 <h6>Syntax</h6>
@@ -7069,8 +7069,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  case it is interpreted within that statement), it is equivalent to goto contin;.<sup><a href="#note138"><b>138)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note138">138)</a> Following the contin: label is a null statement.
-
+<p><small><a name="note138" href="#note138">138)</a> Following the contin: label is a null statement.
+</small>
 
 <a name="6.8.6.3" href="#6.8.6.3"><h5>6.8.6.3 The break statement</h5></a>
 <h6>Constraints</h6>
@@ -7129,11 +7129,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 152 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note139">139)</a> The return statement is not an assignment. The overlap restriction of subclause <a href="#6.5.16.1">6.5.16.1</a> does not
+<p><small><a name="note139" href="#note139">139)</a> The return statement is not an assignment. The overlap restriction of subclause <a href="#6.5.16.1">6.5.16.1</a> does not
  apply to the case of function return. The representation of floating-point values may have wider range
  or precision and is determined by FLT_EVAL_METHOD. A cast may be used to remove this extra
  range and precision.
-
+</small>
 
 <a name="6.9" href="#6.9"><h3>6.9 External definitions</h3></a>
 <h6>Syntax</h6>
@@ -7176,9 +7176,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 153 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note140">140)</a> Thus, if an identifier declared with external linkage is not used in an expression, there need be no
+<p><small><a name="note140" href="#note140">140)</a> Thus, if an identifier declared with external linkage is not used in an expression, there need be no
  external definition for it.
-
+</small>
 
 <a name="6.9.1" href="#6.9.1"><h4>6.9.1 Function definitions</h4></a>
 <h6>Syntax</h6>
@@ -7294,7 +7294,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note141">141)</a> The intent is that the type category in a function definition cannot be inherited from a typedef:
+<p><small><a name="note141" href="#note141">141)</a> The intent is that the type category in a function definition cannot be inherited from a typedef:
 
 <pre>
           typedef int F(void);                          //   type F is ''function with no parameters
@@ -7308,9 +7308,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
           F *((e))(void) { /* ... */ }                  //   same: parentheses irrelevant
           int (*fp)(void);                              //   fp points to a function that has type F
           F *Fp;                                        //   Fp points to a function that has type F</pre>
-
-<p><a name="note142">142)</a> See ''future language directions'' (<a href="#6.11.7">6.11.7</a>).
-
+</small>
+<p><small><a name="note142" href="#note142">142)</a> See ''future language directions'' (<a href="#6.11.7">6.11.7</a>).
+</small>
 
 <a name="6.9.2" href="#6.9.2"><h4>6.9.2 External object definitions</h4></a>
 <h6>Semantics</h6>
@@ -7457,10 +7457,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note143">143)</a> Thus, preprocessing directives are commonly called ''lines''. These ''lines'' have no other syntactic
+<p><small><a name="note143" href="#note143">143)</a> Thus, preprocessing directives are commonly called ''lines''. These ''lines'' have no other syntactic
  significance, as all white space is equivalent except in certain situations during preprocessing (see the
  # character string literal creation operator in <a href="#6.10.3.2">6.10.3.2</a>, for example).
-
+</small>
 
 <a name="6.10.1" href="#6.10.1"><h4>6.10.1 Conditional inclusion</h4></a>
 <h6>Constraints</h6>
@@ -7537,23 +7537,23 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  integer types (<a href="#7.18.1.5">7.18.1.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note144">144)</a> Because the controlling constant expression is evaluated during translation phase 4, all identifiers
+<p><small><a name="note144" href="#note144">144)</a> Because the controlling constant expression is evaluated during translation phase 4, all identifiers
  either are or are not macro names -- there simply are no keywords, enumeration constants, etc.
-
-<p><a name="note145">145)</a> Thus, on an implementation where INT_MAX is 0x7FFF and UINT_MAX is 0xFFFF, the constant
+</small>
+<p><small><a name="note145" href="#note145">145)</a> Thus, on an implementation where INT_MAX is 0x7FFF and UINT_MAX is 0xFFFF, the constant
  0x8000 is signed and positive within a #if expression even though it would be unsigned in
  translation phase 7.
-
-<p><a name="note146">146)</a> Thus, the constant expression in the following #if directive and if statement is not guaranteed to
+</small>
+<p><small><a name="note146" href="#note146">146)</a> Thus, the constant expression in the following #if directive and if statement is not guaranteed to
  evaluate to the same value in these two contexts.
    #if 'z' - 'a' == 25
    if ('z' - 'a' == 25)
  
-
-<p><a name="note147">147)</a> As indicated by the syntax, a preprocessing token shall not follow a #else or #endif directive
+</small>
+<p><small><a name="note147" href="#note147">147)</a> As indicated by the syntax, a preprocessing token shall not follow a #else or #endif directive
  before the terminating new-line character. However, comments may appear anywhere in a source file,
  including within a preprocessing directive.
-
+</small>
 
 <a name="6.10.2" href="#6.10.2"><h4>6.10.2 Source file inclusion</h4></a>
 <h6>Constraints</h6>
@@ -7632,9 +7632,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: macro replacement (<a href="#6.10.3">6.10.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note148">148)</a> Note that adjacent string literals are not concatenated into a single string literal (see the translation
+<p><small><a name="note148" href="#note148">148)</a> Note that adjacent string literals are not concatenated into a single string literal (see the translation
  phases in <a href="#5.1.1.2">5.1.1.2</a>); thus, an expansion that results in two string literals is an invalid directive.
-
+</small>
 
 <a name="6.10.3" href="#6.10.3"><h4>6.10.3 Macro replacement</h4></a>
 <h6>Constraints</h6>
@@ -7719,12 +7719,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  definition (excluding the ...).
 
 <h6>footnotes</h6>
-<p><a name="note149">149)</a> Since, by macro-replacement time, all character constants and string literals are preprocessing tokens,
+<p><small><a name="note149" href="#note149">149)</a> Since, by macro-replacement time, all character constants and string literals are preprocessing tokens,
  not sequences possibly containing identifier-like subsequences (see <a href="#5.1.1.2">5.1.1.2</a>, translation phases), they
  are never scanned for macro names or parameters.
-
-<p><a name="note150">150)</a> Despite the name, a non-directive is a preprocessing directive.
-
+</small>
+<p><small><a name="note150" href="#note150">150)</a> Despite the name, a non-directive is a preprocessing directive.
+</small>
 
 <a name="6.10.3.1" href="#6.10.3.1"><h5>6.10.3.1 Argument substitution</h5></a>
 <p><!--para 1-->
@@ -7810,9 +7810,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 167 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note151">151)</a> Placemarker preprocessing tokens do not appear in the syntax because they are temporary entities that
+<p><small><a name="note151" href="#note151">151)</a> Placemarker preprocessing tokens do not appear in the syntax because they are temporary entities that
  exist only within translation phase 4.
-
+</small>
 
 <a name="6.10.3.4" href="#6.10.3.4"><h5>6.10.3.4 Rescanning and further replacement</h5></a>
 <p><!--para 1-->
@@ -8050,14 +8050,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 172 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note152">152)</a> An implementation is not required to perform macro replacement in pragmas, but it is permitted
+<p><small><a name="note152" href="#note152">152)</a> An implementation is not required to perform macro replacement in pragmas, but it is permitted
  except for in standard pragmas (where STDC immediately follows pragma). If the result of macro
  replacement in a non-standard pragma has the same form as a standard pragma, the behavior is still
  implementation-defined; an implementation is permitted to behave as if it were the standard pragma,
  but is not required to.
-
-<p><a name="note153">153)</a> See ''future language directions'' (<a href="#6.11.8">6.11.8</a>).
-
+</small>
+<p><small><a name="note153" href="#note153">153)</a> See ''future language directions'' (<a href="#6.11.8">6.11.8</a>).
+</small>
 
 <a name="6.10.7" href="#6.10.7"><h4>6.10.7 Null directive</h4></a>
 <h6>Semantics</h6>
@@ -8131,14 +8131,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: the asctime function (<a href="#7.23.3.1">7.23.3.1</a>), standard headers (<a href="#7.1.2">7.1.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note154">154)</a> See ''future language directions'' (<a href="#6.11.9">6.11.9</a>).
-
-<p><a name="note155">155)</a> The presumed source file name and line number can be changed by the #line directive.
-
-<p><a name="note156">156)</a> This macro was not specified in ISO/IEC 9899:1990 and was specified as 199409L in
+<p><small><a name="note154" href="#note154">154)</a> See ''future language directions'' (<a href="#6.11.9">6.11.9</a>).
+</small>
+<p><small><a name="note155" href="#note155">155)</a> The presumed source file name and line number can be changed by the #line directive.
+</small>
+<p><small><a name="note156" href="#note156">156)</a> This macro was not specified in ISO/IEC 9899:1990 and was specified as 199409L in
  ISO/IEC 9899/AMD1:1995. The intention is that this will remain an integer constant of type long
  int that is increased with each revision of this International Standard.
-
+</small>
 
 <a name="6.10.9" href="#6.10.9"><h4>6.10.9 Pragma operator</h4></a>
 <h6>Semantics</h6>
@@ -8255,14 +8255,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 177 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note157">157)</a> The functions that make use of the decimal-point character are the numeric conversion functions
+<p><small><a name="note157" href="#note157">157)</a> The functions that make use of the decimal-point character are the numeric conversion functions
  (<a href="#7.20.1">7.20.1</a>, <a href="#7.24.4.1">7.24.4.1</a>) and the formatted input/output functions (<a href="#7.19.6">7.19.6</a>, <a href="#7.24.2">7.24.2</a>).
-
-<p><a name="note158">158)</a> For state-dependent encodings, the values for MB_CUR_MAX and MB_LEN_MAX shall thus be large
+</small>
+<p><small><a name="note158" href="#note158">158)</a> For state-dependent encodings, the values for MB_CUR_MAX and MB_LEN_MAX shall thus be large
  enough to count all the bytes in any complete multibyte character plus at least one adjacent shift
  sequence of maximum length. Whether these counts provide for more than one shift sequence is the
  implementation's choice.
-
+</small>
 
 <a name="7.1.2" href="#7.1.2"><h4>7.1.2 Standard headers</h4></a>
 <p><!--para 1-->
@@ -8311,9 +8311,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 178 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note159">159)</a> A header is not necessarily a source file, nor are the &lt; and &gt; delimited sequences in header names
+<p><small><a name="note159" href="#note159">159)</a> A header is not necessarily a source file, nor are the &lt; and &gt; delimited sequences in header names
  necessarily valid source file names.
-
+</small>
 
 <a name="7.1.3" href="#7.1.3"><h4>7.1.3 Reserved identifiers</h4></a>
 <p><!--para 1-->
@@ -8345,9 +8345,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  group listed above, the behavior is undefined.
 
 <h6>footnotes</h6>
-<p><a name="note160">160)</a> The list of reserved identifiers with external linkage includes errno, math_errhandling,
+<p><small><a name="note160" href="#note160">160)</a> The list of reserved identifiers with external linkage includes errno, math_errhandling,
  setjmp, and va_end.
-
+</small>
 
 <a name="7.1.4" href="#7.1.4"><h4>7.1.4 Use of library functions</h4></a>
 <p><!--para 1-->
@@ -8423,12 +8423,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note161">161)</a> This means that an implementation shall provide an actual function for each library function, even if it
+<p><small><a name="note161" href="#note161">161)</a> This means that an implementation shall provide an actual function for each library function, even if it
  also provides a macro for that function.
-
-<p><a name="note162">162)</a> Such macros might not contain the sequence points that the corresponding function calls do.
-
-<p><a name="note163">163)</a> Because external identifiers and some macro names beginning with an underscore are reserved,
+</small>
+<p><small><a name="note162" href="#note162">162)</a> Such macros might not contain the sequence points that the corresponding function calls do.
+</small>
+<p><small><a name="note163" href="#note163">163)</a> Because external identifiers and some macro names beginning with an underscore are reserved,
  implementations may provide special semantics for such names. For example, the identifier
  _BUILTIN_abs could be used to indicate generation of in-line code for the abs function. Thus, the
  appropriate header could specify
@@ -8444,9 +8444,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  whether the implementation's header provides a macro implementation of abs or a built-in
  implementation. The prototype for the function, which precedes and is hidden by any macro
  definition, is thereby revealed also.
-
-<p><a name="note164">164)</a> Thus, a signal handler cannot, in general, call standard library functions.
-
+</small>
+<p><small><a name="note164" href="#note164">164)</a> Thus, a signal handler cannot, in general, call standard library functions.
+</small>
 
 <a name="7.2" href="#7.2"><h3>7.2 Diagnostics <assert.h></h3></a>
 <p><!--para 1-->
@@ -8494,9 +8494,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 182 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note165">165)</a> The message written might be of the form:
+<p><small><a name="note165" href="#note165">165)</a> The message written might be of the form:
  Assertion failed: expression, function abc, file xyz, line nnn.
-
+</small>
 
 <a name="7.3" href="#7.3"><h3>7.3 Complex arithmetic <complex.h></h3></a>
 
@@ -8543,12 +8543,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 183 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note166">166)</a> See ''future library directions'' (<a href="#7.26.1">7.26.1</a>).
-
-<p><a name="note167">167)</a> The imaginary unit is a number i such that i 2   = -1.
-
-<p><a name="note168">168)</a> A specification for imaginary types is in informative <a href="#G">annex G</a>.
-
+<p><small><a name="note166" href="#note166">166)</a> See ''future library directions'' (<a href="#7.26.1">7.26.1</a>).
+</small>
+<p><small><a name="note167" href="#note167">167)</a> The imaginary unit is a number i such that i 2   = -1.
+</small>
+<p><small><a name="note168" href="#note168">168)</a> A specification for imaginary types is in informative <a href="#G">annex G</a>.
+</small>
 
 <a name="7.3.2" href="#7.3.2"><h4>7.3.2 Conventions</h4></a>
 <p><!--para 1-->
@@ -8600,7 +8600,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  undefined. The default state for the pragma is ''off''.
 
 <h6>footnotes</h6>
-<p><a name="note169">169)</a> The purpose of the pragma is to allow the implementation to use the formulas:
+<p><small><a name="note169" href="#note169">169)</a> The purpose of the pragma is to allow the implementation to use the formulas:
 
 <pre>
      (x + iy) x (u + iv) = (xu - yv) + i(yu + xv)
@@ -8608,7 +8608,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
      | x + iy | = (sqrt) x 2 + y 2
                   ???????????????</pre>
  where the programmer can determine they are safe.
-
+</small>
 
 <a name="7.3.5" href="#7.3.5"><h4>7.3.5 Trigonometric functions</h4></a>
 
@@ -8940,8 +8940,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The cimag functions return the imaginary part value (as a real).
 
 <h6>footnotes</h6>
-<p><a name="note170">170)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
-
+<p><small><a name="note170" href="#note170">170)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
+</small>
 
 <a name="7.3.9.3" href="#7.3.9.3"><h5>7.3.9.3 The conj functions</h5></a>
 <h6>Synopsis</h6>
@@ -9005,8 +9005,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 193 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note171">171)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
-
+<p><small><a name="note171" href="#note171">171)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
+</small>
 
 <a name="7.4" href="#7.4"><h3>7.4 Character handling <ctype.h></h3></a>
 <p><!--para 1-->
@@ -9025,12 +9025,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: EOF (<a href="#7.19.1">7.19.1</a>), localization (<a href="#7.11">7.11</a>).
 
 <h6>footnotes</h6>
-<p><a name="note172">172)</a> See ''future library directions'' (<a href="#7.26.2">7.26.2</a>).
-
-<p><a name="note173">173)</a> In an implementation that uses the seven-bit US ASCII character set, the printing characters are those
+<p><small><a name="note172" href="#note172">172)</a> See ''future library directions'' (<a href="#7.26.2">7.26.2</a>).
+</small>
+<p><small><a name="note173" href="#note173">173)</a> In an implementation that uses the seven-bit US ASCII character set, the printing characters are those
  whose values lie from 0x20 (space) through 0x7E (tilde); the control characters are those whose
  values lie from 0 (NUL) through 0x1F (US), and the character 0x7F (DEL).
-
+</small>
 
 <a name="7.4.1" href="#7.4.1"><h4>7.4.1 Character classification functions</h4></a>
 <p><!--para 1-->
@@ -9065,9 +9065,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  isalpha returns true only for the characters for which isupper or islower is true.
 
 <h6>footnotes</h6>
-<p><a name="note174">174)</a> The functions islower and isupper test true or false separately for each of these additional
+<p><small><a name="note174" href="#note174">174)</a> The functions islower and isupper test true or false separately for each of these additional
  characters; all four combinations are possible.
-
+</small>
 
 <a name="7.4.1.3" href="#7.4.1.3"><h5>7.4.1.3 The isblank function</h5></a>
 <h6>Synopsis</h6>
@@ -9262,16 +9262,16 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 199 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note175">175)</a> The macro errno need not be the identifier of an object. It might expand to a modifiable lvalue
+<p><small><a name="note175" href="#note175">175)</a> The macro errno need not be the identifier of an object. It might expand to a modifiable lvalue
  resulting from a function call (for example, *errno()).
-
-<p><a name="note176">176)</a> Thus, a program that uses errno for error checking should set it to zero before a library function call,
+</small>
+<p><small><a name="note176" href="#note176">176)</a> Thus, a program that uses errno for error checking should set it to zero before a library function call,
  then inspect it before a subsequent library function call. Of course, a library function can save the
  value of errno on entry and then set it to zero, as long as the original value is restored if errno's
  value is still zero just before the return.
-
-<p><a name="note177">177)</a> See ''future library directions'' (<a href="#7.26.3">7.26.3</a>).
-
+</small>
+<p><small><a name="note177" href="#note177">177)</a> See ''future library directions'' (<a href="#7.26.3">7.26.3</a>).
+</small>
 
 <a name="7.6" href="#7.6"><h3>7.6 Floating-point environment <fenv.h></h3></a>
 <p><!--para 1-->
@@ -9364,25 +9364,25 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  also be specified by the implementation.
 
 <h6>footnotes</h6>
-<p><a name="note178">178)</a> This header is designed to support the floating-point exception status flags and directed-rounding
+<p><small><a name="note178" href="#note178">178)</a> This header is designed to support the floating-point exception status flags and directed-rounding
  control modes required by IEC 60559, and other similar floating-point state information. Also it is
  designed to facilitate code portability among all systems.
-
-<p><a name="note179">179)</a> A floating-point status flag is not an object and can be set more than once within an expression.
-
-<p><a name="note180">180)</a> With these conventions, a programmer can safely assume default floating-point control modes (or be
+</small>
+<p><small><a name="note179" href="#note179">179)</a> A floating-point status flag is not an object and can be set more than once within an expression.
+</small>
+<p><small><a name="note180" href="#note180">180)</a> With these conventions, a programmer can safely assume default floating-point control modes (or be
  unaware of them). The responsibilities associated with accessing the floating-point environment fall
  on the programmer or program that does so explicitly.
-
-<p><a name="note181">181)</a> The implementation supports an exception if there are circumstances where a call to at least one of the
+</small>
+<p><small><a name="note181" href="#note181">181)</a> The implementation supports an exception if there are circumstances where a call to at least one of the
  functions in <a href="#7.6.2">7.6.2</a>, using the macro as the appropriate argument, will succeed. It is not necessary for
  all the functions to succeed all the time.
-
-<p><a name="note182">182)</a> The macros should be distinct powers of two.
-
-<p><a name="note183">183)</a> Even though the rounding direction macros may expand to constants corresponding to the values of
+</small>
+<p><small><a name="note182" href="#note182">182)</a> The macros should be distinct powers of two.
+</small>
+<p><small><a name="note183" href="#note183">183)</a> Even though the rounding direction macros may expand to constants corresponding to the values of
  FLT_ROUNDS, they are not required to do so.
-
+</small>
 
 <a name="7.6.1" href="#7.6.1"><h4>7.6.1 The FENV_ACCESS pragma</h4></a>
 <h6>Synopsis</h6>
@@ -9436,15 +9436,15 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note184">184)</a> The purpose of the FENV_ACCESS pragma is to allow certain optimizations that could subvert flag
+<p><small><a name="note184" href="#note184">184)</a> The purpose of the FENV_ACCESS pragma is to allow certain optimizations that could subvert flag
  tests and mode changes (e.g., global common subexpression elimination, code motion, and constant
  folding). In general, if the state of FENV_ACCESS is ''off'', the translator can assume that default
  modes are in effect and the flags are not tested.
-
-<p><a name="note185">185)</a> The side effects impose a temporal ordering that requires two evaluations of x + 1. On the other
+</small>
+<p><small><a name="note185" href="#note185">185)</a> The side effects impose a temporal ordering that requires two evaluations of x + 1. On the other
  hand, without the #pragma STDC FENV_ACCESS ON pragma, and assuming the default state is
  ''off'', just one evaluation of x + 1 would suffice.
-
+</small>
 
 <a name="7.6.2" href="#7.6.2"><h4>7.6.2 Floating-point exceptions</h4></a>
 <p><!--para 1-->
@@ -9455,12 +9455,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  functions is undefined.
 
 <h6>footnotes</h6>
-<p><a name="note186">186)</a> The functions fetestexcept, feraiseexcept, and feclearexcept support the basic
+<p><small><a name="note186" href="#note186">186)</a> The functions fetestexcept, feraiseexcept, and feclearexcept support the basic
  abstraction of flags that are either set or clear. An implementation may endow floating-point status
  flags with more information -- for example, the address of the code which first raised the floating-
  point exception; the functions fegetexceptflag and fesetexceptflag deal with the full
  content of flags.
-
+</small>
 
 <a name="7.6.2.1" href="#7.6.2.1"><h5>7.6.2.1 The feclearexcept function</h5></a>
 <h6>Synopsis</h6>
@@ -9521,10 +9521,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 204 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note187">187)</a> The effect is intended to be similar to that of floating-point exceptions raised by arithmetic operations.
+<p><small><a name="note187" href="#note187">187)</a> The effect is intended to be similar to that of floating-point exceptions raised by arithmetic operations.
  Hence, enabled traps for floating-point exceptions raised by this function are taken. The specification
  in <a href="#F.7.6">F.7.6</a> is in the same spirit.
-
+</small>
 
 <a name="7.6.2.4" href="#7.6.2.4"><h5>7.6.2.4 The fesetexceptflag function</h5></a>
 <h6>Synopsis</h6>
@@ -9586,8 +9586,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note188">188)</a> This mechanism allows testing several floating-point exceptions with just one function call.
-
+<p><small><a name="note188" href="#note188">188)</a> This mechanism allows testing several floating-point exceptions with just one function call.
+</small>
 
 <a name="7.6.3" href="#7.6.3"><h4>7.6.3 Rounding</h4></a>
 <p><!--para 1-->
@@ -9684,11 +9684,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  exception handling was successfully installed.
 
 <h6>footnotes</h6>
-<p><a name="note189">189)</a> IEC 60559 systems have a default non-stop mode, and typically at least one other mode for trap
+<p><small><a name="note189" href="#note189">189)</a> IEC 60559 systems have a default non-stop mode, and typically at least one other mode for trap
  handling or aborting; if the system provides only the non-stop mode then installing it is trivial. For
  such systems, the feholdexcept function can be used in conjunction with the feupdateenv
  function to write routines that hide spurious floating-point exceptions from their callers.
-
+</small>
 
 <a name="7.6.4.3" href="#7.6.4.3"><h5>7.6.4.3 The fesetenv function</h5></a>
 <h6>Synopsis</h6>
@@ -9776,8 +9776,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  functions (<a href="#7.19.6">7.19.6</a>), formatted wide character input/output functions (<a href="#7.24.2">7.24.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note190">190)</a> See ''future library directions'' (<a href="#7.26.4">7.26.4</a>).
-
+<p><small><a name="note190" href="#note190">190)</a> See ''future library directions'' (<a href="#7.26.4">7.26.4</a>).
+</small>
 
 <a name="7.8.1" href="#7.8.1"><h4>7.8.1 Macros for format specifiers</h4></a>
 <p><!--para 1-->
@@ -9838,13 +9838,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note191">191)</a> C++ implementations should define these macros only when __STDC_FORMAT_MACROS is defined
+<p><small><a name="note191" href="#note191">191)</a> C++ implementations should define these macros only when __STDC_FORMAT_MACROS is defined
  before <a href="#7.8">&lt;inttypes.h&gt;</a> is included.
-
-<p><a name="note192">192)</a> Separate macros are given for use with fprintf and fscanf functions because, in the general case,
+</small>
+<p><small><a name="note192" href="#note192">192)</a> Separate macros are given for use with fprintf and fscanf functions because, in the general case,
  different format specifiers may be required for fprintf and fscanf, even when the type is the
  same.
-
+</small>
 
 <a name="7.8.2" href="#7.8.2"><h4>7.8.2 Functions for greatest-width integer types</h4></a>
 
@@ -9867,8 +9867,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The imaxabs function returns the absolute value.
 
 <h6>footnotes</h6>
-<p><a name="note193">193)</a> The absolute value of the most negative number cannot be represented in two's complement.
-
+<p><small><a name="note193" href="#note193">193)</a> The absolute value of the most negative number cannot be represented in two's complement.
+</small>
 
 <a name="7.8.2.2" href="#7.8.2.2"><h5>7.8.2.2 The imaxdiv function</h5></a>
 <h6>Synopsis</h6>
@@ -10017,10 +10017,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  implementation.
 
 <h6>footnotes</h6>
-<p><a name="note194">194)</a> ISO/IEC 9945-2 specifies locale and charmap formats that may be used to specify locales for C.
-
-<p><a name="note195">195)</a> See ''future library directions'' (<a href="#7.26.5">7.26.5</a>).
-
+<p><small><a name="note194" href="#note194">194)</a> ISO/IEC 9945-2 specifies locale and charmap formats that may be used to specify locales for C.
+</small>
+<p><small><a name="note195" href="#note195">195)</a> See ''future library directions'' (<a href="#7.26.5">7.26.5</a>).
+</small>
 
 <a name="7.11.1" href="#7.11.1"><h4>7.11.1 Locale control</h4></a>
 
@@ -10078,12 +10078,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  strftime function (<a href="#7.23.3.5">7.23.3.5</a>), the strxfrm function (<a href="#7.21.4.5">7.21.4.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note196">196)</a> The only functions in <a href="#7.4">7.4</a> whose behavior is not affected by the current locale are isdigit and
+<p><small><a name="note196" href="#note196">196)</a> The only functions in <a href="#7.4">7.4</a> whose behavior is not affected by the current locale are isdigit and
  isxdigit.
-
-<p><a name="note197">197)</a> The implementation shall arrange to encode in a string the various categories due to a heterogeneous
+</small>
+<p><small><a name="note197" href="#note197">197)</a> The implementation shall arrange to encode in a string the various categories due to a heterogeneous
  locale when category has the value LC_ALL.
-
+</small>
 
 <a name="7.11.2" href="#7.11.2"><h4>7.11.2 Numeric formatting convention inquiry</h4></a>
 
@@ -10415,22 +10415,22 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  <a href="#7.6">&lt;fenv.h&gt;</a>.
 
 <h6>footnotes</h6>
-<p><a name="note198">198)</a> Particularly on systems with wide expression evaluation, a <a href="#7.12">&lt;math.h&gt;</a> function might pass arguments
+<p><small><a name="note198" href="#note198">198)</a> Particularly on systems with wide expression evaluation, a <a href="#7.12">&lt;math.h&gt;</a> function might pass arguments
  and return values in wider format than the synopsis prototype indicates.
-
-<p><a name="note199">199)</a> The types float_t and double_t are intended to be the implementation's most efficient types at
+</small>
+<p><small><a name="note199" href="#note199">199)</a> The types float_t and double_t are intended to be the implementation's most efficient types at
  least as wide as float and double, respectively. For FLT_EVAL_METHOD equal 0, 1, or 2, the
  type float_t is the narrowest type used by the implementation to evaluate floating expressions.
-
-<p><a name="note200">200)</a> HUGE_VAL, HUGE_VALF, and HUGE_VALL can be positive infinities in an implementation that
+</small>
+<p><small><a name="note200" href="#note200">200)</a> HUGE_VAL, HUGE_VALF, and HUGE_VALL can be positive infinities in an implementation that
  supports infinities.
-
-<p><a name="note201">201)</a> In this case, using INFINITY will violate the constraint in <a href="#6.4.4">6.4.4</a> and thus require a diagnostic.
-
-<p><a name="note202">202)</a> Typically, the FP_FAST_FMA macro is defined if and only if the fma function is implemented
+</small>
+<p><small><a name="note201" href="#note201">201)</a> In this case, using INFINITY will violate the constraint in <a href="#6.4.4">6.4.4</a> and thus require a diagnostic.
+</small>
+<p><small><a name="note202" href="#note202">202)</a> Typically, the FP_FAST_FMA macro is defined if and only if the fma function is implemented
  directly with a hardware multiply-add instruction. Software implementations are expected to be
  substantially slower.
-
+</small>
 
 <a name="7.12.1" href="#7.12.1"><h4>7.12.1 Treatment of error conditions</h4></a>
 <p><!--para 1-->
@@ -10477,12 +10477,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  floating-point exception is raised is implementation-defined.
 
 <h6>footnotes</h6>
-<p><a name="note203">203)</a> In an implementation that supports infinities, this allows an infinity as an argument to be a domain
+<p><small><a name="note203" href="#note203">203)</a> In an implementation that supports infinities, this allows an infinity as an argument to be a domain
  error if the mathematical domain of the function does not include the infinity.
-
-<p><a name="note204">204)</a> The term underflow here is intended to encompass both ''gradual underflow'' as in IEC 60559 and
+</small>
+<p><small><a name="note204" href="#note204">204)</a> The term underflow here is intended to encompass both ''gradual underflow'' as in IEC 60559 and
  also ''flush-to-zero'' underflow.
-
+</small>
 
 <a name="7.12.2" href="#7.12.2"><h4>7.12.2 The FP_CONTRACT pragma</h4></a>
 <h6>Synopsis</h6>
@@ -10541,10 +10541,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note205">205)</a> Since an expression can be evaluated with more range and precision than its type has, it is important to
+<p><small><a name="note205" href="#note205">205)</a> Since an expression can be evaluated with more range and precision than its type has, it is important to
  know the type that classification is based on. For example, a normal long double value might
  become subnormal when converted to double, and zero when converted to float.
-
+</small>
 
 <a name="7.12.3.2" href="#7.12.3.2"><h5>7.12.3.2 The isfinite macro</h5></a>
 <h6>Synopsis</h6>
@@ -10600,9 +10600,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The isnan macro returns a nonzero value if and only if its argument has a NaN value.
 
 <h6>footnotes</h6>
-<p><a name="note206">206)</a> For the isnan macro, the type for determination does not matter unless the implementation supports
+<p><small><a name="note206" href="#note206">206)</a> For the isnan macro, the type for determination does not matter unless the implementation supports
  NaNs in the evaluation type but not in the semantic type.
-
+</small>
 
 <a name="7.12.3.5" href="#7.12.3.5"><h5>7.12.3.5 The isnormal macro</h5></a>
 <h6>Synopsis</h6>
@@ -10641,9 +10641,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  is negative.
 
 <h6>footnotes</h6>
-<p><a name="note207">207)</a> The signbit macro reports the sign of all values, including infinities, zeros, and NaNs. If zero is
+<p><small><a name="note207" href="#note207">207)</a> The signbit macro reports the sign of all values, including infinities, zeros, and NaNs. If zero is
  unsigned, it is treated as positive.
-
+</small>
 
 <a name="7.12.4" href="#7.12.4"><h4>7.12.4 Trigonometric functions</h4></a>
 
@@ -10914,8 +10914,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The expm1 functions return ex - 1.
 
 <h6>footnotes</h6>
-<p><a name="note208">208)</a> For small magnitude x, expm1(x) is expected to be more accurate than exp(x) - 1.
-
+<p><small><a name="note208" href="#note208">208)</a> For small magnitude x, expm1(x) is expected to be more accurate than exp(x) - 1.
+</small>
 
 <a name="7.12.6.4" href="#7.12.6.4"><h5>7.12.6.4 The frexp functions</h5></a>
 <h6>Synopsis</h6>
@@ -11028,8 +11028,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The log1p functions return loge (1 + x).
 
 <h6>footnotes</h6>
-<p><a name="note209">209)</a> For small magnitude x, log1p(x) is expected to be more accurate than log(1 + x).
-
+<p><small><a name="note209" href="#note209">209)</a> For small magnitude x, log1p(x) is expected to be more accurate than log(1 + x).
+</small>
 
 <a name="7.12.6.10" href="#7.12.6.10"><h5>7.12.6.10 The log2 functions</h5></a>
 <h6>Synopsis</h6>
@@ -11478,11 +11478,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 248 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note210">210)</a> ''When y != 0, the remainder r = x REM y is defined regardless of the rounding mode by the
+<p><small><a name="note210" href="#note210">210)</a> ''When y != 0, the remainder r = x REM y is defined regardless of the rounding mode by the
  mathematical relation r = x - ny, where n is the integer nearest the exact value of x/y; whenever
  | n - x/y | = 1/2, then n is even. Thus, the remainder is always exact. If r = 0, its sign shall be that of
  x.'' This definition is applicable for all implementations.
-
+</small>
 
 <a name="7.12.10.3" href="#7.12.10.3"><h5>7.12.10.3 The remquo functions</h5></a>
 <h6>Synopsis</h6>
@@ -11572,9 +11572,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 250 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note211">211)</a> The argument values are converted to the type of the function, even by a macro implementation of the
+<p><small><a name="note211" href="#note211">211)</a> The argument values are converted to the type of the function, even by a macro implementation of the
  function.
-
+</small>
 
 <a name="7.12.11.4" href="#7.12.11.4"><h5>7.12.11.4 The nexttoward functions</h5></a>
 <h6>Synopsis</h6>
@@ -11591,9 +11591,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  type of the function if x equals y.<sup><a href="#note212"><b>212)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note212">212)</a> The result of the nexttoward functions is determined in the type of the function, without loss of
+<p><small><a name="note212" href="#note212">212)</a> The result of the nexttoward functions is determined in the type of the function, without loss of
  range or precision in a floating second argument.
-
+</small>
 
 <a name="7.12.12" href="#7.12.12"><h4>7.12.12 Maximum, minimum, and positive difference functions</h4></a>
 
@@ -11637,9 +11637,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The fmax functions return the maximum numeric value of their arguments.
 
 <h6>footnotes</h6>
-<p><a name="note213">213)</a> NaN arguments are treated as missing data: if one argument is a NaN and the other numeric, then the
+<p><small><a name="note213" href="#note213">213)</a> NaN arguments are treated as missing data: if one argument is a NaN and the other numeric, then the
  fmax functions choose the numeric value. See <a href="#F.9.9.2">F.9.9.2</a>.
-
+</small>
 
 <a name="7.12.12.3" href="#7.12.12.3"><h5>7.12.12.3 The fmin functions</h5></a>
 <h6>Synopsis</h6>
@@ -11657,8 +11657,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The fmin functions return the minimum numeric value of their arguments.
 
 <h6>footnotes</h6>
-<p><a name="note214">214)</a> The fmin functions are analogous to the fmax functions in their treatment of NaNs.
-
+<p><small><a name="note214" href="#note214">214)</a> The fmin functions are analogous to the fmax functions in their treatment of NaNs.
+</small>
 
 <a name="7.12.13" href="#7.12.13"><h4>7.12.13 Floating multiply-add</h4></a>
 
@@ -11699,10 +11699,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  expression of real floating type.
 
 <h6>footnotes</h6>
-<p><a name="note215">215)</a> IEC 60559 requires that the built-in relational operators raise the ''invalid'' floating-point exception if
+<p><small><a name="note215" href="#note215">215)</a> IEC 60559 requires that the built-in relational operators raise the ''invalid'' floating-point exception if
  the operands compare unordered, as an error indicator for programs written without consideration of
  NaNs; the result in these cases is false.
-
+</small>
 
 <a name="7.12.14.1" href="#7.12.14.1"><h5>7.12.14.1 The isgreater macro</h5></a>
 <h6>Synopsis</h6>
@@ -11824,9 +11824,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  program defines an external identifier with the name setjmp, the behavior is undefined.
 
 <h6>footnotes</h6>
-<p><a name="note216">216)</a> These functions are useful for dealing with unusual conditions encountered in a low-level function of
+<p><small><a name="note216" href="#note216">216)</a> These functions are useful for dealing with unusual conditions encountered in a low-level function of
  a program.
-
+</small>
 
 <a name="7.13.1" href="#7.13.1"><h4>7.13.1 Save calling environment</h4></a>
 
@@ -11925,11 +11925,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
         }</pre>
 
 <h6>footnotes</h6>
-<p><a name="note217">217)</a> For example, by executing a return statement or because another longjmp call has caused a
+<p><small><a name="note217" href="#note217">217)</a> For example, by executing a return statement or because another longjmp call has caused a
  transfer to a setjmp invocation in a function earlier in the set of nested calls.
-
-<p><a name="note218">218)</a> This includes, but is not limited to, the floating-point status flags and the state of open files.
-
+</small>
+<p><small><a name="note218" href="#note218">218)</a> This includes, but is not limited to, the floating-point status flags and the state of open files.
+</small>
 
 <a name="7.14" href="#7.14"><h3>7.14 Signal handling <signal.h></h3></a>
 <p><!--para 1-->
@@ -11974,10 +11974,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 259 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note219">219)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>). The names of the signal numbers reflect the following terms
+<p><small><a name="note219" href="#note219">219)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>). The names of the signal numbers reflect the following terms
  (respectively): abort, floating-point exception, illegal instruction, interrupt, segmentation violation,
  and termination.
-
+</small>
 
 <a name="7.14.1" href="#7.14.1"><h4>7.14.1 Specify signal handling</h4></a>
 
@@ -12041,8 +12041,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  _Exit function (<a href="#7.20.4.4">7.20.4.4</a>).
 
 <h6>footnotes</h6>
-<p><a name="note220">220)</a> If any signal is generated by an asynchronous signal handler, the behavior is undefined.
-
+<p><small><a name="note220" href="#note220">220)</a> If any signal is generated by an asynchronous signal handler, the behavior is undefined.
+</small>
 
 <a name="7.14.2" href="#7.14.2"><h4>7.14.2 Send signal</h4></a>
 
@@ -12085,9 +12085,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  macro prior to any further reference to ap.<sup><a href="#note221"><b>221)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note221">221)</a> It is permitted to create a pointer to a va_list and pass that pointer to another function, in which
+<p><small><a name="note221" href="#note221">221)</a> It is permitted to create a pointer to a va_list and pass that pointer to another function, in which
  case the original function may make further use of the original list after the other function returns.
-
+</small>
 
 <a name="7.15.1" href="#7.15.1"><h4>7.15.1 Variable argument list access macros</h4></a>
 <p><!--para 1-->
@@ -12276,8 +12276,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 266 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note222">222)</a> See ''future library directions'' (<a href="#7.26.7">7.26.7</a>).
-
+<p><small><a name="note222" href="#note222">222)</a> See ''future library directions'' (<a href="#7.26.7">7.26.7</a>).
+</small>
 
 <a name="7.17" href="#7.17"><h3>7.17 Common definitions <stddef.h></h3></a>
 <p><!--para 1-->
@@ -12349,10 +12349,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (described as ''optional'').
 
 <h6>footnotes</h6>
-<p><a name="note223">223)</a> See ''future library directions'' (<a href="#7.26.8">7.26.8</a>).
-
-<p><a name="note224">224)</a> Some of these types may denote implementation-defined extended integer types.
-
+<p><small><a name="note223" href="#note223">223)</a> See ''future library directions'' (<a href="#7.26.8">7.26.8</a>).
+</small>
+<p><small><a name="note224" href="#note224">224)</a> Some of these types may denote implementation-defined extended integer types.
+</small>
 
 <a name="7.18.1" href="#7.18.1"><h4>7.18.1 Integer types</h4></a>
 <p><!--para 1-->
@@ -12423,10 +12423,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  All other types of this form are optional.
 
 <h6>footnotes</h6>
-<p><a name="note225">225)</a> The designated type is not guaranteed to be fastest for all purposes; if the implementation has no clear
+<p><small><a name="note225" href="#note225">225)</a> The designated type is not guaranteed to be fastest for all purposes; if the implementation has no clear
  grounds for choosing one type over another, it will simply pick some integer type satisfying the
  signedness and width requirements.
-
+</small>
 
 <a name="7.18.1.4" href="#7.18.1.4"><h5>7.18.1.4 Integer types capable of holding object pointers</h5></a>
 <p><!--para 1-->
@@ -12470,9 +12470,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  except where stated to be exactly the given value.
 
 <h6>footnotes</h6>
-<p><a name="note226">226)</a> C++ implementations should define these macros only when __STDC_LIMIT_MACROS is defined
+<p><small><a name="note226" href="#note226">226)</a> C++ implementations should define these macros only when __STDC_LIMIT_MACROS is defined
  before <a href="#7.18">&lt;stdint.h&gt;</a> is included.
-
+</small>
 
 <a name="7.18.2.1" href="#7.18.2.1"><h5>7.18.2.1 Limits of exact-width integer types</h5></a>
 <p><!--para 1-->
@@ -12582,14 +12582,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  shall be 0 and the value of WINT_MAX shall be no less than 65535.
 
 <h6>footnotes</h6>
-<p><a name="note227">227)</a> C++ implementations should define these macros only when __STDC_LIMIT_MACROS is defined
+<p><small><a name="note227" href="#note227">227)</a> C++ implementations should define these macros only when __STDC_LIMIT_MACROS is defined
  before <a href="#7.18">&lt;stdint.h&gt;</a> is included.
-
-<p><a name="note228">228)</a> A freestanding implementation need not provide all of these types.
-
-<p><a name="note229">229)</a> The values WCHAR_MIN and WCHAR_MAX do not necessarily correspond to members of the extended
+</small>
+<p><small><a name="note228" href="#note228">228)</a> A freestanding implementation need not provide all of these types.
+</small>
+<p><small><a name="note229" href="#note229">229)</a> The values WCHAR_MIN and WCHAR_MAX do not necessarily correspond to members of the extended
  character set.
-
+</small>
 
 <a name="7.18.4" href="#7.18.4"><h4>7.18.4 Macros for integer constants</h4></a>
 <p><!--para 1-->
@@ -12612,9 +12612,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 273 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note230">230)</a> C++ implementations should define these macros only when __STDC_CONSTANT_MACROS is
+<p><small><a name="note230" href="#note230">230)</a> C++ implementations should define these macros only when __STDC_CONSTANT_MACROS is
  defined before <a href="#7.18">&lt;stdint.h&gt;</a> is included.
-
+</small>
 
 <a name="7.18.4.1" href="#7.18.4.1"><h5>7.18.4.1 Macros for minimum-width integer constants</h5></a>
 <p><!--para 1-->
@@ -12732,11 +12732,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  tmpnam function (<a href="#7.19.4.4">7.19.4.4</a>), <a href="#7.24">&lt;wchar.h&gt;</a> (<a href="#7.24">7.24</a>).
 
 <h6>footnotes</h6>
-<p><a name="note231">231)</a> If the implementation imposes no practical limit on the length of file name strings, the value of
+<p><small><a name="note231" href="#note231">231)</a> If the implementation imposes no practical limit on the length of file name strings, the value of
  FILENAME_MAX should instead be the recommended size of an array intended to hold a file name
  string. Of course, file name string contents are subject to other system-specific constraints; therefore
  all possible strings of length FILENAME_MAX cannot be expected to be opened successfully.
-
+</small>
 
 <a name="7.19.2" href="#7.19.2"><h4>7.19.2 Streams</h4></a>
 <p><!--para 1-->
@@ -12809,12 +12809,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 278 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note232">232)</a> An implementation need not distinguish between text streams and binary streams. In such an
+<p><small><a name="note232" href="#note232">232)</a> An implementation need not distinguish between text streams and binary streams. In such an
  implementation, there need be no new-line characters in a text stream nor any limit to the length of a
  line.
-
-<p><a name="note233">233)</a> The three predefined streams stdin, stdout, and stderr are unoriented at program startup.
-
+</small>
+<p><small><a name="note233" href="#note233">233)</a> The three predefined streams stdin, stdout, and stderr are unoriented at program startup.
+</small>
 
 <a name="7.19.3" href="#7.19.3"><h4>7.19.3 Files</h4></a>
 <p><!--para 1-->
@@ -12923,10 +12923,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#7.24.6.3.2">7.24.6.3.2</a>), the wcrtomb function (<a href="#7.24.6.3.3">7.24.6.3.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note234">234)</a> Setting the file position indicator to end-of-file, as with fseek(file, 0, SEEK_END), has
+<p><small><a name="note234" href="#note234">234)</a> Setting the file position indicator to end-of-file, as with fseek(file, 0, SEEK_END), has
  undefined behavior for a binary stream (because of possible trailing null characters) or for any stream
  with state-dependent encoding that does not assuredly end in the initial shift state.
-
+</small>
 
 <a name="7.19.4" href="#7.19.4"><h4>7.19.4 Operations on files</h4></a>
 
@@ -12965,9 +12965,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  which case if the file existed previously it is still known by its original name.
 
 <h6>footnotes</h6>
-<p><a name="note235">235)</a> Among the reasons the implementation may cause the rename function to fail are that the file is open
+<p><small><a name="note235" href="#note235">235)</a> Among the reasons the implementation may cause the rename function to fail are that the file is open
  or that it is necessary to copy its contents to effectuate its renaming.
-
+</small>
 
 <a name="7.19.4.3" href="#7.19.4.3"><h5>7.19.4.3 The tmpfile function</h5></a>
 <h6>Synopsis</h6>
@@ -13025,11 +13025,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The value of the macro TMP_MAX shall be at least 25.
 
 <h6>footnotes</h6>
-<p><a name="note236">236)</a> Files created using strings generated by the tmpnam function are temporary only in the sense that
+<p><small><a name="note236" href="#note236">236)</a> Files created using strings generated by the tmpnam function are temporary only in the sense that
  their names should not collide with those generated by conventional naming rules for the
  implementation. It is still necessary to use the remove function to remove such files when their use
  is ended, and before program termination.
-
+</small>
 
 <a name="7.19.5" href="#7.19.5"><h4>7.19.5 File access functions</h4></a>
 
@@ -13134,10 +13134,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: file positioning functions (<a href="#7.19.9">7.19.9</a>).
 
 <h6>footnotes</h6>
-<p><a name="note237">237)</a> If the string begins with one of the above sequences, the implementation might choose to ignore the
+<p><small><a name="note237" href="#note237">237)</a> If the string begins with one of the above sequences, the implementation might choose to ignore the
  remaining characters, or it might use them to select different kinds of a file (some of which might not
  conform to the properties in <a href="#7.19.2">7.19.2</a>).
-
+</small>
 
 <a name="7.19.5.4" href="#7.19.5.4"><h5>7.19.5.4 The freopen function</h5></a>
 <h6>Synopsis</h6>
@@ -13168,10 +13168,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  freopen returns the value of stream.
 
 <h6>footnotes</h6>
-<p><a name="note238">238)</a> The primary use of the freopen function is to change the file associated with a standard text stream
+<p><small><a name="note238" href="#note238">238)</a> The primary use of the freopen function is to change the file associated with a standard text stream
  (stderr, stdin, or stdout), as those identifiers need not be modifiable lvalues to which the value
  returned by the fopen function may be assigned.
-
+</small>
 
 <a name="7.19.5.5" href="#7.19.5.5"><h5>7.19.5.5 The setbuf function</h5></a>
 <h6>Synopsis</h6>
@@ -13221,9 +13221,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  for mode or if the request cannot be honored.
 
 <h6>footnotes</h6>
-<p><a name="note239">239)</a> The buffer has to have a lifetime at least as great as the open stream, so the stream should be closed
+<p><small><a name="note239" href="#note239">239)</a> The buffer has to have a lifetime at least as great as the open stream, so the stream should be closed
  before a buffer that has automatic storage duration is deallocated upon block exit.
-
+</small>
 
 <a name="7.19.6" href="#7.19.6"><h4>7.19.6 Formatted input/output functions</h4></a>
 <p><!--para 1-->
@@ -13231,8 +13231,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  actions associated with each specifier.<sup><a href="#note240"><b>240)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note240">240)</a> The fprintf functions perform writes to memory for the %n specifier.
-
+<p><small><a name="note240" href="#note240">240)</a> The fprintf functions perform writes to memory for the %n specifier.
+</small>
 
 <a name="7.19.6.1" href="#7.19.6.1"><h5>7.19.6.1 The fprintf function</h5></a>
 <h6>Synopsis</h6>
@@ -13586,32 +13586,32 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: conversion state (<a href="#7.24.6">7.24.6</a>), the wcrtomb function (<a href="#7.24.6.3.3">7.24.6.3.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note241">241)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
-
-<p><a name="note242">242)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
+<p><small><a name="note241" href="#note241">241)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
+</small>
+<p><small><a name="note242" href="#note242">242)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
  include a minus sign.
-
-<p><a name="note243">243)</a> When applied to infinite and NaN values, the -, +, and space flag characters have their usual meaning;
+</small>
+<p><small><a name="note243" href="#note243">243)</a> When applied to infinite and NaN values, the -, +, and space flag characters have their usual meaning;
  the # and 0 flag characters have no effect.
-
-<p><a name="note244">244)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point character so
+</small>
+<p><small><a name="note244" href="#note244">244)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point character so
  that subsequent digits align to nibble (4-bit) boundaries.
-
-<p><a name="note245">245)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
+</small>
+<p><small><a name="note245" href="#note245">245)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
  FLT_RADIX and n is the number of base-b digits in the significand of the source type. A smaller p
  might suffice depending on the implementation's scheme for determining the digit to the left of the
  decimal-point character.
-
-<p><a name="note246">246)</a> No special provisions are made for multibyte characters.
-
-<p><a name="note247">247)</a> Redundant shift sequences may result if multibyte characters have a state-dependent encoding.
-
-<p><a name="note248">248)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>).
-
-<p><a name="note249">249)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
+</small>
+<p><small><a name="note246" href="#note246">246)</a> No special provisions are made for multibyte characters.
+</small>
+<p><small><a name="note247" href="#note247">247)</a> Redundant shift sequences may result if multibyte characters have a state-dependent encoding.
+</small>
+<p><small><a name="note248" href="#note248">248)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>).
+</small>
+<p><small><a name="note249" href="#note249">249)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
  given format specifier. The number of significant digits is determined by the format specifier, and in
  the case of fixed-point conversion by the source value as well.
-
+</small>
 
 <a name="7.19.6.2" href="#7.19.6.2"><h5>7.19.6.2 The fscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -13971,17 +13971,17 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 302 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note250">250)</a> These white-space characters are not counted against a specified field width.
-
-<p><a name="note251">251)</a> fscanf pushes back at most one input character onto the input stream. Therefore, some sequences
+<p><small><a name="note250" href="#note250">250)</a> These white-space characters are not counted against a specified field width.
+</small>
+<p><small><a name="note251" href="#note251">251)</a> fscanf pushes back at most one input character onto the input stream. Therefore, some sequences
  that are acceptable to strtod, strtol, etc., are unacceptable to fscanf.
-
-<p><a name="note252">252)</a> No special provisions are made for multibyte characters in the matching rules used by the c, s, and [
+</small>
+<p><small><a name="note252" href="#note252">252)</a> No special provisions are made for multibyte characters in the matching rules used by the c, s, and [
  conversion specifiers -- the extent of the input field is determined on a byte-by-byte basis. The
  resulting field is nevertheless a sequence of multibyte characters that begins in the initial shift state.
-
-<p><a name="note253">253)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>).
-
+</small>
+<p><small><a name="note253" href="#note253">253)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>).
+</small>
 
 <a name="7.19.6.3" href="#7.19.6.3"><h5>7.19.6.3 The printf function</h5></a>
 <h6>Synopsis</h6>
@@ -14118,9 +14118,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 305 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note254">254)</a> As the functions vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf, and
+<p><small><a name="note254" href="#note254">254)</a> As the functions vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf, and
  vsscanf invoke the va_arg macro, the value of arg after the return is indeterminate.
-
+</small>
 
 <a name="7.19.6.9" href="#7.19.6.9"><h5>7.19.6.9 The vfscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -14276,8 +14276,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  returns EOF.<sup><a href="#note255"><b>255)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note255">255)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
-
+<p><small><a name="note255" href="#note255">255)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
+</small>
 
 <a name="7.19.7.2" href="#7.19.7.2"><h5>7.19.7.2 The fgets function</h5></a>
 <h6>Synopsis</h6>
@@ -14483,8 +14483,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 313 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note256">256)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>).
-
+<p><small><a name="note256" href="#note256">256)</a> See ''future library directions'' (<a href="#7.26.9">7.26.9</a>).
+</small>
 
 <a name="7.19.8" href="#7.19.8"><h4>7.19.8 Direct input/output functions</h4></a>
 
@@ -14756,8 +14756,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 319 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note257">257)</a> See ''future library directions'' (<a href="#7.26.10">7.26.10</a>).
-
+<p><small><a name="note257" href="#note257">257)</a> See ''future library directions'' (<a href="#7.26.10">7.26.10</a>).
+</small>
 
 <a name="7.20.1" href="#7.20.1"><h4>7.20.1 Numeric conversion functions</h4></a>
 <p><!--para 1-->
@@ -14904,17 +14904,17 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  the value ERANGE is implementation-defined.
 
 <h6>footnotes</h6>
-<p><a name="note258">258)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
+<p><small><a name="note258" href="#note258">258)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
  negating the value resulting from converting the corresponding unsigned sequence (see <a href="#F.5">F.5</a>); the two
  methods may yield different results if rounding is toward positive or negative infinity. In either case,
  the functions honor the sign of zero if floating-point arithmetic supports signed zeros.
-
-<p><a name="note259">259)</a> An implementation may use the n-char sequence to determine extra information to be represented in
+</small>
+<p><small><a name="note259" href="#note259">259)</a> An implementation may use the n-char sequence to determine extra information to be represented in
  the NaN's significand.
-
-<p><a name="note260">260)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
+</small>
+<p><small><a name="note260" href="#note260">260)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
  to the same internal floating value, but if not will round to adjacent values.
-
+</small>
 
 <a name="7.20.1.4" href="#7.20.1.4"><h5>7.20.1.4 The strtol, strtoll, strtoul, and strtoull functions</h5></a>
 <h6>Synopsis</h6>
@@ -15075,9 +15075,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The calloc function returns either a null pointer or a pointer to the allocated space.
 
 <h6>footnotes</h6>
-<p><a name="note261">261)</a> Note that this need not be the same as the representation of floating-point zero or a null pointer
+<p><small><a name="note261" href="#note261">261)</a> Note that this need not be the same as the representation of floating-point zero or a null pointer
  constant.
-
+</small>
 
 <a name="7.20.3.2" href="#7.20.3.2"><h5>7.20.3.2 The free function</h5></a>
 <h6>Synopsis</h6>
@@ -15208,9 +15208,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The exit function cannot return to its caller.
 
 <h6>footnotes</h6>
-<p><a name="note262">262)</a> Each function is called as many times as it was registered, and in the correct order with respect to
+<p><small><a name="note262" href="#note262">262)</a> Each function is called as many times as it was registered, and in the correct order with respect to
  other registered functions.
-
+</small>
 
 <a name="7.20.4.4" href="#7.20.4.4"><h5>7.20.4.4 The _Exit function</h5></a>
 <h6>Synopsis</h6>
@@ -15304,13 +15304,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  movement of the objects passed as arguments to that call.
 
 <h6>footnotes</h6>
-<p><a name="note263">263)</a> That is, if the value passed is p, then the following expressions are always nonzero:
+<p><small><a name="note263" href="#note263">263)</a> That is, if the value passed is p, then the following expressions are always nonzero:
 
 <pre>
           ((char *)p - (char *)base) % size == 0
           (char *)p &gt;= (char *)base
           (char *)p &lt; (char *)base + nmemb * size</pre>
-
+</small>
 
 <a name="7.20.5.1" href="#7.20.5.1"><h5>7.20.5.1 The bsearch function</h5></a>
 <h6>Synopsis</h6>
@@ -15342,8 +15342,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  matched is unspecified.
 
 <h6>footnotes</h6>
-<p><a name="note264">264)</a> In practice, the entire array is sorted according to the comparison function.
-
+<p><small><a name="note264" href="#note264">264)</a> In practice, the entire array is sorted according to the comparison function.
+</small>
 
 <a name="7.20.5.2" href="#7.20.5.2"><h5>7.20.5.2 The qsort function</h5></a>
 <h6>Synopsis</h6>
@@ -15392,8 +15392,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The abs, labs, and llabs, functions return the absolute value.
 
 <h6>footnotes</h6>
-<p><a name="note265">265)</a> The absolute value of the most negative number cannot be represented in two's complement.
-
+<p><small><a name="note265" href="#note265">265)</a> The absolute value of the most negative number cannot be represented in two's complement.
+</small>
 
 <a name="7.20.6.2" href="#7.20.6.2"><h5>7.20.6.2 The div, ldiv, and lldiv functions</h5></a>
 <h6>Synopsis</h6>
@@ -15432,9 +15432,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  functions to be indeterminate.
 
 <h6>footnotes</h6>
-<p><a name="note266">266)</a> If the locale employs special bytes to change the shift state, these bytes do not produce separate wide
+<p><small><a name="note266" href="#note266">266)</a> If the locale employs special bytes to change the shift state, these bytes do not produce separate wide
  character codes, but are grouped with an adjacent multibyte character.
-
+</small>
 
 <a name="7.20.7.1" href="#7.20.7.1"><h5>7.20.7.1 The mblen function</h5></a>
 <h6>Synopsis</h6>
@@ -15562,8 +15562,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 336 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note267">267)</a> The array will not be null-terminated if the value returned is n.
-
+<p><small><a name="note267" href="#note267">267)</a> The array will not be null-terminated if the value returned is n.
+</small>
 
 <a name="7.20.8.2" href="#7.20.8.2"><h5>7.20.8.2 The wcstombs function</h5></a>
 <h6>Synopsis</h6>
@@ -15616,8 +15616,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  different value).
 
 <h6>footnotes</h6>
-<p><a name="note268">268)</a> See ''future library directions'' (<a href="#7.26.11">7.26.11</a>).
-
+<p><small><a name="note268" href="#note268">268)</a> See ''future library directions'' (<a href="#7.26.11">7.26.11</a>).
+</small>
 
 <a name="7.21.2" href="#7.21.2"><h4>7.21.2 Copying functions</h4></a>
 
@@ -15699,9 +15699,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The strncpy function returns the value of s1.
 
 <h6>footnotes</h6>
-<p><a name="note269">269)</a> Thus, if there is no null character in the first n characters of the array pointed to by s2, the result will
+<p><small><a name="note269" href="#note269">269)</a> Thus, if there is no null character in the first n characters of the array pointed to by s2, the result will
  not be null-terminated.
-
+</small>
 
 <a name="7.21.3" href="#7.21.3"><h4>7.21.3 Concatenation functions</h4></a>
 
@@ -15745,9 +15745,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: the strlen function (<a href="#7.21.6.3">7.21.6.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note270">270)</a> Thus, the maximum number of characters that can end up in the array pointed to by s1 is
+<p><small><a name="note270" href="#note270">270)</a> Thus, the maximum number of characters that can end up in the array pointed to by s1 is
  strlen(s1)+n+1.
-
+</small>
 
 <a name="7.21.4" href="#7.21.4"><h4>7.21.4 Comparison functions</h4></a>
 <p><!--para 1-->
@@ -15773,10 +15773,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  pointed to by s2.
 
 <h6>footnotes</h6>
-<p><a name="note271">271)</a> The contents of ''holes'' used as padding for purposes of alignment within structure objects are
+<p><small><a name="note271" href="#note271">271)</a> The contents of ''holes'' used as padding for purposes of alignment within structure objects are
  indeterminate. Strings shorter than their allocated space and unions may also cause problems in
  comparison.
-
+</small>
 
 <a name="7.21.4.2" href="#7.21.4.2"><h5>7.21.4.2 The strcmp function</h5></a>
 <h6>Synopsis</h6>
@@ -16189,12 +16189,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
              cproj(ldc)                          cprojl(ldc)</pre>
 
 <h6>footnotes</h6>
-<p><a name="note272">272)</a> Like other function-like macros in Standard libraries, each type-generic macro can be suppressed to
+<p><small><a name="note272" href="#note272">272)</a> Like other function-like macros in Standard libraries, each type-generic macro can be suppressed to
  make available the corresponding ordinary function.
-
-<p><a name="note273">273)</a> If the type of the argument is not compatible with the type of the parameter for the selected function,
+</small>
+<p><small><a name="note273" href="#note273">273)</a> If the type of the argument is not compatible with the type of the parameter for the selected function,
  the behavior is undefined.
-
+</small>
 
 <a name="7.23" href="#7.23"><h3>7.23 Date and time <time.h></h3></a>
 
@@ -16246,8 +16246,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  Saving Time is not in effect, and negative if the information is not available.
 
 <h6>footnotes</h6>
-<p><a name="note274">274)</a> The range [0, 60] for tm_sec allows for a positive leap second.
-
+<p><small><a name="note274" href="#note274">274)</a> The range [0, 60] for tm_sec allows for a positive leap second.
+</small>
 
 <a name="7.23.2" href="#7.23.2"><h4>7.23.2 Time manipulation functions</h4></a>
 
@@ -16270,9 +16270,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  returns the value (clock_t)(-1).<sup><a href="#note275"><b>275)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note275">275)</a> In order to measure the time spent in a program, the clock function should be called at the start of
+<p><small><a name="note275" href="#note275">275)</a> In order to measure the time spent in a program, the clock function should be called at the start of
  the program and its return value subtracted from the value returned by subsequent calls.
-
+</small>
 
 <a name="7.23.2.2" href="#7.23.2.2"><h5>7.23.2.2 The difftime function</h5></a>
 <h6>Synopsis</h6>
@@ -16345,10 +16345,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note276">276)</a> Thus, a positive or zero value for tm_isdst causes the mktime function to presume initially that
+<p><small><a name="note276" href="#note276">276)</a> Thus, a positive or zero value for tm_isdst causes the mktime function to presume initially that
  Daylight Saving Time, respectively, is or is not in effect for the specified time. A negative value
  causes it to attempt to determine whether Daylight Saving Time is in effect for the specified time.
-
+</small>
 
 <a name="7.23.2.4" href="#7.23.2.4"><h5>7.23.2.4 The time function</h5></a>
 <h6>Synopsis</h6>
@@ -16693,12 +16693,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  undefined.
 
 <h6>footnotes</h6>
-<p><a name="note277">277)</a> See ''future library directions'' (<a href="#7.26.12">7.26.12</a>).
-
-<p><a name="note278">278)</a> wchar_t and wint_t can be the same integer type.
-
-<p><a name="note279">279)</a> The value of the macro WEOF may differ from that of EOF and need not be negative.
-
+<p><small><a name="note277" href="#note277">277)</a> See ''future library directions'' (<a href="#7.26.12">7.26.12</a>).
+</small>
+<p><small><a name="note278" href="#note278">278)</a> wchar_t and wint_t can be the same integer type.
+</small>
+<p><small><a name="note279" href="#note279">279)</a> The value of the macro WEOF may differ from that of EOF and need not be negative.
+</small>
 
 <a name="7.24.2" href="#7.24.2"><h4>7.24.2 Formatted wide character input/output functions</h4></a>
 <p><!--para 1-->
@@ -16706,8 +16706,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  point after the actions associated with each specifier.<sup><a href="#note280"><b>280)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note280">280)</a> The fwprintf functions perform writes to memory for the %n specifier.
-
+<p><small><a name="note280" href="#note280">280)</a> The fwprintf functions perform writes to memory for the %n specifier.
+</small>
 
 <a name="7.24.2.1" href="#7.24.2.1"><h5>7.24.2.1 The fwprintf function</h5></a>
 <h6>Synopsis</h6>
@@ -17020,28 +17020,28 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  (<a href="#7.24.6.3.2">7.24.6.3.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note281">281)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
-
-<p><a name="note282">282)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
+<p><small><a name="note281" href="#note281">281)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
+</small>
+<p><small><a name="note282" href="#note282">282)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
  include a minus sign.
-
-<p><a name="note283">283)</a> When applied to infinite and NaN values, the -, +, and space flag wide characters have their usual
+</small>
+<p><small><a name="note283" href="#note283">283)</a> When applied to infinite and NaN values, the -, +, and space flag wide characters have their usual
  meaning; the # and 0 flag wide characters have no effect.
-
-<p><a name="note284">284)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point wide
+</small>
+<p><small><a name="note284" href="#note284">284)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point wide
  character so that subsequent digits align to nibble (4-bit) boundaries.
-
-<p><a name="note285">285)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
+</small>
+<p><small><a name="note285" href="#note285">285)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
  FLT_RADIX and n is the number of base-b digits in the significand of the source type. A smaller p
  might suffice depending on the implementation's scheme for determining the digit to the left of the
  decimal-point wide character.
-
-<p><a name="note286">286)</a> See ''future library directions'' (<a href="#7.26.12">7.26.12</a>).
-
-<p><a name="note287">287)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
+</small>
+<p><small><a name="note286" href="#note286">286)</a> See ''future library directions'' (<a href="#7.26.12">7.26.12</a>).
+</small>
+<p><small><a name="note287" href="#note287">287)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
  given format specifier. The number of significant digits is determined by the format specifier, and in
  the case of fixed-point conversion by the source value as well.
-
+</small>
 
 <a name="7.24.2.2" href="#7.24.2.2"><h5>7.24.2.2 The fwscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -17306,13 +17306,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  function (<a href="#7.24.6.3.3">7.24.6.3.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note288">288)</a> These white-space wide characters are not counted against a specified field width.
-
-<p><a name="note289">289)</a> fwscanf pushes back at most one input wide character onto the input stream. Therefore, some
+<p><small><a name="note288" href="#note288">288)</a> These white-space wide characters are not counted against a specified field width.
+</small>
+<p><small><a name="note289" href="#note289">289)</a> fwscanf pushes back at most one input wide character onto the input stream. Therefore, some
  sequences that are acceptable to wcstod, wcstol, etc., are unacceptable to fwscanf.
-
-<p><a name="note290">290)</a> See ''future library directions'' (<a href="#7.26.12">7.26.12</a>).
-
+</small>
+<p><small><a name="note290" href="#note290">290)</a> See ''future library directions'' (<a href="#7.26.12">7.26.12</a>).
+</small>
 
 <a name="7.24.2.3" href="#7.24.2.3"><h5>7.24.2.3 The swprintf function</h5></a>
 <h6>Synopsis</h6>
@@ -17399,9 +17399,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 376 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note291">291)</a> As the functions vfwprintf, vswprintf, vfwscanf, vwprintf, vwscanf, and vswscanf
+<p><small><a name="note291" href="#note291">291)</a> As the functions vfwprintf, vswprintf, vfwscanf, vwprintf, vwscanf, and vswscanf
  invoke the va_arg macro, the value of arg after the return is indeterminate.
-
+</small>
 
 <a name="7.24.2.6" href="#7.24.2.6"><h5>7.24.2.6 The vfwscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -17570,9 +17570,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  the macro EILSEQ is stored in errno and the fgetwc function returns WEOF.<sup><a href="#note292"><b>292)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note292">292)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
+<p><small><a name="note292" href="#note292">292)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
  Also, errno will be set to EILSEQ by input/output functions only if an encoding error occurs.
-
+</small>
 
 <a name="7.24.3.2" href="#7.24.3.2"><h5>7.24.3.2 The fgetws function</h5></a>
 <h6>Synopsis</h6>
@@ -17657,8 +17657,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  stream has no orientation.
 
 <h6>footnotes</h6>
-<p><a name="note293">293)</a> If the orientation of the stream has already been determined, fwide does not change it.
-
+<p><small><a name="note293" href="#note293">293)</a> If the orientation of the stream has already been determined, fwide does not change it.
+</small>
 
 <a name="7.24.3.6" href="#7.24.3.6"><h5>7.24.3.6 The getwc function</h5></a>
 <h6>Synopsis</h6>
@@ -17890,17 +17890,17 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 387 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note294">294)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
+<p><small><a name="note294" href="#note294">294)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
  negating the value resulting from converting the corresponding unsigned sequence (see <a href="#F.5">F.5</a>); the two
  methods may yield different results if rounding is toward positive or negative infinity. In either case,
  the functions honor the sign of zero if floating-point arithmetic supports signed zeros.
-
-<p><a name="note295">295)</a> An implementation may use the n-wchar sequence to determine extra information to be represented in
+</small>
+<p><small><a name="note295" href="#note295">295)</a> An implementation may use the n-wchar sequence to determine extra information to be represented in
  the NaN's significand.
-
-<p><a name="note296">296)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
+</small>
+<p><small><a name="note296" href="#note296">296)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
  to the same internal floating value, but if not will round to adjacent values.
-
+</small>
 
 <a name="7.24.4.1.2" href="#7.24.4.1.2"><h5>7.24.4.1.2 The wcstol, wcstoll, wcstoul, and wcstoull functions</h5></a>
 <h6>Synopsis</h6>
@@ -18016,9 +18016,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The wcsncpy function returns the value of s1.
 
 <h6>footnotes</h6>
-<p><a name="note297">297)</a> Thus, if there is no null wide character in the first n wide characters of the array pointed to by s2, the
+<p><small><a name="note297" href="#note297">297)</a> Thus, if there is no null wide character in the first n wide characters of the array pointed to by s2, the
  result will not be null-terminated.
-
+</small>
 
 <a name="7.24.4.2.3" href="#7.24.4.2.3"><h5>7.24.4.2.3 The wmemcpy function</h5></a>
 <h6>Synopsis</h6>
@@ -18098,9 +18098,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  The wcsncat function returns the value of s1.
 
 <h6>footnotes</h6>
-<p><a name="note298">298)</a> Thus, the maximum number of wide characters that can end up in the array pointed to by s1 is
+<p><small><a name="note298" href="#note298">298)</a> Thus, the maximum number of wide characters that can end up in the array pointed to by s1 is
  wcslen(s1)+n+1.
-
+</small>
 
 <a name="7.24.4.4" href="#7.24.4.4"><h5>7.24.4.4 Wide string comparison functions</h5></a>
 <p><!--para 1-->
@@ -18474,10 +18474,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 399 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note299">299)</a> Thus, a particular mbstate_t object can be used, for example, with both the mbrtowc and
+<p><small><a name="note299" href="#note299">299)</a> Thus, a particular mbstate_t object can be used, for example, with both the mbrtowc and
  mbsrtowcs functions as long as they are used to step sequentially through the same multibyte
  character string.
-
+</small>
 
 <a name="7.24.6.1" href="#7.24.6.1"><h5>7.24.6.1 Single-byte/wide character conversion functions</h5></a>
 
@@ -18616,9 +18616,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 402 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note300">300)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
+<p><small><a name="note300" href="#note300">300)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
  sequence of redundant shift sequences (for implementations with state-dependent encodings).
-
+</small>
 
 <a name="7.24.6.3.3" href="#7.24.6.3.3"><h5>7.24.6.3.3 The wcrtomb function</h5></a>
 <h6>Synopsis</h6>
@@ -18704,8 +18704,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 404 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note301">301)</a> Thus, the value of len is ignored if dst is a null pointer.
-
+<p><small><a name="note301" href="#note301">301)</a> Thus, the value of len is ignored if dst is a null pointer.
+</small>
 
 <a name="7.24.6.4.2" href="#7.24.6.4.2"><h5>7.24.6.4.2 The wcsrtombs function</h5></a>
 <h6>Synopsis</h6>
@@ -18748,9 +18748,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 405 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note302">302)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
+<p><small><a name="note302" href="#note302">302)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
  include those necessary to reach the initial shift state immediately before the null byte.
-
+</small>
 
 <a name="7.25" href="#7.25"><h3>7.25 Wide character classification and mapping utilities <wctype.h></h3></a>
 
@@ -18794,8 +18794,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 406 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note303">303)</a> See ''future library directions'' (<a href="#7.26.13">7.26.13</a>).
-
+<p><small><a name="note303" href="#note303">303)</a> See ''future library directions'' (<a href="#7.26.13">7.26.13</a>).
+</small>
 
 <a name="7.25.2" href="#7.25.2"><h4>7.25.2 Wide character classification utilities</h4></a>
 <p><!--para 1-->
@@ -18820,11 +18820,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <p><b> Forward references</b>: the wctob function (<a href="#7.24.6.1.2">7.24.6.1.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note304">304)</a> For example, if the expression isalpha(wctob(wc)) evaluates to true, then the call
+<p><small><a name="note304" href="#note304">304)</a> For example, if the expression isalpha(wctob(wc)) evaluates to true, then the call
  iswalpha(wc) also returns true. But, if the expression isgraph(wctob(wc)) evaluates to true
  (which cannot occur for wc == L' ' of course), then either iswgraph(wc) or iswprint(wc)
  &amp;&amp; iswspace(wc) is true, but not both.
-
+</small>
 
 <a name="7.25.2.1.1" href="#7.25.2.1.1"><h5>7.25.2.1.1 The iswalnum function</h5></a>
 <h6>Synopsis</h6>
@@ -18853,9 +18853,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  is true.<sup><a href="#note305"><b>305)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note305">305)</a> The functions iswlower and iswupper test true or false separately for each of these additional
+<p><small><a name="note305" href="#note305">305)</a> The functions iswlower and iswupper test true or false separately for each of these additional
  wide characters; all four combinations are possible.
-
+</small>
 
 <a name="7.25.2.1.3" href="#7.25.2.1.3"><h5>7.25.2.1.3 The iswblank function</h5></a>
 <h6>Synopsis</h6>
@@ -18909,10 +18909,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  iswspace is false.<sup><a href="#note306"><b>306)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note306">306)</a> Note that the behavior of the iswgraph and iswpunct functions may differ from their
+<p><small><a name="note306" href="#note306">306)</a> Note that the behavior of the iswgraph and iswpunct functions may differ from their
  corresponding functions in <a href="#7.4.1">7.4.1</a> with respect to printing, white-space, single-byte execution
  characters other than ' '.
-
+</small>
 
 <a name="7.25.2.1.7" href="#7.25.2.1.7"><h5>7.25.2.1.7 The iswlower function</h5></a>
 <h6>Synopsis</h6>
@@ -20936,12 +20936,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 457 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note307">307)</a> ''Extended'' is IEC 60559's double-extended data format. Extended refers to both the common 80-bit
+<p><small><a name="note307" href="#note307">307)</a> ''Extended'' is IEC 60559's double-extended data format. Extended refers to both the common 80-bit
  and quadruple 128-bit IEC 60559 formats.
-
-<p><a name="note308">308)</a> A non-IEC 60559 long double type is required to provide infinity and NaNs, as its values include
+</small>
+<p><small><a name="note308" href="#note308">308)</a> A non-IEC 60559 long double type is required to provide infinity and NaNs, as its values include
  all double values.
-
+</small>
 
 <a name="F.2.1" href="#F.2.1"><h4>F.2.1 Infinities, signed zeros, and NaNs</h4></a>
 <p><!--para 1-->
@@ -20950,9 +20950,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  functions in <a href="#7.12">&lt;math.h&gt;</a> provide designations for IEC 60559 NaNs and infinities.
 
 <h6>footnotes</h6>
-<p><a name="note309">309)</a> Since NaNs created by IEC 60559 operations are always quiet, quiet NaNs (along with infinities) are
+<p><small><a name="note309" href="#note309">309)</a> Since NaNs created by IEC 60559 operations are always quiet, quiet NaNs (along with infinities) are
  sufficient for closure of the arithmetic.
-
+</small>
 
 <a name="F.3" href="#F.3"><h3>F.3 Operators and functions</h3></a>
 <p><!--para 1-->
@@ -21041,12 +21041,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  exception is unspecified.<sup><a href="#note310"><b>310)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note310">310)</a> ANSI/IEEE 854, but not IEC 60559 (ANSI/IEEE 754), directly specifies that floating-to-integer
+<p><small><a name="note310" href="#note310">310)</a> ANSI/IEEE 854, but not IEC 60559 (ANSI/IEEE 754), directly specifies that floating-to-integer
  conversions raise the ''inexact'' floating-point exception for non-integer in-range values. In those
  cases where it matters, library functions can be used to effect such conversions with or without raising
  the ''inexact'' floating-point exception. See rint, lrint, llrint, and nearbyint in
  <a href="#7.12">&lt;math.h&gt;</a>.
-
+</small>
 
 <a name="F.5" href="#F.5"><h3>F.5 Binary-decimal conversion</h3></a>
 <p><!--para 1-->
@@ -21070,11 +21070,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 460 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note311">311)</a> If the minimum-width IEC 60559 extended format (64 bits of precision) is supported,
+<p><small><a name="note311" href="#note311">311)</a> If the minimum-width IEC 60559 extended format (64 bits of precision) is supported,
  DECIMAL_DIG shall be at least 21. If IEC 60559 double (53 bits of precision) is the widest
  IEC 60559 format supported, then DECIMAL_DIG shall be at least 17. (By contrast, LDBL_DIG and
  DBL_DIG are 18 and 15, respectively, for these formats.)
-
+</small>
 
 <a name="F.6" href="#F.6"><h3>F.6 Contracted expressions</h3></a>
 <p><!--para 1-->
@@ -21095,8 +21095,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  implementation supports them.<sup><a href="#note312"><b>312)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note312">312)</a> This specification does not require dynamic rounding precision nor trap enablement modes.
-
+<p><small><a name="note312" href="#note312">312)</a> This specification does not require dynamic rounding precision nor trap enablement modes.
+</small>
 
 <a name="F.7.1" href="#F.7.1"><h4>F.7.1 Environment management</h4></a>
 <p><!--para 1-->
@@ -21107,10 +21107,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  which respect sequence points.<sup><a href="#note313"><b>313)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note313">313)</a> If the state for the FENV_ACCESS pragma is ''off'', the implementation is free to assume the floating-
+<p><small><a name="note313" href="#note313">313)</a> If the state for the FENV_ACCESS pragma is ''off'', the implementation is free to assume the floating-
  point control modes will be the default ones and the floating-point status flags will not be tested,
  which allows certain optimizations (see <a href="#F.8">F.8</a>).
-
+</small>
 
 <a name="F.7.2" href="#F.7.2"><h4>F.7.2 Translation</h4></a>
 <p><!--para 1-->
@@ -21132,11 +21132,11 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  proceed with the translation of the program.
 
 <h6>footnotes</h6>
-<p><a name="note314">314)</a> As floating constants are converted to appropriate internal representations at translation time, their
+<p><small><a name="note314" href="#note314">314)</a> As floating constants are converted to appropriate internal representations at translation time, their
  conversion is subject to default rounding modes and raises no execution-time floating-point exceptions
  (even where the state of the FENV_ACCESS pragma is ''on''). Library functions, for example
  strtod, provide execution-time conversion of numeric strings.
-
+</small>
 
 <a name="F.7.3" href="#F.7.3"><h4>F.7.3 Execution</h4></a>
 <p><!--para 1-->
@@ -21180,14 +21180,14 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note315">315)</a> Where the state for the FENV_ACCESS pragma is ''on'', results of inexact expressions like 1.0/3.0
+<p><small><a name="note315" href="#note315">315)</a> Where the state for the FENV_ACCESS pragma is ''on'', results of inexact expressions like 1.0/3.0
  are affected by rounding modes set at execution time, and expressions such as 0.0/0.0 and
  1.0/0.0 generate execution-time floating-point exceptions. The programmer can achieve the
  efficiency of translation-time evaluation through static initialization, such as
 
 <pre>
           const static double one_third = 1.0/3.0;</pre>
-
+</small>
 
 <a name="F.7.5" href="#F.7.5"><h4>F.7.5 Initialization</h4></a>
 <p><!--para 1-->
@@ -21227,13 +21227,13 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 463 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note316">316)</a> Use of float_t and double_t variables increases the likelihood of translation-time computation.
+<p><small><a name="note316" href="#note316">316)</a> Use of float_t and double_t variables increases the likelihood of translation-time computation.
  For example, the automatic initialization
 
 <pre>
            double_t x = 1.1e75;</pre>
   could be done at translation time, regardless of the expression evaluation method.
-
+</small>
 
 <a name="F.7.6" href="#F.7.6"><h4>F.7.6 Changing the environment</h4></a>
 <p><!--para 1-->
@@ -21333,10 +21333,10 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
                                           (unless rounding is downward).</pre>
 
 <h6>footnotes</h6>
-<p><a name="note317">317)</a> Strict support for signaling NaNs -- not required by this specification -- would invalidate these and
+<p><small><a name="note317" href="#note317">317)</a> Strict support for signaling NaNs -- not required by this specification -- would invalidate these and
  other transformations that remove arithmetic operators.
-
-<p><a name="note318">318)</a> IEC 60559 prescribes a signed zero to preserve mathematical identities across certain discontinuities.
+</small>
+<p><small><a name="note318" href="#note318">318)</a> IEC 60559 prescribes a signed zero to preserve mathematical identities across certain discontinuities.
  Examples include:
 
 <pre>
@@ -21346,7 +21346,7 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <pre>
     conj(csqrt(z)) is csqrt(conj(z)),</pre>
  for complex z.
-
+</small>
 
 <a name="F.8.3" href="#F.8.3"><h4>F.8.3 Relational operators</h4></a>
 <p><!--para 1-->
@@ -21413,8 +21413,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  point exception when converted to the semantic type of the operation.
 
 <h6>footnotes</h6>
-<p><a name="note319">319)</a> 0 - 0 yields -0 instead of +0 just when the rounding direction is downward.
-
+<p><small><a name="note319" href="#note319">319)</a> 0 - 0 yields -0 instead of +0 just when the rounding direction is downward.
+</small>
 
 <a name="F.9" href="#F.9"><h3>F.9 Mathematics <math.h></h3></a>
 <p><!--para 1-->
@@ -21472,12 +21472,12 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  for the sign.
 
 <h6>footnotes</h6>
-<p><a name="note320">320)</a> IEC 60559 allows different definitions of underflow. They all result in the same values, but differ on
+<p><small><a name="note320" href="#note320">320)</a> IEC 60559 allows different definitions of underflow. They all result in the same values, but differ on
  when the floating-point exception is raised.
-
-<p><a name="note321">321)</a> It is intended that undeserved ''underflow'' and ''inexact'' floating-point exceptions are raised only if
+</small>
+<p><small><a name="note321" href="#note321">321)</a> It is intended that undeserved ''underflow'' and ''inexact'' floating-point exceptions are raised only if
  avoiding them would be too costly.
-
+</small>
 
 <a name="F.9.1" href="#F.9.1"><h4>F.9.1 Trigonometric functions</h4></a>
 
@@ -21526,9 +21526,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note322">322)</a> atan2(0, 0) does not raise the ''invalid'' floating-point exception, nor does atan2( y ,    0) raise
+<p><small><a name="note322" href="#note322">322)</a> atan2(0, 0) does not raise the ''invalid'' floating-point exception, nor does atan2( y ,    0) raise
  the ''divide-by-zero'' floating-point exception.
-
+</small>
 
 <a name="F.9.1.5" href="#F.9.1.5"><h5>F.9.1.5 The cos functions</h5></a>
 <p><!--para 1-->
@@ -22009,9 +22009,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
              isnan(y)) ? x : y; }</pre>
 
 <h6>footnotes</h6>
-<p><a name="note323">323)</a> Ideally, fmax would be sensitive to the sign of zero, for example fmax(-0.0, +0.0) would
+<p><small><a name="note323" href="#note323">323)</a> Ideally, fmax would be sensitive to the sign of zero, for example fmax(-0.0, +0.0) would
  return +0; however, implementation in software might be impractical.
-
+</small>
 
 <a name="F.9.9.3" href="#F.9.9.3"><h5>F.9.9.3 The fmin functions</h5></a>
 <p><!--para 1-->
@@ -22093,8 +22093,8 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  imaginary zero.
 
 <h6>footnotes</h6>
-<p><a name="note324">324)</a> See <a href="#6.3.1.2">6.3.1.2</a>.
-
+<p><small><a name="note324" href="#note324">324)</a> See <a href="#6.3.1.2">6.3.1.2</a>.
+</small>
 
 <a name="G.4.3" href="#G.4.3"><h4>G.4.3 Imaginary and complex</h4></a>
 <p><!--para 1-->
@@ -22290,9 +22290,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  
 
 <h6>footnotes</h6>
-<p><a name="note325">325)</a> These properties are already implied for those cases covered in the tables, but are required for all cases
+<p><small><a name="note325" href="#note325">325)</a> These properties are already implied for those cases covered in the tables, but are required for all cases
  (at least where the state for CX_LIMITED_RANGE is ''off'').
-
+</small>
 
 <a name="G.5.2" href="#G.5.2"><h4>G.5.2 Additive operators</h4></a>
 <h6>Semantics</h6>
@@ -22381,9 +22381,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
 <!--page 486 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note326">326)</a> As noted in <a href="#G.3">G.3</a>, a complex value with at least one infinite part is regarded as an infinity even if its
+<p><small><a name="note326" href="#note326">326)</a> As noted in <a href="#G.3">G.3</a>, a complex value with at least one infinite part is regarded as an infinity even if its
  other part is a NaN.
-
+</small>
 
 <a name="G.6.1" href="#G.6.1"><h4>G.6.1 Trigonometric functions</h4></a>
 
@@ -22602,9 +22602,9 @@ WG14/N1256                Committee Draft -- Septermber 7, 2007
  the parts of the result, and may raise spurious exceptions.<sup><a href="#note327"><b>327)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note327">327)</a> This allows cpow( z , c ) to be implemented as cexp(c      clog( z )) without precluding
+<p><small><a name="note327" href="#note327">327)</a> This allows cpow( z , c ) to be implemented as cexp(c      clog( z )) without precluding
  implementations that treat special cases more carefully.
-
+</small>
 
 <a name="G.6.4.2" href="#G.6.4.2"><h5>G.6.4.2 The csqrt functions</h5></a>
 <p><!--para 1-->
index e7e0a49..7459503 100644 (file)
@@ -763,9 +763,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note1">1)</a> This International Standard is designed to promote the portability of C programs among a variety of
+<p><small><a name="note1" href="#note1">1)</a> This International Standard is designed to promote the portability of C programs among a variety of
  data-processing systems. It is intended for use by implementors and programmers.
-
+</small>
 
 <a name="2" href="#2"><h2>2. Normative references</h2></a>
 <p><!--para 1-->
@@ -1078,9 +1078,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note2">2)</a> For example, ''Trapping or stopping (if supported) is disabled...'' (<a href="#F.8.2">F.8.2</a>). Note that fetching a trap
+<p><small><a name="note2" href="#note2">2)</a> For example, ''Trapping or stopping (if supported) is disabled...'' (<a href="#F.8.2">F.8.2</a>). Note that fetching a trap
  representation might perform a trap but is not required to (see <a href="#6.2.6.1">6.2.6.1</a>).
-
+</small>
 
 <a name="3.20" href="#3.20"><h3>3.20</h3></a>
 <p><!--para 1-->
@@ -1156,7 +1156,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 28 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note3">3)</a> A strictly conforming program can use conditional features (see <a href="#6.10.8.3">6.10.8.3</a>) provided the use is guarded
+<p><small><a name="note3" href="#note3">3)</a> A strictly conforming program can use conditional features (see <a href="#6.10.8.3">6.10.8.3</a>) provided the use is guarded
  by an appropriate conditional inclusion preprocessing directive using the related macro. For example:
 
 <pre>
@@ -1166,14 +1166,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
             /* ... */
          #endif</pre>
  
-
-<p><a name="note4">4)</a> This implies that a conforming implementation reserves no identifiers other than those explicitly
+</small>
+<p><small><a name="note4" href="#note4">4)</a> This implies that a conforming implementation reserves no identifiers other than those explicitly
  reserved in this International Standard.
-
-<p><a name="note5">5)</a> Strictly conforming programs are intended to be maximally portable among conforming
+</small>
+<p><small><a name="note5" href="#note5">5)</a> Strictly conforming programs are intended to be maximally portable among conforming
  implementations. Conforming programs may depend upon nonportable features of a conforming
  implementation.
-
+</small>
 
 <a name="5" href="#5"><h2>5. Environment</h2></a>
 <p><!--para 1-->
@@ -1256,18 +1256,18 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 30 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note6">6)</a> Implementations shall behave as if these separate phases occur, even though many are typically folded
+<p><small><a name="note6" href="#note6">6)</a> Implementations shall behave as if these separate phases occur, even though many are typically folded
  together in practice. Source files, translation units, and translated translation units need not
  necessarily be stored as files, nor need there be any one-to-one correspondence between these entities
  and any external representation. The description is conceptual only, and does not specify any
  particular implementation.
-
-<p><a name="note7">7)</a> As described in <a href="#6.4">6.4</a>, the process of dividing a source file's characters into preprocessing tokens is
+</small>
+<p><small><a name="note7" href="#note7">7)</a> As described in <a href="#6.4">6.4</a>, the process of dividing a source file's characters into preprocessing tokens is
  context-dependent. For example, see the handling of &lt; within a #include preprocessing directive.
-
-<p><a name="note8">8)</a> An implementation need not convert all non-corresponding source characters to the same execution
+</small>
+<p><small><a name="note8" href="#note8">8)</a> An implementation need not convert all non-corresponding source characters to the same execution
  character.
-
+</small>
 
 <a name="5.1.1.3" href="#5.1.1.3"><h5>5.1.1.3 Diagnostics</h5></a>
 <p><!--para 1-->
@@ -1286,10 +1286,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note9">9)</a> The intent is that an implementation should identify the nature of, and where possible localize, each
+<p><small><a name="note9" href="#note9">9)</a> The intent is that an implementation should identify the nature of, and where possible localize, each
  violation. Of course, an implementation is free to produce any number of diagnostics as long as a
  valid program is still correctly translated. It may also successfully translate an invalid program.
-
+</small>
 
 <a name="5.1.2" href="#5.1.2"><h4>5.1.2 Execution environments</h4></a>
 <p><!--para 1-->
@@ -1357,9 +1357,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note10">10)</a> Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
+<p><small><a name="note10" href="#note10">10)</a> Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
  char ** argv, and so on.
-
+</small>
 
 <a name="5.1.2.2.2" href="#5.1.2.2.2"><h5>5.1.2.2.2 Program execution</h5></a>
 <p><!--para 1-->
@@ -1381,9 +1381,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: definition of terms (<a href="#7.1.1">7.1.1</a>), the exit function (<a href="#7.22.4.4">7.22.4.4</a>).
 
 <h6>footnotes</h6>
-<p><a name="note11">11)</a> In accordance with <a href="#6.2.4">6.2.4</a>, the lifetimes of objects with automatic storage duration declared in main
+<p><small><a name="note11" href="#note11">11)</a> In accordance with <a href="#6.2.4">6.2.4</a>, the lifetimes of objects with automatic storage duration declared in main
  will have ended in the former case, even where they would not have in the latter.
-
+</small>
 
 <a name="5.1.2.3" href="#5.1.2.3"><h5>5.1.2.3 Program execution</h5></a>
 <p><!--para 1-->
@@ -1551,16 +1551,16 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  signal function (<a href="#7.14">7.14</a>), files (<a href="#7.21.3">7.21.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note12">12)</a> The IEC 60559 standard for binary floating-point arithmetic requires certain user-accessible status
+<p><small><a name="note12" href="#note12">12)</a> The IEC 60559 standard for binary floating-point arithmetic requires certain user-accessible status
  flags and control modes. Floating-point operations implicitly set the status flags; modes affect result
  values of floating-point operations. Implementations that support such floating-point state are
  required to regard changes to it as side effects -- see <a href="#F">annex F</a> for details. The floating-point
  environment library <a href="#7.6">&lt;fenv.h&gt;</a> provides a programming facility for indicating when these side
  effects matter, freeing the implementations in other cases.
-
-<p><a name="note13">13)</a> The executions of unsequenced evaluations can interleave. Indeterminately sequenced evaluations
+</small>
+<p><small><a name="note13" href="#note13">13)</a> The executions of unsequenced evaluations can interleave. Indeterminately sequenced evaluations
  cannot interleave, but can be executed in any order.
-
+</small>
 
 <a name="5.1.2.4" href="#5.1.2.4"><h5>5.1.2.4 Multi-threaded executions and data races</h5></a>
 <p><!--para 1-->
@@ -1769,16 +1769,16 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 40 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note14">14)</a> The execution can usually be viewed as an interleaving of all of the threads. However, some kinds of
+<p><small><a name="note14" href="#note14">14)</a> The execution can usually be viewed as an interleaving of all of the threads. However, some kinds of
  atomic operations, for example, allow executions inconsistent with a simple interleaving as described
  below.
-
-<p><a name="note15">15)</a> The ''carries a dependency'' relation is a subset of the ''sequenced before'' relation, and is similarly
+</small>
+<p><small><a name="note15" href="#note15">15)</a> The ''carries a dependency'' relation is a subset of the ''sequenced before'' relation, and is similarly
  strictly intra-thread.
-
-<p><a name="note16">16)</a> The ''dependency-ordered before'' relation is analogous to the ''synchronizes with'' relation, but uses
+</small>
+<p><small><a name="note16" href="#note16">16)</a> The ''dependency-ordered before'' relation is analogous to the ''synchronizes with'' relation, but uses
  release/consume in place of release/acquire.
-
+</small>
 
 <a name="5.2" href="#5.2"><h3>5.2 Environmental considerations</h3></a>
 
@@ -1863,9 +1863,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note17">17)</a> The trigraph sequences enable the input of characters that are not defined in the Invariant Code Set as
+<p><small><a name="note17" href="#note17">17)</a> The trigraph sequences enable the input of characters that are not defined in the Invariant Code Set as
  described in ISO/IEC 646, which is a subset of the seven-bit US ASCII code set.
-
+</small>
 
 <a name="5.2.1.2" href="#5.2.1.2"><h5>5.2.1.2 Multibyte characters</h5></a>
 <p><!--para 1-->
@@ -1994,10 +1994,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note18">18)</a> Implementations should avoid imposing fixed translation limits whenever possible.
-
-<p><a name="note19">19)</a> See ''future language directions'' (<a href="#6.11.3">6.11.3</a>).
-
+<p><small><a name="note18" href="#note18">18)</a> Implementations should avoid imposing fixed translation limits whenever possible.
+</small>
+<p><small><a name="note19" href="#note19">19)</a> See ''future language directions'' (<a href="#6.11.3">6.11.3</a>).
+</small>
 
 <a name="5.2.4.2" href="#5.2.4.2"><h5>5.2.4.2 Numerical limits</h5></a>
 <p><!--para 1-->
@@ -2067,8 +2067,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: representations of types (<a href="#6.2.6">6.2.6</a>), conditional inclusion (<a href="#6.10.1">6.10.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note20">20)</a> See <a href="#6.2.5">6.2.5</a>.
-
+<p><small><a name="note20" href="#note20">20)</a> See <a href="#6.2.5">6.2.5</a>.
+</small>
 
 <a name="5.2.4.2.2" href="#5.2.4.2.2"><h5>5.2.4.2.2 Characteristics of floating types <float.h></h5></a>
 <p><!--para 1-->
@@ -2362,33 +2362,33 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 53 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note21">21)</a> The floating-point model is intended to clarify the description of each floating-point characteristic and
+<p><small><a name="note21" href="#note21">21)</a> The floating-point model is intended to clarify the description of each floating-point characteristic and
  does not require the floating-point arithmetic of the implementation to be identical.
-
-<p><a name="note22">22)</a> IEC 60559:1989 specifies quiet and signaling NaNs. For implementations that do not support
+</small>
+<p><small><a name="note22" href="#note22">22)</a> IEC 60559:1989 specifies quiet and signaling NaNs. For implementations that do not support
  IEC 60559:1989, the terms quiet NaN and signaling NaN are intended to apply to encodings with
  similar behavior.
-
-<p><a name="note23">23)</a> Evaluation of FLT_ROUNDS correctly reflects any execution-time change of rounding mode through
+</small>
+<p><small><a name="note23" href="#note23">23)</a> Evaluation of FLT_ROUNDS correctly reflects any execution-time change of rounding mode through
  the function fesetround in <a href="#7.6">&lt;fenv.h&gt;</a>.
-
-<p><a name="note24">24)</a> The evaluation method determines evaluation formats of expressions involving all floating types, not
+</small>
+<p><small><a name="note24" href="#note24">24)</a> The evaluation method determines evaluation formats of expressions involving all floating types, not
  just real types. For example, if FLT_EVAL_METHOD is 1, then the product of two float
  _Complex operands is represented in the double _Complex format, and its parts are evaluated to
  double.
-
-<p><a name="note25">25)</a> Characterization as indeterminable is intended if floating-point operations do not consistently interpret
+</small>
+<p><small><a name="note25" href="#note25">25)</a> Characterization as indeterminable is intended if floating-point operations do not consistently interpret
  subnormal representations as zero, nor as nonzero.
-
-<p><a name="note26">26)</a> Characterization as absent is intended if no floating-point operations produce subnormal results from
+</small>
+<p><small><a name="note26" href="#note26">26)</a> Characterization as absent is intended if no floating-point operations produce subnormal results from
  non-subnormal inputs, even if the type format includes representations of subnormal numbers.
-
-<p><a name="note27">27)</a> If the presence or absence of subnormal numbers is indeterminable, then the value is intended to be a
+</small>
+<p><small><a name="note27" href="#note27">27)</a> If the presence or absence of subnormal numbers is indeterminable, then the value is intended to be a
  positive number no greater than the minimum normalized positive number for the type.
-
-<p><a name="note28">28)</a> The floating-point model in that standard sums powers of b from zero, so the values of the exponent
+</small>
+<p><small><a name="note28" href="#note28">28)</a> The floating-point model in that standard sums powers of b from zero, so the values of the exponent
  limits are one less than shown here.
-
+</small>
 
 <a name="6" href="#6"><h2>6. Language</h2></a>
 
@@ -2506,13 +2506,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  statements (<a href="#6.8">6.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note29">29)</a> There is no linkage between different identifiers.
-
-<p><a name="note30">30)</a> A function declaration can contain the storage-class specifier static only if it is at file scope; see
+<p><small><a name="note29" href="#note29">29)</a> There is no linkage between different identifiers.
+</small>
+<p><small><a name="note30" href="#note30">30)</a> A function declaration can contain the storage-class specifier static only if it is at file scope; see
  <a href="#6.7.1">6.7.1</a>.
-
-<p><a name="note31">31)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
-
+</small>
+<p><small><a name="note31" href="#note31">31)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
+</small>
 
 <a name="6.2.3" href="#6.2.3"><h4>6.2.3 Name spaces of identifiers</h4></a>
 <p><!--para 1-->
@@ -2536,8 +2536,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 56 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note32">32)</a> There is only one name space for tags even though three are possible.
-
+<p><small><a name="note32" href="#note32">32)</a> There is only one name space for tags even though three are possible.
+</small>
 
 <a name="6.2.4" href="#6.2.4"><h4>6.2.4 Storage durations of objects</h4></a>
 <p><!--para 1-->
@@ -2598,17 +2598,17 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#6.7.6">6.7.6</a>), function calls (<a href="#6.5.2.2">6.5.2.2</a>), initialization (<a href="#6.7.9">6.7.9</a>), statements (<a href="#6.8">6.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note33">33)</a> The term ''constant address'' means that two pointers to the object constructed at possibly different
+<p><small><a name="note33" href="#note33">33)</a> The term ''constant address'' means that two pointers to the object constructed at possibly different
  times will compare equal. The address may be different during two different executions of the same
  program.
-
-<p><a name="note34">34)</a> In the case of a volatile object, the last store need not be explicit in the program.
-
-<p><a name="note35">35)</a> Leaving the innermost block containing the declaration, or jumping to a point in that block or an
+</small>
+<p><small><a name="note34" href="#note34">34)</a> In the case of a volatile object, the last store need not be explicit in the program.
+</small>
+<p><small><a name="note35" href="#note35">35)</a> Leaving the innermost block containing the declaration, or jumping to a point in that block or an
  embedded block prior to the declaration, leaves the scope of the declaration.
-
-<p><a name="note36">36)</a> The address of such an object is taken implicitly when an array member is accessed.
-
+</small>
+<p><small><a name="note36" href="#note36">36)</a> The address of such an object is taken implicitly when an array member is accessed.
+</small>
 
 <a name="6.2.5" href="#6.2.5"><h4>6.2.5 Types</h4></a>
 <p><!--para 1-->
@@ -2809,42 +2809,42 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: compatible type and composite type (<a href="#6.2.7">6.2.7</a>), declarations (<a href="#6.7">6.7</a>).
 
 <h6>footnotes</h6>
-<p><a name="note37">37)</a> A type may be incomplete or complete throughout an entire translation unit, or it may change states at
+<p><small><a name="note37" href="#note37">37)</a> A type may be incomplete or complete throughout an entire translation unit, or it may change states at
  different points within a translation unit.
-
-<p><a name="note38">38)</a> Implementation-defined keywords shall have the form of an identifier reserved for any use as
+</small>
+<p><small><a name="note38" href="#note38">38)</a> Implementation-defined keywords shall have the form of an identifier reserved for any use as
  described in <a href="#7.1.3">7.1.3</a>.
-
-<p><a name="note39">39)</a> Therefore, any statement in this Standard about signed integer types also applies to the extended
+</small>
+<p><small><a name="note39" href="#note39">39)</a> Therefore, any statement in this Standard about signed integer types also applies to the extended
  signed integer types.
-
-<p><a name="note40">40)</a> Therefore, any statement in this Standard about unsigned integer types also applies to the extended
+</small>
+<p><small><a name="note40" href="#note40">40)</a> Therefore, any statement in this Standard about unsigned integer types also applies to the extended
  unsigned integer types.
-
-<p><a name="note41">41)</a> The same representation and alignment requirements are meant to imply interchangeability as
+</small>
+<p><small><a name="note41" href="#note41">41)</a> The same representation and alignment requirements are meant to imply interchangeability as
  arguments to functions, return values from functions, and members of unions.
-
-<p><a name="note42">42)</a> See ''future language directions'' (<a href="#6.11.1">6.11.1</a>).
-
-<p><a name="note43">43)</a> A specification for imaginary types is in <a href="#G">annex G</a>.
-
-<p><a name="note44">44)</a> An implementation may define new keywords that provide alternative ways to designate a basic (or
+</small>
+<p><small><a name="note42" href="#note42">42)</a> See ''future language directions'' (<a href="#6.11.1">6.11.1</a>).
+</small>
+<p><small><a name="note43" href="#note43">43)</a> A specification for imaginary types is in <a href="#G">annex G</a>.
+</small>
+<p><small><a name="note44" href="#note44">44)</a> An implementation may define new keywords that provide alternative ways to designate a basic (or
  any other) type; this does not violate the requirement that all basic types be different.
  Implementation-defined keywords shall have the form of an identifier reserved for any use as
  described in <a href="#7.1.3">7.1.3</a>.
-
-<p><a name="note45">45)</a> CHAR_MIN, defined in <a href="#7.10">&lt;limits.h&gt;</a>, will have one of the values 0 or SCHAR_MIN, and this can be
+</small>
+<p><small><a name="note45" href="#note45">45)</a> CHAR_MIN, defined in <a href="#7.10">&lt;limits.h&gt;</a>, will have one of the values 0 or SCHAR_MIN, and this can be
  used to distinguish the two options. Irrespective of the choice made, char is a separate type from the
  other two and is not compatible with either.
-
-<p><a name="note46">46)</a> Note that aggregate type does not include union type because an object with union type can only
+</small>
+<p><small><a name="note46" href="#note46">46)</a> Note that aggregate type does not include union type because an object with union type can only
  contain one member at a time.
-
-<p><a name="note47">47)</a> See <a href="#6.7.3">6.7.3</a> regarding qualified array and function types.
-
-<p><a name="note48">48)</a> The same representation and alignment requirements are meant to imply interchangeability as
+</small>
+<p><small><a name="note47" href="#note47">47)</a> See <a href="#6.7.3">6.7.3</a> regarding qualified array and function types.
+</small>
+<p><small><a name="note48" href="#note48">48)</a> The same representation and alignment requirements are meant to imply interchangeability as
  arguments to functions, return values from functions, and members of unions.
-
+</small>
 
 <a name="6.2.6" href="#6.2.6"><h4>6.2.6 Representations of types</h4></a>
 
@@ -2900,7 +2900,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  designators (<a href="#6.3.2.1">6.3.2.1</a>), order and consistency (<a href="#7.17.3">7.17.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note49">49)</a> A positional representation for integers that uses the binary digits 0 and 1, in which the values
+<p><small><a name="note49" href="#note49">49)</a> A positional representation for integers that uses the binary digits 0 and 1, in which the values
  represented by successive bits are additive, begin with 1, and are multiplied by successive integral
  powers of 2, except perhaps the bit with the highest position. (Adapted from the American National
  Dictionary for Information Processing Systems.) A byte contains CHAR_BIT bits, and the values of
@@ -2909,18 +2909,18 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <pre>
                                            CHAR_BIT
                                                      - 1.</pre>
-
-<p><a name="note50">50)</a> Thus, an automatic variable can be initialized to a trap representation without causing undefined
+</small>
+<p><small><a name="note50" href="#note50">50)</a> Thus, an automatic variable can be initialized to a trap representation without causing undefined
  behavior, but the value of the variable cannot be used until a proper value is stored in it.
-
-<p><a name="note51">51)</a> Thus, for example, structure assignment need not copy any padding bits.
-
-<p><a name="note52">52)</a> It is possible for objects x and y with the same effective type T to have the same value when they are
+</small>
+<p><small><a name="note51" href="#note51">51)</a> Thus, for example, structure assignment need not copy any padding bits.
+</small>
+<p><small><a name="note52" href="#note52">52)</a> It is possible for objects x and y with the same effective type T to have the same value when they are
  accessed as objects of type T, but to have different values in other contexts. In particular, if == is
  defined for type T, then x == y does not imply that memcmp(&amp;x, &amp;y, sizeof (T)) == 0.
  Furthermore, x == y does not necessarily imply that x and y have the same value; other operations
  on values of type T may distinguish between them.
-
+</small>
 
 <a name="6.2.6.2" href="#6.2.6.2"><h5>6.2.6.2 Integer types</h5></a>
 <p><!--para 1-->
@@ -2982,18 +2982,18 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 65 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note53">53)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
+<p><small><a name="note53" href="#note53">53)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
  bit is a parity bit. Regardless, no arithmetic operation on valid values can generate a trap
  representation other than as part of an exceptional condition such as an overflow, and this cannot occur
  with unsigned types. All other combinations of padding bits are alternative object representations of
  the value specified by the value bits.
-
-<p><a name="note54">54)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
+</small>
+<p><small><a name="note54" href="#note54">54)</a> Some combinations of padding bits might generate trap representations, for example, if one padding
  bit is a parity bit. Regardless, no arithmetic operation on valid values can generate a trap
  representation other than as part of an exceptional condition such as an overflow. All other
  combinations of padding bits are alternative object representations of the value specified by the value
  bits.
-
+</small>
 
 <a name="6.2.7" href="#6.2.7"><h4>6.2.7 Compatible type and composite type</h4></a>
 <p><!--para 1-->
@@ -3060,10 +3060,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note55">55)</a> Two types need not be identical to be compatible.
-
-<p><a name="note56">56)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
-
+<p><small><a name="note55" href="#note55">55)</a> Two types need not be identical to be compatible.
+</small>
+<p><small><a name="note56" href="#note56">56)</a> As specified in <a href="#6.2.1">6.2.1</a>, the later declaration might hide the prior declaration.
+</small>
 
 <a name="6.2.8" href="#6.2.8"><h4>6.2.8 Alignment of objects</h4></a>
 <p><!--para 1-->
@@ -3108,9 +3108,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note57">57)</a> Every over-aligned type is, or contains, a structure or union type with a member to which an extended
+<p><small><a name="note57" href="#note57">57)</a> Every over-aligned type is, or contains, a structure or union type with a member to which an extended
  alignment has been applied.
-
+</small>
 
 <a name="6.3" href="#6.3"><h3>6.3 Conversions</h3></a>
 <p><!--para 1-->
@@ -3172,10 +3172,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#6.7.2.1">6.7.2.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note58">58)</a> The integer promotions are applied only: as part of the usual arithmetic conversions, to certain
+<p><small><a name="note58" href="#note58">58)</a> The integer promotions are applied only: as part of the usual arithmetic conversions, to certain
  argument expressions, to the operands of the unary +, -, and ~ operators, and to both operands of the
  shift operators, as specified by their respective subclauses.
-
+</small>
 
 <a name="6.3.1.2" href="#6.3.1.2"><h5>6.3.1.2 Boolean type</h5></a>
 <p><!--para 1-->
@@ -3183,8 +3183,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  to 0; otherwise, the result is 1.<sup><a href="#note59"><b>59)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note59">59)</a> NaNs do not compare equal to 0 and thus convert to 1.
-
+<p><small><a name="note59" href="#note59">59)</a> NaNs do not compare equal to 0 and thus convert to 1.
+</small>
 
 <a name="6.3.1.3" href="#6.3.1.3"><h5>6.3.1.3 Signed and unsigned integers</h5></a>
 <p><!--para 1-->
@@ -3199,8 +3199,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  result is implementation-defined or an implementation-defined signal is raised.
 
 <h6>footnotes</h6>
-<p><a name="note60">60)</a> The rules describe arithmetic on the mathematical value, not the value of a given type of expression.
-
+<p><small><a name="note60" href="#note60">60)</a> The rules describe arithmetic on the mathematical value, not the value of a given type of expression.
+</small>
 
 <a name="6.3.1.4" href="#6.3.1.4"><h5>6.3.1.4 Real floating and integer</h5></a>
 <p><!--para 1-->
@@ -3221,10 +3221,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  required by the new type.
 
 <h6>footnotes</h6>
-<p><a name="note61">61)</a> The remaindering operation performed when a value of integer type is converted to unsigned type
+<p><small><a name="note61" href="#note61">61)</a> The remaindering operation performed when a value of integer type is converted to unsigned type
  need not be performed when a value of real floating type is converted to unsigned type. Thus, the
  range of portable real floating values is (-1, Utype_MAX+1).
-
+</small>
 
 <a name="6.3.1.5" href="#6.3.1.5"><h5>6.3.1.5 Real floating types</h5></a>
 <p><!--para 1-->
@@ -3299,11 +3299,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 72 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note62">62)</a> For example, addition of a double _Complex and a float entails just the conversion of the
+<p><small><a name="note62" href="#note62">62)</a> For example, addition of a double _Complex and a float entails just the conversion of the
  float operand to double (and yields a double _Complex result).
-
-<p><a name="note63">63)</a> The cast and assignment operators are still required to remove extra range and precision.
-
+</small>
+<p><small><a name="note63" href="#note63">63)</a> The cast and assignment operators are still required to remove extra range and precision.
+</small>
 
 <a name="6.3.2" href="#6.3.2"><h4>6.3.2 Other operands</h4></a>
 
@@ -3350,16 +3350,16 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#6.5.3.1">6.5.3.1</a>), the sizeof operator (<a href="#6.5.3.4">6.5.3.4</a>), structure and union members (<a href="#6.5.2.3">6.5.2.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note64">64)</a> The name ''lvalue'' comes originally from the assignment expression E1 = E2, in which the left
+<p><small><a name="note64" href="#note64">64)</a> The name ''lvalue'' comes originally from the assignment expression E1 = E2, in which the left
  operand E1 is required to be a (modifiable) lvalue. It is perhaps better considered as representing an
  object ''locator value''. What is sometimes called ''rvalue'' is in this International Standard described
  as the ''value of an expression''.
   An obvious example of an lvalue is an identifier of an object. As a further example, if E is a unary
   expression that is a pointer to an object, *E is an lvalue that designates the object to which E points.
-
-<p><a name="note65">65)</a> Because this conversion does not occur, the operand of the sizeof operator remains a function
+</small>
+<p><small><a name="note65" href="#note65">65)</a> Because this conversion does not occur, the operand of the sizeof operator remains a function
  designator and violates the constraint in <a href="#6.5.3.4">6.5.3.4</a>.
-
+</small>
 
 <a name="6.3.2.2" href="#6.3.2.2"><h5>6.3.2.2 void</h5></a>
 <p><!--para 1-->
@@ -3421,15 +3421,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 75 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note66">66)</a> The macro NULL is defined in <a href="#7.19">&lt;stddef.h&gt;</a> (and other headers) as a null pointer constant; see <a href="#7.19">7.19</a>.
-
-<p><a name="note67">67)</a> The mapping functions for converting a pointer to an integer or an integer to a pointer are intended to
+<p><small><a name="note66" href="#note66">66)</a> The macro NULL is defined in <a href="#7.19">&lt;stddef.h&gt;</a> (and other headers) as a null pointer constant; see <a href="#7.19">7.19</a>.
+</small>
+<p><small><a name="note67" href="#note67">67)</a> The mapping functions for converting a pointer to an integer or an integer to a pointer are intended to
  be consistent with the addressing structure of the execution environment.
-
-<p><a name="note68">68)</a> In general, the concept ''correctly aligned'' is transitive: if a pointer to type A is correctly aligned for a
+</small>
+<p><small><a name="note68" href="#note68">68)</a> In general, the concept ''correctly aligned'' is transitive: if a pointer to type A is correctly aligned for a
  pointer to type B, which in turn is correctly aligned for a pointer to type C, then a pointer to type A is
  correctly aligned for a pointer to type C.
-
+</small>
 
 <a name="6.4" href="#6.4"><h3>6.4 Lexical elements</h3></a>
 <h6>Syntax</h6>
@@ -3499,9 +3499,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#6.4.5">6.4.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note69">69)</a> An additional category, placemarkers, is used internally in translation phase 4 (see <a href="#6.10.3.3">6.10.3.3</a>); it cannot
+<p><small><a name="note69" href="#note69">69)</a> An additional category, placemarkers, is used internally in translation phase 4 (see <a href="#6.10.3.3">6.10.3.3</a>); it cannot
  occur in source files.
-
+</small>
 
 <a name="6.4.1" href="#6.4.1"><h4>6.4.1 Keywords</h4></a>
 <h6>Syntax</h6>
@@ -3531,8 +3531,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  specifying imaginary types.<sup><a href="#note70"><b>70)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note70">70)</a> One possible specification for imaginary types appears in <a href="#G">annex G</a>.
-
+<p><small><a name="note70" href="#note70">70)</a> One possible specification for imaginary types appears in <a href="#G">annex G</a>.
+</small>
 
 <a name="6.4.2" href="#6.4.2"><h4>6.4.2 Identifiers</h4></a>
 
@@ -3589,11 +3589,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: universal character names (<a href="#6.4.3">6.4.3</a>), macro replacement (<a href="#6.10.3">6.10.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note71">71)</a> On systems in which linkers cannot accept extended characters, an encoding of the universal character
+<p><small><a name="note71" href="#note71">71)</a> On systems in which linkers cannot accept extended characters, an encoding of the universal character
  name may be used in forming valid external identifiers. For example, some otherwise unused
  character or sequence of characters may be used to encode the \u in a universal character name.
  Extended characters may produce a long external identifier.
-
+</small>
 
 <a name="6.4.2.2" href="#6.4.2.2"><h5>6.4.2.2 Predefined identifiers</h5></a>
 <h6>Semantics</h6>
@@ -3628,9 +3628,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 79 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note72">72)</a> Since the name __func__ is reserved for any use by the implementation (<a href="#7.1.3">7.1.3</a>), if any other
+<p><small><a name="note72" href="#note72">72)</a> Since the name __func__ is reserved for any use by the implementation (<a href="#7.1.3">7.1.3</a>), if any other
  identifier is explicitly declared using the name __func__, the behavior is undefined.
-
+</small>
 
 <a name="6.4.3" href="#6.4.3"><h4>6.4.3 Universal character names</h4></a>
 <h6>Syntax</h6>
@@ -3664,13 +3664,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 80 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note73">73)</a> The disallowed characters are the characters in the basic character set and the code positions reserved
+<p><small><a name="note73" href="#note73">73)</a> The disallowed characters are the characters in the basic character set and the code positions reserved
  by ISO/IEC 10646 for control characters, the character DELETE, and the S-zone (reserved for use by
  UTF-16).
  
-
-<p><a name="note74">74)</a> Short identifiers for characters were first specified in ISO/IEC 10646-1/AMD9:1997.
-
+</small>
+<p><small><a name="note74" href="#note74">74)</a> Short identifiers for characters were first specified in ISO/IEC 10646-1/AMD9:1997.
+</small>
 
 <a name="6.4.4" href="#6.4.4"><h4>6.4.4 Constants</h4></a>
 <h6>Syntax</h6>
@@ -3870,12 +3870,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 85 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note75">75)</a> <a href="#1.23">1.23</a>, 1.230, 123e-2, 123e-02, and 1.23L are all different source forms and thus need not
+<p><small><a name="note75" href="#note75">75)</a> <a href="#1.23">1.23</a>, 1.230, 123e-2, 123e-02, and 1.23L are all different source forms and thus need not
  convert to the same internal format and value.
-
-<p><a name="note76">76)</a> The specification for the library functions recommends more accurate conversion than required for
+</small>
+<p><small><a name="note76" href="#note76">76)</a> The specification for the library functions recommends more accurate conversion than required for
  floating constants (see <a href="#7.22.1.3">7.22.1.3</a>).
-
+</small>
 
 <a name="6.4.4.3" href="#6.4.4.3"><h5>6.4.4.3 Enumeration constants</h5></a>
 <h6>Syntax</h6>
@@ -4026,9 +4026,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#7.22.7.2">7.22.7.2</a>), Unicode utilities <a href="#7.27">&lt;uchar.h&gt;</a> (<a href="#7.27">7.27</a>).
 
 <h6>footnotes</h6>
-<p><a name="note77">77)</a> The semantics of these characters were discussed in <a href="#5.2.2">5.2.2</a>. If any other character follows a backslash,
+<p><small><a name="note77" href="#note77">77)</a> The semantics of these characters were discussed in <a href="#5.2.2">5.2.2</a>. If any other character follows a backslash,
  the result is not a token and a diagnostic is required. See ''future language directions'' (<a href="#6.11.4">6.11.4</a>).
-
+</small>
 
 <a name="6.4.5" href="#6.4.5"><h4>6.4.5 String literals</h4></a>
 <h6>Syntax</h6>
@@ -4131,9 +4131,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  function (<a href="#7.22.8.1">7.22.8.1</a>), Unicode utilities <a href="#7.27">&lt;uchar.h&gt;</a> (<a href="#7.27">7.27</a>).
 
 <h6>footnotes</h6>
-<p><a name="note78">78)</a> A string literal need not be a string (see <a href="#7.1.1">7.1.1</a>), because a null character may be embedded in it by a
+<p><small><a name="note78" href="#note78">78)</a> A string literal need not be a string (see <a href="#7.1.1">7.1.1</a>), because a null character may be embedded in it by a
  \0 escape sequence.
-
+</small>
 
 <a name="6.4.6" href="#6.4.6"><h4>6.4.6 Punctuators</h4></a>
 <h6>Syntax</h6>
@@ -4167,11 +4167,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#6.10">6.10</a>), statements (<a href="#6.8">6.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note79">79)</a> These tokens are sometimes called ''digraphs''.
-
-<p><a name="note80">80)</a> Thus [ and &lt;: behave differently when ''stringized'' (see <a href="#6.10.3.2">6.10.3.2</a>), but can otherwise be freely
+<p><small><a name="note79" href="#note79">79)</a> These tokens are sometimes called ''digraphs''.
+</small>
+<p><small><a name="note80" href="#note80">80)</a> Thus [ and &lt;: behave differently when ''stringized'' (see <a href="#6.10.3.2">6.10.3.2</a>), but can otherwise be freely
  interchanged.
-
+</small>
 
 <a name="6.4.7" href="#6.4.7"><h4>6.4.7 Header names</h4></a>
 <h6>Syntax</h6>
@@ -4223,10 +4223,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: source file inclusion (<a href="#6.10.2">6.10.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note81">81)</a> Thus, sequences of characters that resemble escape sequences cause undefined behavior.
-
-<p><a name="note82">82)</a> For an example of a header name preprocessing token used in a #pragma directive, see <a href="#6.10.9">6.10.9</a>.
-
+<p><small><a name="note81" href="#note81">81)</a> Thus, sequences of characters that resemble escape sequences cause undefined behavior.
+</small>
+<p><small><a name="note82" href="#note82">82)</a> For an example of a header name preprocessing token used in a #pragma directive, see <a href="#6.10.9">6.10.9</a>.
+</small>
 
 <a name="6.4.8" href="#6.4.8"><h4>6.4.8 Preprocessing numbers</h4></a>
 <h6>Syntax</h6>
@@ -4291,8 +4291,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 94 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note83">83)</a> Thus, /* ... */ comments do not nest.
-
+<p><small><a name="note83" href="#note83">83)</a> Thus, /* ... */ comments do not nest.
+</small>
 
 <a name="6.5" href="#6.5"><h3>6.5 Expressions</h3></a>
 <p><!--para 1-->
@@ -4359,7 +4359,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 96 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note84">84)</a> This paragraph renders undefined statement expressions such as
+<p><small><a name="note84" href="#note84">84)</a> This paragraph renders undefined statement expressions such as
 
 <pre>
            i = ++i + 1;
@@ -4370,8 +4370,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
            i = i + 1;
            a[i] = i;</pre>
  
-
-<p><a name="note85">85)</a> The syntax specifies the precedence of operators in the evaluation of an expression, which is the same
+</small>
+<p><small><a name="note85" href="#note85">85)</a> The syntax specifies the precedence of operators in the evaluation of an expression, which is the same
  as the order of the major subclauses of this subclause, highest precedence first. Thus, for example, the
  expressions allowed as the operands of the binary + operator (<a href="#6.5.6">6.5.6</a>) are those expressions defined in
  <a href="#6.5.1">6.5.1</a> through <a href="#6.5.6">6.5.6</a>. The exceptions are cast expressions (<a href="#6.5.4">6.5.4</a>) as operands of unary operators
@@ -4380,24 +4380,24 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  the conditional operator ? : (<a href="#6.5.15">6.5.15</a>).
   Within each major subclause, the operators have the same precedence. Left- or right-associativity is
   indicated in each subclause by the syntax for the expressions discussed therein.
-
-<p><a name="note86">86)</a> In an expression that is evaluated more than once during the execution of a program, unsequenced and
+</small>
+<p><small><a name="note86" href="#note86">86)</a> In an expression that is evaluated more than once during the execution of a program, unsequenced and
  indeterminately sequenced evaluations of its subexpressions need not be performed consistently in
  different evaluations.
-
-<p><a name="note87">87)</a> Allocated objects have no declared type.
-
-<p><a name="note88">88)</a> The intent of this list is to specify those circumstances in which an object may or may not be aliased.
-
-<p><a name="note89">89)</a> The intermediate operations in the contracted expression are evaluated as if to infinite precision and
+</small>
+<p><small><a name="note87" href="#note87">87)</a> Allocated objects have no declared type.
+</small>
+<p><small><a name="note88" href="#note88">88)</a> The intent of this list is to specify those circumstances in which an object may or may not be aliased.
+</small>
+<p><small><a name="note89" href="#note89">89)</a> The intermediate operations in the contracted expression are evaluated as if to infinite precision and
  range, while the final operation is rounded to the format determined by the expression evaluation
  method. A contracted expression might also omit the raising of floating-point exceptions.
-
-<p><a name="note90">90)</a> This license is specifically intended to allow implementations to exploit fast machine instructions that
+</small>
+<p><small><a name="note90" href="#note90">90)</a> This license is specifically intended to allow implementations to exploit fast machine instructions that
  combine multiple C operators. As contractions potentially undermine predictability, and can even
  decrease accuracy for containing expressions, their use needs to be well-defined and clearly
  documented.
-
+</small>
 
 <a name="6.5.1" href="#6.5.1"><h4>6.5.1 Primary expressions</h4></a>
 <h6>Syntax</h6>
@@ -4427,8 +4427,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: declarations (<a href="#6.7">6.7</a>).
 
 <h6>footnotes</h6>
-<p><a name="note91">91)</a> Thus, an undeclared identifier is a violation of the syntax.
-
+<p><small><a name="note91" href="#note91">91)</a> Thus, an undeclared identifier is a violation of the syntax.
+</small>
 
 <a name="6.5.1.1" href="#6.5.1.1"><h5>6.5.1.1 Generic selection</h5></a>
 <h6>Syntax</h6>
@@ -4612,15 +4612,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  definitions (<a href="#6.9.1">6.9.1</a>), the return statement (<a href="#6.8.6.4">6.8.6.4</a>), simple assignment (<a href="#6.5.16.1">6.5.16.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note92">92)</a> Most often, this is the result of converting an identifier that is a function designator.
-
-<p><a name="note93">93)</a> A function may change the values of its parameters, but these changes cannot affect the values of the
+<p><small><a name="note92" href="#note92">92)</a> Most often, this is the result of converting an identifier that is a function designator.
+</small>
+<p><small><a name="note93" href="#note93">93)</a> A function may change the values of its parameters, but these changes cannot affect the values of the
  arguments. On the other hand, it is possible to pass a pointer to an object, and the function may
  change the value of the object pointed to. A parameter declared to have array or function type is
  adjusted to have a pointer type as described in <a href="#6.9.1">6.9.1</a>.
-
-<p><a name="note94">94)</a> In other words, function executions do not ''interleave'' with each other.
-
+</small>
+<p><small><a name="note94" href="#note94">94)</a> In other words, function executions do not ''interleave'' with each other.
+</small>
 
 <a name="6.5.2.3" href="#6.5.2.3"><h5>6.5.2.3 Structure and union members</h5></a>
 <h6>Constraints</h6>
@@ -4727,18 +4727,18 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 103 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note95">95)</a> If the member used to read the contents of a union object is not the same as the member last used to
+<p><small><a name="note95" href="#note95">95)</a> If the member used to read the contents of a union object is not the same as the member last used to
  store a value in the object, the appropriate part of the object representation of the value is reinterpreted
  as an object representation in the new type as described in <a href="#6.2.6">6.2.6</a> (a process sometimes called ''type
  punning''). This might be a trap representation.
-
-<p><a name="note96">96)</a> If &amp;E is a valid pointer expression (where &amp; is the ''address-of '' operator, which generates a pointer to
+</small>
+<p><small><a name="note96" href="#note96">96)</a> If &amp;E is a valid pointer expression (where &amp; is the ''address-of '' operator, which generates a pointer to
  its operand), the expression (&amp;E)-&gt;MOS is the same as E.MOS.
-
-<p><a name="note97">97)</a> For example, a data race would occur if access to the entire structure or union in one thread conflicts
+</small>
+<p><small><a name="note97" href="#note97">97)</a> For example, a data race would occur if access to the entire structure or union in one thread conflicts
  with access to a member from another thread, where at least one access is a modification. Members
  can be safely accessed using a non-atomic object which is assigned to or from the atomic object.
-
+</small>
 
 <a name="6.5.2.4" href="#6.5.2.4"><h5>6.5.2.4 Postfix increment and decrement operators</h5></a>
 <h6>Constraints</h6>
@@ -4763,7 +4763,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: additive operators (<a href="#6.5.6">6.5.6</a>), compound assignment (<a href="#6.5.16.2">6.5.16.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note98">98)</a> Where a pointer to an atomic object can be formed, this is equivalent to the following code sequence
+<p><small><a name="note98" href="#note98">98)</a> Where a pointer to an atomic object can be formed, this is equivalent to the following code sequence
  where T is the type of E:
 
 <pre>
@@ -4773,7 +4773,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
                  tmp = result + 1;
           } while (!atomic_compare_exchange_strong(&amp;E, &amp;result, tmp));</pre>
   with result being the result of the operation.
-
+</small>
 
 <a name="6.5.2.5" href="#6.5.2.5"><h5>6.5.2.5 Compound literals</h5></a>
 <h6>Constraints</h6>
@@ -4897,14 +4897,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 106 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note99">99)</a> Note that this differs from a cast expression. For example, a cast specifies a conversion to scalar types
+<p><small><a name="note99" href="#note99">99)</a> Note that this differs from a cast expression. For example, a cast specifies a conversion to scalar types
  or void only, and the result of a cast expression is not an lvalue.
-
-<p><a name="note100">100)</a> For example, subobjects without explicit initializers are initialized to zero.
-
-<p><a name="note101">101)</a> This allows implementations to share storage for string literals and constant compound literals with
+</small>
+<p><small><a name="note100" href="#note100">100)</a> For example, subobjects without explicit initializers are initialized to zero.
+</small>
+<p><small><a name="note101" href="#note101">101)</a> This allows implementations to share storage for string literals and constant compound literals with
  the same or overlapping representations.
-
+</small>
 
 <a name="6.5.3" href="#6.5.3"><h4>6.5.3 Unary operators</h4></a>
 <h6>Syntax</h6>
@@ -4966,14 +4966,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#6.7.2.1">6.7.2.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note102">102)</a> Thus, &amp;*E is equivalent to E (even if E is a null pointer), and &amp;(E1[E2]) to ((E1)+(E2)). It is
+<p><small><a name="note102" href="#note102">102)</a> Thus, &amp;*E is equivalent to E (even if E is a null pointer), and &amp;(E1[E2]) to ((E1)+(E2)). It is
  always true that if E is a function designator or an lvalue that is a valid operand of the unary &amp;
  operator, *&amp;E is a function designator or an lvalue equal to E. If *P is an lvalue and T is the name of
  an object pointer type, *(T)P is an lvalue that has a type compatible with that to which T points.
  Among the invalid values for dereferencing a pointer by the unary * operator are a null pointer, an
  address inappropriately aligned for the type of object pointed to, and the address of an object after the
  end of its lifetime.
-
+</small>
 
 <a name="6.5.3.3" href="#6.5.3.3"><h5>6.5.3.3 Unary arithmetic operators</h5></a>
 <h6>Constraints</h6>
@@ -5070,9 +5070,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  structure and union specifiers (<a href="#6.7.2.1">6.7.2.1</a>), type names (<a href="#6.7.7">6.7.7</a>), array declarators (<a href="#6.7.6.2">6.7.6.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note103">103)</a> When applied to a parameter declared to have array or function type, the sizeof operator yields the
+<p><small><a name="note103" href="#note103">103)</a> When applied to a parameter declared to have array or function type, the sizeof operator yields the
  size of the adjusted (pointer) type (see <a href="#6.9.1">6.9.1</a>).
-
+</small>
 
 <a name="6.5.4" href="#6.5.4"><h4>6.5.4 Cast operators</h4></a>
 <h6>Syntax</h6>
@@ -5107,9 +5107,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 110 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note104">104)</a> A cast does not yield an lvalue. Thus, a cast to a qualified type has the same effect as a cast to the
+<p><small><a name="note104" href="#note104">104)</a> A cast does not yield an lvalue. Thus, a cast to a qualified type has the same effect as a cast to the
  unqualified version of the type.
-
+</small>
 
 <a name="6.5.5" href="#6.5.5"><h4>6.5.5 Multiplicative operators</h4></a>
 <h6>Syntax</h6>
@@ -5140,8 +5140,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  undefined.
 
 <h6>footnotes</h6>
-<p><a name="note105">105)</a> This is often called ''truncation toward zero''.
-
+<p><small><a name="note105" href="#note105">105)</a> This is often called ''truncation toward zero''.
+</small>
 
 <a name="6.5.6" href="#6.5.6"><h4>6.5.6 Additive operators</h4></a>
 <h6>Syntax</h6>
@@ -5235,7 +5235,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#7.19">7.19</a>).
 
 <h6>footnotes</h6>
-<p><a name="note106">106)</a> Another way to approach pointer arithmetic is first to convert the pointer(s) to character pointer(s): In
+<p><small><a name="note106" href="#note106">106)</a> Another way to approach pointer arithmetic is first to convert the pointer(s) to character pointer(s): In
  this scheme the integer expression added to or subtracted from the converted pointer is first multiplied
  by the size of the object originally pointed to, and the resulting pointer is converted back to the
  original type. For pointer subtraction, the result of the difference between the character pointers is
@@ -5243,7 +5243,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  When viewed in this way, an implementation need only provide one extra byte (which may overlap
  another object in the program) just after the end of the object in order to satisfy the ''one past the last
  element'' requirements.
-
+</small>
 
 <a name="6.5.7" href="#6.5.7"><h4>6.5.7 Bitwise shift operators</h4></a>
 <h6>Syntax</h6>
@@ -5320,9 +5320,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  false.<sup><a href="#note107"><b>107)</b></a></sup> The result has type int.
 
 <h6>footnotes</h6>
-<p><a name="note107">107)</a> The expression a&lt;b&lt;c is not interpreted as in ordinary mathematics. As the syntax indicates, it
+<p><small><a name="note107" href="#note107">107)</a> The expression a&lt;b&lt;c is not interpreted as in ordinary mathematics. As the syntax indicates, it
  means (a&lt;b)&lt;c; in other words, ''if a is less than b, compare 1 to c; otherwise, compare 0 to c''.
-
+</small>
 
 <a name="6.5.9" href="#6.5.9"><h4>6.5.9 Equality operators</h4></a>
 <h6>Syntax</h6>
@@ -5376,14 +5376,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  type of the object as its element type.
 
 <h6>footnotes</h6>
-<p><a name="note108">108)</a> Because of the precedences, a&lt;b == c&lt;d is 1 whenever a&lt;b and c&lt;d have the same truth-value.
-
-<p><a name="note109">109)</a> Two objects may be adjacent in memory because they are adjacent elements of a larger array or
+<p><small><a name="note108" href="#note108">108)</a> Because of the precedences, a&lt;b == c&lt;d is 1 whenever a&lt;b and c&lt;d have the same truth-value.
+</small>
+<p><small><a name="note109" href="#note109">109)</a> Two objects may be adjacent in memory because they are adjacent elements of a larger array or
  adjacent members of a structure with no padding between them, or because the implementation chose
  to place them so, even though they are unrelated. If prior invalid pointer operations (such as accesses
  outside array bounds) produced undefined behavior, subsequent comparisons also produce undefined
  behavior.
-
+</small>
 
 <a name="6.5.10" href="#6.5.10"><h4>6.5.10 Bitwise AND operator</h4></a>
 <h6>Syntax</h6>
@@ -5555,8 +5555,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note110">110)</a> A conditional expression does not yield an lvalue.
-
+<p><small><a name="note110" href="#note110">110)</a> A conditional expression does not yield an lvalue.
+</small>
 
 <a name="6.5.16" href="#6.5.16"><h4>6.5.16 Assignment operators</h4></a>
 <h6>Syntax</h6>
@@ -5585,9 +5585,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 120 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note111">111)</a> The implementation is permitted to read the object to determine the value but is not required to, even
+<p><small><a name="note111" href="#note111">111)</a> The implementation is permitted to read the object to determine the value but is not required to, even
  when the object has volatile-qualified type.
-
+</small>
 
 <a name="6.5.16.1" href="#6.5.16.1"><h5>6.5.16.1 Simple assignment</h5></a>
 <h6>Constraints</h6>
@@ -5666,11 +5666,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note112">112)</a> The asymmetric appearance of these constraints with respect to type qualifiers is due to the conversion
+<p><small><a name="note112" href="#note112">112)</a> The asymmetric appearance of these constraints with respect to type qualifiers is due to the conversion
  (specified in <a href="#6.3.2.1">6.3.2.1</a>) that changes lvalues to ''the value of the expression'' and thus removes any type
  qualifiers that were applied to the type category of the expression (for example, it removes const but
  not volatile from the type int volatile * const).
-
+</small>
 
 <a name="6.5.16.2" href="#6.5.16.2"><h5>6.5.16.2 Compound assignment</h5></a>
 <h6>Constraints</h6>
@@ -5695,7 +5695,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  semantics.<sup><a href="#note113"><b>113)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note113">113)</a> Where a pointer to an atomic object can be formed, this is equivalent to the following code sequence
+<p><small><a name="note113" href="#note113">113)</a> Where a pointer to an atomic object can be formed, this is equivalent to the following code sequence
  where T is the type of E1:
 
 <pre>
@@ -5705,7 +5705,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
                 result = tmp op (E2);
           } while (!atomic_compare_exchange_strong(&amp;E1, &amp;tmp, result));</pre>
   with result being the result of the operation.
-
+</small>
 
 <a name="6.5.17" href="#6.5.17"><h4>6.5.17 Comma operator</h4></a>
 <h6>Syntax</h6>
@@ -5736,8 +5736,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 123 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note114">114)</a> A comma operator does not yield an lvalue.
-
+<p><small><a name="note114" href="#note114">114)</a> A comma operator does not yield an lvalue.
+</small>
 
 <a name="6.6" href="#6.6"><h3>6.6 Constant expressions</h3></a>
 <h6>Syntax</h6>
@@ -5811,22 +5811,22 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 125 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note115">115)</a> The operand of a sizeof operator is usually not evaluated (<a href="#6.5.3.4">6.5.3.4</a>).
-
-<p><a name="note116">116)</a> The use of evaluation formats as characterized by FLT_EVAL_METHOD also applies to evaluation in
+<p><small><a name="note115" href="#note115">115)</a> The operand of a sizeof operator is usually not evaluated (<a href="#6.5.3.4">6.5.3.4</a>).
+</small>
+<p><small><a name="note116" href="#note116">116)</a> The use of evaluation formats as characterized by FLT_EVAL_METHOD also applies to evaluation in
  the translation environment.
-
-<p><a name="note117">117)</a> An integer constant expression is required in a number of contexts such as the size of a bit-field
+</small>
+<p><small><a name="note117" href="#note117">117)</a> An integer constant expression is required in a number of contexts such as the size of a bit-field
  member of a structure, the value of an enumeration constant, and the size of a non-variable length
  array. Further constraints that apply to the integer constant expressions used in conditional-inclusion
  preprocessing directives are discussed in <a href="#6.10.1">6.10.1</a>.
-
-<p><a name="note118">118)</a> Thus, in the following initialization,
+</small>
+<p><small><a name="note118" href="#note118">118)</a> Thus, in the following initialization,
 
 <pre>
            static int i = 2 || 1 / 0;</pre>
   the expression is a valid integer constant expression with value one.
-
+</small>
 
 <a name="6.7" href="#6.7"><h3>6.7 Declarations</h3></a>
 <h6>Syntax</h6>
@@ -5889,8 +5889,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#6.7.9">6.7.9</a>), type names (<a href="#6.7.7">6.7.7</a>), type qualifiers (<a href="#6.7.3">6.7.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note119">119)</a> Function definitions have a different syntax, described in <a href="#6.9.1">6.9.1</a>.
-
+<p><small><a name="note119" href="#note119">119)</a> Function definitions have a different syntax, described in <a href="#6.9.1">6.9.1</a>.
+</small>
 
 <a name="6.7.1" href="#6.7.1"><h4>6.7.1 Storage-class specifiers</h4></a>
 <h6>Syntax</h6>
@@ -5936,15 +5936,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: type definitions (<a href="#6.7.8">6.7.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note120">120)</a> See ''future language directions'' (<a href="#6.11.5">6.11.5</a>).
-
-<p><a name="note121">121)</a> The implementation may treat any register declaration simply as an auto declaration. However,
+<p><small><a name="note120" href="#note120">120)</a> See ''future language directions'' (<a href="#6.11.5">6.11.5</a>).
+</small>
+<p><small><a name="note121" href="#note121">121)</a> The implementation may treat any register declaration simply as an auto declaration. However,
  whether or not addressable storage is actually used, the address of any part of an object declared with
  storage-class specifier register cannot be computed, either explicitly (by use of the unary &amp;
  operator as discussed in <a href="#6.5.3.2">6.5.3.2</a>) or implicitly (by converting an array name to a pointer as discussed in
  <a href="#6.3.2.1">6.3.2.1</a>). Thus, the only operator that can be applied to an array declared with storage-class specifier
  register is sizeof.
-
+</small>
 
 <a name="6.7.2" href="#6.7.2"><h4>6.7.2 Type specifiers</h4></a>
 <h6>Syntax</h6>
@@ -6231,21 +6231,21 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 134 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note122">122)</a> While the number of bits in a _Bool object is at least CHAR_BIT, the width (number of sign and
+<p><small><a name="note122" href="#note122">122)</a> While the number of bits in a _Bool object is at least CHAR_BIT, the width (number of sign and
  value bits) of a _Bool may be just 1 bit.
-
-<p><a name="note123">123)</a> A structure or union cannot contain a member with a variably modified type because member names
+</small>
+<p><small><a name="note123" href="#note123">123)</a> A structure or union cannot contain a member with a variably modified type because member names
  are not ordinary identifiers as defined in <a href="#6.2.3">6.2.3</a>.
-
-<p><a name="note124">124)</a> The unary &amp; (address-of) operator cannot be applied to a bit-field object; thus, there are no pointers to
+</small>
+<p><small><a name="note124" href="#note124">124)</a> The unary &amp; (address-of) operator cannot be applied to a bit-field object; thus, there are no pointers to
  or arrays of bit-field objects.
-
-<p><a name="note125">125)</a> As specified in <a href="#6.7.2">6.7.2</a> above, if the actual type specifier used is int or a typedef-name defined as int,
+</small>
+<p><small><a name="note125" href="#note125">125)</a> As specified in <a href="#6.7.2">6.7.2</a> above, if the actual type specifier used is int or a typedef-name defined as int,
  then it is implementation-defined whether the bit-field is signed or unsigned.
-
-<p><a name="note126">126)</a> An unnamed bit-field structure member is useful for padding to conform to externally imposed
+</small>
+<p><small><a name="note126" href="#note126">126)</a> An unnamed bit-field structure member is useful for padding to conform to externally imposed
  layouts.
-
+</small>
 
 <a name="6.7.2.2" href="#6.7.2.2"><h5>6.7.2.2 Enumeration specifiers</h5></a>
 <h6>Syntax</h6>
@@ -6301,12 +6301,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: tags (<a href="#6.7.2.3">6.7.2.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note127">127)</a> Thus, the identifiers of enumeration constants declared in the same scope shall all be distinct from
+<p><small><a name="note127" href="#note127">127)</a> Thus, the identifiers of enumeration constants declared in the same scope shall all be distinct from
  each other and from other identifiers declared in ordinary declarators.
-
-<p><a name="note128">128)</a> An implementation may delay the choice of which integer type until all enumeration constants have
+</small>
+<p><small><a name="note128" href="#note128">128)</a> An implementation may delay the choice of which integer type until all enumeration constants have
  been seen.
-
+</small>
 
 <a name="6.7.2.3" href="#6.7.2.3"><h5>6.7.2.3 Tags</h5></a>
 <h6>Constraints</h6>
@@ -6418,18 +6418,18 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: declarators (<a href="#6.7.6">6.7.6</a>), type definitions (<a href="#6.7.8">6.7.8</a>).
 
 <h6>footnotes</h6>
-<p><a name="note129">129)</a> An incomplete type may only by used when the size of an object of that type is not needed. It is not
+<p><small><a name="note129" href="#note129">129)</a> An incomplete type may only by used when the size of an object of that type is not needed. It is not
  needed, for example, when a typedef name is declared to be a specifier for a structure or union, or
  when a pointer to or a function returning a structure or union is being declared. (See incomplete types
  in <a href="#6.2.5">6.2.5</a>.) The specification has to be complete before such a function is called or defined.
-
-<p><a name="note130">130)</a> If there is no identifier, the type can, within the translation unit, only be referred to by the declaration
+</small>
+<p><small><a name="note130" href="#note130">130)</a> If there is no identifier, the type can, within the translation unit, only be referred to by the declaration
  of which it is a part. Of course, when the declaration is of a typedef name, subsequent declarations
  can make use of that typedef name to declare objects having the specified structure, union, or
  enumerated type.
-
-<p><a name="note131">131)</a> A similar construction with enum does not exist.
-
+</small>
+<p><small><a name="note131" href="#note131">131)</a> A similar construction with enum does not exist.
+</small>
 
 <a name="6.7.2.4" href="#6.7.2.4"><h5>6.7.2.4 Atomic type specifiers</h5></a>
 <h6>Syntax</h6>
@@ -6544,24 +6544,24 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note132">132)</a> The implementation may place a const object that is not volatile in a read-only region of
+<p><small><a name="note132" href="#note132">132)</a> The implementation may place a const object that is not volatile in a read-only region of
  storage. Moreover, the implementation need not allocate storage for such an object if its address is
  never used.
-
-<p><a name="note133">133)</a> This applies to those objects that behave as if they were defined with qualified types, even if they are
+</small>
+<p><small><a name="note133" href="#note133">133)</a> This applies to those objects that behave as if they were defined with qualified types, even if they are
  never actually defined as objects in the program (such as an object at a memory-mapped input/output
  address).
-
-<p><a name="note134">134)</a> A volatile declaration may be used to describe an object corresponding to a memory-mapped
+</small>
+<p><small><a name="note134" href="#note134">134)</a> A volatile declaration may be used to describe an object corresponding to a memory-mapped
  input/output port or an object accessed by an asynchronously interrupting function. Actions on
  objects so declared shall not be ''optimized out'' by an implementation or reordered except as
  permitted by the rules for evaluating expressions.
-
-<p><a name="note135">135)</a> For example, a statement that assigns a value returned by malloc to a single pointer establishes this
+</small>
+<p><small><a name="note135" href="#note135">135)</a> For example, a statement that assigns a value returned by malloc to a single pointer establishes this
  association between the allocated object and the pointer.
-
-<p><a name="note136">136)</a> Both of these can occur through the use of typedefs.
-
+</small>
+<p><small><a name="note136" href="#note136">136)</a> Both of these can occur through the use of typedefs.
+</small>
 
 <a name="6.7.3.1" href="#6.7.3.1"><h5>6.7.3.1 Formal definition of restrict</h5></a>
 <p><!--para 1-->
@@ -6674,11 +6674,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note137">137)</a> In other words, E depends on the value of P itself rather than on the value of an object referenced
+<p><small><a name="note137" href="#note137">137)</a> In other words, E depends on the value of P itself rather than on the value of an object referenced
  indirectly through P. For example, if identifier p has type (int **restrict), then the pointer
  expressions p and p+1 are based on the restricted pointer object designated by p, but the pointer
  expressions *p and p[1] are not.
-
+</small>
 
 <a name="6.7.4" href="#6.7.4"><h4>6.7.4 Function specifiers</h4></a>
 <h6>Syntax</h6>
@@ -6769,21 +6769,21 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: function definitions (<a href="#6.9.1">6.9.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note138">138)</a> By using, for example, an alternative to the usual function call mechanism, such as ''inline
+<p><small><a name="note138" href="#note138">138)</a> By using, for example, an alternative to the usual function call mechanism, such as ''inline
  substitution''. Inline substitution is not textual substitution, nor does it create a new function.
  Therefore, for example, the expansion of a macro used within the body of the function uses the
  definition it had at the point the function body appears, and not where the function is called; and
  identifiers refer to the declarations in scope where the body occurs. Likewise, the function has a
  single address, regardless of the number of inline definitions that occur in addition to the external
  definition.
-
-<p><a name="note139">139)</a> For example, an implementation might never perform inline substitution, or might only perform inline
+</small>
+<p><small><a name="note139" href="#note139">139)</a> For example, an implementation might never perform inline substitution, or might only perform inline
  substitutions to calls in the scope of an inline declaration.
-
-<p><a name="note140">140)</a> Since an inline definition is distinct from the corresponding external definition and from any other
+</small>
+<p><small><a name="note140" href="#note140">140)</a> Since an inline definition is distinct from the corresponding external definition and from any other
  corresponding inline definitions in other translation units, all corresponding objects with static storage
  duration are also distinct in each of the definitions.
-
+</small>
 
 <a name="6.7.5" href="#6.7.5"><h4>6.7.5 Alignment specifier</h4></a>
 <h6>Syntax</h6>
@@ -6825,9 +6825,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 145 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note141">141)</a> An alignment specification of zero also does not affect other alignment specifications in the same
+<p><small><a name="note141" href="#note141">141)</a> An alignment specification of zero also does not affect other alignment specifications in the same
  declaration.
-
+</small>
 
 <a name="6.7.6" href="#6.7.6"><h4>6.7.6 Declarators</h4></a>
 <h6>Syntax</h6>
@@ -7048,10 +7048,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  initialization (<a href="#6.7.9">6.7.9</a>).
 
 <h6>footnotes</h6>
-<p><a name="note142">142)</a> When several ''array of'' specifications are adjacent, a multidimensional array is declared.
-
-<p><a name="note143">143)</a> Thus, * can be used only in function declarations that are not definitions (see <a href="#6.7.6.3">6.7.6.3</a>).
-
+<p><small><a name="note142" href="#note142">142)</a> When several ''array of'' specifications are adjacent, a multidimensional array is declared.
+</small>
+<p><small><a name="note143" href="#note143">143)</a> Thus, * can be used only in function declarations that are not definitions (see <a href="#6.7.6.3">6.7.6.3</a>).
+</small>
 
 <a name="6.7.6.3" href="#6.7.6.3"><h5>6.7.6.3 Function declarators (including prototypes)</h5></a>
 <h6>Constraints</h6>
@@ -7211,13 +7211,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 153 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note144">144)</a> The macros defined in the <a href="#7.16">&lt;stdarg.h&gt;</a> header (<a href="#7.16">7.16</a>) may be used to access arguments that
+<p><small><a name="note144" href="#note144">144)</a> The macros defined in the <a href="#7.16">&lt;stdarg.h&gt;</a> header (<a href="#7.16">7.16</a>) may be used to access arguments that
  correspond to the ellipsis.
-
-<p><a name="note145">145)</a> See ''future language directions'' (<a href="#6.11.6">6.11.6</a>).
-
-<p><a name="note146">146)</a> If both function types are ''old style'', parameter types are not compared.
-
+</small>
+<p><small><a name="note145" href="#note145">145)</a> See ''future language directions'' (<a href="#6.11.6">6.11.6</a>).
+</small>
+<p><small><a name="note146" href="#note146">146)</a> If both function types are ''old style'', parameter types are not compared.
+</small>
 
 <a name="6.7.7" href="#6.7.7"><h4>6.7.7 Type names</h4></a>
 <h6>Syntax</h6>
@@ -7267,9 +7267,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 154 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note147">147)</a> As indicated by the syntax, empty parentheses in a type name are interpreted as ''function with no
+<p><small><a name="note147" href="#note147">147)</a> As indicated by the syntax, empty parentheses in a type name are interpreted as ''function with no
  parameter specification'', rather than redundant parentheses around the omitted identifier.
-
+</small>
 
 <a name="6.7.8" href="#6.7.8"><h4>6.7.8 Type definitions</h4></a>
 <h6>Syntax</h6>
@@ -7670,21 +7670,21 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 162 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note148">148)</a> If the initializer list for a subaggregate or contained union does not begin with a left brace, its
+<p><small><a name="note148" href="#note148">148)</a> If the initializer list for a subaggregate or contained union does not begin with a left brace, its
  subobjects are initialized as usual, but the subaggregate or contained union does not become the
  current object: current objects are associated only with brace-enclosed initializer lists.
-
-<p><a name="note149">149)</a> After a union member is initialized, the next object is not the next member of the union; instead, it is
+</small>
+<p><small><a name="note149" href="#note149">149)</a> After a union member is initialized, the next object is not the next member of the union; instead, it is
  the next subobject of an object containing the union.
-
-<p><a name="note150">150)</a> Thus, a designator can only specify a strict subobject of the aggregate or union that is associated with
+</small>
+<p><small><a name="note150" href="#note150">150)</a> Thus, a designator can only specify a strict subobject of the aggregate or union that is associated with
  the surrounding brace pair. Note, too, that each separate designator list is independent.
-
-<p><a name="note151">151)</a> Any initializer for the subobject which is overridden and so not used to initialize that subobject might
+</small>
+<p><small><a name="note151" href="#note151">151)</a> Any initializer for the subobject which is overridden and so not used to initialize that subobject might
  not be evaluated at all.
-
-<p><a name="note152">152)</a> In particular, the evaluation order need not be the same as the order of subobject initialization.
-
+</small>
+<p><small><a name="note152" href="#note152">152)</a> In particular, the evaluation order need not be the same as the order of subobject initialization.
+</small>
 
 <a name="6.7.10" href="#6.7.10"><h4>6.7.10 Static assertions</h4></a>
 <h6>Syntax</h6>
@@ -7828,8 +7828,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: iteration statements (<a href="#6.8.5">6.8.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note153">153)</a> Such as assignments, and function calls which have side effects.
-
+<p><small><a name="note153" href="#note153">153)</a> Such as assignments, and function calls which have side effects.
+</small>
 
 <a name="6.8.4" href="#6.8.4"><h4>6.8.4 Selection statements</h4></a>
 <h6>Syntax</h6>
@@ -7920,9 +7920,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note154">154)</a> That is, the declaration either precedes the switch statement, or it follows the last case or
+<p><small><a name="note154" href="#note154">154)</a> That is, the declaration either precedes the switch statement, or it follows the last case or
  default label associated with the switch that is in the block containing the declaration.
-
+</small>
 
 <a name="6.8.5" href="#6.8.5"><h4>6.8.5 Iteration statements</h4></a>
 <h6>Syntax</h6>
@@ -7958,14 +7958,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  terminate.<sup><a href="#note157"><b>157)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note155">155)</a> Code jumped over is not executed. In particular, the controlling expression of a for or while
+<p><small><a name="note155" href="#note155">155)</a> Code jumped over is not executed. In particular, the controlling expression of a for or while
  statement is not evaluated before entering the loop body, nor is clause-1 of a for statement.
-
-<p><a name="note156">156)</a> An omitted controlling expression is replaced by a nonzero constant, which is a constant expression.
-
-<p><a name="note157">157)</a> This is intended to allow compiler transformations such as removal of empty loops even when
+</small>
+<p><small><a name="note156" href="#note156">156)</a> An omitted controlling expression is replaced by a nonzero constant, which is a constant expression.
+</small>
+<p><small><a name="note157" href="#note157">157)</a> This is intended to allow compiler transformations such as removal of empty loops even when
  termination cannot be proven.
-
+</small>
 
 <a name="6.8.5.1" href="#6.8.5.1"><h5>6.8.5.1 The while statement</h5></a>
 <p><!--para 1-->
@@ -7994,11 +7994,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  nonzero constant.
 
 <h6>footnotes</h6>
-<p><a name="note158">158)</a> Thus, clause-1 specifies initialization for the loop, possibly declaring one or more variables for use in
+<p><small><a name="note158" href="#note158">158)</a> Thus, clause-1 specifies initialization for the loop, possibly declaring one or more variables for use in
  the loop; the controlling expression, expression-2, specifies an evaluation made before each iteration,
  such that execution of the loop continues until the expression compares equal to 0; and expression-3
  specifies an operation (such as incrementing) that is performed after each iteration.
-
+</small>
 
 <a name="6.8.6" href="#6.8.6"><h4>6.8.6 Jump statements</h4></a>
 <h6>Syntax</h6>
@@ -8093,8 +8093,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  case it is interpreted within that statement), it is equivalent to goto contin;.<sup><a href="#note159"><b>159)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note159">159)</a> Following the contin: label is a null statement.
-
+<p><small><a name="note159" href="#note159">159)</a> Following the contin: label is a null statement.
+</small>
 
 <a name="6.8.6.3" href="#6.8.6.3"><h5>6.8.6.3 The break statement</h5></a>
 <h6>Constraints</h6>
@@ -8153,10 +8153,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 172 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note160">160)</a> The return statement is not an assignment. The overlap restriction of subclause <a href="#6.5.16.1">6.5.16.1</a> does not
+<p><small><a name="note160" href="#note160">160)</a> The return statement is not an assignment. The overlap restriction of subclause <a href="#6.5.16.1">6.5.16.1</a> does not
  apply to the case of function return. The representation of floating-point values may have wider range
  or precision than implied by the type; a cast may be used to remove this extra range and precision.
-
+</small>
 
 <a name="6.9" href="#6.9"><h3>6.9 External definitions</h3></a>
 <h6>Syntax</h6>
@@ -8199,9 +8199,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 173 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note161">161)</a> Thus, if an identifier declared with external linkage is not used in an expression, there need be no
+<p><small><a name="note161" href="#note161">161)</a> Thus, if an identifier declared with external linkage is not used in an expression, there need be no
  external definition for it.
-
+</small>
 
 <a name="6.9.1" href="#6.9.1"><h4>6.9.1 Function definitions</h4></a>
 <h6>Syntax</h6>
@@ -8316,7 +8316,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note162">162)</a> The intent is that the type category in a function definition cannot be inherited from a typedef:
+<p><small><a name="note162" href="#note162">162)</a> The intent is that the type category in a function definition cannot be inherited from a typedef:
 
 <pre>
           typedef int F(void);                          //   type F is ''function with no parameters
@@ -8330,11 +8330,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
           F *((e))(void) { /* ... */ }                  //   same: parentheses irrelevant
           int (*fp)(void);                              //   fp points to a function that has type F
           F *Fp;                                        //   Fp points to a function that has type F</pre>
-
-<p><a name="note163">163)</a> See ''future language directions'' (<a href="#6.11.7">6.11.7</a>).
-
-<p><a name="note164">164)</a> A parameter identifier cannot be redeclared in the function body except in an enclosed block.
-
+</small>
+<p><small><a name="note163" href="#note163">163)</a> See ''future language directions'' (<a href="#6.11.7">6.11.7</a>).
+</small>
+<p><small><a name="note164" href="#note164">164)</a> A parameter identifier cannot be redeclared in the function body except in an enclosed block.
+</small>
 
 <a name="6.9.2" href="#6.9.2"><h4>6.9.2 External object definitions</h4></a>
 <h6>Semantics</h6>
@@ -8481,10 +8481,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note165">165)</a> Thus, preprocessing directives are commonly called ''lines''. These ''lines'' have no other syntactic
+<p><small><a name="note165" href="#note165">165)</a> Thus, preprocessing directives are commonly called ''lines''. These ''lines'' have no other syntactic
  significance, as all white space is equivalent except in certain situations during preprocessing (see the
  # character string literal creation operator in <a href="#6.10.3.2">6.10.3.2</a>, for example).
-
+</small>
 
 <a name="6.10.1" href="#6.10.1"><h4>6.10.1 Conditional inclusion</h4></a>
 <h6>Constraints</h6>
@@ -8559,22 +8559,22 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  integer types (<a href="#7.20.1.5">7.20.1.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note166">166)</a> Because the controlling constant expression is evaluated during translation phase 4, all identifiers
+<p><small><a name="note166" href="#note166">166)</a> Because the controlling constant expression is evaluated during translation phase 4, all identifiers
  either are or are not macro names -- there simply are no keywords, enumeration constants, etc.
-
-<p><a name="note167">167)</a> Thus, on an implementation where INT_MAX is 0x7FFF and UINT_MAX is 0xFFFF, the constant
+</small>
+<p><small><a name="note167" href="#note167">167)</a> Thus, on an implementation where INT_MAX is 0x7FFF and UINT_MAX is 0xFFFF, the constant
  0x8000 is signed and positive within a #if expression even though it would be unsigned in
  translation phase 7.
-
-<p><a name="note168">168)</a> Thus, the constant expression in the following #if directive and if statement is not guaranteed to
+</small>
+<p><small><a name="note168" href="#note168">168)</a> Thus, the constant expression in the following #if directive and if statement is not guaranteed to
  evaluate to the same value in these two contexts.
    #if 'z' - 'a' == 25
    if ('z' - 'a' == 25)
-
-<p><a name="note169">169)</a> As indicated by the syntax, a preprocessing token shall not follow a #else or #endif directive
+</small>
+<p><small><a name="note169" href="#note169">169)</a> As indicated by the syntax, a preprocessing token shall not follow a #else or #endif directive
  before the terminating new-line character. However, comments may appear anywhere in a source file,
  including within a preprocessing directive.
-
+</small>
 
 <a name="6.10.2" href="#6.10.2"><h4>6.10.2 Source file inclusion</h4></a>
 <h6>Constraints</h6>
@@ -8651,9 +8651,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: macro replacement (<a href="#6.10.3">6.10.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note170">170)</a> Note that adjacent string literals are not concatenated into a single string literal (see the translation
+<p><small><a name="note170" href="#note170">170)</a> Note that adjacent string literals are not concatenated into a single string literal (see the translation
  phases in <a href="#5.1.1.2">5.1.1.2</a>); thus, an expansion that results in two string literals is an invalid directive.
-
+</small>
 
 <a name="6.10.3" href="#6.10.3"><h4>6.10.3 Macro replacement</h4></a>
 <h6>Constraints</h6>
@@ -8738,12 +8738,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  definition (excluding the ...).
 
 <h6>footnotes</h6>
-<p><a name="note171">171)</a> Since, by macro-replacement time, all character constants and string literals are preprocessing tokens,
+<p><small><a name="note171" href="#note171">171)</a> Since, by macro-replacement time, all character constants and string literals are preprocessing tokens,
  not sequences possibly containing identifier-like subsequences (see <a href="#5.1.1.2">5.1.1.2</a>, translation phases), they
  are never scanned for macro names or parameters.
-
-<p><a name="note172">172)</a> Despite the name, a non-directive is a preprocessing directive.
-
+</small>
+<p><small><a name="note172" href="#note172">172)</a> Despite the name, a non-directive is a preprocessing directive.
+</small>
 
 <a name="6.10.3.1" href="#6.10.3.1"><h5>6.10.3.1 Argument substitution</h5></a>
 <p><!--para 1-->
@@ -8829,9 +8829,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 187 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note173">173)</a> Placemarker preprocessing tokens do not appear in the syntax because they are temporary entities that
+<p><small><a name="note173" href="#note173">173)</a> Placemarker preprocessing tokens do not appear in the syntax because they are temporary entities that
  exist only within translation phase 4.
-
+</small>
 
 <a name="6.10.3.4" href="#6.10.3.4"><h5>6.10.3.4 Rescanning and further replacement</h5></a>
 <p><!--para 1-->
@@ -9069,14 +9069,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 192 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note174">174)</a> An implementation is not required to perform macro replacement in pragmas, but it is permitted
+<p><small><a name="note174" href="#note174">174)</a> An implementation is not required to perform macro replacement in pragmas, but it is permitted
  except for in standard pragmas (where STDC immediately follows pragma). If the result of macro
  replacement in a non-standard pragma has the same form as a standard pragma, the behavior is still
  implementation-defined; an implementation is permitted to behave as if it were the standard pragma,
  but is not required to.
-
-<p><a name="note175">175)</a> See ''future language directions'' (<a href="#6.11.8">6.11.8</a>).
-
+</small>
+<p><small><a name="note175" href="#note175">175)</a> See ''future language directions'' (<a href="#6.11.8">6.11.8</a>).
+</small>
 
 <a name="6.10.7" href="#6.10.7"><h4>6.10.7 Null directive</h4></a>
 <h6>Semantics</h6>
@@ -9101,8 +9101,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: standard headers (<a href="#7.1.2">7.1.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note176">176)</a> See ''future language directions'' (<a href="#6.11.9">6.11.9</a>).
-
+<p><small><a name="note176" href="#note176">176)</a> See ''future language directions'' (<a href="#6.11.9">6.11.9</a>).
+</small>
 
 <a name="6.10.8.1" href="#6.10.8.1"><h5>6.10.8.1 Mandatory macros</h5></a>
 <p><!--para 1-->
@@ -9136,13 +9136,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: the asctime function (<a href="#7.26.3.1">7.26.3.1</a>).
 
 <h6>footnotes</h6>
-<p><a name="note177">177)</a> The presumed source file name and line number can be changed by the #line directive.
-
-<p><a name="note178">178)</a> This macro was not specified in ISO/IEC 9899:1990 and was specified as 199409L in
+<p><small><a name="note177" href="#note177">177)</a> The presumed source file name and line number can be changed by the #line directive.
+</small>
+<p><small><a name="note178" href="#note178">178)</a> This macro was not specified in ISO/IEC 9899:1990 and was specified as 199409L in
  ISO/IEC 9899/AMD1:1995 and as 199901L in ISO/IEC 9899:1999. The intention is that this will
  remain an integer constant of type long int that is increased with each revision of this International
  Standard.
-
+</small>
 
 <a name="6.10.8.2" href="#6.10.8.2"><h5>6.10.8.2 Environment macros</h5></a>
 <p><!--para 1-->
@@ -9212,9 +9212,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  __STDC_IEC_559_COMPLEX__.
 
 <h6>footnotes</h6>
-<p><a name="note179">179)</a> The intention is that this will remain an integer constant of type long int that is increased with
+<p><small><a name="note179" href="#note179">179)</a> The intention is that this will remain an integer constant of type long int that is increased with
  each revision of this International Standard.
-
+</small>
 
 <a name="6.10.9" href="#6.10.9"><h4>6.10.9 Pragma operator</h4></a>
 <h6>Semantics</h6>
@@ -9332,14 +9332,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 198 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note180">180)</a> The functions that make use of the decimal-point character are the numeric conversion functions
+<p><small><a name="note180" href="#note180">180)</a> The functions that make use of the decimal-point character are the numeric conversion functions
  (<a href="#7.22.1">7.22.1</a>, <a href="#7.28.4.1">7.28.4.1</a>) and the formatted input/output functions (<a href="#7.21.6">7.21.6</a>, <a href="#7.28.2">7.28.2</a>).
-
-<p><a name="note181">181)</a> For state-dependent encodings, the values for MB_CUR_MAX and MB_LEN_MAX shall thus be large
+</small>
+<p><small><a name="note181" href="#note181">181)</a> For state-dependent encodings, the values for MB_CUR_MAX and MB_LEN_MAX shall thus be large
  enough to count all the bytes in any complete multibyte character plus at least one adjacent shift
  sequence of maximum length. Whether these counts provide for more than one shift sequence is the
  implementation's choice.
-
+</small>
 
 <a name="7.1.2" href="#7.1.2"><h4>7.1.2 Standard headers</h4></a>
 <p><!--para 1-->
@@ -9389,12 +9389,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: diagnostics (<a href="#7.2">7.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note182">182)</a> A header is not necessarily a source file, nor are the &lt; and &gt; delimited sequences in header names
+<p><small><a name="note182" href="#note182">182)</a> A header is not necessarily a source file, nor are the &lt; and &gt; delimited sequences in header names
  necessarily valid source file names.
-
-<p><a name="note183">183)</a> The headers <a href="#7.3">&lt;complex.h&gt;</a>, <a href="#7.17">&lt;stdatomic.h&gt;</a>, and <a href="#7.25">&lt;threads.h&gt;</a> are conditional features that
+</small>
+<p><small><a name="note183" href="#note183">183)</a> The headers <a href="#7.3">&lt;complex.h&gt;</a>, <a href="#7.17">&lt;stdatomic.h&gt;</a>, and <a href="#7.25">&lt;threads.h&gt;</a> are conditional features that
  implementations need not support; see <a href="#6.10.8.3">6.10.8.3</a>.
-
+</small>
 
 <a name="7.1.3" href="#7.1.3"><h4>7.1.3 Reserved identifiers</h4></a>
 <p><!--para 1-->
@@ -9431,9 +9431,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 200 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note184">184)</a> The list of reserved identifiers with external linkage includes math_errhandling, setjmp,
+<p><small><a name="note184" href="#note184">184)</a> The list of reserved identifiers with external linkage includes math_errhandling, setjmp,
  va_copy, and va_end.
-
+</small>
 
 <a name="7.1.4" href="#7.1.4"><h4>7.1.4 Use of library functions</h4></a>
 <p><!--para 1-->
@@ -9523,12 +9523,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note185">185)</a> This means that an implementation shall provide an actual function for each library function, even if it
+<p><small><a name="note185" href="#note185">185)</a> This means that an implementation shall provide an actual function for each library function, even if it
  also provides a macro for that function.
-
-<p><a name="note186">186)</a> Such macros might not contain the sequence points that the corresponding function calls do.
-
-<p><a name="note187">187)</a> Because external identifiers and some macro names beginning with an underscore are reserved,
+</small>
+<p><small><a name="note186" href="#note186">186)</a> Such macros might not contain the sequence points that the corresponding function calls do.
+</small>
+<p><small><a name="note187" href="#note187">187)</a> Because external identifiers and some macro names beginning with an underscore are reserved,
  implementations may provide special semantics for such names. For example, the identifier
  _BUILTIN_abs could be used to indicate generation of in-line code for the abs function. Thus, the
  appropriate header could specify
@@ -9544,15 +9544,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
   whether the implementation's header provides a macro implementation of abs or a built-in
   implementation. The prototype for the function, which precedes and is hidden by any macro
   definition, is thereby revealed also.
-
-<p><a name="note188">188)</a> Thus, a signal handler cannot, in general, call standard library functions.
-
-<p><a name="note189">189)</a> This means, for example, that an implementation is not permitted to use a static object for internal
+</small>
+<p><small><a name="note188" href="#note188">188)</a> Thus, a signal handler cannot, in general, call standard library functions.
+</small>
+<p><small><a name="note189" href="#note189">189)</a> This means, for example, that an implementation is not permitted to use a static object for internal
  purposes without synchronization because it could cause a data race even in programs that do not
  explicitly share objects between threads.
-
-<p><a name="note190">190)</a> This allows implementations to parallelize operations if there are no visible side effects.
-
+</small>
+<p><small><a name="note190" href="#note190">190)</a> This allows implementations to parallelize operations if there are no visible side effects.
+</small>
 
 <a name="7.2" href="#7.2"><h3>7.2 Diagnostics <assert.h></h3></a>
 <p><!--para 1-->
@@ -9606,9 +9606,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 205 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note191">191)</a> The message written might be of the form:
+<p><small><a name="note191" href="#note191">191)</a> The message written might be of the form:
  Assertion failed: expression, function abc, file xyz, line nnn.
-
+</small>
 
 <a name="7.3" href="#7.3"><h3>7.3 Complex arithmetic <complex.h></h3></a>
 
@@ -9657,12 +9657,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: IEC 60559-compatible complex arithmetic (<a href="#G">annex G</a>).
 
 <h6>footnotes</h6>
-<p><a name="note192">192)</a> See ''future library directions'' (<a href="#7.30.1">7.30.1</a>).
-
-<p><a name="note193">193)</a> The imaginary unit is a number i such that i 2 = -1.
-
-<p><a name="note194">194)</a> A specification for imaginary types is in informative <a href="#G">annex G</a>.
-
+<p><small><a name="note192" href="#note192">192)</a> See ''future library directions'' (<a href="#7.30.1">7.30.1</a>).
+</small>
+<p><small><a name="note193" href="#note193">193)</a> The imaginary unit is a number i such that i 2 = -1.
+</small>
+<p><small><a name="note194" href="#note194">194)</a> A specification for imaginary types is in informative <a href="#G">annex G</a>.
+</small>
 
 <a name="7.3.2" href="#7.3.2"><h4>7.3.2 Conventions</h4></a>
 <p><!--para 1-->
@@ -9713,7 +9713,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  undefined. The default state for the pragma is ''off''.
 
 <h6>footnotes</h6>
-<p><a name="note195">195)</a> The purpose of the pragma is to allow the implementation to use the formulas:
+<p><small><a name="note195" href="#note195">195)</a> The purpose of the pragma is to allow the implementation to use the formulas:
 
 <pre>
     (x + iy) x (u + iv) = (xu - yv) + i(yu + xv)
@@ -9721,7 +9721,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
     | x + iy | = (sqrt) x 2 + y 2
                  -----</pre>
  where the programmer can determine they are safe.
-
+</small>
 
 <a name="7.3.5" href="#7.3.5"><h4>7.3.5 Trigonometric functions</h4></a>
 
@@ -10054,8 +10054,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The cimag functions return the imaginary part value (as a real).
 
 <h6>footnotes</h6>
-<p><a name="note196">196)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
-
+<p><small><a name="note196" href="#note196">196)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
+</small>
 
 <a name="7.3.9.3" href="#7.3.9.3"><h5>7.3.9.3 The CMPLX macros</h5></a>
 <h6>Synopsis</h6>
@@ -10150,8 +10150,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 217 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note197">197)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
-
+<p><small><a name="note197" href="#note197">197)</a> For a variable z of complex type, z == creal(z) + cimag(z)*I.
+</small>
 
 <a name="7.4" href="#7.4"><h3>7.4 Character handling <ctype.h></h3></a>
 <p><!--para 1-->
@@ -10170,12 +10170,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: EOF (<a href="#7.21.1">7.21.1</a>), localization (<a href="#7.11">7.11</a>).
 
 <h6>footnotes</h6>
-<p><a name="note198">198)</a> See ''future library directions'' (<a href="#7.30.2">7.30.2</a>).
-
-<p><a name="note199">199)</a> In an implementation that uses the seven-bit US ASCII character set, the printing characters are those
+<p><small><a name="note198" href="#note198">198)</a> See ''future library directions'' (<a href="#7.30.2">7.30.2</a>).
+</small>
+<p><small><a name="note199" href="#note199">199)</a> In an implementation that uses the seven-bit US ASCII character set, the printing characters are those
  whose values lie from 0x20 (space) through 0x7E (tilde); the control characters are those whose
  values lie from 0 (NUL) through 0x1F (US), and the character 0x7F (DEL).
-
+</small>
 
 <a name="7.4.1" href="#7.4.1"><h4>7.4.1 Character classification functions</h4></a>
 <p><!--para 1-->
@@ -10210,9 +10210,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  isalpha returns true only for the characters for which isupper or islower is true.
 
 <h6>footnotes</h6>
-<p><a name="note200">200)</a> The functions islower and isupper test true or false separately for each of these additional
+<p><small><a name="note200" href="#note200">200)</a> The functions islower and isupper test true or false separately for each of these additional
  characters; all four combinations are possible.
-
+</small>
 
 <a name="7.4.1.3" href="#7.4.1.3"><h5>7.4.1.3 The isblank function</h5></a>
 <h6>Synopsis</h6>
@@ -10407,16 +10407,16 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 223 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note201">201)</a> The macro errno need not be the identifier of an object. It might expand to a modifiable lvalue
+<p><small><a name="note201" href="#note201">201)</a> The macro errno need not be the identifier of an object. It might expand to a modifiable lvalue
  resulting from a function call (for example, *errno()).
-
-<p><a name="note202">202)</a> Thus, a program that uses errno for error checking should set it to zero before a library function call,
+</small>
+<p><small><a name="note202" href="#note202">202)</a> Thus, a program that uses errno for error checking should set it to zero before a library function call,
  then inspect it before a subsequent library function call. Of course, a library function can save the
  value of errno on entry and then set it to zero, as long as the original value is restored if errno's
  value is still zero just before the return.
-
-<p><a name="note203">203)</a> See ''future library directions'' (<a href="#7.30.3">7.30.3</a>).
-
+</small>
+<p><small><a name="note203" href="#note203">203)</a> See ''future library directions'' (<a href="#7.30.3">7.30.3</a>).
+</small>
 
 <a name="7.6" href="#7.6"><h3>7.6 Floating-point environment <fenv.h></h3></a>
 <p><!--para 1-->
@@ -10511,25 +10511,25 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  also be specified by the implementation.
 
 <h6>footnotes</h6>
-<p><a name="note204">204)</a> This header is designed to support the floating-point exception status flags and directed-rounding
+<p><small><a name="note204" href="#note204">204)</a> This header is designed to support the floating-point exception status flags and directed-rounding
  control modes required by IEC 60559, and other similar floating-point state information. It is also
  designed to facilitate code portability among all systems.
-
-<p><a name="note205">205)</a> A floating-point status flag is not an object and can be set more than once within an expression.
-
-<p><a name="note206">206)</a> With these conventions, a programmer can safely assume default floating-point control modes (or be
+</small>
+<p><small><a name="note205" href="#note205">205)</a> A floating-point status flag is not an object and can be set more than once within an expression.
+</small>
+<p><small><a name="note206" href="#note206">206)</a> With these conventions, a programmer can safely assume default floating-point control modes (or be
  unaware of them). The responsibilities associated with accessing the floating-point environment fall
  on the programmer or program that does so explicitly.
-
-<p><a name="note207">207)</a> The implementation supports a floating-point exception if there are circumstances where a call to at
+</small>
+<p><small><a name="note207" href="#note207">207)</a> The implementation supports a floating-point exception if there are circumstances where a call to at
  least one of the functions in <a href="#7.6.2">7.6.2</a>, using the macro as the appropriate argument, will succeed. It is not
  necessary for all the functions to succeed all the time.
-
-<p><a name="note208">208)</a> The macros should be distinct powers of two.
-
-<p><a name="note209">209)</a> Even though the rounding direction macros may expand to constants corresponding to the values of
+</small>
+<p><small><a name="note208" href="#note208">208)</a> The macros should be distinct powers of two.
+</small>
+<p><small><a name="note209" href="#note209">209)</a> Even though the rounding direction macros may expand to constants corresponding to the values of
  FLT_ROUNDS, they are not required to do so.
-
+</small>
 
 <a name="7.6.1" href="#7.6.1"><h4>7.6.1 The FENV_ACCESS pragma</h4></a>
 <h6>Synopsis</h6>
@@ -10583,15 +10583,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note210">210)</a> The purpose of the FENV_ACCESS pragma is to allow certain optimizations that could subvert flag
+<p><small><a name="note210" href="#note210">210)</a> The purpose of the FENV_ACCESS pragma is to allow certain optimizations that could subvert flag
  tests and mode changes (e.g., global common subexpression elimination, code motion, and constant
  folding). In general, if the state of FENV_ACCESS is ''off'', the translator can assume that default
  modes are in effect and the flags are not tested.
-
-<p><a name="note211">211)</a> The side effects impose a temporal ordering that requires two evaluations of x + 1. On the other
+</small>
+<p><small><a name="note211" href="#note211">211)</a> The side effects impose a temporal ordering that requires two evaluations of x + 1. On the other
  hand, without the #pragma STDC FENV_ACCESS ON pragma, and assuming the default state is
  ''off'', just one evaluation of x + 1 would suffice.
-
+</small>
 
 <a name="7.6.2" href="#7.6.2"><h4>7.6.2 Floating-point exceptions</h4></a>
 <p><!--para 1-->
@@ -10602,12 +10602,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  functions is undefined.
 
 <h6>footnotes</h6>
-<p><a name="note212">212)</a> The functions fetestexcept, feraiseexcept, and feclearexcept support the basic
+<p><small><a name="note212" href="#note212">212)</a> The functions fetestexcept, feraiseexcept, and feclearexcept support the basic
  abstraction of flags that are either set or clear. An implementation may endow floating-point status
  flags with more information -- for example, the address of the code which first raised the floating-
  point exception; the functions fegetexceptflag and fesetexceptflag deal with the full
  content of flags.
-
+</small>
 
 <a name="7.6.2.1" href="#7.6.2.1"><h5>7.6.2.1 The feclearexcept function</h5></a>
 <h6>Synopsis</h6>
@@ -10668,10 +10668,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 228 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note213">213)</a> The effect is intended to be similar to that of floating-point exceptions raised by arithmetic operations.
+<p><small><a name="note213" href="#note213">213)</a> The effect is intended to be similar to that of floating-point exceptions raised by arithmetic operations.
  Hence, enabled traps for floating-point exceptions raised by this function are taken. The specification
  in <a href="#F.8.6">F.8.6</a> is in the same spirit.
-
+</small>
 
 <a name="7.6.2.4" href="#7.6.2.4"><h5>7.6.2.4 The fesetexceptflag function</h5></a>
 <h6>Synopsis</h6>
@@ -10733,8 +10733,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note214">214)</a> This mechanism allows testing several floating-point exceptions with just one function call.
-
+<p><small><a name="note214" href="#note214">214)</a> This mechanism allows testing several floating-point exceptions with just one function call.
+</small>
 
 <a name="7.6.3" href="#7.6.3"><h4>7.6.3 Rounding</h4></a>
 <p><!--para 1-->
@@ -10831,11 +10831,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  exception handling was successfully installed.
 
 <h6>footnotes</h6>
-<p><a name="note215">215)</a> IEC 60559 systems have a default non-stop mode, and typically at least one other mode for trap
+<p><small><a name="note215" href="#note215">215)</a> IEC 60559 systems have a default non-stop mode, and typically at least one other mode for trap
  handling or aborting; if the system provides only the non-stop mode then installing it is trivial. For
  such systems, the feholdexcept function can be used in conjunction with the feupdateenv
  function to write routines that hide spurious floating-point exceptions from their callers.
-
+</small>
 
 <a name="7.6.4.3" href="#7.6.4.3"><h5>7.6.4.3 The fesetenv function</h5></a>
 <h6>Synopsis</h6>
@@ -10923,8 +10923,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  functions (<a href="#7.21.6">7.21.6</a>), formatted wide character input/output functions (<a href="#7.28.2">7.28.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note216">216)</a> See ''future library directions'' (<a href="#7.30.4">7.30.4</a>).
-
+<p><small><a name="note216" href="#note216">216)</a> See ''future library directions'' (<a href="#7.30.4">7.30.4</a>).
+</small>
 
 <a name="7.8.1" href="#7.8.1"><h4>7.8.1 Macros for format specifiers</h4></a>
 <p><!--para 1-->
@@ -10984,10 +10984,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note217">217)</a> Separate macros are given for use with fprintf and fscanf functions because, in the general case,
+<p><small><a name="note217" href="#note217">217)</a> Separate macros are given for use with fprintf and fscanf functions because, in the general case,
  different format specifiers may be required for fprintf and fscanf, even when the type is the
  same.
-
+</small>
 
 <a name="7.8.2" href="#7.8.2"><h4>7.8.2 Functions for greatest-width integer types</h4></a>
 
@@ -11011,8 +11011,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 236 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note218">218)</a> The absolute value of the most negative number cannot be represented in two's complement.
-
+<p><small><a name="note218" href="#note218">218)</a> The absolute value of the most negative number cannot be represented in two's complement.
+</small>
 
 <a name="7.8.2.2" href="#7.8.2.2"><h5>7.8.2.2 The imaxdiv function</h5></a>
 <h6>Synopsis</h6>
@@ -11161,10 +11161,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  implementation.
 
 <h6>footnotes</h6>
-<p><a name="note219">219)</a> ISO/IEC 9945-2 specifies locale and charmap formats that may be used to specify locales for C.
-
-<p><a name="note220">220)</a> See ''future library directions'' (<a href="#7.30.5">7.30.5</a>).
-
+<p><small><a name="note219" href="#note219">219)</a> ISO/IEC 9945-2 specifies locale and charmap formats that may be used to specify locales for C.
+</small>
+<p><small><a name="note220" href="#note220">220)</a> See ''future library directions'' (<a href="#7.30.5">7.30.5</a>).
+</small>
 
 <a name="7.11.1" href="#7.11.1"><h4>7.11.1 Locale control</h4></a>
 
@@ -11224,12 +11224,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  strftime function (<a href="#7.26.3.5">7.26.3.5</a>), the strxfrm function (<a href="#7.23.4.5">7.23.4.5</a>).
 
 <h6>footnotes</h6>
-<p><a name="note221">221)</a> The only functions in <a href="#7.4">7.4</a> whose behavior is not affected by the current locale are isdigit and
+<p><small><a name="note221" href="#note221">221)</a> The only functions in <a href="#7.4">7.4</a> whose behavior is not affected by the current locale are isdigit and
  isxdigit.
-
-<p><a name="note222">222)</a> The implementation shall arrange to encode in a string the various categories due to a heterogeneous
+</small>
+<p><small><a name="note222" href="#note222">222)</a> The implementation shall arrange to encode in a string the various categories due to a heterogeneous
  locale when category has the value LC_ALL.
-
+</small>
 
 <a name="7.11.2" href="#7.11.2"><h4>7.11.2 Numeric formatting convention inquiry</h4></a>
 
@@ -11563,22 +11563,22 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  <a href="#7.6">&lt;fenv.h&gt;</a>.
 
 <h6>footnotes</h6>
-<p><a name="note223">223)</a> Particularly on systems with wide expression evaluation, a <a href="#7.12">&lt;math.h&gt;</a> function might pass arguments
+<p><small><a name="note223" href="#note223">223)</a> Particularly on systems with wide expression evaluation, a <a href="#7.12">&lt;math.h&gt;</a> function might pass arguments
  and return values in wider format than the synopsis prototype indicates.
-
-<p><a name="note224">224)</a> The types float_t and double_t are intended to be the implementation's most efficient types at
+</small>
+<p><small><a name="note224" href="#note224">224)</a> The types float_t and double_t are intended to be the implementation's most efficient types at
  least as wide as float and double, respectively. For FLT_EVAL_METHOD equal 0, 1, or 2, the
  type float_t is the narrowest type used by the implementation to evaluate floating expressions.
-
-<p><a name="note225">225)</a> HUGE_VAL, HUGE_VALF, and HUGE_VALL can be positive infinities in an implementation that
+</small>
+<p><small><a name="note225" href="#note225">225)</a> HUGE_VAL, HUGE_VALF, and HUGE_VALL can be positive infinities in an implementation that
  supports infinities.
-
-<p><a name="note226">226)</a> In this case, using INFINITY will violate the constraint in <a href="#6.4.4">6.4.4</a> and thus require a diagnostic.
-
-<p><a name="note227">227)</a> Typically, the FP_FAST_FMA macro is defined if and only if the fma function is implemented
+</small>
+<p><small><a name="note226" href="#note226">226)</a> In this case, using INFINITY will violate the constraint in <a href="#6.4.4">6.4.4</a> and thus require a diagnostic.
+</small>
+<p><small><a name="note227" href="#note227">227)</a> Typically, the FP_FAST_FMA macro is defined if and only if the fma function is implemented
  directly with a hardware multiply-add instruction. Software implementations are expected to be
  substantially slower.
-
+</small>
 
 <a name="7.12.1" href="#7.12.1"><h4>7.12.1 Treatment of error conditions</h4></a>
 <p><!--para 1-->
@@ -11644,14 +11644,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 252 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note228">228)</a> In an implementation that supports infinities, this allows an infinity as an argument to be a domain
+<p><small><a name="note228" href="#note228">228)</a> In an implementation that supports infinities, this allows an infinity as an argument to be a domain
  error if the mathematical domain of the function does not include the infinity.
-
-<p><a name="note229">229)</a> The term underflow here is intended to encompass both ''gradual underflow'' as in IEC 60559 and
+</small>
+<p><small><a name="note229" href="#note229">229)</a> The term underflow here is intended to encompass both ''gradual underflow'' as in IEC 60559 and
  also ''flush-to-zero'' underflow.
-
-<p><a name="note230">230)</a> Math errors are being indicated by the floating-point exception flags rather than by errno.
-
+</small>
+<p><small><a name="note230" href="#note230">230)</a> Math errors are being indicated by the floating-point exception flags rather than by errno.
+</small>
 
 <a name="7.12.2" href="#7.12.2"><h4>7.12.2 The FP_CONTRACT pragma</h4></a>
 <h6>Synopsis</h6>
@@ -11700,10 +11700,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 253 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note231">231)</a> Since an expression can be evaluated with more range and precision than its type has, it is important to
+<p><small><a name="note231" href="#note231">231)</a> Since an expression can be evaluated with more range and precision than its type has, it is important to
  know the type that classification is based on. For example, a normal long double value might
  become subnormal when converted to double, and zero when converted to float.
-
+</small>
 
 <a name="7.12.3.2" href="#7.12.3.2"><h5>7.12.3.2 The isfinite macro</h5></a>
 <h6>Synopsis</h6>
@@ -11757,9 +11757,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The isnan macro returns a nonzero value if and only if its argument has a NaN value.
 
 <h6>footnotes</h6>
-<p><a name="note232">232)</a> For the isnan macro, the type for determination does not matter unless the implementation supports
+<p><small><a name="note232" href="#note232">232)</a> For the isnan macro, the type for determination does not matter unless the implementation supports
  NaNs in the evaluation type but not in the semantic type.
-
+</small>
 
 <a name="7.12.3.5" href="#7.12.3.5"><h5>7.12.3.5 The isnormal macro</h5></a>
 <h6>Synopsis</h6>
@@ -11798,9 +11798,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 255 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note233">233)</a> The signbit macro reports the sign of all values, including infinities, zeros, and NaNs. If zero is
+<p><small><a name="note233" href="#note233">233)</a> The signbit macro reports the sign of all values, including infinities, zeros, and NaNs. If zero is
  unsigned, it is treated as positive.
-
+</small>
 
 <a name="7.12.4" href="#7.12.4"><h4>7.12.4 Trigonometric functions</h4></a>
 
@@ -12066,8 +12066,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The expm1 functions return ex - 1.
 
 <h6>footnotes</h6>
-<p><a name="note234">234)</a> For small magnitude x, expm1(x) is expected to be more accurate than exp(x) - 1.
-
+<p><small><a name="note234" href="#note234">234)</a> For small magnitude x, expm1(x) is expected to be more accurate than exp(x) - 1.
+</small>
 
 <a name="7.12.6.4" href="#7.12.6.4"><h5>7.12.6.4 The frexp functions</h5></a>
 <h6>Synopsis</h6>
@@ -12186,8 +12186,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 263 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note235">235)</a> For small magnitude x, log1p(x) is expected to be more accurate than log(1 + x).
-
+<p><small><a name="note235" href="#note235">235)</a> For small magnitude x, log1p(x) is expected to be more accurate than log(1 + x).
+</small>
 
 <a name="7.12.6.10" href="#7.12.6.10"><h5>7.12.6.10 The log2 functions</h5></a>
 <h6>Synopsis</h6>
@@ -12626,11 +12626,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  or the functions return zero is implementation defined.
 
 <h6>footnotes</h6>
-<p><a name="note236">236)</a> ''When y != 0, the remainder r = x REM y is defined regardless of the rounding mode by the
+<p><small><a name="note236" href="#note236">236)</a> ''When y != 0, the remainder r = x REM y is defined regardless of the rounding mode by the
  mathematical relation r = x - ny, where n is the integer nearest the exact value of x/y; whenever
  | n - x/y | = 1/2, then n is even. If r = 0, its sign shall be that of x.'' This definition is applicable for *
  all implementations.
-
+</small>
 
 <a name="7.12.10.3" href="#7.12.10.3"><h5>7.12.10.3 The remquo functions</h5></a>
 <h6>Synopsis</h6>
@@ -12720,9 +12720,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 274 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note237">237)</a> The argument values are converted to the type of the function, even by a macro implementation of the
+<p><small><a name="note237" href="#note237">237)</a> The argument values are converted to the type of the function, even by a macro implementation of the
  function.
-
+</small>
 
 <a name="7.12.11.4" href="#7.12.11.4"><h5>7.12.11.4 The nexttoward functions</h5></a>
 <h6>Synopsis</h6>
@@ -12739,9 +12739,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  type of the function if x equals y.<sup><a href="#note238"><b>238)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note238">238)</a> The result of the nexttoward functions is determined in the type of the function, without loss of
+<p><small><a name="note238" href="#note238">238)</a> The result of the nexttoward functions is determined in the type of the function, without loss of
  range or precision in a floating second argument.
-
+</small>
 
 <a name="7.12.12" href="#7.12.12"><h4>7.12.12 Maximum, minimum, and positive difference functions</h4></a>
 
@@ -12785,9 +12785,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The fmax functions return the maximum numeric value of their arguments.
 
 <h6>footnotes</h6>
-<p><a name="note239">239)</a> NaN arguments are treated as missing data: if one argument is a NaN and the other numeric, then the
+<p><small><a name="note239" href="#note239">239)</a> NaN arguments are treated as missing data: if one argument is a NaN and the other numeric, then the
  fmax functions choose the numeric value. See <a href="#F.10.9.2">F.10.9.2</a>.
-
+</small>
 
 <a name="7.12.12.3" href="#7.12.12.3"><h5>7.12.12.3 The fmin functions</h5></a>
 <h6>Synopsis</h6>
@@ -12805,8 +12805,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The fmin functions return the minimum numeric value of their arguments.
 
 <h6>footnotes</h6>
-<p><a name="note240">240)</a> The fmin functions are analogous to the fmax functions in their treatment of NaNs.
-
+<p><small><a name="note240" href="#note240">240)</a> The fmin functions are analogous to the fmax functions in their treatment of NaNs.
+</small>
 
 <a name="7.12.13" href="#7.12.13"><h4>7.12.13 Floating multiply-add</h4></a>
 
@@ -12847,16 +12847,16 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  expression of real floating type<sup><a href="#note242"><b>242)</b></a></sup> (both arguments need not have the same type).<sup><a href="#note243"><b>243)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note241">241)</a> IEC 60559 requires that the built-in relational operators raise the ''invalid'' floating-point exception if
+<p><small><a name="note241" href="#note241">241)</a> IEC 60559 requires that the built-in relational operators raise the ''invalid'' floating-point exception if
  the operands compare unordered, as an error indicator for programs written without consideration of
  NaNs; the result in these cases is false.
-
-<p><a name="note242">242)</a> If any argument is of integer type, or any other type that is not a real floating type, the behavior is
+</small>
+<p><small><a name="note242" href="#note242">242)</a> If any argument is of integer type, or any other type that is not a real floating type, the behavior is
  undefined.
-
-<p><a name="note243">243)</a> Whether an argument represented in a format wider than its semantic type is converted to the semantic
+</small>
+<p><small><a name="note243" href="#note243">243)</a> Whether an argument represented in a format wider than its semantic type is converted to the semantic
  type is unspecified.
-
+</small>
 
 <a name="7.12.14.1" href="#7.12.14.1"><h5>7.12.14.1 The isgreater macro</h5></a>
 <h6>Synopsis</h6>
@@ -12979,9 +12979,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  program defines an external identifier with the name setjmp, the behavior is undefined.
 
 <h6>footnotes</h6>
-<p><a name="note244">244)</a> These functions are useful for dealing with unusual conditions encountered in a low-level function of
+<p><small><a name="note244" href="#note244">244)</a> These functions are useful for dealing with unusual conditions encountered in a low-level function of
  a program.
-
+</small>
 
 <a name="7.13.1" href="#7.13.1"><h4>7.13.1 Save calling environment</h4></a>
 
@@ -13080,11 +13080,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
          }</pre>
 
 <h6>footnotes</h6>
-<p><a name="note245">245)</a> For example, by executing a return statement or because another longjmp call has caused a
+<p><small><a name="note245" href="#note245">245)</a> For example, by executing a return statement or because another longjmp call has caused a
  transfer to a setjmp invocation in a function earlier in the set of nested calls.
-
-<p><a name="note246">246)</a> This includes, but is not limited to, the floating-point status flags and the state of open files.
-
+</small>
+<p><small><a name="note246" href="#note246">246)</a> This includes, but is not limited to, the floating-point status flags and the state of open files.
+</small>
 
 <a name="7.14" href="#7.14"><h3>7.14 Signal handling <signal.h></h3></a>
 <p><!--para 1-->
@@ -13129,10 +13129,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 283 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note247">247)</a> See ''future library directions'' (<a href="#7.30.6">7.30.6</a>). The names of the signal numbers reflect the following terms
+<p><small><a name="note247" href="#note247">247)</a> See ''future library directions'' (<a href="#7.30.6">7.30.6</a>). The names of the signal numbers reflect the following terms
  (respectively): abort, floating-point exception, illegal instruction, interrupt, segmentation violation,
  and termination.
-
+</small>
 
 <a name="7.14.1" href="#7.14.1"><h4>7.14.1 Specify signal handling</h4></a>
 
@@ -13197,11 +13197,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  _Exit function (<a href="#7.22.4.5">7.22.4.5</a>), the quick_exit function (<a href="#7.22.4.7">7.22.4.7</a>).
 
 <h6>footnotes</h6>
-<p><a name="note248">248)</a> This includes functions called indirectly via standard library functions (e.g., a SIGABRT handler
+<p><small><a name="note248" href="#note248">248)</a> This includes functions called indirectly via standard library functions (e.g., a SIGABRT handler
  called via the abort function).
-
-<p><a name="note249">249)</a> If any signal is generated by an asynchronous signal handler, the behavior is undefined.
-
+</small>
+<p><small><a name="note249" href="#note249">249)</a> If any signal is generated by an asynchronous signal handler, the behavior is undefined.
+</small>
 
 <a name="7.14.2" href="#7.14.2"><h4>7.14.2 Send signal</h4></a>
 
@@ -13259,9 +13259,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  macro prior to any further reference to ap.<sup><a href="#note250"><b>250)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note250">250)</a> It is permitted to create a pointer to a va_list and pass that pointer to another function, in which
+<p><small><a name="note250" href="#note250">250)</a> It is permitted to create a pointer to a va_list and pass that pointer to another function, in which
  case the original function may make further use of the original list after the other function returns.
-
+</small>
 
 <a name="7.16.1" href="#7.16.1"><h4>7.16.1 Variable argument list access macros</h4></a>
 <p><!--para 1-->
@@ -13661,8 +13661,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  amount of time.
 
 <h6>footnotes</h6>
-<p><a name="note251">251)</a> Among other implications, atomic variables shall not decay.
-
+<p><small><a name="note251" href="#note251">251)</a> Among other implications, atomic variables shall not decay.
+</small>
 
 <a name="7.17.3.1" href="#7.17.3.1"><h5>7.17.3.1 The kill_dependency macro</h5></a>
 <h6>Synopsis</h6>
@@ -14078,8 +14078,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 305 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note252">252)</a> See ''future library directions'' (<a href="#7.30.7">7.30.7</a>).
-
+<p><small><a name="note252" href="#note252">252)</a> See ''future library directions'' (<a href="#7.30.7">7.30.7</a>).
+</small>
 
 <a name="7.19" href="#7.19"><h3>7.19 Common definitions <stddef.h></h3></a>
 <p><!--para 1-->
@@ -14156,10 +14156,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (described as ''optional'').
 
 <h6>footnotes</h6>
-<p><a name="note253">253)</a> See ''future library directions'' (<a href="#7.30.8">7.30.8</a>).
-
-<p><a name="note254">254)</a> Some of these types may denote implementation-defined extended integer types.
-
+<p><small><a name="note253" href="#note253">253)</a> See ''future library directions'' (<a href="#7.30.8">7.30.8</a>).
+</small>
+<p><small><a name="note254" href="#note254">254)</a> Some of these types may denote implementation-defined extended integer types.
+</small>
 
 <a name="7.20.1" href="#7.20.1"><h4>7.20.1 Integer types</h4></a>
 <p><!--para 1-->
@@ -14231,10 +14231,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  All other types of this form are optional.
 
 <h6>footnotes</h6>
-<p><a name="note255">255)</a> The designated type is not guaranteed to be fastest for all purposes; if the implementation has no clear
+<p><small><a name="note255" href="#note255">255)</a> The designated type is not guaranteed to be fastest for all purposes; if the implementation has no clear
  grounds for choosing one type over another, it will simply pick some integer type satisfying the
  signedness and width requirements.
-
+</small>
 
 <a name="7.20.1.4" href="#7.20.1.4"><h5>7.20.1.4 Integer types capable of holding object pointers</h5></a>
 <p><!--para 1-->
@@ -14389,11 +14389,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  shall be 0 and the value of WINT_MAX shall be no less than 65535.
 
 <h6>footnotes</h6>
-<p><a name="note256">256)</a> A freestanding implementation need not provide all of these types.
-
-<p><a name="note257">257)</a> The values WCHAR_MIN and WCHAR_MAX do not necessarily correspond to members of the extended
+<p><small><a name="note256" href="#note256">256)</a> A freestanding implementation need not provide all of these types.
+</small>
+<p><small><a name="note257" href="#note257">257)</a> The values WCHAR_MIN and WCHAR_MAX do not necessarily correspond to members of the extended
  character set.
-
+</small>
 
 <a name="7.20.4" href="#7.20.4"><h4>7.20.4 Macros for integer constants</h4></a>
 <p><!--para 1-->
@@ -14530,11 +14530,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  tmpnam function (<a href="#7.21.4.4">7.21.4.4</a>), <a href="#7.28">&lt;wchar.h&gt;</a> (<a href="#7.28">7.28</a>).
 
 <h6>footnotes</h6>
-<p><a name="note258">258)</a> If the implementation imposes no practical limit on the length of file name strings, the value of
+<p><small><a name="note258" href="#note258">258)</a> If the implementation imposes no practical limit on the length of file name strings, the value of
  FILENAME_MAX should instead be the recommended size of an array intended to hold a file name
  string. Of course, file name string contents are subject to other system-specific constraints; therefore
  all possible strings of length FILENAME_MAX cannot be expected to be opened successfully.
-
+</small>
 
 <a name="7.21.2" href="#7.21.2"><h4>7.21.2 Streams</h4></a>
 <p><!--para 1-->
@@ -14607,12 +14607,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 318 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note259">259)</a> An implementation need not distinguish between text streams and binary streams. In such an
+<p><small><a name="note259" href="#note259">259)</a> An implementation need not distinguish between text streams and binary streams. In such an
  implementation, there need be no new-line characters in a text stream nor any limit to the length of a
  line.
-
-<p><a name="note260">260)</a> The three predefined streams stdin, stdout, and stderr are unoriented at program startup.
-
+</small>
+<p><small><a name="note260" href="#note260">260)</a> The three predefined streams stdin, stdout, and stderr are unoriented at program startup.
+</small>
 
 <a name="7.21.3" href="#7.21.3"><h4>7.21.3 Files</h4></a>
 <p><!--para 1-->
@@ -14721,10 +14721,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#7.28.6.3.2">7.28.6.3.2</a>), the wcrtomb function (<a href="#7.28.6.3.3">7.28.6.3.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note261">261)</a> Setting the file position indicator to end-of-file, as with fseek(file, 0, SEEK_END), has
+<p><small><a name="note261" href="#note261">261)</a> Setting the file position indicator to end-of-file, as with fseek(file, 0, SEEK_END), has
  undefined behavior for a binary stream (because of possible trailing null characters) or for any stream
  with state-dependent encoding that does not assuredly end in the initial shift state.
-
+</small>
 
 <a name="7.21.4" href="#7.21.4"><h4>7.21.4 Operations on files</h4></a>
 
@@ -14763,9 +14763,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  which case if the file existed previously it is still known by its original name.
 
 <h6>footnotes</h6>
-<p><a name="note262">262)</a> Among the reasons the implementation may cause the rename function to fail are that the file is open
+<p><small><a name="note262" href="#note262">262)</a> Among the reasons the implementation may cause the rename function to fail are that the file is open
  or that it is necessary to copy its contents to effectuate its renaming.
-
+</small>
 
 <a name="7.21.4.3" href="#7.21.4.3"><h5>7.21.4.3 The tmpfile function</h5></a>
 <h6>Synopsis</h6>
@@ -14825,11 +14825,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The value of the macro TMP_MAX shall be at least 25.
 
 <h6>footnotes</h6>
-<p><a name="note263">263)</a> Files created using strings generated by the tmpnam function are temporary only in the sense that
+<p><small><a name="note263" href="#note263">263)</a> Files created using strings generated by the tmpnam function are temporary only in the sense that
  their names should not collide with those generated by conventional naming rules for the
  implementation. It is still necessary to use the remove function to remove such files when their use
  is ended, and before program termination.
-
+</small>
 
 <a name="7.21.5" href="#7.21.5"><h4>7.21.5 File access functions</h4></a>
 
@@ -14942,10 +14942,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 325 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note264">264)</a> If the string begins with one of the above sequences, the implementation might choose to ignore the
+<p><small><a name="note264" href="#note264">264)</a> If the string begins with one of the above sequences, the implementation might choose to ignore the
  remaining characters, or it might use them to select different kinds of a file (some of which might not
  conform to the properties in <a href="#7.21.2">7.21.2</a>).
-
+</small>
 
 <a name="7.21.5.4" href="#7.21.5.4"><h5>7.21.5.4 The freopen function</h5></a>
 <h6>Synopsis</h6>
@@ -14975,10 +14975,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  freopen returns the value of stream.
 
 <h6>footnotes</h6>
-<p><a name="note265">265)</a> The primary use of the freopen function is to change the file associated with a standard text stream
+<p><small><a name="note265" href="#note265">265)</a> The primary use of the freopen function is to change the file associated with a standard text stream
  (stderr, stdin, or stdout), as those identifiers need not be modifiable lvalues to which the value
  returned by the fopen function may be assigned.
-
+</small>
 
 <a name="7.21.5.5" href="#7.21.5.5"><h5>7.21.5.5 The setbuf function</h5></a>
 <h6>Synopsis</h6>
@@ -15033,9 +15033,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 327 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note266">266)</a> The buffer has to have a lifetime at least as great as the open stream, so the stream should be closed
+<p><small><a name="note266" href="#note266">266)</a> The buffer has to have a lifetime at least as great as the open stream, so the stream should be closed
  before a buffer that has automatic storage duration is deallocated upon block exit.
-
+</small>
 
 <a name="7.21.6" href="#7.21.6"><h4>7.21.6 Formatted input/output functions</h4></a>
 <p><!--para 1-->
@@ -15043,8 +15043,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  actions associated with each specifier.<sup><a href="#note267"><b>267)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note267">267)</a> The fprintf functions perform writes to memory for the %n specifier.
-
+<p><small><a name="note267" href="#note267">267)</a> The fprintf functions perform writes to memory for the %n specifier.
+</small>
 
 <a name="7.21.6.1" href="#7.21.6.1"><h5>7.21.6.1 The fprintf function</h5></a>
 <h6>Synopsis</h6>
@@ -15393,32 +15393,32 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 335 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note268">268)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
-
-<p><a name="note269">269)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
+<p><small><a name="note268" href="#note268">268)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
+</small>
+<p><small><a name="note269" href="#note269">269)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
  include a minus sign.
-
-<p><a name="note270">270)</a> When applied to infinite and NaN values, the -, +, and space flag characters have their usual meaning;
+</small>
+<p><small><a name="note270" href="#note270">270)</a> When applied to infinite and NaN values, the -, +, and space flag characters have their usual meaning;
  the # and 0 flag characters have no effect.
-
-<p><a name="note271">271)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point character so
+</small>
+<p><small><a name="note271" href="#note271">271)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point character so
  that subsequent digits align to nibble (4-bit) boundaries.
-
-<p><a name="note272">272)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
+</small>
+<p><small><a name="note272" href="#note272">272)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
  FLT_RADIX and n is the number of base-b digits in the significand of the source type. A smaller p
  might suffice depending on the implementation's scheme for determining the digit to the left of the
  decimal-point character.
-
-<p><a name="note273">273)</a> No special provisions are made for multibyte characters.
-
-<p><a name="note274">274)</a> Redundant shift sequences may result if multibyte characters have a state-dependent encoding.
-
-<p><a name="note275">275)</a> See ''future library directions'' (<a href="#7.30.9">7.30.9</a>).
-
-<p><a name="note276">276)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
+</small>
+<p><small><a name="note273" href="#note273">273)</a> No special provisions are made for multibyte characters.
+</small>
+<p><small><a name="note274" href="#note274">274)</a> Redundant shift sequences may result if multibyte characters have a state-dependent encoding.
+</small>
+<p><small><a name="note275" href="#note275">275)</a> See ''future library directions'' (<a href="#7.30.9">7.30.9</a>).
+</small>
+<p><small><a name="note276" href="#note276">276)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
  given format specifier. The number of significant digits is determined by the format specifier, and in
  the case of fixed-point conversion by the source value as well.
-
+</small>
 
 <a name="7.21.6.2" href="#7.21.6.2"><h5>7.21.6.2 The fscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -15777,17 +15777,17 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#7.28.6">7.28.6</a>), the wcrtomb function (<a href="#7.28.6.3.3">7.28.6.3.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note277">277)</a> These white-space characters are not counted against a specified field width.
-
-<p><a name="note278">278)</a> fscanf pushes back at most one input character onto the input stream. Therefore, some sequences
+<p><small><a name="note277" href="#note277">277)</a> These white-space characters are not counted against a specified field width.
+</small>
+<p><small><a name="note278" href="#note278">278)</a> fscanf pushes back at most one input character onto the input stream. Therefore, some sequences
  that are acceptable to strtod, strtol, etc., are unacceptable to fscanf.
-
-<p><a name="note279">279)</a> No special provisions are made for multibyte characters in the matching rules used by the c, s, and [
+</small>
+<p><small><a name="note279" href="#note279">279)</a> No special provisions are made for multibyte characters in the matching rules used by the c, s, and [
  conversion specifiers -- the extent of the input field is determined on a byte-by-byte basis. The
  resulting field is nevertheless a sequence of multibyte characters that begins in the initial shift state.
-
-<p><a name="note280">280)</a> See ''future library directions'' (<a href="#7.30.9">7.30.9</a>).
-
+</small>
+<p><small><a name="note280" href="#note280">280)</a> See ''future library directions'' (<a href="#7.30.9">7.30.9</a>).
+</small>
 
 <a name="7.21.6.3" href="#7.21.6.3"><h5>7.21.6.3 The printf function</h5></a>
 <h6>Synopsis</h6>
@@ -15925,9 +15925,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note281">281)</a> As the functions vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf, and
+<p><small><a name="note281" href="#note281">281)</a> As the functions vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf, and
  vsscanf invoke the va_arg macro, the value of arg after the return is indeterminate.
-
+</small>
 
 <a name="7.21.6.9" href="#7.21.6.9"><h5>7.21.6.9 The vfscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -16083,8 +16083,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  returns EOF.<sup><a href="#note282"><b>282)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note282">282)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
-
+<p><small><a name="note282" href="#note282">282)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
+</small>
 
 <a name="7.21.7.2" href="#7.21.7.2"><h5>7.21.7.2 The fgets function</h5></a>
 <h6>Synopsis</h6>
@@ -16262,8 +16262,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: file positioning functions (<a href="#7.21.9">7.21.9</a>).
 
 <h6>footnotes</h6>
-<p><a name="note283">283)</a> See ''future library directions'' (<a href="#7.30.9">7.30.9</a>).
-
+<p><small><a name="note283" href="#note283">283)</a> See ''future library directions'' (<a href="#7.30.9">7.30.9</a>).
+</small>
 
 <a name="7.21.8" href="#7.21.8"><h4>7.21.8 Direct input/output functions</h4></a>
 
@@ -16540,8 +16540,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 359 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note284">284)</a> See ''future library directions'' (<a href="#7.30.10">7.30.10</a>).
-
+<p><small><a name="note284" href="#note284">284)</a> See ''future library directions'' (<a href="#7.30.10">7.30.10</a>).
+</small>
 
 <a name="7.22.1" href="#7.22.1"><h4>7.22.1 Numeric conversion functions</h4></a>
 <p><!--para 1-->
@@ -16688,17 +16688,17 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  errno acquires the value ERANGE is implementation-defined.
 
 <h6>footnotes</h6>
-<p><a name="note285">285)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
+<p><small><a name="note285" href="#note285">285)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
  negating the value resulting from converting the corresponding unsigned sequence (see <a href="#F.5">F.5</a>); the two
  methods may yield different results if rounding is toward positive or negative infinity. In either case,
  the functions honor the sign of zero if floating-point arithmetic supports signed zeros.
-
-<p><a name="note286">286)</a> An implementation may use the n-char sequence to determine extra information to be represented in
+</small>
+<p><small><a name="note286" href="#note286">286)</a> An implementation may use the n-char sequence to determine extra information to be represented in
  the NaN's significand.
-
-<p><a name="note287">287)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
+</small>
+<p><small><a name="note287" href="#note287">287)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
  to the same internal floating value, but if not will round to adjacent values.
-
+</small>
 
 <a name="7.22.1.4" href="#7.22.1.4"><h5>7.22.1.4 The strtol, strtoll, strtoul, and strtoull functions</h5></a>
 <h6>Synopsis</h6>
@@ -16798,10 +16798,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The value of the RAND_MAX macro shall be at least 32767.
 
 <h6>footnotes</h6>
-<p><a name="note288">288)</a> There are no guarantees as to the quality of the random sequence produced and some implementations
+<p><small><a name="note288" href="#note288">288)</a> There are no guarantees as to the quality of the random sequence produced and some implementations
  are known to produce sequences with distressingly non-random low-order bits. Applications with
  particular requirements should use a generator that is known to be sufficient for their needs.
-
+</small>
 
 <a name="7.22.2.2" href="#7.22.2.2"><h5>7.22.2.2 The srand function</h5></a>
 <h6>Synopsis</h6>
@@ -16889,9 +16889,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The calloc function returns either a null pointer or a pointer to the allocated space.
 
 <h6>footnotes</h6>
-<p><a name="note289">289)</a> Note that this need not be the same as the representation of floating-point zero or a null pointer
+<p><small><a name="note289" href="#note289">289)</a> Note that this need not be the same as the representation of floating-point zero or a null pointer
  constant.
-
+</small>
 
 <a name="7.22.3.3" href="#7.22.3.3"><h5>7.22.3.3 The free function</h5></a>
 <h6>Synopsis</h6>
@@ -16995,9 +16995,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#7.22.4.4">7.22.4.4</a>).
 
 <h6>footnotes</h6>
-<p><a name="note290">290)</a> The atexit function registrations are distinct from the at_quick_exit registrations, so
+<p><small><a name="note290" href="#note290">290)</a> The atexit function registrations are distinct from the at_quick_exit registrations, so
  applications may need to call both registration functions with the same argument.
-
+</small>
 
 <a name="7.22.4.3" href="#7.22.4.3"><h5>7.22.4.3 The at_quick_exit function</h5></a>
 <h6>Synopsis</h6>
@@ -17022,9 +17022,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 369 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note291">291)</a> The at_quick_exit function registrations are distinct from the atexit registrations, so
+<p><small><a name="note291" href="#note291">291)</a> The at_quick_exit function registrations are distinct from the atexit registrations, so
  applications may need to call both registration functions with the same argument.
-
+</small>
 
 <a name="7.22.4.4" href="#7.22.4.4"><h5>7.22.4.4 The exit function</h5></a>
 <h6>Synopsis</h6>
@@ -17058,9 +17058,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The exit function cannot return to its caller.
 
 <h6>footnotes</h6>
-<p><a name="note292">292)</a> Each function is called as many times as it was registered, and in the correct order with respect to
+<p><small><a name="note292" href="#note292">292)</a> Each function is called as many times as it was registered, and in the correct order with respect to
  other registered functions.
-
+</small>
 
 <a name="7.22.4.5" href="#7.22.4.5"><h5>7.22.4.5 The _Exit function</h5></a>
 <h6>Synopsis</h6>
@@ -17107,8 +17107,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  be found, a null pointer is returned.
 
 <h6>footnotes</h6>
-<p><a name="note293">293)</a> Many implementations provide non-standard functions that modify the environment list.
-
+<p><small><a name="note293" href="#note293">293)</a> Many implementations provide non-standard functions that modify the environment list.
+</small>
 
 <a name="7.22.4.7" href="#7.22.4.7"><h5>7.22.4.7 The quick_exit function</h5></a>
 <h6>Synopsis</h6>
@@ -17139,9 +17139,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The quick_exit function cannot return to its caller.
 
 <h6>footnotes</h6>
-<p><a name="note294">294)</a> Each function is called as many times as it was registered, and in the correct order with respect to
+<p><small><a name="note294" href="#note294">294)</a> Each function is called as many times as it was registered, and in the correct order with respect to
  other registered functions.
-
+</small>
 
 <a name="7.22.4.8" href="#7.22.4.8"><h5>7.22.4.8 The system function</h5></a>
 <h6>Synopsis</h6>
@@ -17195,14 +17195,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  movement of the objects passed as arguments to that call.
 
 <h6>footnotes</h6>
-<p><a name="note295">295)</a> That is, if the value passed is p, then the following expressions are always nonzero:
+<p><small><a name="note295" href="#note295">295)</a> That is, if the value passed is p, then the following expressions are always nonzero:
 
 <pre>
           ((char *)p - (char *)base) % size == 0
           (char *)p &gt;= (char *)base
           (char *)p &lt; (char *)base + nmemb * size</pre>
  
-
+</small>
 
 <a name="7.22.5.1" href="#7.22.5.1"><h5>7.22.5.1 The bsearch function</h5></a>
 <h6>Synopsis</h6>
@@ -17234,8 +17234,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  matched is unspecified.
 
 <h6>footnotes</h6>
-<p><a name="note296">296)</a> In practice, the entire array is sorted according to the comparison function.
-
+<p><small><a name="note296" href="#note296">296)</a> In practice, the entire array is sorted according to the comparison function.
+</small>
 
 <a name="7.22.5.2" href="#7.22.5.2"><h5>7.22.5.2 The qsort function</h5></a>
 <h6>Synopsis</h6>
@@ -17284,8 +17284,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 374 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note297">297)</a> The absolute value of the most negative number cannot be represented in two's complement.
-
+<p><small><a name="note297" href="#note297">297)</a> The absolute value of the most negative number cannot be represented in two's complement.
+</small>
 
 <a name="7.22.6.2" href="#7.22.6.2"><h5>7.22.6.2 The div, ldiv, and lldiv functions</h5></a>
 <h6>Synopsis</h6>
@@ -17319,9 +17319,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  category causes the conversion state of these functions to be indeterminate.
 
 <h6>footnotes</h6>
-<p><a name="note298">298)</a> If the locale employs special bytes to change the shift state, these bytes do not produce separate wide
+<p><small><a name="note298" href="#note298">298)</a> If the locale employs special bytes to change the shift state, these bytes do not produce separate wide
  character codes, but are grouped with an adjacent multibyte character.
-
+</small>
 
 <a name="7.22.7.1" href="#7.22.7.1"><h5>7.22.7.1 The mblen function</h5></a>
 <h6>Synopsis</h6>
@@ -17445,8 +17445,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  elements modified, not including a terminating null wide character, if any.<sup><a href="#note299"><b>299)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note299">299)</a> The array will not be null-terminated if the value returned is n.
-
+<p><small><a name="note299" href="#note299">299)</a> The array will not be null-terminated if the value returned is n.
+</small>
 
 <a name="7.22.8.2" href="#7.22.8.2"><h5>7.22.8.2 The wcstombs function</h5></a>
 <h6>Synopsis</h6>
@@ -17503,8 +17503,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  different value).
 
 <h6>footnotes</h6>
-<p><a name="note300">300)</a> See ''future library directions'' (<a href="#7.30.11">7.30.11</a>).
-
+<p><small><a name="note300" href="#note300">300)</a> See ''future library directions'' (<a href="#7.30.11">7.30.11</a>).
+</small>
 
 <a name="7.23.2" href="#7.23.2"><h4>7.23.2 Copying functions</h4></a>
 
@@ -17586,9 +17586,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The strncpy function returns the value of s1.
 
 <h6>footnotes</h6>
-<p><a name="note301">301)</a> Thus, if there is no null character in the first n characters of the array pointed to by s2, the result will
+<p><small><a name="note301" href="#note301">301)</a> Thus, if there is no null character in the first n characters of the array pointed to by s2, the result will
  not be null-terminated.
-
+</small>
 
 <a name="7.23.3" href="#7.23.3"><h4>7.23.3 Concatenation functions</h4></a>
 
@@ -17632,9 +17632,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: the strlen function (<a href="#7.23.6.3">7.23.6.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note302">302)</a> Thus, the maximum number of characters that can end up in the array pointed to by s1 is
+<p><small><a name="note302" href="#note302">302)</a> Thus, the maximum number of characters that can end up in the array pointed to by s1 is
  strlen(s1)+n+1.
-
+</small>
 
 <a name="7.23.4" href="#7.23.4"><h4>7.23.4 Comparison functions</h4></a>
 <p><!--para 1-->
@@ -17660,10 +17660,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  pointed to by s2.
 
 <h6>footnotes</h6>
-<p><a name="note303">303)</a> The contents of ''holes'' used as padding for purposes of alignment within structure objects are
+<p><small><a name="note303" href="#note303">303)</a> The contents of ''holes'' used as padding for purposes of alignment within structure objects are
  indeterminate. Strings shorter than their allocated space and unions may also cause problems in
  comparison.
-
+</small>
 
 <a name="7.23.4.2" href="#7.23.4.2"><h5>7.23.4.2 The strcmp function</h5></a>
 <h6>Synopsis</h6>
@@ -18079,12 +18079,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
              cproj(ldc)                          cprojl(ldc)</pre>
 
 <h6>footnotes</h6>
-<p><a name="note304">304)</a> Like other function-like macros in Standard libraries, each type-generic macro can be suppressed to
+<p><small><a name="note304" href="#note304">304)</a> Like other function-like macros in Standard libraries, each type-generic macro can be suppressed to
  make available the corresponding ordinary function.
-
-<p><a name="note305">305)</a> If the type of the argument is not compatible with the type of the parameter for the selected function,
+</small>
+<p><small><a name="note305" href="#note305">305)</a> If the type of the argument is not compatible with the type of the parameter for the selected function,
  the behavior is undefined.
-
+</small>
 
 <a name="7.25" href="#7.25"><h3>7.25 Threads <threads.h></h3></a>
 
@@ -18632,9 +18632,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 403 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note306">306)</a> Although an xtime object describes times with nanosecond resolution, the actual resolution in an
+<p><small><a name="note306" href="#note306">306)</a> Although an xtime object describes times with nanosecond resolution, the actual resolution in an
  xtime object is system dependent.
-
+</small>
 
 <a name="7.26" href="#7.26"><h3>7.26 Date and time <time.h></h3></a>
 
@@ -18686,8 +18686,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  Saving Time is not in effect, and negative if the information is not available.
 
 <h6>footnotes</h6>
-<p><a name="note307">307)</a> The range [0, 60] for tm_sec allows for a positive leap second.
-
+<p><small><a name="note307" href="#note307">307)</a> The range [0, 60] for tm_sec allows for a positive leap second.
+</small>
 
 <a name="7.26.2" href="#7.26.2"><h4>7.26.2 Time manipulation functions</h4></a>
 
@@ -18710,9 +18710,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  returns the value (clock_t)(-1).<sup><a href="#note308"><b>308)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note308">308)</a> In order to measure the time spent in a program, the clock function should be called at the start of
+<p><small><a name="note308" href="#note308">308)</a> In order to measure the time spent in a program, the clock function should be called at the start of
  the program and its return value subtracted from the value returned by subsequent calls.
-
+</small>
 
 <a name="7.26.2.2" href="#7.26.2.2"><h5>7.26.2.2 The difftime function</h5></a>
 <h6>Synopsis</h6>
@@ -18785,10 +18785,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note309">309)</a> Thus, a positive or zero value for tm_isdst causes the mktime function to presume initially that
+<p><small><a name="note309" href="#note309">309)</a> Thus, a positive or zero value for tm_isdst causes the mktime function to presume initially that
  Daylight Saving Time, respectively, is or is not in effect for the specified time. A negative value
  causes it to attempt to determine whether Daylight Saving Time is in effect for the specified time.
-
+</small>
 
 <a name="7.26.2.4" href="#7.26.2.4"><h5>7.26.2.4 The time function</h5></a>
 <h6>Synopsis</h6>
@@ -18859,8 +18859,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The asctime function returns a pointer to the string.
 
 <h6>footnotes</h6>
-<p><a name="note310">310)</a> See <a href="#7.26.1">7.26.1</a>.
-
+<p><small><a name="note310" href="#note310">310)</a> See <a href="#7.26.1">7.26.1</a>.
+</small>
 
 <a name="7.26.3.2" href="#7.26.3.2"><h5>7.26.3.2 The ctime function</h5></a>
 <h6>Synopsis</h6>
@@ -19169,9 +19169,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
               and the conversion state is unspecified.</pre>
 
 <h6>footnotes</h6>
-<p><a name="note311">311)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
+<p><small><a name="note311" href="#note311">311)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
  sequence of redundant shift sequences (for implementations with state-dependent encodings).
-
+</small>
 
 <a name="7.27.1.2" href="#7.27.1.2"><h5>7.27.1.2 The c16rtomb function</h5></a>
 <h6>Synopsis</h6>
@@ -19253,9 +19253,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
               and the conversion state is unspecified.</pre>
 
 <h6>footnotes</h6>
-<p><a name="note312">312)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
+<p><small><a name="note312" href="#note312">312)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
  sequence of redundant shift sequences (for implementations with state-dependent encodings).
-
+</small>
 
 <a name="7.27.1.4" href="#7.27.1.4"><h5>7.27.1.4 The c32rtomb function</h5></a>
 <h6>Synopsis</h6>
@@ -19341,12 +19341,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  undefined.
 
 <h6>footnotes</h6>
-<p><a name="note313">313)</a> See ''future library directions'' (<a href="#7.30.12">7.30.12</a>).
-
-<p><a name="note314">314)</a> wchar_t and wint_t can be the same integer type.
-
-<p><a name="note315">315)</a> The value of the macro WEOF may differ from that of EOF and need not be negative.
-
+<p><small><a name="note313" href="#note313">313)</a> See ''future library directions'' (<a href="#7.30.12">7.30.12</a>).
+</small>
+<p><small><a name="note314" href="#note314">314)</a> wchar_t and wint_t can be the same integer type.
+</small>
+<p><small><a name="note315" href="#note315">315)</a> The value of the macro WEOF may differ from that of EOF and need not be negative.
+</small>
 
 <a name="7.28.2" href="#7.28.2"><h4>7.28.2 Formatted wide character input/output functions</h4></a>
 <p><!--para 1-->
@@ -19354,8 +19354,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  point after the actions associated with each specifier.<sup><a href="#note316"><b>316)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note316">316)</a> The fwprintf functions perform writes to memory for the %n specifier.
-
+<p><small><a name="note316" href="#note316">316)</a> The fwprintf functions perform writes to memory for the %n specifier.
+</small>
 
 <a name="7.28.2.1" href="#7.28.2.1"><h5>7.28.2.1 The fwprintf function</h5></a>
 <h6>Synopsis</h6>
@@ -19669,28 +19669,28 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  (<a href="#7.28.6.3.2">7.28.6.3.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note317">317)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
-
-<p><a name="note318">318)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
+<p><small><a name="note317" href="#note317">317)</a> Note that 0 is taken as a flag, not as the beginning of a field width.
+</small>
+<p><small><a name="note318" href="#note318">318)</a> The results of all floating conversions of a negative zero, and of negative values that round to zero,
  include a minus sign.
-
-<p><a name="note319">319)</a> When applied to infinite and NaN values, the -, +, and space flag wide characters have their usual
+</small>
+<p><small><a name="note319" href="#note319">319)</a> When applied to infinite and NaN values, the -, +, and space flag wide characters have their usual
  meaning; the # and 0 flag wide characters have no effect.
-
-<p><a name="note320">320)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point wide
+</small>
+<p><small><a name="note320" href="#note320">320)</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point wide
  character so that subsequent digits align to nibble (4-bit) boundaries.
-
-<p><a name="note321">321)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
+</small>
+<p><small><a name="note321" href="#note321">321)</a> The precision p is sufficient to distinguish values of the source type if 16 p-1 &gt; b n where b is
  FLT_RADIX and n is the number of base-b digits in the significand of the source type. A smaller p
  might suffice depending on the implementation's scheme for determining the digit to the left of the
  decimal-point wide character.
-
-<p><a name="note322">322)</a> See ''future library directions'' (<a href="#7.30.12">7.30.12</a>).
-
-<p><a name="note323">323)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
+</small>
+<p><small><a name="note322" href="#note322">322)</a> See ''future library directions'' (<a href="#7.30.12">7.30.12</a>).
+</small>
+<p><small><a name="note323" href="#note323">323)</a> For binary-to-decimal conversion, the result format's values are the numbers representable with the
  given format specifier. The number of significant digits is determined by the format specifier, and in
  the case of fixed-point conversion by the source value as well.
-
+</small>
 
 <a name="7.28.2.2" href="#7.28.2.2"><h5>7.28.2.2 The fwscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -19955,13 +19955,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  function (<a href="#7.28.6.3.3">7.28.6.3.3</a>).
 
 <h6>footnotes</h6>
-<p><a name="note324">324)</a> These white-space wide characters are not counted against a specified field width.
-
-<p><a name="note325">325)</a> fwscanf pushes back at most one input wide character onto the input stream. Therefore, some
+<p><small><a name="note324" href="#note324">324)</a> These white-space wide characters are not counted against a specified field width.
+</small>
+<p><small><a name="note325" href="#note325">325)</a> fwscanf pushes back at most one input wide character onto the input stream. Therefore, some
  sequences that are acceptable to wcstod, wcstol, etc., are unacceptable to fwscanf.
-
-<p><a name="note326">326)</a> See ''future library directions'' (<a href="#7.30.12">7.30.12</a>).
-
+</small>
+<p><small><a name="note326" href="#note326">326)</a> See ''future library directions'' (<a href="#7.30.12">7.30.12</a>).
+</small>
 
 <a name="7.28.2.3" href="#7.28.2.3"><h5>7.28.2.3 The swprintf function</h5></a>
 <h6>Synopsis</h6>
@@ -20048,9 +20048,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 433 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note327">327)</a> As the functions vfwprintf, vswprintf, vfwscanf, vwprintf, vwscanf, and vswscanf
+<p><small><a name="note327" href="#note327">327)</a> As the functions vfwprintf, vswprintf, vfwscanf, vwprintf, vwscanf, and vswscanf
  invoke the va_arg macro, the value of arg after the return is indeterminate.
-
+</small>
 
 <a name="7.28.2.6" href="#7.28.2.6"><h5>7.28.2.6 The vfwscanf function</h5></a>
 <h6>Synopsis</h6>
@@ -20219,9 +20219,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  the macro EILSEQ is stored in errno and the fgetwc function returns WEOF.<sup><a href="#note328"><b>328)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note328">328)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
+<p><small><a name="note328" href="#note328">328)</a> An end-of-file and a read error can be distinguished by use of the feof and ferror functions.
  Also, errno will be set to EILSEQ by input/output functions only if an encoding error occurs.
-
+</small>
 
 <a name="7.28.3.2" href="#7.28.3.2"><h5>7.28.3.2 The fgetws function</h5></a>
 <h6>Synopsis</h6>
@@ -20306,8 +20306,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  stream has no orientation.
 
 <h6>footnotes</h6>
-<p><a name="note329">329)</a> If the orientation of the stream has already been determined, fwide does not change it.
-
+<p><small><a name="note329" href="#note329">329)</a> If the orientation of the stream has already been determined, fwide does not change it.
+</small>
 
 <a name="7.28.3.6" href="#7.28.3.6"><h5>7.28.3.6 The getwc function</h5></a>
 <h6>Synopsis</h6>
@@ -20539,17 +20539,17 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 444 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note330">330)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
+<p><small><a name="note330" href="#note330">330)</a> It is unspecified whether a minus-signed sequence is converted to a negative number directly or by
  negating the value resulting from converting the corresponding unsigned sequence (see <a href="#F.5">F.5</a>); the two
  methods may yield different results if rounding is toward positive or negative infinity. In either case,
  the functions honor the sign of zero if floating-point arithmetic supports signed zeros.
-
-<p><a name="note331">331)</a> An implementation may use the n-wchar sequence to determine extra information to be represented in
+</small>
+<p><small><a name="note331" href="#note331">331)</a> An implementation may use the n-wchar sequence to determine extra information to be represented in
  the NaN's significand.
-
-<p><a name="note332">332)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
+</small>
+<p><small><a name="note332" href="#note332">332)</a> DECIMAL_DIG, defined in <a href="#7.7">&lt;float.h&gt;</a>, should be sufficiently large that L and U will usually round
  to the same internal floating value, but if not will round to adjacent values.
-
+</small>
 
 <a name="7.28.4.1.2" href="#7.28.4.1.2"><h5>7.28.4.1.2 The wcstol, wcstoll, wcstoul, and wcstoull functions</h5></a>
 <h6>Synopsis</h6>
@@ -20665,9 +20665,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The wcsncpy function returns the value of s1.
 
 <h6>footnotes</h6>
-<p><a name="note333">333)</a> Thus, if there is no null wide character in the first n wide characters of the array pointed to by s2, the
+<p><small><a name="note333" href="#note333">333)</a> Thus, if there is no null wide character in the first n wide characters of the array pointed to by s2, the
  result will not be null-terminated.
-
+</small>
 
 <a name="7.28.4.2.3" href="#7.28.4.2.3"><h5>7.28.4.2.3 The wmemcpy function</h5></a>
 <h6>Synopsis</h6>
@@ -20747,9 +20747,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The wcsncat function returns the value of s1.
 
 <h6>footnotes</h6>
-<p><a name="note334">334)</a> Thus, the maximum number of wide characters that can end up in the array pointed to by s1 is
+<p><small><a name="note334" href="#note334">334)</a> Thus, the maximum number of wide characters that can end up in the array pointed to by s1 is
  wcslen(s1)+n+1.
-
+</small>
 
 <a name="7.28.4.4" href="#7.28.4.4"><h5>7.28.4.4 Wide string comparison functions</h5></a>
 <p><!--para 1-->
@@ -21123,10 +21123,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 456 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note335">335)</a> Thus, a particular mbstate_t object can be used, for example, with both the mbrtowc and
+<p><small><a name="note335" href="#note335">335)</a> Thus, a particular mbstate_t object can be used, for example, with both the mbrtowc and
  mbsrtowcs functions as long as they are used to step sequentially through the same multibyte
  character string.
-
+</small>
 
 <a name="7.28.6.1" href="#7.28.6.1"><h5>7.28.6.1 Single-byte/wide character conversion functions</h5></a>
 
@@ -21264,9 +21264,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 459 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note336">336)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
+<p><small><a name="note336" href="#note336">336)</a> When n has at least the value of the MB_CUR_MAX macro, this case can only occur if s points at a
  sequence of redundant shift sequences (for implementations with state-dependent encodings).
-
+</small>
 
 <a name="7.28.6.3.3" href="#7.28.6.3.3"><h5>7.28.6.3.3 The wcrtomb function</h5></a>
 <h6>Synopsis</h6>
@@ -21353,8 +21353,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 461 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note337">337)</a> Thus, the value of len is ignored if dst is a null pointer.
-
+<p><small><a name="note337" href="#note337">337)</a> Thus, the value of len is ignored if dst is a null pointer.
+</small>
 
 <a name="7.28.6.4.2" href="#7.28.6.4.2"><h5>7.28.6.4.2 The wcsrtombs function</h5></a>
 <h6>Synopsis</h6>
@@ -21397,9 +21397,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 462 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note338">338)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
+<p><small><a name="note338" href="#note338">338)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
  include those necessary to reach the initial shift state immediately before the null byte.
-
+</small>
 
 <a name="7.29" href="#7.29"><h3>7.29 Wide character classification and mapping utilities <wctype.h></h3></a>
 
@@ -21444,8 +21444,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 463 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note339">339)</a> See ''future library directions'' (<a href="#7.30.13">7.30.13</a>).
-
+<p><small><a name="note339" href="#note339">339)</a> See ''future library directions'' (<a href="#7.30.13">7.30.13</a>).
+</small>
 
 <a name="7.29.2" href="#7.29.2"><h4>7.29.2 Wide character classification utilities</h4></a>
 <p><!--para 1-->
@@ -21470,11 +21470,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <p><b> Forward references</b>: the wctob function (<a href="#7.28.6.1.2">7.28.6.1.2</a>).
 
 <h6>footnotes</h6>
-<p><a name="note340">340)</a> For example, if the expression isalpha(wctob(wc)) evaluates to true, then the call
+<p><small><a name="note340" href="#note340">340)</a> For example, if the expression isalpha(wctob(wc)) evaluates to true, then the call
  iswalpha(wc) also returns true. But, if the expression isgraph(wctob(wc)) evaluates to true
  (which cannot occur for wc == L' ' of course), then either iswgraph(wc) or iswprint(wc)
  &amp;&amp; iswspace(wc) is true, but not both.
-
+</small>
 
 <a name="7.29.2.1.1" href="#7.29.2.1.1"><h5>7.29.2.1.1 The iswalnum function</h5></a>
 <h6>Synopsis</h6>
@@ -21503,9 +21503,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  is true.<sup><a href="#note341"><b>341)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note341">341)</a> The functions iswlower and iswupper test true or false separately for each of these additional
+<p><small><a name="note341" href="#note341">341)</a> The functions iswlower and iswupper test true or false separately for each of these additional
  wide characters; all four combinations are possible.
-
+</small>
 
 <a name="7.29.2.1.3" href="#7.29.2.1.3"><h5>7.29.2.1.3 The iswblank function</h5></a>
 <h6>Synopsis</h6>
@@ -21559,10 +21559,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  iswspace is false.<sup><a href="#note342"><b>342)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note342">342)</a> Note that the behavior of the iswgraph and iswpunct functions may differ from their
+<p><small><a name="note342" href="#note342">342)</a> Note that the behavior of the iswgraph and iswpunct functions may differ from their
  corresponding functions in <a href="#7.4.1">7.4.1</a> with respect to printing, white-space, single-byte execution
  characters other than ' '.
-
+</small>
 
 <a name="7.29.2.1.7" href="#7.29.2.1.7"><h5>7.29.2.1.7 The iswlower function</h5></a>
 <h6>Synopsis</h6>
@@ -23906,9 +23906,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  within the range of representable values.
 
 <h6>footnotes</h6>
-<p><a name="note343">343)</a> Implementations that do not define __STDC_IEC_559__ are not required to conform to these
+<p><small><a name="note343" href="#note343">343)</a> Implementations that do not define __STDC_IEC_559__ are not required to conform to these
  specifications.
-
+</small>
 
 <a name="F.2" href="#F.2"><h3>F.2 Types</h3></a>
 <p><!--para 1-->
@@ -23931,12 +23931,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The long double type should match an IEC 60559 extended format.
 
 <h6>footnotes</h6>
-<p><a name="note344">344)</a> ''Extended'' is IEC 60559's double-extended data format. Extended refers to both the common 80-bit
+<p><small><a name="note344" href="#note344">344)</a> ''Extended'' is IEC 60559's double-extended data format. Extended refers to both the common 80-bit
  and quadruple 128-bit IEC 60559 formats.
-
-<p><a name="note345">345)</a> A non-IEC 60559 long double type is required to provide infinity and NaNs, as its values include
+</small>
+<p><small><a name="note345" href="#note345">345)</a> A non-IEC 60559 long double type is required to provide infinity and NaNs, as its values include
  all double values.
-
+</small>
 
 <a name="F.2.1" href="#F.2.1"><h4>F.2.1 Infinities, signed zeros, and NaNs</h4></a>
 <p><!--para 1-->
@@ -23945,9 +23945,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  functions in <a href="#7.12">&lt;math.h&gt;</a> provide designations for IEC 60559 NaNs and infinities.
 
 <h6>footnotes</h6>
-<p><a name="note346">346)</a> Since NaNs created by IEC 60559 operations are always quiet, quiet NaNs (along with infinities) are
+<p><small><a name="note346" href="#note346">346)</a> Since NaNs created by IEC 60559 operations are always quiet, quiet NaNs (along with infinities) are
  sufficient for closure of the arithmetic.
-
+</small>
 
 <a name="F.3" href="#F.3"><h3>F.3 Operators and functions</h3></a>
 <p><!--para 1-->
@@ -24042,12 +24042,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  unspecified.<sup><a href="#note347"><b>347)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note347">347)</a> ANSI/IEEE 854, but not IEC 60559 (ANSI/IEEE 754), directly specifies that floating-to-integer
+<p><small><a name="note347" href="#note347">347)</a> ANSI/IEEE 854, but not IEC 60559 (ANSI/IEEE 754), directly specifies that floating-to-integer
  conversions raise the ''inexact'' floating-point exception for non-integer in-range values. In those
  cases where it matters, library functions can be used to effect such conversions with or without raising
  the ''inexact'' floating-point exception. See rint, lrint, llrint, and nearbyint in
  <a href="#7.12">&lt;math.h&gt;</a>.
-
+</small>
 
 <a name="F.5" href="#F.5"><h3>F.5 Binary-decimal conversion</h3></a>
 <p><!--para 1-->
@@ -24070,11 +24070,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  unsigned sequence.
 
 <h6>footnotes</h6>
-<p><a name="note348">348)</a> If the minimum-width IEC 60559 extended format (64 bits of precision) is supported,
+<p><small><a name="note348" href="#note348">348)</a> If the minimum-width IEC 60559 extended format (64 bits of precision) is supported,
  DECIMAL_DIG shall be at least 21. If IEC 60559 double (53 bits of precision) is the widest
  IEC 60559 format supported, then DECIMAL_DIG shall be at least 17. (By contrast, LDBL_DIG and
  DBL_DIG are 18 and 15, respectively, for these formats.)
-
+</small>
 
 <a name="F.6" href="#F.6"><h3>F.6 The return statement</h3></a>
  If the return expression is evaluated in a floating-point format different from the return
@@ -24082,8 +24082,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  and the resulting value is returned to the caller.
 
 <h6>footnotes</h6>
-<p><a name="note349">349)</a> Assignment removes any extra range and precision.
-
+<p><small><a name="note349" href="#note349">349)</a> Assignment removes any extra range and precision.
+</small>
 
 <a name="F.7" href="#F.7"><h3>F.7 Contracted expressions</h3></a>
 <p><!--para 1-->
@@ -24103,8 +24103,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  implementation supports them.<sup><a href="#note350"><b>350)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note350">350)</a> This specification does not require dynamic rounding precision nor trap enablement modes.
-
+<p><small><a name="note350" href="#note350">350)</a> This specification does not require dynamic rounding precision nor trap enablement modes.
+</small>
 
 <a name="F.8.1" href="#F.8.1"><h4>F.8.1 Environment management</h4></a>
 <p><!--para 1-->
@@ -24120,10 +24120,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 526 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note351">351)</a> If the state for the FENV_ACCESS pragma is ''off'', the implementation is free to assume the floating-
+<p><small><a name="note351" href="#note351">351)</a> If the state for the FENV_ACCESS pragma is ''off'', the implementation is free to assume the floating-
  point control modes will be the default ones and the floating-point status flags will not be tested,
  which allows certain optimizations (see <a href="#F.9">F.9</a>).
-
+</small>
 
 <a name="F.8.2" href="#F.8.2"><h4>F.8.2 Translation</h4></a>
 <p><!--para 1-->
@@ -24140,11 +24140,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  proceed with the translation of the program.
 
 <h6>footnotes</h6>
-<p><a name="note352">352)</a> As floating constants are converted to appropriate internal representations at translation time, their
+<p><small><a name="note352" href="#note352">352)</a> As floating constants are converted to appropriate internal representations at translation time, their
  conversion is subject to default rounding modes and raises no execution-time floating-point exceptions
  (even where the state of the FENV_ACCESS pragma is ''on''). Library functions, for example
  strtod, provide execution-time conversion of numeric strings.
-
+</small>
 
 <a name="F.8.3" href="#F.8.3"><h4>F.8.3 Execution</h4></a>
 <p><!--para 1-->
@@ -24189,14 +24189,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note353">353)</a> Where the state for the FENV_ACCESS pragma is ''on'', results of inexact expressions like 1.0/3.0
+<p><small><a name="note353" href="#note353">353)</a> Where the state for the FENV_ACCESS pragma is ''on'', results of inexact expressions like 1.0/3.0
  are affected by rounding modes set at execution time, and expressions such as 0.0/0.0 and
  1.0/0.0 generate execution-time floating-point exceptions. The programmer can achieve the
  efficiency of translation-time evaluation through static initialization, such as
 
 <pre>
           const static double one_third = 1.0/3.0;</pre>
-
+</small>
 
 <a name="F.8.5" href="#F.8.5"><h4>F.8.5 Initialization</h4></a>
 <p><!--para 1-->
@@ -24236,13 +24236,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note354">354)</a> Use of float_t and double_t variables increases the likelihood of translation-time computation.
+<p><small><a name="note354" href="#note354">354)</a> Use of float_t and double_t variables increases the likelihood of translation-time computation.
  For example, the automatic initialization
 
 <pre>
           double_t x = 1.1e75;</pre>
  could be done at translation time, regardless of the expression evaluation method.
-
+</small>
 
 <a name="F.8.6" href="#F.8.6"><h4>F.8.6 Changing the environment</h4></a>
 <p><!--para 1-->
@@ -24335,10 +24335,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 530 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note355">355)</a> Strict support for signaling NaNs -- not required by this specification -- would invalidate these and
+<p><small><a name="note355" href="#note355">355)</a> Strict support for signaling NaNs -- not required by this specification -- would invalidate these and
  other transformations that remove arithmetic operators.
-
-<p><a name="note356">356)</a> IEC 60559 prescribes a signed zero to preserve mathematical identities across certain discontinuities.
+</small>
+<p><small><a name="note356" href="#note356">356)</a> IEC 60559 prescribes a signed zero to preserve mathematical identities across certain discontinuities.
  Examples include:
 
 <pre>
@@ -24348,7 +24348,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <pre>
     conj(csqrt(z)) is csqrt(conj(z)),</pre>
  for complex z.
-
+</small>
 
 <a name="F.9.3" href="#F.9.3"><h4>F.9.3 Relational operators</h4></a>
 <p><!--para 1-->
@@ -24414,8 +24414,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  point exception when converted to the semantic type of the operation.
 
 <h6>footnotes</h6>
-<p><a name="note357">357)</a> 0 - 0 yields -0 instead of +0 just when the rounding direction is downward.
-
+<p><small><a name="note357" href="#note357">357)</a> 0 - 0 yields -0 instead of +0 just when the rounding direction is downward.
+</small>
 
 <a name="F.10" href="#F.10"><h3>F.10 Mathematics <math.h></h3></a>
 <p><!--para 1-->
@@ -24473,12 +24473,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  for the sign.
 
 <h6>footnotes</h6>
-<p><a name="note358">358)</a> IEC 60559 allows different definitions of underflow. They all result in the same values, but differ on
+<p><small><a name="note358" href="#note358">358)</a> IEC 60559 allows different definitions of underflow. They all result in the same values, but differ on
  when the floating-point exception is raised.
-
-<p><a name="note359">359)</a> It is intended that undeserved ''underflow'' and ''inexact'' floating-point exceptions are raised only if
+</small>
+<p><small><a name="note359" href="#note359">359)</a> It is intended that undeserved ''underflow'' and ''inexact'' floating-point exceptions are raised only if
  avoiding them would be too costly.
-
+</small>
 
 <a name="F.10.1" href="#F.10.1"><h4>F.10.1 Trigonometric functions</h4></a>
 
@@ -24527,9 +24527,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 </ul>
 
 <h6>footnotes</h6>
-<p><a name="note360">360)</a> atan2(0, 0) does not raise the ''invalid'' floating-point exception, nor does atan2( y , 0) raise
+<p><small><a name="note360" href="#note360">360)</a> atan2(0, 0) does not raise the ''invalid'' floating-point exception, nor does atan2( y , 0) raise
  the ''divide-by-zero'' floating-point exception.
-
+</small>
 
 <a name="F.10.1.5" href="#F.10.1.5"><h5>F.10.1.5 The cos functions</h5></a>
 <p><!--para 1-->
@@ -25066,9 +25066,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
              isnan(y)) ? x : y; }</pre>
 
 <h6>footnotes</h6>
-<p><a name="note361">361)</a> Ideally, fmax would be sensitive to the sign of zero, for example fmax(-0.0, +0.0) would
+<p><small><a name="note361" href="#note361">361)</a> Ideally, fmax would be sensitive to the sign of zero, for example fmax(-0.0, +0.0) would
  return +0; however, implementation in software might be impractical.
-
+</small>
 
 <a name="F.10.9.3" href="#F.10.9.3"><h5>F.10.9.3 The fmin functions</h5></a>
 <p><!--para 1-->
@@ -25118,9 +25118,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  __STDC_IEC_559_COMPLEX__ shall conform to the specifications in this annex.<sup><a href="#note362"><b>362)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note362">362)</a> Implementations that do not define __STDC_IEC_559_COMPLEX__ are not required to conform
+<p><small><a name="note362" href="#note362">362)</a> Implementations that do not define __STDC_IEC_559_COMPLEX__ are not required to conform
  to these specifications.
-
+</small>
 
 <a name="G.2" href="#G.2"><h3>G.2 Types</h3></a>
 <p><!--para 1-->
@@ -25169,8 +25169,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  imaginary zero.
 
 <h6>footnotes</h6>
-<p><a name="note363">363)</a> See <a href="#6.3.1.2">6.3.1.2</a>.
-
+<p><small><a name="note363" href="#note363">363)</a> See <a href="#6.3.1.2">6.3.1.2</a>.
+</small>
 
 <a name="G.4.3" href="#G.4.3"><h4>G.4.3 Imaginary and complex</h4></a>
 <p><!--para 1-->
@@ -25366,9 +25366,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note364">364)</a> These properties are already implied for those cases covered in the tables, but are required for all cases
+<p><small><a name="note364" href="#note364">364)</a> These properties are already implied for those cases covered in the tables, but are required for all cases
  (at least where the state for CX_LIMITED_RANGE is ''off'').
-
+</small>
 
 <a name="G.5.2" href="#G.5.2"><h4>G.5.2 Additive operators</h4></a>
 <h6>Semantics</h6>
@@ -25457,9 +25457,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 553 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note365">365)</a> As noted in <a href="#G.3">G.3</a>, a complex value with at least one infinite part is regarded as an infinity even if its
+<p><small><a name="note365" href="#note365">365)</a> As noted in <a href="#G.3">G.3</a>, a complex value with at least one infinite part is regarded as an infinity even if its
  other part is a NaN.
-
+</small>
 
 <a name="G.6.1" href="#G.6.1"><h4>G.6.1 Trigonometric functions</h4></a>
 
@@ -25678,9 +25678,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  the parts of the result, and may also raise spurious floating-point exceptions.<sup><a href="#note366"><b>366)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note366">366)</a> This allows cpow( z , c ) to be implemented as cexp(c      clog( z )) without precluding
+<p><small><a name="note366" href="#note366">366)</a> This allows cpow( z , c ) to be implemented as cexp(c      clog( z )) without precluding
  implementations that treat special cases more carefully.
-
+</small>
 
 <a name="G.6.4.2" href="#G.6.4.2"><h5>G.6.4.2 The csqrt functions</h5></a>
 <p><!--para 1-->
@@ -27096,9 +27096,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  subclauses of clause 7.
 
 <h6>footnotes</h6>
-<p><a name="note367">367)</a> Implementations that do not define __STDC_LIB_EXT1__ are not required to conform to these
+<p><small><a name="note367" href="#note367">367)</a> Implementations that do not define __STDC_LIB_EXT1__ are not required to conform to these
  specifications.
-
+</small>
 
 <a name="K.3" href="#K.3"><h3>K.3 Library</h3></a>
 
@@ -27130,15 +27130,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 598 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note368">368)</a> Future revisions of this International Standard may define meanings for other values of
+<p><small><a name="note368" href="#note368">368)</a> Future revisions of this International Standard may define meanings for other values of
  __STDC_WANT_LIB_EXT1__.
-
-<p><a name="note369">369)</a> Subclause <a href="#7.1.3">7.1.3</a> reserves certain names and patterns of names that an implementation may use in
+</small>
+<p><small><a name="note369" href="#note369">369)</a> Subclause <a href="#7.1.3">7.1.3</a> reserves certain names and patterns of names that an implementation may use in
  headers. All other names are not reserved, and a conforming implementation is not permitted to use
  them. While some of the names defined in <a href="#K.3">K.3</a> and its subclauses are reserved, others are not. If an
  unreserved name is defined in a header when __STDC_WANT_LIB_EXT1__ is defined as 0, the
  implementation is not conforming.
-
+</small>
 
 <a name="K.3.1.2" href="#K.3.1.2"><h5>K.3.1.2 Reserved identifiers</h5></a>
 <p><!--para 1-->
@@ -27187,11 +27187,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 599 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note370">370)</a> Although runtime-constraints replace many cases of undefined behavior, undefined behavior still
+<p><small><a name="note370" href="#note370">370)</a> Although runtime-constraints replace many cases of undefined behavior, undefined behavior still
  exists in this annex. Implementations are free to detect any case of undefined behavior and treat it as a
  runtime-constraint violation by calling the runtime-constraint handler. This license comes directly
  from the definition of undefined behavior.
-
+</small>
 
 <a name="K.3.2" href="#K.3.2"><h4>K.3.2 Errors <errno.h></h4></a>
 <p><!--para 1-->
@@ -27203,10 +27203,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  which is type int.<sup><a href="#note371"><b>371)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note371">371)</a> As a matter of programming style, errno_t may be used as the type of something that deals only
+<p><small><a name="note371" href="#note371">371)</a> As a matter of programming style, errno_t may be used as the type of something that deals only
  with the values that might be found in errno. For example, a function which returns the value of
  errno might be declared as having the return type errno_t.
-
+</small>
 
 <a name="K.3.3" href="#K.3.3"><h4>K.3.3 Common definitions <stddef.h></h4></a>
 <p><!--para 1-->
@@ -27218,8 +27218,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  which is the type size_t.<sup><a href="#note372"><b>372)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note372">372)</a> See the description of the RSIZE_MAX macro in <a href="#7.20">&lt;stdint.h&gt;</a>.
-
+<p><small><a name="note372" href="#note372">372)</a> See the description of the RSIZE_MAX macro in <a href="#7.20">&lt;stdint.h&gt;</a>.
+</small>
 
 <a name="K.3.4" href="#K.3.4"><h4>K.3.4 Integer types <stdint.h></h4></a>
 <p><!--para 1-->
@@ -27249,8 +27249,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  is no object size that is considered a runtime-constraint violation.
 
 <h6>footnotes</h6>
-<p><a name="note373">373)</a> The macro RSIZE_MAX need not expand to a constant expression.
-
+<p><small><a name="note373" href="#note373">373)</a> The macro RSIZE_MAX need not expand to a constant expression.
+</small>
 
 <a name="K.3.5" href="#K.3.5"><h4>K.3.5 Input/output <stdio.h></h4></a>
 <p><!--para 1-->
@@ -27363,17 +27363,17 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The value of the macro TMP_MAX_S shall be at least 25.
 
 <h6>footnotes</h6>
-<p><a name="note374">374)</a> Files created using strings generated by the tmpnam_s function are temporary only in the sense that
+<p><small><a name="note374" href="#note374">374)</a> Files created using strings generated by the tmpnam_s function are temporary only in the sense that
  their names should not collide with those generated by conventional naming rules for the
  implementation. It is still necessary to use the remove function to remove such files when their use
  is ended, and before program termination. Implementations should take care in choosing the patterns
  used for names returned by tmpnam_s. For example, making a thread id part of the names avoids the
  race condition and possible conflict when multiple programs run simultaneously by the same user
  generate the same temporary file names.
-
-<p><a name="note375">375)</a> An implementation may have tmpnam call tmpnam_s (perhaps so there is only one naming
+</small>
+<p><small><a name="note375" href="#note375">375)</a> An implementation may have tmpnam call tmpnam_s (perhaps so there is only one naming
  convention for temporary files), but this is not required.
-
+</small>
 
 <a name="K.3.5.2" href="#K.3.5.2"><h5>K.3.5.2 File access functions</h5></a>
 
@@ -27457,8 +27457,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  there was a runtime-constraint violation, fopen_s returns a nonzero value.
 
 <h6>footnotes</h6>
-<p><a name="note376">376)</a> These are the same permissions that the file would have been created with by fopen.
-
+<p><small><a name="note376" href="#note376">376)</a> These are the same permissions that the file would have been created with by fopen.
+</small>
 
 <a name="K.3.5.2.2" href="#K.3.5.2.2"><h5>K.3.5.2.2 The freopen_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27541,14 +27541,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 606 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note377">377)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note377" href="#note377">377)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
-<p><a name="note378">378)</a> Because an implementation may treat any undefined behavior as a runtime-constraint violation, an
+</small>
+<p><small><a name="note378" href="#note378">378)</a> Because an implementation may treat any undefined behavior as a runtime-constraint violation, an
  implementation may treat any unsupported specifiers in the string pointed to by format as a runtime-
  constraint violation.
-
+</small>
 
 <a name="K.3.5.3.2" href="#K.3.5.3.2"><h5>K.3.5.3.2 The fscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27616,11 +27616,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note379">379)</a> Because an implementation may treat any undefined behavior as a runtime-constraint violation, an
+<p><small><a name="note379" href="#note379">379)</a> Because an implementation may treat any undefined behavior as a runtime-constraint violation, an
  implementation may treat any unsupported specifiers in the string pointed to by format as a runtime-
  constraint violation.
-
-<p><a name="note380">380)</a> If the format is known at translation time, an implementation may issue a diagnostic for any argument
+</small>
+<p><small><a name="note380" href="#note380">380)</a> If the format is known at translation time, an implementation may issue a diagnostic for any argument
  used to store the result from a c, s, or [ conversion specifier if that argument is not followed by an
  argument of a type compatible with rsize_t. A limited amount of checking may be done if even if
  the format is not known at translation time. For example, an implementation may issue a diagnostic
@@ -27630,7 +27630,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  using the hh length modifier, a length argument must follow the pointer argument. Another useful
  diagnostic could flag any non-pointer argument following format that did not have a type
  compatible with rsize_t.
-
+</small>
 
 <a name="K.3.5.3.3" href="#K.3.5.3.3"><h5>K.3.5.3.3 The printf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27661,10 +27661,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  value if an output error, encoding error, or runtime-constraint violation occurred.
 
 <h6>footnotes</h6>
-<p><a name="note381">381)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note381" href="#note381">381)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
+</small>
 
 <a name="K.3.5.3.4" href="#K.3.5.3.4"><h5>K.3.5.3.4 The scanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27728,10 +27728,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  less than n.
 
 <h6>footnotes</h6>
-<p><a name="note382">382)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note382" href="#note382">382)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
+</small>
 
 <a name="K.3.5.3.6" href="#K.3.5.3.6"><h5>K.3.5.3.6 The sprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27772,10 +27772,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  constraint violation occurred, sprintf_s returns zero.
 
 <h6>footnotes</h6>
-<p><a name="note383">383)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note383" href="#note383">383)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
+</small>
 
 <a name="K.3.5.3.7" href="#K.3.5.3.7"><h5>K.3.5.3.7 The sscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27837,10 +27837,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  value if an output error, encoding error, or runtime-constraint violation occurred.
 
 <h6>footnotes</h6>
-<p><a name="note384">384)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note384" href="#note384">384)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
+</small>
 
 <a name="K.3.5.3.9" href="#K.3.5.3.9"><h5>K.3.5.3.9 The vfscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27879,10 +27879,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  than provided for, or even zero, in the event of an early matching failure.
 
 <h6>footnotes</h6>
-<p><a name="note385">385)</a> As the functions vfprintf_s, vfscanf_s, vprintf_s, vscanf_s, vsnprintf_s,
+<p><small><a name="note385" href="#note385">385)</a> As the functions vfprintf_s, vfscanf_s, vprintf_s, vscanf_s, vsnprintf_s,
  vsprintf_s, and vsscanf_s invoke the va_arg macro, the value of arg after the return is
  indeterminate.
-
+</small>
 
 <a name="K.3.5.3.10" href="#K.3.5.3.10"><h5>K.3.5.3.10 The vprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27914,10 +27914,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  value if an output error, encoding error, or runtime-constraint violation occurred.
 
 <h6>footnotes</h6>
-<p><a name="note386">386)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note386" href="#note386">386)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
+</small>
 
 <a name="K.3.5.3.11" href="#K.3.5.3.11"><h5>K.3.5.3.11 The vscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -27955,10 +27955,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 614 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note387">387)</a> As the functions vfprintf_s, vfscanf_s, vprintf_s, vscanf_s, vsnprintf_s,
+<p><small><a name="note387" href="#note387">387)</a> As the functions vfprintf_s, vfscanf_s, vprintf_s, vscanf_s, vsnprintf_s,
  vsprintf_s, and vsscanf_s invoke the va_arg macro, the value of arg after the return is
  indeterminate.
-
+</small>
 
 <a name="K.3.5.3.12" href="#K.3.5.3.12"><h5>K.3.5.3.12 The vsnprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28002,10 +28002,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 615 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note388">388)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note388" href="#note388">388)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
+</small>
 
 <a name="K.3.5.3.13" href="#K.3.5.3.13"><h5>K.3.5.3.13 The vsprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28049,10 +28049,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 616 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note389">389)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
+<p><small><a name="note389" href="#note389">389)</a> It is not a runtime-constraint violation for the characters %n to appear in sequence in the string pointed
  at by format when those characters are not a interpreted as a %n specifier. For example, if the entire
  format string was %%n.
-
+</small>
 
 <a name="K.3.5.3.14" href="#K.3.5.3.14"><h5>K.3.5.3.14 The vsscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28086,10 +28086,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  provided for, or even zero, in the event of an early matching failure.
 
 <h6>footnotes</h6>
-<p><a name="note390">390)</a> As the functions vfprintf_s, vfscanf_s, vprintf_s, vscanf_s, vsnprintf_s,
+<p><small><a name="note390" href="#note390">390)</a> As the functions vfprintf_s, vfscanf_s, vprintf_s, vscanf_s, vsnprintf_s,
  vsprintf_s, and vsscanf_s invoke the va_arg macro, the value of arg after the return is
  indeterminate.
-
+</small>
 
 <a name="K.3.5.4" href="#K.3.5.4"><h5>K.3.5.4 Character input/output functions</h5></a>
 
@@ -28144,11 +28144,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 618 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note391">391)</a> The gets_s function, unlike the historical gets function, makes it a runtime-constraint violation for
+<p><small><a name="note391" href="#note391">391)</a> The gets_s function, unlike the historical gets function, makes it a runtime-constraint violation for
  a line of input to overflow the buffer to store it. Unlike the fgets function, gets_s maintains a
  one-to-one relationship between input lines and successful calls to gets_s. Programs that use gets
  expect such a relationship.
-
+</small>
 
 <a name="K.3.6" href="#K.3.6"><h4>K.3.6 General utilities <stdlib.h></h4></a>
 <p><!--para 1-->
@@ -28210,9 +28210,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  registered handler.<sup><a href="#note392"><b>392)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note392">392)</a> If the previous handler was registered by calling set_constraint_handler_s with a null
+<p><small><a name="note392" href="#note392">392)</a> If the previous handler was registered by calling set_constraint_handler_s with a null
  pointer argument, a pointer to the implementation default handler is returned (not NULL).
-
+</small>
 
 <a name="K.3.6.1.2" href="#K.3.6.1.2"><h5>K.3.6.1.2 The abort_handler_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28242,8 +28242,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 620 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note393">393)</a> Many implementations invoke a debugger when the abort function is called.
-
+<p><small><a name="note393" href="#note393">393)</a> Many implementations invoke a debugger when the abort function is called.
+</small>
 
 <a name="K.3.6.1.3" href="#K.3.6.1.3"><h5>K.3.6.1.3 The ignore_handler_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28266,11 +28266,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  The ignore_handler_s function returns no value.
 
 <h6>footnotes</h6>
-<p><a name="note394">394)</a> If the runtime-constraint handler is set to the ignore_handler_s function, any library function in
+<p><small><a name="note394" href="#note394">394)</a> If the runtime-constraint handler is set to the ignore_handler_s function, any library function in
  which a runtime-constraint violation occurs will return to its caller. The caller can determine whether
  a runtime-constraint violation occurred based on the library function's specification (usually, the
  library function returns a nonzero errno_t).
-
+</small>
 
 <a name="K.3.6.2" href="#K.3.6.2"><h5>K.3.6.2 Communication with the environment</h5></a>
 
@@ -28347,13 +28347,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  movement of the objects passed as arguments to that call.
 
 <h6>footnotes</h6>
-<p><a name="note395">395)</a> That is, if the value passed is p, then the following expressions are always valid and nonzero:
+<p><small><a name="note395" href="#note395">395)</a> That is, if the value passed is p, then the following expressions are always valid and nonzero:
 
 <pre>
           ((char *)p - (char *)base) % size == 0
           (char *)p &gt;= (char *)base
           (char *)p &lt; (char *)base + nmemb * size</pre>
-
+</small>
 
 <a name="K.3.6.3.1" href="#K.3.6.3.1"><h5>K.3.6.3.1 The bsearch_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28400,11 +28400,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  compare as equal, which element is matched is unspecified.
 
 <h6>footnotes</h6>
-<p><a name="note396">396)</a> In practice, this means that the entire array has been sorted according to the comparison function.
-
-<p><a name="note397">397)</a> The context argument is for the use of the comparison function in performing its duties. For
+<p><small><a name="note396" href="#note396">396)</a> In practice, this means that the entire array has been sorted according to the comparison function.
+</small>
+<p><small><a name="note397" href="#note397">397)</a> The context argument is for the use of the comparison function in performing its duties. For
  example, it might specify a collating sequence used by the comparison function.
-
+</small>
 
 <a name="K.3.6.3.2" href="#K.3.6.3.2"><h5>K.3.6.3.2 The qsort_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28448,9 +28448,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 624 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note398">398)</a> The context argument is for the use of the comparison function in performing its duties. For
+<p><small><a name="note398" href="#note398">398)</a> The context argument is for the use of the comparison function in performing its duties. For
  example, it might specify a collating sequence used by the comparison function.
-
+</small>
 
 <a name="K.3.6.4" href="#K.3.6.4"><h5>K.3.6.4 Multibyte/wide character conversion functions</h5></a>
 <p><!--para 1-->
@@ -28464,9 +28464,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  category causes the conversion state of these functions to be indeterminate.
 
 <h6>footnotes</h6>
-<p><a name="note399">399)</a> If the locale employs special bytes to change the shift state, these bytes do not produce separate wide
+<p><small><a name="note399" href="#note399">399)</a> If the locale employs special bytes to change the shift state, these bytes do not produce separate wide
  character codes, but are grouped with an adjacent multibyte character.
-
+</small>
 
 <a name="K.3.6.4.1" href="#K.3.6.4.1"><h5>K.3.6.4.1 The wctomb_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28576,11 +28576,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  encoding error occurred. Otherwise, a nonzero value is returned.
 
 <h6>footnotes</h6>
-<p><a name="note400">400)</a> Thus, the value of len is ignored if dst is a null pointer.
-
-<p><a name="note401">401)</a> This allows an implementation to attempt converting the multibyte string before discovering a
+<p><small><a name="note400" href="#note400">400)</a> Thus, the value of len is ignored if dst is a null pointer.
+</small>
+<p><small><a name="note401" href="#note401">401)</a> This allows an implementation to attempt converting the multibyte string before discovering a
  terminating null character did not occur where required.
-
+</small>
 
 <a name="K.3.6.5.2" href="#K.3.6.5.2"><h5>K.3.6.5.2 The wcstombs_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28650,14 +28650,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  encoding error occurred. Otherwise, a nonzero value is returned.
 
 <h6>footnotes</h6>
-<p><a name="note402">402)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
+<p><small><a name="note402" href="#note402">402)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
  include those necessary to reach the initial shift state immediately before the null byte. However, if
  the conversion stops before a terminating null wide character has been reached, the result will be null
  terminated, but might not end in the initial shift state.
-
-<p><a name="note403">403)</a> When len is not less than dstmax, the implementation might fill the array before discovering a
+</small>
+<p><small><a name="note403" href="#note403">403)</a> When len is not less than dstmax, the implementation might fill the array before discovering a
  runtime-constraint violation.
-
+</small>
 
 <a name="K.3.7" href="#K.3.7"><h4>K.3.7 String handling <string.h></h4></a>
 <p><!--para 1-->
@@ -28761,13 +28761,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  Otherwise, a nonzero value is returned.
 
 <h6>footnotes</h6>
-<p><a name="note404">404)</a> This allows an implementation to copy characters from s2 to s1 while simultaneously checking if
+<p><small><a name="note404" href="#note404">404)</a> This allows an implementation to copy characters from s2 to s1 while simultaneously checking if
  any of those characters are null. Such an approach might write a character to every element of s1
  before discovering that the first element should be set to the null character.
-
-<p><a name="note405">405)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 fit
+</small>
+<p><small><a name="note405" href="#note405">405)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 fit
  within the array pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.7.1.4" href="#K.3.7.1.4"><h5>K.3.7.1.4 The strncpy_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28826,13 +28826,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note406">406)</a> This allows an implementation to copy characters from s2 to s1 while simultaneously checking if
+<p><small><a name="note406" href="#note406">406)</a> This allows an implementation to copy characters from s2 to s1 while simultaneously checking if
  any of those characters are null. Such an approach might write a character to every element of s1
  before discovering that the first element should be set to the null character.
-
-<p><a name="note407">407)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 fit
+</small>
+<p><small><a name="note407" href="#note407">407)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 fit
  within the array pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.7.2" href="#K.3.7.2"><h5>K.3.7.2 Concatenation functions</h5></a>
 
@@ -28877,15 +28877,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  Otherwise, a nonzero value is returned.
 
 <h6>footnotes</h6>
-<p><a name="note408">408)</a> Zero means that s1 was not null terminated upon entry to strcat_s.
-
-<p><a name="note409">409)</a> This allows an implementation to append characters from s2 to s1 while simultaneously checking if
+<p><small><a name="note408" href="#note408">408)</a> Zero means that s1 was not null terminated upon entry to strcat_s.
+</small>
+<p><small><a name="note409" href="#note409">409)</a> This allows an implementation to append characters from s2 to s1 while simultaneously checking if
  any of those characters are null. Such an approach might write a character to every element of s1
  before discovering that the first element should be set to the null character.
-
-<p><a name="note410">410)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 were
+</small>
+<p><small><a name="note410" href="#note410">410)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 were
  appended to the string pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.7.2.2" href="#K.3.7.2.2"><h5>K.3.7.2.2 The strncat_s function</h5></a>
 <h6>Synopsis</h6>
@@ -28956,15 +28956,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note411">411)</a> Zero means that s1 was not null terminated upon entry to strncat_s.
-
-<p><a name="note412">412)</a> This allows an implementation to append characters from s2 to s1 while simultaneously checking if
+<p><small><a name="note411" href="#note411">411)</a> Zero means that s1 was not null terminated upon entry to strncat_s.
+</small>
+<p><small><a name="note412" href="#note412">412)</a> This allows an implementation to append characters from s2 to s1 while simultaneously checking if
  any of those characters are null. Such an approach might write a character to every element of s1
  before discovering that the first element should be set to the null character.
-
-<p><a name="note413">413)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 were
+</small>
+<p><small><a name="note413" href="#note413">413)</a> A zero return value implies that all of the requested characters from the string pointed to by s2 were
  appended to the string pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.7.3" href="#K.3.7.3"><h5>K.3.7.3 Search functions</h5></a>
 
@@ -29149,10 +29149,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 638 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note414">414)</a> Note that the strnlen_s function has no runtime-constraints. This lack of runtime-constraints
+<p><small><a name="note414" href="#note414">414)</a> Note that the strnlen_s function has no runtime-constraints. This lack of runtime-constraints
  along with the values returned for a null pointer or an unterminated string argument make
  strnlen_s useful in algorithms that gracefully handle such exceptional data.
-
+</small>
 
 <a name="K.3.8" href="#K.3.8"><h4>K.3.8 Date and time <time.h></h4></a>
 <p><!--para 1-->
@@ -29172,8 +29172,8 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  their normal rages.<sup><a href="#note415"><b>415)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note415">415)</a> The normal ranges are defined in <a href="#7.26.1">7.26.1</a>.
-
+<p><small><a name="note415" href="#note415">415)</a> The normal ranges are defined in <a href="#7.26.1">7.26.1</a>.
+</small>
 
 <a name="K.3.8.2" href="#K.3.8.2"><h5>K.3.8.2 Time conversion functions</h5></a>
 <p><!--para 1-->
@@ -29369,10 +29369,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  negative value if an output error, encoding error, or runtime-constraint violation occurred.
 
 <h6>footnotes</h6>
-<p><a name="note416">416)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note416" href="#note416">416)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.2" href="#K.3.9.1.2"><h5>K.3.9.1.2 The fwscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29414,7 +29414,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  than provided for, or even zero, in the event of an early matching failure.
 
 <h6>footnotes</h6>
-<p><a name="note417">417)</a> If the format is known at translation time, an implementation may issue a diagnostic for any argument
+<p><small><a name="note417" href="#note417">417)</a> If the format is known at translation time, an implementation may issue a diagnostic for any argument
  used to store the result from a c, s, or [ conversion specifier if that argument is not followed by an
  argument of a type compatible with rsize_t. A limited amount of checking may be done if even if
  the format is not known at translation time. For example, an implementation may issue a diagnostic
@@ -29424,7 +29424,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  using the hh length modifier, a length argument must follow the pointer argument. Another useful
  diagnostic could flag any non-pointer argument following format that did not have a type
  compatible with rsize_t.
-
+</small>
 
 <a name="K.3.9.1.3" href="#K.3.9.1.3"><h5>K.3.9.1.3 The snwprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29464,10 +29464,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  nonnegative and less than n.
 
 <h6>footnotes</h6>
-<p><a name="note418">418)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note418" href="#note418">418)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.4" href="#K.3.9.1.4"><h5>K.3.9.1.4 The swprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29508,10 +29508,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  violation occurred, swprintf_s returns zero.
 
 <h6>footnotes</h6>
-<p><a name="note419">419)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note419" href="#note419">419)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.5" href="#K.3.9.1.5"><h5>K.3.9.1.5 The swscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29574,10 +29574,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  negative value if an output error, encoding error, or runtime-constraint violation occurred.
 
 <h6>footnotes</h6>
-<p><a name="note420">420)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note420" href="#note420">420)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.7" href="#K.3.9.1.7"><h5>K.3.9.1.7 The vfwscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29615,9 +29615,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  than provided for, or even zero, in the event of an early matching failure.
 
 <h6>footnotes</h6>
-<p><a name="note421">421)</a> As the functions vfwscanf_s, vwscanf_s, and vswscanf_s invoke the va_arg macro, the
+<p><small><a name="note421" href="#note421">421)</a> As the functions vfwscanf_s, vwscanf_s, and vswscanf_s invoke the va_arg macro, the
  value of arg after the return is indeterminate.
-
+</small>
 
 <a name="K.3.9.1.8" href="#K.3.9.1.8"><h5>K.3.9.1.8 The vsnwprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29659,10 +29659,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  less than n.
 
 <h6>footnotes</h6>
-<p><a name="note422">422)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note422" href="#note422">422)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.9" href="#K.3.9.1.9"><h5>K.3.9.1.9 The vswprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29705,10 +29705,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  violation occurred, vswprintf_s returns zero.
 
 <h6>footnotes</h6>
-<p><a name="note423">423)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note423" href="#note423">423)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.10" href="#K.3.9.1.10"><h5>K.3.9.1.10 The vswscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29747,9 +29747,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  than provided for, or even zero, in the event of an early matching failure.
 
 <h6>footnotes</h6>
-<p><a name="note424">424)</a> As the functions vfwscanf_s, vwscanf_s, and vswscanf_s invoke the va_arg macro, the
+<p><small><a name="note424" href="#note424">424)</a> As the functions vfwscanf_s, vwscanf_s, and vswscanf_s invoke the va_arg macro, the
  value of arg after the return is indeterminate.
-
+</small>
 
 <a name="K.3.9.1.11" href="#K.3.9.1.11"><h5>K.3.9.1.11 The vwprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29784,10 +29784,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 651 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note425">425)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note425" href="#note425">425)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.12" href="#K.3.9.1.12"><h5>K.3.9.1.12 The vwscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29820,9 +29820,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  than provided for, or even zero, in the event of an early matching failure.
 
 <h6>footnotes</h6>
-<p><a name="note426">426)</a> As the functions vfwscanf_s, vwscanf_s, and vswscanf_s invoke the va_arg macro, the
+<p><small><a name="note426" href="#note426">426)</a> As the functions vfwscanf_s, vwscanf_s, and vswscanf_s invoke the va_arg macro, the
  value of arg after the return is indeterminate.
-
+</small>
 
 <a name="K.3.9.1.13" href="#K.3.9.1.13"><h5>K.3.9.1.13 The wprintf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29852,10 +29852,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  negative value if an output error, encoding error, or runtime-constraint violation occurred.
 
 <h6>footnotes</h6>
-<p><a name="note427">427)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
+<p><small><a name="note427" href="#note427">427)</a> It is not a runtime-constraint violation for the wide characters %n to appear in sequence in the wide
  string pointed at by format when those wide characters are not a interpreted as a %n specifier. For
  example, if the entire format string was L"%%n".
-
+</small>
 
 <a name="K.3.9.1.14" href="#K.3.9.1.14"><h5>K.3.9.1.14 The wscanf_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29925,13 +29925,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 654 indent 5-->
 
 <h6>footnotes</h6>
-<p><a name="note428">428)</a> This allows an implementation to copy wide characters from s2 to s1 while simultaneously checking
+<p><small><a name="note428" href="#note428">428)</a> This allows an implementation to copy wide characters from s2 to s1 while simultaneously checking
  if any of those wide characters are null. Such an approach might write a wide character to every
  element of s1 before discovering that the first element should be set to the null wide character.
-
-<p><a name="note429">429)</a> A zero return value implies that all of the requested wide characters from the string pointed to by s2
+</small>
+<p><small><a name="note429" href="#note429">429)</a> A zero return value implies that all of the requested wide characters from the string pointed to by s2
  fit within the array pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.9.2.1.2" href="#K.3.9.2.1.2"><h5>K.3.9.2.1.2 The wcsncpy_s function</h5></a>
 <h6>Synopsis</h6>
@@ -29993,13 +29993,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  
 
 <h6>footnotes</h6>
-<p><a name="note430">430)</a> This allows an implementation to copy wide characters from s2 to s1 while simultaneously checking
+<p><small><a name="note430" href="#note430">430)</a> This allows an implementation to copy wide characters from s2 to s1 while simultaneously checking
  if any of those wide characters are null. Such an approach might write a wide character to every
  element of s1 before discovering that the first element should be set to the null wide character.
-
-<p><a name="note431">431)</a> A zero return value implies that all of the requested wide characters from the string pointed to by s2
+</small>
+<p><small><a name="note431" href="#note431">431)</a> A zero return value implies that all of the requested wide characters from the string pointed to by s2
  fit within the array pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.9.2.1.3" href="#K.3.9.2.1.3"><h5>K.3.9.2.1.3 The wmemcpy_s function</h5></a>
 <h6>Synopsis</h6>
@@ -30097,15 +30097,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  Otherwise, a nonzero value is returned.
 
 <h6>footnotes</h6>
-<p><a name="note432">432)</a> Zero means that s1 was not null terminated upon entry to wcscat_s.
-
-<p><a name="note433">433)</a> This allows an implementation to append wide characters from s2 to s1 while simultaneously
+<p><small><a name="note432" href="#note432">432)</a> Zero means that s1 was not null terminated upon entry to wcscat_s.
+</small>
+<p><small><a name="note433" href="#note433">433)</a> This allows an implementation to append wide characters from s2 to s1 while simultaneously
  checking if any of those wide characters are null. Such an approach might write a wide character to
  every element of s1 before discovering that the first element should be set to the null wide character.
-
-<p><a name="note434">434)</a> A zero return value implies that all of the requested wide characters from the wide string pointed to by
+</small>
+<p><small><a name="note434" href="#note434">434)</a> A zero return value implies that all of the requested wide characters from the wide string pointed to by
  s2 were appended to the wide string pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.9.2.2.2" href="#K.3.9.2.2.2"><h5>K.3.9.2.2.2 The wcsncat_s function</h5></a>
 <h6>Synopsis</h6>
@@ -30177,15 +30177,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 659 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note435">435)</a> Zero means that s1 was not null terminated upon entry to wcsncat_s.
-
-<p><a name="note436">436)</a> This allows an implementation to append wide characters from s2 to s1 while simultaneously
+<p><small><a name="note435" href="#note435">435)</a> Zero means that s1 was not null terminated upon entry to wcsncat_s.
+</small>
+<p><small><a name="note436" href="#note436">436)</a> This allows an implementation to append wide characters from s2 to s1 while simultaneously
  checking if any of those wide characters are null. Such an approach might write a wide character to
  every element of s1 before discovering that the first element should be set to the null wide character.
-
-<p><a name="note437">437)</a> A zero return value implies that all of the requested wide characters from the wide string pointed to by
+</small>
+<p><small><a name="note437" href="#note437">437)</a> A zero return value implies that all of the requested wide characters from the wide string pointed to by
  s2 were appended to the wide string pointed to by s1 and that the result in s1 is null terminated.
-
+</small>
 
 <a name="K.3.9.2.3" href="#K.3.9.2.3"><h5>K.3.9.2.3 Wide string search functions</h5></a>
 
@@ -30287,10 +30287,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  maxsize wide characters of s shall be accessed by wcsnlen_s.
 
 <h6>footnotes</h6>
-<p><a name="note438">438)</a> Note that the wcsnlen_s function has no runtime-constraints. This lack of runtime-constraints
+<p><small><a name="note438" href="#note438">438)</a> Note that the wcsnlen_s function has no runtime-constraints. This lack of runtime-constraints
  along with the values returned for a null pointer or an unterminated wide string argument make
  wcsnlen_s useful in algorithms that gracefully handle such exceptional data.
-
+</small>
 
 <a name="K.3.9.3" href="#K.3.9.3"><h5>K.3.9.3 Extended multibyte/wide character conversion utilities</h5></a>
 
@@ -30413,11 +30413,11 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  encoding error occurred. Otherwise, a nonzero value is returned.
 
 <h6>footnotes</h6>
-<p><a name="note439">439)</a> Thus, the value of len is ignored if dst is a null pointer.
-
-<p><a name="note440">440)</a> This allows an implementation to attempt converting the multibyte string before discovering a
+<p><small><a name="note439" href="#note439">439)</a> Thus, the value of len is ignored if dst is a null pointer.
+</small>
+<p><small><a name="note440" href="#note440">440)</a> This allows an implementation to attempt converting the multibyte string before discovering a
  terminating null character did not occur where required.
-
+</small>
 
 <a name="K.3.9.3.2.2" href="#K.3.9.3.2.2"><h5>K.3.9.3.2.2 The wcsrtombs_s function</h5></a>
 <h6>Synopsis</h6>
@@ -30500,14 +30500,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
 <!--page 666 indent 4-->
 
 <h6>footnotes</h6>
-<p><a name="note441">441)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
+<p><small><a name="note441" href="#note441">441)</a> If conversion stops because a terminating null wide character has been reached, the bytes stored
  include those necessary to reach the initial shift state immediately before the null byte. However, if
  the conversion stops before a terminating null wide character has been reached, the result will be null
  terminated, but might not end in the initial shift state.
-
-<p><a name="note442">442)</a> When len is not less than dstmax, the implementation might fill the array before discovering a
+</small>
+<p><small><a name="note442" href="#note442">442)</a> When len is not less than dstmax, the implementation might fill the array before discovering a
  runtime-constraint violation.
-
+</small>
 
 <a name="L" href="#L"><h2>Annex L</h2></a>
 <pre>
@@ -30522,9 +30522,9 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
  specifications in this annex.<sup><a href="#note443"><b>443)</b></a></sup>
 
 <h6>footnotes</h6>
-<p><a name="note443">443)</a> Implementations that do not define __STDC_ANALYZABLE__ are not required to conform to these
+<p><small><a name="note443" href="#note443">443)</a> Implementations that do not define __STDC_ANALYZABLE__ are not required to conform to these
  specifications.
-
+</small>
 
 <a name="L.2" href="#L.2"><h3>L.2 Definitions</h3></a>