<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-cbor-tags-oid-01" indexInclude="true" ipr="trust200902" prepTime="2020-09-30T20:31:25" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="1" tocInclude="true" xml:lang="en">
  <!-- xml2rfc v2v3 conversion 3.2.1 -->
  <front>
    <title abbrev="CBOR Tags for OIDs">Concise Binary Object Representation (CBOR) Tags for Object Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-tags-oid-01" stream="IETF"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization showOnFrontPage="true">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>
    <author initials="S." surname="Leonard" fullname="Sean Leonard">
      <organization showOnFrontPage="true">Penango, Inc.</organization>
      <address>
        <postal>
          <street>5900 Wilshire Boulevard</street>
          <street>21st Floor</street>
          <city>Los Angeles, CA</city>
          <code>90036</code>
          <country>USA</country>
        </postal>
        <email>dev+ietf@seantek.com</email>
        <uri>http://www.penango.com/</uri>
      </address>
    </author>
    <date month="09" year="2020" day="30"/>
    <keyword>Internet-Draft</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">The Concise Binary Object Representation (CBOR, draft-ietf-cbor-7049bis) 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 indent="0" pn="section-abstract-2">The present document defines CBOR tags for
object identifiers (OIDs).  It is intended
as the reference document for the IANA registration of the CBOR tags
so defined.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
        This Internet-Draft is submitted in full conformance with the
        provisions of BCP 78 and BCP 79.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
        Internet-Drafts are working documents of the Internet Engineering Task
        Force (IETF). Note that other groups may also distribute working
        documents as Internet-Drafts. The list of current Internet-Drafts is
        at <eref target="https://datatracker.ietf.org/drafts/current/" brackets="none"/>.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
        Internet-Drafts are draft documents valid for a maximum of six months
        and may be updated, replaced, or obsoleted by other documents at any
        time. It is inappropriate to use Internet-Drafts as reference
        material or to cite them other than as "work in progress."
        </t>
        <t indent="0" pn="section-boilerplate.1-4">
        This Internet-Draft will expire on 3 April 2021.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2020 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Simplified BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Simplified BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-object-identifiers">Object Identifiers</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-examples">Examples</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-discussion">Discussion</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tag-factoring-with-oid-arra">Tag Factoring with OID Arrays and Maps</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-applications-and-examples-o">Applications and Examples of OIDs</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cddl-control-operators">CDDL Control Operators</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-change-log">Change Log</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" toc="include" numbered="true" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The Concise Binary Object Representation (CBOR, <xref target="I-D.ietf-cbor-7049bis" format="default" sectionFormat="of" derivedContent="I-D.ietf-cbor-7049bis"/>) provides
for the interchange of structured data without a requirement for a
pre-agreed schema.
<xref target="I-D.ietf-cbor-7049bis" format="default" sectionFormat="of" derivedContent="I-D.ietf-cbor-7049bis"/> defines a basic set of data types, as well as a tagging
mechanism that enables extending the set of data types supported via
an IANA registry.</t>
      <t indent="0" pn="section-1-2">The present document defines CBOR tags for object identifiers
(OIDs, <xref target="X.660" format="default" sectionFormat="of" derivedContent="X.660"/>), which many IETF protocols carry.
The ASN.1 Basic Encoding Rules
(BER, <xref target="X.690" format="default" sectionFormat="of" derivedContent="X.690"/>) specify binary encodings of both (absolute) object identifiers
and relative object identifiers.
The contents of these encodings (the "value" part of BER's
type-length-value structure) can be carried in a CBOR byte string.
This document defines two CBOR tags that cover the two kinds of
ASN.1 object identifiers encoded in this way.
The tags can also be applied to arrays and maps to efficiently tag all
elements of an array or all keys of a map.
It is intended as the reference document for the IANA registration of
the tags so defined.</t>
      <section anchor="terms" toc="exclude" numbered="true" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-1.1-1">The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t indent="0" pn="section-1.1-2">The terminology of draft-ietf-cbor-7049bis applies; in particular
the term "byte" is used in its now customary sense as a synonym for
"octet".</t>
      </section>
    </section>
    <section anchor="oids" toc="include" numbered="true" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-object-identifiers">Object Identifiers</name>
      <t indent="0" pn="section-2-1">The International Object Identifier tree <xref target="X.660" format="default" sectionFormat="of" derivedContent="X.660"/> is
a hierarchically managed space of
identifiers, each of which is uniquely represented as a sequence of
unsigned integer values
<xref target="X.680" format="default" sectionFormat="of" derivedContent="X.680"/>.
(These integer values are called "primary integer values" in X.660
because they can be accompanied by (not necessarily unambiguous)
secondary identifiers.  We ignore the latter and simply use the term
"integer values" here, possibly calling out their unsignedness.)</t>
      <t indent="0" pn="section-2-2">While these sequences can easily be represented in CBOR arrays of
unsigned integers, a more compact representation can often be achieved
by adopting the widely used representation of object identifiers
defined in BER; this representation may also be more amenable to
processing by other software making use of object identifiers.</t>
      <t indent="0" pn="section-2-3">BER represents the sequence of unsigned integers by concatenating
self-delimiting <xref target="RFC6256" format="default" sectionFormat="of" derivedContent="RFC6256"/> representations of each of the integer values in sequence.</t>
      <t indent="0" pn="section-2-4">ASN.1 distinguishes absolute object identifiers (ASN.1 Type <tt>OBJECT IDENTIFIER</tt>),
which begin at a root arc (<xref target="X.660" format="default" sectionFormat="of" derivedContent="X.660"/> Clause 3.5.21), from relative object
identifiers (ASN.1 Type <tt>RELATIVE-OID</tt>), which begin
relative to some object identifier known from context (<xref target="X.680" format="default" sectionFormat="of" derivedContent="X.680"/>
Clause 3.8.63).
As a special optimization,
BER combines the first two integers in an absolute object identifier
into one numeric identifier by making use of the property of the
hierarchy that the first arc has only three integer values (0, 1, and 2),
and the second arcs under 0 and 1 are limited to the integer values between
0 and 39.  (The root arc <tt>joint-iso-itu-t(2)</tt> has
no such limitations on its second arc.)
If X and Y are the first two integers,
the single integer actually encoded is computed as:</t>
      <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-2-5">
        <li pn="section-2-5.1">X * 40 + Y</li>
      </ul>
      <t indent="0" pn="section-2-6">The inverse transformation (again making use of the known ranges of X
and Y) is applied when decoding the object identifier.</t>
      <t indent="0" pn="section-2-7">Since the semantics of absolute and relative object identifiers
differ, this specification defines two tags, collectively called the
"OID tags" here:</t>
      <t indent="0" pn="section-2-8">Tag TBD111: tags a byte string as the <xref target="X.690" format="default" sectionFormat="of" derivedContent="X.690"/> encoding of an
absolute object identifier (simply "object identifier" or "OID").</t>
      <t indent="0" pn="section-2-9">Tag TBD110: tags a byte string as the <xref target="X.690" format="default" sectionFormat="of" derivedContent="X.690"/> encoding of a relative
object identifier (also "relative OID").  Since the encoding of each
number is the same as for <xref target="RFC6256" format="default" sectionFormat="of" derivedContent="RFC6256"/> Self-Delimiting Numeric Values
(SDNVs), this tag can also be used for tagging a byte string that
contains a sequence of zero or more SDNVs.</t>
      <section anchor="reqts" toc="exclude" numbered="true" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-requirements-on-the-byte-st">Requirements on the byte string being tagged</name>
        <t indent="0" pn="section-2.1-1">To form a valid tag, a byte string tagged by TBD111 or TBD110 MUST be a syntactically valid BER
