<?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.6 (Ruby 3.2.2) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-rfc-cddl-models-03" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title>CDDL models for some existing RFCs</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-rfc-cddl-models-03"/>
    <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="2024" month="February" day="27"/>
    <keyword>CDDL models</keyword>
    <abstract>
      <?line 46?>

<t>A number of CBOR- and JSON-based protocols have been defined before
CDDL was standardized or widely used.</t>
      <t>This short draft records some CDDL definitions for such protocols,
which could become part of a library of CDDL definitions available for
use in CDDL2 processors.  It focuses on CDDL in (almost) published
IETF RFCs.</t>
    </abstract>
  </front>
  <middle>
    <?line 56?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
Add in <xref target="STD94"/> <xref target="STD90"/>
        <xref target="RFC8610"/> <xref target="RFC9165"/> <xref target="I-D.ietf-cbor-cddl-more-control"/></t>
    </section>
    <section anchor="cddl-definitions-for-almost-published-rfcs">
      <name>CDDL definitions for (almost) published RFCs</name>
      <t>This section is intended to have one subsection for each CDDL data
model presented for an existing RFC.
As a start, it is fleshed out with three such data models.</t>
      <section anchor="rfc-7071">
        <name>RFC 7071</name>
        <t><xref section="H" sectionFormat="of" target="RFC8610"/> contains two CDDL definitions for <xref target="RFC7071"/>,
which are not copied here.
Typically, the compact form would be used in applications using the
RFC 7071 format; while the extended form might be useful to
cherry-pick features of RFC 7071 into another protocol.</t>
      </section>
      <section anchor="rfc-8366">
        <name>RFC 8366</name>
        <t><xref target="RFC8366"/> defines a data model for a "Voucher Artifact", which can be
represented in CDDL as:</t>
        <sourcecode type="cddl"><![CDATA[
voucher-artifact = {
  "ietf-voucher:voucher": {
    created-on: yang$date-and-time
    ? (
        expires-on: yang$date-and-time
        ? last-renewal-date: yang$date-and-time
        //
        nonce: json-binary<bytes .size (8..32)>
      )
    assertion: assertion
    serial-number: text
    ? idevid-issuer: json-binary<bytes>
    pinned-domain-cert: json-binary<bytes>
    ? domain-cert-revocation-checks: bool
  }
}

assertion = "verified" / "logged" / "proximity"

yang$date-and-time = text .regexp cat3<"[0-9]{4}-[0-9]{2}-[0-9]{2}T",
                            "[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]+)?",
                            "(Z|[+-][0-9]{2}:[0-9]{2})">

cat3<A,B,C> = (A .cat B) .cat C

json-binary<T> = text .b64c T
]]></sourcecode>
        <t>The two examples in the RFC can be validated with this little patchup
script:</t>
        <sourcecode type="shell"><![CDATA[
sed -e s/ue=/uQ=/ -e s/'"true"'/true/ | cddl rfc8366.cddl vp -
]]></sourcecode>
      </section>
      <section anchor="rfc-9457">
        <name>RFC 9457</name>
        <t><xref target="RFC9457"/> defines a simple data model
that is reproduced in CDDL here:</t>
        <sourcecode type="cddl"><![CDATA[
problem-object = {
  ? type: preferably-absolute-uri
  ? title: text
  ? status: 100..599
  ? detail: text
  ? instance: preferably-absolute-uri
  * text .feature "problem-object-extension" => any
}

; RECOMMENDED: absolute URI or at least absolute path:
preferably-absolute-uri = ~uri
]]></sourcecode>
        <t>Note that <xref section="B" sectionFormat="of" target="RFC9290"/> also defines a CBOR-specific data
model that may be useful for tunneling <xref target="RFC7807"/> or <xref target="RFC9457"/> problem details in
<xref target="RFC9290"/> Concise Problem Details.</t>
      </section>
      <section anchor="yang-sid">
        <name>YANG-SID</name>
        <t>The RFC to be published out of <xref target="YANG-SID"/> defines a data model for a
