<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-notable-tags-16" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Notable CBOR Tags">Notable CBOR Tags</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-notable-tags-16"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2026" month="February" day="25"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 145?>

<t>The Concise Binary Object Representation (CBOR, RFC 8949) is a data
format whose design goals include the possibility of extremely small
code size, fairly small message size, and extensibility without the
need for version negotiation.</t>
      <t>In CBOR, one point of extensibility is the definition of CBOR tags.
RFC 8949's original edition, RFC 7049, defined a basic set of 16 tags as well
as a registry that can be used to contribute additional tag
definitions <xref target="IANA.cbor-tags"/>.
Since RFC 7049 was published, at the time of writing some 250
definitions of tags and ranges of tags have been added to that
registry.</t>
      <!-- TAG_REPORT_SQUASH_RANGES=1 tag-report.rb minus the 16 -->

<t>The present document provides a roadmap to a large subset of these tag
definitions.  Where applicable, it points to an IETF standards or
standard development document
that specifies the tag.  Where no such document exists, the intention
is to collect specification information from the sources of the
registrations.  After some more development, the present document is
intended to be useful as a reference document for the IANA
registrations of the CBOR tags the definitions of which have been
collected.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 172?>

<t>This is an individual submission to the CBOR working group of the
IETF, <eref target="https://datatracker.ietf.org/wg/cbor/about/">https://datatracker.ietf.org/wg/cbor/about/</eref>.
Discussion currently takes places on the github repository
<eref target="https://github.com/cabo/notable-tags">https://github.com/cabo/notable-tags</eref>.
If the CBOR WG believes this is a useful document, discussion is
likely to move to the CBOR WG mailing list and a github repository at
the CBOR WG github organization, <eref target="https://github.com/cbor-wg">https://github.com/cbor-wg</eref>.</t>
      <t>The current version is true work in progress; some of the sections
haven't been filled in yet, and in particular, permission has not been
obtained from all authors of registered tag definitions to copy over their text.</t>
    </note>
  </front>
  <middle>
    <?line 187?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(TO DO, expand on text from abstract here; move references here and
neuter them in the abstract as per <xref section="4.3" sectionFormat="of" target="RFC7322"/>.)</t>
      <t>The selection of the tags presented here is somewhat arbitrary;
considerations such as how wide the scope and area of application of a
tag definition is combine with an assessment how "ready to use" the
tag definition is (i.e., is the tag specification in a state where it
can be used).</t>
      <t>This document can only be a snapshot of a subset of the current registrations.
The most up to date set of registrations is always available in the
registry "<xref section="CBOR Tags" relative="#tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>.</t>
      <section anchor="the-cbor-tags-registry">
        <name>The CBOR Tags Registry</name>
        <t>CBOR tags are an extension point of CBOR, and that extension point is
managed through an IANA registry (<xref target="IANA.cbor-tags"/> as set up in Section <xref target="RFC8949" section="9.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>), not through publishing documents.</t>
        <t>Some tag ranges require a stable specification to be publicly
available under the "Specification Required" policy (Section <xref target="RFC8126" section="4.6" sectionFormat="bare"/> of RFC 8126 <xref target="BCP26"/>).
That stable availability can be provided by any suitable means, such
as a (specific revision of a) GitHub repository, a document published
by an SDO or other entity, or even by a specific revision of an
Internet-Draft, or an RFC if that happens to be in the pipeline.
(In the latter case, while the RFC is being developed, the allocation
will probably be made when that RFC still is in Internet-Draft state,
which is then referenced in the registry and is usually updated to the
RFC number when that is published.)</t>
        <t>An example for this is provided by <xref target="enumerated-alternative-data-items"/> of
the present document.
A few allocations were made for these tags (101, 121-127, 1280-1400)
that are now a permanent part of the CBOR Tags registry.
These allocations do reference revision –07 of the present
Internet-Draft, because that contains an explanation of what these
tags are supposed to be used for.
That document revision –07 is part of the permanent record of the IETF
and is not going away, so we are able to use it as a stable part of
the information provided with the allocation.
(In more recent revisions of the present document, some glue text was
updated and a clerical error in illustrative CDDL code was fixed;
eventually, there may be some incentive to update the registry entry
to a newer revision of the present document.)</t>
        <t>As with other stable specifications referenced this way, there is no
need for the present document to be a published RFC before the tags
become useful; i.e., the publication action that makes the tag numbers
available for wide use in interchange is the acceptance of the tags
into the IANA CBOR Tags registry.</t>
        <aside>
          <t>One example of an Internet-Draft-based specification document that
eventually did get published as an RFC is given by the CBOR Tags for
Time, Duration, and Period <xref target="RFC9581"/>.
These were originally registered around 2017 (under the original
policy for these registrations) with a reference to
<xref target="I-D.draft-bormann-cbor-time-tag-01"/>.
Over time, the document evolved into a WG document without a need to
update the reference.
The registration was finally updated to point to <xref target="RFC9581"/> when
that was published, which was also the time additional registries were
created for some of the inner workings of the time tags.</t>
        </aside>
      </section>
      <section anchor="terms">
        <name>Terminology</name>
        <t>The definitions of <xref target="STD94"/> apply.
Specifically: The term "byte" is used in its now customary sense as a synonym for
"octet"; "byte strings" are CBOR data items carrying a sequence of
zero or more (binary) bytes, while "text strings" are CBOR data items carrying a
sequence of zero or more Unicode scalar values (code points that can
be part of a string of Unicode characters), encoded in UTF-8 <xref target="STD63"/>.
Where bit arithmetic is explained, this document uses the notation
familiar from the programming language C (<xref target="C"/>, including C++14's <tt>0bnnn</tt>
binary literals <xref target="Cplusplus20"/>), except that superscript notation
(example for two to the power of 64: 2<sup>64</sup>) denotes exponentiation; in
the plain text version of this document, superscript notation is
rendered in paragraph text by C-incompatible surrogate notation as
seen in this example.
Ranges expressed using <tt>..</tt> are inclusive of the limits given.
<!-- , and in display math by a crude plain text representation. -->
Type names such as "int", "bigint" or "decfrac" are taken from
<xref section="D" sectionFormat="of" target="RFC8610"/>, the Concise Data Definition Language (CDDL).</t>
        <!-- [^cpa] -->

</section>
    </section>
    <section anchor="rfc-7049-original-cbor-specification">
      <name>RFC 7049 (original CBOR specification)</name>
      <t><xref target="RFC7049"/> defines a number of tags that are listed here for
convenience only.</t>
      <table anchor="origtags">
        <name>Tag numbers defined in RFC 7049</name>
        <thead>
          <tr>
            <th align="left">Tag number</th>
            <th align="left">Tag content</th>
            <th align="left">Short Description</th>
            <th align="left">Section of RFC 7049</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">UTF-8 string</td>
            <td align="left">Standard date/time string</td>
            <td align="left">2.4.1</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">multiple</td>
            <td align="left">Epoch-based date/time</td>
            <td align="left">2.4.1</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">byte string</td>
            <td align="left">Positive bignum</td>
            <td align="left">2.4.2</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">byte string</td>
            <td align="left">Negative bignum</td>
            <td align="left">2.4.2</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">array</td>
            <td align="left">Decimal fraction</td>
            <td align="left">2.4.3</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">array</td>
            <td align="left">Bigfloat</td>
            <td align="left">2.4.3</td>
          </tr>
          <tr>
            <td align="left">21</td>
            <td align="left">multiple</td>
            <td align="left">Expected conversion to base64url encoding</td>
            <td align="left">2.4.4.2</td>
          </tr>
          <tr>
            <td align="left">22</td>
            <td align="left">multiple</td>
            <td align="left">Expected conversion to base64 encoding</td>
            <td align="left">2.4.4.2</td>
          </tr>
          <tr>
            <td align="left">23</td>
            <td align="left">multiple</td>
            <td align="left">Expected conversion to base16 encoding</td>
            <td align="left">2.4.4.2</td>
          </tr>
          <tr>
            <td align="left">24</td>
            <td align="left">byte string</td>
            <td align="left">Encoded CBOR data item</td>
            <td align="left">2.4.4.1</td>
          </tr>
          <tr>
            <td align="left">32</td>
            <td align="left">UTF-8 string</td>
            <td align="left">URI</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">33</td>
            <td align="left">UTF-8 string</td>
            <td align="left">base64url</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">34</td>
            <td align="left">UTF-8 string</td>
            <td align="left">base64</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">35</td>
            <td align="left">UTF-8 string</td>
            <td align="left">Regular expression</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">36</td>
            <td align="left">UTF-8 string</td>
            <td align="left">MIME message</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">55799</td>
            <td align="left">multiple</td>
            <td align="left">Self-describe CBOR</td>
            <td align="left">2.4.5</td>
          </tr>
        </tbody>
      </table>
      <section anchor="related-tags">
        <name>Tags Related to Those Defined in RFC 7049</name>
        <t>Separately registered tags that are directly related to the tags
predefined in RFC 7049 include:</t>
        <ul spacing="normal">
          <li>
            <t>Tag 63, registered by this document (<xref target="iana"/>), is a parallel to tag 24, with
the single difference that its byte string tag content carries a
CBOR Sequence <xref target="RFC8742"/> instead of a single encoded CBOR data item.</t>
          </li>
          <li anchor="expected-tags">
            <t>Tag 108, registered by this document (<xref target="iana"/>), is
a parallel to tag 23, with the single difference that the
hexadecimal form uses lowercase instead of uppercase letters.  </t>
            <t><!-- {:aside} -->
            </t>
            <t><!-- This should be an aside, but xml2rfc's grammar doesn't allow -->
            </t>
            <t><!-- that as of 3.27.0. -->
            </t>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t>Note that tag 23 has a serialization that is one byte shorter than
  tag 108, so if all else is equal, tag 23 (and thus upper case
  hex) would be chosen as it is slightly more efficient than tag 108.
  However, designers of CBOR protocols that use one of these tags
  often have reason to prefer lowercase hex in the application they
  are trying to be compatible with, in which case 108 provides a
  solution that is only one byte more expensive.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li>
            <t>Tag 257, registered by Peter Occil with a specification in
<eref target="http://peteroupc.github.io/CBOR/binarymime.html">http://peteroupc.github.io/CBOR/binarymime.html</eref>, is a parallel to
tag 36, except that the tag content is a byte string, which
therefore can also carry binary MIME messages as per <xref target="RFC2045"/>.</t>
          </li>
          <li>
            <t>Tag 21065, having been registered by this document (<xref target="iana"/>), is a parallel to tag 35, with
the difference that its text string tag content carries an
I-Regexp regular expression <xref target="RFC9485"/> instead of a regexp of a
more unspecified flavor.
Companion tag 21066, having been registered by Joe Hildebrand with a
specification in
<eref target="https://github.com/hildjj/cbor-specs/blob/main/regexp.md">https://github.com/hildjj/cbor-specs/blob/main/regexp.md</eref>, is the
equivalent for JavaScript (ECMA262), but besides the regular
expression itself also can include the regular expression flags
as a separate item.</t>
          </li>
        </ul>
      </section>
      <section anchor="tag35">
        <name>Tags from RFC 7049 not listed in RFC 8949</name>
        <t>Appendix <xref target="RFC8949" section="G.3" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>
states:</t>
        <blockquote>
          <t>Tag 35 is not defined by this document; the registration based on the
   definition in RFC 7049 remains in place.</t>
        </blockquote>
        <t>The reason for this exclusion is that the definition of Tag 35 in
<xref section="2.4.4.3" sectionFormat="of" target="RFC7049"/>, leaves too much open to ensure interoperability:</t>
        <blockquote>
          <t>Tag 35 is for regular expressions in Perl Compatible Regular
  Expressions (PCRE) / JavaScript syntax [ECMA262].</t>
        </blockquote>
        <t>Not only are two partially incompatible specifications given for the
semantics, JavaScript regular expressions have also developed
significantly within the decade since JavaScript 5.1 (which was
referenced as "ECMA262" by <xref target="RFC7049"/>),
making it less reliable to assume that a producing application will
manage to stay within that 2011 subset.</t>
        <t>Nonetheless, the registration is in place, so it is available for
applications that simply want to mark a text string as being a regular
expression roughly of the PCRE/Javascript flavor families.
See also Tag 21065 and 21066 above.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security</name>
      <t>A number of CBOR tags are defined in security specifications that make
use of CBOR.</t>
      <section anchor="cose">
        <name>COSE</name>
        <t>CBOR Object Signing and Encryption (COSE) is defined in a number of RFCs.
<xref target="RFC8152"/> was the initial specification, set up the registries, and
populated them with an initial set of assignments.
A revision split this specification into the data
structure definitions (<xref target="RFC9052"/>), an Internet Standard <xref target="STD96"/>, and a
separate document defining the representation for the algorithms
employed <xref target="RFC9053"/>, which is expected to be updated more frequently
than the COSE format itself.
<xref target="RFC9054"/> added a separate set of algorithms for cryptographic hash
functions (Hash functions have been a component of some <xref target="RFC9053"/> combined
algorithms but weren't originally assigned separate codepoints themselves).
A revised COSE counter signature structure was defined in <xref target="RFC9338"/>, another part
of <xref target="STD96"/>; this also defines a tag for these.</t>
        <table anchor="cosetags">
          <name>Tag numbers defined in RFC9052, COSE, and RFC 9338</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">16</td>
              <td align="left">COSE_Encrypt0</td>
              <td align="left">COSE Single Recipient Encrypted Data Object</td>
            </tr>
            <tr>
              <td align="left">17</td>
              <td align="left">COSE_Mac0</td>
              <td align="left">COSE Mac w/o Recipients Object</td>
            </tr>
            <tr>
              <td align="left">18</td>
              <td align="left">COSE_Sign1</td>
              <td align="left">COSE Single Signer Data Object</td>
            </tr>
            <tr>
              <td align="left">19</td>
              <td align="left">COSE_Countersignature</td>
              <td align="left">COSE standalone V2 countersignature (<xref target="RFC9338"/>)</td>
            </tr>
            <tr>
              <td align="left">96</td>
              <td align="left">COSE_Encrypt</td>
              <td align="left">COSE Encrypted Data Object</td>
            </tr>
            <tr>
              <td align="left">97</td>
              <td align="left">COSE_Mac</td>
              <td align="left">COSE MACed Data Object</td>
            </tr>
            <tr>
              <td align="left">98</td>
              <td align="left">COSE_Sign</td>
              <td align="left">COSE Signed Data Object</td>
            </tr>
          </tbody>
        </table>
        <section anchor="hashtags">
          <name>Tags for Bare Hash Values</name>
          <t><xref target="RFC9054"/> does not define CBOR tags for cryptographic Hash values; it rightly notes
that Hash values are often used in structures that are
application-specific and should be defined with those applications.</t>
          <t>However, there are many cases where just a bare hash value is
required, and for these cases common tags are useful.
In one use case, these tags occur in a data structure that is
specified to indicate elision by using one of these tags as an
alternative to some other data structure.
To enable agility, tags need to indicate the hash function used,
preferably using the COSE algorithms registry as populated by
<xref target="RFC9054"/>.</t>
          <aside>
            <t>(Note that there is another registry, "<xref section="Named Information Hash Algorithm Registry" relative="#hash-alg" sectionFormat="bare" target="IANA.named-information"/>"
<xref target="IANA.named-information"/>, that also defines numbers for some hash algorithms.
We are not using this registry here, as more recent entries seem to
have stopped assigning numbers.
If desired, tags that employ this registry could be added later.)</t>
          </aside>
          <t>The codepoint range available for the COSE algorithms registry is
large, but the most likely range to be used for standard Hash
functions is "Integer values between -256 and 255", which have the
registry policy "Standards Action With Expert Review" (<xref section="16.4" sectionFormat="of" target="RFC8152"/>, Registry "<xref section="COSE Algorithms" relative="#algorithms" sectionFormat="bare" target="IANA.cose"/>" <xref target="IANA.cose"/>).</t>
          <t>To this end, the present document registers a range of 512 tags from
18300 to 18811 (inclusive), paralleling the algorithm identifier
range of <tt>-256 .. 255</tt> (inclusive).
The tag number for COSE algorithm number N is then defined to be
<tt>18556+N</tt>, except for <tt>N = 0</tt> (see below).
The tag value is a CBOR byte string, with the exception <tt>N = 0</tt>.</t>
          <t>For example, in <xref target="IANA.cose"/> SHA-256 has the COSE algorithm identifier
<tt>-16</tt>.
This is in the range <tt>-256 .. 255</tt> (inclusive range).
Therefore, tag 18540 (<tt>= 18556 + (-16)</tt>) is the tag for a byte string
containing a SHA-256 hash.</t>
          <t>As a special case, there is one exception: Tag 18556 (<tt>= 18556 + 0</tt>)
stands for the combination of a an explicit numeric COSE algorithm
identifier with a hash value in an array, analogous to the use of
<tt>COSE_CertHash</tt> in <xref target="RFC9360"/>:</t>
          <figure anchor="hashcddl">
            <name>Generic CDDL for Tags for Bare Hash Values</name>
            <sourcecode type="cddl"><![CDATA[
Standard_COSE_Hash<alg, value> =
    #6.<hashmiddle .plus (alg .within directhash)>(value)
General_COSE_Hash<alg, value> = #6.<hashmiddle>([
    hashAlg: alg .within (int .ne directhash  / tstr),
    hashValue: value .within bstr ])
hashmiddle = 18556
directhash = (-256 .. -1) / (1 .. 255)
]]></sourcecode>
          </figure>
          <t>An example for the SHA-256 hash of "hello world" in CBOR diagnostic
notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
18540(
 h'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9')
]]></sourcecode>
          <t>The same in CBOR pretty printed hex:</t>
          <sourcecode type="cbor-pretty"><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

d9 486c                                 # tag(18540)
   58 20                                # bytes(32)
      \
     b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
]]></sourcecode>
          <t>As none has been registered, no real example can be given for a hash
algorithm with an identifier not in the standard range, but if
<tt>-4711</tt> were such an identifier, a hash with an explicit algorithm
number could look like:</t>
          <sourcecode type="cbor-diag"><![CDATA[
18556([-4711, h'1234123412341234123412341234123412341234'])
]]></sourcecode>
          <t>Note that not all tags assigned in this section do parallel an
algorithm that is a cryptographic hash algorithm.
Where this is not the case, there currently is no defined semantics
for this tag, but the tags are assigned anyway.
The semantics of tags that parallel algorithm assignments other than
for cryptographic hash functions could be defined by a future version
of this specification.</t>
          <t>Note also that the cryptographic hashes in the content of the tag are
not protected; any further protection (confidentiality, integrity)
needs to be provided in the surrounding data structure, storage
system, or communication channel.</t>
        </section>
      </section>
      <section anchor="rfc-8392-cwt">
        <name>RFC 8392 (CWT)</name>
        <t><xref target="RFC8392"/> defines the CBOR Web Token (CWT), making use of COSE to