representation of an object identifier: A concatenation of zero or
more SDNV values, where each SDNV value is a sequence of one or more bytes that
all have their most significant bit set, except for the last byte,
where it must be unset; the first byte of each SDNV cannot be 0x80
(which would be a leading zero in SDNV's base-128 arithmetic).</t>
        <t indent="0" pn="section-2.1-2">In other words:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.1-3">
          <li pn="section-2.1-3.1">its first byte, and any byte that follows a byte that has the most significant
bit unset, MUST NOT be 0x80 (this requirement requires expressing the
integer values in their shortest form, with no leading zeroes)</li>
          <li pn="section-2.1-3.2">its last byte MUST NOT have the most significant bit set (this
requirement excludes an incomplete final integer value)</li>
        </ul>
        <t indent="0" pn="section-2.1-4">If either of these invalid conditions are encountered, the tag is
invalid.</t>
        <t indent="0" pn="section-2.1-5"><xref target="X.680" format="default" sectionFormat="of" derivedContent="X.680"/> restricts RELATIVE-OID values to have at least
one arc, i.e., their encoding would have at least one SDNV.
This specification permits
empty relative object identifiers; they may
still be excluded by application semantics.</t>
        <t indent="0" pn="section-2.1-6">To facilitate the search for specific object ID values, it is RECOMMENDED
that definite length encoding (see Section 3.2.3 of <xref target="I-D.ietf-cbor-7049bis" format="default" sectionFormat="of" derivedContent="I-D.ietf-cbor-7049bis"/>) is used
for the byte strings used as tag content for these tags.</t>
        <t indent="0" pn="section-2.1-7">The valid set of byte strings can also be expressed using regular
expressions on bytes, using no specific notation but resembling
<xref target="PCRE" format="default" sectionFormat="of" derivedContent="PCRE"/>.  Unlike typical regular expressions that operate on
character sequences, the following regular expressions take bytes as
their domain, so they can be applied directly to CBOR byte strings.</t>
        <t indent="0" pn="section-2.1-8">For byte strings with tag TBD111:</t>
        <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-2.1-9">
          <li pn="section-2.1-9.1">
            <tt>/^(([\x81-\xFF][\x80-\xFF]*)?[\x00-\x7F])+$/</tt></li>
        </ul>
        <t indent="0" pn="section-2.1-10">For byte strings with tag TBD110:</t>
        <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-2.1-11">
          <li pn="section-2.1-11.1">
            <tt>/^(([\x81-\xFF][\x80-\xFF]*)?[\x00-\x7F])*$/</tt></li>
        </ul>
        <t indent="0" pn="section-2.1-12">A tag with tagged content that does not conform to the applicable
regexp is invalid.</t>
      </section>
    </section>
    <section anchor="examples" toc="include" numbered="true" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-examples">Examples</name>
      <section anchor="encoding-of-the-sha-256-oid" toc="exclude" numbered="true" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-encoding-of-the-sha-256-oid">Encoding of the SHA-256 OID</name>
        <dl newline="false" spacing="normal" indent="3" pn="section-3.1-1">
          <dt pn="section-3.1-1.1">ASN.1 Value Notation:</dt>
          <dd pn="section-3.1-1.2">
  { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)
  csor(3) nistalgorithm(4) hashalgs(2) sha256(1) }</dd>
          <dt pn="section-3.1-1.3">Dotted Decimal Notation:</dt>
          <dd pn="section-3.1-1.4">
  2.16.840.1.101.3.4.2.1</dd>
        </dl>
        <figure anchor="fig-sha-ber" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-sha-256-oid-in-ber">SHA-256 OID in BER</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.1-2.1"><![CDATA[
06                                # UNIVERSAL TAG 6
   09                             # 9 bytes, primitive
      60 86 48 01 65 03 04 02 01  # X.690 Clause 8.19
#      |   840  1  |  3  4  2  1    show component encoding
#   2.16         101
]]></artwork>
        </figure>
        <figure anchor="fig-sha-cbor" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-sha-256-oid-in-cbor">SHA-256 OID in CBOR</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.1-3.1"><![CDATA[
D8 6F                             # tag(111)
   49                             # 0b010_01001: mt 2, 9 bytes
      60 86 48 01 65 03 04 02 01  # X.690 Clause 8.19
]]></artwork>
        </figure>
      </section>
      <section anchor="encoding-of-a-mib-relative-oid" toc="exclude" numbered="true" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-encoding-of-a-mib-relative-">Encoding of a MIB Relative OID</name>
        <t indent="0" pn="section-3.2-1">Given some OID (e.g., <tt>lowpanMib</tt>, assumed to be <tt>1.3.6.1.2.1.226</tt> <xref target="RFC7388" format="default" sectionFormat="of" derivedContent="RFC7388"/>),
to which the following is added:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-3.2-2">
          <dt pn="section-3.2-2.1">ASN.1 Value Notation:</dt>
          <dd pn="section-3.2-2.2">
  { lowpanObjects(1) lowpanStats(1) lowpanOutTransmits(29) }</dd>
          <dt pn="section-3.2-2.3">Dotted Decimal Notation:</dt>
          <dd pn="section-3.2-2.4">
  .1.1.29</dd>
        </dl>
        <figure anchor="fig-mib-ber" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-mib-relative-object-identif">MIB relative object identifier, in BER</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.2-3.1"><![CDATA[
0D                                # UNIVERSAL TAG 13
   03                             # 3 bytes, primitive
      01 01 1D                    # X.690 Clause 8.20
#      1  1 29                      show component encoding
]]></artwork>
        </figure>
        <figure anchor="fig-mib-cbor" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-mib-relative-object-identifi">MIB relative object identifier, in CBOR</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.2-4.1"><![CDATA[
D8 6E                             # tag(110)
   43                             # 0b010_01001: mt 2 (bstr), 3 bytes
      01 01 1D                    # X.690 Clause 8.20
]]></artwork>
        </figure>
        <t indent="0" pn="section-3.2-5">This relative OID saves seven bytes compared to the full OID encoding.</t>
      </section>
    </section>
    <section anchor="discussion" toc="include" numbered="true" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-discussion">Discussion</name>
      <t indent="0" pn="section-4-1">Staying close to the way object identifiers are encoded in ASN.1
BER makes back-and-forth translation easy; otherwise we would choose a
more efficient encoding.  Object
identifiers in IETF protocols
are serialized in dotted decimal form or BER form, so
there is an advantage in not inventing a third form.  Also,
expectations of the cost of encoding object identifiers are
based on BER; using a different encoding might not be aligned with
these expectations. If additional information about an OID is desired,
lookup services such as
the <xref target="X.672" format="default" sectionFormat="of" derivedContent="X.672">OID Resolution Service (ORS)</xref>
and the <xref target="OID-INFO" format="default" sectionFormat="of" derivedContent="OID-INFO">OID Repository</xref> are available.</t>
    </section>
    <section anchor="tfs" toc="include" numbered="true" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-tag-factoring-with-oid-arra">Tag Factoring with OID Arrays and Maps</name>
      <t indent="0" pn="section-5-1">OID tags can tag byte strings (as discussed above), but also CBOR arrays and maps.
The idea in the latter case is that
the tag is factored out from each individual item in the container;
the tag is placed on the array or map instead.
<!-- I don't think this sentence really helps:
The tags TBD111 and TBD110 are left-distributive. -->
      </t>
      <t indent="0" pn="section-5-2">When an OID tag is applied to an array, it means
that the respective tag is imputed to all elements of the array that are
byte strings, arrays, or maps.  (There is no effect on other elements,
including text strings or tags.)
For example, when an array is tagged with TBD111,
every array element that is a byte string
is an OID, and every element that is an array or map is in turn
treated as discussed here.</t>
      <t indent="0" pn="section-5-3">When an OID tag is applied to a map, it means that
the respective tag is imputed to all keys in the map that are byte
strings, arrays, or maps; again, there is no effect on keys of other major types.
Note that there is also no effect on the values in the map.</t>
      <t indent="0" pn="section-5-4">As a result of these rules, tag factoring in nested arrays and maps is supported.
For example,
a 3-dimensional array of OIDs can be composed by using
a single TBD111 tag containing an array of arrays of arrays
of byte strings. All such byte strings are then considered OIDs.
  <cref anchor="_1" display="true">Now what may be needed is a tag that can stop the recursive