"SID file" in YANG, to be transported as a YANG-JSON instance.</t>
        <t>An equivalent CDDL data model is given here:</t>
        <sourcecode type="cddl"><![CDATA[
sid-file = {
  "ietf-sid-file:sid-file": {
    module-name: yang$yang-identifier
    ? module-revision: revision-identifier
    ? sid-file-version: sid-file-version-identifier
    ? sid-file-status: "unpublished" / "published"
    ? description: text
    ? dependency-revision: [* dependency-revision]
    ? assignment-range: [* assignment-range]
    ? item: [*item]
  }
}

rep<RE>=cat3<"(", RE, ")*">
opt<RE>=cat3<"(", RE, ")?">
cat3<A,B,C> = (A .cat B) .cat C

id-re = "[a-zA-Z_][a-zA-Z0-9\\-_.]*"
yang$yang-identifier = text .regexp id-re
revision-identifier = text .regexp "[0-9]{4}-[0-9]{2}-[0-9]{2}"
sid-file-version-identifier = uint .size 4
sid = text .decimal (0..0x7fffffffffffffff); uint63 as text string
plus-id<Prefix> = Prefix .cat id-re
schema-node-re = cat3<plus-id<"/">, plus-id<":">, ; qualified
                      rep<plus-id<"/"> .cat       ; optionally
                          opt<plus-id<":">> > >     ; qualified
schema-node-path = text .regexp schema-node-re

dependency-revision = {
  module-name: yang$yang-identifier
  module-revision: revision-identifier
}

assignment-range = {
  entry-point: sid
  size: sid
}

item = {
  ? status: "stable" / "unstable" / "obsolete"
  (
    namespace: "module" / "identity" / "feature"
    identifier: yang$yang-identifier
  //
    namespace: "data"
    identifier: schema-node-path
  )
  sid: sid
}
]]></sourcecode>
      </section>
      <section anchor="your-favorite-rfc-here">
        <name>Your favorite RFC here...</name>
      </section>
    </section>
    <section anchor="iana-defs">
      <name>CDDL definitions derived from IANA registries</name>
      <t>Often, CDDL models need to use numbers that have been registered as
values in IANA registries.</t>
      <t>This section is intended to have one subsection for each CDDL data
model presented that is derived from an existing IANA registry.
As a start, it is fleshed out with one such data model.</t>
      <t>The intention is that these reference modules are update automatically
(after each change of the registry or periodically, frequent enough.)
Hence, this document can only present a snapshot for IANA-derived data
models.</t>
      <t>The model(s) presented here clearly are in proof-of-concept stage;
suggestions for improvement are very welcome.</t>
      <section anchor="cose-algorithms">
        <name>COSE algorithms</name>
        <t>The IANA registry for COSE Algorithms is part of the IANA cose
registry group <xref target="IANA.cose"/>.</t>
        <t>The following automatically derived model defines some 70 CDDL rules
that have the name for a COSE algorithm as its rule name and the
actual algorithm number as its right hand side.
The additional first rule is a type choice between all these
constants; this could be used in places that just have to validate the
presence of a COSE algorithm number that was registered at the time
the model was derived.</t>
        <t>This section does not explore potential filtering of the registry
entries, e.g., by recommended status (such as leaving out deprecated
entries) or by capabilities.</t>
        <t>The names given in the COSE algorithms registry are somewhat irregular