define a CBOR variant of the JOSE Web Token (JWT), <xref target="RFC7519"/>, a
standardized security token that has found use in the area of web
applications, but is not technically limited to those.</t>
        <table anchor="cwttags">
          <name>Tag number defined for RFC 8392 CBOR Web Token (CWT)</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">61</td>
              <td align="left">CBOR Web Token (CWT)</td>
              <td align="left">CBOR Web Token (CWT)</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="cbor-based-representation-formats">
      <name>CBOR-based Representation Formats</name>
      <t>Representation formats can be built on top of CBOR.</t>
      <section anchor="yang-cbor">
        <name>YANG-CBOR</name>
        <t>YANG <xref target="RFC7950"/> is a data modeling language originally designed in
the context of the Network Configuration Protocol (NETCONF)
<xref target="RFC6241"/>, now widely used for modeling management and
configuration information.  <xref target="RFC7950"/> defines an XML-based
representation format, and <xref target="RFC7951"/> defines a JSON-based
<xref target="RFC8259"/> representation format for YANG.</t>
        <t>YANG-CBOR <xref target="RFC9254"/> is a representation format for
YANG data in CBOR.</t>
        <table anchor="yangtags">
          <name>Tag numbers defined for YANG-CBOR</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
              <th align="left">Section of YANG-CBOR</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">43</td>
              <td align="left">byte string</td>
              <td align="left">YANG bits datatype</td>
              <td align="left">6.7</td>
            </tr>
            <tr>
              <td align="left">44</td>
              <td align="left">unsigned integer</td>
              <td align="left">YANG enumeration datatype</td>
              <td align="left">6.6</td>
            </tr>
            <tr>
              <td align="left">45</td>
              <td align="left">unsigned integer or text string</td>
              <td align="left">YANG identityref datatype</td>
              <td align="left">6.10</td>
            </tr>
            <tr>
              <td align="left">46</td>
              <td align="left">unsigned integer or text string or array</td>
              <td align="left">YANG instance-identifier datatype</td>
              <td align="left">6.13</td>
            </tr>
            <tr>
              <td align="left">47</td>
              <td align="left">unsigned integer</td>
              <td align="left">YANG Schema Item iDentifier (sid)</td>
              <td align="left">3.2</td>
            </tr>
          </tbody>
        </table>
        <t><xref target="I-D.bormann-cbor-yang-standin"/> proposes to employ additional tags to enable the use of
efficient binary encodings for certain frequently used YANG data types
<xref target="RFC9911"/>.</t>
      </section>
    </section>
    <section anchor="protocols">
      <name>Protocols</name>
      <t>Protocols may want to allocate CBOR tag numbers to identify specific
protocol elements.</t>
      <section anchor="dots">
        <name>DOTS</name>
        <t>DDoS Open Threat Signaling (DOTS) defines tag number 271 for the DOTS
signal channel object in <xref target="RFC9132"/>.</t>
      </section>
      <section anchor="rains">
        <name>RAINS</name>
        <t>As an example for how experimental protocols can make use of CBOR tag
definitions, the RAINS (Another Internet Naming Service) Protocol
Specification defines tag number 15309736 for a RAINS Message
<xref target="I-D.trammell-rains-protocol"/>.
(The seemingly random tag number was chosen so that, when represented
as an encoded CBOR tag
argument, it contains the Unicode character <u format="lit-num">雨</u>
in UTF-8, which represents rain in a number of languages.)</t>
      </section>
    </section>
    <section anchor="datatypes">
      <name>Datatypes</name>
      <section anchor="advanced-arithmetic">
        <name>Advanced arithmetic</name>
        <t>General information about the representation of numbers in CBOR can be
found in <xref target="STD94"/> as well as <xref target="I-D.bormann-cbor-numbers"/>.</t>
        <t>A number of tags have been registered for arithmetic representations
beyond those built into CBOR and defined by tags in <xref target="RFC7049"/>.
These are all documented under <tt>http://peteroupc.github.io/CBOR/</tt>; the
last pathname component for the URL is given in the column "Reference"
of <xref target="arithtags"/>.</t>
        <table anchor="arithtags">
          <name>Tags for advanced arithmetic</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">30</td>
              <td align="left">array</td>
              <td align="left">Rational number</td>
              <td align="left">rational.html</td>
            </tr>
            <tr>
              <td align="left">264</td>
              <td align="left">array</td>
              <td align="left">Decimal fraction with arbitrary  exponent</td>
              <td align="left">bigfrac.html</td>
            </tr>
            <tr>
              <td align="left">265</td>
              <td align="left">array</td>
              <td align="left">Bigfloat with arbitrary exponent</td>
              <td align="left">bigfrac.html</td>
            </tr>
            <tr>
              <td align="left">268</td>
              <td align="left">array</td>
              <td align="left">Extended decimal fraction</td>
              <td align="left">extended.html</td>
            </tr>
            <tr>
              <td align="left">269</td>
              <td align="left">array</td>
              <td align="left">Extended bigfloat</td>
              <td align="left">extended.html</td>
            </tr>
            <tr>
              <td align="left">270</td>
              <td align="left">array</td>
              <td align="left">Extended rational number</td>
              <td align="left">extended.html</td>
            </tr>
          </tbody>
        </table>
        <t>CBOR's basic generic data model (Section <xref target="RFC8949" section="2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>) has a number
system with limited-range integers (major types 0 and 1:
-2<sup>64</sup>..2<sup>64</sup>-1) and floating point numbers that
cover binary16, binary32, and binary64 (including non-finites) from
<xref target="IEEE754"/>.
With the tags defined with <xref target="RFC7049"/>, the extended generic data model
(Section <xref target="RFC8949" section="2.1" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>) adds unlimited-range integers (tag numbers 2
and 3, "bigint" in CDDL) as well as floating point values using the bases
2 (tag number 5, "bigfloat") and 10 (tag number 4, "decfrac").</t>
        <t>This pre-defined number system has a number of limitations that are
addressed in three of the tags discussed here:</t>
        <ul spacing="normal">
          <li>
            <t>Tag number 30 allows the representation of rational numbers as a
ratio of two integers: a numerator (usually written as the top part
of a fraction), and a denominator (the bottom part), where both
integers can be limited-range basic and unlimited-range integers.
The mathematical value of a rational number is the numerator divided
by the denominator.
This tag can express all numbers that the extended generic data
model of <xref target="RFC7049"/> can express, except for non-finites <xref target="IEEE754"/>; it
also can express rational numbers that cannot be expressed with
denominators that are a power of 2 or a power of 10.  </t>
            <t>
For example, the rational number 1/3 is encoded:  </t>
            <sourcecode type="cbor-pretty"><![CDATA[
  d8 1e      ---- Tag 30
     82      ---- Array length 2
        01   ---- 1
        03   ---- 3
]]></sourcecode>
            <t>
Many programming languages have built-in support for rational
numbers or support for them is included in their standard libraries;
tag number 30 is a way for these platforms to interchange these
rational numbers in CBOR.</t>
          </li>
          <li>
            <t>Tag numbers 4 and 5 are limited in the range of the (base 10 or base
2) exponents by the limited-range integers in the basic generic data
model.  Tag numbers 264 and 265 are exactly equivalent to 4 and 5,
respectively, but also allow unlimited-range integers as exponents.
While applications for floating point numbers with exponents outside
the CBOR basic integer range are limited, tags 264 and 265 allow
unlimited roundtripping with other formats that allow very large or
very small exponents, such as those JSON <xref target="RFC8259"/> can provide if the
limitations of I-JSON <xref target="RFC7493"/> do not apply.</t>
          </li>
        </ul>
        <t>The tag numbers 268..270 extend these tags further by providing a way
to express non-finites within a tag with this number.  This does not
increase the expressiveness of the data model (the non-finites can
already be expressed using major type 7 floating point numbers), but
does allow both finite and non-finite values to carry the same tag.
In most applications, a choice that includes some of the three tags
30, 264, 265 for finite values and major type 7 floating point values
for non-finites (as well as possibly other parts of the CBOR number
system) will be the preferred solution.</t>
        <t>This document suggests using the CDDL typenames defined in
<xref target="arith-tags-cddl"/> for the three most useful tag numbers in this section.</t>
        <figure anchor="arith-tags-cddl">
          <name>CDDL for extended arithmetic tags</name>
          <sourcecode type="cddl"><![CDATA[
rational = #6.30([numerator: integer, denominator: integer .ne 0])
rational_of<N,D> = #6.30([numerator: N, denominator: D])
; the value 1/3 can be notated as rational_of<1, 3>

extended_decfrac = #6.264([e10: integer, m: integer])
extended_bigfloat = #6.265([e2: integer, m: integer])
]]></sourcecode>
        </figure>
      </section>
      <section anchor="variants-of-undefined">
        <name>Variants of undefined</name>
        <t><tt>https://github.com/svaarala/cbor-specs/blob/master/cbor-absent-tag.rst</tt>
defines tag 31 to be applied to the CBOR value Undefined (0xf7),
slightly modifying its semantics to stand for an absent value in a
CBOR Array.</t>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
      </section>
      <section anchor="typed-and-homogeneous-arrays">
        <name>Typed and Homogeneous Arrays</name>
        <t><xref target="RFC8746"/> defines tags for various kinds of arrays.  A summary is
reproduced in <xref target="arraytags"/>.</t>
        <table anchor="arraytags">
          <name>Tag numbers defined for Arrays</name>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">64</td>
              <td align="left">byte string</td>
              <td align="left">uint8 Typed Array</td>
            </tr>
            <tr>
              <td align="left">65</td>
              <td align="left">byte string</td>
              <td align="left">uint16, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">66</td>
              <td align="left">byte string</td>
              <td align="left">uint32, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">67</td>
              <td align="left">byte string</td>
              <td align="left">uint64, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">68</td>
              <td align="left">byte string</td>
              <td align="left">uint8 Typed Array, clamped arithmetic</td>
            </tr>
            <tr>
              <td align="left">69</td>
              <td align="left">byte string</td>
              <td align="left">uint16, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">70</td>
              <td align="left">byte string</td>
              <td align="left">uint32, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">71</td>
              <td align="left">byte string</td>
              <td align="left">uint64, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">72</td>
              <td align="left">byte string</td>
              <td align="left">sint8 Typed Array</td>
            </tr>
            <tr>
              <td align="left">73</td>
              <td align="left">byte string</td>
              <td align="left">sint16, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">74</td>
              <td align="left">byte string</td>
              <td align="left">sint32, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">75</td>
              <td align="left">byte string</td>
              <td align="left">sint64, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">76</td>
              <td align="left">byte string</td>
              <td align="left">(reserved)</td>
            </tr>
            <tr>
              <td align="left">77</td>
              <td align="left">byte string</td>
              <td align="left">sint16, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">78</td>
              <td align="left">byte string</td>
              <td align="left">sint32, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">79</td>
              <td align="left">byte string</td>
              <td align="left">sint64, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">80</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary16, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">81</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary32, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">82</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary64, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">83</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary128, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">84</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary16, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">85</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary32, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">86</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary64, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">87</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary128, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">40</td>
              <td align="left">array of two arrays*</td>
              <td align="left">Multi-dimensional Array, row-major order</td>
            </tr>
            <tr>
              <td align="left">1040</td>
              <td align="left">array of two arrays*</td>
              <td align="left">Multi-dimensional Array, column-major order</td>
            </tr>
            <tr>
              <td align="left">41</td>
              <td align="left">array</td>
              <td align="left">Homogeneous Array</td>
            </tr>
          </tbody>
        </table>
        <!--  cols='r l l' -->

</section>
    </section>
    <section anchor="domain-specific">
      <name>Domain-Specific</name>
      <t>(TO DO: Obtain permission to copy the definitions here; explain how
tags 52 and 54 essentially obsolete 260/261.)</t>
      <table anchor="tab-domain-specific">
        <name>Select Domain-Specific Tags</name>
        <thead>
          <tr>
            <th align="left">Tag number</th>
            <th align="left">Tag content</th>
            <th align="left">Short Description</th>
            <th align="left">Reference</th>
            <th align="left">Author</th>
            <th align="left"> </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">37</td>
            <td align="left">byte string</td>
            <td align="left">Binary UUID (<xref section="4" sectionFormat="comma" target="RFC9562"/>)</td>
            <td align="left">https://github.com/lucas-clemente/cbor-specs/blob/master/uuid.md</td>
            <td align="left">Lucas_Clemente</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">48</td>
            <td align="left">byte string</td>
            <td align="left">IEEE MAC Address</td>
            <td align="left">
              <xref target="RFC9542"/></td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">52</td>
            <td align="left">byte string or array</td>
            <td align="left">IPv4, [prefixlen,IPv4], [IPv4,prefixpart]</td>
            <td align="left">
              <xref target="RFC9164"/></td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">54</td>
            <td align="left">byte string or array</td>
            <td align="left">IPv6, [prefixlen,IPv6], [IPv6,prefixpart]</td>
            <td align="left">
              <xref target="RFC9164"/></td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">257</td>
            <td align="left">byte string</td>
            <td align="left">Binary MIME message</td>
            <td align="left">http://peteroupc.github.io/CBOR/binarymime.html</td>
            <td align="left">Peter Occil</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">260</td>
            <td align="left">byte string</td>
            <td align="left">Network Address (IPv4 or IPv6 or MAC Address)</td>
            <td align="left">http://www.employees.org/~ravir/cbor-network.txt</td>
            <td align="left">Ravi Raju</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">261</td>
            <td align="left">map</td>
            <td align="left">Network Address Prefix (IPv4 or IPv6 Address + Mask Length)</td>
            <td align="left">https://github.com/toravir/CBOR-Tag-Specs/blob/master/networkPrefix.md</td>
            <td align="left">Ravi Raju</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">263</td>
            <td align="left">byte string</td>
            <td align="left">Hexadecimal string</td>
            <td align="left">https://github.com/toravir/CBOR-Tag-Specs/blob/master/hexString.md</td>
            <td align="left">Ravi Raju</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">266</td>
            <td align="left">text string</td>
            <td align="left">Internationalized resource identifier (IRI)</td>
            <td align="left">https://peteroupc.github.io/CBOR/iri.html</td>
            <td align="left">Peter Occil</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">267</td>
            <td align="left">text string</td>
            <td align="left">Internationalized resource identifier reference (IRI reference)</td>
            <td align="left">https://peteroupc.github.io/CBOR/iri.html</td>
            <td align="left">Peter Occil</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">1048</td>
            <td align="left">byte string</td>
            <td align="left">IEEE OUI/CID</td>
            <td align="left">
              <xref target="RFC9542"/></td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
      <t>Notes:</t>
      <ul spacing="normal">
        <li>
          <t>In the registration for Tag 37, the reference for UUID has been
updated from <xref target="RFC4122"/> to <xref target="RFC9562"/>.
The new RFC has a somewhat different internal structure; the
definition of the layout of a binary UUID is now distributed over
<xref section="5" sectionFormat="of" target="RFC9562"/>.</t>
        </li>
        <li>
          <t>Tags 48, 52, and 54 are recommended for new designs that need to
represent MAC addresses, IP addresses, and IP address prefixes; they
essentially replace tags 260 and 261, which continue to be available
for their existing applications.</t>
        </li>
        <li>
          <t>Tag 263 describes a different kind of Hexadecimal string
(sequence of hex digit pairs, same layout as tag 23) from the
hex-string defined by the YANG data type <tt>hex-string</tt> (sequence of hex
digit pairs separated by colons, <xref section="3" sectionFormat="of" target="RFC9911"/>).</t>
        </li>
      </ul>
      <section anchor="human-readable-text">
        <name>Human-readable Text</name>
        <table anchor="tab-text">
          <name>Select Tags for Human-readable Text</name>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">38</td>
              <td align="left">array</td>
              <td align="left">Language-tagged string</td>
              <td align="left">
                <xref section="A" sectionFormat="of" target="RFC9290"/></td>
            </tr>
          </tbody>
        </table>
        <t>Tag 38 was originally registered by Peter Occil in
<eref target="http://peteroupc.github.io/CBOR/langtags.html">http://peteroupc.github.io/CBOR/langtags.html</eref>; it has since been
adopted and extended in <xref section="A" sectionFormat="of" target="RFC9290"/>, where a detailed
definition of the tag and a few simple examples for its use are
provided.</t>
        <t>The problem that this tag was designed to solve is that text strings
often need additional information to be properly presented to a human.
While Unicode (and the UTF-8 form of Unicode used in CBOR) define the
characters, additional information about the human language in use
and the writing direction appropriate for the text given are often
required.</t>
        <t>The need to provide language information with text has been well-known
for a while and led to a common form for this information, the
language tag, defined in <xref target="BCP47"/>.</t>
        <t>Less well-known is the need to provide separate directionality
information as well.
The need for this information is demonstrated in <xref target="W3C-STRINGS-BIDI"/>,
which points out that it is "actually a bad idea to rely on language
information to apply direction" and points out further reference
information on this.
<xref target="W3C-BIDI-USE-CASES"/> shows more examples for language tags and
directionality, while <xref target="W3C-UBA-BASICS"/> provides an introduction to the
way browsers, where "the order of characters in memory (logical) is
not the same as the order in which they are displayed (visual)",
"produce the correct order at the time of display" (Unicode
Bidirectional Algorithm).</t>
        <t>Tag 38 meets the requirements of its specific application in
<xref target="RFC9290"/>, which could be summarized as: Supplying the necessary
information to present isolated, linear, comparatively small pieces of
human-readable text.
It neither addresses more complex requirements of specific languages
such as <xref target="W3C-SIMPLE-RUBY"/>, nor does it address requirements for more
complex structure in texts such as emphasis, lists, or tables.
These more complex requirements are typically met by specific media
types such as HTML <xref target="HTML"/>.</t>
      </section>
      <section anchor="extended-time-formats">
        <name>Extended Time Formats</name>
        <t>Additional tag definitions have been provided for date and time values.</t>
        <table anchor="timetags">
          <name>Tag numbers for date and time</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">100</td>
              <td align="left">integer</td>
              <td align="left">date in number of days since epoch</td>
              <td align="left">
                <xref target="RFC8943"/></td>
            </tr>
            <tr>
              <td align="right">1004</td>
              <td align="left">text string</td>
              <td align="left">RFC 3339 full-date string</td>
              <td align="left">
                <xref target="RFC8943"/></td>
            </tr>
            <tr>
              <td align="right">1001</td>
              <td align="left">map</td>
              <td align="left">extended time</td>
              <td align="left">
                <xref target="RFC9581"/></td>
            </tr>
            <tr>
              <td align="right">1002</td>
              <td align="left">map</td>
              <td align="left">duration</td>
              <td align="left">
                <xref target="RFC9581"/></td>
            </tr>
            <tr>
              <td align="right">1003</td>
              <td align="left">map</td>
              <td align="left">period</td>
              <td align="left">
                <xref target="RFC9581"/></td>
            </tr>
          </tbody>
        </table>
        <t>Note that tags 100 and 1004 are for calendar dates that are not
anchored to a specific time zone; they are meant to specify calendar
dates as perceived by humans, e.g. for use in personal identification
documents.
Converting such a calendar date into a specific point in time needs the
addition of a time-of-day (for which a CBOR tag is outstanding) and
timezone information (also outstanding).  Alternatively, a calendar
date plus timezone information can be converted into a time period
(range of time values given by the starting and the ending time); note
that these time periods are not always exactly 24 h (86400 s) long.</t>
        <t><xref target="RFC8943"/> does not suggest CDDL <xref target="RFC8610"/> type names for the two tags.