application.  I'm not sure that level complexity is really useful,
instead, simply don't tag-factor arrays with elements or maps with
keys where you are not sure you really want recursive application.</cref></t>
    </section>
    <section anchor="applications-and-examples-of-oids" toc="include" numbered="true" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-applications-and-examples-o">Applications and Examples of OIDs</name>
      <section anchor="x500-distinguished-name" toc="exclude" numbered="true" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-x500-distinguished-name">X.500 Distinguished Name</name>
        <t indent="0" pn="section-6.1-1">Consider the X.500 distinguished name:</t>
        <table anchor="tab-dn-data" align="center" pn="table-1">
          <name slugifiedName="name-example-x500-distinguished-">Example X.500 Distinguished Name</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Attribute Types</th>
              <th align="left" colspan="1" rowspan="1">Attribute Values</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">c (2.5.4.6)</td>
              <td align="left" colspan="1" rowspan="1">US</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">l (2.5.4.7)<br/>s (2.5.4.8)<br/>postalCode (2.5.4.17)</td>
              <td align="left" colspan="1" rowspan="1">Los Angeles<br/>CA<br/>90013</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">street (2.5.4.9)</td>
              <td align="left" colspan="1" rowspan="1">532 S Olive St</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">businessCategory (2.5.4.15)<br/>buildingName (0.9.2342.19200300.100.1.48)</td>
              <td align="left" colspan="1" rowspan="1">Public Park<br/>Pershing Square</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-6.1-3"><xref target="tab-dn-data" format="default" sectionFormat="of" derivedContent="Table 1"/> has four "relative distinguished names" (RDNs). The country and street RDNs are single-valued.
The second and fourth RDNs are multi-valued.</t>
        <t indent="0" pn="section-6.1-4">The equivalent representations in CBOR diagnostic notation and CBOR are:</t>
        <figure anchor="fig-dn-cbor-diag-7049" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-distinguished-name-in-cbor-">Distinguished Name, in CBOR Diagnostic Notation</name>
          <artwork name="" type="" align="left" alt="" pn="section-6.1-5.1"><![CDATA[
111([{ h'550406': "US" },
     { h'550407': "Los Angeles", h'550408': "CA",
       h'550411': "90013" },
     { h'550409': "532 S Olive St" },
     { h'55040f': "Public Park",
       h'0992268993f22c640130': "Pershing Square" }])
]]></artwork>
        </figure>
        <figure anchor="fig-dn-cbor" align="left" suppress-title="false" pn="figure-6">
          <name slugifiedName="name-distinguished-name-in-cbor-1">Distinguished Name, in CBOR (109 bytes)</name>
          <artwork name="" type="" align="left" alt="" pn="section-6.1-6.1"><![CDATA[
d8 6f                                      # tag(111)
   84                                      # array(4)
      a1                                   # map(1)
         43 550406                         # 2.5.4.6 (4)
         62                                # text(2)
            5553                           # "US"
      a3                                   # map(3)
         43 550407                         # 2.5.4.7 (4)
         6b                                # text(11)
            4c6f7320416e67656c6573         # "Los Angeles"
         43 550408                         # 2.5.4.8 (4)
         62                                # text(2)
            4341                           # "CA"
         43 550411                         # 2.5.4.17 (4)
         65                                # text(5)
            3930303133                     # "90013"
      a1                                   # map(1)
         43 550409                         # 2.5.4.9 (4)
         6e                                # text(14)
            3533322053204f6c697665205374   # "532 S Olive St"
      a2                                   # map(2)
         43 55040f                         # 2.5.4.15 (4)
         6b                                # text(11)
            5075626c6963205061726b         # "Public Park"
         4a 0992268993f22c640130    # 0.9.2342.19200300.100.1.48 (11)
         6f                                # text(15)
            5065727368696e6720537175617265 # "Pershing Square"
]]></artwork>
        </figure>
        <t indent="0" pn="section-6.1-7">(This example encoding assumes that all attribute values are UTF-8 strings,
or can be represented as UTF-8 strings with no loss of information.)</t>
      </section>
    </section>
    <section anchor="control" toc="include" numbered="true" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-cddl-control-operators">CDDL Control Operators</name>
      <t indent="0" pn="section-7-1">CDDL specifications may want to specify the use of SDNVs or SDNV
sequences (as defined for the tag content for TBD110).  This document
introduces two new control operators that can be applied to a target
value that is a byte string:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-7-2">
        <li pn="section-7-2.1">
          <tt>.sdnv</tt>, with a control type that contains unsigned integers.  The
byte string is specified to be encoded as an <xref target="RFC6256" format="default" sectionFormat="of" derivedContent="RFC6256"/> SDNV (BER
encoding) for the matching values of the control type.</li>
        <li pn="section-7-2.2">
          <tt>.sdnvseq</tt>, with a control type that contains arrays of unsigned
integers.  The byte string is specified to be encoded as a sequence
of <xref target="RFC6256" format="default" sectionFormat="of" derivedContent="RFC6256"/> SDNVs (BER encoding) that decodes to an array of
unsigned integers matching the control type.</li>
        <li pn="section-7-2.3">
          <tt>.oid</tt>, like <tt>.sdnvseq</tt>, except that the X*40+Y translation for
absolute OIDs is included (see <xref target="fig-dn-cddl-oid" format="default" sectionFormat="of" derivedContent="Figure 8"/>).</li>
      </ul>
      <t indent="0" pn="section-7-3"><xref target="fig-dn-cddl" format="default" sectionFormat="of" derivedContent="Figure 7"/> shows an example for the use of <tt>.sdnvseq</tt> for a part
of a structure using OIDs that could be used in <xref target="fig-dn-cbor" format="default" sectionFormat="of" derivedContent="Figure 6"/>;
<xref target="fig-dn-cddl-oid" format="default" sectionFormat="of" derivedContent="Figure 8"/> shows the same with the <tt>.oid</tt> operator.</t>
      <figure anchor="fig-dn-cddl" align="left" suppress-title="false" pn="figure-7">
        <name slugifiedName="name-using-sdnvseq">Using .sdnvseq</name>
        <artwork type="cddl" name="" align="left" alt="" pn="section-7-4.1"><![CDATA[
country-rdn = {country-oid => country-value}
country-oid = bytes .sdnvseq [85, 4, 6]
country-value = text .size 2
]]></artwork>
      </figure>
      <figure anchor="fig-dn-cddl-oid" align="left" suppress-title="false" pn="figure-8">
        <name slugifiedName="name-using-oid">Using .oid</name>
        <artwork type="cddl" name="" align="left" alt="" pn="section-7-5.1"><![CDATA[
country-rdn = {country-oid => country-value}
country-oid = bytes .oid [2, 5, 4, 6]
country-value = text .size 2
]]></artwork>
      </figure>
      <t indent="0" pn="section-7-6">(Note that the control type need not be a literal; e.g., <tt>bytes .oid
[2, 5, 4, *uint]</tt> matches all OIDs inside OID arc 2.5.4,
<tt>attributeType</tt>.)</t>
    </section>
    <section anchor="iana" toc="include" numbered="true" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="cbor-tags" toc="exclude" numbered="true" removeInRFC="false" pn="section-8.1">
        <name slugifiedName="name-cbor-tags">CBOR Tags</name>
        <t indent="0" pn="section-8.1-1">IANA is requested to assign the CBOR tags in <xref target="tab-tag-values-new" format="default" sectionFormat="of" derivedContent="Table 2"/>, with the
present document as the specification reference.</t>
        <table anchor="tab-tag-values-new" align="center" pn="table-2">
          <name slugifiedName="name-values-for-new-tags">Values for New Tags</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Tag</th>
              <th align="left" colspan="1" rowspan="1">Data Item</th>
              <th align="right" colspan="1" rowspan="1">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">TBD111</td>
              <td align="left" colspan="1" rowspan="1">byte string or array or map</td>
              <td align="right" colspan="1" rowspan="1">object identifier (BER encoding)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">TBD110</td>
              <td align="left" colspan="1" rowspan="1">byte string or array or map</td>
              <td align="right" colspan="1" rowspan="1">relative object identifier (BER encoding); <br/>SDNV <xref target="RFC6256" format="default" sectionFormat="of" derivedContent="RFC6256"/> sequence</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cddl-control-operators" toc="exclude" numbered="true" removeInRFC="false" pn="section-8.2">
        <name slugifiedName="name-cddl-control-operators-2">CDDL Control Operators</name>
        <t indent="0" pn="section-8.2-1">IANA is requested to assign the CDDL Control Operators in
