<?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.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-howard-rats-coserv-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="CoSERV">Concise Selector for Endorsements and Reference Values</title>
    <seriesInfo name="Internet-Draft" value="draft-howard-rats-coserv-00"/>
    <author initials="P." surname="Howard" fullname="Paul Howard">
      <organization>Arm</organization>
      <address>
        <email>paul.howard@arm.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>Thomas.Fossati@linaro.org</email>
      </address>
    </author>
    <date year="2025" month="March" day="26"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>RATS</keyword>
    <keyword>attestation</keyword>
    <keyword>endorsement</keyword>
    <keyword>reference value</keyword>
    <abstract>
      <?line 58?>

<t>In the Remote Attestation Procedures (RATS) architecture, Verifiers require Endorsements and Reference Values to assess the trustworthiness of Attesters.
This document specifies the Concise Selector for Endorsements and Reference Values (CoSERV), a structured query format designed to facilitate the discovery and retrieval of these artifacts from various providers.
CoSERV defines a query language using CDDL that can be serialized in CBOR format, enabling interoperability across diverse systems.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rats-endorsements-distribution.github.io/draft-howard-rats-coserv/draft-howard-rats-coserv.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-howard-rats-coserv/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation ProcedureS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rats-endorsements-distribution/draft-howard-rats-coserv"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t>Remote Attestation Procedures (RATS) enable Relying Parties to evaluate the trustworthiness of remote Attesters by appraising Evidence.
This appraisal necessitates access to Endorsements and Reference Values, which are often distributed across multiple providers, including hardware manufacturers, firmware developers, and software vendors.
The lack of standardized methods for querying and retrieving these artifacts poses challenges in achieving seamless interoperability.</t>
      <t>The Concise Selector for Endorsements and Reference Values (CoSERV) addresses this challenge by defining a query language that allows Verifiers to specify the environment characteristics of the desired artifacts.
This facilitates the efficient discovery and retrieval of relevant Endorsements and Reference Values from providers.</t>
      <t>The CoSERV query language is intended to form the input data type for tools and services that provide access to Endorsements and Reference Values.
This document does not define the complete APIs or interaction models for such tools and services.
Nor does this document constrain the format of the output data that such tools and services might produce.
The scope of this document is limited to the definition of the query language only.</t>
      <t>The environment characteristics of Endorsements and Reference Values are derived from the equivalent concepts in CoRIM <xref target="I-D.ietf-rats-corim"/>.
CoSERV therefore borrows heavily from CoRIM, and shares some data types for its fields.
And, like CoRIM, the CoSERV schema is defined using CDDL <xref target="RFC8610"/>. A CoSERV query can be serialized in CBOR <xref target="STD94"/> format.</t>
      <section anchor="terminology-and-requirements-language">
        <name>Terminology and Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>This document uses terms and concepts defined by the RATS architecture.
For a complete glossary, see <xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
        <t>This document uses terms and concepts defined by the CoRIM specification.
For a complete glossary, see <xref section="1.1.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>.</t>
        <t>This document uses the terms <em>"actual state"</em> and <em>"reference state"</em> as defined in <xref section="2" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>.</t>
        <t>The terminology from CBOR <xref target="STD94"/>, CDDL <xref target="RFC8610"/> and COSE <xref target="STD96"/> applies;
in particular, CBOR diagnostic notation is defined in <xref section="8" sectionFormat="of" target="STD94"/>
and <xref section="G" sectionFormat="of" target="RFC8610"/>. Terms and concepts are always referenced as proper nouns, i.e., with Capital Letters.</t>
      </section>
    </section>
    <section anchor="coserv-query-language">
      <name>CoSERV Query Language</name>
      <t>The CoSERV query language enables Verifiers to specify the desired characteristics of Endorsements and Reference Values based on the environment in which they are applicable.
This section presents the CBOR data model for CoSERV queries.</t>
      <t>CDDL is used to express rules and constraints of the data model for CBOR.
These rules must be strictly followed when creating or validating CoSERV data objects.</t>
      <section anchor="common-data-types">
        <name>Common Data Types</name>
        <t>CoSERV inherits the following types from the CoRIM data model <tt>class-map</tt>, <tt>$class-id-type-choice</tt>, <tt>$instance-id-type-choice</tt> and <tt>$group-id-type-choice</tt>.</t>
        <t>The collated CDDL is in <xref target="collated-cddl"/>.</t>
      </section>
      <section anchor="query-structure">
        <name>Query Structure</name>
        <t>The top-level structure of a CoSERV query is given by the following CDDL:</t>
        <sourcecode type="cddl"><![CDATA[
coserv = {
  &(artifact-type: 0) => artifact-type
  &(profile: 1) => profile-type
  &(environment-selector: 2) => environment-selector-map
}

artifact-type = &(endorsed-values: 0)
                / &(trust-anchors: 1)
                / &(reference-values: 2)

profile-type = oid-type / ~uri
]]></sourcecode>
        <t>The meanings of these fields are detailed in the following subsections.</t>
        <section anchor="artifact-type">
          <name>Artifact Type</name>
          <t>The <tt>artifact-type</tt> field is the foremost discriminator of the query.