We suggest copying the definitions in <xref target="time-tags-cddl"/> into
application-specific CDDL as needed.</t>
        <figure anchor="time-tags-cddl">
          <name>CDDL for calendar date tags (RFC8943)</name>
          <sourcecode type="cddl"><![CDATA[
caldate = #6.100(int); calendar date as # of days from 1970-01-01
tcaldate = #6.1004(tstr); calendar date as RFC 3339 full-date string
]]></sourcecode>
        </figure>
        <t>Tag 1001 extends tag 1 by additional information (such as picosecond
resolution) and allows the use of Decimal and Bigfloat numbers for the
time.</t>
      </section>
    </section>
    <section anchor="platform-oriented">
      <name>Platform-oriented</name>
      <section anchor="perl">
        <name>Perl</name>
        <t>(These are actually not as Perl-specific as the title of this section
suggests.  See also the penultimate paragraph of Section <xref target="RFC8949" section="3.4" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>.)</t>
        <t>These are all documented under <tt>http://cbor.schmorp.de/</tt>; the
last pathname component is given in <xref target="perltags"/>.</t>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
        <table anchor="perltags">
          <name>Tag numbers that aid the Perl platform</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">256</td>
              <td align="left">multiple</td>
              <td align="left">mark value as having string references</td>
              <td align="left">stringref</td>
            </tr>
            <tr>
              <td align="right">25</td>
              <td align="left">unsigned integer</td>
              <td align="left">reference the nth previously seen string</td>
              <td align="left">stringref</td>
            </tr>
            <tr>
              <td align="right">26</td>
              <td align="left">array</td>
              <td align="left">Serialized Perl object with classname and constructor arguments</td>
              <td align="left">perl-object</td>
            </tr>
            <tr>
              <td align="right">27</td>
              <td align="left">array</td>
              <td align="left">Serialized language-independent object with type name and constructor arguments</td>
              <td align="left">generic-object</td>
            </tr>
            <tr>
              <td align="right">28</td>
              <td align="left">multiple</td>
              <td align="left">mark value as (potentially) shared</td>
              <td align="left">value-sharing</td>
            </tr>
            <tr>
              <td align="right">29</td>
              <td align="left">unsigned integer</td>
              <td align="left">reference nth marked value</td>
              <td align="left">value-sharing</td>
            </tr>
            <tr>
              <td align="right">22098</td>
              <td align="left">multiple</td>
              <td align="left">hint that indicates an additional level of indirection</td>
              <td align="left">indirection</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="json">
        <name>JSON</name>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
        <t>Tag number 262 has been registered to identify byte strings that carry embedded