<xref target="tab-operators-new" format="default" sectionFormat="of" derivedContent="Table 3"/>, with the present document as the specification
reference.</t>
        <table anchor="tab-operators-new" align="center" pn="table-3">
          <name slugifiedName="name-new-cddl-operators">New CDDL Operators</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">.sdnv</td>
              <td align="left" colspan="1" rowspan="1">[this document, <xref target="control" format="default" sectionFormat="of" derivedContent="Section 7"/>]</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">.sdnvseq</td>
              <td align="left" colspan="1" rowspan="1">[this document, <xref target="control" format="default" sectionFormat="of" derivedContent="Section 7"/>]</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">.oid</td>
              <td align="left" colspan="1" rowspan="1">[this document, <xref target="control" format="default" sectionFormat="of" derivedContent="Section 7"/>]</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="security-considerations" toc="include" numbered="true" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-9-1">The security considerations of <xref target="I-D.ietf-cbor-7049bis" format="default" sectionFormat="of" derivedContent="I-D.ietf-cbor-7049bis"/> apply.</t>
      <t indent="0" pn="section-9-2">The encodings in Clauses 8.19 and 8.20 of <xref target="X.690" format="default" sectionFormat="of" derivedContent="X.690"/> are quite compact and unambiguous,
but MUST be followed precisely to avoid security pitfalls.
In particular, the requirements set out in <xref target="reqts" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of this document need to be
followed; otherwise, an attacker may be able to subvert a checking
process by submitting alternative representations that are later taken
as the original (or even something else entirely) by another decoder
supposed to be protected by the checking process.</t>
      <t indent="0" pn="section-9-3">OIDs and relative OIDs can always be treated as opaque byte strings.
Actually understanding the structure that was used for generating them
is not necessary, and, except for checking the structure requirements,
it is strongly NOT RECOMMENDED to perform any
processing of this kind (e.g., converting into dotted notation and
back) unless absolutely necessary.
If the OIDs are translated into other representations, the usual
security considerations for non-trivial representation conversions
apply; the integer values are unlimited in range.</t>
      <section anchor="bdconv" toc="exclude" numbered="true" removeInRFC="false" pn="section-9.1">
        <name slugifiedName="name-conversions-between-ber-and">Conversions Between BER and Dotted Decimal Notation</name>
        <t indent="0" pn="section-9.1-1"><xref target="PKILCAKE" format="default" sectionFormat="of" derivedContent="PKILCAKE"/> uncovers exploit vectors for the illegal values above,
as well as for cases in which conversion to or from the dotted decimal notation
goes awry. Neither <xref target="X.660" format="default" sectionFormat="of" derivedContent="X.660"/> nor <xref target="X.680" format="default" sectionFormat="of" derivedContent="X.680"/> place an upper bound on the
range of unsigned integer values for an arc; the integers are arbitrarily valued.
An implementation SHOULD NOT attempt to convert each component using a
fixed-size accumulator, as an attacker will certainly be able to
cause the accumulator to overflow. Compact and efficient techniques
for such conversions, such as the double dabble algorithm <xref target="DOUBLEDABBLE" format="default" sectionFormat="of" derivedContent="DOUBLEDABBLE"/>
are well-known in the art; their application to this field is left
as an exercise to the reader.</t>
      </section>
    </section>
  </middle>
  <back>
    <references pn="section-10">
      <name slugifiedName="name-references">References</name>
      <references pn="section-10.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="I-D.ietf-cbor-7049bis" target="http://www.ietf.org/internet-drafts/draft-ietf-cbor-7049bis-15.txt" quoteTitle="true" derivedAnchor="I-D.ietf-cbor-7049bis">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author initials="C" surname="Bormann" fullname="Carsten Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P" surname="Hoffman" fullname="Paul Hoffman">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="September" day="24" year="2020"/>
            <abstract>
              <t indent="0">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.  This document is a revised edition of RFC 7049, with editorial improvements, added detail, and fixed errata.  This revision formally obsoletes RFC 7049, while keeping full compatibility of the interchange format from RFC 7049.  It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-7049bis-15"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  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="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6256" target="https://www.rfc-editor.org/info/rfc6256" quoteTitle="true" derivedAnchor="RFC6256">
          <front>
            <title>Using Self-Delimiting Numeric Values in Protocols</title>
            <author initials="W." surname="Eddy" fullname="W. Eddy">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Davies" fullname="E. Davies">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="May"/>
            <abstract>
              <t indent="0">Self-Delimiting Numeric Values (SDNVs) have recently been introduced as a field type in proposed Delay-Tolerant Networking protocols. SDNVs encode an arbitrary-length non-negative integer or arbitrary- length bitstring with minimum overhead.  They are intended to provide protocol flexibility without sacrificing economy and to assist in future-proofing protocols under development.  This document describes formats and algorithms for SDNV encoding and decoding, along with notes on implementation and usage.  This document is a product of the Delay-Tolerant Networking Research Group and has been reviewed by that group.  No objections to its publication as an RFC were raised.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6256"/>
          <seriesInfo name="DOI" value="10.17487/RFC6256"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="X.660" quoteTitle="true" derivedAnchor="X.660">
          <front>
            <title>Information technology — Procedures for the operation of object identifier registration authorities: General procedures and top arcs of the international object identifier tree</title>
            <author>
              <organization showOnFrontPage="true">International Telecommunications Union</organization>
            </author>
            <date year="2011" month="July"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.660"/>
        </reference>
        <reference anchor="X.680" quoteTitle="true" derivedAnchor="X.680">
          <front>
            <title>Information technology — Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization showOnFrontPage="true">International Telecommunications Union</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.680"/>
        </reference>
        <reference anchor="X.690" quoteTitle="true" derivedAnchor="X.690">
          <front>
            <title>Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization showOnFrontPage="true">International Telecommunications Union</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.690"/>
        </reference>
      </references>
      <references pn="section-10.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="DOUBLEDABBLE" quoteTitle="true" target="https://doi.org/10.1109/newcas.2012.6328944" derivedAnchor="DOUBLEDABBLE">
          <front>
            <title>An improved BCD adder using 6-LUT FPGAs</title>
            <author initials="S." surname="Gao" fullname="Shuli Gao">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Al-Khalili" fullname="Dhamin Al-Khalili">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Chabini" fullname="Noureddine Chabini">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="June"/>
          </front>
          <seriesInfo name="10th IEEE International NEWCAS" value="Conference"/>
          <seriesInfo name="DOI" value="10.1109/newcas.2012.6328944"/>
        </reference>
        <reference anchor="OID-INFO" target="http://www.oid-info.com/" quoteTitle="true" derivedAnchor="OID-INFO">
          <front>
            <title>OID Repository</title>
            <author>
              <organization showOnFrontPage="true">Orange SA</organization>
            </author>
            <date year="2016"/>
          </front>
        </reference>
        <reference anchor="PCRE" target="http://www.pcre.org/" quoteTitle="true" derivedAnchor="PCRE">
          <front>
            <title>PCRE - Perl Compatible Regular Expressions</title>
            <author initials="A." surname="Ho" fullname="Andrew Ho">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="PKILCAKE" quoteTitle="true" target="https://doi.org/10.1007/978-3-642-14577-3_22" derivedAnchor="PKILCAKE">
          <front>
            <title>PKI Layer Cake: New Collision Attacks against the Global X.509 Infrastructure</title>
            <author initials="D." surname="Kaminsky" fullname="Dan Kaminsky">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Patterson" fullname="Meredith L. Patterson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Sassaman" fullname="Len Sassaman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010"/>
          </front>
          <seriesInfo name="Financial Cryptography and Data Security" value="pp. 289-303"/>
          <seriesInfo name="DOI" value="10.1007/978-3-642-14577-3_22"/>
        </reference>
        <reference anchor="RFC7388" target="https://www.rfc-editor.org/info/rfc7388" quoteTitle="true" derivedAnchor="RFC7388">
          <front>
            <title>Definition of Managed Objects for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)</title>
            <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Sehgal" fullname="A. Sehgal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Tsou" fullname="T. Tsou">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Zhou" fullname="C. Zhou">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="October"/>
            <abstract>
              <t indent="0">This document defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community.  In particular, it defines objects for managing IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7388"/>
          <seriesInfo name="DOI" value="10.17487/RFC7388"/>
        </reference>
        <reference anchor="X.672" quoteTitle="true" derivedAnchor="X.672">
          <front>
            <title>Information technology — Open systems interconnection — Object identifier resolution system</title>
            <author>
              <organization showOnFrontPage="true">International Telecommunications Union</organization>
            </author>
            <date year="2010" month="August"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.672"/>
        </reference>
      </references>
    </references>
    <section removeInRFC="true" anchor="change-log" toc="include" numbered="true" pn="section-appendix.a">
      <name slugifiedName="name-change-log">Change Log</name>
      <t indent="0" pn="section-appendix.a-1">This section is to be removed before publishing as an RFC.</t>
      <section anchor="changes-from-07-bormann-to-00-ietf" toc="exclude" numbered="true" removeInRFC="false" pn="section-a.1">
        <name slugifiedName="name-changes-from-07-bormann-to-">Changes from -07 (bormann) to -00 (ietf)</name>
        <t indent="0" pn="section-a.1-1">Resubmitted as WG draft after adoption.</t>
      </section>
      <section anchor="changes-from-06-to-07" toc="exclude" numbered="true" removeInRFC="false" pn="section-a.2">
        <name slugifiedName="name-changes-from-06-to-07">Changes from -06 to -07</name>
        <t indent="0" pn="section-a.2-1">Reduce the draft back to its basic mandate: Describe CBOR tags for