It is a top-level category selector. Its three permissible values are <tt>trust-anchors</tt> (codepoint 1), <tt>endorsed-values</tt> (codepoint 0) and <tt>reference-values</tt> (codepoint 2).
These correspond to the following three categories of endorsement artifact that can be identified in the RATS architecture:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Trust Anchor</strong> (<tt>trust-anchors</tt>): A trust anchor is as defined in <xref target="RFC6024"/>. An example of a trust anchor would be the public part of the asymmetric signing key that is used by the Attester to sign Evidence, such that the Verifier is able to verify the cryptographic signature.</t>
            </li>
            <li>
              <t><strong>Endorsed Value</strong> (<tt>endorsed-values</tt>): An endorsed value is as defined in <xref section="1.1.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>.</t>
            </li>
            <li>
              <t><strong>Reference Value</strong> (<tt>reference-values</tt>): A reference value is as defined in <xref section="1.1.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>. A reference value specifies an individual aspect of the Attester's desired state. Reference values are sometimes informally called "golden values". An example of a reference value would be the expected hash or checksum of a binary firmware or software image running in the Attester's environment. Evidence from the Attester would then include claims about the Attester's actual state, which the Verifier can then compare with the reference values at Evidence appraisal time.</t>
            </li>
          </ul>
          <t>It is expected that implementations might choose to store these different categories of artifacts in different top-level stores or database tables.
Where this is the case, the <tt>artifact-type</tt> field serves to narrow the query down to the correct store or table.
Even where this is not the case, the discriminator is useful as a filter for the consumer, resulting in an efficiency gain by avoiding the transfer of unwanted data items.</t>
        </section>
        <section anchor="profile">
          <name>Profile</name>
          <t>In common with EAT and CoRIM, CoSERV supports the notion of profiles.
As with EAT and CoRIM, profiles are a way to extend or specialize the structure of a generic CoSERV query in order to cater for a specific use case or environment.</t>
          <t>In a CoSERV query, the profile can be identified by either a Uniform Resource Identifier (URI) or an Object Identifier (OID).
This convention is identical to how EAT profiles are identified using the <tt>eat_profile</tt> claim as described in <xref section="4.3.2" sectionFormat="of" target="I-D.ietf-rats-eat"/>.</t>
        </section>
        <section anchor="environment-selector">
          <name>Environment Selector</name>
          <t>The environment selector forms the main body of the query, and its CDDL is given below:</t>
          <sourcecode type="cddl"><![CDATA[
environment-selector-map = { selector }

selector //= ( &(class: 0) => [ * class-map ] )
selector //= ( &(instance: 1) => [ * $instance-id-type-choice ] )
selector //= ( &(group: 2) => [ * $group-id-type-choice ] )
]]></sourcecode>
          <t>The environment defines the scope (or scopes) in which the endorsement artifacts are applicable.
Given that the consumer of these artifacts is likely to be a Verifier in the RATS model, the typical interpretation of the environment would be that of an Attester that either has produced evidence, or is expected to produce evidence, that the Verifier needs to appraise.
The Verifier consequently needs to query the Endorser or Reference Value Provider for artifacts that are applicable in that environment.
There are three mutually-exclusive methods for defining the environment within a CoSERV query.
Exactly one of these three methods must be used for the query to be valid.
All three methods correspond to environments that are also defined within CoRIM.</t>
          <ul spacing="normal">
            <li>
              <t><strong>Class</strong>: A class is an environment that is expected to be common to a group of similarly-constructed Attesters, who might therefore share the same set of endorsed characteristics. An example of this might be a fleet of computing devices of the same model and manufacturer.</t>
            </li>
            <li>
              <t><strong>Instance</strong>: An instance is an environment that is unique to an individual and identifiable Attester, such as a single computing device or component.</t>
            </li>
            <li>
              <t><strong>Group</strong>: A group is a collection of common Attester instances that are collected together based on some defined semantics. For example, Attesters may be put into groups for the purpose of anonymity.</t>
            </li>
          </ul>
          <t>Although these three environment definitions are mutually-exclusive in a CoSERV query, all three support multiple entries.
This is to gain efficiency by allowing the consumer (such as a Verifier) to query for multiple artifacts in a single transaction.
For example, where artifacts are being indexed by instance, it would be possible to specify an arbitrary number of instances in a single query, and therefore obtain the artifacts for all of them in a single transaction.
Likewise for classes and groups.
However, it would not be possible for a single query to specify more than one kind of environment.
For example, it would not be possible to query for both class-level and instance-level artifacts in a single CoSERV transaction.</t>
        </section>
      </section>
      <section anchor="encoding-requirements">
        <name>Encoding Requirements</name>
        <t>Implementations may wish to use serialized CoSERV queries as canonical identifiers for artifact collections.
For example, a Reference Value Provider service may wish the cache the results of a CoSERV query to gain efficiency when responding to a future identical query.
For these use cases to be effective, it is essential that any given CoSERV query is always serialized to the same fixed sequence of CBOR bytes.
Therefore, CoSERV queries <bcp14>MUST</bcp14> always use CBOR deterministic encoding as specified in <xref section="4.2" sectionFormat="of" target="STD94"/>.
Further, CoSERV queries <bcp14>MUST</bcp14> use CBOR definite-length encoding.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This section provides some illustrative examples of valid CoSERV query objects.</t>
      <t>The following example shows a query for Reference Values scoped by a single class.
The <tt>artifact-type</tt> is set to 2 (<tt>reference-values</tt>), indicating a query for Reference Values.
The <tt>profile</tt> is given the example value of <tt>tag:example.com,2025:cc-platform#1.0.0</tt>.
Finally, the <tt>environment-selector</tt> uses the key 0 to select for class, and the value contains a single entry with illustrative settings for the identifier, vendor and model.</t>
      <sourcecode type="edn"><![CDATA[
{
  / artifact-type / 0: 2, / reference-values /
  / profile /       1: "tag:example.com,2025:cc-platform#1.0.0",
  / environment-selector /  2: {
    / class / 0: [
      {
        / class-id /  0: 560(h'00112233'),  / tagged-bytes /
        / vendor /    1: "Example Vendor",
        / model /     2: "Example Model"
      }
    ]
  }
}
]]></sourcecode>
      <t>The next example is similar, but adds a second entry to the set of classes in the <tt>environment-map</tt>, showing how multiple classes can be queried at the same time.</t>
      <sourcecode type="edn"><![CDATA[
{
  / artifact-type / 0: 2, / reference-values /
  / profile /       1: "tag:example.com,2025:cc-platform#1.0.0",
  / environment-selector /  2: {
    / class / 0: [
      {
        / class-id /  0: 560(h'8999786556'),  / tagged-bytes /
        / vendor /    1: "Example Vendor",
        / model /     2: "Example Model"
      },
      {
        / class-id /  0:
          37(h'31FB5ABF023E4992AA4E95F9C1503BFA')  / UUID /
      }
    ]
  }
}
]]></sourcecode>
      <t>The following example shows a query for Reference Values scoped by instance.