and do not consider their potential use in modeling or programming
languages; the automatic derivation used here turns sequences of one
or more spaces and other characters that cannot be in CDDL names
(<tt>[/+]</tt> here) into underscores.</t>
        <sourcecode type="cddl"><![CDATA[
============= NOTE: '\' line wrapping per RFC 8792 ==============

algorithms = RS1 / A128CTR / A192CTR / A256CTR / A128CBC / \
  A192CBC / A256CBC / WalnutDSA / RS512 / RS384 / RS256 / \
  ES256K / HSS-LMS / SHAKE256 / SHA-512 / SHA-384 / RSAES-\
  OAEP_w_SHA-512 / RSAES-OAEP_w_SHA-256 / RSAES-\
  OAEP_w_RFC_8017_default_parameters / PS512 / PS384 / PS256 / \
  ES512 / ES384 / ECDH-SS_A256KW / ECDH-SS_A192KW / ECDH-\
  SS_A128KW / ECDH-ES_A256KW / ECDH-ES_A192KW / ECDH-ES_A128KW \
  / ECDH-SS_HKDF-512 / ECDH-SS_HKDF-256 / ECDH-ES_HKDF-512 / \
  ECDH-ES_HKDF-256 / SHAKE128 / SHA-512_256 / SHA-256 / SHA-\
  256_64 / SHA-1 / direct_HKDF-AES-256 / direct_HKDF-AES-128 / \
  direct_HKDF-SHA-512 / direct_HKDF-SHA-256 / EdDSA / ES256 / \
  direct / A256KW / A192KW / A128KW / A128GCM / A192GCM / \
  A256GCM / HMAC_256_64 / HMAC_256_256 / HMAC_384_384 / \
  HMAC_512_512 / AES-CCM-16-64-128 / AES-CCM-16-64-256 / AES-CCM\
  -64-64-128 / AES-CCM-64-64-256 / AES-MAC_128_64 / AES-\
  MAC_256_64 / ChaCha20_Poly1305 / AES-MAC_128_128 / AES-\
  MAC_256_128 / AES-CCM-16-128-128 / AES-CCM-16-128-256 / AES-\
  CCM-64-128-128 / AES-CCM-64-128-256 / IV-GENERATION
RS1 = -65535
A128CTR = -65534
A192CTR = -65533
A256CTR = -65532
A128CBC = -65531
A192CBC = -65530
A256CBC = -65529
WalnutDSA = -260
RS512 = -259
RS384 = -258
RS256 = -257
ES256K = -47
HSS-LMS = -46
SHAKE256 = -45
SHA-512 = -44
SHA-384 = -43
RSAES-OAEP_w_SHA-512 = -42
RSAES-OAEP_w_SHA-256 = -41
RSAES-OAEP_w_RFC_8017_default_parameters = -40
PS512 = -39
PS384 = -38
PS256 = -37
ES512 = -36
ES384 = -35
ECDH-SS_A256KW = -34
ECDH-SS_A192KW = -33
ECDH-SS_A128KW = -32
ECDH-ES_A256KW = -31
ECDH-ES_A192KW = -30
ECDH-ES_A128KW = -29
ECDH-SS_HKDF-512 = -28
ECDH-SS_HKDF-256 = -27
ECDH-ES_HKDF-512 = -26
ECDH-ES_HKDF-256 = -25
SHAKE128 = -18
SHA-512_256 = -17
SHA-256 = -16
SHA-256_64 = -15
SHA-1 = -14
direct_HKDF-AES-256 = -13
direct_HKDF-AES-128 = -12
direct_HKDF-SHA-512 = -11
direct_HKDF-SHA-256 = -10
EdDSA = -8
ES256 = -7
direct = -6
A256KW = -5
A192KW = -4
A128KW = -3
A128GCM = 1
A192GCM = 2
A256GCM = 3
HMAC_256_64 = 4
HMAC_256_256 = 5
HMAC_384_384 = 6
HMAC_512_512 = 7
AES-CCM-16-64-128 = 10
AES-CCM-16-64-256 = 11
AES-CCM-64-64-128 = 12
AES-CCM-64-64-256 = 13
AES-MAC_128_64 = 14
AES-MAC_256_64 = 15
ChaCha20_Poly1305 = 24
AES-MAC_128_128 = 25
AES-MAC_256_128 = 26
AES-CCM-16-128-128 = 30
AES-CCM-16-128-256 = 31
AES-CCM-64-128-128 = 32
AES-CCM-64-128-256 = 33
IV-GENERATION = 34
]]></sourcecode>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
      <t>However, the use of IANA registries</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/>, <xref target="RFC9165"/>, <xref target="I-D.ietf-cbor-cddl-more-control"/>, <xref target="STD94"/> and <xref target="STD90"/> apply.