JSON text
(<tt>https://github.com/toravir/CBOR-Tag-Specs/blob/master/embeddedJSON.md</tt>).
This is an analog to tag 24 for embedded Encoded CBOR Data Items.</t>
        <t>Tag number 275 can be used to identify maps that contain keys that are
all of type Text String, as they would occur in JSON
(<tt>https://github.com/ecorm/cbor-tag-text-key-map</tt>).</t>
      </section>
      <section anchor="weird-text-encodings">
        <name>Weird text encodings</name>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
        <t>Some variants of UTF-8 are in use in specific areas of application.
Tags have been registered to be able to carry around strings
identified as to which of these
variants is used, in case they are not also valid UTF-8 and can therefore not
be represented as a CBOR text string
(<tt>https://github.com/svaarala/cbor-specs/blob/master/cbor-nonutf8-string-tags.rst</tt>).</t>
        <table anchor="weirdtags">
          <name>Tag numbers for UTF-8 variants</name>
          <thead>
            <tr>
              <th align="right">Tag Number</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">272</td>
              <td align="left">byte string</td>
              <td align="left">Non-UTF-8 CESU-8 string</td>
            </tr>
            <tr>
              <td align="right">273</td>
              <td align="left">byte string</td>
              <td align="left">Non-UTF-8 WTF-8 string</td>
            </tr>
            <tr>
              <td align="right">274</td>
              <td align="left">byte string</td>
              <td align="left">Non-UTF-8 MUTF-8 string</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="application-specific">
      <name>Application-specific</name>
      <t>(TO DO: Obtain permission to copy the definitions here.)</t>
      <table anchor="tab-apptags">
        <name>Application-specific Tags</name>
        <thead>
          <tr>
            <th align="right">Tag number</th>
            <th align="left">Tag content</th>
            <th align="left">Short Description</th>
            <th align="left">Reference</th>
            <th align="left">Author</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">39</td>
            <td align="left">multiple</td>
            <td align="left">Identifier</td>
            <td align="left">
              <eref target="https://github.com/lucas-clemente/cbor-specs/blob/master/id.md">https://github.com/lucas-clemente/cbor-specs/blob/master/id.md</eref></td>
            <td align="left">Lucas Clemente</td>
          </tr>
          <tr>
            <td align="right">42</td>
            <td align="left">byte string</td>
            <td align="left">IPLD content identifier</td>
            <td align="left">
              <eref target="https://github.com/ipld/cid-cbor/">https://github.com/ipld/cid-cbor/</eref></td>
            <td align="left">Volker Mische</td>
          </tr>
          <tr>
            <td align="right">103</td>
            <td align="left">array</td>
            <td align="left">Geographic Coordinates</td>
            <td align="left">
              <eref target="https://github.com/allthingstalk/cbor/blob/master/CBOR-Tag103-Geographic-Coordinates.md">https://github.com/allthingstalk/cbor/blob/master/CBOR-Tag103-Geographic-Coordinates.md</eref></td>
            <td align="left">Danilo Vidovic</td>
          </tr>
          <tr>
            <td align="right">104</td>
            <td align="left">multiple</td>
            <td align="left">Geographic Coordinate Reference System  WKT or EPSG number</td>
            <td align="left">
              <xref target="I-D.clarke-cbor-crs"/></td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="right">120</td>
            <td align="left">multiple</td>
            <td align="left">Internet of Things Data Point</td>
            <td align="left">
              <eref target="https://github.com/allthingstalk/cbor/blob/master/CBOR-Tag120-Internet-of-Things-Data-Points.md">https://github.com/allthingstalk/cbor/blob/master/CBOR-Tag120-Internet-of-Things-Data-Points.md</eref></td>
            <td align="left">Danilo Vidovic</td>
          </tr>
          <tr>
            <td align="right">258</td>
            <td align="left">array</td>
            <td align="left">Mathematical finite set</td>
            <td align="left">
              <eref target="https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md">https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md</eref></td>
            <td align="left">Alfredo Di Napoli</td>
          </tr>
          <tr>
            <td align="right">259</td>
            <td align="left">map</td>
            <td align="left">Map datatype with key-value operations (e.g. <tt>.get()</tt>/<tt>.set()</tt>/<tt>.delete()</tt>)</td>
            <td align="left">
              <eref target="https://github.com/shanewholloway/js-cbor-codec/blob/master/docs/CBOR-259-spec--explicit-maps.md">https://github.com/shanewholloway/js-cbor-codec/blob/master/docs/CBOR-259-spec--explicit-maps.md</eref></td>
            <td align="left">Shane Holloway</td>
          </tr>
        </tbody>
      </table>
      <section anchor="enumerated-alternative-data-items">
        <name>Enumerated Alternative Data Items</name>
        <t>(Original Text for this section was contributed by Duncan Coutts and
Michael Peyton Jones; all errors are the author's.)</t>
        <t>A set of CBOR tag numbers has been allocated (<xref target="iana"/>) for
encoding data composed of enumerated alternatives:</t>
        <table anchor="tab-tag-enum">
          <name>Tags for Enumerated Alternative Data Items</name>
          <thead>
            <tr>
              <th align="right">Tags</th>
              <th align="left">Data Item</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">121..127</td>
              <td align="left">any</td>
              <td align="left">alternatives 0..6, 1+1 encoding</td>
            </tr>
            <tr>
              <td align="right">1280..1400</td>
              <td align="left">any</td>
              <td align="left">alternatives 7..127, 1+2 encoding</td>
            </tr>
            <tr>
              <td align="right">101</td>
              <td align="left">array [uint, any]</td>
              <td align="left">alternatives as given by the uint + 128</td>
            </tr>
          </tbody>
        </table>
        <t>The tags defined in this section are for encoding data that can be
in one of a number of different enumerated forms.</t>
        <t>For example data representing the result of some action might be either
a failure with some failure detail, or a success with some result. In
this example there are two cases, the failure case and the success case,
and we can enumerate them as 0 and 1.</t>
        <t>In general the number of alternatives, and what data is expected in each
alternative case is entirely application dependent.</t>
        <t>The tags defined in this specification allow the encoding of any number
of alternatives, but provide compact encoding for the common cases of
low numbers of alternatives:</t>
        <ul spacing="normal">
          <li>
            <t>Alternatives 0..6 can be encoded in 2 bytes;</t>
          </li>
          <li>
            <t>Alternatives 7..127 can be encoded in 3 bytes;</t>
          </li>
          <li>
            <t>Alternatives 128+ can be encoded in 3-12 bytes.</t>
          </li>
        </ul>
        <t>There are no special considerations for deterministic encoding
Section <xref target="RFC8949" section="4.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>: The case numbers covered by each tag do not
overlap; particularly, tag 101 encoding starts where the more compact
special encodings for 0..6 and 7..127 end.</t>
        <t>For cases 0..6 and 7..127, the tag value indicates the value of the alternative.
For cases 128+, a single tag number is used with an enclosed two-element array that contains the case number and the value of the alternative.</t>
        <section anchor="semantics">
          <name>Semantics</name>
          <t>The value consists of a case number and a case body. The case number is
an unsigned integer that indicates which case out of the set of
alternatives is used. The case body is any CBOR data value.</t>
          <t>In a setting where the application uses a schema (formally or
informally), then there will be an appropriate sub-schema for each case
in the set of alternatives. The representation of the case body should
comply with the schema corresponding to the case number used.</t>
          <t>To continue the example above about representing failure or success,
suppose that the failure detail consists of an integer code and a
string, and suppose that the successful result is a byte string. A
failure value will use case 0 and the case body will be a CBOR list
containing an integer and a text string. Alternatively, a success value
will use case 1 and the body will be a single CBOR byte string.</t>
          <t>Decoders that enforce a schema must check the case number is within the
range of cases allowed, and that the case body follows the schema for
the supplied case number. Generic decoders should allow any case number
and any CBOR data value for the case body.</t>
        </section>
        <section anchor="rationale">
          <name>Rationale</name>
          <t>CBOR has direct support for <em>combinations</em> of multiple values but not
for <em>alternatives</em> of multiple values. Combinations are expressed in
CBOR using lists or maps.</t>
          <t>Most programming languages have a notion of data consisting of
combinations of data values, often called records, structs or objects. Many
programming languages also have a notion of data consisting of multiple
alternative data values. For example C has unions, and other languages
have "tagged" unions (where it is always clear which alternative is in
use).</t>
          <t>Crucially for this set of tags, the set of alternatives must be closed
and ordered. This allows encoding using an unsigned number to distinguish
each case.</t>
          <t>Note that this does <em>not</em> correspond to the notion in some programming
languages of classes and subclasses since in that context the set of
alternatives is open and unordered. Alternatives of this kind are
well-supported by tag 27 "Serialized language-independent object with
type name and constructor arguments".</t>
          <t>In functional programming languages, the primary way of forming new data
types is to enumerate a set of alternatives (each of which may be a
record). Such forms of data are also supported in hybrid functional
languages or languages with functional features.</t>
          <t>Thus, in some applications, it is very common to have data making use of
alternatives, and it is worth finding a compact encoding, at least for
the common cases. Just as most records are small, most alternatives are
also small.</t>
          <t>In this specification we reserve 7 values in the 2-byte part of the
available tag encoding space for alternatives 0..6 which are by far the
most common. We reserve a range of 121 values in the 3-bytes tag
encoding space. To cover the general case we use an encoding using a
pair consisting of an unsigned integer and the case body, the first 24
of which also result in a 3-byte encoding.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <t>To elaborate on the example from the introduction, we have a "result"
that is a failure or success, where:</t>
          <ul spacing="normal">
            <li>
              <t>the failure detail consists of an integer code and a string;</t>
            </li>
            <li>
              <t>the successful result is a byte string.</t>
            </li>
          </ul>
          <t>This corresponds to the following schema, in CDDL notation:</t>
          <sourcecode type="cddl"><![CDATA[
result = #6.121([int, text])
       / #6.122(bytes)
]]></sourcecode>
          <t>Example values:</t>
          <sourcecode type="cbor-diag"><![CDATA[
121([3, "the printer is on fire"])
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
122(h'ff00')
]]></sourcecode>
          <t>As a second example, here is one based on a data type defined within the
Haskell programming language, representing a simple expression tree.</t>
          <sourcecode type="haskell"><![CDATA[
-- A data type representing simple arithmetic expressions

data Expr = Lit Int -- integer literal
| Add Expr Expr -- addition
| Sub Expr Expr -- subtraction
| Neg Expr -- unary negation
| Mul Expr Expr -- multiplication
| Div Expr Expr -- integer division
]]></sourcecode>
          <t>In CDDL notation, and using the tags in this specification, such data
could be encoded using this schema:</t>
          <sourcecode type="cddl"><![CDATA[
; A data type representing simple arithmetic expressions

expr = #6.121(int)          ; integer literal
     / #6.122([expr, expr]) ; addition
     / #6.123([expr, expr]) ; subtraction
     / #6.124(expr)         ; unary negation
     / #6.125([expr, expr]) ; multiplication
     / #6.126([expr, expr]) ; integer division
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="implementation-aids">
      <name>Implementation aids</name>
      <section anchor="invalid-tag">
        <name>Invalid Tag</name>
        <t>The present document registers tag numbers 65535, 4294967295, and
18446744073709551615 (16-bit 0xffff, 32-bit 0xffffffff, and 64-bit
0xffffffffffffffff) as Invalid Tags, tags that are always invalid,
independent of the tag content provided.  The purpose of these tag
number registrations is to enable the tag numbers to be reserved for
internal use by implementations to note the absence of a tag on a data
item where a tag could also be expected with that data item as tag
content.</t>
        <t>The Invalid Tags are not intended to ever occur in interchanged CBOR
data items.  Generic CBOR decoder implementations are encouraged to
raise an error if an Invalid Tag occurs in a CBOR data item even if
there is no validity checking implemented otherwise.</t>
      </section>
      <section anchor="invalid-simple">
        <name>Programming Aid for Simple Values</name>
        <t>In a similar way, the present document also registers tag
number 21334 as a fourth Invalid Tag.
This tag is set aside specifically for use by CBOR implementations
that have no natural way to represent Simple Values (Section <xref target="RFC8949" section="3.3" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>) beyond false, true, or null in their programming
interface.
For instance, such implementations can represent simple(123) as
21334(123) in the programming interface.</t>
      </section>
      <section anchor="test-tag">
        <name>Test Tag</name>
        <t>CBOR implementations should handle tags that they do not understand, usually by
creating an instance of an object that contains the tag number and the
associated data item.
In order to test this code, there needs to be a tag
number that will never be allocated for some new semantics.
This property also makes the tag number safe to use as a placeholder
in documentation, such as in illustrative examples that show a
hypothetical tag, without creating expectations for future registration.</t>
        <t>This section specifies a CBOR tag for testing purposes:</t>
        <table anchor="tab-test-tag">
          <name>Test Tag</name>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">TBD (Proposed: 1413829460)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Data item</td>
              <td align="left">Any</td>
            </tr>
            <tr>
              <td align="left">Semantics</td>
              <td align="left">Explicitly none.</td>
            </tr>
            <tr>
              <td align="left">Point of contact</td>
              <td align="left">Joe Hildebrand <eref brackets="angle" target="mailto:joe-ietf@cursive.net">joe-ietf@cursive.net</eref></td>
            </tr>
            <tr>
              <td align="left">Description of semantics</td>
              <td align="left">draft-bormann-cbor-notable-tags, <xref target="test-tag"/></td>
            </tr>
          </tbody>
        </table>
        <section anchor="semantics-1">
          <name>Semantics</name>
          <t>This tag is always intended to be represented in the same manner that an
unimplemented tag would be in a given implementation.</t>
        </section>
        <section anchor="sample-code">
          <name>Sample code</name>
          <sourcecode type="javascript"><![CDATA[
import {encode, decode, Tag} from 'cbor2';
const t = new Tag(1413829460, 'TEST');
const bytes = encode(t); // 0xda544553546454455354
const t2 = decode(bytes); // 1413829460('TEST')
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="managing-redundancy">
      <name>Managing redundancy</name>
      <t>A CBOR data item often has appreciable internal redundancy, for
instance by serializing certain strings again and again.</t>
      <t>Data compression specifications such as deflate <xref target="RFC1951"/>, gzip
<xref target="RFC1952"/>, brotli <xref target="RFC7932"/>, zstd <xref target="RFC8878"/>, and dcb/dcz <xref target="RFC9842"/>
provide powerful ways to provide compressed representations of encoded
data items that exhibit internal redundancy.
While these can provide very good compression ratios,
the disadvantage of applying traditional data compression is that the
serialized data need to undergo a separate compression pass at the
producer and a decompression pass at the consumer before the data
items can be accessed again.</t>
      <t>An alternative is to perform some management of redundancy not at the
level of serialized data, but at the data model level, i.e., within
the data items interchanged.
This can enable a CBOR library to perform redundancy reduction
("packing") and unpacking on the fly.
This section discusses tag sets that can be used for this.</t>
      <section anchor="packed-cbor">
        <name>Packed CBOR</name>
        <t>A comprehensive approach to reducing redundancy by packing is provided
by the set of tags and simple values defined in <xref target="I-D.ietf-cbor-packed"/>, which see.</t>
      </section>
      <section anchor="stringref">
        <name>Stringref</name>
        <t>A very simple mechanism that is focused just on the redundancy of
repeated (byte or text) strings is <em>stringref</em> <xref target="STRINGREF"/>, originally
designed in the context of the Perl platform (<xref target="perl"/>), but now
implemented on other platforms, too.</t>
        <t>With some additional care, the stringref mechanism can be used in a
general fashion; this section will briefly introduce stringref and
ways to use it that are fully interoperable.</t>
        <section anchor="stringref-mechanism">
          <name>Stringref Mechanism</name>
          <t>Stringref works by silently entering (byte or text) strings in a table
that maps between unsigned integers ("index" values) and the string
value (including whether it is a text or a byte string).
On the producer side, an entry is added to the table when the specific
string value is encoded for the first time.
This allows all further copies of the same string to be expressed by
just referencing the table entry by its index (sequence number).
This reference is expressed via tag 25, carrying the index as an
unsigned integer.
The table entry is only added if representing the string itself would
be longer than a reference via tag 25, i.e., the string needs to have a
minimum length in bytes as per <xref target="tab-stringref-length"/> to get a table entry.</t>
          <table anchor="tab-stringref-length">
            <name>Stringref: Minimum String Length for Creating a New Table Entry</name>
            <thead>
              <tr>
                <th align="left">string index</th>
                <th align="left">minimum string length (bytes)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0 .. 23</td>
                <td align="left">3</td>
              </tr>
              <tr>
                <td align="left">24 .. 255</td>
                <td align="left">4</td>
              </tr>
              <tr>
                <td align="left">256 .. 65535</td>
                <td align="left">5</td>
              </tr>
              <tr>
                <td align="left">65536 .. 4294967295</td>
                <td align="left">7</td>
              </tr>
              <tr>
                <td align="left">4294967296 ..</td>
                <td align="left">11</td>
              </tr>
            </tbody>
          </table>
          <t>Note that there is no requirement for the producer of the encoded CBOR
data item to actually make use of a table entry; this means that
inexact ("lossy") representations of the table can be used at the
producer, as long as the highest index is properly incremented on any
string actually encoded as such.
(If an actual string is indeed emitted again, the new copy gets a new
table entry.)</t>
          <t>The consumer side follows the decisions of the producer, i.e., any
(text or byte) string encountered in the encoded data item that is
minimum size or larger leads to a new entry in the table at the lowest
current unfilled index and thus to incrementing the highest index in use.</t>
        </section>
        <section anchor="stringref-namespaces">
          <name>Stringref Namespaces</name>
          <t>Employing stringref (tag 25) places an onus on CBOR libraries both
during emission and during ingestion: Both have to manage their own
mapping table and examine it repeatedly, possibly adding an entry for
another index/string mapping to it, each time a string is processed.</t>
          <t>To incur this overhead only when needed, stringref references are only
valid within the tag content of a tag with tag number 256,
<em>stringref-namespace</em> (tag content: any).
A library that implements stringref ingestion can switch on stringref
processing when that tag is encountered, and switch it off again
when its processing leaves the tag 256 tag content.
A producer can localize the effort needed at both ends by placing the
tag at a position in the hierarchy that merits the additional processing.</t>
          <t>Stringref namespaces also provide a basic form of composability:
If another tag 256 is encountered within the content of a tag 256, a
new mapping table ("namespace") is created and the processing of
strings and tags 25 within the tag content of the inner tag operates
starting at index 0, independently of the processing of the tag
content of the outer tag outside the inner tag.
(After leaving the inner tag 256, the processing continues using the
table generated by the outer tag 256.)</t>
        </section>
        <section anchor="serialization-considerations">
          <name>Serialization Considerations</name>
          <t>As defined, stringref has a dependency on serialization order.
Like JSON objects, CBOR maps do not have a defined order in
processing, and both encoders and decoders might employ their own
preferred order when that is beneficial on the specific platform.
Stringref's implicit filling of the mapping table only works correctly
when producer and consumer agree on this order.</t>
          <t>So far, this looming interoperability problem has kept stringref
confined to some niche applications.
However, stringref can be used without a danger of disagreeing map
orders in conjunction with a deterministic encoding serialization
constraint, such as CDE, which binds both sides to the same ordering
of entries in a map <xref target="I-D.ietf-cbor-cde"/>.</t>
          <t>Using CDE also solves another problem with stringref as defined: The
tags' specification says that it only applies to
definite-length-encoded strings.
Here as well, the component doing the stringref processing may have no
control over which serialization is used in the encoder and no
information about the serialization used from the decoder.
Since CDE incorporates the serialization constraint "definite length only"
(DLO), no disagreement can happen when those serialization constraints
are followed.</t>
          <t>The present specification therefore recommends using stringref only in
environments where a deterministic encoding with a DLO serialization
constraint, such as CDE (or LDE), is followed.</t>
          <!-- [^cpa] -->

</section>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>In the registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>,
IANA has allocated the first to third tag in <xref target="tab-tag-values"/> from the
First Come First Served (FCFS) space, with the present document as the specification reference.
IANA also has allocated the tags in the next seven rows from the Specification
Required space, with the present document as the specification
reference, as well as the tag in the final row from the FCFS range.
<!--
Finally, IANA is requested to register the tags in the last two rows
(marked with CPA) from the Specification Required space, with the
present document as the specification reference.
 -->
      </t>
      <table anchor="tab-tag-values">
        <name>Values for Tags</name>
        <thead>
          <tr>
            <th align="right">Tag</th>
            <th align="left">Data Item</th>
            <th align="left">Semantics</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">65535</td>
            <td align="left">(none valid)</td>
            <td align="left">always invalid</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="invalid-tag"/></td>
          </tr>
          <tr>
            <td align="right">4294967295</td>
            <td align="left">(none valid)</td>
            <td align="left">always invalid</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="invalid-tag"/></td>
          </tr>
          <tr>
            <td align="right">18446744073709551615</td>
            <td align="left">(none valid)</td>
            <td align="left">always invalid</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="invalid-tag"/></td>
          </tr>
          <tr>
            <td align="right">63</td>
            <td align="left">byte string</td>
            <td align="left">Encoded CBOR Sequence <xref target="RFC8742"/></td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="related-tags"/></td>
          </tr>
          <tr>
            <td align="right">21065</td>
            <td align="left">text string</td>
            <td align="left">I-Regexp</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="related-tags"/>; <xref target="RFC9485"/></td>
          </tr>
          <tr>
            <td align="right">18300 to 18555 (inclusive)</td>
            <td align="left">byte string</td>
            <td align="left">Bare Hash value (COSE algorithm -256 to -1)</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="hashtags"/></td>
          </tr>
          <tr>
            <td align="right">18556</td>
            <td align="left">array</td>
            <td align="left">[COSE algorithm identifier, Bare Hash value]</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="hashtags"/></td>
          </tr>
          <tr>
            <td align="right">18557 to 18811 (inclusive)</td>
            <td align="left">byte string</td>
            <td align="left">Bare Hash value (COSE algorithm 1 to 255)</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="hashtags"/></td>
          </tr>
          <tr>
            <td align="right">108</td>
            <td align="left">byte string</td>
            <td align="left">Expected conversion to base16 encoding (lowercase)</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="expected-tags"/></td>
          </tr>
          <tr>
            <td align="right">21334</td>
            <td align="left">uint</td>
            <td align="left">(always invalid in interchange)<br/>programming aid for simple values</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="invalid-simple"/></td>
          </tr>
          <tr>
            <td align="right">1413829460</td>
            <td align="left">any</td>
            <td align="left">explicitly none</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="test-tag"/></td>
          </tr>
        </tbody>
      </table>
      <t>In addition, IANA has allocated the tags from
<xref target="tab-tag-enum"/>, with a reference to the present document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="STD94"/> apply; the tags discussed here
may also have specific security considerations that are mentioned in
their specific sections above.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="STD63" target="https://www.rfc-editor.org/info/std63">
          <reference anchor="RFC3629" target="https://www.rfc-editor.org/info/rfc3629">
            <front>
              <title>UTF-8, a transformation format of ISO 10646</title>
              <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
              <date month="November" year="2003"/>
              <abstract>
                <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="63"/>
            <seriesInfo name="RFC" value="3629"/>
            <seriesInfo name="DOI" value="10.17487/RFC3629"/>
          </reference>
        </referencegroup>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <abstract>
                <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cose" target="https://www.iana.org/assignments/cose">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.named-information" target="https://www.iana.org/assignments/named-information">
          <front>
            <title>Named Information</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <referencegroup anchor="STD96" target="https://www.rfc-editor.org/info/std96">
          <reference anchor="RFC9052" target="https://www.rfc-editor.org/info/rfc9052">
            <front>
              <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
              <author fullname="J. Schaad" initials="J." surname="Schaad"/>
              <date month="August" year="2022"/>
              <abstract>
                <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
                <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="96"/>
            <seriesInfo name="RFC" value="9052"/>
            <seriesInfo name="DOI" value="10.17487/RFC9052"/>
          </reference>
          <reference anchor="RFC9338" target="https://www.rfc-editor.org/info/rfc9338">
            <front>
              <title>CBOR Object Signing and Encryption (COSE): Countersignatures</title>
              <author fullname="J. Schaad" initials="J." surname="Schaad"/>
              <date month="December" year="2022"/>
              <abstract>
                <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) defines a set of security services for CBOR. This document defines a countersignature algorithm along with the needed header parameters and CBOR tags for COSE. This document updates RFC 9052.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="96"/>
            <seriesInfo name="RFC" value="9338"/>
            <seriesInfo name="DOI" value="10.17487/RFC9338"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9054">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Hash Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) syntax (see RFC 9052) does not define any direct methods for using hash algorithms. There are, however, circumstances where hash algorithms are used, such as indirect signatures, where the hash of one or more contents are signed, and identification of an X.509 certificate or other object by the use of a fingerprint. This document defines hash algorithms that are identified by COSE algorithm identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9054"/>
          <seriesInfo name="DOI" value="10.17487/RFC9054"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-cde">
          <front>
            <title>CBOR Common Deterministic Encoding (CDE)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="13" month="October" year="2025"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines the concept of "Deterministically
   Encoded CBOR" in its Section 4.2, determining one specific way to
   encode each particular CBOR value.  This definition is instantiated
   by "core requirements", providing some flexibility for application
   specific decisions; this makes it harder than necessary to offer
   Deterministic Encoding as a selectable feature of generic CBOR
   encoders.

   The present specification documents the Best Current Practice for
   CBOR _Common Deterministic Encoding_ (CDE), which can be shared by a
   large set of applications with potentially diverging detailed
   application requirements.

   The document also discusses the desire for partial implementations,
   which can be another reason for constraining CBOR encoders, and
   singles out the encoding constraint "definite-length-only" as a
   likely constraint to be used in application protocol and media type
   definitions.

   This specification updates RFC 8949 in that it provides
   clarifications and definitions of additional terms as well as more
   examples and explanatory text; it does not make technical changes to
   RFC 8949.


   // This revision -13 merges all active pull requests in preparation
   // for the 2025-cbor-17 interim on 2025-10-15.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cde-13"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC9132">
          <front>
            <title>Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal Channel Specification</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="J. Shallow" initials="J." surname="Shallow"/>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K"/>
            <date month="September" year="2021"/>
            <abstract>
              <t>This document specifies the Distributed Denial-of-Service Open Threat Signaling (DOTS) signal channel, a protocol for signaling the need for protection against Distributed Denial-of-Service (DDoS) attacks to a server capable of enabling network traffic mitigation on behalf of the requesting client.</t>
              <t>A companion document defines the DOTS data channel, a separate reliable communication layer for DOTS management and configuration purposes.</t>
              <t>This document obsoletes RFC 8782.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9132"/>
          <seriesInfo name="DOI" value="10.17487/RFC9132"/>
        </reference>
        <reference anchor="RFC8746">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Typed Arrays</title>
            <author fullname="C. Bormann" initials="C." role="editor" surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), as defined in RFC 7049, is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.</t>
              <t>This document makes use of this extensibility to define a number of CBOR tags for typed arrays of numeric data, as well as additional tags for multi-dimensional and homogeneous arrays. It is intended as the reference document for the IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8746"/>
          <seriesInfo name="DOI" value="10.17487/RFC8746"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <referencegroup anchor="BCP26" target="https://www.rfc-editor.org/info/bcp26">
          <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
            <front>
              <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
              <author fullname="M. Cotton" initials="M." surname="Cotton"/>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <author fullname="T. Narten" initials="T." surname="Narten"/>
              <date month="June" year="2017"/>
              <abstract>
                <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
                <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
                <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="26"/>
            <seriesInfo name="RFC" value="8126"/>
            <seriesInfo name="DOI" value="10.17487/RFC8126"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <referencegroup anchor="BCP47" target="https://www.rfc-editor.org/info/bcp47">
          <reference anchor="RFC4647" target="https://www.rfc-editor.org/info/rfc4647">
            <front>
              <title>Matching of Language Tags</title>
              <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
              <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
              <date month="September" year="2006"/>
              <abstract>
                <t>This document describes a syntax, called a "language-range", for specifying items in a user's list of language preferences. It also describes different mechanisms for comparing and matching these to language tags. Two kinds of matching mechanisms, filtering and lookup, are defined. Filtering produces a (potentially empty) set of language tags, whereas lookup produces a single language tag. Possible applications include language negotiation or content selection. This document, in combination with RFC 4646, replaces RFC 3066, which replaced RFC 1766. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="47"/>
            <seriesInfo name="RFC" value="4647"/>
            <seriesInfo name="DOI" value="10.17487/RFC4647"/>
          </reference>
          <reference anchor="RFC5646" target="https://www.rfc-editor.org/info/rfc5646">
            <front>
              <title>Tags for Identifying Languages</title>
              <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
              <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
              <date month="September" year="2009"/>
              <abstract>
                <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="47"/>
            <seriesInfo name="RFC" value="5646"/>
            <seriesInfo name="DOI" value="10.17487/RFC5646"/>
          </reference>
        </referencegroup>
        <reference anchor="W3C-STRINGS-BIDI" target="https://www.w3.org/International/articles/strings-and-bidi/">
          <front>
            <title>Strings and bidi</title>
            <author>
              <organization/>
            </author>
            <date year="2017" month="July" day="31"/>
          </front>
        </reference>
        <reference anchor="W3C-BIDI-USE-CASES" target="https://www.w3.org/International/articles/lang-bidi-use-cases/">
          <front>
            <title>Use cases for bidi and language metadata on the Web</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="May" day="06"/>
          </front>
        </reference>
        <reference anchor="W3C-UBA-BASICS" target="https://www.w3.org/International/articles/inline-bidi-markup/uba-basics">
          <front>
            <title>Unicode Bidirectional Algorithm basics</title>
            <author>
              <organization/>
            </author>
            <date year="2016" month="August" day="09"/>
          </front>
        </reference>
        <reference anchor="W3C-SIMPLE-RUBY" target="https://www.w3.org/TR/simple-ruby/">
          <front>
            <title>W3C Rules for Simple Placement of Japanese Ruby</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="June" day="09"/>
          </front>
          <refcontent>W3C First Public Working Draft</refcontent>
        </reference>
        <reference anchor="HTML" target="https://html.spec.whatwg.org">
          <front>
            <title>HTML — Living Standard</title>
            <author>
              <organization>WHATWG</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC2045">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This initial document specifies the various headers used to describe the structure of MIME messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2045"/>
          <seriesInfo name="DOI" value="10.17487/RFC2045"/>
        </reference>
        <reference anchor="RFC4122">
          <front>
            <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4122"/>
          <seriesInfo name="DOI" value="10.17487/RFC4122"/>
        </reference>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="RFC7049">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7049"/>
          <seriesInfo name="DOI" value="10.17487/RFC7049"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC9581">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Time, Duration, and Period</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="B. Gamari" initials="B." surname="Gamari"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR, RFC 8949) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.</t>
              <t>In CBOR, one point of extensibility is the definition of CBOR tags. RFC 8949 defines two tags for time: CBOR tag 0 (RFC 3339 time as a string) and tag 1 (POSIX time as int or float). Since then, additional requirements have become known. The present document defines a CBOR tag for time that allows a more elaborate representation of time, as well as related CBOR tags for duration and time period. This document is intended as the reference document for the IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9581"/>
          <seriesInfo name="DOI" value="10.17487/RFC9581"/>
        </reference>
        <reference anchor="RFC9485">
          <front>
            <title>I-Regexp: An Interoperable Regular Expression Format</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="T. Bray" initials="T." surname="Bray"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document specifies I-Regexp, a flavor of regular expression that is limited in scope with the goal of interoperation across many different regular expression libraries.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9485"/>
          <seriesInfo name="DOI" value="10.17487/RFC9485"/>
        </reference>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="RFC9542">
          <front>
            <title>IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <author fullname="Y. Li" initials="Y." surname="Li"/>
            <date month="April" year="2024"/>
            <abstract>
              <t>Some IETF protocols make use of Ethernet frame formats and IEEE 802 parameters. This document discusses several aspects of such parameters and their use in IETF protocols, specifies IANA considerations for assignment of points under the IANA Organizationally Unique Identifier (OUI), and provides some values for use in documentation. This document obsoletes RFC 7042.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="141"/>
          <seriesInfo name="RFC" value="9542"/>
          <seriesInfo name="DOI" value="10.17487/RFC9542"/>
        </reference>
        <reference anchor="RFC9164">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for IPv4 and IPv6 Addresses and Prefixes</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This specification defines two Concise Binary Object Representation (CBOR) tags for use with IPv6 and IPv4 addresses and prefixes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9164"/>
          <seriesInfo name="DOI" value="10.17487/RFC9164"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-packed">
          <front>
            <title>Packed CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mikolai Gütschow" initials="M." surname="Gütschow">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <date day="2" month="February" year="2026"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949 == STD 94)
   is a data format whose design goals include the possibility of
   extremely small code size, fairly small message size, and
   extensibility without the need for version negotiation.

   CBOR does not provide any forms of data compression.  CBOR data
   items, in particular when generated from legacy data models, often
   allow considerable gains in compactness when applying data
   compression.  While traditional data compression techniques such as
   DEFLATE (RFC 1951) can work well for CBOR encoded data items, their
   disadvantage is that the recipient needs to decompress the compressed
   form before it can make use of the data.

   This specification describes Packed CBOR, a set of CBOR tags and
   simple values that enable a simple transformation of an original CBOR
   data item into a Packed CBOR data item that is almost as easy to
   consume as the original CBOR data item.  A separate decompression
   step is therefore often not required at the recipient.


   // (This cref will be removed by the RFC editor:) The present
   // revision -19 is a work-in-progress release in preparation for
   // another cbor-packed side meeting.  This revision resolves the use
   // of the tunables A/B/C by setting A=16, B=8, and C=8, and choosing
   // requested simple values and tag numbers, in preparation for
   // continuing the early allocation process.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-packed-19"/>
        </reference>
        <reference anchor="STRINGREF" target="http://cbor.schmorp.de/stringref" quoteTitle="false">
          <front>
            <title>(Specification for Tags 256 and Tag 25)</title>
            <author initials="M. A." surname="Lehmann" fullname="Marc A. Lehmann">
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.bormann-cbor-numbers">
          <front>
            <title>On Numbers in CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR), as defined in STD 94
   (RFC 8949), is a data representation format whose design goals
   include the possibility of extremely small code size, fairly small
   message size, and extensibility without the need for version
   negotiation.

   Among the kinds of data that a data representation format needs to be
   able to carry, numbers have a prominent role, but also have inherent
   complexity that needs attention from protocol designers and
   implementers of CBOR libraries and of the applications that use them.

   This document gives an overview over number formats available in CBOR
   and some notable CBOR tags registered, and it attempts to provide
   information about opportunities and potential pitfalls of these
   number formats.


   // This is a rather drafty initial revision, pieced together from
   // various components, so it has a higher level of redundancy than
   // ultimately desired.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-numbers-02"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-yang-standin">
          <front>
            <title>Stand-in Tags for YANG-CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Maria Matějka" initials="M." surname="Matějka">
              <organization>CZ.NIC</organization>
            </author>
            <date day="30" month="August" year="2025"/>
            <abstract>
              <t>   YANG (RFC 7950) is a data modeling language used to model
   configuration data, state data, parameters and results of Remote
   Procedure Call (RPC) operations or actions, and notifications.

   YANG-CBOR (RFC 9254) defines encoding rules for YANG in the Concise
   Binary Object Representation (CBOR) (RFC 8949).  While the overall
   structure of YANG-CBOR is encoded in an efficient, binary format,
   YANG itself has its roots in XML and therefore traditionally encodes
   some information such as date/times and IP addresses/prefixes in a
   verbose text form.

   This document defines how to use existing CBOR tags for this kind of
   information in YANG-CBOR as a "stand-in" for the text-based
   information that would be found in the original form of YANG-CBOR.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-yang-standin-02"/>
        </reference>
        <reference anchor="C" target="https://www.iso.org/standard/74528.html">
          <front>
            <title>Information technology — Programming languages — C</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date year="2018" month="June"/>
          </front>
          <seriesInfo name="ISO/IEC" value="9899:2018"/>
        </reference>
        <reference anchor="Cplusplus20" target="https://isocpp.org/files/papers/N4860.pdf">
          <front>
            <title>Programming languages — C++</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <refcontent>ISO/IEC JTC1 SC22 WG21 N4860</refcontent>
        </reference>
        <reference anchor="IEEE754" target="https://ieeexplore.ieee.org/document/8766229">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="IEEE Std" value="754-2019"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2019.8766229"/>
        </reference>
        <reference anchor="RFC7322">
          <front>
            <title>RFC Style Guide</title>
            <author fullname="H. Flanagan" initials="H." surname="Flanagan"/>
            <author fullname="S. Ginoza" initials="S." surname="Ginoza"/>
            <date month="September" year="2014"/>
            <abstract>
              <t>This document describes the fundamental and unique style conventions and editorial policies currently in use for the RFC Series. It captures the RFC Editor's basic requirements and offers guidance regarding the style and structure of an RFC. Additional guidance is captured on a website that reflects the experimental nature of that guidance and prepares it for future inclusion in the RFC Style Guide. This document obsoletes RFC 2223, "Instructions to RFC Authors".</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7322"/>
          <seriesInfo name="DOI" value="10.17487/RFC7322"/>
        </reference>
        <reference anchor="I-D.draft-bormann-cbor-time-tag-01">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Time, Duration, and Period</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universitaet Bremen TZI</organization>
            </author>
            <author fullname="Ben Gamari" initials="B." surname="Gamari">
              <organization>Well-Typed</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="14" month="June" year="2017"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 7049) is a data
   format whose design goals include the possibility of extremely small
   code size, fairly small message size, and extensibility without the
   need for version negotiation.

   In CBOR, one point of extensibility is the definition of CBOR tags.
   RFC 7049 defines two tags for time: CBOR tag 0 (RFC3339 time) and tag
   1 (Posix time [TIME_T], int or float).  Since then, additional
   requirements have become known.  The present document defines a CBOR
   tag for time that allows a more elaborate representation of time, and
   anticipates the definition of related CBOR tags for duration and time
   period.  It is intended as the reference document for the IANA
   registration of the CBOR tags defined.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-time-tag-01"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="I-D.trammell-rains-protocol">
          <front>
            <title>RAINS (Another Internet Naming Service) Protocol Specification</title>
            <author fullname="Brian Trammell" initials="B." surname="Trammell">
              <organization>ETH Zurich</organization>
            </author>
            <author fullname="Christian Fehlmann" initials="C." surname="Fehlmann">
              <organization>ETH Zurich</organization>
            </author>
            <date day="29" month="January" year="2019"/>
            <abstract>
              <t>   This document defines an alternate protocol for Internet name
   resolution, designed as a prototype to facilitate conversation about
   the evolution or replacement of the Domain Name System protocol.  It
   attempts to answer the question: "how would we design DNS knowing
   what we do now," on the background of a set of properties of an
   idealized Internet naming service.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-trammell-rains-protocol-05"/>
        </reference>
        <reference anchor="RFC8943">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Date</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="J. Richter" initials="J." surname="Richter"/>
            <date month="November" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), as specified in RFC 7049, is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.</t>
              <t>In CBOR, one point of extensibility is the definition of CBOR tags. RFC 7049 defines two tags for time: CBOR tag 0 (date/time string as per RFC 3339) and tag 1 (POSIX "seconds since the epoch"). Since then, additional requirements have become known. This specification defines a CBOR tag for a date text string (as per RFC 3339) for applications needing a textual date representation within the Gregorian calendar without a time. It also defines a CBOR tag for days since the date 1970-01-01 in the Gregorian calendar for applications needing a numeric date representation without a time. This specification is the reference document for IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8943"/>
          <seriesInfo name="DOI" value="10.17487/RFC8943"/>
        </reference>
        <reference anchor="I-D.clarke-cbor-crs">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tag for Coordinate Reference System (CRS) Specification</title>
            <author fullname="Trevor Clarke" initials="T." surname="Clarke">
              <organization>Ball Aerospace and Technologies Corp.</organization>
            </author>
            <date day="17" month="March" year="2020"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 7049) is a data
   format whose design goals include the possibility of extremely small
   code size, fairly small message size, and extensibility without the
   need for version negotiation.

   In CBOR, one point of extensibility is the definition of CBOR tags.
   An existing CBOR tag, 103, allows for the representation of
   geographic coordinates.  Proper exploitation of geographic
   coordinates requires an associated reference frame.  The present
   document defines a CBOR tag for referencing the coordinate reference
   system (CRS) for a geographic coordinate.  It is intended as the
   reference document for the IANA registration of the CBOR tag defined.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-clarke-cbor-crs-02"/>
        </reference>
        <reference anchor="RFC1951">
          <front>
            <title>DEFLATE Compressed Data Format Specification version 1.3</title>
            <author fullname="P. Deutsch" initials="P." surname="Deutsch"/>
            <date month="May" year="1996"/>
            <abstract>
              <t>This specification defines a lossless compressed data format that compresses data using a combination of the LZ77 algorithm and Huffman coding, with efficiency comparable to the best currently available general-purpose compression methods. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1951"/>
          <seriesInfo name="DOI" value="10.17487/RFC1951"/>
        </reference>
        <reference anchor="RFC1952">
          <front>
            <title>GZIP file format specification version 4.3</title>
            <author fullname="P. Deutsch" initials="P." surname="Deutsch"/>
            <date month="May" year="1996"/>
            <abstract>
              <t>This specification defines a lossless compressed data format that is compatible with the widely used GZIP utility. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1952"/>
          <seriesInfo name="DOI" value="10.17487/RFC1952"/>
        </reference>
        <reference anchor="RFC7932">
          <front>
            <title>Brotli Compressed Data Format</title>
            <author fullname="J. Alakuijala" initials="J." surname="Alakuijala"/>
            <author fullname="Z. Szabadka" initials="Z." surname="Szabadka"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This specification defines a lossless compressed data format that compresses data using a combination of the LZ77 algorithm and Huffman coding, with efficiency comparable to the best currently available general-purpose compression methods.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7932"/>
          <seriesInfo name="DOI" value="10.17487/RFC7932"/>
        </reference>
        <reference anchor="RFC8878">
          <front>
            <title>Zstandard Compression and the 'application/zstd' Media Type</title>
            <author fullname="Y. Collet" initials="Y." surname="Collet"/>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>Zstandard, or "zstd" (pronounced "zee standard"), is a lossless data compression mechanism. This document describes the mechanism and registers a media type, content encoding, and a structured syntax suffix to be used when transporting zstd-compressed content via MIME.</t>
              <t>Despite use of the word "standard" as part of Zstandard, readers are advised that this document is not an Internet Standards Track specification; it is being published for informational purposes only.</t>
              <t>This document replaces and obsoletes RFC 8478.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8878"/>
          <seriesInfo name="DOI" value="10.17487/RFC8878"/>
        </reference>
        <reference anchor="RFC9842">
          <front>
            <title>Compression Dictionary Transport</title>
            <author fullname="P. Meenan" initials="P." role="editor" surname="Meenan"/>
            <author fullname="Y. Weiss" initials="Y." role="editor" surname="Weiss"/>
            <date month="September" year="2025"/>
            <abstract>
              <t>This document specifies a mechanism for dictionary-based compression in the Hypertext Transfer Protocol (HTTP). By utilizing this technique, clients and servers can reduce the size of transmitted data, leading to improved performance and reduced bandwidth consumption. This document extends existing HTTP compression methods and provides guidelines for the delivery and use of compression dictionaries within the HTTP protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9842"/>
          <seriesInfo name="DOI" value="10.17487/RFC9842"/>
        </reference>
      </references>
    </references>
    <?line 1293?>

<section numbered="false" anchor="list-of-figures">
      <name>List of Figures</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="hashcddl"/>:</dt>
        <dd>
          <t><xref format="title" target="hashcddl"/></t>
        </dd>
        <dt><xref target="arith-tags-cddl"/>:</dt>
        <dd>
          <t><xref format="title" target="arith-tags-cddl"/></t>
        </dd>
        <dt><xref target="time-tags-cddl"/>:</dt>
        <dd>
          <t><xref format="title" target="time-tags-cddl"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="list-of-tables">
      <name>List of Tables</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="origtags"/>:</dt>
        <dd>
          <t><xref format="title" target="origtags"/></t>
        </dd>
        <dt><xref target="cosetags"/>:</dt>
        <dd>
          <t><xref format="title" target="cosetags"/></t>
        </dd>
        <dt><xref target="cwttags"/>:</dt>
        <dd>
          <t><xref format="title" target="cwttags"/></t>
        </dd>
        <dt><xref target="yangtags"/>:</dt>
        <dd>
          <t><xref format="title" target="yangtags"/></t>
        </dd>
        <dt><xref target="arithtags"/>:</dt>
        <dd>
          <t><xref format="title" target="arithtags"/></t>
        </dd>
        <dt><xref target="arraytags"/>:</dt>
        <dd>
          <t><xref format="title" target="arraytags"/></t>
        </dd>
        <dt><xref target="tab-domain-specific"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-domain-specific"/></t>
        </dd>
        <dt><xref target="tab-text"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-text"/></t>
        </dd>
        <dt><xref target="timetags"/>:</dt>
        <dd>
          <t><xref format="title" target="timetags"/></t>
        </dd>
        <dt><xref target="perltags"/>:</dt>
        <dd>
          <t><xref format="title" target="perltags"/></t>
        </dd>
        <dt><xref target="weirdtags"/>:</dt>
        <dd>
          <t><xref format="title" target="weirdtags"/></t>
        </dd>
        <dt><xref target="tab-apptags"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-apptags"/></t>
        </dd>
        <dt><xref target="tab-tag-enum"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-tag-enum"/></t>
        </dd>
        <dt><xref target="tab-test-tag"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-test-tag"/></t>
        </dd>
        <dt><xref target="tab-tag-values"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-tag-values"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>(Many, TBD)</t>
      <!--  LocalWords:  CBOR extensibility IANA uint sint IEEE endian
 -->
<!--  LocalWords:  signedness endianness
 -->

</section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="P." surname="Occil" fullname="Peter Occil">
        <organization/>
        <address>
          <email>poccil14 at gmail dot com</email>
        </address>
      </contact>
      <t>Peter Occil registered tags 30, 264, 265, 268–270
(<xref target="advanced-arithmetic"/>), 38, 257, 266 and 267
(<xref target="domain-specific"/>), and contributed much of the text about
these tags in this document.</t>
      <contact initials="D." surname="Coutts" fullname="Duncan Coutts">
        <organization/>
        <address>
          <email>duncan@well-typed.com</email>
        </address>
      </contact>
      <contact initials="M. P." surname="Jones" fullname="Michael Peyton Jones">
        <organization/>
        <address>
          <email>me@michaelpj.com</email>
        </address>
      </contact>
      <contact initials="J." surname="Hildebrand" fullname="Joe Hildebrand">
        <organization/>
        <address>
          <email>joe-ietf@cursive.net</email>
        </address>
      </contact>
      <t>Joe Hildebrand contributed the test tag and registered the
JavaScript Regexp tag.</t>
      <contact initials="J." surname="Doe" fullname="Jane Doe">
        <organization>To do</organization>
        <address>
      </address>
      </contact>
      <t>Further contributors will be listed here as text is added.</t>
      <t>Please stay tuned.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA82923rb1pYueI+nQMkXJldIiidRByeuJUtKomyftiUvd3Uq
OwZJUEQMAiwAlKzYXl+9Q/Vd3+6Lfo9+k7rrt+jxjzHmxARISnKy9v5K31qx
RALzMOaY43xot9ve9ZE/8LwiKuLwyH/q+f7LtAjGceifPHv1xr8MrnIvGI+z
kJ5b/2aaTpJgQS9Os2BWtMdptgiSpD2hX9qJPN0u6MF2HBRhXniP/Cn9cuT3
u/29dne/3e963ofw9ibNpkf+eVKEWRIW7VMM5k2C4siPklnq5avxIsrzKE2K
2yW9fX52+b3nBatinmZHtOK2L4s4CbK8CBP/mSyDvvH9NLs68t8m0XWY5VHx
//7Pwn+WhQt66PL/POcH8iILQ5rpdZoXs2Ay9weD7nDY5e8mUXF7pC/IB+mU
5jlt9w8Ge4f6ySopMnrqhxCT3vKHy3ma0HPfDA/bw36v3e8dtEeDw36PvwwX
QRQf+ZNgnP61+D3q0Aq9CW0ti8arorqh1yFBxH81mUSx++oyxSe9oR8U/hU+
8qdpQStZ6Ip0LILXkf+ZP/PdofwsvIoIUFk49XE4/qDb8vujIf6zh/8c/Oe/
/0d/v6tvNj59CqbXQTIJp+0gi4r5IiyiyZcvzZY/OKDH9/bxzsgPkin9u1++
NU1pbUk7X4aTaKZv4CG7QJp/sSKIpzO/mId+EX4sfILKqtAx6MM8lCVGCf0V
5bTRyYoOo+g4UDpdJZMg8U/oxSJ34TTlL/56E8ZxG5gz7QiMzIsvosk8CGOC
zW2RJv5PdGiV9xfhXxfyyPK32qs/paH/YxRPw3FGW3Jf+i0N21FYzP46WRHG
XYcdwug7zqU6UAU2ApO8AAQYcO65zUMzQHAdXEyyaFn4b8Kr8OMSj3c8d61B
EvqnaVjeh8uUAHnHor5fZTRB5jtomfs3URz749CPsYapT9+HfpDLqdHJBNMp
Adgz6BaHAZ1dXgS3frFK+JsE17IgkADFLy5PR4Mjfrp95K+K2QERB/r57sh/
8/3JYNQ/lIcOh/YhUBX3oYPDIR46P3553GGKA0w5YnyxH6c5AQD/bRPwzKcA
y7QN0sILws6TiL7EmKNel16YTmOZicjIkT9LU13MSAbzHxFCTuLVNMzx0mF3
r88HhN8HgwMZij4d6NxBfGU/G+pn8yCf64eDEeYMCeby2Xn7tAMUEjo6Acmh
/3ieXbGA8NnJ6/7oSNfd2+vrZ8N9/PJucNK+uHxz/vKHi/az89NzgWIRZFcg
dvOiWOZHu7s3NzedmwFI0K5QXwZHEO8GGd3xOMx3iTxGCRFw2l57HE2jXRlH
2MWFfMl7x5f8naHwvX1Q+EFPF4NFtN9enLVPji/OLqrL8b9iQXGQXPFK2iuC
4oSwLK+s6S0dD39Kx5bxqnh5eG0VXIV0qYuAlhj4acI37F04riyb6HWXeNNI
l/322XH72fHF+cnFH4VglMRREsqSF0H2YbXcXY2D9jjIo0leWXkSgb/4z+jJ
LJzIOP5xfJUy1fWdNyyMR+3uQbt7aA78/MXr52ftN2+f/cu9q718s5tHiyUx
6Gw1vq2AkIby36xiBeEFP0U3OpiADxYg1z8FSyIqBOk39G4VfF2CnazI97OJ
DPZ9RIzZf70ax9HEf5dmHwhrfOHyvv/j5Yvnm1c7LxZxB+yjczMPipsrZpXO
OvGm/5///n/5z6NrjHhR0EkHmZDjUjwAJWSy9+7H48t3PzjLnQVxHnpyg/rd
4R6R/GgRyt/DXr9PhGkVTdtpPNWbujcynyXhjXy23x0eHtH4kV7xg/0hPZOH
/6ZfDw+JCkS/5Wmi3/f36Pny78O9gx4RLZoX9Es/Gx7QWggJQM/1o/4hEYll
lo6nIeQo+mh0eEhv3uI+gLvl+uBhb9OnfRAe/pTJqE6NpS6Cif7ZG9Ez0XKN
Ai2DyYeQBDT5l0khCMubs+/Xz42ODe908sl8kWbLzjRUEpKFM/fsGhcqFvB9
YUSDREnihEgS9Af93uRX/m2VFgQdeVHOrH7CDlMPsol/3PGfh3MrBLqnLZur
SqqrxZjEQ+IC8sumZxh0ORAsIo6gv9CDJ9svWpSnfNNyRcvd/eFe/6ADrHYh
cV7yIWKmk3mSxunVLeP16yy9yoLFAshtCFjO35xsw/EKEfJfZVdBEv1ewthc
Ef2sSkwOhOyRTBxmUZiD3Rjonl+82j0/OznyDw8OD4/wLPa+jFc5/t/vboYC
QWCyXDIQZhFo4TJYEnx3Xw4PRt3OclrBiDs2+803/wu2C0o1MGSquk3/p8uT
nn9x0u/7737o93xeL7Di7Oxsf2+4ZbNhSLc1TrOwg19510Zc3T3YH436/cPK
udNgdoG82u/jlJZJePY6jYjOHlthe+vuaYgNCL7xAGU2usW0AdK7eof6xemr
8yO/1+30et3DXTxFck4H33fMmr12u01yOV3jYFJ43iUxzZM0mUQ5WFUSZLf+
q/FvxK9I/lxmxBSSQg6gAT2xBcriQ1RrspSIpQaeYLx/M4cwRVJUdJX4Vykt
38hVzJqXKSl94ygmLQxMhwRNaGLxrZ8vgjj2mFnm0e9hi3YeZeZz4vB5Dk4v
X4GY0JthYoe6IbCSrsAydBKGAnvWD2nRSXiVFhFvgETW88SXTZBqQMuJhPtV
h6NdYbHTcBYlEW+cHmEVGZJoxzP7f5wzl4iAqOGUnxTggIO05H1aTCB8no6Q
5+qNRAEiSRt6jBcAhqIIEOBJYiTFj5QfkstJHCK9IHVUCMjkkV4N8JZyibn/
6ROLy1++dLwLgnloV+Lf0BRLsOp8Hk5b0DFZESEGhfXcEFLihuYp/d3f61YG
hSIXqDxI6gzur/loHlyHtEpSvFlRwEKxeM9shYD97T8Rnl0e//Drm7PXr95c
/nrx398eX/z465vjlz+cXXzXwzgkxS/TrOhkY+LUyUogTyBqt58KYioCWj0R
HPM6gpxOUEuD6SJYYuqAKEwGFFmNFc5W13Q31CGxSvSc5ZJEF5gzWn5UCCbk
PFDC1gjf0HicsWf+oDO9DuN0uXBX5PGZqVIcyg6gsZmpkpRWRUqx3UH4kQCU
t/hBmpY+AiWLcjnrOMbNyyvM1NFs/FmWLvjVPF1lEz0QQnyFe2D2eTyDfYBP
lfh26C5dpl6DbJR7vBw9TcHA2Sr2FUVntBsgln0B1wwjQQerzm8sAPbW1G4U
P3AzJ128xCNP986qJShUQkLCry/xnyL99U0YTMHJCSkIUiA8AMuU5MTpim5D
aVESRNSpb1Q0vcrS1dJACufb8r81ZB70C5TwQ5ixiMR0/uaKpZ5dtl7sPu14
p1E+WckEk1VGgCiIPBXBBzqAJQTp3KgfV0SMVmMfeJ1HpGffenYm+QqGh10Y
i3ZdgxpNce7A7N0PBJM4ojPLxU7CpFbPwxwA0ZhyVXR6cfQBxJQAsEgJqC4g
aDxYM5gV0zHxhQ7W10rEwXPf0QdShw07kHP3A5Hq5op2wbdWQWSJMJA7W4V8
HjD9LCEaEFV/Igiq2JKLjpR7wInkcSHkhQSNmDCS3roNCyH/GIHVsRXd+pZP
Iog5fFK4gTeCUOm4CJgE850BJxGWy9hXtZlVcJPv4ZJYFC0fC4syNorQ3hgv
F9F0GofgJUWWTle8Zl9/Pj2K8OkX7zvnx/Mal6+IL7fo6i+xfhYMPxa6LmXE
bIB5IkdnL1uuZplkSpxtVch6FmI9C8tXQeHpu0+fLgSE/rAzwCb/GQrLoN8n
rtCUk8nDWB8xRjrcTqUFxgpEx4VzgZLmB9k4okmy2ycwauZEes0dZ6pGM8/T
G2LByuJzglwo6JWFASZRUmvmDLwquDEZYdCYDooZOS52kJO6nzONweA7NNKU
8ZouwA7f4fUxGlEn7LQM88b3dRpKCE+EnLjojWwSFmnLaJsdJS2WuuHLNKH7
RE/Qm0mwzOcps5agymYstldJMIN7kdJlWzGLgkhnhIAqscTdjm+CW/rnmi4p
m+TlhC039Xc+feKTalhbffPbqqHsy5cdQoD6Z3oh7VuwKfKIQOUNP55X0uyA
Mc9IRwRDKzCJDIVTZuZXf4JoESlaJLLheyK9V3yqWFop6TSswAIcAlwITLTr
EocPO32ay1PD4F/Zdsg2Z1xwM64KNiBs5uQI9N4FyAqQQKWWLPy3VZSFggKA
bxU5hN3xWJP41iuPYUXcUJjcTlW/fSMDTndoy/QS76e8fCOz8F5/9Fc269HC
gRGQFGQBOoeInIqIKttM/TFR4oTE31UkDy/CICGJATdOBMaGWT/t7DrKzd1q
+j9ExY8Vkt6CiG6FJyMGejyDf3H6ioi7n7JxGIJIQc/TB8R3El6Ev3mexKv6
dvglGg8yZzQTpJjTxQ+Fmo4NPvvLaBnCetbxGufySRwUIGuw8LUgEsRCR3ik
nN7kkxXZBdIrk704TuUYPLZhw4hCYOKbuiAxARc8kUVgmLzAQxH7HKrLFnrQ
8kQSEdKRlMR3alZtkZaZT04Eg2QOmm+1xKVW2TdkxUAsDs4KIkf4BhE+xoUK
2AIn8pMwd/foP30KaRjQWXhoYlWIr8M2RJV2VIQL3BrCsE1iXMc79mfhjQMk
KBqZQkZFNuOFafS6vZbf6/favf4+fjnotnvDbrcpQm3A4iuNxSw2SBiFiPFW
xDumKqXUf8mju7NPU0d4tGj0n//+H919M5BuYg2rxuEkWGGxrBaRHkT8PBea
RFJXYpkKcyrel2cpV75a0h1wZVlWDPUW2itRWxCOwtlhue8snKSkAejn7LFU
bAA5ukqBpwERcbqlKQFciCfurrAtaBl8c/X66ySeKAGleG/xgHlhFdvl0rA0
T6txF5/XAOmIiCxgXcUrdceRMugZtBUhcBKHGVE10mGzjLCDUJ6uy0q4E4ki
J6enz9lNynrkLPoYTp94oA8F3wG+kYxdfP14NqifCb+MvfNk1WsUwsPqsdqW
hIScFeKyEalxcXKBiRCrTWQ8d68uXyw+j8LINElamgc2akCCKUF5YZl+jMMZ
QG6EJY+QErsUYfyJL3IHj8f8Q84xEFbAiLtgNcGIJcYmWTIZrIcFKMaThJXC
bDIH5zLyTDCZhMsCPltXboO+lloVbON19D4dBRDavnhPvVckYhnaw1S8Rg7h
wqA9V1ljCRxo9+XBk+4x9a9Ch6cwfieGcl9FykOqhIL26l1GC6L1p6tMFQrg
4WtCwnTKVgy1nEN2EWLC5MuYWmhmR3QPSAqAm7rb2/cbJbM2D3vKnEuyV5G8
mipxOvSpSL1Pn/4Z1uINERBmae1uD6t7xfoBb4bVW6vgX6fxNXMPRnHSo+xX
xlQFxGfS5FXuh65CZEd3qXr5kjrbEXmLfqkAjtmPkPCa8Uc4HT4M4jwtDUGO
YUmnhSkDgPcmJH0XemtcbS1KEjA60bAtAeLRxE7mXUIvU+t3qSDRwRH/8qpC
5+W6eYB2BKBDPiQNglDZCmAEgyP/kp3p2cLfGd8WpBUwWxaWHRU5sy1SjYt0
AXsmXfM8VPp7m6TJ7YIRcSedFGGx80TG8NU1usO0m1GW/YrMcElAybJbJvLw
Ba1CuYre72GWQvhhqtwYs/m06WO43IgzO0x4Hzi45wzuVwY33sScABBk/nVA
NJ04OH9m7FdqPfTGlsEwx8HM+N0MQbQFaiNRIZKmabJ0KoB7e/l9+wCAh/se
GC4WrDF4l7VdA9LMfqFat6pRHDgCIViwbbCENgsWJOPSgq3harnBL+CfQIA+
+fKlpQZjfHnyzTe94ePcf98dJ0ny3hPo+iQxk2wUw+TpOCxYMwg/gkwKHIj/
0wYlkMKuplGRvW5SYyRZpmBDBCJ4zPrf0rtPR8Nvd/FvkxATpijedQpZQKzJ
RPkTkcAACuGuxt7Bl8GBS2vjaqAnZbC3ZaGxaQQEmeVcBiPaedImaKSLJT3O
3I4UzfQK5MIOQew8h5XExNPo/jreG1F8aM0wtNAEqxwwfd/pvGcUZDAjnsXc
3Dha4OIw3e6I7dZaW6YRQZk4PAkpc9ELJhmM+s7Ws4qvoMMW3MvbZchevNJY
sEOIutOiCwcCXewAu3em4WRG+ChXAzY1sXJ6pUZ1ikW2EcUBDCkch8UpLtFp
aQl4bhCqAcGlaazQP/+PyTL4RczK8jtHnLTPplCSQE02YvHJ62P3hjmyWFO9
LSSUXosFF24POt+xnOXPaw5H4SfK/X/p+P737LbFT4gwtRX7OGzoFCgbTU+w
WkroTRaKVU8EFxLE5Hsdwt4uGEUnTLCZQmicEdsolcmQOLAKS/mSH9NRghye
G9FCIFI8gQAM4ZStMsQd0qt0lbP5g3TFlXXLwbbGcpmOk07EJlLapytrNnqV
Fe8IGMLbWjpAfc8iZocwwT0qPRsN639hgloRXEhiJEKGB4iDiC8G5F/1M+PF
sGqOGwQF1iDnGgklTsB+vM/sw9YB5A+oJEAY+vNinhLBPQ3ljjsmwbUferY0
wdm9fKbx7U+XHhJirMT7c+lYBO/fZTar362PX/3pd4adXnV8+tNfrOIiAimU
d86W6WSuEmA5xeb13zt+nx5yWCreeQ17BMgN3XyC4VbobB6/Xx1/sD7+y/Aq
+IeNP6SHiCUHt+U7p4RbC8I0UKo7j3fj+IPq+Hvr4z+LrmZwF9+x8AeP3990
vh+X7FwRipUZVwkOfDRcZbHIAYJr9dHr8On3v3L8cvC19W8cf/BV4/dGXzv+
cB1/zlQMqopm98Nfxq/i/6C/fn/fvjnfNNgDx6+e72CwPn55kP+A8Yfbxv8H
rX9vffw34RW8OUZgueOGPWD80fr4L85fnNlIgj+z/r29/cPDdfy8CONZ24gA
gkUPGl9mIICQpu4/Ar8SxoSYku92So6T24CCKLFcY+cL8cNHxrAfG63wksMw
TtefJ/Urk8fE9u55FyGkziKsqtVV3ijRi/xE7Ng7xQRBp7VhYSbs48jz/sKc
cjRouROwXcAVuUj6j0jAYCmefZ1YVhyHMU+G2LFhi2UWzxc/E51qjKXNrObO
1laSYN2LXThMGkoWtNoAkU44nwujapGgQGoXyQlRQusLpqo3yRThRsLQwcZw
YqHSJQEo77XXPfiazdJyNmx30CpFtC2blZjxOYn8U8OcIKqx9BpDoYFR3d3T
arnUD+MQVvecw7tZQDZmIhaR9TMWivN5uoqnbBeDtkHPtPzxqvA/LuJ+NpuQ
esbKHN3caRrm8NpCSL5xxxFEYklw0Onvd7od/fYp56dwhorZEm+d3bgBBz0F
sQn/MtZ0RO7IEUPiYoNPkGgAl8I+T+GFgFAaxjnb0Oikg7hlhm+I54okWYYI
Ox94BIJl078xG57gGmHTMN4CFHF0Ncc9YH08nJGoGallLDGTd3icHwn6xKRa
GgoVisuZMYi03yKdpLHeL5j8sCM3YkVCgtMZUl84PCIjYVjY3ZJtRM7p0oqt
N9hxtNLfEsbLKpXYFsS66aiTwC/o22oV4vFoC06IjcSepfGqdgIEA3sMAoyP
8PUgO8JceE4jqV4CN2VFDW91Hy1QRqNOl3g6XS0nHY0ziNJdQHBXzAAI7OXQ
y6frBMMTXBiMqhYBY4E1BIFfc6iFmseEwmRi9YVnjk1lbKLx1QThMpO89L63
sSj2uSoMel0k4NAZAv4czfCnaOBgr0IDNxE/x9a0mfglHAyrmSXZOtOlXWic
cp0eyqfiw/fl2FeJiXua+rM4uIZ7hYgrUCxhjFEgjO4CQi1jRjCDhtmGG7XQ
kzm9+ttvEoGCV/LdcZyOd5GqtCtL7iymT01kAA0Czy0pvSaCycm3aZydvDju
j/pNIXFjqMpqCVBI4fUSVgRw4voGP5JKrOMG0BKE+G4rcRPGa7iJYeOsyFs2
Ct+SqqbKXeELhxU1uBrsfYGOeww365RU6x8k5sP4y9V66rGPMz+CJ4DjruEJ
oFt9yfhk/FeGhddx8onruJGDEBVRaAwGcsMwHAEgQ/pUwk5XNj5oIIKSMuv6
pPsJM5TGCJlbWo29NEtNHIuQEctgFxIlv0VMLeB4qTTVNLRlyESTKNMqk1i7
jD7L1OteB0kJEaxu/fx4L69DkrBPShr6xuLFmfNg4/XJm7Omv+siV36bFMFH
/19/ViT7hSDyEgEloKZMpm9SCWtiI3/V8Fd1c4lvRZ0aXk6QTopokrfc6Tat
n5kJY6v1qHvgTzw0R7Th8hnjTDgJOB4X9MUZeI+UnYb1I3iOyw3mPd3cjvix
9WiaLW8RcCAeMdKYVgNJMjLe0SDPVwslYQGYz3Q1YVu4w8/g59eYErzCaWh2
rfRev9vraVQOgzUJaQuYqbWOwFGJlCIqCCdw3XGeM7eiJefW0KSB+FuQ+EOr
dcltYMIVAkstnMvP4SrxrTGHAUF2AVW1CQv19MVaHpJgdhHqUVlGIgmZoKZI
qmRW+wimpFVGyOx5x45tqxrD48jnuT5exyjrp/RYIJERhCqdvLo406ggDQu/
AMokksJIanN2u9TwcHqSg8KdCV2LG9EG2tinT5reBj9VkKvRMgLaV1fVMlFB
zglGcKsgGm6ZLleqjCAgzkSO2YEkzkrsmRoUdFy6mXM63UIIUJ3LqG7DUe00
4WpSrLKqb6rBO0COoGbAWjdqaaQjQoXsQlAl9rJ7ltxbbi9Dgk3z9iqR9sZD
HZhcsdwLCf3S2xBDay4iBreRK0YNMdEO6iJkLj3LWNGh++2JqArLNp2Vr1H7
wsb0ZJDRCJ8bB3U7bMpA1K6IF8mHn7LTIpr4nO44WyUTBdSP9Ldf/u2EjLMY
ys4UDMpuRWdfJiBw6jnTgSPDIQkVw3EGW5O1XSnUNesQCxe0N+IKTXv+UOWw
eU70RiQBvR7wIZfHDbx0kFiWNhgcyHlKBAJItcd+Sj3qJ4JQSl+NwRkikHU/
32NFdkwEDzcn6xuO+aMH8wf2+Kvezq4zMO/9QhTKN4T6S1Zh9EHaLjtU9KKv
DbxvBn4RTMpBnYHpc/9mNy1Hzt2xtq/4wAwM2tLbMLCu+IK1qbVFbh/40Ax8
IsddnrYOLLH9MdSZv/UNUpRPNZyzb1aGPqxDeW3N24F655oPXSjXHlMoH588
ZNC1gStQ3jTwhVylh4ws9ipkPj/MXgV62eJZWia12gdYxYT1yEaH+M/Asphy
/E1c3J8ega6ovcqlUTA4ONKrw/XWSRMPKD7zJ+D4mary7NmVUAnnEWabooCb
oAJLHErDmCsl2KoIvLnSaGKAoLYc2OVc2YIIgrUVSJxSwMFUya3mPEus8m8r
xOyT6E2/z+0yxX8scagC1DLORd4mOroQNUy2JDFLHaRBAeFX+mDLjQlk352w
brZ2lVRR9X+v1PmI2Rh/o08SHfNWEvzE1bxm1pAAIc+JaGRZjmNKmKRW5+t4
l5DdJVr2ikX2loyjsTPl3OBoc5fZ8LG1PDGXcGyorMmyPoexlNGdpMdbsWJ8
6+JaNZCq4RisTHCZYQtmtBZCtrEmFAvwGy9RosBNDfUY3cpkcBOXrWHdayUN
vnzZ8TS8e8N3LUVKl/eYe2gDdxhC5cY73rtQQzwLC57IgQe21gJU3JBDxO7B
kJCHJHYVKedq0JmlpIVOlRljJJ2cs1pgBGMULc3KIs3U5ptYSyMLHziHzOQt
WKYuEd1Vcf3uY0VmDJLDRKkvTFS+ZsvIcNUYUZv9xTTBkWhotTsQ9q5CG4Az
DosbiDRtk+jc39vbabnJTZU4fg1I27mw+WXHgrDvQCDg5MqQd3kdhTc7bkx5
b9QZeqrds+zcshgDRHP2zWJ4iVg2T4BIj5siwH9y1kOqmngy3ZIYZsw1nAbG
4KKF7PX6SmsRqtE7GHS7gGLv4IA0sYaNLiEB2VixzP2za/XpOpHiSpQk8+y4
7xmQnQ7g+N4dSILiyghKPqjqoZtvXtpYbkN++Xy9972Dvb3RNy/fW7sgxnj/
0v/O79JchNLIukpvnLkMoaWtM3upmguNgV5GwznpYATX7xFHL9E4LREiHcD7
Fz8e80bnqgHVNuJA5n27N3rfsXlvJiSd4bUNWPK1bEMMmWL7pv0Pu37j/Xc+
Q8L/xm/Q6M33TTdvhgM63I16Gnktuq2z8nmHw3LVjEtql2UmQhPTxAHNkfhG
eF53Bd33TUmwzO1VFvG/TBkyEd/RhDg3h8YTn61CzCshZmzLLqNM2HsBj3vL
iWNRXU9UXu+9yIl0AXHr3zuC/6j75cuR5/3973+XSjLm8v7Kb+Dpb2khLZns
qf8dm80fjTrfYgmSLuZ3EKbmN8AMOmq5EL8anmk+bfC7Te+HMEFw27aRa6M+
bfwsfgv6hG78ke8O3wC17CShM4/v7/oFHWqzZV9jIetI4WReRV6Z/0vTc9av
B+Y5g31H2KP41+7B2tXoKS42ASsWEPEgYGYERN4fTg9h5bZIxCa5D4LhWrJE
WEE/IMfOPIzjFHGo8ZQDi8RPFwVXCVH5aOKZUDlzgByLRV97fBkanj9/PD4c
Tvv748PDwXA6CLsHwV4/3OtP96cB/W88CybDgyEJEoP9YG9w0A3Dw+7BwWw/
mIT9cDaZhoePZb+SYBdwBLxx9oRFQUQ/izS57qO7CvnWmx76w4PRZKukbX4e
4XY2eNUcfbZ34Pe797/EsaiNQd9ErP3ZzZqjXRJ4v9uZpQT2L0wGElz3OVvB
KjZ+JGzB7hvbs9R0p9KMKZe11PZLe055qyGlKPGz7JnJnPD1iC5we7jf672X
eHEJOHRHaBmaYAa3JKWkIspARBKJ0/QDiwmbUGdv1PiZ52sRAvX6g+FD/v/4
F8WUUoDEtuCpVAFZjRkmnFNTYpFDY51BLEIbQBmfXLDBFFPuy0TymmwjyaAL
K/S6TGvmByzrtOZlzxrtaa2lMFWmCprFk/ZyE0gqUPl2NeSu3IzdiWOrU3WA
HbubrUyOVWlSV7U4PnW2YpVFI4U8E5BbsfZ19Bw0FF59D+uThZbrGktNmYPB
eiDACb8uW+CecOreTCuu6cdsH6W3Z4KOgSgzoApXMMc2OTHF5MrZHCCD7gj7
XSUc31RVkVqQvLPgKvTyW7psC87Dg9K3SoxFE3kkSRiLLZcdSIPDPgmJ7y45
QvKfIFDSJ06QpE3YeBeO/csU4bj8eMtXI74xEYMBkwag2rcKSNdBFgUliH7C
Q85AP/FAnz5xZvJe75AtarbAQvQ7I5zaqAt+RZMJwSSQ6qE5MixIaobxTTiu
GOyVICiaowKPJA1IiLOJX0kfbI7bYo1zTSsjRNxtAtrWj8V8clNstp5YZAb6
21PbNBLbT/gbDd6sFW35npXE3PPerJmY8bmhxeNVFBfs1UuXVfv/vxy//KGN
Pz0Pv5qzO9zrwkFsKsCQTjUVEd+G9DtGWg2DmJqQeQbxR4skL0mHQmWAE1yQ
K80LQv0gjpQg5fns8uTVy++bnsw96g97wJtEE89Zu1dY2WWIs4j1F/gLJpWh
Hd2541d3ZC23if9/vHguMPXWzfP0sphc7Mu9SpzxTxevXurLnz61UR2Mvt44
DC8bkO0IgBnW8J3Z4l4Gzltfl4OR2KTEHN2DDM2bDHsPsD1XQpjLRbs3YrgW
o3v3pLyFMUIYuCAHMgfWnln7GXX2q5MicHGVWGQTTf2eSU2yLfPZ+twbJx1V
J93bNGmaVZyD9UmFDxS3pJ09ZNJRp9etTjp6wKSQrDjK2Eya5JxD2HbEKjv5
xkmrcZXD/T8A3ovJnGQA/xzRtNGpnbeRR9PmJvAOOFgX1BEX4D7jsrk8jIA7
bCA2Vd3o2hAnRQ4wM1Y1OVVLKMk3YmN0VMEytksDfkx8sZqWSUdE4kvpWBMC
VF5DqdRnLjH/xUbER5aqEUW2v3L2rPEsa45Jac62e4bFUw6u9N96Jp7MD+PQ
VD8gqn366vLC805P0wv/FcIgLudI42MDf8D0sYEnmiXTL2lFf79ntS0ehr0h
sZEk/FQcA6we/xOXGRz0ZXMkYByfv7wQo0BVdUMdD/goswiLDGInDg4cCK5n
33E91ws3iWWKR/cbx2pqtW7XlwEnk12E2XU0CZsWxl61ZsOGvfb2Bt3D/cFI
tRCZ4IUEdplE0ALxjSg5nCGgpW0Wji03RMQNMb3YEqdIwynHhyNRwwhVxmxJ
bQBLy+HkFGi5cabYfpBdafJY5CS/Aw5reXz+tytlB9/tkGiJLKOdp//f//3/
fLu7euqZxD5jlLRT5z52VPfS21J9ML0Swp4qgcj5gI+1crSTEOgZo0UlkZ0r
J23ybdMUBqGNmiwyiCcCntQAkWIfpkoa/qXLpO8xsh3XU3lK77ITXsbHWqYu
VpeCVO7blENB4ZcREYgjAHhV4O5uXJSWrbZRLbbWQcZJ+tZeilw7zkR+f18k
43sOr/LiIIdGVMxh2Hc84+YSvn3zvMyotppIvFok/s4bE36zI75o3qwt/XKH
DPB1GUt2GvnbjbXv1nJZ6GFTvlEn3v7z2c/0WQ7ldAfuj+pJOBtycESTNxWK
fJuhCdEjusJjMm514Hr2jZN8UxvQjues+I6BD9YGPvuoBdWm96UPfZYqOqi5
vQ6Kw+0Dj+/LG7pr4P31w7MDZ/ed4vrAYNoWAR2uLVwzWCcdYNi4CY9zLZJ4
pebBUqVwnSD9DfGNTQ0Wl1WqHiznqOpeW2zlKq7kfmMR/IabBZrmd/ma9468
djXrt9Op/g0DJ3tYtaSnJoRa1oziCBMuGCYSQ2/U0t8G/ZbW08ZfhNWNMsM5
SZM287gwb5qcV61JyunXxr/A8Ky4ki0VaqkDQk9tHYCeC8BObyMISSjKiWht
A5grhPS57MnASeEFFUeurUusa2BSX1npg4VmlHt9d2h/T8bkV3cE2iT0uk8M
W2WysC3YRRS9bUCjzykSuIjBnA3bcwPe2Ic/nWqCNFPWLKxU2DAV9jQ11Kaz
6KBE/DjbId/C6Gp3SDzgni+f8zw3qYXzkSwWqgihZ8MUGUKBzkLSEHhVpJ9z
6JEvrhFDULQXQ8DZ6gt4TzAIwzotCpJK8FKzpQEF9BmiyO0RqxWgigByJTHq
NtRAtDdEIOSFh2D8qCMjrgQJGa/REPUylbvkAo5cglorhTirl8HF3MgL1GhK
Zrbuxdt+AzhOHURE6kloNrAzVsUR6NxG37mHiBdB1LaJ8jbLWDtcU35BChA6
qfcas+/szcmuCsriA33W2Mq/e11O0Kl4EsX5VwVrb3fAMYAiQR7hnb///e+u
jwH0enrg91THRNENiXc2TUH8g77z1TGzhDgk/WtON76k+d2eeaTnfjownw5k
aqzgBcygm2o9GFEN4lYbkTUo1JTJEZid0fsGqnDHO09wuGdk6wobI2nkOO3j
aEzcOwrzJ5oIUt5WtqPcBG5FmGUcFBBbRb9ySu/w1+ayuudc2lhcYpD7Q74r
e5pPLqbGirtWCUtjLJk22NpYUo/6TStr5OYqbKHGOuI6vzTI3vErq4IgJa1c
ZGWESZzM56RB0MZ17fALEtIilpSkTZR3gimVUV/SurYyiaCsj8Fk4R3XPqnE
UQPmW/gn87QSAqQ6INZG81zE8c77NTYHDQIpAa3BJZXNYsE0hF2yz1b0gqTd
JVbgVJMyxlANosFGiZXfalFhrtPAf0s9arvOli1rIRoEjH5+ae4DsVBbvlTF
w4ZcJkT4cN42L0X61jQVn5AUvakFPWCHBySbkOAmBM8NrzI+h/GtTisOe0J3
1NoyZMulcurulShVjWaITORQxzdlMSTMjhRJ1ALKQ6W3EtpOOglGVdR25Tam
9M5kE3ZcSS3PCnkUsaCUyvz9LWgieTkeL0hOCXzMlwn43Mv5jMxRmNStwjhn
UZzZ40JqeeFX/QYBlPXI5lOZljBu2SMREThLz22zJMhdmRnruWtT8phX5zwN
R4ySgunIGrAhx9XayhWpt2lb+piCG2EGJdgk8K2VOM1XV0SOC1cwY7881itl
W8oYTk91S2n/JaVYrIYqQJFip1Kj2EXZmjOz40RSWNrKkQ2DbuNnKxscmcve
chmn/ZQjG7q/NO0Qv6azb1+2Tp9uHOplbZBTelFym0RaAQdVGYjjBSSbxR26
1/IHTz3PiBm/qhwqsxEWNH4O0WnIrnlhf6ep7FtWW9PX9ui1/ra3TAxFDe5G
sbIhFFb0cSwdeFqzw/8mHjlGHBgm+EQ97/2GXLr8OoBjNtiQTQeDinwcjCHj
Yj2dLC/ee65ZbdAzRfRwr8pUcXUNAtRvzRL8RvfjbL/Z8py82mk0u5U8odxx
HUvGj8a3IpCHV+DE9kh6CkstHVNt+ch/xfWf3fLQprJzNcdMiizD3IU45Nul
lkb8MV2k4K+IFOKhc+sw3R+OXIep0XDh+8TTHyJEM0EC5tdQjZ3u2oJLkXHM
riQ5meQCfqpms4G1A7T0vFaEAp4XA5YH/UDd57oNW7wxn/0VYdyB7vvYLUpy
x4B79w0o+u8VogoJ+Vp3Dc8Dju4bEGr01wy4f9+AINxfM+DBV8Gw5U9iktir
l7I64OFDYBiT8sdFCO5eJAbc7z4Ehl8zYO8hMPyaAft3DZh/PR7uD+4b8Cvx
cP/Om5J/PR7u33lT8q/Hw/07b0oDBojsOpw27waeO+CdNyX/A3h4503J/wAe
3nlT8q/Hw4M7bwp31iHNv2LJ234+POCdN6U24H0YxAPeeVNqA96HQTzgnTel
vuX+wZ0j8oB33pQNMLzrfHjAO2/KBhjeO+CdN2UDDO8d8M6bsgmGd4yIAYeC
h2KAV2ugiAx/QcUiFBhqT+EwzUVIVs6SpTdtUSzSbGot8xiw1x12/8CA4kyq
j8kr7DkrrP18XpeQ6o/UXlBpVqWd+9z6InOREMtFZLDI/LvHmR/78WMp5PjI
P5WOtMbN+0dFvyemoCnc1FJBXBuA0nFCR000KT8dky4V0vH3R93d/qgHmfFP
RJB9xU/dBfeHfz77x9wExf2k5tHb347k2h/s7dvzU5MauTeiu2hbH8CbcM/8
G/SOeDUJSLmRCIZwm/aBPo2dxdQO9Bxv/Xqib61vZHhwz219cXziH4v9/+vB
iHIvwYTUgD/7sx4DU9/IXr2eohPYc/76mkjXv/4s9TXjMGnhk1/wEX8ln8Ny
8Mv2jUTLf8A+HrKReuG96kZGaxsZmY2M/kttpL93/x15eMG5tbm+sgLS9oHc
ikubtjHqbt+GCco0F6QBdMKB4TTwr3N7Nt15uw20ztTqBWHO3bX+ngXXkVoT
EpmmU3zc5sJGQMF1RP/5bWU/qW2D610Gy03v1rfxWurQVndjvvzGfxHkH/zn
7PhoOtuo0SsEXWMHHHZLFJ85UJVY6b5kOlCtB2xja8gksVqnyttDAio3n8bX
b2MefpSm0IbwPmAbCE3cEvtYae/J0d4Ed25k56Z6NM7fnG9mI+U2tl6OKIvu
vBVmoHvvxv6f3UbZVQAbKv9s/u/bBgmE9zHBV2/Pd0+Inf+Bn/8NTBASYxGM
21OR9GyWvcqOF9zOrC4HclIZrJ9I78jZaX9e6eRT6VFMAo+pEmTOC9+wjGPS
mWzPFC7PhQr52keati7dF0wTaY0LQ2MTDtzXUoamnZqp2VaIqzGR6yzZHBIN
Vq19xY7A4BaxdOxRHzsCWCRtDqZcGAf9Qafcss6pkrXH9bHcpYnLMifZqOXv
aWQKceVAErzTxUIsyeyUoB1I4L46xkzLCr+MdGAmYEIo8hZRU/cvDF5+oiXA
UYBByxO6orWtUS5uvK668XomahEydZSsTKq2zf+mYdQLEWXSWrNWOyovy/ER
gTUVWjlvwZ4FDLYA1TqV9RpuQwZUW5xGV+gYGkQZ/H9wKOn5BLnWl2zaauwe
vdDWe1cpsRbWYoX99+WTnIlcmdNz5rR1bngkUorYcVUeuZREc8OOmxKa++Nq
ESRtuN842vmSKJtRXlxb81YD8x0aCNObQTX67bMtxQ9PAVrB2VK8Ts26Y16t
dkGnu1ReeKa81VtuI8k2bAW3ne/yAcfcbu4WU6tBGSXevcUmY41Bl1KTXDoE
N1qqojFlCKbp0nRTsp4Ytutv26UJwkGsDqmpcTjdcOk5t4wDetDNi6uP2e49
AoWIHXfsBfdMyljHdM1NCTALEx2jMTRS1Uij97nyRnwdlnX3nC4lntQ+4Qvv
BMy78b02VY107PjW6SDJPW/mOCFkHSIIwIQra9nVUEszc7FapyuJqbQCuJvA
dL5EZbuS1rbVlNHGPHOZhBRxKRDPzGy6HUsWM7+5xB6yCBH31p0JUEi4rS0E
YyutKIhNDRLj4HdmLJclLnWMZvNi4dptfyC6LamNgTaJwQJjAz0t28IAKpvE
leO2NGxYZ+R0zEq5qmcnr4f7TO6fg/CWc9oIrNrqy/JkBjCcouhVYCwDdcrt
b1qb1H+j5TObNQt6NzhpX1y+OX/5w0X72fnpOV0C7bqnlbrk+LgYGVfZoPOW
8DdUvZlCqgqw3izk0rMW2l4NJTlqotzEDsPVmcKESFhWXxkgFUc1KqFhwVho
++3FWfvk+OLsgqhTPkeonxa8dW6iexLs9/eqYDSdgGTYt8+O28+OL85PLiRD
RWvtcvG5sqGs9hRErNI4o2kZ+4Vu7BTc4moqQWLl7QCoFwR6dNeM0ysE46Gw
g2eyfZlZaRihvG5r/4Iha61v7vQC7+x1hAjE5k7L21F/pUaeZ9ibjlDrJq6v
7/gNvdXes8iBRVmWhMM3hV4vwrAwAZR8xTQHeCZeYFtXySkHyeEIVYIqMoKm
AouzlQXzID/yL1ZACxPikIQTaOXZbR15jEwTEWEMOKYIrSrRYZhLcUpDPNuV
fhmF0t7Em1fZkfQKPoe8FDGyWYlIUAeDxSRI1Hdrd2oD5TwTXqQX6PzF6+dn
7Tdvn/2LpD9KzW1uLagiVmXMmbaO8syMZSkn7dpT9uUhBZ1IVJS3uNxszonE
3GIvN2kO29fOxUtvl5pkuwi5dZHdzSKcRoEn0dZmth8vXzynTeEfkzlk487R
Ha7MWj2upGtVLbc24cMmTGPH3E6N6T0GkiAbdquviTr+w7zpG7Mfel2YTtwU
uM8yM0G2jDieoqmvyAoh+quw8PPPEn6NOodqtO8Oa6rmZ1YdBoPBIVEsot3S
O3hNf9s4Vt0WUobp+1tbuogm5zSQ07H6a2NNTQrtXfDaONZgbayl9Py762d9
LJYP6QMmtRWfwAZ3who+GKXQN9Xmcz5JiTXvih7EGX4IjJwG8rYTrIswuCCZ
zNPM8GpHIyXg/p4mosYJNUXfXg6vlKdu7biejCuVwydhdC3SKVMSBCV3rjq8
Ds12R+8wkXnUuqDtb52WxyfcFoWFG7ll1T2YZoR2udqpOZF1a/mBOcfDWzk0
4C/b6YwQkHgK96lkQhuUyYmRRGtKyuUVh+17eAuQqMgFDY4idZ9FXExZCy7m
VsUVAPlcM2fjaBqsJc1gRMzg/fFuBLG8Rhl1W5KCamNKWovAzAiIoZRZwAvN
J1wd0DMh5nnojp7b0mnau9vE1faH/txvHIyGhFd50yf97ArV49yragsXagCe
RN2h4aGE1RVl3zQrkt6k2lbxXWhfg0PLcDWXMrLIZW6NDdYDhDaXLOTpA6mr
xwKujc+j4+CD4HA1uiGoKURwqaIWvfnIUjtWfXuH+912t0f/84r6EMMGVyDa
MMhWmmcj4ap7WguEq47It7uhUG8aBZEppFBE0Yp6XDBks1rRMAyLmFuah4Rt
qAVg4iklR8VJANEEVpOmhm9tZplLknDPsBVJCNb4c2QnSD4o2CHqjHucX2oy
DI1AzCiX8wNO0UlNDgFAbPdBjbf0TJgn3TdbVZojRMMEHuEF3zTbe1BK2hpr
Qme4IWFIi/I9JPcRL3TyyZykh2VnGt6X8uimOX76BNXSxsX98ag+toauM39l
MF8ZT3fvz5qdRKyxqFlVaxokT3Mlce3Vl5s2CcrrrZryFYv7rC+jsoAzPy3A
35C8/9ntfQvhmBTWJeokp6scoi7Eq6/zN2ydf7QpkADwly4v4VSK62t6OavO
E8KTnFEEd2nCSiVJsOw1lOTodcCwXBG3U1u+1sy/f+/8RvBuR4TDsN1wrR9n
PZYw37GezyYpwyzBzH/wkPNvLNPC2ESbpHAGEDS+6uezDNbGu9LbTOc/vO/8
cfZYTWh6R/6hn43z9/vdwy37n0eJUf21nCsrww5FjtGsgPXBpLTb3DF/7TGR
GQ0tuVdmFFkvEnGAMdJkCIGFgDYjY+PP0CMnXqQ/6m8qmVYp9eD2JjY5Zkho
CGkEFEr1OIME6oPX2BTU/QAvnxkKI3UW0/fNst6kbfxZNuKSoHN9pdo4z9LX
vFPd5/6eEdnYzOfuj5QCsy8pcuB/CG/dDM2YD5/vHky9/oWW3xSmd6sNm2zd
Yj6ejZAgBp4txO1MO2ETc5vmatMK3quV/F0YZVPRxWzNjz9z1hcpS55lBL7Y
PqUDrxHvSzaO/BqWvEsxreNdbi1voL4QbaQhaKEt0Y0l1/ojOaOBnhIJ3hRm
9uzatIE21yqdaJbPrSPkktBAF5vuhe4ABFCaCWirJOhG49CtbCGdbkRVKLXb
zWfzoNSDJE3QmlodJSwJcg5C08bNvzRxWA9T8yvJ8PUom8/+S5KSZbsnZxdv
nXaC7mt1r7372ju3CWH1tXoojPvai2rzQiZgN8DMB2u9MoA5XCkSdrxB9v8z
uP0Pqi7xAI7yD4p9u3OOelhcLSiu3vLxs39eevr//OybOls9LCqOY+KePmQO
jpfzy3i5WrTcOvqfv35+WnZL+1Pb3bxDAuZ0dxJNWa/YfcAm7pnjb2n8gdb3
IiKNY61USY9NUNVqFz+EttLjSZpmU+SHfY2wfe8OiXkhxfIqL4L4Ax9h5fAM
T6a1tcu1tJ21VA4XZC2J4tT/WzRNryWjpLLD4RqWbtyhc6EupFaC/+6/XcLm
e/b64odtFT/Y4IiKSCSWk5Qobc0nqMfzhwC2DYwbPnO22O+uX0RTBwq9whjY
Qv1fs4nrK2f/M4fY77bNWmA0k7W0sZY2r0UO855D7O+tl5F54dZX0CxTNOT5
Az9bLmKyXNGaVwX+mX9QWhMWOROctd3+enF2ebGd7BAxjWckn6T+aeS/DFDz
vrrDwzVb8Av6y5aiY10LgpmWklhqeT5Sj9gy+r5zFRaN5vvd953c/DINEZjd
QC3zbZskjSQJb+YpDDbB7e5vuWIwia/VLU5TorF8qrRUhkC7bYoFQ1g053iB
Af0fdUA5RxO/QBLcVma9iRHbmCX4QjRzFckCTrOMUrgmrv1KIxxEJLaeWFMw
mAuPpYkNDBrf+qerBALbCZ1yIV7KFyQJBqRavQ5vC3rnpzRBcA6nuGcZilSw
ZweVVpk3PuaSYMemFdRafTqryJgSdlOnpSXXqbRtujnwhc0+3ExwZoswQmgs
t4zYLYM2LAVvzIok7AmD5CEmCkHCXr/X6fTEHpBsSGtwF+B3O51Ry+9906v0
GLej9foH9ERvyO6g+0fb54kxXr8+XoWO9ywJ+NefkWiHWKrbX+qjBTVrNp70
v8Ga3EAa0nQA3W1io8iL96Ic20/rpYjqZaqN+6R6zqYuCmq8RYnpC+NW5ikj
sRw84KIc1UYKMp7VMMruafkqLjuJaYWtBbKKudIAu2G9wJ8FUcztvUBf+FHz
iQTitKT+Sr6aTDhswj4mE3SI03jatVKWU9iWPbDPc88dCSU047IiZXwLZlyu
us0hKTdSC91uWqqbBLYsFe3+PBF7EhygUjpHYeZigoTaSYAhV4F1GsIRxMNg
Mq+03ZHG0KgYU0QcUuE6163pq3PXiVcqK0oxBvGf6MljhXQdtEDB2npRVsQE
n7B3fVIq3G4fiEWaaC+jdOZhElsWZlYnFG2/4k+Sq2usDqa6YoQqYlwS/8mG
N+R6bnhnsP0dum3fbHqj3dOJBIyZ6bVTNssghkbbN6yNfZUIQ1sQf0fnAgsP
J6Bz2NlUA+2IizDxoRrwcC0yofs4fXGec2URD9/EwfKJNBudoFFlfKv9QboO
mWPfmOlAVcydCAA6LM/soloZlUEOXFRIEiLpDZZDrH3fsqFuJpffWADL0gwa
D+ccdscZENBvlc3anWo/as8oq/0nk5i5DV3VthZLVRrrGp9kageW9vpuXw43
MLMmBrk18jSfcS6Wn2BtVP1knE5vO/UjROAOrXrNYFuzlDqtuzVGmCkNc2iv
wiwUHs5EmFdMfLdOd3teuBAetH8smMqWSOBSCu40Tw9Jhd8G+804TS4zoTWw
YvMhq6HIVigJqpF3+Wrc1mGYfwS6Kc+UwDfdJ8sNyUbWa64Vle1JJzaJgLkt
G/boXBzLlC9Tdfqma2fPEOMeSWX88dxGf0kfVg0+rHAlQ/+5eBVT/ZbHVazy
sm9YjflUcSWxB86xkdpE1Bg+Yd+rj6bzoPiK8sN6f/OOf+yZOQU9+TRMFzhl
OlX42fMSDEFwUKUdULlOQWjHztdZ9+4bDsize9XZe3b22sR6tevtl+hYTkMA
x9jsQ6DcJCwRcoGuefTr5MPauUa50+q4bD4lNIW5mWmpV/aFsDCZpaXLt0Ra
Tw5B6544k3V80/Rmatar/QGFbZpmf4ZXMiDXr2TJFS3NEMJjyq2G2qUXYrg4
QCqF0/7idFXK/4LdWi3atDJbcTsSjkv9i3vVNj3dQRdsO55WFjMVnaJEliJ1
hWLB6owt/bToF6gTdEdluACr0NusigLfDBErPHcf9hFZVEubNiISjZNy6IJP
EabPbjpegzjlaPmoT+dtXgUbux+wFAuTinDlrKfj1u7zJRlklWitKaQccHxg
Ge/Hc+5IvPyOPolm29xPSy60BJtM4jCwwTjO3ByLix7OsIif0KYlucJRDwtT
MLm1jbDKvUFwDfNLxkcO9hTmEeUm5MFKCnLMLrfSa0YUdSrQWkX53LNkvVOJ
wrJFxv5CwP6LQ5QNRdYzgKcE0rhzaF55aLi+cBdr5S3iKOZPCcAzrcJN74k7
+CQ3jpe6l3bjFZnPRFhw3gh8VBxhrbfNlouGy3nnK9zL3gPcyzvCmU37Gymk
vo7CppNfxDWHbqQaADgyV51FYg8KBkpQZqRF8I0OEmxEigYfHrqtMNKhYj2o
syd3rNnxLxAqI4UUzWWR6BC6SyVkkGN/O86iqbMF9xCd2yDc2tnpLOSevCJQ
r/KWRYhqETe5KFyvz/Q/1dss1encJjbeuhYlr9/QcrmynBbRq+soLUQ+0yXM
C0v7XW2l4//ELVtzKYqmhIgBwtHDLa0+V9Hm2dcJaOEJOecNutYNq6Mo8uLv
G8qtUlK/zfwRcr1KQl7ZJxMIWcr2y0DT3NaMHYaqoEosUY5AwpV4ubLDjv+u
XILTEbLX79XWM+D1cJiVV52aCEkqOgo/aDRcZm03EkhlSuI7BMZDBlSNBG+S
kdfEGFXKo4w20ec+moZ05qmVliDvyortxMphzzTYnwXBkMCZ8kVJk4owaJK+
KnH8LWxHWcmOzLTjlU27NsiJImurPvtHxESVj57YAR4gGWplwJL02uaIIuzw
wbGo0zL1nv16Yz2u5yfjS6xfv9f4mW1XoLe/mP5z/q582W8wcmhDNAWxItB6
wzWMhaLTSta4czt3mMSphjtaLa/+Ur8xfzybdbumQZ80q+Q4vrKirtutUloo
pbb5MVNkt/C2Sow/BvkH1GjcRHxbVVUgKJO3pGIm0CYLQw2znMtIHqruOnNW
htABnEpi5ViElPzWGX1CcH9O5Ouc2AoNZzAjjgpcLu8z0tzlOf4PPWKCbOi7
i9W4+h0x0EJrS3tIo7+y36w4BTUJrwL98gVhVuVdlYtMmPJn/zS6rj5hFocC
0Nyhjc/nvIZaQpHL6pSmB8M6WdRSrMzWbBqIMcc4zY0FiV2UffKH4R4KyBXV
ERlb2n2frIG/ivs/4+UWj/dLk562J+E+Nlh7zD0U98lhA480nelrh+Q+vLc2
bO283IdHaw9vPrpH/jmAtbCqeBBNpWXIeSJxI5d0JTU7cWuDYdedMNrbG+y1
/GH/cHg42u8f7jE2eL2D4XC0Pxx29wf73cO9vd6ot+c3eqP2mFC/+3FGPy1/
0Hf+lI+ASaMhPvbKj80PF693Fpq7zapFjGG5O5JHWl5FhCszNo2z3OZjSn30
5SpjZd1th256Tbop6aUwZjsS1RoAjS3rZQO5Z7PIwTKJX0eVQ+BXklQ7pHPZ
zIka3zGupXNexE0TNCtVNiIKap5qrV4xJqsBxdqZCzFXYzu6dTUau7C0QURY
rCSi0BbB+23MllN3WyLJPDs+wpZt11hWiUWLXtsqq6B041doiMiJ6lkQqSAB
dxZqMNPvzspk/lxYf6lu865CjkKeeYVhD4nGP6EzIRsVuE6pWUOoytxNlItB
EE2ILGs4jiQ36UIIijS49T89UnRqC6H5Yoxu0YJkNjQPut3SkVvlFufWGGzq
9waDocRdzVIkO7r71ag+TduAlM8t7UtKanRFRSYGSQ3MnvZjvGZbdgKJnLAP
GganZ5qlVnfacCPKkaHurbWg0FY8M9oaqtxnq5C9MckqjssS767mxygzgyzJ
5mDT20wZQR05YKAvVyfwbvSQqx/kHgNN/lLJ1eXrzkRcIBaZF0zLNoHHmHYI
ladx6BARjqbT2t4cIs9pMC3ftHkY33qorl1Yq5psR6U81RLXDdWOwVulXo+U
3nQSsQvNojMXvJaMTch12EIhAt/UNoB1W5AGLk7xrGyPS/jWjkPHwwt0YSUM
WqUt2dsxvTngu6cLwwiLJl9rq86DGQcvssgPtOUyEPM0prXC+mtw3uXyAV9Z
WtBKCOe1k4/Li0WiLqkL89slLqWETXCWNOgXjLUW1ELZ3AL10jjWpcpGOjZe
Tr0uYRncqF3TAVcMquRevNdczXejM9q/fHbqN15Lj7rpkd8b9gYHxO1G3Xur
d8JZfGpp1drAx+uO6Af+YOCtGRHoDiRREJyHkpAa91UDS0AODDVA4UkZv/LZ
/ykN/R8jOvQxmqj53/6Whu0oLGZ/BYGGkyUJi6efjnz6evIhLPLvdgJYhXck
vdANM4QX2G7gsz/NglnRHsMZkSRtjSLlzNa2WME+fcKxaX5hfc1lNQp5xPrN
lQhIwEbN+VOSWCs1lHyvFiFr/Bsw+mCF5roFibdKXO7CBRyMYMsMSxNlKvTH
+KK0zzYSsCGe/RZcBwIhj56HRfiTyMYt5aYtbOaLqLCPAaT+4yceG6B8aHO4
25doPm4xtOU/vjy7uHzcNI+Jpv+dytwNZInt7pIANg32hkNIcsPR0PxmRu7T
8zK/6oL8TjlJQ+cwEuYL9HSVvJgp0VCij7eIR6lxbjEBc92dJQGaSCFkKSso
le+2VIJSSoukZTXWYQ7T5NFE3gdX+Is1bPwG94MJYjFqXUUjKbOdSX9EPrmm
6/a4VWzLv/o9Wnr2oz4+GmdpEUe2peyAP/w9L0yX2YOD/QNumIzOdJPx7nTy
u35zeDCkh00ZEOkgA32f0c+p82BWy8bxSi88CcJhfcmRvdSz8nEeQZzeAENT
40PEWrfjBRvgrtJ0WgERU9S8xQazaZRzT7AiEANSYLP0s8Amf0zrQI5Khurl
pXGVnzNlLZjBXnG+qyls4Q6xDNBFSIbQ0gbGfwV03Pgg211gIqX7x+Huhba7
8ARQGgEQsKklLJHkOKkb6HEcdDoo7sGM0+lUjJZRFrQSdy+rtCkwtR1rf5bC
rkabb/DzLT/qhJ2W2i08+4gs2BW5lV1LLApfF+vvG3MjPGfNzgLxq+iijZ1l
wBKxNu5aJfq3MZLN4ttOlYuazlpCLPOwsMktZZqI8VuoRA3Sr+oBXXs5qDmK
2V6H4k3mSIdU1lWlE9wURZckgok0njJ5wKVfRLwHkWONqtZWaS95GWXViTxU
yfDC5L1hddIvRoZZhIBzlGtBngiSxoQ3+BusxKmpTWYXSwIyXc9QQujYTqed
fZuWHNEgv9pEu1+5ZSbKq7w5+x4rK+sfeU7vbYPHbu/tSoYTBHUkSpFA3lJ3
4I1X0XES04rEdE0i6TFNaf/vbLCUk7k1CTJtWVXmBJbAcE+auzgYM/AsyOc0
wJNaSCN7hLOIqOmttbG6I8M6YAgeZ9YUpf6OlOJbwXkOJyUcN7zSvv/CrMzz
yg9RxJFbMuVRLK1+AQkOkN92MtJQB7XJeHrObxqHxQ1CI+u2atKNdmBL+Lij
yNYsw8UkW0acv07TQFLT+QjUISgudw5ccyy6zY73yqoyQuCg6rXErF5kEvgx
nZYtOnjF0pyWZzcJIpoNoAE6tsuYdUeLVV3SmV3vIMJITbmdSbqMQtu5hoUd
HbYw9gXlSqQG8Z0wWYml5W/MhbSxcpg5kLAEsDm10kShMKlrZVqjBMPp+NeR
2Df6ey3JlzITyGjciterH1JH4+DKJbC5OL5VCEaz9ZhE3R8tNIxnIrkhOwrl
AETGS7iju1mkuy6h2s4gVjMTR4KHCLHFamEatEWJSl9STgISLYms9l605TGp
VHgFpd/dCmdOmcUyDKxMbqbRb3U2FdVY7u76nY7fH9SUhLt+pKF4f8gv7u09
+L2hvLc3wotsGXzYe3var2RvwG+WxsR73pO+8vZxfvkB8/V6jtJQPwFbzs58
fuS/UBDLR1p4lq/WiTUG+C9Z+saJneHEajVMHPuUU5XHXk97/fXyuW2mS0GP
a5mYCgNuM+4KrihBRlUTbXlKbBFlL4iIxWme3xL33yBWlvfXpfg1+YvTOXE7
TC2DeXQ1h5YlSGmNCUzFJ5nDkBDHoShqt2B2GYgU3vEa52xHkQcsvgsRoefC
BZpsqtQmdw86D6e/XUE0gWyJ0vDlvZEaCKVYyJY0NzQIhSRzFwblVuWGY+EN
Q71xqwwPETNmIjmeyrbNjpwjE1nCUoOcpEJxoGfsdwgDIRq8dEO3Euc0VGxE
sBOiulYZR2CvklnE0TNKEZkbrbQ7ogLeELnaGXFE4BpbfYlCJnD6knJ8xnWg
ywoH+L4hdK8plh/OOE6TFfv2HBkU/IO7lk5XAiKTpcjK0ErpF+pcwCXpP0Nj
OCaXRaoSttoQUXmPWDK3AFQ4qDcQ9QYjDuRjyQsha7YBG4QascwJIKE5BtqH
nne/q0dnhyZwFS0NvkXZmMDBOsIEURMktpDgutIAHbjE53Rywl6YG0tVlpYD
MacsBNcnpEc9MfKWLsqKO8Ja/MV+7+Rl741aXilHthNzVr/KsegAR8BV4qzH
pULAyGckw9xZnD0Evu05zYi4kaR8wtPdqyyjYTlqMXEwX+McZYAIm5jJ/fT4
LYgAzkiE7teOdRGcwtkAlm4pIdYF8yXUKLlbsxlsIgJoXAtuK8gVYqA2EFoq
wntclbPgHq15ZIKS5CaQUEnqlEKGCEKkRe0ccbhcbscVMS3QNfLMaNCBNr00
hTIlXyYYR6gpeOQxRRMMNDuuAtDFhjVMwMmTKAHSUL0NjR27nh2UDxRbqRY4
VTJmgE56ijWPJFOt3bt3BxaKpJXokiWxC3XubBkmQ0u6Ld9xscW3Dg0tJzcz
eLUZ0lVhZpBGotV5iRsczwohkdel/JeUgGzV5zLRv06rRGUGorOYoK/K5DSQ
NJV7ZIuMiGv0pBL5z2EJqmK6t1wqRxsYTLjuZV4Zhw36He959EF7j2pwY0sI
Jyse6nLQEBSjyZryj85d1C7lgvkap8q01QStSj6NVPJ3aGnZZ1IGLa90BLUn
oRk5USCt6hVWg+yUN+FxziQFBmYfTMg55SqOCnFkzUzLURIF5Ikr5hzLm4Mr
7uutgQMKNu8iRXhTSz6M07T09oiKyPfM1tLFcXxAq+iSkNH4Ak4upgsfSDSp
hsjnHe9HYq/XYPrlybpikPFIwBHLqoFU0eQVKz/xeMGsWNKMv2lAnCY2bMkZ
qWKKGFyzgKNxjFny5PTMmDDG3LCQzz7naqSqE7KmxrNDE2ULYcGcmHVcZHBy
0bKQCzS95ZtBo2rMH6oL55ZEGTBKUlWps1vU5yQWbr7zuBbxlgemHAi4QGLS
lXiZpnJyqDJ228hJSpcI/uzUltq1LaWFptzUNK2qa1iRc+sR5KieTiYxWRoz
g7aGH/cymnyTiryWaVdab3Ox4uoIYvIyUWR67+h6cPgq4Eq/pNmSg8/yDe+X
h+zvGLAYrQ1g2/Eap89fNVE51KIY6wrAx3mAatXm9iJYYdvguSdpfhIl36nG
dFRPrrDFQWxxeUNBS4DziRIpCpPrKEsTkSecCtmbsFtxn7bzMET3GyQYPz89
o82z9c2unXtL/fw/JsvgF2kqdX788rhGoOGoRxKr953zo+GZ1lN46+98+mRK
y+R+gykwoh+a32LIjv3qy5cddJevfdaSiZnmW9+qY17BfeTKNBCTElXxkdop
VqMvX8qa89/zGyegR/LrhYSLNL4/+f6iKfGXrTIVZj24IK8QajlJK3J2ZKEa
Il9fbRmgBQUKqSAcR4ECxiVmX7gje2+0rvYfW5hnF9Yyl9wWwxNQCRDZa5He
lIsAMCR2tcNIQGBje2nL5/1FUkuXJFkh7ybYYm2XXMkO2Z/Yo9fQ+lm8iZPX
x80tu/a37dr76uMQtN1qldhQ9+4fUfPuz9Vk+bxtvWLZ+ew34F2WeJsmZz27
0Vd/bL0PcASbcJwNvuBNK64Yk/4Lr3hjxNx/6RWv/6z3RvpcrTx2YczAJJHk
4b89tCbJg9achVwPXEn1w9bc73VHe7WyzqhV0n4TXoUfN7SqeujPH1jxE26N
lvHEpiDzwaDbBWHrHezt7al7AY605jqcn4Hf/xjkc3UCNE5eXUDI01LufpuV
7dRv97bFrTxozcRN5hsgfCeUsfq1upKf/X/9ubbEsnhRq76dbd3k/vyKsbh9
gfFBr/fnYMx91ft7e9sjg/6XwRj1KNaaSHEokMSESg1mUzEMEfS9USmpNSBp
ZcjEWFv6g1ZsQk83XL477h6CIKVFtTNbo0biqnGnzW/H2VM37i/QoM2qL/ir
iJzGdbqr3rToMuKlXkTksx9WI662HdEdP38uBsqvlRJRMGwqJqLBntpWiyuG
nJeFPFWw2iIzQkzySqkW2WjsYRc536lRm26UDaHNh5NVBoW9Zl2pCu2XrDXp
k7UKDFz5WANSJRjlSblAE64w5XwRD6phmSZqjRrbhrZ+aLaep+Jb9MSI4r6s
kcxIK6cttUk3GQeTDyg76j+PcjZwfR9dIQmODmWViBU3nBKkPx2ZFDVgc8Rm
s+92ej06Bbn2UgX8yDuiTX77bfkJapNzhoNbLNw8tvYFnq5XFjcP1z+vLJsd
WF+3agQxyK03M5SfYB0oyV39vvyEv78pal+bD/DtrXZ2Kr8uP7EwqT7gfCRP
aCdj9wn7kafoXOtc54Br05fmLYgN1UflEwP/6rTlJ/i+LJttvi8/wfe2kmT5
gPORWYEWsKouwn7orV3Wylrtp+V+DH2p7sl86o5nVNr6iOZzwqvjCdoZxeFU
Aqeqt5xvOtEsg2ff7SQpiFEDKd8tRN02VfH3n8MN8A65mUe+yJFcGj6P1PjH
JIvZCNrMS8NE6eYteteGUSR0IEGZA3kSv8rT/z8oicfPn/MAAA==

-->

</rfc>