Again, the <tt>artifact-type</tt> is set to 2, and <tt>profile</tt> is given a demonstration value. The <tt>environment-selector</tt> now uses the key 1 to select for instances, and the value contains two entries with example instance identifiers.</t>
      <sourcecode type="edn"><![CDATA[
{
  / artifact-type / 0: 2, / reference-values /
  / profile /       1: "tag:example.com,2025:cc-platform#1.0.0",
  / environment-selector /  2: {
    / instance / 1: [
      550(h'02DEADBEEFDEAD'), / UEID /
      560(h'8999786556')      / tagged-bytes /
    ]
  }
}
]]></sourcecode>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t><cref anchor="rfced">RFC Editor:</cref> please remove this section prior to publication.</t>
      <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="veraison">
        <name>Veraison</name>
        <t>Responsible Organisation: Veraison (open source project within the Confidential Computing Consortium).</t>
        <t>Location: https://github.com/veraison</t>
        <t>Description: Veraison provides components that can be used to build a Verifier, and also exemplifies adjacent RATS roles such as the Relying Party.
There is an active effort to extend Veraison so that it can act in the capacity of an Endorser or Reference Value Provider, showing how CoSERV can be used as a query language for such services.
This includes library code to assist with the creation, parsing and manipulation of CoSERV queries.</t>
        <t>Level of Maturity: This is a proof-of-concept prototype implementation.</t>
        <t>License: Apache-2.0.</t>
        <t>Coverage: This implementation covers all aspects of the CoSERV query language.</t>
        <t>Contact: Thomas Fossati, Thomas.Fossati@linaro.org</t>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>The CoSERV data type serves an auxiliary function in the RATS architecture.
It does not directly convey Evidence, Endorsements, Reference Values, Policies or Attestation Results.
CoSERV exists only to facilitate the interactions between the Verifier and the Endorser or Reference Value Provider roles.
Consequently, there are fewer security considerations for CoSERV, particularly when compared with data objects such as EAT or CoRIM.</t>
      <t>Certain security characteristics are desirable for interactions between the Verifier and the Endorser or Reference Value Provider.
However, these characteristics would be the province of the specific implementations of these roles, and of the transport protocols in between them.
They would not be the province of the CoSERV data object itself.
Examples of such desirable characteristics might be:</t>
      <ul spacing="normal">
        <li>
          <t>The Endorser or Reference Value Provider is available to the Verifier when needed.</t>
        </li>
        <li>
          <t>The Verifier is authorised to query data from the Endorser or Reference Value Provider.</t>
        </li>
        <li>
          <t>Queries cannot be intercepted or undetectably modified by an entity that is interposed between the Verifier and the Endorser or Reference Value Provider.</t>
        </li>
      </ul>
      <section anchor="forming-native-database-queries-from-coserv">
        <name>Forming Native Database Queries from CoSERV</name>
        <t>Implementations should take care when transforming CoSERV queries into native query types that are compatible with their underlying storage technology (such as SQL queries).
There is a risk of injection attacks arising from poorly-formed or maliciously-formed CoSERV queries.
Implementations must ensure that suitable sanitization procedures are in place when performing such translations.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>A CoSERV query can potentially contain privacy-sensitive information.
Specifically, the <tt>environment-selector</tt> field of the query may reference identifiable Attester instances in some cases.
This concern naturally also extends to the data objects that might be returned to the consumer in response to the query, although the specifications of such data objects are beyond the scope of this document.
Implementations should ensure that appropriate attention is paid to this.
Suitable mitigations include the following:</t>
      <ul spacing="normal">
        <li>
          <t>The use of authenticated secure channels between the producers and the consumers of CoSERV queries and returned artifacts.</t>
        </li>
        <li>
          <t>Collating Attester instances into anonymity groups, and referencing the groups rather than the individual instances.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="rfced_1">RFC Editor:</cref> replace "RFCthis" with the RFC number assigned to this document.</t>
      <section anchor="media-types-registrations">
        <name>Media Types Registrations</name>
        <t>IANA is requested to add the following media types to the "Media Types" registry <xref target="IANA.media-types"/>.</t>
        <table anchor="tab-mc-regs">
          <name>CoSERV Media Types</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>coserv+cbor</tt></td>
              <td align="left">
                <tt>application/coserv+cbor</tt></td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
        <section anchor="applicationcoservcbor">
          <name><tt>application/coserv+cbor</tt></name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>coserv+cbor</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (CBOR)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="seccons"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Verifiers, Endorsers, Reference Value Providers</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for "application/cbor". (No fragment identification syntax is currently defined for "application/cbor".)</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration:</dt>
            <dd>
              <t>no</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="STD96">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="STD94">
          <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>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>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="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6024">
          <front>
            <title>Trust Anchor Management Requirements</title>
            <author fullname="R. Reddy" initials="R." surname="Reddy"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>A trust anchor represents an authoritative entity via a public key and associated data. The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative. A relying party uses trust anchors to determine if a digitally signed object is valid by verifying a digital signature using the trust anchor's public key, and by enforcing the constraints expressed in the associated data for the trust anchor. This document describes some of the problems associated with the lack of a standard trust anchor management mechanism and defines requirements for data formats and push-based protocols designed to address these problems. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6024"/>
          <seriesInfo name="DOI" value="10.17487/RFC6024"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="I-D.ietf-rats-endorsements">
          <front>
            <title>RATS Endorsements</title>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Armidale Consulting</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and, using Appraisal Policy typically with
   additional input from Endorsements and Reference Values, generates
   Attestation Results in formats that are useful for Relying Parties.
   This document illustrates the purpose and role of Endorsements and
   discusses some considerations in the choice of message format for
   Endorsements in the scope of the RATS architecture.

   This document does not aim to define a conceptual message format for
   Endorsements and Reference Values.  Instead, it extends RFC9334 to
   provide further details on Reference Values and Endorsements, as
   these topics were outside the scope of the RATS charter when RFC9334
   was developed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-06"/>
        </reference>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-07"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek USA</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="6" month="September" year="2024"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
        </reference>
      </references>
    </references>
    <?line 398?>