This collection of CDDL models is not thought to create new security
considerations.
Errors in the models could -- if we knew of them, we'd fix those
errors instead of explaining their security consequences in this
section.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="STD90" target="https://www.rfc-editor.org/info/std90">
          <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/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>
        </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="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>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:,, and for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-cddl-more-control">
          <front>
            <title>More Control Operators for CDDL</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="26" month="February" year="2024"/>
            <abstract>
              <t>   The Concise Data Definition Language (CDDL), standardized in RFC
   8610, provides "control operators" as its main language extension
   point.  RFCs have added to this extension point both in an
   application-specific and a more general way.

   The present document defines a number of additional generally
   applicable control operators for text conversion (Bytes, Integers,
   JSON, Printf-style formatting), operations on text, and deterministic
   encoding.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cddl-more-control-03"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7807">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document defines a "problem detail" as a way to carry machine- readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7807"/>
          <seriesInfo name="DOI" value="10.17487/RFC7807"/>
        </reference>
        <reference anchor="RFC8366">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
              <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
              <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8366"/>
          <seriesInfo name="DOI" value="10.17487/RFC8366"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </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="RFC7071">
          <front>
            <title>A Media Type for Reputation Interchange</title>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <author fullname="M. Kucherawy" initials="M." surname="Kucherawy"/>
            <date month="November" year="2013"/>
            <abstract>
              <t>This document defines the format of reputation response data ("reputons"), the media type for packaging it, and definition of a registry for the names of reputation applications and response sets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7071"/>
          <seriesInfo name="DOI" value="10.17487/RFC7071"/>
        </reference>
        <reference anchor="YANG-SID">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="Michel Veillette" initials="M." surname="Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Alexander Pelov" initials="A." surname="Pelov">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Ivaylo Petrov" initials="I." surname="Petrov">
              <organization>Google Switzerland GmbH</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="22" month="December" year="2023"/>
            <abstract>
              <t>   YANG Schema Item iDentifiers (YANG SID) are globally unique 63-bit
   unsigned integers used to identify YANG items, as a more compact
   method to identify YANG items that can be used for efficiency and in
   constrained environments (RFC 7228).  This document defines the
   semantics, the registration, and assignment processes of YANG SIDs
   for IETF managed YANG modules.  To enable the implementation of these
   processes, this document also defines a file format used to persist
   and publish assigned YANG SIDs.


   // The present version (–24) is intended to address the remaining
   // IESG comments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-sid-24"/>
        </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>
      </references>
    </references>
    <?line 361?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Va63bjthH+j6fAUXrO2oko62bZ1kbeamUl625217Xd9jQb