what is colloquially know as ASN.1 Object IDs.</t>
      </section>
      <section anchor="changes-from-05-to-06" toc="exclude" numbered="true" removeInRFC="false" pn="section-a.3">
        <name slugifiedName="name-changes-from-05-to-06">Changes from -05 to -06</name>
        <t indent="0" pn="section-a.3-1">Refreshed the draft to the current date ("keep-alive").</t>
      </section>
      <section anchor="changes-from-04-to-05" toc="exclude" numbered="true" removeInRFC="false" pn="section-a.4">
        <name slugifiedName="name-changes-from-04-to-05">Changes from -04 to -05</name>
        <t indent="0" pn="section-a.4-1">Discussed UUID usage in CBOR, and incorporated fixes
proposed by Olivier Dubuisson, including fixes regarding OID nomenclature.</t>
      </section>
      <section anchor="changes-from-03-to-04" toc="exclude" numbered="true" removeInRFC="false" pn="section-a.5">
        <name slugifiedName="name-changes-from-03-to-04">Changes from -03 to -04</name>
        <t indent="0" pn="section-a.5-1">Changes occurred based on limited feedback, mainly centered around
the abstract and introduction, rather than substantive
technical changes. These changes include:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-a.5-2">
          <li pn="section-a.5-2.1">Changed the title so that it is about tags and techniques.</li>
          <li pn="section-a.5-2.2">Rewrote the abstract to describe the content more accurately,
and to point out that no changes to the wire protocol are being proposed.</li>
          <li pn="section-a.5-2.3">Removed "ASN.1" from "object identifiers", as OIDs are independent of ASN.1.</li>
          <li pn="section-a.5-2.4">Rewrote the introduction to be more about the present text.</li>
          <li pn="section-a.5-2.5">Proposed a concise OID arc.</li>
          <li pn="section-a.5-2.6">Provided binary regular expression forms for OID validation.</li>
          <li pn="section-a.5-2.7">Updated IANA registration tables.</li>
        </ul>
      </section>
      <section anchor="changes-from-02-to-03" toc="exclude" numbered="true" removeInRFC="false" pn="section-a.6">
        <name slugifiedName="name-changes-from-02-to-03">Changes from -02 to -03</name>
        <t indent="0" pn="section-a.6-1">Many significant changes occurred in this version. These changes include:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-a.6-2">
          <li pn="section-a.6-2.1">Expanded the draft scope to be a comprehensive CBOR update.</li>
          <li pn="section-a.6-2.2">Added OID-related sections: OID Enumerations,
OID Maps and Arrays, and
Applications and Examples of OIDs.</li>
          <li pn="section-a.6-2.3">Added Tag 36 update (binary MIME, better definitions).</li>
          <li pn="section-a.6-2.4">Added stub/experimental sections for X.690 Series Tags (tag &lt;&lt;X&gt;&gt;)
and Regular Expressions (tag 35).</li>
          <li pn="section-a.6-2.5">Added technique for representing sets and multisets.</li>
          <li pn="section-a.6-2.6">Added references and fixed typos.</li>
        </ul>
        <!--  LocalWords:  CBOR extensibility IANA uint sint IEEE endian IETF
 -->
<!--  LocalWords:  signedness endianness ASN BER encodings OIDs OID
 -->
<!--  LocalWords:  Implementers SDNV SDNVs repurpose SDNV's UTF
 -->

</section>
    </section>
    <section numbered="false" anchor="acknowledgments" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">Jim Schaad provided a review of this document.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization showOnFrontPage="true">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>
      <author initials="S." surname="Leonard" fullname="Sean Leonard">
        <organization showOnFrontPage="true">Penango, Inc.</organization>
        <address>
          <postal>
            <street>5900 Wilshire Boulevard</street>
            <street>21st Floor</street>
            <city>Los Angeles, CA</city>
            <code>90036</code>
            <country>USA</country>
          </postal>
          <email>dev+ietf@seantek.com</email>
          <uri>http://www.penango.com/</uri>
        </address>
      </author>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAPrOdF8AA8V86XYbSXLu/3yKNOhzGugGIGwEF7nbQ5FUD21J1OUy3X01