<section anchor="collated-cddl">
      <name>Collated CoSERV CDDL</name>
      <artwork><![CDATA[
coserv = {
  &(artifact-type: 0) => artifact-type
  &(profile: 1) => profile-type
  &(environment-selector: 2) => environment-selector-map
}

artifact-type = &(endorsed-values: 0)
                / &(trust-anchors: 1)
                / &(reference-values: 2)

profile-type = oid-type / ~uri

environment-selector-map = { selector }

selector //= ( &(class: 0) => [ * class-map ] )
selector //= ( &(instance: 1) => [ * $instance-id-type-choice ] )
selector //= ( &(group: 2) => [ * $group-id-type-choice ] )

class-map = non-empty<{
  ? &(class-id: 0) => $class-id-type-choice
  ? &(vendor: 1) => tstr
  ? &(model: 2) => tstr
  ? &(layer: 3) => uint
  ? &(index: 4) => uint
}>

$class-id-type-choice /= tagged-oid-type
$class-id-type-choice /= tagged-uuid-type
$class-id-type-choice /= tagged-bytes

$instance-id-type-choice /= tagged-ueid-type
$instance-id-type-choice /= tagged-uuid-type
$instance-id-type-choice /= $crypto-key-type-choice
$instance-id-type-choice /= tagged-bytes

$group-id-type-choice /= tagged-uuid-type
$group-id-type-choice /= tagged-bytes

tagged-bytes = #6.560(bytes)

oid-type = bytes
tagged-oid-type = #6.111(oid-type)

ueid-type = bytes .size (7..33)
tagged-ueid-type = #6.550(ueid-type)

uuid-type = bytes .size 16
tagged-uuid-type = #6.37(uuid-type)

$crypto-key-type-choice /= tagged-pkix-base64-key-type
$crypto-key-type-choice /= tagged-pkix-base64-cert-type
$crypto-key-type-choice /= tagged-pkix-base64-cert-path-type
$crypto-key-type-choice /= tagged-cose-key-type
$crypto-key-type-choice /= tagged-thumbprint-type
$crypto-key-type-choice /= tagged-cert-thumbprint-type
$crypto-key-type-choice /= tagged-cert-path-thumbprint-type
$crypto-key-type-choice /= tagged-pkix-asn1der-cert-type
$crypto-key-type-choice /= tagged-bytes

tagged-pkix-base64-key-type = #6.554(tstr)
tagged-pkix-base64-cert-type = #6.555(tstr)
tagged-pkix-base64-cert-path-type = #6.556(tstr)
tagged-thumbprint-type = #6.557(digest)
tagged-cose-key-type = #6.558(COSE_KeySet / COSE_Key)
tagged-cert-thumbprint-type = #6.559(digest)
tagged-cert-path-thumbprint-type = #6.561(digest)
tagged-pkix-asn1der-cert-type = #6.562(bstr)

digest = [
  alg: (int / text),
  val: bytes
]

digests-type = [ + digest ]

non-empty<M> = (M) .and ({ + any => any })

COSE_KeySet = [ + COSE_Key ]

COSE_Key = {
    1 => tstr / int
    ? 2 => bstr
    ? 3 => tstr / int
    ? 4 => [+ (tstr / int) ]
    ? 5 => bstr
    * cose-label => cose-value
}

cose-label = int / tstr
cose-value = any
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1ce3Mbx5H/fz/FHJSKSQUA35KIi+xQfNisSKJCUk6lXD5z
sTsAxlrsIvsghcj0Z7nPcp/s+tc9szu7AC3aubqqS53thMDuPHp6+vHr7hkM
BoOgNGWiR6p3nKWRKbS60omOyixXE/rfaRpneaHnOi0LFaaxutQTnes00urb
MKl00QvC8TjXtzzA1enlt70gCks9zfLlSJl0kgVBnEVpOKcp4jyclINZdhfm
8SAPy2IQZYXObwfb20FRjeemKEyWlssFtT0/vT5T6okKkyKjsU0a64Wm/0vL
Xl/1dGyIQhMm+HJ+9Ir+ELG988vrs16QVvOxzkdBTHSMgihLC50WVTFSZV7p
gCjdC8JchzTqlY6q3JTLXnCX5R+meVYt6OmlnmelVkfXpS7KsCSS1Ls8i3Rc
5fqqF3zQS2odjwI1UJdH11f4G5Z1W3zVDdfwNa95dgueBbc6rYgypR45o1LC
k95fiUqTTtXX6Ifn89Ak9By8/JPR5WSY5VM8D/NoRs9nZbkoRltbaIZH5lYP
XbMtPNga59ldobcwwBY6Tk05q8Z2yIG3jmIQm6LMzbgCeVsPbSXGSEIsw5v+
l8caypxDkz046oMvhrNynvSCIKzKWUZbPiCRo41+N1TfcFuiRkTvXVglzTNa
fpiafzCnR+oon9MzLbxcUMOhTPSnMJ8Po2zuRr0eqrOsKKhXPez1LJuHhfe4
PfJrk4Z51gwuzYe2+Z8Sfo3NCII0y+f07Jbl4vLs+MWzne2RiuI4sd93Dw5H
6scCAqaurk8On6GhUgNqRKzgzy9HaHm4fbBr2+w3bcZZ7rV5cbh/KOMe7u3t
jxSzFAIRBNDZNinPtnepyfURyfHfK5PLFsqr54f7u6Sr80We3UIwj4hvOtVF
obKJuqzSFA+Psxj0nQ9OWPgGK+Jg5/cfrbSPSN3ntiF/Xh0xLN1AYRkENApp
NpZwdfr6DEp2dlzODBmsYDAgjR2TBIYRNTxPVTnTyulguUYHC7UBTd9kvTIl
mUd62Fff6txMjM4Lx5nPm0tVZiosCnAIk5JFKkqyJkSY45oQQIMOg2siV5H1
rDCeKhY6wnTS87dZa7UhRnqzr0JFDKh4JbH6e6XzpZKNV7EuzDSlp0TrJIxM
YogfmmclvY2yW7TF6LkmJdZk00A3vSZywrw01Iemn+TZnOxdbrKqUCwfMS9K
CKBJJlgykSFzJ2E6rcKpVlXBMnNy8pqGJGqiMFVjrUjbydybfxBZJlXHry4u
Lbl9srbhOEEnkxLfsoXOwzGIJiKjnFSNqCaSibhiSYydEw0sAXNDyqWD4Ik6
T8s8i4kX2PRPTwodDQwe3QfBo6SCCYAEJUuQ8Q5MkK0GcyrHvDWbnfvDQ5DG
RPRikYeGuXAKptHuWVGwb4jfqY5oBN4XehxFLE/Z5/e/r+5mJprRNmmavtSp
qi0xMdaya14lpVnQgupd6xNro6SKQdOMLCO0nHxPWmGriRNoMTH5nJ/H+lYn
2AV6CBoKmohf3IqCYzGa9jv6AA4QV9OYhuSdnWsy43HBssxigQk9ScPXrpwt
yPoVKpqFSaLTKX0k8QhJS6V1ocN5Au50ZYOE4PqfVyMVxjEJQsFKaTwysJEs
4ryCroyzYFNL8r2eEaENFB1fsrjo9NbkWcq6T+PCWFHTojRRYfWNNRXqW3PD
CkqjtWIs9GRiIoOBfkGBc2LBbUhtPr981m1Ppy0rWbE7SzXCekJuYk9IZ5kk
ky4qIicsQwY3zPcyyxKZEb7dREw9ccrO9GsEvWs844wGS7PS2h0mgVw7STnU
7915AfzIMhKKGZiT00pEEouKNGaVtmHwll7ywGVrLiBO8i1G/Io1qnbHsqps
1o21PTA4WafpjFdOdkmLytDOLbQM5E9HnxMzN6UwWMQCgsfLsNN2NiVLE6cA
n5Gyz8uCqHxOJjYWuWCBI3dIYmW5EelFyXp5nF2ev1GfPnku/f6+dgnUkZBy
RuMRWAEuVTMd3ppkKeNyZ2tSiFCausjmuhEh2SwD12N0EtP+HKVxn3jzQbu+
ZSOmRTQjUAbmiUTEvuMhCoG8iDZ11Jbrh70R+hDd9/d2x4m/T56oa53PTZol
2XRp2ddAKPXa7ofsBMUVCoFFoXpv3l9dI7LBX/X2gj9fnv7l/fnl6Qk+X31z
9Pp1/SGwLa6+uXj/+qT51PQ8vnjz5vTtiXSmp6r1KOi9OfpbTzjbu3h3fX7x
9uh1T7H8+oKGnSYJG2tRlAVZD9ieIiAzFJEPEWa8On73X/+5s0/8+DdCXLs7
O4fEEvnyYuf5Pn25m+lUZoMc2q+0NcuAHJwOc7bgSUK8XpANS+BGaK8Jk6cK
EkKMffodOPP9SP1xHC129r+0D7Dg1kPHs9ZD5tnqk5XOwsQ1j9ZMU3Oz9bzD
6Ta9R39rfXd89x7+8asEpmqw8+KrL4OgY9Aq9jkkXaKWtZY5aR6LEwFAaaHW
YXBGWhI2xm+aIBrJl30Sak0bRTExW459qP+gDgygp7+NBFF6i14jxlCPJmJn
SP82hNQWYy0lgFhMzQ89wBLyaoBsuvcDk/dDrwnD6+cNsSRzzbS7zZR+UGJn
lmmcVottalmAfseK8PzHF1en/IjwCh4tFgmBxH+neItiTvLfUUUhel9Gik04
TTMYYfgsgZ3mAVpfMK0ycYCJmldfyytrya5XdwoaHSZ34bJochTQaPgdgko0
eZUC/A31kJAjhenqWHRSvdalxCgEn62B/AsbyLZNW48JBC//AvRxuOY3OaRx
WGiYlhUQRWwT9AtbI2vHJkQgxuKFwnKObFvBM7AA85bAzTAoYDfjLcwACgS8
4zRCVYgf1h8xBvG1wkot1wUWlA1+6wxKE7GrJ0Aq/eYUMbC/IZwWlfCEGVAj
TQGrqaKcQl14LepM7tbE8s2FWBg9G/+oGRjCGx1n8zmt7gQvruEyA+d7TUqm
1dgFyyQMtsWvOrcuquxRfRMlFM0O5uHipq9ufiffTDxAv0E0ywjK8AuTAudH
uvuOGXPzO86Ddd9ZXYuImBCOxnGYpd89ddLNyxMJvHJhrdXVbDFIEJI08S7Y
H7Zlk8adEoRJndFqWIBpR0Hw888/czJG8k7qpfoUKPX7DYe8B5Kh295UL79U
rYfcjPRpYpBl3eEG9mvz3hPTQWFDkZHa5cbr3oHjAYWnrZmIKIzE+hEPONVY
gCTO+/j/bFE7DkYHtCczag661raqrUI93O5mEPjk06SZ3Tjq8XOVG7BKWD/X
IeKfokkPCDKzmLEMaZBY1TjZcbyoxlYPRWyfqCO7TBZaGfumtfQbGRnbaDE3
BdaFhDvkMkwaIrbzwfAwOGfoHHoC4hLXyrF5qM5ZJXJySgvYfIq5EenfNtD3
psXIG7URkWIsMtJy4imJfmc/Wg1IWlj+u1xuNdrddCaBvB+ZlEWW1kDfU1Sm
0S4AyQdaq+e6apFs5VSQXChhgetNWIELJPlKDdTTp9dYpjriZT59qjY6694c
EVLmR0oeMW87LsvmEhlWp2QhQ3h/UcZW17usor0cS5S2qMZko9lHug0Mi+V8
jtA1UshUYf0Az7w0Z4KtHrvMCnsYalunVPo28kIfNHS+iOnGHlOHWzyTcaJ8
uSizaR4uZnbWUNCUcMd6pVh8EPOnu/HgUOr2JBYRWsekz0EfmbDj9XjGFTHi
TekUH37DlGsGaXKRJEkmjQ1xFYArxIt6nxzzvyhqj87Ia+g5bU+VEM6VZs4p
HI6hkgQBVwIj0ZtmCe2bbd5bFaAuhS0ZImdMZNEws7CYwVlS8Bd9KKq59B0j
D79sMliI+V3SysyBWHKbyrZq4i3Ms87DWrgaj1nLn9BTwmtLLo1kKgkNENk4
q8rusD6A7TewpRFTqDCPBgwNQhmeoUm+wtuyIaxJIYLTZF7FCtYMEh0CW7Ei
Rp4uF0GqSb6PFalEkC4WPTYTnq7sGJ8mQWdSr5HvjTPE8EihEJ4AaFMlw8Jh
8FeEeRJ8WoMe0WsJ39fbffhkybjSTubZnZf0iBE3WnvJFpTkUxaAjJNgv1N4
/rvWrMgVtWdu+xKxM5MKMk8iRP4Qu8xZLJ4oJenShOdpjUiniuzQnrlUXLRU
U6SIkPC9JQ9qU5tkCMO0IGaBh1V6F6bYFUZcxuau4RDfiQfm4kUkoI73//To
WoINyXe4XEe1WGS5BXe0MJsYsm4ciZJibXfXQLCyojhBkC3SeawksAKcBuGR
O/hqqlMNE93GWTRzHos9hsAIy8I6PARTmecY39ctXmobtMm2WCLX+DRirTZI
KlG/96nh1OOlLrIqJ0U4d+1ytfH+8nwT89EIFwyXW28vzk82bXhA23qLFxKO
yVQRdClTMxI6sK/FM48YyS6xBBNm/8E2uxEjIBbZS6J4Yfhwb+iHo2Fp0e4T
CoWa2Mblr1eTeoWX2Z6LCMxZ8LJ42UJEkpJBDOCQtkXEmjCGh4AfwqPAxM1s
BE7rz1tbL9UGoUkODxxI/k49VXX0oL5Xm6vtXdTgYDO6PBRKrB/BFth3m+7r
Qg3uW6NWn3muSlXW6dcNyD0+FZutgHIt2ipWosyvmaU16nB2Yl0BjfO6H3Sy
tEm30MMoHlrjQExUgZbE4lin50I/B+yvy/OOkpsm0W+gEp5ZzZlJMgBJ6Fjp
GjuJAWy8RuYaeW1WoVWqdSwVUPFCNq/d+DQc1SBZTBHp1o3FcGAgi7JyTN8B
QLCIXI0Qe1IzUSotrU0Q7mGJvnm5ZuvPKU6G0vMKDjhZDvRH8tYFbVurOlXX
dlY4a1De61gq8jAfQ47fs1Q3e21nssO6WJ/hq3MkdvEsABzhk7FOkk7PdmDg
UeOvPymyGvVZItnMoxpKgPIYqvj0KRAjayXjxLS1NIev/W0fa+d/sK1yoIXL
euQokzAn/knao+IOdZ0TkCazuKJJ+3NaX3QtnCPJXnphzEo2qIsB2XPLkKwt
k0TLAEBIFbvgWEtxxWoEzyKJDJg+v6BpuXJujQ0zBshNvv4Cc6rU0J4xN9rI
GLbVugOWQscLG4gwioCPSPQKwYxY6RkJD3tCUMZHgGS/hOkcyyItYh2HLBw7
Uyu2I98TC9uBN3OqWeXr/JmUV6zIkGULU2E7creW732vdD0neDBGvIZMG62f
ySpqSV5UOUq1YmyydDmXIuxRQjJcTWctlVgxwUaAKJedVxVzRd/6XD+QsSz4
aaraNKjk7K4dwMwEinnQDKisCa09O73RbJYzW5uNkcJa63laCLjeW8Z3UmOU
LHjNyTtrgXzXMdaCHGP9UQCN28I+OerGihNjJTHh5VFJ/MJ8bGg+IkyOxIH3
jQz4VHkAoFHHbFy6IqZ3rAPmNXEnPuYPr+01+a47lNbRg02KzYOKXAyDb7I7
CgRybyXA3P5qLDT0SPQXOJcghNYJo/rBAJNO2ka9xd8Hp2lt3zgjHCy4ROIU
VlyHOeyjtTvrqpg+EwKGaVHG8N6v/QXn3RiLtIfYhVowY2CvwtjONUP4ImiQ
uPoaqBYtz+dZgqLDh/Bh32mrzx4xHAFFM20jS8QyxZr06RoV4gS1dUusRvAP
k4rjgwY5W/d4Jkai0DX+L6x3oRGxjFvZQHifApl5A9TNRixdWpzazefawobH
SBsFstmfmI9s1QA3IrZKnOYfL0sxDVYJ+l3uc53RDg1apTigpSLEjolE0G44
ypY2UbKC6ne9sg2tv8qhd+tn86ZhUwgxTKckpm4irsKcyv4WQbeSwXtri+Um
IZNJEgqGOong/WRs0WZhUzm4bqUanctFRbY5vzVZxWSFAGW2W41vg2oN16Zw
mWqkCNTu2mxWn/1pJDWOX5rXDl/HWHUoI7kgIV/SRLT0mzKcjuxTHPfs727v
HoyiaLBIwhJB05Od4fZw+4Z2iWJ/8jw2EbEuDrppSpHISG6zveJ3jRmszawl
gXwL7Kzn/+GhlhKRtzaMuFNyPt351Eb7+/Z0lQAZQJohR2w6TgNUKrbaRQn6
vk1hUZ/+dvmstri5C6u3bDVgZ6R6j2NUr88DrGMPRtsdcekETQRoMinf2fLD
p6ApP7hqEnpRk4Nn2xuzL7a3d3Z2d/f2viBxoBdE0lTHA1Zbptx1tuzYcrRb
9SCvjedMo2sqCFAWuus1fYPnPdvwnv9+H+DTfRMspvpjWYsUBFhwb1+NCQaF
ccy7qiNAc9lVZ4MsNLV+0brZlkxJUQ1axsfusrsGWrhuNuch1iJWNt5i+2bT
e/+KIvDi8PDw+YtnBwfP/teFoP9ZGr0y2t5zInZv5+zVwdGrs+3dvdP9w8Pd
o6P908ODs8PjnYPtvVdnR19sYoz3789PasofELV/0gI7DEMBJFz1+myqZ4LF
TK0xoiH5obnUstnDsMwM1fXDNjEl2W3ZxZ2OXaxB6YO2sbzLHHAXw1jrXB2S
NUjo/4Dc12RvYXgn+gcHbOJ2T06PTl6dnp7hL2ScBOTUE5BVNXCyuEYTWnL0
RLVxp7qiv1URfPcf+STS8feKXiL5ivLprU2GN0jC8BlNW5GzB3naaCMnU4cT
bJIOxtCwch9S5OC7VQUbhBO3y4zQavvYkCnaJ4acbYNZ49w1Tsfg4ION+8+R
8kp1OTjBTRGbyvTOgoR8pCVD4aOTaLW3GIDCruXoCb1duBC6S7Q7FOcW3Dne
SpaAMCBTyheYqLnhE1GRKSwai7Sz+PRlijMiHOiDbMa8RA8J8DvZhzQrdZNI
S0y9aMBeL7vQJpOPyTVHXvFy2cpP2uIoSKyx55zRbpoBcSNeRuZvrEnfaR+4
cOOXQ+tLIs1ZGVTXpIBC1N4B+lZ8xIk3lJkBZeaj5lnuRd9MoWNhaC0A58Js
nGYTSC7fhACGZCJMMmHELe42cVqvK1+MkUyuJpprtTTnpQ5xYFkSYvGtsWd1
Gi5nnAFZqX9ROKQ/EvORr4gg4Tag8aSnTzYCK7ojxCa5A1KGW6PveD5a0p29
u2XTIlZYpqmKxc4ViMCEo/TOHW2zqZpZeCsh2FinpCaMHVxNEkcFXIkQlHIt
DLGHS8VafF8xl5C8y00jKiBtonU8xnn8Zq45MUp22vGCWOVUtZDYe25L4FJC
rBYO23hyubroqnA1Nk+EwkLOZOHwH62uJ4HztxpJ4iylbUMUKcH6BV+wKuwF
K9dEbZCbQ8aKaztEJ1dxbJpTTi6lE/EQRNVxnV+jxwUJu6nmmzTn6yyy47qb
a/ZqGln8rVtHTXDSmAiPgjrQqjN1ReuwhTsYNq5MEnvpIxF4Ts/qj5q4bevq
8Y9hBMXjJH+eIU5zuSfO/XuXTZYufS1pyTCS8E70uKnY1aQWmU1XCnFIF1g2
ReEijHBzRkoCj0m4tyGqjSD9NYdrLvnUx+qbw/RiD6Q0jsrHmBNXEG7PsNZF
bjn5lhGMWYR54a6JzEk0FlVSlz1WTum95vwNvXkD2cX9MOXsEHuIbDKg/+z5
SJF3xgxti4CBiOi00CN1tEB6ZLBL7h+H6SAlU+1GbVtlvnhRcPZMzknUPnDt
MUkej/pGZfeeYf+XLhI+Ue5WK0t3bVUKudkES3Pvn81srmDYIjokovpoEsNn
IqrUOroHDgix+je3Kwzq6zi2gUrp0jtt45/b7K+5l/QuS5A5YrPt37a6lJxT
fUmA7XAhJ8dX76d5Nzjgvco7baP+usbk8OWjakmsdpi6qUv1JUHKLmQC6w4o
IOyO2uxujon2vRO+9sC7O7YhtZjWUc1azVFO5jGkSnOsc87HNvN1TsfKqbrC
5KFLnv7PssNL2UqurktA+9wWXwmNdF1scRX+9TgQoBPcthcDJs1hCM7eN64H
petmJXM2fct2Znfd9KtnYoHMdDLh2lydB2PeN0zsrtCVl0Yowlw/VoxgXWqY
Yp1kvQMsDSh26nhoB22dReObzQ6p2CMtWER9xOhxWzfg07FGkgaWTywesHSa
j3NUKfKYEc7EILse16couNSF27R1lUsqzBkftPvnxQrO/ixDAnWq3kqq68Sd
CXJU2ytA2MSV3Dk5ID5cFX6AB8NZKPBUTtLYYTt5VS5QpTKVzWDzSWevLkbq
WTLicD7HCIdy8bs4QsRX+XQ0szcB6trQ1V9eu5k2fdesaB8/SBHmRxs/hCUZ
+A/QXbnxKTfrsgyVU9AuOzMPYRyzqmiedl3bSj0BCBq/e+AgeVEZPu2kihDl
tH848F5fZuUDK/QkIdwhHCSk6PgnhyXBUfGucvL/XW5uw6jraII1d6YWBLEZ
fIlvYEO2kN4D/DyDKaWQV2PCYXDl4r/PpVzlCFjrphtwcHMObm3dtV0J4+w4
1x2aoz4RRZSKz3ky2RaiAUoV9U07324zm+sCdK6pY9pUHeoSonFlkaI2BnXR
sqmFtsNfzzb5M0qJcJlZbVt/QXBVNqy++NKBExkZbQgcKX7Moj7ktAiNXYIh
1lw5IZrThk3rmFjOM5Z+kqq2kJWt+VY4rYiiT8l1lwhTk3lNU1yz9I2IPUli
wyafdcUqpnPXWIXV3j3YATXEFQH+VYJ1W84VeluHtvFJ344mcuNqvzZ2IeGe
yeGYtBvl1MOyUpwfvT3qakSTYMm1KFjv06ff44cJ7u97DaqlaNKVaiU41DXv
ve2EuXyjY2PvcJBhnRqXjaOpeH4jv0mAZUtiIo7b+6PmPII1eyKGPW/UHvXn
YZe4vIcxh9yDc2hyE+onMtakNT+pa4QtkJyfPCP/U/DToPvP6pN1b6inupF7
Fn9AgeyGxr2x53f4x0c672pO0pyfRuoJSehgHg2IfloZftzmpf1pGp9rvXs5
RPfgwAGNxV4gKgkvAx/zT34EI+X1CEgjxqX/0hsCvx7AFd8Y+I/e45gE2qRb
YRBccABJ0rPmXV0ybkNKvLdnlTdQENyk6deDT7T89MnB/XvoTc0lnKTs/E7C
amcm4x0SfcUM+uobIxm8Hu2oYYe1gXWM38gY+tTXvepoIF8NBWpYQJJ8Rh5W
bm41xzFXSYWRKZZk3D7aG9T2oAoWPVkdwWZ//NIsoHKvJQe0e72h2nibrY5g
85F2RniKKs/lyJrLYD4wHm3XO5qfOv9efhDG/XoAH4aVUI/7TiQj57tDLJRj
r79+zT/6A+FAOlBttH77Z1M2l3NpVYFIlPrhAurFW0ijXCMTf5I2DcgMatpH
Rppbx2TgppJ5z3GGIEcL5O+IemxNIVKbe0ZHxgjkZzWQSJJbge7eluieXIl8
0r64xYn6/79T9fk7Vf+qp26DhpiXkMMBuZJy+UcIwleOdurnyF97w9C2lWKf
o7ok4bQvuLTnyPGeJ+GSpFvt8fPK4Le6+Dkftxqp/eb5/ZdBsHZqRSu2NRe3
Y59tWFWPbcllHJr5IeZ7Y+p6zEc0rh7T+Hdy5WnwQS9bzH7EBI7utbu+lo7P
tLQDtqpbL9WTZ0NUwvgrSVKtMi/lFE/Q2RjpsbOzs+GeUKeaca6XGha4z7Dx
fDjc29sMuvy10x5sb9SPMEq1fpSdZ0F3rTLA3vON+skmZGstrz0OLD6YjwME
xM/261a/shtB6vI396NgePbYzjDnv4bIckaQl2KP9NHkyVJ+WzdZya/uyxwJ
i3SHsMevYmVbdtfto5Op/Q0Yp811TesJXduDz7St98t1eNbu0GGAa/V8IzZT
ggl1u9ZeulYvNvBjBj/8WS+vdEkeyn1req3ZH9f5cGWKh3bFqfhOt8f6vXDN
dzfGvNJAetFjlNfDZDpSG7hQu6VKiuI3UaonBzyyxuJ7175wg32n/qDsEN/j
9/mcb3rzJb3ceLOphoCbG5+oGaqxwCj0554m9rkj47gnGKn+/NKeBthxfonP
BZT87Cu1i6dj8Vb4vre21T672D+ojebNJpf88fKgNcRTjk0GSTjWCV7wN/lB
SoIN/jtl2YSeTSt6Tgt05wiOIlT1Ex1P5Tzrp5EErjp+2ZuESaERYF1fnFyo
sG6JkoYLhPlnCNUp/47nKPhvyhWIkIhUAAA=

-->

</rfc>