HxciIYlZimBI0F7FcZ6mb9IX6zcASJGS182fKheBw8FgMJdvBpA9z2N3Q95j
TIc6kkN+yjifnJ39wFcqkFHG5yrlmVpJLj+HmQ7jBb/8bpKxr7iYzVKJqZPX
Hy55nK9mMs1YoPxYrCAmSMVcezOVrkQcez4GXjr3PT8IIs9K9to9FggN3m67
2/faXa97xD7J9b1Kg2FVBeYLPeRhPFcs06kUqyE/n15/x1gSDvlHrfwmFEzx
Zp5htF7Zga9WifC1GaxkrLMbxkSulyodYoce/uOQmWGlFn9t1TQ0q/5EpJmW
ce2NShdD/rc4vMNGQ/2ff2v+OpUQza9/PDcMpJ2Eqhcq03PhL3mv1+732+ad
H+r10E2wBOxtyM+87nHv8MRR8lin4Ppe0qJrQ0yWKgbfN/0Tr9/teN3OsTfo
nXQ75qVciTAacl/M1J/1r2ELGjIWk8oaWtI+r67PTtpDw+wN+c+ZiuE5fEZD
cuNx1yxNTP2SiXxVYzrpExONBp023sOF9vmkMzjEs4LWKiKNzr2zVij13Prb
+TqVnmMpebuMvFlRE8KOjttHQ56kahbJlaeiwK3ZGwyG/E7l/lKmbtn+YYVz
FmaO3D1pmxX8MJOee+1kt486Q57KJNeKrP/P8fvvvavzs2FFY9IzC2nV8/H7
cctXGTRjnuch0OFYhBJjYxfnXM1N2ONdHPC/XH14781EJgNSCvGokDZLcSf5
TCI6AjkPY7ybSWxZMhPY9yJDtGCySIPwV7xEkt2HCPY1zyGnxdj1MgQLolXb
VIL2UDHIbC4aIUZwqEMVuyyFjTYaNNn9MgQBURXR4j7NSwTkQXnBo3CWinRt
drItTNwhrATMR2IZFEKiGK4uifdlhnTLWjCUBoOP9xlXloEY90S0QgLs8ySf
RWG2lAGjdDWw0bIWXYUIDcnYOUVDkPu0LHefh69Coj6yUeXD2N5FJGFinklZ
OqS1z8ZBQGs+PJiQe3ykEUX54yMjGpaxtCJIa09dcCHSnzTm7i4s7jnHSKsz
htBWxgFea2WdjnyFK2YFCwmTBAZ2GaEFM7AGU8oMuISZxCLiGsC22Bh+oBhJ
AWGhppXmkTR6qFwjWPSS6yXwxrqd5Dq4hI2/+opkcAp7BjuMkwQqhp/5G3K3
S2RYgswggIFc36unrfDw4LLn8bGIJ5FKHiuNyUkIZZCVssWu10noiyhaN6GU
LLCXRKz4vQtAE9nkLJEkEbjtKnlGO8YkVmjMLTK85FgPIUjy5GdnYyNwFS6W
2gmc5xEMzwgc0rUHJT7xuRQ6Tykm56UVyEsKNlaQlpY5srEUoQxZygEObGOz
lnywMa11FG/83aIRH6c6BM7rRpO7XIMXZ5IBaErfuszhIgOa/P777xY+HZ55
wkngI/4A5GkYKHIvh+67MTTvUB9Q+yDSU/GQr0W8+BNVTw8g4ulwJQ3LK77H
ikSSn5MQajzHbqdEItNeKmN5LyLPVuRn+A8OymEMrJW2qgCGY8DJt7O1htFa
GUCN7x23Wr3u/qnj3zffIstkSq4fboa2eMo0xPoWYIdcw+duS8DFuzDwwizL
6c3OcnaBJIyBsl6gUBPRcEDyF1lf8QoXdn6nbDR6MLf/CS3BTCkqcY8M+FBq
CR81UPrDOcK+wQ94I1KLhRsioj6HK5T4BmO7tsNM2g5vpXIBryBMdO/bxse2
d3Lz0H/07KC7GVw3mqWNn/o0CsbhzmDvY+vGjL/Zf/W/pOz9+NvHb7ybHRn7
jVPGjI7j5uvm5BTq7415CxT+et9+Txir2vb6tNzibND3+TVFOnsYmmZq1EDj
R1nVotBvPBKESgM58rNYJQA1ShJKc8pEm0L8TkQh2TAokA74F4UaHSpqmPaX
ecIyPw0T7bIKwBhFjADGAyIe5HJ0kP91dGCfXjR0msvGiwP6OuC/mRzkVa34
XYKWkJQuEIGaDIcINKwhQhaS2hVgYHopDERT5lNBqyQ+AWQ19csOZ/azLBP/
FdfrRFJTI+cyReldeyhyKsoRRXkaWg7bn7vEeEW1QecI1k673WodnpwYYiC1
aQlLLsA7+gz/WdlfO9855DThXNHRM/CbIQUafHTKqTOFE1/yy+nkw7t30/dn
UzRShUj+t8tz6mZgDyrYevMCflsO2Re0gB1+J2W244ZsX8bNe6WpHkB0paa9
djhP7R+8JKJMVVxlurQskT7S1q9WXyNmJdaVOkLornOgSEQlyZY+NKUQWlRC
FwnOPM7YFL4uUKwKE9uC8gvHdmbZbLUpWk+bBRRpKEzQYdNmUHnHlh4eCtZn
qxFrgIPPUSkbFHI0p+lEokeKswQdJIQKmmsEUrdaRgV0GqPx+CUPkXAoWJsm
xa2BmF6gR493whitsker1ipXQRwWg7J2QVoeSc8ergxC0v88QHusCVFTB8yO
D5gcZqZIFKNd1mINz5zHiHeb8sycInkaeVxa3iJ5+VSUCmmBxqxQqUqBpACU
sb+uaPvx66foN24KSkm4iOkw6sE1C2n4t4kFc6jlihjo+6YoRsCXby+npyNb
QfbQeFxOm7yx/zUgWyX6yXev8O5/ojnskpIvGx+F9+vY+/H2xg1QE376ybtt
3XzdYE/5bbu2GUHsCa9tMz5T/xrsGU9CTo5uzvUYfWItRQfI85WI+B4Qsf35
aF7/7L80Mwc9ygYzAccIpDpLojzDCt9eAJvCz2QhO7LWsTvK0BushBcjK6yl
jEmLmY2DxmmTl09DenrJf8lRxahd+EIdJm9WJdj17OclVybmqKl+poyT06vL
nnL6xwrYLF9VnmB42xf1zTH2RAy7PP8jefyHcth2VrXId0tIugTxEgVXmZQG
iVxtx5hGCVGWzTKPMZgRBh5QSlceFBUZqSWl8155wZPheAKJDauqYbS6oYOj
B1cJLQZstP7ill1TXBVNILo7f9sTzPbF2Fqxv1oFNCuBXpZAqiAqT/lc3KkU
ljAVxJzBWq0nz7IBOtY7OjmlamVuNuCNRUiBj3KCs7aIhQf+DLI/zFHmm7XL
v1jagy3dAbgrPls5N9cbVhw0oCLDUEZy29BtrdX6v5yci76rtsvqUbqqxfoP
HaqtErUjdcsWa6NvobxZGU0rDGM6GiSLdJGfmTNynlD/ykWuFd1zmdMx2xOw
sduVvzRBj1JPvW+hI/UaCXajguJAPU9Rn6k2y1jli2Vrn72hxZq2KQ6Un1MK
mcZZxdG6sA5tNBZJtlTmHG4s4RV22hgzc5szD3vZfsW4FFbcRxeXQiptCV5F
66PmnqL7MuiQEISKhXzJshxnoWxzcYAOOVV30mhGU4Hja34vI7qFso3Q5MPV
FN3agsJ4ucqsFjV3GUGGbVyykemLSyxdTKC7OlbOWqQqT9A+ldd4j49uj3MV
ReqewqLmlTJ6bHQVvZa5aDtq2+hLya9sE/q0NqWouxKob4bqS6gzM8ly0TUh
3XHgqA9QrnC6+8RigrnZWBI3kp7uVbCMCILQVgK0eSk6aiM2pEimQwPiSIU+
JaO+p3zEjmxcMriIujydvbSh4m9fxCQRoMqF8s95VmxNlacvo7MNCF/ae8Ot
nTr9jQi61KyigckPbi4PdBFhhsnZexsSAgVl6GoJJSlSCJpEmYQzG48glDy3
lS6MqgXgpclla9Fq8tnaXJTSjT8hiy0PfM8kNFZGMN8ZKcj2gG5pfDpjFkL2
KfkgwReJmIU4bha4Zb1YtMLutLoVwJuwpXin4Lk34JSCnkciZeTVQLm7s5j8
S3aTYVrZp7trNaYyeprLqkUqVitqVCIgRo58Mx6tYIu1qLnDsM41qYsKFpN1
CT18ex8GcGOQSZfy3BSqzISmvRYDINGtaonxQBRSdlZe/1orsL1/fTz45uZf
ZpF9e7OWw9ppRnfoZLDykFC9wh3x9x+up0P+4qcXOMkDZO9TkSS0ScCdvYQ7
Ouny2pQRmoSNgUf88qqD6jzudI8n15dmdNJ1o+7hoKDh7esJRj+hsBoO82Q4
zOgfIopzfXY1xvjy6rDTNd+94775BpubO6XxWzy8ubryfnh3hdHVm/HbqeXA
0LNzaVTMHk+vPJr7YTy9uL2/3TDZVxWylbIzA4a4PW53jm4BQyKP9C3QDlY3
XjngF07dC6fuRU1d+27q3k0nZ2+8q6tb2vjbf1QJsMmGQFMNsXu8IU63p023
p03LKSRgI/zN27Pv3JZrJKtnMbXCZVSvkkvzvp1igY2lbzd234xoNp5uB31H
oAAJQiS2ttLIvJZ9m2qFk4Dqm43HtqluB4ENnGnF8pbTxZgxUWmr0qw0+H7y
zr2zIxOgmGKf3rwbT27LvZRPdhnzCL/eWt/STEMiu1h1aUuTyTuvM/AGfbe5
Os1KcjSSQMQdXkvb8NIq4LBaFcFaU3WyFPi32769UNG602sfbs3cyK9O3dEQ
hF21ibjRheY7HXe5HdFyn//d+376fno5vj7/8J4Rboyw3cPD3iEr4MMR+qxA
EUfosQJMHKHLCkxxhA4rYMUR2qxAF0vonrANyIDUHbSZRRp6ODxhFm7MwzGz
mGMejpgDHTz1j1gBPPQ0YCX40OMhKyKVnvqsACF66rEdtCkYu7uvComd+qvn
gIjY2+yi2FHvhF0UG+ods4tiPz3aTsEzYNOS55BtgRMR+2wLoIjYqxBNJhGx
y7ZAiogdtgVURGyzLbAiK5+wHbAi8jHbASwiH7Ed0DIeZTugZTzISuDCY+eY
VcGLKEesYvPOoHiiTCKCdauJ1k6fPQVk9Ka386ZYsMueAjN609l5U0iDkQIX
qMc2/mh45PhNSLONoQ/Zxr59VvEKKyBuxG2C2HGXFRA34j1WBbkR77MazI34
IasB3YgPWA3mRvyI7QIdFmyzXawDucPqsOa4u2wX7UDusS3AA61f0kqt4aRd
yMNG+2wb9UA8rM13xAF7AvdgnvY23SrWq22jwt/dpjv+HqvhH5H69YsFOhd5
m96qvF8w56mJa0/tT7T1Ls61Zde1s+dKfDKtOzdH1UybXtOcvxh7o+4lTn/2
h2Hqb92ryt0Ao8+V9HMosy6b4y+uXqpAfw3w5CR7f+5+/m/Wf/9v1v8AoFn5
2wFqhcu/HzA/U69bdqc+To7ulFL8wYS7IQntkUUv6Wyu6fBkf6blsbwv1WN1
9VpsmqYqLX/3cqLs+czzeDjHUZl/Ign2uLNqgvAi4HQniZVwtpOFABy2REBs
dGgSYex+Tcepomab8hBglgwz5g5d7g8yZsL/xNjY/xSr+0gGC3Nw37W9iR9z
4pPBqBEr82Pe6zP2XwzjkOpFJgAA

-->

</rfc>