8qhQlQBqVKjCVBVIsdX08UP4AfzD//wI99/4Tfwk/iIisxYAFKWePufiaAGq
comMjD0is9PpqDzMI3Oov1NaHyexH2ZGPwtjL73T55M/Gz/XF2aZmszEuZeH
Saybx8/OL1r6yptlepqkttVf/+MsQJNwGpo0U95kkpqbQ01NKy3PTjIVJH7s
LTBhkHrTvBOafNrxJ0naydGsk4RBJ/Jyk+UqwH+HetAb9Dq9g86wp1SWe3Hw
Jy9KYrzI05VRKlym/DXLB73eQW+g3pu72yQNDvVZnJs0NnnnhOZRvpcf6iwP
1I5eLWno7FDv9UYHutPRcdLWYa6DxGTxV7lSy/BQv8kTv83/BmaZz9u6/7at
syTNUzPN8O1uIV/8ZLH0/Jy/LICA7K1S3iqfJ+khENrBX63DGJMdd/WzJF14
cczPBAfHXprlJq69SdLZob6OwxsgMsz/+z9z/Sw1GFpf/d8zbpABBoPVvE6y
fOr5cz0c9kajHr/zw/zu0HaQB0mAeU46g/3h7oF9sorzFK2+NzTpHT9czhmp
34wOOqNBvzPo73fGw4NBn1+ahRdGh9r3Jsnv8p/DLiCsr+2yq1+YBDQTVNZ2
aby49tgOE5ibb2jXf5ehQW7ed4E5fr9Kgfd5ni8Pnzy5vb3tLk3sxbOE3j8p
MfNanraxwX63ig/+DrD07kGvp38Io2wepqDlZBWZGwcDvR/0s1w/j5IkraDs
RZLpo3hmIoNNPT6q4A6jDcd1zF1fHimlYtq0HPtEU188Px4PdsegsSC+we+z
zkm3pG2itEkITNEvvP2xOx73BOIK+9HnLJ7KsOC03PjzOImS2Z3+n3/7d9vg
dZr4JliBI5mn8rnRydKk0iOZ6kSYNiy4UadmFgJH0kJoM8xDMIAd8XsTo3+k
l+XI4DOdJ0vtpX5Gg9IsITMUj4LGm9PQLvCIJfkXm3ZW63sFLBO7rOLQ52cZ
0XsiBOvYvt/v9PZkf00KaEMgxo15dnXduTqEYBKmC2RpjFQl2N3/Uuzqownh
CEu6vIOk+6BfJVbencdGN48uX3X7LTf/5dL4WLRfIH3iZaEPOSJdfkss7HZ6
+1+KhX2HhYMvxwKtU5sYpB/GM52Cd7IHV/2MV33qGl9QY918dnrRAgt5cUIL
i4r3dhTb6hitmMxOQJt4uwqzuQk2BjtBs//f6DwAOkOHMuF2PN0bfCluzyHQ
oDgg8BeZcJOfxDG4iNqWDH6+hYGzJFpxM+n+W2Kk9yswsjdAi9fHF6euZe6l
M1JJVentp4Y0xRPXRPBEvSCDX5s0grkB3ZmHk8hgjtkq8lJ9+oFsjYyAtf3q
yyT5LerlKA5Sc6t/n9g3xYJoNbA0Omevnp/bLdqEjuwMWmqpXNb2ESOQ4ZNA
BSfp3UMIP0+hi4y+PKrjlNTF638+e3F89M+nUL7nZ91+D396e08O9vY7w854
NOj0R7t7e53hnwaEy5Pz62cvTk+OnuHfskO/d/Dk1ekPx0eXXQw66I6Hg/2D
0UipDowWz8orKKIrSOfPN93aG5aX1U4tHULy0yo8JUSsb+cJxgxAFrNYzxIv
IsL1o1VgWCUAPVk4CSNoUJIH5kNOhkd0p7OFF0WK9KfOwp9NW0+9MHXP9QI7
7M3cKxIC6GniYqjbEIhe5TSFig2kAik6NoewhtjMkjzk9XRl6XaJsN/81YK/
mGkYQ3qw9Zlb61NtaCyIF7JIW11Qek5rJ56MAxMoL+PlwcIzKWShKYd2Kvfs
6NVRXbFaLVnMqbLEAhJ0ZccWYRBEsFnBpWkSrITv7efjTkhP79W3lc+X7+zH
j7yj9/ct0uY3WGumHMgiceZMsAAWgAMEaPuAd7xAuodl/WUVsgUp6/UUpup4
s5S2IvPnsOO6qpipwLZntWBmchqfB83vlmRPAZ+3BhvvUSsgZ0bqYGEImDBb
ADqQGsy6CYl8JgVWAQT0xmA6Wy2XMMMByk3oKZiY1a24+yKS2DRiMsUkQYhk
awKIbIMJQhjZZCrrs9Or54RZuAUJeMH3UpqSZhTFuU0jKtKIdsQDGlFnrEjv
9ER21GlbtrQmST7XTTA3SXzT2gYiMUxqIlZGW94LPFAtObkjli5BP+U0TcJs
48aLVqahl17KKAaQX2WKcNyJTDzL5x1uUNJJC8uN9cTwqkPgP4Q1KQid3OXc
EKPT7GClDcTnt0kF+bzjfnJjhDTp5fswDghaJZjcwq28AJk3pzluPYt7HpKA
g3xKCEJvuYwIwjyBBZt6d2LQLrxlRo/MFEZMiHEhkNBVk6iCqlw4dNFA1EsT
7YNq4VLKcxqhq+qyQv86WaFyB3dNTFzBJQutyVCKBvDtIrsnGVJ8hMwBmSZv
N9ONl9eXV422/K9fnfP3i9P/c312cXpC3y9/f/TiRfFF2RaXvz+/fnFSfit7
Hp+/fHn66kQ646muPVKNl0c/NUR2N85fX52dvzp60Sh2pkCBBwcs5y1h6QO2
zBllCoLJT8OJ7Oaz49d//Y/+CCzyd3CjBv3+AcSK/Njv743w43ZuYpktibFr
8hMovFPYagO7gWgRW+V7yzAHFbDIyebJbazn2JauVZJ5Bb0kVbbrQUs+2VMa
ldgj9Mk2kS3DCLpB9N4gKlhlsoIQlBMnt9pfZXmyIKaG+AHPscDL7mAK3y1Y
CTUSPzd5AwBZOV6JmmCnYZZkdR2wqQ/qRt7GMOyHlfILUCpPz/ECvtycDHLg
D7IM+hfCfOn5pAxUhc3a2lBMAegRuUerjMO/rEitp07pCN1jaVAVTPQYYxWT
lcD4yM0MgLD8yBSDsg9Quqp5xZKo3oCJhOBC18YyDRl99SZMWeLeTYzvAeu8
+U4geT5HYWJi+cmdbsIPg5ngk5WRhgB7BYtxEs5WySprqQzWLExZmqMiM7X+
AXDN4NKLZQPpCiwzxWXhYkmDyKRMAaqxDh9RWdvaQ9EdL4cUgLViwlQ77EAW
Zt2WUj/Mw8hYyeywKELMQIdgiImpoRsIYPFp5dkWfBPR6wUtwMakyv4idWjw
ZErhJsYZaOIGtg4Q5gXJMnca9xZokeUG6wNsiy4QK7P0YkY+vXgqEmCt5wLS
1AlnBhEmPOt7SAfFcQcgDgAAGOg/4DUDoLdEGAvvPb0g7G+dHpyEWcv5Mms2
FHSpN/BEs4AG4BMZYiOYIpmJph0sO1yEjAcYNxTGAffU18FqwLGHs6kqlAwU
uJkBlyiyoOLfZtop9m36TYIM+goqWL87f/ZPp8dX+uzk9NXV2fOz04t3rbYS
jpxAlUDcsamWJCRkfd0sGf44YgYZdne7gz7Ml2maLNbtBfXgvBenL46uzv5w
2oEd9K4wfnhKVQwCkZ4liy2L0O9jkrk8JVsgH3ILGgkAVYC2D1+m1VVHLEPI
GqKIEmhwEf7MiG7zpoKOJ2I8ANXTMM1ythSKfSQsxJ9AKbx2QJrERsdQRyks
swqkk7s12mKHJqVYmngz5H04uXknFksJB+F8DhHI6iifk8hdo4Vmr637orMG
2DqOqDFlkviRwNoKBkSqe9ymz2KQKVAMly3kNTH5rTGxkh7DA0gtkqglFbz7
c4IunTBLOmG+6uTNQesdgalibNgK+8jjO1IWtVUCBLF0NtU/8uA/iereivc2
a0Li16gEEfJmxbqlsNIylkMr0RWHSn2Hob/Wo57+Rv8kmiyMyanDNPCiszJs
0vRmXhhv2R0hLna5mRN/ZKz+JH6rNfnINIBBZQ1wjo6ukwVY8zIk4SD7AWUI
DS8WniOlR0xsFYRTmHttkXVZLS5WNXjJwKPMAHSbT0NZzWCYFFSDYgzURNQH
UHQFa/Tq2Um/3z8U49CrmtbO1Cw8iTJOx1arepgTdNNqscbGqwaZuQRKo9Wt
QND7FRAUKNv0tbGpJP4bBVJlQq3LnagORTJWgWkn6BlakQ6VQfOTVV3K50uS
3Cel5H5lGf0PYns0L09e/SFr2Y0iY7/qJrCOYytdXNK1xRLLK5JioMY1Y0f/
bNKEEMfKjCcB8nZ24JYXvjNzGEFeHXNieGTMh6k/7sDVzmHwqauE4FhgErB6
GFCD9jo00gdiSyiEZped0mzzk04nUzMHJ1ozT8aCJFWbipxsgfVNOtRHVcUo
De1KVbFSK41INYBqRR2WzyWGVEUVyV+HKVqQeH+KzPW5d2OsfbRIIGVIUTMn
wXWYhDl5/zBHP/hmWXpTkYeGNA6pQwIA7RYremZI1Zv8aUVsMQKdzmYgMTaZ
h2jc+7DfU03Rb7fJKgoEhZHxmAp53RBD1OurjGIbptMf7EMuhvl8YYBj4pez
2Bos7IaBhb9moVrOLhqAYgcMC6uRKQRCclvwFj+bW9Zax4PSjAleWVs7787B
T648W1tlxMZ+p0CKhFJFDCq9xVgR1MNPSinjyiTY5kAQnJkaIgwMZ1lZgf4S
FreLD+6hQAkIqnBiWymOSK45xRShKiI4h8AceTU1UGEtQy+ZkPFchDOgPJi8
SXuFotFIZZEUWZGHZIK2tk42+UC2ObasMEcorg7e8rGqqtXj8AMdzCvD5gAV
Wa6IkKEm2zrsmm7bIq+QWkJCtR5M+kQ/NihSVxRLckbzTJnFMr/7lLZ5Ks4O
bGgFUxJsg8232GN5wKrPDlqos64IFc+nkKqXO2VHxgyzkoPFzVesm1PhYVb1
9xVTKCs2WCdawkPlypsZrJ9Lm8cYdgfdIe1SJRRpHeUiElkRa9aF9qxwlqCV
4/VMQiQ2pifbbQOCtSGqMt1SPcZcMemnklhQpkwskFxmQdS2bcg6cuhwOTw9
WREvAZ8T8uRANZS5gBOr9XUche8NhSM5v2Vn0NUZGGGSlsWOxsqfexSrJ8fG
+XpCnSIKKoDWh/HeO5kJI04ILkgW0EdUi1D3ga39E4C/fI5sJRuxOcLk8ySt
I4/ZPS8NDzLU3j35l2bzzR8/7Pc7f/zw/Plb+tqTr1+3/hG/evRr7/nb1jd/
/+Tdo4P2vnDQr3nQIx7AjUS6z5GHkCOEEu0WPWXdaW1myw3wLaH1ZsCmROsc
959+8EjSULDF2K9lwIVV+GnFDqEBL39/1BnsjslicT4dWxdFhvhQHeqPetP0
dvUCzf64BUpr7o96LUobebH1cpr9lp4lN81+ry9JTj9L0uawpWP4jF40S1jV
NEct0g5zPMhoVHwDONQXhsNJkpOBfQLqXYAWqyANuv1xF3N2+11M0B12R2DN
vlLqX8uP6o31I58dff0KkvHi8uiFvjr6XnMpRO/gkT4HjsMooBOyTSivxj29
P9ajfd3r6/Gu7g11b6R7A/qJbmxWOg92v9s/UDvS7Rf8xVo0/CT6PtR6pPWA
f2oO9LGzAXlLmsUlnKkvYaGAC3iorf7jod6ZhrMOUNohU5NzgN82KjtuoxqN
+zraTvb1+PkjKADRNsFQvLOjx/DVm/T6vT/hbw+m/yLXg7ZD4a/E20PLJJn8
wDpJXNBC13jA0y/PnsGwLQ13pb7Ht1hiANS5abozaMR3EGVLL34ZTt5RADaD
LR7Y8O87IsAxSHFAfwfjd9AP/3jx/HhvuL9PSRaFZmKK1aUiWZMB9Nzhp1hP
ppVIaEaMIQ8u0aby83yVX5GjSUq3OTh4jH2IbbqDgzV2OfnkPupNdukPmV+G
j3QaPsQv2F/86W+dd2PfBz3HL336M3iA6h7il200swgnVdYgUnjYVGl/gl1O
H8GAsEtP2OUxdG2wi25SOhyO3rDGNV+KvYcwUOWaz0CB46QrMc5LzoEXe0M5
TEPsI4qdg7VpGfOZrmDhUVO3LVBaJ2Hmr9gmgNoKih/VTIFSIPc7Yhk/opy9
He2W0liboUZnKdt0GrMWh9wWsDjI2fHfd+C3dKBYSf0S20RiFsGuvXsqPs8t
ZaVvjbV8/XlC83riKBY5tnIZrrKlFnvE5PWcqiLQqBQF+vpngS4QJg0sk7Ky
x3YQuOKxZAnZRqn4njAFgxvYwFRggM5kIVCcKc7FwYcnkrLTvwBARzAa22Qa
AqwywJtz+jRjO7MMSmxFoiK3kJJSEvoWc9LTEh6qrl4vwtk819b1xNo4Ik3G
jbLZ2QoQXQ1/B2IvtDmesFJT5E04SR+L0M64NoN8HRUlyfvVklB3E/qcJ4cw
FatRv5FqlqKK6FIa6eb5xWXrbXOHS3paRYzyTb34BQ1cPU2LKce78cKILCwb
MHoO0zbhIAVba9T7qEy7vqS068edfJqtVze4+BfbsGTs1WzIJpwCS+vkIUyS
GwP+JrOcbf1qNsRldyUdjD3yrHfr8ji+lxkJJHm5Kr1C8o8AOe0ghuWoNUcK
QriUN2GwItznZuEGs7Egkz6tjrGMPF9ogM1PlzkGPFQcm8OL7qp/+LtOR5+B
kuOvyHwN4/c2dEjJHYqTpIYjNnMTLbPDMqltQz20Phvr4SixmeYdyiukIdAB
0dLVnc53lFMysSMNC1w1E27T2uzgLQxYWhVBbXgcSwlRuo6hDd1SRwikan68
XCb3ZzaobFzb7krbYiGzYWrhz5jz78RKiQuduLHbSmqLOGJBmQNHCRKho7QZ
ORrWbG9LqLdI1kt8b2a5ymIOzH1j0jvbxE4kYIdrsU0lwgO4syVJ3HGjS7y2
wxJHWaWxyrGHNjFakq3NPj+yMzRUuS0llT66LVyaYKmTwHEbwgtTD23IU80R
dvZAt+yKq3eQ3Vl4fyb8U+1NV8FAMkUqxApcYsZa/1yc9TLGJHUTku3BklZR
XoZxuMK0zcubFmKE5LbJGJlr5RthpQCoWyMH5ekhmGJBdWQsNe0+TfnYQVG7
QlZPJnETltboZjMZltdcHAIIYmEelwMVuVf7Ta0FIrpQKJEI3poks6mUmMbN
IJ1I4BBQ3Tf/0n+rFP17CNvzFhQNzFKuFJBS4ZukUbhkypbMAJyMCrOFOvxV
mjlTsRIFooK2rxasbLJVajcsAkFHWuJsH6jKjk0Tljowf2B1tF09P4mstkt7
W5HlzTqyPQ4JzGSlVBDCEoVGwzANSXz2LlkxBgpw6IGd+dbjiKVdR20NoJfy
l1BA4bvbTV1TJztk0e32emslxa+8hVHq2KKeMSfNglozripV6hd9lItcNZwR
zT5piX76Ux1LEhIbLTCfr5uD7i6883Hrb5hL5ru+fKQF5ovcfHutf5ikT77L
3O99+Q3+yL3omGo37Yv+3nbIfqmemuC+x0f83wHs8qGbT45nuLEO/oZF/qJ3
hwN9qc8jIpbLfPv6JsTXJsuOIY1nMF+KVezK+iarMCIdQ3Shm73uQXcwHMEt
PRj0esMe1+nC8xvttzDf69UEJKhfe+l77vsadt+cxMLlX1ZE07+wl5B7k04Q
d6RIUZwES6oPEmSDuITs3W8bkY4aQNIddQNTkN/w8WNlyPt7Tg5Mk1VayZ9t
Em/W0M2Lk1dUzyoFgBx8khIW2QJ6y6woEk8K/AIxmlwaOA54JjB30XoBgR0W
jbk1xfHxQPIN9QoJV6gShN4sBilVY6o0urXbiNdq7hZkb/PNRz3/ane3N+qN
vzrUjevLhr4XsaSLN3v0pkJ3jbZ7s09vjo8abVcrLs/7fXrOJLlluAN6WSer
La2m1KpCDNU5egcHg8F4/+BgOB0M/PEI8/S4eZ1WMOrb1lYHE/vM5WeEMa5B
c0S0STaFdwmSKtDrohbrXncAr3v6eZxVj1btjz63FyuD5qjlavX7n9ULqqLZ
d300u/uy6Z/oY0WkLifDZzx4fDKyJJuDSid8dnd3PxVh2GHSc2v6dCzC9aA1
Dbesae8TfawYXlvT5PHJeE39fn1RI3883RsOQPBjM94b74798e7esNKrxjWb
kO4/Cun+b4P90XD0KTrZYSbegK//cB8HX38dlbufCeBuHcDhwRCaYNgfbt/6
HSdNfhuqfzg07NZ1sLYs8/hkQiGjtXXtDofDwaC3S1QyBX0c7I3Hu/R7byTr
WhOEboGPbnSxwMGWBT4sg4qN2/2NeGC3t7c7HtDKxljjbm/c3xtUBtupC/EK
qJ7eJsalz8Mmgq4D8Li0dWDvroMNVh3sDcf7ABzMy1vSx1II/F0Ge02ZfEqR
fI76aPZ7Nr/QIrXR5EildaXKoJXE8G06k/xNr7BnK7W711fPO/uF96+S1Dlb
a+XCtXZlmUGSsUFfCXJRfezxyckLOvqSp0lEJ+dSD84HxZF8eba1Stp2q+XZ
M3ao2NHIk+LoBXkBtrKMq3fIg6EvqqzF5fiTrW11mev1JLUEZaiOqXbqQYX2
iI+tA4vNrbZw26wwraXw6NZOLNjzakrqabYGK7jQ5F2XiqDe2YoNr5iBfHV3
wsIWL23UwDLE5DhWS4zKEoUib+OCxB6HPip1V1RLQwdbMIQjl1aBJmyjz9Rq
qaQIqpYAdssVAOWftYjS/XbLKYta7IK+ZDlFKh6jSL1CZW1yjrWyNFsCQd2z
ajSNKrH1lhrjAgUPLDwJAyyaCwmqWLDFTkVg7sevR71vfqpF4Kd8gryo9ePo
RlicywukHOPjRycQgiCiWxXu71tc+1J5jKVSJoh31rG+20HLGyVochKMj0Mo
TgoW54Js1JvhsBtmi6nc6YhyVi4Ieaq2QGdBKSr9JO8/NxZVBdt02cbV1FFZ
F6eTBrH+Vn90P9Fef/udc4DEcblXtbc29+JWp9/s77b1qK3Hb1WtG1pyJLJL
RxX1QK1LW0DhpO01Y8GNaG3x3wpO+vFm0Na/Gkoerg4pnrDor8X06vzHhy9d
zgLEmtM9AU+1zfaWsKkStq9XYIG374T+SUFINovok+IvHAGlUmVW/G31rtAo
FGx5R5Kfj0u5cI0V4R93Qi/21vMHOzvlBSO2ny2Gk+AhsWnGR1drJzOFJMnD
prCWiKgORPT9fbsgO7VxgtDW59VruIpTX12KHFEuRFOY4oQiAWeUOdj8/KIv
i5Ljv+1DwQ4btPylJvhclM4FqX/ZVhBcF29fOmXv0SkfTpGuzf1Uc2iFNUop
hIsK0jLEUt8tR802sEbi6RWeXnE9tYus9PtmEenUVjVstynUZ5DOdmMkjG2k
ptDp62S0eRB1GxmpOhlxYEpI5aI4VfjQbrDAkcZ/fFM7fEdHTp2xdP+2bEzy
7rMak8j4vJHdDtXw4DaIdoURWCCOtkNdUtSX4tB1Vt9yADpzLf26UKgWGbIB
5U7/liddydzl9H7GVTEcgKJEv/R1RexkxP5lRaWN7uQUtaucGmsrSju6Mmup
TgGRYHPpZLYU23k3CZcnWliXYT6F7Mu6VCJcHiJs28h9pUqcKxpXuUglKQi/
F4upepKSRTEbMcrNX0nDt9keyXPPf88pG84g2PNVOltNbkxKx4UgkX06VOGO
XFEWBG8XYS7Z8cieLLwxG2G9IrNEtzOlXJkYu3PySRrOuGy3SfkYVxmUs/lj
Ij56nGO50V2Ly1VjSSyJMZUqzudkhYlGlQCQF5KiYY1kgdYW6C4njrP6GY0i
x+NFt2QkTuhUSZGPS5YeGHutFPLInVjhYzh8t1Rx6rywbXjZt15WnhWY8W05
7rjcQoVShejOG95x9rBWtV4soD50lQjaSopu8TaJZ4Bp7cQt4QbcI2cE4rvq
kTlHKXR+2hVigVFoxyWVhq62gqIah1VU49HC2iOiA2dNYuZiIV2quiaQBdup
KaxQsXMTmyBco5S2tR+BW/UQ5xJW4iTuYCtuQi6hrR9UZPDlEhDm66fbTkMR
RADfnpgK7cGgLqd6XHf9TI5McbEI3zazveALBsYkoGnXT1l//Oju8QBTrmI+
ss6l9VGCHbsxPiuC4oqFKDIzDOsgpJqFtqrcfsDk4GWSGZV6t3KxtMl4z2UI
NNpa3Utxu9CMKl+9W+wQNJ5UxZen/+LE/uIKd65NINkAHqMzb7AaXaWCSt1N
EA8c3BWLn9wcv4Z/wbyXTkLQA5+vdamBo5jy05ITFLSWp8pJOlGlOy3SkqfU
WpR1aLZ6Rk3DDybosC3r+RB/kJvActv6oIWUu6VSeB/jwDmMqgJPFSeEq/0Z
u5h2CtnZlatnrKAva5X4wh466yy3ZnAmt0KMbVdUY7dnRfMF3oT+K8p1gf3q
bS7391zRRATQkfNroSsUkZMqYVor4Oe6LapMCU3E2V8q9lCeddJMyleB2OIu
CLiAj7PR7SLEz6B9ud/jRTKr1oZBP0PQYPVn8cXz428bdHceKWFpnQnJdXp7
ujmRi+haNEWn19NNOh3fqjHF1o9SF8ZqEhG5P3wvx+s1/tLxQD5izGndtUnH
MtXe581BMRXBPg9Oi6b+dDJFbh8B9HINz4m9YWDtFphbG06hQ3kJBDBrANoY
AlpKTN2R+hNSNevg7gq4488DdwqxNpfjfhZiu3WQi1wfRrDqZuO9McuOR2FX
PoW3NudI5tz9nDlPitKT62u4WqvM1sHJ/TBE7nTYJl0mKctx4rWM1ElRFUHB
XzLST1aTVZhlSdzWZVkON6ejCl4aWKcfEgf87oPHVlzqsgb7UGAffQ7srmvi
M3oCXVTXOSk/hRVEe97WC+F638hZH7ATyTaumnE3I9nVlpfttKEiWFxCq8dk
+JDS51pbYXw6zSEX5GScQ82M++miKxx3EzBlU9nGlbMYRFcSqeMSPTk9SRV1
hVDh0M+FuU0Tex6ngJR0tKNX54UTechZeUKHR8qZso5yNZ9e0nEDe7+AR4WF
Baiu8pMuP3RllVITZKwVxXttgSGpEOgGU35DNm3zjCglWcEehSEAU8Ms6fqT
mCt5uPPG4qqYt7adLGdib0UonCMKXnD3144OOQ7Ios7GC9xrutIocBfnbB6Z
4cLO4rJROTLkykm+1td88Wew5UKWnO8e2sLuAyHf4eeQ70s65Vc9/uav07O7
H8UqlE8R2emHpcf3y5SiI/OTpbtOxWO9mZo5lTvdWCEnF5vyUo+oaJ6vQWMT
2bBnwsbXIWPmlE/EW4tNLkyTQk0iryNbLkZmotaPluFUJqQIyHBsAYE2kX16
efbytE2n13M2+/kYGY3WqvTM8tXkCRXBpiGbD1EBMO+mlGpf8hV1cqFsk2Lx
f/2vH//6/1qWK7bcISethrvVmQp+5IEL05N4A66YrTWjkgf6VelXOOnShK0U
CpMl1IgLPKF2IUJ+4JOgWrakfrEZEx4FyKgCAxrm9PRU02VXnlRBKy7j3DJU
eXWIbc5fwXa6GkmxDEoHNB4a6MyZZ2TGccRFgt3Awiol1nPHXa8dNHCTSDtG
Jpixp7KediHbQg5qm+DbRpyQWfFP4UJfgqi9wN1CFnDlH/TK7YZn21X/CwJq
qveFWAAA

-->

</rfc>
